#! /bin/sh # # To apply this patch, cd to the top level Octave source directory and # run this file through /bin/sh. It will first remove any files that # have been deleted from the source distribution since the last # release and then update the sources with patch(1). # # Diffs for updating *.ps, *.dvi, *.info*, and *.html files are not # included because they can be recreated from the Texinfo files using # TeX, makeinfo, or texi2html. # # Diffs for updating parse.cc and y.tab.h are not included because # they can be recreated from the file parse.y using bison. # # Diffs for updating lex.cc are not included because it can be # recreated from lex.l using flex. # # John W. Eaton # jwe@bevo.che.wisc.edu # University of Wisconsin-Madison # Department of Chemical Engineering if test -f src/octave.cc ; then true else echo '***********************************************************' 1>&2 echo 'You must run this script in the top-level octave directory!' 1>&2 echo '***********************************************************' 1>&2 exit 1 fi ### ### Special commands should go here. ### echo 'patching existing files' patch -p1 << \PATCH_EOF diff -cNr octave-3.4.0/acinclude.m4 octave-3.4.1/acinclude.m4 *** octave-3.4.0/acinclude.m4 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/acinclude.m4 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,1597 **** - dnl aclocal.m4 -- extra macros for configuring Octave - dnl - dnl Copyright (C) 1995-2011 John W. Eaton - dnl - dnl This file is part of Octave. - dnl - dnl Octave is free software; you can redistribute it and/or modify it - dnl under the terms of the GNU General Public License as published by the - dnl Free Software Foundation; either version 3 of the License, or (at - dnl your option) any later version. - dnl - dnl Octave is distributed in the hope that it will be useful, but WITHOUT - dnl ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - dnl FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - dnl for more details. - dnl - dnl You should have received a copy of the GNU General Public License - dnl along with Octave; see the file COPYING. If not, see - dnl . - dnl - dnl - dnl Copyright (C) 2008 - 2009 Free Software Foundation, Inc. - dnl - dnl If needed, define the m4_ifblank and m4_ifnblank macros from autoconf 2.64 - dnl This allows us to run with earlier Autoconfs as well. - dnl FIXME: these should go away once Autoconf 2.64 is required or ubiquitous. - dnl - ifdef([m4_ifblank],[],[ - m4_define([m4_ifblank], - [m4_if(m4_translit([[$1]], [ ][ ][ - ]), [], [$2], [$3])])]) - dnl - ifdef([m4_ifnblank],[],[ - m4_define([m4_ifnblank], - [m4_if(m4_translit([[$1]], [ ][ ][ - ]), [], [$3], [$2])])]) - dnl - dnl ---------------------------------------------------------------------- - dnl - dnl Figure out the hardware-vendor-os info. - dnl - dnl OCTAVE_HOST_TYPE - AC_DEFUN([OCTAVE_HOST_TYPE], - [AC_CANONICAL_HOST - if test -z "$host"; then - host=unknown - fi - canonical_host_type=$host - if test "$host" = unknown; then - AC_MSG_WARN([configuring Octave for unknown system type - ]) - fi - AC_SUBST(canonical_host_type)]) - dnl - dnl Set default value for a variable and substitute it. - dnl - dnl OCTAVE_SET_DEFAULT - AC_DEFUN([OCTAVE_SET_DEFAULT], - [ifelse($#, 2, [: ${$1=$2} - ])dnl - AC_MSG_RESULT([defining $1 to be $$1]) - AC_SUBST($1)]) - dnl - dnl Check for ar. - dnl - AC_DEFUN([OCTAVE_PROG_AR], - [if test -z "$AR"; then - AR=ar - fi - AC_SUBST(AR) - - if test -z "$ARFLAGS"; then - ARFLAGS="rc" - fi - AC_SUBST(ARFLAGS) - ]) - dnl - dnl See if the compiler supports placement delete - dnl - AC_DEFUN([OCTAVE_PLACEMENT_DELETE], - [AC_CACHE_CHECK([whether defines placement delete operator], - octave_cv_placement_delete, - [AC_LANG_PUSH(C++) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], - [[operator delete((void *)0, (void *)0);]])], - octave_cv_placement_delete=yes, octave_cv_placement_delete=no)]) - if test $octave_cv_placement_delete = yes; then - AC_DEFINE(HAVE_PLACEMENT_DELETE,1,[Define if C++ supports operator delete(void *, void *)]) - fi - AC_LANG_POP(C++) - ]) - dnl - dnl See if the compiler dynamic auto arrays - dnl - AC_DEFUN([OCTAVE_DYNAMIC_AUTO_ARRAYS], - [AC_CACHE_CHECK([whether C++ supports dynamic auto arrays], - octave_cv_dynamic_auto_arrays, - [AC_LANG_PUSH(C++) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], - [[void test(char *); int length(); char x[length()]; test(x);]])], - octave_cv_dynamic_auto_arrays=yes, octave_cv_dynamic_auto_arrays=no)]) - if test $octave_cv_dynamic_auto_arrays = yes; then - AC_DEFINE(HAVE_DYNAMIC_AUTO_ARRAYS,1,[Define if C++ supports dynamic auto arrays]) - fi - AC_LANG_POP(C++) - ]) - dnl - dnl See if the C++ library has functions to set real and imaginary - dnl parts of complex numbers independently. - dnl - AC_DEFUN([OCTAVE_CXX_COMPLEX_SETTERS], - [AC_CACHE_CHECK([whether complex class can set components independently], - octave_cv_cxx_complex_setters, - [AC_LANG_PUSH(C++) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], - [[std::complex x; x.real (1.0); x.imag (2.0);]])], - octave_cv_cxx_complex_setters=yes, octave_cv_cxx_complex_setters=no)]) - if test $octave_cv_cxx_complex_setters = yes; then - AC_DEFINE(HAVE_CXX_COMPLEX_SETTERS,1,[Define if C++ complex class has void real (T) and void imag (T) methods]) - fi - AC_LANG_POP(C++) - ]) - dnl - dnl See if the C++ library has functions to access real and imaginary - dnl parts of complex numbers independently via references. - dnl - AC_DEFUN([OCTAVE_CXX_COMPLEX_REFERENCE_ACCESSORS], - [AC_CACHE_CHECK([whether complex class can reference components independently], - octave_cv_cxx_complex_reference_accessors, - [AC_LANG_PUSH(C++) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], - [[std::complex x; x.real () = 1.0; x.imag () = 1.0;]])], - octave_cv_cxx_complex_reference_accessors=yes, octave_cv_cxx_complex_reference_accessors=no)]) - if test $octave_cv_cxx_complex_reference_accessors = yes; then - AC_DEFINE(HAVE_CXX_COMPLEX_REFERENCE_ACCESSORS,1,[Define if C++ complex class has T& real (void) and T& imag (void) methods]) - fi - AC_LANG_POP(C++) - ]) - dnl - dnl The following test is from Karl Berry's Kpathseach library. I'm - dnl including it here in case we someday want to make the use of - dnl kpathsea optional. - dnl - dnl Some BSD putenv's, e.g., FreeBSD, do malloc/free's on the environment. - dnl This test program is due to Mike Hibler . - dnl We don't actually need to run this if we don't have putenv, but it - dnl doesn't hurt. - AC_DEFUN([OCTAVE_SMART_PUTENV], - [AC_MSG_CHECKING([whether putenv uses malloc]) - AC_CACHE_VAL(octave_cv_func_putenv_malloc, - [AC_RUN_IFELSE([AC_LANG_SOURCE([[ - #define VAR "YOW_VAR" - #define STRING1 "GabbaGabbaHey" - #define STRING2 "Yow!!" /* should be shorter than STRING1 */ - extern char *getenv (); /* in case char* and int don't mix gracefully */ - main () - { - char *str1, *rstr1, *str2, *rstr2; - str1 = getenv (VAR); - if (str1) - exit (1); - str1 = malloc (strlen (VAR) + 1 + strlen (STRING1) + 1); - if (str1 == 0) - exit (2); - strcpy (str1, VAR); - strcat (str1, "="); - strcat (str1, STRING1); - if (putenv (str1) < 0) - exit (3); - rstr1 = getenv (VAR); - if (rstr1 == 0) - exit (4); - rstr1 -= strlen (VAR) + 1; - if (strncmp (rstr1, VAR, strlen (VAR))) - exit (5); - str2 = malloc (strlen (VAR) + 1 + strlen (STRING2) + 1); - if (str2 == 0 || str1 == str2) - exit (6); - strcpy (str2, VAR); - strcat (str2, "="); - strcat (str2, STRING2); - if (putenv (str2) < 0) - exit (7); - rstr2 = getenv (VAR); - if (rstr2 == 0) - exit (8); - rstr2 -= strlen (VAR) + 1; - #if 0 - printf ("rstr1=0x%x, rstr2=0x%x\n", rstr1, rstr2); - /* - * If string from first call was reused for the second call, - * you had better not do a free on the first string! - */ - if (rstr1 == rstr2) - printf ("#define SMART_PUTENV\n"); - else - printf ("#undef SMART_PUTENV\n"); - #endif - exit (rstr1 == rstr2 ? 0 : 1); - }]])], octave_cv_func_putenv_malloc=yes, octave_cv_func_putenv_malloc=no, - octave_cv_func_putenv_malloc=no)])dnl - AC_MSG_RESULT([$octave_cv_func_putenv_malloc]) - if test $octave_cv_func_putenv_malloc = yes; then - AC_DEFINE(SMART_PUTENV,1,[To quiet autoheader.]) - fi]) - dnl - dnl Check to see if C++ compiler needs the new friend template declaration - dnl syntax. - dnl - dnl OCTAVE_CXX_NEW_FRIEND_TEMPLATE_DECL - AC_DEFUN([OCTAVE_CXX_NEW_FRIEND_TEMPLATE_DECL], [ - AC_REQUIRE([AC_PROG_CXX]) - AC_MSG_CHECKING([for C++ support for new friend template declaration]) - AC_CACHE_VAL(octave_cv_cxx_new_friend_template_decl, [ - AC_LANG_PUSH(C++) - rm -f conftest.h - cat > conftest.h < int - operator== (const T&, const T&) - { - return 0; - } - EOB - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "conftest.h"]], - [[A a (1); - return a == A(1);]])], - [octave_cv_cxx_new_friend_template_decl=no], - [octave_cv_cxx_new_friend_template_decl=yes]) - AC_LANG_POP(C++) - ]) - AC_MSG_RESULT([$octave_cv_cxx_new_friend_template_decl]) - if test $octave_cv_cxx_new_friend_template_decl = yes; then - AC_DEFINE(CXX_NEW_FRIEND_TEMPLATE_DECL,1,[Define if your compiler supports `<>' stuff for template friends.]) - fi - ]) - dnl - dnl Check to see if C compiler handles FLAG command line option. If - dnl two arguments are specified, execute the second arg as shell - dnl commands. Otherwise, add FLAG to CFLAGS if the compiler accepts - dnl the flag. - dnl - dnl OCTAVE_CC_FLAG - AC_DEFUN([OCTAVE_CC_FLAG], [ - ac_safe=`echo "$1" | sed 'y%./+-:=%__p___%'` - AC_MSG_CHECKING([whether ${CC-cc} accepts $1]) - AC_CACHE_VAL(octave_cv_cc_flag_$ac_safe, [ - AC_LANG_PUSH(C) - XCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $1" - AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], - eval "octave_cv_cc_flag_$ac_safe=yes", - eval "octave_cv_cc_flag_$ac_safe=no") - CFLAGS="$XCFLAGS" - AC_LANG_POP(C) - ]) - if eval "test \"`echo '$octave_cv_cc_flag_'$ac_safe`\" = yes"; then - AC_MSG_RESULT(yes) - ifelse([$2], , [ - CFLAGS="$CFLAGS $1" - AC_MSG_RESULT([adding $1 to CFLAGS])], [$2]) - else - AC_MSG_RESULT(no) - ifelse([$3], , , [$3]) - fi - ]) - dnl - dnl Check to see if C++ compiler handles FLAG command line option. If - dnl two arguments are specified, execute the second arg as shell - dnl commands. Otherwise, add FLAG to CXXFLAGS if the compiler accepts - dnl the flag. - dnl - dnl OCTAVE_CXX_FLAG - AC_DEFUN([OCTAVE_CXX_FLAG], [ - ac_safe=`echo "$1" | sed 'y%./+-:=%__p___%'` - AC_MSG_CHECKING([whether ${CXX-g++} accepts $1]) - AC_CACHE_VAL(octave_cv_cxx_flag_$ac_safe, [ - AC_LANG_PUSH(C++) - XCXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS $1" - AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], - eval "octave_cv_cxx_flag_$ac_safe=yes", - eval "octave_cv_cxx_flag_$ac_safe=no") - CXXFLAGS="$XCXXFLAGS" - AC_LANG_POP(C++) - ]) - if eval "test \"`echo '$octave_cv_cxx_flag_'$ac_safe`\" = yes"; then - AC_MSG_RESULT(yes) - ifelse([$2], , [ - CXXFLAGS="$CXXFLAGS $1" - AC_MSG_RESULT([adding $1 to CXXFLAGS])], [$2]) - else - AC_MSG_RESULT(no) - ifelse([$3], , , [$3]) - fi - ]) - dnl - dnl Check to see if Fortran compiler handles FLAG command line option. If - dnl two arguments are specified, execute the second arg as shell - dnl commands. Otherwise, add FLAG to FFLAGS if the compiler accepts - dnl the flag. - dnl - dnl OCTAVE_F77_FLAG - AC_DEFUN([OCTAVE_F77_FLAG], [ - ac_safe=`echo "$1" | sed 'y%./+-:=%__p___%'` - AC_MSG_CHECKING([whether ${F77-g77} accepts $1]) - AC_CACHE_VAL(octave_cv_f77_flag_$ac_safe, [ - AC_LANG_PUSH(Fortran 77) - XFFLAGS="$FFLAGS" - FFLAGS="$FFLAGS $1" - AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], - eval "octave_cv_f77_flag_$ac_safe=yes", - eval "octave_cv_f77_flag_$ac_safe=no") - FFLAGS="$XFFLAGS" - AC_LANG_POP(Fortran 77) - ]) - if eval "test \"`echo '$octave_cv_f77_flag_'$ac_safe`\" = yes"; then - AC_MSG_RESULT(yes) - ifelse([$2], , [ - FFLAGS="$FFLAGS $1" - AC_MSG_RESULT([adding $1 to FFLAGS])], [$2]) - else - AC_MSG_RESULT(no) - ifelse([$3], , , [$3]) - fi - ]) - dnl - dnl Check to see whether the default Fortran INTEGER is 64 bits wide. - dnl - AC_DEFUN([OCTAVE_CHECK_FORTRAN_INTEGER_SIZE], [ - octave_fintsize_save_FFLAGS="$FFLAGS" - FFLAGS="$FFLAGS $F77_INTEGER_8_FLAG" - AC_LANG_PUSH(Fortran 77) - AC_CACHE_CHECK([whether $F77 generates correct size integers], - [octave_cv_fortran_integer_size], - [AC_COMPILE_IFELSE( - [ subroutine foo(n, in, out) - integer n, in(n), out(n) - integer i - do 10 i = 1, n - out(i) = in(i) - 10 continue - return - end], - [mv conftest.$ac_objext fintsize.$ac_objext - - octave_fintsize_save_LIBS="$LIBS" - LIBS="fintsize.$ac_objext $[]_AC_LANG_PREFIX[]LIBS" - AC_LANG_PUSH(C)dnl - AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ - #ifdef USE_64_BIT_IDX_T - #if IDX_TYPE_LONG - typedef long octave_idx_type; - #else - typedef int octave_idx_type; - #endif - #else - typedef int octave_idx_type; - #endif - octave_idx_type n = 2; - octave_idx_type in[2]; - octave_idx_type out[2]; - in[0] = 13; - in[0] = 42; - F77_FUNC(foo,FOO) (&n, &in, &out); - assert (in[0] == out[0] && in[1] == out[1]); - ]])], - [octave_cv_fortran_integer_size=yes], - [octave_cv_fortran_integer_size=no]) - AC_LANG_POP(C)dnl - LIBS="$octave_fintsize_save_LIBS" - rm -f conftest.$ac_objext fintsize.$ac_objext - ], [ - rm -f conftest.$ac_objext - AC_MSG_FAILURE([cannot compile a simple Fortran program]) - octave_cv_fortran_integer_size=no])]) - AC_LANG_POP(Fortran 77) - FFLAGS="$octave_fintsize_save_FFLAGS" - ]) - dnl - dnl - dnl - dnl OCTAVE_CHECK_LIBRARY(LIBRARY, DOC-NAME, WARN-MSG, HEADER, FUNC, - dnl LANG, DOC-STRING, EXTRA-CHECK) - AC_DEFUN([OCTAVE_CHECK_LIBRARY], [ - AC_ARG_WITH([$1-includedir], - [AS_HELP_STRING([--with-$1-includedir=DIR], - [look for $2 include files in DIR])], - [m4_toupper([$1])_CPPFLAGS="-I$withval"]) - AC_SUBST(m4_toupper([$1])_CPPFLAGS) - - AC_ARG_WITH([$1-libdir], - [AS_HELP_STRING([--with-$1-libdir=DIR], - [look for $2 libraries in DIR])], - [m4_toupper([$1])_LDFLAGS="-L$withval"]) - AC_SUBST(m4_toupper([$1])_LDFLAGS) - - AC_ARG_WITH([$1], - [m4_ifblank([$7], - [AS_HELP_STRING([--without-$1], [don't use $2 library])], - [AS_HELP_STRING([--without-$1], [$7])])], - with_$1=$withval, with_$1=yes) - - m4_toupper([$1])_LIBS= - case $with_$1 in - no) - m4_toupper([$1])_LIBS= - ;; - yes | "") - m4_toupper([$1])_LIBS="-l$1" - ;; - -* | */* | *.a | *.so | *.so.* | *.o) - m4_toupper([$1])_LIBS="$with_$1" - ;; - *) - m4_toupper([$1])_LIBS="-l$with_$1" - ;; - esac - - [TEXINFO_]m4_toupper([$1])= - warn_$1="$3" - if test -n "$m4_toupper([$1])_LIBS"; then - octave_check_library_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$m4_toupper([$1])_CPPFLAGS $CPPFLAGS" - m4_ifnblank([$6], [AC_LANG_PUSH($6)]) - octave_$1_check_for_lib=false - m4_ifblank([$4], [octave_$1_check_for_lib=true], - [AC_CHECK_HEADERS($4, [octave_$1_check_for_lib=true; break])]) - if $octave_$1_check_for_lib; then - octave_check_library_save_LDFLAGS="$LDFLAGS" - LDFLAGS="$m4_toupper([$1])_LDFLAGS $LDFLAGS" - octave_check_library_save_LIBS="$LIBS" - LIBS="$m4_toupper([$1])_LIBS $LIBS" - octave_$1_ok=no - AC_MSG_CHECKING([for $5 in $m4_toupper([$1])_LIBS]) - AC_LINK_IFELSE([AC_LANG_CALL([], [$5])], - [octave_$1_ok=yes]) - AC_MSG_RESULT([$octave_$1_ok]) - if test $octave_$1_ok = yes; then - m4_ifblank([$8], [ - warn_$1= - AC_DEFINE([HAVE_]m4_toupper([$1]), 1, - [Define if $2 is available.]) - [TEXINFO_]m4_toupper([$1])="@set [HAVE_]m4_toupper([$1])"], [$8]) - fi - LIBS="$octave_check_library_save_LIBS" - LDFLAGS="$octave_check_library_save_LDFLAGS" - fi - m4_ifnblank([$6], [AC_LANG_POP($6)]) - CPPFLAGS="$octave_check_library_save_CPPFLAGS" - fi - AC_SUBST(m4_toupper([$1])_LIBS) - AC_SUBST([TEXINFO_]m4_toupper([$1])) - if test -n "$warn_$1"; then - AC_MSG_WARN([$warn_$1]) - m4_toupper([$1])_LIBS= - fi - ]) - dnl - dnl Check for flex - dnl - AC_DEFUN([OCTAVE_PROG_FLEX], [ - ### For now, don't define LEXLIB to be -lfl -- we don't use anything in - ### it, and it might not be installed. - ### - ### Also make sure that we generate an interactive scanner if we are - ### using flex. - AC_PROG_LEX - case "$LEX" in - flex*) - LFLAGS="-I" - AC_MSG_RESULT([defining LFLAGS to be $LFLAGS]) - LEXLIB= - ;; - *) - LEX='$(top_srcdir)/missing flex' - warn_flex="I didn't find flex, but it's only a problem if you need to reconstruct lex.cc" - AC_MSG_WARN([$warn_flex]) - ;; - esac - AC_SUBST(LFLAGS) - ]) - dnl - dnl Check for bison - dnl - AC_DEFUN([OCTAVE_PROG_BISON], [ - AC_PROG_YACC - case "$YACC" in - bison*) - ;; - *) - YACC='$(top_srcdir)/missing bison' - warn_bison="I didn't find bison, but it's only a problem if you need to reconstruct parse.cc" - AC_MSG_WARN([$warn_bison]) - ;; - esac - ]) - dnl - dnl What pager should we use? - dnl - AC_DEFUN([OCTAVE_PROG_PAGER], - [if test "$cross_compiling" = yes; then - DEFAULT_PAGER=less - AC_MSG_RESULT([assuming $DEFAULT_PAGER exists on $canonical_host_type host]) - AC_SUBST(DEFAULT_PAGER) - else - octave_possible_pagers="less more page pg" - case "$canonical_host_type" in - *-*-cygwin* | *-*-mingw32* | *-*-msdosmsvc) - octave_possible_pagers="$octave_possible_pagers more.com" - ;; - esac - - AC_CHECK_PROGS(DEFAULT_PAGER, $octave_possible_pagers, []) - if test -z "$DEFAULT_PAGER"; then - warn_less="I couldn't find \`less', \`more', \`page', or \`pg'" - AC_MSG_WARN([$warn_less]) - fi - fi - ]) - dnl - dnl Does gnuplot exist? - dnl - AC_DEFUN([OCTAVE_PROG_GNUPLOT], [ - gp_names="gnuplot" - gp_default="gnuplot" - if test "$cross_compiling" = yes; then - GNUPLOT="$gp_default" - AC_MSG_RESULT([assuming $GNUPLOT exists on $canonical_host_type host]) - else - AC_CHECK_PROGS(GNUPLOT, [$gp_names]) - if test -z "$GNUPLOT"; then - warn_gnuplot=yes - - GNUPLOT="$gp_default" - - AC_MSG_WARN([gnuplot not found. It isn't necessary to have gnuplot]) - AC_MSG_WARN([installed, but without native graphics or gnuplot]) - AC_MSG_WARN([you won't be able to use any of Octave's plotting commands.]) - fi - fi - AC_SUBST(GNUPLOT) - ]) - dnl - dnl Is gperf installed? - dnl - dnl OCTAVE_PROG_GPERF - AC_DEFUN([OCTAVE_PROG_GPERF], [ - AC_CHECK_PROG(GPERF, gperf, gperf, []) - if test -z "$GPERF"; then - GPERF='$(top_srcdir)/missing gperf' - warn_gperf="I didn't find gperf, but it's only a problem if you need to reconstruct oct-gperf.h" - AC_MSG_WARN([$warn_gperf]) - fi - AC_SUBST(GPERF) - ]) - dnl - dnl Is ghostscript installed? - dnl - dnl OCTAVE_PROG_GHOSTSCRIPT - AC_DEFUN([OCTAVE_PROG_GHOSTSCRIPT], [ - case "$canonical_host_type" in - *-*-mingw* | *-*-msdosmsvc) - gs_names="gswin32c gs" - ;; - *) - gs_names="gs" - ;; - esac - AC_CHECK_PROGS(GHOSTSCRIPT, [$gs_names]) - if test -z "$GHOSTSCRIPT"; then - GHOSTSCRIPT='$(top_srcdir)/missing gs' - warn_ghostscript="I didn't find ghostscript, so reconstructing figures for the manual will fail, and saving graphics in some output formats will fail when using Octave" - AC_MSG_WARN([$warn_ghostscript]) - fi - AC_SUBST(GHOSTSCRIPT) - ]) - dnl - dnl Is texi2dvi installed? - dnl - dnl OCTAVE_PROG_TEXI2DVI - AC_DEFUN([OCTAVE_PROG_TEXI2DVI], [ - AC_CHECK_PROG(TEXI2DVI, texi2dvi, texi2dvi, []) - if test -z "$TEXI2DVI"; then - TEXI2DVI='$(top_srcdir)/missing texi2dvi' - warn_texi2dvi="I didn't find texi2dvi, but it's only a problem if you need to reconstruct the DVI version of the manual" - AC_MSG_WARN([$warn_texi2dvi]) - fi - AC_SUBST(TEXI2DVI) - ]) - dnl - dnl Is texi2pdf installed? - dnl - dnl OCTAVE_PROG_TEXI2PDF - AC_DEFUN([OCTAVE_PROG_TEXI2PDF], [ - AC_REQUIRE([OCTAVE_PROG_TEXI2DVI]) - AC_CHECK_PROG(TEXI2PDF, texi2pdf, texi2pdf, []) - if test -z "$TEXI2PDF"; then - missing=true; - if test -n "$TEXI2DVI"; then - TEXI2PDF="$TEXI2DVI --pdf" - missing=false; - fi - else - missing=false; - fi - if $missing; then - TEXI2PDF='$(top_srcdir)/missing texi2pdf' - warn_texi2pdf="I didn't find texi2pdf, but it's only a problem if you need to reconstruct the PDF version of the manual" - AC_MSG_WARN([$warn_texi2pdf]) - fi - AC_SUBST(TEXI2PDF) - ]) - dnl - dnl See if the C++ library is ISO compliant. - dnl FIXME: This is obviously very simplistic, and trivially fooled. - dnl - dnl OCTAVE_CXX_ISO_COMPLIANT_LIBRARY - AC_DEFUN([OCTAVE_CXX_ISO_COMPLIANT_LIBRARY], [ - AC_REQUIRE([AC_PROG_CXX]) - AC_MSG_CHECKING([if C++ library is ISO compliant]) - AC_CACHE_VAL(octave_cv_cxx_iso_compliant_library, [ - AC_LANG_PUSH(C++) - rm -f conftest.h - ### Omitting cwctype for now, since it is broken with gcc-3.0.x and - ### possibly other versions... - for inc in algorithm bitset cassert cctype cerrno cfloat ciso646 \ - climits clocale cmath complex csetjmp csignal cstdarg cstddef \ - cstdio cstdlib cstring ctime cwchar deque exception \ - fstream functional iomanip ios iosfwd iostream istream iterator \ - limits list locale map memory new numeric ostream queue set \ - sstream stack stdexcept streambuf string strstream typeinfo \ - utility valarray vector; do - echo "#include <$inc>" >> conftest.h - done - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "conftest.h"]], - [[std::bitset<50> flags; - flags.set(); - int digits = std::numeric_limits::digits; - digits = 0;]])], - [octave_cv_cxx_iso_compliant_library=yes], - [octave_cv_cxx_iso_compliant_library=no]) - AC_LANG_POP(C++) - ]) - AC_MSG_RESULT([$octave_cv_cxx_iso_compliant_library]) - if test $octave_cv_cxx_iso_compliant_library = yes; then - AC_DEFINE(CXX_ISO_COMPLIANT_LIBRARY, 1, [Define if your C++ runtime library is ISO compliant.]) - fi - ]) - dnl - dnl Allow the user disable support for command line editing using GNU - dnl readline. - dnl - dnl OCTAVE_ENABLE_READLINE - AC_DEFUN([OCTAVE_ENABLE_READLINE], [ - USE_READLINE=true - READLINE_LIBS= - AC_ARG_ENABLE(readline, - [ --enable-readline use readline library (default is yes)], - [if test "$enableval" = no; then - USE_READLINE=false - warn_readline="command editing and history features require GNU Readline" - fi]) - if $USE_READLINE; then - save_LIBS="$LIBS" - LIBS="$TERM_LIBS" - AC_CHECK_LIB(readline, rl_set_keyboard_input_timeout, [ - READLINE_LIBS="-lreadline" - AC_DEFINE(USE_READLINE, 1, [Define to use the readline library.]) - ], [ - AC_MSG_WARN([I need GNU Readline 4.2 or later]) - AC_MSG_ERROR([this is fatal unless you specify --disable-readline]) - ]) - LIBS="$save_LIBS" - fi - AC_SUBST(READLINE_LIBS) - ]) - dnl - dnl Check to see if C++ reintrepret cast works for function pointers. - dnl - dnl OCTAVE_CXX_BROKEN_REINTERPRET_CAST - dnl - AC_DEFUN([OCTAVE_CXX_BROKEN_REINTERPRET_CAST], [ - AC_REQUIRE([AC_PROG_CXX]) - AC_LANG_PUSH(C++) - AC_CACHE_CHECK([for broken C++ reinterpret_cast], - octave_cv_cxx_broken_reinterpret_cast, [ - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ - typedef double (*fptr) (double); - fptr psin = sin; - void *vptr = reinterpret_cast (psin); - psin = reinterpret_cast (vptr);]])], - octave_cv_cxx_broken_reinterpret_cast=no, - octave_cv_cxx_broken_reinterpret_cast=yes)]) - if test $octave_cv_cxx_broken_reinterpret_cast = yes ; then - AC_DEFINE(CXX_BROKEN_REINTERPRET_CAST, 1, [Define if C++ reinterpret_cast fails for function pointers.]) - fi - AC_LANG_POP(C++)]) - dnl - dnl Find find. - dnl - # Prefer GNU find if found. - AN_MAKEVAR([FIND], [OCTAVE_PROG_FIND]) - AN_PROGRAM([gfind], [OCTAVE_PROG_FIND]) - AN_PROGRAM([find], [OCTAVE_PROG_FIND]) - AC_DEFUN([OCTAVE_PROG_FIND], - [AC_CHECK_PROGS(FIND, gfind find, )]) - dnl - dnl Find sed. - dnl - # Check for a fully-functional sed program, that truncates - # as few characters as possible and that supports "\(X\|Y\)" - # style regular expression alternation. Prefer GNU sed if found. - AC_DEFUN([OCTAVE_PROG_SED], - [AC_MSG_CHECKING([for a usable sed]) - if test -z "$SED"; then - AC_CACHE_VAL(ac_cv_path_sed, [ - # Loop through the user's path and test for sed and gsed. - # Then use that list of sed's as ones to test for truncation. - _AS_PATH_WALK([$PATH], - [for ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if AS_EXECUTABLE_P(["$as_dir/$ac_prog$ac_exec_ext"]); then - _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" - fi - done - done - ]) - AS_TMPDIR(sed) - _max=0 - _count=0 - # Add /usr/xpg4/bin/sed as it is typically found on Solaris - # along with /bin/sed that truncates output. - for _sed in $_sed_list /usr/xpg4/bin/sed; do - test ! -f ${_sed} && break - cat /dev/null > "$tmp/sed.in" - _count=0 - echo $ECHO_N "0123456789$ECHO_C" >"$tmp/sed.in" - # Check for GNU sed and select it if it is found. - if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then - octave_cv_path_sed=${_sed} - break; - fi - # Reject if RE alternation is not handled. - if test "`echo 'this and that' | ${_sed} -n 's/\(this\|that\).*$/\1/p'`" != "this"; then - continue; - fi - while true; do - cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" - mv "$tmp/sed.tmp" "$tmp/sed.in" - cp "$tmp/sed.in" "$tmp/sed.nl" - echo >>"$tmp/sed.nl" - ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break - cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break - # 10000 chars as input seems more than enough - test $_count -gt 10 && break - _count=`expr $_count + 1` - if test $_count -gt $_max; then - _max=$_count - octave_cv_path_sed=$_sed - fi - done - done - rm -rf "$tmp" - ]) - SED=$octave_cv_path_sed - if test -z "$SED"; then - AC_MSG_ERROR([no usable version of sed found]) - fi - fi - AC_SUBST(SED) - AC_MSG_RESULT([$SED]) - ]) - dnl - dnl Find Perl. - dnl - dnl OCTAVE_PROG_PERL - AC_DEFUN([OCTAVE_PROG_PERL], - [AC_CHECK_PROG(PERL, perl, perl, []) - AC_SUBST(PERL) - ]) - dnl - dnl Find Python. - dnl - dnl OCTAVE_PROG_PYTHON - AC_DEFUN([OCTAVE_PROG_PYTHON], - [AC_CHECK_PROG(PYTHON, python, python, []) - AC_SUBST(PYTHON) - ]) - dnl - dnl Find desktop-file-install. - dnl - dnl OCTAVE_PROG_DESKTOP_FILE_INSTALL - AC_DEFUN([OCTAVE_PROG_DESKTOP_FILE_INSTALL], - [AC_CHECK_PROG(DESKTOP_FILE_INSTALL, desktop-file-install, desktop-file-install, []) - AC_SUBST(DESKTOP_FILE_INSTALL) - ]) - dnl - dnl Check for IEEE 754 data format. - dnl - AC_DEFUN([OCTAVE_IEEE754_DATA_FORMAT], - [AC_MSG_CHECKING([for IEEE 754 data format]) - AC_CACHE_VAL(octave_cv_ieee754_data_format, - [AC_RUN_IFELSE([AC_LANG_SOURCE([[ - int - main (void) - { - typedef union { unsigned char c[8]; double d; } ieeebytes; - - ieeebytes l = {0x1c, 0xbc, 0x6e, 0xf2, 0x54, 0x8b, 0x11, 0x43}; - ieeebytes b = {0x43, 0x11, 0x8b, 0x54, 0xf2, 0x6e, 0xbc, 0x1c}; - - return l.d != 1234567891234567.0 && b.d != 1234567891234567.0; - }]])], - octave_cv_ieee754_data_format=yes, - octave_cv_ieee754_data_format=no, - octave_cv_ieee754_data_format=no)]) - if test "$cross_compiling" = yes; then - AC_MSG_RESULT([$octave_cv_ieee754_data_format assumed for cross compilation]) - else - AC_MSG_RESULT([$octave_cv_ieee754_data_format]) - fi - if test "$octave_cv_ieee754_data_format" = yes; then - AC_DEFINE(HAVE_IEEE754_DATA_FORMAT, 1, [Define if your system uses IEEE 754 data format.]) - else - ## If the format is unknown, then you will probably not have a - ## useful system, so we will abort here. Anyone wishing to - ## experiment with building Octave on a system without IEEE - ## floating point should be capable of removing this check and - ## the one in the octave_ieee_init function in liboctave/lo-ieee.cc. - AC_MSG_ERROR([IEEE 754 data format required for building Octave]) - fi - ]) - dnl - dnl Check for UMFPACK seperately split complex matrix and RHS. Note - dnl that as umfpack.h can be in three different places, rather than - dnl include it, just declare the functions needed. - dnl - dnl Assumes that the check for umfpack has already been performed. - dnl - AC_DEFUN([OCTAVE_UMFPACK_SEPERATE_SPLIT], - [AC_MSG_CHECKING([for UMFPACK seperate complex matrix and rhs split]) - AC_CACHE_VAL(octave_cv_umfpack_seperate_split, - [AC_RUN_IFELSE([AC_LANG_SOURCE([[ - #include - #if defined (HAVE_UFSPARSE_UMFPACK_h) - #include - #elif defined (HAVE_UMFPACK_UMFPACK_H) - #include - #elif defined (HAVE_UMFPACK_H) - #include - #endif - int n = 5; - int Ap[] = {0, 2, 5, 9, 10, 12}; - int Ai[] = {0, 1, 0, 2, 4, 1, 2, 3, 4, 2, 1, 4}; - double Ax[] = {2., 0., 3., 0., 3., 0., -1., 0., 4., 0., 4., 0., - -3., 0., 1., 0., 2., 0., 2., 0., 6., 0., 1., 0.}; - double br[] = {8., 45., -3., 3., 19.}; - double bi[] = {0., 0., 0., 0., 0.}; - int main (void) - { - double *null = (double *) NULL ; - double *x = (double *)malloc (2 * n * sizeof(double)); - int i ; - void *Symbolic, *Numeric ; - (void) umfpack_zi_symbolic (n, n, Ap, Ai, Ax, null, &Symbolic, null, null) ; - (void) umfpack_zi_numeric (Ap, Ai, Ax, null, Symbolic, &Numeric, null, null) ; - umfpack_zi_free_symbolic (&Symbolic) ; - (void) umfpack_zi_solve (0, Ap, Ai, Ax, null, x, null, br, bi, - Numeric, null, null) ; - umfpack_zi_free_numeric (&Numeric) ; - for (i = 0; i < n; i++, x+=2) - if (fabs(*x - i - 1.) > 1.e-13) - return (1); - return (0) ; - } - ]])], - octave_cv_umfpack_seperate_split=yes, - octave_cv_umfpack_seperate_split=no, - octave_cv_umfpack_seperate_split=no)]) - if test "$cross_compiling" = yes; then - AC_MSG_RESULT([$octave_cv_umfpack_seperate_split assumed for cross compilation]) - else - AC_MSG_RESULT([$octave_cv_umfpack_seperate_split]) - fi - if test "$octave_cv_umfpack_seperate_split" = yes; then - AC_DEFINE(UMFPACK_SEPARATE_SPLIT, 1, [Define if the UMFPACK Complex solver allow matrix and RHS to be split independently]) - fi - ]) - dnl - dnl Check whether using HDF5 DLL under Windows. This is done by - dnl testing for a data symbol in the HDF5 library, which would - dnl requires the definition of _HDF5USEDL_ under MSVC compiler. - dnl - AC_DEFUN([OCTAVE_HDF5_DLL], [ - AC_CACHE_CHECK([if _HDF5USEDLL_ needs to be defined],octave_cv_hdf5_dll, [ - AC_TRY_LINK([#include ], [hid_t x = H5T_NATIVE_DOUBLE; return x], - octave_cv_hdf5_dll=no, [ - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -DWIN32 -D_HDF5USEDLL_" - save_LIBS="$LIBS" - LIBS="$HDF5_LIBS $LIBS" - AC_TRY_LINK([#include ], [hid_t x = H5T_NATIVE_DOUBLE; return x], - octave_cv_hdf5_dll=yes, - octave_cv_hdf5_dll=no) - CFLAGS="$save_CFLAGS" - LIBS="$save_LIBS"])]) - if test "$octave_cv_hdf5_dll" = yes; then - AC_DEFINE(_HDF5USEDLL_, 1, [Define if using HDF5 dll (Win32)]) - fi]) - dnl - dnl Check whether HDF5 library has version 1.6 API functions. - dnl - AC_DEFUN([OCTAVE_HDF5_HAS_ENFORCED_16_API], [ - AC_CACHE_CHECK([whether HDF5 library has enforced version 1.6 API], - octave_cv_hdf5_has_enforced_16_api, [ - AC_TRY_LINK([ - #include - ], [ - H5Eset_auto (0, 0);], [ - octave_cv_hdf5_has_enforced_16_api=yes], [ - octave_cv_hdf5_has_enforced_16_api=no])]) - if test "$octave_cv_hdf5_has_enforced_16_api" != "yes"; then - AC_DEFINE(HAVE_HDF5_18, 1, [Define if >=HDF5-1.8 is available.]) - fi - ]) - dnl - dnl Check for the QHull version. - dnl - AC_DEFUN([OCTAVE_CHECK_QHULL_VERSION], - [AC_CACHE_CHECK([for qh_version in $QHULL_LIBS], - octave_cv_lib_qhull_version, [ - AC_LINK_IFELSE([AC_LANG_PROGRAM([[ - #include - ]], [[ - const char *tmp = qh_version; - ]])], [octave_cv_lib_qhull_version=yes], [octave_cv_lib_qhull_version=no])]) - if test "$octave_cv_lib_qhull_version" = no; then - AC_DEFINE(NEED_QHULL_VERSION, 1, - [Define if the QHull library needs a qh_version variable defined.]) - fi - ]) - dnl - dnl Check whether QHull works (does not crash) - dnl - AC_DEFUN([OCTAVE_CHECK_QHULL_OK], - [AC_CACHE_CHECK([whether the qhull library works], - octave_cv_lib_qhull_ok, [ - AC_RUN_IFELSE([AC_LANG_PROGRAM([[ - #include - #include - #ifdef NEED_QHULL_VERSION - char *qh_version = "version"; - #endif - ]], [[ - int dim = 2; - int n = 4; - coordT points[8] = { -0.5, -0.5, -0.5, 0.5, 0.5, -0.5, 0.5, 0.5 }; - boolT ismalloc = 0; - return qh_new_qhull (dim, n, points, ismalloc, "qhull ", 0, stderr); - ]])], [octave_cv_lib_qhull_ok=yes], [octave_cv_lib_qhull_ok=no])]) - if test "$octave_cv_lib_qhull_ok" = "yes"; then - $1 - else - $2 - fi - ]) - dnl - dnl Check for OpenGL. If found, define OPENGL_LIBS - dnl - dnl FIXME -- the following tests should probably check for the - dnl libraries separately. - dnl - dnl FIXME -- should we allow a way to specify a directory for OpenGL - dnl libraries and header files? - dnl - AC_DEFUN([OCTAVE_OPENGL], [ - OPENGL_LIBS= - - ### On MacOSX systems the OpenGL framework can be used - OCTAVE_HAVE_FRAMEWORK(OpenGL, [ - #include - #include ], [GLint par; glGetIntegerv (GL_VIEWPORT, &par);], - [have_framework_opengl="yes"], [have_framework_opengl="no"]) - - if test $have_framework_opengl = "yes"; then - AC_DEFINE(HAVE_FRAMEWORK_OPENGL, 1, [Define if framework OPENGL is available.]) - OPENGL_LIBS="-Wl,-framework -Wl,OpenGL" - AC_MSG_NOTICE([adding -Wl,-framework -Wl,OpenGL to OPENGL_LIBS]) - OCTAVE_GLUTESSCALLBACK_THREEDOTS - else - case $canonical_host_type in - *-*-mingw32* | *-*-msdosmsvc) - AC_CHECK_HEADERS(windows.h) - ;; - esac - have_opengl_incs=no - AC_CHECK_HEADERS([GL/gl.h OpenGL/gl.h], [ - AC_CHECK_HEADERS([GL/glu.h OpenGL/glu.h], [ - have_opengl_incs=yes; break], [], [ - #ifdef HAVE_WINDOWS_H - #include - #endif - ]) - break - ], [], [ - #ifdef HAVE_WINDOWS_H - #include - #endif - ]) - - if test "$have_opengl_incs" = "yes"; then - case $canonical_host_type in - *-*-mingw32* | *-*-msdosmsvc) - save_LIBS="$LIBS" - LIBS="$LIBS -lopengl32" - AC_MSG_CHECKING([for glEnable in -lopengl32]) - AC_TRY_LINK([ - #if HAVE_WINDOWS_H - #include - #endif - #if defined (HAVE_GL_GL_H) - #include - #elif defined (HAVE_OPENGL_GL_H) - #include - #endif - ], [glEnable(GL_SMOOTH);], OPENGL_LIBS="-lopengl32 -lglu32") - LIBS="$save_LIBS" - if test "x$OPENGL_LIBS" != "x"; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - fi - ;; - *) - AC_CHECK_LIB(GL, glEnable, OPENGL_LIBS="-lGL -lGLU") - ;; - esac - fi - fi - AC_SUBST(OPENGL_LIBS) - ]) - dnl - dnl See if function gluTessCallback is called with "(...)" - dnl - dnl OCTAVE_GLUTESSCALLBACK_THREEDOTS - AC_DEFUN([OCTAVE_GLUTESSCALLBACK_THREEDOTS], - [AC_CACHE_CHECK([whether gluTessCallback is called with "(...)"], - octave_cv_glutesscallback_threedots, - [AC_LANG_PUSH(C++) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ - #ifdef HAVE_GL_GLU_H - #include - #elif defined HAVE_OPENGL_GLU_H || defined HAVE_FRAMEWORK_OPENGL - #include - #endif]], - [[GLvoid (*func)(...); gluTessCallback(0, 0, func);]])], - octave_cv_glutesscallback_threedots="yes", octave_cv_glutesscallback_threedots="no")]) - AC_LANG_POP(C++) - if test $octave_cv_glutesscallback_threedots = "yes"; then - AC_DEFINE(HAVE_GLUTESSCALLBACK_THREEDOTS, 1, - [Define if gluTessCallback is called with (...)]) - fi - ]) - dnl - dnl Check for support of OpenMP with a given compiler flag. If - dnl found define HAVE_OPENMP and add the compile flag to CFLAGS - dnl and CXXFLAGS. - dnl - AC_DEFUN([OCTAVE_CHECK_OPENMP], - [AC_MSG_CHECKING([for support of OpenMP]) - XCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $1" - AC_CACHE_VAL(octave_cv_check_openmp,[ - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ - #include - #include - ]], [[ - int main(int argc, char* argv[]) - { - _Pragma("omp parallel") - printf("Hello, world.\n"); - return 0; - } - ]])],octave_cv_openmp=yes, octave_cv_openmmp=no, octave_cv_openmp=no)]) - AC_MSG_RESULT($octave_cv_openmp) - if test "$octave_cv_openmp" = yes; then - AC_DEFINE(HAVE_OPENMP,1,[Define if compiler supports OpenMP]) - CXXFLAGS="$CXXFLAGS $1" - else - CFLAGS="$XCFLAGS" - fi - ]) - dnl - dnl Configure paths for FreeType2 - dnl Marcelo Magallon 2001-10-26, based on gtk.m4 by Owen Taylor - dnl - dnl Copyright 2001, 2003 by - dnl David Turner, Robert Wilhelm, and Werner Lemberg. - dnl - dnl This file is part of the FreeType project, and may only be used, modified, - dnl and distributed under the terms of the FreeType project license, - dnl LICENSE.TXT. By continuing to use, modify, or distribute this file you - dnl indicate that you have read the license and understand and accept it - dnl fully. - dnl - dnl As a special exception to the FreeType project license, this file may be - dnl distributed as part of a program that contains a configuration script - dnl generated by Autoconf, under the same distribution terms as the rest of - dnl that program. - dnl - dnl serial 2 - dnl - dnl AC_CHECK_FT2([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) - dnl Test for FreeType 2, and define FT2_CFLAGS and FT2_LIBS. - dnl MINIMUM-VERSION is what libtool reports; the default is `7.0.1' (this is - dnl FreeType 2.0.4). - dnl - AC_DEFUN([AC_CHECK_FT2], - [dnl Get the cflags and libraries from the freetype-config script - dnl - AC_ARG_WITH([ft-prefix], - dnl don't quote AS_HELP_STRING! - AS_HELP_STRING([--with-ft-prefix=PREFIX], - [Prefix where FreeType is installed (optional)]), - [ft_config_prefix="$withval"], - [ft_config_prefix=""]) - - AC_ARG_WITH([ft-exec-prefix], - dnl don't quote AS_HELP_STRING! - AS_HELP_STRING([--with-ft-exec-prefix=PREFIX], - [Exec prefix where FreeType is installed (optional)]), - [ft_config_exec_prefix="$withval"], - [ft_config_exec_prefix=""]) - - AC_ARG_ENABLE([freetypetest], - dnl don't quote AS_HELP_STRING! - AS_HELP_STRING([--disable-freetypetest], - [Do not try to compile and run a test FreeType program]), - [], - [enable_fttest=yes]) - - if test x$ft_config_exec_prefix != x ; then - ft_config_args="$ft_config_args --exec-prefix=$ft_config_exec_prefix" - if test x${FT2_CONFIG+set} != xset ; then - FT2_CONFIG=$ft_config_exec_prefix/bin/freetype-config - fi - fi - - if test x$ft_config_prefix != x ; then - ft_config_args="$ft_config_args --prefix=$ft_config_prefix" - if test x${FT2_CONFIG+set} != xset ; then - FT2_CONFIG=$ft_config_prefix/bin/freetype-config - fi - fi - - AC_PATH_PROG([FT2_CONFIG], [freetype-config], [no]) - - min_ft_version=m4_if([$1], [], [7.0.1], [$1]) - AC_MSG_CHECKING([for FreeType -- version >= $min_ft_version]) - no_ft="" - if test "$FT2_CONFIG" = "no" ; then - no_ft=yes - else - FT2_CFLAGS=`$FT2_CONFIG $ft_config_args --cflags` - FT2_LIBS=`$FT2_CONFIG $ft_config_args --libs` - ft_config_major_version=`$FT2_CONFIG $ft_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - ft_config_minor_version=`$FT2_CONFIG $ft_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - ft_config_micro_version=`$FT2_CONFIG $ft_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - ft_min_major_version=`echo $min_ft_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - ft_min_minor_version=`echo $min_ft_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - ft_min_micro_version=`echo $min_ft_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - if test x$enable_fttest = xyes ; then - ft_config_is_lt="" - if test $ft_config_major_version -lt $ft_min_major_version ; then - ft_config_is_lt=yes - else - if test $ft_config_major_version -eq $ft_min_major_version ; then - if test $ft_config_minor_version -lt $ft_min_minor_version ; then - ft_config_is_lt=yes - else - if test $ft_config_minor_version -eq $ft_min_minor_version ; then - if test $ft_config_micro_version -lt $ft_min_micro_version ; then - ft_config_is_lt=yes - fi - fi - fi - fi - fi - if test x$ft_config_is_lt = xyes ; then - no_ft=yes - else - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $FT2_CFLAGS" - LIBS="$FT2_LIBS $LIBS" - - dnl - dnl Sanity checks for the results of freetype-config to some extent. - dnl - AC_RUN_IFELSE([ - AC_LANG_SOURCE([[ - - #include - #include FT_FREETYPE_H - #include - #include - - int - main() - { - FT_Library library; - FT_Error error; - - error = FT_Init_FreeType(&library); - - if (error) - return 1; - else - { - FT_Done_FreeType(library); - return 0; - } - } - - ]]) - ], - [], - [no_ft=yes], - [echo $ECHO_N "cross compiling; assuming OK... $ECHO_C"]) - - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi dnl test $ft_config_version -lt $ft_min_version - fi dnl test x$enable_fttest = xyes - fi dnl test "$FT2_CONFIG" = "no" - - if test x$no_ft = x ; then - AC_MSG_RESULT([yes]) - m4_if([$2], [], [:], [$2]) - else - AC_MSG_RESULT([no]) - if test "$FT2_CONFIG" = "no" ; then - AC_MSG_WARN([ - - The freetype-config script installed by FreeType 2 could not be found. - If FreeType 2 was installed in PREFIX, make sure PREFIX/bin is in - your path, or set the FT2_CONFIG environment variable to the - full path to freetype-config. - ]) - else - if test x$ft_config_is_lt = xyes ; then - AC_MSG_WARN([ - - Your installed version of the FreeType 2 library is too old. - If you have different versions of FreeType 2, make sure that - correct values for --with-ft-prefix or --with-ft-exec-prefix - are used, or set the FT2_CONFIG environment variable to the - full path to freetype-config. - ]) - else - AC_MSG_WARN([ - - The FreeType test program failed to run. If your system uses - shared libraries and they are installed outside the normal - system library path, make sure the variable LD_LIBRARY_PATH - (or whatever is appropiate for your system) is correctly set. - ]) - fi - fi - - FT2_CFLAGS="" - FT2_LIBS="" - m4_if([$3], [], [:], [$3]) - fi - - AC_SUBST([FT2_CFLAGS]) - AC_SUBST([FT2_LIBS])]) - dnl end of freetype2.m4 - - dnl Check whether a math mapper function is available in . - dnl Will define HAVE_CMATH_FUNC if there is a double variant and - dnl HAVE_CMATH_FUNCF if there is a float variant. - dnl Currently capable of checking for functions with single - dnl argument and returning bool/int/real. - AC_DEFUN([OCTAVE_CMATH_FUNC],[ - AC_MSG_CHECKING([for std::$1 in ]) - AC_LANG_PUSH(C++) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ - #include - void take_func (bool (*func) (double x)); - void take_func (int (*func) (double x)); - void take_func (double (*func) (double x)); - ]], - [[ - take_func(std::$1); - ]])], - [AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_CMATH_[]AS_TR_CPP($1),1,[Define if provides $1])], - [AC_MSG_RESULT([no])]) - AC_MSG_CHECKING([for std::$1 (float variant) in ]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ - #include - void take_func (bool (*func) (float x)); - void take_func (int (*func) (float x)); - void take_func (float (*func) (float x)); - ]], - [[ - take_func(std::$1); - ]])], - [AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_CMATH_[]AS_TR_CPP($1)F,1,[Define if provides float variant of $1])], - [AC_MSG_RESULT([no])]) - AC_LANG_POP(C++) - ]) - - dnl Check whether fast signed integer arithmetics using bit tricks - dnl can be used in oct-inttypes.h. Defines HAVE_FAST_INT_OPS if - dnl the following conditions hold: - dnl 1. Signed numbers are represented by twos complement - dnl (see ) - dnl 2. static_cast to unsigned int counterpart works like interpreting - dnl the signed bit pattern as unsigned (and is thus zero-cost). - dnl 3. Signed addition and subtraction yield the same bit results as unsigned. - dnl (We use casts to prevent optimization interference, so there is no - dnl need for things like -ftrapv). - dnl 4. Bit operations on signed integers work like on unsigned integers, - dnl except for the shifts. Shifts are arithmetic. - dnl - AC_DEFUN([OCTAVE_FAST_INT_OPS],[ - AC_MSG_CHECKING([whether fast integer arithmetics is usable]) - AC_LANG_PUSH(C++) - AC_RUN_IFELSE([AC_LANG_PROGRAM([[ - #include - template - static bool - do_test (UT, ST) - { - volatile ST s = std::numeric_limits::min () / 3; - volatile UT u = static_cast (s); - if (*(reinterpret_cast (&u)) != s) return true; - - u = 0; u = ~u; - if (*(reinterpret_cast (&u)) != -1) return true; - - ST sx, sy; - sx = std::numeric_limits::max () / 2 + 1; - sy = std::numeric_limits::max () / 2 + 2; - if (static_cast (static_cast (sx) + static_cast (sy)) - != std::numeric_limits::min () + 1) return true; - if (static_cast (static_cast (sx) - static_cast (sy)) - != -1) return true; - - if ((sx & sy) != (static_cast (sx) & static_cast (sy))) - return true; - if ((sx | sy) != (static_cast (sx) | static_cast (sy))) - return true; - if ((sx ^ sy) != (static_cast (sx) ^ static_cast (sy))) - return true; - if ((-1 >> 1) != -1) return true; - return false; - } - - #define DO_TEST(T) \ - if (do_test (static_cast (0), static_cast (0))) \ - return sizeof (T); - ]],[[ - DO_TEST(char) - DO_TEST(short) - DO_TEST(int) - DO_TEST(long) - #if (defined(HAVE_LONG_LONG_INT) && defined(HAVE_UNSIGNED_LONG_LONG_INT)) - DO_TEST(long long) - #endif - ]])], - [AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_FAST_INT_OPS,1,[Define if signed integers use two's complement])], - [AC_MSG_RESULT([no])]) - AC_LANG_POP(C++)]) - dnl - dnl Check to see if the compiler and the linker can handle the flags - dnl "-framework $1" for the given prologue $2 and the given body $3 of - dnl a source file. Arguments 2 and 3 optionally can also be empty. - dnl Add options (lower case letters $1) "--with-framework-$1" and - dnl "--without-framework-$1". If this test is successful then perform - dnl $4, otherwise do $5. - dnl - dnl OCTAVE_HAVE_FRAMEWORK - AC_DEFUN([OCTAVE_HAVE_FRAMEWORK], [ - AC_MSG_CHECKING([whether ${LD-ld} accepts -framework $1]) - AC_CACHE_VAL(octave_cv_framework_$1, [ - XLDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -framework $1" - AC_LANG_PUSH(C++) - AC_LINK_IFELSE([AC_LANG_PROGRAM([$2], [$3])], - eval "octave_cv_framework_$1=yes", - eval "octave_cv_framework_$1=no") - AC_LANG_POP(C++) - LDFLAGS="$XLDFLAGS" - ]) - if test "$octave_cv_framework_$1" = "yes"; then - AC_MSG_RESULT(yes) - AC_ARG_WITH(framework-m4_tolower($1), - [AS_HELP_STRING([--without-framework-m4_tolower($1)], - [don't use framework $1])], - with_have_framework=$withval, with_have_framework="yes") - if test "$with_have_framework" = "yes"; then - [$4] - else - AC_MSG_NOTICE([framework rejected by --without-framework-m4_tolower($1)]) - [$5] - fi - else - AC_MSG_RESULT(no) - [$5] - fi - ]) - - ############################################################################## - ############################################################################## - - # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- - # - # Copyright © 2004 Scott James Remnant . - # - # 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 2 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, write to the Free Software - # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - - # PKG_PROG_PKG_CONFIG([MIN-VERSION]) - # ---------------------------------- - AC_DEFUN([PKG_PROG_PKG_CONFIG], - [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) - m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) - AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl - if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) - fi - if test -n "$PKG_CONFIG"; then - _pkg_min_version=m4_default([$1], [0.9.0]) - AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - PKG_CONFIG="" - fi - - fi[]dnl - ])# PKG_PROG_PKG_CONFIG - - # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) - # - # Check to see whether a particular set of modules exists. Similar - # to PKG_CHECK_MODULES(), but does not set variables or print errors. - # - # - # Similar to PKG_CHECK_MODULES, make sure that the first instance of - # this or PKG_CHECK_MODULES is called, or make sure to call - # PKG_CHECK_EXISTS manually - # -------------------------------------------------------------- - AC_DEFUN([PKG_CHECK_EXISTS], - [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl - if test -n "$PKG_CONFIG" && \ - AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_ifval([$2], [$2], [:]) - m4_ifvaln([$3], [else - $3])dnl - fi]) - - - # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) - # --------------------------------------------- - m4_define([_PKG_CONFIG], - [if test -n "$PKG_CONFIG"; then - if test -n "$$1"; then - pkg_cv_[]$1="$$1" - else - PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], - [pkg_failed=yes]) - fi - else - pkg_failed=untried - fi[]dnl - ])# _PKG_CONFIG - - # _PKG_SHORT_ERRORS_SUPPORTED - # ----------------------------- - AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], - [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) - if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes - else - _pkg_short_errors_supported=no - fi[]dnl - ])# _PKG_SHORT_ERRORS_SUPPORTED - - - # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], - # [ACTION-IF-NOT-FOUND]) - # - # - # Note that if there is a possibility the first call to - # PKG_CHECK_MODULES might not happen, you should be sure to include an - # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac - # - # - # -------------------------------------------------------------- - AC_DEFUN([PKG_CHECK_MODULES], - [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl - AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl - AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl - - pkg_failed=no - AC_MSG_CHECKING([for $1]) - - _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) - _PKG_CONFIG([$1][_LIBS], [libs], [$2]) - - m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS - and $1[]_LIBS to avoid the need to call pkg-config. - See the pkg-config man page for more details.]) - - if test $pkg_failed = yes; then - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` - else - $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - - ifelse([$4], , [AC_MSG_ERROR(dnl - [Package requirements ($2) were not met: - - $$1_PKG_ERRORS - - Consider adjusting the PKG_CONFIG_PATH environment variable if you - installed software in a non-standard prefix. - - _PKG_TEXT - ])], - [AC_MSG_RESULT([no]) - $4]) - elif test $pkg_failed = untried; then - ifelse([$4], , [AC_MSG_FAILURE(dnl - [The pkg-config script could not be found or is too old. Make sure it - is in your PATH or set the PKG_CONFIG environment variable to the full - path to pkg-config. - - _PKG_TEXT - - To get pkg-config, see .])], - [$4]) - else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS - AC_MSG_RESULT([yes]) - ifelse([$3], , :, [$3]) - fi[]dnl - ])# PKG_CHECK_MODULES - - dnl - dnl External macros. - dnl - - m4_include([m4/ax_pthread.m4]) - m4_include([m4/ax_blas.m4]) - m4_include([m4/ax_blas_f77_func.m4]) - m4_include([m4/ax_lapack.m4]) --- 0 ---- diff -cNr octave-3.4.0/aclocal.m4 octave-3.4.1/aclocal.m4 *** octave-3.4.0/aclocal.m4 2011-02-08 05:03:29.000000000 -0500 --- octave-3.4.1/aclocal.m4 2011-06-15 11:31:20.000000000 -0400 *************** *** 13,20 **** m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl ! m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, ! [m4_warning([this file was generated for autoconf 2.67. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) --- 13,20 ---- m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl ! m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, ! [m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) *************** *** 1417,1424 **** ]) # _AM_PROG_TAR m4_include([m4/00gnulib.m4]) m4_include([m4/alloca.m4]) - m4_include([m4/asm-underscore.m4]) m4_include([m4/canonicalize.m4]) m4_include([m4/ceil.m4]) m4_include([m4/ceilf.m4]) --- 1417,1424 ---- ]) # _AM_PROG_TAR m4_include([m4/00gnulib.m4]) + m4_include([m4/acinclude.m4]) m4_include([m4/alloca.m4]) m4_include([m4/canonicalize.m4]) m4_include([m4/ceil.m4]) m4_include([m4/ceilf.m4]) *************** *** 1434,1440 **** m4_include([m4/dirent_h.m4]) m4_include([m4/dirfd.m4]) m4_include([m4/dirname.m4]) - m4_include([m4/dos.m4]) m4_include([m4/double-slash-root.m4]) m4_include([m4/dup2.m4]) m4_include([m4/eealloc.m4]) --- 1434,1439 ---- *************** *** 1447,1457 **** --- 1446,1464 ---- m4_include([m4/fcntl.m4]) m4_include([m4/fcntl_h.m4]) m4_include([m4/fdopendir.m4]) + m4_include([m4/fflush.m4]) m4_include([m4/filemode.m4]) + m4_include([m4/filenamecat.m4]) m4_include([m4/float_h.m4]) m4_include([m4/floor.m4]) m4_include([m4/floorf.m4]) m4_include([m4/fnmatch.m4]) + m4_include([m4/fpurge.m4]) + m4_include([m4/freading.m4]) + m4_include([m4/fseek.m4]) + m4_include([m4/fseeko.m4]) + m4_include([m4/ftell.m4]) + m4_include([m4/ftello.m4]) m4_include([m4/getcwd-abort-bug.m4]) m4_include([m4/getcwd-path-max.m4]) m4_include([m4/getcwd.m4]) *************** *** 1475,1480 **** --- 1482,1488 ---- m4_include([m4/locale-ja.m4]) m4_include([m4/locale-zh.m4]) m4_include([m4/longlong.m4]) + m4_include([m4/lseek.m4]) m4_include([m4/lstat.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) *************** *** 1500,1505 **** --- 1508,1515 ---- m4_include([m4/mode_t.m4]) m4_include([m4/multiarch.m4]) m4_include([m4/nanosleep.m4]) + m4_include([m4/nocrash.m4]) + m4_include([m4/nproc.m4]) m4_include([m4/open.m4]) m4_include([m4/openat.m4]) m4_include([m4/pathmax.m4]) *************** *** 1528,1539 **** m4_include([m4/stdint_h.m4]) m4_include([m4/stdio_h.m4]) m4_include([m4/stdlib_h.m4]) - m4_include([m4/strcase.m4]) m4_include([m4/strdup.m4]) m4_include([m4/strerror.m4]) m4_include([m4/strftime.m4]) m4_include([m4/string_h.m4]) - m4_include([m4/strings_h.m4]) m4_include([m4/strptime.m4]) m4_include([m4/symlink.m4]) m4_include([m4/sys_select_h.m4]) --- 1538,1547 ---- *************** *** 1541,1546 **** --- 1549,1555 ---- m4_include([m4/sys_stat_h.m4]) m4_include([m4/sys_time_h.m4]) m4_include([m4/sys_times_h.m4]) + m4_include([m4/sys_uio_h.m4]) m4_include([m4/tempname.m4]) m4_include([m4/time_h.m4]) m4_include([m4/time_r.m4]) *************** *** 1559,1562 **** m4_include([m4/wctype_h.m4]) m4_include([m4/wint_t.m4]) m4_include([m4/xsize.m4]) - m4_include([acinclude.m4]) --- 1568,1570 ---- diff -cNr octave-3.4.0/AUTHORS octave-3.4.1/AUTHORS *** octave-3.4.0/AUTHORS 2011-02-08 05:13:03.000000000 -0500 --- octave-3.4.1/AUTHORS 2011-06-15 11:41:22.000000000 -0400 *************** *** 40,89 **** Fotios Kasolis Thomas Kasper Joel Keay Mumit Khan Paul Kienzle Aaron A. King Arno J. Klaassen Geoffrey Knauth Heine Kolltveit ! Ken Kouno Kacper Kowalik Oyvind Kristiansen ! Piotr Krzyzanowski Volker Kuhlmann Tetsuro Kurita ! Miroslaw Kwasniak Rafael Laboissiere Kai Labusch ! Claude Lacoursiere Walter Landry Bill Lash ! Dirk Laurie Maurice LeBrun Friedrich Leisch ! Timo Lindfors Benjamin Lindner Ross Lippert ! David Livings Erik de Castro Lopo Massimo Lorenzin ! Emil Lucretiu Hoxide Ma James Macnicol ! Jens-Uwe Mager Ricardo Marranita Orestes Mas ! Makoto Matsumoto Tatsuro Matsuoka Laurent Mazet ! G. D. McBain Alexander Mamonov Christoph Mayer ! Thorsten Meyer Petr Mikulik Stefan Monnier ! Antoine Moreau Kai P. Mueller Victor Munoz ! Carmen Navarrete Todd Neal Al Niessner ! Rick Niles Takuji Nishimura Kai Noda ! Eric Norum Krzesimir Nowak Michael O'Brien ! Peter O'Gorman Thorsten Ohl Arno Onken ! Luis F. Ortiz Scott Pakin Gabriele Pannocchia ! Sylvain Pelissier Per Persson Primozz Peterlin ! Jim Peterson Danilo Piazzalunga Nicholas Piper ! Robert Platt Hans Ekkehard Plesser Tom Poage ! Orion Poplawski Ondrej Popp Jef Poskanzer ! Francesco Potorti Konstantinos Poulios James B. Rawlings ! Eric S. Raymond Balint Reczey Michael Reifenberger ! Jason Riedy Petter Risholm Matthew W. Roberts ! Andrew Ross Mark van Rossum Kevin Ruland ! Kristian Rumberg Ryan Rusaw Olli Saarela ! Toni Saarela Juhani Saastamoinen Radek Salac ! Ben Sapp Aleksej Saushev Alois Schloegl ! Michel D. Schmid Julian Schnidder Nicol N. Schraudolph ! Sebastian Schubert Ludwig Schwardt Thomas L. Scofield ! Daniel J. Sebald Dmitri A. Sergatskov Baylis Shanks ! Joseph P. Skudlarek John Smith Julius Smith ! Shan G. Smith Joerg Specht Quentin H. Spencer ! Christoph Spiel Richard Stallman Russell Standish ! Doug Stewart Jonathan Stickel Judd Storrs ! Thomas Stuart Ivan Sutoris John Swensen ! Daisuke Takago Ariel Tankus Georg Thimm ! Duncan Temple Lang Kris Thielemans Olaf Till ! Christophe Tournery Thomas Treichl Frederick Umminger ! Utkarsh Upadhyay Stefan van der Walt Peter Van Wieren ! James R. Van Zandt Gregory Vanuxem Ivana Varekova ! Thomas Walter Olaf Weber Thomas Weber ! Rik Wehbring Bob Weigel Andreas Weingessel ! Michael Weitzel Fook Fah Yap Michael Zeising ! Federico Zenith Alex Zvoleff --- 40,89 ---- Fotios Kasolis Thomas Kasper Joel Keay Mumit Khan Paul Kienzle Aaron A. King Arno J. Klaassen Geoffrey Knauth Heine Kolltveit ! Ken Kouno Kacper Kowalik Daniel Kraft ! Oyvind Kristiansen Piotr Krzyzanowski Volker Kuhlmann ! Tetsuro Kurita Miroslaw Kwasniak Rafael Laboissiere ! Kai Labusch Claude Lacoursiere Walter Landry ! Bill Lash Dirk Laurie Maurice LeBrun ! Friedrich Leisch Timo Lindfors Benjamin Lindner ! Ross Lippert David Livings Erik de Castro Lopo ! Massimo Lorenzin Emil Lucretiu Hoxide Ma ! James Macnicol Jens-Uwe Mager Ricardo Marranita ! Orestes Mas Makoto Matsumoto Tatsuro Matsuoka ! Laurent Mazet G. D. McBain Alexander Mamonov ! Christoph Mayer Thorsten Meyer Petr Mikulik ! Stefan Monnier Antoine Moreau Kai P. Mueller ! Victor Munoz Carmen Navarrete Todd Neal ! Al Niessner Rick Niles Takuji Nishimura ! Kai Noda Eric Norum Krzesimir Nowak ! Michael O'Brien Peter O'Gorman Thorsten Ohl ! Arno Onken Luis F. Ortiz Scott Pakin ! Gabriele Pannocchia Sylvain Pelissier Per Persson ! Primozz Peterlin Jim Peterson Danilo Piazzalunga ! Nicholas Piper Robert Platt Hans Ekkehard Plesser ! Tom Poage Orion Poplawski Ondrej Popp ! Jef Poskanzer Francesco Potorti Konstantinos Poulios ! James B. Rawlings Eric S. Raymond Balint Reczey ! Michael Reifenberger Jason Riedy Petter Risholm ! Matthew W. Roberts Andrew Ross Mark van Rossum ! Kevin Ruland Kristian Rumberg Ryan Rusaw ! Olli Saarela Toni Saarela Juhani Saastamoinen ! Radek Salac Ben Sapp Aleksej Saushev ! Alois Schloegl Michel D. Schmid Julian Schnidder ! Nicol N. Schraudolph Sebastian Schubert Ludwig Schwardt ! Thomas L. Scofield Daniel J. Sebald Dmitri A. Sergatskov ! Baylis Shanks Joseph P. Skudlarek John Smith ! Julius Smith Shan G. Smith Joerg Specht ! Quentin H. Spencer Christoph Spiel Richard Stallman ! Russell Standish Doug Stewart Jonathan Stickel ! Judd Storrs Thomas Stuart Ivan Sutoris ! John Swensen Daisuke Takago Ariel Tankus ! Georg Thimm Duncan Temple Lang Kris Thielemans ! Olaf Till Christophe Tournery Thomas Treichl ! Frederick Umminger Utkarsh Upadhyay Stefan van der Walt ! Peter Van Wieren James R. Van Zandt Gregory Vanuxem ! Ivana Varekova Thomas Walter Olaf Weber ! Thomas Weber Rik Wehbring Bob Weigel ! Andreas Weingessel Michael Weitzel Fook Fah Yap ! Michael Zeising Federico Zenith Alex Zvoleff diff -cNr octave-3.4.0/autogen.sh octave-3.4.1/autogen.sh *** octave-3.4.0/autogen.sh 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/autogen.sh 2011-06-15 11:11:27.000000000 -0400 *************** *** 15,21 **** ## building the rest of Octave, and INSTALL, which is linked from ## gnulib/doc/INSTALL by the bootstrap script. ! for f in NEWS README ChangeLog COPYING; do if ! test -f $f; then echo "required file $f is missing" 2>&1 exit 1 --- 15,21 ---- ## building the rest of Octave, and INSTALL, which is linked from ## gnulib/doc/INSTALL by the bootstrap script. ! for f in NEWS README COPYING; do if ! test -f $f; then echo "required file $f is missing" 2>&1 exit 1 *************** *** 36,39 **** echo "bootstrapping..." ! ./bootstrap "$@" --- 36,39 ---- echo "bootstrapping..." ! build-aux/bootstrap "$@" diff -cNr octave-3.4.0/bootstrap octave-3.4.1/bootstrap *** octave-3.4.0/bootstrap 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/bootstrap 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,946 **** - #! /bin/sh - # Print a version string. - scriptversion=2011-01-21.16; # UTC - - # Bootstrap this package from checked-out sources. - - # Copyright (C) 2003-2011 Free Software Foundation, Inc. - - # 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 . - - # Originally written by Paul Eggert. The canonical version of this - # script is maintained as build-aux/bootstrap in gnulib, however, to - # be useful to your project, you should place a copy of it under - # version control in the top-level directory of your project. The - # intent is that all customization can be done with a bootstrap.conf - # file also maintained in your version control; gnulib comes with a - # template build-aux/bootstrap.conf to get you started. - - # Please report bugs or propose patches to bug-gnulib@gnu.org. - - nl=' - ' - - # Ensure file names are sorted consistently across platforms. - LC_ALL=C - export LC_ALL - - local_gl_dir=gl - - # Temporary directory names. - bt='._bootmp' - bt_regex=`echo "$bt"| sed 's/\./[.]/g'` - bt2=${bt}2 - me=$0 - - usage() { - cat </dev/null 2>&1; then - find_tool_res=$i - break - fi - done - else - find_tool_error_prefix="\$$find_tool_envvar: " - fi - if test x"$find_tool_res" = x; then - echo >&2 "$me: one of these is required: $find_tool_names" - exit 1 - fi - ($find_tool_res --version /dev/null 2>&1 || { - echo >&2 "$me: ${find_tool_error_prefix}cannot run $find_tool_res --version" - exit 1 - } - eval "$find_tool_envvar=\$find_tool_res" - eval "export $find_tool_envvar" - } - - # Find sha1sum, named gsha1sum on MacPorts, and shasum on MacOS 10.6. - find_tool SHA1SUM sha1sum gsha1sum shasum - - # Override the default configuration, if necessary. - # Make sure that bootstrap.conf is sourced from the current directory - # if we were invoked as "sh bootstrap". - case "$0" in - */*) test -r "$0.conf" && . "$0.conf" ;; - *) test -r "$0.conf" && . ./"$0.conf" ;; - esac - - - if test "$vc_ignore" = auto; then - vc_ignore= - test -d .git && vc_ignore=.gitignore - test -d CVS && vc_ignore="$vc_ignore .cvsignore" - fi - - # Translate configuration into internal form. - - # Parse options. - - for option - do - case $option in - --help) - usage - exit;; - --gnulib-srcdir=*) - GNULIB_SRCDIR=`expr "X$option" : 'X--gnulib-srcdir=\(.*\)'`;; - --skip-po) - SKIP_PO=t;; - --force) - checkout_only_file=;; - --copy) - copy=true;; - --bootstrap-sync) - bootstrap_sync=true;; - --no-bootstrap-sync) - bootstrap_sync=false;; - --no-git) - use_git=false;; - *) - echo >&2 "$0: $option: unknown option" - exit 1;; - esac - done - - if $use_git || test -d "$GNULIB_SRCDIR"; then - : - else - echo "$0: Error: --no-git requires --gnulib-srcdir" >&2 - exit 1 - fi - - if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then - echo "$0: Bootstrapping from a non-checked-out distribution is risky." >&2 - exit 1 - fi - - # If $STR is not already on a line by itself in $FILE, insert it, - # sorting the new contents of the file and replacing $FILE with the result. - insert_sorted_if_absent() { - file=$1 - str=$2 - test -f $file || touch $file - echo "$str" | sort -u - $file | cmp - $file > /dev/null \ - || echo "$str" | sort -u - $file -o $file \ - || exit 1 - } - - # Adjust $PATTERN for $VC_IGNORE_FILE and insert it with - # insert_sorted_if_absent. - insert_vc_ignore() { - vc_ignore_file="$1" - pattern="$2" - case $vc_ignore_file in - *.gitignore) - # A .gitignore entry that does not start with `/' applies - # recursively to subdirectories, so prepend `/' to every - # .gitignore entry. - pattern=`echo "$pattern" | sed s,^,/,`;; - esac - insert_sorted_if_absent "$vc_ignore_file" "$pattern" - } - - # Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac. - found_aux_dir=no - grep '^[ ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \ - >/dev/null && found_aux_dir=yes - grep '^[ ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \ - >/dev/null && found_aux_dir=yes - if test $found_aux_dir = no; then - echo "$0: expected line not found in configure.ac. Add the following:" >&2 - echo " AC_CONFIG_AUX_DIR([$build_aux])" >&2 - exit 1 - fi - - # If $build_aux doesn't exist, create it now, otherwise some bits - # below will malfunction. If creating it, also mark it as ignored. - if test ! -d $build_aux; then - mkdir $build_aux - for dot_ig in x $vc_ignore; do - test $dot_ig = x && continue - insert_vc_ignore $dot_ig $build_aux - done - fi - - # Note this deviates from the version comparison in automake - # in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a - # but this should suffice as we won't be specifying old - # version formats or redundant trailing .0 in bootstrap.conf. - # If we did want full compatibility then we should probably - # use m4_version_compare from autoconf. - sort_ver() { # sort -V is not generally available - ver1="$1" - ver2="$2" - - # split on '.' and compare each component - i=1 - while : ; do - p1=$(echo "$ver1" | cut -d. -f$i) - p2=$(echo "$ver2" | cut -d. -f$i) - if [ ! "$p1" ]; then - echo "$1 $2" - break - elif [ ! "$p2" ]; then - echo "$2 $1" - break - elif [ ! "$p1" = "$p2" ]; then - if [ "$p1" -gt "$p2" ] 2>/dev/null; then # numeric comparison - echo "$2 $1" - elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison - echo "$1 $2" - else # numeric, then lexicographic comparison - lp=$(printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1) - if [ "$lp" = "$p2" ]; then - echo "$1 $2" - else - echo "$2 $1" - fi - fi - break - fi - i=$(($i+1)) - done - } - - get_version() { - app=$1 - - $app --version >/dev/null 2>&1 || return 1 - - $app --version 2>&1 | - sed -n '# Move version to start of line. - s/.*[v ]\([0-9]\)/\1/ - - # Skip lines that do not start with version. - /^[0-9]/!d - - # Remove characters after the version. - s/[^.a-z0-9-].*// - - # The first component must be digits only. - s/^\([0-9]*\)[a-z-].*/\1/ - - #the following essentially does s/5.005/5.5/ - s/\.0*\([1-9]\)/.\1/g - p - q' - } - - check_versions() { - ret=0 - - while read app req_ver; do - # We only need libtoolize from the libtool package. - if test "$app" = libtool; then - app=libtoolize - fi - # Exempt git if --no-git is in effect. - if test "$app" = git; then - $use_git || continue - fi - # Honor $APP variables ($TAR, $AUTOCONF, etc.) - appvar=`echo $app | tr '[a-z]-' '[A-Z]_'` - test "$appvar" = TAR && appvar=AMTAR - eval "app=\${$appvar-$app}" - inst_ver=$(get_version $app) - if [ ! "$inst_ver" ]; then - echo "$me: Error: '$app' not found" >&2 - ret=1 - elif [ ! "$req_ver" = "-" ]; then - latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2) - if [ ! "$latest_ver" = "$inst_ver" ]; then - echo "$me: Error: '$app' version == $inst_ver is too old" >&2 - echo " '$app' version >= $req_ver is required" >&2 - ret=1 - fi - fi - done - - return $ret - } - - print_versions() { - echo "Program Min_version" - echo "----------------------" - printf %s "$buildreq" - echo "----------------------" - # can't depend on column -t - } - - use_libtool=0 - # We'd like to use grep -E, to see if any of LT_INIT, - # AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac, - # but that's not portable enough (e.g., for Solaris). - grep '^[ ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \ - && use_libtool=1 - grep '^[ ]*LT_INIT' configure.ac >/dev/null \ - && use_libtool=1 - if test $use_libtool = 1; then - find_tool LIBTOOLIZE glibtoolize libtoolize - fi - - if ! printf "$buildreq" | check_versions; then - echo >&2 - if test -f README-prereq; then - echo "$0: See README-prereq for how to get the prerequisite programs" >&2 - else - echo "$0: Please install the prerequisite programs" >&2 - fi - exit 1 - fi - - echo "$0: Bootstrapping from checked-out $package sources..." - - # See if we can use gnulib's git-merge-changelog merge driver. - if test -d .git && (git --version) >/dev/null 2>/dev/null ; then - if git config merge.merge-changelog.driver >/dev/null ; then - : - elif (git-merge-changelog --version) >/dev/null 2>/dev/null ; then - echo "$0: initializing git-merge-changelog driver" - git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver' - git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B' - else - echo "$0: consider installing git-merge-changelog from gnulib" - fi - fi - - - cleanup_gnulib() { - status=$? - rm -fr "$gnulib_path" - exit $status - } - - git_modules_config () { - test -f .gitmodules && git config --file .gitmodules "$@" - } - - gnulib_path=`git_modules_config submodule.gnulib.path` - test -z "$gnulib_path" && gnulib_path=gnulib - - # Get gnulib files. - - case ${GNULIB_SRCDIR--} in - -) - if git_modules_config submodule.gnulib.url >/dev/null; then - echo "$0: getting gnulib files..." - git submodule init || exit $? - git submodule update || exit $? - - elif [ ! -d "$gnulib_path" ]; then - echo "$0: getting gnulib files..." - - trap cleanup_gnulib 1 2 13 15 - - shallow= - git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2' - git clone $shallow git://git.sv.gnu.org/gnulib "$gnulib_path" || - cleanup_gnulib - - trap - 1 2 13 15 - fi - GNULIB_SRCDIR=$gnulib_path - ;; - *) - # Use GNULIB_SRCDIR as a reference. - if test -d "$GNULIB_SRCDIR"/.git && \ - git_modules_config submodule.gnulib.url >/dev/null; then - echo "$0: getting gnulib files..." - if git submodule -h|grep -- --reference > /dev/null; then - # Prefer the one-liner available in git 1.6.4 or newer. - git submodule update --init --reference "$GNULIB_SRCDIR" \ - "$gnulib_path" || exit $? - else - # This fallback allows at least git 1.5.5. - if test -f "$gnulib_path"/gnulib-tool; then - # Since file already exists, assume submodule init already complete. - git submodule update || exit $? - else - # Older git can't clone into an empty directory. - rmdir "$gnulib_path" 2>/dev/null - git clone --reference "$GNULIB_SRCDIR" \ - "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \ - && git submodule init && git submodule update \ - || exit $? - fi - fi - GNULIB_SRCDIR=$gnulib_path - fi - ;; - esac - - if $bootstrap_sync; then - cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || { - echo "$0: updating bootstrap and restarting..." - exec sh -c \ - 'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \ - -- "$GNULIB_SRCDIR/build-aux/bootstrap" \ - "$0" "$@" --no-bootstrap-sync - } - fi - - gnulib_tool=$GNULIB_SRCDIR/gnulib-tool - <$gnulib_tool || exit - - # Get translations. - - download_po_files() { - subdir=$1 - domain=$2 - echo "$me: getting translations into $subdir for $domain..." - cmd=`printf "$po_download_command_format" "$domain" "$subdir"` - eval "$cmd" - } - - # Mirror .po files to $po_dir/.reference and copy only the new - # or modified ones into $po_dir. Also update $po_dir/LINGUAS. - # Note po files that exist locally only are left in $po_dir but will - # not be included in LINGUAS and hence will not be distributed. - update_po_files() { - # Directory containing primary .po files. - # Overwrite them only when we're sure a .po file is new. - po_dir=$1 - domain=$2 - - # Mirror *.po files into this dir. - # Usually contains *.s1 checksum files. - ref_po_dir="$po_dir/.reference" - - test -d $ref_po_dir || mkdir $ref_po_dir || return - download_po_files $ref_po_dir $domain \ - && ls "$ref_po_dir"/*.po 2>/dev/null | - sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return - - langs=`cd $ref_po_dir && echo *.po|sed 's/\.po//g'` - test "$langs" = '*' && langs=x - for po in $langs; do - case $po in x) continue;; esac - new_po="$ref_po_dir/$po.po" - cksum_file="$ref_po_dir/$po.s1" - if ! test -f "$cksum_file" || - ! test -f "$po_dir/$po.po" || - ! $SHA1SUM -c --status "$cksum_file" \ - < "$new_po" > /dev/null; then - echo "$me: updated $po_dir/$po.po..." - cp "$new_po" "$po_dir/$po.po" \ - && $SHA1SUM < "$new_po" > "$cksum_file" - fi - done - } - - case $SKIP_PO in - '') - if test -d po; then - update_po_files po $package || exit - fi - - if test -d runtime-po; then - update_po_files runtime-po $package-runtime || exit - fi;; - esac - - symlink_to_dir() - { - src=$1/$2 - dst=${3-$2} - - test -f "$src" && { - - # If the destination directory doesn't exist, create it. - # This is required at least for "lib/uniwidth/cjk.h". - dst_dir=`dirname "$dst"` - if ! test -d "$dst_dir"; then - mkdir -p "$dst_dir" - - # If we've just created a directory like lib/uniwidth, - # tell version control system(s) it's ignorable. - # FIXME: for now, this does only one level - parent=`dirname "$dst_dir"` - for dot_ig in x $vc_ignore; do - test $dot_ig = x && continue - ig=$parent/$dot_ig - insert_vc_ignore $ig `echo "$dst_dir"|sed 's,.*/,,'` - done - fi - - if $copy; then - { - test ! -h "$dst" || { - echo "$me: rm -f $dst" && - rm -f "$dst" - } - } && - test -f "$dst" && - cmp -s "$src" "$dst" || { - echo "$me: cp -fp $src $dst" && - cp -fp "$src" "$dst" - } - else - test -h "$dst" && - src_ls=`ls -diL "$src" 2>/dev/null` && set $src_ls && src_i=$1 && - dst_ls=`ls -diL "$dst" 2>/dev/null` && set $dst_ls && dst_i=$1 && - test "$src_i" = "$dst_i" || { - dot_dots= - case $src in - /*) ;; - *) - case /$dst/ in - *//* | */../* | */./* | /*/*/*/*/*/) - echo >&2 "$me: invalid symlink calculation: $src -> $dst" - exit 1;; - /*/*/*/*/) dot_dots=../../../;; - /*/*/*/) dot_dots=../../;; - /*/*/) dot_dots=../;; - esac;; - esac - - echo "$me: ln -fs $dot_dots$src $dst" && - ln -fs "$dot_dots$src" "$dst" - } - fi - } - } - - cp_mark_as_generated() - { - cp_src=$1 - cp_dst=$2 - - if cmp -s "$cp_src" "$GNULIB_SRCDIR/$cp_dst"; then - symlink_to_dir "$GNULIB_SRCDIR" "$cp_dst" - elif cmp -s "$cp_src" "$local_gl_dir/$cp_dst"; then - symlink_to_dir $local_gl_dir "$cp_dst" - else - case $cp_dst in - *.[ch]) c1='/* '; c2=' */';; - *.texi) c1='@c '; c2= ;; - *.m4|*/Make*|Make*) c1='# ' ; c2= ;; - *) c1= ; c2= ;; - esac - - # If the destination directory doesn't exist, create it. - # This is required at least for "lib/uniwidth/cjk.h". - dst_dir=`dirname "$cp_dst"` - test -d "$dst_dir" || mkdir -p "$dst_dir" - - if test -z "$c1"; then - cmp -s "$cp_src" "$cp_dst" || { - # Copy the file first to get proper permissions if it - # doesn't already exist. Then overwrite the copy. - echo "$me: cp -f $cp_src $cp_dst" && - rm -f "$cp_dst" && - cp "$cp_src" "$cp_dst-t" && - sed "s!$bt_regex/!!g" "$cp_src" > "$cp_dst-t" && - mv -f "$cp_dst-t" "$cp_dst" - } - else - # Copy the file first to get proper permissions if it - # doesn't already exist. Then overwrite the copy. - cp "$cp_src" "$cp_dst-t" && - ( - echo "$c1-*- buffer-read-only: t -*- vi: set ro:$c2" && - echo "${c1}DO NOT EDIT! GENERATED AUTOMATICALLY!$c2" && - sed "s!$bt_regex/!!g" "$cp_src" - ) > $cp_dst-t && - if cmp -s "$cp_dst-t" "$cp_dst"; then - rm -f "$cp_dst-t" - else - echo "$me: cp $cp_src $cp_dst # with edits" && - mv -f "$cp_dst-t" "$cp_dst" - fi - fi - fi - } - - version_controlled_file() { - dir=$1 - file=$2 - found=no - if test -d CVS; then - grep -F "/$file/" $dir/CVS/Entries 2>/dev/null | - grep '^/[^/]*/[0-9]' > /dev/null && found=yes - elif test -d .git; then - git rm -n "$dir/$file" > /dev/null 2>&1 && found=yes - elif test -d .svn; then - svn log -r HEAD "$dir/$file" > /dev/null 2>&1 && found=yes - else - echo "$me: no version control for $dir/$file?" >&2 - fi - test $found = yes - } - - slurp() { - for dir in . `(cd $1 && find * -type d -print)`; do - copied= - sep= - for file in `ls -a $1/$dir`; do - case $file in - .|..) continue;; - # FIXME: should all file names starting with "." be ignored? - .*) continue;; - esac - test -d $1/$dir/$file && continue - for excluded_file in $excluded_files; do - test "$dir/$file" = "$excluded_file" && continue 2 - done - if test $file = Makefile.am && test "X$gnulib_mk" != XMakefile.am; then - copied=$copied${sep}$gnulib_mk; sep=$nl - remove_intl='/^[^#].*\/intl/s/^/#/;'"s!$bt_regex/!!g" - sed "$remove_intl" $1/$dir/$file | - cmp - $dir/$gnulib_mk > /dev/null || { - echo "$me: Copying $1/$dir/$file to $dir/$gnulib_mk ..." && - rm -f $dir/$gnulib_mk && - sed "$remove_intl" $1/$dir/$file >$dir/$gnulib_mk && - gnulib_mk_hook $dir/$gnulib_mk - } - elif { test "${2+set}" = set && test -r $2/$dir/$file; } || - version_controlled_file $dir $file; then - echo "$me: $dir/$file overrides $1/$dir/$file" - else - copied=$copied$sep$file; sep=$nl - if test $file = gettext.m4; then - echo "$me: patching m4/gettext.m4 to remove need for intl/* ..." - rm -f $dir/$file - sed ' - /^AC_DEFUN(\[AM_INTL_SUBDIR],/,/^]/c\ - AC_DEFUN([AM_INTL_SUBDIR], []) - /^AC_DEFUN(\[gt_INTL_SUBDIR_CORE],/,/^]/c\ - AC_DEFUN([gt_INTL_SUBDIR_CORE], []) - $a\ - AC_DEFUN([gl_LOCK_EARLY], []) - ' $1/$dir/$file >$dir/$file - else - cp_mark_as_generated $1/$dir/$file $dir/$file - fi - fi || exit - done - - for dot_ig in x $vc_ignore; do - test $dot_ig = x && continue - ig=$dir/$dot_ig - if test -n "$copied"; then - insert_vc_ignore $ig "$copied" - # If an ignored file name ends with .in.h, then also add - # the name with just ".h". Many gnulib headers are generated, - # e.g., stdint.in.h -> stdint.h, dirent.in.h ->..., etc. - # Likewise for .gperf -> .h, .y -> .c, and .sin -> .sed - f=`echo "$copied" | - sed ' - s/\.in\.h$/.h/ - s/\.sin$/.sed/ - s/\.y$/.c/ - s/\.gperf$/.h/ - ' - ` - insert_vc_ignore $ig "$f" - - # For files like sys_stat.in.h and sys_time.in.h, record as - # ignorable the directory we might eventually create: sys/. - f=`echo "$copied"|sed 's/sys_.*\.in\.h$/sys/'` - insert_vc_ignore $ig "$f" - fi - done - done - } - - - # Create boot temporary directories to import from gnulib and gettext. - rm -fr $bt $bt2 && - mkdir $bt $bt2 || exit - - # Import from gnulib. - - gnulib_tool_options="\ - --import\ - --no-changelog\ - --aux-dir $bt/$build_aux\ - --doc-base $bt/$doc_base\ - --lib $gnulib_name\ - --m4-base $bt/$m4_base/\ - --source-base $bt/$source_base/\ - --tests-base $bt/$tests_base\ - --local-dir $local_gl_dir\ - $gnulib_tool_option_extras\ - " - if test $use_libtool = 1; then - case "$gnulib_tool_options " in - *' --libtool '*) ;; - *) gnulib_tool_options="$gnulib_tool_options --libtool" ;; - esac - fi - echo "$0: $gnulib_tool $gnulib_tool_options --import ..." - $gnulib_tool $gnulib_tool_options --import $gnulib_modules && - slurp $bt || exit - - for file in $gnulib_files; do - symlink_to_dir "$GNULIB_SRCDIR" $file || exit - done - - - # Import from gettext. - with_gettext=yes - grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \ - with_gettext=no - - if test $with_gettext = yes; then - echo "$0: (cd $bt2; ${AUTOPOINT-autopoint}) ..." - cp configure.ac $bt2 && - (cd $bt2 && ${AUTOPOINT-autopoint} && rm configure.ac) && - slurp $bt2 $bt || exit - fi - rm -fr $bt $bt2 || exit - - # Remove any dangling symlink matching "*.m4" or "*.[ch]" in some - # gnulib-populated directories. Such .m4 files would cause aclocal to fail. - # The following requires GNU find 4.2.3 or newer. Considering the usual - # portability constraints of this script, that may seem a very demanding - # requirement, but it should be ok. Ignore any failure, which is fine, - # since this is only a convenience to help developers avoid the relatively - # unusual case in which a symlinked-to .m4 file is git-removed from gnulib - # between successive runs of this script. - find "$m4_base" "$source_base" \ - -depth \( -name '*.m4' -o -name '*.[ch]' \) \ - -type l -xtype l -delete > /dev/null 2>&1 - - # Reconfigure, getting other files. - - # Skip autoheader if it's not needed. - grep -E '^[ ]*AC_CONFIG_HEADERS?\>' configure.ac >/dev/null || - AUTOHEADER=true - - for command in \ - libtool \ - "${ACLOCAL-aclocal} --force -I m4 $ACLOCAL_FLAGS" \ - "${AUTOCONF-autoconf} --force" \ - "${AUTOHEADER-autoheader} --force" \ - "${AUTOMAKE-automake} --add-missing --copy --force-missing" - do - if test "$command" = libtool; then - test $use_libtool = 0 \ - && continue - command="${LIBTOOLIZE-libtoolize} -c -f" - fi - echo "$0: $command ..." - $command || exit - done - - - # Get some extra files from gnulib, overriding existing files. - for file in $gnulib_extra_files; do - case $file in - */INSTALL) dst=INSTALL;; - build-aux/*) dst=$build_aux/`expr "$file" : 'build-aux/\(.*\)'`;; - *) dst=$file;; - esac - symlink_to_dir "$GNULIB_SRCDIR" $file $dst || exit - done - - if test $with_gettext = yes; then - # Create gettext configuration. - echo "$0: Creating po/Makevars from po/Makevars.template ..." - rm -f po/Makevars - sed ' - /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/ - /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/ - /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'| - /^XGETTEXT_OPTIONS *=/{ - s/$/ \\/ - a\ - '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+} - } - ' po/Makevars.template >po/Makevars || exit 1 - - if test -d runtime-po; then - # Similarly for runtime-po/Makevars, but not quite the same. - rm -f runtime-po/Makevars - sed ' - /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/ - /^subdir *=.*/s/=.*/= runtime-po/ - /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/ - /^XGETTEXT_OPTIONS *=/{ - s/$/ \\/ - a\ - '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+} - } - ' po/Makevars.template >runtime-po/Makevars || exit 1 - - # Copy identical files from po to runtime-po. - (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po) - fi - fi - - bootstrap_epilogue - - echo "$0: done. Now you can run './configure'." - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) - # time-stamp-start: "scriptversion=" - # time-stamp-format: "%:y-%02m-%02d.%02H" - # time-stamp-time-zone: "UTC" - # time-stamp-end: "; # UTC" - # End: --- 0 ---- diff -cNr octave-3.4.0/bootstrap.conf octave-3.4.1/bootstrap.conf *** octave-3.4.0/bootstrap.conf 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/bootstrap.conf 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,116 **** - # Bootstrap configuration. - - # Copyright (C) 2006-2007, 2009-2011 Free Software Foundation, Inc. - - # 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 . - - - # gnulib modules used by this package. - gnulib_modules=" - c-strcase - copysign - crypto/md5 - fcntl - filemode - fnmatch - getcwd - gethostname - getopt-gnu - gettimeofday - glob - link - lstat - mkdir - mkfifo - mkstemp - mktime - nanosleep - pathmax - progname - readlink - rename - rmdir - round - roundf - sigaction - signal - sigprocmask - sleep - sleep - stat - stdint - strftime - strptime - symlink - sys_stat - sys_time - sys_times - time - times - trunc - truncf - unistd - unlink - vsnprintf - " - - # Additional xgettext options to use. Use "\\\newline" to break lines. - XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\ - --from-code=UTF-8\\\ - --flag=asprintf:2:c-format --flag=vasprintf:2:c-format\\\ - --flag=asnprintf:3:c-format --flag=vasnprintf:3:c-format\\\ - --flag=wrapf:1:c-format\\\ - ' - - # If "AM_GNU_GETTEXT(external" or "AM_GNU_GETTEXT([external]" - # appears in configure.ac, exclude some unnecessary files. - # Without grep's -E option (not portable enough, pre-configure), - # the following test is ugly. Also, this depends on the existence - # of configure.ac, not the obsolescent-named configure.in. But if - # you're using this infrastructure, you should care about such things. - - gettext_external=0 - grep '^[ ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null && - gettext_external=1 - grep '^[ ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null && - gettext_external=1 - - if test $gettext_external = 1; then - # Gettext supplies these files, but we don't need them since - # we don't have an intl subdirectory. - excluded_files=' - m4/glibc2.m4 - m4/intdiv0.m4 - m4/lcmessage.m4 - m4/lock.m4 - m4/printf-posix.m4 - m4/size_max.m4 - m4/uintmax_t.m4 - m4/ulonglong.m4 - m4/visibility.m4 - m4/xsize.m4 - ' - fi - - # Build prerequisites - buildreq="\ - autoconf 2.59 - automake 1.9.6 - git 1.5.5 - tar - - " - checkout_only_file=HACKING - gnulib_tool_option_extras="--libtool" - gnulib_name="libgnu" - source_base="libgnu" --- 0 ---- diff -cNr octave-3.4.0/build-aux/arg-nonnull.h octave-3.4.1/build-aux/arg-nonnull.h *** octave-3.4.0/build-aux/arg-nonnull.h 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/build-aux/arg-nonnull.h 2011-06-15 11:31:05.000000000 -0400 *************** *** 11,17 **** 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 ! Lesser 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 . */ --- 11,17 ---- 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 . */ diff -cNr octave-3.4.0/build-aux/bootstrap octave-3.4.1/build-aux/bootstrap *** octave-3.4.0/build-aux/bootstrap 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/build-aux/bootstrap 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,946 ---- + #! /bin/sh + # Print a version string. + scriptversion=2011-01-21.16; # UTC + + # Bootstrap this package from checked-out sources. + + # Copyright (C) 2003-2011 Free Software Foundation, Inc. + + # 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 . + + # Originally written by Paul Eggert. The canonical version of this + # script is maintained as build-aux/bootstrap in gnulib, however, to + # be useful to your project, you should place a copy of it under + # version control in the top-level directory of your project. The + # intent is that all customization can be done with a bootstrap.conf + # file also maintained in your version control; gnulib comes with a + # template build-aux/bootstrap.conf to get you started. + + # Please report bugs or propose patches to bug-gnulib@gnu.org. + + nl=' + ' + + # Ensure file names are sorted consistently across platforms. + LC_ALL=C + export LC_ALL + + local_gl_dir=gl + + # Temporary directory names. + bt='._bootmp' + bt_regex=`echo "$bt"| sed 's/\./[.]/g'` + bt2=${bt}2 + me=$0 + + usage() { + cat </dev/null 2>&1; then + find_tool_res=$i + break + fi + done + else + find_tool_error_prefix="\$$find_tool_envvar: " + fi + if test x"$find_tool_res" = x; then + echo >&2 "$me: one of these is required: $find_tool_names" + exit 1 + fi + ($find_tool_res --version /dev/null 2>&1 || { + echo >&2 "$me: ${find_tool_error_prefix}cannot run $find_tool_res --version" + exit 1 + } + eval "$find_tool_envvar=\$find_tool_res" + eval "export $find_tool_envvar" + } + + # Find sha1sum, named gsha1sum on MacPorts, and shasum on MacOS 10.6. + find_tool SHA1SUM sha1sum gsha1sum shasum + + # Override the default configuration, if necessary. + # Make sure that bootstrap.conf is sourced from the current directory + # if we were invoked as "sh bootstrap". + case "$0" in + */*) test -r "$0.conf" && . "$0.conf" ;; + *) test -r "$0.conf" && . ./"$0.conf" ;; + esac + + + if test "$vc_ignore" = auto; then + vc_ignore= + test -d .git && vc_ignore=.gitignore + test -d CVS && vc_ignore="$vc_ignore .cvsignore" + fi + + # Translate configuration into internal form. + + # Parse options. + + for option + do + case $option in + --help) + usage + exit;; + --gnulib-srcdir=*) + GNULIB_SRCDIR=`expr "X$option" : 'X--gnulib-srcdir=\(.*\)'`;; + --skip-po) + SKIP_PO=t;; + --force) + checkout_only_file=;; + --copy) + copy=true;; + --bootstrap-sync) + bootstrap_sync=true;; + --no-bootstrap-sync) + bootstrap_sync=false;; + --no-git) + use_git=false;; + *) + echo >&2 "$0: $option: unknown option" + exit 1;; + esac + done + + if $use_git || test -d "$GNULIB_SRCDIR"; then + : + else + echo "$0: Error: --no-git requires --gnulib-srcdir" >&2 + exit 1 + fi + + if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then + echo "$0: Bootstrapping from a non-checked-out distribution is risky." >&2 + exit 1 + fi + + # If $STR is not already on a line by itself in $FILE, insert it, + # sorting the new contents of the file and replacing $FILE with the result. + insert_sorted_if_absent() { + file=$1 + str=$2 + test -f $file || touch $file + echo "$str" | sort -u - $file | cmp - $file > /dev/null \ + || echo "$str" | sort -u - $file -o $file \ + || exit 1 + } + + # Adjust $PATTERN for $VC_IGNORE_FILE and insert it with + # insert_sorted_if_absent. + insert_vc_ignore() { + vc_ignore_file="$1" + pattern="$2" + case $vc_ignore_file in + *.gitignore) + # A .gitignore entry that does not start with `/' applies + # recursively to subdirectories, so prepend `/' to every + # .gitignore entry. + pattern=`echo "$pattern" | sed s,^,/,`;; + esac + insert_sorted_if_absent "$vc_ignore_file" "$pattern" + } + + # Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac. + found_aux_dir=no + grep '^[ ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \ + >/dev/null && found_aux_dir=yes + grep '^[ ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \ + >/dev/null && found_aux_dir=yes + if test $found_aux_dir = no; then + echo "$0: expected line not found in configure.ac. Add the following:" >&2 + echo " AC_CONFIG_AUX_DIR([$build_aux])" >&2 + exit 1 + fi + + # If $build_aux doesn't exist, create it now, otherwise some bits + # below will malfunction. If creating it, also mark it as ignored. + if test ! -d $build_aux; then + mkdir $build_aux + for dot_ig in x $vc_ignore; do + test $dot_ig = x && continue + insert_vc_ignore $dot_ig $build_aux + done + fi + + # Note this deviates from the version comparison in automake + # in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a + # but this should suffice as we won't be specifying old + # version formats or redundant trailing .0 in bootstrap.conf. + # If we did want full compatibility then we should probably + # use m4_version_compare from autoconf. + sort_ver() { # sort -V is not generally available + ver1="$1" + ver2="$2" + + # split on '.' and compare each component + i=1 + while : ; do + p1=$(echo "$ver1" | cut -d. -f$i) + p2=$(echo "$ver2" | cut -d. -f$i) + if [ ! "$p1" ]; then + echo "$1 $2" + break + elif [ ! "$p2" ]; then + echo "$2 $1" + break + elif [ ! "$p1" = "$p2" ]; then + if [ "$p1" -gt "$p2" ] 2>/dev/null; then # numeric comparison + echo "$2 $1" + elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison + echo "$1 $2" + else # numeric, then lexicographic comparison + lp=$(printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1) + if [ "$lp" = "$p2" ]; then + echo "$1 $2" + else + echo "$2 $1" + fi + fi + break + fi + i=$(($i+1)) + done + } + + get_version() { + app=$1 + + $app --version >/dev/null 2>&1 || return 1 + + $app --version 2>&1 | + sed -n '# Move version to start of line. + s/.*[v ]\([0-9]\)/\1/ + + # Skip lines that do not start with version. + /^[0-9]/!d + + # Remove characters after the version. + s/[^.a-z0-9-].*// + + # The first component must be digits only. + s/^\([0-9]*\)[a-z-].*/\1/ + + #the following essentially does s/5.005/5.5/ + s/\.0*\([1-9]\)/.\1/g + p + q' + } + + check_versions() { + ret=0 + + while read app req_ver; do + # We only need libtoolize from the libtool package. + if test "$app" = libtool; then + app=libtoolize + fi + # Exempt git if --no-git is in effect. + if test "$app" = git; then + $use_git || continue + fi + # Honor $APP variables ($TAR, $AUTOCONF, etc.) + appvar=`echo $app | tr '[a-z]-' '[A-Z]_'` + test "$appvar" = TAR && appvar=AMTAR + eval "app=\${$appvar-$app}" + inst_ver=$(get_version $app) + if [ ! "$inst_ver" ]; then + echo "$me: Error: '$app' not found" >&2 + ret=1 + elif [ ! "$req_ver" = "-" ]; then + latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2) + if [ ! "$latest_ver" = "$inst_ver" ]; then + echo "$me: Error: '$app' version == $inst_ver is too old" >&2 + echo " '$app' version >= $req_ver is required" >&2 + ret=1 + fi + fi + done + + return $ret + } + + print_versions() { + echo "Program Min_version" + echo "----------------------" + printf %s "$buildreq" + echo "----------------------" + # can't depend on column -t + } + + use_libtool=0 + # We'd like to use grep -E, to see if any of LT_INIT, + # AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac, + # but that's not portable enough (e.g., for Solaris). + grep '^[ ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \ + && use_libtool=1 + grep '^[ ]*LT_INIT' configure.ac >/dev/null \ + && use_libtool=1 + if test $use_libtool = 1; then + find_tool LIBTOOLIZE glibtoolize libtoolize + fi + + if ! printf "$buildreq" | check_versions; then + echo >&2 + if test -f README-prereq; then + echo "$0: See README-prereq for how to get the prerequisite programs" >&2 + else + echo "$0: Please install the prerequisite programs" >&2 + fi + exit 1 + fi + + echo "$0: Bootstrapping from checked-out $package sources..." + + # See if we can use gnulib's git-merge-changelog merge driver. + if test -d .git && (git --version) >/dev/null 2>/dev/null ; then + if git config merge.merge-changelog.driver >/dev/null ; then + : + elif (git-merge-changelog --version) >/dev/null 2>/dev/null ; then + echo "$0: initializing git-merge-changelog driver" + git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver' + git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B' + else + echo "$0: consider installing git-merge-changelog from gnulib" + fi + fi + + + cleanup_gnulib() { + status=$? + rm -fr "$gnulib_path" + exit $status + } + + git_modules_config () { + test -f .gitmodules && git config --file .gitmodules "$@" + } + + gnulib_path=`git_modules_config submodule.gnulib.path` + test -z "$gnulib_path" && gnulib_path=gnulib + + # Get gnulib files. + + case ${GNULIB_SRCDIR--} in + -) + if git_modules_config submodule.gnulib.url >/dev/null; then + echo "$0: getting gnulib files..." + git submodule init || exit $? + git submodule update || exit $? + + elif [ ! -d "$gnulib_path" ]; then + echo "$0: getting gnulib files..." + + trap cleanup_gnulib 1 2 13 15 + + shallow= + git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2' + git clone $shallow git://git.sv.gnu.org/gnulib "$gnulib_path" || + cleanup_gnulib + + trap - 1 2 13 15 + fi + GNULIB_SRCDIR=$gnulib_path + ;; + *) + # Use GNULIB_SRCDIR as a reference. + if test -d "$GNULIB_SRCDIR"/.git && \ + git_modules_config submodule.gnulib.url >/dev/null; then + echo "$0: getting gnulib files..." + if git submodule -h|grep -- --reference > /dev/null; then + # Prefer the one-liner available in git 1.6.4 or newer. + git submodule update --init --reference "$GNULIB_SRCDIR" \ + "$gnulib_path" || exit $? + else + # This fallback allows at least git 1.5.5. + if test -f "$gnulib_path"/gnulib-tool; then + # Since file already exists, assume submodule init already complete. + git submodule update || exit $? + else + # Older git can't clone into an empty directory. + rmdir "$gnulib_path" 2>/dev/null + git clone --reference "$GNULIB_SRCDIR" \ + "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \ + && git submodule init && git submodule update \ + || exit $? + fi + fi + GNULIB_SRCDIR=$gnulib_path + fi + ;; + esac + + if $bootstrap_sync; then + cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || { + echo "$0: updating bootstrap and restarting..." + exec sh -c \ + 'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \ + -- "$GNULIB_SRCDIR/build-aux/bootstrap" \ + "$0" "$@" --no-bootstrap-sync + } + fi + + gnulib_tool=$GNULIB_SRCDIR/gnulib-tool + <$gnulib_tool || exit + + # Get translations. + + download_po_files() { + subdir=$1 + domain=$2 + echo "$me: getting translations into $subdir for $domain..." + cmd=`printf "$po_download_command_format" "$domain" "$subdir"` + eval "$cmd" + } + + # Mirror .po files to $po_dir/.reference and copy only the new + # or modified ones into $po_dir. Also update $po_dir/LINGUAS. + # Note po files that exist locally only are left in $po_dir but will + # not be included in LINGUAS and hence will not be distributed. + update_po_files() { + # Directory containing primary .po files. + # Overwrite them only when we're sure a .po file is new. + po_dir=$1 + domain=$2 + + # Mirror *.po files into this dir. + # Usually contains *.s1 checksum files. + ref_po_dir="$po_dir/.reference" + + test -d $ref_po_dir || mkdir $ref_po_dir || return + download_po_files $ref_po_dir $domain \ + && ls "$ref_po_dir"/*.po 2>/dev/null | + sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return + + langs=`cd $ref_po_dir && echo *.po|sed 's/\.po//g'` + test "$langs" = '*' && langs=x + for po in $langs; do + case $po in x) continue;; esac + new_po="$ref_po_dir/$po.po" + cksum_file="$ref_po_dir/$po.s1" + if ! test -f "$cksum_file" || + ! test -f "$po_dir/$po.po" || + ! $SHA1SUM -c --status "$cksum_file" \ + < "$new_po" > /dev/null; then + echo "$me: updated $po_dir/$po.po..." + cp "$new_po" "$po_dir/$po.po" \ + && $SHA1SUM < "$new_po" > "$cksum_file" + fi + done + } + + case $SKIP_PO in + '') + if test -d po; then + update_po_files po $package || exit + fi + + if test -d runtime-po; then + update_po_files runtime-po $package-runtime || exit + fi;; + esac + + symlink_to_dir() + { + src=$1/$2 + dst=${3-$2} + + test -f "$src" && { + + # If the destination directory doesn't exist, create it. + # This is required at least for "lib/uniwidth/cjk.h". + dst_dir=`dirname "$dst"` + if ! test -d "$dst_dir"; then + mkdir -p "$dst_dir" + + # If we've just created a directory like lib/uniwidth, + # tell version control system(s) it's ignorable. + # FIXME: for now, this does only one level + parent=`dirname "$dst_dir"` + for dot_ig in x $vc_ignore; do + test $dot_ig = x && continue + ig=$parent/$dot_ig + insert_vc_ignore $ig `echo "$dst_dir"|sed 's,.*/,,'` + done + fi + + if $copy; then + { + test ! -h "$dst" || { + echo "$me: rm -f $dst" && + rm -f "$dst" + } + } && + test -f "$dst" && + cmp -s "$src" "$dst" || { + echo "$me: cp -fp $src $dst" && + cp -fp "$src" "$dst" + } + else + test -h "$dst" && + src_ls=`ls -diL "$src" 2>/dev/null` && set $src_ls && src_i=$1 && + dst_ls=`ls -diL "$dst" 2>/dev/null` && set $dst_ls && dst_i=$1 && + test "$src_i" = "$dst_i" || { + dot_dots= + case $src in + /*) ;; + *) + case /$dst/ in + *//* | */../* | */./* | /*/*/*/*/*/) + echo >&2 "$me: invalid symlink calculation: $src -> $dst" + exit 1;; + /*/*/*/*/) dot_dots=../../../;; + /*/*/*/) dot_dots=../../;; + /*/*/) dot_dots=../;; + esac;; + esac + + echo "$me: ln -fs $dot_dots$src $dst" && + ln -fs "$dot_dots$src" "$dst" + } + fi + } + } + + cp_mark_as_generated() + { + cp_src=$1 + cp_dst=$2 + + if cmp -s "$cp_src" "$GNULIB_SRCDIR/$cp_dst"; then + symlink_to_dir "$GNULIB_SRCDIR" "$cp_dst" + elif cmp -s "$cp_src" "$local_gl_dir/$cp_dst"; then + symlink_to_dir $local_gl_dir "$cp_dst" + else + case $cp_dst in + *.[ch]) c1='/* '; c2=' */';; + *.texi) c1='@c '; c2= ;; + *.m4|*/Make*|Make*) c1='# ' ; c2= ;; + *) c1= ; c2= ;; + esac + + # If the destination directory doesn't exist, create it. + # This is required at least for "lib/uniwidth/cjk.h". + dst_dir=`dirname "$cp_dst"` + test -d "$dst_dir" || mkdir -p "$dst_dir" + + if test -z "$c1"; then + cmp -s "$cp_src" "$cp_dst" || { + # Copy the file first to get proper permissions if it + # doesn't already exist. Then overwrite the copy. + echo "$me: cp -f $cp_src $cp_dst" && + rm -f "$cp_dst" && + cp "$cp_src" "$cp_dst-t" && + sed "s!$bt_regex/!!g" "$cp_src" > "$cp_dst-t" && + mv -f "$cp_dst-t" "$cp_dst" + } + else + # Copy the file first to get proper permissions if it + # doesn't already exist. Then overwrite the copy. + cp "$cp_src" "$cp_dst-t" && + ( + echo "$c1-*- buffer-read-only: t -*- vi: set ro:$c2" && + echo "${c1}DO NOT EDIT! GENERATED AUTOMATICALLY!$c2" && + sed "s!$bt_regex/!!g" "$cp_src" + ) > $cp_dst-t && + if cmp -s "$cp_dst-t" "$cp_dst"; then + rm -f "$cp_dst-t" + else + echo "$me: cp $cp_src $cp_dst # with edits" && + mv -f "$cp_dst-t" "$cp_dst" + fi + fi + fi + } + + version_controlled_file() { + dir=$1 + file=$2 + found=no + if test -d CVS; then + grep -F "/$file/" $dir/CVS/Entries 2>/dev/null | + grep '^/[^/]*/[0-9]' > /dev/null && found=yes + elif test -d .git; then + git rm -n "$dir/$file" > /dev/null 2>&1 && found=yes + elif test -d .svn; then + svn log -r HEAD "$dir/$file" > /dev/null 2>&1 && found=yes + else + echo "$me: no version control for $dir/$file?" >&2 + fi + test $found = yes + } + + slurp() { + for dir in . `(cd $1 && find * -type d -print)`; do + copied= + sep= + for file in `ls -a $1/$dir`; do + case $file in + .|..) continue;; + # FIXME: should all file names starting with "." be ignored? + .*) continue;; + esac + test -d $1/$dir/$file && continue + for excluded_file in $excluded_files; do + test "$dir/$file" = "$excluded_file" && continue 2 + done + if test $file = Makefile.am && test "X$gnulib_mk" != XMakefile.am; then + copied=$copied${sep}$gnulib_mk; sep=$nl + remove_intl='/^[^#].*\/intl/s/^/#/;'"s!$bt_regex/!!g" + sed "$remove_intl" $1/$dir/$file | + cmp - $dir/$gnulib_mk > /dev/null || { + echo "$me: Copying $1/$dir/$file to $dir/$gnulib_mk ..." && + rm -f $dir/$gnulib_mk && + sed "$remove_intl" $1/$dir/$file >$dir/$gnulib_mk && + gnulib_mk_hook $dir/$gnulib_mk + } + elif { test "${2+set}" = set && test -r $2/$dir/$file; } || + version_controlled_file $dir $file; then + echo "$me: $dir/$file overrides $1/$dir/$file" + else + copied=$copied$sep$file; sep=$nl + if test $file = gettext.m4; then + echo "$me: patching m4/gettext.m4 to remove need for intl/* ..." + rm -f $dir/$file + sed ' + /^AC_DEFUN(\[AM_INTL_SUBDIR],/,/^]/c\ + AC_DEFUN([AM_INTL_SUBDIR], []) + /^AC_DEFUN(\[gt_INTL_SUBDIR_CORE],/,/^]/c\ + AC_DEFUN([gt_INTL_SUBDIR_CORE], []) + $a\ + AC_DEFUN([gl_LOCK_EARLY], []) + ' $1/$dir/$file >$dir/$file + else + cp_mark_as_generated $1/$dir/$file $dir/$file + fi + fi || exit + done + + for dot_ig in x $vc_ignore; do + test $dot_ig = x && continue + ig=$dir/$dot_ig + if test -n "$copied"; then + insert_vc_ignore $ig "$copied" + # If an ignored file name ends with .in.h, then also add + # the name with just ".h". Many gnulib headers are generated, + # e.g., stdint.in.h -> stdint.h, dirent.in.h ->..., etc. + # Likewise for .gperf -> .h, .y -> .c, and .sin -> .sed + f=`echo "$copied" | + sed ' + s/\.in\.h$/.h/ + s/\.sin$/.sed/ + s/\.y$/.c/ + s/\.gperf$/.h/ + ' + ` + insert_vc_ignore $ig "$f" + + # For files like sys_stat.in.h and sys_time.in.h, record as + # ignorable the directory we might eventually create: sys/. + f=`echo "$copied"|sed 's/sys_.*\.in\.h$/sys/'` + insert_vc_ignore $ig "$f" + fi + done + done + } + + + # Create boot temporary directories to import from gnulib and gettext. + rm -fr $bt $bt2 && + mkdir $bt $bt2 || exit + + # Import from gnulib. + + gnulib_tool_options="\ + --import\ + --no-changelog\ + --aux-dir $bt/$build_aux\ + --doc-base $bt/$doc_base\ + --lib $gnulib_name\ + --m4-base $bt/$m4_base/\ + --source-base $bt/$source_base/\ + --tests-base $bt/$tests_base\ + --local-dir $local_gl_dir\ + $gnulib_tool_option_extras\ + " + if test $use_libtool = 1; then + case "$gnulib_tool_options " in + *' --libtool '*) ;; + *) gnulib_tool_options="$gnulib_tool_options --libtool" ;; + esac + fi + echo "$0: $gnulib_tool $gnulib_tool_options --import ..." + $gnulib_tool $gnulib_tool_options --import $gnulib_modules && + slurp $bt || exit + + for file in $gnulib_files; do + symlink_to_dir "$GNULIB_SRCDIR" $file || exit + done + + + # Import from gettext. + with_gettext=yes + grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \ + with_gettext=no + + if test $with_gettext = yes; then + echo "$0: (cd $bt2; ${AUTOPOINT-autopoint}) ..." + cp configure.ac $bt2 && + (cd $bt2 && ${AUTOPOINT-autopoint} && rm configure.ac) && + slurp $bt2 $bt || exit + fi + rm -fr $bt $bt2 || exit + + # Remove any dangling symlink matching "*.m4" or "*.[ch]" in some + # gnulib-populated directories. Such .m4 files would cause aclocal to fail. + # The following requires GNU find 4.2.3 or newer. Considering the usual + # portability constraints of this script, that may seem a very demanding + # requirement, but it should be ok. Ignore any failure, which is fine, + # since this is only a convenience to help developers avoid the relatively + # unusual case in which a symlinked-to .m4 file is git-removed from gnulib + # between successive runs of this script. + find "$m4_base" "$source_base" \ + -depth \( -name '*.m4' -o -name '*.[ch]' \) \ + -type l -xtype l -delete > /dev/null 2>&1 + + # Reconfigure, getting other files. + + # Skip autoheader if it's not needed. + grep -E '^[ ]*AC_CONFIG_HEADERS?\>' configure.ac >/dev/null || + AUTOHEADER=true + + for command in \ + libtool \ + "${ACLOCAL-aclocal} --force -I m4 $ACLOCAL_FLAGS" \ + "${AUTOCONF-autoconf} --force" \ + "${AUTOHEADER-autoheader} --force" \ + "${AUTOMAKE-automake} --add-missing --copy --force-missing" + do + if test "$command" = libtool; then + test $use_libtool = 0 \ + && continue + command="${LIBTOOLIZE-libtoolize} -c -f" + fi + echo "$0: $command ..." + $command || exit + done + + + # Get some extra files from gnulib, overriding existing files. + for file in $gnulib_extra_files; do + case $file in + */INSTALL) dst=INSTALL;; + build-aux/*) dst=$build_aux/`expr "$file" : 'build-aux/\(.*\)'`;; + *) dst=$file;; + esac + symlink_to_dir "$GNULIB_SRCDIR" $file $dst || exit + done + + if test $with_gettext = yes; then + # Create gettext configuration. + echo "$0: Creating po/Makevars from po/Makevars.template ..." + rm -f po/Makevars + sed ' + /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/ + /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/ + /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'| + /^XGETTEXT_OPTIONS *=/{ + s/$/ \\/ + a\ + '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+} + } + ' po/Makevars.template >po/Makevars || exit 1 + + if test -d runtime-po; then + # Similarly for runtime-po/Makevars, but not quite the same. + rm -f runtime-po/Makevars + sed ' + /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/ + /^subdir *=.*/s/=.*/= runtime-po/ + /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/ + /^XGETTEXT_OPTIONS *=/{ + s/$/ \\/ + a\ + '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+} + } + ' po/Makevars.template >runtime-po/Makevars || exit 1 + + # Copy identical files from po to runtime-po. + (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po) + fi + fi + + bootstrap_epilogue + + echo "$0: done. Now you can run './configure'." + + # Local variables: + # eval: (add-hook 'write-file-hooks 'time-stamp) + # time-stamp-start: "scriptversion=" + # time-stamp-format: "%:y-%02m-%02d.%02H" + # time-stamp-time-zone: "UTC" + # time-stamp-end: "; # UTC" + # End: diff -cNr octave-3.4.0/build-aux/bootstrap.conf octave-3.4.1/build-aux/bootstrap.conf *** octave-3.4.0/build-aux/bootstrap.conf 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/build-aux/bootstrap.conf 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,117 ---- + # Bootstrap configuration. + + # Copyright (C) 2006-2007, 2009-2011 Free Software Foundation, Inc. + + # 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 . + + + # gnulib modules used by this package. + gnulib_modules=" + c-strcase + copysign + crypto/md5 + fcntl + filemode + fnmatch + getcwd + gethostname + getopt-gnu + gettimeofday + glob + link + lstat + mkdir + mkfifo + mkstemp + mktime + nanosleep + nproc + pathmax + progname + readlink + rename + rmdir + round + roundf + sigaction + signal + sigprocmask + sleep + sleep + stat + stdint + strftime + strptime + symlink + sys_stat + sys_time + sys_times + time + times + trunc + truncf + unistd + unlink + vsnprintf + " + + # Additional xgettext options to use. Use "\\\newline" to break lines. + XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\ + --from-code=UTF-8\\\ + --flag=asprintf:2:c-format --flag=vasprintf:2:c-format\\\ + --flag=asnprintf:3:c-format --flag=vasnprintf:3:c-format\\\ + --flag=wrapf:1:c-format\\\ + ' + + # If "AM_GNU_GETTEXT(external" or "AM_GNU_GETTEXT([external]" + # appears in configure.ac, exclude some unnecessary files. + # Without grep's -E option (not portable enough, pre-configure), + # the following test is ugly. Also, this depends on the existence + # of configure.ac, not the obsolescent-named configure.in. But if + # you're using this infrastructure, you should care about such things. + + gettext_external=0 + grep '^[ ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null && + gettext_external=1 + grep '^[ ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null && + gettext_external=1 + + if test $gettext_external = 1; then + # Gettext supplies these files, but we don't need them since + # we don't have an intl subdirectory. + excluded_files=' + m4/glibc2.m4 + m4/intdiv0.m4 + m4/lcmessage.m4 + m4/lock.m4 + m4/printf-posix.m4 + m4/size_max.m4 + m4/uintmax_t.m4 + m4/ulonglong.m4 + m4/visibility.m4 + m4/xsize.m4 + ' + fi + + # Build prerequisites + buildreq="\ + autoconf 2.59 + automake 1.9.6 + git 1.5.5 + tar - + " + checkout_only_file=etc/HACKING + gnulib_tool_option_extras="--libtool" + gnulib_name="libgnu" + source_base="libgnu" diff -cNr octave-3.4.0/build-aux/c++defs.h octave-3.4.1/build-aux/c++defs.h *** octave-3.4.0/build-aux/c++defs.h 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/build-aux/c++defs.h 2011-06-15 11:31:05.000000000 -0400 *************** *** 11,17 **** 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 ! Lesser 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 . */ --- 11,17 ---- 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 . */ diff -cNr octave-3.4.0/build-aux/common.mk octave-3.4.1/build-aux/common.mk *** octave-3.4.0/build-aux/common.mk 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/build-aux/common.mk 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,668 ---- + AWK = @AWK@ + export AWK + + SED = @SED@ + export SED + + FIND = @FIND@ + export FIND + + PERL = @PERL@ + export PERL + + PYTHON = @PYTHON@ + + GNUPLOT = @GNUPLOT@ + + DESKTOP_FILE_INSTALL = @DESKTOP_FILE_INSTALL@ + + OCTAVE_VERSION = @OCTAVE_VERSION@ + OCTAVE_API_VERSION_NUMBER = @OCTAVE_API_VERSION_NUMBER@ + OCTAVE_API_VERSION = @OCTAVE_API_VERSION@ + OCTAVE_RELEASE_DATE = @OCTAVE_RELEASE_DATE@ + OCTAVE_COPYRIGHT = @OCTAVE_COPYRIGHT@ + + version = $(OCTAVE_VERSION) + api_version = $(OCTAVE_API_VERSION) + + ## AM_LIBTOOLFLAGS = --silent + + #### Start of system configuration section. #### + + EXEEXT = @EXEEXT@ + + BUILD_EXEEXT = @BUILD_EXEEXT@ + + LEX = @LEX@ + AM_LFLAGS = @LFLAGS@ + LEXLIB = @LEXLIB@ + + YACC = @YACC@ + AM_YFLAGS = -dv + + GPERF = @GPERF@ + + AR = @AR@ + ARFLAGS = @ARFLAGS@ + + TEMPLATE_AR = @TEMPLATE_AR@ + TEMPLATE_ARFLAGS = @TEMPLATE_ARFLAGS@ + + RANLIB = @RANLIB@ + + LN_S = @LN_S@ + + MAKEINFO = @MAKEINFO@ + TEXI2DVI = @TEXI2DVI@ + TEXI2PDF = @TEXI2PDF@ + + GHOSTSCRIPT = @GHOSTSCRIPT@ + + DEFAULT_PAGER = @DEFAULT_PAGER@ + + ENABLE_DYNAMIC_LINKING = @ENABLE_DYNAMIC_LINKING@ + + SHLEXT = @SHLEXT@ + SHLEXT_VER = @SHLEXT_VER@ + SHLLIB = @SHLLIB@ + SHLLIB_VER = @SHLLIB_VER@ + SHLBIN = @SHLBIN@ + SHLBIN_VER = @SHLBIN_VER@ + SHLLINKEXT= + + LIBEXT = a + LIBPRE = @LIBPRE@ + SHLPRE = @SHLPRE@ + SHLLIBPRE = @SHLLIBPRE@ + SHLBINPRE = @SHLBINPRE@ + + # Fortran compiler flags. + + FC = @FC@ + F77 = @F77@ + AM_FFLAGS = @FFLAGS@ + FPICFLAG = @FPICFLAG@ + ALL_FFLAGS = $(FFLAGS) + F77_FLOAT_STORE_FLAG = @F77_FLOAT_STORE_FLAG@ + F77_INTEGER_8_FLAG = @F77_INTEGER_8_FLAG@ + + F77_TOLOWER=@F77_TOLOWER@ + F77_APPEND_UNDERSCORE=@F77_TOLOWER@ + F77_APPEND_EXTRA_UNDERSCORE=@F77_TOLOWER@ + + X11_INCFLAGS = @X11_INCFLAGS@ + X11_LIBS = @X11_LIBS@ + + CARBON_LIBS = @CARBON_LIBS@ + + MAGICK_CPPFLAGS = @MAGICK_CPPFLAGS@ + MAGICK_LDFLAGS = @MAGICK_LDFLAGS@ + MAGICK_LIBS = @MAGICK_LIBS@ + + PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ + PTHREAD_LIBS = @PTHREAD_LIBS@ + + LIBFLAGS = -L$(top_builddir) + + DEFS = @DEFS@ + + UGLY_DEFS = @UGLY_DEFS@ + + CC = @CC@ + CC_VERSION = @CC_VERSION@ + CONFIGURE_CFLAGS = @CFLAGS@ + CPICFLAG = @CPICFLAG@ + XTRA_CFLAGS = @XTRA_CFLAGS@ + WARN_CFLAGS = @WARN_CFLAGS@ + AM_CFLAGS = $(CONFIGURE_CFLAGS) \ + $(INCFLAGS) $(DEFS) $(XTRA_CFLAGS) $(WARN_CFLAGS) $(CFLAGS) $(PTHREAD_CFLAGS) + BUG_CFLAGS = $(DEFS) $(XTRA_CFLAGS) $(WARN_CFLAGS) $(CFLAGS) + + BUILD_CC = @BUILD_CC@ + BUILD_CFLAGS = @BUILD_CFLAGS@ + + DEPEND_FLAGS = @DEPEND_FLAGS@ + DEPEND_EXTRA_SED_PATTERN = @DEPEND_EXTRA_SED_PATTERN@ + INCLUDE_DEPS = @INCLUDE_DEPS@ + # ifeq ($(INCLUDE_DEPS),false) + # omit_deps = true; + # endif + + GRAPHICS_CFLAGS = @GRAPHICS_CFLAGS@ + + CXX = @CXX@ + CXX_VERSION = @CXX_VERSION@ + CXXCPP = @CXXCPP@ + CONFIGURE_CXXFLAGS = @CXXFLAGS@ + CXXPICFLAG = @CXXPICFLAG@ + XTRA_CXXFLAGS = @XTRA_CXXFLAGS@ + WARN_CXXFLAGS = @WARN_CXXFLAGS@ + AM_CXXFLAGS = $(CONFIGURE_CXXFLAGS) \ + $(INCFLAGS) $(DEFS) $(XTRA_CXXFLAGS) $(WARN_CXXFLAGS) $(CXXFLAGS) $(PTHREAD_CFLAGS) + BUG_CXXFLAGS = $(DEFS) $(XTRA_CXXFLAGS) $(WARN_CXXFLAGS) $(CXXFLAGS) + + BUILD_CXX = @BUILD_CXX@ + BUILD_CXXFLAGS = @BUILD_CXXFLAGS@ + + NO_UNDEFINED_LDFLAG = @NO_UNDEFINED_LDFLAG@ + + LD_CXX = @LD_CXX@ + LD_STATIC_FLAG = @LD_STATIC_FLAG@ + #ALL_LDFLAGS = $(LIBFLAGS) $(LD_STATIC_FLAG) $(CPICFLAG) $(LDFLAGS) + + BUILD_LDFLAGS = @BUILD_LDFLAGS@ + + SH_LD = @SH_LD@ + SH_LDFLAGS = @SH_LDFLAGS@ + + DL_LD = @DL_LD@ + DL_LDFLAGS = @DL_LDFLAGS@ + + SONAME_FLAGS = @SONAME_FLAGS@ + + RDYNAMIC_FLAG = @RDYNAMIC_FLAG@ + + RLD_FLAG = @RLD_FLAG@ + + FLIBS = @FLIBS@ + + LIBOCTINTERP = @LIBOCTINTERP@ + LIBOCTAVE = @LIBOCTAVE@ + LIBCRUFT = @LIBCRUFT@ + + FT2_CFLAGS = @FT2_CFLAGS@ + FT2_LIBS = @FT2_LIBS@ + + HDF5_CPPFLAGS = @HDF5_CPPFLAGS@ + HDF5_LDFLAGS = @HDF5_LDFLAGS@ + HDF5_LIBS = @HDF5_LIBS@ + + Z_CPPFLAGS = @Z_CPPFLAGS@ + Z_LDFLAGS = @Z_LDFLAGS@ + Z_LIBS = @Z_LIBS@ + + GRAPHICS_LIBS = @GRAPHICS_LIBS@ + + QHULL_CPPFLAGS = @QHULL_CPPFLAGS@ + QHULL_LDFLAGS = @QHULL_LDFLAGS@ + QHULL_LIBS = @QHULL_LIBS@ + + REGEX_LIBS = @REGEX_LIBS@ + + LAPACK_LIBS = @LAPACK_LIBS@ + BLAS_LIBS = @BLAS_LIBS@ + + FFTW3_CPPFLAGS = @FFTW3_CPPFLAGS@ + FFTW3_LDFLAGS = @FFTW3_LDFLAGS@ + FFTW3_LIBS = @FFTW3_LIBS@ + + FFTW3F_CPPFLAGS = @FFTW3F_CPPFLAGS@ + FFTW3F_LDFLAGS = @FFTW3F_LDFLAGS@ + FFTW3F_LIBS = @FFTW3F_LIBS@ + + GLPK_CPPFLAGS = @GLPK_CPPFLAGS@ + GLPK_LDFLAGS = @GLPK_LDFLAGS@ + GLPK_LIBS = @GLPK_LIBS@ + + CURL_CPPFLAGS = @CURL_CPPFLAGS@ + CURL_LDFLAGS = @CURL_LDFLAGS@ + CURL_LIBS = @CURL_LIBS@ + + AMD_CPPFLAGS = @AMD_CPPFLAGS@ + AMD_LDFLAGS = @AMD_LDFLAGS@ + AMD_LIBS = @AMD_LIBS@ + + CAMD_CPPFLAGS = @CAMD_CPPFLAGS@ + CAMD_LDFLAGS = @CAMD_LDFLAGS@ + CAMD_LIBS = @CAMD_LIBS@ + + COLAMD_CPPFLAGS = @COLAMD_CPPFLAGS@ + COLAMD_LDFLAGS = @COLAMD_LDFLAGS@ + COLAMD_LIBS = @COLAMD_LIBS@ + + CCOLAMD_CPPFLAGS = @CCOLAMD_CPPFLAGS@ + CCOLAMD_LDFLAGS = @CCOLAMD_LDFLAGS@ + CCOLAMD_LIBS = @CCOLAMD_LIBS@ + + CHOLMOD_CPPFLAGS = @CHOLMOD_CPPFLAGS@ + CHOLMOD_LDFLAGS = @CHOLMOD_LDFLAGS@ + CHOLMOD_LIBS = @CHOLMOD_LIBS@ + + CXSPARSE_CPPFLAGS = @CXSPARSE_CPPFLAGS@ + CXSPARSE_LDFLAGS = @CXSPARSE_LDFLAGS@ + CXSPARSE_LIBS = @CXSPARSE_LIBS@ + + UMFPACK_CPPFLAGS = @UMFPACK_CPPFLAGS@ + UMFPACK_LDFLAGS = @UMFPACK_LDFLAGS@ + UMFPACK_LIBS = @UMFPACK_LIBS@ + + OPENGL_LIBS = @OPENGL_LIBS@ + + QRUPDATE_CPPFLAGS = @QRUPDATE_CPPFLAGS@ + QRUPDATE_LDFLAGS = @QRUPDATE_LDFLAGS@ + QRUPDATE_LIBS = @QRUPDATE_LIBS@ + + READLINE_LIBS = @READLINE_LIBS@ + TERM_LIBS = @TERM_LIBS@ + + DL_LIBS = @DL_LIBS@ + LIBS = @LIBS@ + + ALL_CPPFLAGS = $(CPPFLAGS) $(HDF5_CPPFLAGS) $(Z_CPPFLAGS) + + SPARSE_XCPPFLAGS = \ + $(CHOLMOD_CPPFLAGS) $(UMFPACK_CPPFLAGS) \ + $(AMD_CPPFLAGS) $(CAMD_CPPFLAGS) $(COLAMD_CPPFLAGS) \ + $(CCOLAMD_CPPFLAGS) $(CXSPARSE_CPPFLAGS) + + SPARSE_XLDFLAGS = \ + $(CHOLMOD_LDFLAGS) $(UMFPACK_LDFLAGS) \ + $(AMD_LDFLAGS) $(CAMD_LDFLAGS) $(COLAMD_LDFLAGS) \ + $(CCOLAMD_LDFLAGS) $(CXSPARSE_LDFLAGS) + + ## Order matters, at least on some systems (Cygwin, for example). + SPARSE_XLIBS = \ + $(CHOLMOD_LIBS) $(UMFPACK_LIBS) \ + $(AMD_LIBS) $(CAMD_LIBS) $(COLAMD_LIBS) \ + $(CCOLAMD_LIBS) $(CXSPARSE_LIBS) + + FFTW_XCPPFLAGS = $(FFTW3_CPPFLAGS) $(FFTW3F_CPPFLAGS) + + FFTW_XLDFLAGS = $(FFTW3_LDFLAGS) $(FFTW3F_LDFLAGS) + + FFTW_XLIBS = $(FFTW3_LIBS) $(FFTW3F_LIBS) + + USE_64_BIT_IDX_T = @USE_64_BIT_IDX_T@ + OCTAVE_IDX_TYPE = @OCTAVE_IDX_TYPE@ + + TEXINFO_COLAMD = @TEXINFO_COLAMD@ + TEXINFO_CHOLMOD = @TEXINFO_CHOLMOD@ + TEXINFO_UMFPACK = @TEXINFO_UMFPACK@ + TEXINFO_QHULL = @TEXINFO_QHULL@ + + # The arguments passed to configure. + config_opts = @config_opts@ + + CONFIG_SUBDIRS = @subdirs@ + + # ==================== Where To Install Things ==================== + + # The default location for installation. Everything is placed in + # subdirectories of this directory. The default values for many of + # the variables below are expressed in terms of this one, so you may + # not need to change them. This defaults to /usr/local. + prefix = @prefix@ + + # Like `prefix', but used for architecture-specific files. + exec_prefix = @exec_prefix@ + + # Where to install Octave and other binaries that people will want to + # run directly. + bindir = @bindir@ + + # Normally the directory for installing executables that system + # administrators run. This is the same as libexecdir on Cygwin systems. + sbindir = @sbindir@ + + # The root of the directory tree for read-only + # architecture-independent data files. + datarootdir = @datarootdir@ + + # Where to install architecture-independent data files. ${fcnfiledir} + # and ${localfcnfiledir} are subdirectories of this. + datadir = @datadir@ + + libdir = @libdir@ + + # Where to install and expect extra files like NEWS and doc-cache. + octetcdir = @octetcdir@ + + # Where to install and expect libraries like libcruft.a, liboctave.a, + # and other architecture-dependent data. + octlibdir = @octlibdir@ + + # Where to install and expect executable programs to be run by Octave + # rather than directly by users. + libexecdir = @libexecdir@ + + # The prefix for Octave's include file directory. The default is + # ${prefix}/include + includedir = @includedir@ + + # Where to install Octave's man pages, and what extension they should + # have. The default is ${prefix}/man/man1 + mandir = @mandir@ + man1dir = @man1dir@ + man1ext = @man1ext@ + + # The full path to the default doc cache file. + doc_cache_file = @doc_cache_file@ + + # Where to install and expect the info files describing Octave.. + infodir = @infodir@ + + # The full path to the default info file. + infofile = @infofile@ + + # ==================== Octave-specific directories ==================== + + # These variables hold the values specific to Octave. They are + # based on the values of the standard Make variables above. + + # What is the path separation character + sepchar = @sepchar@ + + # Where to install Octave's include files. The default is + # ${includedir}/octave-${version}/octave + octincludedir = @octincludedir@ + + # Where to install the function file distributed with + # Octave. This includes the Octave version, so that the + # function files for different versions of Octave will install + # themselves in separate directories. + fcnfiledir = @fcnfiledir@ + + # Directories Octave should search for function files specific + # to this site (i.e. customizations), before consulting + # ${fcnfiledir}. This should be a colon-separated list of + # directories. + localfcnfiledir = @localfcnfiledir@ + localapifcnfiledir = @localapifcnfiledir@ + localverfcnfiledir = @localverfcnfiledir@ + + # Where to put executables to be run by Octave rather than + # the user. This path usually includes the Octave version + # and configuration name, so that multiple configurations + # for multiple versions of Octave may be installed at once. + archlibdir = @archlibdir@ + + # Where to put executables to be run by Octave rather than by the + # user that are specific to this site. + localarchlibdir = @localarchlibdir@ + localapiarchlibdir = @localapiarchlibdir@ + localverarchlibdir = @localverarchlibdir@ + + # Where to put object files that will by dynamically loaded. + # This path usually includes the Octave version and configuration + # name, so that multiple configurations for multiple versions of + # Octave may be installed at once. + octfiledir = @octfiledir@ + + # Directories Octave should search for object files that will be + # dynamically loaded and that are specific to this site + # (i.e. customizations), before consulting ${octfiledir}. This should + # be a colon-separated list of directories. + localoctfiledir = @localoctfiledir@ + localapioctfiledir = @localapioctfiledir@ + localveroctfiledir = @localveroctfiledir@ + + # Where Octave will search to find image files. + imagedir = @imagedir@ + + # The type of computer we are running on. + canonical_host_type = @canonical_host_type@ + + # Where Octave will look for startup files + startupfiledir = ${fcnfiledir}/startup + localstartupfiledir = ${localfcnfiledir}/startup + + # LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, PATH, ... + library_path_var = @library_path_var@ + + # The separator used for elements of the LD_PRELOAD variable (might be + # a space, so protect with $(null)) + null = + ldpreloadsep = $(null)@ldpreloadsep@$(null) + + NO_OCT_FILE_STRIP = @NO_OCT_FILE_STRIP@ + + # The following pattern rules and the substitution functions require + # GNU make. If you don't have it, get it! + + define simple_move_if_change_rule + if [ -s $@-t ]; then \ + $(top_srcdir)/build-aux/move-if-change $@-t $@; \ + else \ + echo "$@-t is empty!" 1>&2; \ + rm -f $@-t; \ + exit 1; \ + fi + endef + + define cp_update_rule + if [ "x$(srcdir)" != "x." ] && [ -f $(srcdir)/$@ ] && [ ! -f $@ ]; then \ + cp $(srcdir)/$@ $@; \ + touch -r $(srcdir)/$@ $@; \ + fi + endef + + # Yes, the second sed command near the end is needed, to avoid limits + # in command lengths for some versions of sed. UGLY_DEFS is often + # quite large, so it makes sense to split this command there. + + define do_subst_config_vals + echo "making $@ from $<" + $(SED) < $< \ + -e "s|%NO_OCT_FILE_STRIP%|${NO_OCT_FILE_STRIP}|" \ + -e "s|%OCTAVE_BINDIR%|\"${bindir}\"|" \ + -e "s|%OCTAVE_CONF_ALL_CFLAGS%|\"${ALL_CFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_ALL_CXXFLAGS%|\"${ALL_CXXFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_ALL_FFLAGS%|\"${ALL_FFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_ALL_LDFLAGS%|\"${ALL_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_AMD_CPPFLAGS%|\"${AMD_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_AMD_LDFLAGS%|\"${AMD_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_AMD_LIBS%|\"${AMD_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_AR%|\"${AR}\"|" \ + -e "s|%OCTAVE_CONF_ARFLAGS%|\"${ARFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_BLAS_LIBS%|\"${BLAS_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_CAMD_CPPFLAGS%|\"${CAMD_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CAMD_LDFLAGS%|\"${CAMD_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CAMD_LIBS%|\"${CAMD_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_CANONICAL_HOST_TYPE%|\"${canonical_host_type}\"|" \ + -e "s|%OCTAVE_CONF_CARBON_LIBS%|\"${CARBON_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_CC%|\"${CC}\"|" \ + -e "s|%OCTAVE_CONF_CC_VERSION%|\"${CC_VERSION}\"|" \ + -e "s|%OCTAVE_CONF_CCOLAMD_CPPFLAGS%|\"${CCOLAMD_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CCOLAMD_LDFLAGS%|\"${CCOLAMD_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CCOLAMD_LIBS%|\"${CCOLAMD_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_CFLAGS%|\"${CFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CHOLMOD_CPPFLAGS%|\"${CHOLMOD_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CHOLMOD_LDFLAGS%|\"${CHOLMOD_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CHOLMOD_LIBS%|\"${CHOLMOD_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_COLAMD_CPPFLAGS%|\"${COLAMD_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_COLAMD_LDFLAGS%|\"${COLAMD_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_COLAMD_LIBS%|\"${COLAMD_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_CPICFLAG%|\"${CPICFLAG}\"|" \ + -e "s|%OCTAVE_CONF_CPPFLAGS%|\"${CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CURL_CPPFLAGS%|\"${CURL_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CURL_LDFLAGS%|\"${CURL_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CURL_LIBS%|\"${CURL_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_CXSPARSE_CPPFLAGS%|\"${CXSPARSE_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CXSPARSE_LDFLAGS%|\"${CXSPARSE_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CXSPARSE_LIBS%|\"${CXSPARSE_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_CXX%|\"${CXX}\"|" \ + -e "s|%OCTAVE_CONF_CXXCPP%|\"${CXXCPP}\"|" \ + -e "s|%OCTAVE_CONF_CXXFLAGS%|\"${CXXFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CXXPICFLAG%|\"${CXXPICFLAG}\"|" \ + -e "s|%OCTAVE_CONF_CXX_VERSION%|\"${CXX_VERSION}\"|" \ + -e "s|%OCTAVE_CONF_DEFAULT_PAGER%|\"${DEFAULT_PAGER}\"|" \ + -e "s|%OCTAVE_CONF_DEPEND_FLAGS%|\"${DEPEND_FLAGS}\"|" \ + -e "s|%OCTAVE_CONF_DEPEND_EXTRA_SED_PATTERN%|\"${DEPEND_EXTRA_SED_PATTERN}\"|" \ + -e "s|%OCTAVE_CONF_DL_LD%|\"${DL_LD}\"|" \ + -e "s|%OCTAVE_CONF_DL_LDFLAGS%|\"${DL_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_DL_LIBS%|\"${DL_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_EXEEXT%|\"${EXEEXT}\"|" \ + -e "s|%OCTAVE_CONF_F77%|\"${F77}\"|" \ + -e "s|%OCTAVE_CONF_F77_FLOAT_STORE_FLAG%|\"${F77_FLOAT_STORE_FLAG}\"|" \ + -e "s|%OCTAVE_CONF_F77_INTEGER_8_FLAG%|\"${F77_INTEGER_8_FLAG}\"|" \ + -e "s|%OCTAVE_CONF_FC%|\"${FC}\"|" \ + -e "s|%OCTAVE_CONF_FFLAGS%|\"${FFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_FFTW3_CPPFLAGS%|\"${FFTW3_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_FFTW3_LDFLAGS%|\"${FFTW3_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_FFTW3_LIBS%|\"${FFTW3_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_FFTW3F_CPPFLAGS%|\"${FFTW3F_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_FFTW3F_LDFLAGS%|\"${FFTW3F_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_FFTW3F_LIBS%|\"${FFTW3F_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_FLIBS%|\"${FLIBS}\"|" \ + -e "s|%OCTAVE_CONF_FPICFLAG%|\"${FPICFLAG}\"|" \ + -e "s|%OCTAVE_CONF_FT2_LIBS%|\"${FT2_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_GLPK_CPPFLAGS%|\"${GLPK_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_GLPK_LDFLAGS%|\"${GLPK_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_GLPK_LIBS%|\"${GLPK_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_GNUPLOT%|\"${GNUPLOT}\"|" \ + -e "s|%OCTAVE_CONF_GRAPHICS_LIBS%|\"${GRAPHICS_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_HDF5_CPPFLAGS%|\"${HDF5_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_HDF5_LDFLAGS%|\"${HDF5_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_HDF5_LIBS%|\"${HDF5_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_INCFLAGS%|\"${INCFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_INCLUDEDIR%|\"${includedir}\"|" \ + -e "s|%OCTAVE_CONF_LAPACK_LIBS%|\"${LAPACK_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_LD_CXX%|\"${LD_CXX}\"|" \ + -e "s|%OCTAVE_CONF_LDFLAGS%|\"${LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_LD_STATIC_FLAG%|\"${LD_STATIC_FLAG}\"|" \ + -e "s|%OCTAVE_CONF_LEX%|\"${LEX}\"|" \ + -e "s|%OCTAVE_CONF_LEXLIB%|\"${LEXLIB}\"|" \ + -e "s|%OCTAVE_CONF_LFLAGS%|\"${LFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_LIBCRUFT%|\"${LIBCRUFT}\"|" \ + -e "s|%OCTAVE_CONF_LIBDIR%|\"${libdir}\"|" \ + -e "s|%OCTAVE_CONF_LIBEXT%|\"${LIBEXT}\"|" \ + -e "s|%OCTAVE_CONF_LIBFLAGS%|\"${LIBFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_LIBOCTAVE%|\"${LIBOCTAVE}\"|" \ + -e "s|%OCTAVE_CONF_LIBOCTINTERP%|\"${LIBOCTINTERP}\"|" \ + -e "s|%OCTAVE_CONF_LIBS%|\"${LIBS}\"|" \ + -e "s|%OCTAVE_CONF_LN_S%|\"${LN_S}\"|" \ + -e "s|%OCTAVE_CONF_MAGICK_CPPFLAGS%|\"${MAGICK_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_MAGICK_LDFLAGS%|\"${MAGICK_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_MAGICK_LIBS%|\"${MAGICK_LIBS}\"|" \ + -e 's|%OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS%|\"@MKOCTFILE_DL_LDFLAGS@\"|' \ + -e "s|%OCTAVE_CONF_OCTINCLUDEDIR%|\"${octincludedir}\"|" \ + -e "s|%OCTAVE_CONF_OCTLIBDIR%|\"${octlibdir}\"|" \ + -e "s|%OCTAVE_CONF_OPENGL_LIBS%|\"${OPENGL_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_PREFIX%|\"${prefix}\"|" \ + -e "s|%OCTAVE_CONF_PTHREAD_CFLAGS%|\"${PTHREAD_CFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_PTHREAD_LIBS%|\"${PTHREAD_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_QHULL_CPPFLAGS%|\"${QHULL_CPPFLAGSS}\"|" \ + -e "s|%OCTAVE_CONF_QHULL_LDFLAGS%|\"${QHULL_LDFLAGSS}\"|" \ + -e "s|%OCTAVE_CONF_QHULL_LIBS%|\"${QHULL_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_QRUPDATE_CPPFLAGS%|\"${QRUPDATE_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_QRUPDATE_LDFLAGS%|\"${QRUPDATE_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_QRUPDATE_LIBS%|\"${QRUPDATE_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_RANLIB%|\"${RANLIB}\"|" \ + -e "s|%OCTAVE_CONF_RDYNAMIC_FLAG%|\"${RDYNAMIC_FLAG}\"|" \ + -e "s|%OCTAVE_CONF_READLINE_LIBS%|\"${READLINE_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_REGEX_LIBS%|\"${REGEX_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_RLD_FLAG%|\"${RLD_FLAG}\"|" \ + -e "s|%OCTAVE_CONF_SED%|\"${SED}\"|" \ + -e "s|%OCTAVE_CONF_SHARED_LIBS%|\"${SHARED_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_SHLEXT%|\"${SHLEXT}\"|" \ + -e "s|%OCTAVE_CONF_SHLLINKEXT%|\"${SHLLINKEXT}\"|" \ + -e "s|%OCTAVE_CONF_SHLEXT_VER%|\"${SHLEXT_VER}\"|" \ + -e "s|%OCTAVE_CONF_SH_LD%|\"${SH_LD}\"|" \ + -e "s|%OCTAVE_CONF_SH_LDFLAGS%|\"${SH_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_SONAME_FLAGS%|\"${SONAME_FLAGS}\"|" \ + -e "s|%OCTAVE_CONF_STATIC_LIBS%|\"${STATIC_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_TERM_LIBS%|\"${TERM_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_UGLY_DEFS%|\"${UGLY_DEFS}\"|" \ + -e "s|%OCTAVE_CONF_UMFPACK_CPPFLAGS%|\"${UMFPACK_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_UMFPACK_LDFLAGS%|\"${UMFPACK_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_UMFPACK_LIBS%|\"${UMFPACK_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_USE_64_BIT_IDX_T%|\"${USE_64_BIT_IDX_T}\"|" \ + -e "s|%OCTAVE_CONF_VERSION%|\"${version}\"|" \ + -e "s|%OCTAVE_CONF_ENABLE_DYNAMIC_LINKING%|\"${ENABLE_DYNAMIC_LINKING}\"|" \ + -e "s|%OCTAVE_CONF_X11_INCFLAGS%|\"${X11_INCFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_X11_LIBS%|\"${X11_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_XTRA_CFLAGS%|\"${XTRA_CFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_XTRA_CXXFLAGS%|\"${XTRA_CXXFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_YACC%|\"${YACC}\"|" \ + -e "s|%OCTAVE_CONF_YFLAGS%|\"${YFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_Z_CPPFLAGS%|\"${Z_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_Z_LDFLAGS%|\"${Z_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_Z_LIBS%|\"${Z_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_config_opts%|\"${config_opts}\"|" | \ + $(SED) -e "s|%OCTAVE_CONF_DEFS%|\"${UGLY_DEFS}\"|" > $@-t + $(simple_move_if_change_rule) + endef + + define do_subst_default_vals + echo "making $@ from $<" + $(SED) < $< > $@-t \ + -e "s|%OCTAVE_ARCHLIBDIR%|\"${archlibdir}\"|" \ + -e "s|%OCTAVE_BINDIR%|\"${bindir}\"|" \ + -e "s|%OCTAVE_CANONICAL_HOST_TYPE%|\"${canonical_host_type}\"|" \ + -e "s|%OCTAVE_DATADIR%|\"${datadir}\"|" \ + -e "s|%OCTAVE_DATAROOTDIR%|\"${datarootdir}\"|" \ + -e "s|%OCTAVE_DEFAULT_PAGER%|\"${DEFAULT_PAGER}\"|" \ + -e "s|%OCTAVE_DOC_CACHE_FILE%|\"${doc_cache_file}\"|" \ + -e "s|%OCTAVE_EXEC_PREFIX%|\"${exec_prefix}\"|" \ + -e "s|%OCTAVE_FCNFILEDIR%|\"${fcnfiledir}\"|" \ + -e "s|%OCTAVE_IMAGEDIR%|\"${imagedir}\"|" \ + -e "s|%OCTAVE_INCLUDEDIR%|\"${includedir}\"|" \ + -e "s|%OCTAVE_INFODIR%|\"${infodir}\"|" \ + -e "s|%OCTAVE_INFOFILE%|\"${infofile}\"|" \ + -e "s|%OCTAVE_LIBDIR%|\"${libdir}\"|" \ + -e "s|%OCTAVE_LIBEXECDIR%|\"${libexecdir}\"|" \ + -e "s|%OCTAVE_LOCALAPIFCNFILEDIR%|\"${localapifcnfiledir}\"|" \ + -e "s|%OCTAVE_LOCALAPIOCTFILEDIR%|\"${localapioctfiledir}\"|" \ + -e "s|%OCTAVE_LOCALARCHLIBDIR%|\"${localarchlibdir}\"|" \ + -e "s|%OCTAVE_LOCALFCNFILEDIR%|\"${localfcnfiledir}\"|" \ + -e "s|%OCTAVE_LOCALOCTFILEDIR%|\"${localoctfiledir}\"|" \ + -e "s|%OCTAVE_LOCALSTARTUPFILEDIR%|\"${localstartupfiledir}\"|" \ + -e "s|%OCTAVE_LOCALAPIARCHLIBDIR%|\"${localapiarchlibdir}\"|" \ + -e "s|%OCTAVE_LOCALVERARCHLIBDIR%|\"${localverarchlibdir}\"|" \ + -e "s|%OCTAVE_LOCALVERFCNFILEDIR%|\"${localverfcnfiledir}\"|" \ + -e "s|%OCTAVE_LOCALVEROCTFILEDIR%|\"${localveroctfiledir}\"|" \ + -e "s|%OCTAVE_MAN1DIR%|\"${man1dir}\"|" \ + -e "s|%OCTAVE_MAN1EXT%|\"${man1ext}\"|" \ + -e "s|%OCTAVE_MANDIR%|\"${mandir}\"|" \ + -e "s|%OCTAVE_OCTFILEDIR%|\"${octfiledir}\"|" \ + -e "s|%OCTAVE_OCTETCDIR%|\"${octetcdir}\"|" \ + -e "s|%OCTAVE_OCTINCLUDEDIR%|\"${octincludedir}\"|" \ + -e "s|%OCTAVE_OCTLIBDIR%|\"${octlibdir}\"|" \ + -e "s|%OCTAVE_STARTUPFILEDIR%|\"${startupfiledir}\"|" \ + -e "s|%OCTAVE_PREFIX%|\"${prefix}\"|" \ + -e "s|%OCTAVE_API_VERSION%|\"${api_version}\"|" \ + -e "s|%OCTAVE_RELEASE%|\"${OCTAVE_RELEASE}\"|" \ + -e "s|%OCTAVE_VERSION%|\"${version}\"|" + $(simple_move_if_change_rule) + endef + + define do_subst_script_vals + echo "making $@ from $<" + $(SED) < $< \ + -e "s|%AWK%|${AWK}|g" \ + -e "s|%FIND%|${FIND}|g" \ + -e "s|%SED%|${SED}|g" \ + -e "s|%library_path_var%|${library_path_var}|g" \ + -e "s|%liboctinterp%|${SHLPRE}octinterp.${SHLEXT}|g" \ + -e "s|%liboctave%|${SHLPRE}octave.${SHLEXT}|g" \ + -e "s|%libcruft%|${SHLPRE}cruft.${SHLEXT}|g" \ + -e "s|%ldpreloadsep%|${ldpreloadsep}|g" \ + -e "s|%srcdir%|${srcdir}|" \ + -e "s|%top_srcdir%|${top_srcdir}|" \ + -e "s|%abs_top_srcdir%|${abs_top_srcdir}|" \ + -e "s|%builddir%|$(shell pwd)|" > $@-t + $(simple_move_if_change_rule) + endef + + define do_script_install + $(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) + for f in $(FCN_FILES); do \ + fbase=`basename $$f`; \ + rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ + $(INSTALL_DATA) $$f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ + done + $(top_srcdir)/mkpkgadd $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) > $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD.t + if [ -n "`cat $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD.t`" ]; then \ + $(INSTALL_DATA) $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD.t $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD ; \ + else \ + rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD.t ; \ + fi + endef + + define do_script_uninstall + for f in $(FCN_FILES_NO_DIR); \ + do rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$f; \ + done + rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD + -rmdir $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) + endef diff -cNr octave-3.4.0/build-aux/config.guess octave-3.4.1/build-aux/config.guess *** octave-3.4.0/build-aux/config.guess 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/build-aux/config.guess 2011-06-15 11:13:47.000000000 -0400 *************** *** 4,10 **** # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011 Free Software Foundation, Inc. ! timestamp='2011-02-02' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by --- 4,10 ---- # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011 Free Software Foundation, Inc. ! timestamp='2011-06-03' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by *************** *** 882,888 **** then echo ${UNAME_MACHINE}-unknown-linux-gnu else ! echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) --- 882,894 ---- then echo ${UNAME_MACHINE}-unknown-linux-gnu else ! if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ ! | grep -q __ARM_PCS_VFP ! then ! echo ${UNAME_MACHINE}-unknown-linux-gnueabi ! else ! echo ${UNAME_MACHINE}-unknown-linux-gnueabihf ! fi fi exit ;; avr32*:Linux:*:*) *************** *** 972,978 **** echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; tile*:Linux:*:*) ! echo ${UNAME_MACHINE}-tilera-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu --- 978,984 ---- echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; tile*:Linux:*:*) ! echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu diff -cNr octave-3.4.0/build-aux/config.sub octave-3.4.1/build-aux/config.sub *** octave-3.4.0/build-aux/config.sub 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/build-aux/config.sub 2011-06-15 11:13:47.000000000 -0400 *************** *** 4,10 **** # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011 Free Software Foundation, Inc. ! timestamp='2011-02-02' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software --- 4,10 ---- # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011 Free Software Foundation, Inc. ! timestamp='2011-06-03' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software *************** *** 76,82 **** GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, ! 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO --- 76,82 ---- GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, ! 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO *************** *** 286,294 **** | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ ! | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | rx \ | score \ --- 286,295 ---- | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ + | open8 \ | or32 \ | pdp10 | pdp11 | pj | pjl \ ! | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rx \ | score \ *************** *** 296,307 **** | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ ! | spu | strongarm \ ! | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ ! | v850 | v850e \ | we32k \ ! | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; --- 297,308 ---- | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ ! | spu \ ! | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ ! | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ ! | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; *************** *** 325,330 **** --- 326,343 ---- basic_machine=mt-unknown ;; + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. *************** *** 382,405 **** | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ ! | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ ! | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ ! | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ ! | tile-* | tilegx-* \ | tron-* \ | ubicom32-* \ ! | v850-* | v850e-* | vax-* \ | we32k-* \ ! | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) --- 395,420 ---- | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ ! | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ ! | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ ! | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ ! | tile*-* \ | tron-* \ | ubicom32-* \ ! | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ ! | vax-* \ | we32k-* \ ! | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) *************** *** 950,958 **** ;; power) basic_machine=power-ibm ;; ! ppc) basic_machine=powerpc-unknown ;; ! ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown --- 965,974 ---- ;; power) basic_machine=power-ibm ;; ! ppc | ppcbe) basic_machine=powerpc-unknown ;; ! ppc-* | ppcbe-*) ! basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown *************** *** 1046,1051 **** --- 1062,1070 ---- basic_machine=i860-stratus os=-sysv4 ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; sun2) basic_machine=m68000-sun ;; *************** *** 1102,1114 **** basic_machine=t90-cray os=-unicos ;; - # This must be matched before tile*. - tilegx*) - basic_machine=tilegx-unknown - os=-linux-gnu - ;; tile*) ! basic_machine=tile-unknown os=-linux-gnu ;; tx39) --- 1121,1128 ---- basic_machine=t90-cray os=-unicos ;; tile*) ! basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) *************** *** 1178,1183 **** --- 1192,1200 ---- xps | xps100) basic_machine=xps100-honeywell ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; ymp) basic_machine=ymp-cray os=-unicos diff -cNr octave-3.4.0/build-aux/depcomp octave-3.4.1/build-aux/depcomp *** octave-3.4.0/build-aux/depcomp 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/build-aux/depcomp 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,10 **** #! /bin/sh # depcomp - compile a program generating dependencies as side-effects ! scriptversion=2010-10-07.20; # UTC ! # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010 ! # Free Software Foundation, Inc. # 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 --- 1,10 ---- #! /bin/sh # depcomp - compile a program generating dependencies as side-effects ! scriptversion=2011-04-16.09; # UTC ! # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, ! # 2011 Free Software Foundation, Inc. # 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 *************** *** 166,175 **** ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ! ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. ! sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; --- 166,177 ---- ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ! ## well. hp depmode also adds that space, but also prefixes the VPATH ! ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. ! sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ ! | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; *************** *** 557,563 **** touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" ! cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation --- 559,567 ---- touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" ! # makedepend may prepend the VPATH from the source file name to the object. ! # No need to regex-escape $object, excess matching of '.' is harmless. ! sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation diff -cNr octave-3.4.0/build-aux/install-sh octave-3.4.1/build-aux/install-sh *** octave-3.4.0/build-aux/install-sh 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/build-aux/install-sh 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,7 **** #!/bin/sh # install - install a program, script, or datafile ! scriptversion=2010-02-06.18; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the --- 1,7 ---- #!/bin/sh # install - install a program, script, or datafile ! scriptversion=2011-01-19.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the *************** *** 156,161 **** --- 156,165 ---- -s) stripcmd=$stripprog;; -t) dst_arg=$2 + # Protect names problematic for `test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac shift;; -T) no_target_directory=true;; *************** *** 186,191 **** --- 190,199 ---- fi shift # arg dst_arg=$arg + # Protect names problematic for `test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac done fi *************** *** 232,240 **** for src do ! # Protect names starting with `-'. case $src in ! -*) src=./$src;; esac if test -n "$dir_arg"; then --- 240,248 ---- for src do ! # Protect names problematic for `test' and other utilities. case $src in ! -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then *************** *** 256,267 **** echo "$0: no destination specified." >&2 exit 1 fi - dst=$dst_arg - # Protect names starting with `-'. - case $dst in - -*) dst=./$dst;; - esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. --- 264,270 ---- *************** *** 389,395 **** case $dstdir in /*) prefix='/';; ! -*) prefix='./';; *) prefix='';; esac --- 392,398 ---- case $dstdir in /*) prefix='/';; ! [-=\(\)!]*) prefix='./';; *) prefix='';; esac *************** *** 407,413 **** for d do ! test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then --- 410,416 ---- for d do ! test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then diff -cNr octave-3.4.0/build-aux/ltmain.sh octave-3.4.1/build-aux/ltmain.sh *** octave-3.4.0/build-aux/ltmain.sh 2011-02-08 05:03:20.000000000 -0500 --- octave-3.4.1/build-aux/ltmain.sh 2011-06-15 11:31:10.000000000 -0400 *************** *** 1,9 **** - # Generated from ltmain.m4sh. ! # ltmain.sh (GNU libtool) 2.2.6b # Written by Gordon Matzigkeit , 1996 ! # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. --- 1,9 ---- ! # libtool (GNU libtool) 2.4 # Written by Gordon Matzigkeit , 1996 ! # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, ! # 2007, 2008, 2009, 2010 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *************** *** 32,81 **** # # Provide generalized library-building support services. # ! # --config show all configuration variables ! # --debug enable verbose shell tracing ! # -n, --dry-run display commands without modifying any files ! # --features display basic configuration information and exit ! # --mode=MODE use operation mode MODE ! # --preserve-dup-deps don't remove duplicate dependency libraries ! # --quiet, --silent don't print informational messages ! # --tag=TAG use configuration variables from tag TAG ! # -v, --verbose print informational messages (default) ! # --version print version information ! # -h, --help print short or long help message # # MODE must be one of the following: # ! # clean remove files from the build directory ! # compile compile a source file into a libtool object ! # execute automatically set library path, then run a program ! # finish complete the installation of libtool libraries ! # install install libraries or executables ! # link create a library or an executable ! # uninstall remove libraries from an installed directory # ! # MODE-ARGS vary depending on the MODE. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # ! # host-triplet: $host ! # shell: $SHELL ! # compiler: $LTCC ! # compiler flags: $LTCFLAGS ! # linker: $LD (gnu? $with_gnu_ld) ! # $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2 ! # automake: $automake_version ! # autoconf: $autoconf_version # # Report bugs to . ! PROGRAM=ltmain.sh PACKAGE=libtool ! VERSION="2.2.6b Debian-2.2.6b-2" TIMESTAMP="" ! package_revision=1.3017 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then --- 32,87 ---- # # Provide generalized library-building support services. # ! # --config show all configuration variables ! # --debug enable verbose shell tracing ! # -n, --dry-run display commands without modifying any files ! # --features display basic configuration information and exit ! # --mode=MODE use operation mode MODE ! # --preserve-dup-deps don't remove duplicate dependency libraries ! # --quiet, --silent don't print informational messages ! # --no-quiet, --no-silent ! # print informational messages (default) ! # --tag=TAG use configuration variables from tag TAG ! # -v, --verbose print more informational messages than default ! # --no-verbose don't print the extra informational messages ! # --version print version information ! # -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # ! # clean remove files from the build directory ! # compile compile a source file into a libtool object ! # execute automatically set library path, then run a program ! # finish complete the installation of libtool libraries ! # install install libraries or executables ! # link create a library or an executable ! # uninstall remove libraries from an installed directory # ! # MODE-ARGS vary depending on the MODE. When passed as first option, ! # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # ! # host-triplet: $host ! # shell: $SHELL ! # compiler: $LTCC ! # compiler flags: $LTCFLAGS ! # linker: $LD (gnu? $with_gnu_ld) ! # $progname: (GNU libtool) 2.4 Debian-2.4-2 ! # automake: $automake_version ! # autoconf: $autoconf_version # # Report bugs to . + # GNU libtool home page: . + # General help using GNU software: . ! PROGRAM=libtool PACKAGE=libtool ! VERSION="2.4 Debian-2.4-2" TIMESTAMP="" ! package_revision=1.3293 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then *************** *** 91,100 **** BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # NLS nuisances: We save the old values to restore during execute mode. - # Only set LANG and LC_ALL to C if already set. - # These must not be set unconditionally because not all systems understand - # e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES --- 97,111 ---- BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh + # A function that is used when there is no print builtin or printf. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF + $1 + _LTECHO_EOF' + } + # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES *************** *** 107,121 **** lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done $lt_unset CDPATH : ${CP="cp -f"} ! : ${ECHO="echo"} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} --- 118,141 ---- lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done + LC_ALL=C + LANGUAGE=C + export LANGUAGE LC_ALL $lt_unset CDPATH + # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh + # is ksh but when the shell is invoked as "sh" and the current value of + # the _XPG environment variable is not equal to 1 (one), the special + # positional parameter $0, within a function call, is the name of the + # function. + progpath="$0" : ${CP="cp -f"} ! test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} *************** *** 144,149 **** --- 164,190 ---- dirname="s,/[^/]*$,," basename="s,^.*/,," + # func_dirname file append nondir_replacement + # Compute the dirname of FILE. If nonempty, add APPEND to the result, + # otherwise set result to NONDIR_REPLACEMENT. + func_dirname () + { + func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi + } # func_dirname may be replaced by extended shell implementation + + + # func_basename file + func_basename () + { + func_basename_result=`$ECHO "${1}" | $SED "$basename"` + } # func_basename may be replaced by extended shell implementation + + # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: *************** *** 158,190 **** # those functions but instead duplicate the functionality here. func_dirname_and_basename () { ! # Extract subdirectory from the argument. ! func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` ! if test "X$func_dirname_result" = "X${1}"; then ! func_dirname_result="${3}" ! else ! func_dirname_result="$func_dirname_result${2}" ! fi ! func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } ! # Generated shell functions inserted here. ! # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh ! # is ksh but when the shell is invoked as "sh" and the current value of ! # the _XPG environment variable is not equal to 1 (one), the special ! # positional parameter $0, within a function call, is the name of the ! # function. ! progpath="$0" # The name of this program: - # In the unlikely event $progname began with a '-', it would play havoc with - # func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result - case $progname in - -*) progname=./$progname ;; - esac # Make sure we have an absolute path for reexecution: case $progpath in --- 199,381 ---- # those functions but instead duplicate the functionality here. func_dirname_and_basename () { ! # Extract subdirectory from the argument. ! func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` ! if test "X$func_dirname_result" = "X${1}"; then ! func_dirname_result="${3}" ! else ! func_dirname_result="$func_dirname_result${2}" ! fi ! func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` ! } # func_dirname_and_basename may be replaced by extended shell implementation ! ! ! # func_stripname prefix suffix name ! # strip PREFIX and SUFFIX off of NAME. ! # PREFIX and SUFFIX must not contain globbing or regex special ! # characters, hashes, percent signs, but SUFFIX may contain a leading ! # dot (in which case that matches only a dot). ! # func_strip_suffix prefix name ! func_stripname () ! { ! case ${2} in ! .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; ! *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; ! esac ! } # func_stripname may be replaced by extended shell implementation ! ! ! # These SED scripts presuppose an absolute path with a trailing slash. ! pathcar='s,^/\([^/]*\).*$,\1,' ! pathcdr='s,^/[^/]*,,' ! removedotparts=':dotsl ! s@/\./@/@g ! t dotsl ! s,/\.$,/,' ! collapseslashes='s@/\{1,\}@/@g' ! finalslash='s,/*$,/,' ! ! # func_normal_abspath PATH ! # Remove doubled-up and trailing slashes, "." path components, ! # and cancel out any ".." path components in PATH after making ! # it an absolute path. ! # value returned in "$func_normal_abspath_result" ! func_normal_abspath () ! { ! # Start from root dir and reassemble the path. ! func_normal_abspath_result= ! func_normal_abspath_tpath=$1 ! func_normal_abspath_altnamespace= ! case $func_normal_abspath_tpath in ! "") ! # Empty path, that just means $cwd. ! func_stripname '' '/' "`pwd`" ! func_normal_abspath_result=$func_stripname_result ! return ! ;; ! # The next three entries are used to spot a run of precisely ! # two leading slashes without using negated character classes; ! # we take advantage of case's first-match behaviour. ! ///*) ! # Unusual form of absolute path, do nothing. ! ;; ! //*) ! # Not necessarily an ordinary path; POSIX reserves leading '//' ! # and for example Cygwin uses it to access remote file shares ! # over CIFS/SMB, so we conserve a leading double slash if found. ! func_normal_abspath_altnamespace=/ ! ;; ! /*) ! # Absolute path, do nothing. ! ;; ! *) ! # Relative path, prepend $cwd. ! func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ! ;; ! esac ! # Cancel out all the simple stuff to save iterations. We also want ! # the path to end with a slash for ease of parsing, so make sure ! # there is one (and only one) here. ! func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ ! -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` ! while :; do ! # Processed it all yet? ! if test "$func_normal_abspath_tpath" = / ; then ! # If we ascended to the root using ".." the result may be empty now. ! if test -z "$func_normal_abspath_result" ; then ! func_normal_abspath_result=/ ! fi ! break ! fi ! func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ ! -e "$pathcar"` ! func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ ! -e "$pathcdr"` ! # Figure out what to do with it ! case $func_normal_abspath_tcomponent in ! "") ! # Trailing empty path component, ignore it. ! ;; ! ..) ! # Parent dir; strip last assembled component from result. ! func_dirname "$func_normal_abspath_result" ! func_normal_abspath_result=$func_dirname_result ! ;; ! *) ! # Actual path component, append it. ! func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ! ;; ! esac ! done ! # Restore leading double-slash if one was found on entry. ! func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } ! # func_relative_path SRCDIR DSTDIR ! # generates a relative path from SRCDIR to DSTDIR, with a trailing ! # slash if non-empty, suitable for immediately appending a filename ! # without needing to append a separator. ! # value returned in "$func_relative_path_result" ! func_relative_path () ! { ! func_relative_path_result= ! func_normal_abspath "$1" ! func_relative_path_tlibdir=$func_normal_abspath_result ! func_normal_abspath "$2" ! func_relative_path_tbindir=$func_normal_abspath_result ! ! # Ascend the tree starting from libdir ! while :; do ! # check if we have found a prefix of bindir ! case $func_relative_path_tbindir in ! $func_relative_path_tlibdir) ! # found an exact match ! func_relative_path_tcancelled= ! break ! ;; ! $func_relative_path_tlibdir*) ! # found a matching prefix ! func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" ! func_relative_path_tcancelled=$func_stripname_result ! if test -z "$func_relative_path_result"; then ! func_relative_path_result=. ! fi ! break ! ;; ! *) ! func_dirname $func_relative_path_tlibdir ! func_relative_path_tlibdir=${func_dirname_result} ! if test "x$func_relative_path_tlibdir" = x ; then ! # Have to descend all the way to the root! ! func_relative_path_result=../$func_relative_path_result ! func_relative_path_tcancelled=$func_relative_path_tbindir ! break ! fi ! func_relative_path_result=../$func_relative_path_result ! ;; ! esac ! done ! ! # Now calculate path; take care to avoid doubling-up slashes. ! func_stripname '' '/' "$func_relative_path_result" ! func_relative_path_result=$func_stripname_result ! func_stripname '/' '/' "$func_relative_path_tcancelled" ! if test "x$func_stripname_result" != x ; then ! func_relative_path_result=${func_relative_path_result}/${func_stripname_result} ! fi ! # Normalisation. If bindir is libdir, return empty string, ! # else relative path ending with a slash; either way, target ! # file name can be directly appended. ! if test ! -z "$func_relative_path_result"; then ! func_stripname './' '' "$func_relative_path_result/" ! func_relative_path_result=$func_stripname_result ! fi ! } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in *************** *** 215,220 **** --- 406,420 ---- # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' + # Sed substitution that turns a string into a regex matching for the + # string literally. + sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' + + # Sed substitution that converts a w32 file name or path + # which contains forward slashes, into one that contains + # (escaped) backslashes. A very naive implementation. + lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. *************** *** 243,249 **** # name if it has been set yet. func_echo () { ! $ECHO "$progname${mode+: }$mode: $*" } # func_verbose arg... --- 443,449 ---- # name if it has been set yet. func_echo () { ! $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... *************** *** 258,275 **** : } # func_error arg... # Echo program name prefixed message to standard error. func_error () { ! $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { ! $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: : --- 458,482 ---- : } + # func_echo_all arg... + # Invoke $ECHO with all args, space-separated. + func_echo_all () + { + $ECHO "$*" + } + # func_error arg... # Echo program name prefixed message to standard error. func_error () { ! $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { ! $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : *************** *** 326,334 **** case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop ! my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` done ! my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do --- 533,541 ---- case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop ! my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done ! my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do *************** *** 378,384 **** func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi ! $ECHO "X$my_tmpdir" | $Xsed } --- 585,591 ---- func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi ! $ECHO "$my_tmpdir" } *************** *** 392,398 **** { case $1 in *[\\\`\"\$]*) ! func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac --- 599,605 ---- { case $1 in *[\\\`\"\$]*) ! func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac *************** *** 419,425 **** { case $1 in *[\\\`\"]*) ! my_arg=`$ECHO "X$1" | $Xsed \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; --- 626,632 ---- { case $1 in *[\\\`\"]*) ! my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; *************** *** 488,502 **** fi } ! ! # func_version # Echo version message to standard output and exit. func_version () { ! $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ --- 695,733 ---- fi } ! # func_tr_sh ! # Turn $1 into a string suitable for a shell variable name. ! # Result is stored in $func_tr_sh_result. All characters ! # not in the set a-zA-Z0-9_ are replaced with '_'. Further, ! # if $1 begins with a digit, a '_' is prepended as well. ! func_tr_sh () ! { ! case $1 in ! [0-9]* | *[!a-zA-Z0-9_]*) ! func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ! ;; ! * ) ! func_tr_sh_result=$1 ! ;; ! esac ! } # func_version # Echo version message to standard output and exit. func_version () { ! $opt_debug ! ! $SED -n '/(C)/!b go ! :more ! /\./!{ ! N ! s/\n# / / ! b more ! } ! :go ! /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ *************** *** 509,530 **** # Echo short help message to standard output and exit. func_usage () { ! $SED -n '/^# Usage:/,/# -h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" ! $ECHO $ECHO "run \`$progname --help | more' for full usage" exit $? } ! # func_help ! # Echo long help message to standard output and exit. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { s/^# // s/^# *$// s*\$progname*'$progname'* --- 740,767 ---- # Echo short help message to standard output and exit. func_usage () { ! $opt_debug ! ! $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" ! echo $ECHO "run \`$progname --help | more' for full usage" exit $? } ! # func_help [NOEXIT] ! # Echo long help message to standard output and exit, ! # unless 'noexit' is passed as argument. func_help () { + $opt_debug + $SED -n '/^# Usage:/,/# Report bugs to/ { + :print s/^# // s/^# *$// s*\$progname*'$progname'* *************** *** 537,544 **** s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p ! }' < "$progpath" ! exit $? } # func_missing_arg argname --- 774,788 ---- s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p ! d ! } ! /^# .* home page:/b print ! /^# General help using/b print ! ' < "$progpath" ! ret=$? ! if test -z "$1"; then ! exit $ret ! fi } # func_missing_arg argname *************** *** 546,608 **** # exit_cmd. func_missing_arg () { ! func_error "missing argument for $1" exit_cmd=exit } - exit_cmd=: - # Check that we have a working $ECHO. - if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift - elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : - elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then - # Yippee, $ECHO works! - : - else - # Restart under the correct shell, and then maybe $ECHO will work. - exec $SHELL "$progpath" --no-reexec ${1+"$@"} - fi - if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat </dev/null || echo $max_cmd_len` + } # func_len may be replaced by extended shell implementation + + + # func_lo2o object + func_lo2o () + { + func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` + } # func_lo2o may be replaced by extended shell implementation + + + # func_xform libobj-or-source + func_xform () + { + func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` + } # func_xform may be replaced by extended shell implementation + + # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. *************** *** 636,651 **** # Display the features supported by this script. func_features () { ! $ECHO "host: $host" if test "$build_libtool_libs" = yes; then ! $ECHO "enable shared libraries" else ! $ECHO "disable shared libraries" fi if test "$build_old_libs" = yes; then ! $ECHO "enable static libraries" else ! $ECHO "disable static libraries" fi exit $? --- 923,938 ---- # Display the features supported by this script. func_features () { ! echo "host: $host" if test "$build_libtool_libs" = yes; then ! echo "enable shared libraries" else ! echo "disable shared libraries" fi if test "$build_old_libs" = yes; then ! echo "enable static libraries" else ! echo "disable static libraries" fi exit $? *************** *** 692,808 **** esac } ! # Parse options once, thoroughly. This comes as soon as possible in ! # the script to make things like `libtool --version' happen quickly. { - # Shorthand for --mode=foo, only valid as the first argument - case $1 in - clean|clea|cle|cl) - shift; set dummy --mode clean ${1+"$@"}; shift - ;; - compile|compil|compi|comp|com|co|c) - shift; set dummy --mode compile ${1+"$@"}; shift - ;; - execute|execut|execu|exec|exe|ex|e) - shift; set dummy --mode execute ${1+"$@"}; shift - ;; - finish|finis|fini|fin|fi|f) - shift; set dummy --mode finish ${1+"$@"}; shift - ;; - install|instal|insta|inst|ins|in|i) - shift; set dummy --mode install ${1+"$@"}; shift - ;; - link|lin|li|l) - shift; set dummy --mode link ${1+"$@"}; shift - ;; - uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) - shift; set dummy --mode uninstall ${1+"$@"}; shift - ;; - esac ! # Parse non-mode specific arguments: ! while test "$#" -gt 0; do opt="$1" shift - case $opt in ! --config) func_config ;; ! ! --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" - opt_debug='set -x' $opt_debug ;; ! ! -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break ! execute_dlfiles="$execute_dlfiles $1" ! shift ;; ! ! --dry-run | -n) opt_dry_run=: ;; ! --features) func_features ;; ! --finish) mode="finish" ;; ! ! --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break ! case $1 in ! # Valid mode arguments: ! clean) ;; ! compile) ;; ! execute) ;; ! finish) ;; ! install) ;; ! link) ;; ! relink) ;; ! uninstall) ;; ! ! # Catch anything else as an error ! *) func_error "invalid argument for $opt" ! exit_cmd=exit ! break ! ;; ! esac ! ! mode="$1" shift ;; - --preserve-dup-deps) ! opt_duplicate_deps=: ;; ! ! --quiet|--silent) preserve_args="$preserve_args $opt" ! opt_silent=: ;; ! ! --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false ;; ! ! --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break ! preserve_args="$preserve_args $opt $1" ! func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: ! -dlopen=*|--mode=*|--tag=*) ! func_opt_split "$opt" ! set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; ! -\?|-h) func_usage ;; ! --help) opt_help=: ;; ! --version) func_version ;; ! ! -*) func_fatal_help "unrecognized option \`$opt'" ;; ! ! *) nonopt="$opt" ! break ;; esac done case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) --- 979,1182 ---- esac } ! # func_check_version_match ! # Ensure that we are using m4 macros, and libtool script from the same ! # release of libtool. ! func_check_version_match () { + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF + $progname: Version mismatch error. This is $PACKAGE $VERSION, but the + $progname: definition of this LT_INIT comes from an older release. + $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION + $progname: and run autoconf again. + _LT_EOF + else + cat >&2 <<_LT_EOF + $progname: Version mismatch error. This is $PACKAGE $VERSION, but the + $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. + $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION + $progname: and run autoconf again. + _LT_EOF + fi + else + cat >&2 <<_LT_EOF + $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, + $progname: but the definition of this LT_INIT comes from revision $macro_revision. + $progname: You should recreate aclocal.m4 with macros from revision $package_revision + $progname: of $PACKAGE $VERSION and run autoconf again. + _LT_EOF + fi + + exit $EXIT_MISMATCH + fi + } + + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + esac ! ! # Option defaults: ! opt_debug=: ! opt_dry_run=false ! opt_config=false ! opt_preserve_dup_deps=false ! opt_features=false ! opt_finish=false ! opt_help=false ! opt_help_all=false ! opt_silent=: ! opt_verbose=: ! opt_silent=false ! opt_verbose=false ! ! ! # Parse options once, thoroughly. This comes as soon as possible in the ! # script to make things like `--version' happen as quickly as we can. ! { ! # this just eases exit handling ! while test $# -gt 0; do opt="$1" shift case $opt in ! --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; ! --dry-run|--dryrun|-n) ! opt_dry_run=: ;; ! --config) ! opt_config=: ! func_config ! ;; ! --dlopen|-dlopen) ! optarg="$1" ! opt_dlopen="${opt_dlopen+$opt_dlopen ! }$optarg" shift ;; --preserve-dup-deps) ! opt_preserve_dup_deps=: ;; ! --features) ! opt_features=: ! func_features ! ;; ! --finish) ! opt_finish=: ! set dummy --mode finish ${1+"$@"}; shift ! ;; ! --help) ! opt_help=: ! ;; ! --help-all) ! opt_help_all=: ! opt_help=': help-all' ! ;; ! --mode) ! test $# = 0 && func_missing_arg $opt && break ! optarg="$1" ! opt_mode="$optarg" ! case $optarg in ! # Valid mode arguments: ! clean|compile|execute|finish|install|link|relink|uninstall) ;; ! ! # Catch anything else as an error ! *) func_error "invalid argument for $opt" ! exit_cmd=exit ! break ! ;; ! esac ! shift ! ;; ! --no-silent|--no-quiet) opt_silent=false + func_append preserve_args " $opt" ;; ! --no-verbose) ! opt_verbose=false ! func_append preserve_args " $opt" ! ;; ! --silent|--quiet) ! opt_silent=: ! func_append preserve_args " $opt" ! opt_verbose=false ! ;; ! --verbose|-v) ! opt_verbose=: ! func_append preserve_args " $opt" ! opt_silent=false ! ;; ! --tag) ! test $# = 0 && func_missing_arg $opt && break ! optarg="$1" ! opt_tag="$optarg" ! func_append preserve_args " $opt $optarg" ! func_enable_tag "$optarg" shift ;; + -\?|-h) func_usage ;; + --help) func_help ;; + --version) func_version ;; + # Separate optargs to long options: ! --*=*) ! func_split_long_opt "$opt" ! set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; ! # Separate non-argument short options: ! -\?*|-h*|-n*|-v*) ! func_split_short_opt "$opt" ! set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} ! shift ;; + + --) break ;; + -*) func_fatal_help "unrecognized option \`$opt'" ;; + *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done + # Validate options: + + # save first non-option argument + if test "$#" -gt 0; then + nonopt="$opt" + shift + fi + + # preserve --debug + test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) *************** *** 810,891 **** opt_duplicate_compiler_generated_deps=: ;; *) ! opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ;; esac ! # Having warned about all mis-specified options, bail out if ! # anything was wrong. ! $exit_cmd $EXIT_FAILURE ! } ! # func_check_version_match ! # Ensure that we are using m4 macros, and libtool script from the same ! # release of libtool. ! func_check_version_match () ! { ! if test "$package_revision" != "$macro_revision"; then ! if test "$VERSION" != "$macro_version"; then ! if test -z "$macro_version"; then ! cat >&2 <<_LT_EOF ! $progname: Version mismatch error. This is $PACKAGE $VERSION, but the ! $progname: definition of this LT_INIT comes from an older release. ! $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION ! $progname: and run autoconf again. ! _LT_EOF ! else ! cat >&2 <<_LT_EOF ! $progname: Version mismatch error. This is $PACKAGE $VERSION, but the ! $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. ! $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION ! $progname: and run autoconf again. ! _LT_EOF ! fi ! else ! cat >&2 <<_LT_EOF ! $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, ! $progname: but the definition of this LT_INIT comes from revision $macro_revision. ! $progname: You should recreate aclocal.m4 with macros from revision $package_revision ! $progname: of $PACKAGE $VERSION and run autoconf again. ! _LT_EOF fi ! exit $EXIT_MISMATCH ! fi ! } ! ! ## ----------- ## ! ## Main. ## ! ## ----------- ## ! ! $opt_help || { ! # Sanity checks first: ! func_check_version_match ! ! if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then ! func_fatal_configuration "not configured to build any kind of library" ! fi ! test -z "$mode" && func_fatal_error "error: you must specify a MODE." ! # Darwin sucks ! eval std_shrext=\"$shrext_cmds\" - # Only execute mode is allowed to have -dlopen flags. - if test -n "$execute_dlfiles" && test "$mode" != execute; then - func_error "unrecognized option \`-dlopen'" - $ECHO "$help" 1>&2 - exit $EXIT_FAILURE - fi - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$progname --help --mode=$mode' for more information." - } # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. --- 1184,1227 ---- opt_duplicate_compiler_generated_deps=: ;; *) ! opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac ! $opt_help || { ! # Sanity checks first: ! func_check_version_match ! if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then ! func_fatal_configuration "not configured to build any kind of library" fi ! # Darwin sucks ! eval std_shrext=\"$shrext_cmds\" ! # Only execute mode is allowed to have -dlopen flags. ! if test -n "$opt_dlopen" && test "$opt_mode" != execute; then ! func_error "unrecognized option \`-dlopen'" ! $ECHO "$help" 1>&2 ! exit $EXIT_FAILURE ! fi ! # Change the help message to a mode-specific one. ! generic_help="$help" ! help="Try \`$progname --help --mode=$opt_mode' for more information." ! } ! # Bail if the options were screwed ! $exit_cmd $EXIT_FAILURE ! } + ## ----------- ## + ## Main. ## + ## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. *************** *** 950,961 **** # temporary ltwrapper_script. func_ltwrapper_scriptname () { ! func_ltwrapper_scriptname_result="" ! if func_ltwrapper_executable_p "$1"; then ! func_dirname_and_basename "$1" "" "." ! func_stripname '' '.exe' "$func_basename_result" ! func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" ! fi } # func_ltwrapper_p file --- 1286,1294 ---- # temporary ltwrapper_script. func_ltwrapper_scriptname () { ! func_dirname_and_basename "$1" "" "." ! func_stripname '' '.exe' "$func_basename_result" ! func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file *************** *** 1001,1006 **** --- 1334,1370 ---- } + # func_resolve_sysroot PATH + # Replace a leading = in PATH with a sysroot. Store the result into + # func_resolve_sysroot_result + func_resolve_sysroot () + { + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac + } + + # func_replace_sysroot PATH + # If PATH begins with the sysroot, replace it with = and + # store the result into func_replace_sysroot_result. + func_replace_sysroot () + { + case "$lt_sysroot:$1" in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result="=$func_stripname_result" + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac + } + # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. *************** *** 1013,1025 **** if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do ! func_quote_for_eval "$arg" ! CC_quoted="$CC_quoted $func_quote_for_eval_result" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. ! " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) --- 1377,1391 ---- if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do ! func_append_quoted CC_quoted "$arg" done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. ! " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ ! " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) *************** *** 1030,1040 **** CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. ! func_quote_for_eval "$arg" ! CC_quoted="$CC_quoted $func_quote_for_eval_result" done case "$@ " in ! " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. --- 1396,1408 ---- CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. ! func_append_quoted CC_quoted "$arg" done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in ! " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ ! " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. *************** *** 1097,1102 **** --- 1465,1950 ---- } } + + ################################################## + # FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # + ################################################## + + # func_convert_core_file_wine_to_w32 ARG + # Helper function used by file name conversion functions when $build is *nix, + # and $host is mingw, cygwin, or some other w32 environment. Relies on a + # correctly configured wine environment available, with the winepath program + # in $build's $PATH. + # + # ARG is the $build file name to be converted to w32 format. + # Result is available in $func_convert_core_file_wine_to_w32_result, and will + # be empty on error (or when ARG is empty) + func_convert_core_file_wine_to_w32 () + { + $opt_debug + func_convert_core_file_wine_to_w32_result="$1" + if test -n "$1"; then + # Unfortunately, winepath does not exit with a non-zero error code, so we + # are forced to check the contents of stdout. On the other hand, if the + # command is not found, the shell will set an exit code of 127 and print + # *an error message* to stdout. So we must check for both error code of + # zero AND non-empty stdout, which explains the odd construction: + func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` + if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$lt_sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi + } + # end: func_convert_core_file_wine_to_w32 + + + # func_convert_core_path_wine_to_w32 ARG + # Helper function used by path conversion functions when $build is *nix, and + # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly + # configured wine environment available, with the winepath program in $build's + # $PATH. Assumes ARG has no leading or trailing path separator characters. + # + # ARG is path to be converted from $build format to win32. + # Result is available in $func_convert_core_path_wine_to_w32_result. + # Unconvertible file (directory) names in ARG are skipped; if no directory names + # are convertible, then the result may be empty. + func_convert_core_path_wine_to_w32 () + { + $opt_debug + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result="" + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result" ; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi + } + # end: func_convert_core_path_wine_to_w32 + + + # func_cygpath ARGS... + # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when + # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) + # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or + # (2), returns the Cygwin file name or path in func_cygpath_result (input + # file name or path is assumed to be in w32 format, as previously converted + # from $build's *nix or MSYS format). In case (3), returns the w32 file name + # or path in func_cygpath_result (input file name or path is assumed to be in + # Cygwin format). Returns an empty string on error. + # + # ARGS are passed to cygpath, with the last one being the file name or path to + # be converted. + # + # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH + # environment variable; do not put it in $PATH. + func_cygpath () + { + $opt_debug + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" + fi + } + #end: func_cygpath + + + # func_convert_core_msys_to_w32 ARG + # Convert file name or path ARG from MSYS format to w32 format. Return + # result in func_convert_core_msys_to_w32_result. + func_convert_core_msys_to_w32 () + { + $opt_debug + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` + } + #end: func_convert_core_msys_to_w32 + + + # func_convert_file_check ARG1 ARG2 + # Verify that ARG1 (a file name in $build format) was converted to $host + # format in ARG2. Otherwise, emit an error message, but continue (resetting + # func_to_host_file_result to ARG1). + func_convert_file_check () + { + $opt_debug + if test -z "$2" && test -n "$1" ; then + func_error "Could not determine host file name corresponding to" + func_error " \`$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result="$1" + fi + } + # end func_convert_file_check + + + # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH + # Verify that FROM_PATH (a path in $build format) was converted to $host + # format in TO_PATH. Otherwise, emit an error message, but continue, resetting + # func_to_host_file_result to a simplistic fallback value (see below). + func_convert_path_check () + { + $opt_debug + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " \`$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result="$3" + fi + fi + } + # end func_convert_path_check + + + # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG + # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT + # and appending REPL if ORIG matches BACKPAT. + func_convert_path_front_back_pathsep () + { + $opt_debug + case $4 in + $1 ) func_to_host_path_result="$3$func_to_host_path_result" + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac + } + # end func_convert_path_front_back_pathsep + + + ################################################## + # $build to $host FILE NAME CONVERSION FUNCTIONS # + ################################################## + # invoked via `$to_host_file_cmd ARG' + # + # In each case, ARG is the path to be converted from $build to $host format. + # Result will be available in $func_to_host_file_result. + + + # func_to_host_file ARG + # Converts the file name ARG from $build format to $host format. Return result + # in func_to_host_file_result. + func_to_host_file () + { + $opt_debug + $to_host_file_cmd "$1" + } + # end func_to_host_file + + + # func_to_tool_file ARG LAZY + # converts the file name ARG from $build format to toolchain format. Return + # result in func_to_tool_file_result. If the conversion in use is listed + # in (the comma separated) LAZY, no conversion takes place. + func_to_tool_file () + { + $opt_debug + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac + } + # end func_to_tool_file + + + # func_convert_file_noop ARG + # Copy ARG to func_to_host_file_result. + func_convert_file_noop () + { + func_to_host_file_result="$1" + } + # end func_convert_file_noop + + + # func_convert_file_msys_to_w32 ARG + # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic + # conversion to w32 is not available inside the cwrapper. Returns result in + # func_to_host_file_result. + func_convert_file_msys_to_w32 () + { + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result="$func_convert_core_msys_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" + } + # end func_convert_file_msys_to_w32 + + + # func_convert_file_cygwin_to_w32 ARG + # Convert file name ARG from Cygwin to w32 format. Returns result in + # func_to_host_file_result. + func_convert_file_cygwin_to_w32 () + { + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" + } + # end func_convert_file_cygwin_to_w32 + + + # func_convert_file_nix_to_w32 ARG + # Convert file name ARG from *nix to w32 format. Requires a wine environment + # and a working winepath. Returns result in func_to_host_file_result. + func_convert_file_nix_to_w32 () + { + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" + } + # end func_convert_file_nix_to_w32 + + + # func_convert_file_msys_to_cygwin ARG + # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. + # Returns result in func_to_host_file_result. + func_convert_file_msys_to_cygwin () + { + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" + } + # end func_convert_file_msys_to_cygwin + + + # func_convert_file_nix_to_cygwin ARG + # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed + # in a wine environment, working winepath, and LT_CYGPATH set. Returns result + # in func_to_host_file_result. + func_convert_file_nix_to_cygwin () + { + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" + } + # end func_convert_file_nix_to_cygwin + + + ############################################# + # $build to $host PATH CONVERSION FUNCTIONS # + ############################################# + # invoked via `$to_host_path_cmd ARG' + # + # In each case, ARG is the path to be converted from $build to $host format. + # The result will be available in $func_to_host_path_result. + # + # Path separators are also converted from $build format to $host format. If + # ARG begins or ends with a path separator character, it is preserved (but + # converted to $host format) on output. + # + # All path conversion functions are named using the following convention: + # file name conversion function : func_convert_file_X_to_Y () + # path conversion function : func_convert_path_X_to_Y () + # where, for any given $build/$host combination the 'X_to_Y' value is the + # same. If conversion functions are added for new $build/$host combinations, + # the two new functions must follow this pattern, or func_init_to_host_path_cmd + # will break. + + + # func_init_to_host_path_cmd + # Ensures that function "pointer" variable $to_host_path_cmd is set to the + # appropriate value, based on the value of $to_host_file_cmd. + to_host_path_cmd= + func_init_to_host_path_cmd () + { + $opt_debug + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd="func_convert_path_${func_stripname_result}" + fi + } + + + # func_to_host_path ARG + # Converts the path ARG from $build format to $host format. Return result + # in func_to_host_path_result. + func_to_host_path () + { + $opt_debug + func_init_to_host_path_cmd + $to_host_path_cmd "$1" + } + # end func_to_host_path + + + # func_convert_path_noop ARG + # Copy ARG to func_to_host_path_result. + func_convert_path_noop () + { + func_to_host_path_result="$1" + } + # end func_convert_path_noop + + + # func_convert_path_msys_to_w32 ARG + # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic + # conversion to w32 is not available inside the cwrapper. Returns result in + # func_to_host_path_result. + func_convert_path_msys_to_w32 () + { + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_msys_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi + } + # end func_convert_path_msys_to_w32 + + + # func_convert_path_cygwin_to_w32 ARG + # Convert path ARG from Cygwin to w32 format. Returns result in + # func_to_host_file_result. + func_convert_path_cygwin_to_w32 () + { + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi + } + # end func_convert_path_cygwin_to_w32 + + + # func_convert_path_nix_to_w32 ARG + # Convert path ARG from *nix to w32 format. Requires a wine environment and + # a working winepath. Returns result in func_to_host_file_result. + func_convert_path_nix_to_w32 () + { + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi + } + # end func_convert_path_nix_to_w32 + + + # func_convert_path_msys_to_cygwin ARG + # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. + # Returns result in func_to_host_file_result. + func_convert_path_msys_to_cygwin () + { + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi + } + # end func_convert_path_msys_to_cygwin + + + # func_convert_path_nix_to_cygwin ARG + # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a + # a wine environment, working winepath, and LT_CYGPATH set. Returns result in + # func_to_host_file_result. + func_convert_path_nix_to_cygwin () + { + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi + } + # end func_convert_path_nix_to_cygwin + + # func_mode_compile arg... func_mode_compile () { *************** *** 1137,1148 **** ;; -pie | -fpie | -fPIE) ! pie_flag="$pie_flag $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) ! later="$later $arg" continue ;; --- 1985,1996 ---- ;; -pie | -fpie | -fPIE) ! func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) ! func_append later " $arg" continue ;; *************** *** 1163,1177 **** save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" ! func_quote_for_eval "$arg" ! lastarg="$lastarg $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. ! base_compile="$base_compile $lastarg" continue ;; --- 2011,2024 ---- save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" ! func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. ! func_append base_compile " $lastarg" continue ;; *************** *** 1187,1194 **** esac # case $arg_mode # Aesthetically quote the previous argument. ! func_quote_for_eval "$lastarg" ! base_compile="$base_compile $func_quote_for_eval_result" done # for arg case $arg_mode in --- 2034,2040 ---- esac # case $arg_mode # Aesthetically quote the previous argument. ! func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in *************** *** 1213,1219 **** *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ ! *.[fF][09]? | *.for | *.java | *.obj | *.sx) func_xform "$libobj" libobj=$func_xform_result ;; --- 2059,2065 ---- *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ ! *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; *************** *** 1288,1294 **** # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then ! output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= --- 2134,2140 ---- # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then ! output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= *************** *** 1319,1335 **** $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi ! removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist ! removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 ! if test -n "$fix_srcfile_path"; then ! eval srcfile=\"$fix_srcfile_path\" ! fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result --- 2165,2180 ---- $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi ! func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist ! func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 ! func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 ! srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result *************** *** 1349,1355 **** if test -z "$output_obj"; then # Place PIC objects in $objdir ! command="$command -o $lobj" fi func_show_eval_locale "$command" \ --- 2194,2200 ---- if test -z "$output_obj"; then # Place PIC objects in $objdir ! func_append command " -o $lobj" fi func_show_eval_locale "$command" \ *************** *** 1396,1406 **** command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then ! command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. ! command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' --- 2241,2251 ---- command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then ! func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. ! func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' *************** *** 1445,1457 **** } $opt_help || { ! test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. ! case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. --- 2290,2302 ---- } $opt_help || { ! test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. ! case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. *************** *** 1482,1491 **** -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes ! -prefer-pic try to building PIC objects only ! -prefer-non-pic try to building non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. --- 2327,2337 ---- -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes ! -prefer-pic try to build PIC objects only ! -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. *************** *** 1538,1544 **** The following components of INSTALL-COMMAND are treated specially: ! -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." --- 2384,2390 ---- The following components of INSTALL-COMMAND are treated specially: ! -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." *************** *** 1558,1563 **** --- 2404,2411 ---- -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) *************** *** 1586,1591 **** --- 2434,2444 ---- -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. *************** *** 1619,1636 **** ;; *) ! func_fatal_help "invalid operation mode \`$mode'" ;; esac ! $ECHO $ECHO "Try \`$progname --help' for more information about other modes." - - exit $? } ! # Now that we've collected a possible --mode arg, show help if necessary ! $opt_help && func_mode_help # func_mode_execute arg... --- 2472,2515 ---- ;; *) ! func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac ! echo $ECHO "Try \`$progname --help' for more information about other modes." } ! # Now that we've collected a possible --mode arg, show help if necessary ! if $opt_help; then ! if test "$opt_help" = :; then ! func_mode_help ! else ! { ! func_help noexit ! for opt_mode in compile link execute install finish uninstall clean; do ! func_mode_help ! done ! } | sed -n '1p; 2,$s/^Usage:/ or: /p' ! { ! func_help noexit ! for opt_mode in compile link execute install finish uninstall clean; do ! echo ! func_mode_help ! done ! } | ! sed '1d ! /^When reporting/,/^Report/{ ! H ! d ! } ! $x ! /information about other modes/d ! /more detailed .*MODE/d ! s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' ! fi ! exit $? ! fi # func_mode_execute arg... *************** *** 1643,1655 **** func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. ! for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" --- 2522,2537 ---- func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. ! for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" *************** *** 1671,1677 **** dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then ! dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" --- 2553,2559 ---- dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then ! func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" *************** *** 1712,1718 **** for file do case $file in ! -*) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then --- 2594,2600 ---- for file do case $file in ! -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then *************** *** 1728,1735 **** ;; esac # Quote arguments (to preserve shell metacharacters). ! func_quote_for_eval "$file" ! args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then --- 2610,2616 ---- ;; esac # Quote arguments (to preserve shell metacharacters). ! func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then *************** *** 1754,1782 **** # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" ! $ECHO "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } ! test "$mode" = execute && func_mode_execute ${1+"$@"} ! # func_mode_finish arg... ! func_mode_finish () ! { ! $opt_debug ! libdirs="$nonopt" ! admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for dir - do - libdirs="$libdirs $dir" - done - for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. --- 2635,2700 ---- # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" ! echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } ! test "$opt_mode" = execute && func_mode_execute ${1+"$@"} ! ! ! # func_mode_finish arg... ! func_mode_finish () ! { ! $opt_debug ! libs= ! libdirs= ! admincmds= ! ! for opt in "$nonopt" ${1+"$@"} ! do ! if test -d "$opt"; then ! func_append libdirs " $opt" ! ! elif test -f "$opt"; then ! if func_lalib_unsafe_p "$opt"; then ! func_append libs " $opt" ! else ! func_warning "\`$opt' is not a valid libtool archive" ! fi ! ! else ! func_fatal_error "invalid argument \`$opt'" ! fi ! done + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi ! # Remove sysroot references ! if $opt_dry_run; then ! for lib in $libs; do ! echo "removing references to $lt_sysroot and \`=' prefixes from $lib" ! done ! else ! tmpdir=`func_mktempdir` ! for lib in $libs; do ! sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ ! > $tmpdir/tmp-la ! mv -f $tmpdir/tmp-la $lib ! done ! ${RM}r "$tmpdir" ! fi ! fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. *************** *** 1786,1792 **** if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" ! $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done --- 2704,2710 ---- if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" ! $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done *************** *** 1795,1847 **** # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS ! $ECHO "X----------------------------------------------------------------------" | $Xsed ! $ECHO "Libraries have been installed in:" ! for libdir in $libdirs; do ! $ECHO " $libdir" ! done ! $ECHO ! $ECHO "If you ever happen to want to link against installed libraries" ! $ECHO "in a given directory, LIBDIR, you must either use libtool, and" ! $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" ! $ECHO "flag during linking and do at least one of the following:" ! if test -n "$shlibpath_var"; then ! $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" ! $ECHO " during execution" ! fi ! if test -n "$runpath_var"; then ! $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" ! $ECHO " during linking" ! fi ! if test -n "$hardcode_libdir_flag_spec"; then ! libdir=LIBDIR ! eval flag=\"$hardcode_libdir_flag_spec\" ! $ECHO " - use the \`$flag' linker flag" ! fi ! if test -n "$admincmds"; then ! $ECHO " - have your system administrator run these commands:$admincmds" ! fi ! if test -f /etc/ld.so.conf; then ! $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" ! fi ! $ECHO ! $ECHO "See any operating system documentation about shared libraries for" ! case $host in ! solaris2.[6789]|solaris2.1[0-9]) ! $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" ! $ECHO "pages." ! ;; ! *) ! $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ! ;; ! esac ! $ECHO "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS } ! test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... --- 2713,2767 ---- # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS ! if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then ! echo "----------------------------------------------------------------------" ! echo "Libraries have been installed in:" ! for libdir in $libdirs; do ! $ECHO " $libdir" ! done ! echo ! echo "If you ever happen to want to link against installed libraries" ! echo "in a given directory, LIBDIR, you must either use libtool, and" ! echo "specify the full pathname of the library, or use the \`-LLIBDIR'" ! echo "flag during linking and do at least one of the following:" ! if test -n "$shlibpath_var"; then ! echo " - add LIBDIR to the \`$shlibpath_var' environment variable" ! echo " during execution" ! fi ! if test -n "$runpath_var"; then ! echo " - add LIBDIR to the \`$runpath_var' environment variable" ! echo " during linking" ! fi ! if test -n "$hardcode_libdir_flag_spec"; then ! libdir=LIBDIR ! eval flag=\"$hardcode_libdir_flag_spec\" ! $ECHO " - use the \`$flag' linker flag" ! fi ! if test -n "$admincmds"; then ! $ECHO " - have your system administrator run these commands:$admincmds" ! fi ! if test -f /etc/ld.so.conf; then ! echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" ! fi ! echo ! echo "See any operating system documentation about shared libraries for" ! case $host in ! solaris2.[6789]|solaris2.1[0-9]) ! echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" ! echo "pages." ! ;; ! *) ! echo "more information, such as the ld(1) and ld.so(8) manual pages." ! ;; ! esac ! echo "----------------------------------------------------------------------" ! fi exit $EXIT_SUCCESS } ! test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... *************** *** 1852,1858 **** # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. ! $ECHO "X$nonopt" | $GREP shtool >/dev/null; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " --- 2772,2778 ---- # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. ! case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " *************** *** 1866,1872 **** # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" ! install_prog="$install_prog$func_quote_for_eval_result" # We need to accept at least all the BSD install flags. dest= --- 2786,2797 ---- # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" ! func_append install_prog "$func_quote_for_eval_result" ! install_shared_prog=$install_prog ! case " $install_prog " in ! *[\\\ /]cp\ *) install_cp=: ;; ! *) install_cp=false ;; ! esac # We need to accept at least all the BSD install flags. dest= *************** *** 1876,1885 **** install_type= isdir=no stripme= for arg do if test -n "$dest"; then ! files="$files $dest" dest=$arg continue fi --- 2801,2812 ---- install_type= isdir=no stripme= + no_mode=: for arg do + arg2= if test -n "$dest"; then ! func_append files " $dest" dest=$arg continue fi *************** *** 1887,1896 **** case $arg in -d) isdir=yes ;; -f) ! case " $install_prog " in ! *[\\\ /]cp\ *) ;; ! *) prev=$arg ;; ! esac ;; -g | -m | -o) prev=$arg --- 2814,2822 ---- case $arg in -d) isdir=yes ;; -f) ! if $install_cp; then :; else ! prev=$arg ! fi ;; -g | -m | -o) prev=$arg *************** *** 1904,1909 **** --- 2830,2839 ---- *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then + if test "x$prev" = x-m && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi prev= else dest=$arg *************** *** 1914,1920 **** # Aesthetically quote the argument. func_quote_for_eval "$arg" ! install_prog="$install_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ --- 2844,2854 ---- # Aesthetically quote the argument. func_quote_for_eval "$arg" ! func_append install_prog " $func_quote_for_eval_result" ! if test -n "$arg2"; then ! func_quote_for_eval "$arg2" ! fi ! func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ *************** *** 1923,1928 **** --- 2857,2869 ---- test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" *************** *** 1977,1986 **** case $file in *.$libext) # Do the static libraries later. ! staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" --- 2918,2930 ---- case $file in *.$libext) # Do the static libraries later. ! func_append staticlibs " $file" ;; *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" *************** *** 1994,2016 **** if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; ! *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; ! *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" ! dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. ! inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that --- 2938,2960 ---- if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; ! *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; ! *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" ! func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. ! inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that *************** *** 2023,2031 **** if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. ! relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else ! relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" --- 2967,2975 ---- if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. ! relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else ! relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" *************** *** 2043,2049 **** test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. ! func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in --- 2987,2993 ---- test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. ! func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in *************** *** 2083,2089 **** func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. ! test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) --- 3027,3033 ---- func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. ! test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) *************** *** 2183,2189 **** if test -f "$lib"; then func_source "$lib" fi ! libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no --- 3127,3133 ---- if test -f "$lib"; then func_source "$lib" fi ! libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no *************** *** 2202,2208 **** file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. ! relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" --- 3146,3152 ---- file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. ! relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" *************** *** 2221,2227 **** } else # Install the binary that we compiled earlier. ! file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi --- 3165,3171 ---- } else # Install the binary that we compiled earlier. ! file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi *************** *** 2280,2286 **** fi } ! test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p --- 3224,3230 ---- fi } ! test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p *************** *** 2323,2328 **** --- 3267,3288 ---- extern \"C\" { #endif + #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) + #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" + #endif + + /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ + #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) + /* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ + # define LT_DLSYM_CONST + #elif defined(__osf__) + /* This system does not cope well with relocations in const data. */ + # define LT_DLSYM_CONST + #else + # define LT_DLSYM_CONST const + #endif + /* External symbol declarations for the compiler. */\ " *************** *** 2332,2341 **** $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. ! progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for progfile in $progfiles; do ! func_verbose "extracting global C symbols from \`$progfile'" ! $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then --- 3292,3302 ---- $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. ! progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do ! func_to_tool_file "$progfile" func_convert_file_msys_to_w32 ! func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" ! $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then *************** *** 2371,2377 **** eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in ! *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; --- 3332,3338 ---- eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in ! *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; *************** *** 2384,2393 **** func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" ! $opt_dry_run || { ! eval '$ECHO ": $name " >> "$nlist"' ! eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" ! } done $opt_dry_run || { --- 3345,3396 ---- func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" ! case $host in ! *cygwin* | *mingw* | *cegcc* ) ! # if an import library, we need to obtain dlname ! if func_win32_import_lib_p "$dlprefile"; then ! func_tr_sh "$dlprefile" ! eval "curr_lafile=\$libfile_$func_tr_sh_result" ! dlprefile_dlbasename="" ! if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then ! # Use subshell, to avoid clobbering current variable values ! dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` ! if test -n "$dlprefile_dlname" ; then ! func_basename "$dlprefile_dlname" ! dlprefile_dlbasename="$func_basename_result" ! else ! # no lafile. user explicitly requested -dlpreopen . ! $sharedlib_from_linklib_cmd "$dlprefile" ! dlprefile_dlbasename=$sharedlib_from_linklib_result ! fi ! fi ! $opt_dry_run || { ! if test -n "$dlprefile_dlbasename" ; then ! eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' ! else ! func_warning "Could not compute DLL name from $name" ! eval '$ECHO ": $name " >> "$nlist"' ! fi ! func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 ! eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | ! $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" ! } ! else # not an import lib ! $opt_dry_run || { ! eval '$ECHO ": $name " >> "$nlist"' ! func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 ! eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" ! } ! fi ! ;; ! *) ! $opt_dry_run || { ! eval '$ECHO ": $name " >> "$nlist"' ! func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 ! eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" ! } ! ;; ! esac done $opt_dry_run || { *************** *** 2415,2450 **** if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else ! $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" fi ! $ECHO >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; ! " ! case $host in ! *cygwin* | *mingw* | *cegcc* ) ! $ECHO >> "$output_objdir/$my_dlsyms" "\ ! /* DATA imports from DLLs on WIN32 con't be const, because ! runtime relocations are performed -- see ld's documentation ! on pseudo-relocs. */" ! lt_dlsym_const= ;; ! *osf5*) ! echo >> "$output_objdir/$my_dlsyms" "\ ! /* This system does not cope well with relocations in const data */" ! lt_dlsym_const= ;; ! *) ! lt_dlsym_const=const ;; ! esac ! ! $ECHO >> "$output_objdir/$my_dlsyms" "\ ! extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; ! $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," --- 3418,3436 ---- if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else ! echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi ! echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; ! extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; ! LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," *************** *** 2457,2463 **** eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac ! $ECHO >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; --- 3443,3449 ---- eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac ! echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; *************** *** 2500,2506 **** for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; ! *) symtab_cflags="$symtab_cflags $arg" ;; esac done --- 3486,3492 ---- for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; ! *) func_append symtab_cflags " $arg" ;; esac done *************** *** 2515,2530 **** case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then ! compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` ! finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else ! compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ! finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` fi ;; *) ! compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ! finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ;; esac ;; --- 3501,3516 ---- case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then ! compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` ! finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else ! compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` ! finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) ! compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` ! finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *************** *** 2538,2545 **** # really was required. # Nullify the symbol file. ! compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` ! finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi } --- 3524,3531 ---- # really was required. # Nullify the symbol file. ! compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` ! finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } *************** *** 2549,2554 **** --- 3535,3541 ---- # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. + # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug *************** *** 2559,2567 **** win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | ! $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then ! win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ --- 3546,3556 ---- win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | ! $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then ! func_to_tool_file "$1" func_convert_file_msys_to_w32 ! win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ *************** *** 2590,2595 **** --- 3579,3709 ---- $ECHO "$win32_libid_type" } + # func_cygming_dll_for_implib ARG + # + # Platform-specific function to extract the + # name of the DLL associated with the specified + # import library ARG. + # Invoked by eval'ing the libtool variable + # $sharedlib_from_linklib_cmd + # Result is available in the variable + # $sharedlib_from_linklib_result + func_cygming_dll_for_implib () + { + $opt_debug + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` + } + + # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs + # + # The is the core of a fallback implementation of a + # platform-specific function to extract the name of the + # DLL associated with the specified import library LIBNAME. + # + # SECTION_NAME is either .idata$6 or .idata$7, depending + # on the platform and compiler that created the implib. + # + # Echos the name of the DLL associated with the + # specified import library. + func_cygming_dll_for_implib_fallback_core () + { + $opt_debug + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive which possess that section. Heuristic: eliminate + # all those which have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' + } + + # func_cygming_gnu_implib_p ARG + # This predicate returns with zero status (TRUE) if + # ARG is a GNU/binutils-style import library. Returns + # with nonzero status (FALSE) otherwise. + func_cygming_gnu_implib_p () + { + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" + } + + # func_cygming_ms_implib_p ARG + # This predicate returns with zero status (TRUE) if + # ARG is an MS-style import library. Returns + # with nonzero status (FALSE) otherwise. + func_cygming_ms_implib_p () + { + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" + } + + # func_cygming_dll_for_implib_fallback ARG + # Platform-specific function to extract the + # name of the DLL associated with the specified + # import library ARG. + # + # This fallback implementation is for use when $DLLTOOL + # does not support the --identify-strict option. + # Invoked by eval'ing the libtool variable + # $sharedlib_from_linklib_cmd + # Result is available in the variable + # $sharedlib_from_linklib_result + func_cygming_dll_for_implib_fallback () + { + $opt_debug + if func_cygming_gnu_implib_p "$1" ; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1" ; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result="" + fi + } # func_extract_an_archive dir oldlib *************** *** 2598,2604 **** $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" ! func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else --- 3712,3729 ---- $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" ! if test "$lock_old_archive_extraction" = yes; then ! lockfile=$f_ex_an_ar_oldlib.lock ! until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do ! func_echo "Waiting for $lockfile to be removed" ! sleep 2 ! done ! fi ! func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ ! 'stat=$?; rm -f "$lockfile"; exit $stat' ! if test "$lock_old_archive_extraction" = yes; then ! $opt_dry_run || rm -f "$lockfile" ! fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else *************** *** 2669,2675 **** darwin_file= darwin_files= for darwin_file in $darwin_filelist; do ! darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ --- 3794,3800 ---- darwin_file= darwin_files= for darwin_file in $darwin_filelist; do ! darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ *************** *** 2684,2708 **** func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac ! my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } ! ! # func_emit_wrapper_part1 [arg=no] # ! # Emit the first part of a libtool wrapper script on stdout. ! # For more information, see the description associated with ! # func_emit_wrapper(), below. ! func_emit_wrapper_part1 () ! { ! func_emit_wrapper_part1_arg1=no ! if test -n "$1" ; then ! func_emit_wrapper_part1_arg1=$1 ! fi $ECHO "\ #! $SHELL --- 3809,3838 ---- func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac ! my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } ! # func_emit_wrapper [arg=no] # ! # Emit a libtool wrapper script on stdout. ! # Don't directly open a file because we may want to ! # incorporate the script contents within a cygwin/mingw ! # wrapper executable. Must ONLY be called from within ! # func_mode_link because it depends on a number of variables ! # set therein. ! # ! # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR ! # variable will take. If 'yes', then the emitted script ! # will assume that the directory in which it is stored is ! # the $objdir directory. This is a cygwin/mingw-specific ! # behavior. ! func_emit_wrapper () ! { ! func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL *************** *** 2718,2724 **** # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. - Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible --- 3848,3853 ---- *************** *** 2749,2779 **** else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then ! ECHO=\"$qecho\" ! file=\"\$0\" ! # Make sure echo works. ! if test \"X\$1\" = X--no-reexec; then ! # Discard the --no-reexec flag, and continue. ! shift ! elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then ! # Yippee, \$ECHO works! ! : ! else ! # Restart under the correct shell, and then maybe \$ECHO will work. ! exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} ! fi ! fi\ " ! $ECHO "\ # Find the directory that this script lives in. ! thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. ! file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do ! destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then --- 3878,4009 ---- else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then ! file=\"\$0\"" ! ! qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` ! $ECHO "\ ! ! # A function that is used when there is no print builtin or printf. ! func_fallback_echo () ! { ! eval 'cat <<_LTECHO_EOF ! \$1 ! _LTECHO_EOF' ! } ! ECHO=\"$qECHO\" ! fi ! ! # Very basic option parsing. These options are (a) specific to ! # the libtool wrapper, (b) are identical between the wrapper ! # /script/ and the wrapper /executable/ which is used only on ! # windows platforms, and (c) all begin with the string "--lt-" ! # (application programs are unlikely to have options which match ! # this pattern). ! # ! # There are only two supported options: --lt-debug and ! # --lt-dump-script. There is, deliberately, no --lt-help. ! # ! # The first argument to this parsing function should be the ! # script's $0 value, followed by "$@". ! lt_option_debug= ! func_parse_lt_options () ! { ! lt_script_arg0=\$0 ! shift ! for lt_opt ! do ! case \"\$lt_opt\" in ! --lt-debug) lt_option_debug=1 ;; ! --lt-dump-script) ! lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` ! test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. ! lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` ! cat \"\$lt_dump_D/\$lt_dump_F\" ! exit 0 ! ;; ! --lt-*) ! \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 ! exit 1 ! ;; ! esac ! done ! ! # Print the debug banner immediately: ! if test -n \"\$lt_option_debug\"; then ! echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 ! fi ! } ! ! # Used when --lt-debug. Prints its arguments to stdout ! # (redirection is the responsibility of the caller) ! func_lt_dump_args () ! { ! lt_dump_args_N=1; ! for lt_arg ! do ! \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" ! lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` ! done ! } ! ! # Core function for launching the target application ! func_exec_program_core () ! { " ! case $host in ! # Backslashes separate directories on plain windows ! *-*-mingw | *-*-os2* | *-cegcc*) ! $ECHO "\ ! if test -n \"\$lt_option_debug\"; then ! \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 ! func_lt_dump_args \${1+\"\$@\"} 1>&2 ! fi ! exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} ! " ! ;; ! ! *) ! $ECHO "\ ! if test -n \"\$lt_option_debug\"; then ! \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 ! func_lt_dump_args \${1+\"\$@\"} 1>&2 ! fi ! exec \"\$progdir/\$program\" \${1+\"\$@\"} ! " ! ;; ! esac ! $ECHO "\ ! \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 ! exit 1 ! } ! ! # A function to encapsulate launching the target application ! # Strips options in the --lt-* namespace from \$@ and ! # launches target application with the remaining arguments. ! func_exec_program () ! { ! for lt_wr_arg ! do ! case \$lt_wr_arg in ! --lt-*) ;; ! *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; ! esac ! shift ! done ! func_exec_program_core \${1+\"\$@\"} ! } ! ! # Parse options ! func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. ! thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. ! file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do ! destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then *************** *** 2783,2812 **** esac fi ! file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` ! file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done - " - } - # end: func_emit_wrapper_part1 - - # func_emit_wrapper_part2 [arg=no] - # - # Emit the second part of a libtool wrapper script on stdout. - # For more information, see the description associated with - # func_emit_wrapper(), below. - func_emit_wrapper_part2 () - { - func_emit_wrapper_part2_arg1=no - if test -n "$1" ; then - func_emit_wrapper_part2_arg1=$1 - fi - - $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. ! WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then --- 4013,4025 ---- esac fi ! file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` ! file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. ! WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then *************** *** 2814,2820 **** fi # remove .libs from thisdir case \"\$thisdir\" in ! *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi --- 4027,4033 ---- fi # remove .libs from thisdir case \"\$thisdir\" in ! *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi *************** *** 2869,2874 **** --- 4082,4099 ---- if test -f \"\$progdir/\$program\"; then" + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH + " + fi + # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ *************** *** 2877,3129 **** # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed ! $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi - # fixup the dll searchpath if we need to. - if test -n "$dllsearchpath"; then - $ECHO "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH - " - fi - $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. ! " ! case $host in ! # Backslashes separate directories on plain windows ! *-*-mingw | *-*-os2* | *-cegcc*) ! $ECHO "\ ! exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} ! " ! ;; ! ! *) ! $ECHO "\ ! exec \"\$progdir/\$program\" \${1+\"\$@\"} ! " ! ;; ! esac ! $ECHO "\ ! \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 ! exit 1 fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 ! $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 ! exit 1 ! fi ! fi\ ! " ! } ! # end: func_emit_wrapper_part2 ! ! ! # func_emit_wrapper [arg=no] ! # ! # Emit a libtool wrapper script on stdout. ! # Don't directly open a file because we may want to ! # incorporate the script contents within a cygwin/mingw ! # wrapper executable. Must ONLY be called from within ! # func_mode_link because it depends on a number of variables ! # set therein. ! # ! # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR ! # variable will take. If 'yes', then the emitted script ! # will assume that the directory in which it is stored is ! # the $objdir directory. This is a cygwin/mingw-specific ! # behavior. ! func_emit_wrapper () ! { ! func_emit_wrapper_arg1=no ! if test -n "$1" ; then ! func_emit_wrapper_arg1=$1 ! fi ! ! # split this up so that func_emit_cwrapperexe_src ! # can call each part independently. ! func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" ! func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" ! } ! ! ! # func_to_host_path arg ! # ! # Convert paths to host format when used with build tools. ! # Intended for use with "native" mingw (where libtool itself ! # is running under the msys shell), or in the following cross- ! # build environments: ! # $build $host ! # mingw (msys) mingw [e.g. native] ! # cygwin mingw ! # *nix + wine mingw ! # where wine is equipped with the `winepath' executable. ! # In the native mingw case, the (msys) shell automatically ! # converts paths for any non-msys applications it launches, ! # but that facility isn't available from inside the cwrapper. ! # Similar accommodations are necessary for $host mingw and ! # $build cygwin. Calling this function does no harm for other ! # $host/$build combinations not listed above. ! # ! # ARG is the path (on $build) that should be converted to ! # the proper representation for $host. The result is stored ! # in $func_to_host_path_result. ! func_to_host_path () ! { ! func_to_host_path_result="$1" ! if test -n "$1" ; then ! case $host in ! *mingw* ) ! lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' ! case $build in ! *mingw* ) # actually, msys ! # awkward: cmd appends spaces to result ! lt_sed_strip_trailing_spaces="s/[ ]*\$//" ! func_to_host_path_tmp1=`( cmd //c echo "$1" |\ ! $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` ! func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ ! $SED -e "$lt_sed_naive_backslashify"` ! ;; ! *cygwin* ) ! func_to_host_path_tmp1=`cygpath -w "$1"` ! func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ ! $SED -e "$lt_sed_naive_backslashify"` ! ;; ! * ) ! # Unfortunately, winepath does not exit with a non-zero ! # error code, so we are forced to check the contents of ! # stdout. On the other hand, if the command is not ! # found, the shell will set an exit code of 127 and print ! # *an error message* to stdout. So we must check for both ! # error code of zero AND non-empty stdout, which explains ! # the odd construction: ! func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` ! if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then ! func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ ! $SED -e "$lt_sed_naive_backslashify"` ! else ! # Allow warning below. ! func_to_host_path_result="" ! fi ! ;; ! esac ! if test -z "$func_to_host_path_result" ; then ! func_error "Could not determine host path corresponding to" ! func_error " '$1'" ! func_error "Continuing, but uninstalled executables may not work." ! # Fallback: ! func_to_host_path_result="$1" ! fi ! ;; ! esac ! fi ! } ! # end: func_to_host_path ! ! # func_to_host_pathlist arg ! # ! # Convert pathlists to host format when used with build tools. ! # See func_to_host_path(), above. This function supports the ! # following $build/$host combinations (but does no harm for ! # combinations not listed here): ! # $build $host ! # mingw (msys) mingw [e.g. native] ! # cygwin mingw ! # *nix + wine mingw ! # ! # Path separators are also converted from $build format to ! # $host format. If ARG begins or ends with a path separator ! # character, it is preserved (but converted to $host format) ! # on output. ! # ! # ARG is a pathlist (on $build) that should be converted to ! # the proper representation on $host. The result is stored ! # in $func_to_host_pathlist_result. ! func_to_host_pathlist () ! { ! func_to_host_pathlist_result="$1" ! if test -n "$1" ; then ! case $host in ! *mingw* ) ! lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' ! # Remove leading and trailing path separator characters from ! # ARG. msys behavior is inconsistent here, cygpath turns them ! # into '.;' and ';.', and winepath ignores them completely. ! func_to_host_pathlist_tmp2="$1" ! # Once set for this call, this variable should not be ! # reassigned. It is used in tha fallback case. ! func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ ! $SED -e 's|^:*||' -e 's|:*$||'` ! case $build in ! *mingw* ) # Actually, msys. ! # Awkward: cmd appends spaces to result. ! lt_sed_strip_trailing_spaces="s/[ ]*\$//" ! func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ ! $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` ! func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ ! $SED -e "$lt_sed_naive_backslashify"` ! ;; ! *cygwin* ) ! func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` ! func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ ! $SED -e "$lt_sed_naive_backslashify"` ! ;; ! * ) ! # unfortunately, winepath doesn't convert pathlists ! func_to_host_pathlist_result="" ! func_to_host_pathlist_oldIFS=$IFS ! IFS=: ! for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do ! IFS=$func_to_host_pathlist_oldIFS ! if test -n "$func_to_host_pathlist_f" ; then ! func_to_host_path "$func_to_host_pathlist_f" ! if test -n "$func_to_host_path_result" ; then ! if test -z "$func_to_host_pathlist_result" ; then ! func_to_host_pathlist_result="$func_to_host_path_result" ! else ! func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" ! fi ! fi ! fi ! IFS=: ! done ! IFS=$func_to_host_pathlist_oldIFS ! ;; ! esac ! if test -z "$func_to_host_pathlist_result" ; then ! func_error "Could not determine the host path(s) corresponding to" ! func_error " '$1'" ! func_error "Continuing, but uninstalled executables may not work." ! # Fallback. This may break if $1 contains DOS-style drive ! # specifications. The fix is not to complicate the expression ! # below, but for the user to provide a working wine installation ! # with winepath so that path translation in the cross-to-mingw ! # case works properly. ! lt_replace_pathsep_nix_to_dos="s|:|;|g" ! func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ ! $SED -e "$lt_replace_pathsep_nix_to_dos"` ! fi ! # Now, add the leading and trailing path separators back ! case "$1" in ! :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ! ;; ! esac ! case "$1" in ! *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ! ;; ! esac ! ;; ! esac fi } ! # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout --- 4102,4129 ---- # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed ! $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. ! func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 ! \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 ! exit 1 fi + fi\ + " } ! # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout *************** *** 3141,3171 **** This wrapper executable should never be moved out of the build directory. If it is, it will not operate correctly. - - Currently, it simply execs the wrapper *script* "$SHELL $output", - but could eventually absorb all of the scripts functionality and - exec $objdir/$outputname directly. */ EOF cat <<"EOF" #include #include #ifdef _MSC_VER # include # include # include - # define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include - # define HAVE_SETENV - # ifdef __STRICT_ANSI__ - char *realpath (const char *, char *); - int putenv (char *); - int setenv (const char *, const char *, int); - # endif # endif #endif #include --- 4141,4163 ---- This wrapper executable should never be moved out of the build directory. If it is, it will not operate correctly. */ EOF cat <<"EOF" + #ifdef _MSC_VER + # define _CRT_SECURE_NO_DEPRECATE 1 + #endif #include #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include *************** *** 3177,3182 **** --- 4169,4212 ---- #include #include + /* declarations of non-ANSI functions */ + #if defined(__MINGW32__) + # ifdef __STRICT_ANSI__ + int _putenv (const char *); + # endif + #elif defined(__CYGWIN__) + # ifdef __STRICT_ANSI__ + char *realpath (const char *, char *); + int putenv (char *); + int setenv (const char *, const char *, int); + # endif + /* #elif defined (other platforms) ... */ + #endif + + /* portability defines, excluding path handling macros */ + #if defined(_MSC_VER) + # define setmode _setmode + # define stat _stat + # define chmod _chmod + # define getcwd _getcwd + # define putenv _putenv + # define S_IXUSR _S_IEXEC + # ifndef _INTPTR_T_DEFINED + # define _INTPTR_T_DEFINED + # define intptr_t int + # endif + #elif defined(__MINGW32__) + # define setmode _setmode + # define stat _stat + # define chmod _chmod + # define getcwd _getcwd + # define putenv _putenv + #elif defined(__CYGWIN__) + # define HAVE_SETENV + # define FOPEN_WB "wb" + /* #elif defined (other platforms) ... */ + #endif + #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) *************** *** 3192,3205 **** # define S_IXGRP 0 #endif ! #ifdef _MSC_VER ! # define S_IXUSR _S_IEXEC ! # define stat _stat ! # ifndef _INTPTR_T_DEFINED ! # define intptr_t int ! # endif ! #endif ! #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' --- 4222,4228 ---- # define S_IXGRP 0 #endif ! /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' *************** *** 3230,3239 **** # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ - #ifdef __CYGWIN__ - # define FOPEN_WB "wb" - #endif - #ifndef FOPEN_WB # define FOPEN_WB "w" #endif --- 4253,4258 ---- *************** *** 3246,3267 **** if (stale) { free ((void *) stale); stale = 0; } \ } while (0) ! #undef LTWRAPPER_DEBUGPRINTF ! #if defined DEBUGWRAPPER ! # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args ! static void ! ltwrapper_debugprintf (const char *fmt, ...) ! { ! va_list args; ! va_start (args, fmt); ! (void) vfprintf (stderr, fmt, args); ! va_end (args); ! } #else ! # define LTWRAPPER_DEBUGPRINTF(args) #endif ! const char *program_name = NULL; void *xmalloc (size_t num); char *xstrdup (const char *string); --- 4265,4277 ---- if (stale) { free ((void *) stale); stale = 0; } \ } while (0) ! #if defined(LT_DEBUGWRAPPER) ! static int lt_debug = 1; #else ! static int lt_debug = 0; #endif ! const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); *************** *** 3271,3311 **** int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); ! void lt_fatal (const char *message, ...); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); - void lt_opt_process_env_set (const char *arg); - void lt_opt_process_env_prepend (const char *arg); - void lt_opt_process_env_append (const char *arg); - int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); ! ! static const char *script_text_part1 = ! EOF ! ! func_emit_wrapper_part1 yes | ! $SED -e 's/\([\\"]\)/\\\1/g' \ ! -e 's/^/ "/' -e 's/$/\\n"/' ! echo ";" ! cat <"))); for (i = 0; i < newargc; i++) { ! LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); } EOF --- 4496,4514 ---- lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ lt_setenv ("DUALCASE", "1"); /* for MSK sh */ ! /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must ! be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath) ! because on Windows, both *_VARNAMEs are PATH but uninstalled ! libraries must come first. */ lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); + lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); ! lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", ! nonnull (lt_argv_zero)); for (i = 0; i < newargc; i++) { ! lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", ! i, nonnull (newargz[i])); } EOF *************** *** 3560,3570 **** mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ ! LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; --- 4517,4530 ---- mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ + newargz = prepare_spawn (newargz); rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ ! lt_debugprintf (__FILE__, __LINE__, ! "(main) failed to launch target \"%s\": %s\n", ! lt_argv_zero, nonnull (strerror (errno))); return 127; } return rval; *************** *** 3586,3592 **** { void *p = (void *) malloc (num); if (!p) ! lt_fatal ("Memory exhausted"); return p; } --- 4546,4552 ---- { void *p = (void *) malloc (num); if (!p) ! lt_fatal (__FILE__, __LINE__, "memory exhausted"); return p; } *************** *** 3620,3627 **** { struct stat st; ! LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", ! path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; --- 4580,4587 ---- { struct stat st; ! lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", ! nonempty (path)); if ((!path) || (!*path)) return 0; *************** *** 3638,3645 **** int rval = 0; struct stat st; ! LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", ! path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; --- 4598,4605 ---- int rval = 0; struct stat st; ! lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", ! nonempty (path)); if ((!path) || (!*path)) return 0; *************** *** 3665,3672 **** int tmp_len; char *concat_name; ! LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", ! wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; --- 4625,4632 ---- int tmp_len; char *concat_name; ! lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", ! nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; *************** *** 3719,3725 **** { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) ! lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); --- 4679,4686 ---- { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) ! lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", ! nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); *************** *** 3744,3750 **** } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) ! lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); --- 4705,4712 ---- } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) ! lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", ! nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); *************** *** 3770,3777 **** int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { ! LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", ! tmp_pathspec)); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) --- 4732,4740 ---- int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { ! lt_debugprintf (__FILE__, __LINE__, ! "checking path component for symlinks: %s\n", ! tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) *************** *** 3793,3800 **** } else { ! char *errstr = strerror (errno); ! lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); } } XFREE (tmp_pathspec); --- 4756,4764 ---- } else { ! lt_fatal (__FILE__, __LINE__, ! "error accessing file \"%s\": %s", ! tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); *************** *** 3807,3813 **** tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { ! lt_fatal ("Could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif --- 4771,4778 ---- tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { ! lt_fatal (__FILE__, __LINE__, ! "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif *************** *** 3833,3843 **** return str; } static void ! lt_error_core (int exit_status, const char *mode, const char *message, va_list ap) { ! fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); --- 4798,4822 ---- return str; } + void + lt_debugprintf (const char *file, int line, const char *fmt, ...) + { + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } + } + static void ! lt_error_core (int exit_status, const char *file, ! int line, const char *mode, const char *message, va_list ap) { ! fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); *************** *** 3846,3865 **** } void ! lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); ! lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } void lt_setenv (const char *name, const char *value) { ! LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", ! (name ? name : ""), ! (value ? value : ""))); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ --- 4825,4856 ---- } void ! lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); ! lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } + static const char * + nonnull (const char *s) + { + return s ? s : "(null)"; + } + + static const char * + nonempty (const char *s) + { + return (s && !*s) ? "(empty)" : nonnull (s); + } + void lt_setenv (const char *name, const char *value) { ! lt_debugprintf (__FILE__, __LINE__, ! "(lt_setenv) setting '%s' to '%s'\n", ! nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ *************** *** 3904,3998 **** return new_value; } - int - lt_split_name_value (const char *arg, char** name, char** value) - { - const char *p; - int len; - if (!arg || !*arg) - return 1; - - p = strchr (arg, (int)'='); - - if (!p) - return 1; - - *value = xstrdup (++p); - - len = strlen (arg) - strlen (*value); - *name = XMALLOC (char, len); - strncpy (*name, arg, len-1); - (*name)[len - 1] = '\0'; - - return 0; - } - - void - lt_opt_process_env_set (const char *arg) - { - char *name = NULL; - char *value = NULL; - - if (lt_split_name_value (arg, &name, &value) != 0) - { - XFREE (name); - XFREE (value); - lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); - } - - lt_setenv (name, value); - XFREE (name); - XFREE (value); - } - - void - lt_opt_process_env_prepend (const char *arg) - { - char *name = NULL; - char *value = NULL; - char *new_value = NULL; - - if (lt_split_name_value (arg, &name, &value) != 0) - { - XFREE (name); - XFREE (value); - lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); - } - - new_value = lt_extend_str (getenv (name), value, 0); - lt_setenv (name, new_value); - XFREE (new_value); - XFREE (name); - XFREE (value); - } - - void - lt_opt_process_env_append (const char *arg) - { - char *name = NULL; - char *value = NULL; - char *new_value = NULL; - - if (lt_split_name_value (arg, &name, &value) != 0) - { - XFREE (name); - XFREE (value); - lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); - } - - new_value = lt_extend_str (getenv (name), value, 1); - lt_setenv (name, new_value); - XFREE (new_value); - XFREE (name); - XFREE (value); - } - void lt_update_exe_path (const char *name, const char *value) { ! LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", ! (name ? name : ""), ! (value ? value : ""))); if (name && *name && value && *value) { --- 4895,4906 ---- return new_value; } void lt_update_exe_path (const char *name, const char *value) { ! lt_debugprintf (__FILE__, __LINE__, ! "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", ! nonnull (name), nonnull (value)); if (name && *name && value && *value) { *************** *** 4011,4019 **** void lt_update_lib_path (const char *name, const char *value) { ! LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", ! (name ? name : ""), ! (value ? value : ""))); if (name && *name && value && *value) { --- 4919,4927 ---- void lt_update_lib_path (const char *name, const char *value) { ! lt_debugprintf (__FILE__, __LINE__, ! "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", ! nonnull (name), nonnull (value)); if (name && *name && value && *value) { *************** *** 4023,4033 **** --- 4931,5082 ---- } } + EOF + case $host_os in + mingw*) + cat <<"EOF" + + /* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ + #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" + #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" + char ** + prepare_spawn (char **argv) + { + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; + } + EOF + ;; + esac + + cat <<"EOF" + void lt_dump_script (FILE* f) + { + EOF + func_emit_wrapper yes | + $SED -e 's/\([\\"]\)/\\\1/g' \ + -e 's/^/ fputs ("/' -e 's/$/\\n", f);/' + cat <<"EOF" + } EOF } # end: func_emit_cwrapperexe_src + # func_win32_import_lib_p ARG + # True if ARG is an import lib, as indicated by $file_magic_cmd + func_win32_import_lib_p () + { + $opt_debug + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac + } + # func_mode_link arg... func_mode_link () { *************** *** 4072,4077 **** --- 5121,5127 ---- new_inherited_linker_flags= avoid_version=no + bindir= dlfiles= dlprefiles= dlself=no *************** *** 4164,4169 **** --- 5214,5224 ---- esac case $prev in + bindir) + bindir="$arg" + prev= + continue + ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. *************** *** 4195,4203 **** ;; *) if test "$prev" = dlfiles; then ! dlfiles="$dlfiles $arg" else ! dlprefiles="$dlprefiles $arg" fi prev= continue --- 5250,5258 ---- ;; *) if test "$prev" = dlfiles; then ! func_append dlfiles " $arg" else ! func_append dlprefiles " $arg" fi prev= continue *************** *** 4221,4227 **** *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; ! *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; --- 5276,5282 ---- *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; ! *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; *************** *** 4240,4246 **** moreargs= for fil in `cat "$save_arg"` do ! # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. --- 5295,5301 ---- moreargs= for fil in `cat "$save_arg"` do ! # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. *************** *** 4269,4275 **** if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then ! dlfiles="$dlfiles $pic_object" prev= continue else --- 5324,5330 ---- if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then ! func_append dlfiles " $pic_object" prev= continue else *************** *** 4281,4287 **** # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. ! dlprefiles="$dlprefiles $pic_object" prev= fi --- 5336,5342 ---- # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. ! func_append dlprefiles " $pic_object" prev= fi *************** *** 4351,4362 **** if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; ! *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; ! *) xrpath="$xrpath $arg" ;; esac fi prev= --- 5406,5417 ---- if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; ! *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; ! *) func_append xrpath " $arg" ;; esac fi prev= *************** *** 4368,4395 **** continue ;; weak) ! weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) ! linker_flags="$linker_flags $qarg" ! compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) ! compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) ! linker_flags="$linker_flags $qarg" ! compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" --- 5423,5450 ---- continue ;; weak) ! func_append weak_libs " $arg" prev= continue ;; xcclinker) ! func_append linker_flags " $qarg" ! func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) ! func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) ! func_append linker_flags " $qarg" ! func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" *************** *** 4425,4430 **** --- 5480,5490 ---- continue ;; + -bindir) + prev=bindir + continue + ;; + -dlopen) prev=dlfiles continue *************** *** 4475,4489 **** ;; -L*) ! func_stripname '-L' '' "$arg" ! dir=$func_stripname_result ! if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; --- 5535,5550 ---- ;; -L*) ! func_stripname "-L" '' "$arg" ! if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *************** *** 4495,4518 **** ;; esac case "$deplibs " in ! *" -L$dir "*) ;; *) ! deplibs="$deplibs -L$dir" ! lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) ! testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; ! *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; ! *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac --- 5556,5585 ---- ;; esac case "$deplibs " in ! *" -L$dir "* | *" $arg "*) ! # Will only happen for absolute or sysroot arguments ! ;; *) ! # Preserve sysroot, but never include relative directories ! case $dir in ! [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; ! *) func_append deplibs " -L$dir" ;; ! esac ! func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) ! testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; ! *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; ! *) func_append dllsearchpath ":$testbindir";; esac ;; esac *************** *** 4522,4528 **** -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in ! *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; --- 5589,5595 ---- -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in ! *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *************** *** 4536,4542 **** ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework ! deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) --- 5603,5609 ---- ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework ! func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) *************** *** 4556,4562 **** ;; esac fi ! deplibs="$deplibs $arg" continue ;; --- 5623,5629 ---- ;; esac fi ! func_append deplibs " $arg" continue ;; *************** *** 4568,4575 **** # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. ! -model|-arch|-isysroot) ! compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler --- 5635,5642 ---- # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. ! -model|-arch|-isysroot|--sysroot) ! func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler *************** *** 4577,4588 **** ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) ! compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; ! * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; --- 5644,5655 ---- ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) ! func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; ! * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; *************** *** 4649,4661 **** # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; ! *) xrpath="$xrpath $dir" ;; esac continue ;; --- 5716,5732 ---- # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; ! *) func_append xrpath " $dir" ;; esac continue ;; *************** *** 4708,4715 **** for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" ! arg="$arg $wl$func_quote_for_eval_result" ! compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" --- 5779,5786 ---- for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" ! func_append arg " $func_quote_for_eval_result" ! func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" *************** *** 4724,4732 **** for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" ! arg="$arg $wl$func_quote_for_eval_result" ! compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" ! linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" --- 5795,5803 ---- for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" ! func_append arg " $wl$func_quote_for_eval_result" ! func_append compiler_flags " $wl$func_quote_for_eval_result" ! func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" *************** *** 4754,4776 **** arg="$func_quote_for_eval_result" ;; ! # -64, -mips[0-9] enable 64-bit mode on the SGI compiler ! # -r[0-9][0-9]* specifies the processor on the SGI compiler ! # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler ! # +DA*, +DD* enable 64-bit mode on the HP compiler ! # -q* pass through compiler args for the IBM compiler ! # -m*, -t[45]*, -txscale* pass through architecture-specific ! # compiler args for GCC ! # -F/path gives path to uninstalled frameworks, gcc on darwin ! # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC ! # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ ! -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" ! compiler_flags="$compiler_flags $arg" continue ;; --- 5825,5851 ---- arg="$func_quote_for_eval_result" ;; ! # Flags to be passed through unchanged, with rationale: ! # -64, -mips[0-9] enable 64-bit mode for the SGI compiler ! # -r[0-9][0-9]* specify processor for the SGI compiler ! # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler ! # +DA*, +DD* enable 64-bit mode for the HP compiler ! # -q* compiler args for the IBM compiler ! # -m*, -t[45]*, -txscale* architecture-specific flags for GCC ! # -F/path path to uninstalled frameworks, gcc on darwin ! # -p, -pg, --coverage, -fprofile-* profiling flags for GCC ! # @file GCC response files ! # -tp=* Portland pgcc target processor selection ! # --sysroot=* for sysroot support ! # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ ! -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ ! -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" ! func_append compiler_flags " $arg" continue ;; *************** *** 4782,4788 **** *.$objext) # A standard object. ! objs="$objs $arg" ;; *.lo) --- 5857,5863 ---- *.$objext) # A standard object. ! func_append objs " $arg" ;; *.lo) *************** *** 4813,4819 **** if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then ! dlfiles="$dlfiles $pic_object" prev= continue else --- 5888,5894 ---- if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then ! func_append dlfiles " $pic_object" prev= continue else *************** *** 4825,4831 **** # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. ! dlprefiles="$dlprefiles $pic_object" prev= fi --- 5900,5906 ---- # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. ! func_append dlprefiles " $pic_object" prev= fi *************** *** 4870,4893 **** *.$libext) # An archive. ! deplibs="$deplibs $arg" ! old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. ! dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. ! dlprefiles="$dlprefiles $arg" prev= else ! deplibs="$deplibs $arg" fi continue ;; --- 5945,5969 ---- *.$libext) # An archive. ! func_append deplibs " $arg" ! func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. + func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. ! func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. ! func_append dlprefiles " $func_resolve_sysroot_result" prev= else ! func_append deplibs " $func_resolve_sysroot_result" fi continue ;; *************** *** 4925,4931 **** if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var ! eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi --- 6001,6007 ---- if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var ! eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi *************** *** 4934,4939 **** --- 6010,6017 ---- func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" *************** *** 4954,4965 **** # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do ! if $opt_duplicate_deps ; then case "$libs " in ! *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi ! libs="$libs $deplib" done if test "$linkmode" = lib; then --- 6032,6043 ---- # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do ! if $opt_preserve_dup_deps ; then case "$libs " in ! *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi ! func_append libs " $deplib" done if test "$linkmode" = lib; then *************** *** 4972,4980 **** if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in ! *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac ! pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= --- 6050,6058 ---- if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in ! *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac ! func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= *************** *** 5044,5060 **** for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in ! *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do ! deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` case " $weak_libs " in *" $deplib_base "*) ;; ! *) deplibs="$deplibs $deplib" ;; esac done done --- 6122,6140 ---- for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= + func_resolve_sysroot "$lib" case $lib in ! *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do ! func_basename "$deplib" ! deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; ! *) func_append deplibs " $deplib" ;; esac done done *************** *** 5075,5085 **** compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else ! compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; ! * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi --- 6155,6165 ---- compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else ! func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; ! * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi *************** *** 5164,5170 **** if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; ! * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi --- 6244,6250 ---- if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; ! * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi *************** *** 5177,5183 **** test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" ! newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then --- 6257,6264 ---- test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" ! func_resolve_sysroot "$func_stripname_result" ! func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then *************** *** 5191,5197 **** finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" ! newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" --- 6272,6279 ---- finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" ! func_resolve_sysroot "$func_stripname_result" ! func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" *************** *** 5202,5218 **** -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" ! dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; ! *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; ! *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" --- 6284,6304 ---- -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" ! func_resolve_sysroot "$func_stripname_result" ! dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; ! *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; ! *.la) ! func_resolve_sysroot "$deplib" ! lib=$func_resolve_sysroot_result ! ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" *************** *** 5230,5236 **** match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` ! if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi --- 6316,6322 ---- match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` ! if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi *************** *** 5240,5254 **** ;; esac if test "$valid_a_lib" != yes; then ! $ECHO $ECHO "*** Warning: Trying to link with static lib archive $deplib." ! $ECHO "*** I have the capability to make that library automatically link in when" ! $ECHO "*** you link to this library. But I can only do this if you have a" ! $ECHO "*** shared version of the library, which you do not appear to have" ! $ECHO "*** because the file extensions .$libext of this argument makes me believe" ! $ECHO "*** that it is just a static archive that I should not use here." else ! $ECHO $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" --- 6326,6340 ---- ;; esac if test "$valid_a_lib" != yes; then ! echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." ! echo "*** I have the capability to make that library automatically link in when" ! echo "*** you link to this library. But I can only do this if you have a" ! echo "*** shared version of the library, which you do not appear to have" ! echo "*** because the file extensions .$libext of this argument makes me believe" ! echo "*** that it is just a static archive that I should not use here." else ! echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" *************** *** 5275,5285 **** if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. ! newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else ! newdlfiles="$newdlfiles $deplib" fi fi continue --- 6361,6371 ---- if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. ! func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else ! func_append newdlfiles " $deplib" fi fi continue *************** *** 5321,5340 **** # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then ! tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; ! *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi ! dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then ! test -n "$dlopen" && dlfiles="$dlfiles $dlopen" ! test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then --- 6407,6426 ---- # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then ! tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; ! *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi ! dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then ! test -n "$dlopen" && func_append dlfiles " $dlopen" ! test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then *************** *** 5345,5361 **** func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. ! convenience="$convenience $ladir/$objdir/$old_library" ! old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" ! if $opt_duplicate_deps ; then case "$tmp_libs " in ! *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi ! tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" --- 6431,6447 ---- func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. ! func_append convenience " $ladir/$objdir/$old_library" ! func_append old_convenience " $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" ! if $opt_preserve_dup_deps ; then case "$tmp_libs " in ! *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi ! func_append tmp_libs " $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" *************** *** 5366,5374 **** # Get the name of the library we link against. linklib= ! for l in $old_library $library_names; do ! linklib="$l" ! done if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi --- 6452,6466 ---- # Get the name of the library we link against. linklib= ! if test -n "$old_library" && ! { test "$prefer_static_libs" = yes || ! test "$prefer_static_libs,$installed" = "built,no"; }; then ! linklib=$old_library ! else ! for l in $old_library $library_names; do ! linklib="$l" ! done ! fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi *************** *** 5385,5393 **** # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. ! dlprefiles="$dlprefiles $lib $dependency_libs" else ! newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen --- 6477,6485 ---- # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. ! func_append dlprefiles " $lib $dependency_libs" else ! func_append newdlfiles " $lib" fi continue fi # $pass = dlopen *************** *** 5409,5422 **** # Find the relevant object directory and library name. if test "X$installed" = Xyes; then ! if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else ! dir="$libdir" ! absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else --- 6501,6514 ---- # Find the relevant object directory and library name. if test "X$installed" = Xyes; then ! if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else ! dir="$lt_sysroot$libdir" ! absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else *************** *** 5424,5435 **** dir="$ladir" absdir="$abs_ladir" # Remove this search path later ! notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later ! notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" --- 6516,6527 ---- dir="$ladir" absdir="$abs_ladir" # Remove this search path later ! func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later ! func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" *************** *** 5440,5459 **** if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi ! # Prefer using a static library (so that no silly _DYNAMIC symbols ! # are required to link). ! if test -n "$old_library"; then ! newdlprefiles="$newdlprefiles $dir/$old_library" ! # Keep a list of preopened convenience libraries to check ! # that they are being used correctly in the link pass. ! test -z "$libdir" && \ ! dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" ! # Otherwise, use the dlname, so that lt_dlopen finds it. ! elif test -n "$dlname"; then ! newdlprefiles="$newdlprefiles $dir/$dlname" ! else ! newdlprefiles="$newdlprefiles $dir/$linklib" ! fi fi # $pass = dlpreopen if test -z "$libdir"; then --- 6532,6577 ---- if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi ! case "$host" in ! # special handling for platforms with PE-DLLs. ! *cygwin* | *mingw* | *cegcc* ) ! # Linker will automatically link against shared library if both ! # static and shared are present. Therefore, ensure we extract ! # symbols from the import library if a shared library is present ! # (otherwise, the dlopen module name will be incorrect). We do ! # this by putting the import library name into $newdlprefiles. ! # We recover the dlopen module name by 'saving' the la file ! # name in a special purpose variable, and (later) extracting the ! # dlname from the la file. ! if test -n "$dlname"; then ! func_tr_sh "$dir/$linklib" ! eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" ! func_append newdlprefiles " $dir/$linklib" ! else ! func_append newdlprefiles " $dir/$old_library" ! # Keep a list of preopened convenience libraries to check ! # that they are being used correctly in the link pass. ! test -z "$libdir" && \ ! func_append dlpreconveniencelibs " $dir/$old_library" ! fi ! ;; ! * ) ! # Prefer using a static library (so that no silly _DYNAMIC symbols ! # are required to link). ! if test -n "$old_library"; then ! func_append newdlprefiles " $dir/$old_library" ! # Keep a list of preopened convenience libraries to check ! # that they are being used correctly in the link pass. ! test -z "$libdir" && \ ! func_append dlpreconveniencelibs " $dir/$old_library" ! # Otherwise, use the dlname, so that lt_dlopen finds it. ! elif test -n "$dlname"; then ! func_append newdlprefiles " $dir/$dlname" ! else ! func_append newdlprefiles " $dir/$linklib" ! fi ! ;; ! esac fi # $pass = dlpreopen if test -z "$libdir"; then *************** *** 5471,5477 **** if test "$linkmode" = prog && test "$pass" != link; then ! newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no --- 6589,6595 ---- if test "$linkmode" = prog && test "$pass" != link; then ! func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no *************** *** 5484,5490 **** for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" ! newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? --- 6602,6609 ---- for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" ! func_resolve_sysroot "$func_stripname_result" ! func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? *************** *** 5495,5506 **** # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi ! if $opt_duplicate_deps ; then case "$tmp_libs " in ! *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi ! tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... --- 6614,6625 ---- # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi ! if $opt_preserve_dup_deps ; then case "$tmp_libs " in ! *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi ! func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... *************** *** 5515,5521 **** # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; ! *) temp_rpath="$temp_rpath$absdir:" ;; esac fi --- 6634,6640 ---- # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; ! *) func_append temp_rpath "$absdir:" ;; esac fi *************** *** 5527,5533 **** *) case "$compile_rpath " in *" $absdir "*) ;; ! *) compile_rpath="$compile_rpath $absdir" esac ;; esac --- 6646,6652 ---- *) case "$compile_rpath " in *" $absdir "*) ;; ! *) func_append compile_rpath " $absdir" ;; esac ;; esac *************** *** 5536,5542 **** *) case "$finalize_rpath " in *" $libdir "*) ;; ! *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac --- 6655,6661 ---- *) case "$finalize_rpath " in *" $libdir "*) ;; ! *) func_append finalize_rpath " $libdir" ;; esac ;; esac *************** *** 5561,5572 **** case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded ! notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then ! notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; --- 6680,6691 ---- case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded ! func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then ! func_append notinst_deplibs " $lib" need_relink=yes fi ;; *************** *** 5583,5589 **** fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then ! $ECHO if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else --- 6702,6708 ---- fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then ! echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else *************** *** 5601,5607 **** *) case "$compile_rpath " in *" $absdir "*) ;; ! *) compile_rpath="$compile_rpath $absdir" esac ;; esac --- 6720,6726 ---- *) case "$compile_rpath " in *" $absdir "*) ;; ! *) func_append compile_rpath " $absdir" ;; esac ;; esac *************** *** 5610,5616 **** *) case "$finalize_rpath " in *" $libdir "*) ;; ! *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac --- 6729,6735 ---- *) case "$finalize_rpath " in *" $libdir "*) ;; ! *) func_append finalize_rpath " $libdir" ;; esac ;; esac *************** *** 5664,5670 **** linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" ! if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= --- 6783,6789 ---- linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" ! if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= *************** *** 5686,5694 **** if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then ! $ECHO ! $ECHO "*** And there doesn't seem to be a static archive available" ! $ECHO "*** The link will probably fail, sorry" else add="$dir/$old_library" fi --- 6805,6813 ---- if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then ! echo ! echo "*** And there doesn't seem to be a static archive available" ! echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi *************** *** 5720,5726 **** if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) ! add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi --- 6839,6845 ---- if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) ! func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi *************** *** 5742,5748 **** if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; ! *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then --- 6861,6867 ---- if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; ! *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then *************** *** 5756,5768 **** test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; ! *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi ! if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= --- 6875,6887 ---- test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; ! *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi ! if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= *************** *** 5776,5782 **** elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; ! *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then --- 6895,6901 ---- elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; ! *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then *************** *** 5793,5799 **** if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) ! add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi --- 6912,6918 ---- if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) ! func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi *************** *** 5828,5848 **** # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. ! $ECHO $ECHO "*** Warning: This system can not link to static lib archive $lib." ! $ECHO "*** I have the capability to make that library automatically link in when" ! $ECHO "*** you link to this library. But I can only do this if you have a" ! $ECHO "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then ! $ECHO "*** But as you try to build a module library, libtool will still create " ! $ECHO "*** a static module, that should work as long as the dlopening application" ! $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then ! $ECHO ! $ECHO "*** However, this would only work if libtool was able to extract symbol" ! $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" ! $ECHO "*** not find such a program. So, this module is probably useless." ! $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module --- 6947,6967 ---- # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. ! echo $ECHO "*** Warning: This system can not link to static lib archive $lib." ! echo "*** I have the capability to make that library automatically link in when" ! echo "*** you link to this library. But I can only do this if you have a" ! echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then ! echo "*** But as you try to build a module library, libtool will still create " ! echo "*** a static module, that should work as long as the dlopening application" ! echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then ! echo ! echo "*** However, this would only work if libtool was able to extract symbol" ! echo "*** lists from a program, using \`nm' or equivalent, but libtool could" ! echo "*** not find such a program. So, this module is probably useless." ! echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module *************** *** 5870,5896 **** temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; ! *) xrpath="$xrpath $temp_xrpath";; esac;; ! *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi ! newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" ! if $opt_duplicate_deps ; then case "$tmp_libs " in ! *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi ! tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then --- 6989,7021 ---- temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; ! *) func_append xrpath " $temp_xrpath";; esac;; ! *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi ! func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" ! case $deplib in ! -L*) func_stripname '-L' '' "$deplib" ! func_resolve_sysroot "$func_stripname_result";; ! *) func_resolve_sysroot "$deplib" ;; ! esac ! if $opt_preserve_dup_deps ; then case "$tmp_libs " in ! *" $func_resolve_sysroot_result "*) ! func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi ! func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then *************** *** 5900,5907 **** case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." ! dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; --- 7025,7034 ---- case $deplib in -L*) path="$deplib" ;; *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." ! dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *************** *** 5928,5935 **** if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi ! compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" ! linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi --- 7055,7062 ---- if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi ! func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" ! func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi *************** *** 5962,5968 **** compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else ! compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" --- 7089,7095 ---- compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else ! compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" *************** *** 5979,5985 **** for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; ! *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= --- 7106,7112 ---- for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; ! *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= *************** *** 6037,6046 **** -L*) case " $tmp_libs " in *" $deplib "*) ;; ! *) tmp_libs="$tmp_libs $deplib" ;; esac ;; ! *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" --- 7164,7173 ---- -L*) case " $tmp_libs " in *" $deplib "*) ;; ! *) func_append tmp_libs " $deplib" ;; esac ;; ! *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" *************** *** 6056,6062 **** ;; esac if test -n "$i" ; then ! tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs --- 7183,7189 ---- ;; esac if test -n "$i" ; then ! func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs *************** *** 6097,6103 **** # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" ! objs="$objs$old_deplibs" ;; lib) --- 7224,7230 ---- # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" ! func_append objs "$old_deplibs" ;; lib) *************** *** 6130,6139 **** if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else ! $ECHO $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" ! libobjs="$libobjs $objs" fi fi --- 7257,7266 ---- if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else ! echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" ! func_append libobjs " $objs" fi fi *************** *** 6198,6204 **** age="$number_minor" revision="$number_revision" ;; ! freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" --- 7325,7331 ---- age="$number_minor" revision="$number_revision" ;; ! freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" *************** *** 6334,6340 **** done # Make executables depend on our current version. ! verstring="$verstring:${current}.0" ;; qnx) --- 7461,7467 ---- done # Make executables depend on our current version. ! func_append verstring ":${current}.0" ;; qnx) *************** *** 6402,6411 **** fi func_generate_dlsyms "$libname" "$libname" "yes" ! libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= ! if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= --- 7529,7538 ---- fi func_generate_dlsyms "$libname" "$libname" "yes" ! func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= ! if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= *************** *** 6421,6427 **** continue fi fi ! removelist="$removelist $p" ;; *) ;; esac --- 7548,7554 ---- continue fi fi ! func_append removelist " $p" ;; *) ;; esac *************** *** 6432,6458 **** # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then ! oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. ! oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do ! # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` ! # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` ! # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do ! temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; ! *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then --- 7559,7586 ---- # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then ! func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. ! oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do ! # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` ! # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` ! # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do ! func_replace_sysroot "$libdir" ! func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; ! *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then *************** *** 6466,6472 **** for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; ! *) dlfiles="$dlfiles $lib" ;; esac done --- 7594,7600 ---- for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; ! *) func_append dlfiles " $lib" ;; esac done *************** *** 6476,6494 **** for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; ! *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in ! *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework ! deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. --- 7604,7622 ---- for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; ! *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in ! *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework ! func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. *************** *** 6505,6511 **** *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then ! deplibs="$deplibs -lc" fi ;; esac --- 7633,7639 ---- *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then ! func_append deplibs " -lc" fi ;; esac *************** *** 6554,6560 **** if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*) ! newdeplibs="$newdeplibs $i" i="" ;; esac --- 7682,7688 ---- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*) ! func_append newdeplibs " $i" i="" ;; esac *************** *** 6565,6585 **** set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then ! newdeplibs="$newdeplibs $i" else droppeddeps=yes ! $ECHO $ECHO "*** Warning: dynamic linker does not accept needed library $i." ! $ECHO "*** I have the capability to make that library automatically link in when" ! $ECHO "*** you link to this library. But I can only do this if you have a" ! $ECHO "*** shared version of the library, which I believe you do not have" ! $ECHO "*** because a test_compile did reveal that the linker did not use it for" ! $ECHO "*** its dynamic dependency list that programs get resolved with at runtime." fi fi ;; *) ! newdeplibs="$newdeplibs $i" ;; esac done --- 7693,7713 ---- set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then ! func_append newdeplibs " $i" else droppeddeps=yes ! echo $ECHO "*** Warning: dynamic linker does not accept needed library $i." ! echo "*** I have the capability to make that library automatically link in when" ! echo "*** you link to this library. But I can only do this if you have a" ! echo "*** shared version of the library, which I believe you do not have" ! echo "*** because a test_compile did reveal that the linker did not use it for" ! echo "*** its dynamic dependency list that programs get resolved with at runtime." fi fi ;; *) ! func_append newdeplibs " $i" ;; esac done *************** *** 6597,6603 **** if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*) ! newdeplibs="$newdeplibs $i" i="" ;; esac --- 7725,7731 ---- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*) ! func_append newdeplibs " $i" i="" ;; esac *************** *** 6608,6636 **** set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then ! newdeplibs="$newdeplibs $i" else droppeddeps=yes ! $ECHO $ECHO "*** Warning: dynamic linker does not accept needed library $i." ! $ECHO "*** I have the capability to make that library automatically link in when" ! $ECHO "*** you link to this library. But I can only do this if you have a" ! $ECHO "*** shared version of the library, which you do not appear to have" ! $ECHO "*** because a test_compile did reveal that the linker did not use this one" ! $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime." fi fi else droppeddeps=yes ! $ECHO $ECHO "*** Warning! Library $i is needed by this library but I was not able to" ! $ECHO "*** make it link in! You will probably need to install it or some" ! $ECHO "*** library that it depends on before this library will be fully" ! $ECHO "*** functional. Installing it before continuing would be even better." fi ;; *) ! newdeplibs="$newdeplibs $i" ;; esac done --- 7736,7764 ---- set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then ! func_append newdeplibs " $i" else droppeddeps=yes ! echo $ECHO "*** Warning: dynamic linker does not accept needed library $i." ! echo "*** I have the capability to make that library automatically link in when" ! echo "*** you link to this library. But I can only do this if you have a" ! echo "*** shared version of the library, which you do not appear to have" ! echo "*** because a test_compile did reveal that the linker did not use this one" ! echo "*** as a dynamic dependency that programs can get resolved with at runtime." fi fi else droppeddeps=yes ! echo $ECHO "*** Warning! Library $i is needed by this library but I was not able to" ! echo "*** make it link in! You will probably need to install it or some" ! echo "*** library that it depends on before this library will be fully" ! echo "*** functional. Installing it before continuing would be even better." fi ;; *) ! func_append newdeplibs " $i" ;; esac done *************** *** 6647,6661 **** if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) ! newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do ! potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | --- 7775,7801 ---- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) ! func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` + if test -n "$file_magic_glob"; then + libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` + else + libnameglob=$libname + fi + test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do ! if test "$want_nocaseglob" = yes; then ! shopt -s nocaseglob ! potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` ! $nocaseglob ! else ! potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` ! fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | *************** *** 6672,6684 **** potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; ! *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then ! newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi --- 7812,7824 ---- potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; ! *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then ! func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi *************** *** 6687,6698 **** fi if test -n "$a_deplib" ; then droppeddeps=yes ! $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." ! $ECHO "*** I have the capability to make that library automatically link in when" ! $ECHO "*** you link to this library. But I can only do this if you have a" ! $ECHO "*** shared version of the library, which you do not appear to have" ! $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else --- 7827,7838 ---- fi if test -n "$a_deplib" ; then droppeddeps=yes ! echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." ! echo "*** I have the capability to make that library automatically link in when" ! echo "*** you link to this library. But I can only do this if you have a" ! echo "*** shared version of the library, which you do not appear to have" ! echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else *************** *** 6703,6709 **** ;; *) # Add a -L argument. ! newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. --- 7843,7849 ---- ;; *) # Add a -L argument. ! func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. *************** *** 6719,6725 **** if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) ! newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac --- 7859,7865 ---- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) ! func_append newdeplibs " $a_deplib" a_deplib="" ;; esac *************** *** 6730,6738 **** potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test ! if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then ! newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi --- 7870,7878 ---- potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test ! if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then ! func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi *************** *** 6741,6752 **** fi if test -n "$a_deplib" ; then droppeddeps=yes ! $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." ! $ECHO "*** I have the capability to make that library automatically link in when" ! $ECHO "*** you link to this library. But I can only do this if you have a" ! $ECHO "*** shared version of the library, which you do not appear to have" ! $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else --- 7881,7892 ---- fi if test -n "$a_deplib" ; then droppeddeps=yes ! echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." ! echo "*** I have the capability to make that library automatically link in when" ! echo "*** you link to this library. But I can only do this if you have a" ! echo "*** shared version of the library, which you do not appear to have" ! echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else *************** *** 6757,6788 **** ;; *) # Add a -L argument. ! newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" ! tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ ! -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' ! tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` done fi ! if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | ! $GREP . >/dev/null; then ! $ECHO if test "X$deplibs_check_method" = "Xnone"; then ! $ECHO "*** Warning: inter-library dependencies are not supported in this platform." else ! $ECHO "*** Warning: inter-library dependencies are not known to be supported." fi ! $ECHO "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ! fi ;; esac versuffix=$versuffix_save --- 7897,7928 ---- ;; *) # Add a -L argument. ! func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" ! tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' ! tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi ! case $tmp_deplibs in ! *[!\ \ ]*) ! echo if test "X$deplibs_check_method" = "Xnone"; then ! echo "*** Warning: inter-library dependencies are not supported in this platform." else ! echo "*** Warning: inter-library dependencies are not known to be supported." fi ! echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ! ;; ! esac ;; esac versuffix=$versuffix_save *************** *** 6794,6816 **** case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework ! newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then ! $ECHO ! $ECHO "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" ! $ECHO "*** a static module, that should work as long as the dlopening" ! $ECHO "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then ! $ECHO ! $ECHO "*** However, this would only work if libtool was able to extract symbol" ! $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" ! $ECHO "*** not find such a program. So, this module is probably useless." ! $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" --- 7934,7956 ---- case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework ! newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then ! echo ! echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" ! echo "*** a static module, that should work as long as the dlopening" ! echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then ! echo ! echo "*** However, this would only work if libtool was able to extract symbol" ! echo "*** lists from a program, using \`nm' or equivalent, but libtool could" ! echo "*** not find such a program. So, this module is probably useless." ! echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" *************** *** 6820,6835 **** build_libtool_libs=no fi else ! $ECHO "*** The inter-library dependencies that have been dropped here will be" ! $ECHO "*** automatically added whenever a program is linked with this library" ! $ECHO "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then ! $ECHO ! $ECHO "*** Since this library must not contain undefined symbols," ! $ECHO "*** because either the platform does not support them or" ! $ECHO "*** it was explicitly requested with -no-undefined," ! $ECHO "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module --- 7960,7975 ---- build_libtool_libs=no fi else ! echo "*** The inter-library dependencies that have been dropped here will be" ! echo "*** automatically added whenever a program is linked with this library" ! echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then ! echo ! echo "*** Since this library must not contain undefined symbols," ! echo "*** because either the platform does not support them or" ! echo "*** it was explicitly requested with -no-undefined," ! echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module *************** *** 6846,6854 **** # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) ! newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ! new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ! deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac --- 7986,7994 ---- # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) ! newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ! new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ! deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac *************** *** 6861,6867 **** *) case " $deplibs " in *" -L$path/$objdir "*) ! new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac --- 8001,8007 ---- *) case " $deplibs " in *" -L$path/$objdir "*) ! func_append new_libs " -L$path/$objdir" ;; esac ;; esac *************** *** 6871,6880 **** -L*) case " $new_libs " in *" $deplib "*) ;; ! *) new_libs="$new_libs $deplib" ;; esac ;; ! *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" --- 8011,8020 ---- -L*) case " $new_libs " in *" $deplib "*) ;; ! *) func_append new_libs " $deplib" ;; esac ;; ! *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" *************** *** 6891,6900 **** hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" ! test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else --- 8031,8042 ---- hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" ! test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else *************** *** 6903,6920 **** *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) ! hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" ! dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; ! *) perm_rpath="$perm_rpath $libdir" ;; esac fi done --- 8045,8062 ---- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) ! func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" ! func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; ! *) func_apped perm_rpath " $libdir" ;; esac fi done *************** *** 6932,6938 **** # We should set the runpath_var. rpath= for dir in $perm_rpath; do ! rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi --- 8074,8080 ---- # We should set the runpath_var. rpath= for dir in $perm_rpath; do ! func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi *************** *** 6940,6946 **** fi shlibpath="$finalize_shlibpath" ! test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi --- 8082,8088 ---- fi shlibpath="$finalize_shlibpath" ! test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi *************** *** 6966,6983 **** linknames= for link do ! linknames="$linknames $link" done # Use standard objects if they are pic ! test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" ! delfiles="$delfiles $export_symbols" fi orig_export_symbols= --- 8108,8125 ---- linknames= for link do ! func_append linknames " $link" done # Use standard objects if they are pic ! test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" ! func_append delfiles " $export_symbols" fi orig_export_symbols= *************** *** 7008,7020 **** $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' ! for cmd in $cmds; do IFS="$save_ifs" ! eval cmd=\"$cmd\" ! func_len " $cmd" ! len=$func_len_result ! if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. --- 8150,8194 ---- $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' ! for cmd1 in $cmds; do IFS="$save_ifs" ! # Take the normal branch if the nm_file_list_spec branch ! # doesn't work or if tool conversion is not needed. ! case $nm_file_list_spec~$to_tool_file_cmd in ! *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) ! try_normal_branch=yes ! eval cmd=\"$cmd1\" ! func_len " $cmd" ! len=$func_len_result ! ;; ! *) ! try_normal_branch=no ! ;; ! esac ! if test "$try_normal_branch" = yes \ ! && { test "$len" -lt "$max_cmd_len" \ ! || test "$max_cmd_len" -le -1; } ! then ! func_show_eval "$cmd" 'exit $?' ! skipped_export=false ! elif test -n "$nm_file_list_spec"; then ! func_basename "$output" ! output_la=$func_basename_result ! save_libobjs=$libobjs ! save_output=$output ! output=${output_objdir}/${output_la}.nm ! func_to_tool_file "$output" ! libobjs=$nm_file_list_spec$func_to_tool_file_result ! func_append delfiles " $output" ! func_verbose "creating $NM input file list: $output" ! for obj in $save_libobjs; do ! func_to_tool_file "$obj" ! $ECHO "$func_to_tool_file_result" ! done > "$output" ! eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. *************** *** 7036,7042 **** if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" ! $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then --- 8210,8216 ---- if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" ! $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then *************** *** 7048,7054 **** # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter ! delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi --- 8222,8228 ---- # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter ! func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi *************** *** 7058,7064 **** case " $convenience " in *" $test_deplib "*) ;; *) ! tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done --- 8232,8238 ---- case " $convenience " in *" $test_deplib "*) ;; *) ! func_append tmp_deplibs " $test_deplib" ;; esac done *************** *** 7078,7098 **** test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" ! generated="$generated $gentop" func_extract_archives $gentop $convenience ! libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" ! linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking ! if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi --- 8252,8272 ---- test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" ! func_append generated " $gentop" func_extract_archives $gentop $convenience ! func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" ! func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking ! if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi *************** *** 7137,7143 **** save_libobjs=$libobjs fi save_output=$output ! output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. --- 8311,8318 ---- save_libobjs=$libobjs fi save_output=$output ! func_basename "$output" ! output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. *************** *** 7150,7162 **** if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" ! $ECHO 'INPUT (' > $output for obj in $save_libobjs do ! $ECHO "$obj" >> $output done ! $ECHO ')' >> $output ! delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" --- 8325,8340 ---- if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" ! echo 'INPUT (' > $output for obj in $save_libobjs do ! func_to_tool_file "$obj" ! $ECHO "$func_to_tool_file_result" >> $output done ! echo ')' >> $output ! func_append delfiles " $output" ! func_to_tool_file "$output" ! output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" *************** *** 7170,7179 **** fi for obj do ! $ECHO "$obj" >> $output done ! delfiles="$delfiles $output" ! output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." --- 8348,8359 ---- fi for obj do ! func_to_tool_file "$obj" ! $ECHO "$func_to_tool_file_result" >> $output done ! func_append delfiles " $output" ! func_to_tool_file "$output" ! output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." *************** *** 7197,7213 **** # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. ! eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. ! eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext ! objlist=$obj func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result --- 8377,8395 ---- # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. ! reload_objs=$objlist ! eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. ! reload_objs="$objlist $last_robj" ! eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext ! objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result *************** *** 7217,7227 **** # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ ! eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi ! delfiles="$delfiles $output" else output= --- 8399,8410 ---- # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ ! reload_objs="$objlist $last_robj" ! eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi ! func_append delfiles " $output" else output= *************** *** 7255,7261 **** lt_exit=$? # Restore the uninstalled library and exit ! if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) --- 8438,8444 ---- lt_exit=$? # Restore the uninstalled library and exit ! if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) *************** *** 7276,7282 **** if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" ! $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then --- 8459,8465 ---- if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" ! $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then *************** *** 7288,7294 **** # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter ! delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi --- 8471,8477 ---- # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter ! func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi *************** *** 7329,7338 **** # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" ! generated="$generated $gentop" func_extract_archives $gentop $dlprefiles ! libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi --- 8512,8521 ---- # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" ! func_append generated " $gentop" func_extract_archives $gentop $dlprefiles ! func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi *************** *** 7348,7354 **** lt_exit=$? # Restore the uninstalled library and exit ! if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) --- 8531,8537 ---- lt_exit=$? # Restore the uninstalled library and exit ! if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) *************** *** 7360,7366 **** IFS="$save_ifs" # Restore the uninstalled library and exit ! if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then --- 8543,8549 ---- IFS="$save_ifs" # Restore the uninstalled library and exit ! if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then *************** *** 7441,7458 **** if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" ! reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" ! generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. ! reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' --- 8624,8644 ---- if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" ! reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" ! func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi + # If we're not building shared, we need to use non_pic_objs + test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" + # Create the old-style object. ! reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' *************** *** 7512,7519 **** case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework ! compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ! finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac --- 8698,8705 ---- case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework ! compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` ! finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac *************** *** 7524,7537 **** if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) ! compile_command="$compile_command ${wl}-bind_at_load" ! finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" ! compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ! finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac --- 8710,8723 ---- if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) ! func_append compile_command " ${wl}-bind_at_load" ! func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" ! compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ! finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac *************** *** 7545,7551 **** *) case " $compile_deplibs " in *" -L$path/$objdir "*) ! new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac --- 8731,8737 ---- *) case " $compile_deplibs " in *" -L$path/$objdir "*) ! func_append new_libs " -L$path/$objdir" ;; esac ;; esac *************** *** 7555,7571 **** -L*) case " $new_libs " in *" $deplib "*) ;; ! *) new_libs="$new_libs $deplib" ;; esac ;; ! *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" ! compile_command="$compile_command $compile_deplibs" ! finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. --- 8741,8757 ---- -L*) case " $new_libs " in *" $deplib "*) ;; ! *) func_append new_libs " $deplib" ;; esac ;; ! *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" ! func_append compile_command " $compile_deplibs" ! func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. *************** *** 7573,7579 **** # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; ! *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi --- 8759,8765 ---- # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; ! *) func_append finalize_rpath " $libdir" ;; esac done fi *************** *** 7592,7609 **** *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) ! hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" ! rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; ! *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in --- 8778,8795 ---- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) ! func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" ! func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; ! *) func_append perm_rpath " $libdir" ;; esac fi case $host in *************** *** 7612,7623 **** case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; ! *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; ! *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac --- 8798,8809 ---- case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; ! *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; ! *) func_append dllsearchpath ":$testbindir";; esac ;; esac *************** *** 7643,7660 **** *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) ! hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" ! rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; ! *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done --- 8829,8846 ---- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) ! func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" ! func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; ! *) func_append finalize_perm_rpath " $libdir" ;; esac fi done *************** *** 7668,7675 **** if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. ! compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ! finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" --- 8854,8861 ---- if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. ! compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` ! finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" *************** *** 7681,7695 **** wrappers_required=yes case $host in *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; - *cegcc) - # Disable wrappers for cegcc, we are cross compiling anyway. - wrappers_required=no - ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no --- 8867,8881 ---- wrappers_required=yes case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=no + ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no *************** *** 7698,7710 **** esac if test "$wrappers_required" = no; then # Replace the output file specification. ! compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' --- 8884,8902 ---- esac if test "$wrappers_required" = no; then # Replace the output file specification. ! compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' *************** *** 7727,7733 **** # We should set the runpath_var. rpath= for dir in $perm_rpath; do ! rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi --- 8919,8925 ---- # We should set the runpath_var. rpath= for dir in $perm_rpath; do ! func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi *************** *** 7735,7741 **** # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do ! rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi --- 8927,8933 ---- # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do ! func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi *************** *** 7745,7755 **** # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. ! link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' exit $EXIT_SUCCESS fi --- 8937,8954 ---- # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. ! link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + exit $EXIT_SUCCESS fi *************** *** 7764,7770 **** if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then ! relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= --- 8963,8969 ---- if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then ! relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= *************** *** 7776,7788 **** fi # Replace the output file specification. ! link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" --- 8975,8993 ---- fi # Replace the output file specification. ! link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + # Now create the wrapper script. func_verbose "creating $output" *************** *** 7800,7817 **** fi done relink_command="(cd `pwd`; $relink_command)" ! relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` ! fi ! ! # Quote $ECHO for shipping. ! if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then ! case $progpath in ! [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; ! *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; ! esac ! qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` ! else ! qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. --- 9005,9011 ---- fi done relink_command="(cd `pwd`; $relink_command)" ! relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. *************** *** 7891,7897 **** else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then ! oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" --- 9085,9091 ---- else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then ! func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" *************** *** 7899,7908 **** if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" ! generated="$generated $gentop" func_extract_archives $gentop $addlibs ! oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. --- 9093,9102 ---- if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" ! func_append generated " $gentop" func_extract_archives $gentop $addlibs ! func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. *************** *** 7913,7922 **** # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" ! generated="$generated $gentop" func_extract_archives $gentop $dlprefiles ! oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have --- 9107,9116 ---- # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" ! func_append generated " $gentop" func_extract_archives $gentop $dlprefiles ! func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have *************** *** 7932,7940 **** done | sort | sort -uc >/dev/null 2>&1); then : else ! $ECHO "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" ! generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= --- 9126,9134 ---- done | sort | sort -uc >/dev/null 2>&1); then : else ! echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" ! func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= *************** *** 7958,7966 **** esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" ! oldobjs="$oldobjs $gentop/$newobj" ;; ! *) oldobjs="$oldobjs $obj" ;; esac done fi --- 9152,9160 ---- esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" ! func_append oldobjs " $gentop/$newobj" ;; ! *) func_append oldobjs " $obj" ;; esac done fi *************** *** 7970,7975 **** --- 9164,9179 ---- len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." *************** *** 8043,8049 **** done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" ! relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi --- 9247,9253 ---- done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" ! relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi *************** *** 8066,8074 **** eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" ! newdependency_libs="$newdependency_libs $libdir/$name" ;; ! *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" --- 9270,9288 ---- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" ! func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ! ;; ! -L*) ! func_stripname -L '' "$deplib" ! func_replace_sysroot "$func_stripname_result" ! func_append newdependency_libs " -L$func_replace_sysroot_result" ;; ! -R*) ! func_stripname -R '' "$deplib" ! func_replace_sysroot "$func_stripname_result" ! func_append newdependency_libs " -R$func_replace_sysroot_result" ! ;; ! *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" *************** *** 8082,8090 **** eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" ! newdlfiles="$newdlfiles $libdir/$name" ;; ! *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" --- 9296,9304 ---- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" ! func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; ! *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" *************** *** 8101,8107 **** eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" ! newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done --- 9315,9321 ---- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" ! func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done *************** *** 8113,8119 **** [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac ! newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= --- 9327,9333 ---- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac ! func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= *************** *** 8122,8136 **** [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac ! newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in ! *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file --- 9336,9368 ---- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac ! func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in ! *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) ! # If a -bindir argument was supplied, place the dll there. ! if test "x$bindir" != x ; ! then ! func_relative_path "$install_libdir" "$bindir" ! tdlname=$func_relative_path_result$dlname ! else ! # Otherwise fall back on heuristic. ! tdlname=../bin/$dlname ! fi ! ;; esac $ECHO > $output "\ # $outputname - a libtool library file *************** *** 8189,8195 **** exit $EXIT_SUCCESS } ! { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} --- 9421,9427 ---- exit $EXIT_SUCCESS } ! { test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} *************** *** 8209,8217 **** for arg do case $arg in ! -f) RM="$RM $arg"; rmforce=yes ;; ! -*) RM="$RM $arg" ;; ! *) files="$files $arg" ;; esac done --- 9441,9449 ---- for arg do case $arg in ! -f) func_append RM " $arg"; rmforce=yes ;; ! -*) func_append RM " $arg" ;; ! *) func_append files " $arg" ;; esac done *************** *** 8220,8243 **** rmdirs= - origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then ! objdir="$origobjdir" else ! objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" ! test "$mode" = uninstall && objdir="$dir" ! # Remember objdir for removal later, being careful to avoid duplicates ! if test "$mode" = clean; then case " $rmdirs " in ! *" $objdir "*) ;; ! *) rmdirs="$rmdirs $objdir" ;; esac fi --- 9452,9474 ---- rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then ! odir="$objdir" else ! odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" ! test "$opt_mode" = uninstall && odir="$dir" ! # Remember odir for removal later, being careful to avoid duplicates ! if test "$opt_mode" = clean; then case " $rmdirs " in ! *" $odir "*) ;; ! *) func_append rmdirs " $odir" ;; esac fi *************** *** 8263,8280 **** # Delete the libtool libraries and symlinks. for n in $library_names; do ! rmfiles="$rmfiles $objdir/$n" done ! test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" ! case "$mode" in clean) ! case " $library_names " in ! # " " in the beginning catches empty $dlname *" $dlname "*) ;; ! *) rmfiles="$rmfiles $objdir/$dlname" ;; esac ! test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then --- 9494,9510 ---- # Delete the libtool libraries and symlinks. for n in $library_names; do ! func_append rmfiles " $odir/$n" done ! test -n "$old_library" && func_append rmfiles " $odir/$old_library" ! case "$opt_mode" in clean) ! case " $library_names " in *" $dlname "*) ;; ! *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac ! test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then *************** *** 8302,8320 **** # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then ! rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then ! rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) ! if test "$mode" = clean ; then noexename=$name case $file in *.exe) --- 9532,9550 ---- # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then ! func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then ! func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) ! if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) *************** *** 8324,8330 **** noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe ! rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. --- 9554,9560 ---- noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe ! func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. *************** *** 8333,8339 **** func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result ! rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename --- 9563,9569 ---- func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result ! func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename *************** *** 8341,8352 **** # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles ! rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then ! rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then ! rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi --- 9571,9582 ---- # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles ! func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then ! func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then ! func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi *************** *** 8354,8360 **** esac func_show_eval "$RM $rmfiles" 'exit_status=1' done - objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do --- 9584,9589 ---- *************** *** 8366,8381 **** exit $exit_status } ! { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} ! test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ ! func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" --- 9595,9610 ---- exit $exit_status } ! { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} ! test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ ! func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" diff -cNr octave-3.4.0/build-aux/mkinstalldirs octave-3.4.1/build-aux/mkinstalldirs *** octave-3.4.0/build-aux/mkinstalldirs 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/build-aux/mkinstalldirs 2011-06-15 11:31:30.000000000 -0400 *************** *** 0 **** --- 1,162 ---- + #! /bin/sh + # mkinstalldirs --- make directory hierarchy + + scriptversion=2009-04-28.21; # UTC + + # Original author: Noah Friedman + # Created: 1993-05-16 + # Public domain. + # + # This file is maintained in Automake, please report + # bugs to or send patches to + # . + + nl=' + ' + IFS=" "" $nl" + errstatus=0 + dirmode= + + usage="\ + Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... + + Create each directory DIR (with mode MODE, if specified), including all + leading file name components. + + Report bugs to ." + + # process command line arguments + while test $# -gt 0 ; do + case $1 in + -h | --help | --h*) # -h for help + echo "$usage" + exit $? + ;; + -m) # -m PERM arg + shift + test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } + dirmode=$1 + shift + ;; + --version) + echo "$0 $scriptversion" + exit $? + ;; + --) # stop option processing + shift + break + ;; + -*) # unknown option + echo "$usage" 1>&2 + exit 1 + ;; + *) # first non-opt arg + break + ;; + esac + done + + for file + do + if test -d "$file"; then + shift + else + break + fi + done + + case $# in + 0) exit 0 ;; + esac + + # Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and + # mkdir -p a/c at the same time, both will detect that a is missing, + # one will create a, then the other will try to create a and die with + # a "File exists" error. This is a problem when calling mkinstalldirs + # from a parallel make. We use --version in the probe to restrict + # ourselves to GNU mkdir, which is thread-safe. + case $dirmode in + '') + if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then + echo "mkdir -p -- $*" + exec mkdir -p -- "$@" + else + # On NextStep and OpenStep, the `mkdir' command does not + # recognize any option. It will interpret all options as + # directories to create, and then abort because `.' already + # exists. + test -d ./-p && rmdir ./-p + test -d ./--version && rmdir ./--version + fi + ;; + *) + if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && + test ! -d ./--version; then + echo "mkdir -m $dirmode -p -- $*" + exec mkdir -m "$dirmode" -p -- "$@" + else + # Clean up after NextStep and OpenStep mkdir. + for d in ./-m ./-p ./--version "./$dirmode"; + do + test -d $d && rmdir $d + done + fi + ;; + esac + + for file + do + case $file in + /*) pathcomp=/ ;; + *) pathcomp= ;; + esac + oIFS=$IFS + IFS=/ + set fnord $file + shift + IFS=$oIFS + + for d + do + test "x$d" = x && continue + + pathcomp=$pathcomp$d + case $pathcomp in + -*) pathcomp=./$pathcomp ;; + esac + + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" + + mkdir "$pathcomp" || lasterr=$? + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + else + if test ! -z "$dirmode"; then + echo "chmod $dirmode $pathcomp" + lasterr= + chmod "$dirmode" "$pathcomp" || lasterr=$? + + if test ! -z "$lasterr"; then + errstatus=$lasterr + fi + fi + fi + fi + + pathcomp=$pathcomp/ + done + done + + exit $errstatus + + # Local Variables: + # mode: shell-script + # sh-indentation: 2 + # eval: (add-hook 'write-file-hooks 'time-stamp) + # time-stamp-start: "scriptversion=" + # time-stamp-format: "%:y-%02m-%02d.%02H" + # time-stamp-time-zone: "UTC" + # time-stamp-end: "; # UTC" + # End: diff -cNr octave-3.4.0/build-aux/mk-opts.pl octave-3.4.1/build-aux/mk-opts.pl *** octave-3.4.0/build-aux/mk-opts.pl 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/build-aux/mk-opts.pl 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,1076 ---- + #! /usr/bin/perl -w + # + # Copyright (C) 2002-2011 John W. Eaton + # + # This file is part of Octave. + # + # Octave 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. + # + # Octave 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 Octave; see the file COPYING. If not, see + # . + + # Generate option handling code from a simpler input files for + # Octave's functions like lsode, dassl, etc. + + # FIXME: + # + # * Improve default documentation and/or individual documentation + # in data files. + # + # * Fix print/show code to display/return something more informative + # for special values (for example, -1 ==> infinite in some cases). + # Probably need more information in the data files for this. + + # Input file format: + # + # CLASS = string + # FCN_NAME = string + # INCLUDE = file + # DOC_STRING doc END_DOC_STRING + # OPTION + # NAME = string + # DOC_ITEM doc END_DOC_ITEM + # TYPE = string + # SET_ARG_TYPE = string (optional, defaults to TYPE) + # INIT_VALUE = string | INIT_BODY code END_INIT_BODY + # SET_EXPR = string | SET_BODY code END_SET_BODY | SET_CODE code END_SET_CODE + # END_OPTION + # + # END_* must appear at beginning of line (whitespace ignored). + + ################################################################################ + # Load packages to + # 1) process command line options + ################################################################################ + use Getopt::Long; + + ################################################################################ + # Extract command line arguments + &parse_options; + + $DEFN_FILE = shift @ARGV; + open (DEFN_FILE) or die "unable to open input definition file $DEFN_FILE"; + + ################################################################################ + # Initialize variables + $BLANK_LINE = qr/^\s*$/; + $COMMENT = qr/^\s*#/; + + ################################################################################ + # Process file + $OPT_NUM = 0; + + &parse_input; + + &process_data; + + # Produce desired style of output + &emit_opt_class_header if $opt_class_header; + &emit_opt_handler_fcns if $opt_handler_fcns; + &emit_options_debug if $opt_debug; + + # End of main code + + ################################################################################ + # Subroutines + ################################################################################ + + sub parse_input + { + LINE: while () + { + next LINE if /$BLANK_LINE/; + next LINE if /$COMMENT/; + + if (/^\s*OPTION\s*$/) + { + &parse_option_block; + } + elsif (/^\s*CLASS\s*=\s*"(\w+)"\s*$/) + { + die "duplicate CLASS" if defined $CLASS; + $CLASS = $1; + $CLASS_NAME = "${CLASS}_options"; + $STRUCT_NAME = "${CLASS_NAME}_struct"; + $STATIC_TABLE_NAME = "${CLASS_NAME}_table"; + } + elsif (/^\s*FCN_NAME\s*=\s*"(\w+)"\s*$/) + { + die "duplicate FCN_NAME" if defined $FCN_NAME; + $FCN_NAME = $1; + } + elsif (/^\s*INCLUDE\s*=\s*"(\S+)"\s*$/) + { + $INCLUDE .= "#include <$1>\n"; + } + elsif (/^\s*DOC_STRING\s*$/) + { + die "duplicate DOC_STRING" if defined $DOC_STRING; + while (defined ($_ = ) and not /^\s*END_DOC_STRING\s*$/) + { + $DOC_STRING .= $_; + } + $DOC_STRING =~ s/\n/\\n\\\n/g; + } + else + { + die "mk-opts.pl: unknown command: $_\n" + } + } + $INCLUDE = "" if not defined $INCLUDE; # Initialize value if required + } + + sub parse_option_block + { + while () + { + next if /$BLANK_LINE/; + + die "missing END_OPTION" if /^\s*OPTION\s*$/; + + last if /^\s*END_OPTION\s*$/; + + if (/^\s*NAME\s*=\s*"(.*)"\s*$/) + { + die "duplicate NAME" if defined $NAME[$OPT_NUM]; + $NAME[$OPT_NUM] = $1; + ($OPT[$OPT_NUM] = $NAME[$OPT_NUM]) =~ s/\s+/_/g; + $OPTVAR[$OPT_NUM] = 'x_' . $OPT[$OPT_NUM]; + $KW_TOK[$OPT_NUM] = [ split (' ', $NAME[$OPT_NUM]) ]; + $N_TOKS[$OPT_NUM] = @{$KW_TOK[$OPT_NUM]}; + } + elsif (/^\s*DOC_ITEM\s*$/) + { + die "duplicate DOC_ITEM" if defined $DOC_ITEM[$OPT_NUM]; + while (defined ($_ = ) and not /^\s*END_DOC_ITEM\s*$/) + { + $DOC_ITEM[$OPT_NUM] .= $_; + } + $DOC_ITEM[$OPT_NUM] =~ s/\n/\\n\\\n/g; + } + elsif (/^\s*TYPE\s*=\s*"(.*)"\s*$/) + { + die "duplicate TYPE" if defined $TYPE[$OPT_NUM]; + $TYPE[$OPT_NUM] = $1; + } + elsif (/^\s*SET_ARG_TYPE\s*=\s*"(.*)"\s*$/) + { + die "duplicate SET_ARG_TYPE" if defined $SET_ARG_TYPE[$OPT_NUM]; + $SET_ARG_TYPE[$OPT_NUM] = $1; + } + elsif (/^\s*INIT_VALUE\s*=\s*"(.*)"\s*$/) + { + die "duplicate INIT_VALUE" if defined $INIT_VALUE[$OPT_NUM]; + $INIT_VALUE[$OPT_NUM] = $1; + } + elsif (/^\s*SET_EXPR\s*=\s*"(.*)"\s*$/) + { + die "duplicate SET_EXPR" if defined $SET_EXPR[$OPT_NUM]; + $SET_EXPR[$OPT_NUM] = $1; + } + elsif (/^\s*INIT_BODY\s*$/) + { + die "duplicate INIT_BODY" if defined $INIT_BODY[$OPT_NUM]; + while (defined ($_ = ) and not /^\s*END_INIT_BODY\s*$/) + { + $INIT_BODY[$OPT_NUM] .= $_; + } + } + elsif (/^\s*SET_BODY\s*$/) + { + die "duplicate SET_BODY" if defined $INIT_BODY[$OPT_NUM]; + while (defined ($_ = ) and not /^\s*END_SET_BODY\s*$/) + { + $SET_BODY[$OPT_NUM] .= $_; + } + } + elsif (/^\s*SET_CODE\s*$/) + { + die "duplicate SET_CODE" if defined $SET_CODE[$OPT_NUM]; + while (defined ($_ = ) and not /^\s*END_SET_CODE\s*$/) + { + $SET_CODE[$OPT_NUM] .= $_; + } + } + } + + if (not defined $SET_ARG_TYPE[$OPT_NUM]) + { + $SET_ARG_TYPE[$OPT_NUM] = $TYPE[$OPT_NUM]; + } + else + { + $SET_ARG_TYPE[$OPT_NUM] + = substopt ($SET_ARG_TYPE[$OPT_NUM], $OPTVAR[$OPT_NUM], + $OPT[$OPT_NUM], $TYPE[$OPT_NUM]); + } + + $OPT_NUM++; + } + + sub process_data + { + $MAX_TOKENS = max (@N_TOKS); + + &get_min_match_len_info; + + $FCN_NAME = lc ($CLASS) if not defined $FCN_NAME; + + $OPT_FCN_NAME = "${FCN_NAME}_options" if not defined $OPT_FCN_NAME; + + $STATIC_OBJECT_NAME = "${FCN_NAME}_opts"; + + if (not defined $DOC_STRING) + { + $DOC_STRING = "Query or set options for the function \@code{$FCN_NAME}.\\n\\ + When called with no arguments, the names of all available options and\\n\\ + their current values are displayed.\\n\\ + Given one argument, return the value of the corresponding option.\\n\\ + When called with two arguments, \@code{$OPT_FCN_NAME} set the option\\n\\ + \@var{opt} to value \@var{val}."; + } + } + + #FIXME: What does this routine do? And can it be simpler to understand? + sub get_min_match_len_info + { + my ($i, $j, $k); + + for ($i = 0; $i < $OPT_NUM; $i++) + { + for ($j = 0; $j < $MAX_TOKENS; $j++) + { + $MIN_TOK_LEN_TO_MATCH[$i][$j] = 0; + } + + $MIN_TOKS_TO_MATCH[$i] = 1; + + L1: for ($k = 0; $k < $OPT_NUM; $k++) + { + my $duplicate = 1; + + if ($i != $k) + { + L2: for ($j = 0; $j < $MAX_TOKENS; $j++) + { + if ($j < $N_TOKS[$i]) + { + if ($KW_TOK[$i][$j] eq $KW_TOK[$k][$j]) + { + if ($MIN_TOK_LEN_TO_MATCH[$i][$j] == 0) + { + $MIN_TOK_LEN_TO_MATCH[$i][$j] = 1; + } + + $MIN_TOKS_TO_MATCH[$i]++; + } + else + { + $duplicate = 0; + + if ($MIN_TOK_LEN_TO_MATCH[$i][$j] == 0) + { + $MIN_TOK_LEN_TO_MATCH[$i][$j] = 1; + } + + my @s = split (//, $KW_TOK[$i][$j]); + my @t = split (//, $KW_TOK[$k][$j]); + + my ($n, $ii); + $n = scalar (@s); + $n = scalar (@t) if (@t < $n); + + for ($ii = 0; $ii < $n; $ii++) + { + if ("$s[$ii]" eq "$t[$ii]") + { + if ($ii + 2 > $MIN_TOK_LEN_TO_MATCH[$i][$j]) + { + $MIN_TOK_LEN_TO_MATCH[$i][$j]++; + } + } + else + { + last L2; + } + } + + last L1; + } + } + else + { + die qq|ambiguous options "$NAME[$i]" and "$NAME[$k]"| if $duplicate; + } + } + } + } + } + } # end of get_min_match_len_info + + + sub emit_copy_body + { + my ($pfx, $var) = @_; + + for (my $i = 0; $i < $OPT_NUM; $i++) + { + print "${pfx}$OPTVAR[$i] = ${var}.$OPTVAR[$i];\n"; + } + + print "${pfx}reset = ${var}.reset;\n"; + } + + ## To silence GCC warnings, we create an initialization list even + ## though the init function actually does the work of initialization. + + sub emit_default_init_list + { + my ($prefix) = @_; + + print "$OPTVAR[0] (),\n" unless ($OPT_NUM == 0); + + for (my $i = 1; $i < $OPT_NUM; $i++) + { + print "${prefix}$OPTVAR[$i] (),\n"; + } + + print "${prefix}reset ()\n"; + } + + sub emit_copy_ctor_init_list + { + my ($prefix, $var) = @_; + + print "$OPTVAR[0] ($var.$OPTVAR[0]),\n" unless ($OPT_NUM == 0); + + for (my $i = 1; $i < $OPT_NUM; $i++) + { + print "${prefix}$OPTVAR[$i] ($var.$OPTVAR[$i]),\n"; + } + + print "${prefix}reset ($var.reset)\n"; + } + + sub emit_opt_class_header + { + my ($i, $s); + + print <<"_END_EMIT_OPT_CLASS_HEADER_"; + // DO NOT EDIT! + // Generated automatically from $DEFN_FILE. + + #if !defined (octave_${CLASS_NAME}_h) + #define octave_${CLASS_NAME}_h 1 + + #include + #include + + $INCLUDE + + class + $CLASS_NAME + { + public: + + $CLASS_NAME (void) + _END_EMIT_OPT_CLASS_HEADER_ + + print ' : '; + emit_default_init_list (" "); + + print " { + init (); + } + + $CLASS_NAME (const ${CLASS_NAME}& opt) + : "; + + emit_copy_ctor_init_list (" ", "opt"); + + print " { } + + ${CLASS_NAME}& operator = (const ${CLASS_NAME}& opt) + { + if (this != &opt) + {\n"; + + emit_copy_body (' ', 'opt'); + + print " } + + return *this; + } + + ~$CLASS_NAME (void) { }\n"; + + print "\n void init (void)\n {\n"; + + for ($i = 0; $i < $OPT_NUM; $i++) + { + if ($INIT_VALUE[$i]) + { + print " $OPTVAR[$i] = $INIT_VALUE[$i];\n"; + } + elsif ($INIT_BODY[$i]) + { + $s = substopt ($INIT_BODY[$i], $OPTVAR[$i], $OPT[$i], $TYPE[$i]); + chomp ($s); + $s =~ s/^\s*/ /g; + $s =~ s/\n\s*/\n /g; + print $s,"\n"; + } + } + + print " reset = true;\n", + " }\n"; + + ## For backward compatibility and because set_options is probably + ## a better name in some contexts: + + print "\n void set_options (const ${CLASS_NAME}& opt)\n", + " {\n"; + + emit_copy_body (' ', 'opt'); + + print " }\n\n void set_default_options (void) { init (); }\n"; + + for ($i = 0; $i < $OPT_NUM; $i++) + { + if ($SET_EXPR[$i]) + { + emit_set_decl ($i); + + print "\n { $OPTVAR[$i] = $SET_EXPR[$i]; reset = true; }\n"; + } + elsif ($SET_BODY[$i]) + { + emit_set_decl ($i); + + $s = substopt ($SET_BODY[$i], $OPTVAR[$i], $OPT[$i], $TYPE[$i]); + chomp ($s); + $s = ' ' . $s; + $s =~ s/\n/\n /g; + print "\n {\n$s\n reset = true;\n }\n"; + } + elsif ($SET_CODE[$i]) + { + $s = substopt ($SET_CODE[$i], $OPTVAR[$i], $OPT[$i], $TYPE[$i]); + chomp ($s); + $s =~ s/^ //g; + $s =~ s/\n /\n/g; + print "\n",$s,"\n"; + } + } + + for ($i = 0; $i < $OPT_NUM; $i++) + { + print " $TYPE[$i] $OPT[$i] (void) const\n { return $OPTVAR[$i]; }\n\n"; + } + + print "private:\n\n"; + + for ($i = 0; $i < $OPT_NUM; $i++) + { + print " $TYPE[$i] $OPTVAR[$i];\n"; + } + + print "\nprotected:\n\n bool reset;\n};\n\n#endif\n"; + } + + sub emit_set_decl + { + my ($i) = @_; + + print "\n void set_$OPT[$i] ($SET_ARG_TYPE[$i] val)"; + } + + sub emit_opt_handler_fcns + { + my $header = $DEFN_FILE; + $header =~ s/[.]\w*$/.h/; # replace .in with .h + $header =~ s|^.*/([^/]*)$|$1|; # strip directory part + + print <<"_END_EMIT_OPT_HANDLER_FCNS_"; + // DO NOT EDIT! + // Generated automatically from $DEFN_FILE. + + #ifdef HAVE_CONFIG_H + #include + #endif + + #include + #include + + #include "$header" + + #include "defun-dld.h" + #include "pr-output.h" + + #include "oct-obj.h" + #include "utils.h" + #include "pager.h" + + static $CLASS_NAME $STATIC_OBJECT_NAME; + + _END_EMIT_OPT_HANDLER_FCNS_ + + &emit_struct_decl; + + &emit_struct_def; + + &emit_print_function; + + &emit_set_functions; + + &emit_show_function; + + &emit_options_function; + } + + sub emit_struct_decl + { + print <<"_END_PRINT_STRUCT_DECL_"; + #define MAX_TOKENS $MAX_TOKENS + + struct $STRUCT_NAME + { + const char *keyword; + const char *kw_tok[MAX_TOKENS + 1]; + int min_len[MAX_TOKENS + 1]; + int min_toks_to_match; + }; + + _END_PRINT_STRUCT_DECL_ + } + + sub emit_struct_def + { + my $i; + + print "#define NUM_OPTIONS $OPT_NUM\n\n"; + + print "static $STRUCT_NAME $STATIC_TABLE_NAME [] =\n{\n"; + + for ($i = 0; $i < ($OPT_NUM - 1); $i++) + { + emit_option_table_entry ($i, 0); + print "\n"; + } + emit_option_table_entry ($i, 0); + + print "};\n\n"; + } + + sub emit_option_table_entry + { + my ($i, $empty) = @_; + + my $k; + + if ($empty) + { + print " { 0,\n"; + } + else + { + print " { \"$NAME[$i]\",\n"; + } + + my $n = scalar $#{$KW_TOK[$i]}; + print " {"; + for $k (0 .. $MAX_TOKENS) + { + if ($empty or $k > $n) + { + print " 0,"; + } + else + { + print " \"$KW_TOK[$i][$k]\","; + } + } + print " },\n"; + + print " {"; + for $k (0 .. $MAX_TOKENS) + { + if ($empty or $k > $n) + { + print " 0,"; + } + else + { + print " $MIN_TOK_LEN_TO_MATCH[$i][$k],"; + } + } + print " }, $MIN_TOKS_TO_MATCH[$i], "; + + print "},\n"; + } + + sub emit_print_function + { + ## FIXME -- determine the width of the table automatically. + + print qq|static void + print_$CLASS_NAME (std::ostream& os) + { + std::ostringstream buf; + + os << "\\n" + << "Options for $CLASS include:\\n\\n" + << " keyword value\\n" + << " ------- -----\\n"; + + $STRUCT_NAME *list = $STATIC_TABLE_NAME;\n\n|; + + for (my $i = 0; $i < $OPT_NUM; $i++) + { + print qq| {\n os << " " + << std::setiosflags (std::ios::left) << std::setw (50) + << list[$i].keyword + << std::resetiosflags (std::ios::left) + << " ";\n\n|; + + if ($TYPE[$i] eq "double") + { + print qq| double val = $STATIC_OBJECT_NAME.$OPT[$i] ();\n\n|; + print qq| os << val << "\\n";\n|; + } + elsif ($TYPE[$i] eq "float") + { + print qq| float val = $STATIC_OBJECT_NAME.$OPT[$i] ();\n\n|; + print qq| os << val << "\\n";\n|; + } + elsif ($TYPE[$i] eq "int" or $TYPE[$i] eq "octave_idx_type") + { + print qq| int val = $STATIC_OBJECT_NAME.$OPT[$i] ();\n\n|; + print qq| os << val << "\\n";\n|; + } + elsif ($TYPE[$i] eq "std::string") + { + print qq| os << $STATIC_OBJECT_NAME.$OPT[$i] () << "\\n";\n|; + } + elsif ($TYPE[$i] eq "Array" or $TYPE[$i] eq "Array") + { + my $elt_type; + if ($TYPE[$i] eq "Array") + { + $elt_type = "int"; + } + else + { + $elt_type = "octave_idx_type"; + } + print qq| Array<$elt_type> val = $STATIC_OBJECT_NAME.$OPT[$i] ();\n\n|; + print qq| if (val.length () == 1) + { + os << val(0) << "\\n"; + } + else + { + os << "\\n\\n"; + octave_idx_type len = val.length (); + Matrix tmp (len, 1); + for (octave_idx_type i = 0; i < len; i++) + tmp(i,0) = val(i); + octave_print_internal (os, tmp, false, 2); + os << "\\n\\n"; + }\n|; + } + elsif ($TYPE[$i] eq "Array") + { + print qq| Array val = $STATIC_OBJECT_NAME.$OPT[$i] ();\n\n|; + print qq| if (val.length () == 1) + { + os << val(0) << "\\n"; + } + else + { + os << "\\n\\n"; + Matrix tmp = Matrix (ColumnVector (val)); + octave_print_internal (os, tmp, false, 2); + os << "\\n\\n"; + }\n|; + } + elsif ($TYPE[$i] eq "Array") + { + print qq| Array val = $STATIC_OBJECT_NAME.$OPT[$i] ();\n\n|; + print qq| if (val.length () == 1) + { + os << val(0) << "\\n"; + } + else + { + os << "\\n\\n"; + FloatMatrix tmp = FloatMatrix (FloatColumnVector (val)); + octave_print_internal (os, tmp, false, 2); + os << "\\n\\n"; + }\n|; + } + else + { + die ("unknown type $TYPE[$i]"); + } + + print " }\n\n"; + } + + print qq| os << "\\n";\n}\n\n|; + } + + sub emit_set_functions + { + print "static void + set_$CLASS_NAME (const std::string& keyword, const octave_value& val) + { + $STRUCT_NAME *list = $STATIC_TABLE_NAME;\n\n"; + + my $iftok = "if"; + + for (my $i = 0; $i < $OPT_NUM; $i++) + { + $iftok = "else if" if ($i > 0); + + print " $iftok (keyword_almost_match (list[$i].kw_tok, list[$i].min_len, + keyword, list[$i].min_toks_to_match, MAX_TOKENS)) + {\n"; + + if ($TYPE[$i] eq "double") + { + print " double tmp = val.double_value ();\n\n"; + print " if (! error_state) + $STATIC_OBJECT_NAME.set_$OPT[$i] (tmp);\n"; + } + elsif ($TYPE[$i] eq "float") + { + print " float tmp = val.float_value ();\n\n"; + print " if (! error_state) + $STATIC_OBJECT_NAME.set_$OPT[$i] (tmp);\n"; + } + elsif ($TYPE[$i] eq "int" or $TYPE[$i] eq "octave_idx_type") + { + print " int tmp = val.int_value ();\n\n"; + print " if (! error_state) + $STATIC_OBJECT_NAME.set_$OPT[$i] (tmp);\n"; + } + elsif ($TYPE[$i] eq "std::string") + { + print " std::string tmp = val.string_value ();\n\n"; + print " if (! error_state) + $STATIC_OBJECT_NAME.set_$OPT[$i] (tmp);\n"; + } + elsif ($TYPE[$i] eq "Array" or $TYPE[$i] eq "Array") + { + print " Array tmp = val.int_vector_value ();\n\n"; + print " if (! error_state) + $STATIC_OBJECT_NAME.set_$OPT[$i] (tmp);\n"; + } + elsif ($TYPE[$i] eq "Array") + { + print " Array tmp = val.vector_value ();\n\n"; + print " if (! error_state) + $STATIC_OBJECT_NAME.set_$OPT[$i] (tmp);\n"; + } + elsif ($TYPE[$i] eq "Array") + { + print " Array tmp = val.float_vector_value ();\n\n"; + print " if (! error_state) + $STATIC_OBJECT_NAME.set_$OPT[$i] (tmp);\n"; + } + else + { + die ("unknown type $TYPE[$i]"); + } + + print " }\n"; + } + + print qq| else + { + warning ("$OPT_FCN_NAME: no match for `%s'", keyword.c_str ()); + } + }\n\n|; + } + + sub emit_show_function + { + print "static octave_value_list + show_$CLASS_NAME (const std::string& keyword) + { + octave_value retval; + + $STRUCT_NAME *list = $STATIC_TABLE_NAME;\n\n"; + + my $iftok = "if"; + + for (my $i = 0; $i < $OPT_NUM; $i++) + { + $iftok = "else if" if ($i > 0); + + print " $iftok (keyword_almost_match (list[$i].kw_tok, list[$i].min_len, + keyword, list[$i].min_toks_to_match, MAX_TOKENS)) + {\n"; + + if ($TYPE[$i] eq "double") + { + print " double val = $STATIC_OBJECT_NAME.$OPT[$i] ();\n\n"; + print " retval = val;\n"; + } + elsif ($TYPE[$i] eq "float") + { + print " float val = $STATIC_OBJECT_NAME.$OPT[$i] ();\n\n"; + print " retval = val;\n"; + } + elsif ($TYPE[$i] eq "int" or $TYPE[$i] eq "octave_idx_type") + { + print " int val = $STATIC_OBJECT_NAME.$OPT[$i] ();\n\n"; + print " retval = static_cast (val);\n"; + } + elsif ($TYPE[$i] eq "std::string") + { + print " retval = $STATIC_OBJECT_NAME.$OPT[$i] ();\n"; + } + elsif ($TYPE[$i] eq "Array" or $TYPE[$i] eq "Array") + { + my $elt_type; + if ($TYPE[$i] eq "Array") + { + $elt_type = "int"; + } + else + { + $elt_type = "octave_idx_type"; + } + print " Array<$elt_type> val = $STATIC_OBJECT_NAME.$OPT[$i] ();\n\n"; + print " if (val.length () == 1) + { + retval = static_cast (val(0)); + } + else + { + octave_idx_type len = val.length (); + ColumnVector tmp (len); + for (octave_idx_type i = 0; i < len; i++) + tmp(i) = val(i); + retval = tmp; + }\n"; + } + elsif ($TYPE[$i] eq "Array") + { + print " Array val = $STATIC_OBJECT_NAME.$OPT[$i] ();\n\n"; + print " if (val.length () == 1) + { + retval = val(0); + } + else + { + retval = ColumnVector (val); + }\n"; + } + elsif ($TYPE[$i] eq "Array") + { + print " Array val = $STATIC_OBJECT_NAME.$OPT[$i] ();\n\n"; + print " if (val.length () == 1) + { + retval = val(0); + } + else + { + retval = FloatColumnVector (val); + }\n"; + } + else + { + die ("unknown type $TYPE[$i]"); + } + + print " }\n"; + } + + print qq| else + { + warning ("$OPT_FCN_NAME: no match for `%s'", keyword.c_str ()); + } + + return retval;\n}\n\n|; + } + + sub emit_options_function + { + print <<"_END_EMIT_OPTIONS_FUNCTION_HDR_"; + DEFUN_DLD ($OPT_FCN_NAME, args, , + "-*- texinfo -*-\\n\\ + \@deftypefn {Loadable Function} {} $OPT_FCN_NAME ()\\n\\ + \@deftypefnx {Loadable Function} {val =} $OPT_FCN_NAME (\@var{opt})\\n\\ + \@deftypefnx {Loadable Function} {} $OPT_FCN_NAME (\@var{opt}, \@var{val})\\n\\ + $DOC_STRING\\n\\ + \\n\\ + Options include\\n\\ + \\n\\ + \@table \@code\\n\\ + _END_EMIT_OPTIONS_FUNCTION_HDR_ + # FIXME: Add extra newline above + + for (my $i = 0; $i < $OPT_NUM; $i++) + { + print '@item \"', $NAME[$i], '\"\n\\', "\n"; + print $DOC_ITEM[$i] if $DOC_ITEM[$i]; + } + + print <<"_END_EMIT_OPTIONS_FUNCTION_BODY_"; + \@end table\\n\\ + \@end deftypefn") + { + octave_value_list retval; + + int nargin = args.length (); + + if (nargin == 0) + { + print_$CLASS_NAME (octave_stdout); + } + else if (nargin == 1 || nargin == 2) + { + std::string keyword = args(0).string_value (); + + if (! error_state) + { + if (nargin == 1) + retval = show_$CLASS_NAME (keyword); + else + set_$CLASS_NAME (keyword, args(1)); + } + else + error ("$OPT_FCN_NAME: expecting keyword as first argument"); + } + else + print_usage (); + + return retval; + } + _END_EMIT_OPTIONS_FUNCTION_BODY_ + + } + + sub emit_options_debug + { + print qq|CLASS = "$CLASS"\n|; + + for (my $i = 0; $i < $OPT_NUM; $i++) + { + print "\nOPTION\n"; + print qq| NAME = "$NAME[$i]"\n|; + print qq| TYPE = "$TYPE[$i]"\n|; + if ($SET_ARG_TYPE[$i]) + { + print eval ("\" SET_ARG_TYPE = \\\"$SET_ARG_TYPE[$i]\\\"\"") . "\n"; + } + if ($INIT_VALUE[$i]) + { + print qq| INIT_VALUE = "$INIT_VALUE[$i]"\n|; + } + if ($INIT_BODY[$i]) + { + print " INIT_BODY\n"; + print &substopt ($INIT_BODY[$i]); + print " END_INIT_BODY\n"; + } + if ($SET_EXPR[$i]) + { + print qq| SET_EXPR = "$SET_EXPR[$i]"\n|; + } + if ($SET_BODY[$i]) + { + print " SET_BODY\n"; + print &substopt ($SET_BODY[$i]); + print " END_SET_BODY\n"; + } + if ($SET_CODE[$i]) + { + print " SET_CODE\n"; + print &substopt ($SET_CODE[$i]); + print " END_SET_CODE\n"; + } + print "END_OPTION\n"; + } + } + + sub substopt + { + my ($string, $optvar, $opt, $type) = @_; + + $string =~ s/\$OPTVAR/$optvar/g; + $string =~ s/\$OPT/$opt/g; + $string =~ s/\$TYPE/$type/g; + + return $string; + } + + sub max + { + my $max = shift; + + foreach (@_) + { + $max = $_ if $max < $_; + } + + return $max; + } + + ################################################################################ + # Subroutine processes any command line arguments + ################################################################################ + sub parse_options + { + my $result; + + $opt_help = 0; + $opt_class_header = 0; + $opt_handler_fcns = 0; + $opt_debug = 0; + + $result = GetOptions ("opt-class-header" => \$opt_class_header, + "opt-handler-fcns" => \$opt_handler_fcns, + "debug" => \$opt_debug, + "help" => \$opt_help); + + # give user info if options incorrect or -h(elp) given + &usage_info if (!$result or (@ARGV != 1) or $opt_help); + if ($opt_class_header and $opt_handler_fcns) + { + die "Only one of [-opt-class-header | -opt-handler-fcns ] may be specified"; + } + + } + + ################################################################################ + # Subroutine displays usage information + ################################################################################ + sub usage_info + { + warn <<_END_OF_USAGE_; + ////////////////////////////////////////////////////////////////////////////// + USAGE : mk-opts.pl -opt-class-header|-opt-handler-fcns [-debug] [-help] DEFN_FILE + ////////////////////////////////////////////////////////////////////////////// + + Automatically generate C++ code for option handling code (DASSL, DASRT, etc.) + from definition file. + + See the head of mk-opts.pl for a description of the format that is parsed. + _END_OF_USAGE_ + + exit(1); # exit with error code + } + diff -cNr octave-3.4.0/build-aux/move-if-change octave-3.4.1/build-aux/move-if-change *** octave-3.4.0/build-aux/move-if-change 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/build-aux/move-if-change 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,15 ---- + #!/bin/sh + # + # Like mv $1 $2, but if the files are the same, just delete $1. + # Status is 0 if $2 is changed, 1 otherwise. + + if test -r $2; then + if cmp $1 $2 > /dev/null; then + echo $2 is unchanged + rm -f $1 + else + mv -f $1 $2 + fi + else + mv -f $1 $2 + fi diff -cNr octave-3.4.0/build-aux/warn-on-use.h octave-3.4.1/build-aux/warn-on-use.h *** octave-3.4.0/build-aux/warn-on-use.h 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/build-aux/warn-on-use.h 2011-06-15 11:31:05.000000000 -0400 *************** *** 11,17 **** 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 ! Lesser 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 . */ --- 11,17 ---- 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 . */ diff -cNr octave-3.4.0/ChangeLog octave-3.4.1/ChangeLog *** octave-3.4.0/ChangeLog 2011-02-08 05:01:12.000000000 -0500 --- octave-3.4.1/ChangeLog 2011-06-15 11:41:22.000000000 -0400 *************** *** 1,6933 **** ! 2011-01-31 John W. Eaton ! Version 3.4.0 released. ! * configure.ac (AC_INIT): Version is now 3.4.0. ! (OCTAVE_API_VERSION_NUMBER): Now 47. ! (OCTAVE_RELEASE_DATE): Now 2011-02-08. ! ! 2011-01-31 John W. Eaton ! ! * configure.ac (AC_INIT): Version is now 3.3.92. ! (OCTAVE_API_VERSION_NUMBER): Now 46. ! (OCTAVE_RELEASE_DATE): Now 2011-02-06. ! ! 2011-01-31 John W. Eaton ! ! * configure.ac (AC_INIT): Version is now 3.3.91+. ! ! 2011-01-31 John W. Eaton ! ! * configure.ac (AC_INIT): Version is now 3.3.91. (OCTAVE_API_VERSION_NUMBER): Now 45. ! (OCTAVE_RELEASE_DATE): Now 2011-01-31. ! ! 2011-02-08 John W. Eaton ! ! * NEWS: Add note about subfunctions. ! ! 2011-02-06 John W. Eaton ! ! * PROJECTS, README.devel: Use maintainers@octave.org instead of ! octave-maintainers@octave.org. ! ! 2010-02-05 Rik ! ! * PROJECTS: Point to maintained list on Octave Wiki. ! ! 2010-02-05 Rik ! ! * mkoctfile.in, octave-config.in: Update usage strings. ! ! 2010-02-04 Rik ! ! * configure.ac: Add new doc/icons/Makefile to list of Makefiles to build ! * examples/Makefile.am: Move building of .desktop files and distribution ! of icons to doc/icons directory. ! ! 2010-01-30 Rik ! ! * NEWS: Deprecate glpkmex function. ! ! 2011-01-30 John W. Eaton ! ! * acinclude.m4 (OCTAVE_PROG_GHOSTSCRIPT): Update warning message. ! ! 2011-01-30 John W. Eaton ! ! * configure.ac: Remove code to print warning for missing ARPACK. ! * README.MacOS: Remove arpack from list of prerequisite software. ! ! 2010-01-29 Rik ! ! * NEWS: Deprecate saveimage function. ! ! 2011-01-28 Ben Abbott ! ! * README.MacOS: Spelling corrections. ! * README.MacOS: Additional modifications for building Octave manually. ! * README.MacOS: Modify instructions for building Octave manually. ! ! 2011-01-28 John W. Eaton ! ! * configure.ac: Don't check for ARPACK. ! * common.mk (ARPACK_CPPFLAGS, ARPACK_LDFLAGS, ARPACK_LIBS): ! Delete variables. ! (do_subst_config_vals): Don't substitute them. ! ! 2011-01-27 Ben Abbott ! ! * README.MacOS: Modify instructions for MacPorts to "deactivate" ! rather than "uninstall" octave. ! ! 2011-01-26 John W. Eaton ! ! * mk-opts.pl, mkoctfile.cc.in, mkoctfile.in: Untabify. ! ! * mkf77def.in, mk-opts.pl, mkoctfile.cc.in, structdemo.cc, ! unwinddemo.cc, fortdemo.cc, paramdemo.cc, ! celldemo.cc,stringdemo.cc, hello.cc, embedded.cc, helloworld.cc: ! Strip trailing whitespace. ! ! 2011-01-26 Ben Abbott ! ! * README.MacOS: Modify organization, and update for MacPorts. ! ! 2011-01-26 John W. Eaton ! ! * bootstrap: Update from gnulib sources. ! ! 2011-01-26 John W. Eaton ! ! * configure.ac (INSTALL_SCRIPT): Update commend about UGLY_DEFS. ! ! 2011-01-26 John W. Eaton ! ! * acinclude.m4 (OPENGL_LIBS): Don't add -L/usr/X11R6/LIB to ! LDFLAGS in test. Bug #32160. ! ! 2010-01-25 Rik ! ! * Makefile.am: Directly run makefile rules in doc/interpreter directory ! for AUTHORS, BUGS, INSTALL.OCTAVE files. ! ! 2011-01-25 John W. Eaton ! ! * autogen.sh (AUTOMAKE): Add --foreign to the automake command. ! Check for required GNU files here instead of having automake do it. ! Export AUTOMAKE so our options are actually used. ! ! 2011-01-25 John W. Eaton ! ! * Makefile.am (EXTRA_DIST): Remove ROADMAP from the list. ! ! 2010-01-24 Rik ! ! * AUTHORS: Remove. File now auto-generated from contributors.texi. ! * Makefile.am: Add rule for AUTHORS file. ! ! 2011-01-24 John W. Eaton ! ! * NEWS: Note change in audio/mu2lin. ! ! 2010-01-22 Tatsuro MATSUOKA ! ! * README.MinGW: Small corrections to documentation. ! ! 2010-01-22 Rik ! ! * README.devel: Update for 3.4 release. ! ! 2010-01-22 Rik ! ! * HACKING: Revise and incorporate all of file ROADMAP. ! * ROADMAP: Deleted. ! ! 2010-01-22 Rik ! ! * README.Windows: Reference README.MinGW ! * README.MinGW: Replace placeholder with actual instructions ! ! 2011-01-22 John W. Eaton ! ! * configure.ac (AC_INIT): Version is now 3.3.90+. ! ! 2011-01-22 John W. Eaton ! ! * configure.ac (AC_INIT): Version is now 3.3.90. ! (OCTAVE_API_VERSION_NUMBER): Now 44. ! (OCTAVE_RELEASE_DATE): Now 2011-01-22. ! (OCTAVE_COPYRIGHT): Update year to 2011. ! ! 2010-01-20 Rik ! ! * README.Cygwin, README.MacOS, README.Windows, README.ftp: Update ! documentation files for 3.4 release. ! ! * README.MinGW: Create placeholder for new README file. ! ! 2011-01-20 John W. Eaton ! ! * bootstrap: Update from gnulib sources. ! ! 2011-01-20 John W. Eaton ! ! * configure.ac, NEWS: Update for backend -> graphics_toolkit change. ! ! 2010-01-17 Rik ! ! * NEWS: Add quadcc to list of new functions added. ! ! 2011-01-17 John W. Eaton ! ! * mkoctfile.cc.in (main): Add + missing from previous change. ! ! 2011-01-15 John W. Eaton ! ! * configure.ac (AC_INIT): Version is now 3.3.54. ! (OCTAVE_API_VERSION_NUMBER): Now 42. ! (OCTAVE_RELEASE_DATE): Now 2010-11-19. ! ! 2011-01-15 John W. Eaton ! ! * NEWS: Add krylovb to deprecated function list. ! ! 2010-01-14 Rik ! ! * NEWS: Add replot to deprecated function list. ! ! 2011-01-14 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include filemode in the list. ! ! 2011-01-14 John W. Eaton ! ! * Update copyright notices for 2011. ! ! 2011-01-14 John W. Eaton ! ! * bootstrap (gnulib_path): Set default gnulib path with ${x:=y}, ! not ${x=y}. ! ! 2011-01-14 John W. Eaton ! ! * bootstrap, bootstrap.conf: Update from gnulib sources. ! ! 2011-01-13 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include mkstemp in the list. ! ! 2011-01-13 John W. Eaton ! ! * configure.ac (AC_ARG_ENABLE(extra-warning-flags)): ! Eliminate some code duplication. ! ! 2011-01-13 John W. Eaton ! ! * configure.ac (AC_ARG_ENABLE(extra-warning-flags)): Check for ! -Wcast-qual and -Wcast-align and add them to WARN_CFLAGS and ! WARN_CXXFLAGS. ! ! 2011-01-13 John W. Eaton ! ! * configure.ac (AC_ARG_ENABLE(extra-warning-flags)): Check for ! -Wpointer-arith, -Wmissing-prototypes, -Wstrict-prototypes, and ! -Wwrite-strings and add them to WARN_CFLAGS. Check for ! -Wpointer-arith and add them to WARN_CXXFLAGS. ! ! 2011-01-12 John W. Eaton ! ! * mk-opts.pl: Generate initialization lists and in-line code for ! copying. ! ! 2010-01-11 Rik ! ! * ROADMAP: Update guide to Octave directory structure. ! ! 2010-01-11 Rik ! ! * README.mirrors: Update ftp links. ! ! 2010-01-06 Rik ! ! * README: Update links and disk space requirements. ! ! 2011-01-06 Jordi Gutiérrez Hermoso ! ! * run-octave.in: Add a -gud option so that gdb can be called from ! Emacs's GUD mode and similar. ! ! 2011-01-06 John W. Eaton ! ! * mkoctfile.in, mkoctfile.cc.in: Substitute and use LAPACK_LIBS. ! Bug #32009. ! ! 2010-01-04 Rik ! ! * README.MacOS: Update CFLAGS recommendation to use -O2. ! ! 2010-01-04 Rik ! ! * README.gnuplot: Update recommendation to version 4.4. ! ! 2010-01-04 Marco Atzeri ! ! * README.Cygmin: Update build instructions before 3.4 release. ! ! 2010-12-31 Kai Habel ! ! * NEWS: Add curl and divergence to new functions list. ! ! 2010-12-20 Ben Abbott ! ! * README.MacOS, Makefile.am: Update build insructions for MacOS and ! distribute file in tarball. ! ! 2010-12-20 Rik ! ! * README.Cray, SENDING-PATCHES, Makefile.am: Remove obsolete files. ! ! 2010-12-18 Rik ! ! * NEWS: Deprecate sphcat and spvcat functions. ! ! 2010-12-17 Rik ! ! * README.MacOS: New file documenting build instructions for Mac OSX. ! ! 2010-12-09 Kai Habel ! ! * NEWS: Add pie3 to new functions list. ! ! 2010-12-09 Marco Atzeri ! ! * configure.ac: Don't add -lwsock32 to LIBS on cygwin systems. ! ! 2010-11-21 Kai Habel ! ! * NEWS: Add uigetdir, uigetfile, uiputfile. ! ! 2010-11-19 John W. Eaton ! ! * Makefile.am (bin_SCRIPTS): Remove run-octave from the list. ! ! 2010-10-19 John W. Eaton ! ! * configure.ac (AC_INIT): Version is now 3.3.54+. ! ! 2010-10-19 John W. Eaton ! ! * configure.ac (AC_INIT): Version is now 3.3.54. ! (OCTAVE_API_VERSION_NUMBER): Now 42. ! (OCTAVE_RELEASE_DATE): Now 2010-11-19. ! ! 2010-11-15 Kai Habel ! ! * NEWS: Add saveas. Fix uimenu. ! ! 2010-11-14 Michael Goffioul ! ! * mkoctfile.cc.in: replace %OCTAVE_CONF_F77_INTEGER8_FLAG% with ! %OCTAVE_CONF_F77_INTEGER_8_FLAG%. ! ! 2010-11-10 John W. Eaton ! ! * configure.ac: Don't check for nan.h. ! ! 2010-11-10 John W. Eaton ! ! * configure.ac (AH_BOTTOM): Eliminate special case for __DECCXX: ! ! 2010-11-10 John W. Eaton ! ! * configure.ac: Eliminate special cases for nextstep. ! ! 2010-11-10 John W. Eaton ! ! * configure.ac: Eliminate special checks for SCO systems. ! ! 2010-11-10 John W. Eaton ! ! * NEWS: Update deprecated function list with dispatch. ! ! 2010-11-09 Rik ! ! * configure.ac: Fix typo where variable name was missing '$' ! ! 2010-11-09 Rik ! ! * configure.ac: Properly m4 quote AS_HELP_STRING. ! ! 2010-11-09 Rik ! ! * configure.ac: Remove redundant warning message when '--without-opengl' ! option used. ! ! 2010-11-09 John W. Eaton ! ! * configure.ac: Don't check for trunc, copysign, or _copysign. ! ! 2010-11-08 John W. Eaton ! ! * configure.ac (--without-opengl): New configure option. ! ! 2010-11-03 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include copysign in the list. ! ! 2010-10-28 Rik ! ! * NEWS: Update deprecated function list with autocov and autocor. ! ! 2010-10-25 Kai Habel ! ! * NEWS: Add uimenu. ! ! 2010-10-24 Rik ! ! * NEWS: Update deprecated function list for version 3.4. ! ! 2010-10-22 John W. Eaton ! ! * Makefile.am (EXTRA_DIST): Include bootstrap and bootstrap.conf ! in the list. ! ! 2010-10-19 John W. Eaton ! ! * configure.ac (AC_INIT): Version is now 3.3.53+. ! ! 2010-10-19 John W. Eaton ! ! * configure.ac (AC_INIT): Version is now 3.3.53. ! (OCTAVE_API_VERSION_NUMBER): Now 41. ! (OCTAVE_RELEASE_DATE): Now 2010-10-19. ! ! 2010-09-29 John W. Eaton ! ! * examples/make_int.cc (Fmake_int): Don't pass arg to mlock. ! ! 2010-09-29 John W. Eaton ! ! * examples/structdemo.cc (Fstructdemo): Use octave_scalar_map ! instead of Octave_map. ! ! 2010-09-29 John W. Eaton ! ! * configure.ac: Style fixes. ! ! 2010-09-29 John P. Swensen ! ! * configure.ac: Allow selection of GraphicsMagick or ImageMagick ! at configure time using "--with-magick=" option. ! ! 2010-09-24 Jaroslav Hajek ! ! * m4/ax_blas.m4: Update. ! ! 2010-09-23 John W. Eaton ! ! * octave-bug.in, octave-bug.cc.in: Delete ! * Makefile.am (EXTRA_DIST): Remove them from the list. ! (bin_PROGRAMS): Remove octave-bug from the list. ! (octave_bug_SOURCES, nodist_octave_bug_SOURCES): Delete variables. ! (BUILT_SOURCES): Remove octave-bug.cc from the list. ! (bin_SCRIPTS): Remove octave-bug from the list. ! (octave-bug.cc, octave-bug): Delete rules. ! ! 2010-09-20 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include mktime in the list. ! ! 2010-09-18 John W. Eaton ! ! * Makefile.am (BUILT_SOURCES): Include run-octave in the list. ! ! 2010-09-16 John W. Eaton ! ! * configure.ac (SCRIPTS_EXE_SUFFIX) Delete variable and all uses. ! (BUILD_COMPILED_AUX_PROGRAMS): New variable. ! (AMCOND_BUILD_COMPILED_AUX_PROGRAMS): New Automake conditional. ! * Makefile.am (SCRIPTS_EXE_SUFFIX, BUILT_SHELL_FILES): Delete ! variables and all uses. ! (bin_SCRIPTS, bin_PROGRAMS, mkoctfile_SOURCES, ! nodist_mkoctfile_SOURCES, octave_config_SOURCES, ! nodist_octave_config_SOURCES, octave_bug_SOURCES, ! nodist_octave_bug_SOURCES, BUILT_SOURCES): Define conditionally ! based on AMCOND_BUILD_COMPILED_AUX_PROGRAMS. ! (noinst_SCRIPTS): New variable. ! (CLEANFILES): Include $(bin_PROGRAMS) $(bin_SCRIPTS) ! $(BUILT_SOURCES) in the list. ! (all-local): Also depend on $(bin_PROGRAMS) and $(noinst_SCRIPTS). ! (octave-bug.cc, octave-config.cc, mkoctfile.cc, octave-bug) ! (octave-config, mkoctfile): Make rules conditional on ! AMCOND_BUILD_COMPILED_AUX_PROGRAMS. ! (make-version-links, remove-version-links): Define different ! rules conditional on AMCOND_BUILD_COMPILED_AUX_PROGRAMS. ! ! 2010-09-13 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2010-09-10 Jaroslav Hajek ! ! * m4/ax_blas_f77_func.m4: Update. ! ! 2010-09-07 Ben Abbott ! ! * acinclude.m4, configure.ac, m4/module.mk: Update acx_*.m4 ! macros to the newer ax_*.m4 versions. ! * ax_blas.m4, ax_lapack.m4, ax_blas_f77_func.m4, ! ax_pthread.m4: Add files. ! * acx_blas.m4, acx_lapack.m4, acx_blas_f77_func.m4, ! acx_pthread.m4: Remove files. ! ! 2010-09-01 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2010-08-21 Rik ! ! * NEWS: Add randi to list of new functions ! ! 2010-08-09 John Swensen ! ! * mkoctfile.in: Add ability to pass -pthread through to linker. ! ! 2010-08-13 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2010-08-09 Rik ! ! * examples/Makefile.am: Don't echo 'echo' command when building ! octave.desktop. ! ! 2010-08-09 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2010-08-05 Rik ! ! * configure.ac: Change warning messages about freetype and fontconfig ! to reflect their requirement for native graphics. Bug #30594. ! ! 2010-08-05 Rik ! ! * Makefile.am: Remove distribution of emacs directory ! ! * emacs/info-emacs-info, emacs/info-emacs-octave-help, emacs/module.mk, ! emacs/NEWS, emacs/octave-hlp.el, emacs/octave-inf.el, ! emacs/octave-mod.el, emacs/octave-tags, emacs/octave-tags.1, ! emacs/README, emacs/TODO: Remove from further hg checkouts. ! ! 2010-08-05 Rik ! ! * ChangeLog: Correct date in version upgrade 3.3.52+ comment. ! ! 2010-08-01 John W. Eaton ! ! * configure.ac (AC_INIT): Version is now 3.3.52+. ! ! 2010-08-01 John W. Eaton ! ! * configure.ac (AC_INIT): Version is now 3.3.52. ! (OCTAVE_API_VERSION_NUMBER): Now 40. ! (OCTAVE_RELEASE_DATE): Now 2010-08-01. ! ! 2010-07-30 Rik ! ! * Makefile.am: add .gdbinit to the DISTCLEANFILES list ! ! 2010-07-29 Jaroslav Hajek ! ! * NEWS: Include list of new functions. ! ! 2010-07-08 Rik ! ! * NEWS: Update with addition of engineering format. ! ! 2010-07-08 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2010-06-23 Jaroslav Hajek ! ! * mkoctfile.in: F77_INTEGER_8_FLAG -> OCTAVE_CONF_F77_INTEGER_8_FLAG. ! ! 2010-06-23 Jaroslav Hajek ! ! * configure.ac: Temporarily include F77_INTEGER_8_FLAG in FFLAGS for ! BLAS checking. ! * mkoctfile.in: Include F77_INTEGER_8_FLAG in ALL_FFLAGS. ! * mkoctfile.cc.in: Ditto. ! ! 2010-05-18 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2010-05-11 Rik ! ! * configure.ac: Capitalize ARPACK in messages. ! ! 2010-05-04 John W. Eaton ! ! * ROADMAP: Delete entry for villad. ! ! 2010-04-26 Rik ! ! * configure.ac: fix bug with shell HERE document introduced in ! previous change. ! ! 2010-04-26 Shai Ayal ! ! * configure.ac: make all graphics related tests inter-dependent ! ! 2010-04-20 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2010-04-16 David Bateman ! ! * PROJECTS: Update for new sparse functionality. ! ! 2010-04-14 Shai Ayal ! ! * NEWS: Update. ! ! 2010-04-08 Marco Atzeri ! ! * Makefile.am (make-version-links, remove-version-links): ! Use SCRIPTS_EXE_SUFFIX for scripts, not EXEEXT. ! ! 2010-04-07 John W. Eaton ! ! * README.ftp, README.devel: ! Update from Judd Storrs . ! ! 2010-03-27 David Bateman ! ! * acinclude.m4 (OCTAVE_CHECK_OPENMP): Macro to check for OpenMP support ! * configure.ac: Use it here. Disable OpenMP support by default ! ! 2010-03-25 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Sort the list. ! ! 2010-03-25 Jaroslav Hajek ! ! * bootstrap.conf: Include roundf, trunc, truncf. ! ! 2010-03-24 John W. Eaton ! ! * configure.ac (AC_INIT): Version is now 3.3.51+. ! ! 2010-03-24 John W. Eaton ! ! * configure.ac (AC_INIT): Version is now 3.3.51. ! (OCTAVE_API_VERSION_NUMBER): Now 39. ! (OCTAVE_RELEASE_DATE): Now 2010-03-24. ! ! 2010-03-24 John W. Eaton ! ! * NEWS: Style fixes. ! ! 2010-03-23 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2010-03-15 John W. Eaton ! ! * configure.ac (AH_BOTTOM): Define GNULIB_NAMESPACE. ! ! 2010-03-09 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2010-03-01 John W. Eaton ! ! * acinclude.m4 (OCTAVE_CXX_COMPLEX_REFERENCE_ACCESSORS, ! OCTAVE_CXX_COMPLEX_SETTERS): New macros. ! * configure.ac: Use them. ! ! 2010-02-25 John W. Eaton ! ! * gdbinit: New file. ! * Makefile.am (EXTRA_DIST): Add it to the list. ! (all-local): Depend on .gdbinit. ! (.gdbinit): New rule. ! ! 2010-02-22 John W. Eaton ! ! * boostrap: Update from gnulib/build-aux/bootstrap. ! ! 2010-02-21 Michael Goffioul ! ! * configure.ac: Define NOMINMAX under MSVC. ! ! * configure.ac: Add pcre_config --cflags to XTRA_CXXFLAGS instead of ! CPPFLAGS. ! ! 2010-02-17 John W. Eaton ! ! * configure.ac: Add $COLAMD_LDFLAGS $COLAMD_LIBS $AMD_LDFLAGS, ! and $AMD_LIBS to LIBS when checking for cholmod library. ! ! 2010-02-17 John W. Eaton ! ! * acinclude.m4 (OCTAVE_CHECK_FORTRAN_INTEGER_SIZE): Save and ! restore FFLAGS. Temporarily add F77_INTEGER_8_FLAG to FFLAGS. ! * common.mk (F77_INTEGER_8_FLAG): New variable. ! (do_subst_config_vals): Substitute it. ! * configeure.ac: Don't add -fdefault-integer-8 to FFLAGS. ! Substitute F77_INTEGER_8_FLAG. Improve --enable-64 warning. ! ! 2010-02-15 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2010-02-10 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2010-02-08 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include progname in the list. ! ! 2010-02-08 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2010-02-04 John W. Eaton ! ! * configure.ac: Don't check for gethostname. ! * bootstrap.conf (gnulib_modules): Include gethostname in the list. ! ! 2010-02-03 John W. Eaton ! ! * configure.ac: Don't check for fcntl.h or fcntl. ! * bootstrap.conf (gnulib_modules): Include fcntl in the list. ! ! 2010-02-03 John W. Eaton ! ! * acinclude.m4 (OCTAVE_HAVE_C99_VSNPRINTF): Delete. ! * configure.ac: Don't call OCTAVE_HAVE_C99_VSNPRINTF. ! Don't check for snprintf, vfprintf, vsprintf, vsnprintf, or _snprintf. ! * bootstrap.conf (gnulib_modules): Include vsprintf in the list. ! ! 2010-02-03 John W. Eaton ! ! * configure.ac: Don't check for strerror. ! ! 2010-02-03 John W. Eaton ! ! * configure.ac: Don't check for raise or strdup. ! ! 2010-02-03 John W. Eaton ! ! * configure.ac: Don't check for poll or usleep. ! * bootstrap.conf (gnulib_modules): Include nanosleep and sleep ! in the list. ! ! 2010-02-03 John W. Eaton ! ! * configure.ac: Don't check for sigaction, sigpending, ! sigprocmask, or sigsuspend. ! ! 2010-02-03 John W. Eaton ! ! * configure.ac: Don't check for getcwd. ! * bootstrap.conf (gnulib_modules): Include getcwd in the list. ! ! 2010-02-02 John W. Eaton ! ! * configure.ac: Assume signal.h provides sigset_t and sig_atomic_t. ! ! 2010-02-02 John W. Eaton ! ! * configure.ac: Don't call OCTAVE_SIGNAL_CHECK, ! OCTAVE_REINSTALL_SIGHANDLERS, AC_C_CONST, AC_HEADER_STDC, or ! AC_STRUCT_TM, AC_TYPE_SIGNAL. ! Don't define RETSIGTYPE_IS_VOID. ! * acinclude.m4 (OCTAVE_SIGNAL_CHECK, OCTAVE_REINSTALL_SIGHANDLERS): ! Don't call AC_TYPE_SIGNAL. Assume sighandler return type is void. ! (OCTAVE_SIGNAL_CHECK, OCTAVE_REINSTALL_SIGHANDLERS): Delete macros. ! * bootstrap.conf (gnulib_modules): Include sigaction, signal, ! and sigprocmask in the list. ! ! 2010-02-02 John W. Eaton ! ! * configure.ac: Don't check for stdint.h. ! (AH_BOTTOM): Unconditionally include stdint.h. ! Delete fallback integer type definitions. ! * bootstrap.conf (gnulib_modules): Include stdint in the list. ! ! 2010-02-02 John W. Eaton ! ! * configure.ac: Don't check for atexit or on_exit. ! ! 2010-02-02 John W. Eaton ! ! * configure.ac: Don't check for bcopy, bzero, or memmove. ! ! 2010-02-02 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include sys_time, sys_times, ! and time in the list. ! * configure.ac: Don't check for sys/time.h, sys/times.h, ! sys/stat.h, sys/utimes, or utimes.h. ! Don't call AC_HEADER_TIME. ! ! 2010-02-02 John W. Eaton ! ! * acinclue.m4 (OCTAVE_STRPTIME_BROKEN): Delete. ! * configure.ac: Don't call it. ! ! 2010-02-01 John W. Eaton ! ! * acinclude.m4 (OCTAVE_PROG_MAKEINFO): Delete macro. ! * configure.ac: Don't call it. Don't issue warning about ! makeinfo in summary. ! ! 2010-01-31 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2010-01-27 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2010-01-21 John W. Eaton ! ! * configure.ac: Don't check for standard C headers (by now, I ! think we can safely assume they exist). Don't check for ! varargs.h. ! ! 2010-01-21 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include sys_stat in the list. ! * configure.ac: Don't check for sys/types.h or unistd.h. ! ! 2010-01-21 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include unistd in the list. ! Keep list sorted. ! ! 2010-01-21 John W. Eaton ! ! * configure.ac: Delete checks for rename, link, readlink, rmdir, ! strcasecmp, stricmp, strncasecmp, strnicmp, strptime, symlink, ! and unlink. ! ! 2010-01-21 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include pathmax and readlink ! in the list. ! ! 2010-01-21 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include symlink in the list. ! ! 2010-01-21 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include link in the list. ! ! 2010-01-21 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include unlink in the list. ! ! 2010-01-21 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include strptime in the list. ! ! 2010-01-21 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include rename in the list. ! ! 2010-01-21 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include rmdir in the list. ! ! 2010-01-21 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include c-strcase in the list. ! ! 2010-01-21 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include getopt-gnu in the list. ! ! 2010-01-17 Michael Goffioul ! ! * bootstrap.conf: Add round module. ! * configure.ac: Allow to use MSVC with *mingw* build host. Check for ! opendir in -ldirent. Add -ladvapi32 to LIBS. ! ! 2010-01-15 John W. Eaton ! ! * NEWS: Edit. ! ! 2010-01-15 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2010-01-14 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2010-01-13 John W. Eaton ! ! * configure.ac: Handle --enable-docs. Print warning in summary ! if building documentation is disabled. ! * Makefile.am (SUBDIRS): Use @DOCDIR@ instead of doc. ! (dist-hook): New target, conditional on AMCOND_BUILD_DOCS. ! ! 2010-01-09 John W. Eaton ! ! * configure.ac: Don't check for nlink_t. ! (AH_BOTTOM): Don't define nlink_t here. ! ! 2010-01-07 John W. Eaton ! ! * configure.ac: Don't check for times. ! * bootstrap.conf (gnulib_modules): Include times in the list. ! ! 2010-01-07 John W. Eaton ! ! * configure.ac: Don't check for gettimeofday, or whether ! gettimeofday accepts one or two arguments. ! * bootstrap.conf (gnulib_modules): Include gettimeofday in the list. ! ! 2010-01-05 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include mkfifo in the list. ! ! 2010-01-05 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Remove nonexistent fstat module. ! ! 2009-12-22 Rik ! ! * WWW/: remove web directory no longer used ! ! 2010-01-04 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2009-12-27 John W. Eaton ! ! * configure.ac: Use libtool cache variables to simplify checks ! for dynamic linking api. ! ! 2009-12-26 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include fstat, lstat, and ! stat in the list. ! * configure.ac: Don't check for fstat, lstat, or stat. ! ! 2009-12-25 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include mkdir in the list. ! * configure.ac: Don't check for mkdir. ! Don't call OCTAVE_MKDIR_TAKES_ONE_ARG. ! * acinclude.m4 (OCTAVE_MKDIR_TAKES_ONE_ARG): Delete. ! ! 2009-12-25 John W. Eaton ! ! * bootstrap.conf (gnulib_modules): Include crypto/md5 in the list. ! ! 2009-12-22 Rik ! ! * configure.ac: Remove second redundant test for nlink_t ! ! 2009-12-21 Rik ! ! * dlfcn directory: Remove dlfcn directory with leftover code from 1996 ! ! 2009-12-20 Rik ! ! * acinclude.m4: use M4 quoting for arguments to autoconf macros ! ! 2009-12-20 Rik ! ! * configure.ac, acinclude.m4: Better warnings when gnuplot is not ! installed but native graphics are available ! ! 2009-12-19 Rik ! ! * emacs/module.mk, examples/Makefile.am, info-emacs-info, ! info-emacs-octave-help: Distribute emacs specific files from emacs ! directory rather than examples directory ! ! 2009-12-19 Rik ! ! * m4/module.mk, Makefile.am: Redo previous patch with distribution ! triggered by m4/module.mk. ! ! 2009-12-19 Rik ! ! * Makefile.am: Distribute m4/gnulib-cache.m4 per recommendation ! ! 2009-12-19 Rik ! ! * Makefile.am, examples/Makefile.am, common.mk, configure.ac: Eliminate ! TOPDIR variable in favor of built-in automake variables of top_builddir ! and top_srcdir. ! ! 2009-12-19 Rik ! ! * Makefile.am: Use M4 quoting for arguments to autoconf macros containing ! variables ! ! 2009-12-19 Jaroslav Hajek ! ! * data.cc (Fsize_equal): Allow calling with zero arguments. ! variables ! ! 2009-12-15 John W. Eaton ! ! * README.MSVC: Delete section about obtaining glob library. ! * bootstrap.conf (gnulib_modules): Add fnmatch and glob to the list. ! * common.mk (LIBGLOB): Delete variable. ! (do_subst_config_vals): Don't substitute it. ! * octave-bug.in, octave-bug.cc.in: Eliminate LIBGLOB variable. ! * configure.ac: Don't check for glob.h or the glob and fnmatch ! functions. Eliminate LIBGLOB variable. ! ! 2009-12-11 Rik ! ! * HACKING: Elaborate which DIRNAME to use for --gnulib-srcdir option. ! ! 2009-12-11 John W. Eaton ! ! * configure.ac: Add $PTHREAD_LIBS to $LIBS and $PTHREAD_CFLAGS ! to $CFLAGS for subsequent tests. ! ! 2009-12-11 Rik ! ! * Makefile.am: remove install-extras target and use automake syntax to ! distribute NEWS file. ! * examples/Makefile.am: remove install-images target and use automake ! syntax to distribute image data. ! ! 2009-12-11 John W. Eaton ! ! * .dir-locals.el: Correctly set indent-tabs-mode for ChangeLogs, ! and Makefiles. ! ! * common.mk (cp_update_rule): New macro. ! ! 2009-12-10 John W. Eaton ! ! * mkoctfile.in, mkoctfile.cc.in: If output file is specified and ! it does not end in output_ext, append output_ext. ! ! 2009-12-10 John W. Eaton ! ! * mkoctfile.in, mkoctfile.cc.in: When compiling files in ! subdirectories, place object files in current directory by ! default. ! ! 2009-12-10 John W. Eaton ! ! * mkoctfile.cc.in: Accept long options with single -. ! ! 2009-12-10 John W. Eaton ! ! * mkoctfile.in: Accept long options with single -. ! ! 2009-12-09 John W. Eaton ! ! * HACKING: Clarify gnulib checkout and use. ! ! 2009-12-09 John W. Eaton ! ! * configure.ac: Remove URL argument from AC_INIT. ! Use AC_CONFIG_AUX_DIR. Move AM_INIT_AUTOMAKE after other ! AC_CONFIG setup macros. Use gl_EARLY and gl_INIT for gnulib. ! Add libgnu/Makefile to the list of AC_CONFIG_FILES. Eliminate ! special case check for for strftime. ! * bootstrap: New file, from gnulib. ! * bootstrap.conf: New file, from gnulib. Override bootstrap ! defaults for checkout_only_file, gnulib_tool_option_extras, ! gnulib_name, and source_base. ! (gnulib_modules): Add strftime to the list. ! * autogen.sh: Simply generate makefile fragments and call ! bootstrap to do the rest of the initial setup. ! * Makefile.am (SUBDIRS): Add libgnu to the list. ! * libgnu/Makefile.am: New directory and file. ! * INSTALL: Remove our copy so version from gnulib will be ! distributed. ! * HACKING: New file. ! ! 2009-12-08 Rik ! ! * Makefile.am: add BUGS and OCTAVE.INSTALL to DISTCLEANFILES ! ! 2009-12-08 John W. Eaton ! ! * configure.ac: Update gnuplot status message. ! * acinclude.m4 (OCTAVE_PROG_GNUPLOT): Likewise. ! ! 2009-12-07 John W. Eaton ! ! * examples/make_int.cc: Delete Emacs local variables. ! ! * .dir-locals.el: New file. ! ! 2009-12-07 John W. Eaton ! ! * examples/firstmexdemo.c, examples/fortdemo.cc, ! examples/funcdemo.cc, examples/hello.cc, examples/make_int.cc, ! examples/mycell.c, examples/myfeval.c, examples/myfunc.c, ! examples/mypow2.c, examples/mysparse.c, examples/mystring.c, ! examples/mystruct.c, examples/paramdemo.cc, ! examples/stringdemo.cc, examples/structdemo.cc, ! examples/unwinddemo.cc, examples/embedded.cc: Untabify. ! ! 2009-12-04 John W. Eaton ! ! * configure.ac (OCTAVE_API_VERSION_NUMBER): New variable. ! (OCTAVE_API_VERSION): Define using OCTAVE_API_VERSION_NUMBER. ! * common.mk (OCTAVE_API_VERSION_NUMBER): New variable. ! ! 2009-12-04 John W. Eaton ! ! * configure.ac: Check $have_x = yes, not just $have_x. ! From Carmine Paolino . ! ! 2009-12-04 John W. Eaton ! ! * configure.ac: Require auotconf 2.62. ! ! 2009-12-03 John W. Eaton ! ! * common.mk (OCTAVE_VERSION, OCTAVE_API_VERSION) ! (OCTAVE_RELEASE_DATE, OCTAVE_COPYRIGHT, OCTAVE_IDX_TYPE): ! New substituted variables. ! (version): Define from $(OCTAVE_VERSION). ! (api_version): Define from $(OCTAVE_API_VERSION). ! (do_subst_texinfo_vals): Delete macro. ! ! * configure.ac (AC_CONFIG_HEADER): Quote arg. ! (AC_CONFIG_FILES): Remove mxarray.h and version.h from the list. ! ! * examples/Makefile.am (CLEANFILES): New variable. ! ! 2009-11-30 Kacper Kowalik ! ! * acinclude.m4 (OCTAVE_HDF5_HAS_ENFORCED_16_API): New macro that ! tests whether the HDF5 library has an enforced v1.6 API and detects ! v1.8 APIs. ! * configure.m4: Adapt test for HDF5 libraries to support v1.8 ! HDF5 libraries. ! ! 2009-11-29 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2009-11-27 David Bateman ! ! * configure.ac (HAVE_H5GGET_NUM_OBJS) Remove define. ! ! 2009-11-27 David Bateman ! ! * NEWS: Document ftp objects. ! * configure.ac: Document that curl libraries impact ftp objects. ! ! 2009-11-26 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2009-11-25 Tatsuro MATSUOKA ! ! * acinclude.m4 (OCTAVE_PROG_GNUPLOT): Don't check for pgnuplot or ! pipe-gnuplot on Windows systems. Set default to gnuplot for all ! systems. ! (OCTAVE_PROG_GHOSTSCRIPT): Check for gswin32c first on Windows ! systems, then gs. ! ! 2009-11-25 Rik ! ! * Makefile.am examples/Makefile.am liboctave/Makefile.am ! scripts/Makefile.am src/Makefile.am test/Makefile.am: ! Remove unnecessary .PHONY targets for common targets which ! Automake supplies already. Examples are local-all, install-local-data ! ! 2009-11-21 John W. Eaton ! ! * configure.ac (AC_MSG_NOTICE): Report graphics (fltk) CFLAGS. ! Report fontconfig CFLAGS and LIBS. ! Report freetype2 CFLAGS and LIBS. ! ! 2009-11-21 John W. Eaton ! ! * common.mk: Substitute FT2_CFLAGS. ! * configure.ac: Remove spurious lines in check for freetype. Add ! $FT2_CFLAGS to $XTRA_CXXFLAGS. ! ! 2009-11-18 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2009-11-18 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2009-11-16 John W. Eaton ! ! * common.mk (AM_CXXFLAGS): Don't include DLL_CXXDEFS in the list. ! (CONFIGURE_CFLAGS): New variable. ! (AM_CFLAGS): Define similar to AM_CXXFLAGS. ! ! 2009-11-12 John W. Eaton ! ! * configure.ac (AC_CONFIG_FILES): Also generate libcruft/mkf77def. ! ! 2009-11-11 John W. Eaton ! ! * acinclude.m4 (OCTAVE_IEEE754_DATA_FORMAT): Fail if IEEE 754 ! format is not detected. ! ! 2009-11-11 Shai Ayal ! ! * configure.ac: Remove tests for ftgl. ! ! 2009-11-11 Benjamin Lindner ! ! * configure.ac: Remove -mwindows from FLTK_LDFLAGS. ! ! 2009-11-11 John W. Eaton ! ! * configure.ac: Fail if LT_INIT it is not defined. ! ! 2009-11-10 John W. Eaton ! ! * NEWS: Update. ! ! * configure.ac: Exit with error if BLAS or LAPACK libraries are ! not found or if the BLAS library is found to be incompatible with ! the Fortran compiler. Eliminate warn_blas_f77_incompatible ! variable. ! ! 2009-11-10 John W. Eaton ! ! * configure.ac: Set octincludedir to ! $(includedir)/octave-$(version)/octave, not ! $(includedir)/octave-$(version). ! * mkoctfile.in: Set DEFAULT_INCFLAGS to -I$octincludedir/.. and ! -I$octincludedir instead of -I$octincludedir and ! -I$octincludedir/octave. ! ! * configure.ac: Pass args to AC_INIT. Invoke AM_INIT_AUTOMAKE and ! AC_PROG_LIBTOOL. Don't call AC_PROG_RANLIB. Set version info here. ! Call AC_CONFIG_MACRO_DIR. Give same warning for gcc 1.x and 2.x. ! Use AM_CONDITIONALS for FFTW, BLAS, and LAPACK. Don't set ! variables with calls to ACX_BLAS_WITH_F77_FUNC or ACX_LAPACK. ! Don't substitute BLAS_DIR or LAPACK_DIR. Use LT_INIT. Eliminate ! --enable-shared and --enable-static options (now provided by ! LT_INIT). Set SHARED_LIBS and STATIC_LIBS variables based on ! LT_INIT variables. Handle dlopen libraries with info from ! LT_INIT. Substitute NO_UNDEFINED_FLAG (only set on Windows ! sytems). Include $LAPACK_LIBS in $LIBS when checking for qrupdate ! and cholmod. Handle --enable-dl consistently with other --enable ! options. Don't copy $srcdir/Makefile in AH_BOTTOM commands. ! Substitute LEX_OUTPUT_ROOT. Use AM_CONDITONAL for ! ENABLE_DYNAMIC_LINKING. Reindent configure summary. ! (AC_CONFIG_FILES): Don't list Makefiles in libcruft ! subdirectories. Generate Makefile and src/version.h. Don't ! generate Makeconf, octMakefile, m4/Makefile, emacs/Makefile, ! examples/@polynomial/Makefile, or examples/@FIRfilter/Makefile. ! ! * run-octave.in Call libtool to execute src/octave. ! (ldpreloadsep, liboctinterp, liboctave, libcruft): Delete variables. ! (INFOFILE): Find it in $top_srcdir, not $builddir. ! ! * acinclude.m4: Rename from aclocal.m4. ! (OCTAVE_PROG_FLEX): Don't include -t in LFLAGS. ! ! * autogen.sh: Exit immediately on error. Use libtoolize, aclocal, ! and automake. Only run autoconf and autoheader in top-level and ! scripts directories. ! Run liboctave/config-ops.sh, doc/interpreter/config-images.sh, and ! src/DLD-FUNCTIONS/config-module.sh, to generate source lists for ! subdirectories. ! ! * AUTHORS, Makefile.am, common.mk, m4/module.mk, emacs/module.mk, ! examples/@FIRfilter/module.mk, examples/@polynomial/module.mk, ! examples/Makefile.am: New files. ! * Makeconf.in, Makefile, octMakefile.in, m4/Makefile.in, ! emacs/Makefile.in, install-sh, examples/Makefile.in, ! examples/@FIRfilter/Makefile.in, examples/@polynomial/Makefile.in: ! Delete. ! ! 2009-11-09 David Grundberg ! ! * configure.ac: Use AMD_CPPFLAGS while checking for UMFPACK. ! ! 2009-10-29 Thomas Treichl ! ! * configure.in: Add support for dlopen on Mac systems. ! ! 2009-10-20 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2009-10-13 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2009-10-08 Jaroslav Hajek ! ! * configure.ac: Define HAVE_QRUPDATE_LUU if qrupdate supports LU updates. ! ! 2009-10-08 Jaroslav Hajek ! ! * configure.ac: Use the LANG argument to OCTAVE_CHECK_LIBRARY to avoid ! ugly names. ! ! 2009-09-23 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2009-09-18 John W. Eaton ! ! * aclocal.m4: Consistently quote first arg to AC_DEFUN. ! ! 2009-09-17 John W. Eaton ! ! * configure.ac: Also AC_DEFINE OCTAAVE_IDX_TYPE. ! (AH_BOTTOM): Include contents of libcruft/misc/oct-dlldefs.h and ! liboctave/oct-types.h here. Use C-style comments. ! (AC_CONFIG_FILES): Remove liboctave/oct-types.h from the list. ! ! 2009-09-15 John W. Eaton ! ! * configure.ac: Rename from configure.in. ! (AC_CONFIG_FILES): Add m4/Makefile to the list. ! * acx_blas.m4, acx_lapack.m4, acx_blas_f77_func.m4, ! acx_pthread.m4: Move to m4 subdirectory. ! * m4/Makefile.in: New file. ! * octMakefile.in (M4_FILES): Adjust for new m4 subdirectory. ! Rename all instances of configure.in to configure.ac. ! (CONF_DISTSUBDIRS, DISTSUBDIRS): Add m4 to the lists. ! ! * configure.in: Substitute ac_config_headers. ! * octMakefile.in (CONFIG_FILES): Include @ac_config_headers@ in ! the list. From Thorsten Meyer . ! ! 2009-09-04 John W. Eaton ! ! * Makeconf.in (SPARSE_CPPFLAGS, SPARSE_LDFLAGS, FFTW_CPPFLAGS, ! FFTW_LDFLAGS): Don't sort lists. ! ! 2009-09-02 Marco Atzeri ! ! * Makeconf.in: Order SPARSE_LIBS so linking succeeds on Cygwin. ! ! 2009-09-04 Marco Atzeri ! ! * README.Cygwin: Update version info. ! ! 2009-09-04 John W. Eaton ! ! * configure.in (ldpreloadsep): New variable. Set to ':' for Cygwin. ! * Makeconf.in (do-subst-script-vals): Substitute it. ! * run-octave.in: Use it to seprate elements in the LD_PRELOAD variable. ! ! 2009-09-03 John W. Eaton ! ! * configure.in (AH_BOTTOM): If HAVE_Z is defined, define HAVE_ZLIB. ! ! 2009-09-03 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2009-09-02 Jaroslav Hajek ! ! * configure.in (FLOAT_TRUNCATE): New config macro. ! ! 2009-09-02 Jaroslav Hajek ! ! * acx_blas_f77_func.m4 (ACX_BLAS_F77_FUNC): Check for correct INTEGER ! size. ! ! 2009-09-01 John W. Eaton ! ! * aclocal.m4 (OCTAVE_REQUIRE_64_BIT_FORTRAN_INTEGERS): New macro. ! * configure.in: Use it, if building with --enable-64. ! Move checks for Fortran compiler ahead of checks for libraries. ! ! 2009-09-01 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2009-08-30 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2009-08-27 John W. Eaton ! ! * configure.in: Properly save and restore CPPFLAGS and LIBS when ! checking for GraphicsMagick++. Don't temporarily change LDFLAGS. ! ! 2009-08-27 Jaroslav Hajek ! ! * aclocal.m4 (m4_ifblank, m4_ifnblank): State FSF copyright and markup ! as FIXME. ! ! 2009-08-26 John W. Eaton ! ! * configure.in: Restore LIBS after checking for ARPACK. ! ! 2009-08-26 John W. Eaton ! ! * configure.in: Use OCTAVE_CHECK_LIBRARY to check for UMFPACK. ! * octave-bug.in, octave-bug.cc.in: Substitute UMFPACK_CPPFLAGS and ! UMFPACK_LDFLAGS. ! * Makeconf.in (UMFPACK_CPPFLAGS, UMFPACK_LDFLAGS): New variables. ! (do-subst-config-vals): Substitute them. ! ! 2009-08-26 John W. Eaton ! ! * configure.in: Use OCTAVE_CHECK_LIBRARY to check for qrupdate. ! * octave-bug.in, octave-bug.cc.in: Substitute QRUPDATE_CPPFLAGS and ! QRUPDATE_LDFLAGS. ! * Makeconf.in (QRUPDATE_CPPFLAGS, QRUPDATE_LDFLAGS): New variables. ! (do-subst-config-vals): Substitute them. ! ! 2009-08-26 John W. Eaton ! ! * octave-bug.in: Correct substitutions. ! ! 2009-08-26 John W. Eaton ! ! * aclocal.m4 (OCTAVE_CHECK_LIBRARY): Allow empty list of header files. ! * configure.in: Use OCTAVE_CHECK_LIBRARY to check for arpack. ! * octave-bug.in, octave-bug.cc.in: Substitute ARPACK_CPPFLAGS and ! ARPACK_LDFLAGS. ! * Makeconf.in (ARPACK_CPPFLAGS, ARPACK_LDFLAGS): New variables. ! (do-subst-config-vals): Substitute them. ! ! 2009-08-26 Benjamin Lindner ! ! * mkoctfile.cc.in: Fix typo. ! * octave-bug.cc.in: Correct substututions. ! ! 2009-08-25 David Grundberg ! ! * configure.in: Run PKG_PROG_PKG_CONFIG earlier. Use pkg-config ! instead of GraphicsMagick++-config. Determine only -I, -L and -l ! flags and put them in MAGICK_CPPFLAGS, MAGICK_LDFLAGS and ! MAGICK_LIBS respectively. Substitute these variables. ! Remove variables MAGICK_CONFIG and MAGICK_INCFLAGS. ! Test linking against GraphicsMagick++. ! * Makeconf.in: Don't run $(MAGICK_CONFIG) here. Use substituted ! valued from MAGICK_CPPFLAGS, MAGICK_LDFLAGS and MAGICK_LIBS. ! Remove variables MAGICK_CONFIG and MAGICK_INCFLAGS. ! ! 2009-08-24 Jaroslav Hajek ! ! * acx_blas_f77_func.m4: Fix typo. ! ! 2009-08-19 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2009-08-18 John W. Eaton ! ! * aclocal.m4 (OCTAVE_HDF5_HAS_REQUIRED_API): If test fails, set ! octave_hdf5_ok to no instead of setting HAVE_HDF5 to false. ! * configure.in: Check octave_hdf5_ok instead of HAVE_HDF5. ! Set TEXINFO_HDF5 if HDF5 library is found. ! ! 2009-08-18 John W. Eaton ! ! * Makeconf.in (ALL_CPPFLAGS): Add HDF5_CPPFLAGS to the list. ! * aclocal.m4 (OCTAVE_HDF5_HAS_REQUIRED_API): ! Set HAVE_HDF5 to false, not WITH_HDF5. ! * configure.in: Use OCTAVE_CHECK_LIBRARY to check for HDF5 ! library. Print HDF5_CPPFLAGS and HDF5_LDFLAGS in the summary. ! * octave-bug.in, octave-bug.cc.in, Makeconf.in: Substitute ! HDF5_CPPFLAGS and HDF5_LDFLAGS. ! ! 2009-08-18 John W. Eaton ! ! * acx_blas_f77_func.m4 (ACX_BLAS_F77_FUNC): Save and restore LIBS. ! ! 2009-08-18 John W. Eaton ! ! * aclocal.m4 (OCTAVE_CHECK_LIBRARY): Use variables named ! octave_check_library_save_XXX instead of save_XXX. ! * configure.in: Add Z_LDFLAGS and Z_LIBS to LIBS, and Z_CPPFLAGS ! to CPPFLAGS in checks for curl and glpk libraries. ! ! 2009-08-18 David Grundberg ! ! * aclocal.m4 (OCTAVE_CHECK_LIBRARY): Clear QHULL_LIBS etc on ! errors. Interpret --without-qhull etc correctly. ! ! 2009-08-17 John W. Eaton ! ! * mkoctfile.in, mkoctfile.cc.in (FFTW3_LDFLAGS, FFTW3_LIBS, ! FFTW3F_LDFLAGS, FFTW3F_LIBS): Substitute instead of FFTW_LIBS. ! (FFTW_LIBS): Define from FFTW3_LDFLAGS, FFTW3_LIBS, ! FFTW3F_LDFLAGS, and FFTW3F_LIBS variables. ! ! * octave-bug.cc.in, octave-bug.in (Z_CPPFLAGS, Z_LDFLAGS): ! Substitute and display them. ! (Z_LIBS): Rename from ZLIB_LIBS. ! * configure.in: Use OCTAVE_CHECK_LIBRARY to check for ZLIB. ! Print Z_CPPFLAGS and Z_LDFLAGS in the summary. ! * Makeconf.in (Z_CPPFLAGS, Z_LDFLAGS): New variables. ! (Z_LIBS): Rename from ZLIB_LIBS. ! (do-subst-config-vals): Substitute them. ! ! (ALL_CPPFLAGS): New variable. ! (%.o : %.c, %.o : %.cc, pic/%.o : %.c, pic/%.o : %.cc): ! Use $(ALL_CPPFLAGS) instead of $(CPPFLAGS) in command. ! ! 2009-08-17 John W. Eaton ! ! * octave-bug.in, octave-bug.cc.in: Include AMD_CPPFLAGS, ! AMD_LDFLAGS, AMD_LIBS, ARPACK_LIBS, BLAS_LIBS, CAMD_CPPFLAGS, ! CAMD_LDFLAGS, CAMD_LIBS, CARBON_LIBS, CCOLAMD_CPPFLAGS, ! CCOLAMD_LDFLAGS, CCOLAMD_LIBS, CHOLMOD_CPPFLAGS, CHOLMOD_LDFLAGS, ! CHOLMOD_LIBS, COLAMD_CPPFLAGS, COLAMD_LDFLAGS, COLAMD_LIBS, ! CURL_CPPFLAGS, CURL_LDFLAGS, CURL_LIBS, CXSPARSE_CPPFLAGS, ! CXSPARSE_LDFLAGS, CXSPARSE_LIBS, DL_LIBS, FFTW3_CPPFLAGS, ! FFTW3_LDFLAGS, FFTW3_LIBS, FFTW3F_CPPFLAGS, FFTW3F_LDFLAGS, ! FFTW3F_LIBS, GRAPHICS_LIBS, GLPK_CPPFLAGS, GLPK_LDFLAGS, ! GLPK_LIBS, HDF5_LIBS, OPENGL_LIBS, PTHREAD_CFLAGS, PTHREAD_LIBS, ! QHULL_CPPFLAGS, QHULL_LDFLAGS, QHULL_LIBS, QRUPDATE_LIBS, ! READLINE_LIBS, REGEX_LIBS, TERM_LIBS, UMFPACK_LIBS, X11_INCFLAGS, ! X11_LIBS, and ZLIB_LIBS in the summary of varibles. ! ! * configure.in: Include LEXLIB and LIBGLOB in the summary. ! ! 2009-08-17 Michael Goffioul ! ! * aclocal.m4 (OCTAVE_HDF5_DLL): Include HDF5_LIBS in LIBS before ! attempting link. ! ! 2009-08-15 Jaroslav Hajek ! ! * aclocal.m4: Define the autoconf 2.64+ m4sugar macros `m4_ifblank' ! and `m4_ifnblank' if on earlier autoconfs. ! ! 2009-08-13 John W. Eaton ! ! * Makeconf.in (GLPK_CPPFLAGS, GLPK_LDFLAGS, ! AMD_CPPFLAGS, AMD_LDFLAGS, CAMD_CPPFLAGS, CAMD_LDFLAGS, ! CCOLAMD_CPPFLAGS, CCOLAMD_LDFLAGS, CHOLMOD_CPPFLAGS, ! CHOLMOD_LDFLAGS, COLAMD_CPPFLAGS, COLAMD_LDFLAGS, ! CXSPARSE_CPPFLAGS, CXSPARSE_LDFLAGS): New variables. ! (do-subst-config-vals): Substitute Them. ! (SPARSE_CPPFLAGS, SPARSE_LDFLAGS, SPARSE_LIBS, FFTW_CPPFLAGS, ! FFTW_LDFLAGS, FFTW_LIBS): New variables. ! ! * configure.in: Use OCTAVE_CHECK_LIBRARY to check for GLPK, AMD, ! CAMD, CCOLAMD, CHOLMOD, COLAMD, CXSPARSE, FFTW3, and FFTW3F ! libraries. Print GLPK_CPPFLAGS, GLPK_LDFLAGS, AMD_CPPFLAGS, ! AMD_LDFLAGS, CAMD_CPPFLAGS, CAMD_LDFLAGS, CCOLAMD_CPPFLAGS, ! CCOLAMD_LDFLAGS, CHOLMOD_CPPFLAGS, CHOLMOD_LDFLAGS, ! COLAMD_CPPFLAGS, COLAMD_LDFLAGS, CXSPARSE_CPPFLAGS, ! CXSPARSE_LDFLAGS, FFTW3_CPPFLAGS, FFTW3_LDFLAGS, FFTW3_LIBS, ! FFTW3F_CPPFLAGS, FFTW3F_LDFLAGS, and FFTW3F_LIBS in the summary. ! (AH_BOTTOM): Define HAVE_FFTW if HAVE_FFTW3 and HAVE_FFTW3F are ! both defined. ! ! * aclocal.m4 (OCTAVE_CHECK_LIBRARY): New optional arguments for ! language and doc string. ! ! 2009-08-13 Jaroslav Hajek ! ! * aclocal.m4 (OCTAVE_CHECK_LIBRARY): Prepend to LIBS rather than ! replacing. ! ! 2009-08-13 John W. Eaton ! ! * Makeconf.in (QHULL_CPPFLAGS, QHULL_LDFLAGS, CURL_CPPFLAGS, ! CURL_LDFLAGS): New variables. ! (do-subst-config-vals): Substitute QHULL_CPPFLAGS, QHULL_LDFLAGS, ! CURL_CPPFLAGS, and CURL_LDFLAGS ! * configure.in: Use OCTAVE_CHECK_LIBRARY to check for qhull and ! curl libraries. Print QHULL_CPPFLAGS, QHULL_LDFLAGS, ! CURL_CPPFLAGS, and CURL_LDFLAGS in the summary. Print glpk ! library warning at time of check. Use AC_MSG_WARN, not ! AC_MSG_RESULT, to print fftw warning. ! * aclocal.m4 (OCTAVE_CHECK_LIBRARY): New macro. ! (AC_CHECK_QHULL_VERSION, AC_CHECK_QHULL_OK): ! Implement with modern autoconf macros. ! ! 2009-08-11 John W. Eaton ! ! * configure.in: Define and substitute TERM_LIBS instead of ! TERMLIBS. Don't add TERM_LIBS to LIBS. Define DL_LIBS instead of ! adding them to LIBS. Display TERM_LIBS and DL_LIBS in summary ! reporrt. ! * aclocal.m4 (OCTAVE_ENABLE_READLINE): Define and substitute ! READLINE_LIBS instead of LIBREADLINE. Don't add readline library ! to LIBS. Display READLINE_LIBS in summary report. Temporarily ! add TERM_LIBS to LIBS when checking for readline library. ! * Makeconf.in, mkoctfile.cc.in, mkoctfile.in: ! Use READLINE_LIBS instead of LIBREADLINE and TERM_LIBS instead of ! TERMLIBS. Substitute DL_LIBS. ! (do-subst-config-vals): Substitute TERM_LIBS and DL_LIBS. ! ! 2009-08-11 John W. Eaton ! ! * configure.in: Generate separate variables for HDF5_LIBS and ! ZLIB_LIBS. Don't add them to LIBS. Add separate entries for them ! in the summary report. ! * Makeconf.in (HDF5_LIBS, ZLIB_LIBS): New variables. ! (do-subst-config-vals): Substitute AMD_LIBS, ARPACK_LIBS, ! CAMD_LIBS, CCOLAMD_LIBS, CHOLMOD_LIBS, COLAMD_LIBS, CXSPARSE_LIBS, ! FT2_LIBS, GRAPHICS_LIBS, HDF5_LIBS, OPENGL_LIBS, PTHREAD_CFLAGS, ! PTHREAD_LIBS, QHULL_LIBS, QRUPDATE_LIBS, REGEX_LIBS, UMFPACK_LIBS, ! ZLIB_LIBS. ! ! 2009-08-05 John W. Eaton ! ! * acx_pthread.m4: New file. ! * configure.in: Include it and invoke ACX_PTHREAD macro. Print ! ptrhead flags and libraries in summary output. ! * Makeconf.in (PTHREAD_CFLAGS, PTHREAD_LIBS): Substitute values. ! (ALL_CFLAGS, ALL_CXXFLAGS): Include $(PTHREAD_CFLAGS). ! ! 2009-08-03 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2009-07-27 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2009-07-22 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2009-07-16 John W. Eaton ! ! * Makeconf.in (MAGICK_LIBS): Don't pass --ldflags to $(MAGICK_CONFIG). ! ! 2009-07-09 John W. Eaton ! ! * configure.in: Don't use system strftime on MinGW systems. ! ! 2009-06-29 Jaroslav Hajek ! ! * NEWS: Correct info. ! * NEWS: Update. ! ! 2009-06-26 Michael Goffioul ! ! * aclocal.m4: Add pkg.m4 macros. ! * configure.in (HAVE_FREETYPE): New defined variable. ! * configure.in: Add configure tests for Fontconfig detection. ! ! 2009-06-23 Robert T. Short ! ! * run-octave.in: Exclude @-files from path. Remove CVS exclusions. ! ! 2009-06-19 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2009-06-15 Jaroslav Hajek ! ! * NEWS: Update. ! ! 2009-06-02 Jaroslav Hajek ! ! * examples/@polynomial/subsref.m: Handle ':' correctly. ! * examples/@polynomial/subsasgn.m: Ditto. ! ! 2009-06-11 Jaroslav Hajek ! ! * example/@polynomial/numel.m: New method. ! * example/@polynomial/Makefile.in: Include it. ! ! 2009-05-22 Benjamin Lindner ! ! * mkoctfile.cc.in: mask MSVC specific linker flags for mex output ! ! 2009-06-02 Robert T. Short ! ! * examples/@polynomial: Fix end method for zero based indexing. ! ! 2009-06-02 Jaroslav Hajek ! ! * examples/@polynomial/subsref.m: Allow chained subscripts, ! fix behavior according to docs. ! * examples/@polynomial/subsasgn.m: Allow chained subscripts, ! fix behavior according to docs. ! ! 2009-06-02 Robert T. Short ! ! * examples/@polynomial: Remove tabs from all functions so ! documentation looks right. Fix a bunch of methods ! that didn't work. Add a method referred to in the docs ! that didn't exist. ! ! 2009-05-26 John W. Eaton ! ! * src/dirfns.cc (Fpathsep): Allow path separator to be set. ! ! 2009-03-17 Thomas Weber ! ! * configure.in: fix typo with regards to termios.h ! ! 2009-05-25 Jaroslav Hajek ! ! * examples/@FIRfilter/Makefile.in: New file. ! * examples/Makefile.in: Include it. ! * configure.in: Ditto. ! ! 2009-05-24 Benjamin Lindner ! ! * configure.in: (SCRIPTS_EXE_SUFFIX) Define to ".exe" for ! mingw32 compilation (similar to msvc) ! ! 2009-05-24 Robert T. Short ! ! * examples/@FIRfilter: added FIRfilter class example. ! ! 2009-05-22 Marco Atzeri ! ! * src/sysdep.cc: Removed CYGWIN_init ! ! 2009-05-21 Marco Atzeri ! * configure.in: Correct my mistake in cygwin SHLBINPRE SHLBIN ! ! 2008-05-21 Michael Goffioul ! ! * aclocal.m4 (AC_CHECK_QHULL_OK): Do not use -lm under ! Windows systems. ! * configure.in: Add -luser32 to LIBS under Windows. ! ! * configure.in (SCRIPTS_EXE_SUFFIX): New substituted ! variable. Define to ".exe" for MSVC compilation. ! * octMakefile.in (SCRIPTS_EXE_SUFFIX): New variable. ! (DISTFILES): Add mkoctfile.cc.in, octave-config.cc.in and ! octave-bug.cc.in. ! (SHELL_SCRIPTS): Use SCRIPTS_EXE_SUFFIX. ! (mkoctfile.cc, mkoctfile$(EXEEXT)): New build rules. ! (octave-config.cc, octave-config$(EXEEXT)): Likewise. ! (octave-bug.cc, octave-bug$(EXEEXT)): Likewise. ! (install, install-strip, uninstall): Use SCRIPTS_EXE_SUFFIX. ! (maintainer-clean, distclean): Remove mkoctfile.[cc|o|exe], ! octave-config.[cc|o|exe] and octave-bug.[cc|o|exe]. ! (clean): Remove mkoctfile$(EXEEXT), octave-config$(EXEEXT), ! octave-bug$(EXEEXT) and the corresponding object files. ! ! 2009-05-07 Rik ! ! * README.mirrors: Remove invalid mirror sites which no longer exist. ! ! 2009-05-07 John W. Eaton ! ! * configure.in, mkoctfile.in, mkoctfile.cc.in, octave-bug.in, ! octave-bug.cc.in: Eliminate last remnants of f2c goop. ! ! 2009-05-07 Marco Atzeri ! ! * configure.in, Makeconf.in: (SHLPRE): Rename from SHLLIBPRE. ! ! 2009-05-05 Jaroslav Hajek ! ! * configure.in: Include the whole 3.x g++ series as problematic. ! * Makefile: Don't mention that g++-3.x might work. ! ! 2009-05-04 John W. Eaton ! ! * configure.in: Put -lftgl ahead of $FT2_LIBS, and $FT2_LIBS ahead ! of $OPENGL_LIBS. ! ! 2009-05-04 Peter O'Gorman ! ! * aclocal.m4 (OCTAVE_HAVE_C99_VSNPRINTF): New macro. ! * configure.in: Use it. ! ! * configure.in (rs6000-ibm-aix* | powerpc-ibm-aix*): Set ! library_path_var to LIBPATH. ! (hppa*-hp-hpux*): Set library_path_var to SHLIB_PATH. ! (ia64*-hp-hpux*): New case for shared library variables. ! ! * configure.in: Provide decls for exp2, round, and tgamma if they ! are missing. ! ! 2009-04-11 David Bateman ! ! * NEWS: Add new graphics functions. ! ! 2009-04-05 John W. Eaton ! ! * configure.in: Use AC_USE_SYSTEM_EXTENSIONS instead of ! AC_GNU_SOURCE, AC_AIX, AC_MINIX, and AC_ISC_POSIX. ! Require Autoconf 2.60. ! ! * configure.in: Add -Wformat to extra warning flags. Add ! -Wconversion to strict warning flags. ! ! 2009-04-02 John W. Eaton ! ! * Makeconf.in (do-script-install): Use $(INSTALL_DATA) instead of ! mv to install PKG_ADD file. ! ! 2009-04-02 Marco Atzeri ! ! * Makeconf.in (do-subst-script-vals): Use SHLLIBPRE instead of ! LIBPRE for names for shared libraries. ! ! 2009-03-28 Marco Atzeri ! ! * configure.in: For cygwin, set LIBPRE=lib and clear CPICFLAG, ! CXXPICFLAG, and FPICFLAG. ! ! 2009-03-27 Jaroslav Hajek ! ! * aclocal.m4 (OCTAVE_CMATH_FUNC): Add missing AC_LANG_POP. ! * configure.in: Enclose string in quotes. ! ! 2009-03-23 Jaroslav Hajek ! ! * NEWS: More updates. ! ! 2009-03-20 Jaroslav Hajek ! ! * aclocal.m4 (OCTAVE_CMATH_FUNC): New macro. ! * configure.in: Use it. ! ! 2009-03-09 John W. Eaton ! ! * run-octave.in: Use doc-cache instead of DOC for doc cache file. ! * configure.in: Likewise. ! ! * configure.in (--enable-extra-warning-flags): New option to ! control extra compiler warning flags. ! (--enable-strict-warning-flags): Rename from --enable-picky-flags. ! (GXX_STRICT_FLAGS): Remove -Wenum-clash from the list. ! ! 2009-03-08 Sᅵren Hauberg ! ! * NEWS: Mention 'histc'. ! ! 2009-03-07 John W. Eaton ! ! * config.guess, config.sub: Update from FSF sources. ! ! 2009-02-25 John W. Eaton ! ! * configure.in (doc_cache_file): New default variable ! * Makeconf.in (@doc_cache_file, do-subst-default-vals): Substitute it. ! ! 2009-02-24 John W. Eaton ! ! * run-octave.in (DOCFILE): New variable. Pass --doc-cache-file ! option to Octave. ! ! * configure.in: Copy Makefile to build directory if not building ! in srcdir. ! ! 2009-02-24 Thorsten Meyer ! ! * configure.in: AC_SUBST ac_config_files. ! * Makeconf.in (config_opts): Define CONFIG_SUBDIRS variable. ! * Makefile: Add make target for configuration files. ! * octMakefile.in: Add make targets for configuration files, ! config.status and configure. ! ! * Makefile.in: Rename to Makefile. ! * configure.in: Remove Makefile from list of autogenerated ! configuration files. ! * octMakefile.in: Remove references to Makefile.in, add Makefile ! to list of CONF_DISTFILES. ! * octMakefile.in (maintainer-clean distclean): Don't delete Makefile. ! ! 2009-02-17 Benjamin Lindner ! ! * configure.in: Check for mkstemps on MinGW platform ! (HAVE_MKSTEMPS): Define if mkstsmps is avilable in libiberty. ! ! 2009-02-17 Jaroslav Hajek ! ! * NEWS: Mention cummin and cummax ! ! 2009-02-17 John W. Eaton ! ! * aclocal.m4 (OCTAVE_PROG_GPERF): Don't run gperf. ! ! * Makeconf.in (do-subst-config-vals): Substitute CARBON_LIBS, ! X11_INCFLAGS, and X11_LIBS. ! ! 2009-02-17 Thomas Treichl ! ! * Makeconf.in: Substitute CARBON_LIBS. ! * configure.in: Use CARBON_LIBS instead of LIBS for framework Carbon. ! ! * configure.in: Fix test for X11 if "--without-x" is given. ! ! 2009-02-16 Jaroslav Hajek ! ! * NEWS: Yet more updates. ! ! 2009-02-16 John W. Eaton ! ! * NEWS: Mention command-style parsing changes. More updates. ! ! 2009-02-13 John W. Eaton ! ! * NEWS: Update for release. ! ! 2009-02-11 Thomas Treichl ! ! * aclocal.m4 (OCTAVE_GLUTESSCALLBACK_THREEDOTS): New macro. ! (OCTAVE_OPENGL): Use it in OpenGL check. ! ! 2009-02-11 Ben Abbott ! ! * configure.in: Include FTGLTextureFont.h when FTGL_UPPER_CASE is ! not defined. ! ! 2009-02-11 John W. Eaton ! ! * configure.in (octetcdir): New default value. ! * Makeconf.in (octetcdir): New variable. ! (do-subst-default-vals): Substitute octetcdir. ! * octMakefile.in (install, uninstall): Use $(octetcdir) for NEWS. ! (DIRS_TO_MAKE): Add $(octetcdir) to the list. ! ! 2009-02-10 Rafael Laboissiere ! ! * examples/Makefile.in: Run some clean targets on sub-directory ! @polynomial. ! ! 2009-02-09 John W. Eaton ! ! * examples/Makefile.in (dist): Create subdirs of examples, not scripts. ! ! * examples/@polynomial/Makefile.in (do-mkpkgadd): ! Provide special definition for this directory. ! ! * examples/Makefile.in (EXAMPLE_SOURCES): Delete unused variable. ! (SUBDIRS, DISTSUBDIRS): Don't reset to empty. ! ! 2009-02-08 John W. Eaton ! ! * install-octave.in: Delete. ! * configure.in: Delete AC_CONFIG_COMMANDS macro that was used to ! make install-octave executable. ! ! 2009-02-07 John W. Eaton ! ! * octMakefile.in (all): Display $(prefix) in summary message. ! ! 2009-02-05 John W. Eaton ! ! * aclocal.m4 (OCTAVE_HDF5_HAS_REQUIRED_API): New macro. ! * configure.in: Use it in HDF5 check. ! ! 2009-02-04 Benjamin Lindner ! ! * configure.in: Use separate cases for *-*-mingw* and *-*-cygwin* ! to set variables related to creating shared libraries. ! ! 2009-02-03 Jaroslav Hajek ! ! * aclocal.m4 (AC_CHECK_QHULL_OK): New macro, based on suggestion by ! Petr Mikulik . ! * configure.in: Call it. ! ! 2009-02-01 Thorsten Meyer ! ! * autogen.sh: Remove printing of cvs motd. ! ! 2009-01-30 Marco Atzeri ! ! * configure.in (SHLLIBPRE, SHLBINPRE): Fix definitions for Cygwin. ! (SHLEXT, SHLLIB, SHLBIN, SONAME_FLAGS): Fix definitions for Cygwin ! and MinGW. ! ! 2009-01-30 Benjamin Lindner ! ! * configure.in: Add -lgdi32 to LIBS on *-*-msdosmsvc* and ! *-*-mingw* systems. ! ! 2009-01-29 Thomas Treichl ! ! * aclocal.m4 (OCTAVE_HAVE_FRAMEWORK): Add support for ! --with-framework- and replace "$ac_safe" by "$1". ! * configure.in: Change "have_carbon" with ! "have_framework_carbon". ! ! 2009-01-28 John W. Eaton ! ! * configure.in: Check to see that pcre library has pcre_compile ! function. ! ! * configure.in (SHLLIBPRE, SHLBINPRE): New variables. AC_SUBST them. ! (*-*-cygwin*): Set LIBPRE and SHLBINPRE to cyg and SHLLIBPRE to lib. ! Use SHLLIBPRE and SHLLIB in definition of SONAME_FLAGS. ! (*-*-msdosmsvc): Make SHLBINPRE and SHLLIBPRE empty. ! Adjust definition of SONAME_FLAGS for SHLLIBPRE. ! ! * Makeconf.in (SHLLIBPRE, SHLBINPRE): Substitute new variables here. ! From Marco Atzeri . ! ! 2009-01-27 Benjamin Lindner ! ! * configure.in: Add of -lregex to REGEX_LIBS. ! ! 2009-01-26 Thomas Treichl ! ! * aclocal.m4 (OCTAVE_HAVE_FRAMEWORK): New macro. ! * configure.in: Use it. ! ! 2009-01-22 John W. Eaton ! ! * configure.in (AH_BOTTOM): Define OCTAVE_USE_OS_X_API if ! __APPLE__ and __MACH__ are defined. ! ! 2009-01-22 Jaroslav Hajek ! ! * configure.in: Fix qrupdate warning message. ! ! 2009-01-21 John W. Eaton ! ! * Makeconf.in: Substitute X11_INCFLAGS and X11_LIBS. ! * configure.in: Use AC_PATH_X to check for X11 header files and ! libraries. ! ! * THANKS, Announce: Remove obsolete files. ! * octMakefile.in (DISTFILES): Remove THANKS from the list. ! ! 2009-01-20 John W. Eaton ! ! * configure.in: Check for fstat. ! ! 2008-12-23 David Bateman ! ! * configure.in: Add configuration test for ARPACK. ! * Makeconf.in (ARPACK_LIBS): Add variable with location of ARPACK ! library. ! * NEWS: Document that eigs and svds were moved to Octaave. ! ! 2008-10-29 Jaroslav Hajek ! ! * configure.in: Remove the OCTAVE_LOCAL_BUFFER stuff (moved to ! liboctave). ! ! 2008-12-04 Jaroslav Hajek ! ! * NEWS: Document more new features. ! ! 2008-12-03 John W. Eaton ! ! * config.guess, config.sub: Update from FSF sources. ! ! 2008-11-18 John W. Eaton ! ! * mkoctfile.cc.in, octave-bug.cc.in: Style fixes. ! ! 2008-11-13 Ben Abbott ! ! * src/graphics.h.in: Add props screensize & screenpixelsperinch. ! ! 2008-11-08 Thorsten Meyer ! ! * Makeconf.in: export PERL variable for use in scripts/mkdoc ! ! 2008-10-30 David Bateman ! ! * NEWS: Minor update to document improved indexing code. ! ! 2008-10-23 Jason Riedy ! ! * configure.in: Take care to use FT2_CFLAGS when checking ! for FTGL headers. ! ! 2008-10-22 David Bateman ! ! * examples/@polynomial: Move examples/polynomial here. ! * examples/@polynomial/Makefile.in: Update for new location. ! * examples/Makefile.in: Ditto. ! * configure.in: Change locate of examples/@polynomial makefile ! in AC_CONFIG_FILES. ! ! 2008-10-16 David Bateman ! ! * NEWS: Minor update. ! ! 2008-10-15 David Bateman ! ! * examples/polynomial/display.m, examples/polynomial/double.m, ! examples/polynomial/end.m, examples/polynomial/get.m, ! examples/polynomial/mtimes.m, examples/polynomial/plot.m, ! examples/polynomial/polynomial.m, ! examples/polynomial/polynomial_superiorto.m, ! examples/polynomial/polyval.m, examples/polynomial/set.m, ! examples/polynomial/subsasgn.m, examples/polynomial/subsref.m: ! New example files for a sample OOP class. ! * examples/polynomial/Makefile.in: Add a makefile for this new ! directory ! * examples/Makefile.in: Reference the new subdirectory here. ! * configure.in: Add the new makefile to AC_CONFIG_FILES. ! ! 2008-10-01 Jaroslav Hajek ! ! * configure.in: Check for sizeof (long double) and randl. ! ! 2008-09-30 Jaroslav Hajek ! ! * aclocal.m4 (OCTAVE_FAST_INT_OPS): New macro. ! * configure.in: Call OCTAVE_FAST_INT_OPS ! ! 2008-09-08 John W. Eaton ! ! * mkoctfile.cc.in, octave-bug.cc.in, octave-config.cc.in: Style fixes. ! ! 2008-09-08 Michael Goffioul ! ! * mkoctfile.cc.in, octave-bug.cc.in, octave-config.cc.in: New files. ! ! 2008-08-28 David Bateman ! ! * NEWS: Update for some of the graphics changes ! ! 2008-08-11 Jaroslav Hajek ! ! * acx_blas_f77_func.m4, acx_lapack.m4: Update macros from ! . ! ! 2008-08-07 John W. Eaton ! ! * aclocal.m4 (OCTAVE_STRING_NPOS): Delete. ! * configure.in (OCTAVE_STRING_NPOS): Delete use. ! ! 2008-08-04 John W. Eaton ! ! * Makeconf.in (do-subst-script-vals): Also substitute SED. ! * run-octave.in: Use sed to append : to path elements ! instead of using the find expression "-exec echo '{}':". ! Substitute SED here. ! ! * aclocal.m4: Fail if no usable version of sed is found. ! ! * Makefile.in (header-msg): Mention GNU Make requirement. ! Update GCC version info. ! ! 2008-07-31 John W. Eaton ! ! * octMakefile.in (DISTFILES): Add "missing" to the list. ! ! 2008-07-30 John W. Eaton ! ! * aclocal.m4 (CXX_ABI, OCTAVE_CXX_PREPENDS_UNDERSCORE, ! OCTAVE_PROG_NM): Delete macros. ! * configure.in: Delete uses. ! ! 2008-07-29 Tatsuro MATSUOKA ! ! * aclocal.m4 (OCTAVE_OPENGL): Handle MinGW the same as MSVC. ! ! 2008-07-29 David Bateman ! ! * NEWS.3: Copy from NEWS. ! * NEWS: Initial update in preparation for a 3.2 release. ! ! 2008-07-21 John W. Eaton ! ! * configure.in: If FTGL.h is found, then also include ! FTGLTextureFont.h in test code. ! ! 2008-07-21 Michael Goffioul ! ! * configure.in: Remove GRAPHICS_OPENGL variable. ! ! 2008-07-21 John W. Eaton ! ! * aclocal.m4 (OCTAVE_OPENGL): Fix shell syntax problems. ! Handle HAVE_GL_GL_H and HAVE_OPENGL_GL_H in link test. ! ! * configure.in: Don't define and substitute FLTK_BACKEND_SRC or ! GL_RENDER_SRC. ! (HAVE_FLTK): AC_DEFINE if FLTK is available. ! (HAVE_OPENGL): AC_DEFINE if OpenGL is available. ! ! 2008-07-21 Jaroslav Hajek ! ! * configure.in: Extend FTGL test to test for both ftgl.h and FTGL.h. ! Use HAVE_FTGL_UPPERCASE to indicate the latter (version <= 2.1.2). ! ! 2008-07-19 Rafael Laboissiere ! ! * octMakefile.in (CONF_DISTFILES): Include acx_blas_f77_func.m4 in ! the list. ! ! 2008-07-18 Carlo de Falco ! ! * aclocal.m4: Search for gl.h and glu.h in OpenGL/ as well as in GL/. ! ! 2008-07-18 John W. Eaton ! ! * configure.in: Fix FTGL test to handle either FTGL/ftgl.h or ftgl.h. ! (warn_freetype, warn_ftgl, warn_fltk_config, warn_fltk_opengl): ! New variables. Use these instead of overloading warn_graphics. ! ! 2008-07-17 David Bateman ! ! * configure.in (HAVE_MAGICK): New define for presence of ! GraphicsMagick. ! ! 2008-07-16 Michael Goffioul ! ! * configure.in: Add check for pthread.h. ! ! 2008-07-14 John W. Eaton ! ! * Makeconf.in (MAGICK_CONFIG): Substitute here. ! (MAGICK_INCFLAGS, MAGICK_LIBS): Define using GraphicsMagick++ ! config script. ! (do-subst-config-vals): Include MAGICK_LIBS and MAGICK_INCFLAGS in ! list of substitutions. ! * configure.in: Check for GraphicsMagick++ config script. ! ! 2008-07-10 John W. Eaton ! ! * octMakefile.in (DIRS_TO_MAKE): Delete $(localfcnfilepath) and ! $(localoctfilepath) from the list. Include $(datadir) ! $(localfcnfiledir) $(localapifcnfiledir) $(localverfcnfiledir) ! $(localoctfiledir) $(localapioctfiledir) $(localveroctfiledir) ! $(imagedir) and $(localapiarchlibdir) in the list. ! ! * configure.in: Look for FTGL/ftgl.h instead of FTGL/FTGL.h. Also ! look for ftgl.h. ! ! 2008-07-10 Michael Goffioul ! ! * configure.in: new substituted variables GL_RENDER_SRC and ! FLTK_BACKEND_SRC. ! ! 2008-06-20 Michael Goffioul ! ! * Makeconf.in: Add GRAPHICS_CFLAGS substitution. ! * configure.in: Add checks for hypotf and _hypotf. ! ! 2008-06-12 Jaroslav Hajek ! ! * configure.in: Move LIBS and CXXFLAGS restoration into ! the proper block. ! ! 2008-06-05 John W. Eaton ! ! * configure.in: Add FT2_CFLAGS to XTRA_CXXFLAGS, not CXXFLAGS. ! Don't add FT2_LIBS to LIBS. ! Don't generate src/graphics/Makefile, src/graphics/Makerules, ! src/graphics/opengl/Makefile, or src/graphics/fltk_backend/Makefile. ! ! * Makeconf.in (FT2_LIBS, GRAPHICS_LIBS): Substitute here. ! ! 2008-06-04 Shai Ayal ! ! * configure.in: Use AC_TRY_LINK in FTGL test. ! Include FT_CFLAGS in CXXFLAGS. ! ! * aclocal.m4 (OCTAVE_OPENGL): Note FIXME for apple. ! ! * configure.in: Check for FTGL library. ! ! * configure.in: Remove check for Fl/glu.h header. ! ! * aclocal.m4 (AC_CHECK_FT2): New macro to check for freetype2. ! ! * configure.in: Check for FLTK and corresponding compiler flags. ! ! 2008-06-04 Michael Goffioul ! ! * configure.in: Double-quote warn_graphics variable. ! ! * aclocal.m4 (OCTAVE_OPENGL): New function to detect OpenGL ! headers and libraries. ! * configure.in (OCTAVE_OPENGL): Use it. ! (OCTGRAPHICS_DLL_DEFS): New define to build ! graphics-related DLL. ! (AC_CONFIG_FILES): Generate additional files for graphics ! related libraries. ! * Makeconf.in (OPENGL_LIBS): New variable. ! ! * .hgignore: Also ignore build-.*, configure, and autom4te.cache. ! ! 2008-05-22 Jaroslav Hajek ! ! * mk-opts.pl (emit_print_function, emit_set_function, ! emit_show_function): Support float type. ! ! 2008-05-20 David Bateman ! ! * configure.in (AC_CHECK_FUNCS): Add expm1, lgammaf, lgammaf_r, ! log1pf and tgammaf. Also check for libfftw3f. ! ! 2008-04-09 Rafael Laboissiere ! ! * example/octave.desktop.in: Drop the Encoding key, which is ! deprecated by the FreeDesktop standard. ! ! 2008-04-04 John W. Eaton ! ! * Makeconf.in (do-check-m-sources): New macro. ! ! 2008-04-03 Tatsuro MATSUOKA ! ! * README.Cygwin: Update. ! ! 2008-04-02 Jaroslav Hajek ! ! * acx_blas_f77_func.m4: New file. ! * configure.in: Call ACX_BLAS_WITH_F77_FUNC instead of ACX_BLAS. ! Supply a warning for incompatible Fortran/BLAS configuration. ! ! 2008-03-25 Jaroslav Hajek ! ! * configure.in: Check for expm1 and log1p functions. ! ! 2008-03-25 John W. Eaton ! ! * configure.in: Check for trunc. ! ! 2008-03-21 David Bateman ! ! * configure.in (HAVE_AMD): Complete test for presence of amd. ! ! 2008-03-18 David Bateman ! ! * configure.in (AC_CHECK_FUNCS): Also check lgamma_r. ! ! 2008-03-11 David Bateman ! ! * run-octave.in: Fix typo. ! ! 2008-02-21 John W. Eaton ! ! * examples/Makefile.in (install install-strip): Ignore errors ! installing octave.desktop file. ! ! 2008-02-15 John W. Eaton ! ! * configure.in (*-*-freebsd*, *-*-openbsd*): Don't set SH_LD. ! ! 2008-02-14 John W. Eaton ! ! * examples/fortdemo.cc: Don't check f77_exception_encountered. ! ! 2008-02-06 John W. Eaton ! ! * examples/Makefile.in (octave.desktop): ! Use mv instead of move-if-change. ! ! 2008-02-05 John W. Eaton ! ! * dlfcn/Makefile.in: Unconditionally include $(MAKEDEPS). ! Mark $(MAKEDEPS) as .PHONY targets if omit_deps is true. ! ! 2008-01-12 John W. Eaton ! ! * aclocal.m4: Call AC_SUBST instead of AC_DEFINE_UNQOTED for ! GNUPLOT_BINARY. ! * aclocal.m4, configure.in: Use GNUPLOT instead of GNUPLOT_BINARY ! as variable name. ! * Makeconf.in (GNUPLOT): Substitute. ! (do-subst-config-vals): Substitute GNUPLOT. ! ! 2007-12-21 John W. Eaton ! ! Version 3.0.0 released. ! ! 2007-12-13 John W. Eaton ! ! * octMakefile.in (octave-bug, octave-config, mkoctfile): ! Also depend on $(top_srcdir)/src/version.h. ! ! 2007-12-10 John W. Eaton ! ! * acx_blas.m4: Use -lsunperf, not -xlic_lib=sunperf. ! From Jim Langston . ! ! 2007-12-06 John W. Eaton ! ! * configure.in (*-*-darwin*): Only set CPICFLAG, CXXPICFLAG, and ! FPICFLAG to "" on powerpc systems. ! ! 2007-12-04 John W. Eaton ! ! * octave-bug.in (LIBDLFCN): Delete variable and all uses. ! * Makeconf.in (LIBDLFCN, DLFCN_INCFLAGS): Likewise. ! * configure.in (DLFCN_DIR, LIBDLFCN, DLFCN_INCFLAGS): Likewise. ! Don't generate dlfcn/Makefile. ! * octMakefile.in (DISTSUBDIRS): Delete dlfcn from the list. ! (SUBDIRS): Don't substitute DLFCN_DIR here. ! ! 2007-12-03 Moritz Borgmann ! ! * Makeconf.in, aclocal.m4, configure.in: Check for find program, ! preferably gfind (on non-GNU systems). Need a sane find for ! run-octave script. ! * run-octave.in: Use FIND and AWK as determined by configure. ! ! 2007-12-03 John W. Eaton ! ! * configure.in: If available, include in test for ! sigset_t and sig_atomic_t. ! ! 2007-11-30 Moritz Borgmann ! ! * configure.in: Also check for sunmath.h. ! ! 2007-11-26 David Bateman ! ! * PROJECTS: condest now implemented. ! ! * NEWS: Document the TeX interpreter mode and its limitations with ! gnuplot 4.0. ! ! * NEWS: Document the use of "colormap gmap40" to workaround some ! gnuplot 4.0 colormap issues. ! ! 2007-11-14 John W. Eaton ! ! * configure.in: Don't create Makefrag.bsd. ! ! 2007-11-14 Joseph P. Skudlarek ! ! * configure.in: Rework pcre.h tests to work with autoconf 2.59, ! and avoid explicit pcre/pcre.h check by using pcre-config. ! ! 2007-11-13 Joseph P. Skudlarek ! ! * octave-bug.in: Try mailx, then Mail, then /usr/ucb/mail, then ! /bin/mail. ! ! 2007-11-13 John W. Eaton ! ! * configure.in: Only define HAVE_PCRE_H if has the ! definitions we need. Likewise for . ! ! 2007-11-10 John W. Eaton ! ! * configure.in: Delete AC_SUBST_FILE(f77_rules_frag). ! ! 2007-11-07 John W. Eaton ! ! * configure.in: Also check for pcre/pcre.h. ! ! 2007-11-01 John W. Eaton ! ! * configure.in: Delete BLAS library calling convention ! compatibility check. ! ! 2007-10-31 John W. Eaton ! ! * README.binary-dist: Delete. ! ! * README.MachTen: Delete. ! * octMakefile.in (DISTFILES): Remove it from the list. ! ! 2007-10-30 David Bateman ! ! * examples/addtwomatrices.cc, examples/celldemo.cc, ! examples/firstmexdemo.c, examples/fortdemo.cc, examples/fortsub.f, ! examples/funcdemo.cc, examples/globaldemo.cc, ! examples/helloworld.cc, examples/mycell.c, examples/myfeval.c, ! examples/myfunc.c, examples/mypow2.c, examples/mysparse.c, ! examples/mystring.c, examples/mystruct.c, examples/paramdemo.cc, ! examples/stringdemo.cc, examples/structdemo.cc, ! examples/unwinddemo.cc: Doc fixes for small book format. ! ! 2007-10-26 Michael Goffioul ! ! * Makeconf.in: Remove UNSETCOMSPEC trick. ! ! 2007-10-25 John W. Eaton ! ! * configure.in (AH_BOTTOM): Define OCTAVE_EMPTY_CPP_ARG here. ! ! 2007-10-24 John W. Eaton ! ! * octMakefile.in (maintainer-clean distclean): No need to delete ! Makefrag.f77 and Makerules.f77. ! * Makeconf.in: Include rules for making .o files from .f files ! instead of substituting @f77_rules_frag@. ! * configure.in): Delete handling of --with-f2c and --with-f77 ! options. No need to call OCTAVE_CHECK_EXCLUSIVE_WITH_OPTIONS. ! Delete all special cases for f2c. ! * aclocal.m4 (OCTAVE_CHECK_EXCLUSIVE_WITH_OPTIONS): Delete macro. ! ! * FLEX.patch: Delete obsolete file. ! * octMakefile.in (DISTFILES): Remove it from the list. ! ! * acx_blas.m4: Use "-Wl,-framework -Wl,vecLib" instead of ! just "-framework vecLib" in test for Mac OS X test. ! ! * configure.in, aclocal.m4: Avoid AC_TRY_EVAL. ! ! * aclocal.m4 (OCTAVE_STRPTIME_BROKEN): New macro. ! * configure.in: Use it. ! ! 2007-10-23 John W. Eaton ! ! * configure.in: When checking for -lf2c, set F2CLIBS instad of ! FLIBS, then set FLIBS to $F2CLIBS just before printing the summary. ! Check for BLAS library calling convention compatibility. ! ! 2007-10-17 John W. Eaton ! ! * configure.in: Delete checks for METIS. ! ! 2007-10-12 John W. Eaton ! ! * mk-opts.pl (parse_input): Allow comment lines beginning with #. ! ! * Change copyright notices in all files that are part of Octave to ! GPLv3 or any later version. ! ! * COPYING: Update to GPLv3. ! ! * run-octave.in: List args explicitly in exec command. ! ! 2007-10-11 John W. Eaton ! ! * config.guess, config.sub: Update from FSF sources. ! ! 2007-10-10 Kim Hansen ! ! * run-octave.in: Use $args. Eliminate "if [ -n "$args" ]" conditional. ! ! 2007-10-09 John W. Eaton ! ! * gdbinit.in: Delete. ! * octMakefile.in (DISTFILES): Remove it from the list. ! (.gdbinit): Delete rule. ! (maintainer-clean, distclean): No need to delete .gdbinit. ! ! 2007-10-09 Kim Hansen ! ! * run-octave.in: Use gdb with --args, not .gdbinit. ! ! 2007-10-08 John W. Eaton ! ! * emacs/octave-hlp.el, emacs/octave-inf.el, emacs/octave-mod.el: ! Sync with GNU Emacs versions. ! * emacs/octave-mod.el: Delete last two args from calls to ! define-abbrev. ! ! 2007-10-06 John W. Eaton ! ! * configure.in: Check for lgamma and tgamma. ! ! 2007-10-04 John W. Eaton ! ! * configure.in (UGLY_DEFS): Delete special case for darwin. ! ! 2007-10-03 John W. Eaton ! ! * aclocal.m4 (OCTAVE_PROG_SED): Also check for \(X\|Y\) style ! regular expression alternation. ! ! 2007-10-01 John W. Eaton ! ! * aclocal.m4 (OCTAVE_CHECK_STRPTIME): Delete. ! * configure.in: Don't use OCTAVE_CHECK_STRPTIME, simply check for ! strptime. ! ! 2007-09-18 Thomas Treichl ! ! * aclocal.m4 (OCTAVE_CHECK_STRPTIME): New macro. ! * configure.in: Use it. ! ! 2007-09-06 John W. Eaton ! ! * configure.in: Avoid broken strptime function on Cygwin systems. ! ! 2007-09-01 David Bateman ! ! * configure.in: AC_SUBST and check the variable TEXINFO_QHULL. ! * Makeconf.in: Use it. ! ! 2007-08-24 David Bateman ! ! * configure.in: Extra Qhull bits. ! ! 2007-08-24 Kim Hansen ! ! * run-octave.in: Use `command` instead of $(command) to accomodate ! brain-dead shells. ! ! 2007-08-24 David Bateman ! ! * configure.in: Probe for the use of Qhull. ! * aclocal.m4 (AC_CHECK_QHULL_VERSION): Macro to check whether ! Qhull needs a version number. ! * Makeconf.in: Add QHULL_LIBS. ! ! 2007-08-23 John W. Eaton ! ! * aclocal.m4 (OCTAVE_PROG_SED): Don't clobber value from environment. ! From: Christian Cornelssen . ! ! 2007-08-23 Thomas Weber ! ! * aclocal.m4 (OCTAVE_PROG_GNUPLOT): Drop check for multiple plot ! windows. ! ! 2007-08-10 Sᅵren Hauberg ! ! * ROADMAP: Update for current sources. ! ! 2007-07-26 John W. Eaton ! ! * configure.in: Also look for glpk/glpk.h. ! ! 2007-07-25 David Bateman ! ! * octMakefile.in, dlfcn/Makefile.in, emacs/Makefile.in, ! examples/Makefile.in, test/Makefile.in: Adjust DISTFILES to allow ! out of tree "make dist" to work. ! ! 2007-07-24 Michael Goffioul ! ! * configure.in (*-*-msdosmsvc): Only add -g to DL_LDFLAGS and ! SH_LDFLAGS if either CFLAGS or CXXFLAGS contains -g. ! ! 2007-07-24 Rafael Laboissiere ! ! * Makeconf.in (RUNTEST): Delete variable substitution. ! (do-subst-config-vals): Don't substitute %OCTAVE_CONF_RUNTEST%. ! ! 2007-07-20 Thomas Treichl ! ! * mkoctfile.in: Fix typo. ! ! 2007-06-25 John W. Eaton ! ! * mk-opts.pl (emit_print_function): Make generated function print ! to ostream (passed as arg) instead of local buffer. Don't call ! print_usage in generated function. ! (emit_options_function): Fix call to print_${class_name} in ! generated to pass octave_stdout as arg. ! ! 2007-06-18 John W. Eaton ! ! * emacs/octave-inf.el (inferior-octave-prompt): Match "octave.bin" ! and "octave.exe" in addition to "octave". ! ! 2007-06-15 John W. Eaton ! ! * run-octave.in: Use simple string concatenation instead of ! sprintf in AWK program. ! ! 2007-06-13 Michael Goffioul ! ! * configure.in: Set NO_OCT_FILE_STRIP=true for msdosmsvc. ! ! * aclocal.m4 (OCTAVE_HDF5_DLL): Include return statements in ! function body used for test. ! ! * configure.in: Check for CXSparse with C++. ! ! * Makeconf.in (do-subst-config-vals): Also substitute ${libdir} as ! OCTAVE_CONF_LIBDIR. ! * mkoctfile.in: Set DEFAULT_LIBDIR and substitute OCTAVE_HOME. ! Define LIBDIR. Use LIBDIR to set DEFAULT_LFLAGS. ! ! 2007-06-12 Benjamin Lindner ! ! * configure.in: For mingw, add -lws2_32 -lkernel32 to LIBS and set ! _USE_MATH_DEFINES same as for msvc. ! ! 2007-06-06 Michael Goffioul ! ! * configure.in: Check for utime.h and sys/utime.h headers. ! Check for utime, _chmod, _utime, and _utime32 functions. ! ! 2007-06-03 David Bateman ! ! * configure.in (AC_CONFIG_FILES): Add src/mxarray.h ! * examples/mycell.c, examples/mypow2.c, examples/mysparse.c, ! examples/mystring.c, examples/mystruct.c: Use mwSize and mwIndex, ! rather than int for indexing to conform to new mex API. ! ! 2007-06-01 John W. Eaton ! ! * configure.in (*-*-darwin*): Fix quoting and construction of ! MKOCTFILE_DL_LDFLAGS. ! * mkoctfile.in (DEFAULT_BINDIR, EXEEXT): New substitutions. ! * Makeconf.in (MKOCTFILE_DL_LDFLAGS): Delete. ! (do-subst-config-vals): Do configure substitution of ! MKOCTFILE_DL_LDFLAGS directly here instead of using intermediate ! variable. Quote this sed substitution with ' instead of ". ! ! 2007-05-29 Steven Mestdagh ! ! * configure.in: Delete spurious "break" in fftw3 check. ! Use separate case for SH_LD and SH_LDFLAGS on openbsd. ! ! 2007-05-22 John W. Eaton ! ! * Makeconf.in (do-script-uninstall): Also remove directory. ! ! 2007-05-22 Thomas Weber ! ! * NEWS.2, README.MSVC, WWW/NEWS-2.html: Fix typos. ! ! 2007-05-16 David Bateman ! ! * PROJECTS: Update. ! ! 2007-04-27 John W. Eaton ! ! * examples/Makefile.in (SOURCES): Add all example files to the list. ! ! * octave-config.in: Don't set PREFIX to OCTAVE_HOME if OCTAVE_HOME ! is empty. ! ! 2007-04-27 David Bateman ! ! * examples/mycell.c, examples/mypow2.c, examples/mystring.c, ! examples/myprop.c: New example mex files. ! ! 2007-04-26 Alex Zvoleff ! ! * configure.in: Don't report ARPACK libraries in summary. ! ! 2007-04-25 David Bateman ! ! * Makeconf.in (do-subst-texinfo-vals): Also substitute abs_top_srcdir. ! ! * examples/myfunc.c, exampples/paramdemo.cc: New files ! * examples/mystruct.c, examples/mysparse.c, fortdemo.cc: Fix a few ! formatting issues when included in texinfo files. ! ! 2007-04-25 John W. Eaton ! ! * Makeconf.in (do-subst-texinfo-vals): Also substitute top_srcdir. ! ! * examples/addtwomatrices.cc, examples/celldemo.cc, ! examples/fortdemo.cc, examples/funcdemo.cc, ! examples/globaldemo.cc, examples/helloworld.cc, ! examples/stringdemo.cc, examples/structdemo.cc, ! examples/unwinddemo.cc, examples/fortsub.f, ! examples/firstmexdemo.c: New files. ! * examples/Makefile.in (SOURCES): Add them to the list. ! ! 2007-04-20 John W. Eaton ! ! * configure.in: Don't check for ARPACK. ! ! 2007-03-29 Rafael Laboissiere ! ! * emacs/octave-mod.el: Drop LOADPATH, INFO_FILE, and ! INFO_PROGRAM from octave-variables. ! ! * examples/info-emacs-octave-help, examples/info-emacs-info: ! Use gnuclient, not gnudoit. ! ! 2007-03-27 John W. Eaton ! ! * octMakefile.in (dist, conf-dist): Use ln, not $(LN_S). ! * emacs/Makefile.in (dist): Likewise. ! * examples/Makefile.in (dist): Likewise. ! * dlfcn/Makefile.in (conf-dist): Likewise. ! ! * config.guess, config.sub: Update from FSF sources. ! ! 2007-03-23 John W. Eaton ! ! * examples/make_int.cc (octave_integer::clone): Return type is ! pointer to octave_base_value, not octave_value. ! (Fdoit): Rep is reference to octave_base_value, not octave_value. ! ! 2007-03-21 Paul Kienzle ! ! * octMakefile.in (all): Print message after successful build. ! ! 2007-03-05 John W. Eaton ! ! * configure.in (GLPK_PRE_4_14): Rename from GLPK_PRE_4_15. ! ! 2007-02-27 John W. Eaton ! ! * Makeconf.in (do-script-uninstall): Remove PKG_ADD. ! * examples/Makefile.in (uninstall): Don't remove files listed in ! $(SCRIPTS) from $(srcdir). ! Remove www.octave.org-octave.desktop, not octave.desktop. ! ! * run-octave.in (run-octave.in): Use --no-initial-path. ! Rename to qargs to args. Use $args not "$args" when invoking Octave. ! Try harder to get quoting right when passing args to Octave. ! ! 2007-02-26 John W. Eaton ! ! * octMakefile.in (DISTDIRS): Eliminate variable. ! ! 2007-02-26 Michael Goffioul ! ! * octMakefile.in, dlfcn/Makefile.in, emacs/Makefile.in: ! Use $(LN_S) instead of ln or ln -s. ! ! * octMakefile.in (dist): Use -9 instead of --best with gzip/bzip2. ! ! 2007-02-21 John W. Eaton ! ! * configure.in: Also warn about missing functionality for ! --without-glpk or --without-curl options. Print curl library ! warning in summary. ! ! 2007-02-20 Rafael Laboissiere ! ! * configure.in: Check for versions of GLPK prior to 4.15 and set ! the GLPK_PRE_4_15 macro accordingly. ! ! 2007-02-16 John W. Eaton ! ! * mkoctfile.in: Use OCTAVE_PREFIX, not OCTAVE_CONF_PREFIX, in sed ! substitutions. ! * octave-conf.in: Define DATAROOTDIR, not DATADIR, from ! OCTAVE_DATAROOTDIR. ! From Michael Goffioul . ! ! 2007-02-15 John W. Eaton ! ! * octave-config.in (DATAROOTDIR): Include in list of vars. ! Substitute OCTAVE_HOME. ! ! * Makeconf.in (MKOCTFILE_INCFLAGS, MKOCTFILE_LFLAGS): Delete vars. ! (do-subst-config-vals): Don't substitute them. ! Also substitute OCTAVE_CONF_INCLUDEDIR, OCTAVE_CONF_OCTINCLUDEDIR, ! OCTAVE_CONF_OCTLIBDIR, and OCTAVE_CONF_PREFIX here. ! * mkoctfile.in (OCTAVE_CONF_OCTINCLUDEDIR, OCTAVE_CONF_INCLUDEDIR, ! OCTAVE_CONF_OCTLIBDIR): Substitute values and perform OCTAVE_HOME ! substitution here. ! (DEFAULT_INCFLAGS, DEFAULT_LFLAGS): New variables. Use them to ! set default values for INCFLAGS and LFLAGS. ! ! 2007-02-09 John W. Eaton ! ! * mkoctfile.in: Handle .a files. ! ! 2007-02-08 John W. Eaton ! ! * octMakefile.in (all): Depend on dist-info-files. ! (dist): Delete dist-info-files dependency. ! ! * configure.in: Rewrite if !( X ) ... fi as if X; true; else ... fi. ! Also check for _glp_lpx_simplex. ! ! 2007-02-07 John W. Eaton ! ! * Makeconf.in (do-script-install): Use $(FCN_FILES) for list of ! files instead of $(FCN_FILES_NO_DIR). Use basename to get ! filename with no directory part. ! ! 2007-02-07 Michael Goffioul ! ! * aclocal.m4 (OCTAVE_HDF5_DLL): New macro. ! * configure.in: Use it. ! ! 2007-02-05 John W. Eaton ! ! * configure.in: Check for realpath function. ! ! * demo.m: Delete obsolete file. ! ! 2007-01-29 Michael Goffioul ! ! * configure.in (*-*-msdosmsvc): Set NO_OCT_FILE_STRIP to true. ! ! 2007-01-24 John W. Eaton ! ! * octMakefile.in (install): Install NEWS file. ! (uninstall): Remove it. ! ! 2007-01-08 David Bateman ! ! * configure.in: Replace sparsesuite with suitesparse to match ! upstream name. ! ! 2006-12-06 Michael Goffioul ! ! * acx_blas.m4, acx_lapack.m4: Handle f2c calling convention. ! ! 2006-12-05 John W. Eaton ! ! * configure.in: Don't check for strptime on *-apple-darwin* systems. ! ! 2006-11-28 John W. Eaton ! ! * mkoctfile.in: Construct default output file from basename of ! input file name. ! ! 2006-11-28 David Bateman ! ! * configure.in: Check for sparse header files in the sparsesuite ! sub-directory. In the cholmod tests, include the camd libraries, as ! this might be a dependency for cholmod. ! ! 2006-11-15 John W. Eaton ! ! * run-octave.in: Don't forget LD_PRELOAD if there are args. ! ! 2006-11-14 John W. Eaton ! ! * configure.in: If warning message is printed, print additional ! final note about missing libraries. ! ! 2006-11-13 John W. Eaton ! ! * run-octave.in: Substitute liboctinterp, liboctave, and libcruft. ! Use them to set LD_PRELOAD. ! * Makeconf.in (do-subst-script-vals): Also substitute ! liboctinterp, liboctave, and libcruft. ! ! 2006-11-13 Rafael Laboissiere ! ! * mkoctfile.in: Add -Wl,... options to ldflags, not pass_on_flags. ! ! 2006-11-11 John W. Eaton ! ! * examples/Makefile.in (octave.desktop): ! Use $(simple-move-if-change-rule) here. ! ! * Makeconf.in (simple-move-if-change-rule, ! (builddir-move-if-change-rule): New macros. ! ! 2006-11-11 Sᅵren Hauberg ! ! * examples/Makefile.in (uninstall): Add missing semicolon. ! ! 2006-11-09 John W. Eaton ! ! * examples/Makefile.in (uninstall): New target. ! ! 2006-11-09 Michael Goffioul ! ! * configure.in (OCTAVE_LOCAL_BUFFER): Don't access first element ! if size is 0. ! ! 2006-11-06 Michael Goffioul ! ! * configure.in (CRUFT_DLL_DEFS, OCTAVE_DLL_DEFS, OCTINTERP_DLL_DEFS): ! Also rename in AC_SUBST calls. ! * Makeconf.in (ALL_CFLAGS): Use DLL_CDEFS instead of XTRA_CDEFS. ! (ALL_CXXFLAGS): Use DLL_CDEFS instead of XTRA_CXXDEFS. ! ! 2006-11-03 John W. Eaton ! ! * configure.in (CRUFT_DLL_DEFS): Rename from XTRA_CRUFT_DEFS. ! (OCTAVE_DLL_DEFS): Rename from XTRA_OCTAVE_DEFS. ! (OCTINTERP_DLL_DEFS): Rename from XTRA_OCTINTERP_DEFS. ! (XTRA_CRUFT_LINK_FLAGS): Rename from XTRA_CRUFT_LINK_DEPS. ! ! 2006-11-02 John W. Eaton ! ! * README.Cygwin: Rename from README.Windows. ! * README.MSVC: New file. ! * README.Windows: Point to the README.Cygwin and README.MSVC files. ! ! 2006-11-01 John W. Eaton ! ! * configure.in: Check for PCRE macros we use. Warn if regex ! library is not found. Print hdf5, zlib, umfpack, colamd, ccolamd, ! cholmod, and cxsparse warnings when we detect the problems. ! ! * run-octave.in: Handle quoted args properly in exec call? ! ! 2006-10-29 John W. Eaton ! ! * run-octave.in: Handle spaces in directory names. ! ! 2006-10-28 Michael Goffioul ! ! * configure.in (AH_BOTTOM): If using MSVC, define __WIN32__ before ! other #ifdefs that use it. ! ! 2006-10-27 John W. Eaton ! ! * configure.in (AH_BOTTOM): Move DLL defs to ! libcruft/misc/oct-dlldefs.h and include it here. ! ! * aclocal.m4 (OCTAVE_PROG_TEXI2PDF): Require OCTAVE_PROG_TEXI2DVI. ! If texi2pdf is not found but texi2dvi is available, set TEXI2PDF ! to "$TEXI2DVI --pdf". ! (OCTAVE_PROG_GHOSTSCRIPT): Also check for gswin32 on Windows systems. ! ! * Makeconf.in (UNSETCOMSPEC): Define if COMSPEC is defined. ! From Michael Goffioul . ! ! 2006-10-26 John W. Eaton ! ! * configure.in (OCTAVE_EXPORT, OCTAVE_IMPORT): New macros ! (CRUFT_API, OCTAVE_API, OCTINTERP_API): Define using OCTAVE_EXPORT ! and OCTAVE_IMPORT. ! ! 2006-10-26 Michael Goffioul ! ! * configure.in (*-*-msdosmsvc): Set library_path_var. ! Check for _WIN32_WINNT >= 0x0403. Define _USE_MATH_DEFINES if it ! is needed. ! (XTRA_CRUFT_LINK_DEPS): New variable. Substitute it. ! ! * aclocal.m4 (OCTAVE_MKDIR_TAKES_ONE_ARG): Perform check with C++ ! compiler. ! ! 2006-10-26 John W. Eaton ! ! * aclocal.m4 (OCTAVE_PROG_PAGER): Also check for more.com for ! *-*-mingw* and *-*-msdosmsvc systems. ! ! * configure.in (F77_TOLOWER, F77_APPEND_UNDERSCORE, ! F77_APPEND_EXTRA_UNDERSCORE): New variables. Substitute them. ! * Makeconf.in (F77_TOLOWER, F77_APPEND_UNDERSCORE, ! F77_APPEND_EXTRA_UNDERSCORE): Substitute here. ! (do-subst-f77-mangling): New macro. ! ! * emacs/octave-inf.el (inferior-octave-has-built-in-variables): ! New defvar. ! (inferior-octave-resync-dirs): Check to see whether Octave has ! built-in variables and set inferior-octave-has-built-in-variables. ! Check inferior-octave-has-built-in-variables to decide whether to ! send commands that set built-in variables or call functions to ! change Octave's behavior. ! Send "disp (pwd ())" to Octave instead of just "pwd". ! (inferior-octave-startup): Send "more off" to Octave instead of ! "page_screen_output = 0". ! ! 2006-10-25 John W. Eaton ! ! * configure.in (RETSIGTYPE_IS_VOID): Define if ! "$ac_cv_type_signal" = "void". ! ! * configure.in (*-*-msdosmsvc): Don't check for strftime. ! ! * configure.in (INCLUDE_DEPS): Set and substitute. ! (DEPEND_FLAGS, DEPEND_EXTRA_SED_PATTERN): Rearrange way these are set. ! ! * Makeconf.in (INCLUDE_DEPS): Substitute here, and use to set default ! value for omit_deps. ! ! 2006-10-25 Michael Goffioul ! ! * Makeconf.in (ALL_CFLAGS): Include $(XTRA_CDEFS) in the list. ! (ALL_CXXFLAGS): Include $(XTRA_CXXDEFS) in the list. ! ! * configure.in (XTRA_CRUFT_DEFS, XTRA_OCTAVE_DEFS, ! XTRA_OCTINTERP_DEFS): Define and substitute. ! (AH_BOTTOM) [_MSC_VER]: include definitions for CRUFT_API, ! OCTAVE_API, and OCTINTERP_API. ! ! * configure.in (*-*-msdosmsvc): Add "-EHs -MD" to CXXFLAGS. ! Add "-MD" to CFLAGS. Add "-MD" to CONFLIB_ARG when checking for ! libf2c. ! ! * configure.in (*-*-msdosmsvc): Generate replacement unistd.h. ! * octMakefile.in (maintainer-clean, distclean): Also remove unistd.h. ! ! * configure.in (*-*-msdosmsvc): Default sepchar is ';'. ! Define default LIBS (link against kernel32 and ws2_32). ! Force having LoadLibrary API. ! ! * configure.in (AH_BOTTOM) [_MSC_VER]: Define __WIN32__. ! ! 2006-10-25 John W. Eaton ! ! * mkoctfile.in (OCTAVE_VERSION): No need to quote replacement here. ! ! 2006-10-24 John W. Eaton ! ! * run-octave.in: Only modify .gdbinit if -g option is given. ! Use $(/bin/pwd) instead of $(pwd). ! ! 2006-10-23 John W. Eaton ! ! * emacs/Makefile.in (SOURCES, DISTFILES, install, install-strip, ! uninstall): Handle otags name change. ! * emacs/octave-tags, emacs/octave-tags.1: Rename from otags. ! ! 2006-10-17 John W. Eaton ! ! * configure.in: Check for _isnan, _finite, and _copysign. ! ! 2006-10-17 Michael Goffioul ! ! * aclocal.m4 (OCTAVE_CXX_PREPENDS_UNDERSCORE, OCTAVE_CXX_ABI): Use ! $ac_objext instead of assuming .o. ! (OCTAVE_PROG_GNUPLOT): Handle *-*-msdos the same as *-*-cygwin* ! and *-*-mingw32*. ! ! 2006-10-17 John W. Eaton ! ! * configure.in: Check for curl_easy_escap instead of ! curl_global_init. ! ! 2006-10-13 Michael Goffioul ! ! * configure.in [_MSC_VER]: Disable some warnings. ! (*-*-msdos): New case for shared libraries. ! (LIBPRE): New variable. ! * Makeconf.in: Substitute it. ! ! 2006-10-12 John W. Eaton ! ! * configure.in (AH_BOTTOM): Don't unconditionally #define ! OCTAVE_HAVE_POSIX_FILESYSTEM followed by a conditional #undef ! OCTAVE_HAVE_POSIX_FILESYSTEM since autoconf is commenting out the ! #undef. ! ! 2006-10-09 John W. Eaton ! ! * Makeconf.in (CURL_LIBS, do-subst-config-vals): ! Substitute CURL_LIBS. ! ! * configure.in: Check for libcurl. ! ! 2006-10-04 John W. Eaton ! ! * Makeconf.in (library_path_var): Substitute value from configure. ! (do-subst-script-vals): Add library_path_var to the list. ! * run-octave.in: Substitute value here. ! ! 2006-10-03 John W. Eaton ! ! * configure.in: Warn if PCRE library is not found. ! ! * configure.in: Include CAMD_LIBS, AMD_LIBS, and REGEX_LIBS in the ! summary. ! ! 2006-10-03 David Bateman ! ! * configure.in: Check for libcamd. ! * Makeconf.in (CAMD_LIBS): New variable. ! ! 2006-09-27 John W. Eaton ! ! * mkoctfile.in [--mex]: Include -I. in incflags. ! From Sᅵren Hauberg . ! ! 2006-09-26 John W. Eaton ! ! * configure.in (AC_CONFIG_FILES): ! Remove doc/interpreter/images/Makefile from the list. ! ! 2006-09-16 John W. Eaton ! ! * octave-bug.in: Delete LIBPLPLOT variables. ! ! 2006-09-15 John W. Eaton ! ! * configure.in: Check for locale.h and setlocale. ! ! 2006-09-13 Christopher Hulbert ! ! * run-octave.in (LD_LIBRARY_PATH): Also append LD_LIBRARY_PATH ! from environment. ! ! 2006-08-25 Alexander Barth ! ! * mkoctfile.in: Accept .f90 and .F90 as Fortran files. ! Pass $incflags and $defs to Fortran compiler. ! ! 2006-08-18 John W. Eaton ! ! * Makeconf.in (do-subst-texinfo-vals): Don't substitute ! %CANONICAL_HOST_TYPE%. ! ! 2006-08-17 John W. Eaton ! ! * aclocal.m4 (OCTAVE_PROG_GHOSTSCRIPT, OCTAVE_PROG_MAKEINFO, ! OCTAVE_PROG_TEXI2DVI, OCTAVE_PROG_TEXI2PDF): New macros. ! * configure.in: Use them. Maybe print warnings in summary. ! ! 2006-07-27 John W. Eaton ! ! * Makeconf.in (localapiarchlibdir): Substitute it here. ! (do-subst-default-vals): Include it in the sed command here. ! * configure.in (localapiarchlibdir): New variable. ! * octave-config.in: Don't quote %VAR% values. ! (LOCALAPIARCHLIBDIR): New variable. ! ! 2006-07-27 Thomas Weber ! ! * octave-config.in (OCTAVE_FCNFILEPATH, OCTAVE_IMAGEPATH, ! OCTAVE_LOCALFCNFILEPATH, OCTAVE_LOCALOCTFILEPATH): Delete variables. ! ! 2006-07-26 John W. Eaton ! ! * mkoctfile.in (Options): Accept -g. ! ! * configure.in: Check for exp2 and log2. ! ! 2006-07-25 David Bateman ! ! * mysparse.c: New file. ! ! 2006-06-27 John W. Eaton ! ! * octMakefile.in (maintainer-clean distclean): Remove ! $(SHELL_SCRIPTS) instead of naming files individually. ! Also remove .gdbinit. ! ! 2006-06-21 John W. Eaton ! ! * examples/myfeval.c, examples/myfevalf.f, examples/myhello.c, ! examples/myset.c, examples/mystruct.c: New files. ! ! * mkoctfile.in: New option, --mex. ! ! 2006-06-13 John W. Eaton ! ! * configure.in (--enable-64): Include "(EXPERIMENTAL)" in help text. ! Also set warn_64_bit if no suitable type for octave_idx_type is found. ! If --enable-64 is specified, print warning in summary message. ! ! 2006-06-12 John W. Eaton ! ! * aclocal.m4 (OCTAVE_CXX_BROKEN_REINTERPRET_CAST): New macro. ! * configure.in: Use it. ! * AH_BOTTOM: Conditionally define FCN_PTR_CAST here. ! ! 2006-06-08 John W. Eaton ! ! * Makeconf.in (do-subst-default-vals): Also substitute ! OCTAVE_DATAROOTDIR. ! ! 2006-06-06 John W. Eaton ! ! * Makeconf.in (datarootdir): New variable. ! ! * acx_lapack.m4 (acx_lapack_ok): ! Use AC_LINK_IFELSE+AC_LANG_PROGRAM instead of AC_TRY_LINK ! ! * aclocal.m4: Use AC_RUN_IFELSE+AC_LANG_SOURCE instead of AC_TRY_RUN. ! ! * acx_blas.m4, acx_lapack.m4, configure.in, aclocal.m4: ! Use AS_HELP_STRING instead of AC_HELP_STRING. ! ! * configure.in: Outside of other macros, use AC_MSG_NOTICE instad ! of AC_MSG_RESULT. Check for sys_siglist using method from ! autoconf manual. ! ! * configure.in, Makeconf.in: octMakefile.in: Delete plplot cruft. ! ! * configure.in, aclocal.m4: ! Use AC_LINK_IFELSE+AC_LANG_PROGRAM instead of AC_TRY_LINK ! Use AC_COMPILE_IFELSE+AC_LANG_PROGRAM instead of AC_TRY_COMPILE. ! Use AS_HELP_STRING consistently with AC_ARG_WITH and AC_ARG_ENABLE. ! ! 2006-05-23 John W. Eaton ! ! * configure.in: Check for inttypes.h and stdint.h. ! ! 2006-05-19 John W. Eaton ! ! * mk-opts.pl (emit_print_function, emit_options_function): ! Generate print_usage calls with no args. ! ! 2006-05-11 John W. Eaton ! ! * configure.in (localfcnfilepath, localoctfilepath, fcnfilepath, ! imagepath): Delete variables. ! * Makeconf.in (localfcnfilepath, localoctfilepath, fcnfilepath, ! imagepath): Likewise. ! (do-subst-default-vals): Don't substitute them. ! ! * run-octave.in: Pass --image-path to octave. ! Use find to recursively add directories to loadpath. ! Fixup set args command in .gdbinit here. ! ! 2006-05-09 John W. Eaton ! ! * octMakefile.in (abs_top_srcdir): Substitute value here. ! ! 2006-05-05 David Bateman ! ! * Makeconf.in (do-subst-scripts-vals): Also replace ! abs_top_srcdir. ! * run-octave.in: Define top_srcdir as an absolute path. ! ! 2006-05-04 John W. Eaton ! ! * octMakefile.in (SHELL_SCRIPTS): Include run-octave in the list. ! ! 2006-05-02 John W. Eaton ! ! * NEWS: New contents for 3.0. ! * NEWS.2: Move contents of NEWS here. ! ! 2006-04-29 John W. Eaton ! ! * run-octave.in: Execute $builddir/src/octave, not src/octave. ! ! 2006-04-26 Thomas Weber ! ! * configure.in: Fix apiversion vs. api_version typo. ! ! 2006-04-25 John W. Eaton ! ! * Makefile.in (TARGETS): Include run-octave and .gdbinit in the list. ! * Makeconf.in (subst-script-vals): New macro. ! * octMakefile.in (run-octave, .gdbinit): New rules. ! (DISTFILES): Include run-octave.in and gdbinit.in in the list. ! ! 2006-04-17 John W. Eaton ! ! * mk-opts.pl (emit_print_function): Emit code that uses ! std::ostringstream directly. ! ! 2006-04-13 John W. Eaton ! ! * configure.in (CONST_CAST, DYNAMIC_CAST, REINTERPRET_CAST, ! STATIC_CAST): Delete. ! ! 2006-04-12 John W. Eaton ! ! * configure.in: If using g++, also add -Wold-style-cast to CXXFLAGS. ! ! 2006-03-28 John W. Eaton ! ! * configure.in: Don't check for MPI libraries. ! ! 2006-03-27 John W. Eaton ! ! * configure.in: Downcase ac_cv_header_mach_o_dyld_h. ! From Martin Costabel . ! ! 2006-03-22 John W. Eaton ! ! * Makeconf.in: (TEXINFO_COLAMD, TEXINFO_CHOLMOD, TEXINFO_UMFPACK): ! Substitute here. ! (do-subst-texinfo-vals): New macro definition. ! ! * configure.in: Don't substitute OCTAVE_VERSION, OCTAVE_HOSTTYPE, ! or OCTAVE_HOME. ! (AC_CONFIG_FILES): Remove doc/conf.texi from the list. ! ! 2006-03-21 John W. Eaton ! ! * configure.in: Only print warnings for missing functionality in ! summary message. ! ! 2006-03-14 John W. Eaton ! ! * mk-opts.pl (emit_print_function): Buffer extra message here and ! pass to print_usage. ! ! 2006-03-09 John W. Eaton ! ! * Makeconf.in (do-subst-default-vals): Also substitute OCTAVE_RELEASE. ! ! 2006-03-08 David Bateman ! ! * configure.in: Update the test for CXSPARSE for new upstream release. ! (OCTAVE_VERSION, OCTAVE_HOSTTYPE, OCTAVE_HOME,TEXINFO_UMFPACK, ! TEXINFO_COLAMD, TEXINFO_CHOLMOD): New variables for texinfo ! documentation. ! (AC_CONFIG_FILES): Add doc/interpreter/images/Makefile and ! doc/conf.texi. ! ! 2006-03-02 Kurt Hornik ! ! * emacs/octave-mod.el (octave-indent-for-comment): Make the code ! match the comments. ! ! 2006-03-02 John W. Eaton ! ! * octMakefile.in (ALL_SUBDIRS): Delete. ! (SUBDIRS): Include src here. ! (SHELL_SCRIPTS): New variable. ! (all): Depend on $(SHELL_SCRIPTS) and $(SUBDIRS) with libcruft and ! liboctave filtered out. ! (src): Depend on liboctave. ! (liboctave): Depend on libcruft. ! ! 2006-02-09 David Bateman ! ! * configure.in: Fix for probe of colamd, cccolamd and metis. New test ! for the presence of cxsparse. ! Makeconf.in: Include CXSPARSE_LIBS. ! ! 2006-01-19 John W. Eaton ! ! * configure.in: Use $WITH_PCRE instead of $HAVE_PCRE in shell test. ! ! 2006-01-14 John W. Eaton ! ! * configure.in: Check for mach-o/dyld.h, not Mach-O/dyld.h. ! From Martin Costabel . ! ! 2006-01-13 John W. Eaton ! ! * Makeconf.in (do-mkpkgadd): New macro. ! ! 2005-12-14 David Bateman ! ! * Makeconf.in: Remove OCTAVE_PROG_RUNTEST. ! * alocal.m4: Remove OCTAVE_PROG_RUNTEST. ! ! * Makeconf.in: New tests of regex and pcre. ! ! 2005-12-13 John W. Eaton ! ! * examples/Makefile.in (install install-strip): Fix typo. ! From William Poetra Yoga Hadisoeseno . ! ! 2005-12-05 Kurt Hornik ! ! * emacs/octave-inf.el (inferior-octave-startup): ! Force a non-empty string for secondary prompt PS2. ! ! 2005-12-02 John W. Eaton ! ! * emacs/octave-mod.el (octave-electric-space): Don't indent ! comments or strings if octave-auto-indent is nil. ! ! 2005-11-30 John W. Eaton ! ! * examples/Makefile.in (install install-strip): Install images and ! desktop file. ! ! 2005-11-29 Rafael Laboissiere ! ! * emacs/octave-mod.el: Ensure that key bindings for ! octave-mark-defun and backward-kill-word work in both XEmacs and ! GNU Emacs. ! ! 2005-11-28 John W. Eaton ! ! * configure.in: Check for uname. ! ! 2005-11-21 John W. Eaton ! ! * examples/Makefile.in (DISTFILES): Don't include octave.desktop here. ! (distclean): Remove octave.desktop here. ! (maintainer-clean): Not here. ! ! 2005-11-01 John W. Eaton ! ! * examples/Makefile.in (distclean, maintainer-clean): ! Also remove octave.desktop. ! From Quentin Spencer . ! ! 2005-11-01 Quentin Spencer ! ! * octMakefile.in (CONF_DISTFILES): Delete acx_include_dirs.m4 from ! the list. ! ! 2005-10-28 John W. Eaton ! ! * configure.in (AC_ARG_WITH(cholmod, ...)): Fix typo. ! From Quentin Spencer and ! Andy Adler . ! ! 2005-10-26 John W. Eaton ! ! * configure.in, aclocal.m4: Don't quote "yes". ! ! * configure.in: Print warning messages for umfpack, colamd, ! ccolamd, and cholmod as we are searching. Avoid multiple ! definitions of message strings. ! ! * aclocal.m4 (OCTAVE_UMFPACK_SEPERATE_SPLIT): ! Use new method of finding umfpack.h. ! * configure.in: Use AC_CHECK_HEADERS instead of ! ACX_CHECK_HEADER_IN_DIRS. ! (AC_CONFIG_FILES): Delete liboctave/oct-sparse.h from the list. ! ! * acx_include_dirs.m4: Delete. ! ! 2005-10-26 Arno J. Klaassen ! ! * configure.in [*-*-freebsd*] (SH_LDFLAGS): Properly quote. ! (RLD_FLAG): Set. ! ! 2005-10-23 David Bateman ! ! * configure.in (OCTAVE_UMFPACK_SEPERATE_SPLIT): Check for metis ! separately. ! * PROJECTS: Remove completed sparse matrix tasks. ! ! 2005-10-17 Paul Kienzle ! ! * octave.test/system/system.exp: rmdir no longer prints a ! message if the directory does not exist. ! ! * octave.test/system/mk-rm-dir-1.m: mkdir/rmdir return 1 ! on success and 0 on failure. ! ! 2005-10-17 John W. Eaton ! ! * configure.in (F77_FFLOAT_STORE_FLAG): ! Check for -ffloat-store option for Fortran compiler and set ! F77_FLOAT_STORE_FLAG if it works. ! * Makeconf.in: Substitute it here. ! (do-subst-config-vals): Substitute OCTAVE_CONF_F77_FLOAT_STORE_FLAG. ! ! 2005-10-14 John W. Eaton ! ! * aclocal.m4 (OCTAVE_PROG_PYTHON): New macro. ! * configure.in: Use it. ! * Makeconf.in (PYTHON): Substitute it. ! ! 2005-10-05 David Bateman ! ! mkoctfile.in: allow -idirafter argument. ! ! 2005-09-23 John W. Eaton ! ! * examples/Makefile.in (install install-strip): ! Conditionally install octave.desktop. ! (IMAGE_FILES, IMAGE_FILES_NO_DIR): New macros. ! (DISTFILES): Include IMAGE_FILES in list. ! (install install-strip): Install image file. ! ! * aclocal.m4 (OCTAVE_PROG_DESKTOP_FILE_INSTALL): New macro ! * configure.in: Use it. ! * Makeconf.in: Substitute DESKTOP_FILE_INSTALL. ! ! * octave.desktop.in: New file. From Sᅵren Hauberg . ! * examples/Makefile.in (SOURCES): Add it to the list. ! (octave.desktop): New target. ! (all): Depend on octave.desktop. ! ! 2005-09-22 John W. Eaton ! ! * aclocal.m4 (OCTAVE_PROG_PERL): New macro. ! * configure.in: Use it. ! * Makeconf.in (PERL): Substitute it. ! ! * config.guess, config.sub: Update from FSF sources. ! ! 2005-09-19 David Bateman ! ! * octMakefile.in (LN_S): Change to DESTDIR before LN_S to avoid ! lack of symlinks under mingw. ! ! 2005-09-15 John W. Eaton ! ! * oct-sparse.h.in: Move to liboctave. ! * octMakefile.in (CONF_DISTFILES): Delete it from the list. ! (maintainer-clean, distclean, install, install-strip, uninstall): ! Omit rules for oct-sparse.h. ! * configure.in: Substitute liboctave/oct-sparse.h, not oct-sparse.h. ! ! 2005-09-15 David Bateman ! ! * acx_include_dirs.m4 (AC_CHECK_HEADER_IN_DIRS): Define new macro. ! * oct-sparse.h.in: New AC_CONFIG_FILE. ! * configure.in: (AC_CHECK_HEADER_IN_DIRS): Use macro. ! (AMD_LIBS, COLAMD_LIBS, CCOLAMD_LIBS, CHOLMOD_LIBS): Probe for ! these sparse library in addition to UMFPACK. ! (UMFPACK_INCLUDE, AMD_INCLUDE, COLAMD_INCLUDE, CCOLAMD_INCLUDE): ! AC_SUBST into oct-sparse.h. ! (LIBGLOB): Probe for external glob/fnmatch, define LIBGLOB. ! (sepchar): Define path seperation character in system dependent ! manner. Use it with OCTAVE_SET_DEFAULT. ! (SEPCHAR, SEPCHAR_STR): Dpend on sepchar. ! (DL_LDFLAGS): Define for cygwin and mingw. ! (-lwsock32): Add to LIBS. ! (loadlibrary_api): Set for mingw/cygwin and autoconf test appears ! broken. ! * Makeconf.in: Don't use ";" as sed seperation to avoid confusion ! with sepchar. ! (LIBGLOB, AMD_LIBS, COLAMD_LIBS, CCOLAMD_LIBS, CHOLMOD_LIBS, ! sepchar): Substitute. ! * octMakefile.in: (CONF_DISTFILES): Add acx_include_dirs.m4 and ! oct-sparse.h.in ! (oct-sparse.h): Include in install and clean directives ! ! 2005-08-31 Pascal A. Dupuis ! ! * emacs/octave-inf.el (inferior-octave-startup): Call ! inferior-octave-resync-dirs here. ! ! 2005-07-14 John W. Eaton ! ! * configure.in (SH_LDFLAGS): Add -Wl,--enable-auto-image-base for ! Cygwin and MinGW. ! ! 2005-06-14 John W. Eaton ! ! * configure.in (AH_BOTTOM): Also define GCC_ATTR_DEPRECATED. ! ! 2005-06-02 John W. Eaton ! ! * Makeconf.in (do-subst-default-vals): Substitute ! ${localstartupfiledir}, not ${localstartupfile} (which is undefined). ! ! 2005-05-16 David Bateman ! ! * configure.in: Change UMFPACK_LONG_IDX to IDX_TYPE_LONG. ! ! 2005-05-04 John W. Eaton ! ! * configure.in (AC_CHECK_LIB($zlib_lib, ...)): Check for ! gzclearerr instead of deflate. ! ! 2005-05-02 John W. Eaton ! ! * configure.in (AC_ARG_WITH(umfpack)): List -lumfpack ahead of -lamd. ! From Dmitri A. Sergatskov . ! ! 2005-04-29 David Bateman ! ! * configure.in: Add UMFPACK_LONG_IDX ! ! 2005-04-21 John W. Eaton ! ! * configure.in (AC_CONFIG_FILES): Remove install-octave from the list. ! (AH_BOTTOM): Define SIZEOF_OCTAVE_IDX_TYPE. ! ! 2005-04-14 John W. Eaton ! ! * mkoctfile.in: Only perform link step if we have some object files. ! If only -v or --version is supplied, print version info and exit. ! ! 2005-04-08 John W. Eaton ! ! * octMakefile.in (maintainer-clean distclean): ! Remove install-octave from the list of files to remove. ! (install-octave.in): Delete file. ! (DISTFILES): Remove it from the list. ! ! * Initial merge of 64-bit changes from Clinton Chee: ! ! 2005-04-07 John W. Eaton ! ! * configure.in (--enable-64): Make default disabled. ! ! 2005-04-06 John W. Eaton ! ! * mk-opts.pl (emit_show_function, emit_set_functions, ! emit_print_function): Also accept "octave_idx_type" and ! "Array". ! ! 2005-04-01 John W. Eaton ! ! * Makeconf.in (USE_64_BIT_IDX_T): Substitute value. ! (do-subst-config-vals): Add to list of substitutions. ! ! * configure.in (AC_CONFIG_FILES): Perform substitutions on ! liboctave/oct-types.h too. ! Handle --enable-64. ! ! 2005-04-06 David Bateman ! ! * configure.in: Split the HDF5 and zlib detection code, so that zlib ! can be used for compressed load/save in the absence of HDF5. ! ! * Makeconf.in: Define UMFPACK_LIBS. ! ! * Configure.in: Slightly alter the UMFPACK detection code so that it ! correctly detects cblas bindings or not. ! ! 2005-03-22 John W. Eaton ! ! * Makeconf.in (GLPK_LIBS): Substitute value. ! (do-subst-config-vals): Add to list of substitutions. ! ! * configure.in: Check for glpk. ! ! * emacs/octave-mod.el (octave-abbrev-table): Omit fifth and sixth ! arguments from define-abbrev for compatibility with some older ! versions of Emacs. ! ! 2005-03-21 John W. Eaton ! ! * octave-bug.in: Try harder to find default pager (use code ! similar to that used for finding default editor). ! ! 2005-03-17 Shan G. Smith ! ! * configure.in: Move check for -lumfpack to after check for blas. ! ! 2005-03-17 John W. Eaton ! ! * configure.in: If first check for -lumfpack fails try again with ! -lcblas as an additional library. ! ! * configure.in: Change defaults to enable shared libraries and ! dynamic linking and disable static libraries. ! ! 2005-03-15 John W. Eaton ! ! * octMakefile.in (DISTFILES): Remove texi2dvi from the list. ! ! * emacs/octave-inf.el, emacs/octave-mod.el, emacs/octave-hlp.el: ! Import changes from Emacs. ! ! 2005-03-14 Rafael Laboissiere ! ! * emacs/octave-mod.el (octave-end-keywords): Omit "end" from the list. ! (octave-reserved-words): Include "end" here. ! (octve-block-match-alist): Don't include "end" here. ! ! 2005-03-14 John W. Eaton ! ! * configure.in: Check for umfpack/umfpack.h instead of just umfpack.h. ! ! 2004-06-22 David Bateman ! ! * configure.in: Check for UMFPACK library and header files. ! ! 2005-03-14 John W. Eaton ! ! * configure.in: Also print a warning if HDF5 library is not found. ! ! 2005-03-10 John W. Eaton ! ! * mkoctfile.in: Accept -R DIR. ! ! 2005-03-09 John W. Eaton ! ! * examples/Makefile.in (bin-dist): Delete target. ! (BINDISTFILES): Delete variable. ! * emacs/Makefile.in: Likewise. ! ! * octMakefile.in (VERSION, ARCH, binary-dist): Delete targets. ! (XBINDISTFILES, BINDISTFILES, BINDISTSUBDIRS): Delete variables. ! ! 2005-03-04 John W. Eaton ! ! * configure.in (GXX_PICKY_FLAGS): Don't include ! -Wmissing-prototypes or -Wstrict-prototypes. ! ! 2005-03-02 John W. Eaton ! ! * aclocal.m4 (OCTAVE_CC_FLAG, OCTAVE_CXX_FLAG, OCTAVE_F77_FLAG): ! Use AC_LINK_IFELSE instead of AC_TRY_LINK. ! ! * configure.in (OCTAVE_LOCAL_BUFFER): Use < T > instead of . ! From Clinton Chee . ! ! 2005-03-01 John W. Eaton ! ! * configure.in (AC_CONFIG_FILES): Remove libcruft/odessa/Makefile ! from the list. ! ! 2005-03-01 Todd Neal ! ! * examples/make_int.cc: DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA now ! takes three arguments. ! ! * octMakefile.in (SUBDIRS, CLEANSUBDIRS): ! Remove @GLOB_DIR@ from the list. ! ! 2005-02-28 John W. Eaton ! ! * octMakefile.in (DISTDIRS): Remove glob from the list. ! (dist): No need to clean up in glob subdirectory. ! * glob: Delete directory. ! * Makeconf.in (GLOB_INCFLAGS, LIBGLOB): Delete. ! (do-subst-config-vals): Don't substitute them. ! (INCFLAGS): Remove $(GLOB_INCFLAGS) from the list. ! * configure.in: Don't test for glob or fnmatch. ! ! 2005-02-22 Shan G. Smith ! ! * mkoctfile.in: If not linking, then use output file name ! specified with -o. ! ! 2005-02-21 John W. Eaton ! ! * texi2dvi: Delete our private version. ! ! * Makeconf.in (MAKEINFO): Define. ! (TEXI2DVI): Define as texi2dvi, not $(top_srcdir)/texi2dvi. ! ! 2005-02-09 John W. Eaton ! ! * configure.in: Check for canonicalize_file_name and resolvepath. ! ! 2005-02-02 John W. Eaton ! ! * config.guess, config.sub: Update from FSF sources. ! ! 2005-01-18 John W. Eaton ! ! * octave-bug.in: Try harder to find default editor (stolen from ! bashbug). ! ! 2004-12-17 John W. Eaton ! ! * configure.in: Use AC_GNU_SOURCE. ! ! 2004-12-17 Orion Poplawski ! ! * configure.in: Also check for signbit decl. ! ! 2004-12-03 John W. Eaton ! ! * aclocal.m4 (OCTAVE_PROG_GPERF): Check with -L C++, not -L ANSI_C. ! * Makefile.in (header-msg): Change recommended gperf version to ! 3.0.1 or more recent. ! ! 2004-11-12 John W. Eaton ! ! * Back off on -ffloat-store until we decide whether it is really ! necessary. ! ! 2004-11-11 John W. Eaton ! ! * (OCTAVE_PROG_GNUPLOT): Don't set GNUPLOT_BINARY before calling ! AC_CHECK_PROGS(GNUPLOT_BINARY, ...). ! ! * configure.in: Use it to see if the C, C++, and Fortran compilers ! accept -ffloat-store. ! * aclocal.m4 (OCTAVE_F77_FLAG): New macro. ! ! 2004-09-08 John W. Eaton ! ! * configure.in (GXX_PICKY_FLAGS): Remove -fno-nonnull-objects. ! (GCC_PICKY_FLAGS): Remove -Wnested-externs -Wid-clash-31. ! From Quentin Spencer . ! ! * configure.in (GCC_PICKY_FLAGS): Remove -Winline. ! ! 2004-09-07 John W. Eaton ! ! * configure.in: Check for round. ! ! 2004-06-22 David Bateman ! ! * configure.in: Use -Wl,-Bsymbolic for MKOCTFILE_DL_LDFLAGS on ! GNU/Linux systems but not for SH_LDFLAGS. ! ! 2004-04-22 John W. Eaton ! ! * configure.in: Add -Wl,-Bsymbolic to SH_LDFLAGS for GNU/Linux ! systems. From Fredrik Lingvall . ! ! * mkoctfile.in: Allow -Wx,option style options to be passed to the ! compiler. From Al Niessner . ! ! 2004-04-06 John W. Eaton ! ! * configure.in: Delete code for --with-ieee754. ! Use OCTAVE_IEEE754_DATA_FORMAT. ! ! * aclocal.m4 (OCTAVE_IEEE754_DATA_FORMAT): New macro, based on ! configure.in code for HAVE_IEEE754_COMPLIANCE. ! ! 2004-04-06 David Bateman ! ! * configure.in : add the option --with-ieee754 and use it to define ! HAVE_IEEE754_COMPLIANCE ! ! 2004-04-02 David Bateman ! ! * configure.in: Warn about g++ 2.9x versions. ! ! 2004-04-01 John W. Eaton ! ! * octMakefile.in (dist): Also make bz2 file and compute md5 ! checksums of both gz and bz2 files. ! ! 2004-03-04 John W. Eaton ! ! * configure.in: No longer accept --with-g77 (it is still possible ! to use --with-f77=g77). ! ! 2004-03-03 John W. Eaton ! ! * configure.in: Check for -mieee instead of -mieee-with-inexact. ! ! 2004-02-20 Per Persson ! ! * mkoctfile.in (LINK_DEPS): Include $LDFLAGS in the list. ! ! 2004-02-18 Per Persson ! ! * configure.in (*-*-darwin*): Define SONAME_FLAGS. ! ! 2004-02-16 David Bateman ! ! * configure.in: Test for the presence of FFTW 3.x and use it in ! preference to FFTW 2.x. Define HAVE_FFTW3 ! ! 2004-02-16 John W. Eaton ! ! * mkoctfile.in (LINK_DEPS): Include $LIBS and $RLD_FLAG. ! Use $OCTAVE_LIBS instead of listing libs individually. ! ! 2004-02-14 John W. Eaton ! ! * mkoctfile.in: Delete INCLUDE_LINK_DEPS. Fix help text. ! Always define LINK_DEPS. ! (LINK_DEPS): Also include FLIBS in the list. ! ! * Makeconf.in (INCLUDE_LINK_DEPS): Don't substitute. ! (do-subst-config-vals): Delete INCLUDE_LINK_DEPS. ! * configure.in (INCLUDE_LINK_DEPS): Delete. ! ! * mkoctfile (SH_LD, SH_LDFLAGS): Delete. ! (DL_LD, DL_LDFLAGS): New variables. Use them instead of SH_LD and ! SH_LDFLAGS for creating .oct files. ! Fix help text. ! ! * configure.in (MKOCTFILE_SH_LDFLAGS): Delete. ! (MKOCTFILE_DL_LDFLAGS): New variable, default to DL_LDFLAGS. ! ! * Makeconf.in (do-subst-config-vals): Add DL_LD, DL_LDFLAGS, and ! MKOCTFILE_DL_LDFLAGS to the list of substitutions. ! Delete MKOCTFILE_SH_LDFLAGS. ! ! 2004-02-14 Per Persson ! ! * configure.in (DL_LD, DL_LDFLAGS): New variables, default to ! SH_LD and SH_LDFLAGS, respectively. ! Define independently for SH_LD and SH_LDFLAGS for *-*-darwin* targets. ! * Makeconf.in (DL_LD, DL_LDFLAGS): Substitute them here. ! ! 2004-02-13 John W. Eaton ! ! * Makefile.in (header-msg): Required bison version now 1.31 or later. ! ! 2004-01-29 John W. Eaton ! ! * emacs/octave-mod.el: If line-end-position is not defined, ! provide it as an alias for point-at-eol. ! ! 2004-01-24 John W. Eaton ! ! * emacs/octave-mod.el: If line-beginning-position is not defined, ! provide it as an alias for point-at-bol. ! ! 2004-01-23 John W. Eaton ! ! * configure.in (AH_BOTTOM): ! Define OCTAVE_LOCAL_BUFFER using vector instead of auto_ptr. ! Suggested by Paul Thomas ! ! 2004-01-22 John W. Eaton ! ! * octMakefile.in (maintainer-clean, distclean): ! Remove Makefile and autom4te.cache. ! ! 2004-01-14 David Bateman ! ! * configure.in: Test for the presence of the function ! H5Gget_num_objs in HDF5 library, and define HAVE_H5GGET_NUM_OBJS. ! ! 2004-01-06 Per Persson ! ! * aclocal.m4 (OCTAVE_CXX_PREPENDS_UNDERSCORE): Recognize ! *-*-darwin*, not *-*-darwin6*. ! ! 2003-12-20 John W. Eaton ! ! * INSTALL: Update to newer version from autoconf. ! ! 2003-11-26 Cyril Humbert ! ! * octave-config.in (--m-site-dir): Echo $LOCALVERFCNFILEDIR, not ! $OCTAVE_LOCALVERFCNFILEDIR. ! (--oct-site-dir): Echo $LOCALVEROCTFILEDIR, not ! $OCTAVE_LOCALVEROCTFILEDIR. ! ! 2003-11-20 John W. Eaton ! ! * configure.in: Also maybe add -W to WARN_CFLAGS and WARN_CXXFLAGS. ! ! 2003-11-15 John W. Eaton ! ! * Makeconf.in (SHLLIB_VER): Fix typo. ! ! * Makeconf.in (WARN_CFLAGS, WARN_CXXFLAGS): Substitute them. ! (ALL_CFLAGS, BUG_CFLAGS): Add $(WARN_CFLAGS). ! (ALL_CXXFLAGS, BUG_CXXFLAGS): Add $(WARN_CXXFLAGS). ! (UGLY_ALL_CXXFLAGS): Delete. ! ! * configure.in: Add -Wall and -Wshadow to WARN_CFLAGS and ! WARN_CXXFLAGS instead of CFLAGS and CXXFLAGS. ! ! 2003-11-12 John W. Eaton ! ! * configure.in: If we need alloca, then also include it in LIBGLOB. ! ! 2003-11-10 John W. Eaton ! ! * configure.in: Preserve CFLAGS and CXXFLAGS before doing anything. ! Maybe add -Wshadow to CFLAGS and CXXFLAGS. ! ! 2003-10-24 Stefan Monnier ! ! * emacs/octave-mod.el (octave-comment-start): Simplify. ! (octave-point): Remove. ! (octave-in-comment-p, octave-in-string-p) ! (octave-not-in-string-or-comment-p, calculate-octave-indent) ! (octave-blink-matching-block-open, octave-auto-fill): ! Use line-(beginning|end)-position instead. ! ! 2003-10-29 John W. Eaton ! ! * emacs/octave-inf.el (inferior-octave-prompt): Don't bother ! matching "octave.bin". ! ! 2003-10-29 Lute Kamstra ! ! * emacs/octave-inf.el (inferior-octave-prompt): Recognize ! version number in prompt. ! ! 2003-10-24 John W. Eaton ! ! * emacs/octave-mod.el (octave-mode-syntax-table): Allow % to be a ! comment character. ! ! 2003-10-23 John W. Eaton ! ! * Makeconf.in (AWK): Substitute and export it. ! * configure.in: Also check for AWK. ! ! 2003-10-07 John W. Eaton ! ! * configure.in (AC_PREREQ): Require 2.57. ! ! 2003-09-19 John W. Eaton ! ! * configure.in (AH_BOTTOM): Don't define HEAVYWEIGHT_INDEXING here. ! ! 2003-07-30 John W. Eaton ! ! * emacs/octave-mod.el (octave-variables): Delete ! propagate_empty_matrices from the list. ! ! * ck-oct-fcns.m: Delete. ! ! 2003-07-25 John W. Eaton ! ! * configure.in: Warn if --enable-dl but not --enable-shared. ! ! 2003-07-15 John W. Eaton ! ! * emacs/octave-mod.el (octave-variables): Delete ! default_return_value and define_all_return_values from the list. ! Add warn_undefined_return_values to the list. ! ! 2003-07-11 John W. Eaton ! ! * emacs/octave-mod.el (octave-variables): ! Add warn_empty_list_elements and warn_resize_on_range_error to the ! list. ! Delete empty_list_elements_ok and resize_on_range_error from the ! list. ! ! 2003-07-10 John W. Eaton ! ! * emacs/octave-mod.el (octave-variables): Add warn_neg_dim_as_zero ! to the list. ! Delete treat_neg_dim_as_zero from the list. ! ! 2003-07-09 John W. Eaton ! ! * emacs/octave-mod.el (octave-variables): Include ! DEFAULT_EXEC_PATH, DEFAULT_LOAD_PATH, crash_dumps_octave_core, ! sighup_dumps_octave_core, sigterm_dumps_octave_core, ! warn_imag_to_real, warn_num_to_str, warn_str_to_num, and ! warn_fortran_indexing in the list. ! Delete ok_to_lose_imaginary_part, implicit_num_to_str_ok, ! implicit_str_to_num_ok, prefer_column_vectors, ! prefer_zero_one_indexing, and do_fortran_indexing from the list. ! ! 2003-07-08 John W. Eaton ! ! * Makeconf.in (do-subst-default-vals): Substitute OCTAVE_API_VERSION. ! * octave-config.in: Handle new variable OCTAVE_API_VERSION. ! ! * octMakefile.in (DIRS_TO_MAKE): Delete undefined vars ! $(localfcnfilepathdirs) and $(localoctfilepathdirs) from the list. ! ! * octave-config.in: Handle new variables OCTAVE_LOCALAPIFCNFILEDIR ! and OCTAVE_LOCALAPIOCTFILEDIR ! ! * configure.in (localapifcnfiledir): New variable. ! (localfcnfilepath): Add it to the list. ! (localapioctfiledir): New variable. ! (localoctfilepath): Add it to the list. ! * Makeconf.in (do-subst-default-vals): Substitute new varibles. ! ! * Makeconf.in (getapiversion, apiversion): New macros. ! ! * octMakefile.in (DIRS_TO_MAKE): Include $(localverarchlibdir) in ! the list. ! ! 2003-07-07 John W. Eaton ! ! * Makeconf.in: Set and substitute values for startupfiledir and ! localstartupfiledir. ! ! * octave-config.in: Allow other configuration defaults to be ! accessed using --variable VAR option. ! ! 2003-07-02 John W. Eaton ! ! * octMakefile.in (distclean): remove install-octave here. ! ! 2003-06-27 John W. Eaton ! ! * configure.in: If user doesn't specify --enable-rpath, then ! default is to enable it. ! ! 2003-06-04 John W. Eaton ! ! * aclocal.m4 (GNUPLOT_HAS_FRAMES): Eliminate variable. ! ! * emacs/octave-mod.el (octave-variables): Eliminate ! gnuplot_has_multiplot. ! ! 2003-05-21 John W. Eaton ! ! * configure.in: In check for f_open in libf2c, only use ! -L. -lconflib if we have created libconflib.a. ! ! 2003-05-16 John W. Eaton ! ! * aclocal.m4 (OCTAVE_PROG_GPERF): Provide struct decl so -t option ! succeeds with gperf 3.0. ! ! * Makeconf.in (NO_OCT_FILE_STRIP): Use -C arg for make. ! ! * octMakefile.in (DIRS_TO_MAKE): Use $(shell ...) instead of `...`. ! ! 2003-05-14 John W. Eaton ! ! * Makeconf.in, octMakefile.in, emacs/Makefile.in, ! examples/Makefile.in: Handle DESTDIR. ! ! 2003-05-13 John W. Eaton ! ! * Makeconf.in (sbindir): New variable substitution. ! ! 2003-04-30 John W. Eaton ! ! * configure.in: Don't define WITH_KPATHSEARCH. ! ! 2003-04-24 John W. Eaton ! ! * configure.in: Look for wsock32 library on MinGW systems. ! ! 2003-04-22 John W. Eaton ! ! * configure.in (OCTAVE_LOCAL_BUFFER): Always allocate temporary ! buffer using new. ! ! 2003-04-18 John W. Eaton ! ! * Makefile.in octMakefile.in: Delete kpathsea targets. ! ! * kpathsea: Delete all files and directory. ! ! * configure.in: Don't run configure in kpathsea subdirectory. ! ! * README.kpathsea: New file. ! * octMakefile.in (DISTFILES): Include it in the list. ! ! * Makeconf.in (do-subst-config-vals): Don't substitute it. ! ! * configure.in: Also check for basename. ! Don't substitute LIBKPATHSEA. ! ! 2003-04-17 John W. Eaton ! ! * configure.in (AH_BOTTOM): Don't assume that __WIN32__ will be ! defined when __CYGWIN__ is defined. ! ! 2003-03-17 John W. Eaton ! ! * configure.in: Only complain for g++ earlier than 2.95. ! Try harder to get version number only. ! ! 2003-03-05 Paul Kienzle ! ! * aclocal.m4 (OCTAVE_DYNAMIC_AUTO_ARRAYS): New macro. ! * configure.in: Use it. ! (AH_BOTTOM): Check HAVE_DYNAMIC_AUTO_ARRAYS instead of __GNUG__. ! ! 2003-03-03 John W. Eaton ! ! * configure.in: Undo previous change. ! * Makeconf.in: Likewise. ! ! 2003-03-01 John W. Eaton ! ! * configure.in (KPATHSEA_INCFLAGS): New variable. ! * Makeconf.in (KPATHSEA_INCFLAGS): Substitute it. ! (do-subst-config-vals): Add it to the list. ! (INCFLAGS): Add $(KPATHSEA_INCFLAGS). ! ! 2003-02-23 Paul Kienzle ! ! * aclocal.m4 (OCTAVE_PLACEMENT_DELETE): New macro. ! * configure.in: Use it. ! (AH_BOTTOM): Don't define HAVE_PLACEMENT_DELETE here. ! ! 2003-02-21 John W. Eaton ! ! * configure.in: Allow RLD_FLAG to be set using --enable-rpath arg. ! ! * configure.in: Fix default RLD_FLAG value for *-sgi-*. From ! Paul Kienzle . ! ! * configure.in: Check for long long int and unsigned long long int. ! ! * configure.in (AH_BOTTOM): Define HAVE_PLACEMENT_DELETE for gcc ! 3.2 and later. ! ! * configure.in: Check for copysign and signbit. ! ! 2003-02-18 John W. Eaton ! ! * emacs/Makefile.in (DISTFILES): Add otags.1 to the list. ! ! 2003-02-18 Dirk Eddelbuettel ! ! * emacs/otags.1: New file. ! ! 2003-02-18 David Bateman ! ! * configure.in: Eliminate linpack ! ! 2003-02-15 John W. Eaton ! ! * configure.in: Check for mkstemp too. ! ! 2003-02-13 Arno Klaassen ! ! * configure.in: Fix SH_LD and SH_LDFLAGS for -*-*-freebsd*. ! ! 2003-02-13 John W. Eaton ! ! * configure.in: Use '$(CXX)', '$(AR)', not "$CXX" and "$AR" when ! setting variables for building shared libraries. ! ! 2003-02-13 Paul Kienzle ! ! * examples/make_int.cc: Support for ISO standard compilers. ! ! 2003-01-22 Richard Stallman ! ! * emacs/octave-mod.el (octave-mode-map): Avoid binding keys that ! are reserved for users. ! ! 2003-01-22 John W. Eaton ! ! * Makeconf.in: Fix typo in previous change. ! ! 2003-01-21 John W. Eaton ! ! * Makeconf.in (MKOCTFILE_INCFLAGS): Skip -I$(includedir) if ! $(includedir) is /usr/include. ! ! 2003-01-16 Mumit Khan ! ! * Makeconf.in (SED): Export to subshells. ! ! 2003-01-11 John W. Eaton ! ! * configure.in: Don't bother with compiler flags for ! explicit/no-implicit template instantiation. ! ! 2003-01-11 Paul Kienzle ! ! * configure.in, Makeconf.in: Allow setting of BUILD_LDFLAGS. ! ! 2003-01-11 John W. Eaton ! ! * autogen.sh: Use --force for autoconf and autoheader. ! ! 2003-01-04 John W. Eaton ! ! * octMakefile.in (CONF_DISTFILES): Include acx_blas.m4 and ! acx_lapack.m4. ! ! * configure.in (BUILD_CC, BUILD_CFLAGS, BUILD_CXX, ! BUILD_CXXFLAGS): Kluge for Sun C/C++. ! ! 2003-01-03 John W. Eaton ! ! * configure.in: Default value of BUILD_CXX is $CXX, not g++. ! (AH_BOTTOM): Define __USE_STD_IOSTREAM if using Compaq C++ compiler. ! For compiler/linker options, use -Wl,OPT instead of -Xlinker OPT. ! Check for -ieee option for the C and C++ compilers on alpha systems. ! ! 2003-01-02 John W. Eaton ! ! * configure.in: Fail on all gcc 1.x and 2.x versions. ! ! 2002-12-30 John W. Eaton ! ! * configure.in (OCTAVE_LOCAL_BUFFER): New macro. ! ! 2002-12-18 John W. Eaton ! ! * mkoctfile.in: Include $LIBOCTINTERP in the stand alone link command. ! Define LIBOCTAVE, LIBOCTINTERP, LIBCRUFT, LIBREADLINE using -lLIB. ! ! 2002-12-17 John W. Eaton ! ! * Makeconf.in (do-script-install, do-script-uninstall): ! New macros, used in Makefiles in scripts subdirectory. ! (do-script-install): Use new scripts/mkpkgadd script to construct ! PKG_ADD files. ! ! 2002-12-03 Nix ! ! * configure.in: Use AC_CHECK_DECL in conjunction with ! AC_DECL_SYS_SIGLIST to ensure signal.h is searched. ! ! 2002-12-03 John W. Eaton ! ! * configure.in: Dont't set SONAME_FLAGS for alpha alpha*-dec-osf* ! systems. ! ! 2002-11-29 Paul Kienzle ! ! * mkoctfile.in: Include "$incflags $def" in commands to generate ! dependecies. ! ! 2002-11-21 John W. Eaton ! ! * configure.in (do-subst-config-vals): Substitute OCTAVE_BINDIR. ! ! * configure.in (MKOCTFILE_SH_LDFLAGS): New variable. ! * Makeconf.in (do-subst-config-vals): Substitute ! OCTAVE_CONF version of this variable. ! ! * mkoctfile.in: Set SH_LDFLAGS from MKOCTFILE_SH_LDFLAGS, not ! SH_LDFLAGS. ! (VERSION): Substitute value of OCTAVE_CONF_VERSION. ! ! * configure.in (NO_OCT_FILE_STRIP): New variable. ! * Makeconf.in (do-subst-config-vals): Substitute it. ! * mkoctfile.in (no_oct_file_strip_on_this_platform): New variable. ! ! 2002-11-20 John W. Eaton ! ! * configure.in (OCTAVE_CXX_PRAGMA_INTERFACE_IMPLEMENTATION): ! Delete use. ! ! * aclocal.m4 (OCTAVE_LANG_PROG_NO_CONFDEFS): Delete. ! (OCTAVE_CXX_PRAGMA_INTERFACE_IMPLEMENTATION): Delete. ! ! 2002-11-19 John W. Eaton ! ! * configure.in: Check for dlopen last, to avoid broken ! compatibility libraries. ! Default value for SHLLIB is '$(SHLEXT)', not $SHLEXT. ! ! 2002-11-15 John W. Eaton ! ! * configure.in (USE_EXCEPTIONS_FOR_INTERRUPTS): No need to define. ! ! 2002-11-14 John W. Eaton ! ! * configure.in: Check for sigsetjmp and siglongjmp. ! (AH_BOTTOM): If both are found, define OCTAVE_HAVE_SIG_JUMP. ! Also check for sig_atomic_t, typedef it if not available. ! ! 2002-11-10 Per Persson ! ! * configure.in: Detect dyld API for dynamic linking on OS X. ! ! 2002-11-09 Per Persson ! ! * configure.in: Use $(TOPDIR)/src/octave, not $(bindir)/octave for ! -bundle-loader argument. ! ! * aclocal.m4 (OCTAVE_CXX_PREPENDS_UNDERSCORE): Force result for OS X. ! ! 2002-11-07 John W. Eaton ! ! * configure.in: Set FPICFLAG, Also set CXXPICFLAG, CPICFLAG, ! FPICFLAG, and INCLUDE_LINK_DEPS for OS X. ! ! * acx_blas.m4 (LIBS): Also check for Apple vecLib framework. ! ! 2002-11-06 John W. Eaton ! ! * configure.in (AH_BOTTOM): Define USE_EXCEPTIONS_FOR_INTERRUPTS. ! ! 2002-11-04 Joseph P. Skudlarek ! ! * emacs/otags: handle declarations without arguments and/or return ! values. ! ! 2002-10-31 John W. Eaton ! ! * configure.in (SHLEXT_VER, SHLLIB_VER, SHLBIN_VER): Use ! $(version), not $(VERSION). ! ! 2002-10-28 John W. Eaton ! ! * Makeconf.in (HAVE_DLOPEN_API, HAVE_SHL_LOAD_API, ! HAVE_LOADLIBRARY_API): Delete. ! (do-subst-config-vals): Don't substitute them here. ! ! 2002-10-25 John W. Eaton ! ! * configure.in (ENABLE_DYNAMIC_LINKING): Rename from ! WITH_DYNAMIC_LINKING. ! * Makeconf.in: Likewise. ! * examples/hello.cc: Likewise. Improve comments. ! ! * configure.in: Revive --enable-dl to set default value for ! WITH_DYNAMIC_LINKING. ! ! * configure.in: Also set SHLEXT_VER, SHLLIB_VER, SHLBIN_VER. ! * Makeconf.in: Substitute them here. ! Also substitute SHLLINKEXT. ! ! 2002-10-25 Per Persson ! ! * aclocal.m4 (OCTAVE_CXX_PRAGMA_INTERFACE_IMPLEMENTATION): Fix ! first test to properly fail on OS X. Fix typo in final test to ! set result. ! ! 2002-10-23 John W. Eaton ! ! * mk-opts.pl (emit_opt_class_header): Make set_options another ! name for copy. ! ! 2002-10-17 John W. Eaton ! ! * Makeconf.in (do-subst-config-vals): Don't substitute ! OCTAVE_CONF_OCTAVE_LITE. ! (OCTAVE_LITE): Delete. ! ! * Makeconf.in: Use HAVE_DLOPEN_API, HAVE_LOADLIBRARY_API, and ! HAVE_SHL_LOAD_API instead of WITH_DL and WITH_SHL. ! ! * configure.in: Rewrite the way we handle dynamic linking. ! If dynamic linking is used always do what was previously only ! enabled by --enable-lite-kernel. ! ! 2002-10-17 Paul Kienzle ! ! * configure.in: Define WITH_DYNAMIC_LINKING based on --enable-shared. ! Add -lwsock32 to LIBS for MinGW. ! ! 2002-10-16 John W. Eaton ! ! * aclocal.m4 (OCTAVE_LANG_PROG_NO_CONFDEFS): New macro. ! (OCTAVE_CXX_PRAGMA_INTERFACE_IMPLEMENTATION): Use it along with ! AC_LINK_IFELSE instead of AC_TRY_LINK. ! Require both programs to compile for success. ! ! 2002-10-16 Paul Kienzle ! ! * aclocal.m4: Both Cygwin and MinGW don't prepend underscores. ! * configure.in: MinGW builds shared libraries the same as Cygwin. ! MinGW must link to winsock explicitly. ! * install-octave.in: MinGW and Cygwin both need OCTAVE_HOME. ! ! 2002-10-15 Paul Kienzle ! ! * configure.in (library_path_var): New variable. ! ! 2002-10-14 John W. Eaton ! ! * configure.in (SH_LDFLAGS): Additional options for Cygwin: ! -Wl,--export-all-symbols -Wl,--enable-auto-import. ! ! * Makeconf.in (TERMLIBS): Substitute here. ! ! * configure.in: Define OCTAVE_USE_WINDOWS_API if ! defined (__WIN32__) && ! defined (__CYGWIN__), not if ! defined (__WIN32__) || ! defined (__CYGWIN__). ! Also call AC_SUBST for TERMLIBS. ! ! 2002-10-14 Paul Kienzle ! ! * configure.in: Use correct SHLEXT and PICFLAG for Cygwin. ! * configure.in: Cygwin must link against -loctave.dll, etc. ! ! * configure.in: Define INCLUDE_LINK_DEPS because Cygwin needs DLLs ! to be linked against their dependencies. ! * Makeconf.in: Ditto. ! ! * configure.in: Define SHLLIB and SHLBIN because Cygwin doesn't ! link against shared libs but instead against -lxxx.dll. LIB and ! BIN are the link and load forms respectively of the library. ! * Makeconf.in: Ditto, and define the corresponding XXX_VER. ! ! * configure.in: Remove LIBOCT_READLINE and LIBOCT_PATHSEARCH ! because they are merged into LIBOCTAVE to avoid circular ! dependencies. ! * Makeconf.in: Ditto. ! * mkoctfile.in: Ditto. ! ! * aclocal.m4 (OCTAVE_ENABLE_READLINE): Define LIBREADLINE because ! Cygwin requires liboctave to be linked against -lreadline so ! including it in LIBS isn't sufficient. ! * mkoctfile.in: Substitute and use LIBREADLINE here. ! ! * aclocal.m4 (OCTAVE_CXX_PREPENDS_UNDERSCORE): Force no for cygwin. ! ! 2002-10-11 John W. Eaton ! ! * configure.in (AH_BOTTOM): Maybe define OCTAVE_USE_WINDOWS_API ! and OCTAVE_HAVE_WINDOWS_FILESYSTEM. ! ! 2002-10-09 John W. Eaton ! ! * aclocal.m4 (OCTAVE_PROG_GNUPLOT): AC_DEFINE GNUPLOT_BINARY ! Default value on Windows systems is pgnuplot. ! If not cross compiling and no gnuplot program is found, set ! default to gnuplot. Set defaults for multiplot and frames. Check ! for pgnpuplot, pipe-gnuplot, and gnuplot on Windows systems. ! ! * configure.in (BUILD_EXEEXT): New variable. ! * Makeconf.in (BUILD_EXEEXT): Substitute it here. ! ! * aclocal.m4 (OCTAVE_CXX_PRAGMA_INTERFACE_IMPLEMENTATION): ! Add second test for OS X. ! ! 2002-10-08 John W. Eaton ! ! * aclocal.m4 (OCTAVE_CXX_PRAGMA_INTERFACE_IMPLEMENTATION): New macro. ! * configure.in: Use it. ! ! * configure.in (BUILD_CC, BUILD_CFLAGS, BUILD_CXX, BUILD_CXXFLAGS): ! Set default values if cross compiling. ! ! * aclocal.m4 (OCTAVE_PROG_NM): Do the right thing for cross compiling. ! (OCTAVE_CXX_PREPENDS_UNDERSCORE): Require OCTAVE_PROG_NM. ! (OCTAVE_CXX_ABI): Likewise. ! ! * Makeconf.in (BUILD_CC, BUILD_CFLAGS, BUILD_CXX, BUILD_CXXFLAGS): ! New variables for cross compiling. ! ! 2002-10-07 Paul Kienzle ! ! * configure.in: Check for raise. ! ! 2002-10-02 John W. Eaton ! ! * aclocal.m4 (OCTAVE_PROG_SED): New macro, adapted from autoconf ! patches mailing list archive, written by Robert Boehne ! . ! * configure.in: Use it. ! * Makeconf.in: Substitute SED, use $(SED), not sed. ! (do-subst-conffig-vals): Substitute it here too. ! * mkoctfile.in: And here. Use $SED, not sed. ! * octave-bug.in: Likewise. ! * install-octave.in: Likewise. ! ! 2002-09-30 John W. Eaton ! ! * configure.in: Don't define mkdir here. ! ! 2002-09-25 Mumit Khan ! ! * aclocal.m4 (OCTAVE_MKDIR_TAKES_ONE_ARG): New macro to determine if ! host mkdir accepts only one arg instead of the usual two. ! * configure.in: Use. Check for direct.h. ! (mkdir): Define. ! ! 2002-09-26 Paul Kienzle ! ! * configure.in: Check for conio.h. ! Check for _kbhit. ! ! 2002-09-26 John W. Eaton ! ! * configure.in (AH_BOTTOM): Don't define ! USE_PRAGMA_INTERFACE_IMPLEMENTATION. ! ! 2002-09-26 Paul Kienzle ! ! * configure.in: Fix syntax errors in !HAVE_XXX_T. ! Don't require terminal control for build. ! ! 2002-09-23 John W. Eaton ! ! * configure.in: Fix typedefs used in AH_BOTTOM. ! ! 2002-09-19 John W. Eaton ! ! * configure.in (AH_BOTTOM): If using g++, define ! USE_PRAGMA_INTERFACE_IMPLEMENTATION. ! ! 2002-08-17 John W. Eaton ! ! * configure.in: Check for sstream. ! ! 2002-08-16 John W. Eaton ! ! * Makeconf.in (%.d : %.cc): Add $*.df to LHS of dependency list. ! ! 2002-08-15 Paul Kienzle ! ! * mk-opts.pl: Add support for INCLUDE = "...". ! ! 2002-08-15 John W. Eaton ! ! * mk-opts.pl: Handle Array too. ! ! 2002-08-10 John W. Eaton ! ! * mk-opts.pl (emit_options_function): Emit newline at EOF. ! ! 2002-08-01 John W. Eaton ! ! * Makeconf.in: Use $@-t instead of $@.tmp or $@.t. ! ! 2002-07-19 John W. Eaton ! ! * mk-opts.pl: New file. ! * Makefile.in (DISTFILES): Add it to the list. ! ! 2002-07-12 John W. Eaton ! ! * configure.in (AC_CONFIG_FILES): Add libcruft/dasrt/Makefile to ! the list. ! ! 2002-07-10 John W. Eaton ! ! * configure.in (AC_CONFIG_FILES): Add libcruft/odessa/Makefile to ! the list. ! ! 2002-05-24 John W. Eaton ! ! * configure.in: Maybe add -fno-coalesce-templates to XTRA_CXXFLAGS ! on darwin systems. ! (SH_LDFLAGS): Set this on darwin systems. ! (UGLY_DEFS): Cope with broken sed or shell quoting on darwin systems. ! ! 2002-05-16 John W. Eaton ! ! * aclocal.m4 (OCTAVE_CXX_ISO_COMPLIANT_LIBRARY): Omit cwctype. ! ! 2002-05-01 John W. Eaton ! ! * configure.in (AC_AIX): Move before AC_MINIX and AC_ISC_POSIX. ! (AH_BOTTOM): Move contents of acconfig.h here. ! * acconfig.h: Delete. ! * octMakefile.in (CONF_DISTFILES): Delete acconfig.h from the list. ! ! 2002-04-27 John W. Eaton ! ! * configure.in (AC_CONFIG_FILES): Add libcruft/daspk/Makefile to ! the list. ! ! 2002-04-24 Kurt Hornik ! ! * aclocal.m4 (OCTAVE_CC_FLAG, OCTAVE_CXX_FLAG): Also handle flags ! that contain : and =. ! ! 2002-04-12 John W. Eaton ! ! * config.guess, config.sub: Update from FSF sources. ! ! 2002-04-11 John W. Eaton ! ! * configure.in: Declare F2C and F2CFLAGS with AC_ARG_VAR. ! Delete AC_SUBST calls for F77, FFLAGS, FLIBS, F2C, F2CFLAGS (no ! need to do this explicitly now). ! ! 2002-04-04 John W. Eaton ! ! * Makeconf.in: Set and substitute EXEEXT, not EXE. ! ! * configure.in (EXE): Delete check and substitution. ! * install-octave.in: Use EXEEXT instead of EXE. ! ! * configure.in: Use AC_CHECK_MEMBERS, not OCTAVE_STRUCT_GR_PASSWD. ! Use AC_CHECK_TYPES, not AC_CHECK_TYPE or OCTAVE_CHECK_TYPE. ! * aclocal.m4 (OCTAVE_STRUCT_GR_PASSWD, OCTAVE_CHECK_TYPE): Delete. ! * acconfig.h (dev_t, ino_t, nlink_t, sigset_t): Typedef if not found. ! ! 2002-04-03 John W. Eaton ! ! * aclocal.m4: Replace AC_LANG_SAVE, AC_LANG_C, AC_LANG_CPLUSPLUS, ! and AC_LANG_RESTORE with AC_LANG_PUSH and AC_LANG_POP. ! Use AS_MESSAGE_LOG_FD instead of AC_FD_CC. ! * configure.in: Delete second arg in AC_CHECK_SIZEOF calls. ! ! 2002-04-03 Steven G. Johnson ! ! * configure.in: Correct usage of AC_ARG_WITH for --with-fftw. ! ! * configure.in: Update for autoconf 2.5x. ! Minor syntax changes to new recommended syntaxes and macros. ! Apply changes from autoupdate plus eliminate some warning ! messages, deprecated uses of changequote, etc. ! Use autoheader templates to generate config.h.in. ! Replace most of Octave's Fortran support macros with those in the ! new autoconf. ! Eliminate most uses of internal (undocumented) autoconf cache vars. ! Replace BLAS/LAPACK detection new macros ACX_BLAS/ACX_LAPACK from ! the autoconf macro repository. ! * acx_blas.m4, acx_lapack.m4: New files. ! * acconfig.h: Delete lines that can be automatically generated ! from new info in configure.in and aclocal.m4. ! If it is not already defined, define F77_FUNC for use with f2c. ! * aclocal.m4 (OCTAVE_PROG_G77, OCTAVE_FLIBS, OCTAVE_F77_MAIN_FLAG, ! OCTAVE_F77_UPPERCASE_NAMES, OCTAVE_F77_APPEND_UNDERSCORE, ! OCTAVE_F2C_F77_COMPAT): Delete definitions. ! Use autoheader templates to generate config.h.in. ! * Makeconf.in, mkoctfile.in (FORTRAN_MAIN_FLAG): Delete all uses. ! ! 2001-11-09 John W. Eaton ! ! * octave-bug.in (BLAS_LIBS, FFTW_LIBS, LD_CXX): Substitute and ! print values. ! * mkoctfile.in: Accept --compile as an alias for -c. ! New option, --link-stand-alone. ! New option, --no-pathsearch. ! New option, --no-readline. ! Substitute RLD_FLAG, FLIBS, LIBKPATHSEA, LIBOCTINTERP, ! LIBOCTAVE, LIBOCT_READLINE, LIBOCT_PATHSEARCH, LIBCRUFT, ! BLAS_LIBS, FFTW_LIBS, and LIBS. ! * Makeconf.in (MKOCTFILE_LFLAGS): New variable. ! (do-subst-config-vals): Substitute FFTW_LIBS, LD_CXX, ! LIBOCT_PATHSEARCH, LIBOCT_READLINE, MKOCTFILE_LFLAGS. ! ! 2001-11-06 John W. Eaton ! ! * Makefile.in (LIBOCT_READLINE, LIBOCT_PATHSEARCH): New variables. ! * Makeconf.in: Substitute them here. ! ! 2001-11-02 John W. Eaton ! ! * octMakefile.in (dist): Omit long-gone info subdir. ! Fix find command for removing Makefile in kpathsea and glob subdirs. ! ! 2001-08-10 John W. Eaton ! ! * mkoctfile.in: Substitute F2C and F2CFLAGS. Make it possible to ! use f2c and a C compile to compiling Fortran source files. Print ! warnings and error message on stderr, not stdout. Issue warnings ! if it is not possible to comiple Fortran, C, or C++ files. ! ! * configure.in (%.c : %.f): Don't use cat in F2C rule. ! ! 2001-07-27 John W. Eaton ! ! * Makeconf.in (do-subst-config-vals): Substitute DEPEND_FLAGS and ! DEPEND_EXTRA_SED_PATTERN. ! * mkoctfile.in: Handle --depend. ! ! 2001-07-25 Rafael Laboissiere ! ! * octave-config.in: New file. ! * Makeconf.in (do-subst-default-vals): Substitute OCTAVE_VERSION. ! * Makefile.in (TARGETS): Add octave-config to list. ! * octMakefile.in (DISTFILES): Add octave-config.in to list. ! (BINDISTFILES): Add octave-config to list. ! (all): Add octave-config dependency. ! (octave-config): New rule. ! (install): Install octave-config. ! (uninstall): Delete octave-config from bindir. ! (maintainer-clean): Delete octave-config. ! (binary-dist): Add octave-config dependency. ! ! 2001-06-29 Mumit Khan ! ! * aclocal.m4 (OCTAVE_CXX_ABI): Use "sun_v5" instead of "sun". ! ! * aclocal.m4 (OCTAVE_CXX_ABI): New macro. ! (OCTAVE_CXX_PREPENDS_UNDERSCORE): Add missing return value. ! * configure.in: Use. ! * acconfig.h (CXX_ABI): New macro. ! ! 2001-05-23 John W. Eaton ! ! * configure.in: Quote the call to AC_CHECK_FUNC inside the ! AC_CHECK_LIB macro when checking for lapack. For autoconf 2.50 ! ! * aclocal.m4: Changes for autoconf 2.50: ! Convert dnl comments inside AC_DEFUN to ###. ! (OCTAVE_FLIBS): Use [] quoting instead of changequote. ! ! 2001-05-02 John W. Eaton ! ! * octMakefile.in: Remove remaining references to readline. ! (CONF_DISTFILES): Add autogen.sh to the list. ! ! 2001-05-02 Mumit Khan ! ! * configure.in: Support for --with-fftw. ! (FFT_DIR, FFTW_LIBS): New substitutions. ! * Makeconf.in (FFTW_LIBS): New variable. ! * acconfig.h (HAVE_FFTW): New macro. ! ! 2001-04-26 John W. Eaton ! ! * aclocal.m4 (OCTAVE_ENABLE_READLINE): Require readline unless ! --disable-readline is specified. ! ! * configure.in: Don't define TERMLIBS. Do add terminal lib(s) to LIBS. ! * octave-bug.in: Delete references to TERMLIBS. ! * Makeconf.in: Likewise. ! ! * Makeconf.in (LIBREADLINE): Delete substitution. ! (do-subst-config-vals): Likewise. ! * octMakefile.in (SUBDIRS): Delete @READLINE_DIR@ from the list. ! * configure.in (AC_CONFIG_SUBDIRS): Delete $READLINE_DIR from the list. ! ! * configure.in (VOID_SIGHANDLER): Don't check or substitute here. ! ! 2001-04-25 John W. Eaton ! ! * octMakefile.in (install, install-strip): Don't use mk-includedir-link ! ! * Makeconf.in (mk-includedir-link, mk-libdir-link): Delete definitions. ! ! 2001-04-24 John W. Eaton ! ! * Makeconf.in (mk-libdir-link): Undo previous change ! ! 2001-04-23 John W. Eaton ! ! * configure.in: Only check for libz if checking for HDF5 libraries. ! Allow user to specify HDF5 library name on command line, same as ! for BLAS libraries. Include BLAS and HDF5 libs in summary output. ! ! 2001-04-19 John W. Eaton ! ! * octMakefile.in (CONF_DISTFILES): Remove config.h.bot from the list. ! ! 2001-04-19 David Livings ! ! * Makeconf.in (mk-libdir-link): Omit check for $(octlibdir)/octave ! existing as a directory. ! ! 2001-02-28 Albert Chin-A-Young ! ! * configure.in: Check for getpwnam in libsun only after checking ! default libraries first. Check for gethostname in libsocket only ! after checking default libraries first. ! ! 2001-02-22 John W. Eaton ! ! * configure.in: Allow for using f2c when setting functions to look ! for in the BLAS and Lapack libraries. ! From Kurt Hornik . ! ! 2001-02-10 Mumit Khan ! ! * test/octave.test/string/dec2hex-1.m: Don't assume hex format ! produces lower case letters. ! ! 2001-02-07 John W. Eaton ! ! * acconfig.h: Merge contents of config.h.bot. ! * config.h.bot: Delete. ! ! * autogen.sh: Allow running of autoconf or autoheader to be skipped. ! ! 2001-02-06 John W. Eaton ! ! * readline: Update to new version (4.2-beta1). ! ! 2001-02-05 Mumit Khan ! ! * configure.in (TEMPLATE_AR, TEMPLATE_ARFLAGS): New variables. ! * Makeconf.in (TEMPLATE_AR, TEMPLATE_ARFLAGS): Likewise. ! ! * configure.in (XTRA_CXXFLAGS): Use -fno-implicit templates for ! pre-gcc3 compilers. Remove -fno-rtti and -fno-exceptions. ! (DEPEND_FLAGS, DEPEND_EXTRA_SED_PATTERN): New macros. ! (BLAS_LIBS): Fix test for sunperf library on Sun Solaris. ! (CPICFLAG, CXXPICFLAG, FPICFLAG, SH_LDFLAGS, RLD_FLAG): Add Sun ! compiler support. ! * Makefile.in (DEPEND_FLAGS, DEPEND_EXTRA_SED_PATTERN): New ! variables. ! (%.d : %.cc): Use. ! (%.d : %.c): Likewise. ! * acconfig.h (CXX_ISO_COMPLIANT_LIBRARY): Add #undef. ! ! 2001-01-31 Mumit Khan ! ! * Makeconf.in (%.d : %.cc): Strip the directory portion of the ! target. ! (%.d : %.c): Likewise. ! ! * aclocal.m4 (OCTAVE_CXX_ISO_COMPLIANT_LIBRARY): New macro. ! * configure.in: Use it. ! ! 2001-01-29 John W. Eaton ! ! * Makeconf.in (do-subst-config-vals): Substitute ! OCTAVE_CONF_CANONICAL_HOST_TYPE here too. ! * octave-bug.in: Substitute OCTAVE_CONF_CANONICAL_HOST_TYPE, not ! OCTAVE_CANONICAL_HOST_TYPE. ! ! 2000-12-09 John W. Eaton ! ! * aclocal.m4: Give gperf a keyword, to avoid complaints from newer ! versions. ! ! 2000-11-27 Marcus.Brinkmann ! ! * configure.in: Handle *-*-gnu* the same as *-*-linux* for shared ! library creation. ! ! 2000-11-03 Andy Adler ! ! * mkoctfile.in: Handle -c to mean compile only. ! ! 2000-11-01 John W. Eaton ! ! * mkoctfile.in: Handle --print. ! ! 2000-10-31 John W. Eaton ! ! * aclocal.m4 (OCTAVE_PROG_GPERF): Check that gperf supports flags ! we use. ! ! * missing: New file, modified from the missing script provided by ! automake (never create files, just exit with failure status). ! * aclocal.m4 (OCTAVE_PROG_BISON, OCTAVE_PROG_FLEX, OCTAVE_PROG_GPERF): ! Use $(top_srcdir)/missing as replacement script. ! ! * aclocal.m4 (OCTAVE_PROG_FLEX, OCTAVE_PROG_BISON): New macros. ! * configure.in: Use them. ! ! 2000-10-27 John W. Eaton ! ! * autogen.sh: Don't run configure. ! ! * configure.in (SPECIAL_MATH_LIB): Delete code related to this var. ! * Makeconf.in: Ditto. ! (BLAS_LIBS, LIBS): Substitute here. ! (do-subst-config-vals): Put BLAS_LIBS in oct-conf.h. ! ! 2000-07-20 Joao Cardoso ! ! * configure.in: (LD_CXX): Define and substitute. ! For sco3.2v5 systems, set SONAME_FLAGS and RLD_FLAG. ! * Makeconf.in (LD_CXX): Allow substitution. ! ! 2000-07-18 John W. Eaton ! ! * octMakefile.in (DISTSUBDIRS): Define in terms of $(ALL_SUBDIRS). ! ! 2000-07-17 Joao Cardoso ! ! * configure.in (LIBGLOB): Set to be the two object files in the ! glob directory instead of libglob.a. ! ! 2000-07-05 Steven G. Johnson ! ! * Use BLAS_LIBS to save the names of BLAS libraries instead of ! adding them to LIBS, then substitute BLAS_LIBS. ! ! 2000-06-30 Steven G. Johnson ! ! * configure.in: Support for --with-fastblas (ATLAS). ! ! 2000-06-29 John W. Eaton ! ! * configure.in: Check for long long data type. ! ! 2000-06-29 Steven G. Johnson ! ! * acconfig.h (HAVE_HDF5): Add undef. ! * configure.in: Handle --with-hdf5. ! ! 2000-06-26 John W. Eaton ! ! * octave-bug.in: Substitute correct values for config_opts, ! MACHINE, and CXXFLAGS. ! ! 2000-06-07 John W. Eaton ! ! * Makeconf.in (GPERF): Allow substitution. ! ! 2000-06-05 John W. Eaton ! ! * aclocal.m4 (OCTAVE_PROG_GPERF): New macro. ! * configure.in: Use it. Print warning at end if gperf is missing. ! ! 2000-04-20 John W. Eaton ! ! * mkoctfile.in: Try moving output file first. But comment these ! lines and let people who have trouble enable them. ! ! 2000-04-19 John W. Eaton ! ! * mkoctfile.in: Remove output file before linking. ! ! * octMakefile.in (DIRS_TO_MAKE): Create $(octincludedir)/octave. ! (install install-strip): Install config.h in $(octincludedir)/octave, ! not $(octincludedir). ! ! 2000-03-31 John W. Eaton ! ! * octMakefile.in (DIRS_TO_MAKE): Double up on $ in awk command to ! get them past Make. ! ! 2000-03-25 John W. Eaton ! ! * octMakefile.in (SUBDIRS): Omit src. ! (ALL_SUBDIRS): New variable. Include src here. ! (all): Depend on src instead of $(SUBDIRS). ! (src): New target. Depend on $(SUBDIRS). ! ! * Makefile.in (.NOTPARALLEL): New target, for GNU Make 3.79. ! * octMakefile.in (.NOTPARALLEL): Likewise. ! ! 2000-03-22 John W. Eaton ! ! * configure.in: Check for vsnprintf. ! ! 2000-03-21 John W. Eaton ! ! * Makefile.in (liboctave.$(SHLEXT)): Delete target before rebuilding. ! ! 2000-03-21 Ben Sapp : ! ! * Makeconf.in (%.o : %.c): Pass -o to compile command. ! (%.o : %.cc): Ditto. ! * configure.in (%.o : %.f): Ditto. ! ! 2000-03-08 Stephen Eglen ! ! * emacs/octave-mod.el (octave-font-lock-keywords): To font-lock ! the builtin operators, use `font-lock-builtin-face' for Emacs ! and `font-lock-preprocessor-face' for XEmacs. ! ! 2000-03-08 John W. Eaton ! ! * configure.in: For building shared libaries, handle ! i386-pc-solaris2* the same as sparc-sun-solaris2*. ! ! 2000-02-29 Ben Sapp ! ! * examples/make_int.cc (make_int): Handle new operator names. ! ! 2000-02-23 John W. Eaton ! ! * octMakefile.in (maintainer-clean distclean): Don't delete Makefile. ! (dist): Delete stamp-auto. ! ! 2000-02-11 John W. Eaton ! ! * configure.in (octincludedir): Delete trailing /octave here. ! * Makeconf.in (mk-includedir-link): Append it here. ! (MKOCTFILE_INCFLAGS): Use both -I$(octincludedir) and ! -I$(octincludedir)/octave. ! ! * configure.in (localveroctfiledir, localverarchlibdir, ! localverfcnfiledir): New variables. ! (localfcnfilepath): Prepend localverfcnfiledir. ! (localoctfilepath): Prepend localveroctfiledir. ! * Makeconf.in: Substitute them here. ! ! * Makeconf.in (do-subst-default-vals): Substitute ! OCTAVE_LOCALVERARCHLIBDIR, OCTAVE_LOCALVERFCNFILEDIR, ! OCTAVE_LOCALVEROCTFILEDIR. ! ! 2000-02-08 John W. Eaton ! ! * config.guess: Update to latest from subversions.gnu.org. ! * config.sub: Likewise. Recognize sv1-cray as a basic_machine. ! ! * Makeconf.in (MKOCTFILE_INCFLAGS): New macro. ! (do-subst-conf-vals): Substitute it. ! * mkoctfile.in: Set INCFLAGS from OCTAVE_CONF_MKOCTFILE_INCFLAGS. ! ! * mkoctfile.in: Fix names in substititions. ! * octave-bug.in: Likewise. ! ! 2000-02-07 John W. Eaton ! ! * Makeconf.in (do-subst-default-vals, do-subst-config-vals): ! Substitute more complete set of values. ! ! 2000-02-01 John W. Eaton ! ! * aclocal.m4 (octave_cv_string_npos): Add std:: qualifier. ! ! 2000-01-27 John W. Eaton ! ! * emacs/octave-mod.el (octave-begin-keywords): Add "do". ! (octave-end-keywords): Add "until". ! (octave-abbrev-table): Add "u" as abbrev for "until ()" ! (octave-block-match-alist): Add do-until. ! ! 2000-01-25 John W. Eaton ! ! * configure.in: Don't look for the sunmath library. ! Don't check for infinity or quiet_nan. ! ! * emacs/octave-mod.el (octave-mode-syntax-table): ! Undo previous change, but add a comment explaining why. ! ! * install-octave.in: Exit on any error instead of continuing. ! Install Octave binary last. ! ! 2000-01-24 John W. Eaton ! ! * emacs/octave-mod.el (octave-mode-syntax-table): ! Make `%' a comment start character too. ! ! 2000-01-20 John W. Eaton ! ! * configure.in: Check for strptime and localtime_r. ! ! 1999-11-15 John W. Eaton ! ! * configure.in (XTRA_CXXFLAGS, XTRA_CFLAGS): Use -mminimal-toc on ! AIX systems. ! ! 1999-10-26 John W. Eaton ! ! * emacs/README: New file. ! * emacs/Makefile.in (DISTFILES, BINDISTFILES): Add it to the lists. ! ! * emacs/Makefile.in: Don't distribute .elc files. ! ! 1999-10-21 John W. Eaton ! ! * configure.in: Check for select and poll. Also check for poll.h ! and sys/poll.h. ! ! 1999-10-19 Geoff Jacobsen ! ! * autogen.sh: New file. ! ! 1999-10-19 John W. Eaton ! ! * octMakefile.in: Use `$(MAKE) -C dir' instead of `cd dir; $(MAKE)'. ! ! Mon Sep 20 11:02:29 1999 John W. Eaton ! ! * emacs/octave-inf.el, emacs/octave-mod.el: Update to match FSF ! sources plus code that will make it work if Emacs doesn't have the ! customize code. ! ! Tue Sep 14 07:57:06 1999 Kurt Hornik ! ! * emacs/octave-inf.el (inferior-octave-startup): Always pass "-i" ! and "--no-line-editing" to Octave subprocess. ! (inferior-octave-startup-args): Default to nil. ! ! Mon Sep 6 10:50:10 1999 John W. Eaton ! ! * emacs/octave-inf.el (inferior-octave-startup-args): ! Add --no-line-editing to the list. ! ! Fri Jul 9 09:15:24 1999 John W. Eaton ! ! * configure.in: Try to handle IEEE FP flags for g77 on Alphas. ! ! Thu Jul 8 19:56:37 1999 Stephen Eglen ! ! * emacs/octave-inf.el (inferior-octave-directory-tracker): ! Change regexp so that it doesn't match commands beginning with `cd'. ! ! Wed Jun 23 13:20:11 1999 Mumit Khan ! ! * configure.in (HAVE_TERMIOS_H): Avoid autoheader lossage. ! ! Sun Jun 20 23:05:18 1999 John W. Eaton ! ! * configure.in: Check for sys/ioctl.h. ! ! Mon May 10 09:06:47 1999 John W. Eaton ! ! * aclocal.m4 (OCTAVE_PROG_G77): Also match "FSF-g77", for egcs. ! ! Thu Apr 8 19:20:09 1999 John W. Eaton ! ! * examples/hello.cc (Fhello): octave_value::print now requires a ! stream arg. ! ! Wed Feb 3 01:02:37 1999 John W. Eaton ! ! * configure.in: Use AC_OUTPUT_COMMANDS to chmod install-octave so ! that the command will also executed in config.status. ! ! Thu Jan 28 21:05:32 1999 John W. Eaton ! ! * Makeconf.in (do-subst-config-vals): Do substitution on ! CANONICAL_HOST_TYPE, not TARGET_HOST_TYPE. ! (do-subst-default-vals): Likewise. ! ! Wed Jan 20 12:56:02 1999 John W. Eaton ! ! * configure.in: Don't put -O in FFLAGS for powerpc-apple-machten*. ! ! Wed Dec 9 14:02:45 1998 John W. Eaton ! ! * Makeconf.in (RDYNAMIC_FLAG): Substitute RDYNAMIC_FLAG here. ! * configure.in: Check for G++ compiler flag -rdynamic if setting ! up to support dynamic linking, and substitute RDYNAMIC_FLAG if ! -rdynamic is accepted. ! * aclocal.m4 (OCTAVE_CC_FLAG, OCTAVE_CXX_FLAG): Clarify usage comment. ! ! Mon Dec 7 19:49:26 1998 John W. Eaton ! ! * configure.in: Check for -lm just after compiler tests. ! Remove -lm from other macro calls. Don't check for -lm on NeXT ! systems. Eric Norum says /lib/libsys_s.a ! has all the routines that are traditionally in libc.a and libm.a ! on *NIX systems. NeXT also supplies a libm.a, but it seems to be ! horribly buggy. ! ! Sat Dec 5 10:48:40 1998 John W. Eaton ! ! * mkoctfile.in: Correctly handle -?. ! ! Fri Dec 4 18:05:51 1998 Kurt Hornik ! ! * emacs/octave-mod.el (octave-abbrev-start): Use the correct name ! of the abbrev table, and provide support for XEmacs. ! (octave-xemacs-p): New variable. ! ! Tue Nov 24 23:31:50 1998 John W. Eaton ! ! * configure.in: Check for strftime too. ! Avoid checking for termios.h on NeXT systems. ! ! Thu Nov 19 16:07:57 1998 John W. Eaton ! ! * aclocal.m4 (OCTAVE_CXX_PREPENDS_UNDERSCORE): New macro. ! * configure.in: Use it. ! * acconfig.h: Add #undef for it. ! ! Thu Nov 12 10:42:25 1998 John W. Eaton ! ! * emacs/otags: New script from Mario Storti ! . ! * emacs/Makefile.in: Add it to the list of files to distribute and ! install. ! ! Wed Nov 11 17:26:26 1998 John W. Eaton ! ! * configure.in (AC_OUTPUT): Add libcruft/amos/Makefile. ! Delete libcruft/specfun/Makefile. ! ! Mon Nov 9 08:53:03 1998 John W. Eaton ! ! * Makeconf.in (LIBGLOB): Add a place for substitution to occur. ! (GLOB_INCFLAGS): Define as @GLOB_INCFLAGS@, not @DLFCN_INCFLAGS@. ! (do-subst-config-vals): Don't forget LIBGLOB. ! * octave-bug.in (LIBGLOB): Substitute here too, and add it to the ! list of configuration items to print. ! ! Mon Nov 2 20:33:16 1998 John W. Eaton ! ! * configure.in: Define __NO_MATH_INLINES. ! * acconfig.h: Add #undef for it. ! ! * configure.in (AC_OUTPUT): Escape newlinew in macro call with \. ! ! * install-octave.in (SHLEXT): Substitute. ! (SHLEXT_VER): Define. ! Use them for installing shared libraries. ! Use subshells to avoid having to cd back to $distdir. ! (distdir): Delete variable. ! ! Fri Oct 2 14:23:59 1998 Kurt Hornik ! ! * octave-inf.el (inferior-octave-prompt): Also match prompts of ! the form `octave.bin:1>' which come from using precopiled binary ! versions. ! ! Thu Sep 24 13:51:03 1998 John W. Eaton ! ! * configure.in (AC_OUTPUT): Add libcruft/ordered-qz to the list. ! Delete libcruft/balgen and libcruft/eispack from the list. ! ! Mon Aug 31 12:07:02 1998 John W. Eaton ! ! * config.sub: Accept armv4 everywhere arm is allowed. ! ! Tue Aug 18 17:02:25 1998 John W. Eaton ! ! * mkoctfile.in: Allow -DDEF on command line. ! ! Thu Jun 18 20:24:40 1998 Roman Hodek ! ! * configure.in (RLD_FLAG): Set correctly for Linux on all ! architectures. From ! ! Thu May 28 10:17:45 1998 John W. Eaton ! ! * configure.in: When checking for glob stuff, make sure that the ! systsem header file has all the definitions that we need. If not, ! set up to use our replacement library. ! ! Mon May 18 11:33:45 1998 John W. Eaton ! ! * mkoctfile.in: Fix typos in case statement. ! ! Fri May 15 00:34:54 1998 John W. Eaton ! ! * configure.in: Make sure install-octave is executable. ! ! * install-octave.in (oct_files): Don't cd to src. ! (have_find): Delete variable (assume all systems have find). ! ! Thu May 14 10:29:30 1998 John W. Eaton ! ! * aclocal.m4 (OCTAVE_SET_DEFAULT): Allow values to come from the ! environment. ! ! * Makefile.in (binary-dist): Don't set LDFLAGS to -static. ! Run configure with --enable-shared and --enable-lite-kernel. ! ! * octMakefile.in (DISTFILES): Include README.MachTen in the list. ! (XBINDISTFILES): Include README.MachTen in the list. ! Delete README.NLP from the list ! * README.MachTen: New file. ! ! * configure.in: Add -mno-fp-in-toc on ibm-aix4 systems. ! From Philippe.Defert@cern.ch . ! ! Tue May 5 14:43:36 1998 John W. Eaton ! ! * aclocal.m4 (OCTAVE_PROG_G77): Compile trivial program instead of ! just running ${f77-f77} -v on nothing. ! Convert all uses of $F77 to ${F77-f77}. ! ! Mon May 4 12:08:36 1998 John W. Eaton ! ! * emacs/octave-mod.el (octave-mode): Make comment-multi-line local ! and set to nil. ! ! Tue Apr 28 14:28:14 1998 John W. Eaton ! ! * aclocal.m4 (OCTAVE_FLIBS): Really do skip -lkernel32. ! ! Thu Apr 23 23:26:19 1998 John W. Eaton ! ! * kpathsea: Update to version 3.2. ! ! Mon Apr 20 21:58:39 1998 John W. Eaton ! ! * configure.in (dlfcn.h): Add check. ! ! Sat Apr 18 20:15:37 1998 John W. Eaton ! ! * configure.in (USE_GNU_INFO): Delete everything related to this. ! * acconfig.h (USE_GNU_INFO): Delete undef. ! ! Tue Apr 14 15:33:20 1998 John W. Eaton ! ! * install-octave.in: Improve error messages if version number or ! host architecture can't be found. ! ! * install-octave.in: Don't install info reader. ! ! Fri Mar 27 02:54:59 1998 John W. Eaton ! ! * aclocal.m4 (OCTAVE_F2C_F77_COMPAT): Use a Fortran subroutine ! instead of a function. ! ! Tue Mar 10 17:28:20 1998 John W. Eaton ! ! * configure.in (RLD_FLAG): Use $(octlibdir), not $(libdir). ! ! Mon Mar 2 00:02:26 1998 John W. Eaton ! ! * install-octave.in: Explicitly set permissions on ls-R files. ! ! * configure.in: Don't disable GNU Info on cygwin32 systems. ! ! * install-octave.in: New file. ! * configure.in: Create install-octave. ! * octMakefile.in (distclean, maintainer-clean): Delete install-octave. ! (DISTFILES): Distribute install-octave.in, not install-octave. ! ! Sun Mar 1 23:15:04 1998 John W. Eaton ! ! * configure.in: Fix typo in test for glob and fnmatch headers. ! ! Fri Feb 27 15:43:14 1998 John W. Eaton ! ! * configure.in: Fix support for dlopen on SCO systems. ! ! Mon Feb 23 13:06:11 1998 John W. Eaton ! ! * configure.in (ieee_fp_flag): Use -mieee-with-inexact on Alphas. ! Use octave_cv_f77_is_g77, not just f77_is_g77. ! ! Fri Feb 20 00:38:31 1998 John W. Eaton ! ! * configure.in, Makeconf.in: Try to set things up to use the ! system glob and fnmatch headers and functions if they exist. ! Better handling of include and lib flags. ! ! Thu Feb 19 01:21:19 1998 John W. Eaton ! ! * configure.in: Don't check for gamma or lgamma ! * acconfig.h: Delete undef for HAVE_GAMMA and HAVE_LGAMMA. ! ! Wed Feb 18 15:05:54 1998 John W. Eaton ! ! * configure.in: Don't check for vfork. ! ! Wed Feb 11 19:41:22 1998 John W. Eaton ! ! * Makeconf.in (mk-libdir-link): Don't create link if a directory ! named $(libdir)/octave already exists. ! ! Mon Feb 9 14:47:42 1998 John W. Eaton ! ! * octMakefile.in (INSTALL_SUBDIRS): Delete @INFO_DIR@. ! ! Thu Feb 5 03:04:09 1998 John W. Eaton ! ! * configure.in: Check for vfork. ! ! * config.h.bot (X_CAST): New macro. ! ! Wed Feb 4 01:42:50 1998 John W. Eaton ! ! * aclocal.m4 (OCTAVE_FLIBS): If ld_run_path is not absolute, kill it. ! ! Tue Feb 3 00:24:01 1998 John W. Eaton ! ! * Makeconf.in (do-subst-vals): Substitute $(libexecdir) too. ! ! Mon Feb 2 22:42:27 1998 John W. Eaton ! ! * configure.in: Define octlibdir. ! * Makeconf.in: Substitute value. ! (do-subst-config-vals): Set LIBDIR to $(octlibdir). ! (do-subst-default-vals): Substitute OCTLIBDIR too. ! ! Sat Jan 31 19:29:56 1998 John W. Eaton ! ! * acconfig.h: Add #undefs for HAVE_GAMMA and HAVE_LGAMMA to avoid ! bug in autoconf, but #if 0 them out to avoid warning messages ! about redefining them. ! ! Mon Jan 26 13:26:09 1998 John W. Eaton ! ! * Makeconf.in (do-subst-config-vals): Substitute XTRA_CFLAGS and ! XTRA_CXXFLAGS. ! * mkoctfile.in: Substitute XTRA_CFLAGS and XTRA_CXXFLAGS, not ! GCC_IEEE_FP_FLAG, HOST_CXXFLAGS, and NO_IMPLICIT_TEMPLATES. ! (ALL_CFLAGS): Use XTRA_CFLAGS, not GCC_IEEE_FP_FLAG here. ! (ALL_CXXFLAGS): Use XTRA_CXXFLAGS, not GCC_IEEE_FP_FLAG, ! HOST_CXXFLAGS, and NO_IMPLICIT_TEMPLATES here. ! ! Sun Jan 25 01:59:47 1998 John W. Eaton ! ! * configure.in: (GXX_PICKY_FLAGS): Add -Weffc++. ! Use OCTAVE_CC_FLAG and OCTAVE_CXX_FLAG to add -Wall and for adding ! picky flags in AC_ARG_ENABLE(picky-flags ...) macro. ! ! * aclocal.m4 (OCTAVE_F2C_F77_COMPAT): Require OCTAVE_PROG_G77. ! Handle cross compiling with g77. ! (OCTAVE_REINSTALL_SIGHANDLERS): Provide defaults for cross compiling. ! ! * aclocal.m4 (OCTAVE_PROG_AR, OCTAVE_PROG_G77, OCTAVE_PROG_PAGER, ! OCTAVE_PROG_GNUPLOT, OCTAVE_PROG_RUNTEST, OCTAVE_F77_MAIN_FLAG): ! New macros. ! * configure.in: Use them in place of in-line code. ! ! Sat Jan 24 00:33:14 1998 John W. Eaton ! ! * aclocal.m4 (OCTAVE_HOST_TYPE): Don't set target_host_type. ! * configure.in: Use canonical_host_type in place of target_host_type. ! ! Fri Jan 23 02:47:57 1998 John W. Eaton ! ! * configure.in: Also check for -fno-rtti. ! ! Thu Jan 15 23:12:27 1998 John W. Eaton ! ! * config.guess, config.sub: Update to new version from the FSF. ! * configure.in: Match alpha*-... instead of just alpha-... to cope ! with new strings like alphaev56-dec-osf4.0b returned from ! config.guess. ! ! * aclocal.m4 (OCTAVE_CC_FLAG, OCTAVE_CXX_FLAG): New macros. ! * configure.in: Use them to find out if the C and C++ compilers ! support -mieee-fp, -mieee, -fno-implicit-templates, and ! -fno-exceptions instead of relying on version information. Add ! found flags to XTRA_CFLAGS and XTRA_CXXFLAGS instead of using ! GCC_IEEE_FP_FLAG and NO_IMPLICIT_TEMPLATES. ! Delete unused variable HOST_CXXFLAGS. ! * Makeconf.in: Use XTRA_CFLAGS and XTRA_CXXFLAGS instead of ! GCC_IEEE_FP_FLAG and NO_IMPLICIT_TEMPLATES. ! Delete unused variable HOST_CXXFLAGS. ! ! Thu Dec 11 09:43:56 1997 John W. Eaton ! ! * config.h.bot: Define CONST_CAST and STATIC_CAST too. ! ! * configure.in (SH_LD): Set default to $CXX, not $CC. ! ! Mon Dec 1 00:49:56 1997 John W. Eaton ! ! * configure.in (AC_OUTPUT): Add libcruft/slatec-err/Makefile. ! ! Sun Nov 30 18:19:45 1997 John W. Eaton ! ! * configure.in: Check for gamma and lgamma too. ! ! Fri Nov 28 23:21:17 1997 John W. Eaton ! ! * configure.in (AC_OUTPUT): Include libcruft/specfun/Makefile. ! ! Fri Nov 28 13:32:26 1997 Kurt Hornik ! ! * octave-inf.el (inferior-octave-directory-tracker): Anchor ! regexp match to beginning of command string. ! ! Wed Nov 26 00:38:31 1997 John W. Eaton ! ! * configure.in (SPECIAL_MATH_LIB): If libdxml exists on DU ! systems, define SPECIAL_MATH_LIB. ! * Makeconf.in (SPECIAL_MATH_LIB): Substitute it. ! ! Wed Nov 19 01:54:11 1997 John W. Eaton ! ! * aclocal.m4 (OCTAVE_CXX_NEW_FRIEND_TEMPLATE_DECL): Don't forget ! to call AC_LANG_RESTORE. ! ! * configure.in (CXX_VERSION): Require 2.7.2 or later. ! ! Wed Nov 19 01:38:58 1997 Mumit Khan ! ! * aclocal.m4 (OCTAVE_CXX_NEW_FRIEND_TEMPLATE_DECL): New macro ! check for new friend template declaration syntax (guiding ! declarations in DWP). ! * configure.in: Use it. ! * config.h.in: Add undef for CXX_NEW_FRIEND_TEMPLATE_DECL. ! ! * configure.in (CC_VERSION, CXX_VERISON): Check for egcs snapshots. ! ! Mon Oct 20 01:31:45 1997 John W. Eaton ! ! * configure.in: Reprint important warning messages at the end of ! the run. ! ! Fri Oct 17 04:43:27 1997 John W. Eaton ! ! * Include the following change from RMS for octave-mode.el: ! ! 1997-04-22 Richard Stallman ! ! * octave-mod.el (inferior-octave-output-list): Declare here ! to avoid compiler warnings. ! (inferior-octave-output-string): Likewise. ! (inferior-octave-receive-in-progress): Likewise. ! ! Tue Oct 14 10:48:28 1997 Kurt Hornik ! ! * emacs/octave-mod.el (octave-block-match-alist): Move ! `otherwise' to right after `case' to have octave-close-block() ! correctly close a `switch' block by `endswitch'. ! ! Thu Oct 2 01:37:15 1997 John W. Eaton ! ! * aclocal.m4 (OCTAVE_FLIBS): Ignore -lc and -lgcc. ! From "Ram'on Garc'ia Fern'andez" ! ! * mkoctfile.in: Handle -IDIR option. ! ! Thu Sep 25 11:47:45 1997 John W. Eaton ! ! * mkoctfile.in: Really add link options to link command. ! Also handle -LDIR options. ! ! Fri Sep 19 09:35:59 1997 Kurt Hornik ! ! * octave-inf.el (inferior-octave-startup-args): Set to '("-i") to ! force interactive behavior. ! ! Wed Sep 10 15:31:03 1997 Kurt Hornik ! ! * emacs/octave-mod.el (octave-auto-indent): New variable. ! (octave-electric-semi, octave-electric-space): Use it. ! ! * emacs/octave-mod.el (octave-maybe-insert-continuation-string): New ! function. ! (octave-auto-fill): No longer calls do-auto-fill. Should now ! avoid breaking lines after comment starts or before code line ! continuation expressions. ! (octave-fill-paragraph): Move forward a line if octave-auto-fill ! gave up. ! ! * emacs/octave-mod.el (octave-before-magic-comment-p): New function. ! (octave-comment-indent): Handle magic comments correctly. ! (calculate-octave-indent): Handle magic comments correctly. ! ! * emacs/octave-inf.el (inferior-octave-prompt): Include the `debug' ! prompt issued by the Octave `keyboard' command. ! ! * emacs/octave-mod.el (octave-abbrev-table): Added abbrevs for switch, ! case, otherwise, and endswitch. ! (octave-begin-keywords): Added switch. ! (octave-else-keywords): Added case and otherwise. ! (octave-end-keywords): Added endswitch. ! (octave-block-match-alist): Added an entry for switch syntax. ! (calculate-octave-indent): Added support for switch syntax. ! (octave-block-end-offset): New function. ! (octave-comment-indent): Fix a typo. ! ! * emacs/octave-hlp.el: Provide octave-hlp. ! ! * emacs/octave-inf.el: Provide octave-inf. ! ! Sun Sep 7 23:16:33 1997 John W. Eaton ! ! * configure.in Don't use OCTAVE_SET_DEFAULT to set values for ! bindir, datadir, exec_prefix, includedir, infodir, libdir, ! libexecdir, mandir. ! Don't use AC_PREFIX_DEFAULT, since we don't want to override the ! default setting anyway. ! ! Tue Aug 26 13:30:36 1997 John W. Eaton ! ! * octave-bug.in: CC bug report to user if $USER or $LOGNAME is set. ! ! Mon Aug 25 11:06:54 1997 John W. Eaton ! ! * octave-bug.in: Avoid clobbering existing dead bug report files ! by numbering them. ! ! Wed Aug 13 20:34:14 1997 John W. Eaton ! ! * emacs/octave-mod.el (octave-before-magic-comment-p): New function. ! (calculate-octave-indent, octave-comment-indent): Use it. ! ! Sun Aug 3 15:33:18 1997 John W. Eaton ! ! * info: Delete subdirectory. ! * Makefile.in (TARGETS, help): Delete info. ! * octMakefile.in (DISTSUBDIRS, BINDISTSUBDIRS): Delete info ! (binary-dist): Don't strip info/info. ! * install-octave: Don't install info. ! * configure.in: Don't run configure in info subdirectory. ! ! Fri Jul 25 14:05:15 1997 John W. Eaton ! ! * aclocal.m4 (OCTAVE_FLIBS): Avoid adding -lcrt0.o to FLIBS. ! ! Thu Jul 17 13:31:08 1997 John W. Eaton ! ! * aclocal.m4 (OCTAVE_FLIBS): Only accept an ld_run_path that is ! absolute. ! ! Wed Jul 9 19:27:38 1997 John W. Eaton ! ! * configure.in: Also check for getwd. ! ! Tue Jul 8 17:47:11 1997 John W. Eaton ! ! * aclocal.m4 (OCTAVE_FLIBS): Avoid grabbing an argument starting ! with a - as an option for another argument. ! ! Wed Jul 2 21:34:15 1997 John W. Eaton ! ! * emacs/octave-mod.el (octave-auto-indent): New variable. ! (octave-electric-semi, octave-electric-space): Use it. ! ! Thu Jun 26 22:16:59 1997 John W. Eaton ! ! * configure.in: Only set GCC_IEEE_FP_FLAG to -mieee-fp on Intel ! systems if it seems to work. ! ! Mon Jun 23 09:16:56 1997 John W. Eaton ! ! * configure.in (BOUNDS_CHECKING): Fix comment, allow bounds ! checking to be enabled. ! ! Fri Jun 20 14:26:17 1997 John W. Eaton ! ! * configure.in: Define SH_LD, SH_LDFLAGS, and RLD_FLAG for ! sparc-sun-sunos4*. ! ! * mkoctfile.in: Handle --strip. ! ! Sun Jun 15 16:24:03 1997 John W. Eaton ! ! * octMakefile.in (DISTSUBDIRS): Delete readline. ! (BINDISTSUBDIRS): Delete readline and kpathsea. ! (DISTDIRS): Add readline. ! ! Wed Jun 11 16:28:36 1997 John W. Eaton ! ! * mkoctfile.in: Allow more options, support for C and Fortran ! source, existing object files, etc. Based on patch from Guido ! Dietz . ! ! Fri Jun 6 15:20:42 1997 John W. Eaton ! ! * mkoctfile.in: Use eval to invoke compilation and linking ! commands. ! ! * octMakefile.in (dist, binary-dist): Don't worry about npsol or qpsol. ! * configure.in: Don't create libcruft/fsqp/Makefile, ! libcruft/npsol/Makefile, or libcruft/qpsol/Makefile. ! ! * octMakefile.in (DISTFILES): Don't distribute MAKEINFO.PATCH. ! ! * octMakefile.in (DISTFILES): Don't distribute README.NLP. ! * configure.in: Delete checks for FSQP, NPSOL, and QPSOL. ! * acconfig.h: Delete undefs for FSQP, NPSOL, and QPSOL. ! ! * readline: Update to new version (2.1). ! ! Thu Jun 5 01:38:04 1997 John W. Eaton ! ! * configure.in (SONAME_FLAGS): Define for some systems. ! * Makeconf.in: Substitute value here. ! ! * Makeconf.in (STATIC_LIBS): New variable. ! * configure.in: Handle --enable-static. ! ! * Makeconf.in (LIBEXT, SHLEXT_VER): New macros. ! (octlibdir, mk-libdir-link): Delete. ! ! Wed Jun 4 00:07:29 1997 John W. Eaton ! ! * Makeconf.in (mk-includedir-link, mk-libdir-link): Make them work. ! ! * configure.in (OCTAVE_PROGRAM_INVOCATION_NAME): Delete check. ! * aclocal.m4 (OCTAVE_PROGRAM_INVOCATION_NAME): Delete macro. ! ! Mon Jun 2 13:56:26 1997 John W. Eaton ! ! * configure.in: Move checks for RANLIB, AR, and ARFLAGS before ! checks for libf2c. ! ! Fri May 30 14:59:59 1997 John W. Eaton ! ! * configure.in: Fix typo in check for $with_f77. ! ! Thu May 22 16:48:34 1997 John W. Eaton ! ! * configure.in (AC_OUTPUT): Remove duplicate entry for emacs/Makefile. ! ! * octMakefile.in (INSTALL_SUBDIRS): New macro. ! (install): Use it. ! ! * kpathsea: Update to new version (3.0). ! ! * readline: Update to new version (2.1-beta2). ! ! Wed May 21 16:33:33 1997 John W. Eaton ! ! * octMakefile.in (install, install-strip): Append version ! information to octave-bug and mkoctfile. ! (install, install-strip): Remove octave-bug and mkoctfile first. ! Ensure link is made in include directory. ! ! * configure.in (octlibdir): New variable. ! * Makeconf.in: Substitute it here. ! (do-subst-config-vals): Add -I${octincludedir} to INCFLAGS. ! Add -L${octlibdir} to LIBFLAGS. ! ! * Makeconf.in (mk-includedir-link, mk-libdir-link): New macros. ! ! Mon May 5 00:58:00 1997 John W. Eaton ! ! * configure.in: Make --enable-readline work again. ! * Makeconf.in: Ditto. ! ! Tue Apr 8 12:38:18 1997 John W. Eaton ! ! * mkoctfile.in: Do substitute SH_LD and SH_LDFLAGS. Don't ! substitute or use LIBFLAGS, RLD_FLAG, OCTAVE_LIBS, FLIBS, LEXLIB, ! TERMLIBS, LIBS, LDFLAGS, LIBPLPLOT, or LIBDLFCN. Use $SH_LD and ! $SH_LDFLAGS, not $CXX -shared. ! ! * Makeconf.in (do-subst-config-vals): Also substitute SH_LD and ! SH_LDFLAGS. ! ! Fri Mar 28 16:53:08 1997 John W. Eaton ! ! * configure.in: Don't add -fpe1 to FFLAGS on Alpha OSF/1 systems ! unless we are also using a version of gcc that appears to support ! IEEE floating point. ! ! * aclocal.m4 (OCTAVE_FLIBS): Require OCTAVE_HOST_TYPE. ! Skip -lkernel32 on cygwin32 systems. ! ! Wed Mar 26 17:04:11 1997 John W. Eaton ! ! * COPYING: Update to latest version that includes correct address ! for the FSF. ! ! Tue Mar 25 21:46:49 1997 John W. Eaton ! ! * aclocal.m4 (OCTAVE_CXXLIBS): Delete macro definition. ! * configure.in, mkoctfile.in, Makeconf.in, octave-bug.in: ! Delete use of OCTAVE_CXXIBS. ! ! Thu Mar 13 11:44:46 1997 John W. Eaton ! ! * configure.in: Move extra checks for Fortran compiler above ! checks for dynamic linking and shared library stuff. ! Handle --with-f77. Check for Fortran compiler compatibility, even ! if using g77. Handle --enable-picky-flags. ! ! * configure.in: Don't set special PIC options on SGI systems, ! since PIC is apparently the default. ! ! * aclocal.m4 (OCTAVE_CHECK_EXCLUSIVE_WITH_OPTIONS, ! OCTAVE_HOST_TYPE, OCTAVE_SET_DEFAULT): New macros. ! * configure.in: Use them. ! ! * octMakefile.in (distclean): Don't remove configure, config.h.in, ! BUGS, or INSTALL.OCTAVE. ! ! Wed Mar 12 16:56:56 1997 John W. Eaton ! ! * Makefile.in (install-strip): Don't try to set INSTALL_PROGRAM here. ! ! * emacs/Makefile.in (install-strip): New target. ! * dlfcn/Makefile.in: Ditto. ! * examples/Makefile.in: Ditto. ! ! Sun Mar 9 03:44:33 1997 John W. Eaton ! ! * config.h.bot (STATIC_CAST): Delete definition. ! ! Thu Mar 6 03:26:41 1997 Kurt Hornik ! ! * emacs/octave-hlp.el: Provide octave-hlp. ! * emacs/octave-inf.el: Provide octave-inf. ! ! * examples/info-emacs-octave-help: Require octave-hlp instead of ! loading it. ! ! Tue Mar 4 12:19:24 1997 Kurt Hornik ! ! * emacs/octave-mod.el: Properly indent switch statement. ! ! Mon Mar 3 15:44:42 1997 John W. Eaton ! ! * dlfcn/Makefile.in (DISTFILES): Add ftp-site. ! ! Sat Mar 1 15:23:14 1997 John W. Eaton ! ! * configure.in: Improve checks for gettimeofday. ! ! * Version 2.0.5 released. ! ! Sat Mar 1 01:34:08 1997 John W. Eaton ! ! * octMakefile.in (dist): Also delete CVS junk ! ! * config.h.bot: Unconditionally define WITH_KPATHSEARCH. ! ! Fri Feb 28 01:56:52 1997 John W. Eaton ! ! * emacs/octave-mod.el (octave-end-keywords): Add endswitch. ! (octave-end-keywords): Add otherwise and case. ! (octave-else-keywords): Add switch. ! (octave-abbrev-table): Add abbrevs for all of them. ! ! * configure.in (f77_rules_frag): Set default value to /dev/null ! and redfine as needed. ! (bsd_gcc_kluge_targets_frag): Likewise. ! ! Wed Feb 26 12:17:05 1997 John W. Eaton ! ! * octMakefile.in (maintainer-clean): Delete some more stuff. ! ! Fri Feb 21 20:38:25 1997 John W. Eaton ! ! * Makeconf.in (do-subst-config-vals): Remove extra -L from ! RLD_FLAG substitution. ! ! Thu Feb 20 02:58:05 1997 John W. Eaton ! ! * Version 2.0.4 released. ! ! * configure.in (SH_LDFLAGS): Add -fPIC for HP-UX. ! ! Tue Feb 18 09:22:04 1997 John W. Eaton ! ! * configure.in (SH_LDFLAGS): Fix typo in last change. ! (RLD_FLAG): Don't forget to put -shared in SH_LDFLAGS for alpha ! systems. ! ! * Version 2.0.3 released. ! ! Tue Feb 18 00:33:36 1997 John W. Eaton ! ! * octMakefile.in (binary-dist): Strip src/octave and info/info. ! ! * examples/oregonator.m, examples/oregonator.cc: New files. ! * examples/Makefile.in (SOURCES): Add them to the list. ! ! Fri Feb 14 14:07:08 1997 John W. Eaton ! ! * install-octave: Don't fail if LIBRARIES file is missing. ! Don't try to install .oct files if there aren't any. ! ! * octMakefile.in (bin-dist-type): Delete target. ! (binary-dist): Don't depend on bin-dist-type. ! Don't delete config.status or config.h here. ! (BINDISTFILES): Include config.status and config.h here. ! (dist): Don't delete Makefile here. ! (binary-dist): Avoid empty chmod command. ! ! * Makefile.in (config-check): New target. ! (all): Depend on config-check. ! (static-binary-distribution, dynamic-binary-distribution): Delete. ! (binary-distribution): If in source directory, run configure and ! make with appropriate args. ! ! * octMakefile.in (maintainer-clean, distclean): Don't delete Makefile. ! (CONF_DISTFILES): Distribute Makefile too. ! ! Thu Feb 13 16:25:09 1997 John W. Eaton ! ! * configure.in (SH_LD, SH_LDFLAGS): New variables. ! * Makeconf.in: Substitute them. ! ! * configure.in (SH_LIBS, SH_FLIBS, SH_TERMLIBS): Delete. ! ! * Makeconf.in (SH_LIBS, SH_FLIBS, SH_TERMLIBS): Delete. ! ! * octave-bug.in: Reinstate RLD_FLAG. ! * mkoctfile.in: Likewise. ! * Makeconf.in: Likewise. ! ! * configure.in: Reinstate RLD_FLAG, but make it optional. ! ! Tue Feb 4 14:10:35 1997 John W. Eaton ! ! * octMakefile.in (binary-dist): Use find and xargs instead of ! requiring chmod to support X. ! ! Mon Feb 3 23:51:08 1997 John W. Eaton ! ! * examples/info-emacs-octave-help: Update from Kurt Hornik. ! ! Fri Jan 31 20:41:15 1997 John W. Eaton ! ! * dlfcn/Makefile.in (all): Make libdlfcn.a, not dlfcn.a. ! ! Wed Jan 29 00:18:55 1997 John W. Eaton ! ! * Makeconf.in: Use -M instead of -MM to generate dependencies. ! Don't strip $(srcdir) from output. ! ! * examples/Makefile.in (install): Install info-emacs-info and ! info-emacs-octave-help in $(archlibdir). ! ! * configure.in (INSTALL_SCRIPT): Substitute this in Makefiles. ! * octMakefile.in (INSTALL_SCRIPT): New macro. ! (install): Use it. ! * Makefile.in (install-strip): New target. ! ! Tue Jan 28 09:48:32 1997 John W. Eaton ! ! * aclocal.m4 (OCTAVE_FLIBS): Don't look for values-X*.o. This is ! apparently added automatically now by gcc. Don't put space ! between -L and directory name. ! ! * Makefile.in (help): New target. ! (header-msg): extract from all. ! (all, help): Depend on header-msg. ! ! * aclocal.m4 (ld_run_path): Fix typo in last fix. ! ! Mon Jan 27 00:10:10 1997 John W. Eaton ! ! * Version 2.0.2 released. ! ! * configure.in: Add check for usleep(). ! (bsd_gcc_kluge_targets_frag): New fragment. ! ! * Makefile.in: Delete `internal' targets. ! (static-binary-dist, dynamic-binary-dist): Special cases. ! ! * octMakefile.in (static-binary-dist, dynamic-binary-dist): ! New targets. ! (binary-dist, bin-dist): Delete. ! ! Sun Jan 26 19:39:51 1997 John W. Eaton ! ! * emacs/Makefile.in: New file. ! * configure.in: create emacs/Makefile. ! * octMakefile.in: Move/add emacs dir to the appropriate lists. ! ! Sat Jan 25 22:27:14 1997 John W. Eaton ! ! * aclocal.m4 (OCTAVE_CHECK_TYPE): New macro, stolen from bash. ! * configure.in: Use it. ! * acconfig.h: Add #undef for sigset_t. ! ! * configure.in (RLD_FLAG): Delete. ! * mkoctfile.in (RLD_FLAG): Delete. ! * octave-bug.in (RLD_FLAG): Delete. ! * Makeconf.in (RLD_FLAG): Delete. ! ! * Makefile.in (bin-dist): New target. ! ! * install-octave: Rename from doinstall.sh. Update for 2.x. ! ! Wed Jan 22 11:14:07 1997 John W. Eaton ! ! * aclocal.m4 (ld_run_path): Anchor search at beginning of line to ! avoid GNU sed bug on HP-UX systems. Use just one sed command. ! ! * emacs/octave-hlp.el, emacs/octave-inf.el, emacs/octave-mod.el: ! New files from Kurt Hornik. ! * emacs/octave.el: Delete. ! ! Mon Jan 20 11:16:21 1997 John W. Eaton ! ! * mkoctfile.in (ALL_CXXFLAGS): Delete reference to -lg++. ! ! * configure.in (RLD_FLAG): For sparc-sun-sunos4*, remove space ! between -L and $(libdir). ! (FPICFLAG): If using g77, set it to -fPIC. ! ! Sun Jan 19 15:57:20 1997 John W. Eaton ! ! * Makeconf.in, configure.in: Delete FUGLY. ! ! Wed Jan 8 23:12:02 1997 John W. Eaton ! ! * configure.in (DEFAULT_PAGER): On cygwin32 systems, also look for ! more.com. ! ! Tue Jan 7 00:16:35 1997 John W. Eaton ! ! * Version 2.0.1 released. ! ! Thu Dec 19 16:18:59 1996 John W. Eaton ! ! * aclocal.m4 (OCTAVE_FLIBS): Only add -Xlinker args if compiler is ! gcc. ! ! Sat Dec 14 09:46:50 1996 John W. Eaton ! ! * README.Linux: New file. ! * octMakefile.in: Distribute it. ! ! Fri Dec 13 22:37:49 1996 John W. Eaton ! ! * configure.in (TERMLIBS): Look for termcap and terminfo after ! ncurses and curses. ! ! Thu Dec 12 02:27:08 1996 John W. Eaton ! ! * Makeconf.in (ALL_LDFLAGS): Add CPICFLAG here since gcc needs it ! on some systems. ! ! * configure.in (FPICFLAGS): Set to -fPIC if using g77 on HP/UX. ! ! * Makefile.in, octMakefile.in: Delete all doc-dist, local-dist, ! and split-dist targets. Likewise for all other Makefiles in the ! subdirectories. ! ! * README.Windows: Renamed from README.WINDOWS. ! ! Tue Dec 10 01:33:52 1996 John W. Eaton ! ! * Version 2.0 released. ! ! * octMakefile.in (binary-dist): Print message instead of making a ! binary distribution. ! ! Mon Dec 9 11:28:27 1996 John W. Eaton ! ! * README.WINDOWS: New file. ! * octMakefile.in: Distribute it. ! ! * configure.in: Substitute EXE. On cygwin32 systems, set it to .exe. ! * Makeconf.in (EXE): Add definition. ! ! * configure.in: On cygwin32 systems, set default to disable GNU info. ! ! * aclocal.m4 (OCTAVE_STRING_NPOS): New macro. ! * configure.in: Call it. ! ! * acconfig.h: Add undef for NPOS. ! * config.h.bot: Remove kluge for deciding whether to define NPOS. ! ! Thu Dec 5 11:05:02 1996 John W. Eaton ! ! * config.sub: Update to current version from FSF. ! ! * Makeconf.in (ALL_LDFLAGS): Add $(FORTRAN_MAIN_FLAG). ! * configure.in (FORTRAN_MAIN_FLAG): Substitute it. ! ! * octave-bug.in: Prompt for abort, edit, list, or send. ! Get subject from message in case it has been edited. ! ! * configure.in: When looking for libf2c, provide definitions for ! MAIN_ and MAIN__. ! ! Tue Dec 3 11:35:35 1996 John W. Eaton ! ! * config.guess: Delete second copy of script in file. ! ! Sun Nov 24 21:40:25 1996 John W. Eaton ! ! * configure.in: Set GCC_IEEE_FP_FLAG to -mieee-fp on all x86 ! systems, not just those running Linux. ! ! Fri Nov 22 15:10:34 1996 John W. Eaton ! ! * emacs/octave.el: Update from Kurt Hornik to with fixes for ! fill-paragraph. ! ! Wed Nov 20 00:33:03 1996 John W. Eaton ! ! * Version 1.93. ! ! * aclocal.m4 (OCTAVE_STRUCT_GR_PASSWD): New macro. ! * configure.in: Use it. ! * acconfig.h (HAVE_GR_PASSWD): Add undef. ! ! Tue Nov 19 23:10:01 1996 John W. Eaton ! ! * Makeconf.in (INCFLAGS): Add libcruft/misc directory. ! ! Thu Nov 14 00:07:31 1996 John W. Eaton ! ! * emacs/octave.el (octave-text-functions): Change set and show to ! gset and gshow. ! ! * Makeconf.in (TEXI2DVI): Define to be our own private version. ! ! * texi2dvi: New file. ! * octMakefile.in (DISTFILES): Add it to the list. ! ! * configure.in: Don't substitute values in src/mk-oct-links.in. ! ! * emacs/octave.el: Update to version 0.8.6, from Kurt Hornik. ! ! * configure.in (RLD_FLAG): Surround case pattern in changequote. ! ! * Version 1.92. ! ! Wed Nov 13 11:04:26 1996 John W. Eaton ! ! * configure.in: Don't set or substitute LIBINFO. ! (infofile): Set and substitute a default value. ! ! * Makeconf.in (do-subst-default-values): Substitute it here. ! ! * configure.in: If running on an SCO system, define SCO, and force ! HAVE_ISINF and HAVE_ISNAN to be defined. ! Also check for ieeefp.h and nan.h. ! * acconfig.h (HAVE_ISINF, HAVE_ISNAN, SCO): Add undefs. ! ! Tue Nov 12 21:50:49 1996 John W. Eaton ! ! * MAKEINFO.PATCH: Update to use patch relative to texinfo-3.9. ! ! * INFO.PATCH: New file. ! * octMakefile.in (DISTFILES): Add it. ! ! * info: Update to current release from texinfo-3.9. ! ! Mon Nov 11 23:56:58 1996 John W. Eaton ! ! * config.h.bot: Only check value of __GNUC__ and __GNUC_MINOR__ if ! __GNUC__ is defined. ! ! Fri Nov 8 11:15:07 1996 John W. Eaton ! ! * Makeconf.in (version): Look in $(TOPDIR)/src then ! $(srcdir)/$(TOPDIR)/src for version.h. ! ! * configure.in (TERMLIBS): Print warning message if no term ! library is found. ! (CXXLIB_LIST, CXXLIB_PATH, FLIB_LIST, FLIB_PATH): Delete. ! * Makeconf.in (CXXLIB_LIST, CXXLIB_PATH, FLIB_LIST, FLIB_PATH): ! Delete. ! (do-subst-default-vals): Delete CXXLIB_LIST, CXXLIB_PATH, ! FLIB_LIST, and FLIB_PATH from the list. ! ! Thu Nov 7 12:43:36 1996 John W. Eaton ! ! * octMakefile.in (bin-dist-tar): Delete references to octtopnm. ! ! * configure.in (RLD_FLAG): Define if x86-linux. ! ! * Version 1.91. ! ! Wed Nov 6 16:26:39 1996 John W. Eaton ! ! * configure.in: Add checks for group stuff. ! ! Tue Nov 5 12:32:30 1996 John W. Eaton ! ! * configure.in: Add checks for geteuid, getuid. ! ! * configure.in: Comment out code to handle --enable-readline since ! it doesn't work yet. ! ! * aclocal.m4 (OCTAVE_SIGNAL_CHECK, OCTAVE_REINSTALL_SIGHANDLERS): ! New checks stolen from bash 2.0 config. ! * configure.in: Use them. ! * acconfig.h: Add #undefs for HAVE_BSD_SIGNALS, HAVE_POSIX_SIGNALS, ! HAVE_USG_SIGHOLD, and MUST_REINSTALL_SIGHANDLERS. ! Mon Nov 4 11:31:22 1996 John W. Eaton ! * configure.in: Check for gethostname in libsocket. Apparently ! needed for some SCO systems. ! * emacs/octave.el: Update to version 0.8.5 from Kurt Hornik. ! Fri Nov 1 01:33:40 1996 John W. Eaton ! * octMakefile.in (octave-bug, mkoctfile): After substituting ! values, chmod a+rx. ! Thu Oct 31 13:50:06 1996 John W. Eaton ! * octMakefile.in (DISTFILES): Add NEWS.[0-9]. ! * NEWS.1: Old news. ! * NEWS: Just keep news since last major release. ! Wed Oct 30 01:04:13 1996 John W. Eaton ! * Version 1.90. ! * configure.in: Default is now no internal bounds checking. ! * Makefile.in (all): Fix message to say 2.7.2, not 2.7.0. ! * config.h.bot (GCC_ATTR_NORETURN): Rename from NORETURN. ! (GCC_ATTR_UNUSED): Rename from GCC_ATTRIBUTE_UNUSED. ! (NPOS): Define if using gcc 2.8.x or later. ! * octMakefile.in (DIRS_TO_MAKE): Add localarchlibdir to list. ! * configure.in (localarchlibdir): New variable. ! * Makeconf.in (localarchlibdir): Substitute it. ! (do-subst-default-vals): Likewise. ! Sun Oct 27 14:03:36 1996 John W. Eaton ! * Makeconf.in (do-subst-config-vals): Split into two sed commands ! to try to avoid fixed limits in some seds and/or systems. ! Fri Oct 25 01:13:45 1996 John W. Eaton ! * config.h.bot: Add definition for GCC_ATTRIBUTE_UNUSED. ! * configure.in: Define RUSAGE_TIMES_ONLY if cygwin32. ! * acconfig.h: Add undef. ! Thu Oct 24 21:17:53 1996 John W. Eaton ! * config.guess: Update to version that understands what to do for ! cygwin32 systems. ! Fri Oct 18 12:23:57 1996 John W. Eaton ! * configure.in: Don't comment out substitutions for plplot stuff. ! Wed Oct 16 12:01:37 1996 John W. Eaton ! * examples/Makefile.in (install): New target. ! Tue Oct 15 14:40:51 1996 John W. Eaton ! * configure.in: Comment out plplot stuff. ! In commands to get gxx_version and gcc_version, use simpler sed ! command to avoid confusing brain-dead vendor-supplied seds. ! Mon Oct 14 11:09:12 1996 John W. Eaton ! * octMakefile.in (maintainer-clean distclean): Remove mkoctfile too. ! (kpathsea.info): New target. ! (dist-info-files): New target. ! (links-for-dist, links-for-bin-dist, local-dist-tar): ! Depend on dist-info-files instead of individual files. ! Sat Oct 12 00:17:06 1996 John W. Eaton ! * examples/Makefile.in (clean, mostlyclean): New targets. ! * octMakefile.in (CLEANSUBDIRS): New macro. ! Use it for clean targets. ! * config.h.bot (STATIC_CAST, DYNAMIC_CAST, REINTERPRET_CAST): ! New macros. ! Wed Sep 25 12:24:20 1996 John W. Eaton ! * configure.in: Don't look in /usr/ucb/include to find getrusage ! on Solaris systems since that just seems to cause trouble. ! * Makeconf.in (UCB_INCFLAGS): Delete. ! Fri Aug 30 09:07:23 1996 John W. Eaton ! * configure.in (TERMLIBS): Add check for ncurses. ! Tue Aug 20 21:40:26 1996 John W. Eaton ! * configure.in: Always set FPICFLAG, CPICFLAG, CXXPICFLAG, SHLEXT, ! RLD_FLAG, DLFCN_DIR, even if SHARED_LIBS is false. ! Thu Aug 15 14:39:07 1996 John W. Eaton ! * configure.in (gxx_version, gcc_version): Strip out cygnus- from ! the version number. ! Tue Jul 30 12:55:43 1996 John W. Eaton ! * aclocal.m4 (OCTAVE_FLIBS): Also check for -bI:FILE arg to ld, ! for AIX systems. ! Thu Jul 25 03:09:29 1996 John W. Eaton ! * configure.in: On AIX systems, add "-ll -lld" to LIBDLFCN. ! Fri Jul 19 13:02:05 1996 John W. Eaton ! * configure.in: If using g77 on alpha, don't add -fpe1 to FFLAGS. ! Mon Jul 15 14:26:48 1996 John W. Eaton ! * config.sub: Update to new version from FSF (gcc sources). ! Thu Jun 13 16:38:51 1996 John W. Eaton ! * configure.in: Look for g77 before other fortran compilers. ! Thu Jun 6 00:05:47 1996 John W. Eaton ! * configure.in: Add check for multiple plot windows in gnuplot. ! * acconfig.h: Add #undef for GNUPLOT_HAS_FRAMES. ! Wed May 22 15:05:40 1996 John W. Eaton ! * configure.in (UCB_INCFLAGS): Another kluge to try to find ! getrusage on Solaris systems. ! * Makeconf.in Substitute it. ! * configure.in (SH_LIBS, SH_FLIBS, SH_TERMLIBS): Define. ! * Makeconf.in: Substitute. ! Wed May 22 02:42:32 1996 Kurt Hornik ! * emacs/octave.el (octave-indent-new-line): Protect ! octave-indent-line with save-excursion. ! (octave-calc-indent-this-line): Attempt to handle end tokens that ! are not on separate lines. ! (octave-electric-semi): Make `;' self-insert if inside comment. ! (octave-previous-line): Don't try to go back past the beginning of ! the buffer. ! Tue May 21 23:11:46 1996 John W. Eaton ! * configure.in (F77): Also check for f90. ! Mon May 20 12:22:54 1996 John W. Eaton ! * emacs/octave.el (octave-indent-new-line): Make it do what the ! docstring says it does. ! * octave-bug.in: Fix previous change so it also matches things ! like 1.90, not just 1.1.90. ! Fri May 17 09:58:49 1996 Kurt Hornik ! * emacs/octave.el (octave-electric-semi): Also call octave-indent-line ! to indent the current line after inserting a semicolon. ! Fri May 17 02:53:49 1996 John W. Eaton ! * octMakefile.in (DIRS_TO_MAKE): Add octincludedir. ! (all): Add mkoctfile. ! * configure.in: Don't set values for exec_prefix, bindir, datadir, ! libdir, libexecdir, includedir, mandir, or infodir, so that they ! can be set from the configure command line. ! * configure.in, Makeconf.in: Handle mandir, man1dir and man1ext. ! Change topincludedir to includedir. Use octincludedir as the ! subdirectory of includedir where we really install include files. ! * octave-bug.in (BUGADDR): Also set to octave-maintainers if this ! looks like a pretest version number. ! * Makeconf.in (do-subst-config-vals): Use $< instead of ! referencing $(srcdir) directly. ! (do-subst-default-vals): Likewise. ! * octMakefile.in (octave-bug): Depend on octave-bug.in ! (mkoctfile): Likewise, depend on mkoctfile.in. ! Thu May 16 11:49:46 1996 John W. Eaton ! * octMakefile.in (DISTFILES): Add mkoctfile.in. ! (install): Install mkoctfile too. ! * aclocal.m4 (OCTAVE_F2C_F77_COMPAT): Fix typo in last change ! Mon May 13 04:02:29 1996 John W. Eaton ! * configure.in (UGLY_DEFS): Quote " with more \'s. ! * Makeconf.in (do-subst-config-vals): Quote substitutions here. ! * octave-bug.in, mkoctfile: Not here. ! * octMakefile.in (octave-bug, mkoctfile): Depend on Makeconf, ! octMakefile. ! * Makeconf.in (do-subst-default-vals): New definition, from ! src/Makefile.in. ! * Makeconf.in (do-subst-config-vals): Define here. ! * octMakefile.in: Not here. ! * octave-bug.in: Handle more configuration stuff. ! * configure.in (config_opts): Set from ac_configure_args and subst. ! * Makeconf.in: Handle config_opts. ! * octMakefile.in (do-subst-config-vals): Substitute them. ! Sun May 12 03:37:55 1996 John W. Eaton ! * Makeconf.in (TERMLIBS): Substitute here. ! * configure.in (topincludedir): New variable. ! * Makeconf.in (libexecdir): Substitute it. ! * octMakefile.in (do-subst-config-vals): Define new command. ! (octave-bug): Use it. ! (mkoctfile): New target. ! * Makefile.in (TARGETS): Add mkoctfile. ! * examples: New subdirectory. ! * octMakefile.in: Add it to the appropriate lists. ! * configure.in: Create examples/Makefile. ! * octMakefile.in (DIRS_TO_MAKE): Add $(libdir) here. ! (install): Use INSTALL_PROGRAM to install octave-bug script. ! Also install config.h. ! * aclocal.m4 (OCTAVE_F2C_F77_COMPAT): Provide a definition for ! MAIN__ on Linux systems. ! Tue Apr 30 05:44:29 1996 John W. Eaton ! * configure.in: Handle --enable-bounds-check. ! * acconfig.h: Add undef for BOUNDS_CHECKING ! Mon Apr 29 01:42:38 1996 John W. Eaton ! * configure.in (AC_FUNC_SETVBUF_REVERSED): Delete. Octave doesn't ! need this check (it was for info, which has its own configure now). ! Sun Apr 28 05:41:26 1996 John W. Eaton ! * configure.in (DEFAULT_PAGER): Don't append -e to less here. ! Sat Apr 27 22:23:51 1996 John W. Eaton ! * configure.in: Check for pid_t and sys/types.h. ! Tue Apr 23 17:44:18 1996 John W. Eaton ! * configure.in: Check for fcntl.h, not sys/fcntl.h. ! Add checks for various system calls. ! Sun Apr 7 16:42:54 1996 John W. Eaton ! * configure.in: Check for strdup. ! * Makefile.in (TARGETS): Add dlfcn. ! * octMakefile.in (DISTSUBDIRS): Add dlfcn. ! (SUBDIRS): Add @DLFCN_DIR@. ! * configure.in: On AIX systems: set DLFCN_DIR=dlfcn when doing ! shared libraries, bypass checks for dlopen, etc., set and ! substitute LIBDLFCN and DLFCN_INCFLAGS. Create dlfcn/Makefile. ! Sat Apr 6 21:45:40 1996 John W. Eaton ! * Makeconf.in (%.d : %.cc, %.d : %.c): Add dependency for pic/%.o. ! Fri Mar 29 13:38:40 1996 John W. Eaton ! * octMakefile.in (maintainer-clean distclean): Delete mk-oct-links. ! Wed Mar 27 09:05:01 1996 John W. Eaton ! * aclocal.m4 (OCTAVE_FLIBS): Fix typo in message. ! Tue Mar 26 02:41:16 1996 John W. Eaton ! * configure.in (UGLY_DEFS): Undo previous change. ! When checking for various libraries, don't check for main(), but ! instead look for functions that are actually supposed to be in ! those libraries. ! Require autoconf 2.9. ! If using solaris2, don't add /usr/ucblib/libucb.a to LIBS until ! near the very end, then check for for getrusage and times just ! after that. ! * Makeconf.in (UGLY_DEFS): Ditto. ! * octave-bug.in: Don't send empty bug reports. ! Sat Mar 23 04:55:46 1996 John W. Eaton ! * octMakefile.in (DISTDIRS): Omit plplot for now. ! * Makefile.in (TARGETS): Likewise. ! Fri Mar 22 06:15:44 1996 John W. Eaton ! * configure.in: Add checks for sys/times.h and times(). ! (GCC_IEEE_FP_FLAG): Define this if using gcc 2.8.x or later on ! Alpha/OSF systems. ! Wed Mar 20 02:04:08 1996 John W. Eaton ! * octMakefile.in (octave.info): cd to doc/interpreter, not doc. ! Sun Mar 3 10:01:13 1996 John W. Eaton ! * config.h.bot: Define HEAVYWEIGHT_INDEXING here. ! * Makefile.in (TARGETS): Remove dld. ! * octMakefile.in (DISTSUBDIRS): Ditto. ! * configure.in: Don't create dld/Makefile. ! Do create doc/fac/Makefile, doc/interpreter/Makefile, ! doc/liboctave/Makefile, and doc/refcard/Makefile. ! Thu Feb 29 08:55:25 1996 John W. Eaton ! * Makeconf.in (%.o : %.c): Use pattern rule instead of suffix rule. ! (%.o : %.cc): Likewise. ! (pic/%.o : %.c, pic/%.o : %.cc): Use separate rules instead of ! expecting one rule to generate two output files. ! * configure.in (f77_rules_frag): Use separate rules here too. ! Mon Feb 26 03:34:12 1996 John W. Eaton ! * configure.in: If --disable-dl or --disable-shl, don't check for ! dynamic linking functions. ! (includedir): Append version. ! Wed Feb 14 12:20:57 1996 John W. Eaton ! * octMakefile.in (snapshot-version): Don't quote version number. ! * aclocal.m4 (OCTAVE_FLIBS): Avoid setting FLIBS=" ". ! Sat Feb 10 12:59:22 1996 John W. Eaton ! * glob/Makefile.in (install): New target. ! Fri Feb 9 14:00:53 1996 John W. Eaton ! * configure.in: Fix help text for --enable-shared option. ! Thu Feb 8 10:17:55 1996 John W. Eaton ! * octMakefile.in (CONF_DISTFILES): New variable. ! (DISTFILES): Use it instead of listing things twice. ! (CONF_DISTSUBDIRS): New variable. ! (conf-dist): New target. ! * Makefile.in (TARGETS): Add conf-dist. ! * configure.in (CXX_VERSION, CC_VERSION): Substitute them. ! * octMakefile.in (octave-bug): Substitute them here too. ! * octave-bug.in: Put them in the configuration message. ! Sat Feb 3 08:53:56 1996 John W. Eaton ! * configure.in: RLD_FLAG should be empty by default, but give it a ! value for alpha-dec-osf* systems. ! Fri Feb 2 23:03:40 1996 John W. Eaton ! * Makeconf.in: Actually do add substitutions for FPICFLAG, ! CPICFLAG, and CXXPICFLAG. ! Thu Feb 1 14:58:16 1996 John W. Eaton ! * configure.in (%.c : %.f): Fix typo. ! Wed Jan 24 14:47:58 1996 John W. Eaton ! * configure.in: Also configure in glob subdirectory. ! Make pattern rule say how to make .o from .f, not .f from .o. Duh. ! * octMakefile.in: Add glob stuff to the appropriate lists. ! * Makeconf.in: Likewise. ! * aclocal.m4: Add test for program_invocation_name. ! * configure.in: Use it here. ! * acconfig.h: Add #undef here. ! Mon Jan 22 17:32:00 1996 John W. Eaton ! * configure.in: Add checks for mode_t, off_t, size_t, uid_t, ! dev_t, ino_t, and nlink_t typedefs. ! * acconfig.h: Add undefs for dev_t, ino_t, and nlink_t. ! Sat Jan 20 21:05:49 1996 John W. Eaton ! * configure.in: For Fortran rules, use pattern rules instead of ! suffix rules. ! Fri Jan 19 12:38:23 1996 John W. Eaton ! * configure.in: When checking for libf2c.a, add -lm and an extra lib. ! Wed Jan 10 16:36:43 1996 John W. Eaton ! * configure.i: Add missing colon in .o.f pattern for f2c rules. ! Mon Jan 8 23:18:39 1996 John W. Eaton ! * configure.in (AC_PROG_LN_S): New check. ! * Makeconf.in (LN_S): Substitute it. ! * configure.in (libexecdir): New variable. ! (archlibdir, octfiledir, localoctfiledir): Use it instead of libdir. ! (datadir): Default to $(prefix)/share instead of $(prefix)/lib. ! * Makeconf.in (libexecdir): Substitute it. ! * configure.in (localoctfiledir): Use $(libdir), not $(datadir). ! Sun Jan 7 18:40:00 1996 John W. Eaton ! * aclocal.m4 (OCTAVE_SMART_PUTENV): New macro, extracted from ! the kpathsearch library. ! * configure.in: Call it. ! Fri Dec 29 22:07:52 1995 John W. Eaton ! * Makeconf.in (subdir-for-command): New definition for ! SUBDIR_FOR_COMMAND using GNU Make `foreach' instead of shell `for' ! command. ! * libcruft/Makefile.in, scripts/Makefile.in, octMakefile.in: ! Invoke new definition with `@'. ! Wed Dec 27 14:27:48 1995 John W. Eaton ! * octMakefile.in (SUBDIRS): Delete DLD_DIR. ! (distclean): Delete Makerules.f77. ! * Makeconf.in (WITH_DLD): Delete variable. ! * configure.in: Delete support for dynamic linking with dld. ! * configure.in, Makeconf.in: Use consistent names for WITH_DL, ! WITH_SHL, OCTAVE_LITE, and SHARED_LIBS ! * config.h.bot: Undo previous change. ! * acconfig.h: Add #undef for WITH_DYNAMIC_LINKING. ! * Makeconf.in: Substitute it here too. ! * configure.in: Set it here. ! Tue Dec 26 00:12:14 1995 John W. Eaton ! * configure.in (AC_CONFIG_SUBDIRS): Delete libcruft. ! (AC_OUTPUT): List libcruft files here. ! * configure.in, Makeconf.in: Handle Fortran compilation rules ! using an included fragment in Makeconf. ! Mon Dec 25 22:14:21 1995 John W. Eaton ! * configure.in (CPICFLAG, CXXPICFLAG, FPICFLAG): New variables. ! * Makeconf.in: Substitute them. ! * configure.in: Handle --enable-shared option. ! Handle Fortran source files differently. ! * Makeconf.in (SHARED_LIBS): Substitute shared_libs. ! (SHLEXT, RLD_FLAG, fortran_rules_flag): Substitute these too. ! (.c.o, .cc.o): Handle creating position independent code for ! shared libraries. ! Sun Dec 24 00:29:12 1995 John W. Eaton ! * config.h.bot: Maybe define WITH_DYNAMIC_LINKING. ! * Makeconf.in (WITH_DL, WITH_SHL): Substitute values. ! * acconfig.h: Add undefs for WITH_DL and WITH_SHL. ! * configure.in: Handle --enable-dl and --enable-shl. ! Check for -ldl and dlopen, dlsym, dlclose, and dlerror. ! Check for -ldld and shl_load, shl_findsym. ! (have_fortran_compiler): Quit if no suitable Fortran compiler is ! found. ! Fri Nov 3 03:33:42 1995 John Eaton ! * emacs/octave-mode.el: Rename from octave.el. ! Wed Oct 11 19:22:12 1995 John Eaton ! * configure.in (GNUPLOT_BINARY): When checking for multiplot, ! issue a `set term unknown' command first. ! Wed Oct 4 01:42:35 1995 John Eaton ! * config.guess: Add entry for PowerPC Macs running Machten. ! * octMakefile.in (dist-z): Remove old .gz file before creating new one. ! Mon Oct 2 19:17:22 1995 John Eaton ! * configure.in: Check to see if it looks like gnuplot supports ! multiplot. ! * acconfig.h: Add undef for GNUPLOT_HAS_MULTIPLOT. ! * acconfig.h: #undefs for HAVE_FINITE, HAVE_ISNAN, HAVE_ISINF, ! HAVE_TERMIOS_H, HAVE_TERMIO_H, and HAVE_SGTTY_H removed. This ! file should only have things that autoheader can't figure out. ! Sun Oct 1 17:08:37 1995 John Eaton ! * octMakefile.in (clean-tar): Also omit directories called OLD and ! files beginning with =. ! Fri Sep 29 01:04:31 1995 John Eaton ! * ROADMAP: New file. ! * (DISTFILES): Include it. ! * emacs: New subdirectory for Emacs-related stuff. ! * octMakefile.in (DISTDIRS, BINDISTSUBDIRS): Include emacs. ! (DISTFILES, BINDISTFILES): Don't include octave-mode.el. ! Tue Sep 26 03:56:39 1995 John Eaton ! * configure.in: Don't add -Wno-unused to CFLAGS or CXXFLAGS. ! * config.h.bot: Remove definition of UNUSED. ! * config.sub: Replace with current version from FSF. ! * config.guess: Likewise. ! Thu Sep 21 20:29:00 1995 John Eaton ! * configure.in (AR, ARFLAGS): Set defaults for these, but also ! allow them to come from the environment. ! * Makeconf.in (AR, ARFLAGS): New variables to substitute. ! Wed Sep 20 00:51:24 1995 John Eaton ! * octMakefile.in (maintainer-clean): Also remove Makeconf, ! config.cache, config.h, and config.log. ! Tue Sep 19 17:20:32 1995 John Eaton ! * sighandlers.h [HAVE_SIGACTION && HAVE_SIGPROCMASK && ! HAVE_SIGPENDING && HAVE_SIGSUSPEND]: #define HAVE_POSIX_SIGNALS. ! * configure.in: Check for sigaction(), sigprocmask(), ! sigpending(), and sigsuspend() functions. ! Don't do anything special about checking for termios.h, termio.h, ! and sgtty.h. ! Mon Sep 18 22:39:33 1995 John Eaton ! * config.h.bot [__GNUC__]: Define NORETURN. ! Fri Sep 15 05:12:29 1995 John Eaton ! * configure.in (AC_C_BIGENDIAN): Remove test. ! Thu Sep 14 02:07:51 1995 John Eaton ! * configure.in (LIBPLPLOT): Disable plplot by default for now. ! Check for mkdir, rmdir, rename, and umask. ! * All Makefile.in files: Convert from realclean to ! maintainer-clean, for GNU coding standards. ! * configure.in: Call AC_FUNC_CLOSEDIR_VOID. ! Wed Sep 13 03:25:37 1995 John Eaton ! * configure.in: Do check for IEEE functions on the Alpha. ! Mon Sep 11 19:08:47 1995 John Eaton ! * configure.in: Call AC_STRUCT_ST_BLKSIZE, AC_STRUCT_ST_BLOCKS, ! and AC_STRUCT_ST_RDEV. ! Tue Sep 5 02:02:35 1995 John Eaton ! * configure.in: Check for sys/param.h and sys/stat.h ! Use AC_HEADER_TIME, not AC_TIME_WITH_SYS_TIME. ! Use AC_HEADER_SYS_WAIT. ! Thu Aug 24 15:35:44 1995 John Eaton ! * configure.in: Don't set or call AC_SUBST for CXXFLAGS or CFLAGS, ! and don't call AC_SUBST for LDFLAGS -- autoconf takes care of this. ! If adding -Wall, add -Wno-unused too. ! Tue Aug 22 01:37:02 1995 John Eaton ! * Makefile.in (all): Update message. ! * config.h.bot: New file. ! * octMakefile.in (DISTFILES): Add it to the list. ! * acconfig.h (USE_PLPLOT): Add #undef. ! Mon Aug 21 19:33:33 1995 John Eaton ! * Makefile.in (NO_DEP_TARGETS): New variable, for targets that can ! be made without updating dependency files. ! Sun Jun 25 18:27:49 1995 John Eaton ! * configure.in (FFLAGS): Add -fpe1 on alpha-dec-osf1 systems. ! Thu May 4 22:26:34 1995 John Eaton ! * configure.in: export CC, CXX, and F77 before calling ! AC_CONFIG_SUBDIRS. ! Mon May 1 14:17:07 1995 John Eaton ! * configure.in: Handle --with-plplot. ! (AC_CONFIG_SUBDIRS): Add plplot directory if --with-plplot. ! * plplot: New subdirectory. ! * Makefile.in (plplot): New target. ! * octMakefile.in (SUBDIRS): Add @PLPLOT_DIR@. ! (DISTDIRS): Add plplot. ! * acconfig.h: Add #undef for GETTIMEOFDAY_NO_TZ. ! * configure.in: Improve check for gettimeofday. ! Mon May 1 12:50:03 1995 John Eaton (jwe@bullwinkle.che.utexas.edu) ! * acconfig.h (OCTAVE_LITE): Fix comment. ! Tue Apr 11 20:31:52 1995 John Eaton ! * configure.in (INFO_DIR, READLINE_DIR): New variables. ! If $USE_GNU_INFO, AC_DEFINE it, don't AC_SUBST it. ! Likewise, for USE_READLINE. ! * octMakefile.in (SUBDIRS): Substitute INFO_DIR and READLINE_DIR. ! * aclocal.m4 (OCTAVE_F77_UPPERCASE_NAMES): New macro. ! (OCTAVE_F77_APPEND_UNDERSCORES): Require it. ! * configure.in: Use it. ! (info_subdir): If $USE_GNU_INFO, then run configure in info ! subdirectory too. ! Don't check for sys/ttold.h or sys/ptem.h. ! Mon Apr 10 00:17:57 1995 John Eaton ! * configure.in (UGLY_DEFS): Delete commands to create this. ! * Makeconf.in (UGLY_DEFS): Delete substitution. ! * Makeconf.in (UGLY_ALL_CFLAGS): Delete definition. ! * configure.in: Add scripts and libcruft to CONFIG_SUBDIRS. ! Don't edit scripts or libcruft Makefiles here. ! Reorganize checking for the Fortran compiler. ! * octMakefile.in (DISTFILES): Delete f2c-compat.sh flibs.sh ! cxxlibs.sh from list. Add aclocal.m4. ! * configure.in: Use new macros defined in aclocal.m4. Don't use ! external shell scripts. Cache values. ! * aclocal.m4: New file. ! Sun Apr 9 12:47:27 1995 John Eaton ! * configure.in: Print status message before exiting. ! Cache CXXLIBS and FLIBS. ! * acconfig.h: Delete #undefs for floating point format. ! * octMakefile.in (DISTFILES): Delete float-type.c from list. ! * configure.in: Don't try to determine floating point format at ! configuration time. ! Mon Apr 3 21:46:10 1995 John Eaton ! * configure.in: Create scripts/time/Makefile too. ! * configure.in (gxx_version): Handle new gcc version message. ! (gcc_version): Likewise. ! Wed Mar 29 22:59:42 1995 John Eaton ! * configure.in (AC_STRFTIME): Delete check. ! (AC_STRUCT_TIMEZONE): New check. ! Wed Mar 22 08:31:21 1995 John Eaton ! * Makeconf.in (ALL_FFLAGS, FUGLY): New variables. ! * configure.in: Use AC_ARG_ENABLE and AC_ARG_WITH consistently. ! Handle --with-g77. Substitute new variable FUGLY. If F77 is g77, ! set it to -fugly. Substitute command for making .o from .f. ! Tue Mar 21 14:24:32 1995 John Eaton ! * cxxlibs.sh: Extract -R options like -L options. ! * configure.in (FLIB_PATH, FLIB_LIST): Extract -R options along ! with -L options. ! Tue Mar 21 14:20:55 1995 Paul Eggert ! * configure.in (CXX): Export; cxxlibs.sh needs this. ! (FLIB_LIST, CXXLIB_LIST): Extract -R options along with -L options. ! * flibs.sh: Treat `-L foo' like `-Lfoo'. Extract -R options ! like -L options. ! Tue Mar 21 08:08:06 1995 John Eaton ! * flibs.sh: Search for values-X*.o, not values-*.o. ! Fri Mar 10 10:32:27 1995 John Eaton ! * Makeconf.in (SUBDIR_FOR_COMMAND): New command definition. ! * octMakefile.in: Use it. ! * octMakefile.in (install, uninstall, tags, TAGS, clean, ! mostlyclean, distclean, realclean): Combine actions. ! Tue Feb 28 21:24:35 1995 John Eaton ! * configure.in (FC): Set to $F77 and substitute it. ! * Makeconf.in (FC): Add substitution line. ! Sun Feb 26 00:20:19 1995 John Eaton ! * dointsall.sh: Create ls-R database. ! * configure.in: Configure kpathsea using AC_CONFIG_SUBDIRS(). ! Remove check for SMART_PUTENV. ! Remove kpathsea/c-auto.h from AC_CONFIG_HEADER(). ! * make: New directory, for kpathsea configuration. ! * octMakefile.in (DISTDIRS): Add it ! * kpathsea: Update with 2.6 distribution. ! * Makefile.in (TARGETS): New variable. Combine all identical targets. ! * configure.in (LIBINFO, LIBREADLINE): New variables to substitute. ! Sat Feb 25 18:47:11 1995 John Eaton ! * acconfig.h (USE_READLINE): Add #undef. ! * configure.in: Add support for --enable-readline. ! * acconfig.h (USE_GNU_INFO): Add #undef. ! * configure.in: Add support for --enable-info. - * acconfig.h (RUN_IN_PLACE): Delete #undef. ! See ChangeLog.1 for earlier changes. --- 1,830 ---- ! 2011-06-15 John W. Eaton ! Version 3.4.1 released. ! * configure.ac (AC_INIT): Version is now 3.4.1. (OCTAVE_API_VERSION_NUMBER): Now 45. ! (OCTAVE_RELEASE_DATE): Now 2011-06-15. ! Files: configure.ac ! maint: minor update to NEWS file ! * NEWS: minor fix in binary incompatibility note. ! Files: NEWS ! maint: fix version number for stable branch ! * configure.ac (AC_INIT): Correct stable branch version number. ! Files: configure.ac ! 2011-06-14 John W. Eaton ! maint: avoid warnings from autoconf ! configure.ac: Use AC_LANG_SOURCE as needed. Properly quote ! uses of AC_LANG_PROGRAM. ! Files: configure.ac ! maint: use URL for bugs in configure script ! * configure.ac (AC_INIT): Use URL for bugs. ! Files: configure.ac ! maint: don't remove distributed files with make distclean target ! * Makefile.am (MAINTAINERCLEANFILES): New variable. ! (DISTCLEANFILES): Remove $(INFO_FILES) and ChangeLog from the list. ! Files: Makefile.am ! maint: update NEWS ! * NEWS: Add info about changes to ChangeLog files. ! Files: NEWS ! 2011-06-12 Rik ! maint: Remove obsolete file diff-template from version control ! * diff-template: Remove from version control. ! Files: build-aux/diff-template ! maint: Change .gdbinit Makefile.am rule to be silent ! * Makefile.am: Use @ to run .gdbinit silently ! Files: Makefile.am ! maint: Restore auto-generation of ChangeLog file lost in directory reorginization ! * Makefile.am: Make ChangeLog target refer to 'build-aux/changelog.tmpl' ! Files: Makefile.am ! 2011-06-06 Rik ! str2double.cc: Return NaN for invalid inputs rather than printing error. ! * str2double.cc: Return NaN for invalid inputs rather than printing error. Add ! tests for new behavior. ! Files: src/DLD-FUNCTIONS/str2double.cc ! 2011-06-10 John W. Eaton ! maint: clean up top-level directory ! * build-aux/bootstrap: Rename from bootstrap. ! * build-aux/bootstrap.conf: Rename from bootstrap.conf. ! * build-aux/changelog.tmpl: Rename from changelog.tmpl. ! * build-aux/bootstrap.conf: Update for new file locations. ! * build-aux/common.mk: Rename from common.mk. ! * build-aux/diff-template: Rename from diff-template. ! * build-aux/mk-opts.pl: Rename from mk-opts.pl. ! * build-aux/mkinstalldirs: Rename from mkinstalldirs. ! * build-aux/move-if-change: Rename from move-if-change. ! * etc/CHECKLIST: Rename from CHECKLIST. ! * etc/HACKING: Rename from HACKING. ! * etc/NEWS.1: Rename from NEWS.1. ! * etc/NEWS.2: Rename from NEWS.2. ! * etc/NEWS.3: Rename from NEWS.3. ! * etc/OLD-ChangeLogs/ChangeLog: Rename from OLD-ChangeLogs/ChangeLog. ! * etc/OLD-ChangeLogs/ChangeLog.1: Rename from ! OLD-ChangeLogs/ChangeLog.1. ! * etc/OLD-ChangeLogs/doc-ChangeLog: Rename from ! OLD-ChangeLogs/doc-ChangeLog. ! * etc/OLD-ChangeLogs/libcruft-ChangeLog: Rename from ! OLD-ChangeLogs/libcruft-ChangeLog. ! * etc/OLD-ChangeLogs/liboctave-ChangeLog: Rename from ! OLD-ChangeLogs/liboctave-ChangeLog. ! * etc/OLD-ChangeLogs/scripts-ChangeLog: Rename from ! OLD-ChangeLogs/scripts-ChangeLog. ! * etc/OLD-ChangeLogs/src-ChangeLog: Rename from ! OLD-ChangeLogs/src-ChangeLog. ! * etc/OLD-ChangeLogs/test-ChangeLog: Rename from ! OLD-ChangeLogs/test-ChangeLog. ! * etc/PROJECTS: Rename from PROJECTS. ! * etc/README.Cygwin: Rename from README.Cygwin. ! * etc/README.Linux: Rename from README.Linux. ! * etc/README.MacOS: Rename from README.MacOS. ! * etc/README.MinGW: Rename from README.MinGW. ! * etc/README.Windows: Rename from README.Windows. ! * etc/README.devel: Rename from README.devel. ! * etc/README.ftp: Rename from README.ftp. ! * etc/README.gnuplot: Rename from README.gnuplot. ! * etc/README.kpathsea: Rename from README.kpathsea. ! * etc/README.mirrors: Rename from README.mirrors. ! * etc/README.snapshots: Rename from README.snapshots. ! * etc/gdbinit: Rename from gdbinit. ! * m4/acinclude.m4: Rename from acinclude.m4. ! * src/mkoctfile.cc.in: Rename from mkoctfile.cc.in. ! * src/mkoctfile.in: Rename from mkoctfile.in. ! * src/octave-config.cc.in: Rename from octave-config.cc.in. ! * src/octave-config.in: Rename from octave-config.in. ! * config.guess, config.sub, missing, octave-sh: Delete. ! * Makefile.am: Include build-aux/common.mk instead of common.mk. ! * examples/Makefile.am, libcruft/Makefile.am, ! liboctave/Makefile.am, liboctave/config-ops.sh, ! scripts/Makefile.am, src/DLD-FUNCTIONS/config-module.sh, ! test/Makefile.am, autogen.sh, doc/Makefile.am, ! doc/faq/Makefile.am, doc/icons/Makefile.am, ! doc/interpreter/Makefile.am, doc/interpreter/config-images.sh, ! doc/liboctave/Makefile.am, doc/refcard/Makefile.am, ! build-aux/common.mk, src/Makefile.am: Update for new file locations. ! * Makefile.am: Don't build mkoctfile or octave-config here. ! * README: Update INSTALL info. ! * build-aux/mkinstalldirs: Update to new version. ! * src/Makefile.am (mkoctfile, octave-config): New targets. ! Files: CHECKLIST HACKING Makefile.am NEWS.1 NEWS.2 NEWS.3 OLD- ! ChangeLogs/ChangeLog OLD-ChangeLogs/ChangeLog.1 OLD-ChangeLogs/doc- ! ChangeLog OLD-ChangeLogs/libcruft-ChangeLog OLD-ChangeLogs ! /liboctave-ChangeLog OLD-ChangeLogs/scripts-ChangeLog OLD-ChangeLogs ! /src-ChangeLog OLD-ChangeLogs/test-ChangeLog PROJECTS README ! README.Cygwin README.Linux README.MacOS README.MinGW README.Windows ! README.devel README.ftp README.gnuplot README.kpathsea ! README.mirrors README.snapshots acinclude.m4 autogen.sh bootstrap ! bootstrap.conf build-aux/bootstrap build-aux/bootstrap.conf build- ! aux/changelog.tmpl build-aux/common.mk build-aux/diff-template ! build-aux/mk-opts.pl build-aux/mkinstalldirs build-aux/move-if- ! change changelog.tmpl common.mk config.guess config.sub diff- ! template doc/Makefile.am doc/faq/Makefile.am doc/icons/Makefile.am ! doc/interpreter/Makefile.am doc/interpreter/config-images.sh ! doc/liboctave/Makefile.am doc/refcard/Makefile.am etc/CHECKLIST ! etc/HACKING etc/NEWS.1 etc/NEWS.2 etc/NEWS.3 etc/OLD- ! ChangeLogs/ChangeLog etc/OLD-ChangeLogs/ChangeLog.1 etc/OLD- ! ChangeLogs/doc-ChangeLog etc/OLD-ChangeLogs/libcruft-ChangeLog etc ! /OLD-ChangeLogs/liboctave-ChangeLog etc/OLD-ChangeLogs/scripts- ! ChangeLog etc/OLD-ChangeLogs/src-ChangeLog etc/OLD-ChangeLogs/test- ! ChangeLog etc/PROJECTS etc/README.Cygwin etc/README.Linux ! etc/README.MacOS etc/README.MinGW etc/README.Windows ! etc/README.devel etc/README.ftp etc/README.gnuplot ! etc/README.kpathsea etc/README.mirrors etc/README.snapshots ! etc/gdbinit examples/Makefile.am gdbinit libcruft/Makefile.am ! liboctave/Makefile.am liboctave/config-ops.sh m4/acinclude.m4 ! missing mk-opts.pl mkinstalldirs mkoctfile.cc.in mkoctfile.in move- ! if-change octave-config.cc.in octave-config.in octave-sh ! scripts/Makefile.am src/DLD-FUNCTIONS/config-module.sh ! src/Makefile.am src/mkoctfile.cc.in src/mkoctfile.in src/octave- ! config.cc.in src/octave-config.in test/Makefile.am ! maint: don't set SHELL to /bin/sh in common.mk ! * common.mk (SHELL): Delete. ! Files: common.mk ! 2011-06-09 Rik ! maint: Reorganize src/Makefile.am for understanding. No rules changed. ! * src/Makefile.am: Reorganize for understanding. No rules changed. ! Files: src/Makefile.am ! 2011-06-09 John W. Eaton ! maint: undo unintended change removing deprecated functions ! Files: OLD-ChangeLogs/ChangeLog OLD-ChangeLogs/scripts-ChangeLog OLD- ! ChangeLogs/src-ChangeLog scripts/deprecated/complement.m ! scripts/deprecated/create_set.m scripts/deprecated/dmult.m ! scripts/deprecated/iscommand.m scripts/deprecated/israwcommand.m ! scripts/deprecated/lchol.m scripts/deprecated/loadimage.m ! scripts/deprecated/mark_as_command.m ! scripts/deprecated/mark_as_rawcommand.m scripts/deprecated/module.mk ! scripts/deprecated/spatan2.m scripts/deprecated/spchol.m ! scripts/deprecated/spchol2inv.m scripts/deprecated/spcholinv.m ! scripts/deprecated/spcumprod.m scripts/deprecated/spcumsum.m ! scripts/deprecated/spdet.m scripts/deprecated/spdiag.m ! scripts/deprecated/spfind.m scripts/deprecated/spinv.m ! scripts/deprecated/spkron.m scripts/deprecated/splchol.m ! scripts/deprecated/split.m scripts/deprecated/splu.m ! scripts/deprecated/spmax.m scripts/deprecated/spmin.m ! scripts/deprecated/spprod.m scripts/deprecated/spqr.m ! scripts/deprecated/spsum.m scripts/deprecated/spsumsq.m ! scripts/deprecated/str2mat.m scripts/deprecated/unmark_command.m ! scripts/deprecated/unmark_rawcommand.m src/DLD-FUNCTIONS/chol.cc ! 2011-06-09 Rik ! maint: Don't distribute files in tarball which must be re-built for each installation ! * src/Makefile.am: Stop distribution of certain header files like defaults.h which ! must be customized at build-time. ! Files: src/Makefile.am ! 2011-06-08 Rik ! maint: Remove built file ChangeLog with distclean target ! * Makefile.am: Remove built file ChangeLog with distclean target ! Files: Makefile.am ! maint: Distribute README.MinGW and README.gnuplot ! * Makefile.am: Distribute README.MinGW and README.gnuplot ! Files: Makefile.am ! doc: Update NEWS with new functions for release 3.4.1 ! * NEWS: Update new functions list for release 3.4.1 ! Files: NEWS ! 2011-04-25 Rik ! maint: Don't install main-rcfile, local-rcfile but do distribute them in tarball. ! startup/module.mk: Don't install rcfiles. They are installed by special ! Makefile rules which rename them to octaverc and place them in the correct ! directory. ! Files: scripts/startup/module.mk ! 2011-06-08 Rik ! src/Makefile.am: Fixes to get 'make dist' working ! * src/Makefile.am: Remove ALL .df files when using clean rule. ! Clean BUILT_NODISTFILES under distclean rule, not clean rule. ! Fix rule to build OPT_INC headers. ! Files: src/Makefile.am ! doc: Don't use @code macro within @deftypefn macro ! * oct-parse.yy (mfilename): Delete @code{} macro from within @deftypefn macro. ! Files: src/oct-parse.yy ! colon.m: Stop issuing error if called accidentally with no arguments. ! * colon.m: Check nargin != 0 before issuing error. ! Files: scripts/general/colon.m ! maint: Update various Makefile.am to no longer distribute ChangeLog file ! * Makefile.am: Use '--only-branch' option to hg to get command to run ! * doc/Makefile.am, libcruft/Makefile.am, liboctave/Makefile.am, ! src/Makefile.am, test/Makefile.am: Remove ChangeLog from EXTRA_DIST list. ! Files: Makefile.am doc/Makefile.am libcruft/Makefile.am ! liboctave/Makefile.am src/Makefile.am test/Makefile.am ! 2011-06-06 Rik ! doc: Add additional calling forms to cell() ! ov-cell.cc (cell): Add additional calling forms to DOCSTRING so it resembles ! zeros(). ! Files: src/ov-cell.cc ! doc: Add note about str2double API change to NEWS. ! * NEWS: Add note about str2double API change. ! Files: NEWS ! 2011-06-06 John W. Eaton ! maint: update NEWS ! Files: NEWS ! maint: use libdir for .oct files, not libexecdir ! From Orion Poplawski . ! * configure.ac (octlibdir): Use octave/$(version), not ! octave-$(version). ! (octfiledir): Use $(libdir), not $(libexecdir). ! (localoctfiledir): Likewise. ! (localapioctfiledir): Likewise. ! (localveroctfiledir): Likewise. ! * pkg.m: Use libdir instead of libexecdir as needed. ! Files: configure.ac scripts/pkg/pkg.m ! 2011-06-02 John W. Eaton ! maint: update NEWS. ! * NEWS: Edit in preparation for 3.4.1 release. ! Files: NEWS ! maint: implement proper library versioning. ! * libcruft/Makefile.am (libcruft_current): New variable. ! (libcruft_revision): Likewise. ! (libcruft_age): Likewise. ! (libcruft_version_info): Likewise. ! (libcruft_la_LDFLAGS): Use -version-info option, not -release. ! * liboctave/Makefile.am (liboctave_current): New variable. ! (liboctave_revision): Likewise. ! (liboctave_age): Likewise. ! (liboctave_version_info): Likewise. ! (liboctave_la_LDFLAGS): Use -version-info option, not -release. ! * liboctinterp/Makefile.am (liboctinterp_current): New variable. ! (liboctinterp_revision): Likewise. ! (liboctinterp_age): Likewise. ! (liboctinterp_version_info): Likewise. ! (liboctinterp_la_LDFLAGS): Use -version-info option, not -release. ! Files: libcruft/Makefile.am liboctave/Makefile.am src/Makefile.am ! 2011-06-06 Jordi Gutiérrez Hermoso ! Backout 12700:9843b3b055e0 from stable branch ! Files: src/DLD-FUNCTIONS/filter.cc ! 2011-06-04 Rik ! doc: str2double() inputs which cannot be parsed return NaN. ! * str2double.cc: Update docstring with warning about inputs which cannot be ! parsed returning NaN. ! Files: src/DLD-FUNCTIONS/str2double.cc ! 2011-06-04 John Bradshaw ! doc: Spelling fixes for various documentation files ! * NEWS, NEWS.1, NEWS.2, NEWS.3, README.MacOS, README.Windows, ! doc/faq/OctaveFAQ.texi, doc/interpreter/install.txi, ! doc/interpreter/sparseimages.m, doc/liboctave/array.texi, examples/COPYING: ! Spelling fixes ! Files: NEWS NEWS.1 NEWS.2 NEWS.3 README.MacOS README.Windows ! doc/faq/OctaveFAQ.texi doc/interpreter/install.txi ! doc/interpreter/sparseimages.m doc/liboctave/array.texi ! examples/COPYING ! 2011-06-04 Rik ! Overhaul wavwrite, wavread and fix normalization problem (Bug #33420). ! * wavwrite.m: Remove ancient non-Matlab calling form of function. Update ! tests and add test to verify proper clipping of out-of-range values. ! * wavread.m: Use correct normalization constant to put values in range [-1,1). ! Add test to stop fntests.m from reporting this as untested function. ! Files: scripts/audio/wavread.m scripts/audio/wavwrite.m ! Fix bug with initial conditions in filter (Bug #32741). ! * filter.cc: Re-orient SI to column vector only when both SI and X are vectors. ! Files: src/DLD-FUNCTIONS/filter.cc ! 2011-06-01 Rik ! Add rectangle to new functions list in NEWS. ! * NEWS: Add rectangle to new functions list in NEWS. ! * unimplemented.m: Remove rectangle from list. ! * rectangle.m: Use double spaces for sentence breaks in Texinfo ! Files: NEWS scripts/miscellaneous/unimplemented.m scripts/plot/rectangle.m ! 2011-06-01 David Bateman ! Add the rectangle function ! * plot/rectangle.m : New function. ! * plot/module.mk (plot_FCN_FILES): Add it here. ! Files: scripts/plot/module.mk scripts/plot/rectangle.m ! 2011-06-01 Rik ! wblpdf.m: Bug fix to include x=0 in calculated distribution. ! * wblpdf.m: Bug fix to include x=0 in calculated distribution. ! Files: scripts/statistics/distributions/wblpdf.m ! 2011-05-31 Rik ! wblinv.m: Bug fix to return 0 for input 0 and not -Inf. ! * wblinv.m: Bug fix to return 0 for input 0 and not -Inf. ! Files: scripts/statistics/distributions/wblinv.m ! unifpdf.m: Bug fix to include limits of range [A,B] in distribution. ! * unifpdf.m: Bug fix to include limits of range [A,B] in distribution. ! Files: scripts/statistics/distributions/unifpdf.m ! 2011-05-26 Rik ! geornd.m: Fix typo in 2-input calling form preventing execution. ! * geornd.m: Replace typo 'n' with input variable 'p'. ! Files: scripts/statistics/distributions/geornd.m ! 2011-05-25 Rik ! doc: Update docstrings for a few functions ! * error.cc (lasterr, lasterror): Update lasterr with additional calling forms, ! rewrite lasterror docstring ! * variables.cc (munlock, mislocked): Add additional calling forms to docstring. ! Files: src/error.cc src/variables.cc ! doc: Periodic spellcheck of documentation. ! * basics.txi: Correct typo. ! * aspell-octave.en.pws: Add new terms to dictionary. ! Files: doc/interpreter/basics.txi doc/interpreter/doccheck/aspell- ! octave.en.pws ! doc: Add 'none' to list of plot linestyles. ! * plot.txi: Add 'none' to list of plot linestyles. ! Files: doc/interpreter/plot.txi ! test: Comment out failing parser tests ahead of 3.4.1 release ! * test_parser.m: Comment out failing parser tests, which have already ! been dealt with on the development branch. ! Files: test/test_parser.m ! ls_command.m: Add additional calling forms to DOCSTRING. ! * ls_command.m: Add additional calling forms to DOCSTRING. ! Files: scripts/miscellaneous/ls_command.m ! 2011-05-17 Rik ! doc: Correctly refer to toupper() as a Mapping Function. ! * mappers.cc (toupper): Change "Built-in Function" to "Mapping Function" ! Files: src/mappers.cc ! frnd.m: Fix typo in 2-input calling form preventing execution. ! * frnd.m: Replace typo 'a' with input variable 'm'. ! Files: scripts/statistics/distributions/frnd.m ! doc: Don't use @code{} within @deftypefn macro ! * ver.m, datenum.m, data.cc, dirfns.cc: Remove @code{} macro from ! @deftypefn instances. ! Files: scripts/miscellaneous/ver.m scripts/time/datenum.m src/data.cc ! src/dirfns.cc ! 2011-05-16 Rik ! doc: Document that block comment markers must appear alone on a line (bug #33297) ! * basics.txi: Document that block comment markers must appear alone on a line. ! Files: doc/interpreter/basics.txi ! 2011-05-15 Philip Nienhuis ! Fix textscan/textread headerlines arg always skipping 2 lines (bug #33028) ! * textread.m, textscan.m: Fix wrong headerline argument being fed ! to fskipl. Check & avoid processing zero headerline values. ! Files: scripts/io/textread.m scripts/io/textscan.m ! 2011-05-15 David ! Fix integer overflow when using text() with large x,y values (bug #33059) ! * __go_draw_axes__.m: Use "%e" printf format to guarantee exponential ! printout of numbers and allow large values to pass to gnuplot. ! Files: scripts/plot/__go_draw_axes__.m ! 2011-05-15 Rik ! trapz.m, cumtrapz.m: Quote ':' in initialization statement to prevent it being ! interpreted as colon operator. ! * trapz.m cumtrapz.m: Quote ':' in initialization statement. ! Files: scripts/general/cumtrapz.m scripts/general/trapz.m ! 2011-05-15 Carnë Draug ! doc: Use texinfo for help text of operators. ! help.cc: Also added help text about block comments, ! line continuation, and element by element left division. ! Added more functions on the seealso field of the operators help text. ! Files: src/help.cc ! 2011-05-14 Jordi Gutiérrez Hermoso ! caseless-str.h: Fix implementation of op< ! Files: liboctave/caseless-str.h ! 2011-05-14 Rik ! doc: Improve a few docstrings related to test functions and directories. ! * what.m, rundemos.m, runtests.m, dirfns.cc (filesep), ! utils.cc (find_dir_in_path): Improve docstrings. ! Files: scripts/miscellaneous/what.m scripts/testfun/rundemos.m ! scripts/testfun/runtests.m src/dirfns.cc src/utils.cc ! Accept input x vector with y matrix for trapz,cumtrapz (bug #33292). ! * trapz.m, cumtrapz.m : Accept input vector, input matrix combination. ! Use diff() for 10% speedup. Add tests for ND-array operation. ! Files: scripts/general/cumtrapz.m scripts/general/trapz.m ! 2011-05-11 David Bateman ! Fix case insenstive use of radio values in graphics objects (bug #33068) ! * caseless-str.h (bool operator < (const std::string& s) const)): ! New operator in the caseless_str class. ! Files: liboctave/caseless-str.h ! 2011-05-11 Rik ! exppdf.m: Bug fix to extend function range to include x==0. ! Files: scripts/statistics/distributions/exppdf.m ! 2011-05-11 Jordi Gutiérrez Hermoso ! Fix passing compiler options to mkoctfile ! * mkoctfile.in: Only pass the part after -W to the compiler, plus add ! a comma for consistency with -Wl option. ! * mkoctfile.m: Document the change. ! Files: mkoctfile.in scripts/miscellaneous/mkoctfile.m ! 2011-05-10 Jordi Gutiérrez Hermoso ! load-save.cc: Document -append option ! Files: src/load-save.cc ! 2011-05-10 Rik ! Use correct definition of erfcx in documentation. ! * mappers.cc (erfcx): Change scale factor to exp(z^2) in documentation. ! Files: src/mappers.cc ! betaln.m: Improve documentation string, particularly for Tex format. ! * betaln.m: Improve DOCSTRING. Space out function with newlines. ! Files: scripts/specfun/betaln.m ! betainc.cc: Correctly refer to function as regularized incomplete Beta function. ! * betainc.cc: Fix documentation spacing in INFO mode. Use I, standard ! symbol for regularized version of function, rather than Beta in texinfo. ! Files: src/DLD-FUNCTIONS/betainc.cc ! 2011-05-09 Rik ! gampdf.m: Bug fix to extend function range to include x==0. ! Files: scripts/statistics/distributions/gampdf.m ! 2011-05-06 Rik ! doc: Correct spacing in erf and gamma documentation in INFO mode. ! * mappers.cc (erf, erfinv, erfc, erfcx, gamma): Improve docstring. ! Files: src/mappers.cc ! 2011-05-06 John W. Eaton ! doc: Update contributors list. ! * contributors.in: Add Daniel Kraft to the list. ! Files: doc/interpreter/contributors.in ! 2011-05-04 Marco ! Fix unfilled contourf when lvl = [0,0] (bug #33177). ! * __contour__.m: Add sqrt(eps) to lvl_eps to prevent it from ever ! being exactly zero. ! Files: scripts/plot/private/__contour__.m ! 2011-05-04 John W. Eaton ! Allow sortrows to work on arrays with one row (bug #33197) ! * ov-base-scalar.h (octave_base_scalar::sort_rows_idx): ! Return single index, not empty index array. ! From Marco Caliari . ! * sortrows.m: New test. ! Files: scripts/general/sortrows.m src/ov-base-scalar.h ! Allow transpose to work for scalar structs (bug #33218) ! * op-struct.cc (oct_op_scalar_transpose): New function. ! (install_struct_ops): Install transpose and hermitian operators for ! scalar structs. ! Files: src/OPERATORS/op-struct.cc ! Allow scalar integer to logical conversion (bug #33219) ! * ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::bool_value): New funtion. ! * ov-bool-mat.cc: New tests. ! Files: src/ov-bool-mat.cc src/ov-intx.h ! 2011-05-01 Rik ! doc: Periodic grammarcheck and spellcheck of documentation. ! * func.txi: Correct two misspellings ! * cumtrapz.m, dblquad.m, quadgk.m, quadl.m, quadv.m, trapz.m, triplequad.m, ! cond.m, gmres.m, bzip2.m, compare_versions.m, getappdata.m, unpack.m, ver.m, ! glpk.m, pkg.m, axis.m, uigetdir.m, uigetfile.m, view.m, prctile.m, quantile.m, ! unidcdf.m, unidinv.m, isstrprop.m, balance.cc, besselj.cc, cellfun.cc, ! colamd.cc, dot.cc, eigs.cc, fftw.cc, matrix_type.cc, pinv.cc, qr.cc, quad.cc, ! quadcc.cc, qz.cc, regexp.cc, schur.cc, time.cc (gmtime), typecast.cc ! urlwrite.cc bitfcns.cc (bitshift), data.cc (rem, norm, merge) debug.cc ! (dbstatus), dirfns.cc (glob), file-io.cc (freport), load-path.cc (genpath), ! load-save.cc (save), mappers.cc (islower, isupper, tolower, toupper) ! oct-hist.cc (edit_history), ov-fcn-inline.cc (vectorize), ov.cc (subsref), ! syscalls.cc (stat), variables.cc (whos, clear): Improve docstrings. ! Removed trailing whitespace characters on line. ! Files: doc/interpreter/func.txi scripts/general/cumtrapz.m ! scripts/general/dblquad.m scripts/general/quadgk.m ! scripts/general/quadl.m scripts/general/quadv.m ! scripts/general/trapz.m scripts/general/triplequad.m scripts/linear- ! algebra/cond.m scripts/linear-algebra/gmres.m ! scripts/miscellaneous/bzip2.m ! scripts/miscellaneous/compare_versions.m ! scripts/miscellaneous/getappdata.m scripts/miscellaneous/unpack.m ! scripts/miscellaneous/ver.m scripts/optimization/glpk.m ! scripts/pkg/pkg.m scripts/plot/axis.m scripts/plot/uigetdir.m ! scripts/plot/uigetfile.m scripts/plot/view.m ! scripts/statistics/base/prctile.m scripts/statistics/base/quantile.m ! scripts/statistics/distributions/unidcdf.m ! scripts/statistics/distributions/unidinv.m ! scripts/strings/isstrprop.m src/DLD-FUNCTIONS/balance.cc src/DLD- ! FUNCTIONS/besselj.cc src/DLD-FUNCTIONS/cellfun.cc src/DLD- ! FUNCTIONS/colamd.cc src/DLD-FUNCTIONS/dot.cc src/DLD- ! FUNCTIONS/eigs.cc src/DLD-FUNCTIONS/fftw.cc src/DLD- ! FUNCTIONS/matrix_type.cc src/DLD-FUNCTIONS/pinv.cc src/DLD- ! FUNCTIONS/qr.cc src/DLD-FUNCTIONS/quad.cc src/DLD- ! FUNCTIONS/quadcc.cc src/DLD-FUNCTIONS/qz.cc src/DLD- ! FUNCTIONS/regexp.cc src/DLD-FUNCTIONS/schur.cc src/DLD- ! FUNCTIONS/time.cc src/DLD-FUNCTIONS/typecast.cc src/DLD- ! FUNCTIONS/urlwrite.cc src/bitfcns.cc src/data.cc src/debug.cc ! src/dirfns.cc src/file-io.cc src/load-path.cc src/load-save.cc ! src/mappers.cc src/oct-hist.cc src/ov-fcn-inline.cc src/ov.cc ! src/syscalls.cc src/variables.cc ! doc: Review and update documentation for "Matrix Manipulation" chapter. ! * matrix.txi, arrayfun.m, blkdiag.m, fliplr.m, flipud.m, logspace.m, ! postpad.m, prepad.m, randi.m, repmat.m, rot90.m, rotdim.m, shiftdim.m, ! sortrows.m, vech.m, xor.m, hadamard.m, hankel.m, hilb.m, invhilb.m, magic.m, ! pascal.m, rosser.m, sylvester_matrix.m, toeplitz.m, vander.m, wilkinson.m, ! bsxfun.cc, find.cc, lookup.cc, rand.cc, tril.cc, data.cc, arrayfun.m, ! blkdiag.m, fliplr.m, flipud.m, logspace.m, postpad.m, prepad.m, randi.m, ! repmat.m, rot90.m, rotdim.m, shiftdim.m, sortrows.m, vech.m, xor.m, hadamard.m, ! hankel.m, hilb.m, invhilb.m, magic.m, pascal.m, rosser.m, sylvester_matrix.m, ! toeplitz.m, vander.m, wilkinson.m, bsxfun.cc (bsxfun), find.cc (find), ! lookup.cc (lookup), rand.cc (rand, randn, rande, randg, randp), ! tril.cc (triu), data.cc (all, any, horzcat, vertcat, cat, permute, ipermute, ! ones, zeros, eye, linspace, resize, reshape, issorted, diff): ! Improve docstrings ! Files: doc/interpreter/matrix.txi scripts/general/arrayfun.m ! scripts/general/blkdiag.m scripts/general/fliplr.m ! scripts/general/flipud.m scripts/general/logspace.m ! scripts/general/postpad.m scripts/general/prepad.m ! scripts/general/randi.m scripts/general/repmat.m ! scripts/general/rot90.m scripts/general/rotdim.m ! scripts/general/shiftdim.m scripts/general/sortrows.m scripts ! /linear-algebra/vech.m scripts/miscellaneous/xor.m scripts/special- ! matrix/hadamard.m scripts/special-matrix/hankel.m scripts/special- ! matrix/hilb.m scripts/special-matrix/invhilb.m scripts/special- ! matrix/magic.m scripts/special-matrix/pascal.m scripts/special- ! matrix/rosser.m scripts/special-matrix/sylvester_matrix.m scripts ! /special-matrix/toeplitz.m scripts/special-matrix/vander.m scripts ! /special-matrix/wilkinson.m src/DLD-FUNCTIONS/bsxfun.cc src/DLD- ! FUNCTIONS/find.cc src/DLD-FUNCTIONS/lookup.cc src/DLD- ! FUNCTIONS/rand.cc src/DLD-FUNCTIONS/tril.cc src/data.cc ! 2011-04-26 Rik ! filter.cc: Stop test errors in residue.m (bug #33164) ! * filter.cc: Reshape b,a inputs to column vectors ! Files: src/DLD-FUNCTIONS/filter.cc ! 2011-04-25 Rik ! mappers.cc (gamma): Correct spacing in non-Tex section of documentation. ! Files: src/mappers.cc ! doc: miscellaneous touch-ups to documentation strings ! * debug.txi: Correct line number for debug example. ! * func.txi: Correct directory structure of functions shipped with Octave distribution. ! * edit.m: Eliminate reference to editor used by bug_report. ! * fzero.m: Add inline function to list of possible inputs. ! * fplot.m: Add comma to break list of possible inputs. ! * qqplot.m: Correct example so that it runs under current Octave distributions. ! * assert.m: Add seealso reference to fail. ! * fail.m: Add seealso reference to assert. Add additional calling forms of function. ! * load-path.cc (addpath): Don't use @samp which created double double quotes around option. ! * ov-fcn-inline.cc (vectorize): Add example usage. ! * variables.cc (exist): Add seealso link to file_in_loadpath. ! Files: doc/interpreter/debug.txi doc/interpreter/func.txi ! scripts/miscellaneous/edit.m scripts/optimization/fzero.m ! scripts/plot/fplot.m scripts/statistics/base/qqplot.m ! scripts/testfun/assert.m scripts/testfun/fail.m src/load-path.cc src ! /ov-fcn-inline.cc src/variables.cc ! 2011-04-22 Rik ! func.txi: document use of nargin checking at head of function. ! Files: doc/interpreter/func.txi ! 2011-04-19 John W. Eaton ! maint: generate ChangeLog automatically ! * Move old hand-edited ChangeLog files to OLD-ChangeLogs directory. ! * changelog.tmpl: New file. ! * Makefile.am (BUILT_DISTFILES): Add ChangeLog to the list. ! (EXTRA_DIST): Add OLD-ChangeLogs files. ! (ChangeLog): New target. ! * autogen.sh: Don't require ChangeLog to exist. ! Files: ChangeLog ChangeLog.1 Makefile.am OLD-ChangeLogs/ChangeLog OLD- ! ChangeLogs/ChangeLog.1 OLD-ChangeLogs/doc-ChangeLog OLD-ChangeLogs ! /libcruft-ChangeLog OLD-ChangeLogs/liboctave-ChangeLog OLD- ! ChangeLogs/scripts-ChangeLog OLD-ChangeLogs/src-ChangeLog OLD- ! ChangeLogs/test-ChangeLog autogen.sh changelog.tmpl doc/ChangeLog ! libcruft/ChangeLog liboctave/ChangeLog scripts/ChangeLog ! src/ChangeLog test/ChangeLog ! See the files in the directory etc/OLD-ChangeLogs for changes before 2011-04-19 diff -cNr octave-3.4.0/ChangeLog.1 octave-3.4.1/ChangeLog.1 *** octave-3.4.0/ChangeLog.1 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/ChangeLog.1 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,10392 **** - Thu Feb 23 09:32:01 1995 John Eaton - - * Version 1.1.1 released. - - * src/idx-vector.cc (idx_vector (const Range&)): Always initialize - data to 0. - (idx_vector (const Matrix&, int, const char *, int)): Likewise. - (idx_vector (const idx_vector&): Likewise, do it first. - * src/idx-vector.h (~idx_vector): Simply delete data. - - * octMakefile.in: Combine libcruft, liboctave,dld, info, readline, - kpathsea, src, scripts, and doc targets into just one. - (all): Depend on $(SUBDIRS). - * libcruft/Makefile.in (make-objects): Change to $(SUBDIRS) - target that doesn't use a loop. - (all): Depend on $(SUBDIRS). - - Wed Feb 22 07:27:18 1995 John Eaton - - * Don't leave @LIBDLD@ on a line by itself. - - * src/tc-rep-idx.cc (fortran_style_matrix_index): Handle zero-one - indexing as a separate case. - (fortran_style_matrix_index): Check for out-of-bounds index. - - * src/idx-vector.cc (init_state): Don't forget len, num_zeros, and - the one_zero flag for vectors of all zero elements. - (convert_one_zero_to_idx): Set data to zero after deleting it. - - * src/data.cc (check_dimensions): - Handle case of treat_neg_dim_as_zero = "warn". - - Tue Feb 21 08:18:19 1995 John Eaton - - * src/tree-misc.cc (initialize_undefined_elements): Don't declare - arg const. - - * src/sysdepl.cc (octave_getcwd): Declare arg as char *, not - const char *. - - * src/input.cc (match_sans_spaces): Initialize ep from copy of - arg, not arg itself. - - * octMakefile.in (snapshot-version): Look for OCTAVE_VERSION, - not just VERSION. Don't end #define with a semicolon. - - Mon Feb 20 15:57:17 1995 John Eaton - - * scripts/image/Makefile.in (clean): Delete octtopnm.o and octtopnm. - - Fri Feb 17 08:12:09 1995 John Eaton - - * src/variables.cc (maybe_add_default_load_path): New function, - extracted from default_path(), which no longer needs it. - * src/user-prefs.cc (sv_loadpath): Call it here. - - Wed Feb 15 15:13:22 1995 John Eaton - - * src/octave.cc (verbose_usage): Format help message more like - the help messages of other GNU programs. - - * src/variables.cc (install_builtin_variables): New builtin - variable, suppress_verbose_help_message. - * src/user-prefs.cc (user_prefs): New field, - suppress_verbose_help_message. - * src/user-prefs.cc (suppress_verbose_help_message): New function. - * src/help.cc (additional_help_message): Check - user_pref.suppress_verbose_help_message before printing message. - - Tue Feb 14 15:36:01 1995 John Eaton - - * src/sysdep.cc (octave_chdir): New function. - * src/dirfns.cc (change_to_directory): Use it. - - * src/sysdep.cc (octave_getcwd): New function. - * src/dirfns.cc (get_working_directory, Fpwd): Use it. - * src/input.cc (decode_prompt_string): Likewise. - - * src/version.h (VERSION): New #define. - (version_string): Use it. - (OCTAVE_COPYRIGHT): New #define. - (OCTAVE_NAME_AND_VERSION): New #define. - (OCTAVE_NAME_VERSION_AND_COPYRIGHT): New #define. - (OCTAVE_STARTUP_MESSAGE): New #define. - * src/octave.cc (main): Use new macros from version.h - (print_version_and_exit): Likewise. - (verbose_usage): Likewise. - (Fwarranty): Likewise. - - * Makeconf.in (version): Make work with new version.h. - * octMakefile.in (snapshot-version): Likewise. - - * src/variables.cc (default_path): Use SEPCHAR instead of literal ':'. - * src/utils.cc (pathstring_to_vector): Likewise. - * src/octave.cc (initialize_globals): Likewise, use SEPCHAR_STR to - construct format string instead of using literal `:'. - - * configure.in: Call AC_DEFINE for SEPCHAR and SEPCHAR_STR. - * acconfig.h: Add #undefs for SEPCHAR and SEPCHAR_STR. - - * src/dynamic-ld.cc: Don't include dld.h unless WITH_DLD. - - * src/octave.cc (parse_and_execute): Close file. - - Mon Feb 13 19:39:12 1995 John Eaton (jwe@bullwinkle.che.utexas.edu) - - * scripts/general/linspace.m: Delete. - * src/data.cc (Flinspace): New function. - * liboctave/dRowVector.cc (linspace): New function. - * liboctave/CRowVector.cc (linspace): New function. - - Sun Feb 12 21:23:54 1995 John Eaton - - * src/load-save.cc (read_mat_binary_data): Only convert to string - if the number of rows is 1. - - * scripts/image/saveimage.m: Force ASCII save. - - Thu Feb 9 08:46:09 1995 John Eaton - - * scripts/elfun/sec.m: Returned variable is `w', not `y'. - * scripts/elfun/sech.m: Likewise. - - Wed Feb 8 10:51:33 1995 John Eaton - - * src/f-find.cc (find_nonzero_elem_idx): Increment i, j indices by - 1 before stashing them. - - Fri Feb 3 15:44:03 1995 John Eaton - - * src/tree-misc.cc - (tree_parameter_list::initialize_undefined_elements): New function. - * src/tree-expr.cc (tree_function::eval): Use it to define return - values. - (tree_simple_assignment_expression:eval): Complain if RHS is undefined. - (tree_multi_assignment_expression:eval): Complain if any of the - RHS values are undefined. - * src/user-prefs.h (init_user_prefs): New structure element, - define_all_return_values. - * src/user-prefs.cc (define_all_return_values): New function. - * src/variables.cc (install_builtin_variables): Add DEFVARs for - default_return_value and define_all_return_values. - (builtin_any_variable): New function. - - Wed Feb 1 08:02:28 1995 John Eaton - - * src/parse.y (parse_error): Call yyerror() here. - (input): Not here. - - * src/lex.l (handle_string): Call have_continuation and - have_ellipsis_continuation with 0 arg, to disallow comments after - continuation characters inside strings. - (have_continuation): New arg, trailing_comments_ok with default - value of 1. If !trailing_comments_ok, don't allow comments to - follow continuation token. - (have_ellipsis_continuation): New arg, trailing_comments_ok, with - default value of 1. Pass it along to have_continuation. - - * src/parse.y (yyerror): Call parse_error with first arg == "%s", - since msg might contain format specifiers. - - * src/tree-expr.cc (tree_index_expression::eval (int)): Detect - undefined elements in argument list and print error message. - (tree_index_expression::eval (int, int, const Octave_object&)): - Likewise. - - * configure.in: Only set CFLAGS, CXXFLAGS, LDFLAGS, FFLAGS, and - F2CFLAGS if they are not already set in the environment. - - * doinstall.sh: Add -print to find commands. - - Tue Jan 31 13:26:53 1995 John Eaton - - * src/lex.l ({S}*\,{S}*): Eat any trailing continuation - here. Use value returned from eat_continuation to decide whether - to insert a row separator. - ({S}+): Likewise. - ({SNLCMT}*\n{SNLCMT}*): Eat any trailing whitespace here. - - * lex.l (ATE_SPACE_OR_TAB, ATE_NEWLINE): New macros. - (eat_whitespace): Use them to set return value. - - Mon Jan 30 14:02:24 1995 John Eaton - - * src/user-prefs.cc (set_output_precision): Don't pass NaN to NINT. - (set_output_max_field_width): Likewise. - (set_save_precision): Likewise. - * src/file-io.cc (return_valid_file): Likewise. - (fgets_internal): Likewise. - (fseek_internal): Likewise. - (process_printf_format): Likewise. - (fread_internal): Likewise. - * src/f-colloc.cc (Fcolloc): Likewise. - * src/f-fft.cc (Ffft): Likewise. - * src/f-fft2.cc (Ffft2): Likewise. - * src/f-ifft.cc (Fifft): Likewise. - * src/f-ifft2.cc (Fifft2): Likewise. - * src/f-npsol.cc (do_npsol_option): Likewise. - * src/f-qpsol.cc (do_qpsol_option): Likewise. - * src/f-rand.cc (Frand): Likewise. - * src/pr-output.cc (all_elements_are_ints): Likewise. - * src/tree-plot.cc (subplot_using::eval): Likewise. - (subplot_style::print): Likewise. - * src/sysdep.cc (Fpause): Likewise. - * src/tc-rep.cc (TC_REP::valid_as_scalar_index): Likewise. - (TC_REP::valid_as_zero_index): Likewise. - (TC_REP::convert_to_str): Likewise. - * src/tc-rep-idx.cc (TC_REP::do_scalar_index): Likewise. - (TC_REP::fortran_style_matrix_index): Likewise. - * src/tc-rep-ass.cc (TC_REP::fortran_style_matrix_assignment): - Likewise. - - Sat Jan 28 13:09:44 1995 John Eaton - - * scripts/general/tril.m: Allow the k == nc for k > 0 and - -k == nr for k < 0. Make faster by eliminating nested loops. - * scripts/general/triu.m: Likewise. - - Fri Jan 27 08:32:10 1995 John Eaton - - * libcruft/lapack: Update with files from LAPACK 2.0. - - * src/lex.l (\[{S}*): Don't call fixup_column_count() here. - Don't use TOK_RETURN here, since we call eat_whitespace(). - (eat_whitespace): Decrement current_input_column when calling - yyunput(). - ({SNLCMT}*\n{SNLCMT}): Always call fixup_column_count(). - - * src/parse.y (rows): Don't accept repeated semicolons. - (matrix_row): Likewise, for commas. - - * src/Makefile.in (LIBOBJS): Delete. - - * liboctave/f77-uscore.h: Don't use C++ style comments. - - * octMakefile.in (DISTDIRS): Don't include bsd-math. - * src/Makefile.in (VPATH): Don't include bsd-math directory. - (SOURCES): Include acosh.c, asinh.c, atanh.c, erf.c erfc.c, and - lgamma.c. - * configure.in: Create libcruft/slatec-fn/Makefile. - Use AC_CHECK_FUNCS to look for acosh, asinh, atanh. - Don't do anything special if they are missing. - * src/acosh.c, src/asinh.c, src/atanh.c, src/erf.c, src/erfc.c, - src/lgamma.c: New files. - * acconfig.h: Delete #undefs for ACOSH_MISSING, ASINH_MISSING, - and ATANH_MISSING. - * libcruft/Makefile.in (CRUFT_DIRS): Add slatec-fn. - * libcruft/slatec-fn: New directory. - - * configure.in: Don't try to use IEEE floating point on m68k HP - systems. - - Thu Jan 26 12:57:05 1995 John Eaton - - * src/lex.l (maybe_unput_comma): New function, extracted from - handle_identifier(). Correctly handle the dot in things like - `a.b' inside matrix lists. - (handle_identifier): Use it. Don't allow things like [a .1] or - [a.b .1] to fool us. - - Wed Jan 25 08:04:16 1995 John Eaton - - * scripts/Makefile.in (realclean): Don't depend on distclean. Do - delete Makefile here. - - * flibs.sh: Also check for /*values-*.o, for Sun Fortran 2.x. - * configure.in (FLIB_LIST, CXXLIB_LIST, FLIB_PATH, CXXLIB_PATH): - Delete any .o files found here. - When checking for -lm, also append -lc on Linux systems. - - * mkinstalldirs: Create directories with mode 0755, to avoid - problems because the installers umask is too restrictive. - - * octave-bug.in: Don't use rmail, it crashes on Ultrix systems if - the message file isn't just right. Use nested if statements - instead of ||, for Ultrix /bin/sh. Avoid Ultrix awk crash. - - * scripts/linear-algebra/trace.m: Handle row and column vectors as - a special case. - * scripts/linear-algebra/null.m: Likewise. - * scripts/linear-algebra/orth.m: Likewise. - - Tue Jan 24 08:11:51 1995 John Eaton - - * octave-bug.in: Add F2C, F2CFLAGS, FLIBS, and LDFLAGS to report. - * Makefile.in (octave-bug): Substitute them. - - Mon Jan 23 20:42:55 1995 John Eaton - - * src/tree-misc.cc (tree_if_clause::is_else_clause): New function. - (tree_if_command_list::print_code): Use it to decide whether to - print "else" or "elseif" here. - (tree_if_clause::print_code): Don't print "else" here. - - * scripts/image/colormap.m: Fix logic for initializing default - colormap and handling subsequent calls with no arguments. - - * src/lex.h (TOK_PUSH_AND_RETURN): Correct last change. - - Sun Jan 22 18:02:37 1995 John Eaton - - * src/lex.l (handle_identifier): Handle incrementing - current_input_column here. - ({IDENT}{S}*): Not here. - - * src/lex.h (TOK_PUSH_AND_RETURN): New macro. - * src/lex.l: Use it. - - * src/parse.y (yyerror): If printing input line, always print `^' - error marker too. - - * src/parse.y (command [BREAK]): Allow break to occur in function - bodies too. - * src/tree-expr.cc (tree_function::eval): Also check to see if - function exited because of a break statement. - - Fri Jan 20 10:48:18 1995 John Eaton - - * config.guess: Replace with current version from FSF. - * config.sub: Likewise. - - * src/tempname.c: Include statdefs.h. - - * src/tree-expr.cc (eval): Improve error messages. - - Thu Jan 19 08:33:50 1995 John Eaton - - * src/lex.l (handle_string): Properly handle pending escapes. - Call error() for unterminated string constants. - * src/parse.y (input): For parse errors, call yyerror(). - - * test/config/unix-octave.exp (octave_start): Correctly set OSPATH - from $OCTAVE_SCRIPT_PATH, not to the string OCTAVE_SCRIPT_PATH. - - * test/Makefile.in (OCTAVE_SCRIPT_PATH): Delete surrounding quotes - in definition. - - * doc/texinfo.tex: Move to version 2.140. - - * src/f-rand.cc (Frand): Use different method for generating - initial seed so that it varies more each time Octave starts. - - * src/file-io.cc (feof_internal): Use args(0), not args(1). - - * src/Makefile.in (SOURCES): Use tempnam.c, not tmpnam.c. - * src/tempnam.c: New file, from the GNU C library. - - Wed Jan 18 08:10:31 1995 John Eaton - - * src/user-prefs.h (user_prefs): New field, read_only_constants. - * src/user-prefs.cc (read_only_constants): New function. - * src/variables.cc (install_builtin_variables): Add DEFVAR for - read_only_constants, but leave it #if 0'd out since we're not - really ready for it yet.. - * src/symtab.cc (symbol_record::read_only_error): Check - user_prefs.read_only_constants to see if it is ok to redefine - constants that are marked as read-only. - - * src/user-prefs.h (user_prefs): New field, ps4. - * src/user-prefs.cc (sv_ps4): New function. - * src/variables.cc (install_builtin_variables): Add DEFVAR for PS4. - * src/input.cc (do_input_echo): New function. Use PS4 variable as - prefix of echoed input. Send echoed input through the pager. - - * flibs.sh: Ignore -lang* options. - - * src/load-save.cc (Fsave): Send `save - ...' output through the - pager. - - * doc/Makefile.in: Create and distribute refcards of various sizes. - Delete rules for making refcard.tex from refcard.tex.in. - Don't make or distribute refcard-local. - * doc/refcard.tex: Handle setting paper size with \refcardsize. - * doc/refcard-a4.tex, doc/refcard-legal.tex, doc/refcard-letter.tex: - New files. - - Mon Jan 16 13:19:29 1995 John Eaton - - * src/tc-rep-ass.cc (TC_REP::do_scalar_assignment): Handle - assignments like a(0) = []. - * src/tc-inlines.h (valid_zero_index): New function. - * src/tc-rep.cc (valid_as_zero_index): New function. - * src/tree-const.h (valid_as_zero_index): New function. - - * src/parse.y (func_def2): Check user_prefs before warning about - function name and function file name conflict. - * src/user-prefs.h (user_prefs): New field, warn_function_name_clash. - * src/user-prefs.cc (warn_function_name_clash): New function. - * src/variables.cc (install_builtin_variables): Add DEFVAR for - warn_function_name_clash. - - * scripts/image/octtopnm.c: Include stdlib.h instead of malloc.h. - - Sun Jan 15 15:08:04 1995 John Eaton - - * readline/rldefs.h: Use new #defines for directory headers now - that we are using autoconf 2. - - * scripts/special-matrix/hankel.m: Use .', instead of '. - - * src/input.cc (match_sans_spaces): Use strcmp, not strncmp. - - * src/tc-rep-ass.cc (TC_REP::fortran_style_matrix_assignment): - For scalar index, don't do assignment if RHS and LHS are both empty. - - * src/data.cc (Fsize): Handle optional second arg. - - * src/tree-expr.cc (tree_function::eval (int)): Correctly set - nargin and nargout to zero when evaluating function. - - * src/lex.l (handle_string): Correct handling of string escapes. - - Thu Jan 12 15:25:34 1995 John Eaton - - * Version 1.1.0 released. - - * octMakefile.in (bin-dist-tar): Ignore errors on strip commands. - - * src/tree-expr.cc (tree_builtin::eval (int)): Set nargout to 0 - when calling function. - - * doc/Makefile.in (FORMATTED): Add refcard.dvi and refcard.ps so - that they are distributed along with the other docs. - * octMakefile.in (clean-doc-dist-tar): Delete target. - (doc-dist): Depend on doc-dist-tar, not clean-doc-dist-tar. - - Tue Jan 10 14:29:43 1995 John Eaton - - * src/help.cc (print_usage): Print warning if symbol isn't found. - - * src/utils.cc (Fundo_string_escapes): Fix typo in call to - print_usage(). - - * src/octave.cc (Fsystem): Correctly compute exit code. - - * scripts/miscellaneous/etime.m: Complain if args are not the - right length, not if they are. Reverse sense of test for years. - Duh. - - * src/f-find.cc (find_to_fortran_idx): For the case of one output - argument, return a row vector if the original argument to find was - a row vector. - - Mon Jan 9 12:57:27 1995 John Eaton - - * src/lex.l (grab_help_text): Always overwrite help_buf. - ({CCHAR}): Don't call grab_help_text() if there is already - something in help_buf. - - Sat Jan 7 12:28:35 1995 John Eaton - - * configure.in (HOST_CXXFLAGS): New variable to substitute. - * Makeconf.in (ALL_CXXFLAGS, UGLY_ALL_CXXFLAGS, BUG_CXXFLAGS): - Add $(HOST_CXXFLAGS). - - Fri Jan 6 13:07:09 1995 John Eaton - - * scripts/special-matrix/toeplitz.m: Use .' instead of '. - - Tue Jan 3 18:14:33 1995 John Eaton - - * test: Rewrite many tests to not run Octave interactively. This - makes the log files much more readable. - - * octMakefile.in (clean-tar): Delete octave-test/npsol directory, - not just test/octave.test/npsol.exp. Likewise, add a command for - deleting qpsol tests. - - Mon Jan 2 20:02:10 1995 John Eaton - - * src/octave.cc (main): Return 0 if error_state is not set. - - * src/error.cc (error_1): New function. - (error): Use it. - (parse_error): New function. - * src/parse.y: Never call error and yyerror; just use yyerror. - (yyerror): Improve logic. Use new parse_error() function so that - error_state is always set for a parse error. Don't use - ostream::form(). - (ABORT_PARSE): Don't call reset parser here. - (colon_expr): Don't call yyerror here. An error message is - printed by tree_colon_expression::chain() if it fails. - - Mon Dec 26 20:11:01 1994 John Eaton - - * src/tree-expr.cc (eval): Only call multi-arg form of eval for - object_to_eval if necessary. - - Fri Dec 23 00:08:08 1994 John Eaton - - * src/lex.l: Don't increment promptflag anywhere. - (eat_continuation): New function. - (eat_whitespace): Handle embedded continuations. Return nonzero - if whitespace consumed. - (handle_close_brace): Don't pass yytext. Do pass flag indicating - whether whitespace follows brace. - (handle_identifier): Check for next token being `=' here. Pass - flag indicating whether whitespace follows identifier. - ({SNLCMT}*;{SNLCMT}*): Call eat_whitespace() here. - ({IDENT}{S}*): Call eat_continuation() here. - (do_comma_insert_check): And here, but put a space back if - whitespace is gobbled. - (have_continuation, have_ellipsis_continuation): Decrement - promptflag here. - - Wed Dec 21 09:56:49 1994 John Eaton - - * src/tree-plot.cc (Fclearplot): Send "set nolabel" too. - - Mon Dec 19 17:50:15 1994 John Eaton - - * src/tree-plot.h, src/tree-plot.cc (subplot): Rename using to - using_clause to avoid new C++ keyword. Rename title and style to - match. - - Fri Dec 16 00:09:01 1994 John Eaton - - * configure.in: Don't check for fpsetmask. - * src/sysdep.cc (sysdep_init): Don't check HAVE_FPSETMASK - - Thu Dec 15 00:28:52 1994 John Eaton - - * src/variables.cc (install_builtin_variables) [default_save_format]: - Fix doc string. - - * configure.in: Rework DEFAULT_DOT_O_FROM_DOT_F and - DEFAULT_DOT_C_FROM_DOT_F to avoid embedded newlines. - * Makeconf.in: Likewise. - - * src/pager.cc (flush_output_to_pager): Close stream before - resetting signal handler. - - * src/help.cc (Fhelp): Call fcn_file_in_path here. Delete it too. - Print file name before help message. - * src/variables.cc (get_help_from_file): Don't call - fcn_file_in_path here. - (gobble_leading_white_space): Correctly grab only first set of - comments. - - Wed Dec 14 11:42:13 1994 John Eaton - - * src/parse.y (pager_buf): Don't make it a fixed-size array. - * src/variables.cc (get_help_from_file): New function. - (gobble_leading_white_space): Return first block of comments for - later use as help string. - (looks_like_octave_copyright): New function. - (parse_fcn_file): Stash help from gobble_leading_white_space in - global help_buf. - * src/lex.l (grab_help_text): Don't overwrite help found by - gobble_leading_white_space. - (reset_parser): Delete help_buf. - * src/help.cc (Fhelp): Only try to get help from symbol records - that are defined. If all else fails, try get_help_from_file. - - * src/pager.cc (flush_output_to_pager): Re-initialize pager_buf - immediately after extracting message. Delete message immediately - after sending it to the output stream. Ignore interrupts while - running pager. - - * octMakefile.in (clean-tar): Delete npsol.exp and any .m files - that are in the test/octave.test directory. - (install): Use $(INSTALL), not just install. - - * src/lex.l (reset_parser): Don't reset input column or line - number if reading from a script file or a function file. - (is_keyword): Don't set line number to 1 if reading function file - or script file. - * src/variables.cc (gobble_leading_whitespace): Count lines. - * src/octave.cc (main): If reading file, set reading_script_file - and curr_fcn_file_name before calling get_input_from_file(). - - * src/tc-rep.cc (TC_REP::matrix_value): If implicit_str_to_num_ok, - convert empty string to empty matrix. - - Tue Dec 13 20:25:34 1994 Frederick (Rick) A Niles - - * liboctave/dbleQR.cc, liboctave/dbleQRP.cc, liboctave/CmplxQR.cc, - liboctave/CmplxQRP.cc: Get economy-sized dimensions correct. - - * libcruft/misc/i1mach.f, libcruft/misc/gen-d1mach.c, - libcruft/ranlib/ignuin.f: Prevent warnings about variable may be - used before defined. - - Tue Dec 13 11:07:34 1994 John Eaton - - * src/variables.cc: Change commas_in_literal_matrix to - whitespace_in_literal_matrix. - * src/user-prefs.h (user_preferences): Likewise. - * src/user-prefs.cc (init_user_prefs): Likewise. - (whitespace_in_literal_matrix): Likewise, rename function. - * src/lex.l: Likewise. - (nesting_level): Rename from in_brace_or_paren. - ({SNLCMT}*\n{SNLCMT}*): Make separate case from - {SNLCMT}*;{SNLCMT}. Check nesting level to decide whether - to convert newline to semicolon. - ({NL}, {CCHAR}): Check nesting level to decide whether to eat - or return newline. - ("("): Decrement promptflag. - (")"): Increment promptflag. - - Mon Dec 12 00:02:51 1994 John Eaton - - * scripts/Makefile.in, scripts/*/Makefile.in (install): Don't - depend on all. - - * octMakefile.in: Put doc dir last. - * doc/Makefile.in (dir): New file. - (DISTFILES): Distribute dir. - (install): Install dir if it does not already exist in $(infodir). - Otherwise, print message. - - * src/lex.l: Handle {IDENT}{S}*/= with yyinput() instead of - trailing context. - (handle_close_brace): New function. - (handle_number): New function. - (have_continuation, handle_ellipsis_continuation, handle_string): - New functions for handling strings and continuation lines in - string constants. - (eat_whitespace): New function eliminates need for NEW_MATRIX - start state. - - Sun Dec 11 15:53:03 1994 John Eaton - - * src/lex.l: Eliminate special case for eating whitespace when - start state is . - Merge three cases for handling `]' for start state. - - Fri Dec 9 12:21:35 1994 John Eaton - - * src/lex.l: Handle `\' as a continuation character too. - Allow comments and blanks to follow continuation characters. - Improve handling of comments in matrices. Create a few more - definitions for patterns. Restructure source. - - * configure.in: Check for bcopy too. - - * configure.in (gxx_version): Don't use -fno-implicit-templates on - AIX systems with g++ 2.6.x. - - * octave-bug.in: Check for CC: lines too. Use case-insensitive - match for To: and Cc: lines. Actually send file that has header - separator stripped. Print list of CC: addresses too. - - * src/input.cc (get_user_input): If user enters empty string, - return empty matrix or empty string. - - * src/help.cc (Fhelp, Ftype, Fwhich): Don't allow lookup_by_name - to execute script files. - - Thu Dec 8 23:20:02 1994 John Eaton - - * src/tc-rep.cc (print): Don't check `print', which is not a - variable in this context. - - Wed Dec 7 10:52:59 1994 John Eaton - - * src/configure.in: Check for fpsetmask. - * src/sysdep.cc (sysdep_init): Check HAVE_FPSETMASK. Only call it - if either __386BSD__ or __FreeBSD__ is defined. - Don't check __386BSD__ as a condition for including - floatingpoint.h. - - Mon Dec 5 12:29:07 1994 John Eaton - - * src/utils.cc: Update directory header macro names for autoconf 2. - * src/dirfns.cc: Likewise. - - Sun Dec 4 22:00:40 1994 John Eaton - - * octMakefile.in (DISTFILES): Don't distribute GCC.PATCH, since it - is not needed with gcc 2.6.3. - - * configure.in: Really do disable IEEE floating point functions on - the Alpha. - - Wed Nov 30 11:42:44 1994 John Eaton - - * doc/FAQ.texi: New file. - * doc/Makefile.in: Create info, dvi, and ps files and distribute - them. - - * Makefile.in (all): Expand initial message. - - Sat Nov 26 21:47:05 1994 John Eaton - - * src/octave.cc (Fcomputer): Always append ios::ends to ostrstream - before returning. - - Mon Nov 21 09:41:34 1994 John Eaton - - * src/lex.l: When start state is TEXT_FCN, gobble blanks with - pattern that matches only blanks before other patterns that can - also match just blanks. Always check whether in_brace_or_paren - stack is empty before trying to use it. - - * src/parse.y (make_multi_val_ret): Call constructor for - tree_simple_assignment_expression with correct number of args. - - * scripts/plot/shg.m: New function. - - * src/f-qpsol.cc (Fqpsol): Correct for changes in meaning of - nargin and the way args is loaded. - * src/f-npsol.cc (Fnpsol): Likewise. - - * scripts/polynomial/roots.m: Return empty matrix for scalar or - empty matrix args. - - * src/tree-plot.cc (gnuplot_terminal_type): New static variable. - (Fset): If this is a set term command, set gnuplot_terminal_type. - (open_plot_stream): Use gnuplot_terminal_type if it is set. - - * src/idx-vector.cc (idx_vector::init): Don't check max value of - index vector against dimension here. We may need to resize. - * src/tc-rep-idx.cc (do_scalar_index): Do check idx-vector max - value here. - - * src/lex.l (is_plot_keyword): Don't set past_plot_range here. - Don't accept abbreviations for clear. - (handle_identifier): Don't call is_plot_keyword unless plotting. - Set past_plot_range here, before checking for plot option keywords. - - Fri Nov 18 17:25:59 1994 John Eaton - - * src/data.cc (Fis_struct): New function. - - Thu Nov 17 18:13:56 1994 John Eaton - - * octMakefile.in (DISTFILES): Distribute GCC.PATCH. Don't - distribute LIBG++.PATCH. - - * src/tree-plot.cc (Fclearplot): Turn off grid and reset - plot_line_count to zero. - - * configure.in: Check for sys/resource.h. - Create scripts/strings/Makefile too. - - * src/timefns.cc: Surround inclusion of sys/resource.h in extern "C". - Only include sys/resource.h if both HAVE_SYS_RESOURCE_H and - HAVE_GETRUSAGE are defined. - - Wed Nov 16 09:26:10 1994 John Eaton - - * scripts/plot/plot_opt.m: New function. - * scripts/plot/semilogx.m, scripts/plot/semilogx.m, - scripts/plot/loglog.m, scripts/plot/plot.m: Handle additional - args and format strings. - * scripts/plot/polar.m: Handle format arg. - * scripts/plot/polar_int_1.m, scripts/plot/polar_int_2.m: Extract - from polar_int.m. - * scripts/plot/plot_int_1.m, scripts/plot/plot_int_2.m: Extract - from plot_int.m. - * scripts/plot/plot_2_s_s.m, scripts/plot/plot_2_v_v.m, - scripts/plot/plot_2_m_m.m, scripts/plot/plot_2_v_m.m, - scripts/plot/plot_2_m_v.m: Handle format arg. - - * scripts/strings/strcmp.m: Move here. - * scripts/general/strcmp.m: From here. - - * src/xdiv.cc (result_ok): Issue warning instead of error if warn - is nonzero. - - Tue Nov 15 15:54:19 1994 John Eaton - - * src/tree-plot.cc (Fcloseplot): Clear title and labels too. - - * src/help.cc (keywords): Add entries for all_va_args, - unwind_protect, unwind_protect_cleanup, and end_unwind_protect. - - * liboctave/Makefile.in: Use -include for dependency files. - * src/Makefile.in: Likewise. - - Mon Nov 14 10:28:23 1994 John Eaton - - * src/tree-misc.cc (convert_to_const_vector): Resize vector before - returning. - - * src/lex.l (plot_style_token): Also allow "steps", "boxes", and - "boxerrorbars". - - * src/parse.y (UNWIND): Rename from UNWIND_PROTECT. - (CLEANUP): Rename from UNWIND_PROTECT_CLEANUP. - (command): Allow optsep after UNWIND and CLEANUP tokens. - * src/lex.l (is_keyword): Use new token names - - * src/tree-const.h (tree_constant::all_va_args): New enum. - (tree_constant (tree_constant::all_va_args t)): New constructor. - (is_all_va_args): New function. - (is_empty, is_zero_by_zero, make_numeric_or_magic, - make_numeric_or_range_or_magic): Handle all_va_args type. - * src/tc-rep.h (constant_type::all_va_args): New enum element. - (is_all_va_args): New function. - * src/tc-rep.cc (TC_REP::tree_constant_rep (TC_REP::constant_type), - TC_REP::print_code): Handle all_va_args. - * src/tree-misc.cc (tree_argument_list::convert_to_const_vector): - Handle all_va_args. - * src/tree-expr.cc (tree_index_expression::eval): After call to - tree_argument_list::convert_to_const_vector (), check error_state. - (tree_simple_assignment_expression::eval): Likewise. - (tree_function::octave_all_va_args): New function. - * src/parse.y (ALL_VA_ARGS): New token. - (arg_list): Handle ALL_VA_ARGS. - * src/lex.l (is_keyword): Handle all_va_args. - - * src/tree-expr.cc (tree_identifier::bump_value): Check read-only - status of sym before altering value. - (tree_prefix_expression::eval): Check error_state after call to - tree_identifier::bump_value (). - - * src/variables.cc (bind_nargin_and_nargout): Don't make nargin - and nargout read only. - - * scripts/strings: New subdirectory for string functions. - * scripts/Makefile.in (SUBDIRS): Add strings. - * scripts/strings/strcat.m: New function. - - Fri Nov 11 14:17:31 1994 John Eaton - - * src/load-save.cc (extract_keyword): Allow trailing blanks on the - input line. - - Thu Nov 10 09:53:35 1994 John Eaton - - * scripts/general/reshape.m, scripts/image/ind2gray.m, - scripts/image/ind2gray.m, scripts/image/ind2rgb.m, - scripts/image/rgb2ind.m: unwind_protect do_fortran_indexing. - * scripts/general/strcmp.m: unwind_protect implicit_str_to_num_ok. - * scripts/miscellaneous/menu.m: unwind_protect page_screen_output. - - * src/parse.y (UNWIND_PROTECT, UNWIND_PROTECT_CLEANUP): New tokens. - (command): Handle unwind-protect. - * src/lex.l (is_keyword): Handle unwind_protect, - unwind_protect_cleanup, and end_unwind_protect. - * src/tree-cmd.cc (tree_unwind_protect_command): New class, to - handle unwind-protect. - - * src/token.h (end_tok_type): New field, end_unwind_protect. - - * src/error.cc (verror): Flush pending output to pager here. - (error): Not here. - - * src/tc-rep.cc (force_numeric): Don't jump to top level on error. - * src/tc-rep.cc, src/tc-rep-ass.cc, src/tc-rep-idx.cc: Check - error_state after calls to make_numeric* functions. - - * src/f-lpsolve.cc: Define Flp_solve and Flp_solve_options, not - Flpsolve or Flpsolve_options. - - * src/utils.cc (Ffile_in_path): Define Ffile_in_path, not - Ffile_in_pat. - - * src/f-inv.cc: Add DEFUN for inverse. - - Wed Nov 9 09:30:15 1994 John Eaton - - * src/load-save.cc (read_mat_file_header): Check for mopt < 0 too. - Don't fail if reading mopt fails. - (save_mat_binary_data): Handle range data as a special case. - (get_default_save_format): Also accept `mat-binary' and - `mat_binary'. - (Fsave): Add ios::trunc to flags for opening output file. - - * src/parse.y (func_def2): Stash function name before stashing - file name. - - * src/utils.cc (fcn_file_in_path): Don't append `.m' if the name - already ends in `.m'. - (oct_file_in_path): Likewise, for `.oct'. - - * src/error.cc (usage): Set error state to -1, so we get traceback - information after a call to usage. - - * src/tree-expr.cc (stash_fcn_file_name): Store full name of the - file. - - * scripts/*/*.m: Change messages to say `invalid' instead of - `illegal', since no laws are being broken by using these functions - incorrectly. - - * src/timefns.cc (Fcputime): New function. - * configure.in: Check for getrusage. - - * src/scripts/miscellaneous/tic.m: New function. - * src/scripts/miscellaneous/toc.m: New function. - * src/scripts/miscellaneous/etime.m: New function. - * src/scripts/miscellaneous/is_leap_year.m: New function. - - * src/error.cc (Fwarning, Fusage): New functions. - * scripts/*/*.m: Use them instead of printing warning and usage - messages directly with disp, printf, or fprintf. - - * src/file-io.cc (close_files): Check Pix before using. - (file_count): Delete unnecessary variable. Instead, use - DLList::length to get the number of files in the list. - - * src/sighandlers.cc (install_signal_handlers): Explicitly ignore - SIGPOLL and SIGIO. - - Tue Nov 8 15:26:50 1994 John Eaton - - * scripts/general/logspace.m: Lose fractional part of third arg. - Don't round, for compatibility with Matlab. - * scripts/general/linspace.m: Likewise. - - * liboctave/CMatrix.cc (row_min, row_max, row_min_loc, row_max_loc): - Handle case of row containing only real elements. - (column_min, column_max, column_min_loc, column_max_loc): - Likewise, for columnwise operations. - * src/f-minmax.cc (two-complex-arg min, max): Handle case of both - columns containing only real elements. - - * src/variables.cc (Fclear): Pass 0 to symbol_table::list() for - pats and npats. - - Mon Nov 7 20:22:36 1994 John Eaton - - * liboctave/dColVector.cc (operator +=): Don't return reference to - temporary. - (operator -=): Likewise. - * liboctave/CMatrix.cc (operator +=, operator -=): Likewise. - - Sun Nov 6 23:15:24 1994 John Eaton - - * octMakefile.in (DISTSUBDIRS): Don't use $(SUBDIRS) here. - - * src/load-save.cc (Fsave): Open output file with mode == - ios::out, not ios::in. - - Sat Nov 5 18:18:11 1994 John Eaton - - * configure.in (HAVE_SYS_SIGLIST): Check for sys_siglist variable, - even if it isn't declared in a system header. - * acconfig.h (HAVE_SYS_SIGLIST): Add #undef. - * src/sighandlers.cc (sys_siglist): Define our own if - HAVE_SYS_SIGLIST is not defined, not if SYS_SIGLIST_DECLARED is - not defined. - - * src/tree-plot.cc (Fclearplot): New function. - (clg): Alias for clearplot. - - * src/parse.y (CLEAR): New token. - (statement): Handle PLOT CLEAR as a special case. - * src/lex.l (is_plot_keyword): Handle CLEAR here too. - - Fri Nov 4 08:44:57 1994 John Eaton - - * All: Remove remaining #pragma interface/implementation statements. - - * src/tree-plot.cc (subplot): Move actual code here from .h file. - - * src/tree-expr.cc (tree_expression): Declare destructor virtual. - Delete unnecessary destructors. - - * src/SLStack.h, src/SLStack.cc (operator =): Return reference to - SLStack, not void. - - * src/f-qzval.cc (Fqzval): Rename from Fqzvalue. Change Help - and usage messages too. - - * scripts/plot/plot_int.m: Really figure out if there are any - imaginary parts. - - * scripts/control/are.m: Fix typo. - - Thu Nov 3 18:44:11 1994 John Eaton - - * src/load-save.cc (save_ascii_data): Handle new arg, - strip_nan_and_inf. Change callers. - (strip_infnan): New functions. - (save_three_d): Strip inf and nan values here too. - - * src/tree-plot.h (subplot_using): New data have_values and val. - * src/tree-plot.cc (subplot_using::eval, subplot_using::values): - New functions. - (subplot_style::errorbars): New function. - (subplot::extract_plot_data, subplot::handle_plot_data): New functions. - (subplot::print): Improve handling of data. - - Wed Nov 2 08:11:08 1994 John Eaton - - * src/file-io.cc (do_scanf): If reading from stdin, flush stdout - first. - - * configure.in: Leave some comments in the configure file. - Improve checking for termios.h, termio.h, and sgtty.h. - - * src/variables.cc (install_builtin_variables): DEFVAR realmax and - realmin here. - * src/sysdep.cc: Instead of DEFUNing them here. - - * src/variables.cc (do_who): Accept globbing patterns as args. - (maybe_list): Handle them here. - - * src/symtab.cc (matches_patterns): New function. - (symbol_table::list, symbol_table::long_list): Accept list of - patterns, and use matches_patterns to see if the given string is a - match. Change all callers. - - * src/load-save.cc (read_binary_data): Don't fail if reading - name_len fails. - (do_load): Quit quietly if nothing is left to read. Clean up doc - and name in all cases. - - Tue Nov 1 16:34:20 1994 John Eaton - - * src/lex.l (")"): Set cant_be_identifier to 1 here too. - - * src/tree-plot.cc: Use abbreviations for gnpulot plot, splot, - replot, with, using, and title commands. - - Mon Oct 31 14:26:12 1994 John Eaton - - * src/variables.cc (Fclear): Look in global symbol table for - user-defined function names. - - * src/load-save.cc (do_load): New function. - (Fload): Use it to avoid assigning streams. - (write_binary_header): New function. - (save_vars): New function. - (Fsave): Use it to avoid assigning streams. - - * libcruft/linpack/zgesl.f (zgesl): Comment out unused varialbes - and statement functions. - - * src/sysdep.cc (Fisieee): New function. - (Frealmax, Frealmin): Ditto. - - * scripts/miscellaneous/version.m: New file. - - Fri Oct 28 14:52:08 1994 John Eaton - - * octMakefile.in (distclean): Also delete config.cache and - config.log. - - * Makeconf.in (CPPFLAGS): Allow substitution. - - * configure.in: Use AC_PREFIX_DEFAULT. - - * configure.in: Use AC_CANONICAL_HOST instead of doing this - ourselves. - - * install-sh: Rename from install.sh. - * octMakefile.in (DISTFILES): Distribute install-sh, not install.sh. - - Mon Oct 24 10:04:27 1994 John Eaton - - * octave-bug.in: Print message if bug report appears to have been - mailed successfully. Otherwise, exit with error status. - - Fri Oct 21 14:05:10 1994 John Eaton - - * src/tc-rep-ass.cc (TC_REP::do_vector_assign (rhs, idx-vector)): - Handle all four cases of row/colum mixing. Report an error if the - RHS is a matrix. - - * src/tc-rep-idx.cc (TC_REP::do_index): Don't barf on indexing an - empty matrix with colon(s). - (TC_REP::do_scalar_index): Create index vector with z_len = 1. - (TC_REP::do_matrix_index (Range, tree_constant)): Correctly handle - case of colon as second arg. - - * octave-bug.in: Put mail commands in subshells so error message - really do go away. - - Thu Oct 20 11:05:36 1994 John Eaton - - * octave-bug.in: If passing $SUBJECT on the command line to a - mailer, quote it. Don't assume /bin/mail takes any args other - than a recipient address. Do the right thing if the To: line - changes. - - * src/tc-rep.cc (TC_REP::rows, TC_REP::columns): Return -1 for - anything that doesn't really have rows or columns. - - * src/tc-rep-idx.cc (fortran_style_matrix_index): Check max and - min index values. - - * Makefile.in (FORCE): New phony target. Used instead of .PHONY - to be portable. - - * octave-bug.in: Try harder to mail the message. - - * src/dynamic-ld.cc: Undefine true, false, and boolean after - including kpathse/pathsearch.h. - - * src/sysdep.cc: Include . - - Wed Oct 19 10:28:49 1994 John Eaton - - * configure.in (CXXLIB_LIST, FLIB_LIST, CXXLIB_PATH, FLIB_PATH): - Be careful not to match -l or -L in the middle of a word. - - * src/f-minmax.cc: Correctly handle mixed scalar/matrix args. - - * octMakefile.in: Rename from Makefile.in. - * Makefile.in: New file. For `all' target, print message and - execute make again using octMakefile. For other targets, just - execute make again using octMakefile. - - * configure.in: Check for sys_siglist. - * src/sighandlers.h [! HAVE_SYS_SIGLIST]: Provide an external - declaration. - * src/sighandlers.cc (generic_sig_handler): New function, replaces - most individual signal handler functions. - (sigint_handler, sigpipe_handler): Restore signal handler before - doing anything else. - [! HAVE_SYS_SIGLIST] (sys_siglist): Provide our own definition. - - * config.guess: Update from FSF sources. - - Tue Oct 18 23:36:24 1994 John Eaton - - * flibs.sh: Don't pass -Y P,path. Instead, turn it into a series - of -L dir args. - - * configure.in: Update for autoconf 2.0. - Delete support for --enable-run-in-place (it is too hard to make - this work reliably...). - - Mon Oct 17 11:40:49 1994 John Eaton - - * src/user-prefs.cc (init_user_prefs): Declare to return void, - not int. - - * configure.in: Change quote characters around tr command. Some - systems actually do need the []'s for ranges... - - Sun Oct 16 12:22:14 1994 John Eaton - - * src/tempname.c, src/tmpnam.c: New files. - * src/Makefile.in (SOURCES): Add them. - * src/dirfns.cc: Delete functions extracted from glibc. - - * configure.in (localfcnfiledir, localoctfiledir, imagedir): - New variables. Use them to define localfcnfilepath, - localoctfilepath, and imagepath. - * Makeconf.in: Substitute them here. - - * src/utils.cc (get_fcn_file_names) [WITH_DLD]: Also match .oct - files. - - * dld/find_exec.c (dld_find_executable): Don't be fooled by - directories or other special files in PATH. - (ABSOLUTE_FILENAME_P): Also return true if the name includes a - `/'. This isn't necessarily an absolute path, but we will turn it - into one later. - * src/dynamic-ld.cc (octave_dld_init): Call make_absolute() on - value returned from dld_find_executable(). - - Sat Oct 15 08:35:13 1994 John Eaton - - * flibs.sh: Undo previous change. Only substitute spaces for - commas if it looks like we have output from xlf. Handle -Y and - LD_RUN_PATH using gcc's -Xlinker option. - - * Makefile.in (snapshot-version): Use move-if-change for version.h. - - Fri Oct 14 09:18:08 1994 John Eaton - - * scripts/image/Makefile.in (SOURCES): Don't forget octtopnm.c. - - * Makefile.in (BINDISTFILES): Distribute octave-bug too. - - * configure.in (imagepath): Install at same level as fcnfiledir, - not below it. - - * doinstall.sh: Correctly extract version numbers that are not all - digits. Also install images too. Also install octaverc. Ask - octave for the target host type. Also create site/m and - site/oct directories. Also install octave-bug. - - * scripts/image/Makefile.in (DISTFILES): Distribute demo image - files too. - - * doinstall.sh: Update for new directory organization. - - * src/variables.cc (subst_octave_home): Make it work for multiple - substitutions. - - * flibs.sh: Handle -Y P,path:of:lib:dirs output from f77 on Solaris. - - * src/strfns.cc (Ftoascii): New file, new function. - (Fisstr, Fsetstr): Move here, fromd ata.cc. - - * src/Makefile.in (SOURCES): Include it. - - Thu Oct 13 11:58:03 1994 John Eaton - - * scripts/signal/filter.m: Postpad `b' before reshaping. - - * mkinstalldirs: New file. - * Makefile.in: Distribute it, don't make mkpath. - * All Makefile.in files: Use it instead of mkpath. - - * src/utils.cc (Foctave_tmp_file): New function. - - * src/utils.cc (undo_string_escape): Move here from tc-rep.cc, - rename from undo_string_escapes, and make extern. - (undo_string_escapes): New function, for undoing a whole string. - (Fundo_string_escapes): New function. - - * scripts/miscellaneous/dump_prefs.m, - scripts/miscellaneous/dump_1_pref.m: New functions. - * scripts/miscellaneous/bug_report.m: Record user preferences in a - file and pass the name of the file to octave-bug. Use - octave_tmp_file to generate tmp file name. - * octave-bug.in: Accept a final file-name arg as a file that - contains a list of user-preferences. - - Wed Oct 12 09:09:37 1994 John Eaton - - * configure.in: Redefine archlibdir and octfiledir so that oct - and exec directories are at the same level as the m directory. - Redefine localoctfilepath so that site/oct is a the same level as - site/m. - - * Makeconf.in (F77): Substitute it. - (BUG_CFLAGS, BUG_CXXFLAGS): New vars. - * configure.in: - * scripts/bug_report.m: New file. - * octave-bug.in: New file. - * Makefile.in (DISTFILES): Distribute octave-bug.in. - (dirs_to_make): Add $bindir. - (all): Add octave-bug. - (octave-bug): New target. - (install): Install it. - * src/defaults.h.in: Add defines for bindir. - * src/Makefile.in (defaults.h): Substitute it. - * src/variables.cc (octave_bin_dir): New function. - * src/octave.cc (initialize_globals): Also add $bindir to path. - - * configure.in: Check for gettimeofday. Add AC_TIME_WITH_SYS_TIME. - * src/systime.h: New file. - * src/timefns.h: Use gettimeofday if available. - * src/Makefile.in (INCLUDES): Add systime.h. - - Mon Oct 10 14:34:56 1994 John Eaton - - * src/octave.cc (verbose_flag): New global variable. - (long_opts): Add "verbose". - (usage_string): Update. - (main): Set verbose_flag if given --verbose. - (execute_startup_files): Don't print messages about reading - startup files if verbose_flag is not set. - - * src/tree-expr.cc (apply_mapper_fcn): Handle scalars as a special - case, but then just try to convert other arg types to a matrix. - - * src/f-det.cc (Fdet): Check if arg is complex type, but not - necessarily a complex matrix. - * src/f-schur.cc (Fschur): Likewise, and also for real types. - * src/f-lu.cc (Flu): Likewise. - * src/f-minmax.cc (Fmin, Fmax): Likewise. - - Sun Oct 9 21:04:17 1994 John Eaton - - * src/tc-rep-ass.cc (TC_REP::assign): If LHS is undefined, don't - try to force it to be a numeric type. - - Fri Oct 7 09:05:10 1994 John Eaton - - * configure.in: Define LD_STATIC_FLAG for Alpha OSF/1 1.3 systems. - - * src/tc-rep-idx.cc (TC_REP::do_index): Only work for numeric - types, but don't panic if conversion doesn't work. - * src/tc-rep-ass.cc (TC_REP::assign): Likewise. - - * src/tc-rep.cc (TC_REP::gripe_wrong_type_arg): New function. - - * src/gripes.cc (gripe_wrong_type_arg): Define here. - * src/tree-const.cc: Not here. - - Wed Oct 5 16:24:38 1994 John Eaton - - * src/file-io.cc (do_scanf): Don't panic if string is NULL. - - * src/gripes.cc (gripe_unrecognized_float_fmt): New function. - (gripe_2_or_3_dim_plot): Ditto. - (gripe_unrecognized_data_fmt): Ditto. - (gripe_data_conversion): Ditto. Use it in load-save.cc data - conversion routines that aren't implemented yet. - - * src/load-save.cc (do_double_format_conversion): Don't panic on - unrecognized floating point formats. - (do_float_format_conversion): Likewise. - (write_doubles): Don't panic if data format is unrecognized. - (do_save): Likewise - (install_loaded_variable): Don't panic for unknown symbol types. - (read_binary_data): Also check error_state after calls to read_doubles. - - * src/symtab.cc (symbol_table::rename): Don't panic if symbol - can't be renamed. - * src/parse.y (return_list): Abort parse if renaming results in an - error. - - * src/tree-misc.cc (tree_if_command::eval): Don't panic if all - (all (cond)) is not a scalar. - - * src/tree-expr.cc (tree_unary_expression::print_code): Don't - panic if expression type is unknown. - - * src/tree-plot.cc (tree_plot_command::eval): Don't panic if plot - is not 2 or 3 dimensional. - (tree_plot_command::print_code, subplot::print, save_in_tmp_file): - Likewise. - - * src/variables.cc (alias_builtin): Panic with better message. - (subst_octave_home): Don't panic if OCTAVE_HOME doesn't contain - OCTAVE_PREFIX. - - * src/tc-inlines.h (REP_RHS_MATRIX): Use panic_impossible() - instead of abort(). - (REP_ELEM_ASSIGN, CRMATRIX): Likewise. - - * src/data.cc (Fdiag, make_diag): Do work here. - * src/tc-rep.cc (TC_REP::diag, make_diag): Not here. - * src/tc-rep.h (TC_REP::diag): Delete. - * src/tree-const.h (tree_constant::diag): Delete. - - Tue Oct 4 08:35:37 1994 John Eaton - - * src/f-fft.cc (Ffft): Correctly set n_points for row vectors if - nargin == 1. - * src/f-ifft.cc (Fifft): Likewise. - - * src/load-save.cc (Fsave): Declare file and stream static. - - Mon Oct 3 10:40:50 1994 John Eaton - - * src/tree-expr.cc (octave_va_arg): Correct arg count and index to - match recent change to arg passing/nargin. - (define_param_list): Always set num_named_args = param_list->length (). - - * readline/Makefile.in (install): Don't install libreadline.a by - default. - (uninstall): Now no need to delete it. - - * configure.in (localfcnfilepath, localoctfilepath): Change to - match organization of system fcn and oct files, and enable - recursive searching in both. Enable recursive searching in - $(octfiledir). - (includedir): Change to $(prefix)/include/octave. - - Sun Oct 2 10:14:18 1994 John Eaton - - * configure.in: For now, disable IEEE floating point functions on - the Alpha. This is braindead, but at least prevents divide by - zero crashes... - - * src/file-io.cc (fseek_internal): Use values for origin that - match what we use to define SEEK_SET, SEEK_CUR, and SEEK_END in - variables.cc. - - * dld: Merge various changes for Linux from dld 3.2.4 that is - being distributed with jacal. - - * src/file-io.cc (fwrite_internal): Correct indexing of args. - - * src/tree-expr.cc (apply_mapper_fcn): New function. - (tree_builtin::eval): Use it instead of tree_constant::mapper(). - * src/tree-const.h (tree_constant::mapper): Delete. - * src/tc-rep.cc, src/tc-rep.h (TC_REP::mapper): Delete. - - * src/data.cc (Fcumprod, Fcumsum, Fprod, Fsum, Fsumsq): Do work here. - * src/tc-rep.cc (TC_REP::cumprod, TC_REP::cumsum, TC_REP::prod, - TC_REP::sum, TC_REP::sumsq): Not here. Delete. - * src/tc-rep.h (TC_REP::cumprod, TC_REP::cumsum, TC_REP::prod, - TC_REP::sum, TC_REP::sumsq): Delete - * src/tree-const.h (tree_constant::cumprod, tree_constant::cumsum, - tree_constant::prod, tree_constant::sum, tree_constant::sumsq): - Delete. - - * tree-const.h: Don't check gcc minor version number. - * tc-rep.h: Likewise. - - * src/file-io.h (class file_info): Declare here. - * src/file-io.cc: Not here. - - * configure.in (LIBOCTDLD, LIBDLD): Remove ../ prefix. - * Makefile.in (distclean, realclean): Don't remove *.a. - * src/Makefile.in (OCTAVE_LIBS): Correct directory spec for libs. - Build, install, and clean liboctdld.a, not ../liboctdld.a. - * dld/Makefile.in: Build, install, and clean libdld.a, not ../libdld.a. - * info/Makefile.in: Likewise, for libinfo.a. - * kpathsea/Makefile.in: Likewise, for libkpathsea.a. - * libcruft/Makefile.in: Likewise, for libcruft.a. - * liboctave/Makefile.in: Likewise, for liboctave.a. - * readline/Makefile.in: Likewise, for libreadline.a. - - * configure.in (gxx_version): Require 2.6.x or later. Don't - define EXTERNAL_TEMPLATES. Do define NO_IMPLICIT_TEMPLATES. - * liboctave/Array-C.cc, liboctave/Array-d.cc, src/Array-tc.cc, - src/DLList-fi.cc src/SLStack-tok.cc, src/SLStack-ue.cc, - src/SLStack-tm.cc, src/SLStack-pc.cc, src/SLStack-i.cc, - src/SLList-tc.cc, src/SLStack-sym.cc, src/SLStack-ui.cc, - src/SLList-misc.cc, src/SLList-expr.cc, src/SLList-plot.cc, - src/Map-tc.cc: New files. Instantiate templates here. - * libocave/Array.cc, src/Map.cc, src/Stack.cc, src/SLStack.cc: - Not here. Remove #pragma implementation hack. - * liboctave/Array.h, src/Stack.h, src/Map.h, src/SLStack.h: Remove - #pragma interface hack. - * Makeconf.in: Substitute NO_IMPLICIT_TEMPLATES, not - EXTERNAL_TEMPLATES. - (ALL_CXX_FLAGS, UGLY_ALL_CXX_FLAGS): Use $(NO_IMPLICIT_TEMPLATES), - not $(EXTERNAL_TEMPLATES). - * acconfig.h: Remove USE_EXTERNAL_TEMPLATES #undef. - * src/Makefile.in (XALL_CXX_FLAGS): Delete -fno-implicit-templates. - (TI_SRC, TI_OBJ): New variables. - (libtinst.a): New target. - * liboctave/Makefile.in (TI_SRC): New variable. - (SOURCES): Add it to list. - - Fri Sep 30 09:52:15 1994 John Eaton - - * src/Makefile.in: Automatically generate more lists. - Use := in more places. - * src/Array-C.cc src/Array-d.cc src/Array-tc.cc src/Map-tc.cc - src/Stack-i.cc src/SLStack-pc.cc src/SLStack-sym.cc - src/SLStack-tok.cc src/SLStack-tm.cc src/SLStack-ue.cc: - New template instantiation files. - * configure.in: If using gcc 2.6.x or later, use - -fno-implicit-templates instead of -fexternal-templates. - - * src/tc-inlines.h: Rename from tc-inlines.cc. - - * src/parse.y (looking_at_indirect_ref): New global flag, for - parser feedback. - (tree_indirect_ref_type): New token type. - (TEXT_ID): New token. - (indirect_ref): New non-terminal. - (make_index_expression): New function. - (variable): Use it to build variable from indirect_ref, not just - identifier. - - * src/lex.l (handle_identifier): Handle identifiers differently if - looking at an indirect reference. Add `.' to list of other ops. - - * src/tree-expr.cc (tree_identifier::do_lookup): Handle new - exec_script arg. - (tree_identifier::assign): New functions for assignment to a - strucutre element. - (print_constant): New function. - (tree_identifier::eval, tree_indirect_ref::eval): Use it. - ( - - * src/tree-expr.h (tree_indirect_ref): New class for handling - structure references. - (tree_expression::is_indirect_ref): New virtual function. - (tree_fvc::lookup_map_element): New virtual function. - (tree_index_expression, tree_simple_assignment_expression): - Add new constructors for handling indirect references. - - * src/oct-map.h: New file, for class managing Octave's - structure/map type. - - * src/tree-misc.cc (tree_global::eval): Don't allow individual - structure elements to be tagged global. - - * src/tc-rep.h (tree_constant_rep): Add new field, a_map, and a - new type_tag, map_constant. - * src/tree-const.cc (tree_constant::is_map): New function. - * src/tree-const.cc (tree_constant::map_value, - tree_constant::assign_map_element, tree_constant::make_unique, - tree_constant::lookup_map_element, - tree_constant::make_unique_map_element): New functions. - - * src/Map.h (CHNode::CHNode): Copy key. - (CHNode::~CHNode): Delete it. - (CHMap::contents): Don't declare return value const. - - * src/tc-inlines.cc: Move some macros here from tc-rep.cc so they - can appear in one place and be shared by tc-rep-idx.cc, - tc-rep-ass.cc, and tc-pre.cc. - - * src/tc-rep-idx.cc, src/tc-rep-ass.cc: New files, extracted from - tc-rep.cc to make compilation of tc-rep stuff faster and require - less memory. - - * src/variables.cc (Fwhos): Correctly insert "-long" into arg list - for Fwho. - - Mon Sep 26 12:59:55 1994 John Eaton - - * test/Makefile.in (OCTAVE_SCRIPT_PATH): Append `//' for recursive - searching. - - Fri Sep 23 07:53:13 1994 John Eaton - - * scripts/plot/bar.m: Don't return values if nargout == 0. - * scripts/plot/hist.m: Likewise. - * scripts/plot/stairs.m: Likewise. - - * src/tree-plot.cc (Fishold): New function. - (plot_line_count, parametric_plot, clear_before_plotting): - Declare static. - - * src/f-fft.cc (Ffft): Handle row vector as a special case. - * src/f-ifft.cc (Fifft): Ditto. - - Thu Sep 22 13:20:53 1994 John Eaton - - * src/help.cc (print_symbol_type): New function, extracted from Fwhich. - (Fwhich): Use it. - (Fhelp): Use it to print type info before help message. - - * src/dynamic-ld.cc: Hide all DLD-specific functions behind - #ifdef WITH_DLD. - - * scripts/startup: New directory. - * scripts/startup/Makefile.in: New file. - * scripts/startup/octaverc: New file. Don't overwrite existing - file when nstalling. - * configure.in: Generate Makefile in scripts/startup. - * scripts/Makefile.in (SUBDIRS): Add startup. - * src/defaults.h.in (OCTAVE_STARTUPFILEDIR): New macro. - * src/variables.cc (get_site_defaults): Look for octaverc in - OCTAVE_STARTUPFILEDIR. - - * configure.in (fcnfiledir): Make it end in `//'. - - * src/error.cc (Ferror): Correct indexing error. - - * src/Map.h, src/Map.cc: New files implementing associative arrays. - * src/Makefile.in: Include them in the list of files to distribute - and compile. - - Wed Sep 21 09:50:19 1994 John Eaton - - * Makefile.in (DISTSUBDIRS): Add dld to the list. - - * scripts/plot/hist.m: New function file. - - * src/tc-rep.cc (TC_REP::do_matrix_index (tree_constant, - tree_constant): For case of scalar as first arg, move call to - index check to the TC_REP::do_matrix_index (int, tree_constant) - function. - (TC_REP::do_matrix_index (int, tree_constant): Be compatible with - Matlab for indexing of the form row_vector (0, :). - (TC_REP::do_matrix_index (tree_constant, int): Likewise, for - indexing of the form col_vector (:, 0). - (TC_REP::do_matrix_assignment): Similar changes for assignment. - - Tue Sep 20 17:48:39 1994 John Eaton - - * src/parse.y (return_list, return_list1): New nonterminals. - Rename from func_def1a. Handle variable number of return values. - * src/tree-expr.h (tree_function::vr_list): New field. - * src/tree-expr.cc (delete_vr_list): New function. - (tree_function::octave_vr_val, tree_function::takes_var_return): - New functions, for variable return lists. - (tree_function::define_ret_list, tree_function::eval): Handle vr_list. - (Fvr_val): New function. - * src/tree-misc.h (tree_va_return_list): New list class. - * src/tree-misc.cc (tree_parameter_list::convert_to_const_vector): - Take pointer to tree_va_return_list as arg, and append the values - found there. - - * src/arith-ops.cc (mx_stupid_bool_op): Correctly handle empty - matrices for == and != ops. - - * src/variables.cc (Fis_global): Check args(0), not args(1). - (Fexist): Likewise. - (install_builtin_mapper): Set nargin_max to 1, not 2. - - * src/dynamic-ld.cc (octave_dld_init): Make raw program name - absolute before calling dld_find_executable. - - * src/octave.cc (initialize_error_handlers): New function. - (main): Call init_user_prefs and initialize_error_handlers. - Rearrange order of calls to initialization functions. - - * src/user-prefs.cc (init_user_prefs): New function. - - * src/data.cc (map): Correct condition for assert (). Correct - handling of empty args. - - * src/f-lsode.cc src/f-dassl.cc src/f-quad.cc src/f-npsol.cc - src/f-fsolve.cc: Pass correct number of args to - takes_correct_nargs (). - * src/variables.cc (takes_correct_nargs): Use %s, not %c in format - string. - - * src/f-ifft2.cc src/f-expm.cc src/f-det.cc src/f-svd.cc - src/f-syl.cc src/f-schur.cc src/f-qzval.cc src/f-qr.cc - src/f-pinv.cc src/f-lu.cc src/f-log.cc src/f-inv.cc src/f-hess.cc - src/f-eig.cc src/f-chol.cc src/f-balance.cc src/f-lsode.cc - src/f-dassl.cc src/f-quad.cc src/f-npsol.cc src/f-fsolve.cc: - Correctly handle return value from empty_arg (). - * src/utils.cc (empty_arg): Clarify usage, correct return value if - arg is empty but no message is printed. - - * src/Makefile.in (dist): Delete builtins.cc too. - - * configure.in (DYNAMIC_LD_OBJ): Delete. - * src/Makefile.in (OBJECTS): Don't substitute DYNAMIC_LD_OBJ. - Always include dynamic-ld.o. - - * configure.in: Generate Makefile in scripts/elfun and - scripts/specfun. - - * Makeconf.in (version): Use `:=' and `$(shell )', not just `=' - and backticks, so we only extract the version number once. - - Mon Sep 19 09:04:30 1994 John Eaton - - * src/tc-rep.h (represent_strings_with_doubles): New field in - tree_constant_rep class. - - * tree-misc.cc (tree_argument_list::convert_to_const_vector): - Don't allocate extra arg for function name. - * sysdep.cc, pr-output.cc, input.cc, file-io.cc, error.cc, - tc-rep.cc, tree-expr.cc, f-svd.cc, f-sort.cc, f-schur.cc, - f-rand.cc, f-qzval.cc, f-quad.cc, f-qr.cc, f-qpsol.cc, f-pinv.cc, - f-npsol.cc, f-minmax.cc, f-lu.cc, f-lsode.cc, f-log.cc, f-inv.cc, - f-ifft2.cc, f-ifft.cc, f-hess.cc, f-givens.cc, f-fsolve.cc, - f-fft2.cc, f-fft.cc, f-expm.cc, f-eig.cc, f-det.cc, f-dassl.cc, - f-colloc.cc, f-chol.cc, f-balance.cc, f-syl.cc, variables.cc, - tree-misc.cc, data.cc, octave.cc, utils.cc, defun-int.h: - Change meaning and usage of nargin and args.length() to cope with - above change. This makes nargin mean the same thing in built-in - functions as it does in M-files. - - Sat Sep 17 09:29:08 1994 John Eaton - - * scripts/general/nargchk.m: New function. - - Fri Sep 16 08:48:13 1994 John Eaton - - * Makeconf.in (FLIB_LIST, FLIB_PATH, CXXLIBS, CXXLIB_LIST, - CXXLIB_PATH): Set these. - - * cxxlibs.sh: New file. - * configure.in: Use it to determine extra C++ libraries to link - to. Use sed magic to extract list of libraries and directories - from FLIBS and CXXLIBS. - * Makefile.in: (DISTFILES): Include cxxlibs.sh. - - * configure.in: Change AC_VERBOSE messages to match - autoconf-generated messages. - - * src/dynamic-ld.cc (dld_octave_resolve_reference): Search library - path for list of files to link. - - * src/utils.cc (pathstring_to_vector): Un-#if 0 it. - - * Makefile.in: Install liboctdld.a if not linking to it. - (defaults.h): Substitute FLIB_LIST, FLIB_PATH, CXXLIB_LIST, - CXXLIB_PATH. - - Thu Sep 15 09:31:29 1994 John Eaton - - * Makeconf.in (LD_STATIC_FLAG): Actually substitute LD_STATIC_FLAG. - (ALL_LDFLAGS): Include it here. - - * configure.in: Check for signgam declaration in math.h - * acconfig.h: Add #undef for SIGNGAM_DECLARED. - * src/mappers.h: Provide our own declaration of signgam if - HAVE_LGAMMA but not SIGNGAM_DECLARED. - - Wed Sep 14 11:28:09 1994 John Eaton - - * src/dynamic-ld.cc (mangled_octave_builtin_name, - mangle_octave_oct_file_name, load_octave_builtin, - load_octave_oct_file, init_dynamic_linker): New functions. - [WITH_DLD] (octave_dld_init, dld_octave_resolve_reference, - dld_octave_builtin, dld_octave_oct_file): New functions to handle - details of dynamic linking using dld. - - * src/variables.cc (load_fcn_from_file) [WITH_DLD]: Handle looking - for .oct file to link at run time. - - * src/tree-expr.cc (tree_builtin::tree_builtin): Always init my_name. - (tree_builtin::eval): If no definition, try to load one using - load_octave_builtin(). - - * src/octave.cc (main): Initialize dynamic linking here. - - * src/defun-int.h (DEFINE_FUN_STRUCT, DEFINE_FUN_STRUCT_FUN): - New macros. - * src/defun-dld.h (DEFUN_DLD_BUILTIN): Rename from DEFUN_DLD and - handle case of WITH_DLD && OCTAVE_LITE && MAKE_BUITLINS. - (DEFUN_DLD): Use this for external user-supplied functions that - are intended to be dynamically linked. - - * configure.in: Handle --enable-lite-kernel. Call AC_SUBST for - use_dld and lite_kernel. Define LIBOCTDLD unless doing dynamic - linking and small kernel requested. - * acconfig.h: Add #undefs for OCTAVE_LITE and SMART_PUTENV. - * Makeconf.in: Define WITH_DLD from @use_dld@ and OCTAVE_LITE from - @lite_kernel@. - - * src/octave.cc (Fsystem): Rename from shell_cmd. - (Fshell_cmd): Define as alias to Fsystem. - - Mon Sep 12 20:19:20 1994 John Eaton - - * src/mappers.cc: Include error.h and math.h. - - Sat Sep 10 11:49:11 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * Makefile.in: Clean up rules for making distributions. - (DISTDIRS): Distribute kpathsea - - Fri Sep 9 08:46:03 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/dMatrix.cc (pseudo_inverse): New function. - * liboctave/CMatrix.cc (pseudo_inverse): New function. - * src/f-pinv.cc: New file, for pinv(). - * src/Makefile.in (DLD_SRC): Add f-pinv.cc. - (DLD_OBJ): Add f-pinv.o. - * scripts/linear-algebra/pinv.m: Delete. - - * configure.in: Define and substitute $imagepath. - * src/Makefile.in: Substitute OCTAVE_IMAGEPATH. - * src/defaults.h.in: Add OCTAVE_IMAGEPATH. - * src/variables.cc (install_builtin_variables): Define IMAGEPATH. - * src/user-prefs.cc (image_path): New function. - * Makeconf.in (imagepath): substitute it. - - * src/octave.cc (initialize_globals): Ensure that $archlibdir is - in the user's PATH. - - * utils.cc (search_path_for_file, Ffile_in_path): New functions. - - * configure.in: Append `//' to $fcnfiledir, for recursive - searching. - (AC_OUTPUT): Edit makefiles in script subdirectories too. - - * scripts: Regroup function files in the following directories, - each with its own Makefile.in: - - image plot signal control - linear-algebra polynomial special-matrix general - miscellaneous set statistics - - * src/help.cc (simple_help): Use kpathsea functions to find files - in path. - * src/utils.cc (get_fcn_file_names): Likewise. - (pathstring_to_vector): #if 0 out. - - Thu Sep 8 16:59:42 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/Makefile.in (OCTAVE_LIBS): Include ../libkpathsea.a. - * configure.in: Include configure stuff for kpathsea here too. - * Makefile.in (kpathsea): New target. - * src/utils.cc (file_in_path): Use kpathsea function instead of - doing our own searching. - * kpathsea/Makefile.in (lib): Define as ../libkpathsea.a, not just - kpathsea.a. - - Wed Sep 7 09:39:20 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/user-prefs.cc (check_str_pref): Fix comment. - - * src/utils.cc (empty_arg): Check flag == 0, not is_empty > 0. - - * src/f-fft2.cc (Ffft2): New file and function. - * src/f-ifft2.cc (Fifft2): Likewise. - * src/fft2.m, src/ifft2.m: Delete. - - * src/f-fft.cc (Ffft): Handle second arg. Depending on value of - propagate_empty_matrices, return empty matrix for empty arg. - * src/f-ifft.cc (Fifft): Likewise. - - * liboctave/CMatrix.cc (fourier2d, ifourier2d): New functions. - * liboctave/dMatrix.cc (fourier2d, ifourier2d): New functions. - - * src/tree-misc.cc (eval (int, int)): New function. - * src/octave.cc (eval_string, Feval): Handle multiple output args. - - * src/error.cc (suppress_octave_error_messages): New global. - (error): Check it to see if messages should be printed. - * src/octave/cc (Feval): Set it if `catch' arg is supplied. - - * src/octave.cc (Feval): Handle second `catch' arg. - - * src/load-save.cc (read_mat_file_header): Init swap to zero. - - * doc/octave.1: New simple man page. - * doc/Makefile.in: Distribute and install it. - - * src/variables.cc (Fclear): Handle -x option for exclusive clear. - - Tue Sep 6 16:00:34 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/load-save.cc (save_mat_binary_data): New function. - (do_save): Handle LS_MAT_BINARY. - (Fsave): Handle -mat-binary. - (Changes from G. Beyerle .) - - * src/variables.cc (subs_octave_home, octave_arch_lib_dir): - New functions. - (octave_home, octave_info_dir, octave_lib_dir, default_path): - Fix for new directory organization. - - * src/tree-expr.h (tree_multi_val_ret): New class to serve as a - base for objects that can produce more than one value when - evaluated. - (tree_fvc, tree_index_expression, tree_multi_assignment_expression): - Use it as a base. - - * src/parse.y (make_multi_val_re): New function. - (expression): Use it to construct multiple value assignments. - - * configure.in, Makefile.in, Makeconf.in, src/defaults.h.in: - Revamp directory structure used for installed versions of Octave. - - * src/f-schur.cc (Fschur): Correct argument count in error message. - - * src/octave.cc (Fcomputer): New function. - * scripts/computer.in: Delete. - * scripts/Makefile.in: Don't edit or distribute computer.in. - - Thu Sep 1 09:02:06 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/variables.cc (install_builtin_variables): New builtin - variable, OCTAVE_VERSION. - - Tue Aug 30 17:18:14 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * tree-expr.cc: Include string.h - (tree_matrix::eval): Fix handling of strings to work as in 1.0. - - Mon Aug 29 14:55:14 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/lex.l: Handle ".+" and ".-" too. - - * src/dirfns.cc (dir_acess, exists, gen_tempname, tempnam): New - functions from glibc. - * src/utils.cc (octave_tmp_file_name): Use tempnam. - (choose_temp_base_try): Delete. - * configure.in: Check for tempnam. - - * src/load-save.cc (Fsave): Only write floating point format if - doing binary save. - - * liboctave/Array.cc (operator =): Check to see if assignment is - to same object. - - Sun Aug 28 23:32:59 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/CollocWt.cc (CollocWt::init): Call delete [] on vectors. - * liboctave/NPSOL.cc (NPSOL::minimize): Eliminate some memory leaks. - * liboctave/QPSOL.cc (QPSOL::minimize): Likewise. - * liboctave/NLEqn.cc (NLEqn::solve): Likewise. - - Thu Aug 25 09:27:04 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * info/session.c (info_get_input_char): Don't exit immediately if - we see EOF on the input stream. - - * scripts/kurtosis.m, scripts/skewness.m: Update from KH. - - Wed Aug 24 00:19:49 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * dld/Makefile.in, scripts/Makefile.in, doc/Makefile.in, - readline/Makefile.in, info/Makefile.in, libcruft/Makefile.in, - liboctave/Makefile.in, src/Makefile.in (INSTALL, INSTALL_PROGRAM, - INSTALL_DATA): Define here. - * Makeconf.in: Not here. - - * src/tree-plot.cc (send_to_plot_stream): Handle - user_pref.automatic_replot. - * src/variables.cc (install_builtin_variables): - Add DEFVAR for automatic_replot. - * src/user-prefs.cc (automatic_replot): New function. - * src/user-prefs.h (user_preferences): Add automatic_replot to the - list. - - * src/data.cc (Fatan2): Make work for mixed scalar and Matrix args. - (map): New functions for two arg mappers (like atan2). - - * src/f-fsqp.cc: Don't surround everything in FSQP_MISSING, so - that trying to use fsqp will result in a message about fsqp not - being freely redistributable. - * src/f-npsol.cc: Likewise, for NPSOL_MISSING. - * src/f-qpsol.cc: Likewise, for QPSOL_MISSING. - - Tue Aug 23 12:56:47 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tree-expr.cc (tree_identifier::eval): Don't call delete for - ans_id. The destructor for tree_simple_assignment_expression does - this now. - - * src/Makefile.in (%.def : %.cc): Use sed, not awk. - (realclean, distclean, local-dist, dist): Delete .d and .def files. - - * liboctave/Array.h (DiagArray::Proxy): Make compilation - conditional on gcc version, not just _AIX. - - * src/utils.cc (octave_tmp_file_name, choose_temp_base_try): New - functions, stolen from GCC. If HAVE_MKTEMP is not defined, just - call tmpnam; otherwise, try harder to please. - * src/tree-plot.cc (save_in_tmp_file): Use it, instead of calling - tmpnam() directly. - * src/file-io.cc (do_scanf): Likewise. - * src/octave-hist.cc (mk_tmp_hist_file): Likewise. - * configure.in: Check for mktemp. - - * src/tree-const.h (is_matrix_type, is_scalar_type): Make private. - * src/tc-rep.h (is_matrix_type, is_scalar_type): Likewise. - - * src/tc-rep.h (force_numeric, make_numeric, - make_numeric_or_magic, make_numeric_or_range_or_magic): Make - private. - (make_numeric_or_range): #if 0 out. - - * src/utils.cc (empty_arg): Correctly set return value. - - * src/arith-ops.cc: Don't include setjmp.h. - * src/utils.cc: Surround setjmp.h with extern "C". - * src/octave.cc: Likewise. - - * src/sighandlers.cc (octave_new_handler): New function. - (install_signal_handlers): Call it. - - * src/f-qzval.cc (Fqzvalue): Don't call make_numeric for args. - Check error state after attempting to extract values. Simplify - where possible. - * src/f-colloc.cc (Fcolloc): Likewise. - * src/f-rand.cc (Frand): Likewise. - * src/f-sort.cc (Fsort): Likewise. - * src/f-find.cc (Ffind): Likewise. - * src/f-minmax.cc (Fmin, Fmax): Likewise. - * src/f-fft.cc (Ffft): Likewise. - * src/f-ifft.cc (Fifft): Likewise. - * src/f-svd.cc (Fsvd): Likewise. - * src/f-inv.cc (Finv): Likewise. - * src/f-det.cc (Fdet): Likewise. - * src/f-eig.cc (Feig): Likewise. - * src/f-lu.cc (Flu): Likewise. - * src/f-hess.cc (Fhess): Likewise. - * src/f-qr.cc (Fqr): Likewise. - * src/f-givens.cc (Fgivens): Likewise. - * src/f-syl.cc (Fsyl): Likewise. - * src/f-log.cc (Flog): Likewise. - * src/f-expm.cc (Fexpm): Likewise. - * src/f-balance.cc (Fbalance): Likewise. - * src/f-schur.cc (Fschur): Likewise. - * src/f-chol.cc (Fchol): Likewise. - * src/f-npsol.cc (Fnpsol, npsol_options): Likewise. - * src/f-fsolve.cc (Ffsolve, fsolve_options): Likewise. - * src/f-dassl.cc (Fdassl, dassl_options): Likewise. - * src/f-lsode.cc (Flsode, lsode_options): Likewise. - * src/f-quad.cc (Fquad, quad_options): Likewise. - * src/tree-expr.cc (tree_matrix::eval): Likewise, while building - matrix. - (tree_colon_expression::eval): Likewise, for elements of range. - * src/variables.cc (is_valid_function, Fis_global, Fexist): - Likewise. - * src/sysdep.cc (Fgetenv, Fpause): Likewise. - * src/octave.cc (eval_string, Fshell_cmd): Likewise. - * src/input.cc (get_user_input): Likewise. - * src/file-io.cc (return_valid_file, fopen_file_for_user, - fgets_internal, fseek_internal, process_printf_format, do_printf, - do_scanf, fread_internal, fwrite_internal, feof_internal): - Likewise. - - * src/tc-rep.cc (TC_REP::string_value): Call error() and return 0 - instead of crashing if not string_constant. - - * src/file-io.cc (fopen_file_for_user): Take string as first arg, - not tree_constant. Change callers. - (fgets_internal, fseek_internal): Correct check for int arg. - (process_scanf_format): Use isspace instead of checking directly - (and incorrectly) for white space characters. - - * src/tree-expr.cc (tree_matrix::eval, tree_unary_expression::eval, - tree_binary_expression::eval, tree_colon_expression::eval, - tree_simple_assignment_expression::eval ): Eliminate uneccesary - conversions to and from Octave_object/tree_constant. - - Mon Aug 22 18:35:05 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/data.cc (Fatan2): New function. - - * src/data.cc (get_dimensions): Don't call make_numeric for args. - Check error state after attempting to extract values. - - Fri Aug 19 08:28:24 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tree-misc.h (tree_parameter_list::tree_parameter_list)): - Initialize marked_for_varargs to zero. - - * src/load-save.cc: Add float variants of the conversion routines. - (LS_DO_READ): Add swap parameter and only swap bytes if it is true. - (read_doubles): Pass swap to LS_DO_READ. Handle float data. - (LS_DO_WRITE): Copy data to tmp buffer to avoid destroying data. - (do_double_format_conversion): Rename from do_float_format_conversion. - (do_float_format_conversion): New function to handle conversion - for float data. - (read_mat_binary_data): Use read_doules for all cases. Handle - float data. - (too_large_for_float): New function. - (save_binary_data): Save data format for scalars and ranges too. - (read_binary_data): Read data format for scalars and ranges too. - (do_save, save_vars): New arg, save_as_floats. - (Fsave): New option, -float-binary. - - * src/utils.cc (empty_arg): New function. - * src/f-balance.cc (Fbalance): Use it to simplify handling of - empty arguments. - * src/f-chol.cc (Fchol): Likewise. - * src/f-det.cc (Fdet): Likewise. - * src/f-eig.cc (Feig): Likewise. - * src/f-expm.cc (Fexpm): Likewise. - * src/f-fft.cc (Ffft): Likewise. - * src/f-hess.cc (Fhess): Likewise. - * src/f-ifft.cc (Fifft): Likewise. - * src/f-inv.cc (Finv): Likewise. - * src/f-log.cc (Flogm, Fsqrtm): Likewise. - * src/f-lu.cc (Flu): Likewise. - * src/f-qr.cc (Fqr): Likewise. - * src/f-schur.cc (Fschur): Likewise. - * src/f-svd.cc (Fsvd): Likewise. - - * src/tc-rep.cc (tupe_as_string): Move here. - * src/tree-const.cc: From here. - - * src/gripes.cc (gripe_invalid_conversion): New function. - - Thu Aug 18 21:02:19 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/(print_empty_matrix): New function. - * src/pr-output.cc (octave_print_internal): Use it to print empty - matrices. - * src/tc-rep.cc (TC_REP::print_code, TC_REP::print): Rely on - octave_print_internal() to handle printing empty matrices. - - * src/pr-output.cc (octave_print_internal (all variants)): - New arg, pr_as_read_syntax. If nonzero, print the value in a form - that Octave can parse. Declare os as ostream&, not ostrstream&. - * src/tc-rep.cc (TC_REP::print_code): Handle all types, not just - real and imaginary constants. - * src/help.cc (Ftype): Also print values of variables. - - Wed Aug 17 08:46:44 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/octave.cc (Fshell_cmd): Return output if nargout > 0 or - nargin > 2, otherwise, just send output to the pager. - - * src/mappers.cc (xerf, xerfc, xgamma, xlgamma): New functions. - Put preprocessor conditionals here. - (install_mapper_functions): Not here. - - Tue Aug 16 09:55:25 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * configure.in: Check for erf, erfc, and lgamma. - * src/mappers.cc (erf, erfc, lgamma): New mappers. - * src/mappers.h (Mapper_fcn): Add new field `name'. - * src/variables.cc (install_builtin_mapper): Save the name. - * src/tc-rep.cc (TC_REP::mapper): Don't crash if a mapper function - is missing. - - * src/tc-rep-1.cc (warn_invalid_conversion): New function. - * src/gripes.cc (gripe_invalid_conversion): New function. - - * src/parse.y (list1, parse_error): New non-terminals. - (list): Use them. - * src/lex.l: Return LEXICAL_ERROR instead of calling - jump_to_top_level. - - * liboctave/Range.cc (matrix_value): New function. - * src/tc-rep.cc (TC_REP::matrix_value): Use it. - - * src/tree-const.h (to_matrix, to_vector, to_scalar): Delete - unecessary functions. - * src/tc-rep.cc (TC_REP::to_matrix, TC_REP::to_vector, - TC_REP::to_scalar): Likewise. Change all callers to use - matrix_value, vector_value, and scalar_value instead. - - * src/tree-const.cc (TC_REP::matrix_value): If at all possible, - produce a matrix from the current constant. Otherwise, print an - error message. Don't abort or jump to the top level. - (TC_REP::scalar_value, TC_REP::complex_scalar_value, - TC_REP::vector_value, TC_REP::complex_vector_value, - TC_REP::complex_matrix_value): Likewise, for appropriate types. - - * src/utils.cc (empty_arg): New function. - * src/f-svd.cc (Fsvd): Use it. Don't call make_numeric; rely on - value functions to do conversion. - - * src/load-save.cc (Fload): Handle -list and -verbose. - - Mon Aug 15 09:32:57 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tc-rep.cc (TC_REP): New define, so we don't have to write - tree_constant::tree_constant_rep:: everywhere. - * src/tree-const.h (class tree_constant): Nest tree_constant_rep - class inside tree_constant class by including tc-rep.h here. - * src/tc-rep.h: Don't include any other files, delete forward - class declarations. - - * src/tc-rep.h (constant_type): Make private. - - * src/parse.y (arg_list): Use tree_constant::magic_colon in - constructor call, not tree_constant_rep::magic_colon. - * src/tree-const.h (tree_constant::tree_constant - (tree_constant::magic_colon)): Convert arg from - tree_constant_rep::constant_type. - - * src/f-svd.cc (Fsvd): Simplify. - - * src/tree-expr.cc (any_arg_is_magic_colon): Don't use values from - tree_constant_rep::constant_type enum. - (tree_matrix::eval): Likewise. - * src/tree-misc.cc (tree_parameter_list::define_from_arg_vector, - tree_if_clause::eval): Likewise. - * src/tree-cmd.cc (tree_while_command::eval, - tree_for_command::eval): Likewise. - * src/symtab.cc (symbol_record_info::symbol_record_info): Likewise. - * src/f-colloc.cc (Fcolloc): Likewise. - * src/f-npsol.cc (npsol_objective_function): Likewise. - * src/f-chol.cc (Fchol): Likewise. - * src/f-det.cc (Fdet): Likewise. - * src/f-eig.cc (Feig): Likewise. - * src/f-expm.cc (Fexpm): Likewise. - * src/f-fft.cc (Ffft): Likewise. - * src/f-find.cc (Ffind): Likewise. - * src/f-hess.cc (Fhess): Likewise. - * src/f-ifft.cc (Fifft): Likewise. - * src/f-inv.cc (Finv): Likewise. - * src/f-log.cc (Flog): Likewise. - * src/f-lu.cc (Flu): Likewise. - * src/f-minmax.cc (Fmin, Fmax): Likewise. - * src/f-qr.cc (Fqr): Likewise. - * src/f-rand.cc (rand): Likewise. - * src/f-schur.cc (schur): Likewise. - * src/f-sort.cc (Fsort): Likewise. - * src/f-svd.cc (Fsvd): Likewise. - - * src/f-lu.cc (Flu): Handle case of nargout == 0 the same as - nargout == 1. - - * src/tree-const.h (force_numeric): Don't return type info. - * src/tc-rep.cc (tree_matrix::eval): Ditto. - * src/tree-expr.cc (tree_matrix::eval): Don't use return value - from tree_constant::force_numeric(). - - * src/tree-const.h (is_magic_colon): New function. - * src/tc-rep.h (is_magic_colon): New function. - - * src/load-save.cc (ascii_save_type): New function. - (save_binary_data, save_ascii_data, save_three_d): Don't use - values from tree_constant_rep::constant_type enum. Fail if write - is unsuccessful. Fail but don't panic if type is unrecognized. - (save_vars): Check error state after call to do_save(). - - * src/tc-rep.cc (isstr): Delete, since we have is_string. - * src/tree-const.h (isstr): Ditto. - * src/data.cc (Fisstr): Use is_string(), not isstr(). - - Sun Aug 14 16:12:10 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/load-save.cc (save_type): Add LS_U_INT, LS_CHAR and LS_FLOAT. - (get_save_type): Handle them. - (read_doubles, write_doubles): Likewise. - - * src/load-save.cc (get_floating_point_format): New function. - (read_mat_binary_data, read_binary_file_header): Use it. - - * src/lex.l: Combine {D}+\.{D}*{EXPON}?{Im} and {D}+{EXPON}?{Im} - patterns into the single pattern {D}+\.?{D}*{EXPON}?{Im} - Likewise, combine {D}+\.{D}*{EXPON}? and {D}+{EXPON}? into the - single pattern {D}+\.?{D}*{EXPON}? - ({D}+/\.[\*/\\^']): New pattern to force expressions like `1./m' - to be parsed the same as `1 ./ m'. - - * src/tree-expr.cc (do_lookup): Correctly set script_file_executed. - - * src/octave.cc (long_opts): Add --silent as an alias for --quiet, - and --ignore-init-file as an alias for --norc. - - * src/octave.cc (verbose_usage): Exit successfully to conform to - the GNU coding standards. - - Sat Aug 13 11:06:23 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/dirfns.cc (chdir): New alias for cd. - - * src/lex.l (")"): Set convert_spaces_to_comma. - - * src/*.cc: Use tree_constant::is_string(), not - tree_constant::is_string_type(). - - * src/f-balance.cc (Fbalance): Use is_string() rather than - checking const_type() against tree_constant_rep::string_constant. - - * src/tc-rep.h (tree_constant_rep::is_string_type): Delete. - * src/tree-const.h (tree_constant::is_string_type): Delete. - - * src/Makefile.in (%.def : %.cc): Complain if generated file is - empty. - - * configure.in (gcc_version): Set LDFLAGS to -g, not "-g -O". - - * src/lex.l (looks_like_bin_op): Also return true for things like - [ 1+ 2 ]. - - * src/data.cc (Feye, Fones): With no args, return 1.0. - (Fzeros): With no args, return 0.0. - - * src/Makefile.in (XALL_CXXFLAGS): ALL_CXXFLAGS without - -fextternal-templates. - (%.def : %.cc): Use it instead of ALL_CXXFLAGS. - - * configure.in: Don't use -O for compiling float-type.c. - - * libcruft/misc/Makefile.in (XCC): Use patsubst to delete any -O# - flags, not just -O. - - Fri Aug 12 18:20:35 1994 John Eaton (jwe@schoch.che.utexas.edu) - - Changes for binary load/save, and reading .mat files: - - * src/variables.cc (is_globally_visible): Declare extern, not - static. - - * src/user-prefs.cc (sv_default_save_format): New function. - * src/user-prefs.h (default_save_format): New field in - user_preferences struct. - src/variables.cc (install_builtin_variables): Add DEFVAR for - default_save_format. - - * src/tc-rep.h (tree_constant_rep::is_unknown, - tree_constant_rep::is_scalar, tree_constant_rep::is_matrix, - tree_constant_rep::is_complex_scalar, - tree_constant_rep::is_complex_matrix, - tree_constant_rep::is_string, tree_constant_rep::is_range): - New functions. - - * src/tree-const.h (tree_constant::is_unknown, - tree_constant::is_scalar, tree_constant::is_matrix, - tree_constant::is_complex_scalar, tree_constant::is_complex_matrix, - tree_constant::is_string, tree_constant::is_range): - New functions. - - * src/tc-rep.cc (tree_constant_rep::save, - tree_constant_rep::save_three_d): Move to load-save.cc and convert - to nonmember functions. - - * src/tree-const.h (tree_constant::save, - tree_constant::save_three_d): Delete functions. - - * src/tree-plot.cc (save_in_tmp_file): Call nonmember functions - save_ascii_file and save_three_d instead of tree_constant class - member functions. - - * src/symtab.cc (symbol_table::glob): New function. - (symbol_table::save, symbol_record::save, symbol_def::save): - Delete unneeded functions. - - * src/load-save.cc: New file, for load/save related functions - extracted from src/variables.cc and src/tc-rep.cc. - - * src/error.cc (verror): Don't print name if it is null. - - Tue Aug 9 14:31:43 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/file-io.cc (process_printf_format): Use - tree_constant::is_scalar_type() and is_string_type() functions - instead of comparing directly with elements of the - tree_constant_rep::constant_type enum. - * src/variables.cc (builtin_real_scalar_variable): Likewise. - (install_loaded_variable): Likewise. - - * src/tree-plot.cc (open_plot_stream): New function. - (send_to_plot_stream): Use it. Do our own check for replot with - nothing to plot. - (tree_plot_command::eval): Open plot stream before doing anything. - - * src/data.cc (check_dimensions): When changing negative - dimensions to zero, handle nr and nc separately. - - Mon Aug 8 20:18:17 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * variables.cc (is_valid_fcn): Use lookup_by_name() instead of - looking in the global symbol table directly. - - * variables.cc (load_variable): Move code here. - * src/tc-rep.cc (tree_constant_rep::load): From here. - * src/tree-const.h (tree_constant::load): Delete. - - * src/tree-plot.cc: Derive classes from tree_print_code and - implement print_code() member functions. - - * src/tree-plot.cc (subplot_list::print): New function. - (tree_plot_command::print): Use it, and don't crash if plot_list - is null. - - * scripts/axis.m: New function file. - - Sun Aug 7 17:06:16 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * configure.in: Check for size of short, int, and long. - - * float-type.c: New file. - * configure.in: Use it to determine the native floating point - format. - * Makefile.in: Add it to the list of files to distribute. - * acconfig.h (IEEE_BIG_ENDIAN, IEEE_LITTLE_ENDIAN, VAX_D_FLOAT, - VAX_G_FLOAT): Add #undefs. - - Sat Aug 6 18:23:47 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * config.guess: Update with new copy from gcc 2.6.0. - - * src/*.cc, src/*.h, src/*.l, src/*.y: Eliminate need for tree.h. - * src/Makefile.in (INCLUDES): Delete it from the list. - - * src/token.cc (token::token (double)): Handle saving original - text of constants for later use by print_code() functions. - (token::~token): Delete original text. - (token::text_rep): New function. - * src/lex.l: Save original text for NUM and IMAG_NUM tokens. - * src/parse.y: Likewise. - - * src/parse.y (yyerror): Use the pager. - - * src/tree-base.h (tree_print_code): New base class for trees and - lists of trees. - (tree): Derive from tree_print_code. - * src/tree-base.cc: New file, for tree_print_code functions, and - for initializing tree_print_code static members. - * src/tree-const.cc, src/tc-rep.cc, src/tree-plot.cc, - src/tree-expr.cc, src/tree-cmd.cc (all tree classes): - Provide print_code() member function. - * src/tree-misc.cc: Also derive list classes from tree-base.h and - provide print_code() member functions. - - * src/help.cc (Ftype, Fwhich): New functions. - - * src/octave-hist (do_history): Send history output through the - pager. - - * src/variables.cc (do_who, Fwhos): New functions. - - * src/tree-expr.h (tree_expression::in_parens): Declare here. - (tree_simple_assignment_expression::in_parens): Not here. - * src/parse.y (maybe_warn_assign_as_truth_value): Eliminate cast. - - * src/variables.cc (load_fcn_from_file, lookup, lookup_by_name): - New functions, extracted from tree_identifier class. - (gobble_leading_whitespace, is_function_file, parse_fcn_file): - Move here from tree-expr.cc. - * src/help.cc (Fhelp): Use lookup_by_name so that looking up - symbols is handled in a consistent way. - - * tree-expr.cc (tree_unary_expression::oper, - tree_binary_expression::oper, tree_prefix_expression::oper, - tree_postfix_expression::oper): New functions. - - * tc-rep.cc (valid_scalar_indices): Define here. - * tc-inlines.cc: Not here. - - * src/tree-const.h (tree_constant::stash_original_text): New - function. - * src/tc-rep.cc (tree_constant_rep::stash_original_text): Ditto. - (undo_string_escapes): Ditto. - - * src/tc-rep (tree_constant_rep::do_matrix_index): Don't just - return *this. - * src/tree-const.h (tree_constant::tree_constant (tree_constant_re&)): - Delete. - - * src/pager.cc (open_diary_file, close_diary_file, - maybe_write_to_diary_file, Fdiary): New functions. - (flush_output_to_pager): Call maybe_write_to_diary_file before - sending output to the screen. - * src/input.cc (octave_gets): Call maybe_write_to_diary file to - save the prompt and the user input. - * src/error.cc (verror): Use C++ streams, not C I/O functions. - Call maybe_write_to_diary file to save error messges too. - * src/octave.cc (clean_up_and_exit): Close diary file here. - - * src/octave.cc (main): Initialize pager first. - - * src/input.cc (get_user_input): Return empty matrix for no input. - - * src/tree-plot.cc: Include readline/tilde.h instead of declaring - tilde_expand() directly. - * src/utils.cc: Likewise. - - * src/tree-plot.cc (tree_plot_command::print_code): New function. - * src/tree-const.h (tree_constant::print_code): Likewise. - - * src/tree-expr.h (tree_simple_assignment_expression::ans_ass): - New data member to flag assignments to ans. - * src/tree-expr.cc (tree_identifier::eval): Set it when - constructing assignments to ans. - * src/parse.y (maybe_convert_to_ans_assign): Likewise. - - * src/tree-expr.h (tree_simple_assignment_expression::preserve): - New data member to allow preserving left hand side args that - shouldn't be deleted in some cases (ugh). - * src/tree-expr.cc (tree_multi_assignment_expression::eval): - Create assignment with preserve flag set. - - Wed Aug 3 14:27:25 1994 John Eaton (jwe@schoch.che.utexas.edu) - - Yet another massive reorganization of sources, once again - hopefully for the better. A fair amount of work is not detailed - here, but these are the major points. The grammar file and the - derivation of the tree classes are somewhat cleaner now. - - * src/parse.y: Cope with changes to derivation scheme. - - * src/tree-misc.cc: New file. - (tree_statement, tree_global): New classes. - (tree_global_init_list): New class, derived from SLList for the - list of expressions in a global command. - * src/tree-cmd.cc (tree_global_command): Use tree_global_init_list. - - * src/tree-misc.cc (tree_argument_list): Move here from - tree-expr.cc, and derive from SLList instead of tree. - (tree_parameter_list): Likewise. - (tree_return_list): Likewise. - - * src/tree-cmd.cc (tree_command_list): Delete class. - * src/tree-misc.cc (tree_statement_list): New class for keeping a - list of commands or expressions to evaluate. Derive from SLList, - not tree. - - * src/tree-plot.cc (subplot_list, plot_limits, plot_range, - subplot_using, subplot_style): Rename from tree_*, and - don't derive from tree class. - - * src/tree-plot.cc: Eliminate eval member function for classes not - derived from tree class. - - * src/tree-plot.cc, src/tree-cmd.cc: For classes derived from - tree-command, the eval() member function is now void eval (void). - - * src/tree-base.h (tree::tree): New constructor, to initialize the - line and column info. For all classes that are derived from the - tree class, use it instead of manipulating the data directly. - (line_num, column_num): Make private. - - * src/tree-expr.cc (tree_simple_assignment_expression::preserve): - New data member, set in constructors and used by the destructor - when the left-hand side of the expression should not be deleted - (as for some temporary assignments not constructed in the parser). - - * src/tree-expr.h (tree_expression::type) Rename and move here from - tree-base.h. Change all uses. - (tree_matrix::dir): Likewise. Change all uses. - - * src/utils.cc (make_argv): Stash function name in argv[0]. - - * src/octave.cc (global_command): Declare as tree_statement_list, - not tree. - - * src/parse.y (make_binary_op, make_unary_op, make_prefix_op, - make_postfix_op): New functions. - - * src/parse.y (GLOBAL): Make it a tok_val type. - * src/lex.l (is_keyword): Give GLOBAL a value. - - Mon Aug 1 22:37:22 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/lex.l (grab_help_text): Unput the last character read. - - Sun Jul 31 21:17:07 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/pr-output.cc (set_format (double, int&)): Avoid calling - log10 for Inf and NaN. - - Fri Jul 29 16:08:32 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/octave.cc (reading_startup_message_printed): New flag. - (parse_and_execute): New arg, verbose. If true, print name of - file as it is read. - (execute_startup_files): Don't print message if - inhibit_startup_message is true. - (main): Move startup message before reading init files. - - Thu Jul 28 00:25:42 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/Makefile.in (MATRIX_INC): Delete CmplxColVec.h from list. - - * src/symtab.cc (symbol_table::rename): New function. - * src/parse.y (func_def2): Use it instead of tree_identifier::rename. - * src/tree-expr.cc (tree_identifier::rename): Delete unused function. - - * src/tree-expr.cc (tree_identifier::load_fcn_from_file): New function. - (tree_identifier::do_lookup): Use it instead of parse_fcn_file. - * src/variables.cc (is_valid_function): Ditto. - * src/help.cc (Fhelp): Ditto. - - * src/utils.cc (oct_file_in_path): New function. - - Wed Jul 27 08:59:32 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tree-expr.cc (tree_identifier::parse_fcn_file): Combine - three functions into one. - - * src/utils.cc: Delete uneeded declaration of ioctl(). - * src/sysdep.cc: Likewise. - - * install.sh: New file, from autoconf distribution. - * Makefile.in (DISTFILES): Distribute it. - - Tue Jul 26 16:08:58 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * scripts/Makefile.in (DISTDIRS): New variable, for directories - below scripts to distribute. - (dist): Handle distributing whole directories named by $(DISTDIRS). - (local-dist): Ditto. - - Mon Jul 25 12:57:09 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/CmplxQRP.cc: Provide declaration for zungqr. - * liboctave/dbleQRP.cc: Provide declaration for dorgqr. - - * src/Makefile.in (dist): Also remove y.output and defaults.h. - (local-dist): Ditto. - (realclean): Ditto. - - * src/oct-obj.h (Octave_object::Octave_object (int)): Make - private, to avoid problems with different meanings of - Octave_object (int) and Octave_object (double) constructors. - - * scripts/amr-image: New files for image processing from Tony - Richardson. These are not in the default octave LOADPATH yet. - See the README file in the amr-image directory for more info on - how to use them. - - * src/octave.cc (Fshell_cmd): Restore accidentally deleted - function. - - * scripts/conv-amr.m, scripts/deconv-amr.m, scripts/roots-amr.m, - scripts/poly-amr.m, scripts/roots-tuwien.m, scripts/conv-tuwien.m, - scripts/deconv-tuwien.m, scripts/poly-tuwien.m: - New files. - FIXME -- For each of these functions, either one of the - versions will need to be selected, or they will need to be merged - before the next release. - - * scripts/null.m, scripts/orth.m, scripts/fft2.m, scripts/ifft2.m, - scripts/filter.m, scripts/compan.m, scripts/polyderiv.m, - scripts/polyinteg.m, scripts/polyreduce.m, scripts/polyval.m, - scripts/polyvalm.m, scripts/postpad.m, scripts/prepad.m, - scripts/residue.m, scripts/sinc.m, scripts/freqz.m, - scripts/complement.m, scripts/intersection.m, - scripts/create_set.m, scripts/union.m: - New files. - - * scripts/hilb.m: Eliminate inner loop, for speed. From - romolo@URSAMAJOR.ENG.UNIPR.IT (Romolo Manfredini). - - Sun Jul 24 22:08:48 1994 Castor Fu (castor@drizzle.stanford.edu) - - * libcruft/ranlib/genf.f (genf): Use 1.2E-38 instead of 1.0E-38 - when checking to see if generated numbers will cause overflow. - This helps DEC's f77 compiler on the Alpha, which refuses to - generate denormalized constants. - * libcruft/ranlib/gennf.f (gennf): Likewise. - - Fri Jul 22 10:27:00 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/Makefile.in (DEF_FILES): Depend on defun header files too. - - Thu Jul 21 14:40:30 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/NLFunc.h (nonlinear_fcn): Declare as pointer to - function taking const ColumnVector arg. - (jacobian_fcn): Ditto. - - * src/defun-int.h (DEFINE_ARGV): Declare and define save_argc and - save_argv for functions that mess with argc and argv directly. - (DELETE_ARGV): Use save_argc and save_argv instead of argc and argv. - - * src/f-lsode.cc (ODE_OPTIONS): Add const qualifier for string elts. - (print_lsode_option_list): Declare keyword as const char *. - * src/f-npsol.cc, src/f-qpsol.cc, src/f-dassl.cc, src/f-quad.cc: - Likewise, for corresponding structs and functions. - - * liboctave/dbleSVD.h (SVD::type): New enum, for choosing type of - factorization. - * liboctave/CmplxSVD.cc (SVD::SVD): Add new optional arg for type. - (init): Handle case of type == SVD::economy. - * liboctave/dbleSVD.cc: Likewise. - - QR changes from R. Bruce Tenison (btenison@eng.auburn.edu) adapted - for new way of defining builtin functions: - - * doc/linalg.texi: Changed QR description to include QRP - factorization - - * src/f-qr.cc (Fqr): Handle permuted and economy QR - factorizations. Handle case of 1 output arg. - - * liboctave/Makefile.in (MATRIX_INC, MATRIX_SRC): Add new QRP files. - - * liboctave/dbleQRP.h, liboctave/dbleQRP.cc, liboctave/CmplxQRP.h, - liboctave/CmplxQRP.h: New files, for QR with pivoting. - - * liboctave/dbleQR.h (QR::type): New enum, for choosing type of - factorization. - * liboctave/CmplxQR.cc (QR): Add new optional arg for type. - Handle case of type == SVD::economy and SVD::raw. - * liboctave/dbleQR.cc (QR): Likewise. - - * libcruft/lapack/dgeqpf.f: New file. - * libcruft/lapack/zgeqpf.f: Ditto. - - Wed Jul 20 13:12:55 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/*.cc, liboctave/*.h: Various cleanups to remove use of - NULL. Only mention default argument values in function - declarations, not in their definitions (required for gcc 2.6.x). - - * configure.in: If configuring for alpha-dec-osf, check for sgtty - first. If not found, go ahead and check for Posix terminal driver. - - Tue Jul 19 09:25:45 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/mx-defs.h (FILE): Don't declare as struct FILE just to - avoid including stdio.h. - * liboctave/dMatrix.cc: Do include stdio.h here. - - * liboctave matrix classes: Declare operator>> correctly, and - return istream object. Get friend stuff right. - - * liboctave/DAE.cc (DAE::integrate): To see if the user provided a - Jacobian function, call DAEFunc::jacobian_function (). - - * liboctave/DAE.cc (user_fun, user_jac): Qualify with class name. - * liboctave/ODE.cc (user_fun, user_jac): Ditto. - - * liboctave/DAFunc.h (DAEJac): Declare inside class. - (DAERHSFunc, DAEJacFunc): Define types inside class. - * liboctave/ODEFunc.h (ODERHSFunc, ODEJacFunc) Likewise. - - Massive reorganization of sources, hopefully for the better. - A fair amount of work is not detailed here, but these are the - major points... - - * src/symtab.h (symbol_def::TYPE) Add new elements for recording - whether a symbol is a text function or mapper function. - * src/symtab.cc (symbol_def::is_text_function, - symbol_record::is_text_function, symbol_def::is_mapper_function, - symbol_record::is_mapper_function): New functions. - Modify existing is_* functions to cope with these changes. - (symbol_def::symbol_def (tree_builtin*, unsigned)): New 2nd arg. - (symbol_def::symbol_def (tree_function*, unsigned)): Ditto - (symbol_def::define (tree_builtin*, unsigned)): Ditto. - (symbol_def::define (tree_function*, unsigned)): Ditto. - * src/variables.cc (is_text_function_name): Use the new symbol - table functions, since we can no longer tell by looking in a - simple list. - - * tree-expr.cc (class tree_builtin): Text functions are no longer - handled as a special case here. - - * src/sysdep.cc (octave_ieee_init): Special case Alpha for - initializing Inf and NaN. - - * src/tc-rep.cc: Use const in more places. - - * src/data.cc src/timefns.cc, src/dirfns.cc, src/dirfns.h: New - files. - - * src/*.cc, src/*.y, src/*.l, src/*.h: Various cleanups to remove - use of NULL. Only mention default argument values in function - declarations, not in their definitions (required for gcc 2.6.x). - - * src/g-builtins.cc, src/g-builtins.h, src/t-builtins.cc - src/t-builtins.h: Removed. Functions moved to various other - files, where they more logically belong. - * src/utils.cc: Likewise, various functions moved to other files, - where they more logically belong. - * src/mappers.cc (install_mapper_functions): Declare all mapper - functions here with the new DEFUN_MAPPER() macro. - * src/variables.cc (install_builtin_variables): Declare all - builtin variables here, with the new DEFVAR() macro. - - * src/f-*.h: Deleted. - * src/f-*.cc: Delete #ifdef WITH_DLD code and use DEFUN_DLD() - instead to declare builtin functions that will be dynamically - loaded. Give all functions a uniform return type and argument - list. - - * src/mkdefs, src/mkbuiltins: New scripts. - * src/Makefile.in: Use them to generate builtins.cc automatically - from source files that use DEFUN. - - * src/defun.h, src/defun-dld.h, src/defun-int.h: New files, to - define DEFUN() and DEFVAR() macros to make it possible to define - functions together with their help strings in one place. The code - to install functions in the symbol table is now generated by - mkbuiltins. - - * configure.in (LIBOCTDLD): New variable to define. - Only call AC_VERBOSE() for DYNAMIC_LD_OBJ, DLD_DIR, LIBDLD, - LIBOCTDLD, and LD_STATIC_FLAG if they are set. - * move-if-change: Move here, from src/move-if-change. - * Makeconf.in (%.d: %.cc): Echo simple message instead of the - commands actually executed. - (%.d: %.c): Likewise. - - * src/unwind-prot.h: Include stddef.h, for size_t. - - Tue Jul 12 12:51:25 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/f-eval.cc, src/f-fill.cc, src/f-find.cc, src/f-input.cc, - src/f-minmax.cc, src/f-log.cc, src/f-sort.cc, src/f-eval.h, - src/f-fill.h, src/f-find.h, src/f-input.h, src/f-log.h, - src/f-minmax.h, src/f-sort.h: New files, for functions extracted - from tree-const.cc. - * src/Makefile.in: Add them to the list of INCLUDES, SOURCES, and - OBJECTS. - - * src/f-*.cc: Clean up things a bit by letting the compiler - generate the tree_constant constructor calls. - - * src/unwind-prot.h: Include stddef.h, for size_t. - - * src/oct-obj.h (Octave_object (int, const tree_constant&)): - New constructor form. - * src/tree-const.cc (find_nonzero_elem_idx): Rewrite to handle 2 - and 3 return values. - - * src/g-builtins.cc (builtin_find): Check nargout too. - * src/builtins.cc (general_functions): Fix help message for find. - - Mon Jul 11 13:36:15 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tc-rep.cc (tree_constant_rep::convert_to_row_or_column_vector): - If already have a row or column vector, return without doing - anything. - - Sat Jul 9 01:02:51 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/oct-obj.h (Octave_object): Make it a class, not just a - typedef. - - * src/tree-expr.h (tree_function::curr_va_arg_number): Rename from - curr_arg_number. - (tree_function::varargs_ok): Delete unused member variable. - * src/tree-expr.cc (tree_function::octave_va_arg): Increment - cur_va_arg_number before indexing args_passed. - (tree_function::octave_va_start): Set curr_va_arg_number to - num_args_passed, not num_args_passed + 1. - (tree_function::takes_varargs): Call param_list::takes_varargs, - don't just return varargs_ok. - (tree_function::define_param_list): If param_list is not NULL, set - num_named_args and curr_va_arg_number even if function doesn't - take varargs. - - * src/tree-expr.cc (tree_identifier::eval (int)): Only pass empty - arg list if evaluating a constant. - (tree_function::eval (int)): Always pass least one arg. - - * Makeconf.in (TMP_IF_1): Add `-I../src'. - (TMP_IF_2): Add `-I$(TOPDIR)/src' and `-I$(top_srcdir)/src'. - - * src/t-builtins.h, src/variables.h, src/file-io.h, src/f-syl.h, - src/f-svd.h, src/f-schur.h, src/f-rand.h, src/f-qzval.h, - src/f-quad.h, src/f-qpsol.h, src/f-npsol.h, src/f-lsode.h, - src/f-lpsolve.h, src/f-hess.h, src/f-givens.h, src/f-fsqp.h, - src/f-fsolve.h, src/f-eig.h, src/f-dassl.h, src/f-colloc.h, - src/f-balance.h, src/dynamic-ld.h, src/builtins.cc, - src/tree-const.cc, src/file-io.cc, src/f-syl.cc, src/f-svd.cc, - src/f-schur.cc, src/f-rand.cc, src/f-qzval.cc, src/f-qr.cc, - src/f-qpsol.cc, src/f-lu.cc, src/f-lpsolve.cc, src/f-inv.cc, - src/f-ifft.cc, src/f-hess.cc, src/f-givens.cc, src/f-fsqp.cc, - src/f-fft.cc, src/f-expm.cc, src/f-eig.cc, src/f-det.cc, - src/f-colloc.cc, src/f-chol.cc, src/f-balance.cc, - src/dynamic-ld.cc, src/f-dassl.cc, src/f-fsolve.cc, - src/f-lsode.cc, src/f-npsol.cc, src/f-quad.cc, src/tree-expr.h, - src/tc-rep.cc, src/tc-inlines.cc, src/tc-rep.h, src/tree-const.h, - src/g-builtins.cc, src/g-builtins.h, src/tree-expr.cc, - src/variables.cc: Delete nargin in favor of using args.length(). - - * configure.in: Check for struct exception in math.h. - * src/sysdep.cc (matherr): New function. - - Fri Jul 8 15:31:53 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tc-rep.cc: Include arith-ops.h. - (tree_constant_rep::do_scalar_index): Use `invalid', not `illegal' - in messages. - - * src/oct-obj.h: Protect contents from multiple inclusion. - - * src/tree-const.h, src/tree-expr.h: Don't include Array.h. - - * src/parse.y (param_list): Allow ELLIPSIS by itself. - * src/tree-expr.cc (tree_identifier::mark_varargs_only, - tree_identifier::vararg_only): New functions. - (tree_function::eval): Only call define_from_arg_vector if - param_list is non-null and not marked as varargs_only. - - * src/f-balance.h, src/f-chol.h, src/f-colloc.h, src/f-dassl.h, - src/f-eig.h, src/f-fsolve.h, src/f-fsqp.h, src/f-givens.h, - src/f-hess.h, src/f-lpsolve.h, src/f-lsode.h, src/f-lu.h, - src/f-npsol.h, src/f-qpsol.h, src/f-qr.h, src/f-quad.h, - src/f-qzval.h, src/f-rand.h, src/f-schur.h, src/f-svd.h, - src/f-syl.h: Include oct-obj.h, not tree-const.h to get - declaration of Octave_object. - - * src/f-givens.cc (givens): Handle case of nargout == 0. - Use `invalid', not `illegal' in messages. - * src/f-balance.cc (balance): Likewise. - - * src/f-balance.cc (balance): Print warning about two output - arguments for complex-valued case too. - - * src/tc-rep.cc: Include arith-ops.h. - - Thu Jul 7 20:54:12 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/parse.y (identifier): Add missing semicolon. - (param_list): Ditto. - - * src/f-svd.cc (svd): Handle nargout == 0 the same as nargout == 1. - * src/f-schur.cc (schur): Likewise. - * src/f-hess.cc (hess): Likewise. - * src/f-eig.cc (eig): Likewise. - * src/f-syl.cc (syl): Likewise. - * src/f-qzval.cc (qzvalue): Likewise. - * src/f-npsol.cc (npsol): Likewise. - * src/f-qpsol.cc (qpsol): Likewise. - * src/f-givens.cc (givens): Likewise. - * src/f-fsolve.cc (fsolve): Likewise. - * src/f-balance.cc (balance): Likewise. - * src/file-io.cc (process_scanf_format): Likewise. - * src/g-builtins.cc (builtin_balance, builtin_chol, builtin_dassl, - builtin_eig, builtin_fsolve, builtin_fsqp, builtin_lsode, - builtin_max, builtin_min, builtin_npsol, builtin_qpsol, - builtin_quad, builtin_rand, builtin_size, builtin_sort, - builtin_svd, builtin_schur, builtin_syl, builtin_givens, - builtin_hess): Likewise. - * src/tree-const.cc (vector_of_empties, column_max, column_min): - Likewise. - - * src/variables.h, src/symtab.h: Include builtins.h for typedefs. - - * src/tree-expr.cc(tree_multi_assignment_expression::eval): Rework - handling of undefined values returned from functions. - - * src/tree-expr.cc (tree_identifier::is_defined): New function. - (tree_parameter_list::is_defined): New function. - (tree_parameter_list::convert_to_const_vector): Use it to avoid - evaluating undefined objects. - - * src/f-balance.cc, src/f-eig.h, src/f-hess.cc, src/f-lu.h, - src/f-rand.cc, src/f-balance.h, src/f-expm.cc, src/f-hess.h, - src/f-npsol.cc, src/f-rand.h, src/f-chol.cc, src/f-expm.h, - src/f-ifft.cc, src/f-npsol.h, src/f-schur.cc, src/f-chol.h, - src/f-fft.cc, src/f-ifft.h, src/f-qpsol.cc, src/f-schur.h, - src/f-colloc.cc, src/f-fft.h, src/f-inv.cc, src/f-qpsol.h, - src/f-svd.cc, src/f-colloc.h, src/f-fsolve.cc, src/f-inv.h, - src/f-qr.cc, src/f-svd.h, src/f-dassl.cc, src/f-fsolve.h, - src/f-lpsolve.cc, src/f-qr.h, src/f-syl.cc, src/f-dassl.h, - src/f-fsqp.cc, src/f-lpsolve.h, src/f-quad.cc, src/f-syl.h, - src/f-det.cc, src/f-fsqp.h, src/f-lsode.cc, src/f-quad.h, - src/f-det.h, src/f-givens.cc, src/f-lsode.h, src/f-qzval.cc, - src/f-eig.cc, src/f-givens.h, src/f-lu.cc, src/f-qzval.h, - src/dynamic-ld.cc, src/dynamic-ld.h, src/file-io.cc, - src/file-io.h, src/t-biultins.cc, src/t-builtins.h, - src/tree-expr.cc, src/tree-expr.h, src/tree-const.cc, - src/tree-const.h, src/tc-inlines.cc, src/tc-rep.cc, src/tc-rep.h, - src/g-builtins.cc, src/g-builtins.h: - Cope with inital round of Octave_object changes. - - * src/oct-obj.h: New file for Octave_object typedef. - * src/dynamic-ld.h, src/file-io.h, src/tree-const.h, - src/tree-expr.h: Include it. - * src/Makefile.in (INCLUDES): Add it to the list. - - Wed Jul 6 09:28:28 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * libocsrc/tree-const.h: - - * src/parse.y (maybe_convert_to_ans_assign, - maybe_warn_assign_as_truth_value): Pass tree_expression*, not tree*. - (ans_expression, expression, simple_expr, simple_expr1, title): - Declare as tree_expression_type, not tree_type. - (opt_list): Add missing semicolon. - - * src/tc-rep.h, src/tc-rep.cc: New files, extracted from - tree-const.h and tree-const.cc, for the tree_constant_rep class. - Leave most friend functions behind, in tree-const.h. - Don't declare do_binary_op or do_unary_op as friends. - - * src/lex.l: Include tree-plot.h and tree-const.h. - - * src/variables.cc (takes_correct_nargs): Pass tree_fvc* not tree*. - * src/variables.cc (is_valid_function): Return tree_fvc* not tree*. - Change all callers. - - * src/symtab.h, symtab.cc: Change declaration of symbol definition to - be tree_fvc* instead of tree*. Change all callers. - - * src/f-dassl.cc (dassl_fcn): Declare as tree_fvc*, not tree*. - * src/f-quad.cc (quad_fcn): Likewise. - * src/f-lsode.cc (lsode_fcn): Likewise. - * src/f-fsolve.cc (fsolve_fcn): Likewise. - * src/f-npsol.cc (npsol_fcn, npsol_constraints): Likewise. - - * src/tree-plot.cc: All operations are now on tree_expression types, - not tree types. - - * src/tree-expr.h (tree_matrix): Derive from tree_expression, not tree. - - * src/tree-expr.h (tree_builtin, tree_function, tree_identifier): - Derive from tree_fvc, not tree. - * src/tree-const.h (class tree_constant): Likewise. - - * src/tree-expr.h (is_identifier, is_index_expression, - is_assignment_expression, is_prefix_expression, - mark_for_possible_ans_assign, eval (with args)): Declare in - tree_expression class, not tree class. - - * src/tree-expr.h (tree_fvc): New class, derived from - tree_expression, to provide a connection between functions, - variables, and constants. - (is_constant, assign, name, bump_value, max_expected_args, - fcn_file_name, time_parsed, is_system_fcn_file, save): Declare - in tree_fvc class, not in tree class. - - * src/tree.h: Simply include tree-expr.h and tree-cmd.h. - * src/tree-expr.h, tree-expr.cc: New files, extracted from tree.h - and tree.cc for classes derived from tree_expression, plus some - helper classes. - * src/tree-cmd.h, tree-cmd.cc: Likewise, for classes derived from - tree_command. - - * src/tree.cc (eval (int, int)): Merge with eval (int, - tree_constant*, int, int) by rearranging order of args and using - default arg values. Change all callers. - - Tue Jul 5 14:33:33 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * doc/Makefile.in (refcard.dvi): Run TeX on $(srcdir)/refcard.tex, - not just refcard.tex. - (refcard-local.tex): Likewise, for the local version. - - * src/tree-const.cc (tree_constant_rep::do_index): Check for empty - matrix here. - (tree_constant_rep::do_vector_index) Not here. - - Thu Jun 30 09:41:03 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/g-builtins.cc (builtin_shell_command): Only take one - argument and return [status, output]. - * src/procstream.cc (procstreambase::close): Return process exit - status. - - * src/tree.cc (tree_builtin::eval (int)): Handle new style of - calling text functions. - (tree_builtin::eval (int, int): Likewise. - (tree_builtin::eval (tree_constant*, int, int, int): Likewise. - (tree_identifier::eval (tree_constant*, int, int, int)): Don't - count the output arguments that we create automatically (ans) when - figuring nargout. - (tree_identifier::eval (int)): Likewise. - - * src/tree-const.cc: Delete text-style eval() functions. - * src/tree.cc: Ditto. - - * src/tree-const.h: Change typedef of Text_fcn to return a pointer - to a tree_constant, and to include the number of output arguments - in the parameter list. - * src/t-builtins.h: Change declarations of all builtin text-style - functions to match. - * src/t-builtins.cc: Change definitions too. - - * src/parse.y (word_list): Build an argument_list, not a word_list. - (word_list_command): Create an index_expression, not a - word_list_command. - * src/tree.cc (tree_word_list): Delete unneeded class. - (tree_word_list_command): Likewise. - - * src/tc-extras.cc (get_dimensions): For one-arg version, expect - 2-element vector or scalar specifying dimensions. Don't simply - use the dimensions of a matrix arg. - - Wed Jun 29 09:52:15 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/f-det.cc (determinant): Return 0 if matrix is singular to - machine precision. - - * liboctave/dMatrix.cc (Matrix::inverse): Declare rcond as - volatile to prevent optimization of the expression - `rcond + 1.0 == 1.0'. - (Matrix::determinant): Ditto. - (Matrix::solve): Ditto. - * liboctave/CMatrix.cc (ComplexMatrix::inverse): Ditto. - (ComplexMatrix::determinant): Ditto. - (ComplexMatrix::solve): Ditto. - - Tue Jun 28 10:53:31 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/utils.cc (default_info_file): Add directory separator when - appending "octave.info". - - * src/tree-plot.cc (plot_line_count): Make global. - * src/utils.cc (send_to_plot_stream): If the plot stream is not - open, set plot_line_count to zero. - (close_plot_stream): Likewise, set it to zero when closing the - stream. - - * src/parse.y (plot_command): Allow replot without args. - - * src/tree-plot.cc (clear_before_plotting): New global variable. - (tree_plot_command::eval): Use it to handle hold on/off. - * src/t-builtins.cc (builtin_hold): New function. - * src/builtins.cc (text_functions): Add it to the list. - - Fri Jun 24 11:08:36 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/token.h (plot_tok_type): Add new field, replot. - * src/lex.l (is_keyword): Handle replot here. - * src/parse.y (plot_command): And here. - * src/g-builtins.cc (builtin_replot): Not here. - * src/builtins.cc (general_functions): Or here. - - Tue Jun 21 10:47:08 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/g-builtins.cc (builtin_kbhit): New function. - * src/builtins.cc (general_functions): Add it to the list. - - * src/tree-const.cc (tree_constant_rep::rows (void)): For strings - and ranges, only return 1 if the string or range is not empty. - - Thu Jun 9 20:42:06 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tree.cc (tree_builtin::eval (int)): Delete ancient code that - eval()'d the return value. - (tree_builtin::eval (int, int)): Likewise. - (tree_builtin::eval (int, char**, int)): Likewise. - (tree_builtin::eval (tree_constant*, int, int, int)): Likewise. - (tree_function::eval (tree_constant*, int, int, int)): Likewise. - (tree_colon_expression::eval (int)): Likewise. - (tree_unary_expression::eval (int)): Likewise. - (tree_binary_expression::eval (int)): Likewise. - - Mon Jun 6 03:48:32 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/file-io.cc (fread_internal): Make it work. - (fwrite_internal): Likewise. - (num_items_remaining): Renamed from get_whats_left(). Don't pass - nr/nc as last arg, simply return the number of items of size that - are left to read. - (get_size_conv): Delete unnecessary function. - * liboctave/dMatrix.cc (Matrix::read): Make it work. - (Matrix::write): Likewise. - * liboctave/dMatrix.h (conversion): Delete unecessary enum. - - * src/sysdep.cc: Include . - (octave_ieee_init): Cast return value of infinity() and - quiet_nan() to double. - - Sun Jun 5 14:35:32 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * Makeconf.in (getversion): Get everything between the double - quotes, not just numbers and periods. - - * src/tree-const.cc (tree_constant_rep::do_scalar_assignment): Correct - typo in last change. - - * src/parse.y: Include tree-plot.h and tree-const.h. - - * src/Makefile.in (SOURCES): Delete tc-assign.cc and tc-index.cc - (INCLUDES): Add tree-plot.h. - - * src/tree-plot.h: New file. Declare plotting classes here. - * src/tree.h: Not here. - - * src/tc-index.cc, tc-assign.cc: Delete unnecessary files. - - * src/tc-extras.cc: Include EIG.h - - * src/tree-const.cc (tree_constant_rep::tree_constant_rep (RowVector&, - int)): Provide default value for int arg. - (tree_constant_rep::tree_constant_rep (ColumnwVector&, int)): Ditto - (tree_constant_rep::tree_constant_rep (ComplexRowVector&, int)): Ditto - (tree_constant_rep::tree_constant_rep (ComplexColumnwVector&, int)): - Ditto. - (tree_constant_rep::tree_constant_rep (RowVector&)): Delete, now - handled by corresponding two arg constructor. - (tree_constant_rep::tree_constant_rep (ColumnwVector&)): Likewise. - (tree_constant_rep::tree_constant_rep (ComplexRowVector&)): Likewise. - (tree_constant_rep::tree_constant_rep (ComplexColumnwVector&)): - Likewise. - - * src/tree-const.cc: Add pragma implementation. Merge in contents of - tc-index.cc and tc-assign.cc so that the pragma interface/pragma - implementation hack will do some good. - * src/tree-const.h: Include mx-base.h, not Matrix.h. Add pragma - interface. Delete unnecessary constructor declarations. - - * src/unwind-prot.h, src/unwind-prot.cc (unwind_elem_tag): Rename - from _tag. - (unwind_elem_fptr): Rename from _fptr. - (unwind_elem_ptr): Rename from _ptr. - - * NLConst.cc (NLConst::NLConst): Pass vector args by reference. - - * src/procstream.h, src/procstream.cc, src/idx-vector.h, - src/idx-vector.cc, src/token.h, src/token.cc, src/unwind-prot.h, - src/unwind-prot.cc, src/symtab.h, src/symtab.cc, src/tree.h, - src/tree.cc, liboctave/Range.h, liboctave/Range.cc, - liboctave/QLD.h, liboctave/QLD.cc, liboctave/ODE.h, - liboctave/ODE.cc, liboctave/Quad.h, liboctave/Quad.cc, - liboctave/Objective.h, liboctave/Objective.cc, liboctave/NPSOL.h, - liboctave/NPSOl.cc, liboctave/NLFunc.h, liboctave/NLFunc.cc, - liboctave/Bounds.h, liboctave/Bounds.cc, liboctave/QP.h, - liboctave/QP.cc, liboctave/NLConst.cc, liboctave/LinConst.cc, - liboctave/LPsolve.cc, liboctave/LP.cc, liboctave/FSQP.cc, - liboctave/FEGrid.cc, liboctave/QPSOL.cc, liboctave/CollocWt.cc, - liboctave/DAEFunc.cc, liboctave/DAEFunc.h, liboctave/DAE.cc, - liboctave/NLEqn.cc, liboctave/ODEFunc.cc, liboctave/QPSOL.h, - liboctave/ODEFunc.h, liboctave/NLP.h, liboctave/NLEqn.h, - liboctave/NLConst.h, liboctave/LinConst.h, liboctave/LPsolve.h, - liboctave/LP.h, liboctave/FSQP.h, liboctave/FEGrid.h, - liboctave/DAE.h, liboctave/CollocWt.h: - Add pragma interface/implementation. - - * src/f-svd.cc, src/f-schur.cc, src/f-qr.cc, src/f-lu.cc, - src/f-hess.cc, src/f-det.cc, src/f-chol.cc, src/f-qzval.cc, - src/f-inv.cc, src/f-ifft.cc, src/f-givens.cc, src/f-fft.cc, - src/f-balance.cc, src/f-expm.cc, src/f-fsqp.cc, src/f-syl.cc, - src/xdiv.cc, src/xpow.cc, src/idx-vector.cc, src/pr-output.cc, - src/unwind-prot.cc, src/file-io.cc, liboctave/Bounds.h, - liboctave/CollocWt.h, liboctave/DAE.h, liboctave/EIG.h, - liboctave/FEGrid.h, liboctave/LP.h, liboctave/LPsolve.cc, - liboctave/LinConst.h, liboctave/NLEqn.cc, liboctave/NLEqn.h, - liboctave/NLP.h, liboctave/NPSOL.cc, liboctave/NPSOL.h, - liboctave/ODE.h, liboctave/Objective.h, liboctave/QLD.cc, - liboctave/QP.h, liboctave/QPSOL.h, liboctave/Quad.h: - Instead of including Matrix.h, only include the individual - matrix/vector/etc. header files that are needed. - - * liboctave/QLD.cc, liboctave/ODE.cc, liboctave/NLFunc.cc, - liboctave/DAEFunc.cc, liboctave/DAE.cc, liboctave/NLEqn.cc, - liboctave/ODEFunc.cc: - Use 0, not NULL. - - * liboctave/mx-inlines.cc: Include Complex.h. - - * liboctave/mx-kludge.h: Don't enclose contents in extern "C++". - - * liboctave/Matrix.h: Simply include mx-base.h and mx-ext.h. - - * liboctave/mx-base.h: New file, includes all basic matrix/vector - header files. - * liboctave/mx-ext.h: New file, includes all extra matrix/vector - related header files. - * liboctave/mx-defs.h: New file, for matrix/vector related - defines. Also provides forward declarations for all matrix/vector - classes. - - * liboctave/Makefile.in: Cope with new files. - - * liboctave/CmplxAEPBAL.cc, liboctave/CmplxDET.h, - liboctave/CmplxQR.cc, liboctave/CmplxSVD.h, liboctave/dbleDET.cc, - liboctave/dbleHESS.h, liboctave/dbleSCHUR.cc, - liboctave/CmplxAEPBAL.h, liboctave/CmplxHESS.cc, - liboctave/CmplxQR.h, liboctave/dbleAEPBAL.cc, liboctave/dbleDET.h, - liboctave/dbleLU.cc, liboctave/dbleSCHUR.h, - liboctave/CmplxCHOL.cc, liboctave/CmplxHESS.h, - liboctave/CmplxSCHUR.cc, liboctave/dbleAEPBAL.h, - liboctave/dbleGEPBAL.cc, liboctave/dbleLU.h, liboctave/dbleSVD.cc, - liboctave/CmplxCHOL.h, liboctave/CmplxLU.cc, - liboctave/CmplxSCHUR.h, liboctave/dbleCHOL.cc - liboctave/dbleGEPBAL.h, liboctave/dbleQR.cc, liboctave/dbleSVD.h, - liboctave/CmplxDET.cc, liboctave/CmplxLU.h, liboctave/CmplxSVD.cc, - liboctave/dbleCHOL.h, liboctave/dbleHESS.cc, liboctave/dbleQR.h, - liboctave/EIG.h, liboctave/EIG.cc: - New files, extracted from Matrix-ext.cc, in an attempt to allow - effective use of pragma interface/implementation and make - generated code somewhat smaller. - * liboctave/dColVector.cc liboctave/CColVector.cc: Likewise, from - ColVector.{cc,h}. - * liboctave/dRowVector.cc liboctave/CRowVector.cc: Likewise, from - RowVector.{cc,h}. - * liboctave/dMatrix.cc liboctave/CMatrix.cc: Likewise, from - Matrix.{cc,h}. - * liboctave/dDiagMatrix.cc liboctave/CDiagMatrix.cc: Likewise, - from DiagMatrix.{cc,h}. - - Fri Jun 3 15:32:53 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/Array.h: Include assert.h. - (DiagArray::operator T ()): [! _AIX] Only call get() if i is - also equal to j. - - * scripts/rem.m: Allow mixing of scalar/matrix args, but complain - if both args are matrices and the dimensions don't agree. - - * src/lex.l (grab_help_text): Correct previous change. - - Thu Jun 2 12:08:18 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * Matrix.h (conversion): New enum, for binary read/write - functions. - * Matrix.cc (read, write) New functions. - * file-io.cc (feof_internal, ferror_internal, fread_internal, - fwrite_internal, get_size_conv, get_whats_left): New functions. - * g-builtins.cc (builtin_feof, builtin_ferror, builtin_fread, - builtin_fwrite): New functions. - * builtins.cc (general_functions): Add them to the list. - - * configure.in: Check for infinity() and quiet_nan(). - * sysdep.h (octave_Inf, octave_NaN): New global variables. - * sysdep.cc (octave_ieee_init): New function. Initialize - octave_Inf and octave_NaN. - (sysdep_init): Call it. - * builtins.cc (initialize_builtins): Don't compute Inf and NaN - values here. - - Tue May 31 20:06:27 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/variables.cc (identifier_exists): Only return 1 for - variables if they are also defined. - - Sun May 29 20:40:55 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/lex.l: Don't declare beginning_of_function as static. - (COMMENT): Delete unnecessary exclusive start state. - (\#, \%): Handle comments directly. Try to be smart about not - returning a newline character when reading a matrix list. - (grab_help_text): Don't put a newline back on the input stream. - * src/parse.y (list1): Set beginning_of_function to zero here. - - Wed May 25 03:34:17 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/error.cc (error): If error_state is -2, don't do anything. - If the format string ends in a new line character, strip it, print - the error message, and set the error state to -2. - * src/tree.cc (tree_function::traceback_error): Don't set the - error_state if it is already negative. - - * src/tree-const.cc (convert_to_row_or_column_vector): New function. - * src/idx-vector.cc (idx_vector::shorten): New function. - * src/tc-assign.cc (fortran_style_matrix_assignment - (tree_constant&, tree_constant&)): Handle deleting elements by - assignment of `[]'. Use convert_to_row_or_column_vector to handle - conversion to a vector in the case of deleting some elements from - a matrix. Use idx_vector::shorten() to remove unnecessary index - vector elements. - (do_scalar_assignment (tree_constant&, tree_constant*, int)): - Handle assignment of empty matrix. - If converting complex to real, delete old complex value. - (delete_rows (idx_vector&)): If deleting all rows of a column - vector, convert to empty matrix. - (delete_rows (Range&)): Ditto. - (delete_columns (idx_vector&)): If deleting all columns of a row - vector, convert to empty matrix. - (delete_columns (Range&)): Ditto. - - * src/tc-extras.cc (column_max (tree_constant*, int, int)): - Use MAX, not MIN when trying to find the biggest scalar. - Likewise, find the complex scalar with the largest, not the - smallest absolute value. - - * src/tc-assign.cc (do_matrix_assignment (tree_constant&, - tree_constant_rep::constant_type, tree_constant&): For case of - j_arg == matrix constant, don't negate return value of - indexed_assign_conforms(). - - * src/user-prefs.cc (commas_in_literal_matrix): New function. - Put functions in alphabetical order. - * src/user-prefs.h (commas_in_literal_matrix): New structure element. - Alphabetize structure elements and lists of functions. - * src/builtins.cc (string_variables): Add commas_in_literal_matrix - to the list. - * src/lex.l ({SN}*\]{S}*): Pay attention to the value of - usre_pref.commas_in_literal_matrix when deciding whether to insert - a comma after seeing a ']' character. - (handle_identifier): Likewise. - ({S}+): If commas are required, just eat the spaces. - - Tue May 24 19:49:51 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tc-assign.cc (tree_constant_rep::do_matrix_assignment - (tree_constant&, tree_constant*, int)): Handle empty arguments - for two index values. - (tree_constant_rep::do_matrix_assignment - (tree_constant&, tree_constant&)): - Likewise, for single index values. - - Mon May 23 01:43:23 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * Makefile.in (snapshot, snapshot-version): New targets. - - * configure.in: Handle --enable-run-in-place (was easier than - doing the work to parse --run-in-place like Emacs uses). - - * acconfig.h: Add #undef for RUN_IN_PLACE. - - * Makeconf.in (OCTAVE_HOME): New macro. - * src/Makefile.in (defaults.h): Use it instead of ${prefix}. - - * Makeconf.in (OCTAVE_INFO_DIR, OCTAVE_LIB_DIR): New macros. - * src/Makefile.in (defaults.h): Substitute them too. - - * src/defaults.h.in (OCTAVE_INFO_DIR): New macro, used if - RUN_IN_PLACE is defined. - (OCTAVE_LIB_DIR): Likewise. - - * src/utils.cc (octave_home): Handle RUN_IN_PLACE - (octave_info_dir): Ditto. - (octave_lib_dir): Ditto. - - * src/tree-const.cc (tree_constant_rep::diag (void)): For empty - matrix, return empty matrix. - (tree_constant_rep::diag (tree_constant &)): Likewise, regardless - of value of arg. - - * scripts/int2str.m: Format as integer, not float. - Don't add trailing new line character. - - Sun May 22 22:13:01 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * scripts/plot_int.m: When looking for imaginary arguments, check - if any element has an imaginary component, not if all elements - have imaginary components. - - Thu May 19 19:46:23 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/parse.y (EXPR_AND_AND, EXPR_OR_OR): New tokens, for - short-circuit logical AND and OR operators. - (simple_expression): Handle new tokens. - * src/lex.l (&&) [SHORT_CIRCUIT_LOGICALS]: Return EXPR_AND_AND. - (||) [SHORT_CIRCUIT_LOGICALS]: Return EXPR_OR_OR. - * src/tree.cc (tree_binary_expression::eval): Handle short-circuit - boolean operators. - (tree_binary_expression::eval_error): Print different messages for - or_or/or and and_and/and. - * src/tree-base.h (tree_expression_type): Add new structure - elements and_and and or_or. - * src/tree-const.cc (tree_constant_rep::is_true): New function. - - Tue May 17 17:04:00 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/idx-vector.cc (idx_vector::sort_uniq ()): New function. - * src/tc-assign.cc (tree_constant_rep::delete_rows ()): Use it. - (tree_constant_rep::delete_columns ()): Likewise. - - Mon May 16 13:31:33 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * scripts/linspace.m: Replace for loop with range operation. - * scripts/logspace.m: Replace for loop with element by element - exponentiation. - - Sun May 8 00:49:38 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * scripts/lqe.m: Correct comment. - Transpose k before returning. - - Fri May 6 00:47:24 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tree.cc (quit_loop_now): New function. - (tree_while_command::eval): Use it. - (tree_for_command::eval): Ditto. - - * src/tree.cc (tree_for_command::do_for_loop_once): New function. - (tree_for_command::eval): Use it. - - Mon May 2 19:45:39 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tree.cc (tree_for_command::eval): Handle returning, - breaking, and continuing for case of scalar expression in loop - control statement. - - Wed Apr 20 00:38:26 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/lex.l (\[{S}*): Don't return ',' for this match when - convert_spaces_to_comma is true, since that can never be the right - thing to do. - - * All Makefile.in files: Set top_srcdir here. - * Makeconf.in: Not here. - - * Makeconf.in: Use top_srcdir instead of root_srcdir - - * configure.in: Update for autoconf-1.8. Use AC_VERBOSE for - verbose messages. Use AC_WARN and AC_ERROR instead of echo for - warning and error messages. Organize feature tests a bit better. - Use new autoconf macros to check for C++ compiler. Add copyright - notice. Recognize --enable-dld instead of --with-dld since that - seems to be more in line with the intent of the --enable/--with - options for configure scripts. Use new autoconf macros - AC_REVISION and AC_PREREQ. Don't add -Wall to CFLAGS and CXXFLAGS - until after all feature tests are done. Etc. - - Fri Apr 15 01:56:20 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * acconfig.h: Add #undefs for HAVE_FINITE, HAVE_ISINF, and - HAVE_ISNAN. - * configure.in: Check for floatingpoint.h. - * src/sysdep.cc (sysdep_init): Disable trapping on common - exceptions for 386BSD systems that have floatingpoint.h. - - * src/utils.cc: Don't declare ioctl() with prototype. - - Sat Apr 9 17:48:07 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tc-assign.cc (tree_constant_rep::fortran_style_matrix_assignment - (tree_constant&, tree_constant&)): - Handle case of M (X) = scalar, where X is a zero-one vector with - only one nonzero element. - - * src/tc-assign.cc (tree_constant_rep::do_vector_assign - (tree_constant&, Range&): - Handle case of right hand side being a scalar. - (tree_constant_rep::do_vector_assign (tree_constant&, idx_vector&): - Ditto. - - * src/tc-assign.cc (tree_constant_rep::do_matrix_assignment - (int,tree_constant_rep::constant_type)): - Allow assignment of complex scalar too. - (tree_constant_rep::do_matrix_assignment - (tree_constant_rep::constant_type, int)): - Ditto. - - * src/tree-const.h (REP_RHS_MATRIX): Initialize nr and nc. - Abort if rhs is not a real or complex matrix. - - Wed Apr 6 13:59:37 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/Range.cc (Range::nelem_internal): Use an integer, not - a double, for the number of intervals. Avoid possible problems - with extended precision registers on some systems (e.g. x86/Linux). - - Mon Mar 28 17:23:18 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/utils.cc (raw_mode): For OCRNL, ONOCR, and ONLRET, check to - see if they are defined before using them instead of checking to - see if NeXT is defined. - - * info/terminal.c (terminal_prep_terminal): Check to see if OCRNL - is defined before using it instead of checking to see if NeXT is - defined. - - Thu Mar 24 03:21:01 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tree.cc (tree_parameter_list::define_from_arg_vector): - New function. - (tree_parameter_list::convert_to_const_vector): Ditto. - (tree_function::eval): Use them instead of trying to do this - in-line. - - * src/symtab.h (symbol_record::global_link_context): New stack for - saving linked_to_global flag. - * src/symtab.cc (symbol_record::push_context): Save - linked_to_global too. - (symbol_record::pop_context): And restore it. - - Wed Mar 23 16:18:19 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * doc/refcard.tex.in: New file. - * doc/Makefile.in: Create refcard.* and refcard-local.* from - refcard.tex.in. - - Tue Mar 22 15:23:55 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * octave.sh: exec $OCTAVE_HOME/bin/octave.bin, not just - octave.bin. - - Thu Mar 17 01:06:10 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/arith-ops.cc (do_binary_op (ComplexMatrix&, Matrix& b)): - Correctly handle element by element left division. - - * src/g-builtins.cc (builtin_error): Return without calling error - (and setting error_state) if the message is empty. - - * src/help.cc (operators): Correct help message for `.^'. - - * src/tc-index.cc (tree_contant_rep::fortran_style_matrix_index): - Preserve vector orientation when indexing with a zero-one vector. - - * src/tc-index.cc (tree_constant_rep::do_scalar_index): Handle - indexing a scalar with `0'. - - * src/tc-index.cc (tree_constant_rep::do_scalar_index): Handle the - index `:' the same as the index `1'. - - Tue Mar 15 17:22:00 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/Array.cc: Fix typo in comments about compiler flags. - - Wed Mar 9 15:08:21 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * Version 1.0.1. - - * src/*.h: Use the macro octave_FOO_h instead of _FOO_h to protect - against multiple inclusion. - * liboctave/*.h: Likewise. - - * liboctave/*.h: Surround contents of files in extern "C++" { }. - - Tue Mar 8 18:06:54 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tc-index.cc (tree_constant_rep::do_vector_index (const - tree_constant&) const): Don't crash if matrix is empty. - - * scripts/norm.m: Return empty matrix for empty argument. - - Mon Mar 7 23:34:44 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * doinstall.sh: chmod new directories to 755. - - Sat Mar 5 13:15:10 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * bsd-math/log1p.c: Declare finite as returning int, not double. - * bsd-math/finite.c (finite): Add return type. - - Thu Mar 3 14:42:00 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/DiagMatrix.cc (operator *): Provide definitions for - DiagMatrix * DiagMatrix, ComplexDiagMatrix * ComplexDiagMatrix, - ComplexDiagMatrix * DiagMatrix, and DiagMatrix * ComplexDiagMatrix. - - * liboctave/ColVector.cc (operator >>): Provide definitions for - real and complex column vectors. - - * liboctave/RowVector.cc (operator >>): Provide definitions for - real and complex row vectors. - - Wed Mar 2 18:00:47 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/Array.h (DiagArray::Proxy::operator & ()): Provide - function body. - - Tue Mar 1 13:18:35 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tree-const.cc (tree_constant::load (istream&)): Don't skip - past first type keyword if not global. - (tree_constant::load (istream&, tree_constant_rep::constant_type)): - Allocate storage for reading complex scalar. - - Sun Feb 20 14:17:47 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * scripts/menu.m: Don't fail on input that is empty or not a - scalar. - - * Makefile.in (DISTFILES): Distribute ChangeLog.[0-9]. - - * src/lex.l (reset_parser): Don't resynch line number to command - history number if reading a script file. - - Thu Feb 17 01:36:19 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * Version 1.0 released. - - * src/file-io.cc (fopen_file_for_user): Improve error message. - (fopen_internal): Likewise. - - Wed Feb 16 02:21:05 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * configure.in: Try harder to find finite, isnan, and isinf. - Use m4 `dnl' comments, not shell `#' comments. - - * src/file-io.cc (file_io_get_file): New function. - (fgets_internal): Use it instead of trying to do this in line. - (frewind_internal, fseek_internal, ftell_internal, do_printf, - do_scanf): Likewise. - * (do_scanf): Allow file name as string for fscanf. - * (procss_scanf_format): Delete unused argument `args'. Delete - unused local variable `arg_type'. Don't complain if we can't - store the result of a requested conversion. Only return - successfully if a conversion actually occurs, even if we are not - storing the value. - - Sun Feb 13 13:32:03 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.83 released. - - * Array.h (DiagArray): Move inline definitions of get() and set() - before use by other inline functions. - - Sat Feb 12 14:15:45 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * configure.in: Check for g77 last. Even if it is ever actually - released, it probably won't be stable for quite a while. - - * MAKEINFO.PATCH: New file. - * Makefile.in (DISTFILES): Distribute it. - - * liboctave/Matrix.cc (operator + (Complex, const Matrix&)): - Make it work. - (operator - (Complex, const Matrix&)): Ditto. - (operator * (Complex, const Matrix&)): Ditto. - (operator / (Complex, const Matrix&)): Ditto. - - Fri Feb 11 00:03:39 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * configure.in: Check for strerror too. - - * configure.in: When saving CFLAGS as XCFLAGS and then restoring - the value, quote the RHS. - - * src/g-builtins.cc (builtin_clc): Do the dirty work to clear the - screen here instead of using rl_clear_screen to avoid printing - prompt unnecessarily. - - Thu Feb 10 00:26:32 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/utils.cc: Add all the cruft that the autoconf manual - suggests for including dirent.h. - - * info/terminal.c (terminal_prep_terminal): [HAVE_TERMIOS_H && - NeXT]: Don't use OCRNL, as someone says NeXT's termios.h doesn't - have it. - - * configure.in (GCC_IEEE_FP_FLAG): Correct check for ix86 Linux. - Don't try to check for CC == gcc. - Add GCC_IEEE_FP_FLAG to CFLAGS while checking for IEEE FP - functions finite, isnan, and isinf. - - * readline/rldefs.h: Make definition of HAVE_POSIX_SIGNALS - conditional on definition of _POSIX_VERSION, not HAVE_TERMIOS_H. - - Wed Feb 9 02:41:32 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tree.cc (tree_function::octave_va_start): Rename from - va_start to avoid conflict with va_start macro. - (tree_function::octave_var_arg): Likewise, rename from va_arg. - * src/g-builtins.cc (builtin_va_arg): Call octave_va_arg for the - current function instead of va_arg. - (builtin_va_start): Likewise, for octave_va_start. - - * Version 0.82.1. - - * doc/Makefile.in (clean): Also remove octave.in, octave.rd, - octave.ins, and octave.rds. - - * src/t-builtins.cc (load_variable): Make it work for all - combinations of loading global or local variables when the - variable to be loaded is already a global variable, local - variable, a function, or even undefined. - - Tue Feb 8 00:33:09 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.82 released. - - * liboctave/mx-kludge.cc (operator + (KL_MAT_TYPE, KL_MAT_TYPE)): - For an empty matrix with one nonzero dimension, be sure to return - a result of the same size. - (operator - (KL_MAT_TYPE, KL_MAT_TYPE)): Ditto. - (product (KL_MAT_TYPE, KL_MAT_TYPE)): Ditto. - (quotient (KL_MAT_TYPE, KL_MAT_TYPE)): Ditto. - - Mon Feb 7 01:30:19 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/Array.h, liboctave/array.cc (DiagArray): Back off on - indexing via Proxy class changes for AIX systems to avoid gcc (or - possibly AIX assembler?) bug. - - * src/tree-const.cc (tree_constant_rep::maybe_resize (int, - force_orient)): Don't abort for a max index of zero. - - * liboctave/Matrix.h (class RowVector, friend double operator * - (const RowVector&, const ColumnVector&)): Add missing const in - declaration. - - * liboctave/Matrix.cc (Matrix::fill (val, r1, c1, r2, c2)): Set nc - to cols(), not rows(). - (ComplexMatrix::fill (double val, r1, c1, r2, c2)): Likewise. - (ComplexMatrix::fill (Complex val, r1, c1, r2, c2)): Likewise. - - * All source files: To match the documenation, refer to function - files, not M-files. Rename functions and variables that refer to - _m_file_, mfile, or mf to refer to _fcn_file, ffile, or ff. - - Sun Feb 6 19:08:26 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/parse.y (yyerror): Don't crash if a parse error happens and - the current input line is NULL. - - Sat Feb 5 18:53:04 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/file-io.cc (initialize_file_io): Don't use variable names - that start with `_'. - * src/file-io.cc (class file_info): Likewise. - - Fri Feb 4 01:15:59 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/builtins.cc (general_functions): In usage message for fopen, - use `Valid' instead of `Legal'. - - * src/file-io.cc (do_printf): Use `invalid' instead of `illegal' - in error message. - (do_scanf): Likewise. - - * src/mappers.cc (atanh): Use correct formula. - - Thu Feb 3 22:08:40 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * doc/refcard.tex: New file. - * doc/Makefile.in (all): Make refcard.ps. - (DISTFILES): Distribute refcard.tex, refcard.dvi, and refcard.ps. - - * src/tree-const.cc (any_element_is_negative): Delete function. - (any_element_less_than): New function. - (any_element_greater_than): Ditto. - (tree_constant_rep::mapper): Use struct elements lower_limit, - upper_limit, and can_return_complex_for_real_arg to properly - handle functions like acos, asin, atanh, and acosh. - - * src/builins.h (struct Mapper_fcn): Rename neg_arg_complex to - can_return_complex_for_real_arg. New elements, lower_limit and - upper_limit. - (struct builtin mappers functions): Rename neg_arg_complex to - can_return_complex_for_real_arg. New elements, lower_limit and - upper_limit. Delete elements nargin_max and nargout_max. - * src/variables.cc (install_builtin_mapper_function): Handle new - struct elements can_return_complex_for_real_arg, lower_limit, and - upper_limit. Don't use nargin_max and nargout_max -- they are - the same for all mapper functions. - - Wed Feb 2 05:06:56 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/Matrix.h: Don't include values.h. - * liboctave/Matrix-ext.cc: Include float.h - (DET::value_will_overflow): Use DBL_MAX, not MAXDOUBLE. - (ComplexDET::value_will_overflow): Likewise. - (DET::value_will_underflow): Use DBL_MIN, not MINDOUBLE. - (ComplexDET::value_will_underflow): Likewise. - * src/tree.cc: Include limits.h, not values.h. - (tree_builtin::max_expected_args): Use INT_MAX, not MAXINT. - - * configure.in: If compiling on an ix86, set GCC_IEEE_FP_FLAG to - -mieee-fp. We should no longer require the modified crt0 code on - Linux systems in order to get IEEE functions. - * Makeconf.in (GCC_IEEE_FP_FLAG): Substitute value. - (ALL_CFLAGS, UGLY_ALL_CFLAGS, ALL_CXX_FLAGS, UGLY_ALL_CXX_FLAGS, - ALL_LDFLAGS): Use it. - - Tue Feb 1 22:30:46 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/builtins.cc (install_builtins): Make SEEK_SET, SEEK_CUR, and - SEEK_END constants. - - * src/tree-plot.cc (tree_subplot_using::print): Only check column - number against max if max is greater than 0. - - Mon Jan 31 15:59:31 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * scripts/strcmp.m: Correctly handle empty strings. - - * src/parse.y (input): Recognize lone simple_list and simple_list - followed by error and '\n'. - - Fri Jan 28 00:20:30 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.81 released. - - * src/octave.cc (clean_up_and_exit): Call cleanup_tmp_files() here - too. - - * configure.in: Check for atexit and on_exit. - * src/octave.cc: Use HAVE_ATEXIT and HAVE_ON_EXIT (instead of - just checking to see if sun is defined) to decide whether to - define atexit as on_exit. - (main): Don't try to call atexit if it's missing and we don't have - on_exit either. - - Thu Jan 27 22:16:48 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * configure.in: Check for gethostname and sys/utsname.h. - * utils.cc (gethostname): Steal replacement from bash. Provide - definition if it looks like it's missing and we have - sys/utsname.h. - - * liboctave/Array.h (DiagArray): Define non-const indexing - functions here. - * liboctave/Array.cc (DiagArray): Not here. - - * liboctave/Array.h (DiagArray::Proxy): New class to handle - non-const reference indexing. Allows different action if indexing - on left side of assignment operator. - - * src/octave.cc (main): Call initialize_pager(), - initialize_readline(), and install_signal_handlers() before trying - to read startup files. - - * src/octave.cc (input_from_startup_file): New global flag. - (execute_startup_files): Set it to 1 before reading startup files. - * src/parse.y (func_def_2): If input_from_startup_file, don't try - to compare file name and function name. - - Wed Jan 26 14:39:27 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * readline/rldefs.h: Make better use of autoconf defines. - - Tue Jan 25 17:19:19 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/Matrix.cc (ComplexMatrix (DiagMatrix)): Make sure off - diagonal elements are zero. - (ComplexMatrix (ComplexDiagMatrix): Likewise. - (Matrix (DiagMatrix): Likewise. - - Fri Jan 21 17:43:11 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * flibs.sh: Recognize libraries that match `/*.a'. - - Thu Jan 20 18:12:01 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.80.1. - - Wed Jan 19 14:48:27 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * libcruft/odepack/stode.f: Don't try to `RETURN 0'. This causes - lsode to fail, at least with Sun's f77. - - * src/tree-const.cc (tree_constant_rep::load): Delete string - returned from extract_keyword. - * src/t-builtins.cc (builtin_load): Likewise. - * src/variables.cc (extract_keyword): Return new storage, not - static buffer. - - * src/t-builtins.cc (builtin_save): If saving a named list of - variables, use is_globally_visible to decide whether to mark - variables in the current symbol table as global. - - Tue Jan 18 11:57:03 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.80 released. - - * doc/Makefile.in (install): Delete commands for installing - liboctave.info instead of trying to comment them out. - - * liboctave/Array.cc: Allow users to compile with - -fexternal-stemplates and USE_EXTERNAL_TEMPLATES defined to - generate their own .o files with new types. - - * Makeconf.in (includedir): Install include files in - $prefix/include/octave by default. - - * liboctave/Makefile.in (TEMPLATE_SRC): New macro. - (install): Install files listed in $(TEMPLATE_SRC) too. - - * info/search.h: Conditionally declare stricmp and strnicmp. - * info/search.c: Conditionally define stricmp and strnicmp. - * config.h.in: Add undefs for HAVE_STRICMP and HAVE_STRNICMP. - - * configure.in: Check for stricmp and strnicmp too. - - * doc/Makefile.in: For now, don't format or try to install the - liboctave manual. - Don't distribute formatted copies of liboctave manual. - - Mon Jan 17 01:10:54 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * doc/Makefile.in (clean): Remove all index files. - - * src/Makefile.in (defaults.h): Depend on Makefile too. - * doc/Makefile.in (conf.texi): New rule for making conf.texi from - conf.texi.in. - - * doc/conf.texi.in: New file. - * doc/octave.texi: Include conf.texi to get VERSION, OCTAVE_HOME, - and other variables that need to be set depending on the - configuration. - - * Makefile.in (DISTFILES): Don't distribute PLOTTING. Current - plotting info is in the Texinfo docs. - - Sat Jan 15 15:43:34 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * config.sub: New file, from libg++-2.5.2. - * Makefile.in: Distribute config.sub. - * configure.in: Use config.sub to validate system types. If it - fails, continue with target_host_type and canonical_host_type set - to unknown. Leave target_host_type set to any alias given as the - TARGET argument to configure. - - * readline/rldefs.h: If ultrix and HAVE_SGTTY_H, avoid Posix - terminal driver. - * configure.in: If configuring for ultrix, check for sgtty first. - If not found, go ahead and check for Posix terminal driver. - - * configure.in: Don't try to do anything special for readline on - NeXT systems. - - * Makeconf.in: Define rules for making .d files here. - liboctave/Makefile.in: Not here. - src/Makefile.in: Or here. - - * liboctave/Matrix.h (all Matrix/Vector operator = functions): - Simply call the base class operator =, then return *this. - (class ColumnVector): Declare RowVector a friend class, so it can - access the private constructor for the transpose operator. - (class RowVector): Likewise, for ColumnVector. - (class ComplexColumnVector): Likewise, for CommplexRowVector. - (class ComplexRowVector): Likewise, for ComplexColumnVector. - Numerous formatting cleanups. - - Thu Jan 13 13:17:47 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.79.90. - - * builtins.cc: Include missing-math.h. - - * src/missing-math.h: Provide declarations for acosh, asinh, - atanh, and gamma whether they are actually missing or not, because - they are not part of the standard math.h, and the g++/libg++ - installation no longer provides declarations for them. - - * src/sighandlers.h (RETSIGTYPE): Define here. - (BADSIG): Likewise. - (sig_handler): Likewise. - - * src/g-builtins.cc: Include sighandlers.h - Don't define RETSIGTYPE, BADSIG, or sig_handler here. - * src/octave.cc: Or here. - - Wed Jan 12 16:12:27 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/g-builtins.cc: Don't check nargin/nargout in *_options - functions. - - * src/f-qpsol.cc, src/f-quad.cc, src/f-lsode.cc, src/f-fsolve.cc, - src/f-dassl.cc, liboctave/QPSOL.cc, liboctave/Quad.cc, - liboctave/ODE.cc, liboctave/NLEqn.cc, liboctave/DAE.cc: - Similar changes for these classes/functions as the following - changes for src/f-npsol.cc and liboctave/NPSOL.cc: - - * src/f-npsol.cc (npsol_opts): New static variable to hold Octave's - current idea of npsol options. - (npsol): Call nlp.copy (npsol_opts) after creating NPSOL object. - (npsol_option_table): New static list of options for npsol. - (print_npsol_option_list): New function. - (do_npsol_option): New function. - (npsol_options): Make it work. - - * liboctave/NPSOL.cc (NPSOL_options): New class. - * (NPSOL): Also derive from NPSOL_options. - * (minimize): Call pass_options_to_npsol before calling npsol. - * (NPSOL::option): No longer works. Print error message instead. - * (NPSOL::set_default_options): Now a member of NPSOL_options class. - - * src/utils.cc: If missing, declare strcasecmp, strncasecmp. - * (almost_match): Add new argument to do case-insensitive matches. - * (keyword_almost_match): New function to match a string against a - list of keywords. - - * liboctave/NLP.h (NLP): Add destructor and copy constructor. - - * configure.in: Check for strcasecmp and strncasecmp. - * config.h.in: Add #undefs for HAVE_STRCASECMP and STRNCASECMP. - * src/strcasecmp.c, src/strncase.c: New files, from glibc. - * src/Makefile.in (SOURCES, OBJECTS): List them. - - * src/builtins.cc (general_functions): Improve usage message for - the *_options functions. - (print_usage): New arg, just_usage with default value of 0. - If nonzero, don't print info about where to find additional help. - - * src/Makefile.in (INCLUDES): Add error.h. - (SOURCES): Add error.h. - - * src/tree.cc (tree_identifier::parse_m_file): call reset_parser - before calling yyparse (). - * src/tc-extras.cc (eval_string): Likewise. - Don't save previous symbol table. That is handled by the - unwind protect. - - * src/lex.l (reset_parser): Don't unconditionally call yyreset. - Add a couple of comments. - (yywrap): Always return 1, not 0. - (yy_flex_alloc, yy_flex_realloc, yy_flex_free): #if 0 out. - - * src/utils.cc (raw_mode): Only complain about stdin not being a - tty if we are really interactive. - - * src/octave.cc (main): End startup message with endl to ensure - flushing before other output. - * Turn of readline's blink_matching_paren feature if not - interactive, or if reading from a file specified on the command - line. - - * src/octave.cc (main): Set the symbol table context just before - calling reset_parser in the main loop. - * src/lex.l (reset_parser): Not here. - - * src/input.cc (octave_gets): Declare static. - (octave_read): Also handle echoing input if not using readline. - - * Makefile.in (DISTFILES): Add SENDING-PATCHES to the list. - - Mon Jan 10 14:30:13 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * scripts/corrcoef.m, scripts/fortran_vec.m, scripts/kurtosis.m, - scripts/ols.m, scripts/skewness.m, scripts/cov.m, scripts/gls.m, - scripts/mahalanobis.m, scripts/pinv.m: New script files from Kurt - Hornik (hornik@neuro.tuwien.ac.at) and the Department of - Probability Theory and Statistics TU Wien, Austria. - - Sun Jan 9 01:11:05 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/g-builtins.cc (builtin_fsqp_options): If FSQP_MISSING is - defined, don't call fsqp_options; just print usage message. - (builtin_npsol_options): Likewise, for npsol_options. - (builtin_qpsol_options): Likewise, for qpsol_options. - * src/builtins.cc (general_functions): Provide different usage - message for fsqp_options depending on whether FSQP_MISSING is - defined. Likewise for npsol_options and qpsol_options. - - Sat Jan 8 16:45:57 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * libcruft/misc/dostop.c: Include config.h. - - * src/variables.cc (extract_keyword): Use ostrstream instead of - fixed length buffer. For keywords with string values, return - value in static buffer. - * src/t-builtins.cc (builtin_load): Handle new argument list for - extract_keyword. Handle possiblity of load_variable setting - error_state. - * src/tree-const.cc (tree_constant_rep::load): Handle new argument - list for extract_keyword. - - Fri Jan 7 13:20:47 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/f-eig.cc (builtin_eig_2): Rename from builtin_eig. - * src/f-fsolve.cc (builtin_fsolve_2): Rename from builtin_fsolve. - * src/f-inv.cc (builtin_inv_2): Rename from builtin_inv. - - Thu Jan 6 12:29:41 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tree-base.h (tree::save): Add optional argument `precision'. - * src/tree-const.cc (tree_constant::save): Ditto. - (tree_constant_rep::save): Ditto. - * src/symtab.cc (symbol_def::save): Ditto. - (symbol_record::save): Ditto. - (symbol_table::save): Ditto. - - * src/t-builtins.cc (builtin_save): Pass user_pref.save_precision - to symbol table save functions. - * src/builtns.cc (string_variables): Add save precision to thelist. - (install_builtins): Initialize it. - * src/user-prefs.cc (set_save_precision): New function. - * src/user-prefs.h (user_pref.save_precision): New data element. - - * liboctave/Matrix-ext.cc: Provide correct prototypes for dgeesx - and zgeesx. - * (SCHUR::init): Don't declare a dummy_select function pointer, - just pass `(void *) 0' instead, since the dummy argument is never - supposed to be used anyway. - - * src/input.cc (initialize_readline): Cast command_completer to - CPPFunction, not Function, now that readline has more than one - function typedef. - * Add extern declaration for free_undo_list (). - - * Replace readline source from GDB with readline source from bash. - This allows paren matching. - - Wed Jan 5 01:20:26 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * configure.in: Also check for sys/select.h. - - * liboctave/RowVector.cc (ComplexRowVector::operator *): Complete - function body. Put code in-line rather than making a call to the - BLAS routine zdotu to avoid having to cope with the various ways - that Fortran compilers might translate this. - - * src/input.cc (operate_and_get_next): New function, from bash. - (initialize_readline): Bind operate_and_get_next to C-O here. - - * src/input.cc (command_completer, command_generator): - Declare static here. - * srs/input.h (command_completer, command_generator): - Not extern here. - - * g-builtins.cc (builtin_warranty): Change copyright info. - * octave.cc (verbose_usage): Likewise. - (main): Likewise. - - Mon Jan 3 15:49:41 1994 John Eaton (jwe@schoch.che.utexas.edu) - - * src/fnmatch.c, src/fnmatch.h: New files for pattern matching - from the GNU C library. - * src/Makefile.in: Add them to the appropriate lists. - * src/t-builtins.cc (builtin_save): Use fnmatch to do pattern - matching instead of using regular expressions. - (builtin_clear): Likewise. - (glob_pattern_p): New function. - (builtin_save): Print error message and return if only given one - argument that contains globbing characters. - - * src/symtab.cc (symbol_record::save): Don't attempt to save - undefined variables. - - Wed Dec 29 02:55:08 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * scripts/rank.m: Also need to compute SVD when nargin == 2. - Correct usage message. - - Wed Dec 15 01:44:18 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * src/f-lpsolve.cc, src/f-fsqp.cc, src/f-npsol.cc, src/f-qpsol.cc, - src/f-lsode.cc, src/f-dassl.cc, src/f-fsolve.cc, src/f-quad.cc: - New stub options functions, XXX_options, and XXX_options_2 (for - future dld use), where XXX is lpsolve, fsqp, npsol, etc. - * src/f-lpsolve.h, src/f-fsqp.h, src/f-npsol.h, src/f-qpsol.h, - src/f-lsode.h, src/f-dassl.h, src/f-fsolve.h, src/f-quad.h: - Declare XXX_options functions. - * src/builtins.cc (builtin_general_functions): Add new XXX_options - functions to the list of builtin functions. - * src/g-builtins.cc: Define builtin_XXX_options functions. - * src/g-builtins.h: Declare them. - - * scripts/tzero.m: Add missing comma in fprintf call. - - Tue Dec 14 00:24:35 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * libcruft/quadpack/*.f: Modify to handle user-requested - termination from inside the user-supplied function. - * src/f-quad.cc (quad_user_function): Set quad_integration_error - if an error is encountered in the user-supplied function. - * liboctave/Quad.h (quad_integration_error): New global variable. - * liboctave/Quad.cc (user_function): Handle - quad_integration_error, and error flag for modified Quadpack - functions. - - * src/tree.cc (tree_simple_assignment_expression::eval): Check - error status after calling convert_to_const_vector () on the - argument list. - (tree_index_expression::eval): Ditto. - - * src/tree.cc (tree_argument_list::convert_to_const_vector): - If an error is encountered while evaluating an element of the - list, print an error message including the element number. - - * liboctave/ODE.cc (integration_error): New private data member. - (ODE constructors): Initialize it to zero. - (ODE::integrate (double)): Reset it to zero before each - integration step. - (lsode_f): Treat empty vector returned from user-supplied function - as an error. - * src/f-lsode.cc (lsode_user_function): Return empty vector if - error is encountered in user-supplied function. Don't jump to top - level on error. - - * libcruft/odepack/lsode.f (lsode): Return with istate = -13 on - error from user supplied subroutine. - * libcruft/odepack/lsode.f (lsode): Handle extra argument returned - from user-supplied function. - * libcruft/odepack/stode.f (stode): Likewise. - * libcruft/odepack/prepj.f (prepj): Likewise. - - Wed Dec 8 01:30:57 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/DAE.cc (integration_error): New private data member. - (DAE constructors): Initialize it to zero. - (DAE::integrate (double)): Reset it to zero before each - integration step. - (dassl_f): Treat empty vector returned from user-supplied function - as an error. - * src/f-dassl.cc (dassl_user_function): Return empty vector if - error is encountered in user-supplied function. Don't jump to top - level on error. - - * liboctave/NPSOL.cc (npsol_objective_error): New global variable. - (npsol_objfun): Set to zero before calling user-supplied function. - Check after calling user-supplied function. - Set mode to -1 on error. - (npsol_confun): Set mode to -1 on error. - (npsol declaration): Declare args for user-supplied functions. - * src/f-npsol.cc (npsol_objective_function): If an error is - encountered in the calculation of the objective function, set - npsol_objective_error to 1. - (npsol_constraint_function): Treat empty vector returned from - user-supplied function as an error. - - * liboctave/Array.cc (*::checkelem): Correct bounds checking. On - error, return uninitialized value of type T. This avoids placing - an extra requirement on the class that can be used as an array - element. - (*::operator ()): Likewise. - - Mon Dec 6 07:24:49 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/NLEqn.cc (hybrd1 declaration): Declare args for - user-supplied fuction. - (hybrj1): Likewise. - (hybrd1_fcn): Treat return of empty vector from user supplied - function as an error by setting iflag to -1. - (hybrj1_fcn): Likewise. - (solve): Handle case of info < 0 returned from hybrd1. - - * src/f-fsolve.cc (fsolve_user_function): Don't jump to top level - on error in user-supplied function. Treat empty vector returned - from user-supplied function as error. - (hybrd_info_to_fsolve_info): Translate -1 (failure in evaluation - of user-supplied function) to -2. - * scripts/perror.m (fsolve case): Handle -2. - - * info/error.c (program_name): Initialize to info, not NULL. - - * info/session.c (initialize_info_session): Don't exit if term is - too dumb or too small to use info. Return int status instead. - * info/info.h (TERM_TOO_SMALL): New macro. - - * src/t-buitlins.cc (try_info): Check return value from - initialize_info_session (). - - * liboctave/Array.cc (DiagArray::DiagArray (int n, const T& val)): - Set number of rows and columns to n, not 0. - - Sat Dec 4 14:01:41 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * src/lex.h (YY_INPUT): Undefine if defined, then always define - the way we want. - (YY_FATAL_ERROR): Likewise. - - * src/lex.l (yywrap): Declare static. - (yy_flex_alloc): New function, so we don't have to link with - libfl.a when using flex 2.4.x. - (yy_flex_realloc): Ditto. - (yy_flex_free): Ditto. - - Thu Dec 2 19:23:43 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * scripts/*.m: Add copying notice to script files. - - * src/input.cc (command_generator): Return copy of matching string. - - * src/input.cc (command_generator): Correctly delete array of - character strings. - * src/symtab.cc (symbol_table::save): Likewise. - * src/utils.cc (pathstring_to_vector): Likewise. - - * src/utils.cc (get_m_file_names): When reallocating vector of - strings, delete original vector of pointers, but not the strings - they point to. - - Tue Nov 30 12:36:41 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/RowVector.cc, liboctave/ColVector.cc, - liboctave/DiagMatrix.cc, liboctave/Matrix.cc, - liboctave/Matrix-ext.cc: Massive rewrite to cope with new - derivation scheme. - - * liboctave/Matrix.h: Include Array.h, and derive Matrix, - ComplexMatrix, etc. from Array. Derive Complex - versions from Array. Delete declarations of functions - now inherited from the Array classes. - * Include mx-kludge.h with appropriate #defines in each class that - needs it. - * liboctave/Matrix.cc: Include mx-kludge.cc with appropriate - #defines in each class that needs it. - - * liboctave/Makefile.in (INCLUDES): Add Array.h, MArray.h, and - mx-kludge.h. - (SOURCES): Add Array.cc. - (EXTRAS): Add MArray.cc and mx-kludge.cc. - - * liboctave/mx-kludge.h, liboctave/mx-kludge.cc: New files to - implement the MArray functionality with macros until g++ can - handle the MArray stuff. - - * liboctave/MArray.h, liboctave/MArray.cc: New files for generic - arrays with simple math functions for like-types. This won't - quite work with g++ yet, so it's not used anywhere. - - * liboctave/Array.h, liboctave/Array.cc: New files for generic - arrays. - - * liboctave/mx-inlines.cc: Add const for const arguments. - - * src/file-io.cc (file_info): Rename class from File_info. - (file_info::operator =): Fix memory leak by deleting old name - and mode before saving new. Don't do copy if source and - destination are the same. - - * src/tree.cc (tree_matrix::eval): Plug memory leak. - - * src/tree.cc (tree_builtin::tree_builtin): Check to see that nm, - not my_name, is non-NULL before saving it. - - * src/tree.cc (tree_identifier::eval, tree_gobal_command::eval): - After performing the assignment, delete the identifier created - for temporary asssignment since the destrucotr for - tree_simple_assignment_expression doesn't do it for us. - - * src/tree.cc (tree_function::stash_m_file_name): Delete file_name - before saving it. - (tree_function::stash_function_name): Likewise, for fcn_name. - - * src/lex.l, src/lex.h: Make quote_is_transpose globally visible. - * src/parse.y (param_list): Use it, and recognize empty parameter - lists here. - - * src/parse.y (simple_expr1): Recognize empty matrices here. - (matrix): Not here. - - * src/arith-ops.cc (do_binary_op): The matrix product and quotient - functions aren't class member functions now. - - * src/tc-index.cc, src/tc-assign.cc, src/symtab.cc, - src/tree-plot.cc, src/idx-vector.cc, src/tree-const.cc: - Call ::error, not just error, since g++ now complains about not - being able to find a non-hidden member function by that name. - - * src/tree-const.cc: Call ::real and ::imag, not just real and imag, - since g++ now complains about not being able to find non-hidden - member functions by those names. - - * src/tree-const.cc (tree_constant_rep::force_numeric): Handle case - of zero-length strings. - - * src/tree-const.cc (tree_constant_rep::convert_to_str): Null - terminate strings created from scalars. - - * src/tc-index.cc (tree_constant_rep::fortran_style_matrix_index): Use - data(), not fortran_vec(). - * src/idx-vector.cc (idx_vector::idx_vector): Likewise. - - * src/SLStack.cc: Move function definitions here. - * src/SLStack.h: From here. Include SLStack.cc if not using - external templates. - - * src/unwind-prot.h: Move class declaration here. - * src/unwind-prot.cc: From here. - - * src/xdiv.h, src/xpow.h, src/variables.h, src/utils.h, - src/user-prefs.h, src/t-builtins.h, src/sighandlers.h, - src/pr-output.h, src/pager.h, src/octave-hist.h, src/mappers.h, - src/input.h, src/help.h, src/gripes.h, src/g-builtins.h, - src/f-syl.h, src/f-svd.h, src/f-schur.h, src/f-rand.h, - src/f-qzval.h, src/f-quad.h, src/f-qr.h, src/f-qpsol.h, - src/f-npsol.h, src/f-lu.h, src/f-lsode.h, src/f-lpsolve.h, - src/f-inv.h, src/f-ifft.h, src/f-hess.h, src/f-givens.h, - src/f-fsqp.h, src/f-fsolve.h, src/f-fft.h, src/f-expm.h, - src/f-eig.h, src/f-det.h, src/f-dassl.h, src/f-colloc.h, - src/f-chol.h, src/f-balance.h, src/error.h, src/dynamic-ld.h, - src/builtins.h, src/arith-ops.h, src/tree-const.h, src/tree.h, - src/token.h, src/symtab.h, src/procstream.h, src/idx-vector.h, - src/file-io.h, src/tree-base.h, src/unwind-prot.h, src/Stack.h, - liboctave/LinConst.h, liboctave/FEGrid.h, liboctave/NLEqn.h, - liboctave/NLConst.h, liboctave/LPsolve.h, liboctave/LP.h, - liboctave/FSQP.h, liboctave/DAEFunc.h, liboctave/DAE.h, - liboctave/CollocWt.h, liboctave/Bounds.h, liboctave/Objective.h, - liboctave/ODEFunc.h, liboctave/NLFunc.h, liboctave/Range.h, - liboctave/Quad.h, liboctave/QP.h, liboctave/QPSOL.h, - liboctave/QLD.h, liboctave/NPSOL.h, liboctave/NLP.h, - liboctave/f77-uscore.h, liboctave/lo-error.h, - liboctave/Matrix.h: - Don't use #pragma interface. - - * src/tc-index.cc, src/tc-assign.cc, src/symtab.cc, - src/procstream.cc, src/gripes.cc, src/f-syl.cc, src/f-svd.cc, - src/f-schur.cc, src/f-rand.cc, src/f-quad.cc, src/f-qr.cc, - src/f-qpsol.cc, src/f-npsol.cc, src/f-lu.cc, src/f-lsode.cc, - src/f-lpsolve.cc, src/f-inv.cc, src/f-ifft.cc, src/f-hess.cc, - src/f-givens.cc, src/f-fsqp.cc, src/f-fsolve.cc, src/f-fft.cc, - src/f-eig.cc, src/f-det.cc, src/f-dassl.cc, src/f-colloc.cc, - src/f-chol.cc, src/f-balance.cc, src/t-builtins.cc, - src/octave-hist.cc, src/input.cc, src/g-builtins.cc, - src/xdiv.cc, src/xpow.cc, src/user-prefs.cc, src/unwind-prot.cc, - src/tree-plot.cc, src/token.cc, src/tc-extras.cc, src/sysdep.cc, - src/sighandlers.cc, src/pr-output.cc, src/pager.cc, - src/mappers.cc, src/idx-vector.cc, src/help.cc, src/f-qzval.cc, - src/f-expm.cc, src/error.cc, src/dynamic-ld.cc, src/builtins.cc, - src/arith-ops.cc, src/variables.cc, src/utils.cc, - src/tree-const.cc, src/file-io.cc, src/tree.cc, - liboctave/sun-utils.cc, liboctave/mx-inlines.cc, - liboctave/RowVector.cc, liboctave/ColVector.cc, - liboctave/DiagMatrix.cc, liboctave/Matrix.cc, - liboctave/Matrix-ext.cc, liboctave/Quad.cc, liboctave/ODE.cc, - liboctave/LPsolve.cc, liboctave/FSQP.cc, liboctave/DAE.cc, - liboctave/DAEFunc.cc, liboctave/QP.cc, liboctave/Objective.cc, - liboctave/ODEFunc.cc, liboctave/NLFunc.cc, liboctave/NLConst.cc, - liboctave/LP.cc, liboctave/lo-error.cc, liboctave/Range.cc, - liboctave/QPSOL.cc, liboctave/NPSOL.cc, liboctave/NLEqn.cc, - liboctave/Matrix.cc, liboctave/Matrix-ext.cc, - liboctave/LinConst.cc, liboctave/FEGrid.cc, - liboctave/DiagMatrix.cc, liboctave/CollocWt.cc, - liboctave/ColVector.cc, liboctave/Bounds.cc: - Don't use #pragma implementation. - - * src/lex.l, src/parse.y, src/procstream.cc, src/gripes.cc, - src/f-syl.cc, src/f-svd.cc, src/f-schur.cc, src/f-rand.cc, - src/f-quad.cc, src/f-qr.cc, src/f-qpsol.cc, src/f-npsol.cc, - src/f-lu.cc, src/f-lsode.cc, src/f-lpsolve.cc, src/f-inv.cc, - src/f-ifft.cc, src/f-hess.cc, src/f-givens.cc, src/f-fsqp.cc, - src/f-fsolve.cc, src/f-fft.cc, src/f-eig.cc, src/f-det.cc, - src/f-dassl.cc, src/f-colloc.cc, src/f-chol.cc, - src/f-balance.cc, src/t-builtins.cc, src/octave-hist.cc, - src/input.cc, src/g-builtins.cc, src/xdiv.cc, src/xpow.cc, - src/user-prefs.cc, src/unwind-prot.cc, src/tree-plot.cc, - src/token.cc, src/tc-extras.cc, src/sysdep.cc, - src/sighandlers.cc, src/pr-output.cc, src/pager.cc, - src/mappers.cc, src/idx-vector.cc, src/help.cc, src/f-qzval.cc, - src/f-expm.cc, src/error.cc, src/dynamic-ld.cc, src/builtins.cc, - src/arith-ops.cc, src/variables.cc, src/utils.cc, - src/tree-const.cc, src/file-io.cc, src/tree.cc: If HAVE_CONFIG_H - is defined, include config.h. - - * config.h.in, acconfig.h: New files - * Makefile.in (DISTFILES): Add them to the list. - - * Makeconf.in (root_srcdir): Define. - (INCFLAGS): Clean up. - (UGLY_ALL_CFLAGS): New macro. - (UGLY_ALL_CXXFLAGS): Likewise. - (UGLY_ALL_LDFLAGS): Likewise. - - * configure.in: Convert to generate config.h. - Substitute root_srcdir in Makefiles. - Use AC_DEFINE(foo, 1) instead of DEFS="$DEFS -Dfoo=1". - If using g++ 2.5 or later, define USE_EXTERNAL_TEMPLATES. - Use UGLY_DEFS for what would have been substited in DEFS, for - those cases when we need DEFS instead of config.h. - - Tue Nov 16 04:59:19 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * src/f-expm.cc, src/f-givens.cc, src/f-qzval.cc, src/f-syl.cc: - Include f77-uscore.h here. - - * liboctave/ColVector.cc, liboctave/Matrix.cc, - liboctave/Matrix-ext.cc, liboctave/RowVector.cc: Move declarations - for Fortran functions here. - * liboctave/Matrix.h: From here. Don't include f77-uscore.h here. - - Mon Nov 15 04:03:34 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tc-extras.cc (min): For two-arg versions, use error(), not - FAIL. - (max): Likewise. - * src/idx-vector.cc (checkelem): Likewise. - - * liboctave/Matrix.h, liboctave/Matrix.cc, liboctave/RowVector.cc, - liboctave/ColVector.cc, liboctave/DiagMatrix.cc, - liboctave/Matrix-ext.cc, liboctave/Bounds.cc, liboctave/DAE.cc, - liboctave/CollocWt.cc, liboctave/FEGrid.cc, liboctave/LinConst.cc, - liboctave/ODE.cc, liboctave/NLEqn.cc: Don't abort or exit on - errors. Instead print some message by calling the function - pointed to by current_liboctave_error_handler and then return. - - * liboctave/lo-error.cc: New file, for liboctave error handling - stuff. - - Sun Nov 14 23:28:12 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * src/utils.cc (default_path): Handle OCTAVE_PATH from the - environment like TeX handles TEXINPUTS. If the path starts with - `:', prepend the standard path. If it ends with `:' append the - standard path. If it begins and ends with `:', do both (which is - useless, but the luser asked for it...). - (octave_lib_dir): Plug memory leak. - - Sat Nov 13 02:41:24 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * src/symtab.h (symbol_record::context): New data member, to allow - recursive functions to work. - * src/symtab.cc (symbol_record::push_context): New function - (symbol_record::pop_context): Ditto. - (symbol_table::pop_context): Ditto. - (symbol_table::push_context): Ditto. - - * src/tree.cc (tree_function::eval): If call_depth is > 1, push - symbol table context and add unwind protect to pop it on exit or - error. - (pop_symbol_table_context): New function for unwind protect. - - * configure.in: Use AC_HAVE_HEADERS(unistd.h) instead of - AC_UNISTD_H. - - * src/lex.l, src/f-quad.cc, src/f-rand.cc, src/f-lpsolve.cc, - src/f-fsqp.cc, src/f-fsolve.cc, src/f-det.cc, src/f-dassl.cc, - src/f-colloc.cc, src/utils.cc, src/variables.cc, src/tree.cc, - src/tree-const.cc, src/tc-extras.cc, src/sysdep.cc, src/symtab.cc, - src/octave-hist.cc, src/pr-output.cc, src/input.cc, - src/g-builtins.cc, src/f-det.cc, src/f-inv.cc, src/file-io.cc: - Convert most calls to message() to calls to warning() or error() - instead. - - * src/f-npsol.cc (npsol): Don't try to create the linear - constraint object before checking array sizes. - - Fri Nov 12 04:36:12 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tc-inlines.cc (is_one_zero): New function. - * src/tc-assign.cc: Everywhere we check for is_zero_one, also - check for is_one_zero. Some people write ranges that go in - decreasing order... - * src/tc-index.cc: Likewise. - - * src/tc-inlines (index_check (Range&, int&, char*)): Eliminate - second arg -- there is no need to return the max value of the - range. Correctly compute and check the minimum value. - * src/tc-index.cc: Change all callers, and check the max value - there. - * src/tc-assign.cc: Likewise. - - * src/tc-assign.cc (do_vector_assign): Handle assignment of empty - matrix for int, idx_vector, and Range cases. - (do_matrix_assign): Likewise, for cases when one of the indices is - a colon and the other is an int, idx_vector, or Range. - - * liboctave/Range.h (Range): Rename private data members rng_foo - instead of just _foo. - * liboctave/Range.cc: Change names where used. - - * liboctave/Range.cc (max): Return correct value even when the - elements in the range don't line up exactly with the limit. - (min): Likewise. - (sort): New function. - - * src/tc-assign.cc (delete_row (int)): New function. - (delete_rows (idx_vector&)): Ditto. - (delete_rows (Range&)): Ditto. - (delete_column (int)): New function. - (delete_columns (idx_vector&)): Ditto. - (delete_columns (Range&)): Ditto. - - * src/tree-const.h (is_empty): Don't try checking rows and columns - if type is magic_colon or unknown. Return false instead. - (is_zero_by_zero): New function. - - * src/idx-vector.cc (sort): New function. - (intcmp): New static function, for sorting. - - Thu Nov 11 02:31:13 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * scripts/menu.m: Update to use new va_start() and va_arg() - functions. - - * src/g-builtins.cc (builtin_va_arg): Rename from - builtin_get_next_arg. - (builtin_va_start): New function. - * src/builtins.cc (builtin_general_functions): Fix up list. - - * src/tree.cc (tree_function::va_arg): Rename from get_next_arg. - (tree_function::va_start): New function. - - * src/tree.h (tree_function::num_named_args): New data member. - * src/tree.cc (tree_function::define_param_list): Set it. - (tree_function::eval): Unwind-protect it. - - Wed Nov 10 03:37:44 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tree.cc (tree_identifier::assign): Also check to make sure - that the symbol record is defined since symbol_record::is_variable - may return true even if the record is undefined. - * src/variables.cc (link_to_global_variable): Don't try to copy a - NULL_TREE_CONST. - - * src/tree-const.cc (tree_constant_rep::matrix_value): If the - current value is a scalar, return 1x1 matrix. - * src/tc-assign.cc (tree_constant_rep::check_vector_assign): - Handle case of zero size LHS. - Clean up formatting of some error messages. - - * src/lex.l ({EL}): Recognize ... when not at end of line. - * src/octave.cc (curr_function): New global variable. - * src/g-buitlins.cc (builtin_get_next_arg): New function. - * src/builtins.cc (builtin_general_functions): Add it to the list. - * src/parse.y (param_list1): Handle ... at end of parameter list. - Abort parse on error. - (ELLIPSIS): New token, for variable argument lists. - * src/tree.h (tree_function): Add varargs_ok, args_passed, - num_args_passed, and curr_arg_number data members to handle - variable argument lists. - (tree_parameter_list::marked_for_varargs): New data member. - * src/tree.cc (tree_function::takes_varargs): New function. - (tree_function::get_next_arg): New function. - (tree_parameter_list::mark_varargs): New function. - (tree_parameter_list::takes_varargs): New function. - (tree_function::eval): Set curr_function, args_passed, and - num_args_passed for use by get_next_arg. - - Mon Nov 8 14:22:34 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.79 released. - - * src/builtins.cc (builtin_text_functions): Correct usage message - for who. - - * scripts/dgram.m: New function, from R. Bruce Tenison - (btenison@eng.auburn.edu). - * scripts/dlqe.m: Ditto. - * scripts/dlqr.m: Ditto. - * scripts/c2d.m: Ditto. - - * src/tree.cc (tree_identifier::name): Make it const. - (tree_builtin::name): Ditto. - (tree_parameter_list::name): Ditto. - (tree_word_list::name): Ditto. - - * src/symtab.cc (symbol_table::save): Delete list of names after - saving. - - * src/symtab.h (symbol_table): Move #defines outside of class - declaration. - - Sun Nov 7 07:03:12 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * Makeconf.in (CXX): Don't set from C++. Do set from @CXX@, which - is determined by configure. Don't set C++FLAGS. - - * src/tree.cc: (tree_function::eval (int, int)): Simply call - eval (tree_constant *, int, int, int) with nargin = 1 and args = - NULL_TREE_CONST instead of duplicating most of that function in place. - - * src/parse.y (func_def2): Reset id_name after renaming identifier. - Clear id_name from top level symbol table before defining identifier. - - Sat Nov 6 04:38:57 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * configure.in: When checking for g++, set CXX, not GXX. - - Merge min changes from Bruce Tenison (btenison@eng.auburn.edu) and - make the corresponding changes for max. - - * src/tc-extras.cc (min (ComplexMatrix&, ComplexMatrix&)): New - function. - (max (ComplexMatrix&, ComplexMatrix&)): Ditto. - (column_min): Handle complex args and two return values. - (column_max): Likewise. - - * liboctave/Matrix.cc (row_min_loc): New function. - (row_max_loc): New function. - (column_min_loc): Ditto. - (column_max_loc): Ditto. - - Fri Nov 5 03:12:55 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.78. - - * src/octave.h (clean_up_and_exit): Change form of declaration for - GCC 2.5.x and beyond. - - * src/tree.cc (tree_identifier::eval): Correctly handle printing - of identifier tags and conversion to assignment to `ans'. - * src/parse.y (maybe_convert_to_ans_assign): Simplify. - For identifiers, defer decision about making an ans assignment - until evaluation time since identifiers can be undefined at parse - time, and we can't tell what to do until we know what the def is. - * src/tree.cc (tree_identifier::mark_for_possible_ans_assgin): New - function. - * src/tree.cc (tree_index_expression::mark_for_possible_ans_assign): - New function. - * src/tree.h (tree_identifier): Add new private data, - maybe_do_ans_assign. - - * src/t-builtins.cc (builtin_who): Major overhaul. Support long - listings. - (print_symbol_info_line): New function. - (print_long_listing): Ditto. - (maybe_list): Ditto. - - * src/user-prefs.cc (sv_editor): New function for builtin variable - EDITOR. - * src/octave-hist.cc (do_edit_history): Use user_pref.editor, not - just the EDITOR environment variable. - - * src/user-prefs.cc (ignore_function_time_stamp): New function for - new builtin variable ignore_function_time_stamp. - * src/variables.cc (symbol_out_of_date): Use value of new - user_pref.ignore_function_time_stamp to decide whether to check to - see if a file has changed. - * src/tree.h (tree_function): Add new private data, system_m_file. - - * src/builtins.cc (string_variables): Add EDITOR and - ignore_function_time_stamp EDITOR to the list. - (bultin_general_functions): Add is_global to the list. - - * src/t-builtins.cc (builtin_clear): Make it work with new - variable scoping rules. - (builtin_document): Likewise, using new document_symbol() - function. - (builtin_save): Likewise. Allow regular expression arguments. - Don't save builtin variables that are read-only. - - * src/utils.cc (octave_home): Don't declare static. - (octave_lib_dir): Likewise. - (octave_info_dir): Likewise. - (default_editor): New function. - - * src/tree.cc (tree_builtin::def): Delete function. - (tree_identifier::def): Likewise. - (tree_identifier::symrec): Likewise. - - * src/tree.h (tree_builtin): Store name of function, not pointer - to symbol record. - - * src/user-prefs.cc (warn_assign_as_truth_value): Lookup - "warn_assign_as_truth_value", not "user_pref.warn...". - - * src/tree-base.h (def): Delete unused virtual function. - (is_prefix_expression): New virtual function. - (mark_for_possible_ans_assign): Likewise. - (is_system_m_file): Likewise. - (stash_m_file_name): No longer needs to be virtual. - (stash_m_file_time): Likewise. - - * src/octave.cc (octave_Complex_error_handler): Define, to keep - errors in the Complex class from aborting Octave. This is only a - temporary fix, I hope. - (main): Install it. - (initialize_globals): Get default editor. - (main): Call initialize_symbol_tables to do that instead of - creating them directly in main. - - * src/variables.cc (document_symbol): New function. - (initialize_symbol_tables): Likewise. - (install_builtin_mapper_function): Likewise. - (install_builtin_text_function): Likewise. - (install_builtin_general_function): Likewise. - (install_builtin_variable): Likewise. - (install_builtin_variable_as_function): Likewise. - (bind_nargin_and_nargout): Likewise. - (bind_builtin_variable): Likewise. - (link_to_global_variable): Likewise. - (link_to_builtin_variable): Likewise. - (link_to_builtin_or_function): Likewise. - (force_link_to_function): Likewise. - (is_globally_visible): Likewise. - (is_builtin_variable): Likewise. - - * src/tree.cc (print_as_scalar): Avoid trying to print row vectors - on one line. - - * src/builtins.cc (install_buitlins): Simplify installation of - builtin functions using new install_builtin_*_function functions. - Ditto for using bind_builtin_variable for installing variables. - - * src/tree.h (tree_global_command): New class. - * src/tree.cc (tree_global_command::*): Implement new class to - make global command executable. - * src/parse.y (global_decl): Make global an executable statement. - - * src/parse.y (func_def2): Rework to match new way of handling - global variables and function names in the symbol table. - Mark functions as `system' or not. - Don't use id_to_define. - If m-file and function names disagree, rename function to match - m-file name. - * src/tree.cc (tree_identifier::rename): New function. - * src/parse.cc, src/parse.h (id_to_define): Delete unused global - variable. - - * src/varables.cc (builtin_string_variable): Fix to match new - rules for global and builtin variables. - (builtin_real_scalar_variable): Likewise. - - * src/tree.cc (tree_identifier::assign): Make it work with new - rules for global variables. - (tree_identifier::parse_m_file): Likewise. - (tree_identifier::do_lookup): Likewise. - - * src/tree.cc (mark_as_system_m_file): New function. - (is_system_m_file): Ditto. - - * src/tree.cc (clear_symbol_table): New function, to be used in an - unwined_protect element for clearing function symbol tables on - exit or error. - - * src/tree.cc (tree_function::eval): Simplify using - bind_nargin_and_nargout. - Clear symbol table on exit or error with unwind_protect. - - * src/tree.cc (tree_prefix_expression::is_prefix_expression): New - function. - - * src/g-builtins.cc (builtin_is_global): New function. - - * src/lex.l (lookup_identifier): Now that global variable binding - has been fixed, only look for symbols in the current symbol table. - Really. I mean it this time. - - * src/symtab.cc: Complete overhaul, to make global variables work - a bit more reasonably. - - Mon Nov 1 15:03:39 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * src/Matrix.h (DiagMatrix::rows): Return nr, not len. - (ComplexDiagMatrix::rows): Ditto. - * src/Matrix.h (DiagMatrix::cols): Return nc, not len. - (ComplexDiagMatrix::cols): Ditto. - (DiagMatrix::columns): Ditto. - (ComplexDiagMatrix::columns): Ditto. - - * liboctave/DiagMatrix.cc (DiagMatrix::row): Make it work for - square case. - (DiagMatrix::column): Likewise. - (ComplexDiagMatrix::row): Likewise. - (ComplexDiagMatrix::column): Likewise. - - * liboctave/DiagMatrix.cc (DiagMatrix::operator <<): Print spaces - between elements. - (ComplexDiagMatrix::operator <<): Likewise. - - Fri Oct 29 15:32:12 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.77.1. - - * src/symtab.cc (symbol_record::alias): Don't copy formal_param or - forced_global attribute. - - * src/symtabl.cc (symbol_table::bind_globals): Don't bind to - global symbol unless it has forced_global attribute set. - - * src/tree.cc (print_as_scalar): New function. - (tree_identifier::eval): Use it. - (tree_simple_assignment_expression::eval): Likewise. - (tree_multi_assignment_expression::eval): Likewise. - - * src/lex.l (is_keyword): Give better error message for attempts - to define nested functions. - - * src/parse.y (global_decl): Return a command_list to execute - (this makes assignments in global declarations executable). - - * src/tree.cc (tree_for_command): Handle line and column info in - constructors and for error messages. - (tree_while_command): Ditto. - (tree_if_command): Ditto. - (tree_break_command): Ditto. - (tree_continue_command): Ditto. - (tree_return_command): Ditto. - (*::eval_error): Only print messages if error_state > 0. - (various): Only need to check that error_state is non-zero before - calling eval_error(). - - * src/parse.y: Handle line and column information for FOR WHILE IF - ELSEIF ELSE BREAK CONTINUE and FUNC_RET tokens. - * src/lex.l: Likewise. - - * src/octave.cc (parse_and_execute): Reset parser before starting - new parse. - - * src/tree-plot.cc (various): Check error_state in many more - places, and issue more meaningful error messages. - - * src/tree-const.cc (maybe_resize): Don't call - jump_to_top_level() on errors. - (tree_constant_rep (Range)): Likewise. - - * src/g-builtins.cc (builtin_error): Use error(), not - print_if_string() to print error messages. - * src/tree-const.cc (print_if_string): Delete unused function. - - * src/tc-assign.cc (various): Check error_state after calls to - maybe_resize(). - - * src/tc-index.cc (various): Always check the state of idx_vectors - after trying to create them. - * src/tc-assign.cc (various): Likewise. - - * src/idx-vector.cc: Use 0, not NULL. - Don't include stdlib.h. - (initialized): New data member, set nonzero if the idx_vector has - been properly initialized. - Never call jump_to_top_level () if initialization fails. - Add operator void *(), so we can test the state of an idx_vector - with `if (vector)'. - - * src/pager.cc: Explicitly initialize pager_buf to NULL. - - * src/tree-base.h: Move includes ahead of other definitions. - - * liboctave/NLEqn.cc (NLEqn::NLEqn (const Vector&, const NLFunc)): - Initialize n from xvec, not x. - - Mon Oct 25 18:01:12 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * src/user-prefs.cc (sv_info_file): New function. - * src/user-prefs.h (user_pref): Add info_file to the list. - * src/t-builtins.cc (try_info): Use it instead of - DEFAULT_INFO_FILE. - - * src/utils.cc (default_info_file): New function. - (octave_info_dir): Likewise. - - * src/defaults.h.in (DEFAULT_INFO_FILE): Delete unnecessary - definition since we figure out what it should be in utils.cc now. - * src/Makefile.in (defaults.h): Don't substitute DEFAULT_INFO_FILE. - * src/Makeconf.in (DEFAULT_INFO_FILE): Delete definition. - - * src/octave.cc (info_file): New global variable. - (initialize_globals): Call default_info_file () to initialize it. - (--info-file): New command line option. - - * src/builtins.cc (string_variables): Add INFO_FILE to the list. - (install_builtins): Define it. - - * info/filesys.c (compress_suffixes): Choose gunzip for .gz files. - - Sat Oct 23 17:46:09 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.77 released. - - * src/Makefile.in (INCFLAGS): Don't include info or dld - directories. - * dynamic-ld.cc: Include dld/dld.h, not just dld.h. - * t-buitlins.cc: Include info/info.h, info/dribble.h, and - info/terminal.h, not just info.h, dribble.h, and terminal.h. - - * src/t-builtins.cc (builtin_help): New option, -i, for invoking - info browser. If -i is not given, just do what we used to do, but - point to help -i as a way to get additional information. - - * builtins.cc (print_usage): New function. - - * g-builtins.cc (all builtins): Call print_usage to get usage message. - * t-builtins.cc (all builtins): Likewise. - - Fri Oct 22 15:56:16 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * Cholesky changes from R. Bruce Tenison (btenison@eng.auburn.edu): - - * src/f-chol.cc, src/f-chol.h: New files for the Cholesky - Factorization. - * src/Makefile.in (SOURCES, OBJECTS, DLD_OBJECTS): Add to lists. - * src/g-builtins.cc (builtin_chol): New function. - * src/g-builtins.h: Declare it. - - * liboctave/Matrix-ext.cc (CHOL, ComplexCHOL): New classes. - - * libcruft/lapack: dpotrf.f, zpotrf.f, dpotf2.f, zpotf2.f: New - files. - - * libcruft/blas: dsyrk.f, zherk.f: New files. - - Fri Oct 22 14:04:16 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * src/g-builtins.cc (builtin_schur): Fourth arg for DLD_BUILTIN is - schur, not hess. - - * scripts/dare.m: Correct usage of fprintf. - - * src/utils.cc (raw_mode): Only complain about stdin not a tty if - interactive or forced interactive. - - Thu Oct 21 17:00:57 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * src/builtins.cc (install_builtins): Try harder to make - initialization of NaN work. Make note about possible fixes if it - still doesn't work. - - * src/utils.cc (raw_mode): [HAVE_TERMIOS_H] and [HAVE_TERMIO_H] - Don't set TAB3 since it doesn't seem necessary and some systems - don't have it by this name. - [HAVE_SGTTY_H] To be consistent, don't set XTABS here either. - - * src/error.c (error): Call flush_output_to_pager before printing - error message. - (panic): Likewise, before aborting. - - * src/symtab.cc (symbol_record::undefine): Delete unused function. - (symbol_table::undefine): Likewise. - - * src/symtab.cc (clear): Never delete symbol records from the - table. Only delete the definitions. This makes clear and - undefine equivalent, so we don't need them - * src/tree.cc (tree_function::eval): Call symbol_table::clear, not - symbol_table::undefine. - - * src/t-builtins.cc (builtin_clear): Only clear global symbols if - we are at the top level. - * src/parse.y (CLEAR): Delete token. - (word_list_command): Remove code to handle CLEAR as special case. - (expect): Only 19 now. - * src/lex.l (handle_identifier): Remove special code for clear. - It's ok to use it in a function body now. - - * src/t-builtins.cc: Include extern "C" declarations for Info stuff. - (builtin_help): If given an argument, try to get help directly - from info file first. If that fails, do as before. - (help_syms_list): New function: - (simple_help): New function. - (try_info): New function. - (help_from_list): New function. - - * src/defaults.h.in (DEFAULT_INFO_FILE): Define new macro. - * Makeconf.in: Set value of DEFAULT_INFO_FILE. - * Makeconf.in (INSTALL_PROGRAM): Add definition. - * Makefile.in (SUBDIRS): Add info directory. - (info): New target. - * configure.in: Add autoconf macros to handle info configuration. - - * info/Makefile.in: Major changes to make it work with Octave's - Makeconf file, etc. The default action is now to build a - libinfo.a file. - - * info/error.c: New file. Move error functions here from info.c. - - * info/signals.c (clear_info_signal_handler): New function, useful - if info is used directly in another program. - - * info/termdep.h: Handle termios too. - * info/terminal.c (terminal_prep_terminal): Handle termios. - * (terminal_unprep_terminal): Likewise - - * info/session.c (initialize_info_session): Add arg to make - clearing the screen conditional. Useful if we want to call - index_entry_exists() first before displaying anything. - Change all callers. - - * info/session.c (finish_info_session): New function. - - * info/session.c (dispatch_error): Change message to include info - about how to get help and how to quit. - - * info/info.c (index_search_p): New flag. - (--index-search): New option, like apropos, but search the indices - and display the first node found. - - * info/indices.c (do_info_index_search): New function, modified - from info_index_search to allow searching the index for a string - without prompting for it. - (info_index_search): Just call do_info_index_search. - (index_entry_exists): New function, to allow us to find out if - there is an index entry for a given string without actually - displaying anything. - - * info: New directory, containing source for GNU info browser. - - Tue Oct 19 00:14:33 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * src/octave-hist.cc (input_from_tmp_history_file): New global flag. - (do_edit_history): Protect and set it. - (do_run_history): Likewise. - * src/parse.y (func_def2): Use it to see that input is coming from - a temporary file. This means that we shouldn't exit when we're - done reading it, and we should treat it just as if the input were - coming from the keyboard. - - * variables.cc (force_global): Force aliasing so it will happen - even if the symbol record is undefined. - - * src/lex.l (lookup_identifier): Simplify - - * src/lex.l (reset_parser): Reset error_state here. - * src/octave.cc (main): Not here. - - Mon Oct 18 14:27:02 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tree-const.cc: Delete constructor for tree_constant from - String. - - * In src: tree.h, mappers.h, unwind-prot.h, parse.h, file-io.h, - arith-ops.h, tree-base.h, tree-const.h, g-builtins.h, - idx-vector.h, builtins.h, dynamic-ld.h, xdiv.h, xpow.h, - pr-output.h, input.h, symtab.h, utils.h: Avoid including files - unnecessarily. - - * In src: tc-inlines.cc, mappers.cc, variables.cc, arith-ops.cc, - tree.cc, tree-const.cc, g-builtins.cc, file-io.cc, idx-vector.cc, - tc-assign.cc, tc-index.cc, builtins.cc, dynamic-ld.cc, xdiv.cc, - xpow.cc, pr-output.cc, tc-extras.cc, input.cc, symtab.cc, - utils.cc: Sprinkle liberally with const. - - * In src: f-syl.cc, f-svd.cc, f-schur.cc, f-rand.cc, f-qzval.cc, - f-quad.cc, f-qr.cc, f-qpsol.cc, f-npsol.cc, f-lu.cc, - f-lsode.cc, f-lpsolve.cc, f-inv.cc, f-ifft.cc, f-hess.cc, - f-givens.cc, f-fsqp.cc, f-fsolve.cc, f-fft.cc, f-expm.cc, - f-eig.cc, f-det.cc, f-dassl.cc, f-colloc.cc, f-balance.cc: - Add const qualifier to tree-constant arg. - - Sat Oct 16 12:22:24 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * src/tree-const.h, src/tree-const.cc: Add const qualifier to - constructor arguments passed by reference. - Pass Complex arguments by const reference instead of by value. - - * liboctave/Matrix.h, liboctave/Matrix.cc, liboctave/ColVector.cc, - liboctave/RowVector.cc liboctave/DiagMatrix.cc: Pass Complex - arguments by const reference instead of by value. - - Wed Oct 13 14:13:29 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * src/utils.cc (decode_prompt_string): ctime returns time_t, which - might not be a long. - - * src/variables.cc (identifier_exists): Only return non-zero if - the name has a definition. - - * src/f-npsol.cc (npsol): Call error(), not message(), to print - error messages. - (linear_constraints_ok): Likewise. - (nonlinear_constraints_ok): Likewise. - - * src/f-qpsol.cc (qpsol): Don't try to create the linear - constraint object before checking array sizes. Wouldn't exception - handling be nice? - Call error(), not message(), to print error messages. - Check to ensure that the bounds on linear constraints are - vectors. - - * src/lex.l (lookup_identifier): Don't bind global variables - immediately in loops or conditionals, even at the top level. - - Sun Oct 10 8:48:00 1993 John Eaton (jwe@schoch.che.utexas.edu) - - * README.doc: New file. - * Makefile.in (doc-dist): New target. - * doc/Makefile.in (FORMATTED): New macro. - (doc-dist): New target. - - * src/tree.cc (tree_identifier::eval): Don't print anything if an - error is encountered. - (tree_simple_assignment_expression::eval): Likewise. - - * src/tc-assign.cc (do_matrix_assignment): Handle resizing - correctly when indices are (:,range), (:,matrix), (range,:), or - (matrix,:) and the lhs is empty or undefined. - - Tue Oct 5 04:02:37 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.76 released. - - * src/octave.cc (main): Print usage message if we are given more - than one extra argument on the command line. - Delay printing startup message until just before setting the toplevel - jump context. - - * src/lex.h (DO_COMMA_INSERT_CHECK): Delete unused macro. - - * src/lex.l (handle_identifier): New function. - ({IDENT}/{S}*=, {IDENT}{S}*): Use it instead of duplicating code. - (do_comma_insert_check): Use yyunput instad of returning original - character count. - Call directly instead of using DO_COMMA_INSERT_CHECK macro. - - Mon Oct 4 08:06:10 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.75.4. - - * src/tree-const.cc (tree_constant_rep::eval ()): Avoid calling - rows() and columns() for things like magic_colon. - - Sun Oct 3 19:39:33 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - Changes to add line and column info to run-time error messages: - - * src/tree.cc (tree_identifier, tree_prefix_expression, - tree_postfix_expression, tree_simple_assignment_expression, - tree_multi_assignment_expression, tree_colon_expression, - tree_index_expression): Modify constructors to allow line and - column information to be stored. - (abort_on_undefined): Delete (now) unnecessary static variable. - (all eval() functions): If error_state, return immediately. - (tree_matrix::eval ()): Call error and return tree_constant() - instead of jumping to top level on error. - (tree_identifier::parse_m_file ()): When starting to read an - M-file, initialize current_input_column to 1, not 0. - (tree_identifier::eval_undefined_error ()): Improve error message - with line and column info if it is available. Don't abort to top - level on errors. - (tree_function::traceback_error ()): New function. - (tree_function::eval ()): Don't jump to top level on errors. - Call traceback_error if there is an error evaluating the command - list. - - * src/tree.cc (tree_prefix_expression::eval_error ()): New function. - (tree_postfix_expression::eval_error ()): Ditto. - (tree_unary_expression::eval_error ()): Ditto. - (tree_binary_expression::eval_error ()): Ditto. - (tree_simple_assignment_expression::eval_error ()): Ditto. - (tree_multi_assignment_expression::eval_error ()): Ditto. - (tree_colon_expression::eval_error ()): Ditto. - (tree_index_expression::eval_error ()): Ditto. - - * src/tree.cc (tree_function::stash_function_name ()): New function. - * src/parse.y (FCN): Use it. - - * src/lex.l: Return line and column info for many (but not all) - tokens. - - * src/parse.y: Handle token values with the token class defined in - token.cc. - (check_end ()): New function. - (end_error ()): Improve error messages by including line and - column info. - - * src/arith-ops.cc (lots of functions): Don't jump to top level on - errors. - * src/tree.cc (tree_unary_expression::eval ()), - tree_binary_expression::eval ()): Handle error condition here. - - * src/gripes.cc (gripe_nonconformant): Add additional form of this - function to allow message to include dimensions. Change most - callers to use new form - - * src/octave.cc: Initialize column counter to 1, not 0. - (main): Reset error_state before evaluating each top level - command. - - * src/tree-plot.cc (tree_plot_command::eval ()): If error_state, - return immediately. - - * src/tree-const.cc (do_binary_op ()): Return tree_constant() instead - of jumping to top level on errors. - (do_unary_op): Likewise. - (tree_constant_rep::eval ()): If error_state, return immediately. - Convert 1x1 matrices to scalars. - - * src/tc-assign.cc (tree_constant_rep::do_scalar_assignment ()): - Don't jump to top level on error. - If there is an error while attempting to convert an undefined - variable to a matrix, don't suddenly create an empty matrix. - (tree_constant_rep::fortran_style_matrix_assignment ()): Check - return value of range_max_check() and don't jumpt to top level on - errors. - (tree_constant_rep::vector_assignment ()): Check return value of - index_check and don't jump to top level on errors. - (tree_constant_rep::check_vector_assign ()): Don't jump to top - level on errors. - (tree_constant_rep::do_matrix_assignment ()): Check return value - of index_check and don't jump to top level on errors. - - * src/tc-extras.cc (get_dimensions ()): Call error (sets error state) - but don't jump to top level on errors. - (fill_matrix): Return tree_constant() on error. - (identity_matrix): Likewise. - - * src/error.cc (error_state): New global variable, initialize to zero. - (error): Set it to one. - - * src/tc-index.cc (tree_constant_rep::valid_as_scalar_index ()): - Don't declare unused variable retval. - (tree_constant_rep::do_scalar_index ()): Return tree_constant() - instead of jumping to top level on error. - (tree_constant_rep::fortran_style_matrix_index): Don't jump to top - level on indexing or range errors. - (tree_constant_rep::do_vector_index ()): Likewise. - (tree_constant_rep::do_matrix_index ()): Likewise. - - * src/tc-inlines (range_max_check): Return -1 instead of jumping - to top level on error. - (index_check): Likewise. - - * src/utils.cc (check_dimensions): Call error, not warning, and - don't jump to top level. - - * src/tree-base.h (line_num, column_num): New data members for all - tree classes. - (line (), column ()): New virtual functions to access line and - column info. - - * src/lex.l (enum end_tok_type, enum plot_tok_type): Delete - declarations (now in token.h). - - * src/lex.h (YY_INPUT, YY_FATAL_ERROR, DO_COMMA_INSERT_CHECK, - TOK_RETURN, BIN_OP_RETURN): Move macro definition here, from - lex.l. Rename RETURN TOK_RETURN. - - * src/token.cc, token.h: New files that define a class for tokens - that includes line and column information. - - Wed Sep 29 11:15:12 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/octave.cc: Use GNU getopt to handle option parsing. - * src/getopt.h src/getopt.c src/getopt1.c: New files for GNU - getopt. - * src/Makefile.in: Add them to the appropriate lists. - - * src/utils.cc (raw_mode): Use the termios.h terminal driver - interface if it is available. - * configure.in: Check for termios.h - - * src/tree-plot.cc (tree_subplot_list::print (int, ostrstream&)): - If the data to be plotted is a string but it doesn't name a file, - try sending it to gnuplot directly. - - Tue Sep 28 16:06:42 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/QPSOL.cc (QPSOL::minimize (double&, int&, Vector&)): - Correct dimensions of work arrays, based on QPSOL source. - Pass ncon, which is max (1, nclin), not n, as the row dimension of - clin. - - * src/f-npsol.cc (linear_constraints_ok): Improve warning for the - case of constraints with zero dimensions. - (nonlinear_constraints_ok): Likewise. - - Mon Sep 27 01:20:50 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.75.3. - - * Makefile.in (dist): Make file permissions for distribution rw. - (binary-dist): Ditto. - (local-dist): Ditto. - - Sat Sep 25 15:29:20 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/pr-output.cc: Include stdio.h, for sprintf. - - * src/input.cc (octave_gets): Set octave_gets_line to NULL after - freeing it. - - * Version 0.75.2. - - * liboctave/Matrix.cc (Matrix::operator * (const ColumnVector&): - Correct dimension of return value. - (ComplexMatrix::operator * (const ComplexColumnVector&)): Ditto. - - Tue Sep 21 20:42:10 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/tree.cc (tree_identifier::assign (tree_constant&)): - Correctly handle case of hiding a function with a variable when - the variable has not been flagged as global. - tree_identifier::assign (tree_constant&, tree_constant*, int)): - Likewise. - - * src/variables.cc (force_global): When a variable is moved to the - global symbol table, mark it as global. - - * src/symtab.cc (symbol_record::symbol_record ()): Initialize - forced_global. - (symbol_record::clear_visible ()): Reset forced_global to zero. - (symbol_record::clear_all ()): Ditto. - (symbol_record::mark_as_forced_global ()): New function. - (symbol_record::is_forced_global ()): New function. - (symbol_record::alias ()): Also copy forced_global attribute. - - * src/symtab.h (symbol_record::forced_global): New private data - member, used to record when a variable has been explicitly - declared global. - - * src/lex.l (lookup_identifier): Look in current scope first. - - Mon Sep 20 03:15:52 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/parse.y, src/tree.cc, src/tree.h: Allow `for' command to - assign to an index expression, not just an identifier. - - * src/t-builtins.cc (builtin_clear (int, char **)): Don't delete - g_names twice. - - * src/symtab.cc (symbol_table::list (int&)): Make sure count is - initialized to zero. - (symbol_table::var_list (int&)): Ditto. - (symbol_table::fcn_list (int&)): Ditto. - - Sat Sep 18 04:06:42 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/lex.l, src/parse.y, src/parse.h: Use new global variable - past_plot_range to make gplot and gsplot smarter about - distinguishing plot ranges and literal matrices. - - Fri Sep 17 01:06:30 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.75.1 released. - - * src/f-qzval.cc: Include for DBL_EPSILON. - - * src/symtab.cc (symbol_record::save (ostream&, int)): Don't print - a warning for ans being undefined. Call warning to print the - message, and change the text to make it clearer. - (symbol_table::save (ostream&, int)): Don't crash if there aren't - any symbols to save. - - Thu Sep 16 00:21:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/t-builtins.cc (builtin_help): When trying harder to find - help for M-files, only insert the symbol into the global symbol - table if there really is an M-file of the given name in the path. - - Wed Sep 15 02:08:27 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.75. - - * src/Makefile.in (INCLUDES): Distribute defaults.h - (%.d: %.cc): Don't fail if we can't determine dependencies. - (DISTFILES): Include move-if-change. - - Tue Sep 14 21:23:20 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * scripts/perror.m: Use err, not info for fsolve section. - - Mon Sep 13 19:29:26 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/utils.cc (get_m_file_names): Call closedir(), not free(), to - dispose of directory structure. - - Sun Sep 12 19:07:36 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/tree-const.cc (tree_constant_rep::double_value): Rearrange - to avoid warning about reaching end of non-void function. - (tree_constant_rep::matrix_value): Ditto. - - * src/error.cc (panic): Declare volatile. - * src/utils.cc (jump_to_top_level): Declare as `void volatile', - not `volatile void'. - - * src/tree-const.cc (tree_constant_rep::complex_matrix_value): - Make it work even if the internal representation is really a real - or complex scalar or a real matrix. - (tree_constant_rep::complex_scalar_value): Make it work even if - the internal representation is really a real scalar. - - * src/f-syl.cc (syl): Delete ComplexMatrixLoad(). - Use complex_matrix_value(), not ComplexMatrixLoad(). - - * src/tree-const.cc (vector_of_empties): Renamed from empty_tree, - moved from f-syl.cc. - - * src/f-syl.cc (syl): Call vector_of_empties() instead of empty_tree(). - * src/f-qzval.cc (qzvalue): Ditto. - - * src/tree-const.h (tree_constant::is_empty): New inline function. - - * src/f-syl.cc (syl): Call is_empty instead of empty_arg. - * src/f-qzval.cc (qzvalue): Ditto. - * src/f-expm.cc (matrix_exp): Ditto. - - Thu Sep 9 22:40:16 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/Matrix.cc (Matrix::transpose): Make it work for empty - matrices. - (ComplexMatrix::transpose): Ditto. - - Mon Sep 6 04:56:50 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/tree-plot.cc (tree_subplot_list::print): If the plot data - is a string and it names a file, plot the data in the file. - - * src/octave.cc (execute_startup_files): Try harder to avoid - executing $HOME/.octaverc twice. - - * liboctave/DAE.cc (DAE::integrate (Vector&, Matrix&, Vector&)): - Add missing parameter in call to integrate() if no critical points - are specified. - - Sat Sep 4 16:18:49 1993 John W. Eaton (jwe@ward.che.utexas.edu) - - * src/octave.cc (execute_startup_files): Don't execute - $HOME/.octaverc twice. - - Mon Aug 30 11:25:12 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/t-builtins.cc (builtin_clear): Handle regular expressions. - - Fri Aug 27 07:25:32 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/RowVector.cc: - (RowVector::operator * (const ColumnVector& a) const): Fix brain-o. - - Wed Aug 18 00:29:09 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * list_primes.m: New M-file. - - * src/tc-index.cc (do_scalar_index): Handle two vector args of all - ones. - - Tue Aug 17 06:26:04 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/file-io.cc (process_printf_format): Use NINT for * modifier - argument. - - Mon Aug 16 19:30:09 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/mappers.cc: (arg (double)): Return pi for negative real values. - - Sun Aug 15 05:08:48 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/octave-hist.cc (mk_tmp_hist_file): New function, extracted - from do_edit_history. - (do_edit_history): Simplify using mk_tmp_hist_file. - (do_run_history): New function. - (edit_history_repl_hist): New function. - - * src/t-builtins.cc (builtin_run_history): New function. - - * src/builtins.cc (text_functions): Add run_history to the list. - - Fri Aug 13 16:04:09 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tzero.m: New M-file. - * abcdchk.m: New M-file. - * is_symmetric.m: Use tol and norm (A) to decide if A' is close - enough to A to be considered the same. - - Wed Aug 11 15:50:59 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.74.1. - - Merge in expm changes from A. S. Hodel : - - * f-expm.{h,cc}: New files. - * src/Makefile.in: Include them in the usual places. - * src/g-builtins.cc (builtin_expm): The new matrix_exp returns a - tree_constant by value. - Include f-expm.h - * src/tc-extras.cc (matrix_exp): Delete function. - - Tue Aug 10 20:06:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - Merge in qzval changes from A. S. Hodel : - - * f-qzval.{h,cc}: New files. - * src/Makefile.in: Include them in the usual places. - * src/g-builtins.cc (builtin_qzval): New function. - Include f-qzval.h - * src/g-builtins.h: Declare builtin_qzval. - * src/builtins.cc (general_functions): Add qzval to the list. - - * libcruft/eispack: New directory. - * libcruft/Makefile.in (SUBDIRS): Include it. - - Tue Aug 10 20:06:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * configure.in: Add libcruft/balgen/Makefile and - libcruft/eispack/Makefile to the list of files to frob. - - Tue Aug 10 20:06:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - Merge in syl changes from A. S. Hodel : - - * lyap.m: New M-file. - - * f-syl.{h,cc}: New files. - * src/Makefile.in: Include them in the usual places. - * src/g-builtins.cc (builtin_syl): New function. - Include f-syl.h - * src/g-builtins.h: Declare builtin_syl. - * src/builtins.cc (general_functions): Add syl to the list. - - Tue Aug 10 20:06:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/g-builtins.cc (builtin_balance): Fix typo in doc string. - - Tue Aug 10 20:06:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - Merge in givens changes from A. S. Hodel : - - * f-givens.{h,cc}: New files. - * src/Makefile.in: Include them in the usual places. - * src/g-builtins.cc (builtin_givens): New function. - Include f-givens.h - * src/g-builtins.h: Declare builtin_givens. - * src/builtins.cc (general_functions): Add givens to the list. - - * src/Makefile.in: (defaults.h) Quote substitutions. - Use %foo%, not @foo@ to mark substitution. - * src/defaults.h.in: Use %foo%, no @foo@ to do mark things to - substitute. - - * qzhess.m: New M-file. - - Tue Aug 10 20:06:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - Merge in balance changes from A. S. Hodel : - - * are, is_controllable.m, is_observable.m, is_square.m, - is_symmetric.m: New M-files. - - * Matrix.h (AEPBALANCE): New class. - (ComplexAEPBALANCE): New class. - (GEPBALANCE): New class. - * Matrix-ext.cc: Add init functions for balancing classes. - - * src/f-balance.{h,cc}: New files. - * src/Makefile.in: Include them in the usual places. - * src/g-builtins.cc (builtin_balance): New function. - Include f-givens.h - * src/g-builtins.h: Declare builtin_balance. - * src/builtins.cc (general_functions): Add balance to the list. - - * libcruft/balgen: New directory. - * libcruft/Makefile.in (SUBDIRS): Include it. - - Tue Aug 10 20:06:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * configure.in: Use AC_HAVE_LIBRARY to check for -lm. - - * src/Makefile.in (defaults.h): Quote substitutions. - - Mon Aug 9 13:30:07 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * README.NLP: New file. - * Makefile.in (DISTFILES): Distribute it. - - Sun Aug 8 19:05:48 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/move-if-change: New file. - * src/Makefile.in (DISTFILES): Distribute it. - (defaults.h): New rule. - (utils.o): Delete rule, since extra defines are no longer needed. - (INCLUDES): Distribute defaults.h.in. - * src/utils.cc: Include defaults.h to get DEFAULT_PAGER and - OCTAVE_HOME instead of depending on having them defined by the - compile command. - - * configure.in (DEFAULT_PAGER): Use AC_PROGRAMS_CHECK. - If we find less, add `-e' flag, so users won't have to type q to - quit paging. - - Sat Aug 7 13:34:06 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * f-*.cc: Renamed from tc-*.cc. (Use f- as the file prefix - because most of these functions are ultimately implemented in - Fortran, and, most importantly, it keeps them grouped together.) - * f-*.h: New files, for external declarations of visible functions - defined in f-*.cc. - * g-builtins.cc: Include them all. - * tree-const.h: Don't declare these functions as friends. - * Makefile.in: Cope with new names. - - * octave.cc (parse_and_execute (char *, int)): Don't declare static. - * octave.h: Declare it extern here. - * octave-hist.cc (do_edit_history): Use it here. - - * octave-hist.cc (do_edit_history): New function. - * t-builtins.cc (builtin_edit_history): Use it. - - * t-builtins.cc, t-builtins.h, builtins.cc: Rename edit to - edit_history. - - * octave-hist.cc (do_history): Print line numbers by default. - Allow quieter output with -q option. - - * g-builtins.cc (builtin_hess): Use DLD_BUILTIN macro to call hess. - * g-builtins.cc (builtin_schur): Likewise - - * tc-hess.cc (builtin_hess_2): Call hess with corrrect args. - * tc-schur.cc (builtin_schur_2): Likewise, for schur dude :-). - - * tc-fsqp.cc (builtin_fsqp_2): Fix typo. - - Thu Aug 5 23:14:01 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * input.cc (octave_read): Ensure that the last character in the - buffer is a new line. - - Wed Aug 4 19:25:54 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * parse.y (func_def2): Also warn if we encounter a function - definition with the same name as the script file we are reading. - - * tree.cc (tree_identifier::do_lookup): Always return NULL_TREE if - a script file was executed. - - Tue Aug 3 23:25:45 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * file-io.cc: Delete useless static keyword from File_info class - declaration. - * unwind-prot.cc: Likewise, for unwind_elem and saved_variable - classes. - * tc-rand.cc: Likewise, for enum rand_dist declaration. - * arith-ops.cc: Likewise, for enum Matrix_bool_op declaration. - * tree.cc: Likewise, for struct const_matrix_list declaration. - - Fri Jul 23 01:40:38 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * sysdep.cc (malloc_handler): Add missing arg to call to message(). - - Tue Jul 20 04:09:32 1993 John W. Eaton (jwe@june.che.utexas.edu) - - * Version 0.74 released. - - * doinstall.sh (version): Run `./octave -v' to get the version - number instead of grabbing it from version.h. - * Fail if we can't get a version number. - * Install ./octave, not src/octave. - - * Makefile.in (binary-dist): Don't depend on all. - * Link src/octave to ./octave. (Now that there's no source in - binary distributions, why have a src directory?) - - * file-io.cc (process_scanf_format): Rename local variable `i' to - `chars_from_fmt_str'. - * (process_printf_format): Likewise. - - * sighandlers.cc (can_interrupt): New global variable. - * (sigint_handler): Use it to decide whether to jump to top level. - * octave.cc (main): Set it after calling setjmp. - - * octave.cc (main): Declare saved_sigint_handler to be volatile. - - * tree.cc, tree-plot.cc, t-builtins.cc, pager.cc, g-builtins.cc, - file-io.cc: Terminate strstream strings with ends instead of just - using '\0'. - - * file-io.cc (process_scanf_format): Skip leading white space for - %s conversions. - * (fopen_file_for_user): Pass tree_constant arg by reference. - * (do_scanf): If doing fprintf, don't fail if first arg is a - string. - - Mon Jul 19 16:00:22 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * symtab.cc (pstrcmp): Declare to take char** args, not char*. - - Sun Jul 18 13:02:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * file-io.cc (return_valid_file): Pass arg by reference. - - * file-io.cc (fclose_internal, fgets_internal, fseek_internal): - Eliminate unnecessary casts to double. - - * file-io.cc (return_valid_file, fgets_internal, fopen_internal, - do_printf, do_scanf): Use is_string_type instead of doing the - comparison ourselves. - * g-builtins.cc (builtin_exist, builtin_getenv, - builtin_shell_command): Ditto. - * tc-colloc.cc (collocation_weights): Ditto. - * tc-extras.cc (eval_string, get_user_input): Ditto. - * tc-rand.cc (rand_internal): Ditto. - * tree-plot.cc (tree_subplot_list::print): Ditto. - * variables.cc (is_valid_function, octave_string_variable): Ditto. - - Thu Jul 15 02:29:03 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * doc/Makefile.in (TEXINFO): Distribute texinfo.tex too. - - * t-builtins.cc (load_variable): Warn if replacing local symbol - with global from file. - * Warn if variable is not marked as global in a file, but already - exists as a global symbol, then go ahead and load it as a global. - - Tue Jul 13 01:47:48 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * lex.l (lookup_identifier): Never alias to global here. - * tree.cc (do_lookup): Don't alias formal parameters to global. - * variables.cc (force_global): Likewise. - * symtab.cc (symbol_table::bind_globals): Likewise. - - * symtab.h (symbol_record::formal_param): New field. - * symtab.cc (symbol_record::mark_as_global_parameter): New function. - * (symbol_record::is_formal_parameter): Ditto. - * tree.cc (tree_identifier::mark_as_formal_parameter): Ditto. - * (tree_parameter_list::mark_as_formal_parameters): Ditto. - * parse.y (param_list): Use it to tag formal parameters. - * (func_def1): Ditto. - - * arith-ops.cc (DIVIDE_BY_ZERO_ERROR): On IEEE machines, allow - divide by zero errors to be suppressed. - * user-prefs.h (warn_divide_by_zero): New user preference. - * user-prefs.cc (warn_divide_by_zero): New function. - * builtins.cc (builtin_string_variables): Install it with default - value of true. - - * tree.cc (tree_multi_assignemnt_expression): Use tree_return_list - instead of tree_param_list. - * (tree_multi_assignment_expression:eval): Make it work. - - * tree.cc (tree_return_list): New class. Allow index expressions - and identifiers in return lists. - * (tree_matrix::to_return_list): Rename from to_param_list. - * parse.y (expression): Use it. - - * parse.y: Increment and decrement maybe_screwed_again instead of - just setting it to zero or one. - - Mon Jul 12 03:23:40 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tc-assign.cc (tree_constant_rep::do_matrix_assignment): Handle - case of lhs being of unknown type. - - * lex.l (check_for_garbage_after_fcn_def): Also ignore trailing - commas and semicolons. - - Sun Jul 11 00:08:20 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.73.1 released. - - * symtab.cc (symbol_record::alias): Also copy pointer to sv_fcn. - - Sat Jul 10 14:34:00 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (tree_function::eval (int, char **, int): New function. - - * symtab.cc (symbol_table::bind_globals): New function. - * tree.cc (tree_function::eval): Use it to associate local symbols - with global data. - - * symtab.cc (alias): Add optional parameter `force'. - - * Version 0.73 released. - - * pr-output.cc: Use D_NINT instead of NINT in some cases to avoid - overflow problems on systems that don't have IEEE Inf. - * mappers.cc (round): Likewise. Also avoids conversion of Inf to - INT_MAX on systems that do have IEEE Inf. - - * builtins.h: Remove definition of NINT. - * tree.h: Likewise. - * tree-const.h: Likewise. - - * utils.cc (NINT): Move function here and improve handling of - extreme values. - * (D_NINT): New function. - - * scripts/isempty.m: Don't require the number of rows and columns - to both be zero. - - Thu Jul 8 16:25:50 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.72.2. - - * configure.in: Do a better job of grabbing the last argument as - the target_host_type and avoiding setting it to things like - --prefix=/foo/bar - - * tree-const.cc (tree_constant_rep::save): Add default case for - mark_as_global switch to avoid warnings from gcc. - - * variables.cc (force_global): Cope with symbol table changes. - * tree.cc: (tree_identifier::do_lookup): Likewise. - * lex.l (lookup_identifier): Likewise. - * builtins.cc (install_builtins): Likewise. - - * symtab.cc, symtab.h: Massive internal rewrite. - - Wed Jul 7 02:18:01 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tc-assign.cc (tree_constant_rep::do_scalar_assignment): If rhs - is a scalar type, also handle case of lhs being of unknown type. - * Be sure to set the new type of the lhs. - - * tree-base.h: Don't include symtab.h. - * tree-const.h: Ditto. - - Tue Jul 6 22:47:28 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * parse.y (func_def2): Remove the function name from the top-level - symbol table if defining on command line (an M-file would never be - parsed if there was already an entry with the same name in the top - level symbol table). - - * parse.y (word_list_command): Allow clear without any arguments. - * tree.cc (word_list_command::eval): Handle word list commands - with no arguments. - - Mon Jul 5 14:43:30 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.72.1. - - * help.cc (operators): Document the double quote character. - - * lex.l (getting_help): Delete unused variable. - * (HELP_FCN): New exclusive start state. - * ({IDENT}{S}*): Set start state to HELP_FCN instead of setting - getting_help. - * ({IDENT}/{S}*=): Likewise. - - * symtab.cc (symbol_table::load): Delete unused function. - - * tree-const.cc (tree_constant::load): Return flag telling whether - the constant is global. - * t-builtins.cc (builtin_load): Handle global variables. - * (builtin_save): Likewise. - - * symtab.cc (symbol_record::save): Don't save builtin variables - (variables marked as eternal are assumed to be builtin). - - * symtab.cc (symbol_record::mark_from_global): New function. - * (symbol_def::undefine): Add optional argument to prevent - deleting symbol's definition. - * (symbol_table::undefine): If this variable has been marked as - defined from a global, call symbol_def::undefine with arg = 1. - * tree.cc (tree_identifier::do_lookup): If a local symbol is - defined from a global, mark it as such. - - * symtab.cc (symbol_record::define (symbol_record*)): Delete - unused function. - - * tree.cc (tree_identifier::do_lookup (int&)): Use operator= - instead of symbol_record::define(). - * variables.cc (force_global (char*)): Likewise. - - Sun Jul 4 01:27:44 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * symtab.cc (symbol_record): Define copy constructor and operator=. - - * builtins.cc (install_builtins): Make `i' and `j' read-only - functions. - - * symtab.cc (symbol_record::define): Respect read-only status of - variables and functions. - - Sat Jul 3 19:11:31 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * user-prefs.h (print_empty_dimensions): New user preference variable. - * user-prefs.cc (print_empty_dimensions): New function. - * builtins.cc (print_empty_dimesions): Make default value true. - * tree-const.cc (tree_constant_rep::eval): Use value here. - - * cond.m: Handle empty matrices. - * tc-det.m (determinant): Likewise. - * tc-inv.m (inverse): Likewise. - - * tc-hess.cc (hess): Use gripe_square_matrix_required instead of - calling error. - * tc-schur.cc (schur): Likewise. - - * builtins.cc (propagate_empty_matrices): Change default value to - true. - - * tree-const.cc (tree_constant_rep::eval): If a matrix has zero - rows or columns, also print the dimension along with the `[]' - symbol. - - * tree-const.cc (do_binary_op): If ok to propagate empty matrices, - go ahead and do the binary operation so that the result will have - consistent dimensions. - * (do_unary_op): Likewyse. - - * tc-extras.cc (get_dimensions): Don't force both nr and nc to - zero if one is. - * Matrix.cc, DiagMatrix.cc, ColVector.cc, RowVector.cc: Handle - matrices with zero dimensions in a more consistent fashion. - - Thu Jul 1 00:27:01 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * perror.m: New M-file. - - * LP.h, LP.cc: New interface for linear programmming. - * LPsolve.h LPsolve.cc: New files to implement linear programming - using lp_solve. - - * NPSOL.cc (minimize): Also return the vector of Lagrange - multipliers. - * tc-npsol.cc (npsol): Optionally return them. - - * QPSOL.cc (minimize): Also return the vector of Lagrange - multipliers. - * tc-qpsol.cc (qpsol): Optionally return them. - - * tc-qpsol.cc (qpsol): Make it work. - - Wed Jun 30 02:19:00 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * g-builtins.cc (builtin_lpsolve): New function. - * (builtin_qpsol): Ditto. - * builtins.cc (general_functions): Add them to the list. - - * tc-lpsolve.cc: New file. - * tc-qpsol.cc: Ditto. - * src/Makefile.in: Add them to the list of SOURCES and DLD_OBJECTS. - - Tue Jun 29 15:02:07 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/DAE.cc (integrate): If stop_time_set is false, reset - default value for info[3]. - * liboctave/ODE.cc (integrate): Likewise, reset default values of - iopt and itask. - - From Thorsten Ohl : - * config.guess: Add check for NeXT. - * configure.in: Add check for NeXT so that readline is configured - properly (really need to improve readline's configuration scheme). - * sysdep.cc (malloc_handler): New function for handling malloc - errors on NeXT systems. - - * octave.cc (main): Call sysdep_init before anything else. - - * sysdep.cc: New file for system dependent things. - - * octave.cc (initialize_globals): Only pass argv[0] since that's - the only thing that's used. - - Sat Jun 26 13:00:50 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (tree_builtin::eval (int, char**, int)): Don't panic if - called for something other than a text_fcn. - - * t-builtins.cc (builtin_cd): Rewrite to fix bogus memory - problems. - - Fri Jun 25 15:23:03 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * t-builtins.cc (builtin_cd): Don't delete value returned by - get_working_directory. - * g-builtins.cc (builtin_pwd): Likewise, and simplify. - - * utils.cc (make_absolute): Always create a new copy to return. - * utils.cc (change_to_directory): Don't delete pointer returned - from get_working_directory(). - * (file_in_path): Likewise. - - Thu Jun 24 16:48:38 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * lex.l ({IDENT}{S}*): Always insert a comma if the next token - doesn't look like some sort of operator, not just if - convert_spaces_to_comma is also true (it may have been turned off - by BIN_OP_RETURN). - - * tree-const.h (matrix_ptr): Delete function. - * tc-extras.cc (frobit): Delete function. - * (get_dimensions): New function. - * (identity_matrix): Completely rewrite. - * (fill_matrix): Likewise. - - Wed Jun 23 13:50:16 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Matrix-ext.cc (SCHUR::init): Also allow ord flag to be lowercase. - * (ComplexSCHUR::init): Ditto. - * tc-schur.cc (schur): Likewise. - - * Matrix-ext.cc (SCHUR::init): Declare sort as char, not char*, - and pass its address to Lapack. - * (ComplexSCHUR::init): Ditto. - - * Matrix-ext.cc (SCHUR::select_dig): Make static, and move ahead - of first reference in file. - * (SCHUR::select_ana): Likewise. - * (ComplexSCHUR::select_complex_dig): Likewise. - * (ComplexSCHUR::select_complex_ana): Likewise. - - * builtins.cc (install_builtins): Add `J' as an alias for `I'. - - * builtins.cc (install_builtins): Always create a new - tree_constant for each variable, since the symbol table doesn't - know how to share them. - - * tc-schur.cc (schur): Use warning and error functions instead of - writing directly to cerr. - * tc-hess.cc (hess): Ditto. - - * src/Makefile.in (DLD_OBJECTS): Include tc-schur.o and tc-hess.o. - * (SOURCES): Add tc-schur.cc tc-hess.cc. - - * Merge Schur and Hessenberg changes: - - Fri Mar 19 11:01:19 1993 R. Bruce Tenison (btenison@eng.auburn.edu) - - * src/builtins.cc: Changed schur definition to include one more - input. Also changed the help line description - * src/g-builtins.cc: Changed builtin_schur to accept two inputs - Also changed the information to explain ordered schur operation. - * src/tc-schur.cc Added extensions to the SCHUR and ComplexSCHUR - calls to pass extra paramater. Also added check for proper param. - * liboctave/Matrix.h: Modified declarations dgeesx and zgeesx to - accept address of select function. Modified class structures for - SCHUR and ComplexSCHUR to accept extra ordered schur param. - * liboctave/Matrix-ext.cc: Added extensions for the extra ordered - schur paramater. - - Wed Mar 17 15:23:14 1993 R. Bruce Tenison (btenison@eng.auburn.edu) - - * liboctave/Matrix-ext.cc (HESS and ComplexHESS): Added the - Hessenburg decomposition routines. - * liboctave/Matrix.h Added fortran lapack functions definitions - used in the Hessenburg procedure. - * src/g-builtins.cc (builtin_hess): Hessenburg Decomposition routine - added - * src/g-builtins.h (builtin_hess): Added extern definition. - * liboctave/Matrix.h Added classed HESS and ComplexHESS - * src/tree_const.h added defs for hess. - * src/tc-hess.cc (hess): New file for hess function. - - Tue Mar 16 10:46:32 1993 R. Bruce Tenison (btenison@eng.auburn.edu) - - * src/g-builtins.cc (builtin_schur): Schur Decomposition routine - added. - * src/g-builtins.h (builtin_schur): Added extern definition. - * liboctave/Matrix.h Added Classes SCHUR and Complex SCHUR, and - added defs for zgeesx and dgeesx (lapack schur decomp) - * liboctave/Matrix-ext.cc (SCHUR and Complex SCHUR): Ditto. - * src/tree-const.h added defs for schur. - * src/tc-schur.cc (schur): New file for schur function. - - Tue Jun 22 20:18:52 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * lex.l (check_for_garbage_after_fcn_def): New function - * parse.y (fcn_end_or_eof): If reading from an M-file, use it to - print warning about trailing garbage after the end of a function - has been found. - - Mon Jun 21 20:21:01 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tc-assign.cc (tree_constant_rep::assign): Handle case of - assignment to unknown constant too. - * (tree_constant_rep::do_scalar_assignment): Don't fail for - unknown_constant type. - * (tree_constant_rep::do_matrix_assignment): Likewise. - - * tree-const.cc (rows): Return 0 for unknown_constant type. - * (columns): Likewise. - - * tree.cc (tree_identifier::assign): Defer defining symbol until - assignment is successful. - * When creating a new dummy tree_constant to assign a value to, - leave it an unknown_constant type. - - * tc-assign.cc (do_scalar_assignment): If the right hand side - isn't a scalar, maybe try to resize instead. - * (do_matrix_assignment): For A(:,int) and A(int,:) cases, also - resize if left hand side is a scalar. - - * norm.m: Allow "fro" to work for scalars and vectors too. - - Sun Jun 20 01:17:03 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * NLConst.cc: New file. Move inline function definitions here - from NLConst.h. - - * Objective.cc: New file. Move inline function definitions here - from Objective.h - - * tree.cc (tree_word_list_command::eval): Call strsave for argv[0] - too, and delete argv before returning. - * (tree_builtin::eval): Likewise, for text functions with no - arguments. - - Sat Jun 19 01:37:09 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * octave.cc (parse_and_execute): Delete calls to delete_buffer - and switch_to_buffer, since that is taken care of by unwinding the - frame. - - Fri Jun 18 00:08:36 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (tree_matrix::eval): Delete useless direct = ptr->direct - and ptr = ptr->next statements from size-determining loop. - - * parse.y (opt_list): New rule. Replace all occurrences of list - with opt_list. - - * tree.cc: (tree_index_expression::eval (int, int)): Don't - complain if the index expression has an empty argument list. - - * octave.cc (initialize_globals): Check return value of - getenv ("HOME") against NULL, not the global variable - home_directory that we are trying to initialize. - - * tree.cc (tree_function::eval): Quick return if command list - is empty. - * parse.y (func_def3): Allow empty function bodies. - - Thu Jun 17 02:08:02 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (tree_while_command): Add constructor for case of - expression only. - * parse.y (statement): Allow empty command list for while commands. - - * parse.y (list): Allow empty commands in more places. This ups - the shift/reduce error count by 6, to 19. - - * octave.cc (execute_startup_files): Don't delete sd. - - * octave.cc (initialize_globals): Make copies of all strings. - * Store more humorous messages if things fail. - - Tue Jun 15 11:03:39 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tc-extras.cc (get_user_input): Finish incomplete change to get - input using readline. - - * tc-extras.cc (match_sans_spaces): New function. - * (get_user_input): Use it when checking to see if the user - entered a `quit' command. - - * liboctave/Makefile.in: Don't distribute Makedeps.in or include - Makedeps since we generate dependencies automatically now. - * configure.in: Don't create liboctave/Makedeps. - - Sun Jun 13 18:31:17 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/xdiv.cc (xdiv): Solve least-squares problem if system of - equations is not square, or if it is singular. - * (xleftdiv): Likewise. - - * liboctave/Matrix.h (Matrix::lssolve): New functions for - least-squares solutions of linear systems. - * (ComplexMatrix::lssove): Ditto. - - Sat Jun 12 19:07:07 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * libcruft/misc/xstopx.f (xstopx): Call dostop, not do_stop. - * libcruft/misc/dostop.c: Rename from do_stop.c - * (dostop): Likewise. - - * src/mappers.cc (xisnan (double)): Define even for systems that - don't have xisnan by always returning false. - * (xisnan (const Complex&)): Likewise. - - Fri Jun 11 19:54:58 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * doc/Makefile.in (install): Try harder to install info files. - - * libcruft/Makefile.in (install): Run ranlib on installed library. - * liboctave/Makefile.in (install): Ditto. - * readline/Makefile.in (install): Ditto. - - Thu Jun 10 00:15:41 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.72 released. - - * libcruft/*/*.f: Don't call xstopx with '' since some Fortran - compilers object to zero-length strings. - * libcruft/misc/xstopx.f (xstopx): Don't print empty strings or - single blanks. - * libcruft/misc/gen-d1mach.c (main): Likewise, for generated code. - - * test/Makefile.in (check): Set the Tcl variable OCTAVE_PATH. - * test/config/unix-octave.exp: Pass OCTAVE_PATH to OCTAVE using - the new -p flag. - - * builtins.cc (install_builtins): Use load_path instead of calling - default_path(). - - * octave.cc (load_path): New global variable. - * (initialize_globals): Initialize it here by calling default_path(). - * (main): Call initialize_globals() before getting command line - arguments. - * Accept new argument, -p PATH. - - * octave.cc (clean_up_and_exit): Don't print a message when Octave - exits. - - * doinstall.sh: Install M-files in $(libsubdir), not $(libdir). - * Use mkpath to create directories. - * Extract version from version.h. - - * Makeconf.in (version): Compute version just once. - - * (libsubdir): New directory that includes version number, for - installing M-files in (old versions of Octave may not be able to - understand new M-files). - - * src/Makefile.in, libcruft/Makefile.in, liboctave/Makefile.in, - doc/Makefile.in, readline/Makefile.in, scripts/Makefile.in - (install): Use mkpath to create directories. - * scripts/Makefile.in (install): Install M-files in $(libsubdir), - not $(libdir). - - * mkpath.c: New file, from Emacs-19. - * Makefile.in (mkpath): New rule. - * (all): Depend on mkpath - * (binary-dist): Distribute it. - - * config.guess: Update from bothner@cygnus.com. - - * lex.l ({QSTR}*[\n\']): Set start state to 0 or MATRIX, - depending on value of braceflag. - * ({DQSTR}*[\n\"]): Ditto. - - * tree.cc (tree_matrix::eval): Make sure that strings are nul - terminated. - - Tue Jun 8 16:08:10 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * octave.cc (clean_up_and_exit): Print `bye-bye' here. - * g-builtins.cc (builtin_quit): Not here. - - * pager.cc (terminal_columns): If screenwidth <= 0, return a - default value of 80 columns. - * (terminal_rows): Likewise for screenheight and a default of 24 - rows. - - * octave.cc (parse_and_execute): Don't fiddle with interactive - states since that screws paging output. - * tree.cc (parse_m_file): Likewise. - - * parse.y (input): For `simple_list error END_OF_INPUT' and - `error END_OF_INPUT' use ABORT_PARSE. - * Always accept `simple_list END_OF_INPUT'. - * Always abort for `END_OF_INPUT'. - - Mon Jun 8 13:55:41 1993 John C. Campbell (jcc@schoch.che.utexas.edu) - - * file-io.h (fopen_file_for_user): New function declaration. - - * file-io.cc (fopen_file_for_user): New function. - * (fgets_internal): If file doesn't exist open it for user, - also return (double) -1 on EOF - * (fseek_internal), (ftell_internal), (frewind_internal), - (do_printf): Ditto. - * (fopen_internal): Remove warn_on_not_open flag, limit warns. - - Mon Jun 7 00:28:13 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * file-io.cc (do_scanf): Use `type' wherever possible instead of - hardcoding name in messages. - * (do_printf): Ditto. - - * file-io.cc (fflush_internal): If flushing stdout, flush output - to the pager instead of calling fflush on a stream. - * (do_printf): Make fprintf (stdout, ...) exactly the same as - printf (...). - * (do_scanf): Make fscanf (stdin, ...) exactly the same as - scanf (...). - - * tc-extras.cc (get_user_input): Flush output to pager before - prompting for input. - - * libcruft/Makefile.in (DISTFILES): Distribute STOP.patch to show - the changes made to the Fortran sources. - - * libcruft/*/*.f: Replace STOP statements with calls to xstopx, so - that Fortran programs won't just quit on us. - - * libcruft/misc/xstopx.f: New file. - * libcruft/misc/do_stop.c: New file. - * libcruft/misc/Makefile.in (SPECIAL): Add do_stop.c to the list. - * (SPECIAL_DEPEND): Likewise, for do_stop.o. - * libcruft/Makefile.in (CRUFT_OBJ): Ditto. - - * lex.l (")"): Don't pop the top of the in_brace_or_paren stack if - it's empty. - - Sun Jun 6 00:41:28 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * liboctave/CollocWt.cc (init): Always compute Gaussian quadrature - weights instead of trying to compute Radau or Lobatto weights if - the endpoints are included. - * Really do compute roots and derivative weights corresponding to - Legendre polynomials if alpha and beta are zero, even if the - endpoints are included. - - Sat Jun 5 22:19:55 1993 John C. Campbell (jcc@schoch.che.utexas.edu) - - * builtins.cc (builtin_general_functions): Correct max arg counts - for fscanf, scanf, and sscanf. - - * g-builtins.cc (builtin_fscanf): Correct argument checks. - * (builtin_sscanf): Likewise. - - * file-io.cc (fopen_internal): Don't warn for opening new file. - - * file-io.cc (process_printf_format): Handle * for field width and - precision. - * Pass array of arguments and nargin instead of just one arg. - * (do_printf): Call process_printf_format() with new args. - - * file-io.cc (process_scanf_format): New function to handle scanf - dirty work. - * (do_scanf): New function. - - Sat Jun 5 14:09:41 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * lex.l (YY_FATAL_ERROR): Redefine here to keep from exiting on - fatal scanner errors. - - Fri Jun 4 16:35:25 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (tree_multi_assignment_expression::eval (int)): Check to - see if result is NULL before trying to use it. - - * tc-extras.cc (get_user_input): Call gnu_readline() to get input. - - Thu Jun 3 00:30:28 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * scripts/*.m: Convert single-quoted strings to use double quotes - since the manual says they are better. - - * Version 0.71.10. - - * doc/Makefile.in (DISTFILES): Distribute octave.info*. - - * Makefile.in (.fname): Delete target and move actions back to the - individual dist targets because this always needs to be done. - * (binary-dist): Strip src/octave. - - * doinstall.sh: New file, for binary distributions. - - Wed Jun 2 15:11:54 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Makefile.in (binary-dist): New target, just like dist, except - also distribute libcruft.a, liboctave.a, libreadline.a and - src/octave. - - * Makefile.in (.fname): New target. - * (links-for-dist): New target. - * (local-dist): Depend on .fname. - * (dist): Depend on .fname and use links-for-dist. - - * octave.cc: Move code to print startup message to just after - option processing so that any messages from startup files will - appear after the normal startup message. - - * utils.cc (get_site_defaults): New function. - * (OCTAVE_HOME): Provide default definition. - - * (SITE_DEFAULTS): Delete definition. - * octave.cc (execute_startup_files): Use get_site_defaults instead. - - * src/Makefile.in (utils.o): Define OCTAVE_HOME to be $(prefix) - here. - - * Makeconf.in: Don't define SITE_DEFAULTS or OCTAVE_M_FILE_DIR. - - * lex.l (do_string_escapes): Recognize `\"'. - - Tue Jun 1 01:28:20 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.71.9. - - * parse.y (maybe_convert_to_ans_assign): Greatly simplify. - - * file-io.cc (File_info): Convert from struct to proper class. - * (valid_mode): New function. - - * parse.y, parse.h, lex.l, tree-extras.cc (convert_to_ans_assign): - Delete unused variable. - - * builtins.cc (SEEK_CUR): Set to 1 to match (normal) system values. - * (SEEK_END): Likewise, set to 2. - - * statdefs.h: New file. - * Makefile.in (INCLUDES): Add it to the list. - * octave-hist.cc: Include it. - * variables.cc (identifier_exists): Likewise. - * utils.cc (is_newer): Likewise. - - * builtins.cc (SEEK_SET): New builtin varible. - * (SEEK_CUR): Ditto. - * (SEEK_END): Ditto. - * (stdin): Ditto. - * (stdout): Ditto. - * (stderr): Ditto. - - * lex.l (strip_trailing_whitespace): New function. - * ({IDENT}{S}*): Use it. - * ([^ \t\n\;\,]*): Fix to grab trailing spaces. - Use strip_trailing_whitespce() to delete it before returning. - - Mon May 31 21:00:00 1993 John C. Campbell (jcc@june.che.utexas.edu) - - * file-io.cc, file-io.h: New files to implement C-style file - handling and I/O functions. - * (do_printf): Move here from tc-extras.cc. - * (process_printf_format): Likewise. Also renamed from - process_format. - - Mon May 31 00:52:55 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * (tree_function::eval): Now that we can restore values, enable - code to give error for attempts to call functions recursively. - - * octave.cc (parse_and_execute): Use unwind-protect functions to - save and restore state. - * tree.cc (parse_m_file): Likewise. - * (tree_function::eval): Likewise. - * tc-extras (eval_string): Likewise. - - * unwind-prot.cc (saved_variable): New class to hold values of and - pointers to variables we want to restore. - * (restore_saved_variable): New function. - - * unwind-prot.cc (unwind_protect_int_internal): New function. - * (unwind_protect_ptr_internal): Ditto. - * (unwind_protect_var_internal): Ditto. - - * unwind-prot.h (unwind_prot_int): New macro. - * unwind-prot.h (unwind_prot_ptr): Ditto. - * unwind-prot.h (unwind_prot_var): Ditto. - - * variables.cc (symbol_out_of_date ()): Move here from tree.cc. - * (is_valid_function): Fix logic for finding a function - definition, including checking to see if the current symbol - definition is out of date. - - * tree-const.h (is_numeric_or_range_type): New function. - * tree-const.h (is_string_type): New function. - * tree.cc (tree_matrix::eval): Use !is_string_type() instead of - is_numeric_type() to decide that we've seen something other than - a string. - - * parse.y (maybe_warn_assign_as_truth_value ()): New function. - * user-prefs.h (warn_assign_as_truth_value): New preference. - * user-prefs.cc (warn_assign_as_truth_value ()): New function. - * builtins.cc (string_variables): Add it to the list. - - * tree.h (tree_simple_assignment_expression): Rename class from - tree_assignment_expression. - * (tree_assignment_expression): New class, derived from - tree_expression. - * (tree_simple_assignment_expression): Derive from new - tree_assignment_expression class, not tree_expression class. - * (tree_multi_assignment_expression): Ditto. - - Sun May 30 22:40:58 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/Makefile.in (%.d: %.cc): First remove target file, then - redirect into tmp file, and finally move tmp file to target file - only if creating tmp file was successful. - * liboctave/Makefile.in (%.d: %.cc): Ditto. - - Sat May 29 18:18:16 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (tree_constant *tree_multi_assignment_expression - ::eval (int print, int nargout)): New function. - * (tree_constant tree_multi_assignment_expression::eval (int print)): - Use it to do the real work. - - * tree.cc (tree_matrix::to_param_list ()): Also allow index - expressions as long as the argument list is missing. - - * parse.y (ans_expression): Now that assignments are just - expressions, don't convert expressions to assignemnts to `ans' if - they already are assignments. - * maybe_convert_to_ans_assign (tree *expr): New function to do the - real work. - - * tree.cc (tree_multi_assignment_expression:: - is_assignement_expression ()): Return 1. - - * tree-base.h (tree::is_index_expression ()): New virtual - function, returns 0. - * tree.cc (tree_index_expression::is_index_expression ()): Return 1. - - * tree.cc (tree_assignment): Construct from tree_index_expression - and a tree. - * (tree_index_expression::ident ()): New function. - * (tree_index_expression::arg_list ()): New function. - - * parse.y (variable): New rule, returns tree_index_expression. - - * parse.y: Rewrite assignment rules so that they are simply - expressions, not special cases. - * Rearrange fact and expression rules into expression (assignement - or simple expression), simple_expr (binary and postfix expressions - or secondary simple expression), and simple_expr1 (constants and - prefix expressions) rules. - * Delete fact rules. - - * parse.y: Make EXPR_EQ and EXPR_NE have the same precedence as - the other relational operators. - - Fri May 28 10:14:01 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * unix-octave.exp: Delete use of OCTAVEFLAGS. - - * test/config: New directory. - * test/config/Makefile.in: New file. - * test/config/unix-octave.exp: Rename from test/octave-init.exp. - * test/Makefile.in (SOURCES): Delete octave-init.exp from list. - * configure.in: Add test/config/Makefile to the list of Makefiles - to build. - - * utils.cc (send_to_plot_stream): Plot lines by default. - - Thu May 27 08:03:31 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * lex.l (\]): Don't pop the top of the in_brace_or_paren stack if - it's empty. - - * tree.cc (tree_matrix::eval): Make it work for single element - strings as well. - - * Version 0.71.8. - - * lex.l (next_token_is_postfix_unary_op): New function. - * ({SN}*\]{S}*): Use it as well, to decide whether to - insert a comma. - * ({S}+): Likewise. - * ({IDENT}{S}*): Likewise. - - Wed May 26 15:37:27 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * pr-otput.cc (pr_any_float): Use form() now that iostream - formatting bug has been fixed (libg++-2.3.1). - - Mon May 24 15:36:22 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (any_arg_is_magic_colon): New function. - * (tree_builtin::eval) Use it to avoid calling builtin functions - with `:' arguments. - - Sun May 23 14:07:19 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * g-builtins.cc (builtin_fprintf): Correct usage message. - - Fri May 21 10:35:40 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.71.7. - - * octave.cc (main): Always reset_parser() before every call to - yyparse(), not just on a longjmp return. - - * doc/Makefile.in (install): For now, don't try to install - anything. - - * lex.l ({S}+): Call next_token_is_bin_op() instead of - making the check in line. - * ({SN}*\]{S}*): Likewise. - * ({S}+): Likewise. - - * lex.l (looks_like_bin_op): New function. - * (next_char_is_space): Ditto. - * (next_token_is_bin_op): Ditto. - - * lex.l ({IDENT}{S}*): If we're in a brace context and the next - character is an open paren, set convert_spaces_to_comma to 0. - * tree-const.cc (convert_to_str): New function. - * g-builtins.cc (builtin_setstr): New function. - * builtins.cc (builtin_general_functions): Add it to the list. - - Thu May 20 17:56:15 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * doc/Makefile.in (SOURCES): Define to be all .texi files. - * (octave.info): Depend on $(SOURCES). - * (octave.dvi): New target. - * Don't distribute the man page. - - * lex.l ({S}+): If the next character is a plus or minus - followed by a space or tab, don't insert a comma. This makes - input like [1 + 1] == 2 and input like [1 +1] == [1 1]. - * ({SN}*\]{S}*): Likewise. - - * lex.l ({S}+): Use in_brace_or_paren and - convert_spaces_to_comma to decide whether to convert spaces to a - comma. - - * lex.l ({IDENT}{S}*): If we're in a brace context and the next - character is an open paren, set convert_spaces_to_comma to 0. - - * lex.l ({SN}*\]{S}*): Even if we're still inside some braces, - don't always push a comma onto the input. - - * lex.l ({SN}*\]): Also grab trailing spaces. - * ({IDENT}): Ditto. - - * lex.l (in_brace_or_paren): New stack to keep track of whether - the closest enclosing scope is a pair of braces or parens. When - we see a `[' or a `(', push a flag on the stack. When we see a - `]' or a `)', pop the top of the stack. - - * lex.l (convert_spaces_to_comma): New flag to control lexer behavior. - * (RETURN): Reset it to 1. - * (most other returns): Reset it to 1. - - * lex.l (BIN_OP_RETURN): New macro. Set convert_spaces_to_comma to 0. - * (most binary operators): Use it instead of RETURN. - - * lex.l (match_any): New function. - - Wed May 19 12:51:54 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Range.cc (nelem_internal): Don't allow ranges with more than - INT_MAX elements. Return -1 to indicate failure. - * tree-const.cc (tree_constant_rep::tree_constant_rep (double, - double, double)): Check nelem() to see if the range is valid. - - * pr-output.cc (all_elements_are_ints (Range&)): We only need to - check the base and the increment, not the limit too. - - * Range.cc (nelem_internal): Move function definition here from - Range.h and do a better job of determining the number of elements - in the range. - - Tue May 18 09:06:20 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.71.6. - - * tc-extras.cc (find_nonzero_elem_idx): Declare inner loop - iteration variables that are used inside later nested loops - in the outer enclosing scope to make this work for old and new - language definitions (see the ARM, chapter 19: "ANSI/ISO - Resolutions", 6.4/6.5: "The statement or statements immediately - controlled by the condition in a selection-statement, or an - iteration-statement introduce an implicit local scope". - * xpow.cc (elem_xpow (Matrix&, Matrix&)): Likewise. - - * tree.cc (tree_identifier::parse_m_file (char*, int)): Set - reading_script_file before calling parse_m_file and restore it - afterward. - - Mon May 17 20:04:54 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * octave.h (prog_name): Declare extern. - * (raw_prog_name): Ditto. - - * f2c-compat.sh (ctest.c): Also write a dummy MAIN_ since gcc 2.4 - doesn't seem to create an executable now if there are unresolved - externals, and the linker wants to see it on Suns. - - Thu May 13 01:06:18 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Makefile.in (DISTFILES): Include Makeconf.in. - - * configure.in: Set defaults for CFLAGS, CXXFLAGS, LDFLAGS, and - FFLAGS. - * Don't substitute CDEBUG, COPTIMIZE, FOPTIMIZE, or CXXOPTIMIZE. - * Use AC_PROGRAMS_CHECK instead of our own code for checking for a - Fortran compiler. - * Add Makeconf to the list of files to create. - - * src/Makefile.in (octave): Use ALL_LDFLAGS instead of LDFLAGS. - - * Makeconf.in (ALL_CFLAGS, ALL_CXXFLAGS, ALL_LDFLAGS): New macros. - * Allow the user to set CFLAGS, CXXFLAGS, and FFLAGS without - screwing things up. - * (CDEBUG, COPTIMIZE, FOPTIMIZE, CXXOPTIMIZE): Delete. - * Provide rules for making .o from .cc or .c files that use - ALL_CXXFLAGS and ALL_CFLAGS. - - * src/Makefile.in: Generate dependencies automatically using the - method described in the GNU make manual. - * liboctave/Makefile.in: Likewise. - - * All Makefile.in files: Set TOPDIR and include $(TOPDIR)/Makeconf. - * Makeconf.in: New file, for most configuration options. - - * tc-rand.cc (rand_internal): Return an empty matrix for rand (0). - - Wed May 12 01:32:36 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * octave.cc (clean_up_and_exit): Call close_plot_stream before - quitting. - - * Version 0.71.4. - - * pr-output.cc (octave_print_internal (ostrstream&, Matrix&)): - Handle wrapping columns neatly, respecting value of split_long_rows. - * (octave_print_internal (ostrstream&, ComplexMatrix&)): Ditto. - * (octave_print_internal (ostrstream&, Range&)): Ditto. - - * user-prefs.cc (split_long_rows): New preference variable and - function. - * builtins.cc (builtin_string_variables): Add to list with default - value == true. - - Tue May 11 02:20:43 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * pr-output.cc (pr_max_internal): Don't count Inf or NaN when - looking for max value. - * (pr_min_internal): Likewise, for min values. - - * pr-output.cc (pr_any_float): Merge pr_float and pr_imag_float. - - * pr-output.cc (any_element_is_inf_or_nan (Matrix&)): New function. - * (any_element_is_inf_or_nan (ComplexMatrix&)): New function. - * (all set_format functions (except Range)): Consider Inf and NaN - when computing field width (we'll either print "Inf" (possibly - with a sign) or "NaN"). - - * pr-output.cc (pr_float): Handle Inf and NaN. - * (pr_imag_float): Ditto. - - * pr-output.cc (set_format_style): Make format short set precision - to 3 and max field width to 8. - - * pr-output.cc (pr_float): Don't print a sign for -0.0. - * (pr_imag_float): Ditto. - - * pr-output.cc (all set_format functions): Return the actual field - width computed or 0 if free format. For complex, return both real - and imaginary field widths. - * Include pager.h for terminal_rows() and terminal_columns(). - - * pr-output.cc (pr_complex): If imaginary part is -0.0, print a - minus sign but convert the value to 0.0 before printing. - - * octave.cc (parse_and_execute (FILE *, int)): Don't use readline - to read commands from files. - * (parse_and_execute (char *, int)): Set reading_script_file - before calling get_input_from_file. - - * Version 0.71.3. - - * src/Makefile.in (deps): New target. - * Update dependencies using the output from running `make deps'. - - * pr-output.cc (set_output_prec_and_fw): New function. - * (set_format_style): Use it. - * (set_format functions): Use user_pref variables for precision - and field width. - - * variables.cc (octave_real_scalar_variable): New function. - * buitlins.cc (builtin_string_varaibles): Add output_precision and - max_field_width to the list (really need a separate list for - numeric values...). - * user-prefs.cc (set_output_max_field_width): New function to be - called when output_max_field_width changes. - * (output_precision): Likewise, for output_precision. - - * sighandlers.cc (pipe_handler_error_count): New global variable. - * (sigpipe_handler): Use it to keep from printing more than one - broken pipe message between prompts. - * (input.cc): Reset pipe_handler_error_count before printing the - prompt. - - Mon May 10 13:06:52 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * sighandlers.cc (sigpipe_handler): Issue warning and return - instead of aborting. - - * user-prefs.cc (all sv_* functions): Don't delete previous value - of a preference string if the new value is bogus. - - * user-prefs.cc (all sv_* functions and all functions that handle - user preferences): Return 0 for success, -1 for failure. - * symbtab.cc (symbol_record::define): Check return value of sv_fcn - and restore previous value on failure. - * symtab.h (sv_Function typedef): Change to return int, not void. - * builtins.h (sv_Function typedef): Ditto. - - Sun May 9 18:25:00 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * user-prefs.cc (all sv_* functions): Issue a warning if the user - gives us something that's not a string. - - Sat May 8 23:40:59 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * ColVector.cc (ColumnVector::min): Upper loop limit is len, not 0. - * (ComplexColumnVector::min): Ditto. - * RowVector.cc (RowVector::min): Ditto. - * (ComplexRowVector::min): Ditto. - - Fri May 7 18:41:29 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * pr-output.cc (set_format_style): New function, extracted from - builtin_format(). - * t-builtins.cc (builtin_format): Call set_format_style to do real - work. - - * pr-output.cc: New file for special formatted printing funcions. - * tree-const.cc (tree_constant_rep::eval): Use new functions. - - * user-prefs.cc (sv_pager_binary): New function. - * user-prefs.h (user_preferences) Add new field, pager_binary. - * builtins.cc (builtin_string_variables): Add PAGER to the list. - * utils.cc (default_pager): New function. - * Makefile.in: Define DEFAULT_PAGER for utils.cc, not pager.cc. - * pager.cc (get_pager): Delete function. - * Use user_pref.pager_binary instead of calling get_pager(). - - Thu May 6 11:05:06 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * pager.cc (pager_buf): Declare as static pointer to ostrstream. - * (initialze_pager): Delete old pager_buf and create new one for - each batch of output. This is needed because once str() is called - for pager buf, it will no longer grow. - - * pager.cc (maybe_page_output): Take care of deleting buffer after - str() is called. - * (flush_output_to_pager): Likewise. - * t-builtins.cc (builtin_ls): Likewise. - * (builtin_set): Likewise. - * (builtin_show): Likewise. - * tc-extras.cc (process_format): Likewise. - * (process_format): Likewise. - * tree-plot.cc (tree_plot_command::eval): Likewise. - - Wed May 5 10:45:39 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * g-builtins.cc (builtin_shell_command): Buffer characters with an - ostrstream and call maybe_page_output instead of writing directly - to cout. - * (builtin_warranty): Likewise. - * tc-extras (do_printf): Likewise. - * tree.cc (tree_identifier::eval): Likewise. - * (tree_assignment_expression::eval): Likewise. - * (tree_multi_assignment_expression::eval): Likewise. - * tree-const.cc (tree_constant_rep::eval): Likewise. - * t-builtins.cc (builtin_help): Likewise. - * (builtin_ls): Likewise. - * (builtin_who): Likewise. - - * user-prefs.h user-prefs.cc (page_screen_output): New preference. - * builtins.cc (string_variables): Add to list with default value - of true. - - * input.cc (octave_gets): If interactive, call flush_to_pager() - before prompting. - - * utils.cc (terminal_rows): Move to pager.cc - * (terminal_columns): Likewise. - * (get_pager): Likewise. - - * pager.h, pager.cc: New file to handle pager stuff. - * src/Makefile.in: Fix things to distribute and compile them. - - * libcruft/Makefile.in (CRUFT_OBJ): Strip $(srcdir)/ and convert - from .f to .o in two steps since some versions of GNU make strip - the leading ./ from the output of $(wildcard), causing my pattern - match to fail if compiling in the source tree. - - Tue May 4 09:13:52 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * symtab.cc (symbol_record::define (symbol_record *)): Delete old - name before saving new name. - * (symbol_record::document): Likewise, for var.help and fcn.help. - - * parse.y (ABORT_PARSE): Renamed from DO_ABORT. - - Mon May 3 01:00:04 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc: Define destructors for every class in tree.h. It - appears that it should always be ok to delete everything in a - command tree once we're done executing it. Function definitions - are still ok because the parser doesn't set global_command to the - tree_function we've built (that's saved somewhere in the symbol - table and shouldn't be deleted until we clear or redefine the - function). - - * utils.cc (pathstring_to_vector): Do memory management here so - callers don't have to. - * (default_path): Likewise. - - * utils.cc (make_absolute): Return current_path (not a copy) since - it is static. - * (get_working_directory): Return the_current_working_directory - (not a copy) since it is global. - - * utils.cc (cleanup_tmp_files): Delete filename when done. - - * parse.y: Replace output to cerr with calls to error() or warning(). - * DO_ABORT: New macro. Use it instead of YYERROR for errors that - we detect, and call yyerror since bison doesn't. - * (param_list1): Detect invalid parameter lists. - * (yyerror): Don't print pointer if it is past the end of the line. - - Sun May 2 13:03:09 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tc-extras.cc (process_format): Use ostrstream instead of a - fixed-size character string to buffer the format. - - * utils.cc (terminal_rows): Get info from readline variable - instead of hardcoded constants. - * (terminal_columns): Likewise. - - * utils.cc (maybe_page_output): New function. - * t-builtins.cc (builtin_help): Use it. - * (builtin_who): Ditto. - * Don't include procstream.h anymore since we no longer need it. - - * utils.cc (jump_to_top_level): Call run_all_unwind_protects () - before jumping back to the top level. - - Sat May 1 20:59:12 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * unwind-prot.cc unwind-prot.h: New files to implement memory - cleanup stuff. - * src/Makefile.in: Distribute them. - - * Version 0.71.2. - - * computer.m: Delete file. - * scripts/Makefile.in (computer.m): Add $(srcdir)/ prefix to - computer.in. - - Fri Apr 30 17:03:04 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Matrix.h (::row (int i)): New function for extracting a - row of a matrix where CLASS is one of Matrix, DiagMatrix, - ComplexMatrix, or ComplexDiagMatrix. - * (:: column (int i)): Likewise for columns. - * (::row (char *s)): Likewise, but selection is done with a - character string. Currently we accept anything beginning with `F' - or `f' to mean the first row and anything beginning with `l' or - `L' to mean the last row. - - Wed Apr 28 14:23:49 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * scripts/computer.in: New template file for computer.m. - * scripts/Makefile.in (computer.m): Generate a custom computer.m - file using $target_host_type. - * (clean): Delete computer.m. - - * configure.in: If last argument is not empty, use its value as - the TARGET. - * If we aren't given a TARGET, use config.guess to find one. - * Substitute target_host_type. - - * config.guess: New file, taken from gdb distribution. - * Makefile.in: Distribute it. - - * tree-const.cc (force_numeric): New parameter, force_str_conv to - allow us to ignore user preference on string to numeric - conversion. - * (make_numeric): Likewise. - - * tree.cc (tree_matrix::eval): Allow range constants in matrix - lists by simply converting them to matrices. - * Ditto for string constants. - - Tue Apr 27 17:21:12 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * utils.cc (smells_like_X11): Delete unneeded function. - * builtins.cc (install_builtins): Don't initialize - graphics_terminal since it's no longer needed. - - * utils.cc (pathstring_to_vector): Call tilde_expand on each - element of the path. - - * mappers.cc: Include float.h for DBL_MAX. - - Wed Apr 21 19:31:12 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * mappers.cc (xisnan (Complex&)): Rename from isnan. - * builtins.cc (mapper_functions): Use xisnan instead of isnan. - * (install_builtins): Special case for linux for geenerating - infinity and NaN. - - Mon Apr 19 14:10:55 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.71.1 released. - - * symtab.cc (char **sorted_list (int& count)) New function. - * (char **sorted_var_list (int& count)): Ditto. - * (char **sorted_fcn_list (int& count)): Ditto. - * t-builtins.cc (builtin_who): Check symbol count too. - - * utils.cc (send_to_plot_stream): Check is_open(), not just the - state of the stream. - * (close_plot_stream): Likewise. - - * procstream.cc, procstream.h: Rewrite, taking a hint from the GNU - fstream class. - - Sun Apr 18 17:40:54 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * t-builtins.cc (builtin_help): Don't call list_in_columns if - there isn't anything to list. - - Fri Apr 16 20:57:15 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Makefile.in (DISTDIRS): List dld here. - * (DISTSUBDIRS): Not here. - - Thu Apr 15 12:17:08 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.71 released. - - * scripts/*.m: Improve help messages for most files. - - * libcruft/Makefile.in: Make libcruft.a here. - * libcruft/Makerules.in: Not here. - - * PLOTTING: New file. - * Makefile.in: Add it to the list of files we distribute. - - * g-builtins.cc (builtin_shell_command): New function. - * builtins.cc (general_functions): Add it to the list. - - * procstream.h, procstream.cc (iprocstream): New class. - - * lex.l ({SN}*\]): Maybe insert a comma after reading a `]'. - - * t-builtins.cc (builtin_load): Do tilde expansion for the file name. - * (builtin_save): Ditto. - - Wed Apr 14 10:40:44 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (tree_function::eval): Until we have a proper call frame - unwinding scheme, comment out previous change. - - * tree.cc (tree_matrix::eval): Brain Transplant. - * (tree_matrix::length): New function. - - * tree-base.h (matrix_dir): Delete md_none, md_left, and md_up. - The only valid values are md_unknown, md_right, and md_down. - - Tue Apr 13 20:07:25 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.h (tree_function::call_depth): New member variable. - * tree.cc (tree_function::eval): Check it to make recursive - function calls fail (waiting for proper symbol table handling). - - * utils.cc (pathstring_to_vector): Don't prepend `.' here. We do - that already in default_path() if the user hasn't given us a - loadpath. - - * t-builtins.cc (builtin_help): Get help for M-files even if they - haven't been compiled yet. - * List M-files we find in the loadpath. - - * utils.cc (get_m_file_names): Split into two functions, add - parameter to specify whether .m suffix is deleted. - - * lex.l (grab_help_text): New function. - * (beginning_of_function): New global variable. - * (%|#): Call grab_help_text() if at beginning of a function. - * tree.cc (tree_identifier::document): New function. - * parse.y (func_def2): Use it. - * (help_buf): New global buffer for help text. - - Mon Apr 12 00:31:09 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * utils.cc (get_m_file_names): New function. - * variables.cc (make_name_list): Use it. - - * t-builtins.cc (list_in_columns): Put output on an strstream - instead of in a String. - * (builtin_help): Use an strstream instead of a String for buffering. - * (builtin_who): Likewise. - - * g-builtins.cc (builtin_keyboard): New function. - * builtins.cc (general_functions): Add to list. - - * tc-extras.cc (get_user_input): If the user enters `exit', - `quit', or `return', return instead of eval'ing the string. - * Don't abort on empty input. - * Add additional argument to handle debugging via new `keyboard' - function. If doing debugging, keep reading until we see `exit', - `quit', or `return'. - - * menu.m: New M-file. - - * New top level plotting functions: - - plot.m semilogx.m semilogy.m loglog.m polar.m - title.m xlabel.m ylabel.m grid.m bar.m - stairs.m mesh.m meshdom.m contour.m - - * New internal plotting functions: - - plot_int.m plot_2_s_s.m plot_2_v_v.m plot_2_v_m.m - plot_2_m_v.m plot_2_m_m.m polar_int.m - - * New utility functions: - - is_scalar.m is_vector.m is_matrix.m - - Sun Apr 11 11:10:29 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * t-buitlins.cc (builtin_ls): New function. - * builtins.cc (text_functions): Add it to the list under the names - `ls' and `dir'. - - Sat Apr 10 15:13:05 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * procstream.cc (oprocstream::close): Set badbit for stream after - it is closed. - - * utils.cc (close_plot_stream): New function. - * g-buitlins.cc (closeplot): New builtin function. - * builtins.cc (general_functions): Add to list. - - * lex.l (cant_be_identifier): New cruft to properly handle the - plot command's `using', `title', and `with' keywords. - - Fri Apr 9 09:38:25 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * configure.in: Warn if it looks like gnuplot isn't installed. - - * utils.cc (send_to_plot_stream): Check the user's preference for - the gnuplot binary. - - * user-prefs.cc (sv_graphics_terminal): Delete function. - * user-prefs.h (graphics_terminal): Delete variable. - - * tree-plot.cc (tree_subplot_using::print): Add argument to allow - checking of columns given in using command and use it. - * (tree_plot_command::eval): Change caller. - - * parse.y (title): Allow plot title to be any expression. - * tree-plot.cc (subplot_list): Likewise. - - * tree-plot.cc (tree_plot_command::eval): Don't let lusers try to - make 2D parametric plots, since that seems to crash gnuplot. - - * tree.cc (tree_identifier::parse_m_file): Don't try to stash - m-file name or time parsed if we were actually executing a script - file. - - * sombrero.m: New M-file to demonstrate 3D plotting. - - * parse.y (plot_options): Allow them to be specified in any order. - - * g-builtins.cc (builtin_purge_tmp_files): New function. - * builtins.cc (general_functions): Add to list. - - * g-builtins.cc, g-builtins.h (builtin_plot): Delete. - * builtins.cc (general_functions): Delete entry for builtin_plot. - - * t-builtins.cc (builtin_set): Check to see if the user is setting - up parametric plotting. - * tree-plot.cc (parametric_plot): New global variable. - * tree_const.cc (save_three_d): New function. - * tree-plot.cc (tree_subplot_list::print): Handle 3D plots. - - * Makefile.in: Delete everything having to do with distributing or - making gnuplot. - * configure.in: Likewise. - - Thu Apr 8 10:02:52 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * utils.cc (send_to_plot_stream): New function. Move declaration - of plot_stream to utils.cc and make static. - - * t-builtins.cc (builtin_set): New function. - * (builtin_show): Ditto. - - * lex.l: Handle set command. - * (doing_set): Yet another global variable to control behavior of - the lexer. - - * tree-plot.cc (tree_subplot_using::print): Print warning if scanf - format string is given. - - * parse.y (ranges1): Allow lower and upper bounds to be optional. - * tree-plot.cc (tree_plot_range::print): Make it work. - - * tree-plot.cc: New file, extracted from tree.cc. - - * sighandlers.cc (install_signals): New function. - * (*_handler): New set of functions to handle signals that would - otherwise cause us to abort. - * (my_friendly_exit): Call exit from most signal_handlers to clean - up tmp files, etc. - - * lex.l (do_string_escapes): Correctly handle '' quotes. - * Warn about unrecognized escape sequences but convert them to the - escaped character anyway. - * (EXPON): New definition. Use it and ? qualifier to shorten the - expressions for matching numbers. - * (ECHAR): New definition. Use it to correctly match - backslash-escaped characters in strings. - * Definitions: Surround multi-character definitions in ()'s to - avoid potential problems with things like {DEF}*. - * (QQ): Rename from DQ. - * (DQSTR): New definition for strings in double quotes. - * (DQSTRING): New start state. Recognizing a naked " puts us here. - * ("\n"): Turn off quote_is_transpose at the beginning of each line. - * Use error functions instead of writing messages directly. - * Don't include iostream.h -- we don't need it now. - * Do include error.h. - - Wed Apr 7 13:12:17 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * sighandlers.h, sighandlers.cc: New files for signal handling - functions. - * Makefile.in: Include them in the usual places. - * octave.cc (interrupt_handler): Move to sighandlers.cc and rename - to sigint_handler. - - * utils.cc (mark_for_deletion): New function. - * octave.cc (cleanup_tmp_files): New function. - * octave.cc (main): Register cleanup_tmp_files with atexit - (on_exit for sun). - - * Stack.h: Template based stack class converted from libg++ - genclass files. - * SLStack.h: Likewise. - * (SLStack::pop): Avoid apparent bug in SLList::remove_front. - - Tue Apr 6 10:01:52 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * lex.l (almost_match): New function. - * (plot_style_token): New function. - - * t-buitlins.cc: Include procstream.h instead of procbuf.h. - * (builtin_help): Simplyfy opening of process output stream. - * (builtin_who): Likewise. - - Mon Apr 5 13:48:20 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tc-extras.cc (tree_constant_to_scalar): Move to tree-const.cc - and make it a member function called to_scalar. - * (tree_constant_to_vector): Likewise. - * (tree_constant_to_matrix): Likewise. - - * procstream.h, procstream.cc: New files/classes that implement - an ostream to a process. Built on top of procbuf from libg++. - * src/Makefile.in: Add them to the lists of files/objects. - - Sat Apr 3 23:11:56 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Lots of clean-up changes to parse.y, tree.cc, tree.h, and - tree-base.h. Use more specific types than just for - nonterminals. This allows us to have fewer virtual functions in - the base class. Safer. Cleaner. Should have always been this - way... - - Fri Apr 2 10:04:32 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * parse.y, lex.l: Fix grammar to accept plot command very similar - to the gnuplot plot command. - - Wed Mar 31 13:11:56 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (eval_undefined_error): Until we can figure out how to - clear names without causing problems later on, just remove the - symbol name. - - * tree.h (tree_plot_command): New class. - * (tree_plot_limits): Ditto. - * (tree_plot_range): Ditto. - * (tree_subplot_list): Ditto. - * (tree_subplot_using): Ditto. - * (tree_subplot_style): Ditto. - - * tree-base.h (command_type): Add plot_command to list. - - Mon Mar 29 09:53:50 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * find_exec.c (ABSOLUTE_FILENAME_P): Also return true if the - given filename begins with `.'. - - * DAE.cc, DAE.h, DAEFunc.h, tc-dassl.cc: Make sure all calls to - dassl and the user-supplied functions have consistent argument - lists. - - * octave.cc (raw_program_name): New global variable to hold the - unprocessed argv[0]. This is to help dld find the absolute path - to the executing program. - * (initialize_globals): Pass in argc and argv from main. - Initialize raw_prog_name. - - * builtins.cc (general_functions): Correct help message for dassl. - * g-builtins.cc (dassl_usage): Likewise. - - * src/Makefile.in: Lots of changes to make things work with or - without dld. - * Makefile.in: Likewise. - * configure.in: Likewise. - - * dld: New directory, containing our copy of the dld sources. - - * dynamic-ld.cc, dynamic-ld.h: New files to implement dynamic - loading functions. - * src/Makefile.in: Add them to the distribution, compile them if - doing dynamic loading. - - Sun Mar 28 11:03:15 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * configure.in: When looking for Fortran compilers, check for fc - last to avoid confusion with some vendor's /bin/sh fc builtin. - * Handle new argument --with-dld. - - * g-builtins.cc (builtin_warranty): Add 1993 to list of copyright - dates. - - Sat Mar 27 17:58:23 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tc-extras.cc: Rename from tree-extras.cc. - * tc-colloc.cc, tc-dassl.cc, tc-det.cc tc-eig.cc, tc-fft.cc, - tc-fsolve.cc, tc-fsqp.cc, tc-ifft.cc, tc-inv.cc, tc-lsode.cc, - tc-lu.cc, tc-npsol.cc, tc-qr.cc, tc-quad.cc, tc-rand.cc, - tc-svd.cc: Split individual functions from tree-extras.cc. - - * g-builtins.cc (npsol_usage): Improve message. - * (dassl_usage): Likewise. - * (builtin_lsode): Likewise. - * (builtin_fsolve): Likewise. - * (builtin_quad): Likewise. - * builtins.cc (general_functions): Improve corresponding messages. - - * libcruft/fftpack: New directory for fftpack functions. - * libcrutf/fftpack/*.f: Add implicit double precision (a-h,o-z) at - the top of every subroutine. - - * tree-extras.cc (fft): Allow propagation of empty matrices. - * (ifft): Ditto. - - * Matrix.cc (Matrix::fourier): New function. - * (Matrix::ifourier): Ditto. - * mx-inlines (make_complex): New function. - * tree-extras.cc (fft): Use Matrix::fourier instead of doing real - to complex conversion here and calling ComplexMatrix::fourier. - * (ifft): Likewise, for ifourier. - - Sat Mar 27 17:56:59 1993 Fook Fah Yap (ffy@eng.cam.ac.uk) - - * Matrix.cc (ComplexMatrix::fourier): New function for fft. - * (ComplexMatrix::ifourier): New function for inverse fft. - - * builtins.cc (general_functions): Add fft and ifft to the list of - builtin functions. - - * g-builtins.cc (fft): New function. - * (ifft): Ditto. - - * tree-extras.cc (fft): New function. - * (ifft): Ditto. - - Sat Mar 27 13:53:39 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * octave.cc (usage_string): New file scope constant. - * (getopt_option_string): Ditto. - - * error.cc: Declare all arguments const since we don't change them. - - * utils.cc (print_str_or_null): Delete unused function. - * utils.h: Delete declaration. - - * tc-assign.cc, tc-index.cc, tc-inlines.cc, tree.cc, - tree-const.cc: More error message cleanups. - - * tree-const.cc (print_if_string): Don't write to cerr - unconditionally. - - Fri Mar 26 22:00:18 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-extras.cc (min): Avoid function calls as arguments for MIN. - * (column_min): Ditto. - * (max): Likewise, for MAX. - * (column_max): Ditto. - - * tree-const.h (NINT): Make it an inline function instead of a - macro. - - * tree-extras.cc (fill_matrix (tree_constant&, double, char*)): - Convert to scalar type for complex values too. - - * error.h (panic_impossible): New macro to be used in place of - assert (0) calls. - * All .cc files: Replace calls to assert (0) and abort () with - panic_impossible (). - - * Many .cc files:: Replace many instances of `cerr << ...' with - calls to gripe() functions. - - * gripes.h, gripes.cc: New functions for reporting common errors. - * Makefile.in: Include them in the usual places. - - Thu Mar 25 18:42:49 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Many .cc files:: Replace many instances of `cerr << ...' with - calls to error() functions. - - * error.h, error.cc: New functions for reporting errors in a - consistent way. - * Makefile.in: Include them in the usual places. - - Wed Mar 17 17:29:44 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * symtab.cc (symbol_table::save): New functions. - * t-buitlins.cc (builtin_save): Use new functions for saving - symbols. Handle case of saving all variables. - - * g-builtins.cc (builtin_pause): If one argument is given, pause - for that many seconds before continuing. Otherwise, wait for user - input. - - * symtab.cc (clear): Actually delete undefined symbol_records and - remove their names from the list. - - * lex.l (lookup_identifier): New function. Avoid putting global - names in the local symbol table. - * ({IDENT}): Use it - * ({IDENT}/{S}*=): Ditto. - - * tc-index.cc (do_scalar_index (tree_constant*, int)): Make - indexing like a([1,1,1,1]) work for scalars. GAG. - - Tue Mar 16 20:08:23 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * t-buitlins.cc (builtin_cd): Call tilde_expand (from readline) on - the argument. - - * lex.l (discard_until): Delete unused function. - * When reading numbers, abort if scanf fails to read a number that - we think it should. - * (IDENT): New macro to match identifiers. - * ([_a-zA-Z][_a-zA-Z0-9]*): Use the / operator for trailing - context and split into two cases instead of trying to do the - lookahead ourselves. - - * lex.l (do_comma_insert_check): Return the value yyleng had - before yyinput() is called. - * (DO_COMMA_INSERT_CHECK): New macro. This avoids the use of - unput() in do_comma_insert_check() since there seems to be a bug - in flex when calling unput() for '\n'. - - Note that this change is necessary if we want to use yyless() - since we cant call yyless() from outside of yylex(), because - Flex's yyless() is a macro that uses some variables local to - yylex(). - - Mon Mar 15 11:03:43 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (tree_matrix::eval): Undo part of previous change to - make a = [1,2;3,4]; [a,a;a,a] work again. - - * parse.y (input): Don't abort for simple_list followed by EOF. - - Sun Mar 14 14:38:56 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * RowVector.cc (RowVector::operator << ()): Insert a space between - each element. - * (ComplexRowVector::operator << ()): Ditto. - - * g-buitlins.cc (plot): Don't declare plot_prog or plot_term as - static, and don't delete them. - - * Matrix.h (all checkelem functions): Don't check for range errors - if NO_RANGE_CHECK is defined. - - Sat Mar 13 10:18:51 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Matrix.cc (ComplexMatrix::prod): Make it work. - - Thu Mar 11 00:08:09 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Matrix.h (ellum): Delete function. - * Declare and define new const elem, checkelem, and operator() - functions. - - * ColVector.cc, DiagMatrix.cc, RowVector.cc, Matrix.cc, ODE.cc, - LinConst.cc, FEGrid.cc, DAE.cc, Bounds.cc, FEGrid.h: - Change all callers. - * tree-const.cc, tree-extras.cc, xdiv.cc, xpow.cc: Ditto. - - * tree.cc (tree_matrix::eval): Improve row and column mismatch - checking -- [[1,2];[3,4]] works now, and [1,2;3,4,[5,6]] is - rejected. - * Reformat error messages to include `error:' prefix. - - Wed Mar 10 14:02:09 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * lex.l (do_comma_insert): New global variable. - * (reset_parser): Reset it. - * lex.l (do_comma_insert_check): New function. Call it wherever a - token can be directly followed by '['. - * (\[{S}*): Check the value of do_comma_insert. - - * lex.l ([_a-zA-Z][_a-zA-Z0-9]*): Only look for names in the - current symbol table. - - * parse.y (word_list_cmd): Special case to disallow use of clear - inside a fuction body. - - * parse.y (CLEAR): New %token. - * lex.l ([_a-zA-Z][_a-zA-Z0-9]*): Return it if token is "clear". - - * t-builtins.cc (builtin_clear): Allow global symbols to be - cleared. - - * symtab.cc (symbol_table::undefine): Clarify comment. - * (symbol_table::clear): Don't actually remove names from the - table, just force them to be undefined. - - * tree.h (tree_function): Delete unused data member `id'. - * tree.cc (tree_function constructors): Don't initialize id. - - Mon Mar 8 15:50:28 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.70 released. - - * src/Makefile.in: Update dependencies. - - * tree.h: Include stdio.h, for FILE. - - * gnuplot-build: For now, always define -DNOGAMMA. - * configure.in: Don't check for gamma(). - - * libcruft/Makerules.in: Don't use lib.a(obj.o) style dependencies - because it's too slow for large archives. - * liboctave/Makefile.in: Ditto. - - Sun Mar 7 16:33:39 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * octave.cc (parse_and_execute): Save and restore current column - number. Set input line and column number to zero. - * tree.cc (parse_m_file): Likewise. - - * tree.cc (tree_identifier::parse_m_file (FILE*, int*)): New - function. If a parse error occurs, ensure that the symbol is - cleared from the global symbol table. - * (tree_identifier::parse_m_file (char*, int): Use it. - - * tree.cc (tree_identifier::do_lookup): New function. - * (tree_identifier::eval): Use it. - - * utils.cc (decode_prompt_string): Really do use value of PWD. - - * user_prefs.cc (sv_loadpath, sv_ps1, sv_ps2, sv_pwd, - sv_gnuplot_binary, sv_graphics_terminal): New functions. - * (sv_graphics_terminal): Warn if terminal isn't valid, but set it - anyway (it's too late to do anything by the time the function is - called). - * In functions that use these variables: Use the value from the - user_pref structure instead of doing a symbol table lookup. - - * builtins.cc (builtin_string_variables): Add functions to call - for LOADPATH, PS1, PS2, PWD, gnuplot_binary, and graphics_terminal. - - * builtins.cc (PS2): New builtin_string_variables. Set default - value to "> ". - * input.cc (octave_gets): Use it instead of no prompt for - continued input. - - * parse.y (yyerror): Use line, column, file name, and text of - current input line to print better parse error messages. - - * lex.l (NEW_MATRIX): New exclusive start state. Need this to be - able to match \[{SN}* _and_ get secondary prompting right. - - * input.cc (octave_read): Keep track of current input line. - * tree.cc (parse_m_file): Save and restore current line number. - - * lex.l (all patterns): Keep track of current input column. - * (fixup_column_count): New function to deal with patterns that - match more than one line. - - * input.h, input.cc (current_input_line): Global pointer to - the text of the current input line. - - * parse.y, parse.h (input_line_number, current_input_column): New - global variables. - - * Almost all source files: Finish (for now, at least) the - reorganization we started for global variables. - - Wed Mar 3 14:49:59 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tc-assign.cc, tc-index.cc, tc-inlines.cc: New files, split out - from tree-const.cc. - - * Almost all source files: reorganize so that all global data is - declared in some include file or another. It probably wouldn't - hurt to do some more reorganizing to try to eliminate the amount - of global information... - - Tue Mar 2 20:49:35 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * variables.h, variables.cc: New files for handling things that - need symbol table information. Lots of files changed to include - variables.h, which now includes the extern declarations for the - symbol tables. The declarations of the symbol tables are now in - variables.cc, but they are still initialized in octave.cc. - - Mon Mar 1 11:35:03 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * builtins.h (builtin_string_variables): New field, sv_function, - holds a pointer to the function to call when a variable changes. - * builtins.cc (string_variables): Initialize sv_function field. - * (install_builtins): While installing builtin string variables, - stash sv_function and, if it isn't NULL, call it to initialize - global variable user_pref. - - * symtab.h (symbol_record): New field, sv_fcn, holds a pointer to - the function to call when a variable changes. - * symtab.cc (symbol_record::define): Call sv_fcn if it isn't NULL. - * symtab.cc (symbol_record::set_sv_function): New function. - - * utils.cc, parse.y, tree.cc, tree-extras.cc, tree-const.cc, - idx-vector.cc, builtins.cc, symtab.cc: Instead of calling - functions like do_fortran_indexing(), get the user's preference - from the global struct user_pref. - - * utils.h, utils.cc: Delete all functions like do_fortran_indexing() - that lookup user variables to find integer values. - * user-prefs.h, user-prefs.cc: Move them here, but instead of - returning values, set elements of the new global struct user_pref. - - * user-prefs.h, user-prefs.cc: New files for handling global - variables for user preferences. - * Makefile.in: Add them to the SOURCES and INCLUDES macros. - - * bsd-math/{acosh,asinh,atanh,log1p}.c: Declare all external - functions used in each file since they might not be in math.h. - * bsd-math/{scalb,copysign,logb,finite,drem,sqrt}.c: New files - from BSD's support.c. Only using scalb, copysign, logb, and - finite for now. - - * configure.in: Move tests for f77 closer to the top. - * Allow configuration to proceed even if we can't find a Fortran - compiler or f2c. - * Use `here' documents instead of multiple echos for multi-line - messages. - * Imrpoved checking for missing math functions. - - Sun Feb 28 17:45:53 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * test/Makefile.in (check): Try to avoid errors from cp. - - * mappers.cc (xfinite): Put test for HAVE_FINITE first. - - * libcruft/Makerules.in (LIBCRUFT_DEPEND): Use `=' in assignment - instead of `:='. - - * liboctave/Makefile.in: Make an explicit list of sources instead - of using $(wildcard). - - Thu Feb 25 20:18:12 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * bsd-math/copysign.c: New file. HP's don't have this? - * configure.in (LIBOBJS): Also check for copysign, log1p, and - log__L. For each missing user-level function, add -DFOO_MISSING=1 - to DEFS. - * src/missing-math.h: For each function we declare, check the - corresponding XXX_MISSING macro. Add declarations for copysign - and log1p. - - Wed Feb 24 20:39:32 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * lex.l ({SN}*\]/{S}*==): Change scanning pattern to - {SN}*\]{S}*/== in order to keep flex from generating any - backtracking code. - * ({SN}*\]/{S}*=): Likewise. - - Tue Feb 23 02:45:00 1993 John W. Eaton (jwe@ward.che.utexas.edu) - - * Version 0.69 released. - - * mappers.cc [_AIX && __GNUG__] : Provide a definition for - finite(), since whatever version we get from the system when using - g++ doesn't work (note that it does seem to work with gcc, xlc, - and xlC). - - * bugs.texi: Note that the math.h file from libg++ declares - finite() incorrectly for some systems. - - Mon Feb 22 02:04:16 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * configure.in: Look for runtest, but only believe that it exists - if we can also find expect. - * test/Makefile.in (check): Run tests in build directory, not - source directory. - - * tree.cc (reading_script_file): New global variable. - * (parse_m_file): Use it, and properly save and restore state so - that nested script files will work. - - * octave.cc (parse_and_execute): Properly save and restore state - so that nested script files will work. - * Don't close input file here. - - * input.cc (get_input_from (FILE*)): Don't declare mf_instream - static. Set mf_instream if reading and M-file or a script file. - - * parse.y: Minor changes to accomodate new lexer. - - * lex.l: Major overhaul in an attempt to do better string - handling. Looks much simpler and even seems to work. - * (do_string_escapes): New function. - - Sat Feb 20 00:40:32 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * g-builtins.cc (builtin_npsol): If npsol is missing, return empty - matrices for x and phi, and -1 for inform. - - * num2str.m: Use %g, not %f. - - * tree.cc (parse_m_file): Save and restor curr_sym_tab, because - yyparse may mess with it if it encounters a function definition. - * tree-extras.cc (eval_string): Ditto - * octave.cc (parse_and_execute): Ditto - - * Makefile.in (DISTDIRS): Add bsd-math to list. - - * src/Makefile.in (LIBOBJS): New macro, value set by configure. - (vpath): Add @srcdir@/../bsd-math for LIBOBJS. - (octave): Add $(LIBOBJS) to deps. - * gnuplot-build/Makefile.in: Likewise, for notgnuplot. - - * configure.in: Use AC_REPLACE_FUNCS to Check for acosh, asinh, - atanh, and gamma. - - * bsd-math: New directory for functions from the BSD math library - to use as replacements for missing functions. - - * parse.y (semi_comma, comma_semi): New rules. - (simple_list, simple_list1): Use them to allow empty statements. - (list, list1): Likewise. This allows empty commands as long as - the empty command doesn't contain any newlines. - - * parse.y (simple_assign): New rule, allows things like a = b = c. - (multi_assign): Extracted from assignment. - (assignment): Split into simple_assign and multi_assign. - (expression): Allow '(' simple_assign ')' to be an expression. - - * tree-extras.cc (eval_string): Return result of last expression - evaluated, to make things like `eval ('1+1;')*2' work. - - Fri Feb 19 19:45:21 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * g-builtins.cc (builtin_pwd): Use getcwd, which is defined in - unistd.h, instead of getwd, which seems to be a BSDISM. - * utils.cc (decode_prompt_string): Ditto. - * (get_working_directory): Ditto. - - * arith_ops.cc (DIVIDE_BY_ZERO_ERROR): Don't rely on - HAVE_IEEE_MATH, use HAVE_ISINF, HAVE_FINITE, and HAVE_ISNAN - instead. - * configure.in: Don't define HAVE_IEEE_MATH. - - * tree-extras.cc: Include stdio.h for FILE. - - Thu Feb 18 10:17:38 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (gobble_leading_white_space): New function. - * (is_function_file): New function. - - * (parse_m_file): Handle case of .m file being just a file of - commands to execute. - * Add optional argument to specify whether to execute a script - file. - * Return whether a script file was executed. - * (tree.cc, tree-extras.cc): Change callers. - - * octave.cc (parse_and_execute): new functions. - * (execute_startup_files): Use them. - - * lex.l (\n): Don't gobble new line. - - * num2str.m: Don't print '\n'. - - Wed Feb 17 21:59:55 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * mappers.cc: Simplify and correct finite, isinf, isnan functions. - * test/octave/t7.oct: New test for finite, isinf, and isnan - functions. - - * configure.in: Define HAVE_IEEE_MATH if isnan and either finite - or isinf is available. - - * builtins.cc (mapper_functions): Check HAVE_ISNAN instead of - HAVE_IEEE_MATH to determine whether or not to define isnan(). - - * mappers.cc: Don't check for HAVE_IEEE_MATH. Just check for - individual functions directly. - - * g-builtins.cc (npsol_usage): Correct usage message. - - * g-builtins.cc: Don't include unistd.h unless HAVE_UNISTD_H is - defined. - * t-builtins.cc: Ditto. - * utils.cc: Ditto. - - Tue Feb 16 00:35:44 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.68 released. - - * tree.cc (parse_m_file): Set reading_m_file before calling - get_input_from_file. - * Don't mess with current_infile. - - * input.cc (get_input_from_file): Set mf_instream if we are - reading an M-file. Otherwise, set rl_instream, (even if we aren't - really using readline -- this is just the `normal' input stream). - * Don't use current_infile. - * (octave_read): If not interactive, check reading_m_file to - determine where to look for input. - - * octave.cc (main): Don't use readline if we aren't interactive. - - * libcruft/misc/Makefile.in (local-dist): Make sure we don't - distribute a bogus d1mach.f. - (dist): Ditto. - - * tree-extras.cc (convert_to_ans_assign): New global variable. - (eval_string): Conditionally turn off assignment to `ans', for - get_user_input (). - * parse.y (ans_expression): Use it. - * lex.l (reset_parser): Reset it. - - * g-builtins.cc (builtin_input): New function. - * builtins.cc (general_fucntions): Add it to the list. - * tree-extras.cc (get_user_input): Do most of the real work. - - Mon Feb 15 01:14:40 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * t-builtins.cc (load_variable): New function. - (builtin_load): Use it. - - * Makefile.in (SUBDIRS): Add the test directory. - (check): Don't depend on all. - - Sat Feb 13 05:17:53 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-extras.cc (determinant, lu, matrix_exp, matrix_log, - matrix_sqrt): Handle empty matrix argument. - - * Matrix.h: Add constructors of the form Matrix (double a) and - ColumnVector (double a) to make it even easier to form single - element vectors. - - Fri Feb 12 03:27:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * octave.cc (main): Add -v option that will print the version - string and quit with a successful exit status. - - Thu Feb 11 00:46:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-extras.cc (eig): If given an empty argument, return enough - empty matrices to fill all possible LHS variables. - (qr): Likewise. - (svd): Likewise. - - * tree-const.cc (fortran_style_matrix_assignment): Do the right - thing if LHS is an empty matrix. - - * tree-extras.cc (qr): Handle empty matrix argument. - - * Matrix-ext.cc (QR): Make it work (really!). - (ComplexQR): Ditto. - - Wed Feb 10 00:56:31 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * xdiv.cc (xdiv (ComplexMatrix& a, ComplexMatrix& b)): Do - btmp.solve (atmp), like the other three xdiv's. Argh! - - * tree-extras.cc (eval_string): New function. Mostly works but - could be very fragile. We desperately need some sort of - `unwind-protect' scheme to avoid disaster when octave is - interrupted. - - * g-builtins.cc (builtin_eval): Instead of just aborting, call - eval_string if given one argument. - - * input.cc (octave_read): If get_input_from_eval_string is - nonzero, stuff current_eval_string into buf for flex to read. - - * tree-extras.cc (char *current_eval_string): New global variable - for eval(). - * (int get_input_from_eval_string): Ditto. - - * Update copyright notices to include 1993 (now that it's - February...). - - Tue Feb 9 14:35:08 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.67 released. - - * tree-extras.cc, tree-const.cc: Check the value of the variable - `propagate_empty_matrices' to decide what to do about empty - matrices in binary and unary operations and some function calls. - - * builtins.cc (builtin_string_variables): New global variable - `propagate_empty_matrices' with initial value `warn'. - * utils.cc (propagate_empty_matrices): New function. - - Mon Feb 8 19:46:51 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-const.cc: Finish changes required to make zero-one indexing - work for indexing and assignment. - - Sat Feb 6 15:54:10 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * builtins.cc (builtin_string_variables): New global variable - `prefer_zero_one_indexing' with initial value `false'. - * utils.c (prefer_zero_one_indexing): New function. - - Fri Feb 5 13:03:14 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * idx-vector.h, idx-vector.cc: Major overhaul to help with - zero-one style indexing. - * tree-const.cc (matrix_to_index_vector): Delete functions. - * (functions that use idx_vectors): Update for new idx-vector - stuff. - - * arith-ops.cc: Don't declare matrix_to_fortran_indices. - - * tree-const.cc (matrix_to_index_vector): Add new argument, - allow_neg_one, with default value of false. - * (matrix_to_fortran_indices): Add new argument, allow_zero, with - default value of false. - - * g-builtins.cc (builtin_find): New function. - * builtins.cc (general_fucntions): Add it to the list. - * tree-extras.cc (find_nonzero_elem_idx (tree_constant)): Do - most of the real work. - * tree-extras.cc (find_nonzero_elem_idx (const Matrix&): Do the rest. - * (find_nonzero_elem_idx (const ComplexMatrix&): Ditto, for complex. - - Wed Feb 3 00:54:01 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * configure.in (DEFAULT_DOT_O_FROM_DOT_F): If using f2c, quote - with single quotes instead of double quotes to avoid problems on - systems (like the NeXT) that strip \'s from double quoted strings. - - * utils.c (empty_list_elements_ok): New function. - * tree.cc (matrix_list::eval): Use it. - * builtins.cc (builtin_string_variables): New global variable - `empty_list_elements_ok' with initial value `warn'. - - * utils.cc (check_str_pref): New function. - * (resize_on_range_error, prefer_column_vectors, - warn_comma_in_global_decl, do_fortran_indexing, - implicit_str_to_num_ok, treat_neg_dim_as_zero, - ok_to_lose_imaginary_part, return_last_computed_value, - silent_functions, print_answer_id_name): Use it instead of - needlessly duplicating code. - - Tue Feb 2 16:58:02 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * lex.l ("'"): If it looks like we're defining a matrix, don't set - the start condition to be MAYBE_QSTRING. GAK. There has to be a - better way... - - * lex.l: Increment and decrement promptflag instead of just - setting its value. This should help get prompting right for - things like if [1,2;3,4] NL ... - * input.cc (octave_gets): In order to issue a prompt, Require - propmtflag to be greater than zero, not just nonzero. - - * tree.cc (tree_if_command): Allow matrices as the expression to - test. Unlike Matlab, a complex value is false only if both the - real and imaginary parts are 0. - * tree.cc (tree_while_command): Ditto. - - * tree.cc (tree_for_command): Allow matrices and complex values - in the expression. For matrices, assign each column in turn to - the dummy variable. - - * Matrix-ext.cc (qr): Make it work. The LAPACK book gags me again! - - * xdiv.cc: When computing right division with complex matrices, - use hermitian() instead of transpose(). - - * lex.l: Return IMAG_NUM for a numeric constant followed by - [iIjJ], but don't allow spaces between the numeric constant and - the letter (it causes problems inside `[]' where spaces matter... - - Mon Feb 1 17:15:19 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree_extras.cc (rand_internal): Make the random number generator - give us a different sequence every time we start octave unless we - specifically set the seed. - - Thu Jan 28 00:10:24 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.66 released. - - * configure.in: Define PLOTLIB in addition to adding -DUNIXPLOT to - DEFS if we find -lplot, and call AC_SUBST for PLOTLIB. - - * QP.cc: Define constructors here. - * QP.h: Not here. - - * QP.cc (All constructors that are given H): Force H to be - symmetric. - * (make_h_symmetric): New function. - - Wed Jan 27 01:35:53 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * arith-ops.cc (do_unary_op): Do the right thing for complex - logical not operator. - * Matrix.cc (ComplexMatrix::operator ! (void)): Return Matrix - instead of ComplexMatrix. - * mx-inlines.cc (not (Complex *d, int len)): For each element of - d, return (d[i] == 0.0), not (d[i] != 0.0), and return it as a - pointer to double, not Complex. - - * configure.in: Check for libcruft/qpsol/qpsol.f. - * Create Makefile in libcruft/qpsol. - - * libcruft/qpsol: New directory. Copy QPSOL sources here. - * libcruft/qpsol/Makefile.in: New file. - * libcruft/qpsol/README.MISSING: New file. - * libcuft/Makefile.in: Include qpsol in list of directories to - make. - - * QPSOL.h, QPSOL.cc: New file for solving QPs with Gill and - Murray's QPSOL. - - * QLD.h, QLD.cc: Delete all minimize functions except - Vector minimize (double&, int&). - - * QP.h: Declare minimize functions virtual. - * (Vector minimize (double&, int&): Declare as a pure virtual - function. - - * QP.cc: New file to implement generic minimize functions. - - Tue Jan 26 00:27:13 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * lex.l: Recognize numbers of the form .{digits}E{digits} and - .{digits}E[+-]{digits} - - * lex.l: Recognize .\ as ELEFTDIV. - * parse.y: Handle ELEFTDIV. - * tree.cc (tree_binary_expression::eval): Handle el_leftdiv. - - * arith-ops.cc (do_binary_op): Handle element by element left - division. Fix some errors in element by element right division. - - * tree-base.h (enum expression_type): Add el_leftdiv. - - * Version 0.65 released. - - * tree-const.cc (tree_constant_rep::eval (tree_constant *args, int - nargin, int nargout, int print)): Fix another brain-o in making - recursive call.s - - * src/Makefile.in: Complete changes for CXX instead of C++ make - variables. - - * tree-const.cc: For assignment and indexing functions, treat - complex scalars and matrices in the same branch of the switch as - real scalars and matrices -- the double_value() and matrix_value() - functions take care of checking to see if it's ok to lose the - imaginary part. - - * tree-const.h (tree_constant_rep::is_numeric_type): New function. - * tree-const.h (tree_constant::make_numeric functions): Use it. - - * tree-const.h (tree_constant::make_numeric functions): Return - *this for complex constants too. - - Mon Jan 25 18:31:06 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-extras.cc (Matrix min (Matrix&, Matrix&)): Loop over nc and - nr, not nr and nr. - * (Matrix max (Matrix&, Matrix&)): Ditto. - - * tree-const.cc (tree_constant_rep::mapper): Fix brain-o in making - recursive call. - - Sun Jan 24 20:05:39 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * configure.in: If using f2c, explicitly check for -lf2c. If it's - not found, look for -lF77 and -lI77. If a suitable combination - isn't found, print a warning. - - * src/Makefile.in liboctave/Makefile.in: GNU Make 3.63 uses CXX - and CXXFLAGS instead of C++ and C++FLAGS. Fix things so that 3.63 - will work without sacrificing compatibility with earlier versions. - - * tree-const.cc (tree_constant_rep::diag (tree_constant&)): Fix - brain-o in forcing argument to be numeric. - - Fri Jan 22 15:03:42 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * octave.cc (interrupt_handler): Declare to take int argument. - - * NPSOL.cc (npsol_objfun): Delete leftover debugging message. - - Thu Jan 21 14:28:24 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * configure.in: Check version of gcc and issue a warning if it - looks like 1.something. - * Check for g++. Issue a warning if it is missing or if it is - there but it looks like verion 1.something. - - * flibs.sh, f2c-compat.sh: Change file permission to 755 to avoid - problems if the uid of the installer is different from the uid of - the owner of the files. - - Wed Jan 20 04:18:49 1993 John W. Eaton (jwe@june.che.utexas.edu) - - * libcruft/Makerules.in (@DOT_O_DOT_F_C[1234]@): Patterns deleted. - * configure.in: Do multiple line sed substitutions the right way. - - Tue Jan 19 14:50:50 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * configure.in: Use new AC_WITH to accept --with-f2c instead of - --use-f2c. - * Use new AC_HAVE_LIBRARY to find -lplot. - - * flibs.sh: Actually avoid including duplicate -lflags. - * Use test, not `['. - - Sun Jan 17 16:57:02 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Matrix.h: Declare operator+ and operator- functions for vectors. - * RowVector.cc: Define half of them. - * ColVector.cc: Define the other half. - - Fri Jan 15 03:00:46 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/Makefile.in (install): Include version number in name of - installed binary and make a link to $(bindir)/octave. - - * Version 0.64 released. - - * t-builtins.cc (builtin_clear): Don't allow the user to clear - global symbols by name. If he tries, issue a warning. - - * tree.cc (tree_identifier::eval_undefined_error): Don't clear - undefined symbols from the global or local (function) symbol - tables. - - Thu Jan 14 02:10:20 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (tree_function::eval): Save old and set current symbol - table context, so eval_undefined_error() doesn't wipe out top - level symbols. - - * Version 0.63 released. - - Wed Jan 13 13:16:56 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Nearly every .h and .cc file: Add interface and implementation - #pragmas for G++ in hopes of making smaller objects with -g. - - * tree-const: Properly handle assignments like A(:) = RHS when - do_fortran_indexing is true. - - * g-builtins.cc (builtin_eig): Correct usage message. - - * tree-const.cc (tree_constant_rep (ComplexDiagMatrix&)): Create - and initialize a new complex_scalar. Don't just try to copy the - value... - - * Matrix.h: Declare new fill functions for diagonal matrices. - * DiagMatrix.cc: Define them. - - * Matrix.h: Declare map functions for row and column vectors. - * RowVector.cc: Define them. - * ColumnVector.cc: Likewise. - - * CollocWt.h: Declare data protected instead of private. - * CollocWt.cc (CollocWt::CollocWt (const CollocWt&)): Fix brain-o. - - * lex.l: Return IMAG_NUM for a numeric constant followed by - [ \t]*[iIjJ]. - - * parse.y (IMAG_NUM): New token. - * (fact): Recogize IMAG_NUM and convert its value to a complex - constant. - - * Version 0.62 released. - - * Makefile.in (local-dist): Include -local in tar.Z filename. - * (split-local-dist): New target. - * (dist): Don't depend on newversion. - * (local-dist): Ditto. - - * tree-extras.cc (npsol): If the first argument isn't a vector, - print an error message and return. - - * tree.cc (tree_matrix::eval): Always set prev_row_total and - prev_column_total when starting out. - - * octave.cc (main): Don't try to detect signal handler failures, - but do call signal() to set up the interrupt handler. - - Tue Jan 12 19:59:33 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-extras.cc (npsol): Fix brain-o in checking length of bounds - vectors. - - Mon Jan 11 20:32:24 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-extras.cc (set_rand_seed): New function. - (force_to_fit_range): New function. - (current_seed): Really return current seed. - (rand_internal): Allow the user to actually set the seed for the - random number generator. - - Sun Jan 10 16:46:06 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.61 released. - - * builtins.h, builtins.cc: Rename from builtin-fcns.h, - builtin-fcns.cc (too long for Linux/SysV). - - * mappers.cc (xisinf): For non-IEEE machines, consider DBL_MAX to - be infinite. - - Fri Jan 8 09:15:57 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * gnuplot-build/Makefile.in (x11targets): Don't worry about - checking HAVE_X11_X_H. - - * configure.in: Check for gamma and lgamma for gnuplot. - - * gnuplot-build/Makefile.in (Makefile.X11): Only move Makefile to - ../Makefile.X11 if xmkmf succeeds. - - * gnuplot-build/Makefile.in (x11targets): Check to see that XMKMF - is set *and* that Makefile.X11 exists. - * If making notgnuplot_x11 with Makefile.X11 fails, try again with - Makefile. - - * gnuplot-build/Makefile.in: Use @PLOTLIB@ in definintion of LIBS. - * Don't define UNIXPLOT in TERMFLAGS. - * Don't define LN_S; it isn't used anywhere, and configure doesn't - give it a value. - - * configure.in: Check for closepl(). If found, define UNIXPLOT, - and substitute -lplot for @PLOTLIB@. - - * arith-ops.cc (DIVIDE_BY_ZERO_ERROR): New macro. On systems that - have IEEE math, give a warning but also go ahead and divide by - zero. On systems that don't have IEEE math, just give an error - message and return an undefined tree_constant (it would probably - be possible to handle this so that it works the same everywhere, - but I'm not sure it's worth the effort...). - - * builtin-fcns.cc (install_builtins): On systems that don't have - IEEE_MATH, define Inf to be MAX_DBL, but don't define NaN at all. - - * configure.in: Check for finite, isnan, and isinf. - * Set HAVE_IEEE_MATH if we find finite and isnan. - - * builtin-fcns.cc (install_builtins): Use HAVE_IEEE_MATH instead - of IEEE_MATH. - * mappers.cc: Check HAVE_IEEE_MATH and HAVE_ISINF macros rather - than checking system type. - - * graph3d.c (hidden_line_plot): Declare dy and y as double, not - float, since VERYLARGE can be DBL_MAX. - - * lsoda.f, lsodar.f, lsodes.f, lsodi.f, lsoibt.f, stoda.f, - stodi.f, zrotg.f, sdot.f: Remove unused files. - - * texas_lotto.m: Renamed from win_texas_lotto.m to keep the - filename less than 14 characters. - - Thu Jan 7 15:45:29 1993 John W. Eaton (jwe@june.che.utexas.edu) - - * utils.cc: Declare ioctl extern "C". - - * tree.cc: Include stdio.h to be sure FILE is defined (apparently - not required by older versions of GNU iostream library). - * t-builtins.cc: Likewise. - * g-builtins.cc: Likewise, but for tmpnam. - - * tree-const.h (rand_internal): Rename from rand to avoid - conflict with standard library rand (a macro in Linux). - * tree-extras.cc (rand_internal): Fix function definition. - * g-builtins.cc (builtin_rand): Call rand_internal instead of rand. - - * octave.cc (main): Don't try to detect signal handler failures. - What's the proper way to do this if RETSIGTYPE is void? - - Tue Jan 5 08:14:29 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (tree_matrix::eval): When adding a matrix down or to the - right, column or row dimension mismatches are always errors. - - Mon Jan 4 04:58:55 1993 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.60 released. - - * xdiv.h, xdiv.cc: New files for Octave-specific matrix division - stuff. - * src/Makefile.in (INCLUDES, SOURCES, OBJECTS): Add xdiv stuff. - - * arith-ops.cc: Include xdiv.h. - - Sun Jan 3 12:24:04 1993 John W. Eaton (jwe@ward.che.utexas.edu) - - * gnuplot-build/Imakefile.in (notgnuplot_x11): In the compile - command, put source file before libraries. - - * libcruft/misc/Makefile.in: Don't use -O to compile gen-dimach.c. - - Thu Dec 31 00:45:50 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-extras.cc (matrix_sqrt): Don't create D until it is really - needed. - * (matrix_log): Ditto. - * (matrix_exp): Ditto. - [this should really be just one function instead of three...] - - * g-builtins.cc (builtin_sqrtm): New function. - * builtin-fcns.cc (general_fucntions): Add it to the list. - * tree-extras.cc (matrix_sqrt): Do the real work. - - * Makefile.in: Distribute INSTALL.OCTAVE and configure.in. - * (INSTALL.info): Make ../INSTALL.OCTAVE, not ../INSTALL. - - * doc/Makefile.in: Make ../INSTALL.OCTAVE, not ../INSTALL. - - * INSTALL.OCTAVE: Rename from INSTALL. - Refer to INSTALL for more info. - - * INSTALL: Copy from autoconf distribution. - Refer to INSTALL.OCTAVE for more info. - - * octave.cc (main): Remove leading blank line from startup message. - * Don't print it everytime the user types C-c... - - * xpow.cc: Finish off remaining cases. - - * tree-extras.cc (process_format): New function. - (do_printf): Use it. - - Wed Dec 30 00:43:14 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.56. - - * g-builtins.cc (builtin_logm): New function. - * builtin-fcns.cc (general_fucntions): Add it to the list. - * tree-extras.cc (matrix_log): Do the real work. - - * g-builtins.cc (builtin_expm): New function. - * builtin-fcns.cc (general_fucntions): Add it to the list. - * tree-extras.cc (matrix_exp): Do the real work. - - * Matrix-ext.cc (LU): Construct LU decomp. here, not in Matrix class. - (ComplexLU): Likewise. - * Matrix.cc (lu): Deleted. Use LU constructor instead. - Change all uses in octave sources. - - * Matrix-ext.cc (EIG): Construct EIG object here, not in Matrix class. - * Matrix.cc (eig): Deleted. Use EIG constructor instead. - Change all uses in octave sources. - - * Matrix-ext.cc (SVD): Construct SVD here, not in Matrix class. - (ComplexSVD): Likewise. - * Matrix.cc (svd): Deleted. Use SVD constructor instead. - Change all uses in octave sources. - - * Makefile.in: Update for new Matrix file organization. - Don't compile mx-inlines separately -- it's included where needed. - * Matrix.h: Declare Fortran routines we call here, not in Matrix.cc. - Don't declare every class to be a friend of every other class. - * mx-inlines.cc: New file, included by all Matrix-related .cc files. - * Matrix.cc: Split into several files. - * ColVector.cc: New file, from Matrix.cc - * RowVector.cc: Ditto. - * DiagMatrix.cc: Ditto. - * Matrix-ext.cc: Ditto. - - * tree-extras.cc (svd): Take advantage of new constructors and - diag functions. - - * Matrix.cc (DiagMatrix::diag) New function. - (ComplexDiagMatrix::diag) Ditto. - - * tree-extras.cc (eig): Take advantage of new constructors. - - * tree-const.cc (tree_constant (DiagMatrix)): New constructor. - (tree_constant (ComplexDiagMatrix)): Ditto. - - * Matrix.cc (Matrix (const DiagMatrix)): New constructor. - (ComplexMatrix (const DiagMatrix)): Ditto. - (ComplexMatrix (const ComplexDiagMatrix)): Ditto. - - Tue Dec 29 01:14:49 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * octave.cc (main): Print message at startup by default. - Don't print it until just before main loop. - * New -q option (inhibit_startup_message) turns it off. - * New -f option (read_init_files) inhibits reading of startup files. - * Delete -v option. - * (verbose_usage): Reflect changes in arguments, document -d. - - * win_texas_lotto.m: Sort picks before returning. - - * tree-extras.cc (eig): Return [v,d], not [l,v], where d is a - diagonal matrix made from l. - - * builtin-fcns.cc (mapper_functions): Fix last element of - initialization list to have correct number of elements. - - * Version 0.55. - - * Quad.h: Move all inline functions to Quad.cc to avoid apparent - g++ bug on the RS/6000. - - * configure.in: If we find flex, don't define LEXLIB. - - * COPYING.LIB: Deleted -- we're not actually distributing anything - under these terms. - * Makefile.in: Don't distribute COPYING.LIB. - - Mon Dec 28 00:46:21 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * xpow.h, xpow.cc: New files for safer pow() interface for octave. - * src/Makefile.in (INCLUDES, SOURCES, OBJECTS): Add xpow stuff. - - * arith-ops.cc: Include xpow.h. - * Don't declare toplevel jmp_buf. - - * t-builtins.cc (builtin_save): Make file and stream static to - avoid dumping core on return (is this a bug in libg++ or g++?). - * (builtin_load): Ditto. - - * symtab.cc (load): Make it work again. Yikes! This hasn't - worked since the big symbol table overhaul... - - * tree-const.cc (tree_constant_rep::save): Handle complex scalars - and matrices. - - * (symbol_def::undefine): Delete previous symbol definition before - defining. This should be ok now, after the parse_m_file fix of - 27 Dec. - - * getting_help: New global flag. - * ([_a-zA-Z][_a-zA-Z0-9]*): Set it if looking at "help". - * (reset_parser): Clear it. - * lex.l (STRING): Use it to determine what to do with ' ; and , . - - * lex.l (QSTRING): Handle the following (C-style) backslash escape - sequences correctly(?). - - \a bell \r carriage return - \b backspace \t horizontal tab - \f formfeed \v vertical tab - \n newline \\ backslash - - * median.m: New M-file. - - * g-builtins.cc (builtin_sort): New function. - * builtin-fcns.cc (general_fucntions): Add it to the list. - * tree-extras.cc (sort): Do most of the real work. - * tree-extras.cc (mx_sort): Do the rest. - - Sun Dec 27 17:40:24 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * t-builtins.cc (builtin_casesen): New function. - * builtin-fcns.cc (text_functions): Add it to the list. - - * strcmp.m: Temporarily allow string to numeric conversions. - Maybe strcmp() should be built in to the interpreter? - - * norm.m: New M-file. - - * builtin-fcns.cc (install_builtins): Treat i and j as functions, - not variables. - * Install inf as an alias for Inf. - * Install nan as an alias for NaN. - - * tree.cc (tree_identifier::parse_m_file (char*)): Force new - global symbol to be a function, not a variable. - - Tue Dec 22 14:15:57 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (tree_function::eval): Check with silent_functions() - and return_last_value_computed() to determine proper behavoir. - - * builtin-fcns.cc (silent_functions): New builtin variable. - * (return_last_value_computed) Ditto. - - * utils.cc (silent_functions): New function. - * (return_last_value_computed) Ditto. - [This scheme for determining preferences needs to be reworked...] - - * lex.l ([_a-zA-Z][_a-zA-Z0-9]*): Only force yytext[len] to be the - end of the identifier if we gobbled some whitespace. - * Always unput the last character read. - - * tree.cc (tree_function::eval) Always turn on printing for - commands inside functions. - - Sat Dec 19 14:03:49 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.54. - - Fri Dec 18 16:02:59 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * (symbol_def::undefine): Undo previous change. Someone is - calling this function when they shouldn't be... - - * tree.cc (parse_m_file): If the script file is successfully - parsed, Ensure that the new symbol is defined in the global - symbol table. - - * lex.l: Handle continuation lines with the pattern - {EL}{S}*\n { promptflag = 0; } // Line continuation. - - Thu Dec 17 01:47:14 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * symtab.cc (symbol_def::define): Delete previous symbol - definition before defining. - (symbol_def::undefine): Ditto, but new definition is always NULL. - - * readline/Makefile.in: Don't compile emacs_keymap.c and - vi_keymap.c since they are included by keymaps.c. - - * configure.in: If RETSIGTYPE isn't int, then define - VOID_SIGHANDLER="-DVOID_SIGHANDLER=1". - Substitute VOID_SIGHANDLER. - - * readline/Makefile.in (CFLAGS): Add -DVOID_SIGHANDLER if - appropriate. - - * tilde.c: Declare xmalloc, not malloc. - - * lex.l ([_a-zA-Z][_a-zA-Z0-9]*): Only call unput if we've - actually read something. - - * Version 0.53. - - Wed Dec 16 01:35:48 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * lex.l ([_a-zA-Z][_a-zA-Z0-9]*): Look in the global symbol table - for names, but ignore functions. - - * tree.cc (tree_identifier::eval): Use symbol_out_of_date() to - simplify logic for re-parsing M-files. - Always look in global symbol table for functions in case the - definition has changed (shouldn't the local symbols be undefined - anyway??). - - * tree.cc (symbol_out_of_date): New function. - - * symtab.cc (symbol_table::undefine): Actually do something. - * (symbol_table::remove_name): Ditto. - * (symbol_table::clear): And so on. - - * Matrix.cc (ComplexMatrix::svd): Use complex conjugate transpose, - not simple transpose, for V. - - * Version 0.52. - - * gnuplot-build/Imakefile (notgnuplot_x11): In the compile - command, put source file before libraries. - - * parse.y (assignment): If trying to warn against assignment to a - function, check is_function() instead of !is_variable(). - - * src/Makefile.in: Distribute input.h. - - Tue Dec 15 10:48:22 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * octave.cc (main): Call initialize_readline to set up completion - functions. - - * input.cc (make_name_list, command_generator, command_completer, - initialize_readline): New functions. - - * input.h: New file. - * lex.l: Include it instead of input.cc. - * src/Makefile.in: Create input.o rather than including it - directly in lex.l. - - * builtin-fcns.cc: do_fortran_indexing is now initially false. - prefer_column_vectors is now initially true. - - * builtin-fcns.cc (install_builtins): Install i and j - (== sqrt(-1)) as permanent global variables. - - * g-builtins.cc (MAXPATHLEN) Provide default definition here. - * t-builtins.cc: Not here. - - * g-builtins.cc (quitting_gracefully, interactive, - clean_up_and_exit, verbatim_pwd, getwd) Declare here. - * t-builtins.cc: Not here. - - * g-builtins.cc: Also include readline.h and history.h. - - * g-builtins.cc: Include version.h and sys/param.h here. - * t-builtins.cc: Not here. - - * g-builtins.cc: Move builtin_clc, builtin_clock, builtin_date, - builtin_pause, builtin_quit, builtin_warranty here from - t-builtins.cc. - - * builtin-fcns.cc (general_functions): Move builtin_clc, - builtin_clock, builtin_date, builtin_pause, builtin_quit, - builtin_warranty here from text_functions to limit the number of - reserved words. - - * scripts/*.m: Check for correct number of input arguments before - proceeding. - - * configure.in (DEFAULT_PAGER): Look for less, more, page, and pg. - - * t-buitlins.cc (builtin_help): If no arguments are given, list - all the known operators, keywords, functions, and variables. - - * t-builtins.cc (builtin_help) Pass the output through PAGER using - a libg++ procbuf. - (builtin_who): Ditto. - - * utils.cc (get_pager): New function. - - * help.h, help.cc: New files to manage lists of help info for - keywords and operators. - - * symtab.cc (symbol_record): Implement the Matlab-style semantics - of functions using two symbol_def objects. - * (symbol_table): Store identifier names in a hash table instead - of a linear list. - * symtab.cc (symbol_def): New class. - - Sat Dec 12 00:00:00 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * parse.y (yyerror): Change error text to be more accurate. - - * lex.l ([_a-zA-Z][_a-zA-Z0-9]*): Only look in the current symbol - table for names. Function names and other global symbols are now - resolved at execution time. - - * symtab.cc (sorted_var_list): New function. - * (sorted_fcn_list): Ditto. - * (var_list): Ditto. - * (fcn_list): Ditto. - These should probably not all be separate functions... - - * t-functions.cc (builtin_who): Call sorted_var_list for each - symbol table to print variable names only. - * Accept -fcn, -fcns, or -functions to also list function names. - * Make -all list function names, but under a separate heading from - other symbols. - - * builtin-fcns.cc (is_text_function_name): New function. - * lex.l ([_a-zA-Z][_a-zA-Z0-9]*): Use is_text_function_name to - find if a name is a text function name instead of relying on the - symbol tables. - - * lex.l (is_keyword): New function. - ([_a-zA-Z][_a-zA-Z0-9]*): Use is_keyword instead of having a - special lex pattern for each keyword. - - Thu Dec 10 12:25:12 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * t-builtins.cc: Declare top_level_sym_tab extern. - - * Version 0.51. - - Wed Dec 9 02:00:38 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-extras.cc (all user_functions): If the return value from a - user's function is bogus, print an error message and abort to the - top level. - - * tree-const.cc (all do_matrix_index functions): Major overhaul to - simplify and apply range checking before doing the indexing. - - * tree-const.cc (fortran_row, fortran_column, valid_scalar_indices, - matrix_to_fortran_indices): Move here from arith-ops.cc and - declare as `static inline'. Delete declarations from arith-ops.h. - - * arith-ops.cc (gripe_nonconformant_assignment): Delete function. - - * tree-const.h (TREE_TO_MAT_IDX): Delete macro. - * tree-const.cc (tree_to_mat_idx): Make it an inline function. - - * tree-const.cc (all do_matrix_assignment functions): Major - overhaul to simplify resizing and range checking. - - * tree-const.cc (): Move here from arith-ops.cc. - Jump to top level on errors. - Return max value. - (indexed_assign_conforms) New function. - (index_check (int)): New function. - (index_check (Range)): New function. - - Tue Dec 8 21:07:23 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-const.cc (tree_constant_rep::tree_constant_rep (Range): - Don't create range constants that have less than 2 elements. - - * utils.cc (jump_to_top_level): New function. - * All: Replace calls to longjmp with calls to jump_to_top_level(). - Don't include , except in octave.cc, and utils.cc. - - Mon Dec 7 01:57:30 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * configure.in: Create Imakefile in gnuplot-build directory. - Look for xmkmf, then X11/X.h. - * gnuplot-build/Makefile.in: Try harder to get notgnuplot_x11 to - build correctly. - * gnuplot-build/Imakefile.in: New file, for building - notgnuplot_x11 if xmkmf is available. - - * Version 0.50. - - * gnuplot-build/Makefile.in (SUBDIRS): Add docs. - - * tree-const.h (make_numeric_or_range_or_magic): New function. - * tree-const.cc (do_matrix_index): Use it instead of make_numeric - so that we actually take advantage of all the special cases we - have for range types as matrix indices. - - * tree-const.cc (tree_constant_rep::do_matrix_index (int, Matrix)): - Fix typo. - - * DAE.cc (integrate): If returning a matrix of values, don't mix - time with the states. - * ODE.cc (integrate): Likewise. - - Sun Dec 6 16:58:41 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-extras.cc (dassl): New function. - * g-builtins.cc (builtin_dassl): Make it work. - * doc/octave.1: Document it. - - * DAEFunc.h, DAEFunc.cc, DAE.h, DAE.cc: New files. - - * tree-extras.cc (lsode): Clean up. Use available functions - instead of doing everything in line. - - * tree.cc (tree_multi_assignment_expression::eval): Don't define - constants that are of unknown type. - Try to be smarter about padding after last value. - - * tree-extras.cc (lu): Don't bother trying to return the LU - factorization in a single matrix since this isn't really useful - and isn't compatible with Matlab anyway (they use Linpack, we use - Lapack). - - * tree.cc (tree_identifier::assign (rhs, args, nargs)): Only try - to do assignment if rhs is defined. - - Sat Dec 5 18:23:55 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-extras.cc (qr): New function. - * g-builtins.cc (builtin_qr): New function. - * builtins.cc: Add builtin_qr to list of builtin functions. - * doc/octave.1: Document it. - - * Matrix.cc (Matrix::lu): Use dgesv from Lapack instead of dgefa - since it returns L and U, not some factors that need decoding. - (ComplexMatrix:lu): Likewise. - - Fri Dec 4 01:51:05 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * configure.in (INCDIRS): Don't include /usr/local/include. - (LIBDIRS): Don't include /usr/local/lib. - - * tree-extras.cc (lu): New function. - * g-builtins.cc (builtin_lu): New function. - * builtins.cc: Add builtin_lu to list of builtin functions. - * doc/octave.1: Document it. - - * Matrix.cc (Matrix:lu, ComplexMatrix:lu): New functions. - * Matrix.h, Matrix.cc (LU, ComplexLU): New classes. - - * tree-extras.cc (do_quad): New function. - * g-builtins.cc (builtin_quad): New function. - * builtins.cc: Add builtin_quad to list of builtin functions. - * doc/octave.1: Document it. - - * doc/Makefile.in (install): Edit the manpage to substitute - correct values in the FILES section. - (dist) Depend on octave.info. - (local-dist): Ditto. - - * Quad.h, Quad.cc: New files to implement quadrature. - - * NPSOL.cc (npsol_objfun): If compiling with GCC on a Sun, assign - to objf via assign_double(). - - * sun-utils.h, sun-utils.cc: New files. - * sun-utils.cc: Move declaration and definition of MAIN_ here from - utils.cc. - (access_double): New function, from GCC manual. - (assign_double): New function, after access_double. - - Thu Dec 3 03:16:03 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * NEWS: New file. - * Makefile.in: Distribute it. - - * scripts/*.m: Change to use new end feature. - - * lex.l: Recognize `endif', `endfor', `endfunction', `endif', and - `endwhile', in addtion to `end'. - * parse.y: Check for command/end mismatches. - (end_error): New function. - * doc/octave.1: Document it. - - Wed Dec 2 11:57:18 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * libcruft/villad: New directory. Move and split villad.f here - from libcruft/misc. - * configure.in: Create Makefile in libcruft/villad. - * libcruft/Makefile.in: Add libcruft/villad to list of dirs to make. - - * All Makefile.in (uninstall): New target. - (distclean): Likewise. - (check): Ditto. - * Try to make clean targets conform with GNU coding standards. - - * utils.cc (smells_like_X11): New function. - * builtin-fcns.cc (install_builtins): Don't set graphics terminal - to x11 unless it looks like we're running X11. - - * win_texas_lotto.m: New M-file. - * octave.1: Document it. - - * arith-ops.h: New file. - * src/Makefile.in: Build arith-ops.o, distribute arith-ops.cc, - arith-ops.h. Maybe this will at least speed up recompiles. - - * THANKS: New file - * Makefile.in: Distribute it. - - * configure.in: Create Makefile in gnuplot-build/docs. - * gnuplot-build/docs/Makefile.in: New file. - * Create and install notgnuplot.gih. - - Tue Dec 1 00:15:48 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (tree_identifier::eval (int)): Only pad after if printing. - (tree_multi_assignment_expression::eval (int)): Ditto. - (tree_assignment_expression::eval (int)): Ditto. - - * hankel.m: Use disp to print message. - * toeplitz.m: Ditto. - - * lex.l ({SN}*\]/{S}*=): Check maybe_screwed_again to - decide whether to return SCREW_TWO or ']'. - - * doc/Makefile.in (install): Really install the manpage. - - * Version 0.49. - - * Matrix.cc (ComplexMatrix::operator !): New function. - * arith-ops.cc (do_unar_op): Use it. - - * tree-extras.cc (inverse, svd, eig): Don't try to operate on - empty matrices. - - * Matrix.h, Matrix.cc: (EIG): New class. - (Matrix::eig): New functions. - (ComplexMatrix::eig): Ditto. - * tree-extras (eig): Use them. - * g-builtins.cc (builtin_eig): New function. - * builtin-fcns.cc (general_functions): Add eig to list. - * dococtave.1: Document it. - - * Matrix.h, Matrix.cc: (ComplexDET): New class. - * tree-extras (determinant): Use it. - - Mon Nov 30 04:02:29 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Matrix.h, Matrix.cc (ComplexSVD): New class. - * tree-extras (svd): Use it. - - * Matrix.cc (svd): Use lapack instead of linpack to compute SVD. - - * libcruft/Makefile.in: Replace eispack with lapack in - subdirectory list. - * libcruft/eispack: Delete directory. - * libcruft/lapack/Makefile.in: New file. - * configure.in: Create Makefile in libcruft/lapack, not - libcruft/eispack. - - * libcruft/lapack: New directory. - * Copy files for SVD and Eigenvalue computation here. - - * lex.l ({SN}*\]/{S}*=): Only return SCREW_TWO if not - defining a function. - - * arith-ops.cc (do_binary_op (double, double)): For pow operator, - don't create complex value if exponent is really an int. - - * configure.in: Check for f77 last. - * Print warnings if bison or lex is not found. - * Reformat fatal no f2c/f77 error message. - - * flib.sh: Make it work even if xlf is called f77. - - Sun Nov 29 01:55:41 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-extras.cc: Include f77-uscore.h. - * Use F77_FCN macro when declaring or calling Fortran functions. - - * configure.in: After checking to see that it's not garbage, add - the output of f2c-compat.sh to DEFS. - - * f2c-compat.sh: Figure out whether or not we need to append an - underscore to Fortran function names. - - * flibs.sh: Handle xlf -v output as special case. - - * octave.cc: Only define BADSIG if it isn't already defined. - * g-builtins.cc: Ditto. - - * configure.in: Don't create man/Makefile. - * man: Directory deleted. - * doc/Makefile.in: Distribute and install octave.1. - * doc/octave.1: Renamed from man/octave.1. - - Sat Nov 28 15:54:39 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * man/Makefile.in (install): Install manpage. - * octave.1: rename from octave.man - * octave.1: Document builtin variables and command line editing - (stolen from bash man page). - - * tree-const.cc (eval (int print)): Convert complex values to real - if imaginary part is zero. - - * octave.cc (log_usage): Deleted. - (main): Don't call log_usage. - - * g-builtins.cc (builtin_sqrt): Delete. - (builtin_log): Ditto. - (builtin_log10): Ditto. - - * tree-const.h, tree-const.cc (sqrt_internal): Delete. - (log_internal): Ditto. - (log10_internal): Ditto. - - * tree-const.cc (mapper): Handle neg_arg_complex. - - * builtin-fcns.h (Mapper_fcn): New field neg_arg_complex. - * builtin-fcns.cc: (mapper_functions[]): Initialize it for list of - mapper functions. - * builtin-fcns.cc: (mapper_functions[]): Move log, log10, and sqrt - back here from general_functions[]. - - Fri Nov 27 17:05:21 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-extras.cc (tree_constant_to_vector): Handle complex scalars - and matrices. - - Wed Nov 25 17:32:42 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * man/octave.man: New file, very incomplete. - * man/Makefile.in: Include octave.man in list of files to - distribute. - - * g-buitlins.cc (builtin_rand): Handle nargin == 1. - * tree-extras.cc (rand): Likewise. - - * rem.m: New M-file. Implemented as M-file because it's much - simpler! - - * configure.in (DEFAULT_DOT_C_FROM_DOT_F): Escape % characters in - rule to avoid problems with autoconf, which uses % for sed command - delimeters. - (DEFAULT_DOT_O_FROM_DOT_F): Ditto. - - Tue Nov 24 00:21:34 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-extras.cc (fill_matrix): Don't try to create matrices with - negative dimensions. - (frobit): Likewise. - - * utils.cc (check_dimensions): New function. - - * utils.cc (treat_neg_dim_as_zero): New function. - * builtin-fcns.cc (treat_neg_dim_as_zero): New builtin variable, - default value is false. - - * tree-const.h (tree_constant::bump_value): Like, assign, check - reference count and possibly make a new copy before changing - anything. - - * tree-base.h (is_builtin): New virtual function. - * tree.cc (tree_builtin::is_builtin): New function. - - * parse.y (ans_expression): Also check to see if the lone - expression is a builtin text-style function invoked without any - arguments. - - * octave.cc, t-builtins.cc: Print copyright and other normal - (non-error) message on cout instead of cerr. - - * t-builtins.cc (builtin_warranty): Don't return message in - retval. - (builtin_history): Likewise. - (builtin_help): Also. - (builtin_who): Ditto. - - * Version 0.48. - - * tree-extras.cc: Fix most functions to handle complex arguments. - Still need to finish SVD and DET (waiting for these functions in - the Matrix class). - - * tree.cc (tree_multi_assignment::eval): Optionally print names - for result variables. - - * tree-const.h (tree_constant::eval (int print, int nargout)): - New function. Simply ignore nargout. - * tree.cc (tree_matrix::eval (int print, int nargout)): Ditto. - - * tree.cc (tree_parameter_list::name): New function. - - * lex.l (): Delete rules, start condition because they are - unecessary. - - * lex.l ({SN}*\]): Split into three rules. Use trailing - context instead of home-brew lookahead. - - Mon Nov 23 00:51:51 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * utils.cc (ok_to_lose_imaginary_part): New function. - * builtin-fcns.cc (ok_to_lose_imaginary_part): New builtin - variable, default value is warn. - - * tree-const.h (double_value): Maybe return real part if invoked - for complex tree_constant. - * tree-const.h (matrix_value): Ditto. - - * Version 0.47. This one wasn't tested, but there have been a lot - of significant changes and I wanted a backup. - - * tree-const.cc (sqrt_internal): New function. Sqrt isn't - implemented as a mapper function since negative real arguments - give complex results. - (log_internal): Ditto. - (log10_internal): Ditto. - * builtin-fcns.cc: Move sqrt, log, and log10 from mapper struct - initializer to general function struct initializer. - - * rot90.m: New M-file. Still needs rem() to be complete. - - * tree-const.cc (mapper): Handle mapper functions for complex - variables. - - * mappers.h, mappers.cc: New file for mapper functions. - - * builtin-fcns.h, builtin-fcns.cc: Rename from builtins.h - builtins.cc. - - * flipud.m: Don't do indexing on lhs. - * fliplr.m: Likewise. - - Sun Nov 22 17:09:36 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * arith-ops.cc (do_binary_op (double, double)): Handle a^b for - a < 0. - - * builtins.cc: Make sqrt a general builtin function instead of a - mapper function. - * g-builtins.cc (builtin_sqrt): New function. - * tree-const.cc (sqrt_internal): New function. - - Sat Nov 21 16:41:02 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-const.h, tree-const.cc: Complete most changes required to - handle complex types. There are lots of details, most will be - omitted here. - - * tree-const.h (is_real_type) New function. - (is_complex_type): Ditto. - (is_scalar_type): Ditto. - (is_matrix_type): Ditto. - - * tree-const.h (REP_RHS_MATRIX, REP_ELEM_ASSIGN, CRMATRIX, - ASSIGN_CRMATRIX_TO, CRMATRIX_ASSIGN_REP_ELEM, - CRMATRIX_ASSIGN_ELEM): New macro for dealing with real and complex - matrices in the same tree_constant_rep function. - - * tree-const.cc: Include arith-ops.cc. - - * arith-op.cc: New file for functions that implement unary and - binary operations for the tree_constat classes. - * Mark all operations that aren't implemented yet with a - FIXME comment. There are about 35-40 things left to fix - in this file. - - Thu Nov 19 00:25:16 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.46. - [ This one wasn't tested, but there have been a lot of significant - changes and I wanted a backup. ] - - * tree-const.cc (tree_constant_rep::do_unary_op): Handle Complex. - (do_unary_op (Complex&, tree::expression_type)): New function. - (do_unary_op (ComplexMatrix&, tree_expression_type): Ditto. - - * tree-const.cc (tree_constant_rep::assign): Handle Complex - (still needs updated support functions in order to work). - - * tree.cc (tree_matrix::eval): Handle Complex. - (tree_identifier::eval): Ditto. - (tree_for_command::eval): Ditto. - - Wed Nov 18 23:33:13 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree_const.cc (tree_constant_rep::rows): Handle Complex. - (tree_constant_rep::columns): Ditto. - (tree_constant_rep::all): Ditto. - (tree_constant_rep::any): Ditto. - (tree_constant_rep::cumprod): Ditto. - (tree_constant_rep::cumsum): Ditto. - (tree_constant_rep::prod): Ditto. - (tree_constant_rep::sum): Ditto. - (tree_constant_rep::sumsq): Ditto. - - * tree_const.h, tree_const.cc (tree_constant::complex_value): New - function. - (tree_constant_rep::complex_value): Ditto - (tree_constant::complex_matrix_value): New - (tree_constant_rep::complex_matrix_value): New - - * tree_const.cc (tree_constant_rep::~tree_constant_rep): Handle - complex scalars and matrices. - (tree_constant_rep::force_numeric): Ditto. - (tree_constant_rep::make_numeric): Ditto. - (tree_constant_rep::eval): Ditto. - (tree_constant_rep::bump_value): Ditto. C++, for C == a - complex value is C = C + 1. Should I even do this? Hmmm. - - * tree-const.h, tree-const.cc: Begin adding support for Compelex. - * Add complex_scalar and complex_matrix to value union. - * Add complex_scalar_constant and complex_matrix_constant to type - tag enum. - * New constructors. - - * Matrix.h, Matrix.cc: Major changes to add Complex support. - - Tue Nov 17 14:40:45 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Matrix.cc (RowVector::operator (const Matrix&)): New function. - - * Matrix.cc (ColumnVector::transpose): New function. - Eliminate friend function that served the same purpose. - (RowVector::transpose): Ditto. - - Mon Nov 16 09:57:33 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * lex.l (QSTRING): Fix to allow '' inside a string to represent a - single quote. Makes computer.m a little funnier. - - Fri Nov 13 18:46:39 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.45. - - * computer.m: New M-file. - * tril.m: Ditto. - * triu.m: Ditto. - - * doc (*.texi): Can now produce BUGS, INSTALL, and octave.info - files without generating errors, though the organization is - probably till very wrong. - - * Makefile.in (newversion): Add magic to handle major versions - other than 0, and major/minor versions of any length. - - Thu Nov 12 01:37:45 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * g-builtins.h, tree-const.h, builtins.cc, g-builtins.cc, - tree-extras.cc: Conditionally compile code for NPSOL and FSQP - based on FSQP_MISSING and NPSOL_MISSING. - * g-builtins.cc (builtin_npsol): If NPSOL is missing, always call - npsol_usage() to print out message indicating why NPSOL doesn't - work. - * g-builtins.cc (builtin_fsqp): Likewise for FSQP. - - * configure.in: Check for srcdir/libcruft/npsol/npsol.f and - srcdir/libcruft/fsqp/fsqp.f. If missing, define NPSOL_MISSING or - FSQP_MISSING and add them to DEFS. - - * libcruft/npsol/README.MISSING: New file. - * libcruft/fsqp/README.MISSING: Ditto. - - * libcruft/npsol/Makefile.in (dist): Don't distribute sources - because of license restriction. Do distribute Makefile.in and - README.MISSING. - * libcruft/fsqp/Makefile.in (dist): Ditto. - - * All Makefile.in files (local-dist): New target, usually the same - as dist. - - * parse.y (ans_expression): Check to see that the RHS isn't just - an identifier. - * tree.cc (tree_identifier::eval (int)): Maybe print id name. - * tree.cc (tree_assignment::eval (int)): Ditto. - * buitlins.cc (print_answer_id_name): New builtin variable. - * utils.cc (print_answer_id_name): New function. - - Tue Nov 10 10:58:36 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * octave.cc (log_usage): Surround with #if 0/#endif. - - Mon Nov 9 13:42:54 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * symtab.cc (load): Only issue error mesasge if attempt to find - _first_ name keyword fails. - - * tree-const.cc (make_numeric_or_magic): New function. Like - make_numeric except also pass magic_colons. - * tree-const.cc (all do_matrix_index functions): Matrix ndices can - be naked colons, so use make_numeric_or_magic on index arguments - instead of make_numeric. - - * liboctave/Makefie.in (install): Install .h files in $(includedir). - (includedir): New macro, default value $(prefix)/include. - - * tree.cc (tree_function::eval (int print)): Force arguments to be - undefined. - - * tree-const.h (tree_constant::assign (rhs, args, nargs)): Check - reference count before assigning. - * tree.cc (tree_identifier::assign (rhs, args, nargs)): Don't eval - lhs before doing assignment. - - * tree.cc (parse_m_file): Gobble leading white space, including - comments. - - Fri Nov 6 16:52:59 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.44. - - * g-builtins.cc (builtin_getenv): New function. - - * isempty.m: New M-file. - - * g-builtins.cc (builtin_exist): New function. - * utils.cc (identifier_exists): Handle the dirty details. - - * utils.cc (warn_comma_in_global_decl): New function. - * builtins.cc (warn_comma_in_global_decl): New builtin variable. - Initial value is true. - * parse.y (global_decl): Handle global declarations here, - including optional initialization. - * t-builtins.cc (builtin_global): Deleted. - - Thu Nov 5 23:59:39 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * g-builtins.cc (builtin_feval): New function. - * tree-extras.cc (feval): Handle the dirty details. - - * g-builtins.cc (builtin_rand): New function. - * tree-extras.cc (rand): Handle the dirty details. - - Wed Nov 4 14:54:17 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * num2str.m: New M-file. - * int2str.m: Ditto. - - * g-builtins.cc (builtin_disp): New function. - - * g-builtins.cc (builtin_fprintf, builtin_printf, - builtin_sprintf): New functions. - * tree-extras.cc (do_printf): New function to handle the gory - details. - - * g-builtins.cc (builtin_flops): Implement here because we may - actually want to count operations at some point. - - Tue Nov 3 17:06:40 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-const.cc (do_binary_op): Detect and give error message for - optations on empty matrices. - (do_unary_op): Likewise. - - * parse.y (matrix): Convert `[]' and `[;]' to empty matrices - instead of (tree_matrix *) NULL. - - Mon Nov 2 11:23:40 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * src/Makefile.in: Update dependencies. - * liboctave/Makefile.in: Ditto. - - * tree-const.cc (force_numeric): Consult matlab_strings() - before doing string to number conversion. - * builtins.cc (matlab_strings): New builtin variable. - * utils.cc (matlab_strings): New function. - - * tree-extras.cc (linear_constraints_ok): New function. - (linear_constraints_ok): Ditto. - (npsol): Use them to avoid creating inconsistent sets of - constraints and crashing. It would really be nice to have - exception handling. - - * symtab.cc (load): Issue error mesasges if attempt to find - name keyword fails. - - * Version 0.43. - - * tree-extras.cc (npsol): Use new minimize (phi, inform). - Handle nargout == 3. - - * g-builtins.cc (builtin_npsol): Allow nargout == 3. - - * NPSOL.cc (set_default_options): New function. - (all constructors): Use it. - (operator =): Use it and print warning message (setting default - options doesn't represent a true copy and it would be somewhat - difficult to fix this...). - - * npchkd.f (npchkd): Only write message if msglvl > 0. - - Sun Nov 1 00:58:16 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * gnuplot-build/Makefile.in (LIBDIRS): Set correctly. - (notgnuplot): Use it. - - * libcruft/misc/gen-d1mach.c: Generate d1mach.f at build time - instead of depending on the installer to get it right. - * libcruft/Makefile.in (gen-d1mach): New target. - - * libcruft/Makerules.in (SPECIAL): New macro. - (DISTFILES): Include it. - - * libcruft/Makerules.in (SPECIAL_DEPEND): Ditto. - (../../libcruft.a): Use it. - - Mon Oct 26 02:25:11 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-extras.cc (is_valid_function): Try harder to find M-files - that may not have been parsed yet. - - * symtab.cc (define (symbol_record*)): New function. Make it - simple to copy all fields of a symbol_record if we already have - one. - * utils.cc (force_global): Use it. - - * utils.cc (valid_identifier): Allow underscores in names. - - * tree-extras.cc (npsol): Force column vector to be returned. - (fsolve): Ditto. - - * Version 0.42. - - * tree-extras.cc (fsolve): New function for solving nonlinear - algebraic equations. This needs much more work if it is to - provide all the functionality of Matlab's fsolve. - - * tree-extras.cc (fsolve_user_function): New function. - - * libcruft/minpack: Import needed functions. - - * tree-extras.cc: (npsol (tree_constant*, int, int): Completely - rewrite to handle all of the follwing: - - 1. npsol (x, phi) - 2. npsol (x, phi, lb, ub) - 3. npsol (x, phi, lb, ub, llb, c, lub) - 4. npsol (x, phi, lb, ub, llb, c, lub, nllb, g, nlub) - 5. npsol (x, phi, lb, ub, nllb, g, nlub) - 6. npsol (x, phi, llb, c, lub, nllb, g, nlub) - 7. npsol (x, phi, llb, c, lub) - 8. npsol (x, phi, nllb, g, nlub) - - * tree-extras.cc (npsol_constraint_function): New function. - - * tree-extras.cc (tree_constant_to_vector): New function. - (tree_constant_to_matrix): Ditto. - (takes_correct_nargs): Ditto. - - Fri Oct 23 10:19:51 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-extras.cc (is_valid_function): New function. - (npsol): Use it. - - * utils.cc (s_plural): New function. - (es_plural): Ditto. - - * tree-extras.cc (npsol): Improve checks for valid objective - function. - - * tree.cc (tree_function::max_expected_args): New function. - - Thu Oct 22 18:42:07 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * g-builtins.cc (builtin_lsode): Quick check of arguments, then - call lsode (tree_constant *, int, int). - * Move rest of code for implementing builtin_lsode to - tree-extras.cc. - - * g-builtins.cc (builtin_npsol: Quick check of arguments, then - call npsol (tree_constant *, int, int). - * Move rest of code for implementing builtin_npsol to - tree-extras.cc. - - * tree-const.cc: Simplify functions that require numeric arguments - by always calling make_numeric for them instead of doing it - conditionally. - * tree.cc: Ditto. - * tree-extras.cc: Ditto. - - * tree-const.h (tree_constant::make_numeric): Return *this if - already a numeric type. - - * NLP.cc: In constructors, don't try to assign NULL to bounds - objects. - - * tree-const.cc (tree_constant_rep::valid_as_scalar_index (void)): - New function. - * tree-const.cc (valid_scalar_indices (tree_constant*, int): - New function. - * tree-const.cc (tree_constant_rep::do_scalar_index): Simplify by - using functions to determine if arguments are valid as indices. - (tree_constant_rep::do_scalar_assignment): Likewise. - - Wed Oct 21 14:11:58 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-extras.cc (determinant): Make it work again. - - * tree.cc (tree_identifier::eval (tree_constant*, int, int, int): - Simplify logic. Only have one ans->eval() call. - - * tree-const.cc (tree_constant_rep::eval (tree_constant*, int, - int, int): Properly handle indexing of range constants. - - * tree-const.cc (stupid_fortran_style_matrix_index): Preserve row - or column orientation for vectors. - - * toeplitz.m: New M-file. - * invhilb.m: Ditto. - * hankel.m: Ditto. - - * tree-extras.cc (max): Handle two arg case. - tree-extras.cc (max): Likewise. - (min (Matrix&, Matrix&): New function. - (max (Matrix&, Matrix&): Ditto. - - Tue Oct 20 15:13:57 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.41. - - Mon Oct 19 16:46:35 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * rows.m: New M-file. - * g-builtins.cc (builtin_rows): Delete function. - * g-builtins.h (builtin_rows): Delete declaration. - * builtins.cc (general_functions): Delete from initialization list. - - * columns.m: New M-file. - * g-builtins.cc (builtin_columns): Delete function. - * g-builtins.h (builtin_columns): Delete declaration. - * builtins.cc (general_functions): Delete from initialization list. - - * length.m: New M-file. - * g-builtins.cc (builtin_length): Delete function. - * g-builtins.h (builtin_length): Delete declaration. - * builtins.cc (general_functions): Delete from initialization list. - - * g-builtins.cc (builtin_size): If two values are expected to be - returned, put nr and nc in separate registers. - - Sun Oct 18 13:37:17 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree-base.h: Extract base tree class declarations from tree.h. - * tree-const.cc, tree-const.h: Extract tree_constant class from - from tree.cc, tree.h. - Change all uses of tree.h to use either or both of tree-base.h and - tree-const.h. - - * Matrix.cc (solve): Replaces LinEqn class. - tree.cc (do_binary_op) Use it. - - * g-builtins.cc (builtin_max): New function. - tree.cc (tree_constant::max): New friend. - - * g-builtins.cc (builtin_min): New function. - tree.cc (tree_constant::min): New friend. - - * cond.m: New M-file. - - * rank.m: New M-file. - - * g-builtins.cc (builtin_svd): New function. - tree.cc (tree_constant::svd): New friend function. - - * g-builtins.cc (builtin_svd): New function. - tree.cc (tree_constant::svd): New friend function. - - * t-builtins.cc (builtin_format): New function. Implement some of - the Matlab options (sort of). - - * Major changes to liboctave source. A new Matrix.cc/Matrix.h - completely replaces the old Matrix/Vec/AVec code. All other - classes that use Matrix/Vector objects have been updated (or - deleted, if they are no longer needed). All callers changed in - octave sources. - - Sun Oct 11 21:22:16 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (tree_function::eval): Don't define more function - parameters than are expected. If fewer arguments than expected - are actually supplied, force them to be undefined. - - * parse.y (fact): Give warning and abort for identifiers followed - by '['. This should catch most improper uses of [] instead of () - for indexing operators. - - * tree.cc (do_binary_op (Matrix&, Matrix&, tree::expression_type): - Handle element by element exponentiation. - - Tue Sep 22 10:09:06 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.40. - - Mon Sep 21 13:09:06 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * lex.l: Accept ** and .** as well as ^ and .^ as exponentiation - operators. - - Fri Sep 18 15:19:51 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.h tree.cc utils.cc g-builtins.cc: Elimitate need for - overloaded operator-> in the tree_constant class. Also eliminate - uses of ->string, ->scalar, etc. Instead, always call - .string_value(), .double_value(), etc. - - * builtins.cc (install_builtins): Reserve `ans' as an - uninitialized global variable (should it really be global?). - - * parse.y (ans_expression): Handle default assignemnt to builtin - variable ans. - (command): Use it. - - Tue Sep 15 14:06:12 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.39. - - * tree.cc (tree_identifier::bump_value): Don't try to increment - undefined symbols or values. - (tree_prefix_expression::eval): Don't call bump_value if id is a - NULL_TREE. - (tree_prefix_expression::eval): Likewise. - - * g-builtins.cc (lsode_builtin): Handle extra arguments. - liboctave/ODE.cc (integ): Add template for handling bad returns - from lsode. - - * tree.cc (class tree_return_command): Implementation is just like - break and continue. Something seems wrong about this... - lex.l (return): Recognize return statement. - parse.y (statement): Handle function returns. - tree.cc (various eval functions): Check to see if we are returning - from a function. - - * tree.cc (tree_for_command::eval): Set abort_on_undefined when - evaluating the loop body. - (tree_while_command::eval): Ditto. - - * tree.cc (class tree_idenfier): Improve searching/parsing M-files - when handling undefined names. - tree.cc (tree_identifier::parse_m_file (char*)): New function. - (tree_identifier::parse_m_file (void)): Use it. - - * utils.cc (force_global): New function. - * symtab.cc (symbol_table::remove_name(char *)): New function. - - * tree.h, tree.cc (class tree_constant): Split into two classes, - tree_constant (handle) and tree_constant_rep (body) to enable use - of `smart pointers' and reference counted memory management. - (Lots of things are different with this change.) - - Sat Aug 22 11:58:27 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.38. - - * lex.l (COMMA_KLUDGE): Delete production, all uses. This doesn't - seem to be necessary anymore, and the mystery output lines - disappear without it. - - * builtins.cc (make_eternal (char *)): New function. - (install_builtins): Make LOADPATH, eps, pi, Inf, and NaN eternal. - - * New M-files: mean.m, std.m, hadamard.m, vander.m, hilb.m, - linspace.m, logspace.m. - - * tree.cc (tree_function::eval): Don't check number of arguments - supplied against total number possible (previously thought to be - `expected') so that user-defined functions can have variable - numbers of arguments. - - * tree.cc (tree_identifier::eval_undefined_error): New function. - (tree_identifier::eval): Use it. - - * octave.cc (abort_on_undefined): New global symbol to control - whether we should jump to top level after an undefined symbol has - been encountered. - tree.cc (tree_function::eval) Set it before evaluating function - body, restore to previous value after successful completion. - tree.cc (tree_identifier::eval_undefined_error): Use it - - Fri Aug 20 09:31:14 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * g-builtins.cc: New mapper functions: - isnan: Uses xisnan, which calls IEEE function isnan. - isinf: Uses xisinf which calls IEEE functions finite and isnan, - or isinf if available. - finite: Uses xfinite, which calls IEEE function finite. - abs: Uses fabs. - - * g-builtins.cc (sumsq): New function. - (diag): New function. - - * tree.cc (tree_constant::sumsq): New function - (tree_constant::diag): New function - - * Matrix.cc (sumsq): New function. - (diag): Ditto. - - Thu Aug 20 00:36:44 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * g-builtins.cc (builtin_error): New function. - - * gnuplot-build/Makefile.in (dist): Actually create `term' - subdirectory. - - * Lots of changes to tree.cc tree_assignment_expression::eval and - tree_index_expression::eval to make matrix indexing work like - Matlab. - (do_fortran_indexing): New user-level variable to control this - behavior. If this variable is false, things like - - a([1,2;3,4], [1,2;3,4]) = b - - become syntax errors. Otherwise, Matlab braindamage prevails. - - Tue Aug 18 13:15:46 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.37. - - * tree.cc (do_matrix_assignment): Conditionally allow single - indices for Matrix assignments. - (do_matrix_index): Ditto. - - * utils.cc (do_fortran_indexing): New function. - utils.h: Declare it. - builtins.cc (install_builtins): Default value for new - do_fortran_indexing variable. - - * builtins.cc (install_builtins): Bind eps to the value - DBL_EPSILON from float.h. Make it read only (will this cause - trouble)? - * Bind Inf to 1/0 (will only work for IEEE machines. - * Bind NaN to 0/0 (will only work for IEEE machines. - * Add round, fix, floor, ceil, and sign to builtin mapper functions. - (round): New function. - (fix): Ditto. - (signum): Ditto. - * Add clc (clear screen function). - * Add home (clear screen function). To be just like Matlab, this - wouldn't clear the screen. - - * New M-files: fliplr.m, flipud.m, trace.m, reshape.m. - - * utils.cc (bind_variable): Revise bind_string_variable so that it - takes a tree_constant as an argument. - (bind_protected_variable): Likewise for the function - bind_protected_string_variable. - (bind_string_variable): Delete. - (bind_protected_string_variable): Ditto. - utils.h: Fix declarations. - builtins.cc t-builtins.cc: Fix callers. - - * builtins.cc (install_builtins): Bind LOADPATH here. - octave.cc (initialize_globals): Not here. - - * Makefile.in (SOURCES): Add new scripts directory. - (scripts): New target. - libcruft/Makefile.in (install): Don't depend on all. - - * utils.cc (m_file_in_path): Get path from LOADPATH variable. - tree.cc (tree_identifier::parse_m_file): Modify caller. - - * src/Makefile.in (OCTAVE_M_FILE_DIR): New variable. - (utils.o): Use it. - utils.cc (default_path): Use it. - - * utils.cc (pathstring_to_vector): New function. - (default_path): Return colon separated path instead of vector of - paths. - * octave.cc (initialize_globals): Use pathstring_to_vector here. - Bind output of default_path to LOADPATH variable. - Eliminate octave_path global variable. - - * tree.cc (isstr): New function. - (all): Ditto. - (any): Ditto. - (cumprod): Ditto. - (cumsum): Ditto. - (prod): Ditto. - (sum): Ditto. - - * g-builtins.cc (builtin_isstr): New function. - (builtin_all): Ditto. - (builtin_any): Ditto. - (builtin_cumprod): Ditto. - (builtin_cumsum): Ditto. - (builtin_prod): Ditto. - (builtin_sum): Ditto. - - * Matrix.cc (all): New function. - (any): Ditto. - (cumprod): Ditto. - (cumsum): Ditto. - (prod): Ditto. - (sum): Ditto. - - * scripts: New directory. - scripts/strcmp.m: New file (first M-file function in distribution!). - scripts/Makefile.in: New file. - configure.in: Include scripts/Makefile in list of files to create. - - Sat Aug 15 18:32:24 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.36. - - Fri Aug 14 08:44:10 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (id_to_define): New global variable. - (curr_m_file_name): Ditto. - (current_infile): Ditto. - - * tree.h tree.cc (tree_identifier::parse_m_file): New function. - (tree_identifier::eval): Handle M-files. - - * tree.h (stash_m_file_name): New virtual function. - (stash_m_file_time): Ditto. - (time_parsed): Ditto. - (m_file_name): Ditto. - - * tree.h tree.cc (tree_function::stash_m_file_name) New function. - (tree_function::stash_m_file_time): Ditto. - (tree_function::time_parsed): Ditto. - (tree_function::m_file_name): Ditto. - - * lex.l (reading_m_file): New global variable. - (delete_buffer): New function. - (yywrap): New function. Always return 0 (is this a smart thing to - do?). - - * parse.y (func_def2): Handle input from m-files (sort of). - - * octave.cc (octave_path): New global variable. - (using_readline): Ditto. - (no_line_editing): Ditto. - - * octave.cc (main): Initialize current_command_number before - calling setjmp. - * Increment it in main command loop, not in parse.y. - - * utils.h utils.cc (default_path): New function. - (m_file_in_path): Ditto. - (is_newer): Ditto. - - * octave.cc (main): Execute commands here. - * parse.y (input): Not here. - - * octave.cc (tree *global_command): New global variable that - points to the current command to be executed. - - Thu Aug 13 07:08:11 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * parse.y: Make word_list_cmd a fact, not a command, so that - things like `y = who -all' can work. You can't do that in Matlab. - - * t-builtins.cc (builtin_who): Print symbols in columns, sorted. - (list_in_columns) New function, mostly stolen from GNU ls. - - * symtab.h symtab.cc (char **list (void)) New function. - (char **sorted_list (void) New function. - - * tree.cc (various eval functions): Handle printing results of - text and general functions here. Straighten out other printing - stuff, maybe... - - * t-builtins.h t-builtins.cc: Make text functions return - tree_constant* instead of int, delete print flag argument. - - * g-builtins.h g-builtins.cc: Delete print flag argument. - - * Version 0.35. - - Wed Aug 12 15:12:23 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (tree_builtin::eval): Call mapper function with - print = 0 to avoid getting two answers. - (specific do_matrix_assignment functions): Handle resizing - correctly for `:' indices. - (tree_colon_expression::eval): Don't crash if the evaluation of - an operand yields a NULL_TREE_CONST. - - Mon Aug 10 07:31:37 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (tree_identifier::define): Return NULL_TREE_CONST if - symbol_record::define fails. - (tree_identifier::assign): Likewise. - - * symtab.h (symbol_lifetime): New attribute for symbol_records. - Can be either temporary or eternal. - (symbol_class): Delete eternal attribute. - * builtins.cc (install_builtins): Mark all builtins as eternal. - - * Version 0.34. - - * tree.h: Delete ttype, enum list of tree types. - - * g-builtins.h g-builtins.cc (builtin_colloc): New function. - - * liboctave (various): Add missing return values, etc. so that - liboctave compiles cleanly. - - * tree.h tree.cc (tree_multi_assignment): New class to implement - assignments to more than one variable. Does it work? Maybe... - - * tree.h (tree_constant **eval (int, int)): New virtual function. - (is_identifier): Another one. - - * symtab.h (eternal): New class for symbol_records. - * symtab.h symtab.cc (make_eternal): New function. - * builtins.cc (install_builtins): Make builtin variables eternal. - - * tree.cc (list_to_vector): Surround by `#if 0/#endif' to avoid - compilation warning. - - Sun Aug 9 03:18:38 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * t-builtins.h t-builtins.cc (builtin_cd): New function adapted - from bash for changing the current working directory. - (builtin_pwd): New function adapted from bash for printing the - current working directory. - - * utils.h utils.cc: New functions from bash for changing and - printing the current working directory: - - pathname_backup make_absolute - get_working_directory change_to_directory - - * utils.h utils.cc (bind_string_variable): New function. - (bind_protected_string_variable): Likewise. - - * octave.cc (initialze_globals): New function. - - * utils.h utils.cc: New functions from bash, mostly for fancy - prompting: - - polite_directory_format absolute_pathname - absolute_program base_pathname - read_octal sub_append_string - decode_prompt_string - - Thu Aug 6 02:39:31 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * octave.cc (initialize_history): Fix up to - (octave_hist_file) New global variable. - (octave_hist_size) Ditto. - (history_lines_this_session) Ditto. - (history_lines_in_file) Ditto. - - * input.cc (octave_gets): Keep track of number of lines read - during the current session. - - * utils.cc (default_history_file): New function. Look for - OCTAVE_HISTFILE environment variable and use its value if - possible. - (default_history_size): New function. Look for OCTAVE_HISTSIZE - environment variable and use its value if possible. - - * t-builtins.cc (builtin_history): Steal from bash and modify to - work with octave. - - * g-builtins.cc (builtin_det): New function. - - * tree.h tree.cc (determinant): New function - - * g-builtins.cc: Rewrite functions that use fill_matrix, inverse, - and identity_matrix to use new versions implemented as friends of - tree_constant. This is being done in an attempt to get rid of all - calls to tree_constant::const_type() outside of tree.cc. - - * tree.cc (tree_constant): Implement new functions for filling - and inverting tree constants as matrices, and for creating an - identity matrix from a tree_constant. - - * g-builtins.cc (builtin_inv): New function. - builtins.cc: Allow builtin_inv to be called as either inv(A) or - inverse(A). - - * tree.cc (do_binary_op (Matrix, Matrix)): Better handling of - solution of linear equations for square coefficient matrices. - - * LinEqn.cc (solve): Don't exit on singular matrices. Implement - new variations of these functions that will allow status checking. - - * src/Makefile.in: Define GNUPLOT_BINARY and SITE_DEFAULTS. - Specific rules for octave.o and builtins.o to avoid defining - GNUPLOT_BINARY and SITE_DEFAULTS for all .cc targets. - - * builtins.cc: Use macro GNUPLOT_BINARY. - - * octave.cc (execute_startup_files): Use macro SITE_DEFAULTS. - Execute commands from SITE_DEFAULTS file. - - * t-buitlins.cc (builtin_pause): Make it work. - - * configure.in: Check for termio.h and/or sgtty.h. - - * octave.cc (clean_up): Reset terminal state to cooked mode. - (main) Likewise, after return from SIGINT signal handler. - - * utils.h utils.cc (raw_mode): New function (mostly stolen from - less(1)) toggle input processing for stdin to raw/cooked modes. - (kbhit): New function to read one character from cin in raw mode - without echoing it. - - * builtins.cc: Fix expected number of arguments in lists of - builtins. - - * tree.h tree.cc (max_args_expected (void)): New virtual function. - (tree_builtins::) Provide a definition of it. - - * lex.l (identifier): Before gobbling up text function arguments, - check to see that we expect some. - - * symtab.h symtab.cc (max_args_expected): Return max args expected - by a symbol (currently only valid for tree_builtins). - - Wed Aug 5 05:03:59 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * utils.h utils.cc (resize_on_range_error): Decide what to return - based on value of global variable of same name. - (prefer_column_vectors): Likewise. - - * Version 0.33. - - * parse.y (func_def2): Call define (tree *, symbol_type), not - define (tree *), so that the symbol type is set for user-defined - functions. - (assignment): Catch assignments to functions here. - - * tree.h tree.cc (tree_identifier::define (tree *, symbol_type): - New function (be careful out there...). - - * symtab.h (symbol_type): Add new `user_function' enum value. - - * tree.cc (do_matrix_assignment): Call prefer_column_vectors(). - - * tree.h tree.cc (do_matrix_assignment (...)): New functions to - implement assignment to indexed matrices. - (do_scalar_assignment (...)): New function to implement assignment - to an indexed scalar. - - * utils.h utils.cc (resize_on_range_error): New function. Should - eventually decide what to return based on value of global variable - of same name. - (prefer_column_vectors): New function. - - Tue Aug 4 05:37:47 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (tree_constant::save): New function. - (tree_constant::load): New function. - - * symtab.cc (symbol_record::save): New function. - (symbol_table::load): New function. - - * t-builtins.cc (builtin_load): Start implementation. Yikes, this - is probably going to need a lot of work to be very robust... - - * t-builtins.cc (builtin_save): Implement by asking the - symbol_record to save itself. Maybe this should really be done by - asking the symbol table to save a symbol... - - * utils.cc (extract_keyword): New function. - (valid_identifier): New function. - - Fri Jul 31 04:16:24 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * parse.y (func_def3): Extra error cases for empty function - bodies. - (func_def1, func_def1a, func_def1b): Slighly straighten out some - truly twisted logic, eliminate func_def1a, rename func_def1b to - func_def1a, and make statementss like function [x,y] = foo() end - work properly (I think). - (func_def*): Put function name in global symbol table, not top - level symbold table. This makes them accessible from other - functions, eh? - - * t-builtins.cc (builtin_who): Accept -all, -local, -global, and - -top flags. - - Thu Jul 30 00:39:40 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * lex.l (current_buffer): New function to return current flex - input buffer. Will need this to be able to switch file contexts. - - * Version 0.32. - - * lex.l (create_buffer, switch_to_buffer): New functions to handle - input from various streams. This should be enough to allow us to - implement Matlab-like M-files. - octave.cc (main, execute_startup_files): Use them. - - * octave.cc (execute_startup_files): Execute commands from - $HOME/.octaverc and ./.octaverc. - - * g-builtins.cc (builtin_plot): Delete temporary files. - Ignore SIGINT while gnuplot is executing. - - Wed Jul 29 20:16:25 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (all_args_defined): New function to check a - tree_constant** vector to see if all elements are non-null. - (tree_index_expression::eval (int)): Use it, and abort the - evaluation if test fails. - - * terminals.h, terminals.cc: New files for doing things with - gnuplot graphics terminal names. - src/Makefile.in: Handle new files. - - Tue Jul 28 00:25:24 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * g-builtins.cc (builtin_plot): Make it work, at least halfway. - - * g-builtins.cc (builtin_save): New function. - - * gnuplot-build/Makefile.in: Add -DREADLINE and remove readline.o - from list of objects to actually enable the GNU command line - editing. - - * configure.in: Use AC_PROG_CHECK macro to search for f2c and f77. - Check for several common Un*x Fortran compilers. - Add extra messages. - - * g-builtins.cc g-builtins.h: New files for builtin general - functions extracted from builtins.cc. - - * t-builtins.cc t-builtins.h: New files for builtin text functions - extracted from builtins.cc. - - * Makefile.in (split-dist): New target. - - * Version 0.31. - - Mon Jul 27 22:01:58 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (tree_constant::do_matrix_index (tree_constant **, int): - Allow single argument to work for matrices that are really row or - column vectors. - - * lex.l: Accept `<>' in addition to `!=' and `~=' as `not equal' - comparison operators. - - * libcruft/Makerules: Allow for compiling the Fortran routines - with the native Fortran compiler instead of translating to C. - - * f2c-compat.sh, flibs.sh: New scripts which try to determine - whether it will be possible for us to use the system's Fortran - compiler directly, and if so, what libraries to add to the loader - command. These scripts are known to work on SPARCstations running - SunOS and DECstations running Ultrix. Not tested elsewhere... - * configure.in: Use them. - * Makefile.in: Distribute them. - - Wed Jul 22 00:04:48 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * builtins.cc: Begin implementation of NLP solver using NPSOL. - - Tue Jul 21 13:44:13 1992 John W. Eaton (jwe@june.che.utexas.edu) - - * octave.cc: If printing version information, also print pointer - to warranty info. - - * builtins.cc: Implement the Matlab functions ones, zeros, eye, - clock, date, size, length, and global. - Implement warranty builtin. - (builtin_clear): Fix to work with global variables. - - * symtab.cc (clear): Fix to work properly with global variables. - - Mon Jul 20 11:58:23 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc (tree_constant::do_matrix_index (tree_constant**, int)): - Make string indices work. - (tree_constant::force_numeric): Don't special case - single-character strings (this uncovers a flaw in the design of - the constructor for the magic colon operator...). - - Fri Jul 17 16:33:00 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.30. - - * tree.cc: Delete undefined identifiers when trying to eval them. - - * builtins.cc: Add beginnings of builtin who and clear functions. - - * symtab.cc symtab.h (clear): New function. - - * tree.cc, tree.h, parse.y: Implement matrix indexing with colon - expressions, implement the magic colon operator for column and row - selection. - - * tree.cc tree.h: Completely rework colon expressions. - - Thu Jul 16 09:27:48 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * gnuplot-dist: Rename from gnuplot-3.2 so we're not tied to a - version number. - - Tue Jul 14 11:22:35 1992 John W. Eaton (jwe@ward.che.utexas.edu) - - * tree.cc builtins.cc: Make argc/nargs/nargin work like C: - the argument count is the number of command line arguments plus - the function name. This goes for `argument lists' for matrices as - well as functions. It seems a bit awkward but at it's consistent, - and it's like C. Hmm. Maybe this is a bad choice... - - * utils.cc utils.h: New files for utility functions. - - Mon Jul 13 00:29:50 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.29. - - * tree.cc tree_constant::tree_constant (matrix): Automatically - convert 1x1 matrices to scalars. - - * parse.y lex.l: Fix up a bunch of stupid stuff and reduce the - number of shift/reduce conflicts to 16 (all but one because of the - optional separator garbage). - - * parse.y lex.l: Allow for assignments to lists of identifiers to - be partially parsed. This will still require some error checking - in tree.cc to ensure that the list is made up of identifiers only, - since that's not enforced by the grammar (I don't see a way to do - it, do you?) - - Sun Jul 12 11:24:33 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * tree.cc tree.h parse.y lex.l: Implement logical AND (symbol &), - OR (symbol |), and not (symbol ~). Also provide the C-style - operators &&, ||, and !). - - * Matrix.cc Matrix.h: Provide stupid element-wise logical - operators for matrices. - - * Version 0.28. - - * parse.y lex.l tree.cc tree.h: Implement C-style prefix and - postfix increment and decrement operators (symbols ++ and -- - respectively). - - * parse.y lex.l tree.cc tree.h: Implement break and continue. - - * tree.cc tree.h: Assignment to matrix elements roughed out. - - * gnuplot/tree.cc: Solution of linear equations via the lift - division operator partially implemented. Singular coefficient - matrices aren't handled very well yet... - - * gnuplot-build/Makefile.in: Make this work to build gnuplot for - generic X11/unix environments. - * Remove -Wall from CFLAGS to avoid loads of warnings. - * Use GNU readline instead of the one that comes with gnuplot. - - * gnuplot-build/*.diff: Various patches for various things. - - Sat Jul 11 10:14:12 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.26 - - * src/Makefile.in: Distribute lex.cc, parse.cc, y.tab.h. - * src/Makefile.in (dist): Depend on lex.cc and parse.cc. - - * gnuplot-build: New directory for patching and building gnuplot. - This is apparenty required because the gnuplot license won't allow - distrubution of modified versions, but will allow patches to be - distributed. - * gnuplot-build/Makefile.in: New file. - - * gnuplot-3.2: New directory. - - * readline: New directory from the bash-1.12 distribution, plus - tilde.c from bash's lib/glob directory and xmalloc.c from bash's - lib/malloc directory. - * readline/Makefile.in, readline/doc/Makefile.in, - readline/examples/Makefile.in: New files. - - * All Makefie.in files: Allow make to work from any directory, not - just the top level one. - - Fri Jul 10 22:20:56 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * SERVICE: Remove, since it seems too specific to GNU products. - - Thu Jul 9 07:48:33 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.20. - - * Solution of ODEs with LSODE partially implemented. It's - possible to solve some simple equations. - - * tree.cc tree.h (tree_constant): Add string constants and make - them work more or less like string constants in Matlab (implicit - conversion to ASCII numbers -- gag. This isn't complete, and it - it assumes that ASCII is the character set for the host - machine/compiler...). - - Tue Jul 7 07:28:35 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.19. - - * User defined function definitions and calls to them mostly work. - Still need to implement multiple return values correctly. - - Mon Jul 6 04:23:37 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.18. - - * lex.l parse.y tree.cc tree.h: Begin implementation of - user-defined functions. - - Sun Jul 5 19:27:08 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.17. - - * lex.l: Replace SAVE_STRING macro with a function. - - * builtins.cc (builtin_document): New builtin function. - (builtin_help): Make it work. - - * lex.l: More rules for gathering text. These are still not quite - as they should be, but they will work in most cases. I think the - flex generated scanner is either going to have to be reworked or - replaced with a handemade version at some point (probably soon)... - - * tree.cc tree.h: Add tree_word_list and tree_word_list_command - classes for text functions. - - Fri Jul 3 05:13:15 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.16. - - * builtins.h builtins.cc: New files for builtin functions. - Implement a few simple builtin functions. - - * tree.cc tree.h: Add tree_builtin type for builtin functions. - - * tree.cc tree.h: eval (args...) New virtual function. - - Thu Jul 2 01:27:38 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.15. - - * symtab.h, symtab.cc: Allow variables and functions to be tagged - as read-only or read-write. - - Wed Jul 1 15:54:36 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * input.cc and octave.cc: allow input to come from a file. - - * lex.l: to accept `#' as a comment character (allows one to - use the `#!/bin/octave' style script hack). - - * doc: New directory containing skeleton stuff - * SERVICE: New file from GCC. - * BUGS: New file, now produced from doc/bugs.texi. - * INSTALL: New file, now produced from doc/install.texi. - - Sat Jun 27 15:52:37 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.14. - - * Fixed parser to eliminate reduce/reduce conflicts. - - * Fixed parser to recognize assignment to multiple identifiers - (e.g., [E,V] = eig (A); ). - - * Quickie implementation of indexed array evaluation. Works for - scalar indices, but not range/array indices. - - Fri Jun 26 04:23:12 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.12. - - * Hooks added for indexed array evaluation and assignment. - * Colon expression implementation improved. - * Implementation of for command eval() improved. - - Thu Jun 25 00:28:12 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.11. - - * Colon expressions added. - * For command added, but the implementation needs work. - - Wed Jun 24 15:09:36 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.10. - - * Cheesy signal handler added to catch interrupts. - - * Matrix input works, even for nested matrices. Some error - checking is done while the matrix is evaluated to ensure that - the number of rows and columns match up. - - Mon Jun 22 00:21:49 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.9. - - * Command line matrix input partially implemented. It's not yet - possible to enter nested matrices, but it is possible to enter - simple matrices (e.g. [1,2;a,b+c], where a, b, and c are scalars. - - * Version 0.8. - - * If commands added. - - * Version 0.7. - - * Command chains added. - * Boolean operations added, tested for scalars. - * While loop added, tested for simple commands. - - Fri Jun 19 05:50:44 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.6. - - At this early stage, while a lot of changes are being made very - quickly, ChangeLog entries will probably just list features added. - - * Variable assignment works for scalars. - * Simple scalar expressions work. - - Thu Jun 18 06:44:24 1992 John W. Eaton (jwe@schoch.che.utexas.edu) - - * Version 0.5. - - * src/version.h: For all the pre-alpha distributions, count - versions as 0.1, etc. instead of 0.01. - - * Makefile: (dist) Automatically update version_string in - src/version.h. - - * symtab.h, symbtab.cc: New files for symbol tables. - - * tree.h, tree.cc: New files for parse trees. - - * Lots of work unrecorded here. Octave is now self-contained, the - tree routines are being redesigned, etc. - - Fri Mar 20 17:03:16 1992 John W. Eaton (jwe@andy.che.utexas.edu) - - * Version 0.02. Octave understands some simple matrix - expressions, but it is not yet possible for matrix elements to - be constructed from expressions. - - Thu Mar 19 06:13:39 1992 John W. Eaton (jwe@andy.che.utexas.edu) - - * Version 0.01. Octave understands simple scalar expressions. - Hey, Hey! It is not yet self contained -- I'm still linking to - the old libraries in /usr/local/c++-classes, and this isn't likely - to change for a while. (Other things are much more important than - making the distribution work on other machines. Sorry...) - - Fri Feb 21 05:06:38 1992 John W. Eaton (jwe@andy.che.utexas.edu) - - * Version 0.00. This includes the basic directory structure, - makefiles, and a lot of the old Fortran source, including a way to - make a libcruft.a. Octave compiles and accepts input (with - history and editing) but doesn't do much else. - - Wed Feb 19 06:20:44 1992 John W. Eaton (jwe@andy.che.utexas.edu) - - * ChangeLog: New file. --- 0 ---- diff -cNr octave-3.4.0/common.mk octave-3.4.1/common.mk *** octave-3.4.0/common.mk 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/common.mk 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,670 **** - SHELL = /bin/sh - - AWK = @AWK@ - export AWK - - SED = @SED@ - export SED - - FIND = @FIND@ - export FIND - - PERL = @PERL@ - export PERL - - PYTHON = @PYTHON@ - - GNUPLOT = @GNUPLOT@ - - DESKTOP_FILE_INSTALL = @DESKTOP_FILE_INSTALL@ - - OCTAVE_VERSION = @OCTAVE_VERSION@ - OCTAVE_API_VERSION_NUMBER = @OCTAVE_API_VERSION_NUMBER@ - OCTAVE_API_VERSION = @OCTAVE_API_VERSION@ - OCTAVE_RELEASE_DATE = @OCTAVE_RELEASE_DATE@ - OCTAVE_COPYRIGHT = @OCTAVE_COPYRIGHT@ - - version = $(OCTAVE_VERSION) - api_version = $(OCTAVE_API_VERSION) - - ## AM_LIBTOOLFLAGS = --silent - - #### Start of system configuration section. #### - - EXEEXT = @EXEEXT@ - - BUILD_EXEEXT = @BUILD_EXEEXT@ - - LEX = @LEX@ - AM_LFLAGS = @LFLAGS@ - LEXLIB = @LEXLIB@ - - YACC = @YACC@ - AM_YFLAGS = -dv - - GPERF = @GPERF@ - - AR = @AR@ - ARFLAGS = @ARFLAGS@ - - TEMPLATE_AR = @TEMPLATE_AR@ - TEMPLATE_ARFLAGS = @TEMPLATE_ARFLAGS@ - - RANLIB = @RANLIB@ - - LN_S = @LN_S@ - - MAKEINFO = @MAKEINFO@ - TEXI2DVI = @TEXI2DVI@ - TEXI2PDF = @TEXI2PDF@ - - GHOSTSCRIPT = @GHOSTSCRIPT@ - - DEFAULT_PAGER = @DEFAULT_PAGER@ - - ENABLE_DYNAMIC_LINKING = @ENABLE_DYNAMIC_LINKING@ - - SHLEXT = @SHLEXT@ - SHLEXT_VER = @SHLEXT_VER@ - SHLLIB = @SHLLIB@ - SHLLIB_VER = @SHLLIB_VER@ - SHLBIN = @SHLBIN@ - SHLBIN_VER = @SHLBIN_VER@ - SHLLINKEXT= - - LIBEXT = a - LIBPRE = @LIBPRE@ - SHLPRE = @SHLPRE@ - SHLLIBPRE = @SHLLIBPRE@ - SHLBINPRE = @SHLBINPRE@ - - # Fortran compiler flags. - - FC = @FC@ - F77 = @F77@ - AM_FFLAGS = @FFLAGS@ - FPICFLAG = @FPICFLAG@ - ALL_FFLAGS = $(FFLAGS) - F77_FLOAT_STORE_FLAG = @F77_FLOAT_STORE_FLAG@ - F77_INTEGER_8_FLAG = @F77_INTEGER_8_FLAG@ - - F77_TOLOWER=@F77_TOLOWER@ - F77_APPEND_UNDERSCORE=@F77_TOLOWER@ - F77_APPEND_EXTRA_UNDERSCORE=@F77_TOLOWER@ - - X11_INCFLAGS = @X11_INCFLAGS@ - X11_LIBS = @X11_LIBS@ - - CARBON_LIBS = @CARBON_LIBS@ - - MAGICK_CPPFLAGS = @MAGICK_CPPFLAGS@ - MAGICK_LDFLAGS = @MAGICK_LDFLAGS@ - MAGICK_LIBS = @MAGICK_LIBS@ - - PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ - PTHREAD_LIBS = @PTHREAD_LIBS@ - - LIBFLAGS = -L$(top_builddir) - - DEFS = @DEFS@ - - UGLY_DEFS = @UGLY_DEFS@ - - CC = @CC@ - CC_VERSION = @CC_VERSION@ - CONFIGURE_CFLAGS = @CFLAGS@ - CPICFLAG = @CPICFLAG@ - XTRA_CFLAGS = @XTRA_CFLAGS@ - WARN_CFLAGS = @WARN_CFLAGS@ - AM_CFLAGS = $(CONFIGURE_CFLAGS) \ - $(INCFLAGS) $(DEFS) $(XTRA_CFLAGS) $(WARN_CFLAGS) $(CFLAGS) $(PTHREAD_CFLAGS) - BUG_CFLAGS = $(DEFS) $(XTRA_CFLAGS) $(WARN_CFLAGS) $(CFLAGS) - - BUILD_CC = @BUILD_CC@ - BUILD_CFLAGS = @BUILD_CFLAGS@ - - DEPEND_FLAGS = @DEPEND_FLAGS@ - DEPEND_EXTRA_SED_PATTERN = @DEPEND_EXTRA_SED_PATTERN@ - INCLUDE_DEPS = @INCLUDE_DEPS@ - # ifeq ($(INCLUDE_DEPS),false) - # omit_deps = true; - # endif - - GRAPHICS_CFLAGS = @GRAPHICS_CFLAGS@ - - CXX = @CXX@ - CXX_VERSION = @CXX_VERSION@ - CXXCPP = @CXXCPP@ - CONFIGURE_CXXFLAGS = @CXXFLAGS@ - CXXPICFLAG = @CXXPICFLAG@ - XTRA_CXXFLAGS = @XTRA_CXXFLAGS@ - WARN_CXXFLAGS = @WARN_CXXFLAGS@ - AM_CXXFLAGS = $(CONFIGURE_CXXFLAGS) \ - $(INCFLAGS) $(DEFS) $(XTRA_CXXFLAGS) $(WARN_CXXFLAGS) $(CXXFLAGS) $(PTHREAD_CFLAGS) - BUG_CXXFLAGS = $(DEFS) $(XTRA_CXXFLAGS) $(WARN_CXXFLAGS) $(CXXFLAGS) - - BUILD_CXX = @BUILD_CXX@ - BUILD_CXXFLAGS = @BUILD_CXXFLAGS@ - - NO_UNDEFINED_LDFLAG = @NO_UNDEFINED_LDFLAG@ - - LD_CXX = @LD_CXX@ - LD_STATIC_FLAG = @LD_STATIC_FLAG@ - #ALL_LDFLAGS = $(LIBFLAGS) $(LD_STATIC_FLAG) $(CPICFLAG) $(LDFLAGS) - - BUILD_LDFLAGS = @BUILD_LDFLAGS@ - - SH_LD = @SH_LD@ - SH_LDFLAGS = @SH_LDFLAGS@ - - DL_LD = @DL_LD@ - DL_LDFLAGS = @DL_LDFLAGS@ - - SONAME_FLAGS = @SONAME_FLAGS@ - - RDYNAMIC_FLAG = @RDYNAMIC_FLAG@ - - RLD_FLAG = @RLD_FLAG@ - - FLIBS = @FLIBS@ - - LIBOCTINTERP = @LIBOCTINTERP@ - LIBOCTAVE = @LIBOCTAVE@ - LIBCRUFT = @LIBCRUFT@ - - FT2_CFLAGS = @FT2_CFLAGS@ - FT2_LIBS = @FT2_LIBS@ - - HDF5_CPPFLAGS = @HDF5_CPPFLAGS@ - HDF5_LDFLAGS = @HDF5_LDFLAGS@ - HDF5_LIBS = @HDF5_LIBS@ - - Z_CPPFLAGS = @Z_CPPFLAGS@ - Z_LDFLAGS = @Z_LDFLAGS@ - Z_LIBS = @Z_LIBS@ - - GRAPHICS_LIBS = @GRAPHICS_LIBS@ - - QHULL_CPPFLAGS = @QHULL_CPPFLAGS@ - QHULL_LDFLAGS = @QHULL_LDFLAGS@ - QHULL_LIBS = @QHULL_LIBS@ - - REGEX_LIBS = @REGEX_LIBS@ - - LAPACK_LIBS = @LAPACK_LIBS@ - BLAS_LIBS = @BLAS_LIBS@ - - FFTW3_CPPFLAGS = @FFTW3_CPPFLAGS@ - FFTW3_LDFLAGS = @FFTW3_LDFLAGS@ - FFTW3_LIBS = @FFTW3_LIBS@ - - FFTW3F_CPPFLAGS = @FFTW3F_CPPFLAGS@ - FFTW3F_LDFLAGS = @FFTW3F_LDFLAGS@ - FFTW3F_LIBS = @FFTW3F_LIBS@ - - GLPK_CPPFLAGS = @GLPK_CPPFLAGS@ - GLPK_LDFLAGS = @GLPK_LDFLAGS@ - GLPK_LIBS = @GLPK_LIBS@ - - CURL_CPPFLAGS = @CURL_CPPFLAGS@ - CURL_LDFLAGS = @CURL_LDFLAGS@ - CURL_LIBS = @CURL_LIBS@ - - AMD_CPPFLAGS = @AMD_CPPFLAGS@ - AMD_LDFLAGS = @AMD_LDFLAGS@ - AMD_LIBS = @AMD_LIBS@ - - CAMD_CPPFLAGS = @CAMD_CPPFLAGS@ - CAMD_LDFLAGS = @CAMD_LDFLAGS@ - CAMD_LIBS = @CAMD_LIBS@ - - COLAMD_CPPFLAGS = @COLAMD_CPPFLAGS@ - COLAMD_LDFLAGS = @COLAMD_LDFLAGS@ - COLAMD_LIBS = @COLAMD_LIBS@ - - CCOLAMD_CPPFLAGS = @CCOLAMD_CPPFLAGS@ - CCOLAMD_LDFLAGS = @CCOLAMD_LDFLAGS@ - CCOLAMD_LIBS = @CCOLAMD_LIBS@ - - CHOLMOD_CPPFLAGS = @CHOLMOD_CPPFLAGS@ - CHOLMOD_LDFLAGS = @CHOLMOD_LDFLAGS@ - CHOLMOD_LIBS = @CHOLMOD_LIBS@ - - CXSPARSE_CPPFLAGS = @CXSPARSE_CPPFLAGS@ - CXSPARSE_LDFLAGS = @CXSPARSE_LDFLAGS@ - CXSPARSE_LIBS = @CXSPARSE_LIBS@ - - UMFPACK_CPPFLAGS = @UMFPACK_CPPFLAGS@ - UMFPACK_LDFLAGS = @UMFPACK_LDFLAGS@ - UMFPACK_LIBS = @UMFPACK_LIBS@ - - OPENGL_LIBS = @OPENGL_LIBS@ - - QRUPDATE_CPPFLAGS = @QRUPDATE_CPPFLAGS@ - QRUPDATE_LDFLAGS = @QRUPDATE_LDFLAGS@ - QRUPDATE_LIBS = @QRUPDATE_LIBS@ - - READLINE_LIBS = @READLINE_LIBS@ - TERM_LIBS = @TERM_LIBS@ - - DL_LIBS = @DL_LIBS@ - LIBS = @LIBS@ - - ALL_CPPFLAGS = $(CPPFLAGS) $(HDF5_CPPFLAGS) $(Z_CPPFLAGS) - - SPARSE_XCPPFLAGS = \ - $(CHOLMOD_CPPFLAGS) $(UMFPACK_CPPFLAGS) \ - $(AMD_CPPFLAGS) $(CAMD_CPPFLAGS) $(COLAMD_CPPFLAGS) \ - $(CCOLAMD_CPPFLAGS) $(CXSPARSE_CPPFLAGS) - - SPARSE_XLDFLAGS = \ - $(CHOLMOD_LDFLAGS) $(UMFPACK_LDFLAGS) \ - $(AMD_LDFLAGS) $(CAMD_LDFLAGS) $(COLAMD_LDFLAGS) \ - $(CCOLAMD_LDFLAGS) $(CXSPARSE_LDFLAGS) - - ## Order matters, at least on some systems (Cygwin, for example). - SPARSE_XLIBS = \ - $(CHOLMOD_LIBS) $(UMFPACK_LIBS) \ - $(AMD_LIBS) $(CAMD_LIBS) $(COLAMD_LIBS) \ - $(CCOLAMD_LIBS) $(CXSPARSE_LIBS) - - FFTW_XCPPFLAGS = $(FFTW3_CPPFLAGS) $(FFTW3F_CPPFLAGS) - - FFTW_XLDFLAGS = $(FFTW3_LDFLAGS) $(FFTW3F_LDFLAGS) - - FFTW_XLIBS = $(FFTW3_LIBS) $(FFTW3F_LIBS) - - USE_64_BIT_IDX_T = @USE_64_BIT_IDX_T@ - OCTAVE_IDX_TYPE = @OCTAVE_IDX_TYPE@ - - TEXINFO_COLAMD = @TEXINFO_COLAMD@ - TEXINFO_CHOLMOD = @TEXINFO_CHOLMOD@ - TEXINFO_UMFPACK = @TEXINFO_UMFPACK@ - TEXINFO_QHULL = @TEXINFO_QHULL@ - - # The arguments passed to configure. - config_opts = @config_opts@ - - CONFIG_SUBDIRS = @subdirs@ - - # ==================== Where To Install Things ==================== - - # The default location for installation. Everything is placed in - # subdirectories of this directory. The default values for many of - # the variables below are expressed in terms of this one, so you may - # not need to change them. This defaults to /usr/local. - prefix = @prefix@ - - # Like `prefix', but used for architecture-specific files. - exec_prefix = @exec_prefix@ - - # Where to install Octave and other binaries that people will want to - # run directly. - bindir = @bindir@ - - # Normally the directory for installing executables that system - # administrators run. This is the same as libexecdir on Cygwin systems. - sbindir = @sbindir@ - - # The root of the directory tree for read-only - # architecture-independent data files. - datarootdir = @datarootdir@ - - # Where to install architecture-independent data files. ${fcnfiledir} - # and ${localfcnfiledir} are subdirectories of this. - datadir = @datadir@ - - libdir = @libdir@ - - # Where to install and expect extra files like NEWS and doc-cache. - octetcdir = @octetcdir@ - - # Where to install and expect libraries like libcruft.a, liboctave.a, - # and other architecture-dependent data. - octlibdir = @octlibdir@ - - # Where to install and expect executable programs to be run by Octave - # rather than directly by users. - libexecdir = @libexecdir@ - - # The prefix for Octave's include file directory. The default is - # ${prefix}/include - includedir = @includedir@ - - # Where to install Octave's man pages, and what extension they should - # have. The default is ${prefix}/man/man1 - mandir = @mandir@ - man1dir = @man1dir@ - man1ext = @man1ext@ - - # The full path to the default doc cache file. - doc_cache_file = @doc_cache_file@ - - # Where to install and expect the info files describing Octave.. - infodir = @infodir@ - - # The full path to the default info file. - infofile = @infofile@ - - # ==================== Octave-specific directories ==================== - - # These variables hold the values specific to Octave. They are - # based on the values of the standard Make variables above. - - # What is the path separation character - sepchar = @sepchar@ - - # Where to install Octave's include files. The default is - # ${includedir}/octave-${version}/octave - octincludedir = @octincludedir@ - - # Where to install the function file distributed with - # Octave. This includes the Octave version, so that the - # function files for different versions of Octave will install - # themselves in separate directories. - fcnfiledir = @fcnfiledir@ - - # Directories Octave should search for function files specific - # to this site (i.e. customizations), before consulting - # ${fcnfiledir}. This should be a colon-separated list of - # directories. - localfcnfiledir = @localfcnfiledir@ - localapifcnfiledir = @localapifcnfiledir@ - localverfcnfiledir = @localverfcnfiledir@ - - # Where to put executables to be run by Octave rather than - # the user. This path usually includes the Octave version - # and configuration name, so that multiple configurations - # for multiple versions of Octave may be installed at once. - archlibdir = @archlibdir@ - - # Where to put executables to be run by Octave rather than by the - # user that are specific to this site. - localarchlibdir = @localarchlibdir@ - localapiarchlibdir = @localapiarchlibdir@ - localverarchlibdir = @localverarchlibdir@ - - # Where to put object files that will by dynamically loaded. - # This path usually includes the Octave version and configuration - # name, so that multiple configurations for multiple versions of - # Octave may be installed at once. - octfiledir = @octfiledir@ - - # Directories Octave should search for object files that will be - # dynamically loaded and that are specific to this site - # (i.e. customizations), before consulting ${octfiledir}. This should - # be a colon-separated list of directories. - localoctfiledir = @localoctfiledir@ - localapioctfiledir = @localapioctfiledir@ - localveroctfiledir = @localveroctfiledir@ - - # Where Octave will search to find image files. - imagedir = @imagedir@ - - # The type of computer we are running on. - canonical_host_type = @canonical_host_type@ - - # Where Octave will look for startup files - startupfiledir = ${fcnfiledir}/startup - localstartupfiledir = ${localfcnfiledir}/startup - - # LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, PATH, ... - library_path_var = @library_path_var@ - - # The separator used for elements of the LD_PRELOAD variable (might be - # a space, so protect with $(null)) - null = - ldpreloadsep = $(null)@ldpreloadsep@$(null) - - NO_OCT_FILE_STRIP = @NO_OCT_FILE_STRIP@ - - # The following pattern rules and the substitution functions require - # GNU make. If you don't have it, get it! - - define simple_move_if_change_rule - if [ -s $@-t ]; then \ - $(top_srcdir)/move-if-change $@-t $@; \ - else \ - echo "$@-t is empty!" 1>&2; \ - rm -f $@-t; \ - exit 1; \ - fi - endef - - define cp_update_rule - if [ "x$(srcdir)" != "x." ] && [ -f $(srcdir)/$@ ] && [ ! -f $@ ]; then \ - cp $(srcdir)/$@ $@; \ - touch -r $(srcdir)/$@ $@; \ - fi - endef - - # Yes, the second sed command near the end is needed, to avoid limits - # in command lengths for some versions of sed. UGLY_DEFS is often - # quite large, so it makes sense to split this command there. - - define do_subst_config_vals - echo "making $@ from $<" - $(SED) < $< \ - -e "s|%NO_OCT_FILE_STRIP%|${NO_OCT_FILE_STRIP}|" \ - -e "s|%OCTAVE_BINDIR%|\"${bindir}\"|" \ - -e "s|%OCTAVE_CONF_ALL_CFLAGS%|\"${ALL_CFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_ALL_CXXFLAGS%|\"${ALL_CXXFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_ALL_FFLAGS%|\"${ALL_FFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_ALL_LDFLAGS%|\"${ALL_LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_AMD_CPPFLAGS%|\"${AMD_CPPFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_AMD_LDFLAGS%|\"${AMD_LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_AMD_LIBS%|\"${AMD_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_AR%|\"${AR}\"|" \ - -e "s|%OCTAVE_CONF_ARFLAGS%|\"${ARFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_BLAS_LIBS%|\"${BLAS_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_CAMD_CPPFLAGS%|\"${CAMD_CPPFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_CAMD_LDFLAGS%|\"${CAMD_LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_CAMD_LIBS%|\"${CAMD_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_CANONICAL_HOST_TYPE%|\"${canonical_host_type}\"|" \ - -e "s|%OCTAVE_CONF_CARBON_LIBS%|\"${CARBON_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_CC%|\"${CC}\"|" \ - -e "s|%OCTAVE_CONF_CC_VERSION%|\"${CC_VERSION}\"|" \ - -e "s|%OCTAVE_CONF_CCOLAMD_CPPFLAGS%|\"${CCOLAMD_CPPFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_CCOLAMD_LDFLAGS%|\"${CCOLAMD_LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_CCOLAMD_LIBS%|\"${CCOLAMD_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_CFLAGS%|\"${CFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_CHOLMOD_CPPFLAGS%|\"${CHOLMOD_CPPFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_CHOLMOD_LDFLAGS%|\"${CHOLMOD_LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_CHOLMOD_LIBS%|\"${CHOLMOD_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_COLAMD_CPPFLAGS%|\"${COLAMD_CPPFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_COLAMD_LDFLAGS%|\"${COLAMD_LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_COLAMD_LIBS%|\"${COLAMD_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_CPICFLAG%|\"${CPICFLAG}\"|" \ - -e "s|%OCTAVE_CONF_CPPFLAGS%|\"${CPPFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_CURL_CPPFLAGS%|\"${CURL_CPPFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_CURL_LDFLAGS%|\"${CURL_LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_CURL_LIBS%|\"${CURL_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_CXSPARSE_CPPFLAGS%|\"${CXSPARSE_CPPFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_CXSPARSE_LDFLAGS%|\"${CXSPARSE_LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_CXSPARSE_LIBS%|\"${CXSPARSE_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_CXX%|\"${CXX}\"|" \ - -e "s|%OCTAVE_CONF_CXXCPP%|\"${CXXCPP}\"|" \ - -e "s|%OCTAVE_CONF_CXXFLAGS%|\"${CXXFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_CXXPICFLAG%|\"${CXXPICFLAG}\"|" \ - -e "s|%OCTAVE_CONF_CXX_VERSION%|\"${CXX_VERSION}\"|" \ - -e "s|%OCTAVE_CONF_DEFAULT_PAGER%|\"${DEFAULT_PAGER}\"|" \ - -e "s|%OCTAVE_CONF_DEPEND_FLAGS%|\"${DEPEND_FLAGS}\"|" \ - -e "s|%OCTAVE_CONF_DEPEND_EXTRA_SED_PATTERN%|\"${DEPEND_EXTRA_SED_PATTERN}\"|" \ - -e "s|%OCTAVE_CONF_DL_LD%|\"${DL_LD}\"|" \ - -e "s|%OCTAVE_CONF_DL_LDFLAGS%|\"${DL_LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_DL_LIBS%|\"${DL_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_EXEEXT%|\"${EXEEXT}\"|" \ - -e "s|%OCTAVE_CONF_F77%|\"${F77}\"|" \ - -e "s|%OCTAVE_CONF_F77_FLOAT_STORE_FLAG%|\"${F77_FLOAT_STORE_FLAG}\"|" \ - -e "s|%OCTAVE_CONF_F77_INTEGER_8_FLAG%|\"${F77_INTEGER_8_FLAG}\"|" \ - -e "s|%OCTAVE_CONF_FC%|\"${FC}\"|" \ - -e "s|%OCTAVE_CONF_FFLAGS%|\"${FFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_FFTW3_CPPFLAGS%|\"${FFTW3_CPPFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_FFTW3_LDFLAGS%|\"${FFTW3_LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_FFTW3_LIBS%|\"${FFTW3_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_FFTW3F_CPPFLAGS%|\"${FFTW3F_CPPFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_FFTW3F_LDFLAGS%|\"${FFTW3F_LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_FFTW3F_LIBS%|\"${FFTW3F_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_FLIBS%|\"${FLIBS}\"|" \ - -e "s|%OCTAVE_CONF_FPICFLAG%|\"${FPICFLAG}\"|" \ - -e "s|%OCTAVE_CONF_FT2_LIBS%|\"${FT2_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_GLPK_CPPFLAGS%|\"${GLPK_CPPFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_GLPK_LDFLAGS%|\"${GLPK_LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_GLPK_LIBS%|\"${GLPK_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_GNUPLOT%|\"${GNUPLOT}\"|" \ - -e "s|%OCTAVE_CONF_GRAPHICS_LIBS%|\"${GRAPHICS_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_HDF5_CPPFLAGS%|\"${HDF5_CPPFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_HDF5_LDFLAGS%|\"${HDF5_LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_HDF5_LIBS%|\"${HDF5_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_INCFLAGS%|\"${INCFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_INCLUDEDIR%|\"${includedir}\"|" \ - -e "s|%OCTAVE_CONF_LAPACK_LIBS%|\"${LAPACK_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_LD_CXX%|\"${LD_CXX}\"|" \ - -e "s|%OCTAVE_CONF_LDFLAGS%|\"${LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_LD_STATIC_FLAG%|\"${LD_STATIC_FLAG}\"|" \ - -e "s|%OCTAVE_CONF_LEX%|\"${LEX}\"|" \ - -e "s|%OCTAVE_CONF_LEXLIB%|\"${LEXLIB}\"|" \ - -e "s|%OCTAVE_CONF_LFLAGS%|\"${LFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_LIBCRUFT%|\"${LIBCRUFT}\"|" \ - -e "s|%OCTAVE_CONF_LIBDIR%|\"${libdir}\"|" \ - -e "s|%OCTAVE_CONF_LIBEXT%|\"${LIBEXT}\"|" \ - -e "s|%OCTAVE_CONF_LIBFLAGS%|\"${LIBFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_LIBOCTAVE%|\"${LIBOCTAVE}\"|" \ - -e "s|%OCTAVE_CONF_LIBOCTINTERP%|\"${LIBOCTINTERP}\"|" \ - -e "s|%OCTAVE_CONF_LIBS%|\"${LIBS}\"|" \ - -e "s|%OCTAVE_CONF_LN_S%|\"${LN_S}\"|" \ - -e "s|%OCTAVE_CONF_MAGICK_CPPFLAGS%|\"${MAGICK_CPPFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_MAGICK_LDFLAGS%|\"${MAGICK_LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_MAGICK_LIBS%|\"${MAGICK_LIBS}\"|" \ - -e 's|%OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS%|\"@MKOCTFILE_DL_LDFLAGS@\"|' \ - -e "s|%OCTAVE_CONF_OCTINCLUDEDIR%|\"${octincludedir}\"|" \ - -e "s|%OCTAVE_CONF_OCTLIBDIR%|\"${octlibdir}\"|" \ - -e "s|%OCTAVE_CONF_OPENGL_LIBS%|\"${OPENGL_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_PREFIX%|\"${prefix}\"|" \ - -e "s|%OCTAVE_CONF_PTHREAD_CFLAGS%|\"${PTHREAD_CFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_PTHREAD_LIBS%|\"${PTHREAD_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_QHULL_CPPFLAGS%|\"${QHULL_CPPFLAGSS}\"|" \ - -e "s|%OCTAVE_CONF_QHULL_LDFLAGS%|\"${QHULL_LDFLAGSS}\"|" \ - -e "s|%OCTAVE_CONF_QHULL_LIBS%|\"${QHULL_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_QRUPDATE_CPPFLAGS%|\"${QRUPDATE_CPPFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_QRUPDATE_LDFLAGS%|\"${QRUPDATE_LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_QRUPDATE_LIBS%|\"${QRUPDATE_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_RANLIB%|\"${RANLIB}\"|" \ - -e "s|%OCTAVE_CONF_RDYNAMIC_FLAG%|\"${RDYNAMIC_FLAG}\"|" \ - -e "s|%OCTAVE_CONF_READLINE_LIBS%|\"${READLINE_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_REGEX_LIBS%|\"${REGEX_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_RLD_FLAG%|\"${RLD_FLAG}\"|" \ - -e "s|%OCTAVE_CONF_SED%|\"${SED}\"|" \ - -e "s|%OCTAVE_CONF_SHARED_LIBS%|\"${SHARED_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_SHLEXT%|\"${SHLEXT}\"|" \ - -e "s|%OCTAVE_CONF_SHLLINKEXT%|\"${SHLLINKEXT}\"|" \ - -e "s|%OCTAVE_CONF_SHLEXT_VER%|\"${SHLEXT_VER}\"|" \ - -e "s|%OCTAVE_CONF_SH_LD%|\"${SH_LD}\"|" \ - -e "s|%OCTAVE_CONF_SH_LDFLAGS%|\"${SH_LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_SONAME_FLAGS%|\"${SONAME_FLAGS}\"|" \ - -e "s|%OCTAVE_CONF_STATIC_LIBS%|\"${STATIC_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_TERM_LIBS%|\"${TERM_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_UGLY_DEFS%|\"${UGLY_DEFS}\"|" \ - -e "s|%OCTAVE_CONF_UMFPACK_CPPFLAGS%|\"${UMFPACK_CPPFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_UMFPACK_LDFLAGS%|\"${UMFPACK_LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_UMFPACK_LIBS%|\"${UMFPACK_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_USE_64_BIT_IDX_T%|\"${USE_64_BIT_IDX_T}\"|" \ - -e "s|%OCTAVE_CONF_VERSION%|\"${version}\"|" \ - -e "s|%OCTAVE_CONF_ENABLE_DYNAMIC_LINKING%|\"${ENABLE_DYNAMIC_LINKING}\"|" \ - -e "s|%OCTAVE_CONF_X11_INCFLAGS%|\"${X11_INCFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_X11_LIBS%|\"${X11_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_XTRA_CFLAGS%|\"${XTRA_CFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_XTRA_CXXFLAGS%|\"${XTRA_CXXFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_YACC%|\"${YACC}\"|" \ - -e "s|%OCTAVE_CONF_YFLAGS%|\"${YFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_Z_CPPFLAGS%|\"${Z_CPPFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_Z_LDFLAGS%|\"${Z_LDFLAGS}\"|" \ - -e "s|%OCTAVE_CONF_Z_LIBS%|\"${Z_LIBS}\"|" \ - -e "s|%OCTAVE_CONF_config_opts%|\"${config_opts}\"|" | \ - $(SED) -e "s|%OCTAVE_CONF_DEFS%|\"${UGLY_DEFS}\"|" > $@-t - $(simple_move_if_change_rule) - endef - - define do_subst_default_vals - echo "making $@ from $<" - $(SED) < $< > $@-t \ - -e "s|%OCTAVE_ARCHLIBDIR%|\"${archlibdir}\"|" \ - -e "s|%OCTAVE_BINDIR%|\"${bindir}\"|" \ - -e "s|%OCTAVE_CANONICAL_HOST_TYPE%|\"${canonical_host_type}\"|" \ - -e "s|%OCTAVE_DATADIR%|\"${datadir}\"|" \ - -e "s|%OCTAVE_DATAROOTDIR%|\"${datarootdir}\"|" \ - -e "s|%OCTAVE_DEFAULT_PAGER%|\"${DEFAULT_PAGER}\"|" \ - -e "s|%OCTAVE_DOC_CACHE_FILE%|\"${doc_cache_file}\"|" \ - -e "s|%OCTAVE_EXEC_PREFIX%|\"${exec_prefix}\"|" \ - -e "s|%OCTAVE_FCNFILEDIR%|\"${fcnfiledir}\"|" \ - -e "s|%OCTAVE_IMAGEDIR%|\"${imagedir}\"|" \ - -e "s|%OCTAVE_INCLUDEDIR%|\"${includedir}\"|" \ - -e "s|%OCTAVE_INFODIR%|\"${infodir}\"|" \ - -e "s|%OCTAVE_INFOFILE%|\"${infofile}\"|" \ - -e "s|%OCTAVE_LIBDIR%|\"${libdir}\"|" \ - -e "s|%OCTAVE_LIBEXECDIR%|\"${libexecdir}\"|" \ - -e "s|%OCTAVE_LOCALAPIFCNFILEDIR%|\"${localapifcnfiledir}\"|" \ - -e "s|%OCTAVE_LOCALAPIOCTFILEDIR%|\"${localapioctfiledir}\"|" \ - -e "s|%OCTAVE_LOCALARCHLIBDIR%|\"${localarchlibdir}\"|" \ - -e "s|%OCTAVE_LOCALFCNFILEDIR%|\"${localfcnfiledir}\"|" \ - -e "s|%OCTAVE_LOCALOCTFILEDIR%|\"${localoctfiledir}\"|" \ - -e "s|%OCTAVE_LOCALSTARTUPFILEDIR%|\"${localstartupfiledir}\"|" \ - -e "s|%OCTAVE_LOCALAPIARCHLIBDIR%|\"${localapiarchlibdir}\"|" \ - -e "s|%OCTAVE_LOCALVERARCHLIBDIR%|\"${localverarchlibdir}\"|" \ - -e "s|%OCTAVE_LOCALVERFCNFILEDIR%|\"${localverfcnfiledir}\"|" \ - -e "s|%OCTAVE_LOCALVEROCTFILEDIR%|\"${localveroctfiledir}\"|" \ - -e "s|%OCTAVE_MAN1DIR%|\"${man1dir}\"|" \ - -e "s|%OCTAVE_MAN1EXT%|\"${man1ext}\"|" \ - -e "s|%OCTAVE_MANDIR%|\"${mandir}\"|" \ - -e "s|%OCTAVE_OCTFILEDIR%|\"${octfiledir}\"|" \ - -e "s|%OCTAVE_OCTETCDIR%|\"${octetcdir}\"|" \ - -e "s|%OCTAVE_OCTINCLUDEDIR%|\"${octincludedir}\"|" \ - -e "s|%OCTAVE_OCTLIBDIR%|\"${octlibdir}\"|" \ - -e "s|%OCTAVE_STARTUPFILEDIR%|\"${startupfiledir}\"|" \ - -e "s|%OCTAVE_PREFIX%|\"${prefix}\"|" \ - -e "s|%OCTAVE_API_VERSION%|\"${api_version}\"|" \ - -e "s|%OCTAVE_RELEASE%|\"${OCTAVE_RELEASE}\"|" \ - -e "s|%OCTAVE_VERSION%|\"${version}\"|" - $(simple_move_if_change_rule) - endef - - define do_subst_script_vals - echo "making $@ from $<" - $(SED) < $< \ - -e "s|%AWK%|${AWK}|g" \ - -e "s|%FIND%|${FIND}|g" \ - -e "s|%SED%|${SED}|g" \ - -e "s|%library_path_var%|${library_path_var}|g" \ - -e "s|%liboctinterp%|${SHLPRE}octinterp.${SHLEXT}|g" \ - -e "s|%liboctave%|${SHLPRE}octave.${SHLEXT}|g" \ - -e "s|%libcruft%|${SHLPRE}cruft.${SHLEXT}|g" \ - -e "s|%ldpreloadsep%|${ldpreloadsep}|g" \ - -e "s|%srcdir%|${srcdir}|" \ - -e "s|%top_srcdir%|${top_srcdir}|" \ - -e "s|%abs_top_srcdir%|${abs_top_srcdir}|" \ - -e "s|%builddir%|$(shell pwd)|" > $@-t - $(simple_move_if_change_rule) - endef - - define do_script_install - $(top_srcdir)/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) - for f in $(FCN_FILES); do \ - fbase=`basename $$f`; \ - rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ - $(INSTALL_DATA) $$f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ - done - $(top_srcdir)/mkpkgadd $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) > $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD.t - if [ -n "`cat $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD.t`" ]; then \ - $(INSTALL_DATA) $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD.t $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD ; \ - else \ - rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD.t ; \ - fi - endef - - define do_script_uninstall - for f in $(FCN_FILES_NO_DIR); \ - do rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$f; \ - done - rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/PKG_ADD - -rmdir $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) - endef --- 0 ---- diff -cNr octave-3.4.0/config.guess octave-3.4.1/config.guess *** octave-3.4.0/config.guess 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/config.guess 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,1542 **** - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 - # Free Software Foundation, Inc. - - timestamp='2008-11-15' - - # This file 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 2 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, write to the Free Software - # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA - # 02110-1301, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - - - # Originally written by Per Bothner . - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # This script attempts to guess a canonical system name similar to - # config.sub. If it succeeds, it prints the system name on stdout, and - # exits with 0. Otherwise, it exits with 1. - # - # The plan is that this can be called by configure scripts if you - # don't specify an explicit build system type. - - me=`echo "$0" | sed -e 's,.*/,,'` - - usage="\ - Usage: $0 [OPTION] - - Output the configuration name of the system \`$me' is run on. - - Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. - Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, - 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac - done - - if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 - fi - - trap 'exit 1' 1 2 15 - - # CC_FOR_BUILD -- compiler used by this script. Note that the use of a - # compiler to aid in system detection is discouraged as it requires - # temporary files to be created and, as you can see below, it is a - # headache to deal with in a portable fashion. - - # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still - # use `HOST_CC' if defined, but it is deprecated. - - # Portable tmp directory creation inspired by the Autoconf team. - - set_cc_for_build=' - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; - dummy=$tmp/dummy ; - tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; - case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; - esac ; set_cc_for_build= ;' - - # This is needed to find uname on a Pyramid OSx when run in the BSD universe. - # (ghazi@noc.rutgers.edu 1994-08-24) - if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH - fi - - UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown - UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown - UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown - UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - - # Note: order is significant - the case branches are not exclusive. - - case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" - # If there is a compiler, see if it is configured for 64-bit objects. - # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. - # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if echo '\n#ifdef __amd64\nIS_64BIT_ARCH\n#endif' | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - SUN_ARCH="x86_64" - fi - fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __cplusplus - #include /* for printf() prototype */ - int main (int argc, char *argv[]) { - #else - int main (argc, argv) int argc; char *argv[]; { - #endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } - EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } - EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } - EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } - EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - *:Interix*:[3456]*) - case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - EM64T | authenticamd | genuineintel) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - IA64) - echo ia64-unknown-interix${UNAME_RELEASE} - exit ;; - esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - arm*:Linux:*:*) - eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - echo ${UNAME_MACHINE}-unknown-linux-gnu - else - echo ${UNAME_MACHINE}-unknown-linux-gnueabi - fi - exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) - echo cris-axis-linux-gnu - exit ;; - crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu - exit ;; - frv:Linux:*:*) - echo frv-unknown-linux-gnu - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif - EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif - EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - or32:Linux:*:*) - echo or32-unknown-linux-gnu - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; - padre:Linux:*:*) - echo sparc-unknown-linux-gnu - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu - exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit ;; - xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif - EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^LIBC/{ - s: ::g - p - }'`" - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit - } - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NSE-?:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 - #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - - eval $set_cc_for_build - cat >$dummy.c < - # include - #endif - main () - { - #if defined (sony) - #if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); - #else - #include - printf ("m68k-sony-newsos%s\n", - #ifdef NEWSOS4 - "4" - #else - "" - #endif - ); exit (0); - #endif - #endif - - #if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); - #endif - - #if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); - #endif - - #if defined (NeXT) - #if !defined (__ARCHITECTURE__) - #define __ARCHITECTURE__ "m68k" - #endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); - #endif - - #if defined (MULTIMAX) || defined (n16) - #if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); - #else - #if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); - #else - printf ("ns32k-encore-bsd\n"); exit (0); - #endif - #endif - #endif - - #if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); - #endif - - #if defined (sequent) - #if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); - #endif - #if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); - #endif - #endif - - #if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - - #endif - - #if defined (vax) - # if !defined (ultrix) - # include - # if defined (BSD) - # if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); - # else - # if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); - # else - printf ("vax-dec-bsd\n"); exit (0); - # endif - # endif - # else - printf ("vax-dec-bsd\n"); exit (0); - # endif - # else - printf ("vax-dec-ultrix\n"); exit (0); - # endif - #endif - - #if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); - #endif - - exit (1); - } - EOF - - $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - - # Apollos put the system type in the environment. - - test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - - # Convex versions that predate uname can use getsysinfo(1) - - if [ -x /usr/convex/getsysinfo ] - then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac - fi - - cat >&2 < in order to provide the needed - information to handle your system. - - config.guess timestamp = $timestamp - - uname -m = `(uname -m) 2>/dev/null || echo unknown` - uname -r = `(uname -r) 2>/dev/null || echo unknown` - uname -s = `(uname -s) 2>/dev/null || echo unknown` - uname -v = `(uname -v) 2>/dev/null || echo unknown` - - /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` - /bin/uname -X = `(/bin/uname -X) 2>/dev/null` - - hostinfo = `(hostinfo) 2>/dev/null` - /bin/universe = `(/bin/universe) 2>/dev/null` - /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` - /bin/arch = `(/bin/arch) 2>/dev/null` - /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` - /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - - UNAME_MACHINE = ${UNAME_MACHINE} - UNAME_RELEASE = ${UNAME_RELEASE} - UNAME_SYSTEM = ${UNAME_SYSTEM} - UNAME_VERSION = ${UNAME_VERSION} - EOF - - exit 1 - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) - # time-stamp-start: "timestamp='" - # time-stamp-format: "%:y-%02m-%02d" - # time-stamp-end: "'" - # End: --- 0 ---- diff -cNr octave-3.4.0/config.h.in octave-3.4.1/config.h.in *** octave-3.4.0/config.h.in 2011-02-08 05:03:33.000000000 -0500 --- octave-3.4.1/config.h.in 2011-06-15 11:31:24.000000000 -0400 *************** *** 101,122 **** /* Define if F77 and FC dummy `main' functions are identical. */ #undef FC_DUMMY_MAIN_EQ_F77 - /* Define on systems for which file names may have a so-called `drive letter' - prefix, define this to compute the length of that prefix, including the - colon. */ - #undef FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX - - /* Define if the backslash character may also serve as a file name component - separator. */ - #undef FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR - - /* Define if a drive letter prefix denotes a relative path if it is not - followed by a file name component separator. */ - #undef FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE - /* Define to volatile if you need truncating intermediate FP results */ #undef FLOAT_TRUNCATE /* Define to 1 if mkdir mistakenly creates a directory given with a trailing dot component. */ #undef FUNC_MKDIR_DOT_BUG --- 101,112 ---- /* Define if F77 and FC dummy `main' functions are identical. */ #undef FC_DUMMY_MAIN_EQ_F77 /* Define to volatile if you need truncating intermediate FP results */ #undef FLOAT_TRUNCATE + /* Define to 1 if the system's ftello function has the Solaris bug. */ + #undef FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE + /* Define to 1 if mkdir mistakenly creates a directory given with a trailing dot component. */ #undef FUNC_MKDIR_DOT_BUG *************** *** 140,145 **** --- 130,147 ---- whether the gnulib module fdopendir shall be considered present. */ #undef GNULIB_FDOPENDIR + /* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module fflush shall be considered present. */ + #undef GNULIB_FFLUSH + + /* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module getcwd shall be considered present. */ + #undef GNULIB_GETCWD + + /* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module strerror shall be considered present. */ + #undef GNULIB_STRERROR + /* Define to 1 when the gnulib module canonicalize_file_name should be tested. */ #undef GNULIB_TEST_CANONICALIZE_FILE_NAME *************** *** 171,179 **** --- 173,199 ---- /* Define to 1 when the gnulib module fdopendir should be tested. */ #undef GNULIB_TEST_FDOPENDIR + /* Define to 1 when the gnulib module fflush should be tested. */ + #undef GNULIB_TEST_FFLUSH + /* Define to 1 when the gnulib module floor should be tested. */ #undef GNULIB_TEST_FLOOR + /* Define to 1 when the gnulib module fpurge should be tested. */ + #undef GNULIB_TEST_FPURGE + + /* Define to 1 when the gnulib module fseek should be tested. */ + #undef GNULIB_TEST_FSEEK + + /* Define to 1 when the gnulib module fseeko should be tested. */ + #undef GNULIB_TEST_FSEEKO + + /* Define to 1 when the gnulib module ftell should be tested. */ + #undef GNULIB_TEST_FTELL + + /* Define to 1 when the gnulib module ftello should be tested. */ + #undef GNULIB_TEST_FTELLO + /* Define to 1 when the gnulib module getcwd should be tested. */ #undef GNULIB_TEST_GETCWD *************** *** 198,203 **** --- 218,226 ---- /* Define to 1 when the gnulib module link should be tested. */ #undef GNULIB_TEST_LINK + /* Define to 1 when the gnulib module lseek should be tested. */ + #undef GNULIB_TEST_LSEEK + /* Define to 1 when the gnulib module lstat should be tested. */ #undef GNULIB_TEST_LSTAT *************** *** 473,478 **** --- 496,513 ---- */ #undef HAVE_DECL_FLOORF + /* Define to 1 if you have the declaration of `fpurge', and to 0 if you don't. + */ + #undef HAVE_DECL_FPURGE + + /* Define to 1 if you have the declaration of `fseeko', and to 0 if you don't. + */ + #undef HAVE_DECL_FSEEKO + + /* Define to 1 if you have the declaration of `ftello', and to 0 if you don't. + */ + #undef HAVE_DECL_FTELLO + /* Define to 1 if you have the declaration of `getcwd', and to 0 if you don't. */ #undef HAVE_DECL_GETCWD *************** *** 497,506 **** don't. */ #undef HAVE_DECL_ISBLANK - /* Define to 1 if you have the declaration of `iswblank', and to 0 if you - don't. */ - #undef HAVE_DECL_ISWBLANK - /* Define to 1 if you have the declaration of `localtime_r', and to 0 if you don't. */ #undef HAVE_DECL_LOCALTIME_R --- 532,537 ---- *************** *** 537,546 **** */ #undef HAVE_DECL_STRDUP - /* Define to 1 if you have the declaration of `strerror', and to 0 if you - don't. */ - #undef HAVE_DECL_STRERROR - /* Define to 1 if you have the declaration of `strerror_r', and to 0 if you don't. */ #undef HAVE_DECL_STRERROR_R --- 568,573 ---- *************** *** 549,558 **** don't. */ #undef HAVE_DECL_STRMODE - /* Define to 1 if you have the declaration of `strncasecmp', and to 0 if you - don't. */ - #undef HAVE_DECL_STRNCASECMP - /* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you don't. */ #undef HAVE_DECL_SYS_SIGLIST --- 576,581 ---- *************** *** 694,699 **** --- 717,725 ---- /* Define to 1 if you have the `fork' function. */ #undef HAVE_FORK + /* Define to 1 if you have the `fpurge' function. */ + #undef HAVE_FPURGE + /* Define if framework CARBON is available. */ #undef HAVE_FRAMEWORK_CARBON *************** *** 703,708 **** --- 729,737 ---- /* Define to 1 if you have Freetype library. */ #undef HAVE_FREETYPE + /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ + #undef HAVE_FSEEKO + /* Define to 1 if you have the `fstatat' function. */ #undef HAVE_FSTATAT *************** *** 842,850 **** /* Define to 1 if you have the `isnan' function. */ #undef HAVE_ISNAN - /* Define to 1 if you have the `iswblank' function. */ - #undef HAVE_ISWBLANK - /* Define to 1 if you have the `iswcntrl' function. */ #undef HAVE_ISWCNTRL --- 871,876 ---- *************** *** 942,950 **** /* Define to 1 if declares mbstate_t. */ #undef HAVE_MBSTATE_T - /* Define to 1 if you have the `memchr' function. */ - #undef HAVE_MEMCHR - /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H --- 968,973 ---- *************** *** 1000,1008 **** /* Define to 1 if you have the `pathconf' function. */ #undef HAVE_PATHCONF - /* Define if PCRE library is available. */ - #undef HAVE_PCRE - /* Define to 1 if you have the `pcre_compile' function. */ #undef HAVE_PCRE_COMPILE --- 1023,1028 ---- *************** *** 1015,1020 **** --- 1035,1043 ---- /* Define to 1 if you have the header file. */ #undef HAVE_POLL_H + /* Define to 1 if you have the `pstat_getdynamic' function. */ + #undef HAVE_PSTAT_GETDYNAMIC + /* Define if you have POSIX threads libraries and header files. */ #undef HAVE_PTHREAD *************** *** 1039,1047 **** /* Define if qrupdate supports LU updates */ #undef HAVE_QRUPDATE_LUU - /* Define to 1 if you have the header file. */ - #undef HAVE_RANDOM_H - /* Define to 1 if accept is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ACCEPT --- 1062,1067 ---- *************** *** 1214,1222 **** --- 1234,1248 ---- /* Define to 1 if grantpt is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GRANTPT + /* Define to 1 if group_member is declared even after undefining macros. */ + #undef HAVE_RAW_DECL_GROUP_MEMBER + /* Define to 1 if initstat_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_INITSTAT_R + /* Define to 1 if iswctype is declared even after undefining macros. */ + #undef HAVE_RAW_DECL_ISWCTYPE + /* Define to 1 if lchmod is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LCHMOD *************** *** 1439,1447 **** /* Define to 1 if stpncpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STPNCPY - /* Define to 1 if strcasecmp is declared even after undefining macros. */ - #undef HAVE_RAW_DECL_STRCASECMP - /* Define to 1 if strcasestr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRCASESTR --- 1465,1470 ---- *************** *** 1454,1462 **** /* Define to 1 if strerror_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRERROR_R - /* Define to 1 if strncasecmp is declared even after undefining macros. */ - #undef HAVE_RAW_DECL_STRNCASECMP - /* Define to 1 if strncat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRNCAT --- 1477,1482 ---- *************** *** 1505,1510 **** --- 1525,1533 ---- /* Define to 1 if tmpfile is declared even after undefining macros. */ #undef HAVE_RAW_DECL_TMPFILE + /* Define to 1 if towctrans is declared even after undefining macros. */ + #undef HAVE_RAW_DECL_TOWCTRANS + /* Define to 1 if trunc is declared even after undefining macros. */ #undef HAVE_RAW_DECL_TRUNC *************** *** 1622,1627 **** --- 1645,1656 ---- /* Define to 1 if wctob is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCTOB + /* Define to 1 if wctrans is declared even after undefining macros. */ + #undef HAVE_RAW_DECL_WCTRANS + + /* Define to 1 if wctype is declared even after undefining macros. */ + #undef HAVE_RAW_DECL_WCTYPE + /* Define to 1 if wcwidth is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCWIDTH *************** *** 1652,1663 **** /* Define to 1 if you have the `realpath' function. */ #undef HAVE_REALPATH - /* Define if regex library is available. */ - #undef HAVE_REGEX - - /* Define to 1 if you have the `regexec' function. */ - #undef HAVE_REGEXEC - /* Define to 1 if you have the `resolvepath' function. */ #undef HAVE_RESOLVEPATH --- 1681,1686 ---- *************** *** 1673,1678 **** --- 1696,1710 ---- /* Define to 1 if the system has the type `sa_family_t'. */ #undef HAVE_SA_FAMILY_T + /* Define to 1 if you have the `sched_getaffinity' function. */ + #undef HAVE_SCHED_GETAFFINITY + + /* Define to 1 if sched_getaffinity has a glibc compatible declaration. */ + #undef HAVE_SCHED_GETAFFINITY_LIKE_GLIBC + + /* Define to 1 if you have the `sched_getaffinity_np' function. */ + #undef HAVE_SCHED_GETAFFINITY_NP + /* Define to 1 if you have the `select' function. */ #undef HAVE_SELECT *************** *** 1751,1759 **** /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H - /* Define to 1 if you have the `strcasecmp' function. */ - #undef HAVE_STRCASECMP - /* Define to 1 if you have the `strdup' function. */ #undef HAVE_STRDUP --- 1783,1788 ---- *************** *** 1766,1774 **** /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H - /* Define to 1 if you have the `strncasecmp' function. */ - #undef HAVE_STRNCASECMP - /* Define to 1 if you have the `strnlen' function. */ #undef HAVE_STRNLEN --- 1795,1800 ---- *************** *** 1785,1793 **** /* Define to 1 if `gr_passwd' is a member of `struct group'. */ #undef HAVE_STRUCT_GROUP_GR_PASSWD - /* Define to 1 if the system has the type `struct random_data'. */ - #undef HAVE_STRUCT_RANDOM_DATA - /* Define to 1 if `sa_sigaction' is a member of `struct sigaction'. */ #undef HAVE_STRUCT_SIGACTION_SA_SIGACTION --- 1811,1816 ---- *************** *** 1842,1847 **** --- 1865,1876 ---- /* Define to 1 if you have the `symlink' function. */ #undef HAVE_SYMLINK + /* Define to 1 if you have the `sysctl' function. */ + #undef HAVE_SYSCTL + + /* Define to 1 if you have the `sysmp' function. */ + #undef HAVE_SYSMP + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_BITYPES_H *************** *** 1871,1876 **** --- 1900,1908 ---- /* Define to 1 if you have the header file. */ #undef HAVE_SYS_POLL_H + /* Define to 1 if you have the header file. */ + #undef HAVE_SYS_PSTAT_H + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_RESOURCE_H *************** *** 1883,1888 **** --- 1915,1926 ---- /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H + /* Define to 1 if you have the header file. */ + #undef HAVE_SYS_SYSCTL_H + + /* Define to 1 if you have the header file. */ + #undef HAVE_SYS_SYSMP_H + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIMEB_H *************** *** 1895,1900 **** --- 1933,1941 ---- /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H + /* Define to 1 if you have the header file. */ + #undef HAVE_SYS_UIO_H + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_UTSNAME_H *************** *** 2074,2090 **** /* Define to 1 if you have the `_utime32' function. */ #undef HAVE__UTIME32 /* Define HOST_NAME_MAX when does not define it. */ #undef HOST_NAME_MAX /* Define to 1 if octave index type is long */ #undef IDX_TYPE_LONG ! #if FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR ! # define ISSLASH(C) ((C) == '/' || (C) == '\\') ! #else ! # define ISSLASH(C) ((C) == '/') ! #endif /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ --- 2115,2134 ---- /* Define to 1 if you have the `_utime32' function. */ #undef HAVE__UTIME32 + /* Define to 1 if you have the `__fpurge' function. */ + #undef HAVE___FPURGE + + /* Define to 1 if you have the `__freading' function. */ + #undef HAVE___FREADING + /* Define HOST_NAME_MAX when does not define it. */ #undef HOST_NAME_MAX /* Define to 1 if octave index type is long */ #undef IDX_TYPE_LONG ! /* Define to 1 if lseek does not detect pipes. */ ! #undef LSEEK_PIPE_BROKEN /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ *************** *** 2197,2205 **** */ #undef REPLACE_OPEN_DIRECTORY - /* Define this to 1 if strerror is broken. */ - #undef REPLACE_STRERROR - /* Define if vasnprintf exists but is overridden by gnulib. */ #undef REPLACE_VASNPRINTF --- 2241,2246 ---- *************** *** 2275,2287 **** /* Define to 1 if unlink() on a parent directory may succeed */ #undef UNLINK_PARENT_BUG - /* Define to the prefix of C symbols at the assembler and linker level, either - an underscore or empty. */ - #undef USER_LABEL_PREFIX - /* Define if using 64-bit integers for array dimensions and indexing */ #undef USE_64_BIT_IDX_T /* Define to use the readline library. */ #undef USE_READLINE --- 2316,2328 ---- /* Define to 1 if unlink() on a parent directory may succeed */ #undef UNLINK_PARENT_BUG /* Define if using 64-bit integers for array dimensions and indexing */ #undef USE_64_BIT_IDX_T + /* Define this if BLAS functions need to be wrapped (potentially needed for + 64-bit OSX only). */ + #undef USE_BLASWRAP + /* Define to use the readline library. */ #undef USE_READLINE *************** *** 2339,2344 **** --- 2380,2388 ---- /* Define if using HDF5 dll (Win32) */ #undef _HDF5USEDLL_ + /* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ + #undef _LARGEFILE_SOURCE + /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES *************** *** 2483,2488 **** --- 2527,2546 ---- is a misnomer outside of parameter lists. */ #define _UNUSED_PARAMETER_ _GL_UNUSED + /* The __pure__ attribute was added in gcc 2.96. */ + #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) + #else + # define _GL_ATTRIBUTE_PURE /* empty */ + #endif + + /* The __const__ attribute was added in gcc 2.95. */ + #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) + # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) + #else + # define _GL_ATTRIBUTE_CONST /* empty */ + #endif + #if !defined (GNULIB_NAMESPACE) diff -cNr octave-3.4.0/config.sub octave-3.4.1/config.sub *** octave-3.4.0/config.sub 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/config.sub 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,1685 **** - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 - # Free Software Foundation, Inc. - - timestamp='2009-03-07' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software - # can handle that machine. It does not imply ALL GNU software can. - # - # This file 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 2 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, write to the Free Software - # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA - # 02110-1301, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - - - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. - # If it is invalid, we print an error message on stderr and exit with code 1. - # Otherwise, we print the canonical config type on stdout and succeed. - - # This file is supposed to be the same for all GNU packages - # and recognize all the CPU types, system types and aliases - # that are meaningful with *any* GNU software. - # Each package is responsible for reporting which valid configurations - # it does not support. The user should be able to distinguish - # a failure to support a valid configuration from a meaningless - # configuration. - - # The goal of this file is to map all the various variations of a given - # machine specification into a single specification in the form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM - # or in some cases, the newer four-part form: - # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM - # It is wrong to echo any other type of specification. - - me=`echo "$0" | sed -e 's,.*/,,'` - - usage="\ - Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - - Canonicalize a configuration name. - - Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.sub ($timestamp) - - Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, - 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit ;; - - * ) - break ;; - esac - done - - case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; - esac - - # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; - esac - - ### Let's recognize common machines as not being operating systems so - ### that things like config.sub decstation-3100 work. We also - ### recognize some manufacturers as not being operating systems, so we - ### can provide default operating systems below. - case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - esac - - # Decode aliases for certain CPU-COMPANY combinations. - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ - | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | mt \ - | msp430 \ - | nios | nios2 \ - | ns16k | ns32k \ - | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - ms1) - basic_machine=mt-unknown - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nios-* | nios2-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; - # I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh5el) - basic_machine=sh5le-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; - tile*) - basic_machine=tile-unknown - os=-linux-gnu - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - - # Here we handle the default manufacturer of certain CPU types. It is in - # some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - esac - - # Here we canonicalize certain aliases for manufacturers. - case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; - esac - - # Decode manufacturer-specific aliases for certain operating systems. - - if [ x"$os" != x"" ] - then - case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -kopensolaris* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; - esac - else - - # Here we handle the default operating systems that come with various machines. - # The value should be what the vendor currently ships out the door with their - # machine or put another way, the most popular os provided with the machine. - - # Note that if you're going to try to match "-MANUFACTURER" here (say, - # "-sun"), then you have to tell the case statement up towards the top - # that MANUFACTURER isn't an operating system. Otherwise, code above - # will signal an error saying that MANUFACTURER isn't an operating - # system, and we'll never get to this point. - - case $basic_machine in - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - mep-*) - os=-elf - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; - esac - fi - - # Here we handle the case where we know the os, and the CPU type, but not the - # manufacturer. We pick the logical manufacturer. - vendor=unknown - case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; - esac - - echo $basic_machine$os - exit - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) - # time-stamp-start: "timestamp='" - # time-stamp-format: "%:y-%02m-%02d" - # time-stamp-end: "'" - # End: --- 0 ---- diff -cNr octave-3.4.0/configure octave-3.4.1/configure *** octave-3.4.0/configure 2011-02-08 05:03:31.000000000 -0500 --- octave-3.4.1/configure 2011-06-15 11:31:23.000000000 -0400 *************** *** 1,9 **** #! /bin/sh # From configure.ac Revision: 1.603 . # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.67 for GNU Octave 3.4.0. # ! # Report bugs to . # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, --- 1,9 ---- #! /bin/sh # From configure.ac Revision: 1.603 . # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.68 for GNU Octave 3.4.1. # ! # Report bugs to . # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, *************** *** 92,97 **** --- 92,98 ---- IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. + as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR *************** *** 174,180 **** as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 ! test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else --- 175,189 ---- as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 ! test \$(( 1 + 1 )) = 2 || exit 1 ! ! test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ! ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ! ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ! ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ! PATH=/empty FPATH=/empty; export PATH FPATH ! test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ ! || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else *************** *** 217,227 **** # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL ! exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : --- 226,243 ---- # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL ! case $- in # (((( ! *v*x* | *x*v* ) as_opts=-vx ;; ! *v* ) as_opts=-v ;; ! *x* ) as_opts=-x ;; ! * ) as_opts= ;; ! esac ! exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : *************** *** 231,241 **** $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else ! $as_echo "$0: Please tell bug-autoconf@gnu.org and bug@octave.org ! $0: about your system, including any error possibly output ! $0: before this message. Then install a modern shell, or ! $0: manually run the script under such a shell if you do ! $0: have one." fi exit 1 fi --- 247,257 ---- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else ! $as_echo "$0: Please tell bug-autoconf@gnu.org and ! $0: http://octave.org/bugs.html about your system, ! $0: including any error possibly output before this ! $0: message. Then install a modern shell, or manually run ! $0: the script under such a shell if you do have one." fi exit 1 fi *************** *** 529,683 **** # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - - # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} - case X$lt_ECHO in - X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` - ;; - esac - - ECHO=${lt_ECHO-echo} - if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift - elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : - elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then - # Yippee, $ECHO works! - : - else - # Restart under the correct shell. - exec $SHELL "$0" --no-reexec ${1+"$@"} - fi - - if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat <<_LT_EOF - $* - _LT_EOF - exit 0 - fi - - # The HP-UX ksh and POSIX shell print the target directory to stdout - # if CDPATH is set. - (unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - if test -z "$lt_ECHO"; then - if test "X${echo_test_string+set}" != Xset; then - # find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if { echo_test_string=`eval $cmd`; } 2>/dev/null && - { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null - then - break - fi - done - fi - - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : - else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$ECHO" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - ECHO='print -r' - elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} - else - # Try using printf. - ECHO='printf %s\n' - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - ECHO="$CONFIG_SHELL $0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$CONFIG_SHELL $0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do - if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "$0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} - else - # Oops. We lost completely, so just stick with echo. - ECHO=echo - fi - fi - fi - fi - fi - fi - - # Copy echo and quote the copy suitably for passing to libtool from - # the Makefile, instead of quoting the original, which is used later. - lt_ECHO=$ECHO - if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then - lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" - fi - - - test -n "$DJDIR" || exec 7<&0 &1 --- 545,552 ---- *************** *** 702,710 **** # Identity of this package. PACKAGE_NAME='GNU Octave' PACKAGE_TARNAME='octave' ! PACKAGE_VERSION='3.4.0' ! PACKAGE_STRING='GNU Octave 3.4.0' ! PACKAGE_BUGREPORT='bug@octave.org' PACKAGE_URL='http://www.gnu.org/software/octave/' ac_unique_file="src/octave.cc" --- 571,579 ---- # Identity of this package. PACKAGE_NAME='GNU Octave' PACKAGE_TARNAME='octave' ! PACKAGE_VERSION='3.4.1' ! PACKAGE_STRING='GNU Octave 3.4.1' ! PACKAGE_BUGREPORT='http://octave.org/bugs.html' PACKAGE_URL='http://www.gnu.org/software/octave/' ac_unique_file="src/octave.cc" *************** *** 867,873 **** LIPO NMEDIT DSYMUTIL ! lt_ECHO LN_S NM ac_ct_DUMPBIN --- 736,743 ---- LIPO NMEDIT DSYMUTIL ! MANIFEST_TOOL ! ac_ct_AR LN_S NM ac_ct_DUMPBIN *************** *** 921,927 **** Z_LDFLAGS Z_CPPFLAGS REGEX_LIBS ! WITH_PCRE_CONFIG TEXINFO_QHULL QHULL_LIBS QHULL_LDFLAGS --- 791,797 ---- Z_LDFLAGS Z_CPPFLAGS REGEX_LIBS ! HAVE_PCRE_CONFIG TEXINFO_QHULL QHULL_LIBS QHULL_LDFLAGS *************** *** 962,972 **** HAVE_WCTYPE_H NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H NEXT_WCTYPE_H REPLACE_ISWBLANK HAVE_ISWBLANK ! HAVE_ISWCNTRL HAVE_WINT_T - HAVE_WCHAR_H NEXT_AS_FIRST_DIRECTIVE_WCHAR_H NEXT_WCHAR_H HAVE_FEATURES_H --- 832,848 ---- HAVE_WCTYPE_H NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H NEXT_WCTYPE_H + HAVE_ISWCNTRL REPLACE_ISWBLANK + HAVE_WCTRANS_T + HAVE_WCTYPE_T HAVE_ISWBLANK ! GNULIB_TOWCTRANS ! GNULIB_WCTRANS ! GNULIB_ISWCTYPE ! GNULIB_WCTYPE ! GNULIB_ISWBLANK HAVE_WINT_T NEXT_AS_FIRST_DIRECTIVE_WCHAR_H NEXT_WCHAR_H HAVE_FEATURES_H *************** *** 980,985 **** --- 856,864 ---- TIME_H_DEFINES_STRUCT_TIMESPEC NEXT_AS_FIRST_DIRECTIVE_TIME_H NEXT_TIME_H + HAVE_SYS_UIO_H + NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H + NEXT_SYS_UIO_H HAVE_SYS_TIMES_H NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H NEXT_SYS_TIMES_H *************** *** 988,1005 **** GNULIB_TIMES NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H NEXT_SYS_STAT_H - NEXT_AS_FIRST_DIRECTIVE_STRINGS_H - NEXT_STRINGS_H NEXT_AS_FIRST_DIRECTIVE_STRING_H NEXT_STRING_H - HAVE_DECL_STRNCASECMP - HAVE_STRCASECMP - HAVE_RANDOM_H NEXT_AS_FIRST_DIRECTIVE_STDLIB_H NEXT_STDLIB_H NEXT_AS_FIRST_DIRECTIVE_STDIO_H NEXT_STDIO_H ! ASM_SYMBOL_PREFIX STDINT_H WINT_T_SUFFIX WCHAR_T_SUFFIX --- 867,880 ---- GNULIB_TIMES NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H NEXT_SYS_STAT_H NEXT_AS_FIRST_DIRECTIVE_STRING_H NEXT_STRING_H NEXT_AS_FIRST_DIRECTIVE_STDLIB_H NEXT_STDLIB_H NEXT_AS_FIRST_DIRECTIVE_STDIO_H NEXT_STDIO_H ! GL_GENERATE_STDINT_H_FALSE ! GL_GENERATE_STDINT_H_TRUE STDINT_H WINT_T_SUFFIX WCHAR_T_SUFFIX *************** *** 1021,1037 **** --- 896,918 ---- NEXT_STDINT_H HAVE_SYS_TYPES_H HAVE_INTTYPES_H + HAVE_WCHAR_H HAVE_UNSIGNED_LONG_LONG_INT HAVE_LONG_LONG_INT NEXT_AS_FIRST_DIRECTIVE_STDDEF_H NEXT_STDDEF_H + GL_GENERATE_STDDEF_H_FALSE + GL_GENERATE_STDDEF_H_TRUE STDDEF_H HAVE_WCHAR_T REPLACE_NULL HAVE__BOOL + GL_GENERATE_STDBOOL_H_FALSE + GL_GENERATE_STDBOOL_H_TRUE STDBOOL_H NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H NEXT_SIGNAL_H + HAVE_SIGHANDLER_T HAVE_TYPE_VOLATILE_SIG_ATOMIC_T HAVE_STRUCT_SIGACTION_SA_SIGACTION HAVE_SIGACTION *************** *** 1095,1100 **** --- 976,982 ---- REPLACE_STRNCAT REPLACE_STRERROR_R REPLACE_STRERROR + REPLACE_STRCHRNUL REPLACE_STRCASESTR REPLACE_STRSTR REPLACE_STRDUP *************** *** 1155,1160 **** --- 1037,1043 ---- GNULIB_MEMPCPY GNULIB_MEMMEM GNULIB_MEMCHR + LOCALE_FR LOCALE_FR_UTF8 LOCALE_ZH_CN LOCALE_JA *************** *** 1253,1258 **** --- 1136,1143 ---- NEXT_MATH_H LOCALCHARSET_TESTS_ENVIRONMENT GLIBC21 + GL_GENERATE_GLOB_H_FALSE + GL_GENERATE_GLOB_H_TRUE GLOB_H HAVE_SYS_CDEFS_H NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H *************** *** 1269,1274 **** --- 1154,1161 ---- NEXT_AS_FIRST_DIRECTIVE_GETOPT_H NEXT_GETOPT_H GETHOSTNAME_LIB + GL_GENERATE_FNMATCH_H_FALSE + GL_GENERATE_FNMATCH_H_TRUE FNMATCH_H FLOOR_LIBM REPLACE_TRUNCL *************** *** 1359,1364 **** --- 1246,1253 ---- GNULIB_ATANL GNULIB_ASINL GNULIB_ACOSL + GL_GENERATE_FLOAT_H_FALSE + GL_GENERATE_FLOAT_H_TRUE FLOAT_H NEXT_AS_FIRST_DIRECTIVE_FLOAT_H NEXT_FLOAT_H *************** *** 1371,1376 **** --- 1260,1266 ---- HAVE_FCNTL GNULIB_OPENAT GNULIB_OPEN + GNULIB_NONBLOCKING GNULIB_FCNTL REPLACE_UTIMENSAT REPLACE_STAT *************** *** 1410,1415 **** --- 1300,1307 ---- ENOLINK_HIDDEN EMULTIHOP_VALUE EMULTIHOP_HIDDEN + GL_GENERATE_ERRNO_H_FALSE + GL_GENERATE_ERRNO_H_TRUE ERRNO_H NEXT_AS_FIRST_DIRECTIVE_ERRNO_H NEXT_ERRNO_H *************** *** 1443,1448 **** --- 1335,1341 ---- REPLACE_VASPRINTF REPLACE_TMPFILE REPLACE_STDIO_WRITE_FUNCS + REPLACE_STDIO_READ_FUNCS REPLACE_SPRINTF REPLACE_SNPRINTF REPLACE_RENAMEAT *************** *** 1486,1496 **** --- 1379,1393 ---- GNULIB_VFPRINTF_POSIX GNULIB_VFPRINTF GNULIB_VDPRINTF + GNULIB_VSCANF + GNULIB_VFSCANF GNULIB_VASPRINTF GNULIB_TMPFILE GNULIB_STDIO_H_SIGPIPE + GNULIB_STDIO_H_NONBLOCKING GNULIB_SPRINTF_POSIX GNULIB_SNPRINTF + GNULIB_SCANF GNULIB_RENAMEAT GNULIB_RENAME GNULIB_REMOVE *************** *** 1503,1522 **** --- 1400,1426 ---- GNULIB_PERROR GNULIB_OBSTACK_PRINTF_POSIX GNULIB_OBSTACK_PRINTF + GNULIB_GETS GNULIB_GETLINE GNULIB_GETDELIM + GNULIB_GETCHAR + GNULIB_GETC GNULIB_FWRITE GNULIB_FTELLO GNULIB_FTELL GNULIB_FSEEKO GNULIB_FSEEK + GNULIB_FSCANF GNULIB_FREOPEN + GNULIB_FREAD GNULIB_FPUTS GNULIB_FPUTC GNULIB_FPURGE GNULIB_FPRINTF_POSIX GNULIB_FPRINTF GNULIB_FOPEN + GNULIB_FGETS + GNULIB_FGETC GNULIB_FFLUSH GNULIB_FCLOSE GNULIB_DPRINTF *************** *** 1532,1537 **** --- 1436,1442 ---- REPLACE_SLEEP REPLACE_RMDIR REPLACE_READLINK + REPLACE_READ REPLACE_PWRITE REPLACE_PREAD REPLACE_LSEEK *************** *** 1571,1576 **** --- 1476,1482 ---- HAVE_LINKAT HAVE_LINK HAVE_LCHOWN + HAVE_GROUP_MEMBER HAVE_GETPAGESIZE HAVE_GETLOGIN HAVE_GETHOSTNAME *************** *** 1590,1595 **** --- 1496,1502 ---- GNULIB_UNLINKAT GNULIB_UNLINK GNULIB_UNISTD_H_SIGPIPE + GNULIB_UNISTD_H_NONBLOCKING GNULIB_UNISTD_H_GETOPT GNULIB_TTYNAME_R GNULIB_SYMLINKAT *************** *** 1598,1603 **** --- 1505,1511 ---- GNULIB_RMDIR GNULIB_READLINKAT GNULIB_READLINK + GNULIB_READ GNULIB_PWRITE GNULIB_PREAD GNULIB_PIPE2 *************** *** 1606,1611 **** --- 1514,1520 ---- GNULIB_LINKAT GNULIB_LINK GNULIB_LCHOWN + GNULIB_GROUP_MEMBER GNULIB_GETUSERSHELL GNULIB_GETPAGESIZE GNULIB_GETLOGIN_R *************** *** 1626,1631 **** --- 1535,1541 ---- GNULIB_DUP2 GNULIB_CLOSE GNULIB_CHOWN + REPLACE_WCTOMB REPLACE_UNSETENV REPLACE_STRTOD REPLACE_SETENV *************** *** 1633,1638 **** --- 1543,1549 ---- REPLACE_REALLOC REPLACE_PUTENV REPLACE_MKSTEMP + REPLACE_MBTOWC REPLACE_MALLOC REPLACE_CANONICALIZE_FILE_NAME REPLACE_CALLOC *************** *** 1648,1653 **** --- 1559,1565 ---- HAVE_RPMATCH HAVE_REALPATH HAVE_RANDOM_R + HAVE_RANDOM_H HAVE_PTSNAME HAVE_MKSTEMPS HAVE_MKSTEMP *************** *** 1660,1665 **** --- 1572,1578 ---- HAVE_CANONICALIZE_FILE_NAME HAVE_ATOLL HAVE__EXIT + GNULIB_WCTOMB GNULIB_UNSETENV GNULIB_UNLOCKPT GNULIB_SYSTEM_POSIX *************** *** 1678,1683 **** --- 1591,1597 ---- GNULIB_MKOSTEMPS GNULIB_MKOSTEMP GNULIB_MKDTEMP + GNULIB_MBTOWC GNULIB_MALLOC_POSIX GNULIB_GRANTPT GNULIB_GETSUBOPT *************** *** 1686,1691 **** --- 1600,1607 ---- GNULIB_CALLOC_POSIX GNULIB_ATOLL GNULIB__EXIT + GL_GENERATE_ALLOCA_H_FALSE + GL_GENERATE_ALLOCA_H_TRUE ALLOCA_H ALLOCA LTALLOCA *************** *** 1869,1874 **** --- 1785,1791 ---- with_pic enable_fast_install with_gnu_ld + with_sysroot enable_libtool_lock with_blas with_lapack *************** *** 2333,2339 **** $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 ! : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac --- 2250,2256 ---- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 ! : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac *************** *** 2471,2477 **** # 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 GNU Octave 3.4.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... --- 2388,2394 ---- # 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 GNU Octave 3.4.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... *************** *** 2545,2551 **** if test -n "$ac_init_help"; then case $ac_init_help in ! short | recursive ) echo "Configuration of GNU Octave 3.4.0:";; esac cat <<\_ACEOF --- 2462,2468 ---- if test -n "$ac_init_help"; then case $ac_init_help in ! short | recursive ) echo "Configuration of GNU Octave 3.4.1:";; esac cat <<\_ACEOF *************** *** 2633,2638 **** --- 2550,2557 ---- --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). --with-blas= use BLAS library --with-lapack= use LAPACK library --with-qrupdate-includedir=DIR *************** *** 2712,2719 **** C compiler flags for FONTCONFIG, overriding pkg-config FONTCONFIG_LIBS linker flags for FONTCONFIG, overriding pkg-config ! YACC The `Yet Another C Compiler' implementation to use. Defaults to ! the first program found out of: `bison -y', `byacc', `yacc'. YFLAGS The list of arguments that will be passed by default to $YACC. This script will default YFLAGS to the empty string to avoid a default value of `-d' given by some make applications. --- 2631,2639 ---- C compiler flags for FONTCONFIG, overriding pkg-config FONTCONFIG_LIBS linker flags for FONTCONFIG, overriding pkg-config ! YACC The `Yet Another Compiler Compiler' implementation to use. ! Defaults to the first program found out of: `bison -y', `byacc', ! `yacc'. YFLAGS The list of arguments that will be passed by default to $YACC. This script will default YFLAGS to the empty string to avoid a default value of `-d' given by some make applications. *************** *** 2721,2727 **** Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. ! Report bugs to . GNU Octave home page: . General help using GNU software: . _ACEOF --- 2641,2647 ---- Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. ! Report bugs to . GNU Octave home page: . General help using GNU software: . _ACEOF *************** *** 2786,2793 **** test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF ! GNU Octave configure 3.4.0 ! generated by GNU Autoconf 2.67 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation --- 2706,2713 ---- test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF ! GNU Octave configure 3.4.1 ! generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation *************** *** 2833,2839 **** ac_retval=1 fi ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_compile --- 2753,2759 ---- ac_retval=1 fi ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile *************** *** 2870,2876 **** ac_retval=1 fi ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_cpp --- 2790,2796 ---- ac_retval=1 fi ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp *************** *** 2883,2892 **** ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ! if eval "test \"\${$3+set}\"" = set; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } ! if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 --- 2803,2812 ---- ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ! if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } ! if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 *************** *** 2945,2959 **** $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ! ( $as_echo "## ----------------------------- ## ! ## Report this to bug@octave.org ## ! ## ----------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } ! if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" --- 2865,2879 ---- $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ! ( $as_echo "## ------------------------------------------ ## ! ## Report this to http://octave.org/bugs.html ## ! ## ------------------------------------------ ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } ! if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" *************** *** 2962,2968 **** { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_mongrel --- 2882,2888 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel *************** *** 3003,3009 **** ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_run --- 2923,2929 ---- ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run *************** *** 3017,3023 **** as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } ! if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 2937,2943 ---- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } ! if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 3035,3041 **** eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_compile --- 2955,2961 ---- eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile *************** *** 3212,3218 **** rm -f conftest.val fi ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_compute_int --- 3132,3138 ---- rm -f conftest.val fi ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_compute_int *************** *** 3250,3256 **** ac_retval=1 fi ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile --- 3170,3176 ---- ac_retval=1 fi ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile *************** *** 3287,3293 **** ac_retval=1 fi ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp --- 3207,3213 ---- ac_retval=1 fi ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp *************** *** 3333,3339 **** # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_link --- 3253,3259 ---- # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_link *************** *** 3379,3389 **** # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly --- 3299,3363 ---- # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link + # ac_fn_c_check_type LINENO TYPE VAR INCLUDES + # ------------------------------------------- + # Tests whether TYPE exists after having included INCLUDES, setting cache + # variable VAR accordingly. + ac_fn_c_check_type () + { + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 + $as_echo_n "checking for $2... " >&6; } + if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 + else + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + $4 + int + main () + { + if (sizeof ($2)) + return 0; + ; + return 0; + } + _ACEOF + if ac_fn_c_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + $4 + int + main () + { + if (sizeof (($2))) + return 0; + ; + return 0; + } + _ACEOF + if ac_fn_c_try_compile "$LINENO"; then : + + else + eval "$3=yes" + fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + + } # ac_fn_c_check_type + # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly *************** *** 3392,3398 **** as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } ! if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 3366,3372 ---- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } ! if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 3447,3453 **** eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func --- 3421,3427 ---- eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func *************** *** 3462,3468 **** as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } ! if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 3436,3442 ---- as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } ! if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 3493,3556 **** eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_decl - # ac_fn_c_check_type LINENO TYPE VAR INCLUDES - # ------------------------------------------- - # Tests whether TYPE exists after having included INCLUDES, setting cache - # variable VAR accordingly. - ac_fn_c_check_type () - { - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 - $as_echo_n "checking for $2... " >&6; } - if eval "test \"\${$3+set}\"" = set; then : - $as_echo_n "(cached) " >&6 - else - eval "$3=no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - $4 - int - main () - { - if (sizeof ($2)) - return 0; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - $4 - int - main () - { - if (sizeof (($2))) - return 0; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - - else - eval "$3=yes" - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 - $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - - } # ac_fn_c_check_type - # ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES # ---------------------------------------------------- # Tries to find if the field MEMBER exists in type AGGR, after including --- 3467,3476 ---- eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl # ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES # ---------------------------------------------------- # Tries to find if the field MEMBER exists in type AGGR, after including *************** *** 3560,3566 **** as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 $as_echo_n "checking for $2.$3... " >&6; } ! if eval "test \"\${$4+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 3480,3486 ---- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 $as_echo_n "checking for $2.$3... " >&6; } ! if eval \${$4+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 3604,3610 **** eval ac_res=\$$4 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_member --- 3524,3530 ---- eval ac_res=\$$4 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_member *************** *** 3641,3647 **** ac_retval=1 fi ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_f77_try_compile --- 3561,3567 ---- ac_retval=1 fi ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_f77_try_compile *************** *** 3687,3693 **** # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_f77_try_link --- 3607,3613 ---- # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_f77_try_link *************** *** 3700,3709 **** ac_fn_cxx_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ! if eval "test \"\${$3+set}\"" = set; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } ! if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 --- 3620,3629 ---- ac_fn_cxx_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ! if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } ! if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 *************** *** 3762,3776 **** $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ! ( $as_echo "## ----------------------------- ## ! ## Report this to bug@octave.org ## ! ## ----------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } ! if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" --- 3682,3696 ---- $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ! ( $as_echo "## ------------------------------------------ ## ! ## Report this to http://octave.org/bugs.html ## ! ## ------------------------------------------ ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } ! if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" *************** *** 3779,3785 **** { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_cxx_check_header_mongrel --- 3699,3705 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_cxx_check_header_mongrel *************** *** 3820,3826 **** ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_f77_try_run --- 3740,3746 ---- ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_f77_try_run *************** *** 3862,3868 **** ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_run --- 3782,3788 ---- ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_run *************** *** 3878,3884 **** as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } ! if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 3798,3804 ---- as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } ! if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 3917,3923 **** eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_cxx_check_decl --- 3837,3843 ---- eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_cxx_check_decl *************** *** 3929,3935 **** as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } ! if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 3849,3855 ---- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } ! if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 3992,4006 **** eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } ! eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_cxx_check_func cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. ! It was created by GNU Octave $as_me 3.4.0, which was ! generated by GNU Autoconf 2.67. Invocation command line was $ $0 $@ --- 3912,3926 ---- eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } ! eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_cxx_check_func cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. ! It was created by GNU Octave $as_me 3.4.1, which was ! generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ *************** *** 4258,4264 **** || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file ! See \`config.log' for more details" "$LINENO" 5 ; } fi done --- 4178,4184 ---- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file ! See \`config.log' for more details" "$LINENO" 5; } fi done *************** *** 4288,4306 **** as_fn_append ac_func_list " fchown" as_fn_append ac_header_list " sys/socket.h" as_fn_append ac_header_list " dirent.h" - as_fn_append ac_func_list " dup2" as_fn_append ac_func_list " fcntl" as_fn_append ac_func_list " fchdir" as_fn_append ac_func_list " fdopendir" as_fn_append ac_func_list " btowc" as_fn_append ac_func_list " isblank" as_fn_append ac_func_list " iswctype" as_fn_append ac_func_list " mbsrtowcs" - as_fn_append ac_func_list " mempcpy" as_fn_append ac_func_list " wmemchr" as_fn_append ac_func_list " wmemcpy" as_fn_append ac_func_list " wmempcpy" as_fn_append ac_header_list " wctype.h" as_fn_append ac_func_list " getdtablesize" as_fn_append ac_header_list " netdb.h" as_fn_append ac_func_list " getlogin_r" --- 4208,4229 ---- as_fn_append ac_func_list " fchown" as_fn_append ac_header_list " sys/socket.h" as_fn_append ac_header_list " dirent.h" as_fn_append ac_func_list " fcntl" + as_fn_append ac_func_list " dup2" as_fn_append ac_func_list " fchdir" as_fn_append ac_func_list " fdopendir" + as_fn_append ac_func_list " mempcpy" as_fn_append ac_func_list " btowc" as_fn_append ac_func_list " isblank" as_fn_append ac_func_list " iswctype" as_fn_append ac_func_list " mbsrtowcs" as_fn_append ac_func_list " wmemchr" as_fn_append ac_func_list " wmemcpy" as_fn_append ac_func_list " wmempcpy" as_fn_append ac_header_list " wctype.h" + as_fn_append ac_func_list " fpurge" + as_fn_append ac_func_list " __fpurge" + as_fn_append ac_func_list " __freading" as_fn_append ac_func_list " getdtablesize" as_fn_append ac_header_list " netdb.h" as_fn_append ac_func_list " getlogin_r" *************** *** 4320,4326 **** as_fn_append ac_func_list " mbrtowc" as_fn_append ac_header_list " sys/mman.h" as_fn_append ac_func_list " mprotect" - as_fn_append ac_func_list " memchr" as_fn_append ac_func_list " mkfifo" as_fn_append ac_func_list " mkstemp" as_fn_append ac_func_list " alarm" --- 4243,4248 ---- *************** *** 4330,4351 **** as_fn_append ac_func_list " sigaltstack" as_fn_append ac_func_list " siginterrupt" as_fn_append ac_func_list " sleep" - as_fn_append ac_header_list " stdint.h" as_fn_append ac_header_list " wchar.h" as_fn_append ac_func_list " strdup" as_fn_append ac_func_list " tzset" - as_fn_append ac_header_list " strings.h" as_fn_append ac_func_list " strptime" as_fn_append ac_func_list " symlink" as_fn_append ac_header_list " sys/stat.h" as_fn_append ac_header_list " sys/times.h" as_fn_append ac_func_list " localtime_r" as_fn_append ac_func_list " times" as_fn_append ac_func_list " pipe" as_fn_append ac_func_list " vasnprintf" as_fn_append ac_header_list " features.h" as_fn_append ac_func_list " iswcntrl" - as_fn_append ac_func_list " iswblank" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false --- 4252,4272 ---- as_fn_append ac_func_list " sigaltstack" as_fn_append ac_func_list " siginterrupt" as_fn_append ac_func_list " sleep" as_fn_append ac_header_list " wchar.h" + as_fn_append ac_header_list " stdint.h" as_fn_append ac_func_list " strdup" as_fn_append ac_func_list " tzset" as_fn_append ac_func_list " strptime" as_fn_append ac_func_list " symlink" as_fn_append ac_header_list " sys/stat.h" as_fn_append ac_header_list " sys/times.h" + as_fn_append ac_header_list " sys/uio.h" as_fn_append ac_func_list " localtime_r" as_fn_append ac_func_list " times" as_fn_append ac_func_list " pipe" as_fn_append ac_func_list " vasnprintf" as_fn_append ac_header_list " features.h" as_fn_append ac_func_list " iswcntrl" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false *************** *** 4416,4424 **** OCTAVE_VERSION="$PACKAGE_VERSION" ! OCTAVE_API_VERSION_NUMBER="47" OCTAVE_API_VERSION="api-v$OCTAVE_API_VERSION_NUMBER+" ! OCTAVE_RELEASE_DATE="2011-02-08" OCTAVE_COPYRIGHT="Copyright (C) 2011 John W. Eaton and others." --- 4337,4345 ---- OCTAVE_VERSION="$PACKAGE_VERSION" ! OCTAVE_API_VERSION_NUMBER="45" OCTAVE_API_VERSION="api-v$OCTAVE_API_VERSION_NUMBER+" ! OCTAVE_RELEASE_DATE="2011-06-15" OCTAVE_COPYRIGHT="Copyright (C) 2011 John W. Eaton and others." *************** *** 4481,4487 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then ! if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --- 4402,4408 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then ! if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR *************** *** 4568,4578 **** ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) ! as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) ! as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; esac # Do `set' in a subshell so we don't clobber the current shell's --- 4489,4499 ---- ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) ! as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) ! as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's *************** *** 4658,4664 **** set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then --- 4579,4585 ---- set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then *************** *** 4698,4704 **** set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then --- 4619,4625 ---- set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then *************** *** 4751,4757 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then ! if test "${ac_cv_path_mkdir+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --- 4672,4678 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then ! if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR *************** *** 4803,4809 **** set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then --- 4724,4730 ---- set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then *************** *** 4843,4849 **** $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` ! if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF --- 4764,4770 ---- $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` ! if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF *************** *** 4901,4907 **** # Define the identity of the package. PACKAGE='octave' ! VERSION='3.4.0' cat >>confdefs.h <<_ACEOF --- 4822,4828 ---- # Define the identity of the package. PACKAGE='octave' ! VERSION='3.4.1' cat >>confdefs.h <<_ACEOF *************** *** 5009,5015 **** done rm -rf conftest.dir ! if test "${am_cv_prog_tar_ustar+set}" = set; then : $as_echo_n "(cached) " >&6 else am_cv_prog_tar_ustar=$_am_tool --- 4930,4936 ---- done rm -rf conftest.dir ! if ${am_cv_prog_tar_ustar+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_prog_tar_ustar=$_am_tool *************** *** 5029,5035 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } ! if test "${ac_cv_build+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias --- 4950,4956 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } ! if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias *************** *** 5045,5051 **** $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; ! *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' --- 4966,4972 ---- $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; ! *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' *************** *** 5063,5069 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } ! if test "${ac_cv_host+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then --- 4984,4990 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } ! if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then *************** *** 5078,5084 **** $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; ! *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' --- 4999,5005 ---- $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; ! *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' *************** *** 5199,5205 **** set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then --- 5120,5126 ---- set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then *************** *** 5239,5245 **** set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then --- 5160,5166 ---- set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then *************** *** 5292,5298 **** set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then --- 5213,5219 ---- set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then *************** *** 5332,5338 **** set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then --- 5253,5259 ---- set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then *************** *** 5391,5397 **** set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then --- 5312,5318 ---- set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then *************** *** 5435,5441 **** set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then --- 5356,5362 ---- set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then *************** *** 5490,5496 **** test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH ! See \`config.log' for more details" "$LINENO" 5 ; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 --- 5411,5417 ---- test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH ! See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 *************** *** 5605,5611 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables ! See \`config.log' for more details" "$LINENO" 5 ; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } --- 5526,5532 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables ! See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } *************** *** 5648,5654 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link ! See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 --- 5569,5575 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link ! See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 *************** *** 5707,5713 **** $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. ! See \`config.log' for more details" "$LINENO" 5 ; } fi fi fi --- 5628,5634 ---- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. ! See \`config.log' for more details" "$LINENO" 5; } fi fi fi *************** *** 5718,5724 **** ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } ! if test "${ac_cv_objext+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 5639,5645 ---- ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } ! if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 5759,5765 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile ! See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi --- 5680,5686 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile ! See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi *************** *** 5769,5775 **** ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } ! if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 5690,5696 ---- ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } ! if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 5806,5812 **** ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } ! if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag --- 5727,5733 ---- ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } ! if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag *************** *** 5884,5890 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } ! if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no --- 5805,5811 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } ! if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no *************** *** 5983,5989 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } ! if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then --- 5904,5910 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } ! if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then *************** *** 6119,6125 **** CPP= fi if test -z "$CPP"; then ! if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded --- 6040,6046 ---- CPP= fi if test -z "$CPP"; then ! if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded *************** *** 6235,6241 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check ! See \`config.log' for more details" "$LINENO" 5 ; } fi ac_ext=c --- 6156,6162 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check ! See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c *************** *** 6247,6253 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } ! if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then --- 6168,6174 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } ! if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then *************** *** 6310,6316 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } ! if test "${ac_cv_path_EGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 --- 6231,6237 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } ! if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 *************** *** 6377,6383 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } ! if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 6298,6304 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } ! if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 6508,6514 **** ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" ! if test "x$ac_cv_header_minix_config_h" = x""yes; then : MINIX=yes else MINIX= --- 6429,6435 ---- ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" ! if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= *************** *** 6538,6544 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } ! if test "${ac_cv_safe_to_define___extensions__+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 6459,6465 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } ! if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 6591,6596 **** --- 6512,6518 ---- #ifndef _MSC_VER #error "Not MSVC compiler" #endif + _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : have_msvc=yes *************** *** 6615,6621 **** yes | "") case "$canonical_host_type" in *-*-mingw* | *-*-msdosmsvc) ! sepchar=';' ;; esac ;; --- 6537,6543 ---- yes | "") case "$canonical_host_type" in *-*-mingw* | *-*-msdosmsvc) ! sepchar=';' ;; esac ;; *************** *** 6680,6686 **** { $as_echo "$as_me:${as_lineno-$LINENO}: result: defining octetcdir to be $octetcdir" >&5 $as_echo "defining octetcdir to be $octetcdir" >&6; } ! : ${octlibdir='$(libdir)/octave-$(version)'} { $as_echo "$as_me:${as_lineno-$LINENO}: result: defining octlibdir to be $octlibdir" >&5 $as_echo "defining octlibdir to be $octlibdir" >&6; } --- 6602,6608 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: result: defining octetcdir to be $octetcdir" >&5 $as_echo "defining octetcdir to be $octetcdir" >&6; } ! : ${octlibdir='$(libdir)/octave/$(version)'} { $as_echo "$as_me:${as_lineno-$LINENO}: result: defining octlibdir to be $octlibdir" >&5 $as_echo "defining octlibdir to be $octlibdir" >&6; } *************** *** 6700,6718 **** { $as_echo "$as_me:${as_lineno-$LINENO}: result: defining localverarchlibdir to be $localverarchlibdir" >&5 $as_echo "defining localverarchlibdir to be $localverarchlibdir" >&6; } ! : ${octfiledir='$(libexecdir)/octave/$(version)/oct/$(canonical_host_type)'} { $as_echo "$as_me:${as_lineno-$LINENO}: result: defining octfiledir to be $octfiledir" >&5 $as_echo "defining octfiledir to be $octfiledir" >&6; } ! : ${localoctfiledir='$(libexecdir)/octave/site/oct/$(canonical_host_type)'} { $as_echo "$as_me:${as_lineno-$LINENO}: result: defining localoctfiledir to be $localoctfiledir" >&5 $as_echo "defining localoctfiledir to be $localoctfiledir" >&6; } ! : ${localapioctfiledir='$(libexecdir)/octave/site/oct/$(api_version)/$(canonical_host_type)'} { $as_echo "$as_me:${as_lineno-$LINENO}: result: defining localapioctfiledir to be $localapioctfiledir" >&5 $as_echo "defining localapioctfiledir to be $localapioctfiledir" >&6; } ! : ${localveroctfiledir='$(libexecdir)/octave/$(version)/site/oct/$(canonical_host_type)'} { $as_echo "$as_me:${as_lineno-$LINENO}: result: defining localveroctfiledir to be $localveroctfiledir" >&5 $as_echo "defining localveroctfiledir to be $localveroctfiledir" >&6; } --- 6622,6640 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: result: defining localverarchlibdir to be $localverarchlibdir" >&5 $as_echo "defining localverarchlibdir to be $localverarchlibdir" >&6; } ! : ${octfiledir='$(libdir)/octave/$(version)/oct/$(canonical_host_type)'} { $as_echo "$as_me:${as_lineno-$LINENO}: result: defining octfiledir to be $octfiledir" >&5 $as_echo "defining octfiledir to be $octfiledir" >&6; } ! : ${localoctfiledir='$(libdir)/octave/site/oct/$(canonical_host_type)'} { $as_echo "$as_me:${as_lineno-$LINENO}: result: defining localoctfiledir to be $localoctfiledir" >&5 $as_echo "defining localoctfiledir to be $localoctfiledir" >&6; } ! : ${localapioctfiledir='$(libdir)/octave/site/oct/$(api_version)/$(canonical_host_type)'} { $as_echo "$as_me:${as_lineno-$LINENO}: result: defining localapioctfiledir to be $localapioctfiledir" >&5 $as_echo "defining localapioctfiledir to be $localapioctfiledir" >&6; } ! : ${localveroctfiledir='$(libdir)/octave/$(version)/site/oct/$(canonical_host_type)'} { $as_echo "$as_me:${as_lineno-$LINENO}: result: defining localveroctfiledir to be $localveroctfiledir" >&5 $as_echo "defining localveroctfiledir to be $localveroctfiledir" >&6; } *************** *** 6731,6737 **** set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in --- 6653,6659 ---- set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in *************** *** 6774,6780 **** set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in --- 6696,6702 ---- set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in *************** *** 6900,6906 **** # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 $as_echo_n "checking size of void *... " >&6; } ! if test "${ac_cv_sizeof_void_p+set}" = set; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : --- 6822,6828 ---- # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 $as_echo_n "checking size of void *... " >&6; } ! if ${ac_cv_sizeof_void_p+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : *************** *** 6910,6916 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (void *) ! See \`config.log' for more details" "$LINENO" 5 ; } else ac_cv_sizeof_void_p=0 fi --- 6832,6838 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (void *) ! See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_void_p=0 fi *************** *** 6933,6939 **** # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 $as_echo_n "checking size of int... " >&6; } ! if test "${ac_cv_sizeof_int+set}" = set; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : --- 6855,6861 ---- # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 $as_echo_n "checking size of int... " >&6; } ! if ${ac_cv_sizeof_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : *************** *** 6943,6949 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (int) ! See \`config.log' for more details" "$LINENO" 5 ; } else ac_cv_sizeof_int=0 fi --- 6865,6871 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (int) ! See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_int=0 fi *************** *** 6966,6972 **** # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } ! if test "${ac_cv_sizeof_long+set}" = set; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : --- 6888,6894 ---- # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } ! if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : *************** *** 6976,6982 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) ! See \`config.log' for more details" "$LINENO" 5 ; } else ac_cv_sizeof_long=0 fi --- 6898,6904 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) ! See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi *************** *** 7055,7061 **** set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then --- 6977,6983 ---- set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then *************** *** 7099,7105 **** set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then --- 7021,7027 ---- set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then *************** *** 7177,7183 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } ! if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 7099,7105 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } ! if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 7214,7220 **** ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } ! if test "${ac_cv_prog_cxx_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag --- 7136,7142 ---- ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } ! if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag *************** *** 7300,7306 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } ! if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then --- 7222,7228 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } ! if ${am_cv_CXX_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then *************** *** 7431,7437 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then ! if test "${ac_cv_prog_CXXCPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded --- 7353,7359 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then ! if ${ac_cv_prog_CXXCPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded *************** *** 7547,7553 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check ! See \`config.log' for more details" "$LINENO" 5 ; } fi ac_ext=c --- 7469,7475 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check ! See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c *************** *** 7580,7586 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ support for new friend template declaration" >&5 $as_echo_n "checking for C++ support for new friend template declaration... " >&6; } ! if test "${octave_cv_cxx_new_friend_template_decl+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 7502,7508 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ support for new friend template declaration" >&5 $as_echo_n "checking for C++ support for new friend template declaration... " >&6; } ! if ${octave_cv_cxx_new_friend_template_decl+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 7643,7649 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking if C++ library is ISO compliant" >&5 $as_echo_n "checking if C++ library is ISO compliant... " >&6; } ! if test "${octave_cv_cxx_iso_compliant_library+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 7565,7571 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if C++ library is ISO compliant" >&5 $as_echo_n "checking if C++ library is ISO compliant... " >&6; } ! if ${octave_cv_cxx_iso_compliant_library+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 7713,7719 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken C++ reinterpret_cast" >&5 $as_echo_n "checking for broken C++ reinterpret_cast... " >&6; } ! if test "${octave_cv_cxx_broken_reinterpret_cast+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 7635,7641 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken C++ reinterpret_cast" >&5 $as_echo_n "checking for broken C++ reinterpret_cast... " >&6; } ! if ${octave_cv_cxx_broken_reinterpret_cast+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 7765,7771 **** set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then --- 7687,7693 ---- set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then *************** *** 7805,7811 **** set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then --- 7727,7733 ---- set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then *************** *** 7858,7864 **** set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then --- 7780,7786 ---- set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then *************** *** 7898,7904 **** set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then --- 7820,7826 ---- set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then *************** *** 7957,7963 **** set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then --- 7879,7885 ---- set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then *************** *** 8001,8007 **** set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then --- 7923,7929 ---- set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then *************** *** 8056,8062 **** test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH ! See \`config.log' for more details" "$LINENO" 5 ; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 --- 7978,7984 ---- test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH ! See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 *************** *** 8085,8091 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } ! if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 8007,8013 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } ! if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 8122,8128 **** ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } ! if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag --- 8044,8050 ---- ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } ! if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag *************** *** 8200,8206 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } ! if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no --- 8122,8128 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } ! if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no *************** *** 8299,8305 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } ! if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then --- 8221,8227 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } ! if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then *************** *** 8434,8440 **** CPP= fi if test -z "$CPP"; then ! if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded --- 8356,8362 ---- CPP= fi if test -z "$CPP"; then ! if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded *************** *** 8550,8556 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check ! See \`config.log' for more details" "$LINENO" 5 ; } fi ac_ext=c --- 8472,8478 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check ! See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c *************** *** 8562,8568 **** if test $ac_cv_c_compiler_gnu = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5 $as_echo_n "checking whether $CC needs -traditional... " >&6; } ! if test "${ac_cv_prog_gcc_traditional+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_pattern="Autoconf.*'x'" --- 8484,8490 ---- if test $ac_cv_c_compiler_gnu = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5 $as_echo_n "checking whether $CC needs -traditional... " >&6; } ! if ${ac_cv_prog_gcc_traditional+:} false; then : $as_echo_n "(cached) " >&6 else ac_pattern="Autoconf.*'x'" *************** *** 8609,8615 **** set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then --- 8531,8537 ---- set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then *************** *** 8649,8655 **** set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then --- 8571,8577 ---- set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then *************** *** 8702,8707 **** --- 8624,8697 ---- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5 + $as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; } + if ${ac_cv_sys_largefile_source+:} false; then : + $as_echo_n "(cached) " >&6 + else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include /* for off_t */ + #include + int + main () + { + int (*fp) (FILE *, off_t, int) = fseeko; + return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); + ; + return 0; + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_sys_largefile_source=no; break + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #define _LARGEFILE_SOURCE 1 + #include /* for off_t */ + #include + int + main () + { + int (*fp) (FILE *, off_t, int) = fseeko; + return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); + ; + return 0; + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_sys_largefile_source=1; break + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_cv_sys_largefile_source=unknown + break + done + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5 + $as_echo "$ac_cv_sys_largefile_source" >&6; } + case $ac_cv_sys_largefile_source in #( + no | unknown) ;; + *) + cat >>confdefs.h <<_ACEOF + #define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source + _ACEOF + ;; + esac + rm -rf conftest* + + # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug + # in glibc 2.1.3, but that breaks too many other things. + # If you want fseeko and ftello with glibc, upgrade to a fixed glibc. + if test $ac_cv_sys_largefile_source != unknown; then + + $as_echo "#define HAVE_FSEEKO 1" >>confdefs.h + + fi + # Code from module alignof: *************** *** 8716,8722 **** # Code from module chown: # Code from module cloexec: # Code from module close: - # Code from module close-hook: # Code from module configmake: # Code from module copysign: # Code from module crypto/md5: --- 8706,8711 ---- *************** *** 8725,8730 **** --- 8714,8720 ---- # Code from module dirent: # Code from module dirfd: # Code from module dirname-lgpl: + # Code from module dosname: # Code from module double-slash-root: # Code from module dup2: # Code from module errno: *************** *** 8736,8747 **** --- 8726,8750 ---- # Code from module fclose: # Code from module fcntl: # Code from module fcntl-h: + # Code from module fd-hook: # Code from module fdopendir: + # Code from module fflush: + # Code from module filemode: + # Code from module filenamecat-lgpl: # Code from module float: # Code from module floor: # Code from module fnmatch: + # Code from module fpurge: + # Code from module freading: + # Code from module fseek: + # Code from module fseeko: + + # Code from module ftell: + # Code from module ftello: + # Code from module getcwd: + # Code from module getcwd-lgpl: # Code from module getdtablesize: # Code from module gethostname: # Code from module getlogin_r: *************** *** 8755,8760 **** --- 8758,8764 ---- # Code from module lchown: # Code from module link: # Code from module localcharset: + # Code from module lseek: # Code from module lstat: # Code from module malloc-posix: # Code from module malloca: *************** *** 8771,8776 **** --- 8775,8782 ---- # Code from module mktime: # Code from module multiarch: # Code from module nanosleep: + # Code from module nocrash: + # Code from module nproc: # Code from module open: # Code from module openat: # Code from module openat-die: *************** *** 8799,8811 **** # Code from module stdint: # Code from module stdio: # Code from module stdlib: - # Code from module strcase: # Code from module strdup-posix: # Code from module streq: # Code from module strerror: # Code from module strftime: # Code from module string: - # Code from module strings: # Code from module strnlen1: # Code from module strptime: # Code from module symlink: --- 8805,8816 ---- # Code from module stdint: # Code from module stdio: # Code from module stdlib: # Code from module strdup-posix: # Code from module streq: # Code from module strerror: + # Code from module strerror-override: # Code from module strftime: # Code from module string: # Code from module strnlen1: # Code from module strptime: # Code from module symlink: *************** *** 8814,8819 **** --- 8819,8825 ---- # Code from module sys_stat: # Code from module sys_time: # Code from module sys_times: + # Code from module sys_uio: # Code from module tempname: # Code from module time: # Code from module time_r: *************** *** 8838,8848 **** LIBC_FATAL_STDERR_=1 export LIBC_FATAL_STDERR_ # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } ! if test "${ac_cv_working_alloca_h+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 8844,8865 ---- LIBC_FATAL_STDERR_=1 export LIBC_FATAL_STDERR_ + ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" + if test "x$ac_cv_type_size_t" = xyes; then : + + else + + cat >>confdefs.h <<_ACEOF + #define size_t unsigned int + _ACEOF + + fi + # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } ! if ${ac_cv_working_alloca_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 8875,8881 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } ! if test "${ac_cv_func_alloca_works+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 8892,8898 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } ! if ${ac_cv_func_alloca_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 8894,8900 **** #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ ! char *alloca (); # endif # endif # endif --- 8911,8917 ---- #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ ! void *alloca (size_t); # endif # endif # endif *************** *** 8942,8948 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } ! if test "${ac_cv_os_cray+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 8959,8965 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } ! if ${ac_cv_os_cray+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 8983,8989 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } ! if test "${ac_cv_c_stack_direction+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 9000,9006 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } ! if ${ac_cv_c_stack_direction+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 9032,9037 **** --- 9049,9121 ---- fi + GNULIB__EXIT=0; + GNULIB_ATOLL=0; + GNULIB_CALLOC_POSIX=0; + GNULIB_CANONICALIZE_FILE_NAME=0; + GNULIB_GETLOADAVG=0; + GNULIB_GETSUBOPT=0; + GNULIB_GRANTPT=0; + GNULIB_MALLOC_POSIX=0; + GNULIB_MBTOWC=0; + GNULIB_MKDTEMP=0; + GNULIB_MKOSTEMP=0; + GNULIB_MKOSTEMPS=0; + GNULIB_MKSTEMP=0; + GNULIB_MKSTEMPS=0; + GNULIB_PTSNAME=0; + GNULIB_PUTENV=0; + GNULIB_RANDOM_R=0; + GNULIB_REALLOC_POSIX=0; + GNULIB_REALPATH=0; + GNULIB_RPMATCH=0; + GNULIB_SETENV=0; + GNULIB_STRTOD=0; + GNULIB_STRTOLL=0; + GNULIB_STRTOULL=0; + GNULIB_SYSTEM_POSIX=0; + GNULIB_UNLOCKPT=0; + GNULIB_UNSETENV=0; + GNULIB_WCTOMB=0; + HAVE__EXIT=1; + HAVE_ATOLL=1; + HAVE_CANONICALIZE_FILE_NAME=1; + HAVE_DECL_GETLOADAVG=1; + HAVE_GETSUBOPT=1; + HAVE_GRANTPT=1; + HAVE_MKDTEMP=1; + HAVE_MKOSTEMP=1; + HAVE_MKOSTEMPS=1; + HAVE_MKSTEMP=1; + HAVE_MKSTEMPS=1; + HAVE_PTSNAME=1; + HAVE_RANDOM_H=1; + HAVE_RANDOM_R=1; + HAVE_REALPATH=1; + HAVE_RPMATCH=1; + HAVE_SETENV=1; + HAVE_DECL_SETENV=1; + HAVE_STRTOD=1; + HAVE_STRTOLL=1; + HAVE_STRTOULL=1; + HAVE_STRUCT_RANDOM_DATA=1; + HAVE_SYS_LOADAVG_H=0; + HAVE_UNLOCKPT=1; + HAVE_DECL_UNSETENV=1; + REPLACE_CALLOC=0; + REPLACE_CANONICALIZE_FILE_NAME=0; + REPLACE_MALLOC=0; + REPLACE_MBTOWC=0; + REPLACE_MKSTEMP=0; + REPLACE_PUTENV=0; + REPLACE_REALLOC=0; + REPLACE_REALPATH=0; + REPLACE_SETENV=0; + REPLACE_STRTOD=0; + REPLACE_UNSETENV=0; + REPLACE_WCTOMB=0; + + for ac_func in $ac_func_list *************** *** 9056,9062 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5 $as_echo_n "checking whether // is distinct from /... " >&6; } ! if test "${gl_cv_double_slash_root+set}" = set; then : $as_echo_n "(cached) " >&6 else if test x"$cross_compiling" = xyes ; then --- 9140,9146 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5 $as_echo_n "checking whether // is distinct from /... " >&6; } ! if ${gl_cv_double_slash_root+:} false; then : $as_echo_n "(cached) " >&6 else if test x"$cross_compiling" = xyes ; then *************** *** 9097,9107 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether realpath works" >&5 $as_echo_n "checking whether realpath works... " >&6; } ! if test "${gl_cv_func_realpath_works+set}" = set; then : $as_echo_n "(cached) " >&6 else touch conftest.a if test "$cross_compiling" = yes; then : gl_cv_func_realpath_works="guessing no" else --- 9181,9192 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether realpath works" >&5 $as_echo_n "checking whether realpath works... " >&6; } ! if ${gl_cv_func_realpath_works+:} false; then : $as_echo_n "(cached) " >&6 else touch conftest.a + mkdir conftest.d if test "$cross_compiling" = yes; then : gl_cv_func_realpath_works="guessing no" else *************** *** 9109,9115 **** --- 9194,9286 ---- /* end confdefs.h. */ + + #include + #if defined __MACH__ && defined __APPLE__ + /* Avoid a crash on MacOS X. */ + #include + #include + #include + #include + #include + #include + /* The exception port on which our thread listens. */ + static mach_port_t our_exception_port; + /* The main function of the thread listening for exceptions of type + EXC_BAD_ACCESS. */ + static void * + mach_exception_thread (void *arg) + { + /* Buffer for a message to be received. */ + struct { + mach_msg_header_t head; + mach_msg_body_t msgh_body; + char data[1024]; + } msg; + mach_msg_return_t retval; + /* Wait for a message on the exception port. */ + retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), + our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); + if (retval != MACH_MSG_SUCCESS) + abort (); + exit (1); + } + static void + nocrash_init (void) + { + mach_port_t self = mach_task_self (); + /* Allocate a port on which the thread shall listen for exceptions. */ + if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) + == KERN_SUCCESS) { + /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ + if (mach_port_insert_right (self, our_exception_port, our_exception_port, + MACH_MSG_TYPE_MAKE_SEND) + == KERN_SUCCESS) { + /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting + for us. */ + exception_mask_t mask = EXC_MASK_BAD_ACCESS; + /* Create the thread listening on the exception port. */ + pthread_attr_t attr; + pthread_t thread; + if (pthread_attr_init (&attr) == 0 + && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 + && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { + pthread_attr_destroy (&attr); + /* Replace the exception port info for these exceptions with our own. + Note that we replace the exception port for the entire task, not only + for a particular thread. This has the effect that when our exception + port gets the message, the thread specific exception port has already + been asked, and we don't need to bother about it. + See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ + task_set_exception_ports (self, mask, our_exception_port, + EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); + } + } + } + } + #else + /* Avoid a crash on POSIX systems. */ + #include + /* A POSIX signal handler. */ + static void + exception_handler (int sig) + { + exit (1); + } + static void + nocrash_init (void) + { + #ifdef SIGSEGV + signal (SIGSEGV, exception_handler); + #endif + #ifdef SIGBUS + signal (SIGBUS, exception_handler); + #endif + } + #endif + #include + #include int main () *************** *** 9131,9136 **** --- 9302,9313 ---- if (name != NULL) result |= 4; } + { + char *name1 = realpath (".", NULL); + char *name2 = realpath ("conftest.d//./..", NULL); + if (strcmp (name1, name2) != 0) + result |= 8; + } return result; ; *************** *** 9147,9152 **** --- 9324,9330 ---- conftest.$ac_objext conftest.beam conftest.$ac_ext fi + rm -rf conftest.a conftest.d fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_realpath_works" >&5 *************** *** 9183,9253 **** - - GNULIB__EXIT=0; - GNULIB_ATOLL=0; - GNULIB_CALLOC_POSIX=0; - GNULIB_CANONICALIZE_FILE_NAME=0; - GNULIB_GETLOADAVG=0; - GNULIB_GETSUBOPT=0; - GNULIB_GRANTPT=0; - GNULIB_MALLOC_POSIX=0; - GNULIB_MKDTEMP=0; - GNULIB_MKOSTEMP=0; - GNULIB_MKOSTEMPS=0; - GNULIB_MKSTEMP=0; - GNULIB_MKSTEMPS=0; - GNULIB_PTSNAME=0; - GNULIB_PUTENV=0; - GNULIB_RANDOM_R=0; - GNULIB_REALLOC_POSIX=0; - GNULIB_REALPATH=0; - GNULIB_RPMATCH=0; - GNULIB_SETENV=0; - GNULIB_STRTOD=0; - GNULIB_STRTOLL=0; - GNULIB_STRTOULL=0; - GNULIB_SYSTEM_POSIX=0; - GNULIB_UNLOCKPT=0; - GNULIB_UNSETENV=0; - HAVE__EXIT=1; - HAVE_ATOLL=1; - HAVE_CANONICALIZE_FILE_NAME=1; - HAVE_DECL_GETLOADAVG=1; - HAVE_GETSUBOPT=1; - HAVE_GRANTPT=1; - HAVE_MKDTEMP=1; - HAVE_MKOSTEMP=1; - HAVE_MKOSTEMPS=1; - HAVE_MKSTEMP=1; - HAVE_MKSTEMPS=1; - HAVE_PTSNAME=1; - HAVE_RANDOM_R=1; - HAVE_REALPATH=1; - HAVE_RPMATCH=1; - HAVE_SETENV=1; - HAVE_DECL_SETENV=1; - HAVE_STRTOD=1; - HAVE_STRTOLL=1; - HAVE_STRTOULL=1; - HAVE_STRUCT_RANDOM_DATA=1; - HAVE_SYS_LOADAVG_H=0; - HAVE_UNLOCKPT=1; - HAVE_DECL_UNSETENV=1; - REPLACE_CALLOC=0; - REPLACE_CANONICALIZE_FILE_NAME=0; - REPLACE_MALLOC=0; - REPLACE_MKSTEMP=0; - REPLACE_PUTENV=0; - REPLACE_REALLOC=0; - REPLACE_REALPATH=0; - REPLACE_SETENV=0; - REPLACE_STRTOD=0; - REPLACE_UNSETENV=0; - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } ! if test "${ac_cv_c_inline+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no --- 9361,9369 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } ! if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no *************** *** 9308,9313 **** --- 9424,9430 ---- GNULIB_GETLOGIN_R=0; GNULIB_GETPAGESIZE=0; GNULIB_GETUSERSHELL=0; + GNULIB_GROUP_MEMBER=0; GNULIB_LCHOWN=0; GNULIB_LINK=0; GNULIB_LINKAT=0; *************** *** 9316,9321 **** --- 9433,9439 ---- GNULIB_PIPE2=0; GNULIB_PREAD=0; GNULIB_PWRITE=0; + GNULIB_READ=0; GNULIB_READLINK=0; GNULIB_READLINKAT=0; GNULIB_RMDIR=0; *************** *** 9324,9329 **** --- 9442,9448 ---- GNULIB_SYMLINKAT=0; GNULIB_TTYNAME_R=0; GNULIB_UNISTD_H_GETOPT=0; + GNULIB_UNISTD_H_NONBLOCKING=0; GNULIB_UNISTD_H_SIGPIPE=0; GNULIB_UNLINK=0; GNULIB_UNLINKAT=0; *************** *** 9343,9348 **** --- 9462,9468 ---- HAVE_GETHOSTNAME=1; HAVE_GETLOGIN=1; HAVE_GETPAGESIZE=1; + HAVE_GROUP_MEMBER=1; HAVE_LCHOWN=1; HAVE_LINK=1; HAVE_LINKAT=1; *************** *** 9382,9387 **** --- 9502,9508 ---- REPLACE_LSEEK=0; REPLACE_PREAD=0; REPLACE_PWRITE=0; + REPLACE_READ=0; REPLACE_READLINK=0; REPLACE_RMDIR=0; REPLACE_SLEEP=0; *************** *** 9397,9403 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 $as_echo_n "checking for uid_t in sys/types.h... " >&6; } ! if test "${ac_cv_type_uid_t+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 9518,9524 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 $as_echo_n "checking for uid_t in sys/types.h... " >&6; } ! if ${ac_cv_type_uid_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 9428,9434 **** for ac_header in unistd.h do : ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" ! if test "x$ac_cv_header_unistd_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_UNISTD_H 1 _ACEOF --- 9549,9555 ---- for ac_header in unistd.h do : ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" ! if test "x$ac_cv_header_unistd_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_UNISTD_H 1 _ACEOF *************** *** 9439,9445 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working chown" >&5 $as_echo_n "checking for working chown... " >&6; } ! if test "${ac_cv_func_chown_works+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 9560,9566 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working chown" >&5 $as_echo_n "checking for working chown... " >&6; } ! if ${ac_cv_func_chown_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 9493,9499 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown dereferences symlinks" >&5 $as_echo_n "checking whether chown dereferences symlinks... " >&6; } ! if test "${gl_cv_func_chown_follows_symlink+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 9614,9620 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown dereferences symlinks" >&5 $as_echo_n "checking whether chown dereferences symlinks... " >&6; } ! if ${gl_cv_func_chown_follows_symlink+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 9606,9612 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown honors trailing slash" >&5 $as_echo_n "checking whether chown honors trailing slash... " >&6; } ! if test "${gl_cv_func_chown_slash_works+set}" = set; then : $as_echo_n "(cached) " >&6 else touch conftest.file && rm -f conftest.link --- 9727,9733 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown honors trailing slash" >&5 $as_echo_n "checking whether chown honors trailing slash... " >&6; } ! if ${gl_cv_func_chown_slash_works+:} false; then : $as_echo_n "(cached) " >&6 else touch conftest.file && rm -f conftest.link *************** *** 9662,9668 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown always updates ctime" >&5 $as_echo_n "checking whether chown always updates ctime... " >&6; } ! if test "${gl_cv_func_chown_ctime_works+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 9783,9789 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown always updates ctime" >&5 $as_echo_n "checking whether chown always updates ctime... " >&6; } ! if ${gl_cv_func_chown_ctime_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 9742,9761 **** --- 9863,9889 ---- GNULIB_DPRINTF=0; GNULIB_FCLOSE=0; GNULIB_FFLUSH=0; + GNULIB_FGETC=0; + GNULIB_FGETS=0; GNULIB_FOPEN=0; GNULIB_FPRINTF=0; GNULIB_FPRINTF_POSIX=0; GNULIB_FPURGE=0; GNULIB_FPUTC=0; GNULIB_FPUTS=0; + GNULIB_FREAD=0; GNULIB_FREOPEN=0; + GNULIB_FSCANF=0; GNULIB_FSEEK=0; GNULIB_FSEEKO=0; GNULIB_FTELL=0; GNULIB_FTELLO=0; GNULIB_FWRITE=0; + GNULIB_GETC=0; + GNULIB_GETCHAR=0; GNULIB_GETDELIM=0; GNULIB_GETLINE=0; + GNULIB_GETS=0; GNULIB_OBSTACK_PRINTF=0; GNULIB_OBSTACK_PRINTF_POSIX=0; GNULIB_PERROR=0; *************** *** 9768,9778 **** --- 9896,9910 ---- GNULIB_REMOVE=0; GNULIB_RENAME=0; GNULIB_RENAMEAT=0; + GNULIB_SCANF=0; GNULIB_SNPRINTF=0; GNULIB_SPRINTF_POSIX=0; + GNULIB_STDIO_H_NONBLOCKING=0; GNULIB_STDIO_H_SIGPIPE=0; GNULIB_TMPFILE=0; GNULIB_VASPRINTF=0; + GNULIB_VFSCANF=0; + GNULIB_VSCANF=0; GNULIB_VDPRINTF=0; GNULIB_VFPRINTF=0; GNULIB_VFPRINTF_POSIX=0; *************** *** 9816,9821 **** --- 9948,9954 ---- REPLACE_RENAMEAT=0; REPLACE_SNPRINTF=0; REPLACE_SPRINTF=0; + REPLACE_STDIO_READ_FUNCS=0; REPLACE_STDIO_WRITE_FUNCS=0; REPLACE_TMPFILE=0; REPLACE_VASPRINTF=0; *************** *** 9828,9834 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } ! if test "${ac_cv_c_bigendian+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown --- 9961,9967 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } ! if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown *************** *** 10047,10053 **** ;; #( *) as_fn_error $? "unknown endianness ! presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac --- 10180,10186 ---- ;; #( *) as_fn_error $? "unknown endianness ! presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac *************** *** 10070,10076 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5 $as_echo_n "checking whether the preprocessor supports include_next... " >&6; } ! if test "${gl_cv_have_include_next+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -rf conftestd1a conftestd1b conftestd2 --- 10203,10209 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5 $as_echo_n "checking whether the preprocessor supports include_next... " >&6; } ! if ${gl_cv_have_include_next+:} false; then : $as_echo_n "(cached) " >&6 else rm -rf conftestd1a conftestd1b conftestd2 *************** *** 10150,10156 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system header files limit the line length" >&5 $as_echo_n "checking whether system header files limit the line length... " >&6; } ! if test "${gl_cv_pragma_columns+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 10283,10289 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system header files limit the line length" >&5 $as_echo_n "checking whether system header files limit the line length... " >&6; } ! if ${gl_cv_pragma_columns+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 10183,10284 **** - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system is Windows or MSDOS" >&5 - $as_echo_n "checking whether system is Windows or MSDOS... " >&6; } - if test "${ac_cv_win_or_dos+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int - main () - { - - #if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __CYGWIN__ - neither MSDOS nor Windows - #endif - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_win_or_dos=yes - else - ac_cv_win_or_dos=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_win_or_dos" >&5 - $as_echo "$ac_cv_win_or_dos" >&6; } - - if test x"$ac_cv_win_or_dos" = xyes; then - ac_fs_accepts_drive_letter_prefix=1 - ac_fs_backslash_is_file_name_separator=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether drive letter can start relative path" >&5 - $as_echo_n "checking whether drive letter can start relative path... " >&6; } - if test "${ac_cv_drive_letter_can_be_relative+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int - main () - { - - #if defined __CYGWIN__ - drive letters are always absolute - #endif - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_drive_letter_can_be_relative=yes - else - ac_cv_drive_letter_can_be_relative=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_drive_letter_can_be_relative" >&5 - $as_echo "$ac_cv_drive_letter_can_be_relative" >&6; } - if test x"$ac_cv_drive_letter_can_be_relative" = xyes; then - ac_fs_drive_letter_can_be_relative=1 - else - ac_fs_drive_letter_can_be_relative=0 - fi - else - ac_fs_accepts_drive_letter_prefix=0 - ac_fs_backslash_is_file_name_separator=0 - ac_fs_drive_letter_can_be_relative=0 - fi - - - cat >>confdefs.h <<_ACEOF - #define FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX $ac_fs_accepts_drive_letter_prefix - _ACEOF - - - - - - cat >>confdefs.h <<_ACEOF - #define FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR $ac_fs_backslash_is_file_name_separator - _ACEOF - - - - cat >>confdefs.h <<_ACEOF - #define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE $ac_fs_drive_letter_can_be_relative - _ACEOF - - - --- 10316,10321 ---- *************** *** 10286,10292 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5 $as_echo_n "checking for complete errno.h... " >&6; } ! if test "${gl_cv_header_errno_h_complete+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 10323,10329 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5 $as_echo_n "checking for complete errno.h... " >&6; } ! if ${gl_cv_header_errno_h_complete+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 10357,10363 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_errno_h+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 10394,10400 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_errno_h+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 10400,10410 **** ERRNO_H='errno.h' fi if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5 $as_echo_n "checking for EMULTIHOP value... " >&6; } ! if test "${gl_cv_header_errno_h_EMULTIHOP+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 10437,10455 ---- ERRNO_H='errno.h' fi + if test -n "$ERRNO_H"; then + GL_GENERATE_ERRNO_H_TRUE= + GL_GENERATE_ERRNO_H_FALSE='#' + else + GL_GENERATE_ERRNO_H_TRUE='#' + GL_GENERATE_ERRNO_H_FALSE= + fi + if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5 $as_echo_n "checking for EMULTIHOP value... " >&6; } ! if ${gl_cv_header_errno_h_EMULTIHOP+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 10475,10481 **** if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5 $as_echo_n "checking for ENOLINK value... " >&6; } ! if test "${gl_cv_header_errno_h_ENOLINK+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 10520,10526 ---- if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5 $as_echo_n "checking for ENOLINK value... " >&6; } ! if ${gl_cv_header_errno_h_ENOLINK+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 10546,10552 **** if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5 $as_echo_n "checking for EOVERFLOW value... " >&6; } ! if test "${gl_cv_header_errno_h_EOVERFLOW+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 10591,10597 ---- if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5 $as_echo_n "checking for EOVERFLOW value... " >&6; } ! if ${gl_cv_header_errno_h_EOVERFLOW+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 10615,10621 **** ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" ! if test "x$ac_cv_have_decl_strerror_r" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 10660,10666 ---- ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" ! if test "x$ac_cv_have_decl_strerror_r" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 10628,10634 **** for ac_func in strerror_r do : ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r" ! if test "x$ac_cv_func_strerror_r" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRERROR_R 1 _ACEOF --- 10673,10679 ---- for ac_func in strerror_r do : ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r" ! if test "x$ac_cv_func_strerror_r" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRERROR_R 1 _ACEOF *************** *** 10638,10644 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5 $as_echo_n "checking whether strerror_r returns char *... " >&6; } ! if test "${ac_cv_func_strerror_r_char_p+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 10683,10689 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5 $as_echo_n "checking whether strerror_r returns char *... " >&6; } ! if ${ac_cv_func_strerror_r_char_p+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 10744,10750 **** REPLACE_UTIMENSAT=0; ac_fn_c_check_decl "$LINENO" "fchdir" "ac_cv_have_decl_fchdir" "$ac_includes_default" ! if test "x$ac_cv_have_decl_fchdir" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 10789,10795 ---- REPLACE_UTIMENSAT=0; ac_fn_c_check_decl "$LINENO" "fchdir" "ac_cv_have_decl_fchdir" "$ac_includes_default" ! if test "x$ac_cv_have_decl_fchdir" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 10758,10763 **** --- 10803,10809 ---- GNULIB_FCNTL=0; + GNULIB_NONBLOCKING=0; GNULIB_OPEN=0; GNULIB_OPENAT=0; HAVE_FCNTL=1; *************** *** 10767,10773 **** REPLACE_OPENAT=0; ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" ! if test "x$ac_cv_type_mode_t" = x""yes; then : else --- 10813,10819 ---- REPLACE_OPENAT=0; ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" ! if test "x$ac_cv_type_mode_t" = xyes; then : else *************** *** 10781,10787 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for promoted mode_t type" >&5 $as_echo_n "checking for promoted mode_t type... " >&6; } ! if test "${gl_cv_promoted_mode_t+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 10827,10833 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for promoted mode_t type" >&5 $as_echo_n "checking for promoted mode_t type... " >&6; } ! if ${gl_cv_promoted_mode_t+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 10816,10822 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5 $as_echo_n "checking for working fcntl.h... " >&6; } ! if test "${gl_cv_header_working_fcntl_h+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 10862,10868 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5 $as_echo_n "checking for working fcntl.h... " >&6; } ! if ${gl_cv_header_working_fcntl_h+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 10940,10946 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for st_dm_mode in struct stat" >&5 $as_echo_n "checking for st_dm_mode in struct stat... " >&6; } ! if test "${ac_cv_struct_st_dm_mode+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 10986,10992 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for st_dm_mode in struct stat" >&5 $as_echo_n "checking for st_dm_mode in struct stat... " >&6; } ! if ${ac_cv_struct_st_dm_mode+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 10974,10980 **** ac_fn_c_check_decl "$LINENO" "strmode" "ac_cv_have_decl_strmode" "$ac_includes_default" ! if test "x$ac_cv_have_decl_strmode" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 11020,11026 ---- ac_fn_c_check_decl "$LINENO" "strmode" "ac_cv_have_decl_strmode" "$ac_includes_default" ! if test "x$ac_cv_have_decl_strmode" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 10985,10990 **** --- 11031,11038 ---- _ACEOF + + GNULIB_ACOSL=0; GNULIB_ASINL=0; GNULIB_ATANL=0; *************** *** 11078,11084 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5 $as_echo_n "checking for mbstate_t... " >&6; } ! if test "${ac_cv_type_mbstate_t+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 11126,11132 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5 $as_echo_n "checking for mbstate_t... " >&6; } ! if ${ac_cv_type_mbstate_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 11138,11239 **** - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getcwd (NULL, 0) allocates memory for result" >&5 - $as_echo_n "checking whether getcwd (NULL, 0) allocates memory for result... " >&6; } - if test "${gl_cv_func_getcwd_null+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - if test "$cross_compiling" = yes; then : - case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_getcwd_null="guessing yes";; - # Guess yes on Cygwin. - cygwin*) gl_cv_func_getcwd_null="guessing yes";; - # Guess yes on mingw. - mingw*) gl_cv_func_getcwd_null="guessing yes";; - # If we don't know, assume the worst. - *) gl_cv_func_getcwd_null="guessing no";; - esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! ! # include ! # ifndef getcwd ! char *getcwd (); ! # endif ! int main () { ! ! #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ ! /* mingw cwd does not start with '/', but getcwd does allocate. */ ! #else ! if (chdir ("/") != 0) ! return 1; ! else ! { ! char *f = getcwd (NULL, 0); ! if (! f) ! return 2; ! if (f[0] != '/') ! return 3; ! if (f[1] != '\0') ! return 4; ! return 0; ! } #endif - ; return 0; } _ACEOF ! if ac_fn_c_try_run "$LINENO"; then : ! gl_cv_func_getcwd_null=yes else ! gl_cv_func_getcwd_null=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext fi ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_null" >&5 ! $as_echo "$gl_cv_func_getcwd_null" >&6; } ! ac_fn_c_check_decl "$LINENO" "getcwd" "ac_cv_have_decl_getcwd" "$ac_includes_default" ! if test "x$ac_cv_have_decl_getcwd" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF ! #define HAVE_DECL_GETCWD $ac_have_decl _ACEOF - ac_fn_c_check_decl "$LINENO" "getlogin_r" "ac_cv_have_decl_getlogin_r" "$ac_includes_default" - if test "x$ac_cv_have_decl_getlogin_r" = x""yes; then : - ac_have_decl=1 - else - ac_have_decl=0 - fi ! cat >>confdefs.h <<_ACEOF ! #define HAVE_DECL_GETLOGIN_R $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "getlogin" "ac_cv_have_decl_getlogin" "$ac_includes_default" ! if test "x$ac_cv_have_decl_getlogin" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 11186,11628 ---- + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdin defaults to large file offsets" >&5 + $as_echo_n "checking whether stdin defaults to large file offsets... " >&6; } + if ${gl_cv_var_stdin_large_offset+:} false; then : + $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! #include int main () { ! #if defined __SL64 && defined __SCLE /* cygwin */ ! /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making ! fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and ! it is easier to do a version check than building a runtime test. */ ! # include ! # if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25) ! choke me ! # endif #endif ; return 0; } _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! gl_cv_var_stdin_large_offset=yes else ! gl_cv_var_stdin_large_offset=no fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_var_stdin_large_offset" >&5 ! $as_echo "$gl_cv_var_stdin_large_offset" >&6; } ! ac_fn_c_check_decl "$LINENO" "fseeko" "ac_cv_have_decl_fseeko" "$ac_includes_default" ! if test "x$ac_cv_have_decl_fseeko" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF ! #define HAVE_DECL_FSEEKO $ac_have_decl _ACEOF ! ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fseeko" >&5 ! $as_echo_n "checking for fseeko... " >&6; } ! if ${gl_cv_func_fseeko+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! #include ! ! int ! main () ! { ! fseeko (stdin, 0, 0); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! gl_cv_func_fseeko=yes ! else ! gl_cv_func_fseeko=no ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fseeko" >&5 ! $as_echo "$gl_cv_func_fseeko" >&6; } ! ! ! if test $ac_cv_have_decl_fseeko = no; then ! HAVE_DECL_FSEEKO=0 ! fi ! ! if test $gl_cv_func_fseeko = no; then ! HAVE_FSEEKO=0 ! else ! if test $gl_cv_var_stdin_large_offset = no; then ! REPLACE_FSEEKO=1 ! fi ! ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fflush works on input streams" >&5 ! $as_echo_n "checking whether fflush works on input streams... " >&6; } ! if ${gl_cv_func_fflush_stdin+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! echo hello world > conftest.txt ! if test "$cross_compiling" = yes; then : ! gl_cv_func_fflush_stdin=no ! else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! #include ! #include ! ! int ! main () ! { ! FILE *f = fopen ("conftest.txt", "r"); ! char buffer[10]; ! int fd; ! int c; ! if (f == NULL) ! return 1; ! fd = fileno (f); ! if (fd < 0 || fread (buffer, 1, 5, f) != 5) ! return 2; ! /* For deterministic results, ensure f read a bigger buffer. */ ! if (lseek (fd, 0, SEEK_CUR) == 5) ! return 3; ! /* POSIX requires fflush-fseek to set file offset of fd. This fails ! on BSD systems and on mingw. */ ! if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) ! return 4; ! if (lseek (fd, 0, SEEK_CUR) != 5) ! return 5; ! /* Verify behaviour of fflush after ungetc. See ! */ ! /* Verify behaviour of fflush after a backup ungetc. This fails on ! mingw. */ ! c = fgetc (f); ! ungetc (c, f); ! fflush (f); ! if (fgetc (f) != c) ! return 6; ! /* Verify behaviour of fflush after a non-backup ungetc. This fails ! on glibc 2.8 and on BSD systems. */ ! c = fgetc (f); ! ungetc ('@', f); ! fflush (f); ! if (fgetc (f) != c) ! return 7; ! return 0; ! ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_run "$LINENO"; then : ! gl_cv_func_fflush_stdin=yes ! else ! gl_cv_func_fflush_stdin=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! rm conftest.txt ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fflush_stdin" >&5 ! $as_echo "$gl_cv_func_fflush_stdin" >&6; } ! ! if test $gl_cv_func_fflush_stdin = no; then ! REPLACE_FSEEKO=1 ! fi ! ! fi ! ! ac_fn_c_check_decl "$LINENO" "ftello" "ac_cv_have_decl_ftello" "$ac_includes_default" ! if test "x$ac_cv_have_decl_ftello" = xyes; then : ! ac_have_decl=1 ! else ! ac_have_decl=0 ! fi ! ! cat >>confdefs.h <<_ACEOF ! #define HAVE_DECL_FTELLO $ac_have_decl ! _ACEOF ! ! ! ! ! ! ! ! ! ! if test $ac_cv_have_decl_ftello = no; then ! HAVE_DECL_FTELLO=0 ! fi ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ftello" >&5 ! $as_echo_n "checking for ftello... " >&6; } ! if ${gl_cv_func_ftello+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! #include ! int ! main () ! { ! ftello (stdin); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! gl_cv_func_ftello=yes ! else ! gl_cv_func_ftello=no ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ftello" >&5 ! $as_echo "$gl_cv_func_ftello" >&6; } ! if test $gl_cv_func_ftello = no; then ! HAVE_FTELLO=0 ! else ! if test $gl_cv_var_stdin_large_offset = no; then ! REPLACE_FTELLO=1 ! else ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ftello works" >&5 ! $as_echo_n "checking whether ftello works... " >&6; } ! if ${gl_cv_func_ftello_works+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ! case "$host_os" in ! # Guess no on Solaris. ! solaris*) gl_cv_func_ftello_works="guessing no" ;; ! # Guess yes otherwise. ! *) gl_cv_func_ftello_works="guessing yes" ;; ! esac ! if test "$cross_compiling" = yes; then : ! : ! else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! #include ! #include ! #include ! #define TESTFILE "conftest.tmp" ! int ! main (void) ! { ! FILE *fp; ! ! /* Create a file with some contents. */ ! fp = fopen (TESTFILE, "w"); ! if (fp == NULL) ! return 70; ! if (fwrite ("foogarsh", 1, 8, fp) < 8) ! return 71; ! if (fclose (fp)) ! return 72; ! ! /* The file's contents is now "foogarsh". */ ! ! /* Try writing after reading to EOF. */ ! fp = fopen (TESTFILE, "r+"); ! if (fp == NULL) ! return 73; ! if (fseek (fp, -1, SEEK_END)) ! return 74; ! if (!(getc (fp) == 'h')) ! return 1; ! if (!(getc (fp) == EOF)) ! return 2; ! if (!(ftell (fp) == 8)) ! return 3; ! if (!(ftell (fp) == 8)) ! return 4; ! if (!(putc ('!', fp) == '!')) ! return 5; ! if (!(ftell (fp) == 9)) ! return 6; ! if (!(fclose (fp) == 0)) ! return 7; ! fp = fopen (TESTFILE, "r"); ! if (fp == NULL) ! return 75; ! { ! char buf[10]; ! if (!(fread (buf, 1, 10, fp) == 9)) ! return 10; ! if (!(memcmp (buf, "foogarsh!", 9) == 0)) ! return 11; ! } ! if (!(fclose (fp) == 0)) ! return 12; ! ! /* The file's contents is now "foogarsh!". */ ! ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_run "$LINENO"; then : ! gl_cv_func_ftello_works=yes ! else ! gl_cv_func_ftello_works=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ftello_works" >&5 ! $as_echo "$gl_cv_func_ftello_works" >&6; } ! case "$gl_cv_func_ftello_works" in ! *yes) ;; ! *) ! REPLACE_FTELLO=1 ! ! $as_echo "#define FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE 1" >>confdefs.h ! ! ;; ! esac ! fi ! fi ! ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getcwd (NULL, 0) allocates memory for result" >&5 ! $as_echo_n "checking whether getcwd (NULL, 0) allocates memory for result... " >&6; } ! if ${gl_cv_func_getcwd_null+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! if test "$cross_compiling" = yes; then : ! ! case "$host_os" in ! # Guess yes on glibc systems. ! *-gnu*) gl_cv_func_getcwd_null="guessing yes";; ! # Guess yes on Cygwin. ! cygwin*) gl_cv_func_getcwd_null="guessing yes";; ! # If we don't know, assume the worst. ! *) gl_cv_func_getcwd_null="guessing no";; ! esac ! ! else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! # include ! # ifndef getcwd ! char *getcwd (); ! # endif ! ! int ! main () ! { ! ! #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ ! /* mingw cwd does not start with '/', but getcwd does allocate. ! However, mingw fails to honor non-zero size. */ ! #else ! if (chdir ("/") != 0) ! return 1; ! else ! { ! char *f = getcwd (NULL, 0); ! if (! f) ! return 2; ! if (f[0] != '/') ! return 3; ! if (f[1] != '\0') ! return 4; ! return 0; ! } ! #endif ! /* If size is non-zero, allocation must fail if size is too small */ ! if (getcwd (NULL, 1)) ! return 5; ! ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_run "$LINENO"; then : ! gl_cv_func_getcwd_null=yes ! else ! gl_cv_func_getcwd_null=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_null" >&5 ! $as_echo "$gl_cv_func_getcwd_null" >&6; } ! ! ac_fn_c_check_decl "$LINENO" "getcwd" "ac_cv_have_decl_getcwd" "$ac_includes_default" ! if test "x$ac_cv_have_decl_getcwd" = xyes; then : ! ac_have_decl=1 ! else ! ac_have_decl=0 ! fi ! ! cat >>confdefs.h <<_ACEOF ! #define HAVE_DECL_GETCWD $ac_have_decl ! _ACEOF ! ! ! ! ! ! ac_fn_c_check_decl "$LINENO" "getlogin_r" "ac_cv_have_decl_getlogin_r" "$ac_includes_default" ! if test "x$ac_cv_have_decl_getlogin_r" = xyes; then : ! ac_have_decl=1 ! else ! ac_have_decl=0 ! fi ! ! cat >>confdefs.h <<_ACEOF ! #define HAVE_DECL_GETLOGIN_R $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "getlogin" "ac_cv_have_decl_getlogin" "$ac_includes_default" ! if test "x$ac_cv_have_decl_getlogin" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 11263,11269 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_getopt_h+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 11652,11658 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_getopt_h+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 11322,11328 **** for ac_header in getopt.h do : ac_fn_c_check_header_mongrel "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default" ! if test "x$ac_cv_header_getopt_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETOPT_H 1 _ACEOF --- 11711,11717 ---- for ac_header in getopt.h do : ac_fn_c_check_header_mongrel "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default" ! if test "x$ac_cv_header_getopt_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETOPT_H 1 _ACEOF *************** *** 11339,11345 **** for ac_func in getopt_long_only do : ac_fn_c_check_func "$LINENO" "getopt_long_only" "ac_cv_func_getopt_long_only" ! if test "x$ac_cv_func_getopt_long_only" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETOPT_LONG_ONLY 1 _ACEOF --- 11728,11734 ---- for ac_func in getopt_long_only do : ac_fn_c_check_func "$LINENO" "getopt_long_only" "ac_cv_func_getopt_long_only" ! if test "x$ac_cv_func_getopt_long_only" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETOPT_LONG_ONLY 1 _ACEOF *************** *** 11354,11360 **** if test -z "$gl_replace_getopt"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getopt is POSIX compatible" >&5 $as_echo_n "checking whether getopt is POSIX compatible... " >&6; } ! if test "${gl_cv_func_getopt_posix+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 11743,11749 ---- if test -z "$gl_replace_getopt"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getopt is POSIX compatible" >&5 $as_echo_n "checking whether getopt is POSIX compatible... " >&6; } ! if ${gl_cv_func_getopt_posix+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 11512,11518 **** if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt function" >&5 $as_echo_n "checking for working GNU getopt function... " >&6; } ! if test "${gl_cv_func_getopt_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else # Even with POSIXLY_CORRECT, the GNU extension of leading '-' in the --- 11901,11907 ---- if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt function" >&5 $as_echo_n "checking for working GNU getopt function... " >&6; } ! if ${gl_cv_func_getopt_gnu+:} false; then : $as_echo_n "(cached) " >&6 else # Even with POSIXLY_CORRECT, the GNU extension of leading '-' in the *************** *** 11624,11630 **** fi ac_fn_c_check_decl "$LINENO" "getenv" "ac_cv_have_decl_getenv" "$ac_includes_default" ! if test "x$ac_cv_have_decl_getenv" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 12013,12019 ---- fi ac_fn_c_check_decl "$LINENO" "getenv" "ac_cv_have_decl_getenv" "$ac_includes_default" ! if test "x$ac_cv_have_decl_getenv" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 11680,11686 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 $as_echo_n "checking for C/C++ restrict keyword... " >&6; } ! if test "${ac_cv_c_restrict+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_c_restrict=no --- 12069,12075 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 $as_echo_n "checking for C/C++ restrict keyword... " >&6; } ! if ${ac_cv_c_restrict+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_restrict=no *************** *** 11751,11757 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_sys_time_h+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 12140,12146 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_sys_time_h+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 11804,11810 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5 $as_echo_n "checking for struct timeval... " >&6; } ! if test "${gl_cv_sys_struct_timeval+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 12193,12199 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5 $as_echo_n "checking for struct timeval... " >&6; } ! if ${gl_cv_sys_struct_timeval+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 11840,11846 **** as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval "test \"\${$as_gl_Symbol+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 12229,12235 ---- as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 11900,11906 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 $as_echo_n "checking for nl_langinfo and CODESET... " >&6; } ! if test "${am_cv_langinfo_codeset+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 12289,12295 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 $as_echo_n "checking for nl_langinfo and CODESET... " >&6; } ! if ${am_cv_langinfo_codeset+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 11932,11938 **** fi ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default" ! if test "x$ac_cv_have_decl_getc_unlocked" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 12321,12327 ---- fi ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default" ! if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 11945,11951 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5 $as_echo_n "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; } ! if test "${ac_cv_gnu_library_2_1+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 12334,12340 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5 $as_echo_n "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; } ! if ${ac_cv_gnu_library_2_1+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 11984,11990 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 $as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } ! if test "${ac_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file --- 12373,12379 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 $as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } ! if ${ac_cv_func_lstat_dereferences_slashed_symlink+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file *************** *** 12054,12060 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc are POSIX compliant" >&5 $as_echo_n "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; } ! if test "${gl_cv_func_malloc_posix+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 12443,12449 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc are POSIX compliant" >&5 $as_echo_n "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; } ! if ${gl_cv_func_malloc_posix+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 12087,12093 **** for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" ! if test "x$ac_cv_header_stdlib_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF --- 12476,12482 ---- for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" ! if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF *************** *** 12098,12104 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } ! if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 12487,12493 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } ! if ${ac_cv_func_malloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 12145,12156 **** ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5 ! $as_echo_n "checking for long long int... " >&6; } ! if test "${ac_cv_type_long_long_int+set}" = set; then : $as_echo_n "(cached) " >&6 else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* For now, do not test the preprocessor; as of 2007 there are too many --- 12534,12547 ---- ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5 ! $as_echo_n "checking for unsigned long long int... " >&6; } ! if ${ac_cv_type_unsigned_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else ! ac_cv_type_unsigned_long_long_int=yes ! if test "x${ac_cv_prog_cc_c99-no}" = xno; then ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* For now, do not test the preprocessor; as of 2007 there are too many *************** *** 12183,12219 **** _ACEOF if ac_fn_c_try_link "$LINENO"; then : ! if test "$cross_compiling" = yes; then : ac_cv_type_long_long_int=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include ! #ifndef LLONG_MAX ! # define HALF \ ! (1LL << (sizeof (long long int) * CHAR_BIT - 2)) ! # define LLONG_MAX (HALF - 1 + HALF) ! #endif int main () { long long int n = 1; ! int i; ! for (i = 0; ; i++) ! { ! long long int m = n << i; ! if (m >> i != n) ! return 1; ! if (LLONG_MAX / 2 < m) ! break; ! } ! return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ! ac_cv_type_long_long_int=yes else ac_cv_type_long_long_int=no fi --- 12574,12637 ---- _ACEOF if ac_fn_c_try_link "$LINENO"; then : ! ! else ! ac_cv_type_unsigned_long_long_int=no ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! fi ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5 ! $as_echo "$ac_cv_type_unsigned_long_long_int" >&6; } ! if test $ac_cv_type_unsigned_long_long_int = yes; then ! ! $as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h ! ! fi ! ! ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5 ! $as_echo_n "checking for long long int... " >&6; } ! if ${ac_cv_type_long_long_int+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ac_cv_type_long_long_int=yes + if test "x${ac_cv_prog_cc_c99-no}" = xno; then + ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int + if test $ac_cv_type_long_long_int = yes; then + if test "$cross_compiling" = yes; then : + : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include ! #ifndef LLONG_MAX ! # define HALF \ ! (1LL << (sizeof (long long int) * CHAR_BIT - 2)) ! # define LLONG_MAX (HALF - 1 + HALF) ! #endif int main () { long long int n = 1; ! int i; ! for (i = 0; ; i++) ! { ! long long int m = n << i; ! if (m >> i != n) ! return 1; ! if (LLONG_MAX / 2 < m) ! break; ! } ! return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ! else ac_cv_type_long_long_int=no fi *************** *** 12221,12231 **** conftest.$ac_objext conftest.beam conftest.$ac_ext fi ! else ! ac_cv_type_long_long_int=no ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5 $as_echo "$ac_cv_type_long_long_int" >&6; } --- 12639,12646 ---- conftest.$ac_objext conftest.beam conftest.$ac_ext fi ! fi ! fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5 $as_echo "$ac_cv_type_long_long_int" >&6; } *************** *** 12339,12345 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5 $as_echo_n "checking for a traditional japanese locale... " >&6; } ! if test "${gt_cv_locale_ja+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 12754,12760 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5 $as_echo_n "checking for a traditional japanese locale... " >&6; } ! if ${gt_cv_locale_ja+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 12359,12365 **** --- 12774,12790 ---- { const char *p; /* Check whether the given locale name is recognized by the system. */ + #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ + /* On native Win32, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; + #else if (setlocale (LC_ALL, "") == NULL) return 1; + #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. *************** *** 12402,12443 **** ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the AIX locale name. ! if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP ! else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP.EUC-JP ! else ! # Test for the HP-UX, OSF/1, NetBSD locale name. ! if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP.eucJP else ! # Test for the IRIX, FreeBSD locale name. ! if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP.EUC else ! # Test for the Solaris 7 locale name. ! if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja else ! # Special test for NetBSD 1.6. ! if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then ! gt_cv_locale_ja=ja_JP.eucJP else ! # None found. ! gt_cv_locale_ja=none fi fi fi fi ! fi ! fi fi rm -fr conftest* --- 12827,12883 ---- ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then ! case "$host_os" in ! # Handle native Windows specially, because there setlocale() interprets ! # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", ! # "fr" or "fra" as "French" or "French_France.1252", ! # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", ! # "ja" as "Japanese" or "Japanese_Japan.932", ! # and similar. ! mingw*) ! # Note that on native Win32, the Japanese locale is Japanese_Japan.932, ! # and CP932 is very different from EUC-JP, so we cannot use it here. ! gt_cv_locale_ja=none ! ;; ! *) ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the AIX locale name. ! if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP.EUC-JP else ! # Test for the HP-UX, OSF/1, NetBSD locale name. ! if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP.eucJP else ! # Test for the IRIX, FreeBSD locale name. ! if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP.EUC else ! # Test for the Solaris 7 locale name. ! if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja ! else ! # Special test for NetBSD 1.6. ! if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then ! gt_cv_locale_ja=ja_JP.eucJP ! else ! # None found. ! gt_cv_locale_ja=none ! fi ! fi fi fi fi fi ! ;; ! esac fi rm -fr conftest* *************** *** 12452,12458 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5 $as_echo_n "checking for a transitional chinese locale... " >&6; } ! if test "${gt_cv_locale_zh_CN+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 12892,12898 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5 $as_echo_n "checking for a transitional chinese locale... " >&6; } ! if ${gt_cv_locale_zh_CN+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 12473,12479 **** --- 12913,12929 ---- { const char *p; /* Check whether the given locale name is recognized by the system. */ + #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ + /* On native Win32, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; + #else if (setlocale (LC_ALL, "") == NULL) return 1; + #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. *************** *** 12516,12537 **** ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the locale name without encoding suffix. ! if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_zh_CN=zh_CN ! else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_zh_CN=zh_CN.GB18030 ! else ! # None found. gt_cv_locale_zh_CN=none ! fi ! fi else # If there was a link error, due to mblen(), the system is so old that # it certainly doesn't have a chinese locale. --- 12966,13012 ---- ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then ! case "$host_os" in ! # Handle native Windows specially, because there setlocale() interprets ! # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", ! # "fr" or "fra" as "French" or "French_France.1252", ! # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", ! # "ja" as "Japanese" or "Japanese_Japan.932", ! # and similar. ! mingw*) ! # Test for the hypothetical native Win32 locale name. ! if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_zh_CN=Chinese_China.54936 ! else ! # None found. ! gt_cv_locale_zh_CN=none ! fi ! ;; ! solaris2.8) ! # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are ! # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. ! # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. gt_cv_locale_zh_CN=none ! ;; ! *) ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the locale name without encoding suffix. ! if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_zh_CN=zh_CN ! else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_zh_CN=zh_CN.GB18030 ! else ! # None found. ! gt_cv_locale_zh_CN=none ! fi ! fi ! ;; ! esac else # If there was a link error, due to mblen(), the system is so old that # it certainly doesn't have a chinese locale. *************** *** 12549,12555 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5 $as_echo_n "checking for a french Unicode locale... " >&6; } ! if test "${gt_cv_locale_fr_utf8+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 13024,13030 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5 $as_echo_n "checking for a french Unicode locale... " >&6; } ! if ${gt_cv_locale_fr_utf8+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 12571,12577 **** --- 13046,13062 ---- variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ + # if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ + /* On native Win32, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; + # else if (setlocale (LC_ALL, "") == NULL) return 1; + # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. *************** *** 12612,12638 **** ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the usual locale name. ! if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr_utf8=fr_FR ! else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr_utf8=fr_FR.UTF-8 ! else ! # Test for the Solaris 7 locale name. ! if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr_utf8=fr.UTF-8 else # None found. gt_cv_locale_fr_utf8=none fi ! fi ! fi fi rm -fr conftest* --- 13097,13142 ---- ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then ! case "$host_os" in ! # Handle native Windows specially, because there setlocale() interprets ! # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", ! # "fr" or "fra" as "French" or "French_France.1252", ! # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", ! # "ja" as "Japanese" or "Japanese_Japan.932", ! # and similar. ! mingw*) ! # Test for the hypothetical native Win32 locale name. ! if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr_utf8=French_France.65001 else # None found. gt_cv_locale_fr_utf8=none fi ! ;; ! *) ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the usual locale name. ! if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr_utf8=fr_FR ! else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr_utf8=fr_FR.UTF-8 ! else ! # Test for the Solaris 7 locale name. ! if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr_utf8=fr.UTF-8 ! else ! # None found. ! gt_cv_locale_fr_utf8=none ! fi ! fi ! fi ! ;; ! esac fi rm -fr conftest* *************** *** 12645,12650 **** --- 13149,13287 ---- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5 + $as_echo_n "checking for a traditional french locale... " >&6; } + if ${gt_cv_locale_fr+:} false; then : + $as_echo_n "(cached) " >&6 + else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + #include + #include + #if HAVE_LANGINFO_CODESET + # include + #endif + #include + #include + struct tm t; + char buf[16]; + int main () { + /* Check whether the given locale name is recognized by the system. */ + #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ + /* On native Win32, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; + #else + if (setlocale (LC_ALL, "") == NULL) return 1; + #endif + /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". + On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) + is empty, and the behaviour of Tcl 8.4 in this locale is not useful. + On OpenBSD 4.0, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "646". In this situation, + some unit tests fail. + On MirBSD 10, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "UTF-8". */ + #if HAVE_LANGINFO_CODESET + { + const char *cs = nl_langinfo (CODESET); + if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 + || strcmp (cs, "UTF-8") == 0) + return 1; + } + #endif + #ifdef __CYGWIN__ + /* On Cygwin, avoid locale names without encoding suffix, because the + locale_charset() function relies on the encoding suffix. Note that + LC_ALL is set on the command line. */ + if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; + #endif + /* Check whether in the abbreviation of the second month, the second + character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only + one byte long. This excludes the UTF-8 encoding. */ + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; + /* Check whether the decimal separator is a comma. + On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point + are nl_langinfo(RADIXCHAR) are both ".". */ + if (localeconv () ->decimal_point[0] != ',') return 1; + return 0; + } + + _ACEOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + case "$host_os" in + # Handle native Windows specially, because there setlocale() interprets + # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", + # "fr" or "fra" as "French" or "French_France.1252", + # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", + # "ja" as "Japanese" or "Japanese_Japan.932", + # and similar. + mingw*) + # Test for the native Win32 locale name. + if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=French_France.1252 + else + # None found. + gt_cv_locale_fr=none + fi + ;; + *) + # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because + # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the + # configure script would override the LC_ALL setting. Likewise for + # LC_CTYPE, which is also set at the beginning of the configure script. + # Test for the usual locale name. + if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr_FR + else + # Test for the locale name with explicit encoding suffix. + if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr_FR.ISO-8859-1 + else + # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. + if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr_FR.ISO8859-1 + else + # Test for the HP-UX locale name. + if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr_FR.iso88591 + else + # Test for the Solaris 7 locale name. + if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr + else + # None found. + gt_cv_locale_fr=none + fi + fi + fi + fi + fi + ;; + esac + fi + rm -fr conftest* + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5 + $as_echo "$gt_cv_locale_fr" >&6; } + LOCALE_FR=$gt_cv_locale_fr + + + + + GNULIB_MEMCHR=0; *************** *** 12707,12712 **** --- 13344,13350 ---- REPLACE_STRDUP=0; REPLACE_STRSTR=0; REPLACE_STRCASESTR=0; + REPLACE_STRCHRNUL=0; REPLACE_STRERROR=0; REPLACE_STRERROR_R=0; REPLACE_STRNCAT=0; *************** *** 12720,12732 **** - - # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is # irrelevant for anonymous mappings. ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap" ! if test "x$ac_cv_func_mmap" = x""yes; then : gl_have_mmap=yes else gl_have_mmap=no --- 13358,13368 ---- # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is # irrelevant for anonymous mappings. ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap" ! if test "x$ac_cv_func_mmap" = xyes; then : gl_have_mmap=yes else gl_have_mmap=no *************** *** 12787,12793 **** ! if test $ac_cv_func_memchr = yes; then # Detect platform-specific bugs in some versions of glibc: # memchr should not dereference anything with length 0 # http://bugzilla.redhat.com/499689 --- 13423,13429 ---- ! if test $HAVE_MEMCHR = 1; then # Detect platform-specific bugs in some versions of glibc: # memchr should not dereference anything with length 0 # http://bugzilla.redhat.com/499689 *************** *** 12797,12803 **** # Assume that memchr works on platforms that lack mprotect. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5 $as_echo_n "checking whether memchr works... " >&6; } ! if test "${gl_cv_func_memchr_works+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 13433,13439 ---- # Assume that memchr works on platforms that lack mprotect. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5 $as_echo_n "checking whether memchr works... " >&6; } ! if ${gl_cv_func_memchr_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 12873,12880 **** if test "$gl_cv_func_memchr_works" != yes; then REPLACE_MEMCHR=1 fi - else - HAVE_MEMCHR=0 fi if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then --- 13509,13514 ---- *************** *** 12891,12897 **** for ac_header in bp-sym.h do : ac_fn_c_check_header_mongrel "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default" ! if test "x$ac_cv_header_bp_sym_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BP_SYM_H 1 _ACEOF --- 13525,13531 ---- for ac_header in bp-sym.h do : ac_fn_c_check_header_mongrel "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default" ! if test "x$ac_cv_header_bp_sym_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BP_SYM_H 1 _ACEOF *************** *** 12904,12910 **** fi ac_fn_c_check_decl "$LINENO" "memrchr" "ac_cv_have_decl_memrchr" "$ac_includes_default" ! if test "x$ac_cv_have_decl_memrchr" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 13538,13544 ---- fi ac_fn_c_check_decl "$LINENO" "memrchr" "ac_cv_have_decl_memrchr" "$ac_includes_default" ! if test "x$ac_cv_have_decl_memrchr" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 12925,12931 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 $as_echo_n "checking for special C compiler options needed for large files... " >&6; } ! if test "${ac_cv_sys_largefile_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_largefile_CC=no --- 13559,13565 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 $as_echo_n "checking for special C compiler options needed for large files... " >&6; } ! if ${ac_cv_sys_largefile_CC+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_largefile_CC=no *************** *** 12976,12982 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } ! if test "${ac_cv_sys_file_offset_bits+set}" = set; then : $as_echo_n "(cached) " >&6 else while :; do --- 13610,13616 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } ! if ${ac_cv_sys_file_offset_bits+:} false; then : $as_echo_n "(cached) " >&6 else while :; do *************** *** 13045,13051 **** if test $ac_cv_sys_file_offset_bits = unknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } ! if test "${ac_cv_sys_large_files+set}" = set; then : $as_echo_n "(cached) " >&6 else while :; do --- 13679,13685 ---- if test $ac_cv_sys_file_offset_bits = unknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } ! if ${ac_cv_sys_large_files+:} false; then : $as_echo_n "(cached) " >&6 else while :; do *************** *** 13198,13203 **** --- 13832,13853 ---- HAVE_ACCEPT4=1; + if test $ac_cv_header_sys_socket_h = no; then + for ac_header in ws2tcpip.h + do : + ac_fn_c_check_header_mongrel "$LINENO" "ws2tcpip.h" "ac_cv_header_ws2tcpip_h" "$ac_includes_default" + if test "x$ac_cv_header_ws2tcpip_h" = xyes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_WS2TCPIP_H 1 + _ACEOF + + fi + + done + + fi + + *************** *** 13212,13218 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether is self-contained" >&5 $as_echo_n "checking whether is self-contained... " >&6; } ! if test "${gl_cv_header_sys_socket_h_selfcontained+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 13862,13868 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether is self-contained" >&5 $as_echo_n "checking whether is self-contained... " >&6; } ! if ${gl_cv_header_sys_socket_h_selfcontained+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 13241,13247 **** for ac_func in shutdown do : ac_fn_c_check_func "$LINENO" "shutdown" "ac_cv_func_shutdown" ! if test "x$ac_cv_func_shutdown" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SHUTDOWN 1 _ACEOF --- 13891,13897 ---- for ac_func in shutdown do : ac_fn_c_check_func "$LINENO" "shutdown" "ac_cv_func_shutdown" ! if test "x$ac_cv_func_shutdown" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SHUTDOWN 1 _ACEOF *************** *** 13252,13258 **** if test $ac_cv_func_shutdown = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether defines the SHUT_* macros" >&5 $as_echo_n "checking whether defines the SHUT_* macros... " >&6; } ! if test "${gl_cv_header_sys_socket_h_shut+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 13902,13908 ---- if test $ac_cv_func_shutdown = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether defines the SHUT_* macros" >&5 $as_echo_n "checking whether defines the SHUT_* macros... " >&6; } ! if ${gl_cv_header_sys_socket_h_shut+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 13293,13304 **** if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_socket_h='<'sys/socket.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_sys_socket_h+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 13943,13955 ---- + if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_socket_h='<'sys/socket.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_sys_socket_h+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 13349,13366 **** HAVE_WS2TCPIP_H=0 else HAVE_SYS_SOCKET_H=0 - for ac_header in ws2tcpip.h - do : - ac_fn_c_check_header_mongrel "$LINENO" "ws2tcpip.h" "ac_cv_header_ws2tcpip_h" "$ac_includes_default" - if test "x$ac_cv_header_ws2tcpip_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF - #define HAVE_WS2TCPIP_H 1 - _ACEOF - - fi - - done - if test $ac_cv_header_ws2tcpip_h = yes; then HAVE_WS2TCPIP_H=1 else --- 14000,14005 ---- *************** *** 13383,13389 **** #endif " ! if test "x$ac_cv_type_struct_sockaddr_storage" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SOCKADDR_STORAGE 1 --- 14022,14028 ---- #endif " ! if test "x$ac_cv_type_struct_sockaddr_storage" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SOCKADDR_STORAGE 1 *************** *** 13404,13410 **** #endif " ! if test "x$ac_cv_type_sa_family_t" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SA_FAMILY_T 1 --- 14043,14049 ---- #endif " ! if test "x$ac_cv_type_sa_family_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SA_FAMILY_T 1 *************** *** 13429,13435 **** #endif " ! if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1 --- 14068,14074 ---- #endif " ! if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1 *************** *** 13453,13459 **** for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" ! if test "x$ac_cv_header_winsock2_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF --- 14092,14098 ---- for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" ! if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF *************** *** 13478,13484 **** as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval "test \"\${$as_gl_Symbol+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 14117,14123 ---- as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 13528,13534 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether is self-contained" >&5 $as_echo_n "checking whether is self-contained... " >&6; } ! if test "${gl_cv_header_sys_select_h_selfcontained+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 14167,14173 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether is self-contained" >&5 $as_echo_n "checking whether is self-contained... " >&6; } ! if ${gl_cv_header_sys_select_h_selfcontained+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 13613,13619 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_sys_select_h+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 14252,14258 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_sys_select_h+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 13673,13679 **** for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" ! if test "x$ac_cv_header_winsock2_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF --- 14312,14318 ---- for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" ! if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF *************** *** 13698,13704 **** as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval "test \"\${$as_gl_Symbol+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 14337,14343 ---- as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 13749,13755 **** for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" ! if test "x$ac_cv_header_winsock2_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF --- 14388,14394 ---- for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" ! if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF *************** *** 13771,13777 **** if test $HAVE_WINSOCK2_H = 1; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need to call WSAStartup in winsock2.h and -lws2_32" >&5 $as_echo_n "checking if we need to call WSAStartup in winsock2.h and -lws2_32... " >&6; } ! if test "${gl_cv_func_wsastartup+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 14410,14416 ---- if test $HAVE_WINSOCK2_H = 1; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need to call WSAStartup in winsock2.h and -lws2_32" >&5 $as_echo_n "checking if we need to call WSAStartup in winsock2.h and -lws2_32... " >&6; } ! if ${gl_cv_func_wsastartup+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 13816,13822 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5 $as_echo_n "checking for library containing setsockopt... " >&6; } ! if test "${gl_cv_lib_socket+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 14455,14461 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5 $as_echo_n "checking for library containing setsockopt... " >&6; } ! if ${gl_cv_lib_socket+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 13936,13941 **** --- 14575,14581 ---- if test "$ac_cv_header_winsock2_h" = yes; then + REPLACE_SELECT=1 *************** *** 13950,13956 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether select supports a 0 argument" >&5 $as_echo_n "checking whether select supports a 0 argument... " >&6; } ! if test "${gl_cv_func_select_supports0+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 14590,14596 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether select supports a 0 argument" >&5 $as_echo_n "checking whether select supports a 0 argument... " >&6; } ! if ${gl_cv_func_select_supports0+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 14014,14023 **** - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unlink honors trailing slashes" >&5 $as_echo_n "checking whether unlink honors trailing slashes... " >&6; } ! if test "${gl_cv_func_unlink_honors_slashes+set}" = set; then : $as_echo_n "(cached) " >&6 else touch conftest.file --- 14654,14662 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unlink honors trailing slashes" >&5 $as_echo_n "checking whether unlink honors trailing slashes... " >&6; } ! if ${gl_cv_func_unlink_honors_slashes+:} false; then : $as_echo_n "(cached) " >&6 else touch conftest.file *************** *** 14068,14074 **** $as_echo "$gl_cv_func_unlink_honors_slashes" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unlink of a parent directory fails as it should" >&5 $as_echo_n "checking whether unlink of a parent directory fails as it should... " >&6; } ! if test "${gl_cv_func_unlink_parent_fails+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$host_os" in --- 14707,14713 ---- $as_echo "$gl_cv_func_unlink_honors_slashes" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unlink of a parent directory fails as it should" >&5 $as_echo_n "checking whether unlink of a parent directory fails as it should... " >&6; } ! if ${gl_cv_func_unlink_parent_fails+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in *************** *** 14173,14178 **** --- 14812,14818 ---- HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1; + HAVE_SIGHANDLER_T=1; *************** *** 14184,14190 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 $as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } ! if test "${ac_cv_header_stdbool_h+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 14824,14830 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 $as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } ! if ${ac_cv_header_stdbool_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 14259,14265 **** { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 $as_echo "$ac_cv_header_stdbool_h" >&6; } ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" ! if test "x$ac_cv_type__Bool" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE__BOOL 1 --- 14899,14905 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 $as_echo "$ac_cv_header_stdbool_h" >&6; } ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" ! if test "x$ac_cv_type__Bool" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__BOOL 1 *************** *** 14272,14283 **** REPLACE_NULL=0; HAVE_WCHAR_T=1; - STDDEF_H=''; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5 $as_echo_n "checking for wchar_t... " >&6; } ! if test "${gt_cv_c_wchar_t+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 14912,14922 ---- REPLACE_NULL=0; HAVE_WCHAR_T=1; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5 $as_echo_n "checking for wchar_t... " >&6; } ! if ${gt_cv_c_wchar_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 14308,14475 **** fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5 - $as_echo_n "checking for unsigned long long int... " >&6; } - if test "${ac_cv_type_unsigned_long_long_int+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - /* For now, do not test the preprocessor; as of 2007 there are too many - implementations with broken preprocessors. Perhaps this can - be revisited in 2012. In the meantime, code should not expect - #if to work with literals wider than 32 bits. */ - /* Test literals. */ - long long int ll = 9223372036854775807ll; - long long int nll = -9223372036854775807LL; - unsigned long long int ull = 18446744073709551615ULL; - /* Test constant expressions. */ - typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) - ? 1 : -1)]; - typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 - ? 1 : -1)]; - int i = 63; - int - main () - { - /* Test availability of runtime routines for shift and division. */ - long long int llmax = 9223372036854775807ll; - unsigned long long int ullmax = 18446744073709551615ull; - return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) - | (llmax / ll) | (llmax % ll) - | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) - | (ullmax / ull) | (ullmax % ull)); - ; - return 0; - } - - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_type_unsigned_long_long_int=yes - else - ac_cv_type_unsigned_long_long_int=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5 - $as_echo "$ac_cv_type_unsigned_long_long_int" >&6; } - if test $ac_cv_type_unsigned_long_long_int = yes; then - - $as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C symbols are prefixed with underscore at the linker level" >&5 - $as_echo_n "checking whether C symbols are prefixed with underscore at the linker level... " >&6; } - if test "${gl_cv_prog_as_underscore+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - cat > conftest.c <&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; } >/dev/null 2>&1 - if grep _foo conftest.s >/dev/null ; then - gl_cv_prog_as_underscore=yes - else - gl_cv_prog_as_underscore=no - fi - rm -f conftest* ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_prog_as_underscore" >&5 ! $as_echo "$gl_cv_prog_as_underscore" >&6; } ! if test $gl_cv_prog_as_underscore = yes; then ! USER_LABEL_PREFIX=_ else ! USER_LABEL_PREFIX= fi - cat >>confdefs.h <<_ACEOF - #define USER_LABEL_PREFIX $USER_LABEL_PREFIX - _ACEOF - ASM_SYMBOL_PREFIX='"'${USER_LABEL_PREFIX}'"' ! HAVE_STRCASECMP=1; ! HAVE_DECL_STRNCASECMP=1; ! ac_fn_c_check_decl "$LINENO" "strdup" "ac_cv_have_decl_strdup" "$ac_includes_default" ! if test "x$ac_cv_have_decl_strdup" = x""yes; then : ! ac_have_decl=1 else - ac_have_decl=0 - fi ! cat >>confdefs.h <<_ACEOF ! #define HAVE_DECL_STRDUP $ac_have_decl _ACEOF ! if test -z "$ERRNO_H"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5 ! $as_echo_n "checking for working strerror function... " >&6; } ! if test "${gl_cv_func_working_strerror+set}" = set; then : $as_echo_n "(cached) " >&6 else ! if test "$cross_compiling" = yes; then : ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! #include int main () { ! return !*strerror (-2); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ! gl_cv_func_working_strerror=yes ! else ! gl_cv_func_working_strerror=no ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { ! return !*strerror (-2); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ! gl_cv_func_working_strerror=yes ! else ! gl_cv_func_working_strerror=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext --- 14947,15317 ---- fi + if test $ac_cv_type_long_long_int = yes; then + HAVE_LONG_LONG_INT=1 + else + HAVE_LONG_LONG_INT=0 + fi ! if test $ac_cv_type_unsigned_long_long_int = yes; then ! HAVE_UNSIGNED_LONG_LONG_INT=1 else ! HAVE_UNSIGNED_LONG_LONG_INT=0 fi + if test $ac_cv_header_wchar_h = yes; then + HAVE_WCHAR_H=1 + else + HAVE_WCHAR_H=0 + fi ! if test $ac_cv_header_inttypes_h = yes; then ! HAVE_INTTYPES_H=1 ! else ! HAVE_INTTYPES_H=0 ! fi ! ! ! if test $ac_cv_header_sys_types_h = yes; then ! HAVE_SYS_TYPES_H=1 ! else ! HAVE_SYS_TYPES_H=0 ! fi ! ! ! ! ! ! ! ! ! if test $gl_cv_have_include_next = yes; then ! gl_cv_next_stdint_h='<'stdint.h'>' ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 ! $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_stdint_h+:} false; then : ! $as_echo_n "(cached) " >&6 else ! if test $ac_cv_header_stdint_h = yes; then ! ! ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! #include ! _ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_stdint_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/stdint.h#{ + s#.*"\(.*/stdint.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_stdint_h='<'stdint.h'>' + fi + + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5 + $as_echo "$gl_cv_next_stdint_h" >&6; } + fi + NEXT_STDINT_H=$gl_cv_next_stdint_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stdint.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stdint_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive ! if test $ac_cv_header_stdint_h = yes; then ! HAVE_STDINT_H=1 ! else ! HAVE_STDINT_H=0 ! fi ! ! ! if test $ac_cv_header_stdint_h = yes; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5 ! $as_echo_n "checking whether stdint.h conforms to C99... " >&6; } ! if ${gl_cv_header_working_stdint_h+:} false; then : $as_echo_n "(cached) " >&6 else ! gl_cv_header_working_stdint_h=no ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! ! ! #define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */ ! #define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */ ! #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ ! #include ! /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in . */ ! #if !(defined WCHAR_MIN && defined WCHAR_MAX) ! #error "WCHAR_MIN, WCHAR_MAX not defined in " ! #endif ! ! ! /* BSD/OS 4.0.1 has a bug: , and must be ! included before . */ ! #include ! #include ! #if HAVE_WCHAR_H ! # include ! # include ! # include ! #endif ! ! ! #ifdef INT8_MAX ! int8_t a1 = INT8_MAX; ! int8_t a1min = INT8_MIN; ! #endif ! #ifdef INT16_MAX ! int16_t a2 = INT16_MAX; ! int16_t a2min = INT16_MIN; ! #endif ! #ifdef INT32_MAX ! int32_t a3 = INT32_MAX; ! int32_t a3min = INT32_MIN; ! #endif ! #ifdef INT64_MAX ! int64_t a4 = INT64_MAX; ! int64_t a4min = INT64_MIN; ! #endif ! #ifdef UINT8_MAX ! uint8_t b1 = UINT8_MAX; ! #else ! typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; ! #endif ! #ifdef UINT16_MAX ! uint16_t b2 = UINT16_MAX; ! #endif ! #ifdef UINT32_MAX ! uint32_t b3 = UINT32_MAX; ! #endif ! #ifdef UINT64_MAX ! uint64_t b4 = UINT64_MAX; ! #endif ! int_least8_t c1 = INT8_C (0x7f); ! int_least8_t c1max = INT_LEAST8_MAX; ! int_least8_t c1min = INT_LEAST8_MIN; ! int_least16_t c2 = INT16_C (0x7fff); ! int_least16_t c2max = INT_LEAST16_MAX; ! int_least16_t c2min = INT_LEAST16_MIN; ! int_least32_t c3 = INT32_C (0x7fffffff); ! int_least32_t c3max = INT_LEAST32_MAX; ! int_least32_t c3min = INT_LEAST32_MIN; ! int_least64_t c4 = INT64_C (0x7fffffffffffffff); ! int_least64_t c4max = INT_LEAST64_MAX; ! int_least64_t c4min = INT_LEAST64_MIN; ! uint_least8_t d1 = UINT8_C (0xff); ! uint_least8_t d1max = UINT_LEAST8_MAX; ! uint_least16_t d2 = UINT16_C (0xffff); ! uint_least16_t d2max = UINT_LEAST16_MAX; ! uint_least32_t d3 = UINT32_C (0xffffffff); ! uint_least32_t d3max = UINT_LEAST32_MAX; ! uint_least64_t d4 = UINT64_C (0xffffffffffffffff); ! uint_least64_t d4max = UINT_LEAST64_MAX; ! int_fast8_t e1 = INT_FAST8_MAX; ! int_fast8_t e1min = INT_FAST8_MIN; ! int_fast16_t e2 = INT_FAST16_MAX; ! int_fast16_t e2min = INT_FAST16_MIN; ! int_fast32_t e3 = INT_FAST32_MAX; ! int_fast32_t e3min = INT_FAST32_MIN; ! int_fast64_t e4 = INT_FAST64_MAX; ! int_fast64_t e4min = INT_FAST64_MIN; ! uint_fast8_t f1 = UINT_FAST8_MAX; ! uint_fast16_t f2 = UINT_FAST16_MAX; ! uint_fast32_t f3 = UINT_FAST32_MAX; ! uint_fast64_t f4 = UINT_FAST64_MAX; ! #ifdef INTPTR_MAX ! intptr_t g = INTPTR_MAX; ! intptr_t gmin = INTPTR_MIN; ! #endif ! #ifdef UINTPTR_MAX ! uintptr_t h = UINTPTR_MAX; ! #endif ! intmax_t i = INTMAX_MAX; ! uintmax_t j = UINTMAX_MAX; ! ! #include /* for CHAR_BIT */ ! #define TYPE_MINIMUM(t) \ ! ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) ! #define TYPE_MAXIMUM(t) \ ! ((t) ((t) 0 < (t) -1 \ ! ? (t) -1 \ ! : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) ! struct s { ! int check_PTRDIFF: ! PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) ! && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) ! ? 1 : -1; ! /* Detect bug in FreeBSD 6.0 / ia64. */ ! int check_SIG_ATOMIC: ! SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) ! && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) ! ? 1 : -1; ! int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; ! int check_WCHAR: ! WCHAR_MIN == TYPE_MINIMUM (wchar_t) ! && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) ! ? 1 : -1; ! /* Detect bug in mingw. */ ! int check_WINT: ! WINT_MIN == TYPE_MINIMUM (wint_t) ! && WINT_MAX == TYPE_MAXIMUM (wint_t) ! ? 1 : -1; ! ! /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ ! int check_UINT8_C: ! (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; ! int check_UINT16_C: ! (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; ! ! /* Detect bugs in OpenBSD 3.9 stdint.h. */ ! #ifdef UINT8_MAX ! int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; ! #endif ! #ifdef UINT16_MAX ! int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; ! #endif ! #ifdef UINT32_MAX ! int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; ! #endif ! #ifdef UINT64_MAX ! int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; ! #endif ! int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; ! int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; ! int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; ! int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; ! int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; ! int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; ! int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; ! int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; ! int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; ! int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; ! int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; ! }; int main () { ! ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ! if test "$cross_compiling" = yes; then : ! gl_cv_header_working_stdint_h=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ + + + #define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */ + #define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */ + #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ + #include + + + /* BSD/OS 4.0.1 has a bug: , and must be + included before . */ + #include + #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif + + + #include #include + #define MVAL(macro) MVAL1(macro) + #define MVAL1(expression) #expression + static const char *macro_values[] = + { + #ifdef INT8_MAX + MVAL (INT8_MAX), + #endif + #ifdef INT16_MAX + MVAL (INT16_MAX), + #endif + #ifdef INT32_MAX + MVAL (INT32_MAX), + #endif + #ifdef INT64_MAX + MVAL (INT64_MAX), + #endif + #ifdef UINT8_MAX + MVAL (UINT8_MAX), + #endif + #ifdef UINT16_MAX + MVAL (UINT16_MAX), + #endif + #ifdef UINT32_MAX + MVAL (UINT32_MAX), + #endif + #ifdef UINT64_MAX + MVAL (UINT64_MAX), + #endif + NULL + }; int main () { ! ! const char **mv; ! for (mv = macro_values; *mv != NULL; mv++) ! { ! const char *value = *mv; ! /* Test whether it looks like a cast expression. */ ! if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 ! || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 ! || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 ! || strncmp (value, "((int)"/*)*/, 6) == 0 ! || strncmp (value, "((signed short)"/*)*/, 15) == 0 ! || strncmp (value, "((signed char)"/*)*/, 14) == 0) ! return mv - macro_values + 1; ! } ! return 0; ! ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ! gl_cv_header_working_stdint_h=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext *************** *** 14477,14731 **** fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_strerror" >&5 ! $as_echo "$gl_cv_func_working_strerror" >&6; } ! if test $gl_cv_func_working_strerror = no; then ! REPLACE_STRERROR=1 ! fi ! else ! REPLACE_STRERROR=1 ! fi ! if test $REPLACE_STRERROR = 1; then - ac_fn_c_check_decl "$LINENO" "strerror" "ac_cv_have_decl_strerror" "$ac_includes_default" - if test "x$ac_cv_have_decl_strerror" = x""yes; then : - ac_have_decl=1 - else - ac_have_decl=0 fi ! ! cat >>confdefs.h <<_ACEOF ! #define HAVE_DECL_STRERROR $ac_have_decl ! _ACEOF ! ! ! if test $ac_cv_header_sys_socket_h != yes; then ! for ac_header in winsock2.h do : ! ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" ! if test "x$ac_cv_header_winsock2_h" = x""yes; then : cat >>confdefs.h <<_ACEOF ! #define HAVE_WINSOCK2_H 1 _ACEOF fi done ! fi ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 ! $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } ! if test "${ac_cv_struct_tm+set}" = set; then : $as_echo_n "(cached) " >&6 else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! #include ! #include - int - main () - { - struct tm tm; - int *p = &tm.tm_sec; - return !p; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_struct_tm=time.h else ! ac_cv_struct_tm=sys/time.h ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 - $as_echo "$ac_cv_struct_tm" >&6; } - if test $ac_cv_struct_tm = sys/time.h; then ! $as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h fi ! ! ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include ! #include <$ac_cv_struct_tm> ! ! " ! if test "x$ac_cv_member_struct_tm_tm_zone" = x""yes; then : ! ! cat >>confdefs.h <<_ACEOF ! #define HAVE_STRUCT_TM_TM_ZONE 1 _ACEOF - fi ! if test "$ac_cv_member_struct_tm_tm_zone" = yes; then - $as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h else ! ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include ! " ! if test "x$ac_cv_have_decl_tzname" = x""yes; then : ! ac_have_decl=1 else ! ac_have_decl=0 fi ! cat >>confdefs.h <<_ACEOF ! #define HAVE_DECL_TZNAME $ac_have_decl _ACEOF ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 ! $as_echo_n "checking for tzname... " >&6; } ! if test "${ac_cv_var_tzname+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include - #if !HAVE_DECL_TZNAME - extern char *tzname[]; - #endif int main () { ! return tzname[0][0]; ; return 0; } _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! ac_cv_var_tzname=yes else ! ac_cv_var_tzname=no fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5 ! $as_echo "$ac_cv_var_tzname" >&6; } ! if test $ac_cv_var_tzname = yes; then ! $as_echo "#define HAVE_TZNAME 1" >>confdefs.h - fi - fi - ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include - " - if test "x$ac_cv_member_struct_tm_tm_gmtoff" = x""yes; then : ! $as_echo "#define HAVE_TM_GMTOFF 1" >>confdefs.h fi ! if test $gl_cv_have_include_next = yes; then ! gl_cv_next_string_h='<'string.h'>' ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 ! $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_string_h+set}" = set; then : $as_echo_n "(cached) " >&6 else ! ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! #include _ACEOF ! case "$host_os" in ! aix*) gl_absname_cpp="$ac_cpp -C" ;; ! *) gl_absname_cpp="$ac_cpp" ;; ! esac ! gl_cv_next_string_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | ! sed -n '\#/string.h#{ ! s#.*"\(.*/string.h\)".*#\1# ! s#^/[^/]#//&# ! p ! q ! }'`'"' fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_string_h" >&5 - $as_echo "$gl_cv_next_string_h" >&6; } - fi - NEXT_STRING_H=$gl_cv_next_string_h ! if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then ! # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' ! gl_next_as_first_directive='<'string.h'>' ! else ! # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' ! gl_next_as_first_directive=$gl_cv_next_string_h ! fi ! NEXT_AS_FIRST_DIRECTIVE_STRING_H=$gl_next_as_first_directive ! for gl_func in memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r strsignal strverscmp; do ! as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 ! $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval "test \"\${$as_gl_Symbol+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! #include int main () { ! #undef $gl_func ! (void) $gl_func; ; return 0; } _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ! eval "$as_gl_Symbol=yes" else ! eval "$as_gl_Symbol=no" fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ! eval ac_res=\$$as_gl_Symbol ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : ! cat >>confdefs.h <<_ACEOF ! #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 ! _ACEOF - eval ac_cv_have_decl_$gl_func=yes fi - done --- 15319,15789 ---- fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5 ! $as_echo "$gl_cv_header_working_stdint_h" >&6; } ! fi ! if test "$gl_cv_header_working_stdint_h" = yes; then ! STDINT_H= ! else ! for ac_header in sys/inttypes.h sys/bitypes.h do : ! as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ! ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ! if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF ! #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ! if test $ac_cv_header_sys_inttypes_h = yes; then ! HAVE_SYS_INTTYPES_H=1 ! else ! HAVE_SYS_INTTYPES_H=0 ! fi ! if test $ac_cv_header_sys_bitypes_h = yes; then ! HAVE_SYS_BITYPES_H=1 ! else ! HAVE_SYS_BITYPES_H=0 ! fi ! ! ! ! if test $APPLE_UNIVERSAL_BUILD = 0; then ! ! ! for gltype in ptrdiff_t size_t ; do ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 ! $as_echo_n "checking for bit size of $gltype... " >&6; } ! if eval \${gl_cv_bitsizeof_${gltype}+:} false; then : $as_echo_n "(cached) " >&6 else ! if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " ! /* BSD/OS 4.0.1 has a bug: , and must be ! included before . */ ! #include ! #include ! #if HAVE_WCHAR_H ! # include ! # include ! # include ! #endif ! ! #include "; then : else ! result=unknown fi ! eval gl_cv_bitsizeof_${gltype}=\$result fi ! eval ac_res=\$gl_cv_bitsizeof_${gltype} ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! eval result=\$gl_cv_bitsizeof_${gltype} ! if test $result = unknown; then ! result=0 ! fi ! GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` ! cat >>confdefs.h <<_ACEOF ! #define BITSIZEOF_${GLTYPE} $result _ACEOF + eval BITSIZEOF_${GLTYPE}=\$result + done ! fi + for gltype in sig_atomic_t wchar_t wint_t ; do + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 + $as_echo_n "checking for bit size of $gltype... " >&6; } + if eval \${gl_cv_bitsizeof_${gltype}+:} false; then : + $as_echo_n "(cached) " >&6 else ! if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " ! /* BSD/OS 4.0.1 has a bug: , and must be ! included before . */ ! #include ! #include ! #if HAVE_WCHAR_H ! # include ! # include ! # include ! #endif ! ! #include "; then : ! else ! result=unknown fi ! eval gl_cv_bitsizeof_${gltype}=\$result ! ! fi ! eval ac_res=\$gl_cv_bitsizeof_${gltype} ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! eval result=\$gl_cv_bitsizeof_${gltype} ! if test $result = unknown; then ! result=0 ! fi ! GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` ! cat >>confdefs.h <<_ACEOF ! #define BITSIZEOF_${GLTYPE} $result _ACEOF ! eval BITSIZEOF_${GLTYPE}=\$result ! done ! ! ! ! ! for gltype in sig_atomic_t wchar_t wint_t ; do ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5 ! $as_echo_n "checking whether $gltype is signed... " >&6; } ! if eval \${gl_cv_type_${gltype}_signed+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ + /* BSD/OS 4.0.1 has a bug: , and must be + included before . */ + #include + #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif + + int verify[2 * (($gltype) -1 < ($gltype) 0) - 1]; int main () { ! ; return 0; } _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ! result=yes else ! result=no fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! eval gl_cv_type_${gltype}_signed=\$result ! fi ! eval ac_res=\$gl_cv_type_${gltype}_signed ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! eval result=\$gl_cv_type_${gltype}_signed ! GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` ! if test "$result" = yes; then ! cat >>confdefs.h <<_ACEOF ! #define HAVE_SIGNED_${GLTYPE} 1 ! _ACEOF ! eval HAVE_SIGNED_${GLTYPE}=1 ! else ! eval HAVE_SIGNED_${GLTYPE}=0 ! fi ! done + gl_cv_type_ptrdiff_t_signed=yes + gl_cv_type_size_t_signed=no + if test $APPLE_UNIVERSAL_BUILD = 0; then ! for gltype in ptrdiff_t size_t ; do ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 ! $as_echo_n "checking for $gltype integer literal suffix... " >&6; } ! if eval \${gl_cv_type_${gltype}_suffix+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! eval gl_cv_type_${gltype}_suffix=no ! eval result=\$gl_cv_type_${gltype}_signed ! if test "$result" = yes; then ! glsufu= ! else ! glsufu=u ! fi ! for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do ! case $glsuf in ! '') gltype1='int';; ! l) gltype1='long int';; ! ll) gltype1='long long int';; ! i64) gltype1='__int64';; ! u) gltype1='unsigned int';; ! ul) gltype1='unsigned long int';; ! ull) gltype1='unsigned long long int';; ! ui64)gltype1='unsigned __int64';; ! esac ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* BSD/OS 4.0.1 has a bug: , and must be ! included before . */ ! #include ! #include ! #if HAVE_WCHAR_H ! # include ! # include ! # include ! #endif ! ! extern $gltype foo; ! extern $gltype1 foo; ! int ! main () ! { + ; + return 0; + } + _ACEOF + if ac_fn_c_try_compile "$LINENO"; then : + eval gl_cv_type_${gltype}_suffix=\$glsuf fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + eval result=\$gl_cv_type_${gltype}_suffix + test "$result" != no && break + done + fi + eval ac_res=\$gl_cv_type_${gltype}_suffix + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } + GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + eval result=\$gl_cv_type_${gltype}_suffix + test "$result" = no && result= + eval ${GLTYPE}_SUFFIX=\$result + cat >>confdefs.h <<_ACEOF + #define ${GLTYPE}_SUFFIX $result + _ACEOF + + done + + + fi + for gltype in sig_atomic_t wchar_t wint_t ; do + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 + $as_echo_n "checking for $gltype integer literal suffix... " >&6; } + if eval \${gl_cv_type_${gltype}_suffix+:} false; then : + $as_echo_n "(cached) " >&6 + else + eval gl_cv_type_${gltype}_suffix=no + eval result=\$gl_cv_type_${gltype}_signed + if test "$result" = yes; then + glsufu= + else + glsufu=u + fi + for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do + case $glsuf in + '') gltype1='int';; + l) gltype1='long int';; + ll) gltype1='long long int';; + i64) gltype1='__int64';; + u) gltype1='unsigned int';; + ul) gltype1='unsigned long int';; + ull) gltype1='unsigned long long int';; + ui64)gltype1='unsigned __int64';; + esac + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* BSD/OS 4.0.1 has a bug: , and must be + included before . */ + #include + #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif + extern $gltype foo; + extern $gltype1 foo; + int + main () + { + ; + return 0; + } + _ACEOF + if ac_fn_c_try_compile "$LINENO"; then : + eval gl_cv_type_${gltype}_suffix=\$glsuf + fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + eval result=\$gl_cv_type_${gltype}_suffix + test "$result" != no && break + done + fi + eval ac_res=\$gl_cv_type_${gltype}_suffix + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } + GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + eval result=\$gl_cv_type_${gltype}_suffix + test "$result" = no && result= + eval ${GLTYPE}_SUFFIX=\$result + cat >>confdefs.h <<_ACEOF + #define ${GLTYPE}_SUFFIX $result + _ACEOF + done + STDINT_H=stdint.h + fi + if test -n "$STDINT_H"; then + GL_GENERATE_STDINT_H_TRUE= + GL_GENERATE_STDINT_H_FALSE='#' + else + GL_GENERATE_STDINT_H_TRUE='#' + GL_GENERATE_STDINT_H_FALSE= + fi + ac_fn_c_check_decl "$LINENO" "strdup" "ac_cv_have_decl_strdup" "$ac_includes_default" + if test "x$ac_cv_have_decl_strdup" = xyes; then : + ac_have_decl=1 + else + ac_have_decl=0 + fi + cat >>confdefs.h <<_ACEOF + #define HAVE_DECL_STRDUP $ac_have_decl + _ACEOF ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 ! $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } ! if ${ac_cv_struct_tm+:} false; then : $as_echo_n "(cached) " >&6 else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! #include ! #include + int + main () + { + struct tm tm; + int *p = &tm.tm_sec; + return !p; + ; + return 0; + } _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ! ac_cv_struct_tm=time.h ! else ! ac_cv_struct_tm=sys/time.h ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 ! $as_echo "$ac_cv_struct_tm" >&6; } ! if test $ac_cv_struct_tm = sys/time.h; then + $as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h fi ! ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include ! #include <$ac_cv_struct_tm> + " + if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_STRUCT_TM_TM_ZONE 1 + _ACEOF + fi + if test "$ac_cv_member_struct_tm_tm_zone" = yes; then ! $as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h ! ! else ! ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include ! " ! if test "x$ac_cv_have_decl_tzname" = xyes; then : ! ac_have_decl=1 ! else ! ac_have_decl=0 ! fi ! ! cat >>confdefs.h <<_ACEOF ! #define HAVE_DECL_TZNAME $ac_have_decl ! _ACEOF ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 ! $as_echo_n "checking for tzname... " >&6; } ! if ${ac_cv_var_tzname+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! #include ! #if !HAVE_DECL_TZNAME ! extern char *tzname[]; ! #endif int main () { ! return tzname[0][0]; ; return 0; } _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! ac_cv_var_tzname=yes else ! ac_cv_var_tzname=no fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5 ! $as_echo "$ac_cv_var_tzname" >&6; } ! if test $ac_cv_var_tzname = yes; then ! ! $as_echo "#define HAVE_TZNAME 1" >>confdefs.h ! ! fi ! fi ! ! ! ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include ! " ! if test "x$ac_cv_member_struct_tm_tm_gmtoff" = xyes; then : ! ! $as_echo "#define HAVE_TM_GMTOFF 1" >>confdefs.h fi *************** *** 14742,14809 **** if test $gl_cv_have_include_next = yes; then ! gl_cv_next_strings_h='<'strings.h'>' else ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 ! $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_strings_h+set}" = set; then : $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_strings_h = yes; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac ! gl_cv_next_strings_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | ! sed -n '\#/strings.h#{ ! s#.*"\(.*/strings.h\)".*#\1# s#^/[^/]#//&# p q }'`'"' - else - gl_cv_next_strings_h='<'strings.h'>' - fi fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_strings_h" >&5 ! $as_echo "$gl_cv_next_strings_h" >&6; } fi ! NEXT_STRINGS_H=$gl_cv_next_strings_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' ! gl_next_as_first_directive='<'strings.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' ! gl_next_as_first_directive=$gl_cv_next_strings_h fi ! NEXT_AS_FIRST_DIRECTIVE_STRINGS_H=$gl_next_as_first_directive ! for gl_func in strcasecmp strncasecmp; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval "test \"\${$as_gl_Symbol+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! #include int main () --- 15800,15861 ---- if test $gl_cv_have_include_next = yes; then ! gl_cv_next_string_h='<'string.h'>' else ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 ! $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_string_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac ! gl_cv_next_string_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | ! sed -n '\#/string.h#{ ! s#.*"\(.*/string.h\)".*#\1# s#^/[^/]#//&# p q }'`'"' fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_string_h" >&5 ! $as_echo "$gl_cv_next_string_h" >&6; } fi ! NEXT_STRING_H=$gl_cv_next_string_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' ! gl_next_as_first_directive='<'string.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' ! gl_next_as_first_directive=$gl_cv_next_string_h fi ! NEXT_AS_FIRST_DIRECTIVE_STRING_H=$gl_next_as_first_directive ! for gl_func in memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r strsignal strverscmp; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! #include int main () *************** *** 14840,14846 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5 $as_echo_n "checking whether stat file-mode macros are broken... " >&6; } ! if test "${ac_cv_header_stat_broken+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 15892,15898 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5 $as_echo_n "checking whether stat file-mode macros are broken... " >&6; } ! if ${ac_cv_header_stat_broken+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 14891,14899 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } ! if test "${gl_cv_sys_struct_timespec_in_time_h+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 15943,15955 ---- + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } ! if ${gl_cv_sys_struct_timespec_in_time_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 14926,14932 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } ! if test "${gl_cv_sys_struct_timespec_in_sys_time_h+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 15982,15988 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } ! if ${gl_cv_sys_struct_timespec_in_sys_time_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 14955,14961 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } ! if test "${gl_cv_sys_struct_timespec_in_pthread_h+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 16011,16017 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } ! if ${gl_cv_sys_struct_timespec_in_pthread_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 15004,15010 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_time_h+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 16060,16066 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_time_h+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 15047,15053 **** ac_fn_c_check_decl "$LINENO" "localtime_r" "ac_cv_have_decl_localtime_r" "$ac_includes_default" ! if test "x$ac_cv_have_decl_localtime_r" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 16103,16109 ---- ac_fn_c_check_decl "$LINENO" "localtime_r" "ac_cv_have_decl_localtime_r" "$ac_includes_default" ! if test "x$ac_cv_have_decl_localtime_r" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 15068,15074 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5 $as_echo_n "checking for wint_t... " >&6; } ! if test "${gt_cv_c_wint_t+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 16124,16130 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5 $as_echo_n "checking for wint_t... " >&6; } ! if ${gt_cv_c_wint_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 15117,15137 **** fi - ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" - if test "x$ac_cv_type_size_t" = x""yes; then : - - else - - cat >>confdefs.h <<_ACEOF - #define size_t unsigned int - _ACEOF - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5 $as_echo_n "checking for inttypes.h... " >&6; } ! if test "${gl_cv_header_inttypes_h+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 16173,16182 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5 $as_echo_n "checking for inttypes.h... " >&6; } ! if ${gl_cv_header_inttypes_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 15168,15174 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5 $as_echo_n "checking for stdint.h... " >&6; } ! if test "${gl_cv_header_stdint_h+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 16213,16219 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5 $as_echo_n "checking for stdint.h... " >&6; } ! if ${gl_cv_header_stdint_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 15205,15211 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5 $as_echo_n "checking for intmax_t... " >&6; } ! if test "${gt_cv_c_intmax_t+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 16250,16256 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5 $as_echo_n "checking for intmax_t... " >&6; } ! if ${gt_cv_c_intmax_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 15257,15263 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf returns a byte count as in C99" >&5 $as_echo_n "checking whether snprintf returns a byte count as in C99... " >&6; } ! if test "${gl_cv_func_snprintf_retval_c99+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 16302,16308 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf returns a byte count as in C99" >&5 $as_echo_n "checking whether snprintf returns a byte count as in C99... " >&6; } ! if ${gl_cv_func_snprintf_retval_c99+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 15345,15351 **** ac_fn_c_check_decl "$LINENO" "_snprintf" "ac_cv_have_decl__snprintf" "#include " ! if test "x$ac_cv_have_decl__snprintf" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 16390,16396 ---- ac_fn_c_check_decl "$LINENO" "_snprintf" "ac_cv_have_decl__snprintf" "#include " ! if test "x$ac_cv_have_decl__snprintf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 15365,15371 **** esac ac_fn_c_check_decl "$LINENO" "vsnprintf" "ac_cv_have_decl_vsnprintf" "$ac_includes_default" ! if test "x$ac_cv_have_decl_vsnprintf" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 16410,16416 ---- esac ac_fn_c_check_decl "$LINENO" "vsnprintf" "ac_cv_have_decl_vsnprintf" "$ac_includes_default" ! if test "x$ac_cv_have_decl_vsnprintf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 15378,15384 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether uses 'inline' correctly" >&5 $as_echo_n "checking whether uses 'inline' correctly... " >&6; } ! if test "${gl_cv_header_wchar_h_correct_inline+set}" = set; then : $as_echo_n "(cached) " >&6 else gl_cv_header_wchar_h_correct_inline=yes --- 16423,16429 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether uses 'inline' correctly" >&5 $as_echo_n "checking whether uses 'inline' correctly... " >&6; } ! if ${gl_cv_header_wchar_h_correct_inline+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_header_wchar_h_correct_inline=yes *************** *** 15450,15469 **** fi - ac_fn_c_check_decl "$LINENO" "iswblank" "ac_cv_have_decl_iswblank" "$ac_includes_default" - if test "x$ac_cv_have_decl_iswblank" = x""yes; then : - ac_have_decl=1 - else - ac_have_decl=0 - fi - - cat >>confdefs.h <<_ACEOF - #define HAVE_DECL_ISWBLANK $ac_have_decl - _ACEOF - if true; then GL_COND_LIBTOOL_TRUE= --- 16495,16512 ---- fi + GNULIB_ISWBLANK=0; + GNULIB_WCTYPE=0; + GNULIB_ISWCTYPE=0; + GNULIB_WCTRANS=0; + GNULIB_TOWCTRANS=0; + HAVE_ISWBLANK=1; + HAVE_WCTYPE_T=1; + HAVE_WCTRANS_T=1; + REPLACE_ISWBLANK=0; if true; then GL_COND_LIBTOOL_TRUE= *************** *** 15485,15495 **** gl_source_base='libgnu' - # Code from module alignof: - # Code from module alloca: LTALLOCA=`echo "$ALLOCA" | sed -e 's/\.[^.]* /.lo /g;s/\.[^.]*$/.lo/'` - # Code from module alloca-opt: if test $ac_cv_func_alloca_works = no; then --- 16528,16535 ---- *************** *** 15500,15506 **** if test $ac_cv_working_alloca_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5 $as_echo_n "checking for alloca as a compiler built-in... " >&6; } ! if test "${gl_cv_rpl_alloca+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 16540,16546 ---- if test $ac_cv_working_alloca_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5 $as_echo_n "checking for alloca as a compiler built-in... " >&6; } ! if ${gl_cv_rpl_alloca+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 15536,15547 **** ALLOCA_H=alloca.h fi - # Code from module arg-nonnull: - # Code from module c++defs: - # Code from module c-ctype: - # Code from module c-strcase: - # Code from module canonicalize-lgpl: if test $ac_cv_func_canonicalize_file_name = no; then --- 16576,16591 ---- ALLOCA_H=alloca.h fi + if test -n "$ALLOCA_H"; then + GL_GENERATE_ALLOCA_H_TRUE= + GL_GENERATE_ALLOCA_H_FALSE='#' + else + GL_GENERATE_ALLOCA_H_TRUE='#' + GL_GENERATE_ALLOCA_H_FALSE= + fi + + if test $ac_cv_func_canonicalize_file_name = no; then *************** *** 15586,15592 **** ! GNULIB_CANONICALIZE_FILE_NAME=1 --- 16630,16640 ---- ! ! ! GNULIB_CANONICALIZE_FILE_NAME=1 ! ! *************** *** 15597,15603 **** ! GNULIB_REALPATH=1 --- 16645,16655 ---- ! ! ! GNULIB_REALPATH=1 ! ! *************** *** 15605,15615 **** - # Code from module chdir-long: { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether this system has an arbitrary file name length limit" >&5 $as_echo_n "checking whether this system has an arbitrary file name length limit... " >&6; } ! if test "${gl_cv_have_arbitrary_file_name_length_limit+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 16657,16666 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether this system has an arbitrary file name length limit" >&5 $as_echo_n "checking whether this system has an arbitrary file name length limit... " >&6; } ! if ${gl_cv_have_arbitrary_file_name_length_limit+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 15649,15660 **** fi - # Code from module chown: ! GNULIB_CHOWN=1 --- 16700,16714 ---- fi ! ! ! GNULIB_CHOWN=1 ! ! *************** *** 15662,15668 **** - # Code from module cloexec: --- 16716,16721 ---- *************** *** 15680,15686 **** $as_echo "#define GNULIB_TEST_CLOEXEC 1" >>confdefs.h - # Code from module close: --- 16733,16738 ---- *************** *** 15691,15697 **** for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" ! if test "x$ac_cv_header_winsock2_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF --- 16743,16749 ---- for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" ! if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF *************** *** 15745,15751 **** ! GNULIB_CLOSE=1 --- 16797,16807 ---- ! ! ! GNULIB_CLOSE=1 ! ! *************** *** 15753,15760 **** - # Code from module close-hook: - # Code from module configmake: if test "x$datarootdir" = x; then datarootdir='${datadir}' --- 16809,16814 ---- *************** *** 15792,15805 **** pkglibexecdir='${libexecdir}/${PACKAGE}' - # Code from module copysign: COPYSIGN_LIBM= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether copysign can be used without linking with libm" >&5 $as_echo_n "checking whether copysign can be used without linking with libm... " >&6; } ! if test "${gl_cv_func_copysign_no_libm+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 16846,16858 ---- pkglibexecdir='${libexecdir}/${PACKAGE}' COPYSIGN_LIBM= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether copysign can be used without linking with libm" >&5 $as_echo_n "checking whether copysign can be used without linking with libm... " >&6; } ! if ${gl_cv_func_copysign_no_libm+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 15835,15841 **** if test $gl_cv_func_copysign_no_libm = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether copysign can be used with libm" >&5 $as_echo_n "checking whether copysign can be used with libm... " >&6; } ! if test "${gl_cv_func_copysign_in_libm+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 16888,16894 ---- if test $gl_cv_func_copysign_no_libm = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether copysign can be used with libm" >&5 $as_echo_n "checking whether copysign can be used with libm... " >&6; } ! if ${gl_cv_func_copysign_in_libm+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 15879,15885 **** - # Code from module crypto/md5: --- 16932,16937 ---- *************** *** 15896,15905 **** : ! # Code from module d-ino: ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for d_ino member in directory struct" >&5 $as_echo_n "checking for d_ino member in directory struct... " >&6; } ! if test "${gl_cv_struct_dirent_d_ino+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 16948,16956 ---- : ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for d_ino member in directory struct" >&5 $as_echo_n "checking for d_ino member in directory struct... " >&6; } ! if ${gl_cv_struct_dirent_d_ino+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 15951,15960 **** fi ! # Code from module d-type: ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for d_type member in directory struct" >&5 $as_echo_n "checking for d_type member in directory struct... " >&6; } ! if test "${gl_cv_struct_dirent_d_type+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 17002,17010 ---- fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for d_type member in directory struct" >&5 $as_echo_n "checking for d_type member in directory struct... " >&6; } ! if ${gl_cv_struct_dirent_d_type+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 15990,15996 **** fi - # Code from module dirent: --- 17040,17045 ---- *************** *** 16008,16014 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_dirent_h+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 17057,17063 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_dirent_h+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 16060,16066 **** as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval "test \"\${$as_gl_Symbol+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 17109,17115 ---- as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 16096,16106 **** done - # Code from module dirfd: - - - : --- 17145,17151 ---- *************** *** 16108,16114 **** for ac_func in dirfd do : ac_fn_c_check_func "$LINENO" "dirfd" "ac_cv_func_dirfd" ! if test "x$ac_cv_func_dirfd" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DIRFD 1 _ACEOF --- 17153,17159 ---- for ac_func in dirfd do : ac_fn_c_check_func "$LINENO" "dirfd" "ac_cv_func_dirfd" ! if test "x$ac_cv_func_dirfd" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DIRFD 1 _ACEOF *************** *** 16119,16125 **** ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include #include " ! if test "x$ac_cv_have_decl_dirfd" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 17164,17170 ---- ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include #include " ! if test "x$ac_cv_have_decl_dirfd" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 16135,16141 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dirfd is a macro" >&5 $as_echo_n "checking whether dirfd is a macro... " >&6; } ! if test "${gl_cv_func_dirfd_macro+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 17180,17186 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dirfd is a macro" >&5 $as_echo_n "checking whether dirfd is a macro... " >&6; } ! if ${gl_cv_func_dirfd_macro+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 16177,16183 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get the file descriptor associated with an open DIR*" >&5 $as_echo_n "checking how to get the file descriptor associated with an open DIR*... " >&6; } ! if test "${gl_cv_sys_dir_fd_member_name+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 17222,17228 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get the file descriptor associated with an open DIR*" >&5 $as_echo_n "checking how to get the file descriptor associated with an open DIR*... " >&6; } ! if ${gl_cv_sys_dir_fd_member_name+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 16227,16233 **** ! GNULIB_DIRFD=1 --- 17272,17282 ---- ! ! ! GNULIB_DIRFD=1 ! ! *************** *** 16235,16241 **** - # Code from module dirname-lgpl: --- 17284,17289 ---- *************** *** 16272,16283 **** - # Code from module double-slash-root: - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5 $as_echo_n "checking whether // is distinct from /... " >&6; } ! if test "${gl_cv_double_slash_root+set}" = set; then : $as_echo_n "(cached) " >&6 else if test x"$cross_compiling" = xyes ; then --- 17320,17329 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5 $as_echo_n "checking whether // is distinct from /... " >&6; } ! if ${gl_cv_double_slash_root+:} false; then : $as_echo_n "(cached) " >&6 else if test x"$cross_compiling" = xyes ; then *************** *** 16312,16338 **** fi - # Code from module dup2: - - - if test $ac_cv_func_dup2 = no; then - HAVE_DUP2=0 ! ! ! gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext" ! ! else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5 $as_echo_n "checking whether dup2 works... " >&6; } ! if test "${gl_cv_func_dup2_works+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 17358,17376 ---- fi + $as_echo "#define HAVE_DUP2 1" >>confdefs.h ! if test $HAVE_DUP2 = 1; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5 $as_echo_n "checking whether dup2 works... " >&6; } ! if ${gl_cv_func_dup2_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 16400,16405 **** --- 17438,17444 ---- if test "$gl_cv_func_dup2_works" = no; then + if test $ac_cv_func_dup2 = yes; then REPLACE_DUP2=1 fi *************** *** 16420,16426 **** ! GNULIB_DUP2=1 --- 17459,17469 ---- ! ! ! GNULIB_DUP2=1 ! ! *************** *** 16428,16436 **** - # Code from module errno: - # Code from module error: --- 17471,17477 ---- *************** *** 16447,16453 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5 $as_echo_n "checking for error_at_line... " >&6; } ! if test "${ac_cv_lib_error_at_line+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 17488,17494 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5 $as_echo_n "checking for error_at_line... " >&6; } ! if ${ac_cv_lib_error_at_line+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 16498,16506 **** XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format" - # Code from module exitfail: - # Code from module extensions: - # Code from module fchdir: --- 17539,17544 ---- *************** *** 16580,16585 **** --- 17618,17624 ---- + if test $ac_cv_func_dup2 = yes; then REPLACE_DUP2=1 fi *************** *** 16613,16624 **** gl_LIBOBJS="$gl_LIBOBJS fcntl.$ac_objext" - - : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open can visit directories" >&5 $as_echo_n "checking whether open can visit directories... " >&6; } ! if test "${gl_cv_func_open_directory_works+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 17652,17660 ---- gl_LIBOBJS="$gl_LIBOBJS fcntl.$ac_objext" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open can visit directories" >&5 $as_echo_n "checking whether open can visit directories... " >&6; } ! if ${gl_cv_func_open_directory_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 16659,16665 **** ! GNULIB_FCHDIR=1 --- 17695,17705 ---- ! ! ! GNULIB_FCHDIR=1 ! ! *************** *** 16667,16679 **** ! # Code from module fclose: - GNULIB_FCLOSE=1 --- 17707,17812 ---- ! ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fflush works on input streams" >&5 ! $as_echo_n "checking whether fflush works on input streams... " >&6; } ! if ${gl_cv_func_fflush_stdin+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! echo hello world > conftest.txt ! if test "$cross_compiling" = yes; then : ! gl_cv_func_fflush_stdin=no ! else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! #include ! #include ! ! int ! main () ! { ! FILE *f = fopen ("conftest.txt", "r"); ! char buffer[10]; ! int fd; ! int c; ! if (f == NULL) ! return 1; ! fd = fileno (f); ! if (fd < 0 || fread (buffer, 1, 5, f) != 5) ! return 2; ! /* For deterministic results, ensure f read a bigger buffer. */ ! if (lseek (fd, 0, SEEK_CUR) == 5) ! return 3; ! /* POSIX requires fflush-fseek to set file offset of fd. This fails ! on BSD systems and on mingw. */ ! if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) ! return 4; ! if (lseek (fd, 0, SEEK_CUR) != 5) ! return 5; ! /* Verify behaviour of fflush after ungetc. See ! */ ! /* Verify behaviour of fflush after a backup ungetc. This fails on ! mingw. */ ! c = fgetc (f); ! ungetc (c, f); ! fflush (f); ! if (fgetc (f) != c) ! return 6; ! /* Verify behaviour of fflush after a non-backup ungetc. This fails ! on glibc 2.8 and on BSD systems. */ ! c = fgetc (f); ! ungetc ('@', f); ! fflush (f); ! if (fgetc (f) != c) ! return 7; ! return 0; ! ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_run "$LINENO"; then : ! gl_cv_func_fflush_stdin=yes ! else ! gl_cv_func_fflush_stdin=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! rm conftest.txt ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fflush_stdin" >&5 ! $as_echo "$gl_cv_func_fflush_stdin" >&6; } ! ! if test $gl_cv_func_fflush_stdin = no; then ! ! ! REPLACE_FCLOSE=1 ! ! ! ! ! ! ! ! ! gl_LIBOBJS="$gl_LIBOBJS fclose.$ac_objext" ! ! ! fi ! ! ! + GNULIB_FCLOSE=1 *************** *** 16681,16687 **** - # Code from module fcntl: --- 17814,17819 ---- *************** *** 16710,16716 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl handles F_DUPFD correctly" >&5 $as_echo_n "checking whether fcntl handles F_DUPFD correctly... " >&6; } ! if test "${gl_cv_func_fcntl_f_dupfd_works+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 17842,17848 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl handles F_DUPFD correctly" >&5 $as_echo_n "checking whether fcntl handles F_DUPFD correctly... " >&6; } ! if ${gl_cv_func_fcntl_f_dupfd_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 16778,16784 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl understands F_DUPFD_CLOEXEC" >&5 $as_echo_n "checking whether fcntl understands F_DUPFD_CLOEXEC... " >&6; } ! if test "${gl_cv_func_fcntl_f_dupfd_cloexec+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 17910,17916 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl understands F_DUPFD_CLOEXEC" >&5 $as_echo_n "checking whether fcntl understands F_DUPFD_CLOEXEC... " >&6; } ! if ${gl_cv_func_fcntl_f_dupfd_cloexec+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 16854,16860 **** ! GNULIB_FCNTL=1 --- 17986,17996 ---- ! ! ! GNULIB_FCNTL=1 ! ! *************** *** 16862,16868 **** - # Code from module fcntl-h: --- 17998,18003 ---- *************** *** 16879,16885 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_fcntl_h+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 18014,18020 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_fcntl_h+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 16925,16931 **** as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval "test \"\${$as_gl_Symbol+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 18060,18066 ---- as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 16961,16974 **** done - # Code from module fdopendir: ac_fn_c_check_decl "$LINENO" "fdopendir" "ac_cv_have_decl_fdopendir" " #include " ! if test "x$ac_cv_have_decl_fdopendir" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 18096,18108 ---- done ac_fn_c_check_decl "$LINENO" "fdopendir" "ac_cv_have_decl_fdopendir" " #include " ! if test "x$ac_cv_have_decl_fdopendir" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 17005,17018 **** gl_LIBOBJS="$gl_LIBOBJS fdopendir.$ac_objext" - - : - HAVE_FDOPENDIR=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fdopendir works" >&5 $as_echo_n "checking whether fdopendir works... " >&6; } ! if test "${gl_cv_func_fdopendir_works+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 18139,18149 ---- gl_LIBOBJS="$gl_LIBOBJS fdopendir.$ac_objext" HAVE_FDOPENDIR=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fdopendir works" >&5 $as_echo_n "checking whether fdopendir works... " >&6; } ! if ${gl_cv_func_fdopendir_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 17056,17064 **** if test "$gl_cv_func_fdopendir_works" != yes; then REPLACE_FDOPENDIR=1 - : - - --- 18187,18192 ---- *************** *** 17074,17080 **** ! GNULIB_FDOPENDIR=1 --- 18202,18212 ---- ! ! ! GNULIB_FDOPENDIR=1 ! ! *************** *** 17089,17135 **** _ACEOF - # Code from module filemode: - gl_LIBOBJS="$gl_LIBOBJS filemode.$ac_objext" - # Code from module float: - FLOAT_H= - case "$host_os" in - beos* | openbsd* | mirbsd*) - FLOAT_H=float.h - if test $gl_cv_have_include_next = yes; then - gl_cv_next_float_h='<'float.h'>' - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 - $as_echo_n "checking absolute name of ... " >&6; } - if test "${gl_cv_next_float_h+set}" = set; then : - $as_echo_n "(cached) " >&6 - else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include --- 18221,18397 ---- _ACEOF + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fflush works on input streams" >&5 + $as_echo_n "checking whether fflush works on input streams... " >&6; } + if ${gl_cv_func_fflush_stdin+:} false; then : + $as_echo_n "(cached) " >&6 + else + echo hello world > conftest.txt + if test "$cross_compiling" = yes; then : + gl_cv_func_fflush_stdin=no + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + #include + int + main () + { + FILE *f = fopen ("conftest.txt", "r"); + char buffer[10]; + int fd; + int c; + if (f == NULL) + return 1; + fd = fileno (f); + if (fd < 0 || fread (buffer, 1, 5, f) != 5) + return 2; + /* For deterministic results, ensure f read a bigger buffer. */ + if (lseek (fd, 0, SEEK_CUR) == 5) + return 3; + /* POSIX requires fflush-fseek to set file offset of fd. This fails + on BSD systems and on mingw. */ + if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) + return 4; + if (lseek (fd, 0, SEEK_CUR) != 5) + return 5; + /* Verify behaviour of fflush after ungetc. See + */ + /* Verify behaviour of fflush after a backup ungetc. This fails on + mingw. */ + c = fgetc (f); + ungetc (c, f); + fflush (f); + if (fgetc (f) != c) + return 6; + /* Verify behaviour of fflush after a non-backup ungetc. This fails + on glibc 2.8 and on BSD systems. */ + c = fgetc (f); + ungetc ('@', f); + fflush (f); + if (fgetc (f) != c) + return 7; + return 0; + ; + return 0; + } + _ACEOF + if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_fflush_stdin=yes + else + gl_cv_func_fflush_stdin=no + fi + rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + rm conftest.txt + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fflush_stdin" >&5 + $as_echo "$gl_cv_func_fflush_stdin" >&6; } + if test $gl_cv_func_fflush_stdin = no; then + gl_LIBOBJS="$gl_LIBOBJS fflush.$ac_objext" + REPLACE_FFLUSH=1 + : + fi ! ! cat >>confdefs.h <<_ACEOF ! #define GNULIB_FFLUSH 1 ! _ACEOF ! ! ! ! ! ! ! ! GNULIB_FFLUSH=1 ! ! ! ! ! ! $as_echo "#define GNULIB_TEST_FFLUSH 1" >>confdefs.h ! ! ! ! ! ! ! ! ! ! ! ! ! ! gl_LIBOBJS="$gl_LIBOBJS filemode.$ac_objext" ! ! ! ! ! ! ! ! ! ! ! ! ! gl_LIBOBJS="$gl_LIBOBJS filenamecat-lgpl.$ac_objext" ! ! ! ! ! ! ! ! FLOAT_H= ! case "$host_os" in ! beos* | openbsd* | mirbsd*) ! FLOAT_H=float.h ! ! ! ! ! ! ! ! ! if test $gl_cv_have_include_next = yes; then ! gl_cv_next_float_h='<'float.h'>' ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 ! $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_float_h+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include *************** *** 17168,17175 **** ;; esac - # Code from module floor: --- 18430,18444 ---- ;; esac + if test -n "$FLOAT_H"; then + GL_GENERATE_FLOAT_H_TRUE= + GL_GENERATE_FLOAT_H_FALSE='#' + else + GL_GENERATE_FLOAT_H_TRUE='#' + GL_GENERATE_FLOAT_H_FALSE= + fi + *************** *** 17177,17183 **** saved_as_echo_n="$as_echo_n" as_echo_n=':' ! if test "${gl_cv_func_floor_libm+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 18446,18452 ---- saved_as_echo_n="$as_echo_n" as_echo_n=':' ! if ${gl_cv_func_floor_libm+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 17256,17262 **** ! GNULIB_FLOOR=1 --- 18525,18535 ---- ! ! ! GNULIB_FLOOR=1 ! ! *************** *** 17264,17270 **** - # Code from module fnmatch: --- 18537,18542 ---- *************** *** 17277,17283 **** gl_fnmatch_cache_var="gl_cv_func_fnmatch_${gl_fnmatch_required_lowercase}" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working $gl_fnmatch_required fnmatch" >&5 $as_echo_n "checking for working $gl_fnmatch_required fnmatch... " >&6; } ! if eval "test \"\${$gl_fnmatch_cache_var+set}\"" = set; then : $as_echo_n "(cached) " >&6 else if test $gl_fnmatch_required = GNU; then --- 18549,18555 ---- gl_fnmatch_cache_var="gl_cv_func_fnmatch_${gl_fnmatch_required_lowercase}" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working $gl_fnmatch_required fnmatch" >&5 $as_echo_n "checking for working $gl_fnmatch_required fnmatch... " >&6; } ! if eval \${$gl_fnmatch_cache_var+:} false; then : $as_echo_n "(cached) " >&6 else if test $gl_fnmatch_required = GNU; then *************** *** 17320,17325 **** --- 18592,18599 ---- return 1; if (!y ("a*", "abc", 0)) return 1; + if (!y ("[/b", "[/b", 0)) /*"]]"*/ /* glibc Bugzilla bug 12378 */ + return 1; if (!n ("d*/*1", "d/s/1", FNM_PATHNAME)) return 2; if (!y ("a\\\\bc", "abc", 0)) *************** *** 17411,17417 **** ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include " ! if test "x$ac_cv_have_decl_isblank" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 18685,18691 ---- ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include " ! if test "x$ac_cv_have_decl_isblank" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 17425,17432 **** fi - # Code from module getcwd: --- 18699,19224 ---- fi + if test -n "$FNMATCH_H"; then + GL_GENERATE_FNMATCH_H_TRUE= + GL_GENERATE_FNMATCH_H_FALSE='#' + else + GL_GENERATE_FNMATCH_H_TRUE='#' + GL_GENERATE_FNMATCH_H_FALSE= + fi + + + + + + + ac_fn_c_check_decl "$LINENO" "fpurge" "ac_cv_have_decl_fpurge" "#include + " + if test "x$ac_cv_have_decl_fpurge" = xyes; then : + ac_have_decl=1 + else + ac_have_decl=0 + fi + + cat >>confdefs.h <<_ACEOF + #define HAVE_DECL_FPURGE $ac_have_decl + _ACEOF + + if test "x$ac_cv_func_fpurge" = xyes; then + # Detect BSD bug. Only cygwin 1.7 is known to be immune. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fpurge works" >&5 + $as_echo_n "checking whether fpurge works... " >&6; } + if ${gl_cv_func_fpurge_works+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test "$cross_compiling" = yes; then : + gl_cv_func_fpurge_works='guessing no' + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + + int + main () + { + FILE *f = fopen ("conftest.txt", "w+"); + if (!f) return 1; + if (fputc ('a', f) != 'a') return 2; + rewind (f); + if (fgetc (f) != 'a') return 3; + if (fgetc (f) != EOF) return 4; + if (fpurge (f) != 0) return 5; + if (putc ('b', f) != 'b') return 6; + if (fclose (f) != 0) return 7; + if ((f = fopen ("conftest.txt", "r")) == NULL) return 8; + if (fgetc (f) != 'a') return 9; + if (fgetc (f) != 'b') return 10; + if (fgetc (f) != EOF) return 11; + if (fclose (f) != 0) return 12; + if (remove ("conftest.txt") != 0) return 13; + return 0; + ; + return 0; + } + _ACEOF + if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_fpurge_works=yes + else + gl_cv_func_fpurge_works=no + fi + rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fpurge_works" >&5 + $as_echo "$gl_cv_func_fpurge_works" >&6; } + if test "x$gl_cv_func_fpurge_works" != xyes; then + REPLACE_FPURGE=1 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS fpurge.$ac_objext" + + fi + else + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS fpurge.$ac_objext" + + fi + if test "x$ac_cv_have_decl_fpurge" = xno; then + HAVE_DECL_FPURGE=0 + fi + + + + + + + GNULIB_FPURGE=1 + + + + + + $as_echo "#define GNULIB_TEST_FPURGE 1" >>confdefs.h + + + + + + + + + + if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then + REPLACE_FSEEK=1 + fi + + if test $REPLACE_FSEEK = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS fseek.$ac_objext" + + fi + + + + + + GNULIB_FSEEK=1 + + + + + + $as_echo "#define GNULIB_TEST_FSEEK 1" >>confdefs.h + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fseeko" >&5 + $as_echo_n "checking for fseeko... " >&6; } + if ${gl_cv_func_fseeko+:} false; then : + $as_echo_n "(cached) " >&6 + else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + + int + main () + { + fseeko (stdin, 0, 0); + ; + return 0; + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_fseeko=yes + else + gl_cv_func_fseeko=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fseeko" >&5 + $as_echo "$gl_cv_func_fseeko" >&6; } + + + if test $ac_cv_have_decl_fseeko = no; then + HAVE_DECL_FSEEKO=0 + fi + + if test $gl_cv_func_fseeko = no; then + HAVE_FSEEKO=0 + else + if test $gl_cv_var_stdin_large_offset = no; then + REPLACE_FSEEKO=1 + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fflush works on input streams" >&5 + $as_echo_n "checking whether fflush works on input streams... " >&6; } + if ${gl_cv_func_fflush_stdin+:} false; then : + $as_echo_n "(cached) " >&6 + else + echo hello world > conftest.txt + if test "$cross_compiling" = yes; then : + gl_cv_func_fflush_stdin=no + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + #include + #include + + int + main () + { + FILE *f = fopen ("conftest.txt", "r"); + char buffer[10]; + int fd; + int c; + if (f == NULL) + return 1; + fd = fileno (f); + if (fd < 0 || fread (buffer, 1, 5, f) != 5) + return 2; + /* For deterministic results, ensure f read a bigger buffer. */ + if (lseek (fd, 0, SEEK_CUR) == 5) + return 3; + /* POSIX requires fflush-fseek to set file offset of fd. This fails + on BSD systems and on mingw. */ + if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) + return 4; + if (lseek (fd, 0, SEEK_CUR) != 5) + return 5; + /* Verify behaviour of fflush after ungetc. See + */ + /* Verify behaviour of fflush after a backup ungetc. This fails on + mingw. */ + c = fgetc (f); + ungetc (c, f); + fflush (f); + if (fgetc (f) != c) + return 6; + /* Verify behaviour of fflush after a non-backup ungetc. This fails + on glibc 2.8 and on BSD systems. */ + c = fgetc (f); + ungetc ('@', f); + fflush (f); + if (fgetc (f) != c) + return 7; + return 0; + + ; + return 0; + } + _ACEOF + if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_fflush_stdin=yes + else + gl_cv_func_fflush_stdin=no + fi + rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + + rm conftest.txt + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fflush_stdin" >&5 + $as_echo "$gl_cv_func_fflush_stdin" >&6; } + + if test $gl_cv_func_fflush_stdin = no; then + REPLACE_FSEEKO=1 + fi + + fi + + if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS fseeko.$ac_objext" + + fi + + + + + + GNULIB_FSEEKO=1 + + + + + + $as_echo "#define GNULIB_TEST_FSEEKO 1" >>confdefs.h + + + + + + + if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then + REPLACE_FTELL=1 + fi + + if test $REPLACE_FTELL = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS ftell.$ac_objext" + + fi + + + + + + GNULIB_FTELL=1 + + + + + + $as_echo "#define GNULIB_TEST_FTELL 1" >>confdefs.h + + + + + + + + + + + + if test $ac_cv_have_decl_ftello = no; then + HAVE_DECL_FTELLO=0 + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ftello" >&5 + $as_echo_n "checking for ftello... " >&6; } + if ${gl_cv_func_ftello+:} false; then : + $as_echo_n "(cached) " >&6 + else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + int + main () + { + ftello (stdin); + ; + return 0; + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_ftello=yes + else + gl_cv_func_ftello=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ftello" >&5 + $as_echo "$gl_cv_func_ftello" >&6; } + if test $gl_cv_func_ftello = no; then + HAVE_FTELLO=0 + else + if test $gl_cv_var_stdin_large_offset = no; then + REPLACE_FTELLO=1 + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ftello works" >&5 + $as_echo_n "checking whether ftello works... " >&6; } + if ${gl_cv_func_ftello_works+:} false; then : + $as_echo_n "(cached) " >&6 + else + + case "$host_os" in + # Guess no on Solaris. + solaris*) gl_cv_func_ftello_works="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_ftello_works="guessing yes" ;; + esac + if test "$cross_compiling" = yes; then : + : + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + #include + #include + #include + #define TESTFILE "conftest.tmp" + int + main (void) + { + FILE *fp; + + /* Create a file with some contents. */ + fp = fopen (TESTFILE, "w"); + if (fp == NULL) + return 70; + if (fwrite ("foogarsh", 1, 8, fp) < 8) + return 71; + if (fclose (fp)) + return 72; + + /* The file's contents is now "foogarsh". */ + + /* Try writing after reading to EOF. */ + fp = fopen (TESTFILE, "r+"); + if (fp == NULL) + return 73; + if (fseek (fp, -1, SEEK_END)) + return 74; + if (!(getc (fp) == 'h')) + return 1; + if (!(getc (fp) == EOF)) + return 2; + if (!(ftell (fp) == 8)) + return 3; + if (!(ftell (fp) == 8)) + return 4; + if (!(putc ('!', fp) == '!')) + return 5; + if (!(ftell (fp) == 9)) + return 6; + if (!(fclose (fp) == 0)) + return 7; + fp = fopen (TESTFILE, "r"); + if (fp == NULL) + return 75; + { + char buf[10]; + if (!(fread (buf, 1, 10, fp) == 9)) + return 10; + if (!(memcmp (buf, "foogarsh!", 9) == 0)) + return 11; + } + if (!(fclose (fp) == 0)) + return 12; + + /* The file's contents is now "foogarsh!". */ + + return 0; + } + _ACEOF + if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_ftello_works=yes + else + gl_cv_func_ftello_works=no + fi + rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ftello_works" >&5 + $as_echo "$gl_cv_func_ftello_works" >&6; } + case "$gl_cv_func_ftello_works" in + *yes) ;; + *) + REPLACE_FTELLO=1 + + $as_echo "#define FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE 1" >>confdefs.h + + ;; + esac + fi + fi + + if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS ftello.$ac_objext" + + fi + + + + + + GNULIB_FTELLO=1 + + + + + + $as_echo "#define GNULIB_TEST_FTELLO 1" >>confdefs.h + + *************** *** 17441,17452 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getcwd handles long file names properly" >&5 $as_echo_n "checking whether getcwd handles long file names properly... " >&6; } ! if test "${gl_cv_func_getcwd_path_max+set}" = set; then : $as_echo_n "(cached) " >&6 else # Arrange for deletion of the temporary directory this test creates. ac_clean_files="$ac_clean_files confdir3" ! if test "$cross_compiling" = yes; then : gl_cv_func_getcwd_path_max=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 19233,19244 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getcwd handles long file names properly" >&5 $as_echo_n "checking whether getcwd handles long file names properly... " >&6; } ! if ${gl_cv_func_getcwd_path_max+:} false; then : $as_echo_n "(cached) " >&6 else # Arrange for deletion of the temporary directory this test creates. ac_clean_files="$ac_clean_files confdir3" ! if test "$cross_compiling" = yes; then : gl_cv_func_getcwd_path_max=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 17629,17635 **** for ac_func in getpagesize do : ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" ! if test "x$ac_cv_func_getpagesize" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETPAGESIZE 1 _ACEOF --- 19421,19427 ---- for ac_func in getpagesize do : ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" ! if test "x$ac_cv_func_getpagesize" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETPAGESIZE 1 _ACEOF *************** *** 17639,17652 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getcwd aborts when 4k < cwd_length < 16k" >&5 $as_echo_n "checking whether getcwd aborts when 4k < cwd_length < 16k... " >&6; } ! if test "${gl_cv_func_getcwd_abort_bug+set}" = set; then : $as_echo_n "(cached) " >&6 else # Remove any remnants of a previous test. rm -rf confdir-14B--- # Arrange for deletion of the temporary directory this test creates. ac_clean_files="$ac_clean_files confdir-14B---" ! if test "$cross_compiling" = yes; then : gl_cv_func_getcwd_abort_bug=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 19431,19444 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getcwd aborts when 4k < cwd_length < 16k" >&5 $as_echo_n "checking whether getcwd aborts when 4k < cwd_length < 16k... " >&6; } ! if ${gl_cv_func_getcwd_abort_bug+:} false; then : $as_echo_n "(cached) " >&6 else # Remove any remnants of a previous test. rm -rf confdir-14B--- # Arrange for deletion of the temporary directory this test creates. ac_clean_files="$ac_clean_files confdir-14B---" ! if test "$cross_compiling" = yes; then : gl_cv_func_getcwd_abort_bug=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 17686,17698 **** size_t d; /* The bug is triggered when PATH_MAX < getpagesize (), so skip ! this relative expensive and invasive test if that's not true. */ if (getpagesize () <= PATH_MAX) return 0; cwd = getcwd (NULL, 0); if (cwd == NULL) ! return 0; initial_cwd_len = strlen (cwd); free (cwd); --- 19478,19490 ---- size_t d; /* The bug is triggered when PATH_MAX < getpagesize (), so skip ! this relatively expensive and invasive test if that's not true. */ if (getpagesize () <= PATH_MAX) return 0; cwd = getcwd (NULL, 0); if (cwd == NULL) ! return 2; initial_cwd_len = strlen (cwd); free (cwd); *************** *** 17719,17736 **** while (0 < d--) { if (chdir ("..") < 0) ! break; rmdir (dir_name); } ! return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getcwd_abort_bug=no else ! gl_cv_func_getcwd_abort_bug=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext --- 19511,19533 ---- while (0 < d--) { if (chdir ("..") < 0) ! { ! fail = 5; ! break; ! } rmdir (dir_name); } ! return fail; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getcwd_abort_bug=no else ! test $? -gt 128 \ ! && gl_cv_func_getcwd_abort_bug=yes \ ! || gl_cv_func_getcwd_abort_bug=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext *************** *** 17749,17755 **** case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_path_max,$gl_abort_bug in *yes,yes,no) ;; *) ! REPLACE_GETCWD=1 --- 19546,19552 ---- case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_path_max,$gl_abort_bug in *yes,yes,no) ;; *) ! REPLACE_GETCWD=1 *************** *** 17769,17776 **** - GNULIB_GETCWD=1 --- 19566,19620 ---- + cat >>confdefs.h <<_ACEOF + #define GNULIB_GETCWD 1 + _ACEOF + + + + + + + + GNULIB_GETCWD=1 + + + + + + $as_echo "#define GNULIB_TEST_GETCWD 1" >>confdefs.h + + + + + + + + case $gl_cv_func_getcwd_null in + *yes) ;; + *) + REPLACE_GETCWD=1 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS getcwd-lgpl.$ac_objext" + + ;; + esac + + + + + + + GNULIB_GETCWD=1 + *************** *** 17778,17784 **** - # Code from module getdtablesize: --- 19622,19627 ---- *************** *** 17799,17805 **** ! GNULIB_GETDTABLESIZE=1 --- 19642,19652 ---- ! ! ! GNULIB_GETDTABLESIZE=1 ! ! *************** *** 17807,17813 **** - # Code from module gethostname: --- 19654,19659 ---- *************** *** 17818,17824 **** for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" ! if test "x$ac_cv_header_winsock2_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF --- 19664,19670 ---- for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" ! if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF *************** *** 17842,17848 **** for ac_func in gethostname do : ac_fn_c_check_func "$LINENO" "gethostname" "ac_cv_func_gethostname" ! if test "x$ac_cv_func_gethostname" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETHOSTNAME 1 _ACEOF --- 19688,19694 ---- for ac_func in gethostname do : ac_fn_c_check_func "$LINENO" "gethostname" "ac_cv_func_gethostname" ! if test "x$ac_cv_func_gethostname" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETHOSTNAME 1 _ACEOF *************** *** 17851,17857 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostname in winsock2.h and -lws2_32" >&5 $as_echo_n "checking for gethostname in winsock2.h and -lws2_32... " >&6; } ! if test "${gl_cv_w32_gethostname+set}" = set; then : $as_echo_n "(cached) " >&6 else gl_cv_w32_gethostname=no --- 19697,19703 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostname in winsock2.h and -lws2_32" >&5 $as_echo_n "checking for gethostname in winsock2.h and -lws2_32... " >&6; } ! if ${gl_cv_w32_gethostname+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_w32_gethostname=no *************** *** 17909,17915 **** for ac_func in uname do : ac_fn_c_check_func "$LINENO" "uname" "ac_cv_func_uname" ! if test "x$ac_cv_func_uname" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_UNAME 1 _ACEOF --- 19755,19761 ---- for ac_func in uname do : ac_fn_c_check_func "$LINENO" "uname" "ac_cv_func_uname" ! if test "x$ac_cv_func_uname" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_UNAME 1 _ACEOF *************** *** 17926,17932 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HOST_NAME_MAX" >&5 $as_echo_n "checking for HOST_NAME_MAX... " >&6; } ! if test "${gl_cv_decl_HOST_NAME_MAX+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 19772,19778 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HOST_NAME_MAX" >&5 $as_echo_n "checking for HOST_NAME_MAX... " >&6; } ! if ${gl_cv_decl_HOST_NAME_MAX+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 17986,17992 **** ! GNULIB_GETHOSTNAME=1 --- 19832,19842 ---- ! ! ! GNULIB_GETHOSTNAME=1 ! ! *************** *** 17994,18000 **** - # Code from module getlogin_r: --- 19844,19849 ---- *************** *** 18013,18019 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getlogin_r works with small buffers" >&5 $as_echo_n "checking whether getlogin_r works with small buffers... " >&6; } ! if test "${gl_cv_func_getlogin_r_works+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 19862,19868 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getlogin_r works with small buffers" >&5 $as_echo_n "checking whether getlogin_r works with small buffers... " >&6; } ! if ${gl_cv_func_getlogin_r_works+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 18087,18093 **** ! GNULIB_GETLOGIN_R=1 --- 19936,19946 ---- ! ! ! GNULIB_GETLOGIN_R=1 ! ! *************** *** 18095,18101 **** - # Code from module getopt-gnu: --- 19948,19953 ---- *************** *** 18106,18112 **** $as_echo "#define GNULIB_TEST_GETOPT_GNU 1" >>confdefs.h - # Code from module getopt-posix: --- 19958,19963 ---- *************** *** 18151,18160 **** fi - # Code from module gettext-h: - # Code from module gettimeofday: --- 20002,20009 ---- *************** *** 18178,18184 **** for ac_header in sys/timeb.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/timeb.h" "ac_cv_header_sys_timeb_h" "$ac_includes_default" ! if test "x$ac_cv_header_sys_timeb_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_TIMEB_H 1 _ACEOF --- 20027,20033 ---- for ac_header in sys/timeb.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/timeb.h" "ac_cv_header_sys_timeb_h" "$ac_includes_default" ! if test "x$ac_cv_header_sys_timeb_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_TIMEB_H 1 _ACEOF *************** *** 18190,18196 **** for ac_func in _ftime do : ac_fn_c_check_func "$LINENO" "_ftime" "ac_cv_func__ftime" ! if test "x$ac_cv_func__ftime" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE__FTIME 1 _ACEOF --- 20039,20045 ---- for ac_func in _ftime do : ac_fn_c_check_func "$LINENO" "_ftime" "ac_cv_func__ftime" ! if test "x$ac_cv_func__ftime" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__FTIME 1 _ACEOF *************** *** 18205,18211 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gettimeofday clobbers localtime buffer" >&5 $as_echo_n "checking whether gettimeofday clobbers localtime buffer... " >&6; } ! if test "${gl_cv_func_gettimeofday_clobber+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 20054,20060 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gettimeofday clobbers localtime buffer" >&5 $as_echo_n "checking whether gettimeofday clobbers localtime buffer... " >&6; } ! if ${gl_cv_func_gettimeofday_clobber+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 18265,18271 **** for ac_header in sys/timeb.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/timeb.h" "ac_cv_header_sys_timeb_h" "$ac_includes_default" ! if test "x$ac_cv_header_sys_timeb_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_TIMEB_H 1 _ACEOF --- 20114,20120 ---- for ac_header in sys/timeb.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/timeb.h" "ac_cv_header_sys_timeb_h" "$ac_includes_default" ! if test "x$ac_cv_header_sys_timeb_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_TIMEB_H 1 _ACEOF *************** *** 18277,18283 **** for ac_func in _ftime do : ac_fn_c_check_func "$LINENO" "_ftime" "ac_cv_func__ftime" ! if test "x$ac_cv_func__ftime" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE__FTIME 1 _ACEOF --- 20126,20132 ---- for ac_func in _ftime do : ac_fn_c_check_func "$LINENO" "_ftime" "ac_cv_func__ftime" ! if test "x$ac_cv_func__ftime" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__FTIME 1 _ACEOF *************** *** 18300,18306 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gettimeofday with POSIX signature" >&5 $as_echo_n "checking for gettimeofday with POSIX signature... " >&6; } ! if test "${gl_cv_func_gettimeofday_posix_signature+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 20149,20155 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gettimeofday with POSIX signature" >&5 $as_echo_n "checking for gettimeofday with POSIX signature... " >&6; } ! if ${gl_cv_func_gettimeofday_posix_signature+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 18371,18377 **** for ac_header in sys/timeb.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/timeb.h" "ac_cv_header_sys_timeb_h" "$ac_includes_default" ! if test "x$ac_cv_header_sys_timeb_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_TIMEB_H 1 _ACEOF --- 20220,20226 ---- for ac_header in sys/timeb.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/timeb.h" "ac_cv_header_sys_timeb_h" "$ac_includes_default" ! if test "x$ac_cv_header_sys_timeb_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_TIMEB_H 1 _ACEOF *************** *** 18383,18389 **** for ac_func in _ftime do : ac_fn_c_check_func "$LINENO" "_ftime" "ac_cv_func__ftime" ! if test "x$ac_cv_func__ftime" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE__FTIME 1 _ACEOF --- 20232,20238 ---- for ac_func in _ftime do : ac_fn_c_check_func "$LINENO" "_ftime" "ac_cv_func__ftime" ! if test "x$ac_cv_func__ftime" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__FTIME 1 _ACEOF *************** *** 18403,18409 **** ! GNULIB_GETTIMEOFDAY=1 --- 20252,20262 ---- ! ! ! GNULIB_GETTIMEOFDAY=1 ! ! *************** *** 18411,18422 **** ! # Code from module glob: ! GLOB_H= for ac_header in glob.h do : ac_fn_c_check_header_mongrel "$LINENO" "glob.h" "ac_cv_header_glob_h" "$ac_includes_default" ! if test "x$ac_cv_header_glob_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GLOB_H 1 _ACEOF --- 20264,20274 ---- ! GLOB_H= for ac_header in glob.h do : ac_fn_c_check_header_mongrel "$LINENO" "glob.h" "ac_cv_header_glob_h" "$ac_includes_default" ! if test "x$ac_cv_header_glob_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GLOB_H 1 _ACEOF *************** *** 18431,18437 **** if test -z "$GLOB_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU glob interface version 1" >&5 $as_echo_n "checking for GNU glob interface version 1... " >&6; } ! if test "${gl_cv_gnu_glob_interface_version_1+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 20283,20289 ---- if test -z "$GLOB_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU glob interface version 1" >&5 $as_echo_n "checking for GNU glob interface version 1... " >&6; } ! if ${gl_cv_gnu_glob_interface_version_1+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 18457,18463 **** if test -z "$GLOB_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether glob lists broken symlinks" >&5 $as_echo_n "checking whether glob lists broken symlinks... " >&6; } ! if test "${gl_cv_glob_lists_symlinks+set}" = set; then : $as_echo_n "(cached) " >&6 else if ln -s conf-doesntexist conf$$-globtest 2>/dev/null; then --- 20309,20315 ---- if test -z "$GLOB_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether glob lists broken symlinks" >&5 $as_echo_n "checking whether glob lists broken symlinks... " >&6; } ! if ${gl_cv_glob_lists_symlinks+:} false; then : $as_echo_n "(cached) " >&6 else if ln -s conf-doesntexist conf$$-globtest 2>/dev/null; then *************** *** 18510,18541 **** if test -n "$GLOB_H"; then - if test $ac_cv_header_sys_cdefs_h = yes; then - HAVE_SYS_CDEFS_H=1 - else - HAVE_SYS_CDEFS_H=0 - fi - - - GLOB_H=glob.h - gl_LIBOBJS="$gl_LIBOBJS glob.$ac_objext" - fi - # Code from module include_next: - # Code from module intprops: - # Code from module lchown: --- 20362,20394 ---- if test -n "$GLOB_H"; then + gl_LIBOBJS="$gl_LIBOBJS glob.$ac_objext" + if test $ac_cv_header_sys_cdefs_h = yes; then + HAVE_SYS_CDEFS_H=1 + else + HAVE_SYS_CDEFS_H=0 + fi + fi + if test -n "$GLOB_H"; then + GL_GENERATE_GLOB_H_TRUE= + GL_GENERATE_GLOB_H_FALSE='#' + else + GL_GENERATE_GLOB_H_TRUE='#' + GL_GENERATE_GLOB_H_FALSE= + fi *************** *** 18551,18557 **** for ac_func in lchown do : ac_fn_c_check_func "$LINENO" "lchown" "ac_cv_func_lchown" ! if test "x$ac_cv_func_lchown" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LCHOWN 1 _ACEOF --- 20404,20410 ---- for ac_func in lchown do : ac_fn_c_check_func "$LINENO" "lchown" "ac_cv_func_lchown" ! if test "x$ac_cv_func_lchown" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LCHOWN 1 _ACEOF *************** *** 18584,18590 **** ! GNULIB_LCHOWN=1 --- 20437,20447 ---- ! ! ! GNULIB_LCHOWN=1 ! ! *************** *** 18592,18598 **** - # Code from module link: --- 20449,20454 ---- *************** *** 18611,18617 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether link handles trailing slash correctly" >&5 $as_echo_n "checking whether link handles trailing slash correctly... " >&6; } ! if test "${gl_cv_func_link_works+set}" = set; then : $as_echo_n "(cached) " >&6 else touch conftest.a --- 20467,20473 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether link handles trailing slash correctly" >&5 $as_echo_n "checking whether link handles trailing slash correctly... " >&6; } ! if ${gl_cv_func_link_works+:} false; then : $as_echo_n "(cached) " >&6 else touch conftest.a *************** *** 18673,18679 **** ! GNULIB_LINK=1 --- 20529,20539 ---- ! ! ! GNULIB_LINK=1 ! ! *************** *** 18681,18687 **** - # Code from module localcharset: --- 20541,20546 ---- *************** *** 18690,18698 **** ! LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(top_builddir)/$gl_source_base\"" - # Code from module lstat: --- 20549,20650 ---- ! LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(top_builddir)/$gl_source_base\"" ! ! ! ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lseek detects pipes" >&5 ! $as_echo_n "checking whether lseek detects pipes... " >&6; } ! if ${gl_cv_func_lseek_pipe+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! if test $cross_compiling = no; then ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! #include /* for off_t */ ! #include /* for SEEK_CUR */ ! #include ! int ! main () ! { ! ! /* Exit with success only if stdin is seekable. */ ! return lseek (0, (off_t)0, SEEK_CUR) < 0; ! ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! if test -s conftest$ac_exeext \ ! && ./conftest$ac_exeext < conftest.$ac_ext \ ! && test 1 = "`echo hi \ ! | { ./conftest$ac_exeext; echo $?; cat >/dev/null; }`"; then ! gl_cv_func_lseek_pipe=yes ! else ! gl_cv_func_lseek_pipe=no ! fi ! else ! gl_cv_func_lseek_pipe=no ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! #if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) || defined __BEOS__ ! /* mingw and BeOS mistakenly return 0 when trying to seek on pipes. */ ! Choke me. ! #endif ! _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ! gl_cv_func_lseek_pipe=yes ! else ! gl_cv_func_lseek_pipe=no ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! fi ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lseek_pipe" >&5 ! $as_echo "$gl_cv_func_lseek_pipe" >&6; } ! if test $gl_cv_func_lseek_pipe = no; then ! ! ! ! ! ! ! ! ! ! gl_LIBOBJS="$gl_LIBOBJS lseek.$ac_objext" ! ! ! REPLACE_LSEEK=1 ! ! $as_echo "#define LSEEK_PIPE_BROKEN 1" >>confdefs.h ! ! ! fi ! ! ! ! ! ! ! GNULIB_LSEEK=1 ! ! ! ! ! ! $as_echo "#define GNULIB_TEST_LSEEK 1" >>confdefs.h ! ! *************** *** 18710,18716 **** ! GNULIB_LSTAT=1 --- 20662,20672 ---- ! ! ! GNULIB_LSTAT=1 ! ! *************** *** 18718,18724 **** - # Code from module malloc-posix: --- 20674,20679 ---- *************** *** 18745,18751 **** ! GNULIB_MALLOC_POSIX=1 --- 20700,20710 ---- ! ! ! GNULIB_MALLOC_POSIX=1 ! ! *************** *** 18753,18764 **** - # Code from module malloca: - # Code from module math: --- 20712,20721 ---- *************** *** 18775,18781 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_math_h+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 20732,20738 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_math_h+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 18825,18831 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NAN macro works" >&5 $as_echo_n "checking whether NAN macro works... " >&6; } ! if test "${gl_cv_header_math_nan_works+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 20782,20788 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NAN macro works" >&5 $as_echo_n "checking whether NAN macro works... " >&6; } ! if ${gl_cv_header_math_nan_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 18860,18866 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether HUGE_VAL works" >&5 $as_echo_n "checking whether HUGE_VAL works... " >&6; } ! if test "${gl_cv_header_math_huge_val_works+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 20817,20823 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether HUGE_VAL works" >&5 $as_echo_n "checking whether HUGE_VAL works... " >&6; } ! if ${gl_cv_header_math_huge_val_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 18894,18900 **** as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval "test \"\${$as_gl_Symbol+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 20851,20857 ---- as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 18930,18936 **** done - # Code from module mbrtowc: --- 20887,20892 ---- *************** *** 18947,18953 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 $as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } ! if test "${gl_cv_func_mbrtowc_incomplete_state+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 20903,20909 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 $as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } ! if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 19010,19016 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 $as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } ! if test "${gl_cv_func_mbrtowc_sanitycheck+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 20966,20972 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 $as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } ! if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 19084,19094 **** else REPLACE_MBSTATE_T=1 fi - if test $REPLACE_MBSTATE_T = 1; then - - : - - fi --- 21040,21045 ---- *************** *** 19103,19109 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL pwc argument" >&5 $as_echo_n "checking whether mbrtowc handles a NULL pwc argument... " >&6; } ! if test "${gl_cv_func_mbrtowc_null_arg1+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 21054,21060 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL pwc argument" >&5 $as_echo_n "checking whether mbrtowc handles a NULL pwc argument... " >&6; } ! if ${gl_cv_func_mbrtowc_null_arg1+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 19180,19186 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL string argument" >&5 $as_echo_n "checking whether mbrtowc handles a NULL string argument... " >&6; } ! if test "${gl_cv_func_mbrtowc_null_arg2+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 21131,21137 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL string argument" >&5 $as_echo_n "checking whether mbrtowc handles a NULL string argument... " >&6; } ! if ${gl_cv_func_mbrtowc_null_arg2+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 19244,19262 **** ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc has a correct return value" >&5 $as_echo_n "checking whether mbrtowc has a correct return value... " >&6; } ! if test "${gl_cv_func_mbrtowc_retval+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$host_os" in ! # Guess no on HP-UX and Solaris. ! hpux* | solaris*) gl_cv_func_mbrtowc_retval="guessing no" ;; ! # Guess yes otherwise. ! *) gl_cv_func_mbrtowc_retval="guessing yes" ;; esac ! if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none; then if test "$cross_compiling" = yes; then : : else --- 21195,21215 ---- ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc has a correct return value" >&5 $as_echo_n "checking whether mbrtowc has a correct return value... " >&6; } ! if ${gl_cv_func_mbrtowc_retval+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in ! # Guess no on HP-UX, Solaris, native Windows. ! hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;; ! # Guess yes otherwise. ! *) gl_cv_func_mbrtowc_retval="guessing yes" ;; esac ! if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \ ! || { case "$host_os" in mingw*) true;; *) false;; esac; }; then if test "$cross_compiling" = yes; then : : else *************** *** 19276,19281 **** --- 21229,21235 ---- int main () { int result = 0; + int found_some_locale = 0; /* This fails on Solaris. */ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { *************** *** 19290,19295 **** --- 21244,21250 ---- if (mbrtowc (&wc, input + 2, 5, &state) != 1) result |= 1; } + found_some_locale = 1; } /* This fails on HP-UX 11.11. */ if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) *************** *** 19305,19318 **** if (mbrtowc (&wc, input + 2, 5, &state) != 2) result |= 2; } } ! return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_retval=yes else ! gl_cv_func_mbrtowc_retval=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext --- 21260,21323 ---- if (mbrtowc (&wc, input + 2, 5, &state) != 2) result |= 2; } + found_some_locale = 1; } ! /* This fails on native Windows. */ ! if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) ! { ! char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */ ! mbstate_t state; ! wchar_t wc; ! ! memset (&state, '\0', sizeof (mbstate_t)); ! if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) ! { ! input[3] = '\0'; ! if (mbrtowc (&wc, input + 4, 4, &state) != 1) ! result |= 4; ! } ! found_some_locale = 1; ! } ! if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) ! { ! char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */ ! mbstate_t state; ! wchar_t wc; ! ! memset (&state, '\0', sizeof (mbstate_t)); ! if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) ! { ! input[3] = '\0'; ! if (mbrtowc (&wc, input + 4, 4, &state) != 1) ! result |= 8; ! } ! found_some_locale = 1; ! } ! if (setlocale (LC_ALL, "Chinese_China.936") != NULL) ! { ! char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */ ! mbstate_t state; ! wchar_t wc; ! ! memset (&state, '\0', sizeof (mbstate_t)); ! if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) ! { ! input[3] = '\0'; ! if (mbrtowc (&wc, input + 4, 4, &state) != 1) ! result |= 16; ! } ! found_some_locale = 1; ! } ! return (found_some_locale ? result : 77); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_retval=yes else ! if test $? != 77; then ! gl_cv_func_mbrtowc_retval=no ! fi ! fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext *************** *** 19329,19335 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc returns 0 when parsing a NUL character" >&5 $as_echo_n "checking whether mbrtowc returns 0 when parsing a NUL character... " >&6; } ! if test "${gl_cv_func_mbrtowc_nul_retval+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 21334,21340 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc returns 0 when parsing a NUL character" >&5 $as_echo_n "checking whether mbrtowc returns 0 when parsing a NUL character... " >&6; } ! if ${gl_cv_func_mbrtowc_nul_retval+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 19422,19430 **** fi if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then - : - - --- 21427,21432 ---- *************** *** 19442,19448 **** ! GNULIB_MBRTOWC=1 --- 21444,21454 ---- ! ! ! GNULIB_MBRTOWC=1 ! ! *************** *** 19450,19456 **** ! # Code from module mbsinit: --- 21456,21462 ---- ! *************** *** 19467,19473 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 $as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } ! if test "${gl_cv_func_mbrtowc_incomplete_state+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 21473,21479 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 $as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } ! if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 19530,19536 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 $as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } ! if test "${gl_cv_func_mbrtowc_sanitycheck+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 21536,21542 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 $as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } ! if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 19604,19614 **** else REPLACE_MBSTATE_T=1 fi - if test $REPLACE_MBSTATE_T = 1; then - - : - - fi --- 21610,21615 ---- *************** *** 19617,19629 **** else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBSINIT=1 fi fi if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then - : - - --- 21618,21631 ---- else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBSINIT=1 + else + case "$host_os" in + mingw*) REPLACE_MBSINIT=1 ;; + esac fi fi if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then *************** *** 19641,19647 **** ! GNULIB_MBSINIT=1 --- 21643,21653 ---- ! ! ! GNULIB_MBSINIT=1 ! ! *************** *** 19649,19655 **** - # Code from module mbsrtowcs: --- 21655,21660 ---- *************** *** 19666,19672 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 $as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } ! if test "${gl_cv_func_mbrtowc_incomplete_state+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 21671,21677 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 $as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } ! if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 19729,19735 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 $as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } ! if test "${gl_cv_func_mbrtowc_sanitycheck+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 21734,21740 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 $as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } ! if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 19803,19813 **** else REPLACE_MBSTATE_T=1 fi - if test $REPLACE_MBSTATE_T = 1; then - - : - - fi --- 21808,21813 ---- *************** *** 19822,19840 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbsrtowcs works" >&5 $as_echo_n "checking whether mbsrtowcs works... " >&6; } ! if test "${gl_cv_func_mbsrtowcs_works+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$host_os" in ! # Guess no on HP-UX and Solaris. ! hpux* | solaris*) gl_cv_func_mbsrtowcs_works="guessing no" ;; ! # Guess yes otherwise. ! *) gl_cv_func_mbsrtowcs_works="guessing yes" ;; esac ! if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then : : else --- 21822,21841 ---- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbsrtowcs works" >&5 $as_echo_n "checking whether mbsrtowcs works... " >&6; } ! if ${gl_cv_func_mbsrtowcs_works+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in ! # Guess no on HP-UX, Solaris, mingw. ! hpux* | solaris* | mingw*) gl_cv_func_mbsrtowcs_works="guessing no" ;; ! # Guess yes otherwise. ! *) gl_cv_func_mbsrtowcs_works="guessing yes" ;; esac ! if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then : : else *************** *** 19854,19859 **** --- 21855,21873 ---- int main () { int result = 0; + /* Test whether the function supports a NULL destination argument. + This fails on native Windows. */ + if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) + { + const char input[] = "\337er"; + const char *src = input; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbsrtowcs (NULL, &src, 1, &state) != 3 + || src != input) + result |= 1; + } /* Test whether the function works when started with a conversion state in non-initial state. This fails on HP-UX 11.11 and Solaris 10. */ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) *************** *** 19867,19873 **** { const char *src = input + 2; if (mbsrtowcs (NULL, &src, 10, &state) != 4) ! result |= 1; } } if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) --- 21881,21887 ---- { const char *src = input + 2; if (mbsrtowcs (NULL, &src, 10, &state) != 4) ! result |= 2; } } if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) *************** *** 19881,19887 **** { const char *src = input + 4; if (mbsrtowcs (NULL, &src, 10, &state) != 3) ! result |= 2; } } if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) --- 21895,21901 ---- { const char *src = input + 4; if (mbsrtowcs (NULL, &src, 10, &state) != 3) ! result |= 4; } } if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) *************** *** 19895,19901 **** { const char *src = input + 2; if (mbsrtowcs (NULL, &src, 10, &state) != 4) ! result |= 4; } } return result; --- 21909,21915 ---- { const char *src = input + 2; if (mbsrtowcs (NULL, &src, 10, &state) != 4) ! result |= 8; } } return result; *************** *** 19924,19932 **** fi if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then - : - - --- 21938,21943 ---- *************** *** 19954,19960 **** ! GNULIB_MBSRTOWCS=1 --- 21965,21975 ---- ! ! ! GNULIB_MBSRTOWCS=1 ! ! *************** *** 19962,19973 **** - # Code from module memchr: ! GNULIB_MEMCHR=1 --- 21977,21991 ---- ! ! ! GNULIB_MEMCHR=1 ! ! *************** *** 19975,19981 **** - # Code from module mempcpy: --- 21993,21998 ---- *************** *** 19993,19999 **** for ac_func in mempcpy do : ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy" ! if test "x$ac_cv_func_mempcpy" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_MEMPCPY 1 _ACEOF --- 22010,22016 ---- for ac_func in mempcpy do : ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy" ! if test "x$ac_cv_func_mempcpy" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_MEMPCPY 1 _ACEOF *************** *** 20016,20022 **** ! GNULIB_MEMPCPY=1 --- 22033,22043 ---- ! ! ! GNULIB_MEMPCPY=1 ! ! *************** *** 20024,20030 **** - # Code from module memrchr: --- 22045,22050 ---- *************** *** 20045,20051 **** for ac_func in memrchr do : ac_fn_c_check_func "$LINENO" "memrchr" "ac_cv_func_memrchr" ! if test "x$ac_cv_func_memrchr" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_MEMRCHR 1 _ACEOF --- 22065,22071 ---- for ac_func in memrchr do : ac_fn_c_check_func "$LINENO" "memrchr" "ac_cv_func_memrchr" ! if test "x$ac_cv_func_memrchr" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_MEMRCHR 1 _ACEOF *************** *** 20065,20071 **** ! GNULIB_MEMRCHR=1 --- 22085,22095 ---- ! ! ! GNULIB_MEMRCHR=1 ! ! *************** *** 20073,20084 **** - # Code from module mkdir: { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mkdir handles trailing slash" >&5 $as_echo_n "checking whether mkdir handles trailing slash... " >&6; } ! if test "${gl_cv_func_mkdir_trailing_slash_works+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -rf conftest.dir --- 22097,22107 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mkdir handles trailing slash" >&5 $as_echo_n "checking whether mkdir handles trailing slash... " >&6; } ! if ${gl_cv_func_mkdir_trailing_slash_works+:} false; then : $as_echo_n "(cached) " >&6 else rm -rf conftest.dir *************** *** 20130,20136 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mkdir handles trailing dot" >&5 $as_echo_n "checking whether mkdir handles trailing dot... " >&6; } ! if test "${gl_cv_func_mkdir_trailing_dot_works+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -rf conftest.dir --- 22153,22159 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mkdir handles trailing dot" >&5 $as_echo_n "checking whether mkdir handles trailing dot... " >&6; } ! if ${gl_cv_func_mkdir_trailing_dot_works+:} false; then : $as_echo_n "(cached) " >&6 else rm -rf conftest.dir *************** *** 20183,20189 **** fi - # Code from module mkfifo: --- 22206,22211 ---- *************** *** 20203,20209 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mkfifo rejects trailing slashes" >&5 $as_echo_n "checking whether mkfifo rejects trailing slashes... " >&6; } ! if test "${gl_cv_func_mkfifo_works+set}" = set; then : $as_echo_n "(cached) " >&6 else # Assume that if we have lstat, we can also check symlinks. --- 22225,22231 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mkfifo rejects trailing slashes" >&5 $as_echo_n "checking whether mkfifo rejects trailing slashes... " >&6; } ! if ${gl_cv_func_mkfifo_works+:} false; then : $as_echo_n "(cached) " >&6 else # Assume that if we have lstat, we can also check symlinks. *************** *** 20267,20273 **** ! GNULIB_MKFIFO=1 --- 22289,22299 ---- ! ! ! GNULIB_MKFIFO=1 ! ! *************** *** 20275,20281 **** - # Code from module mkstemp: --- 22301,22306 ---- *************** *** 20284,20296 **** if test $ac_cv_func_mkstemp = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mkstemp" >&5 $as_echo_n "checking for working mkstemp... " >&6; } ! if test "${gl_cv_func_working_mkstemp+set}" = set; then : $as_echo_n "(cached) " >&6 else mkdir conftest.mkstemp if test "$cross_compiling" = yes; then : ! gl_cv_func_working_mkstemp=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ --- 22309,22321 ---- if test $ac_cv_func_mkstemp = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mkstemp" >&5 $as_echo_n "checking for working mkstemp... " >&6; } ! if ${gl_cv_func_working_mkstemp+:} false; then : $as_echo_n "(cached) " >&6 else mkdir conftest.mkstemp if test "$cross_compiling" = yes; then : ! gl_cv_func_working_mkstemp="guessing no" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ *************** *** 20303,20308 **** --- 22328,22334 ---- off_t large = (off_t) 4294967295u; if (large < 0) large = 2147483647; + umask (0); for (i = 0; i < 70; i++) { char templ[] = "conftest.mkstemp/coXXXXXX"; *************** *** 20312,20320 **** result |= 1; else { if (lseek (fd, large, SEEK_SET) != large) result |= 2; ! close (fd); } } return result; --- 22338,22352 ---- result |= 1; else { + struct stat st; if (lseek (fd, large, SEEK_SET) != large) result |= 2; ! if (fstat (fd, &st) < 0) ! result |= 4; ! else if (st.st_mode & 0077) ! result |= 8; ! if (close (fd)) ! result |= 16; } } return result; *************** *** 20336,20342 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_mkstemp" >&5 $as_echo "$gl_cv_func_working_mkstemp" >&6; } ! if test $gl_cv_func_working_mkstemp != yes; then REPLACE_MKSTEMP=1 --- 22368,22374 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_mkstemp" >&5 $as_echo "$gl_cv_func_working_mkstemp" >&6; } ! if test "$gl_cv_func_working_mkstemp" != yes; then REPLACE_MKSTEMP=1 *************** *** 20370,20376 **** ! GNULIB_MKSTEMP=1 --- 22402,22412 ---- ! ! ! GNULIB_MKSTEMP=1 ! ! *************** *** 20378,20384 **** - # Code from module mktime: --- 22414,22419 ---- *************** *** 20392,20398 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5 $as_echo_n "checking for working mktime... " >&6; } ! if test "${ac_cv_func_working_mktime+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 22427,22433 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5 $as_echo_n "checking for working mktime... " >&6; } ! if ${ac_cv_func_working_mktime+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 20629,20635 **** ! GNULIB_MKTIME=1 --- 22664,22674 ---- ! ! ! GNULIB_MKTIME=1 ! ! *************** *** 20637,20645 **** - # Code from module multiarch: - # Code from module nanosleep: --- 22676,22682 ---- *************** *** 20655,20661 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nanosleep" >&5 $as_echo_n "checking for library containing nanosleep... " >&6; } ! if test "${ac_cv_search_nanosleep+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS --- 22692,22698 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nanosleep" >&5 $as_echo_n "checking for library containing nanosleep... " >&6; } ! if ${ac_cv_search_nanosleep+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS *************** *** 20689,20699 **** fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext ! if test "${ac_cv_search_nanosleep+set}" = set; then : break fi done ! if test "${ac_cv_search_nanosleep+set}" = set; then : else ac_cv_search_nanosleep=no --- 22726,22736 ---- fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext ! if ${ac_cv_search_nanosleep+:} false; then : break fi done ! if ${ac_cv_search_nanosleep+:} false; then : else ac_cv_search_nanosleep=no *************** *** 20723,20729 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working nanosleep" >&5 $as_echo_n "checking for working nanosleep... " >&6; } ! if test "${gl_cv_func_nanosleep+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 22760,22766 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working nanosleep" >&5 $as_echo_n "checking for working nanosleep... " >&6; } ! if ${gl_cv_func_nanosleep+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 20839,20845 **** ! GNULIB_NANOSLEEP=1 --- 22876,22886 ---- ! ! ! GNULIB_NANOSLEEP=1 ! ! *************** *** 20847,20853 **** ! # Code from module open: case "$host_os" in --- 22888,22978 ---- ! ! ! ! ! for ac_header in sys/pstat.h sys/sysmp.h sys/param.h ! do : ! as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ! ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default ! " ! if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : ! cat >>confdefs.h <<_ACEOF ! #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ! _ACEOF ! ! fi ! ! done ! ! for ac_header in sys/sysctl.h ! do : ! ac_fn_c_check_header_compile "$LINENO" "sys/sysctl.h" "ac_cv_header_sys_sysctl_h" "$ac_includes_default ! #if HAVE_SYS_PARAM_H ! # include ! #endif ! ! " ! if test "x$ac_cv_header_sys_sysctl_h" = xyes; then : ! cat >>confdefs.h <<_ACEOF ! #define HAVE_SYS_SYSCTL_H 1 ! _ACEOF ! ! fi ! ! done ! ! ! for ac_func in sched_getaffinity sched_getaffinity_np \ ! pstat_getdynamic sysmp sysctl ! do : ! as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ! ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ! if eval test \"x\$"$as_ac_var"\" = x"yes"; then : ! cat >>confdefs.h <<_ACEOF ! #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ! _ACEOF ! ! fi ! done ! ! ! if test $ac_cv_func_sched_getaffinity = yes; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for glibc compatible sched_getaffinity" >&5 ! $as_echo_n "checking for glibc compatible sched_getaffinity... " >&6; } ! if ${gl_cv_func_sched_getaffinity3+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! #include ! int ! main () ! { ! sched_getaffinity (0, 0, (cpu_set_t *) 0); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ! gl_cv_func_sched_getaffinity3=yes ! else ! gl_cv_func_sched_getaffinity3=no ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_sched_getaffinity3" >&5 ! $as_echo "$gl_cv_func_sched_getaffinity3" >&6; } ! if test $gl_cv_func_sched_getaffinity3 = yes; then ! ! $as_echo "#define HAVE_SCHED_GETAFFINITY_LIKE_GLIBC 1" >>confdefs.h ! ! fi ! fi ! ! case "$host_os" in *************** *** 20876,20882 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open recognizes a trailing slash" >&5 $as_echo_n "checking whether open recognizes a trailing slash... " >&6; } ! if test "${gl_cv_func_open_slash+set}" = set; then : $as_echo_n "(cached) " >&6 else # Assume that if we have lstat, we can also check symlinks. --- 23001,23007 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open recognizes a trailing slash" >&5 $as_echo_n "checking whether open recognizes a trailing slash... " >&6; } ! if ${gl_cv_func_open_slash+:} false; then : $as_echo_n "(cached) " >&6 else # Assume that if we have lstat, we can also check symlinks. *************** *** 20959,20965 **** ! GNULIB_OPEN=1 --- 23084,23095 ---- ! ! ! ! GNULIB_OPEN=1 ! ! *************** *** 20967,20973 **** - # Code from module openat: GNULIB_OPENAT=1 --- 23097,23102 ---- *************** *** 21121,21133 **** ac_fn_c_check_func "$LINENO" "fchownat" "ac_cv_func_fchownat" ! if test "x$ac_cv_func_fchownat" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fchownat works with AT_SYMLINK_NOFOLLOW" >&5 $as_echo_n "checking whether fchownat works with AT_SYMLINK_NOFOLLOW... " >&6; } ! if test "${gl_cv_func_fchownat_nofollow_works+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 23250,23262 ---- ac_fn_c_check_func "$LINENO" "fchownat" "ac_cv_func_fchownat" ! if test "x$ac_cv_func_fchownat" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fchownat works with AT_SYMLINK_NOFOLLOW" >&5 $as_echo_n "checking whether fchownat works with AT_SYMLINK_NOFOLLOW... " >&6; } ! if ${gl_cv_func_fchownat_nofollow_works+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 21183,21189 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fchownat works with an empty file name" >&5 $as_echo_n "checking whether fchownat works with an empty file name... " >&6; } ! if test "${gl_cv_func_fchownat_empty_filename_works+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 23312,23318 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fchownat works with an empty file name" >&5 $as_echo_n "checking whether fchownat works with an empty file name... " >&6; } ! if ${gl_cv_func_fchownat_empty_filename_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 21255,21270 **** fi - # Code from module openat-die: - # Code from module pathmax: ! # Code from module progname: ! ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include " ! if test "x$ac_cv_have_decl_program_invocation_name" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 23384,23396 ---- fi ! ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include " ! if test "x$ac_cv_have_decl_program_invocation_name" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 21274,21282 **** #define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl _ACEOF ! ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include " ! if test "x$ac_cv_have_decl_program_invocation_short_name" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 23400,23408 ---- #define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl _ACEOF ! ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include " ! if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 21286,21292 **** #define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl _ACEOF - # Code from module readlink: --- 23412,23417 ---- *************** *** 21308,21314 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readlink signature is correct" >&5 $as_echo_n "checking whether readlink signature is correct... " >&6; } ! if test "${gl_cv_decl_readlink_works+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 23433,23439 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readlink signature is correct" >&5 $as_echo_n "checking whether readlink signature is correct... " >&6; } ! if ${gl_cv_decl_readlink_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 21335,21341 **** $as_echo "$gl_cv_decl_readlink_works" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readlink handles trailing slash correctly" >&5 $as_echo_n "checking whether readlink handles trailing slash correctly... " >&6; } ! if test "${gl_cv_func_readlink_works+set}" = set; then : $as_echo_n "(cached) " >&6 else # We have readlink, so assume ln -s works. --- 23460,23466 ---- $as_echo "$gl_cv_decl_readlink_works" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readlink handles trailing slash correctly" >&5 $as_echo_n "checking whether readlink handles trailing slash correctly... " >&6; } ! if ${gl_cv_func_readlink_works+:} false; then : $as_echo_n "(cached) " >&6 else # We have readlink, so assume ln -s works. *************** *** 21403,21409 **** ! GNULIB_READLINK=1 --- 23528,23538 ---- ! ! ! GNULIB_READLINK=1 ! ! *************** *** 21411,21417 **** - # Code from module realloc-posix: --- 23540,23545 ---- *************** *** 21438,21444 **** ! GNULIB_REALLOC_POSIX=1 --- 23566,23576 ---- ! ! ! GNULIB_REALLOC_POSIX=1 ! ! *************** *** 21446,21452 **** - # Code from module rename: --- 23578,23583 ---- *************** *** 21454,21460 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename honors trailing slash on destination" >&5 $as_echo_n "checking whether rename honors trailing slash on destination... " >&6; } ! if test "${gl_cv_func_rename_slash_dst_works+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk --- 23585,23591 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename honors trailing slash on destination" >&5 $as_echo_n "checking whether rename honors trailing slash on destination... " >&6; } ! if ${gl_cv_func_rename_slash_dst_works+:} false; then : $as_echo_n "(cached) " >&6 else rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk *************** *** 21524,21530 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename honors trailing slash on source" >&5 $as_echo_n "checking whether rename honors trailing slash on source... " >&6; } ! if test "${gl_cv_func_rename_slash_src_works+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk --- 23655,23661 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename honors trailing slash on source" >&5 $as_echo_n "checking whether rename honors trailing slash on source... " >&6; } ! if ${gl_cv_func_rename_slash_src_works+:} false; then : $as_echo_n "(cached) " >&6 else rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk *************** *** 21594,21600 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename manages hard links correctly" >&5 $as_echo_n "checking whether rename manages hard links correctly... " >&6; } ! if test "${gl_cv_func_rename_link_works+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -rf conftest.f conftest.f1 --- 23725,23731 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename manages hard links correctly" >&5 $as_echo_n "checking whether rename manages hard links correctly... " >&6; } ! if ${gl_cv_func_rename_link_works+:} false; then : $as_echo_n "(cached) " >&6 else rm -rf conftest.f conftest.f1 *************** *** 21664,21670 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename manages existing destinations correctly" >&5 $as_echo_n "checking whether rename manages existing destinations correctly... " >&6; } ! if test "${gl_cv_func_rename_dest_works+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -rf conftest.f conftest.d1 conftest.d2 --- 23795,23801 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename manages existing destinations correctly" >&5 $as_echo_n "checking whether rename manages existing destinations correctly... " >&6; } ! if ${gl_cv_func_rename_dest_works+:} false; then : $as_echo_n "(cached) " >&6 else rm -rf conftest.f conftest.d1 conftest.d2 *************** *** 21727,21747 **** - GNULIB_RENAME=1 - $as_echo "#define GNULIB_TEST_RENAME 1" >>confdefs.h ! # Code from module rmdir: { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rmdir works" >&5 $as_echo_n "checking whether rmdir works... " >&6; } ! if test "${gl_cv_func_rmdir_works+set}" = set; then : $as_echo_n "(cached) " >&6 else mkdir conftest.dir --- 23858,23880 ---- + GNULIB_RENAME=1 ! ! $as_echo "#define GNULIB_TEST_RENAME 1" >>confdefs.h ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rmdir works" >&5 $as_echo_n "checking whether rmdir works... " >&6; } ! if ${gl_cv_func_rmdir_works+:} false; then : $as_echo_n "(cached) " >&6 else mkdir conftest.dir *************** *** 21801,21807 **** ! GNULIB_RMDIR=1 --- 23934,23944 ---- ! ! ! GNULIB_RMDIR=1 ! ! *************** *** 21809,21822 **** - # Code from module round: ac_fn_c_check_decl "$LINENO" "round" "ac_cv_have_decl_round" "#include " ! if test "x$ac_cv_have_decl_round" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 23946,23958 ---- ac_fn_c_check_decl "$LINENO" "round" "ac_cv_have_decl_round" "#include " ! if test "x$ac_cv_have_decl_round" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 21861,21867 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether round works" >&5 $as_echo_n "checking whether round works... " >&6; } ! if test "${gl_cv_func_round_works+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 23997,24003 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether round works" >&5 $as_echo_n "checking whether round works... " >&6; } ! if ${gl_cv_func_round_works+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 21935,21941 **** saved_as_echo_n="$as_echo_n" as_echo_n=':' ! if test "${gl_cv_func_floor_libm+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 24071,24077 ---- saved_as_echo_n="$as_echo_n" as_echo_n=':' ! if ${gl_cv_func_floor_libm+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 21996,22002 **** saved_as_echo_n="$as_echo_n" as_echo_n=':' ! if test "${gl_cv_func_ceil_libm+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 24132,24138 ---- saved_as_echo_n="$as_echo_n" as_echo_n=':' ! if ${gl_cv_func_ceil_libm+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 22068,22074 **** ! GNULIB_ROUND=1 --- 24204,24214 ---- ! ! ! GNULIB_ROUND=1 ! ! *************** *** 22076,22089 **** - # Code from module roundf: ac_fn_c_check_decl "$LINENO" "roundf" "ac_cv_have_decl_roundf" "#include " ! if test "x$ac_cv_have_decl_roundf" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 24216,24228 ---- ac_fn_c_check_decl "$LINENO" "roundf" "ac_cv_have_decl_roundf" "#include " ! if test "x$ac_cv_have_decl_roundf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 22128,22134 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether roundf works" >&5 $as_echo_n "checking whether roundf works... " >&6; } ! if test "${gl_cv_func_roundf_works+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 24267,24273 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether roundf works" >&5 $as_echo_n "checking whether roundf works... " >&6; } ! if ${gl_cv_func_roundf_works+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 22197,22203 **** ac_fn_c_check_decl "$LINENO" "ceilf" "ac_cv_have_decl_ceilf" "#include " ! if test "x$ac_cv_have_decl_ceilf" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 24336,24342 ---- ac_fn_c_check_decl "$LINENO" "ceilf" "ac_cv_have_decl_ceilf" "#include " ! if test "x$ac_cv_have_decl_ceilf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 22208,22214 **** _ACEOF ac_fn_c_check_decl "$LINENO" "floorf" "ac_cv_have_decl_floorf" "#include " ! if test "x$ac_cv_have_decl_floorf" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 24347,24353 ---- _ACEOF ac_fn_c_check_decl "$LINENO" "floorf" "ac_cv_have_decl_floorf" "#include " ! if test "x$ac_cv_have_decl_floorf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 22224,22230 **** saved_as_echo_n="$as_echo_n" as_echo_n=':' ! if test "${gl_cv_func_floorf_libm+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 24363,24369 ---- saved_as_echo_n="$as_echo_n" as_echo_n=':' ! if ${gl_cv_func_floorf_libm+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 22285,22291 **** saved_as_echo_n="$as_echo_n" as_echo_n=':' ! if test "${gl_cv_func_ceilf_libm+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 24424,24430 ---- saved_as_echo_n="$as_echo_n" as_echo_n=':' ! if ${gl_cv_func_ceilf_libm+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 22367,22373 **** ! GNULIB_ROUNDF=1 --- 24506,24516 ---- ! ! ! GNULIB_ROUNDF=1 ! ! *************** *** 22375,22382 **** - # Code from module same-inode: - # Code from module save-cwd: --- 24518,24523 ---- *************** *** 22390,22400 **** - # Code from module select: if test "$ac_cv_header_winsock2_h" = yes; then --- 24531,24541 ---- if test "$ac_cv_header_winsock2_h" = yes; then + REPLACE_SELECT=1 *************** *** 22409,22415 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether select supports a 0 argument" >&5 $as_echo_n "checking whether select supports a 0 argument... " >&6; } ! if test "${gl_cv_func_select_supports0+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 24550,24556 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether select supports a 0 argument" >&5 $as_echo_n "checking whether select supports a 0 argument... " >&6; } ! if ${gl_cv_func_select_supports0+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 22473,22479 **** ! GNULIB_SELECT=1 --- 24614,24624 ---- ! ! ! GNULIB_SELECT=1 ! ! *************** *** 22481,22494 **** - # Code from module sigaction: if test $ac_cv_func_sigaction = yes; then ac_fn_c_check_member "$LINENO" "struct sigaction" "sa_sigaction" "ac_cv_member_struct_sigaction_sa_sigaction" "#include " ! if test "x$ac_cv_member_struct_sigaction_sa_sigaction" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SIGACTION_SA_SIGACTION 1 --- 24626,24638 ---- if test $ac_cv_func_sigaction = yes; then ac_fn_c_check_member "$LINENO" "struct sigaction" "sa_sigaction" "ac_cv_member_struct_sigaction_sa_sigaction" "#include " ! if test "x$ac_cv_member_struct_sigaction_sa_sigaction" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SIGACTION_SA_SIGACTION 1 *************** *** 22522,22528 **** #include " ! if test "x$ac_cv_type_siginfo_t" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SIGINFO_T 1 --- 24666,24672 ---- #include " ! if test "x$ac_cv_type_siginfo_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SIGINFO_T 1 *************** *** 22540,22546 **** ! GNULIB_SIGACTION=1 --- 24684,24694 ---- ! ! ! GNULIB_SIGACTION=1 ! ! *************** *** 22548,22554 **** - # Code from module signal: --- 24696,24701 ---- *************** *** 22564,22570 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_signal_h+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 24711,24717 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_signal_h+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 22604,22616 **** # AIX declares sig_atomic_t to already include volatile, and C89 compilers # then choke on 'volatile sig_atomic_t'. C99 requires that it compile. ac_fn_c_check_type "$LINENO" "volatile sig_atomic_t" "ac_cv_type_volatile_sig_atomic_t" " #include " ! if test "x$ac_cv_type_volatile_sig_atomic_t" = x""yes; then : else HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0 --- 24751,24764 ---- + # AIX declares sig_atomic_t to already include volatile, and C89 compilers # then choke on 'volatile sig_atomic_t'. C99 requires that it compile. ac_fn_c_check_type "$LINENO" "volatile sig_atomic_t" "ac_cv_type_volatile_sig_atomic_t" " #include " ! if test "x$ac_cv_type_volatile_sig_atomic_t" = xyes; then : else HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0 *************** *** 22619,22629 **** for gl_func in sigaction sigaddset sigdelset sigemptyset sigfillset sigismember sigpending sigprocmask; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval "test \"\${$as_gl_Symbol+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 24767,24790 ---- + + ac_fn_c_check_type "$LINENO" "sighandler_t" "ac_cv_type_sighandler_t" " + #include + + " + if test "x$ac_cv_type_sighandler_t" = xyes; then : + + else + HAVE_SIGHANDLER_T=0 + fi + + + for gl_func in sigaction sigaddset sigdelset sigemptyset sigfillset sigismember sigpending sigprocmask; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 22659,22665 **** done - # Code from module sigprocmask: signals_not_posix= --- 24820,24825 ---- *************** *** 22678,22684 **** if test -z "$signals_not_posix"; then ac_fn_c_check_func "$LINENO" "sigprocmask" "ac_cv_func_sigprocmask" ! if test "x$ac_cv_func_sigprocmask" = x""yes; then : gl_cv_func_sigprocmask=1 fi --- 24838,24844 ---- if test -z "$signals_not_posix"; then ac_fn_c_check_func "$LINENO" "sigprocmask" "ac_cv_func_sigprocmask" ! if test "x$ac_cv_func_sigprocmask" = xyes; then : gl_cv_func_sigprocmask=1 fi *************** *** 22701,22707 **** /* Mingw defines sigset_t not in , but in . */ #include " ! if test "x$ac_cv_type_sigset_t" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SIGSET_T 1 --- 24861,24867 ---- /* Mingw defines sigset_t not in , but in . */ #include " ! if test "x$ac_cv_type_sigset_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SIGSET_T 1 *************** *** 22722,22728 **** ! GNULIB_SIGPROCMASK=1 --- 24882,24892 ---- ! ! ! GNULIB_SIGPROCMASK=1 ! ! *************** *** 22730,22741 **** - # Code from module size_max: for ac_header in stdint.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" ! if test "x$ac_cv_header_stdint_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H 1 _ACEOF --- 24894,24904 ---- for ac_header in stdint.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" ! if test "x$ac_cv_header_stdint_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H 1 _ACEOF *************** *** 22746,22752 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5 $as_echo_n "checking for SIZE_MAX... " >&6; } ! if test "${gl_cv_size_max+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 24909,24915 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5 $as_echo_n "checking for SIZE_MAX... " >&6; } ! if ${gl_cv_size_max+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 22826,22837 **** fi - # Code from module sleep: ac_fn_c_check_decl "$LINENO" "sleep" "ac_cv_have_decl_sleep" "#include " ! if test "x$ac_cv_have_decl_sleep" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 24989,24999 ---- fi ac_fn_c_check_decl "$LINENO" "sleep" "ac_cv_have_decl_sleep" "#include " ! if test "x$ac_cv_have_decl_sleep" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 22857,22863 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working sleep" >&5 $as_echo_n "checking for working sleep... " >&6; } ! if test "${gl_cv_func_sleep_works+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 25019,25025 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working sleep" >&5 $as_echo_n "checking for working sleep... " >&6; } ! if ${gl_cv_func_sleep_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 22927,22933 **** ! GNULIB_SLEEP=1 --- 25089,25099 ---- ! ! ! GNULIB_SLEEP=1 ! ! *************** *** 22935,22941 **** - # Code from module socketlib: --- 25101,25106 ---- *************** *** 22945,22951 **** for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" ! if test "x$ac_cv_header_winsock2_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF --- 25110,25116 ---- for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" ! if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF *************** *** 22967,22973 **** if test $HAVE_WINSOCK2_H = 1; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need to call WSAStartup in winsock2.h and -lws2_32" >&5 $as_echo_n "checking if we need to call WSAStartup in winsock2.h and -lws2_32... " >&6; } ! if test "${gl_cv_func_wsastartup+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 25132,25138 ---- if test $HAVE_WINSOCK2_H = 1; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need to call WSAStartup in winsock2.h and -lws2_32" >&5 $as_echo_n "checking if we need to call WSAStartup in winsock2.h and -lws2_32... " >&6; } ! if ${gl_cv_func_wsastartup+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 23012,23018 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5 $as_echo_n "checking for library containing setsockopt... " >&6; } ! if test "${gl_cv_lib_socket+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 25177,25183 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5 $as_echo_n "checking for library containing setsockopt... " >&6; } ! if ${gl_cv_lib_socket+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 23121,23127 **** fi - # Code from module sockets: --- 25286,25291 ---- *************** *** 23129,23148 **** : ! # Code from module socklen: ! ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "#include ! #if HAVE_SYS_SOCKET_H ! # include ! #elif HAVE_WS2TCPIP_H ! # include ! #endif " ! if test "x$ac_cv_type_socklen_t" = x""yes; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socklen_t equivalent" >&5 $as_echo_n "checking for socklen_t equivalent... " >&6; } ! if test "${gl_cv_socklen_t_equiv+set}" = set; then : $as_echo_n "(cached) " >&6 else # Systems have either "struct sockaddr *" or --- 25293,25316 ---- : ! ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" " ! /* is not needed according to POSIX, but the ! in i386-unknown-freebsd4.10 and ! powerpc-apple-darwin5.5 required it. */ ! #include ! #if HAVE_SYS_SOCKET_H ! # include ! #elif HAVE_WS2TCPIP_H ! # include ! #endif ! " ! if test "x$ac_cv_type_socklen_t" = xyes; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socklen_t equivalent" >&5 $as_echo_n "checking for socklen_t equivalent... " >&6; } ! if ${gl_cv_socklen_t_equiv+:} false; then : $as_echo_n "(cached) " >&6 else # Systems have either "struct sockaddr *" or *************** *** 23188,23201 **** fi - # Code from module stat: - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on directories" >&5 $as_echo_n "checking whether stat handles trailing slashes on directories... " >&6; } ! if test "${gl_cv_func_stat_dir_slash+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 25356,25367 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on directories" >&5 $as_echo_n "checking whether stat handles trailing slashes on directories... " >&6; } ! if ${gl_cv_func_stat_dir_slash+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 23230,23236 **** $as_echo "$gl_cv_func_stat_dir_slash" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on files" >&5 $as_echo_n "checking whether stat handles trailing slashes on files... " >&6; } ! if test "${gl_cv_func_stat_file_slash+set}" = set; then : $as_echo_n "(cached) " >&6 else touch conftest.tmp --- 25396,25402 ---- $as_echo "$gl_cv_func_stat_dir_slash" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on files" >&5 $as_echo_n "checking whether stat handles trailing slashes on files... " >&6; } ! if ${gl_cv_func_stat_file_slash+:} false; then : $as_echo_n "(cached) " >&6 else touch conftest.tmp *************** *** 23304,23310 **** ! GNULIB_STAT=1 --- 25470,25480 ---- ! ! ! GNULIB_STAT=1 ! ! *************** *** 23312,23318 **** - # Code from module stdbool: --- 25482,25487 ---- *************** *** 23324,23329 **** --- 25493,25506 ---- STDBOOL_H='stdbool.h' fi + if test -n "$STDBOOL_H"; then + GL_GENERATE_STDBOOL_H_TRUE= + GL_GENERATE_STDBOOL_H_FALSE='#' + else + GL_GENERATE_STDBOOL_H_TRUE='#' + GL_GENERATE_STDBOOL_H_FALSE= + fi + if test "$ac_cv_type__Bool" = yes; then HAVE__BOOL=1 *************** *** 23332,23348 **** fi - # Code from module stddef: if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5 $as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; } ! if test "${gl_cv_decl_null_works+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 25509,25525 ---- fi + STDDEF_H= if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5 $as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; } ! if ${gl_cv_decl_null_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 23371,23376 **** --- 25548,25562 ---- REPLACE_NULL=1 STDDEF_H=stddef.h fi + + if test -n "$STDDEF_H"; then + GL_GENERATE_STDDEF_H_TRUE= + GL_GENERATE_STDDEF_H_FALSE='#' + else + GL_GENERATE_STDDEF_H_TRUE='#' + GL_GENERATE_STDDEF_H_FALSE= + fi + if test -n "$STDDEF_H"; then *************** *** 23385,23391 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_stddef_h+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 25571,25577 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_stddef_h+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 23427,23462 **** fi - # Code from module stdint: - - - - if test $ac_cv_type_long_long_int = yes; then - HAVE_LONG_LONG_INT=1 - else - HAVE_LONG_LONG_INT=0 - fi - - - if test $ac_cv_type_unsigned_long_long_int = yes; then - HAVE_UNSIGNED_LONG_LONG_INT=1 - else - HAVE_UNSIGNED_LONG_LONG_INT=0 - fi - - - if test $ac_cv_header_inttypes_h = yes; then - HAVE_INTTYPES_H=1 - else - HAVE_INTTYPES_H=0 - fi - - if test $ac_cv_header_sys_types_h = yes; then - HAVE_SYS_TYPES_H=1 - else - HAVE_SYS_TYPES_H=0 - fi --- 25613,25619 ---- *************** *** 23469,24546 **** if test $gl_cv_have_include_next = yes; then ! gl_cv_next_stdint_h='<'stdint.h'>' else ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 ! $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_stdint_h+set}" = set; then : $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_stdint_h = yes; then - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac ! gl_cv_next_stdint_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | ! sed -n '\#/stdint.h#{ ! s#.*"\(.*/stdint.h\)".*#\1# s#^/[^/]#//&# p q }'`'"' - else - gl_cv_next_stdint_h='<'stdint.h'>' - fi fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5 ! $as_echo "$gl_cv_next_stdint_h" >&6; } fi ! NEXT_STDINT_H=$gl_cv_next_stdint_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' ! gl_next_as_first_directive='<'stdint.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' ! gl_next_as_first_directive=$gl_cv_next_stdint_h fi ! NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive - if test $ac_cv_header_stdint_h = yes; then - HAVE_STDINT_H=1 - else - HAVE_STDINT_H=0 - fi ! if test $ac_cv_header_stdint_h = yes; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5 ! $as_echo_n "checking whether stdint.h conforms to C99... " >&6; } ! if test "${gl_cv_header_working_stdint_h+set}" = set; then : $as_echo_n "(cached) " >&6 else ! gl_cv_header_working_stdint_h=no ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */ - #define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */ - #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ - #include - /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in . */ - #if !(defined WCHAR_MIN && defined WCHAR_MAX) - #error "WCHAR_MIN, WCHAR_MAX not defined in " - #endif - /* BSD/OS 4.0.1 has a bug: , and must be - included before . */ - #include - #include - #if HAVE_WCHAR_H - # include - # include - # include - #endif - #ifdef INT8_MAX - int8_t a1 = INT8_MAX; - int8_t a1min = INT8_MIN; - #endif - #ifdef INT16_MAX - int16_t a2 = INT16_MAX; - int16_t a2min = INT16_MIN; - #endif - #ifdef INT32_MAX - int32_t a3 = INT32_MAX; - int32_t a3min = INT32_MIN; - #endif - #ifdef INT64_MAX - int64_t a4 = INT64_MAX; - int64_t a4min = INT64_MIN; - #endif - #ifdef UINT8_MAX - uint8_t b1 = UINT8_MAX; - #else - typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; - #endif - #ifdef UINT16_MAX - uint16_t b2 = UINT16_MAX; - #endif - #ifdef UINT32_MAX - uint32_t b3 = UINT32_MAX; - #endif - #ifdef UINT64_MAX - uint64_t b4 = UINT64_MAX; - #endif - int_least8_t c1 = INT8_C (0x7f); - int_least8_t c1max = INT_LEAST8_MAX; - int_least8_t c1min = INT_LEAST8_MIN; - int_least16_t c2 = INT16_C (0x7fff); - int_least16_t c2max = INT_LEAST16_MAX; - int_least16_t c2min = INT_LEAST16_MIN; - int_least32_t c3 = INT32_C (0x7fffffff); - int_least32_t c3max = INT_LEAST32_MAX; - int_least32_t c3min = INT_LEAST32_MIN; - int_least64_t c4 = INT64_C (0x7fffffffffffffff); - int_least64_t c4max = INT_LEAST64_MAX; - int_least64_t c4min = INT_LEAST64_MIN; - uint_least8_t d1 = UINT8_C (0xff); - uint_least8_t d1max = UINT_LEAST8_MAX; - uint_least16_t d2 = UINT16_C (0xffff); - uint_least16_t d2max = UINT_LEAST16_MAX; - uint_least32_t d3 = UINT32_C (0xffffffff); - uint_least32_t d3max = UINT_LEAST32_MAX; - uint_least64_t d4 = UINT64_C (0xffffffffffffffff); - uint_least64_t d4max = UINT_LEAST64_MAX; - int_fast8_t e1 = INT_FAST8_MAX; - int_fast8_t e1min = INT_FAST8_MIN; - int_fast16_t e2 = INT_FAST16_MAX; - int_fast16_t e2min = INT_FAST16_MIN; - int_fast32_t e3 = INT_FAST32_MAX; - int_fast32_t e3min = INT_FAST32_MIN; - int_fast64_t e4 = INT_FAST64_MAX; - int_fast64_t e4min = INT_FAST64_MIN; - uint_fast8_t f1 = UINT_FAST8_MAX; - uint_fast16_t f2 = UINT_FAST16_MAX; - uint_fast32_t f3 = UINT_FAST32_MAX; - uint_fast64_t f4 = UINT_FAST64_MAX; - #ifdef INTPTR_MAX - intptr_t g = INTPTR_MAX; - intptr_t gmin = INTPTR_MIN; - #endif - #ifdef UINTPTR_MAX - uintptr_t h = UINTPTR_MAX; - #endif - intmax_t i = INTMAX_MAX; - uintmax_t j = UINTMAX_MAX; - #include /* for CHAR_BIT */ - #define TYPE_MINIMUM(t) \ - ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) - #define TYPE_MAXIMUM(t) \ - ((t) ((t) 0 < (t) -1 \ - ? (t) -1 \ - : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) - struct s { - int check_PTRDIFF: - PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) - && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) - ? 1 : -1; - /* Detect bug in FreeBSD 6.0 / ia64. */ - int check_SIG_ATOMIC: - SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) - && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) - ? 1 : -1; - int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; - int check_WCHAR: - WCHAR_MIN == TYPE_MINIMUM (wchar_t) - && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) - ? 1 : -1; - /* Detect bug in mingw. */ - int check_WINT: - WINT_MIN == TYPE_MINIMUM (wint_t) - && WINT_MAX == TYPE_MAXIMUM (wint_t) - ? 1 : -1; - /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ - int check_UINT8_C: - (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; - int check_UINT16_C: - (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; - /* Detect bugs in OpenBSD 3.9 stdint.h. */ - #ifdef UINT8_MAX - int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; - #endif - #ifdef UINT16_MAX - int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; - #endif - #ifdef UINT32_MAX - int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; - #endif - #ifdef UINT64_MAX - int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; - #endif - int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; - int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; - int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; - int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; - int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; - int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; - int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; - int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; - int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; - int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; - int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; - }; - int - main () - { - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - if test "$cross_compiling" = yes; then : - gl_cv_header_working_stdint_h=yes else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */ - #define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */ - #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ - #include ! /* BSD/OS 4.0.1 has a bug: , and must be ! included before . */ ! #include ! #include ! #if HAVE_WCHAR_H ! # include ! # include ! # include ! #endif ! #include ! #include ! #define MVAL(macro) MVAL1(macro) ! #define MVAL1(expression) #expression ! static const char *macro_values[] = ! { ! #ifdef INT8_MAX ! MVAL (INT8_MAX), ! #endif ! #ifdef INT16_MAX ! MVAL (INT16_MAX), ! #endif ! #ifdef INT32_MAX ! MVAL (INT32_MAX), ! #endif ! #ifdef INT64_MAX ! MVAL (INT64_MAX), ! #endif ! #ifdef UINT8_MAX ! MVAL (UINT8_MAX), ! #endif ! #ifdef UINT16_MAX ! MVAL (UINT16_MAX), ! #endif ! #ifdef UINT32_MAX ! MVAL (UINT32_MAX), #endif ! #ifdef UINT64_MAX ! MVAL (UINT64_MAX), #endif - NULL - }; int main () { ! ! const char **mv; ! for (mv = macro_values; *mv != NULL; mv++) ! { ! const char *value = *mv; ! /* Test whether it looks like a cast expression. */ ! if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 ! || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 ! || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 ! || strncmp (value, "((int)"/*)*/, 6) == 0 ! || strncmp (value, "((signed short)"/*)*/, 15) == 0 ! || strncmp (value, "((signed char)"/*)*/, 14) == 0) ! return mv - macro_values + 1; ! } ! return 0; ! ; return 0; } _ACEOF ! if ac_fn_c_try_run "$LINENO"; then : ! gl_cv_header_working_stdint_h=yes ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5 ! $as_echo "$gl_cv_header_working_stdint_h" >&6; } ! fi ! if test "$gl_cv_header_working_stdint_h" = yes; then ! STDINT_H= ! else ! for ac_header in sys/inttypes.h sys/bitypes.h ! do : ! as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ! ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ! if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF ! #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi - done - if test $ac_cv_header_sys_inttypes_h = yes; then - HAVE_SYS_INTTYPES_H=1 - else - HAVE_SYS_INTTYPES_H=0 - fi - if test $ac_cv_header_sys_bitypes_h = yes; then - HAVE_SYS_BITYPES_H=1 - else - HAVE_SYS_BITYPES_H=0 - fi - if test $APPLE_UNIVERSAL_BUILD = 0; then - for gltype in ptrdiff_t size_t ; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 - $as_echo_n "checking for bit size of $gltype... " >&6; } - if eval "test \"\${gl_cv_bitsizeof_${gltype}+set}\"" = set; then : - $as_echo_n "(cached) " >&6 - else - if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " - /* BSD/OS 4.0.1 has a bug: , and must be - included before . */ - #include - #include - #if HAVE_WCHAR_H - # include - # include - # include - #endif - #include "; then : - else - result=unknown - fi ! eval gl_cv_bitsizeof_${gltype}=\$result ! fi ! eval ac_res=\$gl_cv_bitsizeof_${gltype} ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! eval result=\$gl_cv_bitsizeof_${gltype} ! if test $result = unknown; then ! result=0 fi ! GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` ! cat >>confdefs.h <<_ACEOF ! #define BITSIZEOF_${GLTYPE} $result ! _ACEOF - eval BITSIZEOF_${GLTYPE}=\$result - done fi - for gltype in sig_atomic_t wchar_t wint_t ; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 - $as_echo_n "checking for bit size of $gltype... " >&6; } - if eval "test \"\${gl_cv_bitsizeof_${gltype}+set}\"" = set; then : - $as_echo_n "(cached) " >&6 - else - if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " - /* BSD/OS 4.0.1 has a bug: , and must be - included before . */ - #include - #include - #if HAVE_WCHAR_H - # include - # include - # include - #endif - #include "; then : - else - result=unknown - fi - eval gl_cv_bitsizeof_${gltype}=\$result - fi - eval ac_res=\$gl_cv_bitsizeof_${gltype} - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 - $as_echo "$ac_res" >&6; } - eval result=\$gl_cv_bitsizeof_${gltype} - if test $result = unknown; then - result=0 - fi - GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` - cat >>confdefs.h <<_ACEOF - #define BITSIZEOF_${GLTYPE} $result - _ACEOF ! eval BITSIZEOF_${GLTYPE}=\$result ! done ! for gltype in sig_atomic_t wchar_t wint_t ; do ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5 ! $as_echo_n "checking whether $gltype is signed... " >&6; } ! if eval "test \"\${gl_cv_type_${gltype}_signed+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - /* BSD/OS 4.0.1 has a bug: , and must be - included before . */ - #include - #include - #if HAVE_WCHAR_H - # include - # include - # include - #endif - - int verify[2 * (($gltype) -1 < ($gltype) 0) - 1]; int main () { ! ; return 0; } _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ! result=yes else ! result=no fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! eval gl_cv_type_${gltype}_signed=\$result ! fi - eval ac_res=\$gl_cv_type_${gltype}_signed - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 - $as_echo "$ac_res" >&6; } - eval result=\$gl_cv_type_${gltype}_signed - GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` - if test "$result" = yes; then - cat >>confdefs.h <<_ACEOF - #define HAVE_SIGNED_${GLTYPE} 1 - _ACEOF ! eval HAVE_SIGNED_${GLTYPE}=1 ! else ! eval HAVE_SIGNED_${GLTYPE}=0 fi - done ! gl_cv_type_ptrdiff_t_signed=yes ! gl_cv_type_size_t_signed=no ! if test $APPLE_UNIVERSAL_BUILD = 0; then - for gltype in ptrdiff_t size_t ; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 - $as_echo_n "checking for $gltype integer literal suffix... " >&6; } - if eval "test \"\${gl_cv_type_${gltype}_suffix+set}\"" = set; then : - $as_echo_n "(cached) " >&6 - else - eval gl_cv_type_${gltype}_suffix=no - eval result=\$gl_cv_type_${gltype}_signed - if test "$result" = yes; then - glsufu= - else - glsufu=u - fi - for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do - case $glsuf in - '') gltype1='int';; - l) gltype1='long int';; - ll) gltype1='long long int';; - i64) gltype1='__int64';; - u) gltype1='unsigned int';; - ul) gltype1='unsigned long int';; - ull) gltype1='unsigned long long int';; - ui64)gltype1='unsigned __int64';; - esac - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - /* BSD/OS 4.0.1 has a bug: , and must be - included before . */ - #include - #include - #if HAVE_WCHAR_H - # include - # include - # include - #endif - extern $gltype foo; - extern $gltype1 foo; - int - main () - { ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ! eval gl_cv_type_${gltype}_suffix=\$glsuf ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! eval result=\$gl_cv_type_${gltype}_suffix ! test "$result" != no && break ! done fi ! eval ac_res=\$gl_cv_type_${gltype}_suffix ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` ! eval result=\$gl_cv_type_${gltype}_suffix ! test "$result" = no && result= ! eval ${GLTYPE}_SUFFIX=\$result ! cat >>confdefs.h <<_ACEOF ! #define ${GLTYPE}_SUFFIX $result _ACEOF - done - fi - for gltype in sig_atomic_t wchar_t wint_t ; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 - $as_echo_n "checking for $gltype integer literal suffix... " >&6; } - if eval "test \"\${gl_cv_type_${gltype}_suffix+set}\"" = set; then : - $as_echo_n "(cached) " >&6 - else - eval gl_cv_type_${gltype}_suffix=no - eval result=\$gl_cv_type_${gltype}_signed - if test "$result" = yes; then - glsufu= - else - glsufu=u - fi - for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do - case $glsuf in - '') gltype1='int';; - l) gltype1='long int';; - ll) gltype1='long long int';; - i64) gltype1='__int64';; - u) gltype1='unsigned int';; - ul) gltype1='unsigned long int';; - ull) gltype1='unsigned long long int';; - ui64)gltype1='unsigned __int64';; - esac - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - /* BSD/OS 4.0.1 has a bug: , and must be - included before . */ - #include - #include - #if HAVE_WCHAR_H - # include - # include - # include - #endif - - extern $gltype foo; - extern $gltype1 foo; - int - main () - { - - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - eval gl_cv_type_${gltype}_suffix=\$glsuf - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - eval result=\$gl_cv_type_${gltype}_suffix - test "$result" != no && break - done - fi - eval ac_res=\$gl_cv_type_${gltype}_suffix - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 - $as_echo "$ac_res" >&6; } - GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` - eval result=\$gl_cv_type_${gltype}_suffix - test "$result" = no && result= - eval ${GLTYPE}_SUFFIX=\$result - cat >>confdefs.h <<_ACEOF - #define ${GLTYPE}_SUFFIX $result - _ACEOF - - done - - - - STDINT_H=stdint.h - fi - - - # Code from module stdio: - - - - - - - - - - - - - if test $gl_cv_have_include_next = yes; then - gl_cv_next_stdio_h='<'stdio.h'>' - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 - $as_echo_n "checking absolute name of ... " >&6; } - if test "${gl_cv_next_stdio_h+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - - _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_stdio_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/stdio.h#{ - s#.*"\(.*/stdio.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdio_h" >&5 - $as_echo "$gl_cv_next_stdio_h" >&6; } - fi - NEXT_STDIO_H=$gl_cv_next_stdio_h - - if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'stdio.h'>' - else - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_stdio_h - fi - NEXT_AS_FIRST_DIRECTIVE_STDIO_H=$gl_next_as_first_directive - - - - - GNULIB_FPRINTF=1 - GNULIB_PRINTF=1 - GNULIB_VFPRINTF=1 - GNULIB_VPRINTF=1 - GNULIB_FPUTC=1 - GNULIB_PUTC=1 - GNULIB_PUTCHAR=1 - GNULIB_FPUTS=1 - GNULIB_PUTS=1 - GNULIB_FWRITE=1 - - - - for gl_func in dprintf fpurge fseeko ftello getdelim getline popen renameat snprintf tmpfile vdprintf vsnprintf; do - as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 - $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } - if eval "test \"\${$as_gl_Symbol+set}\"" = set; then : - $as_echo_n "(cached) " >&6 - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - - int - main () - { - #undef $gl_func - (void) $gl_func; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - eval "$as_gl_Symbol=yes" - else - eval "$as_gl_Symbol=no" - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - eval ac_res=\$$as_gl_Symbol - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 - $as_echo "$ac_res" >&6; } - if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF - #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 - _ACEOF - - eval ac_cv_have_decl_$gl_func=yes - fi - done - - - # Code from module stdlib: - - - - - - - - - - - if test $gl_cv_have_include_next = yes; then - gl_cv_next_stdlib_h='<'stdlib.h'>' - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 - $as_echo_n "checking absolute name of ... " >&6; } - if test "${gl_cv_next_stdlib_h+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - - _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_stdlib_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/stdlib.h#{ - s#.*"\(.*/stdlib.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdlib_h" >&5 - $as_echo "$gl_cv_next_stdlib_h" >&6; } - fi - NEXT_STDLIB_H=$gl_cv_next_stdlib_h - - if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'stdlib.h'>' - else - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_stdlib_h - fi - NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive - - - - - for ac_header in random.h - do : - ac_fn_c_check_header_compile "$LINENO" "random.h" "ac_cv_header_random_h" "$ac_includes_default - " - if test "x$ac_cv_header_random_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF - #define HAVE_RANDOM_H 1 - _ACEOF - - fi - - done - if test $ac_cv_header_random_h = yes; then - HAVE_RANDOM_H=1 - else - HAVE_RANDOM_H=0 - fi ! ac_fn_c_check_type "$LINENO" "struct random_data" "ac_cv_type_struct_random_data" "#include ! #if HAVE_RANDOM_H ! # include ! #endif - " - if test "x$ac_cv_type_struct_random_data" = x""yes; then : - cat >>confdefs.h <<_ACEOF - #define HAVE_STRUCT_RANDOM_DATA 1 - _ACEOF - else - HAVE_STRUCT_RANDOM_DATA=0 - fi - for gl_func in _Exit atoll canonicalize_file_name getloadavg getsubopt grantpt mkdtemp mkostemp mkostemps mkstemp mkstemps ptsname random_r initstat_r srandom_r setstate_r realpath rpmatch setenv strtod strtoll strtoull unlockpt unsetenv; do - as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 - $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } - if eval "test \"\${$as_gl_Symbol+set}\"" = set; then : - $as_echo_n "(cached) " >&6 - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - #if HAVE_SYS_LOADAVG_H - # include - #endif - #if HAVE_RANDOM_H - # include - #endif - int - main () - { - #undef $gl_func - (void) $gl_func; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - eval "$as_gl_Symbol=yes" - else - eval "$as_gl_Symbol=no" - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - eval ac_res=\$$as_gl_Symbol - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 - $as_echo "$ac_res" >&6; } - if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF - #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 - _ACEOF ! eval ac_cv_have_decl_$gl_func=yes ! fi ! done - # Code from module strcase: ! for ac_func in strcasecmp do : ! ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" ! if test "x$ac_cv_func_strcasecmp" = x""yes; then : cat >>confdefs.h <<_ACEOF ! #define HAVE_STRCASECMP 1 _ACEOF - else - - gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" - fi - done - - - if test $ac_cv_func_strcasecmp = no; then - HAVE_STRCASECMP=0 - - : - - fi - - - - - - - - - - - - for ac_func in strncasecmp - do : - ac_fn_c_check_func "$LINENO" "strncasecmp" "ac_cv_func_strncasecmp" - if test "x$ac_cv_func_strncasecmp" = x""yes; then : - cat >>confdefs.h <<_ACEOF - #define HAVE_STRNCASECMP 1 - _ACEOF - - else - gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" - - fi done - - if test $ac_cv_func_strncasecmp = no; then - - : - - fi - ac_fn_c_check_decl "$LINENO" "strncasecmp" "ac_cv_have_decl_strncasecmp" "$ac_includes_default" - if test "x$ac_cv_have_decl_strncasecmp" = x""yes; then : - ac_have_decl=1 - else - ac_have_decl=0 - fi - - cat >>confdefs.h <<_ACEOF - #define HAVE_DECL_STRNCASECMP $ac_have_decl - _ACEOF - - if test $ac_cv_have_decl_strncasecmp = no; then - HAVE_DECL_STRNCASECMP=0 fi ! ! ! # Code from module strdup-posix: ! ! ! ! ! if test $ac_cv_func_strdup = yes; then ! if test $gl_cv_func_malloc_posix != yes; then ! REPLACE_STRDUP=1 ! ! ! ! ! ! ! ! ! gl_LIBOBJS="$gl_LIBOBJS strdup.$ac_objext" ! ! : ! fi else ! ! ! ! ! ! ! ! ! gl_LIBOBJS="$gl_LIBOBJS strdup.$ac_objext" ! ! : ! fi ! ! if test $ac_cv_have_decl_strdup = no; then ! HAVE_DECL_STRDUP=0 ! fi ! ! ! ! ! GNULIB_STRDUP=1 ! ! ! ! $as_echo "#define GNULIB_TEST_STRDUP 1" >>confdefs.h ! ! ! ! # Code from module streq: ! # Code from module strerror: ! ! ! if test $REPLACE_STRERROR = 1; then ! ! ! ! ! ! ! ! ! gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext" ! ! ! cat >>confdefs.h <<_ACEOF ! #define REPLACE_STRERROR $REPLACE_STRERROR ! _ACEOF ! fi ! ! ! GNULIB_STRERROR=1 ! ! ! ! $as_echo "#define GNULIB_TEST_STRERROR 1" >>confdefs.h ! ! ! ! # Code from module strftime: --- 25626,26025 ---- if test $gl_cv_have_include_next = yes; then ! gl_cv_next_stdio_h='<'stdio.h'>' else ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 ! $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_stdio_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac ! gl_cv_next_stdio_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | ! sed -n '\#/stdio.h#{ ! s#.*"\(.*/stdio.h\)".*#\1# s#^/[^/]#//&# p q }'`'"' fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdio_h" >&5 ! $as_echo "$gl_cv_next_stdio_h" >&6; } fi ! NEXT_STDIO_H=$gl_cv_next_stdio_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' ! gl_next_as_first_directive='<'stdio.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' ! gl_next_as_first_directive=$gl_cv_next_stdio_h fi ! NEXT_AS_FIRST_DIRECTIVE_STDIO_H=$gl_next_as_first_directive + GNULIB_FSCANF=1 + GNULIB_SCANF=1 + GNULIB_FGETC=1 + GNULIB_GETC=1 + GNULIB_GETCHAR=1 + GNULIB_FGETS=1 + GNULIB_GETS=1 + GNULIB_FREAD=1 ! ! GNULIB_FPRINTF=1 ! GNULIB_PRINTF=1 ! GNULIB_VFPRINTF=1 ! GNULIB_VPRINTF=1 ! GNULIB_FPUTC=1 ! GNULIB_PUTC=1 ! GNULIB_PUTCHAR=1 ! GNULIB_FPUTS=1 ! GNULIB_PUTS=1 ! GNULIB_FWRITE=1 ! ! ! ! ! for gl_func in dprintf fpurge fseeko ftello getdelim getline popen renameat snprintf tmpfile vdprintf vsnprintf; do ! as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 ! $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ + #include + + int + main () + { + #undef $gl_func + (void) $gl_func; + ; + return 0; + } + _ACEOF + if ac_fn_c_try_compile "$LINENO"; then : + eval "$as_gl_Symbol=yes" + else + eval "$as_gl_Symbol=no" + fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + eval ac_res=\$$as_gl_Symbol + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } + if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 + _ACEOF + + eval ac_cv_have_decl_$gl_func=yes + fi + done + if test $gl_cv_have_include_next = yes; then + gl_cv_next_stdlib_h='<'stdlib.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 + $as_echo_n "checking absolute name of ... " >&6; } + if ${gl_cv_next_stdlib_h+:} false; then : + $as_echo_n "(cached) " >&6 else ! ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ + #include + _ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_stdlib_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/stdlib.h#{ + s#.*"\(.*/stdlib.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdlib_h" >&5 + $as_echo "$gl_cv_next_stdlib_h" >&6; } + fi + NEXT_STDLIB_H=$gl_cv_next_stdlib_h ! if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then ! # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' ! gl_next_as_first_directive='<'stdlib.h'>' ! else ! # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' ! gl_next_as_first_directive=$gl_cv_next_stdlib_h ! fi ! NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive ! ! ! ! ! for gl_func in _Exit atoll canonicalize_file_name getloadavg getsubopt grantpt mkdtemp mkostemp mkostemps mkstemp mkstemps ptsname random_r initstat_r srandom_r setstate_r realpath rpmatch setenv strtod strtoll strtoull unlockpt unsetenv; do ! as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 ! $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval \${$as_gl_Symbol+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! #include ! #if HAVE_SYS_LOADAVG_H ! # include #endif ! #if HAVE_RANDOM_H ! # include #endif int main () { ! #undef $gl_func ! (void) $gl_func; ; return 0; } _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ! eval "$as_gl_Symbol=yes" ! else ! eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ! eval ac_res=\$$as_gl_Symbol ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF ! #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF + eval ac_cv_have_decl_$gl_func=yes fi + done + if test $ac_cv_func_strdup = yes; then + if test $gl_cv_func_malloc_posix != yes; then + REPLACE_STRDUP=1 ! gl_LIBOBJS="$gl_LIBOBJS strdup.$ac_objext" ! : fi ! else ! ! ! ! + + gl_LIBOBJS="$gl_LIBOBJS strdup.$ac_objext" + + : fi + if test $ac_cv_have_decl_strdup = no; then + HAVE_DECL_STRDUP=0 + fi ! GNULIB_STRDUP=1 ! ! $as_echo "#define GNULIB_TEST_STRDUP 1" >>confdefs.h ! ! ! ! ! ! ! ! if test -z "$ERRNO_H"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5 ! $as_echo_n "checking for working strerror function... " >&6; } ! if ${gl_cv_func_working_strerror+:} false; then : $as_echo_n "(cached) " >&6 else + if test "$cross_compiling" = yes; then : + gl_cv_func_working_strerror=no + else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ + #include + #include int main () { ! int result = 0; ! char *str; ! if (!*strerror (-2)) result |= 1; ! errno = 0; ! str = strerror (0); ! if (!*str) result |= 2; ! if (errno) result |= 4; ! if (strstr (str, "nknown") || strstr (str, "ndefined")) ! result |= 8; ! return result; ; return 0; } _ACEOF ! if ac_fn_c_try_run "$LINENO"; then : ! gl_cv_func_working_strerror=yes else ! gl_cv_func_working_strerror=no fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext fi ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_strerror" >&5 ! $as_echo "$gl_cv_func_working_strerror" >&6; } ! if test $gl_cv_func_working_strerror = no; then ! REPLACE_STRERROR=1 fi + else + REPLACE_STRERROR=1 + fi ! if test $REPLACE_STRERROR = 1; then ! ! ! ! gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext" ! fi ! ! ! cat >>confdefs.h <<_ACEOF ! #define GNULIB_STRERROR 1 _ACEOF ! GNULIB_STRERROR=1 + $as_echo "#define GNULIB_TEST_STRERROR 1" >>confdefs.h ! if test -n "$ERRNO_H"; then + gl_LIBOBJS="$gl_LIBOBJS strerror-override.$ac_objext" ! if test $ac_cv_header_sys_socket_h != yes; then ! for ac_header in winsock2.h do : ! ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" ! if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF ! #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi ! if test "$ac_cv_header_winsock2_h" = yes; then ! HAVE_WINSOCK2_H=1 ! UNISTD_H_HAVE_WINSOCK2_H=1 ! SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else ! HAVE_WINSOCK2_H=0 fi ! fi *************** *** 24566,24582 **** - # Code from module string: - - - # Code from module strings: - # Code from module strnlen1: - # Code from module strptime: - --- 26045,26054 ---- *************** *** 24601,24607 **** ! GNULIB_STRPTIME=1 --- 26073,26083 ---- ! ! ! GNULIB_STRPTIME=1 ! ! *************** *** 24609,24615 **** - # Code from module symlink: --- 26085,26090 ---- *************** *** 24628,24634 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether symlink handles trailing slash correctly" >&5 $as_echo_n "checking whether symlink handles trailing slash correctly... " >&6; } ! if test "${gl_cv_func_symlink_works+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 26103,26109 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether symlink handles trailing slash correctly" >&5 $as_echo_n "checking whether symlink handles trailing slash correctly... " >&6; } ! if ${gl_cv_func_symlink_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 24685,24691 **** ! GNULIB_SYMLINK=1 --- 26160,26170 ---- ! ! ! GNULIB_SYMLINK=1 ! ! *************** *** 24693,24705 **** - # Code from module sys_select: { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether is self-contained" >&5 $as_echo_n "checking whether is self-contained... " >&6; } ! if test "${gl_cv_header_sys_select_h_selfcontained+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 26172,26183 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether is self-contained" >&5 $as_echo_n "checking whether is self-contained... " >&6; } ! if ${gl_cv_header_sys_select_h_selfcontained+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 24784,24790 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_sys_select_h+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 26262,26268 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_sys_select_h+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 24844,24850 **** for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" ! if test "x$ac_cv_header_winsock2_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF --- 26322,26328 ---- for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" ! if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF *************** *** 24869,24875 **** as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval "test \"\${$as_gl_Symbol+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 26347,26353 ---- as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 24912,24918 **** - # Code from module sys_socket: --- 26390,26395 ---- *************** *** 24928,24934 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether is self-contained" >&5 $as_echo_n "checking whether is self-contained... " >&6; } ! if test "${gl_cv_header_sys_socket_h_selfcontained+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 26405,26411 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether is self-contained" >&5 $as_echo_n "checking whether is self-contained... " >&6; } ! if ${gl_cv_header_sys_socket_h_selfcontained+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 24957,24963 **** for ac_func in shutdown do : ac_fn_c_check_func "$LINENO" "shutdown" "ac_cv_func_shutdown" ! if test "x$ac_cv_func_shutdown" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SHUTDOWN 1 _ACEOF --- 26434,26440 ---- for ac_func in shutdown do : ac_fn_c_check_func "$LINENO" "shutdown" "ac_cv_func_shutdown" ! if test "x$ac_cv_func_shutdown" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SHUTDOWN 1 _ACEOF *************** *** 24968,24974 **** if test $ac_cv_func_shutdown = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether defines the SHUT_* macros" >&5 $as_echo_n "checking whether defines the SHUT_* macros... " >&6; } ! if test "${gl_cv_header_sys_socket_h_shut+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 26445,26451 ---- if test $ac_cv_func_shutdown = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether defines the SHUT_* macros" >&5 $as_echo_n "checking whether defines the SHUT_* macros... " >&6; } ! if ${gl_cv_header_sys_socket_h_shut+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 25009,25020 **** if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_socket_h='<'sys/socket.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_sys_socket_h+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 26486,26498 ---- + if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_socket_h='<'sys/socket.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_sys_socket_h+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 25065,25082 **** HAVE_WS2TCPIP_H=0 else HAVE_SYS_SOCKET_H=0 - for ac_header in ws2tcpip.h - do : - ac_fn_c_check_header_mongrel "$LINENO" "ws2tcpip.h" "ac_cv_header_ws2tcpip_h" "$ac_includes_default" - if test "x$ac_cv_header_ws2tcpip_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF - #define HAVE_WS2TCPIP_H 1 - _ACEOF - - fi - - done - if test $ac_cv_header_ws2tcpip_h = yes; then HAVE_WS2TCPIP_H=1 else --- 26543,26548 ---- *************** *** 25099,25105 **** #endif " ! if test "x$ac_cv_type_struct_sockaddr_storage" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SOCKADDR_STORAGE 1 --- 26565,26571 ---- #endif " ! if test "x$ac_cv_type_struct_sockaddr_storage" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SOCKADDR_STORAGE 1 *************** *** 25120,25126 **** #endif " ! if test "x$ac_cv_type_sa_family_t" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SA_FAMILY_T 1 --- 26586,26592 ---- #endif " ! if test "x$ac_cv_type_sa_family_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SA_FAMILY_T 1 *************** *** 25145,25151 **** #endif " ! if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1 --- 26611,26617 ---- #endif " ! if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1 *************** *** 25169,25175 **** for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" ! if test "x$ac_cv_header_winsock2_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF --- 26635,26641 ---- for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" ! if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF *************** *** 25194,25200 **** as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval "test \"\${$as_gl_Symbol+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 26660,26666 ---- as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 25234,25240 **** - # Code from module sys_stat: --- 26700,26705 ---- *************** *** 25256,25262 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_sys_stat_h+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 26721,26727 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_sys_stat_h+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 25306,25312 **** ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include #include " ! if test "x$ac_cv_type_nlink_t" = x""yes; then : else --- 26771,26777 ---- ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include #include " ! if test "x$ac_cv_type_nlink_t" = xyes; then : else *************** *** 25320,25326 **** as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval "test \"\${$as_gl_Symbol+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 26785,26791 ---- as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 25357,25368 **** - # Code from module sys_time: - # Code from module sys_times: --- 26822,26831 ---- *************** *** 25380,25386 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_sys_times_h+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 26843,26849 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_sys_times_h+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 25432,25438 **** #include " ! if test "x$ac_cv_type_struct_tms" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_TMS 1 --- 26895,26901 ---- #include " ! if test "x$ac_cv_type_struct_tms" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_TMS 1 *************** *** 25454,25460 **** as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval "test \"\${$as_gl_Symbol+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 26917,26923 ---- as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 25496,25502 **** ! # Code from module tempname: --- 26959,27034 ---- ! ! ! ! ! ! ! ! ! ! ! ! if test $gl_cv_have_include_next = yes; then ! gl_cv_next_sys_uio_h='<'sys/uio.h'>' ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 ! $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_sys_uio_h+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ! if test $ac_cv_header_sys_uio_h = yes; then ! ! ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! #include ! ! _ACEOF ! case "$host_os" in ! aix*) gl_absname_cpp="$ac_cpp -C" ;; ! *) gl_absname_cpp="$ac_cpp" ;; ! esac ! gl_cv_next_sys_uio_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | ! sed -n '\#/sys/uio.h#{ ! s#.*"\(.*/sys/uio.h\)".*#\1# ! s#^/[^/]#//&# ! p ! q ! }'`'"' ! else ! gl_cv_next_sys_uio_h='<'sys/uio.h'>' ! fi ! ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_uio_h" >&5 ! $as_echo "$gl_cv_next_sys_uio_h" >&6; } ! fi ! NEXT_SYS_UIO_H=$gl_cv_next_sys_uio_h ! ! if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then ! # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' ! gl_next_as_first_directive='<'sys/uio.h'>' ! else ! # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' ! gl_next_as_first_directive=$gl_cv_next_sys_uio_h ! fi ! NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H=$gl_next_as_first_directive ! ! ! ! ! if test $ac_cv_header_sys_uio_h = yes; then ! HAVE_SYS_UIO_H=1 ! else ! HAVE_SYS_UIO_H=0 ! fi ! ! ! *************** *** 25514,25524 **** : - # Code from module time: - # Code from module time_r: --- 27046,27054 ---- *************** *** 25535,25541 **** HAVE_LOCALTIME_R=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether localtime_r is compatible with its POSIX signature" >&5 $as_echo_n "checking whether localtime_r is compatible with its POSIX signature... " >&6; } ! if test "${gl_cv_time_r_posix+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 27065,27071 ---- HAVE_LOCALTIME_R=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether localtime_r is compatible with its POSIX signature" >&5 $as_echo_n "checking whether localtime_r is compatible with its POSIX signature... " >&6; } ! if ${gl_cv_time_r_posix+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 25594,25600 **** ! GNULIB_TIME_R=1 --- 27124,27134 ---- ! ! ! GNULIB_TIME_R=1 ! ! *************** *** 25602,25608 **** - # Code from module times: --- 27136,27141 ---- *************** *** 25623,25639 **** - GNULIB_TIMES=1 ! # Code from module trunc: ! ac_fn_c_check_decl "$LINENO" "trunc" "ac_cv_have_decl_trunc" "#include ! " ! if test "x$ac_cv_have_decl_trunc" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 27156,27175 ---- ! GNULIB_TIMES=1 ! ! ! ! ! ac_fn_c_check_decl "$LINENO" "trunc" "ac_cv_have_decl_trunc" "#include ! " ! if test "x$ac_cv_have_decl_trunc" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 25715,25721 **** ! GNULIB_TRUNC=1 --- 27251,27261 ---- ! ! ! GNULIB_TRUNC=1 ! ! *************** *** 25723,25736 **** - # Code from module truncf: ac_fn_c_check_decl "$LINENO" "truncf" "ac_cv_have_decl_truncf" "#include " ! if test "x$ac_cv_have_decl_truncf" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 27263,27275 ---- ac_fn_c_check_decl "$LINENO" "truncf" "ac_cv_have_decl_truncf" "#include " ! if test "x$ac_cv_have_decl_truncf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 25812,25818 **** ! GNULIB_TRUNCF=1 --- 27351,27361 ---- ! ! ! GNULIB_TRUNCF=1 ! ! *************** *** 25820,25826 **** - # Code from module unistd: --- 27363,27368 ---- *************** *** 25839,25845 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_unistd_h+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 27381,27387 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_unistd_h+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 25893,25903 **** ! for gl_func in chown dup2 dup3 environ euidaccess faccessat fchdir fchownat fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getusershell setusershell endusershell lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sleep symlink symlinkat ttyname_r unlink unlinkat usleep; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval "test \"\${$as_gl_Symbol+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 27435,27445 ---- ! for gl_func in chown dup2 dup3 environ euidaccess faccessat fchdir fchownat fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getusershell setusershell endusershell group_member lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sleep symlink symlinkat ttyname_r unlink unlinkat usleep; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 25942,25948 **** done - # Code from module unistd-safer: --- 27484,27489 ---- *************** *** 25976,25989 **** gl_LIBOBJS="$gl_LIBOBJS pipe-safer.$ac_objext" - # Code from module unlink: - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unlink honors trailing slashes" >&5 $as_echo_n "checking whether unlink honors trailing slashes... " >&6; } ! if test "${gl_cv_func_unlink_honors_slashes+set}" = set; then : $as_echo_n "(cached) " >&6 else touch conftest.file --- 27517,27528 ---- gl_LIBOBJS="$gl_LIBOBJS pipe-safer.$ac_objext" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unlink honors trailing slashes" >&5 $as_echo_n "checking whether unlink honors trailing slashes... " >&6; } ! if ${gl_cv_func_unlink_honors_slashes+:} false; then : $as_echo_n "(cached) " >&6 else touch conftest.file *************** *** 26034,26040 **** $as_echo "$gl_cv_func_unlink_honors_slashes" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unlink of a parent directory fails as it should" >&5 $as_echo_n "checking whether unlink of a parent directory fails as it should... " >&6; } ! if test "${gl_cv_func_unlink_parent_fails+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$host_os" in --- 27573,27579 ---- $as_echo "$gl_cv_func_unlink_honors_slashes" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unlink of a parent directory fails as it should" >&5 $as_echo_n "checking whether unlink of a parent directory fails as it should... " >&6; } ! if ${gl_cv_func_unlink_parent_fails+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in *************** *** 26128,26134 **** ! GNULIB_UNLINK=1 --- 27667,27677 ---- ! ! ! GNULIB_UNLINK=1 ! ! *************** *** 26136,26142 **** - # Code from module vasnprintf: if test $ac_cv_func_vasnprintf = no; then --- 27679,27684 ---- *************** *** 26199,26205 **** ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" ! if test "x$ac_cv_type_ptrdiff_t" = x""yes; then : else --- 27741,27747 ---- ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" ! if test "x$ac_cv_type_ptrdiff_t" = xyes; then : else *************** *** 26216,26230 **** fi - # Code from module verify: - # Code from module vsnprintf: gl_cv_func_vsnprintf_usable=no for ac_func in vsnprintf do : ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf" ! if test "x$ac_cv_func_vsnprintf" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VSNPRINTF 1 _ACEOF --- 27758,27770 ---- fi gl_cv_func_vsnprintf_usable=no for ac_func in vsnprintf do : ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf" ! if test "x$ac_cv_func_vsnprintf" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VSNPRINTF 1 _ACEOF *************** *** 26237,26243 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf respects a size of 1" >&5 $as_echo_n "checking whether snprintf respects a size of 1... " >&6; } ! if test "${gl_cv_func_snprintf_size1+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 27777,27783 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf respects a size of 1" >&5 $as_echo_n "checking whether snprintf respects a size of 1... " >&6; } ! if ${gl_cv_func_snprintf_size1+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 26307,26313 **** ! GNULIB_VSNPRINTF=1 --- 27847,27857 ---- ! ! ! GNULIB_VSNPRINTF=1 ! ! *************** *** 26315,26322 **** - # Code from module warn-on-use: - # Code from module wchar: --- 27859,27864 ---- *************** *** 26334,26340 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_wchar_h+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 27876,27882 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_wchar_h+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 26402,26408 **** as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval "test \"\${$as_gl_Symbol+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 27944,27950 ---- as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 26448,26454 **** done ! # Code from module wctype-h: --- 27990,27996 ---- done ! *************** *** 26461,26481 **** - if test $ac_cv_func_iswblank = yes; then - HAVE_ISWBLANK=1 - REPLACE_ISWBLANK=0 - else - HAVE_ISWBLANK=0 - if test $ac_cv_have_decl_iswblank = yes; then - REPLACE_ISWBLANK=1 - else - REPLACE_ISWBLANK=0 - fi - fi - - - - if test $gt_cv_c_wint_t = yes; then --- 28003,28008 ---- *************** *** 26499,26505 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if test "${gl_cv_next_wctype_h+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 28026,28032 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } ! if ${gl_cv_next_wctype_h+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 26549,26555 **** if test $ac_cv_func_iswcntrl = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5 $as_echo_n "checking whether iswcntrl works... " >&6; } ! if test "${gl_cv_func_iswcntrl_works+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 28076,28082 ---- if test $ac_cv_func_iswcntrl = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5 $as_echo_n "checking whether iswcntrl works... " >&6; } ! if ${gl_cv_func_iswcntrl_works+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 26620,26648 **** if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then : ! else ! if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then ! ! gl_LIBOBJS="$gl_LIBOBJS iswblank.$ac_objext" ! fi fi ! # Code from module xsize: for ac_header in stdint.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" ! if test "x$ac_cv_header_stdint_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H 1 _ACEOF --- 28147,28295 ---- if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then : ! fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5 + $as_echo_n "checking for wctype_t... " >&6; } + if ${gl_cv_type_wctype_t+:} false; then : + $as_echo_n "(cached) " >&6 + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + /* Tru64 with Desktop Toolkit C has a bug: must be + included before . + BSD/OS 4.0.1 has a bug: , and + must be included before . */ + #include + #include + #include + #include + #if HAVE_WCTYPE_H + # include + #endif + wctype_t a; + int + main () + { + ; + return 0; + } + _ACEOF + if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_type_wctype_t=yes + else + gl_cv_type_wctype_t=no + fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5 + $as_echo "$gl_cv_type_wctype_t" >&6; } + if test $gl_cv_type_wctype_t = no; then + HAVE_WCTYPE_T=0 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5 + $as_echo_n "checking for wctrans_t... " >&6; } + if ${gl_cv_type_wctrans_t+:} false; then : + $as_echo_n "(cached) " >&6 + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + /* Tru64 with Desktop Toolkit C has a bug: must be + included before . + BSD/OS 4.0.1 has a bug: , and + must be included before . */ + #include + #include + #include + #include + #include + wctrans_t a; + int + main () + { ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ! gl_cv_type_wctrans_t=yes ! else ! gl_cv_type_wctrans_t=no ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5 ! $as_echo "$gl_cv_type_wctrans_t" >&6; } ! if test $gl_cv_type_wctrans_t = no; then ! HAVE_WCTRANS_T=0 fi ! ! for gl_func in wctype iswctype wctrans towctrans ; do ! as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 ! $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } ! if eval \${$as_gl_Symbol+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Tru64 with Desktop Toolkit C has a bug: must be included before ! . ! BSD/OS 4.0.1 has a bug: , and must be ! included before . */ ! #if !(defined __GLIBC__ && !defined __UCLIBC__) ! # include ! # include ! # include ! # include ! #endif ! #include ! ! int ! main () ! { ! #undef $gl_func ! (void) $gl_func; ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ! eval "$as_gl_Symbol=yes" ! else ! eval "$as_gl_Symbol=no" ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! fi ! eval ac_res=\$$as_gl_Symbol ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : ! cat >>confdefs.h <<_ACEOF ! #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 ! _ACEOF ! ! eval ac_cv_have_decl_$gl_func=yes ! fi ! done ! ! for ac_header in stdint.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" ! if test "x$ac_cv_header_stdint_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H 1 _ACEOF *************** *** 26724,26730 **** ;; *-*-mingw*) if test "$have_msvc" = "no"; then ! INCLUDE_DEPS=false fi ;; *) --- 28371,28377 ---- ;; *-*-mingw*) if test "$have_msvc" = "no"; then ! INCLUDE_DEPS=false fi ;; *) *************** *** 26865,26871 **** set dummy pthread-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ax_pthread_config+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ax_pthread_config"; then --- 28512,28518 ---- set dummy pthread-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ax_pthread_config+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ax_pthread_config"; then *************** *** 27026,27032 **** set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_PTHREAD_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$PTHREAD_CC"; then --- 28673,28679 ---- set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_PTHREAD_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$PTHREAD_CC"; then *************** *** 27111,27118 **** have_x=disabled else case $x_includes,$x_libraries in #( ! *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #( ! *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : $as_echo_n "(cached) " >&6 else # One or both of the vars are not set, and there is no cached value. --- 28758,28765 ---- have_x=disabled else case $x_includes,$x_libraries in #( ! *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( ! *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then : $as_echo_n "(cached) " >&6 else # One or both of the vars are not set, and there is no cached value. *************** *** 27302,27308 **** if test -z $x_libraries; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XrmInitialize in -lX11" >&5 $as_echo_n "checking for XrmInitialize in -lX11... " >&6; } ! if test "${ac_cv_lib_X11_XrmInitialize+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 28949,28955 ---- if test -z $x_libraries; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XrmInitialize in -lX11" >&5 $as_echo_n "checking for XrmInitialize in -lX11... " >&6; } ! if ${ac_cv_lib_X11_XrmInitialize+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 27336,27342 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_X11_XrmInitialize" >&5 $as_echo "$ac_cv_lib_X11_XrmInitialize" >&6; } ! if test "x$ac_cv_lib_X11_XrmInitialize" = x""yes; then : X11_LIBS=-lX11 else X11_LIBS= --- 28983,28989 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_X11_XrmInitialize" >&5 $as_echo "$ac_cv_lib_X11_XrmInitialize" >&6; } ! if test "x$ac_cv_lib_X11_XrmInitialize" = xyes; then : X11_LIBS=-lX11 else X11_LIBS= *************** *** 27345,27351 **** elif test $x_libraries != "NONE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XrmInitialize in -lX11" >&5 $as_echo_n "checking for XrmInitialize in -lX11... " >&6; } ! if test "${ac_cv_lib_X11_XrmInitialize+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 28992,28998 ---- elif test $x_libraries != "NONE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XrmInitialize in -lX11" >&5 $as_echo_n "checking for XrmInitialize in -lX11... " >&6; } ! if ${ac_cv_lib_X11_XrmInitialize+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 27379,27385 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_X11_XrmInitialize" >&5 $as_echo "$ac_cv_lib_X11_XrmInitialize" >&6; } ! if test "x$ac_cv_lib_X11_XrmInitialize" = x""yes; then : X11_LIBS="-L$x_libraries -lX11" else X11_LIBS= --- 29026,29032 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_X11_XrmInitialize" >&5 $as_echo "$ac_cv_lib_X11_XrmInitialize" >&6; } ! if test "x$ac_cv_lib_X11_XrmInitialize" = xyes; then : X11_LIBS="-L$x_libraries -lX11" else X11_LIBS= *************** *** 27393,27399 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${LD-ld} accepts -framework Carbon" >&5 $as_echo_n "checking whether ${LD-ld} accepts -framework Carbon... " >&6; } ! if test "${octave_cv_framework_Carbon+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 29040,29046 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${LD-ld} accepts -framework Carbon" >&5 $as_echo_n "checking whether ${LD-ld} accepts -framework Carbon... " >&6; } ! if ${octave_cv_framework_Carbon+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 27504,27510 **** ac_safe=`echo "-mieee-fp" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC-cc} accepts -mieee-fp" >&5 $as_echo_n "checking whether ${CC-cc} accepts -mieee-fp... " >&6; } ! if eval "test \"\${octave_cv_cc_flag_$ac_safe+set}\"" = set; then : $as_echo_n "(cached) " >&6 else --- 29151,29157 ---- ac_safe=`echo "-mieee-fp" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC-cc} accepts -mieee-fp" >&5 $as_echo_n "checking whether ${CC-cc} accepts -mieee-fp... " >&6; } ! if eval \${octave_cv_cc_flag_$ac_safe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 27569,27575 **** ac_safe=`echo "-mieee-fp" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX-g++} accepts -mieee-fp" >&5 $as_echo_n "checking whether ${CXX-g++} accepts -mieee-fp... " >&6; } ! if eval "test \"\${octave_cv_cxx_flag_$ac_safe+set}\"" = set; then : $as_echo_n "(cached) " >&6 else --- 29216,29222 ---- ac_safe=`echo "-mieee-fp" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX-g++} accepts -mieee-fp" >&5 $as_echo_n "checking whether ${CXX-g++} accepts -mieee-fp... " >&6; } ! if eval \${octave_cv_cxx_flag_$ac_safe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 27613,27621 **** { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } ! ieee_fp_flag=-mieee-fp ! XTRA_CXXFLAGS="$XTRA_CXXFLAGS -mieee-fp" ! { $as_echo "$as_me:${as_lineno-$LINENO}: adding -mieee-fp to XTRA_CXXFLAGS" >&5 $as_echo "$as_me: adding -mieee-fp to XTRA_CXXFLAGS" >&6;} else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --- 29260,29268 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } ! ieee_fp_flag=-mieee-fp ! XTRA_CXXFLAGS="$XTRA_CXXFLAGS -mieee-fp" ! { $as_echo "$as_me:${as_lineno-$LINENO}: adding -mieee-fp to XTRA_CXXFLAGS" >&5 $as_echo "$as_me: adding -mieee-fp to XTRA_CXXFLAGS" >&6;} else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 *************** *** 27636,27642 **** ac_safe=`echo "-mieee" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC-cc} accepts -mieee" >&5 $as_echo_n "checking whether ${CC-cc} accepts -mieee... " >&6; } ! if eval "test \"\${octave_cv_cc_flag_$ac_safe+set}\"" = set; then : $as_echo_n "(cached) " >&6 else --- 29283,29289 ---- ac_safe=`echo "-mieee" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC-cc} accepts -mieee" >&5 $as_echo_n "checking whether ${CC-cc} accepts -mieee... " >&6; } ! if eval \${octave_cv_cc_flag_$ac_safe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 27680,27688 **** { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } ! ieee_fp_flag=-mieee ! XTRA_CFLAGS="$XTRA_CFLAGS -mieee" ! { $as_echo "$as_me:${as_lineno-$LINENO}: adding -mieee to XTRA_CFLAGS" >&5 $as_echo "$as_me: adding -mieee to XTRA_CFLAGS" >&6;} else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --- 29327,29335 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } ! ieee_fp_flag=-mieee ! XTRA_CFLAGS="$XTRA_CFLAGS -mieee" ! { $as_echo "$as_me:${as_lineno-$LINENO}: adding -mieee to XTRA_CFLAGS" >&5 $as_echo "$as_me: adding -mieee to XTRA_CFLAGS" >&6;} else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 *************** *** 27695,27701 **** ac_safe=`echo "-ieee" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC-cc} accepts -ieee" >&5 $as_echo_n "checking whether ${CC-cc} accepts -ieee... " >&6; } ! if eval "test \"\${octave_cv_cc_flag_$ac_safe+set}\"" = set; then : $as_echo_n "(cached) " >&6 else --- 29342,29348 ---- ac_safe=`echo "-ieee" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC-cc} accepts -ieee" >&5 $as_echo_n "checking whether ${CC-cc} accepts -ieee... " >&6; } ! if eval \${octave_cv_cc_flag_$ac_safe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 27739,27747 **** { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } ! ieee_fp_flag=-ieee ! XTRA_CFLAGS="$XTRA_CFLAGS -ieee" ! { $as_echo "$as_me:${as_lineno-$LINENO}: adding -ieee to XTRA_CFLAGS" >&5 $as_echo "$as_me: adding -ieee to XTRA_CFLAGS" >&6;} else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --- 29386,29394 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } ! ieee_fp_flag=-ieee ! XTRA_CFLAGS="$XTRA_CFLAGS -ieee" ! { $as_echo "$as_me:${as_lineno-$LINENO}: adding -ieee to XTRA_CFLAGS" >&5 $as_echo "$as_me: adding -ieee to XTRA_CFLAGS" >&6;} else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 *************** *** 27755,27761 **** ac_safe=`echo "-mieee" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX-g++} accepts -mieee" >&5 $as_echo_n "checking whether ${CXX-g++} accepts -mieee... " >&6; } ! if eval "test \"\${octave_cv_cxx_flag_$ac_safe+set}\"" = set; then : $as_echo_n "(cached) " >&6 else --- 29402,29408 ---- ac_safe=`echo "-mieee" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX-g++} accepts -mieee" >&5 $as_echo_n "checking whether ${CXX-g++} accepts -mieee... " >&6; } ! if eval \${octave_cv_cxx_flag_$ac_safe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 27799,27807 **** { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } ! ieee_fp_flag=-mieee ! XTRA_CXXFLAGS="$XTRA_CXXFLAGS -mieee" ! { $as_echo "$as_me:${as_lineno-$LINENO}: adding -mieee to XTRA_CXXFLAGS" >&5 $as_echo "$as_me: adding -mieee to XTRA_CXXFLAGS" >&6;} else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --- 29446,29454 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } ! ieee_fp_flag=-mieee ! XTRA_CXXFLAGS="$XTRA_CXXFLAGS -mieee" ! { $as_echo "$as_me:${as_lineno-$LINENO}: adding -mieee to XTRA_CXXFLAGS" >&5 $as_echo "$as_me: adding -mieee to XTRA_CXXFLAGS" >&6;} else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 *************** *** 27814,27820 **** ac_safe=`echo "-ieee" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX-g++} accepts -ieee" >&5 $as_echo_n "checking whether ${CXX-g++} accepts -ieee... " >&6; } ! if eval "test \"\${octave_cv_cxx_flag_$ac_safe+set}\"" = set; then : $as_echo_n "(cached) " >&6 else --- 29461,29467 ---- ac_safe=`echo "-ieee" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX-g++} accepts -ieee" >&5 $as_echo_n "checking whether ${CXX-g++} accepts -ieee... " >&6; } ! if eval \${octave_cv_cxx_flag_$ac_safe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 27858,27866 **** { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } ! ieee_fp_flag=-ieee ! XTRA_CXXFLAGS="$XTRA_CXXFLAGS -ieee" ! { $as_echo "$as_me:${as_lineno-$LINENO}: adding -ieee to XTRA_CXXFLAGS" >&5 $as_echo "$as_me: adding -ieee to XTRA_CXXFLAGS" >&6;} else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --- 29505,29513 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } ! ieee_fp_flag=-ieee ! XTRA_CXXFLAGS="$XTRA_CXXFLAGS -ieee" ! { $as_echo "$as_me:${as_lineno-$LINENO}: adding -ieee to XTRA_CXXFLAGS" >&5 $as_echo "$as_me: adding -ieee to XTRA_CXXFLAGS" >&6;} else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 *************** *** 27875,27881 **** ac_safe=`echo "-mminimal-toc" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC-cc} accepts -mminimal-toc" >&5 $as_echo_n "checking whether ${CC-cc} accepts -mminimal-toc... " >&6; } ! if eval "test \"\${octave_cv_cc_flag_$ac_safe+set}\"" = set; then : $as_echo_n "(cached) " >&6 else --- 29522,29528 ---- ac_safe=`echo "-mminimal-toc" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC-cc} accepts -mminimal-toc" >&5 $as_echo_n "checking whether ${CC-cc} accepts -mminimal-toc... " >&6; } ! if eval \${octave_cv_cc_flag_$ac_safe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 27931,27937 **** ac_safe=`echo "-mminimal-toc" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX-g++} accepts -mminimal-toc" >&5 $as_echo_n "checking whether ${CXX-g++} accepts -mminimal-toc... " >&6; } ! if eval "test \"\${octave_cv_cxx_flag_$ac_safe+set}\"" = set; then : $as_echo_n "(cached) " >&6 else --- 29578,29584 ---- ac_safe=`echo "-mminimal-toc" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX-g++} accepts -mminimal-toc" >&5 $as_echo_n "checking whether ${CXX-g++} accepts -mminimal-toc... " >&6; } ! if eval \${octave_cv_cxx_flag_$ac_safe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 28000,28006 **** $as_echo_n "checking for support of OpenMP... " >&6; } XCFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fopenmp" ! if test "${octave_cv_check_openmp+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 29647,29653 ---- $as_echo_n "checking for support of OpenMP... " >&6; } XCFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fopenmp" ! if ${octave_cv_check_openmp+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 28051,28057 **** $as_echo_n "checking for support of OpenMP... " >&6; } XCFLAGS="$CFLAGS" CFLAGS="$CFLAGS -openmp" ! if test "${octave_cv_check_openmp+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 29698,29704 ---- $as_echo_n "checking for support of OpenMP... " >&6; } XCFLAGS="$CFLAGS" CFLAGS="$CFLAGS -openmp" ! if ${octave_cv_check_openmp+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 28145,28152 **** sparc-sun-solaris2*) if test "$GCC" != yes; then ## The Sun C++ compiler never seems to complete compiling ! ## gendoc.cc unless we reduce the optimization level... ! BUILD_CXXFLAGS="-g -O1" fi ;; esac --- 29792,29799 ---- sparc-sun-solaris2*) if test "$GCC" != yes; then ## The Sun C++ compiler never seems to complete compiling ! ## gendoc.cc unless we reduce the optimization level... ! BUILD_CXXFLAGS="-g -O1" fi ;; esac *************** *** 28167,28173 **** *-*-linux*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sin in -lm" >&5 $as_echo_n "checking for sin in -lm... " >&6; } ! if test "${ac_cv_lib_m_sin+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 29814,29820 ---- *-*-linux*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sin in -lm" >&5 $as_echo_n "checking for sin in -lm... " >&6; } ! if ${ac_cv_lib_m_sin+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 28201,28207 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sin" >&5 $as_echo "$ac_cv_lib_m_sin" >&6; } ! if test "x$ac_cv_lib_m_sin" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBM 1 _ACEOF --- 29848,29854 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sin" >&5 $as_echo "$ac_cv_lib_m_sin" >&6; } ! if test "x$ac_cv_lib_m_sin" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBM 1 _ACEOF *************** *** 28214,28220 **** *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sin in -lm" >&5 $as_echo_n "checking for sin in -lm... " >&6; } ! if test "${ac_cv_lib_m_sin+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 29861,29867 ---- *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sin in -lm" >&5 $as_echo_n "checking for sin in -lm... " >&6; } ! if ${ac_cv_lib_m_sin+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 28248,28254 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sin" >&5 $as_echo "$ac_cv_lib_m_sin" >&6; } ! if test "x$ac_cv_lib_m_sin" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBM 1 _ACEOF --- 29895,29901 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sin" >&5 $as_echo "$ac_cv_lib_m_sin" >&6; } ! if test "x$ac_cv_lib_m_sin" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBM 1 _ACEOF *************** *** 28277,28283 **** set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_F77+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$F77"; then --- 29924,29930 ---- set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_F77+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$F77"; then *************** *** 28321,28327 **** set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_F77+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_F77"; then --- 29968,29974 ---- set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_F77+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_F77"; then *************** *** 28403,28409 **** ac_ext=F { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Fortran 77 compiler" >&5 $as_echo_n "checking whether we are using the GNU Fortran 77 compiler... " >&6; } ! if test "${ac_cv_f77_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF --- 30050,30056 ---- ac_ext=F { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Fortran 77 compiler" >&5 $as_echo_n "checking whether we are using the GNU Fortran 77 compiler... " >&6; } ! if ${ac_cv_f77_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF *************** *** 28431,28437 **** FFLAGS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $F77 accepts -g" >&5 $as_echo_n "checking whether $F77 accepts -g... " >&6; } ! if test "${ac_cv_prog_f77_g+set}" = set; then : $as_echo_n "(cached) " >&6 else FFLAGS=-g --- 30078,30084 ---- FFLAGS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $F77 accepts -g" >&5 $as_echo_n "checking whether $F77 accepts -g... " >&6; } ! if ${ac_cv_prog_f77_g+:} false; then : $as_echo_n "(cached) " >&6 else FFLAGS=-g *************** *** 28484,28490 **** ac_compiler_gnu=$ac_cv_f77_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get verbose linking output from $F77" >&5 $as_echo_n "checking how to get verbose linking output from $F77... " >&6; } ! if test "${ac_cv_prog_f77_v+set}" = set; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF --- 30131,30137 ---- ac_compiler_gnu=$ac_cv_f77_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get verbose linking output from $F77" >&5 $as_echo_n "checking how to get verbose linking output from $F77... " >&6; } ! if ${ac_cv_prog_f77_v+:} false; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF *************** *** 28514,28520 **** # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH, # LIBRARY_PATH; skip all such settings. ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | ! grep -v 'Driving:' | grep -v "^[_$as_cr_Letters][_$as_cr_alnum]*="` $as_echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS --- 30161,30168 ---- # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH, # LIBRARY_PATH; skip all such settings. ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | ! sed '/^Driving:/d; /^Configured with:/d; ! '"/^[_$as_cr_Letters][_$as_cr_alnum]*=/d"` $as_echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS *************** *** 28579,28585 **** $as_echo "$ac_cv_prog_f77_v" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 libraries of $F77" >&5 $as_echo_n "checking for Fortran 77 libraries of $F77... " >&6; } ! if test "${ac_cv_f77_libs+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$FLIBS" != "x"; then --- 30227,30233 ---- $as_echo "$ac_cv_prog_f77_v" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 libraries of $F77" >&5 $as_echo_n "checking for Fortran 77 libraries of $F77... " >&6; } ! if ${ac_cv_f77_libs+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$FLIBS" != "x"; then *************** *** 28604,28610 **** # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH, # LIBRARY_PATH; skip all such settings. ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | ! grep -v 'Driving:' | grep -v "^[_$as_cr_Letters][_$as_cr_alnum]*="` $as_echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS --- 30252,30259 ---- # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH, # LIBRARY_PATH; skip all such settings. ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | ! sed '/^Driving:/d; /^Configured with:/d; ! '"/^[_$as_cr_Letters][_$as_cr_alnum]*=/d"` $as_echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS *************** *** 28792,28798 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dummy main to link with Fortran 77 libraries" >&5 $as_echo_n "checking for dummy main to link with Fortran 77 libraries... " >&6; } ! if test "${ac_cv_f77_dummy_main+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_f77_dm_save_LIBS=$LIBS --- 30441,30447 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dummy main to link with Fortran 77 libraries" >&5 $as_echo_n "checking for dummy main to link with Fortran 77 libraries... " >&6; } ! if ${ac_cv_f77_dummy_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_f77_dm_save_LIBS=$LIBS *************** *** 28889,28895 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "linking to Fortran libraries from C fails ! See \`config.log' for more details" "$LINENO" 5 ; } fi ac_ext=c --- 30538,30544 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "linking to Fortran libraries from C fails ! See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c *************** *** 28904,28910 **** ac_compiler_gnu=$ac_cv_f77_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 name-mangling scheme" >&5 $as_echo_n "checking for Fortran 77 name-mangling scheme... " >&6; } ! if test "${ac_cv_f77_mangling+set}" = set; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF --- 30553,30559 ---- ac_compiler_gnu=$ac_cv_f77_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 name-mangling scheme" >&5 $as_echo_n "checking for Fortran 77 name-mangling scheme... " >&6; } ! if ${ac_cv_f77_mangling+:} false; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF *************** *** 29051,29057 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compile a simple Fortran program ! See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --- 30700,30706 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compile a simple Fortran program ! See \`config.log' for more details" "$LINENO" 5; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext *************** *** 29144,29150 **** ac_safe=`echo "-mieee-fp" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${F77-g77} accepts -mieee-fp" >&5 $as_echo_n "checking whether ${F77-g77} accepts -mieee-fp... " >&6; } ! if eval "test \"\${octave_cv_f77_flag_$ac_safe+set}\"" = set; then : $as_echo_n "(cached) " >&6 else --- 30793,30799 ---- ac_safe=`echo "-mieee-fp" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${F77-g77} accepts -mieee-fp" >&5 $as_echo_n "checking whether ${F77-g77} accepts -mieee-fp... " >&6; } ! if eval \${octave_cv_f77_flag_$ac_safe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 29199,29205 **** ac_safe=`echo "-mieee" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${F77-g77} accepts -mieee" >&5 $as_echo_n "checking whether ${F77-g77} accepts -mieee... " >&6; } ! if eval "test \"\${octave_cv_f77_flag_$ac_safe+set}\"" = set; then : $as_echo_n "(cached) " >&6 else --- 30848,30854 ---- ac_safe=`echo "-mieee" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${F77-g77} accepts -mieee" >&5 $as_echo_n "checking whether ${F77-g77} accepts -mieee... " >&6; } ! if eval \${octave_cv_f77_flag_$ac_safe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 29250,29256 **** ac_safe=`echo "-ieee" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${F77-g77} accepts -ieee" >&5 $as_echo_n "checking whether ${F77-g77} accepts -ieee... " >&6; } ! if eval "test \"\${octave_cv_f77_flag_$ac_safe+set}\"" = set; then : $as_echo_n "(cached) " >&6 else --- 30899,30905 ---- ac_safe=`echo "-ieee" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${F77-g77} accepts -ieee" >&5 $as_echo_n "checking whether ${F77-g77} accepts -ieee... " >&6; } ! if eval \${octave_cv_f77_flag_$ac_safe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 29300,29306 **** ac_safe=`echo "-fpe1" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${F77-g77} accepts -fpe1" >&5 $as_echo_n "checking whether ${F77-g77} accepts -fpe1... " >&6; } ! if eval "test \"\${octave_cv_f77_flag_$ac_safe+set}\"" = set; then : $as_echo_n "(cached) " >&6 else --- 30949,30955 ---- ac_safe=`echo "-fpe1" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${F77-g77} accepts -fpe1" >&5 $as_echo_n "checking whether ${F77-g77} accepts -fpe1... " >&6; } ! if eval \${octave_cv_f77_flag_$ac_safe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 29376,29382 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $F77 generates correct size integers" >&5 $as_echo_n "checking whether $F77 generates correct size integers... " >&6; } ! if test "${octave_cv_fortran_integer_size+set}" = set; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF --- 31025,31031 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $F77 generates correct size integers" >&5 $as_echo_n "checking whether $F77 generates correct size integers... " >&6; } ! if ${octave_cv_fortran_integer_size+:} false; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF *************** *** 29403,29409 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5 ; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ --- 31052,31058 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ *************** *** 29463,29469 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compile a simple Fortran program ! See \`config.log' for more details" "$LINENO" 5 ; } octave_cv_fortran_integer_size=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --- 31112,31118 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compile a simple Fortran program ! See \`config.log' for more details" "$LINENO" 5; } octave_cv_fortran_integer_size=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext *************** *** 29497,29503 **** { $as_echo "$as_me:${as_lineno-$LINENO}: adding -fdefault-integer-8 to F77_INTEGER_8_FLAG" >&5 $as_echo "$as_me: adding -fdefault-integer-8 to F77_INTEGER_8_FLAG" >&6;} F77_INTEGER_8_FLAG="-fdefault-integer-8" ! ## Invalidate the cache and try again. $as_unset octave_cv_fortran_integer_size ;; esac --- 31146,31152 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: adding -fdefault-integer-8 to F77_INTEGER_8_FLAG" >&5 $as_echo "$as_me: adding -fdefault-integer-8 to F77_INTEGER_8_FLAG" >&6;} F77_INTEGER_8_FLAG="-fdefault-integer-8" ! ## Invalidate the cache and try again. $as_unset octave_cv_fortran_integer_size ;; esac *************** *** 29516,29522 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $F77 generates correct size integers" >&5 $as_echo_n "checking whether $F77 generates correct size integers... " >&6; } ! if test "${octave_cv_fortran_integer_size+set}" = set; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF --- 31165,31171 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $F77 generates correct size integers" >&5 $as_echo_n "checking whether $F77 generates correct size integers... " >&6; } ! if ${octave_cv_fortran_integer_size+:} false; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF *************** *** 29543,29549 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5 ; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ --- 31192,31198 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ *************** *** 29603,29609 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compile a simple Fortran program ! See \`config.log' for more details" "$LINENO" 5 ; } octave_cv_fortran_integer_size=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --- 31252,31258 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compile a simple Fortran program ! See \`config.log' for more details" "$LINENO" 5; } octave_cv_fortran_integer_size=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext *************** *** 29635,29641 **** ac_safe=`echo "-ffloat-store" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${F77-g77} accepts -ffloat-store" >&5 $as_echo_n "checking whether ${F77-g77} accepts -ffloat-store... " >&6; } ! if eval "test \"\${octave_cv_f77_flag_$ac_safe+set}\"" = set; then : $as_echo_n "(cached) " >&6 else --- 31284,31290 ---- ac_safe=`echo "-ffloat-store" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${F77-g77} accepts -ffloat-store" >&5 $as_echo_n "checking whether ${F77-g77} accepts -ffloat-store... " >&6; } ! if eval \${octave_cv_f77_flag_$ac_safe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 29686,29692 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IEEE 754 data format" >&5 $as_echo_n "checking for IEEE 754 data format... " >&6; } ! if test "${octave_cv_ieee754_data_format+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 31335,31341 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IEEE 754 data format" >&5 $as_echo_n "checking for IEEE 754 data format... " >&6; } ! if ${octave_cv_ieee754_data_format+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 29740,29746 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether complex class can set components independently" >&5 $as_echo_n "checking whether complex class can set components independently... " >&6; } ! if test "${octave_cv_cxx_complex_setters+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=cpp --- 31389,31395 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether complex class can set components independently" >&5 $as_echo_n "checking whether complex class can set components independently... " >&6; } ! if ${octave_cv_cxx_complex_setters+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=cpp *************** *** 29791,29797 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether complex class can reference components independently" >&5 $as_echo_n "checking whether complex class can reference components independently... " >&6; } ! if test "${octave_cv_cxx_complex_reference_accessors+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=cpp --- 31440,31446 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether complex class can reference components independently" >&5 $as_echo_n "checking whether complex class can reference components independently... " >&6; } ! if ${octave_cv_cxx_complex_reference_accessors+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=cpp *************** *** 29895,29901 **** for ac_header in qhull/qhull_a.h do : ac_fn_c_check_header_mongrel "$LINENO" "qhull/qhull_a.h" "ac_cv_header_qhull_qhull_a_h" "$ac_includes_default" ! if test "x$ac_cv_header_qhull_qhull_a_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_QHULL_QHULL_A_H 1 _ACEOF --- 31544,31550 ---- for ac_header in qhull/qhull_a.h do : ac_fn_c_check_header_mongrel "$LINENO" "qhull/qhull_a.h" "ac_cv_header_qhull_qhull_a_h" "$ac_includes_default" ! if test "x$ac_cv_header_qhull_qhull_a_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_QHULL_QHULL_A_H 1 _ACEOF *************** *** 29949,29955 **** warn_qhull= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for qh_version in $QHULL_LIBS" >&5 $as_echo_n "checking for qh_version in $QHULL_LIBS... " >&6; } ! if test "${octave_cv_lib_qhull_version+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 31598,31604 ---- warn_qhull= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for qh_version in $QHULL_LIBS" >&5 $as_echo_n "checking for qh_version in $QHULL_LIBS... " >&6; } ! if ${octave_cv_lib_qhull_version+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 29994,30000 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the qhull library works" >&5 $as_echo_n "checking whether the qhull library works... " >&6; } ! if test "${octave_cv_lib_qhull_ok+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 31643,31649 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the qhull library works" >&5 $as_echo_n "checking whether the qhull library works... " >&6; } ! if ${octave_cv_lib_qhull_ok+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 30002,30008 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5 ; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ --- 31651,31657 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ *************** *** 30073,30130 **** fi ! ### Check for pcre/regex library. ! ! ## check for pcre-config, and if so, set XTRA_CXXFLAGS appropriately ! # Extract the first word of "pcre-config", so it can be a program name with args. ! set dummy pcre-config; ac_word=$2 ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ! $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_WITH_PCRE_CONFIG+set}" = set; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$WITH_PCRE_CONFIG"; then ! ac_cv_prog_WITH_PCRE_CONFIG="$WITH_PCRE_CONFIG" # Let the user override the test. ! else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_WITH_PCRE_CONFIG="yes" ! $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done ! done ! IFS=$as_save_IFS ! ! test -z "$ac_cv_prog_WITH_PCRE_CONFIG" && ac_cv_prog_WITH_PCRE_CONFIG="no" ! fi ! fi ! WITH_PCRE_CONFIG=$ac_cv_prog_WITH_PCRE_CONFIG ! if test -n "$WITH_PCRE_CONFIG"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WITH_PCRE_CONFIG" >&5 ! $as_echo "$WITH_PCRE_CONFIG" >&6; } ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! fi ! if test $WITH_PCRE_CONFIG = yes ; then ! XTRA_CXXFLAGS="$XTRA_CXXFLAGS $(pcre-config --cflags)" ! fi ! ## NB: no need to do separate check for pcre.h header -- checking macros is good enough { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pcre.h defines the macros we need" >&5 $as_echo_n "checking whether pcre.h defines the macros we need... " >&6; } ! if test "${ac_cv_pcre_h_macros_present+set}" = set; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ --- 31722,31740 ---- fi ! ### Check for pcre regex library. + REGEX_LIBS= ! pcre_fail_msg="to build Octave, you must have the PCRE library and header files installed" ! ## NB: no need to do separate check for pcre.h header -- checking ! ## macros is good enough { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pcre.h defines the macros we need" >&5 $as_echo_n "checking whether pcre.h defines the macros we need... " >&6; } ! if ${ac_cv_pcre_h_macros_present+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ *************** *** 30146,30269 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pcre_h_macros_present" >&5 $as_echo "$ac_cv_pcre_h_macros_present" >&6; } - WITH_PCRE="$ac_cv_pcre_h_macros_present" ! REGEX_LIBS= - using_pcre=no - using_regex=no ! if test "$WITH_PCRE" = yes; then ! if test "$WITH_PCRE_CONFIG" = yes; then ! REGEX_LIBS=$(pcre-config --libs) else ! REGEX_LIBS=-lpcre fi save_LIBS="$LIBS" LIBS="$REGEX_LIBS $LIBS" for ac_func in pcre_compile do : ac_fn_c_check_func "$LINENO" "pcre_compile" "ac_cv_func_pcre_compile" ! if test "x$ac_cv_func_pcre_compile" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PCRE_COMPILE 1 _ACEOF - using_pcre=yes - - $as_echo "#define HAVE_PCRE 1" >>confdefs.h else ! ! REGEX_LIBS= ! warn_pcre="PCRE library not found. This will result in some loss of functionality for the regular expression matching functions." ! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $warn_pcre" >&5 ! $as_echo "$as_me: WARNING: $warn_pcre" >&2;} fi done LIBS="$save_LIBS" else ! warn_pcre="PCRE library not found. This will result in some loss of functionality for the regular expression matching functions." ! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $warn_pcre" >&5 ! $as_echo "$as_me: WARNING: $warn_pcre" >&2;} ! fi ! ! for ac_func in regexec ! do : ! ac_fn_c_check_func "$LINENO" "regexec" "ac_cv_func_regexec" ! if test "x$ac_cv_func_regexec" = x""yes; then : ! cat >>confdefs.h <<_ACEOF ! #define HAVE_REGEXEC 1 ! _ACEOF ! using_regex=yes ! else ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for regexec in -lregex" >&5 ! $as_echo_n "checking for regexec in -lregex... " >&6; } ! if test "${ac_cv_lib_regex_regexec+set}" = set; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lregex $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char regexec (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return regexec (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! ac_cv_lib_regex_regexec=yes ! else ! ac_cv_lib_regex_regexec=no ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_regex_regexec" >&5 ! $as_echo "$ac_cv_lib_regex_regexec" >&6; } ! if test "x$ac_cv_lib_regex_regexec" = x""yes; then : ! using_regex=yes ! REGEX_LIBS="-lregex $REGEX_LIBS" ! else ! ! warn_regex="regular expression functions not found. The regular expression matching functions will be disabled." ! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $warn_regex" >&5 ! $as_echo "$as_me: WARNING: $warn_regex" >&2;} ! fi ! ! fi ! done ! ! ! if test "$using_regex" = yes; then ! ! $as_echo "#define HAVE_REGEX 1" >>confdefs.h ! fi - - ### Check for ZLIB library. --- 31756,31828 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pcre_h_macros_present" >&5 $as_echo "$ac_cv_pcre_h_macros_present" >&6; } ! if test $ac_cv_pcre_h_macros_present = yes; then ! ## check for pcre-config, and if so, set XTRA_CXXFLAGS appropriately ! # Extract the first word of "pcre-config", so it can be a program name with args. ! set dummy pcre-config; ac_word=$2 ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ! $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_HAVE_PCRE_CONFIG+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$HAVE_PCRE_CONFIG"; then ! ac_cv_prog_HAVE_PCRE_CONFIG="$HAVE_PCRE_CONFIG" # Let the user override the test. ! else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_HAVE_PCRE_CONFIG="yes" ! $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done ! done ! IFS=$as_save_IFS ! ! test -z "$ac_cv_prog_HAVE_PCRE_CONFIG" && ac_cv_prog_HAVE_PCRE_CONFIG="no" ! fi ! fi ! HAVE_PCRE_CONFIG=$ac_cv_prog_HAVE_PCRE_CONFIG ! if test -n "$HAVE_PCRE_CONFIG"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_PCRE_CONFIG" >&5 ! $as_echo "$HAVE_PCRE_CONFIG" >&6; } ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! fi ! if test $HAVE_PCRE_CONFIG = yes; then ! XTRA_CXXFLAGS="$XTRA_CXXFLAGS `pcre-config --cflags`" ! REGEX_LIBS="`pcre-config --libs`" else ! REGEX_LIBS="-lpcre" fi save_LIBS="$LIBS" LIBS="$REGEX_LIBS $LIBS" for ac_func in pcre_compile do : ac_fn_c_check_func "$LINENO" "pcre_compile" "ac_cv_func_pcre_compile" ! if test "x$ac_cv_func_pcre_compile" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PCRE_COMPILE 1 _ACEOF else ! as_fn_error $? "$pcre_fail_msg" "$LINENO" 5 fi done LIBS="$save_LIBS" else ! as_fn_error $? "$pcre_fail_msg" "$LINENO" 5 fi ### Check for ZLIB library. *************** *** 30318,30324 **** for ac_header in zlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" ! if test "x$ac_cv_header_zlib_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ZLIB_H 1 _ACEOF --- 31877,31883 ---- for ac_header in zlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" ! if test "x$ac_cv_header_zlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ZLIB_H 1 _ACEOF *************** *** 30449,30455 **** for ac_header in hdf5.h do : ac_fn_c_check_header_mongrel "$LINENO" "hdf5.h" "ac_cv_header_hdf5_h" "$ac_includes_default" ! if test "x$ac_cv_header_hdf5_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_HDF5_H 1 _ACEOF --- 32008,32014 ---- for ac_header in hdf5.h do : ac_fn_c_check_header_mongrel "$LINENO" "hdf5.h" "ac_cv_header_hdf5_h" "$ac_includes_default" ! if test "x$ac_cv_header_hdf5_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_HDF5_H 1 _ACEOF *************** *** 30504,30510 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether HDF5 library has enforced version 1.6 API" >&5 $as_echo_n "checking whether HDF5 library has enforced version 1.6 API... " >&6; } ! if test "${octave_cv_hdf5_has_enforced_16_api+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 32063,32069 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether HDF5 library has enforced version 1.6 API" >&5 $as_echo_n "checking whether HDF5 library has enforced version 1.6 API... " >&6; } ! if ${octave_cv_hdf5_has_enforced_16_api+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 30556,30562 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _HDF5USEDLL_ needs to be defined" >&5 $as_echo_n "checking if _HDF5USEDLL_ needs to be defined... " >&6; } ! if test "${octave_cv_hdf5_dll+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 32115,32121 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _HDF5USEDLL_ needs to be defined" >&5 $as_echo_n "checking if _HDF5USEDLL_ needs to be defined... " >&6; } ! if ${octave_cv_hdf5_dll+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 30706,30712 **** for ac_header in fftw3.h do : ac_fn_c_check_header_mongrel "$LINENO" "fftw3.h" "ac_cv_header_fftw3_h" "$ac_includes_default" ! if test "x$ac_cv_header_fftw3_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FFTW3_H 1 _ACEOF --- 32265,32271 ---- for ac_header in fftw3.h do : ac_fn_c_check_header_mongrel "$LINENO" "fftw3.h" "ac_cv_header_fftw3_h" "$ac_includes_default" ! if test "x$ac_cv_header_fftw3_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FFTW3_H 1 _ACEOF *************** *** 30831,30837 **** for ac_header in fftw3.h do : ac_fn_c_check_header_mongrel "$LINENO" "fftw3.h" "ac_cv_header_fftw3_h" "$ac_includes_default" ! if test "x$ac_cv_header_fftw3_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FFTW3_H 1 _ACEOF --- 32390,32396 ---- for ac_header in fftw3.h do : ac_fn_c_check_header_mongrel "$LINENO" "fftw3.h" "ac_cv_header_fftw3_h" "$ac_includes_default" ! if test "x$ac_cv_header_fftw3_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FFTW3_H 1 _ACEOF *************** *** 31105,31111 **** for ac_header in curl/curl.h do : ac_fn_c_check_header_mongrel "$LINENO" "curl/curl.h" "ac_cv_header_curl_curl_h" "$ac_includes_default" ! if test "x$ac_cv_header_curl_curl_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_CURL_CURL_H 1 _ACEOF --- 32664,32670 ---- for ac_header in curl/curl.h do : ac_fn_c_check_header_mongrel "$LINENO" "curl/curl.h" "ac_cv_header_curl_curl_h" "$ac_includes_default" ! if test "x$ac_cv_header_curl_curl_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_CURL_CURL_H 1 _ACEOF *************** *** 31228,31234 **** ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_fn_cxx_check_header_mongrel "$LINENO" "Magick++.h" "ac_cv_header_Magickpp_h" "$ac_includes_default" ! if test "x$ac_cv_header_Magickpp_h" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Magick::ColorRGB in Magick++.h" >&5 $as_echo_n "checking for Magick::ColorRGB in Magick++.h... " >&6; } --- 32787,32793 ---- ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_fn_cxx_check_header_mongrel "$LINENO" "Magick++.h" "ac_cv_header_Magickpp_h" "$ac_includes_default" ! if test "x$ac_cv_header_Magickpp_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Magick::ColorRGB in Magick++.h" >&5 $as_echo_n "checking for Magick::ColorRGB in Magick++.h... " >&6; } *************** *** 31323,31329 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${LD-ld} accepts -framework OpenGL" >&5 $as_echo_n "checking whether ${LD-ld} accepts -framework OpenGL... " >&6; } ! if test "${octave_cv_framework_OpenGL+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 32882,32888 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${LD-ld} accepts -framework OpenGL" >&5 $as_echo_n "checking whether ${LD-ld} accepts -framework OpenGL... " >&6; } ! if ${octave_cv_framework_OpenGL+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 31407,31413 **** $as_echo "$as_me: adding -Wl,-framework -Wl,OpenGL to OPENGL_LIBS" >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gluTessCallback is called with \"(...)\"" >&5 $as_echo_n "checking whether gluTessCallback is called with \"(...)\"... " >&6; } ! if test "${octave_cv_glutesscallback_threedots+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=cpp --- 32966,32972 ---- $as_echo "$as_me: adding -Wl,-framework -Wl,OpenGL to OPENGL_LIBS" >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gluTessCallback is called with \"(...)\"" >&5 $as_echo_n "checking whether gluTessCallback is called with \"(...)\"... " >&6; } ! if ${octave_cv_glutesscallback_threedots+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=cpp *************** *** 31467,31473 **** for ac_header in windows.h do : ac_fn_c_check_header_mongrel "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default" ! if test "x$ac_cv_header_windows_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINDOWS_H 1 _ACEOF --- 33026,33032 ---- for ac_header in windows.h do : ac_fn_c_check_header_mongrel "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default" ! if test "x$ac_cv_header_windows_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINDOWS_H 1 _ACEOF *************** *** 31571,31577 **** *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for glEnable in -lGL" >&5 $as_echo_n "checking for glEnable in -lGL... " >&6; } ! if test "${ac_cv_lib_GL_glEnable+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 33130,33136 ---- *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for glEnable in -lGL" >&5 $as_echo_n "checking for glEnable in -lGL... " >&6; } ! if ${ac_cv_lib_GL_glEnable+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 31613,31619 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_GL_glEnable" >&5 $as_echo "$ac_cv_lib_GL_glEnable" >&6; } ! if test "x$ac_cv_lib_GL_glEnable" = x""yes; then : OPENGL_LIBS="-lGL -lGLU" fi --- 33172,33178 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_GL_glEnable" >&5 $as_echo "$ac_cv_lib_GL_glEnable" >&6; } ! if test "x$ac_cv_lib_GL_glEnable" = xyes; then : OPENGL_LIBS="-lGL -lGLU" fi *************** *** 31685,31691 **** set dummy freetype-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_path_FT2_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $FT2_CONFIG in --- 33244,33250 ---- set dummy freetype-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_path_FT2_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $FT2_CONFIG in *************** *** 32013,32019 **** set dummy fltk-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_path_FLTK_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $FLTK_CONFIG in --- 33572,33578 ---- set dummy fltk-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_path_FLTK_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $FLTK_CONFIG in *************** *** 32068,32092 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenGL support in FLTK" >&5 $as_echo_n "checking for OpenGL support in FLTK... " >&6; } ! cat > conftest.cc < ! int nothing=0; ! EOF ! $CXX $CXXFLAGS $FLTK_CFLAGS -c conftest.cc || \ ! warn_fltk_opengl="FLTK does not have OpenGL support. Native graphics will be disabled." - if test -z "$warn_fltk_opengl"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } $as_echo "#define HAVE_FLTK 1" >>confdefs.h GRAPHICS_CFLAGS="$FLTK_CFLAGS" GRAPHICS_LIBS="$FLTK_LDFLAGS" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } fi fi fi --- 33627,33675 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenGL support in FLTK" >&5 $as_echo_n "checking for OpenGL support in FLTK... " >&6; } ! save_CFLAGS="$CFLAGS" ! CFLAGS="$CFLAGS $FLTK_CFLAGS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! #include ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! int nothing = 0; ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! warn_fltk_opengl="FLTK does not have OpenGL support. Native graphics will be disabled." ! ! else $as_echo "#define HAVE_FLTK 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + + fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + if test -z "$warn_fltk_opengl"; then GRAPHICS_CFLAGS="$FLTK_CFLAGS" GRAPHICS_LIBS="$FLTK_LDFLAGS" fi + CFLAGS="$save_CFLAGS" fi fi *************** *** 32117,32124 **** ! macro_version='2.2.6b' ! macro_revision='1.3017' --- 33700,33707 ---- ! macro_version='2.4' ! macro_revision='1.3293' *************** *** 32134,32142 **** ltmain="$ac_aux_dir/ltmain.sh" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } ! if test "${ac_cv_path_SED+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ --- 33717,33794 ---- ltmain="$ac_aux_dir/ltmain.sh" + # Backslashify metacharacters that are still active within + # double-quoted strings. + sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + + # Same as above, but do not quote variable references. + double_quote_subst='s/\(["`\\]\)/\\\1/g' + + # Sed substitution to delay expansion of an escaped shell variable in a + # double_quote_subst'ed string. + delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + + # Sed substitution to delay expansion of an escaped single quote. + delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + + # Sed substitution to avoid accidental globbing in evaled expressions + no_glob_subst='s/\*/\\\*/g' + + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 + $as_echo_n "checking how to print strings... " >&6; } + # Test print first, because it will be a builtin if present. + if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' + elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' + else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF + $1 + _LTECHO_EOF' + } + ECHO='func_fallback_echo' + fi + + # func_echo_all arg... + # Invoke $ECHO with all args, space-separated. + func_echo_all () + { + $ECHO "" + } + + case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 + $as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 + $as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 + $as_echo "cat" >&6; } ;; + esac + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } ! if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ *************** *** 32218,32224 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } ! if test "${ac_cv_path_FGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 --- 33870,33876 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } ! if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 *************** *** 32349,32355 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi ! if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then --- 34001,34007 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi ! if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then *************** *** 32389,32395 **** test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } ! if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. --- 34041,34047 ---- test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } ! if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. *************** *** 32416,32422 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } ! if test "${lt_cv_path_NM+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then --- 34068,34074 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } ! if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then *************** *** 32469,32482 **** NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. ! if test -n "$ac_tool_prefix"; then ! for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then --- 34121,34137 ---- NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. ! if test -n "$DUMPBIN"; then : ! # Let the user override the test. ! else ! if test -n "$ac_tool_prefix"; then ! for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then *************** *** 32514,32526 **** fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN ! for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then --- 34169,34181 ---- fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN ! for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then *************** *** 32569,32574 **** --- 34224,34238 ---- fi fi + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" *************** *** 32583,32600 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } ! if test "${lt_cv_nm_interface+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext ! (eval echo "\"\$as_me:32591: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 ! (eval echo "\"\$as_me:32594: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 ! (eval echo "\"\$as_me:32597: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" --- 34247,34264 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } ! if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext ! (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 ! (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 ! (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" *************** *** 32618,32624 **** # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } ! if test "${lt_cv_sys_max_cmd_len+set}" = set; then : $as_echo_n "(cached) " >&6 else i=0 --- 34282,34288 ---- # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } ! if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 *************** *** 32651,32656 **** --- 34315,34325 ---- lt_cv_sys_max_cmd_len=8192; ;; + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. *************** *** 32715,32722 **** # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. ! while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ ! = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` --- 34384,34391 ---- # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. ! while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ ! = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` *************** *** 32758,32765 **** # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" ! test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ ! = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes --- 34427,34434 ---- # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" ! test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ ! = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes *************** *** 32808,32816 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } ! if test "${lt_cv_ld_reload_flag+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' --- 34477,34559 ---- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 + $as_echo_n "checking how to convert $build file names to $host format... " >&6; } + if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 + else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + esac + + fi + + to_host_file_cmd=$lt_cv_to_host_file_cmd + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 + $as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 + $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } + if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 + else + #assume ordinary cross tools, or native build. + lt_cv_to_tool_file_cmd=func_convert_file_noop + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; + esac + + fi + + to_tool_file_cmd=$lt_cv_to_tool_file_cmd + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 + $as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } ! if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' *************** *** 32824,32829 **** --- 34567,34577 ---- esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' *************** *** 32846,32852 **** set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then --- 34594,34600 ---- set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then *************** *** 32886,32892 **** set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then --- 34634,34640 ---- set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then *************** *** 32942,32948 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } ! if test "${lt_cv_deplibs_check_method+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' --- 34690,34696 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } ! if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' *************** *** 32984,32999 **** # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. ! if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else ! lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; ! cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' --- 34732,34749 ---- # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. ! # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. ! if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else ! # Keep this pattern in sync with the one in func_win32_libid. ! lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; ! cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' *************** *** 33023,33028 **** --- 34773,34782 ---- lt_cv_deplibs_check_method=pass_all ;; + haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in *************** *** 33031,33041 **** lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) ! lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) ! lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac --- 34785,34795 ---- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) ! lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) ! lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac *************** *** 33138,33143 **** --- 34892,34912 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } + + file_magic_glob= + want_nocaseglob=no + if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac + fi + file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown *************** *** 33153,33168 **** if test -n "$ac_tool_prefix"; then ! # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. ! set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else ! if test -n "$AR"; then ! ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH --- 34922,34947 ---- + + + + + + + + + + if test -n "$ac_tool_prefix"; then ! # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. ! set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else ! if test -n "$DLLTOOL"; then ! ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH *************** *** 33171,33177 **** test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi --- 34950,34956 ---- test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi *************** *** 33181,33190 **** fi fi ! AR=$ac_cv_prog_AR ! if test -n "$AR"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 ! $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } --- 34960,34969 ---- fi fi ! DLLTOOL=$ac_cv_prog_DLLTOOL ! if test -n "$DLLTOOL"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 ! $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } *************** *** 33192,33208 **** fi ! if test -z "$ac_cv_prog_AR"; then ! ac_ct_AR=$AR ! # Extract the first word of "ar", so it can be a program name with args. ! set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else ! if test -n "$ac_ct_AR"; then ! ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH --- 34971,34987 ---- fi ! if test -z "$ac_cv_prog_DLLTOOL"; then ! ac_ct_DLLTOOL=$DLLTOOL ! # Extract the first word of "dlltool", so it can be a program name with args. ! set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else ! if test -n "$ac_ct_DLLTOOL"; then ! ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH *************** *** 33211,33217 **** test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi --- 34990,34996 ---- test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi *************** *** 33221,33237 **** fi fi ! ac_ct_AR=$ac_cv_prog_ac_ct_AR ! if test -n "$ac_ct_AR"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 ! $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ! if test "x$ac_ct_AR" = x; then ! AR="false" else case $cross_compiling:$ac_tool_warned in yes:) --- 35000,35016 ---- fi fi ! ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL ! if test -n "$ac_ct_DLLTOOL"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 ! $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ! if test "x$ac_ct_DLLTOOL" = x; then ! DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) *************** *** 33239,33256 **** $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac ! AR=$ac_ct_AR fi else ! AR="$ac_cv_prog_AR" fi ! test -z "$AR" && AR=ar ! test -z "$AR_FLAGS" && AR_FLAGS=cru --- 35018,35068 ---- $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac ! DLLTOOL=$ac_ct_DLLTOOL fi else ! DLLTOOL="$ac_cv_prog_DLLTOOL" fi ! test -z "$DLLTOOL" && DLLTOOL=dlltool ! ! ! ! + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 + $as_echo_n "checking how to associate runtime and link libraries... " >&6; } + if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 + else + lt_cv_sharedlib_from_linklib_cmd='unknown' + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; + *) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; + esac + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 + $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } + sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd + test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO *************** *** 33259,33273 **** if test -n "$ac_tool_prefix"; then ! # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. ! set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else ! if test -n "$STRIP"; then ! ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH --- 35071,35087 ---- if test -n "$ac_tool_prefix"; then ! for ac_prog in ar ! do ! # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ! set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else ! if test -n "$AR"; then ! ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH *************** *** 33276,33282 **** test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi --- 35090,35096 ---- test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi *************** *** 33286,33313 **** fi fi ! STRIP=$ac_cv_prog_STRIP ! if test -n "$STRIP"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 ! $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi ! if test -z "$ac_cv_prog_STRIP"; then ! ac_ct_STRIP=$STRIP ! # Extract the first word of "strip", so it can be a program name with args. ! set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else ! if test -n "$ac_ct_STRIP"; then ! ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH --- 35100,35131 ---- fi fi ! AR=$ac_cv_prog_AR ! if test -n "$AR"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 ! $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi + test -n "$AR" && break + done fi ! if test -z "$AR"; then ! ac_ct_AR=$AR ! for ac_prog in ar ! do ! # Extract the first word of "$ac_prog", so it can be a program name with args. ! set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else ! if test -n "$ac_ct_AR"; then ! ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH *************** *** 33316,33322 **** test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi --- 35134,35140 ---- test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi *************** *** 33326,33342 **** fi fi ! ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP ! if test -n "$ac_ct_STRIP"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 ! $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ! if test "x$ac_ct_STRIP" = x; then ! STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) --- 35144,35164 ---- fi fi ! ac_ct_AR=$ac_cv_prog_ac_ct_AR ! if test -n "$ac_ct_AR"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 ! $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ! ! test -n "$ac_ct_AR" && break ! done ! ! if test "x$ac_ct_AR" = x; then ! AR="false" else case $cross_compiling:$ac_tool_warned in yes:) *************** *** 33344,33372 **** $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac ! STRIP=$ac_ct_STRIP fi - else - STRIP="$ac_cv_prog_STRIP" fi ! test -z "$STRIP" && STRIP=: ! if test -n "$ac_tool_prefix"; then ! # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. ! set dummy ${ac_tool_prefix}ranlib; ac_word=$2 ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ! $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_RANLIB+set}" = set; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$RANLIB"; then ! ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH --- 35166,35363 ---- $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac ! AR=$ac_ct_AR fi fi ! : ${AR=ar} ! : ${AR_FLAGS=cru} ! ! ! ! ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 ! $as_echo_n "checking for archiver @FILE support... " >&6; } ! if ${lt_cv_ar_at_file+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! lt_cv_ar_at_file=no ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ! echo conftest.$ac_objext > conftest.lst ! lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' ! { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ! (eval $lt_ar_try) 2>&5 ! ac_status=$? ! $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ! test $ac_status = 0; } ! if test "$ac_status" -eq 0; then ! # Ensure the archiver fails upon bogus file names. ! rm -f conftest.$ac_objext libconftest.a ! { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ! (eval $lt_ar_try) 2>&5 ! ac_status=$? ! $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ! test $ac_status = 0; } ! if test "$ac_status" -ne 0; then ! lt_cv_ar_at_file=@ ! fi ! fi ! rm -f conftest.* libconftest.a ! ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 ! $as_echo "$lt_cv_ar_at_file" >&6; } ! ! if test "x$lt_cv_ar_at_file" = xno; then ! archiver_list_spec= ! else ! archiver_list_spec=$lt_cv_ar_at_file ! fi ! ! ! ! ! ! ! ! if test -n "$ac_tool_prefix"; then ! # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. ! set dummy ${ac_tool_prefix}strip; ac_word=$2 ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ! $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_STRIP+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$STRIP"; then ! ac_cv_prog_STRIP="$STRIP" # Let the user override the test. ! else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_STRIP="${ac_tool_prefix}strip" ! $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done ! done ! IFS=$as_save_IFS ! ! fi ! fi ! STRIP=$ac_cv_prog_STRIP ! if test -n "$STRIP"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 ! $as_echo "$STRIP" >&6; } ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! fi ! ! ! fi ! if test -z "$ac_cv_prog_STRIP"; then ! ac_ct_STRIP=$STRIP ! # Extract the first word of "strip", so it can be a program name with args. ! set dummy strip; ac_word=$2 ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ! $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_STRIP+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$ac_ct_STRIP"; then ! ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. ! else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_ac_ct_STRIP="strip" ! $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done ! done ! IFS=$as_save_IFS ! ! fi ! fi ! ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP ! if test -n "$ac_ct_STRIP"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 ! $as_echo "$ac_ct_STRIP" >&6; } ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! fi ! ! if test "x$ac_ct_STRIP" = x; then ! STRIP=":" ! else ! case $cross_compiling:$ac_tool_warned in ! yes:) ! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ! ac_tool_warned=yes ;; ! esac ! STRIP=$ac_ct_STRIP ! fi ! else ! STRIP="$ac_cv_prog_STRIP" ! fi ! ! test -z "$STRIP" && STRIP=: ! ! ! ! ! ! ! if test -n "$ac_tool_prefix"; then ! # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. ! set dummy ${ac_tool_prefix}ranlib; ac_word=$2 ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ! $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_RANLIB+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$RANLIB"; then ! ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH *************** *** 33402,33408 **** set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then --- 35393,35399 ---- set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then *************** *** 33473,33478 **** --- 35464,35481 ---- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi + case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; + esac + + + + + + *************** *** 33519,33525 **** # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } ! if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 35522,35528 ---- # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } ! if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 33580,33587 **** lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address ! lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" ! lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= --- 35583,35590 ---- lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address ! lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" ! lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= *************** *** 33617,33622 **** --- 35620,35626 ---- else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no *************** *** 33642,33649 **** test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm ! if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 ! (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then --- 35646,35653 ---- test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm ! if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 ! (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then *************** *** 33658,33663 **** --- 35662,35679 ---- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext + /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ + #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) + /* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ + # define LT_DLSYM_CONST + #elif defined(__osf__) + /* This system does not cope well with relocations in const data. */ + # define LT_DLSYM_CONST + #else + # define LT_DLSYM_CONST const + #endif + #ifdef __cplusplus extern "C" { #endif *************** *** 33669,33675 **** cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ ! const struct { const char *name; void *address; } --- 35685,35691 ---- cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ ! LT_DLSYM_CONST struct { const char *name; void *address; } *************** *** 33695,33702 **** _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext ! lt_save_LIBS="$LIBS" ! lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 --- 35711,35718 ---- _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext ! lt_globsym_save_LIBS=$LIBS ! lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 *************** *** 33706,33713 **** test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi ! LIBS="$lt_save_LIBS" ! CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi --- 35722,35729 ---- test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi ! LIBS=$lt_globsym_save_LIBS ! CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi *************** *** 33744,33749 **** --- 35760,35777 ---- $as_echo "ok" >&6; } fi + # Response file support. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' + elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' + fi + + + + + + *************** *** 33765,33770 **** --- 35793,35835 ---- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 + $as_echo_n "checking for sysroot... " >&6; } + + # Check whether --with-sysroot was given. + if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; + else + with_sysroot=no + fi + + + lt_sysroot= + case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 + $as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 + $as_echo "${lt_sysroot:-no}" >&6; } + + + + + # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; *************** *** 33796,33802 **** ;; *-*-irix6*) # Find out which ABI we are using. ! echo '#line 33799 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? --- 35861,35867 ---- ;; *-*-irix6*) # Find out which ABI we are using. ! echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? *************** *** 33890,33896 **** CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } ! if test "${lt_cv_cc_needs_belf+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=c --- 35955,35961 ---- CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } ! if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c *************** *** 33966,33971 **** --- 36031,36153 ---- need_locks="$enable_libtool_lock" + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. + set dummy ${ac_tool_prefix}mt; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + IFS=$as_save_IFS + + fi + fi + MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL + if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 + $as_echo "$MANIFEST_TOOL" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + fi + if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. + set dummy mt; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + IFS=$as_save_IFS + + fi + fi + ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL + if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 + $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in + yes:) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 + $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} + ac_tool_warned=yes ;; + esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi + else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" + fi + + test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 + $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } + if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 + else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 + $as_echo "$lt_cv_path_mainfest_tool" >&6; } + if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: + fi + + + + + case $host_os in rhapsody* | darwin*) *************** *** 33974,33980 **** set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then --- 36156,36162 ---- set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then *************** *** 34014,34020 **** set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then --- 36196,36202 ---- set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then *************** *** 34066,34072 **** set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then --- 36248,36254 ---- set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then *************** *** 34106,34112 **** set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then --- 36288,36294 ---- set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then *************** *** 34158,34164 **** set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then --- 36340,36346 ---- set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then *************** *** 34198,34204 **** set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then --- 36380,36386 ---- set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then *************** *** 34250,34256 **** set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then --- 36432,36438 ---- set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then *************** *** 34290,34296 **** set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then --- 36472,36478 ---- set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then *************** *** 34342,34348 **** set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then --- 36524,36530 ---- set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then *************** *** 34382,34388 **** set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then --- 36564,36570 ---- set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then *************** *** 34457,34463 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } ! if test "${lt_cv_apple_cc_single_mod+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no --- 36639,36645 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } ! if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no *************** *** 34486,34492 **** $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } ! if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no --- 36668,36674 ---- $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } ! if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no *************** *** 34524,34529 **** --- 36706,36743 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 + $as_echo_n "checking for -force_load linker flag... " >&6; } + if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 + else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF + int forced_loaded() { return 2;} + _LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF + int main() { return 0;} + _LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 + $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; *************** *** 34551,34557 **** else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi ! if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= --- 36765,36771 ---- else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi ! if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= *************** *** 34563,34569 **** do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " ! if test "x$ac_cv_header_dlfcn_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF --- 36777,36783 ---- do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " ! if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF *************** *** 34574,34600 **** ! ac_ext=cpp ! ac_cpp='$CXXCPP $CPPFLAGS' ! ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ! ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ! if test -z "$CXX"; then ! if test -n "$CCC"; then ! CXX=$CCC ! else ! if test -n "$ac_tool_prefix"; then ! for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC ! do ! # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ! set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else ! if test -n "$CXX"; then ! ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH --- 36788,36850 ---- ! func_stripname_cnf () ! { ! case ${2} in ! .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; ! *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; ! esac ! } # func_stripname_cnf ! ! ! ! ! ! # Set options ! # Check whether --enable-static was given. ! if test "${enable_static+set}" = set; then : ! enableval=$enable_static; p=${PACKAGE-default} ! case $enableval in ! yes) enable_static=yes ;; ! no) enable_static=no ;; ! *) ! enable_static=no ! # Look at the argument we got. We use all the common list separators. ! lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," ! for pkg in $enableval; do ! IFS="$lt_save_ifs" ! if test "X$pkg" = "X$p"; then ! enable_static=yes ! fi ! done ! IFS="$lt_save_ifs" ! ;; ! esac ! else ! enable_static=no ! fi ! ! ! ! ! ! ! ! enable_dlopen=yes ! enable_win32_dll=yes ! ! case $host in ! *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) ! if test -n "$ac_tool_prefix"; then ! # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. ! set dummy ${ac_tool_prefix}as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_AS+:} false; then : $as_echo_n "(cached) " >&6 else ! if test -n "$AS"; then ! ac_cv_prog_AS="$AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH *************** *** 34603,34609 **** test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi --- 36853,36859 ---- test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_AS="${ac_tool_prefix}as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi *************** *** 34613,34644 **** fi fi ! CXX=$ac_cv_prog_CXX ! if test -n "$CXX"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 ! $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - test -n "$CXX" && break - done fi ! if test -z "$CXX"; then ! ac_ct_CXX=$CXX ! for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC ! do ! # Extract the first word of "$ac_prog", so it can be a program name with args. ! set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else ! if test -n "$ac_ct_CXX"; then ! ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH --- 36863,36890 ---- fi fi ! AS=$ac_cv_prog_AS ! if test -n "$AS"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 ! $as_echo "$AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi ! if test -z "$ac_cv_prog_AS"; then ! ac_ct_AS=$AS ! # Extract the first word of "as", so it can be a program name with args. ! set dummy as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_AS+:} false; then : $as_echo_n "(cached) " >&6 else ! if test -n "$ac_ct_AS"; then ! ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH *************** *** 34647,34653 **** test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi --- 36893,36899 ---- test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_ac_ct_AS="as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi *************** *** 34657,34677 **** fi fi ! ac_ct_CXX=$ac_cv_prog_ac_ct_CXX ! if test -n "$ac_ct_CXX"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 ! $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ! ! test -n "$ac_ct_CXX" && break ! done ! ! if test "x$ac_ct_CXX" = x; then ! CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) --- 36903,36919 ---- fi fi ! ac_ct_AS=$ac_cv_prog_ac_ct_AS ! if test -n "$ac_ct_AS"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 ! $as_echo "$ac_ct_AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ! if test "x$ac_ct_AS" = x; then ! AS="false" else case $cross_compiling:$ac_tool_warned in yes:) *************** *** 34679,35153 **** $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac ! CXX=$ac_ct_CXX fi fi fi - fi - # Provide some information about the compiler. - $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 - set X $ac_compile - ac_compiler=$2 - for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" - case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac - eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" - $as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ - ... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } done ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 ! $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } ! if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : ! $as_echo_n "(cached) " >&6 else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } - #endif - int - main () - { - #ifndef __GNUC__ - choke me - #endif - ; - return 0; - } - _ACEOF - if ac_fn_cxx_try_compile "$LINENO"; then : - ac_compiler_gnu=yes - else - ac_compiler_gnu=no fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 - $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } - if test $ac_compiler_gnu = yes; then - GXX=yes - else - GXX= fi ! ac_test_CXXFLAGS=${CXXFLAGS+set} ! ac_save_CXXFLAGS=$CXXFLAGS ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 ! $as_echo_n "checking whether $CXX accepts -g... " >&6; } ! if test "${ac_cv_prog_cxx_g+set}" = set; then : ! $as_echo_n "(cached) " >&6 else ! ac_save_cxx_werror_flag=$ac_cxx_werror_flag ! ac_cxx_werror_flag=yes ! ac_cv_prog_cxx_g=no ! CXXFLAGS="-g" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_cxx_try_compile "$LINENO"; then : ! ac_cv_prog_cxx_g=yes ! else ! CXXFLAGS="" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_cxx_try_compile "$LINENO"; then : ! ! else ! ac_cxx_werror_flag=$ac_save_cxx_werror_flag ! CXXFLAGS="-g" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_cxx_try_compile "$LINENO"; then : ! ac_cv_prog_cxx_g=yes ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! ac_cxx_werror_flag=$ac_save_cxx_werror_flag ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 ! $as_echo "$ac_cv_prog_cxx_g" >&6; } ! if test "$ac_test_CXXFLAGS" = set; then ! CXXFLAGS=$ac_save_CXXFLAGS ! elif test $ac_cv_prog_cxx_g = yes; then ! if test "$GXX" = yes; then ! CXXFLAGS="-g -O2" ! else ! CXXFLAGS="-g" ! fi ! else ! if test "$GXX" = yes; then ! CXXFLAGS="-O2" ! else ! CXXFLAGS= ! fi fi - ac_ext=c - ac_cpp='$CPP $CPPFLAGS' - ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' - ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' - ac_compiler_gnu=$ac_cv_c_compiler_gnu - - depcc="$CXX" am_compiler_list= - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 - $as_echo_n "checking dependency style of $depcc... " >&6; } - if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub ! am_cv_CXX_dependencies_compiler_type=none ! if test "$am_compiler_list" = ""; then ! am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CXX_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir - else - am_cv_CXX_dependencies_compiler_type=none - fi - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 - $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } - CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then - am__fastdepCXX_TRUE= - am__fastdepCXX_FALSE='#' - else - am__fastdepCXX_TRUE='#' - am__fastdepCXX_FALSE= - fi - - - if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - ac_ext=cpp - ac_cpp='$CXXCPP $CPPFLAGS' - ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' - ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' - ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 - $as_echo_n "checking how to run the C++ preprocessor... " >&6; } - if test -z "$CXXCPP"; then - if test "${ac_cv_prog_CXXCPP+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - # Double quotes because CXXCPP needs to be expanded - for CXXCPP in "$CXX -E" "/lib/cpp" - do - ac_preproc_ok=false - for ac_cxx_preproc_warn_flag in '' yes - do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #ifdef __STDC__ - # include - #else - # include - #endif - Syntax error - _ACEOF - if ac_fn_cxx_try_cpp "$LINENO"; then : - - else - # Broken: fails on valid input. - continue - fi - rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - _ACEOF - if ac_fn_cxx_try_cpp "$LINENO"; then : - # Broken: success on invalid input. - continue - else - # Passes both tests. - ac_preproc_ok=: - break - fi - rm -f conftest.err conftest.i conftest.$ac_ext - - done - # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. - rm -f conftest.i conftest.err conftest.$ac_ext - if $ac_preproc_ok; then : - break - fi - - done - ac_cv_prog_CXXCPP=$CXXCPP - - fi - CXXCPP=$ac_cv_prog_CXXCPP - else - ac_cv_prog_CXXCPP=$CXXCPP - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 - $as_echo "$CXXCPP" >&6; } - ac_preproc_ok=false - for ac_cxx_preproc_warn_flag in '' yes - do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #ifdef __STDC__ - # include - #else - # include - #endif - Syntax error - _ACEOF - if ac_fn_cxx_try_cpp "$LINENO"; then : - - else - # Broken: fails on valid input. - continue - fi - rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - _ACEOF - if ac_fn_cxx_try_cpp "$LINENO"; then : - # Broken: success on invalid input. - continue - else - # Passes both tests. - ac_preproc_ok=: - break - fi - rm -f conftest.err conftest.i conftest.$ac_ext - - done - # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. - rm -f conftest.i conftest.err conftest.$ac_ext - if $ac_preproc_ok; then : - - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 - $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - _lt_caught_CXX_error=yes; } - fi - - ac_ext=c - ac_cpp='$CPP $CPPFLAGS' - ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' - ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' - ac_compiler_gnu=$ac_cv_c_compiler_gnu - else ! _lt_caught_CXX_error=yes fi ! ! ! ! ac_ext=f ! ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ! ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_f77_compiler_gnu ! if test -n "$ac_tool_prefix"; then ! for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn ! do ! # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ! set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_F77+set}" = set; then : $as_echo_n "(cached) " >&6 else ! if test -n "$F77"; then ! ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH --- 36921,37034 ---- $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac ! AS=$ac_ct_AS fi + else + AS="$ac_cv_prog_AS" fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. + set dummy ${ac_tool_prefix}dlltool; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi done + done + IFS=$as_save_IFS ! fi ! fi ! DLLTOOL=$ac_cv_prog_DLLTOOL ! if test -n "$DLLTOOL"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 ! $as_echo "$DLLTOOL" >&6; } else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! fi fi ! if test -z "$ac_cv_prog_DLLTOOL"; then ! ac_ct_DLLTOOL=$DLLTOOL ! # Extract the first word of "dlltool", so it can be a program name with args. ! set dummy dlltool; ac_word=$2 ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ! $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$ac_ct_DLLTOOL"; then ! ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. ! else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_ac_ct_DLLTOOL="dlltool" ! $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done ! done ! IFS=$as_save_IFS fi fi ! ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL ! if test -n "$ac_ct_DLLTOOL"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 ! $as_echo "$ac_ct_DLLTOOL" >&6; } else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } fi ! if test "x$ac_ct_DLLTOOL" = x; then ! DLLTOOL="false" ! else ! case $cross_compiling:$ac_tool_warned in ! yes:) ! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ! ac_tool_warned=yes ;; ! esac ! DLLTOOL=$ac_ct_DLLTOOL fi else ! DLLTOOL="$ac_cv_prog_DLLTOOL" fi ! if test -n "$ac_tool_prefix"; then ! # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. ! set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else ! if test -n "$OBJDUMP"; then ! ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH *************** *** 35156,35162 **** test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_F77="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi --- 37037,37043 ---- test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi *************** *** 35166,35197 **** fi fi ! F77=$ac_cv_prog_F77 ! if test -n "$F77"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $F77" >&5 ! $as_echo "$F77" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - test -n "$F77" && break - done fi ! if test -z "$F77"; then ! ac_ct_F77=$F77 ! for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn ! do ! # Extract the first word of "$ac_prog", so it can be a program name with args. ! set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_F77+set}" = set; then : $as_echo_n "(cached) " >&6 else ! if test -n "$ac_ct_F77"; then ! ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH --- 37047,37074 ---- fi fi ! OBJDUMP=$ac_cv_prog_OBJDUMP ! if test -n "$OBJDUMP"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 ! $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi ! if test -z "$ac_cv_prog_OBJDUMP"; then ! ac_ct_OBJDUMP=$OBJDUMP ! # Extract the first word of "objdump", so it can be a program name with args. ! set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else ! if test -n "$ac_ct_OBJDUMP"; then ! ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH *************** *** 35200,35206 **** test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_ac_ct_F77="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi --- 37077,37083 ---- test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi *************** *** 35210,35230 **** fi fi ! ac_ct_F77=$ac_cv_prog_ac_ct_F77 ! if test -n "$ac_ct_F77"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_F77" >&5 ! $as_echo "$ac_ct_F77" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ! ! test -n "$ac_ct_F77" && break ! done ! ! if test "x$ac_ct_F77" = x; then ! F77="" else case $cross_compiling:$ac_tool_warned in yes:) --- 37087,37103 ---- fi fi ! ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP ! if test -n "$ac_ct_OBJDUMP"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 ! $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ! if test "x$ac_ct_OBJDUMP" = x; then ! OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) *************** *** 35232,35670 **** $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac ! F77=$ac_ct_F77 fi fi ! ! # Provide some information about the compiler. ! $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 compiler version" >&5 ! set X $ac_compile ! ac_compiler=$2 ! for ac_option in --version -v -V -qversion; do ! { { ac_try="$ac_compiler $ac_option >&5" ! case "(($ac_try" in ! *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ! *) ac_try_echo=$ac_try;; esac - eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" - $as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ - ... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - done - rm -f a.out ! # If we don't use `.F' as extension, the preprocessor is not run on the ! # input file. (Note that this only needs to work for GNU compilers.) ! ac_save_ext=$ac_ext ! ac_ext=F ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Fortran 77 compiler" >&5 ! $as_echo_n "checking whether we are using the GNU Fortran 77 compiler... " >&6; } ! if test "${ac_cv_f77_compiler_gnu+set}" = set; then : ! $as_echo_n "(cached) " >&6 ! else ! cat > conftest.$ac_ext <<_ACEOF ! program main ! #ifndef __GNUC__ ! choke me ! #endif ! ! end ! _ACEOF ! if ac_fn_f77_try_compile "$LINENO"; then : ! ac_compiler_gnu=yes ! else ! ac_compiler_gnu=no ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! ac_cv_f77_compiler_gnu=$ac_compiler_gnu ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_compiler_gnu" >&5 ! $as_echo "$ac_cv_f77_compiler_gnu" >&6; } ! ac_ext=$ac_save_ext ! ac_test_FFLAGS=${FFLAGS+set} ! ac_save_FFLAGS=$FFLAGS ! FFLAGS= ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $F77 accepts -g" >&5 ! $as_echo_n "checking whether $F77 accepts -g... " >&6; } ! if test "${ac_cv_prog_f77_g+set}" = set; then : ! $as_echo_n "(cached) " >&6 ! else ! FFLAGS=-g ! cat > conftest.$ac_ext <<_ACEOF ! program main ! ! end ! _ACEOF ! if ac_fn_f77_try_compile "$LINENO"; then : ! ac_cv_prog_f77_g=yes ! else ! ac_cv_prog_f77_g=no ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_f77_g" >&5 ! $as_echo "$ac_cv_prog_f77_g" >&6; } ! if test "$ac_test_FFLAGS" = set; then ! FFLAGS=$ac_save_FFLAGS ! elif test $ac_cv_prog_f77_g = yes; then ! if test "x$ac_cv_f77_compiler_gnu" = xyes; then ! FFLAGS="-g -O2" ! else ! FFLAGS="-g" ! fi ! else ! if test "x$ac_cv_f77_compiler_gnu" = xyes; then ! FFLAGS="-O2" ! else ! FFLAGS= ! fi ! fi ! ! if test $ac_compiler_gnu = yes; then ! G77=yes ! else ! G77= ! fi ! ac_ext=c ! ac_cpp='$CPP $CPPFLAGS' ! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_c_compiler_gnu ! ! if test -z "$F77" || test "X$F77" = "Xno"; then ! _lt_disable_F77=yes ! fi ! ! ! ! ! # Set options ! # Check whether --enable-static was given. ! if test "${enable_static+set}" = set; then : ! enableval=$enable_static; p=${PACKAGE-default} ! case $enableval in ! yes) enable_static=yes ;; ! no) enable_static=no ;; ! *) ! enable_static=no ! # Look at the argument we got. We use all the common list separators. ! lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," ! for pkg in $enableval; do ! IFS="$lt_save_ifs" ! if test "X$pkg" = "X$p"; then ! enable_static=yes ! fi ! done ! IFS="$lt_save_ifs" ! ;; ! esac ! else ! enable_static=no ! fi ! ! ! ! ! ! ! ! enable_dlopen=yes ! enable_win32_dll=yes ! ! case $host in ! *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) ! if test -n "$ac_tool_prefix"; then ! # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. ! set dummy ${ac_tool_prefix}as; ac_word=$2 ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ! $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_AS+set}" = set; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$AS"; then ! ac_cv_prog_AS="$AS" # Let the user override the test. ! else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_AS="${ac_tool_prefix}as" ! $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done ! done ! IFS=$as_save_IFS ! ! fi ! fi ! AS=$ac_cv_prog_AS ! if test -n "$AS"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 ! $as_echo "$AS" >&6; } ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! fi ! ! ! fi ! if test -z "$ac_cv_prog_AS"; then ! ac_ct_AS=$AS ! # Extract the first word of "as", so it can be a program name with args. ! set dummy as; ac_word=$2 ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ! $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_AS+set}" = set; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$ac_ct_AS"; then ! ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. ! else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_ac_ct_AS="as" ! $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done ! done ! IFS=$as_save_IFS ! ! fi ! fi ! ac_ct_AS=$ac_cv_prog_ac_ct_AS ! if test -n "$ac_ct_AS"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 ! $as_echo "$ac_ct_AS" >&6; } ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! fi ! ! if test "x$ac_ct_AS" = x; then ! AS="false" ! else ! case $cross_compiling:$ac_tool_warned in ! yes:) ! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ! ac_tool_warned=yes ;; ! esac ! AS=$ac_ct_AS ! fi ! else ! AS="$ac_cv_prog_AS" ! fi ! ! if test -n "$ac_tool_prefix"; then ! # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. ! set dummy ${ac_tool_prefix}dlltool; ac_word=$2 ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ! $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_DLLTOOL+set}" = set; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$DLLTOOL"; then ! ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. ! else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" ! $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done ! done ! IFS=$as_save_IFS ! ! fi ! fi ! DLLTOOL=$ac_cv_prog_DLLTOOL ! if test -n "$DLLTOOL"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 ! $as_echo "$DLLTOOL" >&6; } ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! fi ! ! ! fi ! if test -z "$ac_cv_prog_DLLTOOL"; then ! ac_ct_DLLTOOL=$DLLTOOL ! # Extract the first word of "dlltool", so it can be a program name with args. ! set dummy dlltool; ac_word=$2 ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ! $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$ac_ct_DLLTOOL"; then ! ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. ! else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_ac_ct_DLLTOOL="dlltool" ! $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done ! done ! IFS=$as_save_IFS ! ! fi ! fi ! ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL ! if test -n "$ac_ct_DLLTOOL"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 ! $as_echo "$ac_ct_DLLTOOL" >&6; } ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! fi ! ! if test "x$ac_ct_DLLTOOL" = x; then ! DLLTOOL="false" ! else ! case $cross_compiling:$ac_tool_warned in ! yes:) ! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ! ac_tool_warned=yes ;; ! esac ! DLLTOOL=$ac_ct_DLLTOOL ! fi ! else ! DLLTOOL="$ac_cv_prog_DLLTOOL" ! fi ! ! if test -n "$ac_tool_prefix"; then ! # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. ! set dummy ${ac_tool_prefix}objdump; ac_word=$2 ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ! $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_OBJDUMP+set}" = set; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$OBJDUMP"; then ! ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. ! else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" ! $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done ! done ! IFS=$as_save_IFS ! ! fi ! fi ! OBJDUMP=$ac_cv_prog_OBJDUMP ! if test -n "$OBJDUMP"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 ! $as_echo "$OBJDUMP" >&6; } ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! fi ! ! ! fi ! if test -z "$ac_cv_prog_OBJDUMP"; then ! ac_ct_OBJDUMP=$OBJDUMP ! # Extract the first word of "objdump", so it can be a program name with args. ! set dummy objdump; ac_word=$2 ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ! $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$ac_ct_OBJDUMP"; then ! ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. ! else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ! ac_cv_prog_ac_ct_OBJDUMP="objdump" ! $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done ! done ! IFS=$as_save_IFS ! ! fi ! fi ! ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP ! if test -n "$ac_ct_OBJDUMP"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 ! $as_echo "$ac_ct_OBJDUMP" >&6; } ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! fi ! ! if test "x$ac_ct_OBJDUMP" = x; then ! OBJDUMP="false" ! else ! case $cross_compiling:$ac_tool_warned in ! yes:) ! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ! ac_tool_warned=yes ;; ! esac ! OBJDUMP=$ac_ct_OBJDUMP ! fi ! else ! OBJDUMP="$ac_cv_prog_OBJDUMP" ! fi ! ! ;; ! esac ! ! test -z "$AS" && AS=as --- 37105,37120 ---- $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac ! OBJDUMP=$ac_ct_OBJDUMP fi + else + OBJDUMP="$ac_cv_prog_OBJDUMP" fi ! ;; esac ! test -z "$AS" && AS=as *************** *** 35798,35803 **** --- 37248,37254 ---- + test -z "$LN_S" && LN_S="ln -s" *************** *** 35819,35825 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } ! if test "${lt_cv_objdir+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null --- 37270,37276 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } ! if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null *************** *** 35847,35865 **** - - - - - - - - - - - - - case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some --- 37298,37303 ---- *************** *** 35872,35894 **** ;; esac - # Sed substitution that helps us do robust quoting. It backslashifies - # metacharacters that are still active within double-quoted strings. - sed_quote_subst='s/\(["`$\\]\)/\\\1/g' - - # Same as above, but do not quote variable references. - double_quote_subst='s/\(["`\\]\)/\\\1/g' - - # Sed substitution to delay expansion of an escaped shell variable in a - # double_quote_subst'ed string. - delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - - # Sed substitution to delay expansion of an escaped single quote. - delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - - # Sed substitution to avoid accidental globbing in evaled expressions - no_glob_subst='s/\*/\\\*/g' - # Global variables: ofile=libtool can_build_shared=yes --- 37310,37315 ---- *************** *** 35917,35923 **** *) break;; esac done ! cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it --- 37338,37344 ---- *) break;; esac done ! cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it *************** *** 35927,35933 **** if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } ! if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in --- 37348,37354 ---- if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } ! if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in *************** *** 35993,35999 **** if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } ! if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in --- 37414,37420 ---- if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } ! if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in *************** *** 36126,36136 **** lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then ! lt_prog_compiler_no_builtin_flag=' -fno-builtin' { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } ! if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no --- 37547,37562 ---- lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then ! case $cc_basename in ! nvcc*) ! lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; ! *) ! lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; ! esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } ! if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no *************** *** 36146,36160 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:36149: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 ! echo "$as_me:36153: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. ! $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes --- 37572,37586 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. ! $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes *************** *** 36183,36190 **** lt_prog_compiler_pic= lt_prog_compiler_static= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 - $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' --- 37609,37614 ---- *************** *** 36232,36237 **** --- 37656,37667 ---- lt_prog_compiler_pic='-fno-common' ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag *************** *** 36274,36279 **** --- 37704,37716 ---- lt_prog_compiler_pic='-fPIC' ;; esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + lt_prog_compiler_pic='-Xcompiler -fPIC' + ;; + esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in *************** *** 36336,36342 **** lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; ! pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' --- 37773,37785 ---- lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; ! nagfor*) ! # NAG Fortran compiler ! lt_prog_compiler_wl='-Wl,-Wl,,' ! lt_prog_compiler_pic='-PIC' ! lt_prog_compiler_static='-Bstatic' ! ;; ! pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' *************** *** 36348,36372 **** # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; ! xl*) ! # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in ! *Sun\ C*) ! # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ! lt_prog_compiler_wl='-Wl,' ;; ! *Sun\ F*) ! # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ! lt_prog_compiler_wl='' ;; esac ;; --- 37791,37815 ---- # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; ! xl* | bgxl* | bgf* | mpixl*) ! # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in ! *Sun\ F* | *Sun*Fortran*) ! # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ! lt_prog_compiler_wl='' ;; ! *Sun\ C*) ! # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ! lt_prog_compiler_wl='-Wl,' ;; esac ;; *************** *** 36398,36404 **** lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in ! f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; --- 37841,37847 ---- lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in ! f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; *************** *** 36455,36467 **** lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 - $as_echo "$lt_prog_compiler_pic" >&6; } - - - - # # Check to make sure the PIC flag actually works. --- 37898,37914 ---- lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 + $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 + else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 + $as_echo "$lt_cv_prog_compiler_pic" >&6; } + lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. *************** *** 36469,36475 **** if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } ! if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no --- 37916,37922 ---- if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } ! if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no *************** *** 36485,36499 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:36488: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 ! echo "$as_me:36492: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. ! $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes --- 37932,37946 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. ! $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes *************** *** 36522,36534 **** # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } ! if test "${lt_cv_prog_compiler_static_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no --- 37969,37986 ---- + + + + + # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } ! if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no *************** *** 36541,36547 **** if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 ! $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes --- 37993,37999 ---- if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 ! $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes *************** *** 36571,36577 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } ! if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no --- 38023,38029 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } ! if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no *************** *** 36590,36605 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:36593: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:36597: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings ! $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes --- 38042,38057 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings ! $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes *************** *** 36626,36632 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } ! if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no --- 38078,38084 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } ! if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no *************** *** 36645,36660 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:36648: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:36652: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings ! $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes --- 38097,38112 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings ! $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes *************** *** 36764,36776 **** openbsd*) with_gnu_ld=no ;; ! linux* | k*bsd*-gnu) link_all_deplibs=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' --- 38216,38254 ---- openbsd*) with_gnu_ld=no ;; ! linux* | k*bsd*-gnu | gnu*) link_all_deplibs=no ;; esac ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' *************** *** 36804,36814 **** ld_shlibs=no cat <<_LT_EOF 1>&2 ! *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you ! *** really care for shared libraries, you may want to modify your PATH ! *** so that a non-GNU linker is found, and then restart. _LT_EOF fi --- 38282,38293 ---- ld_shlibs=no cat <<_LT_EOF 1>&2 ! *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you ! *** really care for shared libraries, you may want to install binutils ! *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. ! *** You will then need to restart the configuration process. _LT_EOF fi *************** *** 36844,36853 **** # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes ! export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' --- 38323,38334 ---- # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes ! export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ! exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' *************** *** 36865,36870 **** --- 38346,38356 ---- fi ;; + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no *************** *** 36890,36904 **** if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then ! tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler ! whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; ! pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers ! whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; --- 38376,38391 ---- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then ! tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler ! whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; ! pgf77* | pgf90* | pgf95* | pgfortran*) ! # Portland Group f77 and f90 compilers ! whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; *************** *** 36909,36921 **** lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; ! xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 ! whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 --- 38396,38412 ---- lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; ! xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 ! whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 *************** *** 36931,36947 **** fi case $cc_basename in ! xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' ! archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ ! $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac --- 38422,38438 ---- fi case $cc_basename in ! xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' ! archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ ! $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac *************** *** 36955,36962 **** archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else ! archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; --- 38446,38453 ---- archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else ! archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; *************** *** 36974,36981 **** _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ! archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi --- 38465,38472 ---- _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ! archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi *************** *** 37021,37028 **** *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ! archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi --- 38512,38519 ---- *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ! archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi *************** *** 37062,37069 **** else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then ! export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi --- 38553,38562 ---- else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then ! export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi *************** *** 37151,37157 **** allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN --- 38644,38656 ---- allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. ! if test "${lt_cv_aix_libpath+set}" = set; then ! aix_libpath=$lt_cv_aix_libpath ! else ! if ${lt_cv_aix_libpath_+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN *************** *** 37172,37196 **** _ACEOF if ac_fn_c_try_link "$LINENO"; then : ! lt_aix_libpath_sed=' ! /Import File Strings/,/^$/ { ! /^0/ { ! s/^0 *\(.*\)$/\1/ ! p ! } ! }' ! aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! # Check for a 64-bit object if we didn't find anything. ! if test -z "$aix_libpath"; then ! aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" ! archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' --- 38671,38702 ---- _ACEOF if ac_fn_c_try_link "$LINENO"; then : ! lt_aix_libpath_sed=' ! /Import File Strings/,/^$/ { ! /^0/ { ! s/^0 *\([^ ]*\) *$/\1/ ! p ! } ! }' ! lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! # Check for a 64-bit object if we didn't find anything. ! if test -z "$lt_cv_aix_libpath_"; then ! lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! if test -z "$lt_cv_aix_libpath_"; then ! lt_cv_aix_libpath_="/usr/lib:/lib" ! fi ! ! fi ! ! aix_libpath=$lt_cv_aix_libpath_ ! fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" ! archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' *************** *** 37199,37205 **** else # Determine the default libpath from the value encoded in an # empty executable. ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN --- 38705,38717 ---- else # Determine the default libpath from the value encoded in an # empty executable. ! if test "${lt_cv_aix_libpath+set}" = set; then ! aix_libpath=$lt_cv_aix_libpath ! else ! if ${lt_cv_aix_libpath_+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN *************** *** 37220,37249 **** _ACEOF if ac_fn_c_try_link "$LINENO"; then : ! lt_aix_libpath_sed=' ! /Import File Strings/,/^$/ { ! /^0/ { ! s/^0 *\(.*\)$/\1/ ! p ! } ! }' ! aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! # Check for a 64-bit object if we didn't find anything. ! if test -z "$aix_libpath"; then ! aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' ! # Exported symbols can be pulled into shared objects from archives ! whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' --- 38732,38773 ---- _ACEOF if ac_fn_c_try_link "$LINENO"; then : ! lt_aix_libpath_sed=' ! /Import File Strings/,/^$/ { ! /^0/ { ! s/^0 *\([^ ]*\) *$/\1/ ! p ! } ! }' ! lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! # Check for a 64-bit object if we didn't find anything. ! if test -z "$lt_cv_aix_libpath_"; then ! lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! if test -z "$lt_cv_aix_libpath_"; then ! lt_cv_aix_libpath_="/usr/lib:/lib" ! fi ! ! fi ! ! aix_libpath=$lt_cv_aix_libpath_ ! fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' ! if test "$with_gnu_ld" = yes; then ! # We only use this code for GNU lds that support --whole-archive. ! whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ! else ! # Exported symbols can be pulled into shared objects from archives ! whole_archive_flag_spec='$convenience' ! fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' *************** *** 37275,37294 **** # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. ! hardcode_libdir_flag_spec=' ' ! allow_undefined_flag=unsupported ! # Tell ltmain to make .lib files, not .a files. ! libext=lib ! # Tell ltmain to make .dll files, not .so files. ! shrext_cmds=".dll" ! # FIXME: Setting linknames here is a bad hack. ! archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' ! # The linker will automatically build a .lib file if we build a DLL. ! old_archive_from_new_cmds='true' ! # FIXME: Should let the user specify the lib program. ! old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' ! fix_srcfile_path='`cygpath -w "$srcfile"`' ! enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) --- 38799,38861 ---- # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. ! case $cc_basename in ! cl*) ! # Native MSVC ! hardcode_libdir_flag_spec=' ' ! allow_undefined_flag=unsupported ! always_export_symbols=yes ! file_list_spec='@' ! # Tell ltmain to make .lib files, not .a files. ! libext=lib ! # Tell ltmain to make .dll files, not .so files. ! shrext_cmds=".dll" ! # FIXME: Setting linknames here is a bad hack. ! archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ! archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ! sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ! else ! sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ! fi~ ! $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ! linknames=' ! # The linker will not automatically build a static lib if we build a DLL. ! # _LT_TAGVAR(old_archive_from_new_cmds, )='true' ! enable_shared_with_static_runtimes=yes ! export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ! # Don't use ranlib ! old_postinstall_cmds='chmod 644 $oldlib' ! postlink_cmds='lt_outputfile="@OUTPUT@"~ ! lt_tool_outputfile="@TOOL_OUTPUT@"~ ! case $lt_outputfile in ! *.exe|*.EXE) ;; ! *) ! lt_outputfile="$lt_outputfile.exe" ! lt_tool_outputfile="$lt_tool_outputfile.exe" ! ;; ! esac~ ! if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ! $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ! $RM "$lt_outputfile.manifest"; ! fi' ! ;; ! *) ! # Assume MSVC wrapper ! hardcode_libdir_flag_spec=' ' ! allow_undefined_flag=unsupported ! # Tell ltmain to make .lib files, not .a files. ! libext=lib ! # Tell ltmain to make .dll files, not .so files. ! shrext_cmds=".dll" ! # FIXME: Setting linknames here is a bad hack. ! archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ! # The linker will automatically build a .lib file if we build a DLL. ! old_archive_from_new_cmds='true' ! # FIXME: Should let the user specify the lib program. ! old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' ! enable_shared_with_static_runtimes=yes ! ;; ! esac ;; darwin* | rhapsody*) *************** *** 37298,37304 **** hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported ! whole_archive_flag_spec='' link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in --- 38865,38875 ---- hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported ! if test "$lt_cv_ld_force_load" = "yes"; then ! whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' ! else ! whole_archive_flag_spec='' ! fi link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in *************** *** 37306,37312 **** *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then ! output_verbose_link_cmd=echo archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" --- 38877,38883 ---- *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then ! output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" *************** *** 37349,37355 **** # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) ! archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no --- 38920,38926 ---- # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) ! archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no *************** *** 37357,37363 **** hpux9*) if test "$GCC" = yes; then ! archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi --- 38928,38934 ---- hpux9*) if test "$GCC" = yes; then ! archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi *************** *** 37372,37379 **** ;; hpux10*) ! if test "$GCC" = yes -a "$with_gnu_ld" = no; then ! archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi --- 38943,38950 ---- ;; hpux10*) ! if test "$GCC" = yes && test "$with_gnu_ld" = no; then ! archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi *************** *** 37391,37406 **** ;; hpux11*) ! if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) ! archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) ! archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else --- 38962,38977 ---- ;; hpux11*) ! if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) ! archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) ! archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else *************** *** 37412,37418 **** archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) ! archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi --- 38983,39028 ---- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) ! ! # Older versions of the 11.00 compiler do not understand -b yet ! # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 ! $as_echo_n "checking if $CC understands -b... " >&6; } ! if ${lt_cv_prog_compiler__b+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! lt_cv_prog_compiler__b=no ! save_LDFLAGS="$LDFLAGS" ! LDFLAGS="$LDFLAGS -b" ! echo "$lt_simple_link_test_code" > conftest.$ac_ext ! if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then ! # The linker can only warn and ignore the option if not recognized ! # So say no if there are warnings ! if test -s conftest.err; then ! # Append any errors to the config.log. ! cat conftest.err 1>&5 ! $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp ! $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 ! if diff conftest.exp conftest.er2 >/dev/null; then ! lt_cv_prog_compiler__b=yes ! fi ! else ! lt_cv_prog_compiler__b=yes ! fi ! fi ! $RM -r conftest* ! LDFLAGS="$save_LDFLAGS" ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 ! $as_echo "$lt_cv_prog_compiler__b" >&6; } ! ! if test x"$lt_cv_prog_compiler__b" = xyes; then ! archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ! else ! archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ! fi ! ;; esac fi *************** *** 37440,37465 **** irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then ! archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. ! save_LDFLAGS="$LDFLAGS" ! LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! int foo(void) {} _ACEOF if ac_fn_c_try_link "$LINENO"; then : ! archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ! fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! LDFLAGS="$save_LDFLAGS" else ! archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ! archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' --- 39050,39088 ---- irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then ! archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. ! # This should be the same for all languages, so no per-tag cache variable. ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 ! $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } ! if ${lt_cv_irix_exported_symbol+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! save_LDFLAGS="$LDFLAGS" ! LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ! lt_cv_irix_exported_symbol=yes ! else ! lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! LDFLAGS="$save_LDFLAGS" ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 ! $as_echo "$lt_cv_irix_exported_symbol" >&6; } ! if test "$lt_cv_irix_exported_symbol" = yes; then ! archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ! fi else ! archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' ! archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' *************** *** 37521,37537 **** hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported ! archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ! archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' ! archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' --- 39144,39160 ---- hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported ! archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ! archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' ! archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' *************** *** 37541,37553 **** osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ! archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' ! archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ ! $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' --- 39164,39176 ---- osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ! archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' ! archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ ! $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' *************** *** 37560,37568 **** no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' ! archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ! $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) --- 39183,39191 ---- no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' ! archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ! $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) *************** *** 37750,37793 **** # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } ! $RM conftest* ! echo "$lt_simple_compile_test_code" > conftest.$ac_ext ! ! if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 ! (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then ! soname=conftest ! lib=conftest ! libobjs=conftest.$ac_objext ! deplibs= ! wl=$lt_prog_compiler_wl ! pic_flag=$lt_prog_compiler_pic ! compiler_flags=-v ! linker_flags=-v ! verstring= ! output_objdir=. ! libname=conftest ! lt_save_allow_undefined_flag=$allow_undefined_flag ! allow_undefined_flag= ! if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ! then ! archive_cmds_need_lc=no ! else ! archive_cmds_need_lc=yes ! fi ! allow_undefined_flag=$lt_save_allow_undefined_flag ! else ! cat conftest.err 1>&5 ! fi ! $RM conftest* ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 ! $as_echo "$archive_cmds_need_lc" >&6; } ;; esac fi --- 39373,39422 ---- # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } ! if ${lt_cv_archive_cmds_need_lc+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! $RM conftest* ! echo "$lt_simple_compile_test_code" > conftest.$ac_ext ! ! if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 ! (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then ! soname=conftest ! lib=conftest ! libobjs=conftest.$ac_objext ! deplibs= ! wl=$lt_prog_compiler_wl ! pic_flag=$lt_prog_compiler_pic ! compiler_flags=-v ! linker_flags=-v ! verstring= ! output_objdir=. ! libname=conftest ! lt_save_allow_undefined_flag=$allow_undefined_flag ! allow_undefined_flag= ! if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ! then ! lt_cv_archive_cmds_need_lc=no ! else ! lt_cv_archive_cmds_need_lc=yes ! fi ! allow_undefined_flag=$lt_save_allow_undefined_flag ! else ! cat conftest.err 1>&5 ! fi ! $RM conftest* ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 ! $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } ! archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi *************** *** 37958,37973 **** darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac ! lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` ! if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. ! lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` ! else ! lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ! fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= --- 39587,39609 ---- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac ! case $host_os in ! mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; ! *) lt_sed_strip_eq="s,=/,/,g" ;; ! esac ! lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` ! case $lt_search_path_spec in ! *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. ! lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ! ;; ! *) ! lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ! ;; ! esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= *************** *** 37980,37986 **** lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done ! lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; --- 39616,39622 ---- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done ! lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; *************** *** 38000,38006 **** if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` ! sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi --- 39636,39648 ---- if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` ! # AWK program above erroneously prepends '/' to C:/dos/paths ! # for these hosts. ! case $host_os in ! mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ ! $SED 's,/\([A-Za-z]:\),\1,g'` ;; ! esac ! sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi *************** *** 38088,38094 **** m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. ! finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; --- 39730,39736 ---- m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. ! finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; *************** *** 38119,38126 **** need_version=no need_lib_prefix=no ! case $GCC,$host_os in ! yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ --- 39761,39769 ---- need_version=no need_lib_prefix=no ! case $GCC,$cc_basename in ! yes,*) ! # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ *************** *** 38141,38176 **** cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ! sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac - dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; --- 39784,39866 ---- cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ! ! sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' ;; *) + # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; *************** *** 38254,38259 **** --- 39944,39963 ---- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + + haiku*) + version_type=linux + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; *************** *** 38299,38306 **** soname_spec='${libname}${release}${shared_ext}$major' ;; esac ! # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) --- 40003,40012 ---- soname_spec='${libname}${release}${shared_ext}$major' ;; esac ! # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 ;; interix[3-9]*) *************** *** 38367,38378 **** finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH ! save_LDFLAGS=$LDFLAGS ! save_libdir=$libdir ! eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ ! LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN --- 40073,40089 ---- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH ! if ${lt_cv_shlibpath_overrides_runpath+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! lt_cv_shlibpath_overrides_runpath=no ! save_LDFLAGS=$LDFLAGS ! save_libdir=$libdir ! eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ ! LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN *************** *** 38393,38405 **** _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : ! shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! LDFLAGS=$save_LDFLAGS ! libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install --- 40104,40120 ---- _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : ! lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! LDFLAGS=$save_LDFLAGS ! libdir=$save_libdir ! ! fi ! ! shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install *************** *** 38408,38414 **** # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then ! lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi --- 40123,40129 ---- # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then ! lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi *************** *** 38723,38728 **** --- 40438,40448 ---- + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= *************** *** 38795,38801 **** # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } ! if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 40515,40521 ---- # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } ! if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 38837,38843 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } ! if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else --- 40557,40563 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } ! if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else *************** *** 38851,38862 **** *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" ! if test "x$ac_cv_func_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } ! if test "${ac_cv_lib_dld_shl_load+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 40571,40582 ---- *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" ! if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } ! if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 38898,38913 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } ! if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" ! if test "x$ac_cv_func_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } ! if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 40618,40633 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } ! if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" ! if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } ! if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 38949,38960 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } ! if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } ! if test "${ac_cv_lib_svld_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 40669,40680 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } ! if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } ! if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 38996,39007 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } ! if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } ! if test "${ac_cv_lib_dld_dld_link+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 40716,40727 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } ! if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } ! if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 39043,39049 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } ! if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi --- 40763,40769 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } ! if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi *************** *** 39084,39090 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } ! if test "${lt_cv_dlopen_self+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 40804,40810 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } ! if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 39093,39099 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 39096 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 40813,40819 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** *** 39134,39140 **** # endif #endif ! void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); --- 40854,40866 ---- # endif #endif ! /* When -fvisbility=hidden is used, assume the code has been annotated ! correspondingly for the symbols needed. */ ! #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) ! int fnord () __attribute__((visibility("default"))); ! #endif ! ! int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); *************** *** 39143,39149 **** if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ! else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else --- 40869,40879 ---- if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ! else ! { ! if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ! else puts (dlerror ()); ! } /* dlclose (self); */ } else *************** *** 39180,39186 **** wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } ! if test "${lt_cv_dlopen_self_static+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 40910,40916 ---- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } ! if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 39189,39195 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 39192 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 40919,40925 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** *** 39230,39236 **** # endif #endif ! void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); --- 40960,40972 ---- # endif #endif ! /* When -fvisbility=hidden is used, assume the code has been annotated ! correspondingly for the symbols needed. */ ! #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) ! int fnord () __attribute__((visibility("default"))); ! #endif ! ! int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); *************** *** 39239,39245 **** if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ! else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else --- 40975,40985 ---- if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ! else ! { ! if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ! else puts (dlerror ()); ! } /* dlclose (self); */ } else *************** *** 39396,39401 **** --- 41136,41280 ---- CC="$lt_save_CC" + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cpp + ac_cpp='$CXXCPP $CPPFLAGS' + ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' + ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 + $as_echo_n "checking how to run the C++ preprocessor... " >&6; } + if test -z "$CXXCPP"; then + if ${ac_cv_prog_CXXCPP+:} false; then : + $as_echo_n "(cached) " >&6 + else + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" + do + ac_preproc_ok=false + for ac_cxx_preproc_warn_flag in '' yes + do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #ifdef __STDC__ + # include + #else + # include + #endif + Syntax error + _ACEOF + if ac_fn_cxx_try_cpp "$LINENO"; then : + + else + # Broken: fails on valid input. + continue + fi + rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + _ACEOF + if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. + continue + else + # Passes both tests. + ac_preproc_ok=: + break + fi + rm -f conftest.err conftest.i conftest.$ac_ext + + done + # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. + rm -f conftest.i conftest.err conftest.$ac_ext + if $ac_preproc_ok; then : + break + fi + + done + ac_cv_prog_CXXCPP=$CXXCPP + + fi + CXXCPP=$ac_cv_prog_CXXCPP + else + ac_cv_prog_CXXCPP=$CXXCPP + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 + $as_echo "$CXXCPP" >&6; } + ac_preproc_ok=false + for ac_cxx_preproc_warn_flag in '' yes + do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #ifdef __STDC__ + # include + #else + # include + #endif + Syntax error + _ACEOF + if ac_fn_cxx_try_cpp "$LINENO"; then : + + else + # Broken: fails on valid input. + continue + fi + rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + _ACEOF + if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. + continue + else + # Passes both tests. + ac_preproc_ok=: + break + fi + rm -f conftest.err conftest.i conftest.$ac_ext + + done + # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. + rm -f conftest.i conftest.err conftest.$ac_ext + if $ac_preproc_ok; then : + + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check + See \`config.log' for more details" "$LINENO" 5; } + fi + + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' + ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_c_compiler_gnu + + else + _lt_caught_CXX_error=yes + fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' *************** *** 39422,39427 **** --- 41301,41308 ---- module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds + reload_flag_CXX=$reload_flag + reload_cmds_CXX=$reload_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no *************** *** 39477,39482 **** --- 41358,41364 ---- # Allow CC to be a program name with arguments. lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX *************** *** 39494,39499 **** --- 41376,41382 ---- fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do *************** *** 39504,39510 **** *) break;; esac done ! cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` if test -n "$compiler"; then --- 41387,41393 ---- *) break;; esac done ! cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` if test -n "$compiler"; then *************** *** 39567,39573 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi ! if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then --- 41450,41456 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi ! if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then *************** *** 39607,39613 **** test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } ! if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. --- 41490,41496 ---- test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } ! if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. *************** *** 39633,39640 **** # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then ! archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' --- 41516,41523 ---- # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then ! archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' *************** *** 39666,39672 **** # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. ! output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no --- 41549,41555 ---- # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. ! output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no *************** *** 39776,39782 **** allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN --- 41659,41671 ---- allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. ! if test "${lt_cv_aix_libpath+set}" = set; then ! aix_libpath=$lt_cv_aix_libpath ! else ! if ${lt_cv_aix_libpath__CXX+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN *************** *** 39797,39822 **** _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ! lt_aix_libpath_sed=' ! /Import File Strings/,/^$/ { ! /^0/ { ! s/^0 *\(.*\)$/\1/ ! p ! } ! }' ! aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! # Check for a 64-bit object if we didn't find anything. ! if test -z "$aix_libpath"; then ! aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" ! archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' --- 41686,41718 ---- _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ! lt_aix_libpath_sed=' ! /Import File Strings/,/^$/ { ! /^0/ { ! s/^0 *\([^ ]*\) *$/\1/ ! p ! } ! }' ! lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! # Check for a 64-bit object if we didn't find anything. ! if test -z "$lt_cv_aix_libpath__CXX"; then ! lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! if test -z "$lt_cv_aix_libpath__CXX"; then ! lt_cv_aix_libpath__CXX="/usr/lib:/lib" ! fi ! ! fi ! ! aix_libpath=$lt_cv_aix_libpath__CXX ! fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" ! archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' *************** *** 39825,39831 **** else # Determine the default libpath from the value encoded in an # empty executable. ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN --- 41721,41733 ---- else # Determine the default libpath from the value encoded in an # empty executable. ! if test "${lt_cv_aix_libpath+set}" = set; then ! aix_libpath=$lt_cv_aix_libpath ! else ! if ${lt_cv_aix_libpath__CXX+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN *************** *** 39846,39875 **** _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ! lt_aix_libpath_sed=' ! /Import File Strings/,/^$/ { ! /^0/ { ! s/^0 *\(.*\)$/\1/ ! p ! } ! }' ! aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! # Check for a 64-bit object if we didn't find anything. ! if test -z "$aix_libpath"; then ! aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' ! # Exported symbols can be pulled into shared objects from archives ! whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. --- 41748,41789 ---- _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ! lt_aix_libpath_sed=' ! /Import File Strings/,/^$/ { ! /^0/ { ! s/^0 *\([^ ]*\) *$/\1/ ! p ! } ! }' ! lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! # Check for a 64-bit object if we didn't find anything. ! if test -z "$lt_cv_aix_libpath__CXX"; then ! lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! if test -z "$lt_cv_aix_libpath__CXX"; then ! lt_cv_aix_libpath__CXX="/usr/lib:/lib" ! fi ! ! fi ! ! aix_libpath=$lt_cv_aix_libpath__CXX ! fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' ! if test "$with_gnu_ld" = yes; then ! # We only use this code for GNU lds that support --whole-archive. ! whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ! else ! # Exported symbols can be pulled into shared objects from archives ! whole_archive_flag_spec_CXX='$convenience' ! fi archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. *************** *** 39899,39926 **** ;; cygwin* | mingw* | pw32* | cegcc*) ! # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, ! # as there is no search path for DLLs. ! hardcode_libdir_flag_spec_CXX='-L$libdir' ! allow_undefined_flag_CXX=unsupported ! always_export_symbols_CXX=no ! enable_shared_with_static_runtimes_CXX=yes ! ! if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then ! archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ! # If the export-symbols file already is a .def file (1st line ! # is EXPORTS), use it as is; otherwise, prepend... ! archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ! cp $export_symbols $output_objdir/$soname.def; ! else ! echo EXPORTS > $output_objdir/$soname.def; ! cat $export_symbols >> $output_objdir/$soname.def; ! fi~ ! $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ! else ! ld_shlibs_CXX=no ! fi ! ;; darwin* | rhapsody*) --- 41813,41887 ---- ;; cygwin* | mingw* | pw32* | cegcc*) ! case $GXX,$cc_basename in ! ,cl* | no,cl*) ! # Native MSVC ! # hardcode_libdir_flag_spec is actually meaningless, as there is ! # no search path for DLLs. ! hardcode_libdir_flag_spec_CXX=' ' ! allow_undefined_flag_CXX=unsupported ! always_export_symbols_CXX=yes ! file_list_spec_CXX='@' ! # Tell ltmain to make .lib files, not .a files. ! libext=lib ! # Tell ltmain to make .dll files, not .so files. ! shrext_cmds=".dll" ! # FIXME: Setting linknames here is a bad hack. ! archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ! archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ! $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ! else ! $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ! fi~ ! $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ! linknames=' ! # The linker will not automatically build a static lib if we build a DLL. ! # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' ! enable_shared_with_static_runtimes_CXX=yes ! # Don't use ranlib ! old_postinstall_cmds_CXX='chmod 644 $oldlib' ! postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ ! lt_tool_outputfile="@TOOL_OUTPUT@"~ ! case $lt_outputfile in ! *.exe|*.EXE) ;; ! *) ! lt_outputfile="$lt_outputfile.exe" ! lt_tool_outputfile="$lt_tool_outputfile.exe" ! ;; ! esac~ ! func_to_tool_file "$lt_outputfile"~ ! if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ! $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ! $RM "$lt_outputfile.manifest"; ! fi' ! ;; ! *) ! # g++ ! # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, ! # as there is no search path for DLLs. ! hardcode_libdir_flag_spec_CXX='-L$libdir' ! export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' ! allow_undefined_flag_CXX=unsupported ! always_export_symbols_CXX=no ! enable_shared_with_static_runtimes_CXX=yes ! ! if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then ! archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ! # If the export-symbols file already is a .def file (1st line ! # is EXPORTS), use it as is; otherwise, prepend... ! archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ! cp $export_symbols $output_objdir/$soname.def; ! else ! echo EXPORTS > $output_objdir/$soname.def; ! cat $export_symbols >> $output_objdir/$soname.def; ! fi~ ! $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ! else ! ld_shlibs_CXX=no ! fi ! ;; ! esac ! ;; darwin* | rhapsody*) *************** *** 39928,39934 **** hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported ! whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in --- 41889,41899 ---- hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported ! if test "$lt_cv_ld_force_load" = "yes"; then ! whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' ! else ! whole_archive_flag_spec_CXX='' ! fi link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in *************** *** 39936,39942 **** *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then ! output_verbose_link_cmd=echo archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" --- 41901,41907 ---- *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then ! output_verbose_link_cmd=func_echo_all archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" *************** *** 39989,39994 **** --- 41954,41964 ---- gnu*) ;; + haiku*) + archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs_CXX=yes + ;; + hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: *************** *** 40013,40023 **** # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then ! archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no --- 41983,41993 ---- # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then ! archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no *************** *** 40078,40084 **** # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then --- 42048,42054 ---- # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then *************** *** 40088,40097 **** archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) ! archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) ! archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi --- 42058,42067 ---- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) ! archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) ! archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi *************** *** 40121,40127 **** case $cc_basename in CC*) # SGI C++ ! archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is --- 42091,42097 ---- case $cc_basename in CC*) # SGI C++ ! archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is *************** *** 40132,40140 **** *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then ! archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else ! archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi link_all_deplibs_CXX=yes --- 42102,42110 ---- *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then ! archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else ! archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi link_all_deplibs_CXX=yes *************** *** 40163,40169 **** # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' --- 42133,42139 ---- # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' *************** *** 40200,40225 **** pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in ! *pgCC\ [1-5]* | *pgcpp\ [1-5]*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ ! compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ ! $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ ! $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ ! $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; ! *) # Version 6 will use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; --- 42170,42195 ---- pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in ! *pgCC\ [1-5].* | *pgcpp\ [1-5].*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ ! compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ ! $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ ! $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ ! $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; ! *) # Version 6 and above use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *************** *** 40227,40233 **** hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' ! whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ --- 42197,42203 ---- hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' ! whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ *************** *** 40246,40254 **** # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; ! xl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' --- 42216,42224 ---- # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; ! xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' *************** *** 40268,40280 **** archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' ! whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. ! output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is --- 42238,42250 ---- archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' ! whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. ! output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is *************** *** 40343,40349 **** export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi ! output_verbose_link_cmd=echo else ld_shlibs_CXX=no fi --- 42313,42319 ---- export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi ! output_verbose_link_cmd=func_echo_all else ld_shlibs_CXX=no fi *************** *** 40378,40392 **** case $host in osf3*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' ! archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' ! archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ ! $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; --- 42348,42362 ---- case $host in osf3*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' ! archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' ! archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ ! $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; *************** *** 40402,40418 **** # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) ! archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) ! archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac --- 42372,42388 ---- # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) ! archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) ! archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac *************** *** 40422,40428 **** # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. ! output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support --- 42392,42398 ---- # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. ! output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support *************** *** 40458,40464 **** solaris*) case $cc_basename in ! CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' --- 42428,42434 ---- solaris*) case $cc_basename in ! CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' *************** *** 40479,40485 **** esac link_all_deplibs_CXX=yes ! output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is --- 42449,42455 ---- esac link_all_deplibs_CXX=yes ! output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is *************** *** 40499,40512 **** if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then ! archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ! $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. ! output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. --- 42469,42482 ---- if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then ! archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ! $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. ! output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. *************** *** 40517,40523 **** # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. ! output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' --- 42487,42493 ---- # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. ! output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' *************** *** 40571,40576 **** --- 42541,42550 ---- CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ + '"$old_archive_cmds_CXX" + reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ + '"$reload_cmds_CXX" ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' *************** *** 40632,40637 **** --- 42606,42618 ---- }; _LT_EOF + + _lt_libdeps_save_CFLAGS=$CFLAGS + case "$CC $CFLAGS " in #( + *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; + *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; + esac + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? *************** *** 40645,40651 **** pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do ! case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. --- 42626,42632 ---- pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do ! case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. *************** *** 40654,40666 **** test $p = "-R"; then prev=$p continue - else - prev= fi if test "$pre_test_object_deps_done" = no; then ! case $p in ! -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. --- 42635,42656 ---- test $p = "-R"; then prev=$p continue fi + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac if test "$pre_test_object_deps_done" = no; then ! case ${prev} in ! -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. *************** *** 40680,40687 **** --- 42670,42679 ---- postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi + prev= ;; + *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. *************** *** 40717,40722 **** --- 42709,42715 ---- fi $RM -f confest.$objext + CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken case $host_os in *************** *** 40752,40758 **** solaris*) case $cc_basename in ! CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as --- 42745,42751 ---- solaris*) case $cc_basename in ! CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as *************** *** 40817,40824 **** lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 - $as_echo_n "checking for $compiler option to produce PIC... " >&6; } # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then --- 42810,42815 ---- *************** *** 40868,40873 **** --- 42859,42869 ---- # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static_CXX= + ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. *************** *** 40917,40922 **** --- 42913,42923 ---- ;; esac ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; dgux*) case $cc_basename in ec++*) *************** *** 41006,41013 **** lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; ! xlc* | xlC*) ! # IBM XL 8.0 on PPC lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' --- 43007,43014 ---- lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; ! xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) ! # IBM XL 8.0, 9.0 on PPC and BlueGene lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' *************** *** 41069,41075 **** ;; solaris*) case $cc_basename in ! CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' --- 43070,43076 ---- ;; solaris*) case $cc_basename in ! CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' *************** *** 41134,41143 **** lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5 - $as_echo "$lt_prog_compiler_pic_CXX" >&6; } - # # Check to make sure the PIC flag actually works. --- 43135,43151 ---- lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 + $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + if ${lt_cv_prog_compiler_pic_CXX+:} false; then : + $as_echo_n "(cached) " >&6 + else + lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 + $as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } + lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX # # Check to make sure the PIC flag actually works. *************** *** 41145,41151 **** if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } ! if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no --- 43153,43159 ---- if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } ! if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no *************** *** 41161,41175 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:41164: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 ! echo "$as_me:41168: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. ! $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes --- 43169,43183 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. ! $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes *************** *** 41195,41207 **** # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } ! if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no --- 43203,43217 ---- + + # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } ! if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no *************** *** 41214,41220 **** if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 ! $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes --- 43224,43230 ---- if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 ! $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes *************** *** 41241,41247 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } ! if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no --- 43251,43257 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } ! if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no *************** *** 41260,41275 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:41263: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:41267: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings ! $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes --- 43270,43285 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings ! $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes *************** *** 41293,41299 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } ! if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no --- 43303,43309 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } ! if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no *************** *** 41312,41327 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:41315: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:41319: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings ! $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes --- 43322,43337 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings ! $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes *************** *** 41372,41401 **** $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then ! export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ! ;; cygwin* | mingw* | cegcc*) ! export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ! ;; ! linux* | k*bsd*-gnu) link_all_deplibs_CXX=no ! ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ! ;; esac - exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } --- 43382,43419 ---- $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then ! export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ! ;; cygwin* | mingw* | cegcc*) ! case $cc_basename in ! cl*) ;; ! *) ! export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ! exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' ! ;; ! esac ! ;; ! linux* | k*bsd*-gnu | gnu*) link_all_deplibs_CXX=no ! ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ! ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } *************** *** 41427,41470 **** # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } ! $RM conftest* ! echo "$lt_simple_compile_test_code" > conftest.$ac_ext ! if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then ! soname=conftest ! lib=conftest ! libobjs=conftest.$ac_objext ! deplibs= ! wl=$lt_prog_compiler_wl_CXX ! pic_flag=$lt_prog_compiler_pic_CXX ! compiler_flags=-v ! linker_flags=-v ! verstring= ! output_objdir=. ! libname=conftest ! lt_save_allow_undefined_flag=$allow_undefined_flag_CXX ! allow_undefined_flag_CXX= ! if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ! then ! archive_cmds_need_lc_CXX=no ! else ! archive_cmds_need_lc_CXX=yes ! fi ! allow_undefined_flag_CXX=$lt_save_allow_undefined_flag ! else ! cat conftest.err 1>&5 ! fi ! $RM conftest* ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5 ! $as_echo "$archive_cmds_need_lc_CXX" >&6; } ;; esac fi --- 43445,43494 ---- # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } ! if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! $RM conftest* ! echo "$lt_simple_compile_test_code" > conftest.$ac_ext ! if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then ! soname=conftest ! lib=conftest ! libobjs=conftest.$ac_objext ! deplibs= ! wl=$lt_prog_compiler_wl_CXX ! pic_flag=$lt_prog_compiler_pic_CXX ! compiler_flags=-v ! linker_flags=-v ! verstring= ! output_objdir=. ! libname=conftest ! lt_save_allow_undefined_flag=$allow_undefined_flag_CXX ! allow_undefined_flag_CXX= ! if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ! then ! lt_cv_archive_cmds_need_lc_CXX=no ! else ! lt_cv_archive_cmds_need_lc_CXX=yes ! fi ! allow_undefined_flag_CXX=$lt_save_allow_undefined_flag ! else ! cat conftest.err 1>&5 ! fi ! $RM conftest* ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 ! $as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } ! archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX ;; esac fi *************** *** 41621,41627 **** m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. ! finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; --- 43645,43651 ---- m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. ! finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; *************** *** 41652,41659 **** need_version=no need_lib_prefix=no ! case $GCC,$host_os in ! yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ --- 43676,43684 ---- need_version=no need_lib_prefix=no ! case $GCC,$cc_basename in ! yes,*) ! # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ *************** *** 41674,41709 **** cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ! sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac - dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; --- 43699,43780 ---- cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ! ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' ;; *) + # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; *************** *** 41786,41791 **** --- 43857,43876 ---- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + + haiku*) + version_type=linux + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; *************** *** 41831,41838 **** soname_spec='${libname}${release}${shared_ext}$major' ;; esac ! # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) --- 43916,43925 ---- soname_spec='${libname}${release}${shared_ext}$major' ;; esac ! # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 ;; interix[3-9]*) *************** *** 41899,41910 **** finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH ! save_LDFLAGS=$LDFLAGS ! save_libdir=$libdir ! eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ ! LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN --- 43986,44002 ---- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH ! if ${lt_cv_shlibpath_overrides_runpath+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! lt_cv_shlibpath_overrides_runpath=no ! save_LDFLAGS=$LDFLAGS ! save_libdir=$libdir ! eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ ! LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN *************** *** 41925,41937 **** _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : ! shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! LDFLAGS=$save_LDFLAGS ! libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install --- 44017,44033 ---- _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : ! lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! LDFLAGS=$save_LDFLAGS ! libdir=$save_libdir ! ! fi ! ! shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install *************** *** 41940,41946 **** # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then ! lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi --- 44036,44042 ---- # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then ! lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi *************** *** 42204,42209 **** --- 44300,44307 ---- + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= *************** *** 42251,42256 **** --- 44349,44355 ---- fi # test -n "$compiler" CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC *************** *** 42274,42279 **** --- 44373,44381 ---- ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu + if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes + fi archive_cmds_need_lc_F77=no allow_undefined_flag_F77= *************** *** 42292,42297 **** --- 44394,44401 ---- module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds + reload_flag_F77=$reload_flag + reload_cmds_F77=$reload_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no *************** *** 42355,42361 **** --- 44459,44467 ---- # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} + CFLAGS=$FFLAGS compiler=$CC compiler_F77=$CC for cc_temp in $compiler""; do *************** *** 42366,42372 **** *) break;; esac done ! cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` GCC=$G77 if test -n "$compiler"; then --- 44472,44478 ---- *) break;; esac done ! cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` GCC=$G77 if test -n "$compiler"; then *************** *** 42416,42423 **** lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 - $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' --- 44522,44527 ---- *************** *** 42465,42470 **** --- 44569,44580 ---- lt_prog_compiler_pic_F77='-fno-common' ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static_F77= + ;; + hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag *************** *** 42507,42512 **** --- 44617,44629 ---- lt_prog_compiler_pic_F77='-fPIC' ;; esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl_F77='-Xlinker ' + lt_prog_compiler_pic_F77='-Xcompiler -fPIC' + ;; + esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in *************** *** 42569,42575 **** lt_prog_compiler_pic_F77='--shared' lt_prog_compiler_static_F77='--static' ;; ! pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' --- 44686,44698 ---- lt_prog_compiler_pic_F77='--shared' lt_prog_compiler_static_F77='--static' ;; ! nagfor*) ! # NAG Fortran compiler ! lt_prog_compiler_wl_F77='-Wl,-Wl,,' ! lt_prog_compiler_pic_F77='-PIC' ! lt_prog_compiler_static_F77='-Bstatic' ! ;; ! pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' *************** *** 42581,42605 **** # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; ! xl*) ! # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-qpic' lt_prog_compiler_static_F77='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in ! *Sun\ C*) ! # Sun C 5.9 lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ! lt_prog_compiler_wl_F77='-Wl,' ;; ! *Sun\ F*) ! # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ! lt_prog_compiler_wl_F77='' ;; esac ;; --- 44704,44728 ---- # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; ! xl* | bgxl* | bgf* | mpixl*) ! # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-qpic' lt_prog_compiler_static_F77='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in ! *Sun\ F* | *Sun*Fortran*) ! # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ! lt_prog_compiler_wl_F77='' ;; ! *Sun\ C*) ! # Sun C 5.9 lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ! lt_prog_compiler_wl_F77='-Wl,' ;; esac ;; *************** *** 42631,42637 **** lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in ! f77* | f90* | f95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; --- 44754,44760 ---- lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in ! f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; *************** *** 42688,42697 **** lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_F77" >&5 - $as_echo "$lt_prog_compiler_pic_F77" >&6; } - # # Check to make sure the PIC flag actually works. --- 44811,44827 ---- lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 + $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + if ${lt_cv_prog_compiler_pic_F77+:} false; then : + $as_echo_n "(cached) " >&6 + else + lt_cv_prog_compiler_pic_F77=$lt_prog_compiler_pic_F77 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_F77" >&5 + $as_echo "$lt_cv_prog_compiler_pic_F77" >&6; } + lt_prog_compiler_pic_F77=$lt_cv_prog_compiler_pic_F77 # # Check to make sure the PIC flag actually works. *************** *** 42699,42705 **** if test -n "$lt_prog_compiler_pic_F77"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... " >&6; } ! if test "${lt_cv_prog_compiler_pic_works_F77+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_F77=no --- 44829,44835 ---- if test -n "$lt_prog_compiler_pic_F77"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... " >&6; } ! if ${lt_cv_prog_compiler_pic_works_F77+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_F77=no *************** *** 42715,42729 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:42718: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 ! echo "$as_me:42722: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. ! $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_F77=yes --- 44845,44859 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. ! $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_F77=yes *************** *** 42749,42761 **** # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } ! if test "${lt_cv_prog_compiler_static_works_F77+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_F77=no --- 44879,44893 ---- + + # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } ! if ${lt_cv_prog_compiler_static_works_F77+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_F77=no *************** *** 42768,42774 **** if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 ! $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_F77=yes --- 44900,44906 ---- if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 ! $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_F77=yes *************** *** 42795,42801 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } ! if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_F77=no --- 44927,44933 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } ! if ${lt_cv_prog_compiler_c_o_F77+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_F77=no *************** *** 42814,42829 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:42817: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:42821: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings ! $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes --- 44946,44961 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings ! $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes *************** *** 42847,42853 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } ! if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_F77=no --- 44979,44985 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } ! if ${lt_cv_prog_compiler_c_o_F77+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_F77=no *************** *** 42866,42881 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:42869: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:42873: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings ! $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes --- 44998,45013 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings ! $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes *************** *** 42982,42994 **** openbsd*) with_gnu_ld=no ;; ! linux* | k*bsd*-gnu) link_all_deplibs_F77=no ;; esac ld_shlibs_F77=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' --- 45114,45152 ---- openbsd*) with_gnu_ld=no ;; ! linux* | k*bsd*-gnu | gnu*) link_all_deplibs_F77=no ;; esac ld_shlibs_F77=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' *************** *** 43022,43032 **** ld_shlibs_F77=no cat <<_LT_EOF 1>&2 ! *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you ! *** really care for shared libraries, you may want to modify your PATH ! *** so that a non-GNU linker is found, and then restart. _LT_EOF fi --- 45180,45191 ---- ld_shlibs_F77=no cat <<_LT_EOF 1>&2 ! *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you ! *** really care for shared libraries, you may want to install binutils ! *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. ! *** You will then need to restart the configuration process. _LT_EOF fi *************** *** 43062,43071 **** # _LT_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes ! export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' --- 45221,45232 ---- # _LT_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' + export_dynamic_flag_spec_F77='${wl}--export-all-symbols' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes ! export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ! exclude_expsyms_F77='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' *************** *** 43083,43088 **** --- 45244,45254 ---- fi ;; + haiku*) + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs_F77=yes + ;; + interix[3-9]*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no *************** *** 43108,43122 **** if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then ! tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler ! whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; ! pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers ! whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; --- 45274,45289 ---- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then ! tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler ! whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; ! pgf77* | pgf90* | pgf95* | pgfortran*) ! # Portland Group f77 and f90 compilers ! whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; *************** *** 43127,43139 **** lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec_F77= tmp_sharedflag='--shared' ;; ! xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 ! whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_F77=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 --- 45294,45310 ---- lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec_F77= tmp_sharedflag='--shared' ;; ! xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object_F77=yes + ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 ! whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_F77=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 *************** *** 43149,43165 **** fi case $cc_basename in ! xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec_F77='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' ! archive_cmds_F77='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_F77='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ ! $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac --- 45320,45336 ---- fi case $cc_basename in ! xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec_F77='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' ! archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_F77='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ ! $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac *************** *** 43173,43180 **** archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else ! archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; --- 45344,45351 ---- archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else ! archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; *************** *** 43192,43199 **** _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ! archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi --- 45363,45370 ---- _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ! archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi *************** *** 43239,43246 **** *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ! archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi --- 45410,45417 ---- *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ! archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi *************** *** 43280,43287 **** else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then ! export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi --- 45451,45460 ---- else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then ! export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi *************** *** 43369,43400 **** allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an # empty executable. ! cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_link "$LINENO"; then : ! lt_aix_libpath_sed=' ! /Import File Strings/,/^$/ { ! /^0/ { ! s/^0 *\(.*\)$/\1/ ! p ! } ! }' ! aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! # Check for a 64-bit object if we didn't find anything. ! if test -z "$aix_libpath"; then ! aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" ! archive_expsym_cmds_F77='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' --- 45542,45586 ---- allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an # empty executable. ! if test "${lt_cv_aix_libpath+set}" = set; then ! aix_libpath=$lt_cv_aix_libpath ! else ! if ${lt_cv_aix_libpath__F77+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_link "$LINENO"; then : ! lt_aix_libpath_sed=' ! /Import File Strings/,/^$/ { ! /^0/ { ! s/^0 *\([^ ]*\) *$/\1/ ! p ! } ! }' ! lt_cv_aix_libpath__F77=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! # Check for a 64-bit object if we didn't find anything. ! if test -z "$lt_cv_aix_libpath__F77"; then ! lt_cv_aix_libpath__F77=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! if test -z "$lt_cv_aix_libpath__F77"; then ! lt_cv_aix_libpath__F77="/usr/lib:/lib" ! fi ! ! fi ! ! aix_libpath=$lt_cv_aix_libpath__F77 ! fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" ! archive_expsym_cmds_F77='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' *************** *** 43403,43439 **** else # Determine the default libpath from the value encoded in an # empty executable. ! cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_link "$LINENO"; then : ! lt_aix_libpath_sed=' ! /Import File Strings/,/^$/ { ! /^0/ { ! s/^0 *\(.*\)$/\1/ ! p ! } ! }' ! aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! # Check for a 64-bit object if we didn't find anything. ! if test -z "$aix_libpath"; then ! aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' ! # Exported symbols can be pulled into shared objects from archives ! whole_archive_flag_spec_F77='$convenience' archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' --- 45589,45643 ---- else # Determine the default libpath from the value encoded in an # empty executable. ! if test "${lt_cv_aix_libpath+set}" = set; then ! aix_libpath=$lt_cv_aix_libpath ! else ! if ${lt_cv_aix_libpath__F77+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_link "$LINENO"; then : ! lt_aix_libpath_sed=' ! /Import File Strings/,/^$/ { ! /^0/ { ! s/^0 *\([^ ]*\) *$/\1/ ! p ! } ! }' ! lt_cv_aix_libpath__F77=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! # Check for a 64-bit object if we didn't find anything. ! if test -z "$lt_cv_aix_libpath__F77"; then ! lt_cv_aix_libpath__F77=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! if test -z "$lt_cv_aix_libpath__F77"; then ! lt_cv_aix_libpath__F77="/usr/lib:/lib" ! fi ! ! fi ! ! aix_libpath=$lt_cv_aix_libpath__F77 ! fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' ! if test "$with_gnu_ld" = yes; then ! # We only use this code for GNU lds that support --whole-archive. ! whole_archive_flag_spec_F77='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ! else ! # Exported symbols can be pulled into shared objects from archives ! whole_archive_flag_spec_F77='$convenience' ! fi archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' *************** *** 43465,43484 **** # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. ! hardcode_libdir_flag_spec_F77=' ' ! allow_undefined_flag_F77=unsupported ! # Tell ltmain to make .lib files, not .a files. ! libext=lib ! # Tell ltmain to make .dll files, not .so files. ! shrext_cmds=".dll" ! # FIXME: Setting linknames here is a bad hack. ! archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' ! # The linker will automatically build a .lib file if we build a DLL. ! old_archive_from_new_cmds_F77='true' ! # FIXME: Should let the user specify the lib program. ! old_archive_cmds_F77='lib -OUT:$oldlib$oldobjs$old_deplibs' ! fix_srcfile_path_F77='`cygpath -w "$srcfile"`' ! enable_shared_with_static_runtimes_F77=yes ;; darwin* | rhapsody*) --- 45669,45731 ---- # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. ! case $cc_basename in ! cl*) ! # Native MSVC ! hardcode_libdir_flag_spec_F77=' ' ! allow_undefined_flag_F77=unsupported ! always_export_symbols_F77=yes ! file_list_spec_F77='@' ! # Tell ltmain to make .lib files, not .a files. ! libext=lib ! # Tell ltmain to make .dll files, not .so files. ! shrext_cmds=".dll" ! # FIXME: Setting linknames here is a bad hack. ! archive_cmds_F77='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ! archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ! sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ! else ! sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ! fi~ ! $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ! linknames=' ! # The linker will not automatically build a static lib if we build a DLL. ! # _LT_TAGVAR(old_archive_from_new_cmds, F77)='true' ! enable_shared_with_static_runtimes_F77=yes ! export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ! # Don't use ranlib ! old_postinstall_cmds_F77='chmod 644 $oldlib' ! postlink_cmds_F77='lt_outputfile="@OUTPUT@"~ ! lt_tool_outputfile="@TOOL_OUTPUT@"~ ! case $lt_outputfile in ! *.exe|*.EXE) ;; ! *) ! lt_outputfile="$lt_outputfile.exe" ! lt_tool_outputfile="$lt_tool_outputfile.exe" ! ;; ! esac~ ! if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ! $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ! $RM "$lt_outputfile.manifest"; ! fi' ! ;; ! *) ! # Assume MSVC wrapper ! hardcode_libdir_flag_spec_F77=' ' ! allow_undefined_flag_F77=unsupported ! # Tell ltmain to make .lib files, not .a files. ! libext=lib ! # Tell ltmain to make .dll files, not .so files. ! shrext_cmds=".dll" ! # FIXME: Setting linknames here is a bad hack. ! archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ! # The linker will automatically build a .lib file if we build a DLL. ! old_archive_from_new_cmds_F77='true' ! # FIXME: Should let the user specify the lib program. ! old_archive_cmds_F77='lib -OUT:$oldlib$oldobjs$old_deplibs' ! enable_shared_with_static_runtimes_F77=yes ! ;; ! esac ;; darwin* | rhapsody*) *************** *** 43488,43494 **** hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported ! whole_archive_flag_spec_F77='' link_all_deplibs_F77=yes allow_undefined_flag_F77="$_lt_dar_allow_undefined" case $cc_basename in --- 45735,45745 ---- hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported ! if test "$lt_cv_ld_force_load" = "yes"; then ! whole_archive_flag_spec_F77='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' ! else ! whole_archive_flag_spec_F77='' ! fi link_all_deplibs_F77=yes allow_undefined_flag_F77="$_lt_dar_allow_undefined" case $cc_basename in *************** *** 43496,43502 **** *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then ! output_verbose_link_cmd=echo archive_cmds_F77="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_F77="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_F77="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" --- 45747,45753 ---- *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then ! output_verbose_link_cmd=func_echo_all archive_cmds_F77="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_F77="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_F77="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" *************** *** 43539,43545 **** # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) ! archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no --- 45790,45796 ---- # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) ! archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no *************** *** 43547,43553 **** hpux9*) if test "$GCC" = yes; then ! archive_cmds_F77='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_F77='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi --- 45798,45804 ---- hpux9*) if test "$GCC" = yes; then ! archive_cmds_F77='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_F77='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi *************** *** 43562,43569 **** ;; hpux10*) ! if test "$GCC" = yes -a "$with_gnu_ld" = no; then ! archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi --- 45813,45820 ---- ;; hpux10*) ! if test "$GCC" = yes && test "$with_gnu_ld" = no; then ! archive_cmds_F77='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi *************** *** 43581,43596 **** ;; hpux11*) ! if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) ! archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) ! archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else --- 45832,45847 ---- ;; hpux11*) ! if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) ! archive_cmds_F77='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) ! archive_cmds_F77='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else *************** *** 43602,43608 **** archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) ! archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi --- 45853,45859 ---- archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) ! archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi *************** *** 43630,43654 **** irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then ! archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. ! save_LDFLAGS="$LDFLAGS" ! LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ! cat > conftest.$ac_ext <<_ACEOF ! int foo(void) {} _ACEOF if ac_fn_f77_try_link "$LINENO"; then : ! archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ! fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! LDFLAGS="$save_LDFLAGS" else ! archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ! archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc_F77='no' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' --- 45881,45920 ---- irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then ! archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. ! # This should be the same for all languages, so no per-tag cache variable. ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 ! $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } ! if ${lt_cv_irix_exported_symbol+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! save_LDFLAGS="$LDFLAGS" ! LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ! cat > conftest.$ac_ext <<_ACEOF ! ! subroutine foo ! end _ACEOF if ac_fn_f77_try_link "$LINENO"; then : ! lt_cv_irix_exported_symbol=yes ! else ! lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! LDFLAGS="$save_LDFLAGS" ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 ! $as_echo "$lt_cv_irix_exported_symbol" >&6; } ! if test "$lt_cv_irix_exported_symbol" = yes; then ! archive_expsym_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ! fi else ! archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' ! archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc_F77='no' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' *************** *** 43710,43726 **** hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported ! archive_cmds_F77='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' ! archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' ! archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc_F77='no' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' --- 45976,45992 ---- hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported ! archive_cmds_F77='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' ! archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' ! archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc_F77='no' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' *************** *** 43730,43742 **** osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' ! archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' ! archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ ! $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_F77='-rpath $libdir' --- 45996,46008 ---- osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' ! archive_cmds_F77='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' ! archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ ! $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_F77='-rpath $libdir' *************** *** 43749,43757 **** no_undefined_flag_F77=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' ! archive_cmds_F77='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ! $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) --- 46015,46023 ---- no_undefined_flag_F77=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' ! archive_cmds_F77='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ! $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) *************** *** 43930,43973 **** # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } ! $RM conftest* ! echo "$lt_simple_compile_test_code" > conftest.$ac_ext ! if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then ! soname=conftest ! lib=conftest ! libobjs=conftest.$ac_objext ! deplibs= ! wl=$lt_prog_compiler_wl_F77 ! pic_flag=$lt_prog_compiler_pic_F77 ! compiler_flags=-v ! linker_flags=-v ! verstring= ! output_objdir=. ! libname=conftest ! lt_save_allow_undefined_flag=$allow_undefined_flag_F77 ! allow_undefined_flag_F77= ! if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_F77 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_F77 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ! then ! archive_cmds_need_lc_F77=no ! else ! archive_cmds_need_lc_F77=yes ! fi ! allow_undefined_flag_F77=$lt_save_allow_undefined_flag ! else ! cat conftest.err 1>&5 ! fi ! $RM conftest* ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_F77" >&5 ! $as_echo "$archive_cmds_need_lc_F77" >&6; } ;; esac fi --- 46196,46245 ---- # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } ! if ${lt_cv_archive_cmds_need_lc_F77+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! $RM conftest* ! echo "$lt_simple_compile_test_code" > conftest.$ac_ext ! if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then ! soname=conftest ! lib=conftest ! libobjs=conftest.$ac_objext ! deplibs= ! wl=$lt_prog_compiler_wl_F77 ! pic_flag=$lt_prog_compiler_pic_F77 ! compiler_flags=-v ! linker_flags=-v ! verstring= ! output_objdir=. ! libname=conftest ! lt_save_allow_undefined_flag=$allow_undefined_flag_F77 ! allow_undefined_flag_F77= ! if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_F77 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_F77 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ! then ! lt_cv_archive_cmds_need_lc_F77=no ! else ! lt_cv_archive_cmds_need_lc_F77=yes ! fi ! allow_undefined_flag_F77=$lt_save_allow_undefined_flag ! else ! cat conftest.err 1>&5 ! fi ! $RM conftest* ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_F77" >&5 ! $as_echo "$lt_cv_archive_cmds_need_lc_F77" >&6; } ! archive_cmds_need_lc_F77=$lt_cv_archive_cmds_need_lc_F77 ;; esac fi *************** *** 44124,44130 **** m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. ! finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; --- 46396,46402 ---- m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. ! finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; *************** *** 44155,44162 **** need_version=no need_lib_prefix=no ! case $GCC,$host_os in ! yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ --- 46427,46435 ---- need_version=no need_lib_prefix=no ! case $GCC,$cc_basename in ! yes,*) ! # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ *************** *** 44177,44212 **** cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ! sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; ! *) ! library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ! ;; esac - dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; --- 46450,46531 ---- cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ! ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac + dynamic_linker='Win32 ld.exe' ;; ! *,cl*) ! # Native MSVC ! libname_spec='$name' ! soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ! library_names_spec='${libname}.dll.lib' ! ! case $build_os in ! mingw*) ! sys_lib_search_path_spec= ! lt_save_ifs=$IFS ! IFS=';' ! for lt_path in $LIB ! do ! IFS=$lt_save_ifs ! # Let DOS variable expansion print the short 8.3 style file name. ! lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ! sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ! done ! IFS=$lt_save_ifs ! # Convert to MSYS style. ! sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ! ;; ! cygwin*) ! # Convert to unix form, then to dos form, then back to unix form ! # but this time dos style (no spaces!) so that the unix form looks ! # like /cygdrive/c/PROGRA~1:/cygdr... ! sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ! sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ! sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ! ;; ! *) ! sys_lib_search_path_spec="$LIB" ! if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then ! # It is most probably a Windows format PATH. ! sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ! else ! sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ! fi ! # FIXME: find the short name or the path components, as spaces are ! # common. (e.g. "Program Files" -> "PROGRA~1") ! ;; ! esac ! ! # DLL is installed to $(libdir)/../bin by postinstall_cmds ! postinstall_cmds='base_file=`basename \${file}`~ ! dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ ! dldir=$destdir/`dirname \$dlpath`~ ! test -d \$dldir || mkdir -p \$dldir~ ! $install_prog $dir/$dlname \$dldir/$dlname' ! postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ! dlpath=$dir/\$dldll~ ! $RM \$dlpath' ! shlibpath_overrides_runpath=yes ! dynamic_linker='Win32 link.exe' ! ;; ! ! *) ! # Assume MSVC wrapper ! library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ! dynamic_linker='Win32 ld.exe' ! ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; *************** *** 44289,44294 **** --- 46608,46627 ---- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + + haiku*) + version_type=linux + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; *************** *** 44334,44341 **** soname_spec='${libname}${release}${shared_ext}$major' ;; esac ! # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) --- 46667,46676 ---- soname_spec='${libname}${release}${shared_ext}$major' ;; esac ! # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 ;; interix[3-9]*) *************** *** 44402,44426 **** finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH ! save_LDFLAGS=$LDFLAGS ! save_libdir=$libdir ! eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_F77\"; \ ! LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_F77\"" ! cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : ! shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! LDFLAGS=$save_LDFLAGS ! libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install --- 46737,46770 ---- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH ! if ${lt_cv_shlibpath_overrides_runpath+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! lt_cv_shlibpath_overrides_runpath=no ! save_LDFLAGS=$LDFLAGS ! save_libdir=$libdir ! eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_F77\"; \ ! LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_F77\"" ! cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : ! lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! LDFLAGS=$save_LDFLAGS ! libdir=$save_libdir ! ! fi ! ! shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install *************** *** 44429,44435 **** # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then ! lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi --- 46773,46779 ---- # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then ! lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi *************** *** 44693,44747 **** - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 - $as_echo_n "checking how to hardcode library paths into programs... " >&6; } - hardcode_action_F77= - if test -n "$hardcode_libdir_flag_spec_F77" || - test -n "$runpath_var_F77" || - test "X$hardcode_automatic_F77" = "Xyes" ; then ! # We can hardcode non-existent directories. ! if test "$hardcode_direct_F77" != no && ! # If the only mechanism to avoid hardcoding is shlibpath_var, we ! # have to relink, otherwise we might link with an installed library ! # when we should be linking with a yet-to-be-installed one ! ## test "$_LT_TAGVAR(hardcode_shlibpath_var, F77)" != no && ! test "$hardcode_minus_L_F77" != no; then ! # Linking always hardcodes the temporary library directory. ! hardcode_action_F77=relink ! else ! # We can link without hardcoding, and we can hardcode nonexisting dirs. ! hardcode_action_F77=immediate ! fi ! else ! # We cannot hardcode anything, or else we can only hardcode existing ! # directories. ! hardcode_action_F77=unsupported fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_F77" >&5 ! $as_echo "$hardcode_action_F77" >&6; } ! ! if test "$hardcode_action_F77" = relink || ! test "$inherit_rpath_F77" = yes; then ! # Fast installation is not supported ! enable_fast_install=no ! elif test "$shlibpath_overrides_runpath" = yes || ! test "$enable_shared" = no; then ! # Fast installation is not necessary ! enable_fast_install=needless fi ! fi # test -n "$compiler" ! GCC=$lt_save_GCC ! CC="$lt_save_CC" ! fi # test "$_lt_disable_F77" != yes ac_ext=c ac_cpp='$CPP $CPPFLAGS' --- 47037,50003 ---- ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 ! $as_echo_n "checking how to hardcode library paths into programs... " >&6; } ! hardcode_action_F77= ! if test -n "$hardcode_libdir_flag_spec_F77" || ! test -n "$runpath_var_F77" || ! test "X$hardcode_automatic_F77" = "Xyes" ; then ! ! # We can hardcode non-existent directories. ! if test "$hardcode_direct_F77" != no && ! # If the only mechanism to avoid hardcoding is shlibpath_var, we ! # have to relink, otherwise we might link with an installed library ! # when we should be linking with a yet-to-be-installed one ! ## test "$_LT_TAGVAR(hardcode_shlibpath_var, F77)" != no && ! test "$hardcode_minus_L_F77" != no; then ! # Linking always hardcodes the temporary library directory. ! hardcode_action_F77=relink ! else ! # We can link without hardcoding, and we can hardcode nonexisting dirs. ! hardcode_action_F77=immediate ! fi ! else ! # We cannot hardcode anything, or else we can only hardcode existing ! # directories. ! hardcode_action_F77=unsupported ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_F77" >&5 ! $as_echo "$hardcode_action_F77" >&6; } ! ! if test "$hardcode_action_F77" = relink || ! test "$inherit_rpath_F77" = yes; then ! # Fast installation is not supported ! enable_fast_install=no ! elif test "$shlibpath_overrides_runpath" = yes || ! test "$enable_shared" = no; then ! # Fast installation is not necessary ! enable_fast_install=needless ! fi ! ! ! ! ! ! ! ! fi # test -n "$compiler" ! ! GCC=$lt_save_GCC ! CC="$lt_save_CC" ! CFLAGS="$lt_save_CFLAGS" ! fi # test "$_lt_disable_F77" != yes ! ! ac_ext=c ! ac_cpp='$CPP $CPPFLAGS' ! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_c_compiler_gnu ! ! ! ! ! ! ! ! ! ! ! ! ac_config_commands="$ac_config_commands libtool" ! ! ! ! ! # Only expand once: ! ! ! ! if test x$enable_shared = xyes; then ! SHARED_LIBS=true ! else ! SHARED_LIBS=false ! fi ! ! if test x$enable_static = xyes; then ! STATIC_LIBS=true ! else ! STATIC_LIBS=false ! fi ! ! XTRA_CRUFT_SH_LDFLAGS= ! if test "$have_msvc" = "yes"; then ! FLIBS="$FLIBS -lkernel32" ! XTRA_CRUFT_SH_LDFLAGS="-Wl,-def:cruft.def" ! fi ! ! ! ### Checks for BLAS and LAPACK libraries: ! ! ## Need to adjust FFLAGS to include correct integer size. ! save_FFLAGS="$FFLAGS" ! FFLAGS="$FFLAGS $F77_INTEGER_8_FLAG" ! ! ! ! ! ! ! ax_blas_ok=no ! ! ! # Check whether --with-blas was given. ! if test "${with_blas+set}" = set; then : ! withval=$with_blas; ! fi ! ! case $with_blas in ! yes | "") ;; ! no) ax_blas_ok=disable ;; ! -* | */* | *.a | *.so | *.so.* | *.o) BLAS_LIBS="$with_blas" ;; ! *) BLAS_LIBS="-l$with_blas" ;; ! esac ! ! # Get fortran linker names of BLAS functions to check for. ! ac_ext=f ! ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ! ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_f77_compiler_gnu ! case $ac_cv_f77_mangling in ! upper*) ac_val="SGEMM" ;; ! lower*) ac_val="sgemm" ;; ! *) ac_val="unknown" ;; ! esac ! case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac ! ! sgemm="$ac_val" ! ! ac_ext=c ! ac_cpp='$CPP $CPPFLAGS' ! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_c_compiler_gnu ! ! ac_ext=f ! ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ! ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_f77_compiler_gnu ! case $ac_cv_f77_mangling in ! upper*) ac_val="DGEMM" ;; ! lower*) ac_val="dgemm" ;; ! *) ac_val="unknown" ;; ! esac ! case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac ! ! dgemm="$ac_val" ! ! ac_ext=c ! ac_cpp='$CPP $CPPFLAGS' ! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_c_compiler_gnu ! ! ! ax_blas_save_LIBS="$LIBS" ! LIBS="$LIBS $FLIBS" ! ! # First, check BLAS_LIBS environment variable ! if test $ax_blas_ok = no; then ! if test "x$BLAS_LIBS" != x; then ! save_LIBS="$LIBS"; LIBS="$BLAS_LIBS $LIBS" ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in $BLAS_LIBS" >&5 ! $as_echo_n "checking for $sgemm in $BLAS_LIBS... " >&6; } ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! ax_blas_ok=yes ! else ! BLAS_LIBS="" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_ok" >&5 ! $as_echo "$ax_blas_ok" >&6; } ! LIBS="$save_LIBS" ! fi ! fi ! ! # BLAS linked to by default? (happens on some supercomputers) ! if test $ax_blas_ok = no; then ! save_LIBS="$LIBS"; LIBS="$LIBS" ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $sgemm is being linked in already" >&5 ! $as_echo_n "checking if $sgemm is being linked in already... " >&6; } ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! ax_blas_ok=yes ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_ok" >&5 ! $as_echo "$ax_blas_ok" >&6; } ! LIBS="$save_LIBS" ! fi ! ! # BLAS in ATLAS library? (http://math-atlas.sourceforge.net/) ! if test $ax_blas_ok = no; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ATL_xerbla in -latlas" >&5 ! $as_echo_n "checking for ATL_xerbla in -latlas... " >&6; } ! if ${ac_cv_lib_atlas_ATL_xerbla+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-latlas $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char ATL_xerbla (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return ATL_xerbla (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! ac_cv_lib_atlas_ATL_xerbla=yes ! else ! ac_cv_lib_atlas_ATL_xerbla=no ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_atlas_ATL_xerbla" >&5 ! $as_echo "$ac_cv_lib_atlas_ATL_xerbla" >&6; } ! if test "x$ac_cv_lib_atlas_ATL_xerbla" = xyes; then : ! as_ac_Lib=`$as_echo "ac_cv_lib_f77blas_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lf77blas" >&5 ! $as_echo_n "checking for $sgemm in -lf77blas... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lf77blas -latlas $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cblas_dgemm in -lcblas" >&5 ! $as_echo_n "checking for cblas_dgemm in -lcblas... " >&6; } ! if ${ac_cv_lib_cblas_cblas_dgemm+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lcblas -lf77blas -latlas $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char cblas_dgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return cblas_dgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! ac_cv_lib_cblas_cblas_dgemm=yes ! else ! ac_cv_lib_cblas_cblas_dgemm=no ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cblas_cblas_dgemm" >&5 ! $as_echo "$ac_cv_lib_cblas_cblas_dgemm" >&6; } ! if test "x$ac_cv_lib_cblas_cblas_dgemm" = xyes; then : ! ax_blas_ok=yes ! BLAS_LIBS="-lcblas -lf77blas -latlas" ! fi ! ! fi ! ! fi ! ! fi ! ! # BLAS in PhiPACK libraries? (requires generic BLAS lib, too) ! if test $ax_blas_ok = no; then ! as_ac_Lib=`$as_echo "ac_cv_lib_blas_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lblas" >&5 ! $as_echo_n "checking for $sgemm in -lblas... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lblas $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! as_ac_Lib=`$as_echo "ac_cv_lib_dgemm_$dgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $dgemm in -ldgemm" >&5 ! $as_echo_n "checking for $dgemm in -ldgemm... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-ldgemm -lblas $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $dgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $dgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! as_ac_Lib=`$as_echo "ac_cv_lib_sgemm_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lsgemm" >&5 ! $as_echo_n "checking for $sgemm in -lsgemm... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lsgemm -lblas $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! ax_blas_ok=yes; BLAS_LIBS="-lsgemm -ldgemm -lblas" ! fi ! ! fi ! ! fi ! ! fi ! ! # BLAS in Intel MKL library? ! if test $ax_blas_ok = no; then ! as_ac_Lib=`$as_echo "ac_cv_lib_mkl_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lmkl" >&5 ! $as_echo_n "checking for $sgemm in -lmkl... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lmkl $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! ax_blas_ok=yes;BLAS_LIBS="-lmkl" ! fi ! ! fi ! ! # BLAS in Apple vecLib library? ! if test $ax_blas_ok = no; then ! save_LIBS="$LIBS"; LIBS="-framework vecLib $LIBS" ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -framework vecLib" >&5 ! $as_echo_n "checking for $sgemm in -framework vecLib... " >&6; } ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! ax_blas_ok=yes;BLAS_LIBS="-framework vecLib" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_ok" >&5 ! $as_echo "$ax_blas_ok" >&6; } ! LIBS="$save_LIBS" ! fi ! ! # BLAS in Alpha CXML library? ! if test $ax_blas_ok = no; then ! as_ac_Lib=`$as_echo "ac_cv_lib_cxml_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lcxml" >&5 ! $as_echo_n "checking for $sgemm in -lcxml... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lcxml $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! ax_blas_ok=yes;BLAS_LIBS="-lcxml" ! fi ! ! fi ! ! # BLAS in Alpha DXML library? (now called CXML, see above) ! if test $ax_blas_ok = no; then ! as_ac_Lib=`$as_echo "ac_cv_lib_dxml_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -ldxml" >&5 ! $as_echo_n "checking for $sgemm in -ldxml... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-ldxml $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! ax_blas_ok=yes;BLAS_LIBS="-ldxml" ! fi ! ! fi ! ! # BLAS in Sun Performance library? ! if test $ax_blas_ok = no; then ! if test "x$GCC" != xyes; then # only works with Sun CC ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for acosp in -lsunmath" >&5 ! $as_echo_n "checking for acosp in -lsunmath... " >&6; } ! if ${ac_cv_lib_sunmath_acosp+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lsunmath $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char acosp (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return acosp (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! ac_cv_lib_sunmath_acosp=yes ! else ! ac_cv_lib_sunmath_acosp=no ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sunmath_acosp" >&5 ! $as_echo "$ac_cv_lib_sunmath_acosp" >&6; } ! if test "x$ac_cv_lib_sunmath_acosp" = xyes; then : ! as_ac_Lib=`$as_echo "ac_cv_lib_sunperf_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lsunperf" >&5 ! $as_echo_n "checking for $sgemm in -lsunperf... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lsunperf -lsunmath $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! BLAS_LIBS="-xlic_lib=sunperf -lsunmath" ! ax_blas_ok=yes ! fi ! ! fi ! ! fi ! fi ! ! # BLAS in SCSL library? (SGI/Cray Scientific Library) ! if test $ax_blas_ok = no; then ! as_ac_Lib=`$as_echo "ac_cv_lib_scs_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lscs" >&5 ! $as_echo_n "checking for $sgemm in -lscs... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lscs $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! ax_blas_ok=yes; BLAS_LIBS="-lscs" ! fi ! ! fi ! ! # BLAS in SGIMATH library? ! if test $ax_blas_ok = no; then ! as_ac_Lib=`$as_echo "ac_cv_lib_complib.sgimath_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lcomplib.sgimath" >&5 ! $as_echo_n "checking for $sgemm in -lcomplib.sgimath... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lcomplib.sgimath $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! ax_blas_ok=yes; BLAS_LIBS="-lcomplib.sgimath" ! fi ! ! fi ! ! # BLAS in IBM ESSL library? (requires generic BLAS lib, too) ! if test $ax_blas_ok = no; then ! as_ac_Lib=`$as_echo "ac_cv_lib_blas_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lblas" >&5 ! $as_echo_n "checking for $sgemm in -lblas... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lblas $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! as_ac_Lib=`$as_echo "ac_cv_lib_essl_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lessl" >&5 ! $as_echo_n "checking for $sgemm in -lessl... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lessl -lblas $FLIBS $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! ax_blas_ok=yes; BLAS_LIBS="-lessl -lblas" ! fi ! ! fi ! ! fi ! ! # Generic BLAS library? ! if test $ax_blas_ok = no; then ! as_ac_Lib=`$as_echo "ac_cv_lib_blas_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lblas" >&5 ! $as_echo_n "checking for $sgemm in -lblas... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lblas $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! ax_blas_ok=yes; BLAS_LIBS="-lblas" ! fi ! ! fi ! ! ! ! LIBS="$ax_blas_save_LIBS" ! ! # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: ! if test x"$ax_blas_ok" = xyes; then ! # disable special action ! : ! else ! ax_blas_ok=no ! ! fi ! ! if test x$ax_blas_ok = xyes ; then ! ! ! ! ! # F77 call-compatibility checks ! if test "$cross_compiling" = yes ; then ! : ! elif test x"$ax_blas_ok" = xyes; then ! save_ax_blas_f77_func_LIBS="$LIBS" ! LIBS="$BLAS_LIBS $LIBS" ! ac_ext=f ! ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ! ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_f77_compiler_gnu ! ! # LSAME check (LOGICAL return values) ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether LSAME is called correctly from Fortran" >&5 ! $as_echo_n "checking whether LSAME is called correctly from Fortran... " >&6; } ! if test "$cross_compiling" = yes; then : ! { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ! as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } ! else ! cat > conftest.$ac_ext <<_ACEOF ! program main ! ! logical lsame,w ! external lsame ! character c1,c2 ! c1 = 'A' ! c2 = 'B' ! w = lsame(c1,c2) ! if (w) stop 1 ! w = lsame(c1,c1) ! if (.not. w) stop 1 ! ! end ! _ACEOF ! if ac_fn_f77_try_run "$LINENO"; then : ! ax_blas_lsame_fcall_ok=yes ! else ! ax_blas_lsame_fcall_ok=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_lsame_fcall_ok" >&5 ! $as_echo "$ax_blas_lsame_fcall_ok" >&6; } ! # ISAMAX check (INTEGER return values) ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ISAMAX is called correctly from Fortran" >&5 ! $as_echo_n "checking whether ISAMAX is called correctly from Fortran... " >&6; } ! if test "$cross_compiling" = yes; then : ! { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ! as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } ! else ! cat > conftest.$ac_ext <<_ACEOF ! program main ! ! integer isamax,i ! external isamax ! real a(2) ! a(1) = 1e0 ! a(2) = -2e0 ! i = isamax(2,a,1) ! if (i.ne.2) stop 1 ! ! end ! _ACEOF ! if ac_fn_f77_try_run "$LINENO"; then : ! ax_blas_isamax_fcall_ok=yes ! else ! ax_blas_isamax_fcall_ok=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_isamax_fcall_ok" >&5 ! $as_echo "$ax_blas_isamax_fcall_ok" >&6; } ! # SDOT check (REAL return values) ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether SDOT is called correctly from Fortran" >&5 ! $as_echo_n "checking whether SDOT is called correctly from Fortran... " >&6; } ! if test "$cross_compiling" = yes; then : ! { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ! as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } ! else ! cat > conftest.$ac_ext <<_ACEOF ! program main ! ! real sdot,a(1),b(1),w ! external sdot ! a(1) = 1e0 ! b(1) = 2e0 ! w = sdot(1,a,1,b,1) ! if (w .ne. a(1)*b(1)) stop 1 ! ! end ! _ACEOF ! if ac_fn_f77_try_run "$LINENO"; then : ! ax_blas_sdot_fcall_ok=yes ! else ! ax_blas_sdot_fcall_ok=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_sdot_fcall_ok" >&5 ! $as_echo "$ax_blas_sdot_fcall_ok" >&6; } ! # DDOT check (DOUBLE return values) ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether DDOT is called correctly from Fortran" >&5 ! $as_echo_n "checking whether DDOT is called correctly from Fortran... " >&6; } ! if test "$cross_compiling" = yes; then : ! { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ! as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } ! else ! cat > conftest.$ac_ext <<_ACEOF ! program main ! ! double precision ddot,a(1),b(1),w ! external ddot ! a(1) = 1d0 ! b(1) = 2d0 ! w = ddot(1,a,1,b,1) ! if (w .ne. a(1)*b(1)) stop 1 ! ! end ! _ACEOF ! if ac_fn_f77_try_run "$LINENO"; then : ! ax_blas_ddot_fcall_ok=yes ! else ! ax_blas_ddot_fcall_ok=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_ddot_fcall_ok" >&5 ! $as_echo "$ax_blas_ddot_fcall_ok" >&6; } ! # CDOTU check (COMPLEX return values) ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether CDOTU is called correctly from Fortran" >&5 ! $as_echo_n "checking whether CDOTU is called correctly from Fortran... " >&6; } ! if test "$cross_compiling" = yes; then : ! { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ! as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } ! else ! cat > conftest.$ac_ext <<_ACEOF ! program main ! ! complex cdotu,a(1),b(1),w ! external cdotu ! a(1) = cmplx(1e0,1e0) ! b(1) = cmplx(1e0,2e0) ! w = cdotu(1,a,1,b,1) ! if (w .ne. a(1)*b(1)) stop 1 ! ! end ! _ACEOF ! if ac_fn_f77_try_run "$LINENO"; then : ! ax_blas_cdotu_fcall_ok=yes ! else ! ax_blas_cdotu_fcall_ok=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_cdotu_fcall_ok" >&5 ! $as_echo "$ax_blas_cdotu_fcall_ok" >&6; } ! # ZDOTU check (DOUBLE COMPLEX return values) ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ZDOTU is called correctly from Fortran" >&5 ! $as_echo_n "checking whether ZDOTU is called correctly from Fortran... " >&6; } ! if test "$cross_compiling" = yes; then : ! { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ! as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } ! else ! cat > conftest.$ac_ext <<_ACEOF ! program main ! ! double complex zdotu,a(1),b(1),w ! external zdotu ! a(1) = dcmplx(1d0,1d0) ! b(1) = dcmplx(1d0,2d0) ! w = zdotu(1,a,1,b,1) ! if (w .ne. a(1)*b(1)) stop 1 ! ! end ! _ACEOF ! if ac_fn_f77_try_run "$LINENO"; then : ! ax_blas_zdotu_fcall_ok=yes ! else ! ax_blas_zdotu_fcall_ok=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_zdotu_fcall_ok" >&5 ! $as_echo "$ax_blas_zdotu_fcall_ok" >&6; } ! # Check for correct integer size ! # FIXME: this may fail with things like -ftrapping-math. ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the integer size is correct" >&5 ! $as_echo_n "checking whether the integer size is correct... " >&6; } ! if test "$cross_compiling" = yes; then : ! { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ! as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } ! else ! cat > conftest.$ac_ext <<_ACEOF ! program main ! ! integer n,nn(3) ! real s,a(1),b(1),sdot ! a(1) = 1.0 ! b(1) = 1.0 ! c Generate -2**33 + 1, if possible ! n = 2 ! n = -4 * (n ** 30) ! n = n + 1 ! if (n >= 0) goto 1 ! c This means we're on 64-bit integers. Check whether the BLAS is, too. ! s = sdot(n,a,1,b,1) ! if (s .ne. 0.0) stop 1 ! 1 continue ! c We may be on 32-bit integers, and the BLAS on 64 bits. This is almost bound ! c to have already failed, but just in case, we'll check. ! nn(1) = -1 ! nn(2) = 1 ! nn(3) = -1 ! s = sdot(nn(2),a,1,b,1) ! if (s .ne. 1.0) stop 1 ! ! end ! _ACEOF ! if ac_fn_f77_try_run "$LINENO"; then : ! ax_blas_integer_size_ok=yes ! else ! ax_blas_integer_size_ok=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_integer_size_ok" >&5 ! $as_echo "$ax_blas_integer_size_ok" >&6; } ! ! ac_ext=c ! ac_cpp='$CPP $CPPFLAGS' ! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_c_compiler_gnu ! ! ! # if any of the tests failed, reject the BLAS library ! if test $ax_blas_lsame_fcall_ok = yes \ ! -a $ax_blas_sdot_fcall_ok = yes \ ! -a $ax_blas_ddot_fcall_ok = yes \ ! -a $ax_blas_cdotu_fcall_ok = yes \ ! -a $ax_blas_zdotu_fcall_ok = yes \ ! -a $ax_blas_integer_size_ok = yes; then ! ax_blas_f77_func_ok=yes; ! : ! else ! ax_blas_f77_func_ok=no; ! ax_blas_ok=no; BLAS_LIBS= ! fi ! LIBS="$save_ax_blas_f77_func_LIBS" ! fi ! ! ! fi ! if test x$ax_blas_ok = xno ; then ! : ! fi ! ! ! ! ax_lapack_ok=no ! ! ! # Check whether --with-lapack was given. ! if test "${with_lapack+set}" = set; then : ! withval=$with_lapack; ! fi ! ! case $with_lapack in ! yes | "") ;; ! no) ax_lapack_ok=disable ;; ! -* | */* | *.a | *.so | *.so.* | *.o) LAPACK_LIBS="$with_lapack" ;; ! *) LAPACK_LIBS="-l$with_lapack" ;; ! esac ! ! # Get fortran linker name of LAPACK function to check for. ! ac_ext=f ! ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ! ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_f77_compiler_gnu ! case $ac_cv_f77_mangling in ! upper*) ac_val="CHEEV" ;; ! lower*) ac_val="cheev" ;; ! *) ac_val="unknown" ;; ! esac ! case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac ! ! cheev="$ac_val" ! ! ac_ext=c ! ac_cpp='$CPP $CPPFLAGS' ! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_c_compiler_gnu ! ! ! # We cannot use LAPACK if BLAS is not found ! if test "x$ax_blas_ok" != xyes; then ! ax_lapack_ok=noblas ! LAPACK_LIBS="" ! fi ! ! # First, check LAPACK_LIBS environment variable ! if test "x$LAPACK_LIBS" != x; then ! save_LIBS="$LIBS"; LIBS="$LAPACK_LIBS $BLAS_LIBS $LIBS $FLIBS" ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $cheev in $LAPACK_LIBS" >&5 ! $as_echo_n "checking for $cheev in $LAPACK_LIBS... " >&6; } ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $cheev (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $cheev (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! ax_lapack_ok=yes ! else ! LAPACK_LIBS="" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_lapack_ok" >&5 ! $as_echo "$ax_lapack_ok" >&6; } ! LIBS="$save_LIBS" ! if test $ax_lapack_ok = no; then ! LAPACK_LIBS="" ! fi ! fi ! ! # LAPACK linked to by default? (is sometimes included in BLAS lib) ! if test $ax_lapack_ok = no; then ! save_LIBS="$LIBS"; LIBS="$LIBS $BLAS_LIBS $FLIBS" ! as_ac_var=`$as_echo "ac_cv_func_$cheev" | $as_tr_sh` ! ac_fn_c_check_func "$LINENO" "$cheev" "$as_ac_var" ! if eval test \"x\$"$as_ac_var"\" = x"yes"; then : ! ax_lapack_ok=yes ! fi ! ! LIBS="$save_LIBS" ! fi ! ! # Generic LAPACK library? ! for lapack in lapack lapack_rs6k; do ! if test $ax_lapack_ok = no; then ! save_LIBS="$LIBS"; LIBS="$BLAS_LIBS $LIBS" ! as_ac_Lib=`$as_echo "ac_cv_lib_$lapack''_$cheev" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $cheev in -l$lapack" >&5 ! $as_echo_n "checking for $cheev in -l$lapack... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-l$lapack $FLIBS $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $cheev (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $cheev (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! ax_lapack_ok=yes; LAPACK_LIBS="-l$lapack" ! fi ! ! LIBS="$save_LIBS" ! fi ! done ! ! ! ! # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: ! if test x"$ax_lapack_ok" = xyes; then ! : ! : ! else ! ax_lapack_ok=no ! : ! fi ! ! ! ## Restore FFLAGS. ! FFLAGS="$save_FFLAGS" ! ! ## Try again with -ff2c in FFLAGS ! if test "x$ax_blas_f77_func_ok" = "xno"; then ! save_FFLAGS="$FFLAGS" ! FFLAGS="-ff2c $FFLAGS $F77_INTEGER_8_FLAG" ! ! ! ! ! ! ! ax_blas_ok=no ! ! ! # Check whether --with-blas was given. ! if test "${with_blas+set}" = set; then : ! withval=$with_blas; ! fi ! ! case $with_blas in ! yes | "") ;; ! no) ax_blas_ok=disable ;; ! -* | */* | *.a | *.so | *.so.* | *.o) BLAS_LIBS="$with_blas" ;; ! *) BLAS_LIBS="-l$with_blas" ;; ! esac ! ! # Get fortran linker names of BLAS functions to check for. ! ac_ext=f ! ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ! ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_f77_compiler_gnu ! case $ac_cv_f77_mangling in ! upper*) ac_val="SGEMM" ;; ! lower*) ac_val="sgemm" ;; ! *) ac_val="unknown" ;; ! esac ! case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac ! ! sgemm="$ac_val" ! ! ac_ext=c ! ac_cpp='$CPP $CPPFLAGS' ! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_c_compiler_gnu ! ! ac_ext=f ! ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ! ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_f77_compiler_gnu ! case $ac_cv_f77_mangling in ! upper*) ac_val="DGEMM" ;; ! lower*) ac_val="dgemm" ;; ! *) ac_val="unknown" ;; ! esac ! case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac ! ! dgemm="$ac_val" ! ! ac_ext=c ! ac_cpp='$CPP $CPPFLAGS' ! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_c_compiler_gnu ! ! ! ax_blas_save_LIBS="$LIBS" ! LIBS="$LIBS $FLIBS" ! ! # First, check BLAS_LIBS environment variable ! if test $ax_blas_ok = no; then ! if test "x$BLAS_LIBS" != x; then ! save_LIBS="$LIBS"; LIBS="$BLAS_LIBS $LIBS" ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in $BLAS_LIBS" >&5 ! $as_echo_n "checking for $sgemm in $BLAS_LIBS... " >&6; } ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! ax_blas_ok=yes ! else ! BLAS_LIBS="" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_ok" >&5 ! $as_echo "$ax_blas_ok" >&6; } ! LIBS="$save_LIBS" ! fi ! fi ! ! # BLAS linked to by default? (happens on some supercomputers) ! if test $ax_blas_ok = no; then ! save_LIBS="$LIBS"; LIBS="$LIBS" ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $sgemm is being linked in already" >&5 ! $as_echo_n "checking if $sgemm is being linked in already... " >&6; } ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! ax_blas_ok=yes ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_ok" >&5 ! $as_echo "$ax_blas_ok" >&6; } ! LIBS="$save_LIBS" ! fi ! ! # BLAS in ATLAS library? (http://math-atlas.sourceforge.net/) ! if test $ax_blas_ok = no; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ATL_xerbla in -latlas" >&5 ! $as_echo_n "checking for ATL_xerbla in -latlas... " >&6; } ! if ${ac_cv_lib_atlas_ATL_xerbla+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-latlas $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char ATL_xerbla (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return ATL_xerbla (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! ac_cv_lib_atlas_ATL_xerbla=yes ! else ! ac_cv_lib_atlas_ATL_xerbla=no ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_atlas_ATL_xerbla" >&5 ! $as_echo "$ac_cv_lib_atlas_ATL_xerbla" >&6; } ! if test "x$ac_cv_lib_atlas_ATL_xerbla" = xyes; then : ! as_ac_Lib=`$as_echo "ac_cv_lib_f77blas_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lf77blas" >&5 ! $as_echo_n "checking for $sgemm in -lf77blas... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lf77blas -latlas $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cblas_dgemm in -lcblas" >&5 ! $as_echo_n "checking for cblas_dgemm in -lcblas... " >&6; } ! if ${ac_cv_lib_cblas_cblas_dgemm+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lcblas -lf77blas -latlas $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char cblas_dgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return cblas_dgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! ac_cv_lib_cblas_cblas_dgemm=yes ! else ! ac_cv_lib_cblas_cblas_dgemm=no ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cblas_cblas_dgemm" >&5 ! $as_echo "$ac_cv_lib_cblas_cblas_dgemm" >&6; } ! if test "x$ac_cv_lib_cblas_cblas_dgemm" = xyes; then : ! ax_blas_ok=yes ! BLAS_LIBS="-lcblas -lf77blas -latlas" ! fi ! ! fi ! ! fi ! ! fi ! ! # BLAS in PhiPACK libraries? (requires generic BLAS lib, too) ! if test $ax_blas_ok = no; then ! as_ac_Lib=`$as_echo "ac_cv_lib_blas_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lblas" >&5 ! $as_echo_n "checking for $sgemm in -lblas... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lblas $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! as_ac_Lib=`$as_echo "ac_cv_lib_dgemm_$dgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $dgemm in -ldgemm" >&5 ! $as_echo_n "checking for $dgemm in -ldgemm... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-ldgemm -lblas $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $dgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $dgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! as_ac_Lib=`$as_echo "ac_cv_lib_sgemm_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lsgemm" >&5 ! $as_echo_n "checking for $sgemm in -lsgemm... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lsgemm -lblas $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! ax_blas_ok=yes; BLAS_LIBS="-lsgemm -ldgemm -lblas" ! fi ! ! fi ! ! fi ! ! fi ! ! # BLAS in Intel MKL library? ! if test $ax_blas_ok = no; then ! as_ac_Lib=`$as_echo "ac_cv_lib_mkl_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lmkl" >&5 ! $as_echo_n "checking for $sgemm in -lmkl... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lmkl $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! ax_blas_ok=yes;BLAS_LIBS="-lmkl" ! fi ! ! fi ! ! # BLAS in Apple vecLib library? ! if test $ax_blas_ok = no; then ! save_LIBS="$LIBS"; LIBS="-framework vecLib $LIBS" ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -framework vecLib" >&5 ! $as_echo_n "checking for $sgemm in -framework vecLib... " >&6; } ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! ax_blas_ok=yes;BLAS_LIBS="-framework vecLib" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_ok" >&5 ! $as_echo "$ax_blas_ok" >&6; } ! LIBS="$save_LIBS" ! fi ! ! # BLAS in Alpha CXML library? ! if test $ax_blas_ok = no; then ! as_ac_Lib=`$as_echo "ac_cv_lib_cxml_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lcxml" >&5 ! $as_echo_n "checking for $sgemm in -lcxml... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lcxml $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! ax_blas_ok=yes;BLAS_LIBS="-lcxml" ! fi ! ! fi ! ! # BLAS in Alpha DXML library? (now called CXML, see above) ! if test $ax_blas_ok = no; then ! as_ac_Lib=`$as_echo "ac_cv_lib_dxml_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -ldxml" >&5 ! $as_echo_n "checking for $sgemm in -ldxml... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-ldxml $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! ax_blas_ok=yes;BLAS_LIBS="-ldxml" ! fi ! ! fi ! ! # BLAS in Sun Performance library? ! if test $ax_blas_ok = no; then ! if test "x$GCC" != xyes; then # only works with Sun CC ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for acosp in -lsunmath" >&5 ! $as_echo_n "checking for acosp in -lsunmath... " >&6; } ! if ${ac_cv_lib_sunmath_acosp+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lsunmath $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char acosp (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return acosp (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! ac_cv_lib_sunmath_acosp=yes ! else ! ac_cv_lib_sunmath_acosp=no ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sunmath_acosp" >&5 ! $as_echo "$ac_cv_lib_sunmath_acosp" >&6; } ! if test "x$ac_cv_lib_sunmath_acosp" = xyes; then : ! as_ac_Lib=`$as_echo "ac_cv_lib_sunperf_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lsunperf" >&5 ! $as_echo_n "checking for $sgemm in -lsunperf... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lsunperf -lsunmath $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! BLAS_LIBS="-xlic_lib=sunperf -lsunmath" ! ax_blas_ok=yes ! fi ! ! fi ! ! fi ! fi ! ! # BLAS in SCSL library? (SGI/Cray Scientific Library) ! if test $ax_blas_ok = no; then ! as_ac_Lib=`$as_echo "ac_cv_lib_scs_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lscs" >&5 ! $as_echo_n "checking for $sgemm in -lscs... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lscs $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! ax_blas_ok=yes; BLAS_LIBS="-lscs" ! fi ! ! fi ! ! # BLAS in SGIMATH library? ! if test $ax_blas_ok = no; then ! as_ac_Lib=`$as_echo "ac_cv_lib_complib.sgimath_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lcomplib.sgimath" >&5 ! $as_echo_n "checking for $sgemm in -lcomplib.sgimath... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lcomplib.sgimath $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! ax_blas_ok=yes; BLAS_LIBS="-lcomplib.sgimath" ! fi ! ! fi ! ! # BLAS in IBM ESSL library? (requires generic BLAS lib, too) ! if test $ax_blas_ok = no; then ! as_ac_Lib=`$as_echo "ac_cv_lib_blas_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lblas" >&5 ! $as_echo_n "checking for $sgemm in -lblas... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lblas $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! as_ac_Lib=`$as_echo "ac_cv_lib_essl_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lessl" >&5 ! $as_echo_n "checking for $sgemm in -lessl... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lessl -lblas $FLIBS $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! ax_blas_ok=yes; BLAS_LIBS="-lessl -lblas" ! fi ! ! fi ! ! fi ! ! # Generic BLAS library? ! if test $ax_blas_ok = no; then ! as_ac_Lib=`$as_echo "ac_cv_lib_blas_$sgemm" | $as_tr_sh` ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lblas" >&5 ! $as_echo_n "checking for $sgemm in -lblas... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lblas $LIBS" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! /* Override any GCC internal prototype to avoid an error. ! Use char because int might match the return type of a GCC ! builtin and then its argument prototype would still apply. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! char $sgemm (); ! #ifdef F77_DUMMY_MAIN ! ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } ! ! #endif ! int ! main () ! { ! return $sgemm (); ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ! eval "$as_ac_Lib=yes" ! else ! eval "$as_ac_Lib=no" ! fi ! rm -f core conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! eval ac_res=\$$as_ac_Lib ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ! $as_echo "$ac_res" >&6; } ! if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ! ax_blas_ok=yes; BLAS_LIBS="-lblas" ! fi ! ! fi ! ! ! ! LIBS="$ax_blas_save_LIBS" ! ! # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: ! if test x"$ax_blas_ok" = xyes; then ! # disable special action ! : ! else ! ax_blas_ok=no ! ! fi ! ! if test x$ax_blas_ok = xyes ; then ! ! ! ! ! # F77 call-compatibility checks ! if test "$cross_compiling" = yes ; then ! : ! elif test x"$ax_blas_ok" = xyes; then ! save_ax_blas_f77_func_LIBS="$LIBS" ! LIBS="$BLAS_LIBS $LIBS" ! ac_ext=f ! ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ! ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_f77_compiler_gnu ! ! # LSAME check (LOGICAL return values) ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether LSAME is called correctly from Fortran" >&5 ! $as_echo_n "checking whether LSAME is called correctly from Fortran... " >&6; } ! if test "$cross_compiling" = yes; then : ! { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ! as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } ! else ! cat > conftest.$ac_ext <<_ACEOF ! program main ! ! logical lsame,w ! external lsame ! character c1,c2 ! c1 = 'A' ! c2 = 'B' ! w = lsame(c1,c2) ! if (w) stop 1 ! w = lsame(c1,c1) ! if (.not. w) stop 1 ! ! end ! _ACEOF ! if ac_fn_f77_try_run "$LINENO"; then : ! ax_blas_lsame_fcall_ok=yes ! else ! ax_blas_lsame_fcall_ok=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_lsame_fcall_ok" >&5 ! $as_echo "$ax_blas_lsame_fcall_ok" >&6; } ! # ISAMAX check (INTEGER return values) ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ISAMAX is called correctly from Fortran" >&5 ! $as_echo_n "checking whether ISAMAX is called correctly from Fortran... " >&6; } ! if test "$cross_compiling" = yes; then : ! { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ! as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } ! else ! cat > conftest.$ac_ext <<_ACEOF ! program main ! ! integer isamax,i ! external isamax ! real a(2) ! a(1) = 1e0 ! a(2) = -2e0 ! i = isamax(2,a,1) ! if (i.ne.2) stop 1 ! ! end ! _ACEOF ! if ac_fn_f77_try_run "$LINENO"; then : ! ax_blas_isamax_fcall_ok=yes ! else ! ax_blas_isamax_fcall_ok=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_isamax_fcall_ok" >&5 ! $as_echo "$ax_blas_isamax_fcall_ok" >&6; } ! # SDOT check (REAL return values) ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether SDOT is called correctly from Fortran" >&5 ! $as_echo_n "checking whether SDOT is called correctly from Fortran... " >&6; } ! if test "$cross_compiling" = yes; then : ! { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ! as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } ! else ! cat > conftest.$ac_ext <<_ACEOF ! program main ! ! real sdot,a(1),b(1),w ! external sdot ! a(1) = 1e0 ! b(1) = 2e0 ! w = sdot(1,a,1,b,1) ! if (w .ne. a(1)*b(1)) stop 1 ! ! end ! _ACEOF ! if ac_fn_f77_try_run "$LINENO"; then : ! ax_blas_sdot_fcall_ok=yes ! else ! ax_blas_sdot_fcall_ok=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_sdot_fcall_ok" >&5 ! $as_echo "$ax_blas_sdot_fcall_ok" >&6; } ! # DDOT check (DOUBLE return values) ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether DDOT is called correctly from Fortran" >&5 ! $as_echo_n "checking whether DDOT is called correctly from Fortran... " >&6; } ! if test "$cross_compiling" = yes; then : ! { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ! as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } ! else ! cat > conftest.$ac_ext <<_ACEOF ! program main ! ! double precision ddot,a(1),b(1),w ! external ddot ! a(1) = 1d0 ! b(1) = 2d0 ! w = ddot(1,a,1,b,1) ! if (w .ne. a(1)*b(1)) stop 1 ! ! end ! _ACEOF ! if ac_fn_f77_try_run "$LINENO"; then : ! ax_blas_ddot_fcall_ok=yes ! else ! ax_blas_ddot_fcall_ok=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_ddot_fcall_ok" >&5 ! $as_echo "$ax_blas_ddot_fcall_ok" >&6; } ! # CDOTU check (COMPLEX return values) ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether CDOTU is called correctly from Fortran" >&5 ! $as_echo_n "checking whether CDOTU is called correctly from Fortran... " >&6; } ! if test "$cross_compiling" = yes; then : ! { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ! as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } ! else ! cat > conftest.$ac_ext <<_ACEOF ! program main ! ! complex cdotu,a(1),b(1),w ! external cdotu ! a(1) = cmplx(1e0,1e0) ! b(1) = cmplx(1e0,2e0) ! w = cdotu(1,a,1,b,1) ! if (w .ne. a(1)*b(1)) stop 1 ! ! end ! _ACEOF ! if ac_fn_f77_try_run "$LINENO"; then : ! ax_blas_cdotu_fcall_ok=yes ! else ! ax_blas_cdotu_fcall_ok=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_cdotu_fcall_ok" >&5 ! $as_echo "$ax_blas_cdotu_fcall_ok" >&6; } ! # ZDOTU check (DOUBLE COMPLEX return values) ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ZDOTU is called correctly from Fortran" >&5 ! $as_echo_n "checking whether ZDOTU is called correctly from Fortran... " >&6; } ! if test "$cross_compiling" = yes; then : ! { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ! as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } ! else ! cat > conftest.$ac_ext <<_ACEOF ! program main ! ! double complex zdotu,a(1),b(1),w ! external zdotu ! a(1) = dcmplx(1d0,1d0) ! b(1) = dcmplx(1d0,2d0) ! w = zdotu(1,a,1,b,1) ! if (w .ne. a(1)*b(1)) stop 1 ! ! end ! _ACEOF ! if ac_fn_f77_try_run "$LINENO"; then : ! ax_blas_zdotu_fcall_ok=yes ! else ! ax_blas_zdotu_fcall_ok=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_zdotu_fcall_ok" >&5 ! $as_echo "$ax_blas_zdotu_fcall_ok" >&6; } ! # Check for correct integer size ! # FIXME: this may fail with things like -ftrapping-math. ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the integer size is correct" >&5 ! $as_echo_n "checking whether the integer size is correct... " >&6; } ! if test "$cross_compiling" = yes; then : ! { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ! as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } ! else ! cat > conftest.$ac_ext <<_ACEOF ! program main ! ! integer n,nn(3) ! real s,a(1),b(1),sdot ! a(1) = 1.0 ! b(1) = 1.0 ! c Generate -2**33 + 1, if possible ! n = 2 ! n = -4 * (n ** 30) ! n = n + 1 ! if (n >= 0) goto 1 ! c This means we're on 64-bit integers. Check whether the BLAS is, too. ! s = sdot(n,a,1,b,1) ! if (s .ne. 0.0) stop 1 ! 1 continue ! c We may be on 32-bit integers, and the BLAS on 64 bits. This is almost bound ! c to have already failed, but just in case, we'll check. ! nn(1) = -1 ! nn(2) = 1 ! nn(3) = -1 ! s = sdot(nn(2),a,1,b,1) ! if (s .ne. 1.0) stop 1 ! ! end ! _ACEOF ! if ac_fn_f77_try_run "$LINENO"; then : ! ax_blas_integer_size_ok=yes ! else ! ax_blas_integer_size_ok=no ! fi ! rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ! conftest.$ac_objext conftest.beam conftest.$ac_ext ! fi ! ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_blas_integer_size_ok" >&5 ! $as_echo "$ax_blas_integer_size_ok" >&6; } ! ! ac_ext=c ! ac_cpp='$CPP $CPPFLAGS' ! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_c_compiler_gnu ! ! ! # if any of the tests failed, reject the BLAS library ! if test $ax_blas_lsame_fcall_ok = yes \ ! -a $ax_blas_sdot_fcall_ok = yes \ ! -a $ax_blas_ddot_fcall_ok = yes \ ! -a $ax_blas_cdotu_fcall_ok = yes \ ! -a $ax_blas_zdotu_fcall_ok = yes \ ! -a $ax_blas_integer_size_ok = yes; then ! ax_blas_f77_func_ok=yes; ! : ! else ! ax_blas_f77_func_ok=no; ! ax_blas_ok=no; BLAS_LIBS= ! fi ! LIBS="$save_ax_blas_f77_func_LIBS" ! fi ! ! fi ! if test x$ax_blas_ok = xno ; then ! : fi + ax_lapack_ok=no + # Check whether --with-lapack was given. + if test "${with_lapack+set}" = set; then : + withval=$with_lapack; + fi + case $with_lapack in + yes | "") ;; + no) ax_lapack_ok=disable ;; + -* | */* | *.a | *.so | *.so.* | *.o) LAPACK_LIBS="$with_lapack" ;; + *) LAPACK_LIBS="-l$with_lapack" ;; + esac ! # Get fortran linker name of LAPACK function to check for. ! ac_ext=f ! ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ! ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_f77_compiler_gnu ! case $ac_cv_f77_mangling in ! upper*) ac_val="CHEEV" ;; ! lower*) ac_val="cheev" ;; ! *) ac_val="unknown" ;; ! esac ! case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac ! cheev="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' *************** *** 44750,44797 **** ac_compiler_gnu=$ac_cv_c_compiler_gnu ! ac_config_commands="$ac_config_commands libtool" ! ! ! # Only expand once: ! if test x$enable_shared = xyes; then ! SHARED_LIBS=true else ! SHARED_LIBS=false fi - if test x$enable_static = xyes; then - STATIC_LIBS=true - else - STATIC_LIBS=false - fi ! XTRA_CRUFT_SH_LDFLAGS= ! if test "$have_msvc" = "yes"; then ! FLIBS="$FLIBS -lkernel32" ! XTRA_CRUFT_SH_LDFLAGS="-Wl,-def:cruft.def" fi ! ### Checks for BLAS and LAPACK libraries: ! ## Need to adjust FFLAGS to include correct integer size. ! save_FFLAGS="$FFLAGS" ! FFLAGS="$FFLAGS $F77_INTEGER_8_FLAG" --- 50006,50180 ---- ac_compiler_gnu=$ac_cv_c_compiler_gnu + # We cannot use LAPACK if BLAS is not found + if test "x$ax_blas_ok" != xyes; then + ax_lapack_ok=noblas + LAPACK_LIBS="" + fi + # First, check LAPACK_LIBS environment variable + if test "x$LAPACK_LIBS" != x; then + save_LIBS="$LIBS"; LIBS="$LAPACK_LIBS $BLAS_LIBS $LIBS $FLIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $cheev in $LAPACK_LIBS" >&5 + $as_echo_n "checking for $cheev in $LAPACK_LIBS... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + /* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ + #ifdef __cplusplus + extern "C" + #endif + char $cheev (); + #ifdef F77_DUMMY_MAIN + # ifdef __cplusplus + extern "C" + # endif + int F77_DUMMY_MAIN() { return 1; } + #endif + int + main () + { + return $cheev (); + ; + return 0; + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + ax_lapack_ok=yes + else + LAPACK_LIBS="" + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_lapack_ok" >&5 + $as_echo "$ax_lapack_ok" >&6; } + LIBS="$save_LIBS" + if test $ax_lapack_ok = no; then + LAPACK_LIBS="" + fi + fi + # LAPACK linked to by default? (is sometimes included in BLAS lib) + if test $ax_lapack_ok = no; then + save_LIBS="$LIBS"; LIBS="$LIBS $BLAS_LIBS $FLIBS" + as_ac_var=`$as_echo "ac_cv_func_$cheev" | $as_tr_sh` + ac_fn_c_check_func "$LINENO" "$cheev" "$as_ac_var" + if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + ax_lapack_ok=yes + fi + LIBS="$save_LIBS" + fi + # Generic LAPACK library? + for lapack in lapack lapack_rs6k; do + if test $ax_lapack_ok = no; then + save_LIBS="$LIBS"; LIBS="$BLAS_LIBS $LIBS" + as_ac_Lib=`$as_echo "ac_cv_lib_$lapack''_$cheev" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $cheev in -l$lapack" >&5 + $as_echo_n "checking for $cheev in -l$lapack... " >&6; } + if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS + LIBS="-l$lapack $FLIBS $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + /* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ + #ifdef __cplusplus + extern "C" + #endif + char $cheev (); + #ifdef F77_DUMMY_MAIN ! # ifdef __cplusplus ! extern "C" ! # endif ! int F77_DUMMY_MAIN() { return 1; } + #endif + int + main () + { + return $cheev (); + ; + return 0; + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + eval "$as_ac_Lib=yes" + else + eval "$as_ac_Lib=no" + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } + if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + ax_lapack_ok=yes; LAPACK_LIBS="-l$lapack" + fi ! LIBS="$save_LIBS" ! fi ! done ! # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: ! if test x"$ax_lapack_ok" = xyes; then ! : ! : else ! ax_lapack_ok=no ! : fi ! ## Restore FFLAGS, with -ff2c if that was helpful ! ! if test "x$ax_blas_f77_func_ok" = "xno"; then ! FFLAGS="$save_FFLAGS" ! else ! FFLAGS="-ff2c $save_FFLAGS" ! fi fi + ## On OSX, try again with a wrapper library (without -ff2c!) + if test "x$ax_blas_f77_func_ok" = "xno"; then + case "$canonical_host_type" in + *-*-darwin*) + ## test if wrapper functions help + octave_blaswrap_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -DUSE_BLASWRAP" + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' + ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_c_compiler_gnu ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! #include "libcruft/misc/blaswrap.c" ! ! _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ! mv conftest.$ac_objext blaswrap.$ac_objext ! octave_blaswrap_save_BLAS_LIBS="$BLAS_LIBS" ! BLAS_LIBS="blaswrap.$ac_objext -framework vecLib" ! ! save_FFLAGS="$FFLAGS" ! FFLAGS="$FFLAGS $F77_INTEGER_8_FLAG" *************** *** 44946,44952 **** if test $ax_blas_ok = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ATL_xerbla in -latlas" >&5 $as_echo_n "checking for ATL_xerbla in -latlas... " >&6; } ! if test "${ac_cv_lib_atlas_ATL_xerbla+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 50329,50335 ---- if test $ax_blas_ok = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ATL_xerbla in -latlas" >&5 $as_echo_n "checking for ATL_xerbla in -latlas... " >&6; } ! if ${ac_cv_lib_atlas_ATL_xerbla+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 44988,44998 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_atlas_ATL_xerbla" >&5 $as_echo "$ac_cv_lib_atlas_ATL_xerbla" >&6; } ! if test "x$ac_cv_lib_atlas_ATL_xerbla" = x""yes; then : as_ac_Lib=`$as_echo "ac_cv_lib_f77blas_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lf77blas" >&5 $as_echo_n "checking for $sgemm in -lf77blas... " >&6; } ! if eval "test \"\${$as_ac_Lib+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 50371,50381 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_atlas_ATL_xerbla" >&5 $as_echo "$ac_cv_lib_atlas_ATL_xerbla" >&6; } ! if test "x$ac_cv_lib_atlas_ATL_xerbla" = xyes; then : as_ac_Lib=`$as_echo "ac_cv_lib_f77blas_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lf77blas" >&5 $as_echo_n "checking for $sgemm in -lf77blas... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 45038,45044 **** if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cblas_dgemm in -lcblas" >&5 $as_echo_n "checking for cblas_dgemm in -lcblas... " >&6; } ! if test "${ac_cv_lib_cblas_cblas_dgemm+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 50421,50427 ---- if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cblas_dgemm in -lcblas" >&5 $as_echo_n "checking for cblas_dgemm in -lcblas... " >&6; } ! if ${ac_cv_lib_cblas_cblas_dgemm+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 45080,45086 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cblas_cblas_dgemm" >&5 $as_echo "$ac_cv_lib_cblas_cblas_dgemm" >&6; } ! if test "x$ac_cv_lib_cblas_cblas_dgemm" = x""yes; then : ax_blas_ok=yes BLAS_LIBS="-lcblas -lf77blas -latlas" fi --- 50463,50469 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cblas_cblas_dgemm" >&5 $as_echo "$ac_cv_lib_cblas_cblas_dgemm" >&6; } ! if test "x$ac_cv_lib_cblas_cblas_dgemm" = xyes; then : ax_blas_ok=yes BLAS_LIBS="-lcblas -lf77blas -latlas" fi *************** *** 45096,45102 **** as_ac_Lib=`$as_echo "ac_cv_lib_blas_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lblas" >&5 $as_echo_n "checking for $sgemm in -lblas... " >&6; } ! if eval "test \"\${$as_ac_Lib+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 50479,50485 ---- as_ac_Lib=`$as_echo "ac_cv_lib_blas_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lblas" >&5 $as_echo_n "checking for $sgemm in -lblas... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 45143,45149 **** as_ac_Lib=`$as_echo "ac_cv_lib_dgemm_$dgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $dgemm in -ldgemm" >&5 $as_echo_n "checking for $dgemm in -ldgemm... " >&6; } ! if eval "test \"\${$as_ac_Lib+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 50526,50532 ---- as_ac_Lib=`$as_echo "ac_cv_lib_dgemm_$dgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $dgemm in -ldgemm" >&5 $as_echo_n "checking for $dgemm in -ldgemm... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 45190,45196 **** as_ac_Lib=`$as_echo "ac_cv_lib_sgemm_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lsgemm" >&5 $as_echo_n "checking for $sgemm in -lsgemm... " >&6; } ! if eval "test \"\${$as_ac_Lib+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 50573,50579 ---- as_ac_Lib=`$as_echo "ac_cv_lib_sgemm_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lsgemm" >&5 $as_echo_n "checking for $sgemm in -lsgemm... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 45248,45254 **** as_ac_Lib=`$as_echo "ac_cv_lib_mkl_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lmkl" >&5 $as_echo_n "checking for $sgemm in -lmkl... " >&6; } ! if eval "test \"\${$as_ac_Lib+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 50631,50637 ---- as_ac_Lib=`$as_echo "ac_cv_lib_mkl_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lmkl" >&5 $as_echo_n "checking for $sgemm in -lmkl... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 45343,45349 **** as_ac_Lib=`$as_echo "ac_cv_lib_cxml_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lcxml" >&5 $as_echo_n "checking for $sgemm in -lcxml... " >&6; } ! if eval "test \"\${$as_ac_Lib+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 50726,50732 ---- as_ac_Lib=`$as_echo "ac_cv_lib_cxml_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lcxml" >&5 $as_echo_n "checking for $sgemm in -lcxml... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 45397,45403 **** as_ac_Lib=`$as_echo "ac_cv_lib_dxml_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -ldxml" >&5 $as_echo_n "checking for $sgemm in -ldxml... " >&6; } ! if eval "test \"\${$as_ac_Lib+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 50780,50786 ---- as_ac_Lib=`$as_echo "ac_cv_lib_dxml_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -ldxml" >&5 $as_echo_n "checking for $sgemm in -ldxml... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 45451,45457 **** if test "x$GCC" != xyes; then # only works with Sun CC { $as_echo "$as_me:${as_lineno-$LINENO}: checking for acosp in -lsunmath" >&5 $as_echo_n "checking for acosp in -lsunmath... " >&6; } ! if test "${ac_cv_lib_sunmath_acosp+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 50834,50840 ---- if test "x$GCC" != xyes; then # only works with Sun CC { $as_echo "$as_me:${as_lineno-$LINENO}: checking for acosp in -lsunmath" >&5 $as_echo_n "checking for acosp in -lsunmath... " >&6; } ! if ${ac_cv_lib_sunmath_acosp+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 45493,45503 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sunmath_acosp" >&5 $as_echo "$ac_cv_lib_sunmath_acosp" >&6; } ! if test "x$ac_cv_lib_sunmath_acosp" = x""yes; then : as_ac_Lib=`$as_echo "ac_cv_lib_sunperf_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lsunperf" >&5 $as_echo_n "checking for $sgemm in -lsunperf... " >&6; } ! if eval "test \"\${$as_ac_Lib+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 50876,50886 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sunmath_acosp" >&5 $as_echo "$ac_cv_lib_sunmath_acosp" >&6; } ! if test "x$ac_cv_lib_sunmath_acosp" = xyes; then : as_ac_Lib=`$as_echo "ac_cv_lib_sunperf_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lsunperf" >&5 $as_echo_n "checking for $sgemm in -lsunperf... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 45555,45561 **** as_ac_Lib=`$as_echo "ac_cv_lib_scs_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lscs" >&5 $as_echo_n "checking for $sgemm in -lscs... " >&6; } ! if eval "test \"\${$as_ac_Lib+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 50938,50944 ---- as_ac_Lib=`$as_echo "ac_cv_lib_scs_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lscs" >&5 $as_echo_n "checking for $sgemm in -lscs... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 45609,45615 **** as_ac_Lib=`$as_echo "ac_cv_lib_complib.sgimath_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lcomplib.sgimath" >&5 $as_echo_n "checking for $sgemm in -lcomplib.sgimath... " >&6; } ! if eval "test \"\${$as_ac_Lib+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 50992,50998 ---- as_ac_Lib=`$as_echo "ac_cv_lib_complib.sgimath_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lcomplib.sgimath" >&5 $as_echo_n "checking for $sgemm in -lcomplib.sgimath... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 45663,45669 **** as_ac_Lib=`$as_echo "ac_cv_lib_blas_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lblas" >&5 $as_echo_n "checking for $sgemm in -lblas... " >&6; } ! if eval "test \"\${$as_ac_Lib+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 51046,51052 ---- as_ac_Lib=`$as_echo "ac_cv_lib_blas_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lblas" >&5 $as_echo_n "checking for $sgemm in -lblas... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 45710,45716 **** as_ac_Lib=`$as_echo "ac_cv_lib_essl_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lessl" >&5 $as_echo_n "checking for $sgemm in -lessl... " >&6; } ! if eval "test \"\${$as_ac_Lib+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 51093,51099 ---- as_ac_Lib=`$as_echo "ac_cv_lib_essl_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lessl" >&5 $as_echo_n "checking for $sgemm in -lessl... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 45766,45772 **** as_ac_Lib=`$as_echo "ac_cv_lib_blas_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lblas" >&5 $as_echo_n "checking for $sgemm in -lblas... " >&6; } ! if eval "test \"\${$as_ac_Lib+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 51149,51155 ---- as_ac_Lib=`$as_echo "ac_cv_lib_blas_$sgemm" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lblas" >&5 $as_echo_n "checking for $sgemm in -lblas... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 45851,45857 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5 ; } else cat > conftest.$ac_ext <<_ACEOF program main --- 51234,51240 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } else cat > conftest.$ac_ext <<_ACEOF program main *************** *** 45886,45892 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5 ; } else cat > conftest.$ac_ext <<_ACEOF program main --- 51269,51275 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } else cat > conftest.$ac_ext <<_ACEOF program main *************** *** 45919,45925 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5 ; } else cat > conftest.$ac_ext <<_ACEOF program main --- 51302,51308 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } else cat > conftest.$ac_ext <<_ACEOF program main *************** *** 45951,45957 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5 ; } else cat > conftest.$ac_ext <<_ACEOF program main --- 51334,51340 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } else cat > conftest.$ac_ext <<_ACEOF program main *************** *** 45983,45989 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5 ; } else cat > conftest.$ac_ext <<_ACEOF program main --- 51366,51372 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } else cat > conftest.$ac_ext <<_ACEOF program main *************** *** 46015,46021 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5 ; } else cat > conftest.$ac_ext <<_ACEOF program main --- 51398,51404 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } else cat > conftest.$ac_ext <<_ACEOF program main *************** *** 46048,46054 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5 ; } else cat > conftest.$ac_ext <<_ACEOF program main --- 51431,51437 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } else cat > conftest.$ac_ext <<_ACEOF program main *************** *** 46226,46232 **** as_ac_Lib=`$as_echo "ac_cv_lib_$lapack''_$cheev" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $cheev in -l$lapack" >&5 $as_echo_n "checking for $cheev in -l$lapack... " >&6; } ! if eval "test \"\${$as_ac_Lib+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 51609,51615 ---- as_ac_Lib=`$as_echo "ac_cv_lib_$lapack''_$cheev" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $cheev in -l$lapack" >&5 $as_echo_n "checking for $cheev in -l$lapack... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 46289,46296 **** fi ! ## Restore FFLAGS. ! FFLAGS="$save_FFLAGS" if test "x$ax_blas_f77_func_ok" = "xno"; then if $USE_64_BIT_IDX_T && test "$ax_blas_integer_size_ok" = "no" ; then --- 51672,51709 ---- fi ! ## Restore FFLAGS. ! FFLAGS="$save_FFLAGS" ! ! ## remove temp file ! rm -f blaswrap.$ac_objext ! else ! { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ! as_fn_error $? "cannot compile libcruft/misc/blaswrap.c ! See \`config.log' for more details" "$LINENO" 5; } ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! ac_ext=c ! ac_cpp='$CPP $CPPFLAGS' ! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_c_compiler_gnu ! ! CFLAGS="$octave_blaswrap_save_CFLAGS" ! ! if test "x$ax_blas_f77_func_ok" = "xno"; then ! BLAS_LIBS="$octave_blaswrap_save_BLAS_LIBS" ! else ! ## wrapper in libcruft, remove from BLAS_LIBS ! BLAS_LIBS="`echo $BLAS_LIBS | sed -e 's/blaswrap.[^ ]* //g'`" ! ! $as_echo "#define USE_BLASWRAP 1" >>confdefs.h ! ! fi ! ;; ! esac ! fi if test "x$ax_blas_f77_func_ok" = "xno"; then if $USE_64_BIT_IDX_T && test "$ax_blas_integer_size_ok" = "no" ; then *************** *** 47506,47512 **** LIBS="$UMFPACK_LIBS $AMD_LIBS $BLAS_LIBS $FLIBS $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UMFPACK seperate complex matrix and rhs split" >&5 $as_echo_n "checking for UMFPACK seperate complex matrix and rhs split... " >&6; } ! if test "${octave_cv_umfpack_seperate_split+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 52919,52925 ---- LIBS="$UMFPACK_LIBS $AMD_LIBS $BLAS_LIBS $FLIBS $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UMFPACK seperate complex matrix and rhs split" >&5 $as_echo_n "checking for UMFPACK seperate complex matrix and rhs split... " >&6; } ! if ${octave_cv_umfpack_seperate_split+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 47587,47593 **** case "${enableval}" in yes) ENABLE_DYNAMIC_LINKING=true ;; no) ENABLE_DYNAMIC_LINKING=false ;; ! *) as_fn_error $? "bad value ${enableval} for --enable-dl" "$LINENO" 5 ;; esac else ENABLE_DYNAMIC_LINKING=true --- 53000,53006 ---- case "${enableval}" in yes) ENABLE_DYNAMIC_LINKING=true ;; no) ENABLE_DYNAMIC_LINKING=false ;; ! *) as_fn_error $? "bad value ${enableval} for --enable-dl" "$LINENO" 5 ;; esac else ENABLE_DYNAMIC_LINKING=true *************** *** 47957,47963 **** for ac_func in getpwnam do : ac_fn_c_check_func "$LINENO" "getpwnam" "ac_cv_func_getpwnam" ! if test "x$ac_cv_func_getpwnam" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETPWNAM 1 _ACEOF --- 53370,53376 ---- for ac_func in getpwnam do : ac_fn_c_check_func "$LINENO" "getpwnam" "ac_cv_func_getpwnam" ! if test "x$ac_cv_func_getpwnam" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETPWNAM 1 _ACEOF *************** *** 47965,47971 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpwnam in -lsun" >&5 $as_echo_n "checking for getpwnam in -lsun... " >&6; } ! if test "${ac_cv_lib_sun_getpwnam+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 53378,53384 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpwnam in -lsun" >&5 $as_echo_n "checking for getpwnam in -lsun... " >&6; } ! if ${ac_cv_lib_sun_getpwnam+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 48007,48013 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sun_getpwnam" >&5 $as_echo "$ac_cv_lib_sun_getpwnam" >&6; } ! if test "x$ac_cv_lib_sun_getpwnam" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSUN 1 _ACEOF --- 53420,53426 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sun_getpwnam" >&5 $as_echo "$ac_cv_lib_sun_getpwnam" >&6; } ! if test "x$ac_cv_lib_sun_getpwnam" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSUN 1 _ACEOF *************** *** 48026,48032 **** if test "$have_msvc" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for opendir in -ldirent" >&5 $as_echo_n "checking for opendir in -ldirent... " >&6; } ! if test "${ac_cv_lib_dirent_opendir+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 53439,53445 ---- if test "$have_msvc" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for opendir in -ldirent" >&5 $as_echo_n "checking for opendir in -ldirent... " >&6; } ! if ${ac_cv_lib_dirent_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 48068,48074 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dirent_opendir" >&5 $as_echo "$ac_cv_lib_dirent_opendir" >&6; } ! if test "x$ac_cv_lib_dirent_opendir" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBDIRENT 1 _ACEOF --- 53481,53487 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dirent_opendir" >&5 $as_echo "$ac_cv_lib_dirent_opendir" >&6; } ! if test "x$ac_cv_lib_dirent_opendir" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBDIRENT 1 _ACEOF *************** *** 48089,48095 **** *-*-msdosmsvc*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for opendir in -ldirent" >&5 $as_echo_n "checking for opendir in -ldirent... " >&6; } ! if test "${ac_cv_lib_dirent_opendir+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 53502,53508 ---- *-*-msdosmsvc*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for opendir in -ldirent" >&5 $as_echo_n "checking for opendir in -ldirent... " >&6; } ! if ${ac_cv_lib_dirent_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 48131,48137 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dirent_opendir" >&5 $as_echo "$ac_cv_lib_dirent_opendir" >&6; } ! if test "x$ac_cv_lib_dirent_opendir" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBDIRENT 1 _ACEOF --- 53544,53550 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dirent_opendir" >&5 $as_echo "$ac_cv_lib_dirent_opendir" >&6; } ! if test "x$ac_cv_lib_dirent_opendir" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBDIRENT 1 _ACEOF *************** *** 48149,48155 **** ### Type stuff. ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" ! if test "x$ac_cv_type_mode_t" = x""yes; then : else --- 53562,53568 ---- ### Type stuff. ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" ! if test "x$ac_cv_type_mode_t" = xyes; then : else *************** *** 48160,48166 **** fi ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" ! if test "x$ac_cv_type_off_t" = x""yes; then : else --- 53573,53579 ---- fi ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" ! if test "x$ac_cv_type_off_t" = xyes; then : else *************** *** 48171,48177 **** fi ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" ! if test "x$ac_cv_type_pid_t" = x""yes; then : else --- 53584,53590 ---- fi ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" ! if test "x$ac_cv_type_pid_t" = xyes; then : else *************** *** 48182,48188 **** fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" ! if test "x$ac_cv_type_size_t" = x""yes; then : else --- 53595,53601 ---- fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" ! if test "x$ac_cv_type_size_t" = xyes; then : else *************** *** 48194,48200 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 $as_echo_n "checking for uid_t in sys/types.h... " >&6; } ! if test "${ac_cv_type_uid_t+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 53607,53613 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 $as_echo_n "checking for uid_t in sys/types.h... " >&6; } ! if ${ac_cv_type_uid_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 48223,48229 **** fi ac_fn_c_check_type "$LINENO" "dev_t" "ac_cv_type_dev_t" "$ac_includes_default" ! if test "x$ac_cv_type_dev_t" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DEV_T 1 --- 53636,53642 ---- fi ac_fn_c_check_type "$LINENO" "dev_t" "ac_cv_type_dev_t" "$ac_includes_default" ! if test "x$ac_cv_type_dev_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DEV_T 1 *************** *** 48232,48238 **** fi ac_fn_c_check_type "$LINENO" "ino_t" "ac_cv_type_ino_t" "$ac_includes_default" ! if test "x$ac_cv_type_ino_t" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_INO_T 1 --- 53645,53651 ---- fi ac_fn_c_check_type "$LINENO" "ino_t" "ac_cv_type_ino_t" "$ac_includes_default" ! if test "x$ac_cv_type_ino_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_INO_T 1 *************** *** 48242,48248 **** fi ac_fn_c_check_type "$LINENO" "long long int" "ac_cv_type_long_long_int" "$ac_includes_default" ! if test "x$ac_cv_type_long_long_int" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LONG_LONG_INT 1 --- 53655,53661 ---- fi ac_fn_c_check_type "$LINENO" "long long int" "ac_cv_type_long_long_int" "$ac_includes_default" ! if test "x$ac_cv_type_long_long_int" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LONG_LONG_INT 1 *************** *** 48251,48257 **** fi ac_fn_c_check_type "$LINENO" "unsigned long long int" "ac_cv_type_unsigned_long_long_int" "$ac_includes_default" ! if test "x$ac_cv_type_unsigned_long_long_int" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_UNSIGNED_LONG_LONG_INT 1 --- 53664,53670 ---- fi ac_fn_c_check_type "$LINENO" "unsigned long long int" "ac_cv_type_unsigned_long_long_int" "$ac_includes_default" ! if test "x$ac_cv_type_unsigned_long_long_int" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_UNSIGNED_LONG_LONG_INT 1 *************** *** 48270,48276 **** # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 $as_echo_n "checking size of short... " >&6; } ! if test "${ac_cv_sizeof_short+set}" = set; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : --- 53683,53689 ---- # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 $as_echo_n "checking size of short... " >&6; } ! if ${ac_cv_sizeof_short+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : *************** *** 48280,48286 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (short) ! See \`config.log' for more details" "$LINENO" 5 ; } else ac_cv_sizeof_short=0 fi --- 53693,53699 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (short) ! See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_short=0 fi *************** *** 48303,48309 **** # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 $as_echo_n "checking size of int... " >&6; } ! if test "${ac_cv_sizeof_int+set}" = set; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : --- 53716,53722 ---- # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 $as_echo_n "checking size of int... " >&6; } ! if ${ac_cv_sizeof_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : *************** *** 48313,48319 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (int) ! See \`config.log' for more details" "$LINENO" 5 ; } else ac_cv_sizeof_int=0 fi --- 53726,53732 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (int) ! See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_int=0 fi *************** *** 48336,48342 **** # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } ! if test "${ac_cv_sizeof_long+set}" = set; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : --- 53749,53755 ---- # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } ! if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : *************** *** 48346,48352 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) ! See \`config.log' for more details" "$LINENO" 5 ; } else ac_cv_sizeof_long=0 fi --- 53759,53765 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) ! See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi *************** *** 48369,48375 **** # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 $as_echo_n "checking size of long long... " >&6; } ! if test "${ac_cv_sizeof_long_long+set}" = set; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : --- 53782,53788 ---- # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 $as_echo_n "checking size of long long... " >&6; } ! if ${ac_cv_sizeof_long_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : *************** *** 48379,48385 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long long) ! See \`config.log' for more details" "$LINENO" 5 ; } else ac_cv_sizeof_long_long=0 fi --- 53792,53798 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long long) ! See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long_long=0 fi *************** *** 48403,48409 **** # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } ! if test "${ac_cv_working_alloca_h+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 53816,53822 ---- # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } ! if ${ac_cv_working_alloca_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 48444,48450 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } ! if test "${ac_cv_func_alloca_works+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 53857,53863 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } ! if ${ac_cv_func_alloca_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 48463,48469 **** #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ ! char *alloca (); # endif # endif # endif --- 53876,53882 ---- #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ ! void *alloca (size_t); # endif # endif # endif *************** *** 48515,48521 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } ! if test "${ac_cv_os_cray+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 53928,53934 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } ! if ${ac_cv_os_cray+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 48556,48562 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } ! if test "${ac_cv_c_stack_direction+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 53969,53975 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } ! if ${ac_cv_c_stack_direction+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 48609,48615 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether defines placement delete operator" >&5 $as_echo_n "checking whether defines placement delete operator... " >&6; } ! if test "${octave_cv_placement_delete+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=cpp --- 54022,54028 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether defines placement delete operator" >&5 $as_echo_n "checking whether defines placement delete operator... " >&6; } ! if ${octave_cv_placement_delete+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=cpp *************** *** 48663,48669 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C++ supports dynamic auto arrays" >&5 $as_echo_n "checking whether C++ supports dynamic auto arrays... " >&6; } ! if test "${octave_cv_dynamic_auto_arrays+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=cpp --- 54076,54082 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C++ supports dynamic auto arrays" >&5 $as_echo_n "checking whether C++ supports dynamic auto arrays... " >&6; } ! if ${octave_cv_dynamic_auto_arrays+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=cpp *************** *** 48728,48734 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5 ; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ --- 54141,54147 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling ! See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ *************** *** 48820,48826 **** # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long double" >&5 $as_echo_n "checking size of long double... " >&6; } ! if test "${ac_cv_sizeof_long_double+set}" = set; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long double))" "ac_cv_sizeof_long_double" "$ac_includes_default"; then : --- 54233,54239 ---- # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long double" >&5 $as_echo_n "checking size of long double... " >&6; } ! if ${ac_cv_sizeof_long_double+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long double))" "ac_cv_sizeof_long_double" "$ac_includes_default"; then : *************** *** 48830,48836 **** { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long double) ! See \`config.log' for more details" "$LINENO" 5 ; } else ac_cv_sizeof_long_double=0 fi --- 54243,54249 ---- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long double) ! See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long_double=0 fi *************** *** 48855,48861 **** as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 $as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } ! if eval "test \"\${$as_ac_Header+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 54268,54274 ---- as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 $as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } ! if eval \${$as_ac_Header+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 48903,48909 **** if test $ac_header_dirent = dirent.h; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } ! if test "${ac_cv_search_opendir+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS --- 54316,54322 ---- if test $ac_header_dirent = dirent.h; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } ! if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS *************** *** 48945,48955 **** fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext ! if test "${ac_cv_search_opendir+set}" = set; then : break fi done ! if test "${ac_cv_search_opendir+set}" = set; then : else ac_cv_search_opendir=no --- 54358,54368 ---- fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext ! if ${ac_cv_search_opendir+:} false; then : break fi done ! if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no *************** *** 48968,48974 **** else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } ! if test "${ac_cv_search_opendir+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS --- 54381,54387 ---- else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } ! if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS *************** *** 49010,49020 **** fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext ! if test "${ac_cv_search_opendir+set}" = set; then : break fi done ! if test "${ac_cv_search_opendir+set}" = set; then : else ac_cv_search_opendir=no --- 54423,54433 ---- fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext ! if ${ac_cv_search_opendir+:} false; then : break fi done ! if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no *************** *** 49034,49040 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5 $as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; } ! if test "${ac_cv_header_sys_wait_h+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 54447,54453 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5 $as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; } ! if ${ac_cv_header_sys_wait_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 49112,49118 **** for ac_header in sstream do : ac_fn_cxx_check_header_mongrel "$LINENO" "sstream" "ac_cv_header_sstream" "$ac_includes_default" ! if test "x$ac_cv_header_sstream" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SSTREAM 1 _ACEOF --- 54525,54531 ---- for ac_header in sstream do : ac_fn_cxx_check_header_mongrel "$LINENO" "sstream" "ac_cv_header_sstream" "$ac_includes_default" ! if test "x$ac_cv_header_sstream" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SSTREAM 1 _ACEOF *************** *** 49132,49138 **** for ac_header in termios.h do : ac_fn_c_check_header_mongrel "$LINENO" "termios.h" "ac_cv_header_termios_h" "$ac_includes_default" ! if test "x$ac_cv_header_termios_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_TERMIOS_H 1 _ACEOF --- 54545,54551 ---- for ac_header in termios.h do : ac_fn_c_check_header_mongrel "$LINENO" "termios.h" "ac_cv_header_termios_h" "$ac_includes_default" ! if test "x$ac_cv_header_termios_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_TERMIOS_H 1 _ACEOF *************** *** 49144,49150 **** for ac_header in termio.h do : ac_fn_c_check_header_mongrel "$LINENO" "termio.h" "ac_cv_header_termio_h" "$ac_includes_default" ! if test "x$ac_cv_header_termio_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_TERMIO_H 1 _ACEOF --- 54557,54563 ---- for ac_header in termio.h do : ac_fn_c_check_header_mongrel "$LINENO" "termio.h" "ac_cv_header_termio_h" "$ac_includes_default" ! if test "x$ac_cv_header_termio_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_TERMIO_H 1 _ACEOF *************** *** 49158,49164 **** for ac_header in sgtty.h do : ac_fn_c_check_header_mongrel "$LINENO" "sgtty.h" "ac_cv_header_sgtty_h" "$ac_includes_default" ! if test "x$ac_cv_header_sgtty_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SGTTY_H 1 _ACEOF --- 54571,54577 ---- for ac_header in sgtty.h do : ac_fn_c_check_header_mongrel "$LINENO" "sgtty.h" "ac_cv_header_sgtty_h" "$ac_includes_default" ! if test "x$ac_cv_header_sgtty_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SGTTY_H 1 _ACEOF *************** *** 49172,49178 **** for ac_header in fnmatch.h do : ac_fn_c_check_header_mongrel "$LINENO" "fnmatch.h" "ac_cv_header_fnmatch_h" "$ac_includes_default" ! if test "x$ac_cv_header_fnmatch_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FNMATCH_H 1 _ACEOF --- 54585,54591 ---- for ac_header in fnmatch.h do : ac_fn_c_check_header_mongrel "$LINENO" "fnmatch.h" "ac_cv_header_fnmatch_h" "$ac_includes_default" ! if test "x$ac_cv_header_fnmatch_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FNMATCH_H 1 _ACEOF *************** *** 49186,49192 **** for ac_header in conio.h do : ac_fn_c_check_header_mongrel "$LINENO" "conio.h" "ac_cv_header_conio_h" "$ac_includes_default" ! if test "x$ac_cv_header_conio_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_CONIO_H 1 _ACEOF --- 54599,54605 ---- for ac_header in conio.h do : ac_fn_c_check_header_mongrel "$LINENO" "conio.h" "ac_cv_header_conio_h" "$ac_includes_default" ! if test "x$ac_cv_header_conio_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_CONIO_H 1 _ACEOF *************** *** 49240,49246 **** ac_fn_cxx_check_decl "$LINENO" "exp2" "ac_cv_have_decl_exp2" "#include " ! if test "x$ac_cv_have_decl_exp2" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 54653,54659 ---- ac_fn_cxx_check_decl "$LINENO" "exp2" "ac_cv_have_decl_exp2" "#include " ! if test "x$ac_cv_have_decl_exp2" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 49251,49257 **** _ACEOF ac_fn_cxx_check_decl "$LINENO" "round" "ac_cv_have_decl_round" "#include " ! if test "x$ac_cv_have_decl_round" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 54664,54670 ---- _ACEOF ac_fn_cxx_check_decl "$LINENO" "round" "ac_cv_have_decl_round" "#include " ! if test "x$ac_cv_have_decl_round" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 49262,49268 **** _ACEOF ac_fn_cxx_check_decl "$LINENO" "tgamma" "ac_cv_have_decl_tgamma" "#include " ! if test "x$ac_cv_have_decl_tgamma" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 54675,54681 ---- _ACEOF ac_fn_cxx_check_decl "$LINENO" "tgamma" "ac_cv_have_decl_tgamma" "#include " ! if test "x$ac_cv_have_decl_tgamma" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 49343,49349 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether putenv uses malloc" >&5 $as_echo_n "checking whether putenv uses malloc... " >&6; } ! if test "${octave_cv_func_putenv_malloc+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 54756,54762 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether putenv uses malloc" >&5 $as_echo_n "checking whether putenv uses malloc... " >&6; } ! if ${octave_cv_func_putenv_malloc+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 49455,49461 **** $as_echo "#define _WIN32_WINNT 0x0403" >>confdefs.h ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0x0403" >&5 $as_echo "0x0403" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --- 54868,54874 ---- $as_echo "#define _WIN32_WINNT 0x0403" >>confdefs.h ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0x0403" >&5 $as_echo "0x0403" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext *************** *** 49488,49494 **** $as_echo "#define _USE_MATH_DEFINES 1" >>confdefs.h ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --- 54901,54907 ---- $as_echo "#define _USE_MATH_DEFINES 1" >>confdefs.h ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext *************** *** 49522,49528 **** ac_safe=`echo "-rdynamic" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX-g++} accepts -rdynamic" >&5 $as_echo_n "checking whether ${CXX-g++} accepts -rdynamic... " >&6; } ! if eval "test \"\${octave_cv_cxx_flag_$ac_safe+set}\"" = set; then : $as_echo_n "(cached) " >&6 else --- 54935,54941 ---- ac_safe=`echo "-rdynamic" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX-g++} accepts -rdynamic" >&5 $as_echo_n "checking whether ${CXX-g++} accepts -rdynamic... " >&6; } ! if eval \${octave_cv_cxx_flag_$ac_safe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 49952,49958 **** ac_fn_c_check_decl "$LINENO" "signbit" "ac_cv_have_decl_signbit" "#include " ! if test "x$ac_cv_have_decl_signbit" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 55365,55371 ---- ac_fn_c_check_decl "$LINENO" "signbit" "ac_cv_have_decl_signbit" "#include " ! if test "x$ac_cv_have_decl_signbit" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 49995,50001 **** ### Checks for OS specific cruft. ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "$ac_includes_default" ! if test "x$ac_cv_member_struct_stat_st_blksize" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 --- 55408,55414 ---- ### Checks for OS specific cruft. ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "$ac_includes_default" ! if test "x$ac_cv_member_struct_stat_st_blksize" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 *************** *** 50004,50010 **** fi ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default" ! if test "x$ac_cv_member_struct_stat_st_blocks" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BLOCKS 1 --- 55417,55423 ---- fi ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default" ! if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BLOCKS 1 *************** *** 50013,50019 **** fi ac_fn_c_check_member "$LINENO" "struct stat" "st_rdev" "ac_cv_member_struct_stat_st_rdev" "$ac_includes_default" ! if test "x$ac_cv_member_struct_stat_st_rdev" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_RDEV 1 --- 55426,55432 ---- fi ac_fn_c_check_member "$LINENO" "struct stat" "st_rdev" "ac_cv_member_struct_stat_st_rdev" "$ac_includes_default" ! if test "x$ac_cv_member_struct_stat_st_rdev" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_RDEV 1 *************** *** 50027,50033 **** #include <$ac_cv_struct_tm> " ! if test "x$ac_cv_member_struct_tm_tm_zone" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_TM_TM_ZONE 1 --- 55440,55446 ---- #include <$ac_cv_struct_tm> " ! if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_TM_TM_ZONE 1 *************** *** 50043,50049 **** else ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include " ! if test "x$ac_cv_have_decl_tzname" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 55456,55462 ---- else ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include " ! if test "x$ac_cv_have_decl_tzname" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 50055,50061 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 $as_echo_n "checking for tzname... " >&6; } ! if test "${ac_cv_var_tzname+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- 55468,55474 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 $as_echo_n "checking for tzname... " >&6; } ! if ${ac_cv_var_tzname+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext *************** *** 50100,50106 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether closedir returns void" >&5 $as_echo_n "checking whether closedir returns void... " >&6; } ! if test "${ac_cv_func_closedir_void+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : --- 55513,55519 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether closedir returns void" >&5 $as_echo_n "checking whether closedir returns void... " >&6; } ! if ${ac_cv_func_closedir_void+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : *************** *** 50150,50156 **** ac_fn_c_check_member "$LINENO" "struct group" "gr_passwd" "ac_cv_member_struct_group_gr_passwd" "$ac_includes_default" ! if test "x$ac_cv_member_struct_group_gr_passwd" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_GROUP_GR_PASSWD 1 --- 55563,55569 ---- ac_fn_c_check_member "$LINENO" "struct group" "gr_passwd" "ac_cv_member_struct_group_gr_passwd" "$ac_includes_default" ! if test "x$ac_cv_member_struct_group_gr_passwd" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_GROUP_GR_PASSWD 1 *************** *** 50165,50171 **** as_ac_Lib=`$as_echo "ac_cv_lib_${termlib}''_tputs" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tputs in -l${termlib}" >&5 $as_echo_n "checking for tputs in -l${termlib}... " >&6; } ! if eval "test \"\${$as_ac_Lib+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 55578,55584 ---- as_ac_Lib=`$as_echo "ac_cv_lib_${termlib}''_tputs" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tputs in -l${termlib}" >&5 $as_echo_n "checking for tputs in -l${termlib}... " >&6; } ! if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 50241,50247 **** LIBS="$TERM_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_set_keyboard_input_timeout in -lreadline" >&5 $as_echo_n "checking for rl_set_keyboard_input_timeout in -lreadline... " >&6; } ! if test "${ac_cv_lib_readline_rl_set_keyboard_input_timeout+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --- 55654,55660 ---- LIBS="$TERM_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_set_keyboard_input_timeout in -lreadline" >&5 $as_echo_n "checking for rl_set_keyboard_input_timeout in -lreadline... " >&6; } ! if ${ac_cv_lib_readline_rl_set_keyboard_input_timeout+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS *************** *** 50283,50289 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_set_keyboard_input_timeout" >&5 $as_echo "$ac_cv_lib_readline_rl_set_keyboard_input_timeout" >&6; } ! if test "x$ac_cv_lib_readline_rl_set_keyboard_input_timeout" = x""yes; then : READLINE_LIBS="-lreadline" --- 55696,55702 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_set_keyboard_input_timeout" >&5 $as_echo "$ac_cv_lib_readline_rl_set_keyboard_input_timeout" >&6; } ! if test "x$ac_cv_lib_readline_rl_set_keyboard_input_timeout" = xyes; then : READLINE_LIBS="-lreadline" *************** *** 50346,50352 **** #endif " ! if test "x$ac_cv_have_decl_sys_siglist" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 --- 55759,55765 ---- #endif " ! if test "x$ac_cv_have_decl_sys_siglist" = xyes; then : ac_have_decl=1 else ac_have_decl=0 *************** *** 50362,50368 **** for ac_func in getrusage do : ac_fn_c_check_func "$LINENO" "getrusage" "ac_cv_func_getrusage" ! if test "x$ac_cv_func_getrusage" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETRUSAGE 1 _ACEOF --- 55775,55781 ---- for ac_func in getrusage do : ac_fn_c_check_func "$LINENO" "getrusage" "ac_cv_func_getrusage" ! if test "x$ac_cv_func_getrusage" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETRUSAGE 1 _ACEOF *************** *** 50387,50393 **** set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then --- 55800,55806 ---- set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then *************** *** 50429,50435 **** set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_FIND+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$FIND"; then --- 55842,55848 ---- set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_FIND+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$FIND"; then *************** *** 50468,50474 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a usable sed" >&5 $as_echo_n "checking for a usable sed... " >&6; } if test -z "$SED"; then ! if test "${ac_cv_path_sed+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 55881,55887 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a usable sed" >&5 $as_echo_n "checking for a usable sed... " >&6; } if test -z "$SED"; then ! if ${ac_cv_path_sed+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 50491,50500 **** IFS=$as_save_IFS # Create a (secure) tmp directory for tmp files. ! : ${TMPDIR=/tmp} { tmp=`(umask 077 && mktemp -d "$TMPDIR/sedXXXXXX") 2>/dev/null` && ! test -n "$tmp" && test -d "$tmp" } || { tmp=$TMPDIR/sed$$-$RANDOM --- 55904,55913 ---- IFS=$as_save_IFS # Create a (secure) tmp directory for tmp files. ! : "${TMPDIR:=/tmp}" { tmp=`(umask 077 && mktemp -d "$TMPDIR/sedXXXXXX") 2>/dev/null` && ! test -d "$tmp" } || { tmp=$TMPDIR/sed$$-$RANDOM *************** *** 50551,50557 **** set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_PERL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$PERL"; then --- 55964,55970 ---- set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_PERL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$PERL"; then *************** *** 50590,50596 **** set dummy python; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_PYTHON+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$PYTHON"; then --- 56003,56009 ---- set dummy python; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_PYTHON+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$PYTHON"; then *************** *** 50632,50638 **** set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_LEX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$LEX"; then --- 56045,56051 ---- set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_LEX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LEX"; then *************** *** 50702,50708 **** test $ac_status = 0; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5 $as_echo_n "checking lex output file root... " >&6; } ! if test "${ac_cv_prog_lex_root+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 56115,56121 ---- test $ac_status = 0; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5 $as_echo_n "checking lex output file root... " >&6; } ! if ${ac_cv_prog_lex_root+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 50721,50727 **** if test -z "${LEXLIB+set}"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5 $as_echo_n "checking lex library... " >&6; } ! if test "${ac_cv_lib_lex+set}" = set; then : $as_echo_n "(cached) " >&6 else --- 56134,56140 ---- if test -z "${LEXLIB+set}"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5 $as_echo_n "checking lex library... " >&6; } ! if ${ac_cv_lib_lex+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 50751,50757 **** { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 $as_echo_n "checking whether yytext is a pointer... " >&6; } ! if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then : $as_echo_n "(cached) " >&6 else # POSIX says lex can declare yytext either as a pointer or an array; the --- 56164,56170 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 $as_echo_n "checking whether yytext is a pointer... " >&6; } ! if ${ac_cv_prog_lex_yytext_pointer+:} false; then : $as_echo_n "(cached) " >&6 else # POSIX says lex can declare yytext either as a pointer or an array; the *************** *** 50762,50768 **** LIBS="$LEXLIB $ac_save_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! #define YYTEXT_POINTER 1 `cat $LEX_OUTPUT_ROOT.c` _ACEOF if ac_fn_c_try_link "$LINENO"; then : --- 56175,56182 ---- LIBS="$LEXLIB $ac_save_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! ! #define YYTEXT_POINTER 1 `cat $LEX_OUTPUT_ROOT.c` _ACEOF if ac_fn_c_try_link "$LINENO"; then : *************** *** 50816,50822 **** set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_YACC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$YACC"; then --- 56230,56236 ---- set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_YACC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$YACC"; then *************** *** 50885,50891 **** set dummy desktop-file-install; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_DESKTOP_FILE_INSTALL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DESKTOP_FILE_INSTALL"; then --- 56299,56305 ---- set dummy desktop-file-install; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_DESKTOP_FILE_INSTALL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DESKTOP_FILE_INSTALL"; then *************** *** 50935,50941 **** set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_GNUPLOT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$GNUPLOT"; then --- 56349,56355 ---- set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_GNUPLOT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GNUPLOT"; then *************** *** 51005,51011 **** set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_DEFAULT_PAGER+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DEFAULT_PAGER"; then --- 56419,56425 ---- set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_DEFAULT_PAGER+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DEFAULT_PAGER"; then *************** *** 51053,51059 **** set dummy gperf; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_GPERF+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$GPERF"; then --- 56467,56473 ---- set dummy gperf; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_GPERF+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GPERF"; then *************** *** 51110,51116 **** set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_GHOSTSCRIPT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$GHOSTSCRIPT"; then --- 56524,56530 ---- set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_GHOSTSCRIPT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GHOSTSCRIPT"; then *************** *** 51159,51165 **** set dummy texi2dvi; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_TEXI2DVI+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$TEXI2DVI"; then --- 56573,56579 ---- set dummy texi2dvi; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_TEXI2DVI+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$TEXI2DVI"; then *************** *** 51206,51212 **** set dummy texi2pdf; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if test "${ac_cv_prog_TEXI2PDF+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$TEXI2PDF"; then --- 56620,56626 ---- set dummy texi2pdf; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } ! if ${ac_cv_prog_TEXI2PDF+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$TEXI2PDF"; then *************** *** 51331,51337 **** ac_safe=`echo "$flag" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC-cc} accepts $flag" >&5 $as_echo_n "checking whether ${CC-cc} accepts $flag... " >&6; } ! if eval "test \"\${octave_cv_cc_flag_$ac_safe+set}\"" = set; then : $as_echo_n "(cached) " >&6 else --- 56745,56751 ---- ac_safe=`echo "$flag" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC-cc} accepts $flag" >&5 $as_echo_n "checking whether ${CC-cc} accepts $flag... " >&6; } ! if eval \${octave_cv_cc_flag_$ac_safe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 51398,51404 **** ac_safe=`echo "$flag" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX-g++} accepts $flag" >&5 $as_echo_n "checking whether ${CXX-g++} accepts $flag... " >&6; } ! if eval "test \"\${octave_cv_cxx_flag_$ac_safe+set}\"" = set; then : $as_echo_n "(cached) " >&6 else --- 56812,56818 ---- ac_safe=`echo "$flag" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX-g++} accepts $flag" >&5 $as_echo_n "checking whether ${CXX-g++} accepts $flag... " >&6; } ! if eval \${octave_cv_cxx_flag_$ac_safe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 51482,51488 **** ac_safe=`echo "$flag" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC-cc} accepts $flag" >&5 $as_echo_n "checking whether ${CC-cc} accepts $flag... " >&6; } ! if eval "test \"\${octave_cv_cc_flag_$ac_safe+set}\"" = set; then : $as_echo_n "(cached) " >&6 else --- 56896,56902 ---- ac_safe=`echo "$flag" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC-cc} accepts $flag" >&5 $as_echo_n "checking whether ${CC-cc} accepts $flag... " >&6; } ! if eval \${octave_cv_cc_flag_$ac_safe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 51549,51555 **** ac_safe=`echo "$flag" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX-g++} accepts $flag" >&5 $as_echo_n "checking whether ${CXX-g++} accepts $flag... " >&6; } ! if eval "test \"\${octave_cv_cxx_flag_$ac_safe+set}\"" = set; then : $as_echo_n "(cached) " >&6 else --- 56963,56969 ---- ac_safe=`echo "$flag" | sed 'y%./+-:=%__p___%'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX-g++} accepts $flag" >&5 $as_echo_n "checking whether ${CXX-g++} accepts $flag... " >&6; } ! if eval \${octave_cv_cxx_flag_$ac_safe+:} false; then : $as_echo_n "(cached) " >&6 else *************** *** 51698,51707 **** :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then ! test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} ! cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} --- 57112,57132 ---- :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then ! if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} ! if test ! -f "$cache_file" || test -h "$cache_file"; then ! cat confcache >"$cache_file" ! else ! case $cache_file in #( ! */* | ?:*) ! mv -f confcache "$cache_file"$$ && ! mv -f "$cache_file"$$ "$cache_file" ;; #( ! *) ! mv -f confcache "$cache_file" ;; ! esac ! fi ! fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} *************** *** 51764,51770 **** --- 57189,57227 ---- as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi + if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_ALLOCA_H\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 + fi + if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_ERRNO_H\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 + fi + if test -z "${GL_GENERATE_FLOAT_H_TRUE}" && test -z "${GL_GENERATE_FLOAT_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_FLOAT_H\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 + fi + if test -z "${GL_GENERATE_FNMATCH_H_TRUE}" && test -z "${GL_GENERATE_FNMATCH_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_FNMATCH_H\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 + fi + if test -z "${GL_GENERATE_GLOB_H_TRUE}" && test -z "${GL_GENERATE_GLOB_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_GLOB_H\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 + fi + if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 + fi + if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 + fi + if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_STDINT_H\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 + fi gl_libobjs= gl_ltlibobjs= *************** *** 51801,51810 **** as_fn_error $? "conditional \"AMCOND_HAVE_FFTW\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi - if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 - fi if test -z "${AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE}" && test -z "${AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE}"; then as_fn_error $? "conditional \"AMCOND_BUILD_COMPILED_AUX_PROGRAMS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 --- 57258,57263 ---- *************** *** 51814,51820 **** Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi ! : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" --- 57267,57273 ---- Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi ! : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" *************** *** 51915,51920 **** --- 57368,57374 ---- IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. + as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR *************** *** 52221,52228 **** # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" ! This file was extended by GNU Octave $as_me 3.4.0, which was ! generated by GNU Autoconf 2.67. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS --- 57675,57682 ---- # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" ! This file was extended by GNU Octave $as_me 3.4.1, which was ! generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS *************** *** 52281,52287 **** Configuration commands: $config_commands ! Report bugs to . GNU Octave home page: . General help using GNU software: ." --- 57735,57741 ---- Configuration commands: $config_commands ! Report bugs to . GNU Octave home page: . General help using GNU software: ." *************** *** 52289,52296 **** cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ ! GNU Octave config.status 3.4.0 ! configured by $0, generated by GNU Autoconf 2.67, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. --- 57743,57750 ---- cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ ! GNU Octave config.status 3.4.1 ! configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. *************** *** 52418,52650 **** sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' ! macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' ! macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' ! enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' ! AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`' ! DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`' ! OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' ! enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' ! pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' ! enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' ! host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' ! host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' ! host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' ! build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' ! build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' ! build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' ! SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' ! Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' ! GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' ! EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' ! FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' ! LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' ! NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' ! LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' ! max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' ! ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' ! exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' ! lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' ! lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' ! lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' ! reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' ! reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' ! deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' ! file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' ! AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' ! AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' ! STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' ! RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' ! old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' ! old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' ! old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' ! CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' ! CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' ! compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' ! GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' ! lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' ! lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' ! lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' ! lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' ! objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' ! SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ! ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' ! MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' ! lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' ! lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' ! lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' ! lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' ! lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' ! need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' ! DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' ! NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' ! LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' ! OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' ! OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' ! libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' ! shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' ! extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' ! archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' ! enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' ! export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' ! whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' ! compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' ! old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' ! old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' ! archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' ! archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' ! module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' ! module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' ! with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' ! allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' ! no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' ! inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' ! link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' ! fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' ! always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' ! export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' ! exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' ! include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' ! prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' ! file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' ! variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' ! need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' ! need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' ! version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' ! runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' ! shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' ! shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' ! libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' ! library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' ! soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' ! postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' ! postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' ! finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' ! finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' ! sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' ! sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' ! enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' ! enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' ! enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' ! old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' ! striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' ! compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`' ! predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`' ! postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`' ! predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`' ! postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`' ! compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`' ! LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! LD_F77='`$ECHO "X$LD_F77" | $Xsed -e "$delay_single_quote_subst"`' ! old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! old_archive_cmds_F77='`$ECHO "X$old_archive_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`' ! compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! compiler_F77='`$ECHO "X$compiler_F77" | $Xsed -e "$delay_single_quote_subst"`' ! GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! GCC_F77='`$ECHO "X$GCC_F77" | $Xsed -e "$delay_single_quote_subst"`' ! lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! lt_prog_compiler_no_builtin_flag_F77='`$ECHO "X$lt_prog_compiler_no_builtin_flag_F77" | $Xsed -e "$delay_single_quote_subst"`' ! lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! lt_prog_compiler_wl_F77='`$ECHO "X$lt_prog_compiler_wl_F77" | $Xsed -e "$delay_single_quote_subst"`' ! lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! lt_prog_compiler_pic_F77='`$ECHO "X$lt_prog_compiler_pic_F77" | $Xsed -e "$delay_single_quote_subst"`' ! lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! lt_prog_compiler_static_F77='`$ECHO "X$lt_prog_compiler_static_F77" | $Xsed -e "$delay_single_quote_subst"`' ! lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! lt_cv_prog_compiler_c_o_F77='`$ECHO "X$lt_cv_prog_compiler_c_o_F77" | $Xsed -e "$delay_single_quote_subst"`' ! archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! archive_cmds_need_lc_F77='`$ECHO "X$archive_cmds_need_lc_F77" | $Xsed -e "$delay_single_quote_subst"`' ! enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! enable_shared_with_static_runtimes_F77='`$ECHO "X$enable_shared_with_static_runtimes_F77" | $Xsed -e "$delay_single_quote_subst"`' ! export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! export_dynamic_flag_spec_F77='`$ECHO "X$export_dynamic_flag_spec_F77" | $Xsed -e "$delay_single_quote_subst"`' ! whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! whole_archive_flag_spec_F77='`$ECHO "X$whole_archive_flag_spec_F77" | $Xsed -e "$delay_single_quote_subst"`' ! compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! compiler_needs_object_F77='`$ECHO "X$compiler_needs_object_F77" | $Xsed -e "$delay_single_quote_subst"`' ! old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! old_archive_from_new_cmds_F77='`$ECHO "X$old_archive_from_new_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`' ! old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! old_archive_from_expsyms_cmds_F77='`$ECHO "X$old_archive_from_expsyms_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`' ! archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! archive_cmds_F77='`$ECHO "X$archive_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`' ! archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! archive_expsym_cmds_F77='`$ECHO "X$archive_expsym_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`' ! module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! module_cmds_F77='`$ECHO "X$module_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`' ! module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! module_expsym_cmds_F77='`$ECHO "X$module_expsym_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`' ! with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! with_gnu_ld_F77='`$ECHO "X$with_gnu_ld_F77" | $Xsed -e "$delay_single_quote_subst"`' ! allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! allow_undefined_flag_F77='`$ECHO "X$allow_undefined_flag_F77" | $Xsed -e "$delay_single_quote_subst"`' ! no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! no_undefined_flag_F77='`$ECHO "X$no_undefined_flag_F77" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_libdir_flag_spec_F77='`$ECHO "X$hardcode_libdir_flag_spec_F77" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_libdir_flag_spec_ld_F77='`$ECHO "X$hardcode_libdir_flag_spec_ld_F77" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_libdir_separator_F77='`$ECHO "X$hardcode_libdir_separator_F77" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_direct_F77='`$ECHO "X$hardcode_direct_F77" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_direct_absolute_F77='`$ECHO "X$hardcode_direct_absolute_F77" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_minus_L_F77='`$ECHO "X$hardcode_minus_L_F77" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_shlibpath_var_F77='`$ECHO "X$hardcode_shlibpath_var_F77" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_automatic_F77='`$ECHO "X$hardcode_automatic_F77" | $Xsed -e "$delay_single_quote_subst"`' ! inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! inherit_rpath_F77='`$ECHO "X$inherit_rpath_F77" | $Xsed -e "$delay_single_quote_subst"`' ! link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! link_all_deplibs_F77='`$ECHO "X$link_all_deplibs_F77" | $Xsed -e "$delay_single_quote_subst"`' ! fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! fix_srcfile_path_F77='`$ECHO "X$fix_srcfile_path_F77" | $Xsed -e "$delay_single_quote_subst"`' ! always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! always_export_symbols_F77='`$ECHO "X$always_export_symbols_F77" | $Xsed -e "$delay_single_quote_subst"`' ! export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! export_symbols_cmds_F77='`$ECHO "X$export_symbols_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`' ! exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! exclude_expsyms_F77='`$ECHO "X$exclude_expsyms_F77" | $Xsed -e "$delay_single_quote_subst"`' ! include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! include_expsyms_F77='`$ECHO "X$include_expsyms_F77" | $Xsed -e "$delay_single_quote_subst"`' ! prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! prelink_cmds_F77='`$ECHO "X$prelink_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`' ! file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! file_list_spec_F77='`$ECHO "X$file_list_spec_F77" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! hardcode_action_F77='`$ECHO "X$hardcode_action_F77" | $Xsed -e "$delay_single_quote_subst"`' ! compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! compiler_lib_search_dirs_F77='`$ECHO "X$compiler_lib_search_dirs_F77" | $Xsed -e "$delay_single_quote_subst"`' ! predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! predep_objects_F77='`$ECHO "X$predep_objects_F77" | $Xsed -e "$delay_single_quote_subst"`' ! postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! postdep_objects_F77='`$ECHO "X$postdep_objects_F77" | $Xsed -e "$delay_single_quote_subst"`' ! predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! predeps_F77='`$ECHO "X$predeps_F77" | $Xsed -e "$delay_single_quote_subst"`' ! postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! postdeps_F77='`$ECHO "X$postdeps_F77" | $Xsed -e "$delay_single_quote_subst"`' ! compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' ! compiler_lib_search_path_F77='`$ECHO "X$compiler_lib_search_path_F77" | $Xsed -e "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. ! for var in SED \ GREP \ EGREP \ FGREP \ --- 57872,58132 ---- sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' ! macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' ! macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' ! enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' ! AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' ! DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' ! OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' ! enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' ! pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' ! enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' ! SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ! ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' ! host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' ! host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' ! host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' ! build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' ! build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' ! build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' ! SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' ! Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' ! GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' ! EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' ! FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' ! LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' ! NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' ! LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' ! max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ! ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' ! exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' ! lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' ! lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' ! lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' ! lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' ! lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' ! reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' ! reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' ! deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' ! file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' ! file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' ! want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' ! sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' ! AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' ! AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' ! archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' ! STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' ! RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' ! old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' ! old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' ! old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' ! lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' ! CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' ! CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' ! compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' ! GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' ! lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' ! lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' ! lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' ! lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' ! nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' ! lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' ! objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' ! MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' ! lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' ! lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' ! lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' ! lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' ! lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' ! need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' ! MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' ! DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' ! NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' ! LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' ! OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' ! OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' ! libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' ! shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' ! extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' ! archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' ! enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' ! export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' ! whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' ! compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' ! old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' ! old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' ! archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' ! archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' ! module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' ! module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' ! with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' ! allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' ! no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' ! hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' ! hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`' ! hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' ! hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' ! hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' ! hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' ! hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' ! hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' ! inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' ! link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' ! always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' ! export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' ! exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' ! include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' ! prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' ! postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' ! file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' ! variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' ! need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' ! need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' ! version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' ! runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' ! shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' ! shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' ! libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' ! library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' ! soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' ! install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' ! postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' ! postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' ! finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' ! finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' ! hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' ! sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' ! sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' ! hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' ! enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' ! enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' ! enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' ! old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' ! striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' ! compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' ! predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' ! postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' ! predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' ! postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' ! compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' ! LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' ! LD_F77='`$ECHO "$LD_F77" | $SED "$delay_single_quote_subst"`' ! reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' ! reload_flag_F77='`$ECHO "$reload_flag_F77" | $SED "$delay_single_quote_subst"`' ! reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' ! reload_cmds_F77='`$ECHO "$reload_cmds_F77" | $SED "$delay_single_quote_subst"`' ! old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' ! old_archive_cmds_F77='`$ECHO "$old_archive_cmds_F77" | $SED "$delay_single_quote_subst"`' ! compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' ! compiler_F77='`$ECHO "$compiler_F77" | $SED "$delay_single_quote_subst"`' ! GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' ! GCC_F77='`$ECHO "$GCC_F77" | $SED "$delay_single_quote_subst"`' ! lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' ! lt_prog_compiler_no_builtin_flag_F77='`$ECHO "$lt_prog_compiler_no_builtin_flag_F77" | $SED "$delay_single_quote_subst"`' ! lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' ! lt_prog_compiler_pic_F77='`$ECHO "$lt_prog_compiler_pic_F77" | $SED "$delay_single_quote_subst"`' ! lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' ! lt_prog_compiler_wl_F77='`$ECHO "$lt_prog_compiler_wl_F77" | $SED "$delay_single_quote_subst"`' ! lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' ! lt_prog_compiler_static_F77='`$ECHO "$lt_prog_compiler_static_F77" | $SED "$delay_single_quote_subst"`' ! lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' ! lt_cv_prog_compiler_c_o_F77='`$ECHO "$lt_cv_prog_compiler_c_o_F77" | $SED "$delay_single_quote_subst"`' ! archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' ! archive_cmds_need_lc_F77='`$ECHO "$archive_cmds_need_lc_F77" | $SED "$delay_single_quote_subst"`' ! enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' ! enable_shared_with_static_runtimes_F77='`$ECHO "$enable_shared_with_static_runtimes_F77" | $SED "$delay_single_quote_subst"`' ! export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' ! export_dynamic_flag_spec_F77='`$ECHO "$export_dynamic_flag_spec_F77" | $SED "$delay_single_quote_subst"`' ! whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' ! whole_archive_flag_spec_F77='`$ECHO "$whole_archive_flag_spec_F77" | $SED "$delay_single_quote_subst"`' ! compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' ! compiler_needs_object_F77='`$ECHO "$compiler_needs_object_F77" | $SED "$delay_single_quote_subst"`' ! old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' ! old_archive_from_new_cmds_F77='`$ECHO "$old_archive_from_new_cmds_F77" | $SED "$delay_single_quote_subst"`' ! old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' ! old_archive_from_expsyms_cmds_F77='`$ECHO "$old_archive_from_expsyms_cmds_F77" | $SED "$delay_single_quote_subst"`' ! archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' ! archive_cmds_F77='`$ECHO "$archive_cmds_F77" | $SED "$delay_single_quote_subst"`' ! archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' ! archive_expsym_cmds_F77='`$ECHO "$archive_expsym_cmds_F77" | $SED "$delay_single_quote_subst"`' ! module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' ! module_cmds_F77='`$ECHO "$module_cmds_F77" | $SED "$delay_single_quote_subst"`' ! module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' ! module_expsym_cmds_F77='`$ECHO "$module_expsym_cmds_F77" | $SED "$delay_single_quote_subst"`' ! with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' ! with_gnu_ld_F77='`$ECHO "$with_gnu_ld_F77" | $SED "$delay_single_quote_subst"`' ! allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' ! allow_undefined_flag_F77='`$ECHO "$allow_undefined_flag_F77" | $SED "$delay_single_quote_subst"`' ! no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' ! no_undefined_flag_F77='`$ECHO "$no_undefined_flag_F77" | $SED "$delay_single_quote_subst"`' ! hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' ! hardcode_libdir_flag_spec_F77='`$ECHO "$hardcode_libdir_flag_spec_F77" | $SED "$delay_single_quote_subst"`' ! hardcode_libdir_flag_spec_ld_CXX='`$ECHO "$hardcode_libdir_flag_spec_ld_CXX" | $SED "$delay_single_quote_subst"`' ! hardcode_libdir_flag_spec_ld_F77='`$ECHO "$hardcode_libdir_flag_spec_ld_F77" | $SED "$delay_single_quote_subst"`' ! hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' ! hardcode_libdir_separator_F77='`$ECHO "$hardcode_libdir_separator_F77" | $SED "$delay_single_quote_subst"`' ! hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' ! hardcode_direct_F77='`$ECHO "$hardcode_direct_F77" | $SED "$delay_single_quote_subst"`' ! hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' ! hardcode_direct_absolute_F77='`$ECHO "$hardcode_direct_absolute_F77" | $SED "$delay_single_quote_subst"`' ! hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' ! hardcode_minus_L_F77='`$ECHO "$hardcode_minus_L_F77" | $SED "$delay_single_quote_subst"`' ! hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' ! hardcode_shlibpath_var_F77='`$ECHO "$hardcode_shlibpath_var_F77" | $SED "$delay_single_quote_subst"`' ! hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' ! hardcode_automatic_F77='`$ECHO "$hardcode_automatic_F77" | $SED "$delay_single_quote_subst"`' ! inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' ! inherit_rpath_F77='`$ECHO "$inherit_rpath_F77" | $SED "$delay_single_quote_subst"`' ! link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' ! link_all_deplibs_F77='`$ECHO "$link_all_deplibs_F77" | $SED "$delay_single_quote_subst"`' ! always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' ! always_export_symbols_F77='`$ECHO "$always_export_symbols_F77" | $SED "$delay_single_quote_subst"`' ! export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' ! export_symbols_cmds_F77='`$ECHO "$export_symbols_cmds_F77" | $SED "$delay_single_quote_subst"`' ! exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' ! exclude_expsyms_F77='`$ECHO "$exclude_expsyms_F77" | $SED "$delay_single_quote_subst"`' ! include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' ! include_expsyms_F77='`$ECHO "$include_expsyms_F77" | $SED "$delay_single_quote_subst"`' ! prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' ! prelink_cmds_F77='`$ECHO "$prelink_cmds_F77" | $SED "$delay_single_quote_subst"`' ! postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' ! postlink_cmds_F77='`$ECHO "$postlink_cmds_F77" | $SED "$delay_single_quote_subst"`' ! file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' ! file_list_spec_F77='`$ECHO "$file_list_spec_F77" | $SED "$delay_single_quote_subst"`' ! hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' ! hardcode_action_F77='`$ECHO "$hardcode_action_F77" | $SED "$delay_single_quote_subst"`' ! compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' ! compiler_lib_search_dirs_F77='`$ECHO "$compiler_lib_search_dirs_F77" | $SED "$delay_single_quote_subst"`' ! predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' ! predep_objects_F77='`$ECHO "$predep_objects_F77" | $SED "$delay_single_quote_subst"`' ! postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' ! postdep_objects_F77='`$ECHO "$postdep_objects_F77" | $SED "$delay_single_quote_subst"`' ! predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' ! predeps_F77='`$ECHO "$predeps_F77" | $SED "$delay_single_quote_subst"`' ! postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' ! postdeps_F77='`$ECHO "$postdeps_F77" | $SED "$delay_single_quote_subst"`' ! compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' ! compiler_lib_search_path_F77='`$ECHO "$compiler_lib_search_path_F77" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' + # A function that is used when there is no print builtin or printf. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF + \$1 + _LTECHO_EOF' + } + # Quote evaled strings. ! for var in AS \ ! DLLTOOL \ ! OBJDUMP \ ! SHELL \ ! ECHO \ ! SED \ GREP \ EGREP \ FGREP \ *************** *** 52656,52663 **** --- 58138,58149 ---- reload_flag \ deplibs_check_method \ file_magic_cmd \ + file_magic_glob \ + want_nocaseglob \ + sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ + archiver_list_spec \ STRIP \ RANLIB \ CC \ *************** *** 52667,52680 **** lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ ! SHELL \ ! ECHO \ lt_prog_compiler_no_builtin_flag \ - lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ DSYMUTIL \ NMEDIT \ LIPO \ --- 58153,58166 ---- lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ ! nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ + lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ + MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ *************** *** 52690,52696 **** hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ - fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ --- 58176,58181 ---- *************** *** 52698,52703 **** --- 58183,58189 ---- libname_spec \ library_names_spec \ soname_spec \ + install_override_mode \ finish_eval \ old_striplib \ striplib \ *************** *** 52709,52722 **** compiler_lib_search_path \ LD_CXX \ LD_F77 \ compiler_CXX \ compiler_F77 \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_no_builtin_flag_F77 \ - lt_prog_compiler_wl_CXX \ - lt_prog_compiler_wl_F77 \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_static_CXX \ lt_prog_compiler_static_F77 \ lt_cv_prog_compiler_c_o_CXX \ --- 58195,58210 ---- compiler_lib_search_path \ LD_CXX \ LD_F77 \ + reload_flag_CXX \ + reload_flag_F77 \ compiler_CXX \ compiler_F77 \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_no_builtin_flag_F77 \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_pic_F77 \ + lt_prog_compiler_wl_CXX \ + lt_prog_compiler_wl_F77 \ lt_prog_compiler_static_CXX \ lt_prog_compiler_static_F77 \ lt_cv_prog_compiler_c_o_CXX \ *************** *** 52739,52746 **** hardcode_libdir_flag_spec_ld_F77 \ hardcode_libdir_separator_CXX \ hardcode_libdir_separator_F77 \ - fix_srcfile_path_CXX \ - fix_srcfile_path_F77 \ exclude_expsyms_CXX \ exclude_expsyms_F77 \ include_expsyms_CXX \ --- 58227,58232 ---- *************** *** 52759,52767 **** postdeps_F77 \ compiler_lib_search_path_CXX \ compiler_lib_search_path_F77; do ! case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) ! eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" --- 58245,58253 ---- postdeps_F77 \ compiler_lib_search_path_CXX \ compiler_lib_search_path_F77; do ! case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) ! eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" *************** *** 52783,52793 **** --- 58269,58282 ---- module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ + postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ + reload_cmds_CXX \ + reload_cmds_F77 \ old_archive_cmds_CXX \ old_archive_cmds_F77 \ old_archive_from_new_cmds_CXX \ *************** *** 52805,52814 **** export_symbols_cmds_CXX \ export_symbols_cmds_F77 \ prelink_cmds_CXX \ ! prelink_cmds_F77; do ! case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) ! eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" --- 58294,58305 ---- export_symbols_cmds_CXX \ export_symbols_cmds_F77 \ prelink_cmds_CXX \ ! prelink_cmds_F77 \ ! postlink_cmds_CXX \ ! postlink_cmds_F77; do ! case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) ! eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" *************** *** 52816,52827 **** esac done - # Fix-up fallback echo if it was mangled by the above quoting rules. - case \$lt_ECHO in - *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` - ;; - esac - ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' --- 58307,58312 ---- *************** *** 52873,52879 **** "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; ! *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; esac done --- 58358,58364 ---- "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; ! *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done *************** *** 52896,52904 **** # after its creation but before its name has been assigned to `$tmp'. $debug || { ! tmp= trap 'exit_status=$? ! { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } --- 58381,58390 ---- # after its creation but before its name has been assigned to `$tmp'. $debug || { ! tmp= ac_tmp= trap 'exit_status=$? ! : "${ac_tmp:=$tmp}" ! { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } *************** *** 52906,52917 **** { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && ! test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. --- 58392,58404 ---- { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && ! test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 + ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. *************** *** 52933,52939 **** ac_cs_awk_cr=$ac_cr fi ! echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF --- 58420,58426 ---- ac_cs_awk_cr=$ac_cr fi ! echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF *************** *** 52961,52967 **** rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ! cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h --- 58448,58454 ---- rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ! cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h *************** *** 53009,53015 **** rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK ! cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" --- 58496,58502 ---- rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK ! cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" *************** *** 53041,53047 **** sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat ! fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF --- 58528,58534 ---- sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat ! fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF *************** *** 53075,53081 **** # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then ! cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF --- 58562,58568 ---- # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then ! cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF *************** *** 53087,53094 **** # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ! ac_t=`sed -n "/$ac_delim/p" confdefs.h` ! if test -z "$ac_t"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 --- 58574,58581 ---- # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ! ac_tt=`sed -n "/$ac_delim/p" confdefs.h` ! if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 *************** *** 53189,53195 **** esac case $ac_mode$ac_tag in :[FHL]*:*);; ! :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac --- 58676,58682 ---- esac case $ac_mode$ac_tag in :[FHL]*:*);; ! :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac *************** *** 53208,53214 **** for ac_f do case $ac_f in ! -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. --- 58695,58701 ---- for ac_f do case $ac_f in ! -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. *************** *** 53217,53223 **** [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || ! as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" --- 58704,58710 ---- [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || ! as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" *************** *** 53243,53250 **** esac case $ac_tag in ! *:-:* | *:-) cat >"$tmp/stdin" \ ! || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac --- 58730,58737 ---- esac case $ac_tag in ! *:-:* | *:-) cat >"$ac_tmp/stdin" \ ! || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac *************** *** 53380,53400 **** s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " ! eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ ! || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && ! { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && ! { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} ! rm -f "$tmp/stdin" case $ac_file in ! -) cat "$tmp/out" && rm -f "$tmp/out";; ! *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; --- 58867,58888 ---- s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " ! eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ ! >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && ! { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && ! { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ ! "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} ! rm -f "$ac_tmp/stdin" case $ac_file in ! -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; ! *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; *************** *** 53405,53424 **** if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ ! && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" ! } >"$tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ! if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" ! mv "$tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ ! && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. --- 58893,58912 ---- if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ ! && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" ! } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ! if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" ! mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ ! && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. *************** *** 53580,53586 **** # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, ! # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. --- 59068,59075 ---- # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, ! # 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ! # Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. *************** *** 53620,53632 **** build_old_libs=$enable_static # Assembler program. ! AS=$AS # DLL creation program. ! DLLTOOL=$DLLTOOL # Object dumper program. ! OBJDUMP=$OBJDUMP # Whether or not to build shared libraries. build_libtool_libs=$enable_shared --- 59109,59121 ---- build_old_libs=$enable_static # Assembler program. ! AS=$lt_AS # DLL creation program. ! DLLTOOL=$lt_DLLTOOL # Object dumper program. ! OBJDUMP=$lt_OBJDUMP # Whether or not to build shared libraries. build_libtool_libs=$enable_shared *************** *** 53637,53642 **** --- 59126,59137 ---- # Whether or not to optimize for fast installation. fast_install=$enable_fast_install + # Shell to use when invoking shell scripts. + SHELL=$lt_SHELL + + # An echo program that protects backslashes. + ECHO=$lt_ECHO + # The host system. host_alias=$host_alias host=$host *************** *** 53686,53705 **** # turn newlines into spaces. NL2SP=$lt_lt_NL2SP ! # How to create reloadable object files. ! reload_flag=$lt_reload_flag ! reload_cmds=$lt_reload_cmds # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method ! # Command to use when deplibs_check_method == "file_magic". file_magic_cmd=$lt_file_magic_cmd # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A symbol stripping program. STRIP=$lt_STRIP --- 59181,59216 ---- # turn newlines into spaces. NL2SP=$lt_lt_NL2SP ! # convert \$build file names to \$host format. ! to_host_file_cmd=$lt_cv_to_host_file_cmd ! ! # convert \$build files to toolchain format. ! to_tool_file_cmd=$lt_cv_to_tool_file_cmd # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method ! # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd + # How to find potential files when deplibs_check_method = "file_magic". + file_magic_glob=$lt_file_magic_glob + + # Find potential files using nocaseglob when deplibs_check_method = "file_magic". + want_nocaseglob=$lt_want_nocaseglob + + # Command to associate shared and link libraries. + sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + # The archiver. AR=$lt_AR + + # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS + # How to feed a file listing to the archiver. + archiver_list_spec=$lt_archiver_list_spec + # A symbol stripping program. STRIP=$lt_STRIP *************** *** 53708,53713 **** --- 59219,59227 ---- old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds + # Whether to use a lock for old archive extraction. + lock_old_archive_extraction=$lock_old_archive_extraction + # A C compiler. LTCC=$lt_CC *************** *** 53726,53739 **** # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix ! # The name of the directory that contains temporary libtool files. ! objdir=$objdir ! # Shell to use when invoking shell scripts. ! SHELL=$lt_SHELL ! # An echo program that does not interpret backslashes. ! ECHO=$lt_ECHO # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD --- 59240,59253 ---- # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix ! # Specify filename containing input files for \$NM. ! nm_file_list_spec=$lt_nm_file_list_spec ! # The root where to search for dependent libraries,and in which our libraries should be installed. ! lt_sysroot=$lt_sysroot ! # The name of the directory that contains temporary libtool files. ! objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD *************** *** 53741,53746 **** --- 59255,59263 ---- # Must we lock files when doing compilation? need_locks=$lt_need_locks + # Manifest tool. + MANIFEST_TOOL=$lt_MANIFEST_TOOL + # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL *************** *** 53797,53802 **** --- 59314,59322 ---- # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec + # Permission mode override for installation of shared libraries. + install_override_mode=$lt_install_override_mode + # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds *************** *** 53836,53841 **** --- 59356,59365 ---- # The linker used to build libraries. LD=$lt_LD + # How to create reloadable object files. + reload_flag=$lt_reload_flag + reload_cmds=$lt_reload_cmds + # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds *************** *** 53848,53859 **** # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - # How to pass a linker flag through the compiler. - wl=$lt_lt_prog_compiler_wl - # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static --- 59372,59383 ---- # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic + # How to pass a linker flag through the compiler. + wl=$lt_lt_prog_compiler_wl + # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static *************** *** 53940,53948 **** # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs - # Fix the shell variable \$srcfile for the compiler. - fix_srcfile_path=$lt_fix_srcfile_path - # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols --- 59464,59469 ---- *************** *** 53958,53963 **** --- 59479,59487 ---- # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds + # Commands necessary for finishing linking programs. + postlink_cmds=$lt_postlink_cmds + # Specify filename containing input files. file_list_spec=$lt_file_list_spec *************** *** 54004,54215 **** # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? ! sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ ! || (rm -f "$cfgfile"; exit 1) ! ! case $xsi_shell in ! yes) ! cat << \_LT_EOF >> "$cfgfile" ! ! # func_dirname file append nondir_replacement ! # Compute the dirname of FILE. If nonempty, add APPEND to the result, ! # otherwise set result to NONDIR_REPLACEMENT. ! func_dirname () ! { ! case ${1} in ! */*) func_dirname_result="${1%/*}${2}" ;; ! * ) func_dirname_result="${3}" ;; ! esac ! } ! ! # func_basename file ! func_basename () ! { ! func_basename_result="${1##*/}" ! } ! ! # func_dirname_and_basename file append nondir_replacement ! # perform func_basename and func_dirname in a single function ! # call: ! # dirname: Compute the dirname of FILE. If nonempty, ! # add APPEND to the result, otherwise set result ! # to NONDIR_REPLACEMENT. ! # value returned in "$func_dirname_result" ! # basename: Compute filename of FILE. ! # value retuned in "$func_basename_result" ! # Implementation must be kept synchronized with func_dirname ! # and func_basename. For efficiency, we do not delegate to ! # those functions but instead duplicate the functionality here. ! func_dirname_and_basename () ! { ! case ${1} in ! */*) func_dirname_result="${1%/*}${2}" ;; ! * ) func_dirname_result="${3}" ;; ! esac ! func_basename_result="${1##*/}" ! } ! ! # func_stripname prefix suffix name ! # strip PREFIX and SUFFIX off of NAME. ! # PREFIX and SUFFIX must not contain globbing or regex special ! # characters, hashes, percent signs, but SUFFIX may contain a leading ! # dot (in which case that matches only a dot). ! func_stripname () ! { ! # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are ! # positional parameters, so assign one to ordinary parameter first. ! func_stripname_result=${3} ! func_stripname_result=${func_stripname_result#"${1}"} ! func_stripname_result=${func_stripname_result%"${2}"} ! } ! ! # func_opt_split ! func_opt_split () ! { ! func_opt_split_opt=${1%%=*} ! func_opt_split_arg=${1#*=} ! } ! ! # func_lo2o object ! func_lo2o () ! { ! case ${1} in ! *.lo) func_lo2o_result=${1%.lo}.${objext} ;; ! *) func_lo2o_result=${1} ;; ! esac ! } ! ! # func_xform libobj-or-source ! func_xform () ! { ! func_xform_result=${1%.*}.lo ! } ! ! # func_arith arithmetic-term... ! func_arith () ! { ! func_arith_result=$(( $* )) ! } ! ! # func_len string ! # STRING may not start with a hyphen. ! func_len () ! { ! func_len_result=${#1} ! } ! ! _LT_EOF ! ;; ! *) # Bourne compatible functions. ! cat << \_LT_EOF >> "$cfgfile" ! ! # func_dirname file append nondir_replacement ! # Compute the dirname of FILE. If nonempty, add APPEND to the result, ! # otherwise set result to NONDIR_REPLACEMENT. ! func_dirname () ! { ! # Extract subdirectory from the argument. ! func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` ! if test "X$func_dirname_result" = "X${1}"; then ! func_dirname_result="${3}" ! else ! func_dirname_result="$func_dirname_result${2}" ! fi ! } ! ! # func_basename file ! func_basename () ! { ! func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` ! } ! ! ! # func_stripname prefix suffix name ! # strip PREFIX and SUFFIX off of NAME. ! # PREFIX and SUFFIX must not contain globbing or regex special ! # characters, hashes, percent signs, but SUFFIX may contain a leading ! # dot (in which case that matches only a dot). ! # func_strip_suffix prefix name ! func_stripname () ! { ! case ${2} in ! .*) func_stripname_result=`$ECHO "X${3}" \ ! | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; ! *) func_stripname_result=`$ECHO "X${3}" \ ! | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; ! esac ! } ! ! # sed scripts: ! my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' ! my_sed_long_arg='1s/^-[^=]*=//' ! ! # func_opt_split ! func_opt_split () ! { ! func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` ! func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` ! } ! ! # func_lo2o object ! func_lo2o () ! { ! func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` ! } ! ! # func_xform libobj-or-source ! func_xform () ! { ! func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` ! } ! ! # func_arith arithmetic-term... ! func_arith () ! { ! func_arith_result=`expr "$@"` ! } ! ! # func_len string ! # STRING may not start with a hyphen. ! func_len () ! { ! func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` ! } ! ! _LT_EOF ! esac ! ! case $lt_shell_append in ! yes) ! cat << \_LT_EOF >> "$cfgfile" ! ! # func_append var value ! # Append VALUE to the end of shell variable VAR. ! func_append () ! { ! eval "$1+=\$2" ! } ! _LT_EOF ! ;; ! *) ! cat << \_LT_EOF >> "$cfgfile" ! ! # func_append var value ! # Append VALUE to the end of shell variable VAR. ! func_append () ! { ! eval "$1=\$$1\$2" ! } ! ! _LT_EOF ! ;; ! esac - sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) ! mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" --- 59528,59696 ---- # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? ! sed '$q' "$ltmain" >> "$cfgfile" \ ! || (rm -f "$cfgfile"; exit 1) + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ + func_dirname ()\ + {\ + \ case ${1} in\ + \ */*) func_dirname_result="${1%/*}${2}" ;;\ + \ * ) func_dirname_result="${3}" ;;\ + \ esac\ + } # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ + func_basename ()\ + {\ + \ func_basename_result="${1##*/}"\ + } # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ + func_dirname_and_basename ()\ + {\ + \ case ${1} in\ + \ */*) func_dirname_result="${1%/*}${2}" ;;\ + \ * ) func_dirname_result="${3}" ;;\ + \ esac\ + \ func_basename_result="${1##*/}"\ + } # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ + func_stripname ()\ + {\ + \ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ + \ # positional parameters, so assign one to ordinary parameter first.\ + \ func_stripname_result=${3}\ + \ func_stripname_result=${func_stripname_result#"${1}"}\ + \ func_stripname_result=${func_stripname_result%"${2}"}\ + } # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ + func_split_long_opt ()\ + {\ + \ func_split_long_opt_name=${1%%=*}\ + \ func_split_long_opt_arg=${1#*=}\ + } # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ + func_split_short_opt ()\ + {\ + \ func_split_short_opt_arg=${1#??}\ + \ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ + } # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ + func_lo2o ()\ + {\ + \ case ${1} in\ + \ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ + \ *) func_lo2o_result=${1} ;;\ + \ esac\ + } # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ + func_xform ()\ + {\ + func_xform_result=${1%.*}.lo\ + } # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ + func_arith ()\ + {\ + func_arith_result=$(( $* ))\ + } # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ + func_len ()\ + {\ + func_len_result=${#1}\ + } # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: + + fi + + if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ + func_append ()\ + {\ + eval "${1}+=\\${2}"\ + } # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ + func_append_quoted ()\ + {\ + \ func_quote_for_eval "${2}"\ + \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ + } # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: + else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: + fi + + if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 + $as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} + fi ! mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" *************** *** 54221,54226 **** --- 59702,59711 ---- # The linker used to build libraries. LD=$lt_LD_CXX + # How to create reloadable object files. + reload_flag=$lt_reload_flag_CXX + reload_cmds=$lt_reload_cmds_CXX + # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX *************** *** 54233,54244 **** # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX - # How to pass a linker flag through the compiler. - wl=$lt_lt_prog_compiler_wl_CXX - # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX --- 59718,59729 ---- # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX + # How to pass a linker flag through the compiler. + wl=$lt_lt_prog_compiler_wl_CXX + # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX *************** *** 54325,54333 **** # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX - # Fix the shell variable \$srcfile for the compiler. - fix_srcfile_path=$lt_fix_srcfile_path_CXX - # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX --- 59810,59815 ---- *************** *** 54343,54348 **** --- 59825,59833 ---- # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX + # Commands necessary for finishing linking programs. + postlink_cmds=$lt_postlink_cmds_CXX + # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX *************** *** 54374,54379 **** --- 59859,59868 ---- # The linker used to build libraries. LD=$lt_LD_F77 + # How to create reloadable object files. + reload_flag=$lt_reload_flag_F77 + reload_cmds=$lt_reload_cmds_F77 + # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_F77 *************** *** 54386,54397 **** # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 - # How to pass a linker flag through the compiler. - wl=$lt_lt_prog_compiler_wl_F77 - # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 --- 59875,59886 ---- # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 + # How to pass a linker flag through the compiler. + wl=$lt_lt_prog_compiler_wl_F77 + # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 *************** *** 54478,54486 **** # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 - # Fix the shell variable \$srcfile for the compiler. - fix_srcfile_path=$lt_fix_srcfile_path_F77 - # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_F77 --- 59967,59972 ---- *************** *** 54496,54501 **** --- 59982,59990 ---- # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_F77 + # Commands necessary for finishing linking programs. + postlink_cmds=$lt_postlink_cmds_F77 + # Specify filename containing input files. file_list_spec=$lt_file_list_spec_F77 diff -cNr octave-3.4.0/configure.ac octave-3.4.1/configure.ac *** octave-3.4.0/configure.ac 2011-02-08 05:01:12.000000000 -0500 --- octave-3.4.1/configure.ac 2011-06-15 11:13:48.000000000 -0400 *************** *** 27,39 **** EXTERN_CFLAGS="$CFLAGS" EXTERN_CXXFLAGS="$CXXFLAGS" ! AC_INIT([GNU Octave], [3.4.0], [bug@octave.org], [octave]) dnl PACKAGE_VERSION is set by the AC_INIT VERSION arg OCTAVE_VERSION="$PACKAGE_VERSION" ! OCTAVE_API_VERSION_NUMBER="47" OCTAVE_API_VERSION="api-v$OCTAVE_API_VERSION_NUMBER+" ! OCTAVE_RELEASE_DATE="2011-02-08" OCTAVE_COPYRIGHT="Copyright (C) 2011 John W. Eaton and others." AC_SUBST(OCTAVE_VERSION) AC_SUBST(OCTAVE_API_VERSION_NUMBER) --- 27,39 ---- EXTERN_CFLAGS="$CFLAGS" EXTERN_CXXFLAGS="$CXXFLAGS" ! AC_INIT([GNU Octave], [3.4.1], [http://octave.org/bugs.html], [octave]) dnl PACKAGE_VERSION is set by the AC_INIT VERSION arg OCTAVE_VERSION="$PACKAGE_VERSION" ! OCTAVE_API_VERSION_NUMBER="45" OCTAVE_API_VERSION="api-v$OCTAVE_API_VERSION_NUMBER+" ! OCTAVE_RELEASE_DATE="2011-06-15" OCTAVE_COPYRIGHT="Copyright (C) 2011 John W. Eaton and others." AC_SUBST(OCTAVE_VERSION) AC_SUBST(OCTAVE_API_VERSION_NUMBER) *************** *** 80,89 **** ;; *-*-mingw*) AC_MSG_CHECKING([for MSVC compiler]) ! AC_PREPROC_IFELSE([ #ifndef _MSC_VER #error "Not MSVC compiler" ! #endif], have_msvc=yes, have_msvc=no) AC_MSG_RESULT([$have_msvc]) ;; esac --- 80,90 ---- ;; *-*-mingw*) AC_MSG_CHECKING([for MSVC compiler]) ! AC_PREPROC_IFELSE([AC_LANG_SOURCE([ #ifndef _MSC_VER #error "Not MSVC compiler" ! #endif ! ])], have_msvc=yes, have_msvc=no) AC_MSG_RESULT([$have_msvc]) ;; esac *************** *** 97,103 **** yes | "") case "$canonical_host_type" in *-*-mingw* | *-*-msdosmsvc) ! sepchar=';' ;; esac ;; --- 98,104 ---- yes | "") case "$canonical_host_type" in *-*-mingw* | *-*-msdosmsvc) ! sepchar=';' ;; esac ;; *************** *** 125,131 **** '$(datadir)/octave/site/$(api_version)/m') OCTAVE_SET_DEFAULT(localverfcnfiledir, '$(datadir)/octave/$(version)/site/m') OCTAVE_SET_DEFAULT(octetcdir, '$(datadir)/octave/$(version)/etc') ! OCTAVE_SET_DEFAULT(octlibdir, '$(libdir)/octave-$(version)') OCTAVE_SET_DEFAULT(archlibdir, '$(libexecdir)/octave/$(version)/exec/$(canonical_host_type)') OCTAVE_SET_DEFAULT(localarchlibdir, --- 126,132 ---- '$(datadir)/octave/site/$(api_version)/m') OCTAVE_SET_DEFAULT(localverfcnfiledir, '$(datadir)/octave/$(version)/site/m') OCTAVE_SET_DEFAULT(octetcdir, '$(datadir)/octave/$(version)/etc') ! OCTAVE_SET_DEFAULT(octlibdir, '$(libdir)/octave/$(version)') OCTAVE_SET_DEFAULT(archlibdir, '$(libexecdir)/octave/$(version)/exec/$(canonical_host_type)') OCTAVE_SET_DEFAULT(localarchlibdir, *************** *** 135,147 **** OCTAVE_SET_DEFAULT(localverarchlibdir, '$(libexecdir)/octave/$(version)/site/exec/$(canonical_host_type)') OCTAVE_SET_DEFAULT(octfiledir, ! '$(libexecdir)/octave/$(version)/oct/$(canonical_host_type)') OCTAVE_SET_DEFAULT(localoctfiledir, ! '$(libexecdir)/octave/site/oct/$(canonical_host_type)') OCTAVE_SET_DEFAULT(localapioctfiledir, ! '$(libexecdir)/octave/site/oct/$(api_version)/$(canonical_host_type)') OCTAVE_SET_DEFAULT(localveroctfiledir, ! '$(libexecdir)/octave/$(version)/site/oct/$(canonical_host_type)') OCTAVE_SET_DEFAULT(imagedir, '$(datadir)/octave/$(version)/imagelib') ### Find pkg-config executable (sets $PKG_CONFIG) --- 136,148 ---- OCTAVE_SET_DEFAULT(localverarchlibdir, '$(libexecdir)/octave/$(version)/site/exec/$(canonical_host_type)') OCTAVE_SET_DEFAULT(octfiledir, ! '$(libdir)/octave/$(version)/oct/$(canonical_host_type)') OCTAVE_SET_DEFAULT(localoctfiledir, ! '$(libdir)/octave/site/oct/$(canonical_host_type)') OCTAVE_SET_DEFAULT(localapioctfiledir, ! '$(libdir)/octave/site/oct/$(api_version)/$(canonical_host_type)') OCTAVE_SET_DEFAULT(localveroctfiledir, ! '$(libdir)/octave/$(version)/site/oct/$(canonical_host_type)') OCTAVE_SET_DEFAULT(imagedir, '$(datadir)/octave/$(version)/imagelib') ### Find pkg-config executable (sets $PKG_CONFIG) *************** *** 296,302 **** ;; *-*-mingw*) if test "$have_msvc" = "no"; then ! INCLUDE_DEPS=false fi ;; *) --- 297,303 ---- ;; *-*-mingw*) if test "$have_msvc" = "no"; then ! INCLUDE_DEPS=false fi ;; *) *************** *** 357,363 **** ac_float_truncate=) AC_DEFINE_UNQUOTED(FLOAT_TRUNCATE, $ac_float_truncate, ! [Define to volatile if you need truncating intermediate FP results]) ### On Intel systems with gcc, we may need to compile with -mieee-fp ### and -ffloat-store to get full support for IEEE floating point. --- 358,364 ---- ac_float_truncate=) AC_DEFINE_UNQUOTED(FLOAT_TRUNCATE, $ac_float_truncate, ! [Define to volatile if you need truncating intermediate FP results]) ### On Intel systems with gcc, we may need to compile with -mieee-fp ### and -ffloat-store to get full support for IEEE floating point. *************** *** 382,390 **** fi if test "$GXX" = yes; then OCTAVE_CXX_FLAG(-mieee-fp, [ ! ieee_fp_flag=-mieee-fp ! XTRA_CXXFLAGS="$XTRA_CXXFLAGS -mieee-fp" ! AC_MSG_NOTICE([adding -mieee-fp to XTRA_CXXFLAGS])]) ### OCTAVE_CXX_FLAG(-ffloat-store, [ ### float_store_flag=-ffloat-store --- 383,391 ---- fi if test "$GXX" = yes; then OCTAVE_CXX_FLAG(-mieee-fp, [ ! ieee_fp_flag=-mieee-fp ! XTRA_CXXFLAGS="$XTRA_CXXFLAGS -mieee-fp" ! AC_MSG_NOTICE([adding -mieee-fp to XTRA_CXXFLAGS])]) ### OCTAVE_CXX_FLAG(-ffloat-store, [ ### float_store_flag=-ffloat-store *************** *** 395,419 **** alpha*-*-*) if test "$GCC" = yes; then OCTAVE_CC_FLAG(-mieee, [ ! ieee_fp_flag=-mieee ! XTRA_CFLAGS="$XTRA_CFLAGS -mieee" ! AC_MSG_NOTICE([adding -mieee to XTRA_CFLAGS])]) else OCTAVE_CC_FLAG(-ieee, [ ! ieee_fp_flag=-ieee ! XTRA_CFLAGS="$XTRA_CFLAGS -ieee" ! AC_MSG_NOTICE([adding -ieee to XTRA_CFLAGS])]) fi if test "$GXX" = yes; then OCTAVE_CXX_FLAG(-mieee, [ ! ieee_fp_flag=-mieee ! XTRA_CXXFLAGS="$XTRA_CXXFLAGS -mieee" ! AC_MSG_NOTICE([adding -mieee to XTRA_CXXFLAGS])]) else OCTAVE_CXX_FLAG(-ieee, [ ! ieee_fp_flag=-ieee ! XTRA_CXXFLAGS="$XTRA_CXXFLAGS -ieee" ! AC_MSG_NOTICE([adding -ieee to XTRA_CXXFLAGS])]) fi ;; *ibm-aix4*) --- 396,420 ---- alpha*-*-*) if test "$GCC" = yes; then OCTAVE_CC_FLAG(-mieee, [ ! ieee_fp_flag=-mieee ! XTRA_CFLAGS="$XTRA_CFLAGS -mieee" ! AC_MSG_NOTICE([adding -mieee to XTRA_CFLAGS])]) else OCTAVE_CC_FLAG(-ieee, [ ! ieee_fp_flag=-ieee ! XTRA_CFLAGS="$XTRA_CFLAGS -ieee" ! AC_MSG_NOTICE([adding -ieee to XTRA_CFLAGS])]) fi if test "$GXX" = yes; then OCTAVE_CXX_FLAG(-mieee, [ ! ieee_fp_flag=-mieee ! XTRA_CXXFLAGS="$XTRA_CXXFLAGS -mieee" ! AC_MSG_NOTICE([adding -mieee to XTRA_CXXFLAGS])]) else OCTAVE_CXX_FLAG(-ieee, [ ! ieee_fp_flag=-ieee ! XTRA_CXXFLAGS="$XTRA_CXXFLAGS -ieee" ! AC_MSG_NOTICE([adding -ieee to XTRA_CXXFLAGS])]) fi ;; *ibm-aix4*) *************** *** 487,494 **** sparc-sun-solaris2*) if test "$GCC" != yes; then ## The Sun C++ compiler never seems to complete compiling ! ## gendoc.cc unless we reduce the optimization level... ! BUILD_CXXFLAGS="-g -O1" fi ;; esac --- 488,495 ---- sparc-sun-solaris2*) if test "$GCC" != yes; then ## The Sun C++ compiler never seems to complete compiling ! ## gendoc.cc unless we reduce the optimization level... ! BUILD_CXXFLAGS="-g -O1" fi ;; esac *************** *** 592,598 **** *) AC_MSG_NOTICE([adding -fdefault-integer-8 to F77_INTEGER_8_FLAG]) F77_INTEGER_8_FLAG="-fdefault-integer-8" ! ## Invalidate the cache and try again. $as_unset octave_cv_fortran_integer_size ;; esac --- 593,599 ---- *) AC_MSG_NOTICE([adding -fdefault-integer-8 to F77_INTEGER_8_FLAG]) F77_INTEGER_8_FLAG="-fdefault-integer-8" ! ## Invalidate the cache and try again. $as_unset octave_cv_fortran_integer_size ;; esac *************** *** 637,697 **** AC_DEFINE(HAVE_QHULL, 1, [Define if QHull is available.])], [ warn_qhull="Qhull library found, but seems not to work properly -- this will result in loss of functionality of some geometry functions. Please try recompiling the library with -fno-strict-aliasing."])]) ! ### Check for pcre/regex library. ! ## check for pcre-config, and if so, set XTRA_CXXFLAGS appropriately ! AC_CHECK_PROG(WITH_PCRE_CONFIG, pcre-config, yes, no) ! if test $WITH_PCRE_CONFIG = yes ; then ! XTRA_CXXFLAGS="$XTRA_CXXFLAGS $(pcre-config --cflags)" ! fi ! ## NB: no need to do separate check for pcre.h header -- checking macros is good enough ! AC_CACHE_CHECK([whether pcre.h defines the macros we need], [ac_cv_pcre_h_macros_present], [ ! AC_EGREP_CPP([PCRE_HAS_MACROS_WE_NEED], [ #include #if defined (PCRE_INFO_NAMECOUNT) \ && defined (PCRE_INFO_NAMEENTRYSIZE) \ && defined (PCRE_INFO_NAMETABLE) PCRE_HAS_MACROS_WE_NEED #endif], ac_cv_pcre_h_macros_present=yes, ac_cv_pcre_h_macros_present=no)]) - WITH_PCRE="$ac_cv_pcre_h_macros_present" - - REGEX_LIBS= - - using_pcre=no - using_regex=no ! if test "$WITH_PCRE" = yes; then ! if test "$WITH_PCRE_CONFIG" = yes; then ! REGEX_LIBS=$(pcre-config --libs) else ! REGEX_LIBS=-lpcre fi save_LIBS="$LIBS" LIBS="$REGEX_LIBS $LIBS" ! AC_CHECK_FUNCS(pcre_compile, [using_pcre=yes ! AC_DEFINE(HAVE_PCRE, 1, [Define if PCRE library is available.])], [ ! REGEX_LIBS= ! warn_pcre="PCRE library not found. This will result in some loss of functionality for the regular expression matching functions." ! AC_MSG_WARN([$warn_pcre])]) LIBS="$save_LIBS" else ! warn_pcre="PCRE library not found. This will result in some loss of functionality for the regular expression matching functions." ! AC_MSG_WARN([$warn_pcre]) fi - AC_CHECK_FUNCS(regexec, [using_regex=yes], [ - AC_CHECK_LIB(regex, regexec, [using_regex=yes - REGEX_LIBS="-lregex $REGEX_LIBS"], [ - warn_regex="regular expression functions not found. The regular expression matching functions will be disabled." - AC_MSG_WARN([$warn_regex])])]) - - if test "$using_regex" = yes; then - AC_DEFINE(HAVE_REGEX, 1, [Define if regex library is available.]) - fi - - AC_SUBST(REGEX_LIBS) - ### Check for ZLIB library. OCTAVE_CHECK_LIBRARY(z, ZLIB, --- 638,680 ---- AC_DEFINE(HAVE_QHULL, 1, [Define if QHull is available.])], [ warn_qhull="Qhull library found, but seems not to work properly -- this will result in loss of functionality of some geometry functions. Please try recompiling the library with -fno-strict-aliasing."])]) ! ### Check for pcre regex library. ! REGEX_LIBS= ! pcre_fail_msg="to build Octave, you must have the PCRE library and header files installed" ! ! ## NB: no need to do separate check for pcre.h header -- checking ! ## macros is good enough ! AC_CACHE_CHECK([whether pcre.h defines the macros we need], ! [ac_cv_pcre_h_macros_present], ! [AC_EGREP_CPP([PCRE_HAS_MACROS_WE_NEED], [ #include #if defined (PCRE_INFO_NAMECOUNT) \ && defined (PCRE_INFO_NAMEENTRYSIZE) \ && defined (PCRE_INFO_NAMETABLE) PCRE_HAS_MACROS_WE_NEED #endif], ac_cv_pcre_h_macros_present=yes, ac_cv_pcre_h_macros_present=no)]) ! if test $ac_cv_pcre_h_macros_present = yes; then ! ## check for pcre-config, and if so, set XTRA_CXXFLAGS appropriately ! AC_CHECK_PROG(HAVE_PCRE_CONFIG, pcre-config, [yes], [no]) ! if test $HAVE_PCRE_CONFIG = yes; then ! XTRA_CXXFLAGS="$XTRA_CXXFLAGS `pcre-config --cflags`" ! REGEX_LIBS="`pcre-config --libs`" else ! REGEX_LIBS="-lpcre" fi save_LIBS="$LIBS" LIBS="$REGEX_LIBS $LIBS" ! AC_CHECK_FUNCS(pcre_compile, ! [AC_SUBST(REGEX_LIBS)], ! [AC_MSG_ERROR([$pcre_fail_msg])]) LIBS="$save_LIBS" else ! AC_MSG_ERROR([$pcre_fail_msg]) fi ### Check for ZLIB library. OCTAVE_CHECK_LIBRARY(z, ZLIB, *************** *** 914,934 **** esac AC_MSG_CHECKING([for OpenGL support in FLTK]) ! cat > conftest.cc < ! int nothing=0; ! EOF ! $CXX $CXXFLAGS $FLTK_CFLAGS -c conftest.cc || \ ! warn_fltk_opengl="FLTK does not have OpenGL support. Native graphics will be disabled." ! if test -z "$warn_fltk_opengl"; then - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_FLTK, 1, [Define if FLTK is available]) GRAPHICS_CFLAGS="$FLTK_CFLAGS" GRAPHICS_LIBS="$FLTK_LDFLAGS" - else - AC_MSG_RESULT(no) fi fi fi --- 897,919 ---- esac AC_MSG_CHECKING([for OpenGL support in FLTK]) ! save_CFLAGS="$CFLAGS" ! CFLAGS="$CFLAGS $FLTK_CFLAGS" ! AC_COMPILE_IFELSE( ! [AC_LANG_PROGRAM([[#include ]], [[int nothing = 0;]])], ! [ ! AC_MSG_RESULT([no]) ! warn_fltk_opengl="FLTK does not have OpenGL support. Native graphics will be disabled." ! ],[ ! AC_DEFINE(HAVE_FLTK, 1, [Define if FLTK is available]) ! AC_MSG_RESULT([yes]) ! ]) ! if test -z "$warn_fltk_opengl"; then GRAPHICS_CFLAGS="$FLTK_CFLAGS" GRAPHICS_LIBS="$FLTK_LDFLAGS" fi + CFLAGS="$save_CFLAGS" fi fi *************** *** 978,983 **** --- 963,1026 ---- ## Restore FFLAGS. FFLAGS="$save_FFLAGS" + ## Try again with -ff2c in FFLAGS + if test "x$ax_blas_f77_func_ok" = "xno"; then + save_FFLAGS="$FFLAGS" + FFLAGS="-ff2c $FFLAGS $F77_INTEGER_8_FLAG" + + AX_BLAS_WITH_F77_FUNC([:], [:]) + AX_LAPACK([:], [:]) + + ## Restore FFLAGS, with -ff2c if that was helpful + + if test "x$ax_blas_f77_func_ok" = "xno"; then + FFLAGS="$save_FFLAGS" + else + FFLAGS="-ff2c $save_FFLAGS" + fi + fi + + ## On OSX, try again with a wrapper library (without -ff2c!) + if test "x$ax_blas_f77_func_ok" = "xno"; then + case "$canonical_host_type" in + *-*-darwin*) + ## test if wrapper functions help + octave_blaswrap_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -DUSE_BLASWRAP" + AC_LANG_PUSH(C) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([ + #include "libcruft/misc/blaswrap.c" + ])], + [mv conftest.$ac_objext blaswrap.$ac_objext + octave_blaswrap_save_BLAS_LIBS="$BLAS_LIBS" + BLAS_LIBS="blaswrap.$ac_objext -framework vecLib" + + save_FFLAGS="$FFLAGS" + FFLAGS="$FFLAGS $F77_INTEGER_8_FLAG" + + AX_BLAS_WITH_F77_FUNC([:], [:]) + AX_LAPACK([:], [:]) + + ## Restore FFLAGS. + FFLAGS="$save_FFLAGS" + + ## remove temp file + rm -f blaswrap.$ac_objext], + [AC_MSG_FAILURE([cannot compile libcruft/misc/blaswrap.c])]) + AC_LANG_POP(C) + CFLAGS="$octave_blaswrap_save_CFLAGS" + + if test "x$ax_blas_f77_func_ok" = "xno"; then + BLAS_LIBS="$octave_blaswrap_save_BLAS_LIBS" + else + ## wrapper in libcruft, remove from BLAS_LIBS + BLAS_LIBS="`echo $BLAS_LIBS | sed -e 's/blaswrap.[[^ ]]* //g'`" + AC_DEFINE(USE_BLASWRAP, [1], [Define this if BLAS functions need to be wrapped (potentially needed for 64-bit OSX only).]) + fi + ;; + esac + fi + if test "x$ax_blas_f77_func_ok" = "xno"; then if $USE_64_BIT_IDX_T && test "$ax_blas_integer_size_ok" = "no" ; then ## Attempt to be more informative. *************** *** 1204,1210 **** SHLLIB_VER='$(version).$(SHLLIB)' NO_OCT_FILE_STRIP=true SONAME_FLAGS='-install_name $(octlibdir)/$@' ! library_path_var=DYLD_LIBRARY_PATH ;; *-*-cygwin*) CPICFLAG= --- 1247,1253 ---- SHLLIB_VER='$(version).$(SHLLIB)' NO_OCT_FILE_STRIP=true SONAME_FLAGS='-install_name $(octlibdir)/$@' ! library_path_var=DYLD_LIBRARY_PATH ;; *-*-cygwin*) CPICFLAG= *************** *** 1601,1620 **** case "$canonical_host_type" in *-*-msdosmsvc | *-*-mingw*) AC_MSG_CHECKING([for required _WIN32_WINNT]) ! AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[ #include #if _WIN32_WINNT < 0x0403 #error "Wrong version" ! #endif]], []), AC_MSG_RESULT([none]), [ ! AC_DEFINE(_WIN32_WINNT, 0x0403, [Define to 0x0403 to access InitializeCriticalSectionAndSpinCount]) ! AC_MSG_RESULT([0x0403])]) AC_MSG_CHECKING([whether _USE_MATH_DEFINES needs to be defined]) ! AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[#include ]], ! [[int x = M_LN2;]]), AC_MSG_RESULT([no]), [ ! AC_DEFINE(_USE_MATH_DEFINES, 1, [Define if your system needs it to define math constants like M_LN2]) ! AC_MSG_RESULT([yes])]) ;; esac --- 1644,1663 ---- case "$canonical_host_type" in *-*-msdosmsvc | *-*-mingw*) AC_MSG_CHECKING([for required _WIN32_WINNT]) ! AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #if _WIN32_WINNT < 0x0403 #error "Wrong version" ! #endif]], [])], AC_MSG_RESULT([none]), [ ! AC_DEFINE(_WIN32_WINNT, 0x0403, [Define to 0x0403 to access InitializeCriticalSectionAndSpinCount]) ! AC_MSG_RESULT([0x0403])]) AC_MSG_CHECKING([whether _USE_MATH_DEFINES needs to be defined]) ! AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], ! [[int x = M_LN2;]])], AC_MSG_RESULT([no]), [ ! AC_DEFINE(_USE_MATH_DEFINES, 1, [Define if your system needs it to define math constants like M_LN2]) ! AC_MSG_RESULT([yes])]) ;; esac diff -cNr octave-3.4.0/doc/ChangeLog octave-3.4.1/doc/ChangeLog *** octave-3.4.0/doc/ChangeLog 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/ChangeLog 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,2918 **** - 2011-02-06 John W. Eaton - - * interpreter/contributors.in: Add Fotios Kasolis to the list. - - 2010-02-05 Rik - - * interpreter/doccheck/mk_undocumented_list: Add dbnext, alias for - dbstep, to functions not requiring a docstring. - - 2010-02-05 Rik - - * interpreter/doccheck/aspell-octave.en.pws: Add new spelling - exceptions to Octave private dictionary. - - 2010-02-05 Rik - - * interpreter/octave.texi: Update copyright on manual to 2011. - - 2010-02-05 Rik - - * interpreter/mkoctfile.1, interpreter/octave-config.1, - interpreter/octave.1: Overhaul man pages for release 3.4. - - 2010-02-04 Rik - - * icons/octave-logo.ico: Add logo format left out of last changeset. - - 2010-02-04 Rik - - * icons/: New directory for icons and .desktop files. - * icons/octave-logo.png, icons/octave-logo.svg: Add new Octave O logo - to Mercurial. - * Makefile.am: New Makefile to build .desktop file and distribute logos. - * octave.desktop.in, octave-sombrero.png: Moved from examples directory. - * octave_branding_samples.svg: Original logos and branding material for - Octave. This file is not distributed. - - * interpreter/octave.texi: Use new O logo on title page. - * interpreter/octave_logo.eps: O logo in eps form for Postscript output. - * interpreter/octave_logo.pdf: O logo in pdf form for pdf output. - - 2011-01-30 Rik - - * interpreter/Makefile.am: Use pattern-style rules to make .texi files - rather than older suffix-style rules. - - 2011-01-30 Rik - - * interpreter/octave.texi: Add new section - "Customizing Toolkit Behavior" - - * interpreter/plot.txi: Add functions gnuplot_binary, mouse_wheel_zoom, - and gui_mode to new section. - - 2011-01-30 Rik - - * interpreter/optim.txi: Deprecate glpkmex function and remove - from documentation. - - 2011-01-30 John W. Eaton - - * interpreter/install.txi (Compiling Octave with 64-bit Indexing): - Remove info about ARPACK. - - 2011-01-29 Rik - - * interpreter/octave.texi: Add new subsection on FLTK interaction. - * interpreter/plot.txi: Add fltk_gui_mode, fltk_mouse_wheel_zoom - functions to documentation. - - 2011-01-29 Rik - - * interpreter/arith.txi: Add accumdim function to documentation. - - 2011-01-29 Rik - - * interpreter/set.txi: Add powerset function to documentation. - - 2011-01-29 Rik - - * interpreter/system.txi: Add S_ISSOCK function to documentation. - - 2011-01-29 Rik - - * interpreter/system.txi: Add S_ISBLK and related functions to - documentation. - - 2011-01-29 Rik - - * interpreter/optim.txi: Add glpkmex function to documentation. - - 2011-01-29 Rik - - * interpreter/system.txi: Add compare_versions function to - documentation. - - 2011-01-27 Rik - - * interpreter/numbers.txi: Add sizemax function to documentation. - * interpreter/doccheck/mk_undocumented_list: Add ifelse to functions - not requiring documentation. - - 2011-01-27 Rik - - * interpreter/image.txi: Add whitebg function to documentation. - * interpreter/plot.txi: Add reset function to documentation. - - 2011-01-27 Rik - - * interpreter/linalg.txi: Add rsf2csf to documentation. - - 2011-01-27 Rik - - * interpreter/geometry.txi: Add trisurf to documentation. - - 2011-01-27 John W. Eaton - - * interpreter/arith.txi (Rational Approximations): Move here. - Update menu. - * interpreter/io.txi: From here. - Update menu. - * interpreter/octave.texi (Top): Update detailed menu. - - 2011-01-26 John W. Eaton - - * interpreter/mk_doc_cache.m, interpreter/mkoctfile.1, - interpreter/munge-texi.cc, interpreter/doccheck/mk_undocumented_list: - Strip trailing whitespace. - - 2011-01-26 Rik - - * interpreter/basics.txi: Use @code to eliminate extra single quotes - in index. - * interpreter/container.txi: Add @opindex citations for '.', '{' and - '}'. - - 2011-01-26 Rik - - * interpreter/octave-bug.1: Delete obsolete man page - * interpreter/Makefile.am: Stop distributing octave-bug.1 man page. - - 2011-01-26 Olaf Till - - * interpreter/package.txi: Document variables MKOCTFILE, - OCTAVE_CONFIG, and OCTAVE exported by pkg for configure and make. - - 2011-01-25 Rik - - * Makefile.am: Remove pass-through rules for AUTHORS, BUGS, and - INSTALL.OCTAVE which are no longer required. - - 2011-01-24 Rik - - * Makefile.am, interpreter/Makefile.am: Add rule to build AUTHORS file. - * interpreter/preface.txi: Add @ifclear rule to build AUTHORS file. - - 2011-01-23 Rik - - * interpreter/install.txi: Redo build instructions for release 3.4. - * interpreter/doccheck/aspell-octave.en.pws: Add new words to - Octave private dictionary from install.txi - - 2011-01-20 Rik - - * doc/interpreter/diagperm.txi, doc/interpreter/linalg.txi, - doc/interpreter/sparse.txi: Use non-breaking spaces between certain - adjectives and their linked nouns in docstrings. - - 2011-01-20 Rik - - * doc/interpreter/doccheck/README: Update documentation for - documentation scripts. - - 2011-01-20 Rik - - * doc/interpreter/doccheck/aspell-octave.en.pws, - doc/interpreter/plot.txi: Use @nospell macro on certain words in - docstring. - - 2011-01-20 John W. Eaton - - * faq/OctaveFAQ.texi, interpreter/doccheck/aspell-octave.en.pws, - interpreter/octave.texi, interpreter/plot.txi: Update for - backend -> graphics_toolkit change. - - * interpreter/interpimages.m, interpreter/geometryimages.m, - interpreter/sparseimages.m, interpreter/plotimages.m: - Call graphics_toolkit, not backend. - - 2011-01-19 Rik - - * interpreter/doccheck/aspell-octave.en.pws: Add new words to Octave - private dictionary. - - 2011-01-19 Rik - - * doc/interpreter/diagperm.txi, doc/interpreter/dynamic.txi, - doc/interpreter/func.txi, doc/interpreter/install.txi, - doc/interpreter/intro.txi, doc/interpreter/numbers.txi, - doc/interpreter/oop.txi, doc/interpreter/plot.txi, - doc/interpreter/sparse.txi, doc/interpreter/stats.txi: Grammarcheck - txi files for 3.4 release. - - 2011-01-17 Rik - - * interpreter/quad.txi: Add quadcc to documentation. - - 2011-01-15 Rik - - * interpreter/expr.txi: Add merge/ifelse function to documentation. - - 2011-01-15 Rik - - * interpreter/func.txi, interpreter/intro.txi: Eliminate - @deffn macros. - - 2011-01-15 Rik - - * interpreter/doccheck/mk_undocumented_list: Update list of exceptions - not requiring documentation. - - 2011-01-15 Rik - - * interpreter/stats.txi: Add stdnormal_xxx functions to documentation. - - 2011-01-14 Rik - - * interpreter/matrix.txi: Add undocumented postpad to documentation. - - 2011-01-14 Rik - - * interpreter/octave.texi, interpreter/poly.txi: Add undocumented - polyaffine to documentation. - - 2011-01-14 Rik - - * interpreter/container.txi: Add undocumented nfields to documentation. - - 2011-01-14 Rik - - * interpreter/poly.txi: Add undocumented ppder, ppint, ppjumps - functions to documentation. - - 2011-01-14 Rik - - * interpreter/system.txi: Add undocumented matlabroot to documentation. - - 2011-01-14 Rik - - * interpreter/linalg.txi: Add undocumented svd_driver to documentation. - - 2011-01-14 Rik - - * interpreter/arith.txi: Add undocumented cbrt to documentation. - - 2011-01-14 Rik - - * interpreter/arith.txi: Add undocumented erfcx to documentation. - - 2011-01-14 John W. Eaton - - * Update copyright notices for 2011. - - 2011-01-12 Rik - - * interpreter/basics.txi: Add to cursor movement section. - - 2011-01-12 John W. Eaton - - * interpreter/basics.txi (Commands For History): - Document history_control. - - 2011-01-10 John W. Eaton - - * interpreter/contributors.in: Add Konstantinos Poulios to the list. - - 2011-01-10 Jordi Gutiérrez Hermoso - - * interpreter/diagperm.txi: Remove Matlab euphemism. - * interpreter/dynamic.txi: Ditto. Also use @file macro for a - couple of filenames. - - 2011-01-10 John W. Eaton - - * interpreter/container.txi (Basic Usage and Examples): - Document print_struct_array_contents. - - 2011-01-05 Rik - - * interpreter/octave.texi: Put statistics detailmenu in correct order. - - 2011-01-05 Rik - - * interpreter/numbers.txi, interpreter/obsolete.txi, - interpreter/oop.txi, interpreter/stats.txi: Use @headitem macro to - create column heads for @multitable entries. - - 2011-01-05 Rik - - * interpreter/grammar.txi: Update list of keywords in grammar. - - 2011-01-05 John W. Eaton - - * interpreter/plot.txi (Introduction to Plotting): Formatting - and style fixes. Eliminate redundant example. - - 2011-01-03 Rik - - * interpreter/octave.texi: Add new menu item "Correlation and - Regression Analysis" - * interpreter/stats.txi: Update documentation chapter on - basic statistics. - - 2010-12-31 Rik - - * interpreter/expr.txi: Add isindex function to documentation - * interpreter/func.txi: Add isargout function to documentation - * interpreter/matrix.txi: Add isfinite function to documentation - * interpreter/numbers.txi: Add ishermitian function to documentation - - 2010-12-31 Kai Habel - - * interpreter/arith.txi: Add curl and divergence function. - - 2010-12-22 Tatsuro Matsuoka - - * nonlin.txi: Correct docs for using Jacobian with fsolve. - - 2010-12-22 Judd Storrs - - * interpreter/expr.txi: Insert operator function docstrings. - * interpreter/oop.txi: Remove conflicting anchors for operator - functions. Add cindex entries for overloaded operators. Add - overloads to opindex. - * interpreter/numbers.txi: Fix colon opindex. - - 2010-12-19 Rik - - * interpreter/func.txi, interpreter/sparse.txi: Remove documentation - on deprecated function dispatch. - - 2010-12-19 Rik - - * interpreter/Makefile.am: Update mk_undocumented_list target to use - $(srcdir) for portability. - - 2010-12-17 Rik - - * interpreter/container.txi, interpreter/func.txi, - interpreter/linalg.txi, interpreter/numbers.txi, - interpreter/signal.txi, interpreter/sparse.txi, interpreter/stats.txi, - interpreter/system.txi: Remove deprecated functions from manual. - - 2010-12-17 Rik - - * interpreter/doccheck/mk_undocumented_list: Update script to - automatically remove functions from the "test/" and "doc/interpreter" - directories. - - 2010-12-17 Rik - - * interpreter/Makefile.am: Add undocumented_list target to create list - of undocumented functions. - - 2010-12-17 John W. Eaton - - * interpreter/plot.txi (Two-Dimensional Plots): Document comet3. - - 2010-12-17 John W. Eaton - - * interpreter/plot.txi (Introduction to Graphics Structures): - Dcoument isprop. - - 2010-12-17 Rik - - * interpreter/oop.txi: Redo table rendered incorrectly in Info - environment. - - 2010-12-17 Rik - - * interpreter/numbers.txi: Remove obsolete documentation about 64-bit - integer arithmetic. - - 2010-12-16 Rik - - * interpreter/doccheck/mk_undocumented_list: Update list of exception - functions not requiring documentation. - - 2010-12-09 Doug Stewart - - * interpreter/plot.txi: changed origial to origin in Quiver section - - 2010-12-09 Kai Habel - - * interpreter/plot.txi: Add pie3 function. - - 2010-11-26 John W. Eaton - - * interpreter/install.txi (Compiling Octave with 64-bit - Indexing): New section. - - 2010-11-23 John W. Eaton - - * interpreter/install.txi: Delete obsolete statement about - needing a patch for makeinfo. - - 2010-11-18 John W. Eaton - - * interpreter/contributors.in: Add Christos Dimitrakakis to the list. - - 2010-11-18 John W. Eaton - - * interpreter/contributors.in: Add Daisuke Takago to the list. - - 2010-11-15 Rik - - * interpreter/bugs.txi, interpreter/emacs.txi, interpreter/func.txi, - interpreter/geometry.txi, interpreter/linalg.txi, - interpreter/octave.texi, interpreter/package.txi, interpreter/plot.txi, - interpreter/stmt.txi, interpreter/strings.txi, interpreter/system.txi: - Update info-based documentation menus to include new nodes. - - 2010-11-15 Rik - - * interpreter/octave.texi, interpreter/plot.txi: Rename subsection - "Printing Plots" to "Printing and Saving Plots". Add reference to - new saveas function. - - 2010-11-10 John W. Eaton - - * interpreter/munge-texi.cc: Eliminate special case for __DECCXX. - - 2010-11-01 Jordi Gutiérrez Hermoso - - * interpreter/numbers.txi: Explain that ranges in vectors do get - expanded. - - 2010-10-24 Rik - - * interpreter/doccheck/mk_undocumented_list: New verification - script produces a list of undocumented functions. - - 2010-10-23 John W. Eaton - - * interpreter/io.txi (Simple File I/O): Document textscan and - textread. - - 2010-10-23 Ben Abbott - - * interpreter/strings.txi: Add @DOCSTRING(strread). - - 2010-10-23 John W. Eaton - - * interpreter/io.txi (Opening and Closing Files): - Document is_valid_file_id. - - 2010-10-21 John W. Eaton - - * interpreter/contributors.in: Add Gunnar FarnebÀck to the list. - - 2010-10-18 John W. Eaton - - * interpreter/image.txi (Displaying Images): - Delete documentation for image_viewer. - - 2010-10-17 John W. Eaton - - * interpreter/strings.txi: Document untabify. - - 2010-09-30 John W. Eaton - - * interpreter/contributors.in: Add Jordi Gutiérrez Hermoso to - the list. Fix spelling of SÞren Hauberg. - - 2010-09-28 Rik - - * doc/interpreter/Makefile.am, doc/interpreter/geometryimages.m, - doc/interpreter/images.awk, doc/interpreter/interpimages.m, - doc/interpreter/plotimages.m, doc/interpreter/sparseimages.m: Use - Octave to create pdf versions of plots for documentation rather than - Ghostscript via Makefile. - - 2010-09-28 Rik - - * doc/interpreter/geometryimages.m, doc/interpreter/interpimages.m, - doc/interpreter/plotimages.m, doc/interpreter/sparseimages.m: Untabify - scripts. - - 2010-09-27 Rik - - * interpreter/mk_doc_cache.m: Use single quotes for regular expression - patterns where possible. - - 2010-09-25 Rik - - * interpreter/mk_doc_cache.m: Remove requirement for PCRE to build - doc cache. Correctly parse first sentence from docstrings with - multiple @deftypefn lines. - - 2010-09-15 John W. Eaton - - * interpreter/Makefile.am (EXTRA_DIST): Add images.awk to the list. - - 2010-08-15 Rik - - * interpreter/matrix.txi: Add documentation for randi function. - - 2010-08-13 Rik - - * interpreter/Makefile.am: Update @EXAMPLEFILE dependencies. - - 2010-08-10 Rik - - * interpreter/Makefile.am: Change dependency to $(srcdir)/images.mk. - - 2010-08-08 Rik - - * interpreter/Makefile.am: Add documentation dependency on images.mk. - * interpreter/config-images.sh: Create images.mk in passed in srcdir, - rather than pwd. - - 2010-08-08 Rik - - * interpreter/images.awk: HTML images depend on octave.html/index.html. - - 2010-08-01 Rik - - * interpreter/basics.txi, interpreter/contrib.txi, - interpreter/diagperm.txi, interpreter/dynamic.txi, interpreter/eos.txi, - interpreter/expr.txi, interpreter/geometry.txi, - interpreter/install.txi, interpreter/matrix.txi, - interpreter/numbers.txi, interpreter/oop.txi, interpreter/plot.txi, - interpreter/sparse.txi, interpreter/stats.txi, interpreter/testfun.txi, - interpreter/tips.txi: Grammarcheck documentation. Add @noindent lines - and ensure line length is less than 80. - - 2010-07-28 Rik - - * interpreter/arith.txi, interpreter/audio.txi, interpreter/basics.txi, - interpreter/container.txi, interpreter/contrib.txi, - interpreter/debug.txi, interpreter/diagperm.txi, - interpreter/diffeq.txi, interpreter/dynamic.txi, interpreter/emacs.txi, - interpreter/errors.txi, interpreter/eval.txi, interpreter/expr.txi, - interpreter/func.txi, interpreter/image.txi, interpreter/install.txi, - interpreter/interp.txi, interpreter/intro.txi, interpreter/io.txi, - interpreter/linalg.txi, interpreter/matrix.txi, interpreter/nonlin.txi, - interpreter/numbers.txi, interpreter/optim.txi, - interpreter/package.txi, interpreter/plot.txi, interpreter/poly.txi, - interpreter/quad.txi, interpreter/sparse.txi, interpreter/stmt.txi, - interpreter/strings.txi, interpreter/testfun.txi, interpreter/tips.txi, - interpreter/var.txi: Grammarcheck .txi documentation files. - - 2010-07-21 Jaroslav Hajek - - * interpreter/tips.txi: Update some tips. - - 2010-07-19 Rik - - * interpreter/mk_doc_cache.m: Use regexp rather than fussing with - character arrays. - - 2010-07-19 Rik - - * interpreter/matrix.txi: Add new function repelems to matrix chapter. - - 2010-07-18 Rik - - * interpreter/doccheck/spellcheck, - interpreter/doccheck/spellcheck/add_to_aspell_dict: - Use case insensitive sort in spellcheck scripts. - - 2010-07-18 Rik - - * interpreter/doccheck/aspell-octave.en.pws: Add Octave-specific words - from stats.texi to private Aspell dictionary. - - 2010-07-17 Rik - - * interpreter/doccheck: New directory for spelling/grammar scripts. - * interpreter/doccheck/README: Instructions for using scripts. - * interpreter/doccheck/spellcheck: Script to spellcheck a Texinfo file. - * interpreter/doccheck/aspell.conf: GNU Aspell configuration file for - Octave documentation. - * interpreter/doccheck/aspell-octave.en.pws: Private Aspell dictionary. - * interpreter/doccheck/add_to_aspell_dict: Script to add new - Octave-specific words to private Aspell dictionary. - * interpreter/octave.texi: New @nospell macro which forces Aspell to - ignore the word marked by the macro. - * interpreter/mk_doc_cache.m: Skip new @nospell macro when - building doc_cache. - * interpreter/arith.txi, interpreter/audio.txi, - interpreter/bugs.txi, interpreter/contrib.txi, - interpreter/debug.txi, interpreter/diagperm.txi, - interpreter/dynamic.txi, interpreter/geometry.txi, - interpreter/matrix.txi, interpreter/numbers.txi, - interpreter/oop.txi, interpreter/package.txi, - interpreter/sparse.txi, interpreter/tips.txi: - Spellcheck documentation. - - 2010-07-01 Rik - - * refcard/refcard.tex: Fix italic macro typo for stem. - - 2010-06-28 Rik - - * refcard/refcard.tex: Fix typos in refcard (bug #30260). - - 2010-06-16 Rik - - * ChangeLog: Correctly break lines > 80 characters. - - 2010-06-16 Rik - - * interpreter/intro.txi: Clarify wording. (bug #30165). - - 2010-06-16 Rik - - * interpreter/set.txi: Remove reference to deprecated function. - - 2010-06-16 Rik - - * interpreter/expr.txi, interpreter/func.txi, interpreter/install.txi, - interpreter/plot.txi, interpreter/sparse.txi: Periodic grammar check - of documentation to ensure a common format. - - 2010-05-27 Rik - - * interpreter/arith.txi, interpreter/diffeq.txi, interpreter/intro.txi, - interpreter/nonlin.txi, interpreter/poly.txi, interpreter/sparse.txi: - Replace @ifinfo with @ifnottex. - - 2010-05-07 John W. Eaton - - * basics.txi: Update list of internal variables for --traditional. - - 2010-05-02 Rik - - * interpreter/contrib.txi, interpreter/install.txi, - interpreter/plot.txi, interpreter/sparse.txi, - interpreter/octave.texi: Remove tabs causing problems with - pdf formatting. - - 2010-04-14 Shai Ayal - - * interpreter/plot.txi: Document keypress and mouse callback - properties - - 2010-04-07 John W. Eaton - - * interpreter/testfun.txi: Document runtests. - - 2010-03-24 John W. Eaton - - * interpreter/bugs.txi: Update for bug tracker. - - 2010-02-11 Jaroslav Hajek - - * interpreter/expr.txi: Mention no ternary operator and the ifelse - fucntion as a possible replacement. - - 2010-02-09 Jaroslav Hajek - - * interpreter/tips.txi: More tips. - - 2010-01-30 Jaroslav Hajek - - * interpreter/expr.txi (Assignment): Document return value of - multi-assignment with skipped values. - - 2010-01-29 John W. Eaton - - * interpreter/poly.txi (Derivatives and Integrals): - Don't include docstring for polyinteg. - - * interpreter/obsolete.txi (Obsolete Functions): - Remove weibcdf, weibinv, weibpdf, and weibrnd from the table. - - 2010-01-28 John W. Eaton - - * interpreter/obsolete.txi: New file. - * interpreter/Makefile.am (MUNGED_TEXI_SRC): Add it to the list. - * interpreter/octave.texi (Obsolete Functions): New menu item. - Include obsolete.texi. - - 2010-01-27 Jaroslav Hajek - - * interpreter/expr.txi: Document using dummy outputs. - * interpreter/func.txi: Document using dummy inputs. - - 2010-01-20 John W. Eaton - - * interpreter/munge-texi.cc: Delete Emacs local-variable settings. - Untabify. - - 2010-01-17 Thorsten Meyer - - * interpreter/container.txi (Creating Cell Arrays): Add - docstring for cellslices function. - - 2010-01-09 John W. Eaton - - * interpreter/munge-texi.cc: Avoid C-style casts. - (main): Call usage if fewer than two arguments. - - 2009-12-20 Rik - - * interpreter/geometryimages.m: Correctly set postscript output when - QHULL library does not exist and sombrero image is printed. - - 2009-12-19 Rik - - * Makefile.am, faq/Makefile.am, interpreter/Makefile.am, - liboctave/Makefile.am, refcard/Makefile.am, interpreter/images.awk: - Eliminate TOPDIR variable in favor of built-in automake variables of - top_builddir and top_srcdir. - - 2009-12-17 Rik - - * interpreter/Makefile.am: use automake syntax to build munge-texi. - - 2009-12-11 Rik - - * interpreter/Makefile.am: remove install-local target and use automake - syntax to install doc-cache file. - - 2009-12-10 Rik - - * interpreter/Makefile.am: Replace distdir-local with dist-hook rule as - it is better supported by automake. - - 2009-12-10 Rik - - * interpreter/Makefile.am: new distdir-local rule to check for presence - of necessary libraries before packaging distribution - - 2009-12-08 Rik - - * interpreter/Makefile.am: Distribute all generated documentation - (.pdf, .ps, .html, .dvi) to remove build requirement for TexInfo - - 2009-12-07 Rik - - * interpreter/Makefile.am, faq/Makefile.am, liboctave/Makefile.am: - Document use of NOTPARALLEL directive. - - 2009-12-07 Rik - - * refcard/Makefile.am: Add CLEANFILES and MAINTAINERCLEANFILES objects - to properly clean directory. - - 2009-12-05 Rik - - * interpreter/Makefile.am: Set dependency of *.texi files on - munge-texi source code rather than executable. - - 2009-12-04 Rik - - * interpreter/images.awk: Revert to using Ghostscript for documentation - pdf image creation rather than Octave. - - 2009-12-04 Rik - - * Makefile.am, interpreter/Makefile.am, liboctave/Makefile.am: remove - lingering configuration support for conf.texi. - * liboctave/Makefile.am: distribute .texi files. - - 2009-12-04 Rik - - * interpreter/geometryimages.m, interpreter/interpimages.m, - interpreter/sparseimages.m, interpreter/plotimages.m: - Switch to color output for PostScript documentation images. - - 2009-12-04 Rik - - * interpreter/geometryimages.m, interpreter/interpimages.m, - interpreter/sparseimages.m, interpreter/plotimages.m: - Set default paperorientation to landscape to stop warning message. - - 2009-12-04 Ben Abbott - - * interpreter/geometryimages.m, interpreter/interpimages.m, - interpreter/sparseimages.m: Set default papersize to the desired - imagesize. - - 2009-12-04 John W. Eaton - - * interpreter/images.awk: Emit rules to copy PNG files to - octave.html directory once it is created. - * interpreter/Makefile.am (all-local): Depend on $(HTMLDIR_IMAGES). - (IMAGES): Include $(HTMLDIR_IMAGES) in the list. - - 2009-12-04 John W. Eaton - - * interpreter/octave.texi: Include version.texi instead of conf.texi. - * interpreter/Makefile.am (../conf.texi): Delete rule. - (octave_TEXINFOS): Delete ../conf.texi from the list. - ($(srcdir)/octave.info octave.dvi octave.pdf octave.html): - Remove duplicate $(octave_TEXINFOS) dependency. - Depend on $(srcdir)/version.texi. - - * liboctave/liboctave.texi: Include version.texi instead of conf.texi. - * liboctave/Makefile.am (../conf.texi): Delete rule. - (dist_liboctave_TEXINFOS): Delete ../conf.texi from the list. - (.NOTPARALLEL): Correct spelling of target. - ($(srcdir)/liboctave.info liboctave.dvi liboctave.html liboctave.pdf): - Depend on $(srcdir)/version.texi - - * conf.texi.in: Delete. - * Makefile.am: Delete rules for conf.texi. - (.NOTPARALLEL): New target. - - 2009-12-03 John W. Eaton - - * doc/Makefile.am (MUNGED_TEXI_SRC): Define as explicit list. - (TXI_SRC): Define using substitution rule. - - * doc/Makefile.am (conf.texi): Only substitute OCTAVE_VERSION. - * conf.texi: Likewise. - - * doc/interpreter/find-docstring-files.sh: New file. - * doc/interpreter/Makefile.am (DOCSTRING_FILES): Use it. - ($(TOPDIR)/src/DOCSTRINGS, $(TOPDIR)/scripts/DOCSTRINGS): - Delete rules. - (.txi.texi): Pass $(top_srcdir) to munge-texi. - (octave.info octave.dvi octave.pdf octave.html): - Depend on $(octave_TEXINFOS), not $(nodist_octave_TEXINFOS). - (nodist_octave_TEXINFOS): Delete variable. - (octave_TEXINFOS): Include ../conf.texi in the list. - (dist-hook): Delete target. - (EXTRA_DIST): Add find-docstring-files.sh to the list. - - * doc/interpreter/basics.texi: Eliminate @value{OCTAVEHOME} - * doc/interpreter/dynamic.txi: Delete examplefile and - longexamplefile macro definitions. Replace uses with - @EXAMPLEFILE, to be expanded by munge-texi. - * doc/interpreter/geometry.txi: Eliminate @ifset HAVE_QHULL. - * doc/interpreter/oop.txi: Delete classfile and polynomialfile - macro definitions. Replace uses with @EXAMPLEFILE, to be expanded - by munge-texi. - * doc/interpreter/sparse.txi: Eliminate @ifset HAVE_CHOLMOD, - @ifset HAVE_UMFPACK, and @ifset HAVE_COLAMD. - - * munge-texi.cc (top_srcdir): New global variable. - (main): set top_srcdir from first arg. - (usage): Include TOP-SRCDIR in the message. - (recover_from_macro, process_example_file): New functions. - (process_texi_input_file): Handle @EXAMPLEFILE tag. - - * doc/liboctave/Makefile.am (nodist_liboctave_TEXINFOS): - Delete variable. - (liboctave_TEXINFOS): Include ../conf.texi in the list. - - 2009-12-02 Rik - - * interpreter/Makefile.am: Correct Makefile.am to allow VPATH builds of - documentation - - 2009-12-01 Rik - - * faq/Makefile.am, doc/interpreter/bugs.txi, - doc/interpreter/install.txi: Eliminate false dependency on conf.texi. - - 2009-11-30 Rik - - * interpreter/Makefile.am: - Overhaul Makefile to correctly generate *.texi files and to stop their - distribution when running 'make dist' - - 2009-11-30 John W. Eaton - - * interpreter/munge-texi.cc (process_texi_input_file): Double @ in - symbol_name used in @anchor. - (extract_docstring): Double @ in function name used in @ref. - - * interpreter/mk_doc_cache.m (cmd): Transform @ in class names to - @@ when processing DOCSTRINGS files. - - 2009-11-30 John W. Eaton - - * interpreter/Makefile.a (nodist_octave_TEXINFOS): Add - contributors.texi and $(MUNGED_TEXI_SRC) to the list. - (dist_octave_TEXINFOS): Delete. - (DISTCLEANFILES, all_octave_TEXINFOS): New variables. - ($(srcdir)/octave.info, octave.dvi, octave.pdf, octave.html): - Depend on $(all_octave_TEXINFOS), not $(octave_TEXINFOS). - (octave.ps): Depend on .dvi file and EPS files, but not .texi - source files. - - 2009-11-27 David Bateman - - * doc/interpreter/contributors.in: Add Kacper Kowalik. - - 2009-11-27 David Bateman - - * interpreter/install.txi: Document that curl libraries impact ftp - objects. - * interpreter/system.txi: Document the ftp objects - - 2009-11-25 Rik - - * interpreter/Makefile.am: - Simplify doc-cache handling in Makefile.am to use only - install-data-local target - - 2009-11-24 Rik - - * interpreter/Makefile.am: - Correct Makefile so that it halts on error when unable to build - doc-cache. - - 2009-11-23 Rik - - * faq/Makefile.am, interpreter/Makefile.am, liboctave/Makefile.am: - Stop distribution of conf.texi by autotools. conf.texi must be re-made - from conf.texi.in during configure step - - 2009-11-23 Rik - - * Makefile.am: Add . to SUBDIRS to force automake to compile this - directory, and make conf.texi, before recursively compiling SUBDIRS - which depend on conf.texi - - 2009-11-11 Rik - - * Makefile.am: Add DISTCLEANFILES macro so that generated conf.texi can - be cleaned by automake. - - 2009-11-10 John W. Eaton - - * Makefile.am, faq/Makefile.am, interpreter/Makefile.am, - liboctave/Makefile.am, refcard/Makefile.am, - interpreter/config-images.sh, interpreter/images, - interpreter/images.awk: New files. - * Makefile.in, faq/Makefile.in, interpreter/Makefile.in, - liboctave/Makefile.in, refcard/Makefile.in: Delete. - * interpreter/munge-texi.cc (main, usage): Eliminate unnecessary - -d option. - * liboctave/liboctave.texi: Surround @direntry in appropriate magic. - * faq/OctaveFAQ.texi: Rename from faq/Octave-FAQ.texi. - - 2009-10-23 Rik - - * various: Periodic grammar check of Octave documentation files to - ensure a standardized format. - - 2009-10-20 Rik - - * interpreter/Makefile.in: Clean Makefile.in and remove a few - non-functional targets - - 2009-10-13 Rik - - * various: Fix various incorrect usages of deffn and deftypefn macros - - 2009-10-12 Rik - - * liboctave/Makefile.in: Simplify Makefile using GNU Make functions - * liboctave/liboctave.texi: Stop header of file, which was meant to be - commented, from being transferred into the documentation. - - 2009-10-12 Rik - - * faq/Makefile.in: Clean a few non-functional commands from Makefile - - 2009-10-12 Rik - - * refcard/Makefile.in: Simplify Makefile using GNU Make functions - - 2009-10-11 Rik - - * Makefile.in: Include texmf.cnf in distributed files to fix texinfo - runtime error with stack overflow. - - 2009-10-11 Rik - - * intepreter/Makefile.in: Fix broken command to create octave.dvi - - 2009-10-08 Jaroslav Hajek - - * intepreter/linalg.txi: Add reference to luupdate. - - 2009-10-07 Jaroslav Hajek - - * interpreter/io.txi: Add reference to fskipl. - - 2009-09-30 John W. Eaton - - * interpreter/data.txi (Built-in Data Types): - Document bitpack and bitunpack. - * interpreter/plot.txi: Delete spurious {}. Update menus. Fix - cross-referencing. - * interpreter/octave.texi: Update plotting sub-menus in detailed menu. - - 2009-09-30 Michael D. Godfrey - - * interpreter/plot.txi: Document graphics structures. - - 2009-09-14 John W. Eaton - - * interpreter/optim.txi: Document pqpnonneg. - - 2009-08-27 Jaroslav Hajek - - * interpreter/expr.txi: Mention complex comparisons change. - - 2009-08-05 Jaroslav Hajek - - * interpreter/tips.txi: Update. - - 2009-07-20 John W. Eaton - - * interpreter/contributors.in: Add Aleksej Saushev. - - 2009-06-24 Rafael Laboissiere - - * Makefile.in (dist): Drop conf.texi as prerequisite. - - 2009-06-16 Jaroslav Hajek - - * interpreter/tips.txi: Update. - - 2009-06-07 Rik - - * interpreter/plot.txi: Update some of Advanced Plotting documentation. - Updated functions delete, allchild, backend, clf, hold, and refreshdata. - - 2009-06-07 Thorsten Meyer - - * interpreter/container.txi: Udate documentation of container types - - 2009-06-03 Rik - - * interpreter/plotimages.m: Correct errorbar plot for docs. Make hist - plot reprodroducible for docs. - * interpreter/interpimages.m: Correct typo in legend of interpft plot - for docs. - - 2009-06-03 Jaroslav Hajek - - * Makefile.in: Omit conf.texi in DISTFILES. - - 2009-06-02 Jaroslav Hajek - - * interpreter/oop.txi: Update docs of polynomial class, mention - chained indexing. - - 2009-05-27 Sᅵren Hauberg - - * interpreter/errors.txi: fix 'print_usage' output. - - 2009-05-27 Sᅵren Hauberg - - * interpreter/bugs.txi: fix call to 'page_screen_output'. - - 2009-05-25 Rik - - * interpreter/Makefile.in: Add texmf.cnf to list of distributed files - (DIST_FILES) so that pdfs will build. - - 2009-05-24 Robert T. Short - - * interpreter/oop.txi: Added inheritance documentatin - - 2009-05-21 Rik - - * interpreter/Makefile.in, texmf.cnf: Change texi2pdf call to include - local TeX configuration file which increases save_history variable. - - 2009-05-17 Rik - - * interpreter/tips.txi: Change recommendation to use @tex rather than - @iftex construction. - - 2009-05-17 Rik - - * interpreter/*.txi: Simplify TeXinfo files by eliminating redundant - @iftex followed by @tex construction. Also, spellchecked all .txi - and .texi files. - - 2009-05-14 Rik - - * interpreter/arith.txi: Update section 17.8 (Mathematical Consants) - of arith.txi. - - 2009-05-01 Rik - - * interpreter/arith.txi: Update section 17.7 (Coordinate - Transformations) of arith.txi. - - 2009-05-01 Rik - - * interpreter/arith.txi: Simplify TeXinfo and eliminate use of - @iftex in arith.txi. - - 2009-05-01 Rik - - * interpreter/arith.txi: Update section 17.5 (Utility Functions) - of arith.txi. - - 2009-04-30 Rik - - * interpreter/arith.txi: Update section 17.4 (Sums and Products) - of arith.txi. - - 2009-04-29 Jaroslav Hajek - - * interpreter/numbers.txi: Update info on ranges. - * interpreter/expr.txi: Update some info on indexing. - - 2009-04-26 Rik - - * interpreter/arith.txi: Update section 17.3 (Trigonometry) of - arith.txi. - - 2009-04-24 Rik - - * interpreter/arith.txi: Update section 17.2 (Complex Arithmetic) - of arith.txi. Use Tex in more of the doc strings for pretty - printing in pdf format. - - 2009-04-24 Rik - - * interpreter/octave.pdf: Eliminate most overfull errors when - running texi2pdf for generating pdf documentation. Use - @smallexample when necessary to reduce font for long lines. - Reword variables or phrases so that Tex can break them at a better - spot. - - 2009-04-21 Rik - - * interpreter/octave.pdf: Eliminate 'unbalanced parentheses in - @def...' error during texi2pdf. Fixed four .m files incorrectly - using @deftypefn macro. - - 2009-04-19 Ansgar Burchardt - - * interpreter/numbers.txi: Fix small mistake in example. - - 2009-04-17 Rik - - * interpreter/arith.txi: Update section 17.1 (Utility Functions) - of arith.txi. Split section into "Exponents and Logarithms" and - "Utility Functions" Use Tex in many more of the doc strings for - pretty printing in pdf format. - - 2009-04-17 Rik - - * interpreter/basics.txi: Update help text for sections 2.5, 2.6, 2.7 - of basics.txi - - 2009-04-17 Rik - - * interpreter/basics.txi: Update help text for sections 2.4 of - basics.txi. - - 2009-04-17 Rik - - * interpreter/basics.txi: Update help text for sections 2.2 - and 2.3 of basics.txi. - - 2009-04-17 Rik - - * interpreter/basics.txi: Update help strings for command line options. - - 2009-04-11 David Bateman - - * interpreter/contributors.in: Add Martin Helm. - - 2009-04-06 John W. Eaton - - * texinfo.tex: Prefer PDF image files if generating PDF output. - - 2009-03-27 Rik - - * interpreter/intro.txi: Add new sample section on elementary - calculations. Add new example of solving systems of equations - - 2009-03-27 Jaroslav Hajek - - * interpreter/diagperm.txi: Mention mixing with sparse matrices. - - 2009-03-25 John W. Eaton - - * interpreter/munge-texi.cc (process_texi_input_file): - Copy leading comment with file name info to output. - - 2009-03-09 John W. Eaton - - * interpreter/Makefile.in (DISTFILES): Use doc-cache instead of - DOC for doc cache file. - - 2009-03-08 Sᅵren Hauberg - - * interpreter/stats.txi (Basic Statistical Functions): - Add the 'histc' function. - - 2009-03-07 John W. Eaton - - * interpreter/basics.txi (Command Line Options): - Document --doc-cache-file command-line option. - - 2009-03-06 Jaroslav Hajek - - * interpreter/diagperm.txi: Various improvements. - - 2009-02-27 John W. Eaton - - * interpreter/set.txi (Sets): Don't document create_set. - - 2009-02-26 John W. Eaton - - * interpreter/strings.txi (Manipulating Strings): - Document strsplit, not split. - - 2009-02-25 John W. Eaton - - * interpreter/Makefile.in (distclean): Remove tags and TAGS here - instead of in maintainer-clean target. - (maintainer-clean): Depend on distclean, not clean. Remove DOC. - (DISTFILES): Add stmp-html to the list. - - * Makefile.in: Remove conf.texi in maintainer-clean target but not - distclean target. - - 2009-02-24 Jaroslav Hajek - - * interpreter/diagperm.txi: Remove redundant url references. - - 2009-02-23 Jaroslav Hajek - - * interpreter/diagperm.txi: Use TeX alternatives in some - formulas, improve examples, delete superfluous defs. - - 2009-02-23 Jaroslav Hajek - - * interpreter/diagperm.txi: New file. - * interpreter/octave.texi: Reference it. - * intepreter/Makefile.in: Include it. - * interpreter/matrix.txi: Move @DOCSTRING(diag) to diagperm.txi. - - 2009-02-19 John W. Eaton - - * doc/interperter: Include @DOCSTRING commands for the following - functions: bicgstab, cgs, choldelete, cholinsert, cholshift, - clabel, comet, command_line_path, compass, contour3, ctranspose, - cylinder, dellistener, diffuse, edit, ellipsoid, fclear, feather, - fill, find_dir_in_path, finite, flag, info, is_absolute_filename, - is_rooted_relative_filename, isdebugmode, ishghandle, isnull, - issorted, make_absolute_filename, meshz, news, - octave_tmp_file_name, optimget, pareto, plotmatrix, plotyy, - qrshift, quiver3, re_read_readline_init_file, ribbon, rose, - rundemos, scatter, scatter3, slice, specular, sphere, spinmap, - stem3, strchr, strtrim, surfl, surfnorm, times, transpose, - treelayout, uminus, uplus, warranty, what, xlim, yes_or_no. - - 2009-02-17 Thomas Treichl - - * interpreter/install.txi: Add documentation for configure options - "--without-framework-carbon" and "--without-framework-opengl". - - 2009-02-17 Jaroslav Hajek - - * interpreter/arith.txi: Add reference to "cummin" and "cummax". - - 2009-02-11 John W. Eaton - - * interpreter/Makefile.in (uninstall): Use $(DESTDIR) here too. - Uninstall Info dir file. Uninstall DOC file. - (install): Install DOC file. Add $(DESTDIR)$(octetcdir) to the - list of directories to make. - - 2009-02-10 John W. Eaton - - * interpreter/Makefile.in (DOC): New target. - (DISTFILES): Add DOC nad mk_doc_cache.m to the list. - * mk_doc_cache.m: New file. - - 2009-02-01 Sᅵren Hauberg - - * interpreter/nonlin.txi: Remove reference to 'fsolve_options'. - - 2009-02-01 Sᅵren Hauberg - - * interpreter/system.txi: Remove reference to 'eomdate'. - - 2009-01-24 Thorsten Meyer - - * interpreter/container.txi (Data Structures): Update examples for - structure arrays. - - 2009-01-22 John W. Eaton - - * interpreter/io.txi (Terminal Output): Remove @DOCSTRING(ans). - - * vr-idx.txi: Delete. - * interpreter/Makefile.in (SUB_SOURCE): Remove it from the list. - - 2009-01-22 Sᅵren Hauberg - - * interpreter/func.txi: Put varargin and varargout in concept index. - * interpreter/var.txi: Put ans in concept index. - * interpreter/octave.texi: Don't include vr-idx.texi. - - * interpreter/var.txi: Remove sections on built-in variables. - - 2009-01-20 John W. Eaton - - * interpreter/system.txi (Filesystem Utilities): @DOCSTRING for - fstat. Delete @DOCSTRING for lstat. Add anchor for doc-lstat. - - 2009-01-18 Thorsten Meyer - - * interpreter/numbers.txi (Numeric Data Types): Trivial fixes. - - 2009-01-14 Thorsten Meyer - - * interpreter/matrix.txi: Add anchor for doc-postpad. - - 2008-12-26 Thorsten Meyer - - * interpreter/strings.txi: Add space to ischar example. - - 2008-12-26 Francesco Potortì - - * interpreter/matrix.txi (Rearranging Matrices): Add reference - to resize function. - - * interpreter/plot.txi (Plot Annotations): Add cross reference to - Text Properties. - (Two-Dimensional Plots): Update introduction to the axis function. - - * interpreter/signal.txi (Signal Processing): Add explanation of - what wisdom is. - - 2008-12-23 David Bateman - - * interpreter/sparse.txi: Document the eigs and svds functions. - - 2008-12-02 Thorsten Meyer - - * interpreter/container.txi, interpreter/strings.txi: - Remove reference to str2mat.m - - 2008-11-15 Thorsten Meyer - - * interpreter/strings.txi: Add text around docstrings, change - structure of the strings chapter. - - 2008-10-31 John W. Eaton - - * interpreter/Makefile.in ($(TEXINFO)): Depend directly on - ../../src/DOCSTRINGS and ../../scripts/DOCSTRINGS instead of phony - src-DOCSTRINGS and scripts-DOCSTRINGS targets. - (src-DOCSTRINGS, scripts-DOCSTRINGS): Delete. - (DOCSTRING_FILES): New variable. - ($(SUB_TEXFINO)): Use it. Display actual command. - ($(DOCSTRING_FILES)): New target. - (%.spell : %.texi): Use -t suffix instead of .tmp. - (constributors.texi, $(SUB_TEXINFO)): Use mv, instead of - $(simple-move-if-change-rule). - - 2008-10-30 David Bateman - - * faq/Octave-FAQ.texi: Document improved indexing and add an faq for - the compatibility of mldivide/mrdivide for singualr, under- and - over-determined matrices. - - * interpreter/plot.txi: Document contour groups. - - 2008-10-29 Thorsten Meyer - - * interpreter/system.txi, interpreter/poly.txi, - interpreter/arith.txi, interpreter/poly.txi, - interpreter/optim.txi, interpreter/diffeq.txi, - interpreter/sparse.txi, interpreter/matrix.txi, - interpreter/plot.txi, interpreter/io.txi, interpreter/debug.txi, - interpreter/var.txi, interpreter/strings.txi: - Add missing @DOCSTRING commands. - - * interpreter/munge-texi.cc (extract_docstring): Expand arguments - of @seealso{} into Texinfo references. - - 2008-10-22 David Bateman - - * interprter/plot.txi: Add documentation for error bar series. - - * interprter/plot.txi: Update documentation for line series, Add - documetation for scatter groups, stem series and surface groups. - - * texinfo.tex: Import new upstream version. - * interpreter/Makefile.in (EXAMPLE_FILES_NODIR): Update for new OOP - class example location. - * interpreter/oop.txi: Ditto. - - 2008-10-15 David Bateman - - * interpreter/oop.txi: New file. - * interpreter/Makefile.in (SUB_SOURCES): Add it here. - (POLYNOMIAL_FILES_NODIR): New varaible for polynomial example class - methods. - (EXAMPLE_FILES_NODIR): Add POLYNOMIAL_FILES_NODIR here. - * interpreter/octave.texi: Reference new OOP chapter here. - * interpreter/func.txi: Document private directories and function - precedence here. - - 2008-10-16 Thorsten Meyer - - * interpreter/contrib.txi: added recommendation of limited - line width in code examples - - 2008-10-03 Thorsten Meyer - - * interpreter/contrib.txi: added example for mercurial queues - - 08-10-03 Thorsten Meyer - - * interpreter/contrib.txi: correction of the mercurial example - * interpreter/container.txi: minor correction of the text - - 2008-09-25 Sᅵren Hauberg - - * interpreter/image.txi: Update for imread and imwrite instead of - loadimge and saveimage. - - 2008-09-24 Sᅵren Hauberg - - * interpreter/image.txi: Document imfinfo. - - 2008-09-23 Francesco Potorti` . - - * interpreter/container.txi: Fix cross reference in struct docs. - - 2008-09-23 Brian Gough - - * interpreter/matrix.txi: Update docs for random number generators. - - 2008-09-22 David Bateman - - * faq/Octave-FAQ.texi: Update for Octave 3.1.51 and Matlab 2008a. - - 2008-09-15 David Bateman - - * interpreter/sparse.txi: Minor clarificiation - - 2008-08-28 John W. Eaton - - * interpreter/func.txi, interpreter/plot.txi: Doc fixes - suggested by Francesco Potorti` . - - 2008-08-28 David Bateman - - * interpreter/plot.txi: Add description of data sources and line - series objects. - - 2008-08-26 David Bateman - - * interpreter/plot.txi: Document the group objects (bar, stem, - stair, quiver and area series), and cllback functions. - - 2008-08-26 Jaroslav Hajek - - * interpreter/contrib.txi: New file. - * interpreter/octave.texi: Include it here. - * interpreter/Makefile.in (SUB_SOURCE): Add contrib.txi to the list. - - 2008-08-21 David Bateman - - * interpreter/plot.txi: Document ezplot. - - 2008-08-19 David Bateman - - * interpreter/numbers.txi: Document intwarning. - - 2008-08-06 Sᅵren Hauberg - - * interpreter/basics.txi, interpreter/errors.txi, - interpreter/expr.txi, interpreter/func.txi, - interpreter/numbers.txi: Update format of error messages in examples. - - 2008-07-29 David Bateman - - * interpreter/numbers.txi, interpreter/plot.txi, - interpreter/quad.txi: Miscellaneous documentation fixes. - - * control.txi, finance.txi, quaternion.txi: Delete. - * octave.texi: Remove all references to the above. - * Makefile.in: ditto. - - 2008-07-28 David Bateman - - * interpreter/arith.txi: Document reallog, realpow and realsqrt. - * interpreter/dbug.txi: Document the means of setting a breakpoint - in a sub-function - * interpreter/func.txi: Document nargoutchk and symvar. - * interpreter/geometry.txi: Document rectint. - * interpreter/image.txi: Document contrast. - * interpreter/interp.txi: Document interp1q. - * interpreter/linalg.txi: Document planerot, rcond and subspace. - * interpreter/numbers.txi: Document data type demotion and single - precision data type. - * interpreter/plot.txi: Document ginput, gtext, - waitforbuttonpress, ezcontour, ezcontourf, ezpolar, ezplot3, - ezmesh, ezmeshc, ezsurf, ezsurfc, allchild, findobj and findall - functions. - * interpreter/quad.txi: Document quadv, quadgk, dblquad and - triplequad functions. - * interpreter/strings.txi: Document validstring, regexptranslate - and isstrprop functions. - * interpreter/system.txi: Document addtodate, filemarker and perl - functions. - * interpreter/var.txi: Document the genvarname and namelengthmax - functions. - * interpreter/octave.texi: Update table of contents for the above - changes. - - * interpreter/plot.txi: Document contourf. - - * interpreter/plot.txi: Clarify the description of OuterPosition - axes property. - - 2008-05-20 David Bateman - - * interpreter/debug.txi: Uodate documentation for multiline - input. Add documentation for dbcont, dbquit, dbstep, dbstqck, dbup - and dbdown functions. - * interpreter/octave.texi: Upodate index for debugging functions. - - 2008-05-03 Rafael Laboissiere - - * interpreter/expr.txi, interpreter/tips.txi: Use ischar instead of - deprecated isstr. - - 2008-04-02 David Bateman - - * interpreter/sparse.txi: Document spaugment. - - 2008-03-26 Rafael Laboissiere - - * interpreter/mkoctfile.1: Remove spurious whitespace before macros - - 2008-03-25 David Bateman - - * interpreter/strings.txi: Document hex2num, num2hex. - - 2008-03-21 David Bateman - - * interpreter/sparse.txi: Document amd function. - - 2008-03-19 Michael D. Godfrey - - * interpreter/plot.txi: Reorder symbol character table. - - 2008-03-18 Rafael Laboissiere - - * interpreter/octave.1, interpreter/mkoctfile.1: - Escape "-" signs that mean the "minus" character. - - 2008-03-12 David Bateman - - * interpreter/io.txi: Document dlmread, dlmwrite, csvread and - csvwrite. - - 2008-02-25 Ben Abbott - - * interpreter/geometryimages.m, interpreter/interpimages.m, - interpreter/plotimages.m, interpreter/sparseimages.m: - Use cstrcat instead of strcat. - - 2008-02-22 David Bateman - - * interpreter/sparse.txi: Remove refernces to spdiag, spcumprod, - spcumsum, spprod, spsum, spsumsq, spchol, spchol2inv, spcholinv, - spinv and splu. - - 2008-02-20 David Bateman - - * interpreter/sparse.txi: Remove references to spmin, spmax, - spatan2, spfind, spqr and spdet. - - 2008-02-19 Carlo de Falco - - * interpreter/package.txi: Improve INDEX file documentation. - - 2008-01-18 Ben Abbott - - * interpreter/intro.txi: Replaced reference to deprecated - function struct_elements with filenames. - - 2008-02-08 Rafael Laboissiere - - * interpreter/octave.1: Dropped unknow LO macro - * interpreter/octave-bug.1: Likewise - - 2008-02-07 David Bateman - - * interpreter/sparse.txi: Remove references to spkron. - - 2008-02-06 John W. Eaton - - * interpreter/Makefile.in (stmp-html, HTML): New targets. - ($(HTML_IMAGES_PNG)): Also depend on stmp-html. - Don't create HTML directory here. - - 2007-12-28 John W. Eaton - - Merge changes from object branch: - - 2007-06-20 John W. Eaton - - * interpreter/var.txi, interpreter/io.txi: - Eliminate print_answer_id_name. - - 2007-12-21 John W. Eaton - - Version 3.0.0 released. - - 2007-12-13 John W. Eaton - - * Makefile.in (conf.texi): Also depend on $(top_srcdir)/src/version.h. - - 2007-12-05 John W. Eaton - - * interpreter/geometryimages.m (image_as_txt): New function. - Use it to generate "figures" for Info format. - * interpreter/interpimages.m: Likewise. - * interpreter/sparseimages.m: Likewise. - - 2007-12-04 John W. Eaton - - * interpreter/sparseimages.m, interpreter/plotimages.m, - interpreter/interpimages.m, interpreter/geometryimages.m: - Set default text font to "*" for png images. - - * interpreter/Makefile.in (run-octave): Don't sleep. - - 2007-12-04 Joseph P. Skudlarek - - * interpreter/plotimages.m: Generate text plots. - * interpreter/sparseimages.m: Add initial blank line to text plots. - - * interpreter/Makefile.in (IMAGES_TXT): Include $(INTERPIMAGES_TXT) - $(GEOMETRYIMAGES_TXT) and $(PLOTIMAGES_TXT) in the list. - (INTERPIMAGES_TXT, GEOMETRYIMAGES_TXT, PLOTIMAGES_TXT): New variables. - - 2007-11-26 David Bateman - - * interpreter/sparse.txi: Document condest. - * interpreter/plot.txi: Document the new text properties and the - TeX interpreter mode of text objects. - * interpreter/plotimages.m: Add an example for the TeX - interpreter. - * interpreter/Makefile.in (PLOTIMAGES): Add the TeX example - - * interpreter/plot.txi: Document caxis. - * interpreter/image.txi: Document gmap40. - - 2007-11-12 Joseph P. Skudlarek - - * interpreter/gpl.txi: Move index commands after sectioning commands. - - 2007-11-09 David Bateman - - * interpreter/plot.txi: Document the new hidden and area functions. - - 2007-11-07 David Bateman - - * interpreter/plot.txi: Document new functions. - - 2007-10-30 David Bateman - - * interpreter/dynamic.txi, interpreter/install.txi, - interpreter/stats.txi, interpreter/strings.txi, - interpreter/testfun.txi, interpreter/tips.txi: - Doc fixes for small book format. - - 2007-10-26 Michael Goffioul - - * interpreter/Makefile.in, faq/Makefile.in, liboctave/Makefile.in: - Use temporary renamed files instead of Don't use --output option - argument for texi2[dvi|pdf]. Use $(sepchar) for path element - separation when building TEXINPUTS. Remove use of UNSETCOMSPEC trick. - - 2007-10-22 Kim Hansen - - * interpreter/munge-texi.cc: Include and . - - 2007-10-19 David Bateman - - * refcard/refcard.tex: Update for 3.0. - - 2007-10-15 Sᅵren Hauberg - - * interpreter/preface.txi, interpreter/basics.txi, - interpreter/strings.txi, interpreter/container.txi, - interpreter/var.txi, interpreter/expr.txi, interpreter/errors.txi, - interpreter/io.txi, interpreter/func.txi, interpreter/package.txi: - Make text fit on pages when using smallbook. - - 2007-10-12 John W. Eaton - - * Change copyright notices in all files that are part of Octave to - GPLv3 or any later version. - - 2007-10-11 Brian Gough - - * interpreter/dynamic.txi, interpreter/geometry.txi, - interpreter/package.txi, interpreter/sparse.txi, - interpreter/system.txi: Spelling fixes. - - 2007-10-10 Olli Saarela - - * interpreter/arith.txi, interpreter/basics.txi, - interpreter/container.txi, interpreter/dynamic.txi, - interpreter/eval.txi, interpreter/expr.txi, interpreter/func.txi, - interpreter/geometry.txi, interpreter/intro.txi, - interpreter/numbers.txi, interpreter/plot.txi, - interpreter/poly.txi, interpreter/set.txi, interpreter/sparse.txi, - interpreter/stmt.txi, interpreter/strings.txi, - interpreter/testfun.txi, interpreter/tips.txi: Spelling fixes. - - 2007-10-06 John W. Eaton - - * interpreter/octave.texi: Add David Bateman and Sᅵren Hauberg as - authors. - - 2006-09-28 Henry Mollet mollet@pacbell.net - - * interpreter/func.txi: Correct results of a couple of examples. - - 2007-09-14 John W. Eaton - - * faq/Makefile.in: Create single Octave-FAQ.html file instead of a - splitting files into HTML directory. - - 2007-09-05 David Bateman - - * interpreter/system.m: Document gzip. - * interpreter/container.txi: Document celldisp. - * interpreter/matrix.txi: Document bsxfun. - * interpreter/data.txi: Document typecast and swapbytes. - * interpreter/container.txi: Document struct2cell. - * interpreter/stats.txi: Document mode. - * interpreter/eval.txi: Document run. - - 2007-09-01 David Bateman - - * interpreter/Makefile.in: Remove stray character from - INTERIMAGES_PNG target. - * conf.texi.in: Substitute for the variable TEXINFO_QHULL - * interpreter/geometryimages.m: Check for the HAVE_QHULL build - flag before creating certain figures. - * interpreter/geometry.txi: Check whether TEXINFO_QHULL is set - before including certain figures. - - 2007-08-31 Sᅵren Hauberg - - * interpreter/nonlin.txi: Extended the example. - - * interpreter/poly.txi: Sectioning and documentation. - * interpreter/octave.texi: Adapt to changes in poly.txi. - - 2007-08-30 David Bateman - - * interpreter/geometryimages.m: Add inpolygon example - * interpreter/Makefile.in (GEOMETRYIMAGES): Add inpolygon example. - * interpret/geometry.txi: Document inpolygon. - - 2007-08-27 David Bateman - - * interpreter/struct.txi: Remove. - * interpreter/containers.txi: Combine with this chapter. Add - examples, and section on comma separated lists. Document the - difference between "c(1,:) = []" and c{1,:} = []" for a cell - arrays. - * interpreter/octave.texi: Document new indexing of containers - section. - - 2007-08-25 David Bateman - - * interpreter/geometry.txi: Add examples and explanatory text. - * interpreter/octave.texi: Update indexing of geometry functions. - * interpreter/geometryimage.m: New script to create images for - geometry chapter. - * interpreter/Makefile.in (SCRIPT_SORCES): add geometryimages.m - (GEOMETRYIMAGES*): New variables. - (IMAGES_EPS, IMAGES_PDF, IMAGES_PNG): Add the GEOMETRYIMAGES*. - - 2007-08-24 David Bateman - - * interpreter/geometry.txi: Document new functions. - * interpreter/octave.texi: Update indexing of geometry items. - - 2007-07-25 John W. Eaton - - * interpreter/Makefile.in (run-octave): Don't set DISPLAY. - - 2007-07-25 David Bateman - - * Makefile.in, faq/Makefile.in, interpreter/Makwfile.in, - liboctave/Makefile.in, refcard/Makefile.in: Adjust DISTFILES - to allow out of tree "make dist" to work. - - 2007-07-23 David Bateman - - * interpreter/Makefile.in (SUB_SOURCE): remove bit.txi. - * interpreter/io.txi: Document rat and rats in new sub-section. - * interpreter/plot.txi: New section for test functions. Document - peaks and meshc. - * interpreter/octave.texi: Add test plotting section. - * interpreter/image.txi: Document the functions autumn, bone, - cool, copper, hot, hsv, jet, pink, prism, rainbow, spring, - summer, white and winter. - - 2007-07-19 David Bateman - - * interpreter/bit.xi: Remove. - * interpreter/numbers.txi: Move here, and add examples. - * interpreter/octave.texi: Remove "Bit manipulation" chapter and make - it a sub-section of the "Numeric Data Types" chapter. - - 2007-07-06 David Bateman - - * interpreter/arith.txi: Add accumarray. - - 2007-06-25 John W. Eaton - - * interpreter/stats.txi: Reorganize sections and add introductory text. - - * interpreter/octave.texi: Update to reflect changes in stats.txi. - - 2007-06-18 David Bateman - - * interpreter/interpimages.m: Simpler images to demonstrate - the continuity of the second derivative of splines. - * interpreter/interp.txi: Also change figures here. - * interpreter/Makefile.in: and here. - - 2007-06-18 Sᅵren Hauberg - - * interpreter/optim.txi: Added some introductory text to each - section. - - * interpreter/set.txi: Added some introductory text. - * interpreter/octave.texi: Updated to reflect changes in set.txi. - - 2007-06-15 David Bateman - - * faq/Octave-FAQ.texi: Document the gnuplot 4.2 bug using pipes. - - 2007-06-15 Paul Kienzle - - * interpreter/testfun.txi: Provide a clue to using xtest for assert. - - 2007-06-14 Paul Kienzle - - * interpreter/testfun.txi: Document xtest block - - 2007-06-14 David Bateman - - * interpreter/Makefile.in (SCRIPT_SORCES): add interimages.m - (INTERPIMAGES*): New variables. Add targets for them - (IMAGES_EPS, IMAGES_PDF, IMAGES_PNG): Add the INTERPIMAGES. - * interpreter/interpimages.m: New function - * interpreter/interp.txi: Add text about second derivation of - splines and add figures. - - 2007-06-12 David Bateman - - * interpreter/numbers.txi: Document that 64-bit arithmetic is - not possible. - - 2007-06-12 David Bateman - - * interpreter/interp.txi: Split into two section and document - interp3 and the differences in the treatement of the dimensions - between interpn and interp3. - * hashing.txi: Remove. - * system.txi: Move it here as a subsection. Include explanation - and example. - * interpreter/octave.texi: Add sections for the Interpolation - chapter. Remove references to Hashing chapter and hashing.texi, - and subsections for hashing to system utilities chapter. - - 2007-06-12 2007-06-10 Sᅵren Hauberg - - * interpreter/diffeq.txi: Note that x-dot is the derivative of x. - - 2007-06-03 David Bateman - - * interpreter/dynamic.txi: Use "mwSize" and "mwIndex" rather than - "int" for indexing in mex-files and document them. - - 2007-05-30 John W. Eaton - - * interpreter/Makefile.in (TEXI2DVICOMMAND, TEXI2PDFCOMMAND): - New macros. - (octave-a4.pdf, octave-smallbook.pdf): New targets. - (FORMATTED, all): Include octave-a4.pdf in list of dependencies. - Delete octave.dvi and octave.ps from list. - (FORMATTED, all): Use $(PDF_TARGETS). - (maintainer-clean): Depend on clean. - - 2007-05-30 G. D. McBain - - * interpreter/expr.txi (Assignment Ops): Doc fix. - - 2007-05-29 Steven Mestdagh - - * interpreter/Makefile.in ($(HTML_IMAGES_PNG)): Use cp instead of - INSTALL_DATA to copy files to the HTML directory. - - 2007-05-28 Sᅵren Hauberg - - * interpreter/errors.txi: Add new sections and some more detailed - descriptions on errors and warnings. - * interpreter/octave.texi, interpreter/stmt.txi, - interpreter/var.txi: Add references to the new sections in - errors.txi. - - 2007-05-28 Sᅵren Hauberg - - * interpreter/io.txi: Rearrange some sections, and add - a few examples. - - 2007-05-28 G. D. McBain - - * interpreter/struct.txi: Doc fix. - - 2007-05-23 John W. Eaton - - * liboctave/Makefile.in (TEXINFO_SOURCE): New variable. - (TEXINFO): Define using $(TEXINFO_SOURCE). - (DISTFILES): Include $(TEXINFO_SOURCE) in the list, not $(TEXINFO). - - 2007-05-22 John W. Eaton - - * interpreter/Makefile.in (TEXINFO_SOURCE): New variable. - (TEXINFO): Define using $(TEXINFO_SOURCE). - (DISTFILES): Include $(TEXINFO_SOURCE) in the list, not $(TEXINFO). - - 2007-05-22 Thomas Weber - - * faq/Octave-FAQ.texi, interpreter/basics.txi, - refcard/refcard.tex: Fix typos. - - 2007-05-22 John W. Eaton - - * interpreter/Makefile.in (DISTFILES): Add mkcontrib.awk to the list. - - 2007-05-21 David Bateman - - * interpreter/debug.txi, io.txi, octave.txi: Doc fixes. - - 2007-05-21 Sᅵren Hauberg - - * interpreter/expr.txi: Describe +=, -=, *=, and /= operators. - Add new example. - - * interpreter/eval.txi: Partition the chapter into sections. - Describe evalin and assignin functions using text from Paul - Kienzle. Change "See See" to "See". Use @ref instead of @xref to - avoid "See" to be written with a capital letter in the middle of a - sentence. - - * interpreter/func.txi: New section describing load path. - Improve 'inline' and 'command' sections. - - * interpreter/stmt.txi: Describe cell array cases for the switch - statement. Minor layout changes. - - 2007-05-19 David Bateman - - * interpreter/func.txi: Additional documentation for function - locking, dispatch and autoloading. - - 2007-05-16 Sᅵren Hauberg - - * interpreter/expr.txi: Improve docs. - - 2007-05-14 John W. Eaton - - * interpreter/basics.txi, interpreter/data.txi, - interpreter/intro.txi, interpreter/numbers.txi, - interpreter/octave.texi, interpreter/preface.txi: Doc fixes. - - 2007-04-18 Sᅵren Hauberg - - * interpreter/package.texi: Document "*" flag for loaded packages. - - * interpreter.var.txi: Improve explanation of clear, exist, and who. - - * interpreter/intro.txi: Change @unnumberedsubsec to @subsection. - - * interpreter/container.txi: Doc fix. - - * interpreter/strings.txi: Improve explanation for creating - comparing, and converting strings. - * interpreter/octave.texi: Update detailed menu. - - 2007-05-09 David Bateman - - * faq/Octave-FAQ.texi: Update compatibility section. - - 2007-04-27 David Bateman - - * Makefile.in (EXAMPLE_FILES_NODIR): Add mycell.c, myfeval.c, - myfunc.c, mypow2.c, mysparse.c, mystring.c, mystruct.c and - paramdemo.cc. - * interpreter.txi/dynamic.txi: Complete all but the section on - the mex- and oct-file APIs. - - 2007-04-26 David Bateman - - * interpreter/stmt.txi: Document for loops over matrices, arrays - and cell arrays. - - 2007-04-25 David Bateman - - * interpreter/dynamic.txi: Add additional copyrights. Add sections - of input parameter checking, documentation and testing of - oct-files. Adds a section on calling other functions from - mex-files, expands the basic information on mex-files, and add a - few new sections (to be completed) to the section about mex-files - - 2007-04-25 John W. Eaton - - * interpreter/dynamic.txi: Use abs_top_srcdir to find example files. - - 2007-04-25 David Bateman - - * conf.texi.in: Also set abs_top_srcdir with substitution. - * Makefile.in: Substitute abs_top_srcdir here. - - 2007-04-25 John W. Eaton - - * interpreter/dynamic.txi: Use @verbatiminclude for example code. - - * interpreter/Makefile.in (EXAMPLE_FILES_NODIR, EXAMPLE_FILES): - New variables. - (octave.info, octave.dvi, octave.pdf, HTML/index.html): - Depend on $(EXAMPLE_FILES). - - * conf.texi.in: Also set top_srcdir with substitution. - - * interpreter/tips.txi: Update with new text and examples. - Move documentation section to the end. - - 2007-04-24 David Bateman - - * interpreter/octave.texi: Include dynamic.texi as appendix and - update menus. - - * interpreter/plot.txi: Update menus. - - * interpreter/strings.txi: @result -> @result{}. - - * intrepreter/func.txi, intrepreter/sparse.txi: - Delete .oct file section and update menus. - - * interpreter/addtwomatrices.cc, interpreter/celldemo.cc, - interpreter/fortdemo.cc, interpreter/funcdemo.cc, - interpreter/globaldemo.cc, interpreter/helloworld.cc, - interpreter/stringdemo.cc, interpreter/structdemo.cc, - interpreter/unwinddemo.cc, interpreter/fortsub.f, - interpreter/dynamic.txi: New files. - - * Makefile.in (SUB_SOURCE): Include dynamic.txi in the list. - - 2007-04-18 Sᅵren Hauberg - - * interpreter/package.texi: New file. - * octave/texi: @include it, add it to the menus. - - 2007-04-18 John W. Eaton - - * interpreter/contributors.in: New file. - * interpreter/Makefile.in (contributors.texi): New target. - (clean): Also deleete contributors.texi - (TEXINFO): Include contributors.texi in the list. - (preface.texi): @include contributors.texi. - - 2007-04-17 David Bateman - - * interpreter/linalg.txi (Techniques used for Linear Algebra): - New node. - * interpreter/octave.texi: Include it in menu. - * interpreter/sparse.txi: Delete discusion of matrix_type. - - 2007-04-16 John W. Eaton - - * interpreter/stream.txi: Delete. - * interpreter/Makefile.in (SUB_SOURCE): Remove it from the list. - - 2007-04-16 Sᅵren Hauberg - - * intrepreter/stmt.txi: Improve documentation of switch statement. - - * interpreter/tips.txi: Update description of how copyright - statements are recognized. - - * interpreter/octave.texi: Don't include stream.texi. - Remove menu entry for I/O streams. - - * interpreter/image.txi: Update docs. - - 2007-04-11 Sᅵren Hauberg - - * interpreter/container.txi: Document indexing with (). - - 2007-04-11 Sᅵren Hauberg - - * interpreter/container.txi: Improve cell array documentation. - - 2007-04-09 Sᅵren Hauberg - - * interpreter/func.txi: Document varargin, varargout, and default - argument values. - - 2007-04-03 Rafael Laboissiere - - * interpreter/basics.txi: Clarified some limitations of the #! - script mechanism, in particular related to the parsing of the - arguments. - - 2007-03-29 Rafael Laboissiere - - * faq/Octave-FAQ.texi, interpreter/basics.txi, - interpreter/emacs.txi, interpreter/func.tx, interpreter/var.txi: - Make it clear that the old built-in LOADPATH is an internal - variable, accessible through path (). - Drop references to DEFAULT_LOADPATH. - Chang references to the old built-in variables INFO_FILE and - INFO_PROGRAM to the respective fucntions info_file and - info_program. - * refcard/refcard.tex: Drop LOADPATH from list of built-in variables. - - 2007-03-27 John W. Eaton - - * Makefile.in, interpreter/Makefile.in, faq/Makefile.in, - liboctave/Makefile.in, refcard/Makefile.in (dist): - Use ln instead of $(LN_S). - - 2007-03-21 G. D. McBain - - * interpreter/sparse.txi: Delete repeated word. - - 2007-03-20 G. D. McBain - - * interpreter/sparse.txi: Clarify sparse matrix creation example. - - 2007-03-14 G. D. McBain - - * interpreter/sparse.txi: Fix typo. - - 2007-02-26 From Michael Goffioul - - * Makefile.in, interpreter/Makefile.in, faq/Makefile.in, - liboctave/Makefile.in, refcard/Makefile.in: - Use $(LN_S) instead of ln or ln -s. - - 2007-02-21 David Bateman - - * interpreter/sparse.txi: Add functions sprank and normest to - documentation. - - 2007-01-25 John W. Eaton - - * interpreter/sparseimages.m: Don't call __gnuplot_x__ functions. - - 2006-11-17 John W. Eaton - - * interpreter/sparseimages.m: Fix call to __plt3__. - - 2006-11-16 John W. Eaton - - * interpreter/sparseimages.m (femimages): Use plot3. - - 2006-11-11 John W. Eaton - - * interpreter/Makefile.in (%.texi : %.txi): - Use $(simple-move-if-change-rule) here. - - 2006-10-29 John W. Eaton - - * interpreter/Makefile.in (run-octave): Call it here. - * interpreter/sparseimages.m (sparseimages): Don't call sleep here. - - 2006-10-27 John W. Eaton - - * interpreter/Makefile.in (run-octave): - Unset DISPLAY while running Octave. - From Michael Goffioul . - - * interpreter/Makefile.in (octave.dvi, octave.pdf): - Use $(UNSETCOMSPEC) in command. - * faq/Makefile.in (Octave-FAQ.dvi, Octave-FAQ.pdf): Likewise. - * liboctave/Makefile.in (liboctave.dvi, liboctave.pdf): Likewise. - - 2006-10-09 Thomas Treichl - - * interpreter/sparseimages.m: Plot sombrero images if sparse - capabilities are missing. - - 2006-10-04 John W. Eaton - - * interpreter/Makefile.in (HTML_IMAGES_PNG): New variable. - (HTML/index.html): Depend on $(HTML_IMAGES_PNG) instead of html-figs. - ($(HTML_IMAGES_PNG): HTML/%.png : %.png): New pattern rule. - (html-dir): Delete target. - - 2006-10-03 Rafael Laboissiere - - * interpreter/mkoctfile.1: Fix indentation for --mex description. - - 2006-09-26 John W. Eaton - - * interpreter/Makefile.in (stamp-images): Delete. - (octave.info): Depend on $(IMAGES_TXT), not stamp-images. - (octave.dvi): Depend on $(IMAGES_EPS), not stamp-images. - (octave.pdf): Depend on $(IMAGES_PDF), not stamp-images. - (html-figs): Depend on $(IMAGES_PNG), not stamp-images. - (SCRIPT_SOURCES, SPARSEIMAGES_1, SPARSEIMAGES_EPS, - SPARSEIMAGES_PDF, SPARSEIMAGES_PNG, SPARSE_IMAGES_TXT, IMAGES_EPS, - IMAGES_PDF, IMAGES_PNG, IMAGES_TXT, and IMAGES): New variables. - (SOURCES): Include $(SCRIPT_SOURCES) in the list. - (DISTFILES): Include $(IMAGES) in the list. - (maintainer-clean): Delete $(IMAGES) here. - (DISTSUBDIRS, SUBDIRS): Remove $(IMAGEDIR) from list. - (octave.dvi, octave.info, octave.pdf, HTML/index.html): - Don't include $(IMAGEDIR) in list of directories to search - * sparseimages.m: Move here from images/sparseimages.m. - * images/Makefile.in: Delete. - * images: Delete directory. - - 2006-08-24 John W. Eaton - - * interpreter/images/Makefile.in (SPARSEIMAGES_PDF): New macro. - Keep PDF images out of IMAGES list. - - 2006-08-18 John W. Eaton - - * conf.texi.in: Eliminate TARGETHOSTTYPE variable. - - 2006-08-17 John W. Eaton - - * interpreter/images/Makefile.in (%.pdf : %eps): - Use $(GHOSTSCRIPT) instead of gs. - - 2006-08-14 Dmitri A. Sergatskov - - * interpreter/images/sparseimages.m: Adapt to new automatic_replot - definition. - - 2006-06-27 John W. Eaton - - * interpreter/Makefile.in: Elminate double-colon rules. - - 2006-05-31 John W. Eaton - - * interpreter/images/Makefile.in (run-octave): - Use $(TOPDIR)/run-octave script to execute Octave. - (OCTAVE_BINARY, OCTAVE_SCRIPT_PATH, OCTAVE_LD_LIBRARY_PATH, - XLD_LIBRARY_PATH, SET_LD_LIBRARY_PATH): Delete variables. - - 2006-04-06 Keith Goodman - - * interpreter/mkoctfile.1: Doc string fix. - - 2006-04-03 David Bateman - - * interpreter/matrix.txi: Add rande, randp, randg and update - for different random generator behavior. - - 2006-03-28 John W. Eaton - - * texinfo.tex: Update FSF address. - - 2006-03-27 John W. Eaton - - * interpreter/images/sparseimages.m: Fix missing endif. Omit - unnecessary call to axis. - - 2006-03-24 John W. Eaton - - * interpreter/images/sparseimages.m: - Avoid some unnecessary calculations. - - 2006-03-22 John W. Eaton - - * interpreter/sparse.txi: Undo previous change. - Always use @image to include image files. - * interpreter/Makefile.in: Eliminate stamp files. - (clean, mostlyclean, distclean, maintainer-clean): Now - double-colon targets. - (stamp-images): New target. - (octave.info, octave.dvi, octave.pdf, HTML/index.html): Depend on it. - * interpreter/images/Makefile.in: Explicitly list images to be - created and their dependencies. - * interpreter/images/sparseimages.m (sparseimage): Delete dirc arg. - Sleep for 1 second before returning. - (txtimages): Also create gplot.txt and grid.txt. - (sparseimages): Don't redirect output here. - New arg, nm. Only output a single figure at a time. - (bury_output): New function. Use it before plotting commands and - after every print function. - * Makefile.in (conf.texi): New target. - (DISTFILES): Include conf.texi in the list. - (all, dist): Depend on conf.texi. - * conf.texi.in: Values come from Makeconf, not configure. - - 2006-03-21 John W. Eaton - - * liboctave/Makefile.in (FORMATTED): Omit .html files here. - (DISTDIRS): New variable. - (dist): Handle $(DISTDIRS) here. - - * faq/Makefile.in (FORMATTED): Omit .html files here. - (DISTDIRS): New variable. - (dist): Handle $(DISTDIRS) here. - - * interpreter/Makefile.in (FORMATTED): Omit .html files here. - (DISTDIRS): New variable. - (dist): Handle $(DISTDIRS) here. - - * interpreter/sparse.txi: Temporarily omit figures. - * interpreter/Makefile.in: Temporarily omit actions for making figures. - (DISTSUBDIRS): New macro. - (dist): Recurse into $(DISTSUBDIRS) here. - - * interpreter/Makefile.in (real-pdf): Depend on stamp-eps - (stamp-pdf): Depend on real-pdf. Touch stamp-pdf here. - (real-pdf): Not here. - - 2006-03-16 David Bateman - - * interpreter/images/sparseimages.m: set terminal type to dummy to - direct output to terminal rather than X11. - * interpreter/sparse.txi: Update docs for new QR solvers. - - 2006-03-09 David Bateman - - * interpreter/Makefile.in: Change order of commands in HTML/index.html - target. Respawn make for stamp-pdf target so that $(wildcard *.eps) is - reinterpreted. - * interpreter/sparse.txi: Isolate conditionally built targets in - "@ifset ... @end ifset". - - 2006-03-08 David Bateman - - * conf.texi: Remove. - * conf.texi.in: New file, for autoconf'ed version of conf.texi. - * Makefile.in: replace conf.texi with conf.texi.in in DISTFILES - * interpreter/Makefile.in: build in subdir IMAGEDIR, add stamps for - image files. Copy png-files to HTML directory. Build pdf files from - eps files using epsffit, gs, grep, basename, head and awk. - * octave.texi: Update sparse sub-sections. - * sparse.txi: Updates for current state of sparse code. - * interpreter/images/Makefile.in: New file. - * interpreter/images/sparseimages.m: New file to build sparse images. - - 2006-03-07 David Bateman - - * liboctave/dae.texi, liboctave/factor.texi, liboctave/nleqn.texi, - liboctave/quad.texi, liboctave/matvec.texi, liboctave/nlfunc.texi, - liboctave/diffeq.texi, liboctave/array.texi, liboctave/range.texi, - liboctave/optim.texi: Fix some syntax problems for texinfo.tex 4.8. - - 2006-03-06 Keith Goodman - - * interpreter/octave.texi (@seealso): Display args instead of - discarding them. - - 2006-03-02 John W. Eaton - - * faq/Makefile.in (Octave-FAQ.ps): Depend on Octave-FAQ.dvi, not - $(TEXINFO). - - * texinfo.tex: Update to 2004-11-25.16 version from Texinfo 4.8. - - 2005-12-14 David Bateman - - * interpreter/testfun.txi: New test/demo documentation. - * interpreter/strings.txi: Include regexp/regexi docstrings. - * interpreter/octave.texi: Include test/demo appendix. - * interpreter/Makefile.in (SUB_SOURCE): Include test.txi. - - 2005-12-13 David Bateman - - * interpreter/sparse.txi: Add new gplot, etreeplot and treeplot - functions. - - 2005-11-01 John W. Eaton - - * liboctave/Makefile.in (maintainer-clean): Also remove liboctave.pdf - * faq/Makefile.in (maintainer-clean): Also remove Octave-FAQ.pdf. - From Quentin Spencer . - - 2005-10-23 David Bateman - - * sparse.txi: Updates for new ufsparse licensing, new functions and - various typos. - - 2005-09-19 Rafael Laboissiere - - * interpreter/octave-config.1: Use bold instead of italics to - markup command name. - - 2005-07-29 John W. Eaton - - * faq/Makefile.in (HTML/index.html): Pass --ifinfo to makeinfo. - * interpreter/Makefile.in (HTML/index.html): Likewise. - * liboctave/Makefile.in (HTML/index.html): Likewise. - - 2005-07-28 John W. Eaton - - * faq/Makefile.in, interpreter/Makefile.in, liboctave/Makefile.in: - Use makeinfo instead of texi2html to generate HTML. - - 2005-05-02 John W. Eaton - - * interpreter/munge-texi.cc (skip_comments): New function. - (process_doc_file): Use it to skip comments at beginning of file. - - 2005-04-29 David Bateman - - * interpreter/sparse.txi: Add matrix_type, spkron, and document - changes in solve code. - - 2005-03-14 David Bateman - - * interpreter/sparse.txi: Add luinc function. - - 2005-03-09 John W. Eaton - - * Makefile.in (bin-dist): Delete target. - (BINDISTSUBDIRS): Delete variable. - - * refcard/Makefile.in (bin-dist): Delete target. - (BINDISTFILES): Delete variable. - * liboctave/Makefile.in: Likewise. - * interpreter/Makefile.in: Likewise. - * faq/Makefile.in: Likewise. - - 2005-02-25 John W. Eaton - - Sparse merge. - - 2005-01-07 David Bateman - - * interpreter/sparse.txi: New file. - * interpreter/Makefile.in: Add it to the build. - * interpreter/octave.texi: Include it in the contents tables and the - top level document. - - 2005-02-25 John W. Eaton - - * liboctave/Makefile.in (all): Also depend on Octave-FAQ.pdf. - Use $(MAKEINFO) instead of makeinfo in rules. - - 2005-02-25 Rafael Laboissiere - - * liboctave/Makefile.in (Octave-FAQ.pdf): New target and rule. - (FORMATTED): Add Octave-FAQ.pdf to the list. - - 2005-02-21 John W. Eaton - - * liboctave/Makefile.in (liboctave.pdf): New target and rule. - (FORMATTED): Add liboctave.pdf to the list. - (all): Also depend on liboctave.pdf. - Use $(MAKEINFO) instead of makeinfo in rules. - - * interpreter/Makefile.in (octave.pdf): New target and rule. - (FORMATTED): Add octave.pdf to the list. - (all): Also depend on octave.pdf. - Use $(MAKEINFO) instead of makeinfo in rules. - - 2005-02-08 Quentin Spencer - - * interpreter/plot.txi: Emphasize compatible plotting functions - over gplot and friends. - - 2004-02-13 John W. Eaton - - * liboctave/Makefile.in (FORMATTED): Use liboctave*.html instead - of liboctave_*.html. - - * faq/Makefile.in (FORMATTED): Use Octave-FAQ*.html instead of - Octave-FAQ_*.html. - - 2004-01-22 John W. Eaton - - * faq/Makefile.in (maintainer-clean): Remove Octave-FAQ*.html - instead of just Octave-FAQ_*.html. - - * liboctave/Makefile.in (maintainer-clean): Remove liboctave*.html - instead of just liboctave_*.html. - - * refcard/Makefile.in (maintainer-clean): Remove refcard-*.pdf. - - 2003-12-09 Eric S. Raymond - - * interpreter/mkoctfile.1: Use .I instead of .f for markup of ".oct". - - 2003-11-14 John W. Eaton - - * interpreter/munge-texi.cc (process_texi_input_file): - Avoid -Wshadow warnings. - - 2003-08-27 John W. Eaton - - * refcard/Makefile.in (refcard-a4.pdf, refcard-legal.pdf, - refcard-letter.pdf): New targets. - (FORMATTED): Add them to the list. - * refcard/refcard.tex: Optionally set pdf paper size parameters. - - 2003-08-07 John W. Eaton - - * interpreter/Makefile.in (octave_toc.html): Add "-I ." to texinfo - command line args. - - 2003-07-02 John W. Eaton - - * faq/Makefile.in (FORMATTED): Include all Octave-FAQ_*.html files - here, not just the toc. - - 2003-05-14 John W. Eaton - - * interpreter/Makefile.in, liboctave/Makefile.in: Handle DESTDIR. - - 2003-02-19 John W. Eaton - - * interpreter/Makefile.in (MAN_BASE): Add octave-config.1 to the list. - - 2003-02-19 Dirk Eddelbuettel - - * octave-config.1: New file. - - 2003-01-11 Paul Kienzle - - * interpreter/Makefile.in (munge-texi$(BUILD_EXEEXT)): Pass - $(BUILD_CXXFLAGS) and $(BUILD_LDFLAGS) to compiler. - (%.o : %.cc): Delete pattern rule. - - 2003-01-03 John W. Eaton - - * interpreter/munge-texi.cc: Define __USE_STD_IOSTREAM if using - Compaq C++. - - 2002-12-03 John W. Eaton - - * interpreter/Makefile.in (%.o : %.c): No longer need - -DNO_PRAGMA_INTERFACE_IMPLEMENTATION=1 compiler option. - (munge-texi#(BUILD_EXEEXT)): Likewise. - Don't link to Map-s.o. - - * interpreter/Map-s.cc: Delete. - * interpreter/Makefile.in (DISTFILES): Delete it from the list. - (mostlyclean, clean): Don't delete Map-s.o. - - * interpreter/munge-texi.cc: Require working STL. - - 2002-11-24 John W. Eaton - - * interpreter/Makefile.in (maintainer-clean): Depend on - clean-texi, don't remove $(TEXINFO). - - 2002-11-12 John W. Eaton - - * interpreter/munge-texi.cc: Use STL map class by default, but - make it easy to revert back to libg++-based Map class if that - fails to work on some systems. - - 2002-11-01 Dirk Eddelbuettel - - * interpreter/Makefile.in (MAN_BASE, MAN_SRC): New variables, use - as appropriate. - - 2002-11-01 John W. Eaton - - * interpreter/mkoctfile.1: New file. - - 2002-10-25 Paul Kienzle - - * interpreter/Makefile.in (octave_toc.html): Use -expandinfo and - -split_chapter instead of -expand info and -split chapter. - * liboctave/Makefile.in (liboctave_toc.html): Likewisel - * faq/Makefile.in (Octave-FAQ_toc.html): Likewise. - - 2002-10-25 John W. Eaton - - * interpreter/Makefile.in (munge-texi$(BUILD_EXEEXT)): Always use - -DNO_PRAGMA_INTERFACE_IMPLEMENTATION for compiling and linking. - - 2002-10-10 John W. Eaton - - * interpreter/Makefile.in (%.texi : %.txi): - Use $(top_srcdir)/move-if-change. - - 2002-10-09 John W. Eaton - - * interpreter/Makefile.in: Use $(BUILD_EXEEXT) as appropriate. - - 2002-10-08 John W. Eaton - - * interpreter/Makefile.in (munge-texi, %.o : %.cc): - Use $(BUILD_CXX), not $(CXX). - (src-DOCSTRINGS, scripts-DOCSTRINGS): New targets. - ($(TEXIFNO)): Depend on them. - (DOCSTRINGS): Delete variable. - - 2002-10-02 John W. Eaton - - * interpreter/Makefile.in (%.spell): Use $(SED), not sed. - * liboctave/Makefile.in (%.spell): Likewise. - * faq/Makefile.in (%.spell): Likewise. - - 2001-11-15 John W. Eaton - - * interpreter/Makefile.in (octave_toc.html): Use -expand info and - -split chapter, to be consistent. - * liboctave/Makefile.in (liboctave_toc.html): Likewise. - * faq/Makefile.in (Octave-FAQ_toc.html): Likewise. - - 2001-11-14 Christoph Spiel - - * faq/Makefile.in (Octave-FAQ_toc.html): Use -expandinfo and - -split_chapter, not -expand info and -split chapter. - * liboctave/Makefile.in (liboctave_toc.html): Likewise. - - 2001-11-01 John W. Eaton - - * interpreter/Makefile.in (MAIN_TEXINFO): Look in $(srcdir). - (octave_toc.html): Use -expandinfo and -split_chapter, not - -expand info and -split chapter. - - 2001-03-27 John W. Eaton - - * liboctave/Makefile.in (liboctave_toc.html): Use -expand info and - -split chapter instead of -expandinfo and -split_chapter options - for texi2html. - * faq/Makefile.in (Octave-FAQ_toc.html): Likewise. - * interpreter/Makefile.in (octave_toc.html): Likewise. - - 2000-10-10 John W. Eaton - - * liboctave/Makefile.in (liboctave_toc.html): Add space after -I - in texi2html command. - * interpreter/Makefile.in (octave_toc.html): Ditto. - - 2000-03-06 John W. Eaton - - * interpreter/octave-bug.1: New file. - * interpreter/Makefile.in (install install-strip): Install it. - (DISTFILES, BINDISTFILES): Add it to the - - 2000-02-23 John W. Eaton - - * interpreter/Makefile.in (clean): Also delete munge-texi, - munge-texi.o, and Map-s.o. - - 2000-02-04 John W. Eaton - - * interpreter/munge-texi.cc: Sprinkle with std:: qualifier. - - 2000-01-28 John W. Eaton - - * interpreter/Makefile.in (clean-texi): Avoid removing octave.texi. - - 2000-01-05 John W. Eaton - - * interpreter/Makefile.in: Don't generate octave.texi from octave.txi. - * interpreter/octave.texi: Rename from octave.txi. - - * interpreter/munge-texi.cc (process_texi_input_file): Undo - previous change, since % doesn't work as a comment character after - texinfo.tex is included. - - 2000-01-04 John W. Eaton - - * texinfo.tex: Update to version from texinfo-4.0. - - * interpreter/munge-texi.cc (process_texi_input_file): For Texinfo - doc strings, automatically insert an @anchor{doc-SYMBOL} command - just before the docstring for SYMBOL. - - 1999-12-09 John W. Eaton - - * interpreter/munge-texi.cc (process_texi_input_file): Begin - transformed files with `% DO NOT EDIT' instead of `@c DO NOT EDIT' - to prevent problems with TeX not knowing the definition of @c - before it is used. - - 1999-11-19 John W. Eaton - - * interpreter/Makefile.in (%.texi : %.txi): Suppress command echo. - - 1999-10-21 John W. Eaton - - * interpreter/Makefile.in (dist): Remove .texi files first, so - they will have timestamps newer than the $(DOCSTRINGS) files. - (%.texi : %.txi): Use mv instead of move-if-change. - - * interpreter/Map-s.cc: New file. - * interpreter/munge-texi.cc: Use old libg++ Map class instead of - STL map, for the benefit of systems that have assemblers that - can't handle the long symbol names generated by g++ for - map. - - 1999-10-19 John W. Eaton - - * interpreter/munge-texi.cc: Strip the "-*- texinfo -*-" marker - when including help text. - - * interpreter/Makefile.in ($(TEXINFO)): Depend on $(DOCSTRINGS). - ($(DOCSTRINGS)): New rule. - - * Makefile.in (dist, bin-dist): Use `$(MAKE) -C dir' instead of - `cd dir; $(MAKE); cd ..'. - (../BUGS, ../INSTALL.OCTAVE, $(SUBDIRS)) Likewise. - - * interpreter/*.txi: Rename from *.txi. - * interpreter/munge-texi.cc: New file. - * interpreter/Makefile.in: Use it to create .texi files from .txi - files and DOCSTRING files. - - Fri Jun 18 23:17:02 1999 John W. Eaton - - * interpreter/Makefile.in (octave_toc.html): Add -expandinfo to - tex12html options. - * liboctave/Makefile.in (liboctave_toc.html): Likewise. - * faq/Makefile.in (Octave-FAQ_toc.html): Likewise. - - Fri Oct 9 00:27:33 1998 John W. Eaton - - * faq/Makefile.in, interpreter/Makefile.in, liboctave/Makefile.in: - New rules for generating HTML files from Texinfo sources. - - Thu May 14 21:04:40 1998 John W. Eaton - - * interpreter/Makefile.in (../../BUGS, ../../INSTALL): Add - --no-validate to makeinfo args. - - Wed Jul 2 16:41:04 1997 John W. Eaton - - * refcard/Makefile.in: Remove .tex files from binary distributions. - - * interpreter/Makefile.in: Add DVI and Postscript files to binary - distributions. - - Fri Apr 18 02:51:00 1997 John W. Eaton - - * faq/Octave-FAQ.texi: Rename from faq/FAQ.texi. - * faq/Makefile.in: Fix names to match. - - Wed Mar 12 17:01:02 1997 John W. Eaton - - * Makefile.in (install-strip): New target. - * faq/Makefile.in: Ditto. - * interpreter/Makefile.in: Ditto. - * liboctave/Makefile.in: Ditto. - * refcard/Makefile.in: Ditto. - - Sat Mar 1 15:23:14 1997 John W. Eaton - - * Version 2.0.5 released. - - Fri Feb 28 20:53:40 1997 John W. Eaton - - * texinfo.tex: Update to latest version from Karl Berry, and apply - previous patch too. - - Thu Feb 27 03:34:48 1997 John W. Eaton - - * texinfo.tex (\codeunder): Maybe make it work for @var{} inside - @code{}. - - Wed Feb 26 12:03:48 1997 John W. Eaton - - * refcard/Makefile.in (mostlyclean clean): Delete log files. - - * liboctave/Makefile.in (mostlyclean clean): Delete more stuff. - - * faq/Makefile.in (mostlyclean clean): Delete some stuff. - - Thu Feb 20 02:58:05 1997 John W. Eaton - - * Version 2.0.4 released. - - Wed Feb 19 10:30:14 1997 John W. Eaton - - * Makefile.in (DISTFILES): Distribute conf.texi, not conf.texi.in. - - * liboctave/Makefile.in: Don't make or distribute conf.texi. - (liboctave.info, liboctave.dvi): Depend on ../conf.texi, not conf.texi. - - * interpreter/Makefile.in: Don't create or distribute conf.texi. - (octave.info, octave.dvi): Depend on ../conf.texi, not conf.texi. - - Tue Feb 18 09:22:04 1997 John W. Eaton - - * Version 2.0.3 released. - - Wed Jan 29 11:49:25 1997 John W. Eaton - - * Makefile.in (../INSTALL.OCTAVE, ../BUGS): Declare these to be - .PHONY so that we will always check the interpreter makefile to - get the proper dependencies. - - Mon Jan 27 15:52:33 1997 John W. Eaton - - * Version 2.0.2 released. - - Sun Jan 26 22:07:45 1997 John W. Eaton - - * interpreter/Makefile.in: Make BUGS file directly from bugs.texi. - * interpreter/bugs.texi: Incorporate bugs1.texi directly. - * interpreter/bugs1.texi: Delete. - - * interpreter/Makefile.in: Make INSTALL file directly from - install.texi. - * interpreter/install.texi: Incorporate install1.texi directly. - * interpreter/install1.texi: Delete. - - Sat Jan 25 22:32:33 1997 John W. Eaton - - * Makefile.in, interpreter/Makefile.in, liboctave/Makefile.in, - faq/Makefile.in, refcard/Makefile.in (bin-dist): New target. - - Tue Jan 7 00:17:24 1997 John W. Eaton - - * Version 2.0.1 released. - - Tue Dec 10 01:43:13 1996 John W. Eaton - - * Version 2.0 released. - - Fri Dec 6 15:23:52 1996 John W. Eaton - - * Version 1.94. - - Wed Nov 20 01:00:50 1996 John W. Eaton - - * Version 1.93. - - Thu Nov 14 00:07:25 1996 John W. Eaton - - * faq/Makefile.in (FAQ.dvi): Use $(TEXI2DVI), not just texi2dvi. - * interpreter/Makefile.in (octave.dvi): Likewise. - * liboctave/Makefile.in (liboctave.dvi): Likewise. - - * Version 1.92. - - Thu Nov 7 12:43:19 1996 John W. Eaton - - * Version 1.91. - - * texinfo.tex: Update to version from texinfo-3.9 distribution. - - Wed Oct 30 17:20:28 1996 John W. Eaton - - * Version 1.90. - - * Makefile.in (DISTFILES): Add ChangeLog. - - Sat Oct 12 13:38:49 1996 John W. Eaton - - * Makefile.in (maintainer-clean): Don't depend on distclean. - - Sat Jun 15 23:01:33 1996 John W. Eaton - - * interpreter/Makefile.in (TEXINFO): Add audio.texi and emacs.texi. - - Fri May 17 03:02:37 1996 John W. Eaton - - * interpreter/Makefile.in: Use man1dir instead of mandir, and - man1ext instead of manext. - - Sat Mar 23 05:01:17 1996 John W. Eaton - - * liboctave/Makefile.in (TEXINFO): Don't list conf.texi and - gpl.texi here. - - * liboctave/Makefile.in (dist targets): Fix ln command. - * refcard/Makefile.in (dist targets): Likewise. - * interpreter/Makefile.in (dist targets): Likewise. - * faq/Makefile.in (dist targets): Likewise. - - Fri Mar 22 23:57:26 1996 John W. Eaton - - * liboctave/Makefile.in (DISTFILES): Add gpl.texi. - * interpreter/Makefile.in (DISTFILES): Add gpl.texi. - * Makefile.in (DISTFILES): Delete gpl.texi. - - Sun Mar 3 11:33:30 1996 John W. Eaton - - * Split docs into faq, interpreter, liboctave, and refcard - subdirectories. - - Wed Sep 20 00:47:45 1995 John Eaton - - * mkinstalldirs: New file. - * Makefile.in (DISTFILES): Add it to the list. - - * Makefile.in (maintainer-clean): Delete .dvi, .ps, and .info - files here. - (clean): Not here. - (mostlyclean): Make this the same as clean. - - Tue Sep 19 03:18:35 1995 John Eaton - - * Makefile.in (../BUGS, ../INSTALL.OCTAVE): Specify output file to - makeinfo with --output option. - - Thu Sep 14 20:31:47 1995 John Eaton - - * Makefile.in: Don't fail if makeinfo, tex, or dvips fail. - - See ChangeLog.1 in the top level directory for earlier changes. --- 0 ---- diff -cNr octave-3.4.0/doc/faq/Makefile.am octave-3.4.1/doc/faq/Makefile.am *** octave-3.4.0/doc/faq/Makefile.am 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/faq/Makefile.am 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/common.mk ## Automake generated rules for documentation are not parallel-safe. ## Restrict current directory to run serially --- 18,24 ---- # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/build-aux/common.mk ## Automake generated rules for documentation are not parallel-safe. ## Restrict current directory to run serially diff -cNr octave-3.4.0/doc/faq/Makefile.in octave-3.4.1/doc/faq/Makefile.in *** octave-3.4.0/doc/faq/Makefile.in 2011-02-08 05:03:34.000000000 -0500 --- octave-3.4.1/doc/faq/Makefile.in 2011-06-15 11:31:26.000000000 -0400 *************** *** 53,63 **** build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ ! $(top_srcdir)/common.mk subdir = doc/faq ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ --- 53,66 ---- build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ ! $(top_srcdir)/build-aux/common.mk subdir = doc/faq ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/ax_pthread.m4 \ ! $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ *************** *** 65,80 **** $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ --- 68,87 ---- $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filemode.m4 \ ! $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpurge.m4 \ ! $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/fseek.m4 \ ! $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftell.m4 \ ! $(top_srcdir)/m4/ftello.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ *************** *** 88,113 **** $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ ! $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ! $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ! $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ ! $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ ! $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ ! $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \ ! $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memchr.m4 \ ! $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ ! $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkfifo.m4 \ ! $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \ ! $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ ! $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nanosleep.m4 \ ! $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ ! $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/printf.m4 \ ! $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ ! $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \ ! $(top_srcdir)/m4/round.m4 $(top_srcdir)/m4/roundf.m4 \ ! $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/select.m4 \ ! $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ --- 95,122 ---- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ ! $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ ! $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ! $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ ! $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/math_h.m4 \ ! $(top_srcdir)/m4/mathfunc.m4 $(top_srcdir)/m4/mbrtowc.m4 \ ! $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ ! $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/md5.m4 \ ! $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \ ! $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \ ! $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkstemp.m4 \ ! $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ ! $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/multiarch.m4 \ ! $(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/nocrash.m4 \ ! $(top_srcdir)/m4/nproc.m4 $(top_srcdir)/m4/open.m4 \ ! $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ ! $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/readlink.m4 \ ! $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ ! $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/round.m4 \ ! $(top_srcdir)/m4/roundf.m4 $(top_srcdir)/m4/save-cwd.m4 \ ! $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/sigaction.m4 \ ! $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ *************** *** 115,143 **** $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \ ! $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ ! $(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \ ! $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/tempname.m4 \ ! $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ ! $(top_srcdir)/m4/times.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ ! $(top_srcdir)/m4/trunc.m4 $(top_srcdir)/m4/truncf.m4 \ ! $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ ! $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/vasnprintf.m4 \ ! $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ ! $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ ! $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ ! $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/acinclude.m4 \ ! $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = --- 124,149 ---- $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strdup.m4 \ ! $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.m4 \ ! $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ ! $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \ ! $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/times.m4 \ ! $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/trunc.m4 \ ! $(top_srcdir)/m4/truncf.m4 $(top_srcdir)/m4/unistd-safer.m4 \ ! $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ ! $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vsnprintf.m4 \ ! $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ ! $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ ! $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = *************** *** 188,194 **** AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ - ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ --- 194,199 ---- *************** *** 340,345 **** --- 345,352 ---- GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ + GNULIB_FGETC = @GNULIB_FGETC@ + GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ *************** *** 349,357 **** --- 356,366 ---- GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ + GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPL = @GNULIB_FREXPL@ + GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ *************** *** 361,366 **** --- 370,377 ---- GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ + GNULIB_GETC = @GNULIB_GETC@ + GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ *************** *** 373,390 **** --- 384,405 ---- GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ + GNULIB_GETS = @GNULIB_GETS@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ + GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ + GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ + GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ *************** *** 415,420 **** --- 430,436 ---- GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ + GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ *************** *** 431,436 **** --- 447,453 ---- GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ + GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ *************** *** 450,455 **** --- 467,473 ---- GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ + GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ *************** *** 465,470 **** --- 483,489 ---- GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ + GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ *************** *** 482,487 **** --- 501,507 ---- GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ + GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ *************** *** 511,521 **** --- 531,543 ---- GNULIB_TIMES = @GNULIB_TIMES@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ + GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ + GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ *************** *** 527,534 **** --- 549,558 ---- GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ + GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ + GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ *************** *** 558,563 **** --- 582,590 ---- GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ + GNULIB_WCTOMB = @GNULIB_WCTOMB@ + GNULIB_WCTRANS = @GNULIB_WCTRANS@ + GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ *************** *** 624,630 **** HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ - HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ --- 651,656 ---- *************** *** 665,670 **** --- 691,697 ---- HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ + HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ *************** *** 699,704 **** --- 726,732 ---- HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ + HAVE_PCRE_CONFIG = @HAVE_PCRE_CONFIG@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ *************** *** 717,722 **** --- 745,751 ---- HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGACTION = @HAVE_SIGACTION@ + HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ *************** *** 728,734 **** HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ - HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ --- 757,762 ---- *************** *** 756,761 **** --- 784,790 ---- HAVE_SYS_TIMES_H = @HAVE_SYS_TIMES_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ + HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMES = @HAVE_TIMES@ *************** *** 796,802 **** --- 825,833 ---- HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ + HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ + HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ *************** *** 840,845 **** --- 871,877 ---- LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ + LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ *************** *** 850,855 **** --- 882,888 ---- MAGICK_LDFLAGS = @MAGICK_LDFLAGS@ MAGICK_LIBS = @MAGICK_LIBS@ MAKEINFO = @MAKEINFO@ + MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKOCTFILE_DL_LDFLAGS = @MKOCTFILE_DL_LDFLAGS@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ *************** *** 863,875 **** NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ - NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ --- 896,908 ---- NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ + NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ *************** *** 885,897 **** NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ - NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ --- 918,930 ---- NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ + NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ *************** *** 1004,1009 **** --- 1037,1043 ---- REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ + REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ *************** *** 1024,1029 **** --- 1058,1064 ---- REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ + REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ *************** *** 1042,1050 **** --- 1077,1087 ---- REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ + REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ + REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ *************** *** 1078,1083 **** --- 1115,1121 ---- REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ + REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RLD_FLAG = @RLD_FLAG@ *************** *** 1085,1091 **** ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = /bin/sh SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ --- 1123,1129 ---- ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = @SHELL@ SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ *************** *** 1142,1148 **** WARN_CXXFLAGS = @WARN_CXXFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ - WITH_PCRE_CONFIG = @WITH_PCRE_CONFIG@ X11_INCFLAGS = @X11_INCFLAGS@ X11_LIBS = @X11_LIBS@ XMKMF = @XMKMF@ --- 1180,1185 ---- *************** *** 1160,1165 **** --- 1197,1203 ---- abs_top_srcdir = @abs_top_srcdir@ ac_config_files = @ac_config_files@ ac_config_headers = @ac_config_headers@ + ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ *************** *** 1273,1279 **** localverarchlibdir = @localverarchlibdir@ localverfcnfiledir = @localverfcnfiledir@ localveroctfiledir = @localveroctfiledir@ - lt_ECHO = @lt_ECHO@ man1dir = @man1dir@ man1ext = @man1ext@ --- 1311,1316 ---- *************** *** 1382,1388 **** .SUFFIXES: .SUFFIXES: .dvi .html .info .pdf .ps .texi ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ --- 1419,1425 ---- .SUFFIXES: .SUFFIXES: .dvi .html .info .pdf .ps .texi ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build-aux/common.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ *************** *** 1810,1816 **** define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ --- 1847,1853 ---- define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/build-aux/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ *************** *** 2034,2040 **** endef define do_script_install ! $(top_srcdir)/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ --- 2071,2077 ---- endef define do_script_install ! $(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ Binary files octave-3.4.0/doc/faq/OctaveFAQ.pdf and octave-3.4.1/doc/faq/OctaveFAQ.pdf differ diff -cNr octave-3.4.0/doc/faq/OctaveFAQ.texi octave-3.4.1/doc/faq/OctaveFAQ.texi *** octave-3.4.0/doc/faq/OctaveFAQ.texi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/faq/OctaveFAQ.texi 2011-06-15 11:13:48.000000000 -0400 *************** *** 6,17 **** % 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. ! % % Octave 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 Octave; see the file COPYING. If not, see % . --- 6,17 ---- % 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. ! % % Octave 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 Octave; see the file COPYING. If not, see % . *************** *** 28,34 **** @titlepage @title Octave FAQ @subtitle Frequently asked questions about Octave ! @subtitle September 2008 @sp 1 @author John W. Eaton and David Bateman @page --- 28,34 ---- @titlepage @title Octave FAQ @subtitle Frequently asked questions about Octave ! @subtitle @today{} @sp 1 @author John W. Eaton and David Bateman @page *************** *** 44,71 **** This is a list of frequently asked questions (FAQ) for Octave users. We are always looking for new questions (@emph{with} answers), better ! answers, or both. Please send suggestions to @email{bug@@octave.org}. ! If you have general questions about Octave, or need help for something ! that is not covered by the Octave manual or the FAQ, please use the ! @email{help@@octave.org} mailing list. This FAQ is intended to supplement, not replace, the Octave manual. Before posting a question to the @email{help@@octave.org} mailing list, you should first check to see if the topic is covered in the manual. @menu ! * What is Octave?:: * Licensing Issues:: ! * How can I cite Octave?:: ! * Series 3.0.N:: ! * Octave Features:: ! * Learning more about Octave:: ! * Getting Octave:: ! * Installation:: ! * Common problems:: ! * How do I ...?:: ! * MATLAB compatibility:: ! * Index:: @end menu @node What is Octave? --- 44,71 ---- This is a list of frequently asked questions (FAQ) for Octave users. We are always looking for new questions (@emph{with} answers), better ! answers, or both. Please send suggestions to ! @url{http://bugs.octave.org}. If you have general questions about ! Octave, or need help for something that is not covered by the Octave ! manual or the FAQ, please use the @email{help@@octave.org} mailing list. This FAQ is intended to supplement, not replace, the Octave manual. Before posting a question to the @email{help@@octave.org} mailing list, you should first check to see if the topic is covered in the manual. @menu ! * What is Octave?:: * Licensing Issues:: ! * How can I cite Octave?:: ! * Series 3.4.N:: ! * Octave Features:: ! * Learning more about Octave:: ! * Getting Octave:: ! * Installation:: ! * Common problems:: ! * How do I ...?:: ! * @sc{Matlab} compatibility:: ! * Index:: @end menu @node What is Octave? *************** *** 73,80 **** Octave is a high-level interactive language, primarily intended for numerical computations that is mostly compatible with ! @sc{Matlab}.@footnote{@sc{Matlab} is a registered trademark of The MathWorks, ! Inc.} Octave can do arithmetic for real, complex or integer-valued scalars and matrices, solve sets of nonlinear algebraic equations, integrate --- 73,80 ---- Octave is a high-level interactive language, primarily intended for numerical computations that is mostly compatible with ! @sc{Matlab}.@footnote{@sc{Matlab} is a registered trademark of The ! MathWorks, Inc.} Octave can do arithmetic for real, complex or integer-valued scalars and matrices, solve sets of nonlinear algebraic equations, integrate *************** *** 88,103 **** command history is saved, so that commands entered during previous sessions are not lost. ! The Octave distribution includes a 590+ page Texinfo manual. Access ! to the complete text of the manual is available via the help command ! @c really, the *complete* text? at the Octave prompt. @menu ! * Who develops Octave?:: ! * Why GNU Octave?:: ! * What version should I use?:: ! * On what platforms does Octave run?:: @end menu @node Who develops Octave? --- 88,102 ---- command history is saved, so that commands entered during previous sessions are not lost. ! The Octave distribution includes a 650+ page Texinfo manual. Access to ! the complete text of the manual is available via the @code{doc} command at the Octave prompt. @menu ! * Who develops Octave?:: ! * Why GNU Octave?:: ! * What version should I use?:: ! * On what platforms does Octave run?:: @end menu @node Who develops Octave? *************** *** 105,116 **** Discussions about writing the software that would eventually become Octave started in about 1988 with James B. Rawlings and John W. Eaton at ! the University of Texas. John W. Eaton was the original author of ! Octave, starting full-time development in February 1992. He is still ! the primary maintainer. The community ! of users/developers has in addition contributed some code and fuels the ! discussion on the mailing lists @email{help@@octave.org} (user forum), ! @email{bug@@octave.org} (bug reports), @email{maintainers@@octave.org} (development issues), and @email{octave-dev@@lists.sourceforge.net} (all things related to the Octave Forge repository of user-contributed functions). --- 104,114 ---- Discussions about writing the software that would eventually become Octave started in about 1988 with James B. Rawlings and John W. Eaton at ! the University of Texas. John W. Eaton was the original author of ! Octave, starting full-time development in February 1992. He is still the ! primary maintainer. The community of users/developers has in addition ! contributed some code and fuels the discussion on the mailing lists ! @email{help@@octave.org} (user forum), @email{maintainers@@octave.org} (development issues), and @email{octave-dev@@lists.sourceforge.net} (all things related to the Octave Forge repository of user-contributed functions). *************** *** 140,149 **** @node What version should I use? @section What version should I use? ! In general, you will find the latest version on ! @url{http://www.octave.org/download.html}. It is ! recommended to use the ``testing'' version of octave for general use, ! and the ``development'' version if you want the latest features. A list of user-visible changes since the last release is available in the file @file{NEWS}. The file @file{ChangeLog} in the source --- 138,147 ---- @node What version should I use? @section What version should I use? ! In general, you will find the latest version on ! @url{http://www.octave.org/download.html}. It is recommended to use the ! ``stable'' version of octave for general use, and the ``development'' ! version if you want the latest features. A list of user-visible changes since the last release is available in the file @file{NEWS}. The file @file{ChangeLog} in the source *************** *** 156,175 **** Octave runs on various Unices---at least Linux and Solaris, Mac OS X, Windows and anything you can compile it on. Binary distributions exist at least for Debian, Suse, Fedora and RedHat Linuxes (Intel and AMD ! CPUs, at least), for Mac Os X and Windows' 98, 2000 and XP. ! Two and three dimensional plotting is fully supported using gnuplot. The underlying numerical solvers are currently standard Fortran ones ! like Lapack, Linpack, Odepack, the Blas, etc., packaged in a library of C++ classes. If possible, the Fortran subroutines are compiled with the system's Fortran compiler, and called directly from the C++ functions. If that's not possible, you can still compile Octave if you have the free Fortran to C translator f2c. Octave is also 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. @node Licensing Issues @chapter Licensing Issues --- 154,178 ---- Octave runs on various Unices---at least Linux and Solaris, Mac OS X, Windows and anything you can compile it on. Binary distributions exist at least for Debian, Suse, Fedora and RedHat Linuxes (Intel and AMD ! @c Does Vista work? I get the feeling that even Windows users are trying ! @c to forget Vista like a bad nightmare. Tatsuro only confirmed XP and ! @c 7. I am tentatively assuming that Vista also works. ! CPUs, at least), for Mac OS X and Windows' 98, 2000, XP, Vista, and 7. ! Two and three dimensional plotting is fully supported using gnuplot and ! an experimental OpenGL backend. The underlying numerical solvers are currently standard Fortran ones ! like LAPACK, LINPACK, ODEPACK, the BLAS, etc., packaged in a library of C++ classes. If possible, the Fortran subroutines are compiled with the system's Fortran compiler, and called directly from the C++ functions. If that's not possible, you can still compile Octave if you have the free Fortran to C translator f2c. Octave is also free software; you can redistribute it and/or modify it ! under the terms of the GNU General Public License, version 3, as ! published by the Free Software Foundation, or at your option any later ! version. @node Licensing Issues @chapter Licensing Issues *************** *** 194,200 **** considered a derivative work of Octave and therefore must be released under terms that are compatible with the GPL. ! Code written using Octave's implementation of the Matlab MEX interface may be released under the terms of whatever license you choose, provided that the following conditions are met: --- 197,203 ---- considered a derivative work of Octave and therefore must be released under terms that are compatible with the GPL. ! Code written using Octave's implementation of the @sc{Matlab} MEX interface may be released under the terms of whatever license you choose, provided that the following conditions are met: *************** *** 204,210 **** other words, the MEX file must use the MEX interface only, and not also call on other Octave internals. It should be possible in principle to use the MEX file with other programs that implement the MEX interface ! (e.g., Matlab). @item The MEX file should not be distributed together with Octave in such a --- 207,213 ---- other words, the MEX file must use the MEX interface only, and not also call on other Octave internals. It should be possible in principle to use the MEX file with other programs that implement the MEX interface ! (e.g., @sc{Matlab}). @item The MEX file should not be distributed together with Octave in such a *************** *** 227,233 **** No. The original reason for implementing the MEX interface for Octave was to allow Octave to run free software that uses MEX files (the particular goal was to run SundialsTB in Octave). The intent was to ! liberate that software from Matlab and increase the amount of free software available to Octave users, not to enable people to write proprietary code for Octave. For the good of the community, we strongly encourage users of Octave to release the code they write for Octave --- 230,236 ---- No. The original reason for implementing the MEX interface for Octave was to allow Octave to run free software that uses MEX files (the particular goal was to run SundialsTB in Octave). The intent was to ! liberate that software from @sc{Matlab} and increase the amount of free software available to Octave users, not to enable people to write proprietary code for Octave. For the good of the community, we strongly encourage users of Octave to release the code they write for Octave *************** *** 239,245 **** No. Instead of asking us to change the licensing terms for Octave, we recommend that you release your program under terms that are compatible with the GPL so that the free software community can benefit from your ! work the same as you have benefitted from the work of all the people who have contributed to Octave. @node How can I cite Octave? --- 242,248 ---- No. Instead of asking us to change the licensing terms for Octave, we recommend that you release your program under terms that are compatible with the GPL so that the free software community can benefit from your ! work the same as you have benefited from the work of all the people who have contributed to Octave. @node How can I cite Octave? *************** *** 262,318 **** @end group @end example ! @node Series 3.0.N ! @chapter What's new in version series 3.0.N and 3.1.N of Octave ! The 3.0.N series has enough new features to justify a major version ! number change. The 3.0.N series brings @itemize @bullet ! @item integer types ! @item fixed point arithmetic ! @item sparse matrices ! @item Linear programming code based on GLPK ! @item 64-bit compilation support ! @item gzipped files and stream and consequently support of matlab v7 files ! @item better support for both msvc and mingw ! @item a fully compatible MEX interface ! @item many many other minor features and compatibility changes @end itemize ! Here are some features that have been around since 2.1.N @itemize @bullet ! @item NDarrays ! @item cells ! @end itemize ! The 3.1.N series is the current development release and will become a ! 3.2.N release in the future. This series brings the new features - @itemize @item OpenGL graphics toolkit ! An experimental OpenGL graphics toolkit to replace the gnuplot. @item Object Orient Programming @item Block comments ! @item imwrite and imread The functions are based on the GraphicsMagick library. --- 265,347 ---- @end group @end example ! @node Series 3.4.N ! @chapter What's new in version series 3.4.N and 3.5.N of Octave ! The 3.4.N series has enough new features to justify a minor version ! number change. The full details are in the @file{NEWS} file, but in ! brief 3.4.N series brings: + @c This list is distilled from the NEWS file. Does it have enough + @c things? Does it have too many? @itemize @bullet ! @item ARPACK now distributed with Octave ! @item Indexing optimisations ! @item FTP object using @file{libcurl} ! @item Better consistency with ismatrix, issquare, and issymetric ! @item Function handles aware of overloaded functions ! @item More efficient matrix division by making a single LAPACK call ! @item Other optimisations in matrix operations ! @item @code{bsxfun} optimised for basic arithmetic functions ! @item @sc{Matlab}-style ignoring of output arguments using @samp{~} ! ! @item Many optimisations of the @code{accumarray} function ! ! @item Sparse matrix indexing has been rewritten for speed ! ! @item Configuration pseudo-variables like @code{page_screen_output} ! accept a ``local'' option argument to limit their scope to function ! scope ! ! @item The @code{pkg} command now accepts a @code{-forge} option to pull ! packages directly from Octave-forge ! ! @item Several @code{dlmread} improvements ! ! @item Octave now uses gnulib for better cross-platform compatibility @end itemize ! Here are some features that have been around since 3.2.N @itemize @bullet ! @item integer types ! ! @item fixed point arithmetic ! @item sparse matrices ! @item Linear programming code based on GLPK ! @item 64-bit compilation support ! ! @item gzipped files and stream and consequently support of @sc{Matlab} v7 files ! ! @item better support for both msvc and mingw ! ! @item a fully compatible MEX interface ! ! @item many many other minor features and compatibility changes @item OpenGL graphics toolkit ! An experimental OpenGL graphics toolkit to replace gnuplot. @item Object Orient Programming @item Block comments ! @item imwrite and imread The functions are based on the GraphicsMagick library. *************** *** 327,332 **** --- 356,380 ---- @item Improved array indexing The underlying code used for indexing of arrays has been completely rewritten and so the indexing of arrays is now significantly faster. + + @end itemize + + Here are some older features that have been around since 2.1.N: + + @itemize @bullet + + @item NDarrays + + @item cells + + @end itemize + + The 3.5.N series is the current development release and will become a + 3.6.N release in the future. This series brings the following new + features: + + @itemize + @item Perl-compatible regular expressions are now part of Octave @end itemize *************** *** 335,364 **** @menu * Functions defined on the command-line:: ! * Comments with #:: ! * Strings delimitted by double quotes ":: * Line continuation by backslash:: * Informative block closing:: ! * Coherent syntax:: * Exclamation mark as not operator:: ! * Increment and decrement operators:: ! * Unwind-protect:: * Built-in ODE and DAE solvers:: @end menu ! This section refers to Matlab R2008b and Octave 2.1.51. @node Functions defined on the command-line @section Functions defined on the command-line ! Functions can be defined by entering code on the command line, a ! feature not supported by the other leading brand. For example, you may ! type: @example @group octave:1> function s = hello_string (to_who) ! > ## Say hello > if nargin<1, to_who = "World"; end > s = ["Hello ",\ > to_who]; --- 383,411 ---- @menu * Functions defined on the command-line:: ! * Comments with #:: ! * Strings delimited by double quotes ":: * Line continuation by backslash:: * Informative block closing:: ! * Coherent syntax:: * Exclamation mark as not operator:: ! * Increment and decrement operators:: ! * Unwind-protect:: * Built-in ODE and DAE solvers:: @end menu ! This section refers to @sc{Matlab} R2010b and Octave 3.4.0. @node Functions defined on the command-line @section Functions defined on the command-line ! Functions can be defined by entering code on the command line, a feature ! not supported by @sc{Matlab}. For example, you may type: @example @group octave:1> function s = hello_string (to_who) ! > ## Say hello > if nargin<1, to_who = "World"; end > s = ["Hello ",\ > to_who]; *************** *** 368,391 **** @end group @end example ! @node Comments with # @section Comments with # ! The pound character, @samp{#}, may be used to start comments, in addition ! to @samp{%}. See the previous example. The major advantage of this is ! that as @samp{#} is also a comment character for unix script files, any ! file that starts with a string like @samp{#! /usr/bin/octave -q} will be ! treated as an octave script and be executed by octave. ! ! @node Strings delimitted by double quotes " ! @section Strings delimitted by double quotes " ! The double quote, @samp{"}, may be used to delimit strings, in addition to ! the single quote @samp{'}. See the previous example. Also, double-quoted ! strings include backslash interpretation (like C++, C, and Perl) while ! single quoted are uninterpreted (like Matlab and Perl). ! ! @node Line continuation by backslash ! @section Line continuation by backslash Lines can be continued with a backslash, @samp{\}, in addition to three points @samp{@dots{}}. See the previous example. --- 415,438 ---- @end group @end example ! @node Comments with # @section Comments with # ! The pound character, @samp{#}, may be used to start comments, in ! addition to @samp{%}. See the previous example. The major advantage of ! this is that as @samp{#} is also a comment character for unix script ! files, any file that starts with a string like @samp{#! /usr/bin/octave ! -q} will be treated as an octave script and be executed by octave. ! ! @node Strings delimited by double quotes " ! @section Strings delimited by double quotes " ! The double quote, @samp{"}, may be used to delimit strings, in addition ! to the single quote @samp{'}. See the previous example. Also, ! double-quoted strings include backslash interpretation (like C++, C, and ! Perl) while single quoted are uninterpreted (like @sc{Matlab} and Perl). ! ! @node Line continuation by backslash ! @section Line continuation by backslash Lines can be continued with a backslash, @samp{\}, in addition to three points @samp{@dots{}}. See the previous example. *************** *** 395,401 **** You may close @code{function}, @code{for}, @code{while}, @code{if}, @dots{} blocks with @code{endfunction}, @code{endfor}, @code{endwhile}, ! @dots{} keywords in addition to using @code{end}. As with Matlab, the @code{end} (or @code{endfunction}) keyword that marks the end of a function defined in a @file{.m} file is optional. --- 442,448 ---- You may close @code{function}, @code{for}, @code{while}, @code{if}, @dots{} blocks with @code{endfunction}, @code{endfor}, @code{endwhile}, ! @dots{} keywords in addition to using @code{end}. As with @sc{Matlab}, the @code{end} (or @code{endfunction}) keyword that marks the end of a function defined in a @file{.m} file is optional. *************** *** 415,422 **** @node Exclamation mark as not operator @section Exclamation mark as not operator ! The exclamation mark '!' (aka ``Bang!'') is a negation operator, just ! like the tilde '~': @example @group --- 462,469 ---- @node Exclamation mark as not operator @section Exclamation mark as not operator ! The exclamation mark @samp{!} (aka ``Bang!'') is a negation operator, just ! like the tilde @samp{~}: @example @group *************** *** 429,434 **** --- 476,485 ---- @end group @end example + @noindent + Note however that @sc{Matlab} uses the @samp{!} operator for shell + escapes, for which Octave requires using the @code{system} command. + @node Increment and decrement operators @section Increment and decrement operators *************** *** 457,469 **** For matrix and vector arguments, the increment and decrement operators work on each element of the operand. - @node Unwind-protect @section Unwind-protect @cindex Unwind-protect ! Octave supports a limited form of exception handling modelled after the unwind-protect form of Lisp. The general form of an @code{unwind_protect} block looks like this: --- 508,519 ---- For matrix and vector arguments, the increment and decrement operators work on each element of the operand. @node Unwind-protect @section Unwind-protect @cindex Unwind-protect ! Octave supports a limited form of exception handling modeled after the unwind-protect form of Lisp. The general form of an @code{unwind_protect} block looks like this: *************** *** 479,492 **** @noindent Where @var{body} and @var{cleanup} are both optional and may contain any ! Octave expressions or commands. The statements in @var{cleanup} are guaranteed to be executed regardless of how control exits @var{body}. The @code{unwind_protect} statement is often used to reliably restore the values of global variables that need to be temporarily changed. ! Matlab can be made to do something similar with their @code{OnCleanUp} ! function that was introduced in 2008a. @node Built-in ODE and DAE solvers @section Built-in ODE and DAE solvers --- 529,543 ---- @noindent Where @var{body} and @var{cleanup} are both optional and may contain any ! Octave expressions or commands. The statements in @var{cleanup} are guaranteed to be executed regardless of how control exits @var{body}. The @code{unwind_protect} statement is often used to reliably restore the values of global variables that need to be temporarily changed. ! @sc{Matlab} can be made to do something similar with their ! @code{OnCleanUp} function that was introduced in 2008a. Octave also has ! @code{onCleanup} since version 3.4.0. @node Built-in ODE and DAE solvers @section Built-in ODE and DAE solvers *************** *** 503,520 **** @menu * Documentation:: ! * Getting additional help:: * User community:: * Bug reports:: @end menu - @node Documentation @section What documentation exists for Octave? @cindex Octave, documentation ! The Octave distribution includes a 590+ page manual that is also distributed under the terms of the GNU GPL. It is available on the web at @url{http://www.octave.org/docs.html} and you will also --- 554,570 ---- @menu * Documentation:: ! * Getting additional help:: * User community:: * Bug reports:: @end menu @node Documentation @section What documentation exists for Octave? @cindex Octave, documentation ! The Octave distribution includes a 650+ page manual that is also distributed under the terms of the GNU GPL. It is available on the web at @url{http://www.octave.org/docs.html} and you will also *************** *** 522,534 **** The complete text of the Octave manual is also available using the GNU Info system via the GNU Emacs, info, or xinfo programs, or by using ! the @samp{help -i} command to start the GNU info browser directly from the Octave prompt. If you have problems using this documentation, or find that some topic ! is not adequately explained, indexed, or cross-referenced, please send ! a bug report to @email{bug@@octave.org}. ! @node Getting additional help @section Getting additional help --- 572,583 ---- The complete text of the Octave manual is also available using the GNU Info system via the GNU Emacs, info, or xinfo programs, or by using ! the @samp{doc} command to start the GNU info browser directly from the Octave prompt. If you have problems using this documentation, or find that some topic ! is not adequately explained, indexed, or cross-referenced, please report ! it on @url{http://bugs.octave.org}. @node Getting additional help @section Getting additional help *************** *** 544,551 **** @node User community @section User community ! To subscribe to the list, go to @url{www.octave.org/archive.html} and ! follow the link to the subscription page for the list. @strong{Please do not} send requests to be added or removed from the mailing list, or other administrative trivia to the list itself. --- 593,600 ---- @node User community @section User community ! To subscribe to the list, go to @url{http://www.octave.org/archive.html} ! and follow the link to the subscription page for the list. @strong{Please do not} send requests to be added or removed from the mailing list, or other administrative trivia to the list itself. *************** *** 570,600 **** First, see the section on bugs and bug reports in the Octave manual. When you report a bug, make sure to describe the type of computer you are using, the version of the operating system it is running, and the ! version of Octave that you are using. Also provide enough code so that ! the Octave maintainers can duplicate your bug. ! ! If you have Octave working at all, the easiest way to do this is to use ! the Octave function @code{bug_report}. When you execute this function, ! Octave will prompt you for a subject and then invoke the editor on a ! file that already contains all the configuration information. When you ! exit the editor, Octave will mail the bug report for you (in a unix-like ! operating system). ! ! @cindex Octave bug report ! @cindex Mailing lists, bug-octave ! ! If for some reason you cannot use Octave's @code{bug_report} function, ! mail your bug report to @email{bug@@octave.org}. Your message needs to ! include enough information to allow the maintainers of Octave to fix the ! bug. Please read the section on bugs and bug reports in the Octave ! manual for a list of things that should be included in every bug report. ! @node Getting Octave @chapter Getting Octave @menu ! * Source code:: * Pre-compiled binary packages:: * Octave for other platforms:: @end menu --- 619,633 ---- First, see the section on bugs and bug reports in the Octave manual. When you report a bug, make sure to describe the type of computer you are using, the version of the operating system it is running, and the ! version of Octave that you are using. Also provide enough code and ! configuration details of your operating system so that the Octave ! maintainers can duplicate your bug. @node Getting Octave @chapter Getting Octave @menu ! * Source code:: * Pre-compiled binary packages:: * Octave for other platforms:: @end menu *************** *** 611,619 **** @item @url{ftp://ftp.octave.org/pub/octave/} @end itemize ! Since Octave is distrubted under the terms of the GPL, you can get ! Octave from a friend who has a copy, by anonymous FTP, or by ordering ! a tape or CD-ROM from the Free Software Foundation (FSF). @node Pre-compiled binary packages @section Pre-compiled binary packages --- 644,651 ---- @item @url{ftp://ftp.octave.org/pub/octave/} @end itemize ! Since Octave is distributed under the terms of the GPL, you can get ! Octave from a friend who has a copy, or from the Octave website. @node Pre-compiled binary packages @section Pre-compiled binary packages *************** *** 628,635 **** @item @url{http://wiki.octave.org/wiki.pl?CategoryInstall} @end itemize ! As of today, Octave binaries are available at least on Debian, RedHat, ! Suse and Fedora Linuxes, Mac OS X, Windows' 98, 2000 and XP. @node Octave for other platforms @section How do I get a copy of Octave for (some other platform)? --- 660,668 ---- @item @url{http://wiki.octave.org/wiki.pl?CategoryInstall} @end itemize ! As of today, Octave binaries are available at least on Debian, Ubuntu, ! RedHat, Suse and Fedora GNU/Linuxen, Mac OS X, Windows' 98, 2000 and XP, ! Vista, and 7. @node Octave for other platforms @section How do I get a copy of Octave for (some other platform)? *************** *** 643,656 **** @cindex OS/2 support Octave currently runs on Unix-like systems, Mac OS X, and Windows. ! It should be possible to make Octave work on other systems as well. If you are interested in porting Octave to other systems, please contact ! @email{bug@@octave.org}. @c @menu ! @c * Octave for Unix:: ! @c * Octave for other platforms:: ! @c * latest versions:: @c @end menu @c @cindex Octave, ordering --- 676,689 ---- @cindex OS/2 support Octave currently runs on Unix-like systems, Mac OS X, and Windows. ! It should be possible to make Octave work on other systems as well. If you are interested in porting Octave to other systems, please contact ! @email{maintainers@@octave.org}. @c @menu ! @c * Octave for Unix:: ! @c * Octave for other platforms:: ! @c * latest versions:: @c @end menu @c @cindex Octave, ordering *************** *** 659,675 **** @node Installation @chapter Installation Issues and Problems ! @cindex Octave, building ! Octave 3.2 require approximately 800MB of disk storage to unpack ! and compile from source (considerably less if you don't compile with ! debugging symbols). Once installed, Octave requires approximately 200MB of disk space (again, considerably less if you don't compile with ! debugging symbols). @menu ! * What else do I need?:: ! * Other C++ compilers?:: @end menu @node What else do I need? --- 692,708 ---- @node Installation @chapter Installation Issues and Problems ! @cindex Octave, building ! Octave 3.4 require approximately 1.3 GB of disk storage to unpack and ! compile from source (considerably less if you don't compile with ! debugging symbols). Once installed, Octave requires approximately 355 MB of disk space (again, considerably less if you don't compile with ! debugging symbols, approximately 50 MB). @menu ! * What else do I need?:: ! * Other C++ compilers?:: @end menu @node What else do I need? *************** *** 683,689 **** @cindex GNU Bison To compile Octave, you will need a recent version of GNU Make. You ! will also need GCC 3.3 or later, although GCC 4.1 or later is recommended. @strong{You must have GNU Make to compile octave}. Octave's Makefiles --- 716,722 ---- @cindex GNU Bison To compile Octave, you will need a recent version of GNU Make. You ! will also need GCC 4.3 or later, although GCC 4.4 or later is recommended. @strong{You must have GNU Make to compile octave}. Octave's Makefiles *************** *** 694,703 **** @section Can I compile Octave with another C++ compiler? Yes, but development is done primarily with GCC, so you may hit some ! incompatibilities. Octave is intended to be portable to any standard ! conforming compiler. If you have difficulties that you think are bugs, ! please report them to the @email{bug@@octave.org} mailing list, or ask ! for help on the @email{help@@octave.org} mailing list. @node Common problems @chapter Common problems --- 727,736 ---- @section Can I compile Octave with another C++ compiler? Yes, but development is done primarily with GCC, so you may hit some ! incompatibilities. Octave is intended to be portable to any standard ! conforming compiler. If you have difficulties that you think are bugs, ! please report them to the @url{http://bugs.octave.org} bug tracker, or ! ask for help on the @email{help@@octave.org} mailing list. @node Common problems @chapter Common problems *************** *** 715,733 **** long check your use of the @code{genpath} function. @item ! When plotting Octave occasionally gives me errors like @samp{gnuplot> 9 0.735604 ! line 26317: invalid command}. There is a known bug in gnuplot 4.2 that can cause an off by one error ! while piping data to gnuplot. The relevant gnuplot bug report can be ! found at @url{http://sourceforge.net/tracker/index.php?func=detail&aid=1716556&group_id=2055&atid=102055} If you have obtained your copy of Octave from a distribution please file a bug report requesting that the fix reported in the above bug report be included. @item ! I cannot install a package. Octave complains about a missing @code{mkoctfile}. Most distributions split Octave into several packages. The script @code{mkoctfile} is then part of a separate package: --- 748,766 ---- long check your use of the @code{genpath} function. @item ! When plotting Octave occasionally gives me errors like @samp{gnuplot> 9 ! 0.735604 line 26317: invalid command}. There is a known bug in gnuplot 4.2 that can cause an off by one error ! while piping data to gnuplot. It has been fixed in gnuplot 4.4. If you have obtained your copy of Octave from a distribution please file a bug report requesting that the fix reported in the above bug report be included. @item ! I cannot install a package. Octave complains about a missing ! @code{mkoctfile}. Most distributions split Octave into several packages. The script @code{mkoctfile} is then part of a separate package: *************** *** 735,741 **** @item Debian/Ubuntu ! @code{aptitude install octave3.0-headers} @item Fedora --- 768,776 ---- @item Debian/Ubuntu ! @c This will work once we upload the Octave packages without a version ! @c in their name to Debian. ! @code{aptitude install octave-headers} @item Fedora *************** *** 769,775 **** @end group @end example ! @node MATLAB compatibility @chapter Porting programs from @sc{Matlab} to Octave @cindex @sc{Matlab} compatibility --- 804,810 ---- @end group @end example ! @node @sc{Matlab} compatibility @chapter Porting programs from @sc{Matlab} to Octave @cindex @sc{Matlab} compatibility *************** *** 777,790 **** People often ask ! ``I wrote some code for @sc{Matlab}, and I want to get it running under ! Octave. Is there anything I should watch out for?'' or alternatively ! ``I wrote some code in Octave, and want to share it with @sc{Matlab} ! users. Is there anything I should watch out for?'' which is not quite the same thing. There are still a number of differences between Octave and @sc{Matlab}, however in general differences between the two are considered as bugs. Octave might --- 812,831 ---- People often ask ! @quotation ! I wrote some code for @sc{Matlab}, and I want to get it running under ! Octave. Is there anything I should watch out for? ! @end quotation + @noindent or alternatively ! @quotation ! I wrote some code in Octave, and want to share it with @sc{Matlab} ! users. Is there anything I should watch out for? ! @end quotation + @noindent which is not quite the same thing. There are still a number of differences between Octave and @sc{Matlab}, however in general differences between the two are considered as bugs. Octave might *************** *** 792,803 **** generally functionality is almost identical. If you find a difference between Octave behavior and @sc{Matlab}, then you should send a description of this difference (with code illustrating the difference, ! if possible) to @email{bug@@octave.org}. ! Furthermore, Octave adds a few syntactical extensions to Matlab that ! might cause some issues when exchanging files between Matlab and Octave ! users. As both Octave and @sc{Matlab} are under constant development the ! information in this section is subject to change at anytime. You should also look at the page @url{http://octave.sourceforge.net/packages.html} and --- 833,845 ---- generally functionality is almost identical. If you find a difference between Octave behavior and @sc{Matlab}, then you should send a description of this difference (with code illustrating the difference, ! if possible) to @url{http://bugs.octave.org}. ! Furthermore, Octave adds a few syntactical extensions to @sc{Matlab} ! that might cause some issues when exchanging files between @sc{Matlab} ! and Octave users. As both Octave and @sc{Matlab} are under constant ! development the information in this section is subject to change at ! anytime. You should also look at the page @url{http://octave.sourceforge.net/packages.html} and *************** *** 806,817 **** number of octave function that are available and their @sc{Matlab} compatibility. ! The major differences between Octave 3.2.N and @sc{Matlab} R2008a are: @itemize @bullet @item Nested Functions ! Octave doesn't yet have nested functions. That is @example @group --- 848,859 ---- number of octave function that are available and their @sc{Matlab} compatibility. ! The major differences between Octave 3.4.N and @sc{Matlab} R2010b are: @itemize @bullet @item Nested Functions ! Octave has limited support for nested functions. That is @example @group *************** *** 824,832 **** @end group @end example ! There was discussion in Octave of having these even prior to @sc{Matlab}, ! and the decision was made not to have these in Octave at the time for ! compatibility. The above written with sub-functions functions would be @example @group --- 866,872 ---- @end group @end example ! is equivalent to @example @group *************** *** 839,852 **** @end group @end example ! Now that @sc{Matlab} has recently introduced nested functions, Octave will ! probably have them soon as well. Until then nested functions in Octave ! are treated as sub-functions with the same scoping rules as ! sub-functions. The authors of Octave consider the nested function scoping rules of ! Matlab to be more problems than they are worth as they introduce ! diffiult to find bugs as inadvertantly modifying a variable in a nested function that is also used in the parent is particularly easy. @item Differences in core syntax --- 879,892 ---- @end group @end example ! The main difference with @sc{Matlab} is a matter of scope. While nested ! functions have access to the parent function's scope in @sc{Matlab}, no ! such thing is available in Octave, due to how Octave essentially ! ``un-nests'' nested functions. The authors of Octave consider the nested function scoping rules of ! @sc{Matlab} to be more problems than they are worth as they introduce ! difficult to find bugs as inadvertently modifying a variable in a nested function that is also used in the parent is particularly easy. @item Differences in core syntax *************** *** 864,918 **** though the most common types are accepted. @item ! @sc{Matlab} classdef object oriented programming is not yet supportted, ! though work is underway and when development more on to Octave 3.3 this ! will be included in teh development tree. @end itemize @item Differences in core functions A large number of the @sc{Matlab} core functions (ie those that are in the core and not a toolbox) are implemented, and certainly all of the commonly used ones. There are a few functions that aren't implemented, ! for example @code{condest} or to do with specific missing Octave functionality ! (gui, dll, java, activex, dde, web, and serial functions). Some of the ! core functions have limitations that aren't in the @sc{Matlab} ! version. For example the @code{sprandn} function can not force a ! particular condition number for the matrix like @sc{Matlab} can. @item Just-In-Time compiler @sc{Matlab} includes a "Just-In-Time" compiler. This compiler allows the ! acceleration of for-loops in @sc{Matlab} to almost native performance with ! certain restrictions. The JIT must know the return type of all functions ! called in the loops and so you can't include user functions in the loop ! of JIT optimized loops. Octave doesn't have a JIT and so to some might ! seem slower than @sc{Matlab}. For this reason you must vectorize your code as ! much as possible. The MathWorks themselves have a good document ! discussing vectorization at @url{http://www.mathworks.com/support/tech-notes/1100/1109.html}. @item Compiler On a related point, there is no Octave compiler, and so you can't convert your Octave code into a binary for additional speed or ! distribution. There is an example of how to do this at ! @url{http://www.stud.tu-ilmenau.de/~rueckn/}, but this is a very early ! example code and would need lots of work to complete it. @item Graphic Handles Up to Octave 2.9.9 there was no support for graphic handles in Octave ! itself. In the 3.2.N versions of Octave the support for graphics ! handles is converging towards full compatibility. The @code{patch} ! function is currently limited to 2-D patches, due to an underlying ! limitation in gnuplot. ! ! @item GUI ! There are no @sc{Matlab} compatible GUI functions. There are a number of ! bindings from Octave to Tcl/Tk, Vtk and zenity included in the ! Octave Forge project (@url{http://octave.sourceforge.net}) for example ! that can be used for a GUI, but these are not @sc{Matlab} ! compatible. Work on a matlab compatible GUI is in an alpha stage in the ! JHandles package (@url{http://octave.sourceforge.net/jhandles/index.html}). ! This might be an issue if you intend to exchange Octave code with ! @sc{Matlab} users. @item Simulink Octave itself includes no Simulink support. Typically the simulink --- 904,965 ---- though the most common types are accepted. @item ! @sc{Matlab} classdef object oriented programming is not yet supported, ! though work is underway and when development more on to Octave 3.5 this ! will be included in the development tree. @end itemize @item Differences in core functions A large number of the @sc{Matlab} core functions (ie those that are in the core and not a toolbox) are implemented, and certainly all of the commonly used ones. There are a few functions that aren't implemented, ! usually to do with specific missing Octave functionality (GUI, DLL, ! Java, ActiveX, DDE, web, and serial functions). Some of the core ! functions have limitations that aren't in the @sc{Matlab} version. For ! example the @code{sprandn} function can not force a particular condition ! number for the matrix like @sc{Matlab} can. @item Just-In-Time compiler @sc{Matlab} includes a "Just-In-Time" compiler. This compiler allows the ! acceleration of for-loops in @sc{Matlab} to almost native performance ! with certain restrictions. The JIT must know the return type of all ! functions called in the loops and so you can't include user functions in ! the loop of JIT optimized loops. Octave doesn't have a JIT and so to ! some might seem slower than @sc{Matlab}. For this reason you must ! vectorize your code as much as possible. The MathWorks themselves have a ! good document discussing vectorization at ! @c It would be nice if we had our own guide for this instead of relying ! @c on Matlab documentation. @url{http://www.mathworks.com/support/tech-notes/1100/1109.html}. @item Compiler On a related point, there is no Octave compiler, and so you can't convert your Octave code into a binary for additional speed or ! distribution. There have been several aborted attempts at creating an ! Octave compiler. Should the JIT compiler above ever be implemented, an ! Octave compiler should be more feasible. ! @c Should we mention here any of the efforts to create a compiler? There ! @c used to be a dead link here to http://www.stud.tu-ilmenau.de/~rueckn/ @item Graphic Handles Up to Octave 2.9.9 there was no support for graphic handles in Octave ! itself. In the 3.2.N versions of Octave and beyond the support for ! graphics handles is converging towards full compatibility. The ! @code{patch} function is currently limited to 2-D patches, due to an ! underlying limitation in gnuplot, but the experimental OpenGL backend is ! starting to see an implementation of 3-D patches. ! ! @item GUI ! There are no @sc{Matlab} compatible GUI functions. There are a number of ! bindings from Octave to Tcl/Tk, VTK and Zenity included in the Octave ! @c Is it too early to mention here the nascent fltk UI buttons? ! Forge project (@url{http://octave.sourceforge.net}) for example that can ! be used for a GUI, but these are not @sc{Matlab} compatible. Work on a ! @sc{Matlab} compatible GUI is in an alpha stage in the JHandles package ! @c Is Jhandles still usable? I thought Michael Goffioul had more or less ! @c already disowned it. ! (@url{http://octave.sourceforge.net/jhandles/index.html}). This might be ! an issue if you intend to exchange Octave code with @sc{Matlab} users. @item Simulink Octave itself includes no Simulink support. Typically the simulink *************** *** 920,935 **** in a research environment. However, some @sc{Matlab} users that try to use Octave complain about this lack. There is a similar package to simulink for the Octave and R projects available at @url{http://www.scicraft.org/} @item Mex-Files ! Octave includes an API to the matlab MEX interface. However, as MEX is ! an API to the internals of @sc{Matlab} and the internals of Octave differ from @sc{Matlab}, there is necessarily a manipulation of the data to convert from a MEX interface to the Octave equivalent. This is notable for all complex matrices, where @sc{Matlab} stores complex arrays as real and imaginary parts, whereas Octave respects the C99/C++ ! standards of co-locating the real/imag parts in memory. Also due to the way @sc{Matlab} allows access to the arrays passed through a pointer, the MEX interface might require copies of arrays (even non complex ones). --- 967,983 ---- in a research environment. However, some @sc{Matlab} users that try to use Octave complain about this lack. There is a similar package to simulink for the Octave and R projects available at + @c is this project in any state of usability? @url{http://www.scicraft.org/} @item Mex-Files ! Octave includes an API to the @sc{Matlab} MEX interface. However, as MEX ! is an API to the internals of @sc{Matlab} and the internals of Octave differ from @sc{Matlab}, there is necessarily a manipulation of the data to convert from a MEX interface to the Octave equivalent. This is notable for all complex matrices, where @sc{Matlab} stores complex arrays as real and imaginary parts, whereas Octave respects the C99/C++ ! standards of co-locating the real/imag parts in memory. Also due to the way @sc{Matlab} allows access to the arrays passed through a pointer, the MEX interface might require copies of arrays (even non complex ones). *************** *** 940,977 **** comments are not supported within [] or @{@}. @item Mat-File format ! There are some differences in the mat v5 file format accepted by ! Octave. @sc{Matlab} recently introduced the "-V7.3" save option which is ! an HDF5 format which is particularly useful for 64-bit platforms where ! the standard matlab format can not correctly save variables.. Octave accepts HDF5 files, but is not yet compatible with the "-v7.3" versions ! produced by @sc{Matlab}. ! Although Octave can load inline abd function handles saved by ! @sc{Matlab}, it can not yet save them. ! Finally, Some multi-byte unicode characters aren't yet treated in mat-files. @item Profiler Octave doesn't have a profiler. Though there is a patch for a flat ! profiler, that might become a real profiler sometime in the future. see the thread ! @url{http://www.cae.wisc.edu/pipermail/octave-maintainers/2007-January/001685.html} ! for more details @item Toolboxes Octave is a community project and so the toolboxes that exist are donated by those interested in them through the Octave Forge website (@url{http://octave.sourceforge.net}). These might be lacking in certain functionality relative to the @sc{Matlab} toolboxes, and might not ! exactly duplicate the matlab functionality or interface. @item Short-circuit & and | operators The @code{&} and @code{|} operators in @sc{Matlab} short-circuit when ! included in an if statemant and not otherwise. In Octave only the @code{&&} and @code{||} short circuit. Note that this means that @example --- 988,1026 ---- comments are not supported within [] or @{@}. @item Mat-File format ! There are some differences in the mat v5 file format accepted by Octave. ! @sc{Matlab} recently introduced the "-V7.3" save option which is an HDF5 ! format which is particularly useful for 64-bit platforms where the ! standard @sc{Matlab} format can not correctly save variables. Octave accepts HDF5 files, but is not yet compatible with the "-v7.3" versions ! produced by @sc{Matlab}. ! Although Octave can load inline function handles saved by @sc{Matlab}, ! it can not yet save them. ! Finally, Some multi-byte Unicode characters aren't yet treated in mat-files. @item Profiler Octave doesn't have a profiler. Though there is a patch for a flat ! profiler, that might become a real profiler sometime in the future. See the thread ! @c Did this idea go anywhere? Should it be mentioned? ! @url{http://octave.1599824.n4.nabble.com/Octave-profiler-td1641945.html#a1641947} ! for more details. @item Toolboxes Octave is a community project and so the toolboxes that exist are donated by those interested in them through the Octave Forge website (@url{http://octave.sourceforge.net}). These might be lacking in certain functionality relative to the @sc{Matlab} toolboxes, and might not ! exactly duplicate the @sc{Matlab} functionality or interface. @item Short-circuit & and | operators The @code{&} and @code{|} operators in @sc{Matlab} short-circuit when ! included in an if statement and not otherwise. In Octave only the @code{&&} and @code{||} short circuit. Note that this means that @example *************** *** 983,989 **** @end example and ! @example @group t = a | b; --- 1032,1038 ---- @end example and ! @example @group t = a | b; *************** *** 995,1007 **** @noindent are different in @sc{Matlab}. This is really a @sc{Matlab} bug, but ! there is too much code out there that relies on this behavior to change ! it. Prefer the || and && operators in if statements if possible. ! Note that the difference is also significant when either argument is a ! function with side effects or if the first argument is a scalar and the ! second argument is an empty matrix. For example, note the difference ! between @example @group --- 1044,1065 ---- @noindent are different in @sc{Matlab}. This is really a @sc{Matlab} bug, but ! there is too much code out there that relies on this behaviour to change ! it. Prefer the || and && operators in if statements if possible. If you ! need to use code written for @sc{Matlab} that depends on this buggy ! behaviour, you can enable it since Octave 3.4.0 with the following ! command: ! ! @example ! @group ! do_braindead_shortcircuit_evaluation(1) ! @end group ! @end example ! Note that the difference with @sc{Matlab} is also significant when ! either argument is a function with side effects or if the first argument ! is a scalar and the second argument is an empty matrix. For example, ! note the difference between @example @group *************** *** 1025,1032 **** @end group @end example ! Also @sc{Matlab} requires the operands of && and || to be scalar values but ! Octave does not (it just applies the rule that for an operand to be considered true, every element of the object must be nonzero or logically true). --- 1083,1090 ---- @end group @end example ! Also @sc{Matlab} requires the operands of && and || to be scalar values ! but Octave does not (it just applies the rule that for an operand to be considered true, every element of the object must be nonzero or logically true). *************** *** 1047,1075 **** if ([]) != if (all ([])) @end example ! because @code{samp ([]) == 1} (because, despite the name, it is really returning true if none of the elements of the matrix are zero, and since ! there are no elements, well, none of them are zero). But, somewhere ! along the line, someone decided that if @code{([])} should be false. ! Mathworks probably thought it just looks wrong to have @code{[]} be true ! in this context even if you can use logical gymnastics to convince ! yourself that "all" the elements of a matrix that doesn't actually have ! any elements are nonzero. Octave however duplicates this behavior for if ! statements containing empty matrices. @item Solvers for singular, under- and over-determined matrices ! Matlab's solvers as used by the operators mldivide (\) and mrdivide (/), ! use a different approach than Octave's in the case of singular, under-, ! or over-determined matrices. In the case of a singular matrix, Matlab ! returns the result given by the LU decomposition, even though the underlying ! solver has flagged the result as erroneous. Octave has made the choice ! of falling back to a minimum norm solution of matrices that have been ! flagged as singular which arguably is a better result for these cases. In the case of under- or over-determined matrices, Octave continues to ! use a minimum norm solution, whereas Matlab uses an approach that is ! equivalent to @example @group --- 1105,1135 ---- if ([]) != if (all ([])) @end example ! because @code{samp ([]) == 1} because, despite the name, it is really returning true if none of the elements of the matrix are zero, and since ! there are no elements, well, none of them are zero. This is an example ! of vacuous truth. But, somewhere along the line, someone decided that if ! @code{([])} should be false. Mathworks probably thought it just looks ! wrong to have @code{[]} be true in this context even if you can use ! logical gymnastics to convince yourself that "all" the elements of a ! matrix that doesn't actually have any elements are nonzero. Octave ! however duplicates this behavior for if statements containing empty ! matrices. @item Solvers for singular, under- and over-determined matrices ! @sc{Matlab}'s solvers as used by the operators mldivide (\) and mrdivide ! (/), use a different approach than Octave's in the case of singular, ! under-, or over-determined matrices. In the case of a singular matrix, ! @sc{Matlab} returns the result given by the LU decomposition, even ! though the underlying solver has flagged the result as erroneous. Octave ! has made the choice of falling back to a minimum norm solution of ! matrices that have been flagged as singular which arguably is a better ! result for these cases. In the case of under- or over-determined matrices, Octave continues to ! use a minimum norm solution, whereas @sc{Matlab} uses an approach that ! is equivalent to @example @group *************** *** 1085,1135 **** Octave's minimum norm approach, this approach seems to be inferior in other ways. ! A numerical question arises: how big can the null space component become, ! relative to the minimum-norm solution? Can it be nicely bounded, or can it be ! arbitrarily big? Consider this example: @example @group ! m = 10; ! n = 10000; ! A = ones(m, n) + 1e-6 * randn(m,n); ! b = ones(m, 1) + 1e-6 * randn(m,1); norm(A \ b) @end group @end example @noindent ! while Octave's minimum-norm values are around 3e-2, Matlab's results ! are 50-times larger. For another issue, try this code: @example @group ! m = 5; ! n = 100; ! j = floor(m * rand(1, n)) + 1; b = ones(m, 1); A = zeros(m, n); A(sub2ind(size(A),j,1:n)) = 1; ! x = A \ b; ! [dummy,p] = sort(rand(1,n)); ! y = A(:,p)\b; norm(x(p)-y) @end group @end example @noindent ! It shows that unlike in Octave, mldivide in Matlab is not invariant with respect to column permutations. If there are multiple columns of the same norm, permuting columns of the matrix gets you different result than permuting the solution vector. This will surprise many users. ! Since the mldivide (\) and mrdivide (/) operators are often part of a more ! complex expression, where there is no room to react to warnings or flags, it ! should prefer intelligence (robustness) to speed, and so the Octave developers ! are firmly of the opinion that Octave's approach for singular, under- and ! over-determined matrices is a better choice that Matlab's @item Octave extensions The extensions in Octave over @sc{Matlab} syntax are --- 1145,1196 ---- Octave's minimum norm approach, this approach seems to be inferior in other ways. ! A numerical question arises: how big can the null space component ! become, relative to the minimum-norm solution? Can it be nicely bounded, ! or can it be arbitrarily big? Consider this example: @example @group ! m = 10; ! n = 10000; ! A = ones(m, n) + 1e-6 * randn(m,n); ! b = ones(m, 1) + 1e-6 * randn(m,1); norm(A \ b) @end group @end example @noindent ! while Octave's minimum-norm values are around 3e-2, @sc{Matlab}'s ! results are 50-times larger. For another issue, try this code: @example @group ! m = 5; ! n = 100; ! j = floor(m * rand(1, n)) + 1; b = ones(m, 1); A = zeros(m, n); A(sub2ind(size(A),j,1:n)) = 1; ! x = A \ b; ! [dummy,p] = sort(rand(1,n)); ! y = A(:,p)\b; norm(x(p)-y) @end group @end example @noindent ! It shows that unlike in Octave, mldivide in @sc{Matlab} is not invariant with respect to column permutations. If there are multiple columns of the same norm, permuting columns of the matrix gets you different result than permuting the solution vector. This will surprise many users. ! Since the mldivide (\) and mrdivide (/) operators are often part of a ! more complex expression, where there is no room to react to warnings or ! flags, it should prefer intelligence (robustness) to speed, and so the ! Octave developers are firmly of the opinion that Octave's approach for ! singular, under- and over-determined matrices is a better choice that ! @sc{Matlab}'s @item Octave extensions The extensions in Octave over @sc{Matlab} syntax are *************** *** 1140,1160 **** @itemize @bullet @item Comments in octave can be marked with @samp{#}. This allows POSIX ! systems to have the first line as @samp{#! octave -q} and mark the script ! itself executable. @sc{Matlab} doesn't have this feature due to the ! absence of comments starting with @samp{#}". @item ! Code blocks like if, for, while, etc can be terminated with block ! specific terminations like "endif". @sc{Matlab} doesn't have this and ! all blocks must be terminated with "end" @item ! Octave has a lisp like unwind_protect block that allows blocks of ! code that terminate in an error to ensure that the variables that ! are touched are restored. You can do something similar with @code{try}/@code{catch} combined with @samp{rethrow (lasterror ())} in ! @sc{Matlab}, however rethrow and lasterror are only available in Octave 2.9.10 and later. Note that using @code{try}/@code{catch} combined with @samp{rethrow (lasterror ())} can not guarantee that global variables will be --- 1201,1226 ---- @itemize @bullet @item Comments in octave can be marked with @samp{#}. This allows POSIX ! systems to have the first line as @samp{#! octave -q} and mark the ! script itself executable. @sc{Matlab} doesn't have this feature due to ! the absence of comments starting with @samp{#}". @item ! Code blocks like @code{if}, @code{for}, @code{while}, etc can be ! terminated with block specific terminations like @code{endif}. ! @sc{Matlab} doesn't have this and all blocks must be terminated with ! @code{end}. @item ! Octave has a lisp like @code{unwind_protect} block that allows blocks of ! code that terminate in an error to ensure that the variables that are ! touched are restored. You can do something similar with @code{try}/@code{catch} combined with @samp{rethrow (lasterror ())} in ! @sc{Matlab}, however rethrow and lasterror are only available in Octave ! 2.9.10 and later. @sc{Matlab} 2008a also introduced @code{OnCleanUp} ! that is similar to @code{unwind_protect}, except that the object created ! by this function has to be explicitly cleared in order for the cleanup ! code to run. Note that using @code{try}/@code{catch} combined with @samp{rethrow (lasterror ())} can not guarantee that global variables will be *************** *** 1200,1206 **** Typing Ctrl-C in the first case returns the user directly to the prompt, and the variable "a" is not reset to the saved value. In the second case the variable "a" is reset correctly. Therefore @sc{Matlab} ! gives no save way of temporarily changing global variables. @item Indexing can be applied to all objects in Octave and not just --- 1266,1272 ---- Typing Ctrl-C in the first case returns the user directly to the prompt, and the variable "a" is not reset to the saved value. In the second case the variable "a" is reset correctly. Therefore @sc{Matlab} ! gives no safe way of temporarily changing global variables. @item Indexing can be applied to all objects in Octave and not just *************** *** 1220,1226 **** difference is important on Windows platforms where the "\" character is used in path names, and so single quoted strings should be used in paths. @sc{Matlab} doesn't have double quoted strings and so they should ! be avoided if the code will be transfered to a @sc{Matlab} user. @end itemize @end itemize --- 1286,1292 ---- difference is important on Windows platforms where the "\" character is used in path names, and so single quoted strings should be used in paths. @sc{Matlab} doesn't have double quoted strings and so they should ! be avoided if the code will be transferred to a @sc{Matlab} user. @end itemize @end itemize diff -cNr octave-3.4.0/doc/icons/Makefile.am octave-3.4.1/doc/icons/Makefile.am *** octave-3.4.0/doc/icons/Makefile.am 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/icons/Makefile.am 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/common.mk IMAGE_FILES = \ octave-logo.ico \ --- 18,24 ---- # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/build-aux/common.mk IMAGE_FILES = \ octave-logo.ico \ diff -cNr octave-3.4.0/doc/icons/Makefile.in octave-3.4.1/doc/icons/Makefile.in *** octave-3.4.0/doc/icons/Makefile.in 2011-02-08 05:03:34.000000000 -0500 --- octave-3.4.1/doc/icons/Makefile.in 2011-06-15 11:31:26.000000000 -0400 *************** *** 54,64 **** build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ ! $(top_srcdir)/common.mk subdir = doc/icons ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ --- 54,67 ---- build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ ! $(top_srcdir)/build-aux/common.mk subdir = doc/icons ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/ax_pthread.m4 \ ! $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ *************** *** 66,81 **** $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ --- 69,88 ---- $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filemode.m4 \ ! $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpurge.m4 \ ! $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/fseek.m4 \ ! $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftell.m4 \ ! $(top_srcdir)/m4/ftello.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ *************** *** 89,114 **** $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ ! $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ! $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ! $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ ! $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ ! $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ ! $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \ ! $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memchr.m4 \ ! $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ ! $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkfifo.m4 \ ! $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \ ! $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ ! $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nanosleep.m4 \ ! $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ ! $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/printf.m4 \ ! $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ ! $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \ ! $(top_srcdir)/m4/round.m4 $(top_srcdir)/m4/roundf.m4 \ ! $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/select.m4 \ ! $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ --- 96,123 ---- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ ! $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ ! $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ! $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ ! $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/math_h.m4 \ ! $(top_srcdir)/m4/mathfunc.m4 $(top_srcdir)/m4/mbrtowc.m4 \ ! $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ ! $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/md5.m4 \ ! $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \ ! $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \ ! $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkstemp.m4 \ ! $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ ! $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/multiarch.m4 \ ! $(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/nocrash.m4 \ ! $(top_srcdir)/m4/nproc.m4 $(top_srcdir)/m4/open.m4 \ ! $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ ! $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/readlink.m4 \ ! $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ ! $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/round.m4 \ ! $(top_srcdir)/m4/roundf.m4 $(top_srcdir)/m4/save-cwd.m4 \ ! $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/sigaction.m4 \ ! $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ *************** *** 116,144 **** $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \ ! $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ ! $(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \ ! $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/tempname.m4 \ ! $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ ! $(top_srcdir)/m4/times.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ ! $(top_srcdir)/m4/trunc.m4 $(top_srcdir)/m4/truncf.m4 \ ! $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ ! $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/vasnprintf.m4 \ ! $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ ! $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ ! $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ ! $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/acinclude.m4 \ ! $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = --- 125,150 ---- $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strdup.m4 \ ! $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.m4 \ ! $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ ! $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \ ! $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/times.m4 \ ! $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/trunc.m4 \ ! $(top_srcdir)/m4/truncf.m4 $(top_srcdir)/m4/unistd-safer.m4 \ ! $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ ! $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vsnprintf.m4 \ ! $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ ! $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ ! $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = *************** *** 180,186 **** AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ - ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ --- 186,191 ---- *************** *** 332,337 **** --- 337,344 ---- GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ + GNULIB_FGETC = @GNULIB_FGETC@ + GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ *************** *** 341,349 **** --- 348,358 ---- GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ + GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPL = @GNULIB_FREXPL@ + GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ *************** *** 353,358 **** --- 362,369 ---- GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ + GNULIB_GETC = @GNULIB_GETC@ + GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ *************** *** 365,382 **** --- 376,397 ---- GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ + GNULIB_GETS = @GNULIB_GETS@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ + GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ + GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ + GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ *************** *** 407,412 **** --- 422,428 ---- GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ + GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ *************** *** 423,428 **** --- 439,445 ---- GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ + GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ *************** *** 442,447 **** --- 459,465 ---- GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ + GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ *************** *** 457,462 **** --- 475,481 ---- GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ + GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ *************** *** 474,479 **** --- 493,499 ---- GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ + GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ *************** *** 503,513 **** --- 523,535 ---- GNULIB_TIMES = @GNULIB_TIMES@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ + GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ + GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ *************** *** 519,526 **** --- 541,550 ---- GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ + GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ + GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ *************** *** 550,555 **** --- 574,582 ---- GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ + GNULIB_WCTOMB = @GNULIB_WCTOMB@ + GNULIB_WCTRANS = @GNULIB_WCTRANS@ + GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ *************** *** 616,622 **** HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ - HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ --- 643,648 ---- *************** *** 657,662 **** --- 683,689 ---- HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ + HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ *************** *** 691,696 **** --- 718,724 ---- HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ + HAVE_PCRE_CONFIG = @HAVE_PCRE_CONFIG@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ *************** *** 709,714 **** --- 737,743 ---- HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGACTION = @HAVE_SIGACTION@ + HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ *************** *** 720,726 **** HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ - HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ --- 749,754 ---- *************** *** 748,753 **** --- 776,782 ---- HAVE_SYS_TIMES_H = @HAVE_SYS_TIMES_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ + HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMES = @HAVE_TIMES@ *************** *** 788,794 **** --- 817,825 ---- HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ + HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ + HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ *************** *** 832,837 **** --- 863,869 ---- LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ + LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ *************** *** 842,847 **** --- 874,880 ---- MAGICK_LDFLAGS = @MAGICK_LDFLAGS@ MAGICK_LIBS = @MAGICK_LIBS@ MAKEINFO = @MAKEINFO@ + MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKOCTFILE_DL_LDFLAGS = @MKOCTFILE_DL_LDFLAGS@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ *************** *** 855,867 **** NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ - NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ --- 888,900 ---- NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ + NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ *************** *** 877,889 **** NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ - NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ --- 910,922 ---- NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ + NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ *************** *** 996,1001 **** --- 1029,1035 ---- REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ + REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ *************** *** 1016,1021 **** --- 1050,1056 ---- REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ + REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ *************** *** 1034,1042 **** --- 1069,1079 ---- REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ + REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ + REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ *************** *** 1070,1075 **** --- 1107,1113 ---- REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ + REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RLD_FLAG = @RLD_FLAG@ *************** *** 1077,1083 **** ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = /bin/sh SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ --- 1115,1121 ---- ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = @SHELL@ SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ *************** *** 1134,1140 **** WARN_CXXFLAGS = @WARN_CXXFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ - WITH_PCRE_CONFIG = @WITH_PCRE_CONFIG@ X11_INCFLAGS = @X11_INCFLAGS@ X11_LIBS = @X11_LIBS@ XMKMF = @XMKMF@ --- 1172,1177 ---- *************** *** 1152,1157 **** --- 1189,1195 ---- abs_top_srcdir = @abs_top_srcdir@ ac_config_files = @ac_config_files@ ac_config_headers = @ac_config_headers@ + ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ *************** *** 1265,1271 **** localverarchlibdir = @localverarchlibdir@ localverfcnfiledir = @localverfcnfiledir@ localveroctfiledir = @localveroctfiledir@ - lt_ECHO = @lt_ECHO@ man1dir = @man1dir@ man1ext = @man1ext@ --- 1303,1308 ---- *************** *** 1382,1388 **** all: all-am .SUFFIXES: ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ --- 1419,1425 ---- all: all-am .SUFFIXES: ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build-aux/common.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ *************** *** 1599,1605 **** define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ --- 1636,1642 ---- define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/build-aux/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ *************** *** 1823,1829 **** endef define do_script_install ! $(top_srcdir)/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ --- 1860,1866 ---- endef define do_script_install ! $(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ diff -cNr octave-3.4.0/doc/interpreter/arith.texi octave-3.4.1/doc/interpreter/arith.texi *** octave-3.4.0/doc/interpreter/arith.texi 2011-02-08 05:11:28.000000000 -0500 --- octave-3.4.1/doc/interpreter/arith.texi 2011-06-15 11:39:09.000000000 -0400 *************** *** 701,707 **** @end group @end example - On the contrary, if 'double' is given, the sum is performed in double precision even for single precision inputs. --- 701,706 ---- *************** *** 727,738 **** @deftypefn {Built-in Function} {} cumsum (@var{x}) @deftypefnx {Built-in Function} {} cumsum (@var{x}, @var{dim}) @deftypefnx {Built-in Function} {} cumsum (@dots{}, 'native') Cumulative sum of elements along dimension @var{dim}. If @var{dim} is omitted, it defaults to the first non-singleton dimension. ! The "native" argument implies the summation is performed in native type. ! See @code{sum} for a complete description and example of the use of ! "native". @seealso{@ref{doc-sum,,sum}, @ref{doc-cumprod,,cumprod}} @end deftypefn --- 726,738 ---- @deftypefn {Built-in Function} {} cumsum (@var{x}) @deftypefnx {Built-in Function} {} cumsum (@var{x}, @var{dim}) @deftypefnx {Built-in Function} {} cumsum (@dots{}, 'native') + @deftypefnx {Built-in Function} {} cumsum (@dots{}, 'double') + @deftypefnx {Built-in Function} {} cumsum (@dots{}, 'extra') Cumulative sum of elements along dimension @var{dim}. If @var{dim} is omitted, it defaults to the first non-singleton dimension. ! See @code{sum} for an explanation of the optional parameters 'native', ! 'double', and 'extra'. @seealso{@ref{doc-sum,,sum}, @ref{doc-cumprod,,cumprod}} @end deftypefn *************** *** 875,1114 **** @end deftypefn ! @c curl scripts/general/curl.m ! @anchor{doc-curl} ! @deftypefn {Function File} {[@var{cx}, @var{cy}, @var{cz}, @var{v}] =} curl (@var{x}, @var{y}, @var{z}, @var{fx}, @var{fy}, @var{fz}) ! @deftypefnx {Function File} {[@var{cz}, @var{v}] =} curl (@var{x}, @var{y}, @var{fx}, @var{fy}) ! @deftypefnx {Function File} {[@dots{}] =} curl (@var{fx}, @var{fy}, @var{fz}) ! @deftypefnx {Function File} {[@dots{}] =} curl (@var{fx}, @var{fy}) ! @deftypefnx {Function File} {@var{v} =} curl (@dots{}) ! Calculate curl of vector field given by the arrays @var{fx}, @var{fy}, and ! @var{fz} or @var{fx}, @var{fy} respectively. ! @tex ! $$ curl F(x,y,z) = \left( {\partial{d} \over \partial{y}} F_z - {\partial{d} \over \partial{z}} F_y, {\partial{d} \over \partial{z}} F_x - {\partial{d} \over \partial{x}} F_z, {\partial{d} \over \partial{x}} F_y - {\partial{d} \over \partial{y}} F_x \right)$$ ! @end tex ! @ifnottex @example @group ! / d d d d d d \ ! curl F(x,y,z) = | -- Fz - -- Fy, -- Fx - -- Fz, -- Fy - -- Fx | ! \ dy dz dz dx dx dy / @end group @end example ! ! @end ifnottex ! The coordinates of the vector field can be given by the arguments @var{x}, ! @var{y}, @var{z} or @var{x}, @var{y} respectively. @var{v} calculates the ! scalar component of the angular velocity vector in direction of the z-axis ! for two-dimensional input. For three-dimensional input the scalar ! rotation is calculated at each grid point in direction of the vector field ! at that point. ! @seealso{@ref{doc-divergence,,divergence}, @ref{doc-gradient,,gradient}, @ref{doc-del2,,del2}, @ref{doc-cross,,cross}, @ref{doc-dot,,dot}} @end deftypefn ! @c cross scripts/linear-algebra/cross.m ! @anchor{doc-cross} ! @deftypefn {Function File} {} cross (@var{x}, @var{y}) ! @deftypefnx {Function File} {} cross (@var{x}, @var{y}, @var{dim}) ! Compute the vector cross product of two 3-dimensional vectors ! @var{x} and @var{y}. @example @group ! cross ([1,1,0], [0,1,1]) ! @result{} [ 1; -1; 1 ] @end group @end example ! ! If @var{x} and @var{y} are matrices, the cross product is applied ! along the first dimension with 3 elements. The optional argument ! @var{dim} forces the cross product to be calculated along ! the specified dimension. ! @seealso{@ref{doc-dot,,dot}} @end deftypefn ! @c del2 scripts/general/del2.m ! @anchor{doc-del2} ! @deftypefn {Function File} {@var{d} =} del2 (@var{M}) ! @deftypefnx {Function File} {@var{d} =} del2 (@var{M}, @var{h}) ! @deftypefnx {Function File} {@var{d} =} del2 (@var{M}, @var{dx}, @var{dy}, @dots{}) ! ! Calculate the discrete Laplace ! @tex ! operator $( \nabla^2 )$. ! @end tex ! @ifnottex ! operator. ! @end ifnottex ! For a 2-dimensional matrix @var{M} this is defined as ! @tex ! $$d = {1 \over 4} \left( {d^2 \over dx^2} M(x,y) + {d^2 \over dy^2} M(x,y) \right)$$ ! @end tex ! @ifnottex @example @group ! 1 / d^2 d^2 \ ! D = --- * | --- M(x,y) + --- M(x,y) | ! 4 \ dx^2 dy^2 / @end group @end example - @end ifnottex - For N-dimensional arrays the sum in parentheses is expanded to include second - derivatives over the additional higher dimensions. ! The spacing between evaluation points may be defined by @var{h}, which is a ! scalar defining the equidistant spacing in all dimensions. Alternatively, ! the spacing in each dimension may be defined separately by @var{dx}, ! @var{dy}, etc. A scalar spacing argument defines equidistant spacing, ! whereas a vector argument can be used to specify variable spacing. The ! length of the spacing vectors must match the respective dimension of ! @var{M}. The default spacing value is 1. - At least 3 data points are needed for each dimension. Boundary points are - calculated from the linear extrapolation of interior points. ! @seealso{@ref{doc-gradient,,gradient}, @ref{doc-diff,,diff}} ! @end deftypefn ! @c divergence scripts/general/divergence.m ! @anchor{doc-divergence} ! @deftypefn {Function File} {@var{div} =} divergence (@var{x}, @var{y}, @var{z}, @var{fx}, @var{fy}, @var{fz}) ! @deftypefnx {Function File} {@var{div} =} divergence (@var{fx}, @var{fy}, @var{fz}) ! @deftypefnx {Function File} {@var{div} =} divergence (@var{x}, @var{y}, @var{fx}, @var{fy}) ! @deftypefnx {Function File} {@var{div} =} divergence (@var{fx}, @var{fy}) ! Calculate divergence of a vector field given by the arrays @var{fx}, ! @var{fy}, and @var{fz} or @var{fx}, @var{fy} respectively. ! @tex ! $$ ! div F(x,y,z) = \partial_x{F} + \partial_y{F} + \partial_z{F} ! $$ ! @end tex ! @ifnottex @example @group ! d d d ! div F(x,y,z) = -- F(x,y,z) + -- F(x,y,z) + -- F(x,y,z) ! dx dy dz @end group @end example ! @end ifnottex ! The coordinates of the vector field can be given by the arguments @var{x}, ! @var{y}, @var{z} or @var{x}, @var{y} respectively. ! @seealso{@ref{doc-curl,,curl}, @ref{doc-gradient,,gradient}, @ref{doc-del2,,del2}, @ref{doc-cross,,cross}, @ref{doc-dot,,dot}} @end deftypefn ! @c factor scripts/specfun/factor.m ! @anchor{doc-factor} ! @deftypefn {Function File} {@var{p} =} factor (@var{q}) ! @deftypefnx {Function File} {[@var{p}, @var{n}] =} factor (@var{q}) ! Return prime factorization of @var{q}. That is, ! @code{prod (@var{p}) == @var{q}} and every element of @var{p} is a prime ! number. If @code{@var{q} == 1}, return 1. ! With two output arguments, return the unique primes @var{p} and ! their multiplicities. That is, @code{prod (@var{p} .^ @var{n}) == ! @var{q}}. ! @seealso{@ref{doc-gcd,,gcd}, @ref{doc-lcm,,lcm}} ! @end deftypefn ! @c factorial scripts/specfun/factorial.m ! @anchor{doc-factorial} ! @deftypefn {Function File} {} factorial (@var{n}) ! Return the factorial of @var{n} where @var{n} is a positive integer. If ! @var{n} is a scalar, this is equivalent to @code{prod (1:@var{n})}. For ! vector or matrix arguments, return the factorial of each element in the ! array. For non-integers see the generalized factorial function ! @code{gamma}. ! @seealso{@ref{doc-prod,,prod}, @ref{doc-gamma,,gamma}} ! @end deftypefn ! @c fix src/mappers.cc ! @anchor{doc-fix} ! @deftypefn {Mapping Function} {} fix (@var{x}) ! Truncate fractional portion of @var{x} and return the integer portion. This ! is equivalent to rounding towards zero. If @var{x} is complex, return ! @code{fix (real (@var{x})) + fix (imag (@var{x})) * I}. @example @group ! fix ([-2.7, 2.7]) ! @result{} -2 2 @end group @end example ! @seealso{@ref{doc-ceil,,ceil}, @ref{doc-floor,,floor}, @ref{doc-round,,round}} @end deftypefn ! @c floor src/mappers.cc ! @anchor{doc-floor} ! @deftypefn {Mapping Function} {} floor (@var{x}) ! Return the largest integer not greater than @var{x}. This is equivalent to ! rounding towards negative infinity. If @var{x} is ! complex, return @code{floor (real (@var{x})) + floor (imag (@var{x})) * I}. @example @group ! floor ([-2.7, 2.7]) ! @result{} -3 2 @end group @end example - @seealso{@ref{doc-ceil,,ceil}, @ref{doc-round,,round}, @ref{doc-fix,,fix}} - @end deftypefn - ! @c gcd src/DLD-FUNCTIONS/gcd.cc ! @anchor{doc-gcd} ! @deftypefn {Loadable Function} {@var{g} =} gcd (@var{a1}, @var{a2}, @dots{}) ! @deftypefnx {Loadable Function} {[@var{g}, @var{v1}, @dots{}] =} gcd (@var{a1}, @var{a2}, @dots{}) ! Compute the greatest common divisor of @var{a1}, @var{a2}, @dots{}. If more ! than one argument is given all arguments must be the same size or scalar. ! In this case the greatest common divisor is calculated for each element ! individually. All elements must be ordinary or Gaussian (complex) ! integers. Note that for Gaussian integers, the gcd is not unique up to ! units (multiplication by 1, -1, @var{i} or -@var{i}), so an arbitrary ! greatest common divisor amongst four possible is returned. For example, @noindent ! and @example @group ! gcd ([15, 9], [20, 18]) ! @result{} 5 9 @end group @end example - Optional return arguments @var{v1}, etc., contain integer vectors such - that, ! @tex ! $g = v_1 a_1 + v_2 a_2 + \cdots$ ! @end tex ! @ifnottex @example ! @var{g} = @var{v1} .* @var{a1} + @var{v2} .* @var{a2} + @dots{} @end example ! @end ifnottex ! @seealso{@ref{doc-lcm,,lcm}, @ref{doc-factor,,factor}} @end deftypefn --- 875,1132 ---- @end deftypefn ! @c fix src/mappers.cc ! @anchor{doc-fix} ! @deftypefn {Mapping Function} {} fix (@var{x}) ! Truncate fractional portion of @var{x} and return the integer portion. This ! is equivalent to rounding towards zero. If @var{x} is complex, return ! @code{fix (real (@var{x})) + fix (imag (@var{x})) * I}. @example @group ! fix ([-2.7, 2.7]) ! @result{} -2 2 @end group @end example ! @seealso{@ref{doc-ceil,,ceil}, @ref{doc-floor,,floor}, @ref{doc-round,,round}} @end deftypefn ! @c floor src/mappers.cc ! @anchor{doc-floor} ! @deftypefn {Mapping Function} {} floor (@var{x}) ! Return the largest integer not greater than @var{x}. This is equivalent to ! rounding towards negative infinity. If @var{x} is ! complex, return @code{floor (real (@var{x})) + floor (imag (@var{x})) * I}. @example @group ! floor ([-2.7, 2.7]) ! @result{} -3 2 @end group @end example ! @seealso{@ref{doc-ceil,,ceil}, @ref{doc-round,,round}, @ref{doc-fix,,fix}} @end deftypefn ! @c round src/mappers.cc ! @anchor{doc-round} ! @deftypefn {Mapping Function} {} round (@var{x}) ! Return the integer nearest to @var{x}. If @var{x} is complex, return ! @code{round (real (@var{x})) + round (imag (@var{x})) * I}. @example @group ! round ([-2.7, 2.7]) ! @result{} -3 3 @end group @end example + @seealso{@ref{doc-ceil,,ceil}, @ref{doc-floor,,floor}, @ref{doc-fix,,fix}} + @end deftypefn ! @c roundb src/mappers.cc ! @anchor{doc-roundb} ! @deftypefn {Mapping Function} {} roundb (@var{x}) ! Return the integer nearest to @var{x}. If there are two nearest ! integers, return the even one (banker's rounding). If @var{x} is complex, ! return @code{roundb (real (@var{x})) + roundb (imag (@var{x})) * I}. ! @seealso{@ref{doc-round,,round}} ! @end deftypefn ! @c max src/DLD-FUNCTIONS/max.cc ! @anchor{doc-max} ! @deftypefn {Loadable Function} {} max (@var{x}) ! @deftypefnx {Loadable Function} {} max (@var{x}, @var{y}) ! @deftypefnx {Loadable Function} {} max (@var{x}, @var{y}, @var{dim}) ! @deftypefnx {Loadable Function} {[@var{w}, @var{iw}] =} max (@var{x}) ! For a vector argument, return the maximum value. For a matrix ! argument, return the maximum value from each column, as a row ! vector, or over the dimension @var{dim} if defined. For two matrices ! (or a matrix and scalar), return the pair-wise maximum. ! Thus, + @example + max (max (@var{x})) + @end example ! @noindent ! returns the largest element of the matrix @var{x}, and @example @group ! max (2:5, pi) ! @result{} 3.1416 3.1416 4.0000 5.0000 @end group @end example ! @noindent ! compares each element of the range @code{2:5} with @code{pi}, and ! returns a row vector of the maximum values. ! ! For complex arguments, the magnitude of the elements are used for ! comparison. ! ! If called with one input and two output arguments, ! @code{max} also returns the first index of the ! maximum value(s). Thus, ! @example ! @group ! [x, ix] = max ([1, 3, 5, 2, 5]) ! @result{} x = 5 ! ix = 3 ! @end group ! @end example ! @seealso{@ref{doc-min,,min}, @ref{doc-cummax,,cummax}, @ref{doc-cummin,,cummin}} @end deftypefn ! @c min src/DLD-FUNCTIONS/max.cc ! @anchor{doc-min} ! @deftypefn {Loadable Function} {} min (@var{x}) ! @deftypefnx {Loadable Function} {} min (@var{x}, @var{y}) ! @deftypefnx {Loadable Function} {} min (@var{x}, @var{y}, @var{dim}) ! @deftypefnx {Loadable Function} {[@var{w}, @var{iw}] =} min (@var{x}) ! For a vector argument, return the minimum value. For a matrix ! argument, return the minimum value from each column, as a row ! vector, or over the dimension @var{dim} if defined. For two matrices ! (or a matrix and scalar), return the pair-wise minimum. ! Thus, ! @example ! min (min (@var{x})) ! @end example ! @noindent ! returns the smallest element of @var{x}, and + @example + @group + min (2:5, pi) + @result{} 2.0000 3.0000 3.1416 3.1416 + @end group + @end example ! @noindent ! compares each element of the range @code{2:5} with @code{pi}, and ! returns a row vector of the minimum values. + For complex arguments, the magnitude of the elements are used for + comparison. ! If called with one input and two output arguments, ! @code{min} also returns the first index of the ! minimum value(s). Thus, @example @group ! [x, ix] = min ([1, 3, 0, 2, 0]) ! @result{} x = 0 ! ix = 3 @end group @end example ! @seealso{@ref{doc-max,,max}, @ref{doc-cummin,,cummin}, @ref{doc-cummax,,cummax}} @end deftypefn ! @c cummax src/DLD-FUNCTIONS/max.cc ! @anchor{doc-cummax} ! @deftypefn {Loadable Function} {} cummax (@var{x}) ! @deftypefnx {Loadable Function} {} cummax (@var{x}, @var{dim}) ! @deftypefnx {Loadable Function} {[@var{w}, @var{iw}] =} cummax (@var{x}) ! Return the cumulative maximum values along dimension @var{dim}. If @var{dim} ! is unspecified it defaults to column-wise operation. For example: @example @group ! cummax ([1 3 2 6 4 5]) ! @result{} 1 3 3 6 6 6 @end group @end example + The call + @example + [w, iw] = cummax (x, dim) + @end example ! @noindent ! with @code{x} a vector, is equivalent to the following code: ! @example ! @group ! w = iw = zeros (size (x)); ! for i = 1:length (x) ! [w(i), iw(i)] = max (x(1:i)); ! endfor ! @end group ! @end example @noindent ! but computed in a much faster manner. ! @seealso{@ref{doc-cummin,,cummin}, @ref{doc-max,,max}, @ref{doc-min,,min}} ! @end deftypefn ! ! ! @c cummin src/DLD-FUNCTIONS/max.cc ! @anchor{doc-cummin} ! @deftypefn {Loadable Function} {} cummin (@var{x}) ! @deftypefnx {Loadable Function} {} cummin (@var{x}, @var{dim}) ! @deftypefnx {Loadable Function} {[@var{w}, @var{iw}] =} cummin (@var{x}) ! Return the cumulative minimum values along dimension @var{dim}. If @var{dim} ! is unspecified it defaults to column-wise operation. For example: @example @group ! cummin ([5 4 6 2 3 1]) ! @result{} 5 4 4 2 2 1 @end group @end example ! The call @example ! [w, iw] = cummin (x) @end example ! @noindent ! with @code{x} a vector, is equivalent to the following code: ! @example ! @group ! w = iw = zeros (size (x)); ! for i = 1:length (x) ! [w(i), iw(i)] = max (x(1:i)); ! endfor ! @end group ! @end example ! ! @noindent ! but computed in a much faster manner. ! @seealso{@ref{doc-cummax,,cummax}, @ref{doc-min,,min}, @ref{doc-max,,max}} ! @end deftypefn ! ! ! @c hypot src/data.cc ! @anchor{doc-hypot} ! @deftypefn {Built-in Function} {} hypot (@var{x}, @var{y}) ! @deftypefnx {Built-in Function} {} hypot (@var{x}, @var{y}, @var{z}, @dots{}) ! Compute the element-by-element square root of the sum of the squares of ! @var{x} and @var{y}. This is equivalent to ! @code{sqrt (@var{x}.^2 + @var{y}.^2)}, but calculated in a manner that ! avoids overflows for large values of @var{x} or @var{y}. ! @code{hypot} can also be called with more than 2 arguments; in this case, ! the arguments are accumulated from left to right: ! ! @example ! @group ! hypot (hypot (@var{x}, @var{y}), @var{z}) ! hypot (hypot (hypot (@var{x}, @var{y}), @var{z}), @var{w}), etc. ! @end group ! @end example @end deftypefn *************** *** 1159,1379 **** @end deftypefn ! @c hypot src/data.cc ! @anchor{doc-hypot} ! @deftypefn {Built-in Function} {} hypot (@var{x}, @var{y}) ! @deftypefnx {Built-in Function} {} hypot (@var{x}, @var{y}, @var{z}, @dots{}) ! Compute the element-by-element square root of the sum of the squares of ! @var{x} and @var{y}. This is equivalent to ! @code{sqrt (@var{x}.^2 + @var{y}.^2)}, but calculated in a manner that ! avoids overflows for large values of @var{x} or @var{y}. ! @code{hypot} can also be called with more than 2 arguments; in this case, ! the arguments are accumulated from left to right: @example @group ! hypot (hypot (@var{x}, @var{y}), @var{z}) ! hypot (hypot (hypot (@var{x}, @var{y}), @var{z}), @var{w}), etc. @end group @end example - @end deftypefn - ! @c lcm scripts/elfun/lcm.m ! @anchor{doc-lcm} ! @deftypefn {Mapping Function} {} lcm (@var{x}, @var{y}) ! @deftypefnx {Mapping Function} {} lcm (@var{x}, @var{y}, @dots{}) ! Compute the least common multiple of @var{x} and @var{y}, ! or of the list of all arguments. All elements must be the same size or ! scalar. ! @seealso{@ref{doc-factor,,factor}, @ref{doc-gcd,,gcd}} @end deftypefn ! @c list_primes scripts/miscellaneous/list_primes.m ! @anchor{doc-list_primes} ! @deftypefn {Function File} {} list_primes () ! @deftypefnx {Function File} {} list_primes (@var{n}) ! List the first @var{n} primes. If @var{n} is unspecified, the first ! 25 primes are listed. ! The algorithm used is from page 218 of the @TeX{}book. ! @seealso{@ref{doc-primes,,primes}, @ref{doc-isprime,,isprime}} ! @end deftypefn ! @c max src/DLD-FUNCTIONS/max.cc ! @anchor{doc-max} ! @deftypefn {Loadable Function} {} max (@var{x}) ! @deftypefnx {Loadable Function} {} max (@var{x}, @var{y}) ! @deftypefnx {Loadable Function} {} max (@var{x}, @var{y}, @var{dim}) ! @deftypefnx {Loadable Function} {[@var{w}, @var{iw}] =} max (@var{x}) ! For a vector argument, return the maximum value. For a matrix ! argument, return the maximum value from each column, as a row ! vector, or over the dimension @var{dim} if defined. For two matrices ! (or a matrix and scalar), return the pair-wise maximum. ! Thus, - @example - max (max (@var{x})) - @end example ! @noindent ! returns the largest element of the matrix @var{x}, and @example @group ! max (2:5, pi) ! @result{} 3.1416 3.1416 4.0000 5.0000 @end group @end example ! @noindent ! compares each element of the range @code{2:5} with @code{pi}, and ! returns a row vector of the maximum values. ! For complex arguments, the magnitude of the elements are used for ! comparison. ! If called with one input and two output arguments, ! @code{max} also returns the first index of the ! maximum value(s). Thus, @example @group ! [x, ix] = max ([1, 3, 5, 2, 5]) ! @result{} x = 5 ! ix = 3 @end group @end example - @seealso{@ref{doc-min,,min}, @ref{doc-cummax,,cummax}, @ref{doc-cummin,,cummin}} - @end deftypefn ! @c min src/DLD-FUNCTIONS/max.cc ! @anchor{doc-min} ! @deftypefn {Loadable Function} {} min (@var{x}) ! @deftypefnx {Loadable Function} {} min (@var{x}, @var{y}) ! @deftypefnx {Loadable Function} {} min (@var{x}, @var{y}, @var{dim}) ! @deftypefnx {Loadable Function} {[@var{w}, @var{iw}] =} min (@var{x}) ! For a vector argument, return the minimum value. For a matrix ! argument, return the minimum value from each column, as a row ! vector, or over the dimension @var{dim} if defined. For two matrices ! (or a matrix and scalar), return the pair-wise minimum. ! Thus, ! @example ! min (min (@var{x})) ! @end example ! @noindent ! returns the smallest element of @var{x}, and - @example - @group - min (2:5, pi) - @result{} 2.0000 3.0000 3.1416 3.1416 - @end group - @end example ! @noindent ! compares each element of the range @code{2:5} with @code{pi}, and ! returns a row vector of the minimum values. - For complex arguments, the magnitude of the elements are used for - comparison. ! If called with one input and two output arguments, ! @code{min} also returns the first index of the ! minimum value(s). Thus, ! @example ! @group ! [x, ix] = min ([1, 3, 0, 2, 0]) ! @result{} x = 0 ! ix = 3 ! @end group ! @end example ! @seealso{@ref{doc-max,,max}, @ref{doc-cummin,,cummin}, @ref{doc-cummax,,cummax}} @end deftypefn ! @c cummax src/DLD-FUNCTIONS/max.cc ! @anchor{doc-cummax} ! @deftypefn {Loadable Function} {} cummax (@var{x}) ! @deftypefnx {Loadable Function} {} cummax (@var{x}, @var{dim}) ! @deftypefnx {Loadable Function} {[@var{w}, @var{iw}] =} cummax (@var{x}) ! Return the cumulative maximum values along dimension @var{dim}. If @var{dim} ! is unspecified it defaults to column-wise operation. For example: @example @group ! cummax ([1 3 2 6 4 5]) ! @result{} 1 3 3 6 6 6 @end group @end example ! The call @example ! [w, iw] = cummax (x, dim) @end example ! @noindent ! with @code{x} a vector, is equivalent to the following code: ! @example ! @group ! w = iw = zeros (size (x)); ! for i = 1:length (x) ! [w(i), iw(i)] = max (x(1:i)); ! endfor ! @end group ! @end example ! @noindent ! but computed in a much faster manner. ! @seealso{@ref{doc-cummin,,cummin}, @ref{doc-max,,max}, @ref{doc-min,,min}} @end deftypefn ! @c cummin src/DLD-FUNCTIONS/max.cc ! @anchor{doc-cummin} ! @deftypefn {Loadable Function} {} cummin (@var{x}) ! @deftypefnx {Loadable Function} {} cummin (@var{x}, @var{dim}) ! @deftypefnx {Loadable Function} {[@var{w}, @var{iw}] =} cummin (@var{x}) ! Return the cumulative minimum values along dimension @var{dim}. If @var{dim} ! is unspecified it defaults to column-wise operation. For example: @example @group ! cummin ([5 4 6 2 3 1]) ! @result{} 5 4 4 2 2 1 @end group @end example ! The call ! ! @example ! [w, iw] = cummin (x) ! @end example ! ! @noindent ! with @code{x} a vector, is equivalent to the following code: @example ! @group ! w = iw = zeros (size (x)); ! for i = 1:length (x) ! [w(i), iw(i)] = max (x(1:i)); ! endfor ! @end group @end example ! @noindent ! but computed in a much faster manner. ! @seealso{@ref{doc-cummax,,cummax}, @ref{doc-min,,min}, @ref{doc-max,,max}} @end deftypefn --- 1177,1443 ---- @end deftypefn ! @c dot src/DLD-FUNCTIONS/dot.cc ! @anchor{doc-dot} ! @deftypefn {Loadable Function} {} dot (@var{x}, @var{y}, @var{dim}) ! Compute the dot product of two vectors. If @var{x} and @var{y} ! are matrices, calculate the dot products along the first ! non-singleton dimension. If the optional argument @var{dim} is ! given, calculate the dot products along this dimension. ! ! This is equivalent to ! @code{sum (conj (@var{X}) .* @var{Y}, @var{dim})}, ! but avoids forming a temporary array and is faster. When @var{X} and ! @var{Y} are column vectors, the result is equivalent to ! @code{@var{X}' * @var{Y}}. ! @seealso{@ref{doc-cross,,cross}, @ref{doc-divergence,,divergence}} ! @end deftypefn ! ! ! @c cross scripts/linear-algebra/cross.m ! @anchor{doc-cross} ! @deftypefn {Function File} {} cross (@var{x}, @var{y}) ! @deftypefnx {Function File} {} cross (@var{x}, @var{y}, @var{dim}) ! Compute the vector cross product of two 3-dimensional vectors ! @var{x} and @var{y}. @example @group ! cross ([1,1,0], [0,1,1]) ! @result{} [ 1; -1; 1 ] @end group @end example ! If @var{x} and @var{y} are matrices, the cross product is applied ! along the first dimension with 3 elements. The optional argument ! @var{dim} forces the cross product to be calculated along ! the specified dimension. ! @seealso{@ref{doc-dot,,dot}, @ref{doc-curl,,curl}, @ref{doc-divergence,,divergence}} @end deftypefn ! @c divergence scripts/general/divergence.m ! @anchor{doc-divergence} ! @deftypefn {Function File} {@var{div} =} divergence (@var{x}, @var{y}, @var{z}, @var{fx}, @var{fy}, @var{fz}) ! @deftypefnx {Function File} {@var{div} =} divergence (@var{fx}, @var{fy}, @var{fz}) ! @deftypefnx {Function File} {@var{div} =} divergence (@var{x}, @var{y}, @var{fx}, @var{fy}) ! @deftypefnx {Function File} {@var{div} =} divergence (@var{fx}, @var{fy}) ! Calculate divergence of a vector field given by the arrays @var{fx}, ! @var{fy}, and @var{fz} or @var{fx}, @var{fy} respectively. ! @tex ! $$ ! div F(x,y,z) = \partial_x{F} + \partial_y{F} + \partial_z{F} ! $$ ! @end tex ! @ifnottex ! @example ! @group ! d d d ! div F(x,y,z) = -- F(x,y,z) + -- F(x,y,z) + -- F(x,y,z) ! dx dy dz ! @end group ! @end example + @end ifnottex + The coordinates of the vector field can be given by the arguments @var{x}, + @var{y}, @var{z} or @var{x}, @var{y} respectively. ! @seealso{@ref{doc-curl,,curl}, @ref{doc-gradient,,gradient}, @ref{doc-del2,,del2}, @ref{doc-dot,,dot}} ! @end deftypefn ! @c curl scripts/general/curl.m ! @anchor{doc-curl} ! @deftypefn {Function File} {[@var{cx}, @var{cy}, @var{cz}, @var{v}] =} curl (@var{x}, @var{y}, @var{z}, @var{fx}, @var{fy}, @var{fz}) ! @deftypefnx {Function File} {[@var{cz}, @var{v}] =} curl (@var{x}, @var{y}, @var{fx}, @var{fy}) ! @deftypefnx {Function File} {[@dots{}] =} curl (@var{fx}, @var{fy}, @var{fz}) ! @deftypefnx {Function File} {[@dots{}] =} curl (@var{fx}, @var{fy}) ! @deftypefnx {Function File} {@var{v} =} curl (@dots{}) ! Calculate curl of vector field given by the arrays @var{fx}, @var{fy}, and ! @var{fz} or @var{fx}, @var{fy} respectively. ! @tex ! $$ curl F(x,y,z) = \left( {\partial{d} \over \partial{y}} F_z - {\partial{d} \over \partial{z}} F_y, {\partial{d} \over \partial{z}} F_x - {\partial{d} \over \partial{x}} F_z, {\partial{d} \over \partial{x}} F_y - {\partial{d} \over \partial{y}} F_x \right)$$ ! @end tex ! @ifnottex @example @group ! / d d d d d d \ ! curl F(x,y,z) = | -- Fz - -- Fy, -- Fx - -- Fz, -- Fy - -- Fx | ! \ dy dz dz dx dx dy / @end group @end example ! @end ifnottex ! The coordinates of the vector field can be given by the arguments @var{x}, ! @var{y}, @var{z} or @var{x}, @var{y} respectively. @var{v} calculates the ! scalar component of the angular velocity vector in direction of the z-axis ! for two-dimensional input. For three-dimensional input the scalar ! rotation is calculated at each grid point in direction of the vector field ! at that point. ! @seealso{@ref{doc-divergence,,divergence}, @ref{doc-gradient,,gradient}, @ref{doc-del2,,del2}, @ref{doc-cross,,cross}} ! @end deftypefn ! ! @c del2 scripts/general/del2.m ! @anchor{doc-del2} ! @deftypefn {Function File} {@var{d} =} del2 (@var{M}) ! @deftypefnx {Function File} {@var{d} =} del2 (@var{M}, @var{h}) ! @deftypefnx {Function File} {@var{d} =} del2 (@var{M}, @var{dx}, @var{dy}, @dots{}) ! Calculate the discrete Laplace ! @tex ! operator $( \nabla^2 )$. ! @end tex ! @ifnottex ! operator. ! @end ifnottex ! For a 2-dimensional matrix @var{M} this is defined as ! @tex ! $$d = {1 \over 4} \left( {d^2 \over dx^2} M(x,y) + {d^2 \over dy^2} M(x,y) \right)$$ ! @end tex ! @ifnottex @example @group ! 1 / d^2 d^2 \ ! D = --- * | --- M(x,y) + --- M(x,y) | ! 4 \ dx^2 dy^2 / @end group @end example + @end ifnottex + For N-dimensional arrays the sum in parentheses is expanded to include second + derivatives over the additional higher dimensions. ! The spacing between evaluation points may be defined by @var{h}, which is a ! scalar defining the equidistant spacing in all dimensions. Alternatively, ! the spacing in each dimension may be defined separately by @var{dx}, ! @var{dy}, etc. A scalar spacing argument defines equidistant spacing, ! whereas a vector argument can be used to specify variable spacing. The ! length of the spacing vectors must match the respective dimension of ! @var{M}. The default spacing value is 1. ! At least 3 data points are needed for each dimension. Boundary points are ! calculated from the linear extrapolation of interior points. ! @seealso{@ref{doc-gradient,,gradient}, @ref{doc-diff,,diff}} ! @end deftypefn ! @c factorial scripts/specfun/factorial.m ! @anchor{doc-factorial} ! @deftypefn {Function File} {} factorial (@var{n}) ! Return the factorial of @var{n} where @var{n} is a positive integer. If ! @var{n} is a scalar, this is equivalent to @code{prod (1:@var{n})}. For ! vector or matrix arguments, return the factorial of each element in the ! array. For non-integers see the generalized factorial function ! @code{gamma}. ! @seealso{@ref{doc-prod,,prod}, @ref{doc-gamma,,gamma}} ! @end deftypefn ! @c factor scripts/specfun/factor.m ! @anchor{doc-factor} ! @deftypefn {Function File} {@var{p} =} factor (@var{q}) ! @deftypefnx {Function File} {[@var{p}, @var{n}] =} factor (@var{q}) ! Return prime factorization of @var{q}. That is, ! @code{prod (@var{p}) == @var{q}} and every element of @var{p} is a prime ! number. If @code{@var{q} == 1}, return 1. ! ! With two output arguments, return the unique primes @var{p} and ! their multiplicities. That is, @code{prod (@var{p} .^ @var{n}) == ! @var{q}}. ! @seealso{@ref{doc-gcd,,gcd}, @ref{doc-lcm,,lcm}} @end deftypefn ! @c gcd src/DLD-FUNCTIONS/gcd.cc ! @anchor{doc-gcd} ! @deftypefn {Loadable Function} {@var{g} =} gcd (@var{a1}, @var{a2}, @dots{}) ! @deftypefnx {Loadable Function} {[@var{g}, @var{v1}, @dots{}] =} gcd (@var{a1}, @var{a2}, @dots{}) ! ! Compute the greatest common divisor of @var{a1}, @var{a2}, @dots{}. If more ! than one argument is given all arguments must be the same size or scalar. ! In this case the greatest common divisor is calculated for each element ! individually. All elements must be ordinary or Gaussian (complex) ! integers. Note that for Gaussian integers, the gcd is not unique up to ! units (multiplication by 1, -1, @var{i} or -@var{i}), so an arbitrary ! greatest common divisor amongst four possible is returned. For example, ! ! @noindent ! and @example @group ! gcd ([15, 9], [20, 18]) ! @result{} 5 9 @end group @end example ! Optional return arguments @var{v1}, etc., contain integer vectors such ! that, ! ! @tex ! $g = v_1 a_1 + v_2 a_2 + \cdots$ ! @end tex ! @ifnottex @example ! @var{g} = @var{v1} .* @var{a1} + @var{v2} .* @var{a2} + @dots{} @end example ! @end ifnottex ! @seealso{@ref{doc-lcm,,lcm}, @ref{doc-factor,,factor}} ! @end deftypefn ! ! @c lcm scripts/elfun/lcm.m ! @anchor{doc-lcm} ! @deftypefn {Mapping Function} {} lcm (@var{x}, @var{y}) ! @deftypefnx {Mapping Function} {} lcm (@var{x}, @var{y}, @dots{}) ! Compute the least common multiple of @var{x} and @var{y}, ! or of the list of all arguments. All elements must be the same size or ! scalar. ! @seealso{@ref{doc-factor,,factor}, @ref{doc-gcd,,gcd}} @end deftypefn ! @c chop scripts/general/chop.m ! @anchor{doc-chop} ! @deftypefn {Function File} {} chop (@var{x}, @var{ndigits}, @var{base}) ! Truncate elements of @var{x} to a length of @var{ndigits} such that the ! resulting numbers are exactly divisible by @var{base}. If @var{base} is not ! specified it defaults to 10. @example @group ! chop (-pi, 5, 10) ! @result{} -3.14200000000000 ! chop (-pi, 5, 5) ! @result{} -3.14150000000000 @end group @end example + @end deftypefn ! @c rem src/data.cc ! @anchor{doc-rem} ! @deftypefn {Mapping Function} {} rem (@var{x}, @var{y}) ! @deftypefnx {Mapping Function} {} fmod (@var{x}, @var{y}) ! Return the remainder of the division @code{@var{x} / @var{y}}, computed ! using the expression @example ! x - y .* fix (x ./ y) @end example ! An error message is printed if the dimensions of the arguments do not ! agree, or if either of the arguments is complex. ! @seealso{@ref{doc-mod,,mod}} @end deftypefn *************** *** 1420,1465 **** @end deftypefn ! @c rem src/data.cc ! @anchor{doc-rem} ! @deftypefn {Mapping Function} {} rem (@var{x}, @var{y}) ! @deftypefnx {Mapping Function} {} fmod (@var{x}, @var{y}) ! Return the remainder of the division @code{@var{x} / @var{y}}, computed ! using the expression ! ! @example ! x - y .* fix (x ./ y) ! @end example ! ! An error message is printed if the dimensions of the arguments do not ! agree, or if either of the arguments is complex. ! @seealso{@ref{doc-mod,,mod}} ! @end deftypefn ! ! ! @c round src/mappers.cc ! @anchor{doc-round} ! @deftypefn {Mapping Function} {} round (@var{x}) ! Return the integer nearest to @var{x}. If @var{x} is complex, return ! @code{round (real (@var{x})) + round (imag (@var{x})) * I}. ! ! @example ! @group ! round ([-2.7, 2.7]) ! @result{} -3 3 ! @end group ! @end example ! @seealso{@ref{doc-ceil,,ceil}, @ref{doc-floor,,floor}, @ref{doc-fix,,fix}} ! @end deftypefn ! ! @c roundb src/mappers.cc ! @anchor{doc-roundb} ! @deftypefn {Mapping Function} {} roundb (@var{x}) ! Return the integer nearest to @var{x}. If there are two nearest ! integers, return the even one (banker's rounding). If @var{x} is complex, ! return @code{roundb (real (@var{x})) + roundb (imag (@var{x})) * I}. ! @seealso{@ref{doc-round,,round}} @end deftypefn --- 1484,1498 ---- @end deftypefn ! @c list_primes scripts/miscellaneous/list_primes.m ! @anchor{doc-list_primes} ! @deftypefn {Function File} {} list_primes () ! @deftypefnx {Function File} {} list_primes (@var{n}) ! List the first @var{n} primes. If @var{n} is unspecified, the first ! 25 primes are listed. ! The algorithm used is from page 218 of the @TeX{}book. ! @seealso{@ref{doc-primes,,primes}, @ref{doc-isprime,,isprime}} @end deftypefn *************** *** 1551,1557 **** @table @code @item besselj ! Bessel functions of the first kind. If the argument @var{opt} is supplied, the result is multiplied by @code{exp(-abs(imag(@var{x})))}. @item bessely --- 1584,1590 ---- @table @code @item besselj ! Bessel functions of the first kind. If the argument @var{opt} is supplied, the result is multiplied by @code{exp(-abs(imag(@var{x})))}. @item bessely *************** *** 1634,1643 **** @c betainc src/DLD-FUNCTIONS/betainc.cc @anchor{doc-betainc} @deftypefn {Mapping Function} {} betainc (@var{x}, @var{a}, @var{b}) ! Return the incomplete Beta function, @tex $$ ! \beta (x, a, b) = B (a, b)^{-1} \int_0^x t^{(a-z)} (1-t)^{(b-1)} dt. $$ @end tex @ifnottex --- 1667,1676 ---- @c betainc src/DLD-FUNCTIONS/betainc.cc @anchor{doc-betainc} @deftypefn {Mapping Function} {} betainc (@var{x}, @var{a}, @var{b}) ! Return the regularized incomplete Beta function, @tex $$ ! I (x, a, b) = {1 \over {B (a, b)}} \int_0^x t^{(a-z)} (1-t)^{(b-1)} dt. $$ @end tex @ifnottex *************** *** 1645,1655 **** @smallexample @group ! x ! / ! betainc (x, a, b) = beta (a, b)^(-1) | t^(a-1) (1-t)^(b-1) dt. ! / ! t=0 @end group @end smallexample --- 1678,1689 ---- @smallexample @group ! @c spacing appears odd here, but is correct after Makeinfo ! x ! 1 / ! betainc (x, a, b) = ----------- | t^(a-1) (1-t)^(b-1) dt. ! beta (a, b) / ! t=0 @end group @end smallexample *************** *** 1667,1682 **** Return the natural logarithm of the Beta function, @tex $$ ! B (a, b) = \log {\Gamma (a) \Gamma (b) \over \Gamma (a + b)}. $$ @end tex @ifnottex @example ! betaln (a, b) = gammaln (a) + gammaln (b) - gammaln (a + b) @end example @end ifnottex @seealso{@ref{doc-beta,,beta}, @ref{doc-betainc,,betainc}, @ref{doc-gammaln,,gammaln}} @end deftypefn --- 1701,1717 ---- Return the natural logarithm of the Beta function, @tex $$ ! {\rm betaln} (a, b) = \ln (B (a,b)) \equiv \ln ({\Gamma (a) \Gamma (b) \over \Gamma (a + b)}). $$ @end tex @ifnottex @example ! betaln (a, b) = log (beta (a, b)) @end example @end ifnottex + calculated in a way to reduce the occurrence of underflow. @seealso{@ref{doc-beta,,beta}, @ref{doc-betainc,,betainc}, @ref{doc-gammaln,,gammaln}} @end deftypefn *************** *** 1830,1840 **** @example @group ! z ! / erf (z) = (2/sqrt (pi)) | e^(-t^2) dt ! / ! t=0 @end group @end example --- 1865,1876 ---- @example @group ! @c spacing appears odd here, but is correct after Makeinfo ! z ! / erf (z) = (2/sqrt (pi)) | e^(-t^2) dt ! / ! t=0 @end group @end example *************** *** 1851,1857 **** $1 - {\rm erf} (z)$. @end tex @ifnottex ! @code{1 - erf (@var{z})}. @end ifnottex @seealso{@ref{doc-erfcx,,erfcx}, @ref{doc-erf,,erf}, @ref{doc-erfinv,,erfinv}} @end deftypefn --- 1887,1893 ---- $1 - {\rm erf} (z)$. @end tex @ifnottex ! @w{@code{1 - erf (@var{z})}}. @end ifnottex @seealso{@ref{doc-erfcx,,erfcx}, @ref{doc-erf,,erf}, @ref{doc-erfinv,,erfinv}} @end deftypefn *************** *** 1862,1871 **** @deftypefn {Mapping Function} {} erfcx (@var{z}) Compute the scaled complementary error function, @tex ! $z^2 (1 - {\rm erf} (z))$. @end tex @ifnottex ! @code{z^2*(1 - erf (@var{z}))}. @end ifnottex @seealso{@ref{doc-erfc,,erfc}, @ref{doc-erf,,erf}, @ref{doc-erfinv,,erfinv}} @end deftypefn --- 1898,1913 ---- @deftypefn {Mapping Function} {} erfcx (@var{z}) Compute the scaled complementary error function, @tex ! $$ ! e^{z^2} {\rm erfc} (z) \equiv e^{z^2} (1 - {\rm erf} (z)) ! $$ @end tex @ifnottex ! ! @example ! exp (z^2) * erfc (x) ! @end example ! @end ifnottex @seealso{@ref{doc-erfc,,erfc}, @ref{doc-erf,,erf}, @ref{doc-erfinv,,erfinv}} @end deftypefn *************** *** 1877,1883 **** Compute the inverse error function, i.e., @var{y} such that @example ! erf(@var{y}) == @var{x} @end example @seealso{@ref{doc-erf,,erf}, @ref{doc-erfc,,erfc}, @ref{doc-erfcx,,erfcx}} @end deftypefn --- 1919,1925 ---- Compute the inverse error function, i.e., @var{y} such that @example ! erf (@var{y}) == @var{x} @end example @seealso{@ref{doc-erf,,erf}, @ref{doc-erfc,,erfc}, @ref{doc-erfcx,,erfcx}} @end deftypefn *************** *** 1896,1906 **** @example @group ! infinity ! / gamma (z) = | t^(z-1) exp (-t) dt. ! / ! t=0 @end group @end example --- 1938,1949 ---- @example @group ! @c spacing appears odd here, but is correct after Makeinfo ! infinity ! / gamma (z) = | t^(z-1) exp (-t) dt. ! / ! t=0 @end group @end example diff -cNr octave-3.4.0/doc/interpreter/arith.txi octave-3.4.1/doc/interpreter/arith.txi *** octave-3.4.0/doc/interpreter/arith.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/arith.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 198,248 **** @DOCSTRING(ceil) ! @DOCSTRING(curl) ! ! @DOCSTRING(cross) ! @DOCSTRING(del2) ! @DOCSTRING(divergence) ! @DOCSTRING(factor) ! @DOCSTRING(factorial) ! @DOCSTRING(fix) ! @DOCSTRING(floor) ! @DOCSTRING(fmod) ! @DOCSTRING(gcd) @DOCSTRING(gradient) ! @DOCSTRING(hypot) ! @DOCSTRING(lcm) ! @DOCSTRING(list_primes) ! @DOCSTRING(max) ! @DOCSTRING(min) ! @DOCSTRING(cummax) ! @DOCSTRING(cummin) ! @DOCSTRING(mod) ! @DOCSTRING(primes) @DOCSTRING(rem) ! @DOCSTRING(round) ! @DOCSTRING(roundb) @DOCSTRING(sign) --- 198,250 ---- @DOCSTRING(ceil) ! @DOCSTRING(fix) ! @DOCSTRING(floor) ! @DOCSTRING(round) ! @DOCSTRING(roundb) ! @DOCSTRING(max) ! @DOCSTRING(min) ! @DOCSTRING(cummax) ! @DOCSTRING(cummin) ! @DOCSTRING(hypot) @DOCSTRING(gradient) ! @DOCSTRING(dot) ! @DOCSTRING(cross) ! @DOCSTRING(divergence) ! @DOCSTRING(curl) ! @DOCSTRING(del2) ! @DOCSTRING(factorial) ! @DOCSTRING(factor) ! @DOCSTRING(gcd) ! @DOCSTRING(lcm) ! ! @DOCSTRING(chop) @DOCSTRING(rem) ! @DOCSTRING(mod) ! @DOCSTRING(primes) ! ! @DOCSTRING(list_primes) @DOCSTRING(sign) diff -cNr octave-3.4.0/doc/interpreter/audio.texi octave-3.4.1/doc/interpreter/audio.texi *** octave-3.4.0/doc/interpreter/audio.texi 2011-02-08 05:11:28.000000000 -0500 --- octave-3.4.1/doc/interpreter/audio.texi 2011-06-15 11:39:09.000000000 -0400 *************** *** 75,81 **** @c loadaudio scripts/audio/loadaudio.m @anchor{doc-loadaudio} @deftypefn {Function File} {} loadaudio (@var{name}, @var{ext}, @var{bps}) ! Loads audio data from the file @file{@var{name}.@var{ext}} into the vector @var{x}. The extension @var{ext} determines how the data in the audio file is --- 75,81 ---- @c loadaudio scripts/audio/loadaudio.m @anchor{doc-loadaudio} @deftypefn {Function File} {} loadaudio (@var{name}, @var{ext}, @var{bps}) ! Load audio data from the file @file{@var{name}.@var{ext}} into the vector @var{x}. The extension @var{ext} determines how the data in the audio file is *************** *** 92,98 **** @c saveaudio scripts/audio/saveaudio.m @anchor{doc-saveaudio} @deftypefn {Function File} {} saveaudio (@var{name}, @var{x}, @var{ext}, @var{bps}) ! Saves a vector @var{x} of audio data to the file @file{@var{name}.@var{ext}}. The optional parameters @var{ext} and @var{bps} determine the encoding and the number of bits per sample used in the audio file (see @code{loadaudio}); defaults are @file{lin} and --- 92,98 ---- @c saveaudio scripts/audio/saveaudio.m @anchor{doc-saveaudio} @deftypefn {Function File} {} saveaudio (@var{name}, @var{x}, @var{ext}, @var{bps}) ! Save a vector @var{x} of audio data to the file @file{@var{name}.@var{ext}}. The optional parameters @var{ext} and @var{bps} determine the encoding and the number of bits per sample used in the audio file (see @code{loadaudio}); defaults are @file{lin} and *************** *** 113,119 **** @anchor{doc-playaudio} @deftypefn {Function File} {} playaudio (@var{name}, @var{ext}) @deftypefnx {Function File} {} playaudio (@var{x}) ! Plays the audio file @file{@var{name}.@var{ext}} or the audio data stored in the vector @var{x}. @seealso{@ref{doc-lin2mu,,lin2mu}, @ref{doc-mu2lin,,mu2lin}, @ref{doc-loadaudio,,loadaudio}, @ref{doc-saveaudio,,saveaudio}, @ref{doc-setaudio,,setaudio}, @ref{doc-record,,record}} @end deftypefn --- 113,119 ---- @anchor{doc-playaudio} @deftypefn {Function File} {} playaudio (@var{name}, @var{ext}) @deftypefnx {Function File} {} playaudio (@var{x}) ! Play the audio file @file{@var{name}.@var{ext}} or the audio data stored in the vector @var{x}. @seealso{@ref{doc-lin2mu,,lin2mu}, @ref{doc-mu2lin,,mu2lin}, @ref{doc-loadaudio,,loadaudio}, @ref{doc-saveaudio,,saveaudio}, @ref{doc-setaudio,,setaudio}, @ref{doc-record,,record}} @end deftypefn *************** *** 122,128 **** @c record scripts/audio/record.m @anchor{doc-record} @deftypefn {Function File} {} record (@var{sec}, @var{sampling_rate}) ! Records @var{sec} seconds of audio input into the vector @var{x}. The default value for @var{sampling_rate} is 8000 samples per second, or 8kHz. The program waits until the user types @key{RET} and then immediately starts to record. --- 122,128 ---- @c record scripts/audio/record.m @anchor{doc-record} @deftypefn {Function File} {} record (@var{sec}, @var{sampling_rate}) ! Record @var{sec} seconds of audio input into the vector @var{x}. The default value for @var{sampling_rate} is 8000 samples per second, or 8kHz. The program waits until the user types @key{RET} and then immediately starts to record. *************** *** 147,155 **** in vector @var{y}. If the file contains multichannel data, then @var{y} is a matrix with the channels represented as columns. ! @deftypefnx {Function File} {[@var{y}, @var{Fs}, @var{bits}] =} wavread (@var{filename}) Additionally return the sample rate (@var{fs}) in Hz and the number of bits ! per sample (@var{bits}). @deftypefnx {Function File} {[@dots{}] =} wavread (@var{filename}, @var{n}) Read only the first @var{n} samples from each channel. --- 147,155 ---- in vector @var{y}. If the file contains multichannel data, then @var{y} is a matrix with the channels represented as columns. ! @deftypefnx {Function File} {[@var{y}, @var{Fs}, @var{bps}] =} wavread (@var{filename}) Additionally return the sample rate (@var{fs}) in Hz and the number of bits ! per sample (@var{bps}). @deftypefnx {Function File} {[@dots{}] =} wavread (@var{filename}, @var{n}) Read only the first @var{n} samples from each channel. *************** *** 167,176 **** @c wavwrite scripts/audio/wavwrite.m @anchor{doc-wavwrite} @deftypefn {Function File} {} wavwrite (@var{y}, @var{filename}) ! @deftypefnx {Function File} {} wavwrite (@var{y}, @var{fs}, @var{filename}) ! @deftypefnx {Function File} {} wavwrite (@var{y}, @var{fs}, @var{bits}, @var{filename}) Write @var{y} to the canonical RIFF/WAVE sound file @var{filename} ! with sample rate @var{fs} and bits per sample @var{bits}. The default sample rate is 8000 Hz with 16-bits per sample. Each column of the data represents a separate channel. @seealso{@ref{doc-wavread,,wavread}} --- 167,176 ---- @c wavwrite scripts/audio/wavwrite.m @anchor{doc-wavwrite} @deftypefn {Function File} {} wavwrite (@var{y}, @var{filename}) ! @deftypefnx {Function File} {} wavwrite (@var{y}, @var{Fs}, @var{filename}) ! @deftypefnx {Function File} {} wavwrite (@var{y}, @var{Fs}, @var{bps}, @var{filename}) Write @var{y} to the canonical RIFF/WAVE sound file @var{filename} ! with sample rate @var{Fs} and bits per sample @var{bps}. The default sample rate is 8000 Hz with 16-bits per sample. Each column of the data represents a separate channel. @seealso{@ref{doc-wavread,,wavread}} diff -cNr octave-3.4.0/doc/interpreter/basics.texi octave-3.4.1/doc/interpreter/basics.texi *** octave-3.4.0/doc/interpreter/basics.texi 2011-02-08 05:11:28.000000000 -0500 --- octave-3.4.1/doc/interpreter/basics.texi 2011-06-15 11:39:09.000000000 -0400 *************** *** 217,222 **** --- 217,223 ---- confirm_recursive_rmdir = false crash_dumps_octave_core = false default_save_options = "-mat-binary" + do_braindead_shortcircuit_evaluation = true fixed_point_format = true history_timestamp_format_string = "%%-- %D %I:%M %p --%%" page_screen_output = false *************** *** 374,379 **** --- 375,393 ---- invoke Octave with the @option{--verbose} option but without the @option{--silent} option. + The @code{dump_prefs} function is useful for determining what customizations + to Octave are possible and which are in effect. + + @c dump_prefs scripts/miscellaneous/dump_prefs.m + @anchor{doc-dump_prefs} + @deftypefn {Function File} {} dump_prefs () + @deftypefnx {Function File} {} dump_prefs (@var{fid}) + Dump all of the current user preference variables in a format that can be + parsed by Octave later. @var{fid} is a file descriptor as returned by + @code{fopen}. If @var{file} is omitted, the listing is printed to stdout. + @end deftypefn + + @node Quitting Octave @section Quitting Octave @cindex exiting octave *************** *** 605,610 **** --- 619,693 ---- @end deftypefn + The following functions are principally used internally by Octave for + generating the documentation. They are documented here for completeness + and because they may occasionally be useful for users. + + @c gen_doc_cache scripts/help/gen_doc_cache.m + @anchor{doc-gen_doc_cache} + @deftypefn {Function File} {} gen_doc_cache (@var{out_file}, @var{directory}) + Generate documentation caches for all functions in a given directory. + + A documentation cache is generated for all functions in @var{directory}. + The + resulting cache is saved in the file @var{out_file}. + The cache is used to speed up @code{lookfor}. + + If no directory is given (or it is the empty matrix), a cache for builtin + operators, etc. is generated. + + @seealso{@ref{doc-lookfor,,lookfor}, @ref{doc-path,,path}} + @end deftypefn + + + @c get_help_text src/help.cc + @anchor{doc-get_help_text} + @deftypefn {Loadable Function} {[@var{text}, @var{format}] =} get_help_text (@var{name}) + Return the raw help text of function @var{name}. + + The raw help text is returned in @var{text} and the format in @var{format} + The format is a string which is one of @t{"texinfo"}, @t{"html"}, or + @t{"plain text"}. + @end deftypefn + + + @c get_help_text_from_file src/help.cc + @anchor{doc-get_help_text_from_file} + @deftypefn {Loadable Function} {[@var{text}, @var{format}] =} get_help_text_from_file (@var{fname}) + Return the raw help text from the file @var{fname}. + + The raw help text is returned in @var{text} and the format in @var{format} + The format is a string which is one of @t{"texinfo"}, @t{"html"}, or + @t{"plain text"}. + @end deftypefn + + + @c get_first_help_sentence scripts/help/get_first_help_sentence.m + @anchor{doc-get_first_help_sentence} + @deftypefn {Function File} {[@var{text}, @var{status}] =} get_first_help_sentence (@var{name}) + @deftypefnx {Function File} {[@var{text}, @var{status}] =} get_first_help_sentence (@var{name}, @var{max_len}) + Return the first sentence of a function's help text. + + The first sentence is defined as the text after the function + declaration until either the first period (".") or the first appearance of + two consecutive newlines ("\n\n"). The text is truncated to a maximum + length of @var{max_len}, which defaults to 80. + + The optional output argument @var{status} returns the status reported by + @code{makeinfo}. If only one output argument is requested, and @var{status} + is non-zero, a warning is displayed. + + As an example, the first sentence of this help text is + + @example + @group + get_first_help_sentence ("get_first_help_sentence") + @print{} ans = Return the first sentence of a function's help text. + @end group + @end example + @end deftypefn + + @node Command Line Editing @section Command Line Editing @cindex command-line editing *************** *** 904,910 **** omitted, use the default history file (normally @file{~/.octave_hist}). @item -r @var{file} ! Read the file @var{file}, appending its contents to the current history list. If the name is omitted, use the default history file (normally @file{~/.octave_hist}). --- 987,993 ---- omitted, use the default history file (normally @file{~/.octave_hist}). @item -r @var{file} ! Read the file @var{file}, appending its contents to the current history list. If the name is omitted, use the default history file (normally @file{~/.octave_hist}). *************** *** 929,935 **** history list using the editor named by the variable @w{@env{EDITOR}}. The commands to be edited are first copied to a temporary file. When you exit the editor, Octave executes the commands that remain in the file. ! It is often more convenient to use @code{edit_history} to define functions rather than attempting to enter them directly on the command line. By default, the block of commands is executed as soon as you exit the editor. To avoid executing any commands, simply delete all the lines --- 1012,1018 ---- history list using the editor named by the variable @w{@env{EDITOR}}. The commands to be edited are first copied to a temporary file. When you exit the editor, Octave executes the commands that remain in the file. ! It is often more convenient to use @code{edit_history} to define functions rather than attempting to enter them directly on the command line. By default, the block of commands is executed as soon as you exit the editor. To avoid executing any commands, simply delete all the lines *************** *** 1566,1571 **** --- 1649,1657 ---- will produce a very quick countdown from '3' to 'Blast Off' as the lines "@code{disp(2);}" and "@code{disp(1);}" won't be executed. + The block comment markers must appear alone as the only characters on a line + (excepting whitespace) in order to to be parsed correctly. + @node Comments and the Help System @subsection Comments and the Help System @cindex documenting functions diff -cNr octave-3.4.0/doc/interpreter/basics.txi octave-3.4.1/doc/interpreter/basics.txi *** octave-3.4.0/doc/interpreter/basics.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/basics.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 215,220 **** --- 215,221 ---- confirm_recursive_rmdir = false crash_dumps_octave_core = false default_save_options = "-mat-binary" + do_braindead_shortcircuit_evaluation = true fixed_point_format = true history_timestamp_format_string = "%%-- %D %I:%M %p --%%" page_screen_output = false *************** *** 336,341 **** --- 337,347 ---- invoke Octave with the @option{--verbose} option but without the @option{--silent} option. + The @code{dump_prefs} function is useful for determining what customizations + to Octave are possible and which are in effect. + + @DOCSTRING(dump_prefs) + @node Quitting Octave @section Quitting Octave @cindex exiting octave *************** *** 387,392 **** --- 393,410 ---- @DOCSTRING(suppress_verbose_help_message) + The following functions are principally used internally by Octave for + generating the documentation. They are documented here for completeness + and because they may occasionally be useful for users. + + @DOCSTRING(gen_doc_cache) + + @DOCSTRING(get_help_text) + + @DOCSTRING(get_help_text_from_file) + + @DOCSTRING(get_first_help_sentence) + @node Command Line Editing @section Command Line Editing @cindex command-line editing *************** *** 1040,1045 **** --- 1058,1066 ---- will produce a very quick countdown from '3' to 'Blast Off' as the lines "@code{disp(2);}" and "@code{disp(1);}" won't be executed. + The block comment markers must appear alone as the only characters on a line + (excepting whitespace) in order to to be parsed correctly. + @node Comments and the Help System @subsection Comments and the Help System @cindex documenting functions diff -cNr octave-3.4.0/doc/interpreter/config-images.sh octave-3.4.1/doc/interpreter/config-images.sh *** octave-3.4.0/doc/interpreter/config-images.sh 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/config-images.sh 2011-06-15 11:11:27.000000000 -0400 *************** *** 10,17 **** top_srcdir="../.." fi interp_dir=$top_srcdir/doc/interpreter $AWK -f $interp_dir/images.awk < $interp_dir/images > $interp_dir/images.mk-t ! $top_srcdir/move-if-change $interp_dir/images.mk-t $interp_dir/images.mk --- 10,19 ---- top_srcdir="../.." fi + move_if_change="$top_srcdir/build-aux/move-if-change" + interp_dir=$top_srcdir/doc/interpreter $AWK -f $interp_dir/images.awk < $interp_dir/images > $interp_dir/images.mk-t ! $move_if_change $interp_dir/images.mk-t $interp_dir/images.mk diff -cNr octave-3.4.0/doc/interpreter/container.texi octave-3.4.1/doc/interpreter/container.texi *** octave-3.4.0/doc/interpreter/container.texi 2011-02-08 05:11:29.000000000 -0500 --- octave-3.4.1/doc/interpreter/container.texi 2011-06-15 11:39:09.000000000 -0400 *************** *** 30,42 **** another data container, the comma separated list. @menu ! * Data Structures:: * Cell Arrays:: * Comma Separated Lists:: @end menu ! @node Data Structures ! @section Data Structures @cindex structures @cindex data structures --- 30,42 ---- another data container, the comma separated list. @menu ! * Structures:: * Cell Arrays:: * Comma Separated Lists:: @end menu ! @node Structures ! @section Structures @cindex structures @cindex data structures *************** *** 389,400 **** @node Creating Structures @subsection Creating Structures ! As well as indexing a structure with ".", Octave can create a structure ! with the @code{struct} command. @code{struct} takes pairs of arguments, ! where the first argument in the pair is the fieldname to include in the ! structure and the second is a scalar or cell array, representing the ! values to include in the structure or structure array. For example: @example @group --- 389,438 ---- @node Creating Structures @subsection Creating Structures + @cindex dynamic naming ! Besides the index operator ".", Octave can use dynamic naming "(var)" or the ! @code{struct} function to create structures. Dynamic naming uses the string ! value of a variable as the field name. For example, ! @example ! @group ! a = "field2"; ! x.a = 1; ! x.(a) = 2; ! x ! @result{} x = ! @{ ! a = 1 ! field2 = 2 ! @} ! @end group ! @end example ! ! More realistically, all of the functions that operate on strings can be used ! to build the correct field name before it is entered into the data structure. ! ! @example ! @group ! names = ["Bill"; "Mary"; "John"]; ! ages = [37; 26; 31]; ! for i = 1:rows (names) ! database.(names(i,:)) = ages(i); ! endfor ! database ! @result{} database = ! @{ ! Bill = 37 ! Mary = 26 ! John = 31 ! @} ! @end group ! @end example ! ! The third way to create structures is the @code{struct} command. @code{struct} ! takes pairs of arguments, where the first argument in the pair is the fieldname ! to include in the structure and the second is a scalar or cell array, ! representing the values to include in the structure or structure array. For ! example: @example @group *************** *** 433,439 **** @end example If you want to create a struct which contains a cell array as an ! individual field, you have to put it into another cell array like in the following example: @example --- 471,477 ---- @end example If you want to create a struct which contains a cell array as an ! individual field, you must wrap it in another cell array as shown in the following example: @example *************** *** 972,985 **** @c cell src/ov-cell.cc @anchor{doc-cell} ! @deftypefn {Built-in Function} {} cell (@var{x}) ! @deftypefnx {Built-in Function} {} cell (@var{n}, @var{m}) ! Create a new cell array object. If invoked with a single scalar ! argument, @code{cell} returns a square cell array with the dimension ! specified. If you supply two scalar arguments, @code{cell} takes ! them to be the number of rows and columns. If given a vector with two ! elements, @code{cell} uses the values of the elements as the number of ! rows and columns, respectively. @end deftypefn --- 1010,1024 ---- @c cell src/ov-cell.cc @anchor{doc-cell} ! @deftypefn {Built-in Function} {} cell (@var{n}) ! @deftypefnx {Built-in Function} {} cell (@var{m}, @var{n}) ! @deftypefnx {Built-in Function} {} cell (@var{m}, @var{n}, @var{k}, @dots{}) ! @deftypefnx {Built-in Function} {} cell ([@var{m} @var{n} @dots{}]) ! Create a new cell array object. ! If invoked with a single scalar integer argument, return a square ! @nospell{NxN} cell array. If invoked with two or more scalar ! integer arguments, or a vector of integer values, return an array with ! the given dimensions. @end deftypefn *************** *** 1220,1225 **** --- 1259,1285 ---- @end group @end example + The indexing operations operate on the cell array and not on the objects + within the cell array. By contrast, @code{cellindexmat} applies matrix indexing + to the objects within each cell array entry and returns the requested values. + + @c cellindexmat src/DLD-FUNCTIONS/cellfun.cc + @anchor{doc-cellindexmat} + @deftypefn {Loadable Function} {@var{y} =} cellindexmat (@var{x}, @var{varargin}) + Given a cell array of matrices @var{x}, this function computes + + @example + @group + Y = cell (size (X)); + for i = 1:numel (X) + Y@{i@} = X@{i@}(varargin@{:@}); + endfor + @end group + @end example + @seealso{@ref{doc-cellfun,,cellfun}, @ref{doc-cellslices,,cellslices}} + @end deftypefn + + @node Cell Arrays of Strings @subsection Cell Arrays of Strings *************** *** 1371,1377 **** endfunction [aa, bb] = cellfun(@@twoouts, @{1, 2, 3@}) @result{} ! aa = 1 2 3 bb = 1 4 9 --- 1431,1437 ---- endfunction [aa, bb] = cellfun(@@twoouts, @{1, 2, 3@}) @result{} ! aa = 1 2 3 bb = 1 4 9 diff -cNr octave-3.4.0/doc/interpreter/container.txi octave-3.4.1/doc/interpreter/container.txi *** octave-3.4.0/doc/interpreter/container.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/container.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 28,40 **** another data container, the comma separated list. @menu ! * Data Structures:: * Cell Arrays:: * Comma Separated Lists:: @end menu ! @node Data Structures ! @section Data Structures @cindex structures @cindex data structures --- 28,40 ---- another data container, the comma separated list. @menu ! * Structures:: * Cell Arrays:: * Comma Separated Lists:: @end menu ! @node Structures ! @section Structures @cindex structures @cindex data structures *************** *** 370,381 **** @node Creating Structures @subsection Creating Structures ! As well as indexing a structure with ".", Octave can create a structure ! with the @code{struct} command. @code{struct} takes pairs of arguments, ! where the first argument in the pair is the fieldname to include in the ! structure and the second is a scalar or cell array, representing the ! values to include in the structure or structure array. For example: @example @group --- 370,419 ---- @node Creating Structures @subsection Creating Structures + @cindex dynamic naming ! Besides the index operator ".", Octave can use dynamic naming "(var)" or the ! @code{struct} function to create structures. Dynamic naming uses the string ! value of a variable as the field name. For example, ! @example ! @group ! a = "field2"; ! x.a = 1; ! x.(a) = 2; ! x ! @result{} x = ! @{ ! a = 1 ! field2 = 2 ! @} ! @end group ! @end example ! ! More realistically, all of the functions that operate on strings can be used ! to build the correct field name before it is entered into the data structure. ! ! @example ! @group ! names = ["Bill"; "Mary"; "John"]; ! ages = [37; 26; 31]; ! for i = 1:rows (names) ! database.(names(i,:)) = ages(i); ! endfor ! database ! @result{} database = ! @{ ! Bill = 37 ! Mary = 26 ! John = 31 ! @} ! @end group ! @end example ! ! The third way to create structures is the @code{struct} command. @code{struct} ! takes pairs of arguments, where the first argument in the pair is the fieldname ! to include in the structure and the second is a scalar or cell array, ! representing the values to include in the structure or structure array. For ! example: @example @group *************** *** 414,420 **** @end example If you want to create a struct which contains a cell array as an ! individual field, you have to put it into another cell array like in the following example: @example --- 452,458 ---- @end example If you want to create a struct which contains a cell array as an ! individual field, you must wrap it in another cell array as shown in the following example: @example *************** *** 779,784 **** --- 817,828 ---- @end group @end example + The indexing operations operate on the cell array and not on the objects + within the cell array. By contrast, @code{cellindexmat} applies matrix indexing + to the objects within each cell array entry and returns the requested values. + + @DOCSTRING(cellindexmat) + @node Cell Arrays of Strings @subsection Cell Arrays of Strings diff -cNr octave-3.4.0/doc/interpreter/contrib.texi octave-3.4.1/doc/interpreter/contrib.texi *** octave-3.4.0/doc/interpreter/contrib.texi 2011-02-08 05:11:29.000000000 -0500 --- octave-3.4.1/doc/interpreter/contrib.texi 2011-06-15 11:39:09.000000000 -0400 *************** *** 73,81 **** @end example You may want to get familiar with Mercurial queues to manage your ! changesets. Here is a slightly less simple example using Mercurial ! queues, where you work on two unrelated changesets in parallel and ! update one of the changesets after discussion in the maintainers mailing list: @example --- 73,81 ---- @end example You may want to get familiar with Mercurial queues to manage your ! changesets. Here is a slightly more complex example using Mercurial ! queues, where work on two unrelated changesets is done in parallel and ! one of the changesets is updated after discussion on the maintainers mailing list: @example *************** *** 117,123 **** comment header (use appropriate year, name and comment marks): @example ! ## Copyright (C) 1996, 1997, 2007 John W. Eaton ## ## This file is part of Octave. ## --- 117,123 ---- comment header (use appropriate year, name and comment marks): @example ! ## Copyright (C) 1996-2011 John W. Eaton ## ## This file is part of Octave. ## *************** *** 162,167 **** --- 162,180 ---- code, particularly if there is something that might not be obvious to someone reading it later. + When submitting code which addresses a known bug on the Octave bug tracker + (@url{http://bugs.octave.org}), please add '(bug #XXXXX)' to the ChangeLog + and Mercurial commit messages. Example: + + @example + @group + 2011-03-29 Michael Creel + + * statistics/base/ols.m: Fix erroneous degrees of freedom when + computing the covariance estimator (bug #32892). + @end group + @end example + The preferred comment mark for places that may need further attention is FIXME. diff -cNr octave-3.4.0/doc/interpreter/contrib.txi octave-3.4.1/doc/interpreter/contrib.txi *** octave-3.4.0/doc/interpreter/contrib.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/contrib.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 71,79 **** @end example You may want to get familiar with Mercurial queues to manage your ! changesets. Here is a slightly less simple example using Mercurial ! queues, where you work on two unrelated changesets in parallel and ! update one of the changesets after discussion in the maintainers mailing list: @example --- 71,79 ---- @end example You may want to get familiar with Mercurial queues to manage your ! changesets. Here is a slightly more complex example using Mercurial ! queues, where work on two unrelated changesets is done in parallel and ! one of the changesets is updated after discussion on the maintainers mailing list: @example *************** *** 115,121 **** comment header (use appropriate year, name and comment marks): @example ! ## Copyright (C) 1996, 1997, 2007 John W. Eaton ## ## This file is part of Octave. ## --- 115,121 ---- comment header (use appropriate year, name and comment marks): @example ! ## Copyright (C) 1996-2011 John W. Eaton ## ## This file is part of Octave. ## *************** *** 160,165 **** --- 160,178 ---- code, particularly if there is something that might not be obvious to someone reading it later. + When submitting code which addresses a known bug on the Octave bug tracker + (@url{http://bugs.octave.org}), please add '(bug #XXXXX)' to the ChangeLog + and Mercurial commit messages. Example: + + @example + @group + 2011-03-29 Michael Creel + + * statistics/base/ols.m: Fix erroneous degrees of freedom when + computing the covariance estimator (bug #32892). + @end group + @end example + The preferred comment mark for places that may need further attention is FIXME. diff -cNr octave-3.4.0/doc/interpreter/contributors.in octave-3.4.1/doc/interpreter/contributors.in *** octave-3.4.0/doc/interpreter/contributors.in 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/contributors.in 2011-06-15 11:11:27.000000000 -0400 *************** *** 111,116 **** --- 111,117 ---- Heine Kolltveit Ken Kouno Kacper Kowalik + Daniel Kraft Oyvind Kristiansen Piotr Krzyzanowski Volker Kuhlmann diff -cNr octave-3.4.0/doc/interpreter/contributors.texi octave-3.4.1/doc/interpreter/contributors.texi *** octave-3.4.0/doc/interpreter/contributors.texi 2011-02-08 05:11:27.000000000 -0500 --- octave-3.4.1/doc/interpreter/contributors.texi 2011-06-15 11:39:08.000000000 -0400 *************** *** 36,85 **** @item Fotios Kasolis @tab Thomas Kasper @tab Joel Keay @item Mumit Khan @tab Paul Kienzle @tab Aaron A. King @item Arno J. Klaassen @tab Geoffrey Knauth @tab Heine Kolltveit ! @item Ken Kouno @tab Kacper Kowalik @tab Oyvind Kristiansen ! @item Piotr Krzyzanowski @tab Volker Kuhlmann @tab Tetsuro Kurita ! @item Miroslaw Kwasniak @tab Rafael Laboissiere @tab Kai Labusch ! @item Claude Lacoursiere @tab Walter Landry @tab Bill Lash ! @item Dirk Laurie @tab Maurice LeBrun @tab Friedrich Leisch ! @item Timo Lindfors @tab Benjamin Lindner @tab Ross Lippert ! @item David Livings @tab Erik de Castro Lopo @tab Massimo Lorenzin ! @item Emil Lucretiu @tab Hoxide Ma @tab James Macnicol ! @item Jens-Uwe Mager @tab Ricardo Marranita @tab Orestes Mas ! @item Makoto Matsumoto @tab Tatsuro Matsuoka @tab Laurent Mazet ! @item G. D. McBain @tab Alexander Mamonov @tab Christoph Mayer ! @item Thorsten Meyer @tab Petr Mikulik @tab Stefan Monnier ! @item Antoine Moreau @tab Kai P. Mueller @tab Victor Munoz ! @item Carmen Navarrete @tab Todd Neal @tab Al Niessner ! @item Rick Niles @tab Takuji Nishimura @tab Kai Noda ! @item Eric Norum @tab Krzesimir Nowak @tab Michael O'Brien ! @item Peter O'Gorman @tab Thorsten Ohl @tab Arno Onken ! @item Luis F. Ortiz @tab Scott Pakin @tab Gabriele Pannocchia ! @item Sylvain Pelissier @tab Per Persson @tab Primozz Peterlin ! @item Jim Peterson @tab Danilo Piazzalunga @tab Nicholas Piper ! @item Robert Platt @tab Hans Ekkehard Plesser @tab Tom Poage ! @item Orion Poplawski @tab Ondrej Popp @tab Jef Poskanzer ! @item Francesco Potorti @tab Konstantinos Poulios @tab James B. Rawlings ! @item Eric S. Raymond @tab Balint Reczey @tab Michael Reifenberger ! @item Jason Riedy @tab Petter Risholm @tab Matthew W. Roberts ! @item Andrew Ross @tab Mark van Rossum @tab Kevin Ruland ! @item Kristian Rumberg @tab Ryan Rusaw @tab Olli Saarela ! @item Toni Saarela @tab Juhani Saastamoinen @tab Radek Salac ! @item Ben Sapp @tab Aleksej Saushev @tab Alois Schloegl ! @item Michel D. Schmid @tab Julian Schnidder @tab Nicol N. Schraudolph ! @item Sebastian Schubert @tab Ludwig Schwardt @tab Thomas L. Scofield ! @item Daniel J. Sebald @tab Dmitri A. Sergatskov @tab Baylis Shanks ! @item Joseph P. Skudlarek @tab John Smith @tab Julius Smith ! @item Shan G. Smith @tab Joerg Specht @tab Quentin H. Spencer ! @item Christoph Spiel @tab Richard Stallman @tab Russell Standish ! @item Doug Stewart @tab Jonathan Stickel @tab Judd Storrs ! @item Thomas Stuart @tab Ivan Sutoris @tab John Swensen ! @item Daisuke Takago @tab Ariel Tankus @tab Georg Thimm ! @item Duncan Temple Lang @tab Kris Thielemans @tab Olaf Till ! @item Christophe Tournery @tab Thomas Treichl @tab Frederick Umminger ! @item Utkarsh Upadhyay @tab Stefan van der Walt @tab Peter Van Wieren ! @item James R. Van Zandt @tab Gregory Vanuxem @tab Ivana Varekova ! @item Thomas Walter @tab Olaf Weber @tab Thomas Weber ! @item Rik Wehbring @tab Bob Weigel @tab Andreas Weingessel ! @item Michael Weitzel @tab Fook Fah Yap @tab Michael Zeising ! @item Federico Zenith @tab Alex Zvoleff @end multitable --- 36,85 ---- @item Fotios Kasolis @tab Thomas Kasper @tab Joel Keay @item Mumit Khan @tab Paul Kienzle @tab Aaron A. King @item Arno J. Klaassen @tab Geoffrey Knauth @tab Heine Kolltveit ! @item Ken Kouno @tab Kacper Kowalik @tab Daniel Kraft ! @item Oyvind Kristiansen @tab Piotr Krzyzanowski @tab Volker Kuhlmann ! @item Tetsuro Kurita @tab Miroslaw Kwasniak @tab Rafael Laboissiere ! @item Kai Labusch @tab Claude Lacoursiere @tab Walter Landry ! @item Bill Lash @tab Dirk Laurie @tab Maurice LeBrun ! @item Friedrich Leisch @tab Timo Lindfors @tab Benjamin Lindner ! @item Ross Lippert @tab David Livings @tab Erik de Castro Lopo ! @item Massimo Lorenzin @tab Emil Lucretiu @tab Hoxide Ma ! @item James Macnicol @tab Jens-Uwe Mager @tab Ricardo Marranita ! @item Orestes Mas @tab Makoto Matsumoto @tab Tatsuro Matsuoka ! @item Laurent Mazet @tab G. D. McBain @tab Alexander Mamonov ! @item Christoph Mayer @tab Thorsten Meyer @tab Petr Mikulik ! @item Stefan Monnier @tab Antoine Moreau @tab Kai P. Mueller ! @item Victor Munoz @tab Carmen Navarrete @tab Todd Neal ! @item Al Niessner @tab Rick Niles @tab Takuji Nishimura ! @item Kai Noda @tab Eric Norum @tab Krzesimir Nowak ! @item Michael O'Brien @tab Peter O'Gorman @tab Thorsten Ohl ! @item Arno Onken @tab Luis F. Ortiz @tab Scott Pakin ! @item Gabriele Pannocchia @tab Sylvain Pelissier @tab Per Persson ! @item Primozz Peterlin @tab Jim Peterson @tab Danilo Piazzalunga ! @item Nicholas Piper @tab Robert Platt @tab Hans Ekkehard Plesser ! @item Tom Poage @tab Orion Poplawski @tab Ondrej Popp ! @item Jef Poskanzer @tab Francesco Potorti @tab Konstantinos Poulios ! @item James B. Rawlings @tab Eric S. Raymond @tab Balint Reczey ! @item Michael Reifenberger @tab Jason Riedy @tab Petter Risholm ! @item Matthew W. Roberts @tab Andrew Ross @tab Mark van Rossum ! @item Kevin Ruland @tab Kristian Rumberg @tab Ryan Rusaw ! @item Olli Saarela @tab Toni Saarela @tab Juhani Saastamoinen ! @item Radek Salac @tab Ben Sapp @tab Aleksej Saushev ! @item Alois Schloegl @tab Michel D. Schmid @tab Julian Schnidder ! @item Nicol N. Schraudolph @tab Sebastian Schubert @tab Ludwig Schwardt ! @item Thomas L. Scofield @tab Daniel J. Sebald @tab Dmitri A. Sergatskov ! @item Baylis Shanks @tab Joseph P. Skudlarek @tab John Smith ! @item Julius Smith @tab Shan G. Smith @tab Joerg Specht ! @item Quentin H. Spencer @tab Christoph Spiel @tab Richard Stallman ! @item Russell Standish @tab Doug Stewart @tab Jonathan Stickel ! @item Judd Storrs @tab Thomas Stuart @tab Ivan Sutoris ! @item John Swensen @tab Daisuke Takago @tab Ariel Tankus ! @item Georg Thimm @tab Duncan Temple Lang @tab Kris Thielemans ! @item Olaf Till @tab Christophe Tournery @tab Thomas Treichl ! @item Frederick Umminger @tab Utkarsh Upadhyay @tab Stefan van der Walt ! @item Peter Van Wieren @tab James R. Van Zandt @tab Gregory Vanuxem ! @item Ivana Varekova @tab Thomas Walter @tab Olaf Weber ! @item Thomas Weber @tab Rik Wehbring @tab Bob Weigel ! @item Andreas Weingessel @tab Michael Weitzel @tab Fook Fah Yap ! @item Michael Zeising @tab Federico Zenith @tab Alex Zvoleff @end multitable diff -cNr octave-3.4.0/doc/interpreter/convhull.eps octave-3.4.1/doc/interpreter/convhull.eps *** octave-3.4.0/doc/interpreter/convhull.eps 2011-02-08 05:11:50.000000000 -0500 --- octave-3.4.1/doc/interpreter/convhull.eps 2011-06-15 11:39:33.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: convhull.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:11:50 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: convhull.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:33 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:11:50 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:33 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/convhull.pdf and octave-3.4.1/doc/interpreter/convhull.pdf differ Binary files octave-3.4.0/doc/interpreter/convhull.png and octave-3.4.1/doc/interpreter/convhull.png differ diff -cNr octave-3.4.0/doc/interpreter/data.texi octave-3.4.1/doc/interpreter/data.texi *** octave-3.4.0/doc/interpreter/data.texi 2011-02-08 05:11:29.000000000 -0500 --- octave-3.4.1/doc/interpreter/data.texi 2011-06-15 11:39:09.000000000 -0400 *************** *** 36,42 **** @c typeinfo src/ov-typeinfo.cc @anchor{doc-typeinfo} ! @deftypefn {Built-in Function} {} typeinfo (@var{expr}) Return the type of the expression @var{expr}, as a string. If @var{expr} is omitted, return an array of strings containing all the --- 36,43 ---- @c typeinfo src/ov-typeinfo.cc @anchor{doc-typeinfo} ! @deftypefn {Built-in Function} {} typeinfo () ! @deftypefnx {Built-in Function} {} typeinfo (@var{expr}) Return the type of the expression @var{expr}, as a string. If @var{expr} is omitted, return an array of strings containing all the *************** *** 125,131 **** consecutive pairs of real numbers. The sizes of integer types are given by their bit counts. Both logical and char are typically one byte wide; however, this is not guaranteed by C++. If your system is IEEE conformant, ! single and double should be 4 bytes and 8 bytes wide, respectively. "logical" is not allowed for @var{class}. If the input is a row vector, the return value is a row vector, otherwise it is a column vector. If the bit length of @var{x} is not divisible by that of @var{class}, an error --- 126,132 ---- consecutive pairs of real numbers. The sizes of integer types are given by their bit counts. Both logical and char are typically one byte wide; however, this is not guaranteed by C++. If your system is IEEE conformant, ! single and double should be 4 bytes and 8 bytes wide, respectively. "logical" is not allowed for @var{class}. If the input is a row vector, the return value is a row vector, otherwise it is a column vector. If the bit length of @var{x} is not divisible by that of @var{class}, an error *************** *** 147,153 **** @c swapbytes scripts/miscellaneous/swapbytes.m @anchor{doc-swapbytes} @deftypefn {Function File} {} swapbytes (@var{x}) ! Swaps the byte order on values, converting from little endian to big endian and vice versa. For example: @example --- 148,154 ---- @c swapbytes scripts/miscellaneous/swapbytes.m @anchor{doc-swapbytes} @deftypefn {Function File} {} swapbytes (@var{x}) ! Swap the byte order on values, converting from little endian to big endian and vice versa. For example: @example *************** *** 335,341 **** with indices limited to strings, but the syntax is more like C-style structures. ! @xref{Data Structures}, for more information. @node Cell Array Objects @subsection Cell Array Objects --- 336,342 ---- with indices limited to strings, but the syntax is more like C-style structures. ! @xref{Structures}, for more information. @node Cell Array Objects @subsection Cell Array Objects *************** *** 429,435 **** @anchor{doc-size} @deftypefn {Built-in Function} {} size (@var{a}) @deftypefnx {Built-in Function} {} size (@var{a}, @var{dim}) ! Return the number rows and columns of @var{a}. With one input argument and one output argument, the result is returned in a row vector. If there are multiple output arguments, the number of --- 430,436 ---- @anchor{doc-size} @deftypefn {Built-in Function} {} size (@var{a}) @deftypefnx {Built-in Function} {} size (@var{a}, @var{dim}) ! Return the number of rows and columns of @var{a}. With one input argument and one output argument, the result is returned in a row vector. If there are multiple output arguments, the number of diff -cNr octave-3.4.0/doc/interpreter/data.txi octave-3.4.1/doc/interpreter/data.txi *** octave-3.4.0/doc/interpreter/data.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/data.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 146,152 **** with indices limited to strings, but the syntax is more like C-style structures. ! @xref{Data Structures}, for more information. @node Cell Array Objects @subsection Cell Array Objects --- 146,152 ---- with indices limited to strings, but the syntax is more like C-style structures. ! @xref{Structures}, for more information. @node Cell Array Objects @subsection Cell Array Objects diff -cNr octave-3.4.0/doc/interpreter/debug.texi octave-3.4.1/doc/interpreter/debug.texi *** octave-3.4.0/doc/interpreter/debug.texi 2011-02-08 05:11:29.000000000 -0500 --- octave-3.4.1/doc/interpreter/debug.texi 2011-06-15 11:39:10.000000000 -0400 *************** *** 145,151 **** @example @group dbstop ("asind", 1) ! @result{} 27 @end group @end example --- 145,151 ---- @example @group dbstop ("asind", 1) ! @result{} 28 @end group @end example *************** *** 157,163 **** @c dbstatus src/debug.cc @anchor{doc-dbstatus} @deftypefn {Loadable Function} {lst =} dbstatus (@var{func}) ! Return a vector containing the lines on which a function has breakpoints set. @table @code @item func --- 157,163 ---- @c dbstatus src/debug.cc @anchor{doc-dbstatus} @deftypefn {Loadable Function} {lst =} dbstatus (@var{func}) ! Return a vector containing the lines on which a function has breakpoints set. @table @code @item func *************** *** 170,176 **** @noindent Taking the above as an example, @code{dbstatus ("asind")} should return ! 27. The breakpoints can then be cleared with the @code{dbclear} function @c dbclear src/debug.cc @anchor{doc-dbclear} --- 170,176 ---- @noindent Taking the above as an example, @code{dbstatus ("asind")} should return ! 28. The breakpoints can then be cleared with the @code{dbclear} function @c dbclear src/debug.cc @anchor{doc-dbclear} diff -cNr octave-3.4.0/doc/interpreter/debug.txi octave-3.4.1/doc/interpreter/debug.txi *** octave-3.4.0/doc/interpreter/debug.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/debug.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 89,95 **** @example @group dbstop ("asind", 1) ! @result{} 27 @end group @end example --- 89,95 ---- @example @group dbstop ("asind", 1) ! @result{} 28 @end group @end example *************** *** 102,108 **** @noindent Taking the above as an example, @code{dbstatus ("asind")} should return ! 27. The breakpoints can then be cleared with the @code{dbclear} function @DOCSTRING(dbclear) --- 102,108 ---- @noindent Taking the above as an example, @code{dbstatus ("asind")} should return ! 28. The breakpoints can then be cleared with the @code{dbclear} function @DOCSTRING(dbclear) diff -cNr octave-3.4.0/doc/interpreter/delaunay.eps octave-3.4.1/doc/interpreter/delaunay.eps *** octave-3.4.0/doc/interpreter/delaunay.eps 2011-02-08 05:11:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/delaunay.eps 2011-06-15 11:39:34.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: delaunay.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:11:50 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: delaunay.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:34 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:11:50 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:34 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/delaunay.pdf and octave-3.4.1/doc/interpreter/delaunay.pdf differ Binary files octave-3.4.0/doc/interpreter/delaunay.png and octave-3.4.1/doc/interpreter/delaunay.png differ diff -cNr octave-3.4.0/doc/interpreter/diffeq.texi octave-3.4.1/doc/interpreter/diffeq.texi *** octave-3.4.0/doc/interpreter/diffeq.texi 2011-02-08 05:11:29.000000000 -0500 --- octave-3.4.1/doc/interpreter/diffeq.texi 2011-06-15 11:39:10.000000000 -0400 *************** *** 30,36 **** * Differential-Algebraic Equations:: @end menu ! @cindex Differential Equations @cindex ODE @cindex DAE --- 30,36 ---- * Differential-Algebraic Equations:: @end menu ! @cindex differential equations @cindex ODE @cindex DAE *************** *** 179,190 **** @c lsode_options src/DLD-FUNCTIONS/lsode.cc @anchor{doc-lsode_options} ! @deftypefn {Loadable Function} {} lsode_options (@var{opt}, @var{val}) ! When called with two arguments, this function ! allows you set options parameters for the function @code{lsode}. ! Given one argument, @code{lsode_options} returns the value of the ! corresponding option. If no arguments are supplied, the names of all ! the available options and their current values are displayed. Options include --- 179,193 ---- @c lsode_options src/DLD-FUNCTIONS/lsode.cc @anchor{doc-lsode_options} ! @deftypefn {Loadable Function} {} lsode_options () ! @deftypefnx {Loadable Function} {val =} lsode_options (@var{opt}) ! @deftypefnx {Loadable Function} {} lsode_options (@var{opt}, @var{val}) ! Query or set options for the function @code{lsode}. ! When called with no arguments, the names of all available options and ! their current values are displayed. ! Given one argument, return the value of the corresponding option. ! When called with two arguments, @code{lsode_options} set the option ! @var{opt} to value @var{val}. Options include *************** *** 423,434 **** @c daspk_options src/DLD-FUNCTIONS/daspk.cc @anchor{doc-daspk_options} ! @deftypefn {Loadable Function} {} daspk_options (@var{opt}, @var{val}) ! When called with two arguments, this function ! allows you set options parameters for the function @code{daspk}. ! Given one argument, @code{daspk_options} returns the value of the ! corresponding option. If no arguments are supplied, the names of all ! the available options and their current values are displayed. Options include --- 426,440 ---- @c daspk_options src/DLD-FUNCTIONS/daspk.cc @anchor{doc-daspk_options} ! @deftypefn {Loadable Function} {} daspk_options () ! @deftypefnx {Loadable Function} {val =} daspk_options (@var{opt}) ! @deftypefnx {Loadable Function} {} daspk_options (@var{opt}, @var{val}) ! Query or set options for the function @code{daspk}. ! When called with no arguments, the names of all available options and ! their current values are displayed. ! Given one argument, return the value of the corresponding option. ! When called with two arguments, @code{daspk_options} set the option ! @var{opt} to value @var{val}. Options include *************** *** 699,710 **** @c dassl_options src/DLD-FUNCTIONS/dassl.cc @anchor{doc-dassl_options} ! @deftypefn {Loadable Function} {} dassl_options (@var{opt}, @var{val}) ! When called with two arguments, this function ! allows you set options parameters for the function @code{dassl}. ! Given one argument, @code{dassl_options} returns the value of the ! corresponding option. If no arguments are supplied, the names of all ! the available options and their current values are displayed. Options include --- 705,719 ---- @c dassl_options src/DLD-FUNCTIONS/dassl.cc @anchor{doc-dassl_options} ! @deftypefn {Loadable Function} {} dassl_options () ! @deftypefnx {Loadable Function} {val =} dassl_options (@var{opt}) ! @deftypefnx {Loadable Function} {} dassl_options (@var{opt}, @var{val}) ! Query or set options for the function @code{dassl}. ! When called with no arguments, the names of all available options and ! their current values are displayed. ! Given one argument, return the value of the corresponding option. ! When called with two arguments, @code{dassl_options} set the option ! @var{opt} to value @var{val}. Options include *************** *** 905,916 **** @c dasrt_options src/DLD-FUNCTIONS/dasrt.cc @anchor{doc-dasrt_options} ! @deftypefn {Loadable Function} {} dasrt_options (@var{opt}, @var{val}) ! When called with two arguments, this function ! allows you set options parameters for the function @code{dasrt}. ! Given one argument, @code{dasrt_options} returns the value of the ! corresponding option. If no arguments are supplied, the names of all ! the available options and their current values are displayed. Options include --- 914,928 ---- @c dasrt_options src/DLD-FUNCTIONS/dasrt.cc @anchor{doc-dasrt_options} ! @deftypefn {Loadable Function} {} dasrt_options () ! @deftypefnx {Loadable Function} {val =} dasrt_options (@var{opt}) ! @deftypefnx {Loadable Function} {} dasrt_options (@var{opt}, @var{val}) ! Query or set options for the function @code{dasrt}. ! When called with no arguments, the names of all available options and ! their current values are displayed. ! Given one argument, return the value of the corresponding option. ! When called with two arguments, @code{dasrt_options} set the option ! @var{opt} to value @var{val}. Options include diff -cNr octave-3.4.0/doc/interpreter/diffeq.txi octave-3.4.1/doc/interpreter/diffeq.txi *** octave-3.4.0/doc/interpreter/diffeq.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/diffeq.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 28,34 **** * Differential-Algebraic Equations:: @end menu ! @cindex Differential Equations @cindex ODE @cindex DAE --- 28,34 ---- * Differential-Algebraic Equations:: @end menu ! @cindex differential equations @cindex ODE @cindex DAE diff -cNr octave-3.4.0/doc/interpreter/dynamic.texi octave-3.4.1/doc/interpreter/dynamic.texi *** octave-3.4.0/doc/interpreter/dynamic.texi 2011-02-08 05:11:29.000000000 -0500 --- octave-3.4.1/doc/interpreter/dynamic.texi 2011-06-15 11:39:10.000000000 -0400 *************** *** 135,146 **** Add the run-time path to the link command. @item -Wl,@dots{} ! Pass flags though the linker like "-Wl,-rpath=@dots{}". The quotes are needed since commas are interpreted as command separators. ! @item -W@dots{} ! Pass flags though the compiler like "-Wa,OPTION". @item -c Compile but do not link. --- 135,147 ---- Add the run-time path to the link command. @item -Wl,@dots{} ! Pass flags through the linker e.g. "-Wl,-rpath=@dots{}". The quotes are needed since commas are interpreted as command separators. ! @item -W,@dots{} ! Pass flags through the compiler, e.g. "-W,-O2". The quotes are needed ! since commas are interpreted as command separators. @item -c Compile but do not link. *************** *** 218,224 **** @end deftypefn ! Consider the short example: @example @group --- 219,225 ---- @end deftypefn ! Consider the short C++ example: @example @group *************** *** 241,249 **** This example although short introduces the basics of writing a C++ function that can be dynamically linked to Octave. The easiest way to ! make available most of the definitions that might be necessary for an ! oct-file in Octave is to use the @code{#include } ! header. The macro that defines the entry point into the dynamically loaded function is @w{@code{DEFUN_DLD}}. This macro takes four arguments, these being --- 242,253 ---- This example although short introduces the basics of writing a C++ function that can be dynamically linked to Octave. The easiest way to ! make available most of the definitions that might be necessary for a C++ ! oct-file in Octave is to use the @code{#include } header. ! Note that @file{octave/oct.h} is a C++ header and cannot be directly ! @code{#include}'ed in a C source file, nor any other language. What ! follows is mostly C++, with a discussion of other languages in section ! @ref{Calling External Code from Oct-Files}. The macro that defines the entry point into the dynamically loaded function is @w{@code{DEFUN_DLD}}. This macro takes four arguments, these being diff -cNr octave-3.4.0/doc/interpreter/dynamic.txi octave-3.4.1/doc/interpreter/dynamic.txi *** octave-3.4.0/doc/interpreter/dynamic.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/dynamic.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 99,105 **** @DOCSTRING(mkoctfile) ! Consider the short example: @example @group --- 99,105 ---- @DOCSTRING(mkoctfile) ! Consider the short C++ example: @example @group *************** *** 109,117 **** This example although short introduces the basics of writing a C++ function that can be dynamically linked to Octave. The easiest way to ! make available most of the definitions that might be necessary for an ! oct-file in Octave is to use the @code{#include } ! header. The macro that defines the entry point into the dynamically loaded function is @w{@code{DEFUN_DLD}}. This macro takes four arguments, these being --- 109,120 ---- This example although short introduces the basics of writing a C++ function that can be dynamically linked to Octave. The easiest way to ! make available most of the definitions that might be necessary for a C++ ! oct-file in Octave is to use the @code{#include } header. ! Note that @file{octave/oct.h} is a C++ header and cannot be directly ! @code{#include}'ed in a C source file, nor any other language. What ! follows is mostly C++, with a discussion of other languages in section ! @ref{Calling External Code from Oct-Files}. The macro that defines the entry point into the dynamically loaded function is @w{@code{DEFUN_DLD}}. This macro takes four arguments, these being diff -cNr octave-3.4.0/doc/interpreter/errorbar.eps octave-3.4.1/doc/interpreter/errorbar.eps *** octave-3.4.0/doc/interpreter/errorbar.eps 2011-02-08 05:11:57.000000000 -0500 --- octave-3.4.1/doc/interpreter/errorbar.eps 2011-06-15 11:39:43.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: errorbar.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:11:57 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: errorbar.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:43 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:11:57 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:43 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/errorbar.pdf and octave-3.4.1/doc/interpreter/errorbar.pdf differ Binary files octave-3.4.0/doc/interpreter/errorbar.png and octave-3.4.1/doc/interpreter/errorbar.png differ diff -cNr octave-3.4.0/doc/interpreter/errors.texi octave-3.4.1/doc/interpreter/errors.texi *** octave-3.4.0/doc/interpreter/errors.texi 2011-02-08 05:11:29.000000000 -0500 --- octave-3.4.1/doc/interpreter/errors.texi 2011-06-15 11:39:10.000000000 -0400 *************** *** 51,56 **** --- 51,57 ---- @menu * Raising Errors:: * Catching Errors:: + * Recovering From Errors:: @end menu @node Raising Errors *************** *** 288,296 **** @deftypefn {Built-in Function} {@var{lasterr} =} lasterror () @deftypefnx {Built-in Function} {} lasterror (@var{err}) @deftypefnx {Built-in Function} {} lasterror ('reset') ! Query or set the last error message. Called without any arguments ! returns a structure containing the last error message, as well as other ! information related to this error. The elements of this structure are: @table @asis @item 'message' --- 289,297 ---- @deftypefn {Built-in Function} {@var{lasterr} =} lasterror () @deftypefnx {Built-in Function} {} lasterror (@var{err}) @deftypefnx {Built-in Function} {} lasterror ('reset') ! Query or set the last error message structure. When called without arguments ! , return a structure containing the last error message and other ! information related to this error. The elements of the structure are: @table @asis @item 'message' *************** *** 300,308 **** The message identifier of this error message @item 'stack' ! A structure containing information on where the message occurred. This might ! be an empty structure if this in the case where this information cannot ! be obtained. The fields of this structure are: @table @asis @item 'file' --- 301,309 ---- The message identifier of this error message @item 'stack' ! A structure containing information on where the message occurred. This may ! be an empty structure if the information cannot ! be obtained. The fields of the structure are: @table @asis @item 'file' *************** *** 319,341 **** @end table @end table ! The @var{err} structure may also be passed to @code{lasterror} to set the ! information about the last error. The only constraint on @var{err} in that ! case is that it is a scalar structure. Any fields of @var{err} that match ! the above are set to the value passed in @var{err}, while other fields are ! set to their default values. ! If @code{lasterror} is called with the argument 'reset', all values take ! their default values. @end deftypefn @c lasterr src/error.cc @anchor{doc-lasterr} ! @deftypefn {Built-in Function} {[@var{msg}, @var{msgid}] =} lasterr (@var{msg}, @var{msgid}) ! Without any arguments, return the last error message. With one argument, set the last error message to @var{msg}. With two arguments, also set the last message identifier. @end deftypefn --- 320,345 ---- @end table @end table ! The last error structure may be set by passing a scalar structure, @var{err}, ! as input. Any fields of @var{err} that match those above are set while any ! unspecified fields are initialized with default values. ! If @code{lasterror} is called with the argument 'reset', all fields are ! set to their default values. ! @seealso{@ref{doc-lasterr,,lasterr}} @end deftypefn @c lasterr src/error.cc @anchor{doc-lasterr} ! @deftypefn {Built-in Function} {[@var{msg}, @var{msgid}] =} lasterr () ! @deftypefnx {Built-in Function} {} lasterr (@var{msg}) ! @deftypefnx {Built-in Function} {} lasterr (@var{msg}, @var{msgid}) ! Query or set the last error message. When called without input arguments, ! return the last error message and message identifier. With one argument, set the last error message to @var{msg}. With two arguments, also set the last message identifier. + @seealso{@ref{doc-lasterror,,lasterror}} @end deftypefn *************** *** 397,402 **** --- 401,448 ---- @end deftypefn + @node Recovering From Errors + @subsection Recovering From Errors + + Octave provides several ways of recovering from errors. There are + @code{try}/@code{catch} blocks, + @code{unwind_protect}/@code{unwind_protect_cleanup} blocks, + and finally the @code{onCleanup} command. + + The @code{onCleanup} command associates an ordinary Octave variable (the + trigger) with an arbitrary function (the action). Whenever the Octave variable + ceases to exist---whether due to a function return, an error, or simply because + the variable has been removed with @code{clear}---then the assigned function + is executed. + + The function can do anything necessary for cleanup such as closing open file + handles, printing an error message, or restoring global variables to their + initial values. The last example is a very convenient idiom for Octave code. + For example: + + @example + @group + function rand42 + old_state = rand ('state'); + restore_state = onCleanup (@@() rand ('state', old_state); + rand ('state', 42); + @dots{} + endfunction # rand generator state restored by onCleanup + @end group + @end example + + @c onCleanup src/DLD-FUNCTIONS/onCleanup.cc + @anchor{doc-onCleanup} + @deftypefn {Loadable Function} {@var{c} =} onCleanup (@var{action}) + Create a special object that executes a given function upon destruction. + If the object is copied to multiple variables (or cell or struct array + elements) or returned from a function, @var{action} will be executed after + clearing the last copy of the object. Note that if multiple local onCleanup + variables are created, the order in which they are called is unspecified. + For similar functionality @xref{The @code{unwind_protect} Statement}. + @end deftypefn + + @node Handling Warnings @section Handling Warnings *************** *** 614,619 **** --- 660,674 ---- compatibility. By default, the @code{Octave:associativity-change} warning is enabled. + @item Octave:autoload-relative-file-name + If the @code{Octave:autoload-relative-file-name} is enabled, + Octave will warn when parsing autoload() function calls with relative + paths to function files. This usually happens when using autoload() + calls in PKG_ADD files, when the PKG_ADD file is not in the same + directory as the .oct file referred to by the autoload() command. + By default, the @code{Octave:autoload-relative-file-name} + warning is enabled. + @item Octave:divide-by-zero If the @code{Octave:divide-by-zero} warning is enabled, a warning is issued when Octave encounters a division by zero. By *************** *** 693,698 **** --- 748,774 ---- elicits a warning if the @code{Octave:num-to-str} warning is enabled. By default, the @code{Octave:num-to-str} warning is enabled. + @item Octave:possible-matlab-short-circuit-operator + If the @code{Octave:possible-matlab-short-circuit-operator} warning + is enabled, Octave will warn about using the not short circuiting + operators @code{&} and @code{|} inside @code{if} or @code{while} + conditions. They normally never short circuit, but @sc{matlab} always + short circuits if any logical operators are used in a condition. You + can turn on the option + + @example + @group + do_braindead_shortcircuit_evaluation(1) + @end group + @end example + + @noindent + if you would like to enable this short-circuit evaluation in + Octave. Note that the @code{&&} and @code{||} operators always short + circuit in both Octave and @sc{matlab}, so it's only necessary to + enable @sc{matlab}-style short-circuiting it's too arduous to modify + existing code that relies on this behavior. + @item Octave:precedence-change If the @code{Octave:precedence-change} warning is enabled, Octave will warn about possible changes in the meaning of some code due to diff -cNr octave-3.4.0/doc/interpreter/errors.txi octave-3.4.1/doc/interpreter/errors.txi *** octave-3.4.0/doc/interpreter/errors.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/errors.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 49,54 **** --- 49,55 ---- @menu * Raising Errors:: * Catching Errors:: + * Recovering From Errors:: @end menu @node Raising Errors *************** *** 212,217 **** --- 213,250 ---- @DOCSTRING(errno_list) + @node Recovering From Errors + @subsection Recovering From Errors + + Octave provides several ways of recovering from errors. There are + @code{try}/@code{catch} blocks, + @code{unwind_protect}/@code{unwind_protect_cleanup} blocks, + and finally the @code{onCleanup} command. + + The @code{onCleanup} command associates an ordinary Octave variable (the + trigger) with an arbitrary function (the action). Whenever the Octave variable + ceases to exist---whether due to a function return, an error, or simply because + the variable has been removed with @code{clear}---then the assigned function + is executed. + + The function can do anything necessary for cleanup such as closing open file + handles, printing an error message, or restoring global variables to their + initial values. The last example is a very convenient idiom for Octave code. + For example: + + @example + @group + function rand42 + old_state = rand ('state'); + restore_state = onCleanup (@@() rand ('state', old_state); + rand ('state', 42); + @dots{} + endfunction # rand generator state restored by onCleanup + @end group + @end example + + @DOCSTRING(onCleanup) + @node Handling Warnings @section Handling Warnings diff -cNr octave-3.4.0/doc/interpreter/eval.texi octave-3.4.1/doc/interpreter/eval.texi *** octave-3.4.0/doc/interpreter/eval.texi 2011-02-08 05:11:30.000000000 -0500 --- octave-3.4.1/doc/interpreter/eval.texi 2011-06-15 11:39:10.000000000 -0400 *************** *** 77,84 **** Newton's method. @example - @cindex Fordyce, A. P. - @findex newtroot function result = newtroot (fname, x) # usage: newtroot (fname, x) --- 77,82 ---- diff -cNr octave-3.4.0/doc/interpreter/eval.txi octave-3.4.1/doc/interpreter/eval.txi *** octave-3.4.0/doc/interpreter/eval.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/eval.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 48,55 **** Newton's method. @example - @cindex Fordyce, A. P. - @findex newtroot function result = newtroot (fname, x) # usage: newtroot (fname, x) --- 48,53 ---- diff -cNr octave-3.4.0/doc/interpreter/expr.texi octave-3.4.1/doc/interpreter/expr.texi *** octave-3.4.0/doc/interpreter/expr.texi 2011-02-08 05:11:30.000000000 -0500 --- octave-3.4.1/doc/interpreter/expr.texi 2011-06-15 11:39:11.000000000 -0400 *************** *** 65,73 **** @example @group ! a (2) # a scalar ! a (1:2) # a row vector ! a ([1; 2]) # a column vector @end group @end example --- 65,73 ---- @example @group ! a(2) # a scalar ! a(1:2) # a row vector ! a([1; 2]) # a column vector @end group @end example *************** *** 76,82 **** For example: @example ! a (:) # a column vector @end example Given the matrix --- 76,82 ---- For example: @example ! a(:) # a column vector @end example Given the matrix *************** *** 90,98 **** @example @group ! a (1, [1, 2]) ! a (1, 1:2) ! a (1, :) @end group @end example --- 90,98 ---- @example @group ! a(1, [1, 2]) ! a(1, 1:2) ! a(1, :) @end group @end example *************** *** 116,122 **** @example @group a = 13; ! a (ones (1, 4)) @end group @end example --- 116,122 ---- @example @group a = 13; ! a(ones (1, 4)) @end group @end example *************** *** 129,135 **** @example @group a = 13; ! a (ones (1, 2), ones (1, 3)) @end group @end example --- 129,135 ---- @example @group a = 13; ! a(ones (1, 2), ones (1, 3)) @end group @end example *************** *** 279,284 **** --- 279,295 ---- @end deftypefn + @c allow_noninteger_range_as_index src/ov-range.cc + @anchor{doc-allow_noninteger_range_as_index} + @deftypefn {Built-in Function} {@var{val} =} allow_noninteger_range_as_index () + @deftypefnx {Built-in Function} {@var{old_val} =} allow_noninteger_range_as_index (@var{new_val}) + Query or set the internal variable that controls whether non-integer + ranges are allowed as indices. This might be useful for @sc{matlab} + compatibility; however, it is still not entirely compatible because + @sc{matlab} treats the range expression differently in different contexts. + @end deftypefn + + @node Calling Functions @section Calling Functions *************** *** 1040,1046 **** @end example At least one argument is required. ! @seealso{@ref{doc-or,,or}, @ref{doc-not,,not}} @end deftypefn --- 1051,1057 ---- @end example At least one argument is required. ! @seealso{@ref{doc-or,,or}, @ref{doc-not,,not}, @ref{doc-xor,,xor}} @end deftypefn *************** *** 1051,1057 **** @deftypefn {Built-in Function} {} not (@var{x}) Return the logical NOT of @var{x}. This function is equivalent to @code{! x}. ! @seealso{@ref{doc-and,,and}, @ref{doc-or,,or}} @end deftypefn --- 1062,1068 ---- @deftypefn {Built-in Function} {} not (@var{x}) Return the logical NOT of @var{x}. This function is equivalent to @code{! x}. ! @seealso{@ref{doc-and,,and}, @ref{doc-or,,or}, @ref{doc-xor,,xor}} @end deftypefn *************** *** 1070,1076 **** @end example At least one argument is required. ! @seealso{@ref{doc-and,,and}, @ref{doc-not,,not}} @end deftypefn --- 1081,1087 ---- @end example At least one argument is required. ! @seealso{@ref{doc-and,,and}, @ref{doc-not,,not}, @ref{doc-xor,,xor}} @end deftypefn *************** *** 1169,1176 **** arguments because Octave would be forced to try to evaluate both of the operands for the operator @samp{&}. ! The ternary operator (?:) is not supported in Octave. If short-circuiting is ! not important, it can be replaced by the @code{ifelse} function. @c merge src/data.cc @anchor{doc-merge} --- 1180,1209 ---- arguments because Octave would be forced to try to evaluate both of the operands for the operator @samp{&}. ! @sc{matlab} has special behavior that allows the operators @samp{&} and ! @samp{|} to short-circuit when used in the truth expression for @code{if} and ! @code{while} statements. The Octave parser may be instructed to behave in the ! same manner, but its use is strongly discouraged. ! ! @c do_braindead_shortcircuit_evaluation src/pt-binop.cc ! @anchor{doc-do_braindead_shortcircuit_evaluation} ! @deftypefn {Built-in Function} {@var{val} =} do_braindead_shortcircuit_evaluation () ! @deftypefnx {Built-in Function} {@var{old_val} =} do_braindead_shortcircuit_evaluation (@var{new_val}) ! Query or set the internal variable that controls whether Octave will ! do short-circuit evaluation of @samp{|} and @samp{&} operators inside the ! conditions of if or while statements. ! ! This feature is only provided for compatibility with @sc{matlab} and should ! not be used unless you are porting old code that relies on this feature. ! ! To obtain short-circuit behavior for logical expressions in new programs, ! you should always use the @samp{&&} and @samp{||} operators. ! @end deftypefn ! ! ! Finally, the ternary operator (?:) is not supported in Octave. If ! short-circuiting is not important, it can be replaced by the @code{ifelse} ! function. @c merge src/data.cc @anchor{doc-merge} *************** *** 1185,1191 **** In the array mask case, both @var{tval} and @var{fval} must be either scalars or arrays with dimensions equal to @var{mask}. The result is ! constructed as follows: @example @group --- 1218,1224 ---- In the array mask case, both @var{tval} and @var{fval} must be either scalars or arrays with dimensions equal to @var{mask}. The result is ! constructed as follows: @example @group diff -cNr octave-3.4.0/doc/interpreter/expr.txi octave-3.4.1/doc/interpreter/expr.txi *** octave-3.4.0/doc/interpreter/expr.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/expr.txi 2011-06-15 11:13:48.000000000 -0400 *************** *** 63,71 **** @example @group ! a (2) # a scalar ! a (1:2) # a row vector ! a ([1; 2]) # a column vector @end group @end example --- 63,71 ---- @example @group ! a(2) # a scalar ! a(1:2) # a row vector ! a([1; 2]) # a column vector @end group @end example *************** *** 74,80 **** For example: @example ! a (:) # a column vector @end example Given the matrix --- 74,80 ---- For example: @example ! a(:) # a column vector @end example Given the matrix *************** *** 88,96 **** @example @group ! a (1, [1, 2]) ! a (1, 1:2) ! a (1, :) @end group @end example --- 88,96 ---- @example @group ! a(1, [1, 2]) ! a(1, 1:2) ! a(1, :) @end group @end example *************** *** 114,120 **** @example @group a = 13; ! a (ones (1, 4)) @end group @end example --- 114,120 ---- @example @group a = 13; ! a(ones (1, 4)) @end group @end example *************** *** 127,133 **** @example @group a = 13; ! a (ones (1, 2), ones (1, 3)) @end group @end example --- 127,133 ---- @example @group a = 13; ! a(ones (1, 2), ones (1, 3)) @end group @end example *************** *** 230,235 **** --- 230,237 ---- @DOCSTRING(isindex) + @DOCSTRING(allow_noninteger_range_as_index) + @node Calling Functions @section Calling Functions *************** *** 907,914 **** arguments because Octave would be forced to try to evaluate both of the operands for the operator @samp{&}. ! The ternary operator (?:) is not supported in Octave. If short-circuiting is ! not important, it can be replaced by the @code{ifelse} function. @DOCSTRING(merge) --- 909,924 ---- arguments because Octave would be forced to try to evaluate both of the operands for the operator @samp{&}. ! @sc{matlab} has special behavior that allows the operators @samp{&} and ! @samp{|} to short-circuit when used in the truth expression for @code{if} and ! @code{while} statements. The Octave parser may be instructed to behave in the ! same manner, but its use is strongly discouraged. ! ! @DOCSTRING(do_braindead_shortcircuit_evaluation) ! ! Finally, the ternary operator (?:) is not supported in Octave. If ! short-circuiting is not important, it can be replaced by the @code{ifelse} ! function. @DOCSTRING(merge) diff -cNr octave-3.4.0/doc/interpreter/extended.eps octave-3.4.1/doc/interpreter/extended.eps *** octave-3.4.0/doc/interpreter/extended.eps 2011-02-08 05:12:00.000000000 -0500 --- octave-3.4.1/doc/interpreter/extended.eps 2011-06-15 11:39:47.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: extended.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:12:00 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: extended.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:47 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:12:00 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:47 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/extended.pdf and octave-3.4.1/doc/interpreter/extended.pdf differ Binary files octave-3.4.0/doc/interpreter/extended.png and octave-3.4.1/doc/interpreter/extended.png differ diff -cNr octave-3.4.0/doc/interpreter/func.texi octave-3.4.1/doc/interpreter/func.texi *** octave-3.4.0/doc/interpreter/func.texi 2011-02-08 05:11:30.000000000 -0500 --- octave-3.4.1/doc/interpreter/func.texi 2011-06-15 11:39:11.000000000 -0400 *************** *** 391,400 **** @code{f}. At the top level, @code{nargout} is undefined. ! @seealso{@ref{doc-nargin,,nargin}, @ref{doc-varargin,,varargin}, @ref{doc-varargout,,varargout}} @end deftypefn @c nargchk scripts/general/nargchk.m @anchor{doc-nargchk} @deftypefn {Function File} {@var{msgstr} =} nargchk (@var{minargs}, @var{maxargs}, @var{nargs}) --- 391,418 ---- @code{f}. At the top level, @code{nargout} is undefined. ! @seealso{@ref{doc-nargin,,nargin}, @ref{doc-isargout,,isargout}, @ref{doc-varargin,,varargin}, @ref{doc-varargout,,varargout}} @end deftypefn + It is good practice at the head of a function to verify that it has been called + correctly. In Octave the following idiom is seen frequently + + @example + @group + if (nargin < min_#_inputs || nargin > max_#_inputs) + print_usage (); + endif + @end group + @end example + + @noindent + which stops the function execution and prints a message about the correct + way to call the function whenever the number of inputs is wrong. + + For compatibility with @sc{matlab}, @code{nargchk} and @code{nargoutchk} are + available which provide similar error checking. + @c nargchk scripts/general/nargchk.m @anchor{doc-nargchk} @deftypefn {Function File} {@var{msgstr} =} nargchk (@var{minargs}, @var{maxargs}, @var{nargs}) *************** *** 423,445 **** @end deftypefn - @c isargout src/ov-usr-fcn.cc - @anchor{doc-isargout} - @deftypefn {Built-in Function} {} isargout (@var{k}) - Within a function, return a logical value indicating whether the argument - @var{k} will be assigned on output to a variable. If the result is false, - the argument has been ignored during the function call through the use of - the tilde (~) special output argument. Functions can use @code{isargout} to - avoid performing unnecessary calculations for outputs which are unwanted. - - If @var{k} is outside the range @code{1:max(nargout)}, the function returns - false. @var{k} can also be an array, in which case the function works - element-by-element and a logical array is returned. At the top level, - @code{isargout} returns an error. - @seealso{@ref{doc-nargout,,nargout}, @ref{doc-nargin,,nargin}, @ref{doc-varargin,,varargin}, @ref{doc-varargout,,varargout}} - @end deftypefn - - @anchor{doc-varargin} @anchor{doc-varargout} @node Variable-length Argument Lists @section Variable-length Argument Lists --- 441,446 ---- *************** *** 590,595 **** --- 591,631 ---- The value of @code{nargin} is not affected by using this declaration. + Return arguments can also be ignored using the same syntax. Functions may + take advantage of ignored outputs to reduce the number of calculations + performed. To do so, use the @code{isargout} function to query whether the + output argument is wanted. For example: + + @example + @group + function [out1, out2] = long_function (x, y, z) + if (isargout (1)) + ## Long calculation + @dots{} + out1 = result; + endif + @dots{} + endfunction + @end group + @end example + + @c isargout src/ov-usr-fcn.cc + @anchor{doc-isargout} + @deftypefn {Built-in Function} {} isargout (@var{k}) + Within a function, return a logical value indicating whether the argument + @var{k} will be assigned on output to a variable. If the result is false, + the argument has been ignored during the function call through the use of + the tilde (~) special output argument. Functions can use @code{isargout} to + avoid performing unnecessary calculations for outputs which are unwanted. + + If @var{k} is outside the range @code{1:max(nargout)}, the function returns + false. @var{k} can also be an array, in which case the function works + element-by-element and a logical array is returned. At the top level, + @code{isargout} returns an error. + @seealso{@ref{doc-nargout,,nargout}, @ref{doc-nargin,,nargin}, @ref{doc-varargin,,varargin}, @ref{doc-varargout,,varargout}} + @end deftypefn + + @node Variable-length Return Lists @section Variable-length Return Lists @cindex variable-length return lists *************** *** 898,904 **** In place of the function name. For example, @table @samp @item [EDITOR, " %s"] ! Use the editor which Octave uses for @code{bug_report}. @item "xedit %s &" pop up simple X11 editor in a separate window --- 934,940 ---- In place of the function name. For example, @table @samp @item [EDITOR, " %s"] ! Use the editor which Octave uses for @code{edit_history}. @item "xedit %s &" pop up simple X11 editor in a separate window *************** *** 965,972 **** @c mfilename src/oct-parse.cc @anchor{doc-mfilename} @deftypefn {Built-in Function} {} mfilename () ! @deftypefnx {Built-in Function} {} mfilename (@code{"fullpath"}) ! @deftypefnx {Built-in Function} {} mfilename (@code{"fullpathext"}) Return the name of the currently executing file. At the top-level, return the empty string. Given the argument @code{"fullpath"}, include the directory part of the file name, but not the extension. --- 1001,1008 ---- @c mfilename src/oct-parse.cc @anchor{doc-mfilename} @deftypefn {Built-in Function} {} mfilename () ! @deftypefnx {Built-in Function} {} mfilename ("fullpath") ! @deftypefnx {Built-in Function} {} mfilename ("fullpathext") Return the name of the currently executing file. At the top-level, return the empty string. Given the argument @code{"fullpath"}, include the directory part of the file name, but not the extension. *************** *** 1028,1035 **** @deftypefn {Built-in Function} {} addpath (@var{dir1}, @dots{}) @deftypefnx {Built-in Function} {} addpath (@var{dir1}, @dots{}, @var{option}) Add @var{dir1}, @dots{} to the current function search path. If ! @var{option} is @samp{"-begin"} or 0 (the default), prepend the ! directory name to the current path. If @var{option} is @samp{"-end"} or 1, append the directory name to the current path. Directories added to the path must exist. --- 1064,1071 ---- @deftypefn {Built-in Function} {} addpath (@var{dir1}, @dots{}) @deftypefnx {Built-in Function} {} addpath (@var{dir1}, @dots{}, @var{option}) Add @var{dir1}, @dots{} to the current function search path. If ! @var{option} is "-begin" or 0 (the default), prepend the ! directory name to the current path. If @var{option} is "-end" or 1, append the directory name to the current path. Directories added to the path must exist. *************** *** 1048,1054 **** @deftypefn {Built-in Function} {} genpath (@var{dir}) @deftypefnx {Built-in Function} {} genpath (@var{dir}, @var{skip}, @dots{}) Return a path constructed from @var{dir} and all its subdirectories. ! If additional string parameters are given, the resulting path will exclude directories with those names. @end deftypefn --- 1084,1090 ---- @deftypefn {Built-in Function} {} genpath (@var{dir}) @deftypefnx {Built-in Function} {} genpath (@var{dir}, @var{skip}, @dots{}) Return a path constructed from @var{dir} and all its subdirectories. ! If additional string parameters are given, the resulting path will exclude directories with those names. @end deftypefn *************** *** 1156,1162 **** @c restoredefaultpath src/load-path.cc @anchor{doc-restoredefaultpath} @deftypefn {Built-in Function} {} restoredefaultpath (@dots{}) ! Restore Octave's path to it's initial state at startup. @seealso{@ref{doc-path,,path}, @ref{doc-addpath,,addpath}, @ref{doc-rmpath,,rmpath}, @ref{doc-genpath,,genpath}, @ref{doc-pathdef,,pathdef}, @ref{doc-savepath,,savepath}, @ref{doc-pathsep,,pathsep}} @end deftypefn --- 1192,1198 ---- @c restoredefaultpath src/load-path.cc @anchor{doc-restoredefaultpath} @deftypefn {Built-in Function} {} restoredefaultpath (@dots{}) ! Restore Octave's path to its initial state at startup. @seealso{@ref{doc-path,,path}, @ref{doc-addpath,,addpath}, @ref{doc-rmpath,,rmpath}, @ref{doc-genpath,,genpath}, @ref{doc-pathdef,,pathdef}, @ref{doc-savepath,,savepath}, @ref{doc-pathsep,,pathsep}} @end deftypefn *************** *** 1173,1179 **** @c find_dir_in_path src/utils.cc @anchor{doc-find_dir_in_path} ! @deftypefn {Built-in Function} {} find_dir_in_path (@var{dir}, "all") Return the full name of the path element matching @var{dir}. The match is performed at the end of each path element. For example, if @var{dir} is @code{"foo/bar"}, it matches the path element --- 1209,1216 ---- @c find_dir_in_path src/utils.cc @anchor{doc-find_dir_in_path} ! @deftypefn {Built-in Function} {} find_dir_in_path (@var{dir}) ! @deftypefnx {Built-in Function} {} find_dir_in_path (@var{dir}, "all") Return the full name of the path element matching @var{dir}. The match is performed at the end of each path element. For example, if @var{dir} is @code{"foo/bar"}, it matches the path element *************** *** 1181,1187 **** or @code{"/some/dir/allfoo/bar"}. The second argument is optional. If it is supplied, return a cell array ! containing all the directory names that match. @end deftypefn --- 1218,1224 ---- or @code{"/some/dir/allfoo/bar"}. The second argument is optional. If it is supplied, return a cell array ! containing all name matches rather than just the first. @end deftypefn *************** *** 1394,1401 **** @c munlock src/variables.cc @anchor{doc-munlock} ! @deftypefn {Built-in Function} {} munlock (@var{fcn}) ! Unlock the named function. If no function is named then unlock the current function. @seealso{@ref{doc-mlock,,mlock}, @ref{doc-mislocked,,mislocked}, @ref{doc-persistent,,persistent}} @end deftypefn --- 1431,1439 ---- @c munlock src/variables.cc @anchor{doc-munlock} ! @deftypefn {Built-in Function} {} munlock () ! @deftypefnx {Built-in Function} {} munlock (@var{fcn}) ! Unlock the named function @var{fcn}. If no function is named then unlock the current function. @seealso{@ref{doc-mlock,,mlock}, @ref{doc-mislocked,,mislocked}, @ref{doc-persistent,,persistent}} @end deftypefn *************** *** 1403,1411 **** @c mislocked src/variables.cc @anchor{doc-mislocked} ! @deftypefn {Built-in Function} {} mislocked (@var{fcn}) ! Return true if the named function is locked. If no function is named ! then return true if the current function is locked. @seealso{@ref{doc-mlock,,mlock}, @ref{doc-munlock,,munlock}, @ref{doc-persistent,,persistent}} @end deftypefn --- 1441,1450 ---- @c mislocked src/variables.cc @anchor{doc-mislocked} ! @deftypefn {Built-in Function} {} mislocked () ! @deftypefnx {Built-in Function} {} mislocked (@var{fcn}) ! Return true if the named function @var{fcn} is locked. If no function is ! named then return true if the current function is locked. @seealso{@ref{doc-mlock,,mlock}, @ref{doc-munlock,,munlock}, @ref{doc-persistent,,persistent}} @end deftypefn *************** *** 1771,1783 **** Create a vectorized version of the inline function @var{fun} by replacing all occurrences of @code{*}, @code{/}, etc., with @code{.*}, @code{./}, etc. @end deftypefn @c symvar scripts/miscellaneous/symvar.m @anchor{doc-symvar} @deftypefn {Function File} {} symvar (@var{s}) ! Identifies the argument names in the function defined by a string. Common constant names such as @code{pi}, @code{NaN}, @code{Inf}, @code{eps}, @code{i} or @code{j} are ignored. The arguments that are found are returned in a cell array of strings. If no variables are --- 1810,1835 ---- Create a vectorized version of the inline function @var{fun} by replacing all occurrences of @code{*}, @code{/}, etc., with @code{.*}, @code{./}, etc. + + This may be useful, for example, when using inline functions with + numerical integration or optimization where a vector-valued function + is expected. + + @example + @group + fcn = vectorize (inline ("x^2 - 1")) + @result{} fcn = f(x) = x.^2 - 1 + quadv (fcn, 0, 3) + @result{} 6 + @end group + @end example @end deftypefn @c symvar scripts/miscellaneous/symvar.m @anchor{doc-symvar} @deftypefn {Function File} {} symvar (@var{s}) ! Identify the argument names in the function defined by a string. Common constant names such as @code{pi}, @code{NaN}, @code{Inf}, @code{eps}, @code{i} or @code{j} are ignored. The arguments that are found are returned in a cell array of strings. If no variables are *************** *** 1859,1879 **** @item audio Functions for playing and recording sounds. ! @item control ! Functions for design and simulation of automatic control systems. @item elfun ! Elementary functions. ! @item finance ! Functions for computing interest payments, investment values, and rates ! of return. @item general Miscellaneous matrix manipulations, like @code{flipud}, @code{rot90}, and @code{triu}, as well as other basic functions, like @code{ismatrix}, @code{nargchk}, etc. @item image Image processing tools. These functions require the X Window System. --- 1911,1936 ---- @item audio Functions for playing and recording sounds. ! @item deprecated ! Out-of-date functions which will eventually be removed from Octave. @item elfun ! Elementary functions, principally trigonometric. ! @item @@ftp ! Class functions for the FTP object. @item general Miscellaneous matrix manipulations, like @code{flipud}, @code{rot90}, and @code{triu}, as well as other basic functions, like @code{ismatrix}, @code{nargchk}, etc. + @item geometry + Functions related to Delaunay triangulation. + + @item help + Functions for Octave's built-in help system. + @item image Image processing tools. These functions require the X Window System. *************** *** 1887,1899 **** Functions that don't really belong anywhere else. @item optimization ! Minimization of functions. @item path Functions to manage the directory path Octave uses to find functions. @item pkg ! Install external packages of functions in Octave. @item plot Functions for displaying and printing two- and three-dimensional graphs. --- 1944,1956 ---- Functions that don't really belong anywhere else. @item optimization ! Functions related to minimization, optimization, and root finding. @item path Functions to manage the directory path Octave uses to find functions. @item pkg ! Package manager for installing external packages of functions in Octave. @item plot Functions for displaying and printing two- and three-dimensional graphs. *************** *** 1911,1920 **** Functions for handling sparse matrices. @item specfun ! Special functions. @item special-matrix ! Functions that create special matrix forms. @item startup Octave's system-wide startup file. --- 1968,1978 ---- Functions for handling sparse matrices. @item specfun ! Special functions such as @code{bessel} or @code{factor}. @item special-matrix ! Functions that create special matrix forms such as Hilbert or Vandermonde ! matrices. @item startup Octave's system-wide startup file. *************** *** 1926,1933 **** Miscellaneous string-handling functions. @item testfun ! Perform unit tests on other functions. @item time ! Functions related to time keeping. @end table --- 1984,1991 ---- Miscellaneous string-handling functions. @item testfun ! Functions for performing unit tests on other functions. @item time ! Functions related to time and date processing. @end table diff -cNr octave-3.4.0/doc/interpreter/func.txi octave-3.4.1/doc/interpreter/func.txi *** octave-3.4.0/doc/interpreter/func.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/func.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 338,349 **** @DOCSTRING(nargout) @DOCSTRING(nargchk) @DOCSTRING(nargoutchk) - @DOCSTRING(isargout) - @anchor{doc-varargin} @anchor{doc-varargout} @node Variable-length Argument Lists @section Variable-length Argument Lists --- 338,365 ---- @DOCSTRING(nargout) + It is good practice at the head of a function to verify that it has been called + correctly. In Octave the following idiom is seen frequently + + @example + @group + if (nargin < min_#_inputs || nargin > max_#_inputs) + print_usage (); + endif + @end group + @end example + + @noindent + which stops the function execution and prints a message about the correct + way to call the function whenever the number of inputs is wrong. + + For compatibility with @sc{matlab}, @code{nargchk} and @code{nargoutchk} are + available which provide similar error checking. + @DOCSTRING(nargchk) @DOCSTRING(nargoutchk) @anchor{doc-varargin} @anchor{doc-varargout} @node Variable-length Argument Lists @section Variable-length Argument Lists *************** *** 456,461 **** --- 472,497 ---- The value of @code{nargin} is not affected by using this declaration. + Return arguments can also be ignored using the same syntax. Functions may + take advantage of ignored outputs to reduce the number of calculations + performed. To do so, use the @code{isargout} function to query whether the + output argument is wanted. For example: + + @example + @group + function [out1, out2] = long_function (x, y, z) + if (isargout (1)) + ## Long calculation + @dots{} + out1 = result; + endif + @dots{} + endfunction + @end group + @end example + + @DOCSTRING(isargout) + @node Variable-length Return Lists @section Variable-length Return Lists @cindex variable-length return lists *************** *** 1259,1279 **** @item audio Functions for playing and recording sounds. ! @item control ! Functions for design and simulation of automatic control systems. @item elfun ! Elementary functions. ! @item finance ! Functions for computing interest payments, investment values, and rates ! of return. @item general Miscellaneous matrix manipulations, like @code{flipud}, @code{rot90}, and @code{triu}, as well as other basic functions, like @code{ismatrix}, @code{nargchk}, etc. @item image Image processing tools. These functions require the X Window System. --- 1295,1320 ---- @item audio Functions for playing and recording sounds. ! @item deprecated ! Out-of-date functions which will eventually be removed from Octave. @item elfun ! Elementary functions, principally trigonometric. ! @item @@ftp ! Class functions for the FTP object. @item general Miscellaneous matrix manipulations, like @code{flipud}, @code{rot90}, and @code{triu}, as well as other basic functions, like @code{ismatrix}, @code{nargchk}, etc. + @item geometry + Functions related to Delaunay triangulation. + + @item help + Functions for Octave's built-in help system. + @item image Image processing tools. These functions require the X Window System. *************** *** 1287,1299 **** Functions that don't really belong anywhere else. @item optimization ! Minimization of functions. @item path Functions to manage the directory path Octave uses to find functions. @item pkg ! Install external packages of functions in Octave. @item plot Functions for displaying and printing two- and three-dimensional graphs. --- 1328,1340 ---- Functions that don't really belong anywhere else. @item optimization ! Functions related to minimization, optimization, and root finding. @item path Functions to manage the directory path Octave uses to find functions. @item pkg ! Package manager for installing external packages of functions in Octave. @item plot Functions for displaying and printing two- and three-dimensional graphs. *************** *** 1311,1320 **** Functions for handling sparse matrices. @item specfun ! Special functions. @item special-matrix ! Functions that create special matrix forms. @item startup Octave's system-wide startup file. --- 1352,1362 ---- Functions for handling sparse matrices. @item specfun ! Special functions such as @code{bessel} or @code{factor}. @item special-matrix ! Functions that create special matrix forms such as Hilbert or Vandermonde ! matrices. @item startup Octave's system-wide startup file. *************** *** 1326,1333 **** Miscellaneous string-handling functions. @item testfun ! Perform unit tests on other functions. @item time ! Functions related to time keeping. @end table --- 1368,1375 ---- Miscellaneous string-handling functions. @item testfun ! Functions for performing unit tests on other functions. @item time ! Functions related to time and date processing. @end table diff -cNr octave-3.4.0/doc/interpreter/geometry.texi octave-3.4.1/doc/interpreter/geometry.texi *** octave-3.4.0/doc/interpreter/geometry.texi 2011-02-08 05:11:30.000000000 -0500 --- octave-3.4.1/doc/interpreter/geometry.texi 2011-06-15 11:39:11.000000000 -0400 *************** *** 323,329 **** @c tsearchn scripts/geometry/tsearchn.m @anchor{doc-tsearchn} @deftypefn {Function File} {[@var{idx}, @var{p}] =} tsearchn (@var{x}, @var{t}, @var{xi}) ! Searches for the enclosing Delaunay convex hull. For @code{@var{t} = delaunayn (@var{x})}, finds the index in @var{t} containing the points @var{xi}. For points outside the convex hull, @var{idx} is NaN. If requested @code{tsearchn} also returns the Barycentric coordinates @var{p} --- 323,329 ---- @c tsearchn scripts/geometry/tsearchn.m @anchor{doc-tsearchn} @deftypefn {Function File} {[@var{idx}, @var{p}] =} tsearchn (@var{x}, @var{t}, @var{xi}) ! Search for the enclosing Delaunay convex hull. For @code{@var{t} = delaunayn (@var{x})}, finds the index in @var{t} containing the points @var{xi}. For points outside the convex hull, @var{idx} is NaN. If requested @code{tsearchn} also returns the Barycentric coordinates @var{p} *************** *** 376,382 **** @anchor{doc-dsearch} @deftypefn {Function File} {@var{idx} =} dsearch (@var{x}, @var{y}, @var{tri}, @var{xi}, @var{yi}) @deftypefnx {Function File} {@var{idx} =} dsearch (@var{x}, @var{y}, @var{tri}, @var{xi}, @var{yi}, @var{s}) ! Returns the index @var{idx} or the closest point in @code{@var{x}, @var{y}} to the elements @code{[@var{xi}(:), @var{yi}(:)]}. The variable @var{s} is accepted for compatibility but is ignored. @seealso{@ref{doc-dsearchn,,dsearchn}, @ref{doc-tsearch,,tsearch}} --- 376,382 ---- @anchor{doc-dsearch} @deftypefn {Function File} {@var{idx} =} dsearch (@var{x}, @var{y}, @var{tri}, @var{xi}, @var{yi}) @deftypefnx {Function File} {@var{idx} =} dsearch (@var{x}, @var{y}, @var{tri}, @var{xi}, @var{yi}, @var{s}) ! Return the index @var{idx} or the closest point in @code{@var{x}, @var{y}} to the elements @code{[@var{xi}(:), @var{yi}(:)]}. The variable @var{s} is accepted for compatibility but is ignored. @seealso{@ref{doc-dsearchn,,dsearchn}, @ref{doc-tsearch,,tsearch}} *************** *** 389,395 **** @deftypefnx {Function File} {@var{idx} =} dsearchn (@var{x}, @var{tri}, @var{xi}, @var{outval}) @deftypefnx {Function File} {@var{idx} =} dsearchn (@var{x}, @var{xi}) @deftypefnx {Function File} {[@var{idx}, @var{d}] =} dsearchn (@dots{}) ! Returns the index @var{idx} or the closest point in @var{x} to the elements @var{xi}. If @var{outval} is supplied, then the values of @var{xi} that are not contained within one of the simplices @var{tri} are set to @var{outval}. Generally, @var{tri} is returned from @code{delaunayn --- 389,395 ---- @deftypefnx {Function File} {@var{idx} =} dsearchn (@var{x}, @var{tri}, @var{xi}, @var{outval}) @deftypefnx {Function File} {@var{idx} =} dsearchn (@var{x}, @var{xi}) @deftypefnx {Function File} {[@var{idx}, @var{d}] =} dsearchn (@dots{}) ! Return the index @var{idx} or the closest point in @var{x} to the elements @var{xi}. If @var{outval} is supplied, then the values of @var{xi} that are not contained within one of the simplices @var{tri} are set to @var{outval}. Generally, @var{tri} is returned from @code{delaunayn *************** *** 441,447 **** @deftypefnx {Function File} {} voronoi (@var{x}, @var{y}, "plotstyle") @deftypefnx {Function File} {} voronoi (@var{x}, @var{y}, "plotstyle", @var{options}) @deftypefnx {Function File} {[@var{vx}, @var{vy}] =} voronoi (@dots{}) ! plots Voronoi diagram of points @code{(@var{x}, @var{y})}. The Voronoi facets with points at infinity are not drawn. [@var{vx}, @var{vy}] = voronoi(@dots{}) returns the vertices instead of plotting the --- 441,447 ---- @deftypefnx {Function File} {} voronoi (@var{x}, @var{y}, "plotstyle") @deftypefnx {Function File} {} voronoi (@var{x}, @var{y}, "plotstyle", @var{options}) @deftypefnx {Function File} {[@var{vx}, @var{vy}] =} voronoi (@dots{}) ! Plot Voronoi diagram of points @code{(@var{x}, @var{y})}. The Voronoi facets with points at infinity are not drawn. [@var{vx}, @var{vy}] = voronoi(@dots{}) returns the vertices instead of plotting the *************** *** 617,623 **** @anchor{doc-convhull} @deftypefn {Function File} {@var{H} =} convhull (@var{x}, @var{y}) @deftypefnx {Function File} {@var{H} =} convhull (@var{x}, @var{y}, @var{opt}) ! Returns the index vector to the points of the enclosing convex hull. The data points are defined by the x and y vectors. A third optional argument, which must be a string, contains extra options --- 617,623 ---- @anchor{doc-convhull} @deftypefn {Function File} {@var{H} =} convhull (@var{x}, @var{y}) @deftypefnx {Function File} {@var{H} =} convhull (@var{x}, @var{y}, @var{opt}) ! Return the index vector to the points of the enclosing convex hull. The data points are defined by the x and y vectors. A third optional argument, which must be a string, contains extra options diff -cNr octave-3.4.0/doc/interpreter/gplot.eps octave-3.4.1/doc/interpreter/gplot.eps *** octave-3.4.0/doc/interpreter/gplot.eps 2011-02-08 05:12:01.000000000 -0500 --- octave-3.4.1/doc/interpreter/gplot.eps 2011-06-15 11:39:48.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: gplot.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:12:01 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: gplot.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:48 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:12:01 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:48 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/gplot.pdf and octave-3.4.1/doc/interpreter/gplot.pdf differ Binary files octave-3.4.0/doc/interpreter/gplot.png and octave-3.4.1/doc/interpreter/gplot.png differ diff -cNr octave-3.4.0/doc/interpreter/grammar.texi octave-3.4.1/doc/interpreter/grammar.texi *** octave-3.4.0/doc/interpreter/grammar.texi 2011-02-08 05:11:30.000000000 -0500 --- octave-3.4.1/doc/interpreter/grammar.texi 2011-06-15 11:39:11.000000000 -0400 *************** *** 18,33 **** @c along with Octave; see the file COPYING. If not, see @c . ! @node Grammar ! @appendix Grammar @cindex grammar rules @cindex language definition ! This appendix should eventually contain a semi-formal description of Octave's language. @menu * Keywords:: @end menu @node Keywords --- 18,34 ---- @c along with Octave; see the file COPYING. If not, see @c . ! @node Grammar and Parser ! @appendix Grammar and Parser @cindex grammar rules @cindex language definition ! This appendix will eventually contain a semi-formal description of Octave's language. @menu * Keywords:: + * Parser:: @end menu @node Keywords *************** *** 54,59 **** --- 55,63 ---- @item @code{unwind_protect_cleanup}@tab @code{while} @end multitable + The function @code{iskeyword} can be used to quickly check whether an + identifier is reserved by Octave. + @c iskeyword src/lex.cc @anchor{doc-iskeyword} @deftypefn {Built-in Function} {} iskeyword () *************** *** 63,65 **** --- 67,125 ---- @seealso{@ref{doc-isvarname,,isvarname}, @ref{doc-exist,,exist}} @end deftypefn + + @node Parser + @section Parser + @cindex parser + + The parser has a number of variables that affect its internal operation. + These variables are generally documented in the manual alongside the code that + they affect. For example, @code{allow_noninteger_range_as_index} is discussed + in the section on index expressions. + + In addition, there are three non-specific parser customization functions. + @code{add_input_event_hook} can be used to schedule a user function for + periodic evaluation. @code{remove_input_event_hook} will stop a user function + from being evaluated periodically. + + @c add_input_event_hook src/input.cc + @anchor{doc-add_input_event_hook} + @deftypefn {Built-in Function} {} add_input_event_hook (@var{fcn}) + @deftypefnx {Built-in Function} {} add_input_event_hook (@var{fcn}, @var{data}) + Add the named function @var{fcn} to the list of functions to call + periodically when Octave is waiting for input. The function should + have the form + + @example + @var{fcn} (@var{data}) + @end example + + If @var{data} is omitted, Octave calls the function without any + arguments. + @seealso{@ref{doc-remove_input_event_hook,,remove_input_event_hook}} + @end deftypefn + + + @c remove_input_event_hook src/input.cc + @anchor{doc-remove_input_event_hook} + @deftypefn {Built-in Function} {} remove_input_event_hook (@var{fcn}) + Remove the named function @var{fcn} from the list of functions to call + periodically when Octave is waiting for input. + @seealso{@ref{doc-add_input_event_hook,,add_input_event_hook}} + @end deftypefn + + + Finally, when the parser cannot identify an input token it calls a particular + function to handle this. By default, this is the function "unimplemented" + which makes suggestions about possible Octave substitutes for @sc{matlab} + functions. + + @c missing_function_hook src/variables.cc + @anchor{doc-missing_function_hook} + @deftypefn {Built-in Function} {@var{val} =} missing_function_hook () + @deftypefnx {Built-in Function} {@var{old_val} =} missing_function_hook (@var{new_val}) + Query or set the internal variable that specifies the function to call when + an unknown identifier is requested. + @end deftypefn + + diff -cNr octave-3.4.0/doc/interpreter/grammar.txi octave-3.4.1/doc/interpreter/grammar.txi *** octave-3.4.0/doc/interpreter/grammar.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/grammar.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 16,31 **** @c along with Octave; see the file COPYING. If not, see @c . ! @node Grammar ! @appendix Grammar @cindex grammar rules @cindex language definition ! This appendix should eventually contain a semi-formal description of Octave's language. @menu * Keywords:: @end menu @node Keywords --- 16,32 ---- @c along with Octave; see the file COPYING. If not, see @c . ! @node Grammar and Parser ! @appendix Grammar and Parser @cindex grammar rules @cindex language definition ! This appendix will eventually contain a semi-formal description of Octave's language. @menu * Keywords:: + * Parser:: @end menu @node Keywords *************** *** 52,55 **** --- 53,85 ---- @item @code{unwind_protect_cleanup}@tab @code{while} @end multitable + The function @code{iskeyword} can be used to quickly check whether an + identifier is reserved by Octave. + @DOCSTRING(iskeyword) + + @node Parser + @section Parser + @cindex parser + + The parser has a number of variables that affect its internal operation. + These variables are generally documented in the manual alongside the code that + they affect. For example, @code{allow_noninteger_range_as_index} is discussed + in the section on index expressions. + + In addition, there are three non-specific parser customization functions. + @code{add_input_event_hook} can be used to schedule a user function for + periodic evaluation. @code{remove_input_event_hook} will stop a user function + from being evaluated periodically. + + @DOCSTRING(add_input_event_hook) + + @DOCSTRING(remove_input_event_hook) + + Finally, when the parser cannot identify an input token it calls a particular + function to handle this. By default, this is the function "unimplemented" + which makes suggestions about possible Octave substitutes for @sc{matlab} + functions. + + @DOCSTRING(missing_function_hook) + diff -cNr octave-3.4.0/doc/interpreter/griddata.eps octave-3.4.1/doc/interpreter/griddata.eps *** octave-3.4.0/doc/interpreter/griddata.eps 2011-02-08 05:11:49.000000000 -0500 --- octave-3.4.1/doc/interpreter/griddata.eps 2011-06-15 11:39:32.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: griddata.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:11:49 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: griddata.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:31 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:11:49 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:31 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/griddata.pdf and octave-3.4.1/doc/interpreter/griddata.pdf differ Binary files octave-3.4.0/doc/interpreter/griddata.png and octave-3.4.1/doc/interpreter/griddata.png differ diff -cNr octave-3.4.0/doc/interpreter/grid.eps octave-3.4.1/doc/interpreter/grid.eps *** octave-3.4.0/doc/interpreter/grid.eps 2011-02-08 05:12:02.000000000 -0500 --- octave-3.4.1/doc/interpreter/grid.eps 2011-06-15 11:39:54.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: grid.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:12:02 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: grid.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:54 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:12:02 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:54 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/grid.pdf and octave-3.4.1/doc/interpreter/grid.pdf differ Binary files octave-3.4.0/doc/interpreter/grid.png and octave-3.4.1/doc/interpreter/grid.png differ diff -cNr octave-3.4.0/doc/interpreter/hist.eps octave-3.4.1/doc/interpreter/hist.eps *** octave-3.4.0/doc/interpreter/hist.eps 2011-02-08 05:11:56.000000000 -0500 --- octave-3.4.1/doc/interpreter/hist.eps 2011-06-15 11:39:42.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: hist.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:11:56 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: hist.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:42 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:11:56 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:42 2011) /DOCINFO pdfmark end } ifelse *************** *** 621,650 **** 0 -88 V stroke 0.00 0.00 0.00 C 900 200 M ! [ [({}) 200.0 0.0 true true 0 (-6)] ] -66.7 MCshow 0.500 UL LTb ! 1900 400 M 0 88 V 0 4311 R 0 -88 V stroke ! 0.00 0.00 0.00 C 1900 200 M ! [ [({}) 200.0 0.0 true true 0 (-4)] ] -66.7 MCshow 0.500 UL LTb ! 2900 400 M 0 88 V 0 4311 R 0 -88 V stroke ! 0.00 0.00 0.00 C 2900 200 M [ [({}) 200.0 0.0 true true 0 (-2)] ] -66.7 MCshow 0.500 UL LTb 3900 400 M 0 88 V 0 4311 R --- 621,660 ---- 0 -88 V stroke 0.00 0.00 0.00 C 900 200 M ! [ [({}) 200.0 0.0 true true 0 (-4)] ] -66.7 MCshow 0.500 UL LTb ! 1650 400 M 0 88 V 0 4311 R 0 -88 V stroke ! 0.00 0.00 0.00 C 1650 200 M ! [ [({}) 200.0 0.0 true true 0 (-3)] ] -66.7 MCshow 0.500 UL LTb ! 2400 400 M 0 88 V 0 4311 R 0 -88 V stroke ! 0.00 0.00 0.00 C 2400 200 M [ [({}) 200.0 0.0 true true 0 (-2)] ] -66.7 MCshow 0.500 UL LTb + 3150 400 M + 0 88 V + 0 4311 R + 0 -88 V + stroke + 0.00 0.00 0.00 C 3150 200 M + [ [({}) 200.0 0.0 true true 0 (-1)] + ] -66.7 MCshow + 0.500 UL + LTb 3900 400 M 0 88 V 0 4311 R *************** *** 655,677 **** ] -66.7 MCshow 0.500 UL LTb ! 4899 400 M 0 88 V 0 4311 R 0 -88 V stroke ! 0.00 0.00 0.00 C 4899 200 M [ [({}) 200.0 0.0 true true 0 (2)] ] -66.7 MCshow 0.500 UL LTb ! 5899 400 M 0 88 V 0 4311 R 0 -88 V stroke ! 0.00 0.00 0.00 C 5899 200 M ! [ [({}) 200.0 0.0 true true 0 (4)] ] -66.7 MCshow 0.500 UL LTb --- 665,697 ---- ] -66.7 MCshow 0.500 UL LTb ! 4649 400 M ! 0 88 V ! 0 4311 R ! 0 -88 V ! stroke ! 0.00 0.00 0.00 C 4649 200 M ! [ [({}) 200.0 0.0 true true 0 (1)] ! ] -66.7 MCshow ! 0.500 UL ! LTb ! 5399 400 M 0 88 V 0 4311 R 0 -88 V stroke ! 0.00 0.00 0.00 C 5399 200 M [ [({}) 200.0 0.0 true true 0 (2)] ] -66.7 MCshow 0.500 UL LTb ! 6149 400 M 0 88 V 0 4311 R 0 -88 V stroke ! 0.00 0.00 0.00 C 6149 200 M ! [ [({}) 200.0 0.0 true true 0 (3)] ] -66.7 MCshow 0.500 UL LTb *************** *** 681,687 **** 0 -88 V stroke 0.00 0.00 0.00 C 6899 200 M ! [ [({}) 200.0 0.0 true true 0 (6)] ] -66.7 MCshow 0.500 UL LTb --- 701,707 ---- 0 -88 V stroke 0.00 0.00 0.00 C 6899 200 M ! [ [({}) 200.0 0.0 true true 0 (4)] ] -66.7 MCshow 0.500 UL LTb *************** *** 699,1287 **** % Begin plot #1 1.000 UL LT0 ! 0.00 0.00 0.50 C gsave 1861 400 N 0 0 V 0 4 V 145 0 V 0 -4 V 1 PolyFill ! 1861 400 M ! 0 4 V ! 145 0 V ! 0 -4 V % End plot #1 % Begin plot #2 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 1861 400 M ! 0 4 V ! 145 0 V ! 0 -4 V ! -145 0 V % End plot #2 % Begin plot #3 stroke 1.000 UL LT2 ! 0.00 0.00 0.50 C gsave 2006 400 N 0 0 V 0 0 V 144 0 V 0 0 V 1 PolyFill ! 2006 400 M ! 144 0 V % End plot #3 % Begin plot #4 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2006 400 M ! 144 0 V ! -144 0 V % End plot #4 % Begin plot #5 stroke 1.000 UL LT4 ! 0.00 0.00 0.50 C gsave 2150 400 N 0 0 V 0 11 V 144 0 V 0 -11 V 1 PolyFill ! 2150 400 M ! 0 11 V ! 144 0 V ! 0 -11 V % End plot #5 % Begin plot #6 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2150 400 M ! 0 11 V ! 144 0 V ! 0 -11 V ! -144 0 V % End plot #6 % Begin plot #7 stroke 1.000 UL LT6 ! 0.00 0.00 0.50 C gsave 2294 400 N 0 0 V 0 26 V 144 0 V 0 -26 V 1 PolyFill ! 2294 400 M ! 0 26 V ! 144 0 V ! 0 -26 V % End plot #7 % Begin plot #8 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2294 400 M ! 0 26 V ! 144 0 V ! 0 -26 V ! -144 0 V % End plot #8 % Begin plot #9 stroke 1.000 UL LT8 ! 0.00 0.00 0.50 C gsave 2438 400 N 0 0 V 0 92 V 145 0 V 0 -92 V 1 PolyFill ! 2438 400 M ! 0 92 V ! 145 0 V ! 0 -92 V % End plot #9 % Begin plot #10 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2438 400 M ! 0 92 V ! 145 0 V ! 0 -92 V ! -145 0 V % End plot #10 % Begin plot #11 stroke 1.000 UL LT1 ! 0.00 0.00 0.50 C gsave 2583 400 N 0 0 V 0 213 V 144 0 V 0 -213 V 1 PolyFill ! 2583 400 M ! 0 213 V ! 144 0 V ! 0 -213 V % End plot #11 % Begin plot #12 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2583 400 M ! 0 213 V ! 144 0 V ! 0 -213 V ! -144 0 V % End plot #12 % Begin plot #13 stroke 1.000 UL LT3 ! 0.00 0.00 0.50 C gsave 2727 400 N 0 0 V 0 392 V 144 0 V 0 -392 V 1 PolyFill ! 2727 400 M ! 0 392 V ! 144 0 V ! 0 -392 V % End plot #13 % Begin plot #14 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2727 400 M ! 0 392 V ! 144 0 V ! 0 -392 V ! -144 0 V % End plot #14 % Begin plot #15 stroke 1.000 UL LT5 ! 0.00 0.00 0.50 C gsave 2871 400 N 0 0 V 0 587 V 145 0 V 0 -587 V 1 PolyFill ! 2871 400 M ! 0 587 V ! 145 0 V ! 0 -587 V % End plot #15 % Begin plot #16 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2871 400 M ! 0 587 V ! 145 0 V ! 0 -587 V ! -145 0 V % End plot #16 % Begin plot #17 stroke 1.000 UL LT7 ! 0.00 0.00 0.50 C gsave 3016 400 N 0 0 V 0 1155 V 144 0 V 0 -1155 V 1 PolyFill ! 3016 400 M ! 0 1155 V ! 144 0 V ! 0 -1155 V % End plot #17 % Begin plot #18 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3016 400 M ! 0 1155 V ! 144 0 V ! 0 -1155 V ! -144 0 V % End plot #18 % Begin plot #19 stroke 1.000 UL LT0 ! 0.00 0.00 0.50 C gsave 3160 400 N 0 0 V 0 1829 V 144 0 V 0 -1829 V 1 PolyFill ! 3160 400 M ! 0 1829 V ! 144 0 V ! 0 -1829 V % End plot #19 % Begin plot #20 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3160 400 M ! 0 1829 V ! 144 0 V ! 0 -1829 V ! -144 0 V % End plot #20 % Begin plot #21 stroke 1.000 UL LT2 ! 0.00 0.00 0.50 C gsave 3304 400 N 0 0 V 0 2474 V 144 0 V 0 -2474 V 1 PolyFill ! 3304 400 M ! 0 2474 V ! 144 0 V ! 0 -2474 V % End plot #21 % Begin plot #22 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3304 400 M ! 0 2474 V ! 144 0 V ! 0 -2474 V ! -144 0 V % End plot #22 % Begin plot #23 stroke 1.000 UL LT4 ! 0.00 0.00 0.50 C gsave 3448 400 N 0 0 V 0 3211 V 145 0 V 0 -3211 V 1 PolyFill ! 3448 400 M ! 0 3211 V ! 145 0 V ! 0 -3211 V % End plot #23 % Begin plot #24 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3448 400 M ! 0 3211 V ! 145 0 V ! 0 -3211 V ! -145 0 V % End plot #24 % Begin plot #25 stroke 1.000 UL LT6 ! 0.00 0.00 0.50 C gsave 3593 400 N 0 0 V 0 3922 V 144 0 V 0 -3922 V 1 PolyFill ! 3593 400 M ! 0 3922 V ! 144 0 V ! 0 -3922 V % End plot #25 % Begin plot #26 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3593 400 M ! 0 3922 V ! 144 0 V ! 0 -3922 V ! -144 0 V % End plot #26 % Begin plot #27 stroke 1.000 UL LT8 ! 0.00 0.00 0.50 C gsave 3737 400 N 0 0 V 0 4201 V 144 0 V 0 -4201 V 1 PolyFill ! 3737 400 M ! 0 4201 V ! 144 0 V ! 0 -4201 V % End plot #27 % Begin plot #28 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3737 400 M ! 0 4201 V ! 144 0 V ! 0 -4201 V ! -144 0 V % End plot #28 % Begin plot #29 stroke 1.000 UL LT1 ! 0.00 0.00 0.50 C gsave 3881 400 N 0 0 V 0 4113 V 144 0 V 0 -4113 V 1 PolyFill ! 3881 400 M ! 0 4113 V ! 144 0 V ! 0 -4113 V % End plot #29 % Begin plot #30 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3881 400 M ! 0 4113 V ! 144 0 V ! 0 -4113 V ! -144 0 V % End plot #30 % Begin plot #31 stroke 1.000 UL LT3 ! 0.00 0.00 0.50 C gsave 4025 400 N 0 0 V 0 3691 V 145 0 V 0 -3691 V 1 PolyFill ! 4025 400 M ! 0 3691 V ! 145 0 V ! 0 -3691 V % End plot #31 % Begin plot #32 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4025 400 M ! 0 3691 V ! 145 0 V ! 0 -3691 V ! -145 0 V % End plot #32 % Begin plot #33 stroke 1.000 UL LT5 ! 0.00 0.00 0.50 C gsave 4170 400 N 0 0 V 0 3369 V 144 0 V 0 -3369 V 1 PolyFill ! 4170 400 M ! 0 3369 V ! 144 0 V ! 0 -3369 V % End plot #33 % Begin plot #34 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4170 400 M ! 0 3369 V ! 144 0 V ! 0 -3369 V ! -144 0 V % End plot #34 % Begin plot #35 stroke 1.000 UL LT7 ! 0.00 0.00 0.50 C gsave 4314 400 N 0 0 V 0 2485 V 144 0 V 0 -2485 V 1 PolyFill ! 4314 400 M ! 0 2485 V ! 144 0 V ! 0 -2485 V % End plot #35 % Begin plot #36 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4314 400 M ! 0 2485 V ! 144 0 V ! 0 -2485 V ! -144 0 V % End plot #36 % Begin plot #37 stroke 1.000 UL LT0 ! 0.00 0.00 0.50 C gsave 4458 400 N 0 0 V 0 1950 V 145 0 V 0 -1950 V 1 PolyFill ! 4458 400 M ! 0 1950 V ! 145 0 V ! 0 -1950 V % End plot #37 % Begin plot #38 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4458 400 M ! 0 1950 V ! 145 0 V ! 0 -1950 V ! -145 0 V % End plot #38 % Begin plot #39 stroke 1.000 UL LT2 ! 0.00 0.00 0.50 C gsave 4603 400 N 0 0 V 0 1261 V 144 0 V 0 -1261 V 1 PolyFill ! 4603 400 M ! 0 1261 V ! 144 0 V ! 0 -1261 V % End plot #39 % Begin plot #40 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4603 400 M ! 0 1261 V ! 144 0 V ! 0 -1261 V ! -144 0 V % End plot #40 % Begin plot #41 stroke 1.000 UL LT4 ! 0.00 0.00 0.50 C gsave 4747 400 N 0 0 V 0 799 V 144 0 V 0 -799 V 1 PolyFill ! 4747 400 M ! 0 799 V ! 144 0 V ! 0 -799 V % End plot #41 % Begin plot #42 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4747 400 M ! 0 799 V ! 144 0 V ! 0 -799 V ! -144 0 V % End plot #42 % Begin plot #43 stroke 1.000 UL LT6 ! 0.00 0.00 0.50 C gsave 4891 400 N 0 0 V 0 422 V 144 0 V 0 -422 V 1 PolyFill ! 4891 400 M ! 0 422 V ! 144 0 V ! 0 -422 V % End plot #43 % Begin plot #44 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4891 400 M ! 0 422 V ! 144 0 V ! 0 -422 V ! -144 0 V % End plot #44 % Begin plot #45 stroke 1.000 UL LT8 ! 0.00 0.00 0.50 C gsave 5035 400 N 0 0 V 0 246 V 145 0 V 0 -246 V 1 PolyFill ! 5035 400 M ! 0 246 V ! 145 0 V ! 0 -246 V % End plot #45 % Begin plot #46 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5035 400 M ! 0 246 V ! 145 0 V ! 0 -246 V ! -145 0 V % End plot #46 % Begin plot #47 stroke 1.000 UL LT1 ! 0.00 0.00 0.50 C gsave 5180 400 N 0 0 V 0 110 V 144 0 V 0 -110 V 1 PolyFill ! 5180 400 M ! 0 110 V ! 144 0 V ! 0 -110 V % End plot #47 % Begin plot #48 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5180 400 M ! 0 110 V ! 144 0 V ! 0 -110 V ! -144 0 V % End plot #48 % Begin plot #49 stroke 1.000 UL LT3 ! 0.00 0.00 0.50 C gsave 5324 400 N 0 0 V 0 70 V 144 0 V 0 -70 V 1 PolyFill ! 5324 400 M ! 0 70 V ! 144 0 V ! 0 -70 V % End plot #49 % Begin plot #50 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5324 400 M ! 0 70 V ! 144 0 V ! 0 -70 V ! -144 0 V % End plot #50 % Begin plot #51 stroke 1.000 UL LT5 ! 0.00 0.00 0.50 C gsave 5468 400 N 0 0 V 0 18 V 144 0 V 0 -18 V 1 PolyFill ! 5468 400 M ! 0 18 V ! 144 0 V ! 0 -18 V % End plot #51 % Begin plot #52 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5468 400 M ! 0 18 V ! 144 0 V ! 0 -18 V ! -144 0 V % End plot #52 % Begin plot #53 stroke 1.000 UL LT7 ! 0.00 0.00 0.50 C gsave 5612 400 N 0 0 V 0 4 V 145 0 V 0 -4 V 1 PolyFill ! 5612 400 M ! 0 4 V ! 145 0 V ! 0 -4 V % End plot #53 % Begin plot #54 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5612 400 M ! 0 4 V ! 145 0 V ! 0 -4 V ! -145 0 V % End plot #54 % Begin plot #55 stroke 1.000 UL LT0 ! 0.00 0.00 0.50 C gsave 5757 400 N 0 0 V 0 0 V 144 0 V 0 0 V 1 PolyFill ! 5757 400 M ! 144 0 V % End plot #55 % Begin plot #56 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5757 400 M ! 144 0 V ! -144 0 V % End plot #56 % Begin plot #57 stroke 1.000 UL LT2 ! 0.00 0.00 0.50 C gsave 5901 400 N 0 0 V 0 0 V 144 0 V 0 0 V 1 PolyFill ! 5901 400 M ! 144 0 V % End plot #57 % Begin plot #58 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5901 400 M ! 144 0 V ! -144 0 V % End plot #58 % Begin plot #59 stroke 1.000 UL LT4 ! 0.00 0.00 0.50 C gsave 6045 400 N 0 0 V 0 4 V 145 0 V 0 -4 V 1 PolyFill ! 6045 400 M 0 4 V ! 145 0 V 0 -4 V % End plot #59 % Begin plot #60 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 6045 400 M 0 4 V ! 145 0 V 0 -4 V ! -145 0 V % End plot #60 % Begin plot #61 stroke --- 719,1319 ---- % Begin plot #1 1.000 UL LT0 ! 0.00 0.00 0.50 C gsave 1178 400 N 0 0 V 0 15 V 183 0 V 0 -15 V 1 PolyFill ! 1178 400 M ! 0 15 V ! 183 0 V ! 0 -15 V % End plot #1 % Begin plot #2 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 1178 400 M ! 0 15 V ! 183 0 V ! 0 -15 V ! -183 0 V % End plot #2 % Begin plot #3 stroke 1.000 UL LT2 ! 0.00 0.00 0.50 C gsave 1361 400 N 0 0 V 0 7 V 183 0 V 0 -7 V 1 PolyFill ! 1361 400 M ! 0 7 V ! 183 0 V ! 0 -7 V % End plot #3 % Begin plot #4 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 1361 400 M ! 0 7 V ! 183 0 V ! 0 -7 V ! -183 0 V % End plot #4 % Begin plot #5 stroke 1.000 UL LT4 ! 0.00 0.00 0.50 C gsave 1544 400 N 0 0 V 0 33 V 183 0 V 0 -33 V 1 PolyFill ! 1544 400 M ! 0 33 V ! 183 0 V ! 0 -33 V % End plot #5 % Begin plot #6 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 1544 400 M ! 0 33 V ! 183 0 V ! 0 -33 V ! -183 0 V % End plot #6 % Begin plot #7 stroke 1.000 UL LT6 ! 0.00 0.00 0.50 C gsave 1727 400 N 0 0 V 0 73 V 183 0 V 0 -73 V 1 PolyFill ! 1727 400 M ! 0 73 V ! 183 0 V ! 0 -73 V % End plot #7 % Begin plot #8 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 1727 400 M ! 0 73 V ! 183 0 V ! 0 -73 V ! -183 0 V % End plot #8 % Begin plot #9 stroke 1.000 UL LT8 ! 0.00 0.00 0.50 C gsave 1910 400 N 0 0 V 0 114 V 183 0 V 0 -114 V 1 PolyFill ! 1910 400 M ! 0 114 V ! 183 0 V ! 0 -114 V % End plot #9 % Begin plot #10 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 1910 400 M ! 0 114 V ! 183 0 V ! 0 -114 V ! -183 0 V % End plot #10 % Begin plot #11 stroke 1.000 UL LT1 ! 0.00 0.00 0.50 C gsave 2093 400 N 0 0 V 0 249 V 183 0 V 0 -249 V 1 PolyFill ! 2093 400 M ! 0 249 V ! 183 0 V ! 0 -249 V % End plot #11 % Begin plot #12 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2093 400 M ! 0 249 V ! 183 0 V ! 0 -249 V ! -183 0 V % End plot #12 % Begin plot #13 stroke 1.000 UL LT3 ! 0.00 0.00 0.50 C gsave 2276 400 N 0 0 V 0 458 V 183 0 V 0 -458 V 1 PolyFill ! 2276 400 M ! 0 458 V ! 183 0 V ! 0 -458 V % End plot #13 % Begin plot #14 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2276 400 M ! 0 458 V ! 183 0 V ! 0 -458 V ! -183 0 V % End plot #14 % Begin plot #15 stroke 1.000 UL LT5 ! 0.00 0.00 0.50 C gsave 2459 400 N 0 0 V 0 704 V 183 0 V 0 -704 V 1 PolyFill ! 2459 400 M ! 0 704 V ! 183 0 V ! 0 -704 V % End plot #15 % Begin plot #16 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2459 400 M ! 0 704 V ! 183 0 V ! 0 -704 V ! -183 0 V % End plot #16 % Begin plot #17 stroke 1.000 UL LT7 ! 0.00 0.00 0.50 C gsave 2642 400 N 0 0 V 0 1030 V 183 0 V 0 -1030 V 1 PolyFill ! 2642 400 M ! 0 1030 V ! 183 0 V ! 0 -1030 V % End plot #17 % Begin plot #18 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2642 400 M ! 0 1030 V ! 183 0 V ! 0 -1030 V ! -183 0 V % End plot #18 % Begin plot #19 stroke 1.000 UL LT0 ! 0.00 0.00 0.50 C gsave 2825 400 N 0 0 V 0 1345 V 183 0 V 0 -1345 V 1 PolyFill ! 2825 400 M ! 0 1345 V ! 183 0 V ! 0 -1345 V % End plot #19 % Begin plot #20 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 2825 400 M ! 0 1345 V ! 183 0 V ! 0 -1345 V ! -183 0 V % End plot #20 % Begin plot #21 stroke 1.000 UL LT2 ! 0.00 0.00 0.50 C gsave 3008 400 N 0 0 V 0 2130 V 183 0 V 0 -2130 V 1 PolyFill ! 3008 400 M ! 0 2130 V ! 183 0 V ! 0 -2130 V % End plot #21 % Begin plot #22 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3008 400 M ! 0 2130 V ! 183 0 V ! 0 -2130 V ! -183 0 V % End plot #22 % Begin plot #23 stroke 1.000 UL LT4 ! 0.00 0.00 0.50 C gsave 3191 400 N 0 0 V 0 2559 V 183 0 V 0 -2559 V 1 PolyFill ! 3191 400 M ! 0 2559 V ! 183 0 V ! 0 -2559 V % End plot #23 % Begin plot #24 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3191 400 M ! 0 2559 V ! 183 0 V ! 0 -2559 V ! -183 0 V % End plot #24 % Begin plot #25 stroke 1.000 UL LT6 ! 0.00 0.00 0.50 C gsave 3374 400 N 0 0 V 0 3010 V 183 0 V 0 -3010 V 1 PolyFill ! 3374 400 M ! 0 3010 V ! 183 0 V ! 0 -3010 V % End plot #25 % Begin plot #26 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3374 400 M ! 0 3010 V ! 183 0 V ! 0 -3010 V ! -183 0 V % End plot #26 % Begin plot #27 stroke 1.000 UL LT8 ! 0.00 0.00 0.50 C gsave 3557 400 N 0 0 V 0 3402 V 183 0 V 0 -3402 V 1 PolyFill ! 3557 400 M ! 0 3402 V ! 183 0 V ! 0 -3402 V % End plot #27 % Begin plot #28 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3557 400 M ! 0 3402 V ! 183 0 V ! 0 -3402 V ! -183 0 V % End plot #28 % Begin plot #29 stroke 1.000 UL LT1 ! 0.00 0.00 0.50 C gsave 3740 400 N 0 0 V 0 3724 V 183 0 V 0 -3724 V 1 PolyFill ! 3740 400 M ! 0 3724 V ! 183 0 V ! 0 -3724 V % End plot #29 % Begin plot #30 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3740 400 M ! 0 3724 V ! 183 0 V ! 0 -3724 V ! -183 0 V % End plot #30 % Begin plot #31 stroke 1.000 UL LT3 ! 0.00 0.00 0.50 C gsave 3923 400 N 0 0 V 0 3552 V 183 0 V 0 -3552 V 1 PolyFill ! 3923 400 M ! 0 3552 V ! 183 0 V ! 0 -3552 V % End plot #31 % Begin plot #32 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 3923 400 M ! 0 3552 V ! 183 0 V ! 0 -3552 V ! -183 0 V % End plot #32 % Begin plot #33 stroke 1.000 UL LT5 ! 0.00 0.00 0.50 C gsave 4106 400 N 0 0 V 0 2962 V 183 0 V 0 -2962 V 1 PolyFill ! 4106 400 M ! 0 2962 V ! 183 0 V ! 0 -2962 V % End plot #33 % Begin plot #34 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4106 400 M ! 0 2962 V ! 183 0 V ! 0 -2962 V ! -183 0 V % End plot #34 % Begin plot #35 stroke 1.000 UL LT7 ! 0.00 0.00 0.50 C gsave 4289 400 N 0 0 V 0 2929 V 183 0 V 0 -2929 V 1 PolyFill ! 4289 400 M ! 0 2929 V ! 183 0 V ! 0 -2929 V % End plot #35 % Begin plot #36 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4289 400 M ! 0 2929 V ! 183 0 V ! 0 -2929 V ! -183 0 V % End plot #36 % Begin plot #37 stroke 1.000 UL LT0 ! 0.00 0.00 0.50 C gsave 4472 400 N 0 0 V 0 2504 V 183 0 V 0 -2504 V 1 PolyFill ! 4472 400 M ! 0 2504 V ! 183 0 V ! 0 -2504 V % End plot #37 % Begin plot #38 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4472 400 M ! 0 2504 V ! 183 0 V ! 0 -2504 V ! -183 0 V % End plot #38 % Begin plot #39 stroke 1.000 UL LT2 ! 0.00 0.00 0.50 C gsave 4655 400 N 0 0 V 0 1965 V 183 0 V 0 -1965 V 1 PolyFill ! 4655 400 M ! 0 1965 V ! 183 0 V ! 0 -1965 V % End plot #39 % Begin plot #40 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4655 400 M ! 0 1965 V ! 183 0 V ! 0 -1965 V ! -183 0 V % End plot #40 % Begin plot #41 stroke 1.000 UL LT4 ! 0.00 0.00 0.50 C gsave 4838 400 N 0 0 V 0 1426 V 183 0 V 0 -1426 V 1 PolyFill ! 4838 400 M ! 0 1426 V ! 183 0 V ! 0 -1426 V % End plot #41 % Begin plot #42 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 4838 400 M ! 0 1426 V ! 183 0 V ! 0 -1426 V ! -183 0 V % End plot #42 % Begin plot #43 stroke 1.000 UL LT6 ! 0.00 0.00 0.50 C gsave 5021 400 N 0 0 V 0 1012 V 183 0 V 0 -1012 V 1 PolyFill ! 5021 400 M ! 0 1012 V ! 183 0 V ! 0 -1012 V % End plot #43 % Begin plot #44 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5021 400 M ! 0 1012 V ! 183 0 V ! 0 -1012 V ! -183 0 V % End plot #44 % Begin plot #45 stroke 1.000 UL LT8 ! 0.00 0.00 0.50 C gsave 5204 400 N 0 0 V 0 609 V 183 0 V 0 -609 V 1 PolyFill ! 5204 400 M ! 0 609 V ! 183 0 V ! 0 -609 V % End plot #45 % Begin plot #46 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5204 400 M ! 0 609 V ! 183 0 V ! 0 -609 V ! -183 0 V % End plot #46 % Begin plot #47 stroke 1.000 UL LT1 ! 0.00 0.00 0.50 C gsave 5387 400 N 0 0 V 0 378 V 183 0 V 0 -378 V 1 PolyFill ! 5387 400 M ! 0 378 V ! 183 0 V ! 0 -378 V % End plot #47 % Begin plot #48 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5387 400 M ! 0 378 V ! 183 0 V ! 0 -378 V ! -183 0 V % End plot #48 % Begin plot #49 stroke 1.000 UL LT3 ! 0.00 0.00 0.50 C gsave 5570 400 N 0 0 V 0 238 V 183 0 V 0 -238 V 1 PolyFill ! 5570 400 M ! 0 238 V ! 183 0 V ! 0 -238 V % End plot #49 % Begin plot #50 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5570 400 M ! 0 238 V ! 183 0 V ! 0 -238 V ! -183 0 V % End plot #50 % Begin plot #51 stroke 1.000 UL LT5 ! 0.00 0.00 0.50 C gsave 5753 400 N 0 0 V 0 114 V 184 0 V 0 -114 V 1 PolyFill ! 5753 400 M ! 0 114 V ! 184 0 V ! 0 -114 V % End plot #51 % Begin plot #52 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5753 400 M ! 0 114 V ! 184 0 V ! 0 -114 V ! -184 0 V % End plot #52 % Begin plot #53 stroke 1.000 UL LT7 ! 0.00 0.00 0.50 C gsave 5937 400 N 0 0 V 0 59 V 183 0 V 0 -59 V 1 PolyFill ! 5937 400 M ! 0 59 V ! 183 0 V ! 0 -59 V % End plot #53 % Begin plot #54 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 5937 400 M ! 0 59 V ! 183 0 V ! 0 -59 V ! -183 0 V % End plot #54 % Begin plot #55 stroke 1.000 UL LT0 ! 0.00 0.00 0.50 C gsave 6120 400 N 0 0 V 0 48 V 183 0 V 0 -48 V 1 PolyFill ! 6120 400 M ! 0 48 V ! 183 0 V ! 0 -48 V % End plot #55 % Begin plot #56 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 6120 400 M ! 0 48 V ! 183 0 V ! 0 -48 V ! -183 0 V % End plot #56 % Begin plot #57 stroke 1.000 UL LT2 ! 0.00 0.00 0.50 C gsave 6303 400 N 0 0 V 0 7 V 183 0 V 0 -7 V 1 PolyFill ! 6303 400 M ! 0 7 V ! 183 0 V ! 0 -7 V % End plot #57 % Begin plot #58 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 6303 400 M ! 0 7 V ! 183 0 V ! 0 -7 V ! -183 0 V % End plot #58 % Begin plot #59 stroke 1.000 UL LT4 ! 0.00 0.00 0.50 C gsave 6486 400 N 0 0 V 0 4 V 183 0 V 0 -4 V 1 PolyFill ! 6486 400 M 0 4 V ! 183 0 V 0 -4 V % End plot #59 % Begin plot #60 stroke 0.500 UL LT0 ! 0.00 0.00 0.00 C 6486 400 M 0 4 V ! 183 0 V 0 -4 V ! -183 0 V % End plot #60 % Begin plot #61 stroke Binary files octave-3.4.0/doc/interpreter/hist.pdf and octave-3.4.1/doc/interpreter/hist.pdf differ Binary files octave-3.4.0/doc/interpreter/hist.png and octave-3.4.1/doc/interpreter/hist.png differ diff -cNr octave-3.4.0/doc/interpreter/image.texi octave-3.4.1/doc/interpreter/image.texi *** octave-3.4.0/doc/interpreter/image.texi 2011-02-08 05:11:30.000000000 -0500 --- octave-3.4.1/doc/interpreter/image.texi 2011-06-15 11:39:11.000000000 -0400 *************** *** 651,657 **** @deftypefn {Function File} {@var{map_out} =} brighten (@var{map}, @var{beta}) @deftypefnx {Function File} {@var{map_out} =} brighten (@var{h}, @var{beta}) @deftypefnx {Function File} {@var{map_out} =} brighten (@var{beta}) ! Darkens or brightens the given colormap. If the @var{map} argument is omitted, the function is applied to the current colormap. The first argument can also be a valid graphics handle @var{h}, in which case @code{brighten} is applied to the colormap associated with this handle. --- 651,657 ---- @deftypefn {Function File} {@var{map_out} =} brighten (@var{map}, @var{beta}) @deftypefnx {Function File} {@var{map_out} =} brighten (@var{h}, @var{beta}) @deftypefnx {Function File} {@var{map_out} =} brighten (@var{beta}) ! Darken or brighten the given colormap. If the @var{map} argument is omitted, the function is applied to the current colormap. The first argument can also be a valid graphics handle @var{h}, in which case @code{brighten} is applied to the colormap associated with this handle. diff -cNr octave-3.4.0/doc/interpreter/inpolygon.eps octave-3.4.1/doc/interpreter/inpolygon.eps *** octave-3.4.0/doc/interpreter/inpolygon.eps 2011-02-08 05:11:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/inpolygon.eps 2011-06-15 11:39:35.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: inpolygon.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:11:51 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: inpolygon.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:35 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:11:51 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:35 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/inpolygon.pdf and octave-3.4.1/doc/interpreter/inpolygon.pdf differ Binary files octave-3.4.0/doc/interpreter/inpolygon.png and octave-3.4.1/doc/interpreter/inpolygon.png differ diff -cNr octave-3.4.0/doc/interpreter/install.texi octave-3.4.1/doc/interpreter/install.texi *** octave-3.4.0/doc/interpreter/install.texi 2011-02-08 05:11:30.000000000 -0500 --- octave-3.4.1/doc/interpreter/install.texi 2011-06-15 11:39:11.000000000 -0400 *************** *** 129,135 **** library that Octave should use. @item --with-magick= ! Select the library to use for image I/O. The two possible values are "GraphicsMagick" (default) or "ImageMagick". @item --with-sepchar= --- 129,135 ---- library that Octave should use. @item --with-magick= ! Select the library to use for image I/O@. The two possible values are "GraphicsMagick" (default) or "ImageMagick". @item --with-sepchar= *************** *** 222,231 **** There are currently two options for plotting in Octave: (1) the external program gnuplot, or (2) the internal graphics engine using OpenGL and ! FLTK. Gnuplot is a command-driven interactive function plotting program. Gnuplot is copyrighted, but freely distributable. As of Octave release 3.4, gnuplot is the default option for plotting. But, ! the internal graphics engine is nearly 100% compatibile, certainly for most ordinary plots, and users are encouraged to test it. It is anticipated that the internal engine will become the default option at the next major release of Octave. --- 222,231 ---- There are currently two options for plotting in Octave: (1) the external program gnuplot, or (2) the internal graphics engine using OpenGL and ! FLTK@. Gnuplot is a command-driven interactive function plotting program. Gnuplot is copyrighted, but freely distributable. As of Octave release 3.4, gnuplot is the default option for plotting. But, ! the internal graphics engine is nearly 100% compatible, certainly for most ordinary plots, and users are encouraged to test it. It is anticipated that the internal engine will become the default option at the next major release of Octave. *************** *** 550,556 **** You must ensure that all Fortran sources except those in the @file{libcruft/ranlib} directory are compiled such that INTEGERS are 8-bytes wide. If you are using gfortan, the configure script should ! automatically set the Makefile variable @code{F77_INTEGER_8_FLAG} to @option{-fdefault-integer-8}. If you are using another compiler, you must set this variable yourself. You should NOT set this flag in @env{FFLAGS}, otherwise the files in @file{libcruft/ranlib} will be --- 550,556 ---- You must ensure that all Fortran sources except those in the @file{libcruft/ranlib} directory are compiled such that INTEGERS are 8-bytes wide. If you are using gfortan, the configure script should ! automatically set the Makefile variable @w{@env{F77_INTEGER_8_FLAG}} to @option{-fdefault-integer-8}. If you are using another compiler, you must set this variable yourself. You should NOT set this flag in @env{FFLAGS}, otherwise the files in @file{libcruft/ranlib} will be *************** *** 563,569 **** please submit a bug report. @itemize @minus ! @item pcre or regex @item zlib --- 563,569 ---- please submit a bug report. @itemize @minus ! @item pcre @item zlib diff -cNr octave-3.4.0/doc/interpreter/install.txi octave-3.4.1/doc/interpreter/install.txi *** octave-3.4.0/doc/interpreter/install.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/install.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 127,133 **** library that Octave should use. @item --with-magick= ! Select the library to use for image I/O. The two possible values are "GraphicsMagick" (default) or "ImageMagick". @item --with-sepchar= --- 127,133 ---- library that Octave should use. @item --with-magick= ! Select the library to use for image I/O@. The two possible values are "GraphicsMagick" (default) or "ImageMagick". @item --with-sepchar= *************** *** 220,229 **** There are currently two options for plotting in Octave: (1) the external program gnuplot, or (2) the internal graphics engine using OpenGL and ! FLTK. Gnuplot is a command-driven interactive function plotting program. Gnuplot is copyrighted, but freely distributable. As of Octave release 3.4, gnuplot is the default option for plotting. But, ! the internal graphics engine is nearly 100% compatibile, certainly for most ordinary plots, and users are encouraged to test it. It is anticipated that the internal engine will become the default option at the next major release of Octave. --- 220,229 ---- There are currently two options for plotting in Octave: (1) the external program gnuplot, or (2) the internal graphics engine using OpenGL and ! FLTK@. Gnuplot is a command-driven interactive function plotting program. Gnuplot is copyrighted, but freely distributable. As of Octave release 3.4, gnuplot is the default option for plotting. But, ! the internal graphics engine is nearly 100% compatible, certainly for most ordinary plots, and users are encouraged to test it. It is anticipated that the internal engine will become the default option at the next major release of Octave. *************** *** 548,554 **** You must ensure that all Fortran sources except those in the @file{libcruft/ranlib} directory are compiled such that INTEGERS are 8-bytes wide. If you are using gfortan, the configure script should ! automatically set the Makefile variable @code{F77_INTEGER_8_FLAG} to @option{-fdefault-integer-8}. If you are using another compiler, you must set this variable yourself. You should NOT set this flag in @env{FFLAGS}, otherwise the files in @file{libcruft/ranlib} will be --- 548,554 ---- You must ensure that all Fortran sources except those in the @file{libcruft/ranlib} directory are compiled such that INTEGERS are 8-bytes wide. If you are using gfortan, the configure script should ! automatically set the Makefile variable @w{@env{F77_INTEGER_8_FLAG}} to @option{-fdefault-integer-8}. If you are using another compiler, you must set this variable yourself. You should NOT set this flag in @env{FFLAGS}, otherwise the files in @file{libcruft/ranlib} will be *************** *** 561,567 **** please submit a bug report. @itemize @minus ! @item pcre or regex @item zlib --- 561,567 ---- please submit a bug report. @itemize @minus ! @item pcre @item zlib diff -cNr octave-3.4.0/doc/interpreter/interpderiv1.eps octave-3.4.1/doc/interpreter/interpderiv1.eps *** octave-3.4.0/doc/interpreter/interpderiv1.eps 2011-02-08 05:11:54.000000000 -0500 --- octave-3.4.1/doc/interpreter/interpderiv1.eps 2011-06-15 11:39:39.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: interpderiv1.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:11:54 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: interpderiv1.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:39 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:11:54 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:39 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/interpderiv1.pdf and octave-3.4.1/doc/interpreter/interpderiv1.pdf differ Binary files octave-3.4.0/doc/interpreter/interpderiv1.png and octave-3.4.1/doc/interpreter/interpderiv1.png differ diff -cNr octave-3.4.0/doc/interpreter/interpderiv2.eps octave-3.4.1/doc/interpreter/interpderiv2.eps *** octave-3.4.0/doc/interpreter/interpderiv2.eps 2011-02-08 05:11:55.000000000 -0500 --- octave-3.4.1/doc/interpreter/interpderiv2.eps 2011-06-15 11:39:40.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: interpderiv2.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:11:55 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: interpderiv2.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:40 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:11:55 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:40 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/interpderiv2.pdf and octave-3.4.1/doc/interpreter/interpderiv2.pdf differ Binary files octave-3.4.0/doc/interpreter/interpderiv2.png and octave-3.4.1/doc/interpreter/interpderiv2.png differ diff -cNr octave-3.4.0/doc/interpreter/interpft.eps octave-3.4.1/doc/interpreter/interpft.eps *** octave-3.4.0/doc/interpreter/interpft.eps 2011-02-08 05:11:52.000000000 -0500 --- octave-3.4.1/doc/interpreter/interpft.eps 2011-06-15 11:39:37.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: interpft.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:11:52 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: interpft.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:37 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:11:52 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:37 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/interpft.pdf and octave-3.4.1/doc/interpreter/interpft.pdf differ Binary files octave-3.4.0/doc/interpreter/interpft.png and octave-3.4.1/doc/interpreter/interpft.png differ diff -cNr octave-3.4.0/doc/interpreter/interpn.eps octave-3.4.1/doc/interpreter/interpn.eps *** octave-3.4.0/doc/interpreter/interpn.eps 2011-02-08 05:11:53.000000000 -0500 --- octave-3.4.1/doc/interpreter/interpn.eps 2011-06-15 11:39:38.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: interpn.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:11:53 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: interpn.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:38 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:11:53 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:38 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/interpn.pdf and octave-3.4.1/doc/interpreter/interpn.pdf differ Binary files octave-3.4.0/doc/interpreter/interpn.png and octave-3.4.1/doc/interpreter/interpn.png differ diff -cNr octave-3.4.0/doc/interpreter/intro.texi octave-3.4.1/doc/interpreter/intro.texi *** octave-3.4.0/doc/interpreter/intro.texi 2011-02-08 05:11:31.000000000 -0500 --- octave-3.4.1/doc/interpreter/intro.texi 2011-06-15 11:39:12.000000000 -0400 *************** *** 387,393 **** In order to get good help you first need to know the name of the command that you want to use. This name of the function may not always be ! obvious, but a good place to start is to just type @code{help --list}. This will show you all the operators, keywords, built-in functions, and loadable functions available in the current session of Octave. An alternative is to search the documentation using the @code{lookfor} --- 387,393 ---- In order to get good help you first need to know the name of the command that you want to use. This name of the function may not always be ! obvious, but a good place to start is to type @code{help --list}. This will show you all the operators, keywords, built-in functions, and loadable functions available in the current session of Octave. An alternative is to search the documentation using the @code{lookfor} diff -cNr octave-3.4.0/doc/interpreter/intro.txi octave-3.4.1/doc/interpreter/intro.txi *** octave-3.4.0/doc/interpreter/intro.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/intro.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 385,391 **** In order to get good help you first need to know the name of the command that you want to use. This name of the function may not always be ! obvious, but a good place to start is to just type @code{help --list}. This will show you all the operators, keywords, built-in functions, and loadable functions available in the current session of Octave. An alternative is to search the documentation using the @code{lookfor} --- 385,391 ---- In order to get good help you first need to know the name of the command that you want to use. This name of the function may not always be ! obvious, but a good place to start is to type @code{help --list}. This will show you all the operators, keywords, built-in functions, and loadable functions available in the current session of Octave. An alternative is to search the documentation using the @code{lookfor} diff -cNr octave-3.4.0/doc/interpreter/io.texi octave-3.4.1/doc/interpreter/io.texi *** octave-3.4.0/doc/interpreter/io.texi 2011-02-08 05:11:31.000000000 -0500 --- octave-3.4.1/doc/interpreter/io.texi 2011-06-15 11:39:12.000000000 -0400 *************** *** 23,35 **** Octave supports several ways of reading and writing data to or from the prompt or a file. The simplest functions for data Input and Output ! (I/O) are easy to use, but only provides limited control of how data is processed. For more control, a set of functions modelled after the C standard library are also provided by Octave. @menu * Basic Input and Output:: * C-Style I/O Functions:: @end menu @node Basic Input and Output --- 23,36 ---- Octave supports several ways of reading and writing data to or from the prompt or a file. The simplest functions for data Input and Output ! (I/O) are easy to use, but only provide limited control of how data is processed. For more control, a set of functions modelled after the C standard library are also provided by Octave. @menu * Basic Input and Output:: * C-Style I/O Functions:: + * GUI Dialogs for I/O:: @end menu @node Basic Input and Output *************** *** 89,94 **** --- 90,137 ---- @end deftypefn + @c list_in_columns src/strfns.cc + @anchor{doc-list_in_columns} + @deftypefn {Built-in Function} {} list_in_columns (@var{arg}, @var{width}) + Return a string containing the elements of @var{arg} listed in + columns with an overall maximum width of @var{width}. The argument + @var{arg} must be a cell array of character strings or a character array. + If @var{width} is not specified, the width of the terminal screen is used. + Newline characters are used to break the lines in the output string. + For example: + + @example + @group + list_in_columns (@{"abc", "def", "ghijkl", "mnop", "qrs", "tuv"@}, 20) + @result{} ans = abc mnop + def qrs + ghijkl tuv + + whos ans + @result{} + Variables in the current scope: + + Attr Name Size Bytes Class + ==== ==== ==== ===== ===== + ans 1x37 37 char + + Total is 37 elements using 37 bytes + @end group + @end example + + @seealso{@ref{doc-terminal_size,,terminal_size}} + @end deftypefn + + + @c terminal_size src/pager.cc + @anchor{doc-terminal_size} + @deftypefn {Built-in Function} {} terminal_size () + Return a two-element row vector containing the current size of the + terminal window in characters (rows and columns). + @seealso{@ref{doc-list_in_columns,,list_in_columns}} + @end deftypefn + + @c format src/pr-output.cc @anchor{doc-format} @deftypefn {Command} {} format *************** *** 515,521 **** of the scalar structure @var{STRUCT} are saved as if they were variables with corresponding names. Valid options for the @code{save} command are listed in the following table. ! Options that modify the output format override the format specified by @code{default_save_options}. If save is invoked using the functional form --- 558,564 ---- of the scalar structure @var{STRUCT} are saved as if they were variables with corresponding names. Valid options for the @code{save} command are listed in the following table. ! Options that modify the output format override the format specified by @code{default_save_options}. If save is invoked using the functional form *************** *** 529,534 **** --- 572,579 ---- (@var{v1}, @dots{}) must be specified as character strings. @table @code + @item -append + Append to the destination instead of overwriting. @item -ascii Save a single matrix in a text file without header or any other information. *************** *** 596,602 **** Match the list of characters specified by @var{list}. If the first character is @code{!} or @code{^}, match all characters except those specified by @var{list}. For example, the pattern @code{[a-zA-Z]} will ! match all lower and upper case alphabetic characters. Wildcards may also be used in the field name specifications when using the @option{-struct} modifier (but not in the struct name itself). --- 641,647 ---- Match the list of characters specified by @var{list}. If the first character is @code{!} or @code{^}, match all characters except those specified by @var{list}. For example, the pattern @code{[a-zA-Z]} will ! match all lower and uppercase alphabetic characters. Wildcards may also be used in the field name specifications when using the @option{-struct} modifier (but not in the struct name itself). *************** *** 717,722 **** --- 762,775 ---- @end deftypefn + @c fileread scripts/io/fileread.m + @anchor{doc-fileread} + @deftypefn {Function File} {@var{str} =} fileread (@var{filename}) + Read the contents of @var{filename} and return it as a string. + @seealso{@ref{doc-fread,,fread}, @ref{doc-textread,,textread}, @ref{doc-sscanf,,sscanf}} + @end deftypefn + + There are three functions that modify the behavior of @code{save}. @c default_save_options src/load-save.cc *************** *** 959,970 **** @c textscan scripts/io/textscan.m @anchor{doc-textscan} @deftypefn {Function File} {@var{C} =} textscan (@var{fid}, @var{format}) ! @deftypefnx {Function File} {@var{C} =} textscan (@var{fid}, @var{format}, @ ! @var{n}) ! @deftypefnx {Function File} {@var{C} =} textscan (@var{fid}, @var{format}, @ ! @var{param}, @var{value}, @dots{}) ! @deftypefnx {Function File} {@var{C} =} textscan (@var{fid}, @var{format}, @ ! @var{n}, @var{param}, @var{value}, @dots{}) @deftypefnx {Function File} {@var{C} =} textscan (@var{str}, @dots{}) @deftypefnx {Function File} {[@var{C}, @var{position}] =} textscan (@dots{}) Read data from a text file. --- 1012,1020 ---- @c textscan scripts/io/textscan.m @anchor{doc-textscan} @deftypefn {Function File} {@var{C} =} textscan (@var{fid}, @var{format}) ! @deftypefnx {Function File} {@var{C} =} textscan (@var{fid}, @var{format}, @var{n}) ! @deftypefnx {Function File} {@var{C} =} textscan (@var{fid}, @var{format}, @var{param}, @var{value}, @dots{}) ! @deftypefnx {Function File} {@var{C} =} textscan (@var{fid}, @var{format}, @var{n}, @var{param}, @var{value}, @dots{}) @deftypefnx {Function File} {@var{C} =} textscan (@var{str}, @dots{}) @deftypefnx {Function File} {[@var{C}, @var{position}] =} textscan (@dots{}) Read data from a text file. *************** *** 1269,1277 **** @c fclose src/file-io.cc @anchor{doc-fclose} ! @deftypefn {Built-in Function} {} fclose (@var{fid}) Close the specified file. If successful, @code{fclose} returns 0, ! otherwise, it returns -1. @seealso{@ref{doc-fopen,,fopen}, @ref{doc-fseek,,fseek}, @ref{doc-ftell,,ftell}} @end deftypefn --- 1319,1329 ---- @c fclose src/file-io.cc @anchor{doc-fclose} ! @deftypefn {Built-in Function} {} fclose (@var{fid}) ! @deftypefnx {Built-in Function} {} fclose ("all") Close the specified file. If successful, @code{fclose} returns 0, ! otherwise, it returns -1. The second form of the @code{fclose} call closes ! all open files except @code{stdout}, @code{stderr}, and @code{stdin}. @seealso{@ref{doc-fopen,,fopen}, @ref{doc-fseek,,fseek}, @ref{doc-ftell,,ftell}} @end deftypefn *************** *** 1361,1367 **** @c fgets src/file-io.cc @anchor{doc-fgets} ! @deftypefn {Built-in Function} {} fgets (@var{fid}, @var{len}) Read characters from a file, stopping after a newline, or EOF, or @var{len} characters have been read. The characters read, including the possible trailing newline, are returned as a string. --- 1413,1420 ---- @c fgets src/file-io.cc @anchor{doc-fgets} ! @deftypefn {Built-in Function} {} fgets (@var{fid}) ! @deftypefnx {Built-in Function} {} fgets (@var{fid}, @var{len}) Read characters from a file, stopping after a newline, or EOF, or @var{len} characters have been read. The characters read, including the possible trailing newline, are returned as a string. *************** *** 2351,2358 **** @end deftypefn - - @node EOF and Errors, File Positioning, Temporary Files, C-Style I/O Functions @subsection End of File and Errors --- 2404,2409 ---- *************** *** 2421,2427 **** freport () @print{} number mode name ! @print{} @print{} 0 r stdin @print{} 1 w stdout @print{} 2 w stderr --- 2472,2478 ---- freport () @print{} number mode name ! @print{} @print{} 0 r stdin @print{} 1 w stdout @print{} 2 w stderr *************** *** 2505,2507 **** --- 2556,2660 ---- @end group @end example + @node GUI Dialogs for I/O + @section GUI Dialogs for I/O + + Simple dialog menus are available for choosing directories or files. They + return a string variable which can then be used when calling any command + requiring a file name. + + @c uigetdir scripts/plot/uigetdir.m + @anchor{doc-uigetdir} + @deftypefn {Function File} {@var{dirname} =} uigetdir () + @deftypefnx {Function File} {@var{dirname} =} uigetdir (@var{init_path}) + @deftypefnx {Function File} {@var{dirname} =} uigetdir (@var{init_path}, @var{dialog_name}) + Open a GUI dialog for selecting a directory. If @var{init_path} is not + given the current working directory is used. @var{dialog_name} may be + used to customize the dialog title. + @seealso{@ref{doc-uigetfile,,uigetfile}} + @end deftypefn + + + @c uigetfile scripts/plot/uigetfile.m + @anchor{doc-uigetfile} + @deftypefn {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uigetfile () + @deftypefnx {Function File} {[@dots{}] =} uigetfile (@var{flt}) + @deftypefnx {Function File} {[@dots{}] =} uigetfile (@var{flt}, @var{dialog_name}) + @deftypefnx {Function File} {[@dots{}] =} uigetfile (@var{flt}, @var{dialog_name}, @var{default_file}) + @deftypefnx {Function File} {[@dots{}] =} uigetfile (@dots{}, "Position", [@var{px} @var{py}]) + @deftypefnx {Function File} {[@dots{}] =} uigetfile (@dots{}, "MultiSelect", @var{mode}) + + Open a GUI dialog for selecting a file. It returns the filename @var{fname}, + the path to this file @var{fpath}, and the filter index @var{fltidx}. + @var{flt} contains a (list of) file filter string(s) in one of the following + formats: + + @table @asis + @item "/path/to/filename.ext" + If a filename is given then the file extension is extracted and used as + filter. In addition, the path is selected as current path and the filename + is selected as default file. Example: @code{uigetfile ("myfun.m")} + + @item A single file extension "*.ext" + Example: @code{uigetfile ("*.ext")} + + @item A 2-column cell array + containing a file extension in the first column and a brief description + in the second column. + Example: @code{uigetfile (@{"*.ext", "My Description";"*.xyz", + "XYZ-Format"@})} + + The filter string can also contain a semicolon separated list of filter + extensions. + Example: @code{uigetfile (@{"*.gif;*.png;*.jpg", "Supported Picture + Formats"@})} + @end table + + @var{dialog_name} can be used to customize the dialog title. + If @var{default_file} is given then it will be selected in the GUI dialog. + If, in addition, a path is given it is also used as current path. + + The screen position of the GUI dialog can be set using the "Position" key + and a 2-element vector containing the pixel coordinates. + Two or more files can be selected when setting the "MultiSelect" key to "on". + In that case @var{fname} is a cell array containing the files. + @end deftypefn + + + @c uiputfile scripts/plot/uiputfile.m + @anchor{doc-uiputfile} + @deftypefn {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile () + @deftypefnx {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile (@var{flt}) + @deftypefnx {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile (@var{flt}, @var{dialog_name}) + @deftypefnx {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile (@var{flt}, @var{dialog_name}, @var{default_file}) + Open a GUI dialog for selecting a file. @var{flt} contains a (list of) file + filter string(s) in one of the following formats: + + @table @code + @item "/path/to/filename.ext" + If a filename is given the file extension is + extracted and used as filter. + In addition the path is selected as current path and the filename is selected + as default file. + Example: uiputfile("myfun.m"); + + @item "*.ext" + A single file extension. + Example: uiputfile("*.ext"); + + @item @{"*.ext","My Description"@} + A 2-column cell array containing the file extension in the 1st column and + a brief description in the 2nd column. + Example: uiputfile(@{"*.ext","My Description";"*.xyz","XYZ-Format"@}); + @end table + + The filter string can also contain a semicolon separated list of filter + extensions. + Example: uiputfile(@{"*.gif;*.png;*.jpg", "Supported Picture Formats"@}); + + @var{dialog_name} can be used to customize the dialog title. + If @var{default_file} is given it is preselected in the GUI dialog. + If, in addition, a path is given it is also used as current path. + @end deftypefn + + diff -cNr octave-3.4.0/doc/interpreter/io.txi octave-3.4.1/doc/interpreter/io.txi *** octave-3.4.0/doc/interpreter/io.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/io.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 21,33 **** Octave supports several ways of reading and writing data to or from the prompt or a file. The simplest functions for data Input and Output ! (I/O) are easy to use, but only provides limited control of how data is processed. For more control, a set of functions modelled after the C standard library are also provided by Octave. @menu * Basic Input and Output:: * C-Style I/O Functions:: @end menu @node Basic Input and Output --- 21,34 ---- Octave supports several ways of reading and writing data to or from the prompt or a file. The simplest functions for data Input and Output ! (I/O) are easy to use, but only provide limited control of how data is processed. For more control, a set of functions modelled after the C standard library are also provided by Octave. @menu * Basic Input and Output:: * C-Style I/O Functions:: + * GUI Dialogs for I/O:: @end menu @node Basic Input and Output *************** *** 66,71 **** --- 67,76 ---- @DOCSTRING(disp) + @DOCSTRING(list_in_columns) + + @DOCSTRING(terminal_size) + @DOCSTRING(format) @menu *************** *** 176,181 **** --- 181,188 ---- @DOCSTRING(load) + @DOCSTRING(fileread) + There are three functions that modify the behavior of @code{save}. @DOCSTRING(default_save_options) *************** *** 997,1004 **** @DOCSTRING(tmpnam) - @DOCSTRING(octave_tmp_file_name) - @node EOF and Errors, File Positioning, Temporary Files, C-Style I/O Functions @subsection End of File and Errors --- 1004,1009 ---- *************** *** 1060,1062 **** --- 1065,1080 ---- @end group @end example + @node GUI Dialogs for I/O + @section GUI Dialogs for I/O + + Simple dialog menus are available for choosing directories or files. They + return a string variable which can then be used when calling any command + requiring a file name. + + @DOCSTRING(uigetdir) + + @DOCSTRING(uigetfile) + + @DOCSTRING(uiputfile) + diff -cNr octave-3.4.0/doc/interpreter/linalg.texi octave-3.4.1/doc/interpreter/linalg.texi *** octave-3.4.0/doc/interpreter/linalg.texi 2011-02-08 05:11:31.000000000 -0500 --- octave-3.4.1/doc/interpreter/linalg.texi 2011-06-15 11:39:12.000000000 -0400 *************** *** 99,108 **** equilibration to be computed without round-off. Results of eigenvalue calculation are typically improved by balancing first. ! If two output values are requested, @code{balance} returns ! the diagonal @var{D} and the permutation @var{P} separately as vectors. ! In this case, @code{@var{DD} = eye(n)(:,@var{P}) * diag (@var{D})}, where n ! @t{n} is the matrix size. If four output values are requested, compute @code{@var{AA} = @var{CC}*@var{A}*@var{DD}} and @code{@var{BB} = @var{CC}*@var{B}*@var{DD}}, --- 99,108 ---- equilibration to be computed without round-off. Results of eigenvalue calculation are typically improved by balancing first. ! If two output values are requested, @code{balance} returns ! the diagonal @var{D} and the permutation @var{P} separately as vectors. ! In this case, @code{@var{DD} = eye(n)(:,@var{P}) * diag (@var{D})}, where ! @math{n} is the matrix size. If four output values are requested, compute @code{@var{AA} = @var{CC}*@var{A}*@var{DD}} and @code{@var{BB} = @var{CC}*@var{B}*@var{DD}}, *************** *** 131,139 **** @anchor{doc-cond} @deftypefn {Function File} {} cond (@var{A}) @deftypefnx {Function File} {} cond (@var{A}, @var{p}) ! Compute the @var{p}-norm condition number of a matrix. @code{cond ! (@var{A})} is ! defined as @tex $ {\parallel A \parallel_p * \parallel A^{-1} \parallel_p .} $ @end tex --- 131,139 ---- @anchor{doc-cond} @deftypefn {Function File} {} cond (@var{A}) @deftypefnx {Function File} {} cond (@var{A}, @var{p}) ! Compute the @var{p}-norm condition number of a matrix. ! ! @code{cond (@var{A})} is ## defined as @tex $ {\parallel A \parallel_p * \parallel A^{-1} \parallel_p .} $ @end tex *************** *** 167,200 **** @end deftypefn - @c dot src/DLD-FUNCTIONS/dot.cc - @anchor{doc-dot} - @deftypefn {Loadable Function} {} dot (@var{x}, @var{y}, @var{dim}) - Compute the dot product of two vectors. If @var{x} and @var{y} - are matrices, calculate the dot products along the first - non-singleton dimension. If the optional argument @var{dim} is - given, calculate the dot products along this dimension. - - This is equivalent to - @code{sum (conj (@var{X}) .* @var{Y}, @var{dim})}, - but avoids forming a temporary array and is faster. When @var{X} and - @var{Y} are column vectors, the result is equivalent to - @code{@var{X}' * @var{Y}}. - @seealso{@ref{doc-cross,,cross}} - @end deftypefn - - @c eig src/DLD-FUNCTIONS/eig.cc @anchor{doc-eig} @deftypefn {Loadable Function} {@var{lambda} =} eig (@var{A}) @deftypefnx {Loadable Function} {@var{lambda} =} eig (@var{A}, @var{B}) @deftypefnx {Loadable Function} {[@var{V}, @var{lambda}] =} eig (@var{A}) @deftypefnx {Loadable Function} {[@var{V}, @var{lambda}] =} eig (@var{A}, @var{B}) ! The eigenvalues (and eigenvectors) of a matrix are computed in a several ! step process which begins with a Hessenberg decomposition, followed by a ! Schur@tie{}decomposition, from which the eigenvalues are apparent. The ! eigenvectors, when desired, are computed by further manipulations of the ! Schur@tie{}decomposition. The eigenvalues returned by @code{eig} are not ordered. @seealso{@ref{doc-eigs,,eigs}, @ref{doc-svd,,svd}} --- 167,184 ---- @end deftypefn @c eig src/DLD-FUNCTIONS/eig.cc @anchor{doc-eig} @deftypefn {Loadable Function} {@var{lambda} =} eig (@var{A}) @deftypefnx {Loadable Function} {@var{lambda} =} eig (@var{A}, @var{B}) @deftypefnx {Loadable Function} {[@var{V}, @var{lambda}] =} eig (@var{A}) @deftypefnx {Loadable Function} {[@var{V}, @var{lambda}] =} eig (@var{A}, @var{B}) ! Compute the eigenvalues and eigenvectors of a matrix. ! ! Eigenvalues are computed in a several step process which begins with a ! Hessenberg decomposition, followed by a Schur@tie{}decomposition, from which ! the eigenvalues are apparent. The eigenvectors, when desired, are computed ! by further manipulations of the Schur@tie{}decomposition. The eigenvalues returned by @code{eig} are not ordered. @seealso{@ref{doc-eigs,,eigs}, @ref{doc-svd,,svd}} *************** *** 252,258 **** @c inv src/DLD-FUNCTIONS/inv.cc @anchor{doc-inv} ! @deftypefn {Loadable Function} {[@var{x} =} inv (@var{A}) @deftypefnx {Loadable Function} {[@var{x}, @var{rcond}] =} inv (@var{A}) Compute the inverse of the square matrix @var{A}. Return an estimate of the reciprocal condition number if requested, otherwise warn of an --- 236,242 ---- @c inv src/DLD-FUNCTIONS/inv.cc @anchor{doc-inv} ! @deftypefn {Loadable Function} {@var{x} =} inv (@var{A}) @deftypefnx {Loadable Function} {[@var{x}, @var{rcond}] =} inv (@var{A}) Compute the inverse of the square matrix @var{A}. Return an estimate of the reciprocal condition number if requested, otherwise warn of an *************** *** 280,286 **** @deftypefnx {Loadable Function} {@var{A} =} matrix_type (@var{A}, 'lower', @var{perm}) @deftypefnx {Loadable Function} {@var{A} =} matrix_type (@var{A}, 'banded', @var{nl}, @var{nu}) Identify the matrix type or mark a matrix as a particular type. This allows ! more rapid solutions of linear equations involving @var{A} to be performed. Called with a single argument, @code{matrix_type} returns the type of the matrix and caches it for future use. Called with more than one argument, @code{matrix_type} allows the type of the matrix to be defined. --- 264,270 ---- @deftypefnx {Loadable Function} {@var{A} =} matrix_type (@var{A}, 'lower', @var{perm}) @deftypefnx {Loadable Function} {@var{A} =} matrix_type (@var{A}, 'banded', @var{nl}, @var{nu}) Identify the matrix type or mark a matrix as a particular type. This allows ! more rapid solutions of linear equations involving @var{A} to be performed. Called with a single argument, @code{matrix_type} returns the type of the matrix and caches it for future use. Called with more than one argument, @code{matrix_type} allows the type of the matrix to be defined. *************** *** 334,340 **** Note that the matrix type will be discovered automatically on the first attempt to solve a linear equation involving @var{A}. Therefore ! @code{matrix_type} is only useful to give Octave hints of the matrix type. Incorrectly defining the matrix type will result in incorrect results from solutions of linear equations; it is entirely @strong{the responsibility of the user} to correctly identify the matrix type. --- 318,324 ---- Note that the matrix type will be discovered automatically on the first attempt to solve a linear equation involving @var{A}. Therefore ! @code{matrix_type} is only useful to give Octave hints of the matrix type. Incorrectly defining the matrix type will result in incorrect results from solutions of linear equations; it is entirely @strong{the responsibility of the user} to correctly identify the matrix type. *************** *** 351,401 **** @c norm src/data.cc @anchor{doc-norm} ! @deftypefn {Built-in Function} {} norm (@var{a}) ! @deftypefnx {Built-in Function} {} norm (@var{a}, @var{p}) ! @deftypefnx {Built-in Function} {} norm (@var{a}, @var{p}, @var{opt}) ! Compute the p-norm of the matrix @var{a}. If the second argument is missing, @code{p = 2} is assumed. ! If @var{a} is a matrix (or sparse matrix): @table @asis @item @var{p} = @code{1} ! 1-norm, the largest column sum of the absolute values of @var{a}. @item @var{p} = @code{2} ! Largest singular value of @var{a}. @item @var{p} = @code{Inf} or @code{"inf"} @cindex infinity norm ! Infinity norm, the largest row sum of the absolute values of @var{a}. @item @var{p} = @code{"fro"} @cindex Frobenius norm ! Frobenius norm of @var{a}, @code{sqrt (sum (diag (@var{a}' * @var{a})))}. @item other @var{p}, @code{@var{p} > 1} ! @cindex general p-norm maximum @code{norm (A*x, p)} such that @code{norm (x, p) == 1} @end table ! If @var{a} is a vector or a scalar: @table @asis @item @var{p} = @code{Inf} or @code{"inf"} ! @code{max (abs (@var{a}))}. @item @var{p} = @code{-Inf} ! @code{min (abs (@var{a}))}. @item @var{p} = @code{"fro"} ! Frobenius norm of @var{a}, @code{sqrt (sumsq (abs (a)))}. @item @var{p} = 0 Hamming norm - the number of nonzero elements. @item other @var{p}, @code{@var{p} > 1} ! p-norm of @var{a}, @code{(sum (abs (@var{a}) .^ @var{p})) ^ (1/@var{p})}. @item other @var{p} @code{@var{p} < 1} the p-pseudonorm defined as above. --- 335,385 ---- @c norm src/data.cc @anchor{doc-norm} ! @deftypefn {Built-in Function} {} norm (@var{A}) ! @deftypefnx {Built-in Function} {} norm (@var{A}, @var{p}) ! @deftypefnx {Built-in Function} {} norm (@var{A}, @var{p}, @var{opt}) ! Compute the p-norm of the matrix @var{A}. If the second argument is missing, @code{p = 2} is assumed. ! If @var{A} is a matrix (or sparse matrix): @table @asis @item @var{p} = @code{1} ! 1-norm, the largest column sum of the absolute values of @var{A}. @item @var{p} = @code{2} ! Largest singular value of @var{A}. @item @var{p} = @code{Inf} or @code{"inf"} @cindex infinity norm ! Infinity norm, the largest row sum of the absolute values of @var{A}. @item @var{p} = @code{"fro"} @cindex Frobenius norm ! Frobenius norm of @var{A}, @code{sqrt (sum (diag (@var{A}' * @var{A})))}. @item other @var{p}, @code{@var{p} > 1} ! @cindex general p-norm maximum @code{norm (A*x, p)} such that @code{norm (x, p) == 1} @end table ! If @var{A} is a vector or a scalar: @table @asis @item @var{p} = @code{Inf} or @code{"inf"} ! @code{max (abs (@var{A}))}. @item @var{p} = @code{-Inf} ! @code{min (abs (@var{A}))}. @item @var{p} = @code{"fro"} ! Frobenius norm of @var{A}, @code{sqrt (sumsq (abs (A)))}. @item @var{p} = 0 Hamming norm - the number of nonzero elements. @item other @var{p}, @code{@var{p} > 1} ! p-norm of @var{A}, @code{(sum (abs (@var{A}) .^ @var{p})) ^ (1/@var{p})}. @item other @var{p} @code{@var{p} < 1} the p-pseudonorm defined as above. *************** *** 411,417 **** @c null scripts/linear-algebra/null.m @anchor{doc-null} ! @deftypefn {Function File} {} null (@var{A}, @var{tol}) Return an orthonormal basis of the null space of @var{A}. The dimension of the null space is taken as the number of singular --- 395,402 ---- @c null scripts/linear-algebra/null.m @anchor{doc-null} ! @deftypefn {Function File} {} null (@var{A}) ! @deftypefnx {Function File} {} null (@var{A}, @var{tol}) Return an orthonormal basis of the null space of @var{A}. The dimension of the null space is taken as the number of singular *************** *** 427,433 **** @c orth scripts/linear-algebra/orth.m @anchor{doc-orth} ! @deftypefn {Function File} {} orth (@var{A}, @var{tol}) Return an orthonormal basis of the range space of @var{A}. The dimension of the range space is taken as the number of singular --- 412,419 ---- @c orth scripts/linear-algebra/orth.m @anchor{doc-orth} ! @deftypefn {Function File} {} orth (@var{A}) ! @deftypefnx {Function File} {} orth (@var{A}, @var{tol}) Return an orthonormal basis of the range space of @var{A}. The dimension of the range space is taken as the number of singular *************** *** 441,454 **** @end deftypefn @c pinv src/DLD-FUNCTIONS/pinv.cc @anchor{doc-pinv} @deftypefn {Loadable Function} {} pinv (@var{x}) @deftypefnx {Loadable Function} {} pinv (@var{x}, @var{tol}) Return the pseudoinverse of @var{x}. Singular values less than ! @var{tol} are ignored. ! If the second argument is omitted, it is assumed that @example tol = max (size (@var{x})) * sigma_max (@var{x}) * eps, --- 427,458 ---- @end deftypefn + @c mgorth src/DLD-FUNCTIONS/mgorth.cc + @anchor{doc-mgorth} + @deftypefn {Loadable Function} {[@var{y}, @var{h}] =} mgorth (@var{x}, @var{v}) + Orthogonalize a given column vector @var{x} with respect to a given + orthonormal basis @var{v} using a modified Gram-Schmidt orthogonalization. + On exit, @var{y} is a unit vector such that: + + @example + @group + norm (@var{y}) = 1 + @var{v}' * @var{y} = 0 + @var{x} = @var{h}*[@var{v}, @var{y}] + @end group + @end example + + @end deftypefn + + @c pinv src/DLD-FUNCTIONS/pinv.cc @anchor{doc-pinv} @deftypefn {Loadable Function} {} pinv (@var{x}) @deftypefnx {Loadable Function} {} pinv (@var{x}, @var{tol}) Return the pseudoinverse of @var{x}. Singular values less than ! @var{tol} are ignored. ! If the second argument is omitted, it is taken to be @example tol = max (size (@var{x})) * sigma_max (@var{x}) * eps, *************** *** 461,467 **** @c rank scripts/linear-algebra/rank.m @anchor{doc-rank} ! @deftypefn {Function File} {} rank (@var{A}, @var{tol}) Compute the rank of @var{A}, using the singular value decomposition. The rank is taken to be the number of singular values of @var{A} that are greater than the specified tolerance @var{tol}. If the second --- 465,472 ---- @c rank scripts/linear-algebra/rank.m @anchor{doc-rank} ! @deftypefn {Function File} {} rank (@var{A}) ! @deftypefnx {Function File} {} rank (@var{A}, @var{tol}) Compute the rank of @var{A}, using the singular value decomposition. The rank is taken to be the number of singular values of @var{A} that are greater than the specified tolerance @var{tol}. If the second *************** *** 500,508 **** @c rref scripts/linear-algebra/rref.m @anchor{doc-rref} ! @deftypefn {Function File} {[@var{r}, @var{k}] =} rref (@var{A}, @var{tol}) ! ! Returns the reduced row echelon form of @var{A}. @var{tol} defaults to @code{eps * max (size (@var{A})) * norm (@var{A}, inf)}. Called with two return arguments, @var{k} returns the vector of --- 505,514 ---- @c rref scripts/linear-algebra/rref.m @anchor{doc-rref} ! @deftypefn {Function File} {} rref (@var{A}) ! @deftypefnx {Function File} {} rref (@var{A}, @var{tol}) ! @deftypefnx {Function File} {[@var{r}, @var{k}] =} rref (@dots{}) ! Return the reduced row echelon form of @var{A}. @var{tol} defaults to @code{eps * max (size (@var{A})) * norm (@var{A}, inf)}. Called with two return arguments, @var{k} returns the vector of *************** *** 691,698 **** @c hess src/DLD-FUNCTIONS/hess.cc @anchor{doc-hess} ! @deftypefn {Loadable Function} {@var{h} =} hess (@var{A}) ! @deftypefnx {Loadable Function} {[@var{p}, @var{h}] =} hess (@var{A}) @cindex Hessenberg decomposition Compute the Hessenberg decomposition of the matrix @var{A}. --- 697,704 ---- @c hess src/DLD-FUNCTIONS/hess.cc @anchor{doc-hess} ! @deftypefn {Loadable Function} {@var{H} =} hess (@var{A}) ! @deftypefnx {Loadable Function} {[@var{P}, @var{H}] =} hess (@var{A}) @cindex Hessenberg decomposition Compute the Hessenberg decomposition of the matrix @var{A}. *************** *** 705,712 **** is upper Hessenberg ($H_{i,j} = 0, \forall i \ge j+1$). @end tex @ifnottex ! @code{@var{P} * @var{H} * @var{P}' = @var{A}} where @var{p} is a square ! unitary matrix (@code{@var{p}' * @var{p} = I}, using complex-conjugate transposition) and @var{H} is upper Hessenberg (@code{@var{H}(i, j) = 0 forall i >= j+1)}. @end ifnottex --- 711,718 ---- is upper Hessenberg ($H_{i,j} = 0, \forall i \ge j+1$). @end tex @ifnottex ! @code{@var{P} * @var{H} * @var{P}' = @var{A}} where @var{P} is a square ! unitary matrix (@code{@var{P}' * @var{P} = I}, using complex-conjugate transposition) and @var{H} is upper Hessenberg (@code{@var{H}(i, j) = 0 forall i >= j+1)}. @end ifnottex *************** *** 920,926 **** @example @group ! @var{Q} = -0.44721 -0.89443 -0.89443 0.44721 --- 926,932 ---- @example @group ! @var{Q} = -0.44721 -0.89443 -0.89443 0.44721 *************** *** 1079,1085 **** @item @code{[AA, BB, Q, Z, V, W, @var{lambda}] = qz (@var{A}, @var{B})} ! Computes QZ@tie{}decomposition, generalized eigenvectors, and generalized eigenvalues of @math{(A - s B)} @tex $$ AV = BV{ \rm diag }(\lambda) $$ --- 1085,1091 ---- @item @code{[AA, BB, Q, Z, V, W, @var{lambda}] = qz (@var{A}, @var{B})} ! Computes QZ@tie{}decomposition, generalized eigenvectors, and generalized eigenvalues of @math{(A - s B)} @tex $$ AV = BV{ \rm diag }(\lambda) $$ *************** *** 1115,1127 **** of the revised pencil contains all eigenvalues that satisfy: @table @asis @item "N" ! = unordered (default) @item "S" ! = small: leading block has all |lambda| @leq{} 1 @item "B" ! = big: leading block has all |lambda| @geq{} 1 @item "-" = negative real part: leading block has all eigenvalues --- 1121,1133 ---- of the revised pencil contains all eigenvalues that satisfy: @table @asis @item "N" ! = unordered (default) @item "S" ! = small: leading block has all |lambda| @leq{} 1 @item "B" ! = big: leading block has all |lambda| @geq{} 1 @item "-" = negative real part: leading block has all eigenvalues *************** *** 1174,1340 **** @deftypefnx {Loadable Function} {@var{S} =} schur (@var{A}, "complex") @deftypefnx {Loadable Function} {[@var{U}, @var{S}] =} schur (@var{A}, @var{opt}) @cindex Schur decomposition ! The Schur@tie{}decomposition is used to compute eigenvalues of a ! square matrix, and has applications in the solution of algebraic ! Riccati equations in control (see @code{are} and @code{dare}). ! @code{schur} always returns @tex ! $S = U^T A U$ @end tex @ifnottex @code{@var{S} = @var{U}' * @var{A} * @var{U}} @end ifnottex ! where ! @tex ! $U$ ! @end tex ! @ifnottex ! @var{U} ! @end ifnottex ! is a unitary matrix @tex ($U^T U$ is identity) @end tex @ifnottex (@code{@var{U}'* @var{U}} is identity) @end ifnottex ! and ! @tex ! $S$ ! @end tex ! @ifnottex ! @var{S} ! @end ifnottex ! is upper triangular. The eigenvalues of ! @tex ! $A$ (and $S$) ! @end tex ! @ifnottex ! @var{A} (and @var{S}) ! @end ifnottex ! are the diagonal elements of ! @tex ! $S$. ! @end tex ! @ifnottex ! @var{S}. ! @end ifnottex ! If the matrix ! @tex ! $A$ ! @end tex ! @ifnottex ! @var{A} ! @end ifnottex is real, then the real Schur@tie{}decomposition is computed, in which the ! matrix ! @tex ! $U$ ! @end tex ! @ifnottex ! @var{U} ! @end ifnottex ! is orthogonal and ! @tex ! $S$ ! @end tex ! @ifnottex ! @var{S} ! @end ifnottex ! is block upper triangular with blocks of size at most @tex ! $2\times 2$ @end tex @ifnottex @code{2 x 2} @end ifnottex ! along the diagonal. The diagonal elements of ! @tex ! $S$ ! @end tex ! @ifnottex ! @var{S} ! @end ifnottex (or the eigenvalues of the @tex ! $2\times 2$ @end tex @ifnottex @code{2 x 2} @end ifnottex ! blocks, when ! appropriate) are the eigenvalues of ! @tex ! $A$ ! @end tex ! @ifnottex ! @var{A} ! @end ifnottex ! and ! @tex ! $S$. ! @end tex ! @ifnottex ! @var{S}. ! @end ifnottex A complex decomposition may be forced by passing "complex" as @var{opt}. The eigenvalues are optionally ordered along the diagonal according to the value of @var{opt}. @code{@var{opt} = "a"} indicates that all eigenvalues with negative real parts should be moved to the leading ! block of ! @tex ! $S$ ! @end tex ! @ifnottex ! @var{S} ! @end ifnottex (used in @code{are}), @code{@var{opt} = "d"} indicates that all eigenvalues ! with magnitude less than one should be moved to the leading block of ! @tex ! $S$ ! @end tex ! @ifnottex ! @var{S} ! @end ifnottex (used in @code{dare}), and @code{@var{opt} = "u"}, the default, indicates ! that no ordering of eigenvalues should occur. The leading ! @tex ! $k$ ! @end tex ! @ifnottex ! @var{k} ! @end ifnottex ! columns of ! @tex ! $U$ ! @end tex ! @ifnottex ! @var{U} ! @end ifnottex ! always span the ! @tex ! $A$-invariant ! @end tex ! @ifnottex ! @var{A}-invariant ! @end ifnottex ! subspace corresponding to the ! @tex ! $k$ ! @end tex ! @ifnottex ! @var{k} ! @end ifnottex ! leading eigenvalues of ! @tex ! $S$. ! @end tex ! @ifnottex ! @var{S}. ! @end ifnottex @end deftypefn --- 1180,1243 ---- @deftypefnx {Loadable Function} {@var{S} =} schur (@var{A}, "complex") @deftypefnx {Loadable Function} {[@var{U}, @var{S}] =} schur (@var{A}, @var{opt}) @cindex Schur decomposition ! Compute the Schur@tie{}decomposition of @var{A} @tex ! $$ ! S = U^T A U ! $$ @end tex @ifnottex + + @example @code{@var{S} = @var{U}' * @var{A} * @var{U}} + @end example + @end ifnottex ! where @var{U} is a unitary matrix @tex ($U^T U$ is identity) @end tex @ifnottex (@code{@var{U}'* @var{U}} is identity) @end ifnottex ! and @var{S} is upper triangular. The eigenvalues of @var{A} (and @var{S}) ! are the diagonal elements of @var{S}. If the matrix @var{A} is real, then the real Schur@tie{}decomposition is computed, in which the ! matrix @var{U} is orthogonal and @var{S} is block upper triangular with blocks of size at most @tex ! $2 \times 2$ @end tex @ifnottex @code{2 x 2} @end ifnottex ! along the diagonal. The diagonal elements of @var{S} (or the eigenvalues of the @tex ! $2 \times 2$ @end tex @ifnottex @code{2 x 2} @end ifnottex ! blocks, when appropriate) are the eigenvalues of @var{A} and @var{S}. A complex decomposition may be forced by passing "complex" as @var{opt}. The eigenvalues are optionally ordered along the diagonal according to the value of @var{opt}. @code{@var{opt} = "a"} indicates that all eigenvalues with negative real parts should be moved to the leading ! block of @var{S} (used in @code{are}), @code{@var{opt} = "d"} indicates that all eigenvalues ! with magnitude less than one should be moved to the leading block of @var{S} (used in @code{dare}), and @code{@var{opt} = "u"}, the default, indicates ! that no ordering of eigenvalues should occur. The leading @var{k} ! columns of @var{U} always span the @var{A}-invariant ! subspace corresponding to the @var{k} leading eigenvalues of @var{S}. ! ! The Schur@tie{}decomposition is used to compute eigenvalues of a ! square matrix, and has applications in the solution of algebraic ! Riccati equations in control (see @code{are} and @code{dare}). ! @seealso{@ref{doc-rsf2csf,,rsf2csf}} @end deftypefn *************** *** 1344,1353 **** Convert a real, upper quasi-triangular Schur@tie{}form @var{TR} to a complex, upper triangular Schur@tie{}form @var{T}. ! Note that the following relations hold: @code{@var{UR} * @var{TR} * @var{UR}' = @var{U} * @var{T} * @var{U}'} and @code{@var{U}' * @var{U}} is the identity matrix I. Note also that @var{U} and @var{T} are not unique. @seealso{@ref{doc-schur,,schur}} --- 1247,1262 ---- Convert a real, upper quasi-triangular Schur@tie{}form @var{TR} to a complex, upper triangular Schur@tie{}form @var{T}. ! Note that the following relations hold: + @tex + $UR \cdot TR \cdot {UR}^T = U T U^{\dagger}$ and + $U^{\dagger} U$ is the identity matrix I. + @end tex + @ifnottex @code{@var{UR} * @var{TR} * @var{UR}' = @var{U} * @var{T} * @var{U}'} and @code{@var{U}' * @var{U}} is the identity matrix I. + @end ifnottex Note also that @var{U} and @var{T} are not unique. @seealso{@ref{doc-schur,,schur}} *************** *** 1371,1377 **** Compute the singular value decomposition of @var{A} @tex $$ ! A = U S V^H $$ @end tex @ifnottex --- 1280,1286 ---- Compute the singular value decomposition of @var{A} @tex $$ ! A = U S V^{\dagger} $$ @end tex @ifnottex *************** *** 1450,1457 **** @c svd_driver src/DLD-FUNCTIONS/svd.cc @anchor{doc-svd_driver} ! @deftypefn {Loadable Function} {@var{old} =} svd_driver (@var{new}) ! Set or query the underlying @sc{lapack} driver used by @code{svd}. Currently recognized values are "gesvd" and "gesdd". The default is "gesvd". @seealso{@ref{doc-svd,,svd}} --- 1359,1367 ---- @c svd_driver src/DLD-FUNCTIONS/svd.cc @anchor{doc-svd_driver} ! @deftypefn {Loadable Function} {@var{val} =} svd_driver () ! @deftypefnx {Loadable Function} {@var{old_val} =} svd_driver (@var{new_val}) ! Query or set the underlying @sc{lapack} driver used by @code{svd}. Currently recognized values are "gesvd" and "gesdd". The default is "gesvd". @seealso{@ref{doc-svd,,svd}} *************** *** 1596,1601 **** --- 1506,1512 ---- @code{Dq(A)} @end ifnottex is ill-conditioned. + @seealso{@ref{doc-logm,,logm}, @ref{doc-sqrtm,,sqrtm}} @end deftypefn *************** *** 1614,1626 **** The optional argument @var{opt_iters} is the maximum number of square roots to compute and defaults to 100. The optional output @var{iters} is the number of square roots actually computed. ! @end deftypefn @c sqrtm src/DLD-FUNCTIONS/sqrtm.cc @anchor{doc-sqrtm} ! @deftypefn {Loadable Function} {[@var{result}, @var{error_estimate}] =} sqrtm (@var{A}) Compute the matrix square root of the square matrix @var{A}. Ref: N.J. Higham. @cite{A New sqrtm for @sc{matlab}}. Numerical --- 1525,1538 ---- The optional argument @var{opt_iters} is the maximum number of square roots to compute and defaults to 100. The optional output @var{iters} is the number of square roots actually computed. ! @seealso{@ref{doc-expm,,expm}, @ref{doc-sqrtm,,sqrtm}} @end deftypefn @c sqrtm src/DLD-FUNCTIONS/sqrtm.cc @anchor{doc-sqrtm} ! @deftypefn {Loadable Function} {@var{s} =} sqrtm (@var{A}) ! @deftypefnx {Loadable Function} {[@var{s}, @var{error_estimate}] =} sqrtm (@var{A}) Compute the matrix square root of the square matrix @var{A}. Ref: N.J. Higham. @cite{A New sqrtm for @sc{matlab}}. Numerical *************** *** 1652,1657 **** --- 1564,1588 ---- @end deftypefn + @c blkmm src/DLD-FUNCTIONS/dot.cc + @anchor{doc-blkmm} + @deftypefn {Loadable Function} {} blkmm (@var{A}, @var{B}) + Compute products of matrix blocks. The blocks are given as + 2-dimensional subarrays of the arrays @var{A}, @var{B}. + The size of @var{A} must have the form @code{[m,k,@dots{}]} and + size of @var{B} must be @code{[k,n,@dots{}]}. The result is + then of size @code{[m,n,@dots{}]} and is computed as follows: + + @example + @group + for i = 1:prod (size (@var{A})(3:end)) + @var{C}(:,:,i) = @var{A}(:,:,i) * @var{B}(:,:,i) + endfor + @end group + @end example + @end deftypefn + + @c syl src/DLD-FUNCTIONS/syl.cc @anchor{doc-syl} @deftypefn {Loadable Function} {@var{x} =} syl (@var{A}, @var{B}, @var{C}) *************** *** 1729,1731 **** --- 1660,1664 ---- @end deftypefn + + diff -cNr octave-3.4.0/doc/interpreter/linalg.txi octave-3.4.1/doc/interpreter/linalg.txi *** octave-3.4.0/doc/interpreter/linalg.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/linalg.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 88,95 **** @DOCSTRING(det) - @DOCSTRING(dot) - @DOCSTRING(eig) @DOCSTRING(givens) --- 88,93 ---- *************** *** 106,111 **** --- 104,111 ---- @DOCSTRING(orth) + @DOCSTRING(mgorth) + @DOCSTRING(pinv) @DOCSTRING(rank) *************** *** 180,185 **** --- 180,187 ---- @DOCSTRING(kron) + @DOCSTRING(blkmm) + @DOCSTRING(syl) @node Specialized Solvers *************** *** 188,190 **** --- 190,194 ---- @DOCSTRING(bicgstab) @DOCSTRING(cgs) + + @DOCSTRING(gmres) diff -cNr octave-3.4.0/doc/interpreter/Makefile.am octave-3.4.1/doc/interpreter/Makefile.am *** octave-3.4.0/doc/interpreter/Makefile.am 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/Makefile.am 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/common.mk ## Automake generated rules for documentation are not parallel-safe. ## Restrict current directory to run serially --- 18,24 ---- # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/build-aux/common.mk ## Automake generated rules for documentation are not parallel-safe. ## Restrict current directory to run serially *************** *** 224,229 **** --- 224,247 ---- .PHONY: undocumented_list + SPELLCHECK_FILES = $(MUNGED_TEXI_SRC:.texi=.scheck) + + %.scheck: %.texi + $(srcdir)/doccheck/spellcheck $< > $@-t + mv $@-t $@ + [ -s $@ ] || rm -f $@ + + spellcheck: $(SPELLCHECK_FILES) + @if ls *.scheck >/dev/null 2>&1 ; then \ + echo "Spellcheck failed"; \ + echo "Review the following files:"; \ + ls *.scheck ; \ + exit 1 ; \ + else \ + echo "Spellcheck passed"; \ + fi + .PHONY: spellcheck + EXTRA_DIST = \ config-images.sh \ contributors.in \ diff -cNr octave-3.4.0/doc/interpreter/Makefile.in octave-3.4.1/doc/interpreter/Makefile.in *** octave-3.4.0/doc/interpreter/Makefile.in 2011-02-08 05:03:34.000000000 -0500 --- octave-3.4.1/doc/interpreter/Makefile.in 2011-06-15 11:31:26.000000000 -0400 *************** *** 57,68 **** DIST_COMMON = $(dist_man1_MANS) $(octave_TEXINFOS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/images.mk $(srcdir)/stamp-vti $(srcdir)/version.texi \ ! $(top_srcdir)/common.mk TODO noinst_PROGRAMS = munge-texi$(EXEEXT) subdir = doc/interpreter ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ --- 57,71 ---- DIST_COMMON = $(dist_man1_MANS) $(octave_TEXINFOS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/images.mk $(srcdir)/stamp-vti $(srcdir)/version.texi \ ! $(top_srcdir)/build-aux/common.mk TODO noinst_PROGRAMS = munge-texi$(EXEEXT) subdir = doc/interpreter ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/ax_pthread.m4 \ ! $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ *************** *** 70,85 **** $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ --- 73,92 ---- $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filemode.m4 \ ! $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpurge.m4 \ ! $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/fseek.m4 \ ! $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftell.m4 \ ! $(top_srcdir)/m4/ftello.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ *************** *** 93,118 **** $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ ! $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ! $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ! $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ ! $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ ! $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ ! $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \ ! $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memchr.m4 \ ! $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ ! $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkfifo.m4 \ ! $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \ ! $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ ! $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nanosleep.m4 \ ! $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ ! $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/printf.m4 \ ! $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ ! $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \ ! $(top_srcdir)/m4/round.m4 $(top_srcdir)/m4/roundf.m4 \ ! $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/select.m4 \ ! $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ --- 100,127 ---- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ ! $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ ! $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ! $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ ! $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/math_h.m4 \ ! $(top_srcdir)/m4/mathfunc.m4 $(top_srcdir)/m4/mbrtowc.m4 \ ! $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ ! $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/md5.m4 \ ! $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \ ! $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \ ! $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkstemp.m4 \ ! $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ ! $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/multiarch.m4 \ ! $(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/nocrash.m4 \ ! $(top_srcdir)/m4/nproc.m4 $(top_srcdir)/m4/open.m4 \ ! $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ ! $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/readlink.m4 \ ! $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ ! $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/round.m4 \ ! $(top_srcdir)/m4/roundf.m4 $(top_srcdir)/m4/save-cwd.m4 \ ! $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/sigaction.m4 \ ! $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ *************** *** 120,148 **** $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \ ! $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ ! $(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \ ! $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/tempname.m4 \ ! $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ ! $(top_srcdir)/m4/times.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ ! $(top_srcdir)/m4/trunc.m4 $(top_srcdir)/m4/truncf.m4 \ ! $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ ! $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/vasnprintf.m4 \ ! $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ ! $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ ! $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ ! $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/acinclude.m4 \ ! $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = --- 129,154 ---- $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strdup.m4 \ ! $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.m4 \ ! $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ ! $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \ ! $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/times.m4 \ ! $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/trunc.m4 \ ! $(top_srcdir)/m4/truncf.m4 $(top_srcdir)/m4/unistd-safer.m4 \ ! $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ ! $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vsnprintf.m4 \ ! $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ ! $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ ! $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = *************** *** 216,222 **** AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ - ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ --- 222,227 ---- *************** *** 368,373 **** --- 373,380 ---- GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ + GNULIB_FGETC = @GNULIB_FGETC@ + GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ *************** *** 377,385 **** --- 384,394 ---- GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ + GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPL = @GNULIB_FREXPL@ + GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ *************** *** 389,394 **** --- 398,405 ---- GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ + GNULIB_GETC = @GNULIB_GETC@ + GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ *************** *** 401,418 **** --- 412,433 ---- GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ + GNULIB_GETS = @GNULIB_GETS@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ + GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ + GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ + GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ *************** *** 443,448 **** --- 458,464 ---- GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ + GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ *************** *** 459,464 **** --- 475,481 ---- GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ + GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ *************** *** 478,483 **** --- 495,501 ---- GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ + GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ *************** *** 493,498 **** --- 511,517 ---- GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ + GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ *************** *** 510,515 **** --- 529,535 ---- GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ + GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ *************** *** 539,549 **** --- 559,571 ---- GNULIB_TIMES = @GNULIB_TIMES@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ + GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ + GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ *************** *** 555,562 **** --- 577,586 ---- GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ + GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ + GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ *************** *** 586,591 **** --- 610,618 ---- GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ + GNULIB_WCTOMB = @GNULIB_WCTOMB@ + GNULIB_WCTRANS = @GNULIB_WCTRANS@ + GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ *************** *** 652,658 **** HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ - HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ --- 679,684 ---- *************** *** 693,698 **** --- 719,725 ---- HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ + HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ *************** *** 727,732 **** --- 754,760 ---- HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ + HAVE_PCRE_CONFIG = @HAVE_PCRE_CONFIG@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ *************** *** 745,750 **** --- 773,779 ---- HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGACTION = @HAVE_SIGACTION@ + HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ *************** *** 756,762 **** HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ - HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ --- 785,790 ---- *************** *** 784,789 **** --- 812,818 ---- HAVE_SYS_TIMES_H = @HAVE_SYS_TIMES_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ + HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMES = @HAVE_TIMES@ *************** *** 824,830 **** --- 853,861 ---- HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ + HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ + HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ *************** *** 868,873 **** --- 899,905 ---- LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ + LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ *************** *** 878,883 **** --- 910,916 ---- MAGICK_LDFLAGS = @MAGICK_LDFLAGS@ MAGICK_LIBS = @MAGICK_LIBS@ MAKEINFO = @MAKEINFO@ + MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKOCTFILE_DL_LDFLAGS = @MKOCTFILE_DL_LDFLAGS@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ *************** *** 891,903 **** NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ - NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ --- 924,936 ---- NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ + NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ *************** *** 913,925 **** NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ - NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ --- 946,958 ---- NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ + NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ *************** *** 1032,1037 **** --- 1065,1071 ---- REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ + REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ *************** *** 1052,1057 **** --- 1086,1092 ---- REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ + REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ *************** *** 1070,1078 **** --- 1105,1115 ---- REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ + REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ + REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ *************** *** 1106,1111 **** --- 1143,1149 ---- REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ + REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RLD_FLAG = @RLD_FLAG@ *************** *** 1113,1119 **** ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = /bin/sh SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ --- 1151,1157 ---- ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = @SHELL@ SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ *************** *** 1170,1176 **** WARN_CXXFLAGS = @WARN_CXXFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ - WITH_PCRE_CONFIG = @WITH_PCRE_CONFIG@ X11_INCFLAGS = @X11_INCFLAGS@ X11_LIBS = @X11_LIBS@ XMKMF = @XMKMF@ --- 1208,1213 ---- *************** *** 1188,1193 **** --- 1225,1231 ---- abs_top_srcdir = @abs_top_srcdir@ ac_config_files = @ac_config_files@ ac_config_headers = @ac_config_headers@ + ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ *************** *** 1301,1307 **** localverarchlibdir = @localverarchlibdir@ localverfcnfiledir = @localverfcnfiledir@ localveroctfiledir = @localveroctfiledir@ - lt_ECHO = @lt_ECHO@ man1dir = @man1dir@ man1ext = @man1ext@ --- 1339,1344 ---- *************** *** 1558,1563 **** --- 1595,1601 ---- octetc_DATA = doc-cache DOCSTRING_FILES = $(shell $(srcdir)/find-docstring-files.sh "$(top_srcdir)") munge_texi_SOURCES = munge-texi.cc + SPELLCHECK_FILES = $(MUNGED_TEXI_SRC:.texi=.scheck) EXTRA_DIST = \ config-images.sh \ contributors.in \ *************** *** 1582,1588 **** .SUFFIXES: .SUFFIXES: .cc .dvi .html .info .lo .o .obj .pdf .ps .texi ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.mk $(srcdir)/images.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ --- 1620,1626 ---- .SUFFIXES: .SUFFIXES: .cc .dvi .html .info .lo .o .obj .pdf .ps .texi ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build-aux/common.mk $(srcdir)/images.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ *************** *** 2193,2199 **** define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ --- 2231,2237 ---- define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/build-aux/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ *************** *** 2417,2423 **** endef define do_script_install ! $(top_srcdir)/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ --- 2455,2461 ---- endef define do_script_install ! $(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ *************** *** 2723,2728 **** --- 2761,2782 ---- -$(PERL) $(srcdir)/doccheck/mk_undocumented_list > $@ .PHONY: undocumented_list + %.scheck: %.texi + $(srcdir)/doccheck/spellcheck $< > $@-t + mv $@-t $@ + [ -s $@ ] || rm -f $@ + + spellcheck: $(SPELLCHECK_FILES) + @if ls *.scheck >/dev/null 2>&1 ; then \ + echo "Spellcheck failed"; \ + echo "Review the following files:"; \ + ls *.scheck ; \ + exit 1 ; \ + else \ + echo "Spellcheck passed"; \ + fi + .PHONY: spellcheck + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff -cNr octave-3.4.0/doc/interpreter/matrix.texi octave-3.4.1/doc/interpreter/matrix.texi *** octave-3.4.0/doc/interpreter/matrix.texi 2011-02-08 05:11:31.000000000 -0500 --- octave-3.4.1/doc/interpreter/matrix.texi 2011-06-15 11:39:12.000000000 -0400 *************** *** 46,56 **** @c any src/data.cc @anchor{doc-any} ! @deftypefn {Built-in Function} {} any (@var{x}, @var{dim}) ! For a vector argument, return 1 if any element of the vector is ! nonzero. ! For a matrix argument, return a row vector of ones and zeros with each element indicating whether any of the elements of the corresponding column of the matrix are nonzero. For example: --- 46,57 ---- @c any src/data.cc @anchor{doc-any} ! @deftypefn {Built-in Function} {} any (@var{x}) ! @deftypefnx {Built-in Function} {} any (@var{x}, @var{dim}) ! For a vector argument, return true (logical 1) if any element of the vector ! is nonzero. ! For a matrix argument, return a row vector of logical ones and zeros with each element indicating whether any of the elements of the corresponding column of the matrix are nonzero. For example: *************** *** 70,84 **** @result{} [ 1; 1 ] @end group @end example @end deftypefn @c all src/data.cc @anchor{doc-all} ! @deftypefn {Built-in Function} {} all (@var{x}, @var{dim}) ! The function @code{all} behaves like the function @code{any}, except ! that it returns true only if all the elements of a vector, or all the ! elements along dimension @var{dim} of a matrix, are nonzero. @end deftypefn --- 71,101 ---- @result{} [ 1; 1 ] @end group @end example + @seealso{@ref{doc-all,,all}} @end deftypefn @c all src/data.cc @anchor{doc-all} ! @deftypefn {Built-in Function} {} all (@var{x}) ! @deftypefnx {Built-in Function} {} all (@var{x}, @var{dim}) ! For a vector argument, return true (logical 1) if all elements of the vector ! are nonzero. ! ! For a matrix argument, return a row vector of logical ones and ! zeros with each element indicating whether all of the elements of the ! corresponding column of the matrix are nonzero. For example: ! ! @example ! @group ! all ([2, 3; 1, 0])) ! @result{} [ 1, 0 ] ! @end group ! @end example ! ! If the optional argument @var{dim} is supplied, work along dimension ! @var{dim}. ! @seealso{@ref{doc-any,,any}} @end deftypefn *************** *** 103,129 **** @c xor scripts/miscellaneous/xor.m @anchor{doc-xor} ! @deftypefn {Mapping Function} {} xor (@var{x}, @var{y}) Return the `exclusive or' of the entries of @var{x} and @var{y}. For boolean expressions @var{x} and @var{y}, ! @code{xor (@var{x}, @var{y})} is true if and only if @var{x} or @var{y} ! is true, but not if both @var{x} and @var{y} are true. ! @end deftypefn ! ! @c is_duplicate_entry scripts/general/is_duplicate_entry.m ! @anchor{doc-is_duplicate_entry} ! @deftypefn {Function File} {} is_duplicate_entry (@var{x}) ! Return non-zero if any entries in @var{x} are duplicates of one ! another. ! @seealso{@ref{doc-unique,,unique}} @end deftypefn @c diff src/data.cc @anchor{doc-diff} ! @deftypefn {Built-in Function} {} diff (@var{x}, @var{k}, @var{dim}) ! If @var{x} is a vector of length @var{n}, @code{diff (@var{x})} is the vector of first differences @tex $x_2 - x_1, \ldots{}, x_n - x_{n-1}$. --- 120,152 ---- @c xor scripts/miscellaneous/xor.m @anchor{doc-xor} ! @deftypefn {Mapping Function} {@var{z} =} xor (@var{x}, @var{y}) Return the `exclusive or' of the entries of @var{x} and @var{y}. For boolean expressions @var{x} and @var{y}, ! @code{xor (@var{x}, @var{y})} is true if and only if one of @var{x} or ! @var{y} is true. Otherwise, for @var{x} and @var{y} both true or both ! false, @code{xor} returns false. ! ! The truth table for the xor operation is ! ! @multitable @columnfractions 0.44 .03 .05 .03 0.44 ! @item @tab @var{x} @tab @var{y} @tab @var{z} @tab ! @item @tab 0 @tab 0 @tab 0 @tab ! @item @tab 1 @tab 0 @tab 1 @tab ! @item @tab 0 @tab 1 @tab 1 @tab ! @item @tab 1 @tab 1 @tab 0 @tab ! @end multitable ! @seealso{@ref{doc-and,,and}, @ref{doc-or,,or}, @ref{doc-not,,not}} @end deftypefn @c diff src/data.cc @anchor{doc-diff} ! @deftypefn {Built-in Function} {} diff (@var{x}) ! @deftypefnx {Built-in Function} {} diff (@var{x}, @var{k}) ! @deftypefnx {Built-in Function} {} diff (@var{x}, @var{k}, @var{dim}) ! If @var{x} is a vector of length @math{n}, @code{diff (@var{x})} is the vector of first differences @tex $x_2 - x_1, \ldots{}, x_n - x_{n-1}$. *************** *** 138,152 **** The second argument is optional. If supplied, @code{diff (@var{x}, @var{k})}, where @var{k} is a non-negative integer, returns the @var{k}-th differences. It is possible that @var{k} is larger than ! then first non-singleton dimension of the matrix. In this case, @code{diff} continues to take the differences along the next non-singleton dimension. The dimension along which to take the difference can be explicitly ! stated with the optional variable @var{dim}. In this case the @var{k}-th order differences are calculated along this dimension. In the case where @var{k} exceeds @code{size (@var{x}, @var{dim})} ! then an empty matrix is returned. @end deftypefn --- 161,175 ---- The second argument is optional. If supplied, @code{diff (@var{x}, @var{k})}, where @var{k} is a non-negative integer, returns the @var{k}-th differences. It is possible that @var{k} is larger than ! the first non-singleton dimension of the matrix. In this case, @code{diff} continues to take the differences along the next non-singleton dimension. The dimension along which to take the difference can be explicitly ! stated with the optional variable @var{dim}. In this case the @var{k}-th order differences are calculated along this dimension. In the case where @var{k} exceeds @code{size (@var{x}, @var{dim})} ! an empty matrix is returned. @end deftypefn *************** *** 202,218 **** @end deftypefn @c find src/DLD-FUNCTIONS/find.cc @anchor{doc-find} @deftypefn {Loadable Function} {@var{idx} =} find (@var{x}) @deftypefnx {Loadable Function} {@var{idx} =} find (@var{x}, @var{n}) @deftypefnx {Loadable Function} {@var{idx} =} find (@var{x}, @var{n}, @var{direction}) @deftypefnx {Loadable Function} {[i, j] =} find (@dots{}) ! @deftypefnx {Loadable Function} {[i, j, v]] =} find (@dots{}) Return a vector of indices of nonzero elements of a matrix, as a row if ! @var{x} is a row or as a column otherwise. To obtain a single index for ! each matrix element, Octave pretends that the columns of a matrix form one ! long vector (like Fortran arrays are stored). For example: @example @group --- 225,265 ---- @end deftypefn + @c common_size scripts/general/common_size.m + @anchor{doc-common_size} + @deftypefn {Function File} {[@var{err}, @var{y1}, @dots{}] =} common_size (@var{x1}, @dots{}) + Determine if all input arguments are either scalar or of common + size. If so, @var{err} is zero, and @var{yi} is a matrix of the + common size with all entries equal to @var{xi} if this is a scalar or + @var{xi} otherwise. If the inputs cannot be brought to a common size, + @var{err} is 1, and @var{yi} is @var{xi}. For example: + + @example + @group + [errorcode, a, b] = common_size ([1 2; 3 4], 5) + @result{} errorcode = 0 + @result{} a = [ 1, 2; 3, 4 ] + @result{} b = [ 5, 5; 5, 5 ] + @end group + @end example + + @noindent + This is useful for implementing functions where arguments can either + be scalars or of common size. + @end deftypefn + + @c find src/DLD-FUNCTIONS/find.cc @anchor{doc-find} @deftypefn {Loadable Function} {@var{idx} =} find (@var{x}) @deftypefnx {Loadable Function} {@var{idx} =} find (@var{x}, @var{n}) @deftypefnx {Loadable Function} {@var{idx} =} find (@var{x}, @var{n}, @var{direction}) @deftypefnx {Loadable Function} {[i, j] =} find (@dots{}) ! @deftypefnx {Loadable Function} {[i, j, v] =} find (@dots{}) Return a vector of indices of nonzero elements of a matrix, as a row if ! @var{x} is a row vector or as a column otherwise. To obtain a single index ! for each matrix element, Octave pretends that the columns of a matrix form ! one long vector (like Fortran arrays are stored). For example: @example @group *************** *** 257,265 **** @example @group ! sz = size(a); [i, j, v] = find (a); ! b = sparse(i, j, v, sz(1), sz(2)); @end group @end example @seealso{@ref{doc-nonzeros,,nonzeros}} --- 304,312 ---- @example @group ! sz = size (a); [i, j, v] = find (a); ! b = sparse (i, j, v, sz(1), sz(2)); @end group @end example @seealso{@ref{doc-nonzeros,,nonzeros}} *************** *** 268,280 **** @c lookup src/DLD-FUNCTIONS/lookup.cc @anchor{doc-lookup} ! @deftypefn {Loadable Function} {@var{idx} =} lookup (@var{table}, @var{y}, @var{opt}) Lookup values in a sorted table. Usually used as a prelude to interpolation. If table is increasing and @code{idx = lookup (table, y)}, then @code{table(idx(i)) <= y(i) < table(idx(i+1))} for all @code{y(i)} ! within the table. If @code{y(i) < table (1)} then @code{idx(i)} is 0. If @code{y(i) >= table(end)} or @code{isnan (y(i))} then @code{idx(i)} is @code{n}. --- 315,328 ---- @c lookup src/DLD-FUNCTIONS/lookup.cc @anchor{doc-lookup} ! @deftypefn {Loadable Function} {@var{idx} =} lookup (@var{table}, @var{y}) ! @deftypefnx {Loadable Function} {@var{idx} =} lookup (@var{table}, @var{y}, @var{opt}) Lookup values in a sorted table. Usually used as a prelude to interpolation. If table is increasing and @code{idx = lookup (table, y)}, then @code{table(idx(i)) <= y(i) < table(idx(i+1))} for all @code{y(i)} ! within the table. If @code{y(i) < table(1)} then @code{idx(i)} is 0. If @code{y(i) >= table(end)} or @code{isnan (y(i))} then @code{idx(i)} is @code{n}. *************** *** 291,297 **** (or @var{y} can be a single string). In this case, string lookup is performed using lexicographical comparison. ! If @var{opts} is specified, it shall be a string with letters indicating additional options. @table @code --- 339,345 ---- (or @var{y} can be a single string). In this case, string lookup is performed using lexicographical comparison. ! If @var{opts} is specified, it must be a string with letters indicating additional options. @table @code *************** *** 315,344 **** @end table @end deftypefn - - @c common_size scripts/general/common_size.m - @anchor{doc-common_size} - @deftypefn {Function File} {[@var{err}, @var{y1}, @dots{}] =} common_size (@var{x1}, @dots{}) - Determine if all input arguments are either scalar or of common - size. If so, @var{err} is zero, and @var{yi} is a matrix of the - common size with all entries equal to @var{xi} if this is a scalar or - @var{xi} otherwise. If the inputs cannot be brought to a common size, - @var{err} is 1, and @var{yi} is @var{xi}. For example: - - @example - @group - [errorcode, a, b] = common_size ([1 2; 3 4], 5) - @result{} errorcode = 0 - @result{} a = [ 1, 2; 3, 4 ] - @result{} b = [ 5, 5; 5, 5 ] - @end group - @end example - - @noindent - This is useful for implementing functions where arguments can either - be scalars or of common size. - @end deftypefn - @node Rearranging Matrices @section Rearranging Matrices --- 363,368 ---- *************** *** 346,352 **** @c fliplr scripts/general/fliplr.m @anchor{doc-fliplr} @deftypefn {Function File} {} fliplr (@var{x}) ! Return a copy of @var{x} with the order of the columns reversed. For example: @example --- 370,377 ---- @c fliplr scripts/general/fliplr.m @anchor{doc-fliplr} @deftypefn {Function File} {} fliplr (@var{x}) ! Return a copy of @var{x} with the order of the columns reversed. In ! other words, @var{x} is flipped left-to-right about a vertical axis. For example: @example *************** *** 357,363 **** @end group @end example ! Note that @code{fliplr} only work with 2-D arrays. To flip N-d arrays use @code{flipdim} instead. @seealso{@ref{doc-flipud,,flipud}, @ref{doc-flipdim,,flipdim}, @ref{doc-rot90,,rot90}, @ref{doc-rotdim,,rotdim}} @end deftypefn --- 382,388 ---- @end group @end example ! Note that @code{fliplr} only works with 2-D arrays. To flip N-D arrays use @code{flipdim} instead. @seealso{@ref{doc-flipud,,flipud}, @ref{doc-flipdim,,flipdim}, @ref{doc-rot90,,rot90}, @ref{doc-rotdim,,rotdim}} @end deftypefn *************** *** 366,372 **** @c flipud scripts/general/flipud.m @anchor{doc-flipud} @deftypefn {Function File} {} flipud (@var{x}) ! Return a copy of @var{x} with the order of the rows reversed. For example: @example --- 391,398 ---- @c flipud scripts/general/flipud.m @anchor{doc-flipud} @deftypefn {Function File} {} flipud (@var{x}) ! Return a copy of @var{x} with the order of the rows reversed. In ! other words, @var{x} is flipped upside-down about a horizontal axis. For example: @example *************** *** 377,384 **** @end group @end example ! Due to the difficulty of defining which axis about which to flip the ! matrix @code{flipud} only work with 2-d arrays. To flip N-d arrays use @code{flipdim} instead. @seealso{@ref{doc-fliplr,,fliplr}, @ref{doc-flipdim,,flipdim}, @ref{doc-rot90,,rot90}, @ref{doc-rotdim,,rotdim}} @end deftypefn --- 403,409 ---- @end group @end example ! Note that @code{flipud} only works with 2-D arrays. To flip N-D arrays use @code{flipdim} instead. @seealso{@ref{doc-fliplr,,fliplr}, @ref{doc-flipdim,,flipdim}, @ref{doc-rot90,,rot90}, @ref{doc-rotdim,,rotdim}} @end deftypefn *************** *** 405,411 **** @c rot90 scripts/general/rot90.m @anchor{doc-rot90} ! @deftypefn {Function File} {} rot90 (@var{A}, @var{k}) Return a copy of @var{A} with the elements rotated counterclockwise in 90-degree increments. The second argument is optional, and specifies how many 90-degree rotations are to be applied (the default value is 1). --- 430,437 ---- @c rot90 scripts/general/rot90.m @anchor{doc-rot90} ! @deftypefn {Function File} {} rot90 (@var{A}) ! @deftypefnx {Function File} {} rot90 (@var{A}, @var{k}) Return a copy of @var{A} with the elements rotated counterclockwise in 90-degree increments. The second argument is optional, and specifies how many 90-degree rotations are to be applied (the default value is 1). *************** *** 432,439 **** @end group @end example ! Due to the difficulty of defining an axis about which to rotate the ! matrix @code{rot90} only work with 2-D arrays. To rotate N-d arrays use @code{rotdim} instead. @seealso{@ref{doc-rotdim,,rotdim}, @ref{doc-flipud,,flipud}, @ref{doc-fliplr,,fliplr}, @ref{doc-flipdim,,flipdim}} @end deftypefn --- 458,464 ---- @end group @end example ! Note that @code{rot90} only works with 2-D arrays. To rotate N-D arrays use @code{rotdim} instead. @seealso{@ref{doc-rotdim,,rotdim}, @ref{doc-flipud,,flipud}, @ref{doc-fliplr,,fliplr}, @ref{doc-flipdim,,flipdim}} @end deftypefn *************** *** 441,454 **** @c rotdim scripts/general/rotdim.m @anchor{doc-rotdim} ! @deftypefn {Function File} {} rotdim (@var{x}, @var{n}, @var{plane}) Return a copy of @var{x} with the elements rotated counterclockwise in ! 90-degree increments. The second argument is optional, and specifies ! how many 90-degree rotations are to be applied (the default value is 1). The third argument is also optional and defines the plane of the ! rotation. As such @var{plane} is a two element vector containing two ! different valid dimensions of the matrix. If @var{plane} is not given ! Then the first two non-singleton dimensions are used. Negative values of @var{n} rotate the matrix in a clockwise direction. For example, --- 466,482 ---- @c rotdim scripts/general/rotdim.m @anchor{doc-rotdim} ! @deftypefn {Function File} {} rotdim (@var{x}) ! @deftypefnx {Function File} {} rotdim (@var{x}, @var{n}) ! @deftypefnx {Function File} {} rotdim (@var{x}, @var{n}, @var{plane}) Return a copy of @var{x} with the elements rotated counterclockwise in ! 90-degree increments. ! The second argument @var{n} is optional, and specifies how many 90-degree ! rotations are to be applied (the default value is 1). The third argument is also optional and defines the plane of the ! rotation. If present, @var{plane} is a two element vector containing two ! different valid dimensions of the matrix. When @var{plane} is not given ! the first two non-singleton dimensions are used. Negative values of @var{n} rotate the matrix in a clockwise direction. For example, *************** *** 479,485 **** @c cat src/data.cc @anchor{doc-cat} @deftypefn {Built-in Function} {} cat (@var{dim}, @var{array1}, @var{array2}, @dots{}, @var{arrayN}) ! Return the concatenation of N-d array objects, @var{array1}, @var{array2}, @dots{}, @var{arrayN} along dimension @var{dim}. @example --- 507,513 ---- @c cat src/data.cc @anchor{doc-cat} @deftypefn {Built-in Function} {} cat (@var{dim}, @var{array1}, @var{array2}, @dots{}, @var{arrayN}) ! Return the concatenation of N-D array objects, @var{array1}, @var{array2}, @dots{}, @var{arrayN} along dimension @var{dim}. @example *************** *** 487,496 **** A = ones (2, 2); B = zeros (2, 2); cat (2, A, B) ! @result{} ans = ! ! 1 1 0 0 ! 1 1 0 0 @end group @end example --- 515,522 ---- A = ones (2, 2); B = zeros (2, 2); cat (2, A, B) ! @result{} 1 1 0 0 ! 1 1 0 0 @end group @end example *************** *** 503,525 **** @end group @end example ! @var{dim} can be larger than the dimensions of the N-d array objects and the result will thus have @var{dim} dimensions as the following example shows: @example @group ! cat (4, ones(2, 2), zeros (2, 2)) ! @result{} ans = ! ans(:,:,1,1) = ! 1 1 ! 1 1 ! ans(:,:,1,2) = ! 0 0 ! 0 0 @end group @end example @seealso{@ref{doc-horzcat,,horzcat}, @ref{doc-vertcat,,vertcat}} --- 529,551 ---- @end group @end example ! @var{dim} can be larger than the dimensions of the N-D array objects and the result will thus have @var{dim} dimensions as the following example shows: @example @group ! cat (4, ones (2, 2), zeros (2, 2)) ! @result{} ans = ! ans(:,:,1,1) = ! 1 1 ! 1 1 ! ans(:,:,1,2) = ! 0 0 ! 0 0 @end group @end example @seealso{@ref{doc-horzcat,,horzcat}, @ref{doc-vertcat,,vertcat}} *************** *** 529,536 **** @c horzcat src/data.cc @anchor{doc-horzcat} @deftypefn {Built-in Function} {} horzcat (@var{array1}, @var{array2}, @dots{}, @var{arrayN}) ! Return the horizontal concatenation of N-d array objects, @var{array1}, @var{array2}, @dots{}, @var{arrayN} along dimension 2. @seealso{@ref{doc-cat,,cat}, @ref{doc-vertcat,,vertcat}} @end deftypefn --- 555,569 ---- @c horzcat src/data.cc @anchor{doc-horzcat} @deftypefn {Built-in Function} {} horzcat (@var{array1}, @var{array2}, @dots{}, @var{arrayN}) ! Return the horizontal concatenation of N-D array objects, @var{array1}, @var{array2}, @dots{}, @var{arrayN} along dimension 2. + + Arrays may also be concatenated horizontally using the syntax for creating + new matrices. For example: + + @example + @var{hcat} = [ @var{array1}, @var{array2}, @dots{} ]; + @end example @seealso{@ref{doc-cat,,cat}, @ref{doc-vertcat,,vertcat}} @end deftypefn *************** *** 538,583 **** @c vertcat src/data.cc @anchor{doc-vertcat} @deftypefn {Built-in Function} {} vertcat (@var{array1}, @var{array2}, @dots{}, @var{arrayN}) ! Return the vertical concatenation of N-d array objects, @var{array1}, @var{array2}, @dots{}, @var{arrayN} along dimension 1. @seealso{@ref{doc-cat,,cat}, @ref{doc-horzcat,,horzcat}} @end deftypefn @c permute src/data.cc @anchor{doc-permute} ! @deftypefn {Built-in Function} {} permute (@var{a}, @var{perm}) ! Return the generalized transpose for an N-d array object @var{a}. The permutation vector @var{perm} must contain the elements ! @code{1:ndims(a)} (in any order, but each element must appear just once). @seealso{@ref{doc-ipermute,,ipermute}} @end deftypefn @c ipermute src/data.cc @anchor{doc-ipermute} ! @deftypefn {Built-in Function} {} ipermute (@var{a}, @var{iperm}) The inverse of the @code{permute} function. The expression @example ! ipermute (permute (a, perm), perm) @end example @noindent ! returns the original array @var{a}. @seealso{@ref{doc-permute,,permute}} @end deftypefn @c reshape src/data.cc @anchor{doc-reshape} ! @deftypefn {Built-in Function} {} reshape (@var{a}, @var{m}, @var{n}, @dots{}) ! @deftypefnx {Built-in Function} {} reshape (@var{a}, @var{size}) ! Return a matrix with the given dimensions whose elements are taken ! from the matrix @var{a}. The elements of the matrix are accessed in ! column-major order (like Fortran arrays are stored). ! For example: @example @group --- 571,626 ---- @c vertcat src/data.cc @anchor{doc-vertcat} @deftypefn {Built-in Function} {} vertcat (@var{array1}, @var{array2}, @dots{}, @var{arrayN}) ! Return the vertical concatenation of N-D array objects, @var{array1}, @var{array2}, @dots{}, @var{arrayN} along dimension 1. + + Arrays may also be concatenated vertically using the syntax for creating + new matrices. For example: + + @example + @var{vcat} = [ @var{array1}; @var{array2}; @dots{} ]; + @end example @seealso{@ref{doc-cat,,cat}, @ref{doc-horzcat,,horzcat}} @end deftypefn @c permute src/data.cc @anchor{doc-permute} ! @deftypefn {Built-in Function} {} permute (@var{A}, @var{perm}) ! Return the generalized transpose for an N-D array object @var{A}. The permutation vector @var{perm} must contain the elements ! @code{1:ndims(A)} (in any order, but each element must appear only once). @seealso{@ref{doc-ipermute,,ipermute}} @end deftypefn @c ipermute src/data.cc @anchor{doc-ipermute} ! @deftypefn {Built-in Function} {} ipermute (@var{A}, @var{iperm}) The inverse of the @code{permute} function. The expression @example ! ipermute (permute (A, perm), perm) @end example @noindent ! returns the original array @var{A}. @seealso{@ref{doc-permute,,permute}} @end deftypefn @c reshape src/data.cc @anchor{doc-reshape} ! @deftypefn {Built-in Function} {} reshape (@var{A}, @var{m}, @var{n}, @dots{}) ! @deftypefnx {Built-in Function} {} reshape (@var{A}, [@var{m} @var{n} @dots{}]) ! @deftypefnx {Built-in Function} {} reshape (@var{A}, @dots{}, [], @dots{}) ! @deftypefnx {Built-in Function} {} reshape (@var{A}, @var{size}) ! Return a matrix with the specified dimensions (@var{m}, @var{n}, @dots{}) ! whose elements are taken from the matrix @var{A}. The elements of the ! matrix are accessed in column-major order (like Fortran arrays are stored). ! The following code demonstrates reshaping a 1x4 row vector into a 2x2 square ! matrix. @example @group *************** *** 589,606 **** @noindent Note that the total number of elements in the original ! matrix must match the total number of elements in the new matrix. ! A single dimension of the return matrix can be unknown and is flagged ! by an empty argument. @end deftypefn @c resize src/data.cc @anchor{doc-resize} @deftypefn {Built-in Function} {} resize (@var{x}, @var{m}) - @deftypefnx {Built-in Function} {} resize (@var{x}, @var{m}, @var{n}) @deftypefnx {Built-in Function} {} resize (@var{x}, @var{m}, @var{n}, @dots{}) Resize @var{x} cutting off elements as necessary. In the result, element with certain indices is equal to the corresponding --- 632,652 ---- @noindent Note that the total number of elements in the original ! matrix (@code{prod (size (@var{A}))}) must match the total number of elements ! in the new matrix (@code{prod ([@var{m} @var{n} @dots{}])}). ! A single dimension of the return matrix may be left unspecified and Octave ! will determine its size automatically. An empty matrix ([]) is used to flag ! the unspecified dimension. ! @seealso{@ref{doc-resize,,resize}} @end deftypefn @c resize src/data.cc @anchor{doc-resize} @deftypefn {Built-in Function} {} resize (@var{x}, @var{m}) @deftypefnx {Built-in Function} {} resize (@var{x}, @var{m}, @var{n}, @dots{}) + @deftypefnx {Built-in Function} {} resize (@var{x}, [@var{m} @var{n} @dots{}]) Resize @var{x} cutting off elements as necessary. In the result, element with certain indices is equal to the corresponding *************** *** 628,638 **** @noindent but is performed more efficiently. ! If only @var{m} is supplied and it is a scalar, the dimension of the ! result is @var{m}-by-@var{m}. If @var{m} is a vector, then the ! dimensions of the result are given by the elements of @var{m}. ! If both @var{m} and @var{n} are scalars, then the dimensions of ! the result are @var{m}-by-@var{n}. An object can be resized to more dimensions than it has; in such case the missing dimensions are assumed to be 1. --- 674,685 ---- @noindent but is performed more efficiently. ! If only @var{m} is supplied, and it is a scalar, the dimension of the ! result is @var{m}-by-@var{m}. ! If @var{m}, @var{n}, @dots{} are all scalars, then the dimensions of ! the result are @var{m}-by-@var{n}-by-@dots{}. ! If given a vector as input, then the ! dimensions of the result are given by the elements of that vector. An object can be resized to more dimensions than it has; in such case the missing dimensions are assumed to be 1. *************** *** 644,650 **** @c circshift scripts/general/circshift.m @anchor{doc-circshift} @deftypefn {Function File} {@var{y} =} circshift (@var{x}, @var{n}) ! Circularly shifts the values of the array @var{x}. @var{n} must be a vector of integers no longer than the number of dimensions in @var{x}. The values of @var{n} can be either positive or negative, which determines the direction in which the values or @var{x} are --- 691,697 ---- @c circshift scripts/general/circshift.m @anchor{doc-circshift} @deftypefn {Function File} {@var{y} =} circshift (@var{x}, @var{n}) ! Circularly shift the values of the array @var{x}. @var{n} must be a vector of integers no longer than the number of dimensions in @var{x}. The values of @var{n} can be either positive or negative, which determines the direction in which the values or @var{x} are *************** *** 672,682 **** @end deftypefn @c shiftdim scripts/general/shiftdim.m @anchor{doc-shiftdim} @deftypefn {Function File} {@var{y} =} shiftdim (@var{x}, @var{n}) @deftypefnx {Function File} {[@var{y}, @var{ns}] =} shiftdim (@var{x}) ! Shifts the dimension of @var{x} by @var{n}, where @var{n} must be an integer scalar. When @var{n} is positive, the dimensions of @var{x} are shifted to the left, with the leading dimensions circulated to the end. If @var{n} is negative, then the dimensions --- 719,742 ---- @end deftypefn + @c shift scripts/general/shift.m + @anchor{doc-shift} + @deftypefn {Function File} {} shift (@var{x}, @var{b}) + @deftypefnx {Function File} {} shift (@var{x}, @var{b}, @var{dim}) + If @var{x} is a vector, perform a circular shift of length @var{b} of + the elements of @var{x}. + + If @var{x} is a matrix, do the same for each column of @var{x}. + If the optional @var{dim} argument is given, operate along this + dimension. + @end deftypefn + + @c shiftdim scripts/general/shiftdim.m @anchor{doc-shiftdim} @deftypefn {Function File} {@var{y} =} shiftdim (@var{x}, @var{n}) @deftypefnx {Function File} {[@var{y}, @var{ns}] =} shiftdim (@var{x}) ! Shift the dimensions of @var{x} by @var{n}, where @var{n} must be an integer scalar. When @var{n} is positive, the dimensions of @var{x} are shifted to the left, with the leading dimensions circulated to the end. If @var{n} is negative, then the dimensions *************** *** 705,723 **** @end deftypefn - @c shift scripts/general/shift.m - @anchor{doc-shift} - @deftypefn {Function File} {} shift (@var{x}, @var{b}) - @deftypefnx {Function File} {} shift (@var{x}, @var{b}, @var{dim}) - If @var{x} is a vector, perform a circular shift of length @var{b} of - the elements of @var{x}. - - If @var{x} is a matrix, do the same for each column of @var{x}. - If the optional @var{dim} argument is given, operate along this - dimension. - @end deftypefn - - @c sort src/data.cc @anchor{doc-sort} @deftypefn {Loadable Function} {[@var{s}, @var{i}] =} sort (@var{x}) --- 765,770 ---- *************** *** 725,731 **** @deftypefnx {Loadable Function} {[@var{s}, @var{i}] =} sort (@var{x}, @var{mode}) @deftypefnx {Loadable Function} {[@var{s}, @var{i}] =} sort (@var{x}, @var{dim}, @var{mode}) Return a copy of @var{x} with the elements arranged in increasing ! order. For matrices, @code{sort} orders the elements in each column. For example: --- 772,778 ---- @deftypefnx {Loadable Function} {[@var{s}, @var{i}] =} sort (@var{x}, @var{mode}) @deftypefnx {Loadable Function} {[@var{s}, @var{i}] =} sort (@var{x}, @var{dim}, @var{mode}) Return a copy of @var{x} with the elements arranged in increasing ! order. For matrices, @code{sort} orders the elements within columns For example: *************** *** 738,743 **** --- 785,795 ---- @end group @end example + If the optional argument @var{dim} is given, then the matrix is sorted + along the dimension defined by @var{dim}. The optional argument @code{mode} + defines the order in which the values will be sorted. Valid values of + @code{mode} are `ascend' or `descend'. + The @code{sort} function may also be used to produce a matrix containing the original row indices of the elements in the sorted matrix. For example: *************** *** 754,769 **** @end group @end example ! If the optional argument @var{dim} is given, then the matrix is sorted ! along the dimension defined by @var{dim}. The optional argument @code{mode} ! defines the order in which the values will be sorted. Valid values of ! @code{mode} are `ascend' or `descend'. ! For equal elements, the indices are such that the equal elements are listed ! in the order that appeared in the original list. The @code{sort} function may also be used to sort strings and cell arrays ! of strings, in which case the dictionary order of the strings is used. The algorithm used in @code{sort} is optimized for the sorting of partially ordered lists. --- 806,832 ---- @end group @end example ! For equal elements, the indices are such that equal elements are listed ! in the order in which they appeared in the original list. ! ! Sorting of complex entries is done first by magnitude (@code{abs (@var{z})}) ! and for any ties by phase angle (@code{angle (z)}). For example: ! @example ! @group ! sort ([1+i; 1; 1-i]) ! @result{} 1 + 0i ! 1 - 1i ! 1 + 1i ! @end group ! @end example ! ! NaN values are treated as being greater than any other value and are sorted ! to the end of the list. The @code{sort} function may also be used to sort strings and cell arrays ! of strings, in which case ASCII dictionary order (uppercase 'A' precedes ! lowercase 'a') of the strings is used. The algorithm used in @code{sort} is optimized for the sorting of partially ordered lists. *************** *** 772,778 **** @c sortrows scripts/general/sortrows.m @anchor{doc-sortrows} ! @deftypefn {Function File} {} sortrows (@var{A}, @var{c}) Sort the rows of the matrix @var{A} according to the order of the columns specified in @var{c}. If @var{c} is omitted, a lexicographical sort is used. By default ascending order is used --- 835,842 ---- @c sortrows scripts/general/sortrows.m @anchor{doc-sortrows} ! @deftypefn {Function File} {[@var{s}, @var{i}] =} sortrows (@var{A}) ! @deftypefnx {Function File} {[@var{s}, @var{i}] =} sortrows (@var{A}, @var{c}) Sort the rows of the matrix @var{A} according to the order of the columns specified in @var{c}. If @var{c} is omitted, a lexicographical sort is used. By default ascending order is used *************** *** 783,790 **** @c issorted src/data.cc @anchor{doc-issorted} ! @deftypefn {Built-in Function} {} issorted (@var{a}, @var{mode}) ! @deftypefnx {Built-in Function} {} issorted (@var{a}, @code{"rows"}, @var{mode}) Return true if the array is sorted according to @var{mode}, which may be either "ascending", "descending", or "either". By default, @var{mode} is "ascending". NaNs are treated in the same manner as --- 847,855 ---- @c issorted src/data.cc @anchor{doc-issorted} ! @deftypefn {Built-in Function} {} issorted (@var{a}) ! @deftypefnx {Built-in Function} {} issorted (@var{a}, @var{mode}) ! @deftypefnx {Built-in Function} {} issorted (@var{a}, "rows", @var{mode}) Return true if the array is sorted according to @var{mode}, which may be either "ascending", "descending", or "either". By default, @var{mode} is "ascending". NaNs are treated in the same manner as *************** *** 800,825 **** ! Since the @code{sort} function does not allow sort keys to be specified, ! it can't be used to order the rows of a matrix according to the values ! of the elements in various columns@footnote{For example, to first sort ! based on the values in column 1, and then, for any values that are ! repeated in column 1, sort based on the values found in column 2, etc.} ! in a single call. Using the second output, however, it is possible to ! sort all rows based on the values in a given column. Here's an example ! that sorts the rows of a matrix based on the values in the second ! column. - @example - @group - a = [1, 2; 2, 3; 3, 1]; - [s, i] = sort (a (:, 2)); - a (i, :) - @result{} 3 1 - 1 2 - 2 3 - @end group - @end example @anchor{doc-triu} @c tril src/DLD-FUNCTIONS/tril.cc --- 865,892 ---- ! @c nth_element src/data.cc ! @anchor{doc-nth_element} ! @deftypefn {Built-in Function} {} nth_element (@var{x}, @var{n}) ! @deftypefnx {Built-in Function} {} nth_element (@var{x}, @var{n}, @var{dim}) ! Select the n-th smallest element of a vector, using the ordering defined by ! @code{sort}. In other words, the result is equivalent to ! @code{sort(@var{x})(@var{n})}. ! @var{n} can also be a contiguous range, either ascending @code{l:u} ! or descending @code{u:-1:l}, in which case a range of elements is returned. ! If @var{x} is an array, @code{nth_element} operates along the dimension ! defined by @var{dim}, or the first non-singleton dimension if @var{dim} is ! not given. ! ! nth_element encapsulates the C++ standard library algorithms nth_element and ! partial_sort. On average, the complexity of the operation is O(M*log(K)), ! where @w{@code{M = size (@var{x}, @var{dim})}} and ! @w{@code{K = length (@var{n})}}. ! This function is intended for cases where the ratio K/M is small; otherwise, ! it may be better to use @code{sort}. ! @seealso{@ref{doc-sort,,sort}, @ref{doc-min,,min}, @ref{doc-max,,max}} ! @end deftypefn @anchor{doc-triu} @c tril src/DLD-FUNCTIONS/tril.cc *************** *** 872,890 **** If the option "pack" is given as third argument, the extracted elements are not inserted into a matrix, but rather stacked column-wise one above other. ! @seealso{@ref{doc-triu,,triu}, @ref{doc-diag,,diag}} @end deftypefn @c vec src/data.cc @anchor{doc-vec} ! @deftypefn {Built-in Function} {} @var{v} = vec (@var{x}) ! @deftypefnx {Built-in Function} {} @var{v} = vec (@var{x}, @var{dim}) Return the vector obtained by stacking the columns of the matrix @var{x} one above the other. Without @var{dim} this is equivalent to @code{@var{x}(:)}. If @var{dim} is supplied, the dimensions of @var{v} are set to @var{dim} with all elements along the last dimension. This is equivalent to @code{shiftdim (@var{x}(:), 1-@var{dim})}. @end deftypefn --- 939,958 ---- If the option "pack" is given as third argument, the extracted elements are not inserted into a matrix, but rather stacked column-wise one above other. ! @seealso{@ref{doc-diag,,diag}} @end deftypefn @c vec src/data.cc @anchor{doc-vec} ! @deftypefn {Built-in Function} {@var{v} =} vec (@var{x}) ! @deftypefnx {Built-in Function} {@var{v} =} vec (@var{x}, @var{dim}) Return the vector obtained by stacking the columns of the matrix @var{x} one above the other. Without @var{dim} this is equivalent to @code{@var{x}(:)}. If @var{dim} is supplied, the dimensions of @var{v} are set to @var{dim} with all elements along the last dimension. This is equivalent to @code{shiftdim (@var{x}(:), 1-@var{dim})}. + @seealso{@ref{doc-vech,,vech}} @end deftypefn *************** *** 893,899 **** @deftypefn {Function File} {} vech (@var{x}) Return the vector obtained by eliminating all supradiagonal elements of the square matrix @var{x} and stacking the result one column above the ! other. @end deftypefn --- 961,970 ---- @deftypefn {Function File} {} vech (@var{x}) Return the vector obtained by eliminating all supradiagonal elements of the square matrix @var{x} and stacking the result one column above the ! other. This has uses in matrix calculus where the underlying matrix ! is symmetric and it would be pointless to keep values above the main ! diagonal. ! @seealso{@ref{doc-vec,,vec}} @end deftypefn *************** *** 902,910 **** @deftypefn {Function File} {} prepad (@var{x}, @var{l}) @deftypefnx {Function File} {} prepad (@var{x}, @var{l}, @var{c}) @deftypefnx {Function File} {} prepad (@var{x}, @var{l}, @var{c}, @var{dim}) ! Prepend the scalar value @var{c} to the vector @var{x} ! until it is of length @var{l}. If the third argument is not ! supplied, a value of 0 is used. If @code{length (@var{x}) > @var{l}}, elements from the beginning of @var{x} are removed until a vector of length @var{l} is obtained. --- 973,980 ---- @deftypefn {Function File} {} prepad (@var{x}, @var{l}) @deftypefnx {Function File} {} prepad (@var{x}, @var{l}, @var{c}) @deftypefnx {Function File} {} prepad (@var{x}, @var{l}, @var{c}, @var{dim}) ! Prepend the scalar value @var{c} to the vector @var{x} until it is of length ! @var{l}. If @var{c} is not given, a value of 0 is used. If @code{length (@var{x}) > @var{l}}, elements from the beginning of @var{x} are removed until a vector of length @var{l} is obtained. *************** *** 922,930 **** @deftypefn {Function File} {} postpad (@var{x}, @var{l}) @deftypefnx {Function File} {} postpad (@var{x}, @var{l}, @var{c}) @deftypefnx {Function File} {} postpad (@var{x}, @var{l}, @var{c}, @var{dim}) ! Append the scalar value @var{c} to the vector @var{x} ! until it is of length @var{l}. If the third argument is not ! supplied, a value of 0 is used. If @code{length (@var{x}) > @var{l}}, elements from the end of @var{x} are removed until a vector of length @var{l} is obtained. --- 992,999 ---- @deftypefn {Function File} {} postpad (@var{x}, @var{l}) @deftypefnx {Function File} {} postpad (@var{x}, @var{l}, @var{c}) @deftypefnx {Function File} {} postpad (@var{x}, @var{l}, @var{c}, @var{dim}) ! Append the scalar value @var{c} to the vector @var{x} until it is of length ! @var{l}. If @var{c} is not given, a value of 0 is used. If @code{length (@var{x}) > @var{l}}, elements from the end of @var{x} are removed until a vector of length @var{l} is obtained. *************** *** 939,945 **** @c diag src/data.cc @anchor{doc-diag} ! @deftypefn {Built-in Function} {} diag (@var{v}, @var{k}) Return a diagonal matrix with vector @var{v} on diagonal @var{k}. The second argument is optional. If it is positive, the vector is placed on the @var{k}-th super-diagonal. If it is negative, it is placed on the --- 1008,1018 ---- @c diag src/data.cc @anchor{doc-diag} ! @deftypefn {Built-in Function} {@var{M} =} diag (@var{v}) ! @deftypefnx {Built-in Function} {@var{M} =} diag (@var{v}, @var{k}) ! @deftypefnx {Built-in Function} {@var{M} =} diag (@var{v}, @var{m}, @var{n}) ! @deftypefnx {Built-in Function} {@var{v} =} diag (@var{M}) ! @deftypefnx {Built-in Function} {@var{v} =} diag (@var{M}, @var{k}) Return a diagonal matrix with vector @var{v} on diagonal @var{k}. The second argument is optional. If it is positive, the vector is placed on the @var{k}-th super-diagonal. If it is negative, it is placed on the *************** *** 957,962 **** --- 1030,1039 ---- @end example @noindent + The 3-input form returns a diagonal matrix with vector @var{v} on the main + diagonal and the resulting matrix being of size @var{m} rows x @var{n} + columns. + Given a matrix argument, instead of a vector, @code{diag} extracts the @var{k}-th diagonal of the matrix. @end deftypefn *************** *** 965,971 **** @c blkdiag scripts/general/blkdiag.m @anchor{doc-blkdiag} @deftypefn {Function File} {} blkdiag (@var{A}, @var{B}, @var{C}, @dots{}) ! Build a block diagonal matrix from @var{A}, @var{B}, @var{C}, @dots{}. All the arguments must be numeric and are two-dimensional matrices or scalars. @seealso{@ref{doc-diag,,diag}, @ref{doc-horzcat,,horzcat}, @ref{doc-vertcat,,vertcat}} --- 1042,1048 ---- @c blkdiag scripts/general/blkdiag.m @anchor{doc-blkdiag} @deftypefn {Function File} {} blkdiag (@var{A}, @var{B}, @var{C}, @dots{}) ! Build a block diagonal matrix from @var{A}, @var{B}, @var{C}, @dots{} All the arguments must be numeric and are two-dimensional matrices or scalars. @seealso{@ref{doc-diag,,diag}, @ref{doc-horzcat,,horzcat}, @ref{doc-vertcat,,vertcat}} *************** *** 989,997 **** accept array arguments it is better to call the function directly. The first input argument @var{func} can be a string, a function ! handle, an inline function or an anonymous function. The input argument @var{A} can be a logic array, a numeric array, a string ! array, a structure array or a cell array. By a call of the function @command{arrayfun} all elements of @var{A} are passed on to the named function @var{func} individually. --- 1066,1074 ---- accept array arguments it is better to call the function directly. The first input argument @var{func} can be a string, a function ! handle, an inline function, or an anonymous function. The input argument @var{A} can be a logic array, a numeric array, a string ! array, a structure array, or a cell array. By a call of the function @command{arrayfun} all elements of @var{A} are passed on to the named function @var{func} individually. *************** *** 1055,1061 **** If the parameter @var{errfunc} after a further string input argument "ErrorHandler" is another string, a function handle, an inline ! function or an anonymous function, then @var{errfunc} defines a function to call in the case that @var{func} generates an error. The definition of the function must be of the form --- 1132,1138 ---- If the parameter @var{errfunc} after a further string input argument "ErrorHandler" is another string, a function handle, an inline ! function, or an anonymous function, then @var{errfunc} defines a function to call in the case that @var{func} generates an error. The definition of the function must be of the form *************** *** 1066,1073 **** @noindent where there is an additional input argument to @var{errfunc} relative to @var{func}, given by @var{s}. This is a structure with ! the elements "identifier", "message" and "index", giving ! respectively the error identifier, the error message and the index of the array elements that caused the error. The size of the output argument of @var{errfunc} must have the same size as the output argument of @var{func}, otherwise a real error is thrown. For --- 1143,1150 ---- @noindent where there is an additional input argument to @var{errfunc} relative to @var{func}, given by @var{s}. This is a structure with ! the elements "identifier", "message", and "index" giving, ! respectively, the error identifier, the error message, and the index of the array elements that caused the error. The size of the output argument of @var{errfunc} must have the same size as the output argument of @var{func}, otherwise a real error is thrown. For *************** *** 1093,1101 **** @anchor{doc-bsxfun} @deftypefn {Loadable Function} {} bsxfun (@var{f}, @var{A}, @var{B}) Apply a binary function @var{f} element-by-element to two matrix arguments ! @var{A} and @var{B}. The function @var{f} must be capable of accepting ! two column-vector arguments of equal length, or one column vector ! argument and a scalar. The dimensions of @var{A} and @var{B} must be equal or singleton. The singleton dimensions of the matrices will be expanded to the same --- 1170,1179 ---- @anchor{doc-bsxfun} @deftypefn {Loadable Function} {} bsxfun (@var{f}, @var{A}, @var{B}) Apply a binary function @var{f} element-by-element to two matrix arguments ! @var{A} and @var{B}. @var{f} is a function handle, inline function, or ! string containing the name of the function to evaluate. ! The function @var{f} must be capable of accepting two column-vector ! arguments of equal length, or one column vector argument and a scalar. The dimensions of @var{A} and @var{B} must be equal or singleton. The singleton dimensions of the matrices will be expanded to the same *************** *** 1109,1122 **** @c eye src/data.cc @anchor{doc-eye} ! @deftypefn {Built-in Function} {} eye (@var{x}) ! @deftypefnx {Built-in Function} {} eye (@var{n}, @var{m}) @deftypefnx {Built-in Function} {} eye (@dots{}, @var{class}) ! Return an identity matrix. If invoked with a single scalar argument, ! @code{eye} returns a square matrix with the dimension specified. If you ! supply two scalar arguments, @code{eye} takes them to be the number of ! rows and columns. If given a vector with two elements, @code{eye} uses ! the values of the elements as the number of rows and columns, respectively. For example: @example --- 1187,1201 ---- @c eye src/data.cc @anchor{doc-eye} ! @deftypefn {Built-in Function} {} eye (@var{n}) ! @deftypefnx {Built-in Function} {} eye (@var{m}, @var{n}) ! @deftypefnx {Built-in Function} {} eye ([@var{m} @var{n}]) @deftypefnx {Built-in Function} {} eye (@dots{}, @var{class}) ! Return an identity matrix. If invoked with a single scalar argument @var{n}, ! return a square @nospell{NxN} identity matrix. If ! supplied two scalar arguments (@var{m}, @var{n}), @code{eye} takes them to be ! the number of rows and columns. If given a vector with two elements, ! @code{eye} uses the values of the elements as the number of rows and columns, respectively. For example: @example *************** *** 1150,1182 **** Calling @code{eye} with no arguments is equivalent to calling it with an argument of 1. This odd definition is for compatibility with @sc{matlab}. @end deftypefn @c ones src/data.cc @anchor{doc-ones} ! @deftypefn {Built-in Function} {} ones (@var{x}) ! @deftypefnx {Built-in Function} {} ones (@var{n}, @var{m}) ! @deftypefnx {Built-in Function} {} ones (@var{n}, @var{m}, @var{k}, @dots{}) @deftypefnx {Built-in Function} {} ones (@dots{}, @var{class}) Return a matrix or N-dimensional array whose elements are all 1. ! If invoked with a single scalar integer argument, return a square ! matrix of the specified size. If invoked with two or more scalar integer arguments, or a vector of integer values, return an array with ! given dimensions. If you need to create a matrix whose values are all the same, you should use an expression like @example ! val_matrix = val * ones (n, m) @end example The optional argument @var{class} specifies the class of the return array and defaults to double. For example: @example ! val = ones (n,m, "uint8") @end example @seealso{@ref{doc-zeros,,zeros}} @end deftypefn --- 1229,1263 ---- Calling @code{eye} with no arguments is equivalent to calling it with an argument of 1. This odd definition is for compatibility with @sc{matlab}. + @seealso{@ref{doc-speye,,speye}} @end deftypefn @c ones src/data.cc @anchor{doc-ones} ! @deftypefn {Built-in Function} {} ones (@var{n}) ! @deftypefnx {Built-in Function} {} ones (@var{m}, @var{n}) ! @deftypefnx {Built-in Function} {} ones (@var{m}, @var{n}, @var{k}, @dots{}) ! @deftypefnx {Built-in Function} {} ones ([@var{m} @var{n} @dots{}]) @deftypefnx {Built-in Function} {} ones (@dots{}, @var{class}) Return a matrix or N-dimensional array whose elements are all 1. ! If invoked with a single scalar integer argument @var{n}, return a square ! @nospell{NxN} matrix. If invoked with two or more scalar integer arguments, or a vector of integer values, return an array with ! the given dimensions. If you need to create a matrix whose values are all the same, you should use an expression like @example ! val_matrix = val * ones (m, n) @end example The optional argument @var{class} specifies the class of the return array and defaults to double. For example: @example ! val = ones (m,n, "uint8") @end example @seealso{@ref{doc-zeros,,zeros}} @end deftypefn *************** *** 1184,1204 **** @c zeros src/data.cc @anchor{doc-zeros} ! @deftypefn {Built-in Function} {} zeros (@var{x}) ! @deftypefnx {Built-in Function} {} zeros (@var{n}, @var{m}) ! @deftypefnx {Built-in Function} {} zeros (@var{n}, @var{m}, @var{k}, @dots{}) @deftypefnx {Built-in Function} {} zeros (@dots{}, @var{class}) Return a matrix or N-dimensional array whose elements are all 0. If invoked with a single scalar integer argument, return a square ! matrix of the specified size. If invoked with two or more scalar integer arguments, or a vector of integer values, return an array with ! given dimensions. The optional argument @var{class} specifies the class of the return array and defaults to double. For example: @example ! val = zeros (n,m, "uint8") @end example @seealso{@ref{doc-ones,,ones}} @end deftypefn --- 1265,1286 ---- @c zeros src/data.cc @anchor{doc-zeros} ! @deftypefn {Built-in Function} {} zeros (@var{n}) ! @deftypefnx {Built-in Function} {} zeros (@var{m}, @var{n}) ! @deftypefnx {Built-in Function} {} zeros (@var{m}, @var{n}, @var{k}, @dots{}) ! @deftypefnx {Built-in Function} {} zeros ([@var{m} @var{n} @dots{}]) @deftypefnx {Built-in Function} {} zeros (@dots{}, @var{class}) Return a matrix or N-dimensional array whose elements are all 0. If invoked with a single scalar integer argument, return a square ! @nospell{NxN} matrix. If invoked with two or more scalar integer arguments, or a vector of integer values, return an array with ! the given dimensions. The optional argument @var{class} specifies the class of the return array and defaults to double. For example: @example ! val = zeros (m,n, "uint8") @end example @seealso{@ref{doc-ones,,ones}} @end deftypefn *************** *** 1206,1212 **** @c repmat scripts/general/repmat.m @anchor{doc-repmat} ! @deftypefn {Function File} {} repmat (@var{A}, @var{m}, @var{n}) @deftypefnx {Function File} {} repmat (@var{A}, [@var{m} @var{n}]) @deftypefnx {Function File} {} repmat (@var{A}, [@var{m} @var{n} @var{p} @dots{}]) Form a block matrix of size @var{m} by @var{n}, with a copy of matrix --- 1288,1296 ---- @c repmat scripts/general/repmat.m @anchor{doc-repmat} ! @deftypefn {Function File} {} repmat (@var{A}, @var{m}) ! @deftypefnx {Function File} {} repmat (@var{A}, @var{m}, @var{n}) ! @deftypefnx {Function File} {} repmat (@var{A}, @var{m}, @var{n}, @var{p}, @dots{}) @deftypefnx {Function File} {} repmat (@var{A}, [@var{m} @var{n}]) @deftypefnx {Function File} {} repmat (@var{A}, [@var{m} @var{n} @var{p} @dots{}]) Form a block matrix of size @var{m} by @var{n}, with a copy of matrix *************** *** 1243,1252 **** @end deftypefn @c rand src/DLD-FUNCTIONS/rand.cc @anchor{doc-rand} ! @deftypefn {Loadable Function} {} rand (@var{x}) ! @deftypefnx {Loadable Function} {} rand (@var{n}, @var{m}) @deftypefnx {Loadable Function} {@var{v} =} rand ("state") @deftypefnx {Loadable Function} {} rand ("state", @var{v}) @deftypefnx {Loadable Function} {} rand ("state", "reset") --- 1327,1404 ---- @end deftypefn + The functions @code{linspace} and @code{logspace} make it very easy to + create vectors with evenly or logarithmically spaced elements. + @xref{Ranges}. + + @c linspace src/data.cc + @anchor{doc-linspace} + @deftypefn {Built-in Function} {} linspace (@var{base}, @var{limit}) + @deftypefnx {Built-in Function} {} linspace (@var{base}, @var{limit}, @var{n}) + Return a row vector with @var{n} linearly spaced elements between + @var{base} and @var{limit}. If the number of elements is greater than one, + then the endpoints @var{base} and @var{limit} are always included in + the range. If @var{base} is greater than @var{limit}, the elements are + stored in decreasing order. If the number of points is not specified, a + value of 100 is used. + + The @code{linspace} function always returns a row vector if both + @var{base} and @var{limit} are scalars. If one, or both, of them are column + vectors, @code{linspace} returns a matrix. + + For compatibility with @sc{matlab}, return the second argument (@var{limit}) + if fewer than two values are requested. + @end deftypefn + + + @c logspace scripts/general/logspace.m + @anchor{doc-logspace} + @deftypefn {Function File} {} logspace (@var{a}, @var{b}) + @deftypefnx {Function File} {} logspace (@var{b}, @var{b}, @var{n}) + @deftypefnx {Function File} {} logspace (@var{a}, pi, @var{n}) + Return a row vector with @var{n} elements logarithmically spaced from + @tex + $10^{a}$ to $10^{b}$. + @end tex + @ifnottex + 10^@var{a} to 10^@var{b}. + @end ifnottex + If @var{n} is unspecified it defaults to 50. + + If @var{b} is equal to + @tex + $\pi$, + @end tex + @ifnottex + pi, + @end ifnottex + the points are between + @tex + $10^{a}$ and $\pi$, + @end tex + @ifnottex + 10^@var{a} and pi, + @end ifnottex + @emph{not} + @tex + $10^{a}$ and $10^{\pi}$, + @end tex + @ifnottex + 10^@var{a} and 10^pi, + @end ifnottex + in order to be compatible with the corresponding @sc{matlab} function. + + Also for compatibility with @sc{matlab}, return the second argument @var{b} + if fewer than two values are requested. + @seealso{@ref{doc-linspace,,linspace}} + @end deftypefn + + @c rand src/DLD-FUNCTIONS/rand.cc @anchor{doc-rand} ! @deftypefn {Loadable Function} {} rand (@var{n}) ! @deftypefnx {Loadable Function} {} rand (@var{n}, @var{m}, @dots{}) ! @deftypefnx {Loadable Function} {} rand ([@var{n} @var{m} @dots{}]) @deftypefnx {Loadable Function} {@var{v} =} rand ("state") @deftypefnx {Loadable Function} {} rand ("state", @var{v}) @deftypefnx {Loadable Function} {} rand ("state", "reset") *************** *** 1278,1290 **** value of @var{v}, not @var{v} itself. By default, the generator is initialized from @code{/dev/urandom} if it is ! available, otherwise from CPU time, wall clock time and the current fraction of a second. To compute the pseudo-random sequence, @code{rand} uses the Mersenne Twister with a period of @math{2^{19937}-1} (See M. Matsumoto and T. Nishimura, ! @cite{Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator}, ACM Trans. on Modeling and Computer Simulation Vol. 8, No. 1, pp. 3-30, January 1998, @url{http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html}). --- 1430,1442 ---- value of @var{v}, not @var{v} itself. By default, the generator is initialized from @code{/dev/urandom} if it is ! available, otherwise from CPU time, wall clock time, and the current fraction of a second. To compute the pseudo-random sequence, @code{rand} uses the Mersenne Twister with a period of @math{2^{19937}-1} (See M. Matsumoto and T. Nishimura, ! @cite{Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator}, ACM Trans. on Modeling and Computer Simulation Vol. 8, No. 1, pp. 3-30, January 1998, @url{http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html}). *************** *** 1329,1335 **** @deftypefn {Function File} {} randi (@var{imax}) @deftypefnx {Function File} {} randi (@var{imax}, @var{n}) @deftypefnx {Function File} {} randi (@var{imax}, @var{m}, @var{n}, @dots{}) ! @deftypefnx {Function File} {} randi ([@var{imin}, @var{imax}], @dots{}) @deftypefnx {Function File} {} randi (@dots{}, "@var{class}") Return random integers in the range 1:@var{imax}. --- 1481,1487 ---- @deftypefn {Function File} {} randi (@var{imax}) @deftypefnx {Function File} {} randi (@var{imax}, @var{n}) @deftypefnx {Function File} {} randi (@var{imax}, @var{m}, @var{n}, @dots{}) ! @deftypefnx {Function File} {} randi ([@var{imin} @var{imax}], @dots{}) @deftypefnx {Function File} {} randi (@dots{}, "@var{class}") Return random integers in the range 1:@var{imax}. *************** *** 1356,1362 **** uses class "double" to represent numbers. This limits the maximum integer (@var{imax}) and range (@var{imax} - @var{imin}) to the value returned by the @code{bitmax} function. For IEEE floating point numbers ! this value is @w{@code{2^53 - 1}}. @seealso{@ref{doc-rand,,rand}} @end deftypefn --- 1508,1514 ---- uses class "double" to represent numbers. This limits the maximum integer (@var{imax}) and range (@var{imax} - @var{imin}) to the value returned by the @code{bitmax} function. For IEEE floating point numbers ! this value is @w{@math{2^{53} - 1}}. @seealso{@ref{doc-rand,,rand}} @end deftypefn *************** *** 1364,1371 **** @c randn src/DLD-FUNCTIONS/rand.cc @anchor{doc-randn} ! @deftypefn {Loadable Function} {} randn (@var{x}) ! @deftypefnx {Loadable Function} {} randn (@var{n}, @var{m}) @deftypefnx {Loadable Function} {@var{v} =} randn ("state") @deftypefnx {Loadable Function} {} randn ("state", @var{v}) @deftypefnx {Loadable Function} {} randn ("state", "reset") --- 1516,1524 ---- @c randn src/DLD-FUNCTIONS/rand.cc @anchor{doc-randn} ! @deftypefn {Loadable Function} {} randn (@var{n}) ! @deftypefnx {Loadable Function} {} randn (@var{n}, @var{m}, @dots{}) ! @deftypefnx {Loadable Function} {} randn ([@var{n} @var{m} @dots{}]) @deftypefnx {Loadable Function} {@var{v} =} randn ("state") @deftypefnx {Loadable Function} {} randn ("state", @var{v}) @deftypefnx {Loadable Function} {} randn ("state", "reset") *************** *** 1390,1397 **** @c rande src/DLD-FUNCTIONS/rand.cc @anchor{doc-rande} ! @deftypefn {Loadable Function} {} rande (@var{x}) ! @deftypefnx {Loadable Function} {} rande (@var{n}, @var{m}) @deftypefnx {Loadable Function} {@var{v} =} rande ("state") @deftypefnx {Loadable Function} {} rande ("state", @var{v}) @deftypefnx {Loadable Function} {} rande ("state", "reset") --- 1543,1551 ---- @c rande src/DLD-FUNCTIONS/rand.cc @anchor{doc-rande} ! @deftypefn {Loadable Function} {} rande (@var{n}) ! @deftypefnx {Loadable Function} {} rande (@var{n}, @var{m}, @dots{}) ! @deftypefnx {Loadable Function} {} rande ([@var{n} @var{m} @dots{}]) @deftypefnx {Loadable Function} {@var{v} =} rande ("state") @deftypefnx {Loadable Function} {} rande ("state", @var{v}) @deftypefnx {Loadable Function} {} rande ("state", "reset") *************** *** 1415,1422 **** @c randp src/DLD-FUNCTIONS/rand.cc @anchor{doc-randp} ! @deftypefn {Loadable Function} {} randp (@var{l}, @var{x}) ! @deftypefnx {Loadable Function} {} randp (@var{l}, @var{n}, @var{m}) @deftypefnx {Loadable Function} {@var{v} =} randp ("state") @deftypefnx {Loadable Function} {} randp ("state", @var{v}) @deftypefnx {Loadable Function} {} randp ("state", "reset") --- 1569,1577 ---- @c randp src/DLD-FUNCTIONS/rand.cc @anchor{doc-randp} ! @deftypefn {Loadable Function} {} randp (@var{l}, @var{n}) ! @deftypefnx {Loadable Function} {} randp (@var{l}, @var{n}, @var{m}, @dots{}) ! @deftypefnx {Loadable Function} {} randp (@var{l}, [@var{n} @var{m} @dots{}]) @deftypefnx {Loadable Function} {@var{v} =} randp ("state") @deftypefnx {Loadable Function} {} randp ("state", @var{v}) @deftypefnx {Loadable Function} {} randp ("state", "reset") *************** *** 1459,1466 **** @c randg src/DLD-FUNCTIONS/rand.cc @anchor{doc-randg} ! @deftypefn {Loadable Function} {} randg (@var{a}, @var{x}) ! @deftypefnx {Loadable Function} {} randg (@var{a}, @var{n}, @var{m}) @deftypefnx {Loadable Function} {@var{v} =} randg ("state") @deftypefnx {Loadable Function} {} randg ("state", @var{v}) @deftypefnx {Loadable Function} {} randg ("state", "reset") --- 1614,1622 ---- @c randg src/DLD-FUNCTIONS/rand.cc @anchor{doc-randg} ! @deftypefn {Loadable Function} {} randg (@var{n}) ! @deftypefnx {Loadable Function} {} randg (@var{n}, @var{m}, @dots{}) ! @deftypefnx {Loadable Function} {} randg ([@var{n} @var{m} @dots{}]) @deftypefnx {Loadable Function} {@var{v} =} randg ("state") @deftypefnx {Loadable Function} {} randg ("state", @var{v}) @deftypefnx {Loadable Function} {} randg ("state", "reset") *************** *** 1501,1507 **** r = 2 * randg (df / 2) @end example ! @item @code{t(df)} for @code{0 < df < inf} (use randn if df is infinite) @example r = randn () / sqrt (2 * randg (df / 2) / df) --- 1657,1663 ---- r = 2 * randg (df / 2) @end example ! @item @code{t (df)} for @code{0 < df < inf} (use randn if df is infinite) @example r = randn () / sqrt (2 * randg (df / 2) / df) *************** *** 1613,1692 **** @deftypefnx {Loadable Function} {} randperm (@var{n}, @var{m}) Return a row vector containing a random permutation of @code{1:@var{n}}. If @var{m} is supplied, return @var{m} permutations, ! one in each row of an @nospell{NxM} matrix. The complexity is O(M*N) in both time and memory. The randomization is performed using rand(). All permutations are equally likely. @seealso{@ref{doc-perms,,perms}} @end deftypefn - The functions @code{linspace} and @code{logspace} make it very easy to - create vectors with evenly or logarithmically spaced elements. - @xref{Ranges}. - - @c linspace src/data.cc - @anchor{doc-linspace} - @deftypefn {Built-in Function} {} linspace (@var{base}, @var{limit}, @var{n}) - Return a row vector with @var{n} linearly spaced elements between - @var{base} and @var{limit}. If the number of elements is greater than one, - then the @var{base} and @var{limit} are always included in - the range. If @var{base} is greater than @var{limit}, the elements are - stored in decreasing order. If the number of points is not specified, a - value of 100 is used. - - The @code{linspace} function always returns a row vector if both - @var{base} and @var{limit} are scalars. If one of them or both are column - vectors, @code{linspace} returns a matrix. - - For compatibility with @sc{matlab}, return the second argument if - fewer than two values are requested. - @end deftypefn - - - @c logspace scripts/general/logspace.m - @anchor{doc-logspace} - @deftypefn {Function File} {} logspace (@var{base}, @var{limit}) - @deftypefnx {Function File} {} logspace (@var{base}, @var{limit}, @var{n}) - Similar to @code{linspace} except that the values are logarithmically - spaced from - @tex - $10^{base}$ to $10^{limit}$. - @end tex - @ifnottex - 10^base to 10^limit. - @end ifnottex - - If @var{limit} is equal to - @tex - $\pi$, - @end tex - @ifnottex - pi, - @end ifnottex - the points are between - @tex - $10^{base}$ and $\pi$, - @end tex - @ifnottex - 10^base and pi, - @end ifnottex - @emph{not} - @tex - $10^{base}$ and $10^{\pi}$, - @end tex - @ifnottex - 10^base and 10^pi, - @end ifnottex - in order to be compatible with the corresponding @sc{matlab} - function. - If @var{n} is unspecified it defaults to 50. - - Also for compatibility with @sc{matlab}, return the second argument if - fewer than two values are requested. - @seealso{@ref{doc-linspace,,linspace}} - @end deftypefn - - @node Famous Matrices @section Famous Matrices --- 1769,1781 ---- @deftypefnx {Loadable Function} {} randperm (@var{n}, @var{m}) Return a row vector containing a random permutation of @code{1:@var{n}}. If @var{m} is supplied, return @var{m} permutations, ! one in each row of an @nospell{MxN} matrix. The complexity is O(M*N) in both time and memory. The randomization is performed using rand(). All permutations are equally likely. @seealso{@ref{doc-perms,,perms}} @end deftypefn @node Famous Matrices @section Famous Matrices *************** *** 1695,1726 **** @c hadamard scripts/special-matrix/hadamard.m @anchor{doc-hadamard} @deftypefn {Function File} {} hadamard (@var{n}) ! Construct a Hadamard matrix @var{Hn} of size @var{n}-by-@var{n}. The ! size @var{n} must be of the form @code{2 ^ @var{k} * @var{p}} in which ! @var{p} is one of 1, 12, 20 or 28. The returned matrix is normalized, ! meaning @code{Hn(:,1) == 1} and @code{Hn(1,:) == 1}. Some of the properties of Hadamard matrices are: @itemize @bullet @item ! @code{kron (@var{Hm}, @var{Hn})} is a Hadamard matrix of size ! @var{m}-by-@var{n}. @item ! @code{Hn * Hn' == @var{n} * eye (@var{n})}. @item ! The rows of @var{Hn} are orthogonal. @item ! @code{det (@var{A}) <= abs(det (@var{Hn}))} for all @var{A} with ! @code{abs (@var{A} (@var{i}, @var{j})) <= 1}. @item ! Multiply any row or column by -1 and still have a Hadamard matrix. @end itemize ! @end deftypefn --- 1784,1815 ---- @c hadamard scripts/special-matrix/hadamard.m @anchor{doc-hadamard} @deftypefn {Function File} {} hadamard (@var{n}) ! Construct a Hadamard matrix (@nospell{Hn}) of size @var{n}-by-@var{n}. The ! size @var{n} must be of the form @math{2^k * p} in which ! p is one of 1, 12, 20 or 28. The returned matrix is normalized, ! meaning @w{@code{Hn(:,1) == 1}} and @w{@code{Hn(1,:) == 1}}. Some of the properties of Hadamard matrices are: @itemize @bullet @item ! @code{kron (Hm, Hn)} is a Hadamard matrix of size @var{m}-by-@var{n}. @item ! @code{Hn * Hn' = @var{n} * eye (@var{n})}. @item ! The rows of @nospell{Hn} are orthogonal. @item ! @code{det (@var{A}) <= abs (det (Hn))} for all @var{A} with ! @w{@code{abs (@var{A}(i, j)) <= 1}}. @item ! Multiplying any row or column by -1 and the matrix will remain a Hadamard ! matrix. @end itemize ! @seealso{@ref{doc-compan,,compan}, @ref{doc-hankel,,hankel}, @ref{doc-toeplitz,,toeplitz}} @end deftypefn *************** *** 1728,1734 **** @anchor{doc-hankel} @deftypefn {Function File} {} hankel (@var{c}) @deftypefnx {Function File} {} hankel (@var{c}, @var{r}) ! Return the Hankel matrix constructed given the first column @var{c}, and (optionally) the last row @var{r}. If the last element of @var{c} is not the same as the first element of @var{r}, the last element of @var{c} is used. If the second argument is omitted, it is assumed to --- 1817,1823 ---- @anchor{doc-hankel} @deftypefn {Function File} {} hankel (@var{c}) @deftypefnx {Function File} {} hankel (@var{c}, @var{r}) ! Return the Hankel matrix constructed from the first column @var{c}, and (optionally) the last row @var{r}. If the last element of @var{c} is not the same as the first element of @var{r}, the last element of @var{c} is used. If the second argument is omitted, it is assumed to *************** *** 1751,1771 **** @end example @end ifnottex ! @seealso{@ref{doc-vander,,vander}, @ref{doc-sylvester_matrix,,sylvester_matrix}, @ref{doc-hilb,,hilb}, @ref{doc-invhilb,,invhilb}, @ref{doc-toeplitz,,toeplitz}} @end deftypefn @c hilb scripts/special-matrix/hilb.m @anchor{doc-hilb} @deftypefn {Function File} {} hilb (@var{n}) ! Return the Hilbert matrix of order @var{n}. The ! @tex ! $i,\,j$ ! @end tex ! @ifnottex ! i, j ! @end ifnottex ! element of a Hilbert matrix is defined as @tex $$ H (i, j) = {1 \over (i + j - 1)} --- 1840,1854 ---- @end example @end ifnottex ! @seealso{@ref{doc-hadamard,,hadamard}, @ref{doc-toeplitz,,toeplitz}} @end deftypefn @c hilb scripts/special-matrix/hilb.m @anchor{doc-hilb} @deftypefn {Function File} {} hilb (@var{n}) ! Return the Hilbert matrix of order @var{n}. The @math{i,j} element ! of a Hilbert matrix is defined as @tex $$ H (i, j) = {1 \over (i + j - 1)} *************** *** 1778,1784 **** @end example @end ifnottex ! @seealso{@ref{doc-hankel,,hankel}, @ref{doc-vander,,vander}, @ref{doc-sylvester_matrix,,sylvester_matrix}, @ref{doc-invhilb,,invhilb}, @ref{doc-toeplitz,,toeplitz}} @end deftypefn --- 1861,1882 ---- @end example @end ifnottex ! ! Hilbert matrices are close to being singular which make them difficult to ! invert with numerical routines. ! Comparing the condition number of a random matrix 5x5 matrix with that of ! a Hilbert matrix of order 5 reveals just how difficult the problem is. ! ! @example ! @group ! cond (rand (5)) ! @result{} 14.392 ! cond (hilb (5)) ! @result{} 4.7661e+05 ! @end group ! @end example ! ! @seealso{@ref{doc-invhilb,,invhilb}} @end deftypefn *************** *** 1835,1841 **** Compare this with the numerical calculation of @code{inverse (hilb (n))}, which suffers from the ill-conditioning of the Hilbert matrix, and the finite precision of your computer's floating point arithmetic. ! @seealso{@ref{doc-hilb,,hilb}, @ref{doc-hankel,,hankel}, @ref{doc-vander,,vander}, @ref{doc-sylvester_matrix,,sylvester_matrix}, @ref{doc-toeplitz,,toeplitz}} @end deftypefn --- 1933,1939 ---- Compare this with the numerical calculation of @code{inverse (hilb (n))}, which suffers from the ill-conditioning of the Hilbert matrix, and the finite precision of your computer's floating point arithmetic. ! @seealso{@ref{doc-hilb,,hilb}} @end deftypefn *************** *** 1843,1851 **** @anchor{doc-magic} @deftypefn {Function File} {} magic (@var{n}) ! Create an @var{n}-by-@var{n} magic square. Note that @code{magic ! (@var{2})} is undefined since there is no 2-by-2 magic square. @end deftypefn --- 1941,1951 ---- @anchor{doc-magic} @deftypefn {Function File} {} magic (@var{n}) ! Create an @var{n}-by-@var{n} magic square. A magic square is an arrangement ! of the integers @code{1:n^2} such that the row sums, column sums, and ! diagonal sums are all equal to the same value. + Note: @var{n} must be greater than 2 for the magic square to exist. @end deftypefn *************** *** 1853,1869 **** @anchor{doc-pascal} @deftypefn {Function File} {} pascal (@var{n}) @deftypefnx {Function File} {} pascal (@var{n}, @var{t}) ! Return the Pascal matrix of order @var{n} if @code{@var{t} = 0}. ! @var{t} defaults to 0. Return lower triangular Cholesky@tie{}factor of ! the Pascal matrix if @code{@var{t} = 1}. This matrix is its own ! inverse, that is @code{pascal (@var{n}, 1) ^ 2 == eye (@var{n})}. ! If @code{@var{t} = -1}, return its absolute value. This is the ! standard Pascal triangle as a lower-triangular matrix. ! If @code{@var{t} = 2}, return a transposed and permuted version of ! @code{pascal (@var{n}, 1)}, which is the cube-root of the identity ! matrix. That is @code{pascal (@var{n}, 2) ^ 3 == eye (@var{n})}. ! @seealso{@ref{doc-hankel,,hankel}, @ref{doc-vander,,vander}, @ref{doc-sylvester_matrix,,sylvester_matrix}, @ref{doc-hilb,,hilb}, @ref{doc-invhilb,,invhilb}, @ref{doc-toeplitz,,toeplitz}, @ref{doc-hadamard,,hadamard}, @ref{doc-wilkinson,,wilkinson}, @ref{doc-compan,,compan}, @ref{doc-rosser,,rosser}} @end deftypefn --- 1953,1969 ---- @anchor{doc-pascal} @deftypefn {Function File} {} pascal (@var{n}) @deftypefnx {Function File} {} pascal (@var{n}, @var{t}) ! Return the Pascal matrix of order @var{n} if @code{@var{t} = 0}. @var{t} ! defaults to 0. Return the pseudo-lower triangular Cholesky@tie{}factor of ! the Pascal matrix if @code{@var{t} = 1} (The sign of some columns may be ! negative). This matrix is its own inverse, that is @code{pascal (@var{n}, ! 1) ^ 2 == eye (@var{n})}. If @code{@var{t} = -1}, return the true ! Cholesky@tie{}factor with strictly positive values on the diagonal. If ! @code{@var{t} = 2}, return a transposed and permuted version of @code{pascal ! (@var{n}, 1)}, which is the cube root of the identity matrix. That is, ! @code{pascal (@var{n}, 2) ^ 3 == eye (@var{n})}. ! @seealso{@ref{doc-chol,,chol}} @end deftypefn *************** *** 1873,1879 **** Return the Rosser matrix. This is a difficult test case used to evaluate eigenvalue algorithms. ! @seealso{@ref{doc-hankel,,hankel}, @ref{doc-vander,,vander}, @ref{doc-sylvester_matrix,,sylvester_matrix}, @ref{doc-hilb,,hilb}, @ref{doc-invhilb,,invhilb}, @ref{doc-toeplitz,,toeplitz}, @ref{doc-hadamard,,hadamard}, @ref{doc-wilkinson,,wilkinson}, @ref{doc-compan,,compan}, @ref{doc-pascal,,pascal}} @end deftypefn --- 1973,1979 ---- Return the Rosser matrix. This is a difficult test case used to evaluate eigenvalue algorithms. ! @seealso{@ref{doc-wilkinson,,wilkinson}, @ref{doc-eig,,eig}} @end deftypefn *************** *** 1885,1893 **** $n = 2^k$. @end tex @ifnottex ! n = 2^k. @end ifnottex ! @seealso{@ref{doc-hankel,,hankel}, @ref{doc-vander,,vander}, @ref{doc-hilb,,hilb}, @ref{doc-invhilb,,invhilb}, @ref{doc-toeplitz,,toeplitz}} @end deftypefn --- 1985,1994 ---- $n = 2^k$. @end tex @ifnottex ! n = 2^@var{k}. @end ifnottex ! ! @seealso{@ref{doc-toeplitz,,toeplitz}, @ref{doc-hankel,,hankel}} @end deftypefn *************** *** 1895,1903 **** @anchor{doc-toeplitz} @deftypefn {Function File} {} toeplitz (@var{c}) @deftypefnx {Function File} {} toeplitz (@var{c}, @var{r}) ! Return the Toeplitz matrix constructed given the first column @var{c}, ! and (optionally) the first row @var{r}. If the first element of @var{c} ! is not the same as the first element of @var{r}, the first element of @var{c} is used. If the second argument is omitted, the first row is taken to be the same as the first column. --- 1996,2004 ---- @anchor{doc-toeplitz} @deftypefn {Function File} {} toeplitz (@var{c}) @deftypefnx {Function File} {} toeplitz (@var{c}, @var{r}) ! Return the Toeplitz matrix constructed from the first column @var{c}, ! and (optionally) the first row @var{r}. If the first element of @var{r} ! is not the same as the first element of @var{c}, the first element of @var{c} is used. If the second argument is omitted, the first row is taken to be the same as the first column. *************** *** 1926,1932 **** @end example @end ifnottex ! @seealso{@ref{doc-hankel,,hankel}, @ref{doc-vander,,vander}, @ref{doc-sylvester_matrix,,sylvester_matrix}, @ref{doc-hilb,,hilb}, @ref{doc-invhilb,,invhilb}} @end deftypefn --- 2027,2033 ---- @end example @end ifnottex ! @seealso{@ref{doc-hankel,,hankel}} @end deftypefn *************** *** 1961,1967 **** @end example @end ifnottex ! @seealso{@ref{doc-hankel,,hankel}, @ref{doc-sylvester_matrix,,sylvester_matrix}, @ref{doc-hilb,,hilb}, @ref{doc-invhilb,,invhilb}, @ref{doc-toeplitz,,toeplitz}} @end deftypefn --- 2062,2068 ---- @end example @end ifnottex ! @seealso{@ref{doc-polyfit,,polyfit}} @end deftypefn *************** *** 1970,1977 **** @deftypefn {Function File} {} wilkinson (@var{n}) Return the Wilkinson matrix of order @var{n}. Wilkinson matrices are symmetric and tridiagonal with pairs of nearly, but not exactly, equal ! eigenvalues. ! @seealso{@ref{doc-hankel,,hankel}, @ref{doc-vander,,vander}, @ref{doc-sylvester_matrix,,sylvester_matrix}, @ref{doc-hilb,,hilb}, @ref{doc-invhilb,,invhilb}, @ref{doc-toeplitz,,toeplitz}, @ref{doc-hadamard,,hadamard}, @ref{doc-rosser,,rosser}, @ref{doc-compan,,compan}, @ref{doc-pascal,,pascal}} @end deftypefn --- 2071,2079 ---- @deftypefn {Function File} {} wilkinson (@var{n}) Return the Wilkinson matrix of order @var{n}. Wilkinson matrices are symmetric and tridiagonal with pairs of nearly, but not exactly, equal ! eigenvalues. They are useful in testing the behavior and performance ! of eigenvalue solvers. ! @seealso{@ref{doc-rosser,,rosser}, @ref{doc-eig,,eig}} @end deftypefn diff -cNr octave-3.4.0/doc/interpreter/matrix.txi octave-3.4.1/doc/interpreter/matrix.txi *** octave-3.4.0/doc/interpreter/matrix.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/matrix.txi 2011-06-15 11:13:48.000000000 -0400 *************** *** 67,74 **** @DOCSTRING(xor) - @DOCSTRING(is_duplicate_entry) - @DOCSTRING(diff) @DOCSTRING(isinf) --- 67,72 ---- *************** *** 77,87 **** @DOCSTRING(isfinite) @DOCSTRING(find) @DOCSTRING(lookup) - - @DOCSTRING(common_size) @node Rearranging Matrices @section Rearranging Matrices --- 75,85 ---- @DOCSTRING(isfinite) + @DOCSTRING(common_size) + @DOCSTRING(find) @DOCSTRING(lookup) @node Rearranging Matrices @section Rearranging Matrices *************** *** 112,147 **** @DOCSTRING(circshift) - @DOCSTRING(shiftdim) - @DOCSTRING(shift) @DOCSTRING(sort) @DOCSTRING(sortrows) @DOCSTRING(issorted) ! Since the @code{sort} function does not allow sort keys to be specified, ! it can't be used to order the rows of a matrix according to the values ! of the elements in various columns@footnote{For example, to first sort ! based on the values in column 1, and then, for any values that are ! repeated in column 1, sort based on the values found in column 2, etc.} ! in a single call. Using the second output, however, it is possible to ! sort all rows based on the values in a given column. Here's an example ! that sorts the rows of a matrix based on the values in the second ! column. ! ! @example ! @group ! a = [1, 2; 2, 3; 3, 1]; ! [s, i] = sort (a (:, 2)); ! a (i, :) ! @result{} 3 1 ! 1 2 ! 2 3 ! @end group ! @end example @anchor{doc-triu} @DOCSTRING(tril) --- 110,126 ---- @DOCSTRING(circshift) @DOCSTRING(shift) + @DOCSTRING(shiftdim) + @DOCSTRING(sort) @DOCSTRING(sortrows) @DOCSTRING(issorted) ! @DOCSTRING(nth_element) @anchor{doc-triu} @DOCSTRING(tril) *************** *** 178,183 **** --- 157,170 ---- @DOCSTRING(repelems) + The functions @code{linspace} and @code{logspace} make it very easy to + create vectors with evenly or logarithmically spaced elements. + @xref{Ranges}. + + @DOCSTRING(linspace) + + @DOCSTRING(logspace) + @DOCSTRING(rand) @DOCSTRING(randi) *************** *** 248,261 **** @DOCSTRING(randperm) - The functions @code{linspace} and @code{logspace} make it very easy to - create vectors with evenly or logarithmically spaced elements. - @xref{Ranges}. - - @DOCSTRING(linspace) - - @DOCSTRING(logspace) - @node Famous Matrices @section Famous Matrices --- 235,240 ---- diff -cNr octave-3.4.0/doc/interpreter/mesh.eps octave-3.4.1/doc/interpreter/mesh.eps *** octave-3.4.0/doc/interpreter/mesh.eps 2011-02-08 05:11:59.000000000 -0500 --- octave-3.4.1/doc/interpreter/mesh.eps 2011-06-15 11:39:45.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: mesh.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:11:59 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: mesh.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:45 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:11:59 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:45 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/mesh.pdf and octave-3.4.1/doc/interpreter/mesh.pdf differ Binary files octave-3.4.0/doc/interpreter/mesh.png and octave-3.4.1/doc/interpreter/mesh.png differ diff -cNr octave-3.4.0/doc/interpreter/nonlin.texi octave-3.4.1/doc/interpreter/nonlin.texi *** octave-3.4.0/doc/interpreter/nonlin.texi 2011-02-08 05:11:31.000000000 -0500 --- octave-3.4.1/doc/interpreter/nonlin.texi 2011-06-15 11:39:12.000000000 -0400 *************** *** 23,28 **** --- 23,36 ---- @cindex nonlinear equations @cindex equations, nonlinear + @menu + * Solvers:: + * Minimizers:: + @end menu + + @node Solvers + @section Solvers + Octave can solve sets of nonlinear equations of the form @tex $$ *************** *** 38,46 **** @end ifnottex @noindent ! using the function @code{fsolve}, which is based on the @sc{Minpack} subroutine @code{hybrd}. This is an iterative technique so a starting ! point will have to be provided. This also has the consequence that convergence is not guaranteed even if a solution exists. @c fsolve scripts/optimization/fsolve.m --- 46,54 ---- @end ifnottex @noindent ! using the function @code{fsolve}, which is based on the @sc{minpack} subroutine @code{hybrd}. This is an iterative technique so a starting ! point must be provided. This also has the consequence that convergence is not guaranteed even if a solution exists. @c fsolve scripts/optimization/fsolve.m *************** *** 154,160 **** @end deftypefn ! Here is a complete example. To solve the set of equations @tex $$ \eqalign{-2x^2 + 3xy + 4\sin(y) - 6 &= 0\cr --- 162,168 ---- @end deftypefn ! The following is a complete example. To solve the set of equations @tex $$ \eqalign{-2x^2 + 3xy + 4\sin(y) - 6 &= 0\cr *************** *** 216,231 **** @noindent A value of @code{info = 1} indicates that the solution has converged. - The function @code{perror} may be used to print English messages - corresponding to the numeric error codes. For example: - - @example - @group - perror ("fsolve", 1) - @print{} solution converged to requested tolerance - @end group - @end example - When no Jacobian is supplied (as in the example above) it is approximated numerically. This requires more function evaluations, and hence is less efficient. In the example above we could compute the Jacobian --- 224,229 ---- *************** *** 281,290 **** @deftypefnx {Function File} {[@var{x}, @var{fval}, @var{info}, @var{output}] =} fzero (@dots{}) Find a zero of a univariate function. ! @var{fun} should be a function handle or name. @var{x0} should be a ! two-element vector specifying two points which bracket a zero. In ! other words, there must be a change in sign of the function between ! @var{x0}(1) and @var{x0}(2). More mathematically, the following must hold @example sign (@var{fun}(@var{x0}(1))) * sign (@var{fun}(@var{x0}(2))) <= 0 --- 279,290 ---- @deftypefnx {Function File} {[@var{x}, @var{fval}, @var{info}, @var{output}] =} fzero (@dots{}) Find a zero of a univariate function. ! @var{fun} is a function handle, inline function, or string ! containing the name of the function to evaluate. ! @var{x0} should be a two-element vector specifying two points which ! bracket a zero. In other words, there must be a change in sign of the ! function between @var{x0}(1) and @var{x0}(2). More mathematically, the ! following must hold @example sign (@var{fun}(@var{x0}(1))) * sign (@var{fun}(@var{x0}(2))) <= 0 *************** *** 336,338 **** --- 336,449 ---- @seealso{@ref{doc-optimset,,optimset}, @ref{doc-fsolve,,fsolve}} @end deftypefn + + @node Minimizers + @section Minimizers + @cindex local minimum + @cindex finding minimums + + Often it is useful to find the minimum value of a function rather than just + the zeroes where it crosses the x-axis. @code{fminbnd} is designed for the + simpler, but very common, case of a univariate function where the interval + to search is bounded. For unbounded minimization of a function with + potentially many variables use @code{fminunc}. @xref{Optimization}, for + minimization with the presence of constraint functions. Note that searches + can be made for maxima by simply inverting the objective function + @tex + ($F_{max} = -F_{min}$). + @end tex + @ifnottex + (@code{Fto_max = -Fto_min}). + @end ifnottex + + @c fminbnd scripts/optimization/fminbnd.m + @anchor{doc-fminbnd} + @deftypefn {Function File} {[@var{x}, @var{fval}, @var{info}, @var{output}] =} fminbnd (@var{fun}, @var{a}, @var{b}, @var{options}) + Find a minimum point of a univariate function. @var{fun} should be a + function + handle or name. @var{a}, @var{b} specify a starting interval. @var{options} + is a + structure specifying additional options. Currently, @code{fminbnd} + recognizes these options: @code{"FunValCheck"}, @code{"OutputFcn"}, + @code{"TolX"}, @code{"MaxIter"}, @code{"MaxFunEvals"}. + For description of these options, see @ref{doc-optimset,,optimset}. + + On exit, the function returns @var{x}, the approximate minimum point + and @var{fval}, the function value thereof. + @var{info} is an exit flag that can have these values: + + @itemize + @item 1 + The algorithm converged to a solution. + + @item 0 + Maximum number of iterations or function evaluations has been exhausted. + + @item -1 + The algorithm has been terminated from user output function. + @end itemize + @seealso{@ref{doc-optimset,,optimset}, @ref{doc-fzero,,fzero}, @ref{doc-fminunc,,fminunc}} + @end deftypefn + + + @c fminunc scripts/optimization/fminunc.m + @anchor{doc-fminunc} + @deftypefn {Function File} {} fminunc (@var{fcn}, @var{x0}) + @deftypefnx {Function File} {} fminunc (@var{fcn}, @var{x0}, @var{options}) + @deftypefnx {Function File} {[@var{x}, @var{fvec}, @var{info}, @var{output}, @var{grad}, @var{hess}] =} fminunc (@var{fcn}, @dots{}) + Solve an unconstrained optimization problem defined by the function + @var{fcn}. + @var{fcn} should accepts a vector (array) defining the unknown variables, + and return the objective function value, optionally with gradient. + In other words, this function attempts to determine a vector @var{x} such + that @code{@var{fcn} (@var{x})} is a local minimum. + @var{x0} determines a starting guess. The shape of @var{x0} is preserved + in all calls to @var{fcn}, but otherwise is treated as a column vector. + @var{options} is a structure specifying additional options. + Currently, @code{fminunc} recognizes these options: + @code{"FunValCheck"}, @code{"OutputFcn"}, @code{"TolX"}, + @code{"TolFun"}, @code{"MaxIter"}, @code{"MaxFunEvals"}, + @code{"GradObj"}, @code{"FinDiffType"}, + @code{"TypicalX"}, @code{"AutoScaling"}. + + If @code{"GradObj"} is @code{"on"}, it specifies that @var{fcn}, + called with 2 output arguments, also returns the Jacobian matrix + of right-hand sides at the requested point. @code{"TolX"} specifies + the termination tolerance in the unknown variables, while + @code{"TolFun"} is a tolerance for equations. Default is @code{1e-7} + for both @code{"TolX"} and @code{"TolFun"}. + + For description of the other options, see @code{optimset}. + + On return, @var{fval} contains the value of the function @var{fcn} + evaluated at @var{x}, and @var{info} may be one of the following values: + + @table @asis + @item 1 + Converged to a solution point. Relative gradient error is less than + specified + by TolFun. + + @item 2 + Last relative step size was less that TolX. + + @item 3 + Last relative decrease in function value was less than TolF. + + @item 0 + Iteration limit exceeded. + + @item -3 + The trust region radius became excessively small. + @end table + + Optionally, fminunc can also yield a structure with convergence statistics + (@var{output}), the output gradient (@var{grad}) and approximate Hessian + (@var{hess}). + + Note: If you only have a single nonlinear equation of one variable, using + @code{fminbnd} is usually a much better idea. + @seealso{@ref{doc-fminbnd,,fminbnd}, @ref{doc-optimset,,optimset}} + @end deftypefn + + diff -cNr octave-3.4.0/doc/interpreter/nonlin.txi octave-3.4.1/doc/interpreter/nonlin.txi *** octave-3.4.0/doc/interpreter/nonlin.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/nonlin.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 21,26 **** --- 21,34 ---- @cindex nonlinear equations @cindex equations, nonlinear + @menu + * Solvers:: + * Minimizers:: + @end menu + + @node Solvers + @section Solvers + Octave can solve sets of nonlinear equations of the form @tex $$ *************** *** 36,49 **** @end ifnottex @noindent ! using the function @code{fsolve}, which is based on the @sc{Minpack} subroutine @code{hybrd}. This is an iterative technique so a starting ! point will have to be provided. This also has the consequence that convergence is not guaranteed even if a solution exists. @DOCSTRING(fsolve) ! Here is a complete example. To solve the set of equations @tex $$ \eqalign{-2x^2 + 3xy + 4\sin(y) - 6 &= 0\cr --- 44,57 ---- @end ifnottex @noindent ! using the function @code{fsolve}, which is based on the @sc{minpack} subroutine @code{hybrd}. This is an iterative technique so a starting ! point must be provided. This also has the consequence that convergence is not guaranteed even if a solution exists. @DOCSTRING(fsolve) ! The following is a complete example. To solve the set of equations @tex $$ \eqalign{-2x^2 + 3xy + 4\sin(y) - 6 &= 0\cr *************** *** 105,120 **** @noindent A value of @code{info = 1} indicates that the solution has converged. - The function @code{perror} may be used to print English messages - corresponding to the numeric error codes. For example: - - @example - @group - perror ("fsolve", 1) - @print{} solution converged to requested tolerance - @end group - @end example - When no Jacobian is supplied (as in the example above) it is approximated numerically. This requires more function evaluations, and hence is less efficient. In the example above we could compute the Jacobian --- 113,118 ---- *************** *** 164,166 **** --- 162,188 ---- which gives the same solution as before. @DOCSTRING(fzero) + + @node Minimizers + @section Minimizers + @cindex local minimum + @cindex finding minimums + + Often it is useful to find the minimum value of a function rather than just + the zeroes where it crosses the x-axis. @code{fminbnd} is designed for the + simpler, but very common, case of a univariate function where the interval + to search is bounded. For unbounded minimization of a function with + potentially many variables use @code{fminunc}. @xref{Optimization}, for + minimization with the presence of constraint functions. Note that searches + can be made for maxima by simply inverting the objective function + @tex + ($F_{max} = -F_{min}$). + @end tex + @ifnottex + (@code{Fto_max = -Fto_min}). + @end ifnottex + + @DOCSTRING(fminbnd) + + @DOCSTRING(fminunc) + diff -cNr octave-3.4.0/doc/interpreter/numbers.texi octave-3.4.1/doc/interpreter/numbers.texi *** octave-3.4.0/doc/interpreter/numbers.texi 2011-02-08 05:11:31.000000000 -0500 --- octave-3.4.1/doc/interpreter/numbers.texi 2011-06-15 11:39:12.000000000 -0400 *************** *** 955,961 **** @deftypefnx {Built-in Function} {} bitmax ("double") @deftypefnx {Built-in Function} {} bitmax ("single") Return the largest integer that can be represented within a floating point ! value. The default class is "double", but "single" is a valid option. On IEEE-754 compatible systems, @code{bitmax} is @w{@math{2^{53} - 1}}. @end deftypefn --- 955,961 ---- @deftypefnx {Built-in Function} {} bitmax ("double") @deftypefnx {Built-in Function} {} bitmax ("single") Return the largest integer that can be represented within a floating point ! value. The default class is "double", but "single" is a valid option. On IEEE-754 compatible systems, @code{bitmax} is @w{@math{2^{53} - 1}}. @end deftypefn *************** *** 1043,1050 **** bitshift (10, [-2, -1, 0, 1, 2]) @result{} 2 5 10 20 40 @c FIXME -- restore this example when third arg is allowed to be an array. ! @c ! @c @c bitshift ([1, 10], 2, [3,4]) @c @result{} 4 8 @end group --- 1043,1050 ---- bitshift (10, [-2, -1, 0, 1, 2]) @result{} 2 5 10 20 40 @c FIXME -- restore this example when third arg is allowed to be an array. ! @c ! @c @c bitshift ([1, 10], 2, [3,4]) @c @result{} 4 8 @end group *************** *** 1261,1266 **** --- 1261,1275 ---- @end deftypefn + @c isfloat src/data.cc + @anchor{doc-isfloat} + @deftypefn {Built-in Function} {} isfloat (@var{x}) + Return true if @var{x} is a floating-point numeric object. + Objects of class double or single are floating-point objects. + @seealso{@ref{doc-isinteger,,isinteger}, @ref{doc-ischar,,ischar}, @ref{doc-islogical,,islogical}, @ref{doc-isnumeric,,isnumeric}, @ref{doc-isa,,isa}} + @end deftypefn + + @c isreal src/data.cc @anchor{doc-isreal} @deftypefn {Built-in Function} {} isreal (@var{x}) *************** *** 1271,1285 **** @end deftypefn - @c isfloat src/data.cc - @anchor{doc-isfloat} - @deftypefn {Built-in Function} {} isfloat (@var{x}) - Return true if @var{x} is a floating-point numeric object. - Objects of class double or single are floating-point objects. - @seealso{@ref{doc-isinteger,,isinteger}, @ref{doc-ischar,,ischar}, @ref{doc-islogical,,islogical}, @ref{doc-isnumeric,,isnumeric}, @ref{doc-isa,,isa}} - @end deftypefn - - @c iscomplex src/data.cc @anchor{doc-iscomplex} @deftypefn {Built-in Function} {} iscomplex (@var{x}) --- 1280,1285 ---- *************** *** 1309,1314 **** --- 1309,1330 ---- @end deftypefn + @c isrow scripts/general/isrow.m + @anchor{doc-isrow} + @deftypefn {Function File} {} isrow (@var{x}) + Return true if @var{x} is a row vector. + @seealso{@ref{doc-iscolumn,,iscolumn}, @ref{doc-isscalar,,isscalar}, @ref{doc-isvector,,isvector}, @ref{doc-ismatrix,,ismatrix}} + @end deftypefn + + + @c iscolumn scripts/general/iscolumn.m + @anchor{doc-iscolumn} + @deftypefn {Function File} {} iscolumn (@var{x}) + Return true if @var{x} is a column vector. + @seealso{@ref{doc-isrow,,isrow}, @ref{doc-isscalar,,isscalar}, @ref{doc-isvector,,isvector}, @ref{doc-ismatrix,,ismatrix}} + @end deftypefn + + @c isscalar scripts/general/isscalar.m @anchor{doc-isscalar} @deftypefn {Function File} {} isscalar (@var{x}) diff -cNr octave-3.4.0/doc/interpreter/numbers.txi octave-3.4.1/doc/interpreter/numbers.txi *** octave-3.4.0/doc/interpreter/numbers.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/numbers.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 809,824 **** @DOCSTRING(isnumeric) - @DOCSTRING(isreal) - @DOCSTRING(isfloat) @DOCSTRING(iscomplex) @DOCSTRING(ismatrix) @DOCSTRING(isvector) @DOCSTRING(isscalar) @DOCSTRING(issquare) --- 809,828 ---- @DOCSTRING(isnumeric) @DOCSTRING(isfloat) + @DOCSTRING(isreal) + @DOCSTRING(iscomplex) @DOCSTRING(ismatrix) @DOCSTRING(isvector) + @DOCSTRING(isrow) + + @DOCSTRING(iscolumn) + @DOCSTRING(isscalar) @DOCSTRING(issquare) Binary files octave-3.4.0/doc/interpreter/octave.pdf and octave-3.4.1/doc/interpreter/octave.pdf differ diff -cNr octave-3.4.0/doc/interpreter/octave.texi octave-3.4.1/doc/interpreter/octave.texi *** octave-3.4.0/doc/interpreter/octave.texi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/octave.texi 2011-06-15 11:11:27.000000000 -0400 *************** *** 209,215 **** * Trouble:: If you have trouble installing Octave. * Installation:: How to configure, compile and install Octave. * Emacs Octave Support:: ! @c * Grammar:: * Copying:: The GNU General Public License. * Concept Index:: An item for each concept. * Function Index:: An item for each documented function. --- 209,215 ---- * Trouble:: If you have trouble installing Octave. * Installation:: How to configure, compile and install Octave. * Emacs Octave Support:: ! * Grammar and Parser:: * Copying:: The GNU General Public License. * Concept Index:: An item for each concept. * Function Index:: An item for each documented function. *************** *** 326,336 **** Data Containers ! * Data Structures:: * Cell Arrays:: * Comma Separated Lists:: ! Data Structures * Basic Usage and Examples:: * Structure Arrays:: --- 326,336 ---- Data Containers ! * Structures:: * Cell Arrays:: * Comma Separated Lists:: ! Structures * Basic Usage and Examples:: * Structure Arrays:: *************** *** 443,448 **** --- 443,449 ---- * Raising Errors:: * Catching Errors:: + * Recovering From Errors:: Handling Warnings *************** *** 461,466 **** --- 462,468 ---- * Basic Input and Output:: * C-Style I/O Functions:: + * GUI Dialogs for I/O:: Basic Input and Output *************** *** 509,515 **** High-Level Plotting * Two-Dimensional Plots:: ! * Three-Dimensional Plotting:: * Plot Annotations:: * Multiple Plots on One Page:: * Multiple Plot Windows:: --- 511,517 ---- High-Level Plotting * Two-Dimensional Plots:: ! * Three-Dimensional Plots:: * Plot Annotations:: * Multiple Plots on One Page:: * Multiple Plot Windows:: *************** *** 519,528 **** Two-Dimensional Plots * Two-dimensional Function Plotting:: ! Three-Dimensional Plotting * Three-dimensional Function Plotting:: * Three-dimensional Geometric Shapes:: --- 521,532 ---- Two-Dimensional Plots + * Axis Configuration:: * Two-dimensional Function Plotting:: ! Three-Dimensional Plots + * Aspect Ratio:: * Three-dimensional Function Plotting:: * Three-dimensional Geometric Shapes:: *************** *** 551,556 **** --- 555,561 ---- * Line Styles:: * Marker Styles:: * Callbacks:: + * Application-defined Data * Object Groups:: * Graphics Toolkits:: *************** *** 600,605 **** --- 605,615 ---- * Functions of a Matrix:: * Specialized Solvers:: + Nonlinear Equations + + * Solvers:: + * Minimizers:: + Diagonal and Permutation Matrices * Basic Usage:: Creation and Manipulation of Diagonal and Permutation Matrices *************** *** 647,654 **** Numerical Integration * Functions of One Variable:: - * Functions of Multiple Variables:: * Orthogonal Collocation:: Differential Equations --- 657,664 ---- Numerical Integration * Functions of One Variable:: * Orthogonal Collocation:: + * Functions of Multiple Variables:: Differential Equations *************** *** 844,849 **** --- 854,865 ---- * Using Octave Mode:: * Running Octave from Within Emacs:: * Using the Emacs Info Reader for Octave:: + + Grammar and Parser + + * Keywords:: + * Parser:: + @end detailmenu @end menu *************** *** 902,908 **** @include bugs.texi @include install.texi @include emacs.texi ! @c @include grammar.texi @include gpl.texi @c ------------------------------------------------------------------------ --- 918,924 ---- @include bugs.texi @include install.texi @include emacs.texi ! @include grammar.texi @include gpl.texi @c ------------------------------------------------------------------------ diff -cNr octave-3.4.0/doc/interpreter/oop.texi octave-3.4.1/doc/interpreter/oop.texi *** octave-3.4.0/doc/interpreter/oop.texi 2011-02-08 05:11:31.000000000 -0500 --- octave-3.4.1/doc/interpreter/oop.texi 2011-06-15 11:39:12.000000000 -0400 *************** *** 486,493 **** idx.type = "()"; idx.subs = @{":", 1:2@}; subsref(val, idx) ! @result{} [ 8 1 ! 3 5 4 9 ] @end group @end example --- 486,493 ---- idx.type = "()"; idx.subs = @{":", 1:2@}; subsref(val, idx) ! @result{} [ 8 1 ! 3 5 4 9 ] @end group @end example *************** *** 583,588 **** --- 583,598 ---- @end deftypefn + @c optimize_subsasgn_calls src/ov-usr-fcn.cc + @anchor{doc-optimize_subsasgn_calls} + @deftypefn {Built-in Function} {@var{val} =} optimize_subsasgn_calls () + @deftypefnx {Built-in Function} {@var{old_val} =} optimize_subsasgn_calls (@var{new_val}) + Query or set the internal flag for subsasgn method call optimizations. + If true, Octave will attempt to eliminate the redundant copying when calling + subsasgn method of a user-defined class. + @end deftypefn + + Note that the @code{subsref} and @code{subsasgn} methods always receive the whole index chain, while they usually handle only the first element. It is the responsibility of these methods to handle the rest of the chain (if needed), *************** *** 590,600 **** If you wish to use the @code{end} keyword in subscripted expressions of an object, then the user needs to define the @code{end} method for ! the class. ! ! ! ! For example the @code{end} method for our polynomial class might look like @example @group --- 600,607 ---- If you wish to use the @code{end} keyword in subscripted expressions of an object, then the user needs to define the @code{end} method for ! the class. For example, the @code{end} method for our polynomial class might ! look like @example @group *************** *** 615,622 **** @noindent which is a fairly generic @code{end} method that has a behavior similar to ! the @code{end} keyword for Octave Array classes. It can then be used for ! example like @example @group --- 622,629 ---- @noindent which is a fairly generic @code{end} method that has a behavior similar to ! the @code{end} keyword for Octave Array classes. It can then be used as ! follows: @example @group diff -cNr octave-3.4.0/doc/interpreter/oop.txi octave-3.4.1/doc/interpreter/oop.txi *** octave-3.4.0/doc/interpreter/oop.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/oop.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 292,297 **** --- 292,299 ---- @DOCSTRING(subsasgn) + @DOCSTRING(optimize_subsasgn_calls) + Note that the @code{subsref} and @code{subsasgn} methods always receive the whole index chain, while they usually handle only the first element. It is the responsibility of these methods to handle the rest of the chain (if needed), *************** *** 299,309 **** If you wish to use the @code{end} keyword in subscripted expressions of an object, then the user needs to define the @code{end} method for ! the class. ! ! @DOCSTRING(end) ! ! For example the @code{end} method for our polynomial class might look like @example @group --- 301,308 ---- If you wish to use the @code{end} keyword in subscripted expressions of an object, then the user needs to define the @code{end} method for ! the class. For example, the @code{end} method for our polynomial class might ! look like @example @group *************** *** 313,320 **** @noindent which is a fairly generic @code{end} method that has a behavior similar to ! the @code{end} keyword for Octave Array classes. It can then be used for ! example like @example @group --- 312,319 ---- @noindent which is a fairly generic @code{end} method that has a behavior similar to ! the @code{end} keyword for Octave Array classes. It can then be used as ! follows: @example @group diff -cNr octave-3.4.0/doc/interpreter/optim.texi octave-3.4.1/doc/interpreter/optim.texi *** octave-3.4.0/doc/interpreter/optim.texi 2011-02-08 05:11:31.000000000 -0500 --- octave-3.4.1/doc/interpreter/optim.texi 2011-06-15 11:39:13.000000000 -0400 *************** *** 397,410 **** --- 397,415 ---- @table @asis @item 180 (@w{@code{LPX_OPT}}) Solution is optimal. + @item 181 (@w{@code{LPX_FEAS}}) Solution is feasible. + @item 182 (@w{@code{LPX_INFEAS}}) Solution is infeasible. + @item 183 (@w{@code{LPX_NOFEAS}}) Problem has no feasible solution. + @item 184 (@w{@code{LPX_UNBND}}) Problem has no unbounded solution. + @item 185 (@w{@code{LPX_UNDEF}}) Solution status is undefined. @end table *************** *** 412,417 **** --- 417,423 ---- @table @asis @item 150 (@w{@code{LPX_T_UNDEF}}) The interior point method is undefined. + @item 151 (@w{@code{LPX_T_OPT}}) The interior point method is optimal. @end table *************** *** 419,428 **** --- 425,437 ---- @table @asis @item 170 (@w{@code{LPX_I_UNDEF}}) The status is undefined. + @item 171 (@w{@code{LPX_I_OPT}}) The solution is integer optimal. + @item 172 (@w{@code{LPX_I_FEAS}}) Solution integer feasible but its optimality has not been proven + @item 173 (@w{@code{LPX_I_NOFEAS}}) No integer feasible solution. @end table *************** *** 433,456 **** --- 442,475 ---- @table @asis @item 204 (@w{@code{LPX_E_FAULT}}) Unable to start the search. + @item 205 (@w{@code{LPX_E_OBJLL}}) Objective function lower limit reached. + @item 206 (@w{@code{LPX_E_OBJUL}}) Objective function upper limit reached. + @item 207 (@w{@code{LPX_E_ITLIM}}) Iterations limit exhausted. + @item 208 (@w{@code{LPX_E_TMLIM}}) Time limit exhausted. + @item 209 (@w{@code{LPX_E_NOFEAS}}) No feasible solution. + @item 210 (@w{@code{LPX_E_INSTAB}}) Numerical instability. + @item 211 (@w{@code{LPX_E_SING}}) Problems with basis matrix. + @item 212 (@w{@code{LPX_E_NOCONV}}) No convergence (interior). + @item 213 (@w{@code{LPX_E_NOPFS}}) No primal feasible solution (LP presolver). + @item 214 (@w{@code{LPX_E_NODFS}}) No dual feasible solution (LP presolver). @end table diff -cNr octave-3.4.0/doc/interpreter/package.texi octave-3.4.1/doc/interpreter/package.texi *** octave-3.4.0/doc/interpreter/package.texi 2011-02-08 05:11:32.000000000 -0500 --- octave-3.4.1/doc/interpreter/package.texi 2011-06-15 11:39:13.000000000 -0400 *************** *** 152,157 **** --- 152,161 ---- A global installation is forced, even if the user doesn't normally have system privileges + @item -forge + Install a package directly from the Octave-Forge repository. This + requires an internet connection and the cURL library. + @item -verbose The package manager will print the output of all of the commands that are performed. *************** *** 211,216 **** --- 215,223 ---- splits the list of installed packages into those who are installed by the current user, and those installed by the system administrator. + The option '-forge' lists packages available at the Octave-Forge repository. + This requires an internet connection and the cURL library. + @item describe Show a short description of the named installed packages, with the option '-verbose' also list functions provided by the package, e.g.: diff -cNr octave-3.4.0/doc/interpreter/plot3.eps octave-3.4.1/doc/interpreter/plot3.eps *** octave-3.4.0/doc/interpreter/plot3.eps 2011-02-08 05:11:59.000000000 -0500 --- octave-3.4.1/doc/interpreter/plot3.eps 2011-06-15 11:39:46.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: plot3.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:11:59 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: plot3.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:46 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:11:59 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:46 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/plot3.pdf and octave-3.4.1/doc/interpreter/plot3.pdf differ Binary files octave-3.4.0/doc/interpreter/plot3.png and octave-3.4.1/doc/interpreter/plot3.png differ diff -cNr octave-3.4.0/doc/interpreter/plot.eps octave-3.4.1/doc/interpreter/plot.eps *** octave-3.4.0/doc/interpreter/plot.eps 2011-02-08 05:11:56.000000000 -0500 --- octave-3.4.1/doc/interpreter/plot.eps 2011-06-15 11:39:41.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: plot.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:11:55 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: plot.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:41 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:11:55 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:41 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/plot.pdf and octave-3.4.1/doc/interpreter/plot.pdf differ Binary files octave-3.4.0/doc/interpreter/plot.png and octave-3.4.1/doc/interpreter/plot.png differ diff -cNr octave-3.4.0/doc/interpreter/plot.texi octave-3.4.1/doc/interpreter/plot.texi *** octave-3.4.0/doc/interpreter/plot.texi 2011-02-08 05:11:32.000000000 -0500 --- octave-3.4.1/doc/interpreter/plot.texi 2011-06-15 11:39:13.000000000 -0400 *************** *** 44,49 **** --- 44,53 ---- gnuplot system. The two systems may be used selectively through the use of the @code{graphics_toolkit} property of the graphics handle for each figure. This is explained in @ref{Graphics Data Structures}. + @strong{Caution:} The FLTK toolkit uses single precision variables internally + which limits the maximum value that can be displayed to approximately + @math{10^{38}}. If your data contains larger values you must use the gnuplot + toolkit which supports values up to @math{10^{308}}. @node High-Level Plotting @section High-Level Plotting *************** *** 56,62 **** @menu * Two-Dimensional Plots:: ! * Three-Dimensional Plotting:: * Plot Annotations:: * Multiple Plots on One Page:: * Multiple Plot Windows:: --- 60,66 ---- @menu * Two-Dimensional Plots:: ! * Three-Dimensional Plots:: * Plot Annotations:: * Multiple Plots on One Page:: * Multiple Plot Windows:: *************** *** 68,73 **** --- 72,82 ---- @node Two-Dimensional Plots @subsection Two-Dimensional Plots + @menu + * Axis Configuration:: + * Two-dimensional Function Plotting:: + @end menu + The @code{plot} function allows you to create simple x-y plots with linear axes. For example, *************** *** 259,265 **** @deftypefnx {Function File} {} plotyy (@dots{}, @var{fun1}, @var{fun2}) @deftypefnx {Function File} {} plotyy (@var{h}, @dots{}) @deftypefnx {Function File} {[@var{ax}, @var{h1}, @var{h2}] =} plotyy (@dots{}) ! Plots two sets of data with independent y-axes. The arguments @var{x1} and @var{y1} define the arguments for the first plot and @var{x1} and @var{y2} for the second. --- 268,274 ---- @deftypefnx {Function File} {} plotyy (@dots{}, @var{fun1}, @var{fun2}) @deftypefnx {Function File} {} plotyy (@var{h}, @dots{}) @deftypefnx {Function File} {[@var{ax}, @var{h1}, @var{h2}] =} plotyy (@dots{}) ! Plot two sets of data with independent y-axes. The arguments @var{x1} and @var{y1} define the arguments for the first plot and @var{x1} and @var{y2} for the second. *************** *** 1460,1465 **** --- 1469,1477 ---- @end deftypefn + @node Axis Configuration + @subsubsection Axis Configuration + The axis function may be used to change the axis limits of an existing plot and various other axis properties, such as the aspect ratio and the appearance of tic marks. *************** *** 1467,1475 **** @c axis scripts/plot/axis.m @anchor{doc-axis} @deftypefn {Function File} {} axis () ! @deftypefnx {Function File} {} axis ([@var{x}_lo, @var{x}_hi]) ! @deftypefnx {Function File} {} axis ([@var{x}_lo, @var{x}_hi, @var{y}_lo, @var{y}_hi]) ! @deftypefnx {Function File} {} axis ([@var{x}_lo, @var{x}_hi, @var{y}_lo, @var{y}_hi, @var{z}_lo, @var{z}_hi]) @deftypefnx {Function File} {} axis (@var{option}) @deftypefnx {Function File} {} axis (@dots{}, @var{option}) @deftypefnx {Function File} {} axis (@var{h}, @dots{}) --- 1479,1487 ---- @c axis scripts/plot/axis.m @anchor{doc-axis} @deftypefn {Function File} {} axis () ! @deftypefnx {Function File} {} axis ([@var{x}_lo @var{x}_hi]) ! @deftypefnx {Function File} {} axis ([@var{x}_lo @var{x}_hi @var{y}_lo @var{y}_hi]) ! @deftypefnx {Function File} {} axis ([@var{x}_lo @var{x}_hi @var{y}_lo @var{y}_hi @var{z}_lo @var{z}_hi]) @deftypefnx {Function File} {} axis (@var{option}) @deftypefnx {Function File} {} axis (@dots{}, @var{option}) @deftypefnx {Function File} {} axis (@var{h}, @dots{}) *************** *** 1629,1638 **** @end deftypefn - @menu - * Two-dimensional Function Plotting:: - @end menu - @node Two-dimensional Function Plotting @subsubsection Two-dimensional Function Plotting --- 1641,1646 ---- *************** *** 1659,1666 **** @deftypefnx {Function File} {} fplot (@var{fn}, @var{limits}, @var{tol}) @deftypefnx {Function File} {} fplot (@var{fn}, @var{limits}, @var{n}) @deftypefnx {Function File} {} fplot (@dots{}, @var{fmt}) ! Plot a function @var{fn}, within the defined limits. @var{fn} ! an be either a string, a function handle or an inline function. The limits of the plot are given by @var{limits} of the form @code{[@var{xlo}, @var{xhi}]} or @code{[@var{xlo}, @var{xhi}, @var{ylo}, @var{yhi}]}. @var{tol} is the default tolerance to use for the --- 1667,1675 ---- @deftypefnx {Function File} {} fplot (@var{fn}, @var{limits}, @var{tol}) @deftypefnx {Function File} {} fplot (@var{fn}, @var{limits}, @var{n}) @deftypefnx {Function File} {} fplot (@dots{}, @var{fmt}) ! Plot a function @var{fn} within defined limits. ! @var{fn} is a function handle, inline function, or string ! containing the name of the function to evaluate. The limits of the plot are given by @var{limits} of the form @code{[@var{xlo}, @var{xhi}]} or @code{[@var{xlo}, @var{xhi}, @var{ylo}, @var{yhi}]}. @var{tol} is the default tolerance to use for the *************** *** 1831,1838 **** @end deftypefn ! @node Three-Dimensional Plotting ! @subsection Three-Dimensional Plotting The function @code{mesh} produces mesh surface plots. For example, --- 1840,1847 ---- @end deftypefn ! @node Three-Dimensional Plots ! @subsection Three-Dimensional Plots The function @code{mesh} produces mesh surface plots. For example, *************** *** 2064,2069 **** --- 2073,2334 ---- @end deftypefn + @c isosurface scripts/plot/isosurface.m + @anchor{doc-isosurface} + @deftypefn {Function File} {[@var{fv}] =} isosurface (@var{val}, @var{iso}) + @deftypefnx {Function File} {[@var{fv}] =} isosurface (@var{x}, @var{y}, @var{z}, @var{val}, @var{iso}) + @deftypefnx {Function File} {[@var{fv}] =} isosurface (@dots{}, "noshare", "verbose") + @deftypefnx {Function File} {[@var{fvc}] =} isosurface (@dots{}, @var{col}) + @deftypefnx {Function File} {[@var{f}, @var{v}] =} isosurface (@var{x}, @var{y}, @var{z}, @var{val}, @var{iso}) + @deftypefnx {Function File} {[@var{f}, @var{v}, @var{c}] =} isosurface (@var{x}, @var{y}, @var{z}, @var{val}, @var{iso}, @var{col}) + @deftypefnx {Function File} {} isosurface (@var{x}, @var{y}, @var{z}, @var{val}, @var{iso}, @var{col}, @var{opt}) + + If called with one output argument and the first input argument + @var{val} is a three-dimensional array that contains the data of an + isosurface geometry and the second input argument @var{iso} keeps the + isovalue as a scalar value then return a structure array @var{fv} + that contains the fields @var{Faces} and @var{Vertices} at computed + points @command{[x, y, z] = meshgrid (1:l, 1:m, 1:n)}. The output + argument @var{fv} can directly be taken as an input argument for the + @command{patch} function. + + If called with further input arguments @var{x}, @var{y} and @var{z} + which are three--dimensional arrays with the same size than @var{val} + then the volume data is taken at those given points. + + The string input argument "noshare" is only for compatibility and + has no effect. If given the string input argument + "verbose" then print messages to the command line interface about the + current progress. + + If called with the input argument @var{col} which is a + three-dimensional array of the same size than @var{val} then take + those values for the interpolation of coloring the isosurface + geometry. Add the field @var{FaceVertexCData} to the structure + array @var{fv}. + + If called with two or three output arguments then return the + information about the faces @var{f}, vertices @var{v} and color data + @var{c} as seperate arrays instead of a single structure array. + + If called with no output argument then directly process the + isosurface geometry with the @command{patch} command. + + For example, + + @example + @group + [x, y, z] = meshgrid (1:5, 1:5, 1:5); + val = rand (5, 5, 5); + isosurface (x, y, z, val, .5); + @end group + @end example + + @noindent + will directly draw a random isosurface geometry in a graphics window. + Another example for an isosurface geometry with different additional + coloring + + @example + N = 15; ## Increase number of vertices in each direction + iso = .4; ## Change isovalue to .1 to display a sphere + lin = linspace (0, 2, N); + [x, y, z] = meshgrid (lin, lin, lin); + c = abs ((x-.5).^2 + (y-.5).^2 + (z-.5).^2); + figure (); ## Open another figure window + + subplot (2, 2, 1); view (-38, 20); + [f, v] = isosurface (x, y, z, c, iso); + p = patch ("Faces", f, "Vertices", v, "EdgeColor", "none"); + set (gca, "PlotBoxAspectRatioMode","manual", "PlotBoxAspectRatio", [1 1 1]); + set (p, "FaceColor", "green", "FaceLighting", "phong"); + light ("Position", [1 1 5]); ## Available with the JHandles package + + subplot (2, 2, 2); view (-38, 20); + p = patch ("Faces", f, "Vertices", v, "EdgeColor", "blue"); + set (gca, "PlotBoxAspectRatioMode","manual", "PlotBoxAspectRatio", [1 1 1]); + set (p, "FaceColor", "none", "FaceLighting", "phong"); + light ("Position", [1 1 5]); + + subplot (2, 2, 3); view (-38, 20); + [f, v, c] = isosurface (x, y, z, c, iso, y); + p = patch ("Faces", f, "Vertices", v, "FaceVertexCData", c, \ + "FaceColor", "interp", "EdgeColor", "none"); + set (gca, "PlotBoxAspectRatioMode","manual", "PlotBoxAspectRatio", [1 1 1]); + set (p, "FaceLighting", "phong"); + light ("Position", [1 1 5]); + + subplot (2, 2, 4); view (-38, 20); + p = patch ("Faces", f, "Vertices", v, "FaceVertexCData", c, \ + "FaceColor", "interp", "EdgeColor", "blue"); + set (gca, "PlotBoxAspectRatioMode","manual", "PlotBoxAspectRatio", [1 1 1]); + set (p, "FaceLighting", "phong"); + light ("Position", [1 1 5]); + @end example + + @seealso{@ref{doc-isonormals,,isonormals}, @ref{doc-isocolors,,isocolors}} + @end deftypefn + + + @c isonormals scripts/plot/isonormals.m + @anchor{doc-isonormals} + @deftypefn {Function File} {[@var{n}] =} isonormals (@var{val}, @var{v}) + @deftypefnx {Function File} {[@var{n}] =} isonormals (@var{val}, @var{p}) + @deftypefnx {Function File} {[@var{n}] =} isonormals (@var{x}, @var{y}, @var{z}, @var{val}, @var{v}) + @deftypefnx {Function File} {[@var{n}] =} isonormals (@var{x}, @var{y}, @var{z}, @var{val}, @var{p}) + @deftypefnx {Function File} {[@var{n}] =} isonormals (@dots{}, "negate") + @deftypefnx {Function File} {} isonormals (@dots{}, @var{p}) + + If called with one output argument and the first input argument + @var{val} is a three-dimensional array that contains the data for an + isosurface geometry and the second input argument @var{v} keeps the + vertices of an isosurface then return the normals @var{n} in form of + a matrix with the same size than @var{v} at computed points + @command{[x, y, z] = meshgrid (1:l, 1:m, 1:n)}. The output argument + @var{n} can be taken to manually set @var{VertexNormals} of a patch. + + If called with further input arguments @var{x}, @var{y} and @var{z} + which are three--dimensional arrays with the same size than @var{val} + then the volume data is taken at those given points. Instead of the + vertices data @var{v} a patch handle @var{p} can be passed to this + function. + + If given the string input argument "negate" as last input argument + then compute the reverse vector normals of an isosurface geometry. + + If no output argument is given then directly redraw the patch that is + given by the patch handle @var{p}. + + For example: + + @example + function [] = isofinish (p) + set (gca, "PlotBoxAspectRatioMode","manual","PlotBoxAspectRatio",[1 1 1]); + set (p, "VertexNormals", -get(p,"VertexNormals")); ## Revert normals + set (p, "FaceColor", "interp"); + ## set (p, "FaceLighting", "phong"); + ## light ("Position", [1 1 5]); ## Available with JHandles + endfunction + + N = 15; ## Increase number of vertices in each direction + iso = .4; ## Change isovalue to .1 to display a sphere + lin = linspace (0, 2, N); + [x, y, z] = meshgrid (lin, lin, lin); + c = abs ((x-.5).^2 + (y-.5).^2 + (z-.5).^2); + figure (); ## Open another figure window + + subplot (2, 2, 1); view (-38, 20); + [f, v, cdat] = isosurface (x, y, z, c, iso, y); + p = patch ("Faces", f, "Vertices", v, "FaceVertexCData", cdat, \ + "FaceColor", "interp", "EdgeColor", "none"); + isofinish (p); ## Call user function isofinish + + subplot (2, 2, 2); view (-38, 20); + p = patch ("Faces", f, "Vertices", v, "FaceVertexCData", cdat, \ + "FaceColor", "interp", "EdgeColor", "none"); + isonormals (x, y, z, c, p); ## Directly modify patch + isofinish (p); + + subplot (2, 2, 3); view (-38, 20); + p = patch ("Faces", f, "Vertices", v, "FaceVertexCData", cdat, \ + "FaceColor", "interp", "EdgeColor", "none"); + n = isonormals (x, y, z, c, v); ## Compute normals of isosurface + set (p, "VertexNormals", n); ## Manually set vertex normals + isofinish (p); + + subplot (2, 2, 4); view (-38, 20); + p = patch ("Faces", f, "Vertices", v, "FaceVertexCData", cdat, \ + "FaceColor", "interp", "EdgeColor", "none"); + isonormals (x, y, z, c, v, "negate"); ## Use reverse directly + isofinish (p); + @end example + + @seealso{@ref{doc-isosurface,,isosurface}, @ref{doc-isocolors,,isocolors}} + @end deftypefn + + + @c isocolors scripts/plot/isocolors.m + @anchor{doc-isocolors} + @deftypefn {Function File} {[@var{cd}] =} isocolors (@var{c}, @var{v}) + @deftypefnx {Function File} {[@var{cd}] =} isocolors (@var{x}, @var{y}, @var{z}, @var{c}, @var{v}) + @deftypefnx {Function File} {[@var{cd}] =} isocolors (@var{x}, @var{y}, @var{z}, @var{r}, @var{g}, @var{b}, @var{v}) + @deftypefnx {Function File} {[@var{cd}] =} isocolors (@var{r}, @var{g}, @var{b}, @var{v}) + @deftypefnx {Function File} {[@var{cd}] =} isocolors (@dots{}, @var{p}) + @deftypefnx {Function File} {} isocolors (@dots{}) + + If called with one output argument and the first input argument + @var{c} is a three-dimensional array that contains color values and + the second input argument @var{v} keeps the vertices of a geometry + then return a matrix @var{cd} with color data information for the + geometry at computed points + @command{[x, y, z] = meshgrid (1:l, 1:m, 1:n)}. The output argument + @var{cd} can be taken to manually set FaceVertexCData of a patch. + + If called with further input arguments @var{x}, @var{y} and @var{z} + which are three--dimensional arrays of the same size than @var{c} + then the color data is taken at those given points. Instead of the + color data @var{c} this function can also be called with RGB values + @var{r}, @var{g}, @var{b}. If input argumnets @var{x}, @var{y}, + @var{z} are not given then again @command{meshgrid} computed values + are taken. + + Optionally, the patch handle @var{p} can be given as the last input + argument to all variations of function calls instead of the vertices + data @var{v}. Finally, if no output argument is given then directly + change the colors of a patch that is given by the patch handle + @var{p}. + + For example: + + @example + function [] = isofinish (p) + set (gca, "PlotBoxAspectRatioMode", "manual", \ + "PlotBoxAspectRatio", [1 1 1]); + set (p, "FaceColor", "interp"); + ## set (p, "FaceLighting", "flat"); + ## light ("Position", [1 1 5]); ## Available with JHandles + endfunction + + N = 15; ## Increase number of vertices in each direction + iso = .4; ## Change isovalue to .1 to display a sphere + lin = linspace (0, 2, N); + [x, y, z] = meshgrid (lin, lin, lin); + c = abs ((x-.5).^2 + (y-.5).^2 + (z-.5).^2); + figure (); ## Open another figure window + + subplot (2, 2, 1); view (-38, 20); + [f, v] = isosurface (x, y, z, c, iso); + p = patch ("Faces", f, "Vertices", v, "EdgeColor", "none"); + cdat = rand (size (c)); ## Compute random patch color data + isocolors (x, y, z, cdat, p); ## Directly set colors of patch + isofinish (p); ## Call user function isofinish + + subplot (2, 2, 2); view (-38, 20); + p = patch ("Faces", f, "Vertices", v, "EdgeColor", "none"); + [r, g, b] = meshgrid (lin, 2-lin, 2-lin); + cdat = isocolors (x, y, z, c, v); ## Compute color data vertices + set (p, "FaceVertexCData", cdat); ## Set color data manually + isofinish (p); + + subplot (2, 2, 3); view (-38, 20); + p = patch ("Faces", f, "Vertices", v, "EdgeColor", "none"); + cdat = isocolors (r, g, b, c, p); ## Compute color data patch + set (p, "FaceVertexCData", cdat); ## Set color data manually + isofinish (p); + + subplot (2, 2, 4); view (-38, 20); + p = patch ("Faces", f, "Vertices", v, "EdgeColor", "none"); + r = g = b = repmat ([1:N] / N, [N, 1, N]); ## Black to white + cdat = isocolors (x, y, z, r, g, b, v); + set (p, "FaceVertexCData", cdat); + isofinish (p); + @end example + + @seealso{@ref{doc-isosurface,,isosurface}, @ref{doc-isonormals,,isonormals}} + + @end deftypefn + + @c diffuse scripts/plot/diffuse.m @anchor{doc-diffuse} @deftypefn {Function File} {} diffuse (@var{sx}, @var{sy}, @var{sz}, @var{lv}) *************** *** 2196,2204 **** @c view scripts/plot/view.m @anchor{doc-view} @deftypefn {Function File} {[@var{azimuth}, @var{elevation}] =} view () ! @deftypefnx {Function File} {} view (@var{azimuth}, @var{elevation}) ! @deftypefnx {Function File} {} view ([@var{azimuth}, @var{elevation}]) ! @deftypefnx {Function File} {} view ([@var{x}, @var{y}, @var{z}]) @deftypefnx {Function File} {} view (@var{dims}) @deftypefnx {Function File} {} view (@var{ax}, @dots{}) Query or set the viewpoint for the current axes. The parameters --- 2461,2469 ---- @c view scripts/plot/view.m @anchor{doc-view} @deftypefn {Function File} {[@var{azimuth}, @var{elevation}] =} view () ! @deftypefnx {Function File} {} view (@var{azimuth}, @var{elevation}) ! @deftypefnx {Function File} {} view ([@var{azimuth} @var{elevation}]) ! @deftypefnx {Function File} {} view ([@var{x} @var{y} @var{z}]) @deftypefnx {Function File} {} view (@var{dims}) @deftypefnx {Function File} {} view (@var{ax}, @dots{}) Query or set the viewpoint for the current axes. The parameters *************** *** 2352,2361 **** --- 2617,2681 ---- @menu + * Aspect Ratio:: * Three-dimensional Function Plotting:: * Three-dimensional Geometric Shapes:: @end menu + @node Aspect Ratio + @subsubsection Aspect Ratio + + For three-dimensional plots the aspect ratio can be set for data with + @code{daspect} and for the plot box with @code{pbaspect}. + See @ref{Axis Configuration} for controlling the x-, y-, and z-limits for + plotting. + + @c daspect scripts/plot/daspect.m + @anchor{doc-daspect} + @deftypefn {Function File} {} daspect (@var{data_aspect_ratio}) + Set the data aspect ratio of the current axes. The aspect ratio is + a normalized 3-element vector representing the span of the x, y, and + z-axes limits. + + @deftypefnx {Function File} {@var{data_aspect_ratio} =} daspect ( ) + Return the data aspect ratio of the current axes. + + @deftypefnx {Function File} {} daspect (@var{mode}) + Set the data aspect ratio mode of the current axes. + + @deftypefnx {Function File} {@var{data_aspect_ratio_mode} =} daspect ("mode") + Return the data aspect ratio mode of the current axes. + + @deftypefnx {Function File} {} daspect (@var{hax}, @dots{}) + Use the axes, with handle @var{hax}, instead of the current axes. + + @seealso{@ref{doc-axis,,axis}, @ref{doc-pbaspect,,pbaspect}, @ref{doc-xlim,,xlim}, @ref{doc-ylim,,ylim}, @ref{doc-zlim,,zlim}} + @end deftypefn + + + @c pbaspect scripts/plot/pbaspect.m + @anchor{doc-pbaspect} + @deftypefn {Function File} {} pbaspect (@var{plot_box_aspect_ratio}) + Set the plot box aspect ratio of the current axes. The aspect ratio + is a normalized 3-element vector representing the rendered lengths of + the x, y, and z-axes. + + @deftypefnx {Function File} {@var{plot_box_aspect_ratio} =} pbaspect ( ) + Return the plot box aspect ratio of the current axes. + + @deftypefnx {Function File} {} pbaspect (@var{mode}) + Set the plot box aspect ratio mode of the current axes. + + @deftypefnx {Function File} {@var{plot_box_aspect_ratio_mode} =} pbaspect ("mode") + Return the plot box aspect ratio mode of the current axes. + + @deftypefnx {Function File} {} pbaspect (@var{hax}, @dots{}) + Use the axes, with handle @var{hax}, instead of the current axes. + + @seealso{@ref{doc-axis,,axis}, @ref{doc-daspect,,daspect}, @ref{doc-xlim,,xlim}, @ref{doc-ylim,,ylim}, @ref{doc-zlim,,zlim}} + @end deftypefn + + @node Three-dimensional Function Plotting @subsubsection Three-dimensional Function Plotting *************** *** 2596,2602 **** @deftypefnx {Function File} {} cylinder (@var{r}, @var{n}) @deftypefnx {Function File} {[@var{x}, @var{y}, @var{z}] =} cylinder (@dots{}) @deftypefnx {Function File} {} cylinder (@var{ax}, @dots{}) ! Generates three matrices in @code{meshgrid} format, such that @code{surf (@var{x}, @var{y}, @var{z})} generates a unit cylinder. The matrices are of size @code{@var{n}+1}-by-@code{@var{n}+1}. @var{r} is a vector containing the radius along the z-axis. --- 2916,2922 ---- @deftypefnx {Function File} {} cylinder (@var{r}, @var{n}) @deftypefnx {Function File} {[@var{x}, @var{y}, @var{z}] =} cylinder (@dots{}) @deftypefnx {Function File} {} cylinder (@var{ax}, @dots{}) ! Generate three matrices in @code{meshgrid} format, such that @code{surf (@var{x}, @var{y}, @var{z})} generates a unit cylinder. The matrices are of size @code{@var{n}+1}-by-@code{@var{n}+1}. @var{r} is a vector containing the radius along the z-axis. *************** *** 2625,2631 **** @anchor{doc-sphere} @deftypefn {Function File} {[@var{x}, @var{y}, @var{z}] =} sphere (@var{n}) @deftypefnx {Function File} {} sphere (@var{h}, @dots{}) ! Generates three matrices in @code{meshgrid} format, such that @code{surf (@var{x}, @var{y}, @var{z})} generates a unit sphere. The matrices of @code{@var{n}+1}-by-@code{@var{n}+1}. If @var{n} is omitted then a default value of 20 is assumed. --- 2945,2951 ---- @anchor{doc-sphere} @deftypefn {Function File} {[@var{x}, @var{y}, @var{z}] =} sphere (@var{n}) @deftypefnx {Function File} {} sphere (@var{h}, @dots{}) ! Generate three matrices in @code{meshgrid} format, such that @code{surf (@var{x}, @var{y}, @var{z})} generates a unit sphere. The matrices of @code{@var{n}+1}-by-@code{@var{n}+1}. If @var{n} is omitted then a default value of 20 is assumed. *************** *** 2808,2814 **** @deftypefnx {Function File} {} clabel (@var{c}, @var{h}) @deftypefnx {Function File} {} clabel (@dots{}, @var{prop}, @var{val}, @dots{}) @deftypefnx {Function File} {@var{h} =} clabel (@dots{}) ! Adds labels to the contours of a contour plot. The contour plot is specified by the contour matrix @var{c} and optionally the contourgroup object @var{h} that are returned by @code{contour}, @code{contourf} and @code{contour3}. The contour labels are rotated and placed in the contour itself. --- 3128,3134 ---- @deftypefnx {Function File} {} clabel (@var{c}, @var{h}) @deftypefnx {Function File} {} clabel (@dots{}, @var{prop}, @var{val}, @dots{}) @deftypefnx {Function File} {@var{h} =} clabel (@dots{}) ! Add labels to the contours of a contour plot. The contour plot is specified by the contour matrix @var{c} and optionally the contourgroup object @var{h} that are returned by @code{contour}, @code{contourf} and @code{contour3}. The contour labels are rotated and placed in the contour itself. *************** *** 2875,2881 **** @anchor{doc-colorbar} @deftypefn {Function File} {} colorbar (@var{s}) @deftypefnx {Function File} {} colorbar ("peer", @var{h}, @dots{}) ! Adds a colorbar to the current axes. Valid values for @var{s} are @table @asis @item "EastOutside" --- 3195,3201 ---- @anchor{doc-colorbar} @deftypefn {Function File} {} colorbar (@var{s}) @deftypefnx {Function File} {} colorbar ("peer", @var{h}, @dots{}) ! Add a colorbar to the current axes. Valid values for @var{s} are @table @asis @item "EastOutside" *************** *** 2972,2979 **** @end group @end example @end ifnottex ! @seealso{@ref{doc-plot,,plot}} @end deftypefn --- 3292,3306 ---- @end group @end example + @var{index} may be a vector. In which case, the new axis will enclose + the grid locations specified. The first demo illustrates an example: + + @example + @code{demo ("subplot", 1)} + @end example + @end ifnottex ! @seealso{@ref{doc-axes,,axes}, @ref{doc-plot,,plot}} @end deftypefn *************** *** 3195,3203 **** @c ishold scripts/plot/ishold.m @anchor{doc-ishold} ! @deftypefn {Command} {} ishold Return true if the next plot will be added to the current plot, or false if the plot device will be cleared before drawing the next plot. @seealso{@ref{doc-hold,,hold}} @end deftypefn --- 3522,3534 ---- @c ishold scripts/plot/ishold.m @anchor{doc-ishold} ! @deftypefn {Command} {} ishold ! @deftypefnx {Function File} {} ishold (@var{h}) Return true if the next plot will be added to the current plot, or false if the plot device will be cleared before drawing the next plot. + + Optionally, operate on the graphics handle @var{h} rather than the current + plot. @seealso{@ref{doc-hold,,hold}} @end deftypefn *************** *** 3845,3851 **** The user can select points on a plot with the @code{ginput} function or selection the position at which to place text on the plot with the ! @code{gtext} function using the mouse. @c ginput scripts/plot/ginput.m @anchor{doc-ginput} --- 4176,4183 ---- The user can select points on a plot with the @code{ginput} function or selection the position at which to place text on the plot with the ! @code{gtext} function using the mouse. Menus may also be created ! and populated with specific user commands via the @code{uimenu} function. @c ginput scripts/plot/ginput.m @anchor{doc-ginput} *************** *** 3880,3885 **** --- 4212,4276 ---- @end deftypefn + @c uimenu scripts/plot/uimenu.m + @anchor{doc-uimenu} + @deftypefn {Function File} {} uimenu (@var{property}, @var{value}, @dots{}) + @deftypefnx {Function File} {} uimenu (@var{h}, @var{property}, @var{value}, @dots{}) + Create a uimenu object and return a handle to it. If @var{h} is ommited + then a top-level menu for the current figure is created. If @var{h} + is given then a submenu relative to @var{h} is created. + + uimenu objects have the following specific properties: + + @table @asis + @item "accelerator" + A string containing the key combination together with CTRL to execute this + menu entry (e.g., "x" for CTRL+x). + + @item "callback" + Is the function called when this menu entry is executed. It can be either a + function string (e.g., "myfun"), a function handle (e.g., @@myfun) or a cell + array containing the function handle and arguments for the callback + function (e.g., @{@@myfun, arg1, arg2@}). + + @item "checked" + Can be set "on" or "off". Sets a mark at this menu entry. + + @item "enable" + Can be set "on" or "off". If disabled the menu entry cannot be selected + and it is grayed out. + + @item "foregroundcolor" + A color value setting the text color for this menu entry. + + @item "label" + A string containing the label for this menu entry. A "&"-symbol can be + used to mark the "accelerator" character (e.g., @nospell{"E&xit"}) + + @item "position" + An scalar value containing the relative menu position. The entry with the + lowest value is at the first position starting from left or top. + + @item "separator" + Can be set "on" or "off". If enabled it draws a separator line above the + current position. It is ignored for top level entries. + + @end table + + Examples: + + @example + @group + f = uimenu("label", "&File", "accelerator", "f"); + e = uimenu("label", "&Edit", "accelerator", "e"); + uimenu(f, "label", "Close", "accelerator", "q", "callback", "close (gcf)"); + uimenu(e, "label", "Toggle &Grid", "accelerator", "g", "callback", "grid (gca)"); + @end group + @end example + @seealso{@ref{doc-figure,,figure}} + @end deftypefn + + @node Test Plotting Functions @subsection Test Plotting Functions *************** *** 5739,5749 **** --- 6130,6142 ---- @node Advanced Plotting @section Advanced Plotting + @menu * Colors:: * Line Styles:: * Marker Styles:: * Callbacks:: + * Application-defined Data:: * Object Groups:: * Graphics Toolkits:: @end menu *************** *** 5771,5786 **** May be one of @table @code @item "-" ! Solid lines. @item "--" ! Dashed lines. @item ":" ! Points. @item "-." A dash-dot line. @end table @item linewidth --- 6164,6182 ---- May be one of @table @code @item "-" ! Solid line. [default] @item "--" ! Dashed line. @item ":" ! Dotted line. @item "-." A dash-dot line. + + @item "none" + No line. Points will still be marked using the current Marker Style. @end table @item linewidth *************** *** 5812,5817 **** --- 6208,6225 ---- of 2 is twice as large as the default, etc. @end table + The @code{colstyle} function will parse a @code{plot}-style specification + and will return the color, line, and marker values that would result. + + @c colstyle scripts/plot/colstyle.m + @anchor{doc-colstyle} + @deftypefn {Function File} {[@var{style}, @var{color}, @var{marker}, @var{msg}] =} colstyle (@var{linespec}) + Parse @var{linespec} and return the line style, color, and markers given. + In the case of an error, the string @var{msg} will return the text of the + error. + @end deftypefn + + @node Callbacks @subsection Callbacks @cindex callbacks *************** *** 5911,5916 **** --- 6319,6369 ---- Callbacks can equally be added to properties with the @code{addlistener} function described below. + @node Application-defined Data + @subsection Application-defined Data + @cindex application-defined data + + Octave has a provision for attaching application-defined data to a graphics + handle. The data can be anything which is meaningful to the application, and + will be completely ignored by Octave. + + @c setappdata scripts/miscellaneous/setappdata.m + @anchor{doc-setappdata} + @deftypefn {Function File} {} setappdata (@var{h}, @var{name}, @var{value}) + Set the named application data to @var{value} for the object(s) with + handle(s) @var{h}. If the application data with the specified name does + not exist, it is created. + @end deftypefn + + + @c getappdata scripts/miscellaneous/getappdata.m + @anchor{doc-getappdata} + @deftypefn {Function File} {@var{value} =} getappdata (@var{h}, @var{name}) + Return the @var{value} for named application data for the object(s) with + handle(s) @var{h}. + @deftypefnx {Function File} {@var{appdata} =} getappdata (@var{h}) + Return a structure, @var{appdata}, whose fields correspond to the appdata + properties. + @end deftypefn + + + @c rmappdata scripts/miscellaneous/rmappdata.m + @anchor{doc-rmappdata} + @deftypefn {Function File} {} rmappdata (@var{h}, @var{name}) + Delete the named application data for the object(s) with + handle(s) @var{h}. + @end deftypefn + + + @c isappdata scripts/miscellaneous/isappdata.m + @anchor{doc-isappdata} + @deftypefn {Function File} {@var{V} =} isappdata (@var{h}, @var{name}) + Return true if the named application data, @var{name}, exists for the + object with handle @var{h}. + @seealso{@ref{doc-getappdata,,getappdata}, @ref{doc-setappdata,,setappdata}, @ref{doc-rmappdata,,rmappdata}} + @end deftypefn + + @node Object Groups @subsection Object Groups @cindex object groups *************** *** 6132,6138 **** @c linkprop scripts/plot/linkprop.m @anchor{doc-linkprop} @deftypefn {Function File} {@var{hlink} =} linkprop (@var{h}, @var{prop}) ! Links graphics object properties, such that a change in one is propagated to the others. The properties to link are given as a string of cell string array by @var{prop} and the objects containing these properties by the handle array @var{h}. --- 6585,6591 ---- @c linkprop scripts/plot/linkprop.m @anchor{doc-linkprop} @deftypefn {Function File} {@var{hlink} =} linkprop (@var{h}, @var{prop}) ! Link graphics object properties, such that a change in one is propagated to the others. The properties to link are given as a string of cell string array by @var{prop} and the objects containing these properties by the handle array @var{h}. diff -cNr octave-3.4.0/doc/interpreter/plot.txi octave-3.4.1/doc/interpreter/plot.txi *** octave-3.4.0/doc/interpreter/plot.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/plot.txi 2011-06-15 11:13:48.000000000 -0400 *************** *** 42,47 **** --- 42,51 ---- gnuplot system. The two systems may be used selectively through the use of the @code{graphics_toolkit} property of the graphics handle for each figure. This is explained in @ref{Graphics Data Structures}. + @strong{Caution:} The FLTK toolkit uses single precision variables internally + which limits the maximum value that can be displayed to approximately + @math{10^{38}}. If your data contains larger values you must use the gnuplot + toolkit which supports values up to @math{10^{308}}. @node High-Level Plotting @section High-Level Plotting *************** *** 54,60 **** @menu * Two-Dimensional Plots:: ! * Three-Dimensional Plotting:: * Plot Annotations:: * Multiple Plots on One Page:: * Multiple Plot Windows:: --- 58,64 ---- @menu * Two-Dimensional Plots:: ! * Three-Dimensional Plots:: * Plot Annotations:: * Multiple Plots on One Page:: * Multiple Plot Windows:: *************** *** 66,71 **** --- 70,80 ---- @node Two-Dimensional Plots @subsection Two-Dimensional Plots + @menu + * Axis Configuration:: + * Two-dimensional Function Plotting:: + @end menu + The @code{plot} function allows you to create simple x-y plots with linear axes. For example, *************** *** 219,224 **** --- 228,236 ---- @DOCSTRING(comet3) + @node Axis Configuration + @subsubsection Axis Configuration + The axis function may be used to change the axis limits of an existing plot and various other axis properties, such as the aspect ratio and the appearance of tic marks. *************** *** 237,246 **** @anchor{doc-zlim} @DOCSTRING(xlim) - @menu - * Two-dimensional Function Plotting:: - @end menu - @node Two-dimensional Function Plotting @subsubsection Two-dimensional Function Plotting --- 249,254 ---- *************** *** 275,282 **** @DOCSTRING(ezpolar) ! @node Three-Dimensional Plotting ! @subsection Three-Dimensional Plotting The function @code{mesh} produces mesh surface plots. For example, --- 283,290 ---- @DOCSTRING(ezpolar) ! @node Three-Dimensional Plots ! @subsection Three-Dimensional Plots The function @code{mesh} produces mesh surface plots. For example, *************** *** 343,348 **** --- 351,362 ---- @DOCSTRING(surfnorm) + @DOCSTRING(isosurface) + + @DOCSTRING(isonormals) + + @DOCSTRING(isocolors) + @DOCSTRING(diffuse) @DOCSTRING(specular) *************** *** 364,373 **** --- 378,400 ---- @DOCSTRING(scatter3) @menu + * Aspect Ratio:: * Three-dimensional Function Plotting:: * Three-dimensional Geometric Shapes:: @end menu + @node Aspect Ratio + @subsubsection Aspect Ratio + + For three-dimensional plots the aspect ratio can be set for data with + @code{daspect} and for the plot box with @code{pbaspect}. + See @ref{Axis Configuration} for controlling the x-, y-, and z-limits for + plotting. + + @DOCSTRING(daspect) + + @DOCSTRING(pbaspect) + @node Three-dimensional Function Plotting @subsubsection Three-dimensional Function Plotting *************** *** 823,829 **** The user can select points on a plot with the @code{ginput} function or selection the position at which to place text on the plot with the ! @code{gtext} function using the mouse. @DOCSTRING(ginput) --- 850,857 ---- The user can select points on a plot with the @code{ginput} function or selection the position at which to place text on the plot with the ! @code{gtext} function using the mouse. Menus may also be created ! and populated with specific user commands via the @code{uimenu} function. @DOCSTRING(ginput) *************** *** 831,836 **** --- 859,866 ---- @DOCSTRING(gtext) + @DOCSTRING(uimenu) + @node Test Plotting Functions @subsection Test Plotting Functions *************** *** 2444,2454 **** --- 2474,2486 ---- @node Advanced Plotting @section Advanced Plotting + @menu * Colors:: * Line Styles:: * Marker Styles:: * Callbacks:: + * Application-defined Data:: * Object Groups:: * Graphics Toolkits:: @end menu *************** *** 2476,2491 **** May be one of @table @code @item "-" ! Solid lines. @item "--" ! Dashed lines. @item ":" ! Points. @item "-." A dash-dot line. @end table @item linewidth --- 2508,2526 ---- May be one of @table @code @item "-" ! Solid line. [default] @item "--" ! Dashed line. @item ":" ! Dotted line. @item "-." A dash-dot line. + + @item "none" + No line. Points will still be marked using the current Marker Style. @end table @item linewidth *************** *** 2517,2522 **** --- 2552,2562 ---- of 2 is twice as large as the default, etc. @end table + The @code{colstyle} function will parse a @code{plot}-style specification + and will return the color, line, and marker values that would result. + + @DOCSTRING(colstyle) + @node Callbacks @subsection Callbacks @cindex callbacks *************** *** 2591,2596 **** --- 2631,2652 ---- Callbacks can equally be added to properties with the @code{addlistener} function described below. + @node Application-defined Data + @subsection Application-defined Data + @cindex application-defined data + + Octave has a provision for attaching application-defined data to a graphics + handle. The data can be anything which is meaningful to the application, and + will be completely ignored by Octave. + + @DOCSTRING(setappdata) + + @DOCSTRING(getappdata) + + @DOCSTRING(rmappdata) + + @DOCSTRING(isappdata) + @node Object Groups @subsection Object Groups @cindex object groups diff -cNr octave-3.4.0/doc/interpreter/polar.eps octave-3.4.1/doc/interpreter/polar.eps *** octave-3.4.0/doc/interpreter/polar.eps 2011-02-08 05:11:58.000000000 -0500 --- octave-3.4.1/doc/interpreter/polar.eps 2011-06-15 11:39:44.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: polar.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:11:58 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: polar.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:44 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:11:58 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:44 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/polar.pdf and octave-3.4.1/doc/interpreter/polar.pdf differ Binary files octave-3.4.0/doc/interpreter/polar.png and octave-3.4.1/doc/interpreter/polar.png differ diff -cNr octave-3.4.0/doc/interpreter/poly.texi octave-3.4.1/doc/interpreter/poly.texi *** octave-3.4.0/doc/interpreter/poly.texi 2011-02-08 05:11:32.000000000 -0500 --- octave-3.4.1/doc/interpreter/poly.texi 2011-06-15 11:39:13.000000000 -0400 *************** *** 794,800 **** @c polyreduce scripts/polynomial/polyreduce.m @anchor{doc-polyreduce} @deftypefn {Function File} {} polyreduce (@var{c}) ! Reduces a polynomial coefficient vector to a minimum number of terms by stripping off any leading zeros. @seealso{@ref{doc-poly,,poly}, @ref{doc-roots,,roots}, @ref{doc-conv,,conv}, @ref{doc-deconv,,deconv}, @ref{doc-residue,,residue}, @ref{doc-filter,,filter}, @ref{doc-polyval,,polyval}, @ref{doc-polyvalm,,polyvalm}, @ref{doc-polyderiv,,polyderiv}, @ref{doc-polyint,,polyint}} @end deftypefn --- 794,800 ---- @c polyreduce scripts/polynomial/polyreduce.m @anchor{doc-polyreduce} @deftypefn {Function File} {} polyreduce (@var{c}) ! Reduce a polynomial coefficient vector to a minimum number of terms by stripping off any leading zeros. @seealso{@ref{doc-poly,,poly}, @ref{doc-roots,,roots}, @ref{doc-conv,,conv}, @ref{doc-deconv,,deconv}, @ref{doc-residue,,residue}, @ref{doc-filter,,filter}, @ref{doc-polyval,,polyval}, @ref{doc-polyvalm,,polyvalm}, @ref{doc-polyderiv,,polyderiv}, @ref{doc-polyint,,polyint}} @end deftypefn diff -cNr octave-3.4.0/doc/interpreter/quad.texi octave-3.4.1/doc/interpreter/quad.texi *** octave-3.4.0/doc/interpreter/quad.texi 2011-02-08 05:11:32.000000000 -0500 --- octave-3.4.1/doc/interpreter/quad.texi 2011-06-15 11:39:13.000000000 -0400 *************** *** 22,40 **** @chapter Numerical Integration Octave comes with several built-in functions for computing the integral ! of a function numerically. These functions all solve 1-dimensional ! integration problems. @menu * Functions of One Variable:: - * Functions of Multiple Variables:: * Orthogonal Collocation:: @end menu @node Functions of One Variable @section Functions of One Variable ! Octave supports three different algorithms for computing the integral @tex $$ \int_a^b f(x) d x --- 22,40 ---- @chapter Numerical Integration Octave comes with several built-in functions for computing the integral ! of a function numerically (termed quadrature). These functions all solve ! 1-dimensional integration problems. @menu * Functions of One Variable:: * Orthogonal Collocation:: + * Functions of Multiple Variables:: @end menu @node Functions of One Variable @section Functions of One Variable ! Octave supports five different algorithms for computing the integral @tex $$ \int_a^b f(x) d x *************** *** 47,105 **** @item quad Numerical integration based on Gaussian quadrature. @item quadl Numerical integration using an adaptive Lobatto rule. @item quadgk Numerical integration using an adaptive Gauss-Konrod rule. - @item quadv - Numerical integration using an adaptive vectorized Simpson's rule. - @item quadcc Numerical integration using adaptive Clenshaw-Curtis rules. ! @item trapz ! Numerical integration using the trapezoidal method. @end table @noindent ! Besides these functions Octave also allows you to perform cumulative ! numerical integration using the trapezoidal method through the ! @code{cumtrapz} function. ! @c quad src/DLD-FUNCTIONS/quad.cc ! @anchor{doc-quad} ! @deftypefn {Loadable Function} {@var{v} =} quad (@var{f}, @var{a}, @var{b}) ! @deftypefnx {Loadable Function} {@var{v} =} quad (@var{f}, @var{a}, @var{b}, @var{tol}) ! @deftypefnx {Loadable Function} {@var{v} =} quad (@var{f}, @var{a}, @var{b}, @var{tol}, @var{sing}) ! @deftypefnx {Loadable Function} {[@var{v}, @var{ier}, @var{nfun}, @var{err}] =} quad (@dots{}) ! Integrate a nonlinear function of one variable using @sc{quadpack}. ! The first argument is the name of the function, the function handle, or ! the inline function to call to compute the value of the integrand. It ! must have the form @example ! y = f (x) @end example @noindent ! where @var{y} and @var{x} are scalars. ! The second and third arguments are limits of integration. Either or ! both may be infinite. The optional argument @var{tol} is a vector that specifies the desired accuracy of the result. The first element of the vector is the desired absolute tolerance, and the second element is the desired relative tolerance. To choose a relative test only, set the absolute tolerance to zero. To choose an absolute test only, set the relative ! tolerance to zero. The optional argument @var{sing} is a vector of values at which the integrand is known to be singular. ! The result of the integration is returned in @var{v}. @var{ier} contains an integer error code (0 indicates a successful integration). @var{nfun} indicates the number of function evaluations that were made, and @var{err} contains an estimate of the error in the --- 47,186 ---- @item quad Numerical integration based on Gaussian quadrature. + @item quadv + Numerical integration using an adaptive vectorized Simpson's rule. + @item quadl Numerical integration using an adaptive Lobatto rule. @item quadgk Numerical integration using an adaptive Gauss-Konrod rule. @item quadcc Numerical integration using adaptive Clenshaw-Curtis rules. ! @item trapz, cumtrapz ! Numerical integration of data using the trapezoidal method. @end table @noindent ! The best quadrature algorithm to use depends on the integrand. If you have ! empirical data, rather than a function, the choice is @code{trapz} or ! @code{cumtrapz}. If you are uncertain about the characteristics of the ! integrand, @code{quadcc} will be the most robust as it can handle ! discontinuities, singularities, oscillatory functions, and infinite intervals. ! When the integrand is smooth @code{quadgk} may be the fastest of the ! algorithms. ! ! @multitable @columnfractions 0.05 0.15 .80 ! @headitem @tab Function @tab Characteristics ! @item @tab quad @tab Low accuracy with nonsmooth integrands ! @item @tab quadv @tab Medium accuracy with smooth integrands ! @item @tab quadl @tab Medium accuracy with smooth integrands. Slower than quadgk. ! @item @tab quadgk @tab Medium accuracy (@math{1e^{-6}}--@math{1e^{-9}}) with smooth integrands. ! @item @tab @tab Handles oscillatory functions and infinite bounds ! @item @tab quadcc @tab Low to High accuracy with nonsmooth/smooth integrands ! @item @tab @tab Handles oscillatory functions, singularities, and infinite bounds ! @end multitable ! ! Here is an example of using @code{quad} to integrate the function ! @tex ! $$ ! f(x) = x \sin (1/x) \sqrt {|1 - x|} ! $$ ! from $x = 0$ to $x = 3$. ! @end tex ! @ifnottex @example ! @var{f}(@var{x}) = @var{x} * sin (1/@var{x}) * sqrt (abs (1 - @var{x})) @end example @noindent ! from @var{x} = 0 to @var{x} = 3. ! @end ifnottex ! ! This is a fairly difficult integration (plot the function over the range ! of integration to see why). ! ! The first step is to define the function: ! ! @example ! @group ! function y = f (x) ! y = x .* sin (1./x) .* sqrt (abs (1 - x)); ! endfunction ! @end group ! @end example ! ! Note the use of the `dot' forms of the operators. This is not necessary for ! the @code{quad} integrator, but is required by the other integrators. In any ! case, it makes it much easier to generate a set of points for plotting because ! it is possible to call the function with a vector argument to produce a vector ! result. ! ! The second step is to call quad with the limits of integration: ! ! @example ! @group ! [q, ier, nfun, err] = quad ("f", 0, 3) ! @result{} 1.9819 ! @result{} 1 ! @result{} 5061 ! @result{} 1.1522e-07 ! @end group ! @end example ! ! Although @code{quad} returns a nonzero value for @var{ier}, the result ! is reasonably accurate (to see why, examine what happens to the result ! if you move the lower bound to 0.1, then 0.01, then 0.001, etc.). ! ! The function "f" can be the string name of a function, a function handle, or ! an inline function. These options make it quite easy to do integration ! without having to fully define a function in an m-file. For example: ! ! @example ! @group ! # Verify integral (x^3) = x^4/4 ! f = inline ("x.^3"); ! quadgk (f, 0, 1) ! @result{} 0.25000 ! ! # Verify gamma function = (n-1)! for n = 4 ! f = @@(x) x.^3 .* exp (-x); ! quadcc (f, 0, Inf) ! @result{} 6.0000 ! @end group ! @end example ! ! @c quad src/DLD-FUNCTIONS/quad.cc ! @anchor{doc-quad} ! @deftypefn {Loadable Function} {@var{q} =} quad (@var{f}, @var{a}, @var{b}) ! @deftypefnx {Loadable Function} {@var{q} =} quad (@var{f}, @var{a}, @var{b}, @var{tol}) ! @deftypefnx {Loadable Function} {@var{q} =} quad (@var{f}, @var{a}, @var{b}, @var{tol}, @var{sing}) ! @deftypefnx {Loadable Function} {[@var{q}, @var{ier}, @var{nfun}, @var{err}] =} quad (@dots{}) ! Numerically evaluate the integral of @var{f} from @var{a} to @var{b} using ! Fortran routines from @w{@sc{quadpack}}. @var{f} is a function handle, ! inline function, or a string containing the name of the function to ! evaluate. The function must have the form @code{y = f (x)} where @var{y} and ! @var{x} are scalars. ! @var{a} and @var{b} are the lower and upper limits of integration. Either ! or both may be infinite. The optional argument @var{tol} is a vector that specifies the desired accuracy of the result. The first element of the vector is the desired absolute tolerance, and the second element is the desired relative tolerance. To choose a relative test only, set the absolute tolerance to zero. To choose an absolute test only, set the relative ! tolerance to zero. Both tolerances default to @code{sqrt(eps)} or ! approximately @math{1.5e^{-8}}. The optional argument @var{sing} is a vector of values at which the integrand is known to be singular. ! The result of the integration is returned in @var{q}. @var{ier} contains an integer error code (0 indicates a successful integration). @var{nfun} indicates the number of function evaluations that were made, and @var{err} contains an estimate of the error in the *************** *** 108,127 **** The function @code{quad_options} can set other optional parameters for @code{quad}. ! Note: because @code{quad} is written in Fortran it ! cannot be called recursively. @seealso{@ref{doc-quad_options,,quad_options}, @ref{doc-quadv,,quadv}, @ref{doc-quadl,,quadl}, @ref{doc-quadgk,,quadgk}, @ref{doc-quadcc,,quadcc}, @ref{doc-trapz,,trapz}, @ref{doc-dblquad,,dblquad}, @ref{doc-triplequad,,triplequad}} @end deftypefn @c quad_options src/DLD-FUNCTIONS/quad.cc @anchor{doc-quad_options} ! @deftypefn {Loadable Function} {} quad_options (@var{opt}, @var{val}) ! When called with two arguments, this function ! allows you set options parameters for the function @code{quad}. ! Given one argument, @code{quad_options} returns the value of the ! corresponding option. If no arguments are supplied, the names of all ! the available options and their current values are displayed. Options include --- 189,212 ---- The function @code{quad_options} can set other optional parameters for @code{quad}. ! Note: because @code{quad} is written in Fortran it cannot be called ! recursively. This prevents its use in integrating over more than one ! variable by routines @code{dblquad} and @code{triplequad}. @seealso{@ref{doc-quad_options,,quad_options}, @ref{doc-quadv,,quadv}, @ref{doc-quadl,,quadl}, @ref{doc-quadgk,,quadgk}, @ref{doc-quadcc,,quadcc}, @ref{doc-trapz,,trapz}, @ref{doc-dblquad,,dblquad}, @ref{doc-triplequad,,triplequad}} @end deftypefn @c quad_options src/DLD-FUNCTIONS/quad.cc @anchor{doc-quad_options} ! @deftypefn {Loadable Function} {} quad_options () ! @deftypefnx {Loadable Function} {val =} quad_options (@var{opt}) ! @deftypefnx {Loadable Function} {} quad_options (@var{opt}, @var{val}) ! Query or set options for the function @code{quad}. ! When called with no arguments, the names of all available options and ! their current values are displayed. ! Given one argument, return the value of the corresponding option. ! When called with two arguments, @code{quad_options} set the option ! @var{opt} to value @var{val}. Options include *************** *** 132,138 **** @item "relative tolerance" Non-negative relative tolerance. If the absolute tolerance is zero, the relative tolerance must be greater than or equal to ! @code{max (50*eps, 0.5e-28)}. @item "single precision absolute tolerance" Absolute tolerance for single precision; may be zero for pure relative --- 217,223 ---- @item "relative tolerance" Non-negative relative tolerance. If the absolute tolerance is zero, the relative tolerance must be greater than or equal to ! @w{@code{max (50*eps, 0.5e-28)}}. @item "single precision absolute tolerance" Absolute tolerance for single precision; may be zero for pure relative *************** *** 141,201 **** @item "single precision relative tolerance" Non-negative relative tolerance for single precision. If the absolute tolerance is zero, the relative tolerance must be greater than or equal to ! @code{max (50*eps, 0.5e-28)}. @end table @end deftypefn ! Here is an example of using @code{quad} to integrate the function ! @tex ! $$ ! f(x) = x \sin (1/x) \sqrt {|1 - x|} ! $$ ! from $x = 0$ to $x = 3$. ! @end tex ! @ifnottex ! ! @example ! @var{f}(@var{x}) = @var{x} * sin (1/@var{x}) * sqrt (abs (1 - @var{x})) ! @end example ! ! @noindent ! from @var{x} = 0 to @var{x} = 3. ! @end ifnottex ! ! This is a fairly difficult integration (plot the function over the range ! of integration to see why). ! ! The first step is to define the function: ! ! @example ! @group ! function y = f (x) ! y = x .* sin (1 ./ x) .* sqrt (abs (1 - x)); ! endfunction ! @end group ! @end example ! ! Note the use of the `dot' forms of the operators. This is not necessary ! for the call to @code{quad}, but it makes it much easier to generate a ! set of points for plotting (because it makes it possible to call the ! function with a vector argument to produce a vector result). ! Then we simply call quad: - @example - @group - [v, ier, nfun, err] = quad ("f", 0, 3) - @result{} 1.9819 - @result{} 1 - @result{} 5061 - @result{} 1.1522e-07 - @end group - @end example - - Although @code{quad} returns a nonzero value for @var{ier}, the result - is reasonably accurate (to see why, examine what happens to the result - if you move the lower bound to 0.1, then 0.01, then 0.001, etc.). @c quadl scripts/general/quadl.m @anchor{doc-quadl} --- 226,278 ---- @item "single precision relative tolerance" Non-negative relative tolerance for single precision. If the absolute tolerance is zero, the relative tolerance must be greater than or equal to ! @w{@code{max (50*eps, 0.5e-28)}}. @end table @end deftypefn ! @c quadv scripts/general/quadv.m ! @anchor{doc-quadv} ! @deftypefn {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}) ! @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}) ! @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}) ! @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}, @var{p1}, @var{p2}, @dots{}) ! @deftypefnx {Function File} {[@var{q}, @var{nfun}] =} quadv (@dots{}) ! Numerically evaluate the integral of @var{f} from @var{a} to @var{b} ! using an adaptive Simpson's rule. ! @var{f} is a function handle, inline function, or string ! containing the name of the function to evaluate. ! @code{quadv} is a vectorized version of @code{quad} and the function ! defined by @var{f} must accept a scalar or vector as input and return a ! scalar, vector, or array as output. ! ! @var{a} and @var{b} are the lower and upper limits of integration. Both ! limits must be finite. ! ! The optional argument @var{tol} defines the tolerance used to stop ! the adaptation procedure. The default value is @math{1e^{-6}}. ! ! The algorithm used by @code{quadv} involves recursively subdividing the ! integration interval and applying Simpson's rule on each subinterval. ! If @var{trace} is true then after computing each of these partial ! integrals display: (1) the total number of function evaluations, ! (2) the left end of the subinterval, (3) the length of the subinterval, ! (4) the approximation of the integral over the subinterval. ! ! Additional arguments @var{p1}, etc., are passed directly to the function ! @var{f}. To use default values for @var{tol} and @var{trace}, one may pass ! empty matrices ([]). ! ! The result of the integration is returned in @var{q}. @var{nfun} indicates ! the number of function evaluations that were made. ! ! Note: @code{quadv} is written in Octave's scripting language and can be ! used recursively in @code{dblquad} and @code{triplequad}, unlike the ! similar @code{quad} function. ! @seealso{@ref{doc-quad,,quad}, @ref{doc-quadl,,quadl}, @ref{doc-quadgk,,quadgk}, @ref{doc-quadcc,,quadcc}, @ref{doc-trapz,,trapz}, @ref{doc-dblquad,,dblquad}, @ref{doc-triplequad,,triplequad}} ! @end deftypefn @c quadl scripts/general/quadl.m @anchor{doc-quadl} *************** *** 204,224 **** @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}) @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}, @var{p1}, @var{p2}, @dots{}) ! Numerically evaluate integral using adaptive Lobatto rule. ! @code{quadl (@var{f}, @var{a}, @var{b})} approximates the integral of ! @code{@var{f}(@var{x})} to machine precision. @var{f} is either a ! function handle, inline function or string containing the name of ! the function to evaluate. The function @var{f} must return a vector ! of output values if given a vector of input values. ! ! If defined, @var{tol} defines the relative tolerance to which to ! which to integrate @code{@var{f}(@var{x})}. While if @var{trace} is ! defined, displays the left end point of the current interval, the ! interval length, and the partial integral. ! ! Additional arguments @var{p1}, etc., are passed directly to @var{f}. ! To use default values for @var{tol} and @var{trace}, one may pass ! empty matrices. Reference: W. Gander and W. Gautschi, @cite{Adaptive Quadrature - Revisited}, BIT Vol. 40, No. 1, March 2000, pp. 84--101. --- 281,308 ---- @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}) @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}, @var{p1}, @var{p2}, @dots{}) ! Numerically evaluate the integral of @var{f} from @var{a} to @var{b} ! using an adaptive Lobatto rule. ! @var{f} is a function handle, inline function, or string ! containing the name of the function to evaluate. ! The function @var{f} must be vectorized and return a vector of output values ! if given a vector of input values. ! ! @var{a} and @var{b} are the lower and upper limits of integration. Both ! limits must be finite. ! ! The optional argument @var{tol} defines the relative tolerance with which ! to perform the integration. The default value is @code{eps}. ! ! The algorithm used by @code{quadl} involves recursively subdividing the ! integration interval. ! If @var{trace} is defined then for each subinterval display: (1) the left ! end of the subinterval, (2) the length of the subinterval, (3) the ! approximation of the integral over the subinterval. ! ! Additional arguments @var{p1}, etc., are passed directly to the function ! @var{f}. To use default values for @var{tol} and @var{trace}, one may pass ! empty matrices ([]). Reference: W. Gander and W. Gautschi, @cite{Adaptive Quadrature - Revisited}, BIT Vol. 40, No. 1, March 2000, pp. 84--101. *************** *** 229,253 **** @c quadgk scripts/general/quadgk.m @anchor{doc-quadgk} ! @deftypefn {Function File} {} quadgk (@var{f}, @var{a}, @var{b}, @var{abstol}, @var{trace}) ! @deftypefnx {Function File} {} quadgk (@var{f}, @var{a}, @var{b}, @var{prop}, @var{val}, @dots{}) @deftypefnx {Function File} {[@var{q}, @var{err}] =} quadgk (@dots{}) ! Numerically evaluate integral using adaptive Gauss-Konrod quadrature. The formulation is based on a proposal by L.F. Shampine, @cite{"Vectorized adaptive quadrature in @sc{matlab}", Journal of Computational and Applied Mathematics, pp131-140, Vol 211, Issue 2, Feb 2008} where all function evaluations at an iteration are ! calculated with a single call to @var{f}. Therefore the function ! @var{f} must be of the form @code{@var{f} (@var{x})} and accept ! vector values of @var{x} and return a vector of the same length ! representing the function evaluations at the given values of @var{x}. ! The function @var{f} can be defined in terms of a function handle, ! inline function or string. ! ! The bounds of the quadrature @code{[@var{a}, @var{b}]} can be finite ! or infinite and contain weak end singularities. Variable ! transformation will be used to treat infinite intervals and weaken ! the singularities. For example: @example quadgk(@@(x) 1 ./ (sqrt (x) .* (x + 1)), 0, Inf) --- 313,341 ---- @c quadgk scripts/general/quadgk.m @anchor{doc-quadgk} ! @deftypefn {Function File} {@var{q} =} quadgk (@var{f}, @var{a}, @var{b}) ! @deftypefnx {Function File} {@var{q} =} quadgk (@var{f}, @var{a}, @var{b}, @var{abstol}) ! @deftypefnx {Function File} {@var{q} =} quadgk (@var{f}, @var{a}, @var{b}, @var{abstol}, @var{trace}) ! @deftypefnx {Function File} {@var{q} =} quadgk (@var{f}, @var{a}, @var{b}, @var{prop}, @var{val}, @dots{}) @deftypefnx {Function File} {[@var{q}, @var{err}] =} quadgk (@dots{}) ! ! Numerically evaluate the integral of @var{f} from @var{a} to @var{b} ! using adaptive Gauss-Konrod quadrature. ! @var{f} is a function handle, inline function, or string ! containing the name of the function to evaluate. The formulation is based on a proposal by L.F. Shampine, @cite{"Vectorized adaptive quadrature in @sc{matlab}", Journal of Computational and Applied Mathematics, pp131-140, Vol 211, Issue 2, Feb 2008} where all function evaluations at an iteration are ! calculated with a single call to @var{f}. Therefore, the function ! @var{f} must be vectorized and must accept a vector of input values @var{x} ! and return an output vector representing the function evaluations at the ! given values of @var{x}. ! ! @var{a} and @var{b} are the lower and upper limits of integration. Either ! or both limits may be infinite or contain weak end singularities. ! Variable transformation will be used to treat any infinite intervals and ! weaken the singularities. For example: @example quadgk(@@(x) 1 ./ (sqrt (x) .* (x + 1)), 0, Inf) *************** *** 258,310 **** element-by-element operator @code{./} and all user functions to @code{quadgk} should do the same. ! The absolute tolerance can be passed as a fourth argument in a manner ! compatible with @code{quadv}. Equally the user can request that ! information on the convergence can be printed is the fifth argument ! is logically true. ! Alternatively, certain properties of @code{quadgk} can be passed as ! pairs @code{@var{prop}, @var{val}}. Valid properties are @table @code @item AbsTol ! Defines the absolute error tolerance for the quadrature. The default absolute tolerance is 1e-10. @item RelTol ! Defines the relative error tolerance for the quadrature. The default relative tolerance is 1e-5. @item MaxIntervalCount @code{quadgk} initially subdivides the interval on which to perform ! the quadrature into 10 intervals. Sub-intervals that have an ! unacceptable error are sub-divided and re-evaluated. If the number of ! sub-intervals exceeds at any point 650 sub-intervals then a poor convergence is signaled and the current estimate of the integral is returned. The property 'MaxIntervalCount' can be used to alter the ! number of sub-intervals that can exist before exiting. @item WayPoints ! If there exists discontinuities in the first derivative of the ! function to integrate, then these can be flagged with the ! @code{"WayPoints"} property. This forces the ends of a sub-interval ! to fall on the breakpoints of the function and can result in significantly improved estimation of the error in the integral, faster ! computation or both. For example, @example ! quadgk (@@(x) abs (1 - x .^ 2), 0, 2, 'Waypoints', 1) @end example @noindent signals the breakpoint in the integrand at @code{@var{x} = 1}. @item Trace ! If logically true, then @code{quadgk} prints information on the convergence of the quadrature at each iteration. @end table ! If any of @var{a}, @var{b} or @var{waypoints} is complex, then the quadrature is treated as a contour integral along a piecewise continuous path defined by the above. In this case the integral is assumed to have no edge singularities. For example, --- 346,402 ---- element-by-element operator @code{./} and all user functions to @code{quadgk} should do the same. ! The optional argument @var{tol} defines the absolute tolerance used to stop ! the integration procedure. The default value is @math{1e^{-10}}. ! The algorithm used by @code{quadgk} involves subdividing the ! integration interval and evaluating each subinterval. ! If @var{trace} is true then after computing each of these partial ! integrals display: (1) the number of subintervals at this step, ! (2) the current estimate of the error @var{err}, (3) the current estimate ! for the integral @var{q}. ! ! Alternatively, properties of @code{quadgk} can be passed to the function as ! pairs @code{"@var{prop}", @var{val}}. Valid properties are @table @code @item AbsTol ! Define the absolute error tolerance for the quadrature. The default absolute tolerance is 1e-10. @item RelTol ! Define the relative error tolerance for the quadrature. The default relative tolerance is 1e-5. @item MaxIntervalCount @code{quadgk} initially subdivides the interval on which to perform ! the quadrature into 10 intervals. Subintervals that have an ! unacceptable error are subdivided and re-evaluated. If the number of ! subintervals exceeds 650 subintervals at any point then a poor convergence is signaled and the current estimate of the integral is returned. The property 'MaxIntervalCount' can be used to alter the ! number of subintervals that can exist before exiting. @item WayPoints ! Discontinuities in the first derivative of the function to integrate can be ! flagged with the @code{"WayPoints"} property. This forces the ends of ! a subinterval to fall on the breakpoints of the function and can result in significantly improved estimation of the error in the integral, faster ! computation, or both. For example, @example ! quadgk (@@(x) abs (1 - x.^2), 0, 2, 'Waypoints', 1) @end example @noindent signals the breakpoint in the integrand at @code{@var{x} = 1}. @item Trace ! If logically true @code{quadgk} prints information on the convergence of the quadrature at each iteration. @end table ! If any of @var{a}, @var{b}, or @var{waypoints} is complex then the quadrature is treated as a contour integral along a piecewise continuous path defined by the above. In this case the integral is assumed to have no edge singularities. For example, *************** *** 320,446 **** integrates @code{log (z)} along the square defined by @code{[1+1i, 1-1i, -1-1i, -1+1i]} ! If two output arguments are requested, then @var{err} returns the ! approximate bounds on the error in the integral @code{abs (@var{q} - ! @var{i})}, where @var{i} is the exact value of the integral. @seealso{@ref{doc-quad,,quad}, @ref{doc-quadv,,quadv}, @ref{doc-quadl,,quadl}, @ref{doc-quadcc,,quadcc}, @ref{doc-trapz,,trapz}, @ref{doc-dblquad,,dblquad}, @ref{doc-triplequad,,triplequad}} @end deftypefn ! @c quadv scripts/general/quadv.m ! @anchor{doc-quadv} ! @deftypefn {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}) ! @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}) ! @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}) ! @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}, @var{p1}, @var{p2}, @dots{}) ! @deftypefnx {Function File} {[@var{q}, @var{fcnt}] =} quadv (@dots{}) ! Numerically evaluate the integral of @var{f} from @var{a} to @var{b} ! using adaptive Simpson's rule. ! @var{f} is either a function handle, inline function or string containing the name of the function to evaluate. ! The function defined by @var{f} may be a scalar, vector or array-valued. ! If a value for @var{tol} is given, it defines the tolerance used to stop ! the adaptation procedure, otherwise the default value of 1e-6 is used. ! The algorithm used by @code{quadv}, involves recursively subdividing the ! integration interval and applying Simpson's rule on each sub-interval. ! If @var{trace} is @var{true}, after computing each of these partial ! integrals, display the total number of function evaluations, the left end ! of the sub-interval, the length of the sub-interval and the approximation ! of the integral over the sub-interval. ! ! Additional arguments @var{p1}, etc., are passed directly to @var{f}. ! To use default values for @var{tol} and @var{trace}, one may pass ! empty matrices. ! @seealso{@ref{doc-quad,,quad}, @ref{doc-quadl,,quadl}, @ref{doc-quadgk,,quadgk}, @ref{doc-quadcc,,quadcc}, @ref{doc-trapz,,trapz}, @ref{doc-dblquad,,dblquad}, @ref{doc-triplequad,,triplequad}} ! @end deftypefn - @c quadcc src/DLD-FUNCTIONS/quadcc.cc - @anchor{doc-quadcc} - @deftypefn {Function File} {[@var{int}, @var{err}, @var{nr_points}] =} quadcc (@var{f}, @var{a}, @var{b}, @var{tol}) - @deftypefnx {Function File} {[@var{int}, @var{err}, @var{nr_points}] =} quadcc (@var{f}, @var{a}, @var{b}, @var{tol}, @var{sing}) - Numerically evaluates an integral using the doubly-adaptive - quadrature described by P. Gonnet in @cite{Increasing the - Reliability of Adaptive Quadrature Using Explicit Interpolants}, - ACM Transactions on Mathematical Software, in Press, 2010. The algorithm uses Clenshaw-Curtis quadrature rules of increasing degree in each interval and bisects the interval if either the function does not appear to be smooth or a rule of maximum ! degree has been reached. The error estimate is computed from the L2-norm of the difference between two successive interpolations of the integrand over the nodes of the respective quadrature rules. ! For example, - @example - int = quadcc (f, a, b, 1.0e-6); - @end example ! @noindent ! computes the integral of a function @var{f} in the interval ! [@var{a}, @var{b}] to the relative precision of six ! decimal digits. ! The integrand @var{f} should accept a vector argument and return a vector ! result containing the integrand evaluated at each element of the ! argument, for example: @example ! f = @@(x) x .* sin (1 ./ x) .* sqrt (abs (1 - x)); @end example ! If the integrand has known singularities or discontinuities ! in any of its derivatives inside the interval, ! as does the above example at x=1, these can be specified in ! the additional argument @var{sing} as follows @example ! int = quadcc (f, a, b, 1.0e-6, [ 1 ]); @end example ! The two additional output variables @var{err} and @var{nr_points} ! return an estimate of the absolute integration error and ! the number of points at which the integrand was evaluated ! respectively. ! If the adaptive integration did not converge, the value of ! @var{err} will be larger than the requested tolerance. It is ! therefore recommended to verify this value for difficult ! integrands. ! ! If either @var{a} or @var{b} are @code{+/-Inf}, @code{quadcc} ! integrates @var{f} by substituting the variable of integration ! with @code{x=tan(pi/2*u)}. ! ! @code{quadcc} is capable of dealing with non-numeric ! values of the integrand such as @code{NaN}, @code{Inf} ! or @code{-Inf}, as in the above example at x=0. ! If the integral diverges and @code{quadcc} detects this, ! a warning is issued and @code{Inf} or @code{-Inf} is returned. ! ! Note that @code{quadcc} is a general purpose quadrature algorithm ! and as such may be less efficient for smooth or otherwise ! well-behaved integrand than other methods such as ! @code{quadgk} or @code{trapz}. ! @seealso{@ref{doc-quad,,quad}, @ref{doc-quadv,,quadv}, @ref{doc-quadl,,quadl}, @ref{doc-quadgk,,quadgk}, @ref{doc-trapz,,trapz}, @ref{doc-dblquad,,dblquad}, @ref{doc-triplequad,,triplequad}} ! @end deftypefn @c trapz scripts/general/trapz.m @anchor{doc-trapz} ! @deftypefn {Function File} {@var{z} =} trapz (@var{y}) ! @deftypefnx {Function File} {@var{z} =} trapz (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{z} =} trapz (@dots{}, @var{dim}) ! ! Numerical integration using trapezoidal method. @code{trapz ! (@var{y})} computes the integral of the @var{y} along the first ! non-singleton dimension. If the argument @var{x} is omitted a ! equally spaced vector is assumed. @code{trapz (@var{x}, @var{y})} ! evaluates the integral with respect to @var{x}. @seealso{@ref{doc-cumtrapz,,cumtrapz}} @end deftypefn --- 412,577 ---- integrates @code{log (z)} along the square defined by @code{[1+1i, 1-1i, -1-1i, -1+1i]} ! The result of the integration is returned in @var{q}. ! @var{err} is an approximate bound on the error in the integral ! @code{abs (@var{q} - @var{I})}, where @var{I} is the exact value of the ! integral. @seealso{@ref{doc-quad,,quad}, @ref{doc-quadv,,quadv}, @ref{doc-quadl,,quadl}, @ref{doc-quadcc,,quadcc}, @ref{doc-trapz,,trapz}, @ref{doc-dblquad,,dblquad}, @ref{doc-triplequad,,triplequad}} @end deftypefn ! @c quadcc src/DLD-FUNCTIONS/quadcc.cc ! @anchor{doc-quadcc} ! @deftypefn {Function File} {@var{q} =} quadcc (@var{f}, @var{a}, @var{b}) ! @deftypefnx {Function File} {@var{q} =} quadcc (@var{f}, @var{a}, @var{b}, @var{tol}) ! @deftypefnx {Function File} {@var{q} =} quadcc (@var{f}, @var{a}, @var{b}, @var{tol}, @var{sing}) ! @deftypefnx {Function File} {[@var{q}, @var{err}, @var{nr_points}] =} quadcc (@dots{}) Numerically evaluate the integral of @var{f} from @var{a} to @var{b} ! using the doubly-adaptive Clenshaw-Curtis quadrature described by P. Gonnet ! in @cite{Increasing the Reliability of Adaptive Quadrature Using Explicit ! Interpolants}. ! @var{f} is a function handle, inline function, or string containing the name of the function to evaluate. ! The function @var{f} must be vectorized and must return a vector of output ! values if given a vector of input values. For example, ! @example ! f = @@(x) x .* sin (1./x) .* sqrt (abs (1 - x)); ! @end example ! @noindent ! which uses the element-by-element `dot' form for all operators. ! @var{a} and @var{b} are the lower and upper limits of integration. Either ! or both limits may be infinite. @code{quadcc} handles an inifinite limit ! by substituting the variable of integration with @code{x=tan(pi/2*u)}. ! ! The optional argument @var{tol} defines the relative tolerance used to stop ! the integration procedure. The default value is @math{1e^{-6}}. ! ! The optional argument @var{sing} contains a list of points where the ! integrand has known singularities, or discontinuities ! in any of its derivatives, inside the integration interval. ! For the example above, which has a discontinuity at x=1, the call to ! @code{quadcc} would be as follows + @example + int = quadcc (f, a, b, 1.0e-6, [ 1 ]); + @end example + + The result of the integration is returned in @var{q}. + @var{err} is an estimate of the absolute integration error and + @var{nr_points} is the number of points at which the integrand was evaluated. + If the adaptive integration did not converge, the value of + @var{err} will be larger than the requested tolerance. Therefore, it is + recommended to verify this value for difficult integrands. + + @code{quadcc} is capable of dealing with non-numeric + values of the integrand such as @code{NaN} or @code{Inf}. + If the integral diverges, and @code{quadcc} detects this, + then a warning is issued and @code{Inf} or @code{-Inf} is returned. + + Note: @code{quadcc} is a general purpose quadrature algorithm + and, as such, may be less efficient for a smooth or otherwise + well-behaved integrand than other methods such as @code{quadgk}. The algorithm uses Clenshaw-Curtis quadrature rules of increasing degree in each interval and bisects the interval if either the function does not appear to be smooth or a rule of maximum ! degree has been reached. The error estimate is computed from the L2-norm of the difference between two successive interpolations of the integrand over the nodes of the respective quadrature rules. ! Reference: P. Gonnet, @cite{Increasing the Reliability of Adaptive ! Quadrature Using Explicit Interpolants}, ACM Transactions on ! Mathematical Software, Vol. 37, Issue 3, Article No. 3, 2010. ! @seealso{@ref{doc-quad,,quad}, @ref{doc-quadv,,quadv}, @ref{doc-quadl,,quadl}, @ref{doc-quadgk,,quadgk}, @ref{doc-trapz,,trapz}, @ref{doc-dblquad,,dblquad}, @ref{doc-triplequad,,triplequad}} ! @end deftypefn ! Sometimes one does not have the function, but only the raw (x, y) points from ! which to perform an integration. This can occur when collecting data in an ! experiment. The @code{trapz} function can integrate these values as shown in ! the following example where "data" has been collected on the cosine function ! over the range [0, pi/2). @example ! @group ! x = 0:0.1:pi/2; # Uniformly spaced points ! y = cos (x); ! trapz (x, y) ! @result{} 0.99666 ! @end group @end example ! The answer is reasonably close to the exact value of 1. Ordinary quadrature ! is sensitive to the characteristics of the integrand. Empirical integration ! depends not just on the integrand, but also on the particular points chosen to ! represent the function. Repeating the example above with the sine function ! over the range [0, pi/2) produces far inferior results. @example ! @group ! x = 0:0.1:pi/2; # Uniformly spaced points ! y = sin (x); ! trapz (x, y) ! @result{} 0.92849 ! @end group @end example ! However, a slightly different choice of data points can change the result ! significantly. The same integration, with the same number of points, but ! spaced differently produces a more accurate answer. ! @example ! @group ! x = linspace (0, pi/2, 16); # Uniformly spaced, but including endpoint ! y = sin (x); ! trapz (x, y) ! @result{} 0.99909 ! @end group ! @end example + In general there may be no way of knowing the best distribution of points ahead + of time. Or the points may come from an experiment where there is no freedom to + select the best distribution. In any case, one must remain aware of this + issue when using @code{trapz}. @c trapz scripts/general/trapz.m @anchor{doc-trapz} ! @deftypefn {Function File} {@var{q} =} trapz (@var{y}) ! @deftypefnx {Function File} {@var{q} =} trapz (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{q} =} trapz (@dots{}, @var{dim}) ! ! Numerically evaluate the integral of points @var{y} using the trapezoidal ! method. ! @w{@code{trapz (@var{y})}} computes the integral of @var{y} along the first ! non-singleton dimension. When the argument @var{x} is omitted an ! equally spaced @var{x} vector with unit spacing (1) is assumed. ! @code{trapz (@var{x}, @var{y})} evaluates the integral with respect ! to the spacing in @var{x} and the values in @var{y}. This is useful if ! the points in @var{y} have been sampled unevenly. ! If the optional @var{dim} argument is given, operate along this dimension. ! ! If @var{x} is not specified then unit spacing will be used. To scale ! the integral to the correct value you must multiply by the actual spacing ! value (deltaX). As an example, the integral of @math{x^3} over the range ! [0, 1] is @math{x^4/4} or 0.25. The following code uses @code{trapz} to ! calculate the integral in three different ways. ! ! @example ! @group ! x = 0:0.1:1; ! y = x.^3; ! q = trapz (y) ! @result{} q = 2.525 # No scaling ! q * 0.1 ! @result{} q = 0.2525 # Approximation to integral by scaling ! trapz (x, y) ! @result{} q = 0.2525 # Same result by specifying @var{x} ! @end group ! @end example @seealso{@ref{doc-cumtrapz,,cumtrapz}} @end deftypefn *************** *** 448,464 **** @c cumtrapz scripts/general/cumtrapz.m @anchor{doc-cumtrapz} ! @deftypefn {Function File} {@var{z} =} cumtrapz (@var{y}) ! @deftypefnx {Function File} {@var{z} =} cumtrapz (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{z} =} cumtrapz (@dots{}, @var{dim}) ! ! Cumulative numerical integration using trapezoidal method. ! @code{cumtrapz (@var{y})} computes the cumulative integral of the ! @var{y} along the first non-singleton dimension. If the argument ! @var{x} is omitted an equally spaced vector is assumed. @code{cumtrapz ! (@var{x}, @var{y})} evaluates the cumulative integral with respect ! to @var{x}. ! @seealso{@ref{doc-trapz,,trapz}, @ref{doc-cumsum,,cumsum}} @end deftypefn --- 579,603 ---- @c cumtrapz scripts/general/cumtrapz.m @anchor{doc-cumtrapz} ! @deftypefn {Function File} {@var{q} =} cumtrapz (@var{y}) ! @deftypefnx {Function File} {@var{q} =} cumtrapz (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{q} =} cumtrapz (@dots{}, @var{dim}) ! ! Cumulative numerical integration of points @var{y} using the trapezoidal ! method. ! @w{@code{cumtrapz (@var{y})}} computes the cumulative integral of @var{y} ! along the first non-singleton dimension. Where @code{trapz} reports ! only the overall integral sum, @code{cumtrapz} reports the current partial ! sum value at each point of @var{y}. When the argument @var{x} is omitted ! an equally spaced @var{x} vector with unit spacing (1) is assumed. ! @code{cumtrapz (@var{x}, @var{y})} evaluates the integral with respect to ! the spacing in @var{x} and the values in @var{y}. This is useful if the ! points in @var{y} have been sampled unevenly. If the optional @var{dim} ! argument is given, operate along this dimension. ! ! If @var{x} is not specified then unit spacing will be used. To scale ! the integral to the correct value you must multiply by the actual spacing ! value (deltaX). @seealso{@ref{doc-trapz,,trapz}, @ref{doc-cumsum,,cumsum}} @end deftypefn *************** *** 521,529 **** @section Functions of Multiple Variables Octave does not have built-in functions for computing the integral of ! functions of multiple variables directly. It is however possible to compute the integral of a function of multiple variables using the ! functions for one-dimensional integrals. To illustrate how the integration can be performed, we will integrate the function --- 660,668 ---- @section Functions of Multiple Variables Octave does not have built-in functions for computing the integral of ! functions of multiple variables directly. It is possible, however, to compute the integral of a function of multiple variables using the ! existing functions for one-dimensional integrals. To illustrate how the integration can be performed, we will integrate the function *************** *** 543,565 **** The first approach creates a function that integrates @math{f} with respect to @math{x}, and then integrates that function with respect to ! @math{y}. Since @code{quad} is written in Fortran it cannot be called recursively. This means that @code{quad} cannot integrate a function that calls @code{quad}, and hence cannot be used to perform the double ! integration. It is however possible with @code{quadl}, which is what ! the following code does. @example @group ! function I = g(y) ! I = ones(1, length(y)); ! for i = 1:length(y) ! f = @@(x) sin(pi.*x.*y(i)).*sqrt(x.*y(i)); ! I(i) = quadl(f, 0, 1); endfor endfunction ! I = quadl("g", 0, 1) @result{} 0.30022 @end group @end example --- 682,704 ---- The first approach creates a function that integrates @math{f} with respect to @math{x}, and then integrates that function with respect to ! @math{y}. Because @code{quad} is written in Fortran it cannot be called recursively. This means that @code{quad} cannot integrate a function that calls @code{quad}, and hence cannot be used to perform the double ! integration. Any of the other integrators, however, can be used which is ! what the following code demonstrates. @example @group ! function q = g(y) ! q = ones (size (y)); ! for i = 1:length (y) ! f = @@(x) sin (pi*x.*y(i)) .* sqrt (x.*y(i)); ! q(i) = quadgk (f, 0, 1); endfor endfunction ! I = quadgk ("g", 0, 1) @result{} 0.30022 @end group @end example *************** *** 570,623 **** @example @group ! I = dblquad (@@(x, y) sin(pi.*x.*y).*sqrt(x.*y), 0, 1, 0, 1) @result{} 0.30022 @end group @end example @c dblquad scripts/general/dblquad.m @anchor{doc-dblquad} ! @deftypefn {Function File} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{tol}, @var{quadf}, @dots{}) ! Numerically evaluate a double integral. The function over with to ! integrate is defined by @code{@var{f}}, and the interval for the ! integration is defined by @code{[@var{xa}, @var{xb}, @var{ya}, ! @var{yb}]}. The function @var{f} must accept a vector @var{x} and a ! scalar @var{y}, and return a vector of the same length as @var{x}. ! ! If defined, @var{tol} defines the absolute tolerance to which to ! which to integrate each sub-integral. Additional arguments, are passed directly to @var{f}. To use the default ! value for @var{tol} one may pass an empty matrix. @seealso{@ref{doc-triplequad,,triplequad}, @ref{doc-quad,,quad}, @ref{doc-quadv,,quadv}, @ref{doc-quadl,,quadl}, @ref{doc-quadgk,,quadgk}, @ref{doc-quadcc,,quadcc}, @ref{doc-trapz,,trapz}} @end deftypefn @c triplequad scripts/general/triplequad.m @anchor{doc-triplequad} ! @deftypefn {Function File} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}, @var{tol}, @var{quadf}, @dots{}) ! Numerically evaluate a triple integral. The function over which to ! integrate is defined by @code{@var{f}}, and the interval for the ! integration is defined by @code{[@var{xa}, @var{xb}, @var{ya}, ! @var{yb}, @var{za}, @var{zb}]}. The function @var{f} must accept a ! vector @var{x} and a scalar @var{y}, and return a vector of the same ! length as @var{x}. ! ! If defined, @var{tol} defines the absolute tolerance to which to ! which to integrate each sub-integral. Additional arguments, are passed directly to @var{f}. To use the default ! value for @var{tol} one may pass an empty matrix. @seealso{@ref{doc-dblquad,,dblquad}, @ref{doc-quad,,quad}, @ref{doc-quadv,,quadv}, @ref{doc-quadl,,quadl}, @ref{doc-quadgk,,quadgk}, @ref{doc-quadcc,,quadcc}, @ref{doc-trapz,,trapz}} @end deftypefn ! The above mentioned approach works but is fairly slow, and that problem ! increases exponentially with the dimensionality the problem. Another possible solution is to use Orthogonal Collocation as described in the ! previous section. The integral of a function @math{f(x,y)} for ! @math{x} and @math{y} between 0 and 1 can be approximated using @math{n} ! points by @tex $$ \int_0^1 \int_0^1 f(x,y) d x d y \approx \sum_{i=1}^n \sum_{j=1}^n q_i q_j f(r_i, r_j), --- 709,785 ---- @example @group ! I = dblquad (@@(x, y) sin (pi*x.*y) .* sqrt (x.*y), 0, 1, 0, 1) @result{} 0.30022 @end group @end example @c dblquad scripts/general/dblquad.m @anchor{doc-dblquad} ! @deftypefn {Function File} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}) ! @deftypefnx {Function File} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{tol}) ! @deftypefnx {Function File} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{tol}, @var{quadf}) ! @deftypefnx {Function File} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{tol}, @var{quadf}, @dots{}) ! Numerically evaluate the double integral of @var{f}. ! @var{f} is a function handle, inline function, or string ! containing the name of the function to evaluate. The function @var{f} must ! have the form @math{z = f(x,y)} where @var{x} is a vector and @var{y} is a ! scalar. It should return a vector of the same length and orientation as ! @var{x}. ! ! @var{xa}, @var{ya} and @var{xb}, @var{yb} are the lower and upper limits of ! integration for x and y respectively. The underlying integrator determines ! whether infinite bounds are accepted. ! ! The optional argument @var{tol} defines the absolute tolerance used to ! integrate each sub-integral. The default value is @math{1e^{-6}}. ! ! The optional argument @var{quadf} specifies which underlying integrator ! function to use. Any choice but @code{quad} is available and the default ! is @code{quadgk}. Additional arguments, are passed directly to @var{f}. To use the default ! value for @var{tol} or @var{quadf} one may pass an empty matrix ([]). @seealso{@ref{doc-triplequad,,triplequad}, @ref{doc-quad,,quad}, @ref{doc-quadv,,quadv}, @ref{doc-quadl,,quadl}, @ref{doc-quadgk,,quadgk}, @ref{doc-quadcc,,quadcc}, @ref{doc-trapz,,trapz}} @end deftypefn @c triplequad scripts/general/triplequad.m @anchor{doc-triplequad} ! @deftypefn {Function File} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}) ! @deftypefnx {Function File} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}, @var{tol}) ! @deftypefnx {Function File} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}, @var{tol}, @var{quadf}) ! @deftypefnx {Function File} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}, @var{tol}, @var{quadf}, @dots{}) ! Numerically evaluate the triple integral of @var{f}. ! @var{f} is a function handle, inline function, or string ! containing the name of the function to evaluate. The function @var{f} must ! have the form @math{w = f(x,y,z)} where either @var{x} or @var{y} is a ! vector and the remaining inputs are scalars. It should return a vector of ! the same length and orientation as @var{x} or @var{y}. ! ! @var{xa}, @var{ya}, @var{za} and @var{xb}, @var{yb}, @var{zb} are the lower ! and upper limits of integration for x, y, and z respectively. The ! underlying integrator determines whether infinite bounds are accepted. ! ! The optional argument @var{tol} defines the absolute tolerance used to ! integrate each sub-integral. The default value is @math{1e^{-6}}. ! ! The optional argument @var{quadf} specifies which underlying integrator ! function to use. Any choice but @code{quad} is available and the default ! is @code{quadgk}. Additional arguments, are passed directly to @var{f}. To use the default ! value for @var{tol} or @var{quadf} one may pass an empty matrix ([]). @seealso{@ref{doc-dblquad,,dblquad}, @ref{doc-quad,,quad}, @ref{doc-quadv,,quadv}, @ref{doc-quadl,,quadl}, @ref{doc-quadgk,,quadgk}, @ref{doc-quadcc,,quadcc}, @ref{doc-trapz,,trapz}} @end deftypefn ! The above mentioned approach works, but is fairly slow, and that problem ! increases exponentially with the dimensionality of the integral. Another possible solution is to use Orthogonal Collocation as described in the ! previous section (@pxref{Orthogonal Collocation}). The integral of a function ! @math{f(x,y)} for @math{x} and @math{y} between 0 and 1 can be approximated ! using @math{n} points by @tex $$ \int_0^1 \int_0^1 f(x,y) d x d y \approx \sum_{i=1}^n \sum_{j=1}^n q_i q_j f(r_i, r_j), *************** *** 628,640 **** @end ifnottex where @math{q} and @math{r} is as returned by @code{colloc(n)}. The generalization to more than two variables is straight forward. The ! following code computes the studied integral using @math{n=7} points. @example @group ! f = @@(x,y) sin(pi*x*y').*sqrt(x*y'); ! n = 7; ! [t, A, B, q] = colloc(n); I = q'*f(t,t)*q; @result{} 0.30022 @end group --- 790,802 ---- @end ifnottex where @math{q} and @math{r} is as returned by @code{colloc(n)}. The generalization to more than two variables is straight forward. The ! following code computes the studied integral using @math{n=8} points. @example @group ! f = @@(x,y) sin (pi*x*y') .* sqrt (x*y'); ! n = 8; ! [t, ~, ~, q] = colloc (n); I = q'*f(t,t)*q; @result{} 0.30022 @end group *************** *** 643,649 **** @noindent It should be noted that the number of points determines the quality of the approximation. If the integration needs to be performed between ! @math{a} and @math{b} instead of 0 and 1, a change of variables is needed. ! ! --- 805,809 ---- @noindent It should be noted that the number of points determines the quality of the approximation. If the integration needs to be performed between ! @math{a} and @math{b}, instead of 0 and 1, then a change of variables is needed. diff -cNr octave-3.4.0/doc/interpreter/quad.txi octave-3.4.1/doc/interpreter/quad.txi *** octave-3.4.0/doc/interpreter/quad.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/quad.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 20,38 **** @chapter Numerical Integration Octave comes with several built-in functions for computing the integral ! of a function numerically. These functions all solve 1-dimensional ! integration problems. @menu * Functions of One Variable:: - * Functions of Multiple Variables:: * Orthogonal Collocation:: @end menu @node Functions of One Variable @section Functions of One Variable ! Octave supports three different algorithms for computing the integral @tex $$ \int_a^b f(x) d x --- 20,38 ---- @chapter Numerical Integration Octave comes with several built-in functions for computing the integral ! of a function numerically (termed quadrature). These functions all solve ! 1-dimensional integration problems. @menu * Functions of One Variable:: * Orthogonal Collocation:: + * Functions of Multiple Variables:: @end menu @node Functions of One Variable @section Functions of One Variable ! Octave supports five different algorithms for computing the integral @tex $$ \int_a^b f(x) d x *************** *** 45,74 **** @item quad Numerical integration based on Gaussian quadrature. @item quadl Numerical integration using an adaptive Lobatto rule. @item quadgk Numerical integration using an adaptive Gauss-Konrod rule. - @item quadv - Numerical integration using an adaptive vectorized Simpson's rule. - @item quadcc Numerical integration using adaptive Clenshaw-Curtis rules. ! @item trapz ! Numerical integration using the trapezoidal method. @end table @noindent ! Besides these functions Octave also allows you to perform cumulative ! numerical integration using the trapezoidal method through the ! @code{cumtrapz} function. ! ! @DOCSTRING(quad) - @DOCSTRING(quad_options) Here is an example of using @code{quad} to integrate the function @tex --- 45,86 ---- @item quad Numerical integration based on Gaussian quadrature. + @item quadv + Numerical integration using an adaptive vectorized Simpson's rule. + @item quadl Numerical integration using an adaptive Lobatto rule. @item quadgk Numerical integration using an adaptive Gauss-Konrod rule. @item quadcc Numerical integration using adaptive Clenshaw-Curtis rules. ! @item trapz, cumtrapz ! Numerical integration of data using the trapezoidal method. @end table @noindent ! The best quadrature algorithm to use depends on the integrand. If you have ! empirical data, rather than a function, the choice is @code{trapz} or ! @code{cumtrapz}. If you are uncertain about the characteristics of the ! integrand, @code{quadcc} will be the most robust as it can handle ! discontinuities, singularities, oscillatory functions, and infinite intervals. ! When the integrand is smooth @code{quadgk} may be the fastest of the ! algorithms. ! ! @multitable @columnfractions 0.05 0.15 .80 ! @headitem @tab Function @tab Characteristics ! @item @tab quad @tab Low accuracy with nonsmooth integrands ! @item @tab quadv @tab Medium accuracy with smooth integrands ! @item @tab quadl @tab Medium accuracy with smooth integrands. Slower than quadgk. ! @item @tab quadgk @tab Medium accuracy (@math{1e^{-6}}--@math{1e^{-9}}) with smooth integrands. ! @item @tab @tab Handles oscillatory functions and infinite bounds ! @item @tab quadcc @tab Low to High accuracy with nonsmooth/smooth integrands ! @item @tab @tab Handles oscillatory functions, singularities, and infinite bounds ! @end multitable Here is an example of using @code{quad} to integrate the function @tex *************** *** 95,115 **** @example @group function y = f (x) ! y = x .* sin (1 ./ x) .* sqrt (abs (1 - x)); endfunction @end group @end example ! Note the use of the `dot' forms of the operators. This is not necessary ! for the call to @code{quad}, but it makes it much easier to generate a ! set of points for plotting (because it makes it possible to call the ! function with a vector argument to produce a vector result). ! Then we simply call quad: @example @group ! [v, ier, nfun, err] = quad ("f", 0, 3) @result{} 1.9819 @result{} 1 @result{} 5061 --- 107,128 ---- @example @group function y = f (x) ! y = x .* sin (1./x) .* sqrt (abs (1 - x)); endfunction @end group @end example ! Note the use of the `dot' forms of the operators. This is not necessary for ! the @code{quad} integrator, but is required by the other integrators. In any ! case, it makes it much easier to generate a set of points for plotting because ! it is possible to call the function with a vector argument to produce a vector ! result. ! The second step is to call quad with the limits of integration: @example @group ! [q, ier, nfun, err] = quad ("f", 0, 3) @result{} 1.9819 @result{} 1 @result{} 5061 *************** *** 121,134 **** is reasonably accurate (to see why, examine what happens to the result if you move the lower bound to 0.1, then 0.01, then 0.001, etc.). ! @DOCSTRING(quadl) ! @DOCSTRING(quadgk) @DOCSTRING(quadv) @DOCSTRING(quadcc) @DOCSTRING(trapz) @DOCSTRING(cumtrapz) --- 134,217 ---- is reasonably accurate (to see why, examine what happens to the result if you move the lower bound to 0.1, then 0.01, then 0.001, etc.). ! The function "f" can be the string name of a function, a function handle, or ! an inline function. These options make it quite easy to do integration ! without having to fully define a function in an m-file. For example: ! @example ! @group ! # Verify integral (x^3) = x^4/4 ! f = inline ("x.^3"); ! quadgk (f, 0, 1) ! @result{} 0.25000 ! ! # Verify gamma function = (n-1)! for n = 4 ! f = @@(x) x.^3 .* exp (-x); ! quadcc (f, 0, Inf) ! @result{} 6.0000 ! @end group ! @end example ! ! @DOCSTRING(quad) ! ! @DOCSTRING(quad_options) @DOCSTRING(quadv) + @DOCSTRING(quadl) + + @DOCSTRING(quadgk) + @DOCSTRING(quadcc) + Sometimes one does not have the function, but only the raw (x, y) points from + which to perform an integration. This can occur when collecting data in an + experiment. The @code{trapz} function can integrate these values as shown in + the following example where "data" has been collected on the cosine function + over the range [0, pi/2). + + @example + @group + x = 0:0.1:pi/2; # Uniformly spaced points + y = cos (x); + trapz (x, y) + @result{} 0.99666 + @end group + @end example + + The answer is reasonably close to the exact value of 1. Ordinary quadrature + is sensitive to the characteristics of the integrand. Empirical integration + depends not just on the integrand, but also on the particular points chosen to + represent the function. Repeating the example above with the sine function + over the range [0, pi/2) produces far inferior results. + + @example + @group + x = 0:0.1:pi/2; # Uniformly spaced points + y = sin (x); + trapz (x, y) + @result{} 0.92849 + @end group + @end example + + However, a slightly different choice of data points can change the result + significantly. The same integration, with the same number of points, but + spaced differently produces a more accurate answer. + + @example + @group + x = linspace (0, pi/2, 16); # Uniformly spaced, but including endpoint + y = sin (x); + trapz (x, y) + @result{} 0.99909 + @end group + @end example + + In general there may be no way of knowing the best distribution of points ahead + of time. Or the points may come from an experiment where there is no freedom to + select the best distribution. In any case, one must remain aware of this + issue when using @code{trapz}. + @DOCSTRING(trapz) @DOCSTRING(cumtrapz) *************** *** 183,191 **** @section Functions of Multiple Variables Octave does not have built-in functions for computing the integral of ! functions of multiple variables directly. It is however possible to compute the integral of a function of multiple variables using the ! functions for one-dimensional integrals. To illustrate how the integration can be performed, we will integrate the function --- 266,274 ---- @section Functions of Multiple Variables Octave does not have built-in functions for computing the integral of ! functions of multiple variables directly. It is possible, however, to compute the integral of a function of multiple variables using the ! existing functions for one-dimensional integrals. To illustrate how the integration can be performed, we will integrate the function *************** *** 205,227 **** The first approach creates a function that integrates @math{f} with respect to @math{x}, and then integrates that function with respect to ! @math{y}. Since @code{quad} is written in Fortran it cannot be called recursively. This means that @code{quad} cannot integrate a function that calls @code{quad}, and hence cannot be used to perform the double ! integration. It is however possible with @code{quadl}, which is what ! the following code does. @example @group ! function I = g(y) ! I = ones(1, length(y)); ! for i = 1:length(y) ! f = @@(x) sin(pi.*x.*y(i)).*sqrt(x.*y(i)); ! I(i) = quadl(f, 0, 1); endfor endfunction ! I = quadl("g", 0, 1) @result{} 0.30022 @end group @end example --- 288,310 ---- The first approach creates a function that integrates @math{f} with respect to @math{x}, and then integrates that function with respect to ! @math{y}. Because @code{quad} is written in Fortran it cannot be called recursively. This means that @code{quad} cannot integrate a function that calls @code{quad}, and hence cannot be used to perform the double ! integration. Any of the other integrators, however, can be used which is ! what the following code demonstrates. @example @group ! function q = g(y) ! q = ones (size (y)); ! for i = 1:length (y) ! f = @@(x) sin (pi*x.*y(i)) .* sqrt (x.*y(i)); ! q(i) = quadgk (f, 0, 1); endfor endfunction ! I = quadgk ("g", 0, 1) @result{} 0.30022 @end group @end example *************** *** 232,238 **** @example @group ! I = dblquad (@@(x, y) sin(pi.*x.*y).*sqrt(x.*y), 0, 1, 0, 1) @result{} 0.30022 @end group @end example --- 315,321 ---- @example @group ! I = dblquad (@@(x, y) sin (pi*x.*y) .* sqrt (x.*y), 0, 1, 0, 1) @result{} 0.30022 @end group @end example *************** *** 241,252 **** @DOCSTRING(triplequad) ! The above mentioned approach works but is fairly slow, and that problem ! increases exponentially with the dimensionality the problem. Another possible solution is to use Orthogonal Collocation as described in the ! previous section. The integral of a function @math{f(x,y)} for ! @math{x} and @math{y} between 0 and 1 can be approximated using @math{n} ! points by @tex $$ \int_0^1 \int_0^1 f(x,y) d x d y \approx \sum_{i=1}^n \sum_{j=1}^n q_i q_j f(r_i, r_j), --- 324,335 ---- @DOCSTRING(triplequad) ! The above mentioned approach works, but is fairly slow, and that problem ! increases exponentially with the dimensionality of the integral. Another possible solution is to use Orthogonal Collocation as described in the ! previous section (@pxref{Orthogonal Collocation}). The integral of a function ! @math{f(x,y)} for @math{x} and @math{y} between 0 and 1 can be approximated ! using @math{n} points by @tex $$ \int_0^1 \int_0^1 f(x,y) d x d y \approx \sum_{i=1}^n \sum_{j=1}^n q_i q_j f(r_i, r_j), *************** *** 257,269 **** @end ifnottex where @math{q} and @math{r} is as returned by @code{colloc(n)}. The generalization to more than two variables is straight forward. The ! following code computes the studied integral using @math{n=7} points. @example @group ! f = @@(x,y) sin(pi*x*y').*sqrt(x*y'); ! n = 7; ! [t, A, B, q] = colloc(n); I = q'*f(t,t)*q; @result{} 0.30022 @end group --- 340,352 ---- @end ifnottex where @math{q} and @math{r} is as returned by @code{colloc(n)}. The generalization to more than two variables is straight forward. The ! following code computes the studied integral using @math{n=8} points. @example @group ! f = @@(x,y) sin (pi*x*y') .* sqrt (x*y'); ! n = 8; ! [t, ~, ~, q] = colloc (n); I = q'*f(t,t)*q; @result{} 0.30022 @end group *************** *** 272,278 **** @noindent It should be noted that the number of points determines the quality of the approximation. If the integration needs to be performed between ! @math{a} and @math{b} instead of 0 and 1, a change of variables is needed. ! ! --- 355,359 ---- @noindent It should be noted that the number of points determines the quality of the approximation. If the integration needs to be performed between ! @math{a} and @math{b}, instead of 0 and 1, then a change of variables is needed. diff -cNr octave-3.4.0/doc/interpreter/signal.texi octave-3.4.1/doc/interpreter/signal.texi *** octave-3.4.0/doc/interpreter/signal.texi 2011-02-08 05:11:32.000000000 -0500 --- octave-3.4.1/doc/interpreter/signal.texi 2011-06-15 11:39:14.000000000 -0400 *************** *** 112,118 **** @example fftw ('dwisdom', @var{wisdom}) ! @end example If @var{wisdom} is an empty matrix, then the wisdom used is cleared. --- 112,118 ---- @example fftw ('dwisdom', @var{wisdom}) ! @end example If @var{wisdom} is an empty matrix, then the wisdom used is cleared. *************** *** 292,297 **** --- 292,298 ---- overlap-add method to filter @var{x} with @var{b} using an N-point FFT. If @var{x} is a matrix, filter each column of the matrix. + @seealso{@ref{doc-filter,,filter}, @ref{doc-filter2,,filter2}} @end deftypefn *************** *** 846,852 **** @item range: "@nospell{onesided}" computes spectrum from [0..nfft/2+1]. "@nospell{twosided}" computes spectrum from [0..nfft-1]. These strings ! can appear at any position in the list input arguments after window. @item Pxx: one-, or two-sided power spectrum. --- 847,853 ---- @item range: "@nospell{onesided}" computes spectrum from [0..nfft/2+1]. "@nospell{twosided}" computes spectrum from [0..nfft-1]. These strings ! can appear at any position in the list input arguments after window. @item Pxx: one-, or two-sided power spectrum. *************** *** 857,863 **** @end deftypefn ! @c rectangle_lw scripts/signal/rectangle_lw.m @anchor{doc-rectangle_lw} @deftypefn {Function File} {} rectangle_lw (@var{n}, @var{b}) Rectangular lag window. Subfunction used for spectral density --- 858,864 ---- @end deftypefn ! @c rectangle_lw scripts/signal/private/rectangle_lw.m @anchor{doc-rectangle_lw} @deftypefn {Function File} {} rectangle_lw (@var{n}, @var{b}) Rectangular lag window. Subfunction used for spectral density *************** *** 865,871 **** @end deftypefn ! @c rectangle_sw scripts/signal/rectangle_sw.m @anchor{doc-rectangle_sw} @deftypefn {Function File} {} rectangle_sw (@var{n}, @var{b}) Rectangular spectral window. Subfunction used for spectral density --- 866,872 ---- @end deftypefn ! @c rectangle_sw scripts/signal/private/rectangle_sw.m @anchor{doc-rectangle_sw} @deftypefn {Function File} {} rectangle_sw (@var{n}, @var{b}) Rectangular spectral window. Subfunction used for spectral density *************** *** 985,991 **** @end deftypefn ! @c triangle_lw scripts/signal/triangle_lw.m @anchor{doc-triangle_lw} @deftypefn {Function File} {} triangle_lw (@var{n}, @var{b}) Triangular lag window. Subfunction used for spectral density --- 986,992 ---- @end deftypefn ! @c triangle_lw scripts/signal/private/triangle_lw.m @anchor{doc-triangle_lw} @deftypefn {Function File} {} triangle_lw (@var{n}, @var{b}) Triangular lag window. Subfunction used for spectral density *************** *** 993,999 **** @end deftypefn ! @c triangle_sw scripts/signal/triangle_sw.m @anchor{doc-triangle_sw} @deftypefn {Function File} {} triangle_sw (@var{n}, @var{b}) Triangular spectral window. Subfunction used for spectral density --- 994,1000 ---- @end deftypefn ! @c triangle_sw scripts/signal/private/triangle_sw.m @anchor{doc-triangle_sw} @deftypefn {Function File} {} triangle_sw (@var{n}, @var{b}) Triangular spectral window. Subfunction used for spectral density diff -cNr octave-3.4.0/doc/interpreter/sparseimages.m octave-3.4.1/doc/interpreter/sparseimages.m *** octave-3.4.0/doc/interpreter/sparseimages.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/sparseimages.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 200,206 **** E = size(elems,1); #No. of elements N = size(nodes,1); #No. of elements ! D = size(elems,2); #dimentions+1 ## Plot FEM Geometry elemx = elems(:,[1,2,3,1])'; --- 200,206 ---- E = size(elems,1); #No. of elements N = size(nodes,1); #No. of elements ! D = size(elems,2); #dimensions+1 ## Plot FEM Geometry elemx = elems(:,[1,2,3,1])'; diff -cNr octave-3.4.0/doc/interpreter/sparse.texi octave-3.4.1/doc/interpreter/sparse.texi *** octave-3.4.0/doc/interpreter/sparse.texi 2011-02-08 05:11:32.000000000 -0500 --- octave-3.4.1/doc/interpreter/sparse.texi 2011-06-15 11:39:14.000000000 -0400 *************** *** 264,270 **** @deftypefn {Function File} {@var{y} =} speye (@var{m}) @deftypefnx {Function File} {@var{y} =} speye (@var{m}, @var{n}) @deftypefnx {Function File} {@var{y} =} speye (@var{sz}) ! Returns a sparse identity matrix. This is significantly more efficient than @code{sparse (eye (@var{m}))} as the full matrix is not constructed. --- 264,270 ---- @deftypefn {Function File} {@var{y} =} speye (@var{m}) @deftypefnx {Function File} {@var{y} =} speye (@var{m}, @var{n}) @deftypefnx {Function File} {@var{y} =} speye (@var{sz}) ! Return a sparse identity matrix. This is significantly more efficient than @code{sparse (eye (@var{m}))} as the full matrix is not constructed. *************** *** 416,422 **** @c full src/data.cc @anchor{doc-full} @deftypefn {Loadable Function} {@var{FM} =} full (@var{SM}) ! returns a full storage matrix from a sparse, diagonal, permutation matrix or a range. @seealso{@ref{doc-sparse,,sparse}} @end deftypefn --- 416,422 ---- @c full src/data.cc @anchor{doc-full} @deftypefn {Loadable Function} {@var{FM} =} full (@var{SM}) ! Return a full storage matrix from a sparse, diagonal, permutation matrix or a range. @seealso{@ref{doc-sparse,,sparse}} @end deftypefn *************** *** 561,567 **** @c nonzeros scripts/sparse/nonzeros.m @anchor{doc-nonzeros} @deftypefn {Function File} {} nonzeros (@var{s}) ! Returns a vector of the non-zero values of the sparse matrix @var{s}. @end deftypefn --- 561,567 ---- @c nonzeros scripts/sparse/nonzeros.m @anchor{doc-nonzeros} @deftypefn {Function File} {} nonzeros (@var{s}) ! Return a vector of the non-zero values of the sparse matrix @var{s}. @end deftypefn *************** *** 744,750 **** @anchor{doc-treeplot} @deftypefn {Function File} {} treeplot (@var{tree}) @deftypefnx {Function File} {} treeplot (@var{tree}, @var{node_style}, @var{edge_style}) ! Produces a graph of tree or forest. The first argument is vector of predecessors, optional parameters @var{node_style} and @var{edge_style} define the output style. The complexity of the algorithm is O(n) in terms of is time and memory requirements. --- 744,750 ---- @anchor{doc-treeplot} @deftypefn {Function File} {} treeplot (@var{tree}) @deftypefnx {Function File} {} treeplot (@var{tree}, @var{node_style}, @var{edge_style}) ! Produce a graph of tree or forest. The first argument is vector of predecessors, optional parameters @var{node_style} and @var{edge_style} define the output style. The complexity of the algorithm is O(n) in terms of is time and memory requirements. *************** *** 1219,1225 **** @code{@var{knobs}(2)} are < 0, respectively. If @code{@var{knobs}(3)} is nonzero, @var{stats} and @var{knobs} are printed. The default is @code{@var{knobs} = [10 10 0]}. Note that @var{knobs} differs from earlier ! versions of colamd @var{stats} is an optional 20-element output vector that provides data about the ordering and the validity of the input matrix @var{S}. Ordering --- 1219,1225 ---- @code{@var{knobs}(2)} are < 0, respectively. If @code{@var{knobs}(3)} is nonzero, @var{stats} and @var{knobs} are printed. The default is @code{@var{knobs} = [10 10 0]}. Note that @var{knobs} differs from earlier ! versions of colamd. @var{stats} is an optional 20-element output vector that provides data about the ordering and the validity of the input matrix @var{S}. Ordering *************** *** 1268,1274 **** @c colperm scripts/sparse/colperm.m @anchor{doc-colperm} @deftypefn {Function File} {@var{p} =} colperm (@var{s}) ! Returns the column permutations such that the columns of @code{@var{s} (:, @var{p})} are ordered in terms of increase number of non-zero elements. If @var{s} is symmetric, then @var{p} is chosen such that @code{@var{s} (@var{p}, @var{p})} orders the rows and --- 1268,1274 ---- @c colperm scripts/sparse/colperm.m @anchor{doc-colperm} @deftypefn {Function File} {@var{p} =} colperm (@var{s}) ! Return the column permutations such that the columns of @code{@var{s} (:, @var{p})} are ordered in terms of increase number of non-zero elements. If @var{s} is symmetric, then @var{p} is chosen such that @code{@var{s} (@var{p}, @var{p})} orders the rows and *************** *** 1373,1379 **** vector p such that @code{@var{S}(@var{p}, @var{p})} tends to have a sparser Cholesky@tie{}factor than @var{S}. Sometimes @code{symamd} works well for symmetric indefinite matrices too. The matrix @var{S} is assumed ! to be symmetric; only the strictly lower triangular part is referenced. @var{S} must be square. @var{knobs} is an optional one- to two-element input vector. If @var{S} is --- 1373,1379 ---- vector p such that @code{@var{S}(@var{p}, @var{p})} tends to have a sparser Cholesky@tie{}factor than @var{S}. Sometimes @code{symamd} works well for symmetric indefinite matrices too. The matrix @var{S} is assumed ! to be symmetric; only the strictly lower triangular part is referenced. @var{S} must be square. @var{knobs} is an optional one- to two-element input vector. If @var{S} is *************** *** 1381,1387 **** @code{max(16,@var{knobs}(1)*sqrt(n))} entries are removed prior to ordering, and ordered last in the output permutation @var{p}. No rows/columns are removed if @code{@var{knobs}(1) < 0}. If @code{@var{knobs} (2)} is nonzero, ! @code{stats} and @var{knobs} are printed. The default is @code{@var{knobs} = [10 0]}. Note that @var{knobs} differs from earlier versions of symamd. @var{stats} is an optional 20-element output vector that provides data --- 1381,1387 ---- @code{max(16,@var{knobs}(1)*sqrt(n))} entries are removed prior to ordering, and ordered last in the output permutation @var{p}. No rows/columns are removed if @code{@var{knobs}(1) < 0}. If @code{@var{knobs} (2)} is nonzero, ! @code{stats} and @var{knobs} are printed. The default is @code{@var{knobs} = [10 0]}. Note that @var{knobs} differs from earlier versions of symamd. @var{stats} is an optional 20-element output vector that provides data *************** *** 1732,1738 **** @c sprank src/DLD-FUNCTIONS/dmperm.cc @anchor{doc-sprank} @deftypefn {Loadable Function} {@var{p} =} sprank (@var{S}) ! @cindex Structural Rank Calculate the structural rank of the sparse matrix @var{S}. Note that only the structure of the matrix is used in this calculation based on --- 1732,1738 ---- @c sprank src/DLD-FUNCTIONS/dmperm.cc @anchor{doc-sprank} @deftypefn {Loadable Function} {@var{p} =} sprank (@var{S}) ! @cindex structural rank Calculate the structural rank of the sparse matrix @var{S}. Note that only the structure of the matrix is used in this calculation based on *************** *** 1807,1813 **** @c spaugment scripts/sparse/spaugment.m @anchor{doc-spaugment} @deftypefn {Function File} {@var{s} =} spaugment (@var{A}, @var{c}) ! Creates the augmented matrix of @var{A}. This is given by @example @group --- 1807,1813 ---- @c spaugment scripts/sparse/spaugment.m @anchor{doc-spaugment} @deftypefn {Function File} {@var{s} =} spaugment (@var{A}, @var{c}) ! Create the augmented matrix of @var{A}. This is given by @example @group *************** *** 1998,2004 **** @end table It is also possible to represent @var{A} by a function denoted @var{af}. @var{af} must be followed by a scalar argument @var{n} defining the length ! of the vector argument accepted by @var{af}. @var{af} can be a function handle, an inline function, or a string. When @var{af} is a string it holds the name of the function to use. --- 1998,2004 ---- @end table It is also possible to represent @var{A} by a function denoted @var{af}. @var{af} must be followed by a scalar argument @var{n} defining the length ! of the vector argument accepted by @var{af}. @var{af} can be a function handle, an inline function, or a string. When @var{af} is a string it holds the name of the function to use. diff -cNr octave-3.4.0/doc/interpreter/spchol.eps octave-3.4.1/doc/interpreter/spchol.eps *** octave-3.4.0/doc/interpreter/spchol.eps 2011-02-08 05:12:04.000000000 -0500 --- octave-3.4.1/doc/interpreter/spchol.eps 2011-06-15 11:39:56.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: spchol.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:12:04 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: spchol.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:56 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:12:04 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:56 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/spchol.pdf and octave-3.4.1/doc/interpreter/spchol.pdf differ diff -cNr octave-3.4.0/doc/interpreter/spcholperm.eps octave-3.4.1/doc/interpreter/spcholperm.eps *** octave-3.4.0/doc/interpreter/spcholperm.eps 2011-02-08 05:12:04.000000000 -0500 --- octave-3.4.1/doc/interpreter/spcholperm.eps 2011-06-15 11:39:57.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: spcholperm.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:12:04 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: spcholperm.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:57 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:12:04 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:57 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/spcholperm.pdf and octave-3.4.1/doc/interpreter/spcholperm.pdf differ Binary files octave-3.4.0/doc/interpreter/spcholperm.png and octave-3.4.1/doc/interpreter/spcholperm.png differ Binary files octave-3.4.0/doc/interpreter/spchol.png and octave-3.4.1/doc/interpreter/spchol.png differ diff -cNr octave-3.4.0/doc/interpreter/spmatrix.eps octave-3.4.1/doc/interpreter/spmatrix.eps *** octave-3.4.0/doc/interpreter/spmatrix.eps 2011-02-08 05:12:03.000000000 -0500 --- octave-3.4.1/doc/interpreter/spmatrix.eps 2011-06-15 11:39:55.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: spmatrix.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:12:03 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: spmatrix.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:55 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:12:03 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:55 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/spmatrix.pdf and octave-3.4.1/doc/interpreter/spmatrix.pdf differ Binary files octave-3.4.0/doc/interpreter/spmatrix.png and octave-3.4.1/doc/interpreter/spmatrix.png differ diff -cNr octave-3.4.0/doc/interpreter/stamp-vti octave-3.4.1/doc/interpreter/stamp-vti *** octave-3.4.0/doc/interpreter/stamp-vti 2011-02-08 05:11:27.000000000 -0500 --- octave-3.4.1/doc/interpreter/stamp-vti 2011-06-15 11:39:08.000000000 -0400 *************** *** 1,4 **** ! @set UPDATED 8 February 2011 ! @set UPDATED-MONTH February 2011 ! @set EDITION 3.4.0 ! @set VERSION 3.4.0 --- 1,4 ---- ! @set UPDATED 15 June 2011 ! @set UPDATED-MONTH June 2011 ! @set EDITION 3.4.1 ! @set VERSION 3.4.1 diff -cNr octave-3.4.0/doc/interpreter/stats.texi octave-3.4.1/doc/interpreter/stats.texi *** octave-3.4.0/doc/interpreter/stats.texi 2011-02-08 05:11:32.000000000 -0500 --- octave-3.4.1/doc/interpreter/stats.texi 2011-06-15 11:39:14.000000000 -0400 *************** *** 461,466 **** --- 461,575 ---- @end deftypefn + @c quantile scripts/statistics/base/quantile.m + @anchor{doc-quantile} + @deftypefn {Function File} {@var{q} =} quantile (@var{x}, @var{p}) + @deftypefnx {Function File} {@var{q} =} quantile (@var{x}, @var{p}, @var{dim}) + @deftypefnx {Function File} {@var{q} =} quantile (@var{x}, @var{p}, @var{dim}, @var{method}) + For a sample, @var{x}, calculate the quantiles, @var{q}, corresponding to + the cumulative probability values in @var{p}. All non-numeric values (NaNs) + of @var{x} are ignored. + + If @var{x} is a matrix, compute the quantiles for each column and + return them in a matrix, such that the i-th row of @var{q} contains + the @var{p}(i)th quantiles of each column of @var{x}. + + The optional argument @var{dim} determines the dimension along which + the quantiles are calculated. If @var{dim} is omitted, and @var{x} is + a vector or matrix, it defaults to 1 (column-wise quantiles). If + @var{x} is an N-D array, @var{dim} defaults to the first non-singleton + dimension. + + The methods available to calculate sample quantiles are the nine methods + used by R (http://www.r-project.org/). The default value is METHOD = 5. + + Discontinuous sample quantile methods 1, 2, and 3 + + @enumerate 1 + @item Method 1: Inverse of empirical distribution function. + + @item Method 2: Similar to method 1 but with averaging at discontinuities. + + @item Method 3: SAS definition: nearest even order statistic. + @end enumerate + + Continuous sample quantile methods 4 through 9, where p(k) is the linear + interpolation function respecting each methods' representative cdf. + + @enumerate 4 + @item Method 4: p(k) = k / n. That is, linear interpolation of the + empirical cdf. + + @item Method 5: p(k) = (k - 0.5) / n. That is a piecewise linear function + where the knots are the values midway through the steps of the empirical + cdf. + + @item Method 6: p(k) = k / (n + 1). + + @item Method 7: p(k) = (k - 1) / (n - 1). + + @item Method 8: p(k) = (k - 1/3) / (n + 1/3). The resulting quantile + estimates are approximately median-unbiased regardless of the distribution + of @var{x}. + + @item Method 9: p(k) = (k - 3/8) / (n + 1/4). The resulting quantile + estimates are approximately unbiased for the expected order statistics if + @var{x} is normally distributed. + @end enumerate + + Hyndman and Fan (1996) recommend method 8. Maxima, S, and R + (versions prior to 2.0.0) use 7 as their default. Minitab and SPSS + use method 6. @sc{matlab} uses method 5. + + References: + + @itemize @bullet + @item Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New + S Language. Wadsworth & Brooks/Cole. + + @item Hyndman, R. J. and Fan, Y. (1996) Sample quantiles in + statistical packages, American Statistician, 50, 361--365. + + @item R: A Language and Environment for Statistical Computing; + @url{http://cran.r-project.org/doc/manuals/fullrefman.pdf}. + @end itemize + + Examples: + + @example + @group + x = randi (1000, [10, 1]); # Create random empirical data in range 1-1000 + q = quantile (x, [0, 1]); # Return minimum, maximum of empirical distribution + q = quantile (x, [0.25 0.5 0.75]); # Return quartiles of empirical distribution + @end group + @end example + @seealso{@ref{doc-prctile,,prctile}} + @end deftypefn + + + @c prctile scripts/statistics/base/prctile.m + @anchor{doc-prctile} + @deftypefn {Function File} {@var{q} =} prctile (@var{x}) + @deftypefnx {Function File} {@var{q} =} prctile (@var{x}, @var{p}) + @deftypefnx {Function File} {@var{q} =} prctile (@var{x}, @var{p}, @var{dim}) + For a sample @var{x}, compute the quantiles, @var{q}, corresponding + to the cumulative probability values, @var{p}, in percent. All non-numeric + values (NaNs) of @var{x} are ignored. + + If @var{x} is a matrix, compute the percentiles for each column and + return them in a matrix, such that the i-th row of @var{y} contains the + @var{p}(i)th percentiles of each column of @var{x}. + + If @var{p} is unspecified, return the quantiles for @code{[0 25 50 75 100]}. + The optional argument @var{dim} determines the dimension along which + the percentiles are calculated. If @var{dim} is omitted, and @var{x} is + a vector or matrix, it defaults to 1 (column-wise quantiles). When + @var{x} is an N-D array, @var{dim} defaults to the first non-singleton + dimension. + @seealso{@ref{doc-quantile,,quantile}} + @end deftypefn + + A summary view of a data set can be generated quickly with the @code{statistics} function. *************** *** 645,650 **** --- 754,774 ---- @end deftypefn + @c runlength scripts/statistics/base/runlength.m + @anchor{doc-runlength} + @deftypefn {Function File} {[count, value] =} runlength (@var{x}) + Find the lengths of all sequences of common values. Return the + vector of lengths and the value that was repeated. + + @example + @group + runlength ([2, 2, 0, 4, 4, 4, 0, 1, 1, 1, 1]) + @result{} [2, 1, 3, 1, 4] + @end group + @end example + @end deftypefn + + @c probit scripts/statistics/base/probit.m @anchor{doc-probit} @deftypefn {Function File} {} probit (@var{p}) *************** *** 732,737 **** --- 856,862 ---- @deftypefn {Function File} {[@var{q}, @var{s}] =} qqplot (@var{x}) @deftypefnx {Function File} {[@var{q}, @var{s}] =} qqplot (@var{x}, @var{dist}) @deftypefnx {Function File} {[@var{q}, @var{s}] =} qqplot (@var{x}, @var{dist}, @var{params}) + @deftypefnx {Function File} {} qqplot (@dots{}) Perform a QQ-plot (quantile plot). If F is the CDF of the distribution @var{dist} with parameters *************** *** 749,755 **** distribution on [2,4] and @var{x}, use @example ! qqplot (x, "uniform", 2, 4) @end example @noindent --- 874,880 ---- distribution on [2,4] and @var{x}, use @example ! qqplot (x, "unif", 2, 4) @end example @noindent *************** *** 1041,1058 **** &F && fpdf && fcdf && finv&\cr &Gamma && gampdf && gamcdf && gaminv&\cr &Geometric && geopdf && geocdf && geoinv&\cr ! &Hypergeometric && hygepdf && hygecdf && hygeinv&\cr &Kolmogorov Smirnov && {\it Not Available} && kolmogorov\_&& {\it Not Available}&\cr & && && smirnov\_cdf &&&\cr ! &Laplace && laplace\_pdf && laplace\_cdf && laplace\_inv&\cr ! &Logistic && logistic\_pdf && logistic\_cdf && logistic\_inv&\cr &Log-Normal && lognpdf && logncdf && logninv&\cr &Univariate Normal && normpdf && normcdf && norminv&\cr &Pascal && nbinpdf && nbincdf && nbininv&\cr &Poisson && poisspdf && poisscdf && poissinv&\cr &Standard Normal && stdnormal\_pdf && stdnormal\_cdf && stdnormal\_inv&\cr &t (Student) && tpdf && tcdf && tinv&\cr ! &Univariate Discrete && unidpdf && unidcdf && unidinv&\cr &Uniform && unifpdf && unifcdf && unifinv&\cr &Weibull && wblpdf && wblcdf && wblinv&\cr \noalign{\hrule height 0.6pt} --- 1166,1183 ---- &F && fpdf && fcdf && finv&\cr &Gamma && gampdf && gamcdf && gaminv&\cr &Geometric && geopdf && geocdf && geoinv&\cr ! &Hypergeometric && hygepdf && hygecdf && hygeinv&\cr &Kolmogorov Smirnov && {\it Not Available} && kolmogorov\_&& {\it Not Available}&\cr & && && smirnov\_cdf &&&\cr ! &Laplace && laplace\_pdf && laplace\_cdf && laplace\_inv&\cr ! &Logistic && logistic\_pdf && logistic\_cdf && logistic\_inv&\cr &Log-Normal && lognpdf && logncdf && logninv&\cr &Univariate Normal && normpdf && normcdf && norminv&\cr &Pascal && nbinpdf && nbincdf && nbininv&\cr &Poisson && poisspdf && poisscdf && poissinv&\cr &Standard Normal && stdnormal\_pdf && stdnormal\_cdf && stdnormal\_inv&\cr &t (Student) && tpdf && tcdf && tinv&\cr ! &Uniform Discrete && unidpdf && unidcdf && unidinv&\cr &Uniform && unifpdf && unifcdf && unifinv&\cr &Weibull && wblpdf && wblcdf && wblinv&\cr \noalign{\hrule height 0.6pt} *************** *** 1737,1744 **** @anchor{doc-unidpdf} @deftypefn {Function File} {} unidpdf (@var{x}, @var{v}) For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of a univariate discrete distribution which assumes the values in @var{v} with equal probability. @end deftypefn --- 1862,1871 ---- @anchor{doc-unidpdf} @deftypefn {Function File} {} unidpdf (@var{x}, @var{v}) For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of a discrete uniform distribution which assumes the values in @var{v} with equal probability. + If @var{v} is a scalar then @code{1/@var{v}} is the probability of a + single element. @end deftypefn *************** *** 1746,1753 **** @anchor{doc-unidcdf} @deftypefn {Function File} {} unidcdf (@var{x}, @var{v}) For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of a univariate discrete distribution which assumes the values in @var{v} with equal probability. @end deftypefn --- 1873,1882 ---- @anchor{doc-unidcdf} @deftypefn {Function File} {} unidcdf (@var{x}, @var{v}) For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of a discrete uniform distribution which assumes the values in @var{v} with equal probability. + If @var{v} is a scalar then @code{1/@var{v}} is the probability of a + single element. @end deftypefn *************** *** 1755,1762 **** @anchor{doc-unidinv} @deftypefn {Function File} {} unidinv (@var{x}, @var{v}) For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the univariate discrete distribution which assumes the ! values in @var{v} with equal probability @end deftypefn --- 1884,1893 ---- @anchor{doc-unidinv} @deftypefn {Function File} {} unidinv (@var{x}, @var{v}) For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the discrete uniform distribution which assumes the ! values in @var{v} with equal probability. ! If @var{v} is a scalar then @code{1/@var{v}} is the probability of a ! single element. @end deftypefn *************** *** 2847,2855 **** @deftypefn {Function File} {} unidrnd (@var{mx}); @deftypefnx {Function File} {} unidrnd (@var{mx}, @var{v}); @deftypefnx {Function File} {} unidrnd (@var{mx}, @var{m}, @var{n}, @dots{}); ! Return random values from discrete uniform distribution, with maximum ! value(s) given by the integer @var{mx}, which may be a scalar or ! multi-dimensional array. If @var{mx} is a scalar, the size of the result is specified by the vector @var{v}, or by the optional arguments @var{m}, @var{n}, --- 2978,2986 ---- @deftypefn {Function File} {} unidrnd (@var{mx}); @deftypefnx {Function File} {} unidrnd (@var{mx}, @var{v}); @deftypefnx {Function File} {} unidrnd (@var{mx}, @var{m}, @var{n}, @dots{}); ! Return random values from a discrete uniform distribution with maximum ! value(s) given by the integer @var{mx} (which may be a scalar or ! multi-dimensional array). If @var{mx} is a scalar, the size of the result is specified by the vector @var{v}, or by the optional arguments @var{m}, @var{n}, diff -cNr octave-3.4.0/doc/interpreter/stats.txi octave-3.4.1/doc/interpreter/stats.txi *** octave-3.4.0/doc/interpreter/stats.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/stats.txi 2011-06-15 11:13:48.000000000 -0400 *************** *** 96,101 **** --- 96,105 ---- @DOCSTRING(moment) + @DOCSTRING(quantile) + + @DOCSTRING(prctile) + A summary view of a data set can be generated quickly with the @code{statistics} function. *************** *** 127,132 **** --- 131,138 ---- @DOCSTRING(run_count) + @DOCSTRING(runlength) + @DOCSTRING(probit) @DOCSTRING(logit) *************** *** 205,222 **** &F && fpdf && fcdf && finv&\cr &Gamma && gampdf && gamcdf && gaminv&\cr &Geometric && geopdf && geocdf && geoinv&\cr ! &Hypergeometric && hygepdf && hygecdf && hygeinv&\cr &Kolmogorov Smirnov && {\it Not Available} && kolmogorov\_&& {\it Not Available}&\cr & && && smirnov\_cdf &&&\cr ! &Laplace && laplace\_pdf && laplace\_cdf && laplace\_inv&\cr ! &Logistic && logistic\_pdf && logistic\_cdf && logistic\_inv&\cr &Log-Normal && lognpdf && logncdf && logninv&\cr &Univariate Normal && normpdf && normcdf && norminv&\cr &Pascal && nbinpdf && nbincdf && nbininv&\cr &Poisson && poisspdf && poisscdf && poissinv&\cr &Standard Normal && stdnormal\_pdf && stdnormal\_cdf && stdnormal\_inv&\cr &t (Student) && tpdf && tcdf && tinv&\cr ! &Univariate Discrete && unidpdf && unidcdf && unidinv&\cr &Uniform && unifpdf && unifcdf && unifinv&\cr &Weibull && wblpdf && wblcdf && wblinv&\cr \noalign{\hrule height 0.6pt} --- 211,228 ---- &F && fpdf && fcdf && finv&\cr &Gamma && gampdf && gamcdf && gaminv&\cr &Geometric && geopdf && geocdf && geoinv&\cr ! &Hypergeometric && hygepdf && hygecdf && hygeinv&\cr &Kolmogorov Smirnov && {\it Not Available} && kolmogorov\_&& {\it Not Available}&\cr & && && smirnov\_cdf &&&\cr ! &Laplace && laplace\_pdf && laplace\_cdf && laplace\_inv&\cr ! &Logistic && logistic\_pdf && logistic\_cdf && logistic\_inv&\cr &Log-Normal && lognpdf && logncdf && logninv&\cr &Univariate Normal && normpdf && normcdf && norminv&\cr &Pascal && nbinpdf && nbincdf && nbininv&\cr &Poisson && poisspdf && poisscdf && poissinv&\cr &Standard Normal && stdnormal\_pdf && stdnormal\_cdf && stdnormal\_inv&\cr &t (Student) && tpdf && tcdf && tinv&\cr ! &Uniform Discrete && unidpdf && unidcdf && unidinv&\cr &Uniform && unifpdf && unifcdf && unifinv&\cr &Weibull && wblpdf && wblcdf && wblinv&\cr \noalign{\hrule height 0.6pt} diff -cNr octave-3.4.0/doc/interpreter/strings.texi octave-3.4.1/doc/interpreter/strings.texi *** octave-3.4.0/doc/interpreter/strings.texi 2011-02-08 05:11:33.000000000 -0500 --- octave-3.4.1/doc/interpreter/strings.texi 2011-06-15 11:39:14.000000000 -0400 *************** *** 1147,1155 **** @deftypefnx {Loadable Function} {[@dots{}] =} regexp (@var{str}, @var{pat}, "@var{opt1}", @dots{}) Regular expression string matching. Search for @var{pat} in @var{str} and return the positions and substrings of any matches, or empty values if there ! are none. Note, some features and extended options are only available when ! Octave is compiled with support for Perl Compatible Regular Expressions ! (PCRE). The matched pattern @var{pat} can include any of the standard regex operators, including: --- 1147,1153 ---- @deftypefnx {Loadable Function} {[@dots{}] =} regexp (@var{str}, @var{pat}, "@var{opt1}", @dots{}) Regular expression string matching. Search for @var{pat} in @var{str} and return the positions and substrings of any matches, or empty values if there ! are none. The matched pattern @var{pat} can include any of the standard regex operators, including: *************** *** 1186,1196 **** and "]". If the first character is "^" then the pattern is inverted and any character except those listed between brackets will match. ! With PCRE support, escape sequences defined below can be used inside list operators. For example, a template for a floating point number might be ! @code{[-+.\d]+}. POSIX regular expressions do not use escape sequences ! and any backslash @samp{\} will be interpreted literally as one ! of the list of characters to match. @item () Grouping operator --- 1184,1192 ---- and "]". If the first character is "^" then the pattern is inverted and any character except those listed between brackets will match. ! Escape sequences defined below can also be used inside list operators. For example, a template for a floating point number might be ! @code{[-+.\d]+}. @item () Grouping operator *************** *** 1237,1250 **** @item \d Match any digit - This sequence is only available with PCRE support. For POSIX regular - expressions use the following list operator @code{[0-9]}. - @item \D Match any non-digit - - This sequence is only available with PCRE support. For POSIX regular - expressions use the following list operator @code{[^0-9]}. @end table The outputs of @code{regexp} default to the order given below --- 1233,1240 ---- *************** *** 1269,1275 **** @item nm A structure containing the text of each matched named token, with the name being used as the fieldname. A named token is denoted by ! @code{(?@dots{})} and is only available with PCRE support. @end table Particular output arguments, or the order of the output arguments, can be --- 1259,1265 ---- @item nm A structure containing the text of each matched named token, with the name being used as the fieldname. A named token is denoted by ! @code{(?@dots{})}. @end table Particular output arguments, or the order of the output arguments, can be *************** *** 1295,1343 **** @item matchcase Make the matching case sensitive. (default) ! Alternatively, use (?-i) in the pattern when PCRE is available. @item ignorecase Ignore case when matching the pattern to the string. ! Alternatively, use (?i) in the pattern when PCRE is available. @item stringanchors ! Match the anchor characters at the beginning and end of the string. (default) ! Alternatively, use (?-m) in the pattern when PCRE is available. @item lineanchors Match the anchor characters at the beginning and end of the line. - Only available when Octave is compiled with PCRE. ! Alternatively, use (?m) in the pattern when PCRE is available. @item dotall The pattern @code{.} matches all characters including the newline character. (default) ! Alternatively, use (?s) in the pattern when PCRE is available. @item dotexceptnewline The pattern @code{.} matches all characters except the newline character. - Only available when Octave is compiled with PCRE. ! Alternatively, use (?-s) in the pattern when PCRE is available. @item literalspacing All characters in the pattern, including whitespace, are significant and are used in pattern matching. (default) ! Alternatively, use (?-x) in the pattern when PCRE is available. @item freespacing The pattern may include arbitrary whitespace and also comments beginning with the character @samp{#}. - Only available when Octave is compiled with PCRE. ! Alternatively, use (?x) in the pattern when PCRE is available. @end table @seealso{@ref{doc-regexpi,,regexpi}, @ref{doc-strfind,,strfind}, @ref{doc-regexprep,,regexprep}} --- 1285,1330 ---- @item matchcase Make the matching case sensitive. (default) ! Alternatively, use (?-i) in the pattern. @item ignorecase Ignore case when matching the pattern to the string. ! Alternatively, use (?i) in the pattern. @item stringanchors ! Match the anchor characters at the beginning and end of the string. (default) ! Alternatively, use (?-m) in the pattern. @item lineanchors Match the anchor characters at the beginning and end of the line. ! Alternatively, use (?m) in the pattern. @item dotall The pattern @code{.} matches all characters including the newline character. (default) ! Alternatively, use (?s) in the pattern. @item dotexceptnewline The pattern @code{.} matches all characters except the newline character. ! Alternatively, use (?-s) in the pattern. @item literalspacing All characters in the pattern, including whitespace, are significant and are used in pattern matching. (default) ! Alternatively, use (?-x) in the pattern. @item freespacing The pattern may include arbitrary whitespace and also comments beginning with the character @samp{#}. ! Alternatively, use (?x) in the pattern. @end table @seealso{@ref{doc-regexpi,,regexpi}, @ref{doc-strfind,,strfind}, @ref{doc-regexprep,,regexprep}} *************** *** 1698,1705 **** case each element is converted and an array of the same dimensions is returned. ! @code{str2double} can replace @code{str2num}, and it avoids the use of ! @code{eval} on unknown data. @seealso{@ref{doc-str2num,,str2num}} @end deftypefn --- 1685,1695 ---- case each element is converted and an array of the same dimensions is returned. ! @code{str2double} returns NaN for elements of @var{s} which cannot be ! converted. ! ! @code{str2double} can replace @code{str2num}, and it avoids the security ! risk of using @code{eval} on unknown data. @seealso{@ref{doc-str2num,,str2num}} @end deftypefn *************** *** 1776,1783 **** @anchor{doc-tolower} @deftypefn {Mapping Function} {} tolower (@var{s}) @deftypefnx {Mapping Function} {} lower (@var{s}) ! Return a copy of the string or cell string @var{s}, with each upper-case ! character replaced by the corresponding lower-case one; non-alphabetic characters are left unchanged. For example: @example --- 1766,1773 ---- @anchor{doc-tolower} @deftypefn {Mapping Function} {} tolower (@var{s}) @deftypefnx {Mapping Function} {} lower (@var{s}) ! Return a copy of the string or cell string @var{s}, with each uppercase ! character replaced by the corresponding lowercase one; non-alphabetic characters are left unchanged. For example: @example *************** *** 1792,1801 **** @c toupper src/mappers.cc @anchor{doc-toupper} ! @deftypefn {Built-in Function} {} toupper (@var{s}) ! @deftypefnx {Built-in Function} {} upper (@var{s}) ! Return a copy of the string or cell string @var{s}, with each lower-case ! character replaced by the corresponding upper-case one; non-alphabetic characters are left unchanged. For example: @example --- 1782,1791 ---- @c toupper src/mappers.cc @anchor{doc-toupper} ! @deftypefn {Mapping Function} {} toupper (@var{s}) ! @deftypefnx {Mapping Function} {} upper (@var{s}) ! Return a copy of the string or cell string @var{s}, with each lowercase ! character replaced by the corresponding uppercase one; non-alphabetic characters are left unchanged. For example: @example *************** *** 1882,1924 **** @end deftypefn - @c isascii src/mappers.cc - @anchor{doc-isascii} - @deftypefn {Mapping Function} {} isascii (@var{s}) - Return a logical array which is true where the elements of @var{s} are - ASCII characters (in the range 0 to 127 decimal) and false where they are - not. - @end deftypefn - - - @c iscntrl src/mappers.cc - @anchor{doc-iscntrl} - @deftypefn {Mapping Function} {} iscntrl (@var{s}) - Return a logical array which is true where the elements of @var{s} are - control characters and false where they are not. - @seealso{@ref{doc-ispunct,,ispunct}, @ref{doc-isspace,,isspace}, @ref{doc-isalpha,,isalpha}, @ref{doc-isdigit,,isdigit}} - @end deftypefn - - - @c isdigit src/mappers.cc - @anchor{doc-isdigit} - @deftypefn {Mapping Function} {} isdigit (@var{s}) - Return a logical array which is true where the elements of @var{s} are - decimal digits (0-9) and false where they are not. - @seealso{@ref{doc-isxdigit,,isxdigit}, @ref{doc-isalpha,,isalpha}, @ref{doc-isletter,,isletter}, @ref{doc-ispunct,,ispunct}, @ref{doc-isspace,,isspace}, @ref{doc-iscntrl,,iscntrl}} - @end deftypefn - - - @c isgraph src/mappers.cc - @anchor{doc-isgraph} - @deftypefn {Mapping Function} {} isgraph (@var{s}) - Return a logical array which is true where the elements of @var{s} are - printable characters (but not the space character) and false where they are - not. - @seealso{@ref{doc-isprint,,isprint}} - @end deftypefn - - @c isletter scripts/strings/isletter.m @anchor{doc-isletter} @deftypefn {Function File} {} isletter (@var{s}) --- 1872,1877 ---- *************** *** 1933,1950 **** @anchor{doc-islower} @deftypefn {Mapping Function} {} islower (@var{s}) Return a logical array which is true where the elements of @var{s} are ! lower case letters and false where they are not. @seealso{@ref{doc-isupper,,isupper}, @ref{doc-isalpha,,isalpha}, @ref{doc-isletter,,isletter}, @ref{doc-isalnum,,isalnum}} @end deftypefn ! @c isprint src/mappers.cc ! @anchor{doc-isprint} ! @deftypefn {Mapping Function} {} isprint (@var{s}) Return a logical array which is true where the elements of @var{s} are ! printable characters (including the space character) and false where they ! are not. ! @seealso{@ref{doc-isgraph,,isgraph}} @end deftypefn --- 1886,1920 ---- @anchor{doc-islower} @deftypefn {Mapping Function} {} islower (@var{s}) Return a logical array which is true where the elements of @var{s} are ! lowercase letters and false where they are not. @seealso{@ref{doc-isupper,,isupper}, @ref{doc-isalpha,,isalpha}, @ref{doc-isletter,,isletter}, @ref{doc-isalnum,,isalnum}} @end deftypefn ! @c isupper src/mappers.cc ! @anchor{doc-isupper} ! @deftypefn {Mapping Function} {} isupper (@var{s}) Return a logical array which is true where the elements of @var{s} are ! uppercase letters and false where they are not. ! @seealso{@ref{doc-islower,,islower}, @ref{doc-isalpha,,isalpha}, @ref{doc-isletter,,isletter}, @ref{doc-isalnum,,isalnum}} ! @end deftypefn ! ! ! @c isdigit src/mappers.cc ! @anchor{doc-isdigit} ! @deftypefn {Mapping Function} {} isdigit (@var{s}) ! Return a logical array which is true where the elements of @var{s} are ! decimal digits (0-9) and false where they are not. ! @seealso{@ref{doc-isxdigit,,isxdigit}, @ref{doc-isalpha,,isalpha}, @ref{doc-isletter,,isletter}, @ref{doc-ispunct,,ispunct}, @ref{doc-isspace,,isspace}, @ref{doc-iscntrl,,iscntrl}} ! @end deftypefn ! ! ! @c isxdigit src/mappers.cc ! @anchor{doc-isxdigit} ! @deftypefn {Mapping Function} {} isxdigit (@var{s}) ! Return a logical array which is true where the elements of @var{s} are ! hexadecimal digits (0-9 and @nospell{a-fA-F}). ! @seealso{@ref{doc-isdigit,,isdigit}} @end deftypefn *************** *** 1967,1987 **** @end deftypefn ! @c isupper src/mappers.cc ! @anchor{doc-isupper} ! @deftypefn {Mapping Function} {} isupper (@var{s}) Return a logical array which is true where the elements of @var{s} are ! upper case letters and false where they are not. ! @seealso{@ref{doc-islower,,islower}, @ref{doc-isalpha,,isalpha}, @ref{doc-isletter,,isletter}, @ref{doc-isalnum,,isalnum}} @end deftypefn ! @c isxdigit src/mappers.cc ! @anchor{doc-isxdigit} ! @deftypefn {Mapping Function} {} isxdigit (@var{s}) Return a logical array which is true where the elements of @var{s} are ! hexadecimal digits (0-9 and @nospell{a-fA-F}). ! @seealso{@ref{doc-isdigit,,isdigit}} @end deftypefn --- 1937,1977 ---- @end deftypefn ! @c iscntrl src/mappers.cc ! @anchor{doc-iscntrl} ! @deftypefn {Mapping Function} {} iscntrl (@var{s}) Return a logical array which is true where the elements of @var{s} are ! control characters and false where they are not. ! @seealso{@ref{doc-ispunct,,ispunct}, @ref{doc-isspace,,isspace}, @ref{doc-isalpha,,isalpha}, @ref{doc-isdigit,,isdigit}} @end deftypefn ! @c isgraph src/mappers.cc ! @anchor{doc-isgraph} ! @deftypefn {Mapping Function} {} isgraph (@var{s}) Return a logical array which is true where the elements of @var{s} are ! printable characters (but not the space character) and false where they are ! not. ! @seealso{@ref{doc-isprint,,isprint}} ! @end deftypefn ! ! ! @c isprint src/mappers.cc ! @anchor{doc-isprint} ! @deftypefn {Mapping Function} {} isprint (@var{s}) ! Return a logical array which is true where the elements of @var{s} are ! printable characters (including the space character) and false where they ! are not. ! @seealso{@ref{doc-isgraph,,isgraph}} ! @end deftypefn ! ! ! @c isascii src/mappers.cc ! @anchor{doc-isascii} ! @deftypefn {Mapping Function} {} isascii (@var{s}) ! Return a logical array which is true where the elements of @var{s} are ! ASCII characters (in the range 0 to 127 decimal) and false where they are ! not. @end deftypefn *************** *** 2013,2022 **** True for characters that are alphabetic or digits. @item "lower" ! True for lower-case letters. @item "upper" ! True for upper-case letters. @item "digit" True for decimal digits (0-9). --- 2003,2012 ---- True for characters that are alphabetic or digits. @item "lower" ! True for lowercase letters. @item "upper" ! True for uppercase letters. @item "digit" True for decimal digits (0-9). diff -cNr octave-3.4.0/doc/interpreter/strings.txi octave-3.4.1/doc/interpreter/strings.txi *** octave-3.4.0/doc/interpreter/strings.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/strings.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 517,542 **** @DOCSTRING(isalpha) - @DOCSTRING(isascii) - - @DOCSTRING(iscntrl) - - @DOCSTRING(isdigit) - - @DOCSTRING(isgraph) - @DOCSTRING(isletter) @DOCSTRING(islower) ! @DOCSTRING(isprint) @DOCSTRING(ispunct) @DOCSTRING(isspace) ! @DOCSTRING(isupper) ! @DOCSTRING(isxdigit) @DOCSTRING(isstrprop) --- 517,542 ---- @DOCSTRING(isalpha) @DOCSTRING(isletter) @DOCSTRING(islower) ! @DOCSTRING(isupper) ! ! @DOCSTRING(isdigit) ! ! @DOCSTRING(isxdigit) @DOCSTRING(ispunct) @DOCSTRING(isspace) ! @DOCSTRING(iscntrl) ! @DOCSTRING(isgraph) ! ! @DOCSTRING(isprint) ! ! @DOCSTRING(isascii) @DOCSTRING(isstrprop) diff -cNr octave-3.4.0/doc/interpreter/system.texi octave-3.4.1/doc/interpreter/system.texi *** octave-3.4.0/doc/interpreter/system.texi 2011-02-08 05:11:33.000000000 -0500 --- octave-3.4.1/doc/interpreter/system.texi 2011-06-15 11:39:14.000000000 -0400 *************** *** 104,110 **** @c now scripts/time/now.m @anchor{doc-now} @deftypefn {Function File} {t =} now () ! Returns the current local time as the number of days since Jan 1, 0000. By this reckoning, Jan 1, 1970 is day number 719529. The integral part, @code{floor (now)} corresponds to 00:00:00 today. --- 104,110 ---- @c now scripts/time/now.m @anchor{doc-now} @deftypefn {Function File} {t =} now () ! Return the current local time as the number of days since Jan 1, 0000. By this reckoning, Jan 1, 1970 is day number 719529. The integral part, @code{floor (now)} corresponds to 00:00:00 today. *************** *** 139,145 **** @anchor{doc-gmtime} @deftypefn {Loadable Function} {@var{tm_struct} =} gmtime (@var{t}) Given a value returned from @code{time}, or any non-negative integer, ! return a time structure corresponding to CUT (Coordinated Universal Time). For example: @example --- 139,145 ---- @anchor{doc-gmtime} @deftypefn {Loadable Function} {@var{tm_struct} =} gmtime (@var{t}) Given a value returned from @code{time}, or any non-negative integer, ! return a time structure corresponding to CUT (Coordinated Universal Time). For example: @example *************** *** 581,589 **** @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}) @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}, @var{minute}) @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}, @var{minute}, @var{second}) ! @deftypefnx {Function File} {} datenum (@code{"date"}) ! @deftypefnx {Function File} {} datenum (@code{"date"}, @var{p}) ! Returns the specified local time as a day number, with Jan 1, 0000 being day 1. By this reckoning, Jan 1, 1970 is day number 719529. The fractional portion, @var{p}, corresponds to the portion of the specified day. --- 581,589 ---- @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}) @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}, @var{minute}) @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}, @var{minute}, @var{second}) ! @deftypefnx {Function File} {} datenum ("date") ! @deftypefnx {Function File} {} datenum ("date", @var{p}) ! Return the specified local time as a day number, with Jan 1, 0000 being day 1. By this reckoning, Jan 1, 1970 is day number 719529. The fractional portion, @var{p}, corresponds to the portion of the specified day. *************** *** 801,807 **** @deftypefnx {Function File} {} datetick (@dots{}, "keeplimits") @deftypefnx {Function File} {} datetick (@dots{}, "keepticks") @deftypefnx {Function File} {} datetick (@dots{ax}, @dots{}) ! Adds date formatted tick labels to an axis. The axis the apply the ticks to is determined by @var{axis} that can take the values "x", "y" or "z". The default value is "x". The formatting of the labels is determined by the variable @var{form}, that can either be a string in --- 801,807 ---- @deftypefnx {Function File} {} datetick (@dots{}, "keeplimits") @deftypefnx {Function File} {} datetick (@dots{}, "keepticks") @deftypefnx {Function File} {} datetick (@dots{ax}, @dots{}) ! Add date formatted tick labels to an axis. The axis the apply the ticks to is determined by @var{axis} that can take the values "x", "y" or "z". The default value is "x". The formatting of the labels is determined by the variable @var{form}, that can either be a string in *************** *** 814,820 **** @node Filesystem Utilities @section Filesystem Utilities ! Octave includes many utility functions for copying, moving, renaming, and deleting files; for creating, reading, and deleting directories; for retrieving status information on files; and for manipulating file and path names. @c movefile scripts/miscellaneous/movefile.m --- 814,821 ---- @node Filesystem Utilities @section Filesystem Utilities ! Octave includes many utility functions for copying, moving, renaming, and ! deleting files; for creating, reading, and deleting directories; for retrieving status information on files; and for manipulating file and path names. @c movefile scripts/miscellaneous/movefile.m *************** *** 928,934 **** @c rmdir src/dirfns.cc @anchor{doc-rmdir} @deftypefn {Built-in Function} {[@var{status}, @var{msg}, @var{msgid}] =} rmdir (@var{dir}) ! @deftypefnx {Built-in Function} {[@var{status}, @var{msg}, @var{msgid}] =} rmdir (@var{dir}, @code{"s"}) Remove the directory named @var{dir}. If successful, @var{status} is 1, with @var{msg} and @var{msgid} empty --- 929,935 ---- @c rmdir src/dirfns.cc @anchor{doc-rmdir} @deftypefn {Built-in Function} {[@var{status}, @var{msg}, @var{msgid}] =} rmdir (@var{dir}) ! @deftypefnx {Built-in Function} {[@var{status}, @var{msg}, @var{msgid}] =} rmdir (@var{dir}, "s") Remove the directory named @var{dir}. If successful, @var{status} is 1, with @var{msg} and @var{msgid} empty *************** *** 1064,1070 **** dev = 2049 @} @result{} err = 0 ! @result{} msg = @end example @end deftypefn --- 1065,1071 ---- dev = 2049 @} @result{} err = 0 ! @result{} msg = @end example @end deftypefn *************** *** 1212,1218 **** @deftypefn {Built-in Function} {} glob (@var{pattern}) Given an array of pattern strings (as a char array or a cell array) in @var{pattern}, return a cell array of file names that match any of ! them, or an empty cell array if no patterns match. The pattern strings are interpreted as filename globbing patterns (as they are used by Unix shells). Within a pattern @table @code --- 1213,1219 ---- @deftypefn {Built-in Function} {} glob (@var{pattern}) Given an array of pattern strings (as a char array or a cell array) in @var{pattern}, return a cell array of file names that match any of ! them, or an empty cell array if no patterns match. The pattern strings are interpreted as filename globbing patterns (as they are used by Unix shells). Within a pattern @table @code *************** *** 1232,1238 **** @example ls @result{} ! file1 file2 file3 myfile1 myfile1b glob ("*file1") @result{} @{ --- 1233,1239 ---- @example ls @result{} ! file1 file2 file3 myfile1 myfile1b glob ("*file1") @result{} @{ *************** *** 1306,1313 **** If 'all' is given, the function returns all valid file separators in the form of a string. The list of file separators is system-dependent. ! It is @samp{/} (forward slash) under UNIX or Mac OS X, @samp{/} and @samp{\} ! (forward and backward slashes) under Windows. @seealso{@ref{doc-pathsep,,pathsep}} @end deftypefn --- 1307,1314 ---- If 'all' is given, the function returns all valid file separators in the form of a string. The list of file separators is system-dependent. ! It is @samp{/} (forward slash) under UNIX or @w{Mac OS X}, @samp{/} and ! @samp{\} (forward and backward slashes) under Windows. @seealso{@ref{doc-pathsep,,pathsep}} @end deftypefn *************** *** 1389,1394 **** --- 1390,1396 ---- @anchor{doc-make_absolute_filename} @deftypefn {Built-in Function} {} make_absolute_filename (@var{file}) Return the full name of @var{file}, relative to the current directory. + @seealso{@ref{doc-is_absolute_filename,,is_absolute_filename}, @ref{doc-is_rooted_relative_filename,,is_rooted_relative_filename}, @ref{doc-isdir,,isdir}} @end deftypefn *************** *** 1438,1447 **** @c bunzip2 scripts/miscellaneous/bunzip2.m @anchor{doc-bunzip2} ! @deftypefn {Function File} {} bunzip2 (@var{bzfile}, @var{dir}) Unpack the bzip2 archive @var{bzfile} to the directory @var{dir}. If @var{dir} is not specified, it defaults to the current directory. ! @seealso{@ref{doc-unpack,,unpack}, @ref{doc-bzip2,,bzip2}, @ref{doc-tar,,tar}, @ref{doc-untar,,untar}, @ref{doc-gzip,,gzip}, @ref{doc-gunzip,,gunzip}, @ref{doc-zip,,zip}, @ref{doc-unzip,,unzip}} @end deftypefn --- 1440,1450 ---- @c bunzip2 scripts/miscellaneous/bunzip2.m @anchor{doc-bunzip2} ! @deftypefn {Function File} {} bunzip2 (@var{bzfile}) ! @deftypefnx {Function File} {} bunzip2 (@var{bzfile}, @var{dir}) Unpack the bzip2 archive @var{bzfile} to the directory @var{dir}. If @var{dir} is not specified, it defaults to the current directory. ! @seealso{@ref{doc-bzip2,,bzip2}, @ref{doc-unpack,,unpack}, @ref{doc-gunzip,,gunzip}, @ref{doc-unzip,,unzip}, @ref{doc-untar,,untar}} @end deftypefn *************** *** 1451,1459 **** @deftypefnx {Function File} {@var{entries} =} gzip (@var{files}, @var{outdir}) Compress the list of files and/or directories specified in @var{files}. Each file is compressed separately and a new file with a '.gz' extension ! is created. The original files are not touched. Existing compressed files are silently overwritten. If @var{outdir} is defined the compressed ! versions of the files are placed in this directory. @seealso{@ref{doc-gunzip,,gunzip}, @ref{doc-bzip2,,bzip2}, @ref{doc-zip,,zip}, @ref{doc-tar,,tar}} @end deftypefn --- 1454,1462 ---- @deftypefnx {Function File} {@var{entries} =} gzip (@var{files}, @var{outdir}) Compress the list of files and/or directories specified in @var{files}. Each file is compressed separately and a new file with a '.gz' extension ! is created. The original files are not modified. Existing compressed files are silently overwritten. If @var{outdir} is defined the compressed ! files are placed in this directory. @seealso{@ref{doc-gunzip,,gunzip}, @ref{doc-bzip2,,bzip2}, @ref{doc-zip,,zip}, @ref{doc-tar,,tar}} @end deftypefn *************** *** 1463,1477 **** @deftypefn {Function File} {} gunzip (@var{gzfile}, @var{dir}) Unpack the gzip archive @var{gzfile} to the directory @var{dir}. If @var{dir} is not specified, it defaults to the current directory. If ! the @var{gzfile} is a directory, all gzfile in the directory will be recursively gunzipped. ! @seealso{@ref{doc-unpack,,unpack}, @ref{doc-bunzip2,,bunzip2}, @ref{doc-tar,,tar}, @ref{doc-untar,,untar}, @ref{doc-gzip,,gzip}, @ref{doc-gunzip,,gunzip}, @ref{doc-zip,,zip}, @ref{doc-unzip,,unzip}} @end deftypefn @c tar scripts/miscellaneous/tar.m @anchor{doc-tar} ! @deftypefn {Function File} {@var{entries} =} tar (@var{tarfile}, @var{files}, @var{root}) Pack @var{files} @var{files} into the TAR archive @var{tarfile}. The list of files must be a string or a cell array of strings. --- 1466,1481 ---- @deftypefn {Function File} {} gunzip (@var{gzfile}, @var{dir}) Unpack the gzip archive @var{gzfile} to the directory @var{dir}. If @var{dir} is not specified, it defaults to the current directory. If ! @var{gzfile} is a directory, all gzfiles in the directory will be recursively gunzipped. ! @seealso{@ref{doc-gzip,,gzip}, @ref{doc-unpack,,unpack}, @ref{doc-bunzip2,,bunzip2}, @ref{doc-unzip,,unzip}, @ref{doc-untar,,untar}} @end deftypefn @c tar scripts/miscellaneous/tar.m @anchor{doc-tar} ! @deftypefn {Function File} {@var{entries} =} tar (@var{tarfile}, @var{files}) ! @deftypefnx {Function File} {@var{entries} =} tar (@var{tarfile}, @var{files}, @var{root}) Pack @var{files} @var{files} into the TAR archive @var{tarfile}. The list of files must be a string or a cell array of strings. *************** *** 1480,1495 **** If an output argument is requested the entries in the archive are returned in a cell array. ! @seealso{@ref{doc-untar,,untar}, @ref{doc-gzip,,gzip}, @ref{doc-gunzip,,gunzip}, @ref{doc-zip,,zip}, @ref{doc-unzip,,unzip}} @end deftypefn @c untar scripts/miscellaneous/untar.m @anchor{doc-untar} ! @deftypefn {Function File} {} untar (@var{tarfile}, @var{dir}) Unpack the TAR archive @var{tarfile} to the directory @var{dir}. If @var{dir} is not specified, it defaults to the current directory. ! @seealso{@ref{doc-unpack,,unpack}, @ref{doc-bunzip2,,bunzip2}, @ref{doc-tar,,tar}, @ref{doc-gzip,,gzip}, @ref{doc-gunzip,,gunzip}, @ref{doc-zip,,zip}, @ref{doc-unzip,,unzip}} @end deftypefn --- 1484,1500 ---- If an output argument is requested the entries in the archive are returned in a cell array. ! @seealso{@ref{doc-untar,,untar}, @ref{doc-bzip2,,bzip2}, @ref{doc-gzip,,gzip}, @ref{doc-zip,,zip}} @end deftypefn @c untar scripts/miscellaneous/untar.m @anchor{doc-untar} ! @deftypefn {Function File} {} untar (@var{tarfile}) ! @deftypefnx {Function File} {} untar (@var{tarfile}, @var{dir}) Unpack the TAR archive @var{tarfile} to the directory @var{dir}. If @var{dir} is not specified, it defaults to the current directory. ! @seealso{@ref{doc-tar,,tar}, @ref{doc-unpack,,unpack}, @ref{doc-bunzip2,,bunzip2}, @ref{doc-gunzip,,gunzip}, @ref{doc-unzip,,unzip}} @end deftypefn *************** *** 1498,1507 **** @deftypefn {Function File} {@var{entries} =} zip (@var{zipfile}, @var{files}) @deftypefnx {Function File} {@var{entries} =} zip (@var{zipfile}, @var{files}, @var{rootdir}) Compress the list of files and/or directories specified in @var{files} ! into the archive @var{zipfiles} in the same directory. If @var{rootdir} ! is defined the @var{files} is located relative to @var{rootdir} rather ! than the current directory ! @seealso{@ref{doc-unzip,,unzip}, @ref{doc-tar,,tar}} @end deftypefn --- 1503,1512 ---- @deftypefn {Function File} {@var{entries} =} zip (@var{zipfile}, @var{files}) @deftypefnx {Function File} {@var{entries} =} zip (@var{zipfile}, @var{files}, @var{rootdir}) Compress the list of files and/or directories specified in @var{files} ! into the archive @var{zipfile} in the same directory. If @var{rootdir} ! is defined the @var{files} are located relative to @var{rootdir} rather ! than the current directory. ! @seealso{@ref{doc-unzip,,unzip}, @ref{doc-bzip2,,bzip2}, @ref{doc-gzip,,gzip}, @ref{doc-tar,,tar}} @end deftypefn *************** *** 1511,1525 **** @deftypefnx {Function File} {} unzip (@var{zipfile}, @var{dir}) Unpack the ZIP archive @var{zipfile} to the directory @var{dir}. If @var{dir} is not specified, it defaults to the current directory. ! @seealso{@ref{doc-unpack,,unpack}, @ref{doc-bunzip2,,bunzip2}, @ref{doc-tar,,tar}, @ref{doc-untar,,untar}, @ref{doc-gzip,,gzip}, @ref{doc-gunzip,,gunzip}, @ref{doc-zip,,zip}} ! @end deftypefn ! ! ! @c pack scripts/miscellaneous/pack.m ! @anchor{doc-pack} ! @deftypefn {Function File} {} pack () ! This function is provided for compatibility with @sc{matlab}, but it ! doesn't actually do anything. @end deftypefn --- 1516,1522 ---- @deftypefnx {Function File} {} unzip (@var{zipfile}, @var{dir}) Unpack the ZIP archive @var{zipfile} to the directory @var{dir}. If @var{dir} is not specified, it defaults to the current directory. ! @seealso{@ref{doc-zip,,zip}, @ref{doc-unpack,,unpack}, @ref{doc-bunzip2,,bunzip2}, @ref{doc-gunzip,,gunzip}, @ref{doc-untar,,untar}} @end deftypefn *************** *** 1529,1542 **** @deftypefnx {Function File} {@var{files} =} unpack (@var{file}, @var{dir}) @deftypefnx {Function File} {@var{files} =} unpack (@var{file}, @var{dir}, @var{filetype}) Unpack the archive @var{file} based on its extension to the directory ! @var{dir}. If @var{file} is a cellstr, then all files will be ! handled individually. If @var{dir} is not specified, it defaults to ! the current directory. It returns a list of @var{files} ! unpacked. If a directory is in the file list, then the ! @var{filetype} to unpack must also be specified. ! The @var{files} includes the entire path to the output files. ! @seealso{@ref{doc-bunzip2,,bunzip2}, @ref{doc-tar,,tar}, @ref{doc-untar,,untar}, @ref{doc-gzip,,gzip}, @ref{doc-gunzip,,gunzip}, @ref{doc-zip,,zip}, @ref{doc-unzip,,unzip}} @end deftypefn --- 1526,1538 ---- @deftypefnx {Function File} {@var{files} =} unpack (@var{file}, @var{dir}) @deftypefnx {Function File} {@var{files} =} unpack (@var{file}, @var{dir}, @var{filetype}) Unpack the archive @var{file} based on its extension to the directory ! @var{dir}. If @var{file} is a list of strings, then each file is ! unpacked individually. If @var{dir} is not specified, it defaults to ! the current directory. If a directory is in the file list, then the ! @var{filetype} must also be specified. ! The optional return value is a list of @var{files} unpacked. ! @seealso{@ref{doc-bzip2,,bzip2}, @ref{doc-gzip,,gzip}, @ref{doc-zip,,zip}, @ref{doc-tar,,tar}} @end deftypefn *************** *** 1546,1554 **** @deftypefnx {Function File} {@var{entries} =} bzip2 (@var{files}, @var{outdir}) Compress the list of files specified in @var{files}. Each file is compressed separately and a new file with a '.bz2' extension ! is created. The original files are not touched. Existing compressed files ! are silently overwritten.If @var{outdir} is defined the compressed versions ! of the files are placed in this directory. @seealso{@ref{doc-bunzip2,,bunzip2}, @ref{doc-gzip,,gzip}, @ref{doc-zip,,zip}, @ref{doc-tar,,tar}} @end deftypefn --- 1542,1550 ---- @deftypefnx {Function File} {@var{entries} =} bzip2 (@var{files}, @var{outdir}) Compress the list of files specified in @var{files}. Each file is compressed separately and a new file with a '.bz2' extension ! is created. The original files are not modified. Existing compressed files ! are silently overwritten. If @var{outdir} is defined the compressed ! files are placed in this directory. @seealso{@ref{doc-bunzip2,,bunzip2}, @ref{doc-gzip,,gzip}, @ref{doc-zip,,zip}, @ref{doc-tar,,tar}} @end deftypefn *************** *** 1561,1566 **** --- 1557,1569 ---- * URL Manipulation:: @end menu + @c gethostname src/syscalls.cc + @anchor{doc-gethostname} + @deftypefn {Built-in Function} {} gethostname () + Return the hostname of the system where Octave is running. + @end deftypefn + + @node FTP Objects @subsection FTP Objects *************** *** 1580,1586 **** @deftypefn {Function File} {} mget (@var{f}, @var{file}) @deftypefnx {Function File} {} mget (@var{f}, @var{dir}) @deftypefnx {Function File} {} mget (@dots{}, @var{target}) ! Downloads a remote file @var{file} or directory @var{dir} to the local directory on the FTP connection @var{f}. @var{f} is an FTP object returned by the @code{ftp} function. --- 1583,1589 ---- @deftypefn {Function File} {} mget (@var{f}, @var{file}) @deftypefnx {Function File} {} mget (@var{f}, @var{dir}) @deftypefnx {Function File} {} mget (@dots{}, @var{target}) ! Download a remote file @var{file} or directory @var{dir} to the local directory on the FTP connection @var{f}. @var{f} is an FTP object returned by the @code{ftp} function. *************** *** 1676,1682 **** @example @group ! urlwrite ("ftp://ftp.octave.org/pub/octave/README", "README.txt"); @end group @end example --- 1679,1685 ---- @example @group ! urlwrite ("ftp://ftp.octave.org/pub/octave/README", "README.txt"); @end group @end example *************** *** 2348,2357 **** @c ls_command scripts/miscellaneous/ls_command.m @anchor{doc-ls_command} ! @deftypefn {Function File} {[@var{old_cmd} =} ls_command (@var{cmd}) ! Set or return the shell command used by Octave's @code{ls} command. ! The value of @var{cmd} must be a character string. ! With no arguments, simply return the previous value. @seealso{@ref{doc-ls,,ls}} @end deftypefn --- 2351,2359 ---- @c ls_command scripts/miscellaneous/ls_command.m @anchor{doc-ls_command} ! @deftypefn {Function File} {@var{val} =} ls_command () ! @deftypefnx {Function File} {@var{old_val} =} ls_command (@var{new_val}) ! Query or set the shell command used by Octave's @code{ls} command. @seealso{@ref{doc-ls,,ls}} @end deftypefn *************** *** 2587,2592 **** --- 2589,2616 ---- @end deftypefn + @c nproc src/DLD-FUNCTIONS/nproc.cc + @anchor{doc-nproc} + @deftypefn {Loadable Function} {} nproc () + @deftypefnx {Loadable Function} {} nproc (@var{query}) + Return the current number of available processors. + + If called with the optional argument @var{query}, modify how processors + are counted as follows: + @table @code + @item all + total number of processors. + + @item current + processors available to the current process. + + @item overridable + likewise, but overridable through the @w{@env{OMP_NUM_THREADS}} environment + variable. + @end table + @end deftypefn + + @c ispc scripts/miscellaneous/ispc.m @anchor{doc-ispc} @deftypefn {Function File} {} ispc () *************** *** 2619,2624 **** --- 2643,2658 ---- @end deftypefn + @c isdeployed scripts/miscellaneous/isdeployed.m + @anchor{doc-isdeployed} + @deftypefn {Function File} {} isdeployed () + Return true if the current program has been compiled and is running + separately from the Octave interpreter and false if it is running in + the Octave interpreter. Currently, this function always returns + false in Octave. + @end deftypefn + + @c OCTAVE_HOME src/defaults.cc @anchor{doc-OCTAVE_HOME} @deftypefn {Built-in Function} {} OCTAVE_HOME () *************** *** 2680,2686 **** Date respecting the version/revision. @end table ! @deftypefnx {Function File} {v =} ver (@code{"Octave"}) Return version information for Octave only. @deftypefnx {Function File} {v =} ver (@var{package}) --- 2714,2720 ---- Date respecting the version/revision. @end table ! @deftypefnx {Function File} {v =} ver ("Octave") Return version information for Octave only. @deftypefnx {Function File} {v =} ver (@var{package}) *************** *** 2741,2747 **** Note that version "1.1-test2" will compare as greater than "1.1-test10". Also, since the numeric part is compared first, "a" compares less than "1a" because the second string starts with a ! numeric part even though @code{double("a")} is greater than @code{double("1").} @end deftypefn --- 2775,2781 ---- Note that version "1.1-test2" will compare as greater than "1.1-test10". Also, since the numeric part is compared first, "a" compares less than "1a" because the second string starts with a ! numeric part even though @code{double("a")} is greater than @code{double("1").} @end deftypefn diff -cNr octave-3.4.0/doc/interpreter/system.txi octave-3.4.1/doc/interpreter/system.txi *** octave-3.4.0/doc/interpreter/system.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/system.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 149,155 **** @node Filesystem Utilities @section Filesystem Utilities ! Octave includes many utility functions for copying, moving, renaming, and deleting files; for creating, reading, and deleting directories; for retrieving status information on files; and for manipulating file and path names. @DOCSTRING(movefile) --- 149,156 ---- @node Filesystem Utilities @section Filesystem Utilities ! Octave includes many utility functions for copying, moving, renaming, and ! deleting files; for creating, reading, and deleting directories; for retrieving status information on files; and for manipulating file and path names. @DOCSTRING(movefile) *************** *** 246,253 **** @DOCSTRING(unzip) - @DOCSTRING(pack) - @DOCSTRING(unpack) @DOCSTRING(bzip2) --- 247,252 ---- *************** *** 260,265 **** --- 259,266 ---- * URL Manipulation:: @end menu + @DOCSTRING(gethostname) + @node FTP Objects @subsection FTP Objects *************** *** 470,475 **** --- 471,478 ---- @DOCSTRING(uname) + @DOCSTRING(nproc) + @DOCSTRING(ispc) @DOCSTRING(isunix) *************** *** 478,483 **** --- 481,488 ---- @DOCSTRING(isieee) + @DOCSTRING(isdeployed) + @DOCSTRING(OCTAVE_HOME) @DOCSTRING(matlabroot) diff -cNr octave-3.4.0/doc/interpreter/testfun.texi octave-3.4.1/doc/interpreter/testfun.texi *** octave-3.4.0/doc/interpreter/testfun.texi 2011-02-08 05:11:33.000000000 -0500 --- octave-3.4.1/doc/interpreter/testfun.texi 2011-06-15 11:39:14.000000000 -0400 *************** *** 396,408 **** @var{expected})}. If @var{expected} is zero @var{tol} will always be used as an absolute tolerance. @end table ! @seealso{@ref{doc-test,,test}} @end deftypefn @c fail scripts/testfun/fail.m @anchor{doc-fail} ! @deftypefn {Function File} {} fail (@var{code}, @var{pattern}) @deftypefnx {Function File} {} fail (@var{code}, 'warning', @var{pattern}) Return true if @var{code} fails with an error message matching --- 396,409 ---- @var{expected})}. If @var{expected} is zero @var{tol} will always be used as an absolute tolerance. @end table ! @seealso{@ref{doc-test,,test}, @ref{doc-fail,,fail}} @end deftypefn @c fail scripts/testfun/fail.m @anchor{doc-fail} ! @deftypefn {Function File} {} fail (@var{code}) ! @deftypefnx {Function File} {} fail (@var{code}, @var{pattern}) @deftypefnx {Function File} {} fail (@var{code}, 'warning', @var{pattern}) Return true if @var{code} fails with an error message matching *************** *** 427,433 **** Called with three arguments, the behavior is similar to @code{fail(@var{code}, @var{pattern})}, but produces an error if no warning is given during code execution or if the code fails. ! @end deftypefn --- 428,434 ---- Called with three arguments, the behavior is similar to @code{fail(@var{code}, @var{pattern})}, but produces an error if no warning is given during code execution or if the code fails. ! @seealso{@ref{doc-assert,,assert}} @end deftypefn *************** *** 436,442 **** @c demo scripts/testfun/demo.m @anchor{doc-demo} ! @deftypefn {Function File} {} demo ('@var{name}', @var{n}) Runs any examples associated with the function '@var{name}'. Examples are stored in the script file, or in a file with the same --- 437,444 ---- @c demo scripts/testfun/demo.m @anchor{doc-demo} ! @deftypefn {Command} {} demo @var{name} @var{n} ! @deftypefnx {Function File} {} demo ('@var{name}', @var{n}) Runs any examples associated with the function '@var{name}'. Examples are stored in the script file, or in a file with the same *************** *** 497,516 **** @c rundemos scripts/testfun/rundemos.m @anchor{doc-rundemos} ! @deftypefn {Function File} {} rundemos (@var{directory}) @end deftypefn @c runtests scripts/testfun/runtests.m @anchor{doc-runtests} ! @deftypefn {Function File} {} runtests (@var{directory}) Execute built-in tests for all function files in the specified directory. @end deftypefn @c example scripts/testfun/example.m @anchor{doc-example} ! @deftypefn {Function File} {} example ('@var{name}', @var{n}) @deftypefnx {Function File} {[@var{x}, @var{idx}] =} example ('@var{name}', @var{n}) Display the code for example @var{n} associated with the function --- 499,528 ---- @c rundemos scripts/testfun/rundemos.m @anchor{doc-rundemos} ! @deftypefn {Function File} {} rundemos () ! @deftypefnx {Function File} {} rundemos (@var{directory}) ! Execute built-in demos for all function files in the specified directory. ! If no directory is specified, operate on all directories in Octave's ! search path for functions. ! @seealso{@ref{doc-runtests,,runtests}, @ref{doc-path,,path}} @end deftypefn @c runtests scripts/testfun/runtests.m @anchor{doc-runtests} ! @deftypefn {Function File} {} runtests () ! @deftypefnx {Function File} {} runtests (@var{directory}) Execute built-in tests for all function files in the specified directory. + If no directory is specified, operate on all directories in Octave's + search path for functions. + @seealso{@ref{doc-rundemos,,rundemos}, @ref{doc-path,,path}} @end deftypefn @c example scripts/testfun/example.m @anchor{doc-example} ! @deftypefn {Command} {} example @var{name} @var{n} ! @deftypefnx {Function File} {} example ('@var{name}', @var{n}) @deftypefnx {Function File} {[@var{x}, @var{idx}] =} example ('@var{name}', @var{n}) Display the code for example @var{n} associated with the function diff -cNr octave-3.4.0/doc/interpreter/tips.texi octave-3.4.1/doc/interpreter/tips.texi *** octave-3.4.0/doc/interpreter/tips.texi 2011-02-08 05:11:33.000000000 -0500 --- octave-3.4.1/doc/interpreter/tips.texi 2011-06-15 11:39:14.000000000 -0400 *************** *** 178,184 **** @example @group a = zeros (1000); # create a 1000x1000 matrix ! b = a(:,10:100); # lazy slice a = []; # the original a array is still allocated c@{1@} = b; # b is reallocated at this point @end group --- 178,184 ---- @example @group a = zeros (1000); # create a 1000x1000 matrix ! b = a(:,10:100); # lazy slice a = []; # the original a array is still allocated c@{1@} = b; # b is reallocated at this point @end group *************** *** 465,480 **** @item Avoid using the word ``cause'' (or its equivalents) unnecessarily. ! Instead of, ``Cause Octave to display text in boldface,'' write just ``Display text in boldface.'' @item Do not start or end a documentation string with whitespace. @item ! Format the documentation string so that it fits in an Emacs window on an ! 80-column screen. It is a good idea for most lines to be no wider than ! 60 characters. However, rather than simply filling the entire documentation string, you can make it much more readable by choosing line breaks with care. --- 465,485 ---- @item Avoid using the word ``cause'' (or its equivalents) unnecessarily. ! Instead of, ``Cause Octave to display text in boldface,'' just write ``Display text in boldface.'' @item + Use two spaces between the period marking the end of a sentence and the + word which opens the next sentence. This convention has no effect for + typeset formats like @TeX{}, but improves the readability of the documentation + in fixed-width environments such as the Info reader. + + @item Do not start or end a documentation string with whitespace. @item ! Format the documentation string so that it fits within an 80-column screen. ! It is a good idea for most lines to be no wider than 60 characters. However, rather than simply filling the entire documentation string, you can make it much more readable by choosing line breaks with care. *************** *** 488,493 **** --- 493,518 ---- starting double-quote is not part of the string! @item + When choosing variable names try to adhere to the following guidelines. + + @table @asis + @item + vectors : x,y,z,t,w + + @item + matrices : A,B,M + + @item + strings : @nospell{str},s + + @item + filenames : @nospell{fname} + + @item + cells,@nospell{cellstrs} : c,@nospell{cstr} + @end table + + @item The documentation string for a variable that is a yes-or-no flag should start with words such as ``Nonzero means@dots{}'', to make it clear that all nonzero values are equivalent and indicate explicitly what zero and *************** *** 652,658 **** @example @group -*- texinfo -*- ! @@deftypefn@{Function File@} @{@@var@{a@} =@} fn (@@var@{x@}, @dots{}) @@deftypefnx@{Function File@} @{@@var@{a@} =@} fn (@@var@{y@}, @dots{}) Help text in Texinfo format. @@end deftypefn --- 677,683 ---- @example @group -*- texinfo -*- ! @@deftypefn @{Function File@} @{@@var@{a@} =@} fn (@@var@{x@}, @dots{}) @@deftypefnx@{Function File@} @{@@var@{a@} =@} fn (@@var@{y@}, @dots{}) Help text in Texinfo format. @@end deftypefn diff -cNr octave-3.4.0/doc/interpreter/tips.txi octave-3.4.1/doc/interpreter/tips.txi *** octave-3.4.0/doc/interpreter/tips.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/tips.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 176,182 **** @example @group a = zeros (1000); # create a 1000x1000 matrix ! b = a(:,10:100); # lazy slice a = []; # the original a array is still allocated c@{1@} = b; # b is reallocated at this point @end group --- 176,182 ---- @example @group a = zeros (1000); # create a 1000x1000 matrix ! b = a(:,10:100); # lazy slice a = []; # the original a array is still allocated c@{1@} = b; # b is reallocated at this point @end group *************** *** 463,478 **** @item Avoid using the word ``cause'' (or its equivalents) unnecessarily. ! Instead of, ``Cause Octave to display text in boldface,'' write just ``Display text in boldface.'' @item Do not start or end a documentation string with whitespace. @item ! Format the documentation string so that it fits in an Emacs window on an ! 80-column screen. It is a good idea for most lines to be no wider than ! 60 characters. However, rather than simply filling the entire documentation string, you can make it much more readable by choosing line breaks with care. --- 463,483 ---- @item Avoid using the word ``cause'' (or its equivalents) unnecessarily. ! Instead of, ``Cause Octave to display text in boldface,'' just write ``Display text in boldface.'' @item + Use two spaces between the period marking the end of a sentence and the + word which opens the next sentence. This convention has no effect for + typeset formats like @TeX{}, but improves the readability of the documentation + in fixed-width environments such as the Info reader. + + @item Do not start or end a documentation string with whitespace. @item ! Format the documentation string so that it fits within an 80-column screen. ! It is a good idea for most lines to be no wider than 60 characters. However, rather than simply filling the entire documentation string, you can make it much more readable by choosing line breaks with care. *************** *** 486,491 **** --- 491,516 ---- starting double-quote is not part of the string! @item + When choosing variable names try to adhere to the following guidelines. + + @table @asis + @item + vectors : x,y,z,t,w + + @item + matrices : A,B,M + + @item + strings : @nospell{str},s + + @item + filenames : @nospell{fname} + + @item + cells,@nospell{cellstrs} : c,@nospell{cstr} + @end table + + @item The documentation string for a variable that is a yes-or-no flag should start with words such as ``Nonzero means@dots{}'', to make it clear that all nonzero values are equivalent and indicate explicitly what zero and *************** *** 650,656 **** @example @group -*- texinfo -*- ! @@deftypefn@{Function File@} @{@@var@{a@} =@} fn (@@var@{x@}, @dots{}) @@deftypefnx@{Function File@} @{@@var@{a@} =@} fn (@@var@{y@}, @dots{}) Help text in Texinfo format. @@end deftypefn --- 675,681 ---- @example @group -*- texinfo -*- ! @@deftypefn @{Function File@} @{@@var@{a@} =@} fn (@@var@{x@}, @dots{}) @@deftypefnx@{Function File@} @{@@var@{a@} =@} fn (@@var@{y@}, @dots{}) Help text in Texinfo format. @@end deftypefn diff -cNr octave-3.4.0/doc/interpreter/triplot.eps octave-3.4.1/doc/interpreter/triplot.eps *** octave-3.4.0/doc/interpreter/triplot.eps 2011-02-08 05:11:48.000000000 -0500 --- octave-3.4.1/doc/interpreter/triplot.eps 2011-06-15 11:39:30.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: triplot.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:11:48 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: triplot.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:30 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:11:48 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:30 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/triplot.pdf and octave-3.4.1/doc/interpreter/triplot.pdf differ Binary files octave-3.4.0/doc/interpreter/triplot.png and octave-3.4.1/doc/interpreter/triplot.png differ diff -cNr octave-3.4.0/doc/interpreter/var.texi octave-3.4.1/doc/interpreter/var.texi *** octave-3.4.0/doc/interpreter/var.texi 2011-02-08 05:11:33.000000000 -0500 --- octave-3.4.1/doc/interpreter/var.texi 2011-06-15 11:39:15.000000000 -0400 *************** *** 30,39 **** names, but it is seldom useful to have variables with names longer than about 30 characters. The following are all valid variable names - @cindex job hunting - @cindex getting a good job - @cindex flying high and fast - @example @group x --- 30,35 ---- *************** *** 88,94 **** @anchor{doc-isvarname} @deftypefn {Built-in Function} {} isvarname (@var{name}) Return true if @var{name} is a valid variable name. ! @seealso{@ref{doc-exist,,exist}, @ref{doc-who,,who}} @end deftypefn --- 84,90 ---- @anchor{doc-isvarname} @deftypefn {Built-in Function} {} isvarname (@var{name}) Return true if @var{name} is a valid variable name. ! @seealso{@ref{doc-iskeyword,,iskeyword}, @ref{doc-exist,,exist}, @ref{doc-who,,who}} @end deftypefn *************** *** 175,181 **** @c namelengthmax scripts/miscellaneous/namelengthmax.m @anchor{doc-namelengthmax} @deftypefn {Function File} {} namelengthmax () ! Returns the @sc{matlab} compatible maximum variable name length. Octave is capable of storing strings up to @tex $2^{31} - 1$ --- 171,177 ---- @c namelengthmax scripts/miscellaneous/namelengthmax.m @anchor{doc-namelengthmax} @deftypefn {Function File} {} namelengthmax () ! Return the @sc{matlab} compatible maximum variable name length. Octave is capable of storing strings up to @tex $2^{31} - 1$ *************** *** 484,490 **** If called as a function, return a cell array of defined variable names matching the given patterns. ! @seealso{@ref{doc-whos,,whos}, @ref{doc-regexp,,regexp}} @end deftypefn --- 480,486 ---- If called as a function, return a cell array of defined variable names matching the given patterns. ! @seealso{@ref{doc-whos,,whos}, @ref{doc-isglobal,,isglobal}, @ref{doc-isvarname,,isvarname}, @ref{doc-exist,,exist}, @ref{doc-regexp,,regexp}} @end deftypefn *************** *** 540,546 **** If @code{whos} is called as a function, return a struct array of defined variable names matching the given patterns. Fields in the structure ! describing each variable are: name, size, bytes, class, global, sparse, complex, nesting, persistent. @seealso{@ref{doc-who,,who}, @ref{doc-whos_line_format,,whos_line_format}} @end deftypefn --- 536,542 ---- If @code{whos} is called as a function, return a struct array of defined variable names matching the given patterns. Fields in the structure ! describing each variable are: name, size, bytes, class, global, sparse, complex, nesting, persistent. @seealso{@ref{doc-who,,who}, @ref{doc-whos_line_format,,whos_line_format}} @end deftypefn *************** *** 662,667 **** --- 658,664 ---- @item "dir" Check only for directories. @end table + @seealso{@ref{doc-file_in_loadpath,,file_in_loadpath}} @end deftypefn *************** *** 697,703 **** Match the list of characters specified by @var{list}. If the first character is @code{!} or @code{^}, match all characters except those specified by @var{list}. For example, the pattern @samp{[a-zA-Z]} will ! match all lower and upper case alphabetic characters. @end table For example, the command --- 694,700 ---- Match the list of characters specified by @var{list}. If the first character is @code{!} or @code{^}, match all characters except those specified by @var{list}. For example, the pattern @samp{[a-zA-Z]} will ! match all lowercase and uppercase alphabetic characters. @end table For example, the command *************** *** 745,755 **** The arguments are treated as regular expressions as any variables that match will be cleared. @end table ! With the exception of @code{exclusive}, all long options can be used without the dash as well. @end deftypefn Information about a function or variable such as its location in the file system can also be acquired from within Octave. This is usually only useful during development of programs, and not within a program. --- 742,760 ---- The arguments are treated as regular expressions as any variables that match will be cleared. @end table ! With the exception of @code{exclusive}, all long options can be used without the dash as well. @end deftypefn + @c pack scripts/miscellaneous/pack.m + @anchor{doc-pack} + @deftypefn {Function File} {} pack () + Consolidate workspace memory in @sc{matlab}. This function is provided for + compatibility, but does nothing in Octave. + @end deftypefn + + Information about a function or variable such as its location in the file system can also be acquired from within Octave. This is usually only useful during development of programs, and not within a program. *************** *** 784,793 **** @deftypefn {Command} {} what @deftypefnx {Command} {} what @var{dir} @deftypefnx {Function File} {w =} what (@var{dir}) ! List the Octave specific files in a directory. If the variable @var{dir} ! is given then check that directory rather than the current directory. If ! a return argument is requested, the files found are returned in the ! structure @var{w}. @seealso{@ref{doc-which,,which}} @end deftypefn --- 789,797 ---- @deftypefn {Command} {} what @deftypefnx {Command} {} what @var{dir} @deftypefnx {Function File} {w =} what (@var{dir}) ! List the Octave specific files in directory @var{dir}. If @var{dir} is ! not specified then the current directory is used. If a return argument is ! requested, the files found are returned in the structure @var{w}. @seealso{@ref{doc-which,,which}} @end deftypefn diff -cNr octave-3.4.0/doc/interpreter/var.txi octave-3.4.1/doc/interpreter/var.txi *** octave-3.4.0/doc/interpreter/var.txi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/interpreter/var.txi 2011-06-15 11:11:27.000000000 -0400 *************** *** 28,37 **** names, but it is seldom useful to have variables with names longer than about 30 characters. The following are all valid variable names - @cindex job hunting - @cindex getting a good job - @cindex flying high and fast - @example @group x --- 28,33 ---- *************** *** 362,367 **** --- 358,365 ---- @DOCSTRING(clear) + @DOCSTRING(pack) + Information about a function or variable such as its location in the file system can also be acquired from within Octave. This is usually only useful during development of programs, and not within a program. diff -cNr octave-3.4.0/doc/interpreter/version.texi octave-3.4.1/doc/interpreter/version.texi *** octave-3.4.0/doc/interpreter/version.texi 2011-02-08 05:11:27.000000000 -0500 --- octave-3.4.1/doc/interpreter/version.texi 2011-06-15 11:39:08.000000000 -0400 *************** *** 1,4 **** ! @set UPDATED 8 February 2011 ! @set UPDATED-MONTH February 2011 ! @set EDITION 3.4.0 ! @set VERSION 3.4.0 --- 1,4 ---- ! @set UPDATED 15 June 2011 ! @set UPDATED-MONTH June 2011 ! @set EDITION 3.4.1 ! @set VERSION 3.4.1 diff -cNr octave-3.4.0/doc/interpreter/voronoi.eps octave-3.4.1/doc/interpreter/voronoi.eps *** octave-3.4.0/doc/interpreter/voronoi.eps 2011-02-08 05:11:47.000000000 -0500 --- octave-3.4.1/doc/interpreter/voronoi.eps 2011-06-15 11:39:29.000000000 -0400 *************** *** 1,7 **** %!PS-Adobe-2.0 EPSF-2.0 %%Title: voronoi.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Tue Feb 8 05:11:47 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments --- 1,7 ---- %!PS-Adobe-2.0 EPSF-2.0 %%Title: voronoi.eps %%Creator: gnuplot 4.4 patchlevel 0 ! %%CreationDate: Wed Jun 15 11:39:29 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments *************** *** 50,56 **** /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Tue Feb 8 05:11:47 2011) /DOCINFO pdfmark end } ifelse --- 50,56 ---- /Author (jwe) % /Producer (gnuplot) % /Keywords () ! /CreationDate (Wed Jun 15 11:39:29 2011) /DOCINFO pdfmark end } ifelse Binary files octave-3.4.0/doc/interpreter/voronoi.pdf and octave-3.4.1/doc/interpreter/voronoi.pdf differ Binary files octave-3.4.0/doc/interpreter/voronoi.png and octave-3.4.1/doc/interpreter/voronoi.png differ diff -cNr octave-3.4.0/doc/liboctave/array.texi octave-3.4.1/doc/liboctave/array.texi *** octave-3.4.0/doc/liboctave/array.texi 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/liboctave/array.texi 2011-06-15 11:11:27.000000000 -0400 *************** *** 177,183 **** @deftypefnx Constructor {} DiagArray (const DiagArray &@var{a}) @end deftypefn ! @deftypeop Assginment DiagArray& {} {operator =} (const DiagArray &@var{a}) @end deftypeop @deftypemethod DiagArray int dim1 (void) const --- 177,183 ---- @deftypefnx Constructor {} DiagArray (const DiagArray &@var{a}) @end deftypefn ! @deftypeop Assignment DiagArray& {} {operator =} (const DiagArray &@var{a}) @end deftypeop @deftypemethod DiagArray int dim1 (void) const Binary files octave-3.4.0/doc/liboctave/liboctave.pdf and octave-3.4.1/doc/liboctave/liboctave.pdf differ diff -cNr octave-3.4.0/doc/liboctave/Makefile.am octave-3.4.1/doc/liboctave/Makefile.am *** octave-3.4.0/doc/liboctave/Makefile.am 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/liboctave/Makefile.am 2011-06-15 11:11:27.000000000 -0400 *************** *** 19,25 **** # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/common.mk ## Automake generated rules for documentation are not parallel-safe. ## Restrict current directory to run serially --- 19,25 ---- # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/build-aux/common.mk ## Automake generated rules for documentation are not parallel-safe. ## Restrict current directory to run serially diff -cNr octave-3.4.0/doc/liboctave/Makefile.in octave-3.4.1/doc/liboctave/Makefile.in *** octave-3.4.0/doc/liboctave/Makefile.in 2011-02-08 05:03:35.000000000 -0500 --- octave-3.4.1/doc/liboctave/Makefile.in 2011-06-15 11:31:26.000000000 -0400 *************** *** 55,65 **** host_triplet = @host@ DIST_COMMON = $(liboctave_TEXINFOS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/stamp-vti \ ! $(srcdir)/version.texi $(top_srcdir)/common.mk subdir = doc/liboctave ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ --- 55,68 ---- host_triplet = @host@ DIST_COMMON = $(liboctave_TEXINFOS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/stamp-vti \ ! $(srcdir)/version.texi $(top_srcdir)/build-aux/common.mk subdir = doc/liboctave ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/ax_pthread.m4 \ ! $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ *************** *** 67,82 **** $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ --- 70,89 ---- $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filemode.m4 \ ! $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpurge.m4 \ ! $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/fseek.m4 \ ! $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftell.m4 \ ! $(top_srcdir)/m4/ftello.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ *************** *** 90,115 **** $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ ! $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ! $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ! $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ ! $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ ! $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ ! $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \ ! $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memchr.m4 \ ! $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ ! $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkfifo.m4 \ ! $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \ ! $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ ! $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nanosleep.m4 \ ! $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ ! $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/printf.m4 \ ! $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ ! $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \ ! $(top_srcdir)/m4/round.m4 $(top_srcdir)/m4/roundf.m4 \ ! $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/select.m4 \ ! $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ --- 97,124 ---- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ ! $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ ! $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ! $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ ! $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/math_h.m4 \ ! $(top_srcdir)/m4/mathfunc.m4 $(top_srcdir)/m4/mbrtowc.m4 \ ! $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ ! $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/md5.m4 \ ! $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \ ! $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \ ! $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkstemp.m4 \ ! $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ ! $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/multiarch.m4 \ ! $(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/nocrash.m4 \ ! $(top_srcdir)/m4/nproc.m4 $(top_srcdir)/m4/open.m4 \ ! $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ ! $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/readlink.m4 \ ! $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ ! $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/round.m4 \ ! $(top_srcdir)/m4/roundf.m4 $(top_srcdir)/m4/save-cwd.m4 \ ! $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/sigaction.m4 \ ! $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ *************** *** 117,145 **** $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \ ! $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ ! $(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \ ! $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/tempname.m4 \ ! $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ ! $(top_srcdir)/m4/times.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ ! $(top_srcdir)/m4/trunc.m4 $(top_srcdir)/m4/truncf.m4 \ ! $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ ! $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/vasnprintf.m4 \ ! $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ ! $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ ! $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ ! $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/acinclude.m4 \ ! $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = --- 126,151 ---- $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strdup.m4 \ ! $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.m4 \ ! $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ ! $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \ ! $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/times.m4 \ ! $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/trunc.m4 \ ! $(top_srcdir)/m4/truncf.m4 $(top_srcdir)/m4/unistd-safer.m4 \ ! $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ ! $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vsnprintf.m4 \ ! $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ ! $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ ! $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = *************** *** 190,196 **** AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ - ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ --- 196,201 ---- *************** *** 342,347 **** --- 347,354 ---- GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ + GNULIB_FGETC = @GNULIB_FGETC@ + GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ *************** *** 351,359 **** --- 358,368 ---- GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ + GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPL = @GNULIB_FREXPL@ + GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ *************** *** 363,368 **** --- 372,379 ---- GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ + GNULIB_GETC = @GNULIB_GETC@ + GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ *************** *** 375,392 **** --- 386,407 ---- GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ + GNULIB_GETS = @GNULIB_GETS@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ + GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ + GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ + GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ *************** *** 417,422 **** --- 432,438 ---- GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ + GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ *************** *** 433,438 **** --- 449,455 ---- GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ + GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ *************** *** 452,457 **** --- 469,475 ---- GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ + GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ *************** *** 467,472 **** --- 485,491 ---- GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ + GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ *************** *** 484,489 **** --- 503,509 ---- GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ + GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ *************** *** 513,523 **** --- 533,545 ---- GNULIB_TIMES = @GNULIB_TIMES@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ + GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ + GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ *************** *** 529,536 **** --- 551,560 ---- GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ + GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ + GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ *************** *** 560,565 **** --- 584,592 ---- GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ + GNULIB_WCTOMB = @GNULIB_WCTOMB@ + GNULIB_WCTRANS = @GNULIB_WCTRANS@ + GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ *************** *** 626,632 **** HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ - HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ --- 653,658 ---- *************** *** 667,672 **** --- 693,699 ---- HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ + HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ *************** *** 701,706 **** --- 728,734 ---- HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ + HAVE_PCRE_CONFIG = @HAVE_PCRE_CONFIG@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ *************** *** 719,724 **** --- 747,753 ---- HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGACTION = @HAVE_SIGACTION@ + HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ *************** *** 730,736 **** HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ - HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ --- 759,764 ---- *************** *** 758,763 **** --- 786,792 ---- HAVE_SYS_TIMES_H = @HAVE_SYS_TIMES_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ + HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMES = @HAVE_TIMES@ *************** *** 798,804 **** --- 827,835 ---- HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ + HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ + HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ *************** *** 842,847 **** --- 873,879 ---- LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ + LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ *************** *** 852,857 **** --- 884,890 ---- MAGICK_LDFLAGS = @MAGICK_LDFLAGS@ MAGICK_LIBS = @MAGICK_LIBS@ MAKEINFO = @MAKEINFO@ + MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKOCTFILE_DL_LDFLAGS = @MKOCTFILE_DL_LDFLAGS@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ *************** *** 865,877 **** NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ - NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ --- 898,910 ---- NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ + NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ *************** *** 887,899 **** NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ - NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ --- 920,932 ---- NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ + NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ *************** *** 1006,1011 **** --- 1039,1045 ---- REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ + REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ *************** *** 1026,1031 **** --- 1060,1066 ---- REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ + REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ *************** *** 1044,1052 **** --- 1079,1089 ---- REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ + REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ + REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ *************** *** 1080,1085 **** --- 1117,1123 ---- REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ + REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RLD_FLAG = @RLD_FLAG@ *************** *** 1087,1093 **** ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = /bin/sh SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ --- 1125,1131 ---- ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = @SHELL@ SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ *************** *** 1144,1150 **** WARN_CXXFLAGS = @WARN_CXXFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ - WITH_PCRE_CONFIG = @WITH_PCRE_CONFIG@ X11_INCFLAGS = @X11_INCFLAGS@ X11_LIBS = @X11_LIBS@ XMKMF = @XMKMF@ --- 1182,1187 ---- *************** *** 1162,1167 **** --- 1199,1205 ---- abs_top_srcdir = @abs_top_srcdir@ ac_config_files = @ac_config_files@ ac_config_headers = @ac_config_headers@ + ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ *************** *** 1275,1281 **** localverarchlibdir = @localverarchlibdir@ localverfcnfiledir = @localverfcnfiledir@ localveroctfiledir = @localveroctfiledir@ - lt_ECHO = @lt_ECHO@ man1dir = @man1dir@ man1ext = @man1ext@ --- 1313,1318 ---- *************** *** 1405,1411 **** .SUFFIXES: .SUFFIXES: .dvi .html .info .pdf .ps .texi ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ --- 1442,1448 ---- .SUFFIXES: .SUFFIXES: .dvi .html .info .pdf .ps .texi ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build-aux/common.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ *************** *** 1854,1860 **** define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ --- 1891,1897 ---- define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/build-aux/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ *************** *** 2078,2084 **** endef define do_script_install ! $(top_srcdir)/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ --- 2115,2121 ---- endef define do_script_install ! $(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ diff -cNr octave-3.4.0/doc/liboctave/stamp-vti octave-3.4.1/doc/liboctave/stamp-vti *** octave-3.4.0/doc/liboctave/stamp-vti 2011-02-08 05:13:01.000000000 -0500 --- octave-3.4.1/doc/liboctave/stamp-vti 2011-06-15 11:41:19.000000000 -0400 *************** *** 1,4 **** ! @set UPDATED 8 February 2011 ! @set UPDATED-MONTH February 2011 ! @set EDITION 3.4.0 ! @set VERSION 3.4.0 --- 1,4 ---- ! @set UPDATED 15 June 2011 ! @set UPDATED-MONTH June 2011 ! @set EDITION 3.4.1 ! @set VERSION 3.4.1 diff -cNr octave-3.4.0/doc/liboctave/version.texi octave-3.4.1/doc/liboctave/version.texi *** octave-3.4.0/doc/liboctave/version.texi 2011-02-08 05:13:01.000000000 -0500 --- octave-3.4.1/doc/liboctave/version.texi 2011-06-15 11:41:19.000000000 -0400 *************** *** 1,4 **** ! @set UPDATED 8 February 2011 ! @set UPDATED-MONTH February 2011 ! @set EDITION 3.4.0 ! @set VERSION 3.4.0 --- 1,4 ---- ! @set UPDATED 15 June 2011 ! @set UPDATED-MONTH June 2011 ! @set EDITION 3.4.1 ! @set VERSION 3.4.1 diff -cNr octave-3.4.0/doc/Makefile.am octave-3.4.1/doc/Makefile.am *** octave-3.4.0/doc/Makefile.am 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/Makefile.am 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,31 **** # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/common.mk ## Avoid making multiple subdirs in parallel which can lead ## to a confusing error message stream .NOTPARALLEL: EXTRA_DIST = \ - ChangeLog \ Makefile.am \ texinfo.tex \ texmf.cnf --- 18,30 ---- # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/build-aux/common.mk ## Avoid making multiple subdirs in parallel which can lead ## to a confusing error message stream .NOTPARALLEL: EXTRA_DIST = \ Makefile.am \ texinfo.tex \ texmf.cnf diff -cNr octave-3.4.0/doc/Makefile.in octave-3.4.1/doc/Makefile.in *** octave-3.4.0/doc/Makefile.in 2011-02-08 05:03:34.000000000 -0500 --- octave-3.4.1/doc/Makefile.in 2011-06-15 11:31:25.000000000 -0400 *************** *** 53,63 **** build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ ! $(top_srcdir)/common.mk ChangeLog texinfo.tex subdir = doc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ --- 53,66 ---- build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ ! $(top_srcdir)/build-aux/common.mk texinfo.tex subdir = doc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/ax_pthread.m4 \ ! $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ *************** *** 65,80 **** $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ --- 68,87 ---- $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filemode.m4 \ ! $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpurge.m4 \ ! $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/fseek.m4 \ ! $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftell.m4 \ ! $(top_srcdir)/m4/ftello.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ *************** *** 88,113 **** $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ ! $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ! $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ! $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ ! $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ ! $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ ! $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \ ! $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memchr.m4 \ ! $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ ! $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkfifo.m4 \ ! $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \ ! $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ ! $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nanosleep.m4 \ ! $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ ! $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/printf.m4 \ ! $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ ! $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \ ! $(top_srcdir)/m4/round.m4 $(top_srcdir)/m4/roundf.m4 \ ! $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/select.m4 \ ! $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ --- 95,122 ---- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ ! $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ ! $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ! $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ ! $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/math_h.m4 \ ! $(top_srcdir)/m4/mathfunc.m4 $(top_srcdir)/m4/mbrtowc.m4 \ ! $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ ! $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/md5.m4 \ ! $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \ ! $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \ ! $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkstemp.m4 \ ! $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ ! $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/multiarch.m4 \ ! $(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/nocrash.m4 \ ! $(top_srcdir)/m4/nproc.m4 $(top_srcdir)/m4/open.m4 \ ! $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ ! $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/readlink.m4 \ ! $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ ! $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/round.m4 \ ! $(top_srcdir)/m4/roundf.m4 $(top_srcdir)/m4/save-cwd.m4 \ ! $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/sigaction.m4 \ ! $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ *************** *** 115,143 **** $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \ ! $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ ! $(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \ ! $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/tempname.m4 \ ! $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ ! $(top_srcdir)/m4/times.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ ! $(top_srcdir)/m4/trunc.m4 $(top_srcdir)/m4/truncf.m4 \ ! $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ ! $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/vasnprintf.m4 \ ! $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ ! $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ ! $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ ! $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/acinclude.m4 \ ! $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = --- 124,149 ---- $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strdup.m4 \ ! $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.m4 \ ! $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ ! $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \ ! $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/times.m4 \ ! $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/trunc.m4 \ ! $(top_srcdir)/m4/truncf.m4 $(top_srcdir)/m4/unistd-safer.m4 \ ! $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ ! $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vsnprintf.m4 \ ! $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ ! $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ ! $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = *************** *** 196,202 **** AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ - ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ --- 202,207 ---- *************** *** 348,353 **** --- 353,360 ---- GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ + GNULIB_FGETC = @GNULIB_FGETC@ + GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ *************** *** 357,365 **** --- 364,374 ---- GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ + GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPL = @GNULIB_FREXPL@ + GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ *************** *** 369,374 **** --- 378,385 ---- GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ + GNULIB_GETC = @GNULIB_GETC@ + GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ *************** *** 381,398 **** --- 392,413 ---- GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ + GNULIB_GETS = @GNULIB_GETS@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ + GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ + GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ + GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ *************** *** 423,428 **** --- 438,444 ---- GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ + GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ *************** *** 439,444 **** --- 455,461 ---- GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ + GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ *************** *** 458,463 **** --- 475,481 ---- GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ + GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ *************** *** 473,478 **** --- 491,497 ---- GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ + GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ *************** *** 490,495 **** --- 509,515 ---- GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ + GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ *************** *** 519,529 **** --- 539,551 ---- GNULIB_TIMES = @GNULIB_TIMES@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ + GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ + GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ *************** *** 535,542 **** --- 557,566 ---- GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ + GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ + GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ *************** *** 566,571 **** --- 590,598 ---- GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ + GNULIB_WCTOMB = @GNULIB_WCTOMB@ + GNULIB_WCTRANS = @GNULIB_WCTRANS@ + GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ *************** *** 632,638 **** HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ - HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ --- 659,664 ---- *************** *** 673,678 **** --- 699,705 ---- HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ + HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ *************** *** 707,712 **** --- 734,740 ---- HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ + HAVE_PCRE_CONFIG = @HAVE_PCRE_CONFIG@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ *************** *** 725,730 **** --- 753,759 ---- HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGACTION = @HAVE_SIGACTION@ + HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ *************** *** 736,742 **** HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ - HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ --- 765,770 ---- *************** *** 764,769 **** --- 792,798 ---- HAVE_SYS_TIMES_H = @HAVE_SYS_TIMES_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ + HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMES = @HAVE_TIMES@ *************** *** 804,810 **** --- 833,841 ---- HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ + HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ + HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ *************** *** 848,853 **** --- 879,885 ---- LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ + LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ *************** *** 858,863 **** --- 890,896 ---- MAGICK_LDFLAGS = @MAGICK_LDFLAGS@ MAGICK_LIBS = @MAGICK_LIBS@ MAKEINFO = @MAKEINFO@ + MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKOCTFILE_DL_LDFLAGS = @MKOCTFILE_DL_LDFLAGS@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ *************** *** 871,883 **** NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ - NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ --- 904,916 ---- NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ + NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ *************** *** 893,905 **** NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ - NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ --- 926,938 ---- NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ + NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ *************** *** 1012,1017 **** --- 1045,1051 ---- REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ + REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ *************** *** 1032,1037 **** --- 1066,1072 ---- REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ + REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ *************** *** 1050,1058 **** --- 1085,1095 ---- REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ + REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ + REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ *************** *** 1086,1091 **** --- 1123,1129 ---- REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ + REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RLD_FLAG = @RLD_FLAG@ *************** *** 1093,1099 **** ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = /bin/sh SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ --- 1131,1137 ---- ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = @SHELL@ SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ *************** *** 1150,1156 **** WARN_CXXFLAGS = @WARN_CXXFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ - WITH_PCRE_CONFIG = @WITH_PCRE_CONFIG@ X11_INCFLAGS = @X11_INCFLAGS@ X11_LIBS = @X11_LIBS@ XMKMF = @XMKMF@ --- 1188,1193 ---- *************** *** 1168,1173 **** --- 1205,1211 ---- abs_top_srcdir = @abs_top_srcdir@ ac_config_files = @ac_config_files@ ac_config_headers = @ac_config_headers@ + ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ *************** *** 1281,1287 **** localverarchlibdir = @localverarchlibdir@ localverfcnfiledir = @localverfcnfiledir@ localveroctfiledir = @localveroctfiledir@ - lt_ECHO = @lt_ECHO@ man1dir = @man1dir@ man1ext = @man1ext@ --- 1319,1324 ---- *************** *** 1384,1390 **** # a space, so protect with $(null)) null = EXTRA_DIST = \ - ChangeLog \ Makefile.am \ texinfo.tex \ texmf.cnf --- 1421,1426 ---- *************** *** 1393,1399 **** all: all-recursive .SUFFIXES: ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ --- 1429,1435 ---- all: all-recursive .SUFFIXES: ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build-aux/common.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ *************** *** 1746,1752 **** define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ --- 1782,1788 ---- define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/build-aux/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ *************** *** 1970,1976 **** endef define do_script_install ! $(top_srcdir)/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ --- 2006,2012 ---- endef define do_script_install ! $(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ diff -cNr octave-3.4.0/doc/refcard/Makefile.am octave-3.4.1/doc/refcard/Makefile.am *** octave-3.4.0/doc/refcard/Makefile.am 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/doc/refcard/Makefile.am 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/common.mk TEX = \ refcard.tex \ --- 18,24 ---- # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/build-aux/common.mk TEX = \ refcard.tex \ diff -cNr octave-3.4.0/doc/refcard/Makefile.in octave-3.4.1/doc/refcard/Makefile.in *** octave-3.4.0/doc/refcard/Makefile.in 2011-02-08 05:03:35.000000000 -0500 --- octave-3.4.1/doc/refcard/Makefile.in 2011-06-15 11:31:26.000000000 -0400 *************** *** 53,63 **** build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ ! $(top_srcdir)/common.mk subdir = doc/refcard ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ --- 53,66 ---- build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ ! $(top_srcdir)/build-aux/common.mk subdir = doc/refcard ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/ax_pthread.m4 \ ! $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ *************** *** 65,80 **** $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ --- 68,87 ---- $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filemode.m4 \ ! $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpurge.m4 \ ! $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/fseek.m4 \ ! $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftell.m4 \ ! $(top_srcdir)/m4/ftello.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ *************** *** 88,113 **** $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ ! $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ! $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ! $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ ! $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ ! $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ ! $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \ ! $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memchr.m4 \ ! $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ ! $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkfifo.m4 \ ! $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \ ! $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ ! $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nanosleep.m4 \ ! $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ ! $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/printf.m4 \ ! $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ ! $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \ ! $(top_srcdir)/m4/round.m4 $(top_srcdir)/m4/roundf.m4 \ ! $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/select.m4 \ ! $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ --- 95,122 ---- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ ! $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ ! $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ! $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ ! $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/math_h.m4 \ ! $(top_srcdir)/m4/mathfunc.m4 $(top_srcdir)/m4/mbrtowc.m4 \ ! $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ ! $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/md5.m4 \ ! $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \ ! $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \ ! $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkstemp.m4 \ ! $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ ! $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/multiarch.m4 \ ! $(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/nocrash.m4 \ ! $(top_srcdir)/m4/nproc.m4 $(top_srcdir)/m4/open.m4 \ ! $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ ! $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/readlink.m4 \ ! $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ ! $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/round.m4 \ ! $(top_srcdir)/m4/roundf.m4 $(top_srcdir)/m4/save-cwd.m4 \ ! $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/sigaction.m4 \ ! $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ *************** *** 115,143 **** $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \ ! $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ ! $(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \ ! $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/tempname.m4 \ ! $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ ! $(top_srcdir)/m4/times.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ ! $(top_srcdir)/m4/trunc.m4 $(top_srcdir)/m4/truncf.m4 \ ! $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ ! $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/vasnprintf.m4 \ ! $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ ! $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ ! $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ ! $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/acinclude.m4 \ ! $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = --- 124,149 ---- $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strdup.m4 \ ! $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.m4 \ ! $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ ! $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \ ! $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/times.m4 \ ! $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/trunc.m4 \ ! $(top_srcdir)/m4/truncf.m4 $(top_srcdir)/m4/unistd-safer.m4 \ ! $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ ! $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vsnprintf.m4 \ ! $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ ! $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ ! $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = *************** *** 156,162 **** AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ - ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ --- 162,167 ---- *************** *** 308,313 **** --- 313,320 ---- GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ + GNULIB_FGETC = @GNULIB_FGETC@ + GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ *************** *** 317,325 **** --- 324,334 ---- GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ + GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPL = @GNULIB_FREXPL@ + GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ *************** *** 329,334 **** --- 338,345 ---- GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ + GNULIB_GETC = @GNULIB_GETC@ + GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ *************** *** 341,358 **** --- 352,373 ---- GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ + GNULIB_GETS = @GNULIB_GETS@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ + GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ + GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ + GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ *************** *** 383,388 **** --- 398,404 ---- GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ + GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ *************** *** 399,404 **** --- 415,421 ---- GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ + GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ *************** *** 418,423 **** --- 435,441 ---- GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ + GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ *************** *** 433,438 **** --- 451,457 ---- GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ + GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ *************** *** 450,455 **** --- 469,475 ---- GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ + GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ *************** *** 479,489 **** --- 499,511 ---- GNULIB_TIMES = @GNULIB_TIMES@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ + GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ + GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ *************** *** 495,502 **** --- 517,526 ---- GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ + GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ + GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ *************** *** 526,531 **** --- 550,558 ---- GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ + GNULIB_WCTOMB = @GNULIB_WCTOMB@ + GNULIB_WCTRANS = @GNULIB_WCTRANS@ + GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ *************** *** 592,598 **** HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ - HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ --- 619,624 ---- *************** *** 633,638 **** --- 659,665 ---- HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ + HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ *************** *** 667,672 **** --- 694,700 ---- HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ + HAVE_PCRE_CONFIG = @HAVE_PCRE_CONFIG@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ *************** *** 685,690 **** --- 713,719 ---- HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGACTION = @HAVE_SIGACTION@ + HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ *************** *** 696,702 **** HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ - HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ --- 725,730 ---- *************** *** 724,729 **** --- 752,758 ---- HAVE_SYS_TIMES_H = @HAVE_SYS_TIMES_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ + HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMES = @HAVE_TIMES@ *************** *** 764,770 **** --- 793,801 ---- HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ + HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ + HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ *************** *** 808,813 **** --- 839,845 ---- LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ + LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ *************** *** 818,823 **** --- 850,856 ---- MAGICK_LDFLAGS = @MAGICK_LDFLAGS@ MAGICK_LIBS = @MAGICK_LIBS@ MAKEINFO = @MAKEINFO@ + MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKOCTFILE_DL_LDFLAGS = @MKOCTFILE_DL_LDFLAGS@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ *************** *** 831,843 **** NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ - NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ --- 864,876 ---- NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ + NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ *************** *** 853,865 **** NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ - NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ --- 886,898 ---- NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ + NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ *************** *** 972,977 **** --- 1005,1011 ---- REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ + REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ *************** *** 992,997 **** --- 1026,1032 ---- REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ + REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ *************** *** 1010,1018 **** --- 1045,1055 ---- REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ + REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ + REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ *************** *** 1046,1051 **** --- 1083,1089 ---- REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ + REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RLD_FLAG = @RLD_FLAG@ *************** *** 1053,1059 **** ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = /bin/sh SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ --- 1091,1097 ---- ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = @SHELL@ SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ *************** *** 1110,1116 **** WARN_CXXFLAGS = @WARN_CXXFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ - WITH_PCRE_CONFIG = @WITH_PCRE_CONFIG@ X11_INCFLAGS = @X11_INCFLAGS@ X11_LIBS = @X11_LIBS@ XMKMF = @XMKMF@ --- 1148,1153 ---- *************** *** 1128,1133 **** --- 1165,1171 ---- abs_top_srcdir = @abs_top_srcdir@ ac_config_files = @ac_config_files@ ac_config_headers = @ac_config_headers@ + ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ *************** *** 1241,1247 **** localverarchlibdir = @localverarchlibdir@ localverfcnfiledir = @localverfcnfiledir@ localveroctfiledir = @localveroctfiledir@ - lt_ECHO = @lt_ECHO@ man1dir = @man1dir@ man1ext = @man1ext@ --- 1279,1284 ---- *************** *** 1369,1375 **** all: all-am .SUFFIXES: ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ --- 1406,1412 ---- all: all-am .SUFFIXES: ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build-aux/common.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ *************** *** 1563,1569 **** define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ --- 1600,1606 ---- define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/build-aux/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ *************** *** 1787,1793 **** endef define do_script_install ! $(top_srcdir)/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ --- 1824,1830 ---- endef define do_script_install ! $(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ Binary files octave-3.4.0/doc/refcard/refcard-a4.pdf and octave-3.4.1/doc/refcard/refcard-a4.pdf differ Binary files octave-3.4.0/doc/refcard/refcard-legal.pdf and octave-3.4.1/doc/refcard/refcard-legal.pdf differ Binary files octave-3.4.0/doc/refcard/refcard-letter.pdf and octave-3.4.1/doc/refcard/refcard-letter.pdf differ diff -cNr octave-3.4.0/etc/gdbinit octave-3.4.1/etc/gdbinit *** octave-3.4.0/etc/gdbinit 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/gdbinit 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,48 ---- + ## Helpful macros for debugging Octave. + + ## Display a dim-vector object. + + define display-dims + echo ndims: \ + output $arg0.rep[-1] + echo \ndims: \ + output *$arg0.rep@$arg0.rep[-1] + echo \n + dont-repeat + end + + ## Display a dense array object. + + define display-dense-array + echo array object: \ + output $arg0 + echo \ndimensions:\n + display-dims $arg0.dimensions + echo \nrep = \ + output *$arg0.rep + echo \nrep.data = \ + output *$arg0.rep.data@$arg0.rep.len + echo \n + dont-repeat + end + + ## Display a sparse array object. + + define display-sparse-array + echo sparse object: \ + output $arg0 + echo \ndimensions.rep[0] = \ + display-dims $arg0.dimensions + echo \ndimensions.rep[1] = \ + output $arg0.dimensions.rep[1] + echo \nrep = \ + output *$arg0.rep + echo \nrep.d = \ + output *$arg0.rep.d@$arg0.rep.nzmx + echo \nrep.r = \ + output *$arg0.rep.r@$arg0.rep.nzmx + echo \nrep.c = \ + output *$arg0.rep.c@($arg0.rep.ncols+1) + echo \n + dont-repeat + end diff -cNr octave-3.4.0/etc/NEWS.1 octave-3.4.1/etc/NEWS.1 *** octave-3.4.0/etc/NEWS.1 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/NEWS.1 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,1602 ---- + Summary of changes for version 1.1.1: + ------------------------------------ + + * New built-in variables, default_return_value and + define_all_return_values. + + If define_all_return_values is set to "false", Octave does not do + anything special for return values that are left undefined, and + you will get an error message if you try to use them. For + example, if the function + + function [x, y] = f () + y = 1; + endfunction + + is called as + + octave:13> [a, b] = f () + + Octave will print an error message for the attempt to assign an + undefined value to `a'. + + This is incompatible with Matlab, which will define the return + variable `x' to be the empty matrix. To get the Matlab-like + behavior, you can set the variable define_all_return_values to + "true" (the default is "false") and default_return_value to `[]' + (the default). Then, any return values that remain undefined when + the function returns will be initialized to `[]'. + + If the function is called without explicitly asking for an output, + it will succeed. This behavior is compatible and unchanged from + previous versions of Octave. + + * New built-in variable suppress_verbose_help_message. If set to + "true", Octave will not add additional help information to the end + of the output from the help command and usage messages for + built-in commands. The default value is "false". + + * New built-in variable PS4 is used as the prefix of echoed input + (enabled with the --echo-input (-x) option). + + * The function size() now accepts an optional second argument. + + * Output from `save - ...' now goes through the pager. + + * The break statement may also be used to exit a function, for + compatibility with Matlab. + + * The directory tree for installing Octave is now closer to + conforming with the current GNU standards. + + * More bug fixes. + + Summary of changes for version 1.1.0: + ------------------------------------ + + * Octave now requires g++ 2.6.3 or later. This change is necessary + to make template instantiations cleaner, and to avoid having to + have special cases in the code for earlier versions of gcc. + + * A new data structure type has been added. The implementation uses + an associative array with indices limited to strings, but the + syntax is more like C-style structures. here are some examples of + using it. + + Elements of structures can be of any type, including structures: + + octave:1> x.a = 1; + octave:2> x.b = [1, 2; 3, 4]; + octave:3> x.c = "string"; + octave:4> x + x = + + + + octave:5> x.a + x.a = 1 + octave:6> x.b + x.b = + + 1 2 + 3 4 + + octave:7> x.c + x.c = string + octave:8> x.b.d = 3 + x.b.d = 3 + octave:9> x.b + x.b = + + + + octave:10> x.b.d + x.b.d = 3 + + Functions can return structures: + + octave:1> a = rand (3) + rand (3) * I; + octave:2> function y = f (x) + > y.re = real (x); + > y.im = imag (x); + > endfunction + octave:3> f (a) + ans = + + + + octave:4> ans.im + ans.im = + + 0.093411 0.229690 0.627585 + 0.415128 0.221706 0.850341 + 0.894990 0.343265 0.384018 + + octave:5> ans.re + ans.re = + + 0.56234 0.14797 0.26416 + 0.72120 0.62691 0.20910 + 0.89211 0.25175 0.21081 + + Return lists can include structure elements: + + octave:1> [x.u, x.s, x.v] = svd ([1, 2; 3, 4]) + x.u = + + -0.40455 -0.91451 + -0.91451 0.40455 + + x.s = + + 5.46499 0.00000 + 0.00000 0.36597 + + x.v = + + -0.57605 0.81742 + -0.81742 -0.57605 + + octave:8> x + x = + + + + This feature should be considered experimental, but it seems to + work OK. Suggestions for ways to improve it are welcome. + + * Octave now supports a limited form of exception handling modeled + after the unwind-protect form of Lisp: + + unwind_protect + BODY + unwind_protect_cleanup + CLEANUP + end_unwind_protect + + Where BODY and CLEANUP are both optional and may contain any + Octave expressions or commands. The statements in CLEANUP are + guaranteed to be executed regardless of how control exits BODY. + + This is useful to protect temporary changes to global variables + from possible errors. For example, the following code will always + restore the original value of the built-in variable + do_fortran_indexing even if an error occurs while performing the + indexing operation. + + save_do_fortran_indexing = do_fortran_indexing; + unwind_protect + do_fortran_indexing = "true"; + elt = a (idx) + unwind_protect_cleanup + do_fortran_indexing = save_do_fortran_indexing; + end_unwind_protect + + Without unwind_protect, the value of do_fortran_indexing would not + be restored if an error occurs while performing the indexing + operation because evaluation would stop at the point of the error + and the statement to restore the value would not be executed. + + * Recursive directory searching has been implemented using Karl + Berry's kpathsea library. Directories below path elements that + end in // are searched recursively for .m files. + + * Octave now waits for additional input when a pair of parentheses + is `open' instead of giving an error. This allows one to write + statements like this + + if (big_long_variable_name == other_long_variable_name + || not_so_short_variable_name > 4 + && y > x) + some (code, here); + + without having to clutter up the if statement with continuation + characters. + + * Continuation lines are now allowed in string constants and are + handled correctly inside matrix constants. + + * Both `...{whitespace}\n' and `\{whitespace}\n' can be used to + introduce continuation lines, where {whitespace} may include + spaces, tabs and comments. + + * The script directory has been split up by topic. + + * Dynamic linking mostly works with dld. The following limitations + are known problems: + + -- Clearing dynamically linked functions doesn't work. + + -- Dynamic linking only works with dld, which has not been ported + to very many systems yet. + + -- Configuring with --enable-lite-kernel seems to mostly work to + make nonessential built-in functions dynamically loaded, but + there also seem to be some problems. For example, fsolve seems + to always return info == 3. This is difficult to debug since + GDB doesn't appear to allow breakpoints to be set inside + dynamically loaded functions. + + -- Octave uses a lot of memory if the dynamically linked functions + are compiled with -g. This appears to be a limitation with + dld, and can be avoided by not using -g to compile functions + that will be linked dynamically. + + * fft2 and ifft2 are now built-in functions. + + * The `&&' and `||' logical operators are now evaluated in a + short-circuit fashion and work differently than the element by + element operators `&' and `|'. See the Octave manual for more + details. + + * Expressions like 1./m are now parsed as 1 ./ m, not 1. / m. + + * The replot command now takes the same arguments as gplot or + gsplot (except ranges, which cannot be respecified with replot + (yet)) so you can add additional lines to existing plots. + + * The hold command has been implemented. + + * New function `clearplot' clears the plot window. The name `clg' + is aliased to `clearplot' for compatibility with Matlab. + + * The commands `gplot clear' and `gsplot clear' are equivalent to + `clearplot'. (Previously, `gplot clear' would evaluate `clear' as + an ordinary expression and clear all the visible variables.) + + * The Matlab-style plotting commands have been improved. They now + accept line-style arguments, multiple x-y pairs, and other plot + option flags. For example, + + plot (x, y, "@12", x, y2, x, y3, "4", x, y4, "+") + + results in a plot with + + y plotted with points of type 2 ("+") and color 1 (red). + y2 plotted with lines. + y3 plotted with lines of color 4. + y4 plotted with points which are "+"s. + + the help message for `plot' and `plot_opt' provide full + descriptions of the options. + + * NaN is now dropped from plot data, and Inf is converted to a + very large value before calling gnuplot. + + * Improved load and save commands: + + -- The save and load commands can now read and write a new binary + file format. Conversion to and from IEEE big and little endian + formats is handled automatically. Conversion for other formats + has not yet been implemented. + + -- The load command can now read Matlab .mat files, though it is + not yet able to read sparse matrices or handle conversion for + all data formats. + + -- The save command can write Matlab .mat files. + + -- The load command automatically determines the save format + (binary, ascii, or Matlab binary). + + -- The default format for the save command is taken from the + built-in variable `default_save_format'. + + -- The save and load commands now both accept a list of globbing + patterns so you can easily load a list of variables from a + file. + + -- The load command now accepts the option -list, for listing the + variable names without actually loading the data. With + -verbose, it prints a long listing. + + -- The load command now accepts the option -float-binary, for + saving floating point data in binary files in single precision. + + * who and whos now accept a list of globbing patterns so you can + limit the lists of variables and functions to those that match a + given set of patterns. + + * New functions for manipulating polynomials + + compan -- companion matrix corresponding to polynomial coefficients + conv -- convolve two vectors + deconv -- deconvolve two vectors + roots -- find the roots of a polynomial + poly -- characteristic polynomial of a matrix + polyderiv -- differentiate a polynomial + polyinteg -- integrate a polynomial + polyreduce -- reduce a polynomial to minimum number of terms + polyval -- evaluate a polynomial at a point + polyvalm -- evaluate a polynomial in the matrix sense + residue -- partial fraction expansion corresponding to the ratio + of two polynomials + + * New functions for manipulating sets + + create_set -- create a set of unique values + complement -- find the complement of two sets + intersection -- find the intersection of two sets + union -- find the union of two sets + + * New elementary functions: + + acot acoth acsc acsch + asec asech cot coth + csc csch log2 sec + sech + + * New special functions: + + beta -- beta function + betai -- incomplete beta function + gammai -- incomplete gamma function + + * New image processing functions: + + colormap -- set and return current colormap + gray -- set a gray colormap + gray2ind -- image format conversion + image -- display an image + imagesc -- scale and display an image + imshow -- display images + ind2gray -- image format conversion + ind2rgb -- image format conversion + loadimage -- load an image from a file + ntsc2rgb -- image format conversion + ocean -- set a color colormap + rgb2ind -- image format conversion + rgb2ntsc -- image format conversion + saveimage -- save an image to a file + + * New time and date functions: + + tic -- set wall-clock timer + toc -- get elapsed wall-clock time, since timer last set + etime -- another way to get elapsed wall-clock time + cputime -- get CPU time used since Octave started + is_leap_year -- is the given year a leap year? + + * Other new functions: + + bug_report -- submit a bug report to the bug-octave mailing list + + toascii -- convert a string to a matrix of ASCII character codes + + octave_tmp_file -- generate a unique temporary file name + + undo_string_escapes -- replace special characters in a string by + their backslash forms + + is_struct -- determine whether something is a structure data type + + feof -- check EOF condition for a specified file + ferror -- check error state for a specified file + fread -- read binary data from a file + fwrite -- write binary data to a file + + file_in_path -- check to see if named file exists in given path + + kbhit -- get a single character from the terminal + + axis -- change plot ranges + hist -- plot histograms + + diary -- save commands and output to a file + + type -- show the definition of a function + which -- print the type of an identifier or the location of a + function file + + isieee -- Returns 1 if host uses IEEE floating point + realmax -- Returns largest floating point number + realmin -- Returns smallest floating point number + + gcd -- greatest common divisor + lcm -- least common multiple + + null -- orthonormal basis of the null space of a matrix + orth -- orthonormal basis of the range space of a matrix + + fft2 -- two-dimensional fast fourier transform + ifft2 -- two-dimensional inverse fast fourier transform + filter -- digital filter + fftfilt -- filter using fft + fftconv -- convolve to vectors using fft + sinc -- returns sin(pi*x)/(pi*x) + freqz -- compute the frequency response of a filter + + * The meaning of nargin (== args.length ()) in built-in functions + has been changed to match the meaning of nargin in user-defined + functions. + + * Variable return lists. Octave now has a real mechanism for + handling functions that return an unspecified number of values, + so it is no longer necessary to place an upper bound on the number + of outputs that a function can produce. + + Here is an example of a function that uses the new syntax to + produce n values: + + function [...] = foo (n) + for i = 1:n + vr_val (i * x); + endfor + endfunction + + * New keyword, all_va_args, that allows the entire list of va_args + to be passed to another function. For example, given the functions + + function f (...) + while (nargin--) + disp (va_arg ()) + endwhile + endfunction + function g (...) + f ("begin", all_va_args, "end") + endfunction + + the statement + + g (1, 2, 3) + + prints + + begin + 1 + 2 + 3 + end + + all_va_args may be used more than once, but can only be used + within functions that take a variable number of arguments. + + * If given a second argument, svd now returns an economy-sized + decomposition, eliminating the unnecessary rows or columns of U or + V. + + * The max and min functions correctly handle complex matrices in + which some columns contain real values only. + + * The find function now handles 2 and 3 output arguments. + + * The qr function now allows computation of QR with pivoting. + + * hilb() is much faster for large matrices. + + * computer() is now a built-in function. + + * pinv() is now a built-in function. + + * The output from the history command now goes through the pager. + + * If a function is called without assigning the result, nargout is + now correctly set to 0. + + * It is now possible to write functions that only set some return + values. For example, calling the function + + function [x, y, z] = f () x = 1; z = 2; endfunction + + as + + [a, b, c] = f () + + produces: + + a = 1 + + b = [](0x0) + + c = 2 + + * The shell_cmd function has been renamed to system (the name + shell_cmd remains for compatibility). It now returns [output, status]. + + * New built-in variable `OCTAVE_VERSION'. Also a new function, + version, for compatibility with Matlab. + + * New built-in variable `automatic_replot'. If it is "true", Octave + will automatically send a replot command to gnuplot each time the + plot changes. Since this is fairly inefficient, the default value + is "false". + + * New built-in variable `whitespace_in_literal_matrix' allows some + control over how Octave decides to convert spaces to commas in + matrix expressions like `[m (1)]'. + + If the value of `whitespace_in_literal_matrix' is "ignore", Octave + will never insert a comma or a semicolon in a literal matrix list. + For example, the expression `[1 2]' will result in an error + instead of being treated the same as `[1, 2]', and the expression + + [ 1, 2, + 3, 4 ] + + will result in the vector [1 2 3 4] instead of a matrix. + + If the value of `whitespace_in_literal_matrix' is "traditional", + Octave will convert spaces to a comma between identifiers and `('. + For example, given the matrix + + m = [3 2] + + the expression + + [m (1)] + + will be parsed as + + [m, (1)] + + and will result in + + [3 2 1] + + and the expression + + [ 1, 2, + 3, 4 ] + + will result in a matrix because the newline character is converted + to a semicolon (row separator) even though there is a comma at the + end of the first line (trailing commas or semicolons are ignored). + This is apparently how Matlab behaves. + + Any other value for `whitespace_in_literal_matrix' results in + behavior that is the same as traditional, except that Octave does + not convert spaces to a comma between identifiers and `('. + For example, the expression + + [m (1)] + + will produce 3. This is the way Octave has always behaved. + + * Line numbers in error messages for functions defined in files and + for script files now correspond to the file line number, not the + number of lines after the function keyword appeared. + + * Octave now extracts help from script files. The comments must + come before any other statements in the file. + + * In function files, the first block of comments in the file will + now be interpreted as the help text if it doesn't look like the + Octave copyright notice. Otherwise, Octave extracts the first set + of comments after the function keyword. + + * The function clock is more accurate on systems that have the + gettimeofday() function. + + * The standard output stream is now automatically flushed before + reading from stdin with any of the *scanf() functions. + + * Expanded reference card. + + * The Octave distribution now includes a frequently asked questions + file, with answers. Better answers and more questions (with + answers!) are welcome. + + * New option --verbose. If Octave is invoked with --verbose and not + --silent, a message is printed if an octaverc file is read while + Octave is starting. + + * An improved configure script generated by Autoconf 2.0. + + * Lots of bug fixes. + + Summary of changes for version 1.0: + ---------------------------------- + + * C-style I/O functions now handle files referenced by name or by + number more consistently. + + Summary of changes for version 0.83: + ----------------------------------- + + * Loading global symbols should work now. + + * Clearing the screen doesn't reprint the prompt unnecessarily. + + * The operations OP for OP == +, -, + *, or ./ no longer crash Octave. + + * More portability and configuration fixes. + + Summary of changes for version 0.82: + ----------------------------------- + + * Octave now comes with a reference card. + + * The manual has been improved, but more work remains to be done. + + * The atanh function now works for complex arguments. + + * The asin, acos, acosh, and atanh functions now work properly when + given real-valued arguments that produce complex results. + + * SEEK_SET, SEEK_CUR, and SEEK_END are now constants. + + * The `using' qualifier now works with gplot and gsplot when the + data to plot is coming directly from a file. + + * The strcmp function now works correctly for empty strings. + + * Eliminated bogus parse error for M-files that don't end with `end' + or `endfunction'. + + * For empty matrices with one nonzero dimension, the +, -, .*, and + ./ operators now correctly preserve the dimension. + + * Octave no longer crashes if you type ^D at the beginning of a line + in the middle of defining a loop or if statement. + + * On AIX systems, Back off on indexing DiagArray via Proxy class to + avoid gcc (or possibly AIX assembler?) bug. + + * Various other bug and portability fixes. + + Summary of changes for version 0.81: + ----------------------------------- + + * Octave no longer dumps core if you try to define a function in + your .octaverc file. + + * Fixed bug in Array class that resulted in bogus off-diagonal + elements when computing eigenvalue and singular value + decompositions. + + * Fixed bug that prevented lsode from working on the SPARCstation, + at least with some versions of Sun's f77. This bug was introduced + in 0.80, when I changed LSODE to allow the user to abort the + integration from within the RHS function. + + * Fixed bug that prevented global attribute of variables from being + saved with save(), and another that prevented load() from working + at all. + + Summary of changes for version 0.80: + ----------------------------------- + + * I have started working on a manual for the C++ classes. At this + point, it is little more than a list of function names. If you + would like to volunteer to help work on this, please contact + maintainers@octave.org. + + * The patterns accepted by the save and clear commands now work like + file name globbing patterns instead of regular expressions. I + apologize for any inconvenience this change may cause, but file + name globbing seems like a more reasonable style of pattern + matching for this purpose. + + * It is now possible to specify tolerances and other optional inputs + for dassl, fsolve, lsode, npsol, qpsol, and quad. For each of + these functions, there is a corresponding function X_options, + which takes a keyword and value arguments. If invoked without any + arguments, the X_options functions print a list of possible + keywords and current values. For example, + + npsol_options () + + prints a list of possible options with values, and + + npsol_options ("major print level", 10) + + sets the major print level to 10. + + The keyword match is not case sensitive, and the keywords may be + abbreviated to the shortest unique match. For example, + + npsol_options ("ma p", 10) + + is equivalent to the statement shown above. + + * The new built-in variable save_precision can be used to set the + number of digits preserved by the ASCII save command. + + * Assignment of [] now works in most cases to allow you to delete + rows or columns of matrices and vectors. For example, given a + 4x5 matrix A, the assignment + + A (3, :) = [] + + deletes the third row of A, and the assignment + + A (:, 1:2:5) = [] + + deletes the first, third, and fifth columns. + + * Variable argument lists. Octave now has a real mechanism for + handling functions that take an unspecified number of arguments, + so it is no longer necessary to place an upper bound on the number + of optional arguments that a function can accept. + + Here is an example of a function that uses the new syntax to print + a header followed by an unspecified number of values: + + function foo (heading, ...) + disp (heading); + va_start (); + while (--nargin) + disp (va_arg ()); + endwhile + endfunction + + Note that the argument list must contain at least one named + argument (this restriction may eventually be removed), and the + ellipsis must appear as the last element of the argument list. + + Calling va_start() positions an internal pointer to the first + unnamed argument and allows you to cycle through the arguments + more than once. It is not necessary to call va_start() if you + do not plan to cycle through the arguments more than once. + + * Recursive functions should work now. + + * The environment variable OCTAVE_PATH is now handled in the same + way as TeX handles TEXINPUTS. If the path starts with `:', the + standard path is prepended to the value obtained from the + environment. If it ends with `:' the standard path is appended to + the value obtained from the environment. + + * New functions, from Kurt Hornik (hornik@neuro.tuwien.ac.at) and + the Department of Probability Theory and Statistics TU Wien, + Austria: + + corrcoef -- corrcoef (X, Y) is the correlation between the i-th + variable in X and the j-th variable in Y + corrcoef (X) is corrcoef (X, X) + cov -- cov (X, Y) is the covariance between the i-th + variable in X and the j-th variable in Y + cov (X) is cov (X, X) + gls -- generalized least squares estimation + kurtosis -- kurtosis(x) = N^(-1) std(x)^(-4) SUM_i (x(i)-mean(x))^4 - 3 + If x is a matrix, return the row vector containing + the kurtosis of each column + mahalanobis -- returns Mahalanobis' D-square distance between the + multivariate samples X and Y, which must have the + same number of components (columns), but may have + a different number of observations (rows) + ols -- ordinary least squares estimation + pinv -- returns the pseudoinverse of X; singular values + less than tol are ignored + skewness -- skewness (x) = N^(-1) std(x)^(-3) SUM_i (x(i)-mean(x))^3 + if x is a matrix, return the row vector containing + the skewness of each column + + * Errors in user-supplied functions called from dassl, fsolve, + lsode, npsol, and quad are handled more gracefully. + + * Programming errors in the use of the C++ classes within Octave + should no longer cause Octave to abort. Instead, Octave's error + handler function is called and execution continues as best as is + possible. This should result in eventually returning control to + the top-level Octave prompt. (It would be nice to have a real + exception handling mechanism...) + + * A number of memory leaks have been eliminated. Thanks to + Fong Kin Fui for reporting them. + + * The C++ matrix classes are now derived from a generic + template-based array class. + + * The readline function operate-and-get-next (from bash) is now + available and bound to C-O by default. + + * Octave now uses the version of readline currently distributed with + bash-1.13. On some systems, interactive invocations of Octave + will now blink the cursor to show matching parens. + + * By default, include files are now installed in + $prefix/include/octave instead of $prefix/include. + + * Octave now uses a config.h file instead of putting all defines on + the compiler command line. + + Summary of changes for version 0.79: + ----------------------------------- + + * New control systems functions: + + dgram -- Returns the discrete controllability and observability gramian. + dlqr -- Discrete linear quadratic regulator design. + dlqe -- Discrete linear quadratic estimator (Kalman Filter) design. + c2d -- Convert continuous system description to discrete time + description assuming zero-order hold and given sample time. + + * The max (min) functions can now return the index of the max (min) + value as a second return value. + + Summary of changes for version 0.78: + ----------------------------------- + + * Octave's handling of global variables has been completely + rewritten. To access global variables inside a function, you must + now declare them to be global within the function body. Likewise, + if you do not declare a variable as global at the command line, + you will not have access to it within a function, even if it is + declared global there. For example, given the function + + function f () + global x = 1; + y = 2; + endfunction + + the global variable `x' is not visible at the top level until the + command + + octave:13> global x + + has been evaluated, and the variable `y' remains local to the + function f() even if it is declared global at the top level. + + Clearing a global variable at the top level will remove its global + scope and leave it undefined. For example, + + octave:1> function f () # Define a function that accesses + > global x; # the global variable `x'. + > x + > endfunction + octave:2> global x = 1 # Give the variable `x' a value. + octave:3> f () # Evaluating the function accesses the + x = 1 # global `x'. + octave:4> clear x # Remove `x' from global scope, clear value. + octave:5> x = 2 # Define new local `x' at the top level + x = 2 + octave:6> f # The global `x' is no longer defined. + error: `x' undefined near line 1 column 25 + error: evaluating expression near line 1, column 25 + error: called from `f' + octave:7> x # But the local one is. + x = 2 + + * The new function, `is_global (string)' returns 1 if the variable + named by string is globally visible. Otherwise, returns 0. + + * The implementation of `who' has changed. It now accepts the + following options: + + -b -builtins -- display info for built-in variables and functions + -f -functions -- display info for currently compiled functions + -v -variables -- display info for user variables + -l -long -- display long info + + The long output looks like this: + + octave:5> who -l + + *** currently compiled functions: + + prot type rows cols name + ==== ==== ==== ==== ==== + wd user function - - f + + *** local user variables: + + prot type rows cols name + ==== ==== ==== ==== ==== + wd real scalar 1 1 y + + *** globally visible user variables: + + prot type rows cols name + ==== ==== ==== ==== ==== + wd complex matrix 13 13 x + + where the first character of the `protection' field is `w' if the + symbol can be redefined, and `-' if it has read-only access. The + second character may be `d' if the symbol can be deleted, or `-' + if the symbol cannot be cleared. + + * The new built-in variable ignore_function_time_stamp can be used + to prevent Octave from calling stat() each time it looks up + functions defined in M-files. If set to "system", Octave will not + automatically recompile M-files in subdirectories of + $OCTAVE_HOME/lib/VERSION if they have changed since they were last + compiled, but will recompile other M-files in the LOADPATH if they + change. If set to "all", Octave will not recompile any M-files + unless their definitions are removed with clear. For any other + value of ignore_function_time_stamp, Octave will always check to + see if functions defined in M-files need to recompiled. The + default value of ignore_function_time_stamp is "system". + + * The new built-in variable EDITOR can be used to specify the editor + for the edit_history command. It is set to the value of the + environment variable EDITOR, or `vi' if EDITOR is not set, or is + empty. + + * There is a new built-in variable, INFO_FILE, which is used as the + location of the info file. Its initial value is + $OCTAVE_HOME/info/octave.info, so `help -i' should now work + provided that OCTAVE_HOME is set correctly, even if Octave is + installed in a directory different from that specified at compile + time. + + * There is a new command line option, --info-file FILE, that may be + used to set Octave's idea of the location of the info file. It + will override any value of OCTAVE_INFO_FILE found in the + environment, but not any INFO_FILE="filename" commands found in + the system or user startup files. + + * Octave's Info reader will now recognize gzipped files that have + names ending in `.gz'. + + * The save command now accepts regular expressions as arguments. + Note that these patterns are regular expressions, and do not work + like filename globbing. For example, given the variables `a', + `aa', and `a1', the command `save a*' saves `a' and `aa' but not + `a1'. To match all variables beginning with `a', you must use an + expression like `a.*' (match all sequences beginning with `a' + followed by zero or more characters). + + * Line and column information is included in more error messages. + + Summary of changes for version 0.77: + ----------------------------------- + + * Improved help. The command `help -i topic' now uses the GNU Info + browser to display help for the given topic directly from the + Texinfo documentation. + + * New function: chol -- Cholesky factorization. + + Summary of changes for version 0.76: + ----------------------------------- + + * Better run-time error messages. Many now include line and column + information indicating where the error occurred. Octave will also + print a traceback for errors occurring inside functions. If you + find error messages that could use improvement, or errors that + Octave fails to catch, please send a bug report to + bug@octave.org. + + * If gplot (or gsplot) is given a string to plot, and the string + does not name a file, Octave will pass the string along to gnuplot + directly. This allows commands like + + gplot "sin (x)" w l, data w p + + to work (assuming that data is a variable containing a matrix of + values). + + * Long options (--help, --version, etc.) are supported. + + Summary of changes for version 0.75: + ----------------------------------- + + * The documentation is much more complete, but still could use a lot + of work. + + * The history function now prints line numbers by default. The + command `history -q' will omit them. + + * The clear function now accepts regular expressions. + + * If gplot (or gsplot) is given a string to plot, and the string + names a file, Octave attempts to plot the contents of the file. + + * New functions: + + history: + + run_history -- run commands from the history list. + edit_history -- edit commands from the history list with your + favorite editor. + + linear algebra: + + balance -- Balancing for algebraic and generalized + eigenvalue problems. + givens -- Givens rotation. + is_square -- Check to see if a matrix is square. + qzhess -- QZ decomposition of the matrix pencil (a - lambda b). + qzval -- Generalized eigenvalues for real matrices. + syl -- Sylvester equation solver. + + control systems: + + is_symmetric -- Check to see if a matrix is symmetric. + abcddim -- Check dimensions of linear dynamic system [A,B,C,D]. + is_controllable -- Check to see if [A,B,C,D] is controllable. + is_observable -- Check to see if [A,B,C,D] is observable. + are -- Solve algebraic Ricatti equation. + dare -- Solve discrete-time algebraic Ricatti equation. + lqe -- Kalman filter design for continuous linear system. + lqr -- Linear Quadratic Regulator design. + lyap -- Solve Lyapunov equation. + dlyap -- Solve discrete Lyapunov equation. + tzero -- Compute the transmission zeros of [A,B,C,D]. + + Summary of changes for version 0.74: + ----------------------------------- + + * Formal parameters to functions are now always considered to be + local variables, so things like + + global x = 0 + global y = 0 + function y = f (x) x = 1; y = x; end + f (x) + + result in the function returning 1, with the global values of x + and y unchanged. + + * Multiple assignment expressions are now allowed to take indices, + so things like + + octave:13> [a([1,2],[3,4]), b([5,6],[7,8])] = lu ([1,2;3,4]) + + will work correctly. + + Summary of changes for version 0.73: + ----------------------------------- + + * Saving and loading global variables works correctly now. + + * The save command no longer saves built-in variables. + + * Global variables are more reliable. + + * Matrices may now have one or both dimensions zero, so that + operations on empty matrices are now handled more consistently. + + By default, dimensions of the empty matrix are now printed along + with the empty matrix symbol, `[]'. For example: + + octave:13> zeros (3, 0) + ans = + + [](3x0) + + The new variable `print_empty_dimensions' controls this behavior. + + See also Carl de Boor, An Empty Exercise, SIGNUM, Volume 25, + pages 2--6, 1990, or C. N. Nett and W. M. Haddad, A + System-Theoretic Appropriate Realization of the Empty Matrix + Concept, IEEE Transactions on Automatic Control, Volume 38, + Number 5, May 1993. + + * The right and left division operators `/' and `\' will now find a + minimum norm solution if the system is not square, or if the + coefficient matrix is singular. + + * New functions: + + hess -- Hessenberg decomposition + schur -- Ordered Schur factorization + perror -- print error messages corresponding to error codes + returned from the functions fsolve, npsol, and qpsol + (with others to possibly be added later). + + * Octave now prints a warning if it finds anything other than + whitespace or comments after the final `end' or `endfunction' + statement. + + * The bodies of functions, and the for, while, and if commands are + now allowed to be empty. + + * Support for Gill and Murray's QPSOL has been added. Like NPSOL, + QPSOL is not freely redistributable either, so you must obtain + your own copy to be able to use this feature. More information + about where to find QPSOL and NPSOL are in the file README.NLP. + + Summary of changes for version 0.72: + ----------------------------------- + + * For numeric output, columns are now lined up on the decimal point. + (This requires libg++-2.3.1 or later to work correctly). + + * If octave is running interactively and the output intended for the + screen is longer than one page and a pager is available, it is + sent to the pager through a pipe. You may specify the program to + use as the pager by setting the variable PAGER. PAGER may also + specify a command pipeline. + + * Spaces are not always significant inside square brackets now, so + commands like + + [ linspace (1, 2) ] + + will work. However, some possible sources of confusion remain + because Octave tries (possibly too hard) to determine exactly what + operation is intended from the context surrounding an operator. + For example: + + -- In the command + + [ 1 - 1 ] + + the `-' is treated as a binary operator and the result is the + scalar 0, but in the command + + [ 1 -1 ] + + the `-' is treated as a unary operator and the result is the + vector [ 1 -1 ]. + + -- In the command + + a = 1; [ 1 a' ] + + the single quote character `'' is treated as a transpose operator + and the result is the vector [ 1 1 ], but in the command + + a = 1; [ 1 a ' ] + + an error message indicating an unterminated string constant is + printed. + + * Assignments are just expressions now, so they are valid anywhere + other expressions are. This means that things like + + if (a = n < m) ... endif + + are valid. This is parsed as: compare `n < m', assign the result + to the variable `a', and use it as the test expression in the if + statement. + + To help avoid errors where `=' has been used but `==' was + intended, Octave issues a warning suggesting parenthesis around + assignments used as truth values. You can suppress this warning + by adding parenthesis, or by setting the value of the new built-in + variable `warn_assign_as_truth_value' to 'false' (the default + value is 'true'). + + This is also true for multiple assignments, so expressions like + + [a, b, c] = [u, s, v] = expression + + are now possible. If the expression is a function, nargout is set + to the number of arguments for the right-most assignment. The + other assignments need not contain the same number of elements. + Extra left hand side variables in an assignment become undefined. + + * The default line style for plots is now `lines' instead of + `points'. To change it, use the `set data style STYLE' command. + + * New file handling and I/O functions: + + fopen -- open a file for reading or writing + fclose -- close a file + fflush -- flush output to a file + fgets -- read characters from a file + frewind -- set file position to the beginning of a file + fseek -- set file position + ftell -- tell file position + freport -- print a report for all open files + fscanf -- read from a file + sscanf -- read from a string + scanf -- read from the standard input + + * New built-in variables for file and I/O functions: + + stdin -- file number corresponding to the standard input stream. + stdout -- file number corresponding to the standard output stream. + stderr -- file number corresponding to the standard error stream. + + The following may be used as the final (optional) argument for + fseek: + + SEEK_SET -- set position relative to the beginning of the file. + SEEK_CUR -- set position relative to the current position. + SEEK_END -- set position relative to the end of the file. + + * New function: setstr -- convert vectors or scalars to strings + (doesn't work for matrices yet). + + * If possible, computer now prints the system type instead of + always printing `Hi Dave, I'm a HAL-9000'. + + * Octave now properly saves and restores its internal state + correctly in more places. Interrupting Octave while it is + executing a script file no longer causes it to exit. + + * Octave now does tilde expansion on each element of the LOADPATH. + + * A number of memory leaks have been plugged. + + * Dependencies for C++ source files are now generated automatically + by g++. + + * There is a new command line option, -p PATH, that may be used to + set Octave's loadpath from the command line. It will override any + value of OCTAVE_PATH found in the environment, but not any + LOADPATH="path" commands found in the system or user startup files. + + * It is now possible to override Octave's default idea of the + location of the system-wide startup file (usually stored in + $(prefix)/lib/octave/octaverc) using the environment variable + OCTAVE_HOME. If OCTAVE_HOME has a value, Octave will look for + octaverc and its M-files in the directory $OCTAVE_HOME/lib/octave. + + This allows people who are using binary distributions (as is + common with systems like Linux) to install the real octave binary + in any directory (using a name like octave.bin) and then install + a simple script like this + + #!/bin/sh + OCTAVE_HOME=/foo/bar/baz + export OCTAVE_HOME + exec octave.bin + + to be invoked as octave. + + + Summary of changes for version 0.71: + ----------------------------------- + + * Much improved plotting facility. With this release, Octave does + not require a specially modified version of gnuplot, so gnuplot + sources are no longer distributed with Octave. For a more + detailed description of the new plotting features, see the file + PLOTTING. + + * New plotting commands: + + plot -- 2D plots + semilogx -- 2D semilog plot with logscale on the x axis + semilogy -- 2D semilog plot with logscale on the y axis + loglog -- 2D log-log plot + mesh -- 3D mesh plot + meshdom -- create matrices for 3D plotting from two vectors + contour -- contour plots of 3D data + bar -- create bar graphs + stairs -- create stairstep plots + polar -- 2D plots from theta-R data + grid -- turn plot grid lines on or off + xlabel, ylabel -- place labels on the x and y axes of 2D plots + sombrero -- demonstrate 3D plotting + gplot -- 2D plot command with gnuplot-like syntax + gsplot -- 3D plot command with gnuplot-like syntax + set -- set plot options with gnuplot syntax + show -- show plot options with gnuplot syntax + closeplot -- close stream to gnuplot process + purge_tmp_files -- delete temporary files created by plot command + + * Other new commands: + + ls, dir -- print a directory listing + shell_cmd -- execute shell commands + keyboard -- get input from keyboard, useful for debugging + menu -- display a menu of options and ask for input + fft -- fast fourier transform + ifft -- inverse fast fourier transform + + * Strings may be enclosed in either single or double quote + characters. Double quote characters are not special within single + quote strings, and single quotes are not special within double + quote strings. + + * Command name completion now works for M-file names too. + + * Better help and usage messages for many functions. + + * Help is now available for functions defined in M-files. The first + block of comments is taken as the text of the help message. + + * Numerous changes in preparation to support dynamic loading of + object files with dld. + + * Bug fixes to make solving DAEs with dassl actually work. + + * The command `save file' now saves all variables in the named file. + + * If do_fortran_indexing is 'true', indexing a scalar with + [1,1,1,...] (n times) replicates its value n times. The + orientation of the resulting vector depends on the value of + prefer_column_vectors. + + * Things like [[1,2][3,4]] no longer cause core dumps, and invalid + input like [1,2;3,4,[5,6]] now produces a diagnostic message. + + * The cd, save, and load commands now do tilde expansion. + + * It's now possible to clear global variables and functions by name. + + * Use of clear inside functions is now a parse error. + + Summary of changes for version 0.70: + ----------------------------------- + + * Better parse error diagnostics. For interactive input, you get + messages like + + octave:1> a = 3 + * 4; + + parse error: + + a = 3 + * 4; + ^ + + and for script files, the message includes the file name and input + line number: + + octave:1> foo + + parse error near line 4 of file foo.m: + + a = 3 + * 4; + ^ + + * New built-in variable PS2 which is used as the secondary prompt. + The default value is '> '. + + * New file, octave-mode.el, for editing Octave code with GNU Emacs. + This is a modified version of Matthew R. Wette's matlab-mode.el. + + * Better support for missing math functions. + + * User preferences are now cached in a global struct so we don't + have to do a symbol table lookup each time we need to know what + they are. This should mean slightly improved performance for + evaluating expressions. + + Summary of changes for version 0.69: + ----------------------------------- + + * Multiple assignments are now possible, so statements like + + a = b = c = 3; + a = b = c = [1,2;3,4]; + + or + + c = (a = (b = 2) * 3 + 4) * 5 + + are legal, as are things that have even more bizarre effects, like + + a(4:6,4:6) = b(2:3,2:3) = [1,2;3,4]; + + (try it). + + * Improved parsing of strings (but they still don't work as matrix + elements). + + * An M-file may now either define a function or be a list of + commands to execute. + + * Better detection and conditional compilation of IEEE functions + isinf, finite, and isnan. + + * Replacements for acosh, asinh, atanh, and gamma from the BSD math + library for those systems that don't have them. + + Summary of changes for version 0.68: + ----------------------------------- + + * New functions: + + eval -- evaluate a string as a sequence of Octave commands. + input -- print a prompt and get user input. + + Summary of changes for version 0.67: + ----------------------------------- + + * New functions: + + find -- return the indices of nonzero elements. + + * Zero-one style indexing now works. For example, + + a = [1,2,3,4]; + b = a([1,0,0,1]) + + sets b to the first and fourth elements of a. + + Zero-one style indexing also works for indexing the left hand side + of an assignment. For example, + + a = rand (1,2;3,4); + a([0,1],:) = [-1,-2] + + sets the second row of a to [-1 -2] + + The behavior for the ambiguous case + + a = [1,2,3,4]; + b = a([1,1,1,1]); + + is controlled by the new global variable `prefer_zero_one_indexing'. + If this variable is equal to 'true', b will be set to [1 2 3 4]. + If it is false, b will be set to [1 1 1 1]. The default value is + 'false'. + + * Using the new global variable `propagate_empty_matrices', it is + possible to have unary and binary operations on empty matrices + return an empty matrix. The default value of this variable is + 'warn', so that empty matrices are propagated but you get a + warning. Some functions, like eig and svd have also been changed + to handle this. + + * Empty matrices can be used in conditionals, but they always + evaluate to `false'. With propagate_empty_matrices = 'true', both + of the following expressions print 0: + + if [], 1, else 0, end + if ~[], 1, else 0, end + + * Octave no longer converts input like `3.2 i' or `3 I' to complex + constants directly because that causes problems inside square + brackets, where spaces are important. This abbreviated notation + *does* work if there isn't a space between the number and the i, + I, j, or J. + + Summary of changes for version 0.66: + ----------------------------------- + + * Logical unary not operator (~ or !) now works for complex. + + * Left division works. + + * Right and left element by element division should work correctly + now. + + * Numbers like .3e+2 are no longer errors. + + * Indexing a matrix with a complex value doesn't cause a core dump. + + * The min and max functions should work correctly for two arguments. + + * Improved (I hope!) configuration checks. + + * Octave is now installed as octave-M.N, where M and N are version + numbers, and octave is a link to that file. This makes it + possible to have more than one version of the interpreter installed. + + Summary of changes for version 0.63: + ----------------------------------- + + * The reshape function works again. + + * Octave now converts input like `3.2i' or `3 I' or `2.3e5 j' to be + complex constants directly, rather than requiring an expression + like `3.3 * i' to be evaluated. + + Summary of changes for version 0.61: + ----------------------------------- + + * Octave has been successfully compiled using gcc 2.3.3 and libg++ 2.3. + on a 486 system running Linux. + + * The win_texas_lotto function is now called texas_lotto (it's a + script file, and win_texas_lotto.m is too long for some Linux and + System V systems). + + Summary of changes for version 0.57: + ------------------------------------ + + * The C-like formatted print functions printf, fprintf, and sprintf + finally work. + + Summary of changes for version 0.56: + ------------------------------------ + + * By default, octave prints a short disclaimer when it starts. + (You can suppress it by invoking octave with -q). + + * You can keep octave from reading your ~/.octaverc and .octaverc + files by invoking it with -f. + + * When returning two values, eig now returns [v, d] instead of + [lambda, v], where d is a diagonal matrix made from lambda. + + * The win_texas_lotto function now produces a sorted list. + + * New functions: + + expm -- matrix exponential. + logm -- matrix logarithm. + + Summary of changes for version 0.55: + ------------------------------------ + + * The following (C-style) backslash escape sequences work in quoted + strings (useful(?) with printf()): + + \a bell \r carriage return + \b backspace \t horizontal tab + \f formfeed \v vertical tab + \n newline \\ backslash + + * Use of `...' at the end of a line will allow a statement to + continue over more than one line. + + * The names `inf' and `nan' are now aliases for `Inf' and `NaN', + respectively. + + * New functions: + + casesen -- print a warning if the luser tries to turn off case + sensitivity. + median -- find median value. + norm -- compute the norm of a matrix. + sort -- sort columns. + + * New variable, `silent_functions'. If silent_functions == 'true', + the results of expressions are not printed even if they are not + followed by a semicolon. The disp() and printf() functions still + result in output. The default value for this variable is 'false'. + + * New variable `return_last_value_computed'. If it is 'true', + functions defined in script files return the last value computed + if a return value has not been explicitly declared. The default + value for this variable is 'false'. + + Summary of changes for version 0.52: + ------------------------------------ + + * Name completion works for function and variable names currently in + the symbol tables. Coming soon: completion for names of functions + defined in script files but not yet compiled. + + * The initial value of do_fortran_indexing is now false, and the + initial value of prefer_column_vectors is now true. Swap the + values of these variables if you want behavior that is more like + Matlab. + + * All script files check the number of input arguments before doing + much real work. + + * The identifiers `i' and `j' are now also names for sqrt(-1). + These symbols may be used for other purposes, but their original + definition will reappear if they are cleared. + + * The symbol tables are now implemented with hash tables for faster + searching. + + * A small amount of help is now available for most built-in + operators, keywords and functions. Coming soon: help for script + files. + + * Without any arguments, the help command now lists all known + built-in operators, keywords and functions. + + * Generic parse errors are now signalled by `Eh, what's up doc?', + which is closer to what Bugs actually says. + + * The who command now only prints variable names by default. + Use the -fcn (or -fcns, or -functions) switch to print the names of + built-in or currently compiled functions. + + Summary of changes for version 0.51: + ------------------------------------ + + * Major overhaul of array indexing. + + * The colloc function actually works now. + + Summary of changes for version 0.50: + ------------------------------------ + + * The lsode and dassl functions now return the states only, + instead of the time and the states, so you must keep track of + the corresponding times (this is easy though, because you have + to specify a vector of desired output times anyway). + + * Solution of NLPs with NPSOL now works on the SPARC. + + * New keywords `endif', `endfor', `endfunction', `endif', and + `endwhile', which allow for better diagnostics. The `end' keyword + is still recognized. All script files have been changed to use + these new keywords in place of `end'. + + * It is now possible to uninstall Octave by doing a `make uninstall' + in the top level directory. + + * The Makefiles are much closer to conforming with GNU coding standards. + + * New functions: + + win_texas_lotto -- produce six unique random numbers between 1 and 50. + quad -- numerical integration. + lu -- LU factorization + qr -- QR factorization + dassl -- Solution of DAEs using DASSL. + + * New files: + + THANKS -- A list of people and organizations who have supported + the development of Octave. + + NEWS -- This file, listing recent changes. + + * Help is now available at the gnuplot prompt. diff -cNr octave-3.4.0/etc/NEWS.2 octave-3.4.1/etc/NEWS.2 *** octave-3.4.0/etc/NEWS.2 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/NEWS.2 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,1036 ---- + Summary of changes for version 2.1.x: + ------------------------------------ + + * Given a matrix, X, and a boolean index, idx, of the same shape as + X, X(idx) and X(idx) = RHS now work no matter what the value of + do_fortran_indexing is. + + * If you are using GNU Emacs 19.34 or earlier, you will need to add + the following code to your ~/.emacs file in order to use Emacs + Octave mode: + + ;; Set up the custom library. + ;; taken from http://www.dina.kvl.dk/~abraham/custom/ + (eval-and-compile + (condition-case () + (require 'custom) + (error nil)) + (if (and (featurep 'custom) (fboundp 'custom-declare-variable)) + nil ;; We've got what we needed + ;; We have the old custom-library, hack around it! + (defmacro defgroup (&rest args) + nil) + (defmacro defcustom (var value doc &rest args) + (` (defvar (, var) (, value) (, doc)))))) + + * When `format +' is in effect, Octave uses the following symbols to + provide more information about the values in a matrix: + + + postive real + - negative real + i pure imaginary + c complex + blank zero + + * The ++ and -- operators now work for indexed matrices, and the + following operators now work: + + +=, -=, *=, /=, \=, <<=, >>=, .*=, ./=, .\=, &=, |= + + These operators are currently implemented using a relatively + inefficient brute-force method but hey, they work. + + * The built-in variable argv is now a list of strings instead of a + string vector. + + * The value of LOADPATH set by the environment variable + OCTAVE_PATH, the -p or --path command line options, or on the + command line is no longer modified to include the default path. + Instead it is left as specified. Its default value is now ":", + which tells Octave to search the default path, and the new + built-in variable DEFAULT_LOADPATH contains the default list of + directories to search. + + * The function file_in_path no longer does any special processing of + its PATH argument. To search LOADPATH for files, it is now + generally better to use the new function file_in_loadpath. + + * If fread is given a skip parameter, the skip is performed after + the read instead of before (for compatibility with Matlab). + + * The new built-in variable `crash_dumps_octave_core' controls + whether Octave writes user variables to the file `octave-core' + when it crashes or is killed by a signal. The default value is 1 + (0 if you use --traditional). + + * If LOADPATH contains a doubled colon, the default path is inserted + in its place. This is similar to the substitution that also takes + place for leading or trailing colons in the LOADPATH. + + * Loops of the form `for i = STRING ... endfor' are now allowed. + + * It is now possible to set the iteration limit for lsode using + lsode_options ("step limit", N). + + * New functions: + + is_complex -- tell whether a variable is complex + rehash -- re-initialize the cache of directories in LOADPATH + graw -- send a string to the gnuplot subprocess + + * New functions from Kurt Hornik's Octave-ci package: + + In finance (new directory): + + fv -- future value of an investment + fvl -- future value of an initial lump sum investment + irr -- internal rate of return of an investment + nper -- number of payments needed for amortizing a loan + npv -- net present value of a series of payments + pmt -- amount of periodic payment needed to amortize a loan + pv -- present value of an investment + pvl -- present value of an investment that pays off at the end + rate -- rate of return of an investment + vol -- volatility of financial time series data + + In linear-algebra: + + dmult -- rescale the rows of a matrix + + In signal: + + arch_fit -- fit an ARCH regression model + arch_rnd -- simulate an ARCH process + arch_test -- test for conditional heteroscedascity + arma_rnd -- simulate an ARMA process + autocor -- compute autocorrelations + autocov -- compute autocovariances + autoreg_matrix -- design matrix for autoregressions + bartlett -- coefficients of the Bartlett (triangular) window + blackman -- coefficients of the Blackman window + diffpara -- estimate the fractional differencing parameter + durbinlevinson -- perform one step of the Durbin-Levinson algorithm + fractdiff -- compute fractional differences + hamming -- coefficients of the Hamming window + hanning -- coefficients of the Hanning window + hurst -- estimate the Hurst parameter + periodogram -- compute the periodogram + rectangle_lw -- rectangular lag window + rectangle_sw -- rectangular spectral window + sinetone -- compute a sine tone + sinewave -- compute a sine wave + spectral_adf -- spectral density estimation + spectral_xdf -- spectral density estimation + spencer -- apply Spencer's 15-point MA filter + stft -- short-term Fourier transform + synthesis -- recover a signal from its short-term Fourier transform + triangle_lw -- triangular lag window + triangle_sw -- triangular spectral window + yulewalker -- fit AR model by Yule-Walker method + + In statistics/base (new directory): + + center -- center by subtracting means + cloglog -- complementary log-log function + cor -- compute correlations + cov -- compute covariances + cut -- cut data into intervals + iqr -- interquartile range + kendall -- kendall's rank correlation tau + logit -- logit transformation + mean -- compute arithmetic, geometric, and harmonic mean + meansq -- compute mean square + moment -- compute moments + ppplot -- perform a PP-plot (probability plot) + probit -- probit transformation + qqplot -- perform a QQ-plot (quantile plot) + range -- compute range + ranks -- compute ranks + run_count -- count upward runs + spearman -- spearman's rank correlation rho + statistics -- compute basic statistics + studentize -- subtract mean and divide by standard deviation + table -- cross tabulation + values -- extract unique elements + var -- compute variance + + In statistics/distributions (new directory): + + beta_cdf -- CDF of the Beta distribution + beta_inv -- Quantile function of the Beta distribution + beta_pdf -- PDF of the Beta distribution + beta_rnd -- Random deviates from the Beta distribution + + binomial_cdf -- CDF of the binomial distribution + binomial_inv -- Quantile function of the binomial distribution + binomial_pdf -- PDF of the binomial distribution + binomial_rnd -- Random deviates from the binomial distribution + + cauchy_cdf -- CDF of the Cauchy distribution + cauchy_inv -- Quantile function of the Cauchy distribution + cauchy_pdf -- PDF of the Cauchy distribution + cauchy_rnd -- Random deviates from the Cauchy distribution + + chisquare_cdf -- CDF of the chi-square distribution + chisquare_inv -- Quantile function of the chi-square distribution + chisquare_pdf -- PDF of the chi-square distribution + chisquare_rnd -- Random deviates from the chi-square distribution + + discrete_cdf -- CDF of a discrete distribution + discrete_inv -- Quantile function of a discrete distribution + discrete_pdf -- PDF of a discrete distribution + discrete_rnd -- Random deviates from a discrete distribution + + empirical_cdf -- CDF of the empirical distribution + empirical_inv -- Quantile function of the empirical distribution + empirical_pdf -- PDF of the empirical distribution + empirical_rnd -- Bootstrap samples from the empirical distribution + + exponential_cdf -- CDF of the exponential distribution + exponential_inv -- Quantile function of the exponential distribution + exponential_pdf -- PDF of the exponential distribution + exponential_rnd -- Random deviates from the exponential distribution + + f_cdf -- CDF of the F distribution + f_inv -- Quantile function of the F distribution + f_pdf -- PDF of the F distribution + f_rnd -- Random deviates from the F distribution + + gamma_cdf -- CDF of the Gamma distribution + gamma_inv -- Quantile function of the Gamma distribution + gamma_pdf -- PDF of the Gamma distribution + gamma_rnd -- Random deviates from the Gamma distribution + + geometric_cdf -- CDF of the geometric distribution + geometric_inv -- Quantile function of the geometric distribution + geometric_pdf -- PDF of the geometric distribution + geometric_rnd -- Random deviates from the geometric distribution + + hypergeometric_cdf -- CDF of the hypergeometric distribution + hypergeometric_inv -- Random deviates from hypergeometric distribution + hypergeometric_pdf -- PDF of the hypergeometric distribution + hypergeometric_rnd -- Random deviates from hypergeometric distribution + + kolmogorov_smirnov_cdf -- CDF of the Kolmogorov-Smirnov distribution + + laplace_cdf -- CDF of the Laplace distribution + laplace_inv -- Quantile function of the Laplace distribution + laplace_pdf -- PDF of the Laplace distribution + laplace_rnd -- Random deviates from the Laplace distribution + + logistic_cdf -- CDF of the logistic distribution + logistic_inv -- Quantile function of the logistic distribution + logistic_pdf -- PDF of the logistic distribution + logistic_rnd -- Random deviates from the logistic distribution + + lognormal_cdf -- CDF of the log normal distribution + lognormal_inv -- Quantile function of the log normal distribution + lognormal_pdf -- PDF of the log normal distribution + lognormal_rnd -- Random deviates from the log normal distribution + + normal_cdf -- CDF of the normal distribution + normal_inv -- Quantile function of the normal distribution + normal_pdf -- PDF of the normal distribution + normal_rnd -- Random deviates from the normal distribution + + pascal_cdf -- CDF of the Pascal (negative binomial) distribution + pascal_inv -- Quantile function of the Pascal distribution + pascal_pdf -- PDF of the Pascal (negative binomial) distribution + pascal_rnd -- Random deviates from the Pascal distribution + + poisson_cdf -- CDF of the Poisson distribution + poisson_inv -- Quantile function of the Poisson distribution + poisson_pdf -- PDF of the Poisson distribution + poisson_rnd -- Random deviates from the Poisson distribution + + stdnormal_cdf -- CDF of the standard normal distribution + stdnormal_inv -- Quantile function of standard normal distribution + stdnormal_pdf -- PDF of the standard normal distribution + stdnormal_rnd -- Random deviates from standard normal distribution + + t_cdf -- CDF of the t distribution + t_inv -- Quantile function of the t distribution + t_pdf -- PDF of the t distribution + t_rnd -- Random deviates from the t distribution + + uniform_cdf -- CDF of the uniform distribution + uniform_inv -- Quantile function of the uniform distribution + uniform_pdf -- PDF of the uniform distribution + uniform_rnd -- Random deviates from the uniform distribution + + weibull_cdf -- CDF of the Weibull distribution + weibull_inv -- Quantile function of the Weibull distribution + weibull_pdf -- PDF of the Weibull distribution + weibull_rnd -- Random deviates from the Weibull distribution + + wiener_rnd -- Simulate a Wiener process + + In statistics/models (new directory): + + logistic_regression -- ordinal logistic regression + logistic_regression_derivatives -- derivates of log-likelihood + in logistic regression + logistic_regression_likelihood -- likelihood in logistic regression + + In statistics/tests (new directory): + + anova -- one-way analysis of variance + bartlett_test -- bartlett test for homogeneity of variances + chisquare_test_homogeneity -- chi-square test for homogeneity + chisquare_test_independence -- chi-square test for independence + cor_test -- test for zero correlation + f_test_regression -- test linear hypotheses in linear + regression model + hotelling_test -- test for mean of a multivariate normal + hotelling_test_2 -- compare means of two multivariate normals + kolmogorov_smirnov_test -- one-sample Kolmogorov-Smirnov test + kolmogorov_smirnov_test_2 -- two-sample Kolmogorov-Smirnov test + kruskal_wallis_test -- kruskal-Wallis test + manova -- one-way multivariate analysis of variance + mcnemar_test -- mcnemar's test for symmetry + prop_test_2 -- compare two proportions + run_test -- run test for independence + sign_test -- sign test + t_test -- student's one-sample t test + t_test_2 -- student's two-sample t test + t_test_regression -- test one linear hypothesis in linear + regression model + u_test -- mann-Whitney U-test + var_test -- f test to compare two variances + welch_test -- welch two-sample t test + wilcoxon_test -- wilcoxon signed-rank test + z_test -- test for mean of a normal sample with + known variance + z_test_2 -- compare means of two normal samples with + known variances + + * The save command now accepts the option -append to save the + variables at the end of the file, leaving the existing contents. + + * New command-line option --no-history (also available using the + single character option -H) inhibits saving command history. + + * The mkoctfile script now accepts -DDEF options and passes them on + to the C and C++ compilers. + + * Running `make check' should work now before you run `make install', + even if you build a copy of Octave that depends on shared versions + of the Octave libraries. + + * For matrices, x(:) now works and returns a column vector no matter + what the value of do_fortran_indexing is. + + * New keywords __FILE__ and __LINE__ expand to the name of the file + that is being read and the current input line number, respectively. + + * Octave's expression parser is more general and consistent. It is + now possible to access structure elements and index arbitrary + values. For example, expressions like + + my_home_dir = getpwuid (getuid ()) . dir; + + and + + svd (x) (1:5) + + now work. + + * New built-in variable `print_rhs_assign_val' controls what is + printed when an assignment expression is evaluated. If it is + zero, the value of the variable on the left hand side (after the + assignment) is printed. If it is nonzero, the value of the right + hand side (i.e., the result of the expression) is printed. The + default value of is zero, so the behavior is the same as in + previous versions of Octave. + + * tmpnam now takes two optional arguments, DIR, and PREFIX. For + example, tmpnam ("/foo", "bar-") returns a file name like + "/foo/bar-10773baa". If DIR is omitted or empty, the value of the + environment variable TMPDIR, or /tmp is used. If PREFIX is + omitted, "oct-" is used. + + * The built-in variable `PWD' has been removed. If you need to get + the value of the current working directory, use the pwd() function + instead. + + * New operators. Octave's parser now recognizes the following + operators: << >> += -= *= /= .+= .-= .*= ./= &= |= <<= >>=. So + far, there are only a few operations defined that actually use + them (this should change before 2.1 is released). + + * New built-in data types: + + logical: + + A true value is represented by 1, and false value by 0. + Comparison operations like <, <=, ==, >, >=, and != now return + logical values. Indexing operations that use zero-one style + indexing must now use logical values. You can use the new + function logical() to convert a numeric value to a logical + value. This avoids the need for the built-in variable + `prefer_zero_one_indexing', so it has been removed. Logical + values are automatically converted to numeric values where + appropriate. + + file: + + A file object represents an open Octave stream object. The + fopen function now returns a file object instead of an integer. + File objects can be converted to integers automatically, and the + other functions that work with file ids still work with + integers, so this change should be backward compatible. + + The binary left-shift operator `<<' has been defined to work as + in C++ for file objects and built-in types. For example, + + my_stream = fopen ("foo", "w"); + my_stream << "x = " << pi << " marks the spot\n"; + + writes `x = 3.1416 marks the spot' in the file foo. + + The built-in variables stdin, stdout, and stderr are now also + file objects instead of integers. + + list: + + A list is an array of Octave objects. It can be indexed using + the normal indexing operator. For example, + + x = list ([1,2;3,4], 1, "foo"); + stdout << x(2) << "\n" + 1 + stdout << x; + ( + [1] = + + 1 2 + 3 4 + + [2] = 1 + [3] = foo + ) + + There is currently no special syntax for creating lists; you + must use the list function. + + * Commas in global statements are no longer special. They are now + treated as command separators. This removes a conflict in the + grammar and is consistent with the way Matlab behaves. The + variable `warn_comma_in_global_decl' has been eliminated. + + * It is now possible to declare static variables that retain their + values across function calls. For example, + + function ncall = f () static n = 0; ncall = ++n; endfunction + + defines a function that returns the number of times that it has + been called. + + * Within user-defined functions, the new automatic variable `argn' + contains the names of the arguments that were passed to the + function. For example, + + function f (...) + for i = 1:nargin + stdout << "argn(" << i << ") = `" << deblank (argn(i,:)) \ + << "' and its value is " << va_arg () << "\n"; + endfor + endfunction + f (1+2, "foo", sin (pi/2)) + + prints + + argn(1) = `1 + 2' and its value is 3 + argn(2) = `"foo"' and its value is foo + argn(3) = `sin (pi)' and its value is 1 + + on the standard output stream. If nargin is zero, argn is not defined. + * Functions like quad, fsolve, and lsode can take either a function + name or a simple function body as a string. For example, + + quad ("sqrt (x)", 0, 1) + + is equivalent to + + function y = f (x) y = sqrt (x); endfunction + quad ("f", 0, 1) + + * If the argument to eig() is symmetric, Octave uses the specialized + Lapack subroutine for symmetric matrices for a significant + increase in performance. + + * If the argument to lsode that names the user-supplied function is + a 2-element string array, the second element is taken as the name + of the Jacobian function. The named function should have the + following form: + + JAC = f (X, T) + + where JAC is the Jacobian matrix of partial derivatives of the + right-hand-side functions that define the set of differential + equations with respect to the state vector X. + + * Global variables are now initialized to the empty matrix, for + compatibility with Matlab. + + * Explicit initialization of global variables only happens once. + For example, after the following statements are evaluated, g still + has the value 1. + + global g = 1 + global g = 2 + + This is useful for initializing global variables that are used to + maintain state information that is shared among several functions. + + * Structure elements completion on the command line actually works + now. + + * The new built-in variable `fixed_point_format' controls whether + Octave uses a scaled fixed-point format for displaying matrices. + The default value is 0 unless you use --traditional. + + * The function sumsq now computes sum (x .* conj (x)) for complex values. + + * The new built-in variable max_recursion_depth allows you to + prevent Octave from attempting infinite recursion. The default + value is 256. + + * Octave now uses kpathsea 3.2. + + * New configure option, --enable-readline. + + * New configure option, --enable-static. + + Summary of changes for version 2.0.7: + ------------------------------------ + + This is a bug-fixing release. There are no new user-visible features. + + Summary of changes for version 2.0.6: + ------------------------------------ + + This is primarily a bug-fixing release. There are only a few new + user-visible features. + + * The new built-in variable default_eval_print_flag controls whether + Octave prints the results of commands executed by eval() that do + not end with semicolons. The default is 1. + + * The new built-in constant OCTAVE_HOME specifies the top-level + directory where Octave is installed. + + * Octave no longer includes functions to work with NPSOL or QPSOL, + because they are not free software. + + * The new built-in variable called kluge_procbuf_delay specifies the + number of microseconds to delay in the parent process after + forking. By default on gnu-win32 systems, it's set to 500000 (1/2 + second). On other systems, the default value is 0. Delaying for + a short time in the parent after forking seems to avoid problems + in which communicating with subprocesses via pipes would sometimes + cause Octave to hang. I doubt that the delay is really the right + solution. If anyone has a better idea, I'd love to hear it. + + Summary of changes for version 2.0.5: + ------------------------------------ + + * A `switch' statement is now available. See the Statements chapter + in the manual for details. + + * Commands like ls, save, and cd may now also be used as formal + parameters for functions. + + * More tests. + + Summary of changes for version 2.0.4: + ------------------------------------ + + * It is now possible to use commands like ls, save, and cd as simple + variable names. They still cannot be used as formal parameters + for functions, or as the names of structure variables. Failed + assignments leave them undefined (you can recover the original + function definition using clear). + + * Is is now possible to invoke commands like ls, save, and cd as + normal functions (for example, load ("foo", "x", "y", "z")). + + Summary of changes for version 2.0.3: + ------------------------------------ + + * The manual has been completely revised and now corresponds much + more closely to the features of the current version. + + * The return value for assignment expressions is now the RHS since + that is more consistent with the way other programming languages + work. However, Octave still prints the entire LHS value so that + + x = zeros (1, 2); + x(2) = 1 + + still prints + + x = + + 0 1 + + but an assignment like + + z = x(2) = 1 + + sets z to 1 (not [ 0, 1 ] as in previous versions of Octave). + + * It is now much easier to make binary distributions. See the + Binary Distributions section of the manual for more details. + + Summary of changes for version 2.0.2: + ------------------------------------ + + * Octave now stops executing commands from a script file if an error + is encountered. + + * The return, and break commands now cause Octave to quit executing + commands from script files. When used in invalid contexts, the + break, continue, and return commands are now simply ignored + instead of producing parse errors. + + * size ("") is now [0, 0]. + + * New functions: + + sleep -- pause execution for a specified number of seconds + usleep -- pause execution for a specified number of microseconds + + Summary of changes for version 2.0: + ---------------------------------- + + * The set and show commands for setting and displaying gnuplot + parameters have been replaced by gset and gshow. This change will + probably break lots of things, but it is necessary to allow for + compatibility with the Matlab graphics and GUI commands in a + future version of Octave. (For now, the old set and show commands + do work, but they print an annoying warning message to try to get + people to switch to using gset.) + + * Octave has been mostly ported to Windows NT and Windows 95 using + the beta 17 release of the Cygnus GNU-WIN32 tools. Not everything + works, but it is usable. See the file README.WINDOWS for more + information. + + * Dynamic linking works on more systems using dlopen() and friends + (most modern Unix systems) or shl_load() and friends (HP/UX + systems). A simple example is provided in examples/hello.cc. + For this feature to work, you must configure Octave with + --enable-shared. You may also need to have a shared-library + version of libg++ and libstdc++. + + * New data types can be added to Octave by writing a C++ class. On + systems that support dynamic linking, new data types can be added + to an already running Octave binary. A simple example appears in + the file examples/make_int.cc. Other examples are the standard + Octave data types defined in the files src/ov*.{h,cc} and + src/op-*.cc. + + * The configure option --enable-bounds-check turns on bounds + checking on element references for Octave's internal array and + matrix classes. It's enabled by default. To disable this + feature, configure Octave with --disable-bounds-check. + + * The C-style I/O functions (fopen, fprintf, etc.) have been + rewritten to be more compatible with Matlab. The fputs function + has also been added. Usage of the *printf functions that was + allowed in previous versions of Octave should still work. + However, there is no way to make the new versions of the *scanf + functions compatible with Matlab *and* previous versions of + Octave. An optional argument to the *scanf functions is now + available to make them behave in a way that is compatible with + previous versions of Octave. + + * Octave can now read files that contain columns of numbers only, + with no header information. The name of the loaded variable is + constructed from the file name. Each line in the file must have + the same number of elements. + + * The interface to the pager has changed. The new built-in variable + `page_output_immediately' controls when Octave sends output to the + pager. If it is nonzero, Octave sends output to the pager as soon + as it is available. Otherwise, Octave buffers its output and + waits until just before the prompt is printed to flush it to the + pager. + + * Expressions of the form + + A(i,j) = x + + where X is a scalar and the indices i and j define a matrix of + elements now work as you would expect rather than giving an error. + I am told that this is how Matlab 5.0 will behave when it is + released. + + * Indexing of character strings now works. + + * The echo command has been implemented. + + * The document command is now a regular function. + + * New method for handling errors: + + try + BODY + catch + CLEANUP + end_try_catch + + Where BODY and CLEANUP are both optional and may contain any + Octave expressions or commands. The statements in CLEANUP are + only executed if an error occurs in BODY. + + No warnings or error messages are printed while BODY is + executing. If an error does occur during the execution of BODY, + CLEANUP can access the text of the message that would have been + printed in the builtin constant __error_text__. This is the same + as eval (TRY, CATCH) (which may now also use __error_text__) but + it is more efficient since the commands do not need to be parsed + each time the TRY and CATCH statements are evaluated. + + * Octave no longer parses the help command by grabbing everything + after the keyword `help' until a newline character is read. To + get help for `;' or `,', now, you need to use the command + `help semicolon' or `help comma'. + + * Octave's parser now does some simple constant folding. This means + that expressions like 3*i are now evaluated only once, when a + function is compiled, and the right hand side of expressions like + a = [1,2;3,4] are treated as true matrix constants rather than + lists of elements which must be evaluated each time they are + needed. + + * Built-in variables that can take values of "true" and "false" can + now also be set to any nonzero scalar value to indicate "true", + and 0 to indicate "false". + + * New built-in variables `history_file', `history_size', and + `saving_history'. + + * New built-in variable `string_fill_char' specifies the character + to fill with when creating arrays of strings. + + * If the new built-in variable `gnuplot_has_frames' is nonzero, + Octave assumes that your copy of gnuplot includes support for + multiple plot windows when using X11. + + If the new built-in variable `gnuplot_has_multiplot' is nonzero, + Octave assumes that your copy of gnuplot has the multiplot support + that is included in recent 3.6beta releases. + + The initial values of these variables are determined by configure, + but can be changed in your startup script or at the command line + in case configure got it wrong, or if you upgrade your gnuplot + installation. + + * The new plot function `figure' allows multiple plot windows when + using newer versions of gnuplot with X11. + + * Octave now notices when the plotter has exited unexpectedly. + + * New built-in variable `warn_missing_semicolon'. If nonzero, Octave + will warn when statements in function definitions don't end in + semicolons. The default value is 0. + + * Octave now attempts to continue after floating point exceptions + or out-of-memory errors. + + * If Octave crashes, it now attempts to save all user-defined + variables in a file named `octave-core' in the current directory + before exiting. + + * It is now possible to get the values of individual option settings + for the dassl, fsolve, lsode, npsol, qpsol, and quad functions + using commands like + + dassl_reltol = dassl_options ("relative tolerance"); + + * The svd() function no longer computes the left and right singular + matrices unnecessarily. This can significantly improve + performance for large matrices if you are just looking for the + singular values. + + * The filter() function is now a built-in function. + + * New function randn() returns a pseudo-random number from a normal + distribution. The rand() and randn() functions have separate + seeds and generators. + + * Octave's command-line arguments are now available in the built-in + variable `argv'. The program name is also available in the + variables `program_invocation_name' and `program_name'. If + executing a script from the command line (e.g., octave foo.m) or + using the `#! /bin/octave' hack, the program name is set to the + name of the script. + + * New built-in variable `completion_append_char' used as the + character to append to successful command-line completion + attempts. The default is " " (a single space). + + * Octave now uses a modified copy of the readline library from + version 1.14.5 of GNU bash. + + * In prompt strings, `\H' expands to the whole host name. + + * New built-in variable `beep_on_error'. If nonzero, Octave will try + to ring your terminal's bell before printing an error message. + The default value is 0. + + * For functions defined from files, the type command now prints the + text of the file. You can still get the text reconstructed from + the parse tree by using the new option -t (-transformed). + + * New command-line argument --traditional sets the following + preference variables for compatibility with Matlab: + + PS1 = ">> " + PS2 = "" + beep_on_error = 1 + default_save_format = "mat-binary" + define_all_return_values = 1 + do_fortran_indexing = 1 + empty_list_elements_ok = 1 + implicit_str_to_num_ok = 1 + ok_to_lose_imaginary_part = 1 + page_screen_output = 0 + prefer_column_vectors = 0 + prefer_zero_one_indexing = 1 + print_empty_dimensions = 0 + treat_neg_dim_as_zero = 1 + warn_function_name_clash = 0 + whitespace_in_literal_matrix = "traditional" + + * New functions: + + readdir -- returns names of files in directory as array of strings + mkdir -- create a directory + rmdir -- remove a directory + rename -- rename a file + unlink -- delete a file + umask -- set permission mask for file creation + stat -- get information about a file + lstat -- get information about a symbolic link + glob -- perform filename globbing + fnmatch -- match strings with filename globbing patterns + more -- turn the pager on or off + gammaln -- alias for lgamma + + * New audio functions from Andreas Weingessel + . + + lin2mu -- linear to mu-law encoding + loadaudio -- load an audio file to a vector + mu2lin -- mu-law to linear encoding + playaudio -- play an audio file + record -- record sound and store in vector + saveaudio -- save a vector as an audio file + setaudio -- executes mixer shell command + + * New plotting functions from Vinayak Dutt. Ones dealing with + multiple plots on one page require features from gnuplot 3.6beta + (or later). + + bottom_title -- put title at the bottom of the plot + mplot -- multiplot version of plot + multiplot -- switch multiple-plot mode on or off + oneplot -- return to one plot per page + plot_border -- put a border around plots + subplot -- position multiple plots on a single page + subwindow -- set subwindow position for next plot + top_title -- put title at the top of the plot + zlabel -- put a label on the z-axis + + * New string functions + + bin2dec -- convert a string of ones and zeros to an integer + blanks -- create a string of blanks + deblank -- delete trailing blanks + dec2bin -- convert an integer to a string of ones and zeros + dec2hex -- convert an integer to a hexadecimal string + findstr -- locate occurrences of one string in another + hex2dec -- convert a hexadecimal string to an integer + index -- return position of first occurrence a string in another + rindex -- return position of last occurrence a string in another + split -- divide one string into pieces separated by another + str2mat -- create a string matrix from a list of strings + strrep -- replace substrings in a string + substr -- extract a substring + + The following functions return a matrix of ones and zeros. + Elements that are nonzero indicate that the condition was true for + the corresponding character in the string array. + + isalnum -- letter or a digit + isalpha -- letter + isascii -- ascii + iscntrl -- control character + isdigit -- digit + isgraph -- printable (but not space character) + islower -- lower case + isprint -- printable (including space character) + ispunct -- punctuation + isspace -- whitespace + isupper -- upper case + isxdigit -- hexadecimal digit + + These functions return new strings. + + tolower -- convert to lower case + toupper -- convert to upper case + + * New function, fgetl. Both fgetl and fgets accept an optional + second argument that specifies a maximum number of characters to + read, and the function fgets is now compatible with Matlab. + + * Printing in hexadecimal format now works (format hex). It is also + possible to print the internal bit representation of a value + (format bit). Note that these formats are only implemented for + numeric values. + + * Additional structure features: + + -- Name completion now works for structures. + + -- Values and names of structure elements are now printed by + default. The new built-in variable `struct_levels_to_print' + controls the depth of nested structures to print. The default + value is 2. + + -- New functions: + + struct_contains (S, NAME) -- returns 1 if S is a structure with + element NAME; otherwise returns 0. + + struct_elements (S) -- returns the names of all elements + of structure S in an array of strings. + + * New io/subprocess functions: + + fputs -- write a string to a file with no formatting + popen2 -- start a subprocess with 2-way communication + mkfifo -- create a FIFO special file + popen -- open a pipe to a subprocess + pclose -- close a pipe from a subprocess + waitpid -- check the status of or wait for subprocesses + + * New time functions: + + asctime -- format time structure according to local format + ctime -- equivalent to `asctime (localtime (TMSTRUCT))' + gmtime -- return time structure corresponding to UTC + localtime -- return time structure corresponding to local time zone + strftime -- print given time structure using specified format + time -- return current time + + The `clock' and `date' functions are now implemented in M-files + using these basic functions. + + * Access to additional Unix system calls: + + dup2 -- duplicate a file descriptor + exec -- replace current process with a new process + fcntl -- control open file descriptors + fork -- create a copy of the current process + getpgrp -- return the process group id of the current process + getpid -- return the process id of the current process + getppid -- return the process id of the parent process + getuid -- return the real user id of the current process + getgid -- return the real group id of the current process + geteuid -- return the effective user id of the current process + getegid -- return the effective group id of the current process + pipe -- create an interprocess channel + + * Other new functions: + + commutation_matrix -- compute special matrix form + duplication_matrix -- compute special matrix form + common_size.m -- bring arguments to a common size + completion_matches -- perform command completion on string + tilde_expand -- perform tilde expansion on string + + meshgrid -- compatible with Matlab's meshgrid function + tmpnam -- replaces octave_tmp_file_name + atexit -- register functions to be called when Octave exits + putenv -- define an environment variable + bincoeff -- compute binomial coefficients + nextpow2 -- compute the next power of 2 greater than a number + detrend -- remove a best fit polynomial from data + erfinv -- inverse error function + shift -- perform a circular shift on the elements of a matrix + pow2 -- compute 2 .^ x + log2 -- compute base 2 logarithms + diff -- compute differences of matrix elements + vech -- stack columns of a matrix below the diagonal + vec -- stack columns of a matrix to form a vector + xor -- compute exclusive or + + * Functions for getting info from the password database on Unix systems: + + getpwent -- read entry from password-file stream, opening if necessary + getpwuid -- search for password entry with matching user ID + getpwnam -- search for password entry with matching username + setpwent -- rewind the password-file stream + endpwent -- close the password-file stream + + * Functions for getting info from the group database on Unix systems: + + getgrent -- read entry from group-file stream, opening if necessary + getgrgid -- search for group entry with matching group ID + getgrnam -- search for group entry with matching group name + setgrent -- rewind the group-file stream + endgrent -- close the group-file stream + + * The New function octave_config_info returns a structure containing + information about how Octave was configured and compiled. + + * New function getrusage returns a structure containing system + resource usage statistics. The `cputime' function is now defined + in an M-file using getrusage. + + * The info reader is now a separate binary that runs as a + subprocess. You still need the info reader distributed with + Octave though, because there are some new command-line arguments + that are not yet available in the public release of Info. + + * There is a new built-in variable, INFO_PROGRAM, which is used as + the name of the info program to run. Its initial value is + $OCTAVE_HOME/lib/octave/VERSION/exec/ARCH/info, but that value can + be overridden by the environment variable OCTAVE_INFO_PROGRAM, or + the command line argument --info-program NAME, or by setting the + value of INFO_PROGRAM in a startup script. + + * There is a new built-in variable, EXEC_PATH, which is used as + the list of directories to search when executing subprograms. Its + initial value is taken from the environment variable + OCTAVE_EXEC_PATH (if it exists) or PATH, but that value can be + overridden by the command line argument --exec-path PATH, or + by setting the value of EXEC_PATH in a startup script. If the + EXEC_PATH begins (ends) with a colon, the directories + $OCTAVE_HOME/lib/octave/VERSION/exec/ARCH and $OCTAVE_HOME/bin are + prepended (appended) to EXEC_PATH (if you don't specify a value + for EXEC_PATH explicitly, these special directories are prepended + to your PATH). + + * If it is present, Octave will now use an `ls-R' database file to + speed up recursive path searching. Octave looks for a file called + ls-R in the directory specified by the environment variable + OCTAVE_DB_DIR. If that is not set but the environment variable + OCTAVE_HOME is set, Octave looks in $OCTAVE_HOME/lib/octave. + Otherwise, Octave looks in the directory $datadir/octave (normally + /usr/local/lib/octave). + + * New examples directory. + + * There is a new script, mkoctfile, that can be used to create .oct + files suitable for dynamic linking. + + * Many more bug fixes. + + * ChangeLogs are now kept in each subdirectory. + + See NEWS.1 for old news. diff -cNr octave-3.4.0/etc/NEWS.3 octave-3.4.1/etc/NEWS.3 *** octave-3.4.0/etc/NEWS.3 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/NEWS.3 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,200 ---- + Summary of important user-visible changes for version 3.0: + --------------------------------------------------------- + + ** Compatibility with Matlab graphics is much better now. We now + have some graphics features that work like Matlab's Handle + Graphics (tm): + + + You can make a subplot and then use the print function to + generate a file with the plot. + + + RGB line colors are supported if you use gnuplot 4.2. Octave + can still use gnuplot 4.0, but there is no way to set arbitrary + line colors with it when using the Matlab-style plot functions. + There never was any way to do this reliably with older versions + of gnuplot (whether run from Octave or not) since it only + provided a limited set to choose from, and they were terminal + dependent, so choosing color 1 with the X11 terminal would be + different from color 1 with the PostScript terminal. Valid RGB + colors for gnuplot 4.0 are the eight possible combinations of 0 + and 1 for the R, G and B values. Invalid values are all mapped + to the same color. + + This also affects patch objects used in the bar, countour, meshc + and surfc functions, where the bars and contours will be + monochrome. A workaround for this is to type "colormap gmap40" + that loads a colormap that in many cases will be adequate for + simple bar and contour plots. + + + You can control the width of lines using (for example): + + line (x, y, "linewidth", 4, "color", [1, 0, 0.5]); + + (this also shows the color feature). + + + With gnuplot 4.2, image data is plotted with gnuplot and may be + combined with other 2-d plot data. + + + Lines for contour plots are generated with an Octave function, so + contour plots are now 2-d plots instead of special 3-d plots, and + this allows you to plot additional 2-d data on top of a contour + plot. + + + With the gnuplot "extended" terminals the TeX interpreter is + emulated. However, this means that the TeX interpreter is only + supported on the postscript terminals with gnuplot 4.0. Under + gnuplot 4.2 the terminals aqua, dumb, png, jpeg, gif, pm, windows, + wxt, svg and x11 are supported as well. + + + The following plot commands are now considered obsolete and will + be removed from a future version of Octave: + + __gnuplot_set__ + __gnuplot_show__ + __gnuplot_plot__ + __gnuplot_splot__ + __gnuplot_replot__ + + Additionally, these functions no longer have any effect on plots + created with the Matlab-style plot commands (plot, line, mesh, + semilogx, etc.). + + + Plot property values are not extensively checked. Specifying + invalid property values may produce unpredictable results. + + + Octave now sends data over the same pipe that is used to send + commands to gnuplot. While this avoids the problem of + cluttering /tmp with data files, it is no longer possible to use + the mouse to zoom in on plots. This is a limitation of gnuplot, + which is unable to zoom when the data it plots is not stored in + a file. Some work has been done to fix this problem in newer + versions of gnuplot (> 4.2.2). See for example, this thread + + http://www.nabble.com/zooming-of-inline-data-tf4357017.html#a12416496 + + on the gnuplot development list. + + + ** The way Octave handles search paths has changed. Instead of + setting the built-in variable LOADPATH, you must use addpath, + rmpath, or path to manipulate the function search path. These + functions will maintain "." at the head of the path, for + compatibility with Matlab. + + Leading, trailing or doubled colons are no longer special. + Now, all elements of the search path are explicitly included in + the path when Octave starts. To display the path, use the path + function. + + Path elements that end in // are no longer searched recursively. + Instead, you may use addpath and the genpath function to add an + entire directory tree to the path. For example, + + addpath (genpath ("~/octave")); + + will add ~/octave and all directories below it to the head of the + path. + + + ** Previous versions of Octave had a number of built-in variables to + control warnings (for example, warn_divide_by_zero). These + variables have been replaced by warning identifiers that are used + with the warning function to control the state of warnings. + + For example, instead of writing + + warn_divide_by_zero = false; + + to disable divide-by-zero warnings, you should write + + warning ("off", "Octave:divide-by-zero"); + + You may use the same technique in your own code to control + warnings. For example, you can use + + warning ("My-package:phase-of-the-moon", + "the phase of the moon could cause trouble today"); + + to allow users to control this warning using the + "My-package:phase-of-the-moon" warning identifier. + + You may also enable or disable all warnings, or turn them into + errors: + + warning ("on", "all"); + warning ("off", "all"); + warning ("error", "Octave:divide-by-zero"); + warning ("error", "all"); + + You can query the state of current warnings using + + warning ("query", ID) + warning ("query") + + (only those warning IDs which have been explicitly set are + returned). + + A partial list and description of warning identifiers is available + using + + help warning_ids + + + ** All built-in variables have been converted to functions. This + change simplifies the interpreter and allows a consistent + interface to internal variables for user-defined packages and the + core functions distributed with Octave. In most cases, code that + simply accesses internal variables does not need to change. Code + that sets internal variables will change. For example, instead of + writing + + PS1 = ">> "; + + you will need to write + + PS1 (">> "); + + If you need write code that will run in both old and new versions + of Octave, you can use something like + + if (exist ("OCTAVE_VERSION") == 5) + ## New: + PS1 (">> "); + else + ## Old: + PS1 = ">> "; + endif + + + ** For compatibility with Matlab, the output order of Octave's + "system" function has changed from + + [output, status] = system (cmd); + + to + + [status, output] = system (cmd); + + + ** For compatibility with Matlab, the output of Octave's fsolve + function has been changed from + + [x, info, msg] = fsolve (...); + + to + + [x, fval, info] = fsolve (...); + + + ** For compatibility with Matlab, normcdf, norminv, normpdf, and + normrnd have been modified to compute distributions using the + standard deviation instead of the variance. + + + ** For compatibility with Matlab, gamcdf, gaminv, gampdf, gamrnd, + expcdf, expinv, exppdf and exprnd have been modified to compute + the distributions using the standard scale factor rather than + one over the scale factor. + + + See NEWS.2 for old news. diff -cNr octave-3.4.0/etc/OLD-ChangeLogs/ChangeLog octave-3.4.1/etc/OLD-ChangeLogs/ChangeLog *** octave-3.4.0/etc/OLD-ChangeLogs/ChangeLog 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/OLD-ChangeLogs/ChangeLog 2011-06-15 11:13:48.000000000 -0400 *************** *** 0 **** --- 1,6999 ---- + 2011-04-14 Rik + + * NEWS: Add colstyle to list of new functions for 3.4 + + 2011-04-04 Rik + + * NEWS: Add perror, strerror to list of functions deprecated in 3.4 + + 2011-03-31 Rik + + * NEWS: Add cquad to list of functions deprecated in 3.4 + + 2011-03-24 Jarno Rajahalme + + * configure.ac: Try again with "-ff2c" if fortran compiler is + found incompatible. On OSX, try again with + libcruft/misc/blaswrap.c, if "-ff2c" also fails. + + 2011-03-17 Iain Murray + + * bootstrap.conf (gnulib_modules): Include nproc in the list. + + 2011-03-08 Rik + + * mk-opts.pl: Recode using more modern Perl syntax. + Use my, not local, for lexically-scoped variables. + Use ALL_CAPITALS for global variable names. + Change code to remove any warnings from Perl lint (-w). + Inline small subroutines for better readability. + Use here documents and qq operator to avoid excessive backlashing of ". + Add more informative usage() information. + + 2011-03-03 Rik + + * NEWS: Deprecate is_duplicate_entry. + + 2011-03-01 Ben Abbott + + * README.MacOS: Add Fink packages needed to support print output. + + 2011-02-28 Rik + + * NEWS: Mention new functions isrow, iscolumn. + + 2011-02-23 Jordi Gutiérrez Hermoso + + * .hgignore: Cleanup and more files to be ignore that get added + to the source during build time. + + 2011-02-22 Rik + + * Makefile.am: New explicit 'make check' target. + + 2011-02-21 John W. Eaton + + * NEWS: Note that PCRE is now required to build Octave. + * configure.ac: Improve check for PCRE, which is now required. + Don't check for -lregex. + + 2011-02-19 Rik + + * README.MacOS: Keep line length below 80, use 2 spaces to start + sentences. + + 2011-02-16 Richard Campbell + + * README.MacOS: Updated Readme.MacOS section 2.2.1 with results of test + compilation on vanilla machine. + + 2011-02-15 Benjamin Lindner + + * configure.ac: Use AC_COMPILE_IFELSE to check for OpenGL + support in FLTK. + + 2011-02-09 John W. Eaton + + * NEWS: Update. + + 2011-02-09 Ben Abbott + + * README.MacOS: Spelling corrections. + + 2011-02-08 Ben Abbott + + * README.MacOS: Fix FFTW CCFLAGS. + + 2011-02-08 Rik + + * NEWS: Use indentation of 2 spaces rather than 3 in code examples. + + 2011-02-08 Ben Abbott + + * README.MacOS: Add detail. + + 2011-02-08 John W. Eaton + + * NEWS: Add note about subfunctions. + + 2011-02-06 John W. Eaton + + * PROJECTS, README.devel: Use maintainers@octave.org instead of + octave-maintainers@octave.org. + + 2011-02-05 Rik + + * PROJECTS: Point to maintained list on Octave Wiki. + + 2011-02-05 Rik + + * mkoctfile.in, octave-config.in: Update usage strings. + + 2011-02-04 Rik + + * configure.ac: Add new doc/icons/Makefile to list of Makefiles to build + * examples/Makefile.am: Move building of .desktop files and distribution + of icons to doc/icons directory. + + 2011-01-30 Rik + + * NEWS: Deprecate glpkmex function. + + 2011-01-30 John W. Eaton + + * acinclude.m4 (OCTAVE_PROG_GHOSTSCRIPT): Update warning message. + + 2011-01-30 John W. Eaton + + * configure.ac: Remove code to print warning for missing ARPACK. + * README.MacOS: Remove arpack from list of prerequisite software. + + 2011-01-29 Rik + + * NEWS: Deprecate saveimage function. + + 2011-01-28 Ben Abbott + + * README.MacOS: Spelling corrections. + * README.MacOS: Additional modifications for building Octave manually. + * README.MacOS: Modify instructions for building Octave manually. + + 2011-01-28 John W. Eaton + + * configure.ac: Don't check for ARPACK. + * common.mk (ARPACK_CPPFLAGS, ARPACK_LDFLAGS, ARPACK_LIBS): + Delete variables. + (do_subst_config_vals): Don't substitute them. + + 2011-01-27 Ben Abbott + + * README.MacOS: Modify instructions for MacPorts to "deactivate" + rather than "uninstall" octave. + + 2011-01-26 John W. Eaton + + * mk-opts.pl, mkoctfile.cc.in, mkoctfile.in: Untabify. + + * mkf77def.in, mk-opts.pl, mkoctfile.cc.in, structdemo.cc, + unwinddemo.cc, fortdemo.cc, paramdemo.cc, + celldemo.cc,stringdemo.cc, hello.cc, embedded.cc, helloworld.cc: + Strip trailing whitespace. + + 2011-01-26 Ben Abbott + + * README.MacOS: Modify organization, and update for MacPorts. + + 2011-01-26 John W. Eaton + + * bootstrap: Update from gnulib sources. + + 2011-01-26 John W. Eaton + + * configure.ac (INSTALL_SCRIPT): Update commend about UGLY_DEFS. + + 2011-01-26 John W. Eaton + + * acinclude.m4 (OPENGL_LIBS): Don't add -L/usr/X11R6/LIB to + LDFLAGS in test. Bug #32160. + + 2011-01-25 Rik + + * Makefile.am: Directly run makefile rules in doc/interpreter directory + for AUTHORS, BUGS, INSTALL.OCTAVE files. + + 2011-01-25 John W. Eaton + + * autogen.sh (AUTOMAKE): Add --foreign to the automake command. + Check for required GNU files here instead of having automake do it. + Export AUTOMAKE so our options are actually used. + + 2011-01-25 John W. Eaton + + * Makefile.am (EXTRA_DIST): Remove ROADMAP from the list. + + 2011-01-24 Rik + + * AUTHORS: Remove. File now auto-generated from contributors.texi. + * Makefile.am: Add rule for AUTHORS file. + + 2011-01-24 John W. Eaton + + * NEWS: Note change in audio/mu2lin. + + 2011-01-22 Tatsuro MATSUOKA + + * README.MinGW: Small corrections to documentation. + + 2011-01-22 Rik + + * README.devel: Update for 3.4 release. + + 2011-01-22 Rik + + * HACKING: Revise and incorporate all of file ROADMAP. + * ROADMAP: Deleted. + + 2011-01-22 Rik + + * README.Windows: Reference README.MinGW + * README.MinGW: Replace placeholder with actual instructions + + 2011-01-22 John W. Eaton + + * configure.ac (AC_INIT): Version is now 3.5.0+. + (OCTAVE_API_VERSION_NUMBER): Now 44. + (OCTAVE_RELEASE_DATE): Now 2011-01-22. + (OCTAVE_COPYRIGHT): Update year. + + 2011-01-20 Rik + + * README.Cygwin, README.MacOS, README.Windows, README.ftp: Update + documentation files for 3.4 release. + + * README.MinGW: Create placeholder for new README file. + + 2011-01-20 John W. Eaton + + * bootstrap: Update from gnulib sources. + + 2011-01-20 John W. Eaton + + * configure.ac, NEWS: Update for backend -> graphics_toolkit change. + + 2011-01-17 Rik + + * NEWS: Add quadcc to list of new functions added. + + 2011-01-17 John W. Eaton + + * mkoctfile.cc.in (main): Add + missing from previous change. + + 2011-01-15 John W. Eaton + + * configure.ac (AC_INIT): Version is now 3.3.54. + (OCTAVE_API_VERSION_NUMBER): Now 42. + (OCTAVE_RELEASE_DATE): Now 2010-11-19. + + 2011-01-15 John W. Eaton + + * NEWS: Add krylovb to deprecated function list. + + 2011-01-14 Rik + + * NEWS: Add replot to deprecated function list. + + 2011-01-14 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include filemode in the list. + + 2011-01-14 John W. Eaton + + * Update copyright notices for 2011. + + 2011-01-14 John W. Eaton + + * bootstrap (gnulib_path): Set default gnulib path with ${x:=y}, + not ${x=y}. + + 2011-01-14 John W. Eaton + + * bootstrap, bootstrap.conf: Update from gnulib sources. + + 2011-01-13 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include mkstemp in the list. + + 2011-01-13 John W. Eaton + + * configure.ac (AC_ARG_ENABLE(extra-warning-flags)): + Eliminate some code duplication. + + 2011-01-13 John W. Eaton + + * configure.ac (AC_ARG_ENABLE(extra-warning-flags)): Check for + -Wcast-qual and -Wcast-align and add them to WARN_CFLAGS and + WARN_CXXFLAGS. + + 2011-01-13 John W. Eaton + + * configure.ac (AC_ARG_ENABLE(extra-warning-flags)): Check for + -Wpointer-arith, -Wmissing-prototypes, -Wstrict-prototypes, and + -Wwrite-strings and add them to WARN_CFLAGS. Check for + -Wpointer-arith and add them to WARN_CXXFLAGS. + + 2011-01-12 John W. Eaton + + * mk-opts.pl: Generate initialization lists and in-line code for + copying. + + 2011-01-11 Rik + + * ROADMAP: Update guide to Octave directory structure. + + 2011-01-11 Rik + + * README.mirrors: Update ftp links. + + 2011-01-06 Rik + + * README: Update links and disk space requirements. + + 2011-01-06 Jordi Gutiérrez Hermoso + + * run-octave.in: Add a -gud option so that gdb can be called from + Emacs's GUD mode and similar. + + 2011-01-06 John W. Eaton + + * mkoctfile.in, mkoctfile.cc.in: Substitute and use LAPACK_LIBS. + Bug #32009. + + 2011-01-04 Rik + + * README.MacOS: Update CFLAGS recommendation to use -O2. + + 2011-01-04 Rik + + * README.gnuplot: Update recommendation to version 4.4. + + 2011-01-04 Marco Atzeri + + * README.Cygmin: Update build instructions before 3.4 release. + + 2010-12-31 Kai Habel + + * NEWS: Add curl and divergence to new functions list. + + 2010-12-20 Ben Abbott + + * README.MacOS, Makefile.am: Update build insructions for MacOS and + distribute file in tarball. + + 2010-12-20 Rik + + * README.Cray, SENDING-PATCHES, Makefile.am: Remove obsolete files. + + 2010-12-18 Rik + + * NEWS: Deprecate sphcat and spvcat functions. + + 2010-12-17 Rik + + * README.MacOS: New file documenting build instructions for Mac OSX. + + 2010-12-09 Kai Habel + + * NEWS: Add pie3 to new functions list. + + 2010-12-09 Marco Atzeri + + * configure.ac: Don't add -lwsock32 to LIBS on cygwin systems. + + 2010-11-21 Kai Habel + + * NEWS: Add uigetdir, uigetfile, uiputfile. + + 2010-11-19 John W. Eaton + + * Makefile.am (bin_SCRIPTS): Remove run-octave from the list. + + 2010-10-19 John W. Eaton + + * configure.ac (AC_INIT): Version is now 3.3.54+. + + 2010-10-19 John W. Eaton + + * configure.ac (AC_INIT): Version is now 3.3.54. + (OCTAVE_API_VERSION_NUMBER): Now 42. + (OCTAVE_RELEASE_DATE): Now 2010-11-19. + + 2010-11-15 Kai Habel + + * NEWS: Add saveas. Fix uimenu. + + 2010-11-14 Michael Goffioul + + * mkoctfile.cc.in: replace %OCTAVE_CONF_F77_INTEGER8_FLAG% with + %OCTAVE_CONF_F77_INTEGER_8_FLAG%. + + 2010-11-10 John W. Eaton + + * configure.ac: Don't check for nan.h. + + 2010-11-10 John W. Eaton + + * configure.ac (AH_BOTTOM): Eliminate special case for __DECCXX: + + 2010-11-10 John W. Eaton + + * configure.ac: Eliminate special cases for nextstep. + + 2010-11-10 John W. Eaton + + * configure.ac: Eliminate special checks for SCO systems. + + 2010-11-10 John W. Eaton + + * NEWS: Update deprecated function list with dispatch. + + 2010-11-09 Rik + + * configure.ac: Fix typo where variable name was missing '$' + + 2010-11-09 Rik + + * configure.ac: Properly m4 quote AS_HELP_STRING. + + 2010-11-09 Rik + + * configure.ac: Remove redundant warning message when '--without-opengl' + option used. + + 2010-11-09 John W. Eaton + + * configure.ac: Don't check for trunc, copysign, or _copysign. + + 2010-11-08 John W. Eaton + + * configure.ac (--without-opengl): New configure option. + + 2010-11-03 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include copysign in the list. + + 2010-10-28 Rik + + * NEWS: Update deprecated function list with autocov and autocor. + + 2010-10-25 Kai Habel + + * NEWS: Add uimenu. + + 2010-10-24 Rik + + * NEWS: Update deprecated function list for version 3.4. + + 2010-10-22 John W. Eaton + + * Makefile.am (EXTRA_DIST): Include bootstrap and bootstrap.conf + in the list. + + 2010-10-19 John W. Eaton + + * configure.ac (AC_INIT): Version is now 3.3.53+. + + 2010-10-19 John W. Eaton + + * configure.ac (AC_INIT): Version is now 3.3.53. + (OCTAVE_API_VERSION_NUMBER): Now 41. + (OCTAVE_RELEASE_DATE): Now 2010-10-19. + + 2010-09-29 John W. Eaton + + * examples/make_int.cc (Fmake_int): Don't pass arg to mlock. + + 2010-09-29 John W. Eaton + + * examples/structdemo.cc (Fstructdemo): Use octave_scalar_map + instead of Octave_map. + + 2010-09-29 John W. Eaton + + * configure.ac: Style fixes. + + 2010-09-29 John P. Swensen + + * configure.ac: Allow selection of GraphicsMagick or ImageMagick + at configure time using "--with-magick=" option. + + 2010-09-24 Jaroslav Hajek + + * m4/ax_blas.m4: Update. + + 2010-09-23 John W. Eaton + + * octave-bug.in, octave-bug.cc.in: Delete + * Makefile.am (EXTRA_DIST): Remove them from the list. + (bin_PROGRAMS): Remove octave-bug from the list. + (octave_bug_SOURCES, nodist_octave_bug_SOURCES): Delete variables. + (BUILT_SOURCES): Remove octave-bug.cc from the list. + (bin_SCRIPTS): Remove octave-bug from the list. + (octave-bug.cc, octave-bug): Delete rules. + + 2010-09-20 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include mktime in the list. + + 2010-09-18 John W. Eaton + + * Makefile.am (BUILT_SOURCES): Include run-octave in the list. + + 2010-09-16 John W. Eaton + + * configure.ac (SCRIPTS_EXE_SUFFIX) Delete variable and all uses. + (BUILD_COMPILED_AUX_PROGRAMS): New variable. + (AMCOND_BUILD_COMPILED_AUX_PROGRAMS): New Automake conditional. + * Makefile.am (SCRIPTS_EXE_SUFFIX, BUILT_SHELL_FILES): Delete + variables and all uses. + (bin_SCRIPTS, bin_PROGRAMS, mkoctfile_SOURCES, + nodist_mkoctfile_SOURCES, octave_config_SOURCES, + nodist_octave_config_SOURCES, octave_bug_SOURCES, + nodist_octave_bug_SOURCES, BUILT_SOURCES): Define conditionally + based on AMCOND_BUILD_COMPILED_AUX_PROGRAMS. + (noinst_SCRIPTS): New variable. + (CLEANFILES): Include $(bin_PROGRAMS) $(bin_SCRIPTS) + $(BUILT_SOURCES) in the list. + (all-local): Also depend on $(bin_PROGRAMS) and $(noinst_SCRIPTS). + (octave-bug.cc, octave-config.cc, mkoctfile.cc, octave-bug) + (octave-config, mkoctfile): Make rules conditional on + AMCOND_BUILD_COMPILED_AUX_PROGRAMS. + (make-version-links, remove-version-links): Define different + rules conditional on AMCOND_BUILD_COMPILED_AUX_PROGRAMS. + + 2010-09-13 Jaroslav Hajek + + * NEWS: Update. + + 2010-09-10 Jaroslav Hajek + + * m4/ax_blas_f77_func.m4: Update. + + 2010-09-07 Ben Abbott + + * acinclude.m4, configure.ac, m4/module.mk: Update acx_*.m4 + macros to the newer ax_*.m4 versions. + * ax_blas.m4, ax_lapack.m4, ax_blas_f77_func.m4, + ax_pthread.m4: Add files. + * acx_blas.m4, acx_lapack.m4, acx_blas_f77_func.m4, + acx_pthread.m4: Remove files. + + 2010-09-01 Jaroslav Hajek + + * NEWS: Update. + + 2010-08-21 Rik + + * NEWS: Add randi to list of new functions + + 2010-08-09 John Swensen + + * mkoctfile.in: Add ability to pass -pthread through to linker. + + 2010-08-13 Jaroslav Hajek + + * NEWS: Update. + + 2010-08-09 Rik + + * examples/Makefile.am: Don't echo 'echo' command when building + octave.desktop. + + 2010-08-09 Jaroslav Hajek + + * NEWS: Update. + + 2010-08-05 Rik + + * configure.ac: Change warning messages about freetype and fontconfig + to reflect their requirement for native graphics. Bug #30594. + + 2010-08-05 Rik + + * Makefile.am: Remove distribution of emacs directory + + * emacs/info-emacs-info, emacs/info-emacs-octave-help, emacs/module.mk, + emacs/NEWS, emacs/octave-hlp.el, emacs/octave-inf.el, + emacs/octave-mod.el, emacs/octave-tags, emacs/octave-tags.1, + emacs/README, emacs/TODO: Remove from further hg checkouts. + + 2010-08-05 Rik + + * ChangeLog: Correct date in version upgrade 3.3.52+ comment. + + 2010-08-01 John W. Eaton + + * configure.ac (AC_INIT): Version is now 3.3.52+. + + 2010-08-01 John W. Eaton + + * configure.ac (AC_INIT): Version is now 3.3.52. + (OCTAVE_API_VERSION_NUMBER): Now 40. + (OCTAVE_RELEASE_DATE): Now 2010-08-01. + + 2010-07-30 Rik + + * Makefile.am: add .gdbinit to the DISTCLEANFILES list + + 2010-07-29 Jaroslav Hajek + + * NEWS: Include list of new functions. + + 2010-07-08 Rik + + * NEWS: Update with addition of engineering format. + + 2010-07-08 Jaroslav Hajek + + * NEWS: Update. + + 2010-06-23 Jaroslav Hajek + + * mkoctfile.in: F77_INTEGER_8_FLAG -> OCTAVE_CONF_F77_INTEGER_8_FLAG. + + 2010-06-23 Jaroslav Hajek + + * configure.ac: Temporarily include F77_INTEGER_8_FLAG in FFLAGS for + BLAS checking. + * mkoctfile.in: Include F77_INTEGER_8_FLAG in ALL_FFLAGS. + * mkoctfile.cc.in: Ditto. + + 2010-05-18 Jaroslav Hajek + + * NEWS: Update. + + 2010-05-11 Rik + + * configure.ac: Capitalize ARPACK in messages. + + 2010-05-04 John W. Eaton + + * ROADMAP: Delete entry for villad. + + 2010-04-26 Rik + + * configure.ac: fix bug with shell HERE document introduced in + previous change. + + 2010-04-26 Shai Ayal + + * configure.ac: make all graphics related tests inter-dependent + + 2010-04-20 Jaroslav Hajek + + * NEWS: Update. + + 2010-04-16 David Bateman + + * PROJECTS: Update for new sparse functionality. + + 2010-04-14 Shai Ayal + + * NEWS: Update. + + 2010-04-08 Marco Atzeri + + * Makefile.am (make-version-links, remove-version-links): + Use SCRIPTS_EXE_SUFFIX for scripts, not EXEEXT. + + 2010-04-07 John W. Eaton + + * README.ftp, README.devel: + Update from Judd Storrs . + + 2010-03-27 David Bateman + + * acinclude.m4 (OCTAVE_CHECK_OPENMP): Macro to check for OpenMP support + * configure.ac: Use it here. Disable OpenMP support by default + + 2010-03-25 John W. Eaton + + * bootstrap.conf (gnulib_modules): Sort the list. + + 2010-03-25 Jaroslav Hajek + + * bootstrap.conf: Include roundf, trunc, truncf. + + 2010-03-24 John W. Eaton + + * configure.ac (AC_INIT): Version is now 3.3.51+. + + 2010-03-24 John W. Eaton + + * configure.ac (AC_INIT): Version is now 3.3.51. + (OCTAVE_API_VERSION_NUMBER): Now 39. + (OCTAVE_RELEASE_DATE): Now 2010-03-24. + + 2010-03-24 John W. Eaton + + * NEWS: Style fixes. + + 2010-03-23 Jaroslav Hajek + + * NEWS: Update. + + 2010-03-15 John W. Eaton + + * configure.ac (AH_BOTTOM): Define GNULIB_NAMESPACE. + + 2010-03-09 Jaroslav Hajek + + * NEWS: Update. + + 2010-03-01 John W. Eaton + + * acinclude.m4 (OCTAVE_CXX_COMPLEX_REFERENCE_ACCESSORS, + OCTAVE_CXX_COMPLEX_SETTERS): New macros. + * configure.ac: Use them. + + 2010-02-25 John W. Eaton + + * gdbinit: New file. + * Makefile.am (EXTRA_DIST): Add it to the list. + (all-local): Depend on .gdbinit. + (.gdbinit): New rule. + + 2010-02-22 John W. Eaton + + * boostrap: Update from gnulib/build-aux/bootstrap. + + 2010-02-21 Michael Goffioul + + * configure.ac: Define NOMINMAX under MSVC. + + * configure.ac: Add pcre_config --cflags to XTRA_CXXFLAGS instead of + CPPFLAGS. + + 2010-02-17 John W. Eaton + + * configure.ac: Add $COLAMD_LDFLAGS $COLAMD_LIBS $AMD_LDFLAGS, + and $AMD_LIBS to LIBS when checking for cholmod library. + + 2010-02-17 John W. Eaton + + * acinclude.m4 (OCTAVE_CHECK_FORTRAN_INTEGER_SIZE): Save and + restore FFLAGS. Temporarily add F77_INTEGER_8_FLAG to FFLAGS. + * common.mk (F77_INTEGER_8_FLAG): New variable. + (do_subst_config_vals): Substitute it. + * configeure.ac: Don't add -fdefault-integer-8 to FFLAGS. + Substitute F77_INTEGER_8_FLAG. Improve --enable-64 warning. + + 2010-02-15 Jaroslav Hajek + + * NEWS: Update. + + 2010-02-10 Jaroslav Hajek + + * NEWS: Update. + + 2010-02-08 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include progname in the list. + + 2010-02-08 Jaroslav Hajek + + * NEWS: Update. + + 2010-02-04 John W. Eaton + + * configure.ac: Don't check for gethostname. + * bootstrap.conf (gnulib_modules): Include gethostname in the list. + + 2010-02-03 John W. Eaton + + * configure.ac: Don't check for fcntl.h or fcntl. + * bootstrap.conf (gnulib_modules): Include fcntl in the list. + + 2010-02-03 John W. Eaton + + * acinclude.m4 (OCTAVE_HAVE_C99_VSNPRINTF): Delete. + * configure.ac: Don't call OCTAVE_HAVE_C99_VSNPRINTF. + Don't check for snprintf, vfprintf, vsprintf, vsnprintf, or _snprintf. + * bootstrap.conf (gnulib_modules): Include vsprintf in the list. + + 2010-02-03 John W. Eaton + + * configure.ac: Don't check for strerror. + + 2010-02-03 John W. Eaton + + * configure.ac: Don't check for raise or strdup. + + 2010-02-03 John W. Eaton + + * configure.ac: Don't check for poll or usleep. + * bootstrap.conf (gnulib_modules): Include nanosleep and sleep + in the list. + + 2010-02-03 John W. Eaton + + * configure.ac: Don't check for sigaction, sigpending, + sigprocmask, or sigsuspend. + + 2010-02-03 John W. Eaton + + * configure.ac: Don't check for getcwd. + * bootstrap.conf (gnulib_modules): Include getcwd in the list. + + 2010-02-02 John W. Eaton + + * configure.ac: Assume signal.h provides sigset_t and sig_atomic_t. + + 2010-02-02 John W. Eaton + + * configure.ac: Don't call OCTAVE_SIGNAL_CHECK, + OCTAVE_REINSTALL_SIGHANDLERS, AC_C_CONST, AC_HEADER_STDC, or + AC_STRUCT_TM, AC_TYPE_SIGNAL. + Don't define RETSIGTYPE_IS_VOID. + * acinclude.m4 (OCTAVE_SIGNAL_CHECK, OCTAVE_REINSTALL_SIGHANDLERS): + Don't call AC_TYPE_SIGNAL. Assume sighandler return type is void. + (OCTAVE_SIGNAL_CHECK, OCTAVE_REINSTALL_SIGHANDLERS): Delete macros. + * bootstrap.conf (gnulib_modules): Include sigaction, signal, + and sigprocmask in the list. + + 2010-02-02 John W. Eaton + + * configure.ac: Don't check for stdint.h. + (AH_BOTTOM): Unconditionally include stdint.h. + Delete fallback integer type definitions. + * bootstrap.conf (gnulib_modules): Include stdint in the list. + + 2010-02-02 John W. Eaton + + * configure.ac: Don't check for atexit or on_exit. + + 2010-02-02 John W. Eaton + + * configure.ac: Don't check for bcopy, bzero, or memmove. + + 2010-02-02 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include sys_time, sys_times, + and time in the list. + * configure.ac: Don't check for sys/time.h, sys/times.h, + sys/stat.h, sys/utimes, or utimes.h. + Don't call AC_HEADER_TIME. + + 2010-02-02 John W. Eaton + + * acinclue.m4 (OCTAVE_STRPTIME_BROKEN): Delete. + * configure.ac: Don't call it. + + 2010-02-01 John W. Eaton + + * acinclude.m4 (OCTAVE_PROG_MAKEINFO): Delete macro. + * configure.ac: Don't call it. Don't issue warning about + makeinfo in summary. + + 2010-01-31 Jaroslav Hajek + + * NEWS: Update. + + 2010-01-27 Jaroslav Hajek + + * NEWS: Update. + + 2010-01-21 John W. Eaton + + * configure.ac: Don't check for standard C headers (by now, I + think we can safely assume they exist). Don't check for + varargs.h. + + 2010-01-21 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include sys_stat in the list. + * configure.ac: Don't check for sys/types.h or unistd.h. + + 2010-01-21 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include unistd in the list. + Keep list sorted. + + 2010-01-21 John W. Eaton + + * configure.ac: Delete checks for rename, link, readlink, rmdir, + strcasecmp, stricmp, strncasecmp, strnicmp, strptime, symlink, + and unlink. + + 2010-01-21 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include pathmax and readlink + in the list. + + 2010-01-21 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include symlink in the list. + + 2010-01-21 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include link in the list. + + 2010-01-21 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include unlink in the list. + + 2010-01-21 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include strptime in the list. + + 2010-01-21 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include rename in the list. + + 2010-01-21 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include rmdir in the list. + + 2010-01-21 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include c-strcase in the list. + + 2010-01-21 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include getopt-gnu in the list. + + 2010-01-17 Michael Goffioul + + * bootstrap.conf: Add round module. + * configure.ac: Allow to use MSVC with *mingw* build host. Check for + opendir in -ldirent. Add -ladvapi32 to LIBS. + + 2010-01-15 John W. Eaton + + * NEWS: Edit. + + 2010-01-15 Jaroslav Hajek + + * NEWS: Update. + + 2010-01-14 Jaroslav Hajek + + * NEWS: Update. + + 2010-01-13 John W. Eaton + + * configure.ac: Handle --enable-docs. Print warning in summary + if building documentation is disabled. + * Makefile.am (SUBDIRS): Use @DOCDIR@ instead of doc. + (dist-hook): New target, conditional on AMCOND_BUILD_DOCS. + + 2010-01-09 John W. Eaton + + * configure.ac: Don't check for nlink_t. + (AH_BOTTOM): Don't define nlink_t here. + + 2010-01-07 John W. Eaton + + * configure.ac: Don't check for times. + * bootstrap.conf (gnulib_modules): Include times in the list. + + 2010-01-07 John W. Eaton + + * configure.ac: Don't check for gettimeofday, or whether + gettimeofday accepts one or two arguments. + * bootstrap.conf (gnulib_modules): Include gettimeofday in the list. + + 2010-01-05 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include mkfifo in the list. + + 2010-01-05 John W. Eaton + + * bootstrap.conf (gnulib_modules): Remove nonexistent fstat module. + + 2009-12-22 Rik + + * WWW/: remove web directory no longer used + + 2010-01-04 Jaroslav Hajek + + * NEWS: Update. + + 2009-12-27 John W. Eaton + + * configure.ac: Use libtool cache variables to simplify checks + for dynamic linking api. + + 2009-12-26 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include fstat, lstat, and + stat in the list. + * configure.ac: Don't check for fstat, lstat, or stat. + + 2009-12-25 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include mkdir in the list. + * configure.ac: Don't check for mkdir. + Don't call OCTAVE_MKDIR_TAKES_ONE_ARG. + * acinclude.m4 (OCTAVE_MKDIR_TAKES_ONE_ARG): Delete. + + 2009-12-25 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include crypto/md5 in the list. + + 2009-12-22 Rik + + * configure.ac: Remove second redundant test for nlink_t + + 2009-12-21 Rik + + * dlfcn directory: Remove dlfcn directory with leftover code from 1996 + + 2009-12-20 Rik + + * acinclude.m4: use M4 quoting for arguments to autoconf macros + + 2009-12-20 Rik + + * configure.ac, acinclude.m4: Better warnings when gnuplot is not + installed but native graphics are available + + 2009-12-19 Rik + + * emacs/module.mk, examples/Makefile.am, info-emacs-info, + info-emacs-octave-help: Distribute emacs specific files from emacs + directory rather than examples directory + + 2009-12-19 Rik + + * m4/module.mk, Makefile.am: Redo previous patch with distribution + triggered by m4/module.mk. + + 2009-12-19 Rik + + * Makefile.am: Distribute m4/gnulib-cache.m4 per recommendation + + 2009-12-19 Rik + + * Makefile.am, examples/Makefile.am, common.mk, configure.ac: Eliminate + TOPDIR variable in favor of built-in automake variables of top_builddir + and top_srcdir. + + 2009-12-19 Rik + + * Makefile.am: Use M4 quoting for arguments to autoconf macros containing + variables + + 2009-12-19 Jaroslav Hajek + + * data.cc (Fsize_equal): Allow calling with zero arguments. + variables + + 2009-12-15 John W. Eaton + + * README.MSVC: Delete section about obtaining glob library. + * bootstrap.conf (gnulib_modules): Add fnmatch and glob to the list. + * common.mk (LIBGLOB): Delete variable. + (do_subst_config_vals): Don't substitute it. + * octave-bug.in, octave-bug.cc.in: Eliminate LIBGLOB variable. + * configure.ac: Don't check for glob.h or the glob and fnmatch + functions. Eliminate LIBGLOB variable. + + 2009-12-11 Rik + + * HACKING: Elaborate which DIRNAME to use for --gnulib-srcdir option. + + 2009-12-11 John W. Eaton + + * configure.ac: Add $PTHREAD_LIBS to $LIBS and $PTHREAD_CFLAGS + to $CFLAGS for subsequent tests. + + 2009-12-11 Rik + + * Makefile.am: remove install-extras target and use automake syntax to + distribute NEWS file. + * examples/Makefile.am: remove install-images target and use automake + syntax to distribute image data. + + 2009-12-11 John W. Eaton + + * .dir-locals.el: Correctly set indent-tabs-mode for ChangeLogs, + and Makefiles. + + * common.mk (cp_update_rule): New macro. + + 2009-12-10 John W. Eaton + + * mkoctfile.in, mkoctfile.cc.in: If output file is specified and + it does not end in output_ext, append output_ext. + + 2009-12-10 John W. Eaton + + * mkoctfile.in, mkoctfile.cc.in: When compiling files in + subdirectories, place object files in current directory by + default. + + 2009-12-10 John W. Eaton + + * mkoctfile.cc.in: Accept long options with single -. + + 2009-12-10 John W. Eaton + + * mkoctfile.in: Accept long options with single -. + + 2009-12-09 John W. Eaton + + * HACKING: Clarify gnulib checkout and use. + + 2009-12-09 John W. Eaton + + * configure.ac: Remove URL argument from AC_INIT. + Use AC_CONFIG_AUX_DIR. Move AM_INIT_AUTOMAKE after other + AC_CONFIG setup macros. Use gl_EARLY and gl_INIT for gnulib. + Add libgnu/Makefile to the list of AC_CONFIG_FILES. Eliminate + special case check for for strftime. + * bootstrap: New file, from gnulib. + * bootstrap.conf: New file, from gnulib. Override bootstrap + defaults for checkout_only_file, gnulib_tool_option_extras, + gnulib_name, and source_base. + (gnulib_modules): Add strftime to the list. + * autogen.sh: Simply generate makefile fragments and call + bootstrap to do the rest of the initial setup. + * Makefile.am (SUBDIRS): Add libgnu to the list. + * libgnu/Makefile.am: New directory and file. + * INSTALL: Remove our copy so version from gnulib will be + distributed. + * HACKING: New file. + + 2009-12-08 Rik + + * Makefile.am: add BUGS and OCTAVE.INSTALL to DISTCLEANFILES + + 2009-12-08 John W. Eaton + + * configure.ac: Update gnuplot status message. + * acinclude.m4 (OCTAVE_PROG_GNUPLOT): Likewise. + + 2009-12-07 John W. Eaton + + * examples/make_int.cc: Delete Emacs local variables. + + * .dir-locals.el: New file. + + 2009-12-07 John W. Eaton + + * examples/firstmexdemo.c, examples/fortdemo.cc, + examples/funcdemo.cc, examples/hello.cc, examples/make_int.cc, + examples/mycell.c, examples/myfeval.c, examples/myfunc.c, + examples/mypow2.c, examples/mysparse.c, examples/mystring.c, + examples/mystruct.c, examples/paramdemo.cc, + examples/stringdemo.cc, examples/structdemo.cc, + examples/unwinddemo.cc, examples/embedded.cc: Untabify. + + 2009-12-04 John W. Eaton + + * configure.ac (OCTAVE_API_VERSION_NUMBER): New variable. + (OCTAVE_API_VERSION): Define using OCTAVE_API_VERSION_NUMBER. + * common.mk (OCTAVE_API_VERSION_NUMBER): New variable. + + 2009-12-04 John W. Eaton + + * configure.ac: Check $have_x = yes, not just $have_x. + From Carmine Paolino . + + 2009-12-04 John W. Eaton + + * configure.ac: Require auotconf 2.62. + + 2009-12-03 John W. Eaton + + * common.mk (OCTAVE_VERSION, OCTAVE_API_VERSION) + (OCTAVE_RELEASE_DATE, OCTAVE_COPYRIGHT, OCTAVE_IDX_TYPE): + New substituted variables. + (version): Define from $(OCTAVE_VERSION). + (api_version): Define from $(OCTAVE_API_VERSION). + (do_subst_texinfo_vals): Delete macro. + + * configure.ac (AC_CONFIG_HEADER): Quote arg. + (AC_CONFIG_FILES): Remove mxarray.h and version.h from the list. + + * examples/Makefile.am (CLEANFILES): New variable. + + 2009-11-30 Kacper Kowalik + + * acinclude.m4 (OCTAVE_HDF5_HAS_ENFORCED_16_API): New macro that + tests whether the HDF5 library has an enforced v1.6 API and detects + v1.8 APIs. + * configure.m4: Adapt test for HDF5 libraries to support v1.8 + HDF5 libraries. + + 2009-11-29 Jaroslav Hajek + + * NEWS: Update. + + 2009-11-27 David Bateman + + * configure.ac (HAVE_H5GGET_NUM_OBJS) Remove define. + + 2009-11-27 David Bateman + + * NEWS: Document ftp objects. + * configure.ac: Document that curl libraries impact ftp objects. + + 2009-11-26 Jaroslav Hajek + + * NEWS: Update. + + 2009-11-25 Tatsuro MATSUOKA + + * acinclude.m4 (OCTAVE_PROG_GNUPLOT): Don't check for pgnuplot or + pipe-gnuplot on Windows systems. Set default to gnuplot for all + systems. + (OCTAVE_PROG_GHOSTSCRIPT): Check for gswin32c first on Windows + systems, then gs. + + 2009-11-25 Rik + + * Makefile.am examples/Makefile.am liboctave/Makefile.am + scripts/Makefile.am src/Makefile.am test/Makefile.am: + Remove unnecessary .PHONY targets for common targets which + Automake supplies already. Examples are local-all, install-local-data + + 2009-11-21 John W. Eaton + + * configure.ac (AC_MSG_NOTICE): Report graphics (fltk) CFLAGS. + Report fontconfig CFLAGS and LIBS. + Report freetype2 CFLAGS and LIBS. + + 2009-11-21 John W. Eaton + + * common.mk: Substitute FT2_CFLAGS. + * configure.ac: Remove spurious lines in check for freetype. Add + $FT2_CFLAGS to $XTRA_CXXFLAGS. + + 2009-11-18 Jaroslav Hajek + + * NEWS: Update. + + 2009-11-18 Jaroslav Hajek + + * NEWS: Update. + + 2009-11-16 John W. Eaton + + * common.mk (AM_CXXFLAGS): Don't include DLL_CXXDEFS in the list. + (CONFIGURE_CFLAGS): New variable. + (AM_CFLAGS): Define similar to AM_CXXFLAGS. + + 2009-11-12 John W. Eaton + + * configure.ac (AC_CONFIG_FILES): Also generate libcruft/mkf77def. + + 2009-11-11 John W. Eaton + + * acinclude.m4 (OCTAVE_IEEE754_DATA_FORMAT): Fail if IEEE 754 + format is not detected. + + 2009-11-11 Shai Ayal + + * configure.ac: Remove tests for ftgl. + + 2009-11-11 Benjamin Lindner + + * configure.ac: Remove -mwindows from FLTK_LDFLAGS. + + 2009-11-11 John W. Eaton + + * configure.ac: Fail if LT_INIT it is not defined. + + 2009-11-10 John W. Eaton + + * NEWS: Update. + + * configure.ac: Exit with error if BLAS or LAPACK libraries are + not found or if the BLAS library is found to be incompatible with + the Fortran compiler. Eliminate warn_blas_f77_incompatible + variable. + + 2009-11-10 John W. Eaton + + * configure.ac: Set octincludedir to + $(includedir)/octave-$(version)/octave, not + $(includedir)/octave-$(version). + * mkoctfile.in: Set DEFAULT_INCFLAGS to -I$octincludedir/.. and + -I$octincludedir instead of -I$octincludedir and + -I$octincludedir/octave. + + * configure.ac: Pass args to AC_INIT. Invoke AM_INIT_AUTOMAKE and + AC_PROG_LIBTOOL. Don't call AC_PROG_RANLIB. Set version info here. + Call AC_CONFIG_MACRO_DIR. Give same warning for gcc 1.x and 2.x. + Use AM_CONDITIONALS for FFTW, BLAS, and LAPACK. Don't set + variables with calls to ACX_BLAS_WITH_F77_FUNC or ACX_LAPACK. + Don't substitute BLAS_DIR or LAPACK_DIR. Use LT_INIT. Eliminate + --enable-shared and --enable-static options (now provided by + LT_INIT). Set SHARED_LIBS and STATIC_LIBS variables based on + LT_INIT variables. Handle dlopen libraries with info from + LT_INIT. Substitute NO_UNDEFINED_FLAG (only set on Windows + sytems). Include $LAPACK_LIBS in $LIBS when checking for qrupdate + and cholmod. Handle --enable-dl consistently with other --enable + options. Don't copy $srcdir/Makefile in AH_BOTTOM commands. + Substitute LEX_OUTPUT_ROOT. Use AM_CONDITONAL for + ENABLE_DYNAMIC_LINKING. Reindent configure summary. + (AC_CONFIG_FILES): Don't list Makefiles in libcruft + subdirectories. Generate Makefile and src/version.h. Don't + generate Makeconf, octMakefile, m4/Makefile, emacs/Makefile, + examples/@polynomial/Makefile, or examples/@FIRfilter/Makefile. + + * run-octave.in Call libtool to execute src/octave. + (ldpreloadsep, liboctinterp, liboctave, libcruft): Delete variables. + (INFOFILE): Find it in $top_srcdir, not $builddir. + + * acinclude.m4: Rename from aclocal.m4. + (OCTAVE_PROG_FLEX): Don't include -t in LFLAGS. + + * autogen.sh: Exit immediately on error. Use libtoolize, aclocal, + and automake. Only run autoconf and autoheader in top-level and + scripts directories. + Run liboctave/config-ops.sh, doc/interpreter/config-images.sh, and + src/DLD-FUNCTIONS/config-module.sh, to generate source lists for + subdirectories. + + * AUTHORS, Makefile.am, common.mk, m4/module.mk, emacs/module.mk, + examples/@FIRfilter/module.mk, examples/@polynomial/module.mk, + examples/Makefile.am: New files. + * Makeconf.in, Makefile, octMakefile.in, m4/Makefile.in, + emacs/Makefile.in, install-sh, examples/Makefile.in, + examples/@FIRfilter/Makefile.in, examples/@polynomial/Makefile.in: + Delete. + + 2009-11-09 David Grundberg + + * configure.ac: Use AMD_CPPFLAGS while checking for UMFPACK. + + 2009-10-29 Thomas Treichl + + * configure.in: Add support for dlopen on Mac systems. + + 2009-10-20 Jaroslav Hajek + + * NEWS: Update. + + 2009-10-13 Jaroslav Hajek + + * NEWS: Update. + + 2009-10-08 Jaroslav Hajek + + * configure.ac: Define HAVE_QRUPDATE_LUU if qrupdate supports LU updates. + + 2009-10-08 Jaroslav Hajek + + * configure.ac: Use the LANG argument to OCTAVE_CHECK_LIBRARY to avoid + ugly names. + + 2009-09-23 Jaroslav Hajek + + * NEWS: Update. + + 2009-09-18 John W. Eaton + + * aclocal.m4: Consistently quote first arg to AC_DEFUN. + + 2009-09-17 John W. Eaton + + * configure.ac: Also AC_DEFINE OCTAAVE_IDX_TYPE. + (AH_BOTTOM): Include contents of libcruft/misc/oct-dlldefs.h and + liboctave/oct-types.h here. Use C-style comments. + (AC_CONFIG_FILES): Remove liboctave/oct-types.h from the list. + + 2009-09-15 John W. Eaton + + * configure.ac: Rename from configure.in. + (AC_CONFIG_FILES): Add m4/Makefile to the list. + * acx_blas.m4, acx_lapack.m4, acx_blas_f77_func.m4, + acx_pthread.m4: Move to m4 subdirectory. + * m4/Makefile.in: New file. + * octMakefile.in (M4_FILES): Adjust for new m4 subdirectory. + Rename all instances of configure.in to configure.ac. + (CONF_DISTSUBDIRS, DISTSUBDIRS): Add m4 to the lists. + + * configure.in: Substitute ac_config_headers. + * octMakefile.in (CONFIG_FILES): Include @ac_config_headers@ in + the list. From Thorsten Meyer . + + 2009-09-04 John W. Eaton + + * Makeconf.in (SPARSE_CPPFLAGS, SPARSE_LDFLAGS, FFTW_CPPFLAGS, + FFTW_LDFLAGS): Don't sort lists. + + 2009-09-02 Marco Atzeri + + * Makeconf.in: Order SPARSE_LIBS so linking succeeds on Cygwin. + + 2009-09-04 Marco Atzeri + + * README.Cygwin: Update version info. + + 2009-09-04 John W. Eaton + + * configure.in (ldpreloadsep): New variable. Set to ':' for Cygwin. + * Makeconf.in (do-subst-script-vals): Substitute it. + * run-octave.in: Use it to seprate elements in the LD_PRELOAD variable. + + 2009-09-03 John W. Eaton + + * configure.in (AH_BOTTOM): If HAVE_Z is defined, define HAVE_ZLIB. + + 2009-09-03 Jaroslav Hajek + + * NEWS: Update. + + 2009-09-02 Jaroslav Hajek + + * configure.in (FLOAT_TRUNCATE): New config macro. + + 2009-09-02 Jaroslav Hajek + + * acx_blas_f77_func.m4 (ACX_BLAS_F77_FUNC): Check for correct INTEGER + size. + + 2009-09-01 John W. Eaton + + * aclocal.m4 (OCTAVE_REQUIRE_64_BIT_FORTRAN_INTEGERS): New macro. + * configure.in: Use it, if building with --enable-64. + Move checks for Fortran compiler ahead of checks for libraries. + + 2009-09-01 Jaroslav Hajek + + * NEWS: Update. + + 2009-08-30 Jaroslav Hajek + + * NEWS: Update. + + 2009-08-27 John W. Eaton + + * configure.in: Properly save and restore CPPFLAGS and LIBS when + checking for GraphicsMagick++. Don't temporarily change LDFLAGS. + + 2009-08-27 Jaroslav Hajek + + * aclocal.m4 (m4_ifblank, m4_ifnblank): State FSF copyright and markup + as FIXME. + + 2009-08-26 John W. Eaton + + * configure.in: Restore LIBS after checking for ARPACK. + + 2009-08-26 John W. Eaton + + * configure.in: Use OCTAVE_CHECK_LIBRARY to check for UMFPACK. + * octave-bug.in, octave-bug.cc.in: Substitute UMFPACK_CPPFLAGS and + UMFPACK_LDFLAGS. + * Makeconf.in (UMFPACK_CPPFLAGS, UMFPACK_LDFLAGS): New variables. + (do-subst-config-vals): Substitute them. + + 2009-08-26 John W. Eaton + + * configure.in: Use OCTAVE_CHECK_LIBRARY to check for qrupdate. + * octave-bug.in, octave-bug.cc.in: Substitute QRUPDATE_CPPFLAGS and + QRUPDATE_LDFLAGS. + * Makeconf.in (QRUPDATE_CPPFLAGS, QRUPDATE_LDFLAGS): New variables. + (do-subst-config-vals): Substitute them. + + 2009-08-26 John W. Eaton + + * octave-bug.in: Correct substitutions. + + 2009-08-26 John W. Eaton + + * aclocal.m4 (OCTAVE_CHECK_LIBRARY): Allow empty list of header files. + * configure.in: Use OCTAVE_CHECK_LIBRARY to check for arpack. + * octave-bug.in, octave-bug.cc.in: Substitute ARPACK_CPPFLAGS and + ARPACK_LDFLAGS. + * Makeconf.in (ARPACK_CPPFLAGS, ARPACK_LDFLAGS): New variables. + (do-subst-config-vals): Substitute them. + + 2009-08-26 Benjamin Lindner + + * mkoctfile.cc.in: Fix typo. + * octave-bug.cc.in: Correct substututions. + + 2009-08-25 David Grundberg + + * configure.in: Run PKG_PROG_PKG_CONFIG earlier. Use pkg-config + instead of GraphicsMagick++-config. Determine only -I, -L and -l + flags and put them in MAGICK_CPPFLAGS, MAGICK_LDFLAGS and + MAGICK_LIBS respectively. Substitute these variables. + Remove variables MAGICK_CONFIG and MAGICK_INCFLAGS. + Test linking against GraphicsMagick++. + * Makeconf.in: Don't run $(MAGICK_CONFIG) here. Use substituted + valued from MAGICK_CPPFLAGS, MAGICK_LDFLAGS and MAGICK_LIBS. + Remove variables MAGICK_CONFIG and MAGICK_INCFLAGS. + + 2009-08-24 Jaroslav Hajek + + * acx_blas_f77_func.m4: Fix typo. + + 2009-08-19 Jaroslav Hajek + + * NEWS: Update. + + 2009-08-18 John W. Eaton + + * aclocal.m4 (OCTAVE_HDF5_HAS_REQUIRED_API): If test fails, set + octave_hdf5_ok to no instead of setting HAVE_HDF5 to false. + * configure.in: Check octave_hdf5_ok instead of HAVE_HDF5. + Set TEXINFO_HDF5 if HDF5 library is found. + + 2009-08-18 John W. Eaton + + * Makeconf.in (ALL_CPPFLAGS): Add HDF5_CPPFLAGS to the list. + * aclocal.m4 (OCTAVE_HDF5_HAS_REQUIRED_API): + Set HAVE_HDF5 to false, not WITH_HDF5. + * configure.in: Use OCTAVE_CHECK_LIBRARY to check for HDF5 + library. Print HDF5_CPPFLAGS and HDF5_LDFLAGS in the summary. + * octave-bug.in, octave-bug.cc.in, Makeconf.in: Substitute + HDF5_CPPFLAGS and HDF5_LDFLAGS. + + 2009-08-18 John W. Eaton + + * acx_blas_f77_func.m4 (ACX_BLAS_F77_FUNC): Save and restore LIBS. + + 2009-08-18 John W. Eaton + + * aclocal.m4 (OCTAVE_CHECK_LIBRARY): Use variables named + octave_check_library_save_XXX instead of save_XXX. + * configure.in: Add Z_LDFLAGS and Z_LIBS to LIBS, and Z_CPPFLAGS + to CPPFLAGS in checks for curl and glpk libraries. + + 2009-08-18 David Grundberg + + * aclocal.m4 (OCTAVE_CHECK_LIBRARY): Clear QHULL_LIBS etc on + errors. Interpret --without-qhull etc correctly. + + 2009-08-17 John W. Eaton + + * mkoctfile.in, mkoctfile.cc.in (FFTW3_LDFLAGS, FFTW3_LIBS, + FFTW3F_LDFLAGS, FFTW3F_LIBS): Substitute instead of FFTW_LIBS. + (FFTW_LIBS): Define from FFTW3_LDFLAGS, FFTW3_LIBS, + FFTW3F_LDFLAGS, and FFTW3F_LIBS variables. + + * octave-bug.cc.in, octave-bug.in (Z_CPPFLAGS, Z_LDFLAGS): + Substitute and display them. + (Z_LIBS): Rename from ZLIB_LIBS. + * configure.in: Use OCTAVE_CHECK_LIBRARY to check for ZLIB. + Print Z_CPPFLAGS and Z_LDFLAGS in the summary. + * Makeconf.in (Z_CPPFLAGS, Z_LDFLAGS): New variables. + (Z_LIBS): Rename from ZLIB_LIBS. + (do-subst-config-vals): Substitute them. + + (ALL_CPPFLAGS): New variable. + (%.o : %.c, %.o : %.cc, pic/%.o : %.c, pic/%.o : %.cc): + Use $(ALL_CPPFLAGS) instead of $(CPPFLAGS) in command. + + 2009-08-17 John W. Eaton + + * octave-bug.in, octave-bug.cc.in: Include AMD_CPPFLAGS, + AMD_LDFLAGS, AMD_LIBS, ARPACK_LIBS, BLAS_LIBS, CAMD_CPPFLAGS, + CAMD_LDFLAGS, CAMD_LIBS, CARBON_LIBS, CCOLAMD_CPPFLAGS, + CCOLAMD_LDFLAGS, CCOLAMD_LIBS, CHOLMOD_CPPFLAGS, CHOLMOD_LDFLAGS, + CHOLMOD_LIBS, COLAMD_CPPFLAGS, COLAMD_LDFLAGS, COLAMD_LIBS, + CURL_CPPFLAGS, CURL_LDFLAGS, CURL_LIBS, CXSPARSE_CPPFLAGS, + CXSPARSE_LDFLAGS, CXSPARSE_LIBS, DL_LIBS, FFTW3_CPPFLAGS, + FFTW3_LDFLAGS, FFTW3_LIBS, FFTW3F_CPPFLAGS, FFTW3F_LDFLAGS, + FFTW3F_LIBS, GRAPHICS_LIBS, GLPK_CPPFLAGS, GLPK_LDFLAGS, + GLPK_LIBS, HDF5_LIBS, OPENGL_LIBS, PTHREAD_CFLAGS, PTHREAD_LIBS, + QHULL_CPPFLAGS, QHULL_LDFLAGS, QHULL_LIBS, QRUPDATE_LIBS, + READLINE_LIBS, REGEX_LIBS, TERM_LIBS, UMFPACK_LIBS, X11_INCFLAGS, + X11_LIBS, and ZLIB_LIBS in the summary of varibles. + + * configure.in: Include LEXLIB and LIBGLOB in the summary. + + 2009-08-17 Michael Goffioul + + * aclocal.m4 (OCTAVE_HDF5_DLL): Include HDF5_LIBS in LIBS before + attempting link. + + 2009-08-15 Jaroslav Hajek + + * aclocal.m4: Define the autoconf 2.64+ m4sugar macros `m4_ifblank' + and `m4_ifnblank' if on earlier autoconfs. + + 2009-08-13 John W. Eaton + + * Makeconf.in (GLPK_CPPFLAGS, GLPK_LDFLAGS, + AMD_CPPFLAGS, AMD_LDFLAGS, CAMD_CPPFLAGS, CAMD_LDFLAGS, + CCOLAMD_CPPFLAGS, CCOLAMD_LDFLAGS, CHOLMOD_CPPFLAGS, + CHOLMOD_LDFLAGS, COLAMD_CPPFLAGS, COLAMD_LDFLAGS, + CXSPARSE_CPPFLAGS, CXSPARSE_LDFLAGS): New variables. + (do-subst-config-vals): Substitute Them. + (SPARSE_CPPFLAGS, SPARSE_LDFLAGS, SPARSE_LIBS, FFTW_CPPFLAGS, + FFTW_LDFLAGS, FFTW_LIBS): New variables. + + * configure.in: Use OCTAVE_CHECK_LIBRARY to check for GLPK, AMD, + CAMD, CCOLAMD, CHOLMOD, COLAMD, CXSPARSE, FFTW3, and FFTW3F + libraries. Print GLPK_CPPFLAGS, GLPK_LDFLAGS, AMD_CPPFLAGS, + AMD_LDFLAGS, CAMD_CPPFLAGS, CAMD_LDFLAGS, CCOLAMD_CPPFLAGS, + CCOLAMD_LDFLAGS, CHOLMOD_CPPFLAGS, CHOLMOD_LDFLAGS, + COLAMD_CPPFLAGS, COLAMD_LDFLAGS, CXSPARSE_CPPFLAGS, + CXSPARSE_LDFLAGS, FFTW3_CPPFLAGS, FFTW3_LDFLAGS, FFTW3_LIBS, + FFTW3F_CPPFLAGS, FFTW3F_LDFLAGS, and FFTW3F_LIBS in the summary. + (AH_BOTTOM): Define HAVE_FFTW if HAVE_FFTW3 and HAVE_FFTW3F are + both defined. + + * aclocal.m4 (OCTAVE_CHECK_LIBRARY): New optional arguments for + language and doc string. + + 2009-08-13 Jaroslav Hajek + + * aclocal.m4 (OCTAVE_CHECK_LIBRARY): Prepend to LIBS rather than + replacing. + + 2009-08-13 John W. Eaton + + * Makeconf.in (QHULL_CPPFLAGS, QHULL_LDFLAGS, CURL_CPPFLAGS, + CURL_LDFLAGS): New variables. + (do-subst-config-vals): Substitute QHULL_CPPFLAGS, QHULL_LDFLAGS, + CURL_CPPFLAGS, and CURL_LDFLAGS + * configure.in: Use OCTAVE_CHECK_LIBRARY to check for qhull and + curl libraries. Print QHULL_CPPFLAGS, QHULL_LDFLAGS, + CURL_CPPFLAGS, and CURL_LDFLAGS in the summary. Print glpk + library warning at time of check. Use AC_MSG_WARN, not + AC_MSG_RESULT, to print fftw warning. + * aclocal.m4 (OCTAVE_CHECK_LIBRARY): New macro. + (AC_CHECK_QHULL_VERSION, AC_CHECK_QHULL_OK): + Implement with modern autoconf macros. + + 2009-08-11 John W. Eaton + + * configure.in: Define and substitute TERM_LIBS instead of + TERMLIBS. Don't add TERM_LIBS to LIBS. Define DL_LIBS instead of + adding them to LIBS. Display TERM_LIBS and DL_LIBS in summary + reporrt. + * aclocal.m4 (OCTAVE_ENABLE_READLINE): Define and substitute + READLINE_LIBS instead of LIBREADLINE. Don't add readline library + to LIBS. Display READLINE_LIBS in summary report. Temporarily + add TERM_LIBS to LIBS when checking for readline library. + * Makeconf.in, mkoctfile.cc.in, mkoctfile.in: + Use READLINE_LIBS instead of LIBREADLINE and TERM_LIBS instead of + TERMLIBS. Substitute DL_LIBS. + (do-subst-config-vals): Substitute TERM_LIBS and DL_LIBS. + + 2009-08-11 John W. Eaton + + * configure.in: Generate separate variables for HDF5_LIBS and + ZLIB_LIBS. Don't add them to LIBS. Add separate entries for them + in the summary report. + * Makeconf.in (HDF5_LIBS, ZLIB_LIBS): New variables. + (do-subst-config-vals): Substitute AMD_LIBS, ARPACK_LIBS, + CAMD_LIBS, CCOLAMD_LIBS, CHOLMOD_LIBS, COLAMD_LIBS, CXSPARSE_LIBS, + FT2_LIBS, GRAPHICS_LIBS, HDF5_LIBS, OPENGL_LIBS, PTHREAD_CFLAGS, + PTHREAD_LIBS, QHULL_LIBS, QRUPDATE_LIBS, REGEX_LIBS, UMFPACK_LIBS, + ZLIB_LIBS. + + 2009-08-05 John W. Eaton + + * acx_pthread.m4: New file. + * configure.in: Include it and invoke ACX_PTHREAD macro. Print + ptrhead flags and libraries in summary output. + * Makeconf.in (PTHREAD_CFLAGS, PTHREAD_LIBS): Substitute values. + (ALL_CFLAGS, ALL_CXXFLAGS): Include $(PTHREAD_CFLAGS). + + 2009-08-03 Jaroslav Hajek + + * NEWS: Update. + + 2009-07-27 Jaroslav Hajek + + * NEWS: Update. + + 2009-07-22 Jaroslav Hajek + + * NEWS: Update. + + 2009-07-16 John W. Eaton + + * Makeconf.in (MAGICK_LIBS): Don't pass --ldflags to $(MAGICK_CONFIG). + + 2009-07-09 John W. Eaton + + * configure.in: Don't use system strftime on MinGW systems. + + 2009-06-29 Jaroslav Hajek + + * NEWS: Correct info. + * NEWS: Update. + + 2009-06-26 Michael Goffioul + + * aclocal.m4: Add pkg.m4 macros. + * configure.in (HAVE_FREETYPE): New defined variable. + * configure.in: Add configure tests for Fontconfig detection. + + 2009-06-23 Robert T. Short + + * run-octave.in: Exclude @-files from path. Remove CVS exclusions. + + 2009-06-19 Jaroslav Hajek + + * NEWS: Update. + + 2009-06-15 Jaroslav Hajek + + * NEWS: Update. + + 2009-06-02 Jaroslav Hajek + + * examples/@polynomial/subsref.m: Handle ':' correctly. + * examples/@polynomial/subsasgn.m: Ditto. + + 2009-06-11 Jaroslav Hajek + + * example/@polynomial/numel.m: New method. + * example/@polynomial/Makefile.in: Include it. + + 2009-05-22 Benjamin Lindner + + * mkoctfile.cc.in: mask MSVC specific linker flags for mex output + + 2009-06-02 Robert T. Short + + * examples/@polynomial: Fix end method for zero based indexing. + + 2009-06-02 Jaroslav Hajek + + * examples/@polynomial/subsref.m: Allow chained subscripts, + fix behavior according to docs. + * examples/@polynomial/subsasgn.m: Allow chained subscripts, + fix behavior according to docs. + + 2009-06-02 Robert T. Short + + * examples/@polynomial: Remove tabs from all functions so + documentation looks right. Fix a bunch of methods + that didn't work. Add a method referred to in the docs + that didn't exist. + + 2009-05-26 John W. Eaton + + * src/dirfns.cc (Fpathsep): Allow path separator to be set. + + 2009-03-17 Thomas Weber + + * configure.in: fix typo with regards to termios.h + + 2009-05-25 Jaroslav Hajek + + * examples/@FIRfilter/Makefile.in: New file. + * examples/Makefile.in: Include it. + * configure.in: Ditto. + + 2009-05-24 Benjamin Lindner + + * configure.in: (SCRIPTS_EXE_SUFFIX) Define to ".exe" for + mingw32 compilation (similar to msvc) + + 2009-05-24 Robert T. Short + + * examples/@FIRfilter: added FIRfilter class example. + + 2009-05-22 Marco Atzeri + + * src/sysdep.cc: Removed CYGWIN_init + + 2009-05-21 Marco Atzeri + * configure.in: Correct my mistake in cygwin SHLBINPRE SHLBIN + + 2008-05-21 Michael Goffioul + + * aclocal.m4 (AC_CHECK_QHULL_OK): Do not use -lm under + Windows systems. + * configure.in: Add -luser32 to LIBS under Windows. + + * configure.in (SCRIPTS_EXE_SUFFIX): New substituted + variable. Define to ".exe" for MSVC compilation. + * octMakefile.in (SCRIPTS_EXE_SUFFIX): New variable. + (DISTFILES): Add mkoctfile.cc.in, octave-config.cc.in and + octave-bug.cc.in. + (SHELL_SCRIPTS): Use SCRIPTS_EXE_SUFFIX. + (mkoctfile.cc, mkoctfile$(EXEEXT)): New build rules. + (octave-config.cc, octave-config$(EXEEXT)): Likewise. + (octave-bug.cc, octave-bug$(EXEEXT)): Likewise. + (install, install-strip, uninstall): Use SCRIPTS_EXE_SUFFIX. + (maintainer-clean, distclean): Remove mkoctfile.[cc|o|exe], + octave-config.[cc|o|exe] and octave-bug.[cc|o|exe]. + (clean): Remove mkoctfile$(EXEEXT), octave-config$(EXEEXT), + octave-bug$(EXEEXT) and the corresponding object files. + + 2009-05-07 Rik + + * README.mirrors: Remove invalid mirror sites which no longer exist. + + 2009-05-07 John W. Eaton + + * configure.in, mkoctfile.in, mkoctfile.cc.in, octave-bug.in, + octave-bug.cc.in: Eliminate last remnants of f2c goop. + + 2009-05-07 Marco Atzeri + + * configure.in, Makeconf.in: (SHLPRE): Rename from SHLLIBPRE. + + 2009-05-05 Jaroslav Hajek + + * configure.in: Include the whole 3.x g++ series as problematic. + * Makefile: Don't mention that g++-3.x might work. + + 2009-05-04 John W. Eaton + + * configure.in: Put -lftgl ahead of $FT2_LIBS, and $FT2_LIBS ahead + of $OPENGL_LIBS. + + 2009-05-04 Peter O'Gorman + + * aclocal.m4 (OCTAVE_HAVE_C99_VSNPRINTF): New macro. + * configure.in: Use it. + + * configure.in (rs6000-ibm-aix* | powerpc-ibm-aix*): Set + library_path_var to LIBPATH. + (hppa*-hp-hpux*): Set library_path_var to SHLIB_PATH. + (ia64*-hp-hpux*): New case for shared library variables. + + * configure.in: Provide decls for exp2, round, and tgamma if they + are missing. + + 2009-04-11 David Bateman + + * NEWS: Add new graphics functions. + + 2009-04-05 John W. Eaton + + * configure.in: Use AC_USE_SYSTEM_EXTENSIONS instead of + AC_GNU_SOURCE, AC_AIX, AC_MINIX, and AC_ISC_POSIX. + Require Autoconf 2.60. + + * configure.in: Add -Wformat to extra warning flags. Add + -Wconversion to strict warning flags. + + 2009-04-02 John W. Eaton + + * Makeconf.in (do-script-install): Use $(INSTALL_DATA) instead of + mv to install PKG_ADD file. + + 2009-04-02 Marco Atzeri + + * Makeconf.in (do-subst-script-vals): Use SHLLIBPRE instead of + LIBPRE for names for shared libraries. + + 2009-03-28 Marco Atzeri + + * configure.in: For cygwin, set LIBPRE=lib and clear CPICFLAG, + CXXPICFLAG, and FPICFLAG. + + 2009-03-27 Jaroslav Hajek + + * aclocal.m4 (OCTAVE_CMATH_FUNC): Add missing AC_LANG_POP. + * configure.in: Enclose string in quotes. + + 2009-03-23 Jaroslav Hajek + + * NEWS: More updates. + + 2009-03-20 Jaroslav Hajek + + * aclocal.m4 (OCTAVE_CMATH_FUNC): New macro. + * configure.in: Use it. + + 2009-03-09 John W. Eaton + + * run-octave.in: Use doc-cache instead of DOC for doc cache file. + * configure.in: Likewise. + + * configure.in (--enable-extra-warning-flags): New option to + control extra compiler warning flags. + (--enable-strict-warning-flags): Rename from --enable-picky-flags. + (GXX_STRICT_FLAGS): Remove -Wenum-clash from the list. + + 2009-03-08 Sᅵren Hauberg + + * NEWS: Mention 'histc'. + + 2009-03-07 John W. Eaton + + * config.guess, config.sub: Update from FSF sources. + + 2009-02-25 John W. Eaton + + * configure.in (doc_cache_file): New default variable + * Makeconf.in (@doc_cache_file, do-subst-default-vals): Substitute it. + + 2009-02-24 John W. Eaton + + * run-octave.in (DOCFILE): New variable. Pass --doc-cache-file + option to Octave. + + * configure.in: Copy Makefile to build directory if not building + in srcdir. + + 2009-02-24 Thorsten Meyer + + * configure.in: AC_SUBST ac_config_files. + * Makeconf.in (config_opts): Define CONFIG_SUBDIRS variable. + * Makefile: Add make target for configuration files. + * octMakefile.in: Add make targets for configuration files, + config.status and configure. + + * Makefile.in: Rename to Makefile. + * configure.in: Remove Makefile from list of autogenerated + configuration files. + * octMakefile.in: Remove references to Makefile.in, add Makefile + to list of CONF_DISTFILES. + * octMakefile.in (maintainer-clean distclean): Don't delete Makefile. + + 2009-02-17 Benjamin Lindner + + * configure.in: Check for mkstemps on MinGW platform + (HAVE_MKSTEMPS): Define if mkstsmps is avilable in libiberty. + + 2009-02-17 Jaroslav Hajek + + * NEWS: Mention cummin and cummax + + 2009-02-17 John W. Eaton + + * aclocal.m4 (OCTAVE_PROG_GPERF): Don't run gperf. + + * Makeconf.in (do-subst-config-vals): Substitute CARBON_LIBS, + X11_INCFLAGS, and X11_LIBS. + + 2009-02-17 Thomas Treichl + + * Makeconf.in: Substitute CARBON_LIBS. + * configure.in: Use CARBON_LIBS instead of LIBS for framework Carbon. + + * configure.in: Fix test for X11 if "--without-x" is given. + + 2009-02-16 Jaroslav Hajek + + * NEWS: Yet more updates. + + 2009-02-16 John W. Eaton + + * NEWS: Mention command-style parsing changes. More updates. + + 2009-02-13 John W. Eaton + + * NEWS: Update for release. + + 2009-02-11 Thomas Treichl + + * aclocal.m4 (OCTAVE_GLUTESSCALLBACK_THREEDOTS): New macro. + (OCTAVE_OPENGL): Use it in OpenGL check. + + 2009-02-11 Ben Abbott + + * configure.in: Include FTGLTextureFont.h when FTGL_UPPER_CASE is + not defined. + + 2009-02-11 John W. Eaton + + * configure.in (octetcdir): New default value. + * Makeconf.in (octetcdir): New variable. + (do-subst-default-vals): Substitute octetcdir. + * octMakefile.in (install, uninstall): Use $(octetcdir) for NEWS. + (DIRS_TO_MAKE): Add $(octetcdir) to the list. + + 2009-02-10 Rafael Laboissiere + + * examples/Makefile.in: Run some clean targets on sub-directory + @polynomial. + + 2009-02-09 John W. Eaton + + * examples/Makefile.in (dist): Create subdirs of examples, not scripts. + + * examples/@polynomial/Makefile.in (do-mkpkgadd): + Provide special definition for this directory. + + * examples/Makefile.in (EXAMPLE_SOURCES): Delete unused variable. + (SUBDIRS, DISTSUBDIRS): Don't reset to empty. + + 2009-02-08 John W. Eaton + + * install-octave.in: Delete. + * configure.in: Delete AC_CONFIG_COMMANDS macro that was used to + make install-octave executable. + + 2009-02-07 John W. Eaton + + * octMakefile.in (all): Display $(prefix) in summary message. + + 2009-02-05 John W. Eaton + + * aclocal.m4 (OCTAVE_HDF5_HAS_REQUIRED_API): New macro. + * configure.in: Use it in HDF5 check. + + 2009-02-04 Benjamin Lindner + + * configure.in: Use separate cases for *-*-mingw* and *-*-cygwin* + to set variables related to creating shared libraries. + + 2009-02-03 Jaroslav Hajek + + * aclocal.m4 (AC_CHECK_QHULL_OK): New macro, based on suggestion by + Petr Mikulik . + * configure.in: Call it. + + 2009-02-01 Thorsten Meyer + + * autogen.sh: Remove printing of cvs motd. + + 2009-01-30 Marco Atzeri + + * configure.in (SHLLIBPRE, SHLBINPRE): Fix definitions for Cygwin. + (SHLEXT, SHLLIB, SHLBIN, SONAME_FLAGS): Fix definitions for Cygwin + and MinGW. + + 2009-01-30 Benjamin Lindner + + * configure.in: Add -lgdi32 to LIBS on *-*-msdosmsvc* and + *-*-mingw* systems. + + 2009-01-29 Thomas Treichl + + * aclocal.m4 (OCTAVE_HAVE_FRAMEWORK): Add support for + --with-framework- and replace "$ac_safe" by "$1". + * configure.in: Change "have_carbon" with + "have_framework_carbon". + + 2009-01-28 John W. Eaton + + * configure.in: Check to see that pcre library has pcre_compile + function. + + * configure.in (SHLLIBPRE, SHLBINPRE): New variables. AC_SUBST them. + (*-*-cygwin*): Set LIBPRE and SHLBINPRE to cyg and SHLLIBPRE to lib. + Use SHLLIBPRE and SHLLIB in definition of SONAME_FLAGS. + (*-*-msdosmsvc): Make SHLBINPRE and SHLLIBPRE empty. + Adjust definition of SONAME_FLAGS for SHLLIBPRE. + + * Makeconf.in (SHLLIBPRE, SHLBINPRE): Substitute new variables here. + From Marco Atzeri . + + 2009-01-27 Benjamin Lindner + + * configure.in: Add of -lregex to REGEX_LIBS. + + 2009-01-26 Thomas Treichl + + * aclocal.m4 (OCTAVE_HAVE_FRAMEWORK): New macro. + * configure.in: Use it. + + 2009-01-22 John W. Eaton + + * configure.in (AH_BOTTOM): Define OCTAVE_USE_OS_X_API if + __APPLE__ and __MACH__ are defined. + + 2009-01-22 Jaroslav Hajek + + * configure.in: Fix qrupdate warning message. + + 2009-01-21 John W. Eaton + + * Makeconf.in: Substitute X11_INCFLAGS and X11_LIBS. + * configure.in: Use AC_PATH_X to check for X11 header files and + libraries. + + * THANKS, Announce: Remove obsolete files. + * octMakefile.in (DISTFILES): Remove THANKS from the list. + + 2009-01-20 John W. Eaton + + * configure.in: Check for fstat. + + 2008-12-23 David Bateman + + * configure.in: Add configuration test for ARPACK. + * Makeconf.in (ARPACK_LIBS): Add variable with location of ARPACK + library. + * NEWS: Document that eigs and svds were moved to Octaave. + + 2008-10-29 Jaroslav Hajek + + * configure.in: Remove the OCTAVE_LOCAL_BUFFER stuff (moved to + liboctave). + + 2008-12-04 Jaroslav Hajek + + * NEWS: Document more new features. + + 2008-12-03 John W. Eaton + + * config.guess, config.sub: Update from FSF sources. + + 2008-11-18 John W. Eaton + + * mkoctfile.cc.in, octave-bug.cc.in: Style fixes. + + 2008-11-13 Ben Abbott + + * src/graphics.h.in: Add props screensize & screenpixelsperinch. + + 2008-11-08 Thorsten Meyer + + * Makeconf.in: export PERL variable for use in scripts/mkdoc + + 2008-10-30 David Bateman + + * NEWS: Minor update to document improved indexing code. + + 2008-10-23 Jason Riedy + + * configure.in: Take care to use FT2_CFLAGS when checking + for FTGL headers. + + 2008-10-22 David Bateman + + * examples/@polynomial: Move examples/polynomial here. + * examples/@polynomial/Makefile.in: Update for new location. + * examples/Makefile.in: Ditto. + * configure.in: Change locate of examples/@polynomial makefile + in AC_CONFIG_FILES. + + 2008-10-16 David Bateman + + * NEWS: Minor update. + + 2008-10-15 David Bateman + + * examples/polynomial/display.m, examples/polynomial/double.m, + examples/polynomial/end.m, examples/polynomial/get.m, + examples/polynomial/mtimes.m, examples/polynomial/plot.m, + examples/polynomial/polynomial.m, + examples/polynomial/polynomial_superiorto.m, + examples/polynomial/polyval.m, examples/polynomial/set.m, + examples/polynomial/subsasgn.m, examples/polynomial/subsref.m: + New example files for a sample OOP class. + * examples/polynomial/Makefile.in: Add a makefile for this new + directory + * examples/Makefile.in: Reference the new subdirectory here. + * configure.in: Add the new makefile to AC_CONFIG_FILES. + + 2008-10-01 Jaroslav Hajek + + * configure.in: Check for sizeof (long double) and randl. + + 2008-09-30 Jaroslav Hajek + + * aclocal.m4 (OCTAVE_FAST_INT_OPS): New macro. + * configure.in: Call OCTAVE_FAST_INT_OPS + + 2008-09-08 John W. Eaton + + * mkoctfile.cc.in, octave-bug.cc.in, octave-config.cc.in: Style fixes. + + 2008-09-08 Michael Goffioul + + * mkoctfile.cc.in, octave-bug.cc.in, octave-config.cc.in: New files. + + 2008-08-28 David Bateman + + * NEWS: Update for some of the graphics changes + + 2008-08-11 Jaroslav Hajek + + * acx_blas_f77_func.m4, acx_lapack.m4: Update macros from + . + + 2008-08-07 John W. Eaton + + * aclocal.m4 (OCTAVE_STRING_NPOS): Delete. + * configure.in (OCTAVE_STRING_NPOS): Delete use. + + 2008-08-04 John W. Eaton + + * Makeconf.in (do-subst-script-vals): Also substitute SED. + * run-octave.in: Use sed to append : to path elements + instead of using the find expression "-exec echo '{}':". + Substitute SED here. + + * aclocal.m4: Fail if no usable version of sed is found. + + * Makefile.in (header-msg): Mention GNU Make requirement. + Update GCC version info. + + 2008-07-31 John W. Eaton + + * octMakefile.in (DISTFILES): Add "missing" to the list. + + 2008-07-30 John W. Eaton + + * aclocal.m4 (CXX_ABI, OCTAVE_CXX_PREPENDS_UNDERSCORE, + OCTAVE_PROG_NM): Delete macros. + * configure.in: Delete uses. + + 2008-07-29 Tatsuro MATSUOKA + + * aclocal.m4 (OCTAVE_OPENGL): Handle MinGW the same as MSVC. + + 2008-07-29 David Bateman + + * NEWS.3: Copy from NEWS. + * NEWS: Initial update in preparation for a 3.2 release. + + 2008-07-21 John W. Eaton + + * configure.in: If FTGL.h is found, then also include + FTGLTextureFont.h in test code. + + 2008-07-21 Michael Goffioul + + * configure.in: Remove GRAPHICS_OPENGL variable. + + 2008-07-21 John W. Eaton + + * aclocal.m4 (OCTAVE_OPENGL): Fix shell syntax problems. + Handle HAVE_GL_GL_H and HAVE_OPENGL_GL_H in link test. + + * configure.in: Don't define and substitute FLTK_BACKEND_SRC or + GL_RENDER_SRC. + (HAVE_FLTK): AC_DEFINE if FLTK is available. + (HAVE_OPENGL): AC_DEFINE if OpenGL is available. + + 2008-07-21 Jaroslav Hajek + + * configure.in: Extend FTGL test to test for both ftgl.h and FTGL.h. + Use HAVE_FTGL_UPPERCASE to indicate the latter (version <= 2.1.2). + + 2008-07-19 Rafael Laboissiere + + * octMakefile.in (CONF_DISTFILES): Include acx_blas_f77_func.m4 in + the list. + + 2008-07-18 Carlo de Falco + + * aclocal.m4: Search for gl.h and glu.h in OpenGL/ as well as in GL/. + + 2008-07-18 John W. Eaton + + * configure.in: Fix FTGL test to handle either FTGL/ftgl.h or ftgl.h. + (warn_freetype, warn_ftgl, warn_fltk_config, warn_fltk_opengl): + New variables. Use these instead of overloading warn_graphics. + + 2008-07-17 David Bateman + + * configure.in (HAVE_MAGICK): New define for presence of + GraphicsMagick. + + 2008-07-16 Michael Goffioul + + * configure.in: Add check for pthread.h. + + 2008-07-14 John W. Eaton + + * Makeconf.in (MAGICK_CONFIG): Substitute here. + (MAGICK_INCFLAGS, MAGICK_LIBS): Define using GraphicsMagick++ + config script. + (do-subst-config-vals): Include MAGICK_LIBS and MAGICK_INCFLAGS in + list of substitutions. + * configure.in: Check for GraphicsMagick++ config script. + + 2008-07-10 John W. Eaton + + * octMakefile.in (DIRS_TO_MAKE): Delete $(localfcnfilepath) and + $(localoctfilepath) from the list. Include $(datadir) + $(localfcnfiledir) $(localapifcnfiledir) $(localverfcnfiledir) + $(localoctfiledir) $(localapioctfiledir) $(localveroctfiledir) + $(imagedir) and $(localapiarchlibdir) in the list. + + * configure.in: Look for FTGL/ftgl.h instead of FTGL/FTGL.h. Also + look for ftgl.h. + + 2008-07-10 Michael Goffioul + + * configure.in: new substituted variables GL_RENDER_SRC and + FLTK_BACKEND_SRC. + + 2008-06-20 Michael Goffioul + + * Makeconf.in: Add GRAPHICS_CFLAGS substitution. + * configure.in: Add checks for hypotf and _hypotf. + + 2008-06-12 Jaroslav Hajek + + * configure.in: Move LIBS and CXXFLAGS restoration into + the proper block. + + 2008-06-05 John W. Eaton + + * configure.in: Add FT2_CFLAGS to XTRA_CXXFLAGS, not CXXFLAGS. + Don't add FT2_LIBS to LIBS. + Don't generate src/graphics/Makefile, src/graphics/Makerules, + src/graphics/opengl/Makefile, or src/graphics/fltk_backend/Makefile. + + * Makeconf.in (FT2_LIBS, GRAPHICS_LIBS): Substitute here. + + 2008-06-04 Shai Ayal + + * configure.in: Use AC_TRY_LINK in FTGL test. + Include FT_CFLAGS in CXXFLAGS. + + * aclocal.m4 (OCTAVE_OPENGL): Note FIXME for apple. + + * configure.in: Check for FTGL library. + + * configure.in: Remove check for Fl/glu.h header. + + * aclocal.m4 (AC_CHECK_FT2): New macro to check for freetype2. + + * configure.in: Check for FLTK and corresponding compiler flags. + + 2008-06-04 Michael Goffioul + + * configure.in: Double-quote warn_graphics variable. + + * aclocal.m4 (OCTAVE_OPENGL): New function to detect OpenGL + headers and libraries. + * configure.in (OCTAVE_OPENGL): Use it. + (OCTGRAPHICS_DLL_DEFS): New define to build + graphics-related DLL. + (AC_CONFIG_FILES): Generate additional files for graphics + related libraries. + * Makeconf.in (OPENGL_LIBS): New variable. + + * .hgignore: Also ignore build-.*, configure, and autom4te.cache. + + 2008-05-22 Jaroslav Hajek + + * mk-opts.pl (emit_print_function, emit_set_function, + emit_show_function): Support float type. + + 2008-05-20 David Bateman + + * configure.in (AC_CHECK_FUNCS): Add expm1, lgammaf, lgammaf_r, + log1pf and tgammaf. Also check for libfftw3f. + + 2008-04-09 Rafael Laboissiere + + * example/octave.desktop.in: Drop the Encoding key, which is + deprecated by the FreeDesktop standard. + + 2008-04-04 John W. Eaton + + * Makeconf.in (do-check-m-sources): New macro. + + 2008-04-03 Tatsuro MATSUOKA + + * README.Cygwin: Update. + + 2008-04-02 Jaroslav Hajek + + * acx_blas_f77_func.m4: New file. + * configure.in: Call ACX_BLAS_WITH_F77_FUNC instead of ACX_BLAS. + Supply a warning for incompatible Fortran/BLAS configuration. + + 2008-03-25 Jaroslav Hajek + + * configure.in: Check for expm1 and log1p functions. + + 2008-03-25 John W. Eaton + + * configure.in: Check for trunc. + + 2008-03-21 David Bateman + + * configure.in (HAVE_AMD): Complete test for presence of amd. + + 2008-03-18 David Bateman + + * configure.in (AC_CHECK_FUNCS): Also check lgamma_r. + + 2008-03-11 David Bateman + + * run-octave.in: Fix typo. + + 2008-02-21 John W. Eaton + + * examples/Makefile.in (install install-strip): Ignore errors + installing octave.desktop file. + + 2008-02-15 John W. Eaton + + * configure.in (*-*-freebsd*, *-*-openbsd*): Don't set SH_LD. + + 2008-02-14 John W. Eaton + + * examples/fortdemo.cc: Don't check f77_exception_encountered. + + 2008-02-06 John W. Eaton + + * examples/Makefile.in (octave.desktop): + Use mv instead of move-if-change. + + 2008-02-05 John W. Eaton + + * dlfcn/Makefile.in: Unconditionally include $(MAKEDEPS). + Mark $(MAKEDEPS) as .PHONY targets if omit_deps is true. + + 2008-01-12 John W. Eaton + + * aclocal.m4: Call AC_SUBST instead of AC_DEFINE_UNQOTED for + GNUPLOT_BINARY. + * aclocal.m4, configure.in: Use GNUPLOT instead of GNUPLOT_BINARY + as variable name. + * Makeconf.in (GNUPLOT): Substitute. + (do-subst-config-vals): Substitute GNUPLOT. + + 2007-12-21 John W. Eaton + + Version 3.0.0 released. + + 2007-12-13 John W. Eaton + + * octMakefile.in (octave-bug, octave-config, mkoctfile): + Also depend on $(top_srcdir)/src/version.h. + + 2007-12-10 John W. Eaton + + * acx_blas.m4: Use -lsunperf, not -xlic_lib=sunperf. + From Jim Langston . + + 2007-12-06 John W. Eaton + + * configure.in (*-*-darwin*): Only set CPICFLAG, CXXPICFLAG, and + FPICFLAG to "" on powerpc systems. + + 2007-12-04 John W. Eaton + + * octave-bug.in (LIBDLFCN): Delete variable and all uses. + * Makeconf.in (LIBDLFCN, DLFCN_INCFLAGS): Likewise. + * configure.in (DLFCN_DIR, LIBDLFCN, DLFCN_INCFLAGS): Likewise. + Don't generate dlfcn/Makefile. + * octMakefile.in (DISTSUBDIRS): Delete dlfcn from the list. + (SUBDIRS): Don't substitute DLFCN_DIR here. + + 2007-12-03 Moritz Borgmann + + * Makeconf.in, aclocal.m4, configure.in: Check for find program, + preferably gfind (on non-GNU systems). Need a sane find for + run-octave script. + * run-octave.in: Use FIND and AWK as determined by configure. + + 2007-12-03 John W. Eaton + + * configure.in: If available, include in test for + sigset_t and sig_atomic_t. + + 2007-11-30 Moritz Borgmann + + * configure.in: Also check for sunmath.h. + + 2007-11-26 David Bateman + + * PROJECTS: condest now implemented. + + * NEWS: Document the TeX interpreter mode and its limitations with + gnuplot 4.0. + + * NEWS: Document the use of "colormap gmap40" to workaround some + gnuplot 4.0 colormap issues. + + 2007-11-14 John W. Eaton + + * configure.in: Don't create Makefrag.bsd. + + 2007-11-14 Joseph P. Skudlarek + + * configure.in: Rework pcre.h tests to work with autoconf 2.59, + and avoid explicit pcre/pcre.h check by using pcre-config. + + 2007-11-13 Joseph P. Skudlarek + + * octave-bug.in: Try mailx, then Mail, then /usr/ucb/mail, then + /bin/mail. + + 2007-11-13 John W. Eaton + + * configure.in: Only define HAVE_PCRE_H if has the + definitions we need. Likewise for . + + 2007-11-10 John W. Eaton + + * configure.in: Delete AC_SUBST_FILE(f77_rules_frag). + + 2007-11-07 John W. Eaton + + * configure.in: Also check for pcre/pcre.h. + + 2007-11-01 John W. Eaton + + * configure.in: Delete BLAS library calling convention + compatibility check. + + 2007-10-31 John W. Eaton + + * README.binary-dist: Delete. + + * README.MachTen: Delete. + * octMakefile.in (DISTFILES): Remove it from the list. + + 2007-10-30 David Bateman + + * examples/addtwomatrices.cc, examples/celldemo.cc, + examples/firstmexdemo.c, examples/fortdemo.cc, examples/fortsub.f, + examples/funcdemo.cc, examples/globaldemo.cc, + examples/helloworld.cc, examples/mycell.c, examples/myfeval.c, + examples/myfunc.c, examples/mypow2.c, examples/mysparse.c, + examples/mystring.c, examples/mystruct.c, examples/paramdemo.cc, + examples/stringdemo.cc, examples/structdemo.cc, + examples/unwinddemo.cc: Doc fixes for small book format. + + 2007-10-26 Michael Goffioul + + * Makeconf.in: Remove UNSETCOMSPEC trick. + + 2007-10-25 John W. Eaton + + * configure.in (AH_BOTTOM): Define OCTAVE_EMPTY_CPP_ARG here. + + 2007-10-24 John W. Eaton + + * octMakefile.in (maintainer-clean distclean): No need to delete + Makefrag.f77 and Makerules.f77. + * Makeconf.in: Include rules for making .o files from .f files + instead of substituting @f77_rules_frag@. + * configure.in): Delete handling of --with-f2c and --with-f77 + options. No need to call OCTAVE_CHECK_EXCLUSIVE_WITH_OPTIONS. + Delete all special cases for f2c. + * aclocal.m4 (OCTAVE_CHECK_EXCLUSIVE_WITH_OPTIONS): Delete macro. + + * FLEX.patch: Delete obsolete file. + * octMakefile.in (DISTFILES): Remove it from the list. + + * acx_blas.m4: Use "-Wl,-framework -Wl,vecLib" instead of + just "-framework vecLib" in test for Mac OS X test. + + * configure.in, aclocal.m4: Avoid AC_TRY_EVAL. + + * aclocal.m4 (OCTAVE_STRPTIME_BROKEN): New macro. + * configure.in: Use it. + + 2007-10-23 John W. Eaton + + * configure.in: When checking for -lf2c, set F2CLIBS instad of + FLIBS, then set FLIBS to $F2CLIBS just before printing the summary. + Check for BLAS library calling convention compatibility. + + 2007-10-17 John W. Eaton + + * configure.in: Delete checks for METIS. + + 2007-10-12 John W. Eaton + + * mk-opts.pl (parse_input): Allow comment lines beginning with #. + + * Change copyright notices in all files that are part of Octave to + GPLv3 or any later version. + + * COPYING: Update to GPLv3. + + * run-octave.in: List args explicitly in exec command. + + 2007-10-11 John W. Eaton + + * config.guess, config.sub: Update from FSF sources. + + 2007-10-10 Kim Hansen + + * run-octave.in: Use $args. Eliminate "if [ -n "$args" ]" conditional. + + 2007-10-09 John W. Eaton + + * gdbinit.in: Delete. + * octMakefile.in (DISTFILES): Remove it from the list. + (.gdbinit): Delete rule. + (maintainer-clean, distclean): No need to delete .gdbinit. + + 2007-10-09 Kim Hansen + + * run-octave.in: Use gdb with --args, not .gdbinit. + + 2007-10-08 John W. Eaton + + * emacs/octave-hlp.el, emacs/octave-inf.el, emacs/octave-mod.el: + Sync with GNU Emacs versions. + * emacs/octave-mod.el: Delete last two args from calls to + define-abbrev. + + 2007-10-06 John W. Eaton + + * configure.in: Check for lgamma and tgamma. + + 2007-10-04 John W. Eaton + + * configure.in (UGLY_DEFS): Delete special case for darwin. + + 2007-10-03 John W. Eaton + + * aclocal.m4 (OCTAVE_PROG_SED): Also check for \(X\|Y\) style + regular expression alternation. + + 2007-10-01 John W. Eaton + + * aclocal.m4 (OCTAVE_CHECK_STRPTIME): Delete. + * configure.in: Don't use OCTAVE_CHECK_STRPTIME, simply check for + strptime. + + 2007-09-18 Thomas Treichl + + * aclocal.m4 (OCTAVE_CHECK_STRPTIME): New macro. + * configure.in: Use it. + + 2007-09-06 John W. Eaton + + * configure.in: Avoid broken strptime function on Cygwin systems. + + 2007-09-01 David Bateman + + * configure.in: AC_SUBST and check the variable TEXINFO_QHULL. + * Makeconf.in: Use it. + + 2007-08-24 David Bateman + + * configure.in: Extra Qhull bits. + + 2007-08-24 Kim Hansen + + * run-octave.in: Use `command` instead of $(command) to accomodate + brain-dead shells. + + 2007-08-24 David Bateman + + * configure.in: Probe for the use of Qhull. + * aclocal.m4 (AC_CHECK_QHULL_VERSION): Macro to check whether + Qhull needs a version number. + * Makeconf.in: Add QHULL_LIBS. + + 2007-08-23 John W. Eaton + + * aclocal.m4 (OCTAVE_PROG_SED): Don't clobber value from environment. + From: Christian Cornelssen . + + 2007-08-23 Thomas Weber + + * aclocal.m4 (OCTAVE_PROG_GNUPLOT): Drop check for multiple plot + windows. + + 2007-08-10 Sᅵren Hauberg + + * ROADMAP: Update for current sources. + + 2007-07-26 John W. Eaton + + * configure.in: Also look for glpk/glpk.h. + + 2007-07-25 David Bateman + + * octMakefile.in, dlfcn/Makefile.in, emacs/Makefile.in, + examples/Makefile.in, test/Makefile.in: Adjust DISTFILES to allow + out of tree "make dist" to work. + + 2007-07-24 Michael Goffioul + + * configure.in (*-*-msdosmsvc): Only add -g to DL_LDFLAGS and + SH_LDFLAGS if either CFLAGS or CXXFLAGS contains -g. + + 2007-07-24 Rafael Laboissiere + + * Makeconf.in (RUNTEST): Delete variable substitution. + (do-subst-config-vals): Don't substitute %OCTAVE_CONF_RUNTEST%. + + 2007-07-20 Thomas Treichl + + * mkoctfile.in: Fix typo. + + 2007-06-25 John W. Eaton + + * mk-opts.pl (emit_print_function): Make generated function print + to ostream (passed as arg) instead of local buffer. Don't call + print_usage in generated function. + (emit_options_function): Fix call to print_${class_name} in + generated to pass octave_stdout as arg. + + 2007-06-18 John W. Eaton + + * emacs/octave-inf.el (inferior-octave-prompt): Match "octave.bin" + and "octave.exe" in addition to "octave". + + 2007-06-15 John W. Eaton + + * run-octave.in: Use simple string concatenation instead of + sprintf in AWK program. + + 2007-06-13 Michael Goffioul + + * configure.in: Set NO_OCT_FILE_STRIP=true for msdosmsvc. + + * aclocal.m4 (OCTAVE_HDF5_DLL): Include return statements in + function body used for test. + + * configure.in: Check for CXSparse with C++. + + * Makeconf.in (do-subst-config-vals): Also substitute ${libdir} as + OCTAVE_CONF_LIBDIR. + * mkoctfile.in: Set DEFAULT_LIBDIR and substitute OCTAVE_HOME. + Define LIBDIR. Use LIBDIR to set DEFAULT_LFLAGS. + + 2007-06-12 Benjamin Lindner + + * configure.in: For mingw, add -lws2_32 -lkernel32 to LIBS and set + _USE_MATH_DEFINES same as for msvc. + + 2007-06-06 Michael Goffioul + + * configure.in: Check for utime.h and sys/utime.h headers. + Check for utime, _chmod, _utime, and _utime32 functions. + + 2007-06-03 David Bateman + + * configure.in (AC_CONFIG_FILES): Add src/mxarray.h + * examples/mycell.c, examples/mypow2.c, examples/mysparse.c, + examples/mystring.c, examples/mystruct.c: Use mwSize and mwIndex, + rather than int for indexing to conform to new mex API. + + 2007-06-01 John W. Eaton + + * configure.in (*-*-darwin*): Fix quoting and construction of + MKOCTFILE_DL_LDFLAGS. + * mkoctfile.in (DEFAULT_BINDIR, EXEEXT): New substitutions. + * Makeconf.in (MKOCTFILE_DL_LDFLAGS): Delete. + (do-subst-config-vals): Do configure substitution of + MKOCTFILE_DL_LDFLAGS directly here instead of using intermediate + variable. Quote this sed substitution with ' instead of ". + + 2007-05-29 Steven Mestdagh + + * configure.in: Delete spurious "break" in fftw3 check. + Use separate case for SH_LD and SH_LDFLAGS on openbsd. + + 2007-05-22 John W. Eaton + + * Makeconf.in (do-script-uninstall): Also remove directory. + + 2007-05-22 Thomas Weber + + * NEWS.2, README.MSVC, WWW/NEWS-2.html: Fix typos. + + 2007-05-16 David Bateman + + * PROJECTS: Update. + + 2007-04-27 John W. Eaton + + * examples/Makefile.in (SOURCES): Add all example files to the list. + + * octave-config.in: Don't set PREFIX to OCTAVE_HOME if OCTAVE_HOME + is empty. + + 2007-04-27 David Bateman + + * examples/mycell.c, examples/mypow2.c, examples/mystring.c, + examples/myprop.c: New example mex files. + + 2007-04-26 Alex Zvoleff + + * configure.in: Don't report ARPACK libraries in summary. + + 2007-04-25 David Bateman + + * Makeconf.in (do-subst-texinfo-vals): Also substitute abs_top_srcdir. + + * examples/myfunc.c, exampples/paramdemo.cc: New files + * examples/mystruct.c, examples/mysparse.c, fortdemo.cc: Fix a few + formatting issues when included in texinfo files. + + 2007-04-25 John W. Eaton + + * Makeconf.in (do-subst-texinfo-vals): Also substitute top_srcdir. + + * examples/addtwomatrices.cc, examples/celldemo.cc, + examples/fortdemo.cc, examples/funcdemo.cc, + examples/globaldemo.cc, examples/helloworld.cc, + examples/stringdemo.cc, examples/structdemo.cc, + examples/unwinddemo.cc, examples/fortsub.f, + examples/firstmexdemo.c: New files. + * examples/Makefile.in (SOURCES): Add them to the list. + + 2007-04-20 John W. Eaton + + * configure.in: Don't check for ARPACK. + + 2007-03-29 Rafael Laboissiere + + * emacs/octave-mod.el: Drop LOADPATH, INFO_FILE, and + INFO_PROGRAM from octave-variables. + + * examples/info-emacs-octave-help, examples/info-emacs-info: + Use gnuclient, not gnudoit. + + 2007-03-27 John W. Eaton + + * octMakefile.in (dist, conf-dist): Use ln, not $(LN_S). + * emacs/Makefile.in (dist): Likewise. + * examples/Makefile.in (dist): Likewise. + * dlfcn/Makefile.in (conf-dist): Likewise. + + * config.guess, config.sub: Update from FSF sources. + + 2007-03-23 John W. Eaton + + * examples/make_int.cc (octave_integer::clone): Return type is + pointer to octave_base_value, not octave_value. + (Fdoit): Rep is reference to octave_base_value, not octave_value. + + 2007-03-21 Paul Kienzle + + * octMakefile.in (all): Print message after successful build. + + 2007-03-05 John W. Eaton + + * configure.in (GLPK_PRE_4_14): Rename from GLPK_PRE_4_15. + + 2007-02-27 John W. Eaton + + * Makeconf.in (do-script-uninstall): Remove PKG_ADD. + * examples/Makefile.in (uninstall): Don't remove files listed in + $(SCRIPTS) from $(srcdir). + Remove www.octave.org-octave.desktop, not octave.desktop. + + * run-octave.in (run-octave.in): Use --no-initial-path. + Rename to qargs to args. Use $args not "$args" when invoking Octave. + Try harder to get quoting right when passing args to Octave. + + 2007-02-26 John W. Eaton + + * octMakefile.in (DISTDIRS): Eliminate variable. + + 2007-02-26 Michael Goffioul + + * octMakefile.in, dlfcn/Makefile.in, emacs/Makefile.in: + Use $(LN_S) instead of ln or ln -s. + + * octMakefile.in (dist): Use -9 instead of --best with gzip/bzip2. + + 2007-02-21 John W. Eaton + + * configure.in: Also warn about missing functionality for + --without-glpk or --without-curl options. Print curl library + warning in summary. + + 2007-02-20 Rafael Laboissiere + + * configure.in: Check for versions of GLPK prior to 4.15 and set + the GLPK_PRE_4_15 macro accordingly. + + 2007-02-16 John W. Eaton + + * mkoctfile.in: Use OCTAVE_PREFIX, not OCTAVE_CONF_PREFIX, in sed + substitutions. + * octave-conf.in: Define DATAROOTDIR, not DATADIR, from + OCTAVE_DATAROOTDIR. + From Michael Goffioul . + + 2007-02-15 John W. Eaton + + * octave-config.in (DATAROOTDIR): Include in list of vars. + Substitute OCTAVE_HOME. + + * Makeconf.in (MKOCTFILE_INCFLAGS, MKOCTFILE_LFLAGS): Delete vars. + (do-subst-config-vals): Don't substitute them. + Also substitute OCTAVE_CONF_INCLUDEDIR, OCTAVE_CONF_OCTINCLUDEDIR, + OCTAVE_CONF_OCTLIBDIR, and OCTAVE_CONF_PREFIX here. + * mkoctfile.in (OCTAVE_CONF_OCTINCLUDEDIR, OCTAVE_CONF_INCLUDEDIR, + OCTAVE_CONF_OCTLIBDIR): Substitute values and perform OCTAVE_HOME + substitution here. + (DEFAULT_INCFLAGS, DEFAULT_LFLAGS): New variables. Use them to + set default values for INCFLAGS and LFLAGS. + + 2007-02-09 John W. Eaton + + * mkoctfile.in: Handle .a files. + + 2007-02-08 John W. Eaton + + * octMakefile.in (all): Depend on dist-info-files. + (dist): Delete dist-info-files dependency. + + * configure.in: Rewrite if !( X ) ... fi as if X; true; else ... fi. + Also check for _glp_lpx_simplex. + + 2007-02-07 John W. Eaton + + * Makeconf.in (do-script-install): Use $(FCN_FILES) for list of + files instead of $(FCN_FILES_NO_DIR). Use basename to get + filename with no directory part. + + 2007-02-07 Michael Goffioul + + * aclocal.m4 (OCTAVE_HDF5_DLL): New macro. + * configure.in: Use it. + + 2007-02-05 John W. Eaton + + * configure.in: Check for realpath function. + + * demo.m: Delete obsolete file. + + 2007-01-29 Michael Goffioul + + * configure.in (*-*-msdosmsvc): Set NO_OCT_FILE_STRIP to true. + + 2007-01-24 John W. Eaton + + * octMakefile.in (install): Install NEWS file. + (uninstall): Remove it. + + 2007-01-08 David Bateman + + * configure.in: Replace sparsesuite with suitesparse to match + upstream name. + + 2006-12-06 Michael Goffioul + + * acx_blas.m4, acx_lapack.m4: Handle f2c calling convention. + + 2006-12-05 John W. Eaton + + * configure.in: Don't check for strptime on *-apple-darwin* systems. + + 2006-11-28 John W. Eaton + + * mkoctfile.in: Construct default output file from basename of + input file name. + + 2006-11-28 David Bateman + + * configure.in: Check for sparse header files in the sparsesuite + sub-directory. In the cholmod tests, include the camd libraries, as + this might be a dependency for cholmod. + + 2006-11-15 John W. Eaton + + * run-octave.in: Don't forget LD_PRELOAD if there are args. + + 2006-11-14 John W. Eaton + + * configure.in: If warning message is printed, print additional + final note about missing libraries. + + 2006-11-13 John W. Eaton + + * run-octave.in: Substitute liboctinterp, liboctave, and libcruft. + Use them to set LD_PRELOAD. + * Makeconf.in (do-subst-script-vals): Also substitute + liboctinterp, liboctave, and libcruft. + + 2006-11-13 Rafael Laboissiere + + * mkoctfile.in: Add -Wl,... options to ldflags, not pass_on_flags. + + 2006-11-11 John W. Eaton + + * examples/Makefile.in (octave.desktop): + Use $(simple-move-if-change-rule) here. + + * Makeconf.in (simple-move-if-change-rule, + (builddir-move-if-change-rule): New macros. + + 2006-11-11 Sᅵren Hauberg + + * examples/Makefile.in (uninstall): Add missing semicolon. + + 2006-11-09 John W. Eaton + + * examples/Makefile.in (uninstall): New target. + + 2006-11-09 Michael Goffioul + + * configure.in (OCTAVE_LOCAL_BUFFER): Don't access first element + if size is 0. + + 2006-11-06 Michael Goffioul + + * configure.in (CRUFT_DLL_DEFS, OCTAVE_DLL_DEFS, OCTINTERP_DLL_DEFS): + Also rename in AC_SUBST calls. + * Makeconf.in (ALL_CFLAGS): Use DLL_CDEFS instead of XTRA_CDEFS. + (ALL_CXXFLAGS): Use DLL_CDEFS instead of XTRA_CXXDEFS. + + 2006-11-03 John W. Eaton + + * configure.in (CRUFT_DLL_DEFS): Rename from XTRA_CRUFT_DEFS. + (OCTAVE_DLL_DEFS): Rename from XTRA_OCTAVE_DEFS. + (OCTINTERP_DLL_DEFS): Rename from XTRA_OCTINTERP_DEFS. + (XTRA_CRUFT_LINK_FLAGS): Rename from XTRA_CRUFT_LINK_DEPS. + + 2006-11-02 John W. Eaton + + * README.Cygwin: Rename from README.Windows. + * README.MSVC: New file. + * README.Windows: Point to the README.Cygwin and README.MSVC files. + + 2006-11-01 John W. Eaton + + * configure.in: Check for PCRE macros we use. Warn if regex + library is not found. Print hdf5, zlib, umfpack, colamd, ccolamd, + cholmod, and cxsparse warnings when we detect the problems. + + * run-octave.in: Handle quoted args properly in exec call? + + 2006-10-29 John W. Eaton + + * run-octave.in: Handle spaces in directory names. + + 2006-10-28 Michael Goffioul + + * configure.in (AH_BOTTOM): If using MSVC, define __WIN32__ before + other #ifdefs that use it. + + 2006-10-27 John W. Eaton + + * configure.in (AH_BOTTOM): Move DLL defs to + libcruft/misc/oct-dlldefs.h and include it here. + + * aclocal.m4 (OCTAVE_PROG_TEXI2PDF): Require OCTAVE_PROG_TEXI2DVI. + If texi2pdf is not found but texi2dvi is available, set TEXI2PDF + to "$TEXI2DVI --pdf". + (OCTAVE_PROG_GHOSTSCRIPT): Also check for gswin32 on Windows systems. + + * Makeconf.in (UNSETCOMSPEC): Define if COMSPEC is defined. + From Michael Goffioul . + + 2006-10-26 John W. Eaton + + * configure.in (OCTAVE_EXPORT, OCTAVE_IMPORT): New macros + (CRUFT_API, OCTAVE_API, OCTINTERP_API): Define using OCTAVE_EXPORT + and OCTAVE_IMPORT. + + 2006-10-26 Michael Goffioul + + * configure.in (*-*-msdosmsvc): Set library_path_var. + Check for _WIN32_WINNT >= 0x0403. Define _USE_MATH_DEFINES if it + is needed. + (XTRA_CRUFT_LINK_DEPS): New variable. Substitute it. + + * aclocal.m4 (OCTAVE_MKDIR_TAKES_ONE_ARG): Perform check with C++ + compiler. + + 2006-10-26 John W. Eaton + + * aclocal.m4 (OCTAVE_PROG_PAGER): Also check for more.com for + *-*-mingw* and *-*-msdosmsvc systems. + + * configure.in (F77_TOLOWER, F77_APPEND_UNDERSCORE, + F77_APPEND_EXTRA_UNDERSCORE): New variables. Substitute them. + * Makeconf.in (F77_TOLOWER, F77_APPEND_UNDERSCORE, + F77_APPEND_EXTRA_UNDERSCORE): Substitute here. + (do-subst-f77-mangling): New macro. + + * emacs/octave-inf.el (inferior-octave-has-built-in-variables): + New defvar. + (inferior-octave-resync-dirs): Check to see whether Octave has + built-in variables and set inferior-octave-has-built-in-variables. + Check inferior-octave-has-built-in-variables to decide whether to + send commands that set built-in variables or call functions to + change Octave's behavior. + Send "disp (pwd ())" to Octave instead of just "pwd". + (inferior-octave-startup): Send "more off" to Octave instead of + "page_screen_output = 0". + + 2006-10-25 John W. Eaton + + * configure.in (RETSIGTYPE_IS_VOID): Define if + "$ac_cv_type_signal" = "void". + + * configure.in (*-*-msdosmsvc): Don't check for strftime. + + * configure.in (INCLUDE_DEPS): Set and substitute. + (DEPEND_FLAGS, DEPEND_EXTRA_SED_PATTERN): Rearrange way these are set. + + * Makeconf.in (INCLUDE_DEPS): Substitute here, and use to set default + value for omit_deps. + + 2006-10-25 Michael Goffioul + + * Makeconf.in (ALL_CFLAGS): Include $(XTRA_CDEFS) in the list. + (ALL_CXXFLAGS): Include $(XTRA_CXXDEFS) in the list. + + * configure.in (XTRA_CRUFT_DEFS, XTRA_OCTAVE_DEFS, + XTRA_OCTINTERP_DEFS): Define and substitute. + (AH_BOTTOM) [_MSC_VER]: include definitions for CRUFT_API, + OCTAVE_API, and OCTINTERP_API. + + * configure.in (*-*-msdosmsvc): Add "-EHs -MD" to CXXFLAGS. + Add "-MD" to CFLAGS. Add "-MD" to CONFLIB_ARG when checking for + libf2c. + + * configure.in (*-*-msdosmsvc): Generate replacement unistd.h. + * octMakefile.in (maintainer-clean, distclean): Also remove unistd.h. + + * configure.in (*-*-msdosmsvc): Default sepchar is ';'. + Define default LIBS (link against kernel32 and ws2_32). + Force having LoadLibrary API. + + * configure.in (AH_BOTTOM) [_MSC_VER]: Define __WIN32__. + + 2006-10-25 John W. Eaton + + * mkoctfile.in (OCTAVE_VERSION): No need to quote replacement here. + + 2006-10-24 John W. Eaton + + * run-octave.in: Only modify .gdbinit if -g option is given. + Use $(/bin/pwd) instead of $(pwd). + + 2006-10-23 John W. Eaton + + * emacs/Makefile.in (SOURCES, DISTFILES, install, install-strip, + uninstall): Handle otags name change. + * emacs/octave-tags, emacs/octave-tags.1: Rename from otags. + + 2006-10-17 John W. Eaton + + * configure.in: Check for _isnan, _finite, and _copysign. + + 2006-10-17 Michael Goffioul + + * aclocal.m4 (OCTAVE_CXX_PREPENDS_UNDERSCORE, OCTAVE_CXX_ABI): Use + $ac_objext instead of assuming .o. + (OCTAVE_PROG_GNUPLOT): Handle *-*-msdos the same as *-*-cygwin* + and *-*-mingw32*. + + 2006-10-17 John W. Eaton + + * configure.in: Check for curl_easy_escap instead of + curl_global_init. + + 2006-10-13 Michael Goffioul + + * configure.in [_MSC_VER]: Disable some warnings. + (*-*-msdos): New case for shared libraries. + (LIBPRE): New variable. + * Makeconf.in: Substitute it. + + 2006-10-12 John W. Eaton + + * configure.in (AH_BOTTOM): Don't unconditionally #define + OCTAVE_HAVE_POSIX_FILESYSTEM followed by a conditional #undef + OCTAVE_HAVE_POSIX_FILESYSTEM since autoconf is commenting out the + #undef. + + 2006-10-09 John W. Eaton + + * Makeconf.in (CURL_LIBS, do-subst-config-vals): + Substitute CURL_LIBS. + + * configure.in: Check for libcurl. + + 2006-10-04 John W. Eaton + + * Makeconf.in (library_path_var): Substitute value from configure. + (do-subst-script-vals): Add library_path_var to the list. + * run-octave.in: Substitute value here. + + 2006-10-03 John W. Eaton + + * configure.in: Warn if PCRE library is not found. + + * configure.in: Include CAMD_LIBS, AMD_LIBS, and REGEX_LIBS in the + summary. + + 2006-10-03 David Bateman + + * configure.in: Check for libcamd. + * Makeconf.in (CAMD_LIBS): New variable. + + 2006-09-27 John W. Eaton + + * mkoctfile.in [--mex]: Include -I. in incflags. + From Sᅵren Hauberg . + + 2006-09-26 John W. Eaton + + * configure.in (AC_CONFIG_FILES): + Remove doc/interpreter/images/Makefile from the list. + + 2006-09-16 John W. Eaton + + * octave-bug.in: Delete LIBPLPLOT variables. + + 2006-09-15 John W. Eaton + + * configure.in: Check for locale.h and setlocale. + + 2006-09-13 Christopher Hulbert + + * run-octave.in (LD_LIBRARY_PATH): Also append LD_LIBRARY_PATH + from environment. + + 2006-08-25 Alexander Barth + + * mkoctfile.in: Accept .f90 and .F90 as Fortran files. + Pass $incflags and $defs to Fortran compiler. + + 2006-08-18 John W. Eaton + + * Makeconf.in (do-subst-texinfo-vals): Don't substitute + %CANONICAL_HOST_TYPE%. + + 2006-08-17 John W. Eaton + + * aclocal.m4 (OCTAVE_PROG_GHOSTSCRIPT, OCTAVE_PROG_MAKEINFO, + OCTAVE_PROG_TEXI2DVI, OCTAVE_PROG_TEXI2PDF): New macros. + * configure.in: Use them. Maybe print warnings in summary. + + 2006-07-27 John W. Eaton + + * Makeconf.in (localapiarchlibdir): Substitute it here. + (do-subst-default-vals): Include it in the sed command here. + * configure.in (localapiarchlibdir): New variable. + * octave-config.in: Don't quote %VAR% values. + (LOCALAPIARCHLIBDIR): New variable. + + 2006-07-27 Thomas Weber + + * octave-config.in (OCTAVE_FCNFILEPATH, OCTAVE_IMAGEPATH, + OCTAVE_LOCALFCNFILEPATH, OCTAVE_LOCALOCTFILEPATH): Delete variables. + + 2006-07-26 John W. Eaton + + * mkoctfile.in (Options): Accept -g. + + * configure.in: Check for exp2 and log2. + + 2006-07-25 David Bateman + + * mysparse.c: New file. + + 2006-06-27 John W. Eaton + + * octMakefile.in (maintainer-clean distclean): Remove + $(SHELL_SCRIPTS) instead of naming files individually. + Also remove .gdbinit. + + 2006-06-21 John W. Eaton + + * examples/myfeval.c, examples/myfevalf.f, examples/myhello.c, + examples/myset.c, examples/mystruct.c: New files. + + * mkoctfile.in: New option, --mex. + + 2006-06-13 John W. Eaton + + * configure.in (--enable-64): Include "(EXPERIMENTAL)" in help text. + Also set warn_64_bit if no suitable type for octave_idx_type is found. + If --enable-64 is specified, print warning in summary message. + + 2006-06-12 John W. Eaton + + * aclocal.m4 (OCTAVE_CXX_BROKEN_REINTERPRET_CAST): New macro. + * configure.in: Use it. + * AH_BOTTOM: Conditionally define FCN_PTR_CAST here. + + 2006-06-08 John W. Eaton + + * Makeconf.in (do-subst-default-vals): Also substitute + OCTAVE_DATAROOTDIR. + + 2006-06-06 John W. Eaton + + * Makeconf.in (datarootdir): New variable. + + * acx_lapack.m4 (acx_lapack_ok): + Use AC_LINK_IFELSE+AC_LANG_PROGRAM instead of AC_TRY_LINK + + * aclocal.m4: Use AC_RUN_IFELSE+AC_LANG_SOURCE instead of AC_TRY_RUN. + + * acx_blas.m4, acx_lapack.m4, configure.in, aclocal.m4: + Use AS_HELP_STRING instead of AC_HELP_STRING. + + * configure.in: Outside of other macros, use AC_MSG_NOTICE instad + of AC_MSG_RESULT. Check for sys_siglist using method from + autoconf manual. + + * configure.in, Makeconf.in: octMakefile.in: Delete plplot cruft. + + * configure.in, aclocal.m4: + Use AC_LINK_IFELSE+AC_LANG_PROGRAM instead of AC_TRY_LINK + Use AC_COMPILE_IFELSE+AC_LANG_PROGRAM instead of AC_TRY_COMPILE. + Use AS_HELP_STRING consistently with AC_ARG_WITH and AC_ARG_ENABLE. + + 2006-05-23 John W. Eaton + + * configure.in: Check for inttypes.h and stdint.h. + + 2006-05-19 John W. Eaton + + * mk-opts.pl (emit_print_function, emit_options_function): + Generate print_usage calls with no args. + + 2006-05-11 John W. Eaton + + * configure.in (localfcnfilepath, localoctfilepath, fcnfilepath, + imagepath): Delete variables. + * Makeconf.in (localfcnfilepath, localoctfilepath, fcnfilepath, + imagepath): Likewise. + (do-subst-default-vals): Don't substitute them. + + * run-octave.in: Pass --image-path to octave. + Use find to recursively add directories to loadpath. + Fixup set args command in .gdbinit here. + + 2006-05-09 John W. Eaton + + * octMakefile.in (abs_top_srcdir): Substitute value here. + + 2006-05-05 David Bateman + + * Makeconf.in (do-subst-scripts-vals): Also replace + abs_top_srcdir. + * run-octave.in: Define top_srcdir as an absolute path. + + 2006-05-04 John W. Eaton + + * octMakefile.in (SHELL_SCRIPTS): Include run-octave in the list. + + 2006-05-02 John W. Eaton + + * NEWS: New contents for 3.0. + * NEWS.2: Move contents of NEWS here. + + 2006-04-29 John W. Eaton + + * run-octave.in: Execute $builddir/src/octave, not src/octave. + + 2006-04-26 Thomas Weber + + * configure.in: Fix apiversion vs. api_version typo. + + 2006-04-25 John W. Eaton + + * Makefile.in (TARGETS): Include run-octave and .gdbinit in the list. + * Makeconf.in (subst-script-vals): New macro. + * octMakefile.in (run-octave, .gdbinit): New rules. + (DISTFILES): Include run-octave.in and gdbinit.in in the list. + + 2006-04-17 John W. Eaton + + * mk-opts.pl (emit_print_function): Emit code that uses + std::ostringstream directly. + + 2006-04-13 John W. Eaton + + * configure.in (CONST_CAST, DYNAMIC_CAST, REINTERPRET_CAST, + STATIC_CAST): Delete. + + 2006-04-12 John W. Eaton + + * configure.in: If using g++, also add -Wold-style-cast to CXXFLAGS. + + 2006-03-28 John W. Eaton + + * configure.in: Don't check for MPI libraries. + + 2006-03-27 John W. Eaton + + * configure.in: Downcase ac_cv_header_mach_o_dyld_h. + From Martin Costabel . + + 2006-03-22 John W. Eaton + + * Makeconf.in: (TEXINFO_COLAMD, TEXINFO_CHOLMOD, TEXINFO_UMFPACK): + Substitute here. + (do-subst-texinfo-vals): New macro definition. + + * configure.in: Don't substitute OCTAVE_VERSION, OCTAVE_HOSTTYPE, + or OCTAVE_HOME. + (AC_CONFIG_FILES): Remove doc/conf.texi from the list. + + 2006-03-21 John W. Eaton + + * configure.in: Only print warnings for missing functionality in + summary message. + + 2006-03-14 John W. Eaton + + * mk-opts.pl (emit_print_function): Buffer extra message here and + pass to print_usage. + + 2006-03-09 John W. Eaton + + * Makeconf.in (do-subst-default-vals): Also substitute OCTAVE_RELEASE. + + 2006-03-08 David Bateman + + * configure.in: Update the test for CXSPARSE for new upstream release. + (OCTAVE_VERSION, OCTAVE_HOSTTYPE, OCTAVE_HOME,TEXINFO_UMFPACK, + TEXINFO_COLAMD, TEXINFO_CHOLMOD): New variables for texinfo + documentation. + (AC_CONFIG_FILES): Add doc/interpreter/images/Makefile and + doc/conf.texi. + + 2006-03-02 Kurt Hornik + + * emacs/octave-mod.el (octave-indent-for-comment): Make the code + match the comments. + + 2006-03-02 John W. Eaton + + * octMakefile.in (ALL_SUBDIRS): Delete. + (SUBDIRS): Include src here. + (SHELL_SCRIPTS): New variable. + (all): Depend on $(SHELL_SCRIPTS) and $(SUBDIRS) with libcruft and + liboctave filtered out. + (src): Depend on liboctave. + (liboctave): Depend on libcruft. + + 2006-02-09 David Bateman + + * configure.in: Fix for probe of colamd, cccolamd and metis. New test + for the presence of cxsparse. + Makeconf.in: Include CXSPARSE_LIBS. + + 2006-01-19 John W. Eaton + + * configure.in: Use $WITH_PCRE instead of $HAVE_PCRE in shell test. + + 2006-01-14 John W. Eaton + + * configure.in: Check for mach-o/dyld.h, not Mach-O/dyld.h. + From Martin Costabel . + + 2006-01-13 John W. Eaton + + * Makeconf.in (do-mkpkgadd): New macro. + + 2005-12-14 David Bateman + + * Makeconf.in: Remove OCTAVE_PROG_RUNTEST. + * alocal.m4: Remove OCTAVE_PROG_RUNTEST. + + * Makeconf.in: New tests of regex and pcre. + + 2005-12-13 John W. Eaton + + * examples/Makefile.in (install install-strip): Fix typo. + From William Poetra Yoga Hadisoeseno . + + 2005-12-05 Kurt Hornik + + * emacs/octave-inf.el (inferior-octave-startup): + Force a non-empty string for secondary prompt PS2. + + 2005-12-02 John W. Eaton + + * emacs/octave-mod.el (octave-electric-space): Don't indent + comments or strings if octave-auto-indent is nil. + + 2005-11-30 John W. Eaton + + * examples/Makefile.in (install install-strip): Install images and + desktop file. + + 2005-11-29 Rafael Laboissiere + + * emacs/octave-mod.el: Ensure that key bindings for + octave-mark-defun and backward-kill-word work in both XEmacs and + GNU Emacs. + + 2005-11-28 John W. Eaton + + * configure.in: Check for uname. + + 2005-11-21 John W. Eaton + + * examples/Makefile.in (DISTFILES): Don't include octave.desktop here. + (distclean): Remove octave.desktop here. + (maintainer-clean): Not here. + + 2005-11-01 John W. Eaton + + * examples/Makefile.in (distclean, maintainer-clean): + Also remove octave.desktop. + From Quentin Spencer . + + 2005-11-01 Quentin Spencer + + * octMakefile.in (CONF_DISTFILES): Delete acx_include_dirs.m4 from + the list. + + 2005-10-28 John W. Eaton + + * configure.in (AC_ARG_WITH(cholmod, ...)): Fix typo. + From Quentin Spencer and + Andy Adler . + + 2005-10-26 John W. Eaton + + * configure.in, aclocal.m4: Don't quote "yes". + + * configure.in: Print warning messages for umfpack, colamd, + ccolamd, and cholmod as we are searching. Avoid multiple + definitions of message strings. + + * aclocal.m4 (OCTAVE_UMFPACK_SEPERATE_SPLIT): + Use new method of finding umfpack.h. + * configure.in: Use AC_CHECK_HEADERS instead of + ACX_CHECK_HEADER_IN_DIRS. + (AC_CONFIG_FILES): Delete liboctave/oct-sparse.h from the list. + + * acx_include_dirs.m4: Delete. + + 2005-10-26 Arno J. Klaassen + + * configure.in [*-*-freebsd*] (SH_LDFLAGS): Properly quote. + (RLD_FLAG): Set. + + 2005-10-23 David Bateman + + * configure.in (OCTAVE_UMFPACK_SEPERATE_SPLIT): Check for metis + separately. + * PROJECTS: Remove completed sparse matrix tasks. + + 2005-10-17 Paul Kienzle + + * octave.test/system/system.exp: rmdir no longer prints a + message if the directory does not exist. + + * octave.test/system/mk-rm-dir-1.m: mkdir/rmdir return 1 + on success and 0 on failure. + + 2005-10-17 John W. Eaton + + * configure.in (F77_FFLOAT_STORE_FLAG): + Check for -ffloat-store option for Fortran compiler and set + F77_FLOAT_STORE_FLAG if it works. + * Makeconf.in: Substitute it here. + (do-subst-config-vals): Substitute OCTAVE_CONF_F77_FLOAT_STORE_FLAG. + + 2005-10-14 John W. Eaton + + * aclocal.m4 (OCTAVE_PROG_PYTHON): New macro. + * configure.in: Use it. + * Makeconf.in (PYTHON): Substitute it. + + 2005-10-05 David Bateman + + mkoctfile.in: allow -idirafter argument. + + 2005-09-23 John W. Eaton + + * examples/Makefile.in (install install-strip): + Conditionally install octave.desktop. + (IMAGE_FILES, IMAGE_FILES_NO_DIR): New macros. + (DISTFILES): Include IMAGE_FILES in list. + (install install-strip): Install image file. + + * aclocal.m4 (OCTAVE_PROG_DESKTOP_FILE_INSTALL): New macro + * configure.in: Use it. + * Makeconf.in: Substitute DESKTOP_FILE_INSTALL. + + * octave.desktop.in: New file. From Sᅵren Hauberg . + * examples/Makefile.in (SOURCES): Add it to the list. + (octave.desktop): New target. + (all): Depend on octave.desktop. + + 2005-09-22 John W. Eaton + + * aclocal.m4 (OCTAVE_PROG_PERL): New macro. + * configure.in: Use it. + * Makeconf.in (PERL): Substitute it. + + * config.guess, config.sub: Update from FSF sources. + + 2005-09-19 David Bateman + + * octMakefile.in (LN_S): Change to DESTDIR before LN_S to avoid + lack of symlinks under mingw. + + 2005-09-15 John W. Eaton + + * oct-sparse.h.in: Move to liboctave. + * octMakefile.in (CONF_DISTFILES): Delete it from the list. + (maintainer-clean, distclean, install, install-strip, uninstall): + Omit rules for oct-sparse.h. + * configure.in: Substitute liboctave/oct-sparse.h, not oct-sparse.h. + + 2005-09-15 David Bateman + + * acx_include_dirs.m4 (AC_CHECK_HEADER_IN_DIRS): Define new macro. + * oct-sparse.h.in: New AC_CONFIG_FILE. + * configure.in: (AC_CHECK_HEADER_IN_DIRS): Use macro. + (AMD_LIBS, COLAMD_LIBS, CCOLAMD_LIBS, CHOLMOD_LIBS): Probe for + these sparse library in addition to UMFPACK. + (UMFPACK_INCLUDE, AMD_INCLUDE, COLAMD_INCLUDE, CCOLAMD_INCLUDE): + AC_SUBST into oct-sparse.h. + (LIBGLOB): Probe for external glob/fnmatch, define LIBGLOB. + (sepchar): Define path seperation character in system dependent + manner. Use it with OCTAVE_SET_DEFAULT. + (SEPCHAR, SEPCHAR_STR): Dpend on sepchar. + (DL_LDFLAGS): Define for cygwin and mingw. + (-lwsock32): Add to LIBS. + (loadlibrary_api): Set for mingw/cygwin and autoconf test appears + broken. + * Makeconf.in: Don't use ";" as sed seperation to avoid confusion + with sepchar. + (LIBGLOB, AMD_LIBS, COLAMD_LIBS, CCOLAMD_LIBS, CHOLMOD_LIBS, + sepchar): Substitute. + * octMakefile.in: (CONF_DISTFILES): Add acx_include_dirs.m4 and + oct-sparse.h.in + (oct-sparse.h): Include in install and clean directives + + 2005-08-31 Pascal A. Dupuis + + * emacs/octave-inf.el (inferior-octave-startup): Call + inferior-octave-resync-dirs here. + + 2005-07-14 John W. Eaton + + * configure.in (SH_LDFLAGS): Add -Wl,--enable-auto-image-base for + Cygwin and MinGW. + + 2005-06-14 John W. Eaton + + * configure.in (AH_BOTTOM): Also define GCC_ATTR_DEPRECATED. + + 2005-06-02 John W. Eaton + + * Makeconf.in (do-subst-default-vals): Substitute + ${localstartupfiledir}, not ${localstartupfile} (which is undefined). + + 2005-05-16 David Bateman + + * configure.in: Change UMFPACK_LONG_IDX to IDX_TYPE_LONG. + + 2005-05-04 John W. Eaton + + * configure.in (AC_CHECK_LIB($zlib_lib, ...)): Check for + gzclearerr instead of deflate. + + 2005-05-02 John W. Eaton + + * configure.in (AC_ARG_WITH(umfpack)): List -lumfpack ahead of -lamd. + From Dmitri A. Sergatskov . + + 2005-04-29 David Bateman + + * configure.in: Add UMFPACK_LONG_IDX + + 2005-04-21 John W. Eaton + + * configure.in (AC_CONFIG_FILES): Remove install-octave from the list. + (AH_BOTTOM): Define SIZEOF_OCTAVE_IDX_TYPE. + + 2005-04-14 John W. Eaton + + * mkoctfile.in: Only perform link step if we have some object files. + If only -v or --version is supplied, print version info and exit. + + 2005-04-08 John W. Eaton + + * octMakefile.in (maintainer-clean distclean): + Remove install-octave from the list of files to remove. + (install-octave.in): Delete file. + (DISTFILES): Remove it from the list. + + * Initial merge of 64-bit changes from Clinton Chee: + + 2005-04-07 John W. Eaton + + * configure.in (--enable-64): Make default disabled. + + 2005-04-06 John W. Eaton + + * mk-opts.pl (emit_show_function, emit_set_functions, + emit_print_function): Also accept "octave_idx_type" and + "Array". + + 2005-04-01 John W. Eaton + + * Makeconf.in (USE_64_BIT_IDX_T): Substitute value. + (do-subst-config-vals): Add to list of substitutions. + + * configure.in (AC_CONFIG_FILES): Perform substitutions on + liboctave/oct-types.h too. + Handle --enable-64. + + 2005-04-06 David Bateman + + * configure.in: Split the HDF5 and zlib detection code, so that zlib + can be used for compressed load/save in the absence of HDF5. + + * Makeconf.in: Define UMFPACK_LIBS. + + * Configure.in: Slightly alter the UMFPACK detection code so that it + correctly detects cblas bindings or not. + + 2005-03-22 John W. Eaton + + * Makeconf.in (GLPK_LIBS): Substitute value. + (do-subst-config-vals): Add to list of substitutions. + + * configure.in: Check for glpk. + + * emacs/octave-mod.el (octave-abbrev-table): Omit fifth and sixth + arguments from define-abbrev for compatibility with some older + versions of Emacs. + + 2005-03-21 John W. Eaton + + * octave-bug.in: Try harder to find default pager (use code + similar to that used for finding default editor). + + 2005-03-17 Shan G. Smith + + * configure.in: Move check for -lumfpack to after check for blas. + + 2005-03-17 John W. Eaton + + * configure.in: If first check for -lumfpack fails try again with + -lcblas as an additional library. + + * configure.in: Change defaults to enable shared libraries and + dynamic linking and disable static libraries. + + 2005-03-15 John W. Eaton + + * octMakefile.in (DISTFILES): Remove texi2dvi from the list. + + * emacs/octave-inf.el, emacs/octave-mod.el, emacs/octave-hlp.el: + Import changes from Emacs. + + 2005-03-14 Rafael Laboissiere + + * emacs/octave-mod.el (octave-end-keywords): Omit "end" from the list. + (octave-reserved-words): Include "end" here. + (octve-block-match-alist): Don't include "end" here. + + 2005-03-14 John W. Eaton + + * configure.in: Check for umfpack/umfpack.h instead of just umfpack.h. + + 2004-06-22 David Bateman + + * configure.in: Check for UMFPACK library and header files. + + 2005-03-14 John W. Eaton + + * configure.in: Also print a warning if HDF5 library is not found. + + 2005-03-10 John W. Eaton + + * mkoctfile.in: Accept -R DIR. + + 2005-03-09 John W. Eaton + + * examples/Makefile.in (bin-dist): Delete target. + (BINDISTFILES): Delete variable. + * emacs/Makefile.in: Likewise. + + * octMakefile.in (VERSION, ARCH, binary-dist): Delete targets. + (XBINDISTFILES, BINDISTFILES, BINDISTSUBDIRS): Delete variables. + + 2005-03-04 John W. Eaton + + * configure.in (GXX_PICKY_FLAGS): Don't include + -Wmissing-prototypes or -Wstrict-prototypes. + + 2005-03-02 John W. Eaton + + * aclocal.m4 (OCTAVE_CC_FLAG, OCTAVE_CXX_FLAG, OCTAVE_F77_FLAG): + Use AC_LINK_IFELSE instead of AC_TRY_LINK. + + * configure.in (OCTAVE_LOCAL_BUFFER): Use < T > instead of . + From Clinton Chee . + + 2005-03-01 John W. Eaton + + * configure.in (AC_CONFIG_FILES): Remove libcruft/odessa/Makefile + from the list. + + 2005-03-01 Todd Neal + + * examples/make_int.cc: DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA now + takes three arguments. + + * octMakefile.in (SUBDIRS, CLEANSUBDIRS): + Remove @GLOB_DIR@ from the list. + + 2005-02-28 John W. Eaton + + * octMakefile.in (DISTDIRS): Remove glob from the list. + (dist): No need to clean up in glob subdirectory. + * glob: Delete directory. + * Makeconf.in (GLOB_INCFLAGS, LIBGLOB): Delete. + (do-subst-config-vals): Don't substitute them. + (INCFLAGS): Remove $(GLOB_INCFLAGS) from the list. + * configure.in: Don't test for glob or fnmatch. + + 2005-02-22 Shan G. Smith + + * mkoctfile.in: If not linking, then use output file name + specified with -o. + + 2005-02-21 John W. Eaton + + * texi2dvi: Delete our private version. + + * Makeconf.in (MAKEINFO): Define. + (TEXI2DVI): Define as texi2dvi, not $(top_srcdir)/texi2dvi. + + 2005-02-09 John W. Eaton + + * configure.in: Check for canonicalize_file_name and resolvepath. + + 2005-02-02 John W. Eaton + + * config.guess, config.sub: Update from FSF sources. + + 2005-01-18 John W. Eaton + + * octave-bug.in: Try harder to find default editor (stolen from + bashbug). + + 2004-12-17 John W. Eaton + + * configure.in: Use AC_GNU_SOURCE. + + 2004-12-17 Orion Poplawski + + * configure.in: Also check for signbit decl. + + 2004-12-03 John W. Eaton + + * aclocal.m4 (OCTAVE_PROG_GPERF): Check with -L C++, not -L ANSI_C. + * Makefile.in (header-msg): Change recommended gperf version to + 3.0.1 or more recent. + + 2004-11-12 John W. Eaton + + * Back off on -ffloat-store until we decide whether it is really + necessary. + + 2004-11-11 John W. Eaton + + * (OCTAVE_PROG_GNUPLOT): Don't set GNUPLOT_BINARY before calling + AC_CHECK_PROGS(GNUPLOT_BINARY, ...). + + * configure.in: Use it to see if the C, C++, and Fortran compilers + accept -ffloat-store. + * aclocal.m4 (OCTAVE_F77_FLAG): New macro. + + 2004-09-08 John W. Eaton + + * configure.in (GXX_PICKY_FLAGS): Remove -fno-nonnull-objects. + (GCC_PICKY_FLAGS): Remove -Wnested-externs -Wid-clash-31. + From Quentin Spencer . + + * configure.in (GCC_PICKY_FLAGS): Remove -Winline. + + 2004-09-07 John W. Eaton + + * configure.in: Check for round. + + 2004-06-22 David Bateman + + * configure.in: Use -Wl,-Bsymbolic for MKOCTFILE_DL_LDFLAGS on + GNU/Linux systems but not for SH_LDFLAGS. + + 2004-04-22 John W. Eaton + + * configure.in: Add -Wl,-Bsymbolic to SH_LDFLAGS for GNU/Linux + systems. From Fredrik Lingvall . + + * mkoctfile.in: Allow -Wx,option style options to be passed to the + compiler. From Al Niessner . + + 2004-04-06 John W. Eaton + + * configure.in: Delete code for --with-ieee754. + Use OCTAVE_IEEE754_DATA_FORMAT. + + * aclocal.m4 (OCTAVE_IEEE754_DATA_FORMAT): New macro, based on + configure.in code for HAVE_IEEE754_COMPLIANCE. + + 2004-04-06 David Bateman + + * configure.in : add the option --with-ieee754 and use it to define + HAVE_IEEE754_COMPLIANCE + + 2004-04-02 David Bateman + + * configure.in: Warn about g++ 2.9x versions. + + 2004-04-01 John W. Eaton + + * octMakefile.in (dist): Also make bz2 file and compute md5 + checksums of both gz and bz2 files. + + 2004-03-04 John W. Eaton + + * configure.in: No longer accept --with-g77 (it is still possible + to use --with-f77=g77). + + 2004-03-03 John W. Eaton + + * configure.in: Check for -mieee instead of -mieee-with-inexact. + + 2004-02-20 Per Persson + + * mkoctfile.in (LINK_DEPS): Include $LDFLAGS in the list. + + 2004-02-18 Per Persson + + * configure.in (*-*-darwin*): Define SONAME_FLAGS. + + 2004-02-16 David Bateman + + * configure.in: Test for the presence of FFTW 3.x and use it in + preference to FFTW 2.x. Define HAVE_FFTW3 + + 2004-02-16 John W. Eaton + + * mkoctfile.in (LINK_DEPS): Include $LIBS and $RLD_FLAG. + Use $OCTAVE_LIBS instead of listing libs individually. + + 2004-02-14 John W. Eaton + + * mkoctfile.in: Delete INCLUDE_LINK_DEPS. Fix help text. + Always define LINK_DEPS. + (LINK_DEPS): Also include FLIBS in the list. + + * Makeconf.in (INCLUDE_LINK_DEPS): Don't substitute. + (do-subst-config-vals): Delete INCLUDE_LINK_DEPS. + * configure.in (INCLUDE_LINK_DEPS): Delete. + + * mkoctfile (SH_LD, SH_LDFLAGS): Delete. + (DL_LD, DL_LDFLAGS): New variables. Use them instead of SH_LD and + SH_LDFLAGS for creating .oct files. + Fix help text. + + * configure.in (MKOCTFILE_SH_LDFLAGS): Delete. + (MKOCTFILE_DL_LDFLAGS): New variable, default to DL_LDFLAGS. + + * Makeconf.in (do-subst-config-vals): Add DL_LD, DL_LDFLAGS, and + MKOCTFILE_DL_LDFLAGS to the list of substitutions. + Delete MKOCTFILE_SH_LDFLAGS. + + 2004-02-14 Per Persson + + * configure.in (DL_LD, DL_LDFLAGS): New variables, default to + SH_LD and SH_LDFLAGS, respectively. + Define independently for SH_LD and SH_LDFLAGS for *-*-darwin* targets. + * Makeconf.in (DL_LD, DL_LDFLAGS): Substitute them here. + + 2004-02-13 John W. Eaton + + * Makefile.in (header-msg): Required bison version now 1.31 or later. + + 2004-01-29 John W. Eaton + + * emacs/octave-mod.el: If line-end-position is not defined, + provide it as an alias for point-at-eol. + + 2004-01-24 John W. Eaton + + * emacs/octave-mod.el: If line-beginning-position is not defined, + provide it as an alias for point-at-bol. + + 2004-01-23 John W. Eaton + + * configure.in (AH_BOTTOM): + Define OCTAVE_LOCAL_BUFFER using vector instead of auto_ptr. + Suggested by Paul Thomas + + 2004-01-22 John W. Eaton + + * octMakefile.in (maintainer-clean, distclean): + Remove Makefile and autom4te.cache. + + 2004-01-14 David Bateman + + * configure.in: Test for the presence of the function + H5Gget_num_objs in HDF5 library, and define HAVE_H5GGET_NUM_OBJS. + + 2004-01-06 Per Persson + + * aclocal.m4 (OCTAVE_CXX_PREPENDS_UNDERSCORE): Recognize + *-*-darwin*, not *-*-darwin6*. + + 2003-12-20 John W. Eaton + + * INSTALL: Update to newer version from autoconf. + + 2003-11-26 Cyril Humbert + + * octave-config.in (--m-site-dir): Echo $LOCALVERFCNFILEDIR, not + $OCTAVE_LOCALVERFCNFILEDIR. + (--oct-site-dir): Echo $LOCALVEROCTFILEDIR, not + $OCTAVE_LOCALVEROCTFILEDIR. + + 2003-11-20 John W. Eaton + + * configure.in: Also maybe add -W to WARN_CFLAGS and WARN_CXXFLAGS. + + 2003-11-15 John W. Eaton + + * Makeconf.in (SHLLIB_VER): Fix typo. + + * Makeconf.in (WARN_CFLAGS, WARN_CXXFLAGS): Substitute them. + (ALL_CFLAGS, BUG_CFLAGS): Add $(WARN_CFLAGS). + (ALL_CXXFLAGS, BUG_CXXFLAGS): Add $(WARN_CXXFLAGS). + (UGLY_ALL_CXXFLAGS): Delete. + + * configure.in: Add -Wall and -Wshadow to WARN_CFLAGS and + WARN_CXXFLAGS instead of CFLAGS and CXXFLAGS. + + 2003-11-12 John W. Eaton + + * configure.in: If we need alloca, then also include it in LIBGLOB. + + 2003-11-10 John W. Eaton + + * configure.in: Preserve CFLAGS and CXXFLAGS before doing anything. + Maybe add -Wshadow to CFLAGS and CXXFLAGS. + + 2003-10-24 Stefan Monnier + + * emacs/octave-mod.el (octave-comment-start): Simplify. + (octave-point): Remove. + (octave-in-comment-p, octave-in-string-p) + (octave-not-in-string-or-comment-p, calculate-octave-indent) + (octave-blink-matching-block-open, octave-auto-fill): + Use line-(beginning|end)-position instead. + + 2003-10-29 John W. Eaton + + * emacs/octave-inf.el (inferior-octave-prompt): Don't bother + matching "octave.bin". + + 2003-10-29 Lute Kamstra + + * emacs/octave-inf.el (inferior-octave-prompt): Recognize + version number in prompt. + + 2003-10-24 John W. Eaton + + * emacs/octave-mod.el (octave-mode-syntax-table): Allow % to be a + comment character. + + 2003-10-23 John W. Eaton + + * Makeconf.in (AWK): Substitute and export it. + * configure.in: Also check for AWK. + + 2003-10-07 John W. Eaton + + * configure.in (AC_PREREQ): Require 2.57. + + 2003-09-19 John W. Eaton + + * configure.in (AH_BOTTOM): Don't define HEAVYWEIGHT_INDEXING here. + + 2003-07-30 John W. Eaton + + * emacs/octave-mod.el (octave-variables): Delete + propagate_empty_matrices from the list. + + * ck-oct-fcns.m: Delete. + + 2003-07-25 John W. Eaton + + * configure.in: Warn if --enable-dl but not --enable-shared. + + 2003-07-15 John W. Eaton + + * emacs/octave-mod.el (octave-variables): Delete + default_return_value and define_all_return_values from the list. + Add warn_undefined_return_values to the list. + + 2003-07-11 John W. Eaton + + * emacs/octave-mod.el (octave-variables): + Add warn_empty_list_elements and warn_resize_on_range_error to the + list. + Delete empty_list_elements_ok and resize_on_range_error from the + list. + + 2003-07-10 John W. Eaton + + * emacs/octave-mod.el (octave-variables): Add warn_neg_dim_as_zero + to the list. + Delete treat_neg_dim_as_zero from the list. + + 2003-07-09 John W. Eaton + + * emacs/octave-mod.el (octave-variables): Include + DEFAULT_EXEC_PATH, DEFAULT_LOAD_PATH, crash_dumps_octave_core, + sighup_dumps_octave_core, sigterm_dumps_octave_core, + warn_imag_to_real, warn_num_to_str, warn_str_to_num, and + warn_fortran_indexing in the list. + Delete ok_to_lose_imaginary_part, implicit_num_to_str_ok, + implicit_str_to_num_ok, prefer_column_vectors, + prefer_zero_one_indexing, and do_fortran_indexing from the list. + + 2003-07-08 John W. Eaton + + * Makeconf.in (do-subst-default-vals): Substitute OCTAVE_API_VERSION. + * octave-config.in: Handle new variable OCTAVE_API_VERSION. + + * octMakefile.in (DIRS_TO_MAKE): Delete undefined vars + $(localfcnfilepathdirs) and $(localoctfilepathdirs) from the list. + + * octave-config.in: Handle new variables OCTAVE_LOCALAPIFCNFILEDIR + and OCTAVE_LOCALAPIOCTFILEDIR + + * configure.in (localapifcnfiledir): New variable. + (localfcnfilepath): Add it to the list. + (localapioctfiledir): New variable. + (localoctfilepath): Add it to the list. + * Makeconf.in (do-subst-default-vals): Substitute new varibles. + + * Makeconf.in (getapiversion, apiversion): New macros. + + * octMakefile.in (DIRS_TO_MAKE): Include $(localverarchlibdir) in + the list. + + 2003-07-07 John W. Eaton + + * Makeconf.in: Set and substitute values for startupfiledir and + localstartupfiledir. + + * octave-config.in: Allow other configuration defaults to be + accessed using --variable VAR option. + + 2003-07-02 John W. Eaton + + * octMakefile.in (distclean): remove install-octave here. + + 2003-06-27 John W. Eaton + + * configure.in: If user doesn't specify --enable-rpath, then + default is to enable it. + + 2003-06-04 John W. Eaton + + * aclocal.m4 (GNUPLOT_HAS_FRAMES): Eliminate variable. + + * emacs/octave-mod.el (octave-variables): Eliminate + gnuplot_has_multiplot. + + 2003-05-21 John W. Eaton + + * configure.in: In check for f_open in libf2c, only use + -L. -lconflib if we have created libconflib.a. + + 2003-05-16 John W. Eaton + + * aclocal.m4 (OCTAVE_PROG_GPERF): Provide struct decl so -t option + succeeds with gperf 3.0. + + * Makeconf.in (NO_OCT_FILE_STRIP): Use -C arg for make. + + * octMakefile.in (DIRS_TO_MAKE): Use $(shell ...) instead of `...`. + + 2003-05-14 John W. Eaton + + * Makeconf.in, octMakefile.in, emacs/Makefile.in, + examples/Makefile.in: Handle DESTDIR. + + 2003-05-13 John W. Eaton + + * Makeconf.in (sbindir): New variable substitution. + + 2003-04-30 John W. Eaton + + * configure.in: Don't define WITH_KPATHSEARCH. + + 2003-04-24 John W. Eaton + + * configure.in: Look for wsock32 library on MinGW systems. + + 2003-04-22 John W. Eaton + + * configure.in (OCTAVE_LOCAL_BUFFER): Always allocate temporary + buffer using new. + + 2003-04-18 John W. Eaton + + * Makefile.in octMakefile.in: Delete kpathsea targets. + + * kpathsea: Delete all files and directory. + + * configure.in: Don't run configure in kpathsea subdirectory. + + * README.kpathsea: New file. + * octMakefile.in (DISTFILES): Include it in the list. + + * Makeconf.in (do-subst-config-vals): Don't substitute it. + + * configure.in: Also check for basename. + Don't substitute LIBKPATHSEA. + + 2003-04-17 John W. Eaton + + * configure.in (AH_BOTTOM): Don't assume that __WIN32__ will be + defined when __CYGWIN__ is defined. + + 2003-03-17 John W. Eaton + + * configure.in: Only complain for g++ earlier than 2.95. + Try harder to get version number only. + + 2003-03-05 Paul Kienzle + + * aclocal.m4 (OCTAVE_DYNAMIC_AUTO_ARRAYS): New macro. + * configure.in: Use it. + (AH_BOTTOM): Check HAVE_DYNAMIC_AUTO_ARRAYS instead of __GNUG__. + + 2003-03-03 John W. Eaton + + * configure.in: Undo previous change. + * Makeconf.in: Likewise. + + 2003-03-01 John W. Eaton + + * configure.in (KPATHSEA_INCFLAGS): New variable. + * Makeconf.in (KPATHSEA_INCFLAGS): Substitute it. + (do-subst-config-vals): Add it to the list. + (INCFLAGS): Add $(KPATHSEA_INCFLAGS). + + 2003-02-23 Paul Kienzle + + * aclocal.m4 (OCTAVE_PLACEMENT_DELETE): New macro. + * configure.in: Use it. + (AH_BOTTOM): Don't define HAVE_PLACEMENT_DELETE here. + + 2003-02-21 John W. Eaton + + * configure.in: Allow RLD_FLAG to be set using --enable-rpath arg. + + * configure.in: Fix default RLD_FLAG value for *-sgi-*. From + Paul Kienzle . + + * configure.in: Check for long long int and unsigned long long int. + + * configure.in (AH_BOTTOM): Define HAVE_PLACEMENT_DELETE for gcc + 3.2 and later. + + * configure.in: Check for copysign and signbit. + + 2003-02-18 John W. Eaton + + * emacs/Makefile.in (DISTFILES): Add otags.1 to the list. + + 2003-02-18 Dirk Eddelbuettel + + * emacs/otags.1: New file. + + 2003-02-18 David Bateman + + * configure.in: Eliminate linpack + + 2003-02-15 John W. Eaton + + * configure.in: Check for mkstemp too. + + 2003-02-13 Arno Klaassen + + * configure.in: Fix SH_LD and SH_LDFLAGS for -*-*-freebsd*. + + 2003-02-13 John W. Eaton + + * configure.in: Use '$(CXX)', '$(AR)', not "$CXX" and "$AR" when + setting variables for building shared libraries. + + 2003-02-13 Paul Kienzle + + * examples/make_int.cc: Support for ISO standard compilers. + + 2003-01-22 Richard Stallman + + * emacs/octave-mod.el (octave-mode-map): Avoid binding keys that + are reserved for users. + + 2003-01-22 John W. Eaton + + * Makeconf.in: Fix typo in previous change. + + 2003-01-21 John W. Eaton + + * Makeconf.in (MKOCTFILE_INCFLAGS): Skip -I$(includedir) if + $(includedir) is /usr/include. + + 2003-01-16 Mumit Khan + + * Makeconf.in (SED): Export to subshells. + + 2003-01-11 John W. Eaton + + * configure.in: Don't bother with compiler flags for + explicit/no-implicit template instantiation. + + 2003-01-11 Paul Kienzle + + * configure.in, Makeconf.in: Allow setting of BUILD_LDFLAGS. + + 2003-01-11 John W. Eaton + + * autogen.sh: Use --force for autoconf and autoheader. + + 2003-01-04 John W. Eaton + + * octMakefile.in (CONF_DISTFILES): Include acx_blas.m4 and + acx_lapack.m4. + + * configure.in (BUILD_CC, BUILD_CFLAGS, BUILD_CXX, + BUILD_CXXFLAGS): Kluge for Sun C/C++. + + 2003-01-03 John W. Eaton + + * configure.in: Default value of BUILD_CXX is $CXX, not g++. + (AH_BOTTOM): Define __USE_STD_IOSTREAM if using Compaq C++ compiler. + For compiler/linker options, use -Wl,OPT instead of -Xlinker OPT. + Check for -ieee option for the C and C++ compilers on alpha systems. + + 2003-01-02 John W. Eaton + + * configure.in: Fail on all gcc 1.x and 2.x versions. + + 2002-12-30 John W. Eaton + + * configure.in (OCTAVE_LOCAL_BUFFER): New macro. + + 2002-12-18 John W. Eaton + + * mkoctfile.in: Include $LIBOCTINTERP in the stand alone link command. + Define LIBOCTAVE, LIBOCTINTERP, LIBCRUFT, LIBREADLINE using -lLIB. + + 2002-12-17 John W. Eaton + + * Makeconf.in (do-script-install, do-script-uninstall): + New macros, used in Makefiles in scripts subdirectory. + (do-script-install): Use new scripts/mkpkgadd script to construct + PKG_ADD files. + + 2002-12-03 Nix + + * configure.in: Use AC_CHECK_DECL in conjunction with + AC_DECL_SYS_SIGLIST to ensure signal.h is searched. + + 2002-12-03 John W. Eaton + + * configure.in: Dont't set SONAME_FLAGS for alpha alpha*-dec-osf* + systems. + + 2002-11-29 Paul Kienzle + + * mkoctfile.in: Include "$incflags $def" in commands to generate + dependecies. + + 2002-11-21 John W. Eaton + + * configure.in (do-subst-config-vals): Substitute OCTAVE_BINDIR. + + * configure.in (MKOCTFILE_SH_LDFLAGS): New variable. + * Makeconf.in (do-subst-config-vals): Substitute + OCTAVE_CONF version of this variable. + + * mkoctfile.in: Set SH_LDFLAGS from MKOCTFILE_SH_LDFLAGS, not + SH_LDFLAGS. + (VERSION): Substitute value of OCTAVE_CONF_VERSION. + + * configure.in (NO_OCT_FILE_STRIP): New variable. + * Makeconf.in (do-subst-config-vals): Substitute it. + * mkoctfile.in (no_oct_file_strip_on_this_platform): New variable. + + 2002-11-20 John W. Eaton + + * configure.in (OCTAVE_CXX_PRAGMA_INTERFACE_IMPLEMENTATION): + Delete use. + + * aclocal.m4 (OCTAVE_LANG_PROG_NO_CONFDEFS): Delete. + (OCTAVE_CXX_PRAGMA_INTERFACE_IMPLEMENTATION): Delete. + + 2002-11-19 John W. Eaton + + * configure.in: Check for dlopen last, to avoid broken + compatibility libraries. + Default value for SHLLIB is '$(SHLEXT)', not $SHLEXT. + + 2002-11-15 John W. Eaton + + * configure.in (USE_EXCEPTIONS_FOR_INTERRUPTS): No need to define. + + 2002-11-14 John W. Eaton + + * configure.in: Check for sigsetjmp and siglongjmp. + (AH_BOTTOM): If both are found, define OCTAVE_HAVE_SIG_JUMP. + Also check for sig_atomic_t, typedef it if not available. + + 2002-11-10 Per Persson + + * configure.in: Detect dyld API for dynamic linking on OS X. + + 2002-11-09 Per Persson + + * configure.in: Use $(TOPDIR)/src/octave, not $(bindir)/octave for + -bundle-loader argument. + + * aclocal.m4 (OCTAVE_CXX_PREPENDS_UNDERSCORE): Force result for OS X. + + 2002-11-07 John W. Eaton + + * configure.in: Set FPICFLAG, Also set CXXPICFLAG, CPICFLAG, + FPICFLAG, and INCLUDE_LINK_DEPS for OS X. + + * acx_blas.m4 (LIBS): Also check for Apple vecLib framework. + + 2002-11-06 John W. Eaton + + * configure.in (AH_BOTTOM): Define USE_EXCEPTIONS_FOR_INTERRUPTS. + + 2002-11-04 Joseph P. Skudlarek + + * emacs/otags: handle declarations without arguments and/or return + values. + + 2002-10-31 John W. Eaton + + * configure.in (SHLEXT_VER, SHLLIB_VER, SHLBIN_VER): Use + $(version), not $(VERSION). + + 2002-10-28 John W. Eaton + + * Makeconf.in (HAVE_DLOPEN_API, HAVE_SHL_LOAD_API, + HAVE_LOADLIBRARY_API): Delete. + (do-subst-config-vals): Don't substitute them here. + + 2002-10-25 John W. Eaton + + * configure.in (ENABLE_DYNAMIC_LINKING): Rename from + WITH_DYNAMIC_LINKING. + * Makeconf.in: Likewise. + * examples/hello.cc: Likewise. Improve comments. + + * configure.in: Revive --enable-dl to set default value for + WITH_DYNAMIC_LINKING. + + * configure.in: Also set SHLEXT_VER, SHLLIB_VER, SHLBIN_VER. + * Makeconf.in: Substitute them here. + Also substitute SHLLINKEXT. + + 2002-10-25 Per Persson + + * aclocal.m4 (OCTAVE_CXX_PRAGMA_INTERFACE_IMPLEMENTATION): Fix + first test to properly fail on OS X. Fix typo in final test to + set result. + + 2002-10-23 John W. Eaton + + * mk-opts.pl (emit_opt_class_header): Make set_options another + name for copy. + + 2002-10-17 John W. Eaton + + * Makeconf.in (do-subst-config-vals): Don't substitute + OCTAVE_CONF_OCTAVE_LITE. + (OCTAVE_LITE): Delete. + + * Makeconf.in: Use HAVE_DLOPEN_API, HAVE_LOADLIBRARY_API, and + HAVE_SHL_LOAD_API instead of WITH_DL and WITH_SHL. + + * configure.in: Rewrite the way we handle dynamic linking. + If dynamic linking is used always do what was previously only + enabled by --enable-lite-kernel. + + 2002-10-17 Paul Kienzle + + * configure.in: Define WITH_DYNAMIC_LINKING based on --enable-shared. + Add -lwsock32 to LIBS for MinGW. + + 2002-10-16 John W. Eaton + + * aclocal.m4 (OCTAVE_LANG_PROG_NO_CONFDEFS): New macro. + (OCTAVE_CXX_PRAGMA_INTERFACE_IMPLEMENTATION): Use it along with + AC_LINK_IFELSE instead of AC_TRY_LINK. + Require both programs to compile for success. + + 2002-10-16 Paul Kienzle + + * aclocal.m4: Both Cygwin and MinGW don't prepend underscores. + * configure.in: MinGW builds shared libraries the same as Cygwin. + MinGW must link to winsock explicitly. + * install-octave.in: MinGW and Cygwin both need OCTAVE_HOME. + + 2002-10-15 Paul Kienzle + + * configure.in (library_path_var): New variable. + + 2002-10-14 John W. Eaton + + * configure.in (SH_LDFLAGS): Additional options for Cygwin: + -Wl,--export-all-symbols -Wl,--enable-auto-import. + + * Makeconf.in (TERMLIBS): Substitute here. + + * configure.in: Define OCTAVE_USE_WINDOWS_API if + defined (__WIN32__) && ! defined (__CYGWIN__), not if + defined (__WIN32__) || ! defined (__CYGWIN__). + Also call AC_SUBST for TERMLIBS. + + 2002-10-14 Paul Kienzle + + * configure.in: Use correct SHLEXT and PICFLAG for Cygwin. + * configure.in: Cygwin must link against -loctave.dll, etc. + + * configure.in: Define INCLUDE_LINK_DEPS because Cygwin needs DLLs + to be linked against their dependencies. + * Makeconf.in: Ditto. + + * configure.in: Define SHLLIB and SHLBIN because Cygwin doesn't + link against shared libs but instead against -lxxx.dll. LIB and + BIN are the link and load forms respectively of the library. + * Makeconf.in: Ditto, and define the corresponding XXX_VER. + + * configure.in: Remove LIBOCT_READLINE and LIBOCT_PATHSEARCH + because they are merged into LIBOCTAVE to avoid circular + dependencies. + * Makeconf.in: Ditto. + * mkoctfile.in: Ditto. + + * aclocal.m4 (OCTAVE_ENABLE_READLINE): Define LIBREADLINE because + Cygwin requires liboctave to be linked against -lreadline so + including it in LIBS isn't sufficient. + * mkoctfile.in: Substitute and use LIBREADLINE here. + + * aclocal.m4 (OCTAVE_CXX_PREPENDS_UNDERSCORE): Force no for cygwin. + + 2002-10-11 John W. Eaton + + * configure.in (AH_BOTTOM): Maybe define OCTAVE_USE_WINDOWS_API + and OCTAVE_HAVE_WINDOWS_FILESYSTEM. + + 2002-10-09 John W. Eaton + + * aclocal.m4 (OCTAVE_PROG_GNUPLOT): AC_DEFINE GNUPLOT_BINARY + Default value on Windows systems is pgnuplot. + If not cross compiling and no gnuplot program is found, set + default to gnuplot. Set defaults for multiplot and frames. Check + for pgnpuplot, pipe-gnuplot, and gnuplot on Windows systems. + + * configure.in (BUILD_EXEEXT): New variable. + * Makeconf.in (BUILD_EXEEXT): Substitute it here. + + * aclocal.m4 (OCTAVE_CXX_PRAGMA_INTERFACE_IMPLEMENTATION): + Add second test for OS X. + + 2002-10-08 John W. Eaton + + * aclocal.m4 (OCTAVE_CXX_PRAGMA_INTERFACE_IMPLEMENTATION): New macro. + * configure.in: Use it. + + * configure.in (BUILD_CC, BUILD_CFLAGS, BUILD_CXX, BUILD_CXXFLAGS): + Set default values if cross compiling. + + * aclocal.m4 (OCTAVE_PROG_NM): Do the right thing for cross compiling. + (OCTAVE_CXX_PREPENDS_UNDERSCORE): Require OCTAVE_PROG_NM. + (OCTAVE_CXX_ABI): Likewise. + + * Makeconf.in (BUILD_CC, BUILD_CFLAGS, BUILD_CXX, BUILD_CXXFLAGS): + New variables for cross compiling. + + 2002-10-07 Paul Kienzle + + * configure.in: Check for raise. + + 2002-10-02 John W. Eaton + + * aclocal.m4 (OCTAVE_PROG_SED): New macro, adapted from autoconf + patches mailing list archive, written by Robert Boehne + . + * configure.in: Use it. + * Makeconf.in: Substitute SED, use $(SED), not sed. + (do-subst-conffig-vals): Substitute it here too. + * mkoctfile.in: And here. Use $SED, not sed. + * octave-bug.in: Likewise. + * install-octave.in: Likewise. + + 2002-09-30 John W. Eaton + + * configure.in: Don't define mkdir here. + + 2002-09-25 Mumit Khan + + * aclocal.m4 (OCTAVE_MKDIR_TAKES_ONE_ARG): New macro to determine if + host mkdir accepts only one arg instead of the usual two. + * configure.in: Use. Check for direct.h. + (mkdir): Define. + + 2002-09-26 Paul Kienzle + + * configure.in: Check for conio.h. + Check for _kbhit. + + 2002-09-26 John W. Eaton + + * configure.in (AH_BOTTOM): Don't define + USE_PRAGMA_INTERFACE_IMPLEMENTATION. + + 2002-09-26 Paul Kienzle + + * configure.in: Fix syntax errors in !HAVE_XXX_T. + Don't require terminal control for build. + + 2002-09-23 John W. Eaton + + * configure.in: Fix typedefs used in AH_BOTTOM. + + 2002-09-19 John W. Eaton + + * configure.in (AH_BOTTOM): If using g++, define + USE_PRAGMA_INTERFACE_IMPLEMENTATION. + + 2002-08-17 John W. Eaton + + * configure.in: Check for sstream. + + 2002-08-16 John W. Eaton + + * Makeconf.in (%.d : %.cc): Add $*.df to LHS of dependency list. + + 2002-08-15 Paul Kienzle + + * mk-opts.pl: Add support for INCLUDE = "...". + + 2002-08-15 John W. Eaton + + * mk-opts.pl: Handle Array too. + + 2002-08-10 John W. Eaton + + * mk-opts.pl (emit_options_function): Emit newline at EOF. + + 2002-08-01 John W. Eaton + + * Makeconf.in: Use $@-t instead of $@.tmp or $@.t. + + 2002-07-19 John W. Eaton + + * mk-opts.pl: New file. + * Makefile.in (DISTFILES): Add it to the list. + + 2002-07-12 John W. Eaton + + * configure.in (AC_CONFIG_FILES): Add libcruft/dasrt/Makefile to + the list. + + 2002-07-10 John W. Eaton + + * configure.in (AC_CONFIG_FILES): Add libcruft/odessa/Makefile to + the list. + + 2002-05-24 John W. Eaton + + * configure.in: Maybe add -fno-coalesce-templates to XTRA_CXXFLAGS + on darwin systems. + (SH_LDFLAGS): Set this on darwin systems. + (UGLY_DEFS): Cope with broken sed or shell quoting on darwin systems. + + 2002-05-16 John W. Eaton + + * aclocal.m4 (OCTAVE_CXX_ISO_COMPLIANT_LIBRARY): Omit cwctype. + + 2002-05-01 John W. Eaton + + * configure.in (AC_AIX): Move before AC_MINIX and AC_ISC_POSIX. + (AH_BOTTOM): Move contents of acconfig.h here. + * acconfig.h: Delete. + * octMakefile.in (CONF_DISTFILES): Delete acconfig.h from the list. + + 2002-04-27 John W. Eaton + + * configure.in (AC_CONFIG_FILES): Add libcruft/daspk/Makefile to + the list. + + 2002-04-24 Kurt Hornik + + * aclocal.m4 (OCTAVE_CC_FLAG, OCTAVE_CXX_FLAG): Also handle flags + that contain : and =. + + 2002-04-12 John W. Eaton + + * config.guess, config.sub: Update from FSF sources. + + 2002-04-11 John W. Eaton + + * configure.in: Declare F2C and F2CFLAGS with AC_ARG_VAR. + Delete AC_SUBST calls for F77, FFLAGS, FLIBS, F2C, F2CFLAGS (no + need to do this explicitly now). + + 2002-04-04 John W. Eaton + + * Makeconf.in: Set and substitute EXEEXT, not EXE. + + * configure.in (EXE): Delete check and substitution. + * install-octave.in: Use EXEEXT instead of EXE. + + * configure.in: Use AC_CHECK_MEMBERS, not OCTAVE_STRUCT_GR_PASSWD. + Use AC_CHECK_TYPES, not AC_CHECK_TYPE or OCTAVE_CHECK_TYPE. + * aclocal.m4 (OCTAVE_STRUCT_GR_PASSWD, OCTAVE_CHECK_TYPE): Delete. + * acconfig.h (dev_t, ino_t, nlink_t, sigset_t): Typedef if not found. + + 2002-04-03 John W. Eaton + + * aclocal.m4: Replace AC_LANG_SAVE, AC_LANG_C, AC_LANG_CPLUSPLUS, + and AC_LANG_RESTORE with AC_LANG_PUSH and AC_LANG_POP. + Use AS_MESSAGE_LOG_FD instead of AC_FD_CC. + * configure.in: Delete second arg in AC_CHECK_SIZEOF calls. + + 2002-04-03 Steven G. Johnson + + * configure.in: Correct usage of AC_ARG_WITH for --with-fftw. + + * configure.in: Update for autoconf 2.5x. + Minor syntax changes to new recommended syntaxes and macros. + Apply changes from autoupdate plus eliminate some warning + messages, deprecated uses of changequote, etc. + Use autoheader templates to generate config.h.in. + Replace most of Octave's Fortran support macros with those in the + new autoconf. + Eliminate most uses of internal (undocumented) autoconf cache vars. + Replace BLAS/LAPACK detection new macros ACX_BLAS/ACX_LAPACK from + the autoconf macro repository. + * acx_blas.m4, acx_lapack.m4: New files. + * acconfig.h: Delete lines that can be automatically generated + from new info in configure.in and aclocal.m4. + If it is not already defined, define F77_FUNC for use with f2c. + * aclocal.m4 (OCTAVE_PROG_G77, OCTAVE_FLIBS, OCTAVE_F77_MAIN_FLAG, + OCTAVE_F77_UPPERCASE_NAMES, OCTAVE_F77_APPEND_UNDERSCORE, + OCTAVE_F2C_F77_COMPAT): Delete definitions. + Use autoheader templates to generate config.h.in. + * Makeconf.in, mkoctfile.in (FORTRAN_MAIN_FLAG): Delete all uses. + + 2001-11-09 John W. Eaton + + * octave-bug.in (BLAS_LIBS, FFTW_LIBS, LD_CXX): Substitute and + print values. + * mkoctfile.in: Accept --compile as an alias for -c. + New option, --link-stand-alone. + New option, --no-pathsearch. + New option, --no-readline. + Substitute RLD_FLAG, FLIBS, LIBKPATHSEA, LIBOCTINTERP, + LIBOCTAVE, LIBOCT_READLINE, LIBOCT_PATHSEARCH, LIBCRUFT, + BLAS_LIBS, FFTW_LIBS, and LIBS. + * Makeconf.in (MKOCTFILE_LFLAGS): New variable. + (do-subst-config-vals): Substitute FFTW_LIBS, LD_CXX, + LIBOCT_PATHSEARCH, LIBOCT_READLINE, MKOCTFILE_LFLAGS. + + 2001-11-06 John W. Eaton + + * Makefile.in (LIBOCT_READLINE, LIBOCT_PATHSEARCH): New variables. + * Makeconf.in: Substitute them here. + + 2001-11-02 John W. Eaton + + * octMakefile.in (dist): Omit long-gone info subdir. + Fix find command for removing Makefile in kpathsea and glob subdirs. + + 2001-08-10 John W. Eaton + + * mkoctfile.in: Substitute F2C and F2CFLAGS. Make it possible to + use f2c and a C compile to compiling Fortran source files. Print + warnings and error message on stderr, not stdout. Issue warnings + if it is not possible to comiple Fortran, C, or C++ files. + + * configure.in (%.c : %.f): Don't use cat in F2C rule. + + 2001-07-27 John W. Eaton + + * Makeconf.in (do-subst-config-vals): Substitute DEPEND_FLAGS and + DEPEND_EXTRA_SED_PATTERN. + * mkoctfile.in: Handle --depend. + + 2001-07-25 Rafael Laboissiere + + * octave-config.in: New file. + * Makeconf.in (do-subst-default-vals): Substitute OCTAVE_VERSION. + * Makefile.in (TARGETS): Add octave-config to list. + * octMakefile.in (DISTFILES): Add octave-config.in to list. + (BINDISTFILES): Add octave-config to list. + (all): Add octave-config dependency. + (octave-config): New rule. + (install): Install octave-config. + (uninstall): Delete octave-config from bindir. + (maintainer-clean): Delete octave-config. + (binary-dist): Add octave-config dependency. + + 2001-06-29 Mumit Khan + + * aclocal.m4 (OCTAVE_CXX_ABI): Use "sun_v5" instead of "sun". + + * aclocal.m4 (OCTAVE_CXX_ABI): New macro. + (OCTAVE_CXX_PREPENDS_UNDERSCORE): Add missing return value. + * configure.in: Use. + * acconfig.h (CXX_ABI): New macro. + + 2001-05-23 John W. Eaton + + * configure.in: Quote the call to AC_CHECK_FUNC inside the + AC_CHECK_LIB macro when checking for lapack. For autoconf 2.50 + + * aclocal.m4: Changes for autoconf 2.50: + Convert dnl comments inside AC_DEFUN to ###. + (OCTAVE_FLIBS): Use [] quoting instead of changequote. + + 2001-05-02 John W. Eaton + + * octMakefile.in: Remove remaining references to readline. + (CONF_DISTFILES): Add autogen.sh to the list. + + 2001-05-02 Mumit Khan + + * configure.in: Support for --with-fftw. + (FFT_DIR, FFTW_LIBS): New substitutions. + * Makeconf.in (FFTW_LIBS): New variable. + * acconfig.h (HAVE_FFTW): New macro. + + 2001-04-26 John W. Eaton + + * aclocal.m4 (OCTAVE_ENABLE_READLINE): Require readline unless + --disable-readline is specified. + + * configure.in: Don't define TERMLIBS. Do add terminal lib(s) to LIBS. + * octave-bug.in: Delete references to TERMLIBS. + * Makeconf.in: Likewise. + + * Makeconf.in (LIBREADLINE): Delete substitution. + (do-subst-config-vals): Likewise. + * octMakefile.in (SUBDIRS): Delete @READLINE_DIR@ from the list. + * configure.in (AC_CONFIG_SUBDIRS): Delete $READLINE_DIR from the list. + + * configure.in (VOID_SIGHANDLER): Don't check or substitute here. + + 2001-04-25 John W. Eaton + + * octMakefile.in (install, install-strip): Don't use mk-includedir-link + + * Makeconf.in (mk-includedir-link, mk-libdir-link): Delete definitions. + + 2001-04-24 John W. Eaton + + * Makeconf.in (mk-libdir-link): Undo previous change + + 2001-04-23 John W. Eaton + + * configure.in: Only check for libz if checking for HDF5 libraries. + Allow user to specify HDF5 library name on command line, same as + for BLAS libraries. Include BLAS and HDF5 libs in summary output. + + 2001-04-19 John W. Eaton + + * octMakefile.in (CONF_DISTFILES): Remove config.h.bot from the list. + + 2001-04-19 David Livings + + * Makeconf.in (mk-libdir-link): Omit check for $(octlibdir)/octave + existing as a directory. + + 2001-02-28 Albert Chin-A-Young + + * configure.in: Check for getpwnam in libsun only after checking + default libraries first. Check for gethostname in libsocket only + after checking default libraries first. + + 2001-02-22 John W. Eaton + + * configure.in: Allow for using f2c when setting functions to look + for in the BLAS and Lapack libraries. + From Kurt Hornik . + + 2001-02-10 Mumit Khan + + * test/octave.test/string/dec2hex-1.m: Don't assume hex format + produces lower case letters. + + 2001-02-07 John W. Eaton + + * acconfig.h: Merge contents of config.h.bot. + * config.h.bot: Delete. + + * autogen.sh: Allow running of autoconf or autoheader to be skipped. + + 2001-02-06 John W. Eaton + + * readline: Update to new version (4.2-beta1). + + 2001-02-05 Mumit Khan + + * configure.in (TEMPLATE_AR, TEMPLATE_ARFLAGS): New variables. + * Makeconf.in (TEMPLATE_AR, TEMPLATE_ARFLAGS): Likewise. + + * configure.in (XTRA_CXXFLAGS): Use -fno-implicit templates for + pre-gcc3 compilers. Remove -fno-rtti and -fno-exceptions. + (DEPEND_FLAGS, DEPEND_EXTRA_SED_PATTERN): New macros. + (BLAS_LIBS): Fix test for sunperf library on Sun Solaris. + (CPICFLAG, CXXPICFLAG, FPICFLAG, SH_LDFLAGS, RLD_FLAG): Add Sun + compiler support. + * Makefile.in (DEPEND_FLAGS, DEPEND_EXTRA_SED_PATTERN): New + variables. + (%.d : %.cc): Use. + (%.d : %.c): Likewise. + * acconfig.h (CXX_ISO_COMPLIANT_LIBRARY): Add #undef. + + 2001-01-31 Mumit Khan + + * Makeconf.in (%.d : %.cc): Strip the directory portion of the + target. + (%.d : %.c): Likewise. + + * aclocal.m4 (OCTAVE_CXX_ISO_COMPLIANT_LIBRARY): New macro. + * configure.in: Use it. + + 2001-01-29 John W. Eaton + + * Makeconf.in (do-subst-config-vals): Substitute + OCTAVE_CONF_CANONICAL_HOST_TYPE here too. + * octave-bug.in: Substitute OCTAVE_CONF_CANONICAL_HOST_TYPE, not + OCTAVE_CANONICAL_HOST_TYPE. + + 2000-12-09 John W. Eaton + + * aclocal.m4: Give gperf a keyword, to avoid complaints from newer + versions. + + 2000-11-27 Marcus.Brinkmann + + * configure.in: Handle *-*-gnu* the same as *-*-linux* for shared + library creation. + + 2000-11-03 Andy Adler + + * mkoctfile.in: Handle -c to mean compile only. + + 2000-11-01 John W. Eaton + + * mkoctfile.in: Handle --print. + + 2000-10-31 John W. Eaton + + * aclocal.m4 (OCTAVE_PROG_GPERF): Check that gperf supports flags + we use. + + * missing: New file, modified from the missing script provided by + automake (never create files, just exit with failure status). + * aclocal.m4 (OCTAVE_PROG_BISON, OCTAVE_PROG_FLEX, OCTAVE_PROG_GPERF): + Use $(top_srcdir)/missing as replacement script. + + * aclocal.m4 (OCTAVE_PROG_FLEX, OCTAVE_PROG_BISON): New macros. + * configure.in: Use them. + + 2000-10-27 John W. Eaton + + * autogen.sh: Don't run configure. + + * configure.in (SPECIAL_MATH_LIB): Delete code related to this var. + * Makeconf.in: Ditto. + (BLAS_LIBS, LIBS): Substitute here. + (do-subst-config-vals): Put BLAS_LIBS in oct-conf.h. + + 2000-07-20 Joao Cardoso + + * configure.in: (LD_CXX): Define and substitute. + For sco3.2v5 systems, set SONAME_FLAGS and RLD_FLAG. + * Makeconf.in (LD_CXX): Allow substitution. + + 2000-07-18 John W. Eaton + + * octMakefile.in (DISTSUBDIRS): Define in terms of $(ALL_SUBDIRS). + + 2000-07-17 Joao Cardoso + + * configure.in (LIBGLOB): Set to be the two object files in the + glob directory instead of libglob.a. + + 2000-07-05 Steven G. Johnson + + * Use BLAS_LIBS to save the names of BLAS libraries instead of + adding them to LIBS, then substitute BLAS_LIBS. + + 2000-06-30 Steven G. Johnson + + * configure.in: Support for --with-fastblas (ATLAS). + + 2000-06-29 John W. Eaton + + * configure.in: Check for long long data type. + + 2000-06-29 Steven G. Johnson + + * acconfig.h (HAVE_HDF5): Add undef. + * configure.in: Handle --with-hdf5. + + 2000-06-26 John W. Eaton + + * octave-bug.in: Substitute correct values for config_opts, + MACHINE, and CXXFLAGS. + + 2000-06-07 John W. Eaton + + * Makeconf.in (GPERF): Allow substitution. + + 2000-06-05 John W. Eaton + + * aclocal.m4 (OCTAVE_PROG_GPERF): New macro. + * configure.in: Use it. Print warning at end if gperf is missing. + + 2000-04-20 John W. Eaton + + * mkoctfile.in: Try moving output file first. But comment these + lines and let people who have trouble enable them. + + 2000-04-19 John W. Eaton + + * mkoctfile.in: Remove output file before linking. + + * octMakefile.in (DIRS_TO_MAKE): Create $(octincludedir)/octave. + (install install-strip): Install config.h in $(octincludedir)/octave, + not $(octincludedir). + + 2000-03-31 John W. Eaton + + * octMakefile.in (DIRS_TO_MAKE): Double up on $ in awk command to + get them past Make. + + 2000-03-25 John W. Eaton + + * octMakefile.in (SUBDIRS): Omit src. + (ALL_SUBDIRS): New variable. Include src here. + (all): Depend on src instead of $(SUBDIRS). + (src): New target. Depend on $(SUBDIRS). + + * Makefile.in (.NOTPARALLEL): New target, for GNU Make 3.79. + * octMakefile.in (.NOTPARALLEL): Likewise. + + 2000-03-22 John W. Eaton + + * configure.in: Check for vsnprintf. + + 2000-03-21 John W. Eaton + + * Makefile.in (liboctave.$(SHLEXT)): Delete target before rebuilding. + + 2000-03-21 Ben Sapp : + + * Makeconf.in (%.o : %.c): Pass -o to compile command. + (%.o : %.cc): Ditto. + * configure.in (%.o : %.f): Ditto. + + 2000-03-08 Stephen Eglen + + * emacs/octave-mod.el (octave-font-lock-keywords): To font-lock + the builtin operators, use `font-lock-builtin-face' for Emacs + and `font-lock-preprocessor-face' for XEmacs. + + 2000-03-08 John W. Eaton + + * configure.in: For building shared libaries, handle + i386-pc-solaris2* the same as sparc-sun-solaris2*. + + 2000-02-29 Ben Sapp + + * examples/make_int.cc (make_int): Handle new operator names. + + 2000-02-23 John W. Eaton + + * octMakefile.in (maintainer-clean distclean): Don't delete Makefile. + (dist): Delete stamp-auto. + + 2000-02-11 John W. Eaton + + * configure.in (octincludedir): Delete trailing /octave here. + * Makeconf.in (mk-includedir-link): Append it here. + (MKOCTFILE_INCFLAGS): Use both -I$(octincludedir) and + -I$(octincludedir)/octave. + + * configure.in (localveroctfiledir, localverarchlibdir, + localverfcnfiledir): New variables. + (localfcnfilepath): Prepend localverfcnfiledir. + (localoctfilepath): Prepend localveroctfiledir. + * Makeconf.in: Substitute them here. + + * Makeconf.in (do-subst-default-vals): Substitute + OCTAVE_LOCALVERARCHLIBDIR, OCTAVE_LOCALVERFCNFILEDIR, + OCTAVE_LOCALVEROCTFILEDIR. + + 2000-02-08 John W. Eaton + + * config.guess: Update to latest from subversions.gnu.org. + * config.sub: Likewise. Recognize sv1-cray as a basic_machine. + + * Makeconf.in (MKOCTFILE_INCFLAGS): New macro. + (do-subst-conf-vals): Substitute it. + * mkoctfile.in: Set INCFLAGS from OCTAVE_CONF_MKOCTFILE_INCFLAGS. + + * mkoctfile.in: Fix names in substititions. + * octave-bug.in: Likewise. + + 2000-02-07 John W. Eaton + + * Makeconf.in (do-subst-default-vals, do-subst-config-vals): + Substitute more complete set of values. + + 2000-02-01 John W. Eaton + + * aclocal.m4 (octave_cv_string_npos): Add std:: qualifier. + + 2000-01-27 John W. Eaton + + * emacs/octave-mod.el (octave-begin-keywords): Add "do". + (octave-end-keywords): Add "until". + (octave-abbrev-table): Add "u" as abbrev for "until ()" + (octave-block-match-alist): Add do-until. + + 2000-01-25 John W. Eaton + + * configure.in: Don't look for the sunmath library. + Don't check for infinity or quiet_nan. + + * emacs/octave-mod.el (octave-mode-syntax-table): + Undo previous change, but add a comment explaining why. + + * install-octave.in: Exit on any error instead of continuing. + Install Octave binary last. + + 2000-01-24 John W. Eaton + + * emacs/octave-mod.el (octave-mode-syntax-table): + Make `%' a comment start character too. + + 2000-01-20 John W. Eaton + + * configure.in: Check for strptime and localtime_r. + + 1999-11-15 John W. Eaton + + * configure.in (XTRA_CXXFLAGS, XTRA_CFLAGS): Use -mminimal-toc on + AIX systems. + + 1999-10-26 John W. Eaton + + * emacs/README: New file. + * emacs/Makefile.in (DISTFILES, BINDISTFILES): Add it to the lists. + + * emacs/Makefile.in: Don't distribute .elc files. + + 1999-10-21 John W. Eaton + + * configure.in: Check for select and poll. Also check for poll.h + and sys/poll.h. + + 1999-10-19 Geoff Jacobsen + + * autogen.sh: New file. + + 1999-10-19 John W. Eaton + + * octMakefile.in: Use `$(MAKE) -C dir' instead of `cd dir; $(MAKE)'. + + Mon Sep 20 11:02:29 1999 John W. Eaton + + * emacs/octave-inf.el, emacs/octave-mod.el: Update to match FSF + sources plus code that will make it work if Emacs doesn't have the + customize code. + + Tue Sep 14 07:57:06 1999 Kurt Hornik + + * emacs/octave-inf.el (inferior-octave-startup): Always pass "-i" + and "--no-line-editing" to Octave subprocess. + (inferior-octave-startup-args): Default to nil. + + Mon Sep 6 10:50:10 1999 John W. Eaton + + * emacs/octave-inf.el (inferior-octave-startup-args): + Add --no-line-editing to the list. + + Fri Jul 9 09:15:24 1999 John W. Eaton + + * configure.in: Try to handle IEEE FP flags for g77 on Alphas. + + Thu Jul 8 19:56:37 1999 Stephen Eglen + + * emacs/octave-inf.el (inferior-octave-directory-tracker): + Change regexp so that it doesn't match commands beginning with `cd'. + + Wed Jun 23 13:20:11 1999 Mumit Khan + + * configure.in (HAVE_TERMIOS_H): Avoid autoheader lossage. + + Sun Jun 20 23:05:18 1999 John W. Eaton + + * configure.in: Check for sys/ioctl.h. + + Mon May 10 09:06:47 1999 John W. Eaton + + * aclocal.m4 (OCTAVE_PROG_G77): Also match "FSF-g77", for egcs. + + Thu Apr 8 19:20:09 1999 John W. Eaton + + * examples/hello.cc (Fhello): octave_value::print now requires a + stream arg. + + Wed Feb 3 01:02:37 1999 John W. Eaton + + * configure.in: Use AC_OUTPUT_COMMANDS to chmod install-octave so + that the command will also executed in config.status. + + Thu Jan 28 21:05:32 1999 John W. Eaton + + * Makeconf.in (do-subst-config-vals): Do substitution on + CANONICAL_HOST_TYPE, not TARGET_HOST_TYPE. + (do-subst-default-vals): Likewise. + + Wed Jan 20 12:56:02 1999 John W. Eaton + + * configure.in: Don't put -O in FFLAGS for powerpc-apple-machten*. + + Wed Dec 9 14:02:45 1998 John W. Eaton + + * Makeconf.in (RDYNAMIC_FLAG): Substitute RDYNAMIC_FLAG here. + * configure.in: Check for G++ compiler flag -rdynamic if setting + up to support dynamic linking, and substitute RDYNAMIC_FLAG if + -rdynamic is accepted. + * aclocal.m4 (OCTAVE_CC_FLAG, OCTAVE_CXX_FLAG): Clarify usage comment. + + Mon Dec 7 19:49:26 1998 John W. Eaton + + * configure.in: Check for -lm just after compiler tests. + Remove -lm from other macro calls. Don't check for -lm on NeXT + systems. Eric Norum says /lib/libsys_s.a + has all the routines that are traditionally in libc.a and libm.a + on *NIX systems. NeXT also supplies a libm.a, but it seems to be + horribly buggy. + + Sat Dec 5 10:48:40 1998 John W. Eaton + + * mkoctfile.in: Correctly handle -?. + + Fri Dec 4 18:05:51 1998 Kurt Hornik + + * emacs/octave-mod.el (octave-abbrev-start): Use the correct name + of the abbrev table, and provide support for XEmacs. + (octave-xemacs-p): New variable. + + Tue Nov 24 23:31:50 1998 John W. Eaton + + * configure.in: Check for strftime too. + Avoid checking for termios.h on NeXT systems. + + Thu Nov 19 16:07:57 1998 John W. Eaton + + * aclocal.m4 (OCTAVE_CXX_PREPENDS_UNDERSCORE): New macro. + * configure.in: Use it. + * acconfig.h: Add #undef for it. + + Thu Nov 12 10:42:25 1998 John W. Eaton + + * emacs/otags: New script from Mario Storti + . + * emacs/Makefile.in: Add it to the list of files to distribute and + install. + + Wed Nov 11 17:26:26 1998 John W. Eaton + + * configure.in (AC_OUTPUT): Add libcruft/amos/Makefile. + Delete libcruft/specfun/Makefile. + + Mon Nov 9 08:53:03 1998 John W. Eaton + + * Makeconf.in (LIBGLOB): Add a place for substitution to occur. + (GLOB_INCFLAGS): Define as @GLOB_INCFLAGS@, not @DLFCN_INCFLAGS@. + (do-subst-config-vals): Don't forget LIBGLOB. + * octave-bug.in (LIBGLOB): Substitute here too, and add it to the + list of configuration items to print. + + Mon Nov 2 20:33:16 1998 John W. Eaton + + * configure.in: Define __NO_MATH_INLINES. + * acconfig.h: Add #undef for it. + + * configure.in (AC_OUTPUT): Escape newlinew in macro call with \. + + * install-octave.in (SHLEXT): Substitute. + (SHLEXT_VER): Define. + Use them for installing shared libraries. + Use subshells to avoid having to cd back to $distdir. + (distdir): Delete variable. + + Fri Oct 2 14:23:59 1998 Kurt Hornik + + * octave-inf.el (inferior-octave-prompt): Also match prompts of + the form `octave.bin:1>' which come from using precopiled binary + versions. + + Thu Sep 24 13:51:03 1998 John W. Eaton + + * configure.in (AC_OUTPUT): Add libcruft/ordered-qz to the list. + Delete libcruft/balgen and libcruft/eispack from the list. + + Mon Aug 31 12:07:02 1998 John W. Eaton + + * config.sub: Accept armv4 everywhere arm is allowed. + + Tue Aug 18 17:02:25 1998 John W. Eaton + + * mkoctfile.in: Allow -DDEF on command line. + + Thu Jun 18 20:24:40 1998 Roman Hodek + + * configure.in (RLD_FLAG): Set correctly for Linux on all + architectures. From + + Thu May 28 10:17:45 1998 John W. Eaton + + * configure.in: When checking for glob stuff, make sure that the + systsem header file has all the definitions that we need. If not, + set up to use our replacement library. + + Mon May 18 11:33:45 1998 John W. Eaton + + * mkoctfile.in: Fix typos in case statement. + + Fri May 15 00:34:54 1998 John W. Eaton + + * configure.in: Make sure install-octave is executable. + + * install-octave.in (oct_files): Don't cd to src. + (have_find): Delete variable (assume all systems have find). + + Thu May 14 10:29:30 1998 John W. Eaton + + * aclocal.m4 (OCTAVE_SET_DEFAULT): Allow values to come from the + environment. + + * Makefile.in (binary-dist): Don't set LDFLAGS to -static. + Run configure with --enable-shared and --enable-lite-kernel. + + * octMakefile.in (DISTFILES): Include README.MachTen in the list. + (XBINDISTFILES): Include README.MachTen in the list. + Delete README.NLP from the list + * README.MachTen: New file. + + * configure.in: Add -mno-fp-in-toc on ibm-aix4 systems. + From Philippe.Defert@cern.ch . + + Tue May 5 14:43:36 1998 John W. Eaton + + * aclocal.m4 (OCTAVE_PROG_G77): Compile trivial program instead of + just running ${f77-f77} -v on nothing. + Convert all uses of $F77 to ${F77-f77}. + + Mon May 4 12:08:36 1998 John W. Eaton + + * emacs/octave-mod.el (octave-mode): Make comment-multi-line local + and set to nil. + + Tue Apr 28 14:28:14 1998 John W. Eaton + + * aclocal.m4 (OCTAVE_FLIBS): Really do skip -lkernel32. + + Thu Apr 23 23:26:19 1998 John W. Eaton + + * kpathsea: Update to version 3.2. + + Mon Apr 20 21:58:39 1998 John W. Eaton + + * configure.in (dlfcn.h): Add check. + + Sat Apr 18 20:15:37 1998 John W. Eaton + + * configure.in (USE_GNU_INFO): Delete everything related to this. + * acconfig.h (USE_GNU_INFO): Delete undef. + + Tue Apr 14 15:33:20 1998 John W. Eaton + + * install-octave.in: Improve error messages if version number or + host architecture can't be found. + + * install-octave.in: Don't install info reader. + + Fri Mar 27 02:54:59 1998 John W. Eaton + + * aclocal.m4 (OCTAVE_F2C_F77_COMPAT): Use a Fortran subroutine + instead of a function. + + Tue Mar 10 17:28:20 1998 John W. Eaton + + * configure.in (RLD_FLAG): Use $(octlibdir), not $(libdir). + + Mon Mar 2 00:02:26 1998 John W. Eaton + + * install-octave.in: Explicitly set permissions on ls-R files. + + * configure.in: Don't disable GNU Info on cygwin32 systems. + + * install-octave.in: New file. + * configure.in: Create install-octave. + * octMakefile.in (distclean, maintainer-clean): Delete install-octave. + (DISTFILES): Distribute install-octave.in, not install-octave. + + Sun Mar 1 23:15:04 1998 John W. Eaton + + * configure.in: Fix typo in test for glob and fnmatch headers. + + Fri Feb 27 15:43:14 1998 John W. Eaton + + * configure.in: Fix support for dlopen on SCO systems. + + Mon Feb 23 13:06:11 1998 John W. Eaton + + * configure.in (ieee_fp_flag): Use -mieee-with-inexact on Alphas. + Use octave_cv_f77_is_g77, not just f77_is_g77. + + Fri Feb 20 00:38:31 1998 John W. Eaton + + * configure.in, Makeconf.in: Try to set things up to use the + system glob and fnmatch headers and functions if they exist. + Better handling of include and lib flags. + + Thu Feb 19 01:21:19 1998 John W. Eaton + + * configure.in: Don't check for gamma or lgamma + * acconfig.h: Delete undef for HAVE_GAMMA and HAVE_LGAMMA. + + Wed Feb 18 15:05:54 1998 John W. Eaton + + * configure.in: Don't check for vfork. + + Wed Feb 11 19:41:22 1998 John W. Eaton + + * Makeconf.in (mk-libdir-link): Don't create link if a directory + named $(libdir)/octave already exists. + + Mon Feb 9 14:47:42 1998 John W. Eaton + + * octMakefile.in (INSTALL_SUBDIRS): Delete @INFO_DIR@. + + Thu Feb 5 03:04:09 1998 John W. Eaton + + * configure.in: Check for vfork. + + * config.h.bot (X_CAST): New macro. + + Wed Feb 4 01:42:50 1998 John W. Eaton + + * aclocal.m4 (OCTAVE_FLIBS): If ld_run_path is not absolute, kill it. + + Tue Feb 3 00:24:01 1998 John W. Eaton + + * Makeconf.in (do-subst-vals): Substitute $(libexecdir) too. + + Mon Feb 2 22:42:27 1998 John W. Eaton + + * configure.in: Define octlibdir. + * Makeconf.in: Substitute value. + (do-subst-config-vals): Set LIBDIR to $(octlibdir). + (do-subst-default-vals): Substitute OCTLIBDIR too. + + Sat Jan 31 19:29:56 1998 John W. Eaton + + * acconfig.h: Add #undefs for HAVE_GAMMA and HAVE_LGAMMA to avoid + bug in autoconf, but #if 0 them out to avoid warning messages + about redefining them. + + Mon Jan 26 13:26:09 1998 John W. Eaton + + * Makeconf.in (do-subst-config-vals): Substitute XTRA_CFLAGS and + XTRA_CXXFLAGS. + * mkoctfile.in: Substitute XTRA_CFLAGS and XTRA_CXXFLAGS, not + GCC_IEEE_FP_FLAG, HOST_CXXFLAGS, and NO_IMPLICIT_TEMPLATES. + (ALL_CFLAGS): Use XTRA_CFLAGS, not GCC_IEEE_FP_FLAG here. + (ALL_CXXFLAGS): Use XTRA_CXXFLAGS, not GCC_IEEE_FP_FLAG, + HOST_CXXFLAGS, and NO_IMPLICIT_TEMPLATES here. + + Sun Jan 25 01:59:47 1998 John W. Eaton + + * configure.in: (GXX_PICKY_FLAGS): Add -Weffc++. + Use OCTAVE_CC_FLAG and OCTAVE_CXX_FLAG to add -Wall and for adding + picky flags in AC_ARG_ENABLE(picky-flags ...) macro. + + * aclocal.m4 (OCTAVE_F2C_F77_COMPAT): Require OCTAVE_PROG_G77. + Handle cross compiling with g77. + (OCTAVE_REINSTALL_SIGHANDLERS): Provide defaults for cross compiling. + + * aclocal.m4 (OCTAVE_PROG_AR, OCTAVE_PROG_G77, OCTAVE_PROG_PAGER, + OCTAVE_PROG_GNUPLOT, OCTAVE_PROG_RUNTEST, OCTAVE_F77_MAIN_FLAG): + New macros. + * configure.in: Use them in place of in-line code. + + Sat Jan 24 00:33:14 1998 John W. Eaton + + * aclocal.m4 (OCTAVE_HOST_TYPE): Don't set target_host_type. + * configure.in: Use canonical_host_type in place of target_host_type. + + Fri Jan 23 02:47:57 1998 John W. Eaton + + * configure.in: Also check for -fno-rtti. + + Thu Jan 15 23:12:27 1998 John W. Eaton + + * config.guess, config.sub: Update to new version from the FSF. + * configure.in: Match alpha*-... instead of just alpha-... to cope + with new strings like alphaev56-dec-osf4.0b returned from + config.guess. + + * aclocal.m4 (OCTAVE_CC_FLAG, OCTAVE_CXX_FLAG): New macros. + * configure.in: Use them to find out if the C and C++ compilers + support -mieee-fp, -mieee, -fno-implicit-templates, and + -fno-exceptions instead of relying on version information. Add + found flags to XTRA_CFLAGS and XTRA_CXXFLAGS instead of using + GCC_IEEE_FP_FLAG and NO_IMPLICIT_TEMPLATES. + Delete unused variable HOST_CXXFLAGS. + * Makeconf.in: Use XTRA_CFLAGS and XTRA_CXXFLAGS instead of + GCC_IEEE_FP_FLAG and NO_IMPLICIT_TEMPLATES. + Delete unused variable HOST_CXXFLAGS. + + Thu Dec 11 09:43:56 1997 John W. Eaton + + * config.h.bot: Define CONST_CAST and STATIC_CAST too. + + * configure.in (SH_LD): Set default to $CXX, not $CC. + + Mon Dec 1 00:49:56 1997 John W. Eaton + + * configure.in (AC_OUTPUT): Add libcruft/slatec-err/Makefile. + + Sun Nov 30 18:19:45 1997 John W. Eaton + + * configure.in: Check for gamma and lgamma too. + + Fri Nov 28 23:21:17 1997 John W. Eaton + + * configure.in (AC_OUTPUT): Include libcruft/specfun/Makefile. + + Fri Nov 28 13:32:26 1997 Kurt Hornik + + * octave-inf.el (inferior-octave-directory-tracker): Anchor + regexp match to beginning of command string. + + Wed Nov 26 00:38:31 1997 John W. Eaton + + * configure.in (SPECIAL_MATH_LIB): If libdxml exists on DU + systems, define SPECIAL_MATH_LIB. + * Makeconf.in (SPECIAL_MATH_LIB): Substitute it. + + Wed Nov 19 01:54:11 1997 John W. Eaton + + * aclocal.m4 (OCTAVE_CXX_NEW_FRIEND_TEMPLATE_DECL): Don't forget + to call AC_LANG_RESTORE. + + * configure.in (CXX_VERSION): Require 2.7.2 or later. + + Wed Nov 19 01:38:58 1997 Mumit Khan + + * aclocal.m4 (OCTAVE_CXX_NEW_FRIEND_TEMPLATE_DECL): New macro + check for new friend template declaration syntax (guiding + declarations in DWP). + * configure.in: Use it. + * config.h.in: Add undef for CXX_NEW_FRIEND_TEMPLATE_DECL. + + * configure.in (CC_VERSION, CXX_VERISON): Check for egcs snapshots. + + Mon Oct 20 01:31:45 1997 John W. Eaton + + * configure.in: Reprint important warning messages at the end of + the run. + + Fri Oct 17 04:43:27 1997 John W. Eaton + + * Include the following change from RMS for octave-mode.el: + + 1997-04-22 Richard Stallman + + * octave-mod.el (inferior-octave-output-list): Declare here + to avoid compiler warnings. + (inferior-octave-output-string): Likewise. + (inferior-octave-receive-in-progress): Likewise. + + Tue Oct 14 10:48:28 1997 Kurt Hornik + + * emacs/octave-mod.el (octave-block-match-alist): Move + `otherwise' to right after `case' to have octave-close-block() + correctly close a `switch' block by `endswitch'. + + Thu Oct 2 01:37:15 1997 John W. Eaton + + * aclocal.m4 (OCTAVE_FLIBS): Ignore -lc and -lgcc. + From "Ram'on Garc'ia Fern'andez" + + * mkoctfile.in: Handle -IDIR option. + + Thu Sep 25 11:47:45 1997 John W. Eaton + + * mkoctfile.in: Really add link options to link command. + Also handle -LDIR options. + + Fri Sep 19 09:35:59 1997 Kurt Hornik + + * octave-inf.el (inferior-octave-startup-args): Set to '("-i") to + force interactive behavior. + + Wed Sep 10 15:31:03 1997 Kurt Hornik + + * emacs/octave-mod.el (octave-auto-indent): New variable. + (octave-electric-semi, octave-electric-space): Use it. + + * emacs/octave-mod.el (octave-maybe-insert-continuation-string): New + function. + (octave-auto-fill): No longer calls do-auto-fill. Should now + avoid breaking lines after comment starts or before code line + continuation expressions. + (octave-fill-paragraph): Move forward a line if octave-auto-fill + gave up. + + * emacs/octave-mod.el (octave-before-magic-comment-p): New function. + (octave-comment-indent): Handle magic comments correctly. + (calculate-octave-indent): Handle magic comments correctly. + + * emacs/octave-inf.el (inferior-octave-prompt): Include the `debug' + prompt issued by the Octave `keyboard' command. + + * emacs/octave-mod.el (octave-abbrev-table): Added abbrevs for switch, + case, otherwise, and endswitch. + (octave-begin-keywords): Added switch. + (octave-else-keywords): Added case and otherwise. + (octave-end-keywords): Added endswitch. + (octave-block-match-alist): Added an entry for switch syntax. + (calculate-octave-indent): Added support for switch syntax. + (octave-block-end-offset): New function. + (octave-comment-indent): Fix a typo. + + * emacs/octave-hlp.el: Provide octave-hlp. + + * emacs/octave-inf.el: Provide octave-inf. + + Sun Sep 7 23:16:33 1997 John W. Eaton + + * configure.in Don't use OCTAVE_SET_DEFAULT to set values for + bindir, datadir, exec_prefix, includedir, infodir, libdir, + libexecdir, mandir. + Don't use AC_PREFIX_DEFAULT, since we don't want to override the + default setting anyway. + + Tue Aug 26 13:30:36 1997 John W. Eaton + + * octave-bug.in: CC bug report to user if $USER or $LOGNAME is set. + + Mon Aug 25 11:06:54 1997 John W. Eaton + + * octave-bug.in: Avoid clobbering existing dead bug report files + by numbering them. + + Wed Aug 13 20:34:14 1997 John W. Eaton + + * emacs/octave-mod.el (octave-before-magic-comment-p): New function. + (calculate-octave-indent, octave-comment-indent): Use it. + + Sun Aug 3 15:33:18 1997 John W. Eaton + + * info: Delete subdirectory. + * Makefile.in (TARGETS, help): Delete info. + * octMakefile.in (DISTSUBDIRS, BINDISTSUBDIRS): Delete info + (binary-dist): Don't strip info/info. + * install-octave: Don't install info. + * configure.in: Don't run configure in info subdirectory. + + Fri Jul 25 14:05:15 1997 John W. Eaton + + * aclocal.m4 (OCTAVE_FLIBS): Avoid adding -lcrt0.o to FLIBS. + + Thu Jul 17 13:31:08 1997 John W. Eaton + + * aclocal.m4 (OCTAVE_FLIBS): Only accept an ld_run_path that is + absolute. + + Wed Jul 9 19:27:38 1997 John W. Eaton + + * configure.in: Also check for getwd. + + Tue Jul 8 17:47:11 1997 John W. Eaton + + * aclocal.m4 (OCTAVE_FLIBS): Avoid grabbing an argument starting + with a - as an option for another argument. + + Wed Jul 2 21:34:15 1997 John W. Eaton + + * emacs/octave-mod.el (octave-auto-indent): New variable. + (octave-electric-semi, octave-electric-space): Use it. + + Thu Jun 26 22:16:59 1997 John W. Eaton + + * configure.in: Only set GCC_IEEE_FP_FLAG to -mieee-fp on Intel + systems if it seems to work. + + Mon Jun 23 09:16:56 1997 John W. Eaton + + * configure.in (BOUNDS_CHECKING): Fix comment, allow bounds + checking to be enabled. + + Fri Jun 20 14:26:17 1997 John W. Eaton + + * configure.in: Define SH_LD, SH_LDFLAGS, and RLD_FLAG for + sparc-sun-sunos4*. + + * mkoctfile.in: Handle --strip. + + Sun Jun 15 16:24:03 1997 John W. Eaton + + * octMakefile.in (DISTSUBDIRS): Delete readline. + (BINDISTSUBDIRS): Delete readline and kpathsea. + (DISTDIRS): Add readline. + + Wed Jun 11 16:28:36 1997 John W. Eaton + + * mkoctfile.in: Allow more options, support for C and Fortran + source, existing object files, etc. Based on patch from Guido + Dietz . + + Fri Jun 6 15:20:42 1997 John W. Eaton + + * mkoctfile.in: Use eval to invoke compilation and linking + commands. + + * octMakefile.in (dist, binary-dist): Don't worry about npsol or qpsol. + * configure.in: Don't create libcruft/fsqp/Makefile, + libcruft/npsol/Makefile, or libcruft/qpsol/Makefile. + + * octMakefile.in (DISTFILES): Don't distribute MAKEINFO.PATCH. + + * octMakefile.in (DISTFILES): Don't distribute README.NLP. + * configure.in: Delete checks for FSQP, NPSOL, and QPSOL. + * acconfig.h: Delete undefs for FSQP, NPSOL, and QPSOL. + + * readline: Update to new version (2.1). + + Thu Jun 5 01:38:04 1997 John W. Eaton + + * configure.in (SONAME_FLAGS): Define for some systems. + * Makeconf.in: Substitute value here. + + * Makeconf.in (STATIC_LIBS): New variable. + * configure.in: Handle --enable-static. + + * Makeconf.in (LIBEXT, SHLEXT_VER): New macros. + (octlibdir, mk-libdir-link): Delete. + + Wed Jun 4 00:07:29 1997 John W. Eaton + + * Makeconf.in (mk-includedir-link, mk-libdir-link): Make them work. + + * configure.in (OCTAVE_PROGRAM_INVOCATION_NAME): Delete check. + * aclocal.m4 (OCTAVE_PROGRAM_INVOCATION_NAME): Delete macro. + + Mon Jun 2 13:56:26 1997 John W. Eaton + + * configure.in: Move checks for RANLIB, AR, and ARFLAGS before + checks for libf2c. + + Fri May 30 14:59:59 1997 John W. Eaton + + * configure.in: Fix typo in check for $with_f77. + + Thu May 22 16:48:34 1997 John W. Eaton + + * configure.in (AC_OUTPUT): Remove duplicate entry for emacs/Makefile. + + * octMakefile.in (INSTALL_SUBDIRS): New macro. + (install): Use it. + + * kpathsea: Update to new version (3.0). + + * readline: Update to new version (2.1-beta2). + + Wed May 21 16:33:33 1997 John W. Eaton + + * octMakefile.in (install, install-strip): Append version + information to octave-bug and mkoctfile. + (install, install-strip): Remove octave-bug and mkoctfile first. + Ensure link is made in include directory. + + * configure.in (octlibdir): New variable. + * Makeconf.in: Substitute it here. + (do-subst-config-vals): Add -I${octincludedir} to INCFLAGS. + Add -L${octlibdir} to LIBFLAGS. + + * Makeconf.in (mk-includedir-link, mk-libdir-link): New macros. + + Mon May 5 00:58:00 1997 John W. Eaton + + * configure.in: Make --enable-readline work again. + * Makeconf.in: Ditto. + + Tue Apr 8 12:38:18 1997 John W. Eaton + + * mkoctfile.in: Do substitute SH_LD and SH_LDFLAGS. Don't + substitute or use LIBFLAGS, RLD_FLAG, OCTAVE_LIBS, FLIBS, LEXLIB, + TERMLIBS, LIBS, LDFLAGS, LIBPLPLOT, or LIBDLFCN. Use $SH_LD and + $SH_LDFLAGS, not $CXX -shared. + + * Makeconf.in (do-subst-config-vals): Also substitute SH_LD and + SH_LDFLAGS. + + Fri Mar 28 16:53:08 1997 John W. Eaton + + * configure.in: Don't add -fpe1 to FFLAGS on Alpha OSF/1 systems + unless we are also using a version of gcc that appears to support + IEEE floating point. + + * aclocal.m4 (OCTAVE_FLIBS): Require OCTAVE_HOST_TYPE. + Skip -lkernel32 on cygwin32 systems. + + Wed Mar 26 17:04:11 1997 John W. Eaton + + * COPYING: Update to latest version that includes correct address + for the FSF. + + Tue Mar 25 21:46:49 1997 John W. Eaton + + * aclocal.m4 (OCTAVE_CXXLIBS): Delete macro definition. + * configure.in, mkoctfile.in, Makeconf.in, octave-bug.in: + Delete use of OCTAVE_CXXIBS. + + Thu Mar 13 11:44:46 1997 John W. Eaton + + * configure.in: Move extra checks for Fortran compiler above + checks for dynamic linking and shared library stuff. + Handle --with-f77. Check for Fortran compiler compatibility, even + if using g77. Handle --enable-picky-flags. + + * configure.in: Don't set special PIC options on SGI systems, + since PIC is apparently the default. + + * aclocal.m4 (OCTAVE_CHECK_EXCLUSIVE_WITH_OPTIONS, + OCTAVE_HOST_TYPE, OCTAVE_SET_DEFAULT): New macros. + * configure.in: Use them. + + * octMakefile.in (distclean): Don't remove configure, config.h.in, + BUGS, or INSTALL.OCTAVE. + + Wed Mar 12 16:56:56 1997 John W. Eaton + + * Makefile.in (install-strip): Don't try to set INSTALL_PROGRAM here. + + * emacs/Makefile.in (install-strip): New target. + * dlfcn/Makefile.in: Ditto. + * examples/Makefile.in: Ditto. + + Sun Mar 9 03:44:33 1997 John W. Eaton + + * config.h.bot (STATIC_CAST): Delete definition. + + Thu Mar 6 03:26:41 1997 Kurt Hornik + + * emacs/octave-hlp.el: Provide octave-hlp. + * emacs/octave-inf.el: Provide octave-inf. + + * examples/info-emacs-octave-help: Require octave-hlp instead of + loading it. + + Tue Mar 4 12:19:24 1997 Kurt Hornik + + * emacs/octave-mod.el: Properly indent switch statement. + + Mon Mar 3 15:44:42 1997 John W. Eaton + + * dlfcn/Makefile.in (DISTFILES): Add ftp-site. + + Sat Mar 1 15:23:14 1997 John W. Eaton + + * configure.in: Improve checks for gettimeofday. + + * Version 2.0.5 released. + + Sat Mar 1 01:34:08 1997 John W. Eaton + + * octMakefile.in (dist): Also delete CVS junk + + * config.h.bot: Unconditionally define WITH_KPATHSEARCH. + + Fri Feb 28 01:56:52 1997 John W. Eaton + + * emacs/octave-mod.el (octave-end-keywords): Add endswitch. + (octave-end-keywords): Add otherwise and case. + (octave-else-keywords): Add switch. + (octave-abbrev-table): Add abbrevs for all of them. + + * configure.in (f77_rules_frag): Set default value to /dev/null + and redfine as needed. + (bsd_gcc_kluge_targets_frag): Likewise. + + Wed Feb 26 12:17:05 1997 John W. Eaton + + * octMakefile.in (maintainer-clean): Delete some more stuff. + + Fri Feb 21 20:38:25 1997 John W. Eaton + + * Makeconf.in (do-subst-config-vals): Remove extra -L from + RLD_FLAG substitution. + + Thu Feb 20 02:58:05 1997 John W. Eaton + + * Version 2.0.4 released. + + * configure.in (SH_LDFLAGS): Add -fPIC for HP-UX. + + Tue Feb 18 09:22:04 1997 John W. Eaton + + * configure.in (SH_LDFLAGS): Fix typo in last change. + (RLD_FLAG): Don't forget to put -shared in SH_LDFLAGS for alpha + systems. + + * Version 2.0.3 released. + + Tue Feb 18 00:33:36 1997 John W. Eaton + + * octMakefile.in (binary-dist): Strip src/octave and info/info. + + * examples/oregonator.m, examples/oregonator.cc: New files. + * examples/Makefile.in (SOURCES): Add them to the list. + + Fri Feb 14 14:07:08 1997 John W. Eaton + + * install-octave: Don't fail if LIBRARIES file is missing. + Don't try to install .oct files if there aren't any. + + * octMakefile.in (bin-dist-type): Delete target. + (binary-dist): Don't depend on bin-dist-type. + Don't delete config.status or config.h here. + (BINDISTFILES): Include config.status and config.h here. + (dist): Don't delete Makefile here. + (binary-dist): Avoid empty chmod command. + + * Makefile.in (config-check): New target. + (all): Depend on config-check. + (static-binary-distribution, dynamic-binary-distribution): Delete. + (binary-distribution): If in source directory, run configure and + make with appropriate args. + + * octMakefile.in (maintainer-clean, distclean): Don't delete Makefile. + (CONF_DISTFILES): Distribute Makefile too. + + Thu Feb 13 16:25:09 1997 John W. Eaton + + * configure.in (SH_LD, SH_LDFLAGS): New variables. + * Makeconf.in: Substitute them. + + * configure.in (SH_LIBS, SH_FLIBS, SH_TERMLIBS): Delete. + + * Makeconf.in (SH_LIBS, SH_FLIBS, SH_TERMLIBS): Delete. + + * octave-bug.in: Reinstate RLD_FLAG. + * mkoctfile.in: Likewise. + * Makeconf.in: Likewise. + + * configure.in: Reinstate RLD_FLAG, but make it optional. + + Tue Feb 4 14:10:35 1997 John W. Eaton + + * octMakefile.in (binary-dist): Use find and xargs instead of + requiring chmod to support X. + + Mon Feb 3 23:51:08 1997 John W. Eaton + + * examples/info-emacs-octave-help: Update from Kurt Hornik. + + Fri Jan 31 20:41:15 1997 John W. Eaton + + * dlfcn/Makefile.in (all): Make libdlfcn.a, not dlfcn.a. + + Wed Jan 29 00:18:55 1997 John W. Eaton + + * Makeconf.in: Use -M instead of -MM to generate dependencies. + Don't strip $(srcdir) from output. + + * examples/Makefile.in (install): Install info-emacs-info and + info-emacs-octave-help in $(archlibdir). + + * configure.in (INSTALL_SCRIPT): Substitute this in Makefiles. + * octMakefile.in (INSTALL_SCRIPT): New macro. + (install): Use it. + * Makefile.in (install-strip): New target. + + Tue Jan 28 09:48:32 1997 John W. Eaton + + * aclocal.m4 (OCTAVE_FLIBS): Don't look for values-X*.o. This is + apparently added automatically now by gcc. Don't put space + between -L and directory name. + + * Makefile.in (help): New target. + (header-msg): extract from all. + (all, help): Depend on header-msg. + + * aclocal.m4 (ld_run_path): Fix typo in last fix. + + Mon Jan 27 00:10:10 1997 John W. Eaton + + * Version 2.0.2 released. + + * configure.in: Add check for usleep(). + (bsd_gcc_kluge_targets_frag): New fragment. + + * Makefile.in: Delete `internal' targets. + (static-binary-dist, dynamic-binary-dist): Special cases. + + * octMakefile.in (static-binary-dist, dynamic-binary-dist): + New targets. + (binary-dist, bin-dist): Delete. + + Sun Jan 26 19:39:51 1997 John W. Eaton + + * emacs/Makefile.in: New file. + * configure.in: create emacs/Makefile. + * octMakefile.in: Move/add emacs dir to the appropriate lists. + + Sat Jan 25 22:27:14 1997 John W. Eaton + + * aclocal.m4 (OCTAVE_CHECK_TYPE): New macro, stolen from bash. + * configure.in: Use it. + * acconfig.h: Add #undef for sigset_t. + + * configure.in (RLD_FLAG): Delete. + * mkoctfile.in (RLD_FLAG): Delete. + * octave-bug.in (RLD_FLAG): Delete. + * Makeconf.in (RLD_FLAG): Delete. + + * Makefile.in (bin-dist): New target. + + * install-octave: Rename from doinstall.sh. Update for 2.x. + + Wed Jan 22 11:14:07 1997 John W. Eaton + + * aclocal.m4 (ld_run_path): Anchor search at beginning of line to + avoid GNU sed bug on HP-UX systems. Use just one sed command. + + * emacs/octave-hlp.el, emacs/octave-inf.el, emacs/octave-mod.el: + New files from Kurt Hornik. + * emacs/octave.el: Delete. + + Mon Jan 20 11:16:21 1997 John W. Eaton + + * mkoctfile.in (ALL_CXXFLAGS): Delete reference to -lg++. + + * configure.in (RLD_FLAG): For sparc-sun-sunos4*, remove space + between -L and $(libdir). + (FPICFLAG): If using g77, set it to -fPIC. + + Sun Jan 19 15:57:20 1997 John W. Eaton + + * Makeconf.in, configure.in: Delete FUGLY. + + Wed Jan 8 23:12:02 1997 John W. Eaton + + * configure.in (DEFAULT_PAGER): On cygwin32 systems, also look for + more.com. + + Tue Jan 7 00:16:35 1997 John W. Eaton + + * Version 2.0.1 released. + + Thu Dec 19 16:18:59 1996 John W. Eaton + + * aclocal.m4 (OCTAVE_FLIBS): Only add -Xlinker args if compiler is + gcc. + + Sat Dec 14 09:46:50 1996 John W. Eaton + + * README.Linux: New file. + * octMakefile.in: Distribute it. + + Fri Dec 13 22:37:49 1996 John W. Eaton + + * configure.in (TERMLIBS): Look for termcap and terminfo after + ncurses and curses. + + Thu Dec 12 02:27:08 1996 John W. Eaton + + * Makeconf.in (ALL_LDFLAGS): Add CPICFLAG here since gcc needs it + on some systems. + + * configure.in (FPICFLAGS): Set to -fPIC if using g77 on HP/UX. + + * Makefile.in, octMakefile.in: Delete all doc-dist, local-dist, + and split-dist targets. Likewise for all other Makefiles in the + subdirectories. + + * README.Windows: Renamed from README.WINDOWS. + + Tue Dec 10 01:33:52 1996 John W. Eaton + + * Version 2.0 released. + + * octMakefile.in (binary-dist): Print message instead of making a + binary distribution. + + Mon Dec 9 11:28:27 1996 John W. Eaton + + * README.WINDOWS: New file. + * octMakefile.in: Distribute it. + + * configure.in: Substitute EXE. On cygwin32 systems, set it to .exe. + * Makeconf.in (EXE): Add definition. + + * configure.in: On cygwin32 systems, set default to disable GNU info. + + * aclocal.m4 (OCTAVE_STRING_NPOS): New macro. + * configure.in: Call it. + + * acconfig.h: Add undef for NPOS. + * config.h.bot: Remove kluge for deciding whether to define NPOS. + + Thu Dec 5 11:05:02 1996 John W. Eaton + + * config.sub: Update to current version from FSF. + + * Makeconf.in (ALL_LDFLAGS): Add $(FORTRAN_MAIN_FLAG). + * configure.in (FORTRAN_MAIN_FLAG): Substitute it. + + * octave-bug.in: Prompt for abort, edit, list, or send. + Get subject from message in case it has been edited. + + * configure.in: When looking for libf2c, provide definitions for + MAIN_ and MAIN__. + + Tue Dec 3 11:35:35 1996 John W. Eaton + + * config.guess: Delete second copy of script in file. + + Sun Nov 24 21:40:25 1996 John W. Eaton + + * configure.in: Set GCC_IEEE_FP_FLAG to -mieee-fp on all x86 + systems, not just those running Linux. + + Fri Nov 22 15:10:34 1996 John W. Eaton + + * emacs/octave.el: Update from Kurt Hornik to with fixes for + fill-paragraph. + + Wed Nov 20 00:33:03 1996 John W. Eaton + + * Version 1.93. + + * aclocal.m4 (OCTAVE_STRUCT_GR_PASSWD): New macro. + * configure.in: Use it. + * acconfig.h (HAVE_GR_PASSWD): Add undef. + + Tue Nov 19 23:10:01 1996 John W. Eaton + + * Makeconf.in (INCFLAGS): Add libcruft/misc directory. + + Thu Nov 14 00:07:31 1996 John W. Eaton + + * emacs/octave.el (octave-text-functions): Change set and show to + gset and gshow. + + * Makeconf.in (TEXI2DVI): Define to be our own private version. + + * texi2dvi: New file. + * octMakefile.in (DISTFILES): Add it to the list. + + * configure.in: Don't substitute values in src/mk-oct-links.in. + + * emacs/octave.el: Update to version 0.8.6, from Kurt Hornik. + + * configure.in (RLD_FLAG): Surround case pattern in changequote. + + * Version 1.92. + + Wed Nov 13 11:04:26 1996 John W. Eaton + + * configure.in: Don't set or substitute LIBINFO. + (infofile): Set and substitute a default value. + + * Makeconf.in (do-subst-default-values): Substitute it here. + + * configure.in: If running on an SCO system, define SCO, and force + HAVE_ISINF and HAVE_ISNAN to be defined. + Also check for ieeefp.h and nan.h. + * acconfig.h (HAVE_ISINF, HAVE_ISNAN, SCO): Add undefs. + + Tue Nov 12 21:50:49 1996 John W. Eaton + + * MAKEINFO.PATCH: Update to use patch relative to texinfo-3.9. + + * INFO.PATCH: New file. + * octMakefile.in (DISTFILES): Add it. + + * info: Update to current release from texinfo-3.9. + + Mon Nov 11 23:56:58 1996 John W. Eaton + + * config.h.bot: Only check value of __GNUC__ and __GNUC_MINOR__ if + __GNUC__ is defined. + + Fri Nov 8 11:15:07 1996 John W. Eaton + + * Makeconf.in (version): Look in $(TOPDIR)/src then + $(srcdir)/$(TOPDIR)/src for version.h. + + * configure.in (TERMLIBS): Print warning message if no term + library is found. + (CXXLIB_LIST, CXXLIB_PATH, FLIB_LIST, FLIB_PATH): Delete. + * Makeconf.in (CXXLIB_LIST, CXXLIB_PATH, FLIB_LIST, FLIB_PATH): + Delete. + (do-subst-default-vals): Delete CXXLIB_LIST, CXXLIB_PATH, + FLIB_LIST, and FLIB_PATH from the list. + + Thu Nov 7 12:43:36 1996 John W. Eaton + + * octMakefile.in (bin-dist-tar): Delete references to octtopnm. + + * configure.in (RLD_FLAG): Define if x86-linux. + + * Version 1.91. + + Wed Nov 6 16:26:39 1996 John W. Eaton + + * configure.in: Add checks for group stuff. + + Tue Nov 5 12:32:30 1996 John W. Eaton + + * configure.in: Add checks for geteuid, getuid. + + * configure.in: Comment out code to handle --enable-readline since + it doesn't work yet. + + * aclocal.m4 (OCTAVE_SIGNAL_CHECK, OCTAVE_REINSTALL_SIGHANDLERS): + New checks stolen from bash 2.0 config. + * configure.in: Use them. + + * acconfig.h: Add #undefs for HAVE_BSD_SIGNALS, HAVE_POSIX_SIGNALS, + HAVE_USG_SIGHOLD, and MUST_REINSTALL_SIGHANDLERS. + + Mon Nov 4 11:31:22 1996 John W. Eaton + + * configure.in: Check for gethostname in libsocket. Apparently + needed for some SCO systems. + + * emacs/octave.el: Update to version 0.8.5 from Kurt Hornik. + + Fri Nov 1 01:33:40 1996 John W. Eaton + + * octMakefile.in (octave-bug, mkoctfile): After substituting + values, chmod a+rx. + + Thu Oct 31 13:50:06 1996 John W. Eaton + + * octMakefile.in (DISTFILES): Add NEWS.[0-9]. + * NEWS.1: Old news. + * NEWS: Just keep news since last major release. + + Wed Oct 30 01:04:13 1996 John W. Eaton + + * Version 1.90. + + * configure.in: Default is now no internal bounds checking. + + * Makefile.in (all): Fix message to say 2.7.2, not 2.7.0. + + * config.h.bot (GCC_ATTR_NORETURN): Rename from NORETURN. + (GCC_ATTR_UNUSED): Rename from GCC_ATTRIBUTE_UNUSED. + (NPOS): Define if using gcc 2.8.x or later. + + * octMakefile.in (DIRS_TO_MAKE): Add localarchlibdir to list. + + * configure.in (localarchlibdir): New variable. + * Makeconf.in (localarchlibdir): Substitute it. + (do-subst-default-vals): Likewise. + + Sun Oct 27 14:03:36 1996 John W. Eaton + + * Makeconf.in (do-subst-config-vals): Split into two sed commands + to try to avoid fixed limits in some seds and/or systems. + + Fri Oct 25 01:13:45 1996 John W. Eaton + + * config.h.bot: Add definition for GCC_ATTRIBUTE_UNUSED. + + * configure.in: Define RUSAGE_TIMES_ONLY if cygwin32. + * acconfig.h: Add undef. + + Thu Oct 24 21:17:53 1996 John W. Eaton + + * config.guess: Update to version that understands what to do for + cygwin32 systems. + + Fri Oct 18 12:23:57 1996 John W. Eaton + + * configure.in: Don't comment out substitutions for plplot stuff. + + Wed Oct 16 12:01:37 1996 John W. Eaton + + * examples/Makefile.in (install): New target. + + Tue Oct 15 14:40:51 1996 John W. Eaton + + * configure.in: Comment out plplot stuff. + In commands to get gxx_version and gcc_version, use simpler sed + command to avoid confusing brain-dead vendor-supplied seds. + + Mon Oct 14 11:09:12 1996 John W. Eaton + + * octMakefile.in (maintainer-clean distclean): Remove mkoctfile too. + (kpathsea.info): New target. + (dist-info-files): New target. + (links-for-dist, links-for-bin-dist, local-dist-tar): + Depend on dist-info-files instead of individual files. + + Sat Oct 12 00:17:06 1996 John W. Eaton + + * examples/Makefile.in (clean, mostlyclean): New targets. + + * octMakefile.in (CLEANSUBDIRS): New macro. + Use it for clean targets. + + * config.h.bot (STATIC_CAST, DYNAMIC_CAST, REINTERPRET_CAST): + New macros. + + Wed Sep 25 12:24:20 1996 John W. Eaton + + * configure.in: Don't look in /usr/ucb/include to find getrusage + on Solaris systems since that just seems to cause trouble. + * Makeconf.in (UCB_INCFLAGS): Delete. + + Fri Aug 30 09:07:23 1996 John W. Eaton + + * configure.in (TERMLIBS): Add check for ncurses. + + Tue Aug 20 21:40:26 1996 John W. Eaton + + * configure.in: Always set FPICFLAG, CPICFLAG, CXXPICFLAG, SHLEXT, + RLD_FLAG, DLFCN_DIR, even if SHARED_LIBS is false. + + Thu Aug 15 14:39:07 1996 John W. Eaton + + * configure.in (gxx_version, gcc_version): Strip out cygnus- from + the version number. + + Tue Jul 30 12:55:43 1996 John W. Eaton + + * aclocal.m4 (OCTAVE_FLIBS): Also check for -bI:FILE arg to ld, + for AIX systems. + + Thu Jul 25 03:09:29 1996 John W. Eaton + + * configure.in: On AIX systems, add "-ll -lld" to LIBDLFCN. + + Fri Jul 19 13:02:05 1996 John W. Eaton + + * configure.in: If using g77 on alpha, don't add -fpe1 to FFLAGS. + + Mon Jul 15 14:26:48 1996 John W. Eaton + + * config.sub: Update to new version from FSF (gcc sources). + + Thu Jun 13 16:38:51 1996 John W. Eaton + + * configure.in: Look for g77 before other fortran compilers. + + Thu Jun 6 00:05:47 1996 John W. Eaton + + * configure.in: Add check for multiple plot windows in gnuplot. + * acconfig.h: Add #undef for GNUPLOT_HAS_FRAMES. + + Wed May 22 15:05:40 1996 John W. Eaton + + * configure.in (UCB_INCFLAGS): Another kluge to try to find + getrusage on Solaris systems. + * Makeconf.in Substitute it. + + * configure.in (SH_LIBS, SH_FLIBS, SH_TERMLIBS): Define. + * Makeconf.in: Substitute. + + Wed May 22 02:42:32 1996 Kurt Hornik + + * emacs/octave.el (octave-indent-new-line): Protect + octave-indent-line with save-excursion. + (octave-calc-indent-this-line): Attempt to handle end tokens that + are not on separate lines. + (octave-electric-semi): Make `;' self-insert if inside comment. + (octave-previous-line): Don't try to go back past the beginning of + the buffer. + + Tue May 21 23:11:46 1996 John W. Eaton + + * configure.in (F77): Also check for f90. + + Mon May 20 12:22:54 1996 John W. Eaton + + * emacs/octave.el (octave-indent-new-line): Make it do what the + docstring says it does. + + * octave-bug.in: Fix previous change so it also matches things + like 1.90, not just 1.1.90. + + Fri May 17 09:58:49 1996 Kurt Hornik + + * emacs/octave.el (octave-electric-semi): Also call octave-indent-line + to indent the current line after inserting a semicolon. + + Fri May 17 02:53:49 1996 John W. Eaton + + * octMakefile.in (DIRS_TO_MAKE): Add octincludedir. + (all): Add mkoctfile. + + * configure.in: Don't set values for exec_prefix, bindir, datadir, + libdir, libexecdir, includedir, mandir, or infodir, so that they + can be set from the configure command line. + + * configure.in, Makeconf.in: Handle mandir, man1dir and man1ext. + Change topincludedir to includedir. Use octincludedir as the + subdirectory of includedir where we really install include files. + + * octave-bug.in (BUGADDR): Also set to octave-maintainers if this + looks like a pretest version number. + + * Makeconf.in (do-subst-config-vals): Use $< instead of + referencing $(srcdir) directly. + (do-subst-default-vals): Likewise. + + * octMakefile.in (octave-bug): Depend on octave-bug.in + (mkoctfile): Likewise, depend on mkoctfile.in. + + Thu May 16 11:49:46 1996 John W. Eaton + + * octMakefile.in (DISTFILES): Add mkoctfile.in. + (install): Install mkoctfile too. + + * aclocal.m4 (OCTAVE_F2C_F77_COMPAT): Fix typo in last change + + Mon May 13 04:02:29 1996 John W. Eaton + + * configure.in (UGLY_DEFS): Quote " with more \'s. + + * Makeconf.in (do-subst-config-vals): Quote substitutions here. + * octave-bug.in, mkoctfile: Not here. + + * octMakefile.in (octave-bug, mkoctfile): Depend on Makeconf, + octMakefile. + + * Makeconf.in (do-subst-default-vals): New definition, from + src/Makefile.in. + + * Makeconf.in (do-subst-config-vals): Define here. + * octMakefile.in: Not here. + + * octave-bug.in: Handle more configuration stuff. + + * configure.in (config_opts): Set from ac_configure_args and subst. + * Makeconf.in: Handle config_opts. + * octMakefile.in (do-subst-config-vals): Substitute them. + + Sun May 12 03:37:55 1996 John W. Eaton + + * Makeconf.in (TERMLIBS): Substitute here. + + * configure.in (topincludedir): New variable. + * Makeconf.in (libexecdir): Substitute it. + + * octMakefile.in (do-subst-config-vals): Define new command. + (octave-bug): Use it. + (mkoctfile): New target. + + * Makefile.in (TARGETS): Add mkoctfile. + + * examples: New subdirectory. + * octMakefile.in: Add it to the appropriate lists. + * configure.in: Create examples/Makefile. + + * octMakefile.in (DIRS_TO_MAKE): Add $(libdir) here. + (install): Use INSTALL_PROGRAM to install octave-bug script. + Also install config.h. + + * aclocal.m4 (OCTAVE_F2C_F77_COMPAT): Provide a definition for + MAIN__ on Linux systems. + + Tue Apr 30 05:44:29 1996 John W. Eaton + + * configure.in: Handle --enable-bounds-check. + * acconfig.h: Add undef for BOUNDS_CHECKING + + Mon Apr 29 01:42:38 1996 John W. Eaton + + * configure.in (AC_FUNC_SETVBUF_REVERSED): Delete. Octave doesn't + need this check (it was for info, which has its own configure now). + + Sun Apr 28 05:41:26 1996 John W. Eaton + + * configure.in (DEFAULT_PAGER): Don't append -e to less here. + + Sat Apr 27 22:23:51 1996 John W. Eaton + + * configure.in: Check for pid_t and sys/types.h. + + Tue Apr 23 17:44:18 1996 John W. Eaton + + * configure.in: Check for fcntl.h, not sys/fcntl.h. + Add checks for various system calls. + + Sun Apr 7 16:42:54 1996 John W. Eaton + + * configure.in: Check for strdup. + + * Makefile.in (TARGETS): Add dlfcn. + * octMakefile.in (DISTSUBDIRS): Add dlfcn. + (SUBDIRS): Add @DLFCN_DIR@. + * configure.in: On AIX systems: set DLFCN_DIR=dlfcn when doing + shared libraries, bypass checks for dlopen, etc., set and + substitute LIBDLFCN and DLFCN_INCFLAGS. Create dlfcn/Makefile. + + Sat Apr 6 21:45:40 1996 John W. Eaton + + * Makeconf.in (%.d : %.cc, %.d : %.c): Add dependency for pic/%.o. + + Fri Mar 29 13:38:40 1996 John W. Eaton + + * octMakefile.in (maintainer-clean distclean): Delete mk-oct-links. + + Wed Mar 27 09:05:01 1996 John W. Eaton + + * aclocal.m4 (OCTAVE_FLIBS): Fix typo in message. + + Tue Mar 26 02:41:16 1996 John W. Eaton + + * configure.in (UGLY_DEFS): Undo previous change. + When checking for various libraries, don't check for main(), but + instead look for functions that are actually supposed to be in + those libraries. + Require autoconf 2.9. + If using solaris2, don't add /usr/ucblib/libucb.a to LIBS until + near the very end, then check for for getrusage and times just + after that. + + * Makeconf.in (UGLY_DEFS): Ditto. + + * octave-bug.in: Don't send empty bug reports. + + Sat Mar 23 04:55:46 1996 John W. Eaton + + * octMakefile.in (DISTDIRS): Omit plplot for now. + * Makefile.in (TARGETS): Likewise. + + Fri Mar 22 06:15:44 1996 John W. Eaton + + * configure.in: Add checks for sys/times.h and times(). + (GCC_IEEE_FP_FLAG): Define this if using gcc 2.8.x or later on + Alpha/OSF systems. + + Wed Mar 20 02:04:08 1996 John W. Eaton + + * octMakefile.in (octave.info): cd to doc/interpreter, not doc. + + Sun Mar 3 10:01:13 1996 John W. Eaton + + * config.h.bot: Define HEAVYWEIGHT_INDEXING here. + + * Makefile.in (TARGETS): Remove dld. + * octMakefile.in (DISTSUBDIRS): Ditto. + * configure.in: Don't create dld/Makefile. + Do create doc/fac/Makefile, doc/interpreter/Makefile, + doc/liboctave/Makefile, and doc/refcard/Makefile. + + Thu Feb 29 08:55:25 1996 John W. Eaton + + * Makeconf.in (%.o : %.c): Use pattern rule instead of suffix rule. + (%.o : %.cc): Likewise. + (pic/%.o : %.c, pic/%.o : %.cc): Use separate rules instead of + expecting one rule to generate two output files. + * configure.in (f77_rules_frag): Use separate rules here too. + + Mon Feb 26 03:34:12 1996 John W. Eaton + + * configure.in: If --disable-dl or --disable-shl, don't check for + dynamic linking functions. + (includedir): Append version. + + Wed Feb 14 12:20:57 1996 John W. Eaton + + * octMakefile.in (snapshot-version): Don't quote version number. + + * aclocal.m4 (OCTAVE_FLIBS): Avoid setting FLIBS=" ". + + Sat Feb 10 12:59:22 1996 John W. Eaton + + * glob/Makefile.in (install): New target. + + Fri Feb 9 14:00:53 1996 John W. Eaton + + * configure.in: Fix help text for --enable-shared option. + + Thu Feb 8 10:17:55 1996 John W. Eaton + + * octMakefile.in (CONF_DISTFILES): New variable. + (DISTFILES): Use it instead of listing things twice. + (CONF_DISTSUBDIRS): New variable. + (conf-dist): New target. + + * Makefile.in (TARGETS): Add conf-dist. + + * configure.in (CXX_VERSION, CC_VERSION): Substitute them. + * octMakefile.in (octave-bug): Substitute them here too. + * octave-bug.in: Put them in the configuration message. + + Sat Feb 3 08:53:56 1996 John W. Eaton + + * configure.in: RLD_FLAG should be empty by default, but give it a + value for alpha-dec-osf* systems. + + Fri Feb 2 23:03:40 1996 John W. Eaton + + * Makeconf.in: Actually do add substitutions for FPICFLAG, + CPICFLAG, and CXXPICFLAG. + + Thu Feb 1 14:58:16 1996 John W. Eaton + + * configure.in (%.c : %.f): Fix typo. + + Wed Jan 24 14:47:58 1996 John W. Eaton + + * configure.in: Also configure in glob subdirectory. + Make pattern rule say how to make .o from .f, not .f from .o. Duh. + + * octMakefile.in: Add glob stuff to the appropriate lists. + * Makeconf.in: Likewise. + + * aclocal.m4: Add test for program_invocation_name. + * configure.in: Use it here. + + * acconfig.h: Add #undef here. + + Mon Jan 22 17:32:00 1996 John W. Eaton + + * configure.in: Add checks for mode_t, off_t, size_t, uid_t, + dev_t, ino_t, and nlink_t typedefs. + * acconfig.h: Add undefs for dev_t, ino_t, and nlink_t. + + Sat Jan 20 21:05:49 1996 John W. Eaton + + * configure.in: For Fortran rules, use pattern rules instead of + suffix rules. + + Fri Jan 19 12:38:23 1996 John W. Eaton + + * configure.in: When checking for libf2c.a, add -lm and an extra lib. + + Wed Jan 10 16:36:43 1996 John W. Eaton + + * configure.i: Add missing colon in .o.f pattern for f2c rules. + + Mon Jan 8 23:18:39 1996 John W. Eaton + + * configure.in (AC_PROG_LN_S): New check. + * Makeconf.in (LN_S): Substitute it. + + * configure.in (libexecdir): New variable. + (archlibdir, octfiledir, localoctfiledir): Use it instead of libdir. + (datadir): Default to $(prefix)/share instead of $(prefix)/lib. + + * Makeconf.in (libexecdir): Substitute it. + + * configure.in (localoctfiledir): Use $(libdir), not $(datadir). + + Sun Jan 7 18:40:00 1996 John W. Eaton + + * aclocal.m4 (OCTAVE_SMART_PUTENV): New macro, extracted from + the kpathsearch library. + * configure.in: Call it. + + Fri Dec 29 22:07:52 1995 John W. Eaton + + * Makeconf.in (subdir-for-command): New definition for + SUBDIR_FOR_COMMAND using GNU Make `foreach' instead of shell `for' + command. + * libcruft/Makefile.in, scripts/Makefile.in, octMakefile.in: + Invoke new definition with `@'. + + Wed Dec 27 14:27:48 1995 John W. Eaton + + * octMakefile.in (SUBDIRS): Delete DLD_DIR. + (distclean): Delete Makerules.f77. + + * Makeconf.in (WITH_DLD): Delete variable. + + * configure.in: Delete support for dynamic linking with dld. + + * configure.in, Makeconf.in: Use consistent names for WITH_DL, + WITH_SHL, OCTAVE_LITE, and SHARED_LIBS + + * config.h.bot: Undo previous change. + * acconfig.h: Add #undef for WITH_DYNAMIC_LINKING. + * Makeconf.in: Substitute it here too. + * configure.in: Set it here. + + Tue Dec 26 00:12:14 1995 John W. Eaton + + * configure.in (AC_CONFIG_SUBDIRS): Delete libcruft. + (AC_OUTPUT): List libcruft files here. + + * configure.in, Makeconf.in: Handle Fortran compilation rules + using an included fragment in Makeconf. + + Mon Dec 25 22:14:21 1995 John W. Eaton + + * configure.in (CPICFLAG, CXXPICFLAG, FPICFLAG): New variables. + * Makeconf.in: Substitute them. + + * configure.in: Handle --enable-shared option. + Handle Fortran source files differently. + * Makeconf.in (SHARED_LIBS): Substitute shared_libs. + (SHLEXT, RLD_FLAG, fortran_rules_flag): Substitute these too. + (.c.o, .cc.o): Handle creating position independent code for + shared libraries. + + Sun Dec 24 00:29:12 1995 John W. Eaton + + * config.h.bot: Maybe define WITH_DYNAMIC_LINKING. + + * Makeconf.in (WITH_DL, WITH_SHL): Substitute values. + * acconfig.h: Add undefs for WITH_DL and WITH_SHL. + * configure.in: Handle --enable-dl and --enable-shl. + Check for -ldl and dlopen, dlsym, dlclose, and dlerror. + Check for -ldld and shl_load, shl_findsym. + (have_fortran_compiler): Quit if no suitable Fortran compiler is + found. + + Fri Nov 3 03:33:42 1995 John Eaton + + * emacs/octave-mode.el: Rename from octave.el. + + Wed Oct 11 19:22:12 1995 John Eaton + + * configure.in (GNUPLOT_BINARY): When checking for multiplot, + issue a `set term unknown' command first. + + Wed Oct 4 01:42:35 1995 John Eaton + + * config.guess: Add entry for PowerPC Macs running Machten. + + * octMakefile.in (dist-z): Remove old .gz file before creating new one. + + Mon Oct 2 19:17:22 1995 John Eaton + + * configure.in: Check to see if it looks like gnuplot supports + multiplot. + * acconfig.h: Add undef for GNUPLOT_HAS_MULTIPLOT. + + * acconfig.h: #undefs for HAVE_FINITE, HAVE_ISNAN, HAVE_ISINF, + HAVE_TERMIOS_H, HAVE_TERMIO_H, and HAVE_SGTTY_H removed. This + file should only have things that autoheader can't figure out. + + Sun Oct 1 17:08:37 1995 John Eaton + + * octMakefile.in (clean-tar): Also omit directories called OLD and + files beginning with =. + + Fri Sep 29 01:04:31 1995 John Eaton + + * ROADMAP: New file. + * (DISTFILES): Include it. + + * emacs: New subdirectory for Emacs-related stuff. + * octMakefile.in (DISTDIRS, BINDISTSUBDIRS): Include emacs. + (DISTFILES, BINDISTFILES): Don't include octave-mode.el. + + Tue Sep 26 03:56:39 1995 John Eaton + + * configure.in: Don't add -Wno-unused to CFLAGS or CXXFLAGS. + * config.h.bot: Remove definition of UNUSED. + + * config.sub: Replace with current version from FSF. + * config.guess: Likewise. + + Thu Sep 21 20:29:00 1995 John Eaton + + * configure.in (AR, ARFLAGS): Set defaults for these, but also + allow them to come from the environment. + * Makeconf.in (AR, ARFLAGS): New variables to substitute. + + Wed Sep 20 00:51:24 1995 John Eaton + + * octMakefile.in (maintainer-clean): Also remove Makeconf, + config.cache, config.h, and config.log. + + Tue Sep 19 17:20:32 1995 John Eaton + + * sighandlers.h [HAVE_SIGACTION && HAVE_SIGPROCMASK && + HAVE_SIGPENDING && HAVE_SIGSUSPEND]: #define HAVE_POSIX_SIGNALS. + + * configure.in: Check for sigaction(), sigprocmask(), + sigpending(), and sigsuspend() functions. + Don't do anything special about checking for termios.h, termio.h, + and sgtty.h. + + Mon Sep 18 22:39:33 1995 John Eaton + + * config.h.bot [__GNUC__]: Define NORETURN. + + Fri Sep 15 05:12:29 1995 John Eaton + + * configure.in (AC_C_BIGENDIAN): Remove test. + + Thu Sep 14 02:07:51 1995 John Eaton + + * configure.in (LIBPLPLOT): Disable plplot by default for now. + Check for mkdir, rmdir, rename, and umask. + + * All Makefile.in files: Convert from realclean to + maintainer-clean, for GNU coding standards. + + * configure.in: Call AC_FUNC_CLOSEDIR_VOID. + + Wed Sep 13 03:25:37 1995 John Eaton + + * configure.in: Do check for IEEE functions on the Alpha. + + Mon Sep 11 19:08:47 1995 John Eaton + + * configure.in: Call AC_STRUCT_ST_BLKSIZE, AC_STRUCT_ST_BLOCKS, + and AC_STRUCT_ST_RDEV. + + Tue Sep 5 02:02:35 1995 John Eaton + + * configure.in: Check for sys/param.h and sys/stat.h + Use AC_HEADER_TIME, not AC_TIME_WITH_SYS_TIME. + Use AC_HEADER_SYS_WAIT. + + Thu Aug 24 15:35:44 1995 John Eaton + + * configure.in: Don't set or call AC_SUBST for CXXFLAGS or CFLAGS, + and don't call AC_SUBST for LDFLAGS -- autoconf takes care of this. + If adding -Wall, add -Wno-unused too. + + Tue Aug 22 01:37:02 1995 John Eaton + + * Makefile.in (all): Update message. + + * config.h.bot: New file. + * octMakefile.in (DISTFILES): Add it to the list. + + * acconfig.h (USE_PLPLOT): Add #undef. + + Mon Aug 21 19:33:33 1995 John Eaton + + * Makefile.in (NO_DEP_TARGETS): New variable, for targets that can + be made without updating dependency files. + + Sun Jun 25 18:27:49 1995 John Eaton + + * configure.in (FFLAGS): Add -fpe1 on alpha-dec-osf1 systems. + + Thu May 4 22:26:34 1995 John Eaton + + * configure.in: export CC, CXX, and F77 before calling + AC_CONFIG_SUBDIRS. + + Mon May 1 14:17:07 1995 John Eaton + + * configure.in: Handle --with-plplot. + (AC_CONFIG_SUBDIRS): Add plplot directory if --with-plplot. + * plplot: New subdirectory. + * Makefile.in (plplot): New target. + * octMakefile.in (SUBDIRS): Add @PLPLOT_DIR@. + (DISTDIRS): Add plplot. + + * acconfig.h: Add #undef for GETTIMEOFDAY_NO_TZ. + + * configure.in: Improve check for gettimeofday. + + Mon May 1 12:50:03 1995 John Eaton (jwe@bullwinkle.che.utexas.edu) + + * acconfig.h (OCTAVE_LITE): Fix comment. + + Tue Apr 11 20:31:52 1995 John Eaton + + * configure.in (INFO_DIR, READLINE_DIR): New variables. + If $USE_GNU_INFO, AC_DEFINE it, don't AC_SUBST it. + Likewise, for USE_READLINE. + + * octMakefile.in (SUBDIRS): Substitute INFO_DIR and READLINE_DIR. + + * aclocal.m4 (OCTAVE_F77_UPPERCASE_NAMES): New macro. + (OCTAVE_F77_APPEND_UNDERSCORES): Require it. + * configure.in: Use it. + (info_subdir): If $USE_GNU_INFO, then run configure in info + subdirectory too. + Don't check for sys/ttold.h or sys/ptem.h. + + Mon Apr 10 00:17:57 1995 John Eaton + + * configure.in (UGLY_DEFS): Delete commands to create this. + * Makeconf.in (UGLY_DEFS): Delete substitution. + * Makeconf.in (UGLY_ALL_CFLAGS): Delete definition. + + * configure.in: Add scripts and libcruft to CONFIG_SUBDIRS. + Don't edit scripts or libcruft Makefiles here. + Reorganize checking for the Fortran compiler. + + * octMakefile.in (DISTFILES): Delete f2c-compat.sh flibs.sh + cxxlibs.sh from list. Add aclocal.m4. + * configure.in: Use new macros defined in aclocal.m4. Don't use + external shell scripts. Cache values. + + * aclocal.m4: New file. + + Sun Apr 9 12:47:27 1995 John Eaton + + * configure.in: Print status message before exiting. + Cache CXXLIBS and FLIBS. + + * acconfig.h: Delete #undefs for floating point format. + * octMakefile.in (DISTFILES): Delete float-type.c from list. + * configure.in: Don't try to determine floating point format at + configuration time. + + Mon Apr 3 21:46:10 1995 John Eaton + + * configure.in: Create scripts/time/Makefile too. + + * configure.in (gxx_version): Handle new gcc version message. + (gcc_version): Likewise. + + Wed Mar 29 22:59:42 1995 John Eaton + + * configure.in (AC_STRFTIME): Delete check. + (AC_STRUCT_TIMEZONE): New check. + + Wed Mar 22 08:31:21 1995 John Eaton + + * Makeconf.in (ALL_FFLAGS, FUGLY): New variables. + + * configure.in: Use AC_ARG_ENABLE and AC_ARG_WITH consistently. + Handle --with-g77. Substitute new variable FUGLY. If F77 is g77, + set it to -fugly. Substitute command for making .o from .f. + + Tue Mar 21 14:24:32 1995 John Eaton + + * cxxlibs.sh: Extract -R options like -L options. + * configure.in (FLIB_PATH, FLIB_LIST): Extract -R options along + with -L options. + + Tue Mar 21 14:20:55 1995 Paul Eggert + + * configure.in (CXX): Export; cxxlibs.sh needs this. + (FLIB_LIST, CXXLIB_LIST): Extract -R options along with -L options. + + * flibs.sh: Treat `-L foo' like `-Lfoo'. Extract -R options + like -L options. + + Tue Mar 21 08:08:06 1995 John Eaton + + * flibs.sh: Search for values-X*.o, not values-*.o. + + Fri Mar 10 10:32:27 1995 John Eaton + + * Makeconf.in (SUBDIR_FOR_COMMAND): New command definition. + * octMakefile.in: Use it. + + * octMakefile.in (install, uninstall, tags, TAGS, clean, + mostlyclean, distclean, realclean): Combine actions. + + Tue Feb 28 21:24:35 1995 John Eaton + + * configure.in (FC): Set to $F77 and substitute it. + * Makeconf.in (FC): Add substitution line. + + Sun Feb 26 00:20:19 1995 John Eaton + + * dointsall.sh: Create ls-R database. + + * configure.in: Configure kpathsea using AC_CONFIG_SUBDIRS(). + Remove check for SMART_PUTENV. + Remove kpathsea/c-auto.h from AC_CONFIG_HEADER(). + + * make: New directory, for kpathsea configuration. + * octMakefile.in (DISTDIRS): Add it + + * kpathsea: Update with 2.6 distribution. + + * Makefile.in (TARGETS): New variable. Combine all identical targets. + + * configure.in (LIBINFO, LIBREADLINE): New variables to substitute. + + Sat Feb 25 18:47:11 1995 John Eaton + + * acconfig.h (USE_READLINE): Add #undef. + * configure.in: Add support for --enable-readline. + + * acconfig.h (USE_GNU_INFO): Add #undef. + * configure.in: Add support for --enable-info. + + * acconfig.h (RUN_IN_PLACE): Delete #undef. + + See ChangeLog.1 for earlier changes. diff -cNr octave-3.4.0/etc/OLD-ChangeLogs/ChangeLog.1 octave-3.4.1/etc/OLD-ChangeLogs/ChangeLog.1 *** octave-3.4.0/etc/OLD-ChangeLogs/ChangeLog.1 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/OLD-ChangeLogs/ChangeLog.1 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,10392 ---- + Thu Feb 23 09:32:01 1995 John Eaton + + * Version 1.1.1 released. + + * src/idx-vector.cc (idx_vector (const Range&)): Always initialize + data to 0. + (idx_vector (const Matrix&, int, const char *, int)): Likewise. + (idx_vector (const idx_vector&): Likewise, do it first. + * src/idx-vector.h (~idx_vector): Simply delete data. + + * octMakefile.in: Combine libcruft, liboctave,dld, info, readline, + kpathsea, src, scripts, and doc targets into just one. + (all): Depend on $(SUBDIRS). + * libcruft/Makefile.in (make-objects): Change to $(SUBDIRS) + target that doesn't use a loop. + (all): Depend on $(SUBDIRS). + + Wed Feb 22 07:27:18 1995 John Eaton + + * Don't leave @LIBDLD@ on a line by itself. + + * src/tc-rep-idx.cc (fortran_style_matrix_index): Handle zero-one + indexing as a separate case. + (fortran_style_matrix_index): Check for out-of-bounds index. + + * src/idx-vector.cc (init_state): Don't forget len, num_zeros, and + the one_zero flag for vectors of all zero elements. + (convert_one_zero_to_idx): Set data to zero after deleting it. + + * src/data.cc (check_dimensions): + Handle case of treat_neg_dim_as_zero = "warn". + + Tue Feb 21 08:18:19 1995 John Eaton + + * src/tree-misc.cc (initialize_undefined_elements): Don't declare + arg const. + + * src/sysdepl.cc (octave_getcwd): Declare arg as char *, not + const char *. + + * src/input.cc (match_sans_spaces): Initialize ep from copy of + arg, not arg itself. + + * octMakefile.in (snapshot-version): Look for OCTAVE_VERSION, + not just VERSION. Don't end #define with a semicolon. + + Mon Feb 20 15:57:17 1995 John Eaton + + * scripts/image/Makefile.in (clean): Delete octtopnm.o and octtopnm. + + Fri Feb 17 08:12:09 1995 John Eaton + + * src/variables.cc (maybe_add_default_load_path): New function, + extracted from default_path(), which no longer needs it. + * src/user-prefs.cc (sv_loadpath): Call it here. + + Wed Feb 15 15:13:22 1995 John Eaton + + * src/octave.cc (verbose_usage): Format help message more like + the help messages of other GNU programs. + + * src/variables.cc (install_builtin_variables): New builtin + variable, suppress_verbose_help_message. + * src/user-prefs.cc (user_prefs): New field, + suppress_verbose_help_message. + * src/user-prefs.cc (suppress_verbose_help_message): New function. + * src/help.cc (additional_help_message): Check + user_pref.suppress_verbose_help_message before printing message. + + Tue Feb 14 15:36:01 1995 John Eaton + + * src/sysdep.cc (octave_chdir): New function. + * src/dirfns.cc (change_to_directory): Use it. + + * src/sysdep.cc (octave_getcwd): New function. + * src/dirfns.cc (get_working_directory, Fpwd): Use it. + * src/input.cc (decode_prompt_string): Likewise. + + * src/version.h (VERSION): New #define. + (version_string): Use it. + (OCTAVE_COPYRIGHT): New #define. + (OCTAVE_NAME_AND_VERSION): New #define. + (OCTAVE_NAME_VERSION_AND_COPYRIGHT): New #define. + (OCTAVE_STARTUP_MESSAGE): New #define. + * src/octave.cc (main): Use new macros from version.h + (print_version_and_exit): Likewise. + (verbose_usage): Likewise. + (Fwarranty): Likewise. + + * Makeconf.in (version): Make work with new version.h. + * octMakefile.in (snapshot-version): Likewise. + + * src/variables.cc (default_path): Use SEPCHAR instead of literal ':'. + * src/utils.cc (pathstring_to_vector): Likewise. + * src/octave.cc (initialize_globals): Likewise, use SEPCHAR_STR to + construct format string instead of using literal `:'. + + * configure.in: Call AC_DEFINE for SEPCHAR and SEPCHAR_STR. + * acconfig.h: Add #undefs for SEPCHAR and SEPCHAR_STR. + + * src/dynamic-ld.cc: Don't include dld.h unless WITH_DLD. + + * src/octave.cc (parse_and_execute): Close file. + + Mon Feb 13 19:39:12 1995 John Eaton (jwe@bullwinkle.che.utexas.edu) + + * scripts/general/linspace.m: Delete. + * src/data.cc (Flinspace): New function. + * liboctave/dRowVector.cc (linspace): New function. + * liboctave/CRowVector.cc (linspace): New function. + + Sun Feb 12 21:23:54 1995 John Eaton + + * src/load-save.cc (read_mat_binary_data): Only convert to string + if the number of rows is 1. + + * scripts/image/saveimage.m: Force ASCII save. + + Thu Feb 9 08:46:09 1995 John Eaton + + * scripts/elfun/sec.m: Returned variable is `w', not `y'. + * scripts/elfun/sech.m: Likewise. + + Wed Feb 8 10:51:33 1995 John Eaton + + * src/f-find.cc (find_nonzero_elem_idx): Increment i, j indices by + 1 before stashing them. + + Fri Feb 3 15:44:03 1995 John Eaton + + * src/tree-misc.cc + (tree_parameter_list::initialize_undefined_elements): New function. + * src/tree-expr.cc (tree_function::eval): Use it to define return + values. + (tree_simple_assignment_expression:eval): Complain if RHS is undefined. + (tree_multi_assignment_expression:eval): Complain if any of the + RHS values are undefined. + * src/user-prefs.h (init_user_prefs): New structure element, + define_all_return_values. + * src/user-prefs.cc (define_all_return_values): New function. + * src/variables.cc (install_builtin_variables): Add DEFVARs for + default_return_value and define_all_return_values. + (builtin_any_variable): New function. + + Wed Feb 1 08:02:28 1995 John Eaton + + * src/parse.y (parse_error): Call yyerror() here. + (input): Not here. + + * src/lex.l (handle_string): Call have_continuation and + have_ellipsis_continuation with 0 arg, to disallow comments after + continuation characters inside strings. + (have_continuation): New arg, trailing_comments_ok with default + value of 1. If !trailing_comments_ok, don't allow comments to + follow continuation token. + (have_ellipsis_continuation): New arg, trailing_comments_ok, with + default value of 1. Pass it along to have_continuation. + + * src/parse.y (yyerror): Call parse_error with first arg == "%s", + since msg might contain format specifiers. + + * src/tree-expr.cc (tree_index_expression::eval (int)): Detect + undefined elements in argument list and print error message. + (tree_index_expression::eval (int, int, const Octave_object&)): + Likewise. + + * configure.in: Only set CFLAGS, CXXFLAGS, LDFLAGS, FFLAGS, and + F2CFLAGS if they are not already set in the environment. + + * doinstall.sh: Add -print to find commands. + + Tue Jan 31 13:26:53 1995 John Eaton + + * src/lex.l ({S}*\,{S}*): Eat any trailing continuation + here. Use value returned from eat_continuation to decide whether + to insert a row separator. + ({S}+): Likewise. + ({SNLCMT}*\n{SNLCMT}*): Eat any trailing whitespace here. + + * lex.l (ATE_SPACE_OR_TAB, ATE_NEWLINE): New macros. + (eat_whitespace): Use them to set return value. + + Mon Jan 30 14:02:24 1995 John Eaton + + * src/user-prefs.cc (set_output_precision): Don't pass NaN to NINT. + (set_output_max_field_width): Likewise. + (set_save_precision): Likewise. + * src/file-io.cc (return_valid_file): Likewise. + (fgets_internal): Likewise. + (fseek_internal): Likewise. + (process_printf_format): Likewise. + (fread_internal): Likewise. + * src/f-colloc.cc (Fcolloc): Likewise. + * src/f-fft.cc (Ffft): Likewise. + * src/f-fft2.cc (Ffft2): Likewise. + * src/f-ifft.cc (Fifft): Likewise. + * src/f-ifft2.cc (Fifft2): Likewise. + * src/f-npsol.cc (do_npsol_option): Likewise. + * src/f-qpsol.cc (do_qpsol_option): Likewise. + * src/f-rand.cc (Frand): Likewise. + * src/pr-output.cc (all_elements_are_ints): Likewise. + * src/tree-plot.cc (subplot_using::eval): Likewise. + (subplot_style::print): Likewise. + * src/sysdep.cc (Fpause): Likewise. + * src/tc-rep.cc (TC_REP::valid_as_scalar_index): Likewise. + (TC_REP::valid_as_zero_index): Likewise. + (TC_REP::convert_to_str): Likewise. + * src/tc-rep-idx.cc (TC_REP::do_scalar_index): Likewise. + (TC_REP::fortran_style_matrix_index): Likewise. + * src/tc-rep-ass.cc (TC_REP::fortran_style_matrix_assignment): + Likewise. + + Sat Jan 28 13:09:44 1995 John Eaton + + * scripts/general/tril.m: Allow the k == nc for k > 0 and + -k == nr for k < 0. Make faster by eliminating nested loops. + * scripts/general/triu.m: Likewise. + + Fri Jan 27 08:32:10 1995 John Eaton + + * libcruft/lapack: Update with files from LAPACK 2.0. + + * src/lex.l (\[{S}*): Don't call fixup_column_count() here. + Don't use TOK_RETURN here, since we call eat_whitespace(). + (eat_whitespace): Decrement current_input_column when calling + yyunput(). + ({SNLCMT}*\n{SNLCMT}): Always call fixup_column_count(). + + * src/parse.y (rows): Don't accept repeated semicolons. + (matrix_row): Likewise, for commas. + + * src/Makefile.in (LIBOBJS): Delete. + + * liboctave/f77-uscore.h: Don't use C++ style comments. + + * octMakefile.in (DISTDIRS): Don't include bsd-math. + * src/Makefile.in (VPATH): Don't include bsd-math directory. + (SOURCES): Include acosh.c, asinh.c, atanh.c, erf.c erfc.c, and + lgamma.c. + * configure.in: Create libcruft/slatec-fn/Makefile. + Use AC_CHECK_FUNCS to look for acosh, asinh, atanh. + Don't do anything special if they are missing. + * src/acosh.c, src/asinh.c, src/atanh.c, src/erf.c, src/erfc.c, + src/lgamma.c: New files. + * acconfig.h: Delete #undefs for ACOSH_MISSING, ASINH_MISSING, + and ATANH_MISSING. + * libcruft/Makefile.in (CRUFT_DIRS): Add slatec-fn. + * libcruft/slatec-fn: New directory. + + * configure.in: Don't try to use IEEE floating point on m68k HP + systems. + + Thu Jan 26 12:57:05 1995 John Eaton + + * src/lex.l (maybe_unput_comma): New function, extracted from + handle_identifier(). Correctly handle the dot in things like + `a.b' inside matrix lists. + (handle_identifier): Use it. Don't allow things like [a .1] or + [a.b .1] to fool us. + + Wed Jan 25 08:04:16 1995 John Eaton + + * scripts/Makefile.in (realclean): Don't depend on distclean. Do + delete Makefile here. + + * flibs.sh: Also check for /*values-*.o, for Sun Fortran 2.x. + * configure.in (FLIB_LIST, CXXLIB_LIST, FLIB_PATH, CXXLIB_PATH): + Delete any .o files found here. + When checking for -lm, also append -lc on Linux systems. + + * mkinstalldirs: Create directories with mode 0755, to avoid + problems because the installers umask is too restrictive. + + * octave-bug.in: Don't use rmail, it crashes on Ultrix systems if + the message file isn't just right. Use nested if statements + instead of ||, for Ultrix /bin/sh. Avoid Ultrix awk crash. + + * scripts/linear-algebra/trace.m: Handle row and column vectors as + a special case. + * scripts/linear-algebra/null.m: Likewise. + * scripts/linear-algebra/orth.m: Likewise. + + Tue Jan 24 08:11:51 1995 John Eaton + + * octave-bug.in: Add F2C, F2CFLAGS, FLIBS, and LDFLAGS to report. + * Makefile.in (octave-bug): Substitute them. + + Mon Jan 23 20:42:55 1995 John Eaton + + * src/tree-misc.cc (tree_if_clause::is_else_clause): New function. + (tree_if_command_list::print_code): Use it to decide whether to + print "else" or "elseif" here. + (tree_if_clause::print_code): Don't print "else" here. + + * scripts/image/colormap.m: Fix logic for initializing default + colormap and handling subsequent calls with no arguments. + + * src/lex.h (TOK_PUSH_AND_RETURN): Correct last change. + + Sun Jan 22 18:02:37 1995 John Eaton + + * src/lex.l (handle_identifier): Handle incrementing + current_input_column here. + ({IDENT}{S}*): Not here. + + * src/lex.h (TOK_PUSH_AND_RETURN): New macro. + * src/lex.l: Use it. + + * src/parse.y (yyerror): If printing input line, always print `^' + error marker too. + + * src/parse.y (command [BREAK]): Allow break to occur in function + bodies too. + * src/tree-expr.cc (tree_function::eval): Also check to see if + function exited because of a break statement. + + Fri Jan 20 10:48:18 1995 John Eaton + + * config.guess: Replace with current version from FSF. + * config.sub: Likewise. + + * src/tempname.c: Include statdefs.h. + + * src/tree-expr.cc (eval): Improve error messages. + + Thu Jan 19 08:33:50 1995 John Eaton + + * src/lex.l (handle_string): Properly handle pending escapes. + Call error() for unterminated string constants. + * src/parse.y (input): For parse errors, call yyerror(). + + * test/config/unix-octave.exp (octave_start): Correctly set OSPATH + from $OCTAVE_SCRIPT_PATH, not to the string OCTAVE_SCRIPT_PATH. + + * test/Makefile.in (OCTAVE_SCRIPT_PATH): Delete surrounding quotes + in definition. + + * doc/texinfo.tex: Move to version 2.140. + + * src/f-rand.cc (Frand): Use different method for generating + initial seed so that it varies more each time Octave starts. + + * src/file-io.cc (feof_internal): Use args(0), not args(1). + + * src/Makefile.in (SOURCES): Use tempnam.c, not tmpnam.c. + * src/tempnam.c: New file, from the GNU C library. + + Wed Jan 18 08:10:31 1995 John Eaton + + * src/user-prefs.h (user_prefs): New field, read_only_constants. + * src/user-prefs.cc (read_only_constants): New function. + * src/variables.cc (install_builtin_variables): Add DEFVAR for + read_only_constants, but leave it #if 0'd out since we're not + really ready for it yet.. + * src/symtab.cc (symbol_record::read_only_error): Check + user_prefs.read_only_constants to see if it is ok to redefine + constants that are marked as read-only. + + * src/user-prefs.h (user_prefs): New field, ps4. + * src/user-prefs.cc (sv_ps4): New function. + * src/variables.cc (install_builtin_variables): Add DEFVAR for PS4. + * src/input.cc (do_input_echo): New function. Use PS4 variable as + prefix of echoed input. Send echoed input through the pager. + + * flibs.sh: Ignore -lang* options. + + * src/load-save.cc (Fsave): Send `save - ...' output through the + pager. + + * doc/Makefile.in: Create and distribute refcards of various sizes. + Delete rules for making refcard.tex from refcard.tex.in. + Don't make or distribute refcard-local. + * doc/refcard.tex: Handle setting paper size with \refcardsize. + * doc/refcard-a4.tex, doc/refcard-legal.tex, doc/refcard-letter.tex: + New files. + + Mon Jan 16 13:19:29 1995 John Eaton + + * src/tc-rep-ass.cc (TC_REP::do_scalar_assignment): Handle + assignments like a(0) = []. + * src/tc-inlines.h (valid_zero_index): New function. + * src/tc-rep.cc (valid_as_zero_index): New function. + * src/tree-const.h (valid_as_zero_index): New function. + + * src/parse.y (func_def2): Check user_prefs before warning about + function name and function file name conflict. + * src/user-prefs.h (user_prefs): New field, warn_function_name_clash. + * src/user-prefs.cc (warn_function_name_clash): New function. + * src/variables.cc (install_builtin_variables): Add DEFVAR for + warn_function_name_clash. + + * scripts/image/octtopnm.c: Include stdlib.h instead of malloc.h. + + Sun Jan 15 15:08:04 1995 John Eaton + + * readline/rldefs.h: Use new #defines for directory headers now + that we are using autoconf 2. + + * scripts/special-matrix/hankel.m: Use .', instead of '. + + * src/input.cc (match_sans_spaces): Use strcmp, not strncmp. + + * src/tc-rep-ass.cc (TC_REP::fortran_style_matrix_assignment): + For scalar index, don't do assignment if RHS and LHS are both empty. + + * src/data.cc (Fsize): Handle optional second arg. + + * src/tree-expr.cc (tree_function::eval (int)): Correctly set + nargin and nargout to zero when evaluating function. + + * src/lex.l (handle_string): Correct handling of string escapes. + + Thu Jan 12 15:25:34 1995 John Eaton + + * Version 1.1.0 released. + + * octMakefile.in (bin-dist-tar): Ignore errors on strip commands. + + * src/tree-expr.cc (tree_builtin::eval (int)): Set nargout to 0 + when calling function. + + * doc/Makefile.in (FORMATTED): Add refcard.dvi and refcard.ps so + that they are distributed along with the other docs. + * octMakefile.in (clean-doc-dist-tar): Delete target. + (doc-dist): Depend on doc-dist-tar, not clean-doc-dist-tar. + + Tue Jan 10 14:29:43 1995 John Eaton + + * src/help.cc (print_usage): Print warning if symbol isn't found. + + * src/utils.cc (Fundo_string_escapes): Fix typo in call to + print_usage(). + + * src/octave.cc (Fsystem): Correctly compute exit code. + + * scripts/miscellaneous/etime.m: Complain if args are not the + right length, not if they are. Reverse sense of test for years. + Duh. + + * src/f-find.cc (find_to_fortran_idx): For the case of one output + argument, return a row vector if the original argument to find was + a row vector. + + Mon Jan 9 12:57:27 1995 John Eaton + + * src/lex.l (grab_help_text): Always overwrite help_buf. + ({CCHAR}): Don't call grab_help_text() if there is already + something in help_buf. + + Sat Jan 7 12:28:35 1995 John Eaton + + * configure.in (HOST_CXXFLAGS): New variable to substitute. + * Makeconf.in (ALL_CXXFLAGS, UGLY_ALL_CXXFLAGS, BUG_CXXFLAGS): + Add $(HOST_CXXFLAGS). + + Fri Jan 6 13:07:09 1995 John Eaton + + * scripts/special-matrix/toeplitz.m: Use .' instead of '. + + Tue Jan 3 18:14:33 1995 John Eaton + + * test: Rewrite many tests to not run Octave interactively. This + makes the log files much more readable. + + * octMakefile.in (clean-tar): Delete octave-test/npsol directory, + not just test/octave.test/npsol.exp. Likewise, add a command for + deleting qpsol tests. + + Mon Jan 2 20:02:10 1995 John Eaton + + * src/octave.cc (main): Return 0 if error_state is not set. + + * src/error.cc (error_1): New function. + (error): Use it. + (parse_error): New function. + * src/parse.y: Never call error and yyerror; just use yyerror. + (yyerror): Improve logic. Use new parse_error() function so that + error_state is always set for a parse error. Don't use + ostream::form(). + (ABORT_PARSE): Don't call reset parser here. + (colon_expr): Don't call yyerror here. An error message is + printed by tree_colon_expression::chain() if it fails. + + Mon Dec 26 20:11:01 1994 John Eaton + + * src/tree-expr.cc (eval): Only call multi-arg form of eval for + object_to_eval if necessary. + + Fri Dec 23 00:08:08 1994 John Eaton + + * src/lex.l: Don't increment promptflag anywhere. + (eat_continuation): New function. + (eat_whitespace): Handle embedded continuations. Return nonzero + if whitespace consumed. + (handle_close_brace): Don't pass yytext. Do pass flag indicating + whether whitespace follows brace. + (handle_identifier): Check for next token being `=' here. Pass + flag indicating whether whitespace follows identifier. + ({SNLCMT}*;{SNLCMT}*): Call eat_whitespace() here. + ({IDENT}{S}*): Call eat_continuation() here. + (do_comma_insert_check): And here, but put a space back if + whitespace is gobbled. + (have_continuation, have_ellipsis_continuation): Decrement + promptflag here. + + Wed Dec 21 09:56:49 1994 John Eaton + + * src/tree-plot.cc (Fclearplot): Send "set nolabel" too. + + Mon Dec 19 17:50:15 1994 John Eaton + + * src/tree-plot.h, src/tree-plot.cc (subplot): Rename using to + using_clause to avoid new C++ keyword. Rename title and style to + match. + + Fri Dec 16 00:09:01 1994 John Eaton + + * configure.in: Don't check for fpsetmask. + * src/sysdep.cc (sysdep_init): Don't check HAVE_FPSETMASK + + Thu Dec 15 00:28:52 1994 John Eaton + + * src/variables.cc (install_builtin_variables) [default_save_format]: + Fix doc string. + + * configure.in: Rework DEFAULT_DOT_O_FROM_DOT_F and + DEFAULT_DOT_C_FROM_DOT_F to avoid embedded newlines. + * Makeconf.in: Likewise. + + * src/pager.cc (flush_output_to_pager): Close stream before + resetting signal handler. + + * src/help.cc (Fhelp): Call fcn_file_in_path here. Delete it too. + Print file name before help message. + * src/variables.cc (get_help_from_file): Don't call + fcn_file_in_path here. + (gobble_leading_white_space): Correctly grab only first set of + comments. + + Wed Dec 14 11:42:13 1994 John Eaton + + * src/parse.y (pager_buf): Don't make it a fixed-size array. + * src/variables.cc (get_help_from_file): New function. + (gobble_leading_white_space): Return first block of comments for + later use as help string. + (looks_like_octave_copyright): New function. + (parse_fcn_file): Stash help from gobble_leading_white_space in + global help_buf. + * src/lex.l (grab_help_text): Don't overwrite help found by + gobble_leading_white_space. + (reset_parser): Delete help_buf. + * src/help.cc (Fhelp): Only try to get help from symbol records + that are defined. If all else fails, try get_help_from_file. + + * src/pager.cc (flush_output_to_pager): Re-initialize pager_buf + immediately after extracting message. Delete message immediately + after sending it to the output stream. Ignore interrupts while + running pager. + + * octMakefile.in (clean-tar): Delete npsol.exp and any .m files + that are in the test/octave.test directory. + (install): Use $(INSTALL), not just install. + + * src/lex.l (reset_parser): Don't reset input column or line + number if reading from a script file or a function file. + (is_keyword): Don't set line number to 1 if reading function file + or script file. + * src/variables.cc (gobble_leading_whitespace): Count lines. + * src/octave.cc (main): If reading file, set reading_script_file + and curr_fcn_file_name before calling get_input_from_file(). + + * src/tc-rep.cc (TC_REP::matrix_value): If implicit_str_to_num_ok, + convert empty string to empty matrix. + + Tue Dec 13 20:25:34 1994 Frederick (Rick) A Niles + + * liboctave/dbleQR.cc, liboctave/dbleQRP.cc, liboctave/CmplxQR.cc, + liboctave/CmplxQRP.cc: Get economy-sized dimensions correct. + + * libcruft/misc/i1mach.f, libcruft/misc/gen-d1mach.c, + libcruft/ranlib/ignuin.f: Prevent warnings about variable may be + used before defined. + + Tue Dec 13 11:07:34 1994 John Eaton + + * src/variables.cc: Change commas_in_literal_matrix to + whitespace_in_literal_matrix. + * src/user-prefs.h (user_preferences): Likewise. + * src/user-prefs.cc (init_user_prefs): Likewise. + (whitespace_in_literal_matrix): Likewise, rename function. + * src/lex.l: Likewise. + (nesting_level): Rename from in_brace_or_paren. + ({SNLCMT}*\n{SNLCMT}*): Make separate case from + {SNLCMT}*;{SNLCMT}. Check nesting level to decide whether + to convert newline to semicolon. + ({NL}, {CCHAR}): Check nesting level to decide whether to eat + or return newline. + ("("): Decrement promptflag. + (")"): Increment promptflag. + + Mon Dec 12 00:02:51 1994 John Eaton + + * scripts/Makefile.in, scripts/*/Makefile.in (install): Don't + depend on all. + + * octMakefile.in: Put doc dir last. + * doc/Makefile.in (dir): New file. + (DISTFILES): Distribute dir. + (install): Install dir if it does not already exist in $(infodir). + Otherwise, print message. + + * src/lex.l: Handle {IDENT}{S}*/= with yyinput() instead of + trailing context. + (handle_close_brace): New function. + (handle_number): New function. + (have_continuation, handle_ellipsis_continuation, handle_string): + New functions for handling strings and continuation lines in + string constants. + (eat_whitespace): New function eliminates need for NEW_MATRIX + start state. + + Sun Dec 11 15:53:03 1994 John Eaton + + * src/lex.l: Eliminate special case for eating whitespace when + start state is . + Merge three cases for handling `]' for start state. + + Fri Dec 9 12:21:35 1994 John Eaton + + * src/lex.l: Handle `\' as a continuation character too. + Allow comments and blanks to follow continuation characters. + Improve handling of comments in matrices. Create a few more + definitions for patterns. Restructure source. + + * configure.in: Check for bcopy too. + + * configure.in (gxx_version): Don't use -fno-implicit-templates on + AIX systems with g++ 2.6.x. + + * octave-bug.in: Check for CC: lines too. Use case-insensitive + match for To: and Cc: lines. Actually send file that has header + separator stripped. Print list of CC: addresses too. + + * src/input.cc (get_user_input): If user enters empty string, + return empty matrix or empty string. + + * src/help.cc (Fhelp, Ftype, Fwhich): Don't allow lookup_by_name + to execute script files. + + Thu Dec 8 23:20:02 1994 John Eaton + + * src/tc-rep.cc (print): Don't check `print', which is not a + variable in this context. + + Wed Dec 7 10:52:59 1994 John Eaton + + * src/configure.in: Check for fpsetmask. + * src/sysdep.cc (sysdep_init): Check HAVE_FPSETMASK. Only call it + if either __386BSD__ or __FreeBSD__ is defined. + Don't check __386BSD__ as a condition for including + floatingpoint.h. + + Mon Dec 5 12:29:07 1994 John Eaton + + * src/utils.cc: Update directory header macro names for autoconf 2. + * src/dirfns.cc: Likewise. + + Sun Dec 4 22:00:40 1994 John Eaton + + * octMakefile.in (DISTFILES): Don't distribute GCC.PATCH, since it + is not needed with gcc 2.6.3. + + * configure.in: Really do disable IEEE floating point functions on + the Alpha. + + Wed Nov 30 11:42:44 1994 John Eaton + + * doc/FAQ.texi: New file. + * doc/Makefile.in: Create info, dvi, and ps files and distribute + them. + + * Makefile.in (all): Expand initial message. + + Sat Nov 26 21:47:05 1994 John Eaton + + * src/octave.cc (Fcomputer): Always append ios::ends to ostrstream + before returning. + + Mon Nov 21 09:41:34 1994 John Eaton + + * src/lex.l: When start state is TEXT_FCN, gobble blanks with + pattern that matches only blanks before other patterns that can + also match just blanks. Always check whether in_brace_or_paren + stack is empty before trying to use it. + + * src/parse.y (make_multi_val_ret): Call constructor for + tree_simple_assignment_expression with correct number of args. + + * scripts/plot/shg.m: New function. + + * src/f-qpsol.cc (Fqpsol): Correct for changes in meaning of + nargin and the way args is loaded. + * src/f-npsol.cc (Fnpsol): Likewise. + + * scripts/polynomial/roots.m: Return empty matrix for scalar or + empty matrix args. + + * src/tree-plot.cc (gnuplot_terminal_type): New static variable. + (Fset): If this is a set term command, set gnuplot_terminal_type. + (open_plot_stream): Use gnuplot_terminal_type if it is set. + + * src/idx-vector.cc (idx_vector::init): Don't check max value of + index vector against dimension here. We may need to resize. + * src/tc-rep-idx.cc (do_scalar_index): Do check idx-vector max + value here. + + * src/lex.l (is_plot_keyword): Don't set past_plot_range here. + Don't accept abbreviations for clear. + (handle_identifier): Don't call is_plot_keyword unless plotting. + Set past_plot_range here, before checking for plot option keywords. + + Fri Nov 18 17:25:59 1994 John Eaton + + * src/data.cc (Fis_struct): New function. + + Thu Nov 17 18:13:56 1994 John Eaton + + * octMakefile.in (DISTFILES): Distribute GCC.PATCH. Don't + distribute LIBG++.PATCH. + + * src/tree-plot.cc (Fclearplot): Turn off grid and reset + plot_line_count to zero. + + * configure.in: Check for sys/resource.h. + Create scripts/strings/Makefile too. + + * src/timefns.cc: Surround inclusion of sys/resource.h in extern "C". + Only include sys/resource.h if both HAVE_SYS_RESOURCE_H and + HAVE_GETRUSAGE are defined. + + Wed Nov 16 09:26:10 1994 John Eaton + + * scripts/plot/plot_opt.m: New function. + * scripts/plot/semilogx.m, scripts/plot/semilogx.m, + scripts/plot/loglog.m, scripts/plot/plot.m: Handle additional + args and format strings. + * scripts/plot/polar.m: Handle format arg. + * scripts/plot/polar_int_1.m, scripts/plot/polar_int_2.m: Extract + from polar_int.m. + * scripts/plot/plot_int_1.m, scripts/plot/plot_int_2.m: Extract + from plot_int.m. + * scripts/plot/plot_2_s_s.m, scripts/plot/plot_2_v_v.m, + scripts/plot/plot_2_m_m.m, scripts/plot/plot_2_v_m.m, + scripts/plot/plot_2_m_v.m: Handle format arg. + + * scripts/strings/strcmp.m: Move here. + * scripts/general/strcmp.m: From here. + + * src/xdiv.cc (result_ok): Issue warning instead of error if warn + is nonzero. + + Tue Nov 15 15:54:19 1994 John Eaton + + * src/tree-plot.cc (Fcloseplot): Clear title and labels too. + + * src/help.cc (keywords): Add entries for all_va_args, + unwind_protect, unwind_protect_cleanup, and end_unwind_protect. + + * liboctave/Makefile.in: Use -include for dependency files. + * src/Makefile.in: Likewise. + + Mon Nov 14 10:28:23 1994 John Eaton + + * src/tree-misc.cc (convert_to_const_vector): Resize vector before + returning. + + * src/lex.l (plot_style_token): Also allow "steps", "boxes", and + "boxerrorbars". + + * src/parse.y (UNWIND): Rename from UNWIND_PROTECT. + (CLEANUP): Rename from UNWIND_PROTECT_CLEANUP. + (command): Allow optsep after UNWIND and CLEANUP tokens. + * src/lex.l (is_keyword): Use new token names + + * src/tree-const.h (tree_constant::all_va_args): New enum. + (tree_constant (tree_constant::all_va_args t)): New constructor. + (is_all_va_args): New function. + (is_empty, is_zero_by_zero, make_numeric_or_magic, + make_numeric_or_range_or_magic): Handle all_va_args type. + * src/tc-rep.h (constant_type::all_va_args): New enum element. + (is_all_va_args): New function. + * src/tc-rep.cc (TC_REP::tree_constant_rep (TC_REP::constant_type), + TC_REP::print_code): Handle all_va_args. + * src/tree-misc.cc (tree_argument_list::convert_to_const_vector): + Handle all_va_args. + * src/tree-expr.cc (tree_index_expression::eval): After call to + tree_argument_list::convert_to_const_vector (), check error_state. + (tree_simple_assignment_expression::eval): Likewise. + (tree_function::octave_all_va_args): New function. + * src/parse.y (ALL_VA_ARGS): New token. + (arg_list): Handle ALL_VA_ARGS. + * src/lex.l (is_keyword): Handle all_va_args. + + * src/tree-expr.cc (tree_identifier::bump_value): Check read-only + status of sym before altering value. + (tree_prefix_expression::eval): Check error_state after call to + tree_identifier::bump_value (). + + * src/variables.cc (bind_nargin_and_nargout): Don't make nargin + and nargout read only. + + * scripts/strings: New subdirectory for string functions. + * scripts/Makefile.in (SUBDIRS): Add strings. + * scripts/strings/strcat.m: New function. + + Fri Nov 11 14:17:31 1994 John Eaton + + * src/load-save.cc (extract_keyword): Allow trailing blanks on the + input line. + + Thu Nov 10 09:53:35 1994 John Eaton + + * scripts/general/reshape.m, scripts/image/ind2gray.m, + scripts/image/ind2gray.m, scripts/image/ind2rgb.m, + scripts/image/rgb2ind.m: unwind_protect do_fortran_indexing. + * scripts/general/strcmp.m: unwind_protect implicit_str_to_num_ok. + * scripts/miscellaneous/menu.m: unwind_protect page_screen_output. + + * src/parse.y (UNWIND_PROTECT, UNWIND_PROTECT_CLEANUP): New tokens. + (command): Handle unwind-protect. + * src/lex.l (is_keyword): Handle unwind_protect, + unwind_protect_cleanup, and end_unwind_protect. + * src/tree-cmd.cc (tree_unwind_protect_command): New class, to + handle unwind-protect. + + * src/token.h (end_tok_type): New field, end_unwind_protect. + + * src/error.cc (verror): Flush pending output to pager here. + (error): Not here. + + * src/tc-rep.cc (force_numeric): Don't jump to top level on error. + * src/tc-rep.cc, src/tc-rep-ass.cc, src/tc-rep-idx.cc: Check + error_state after calls to make_numeric* functions. + + * src/f-lpsolve.cc: Define Flp_solve and Flp_solve_options, not + Flpsolve or Flpsolve_options. + + * src/utils.cc (Ffile_in_path): Define Ffile_in_path, not + Ffile_in_pat. + + * src/f-inv.cc: Add DEFUN for inverse. + + Wed Nov 9 09:30:15 1994 John Eaton + + * src/load-save.cc (read_mat_file_header): Check for mopt < 0 too. + Don't fail if reading mopt fails. + (save_mat_binary_data): Handle range data as a special case. + (get_default_save_format): Also accept `mat-binary' and + `mat_binary'. + (Fsave): Add ios::trunc to flags for opening output file. + + * src/parse.y (func_def2): Stash function name before stashing + file name. + + * src/utils.cc (fcn_file_in_path): Don't append `.m' if the name + already ends in `.m'. + (oct_file_in_path): Likewise, for `.oct'. + + * src/error.cc (usage): Set error state to -1, so we get traceback + information after a call to usage. + + * src/tree-expr.cc (stash_fcn_file_name): Store full name of the + file. + + * scripts/*/*.m: Change messages to say `invalid' instead of + `illegal', since no laws are being broken by using these functions + incorrectly. + + * src/timefns.cc (Fcputime): New function. + * configure.in: Check for getrusage. + + * src/scripts/miscellaneous/tic.m: New function. + * src/scripts/miscellaneous/toc.m: New function. + * src/scripts/miscellaneous/etime.m: New function. + * src/scripts/miscellaneous/is_leap_year.m: New function. + + * src/error.cc (Fwarning, Fusage): New functions. + * scripts/*/*.m: Use them instead of printing warning and usage + messages directly with disp, printf, or fprintf. + + * src/file-io.cc (close_files): Check Pix before using. + (file_count): Delete unnecessary variable. Instead, use + DLList::length to get the number of files in the list. + + * src/sighandlers.cc (install_signal_handlers): Explicitly ignore + SIGPOLL and SIGIO. + + Tue Nov 8 15:26:50 1994 John Eaton + + * scripts/general/logspace.m: Lose fractional part of third arg. + Don't round, for compatibility with Matlab. + * scripts/general/linspace.m: Likewise. + + * liboctave/CMatrix.cc (row_min, row_max, row_min_loc, row_max_loc): + Handle case of row containing only real elements. + (column_min, column_max, column_min_loc, column_max_loc): + Likewise, for columnwise operations. + * src/f-minmax.cc (two-complex-arg min, max): Handle case of both + columns containing only real elements. + + * src/variables.cc (Fclear): Pass 0 to symbol_table::list() for + pats and npats. + + Mon Nov 7 20:22:36 1994 John Eaton + + * liboctave/dColVector.cc (operator +=): Don't return reference to + temporary. + (operator -=): Likewise. + * liboctave/CMatrix.cc (operator +=, operator -=): Likewise. + + Sun Nov 6 23:15:24 1994 John Eaton + + * octMakefile.in (DISTSUBDIRS): Don't use $(SUBDIRS) here. + + * src/load-save.cc (Fsave): Open output file with mode == + ios::out, not ios::in. + + Sat Nov 5 18:18:11 1994 John Eaton + + * configure.in (HAVE_SYS_SIGLIST): Check for sys_siglist variable, + even if it isn't declared in a system header. + * acconfig.h (HAVE_SYS_SIGLIST): Add #undef. + * src/sighandlers.cc (sys_siglist): Define our own if + HAVE_SYS_SIGLIST is not defined, not if SYS_SIGLIST_DECLARED is + not defined. + + * src/tree-plot.cc (Fclearplot): New function. + (clg): Alias for clearplot. + + * src/parse.y (CLEAR): New token. + (statement): Handle PLOT CLEAR as a special case. + * src/lex.l (is_plot_keyword): Handle CLEAR here too. + + Fri Nov 4 08:44:57 1994 John Eaton + + * All: Remove remaining #pragma interface/implementation statements. + + * src/tree-plot.cc (subplot): Move actual code here from .h file. + + * src/tree-expr.cc (tree_expression): Declare destructor virtual. + Delete unnecessary destructors. + + * src/SLStack.h, src/SLStack.cc (operator =): Return reference to + SLStack, not void. + + * src/f-qzval.cc (Fqzval): Rename from Fqzvalue. Change Help + and usage messages too. + + * scripts/plot/plot_int.m: Really figure out if there are any + imaginary parts. + + * scripts/control/are.m: Fix typo. + + Thu Nov 3 18:44:11 1994 John Eaton + + * src/load-save.cc (save_ascii_data): Handle new arg, + strip_nan_and_inf. Change callers. + (strip_infnan): New functions. + (save_three_d): Strip inf and nan values here too. + + * src/tree-plot.h (subplot_using): New data have_values and val. + * src/tree-plot.cc (subplot_using::eval, subplot_using::values): + New functions. + (subplot_style::errorbars): New function. + (subplot::extract_plot_data, subplot::handle_plot_data): New functions. + (subplot::print): Improve handling of data. + + Wed Nov 2 08:11:08 1994 John Eaton + + * src/file-io.cc (do_scanf): If reading from stdin, flush stdout + first. + + * configure.in: Leave some comments in the configure file. + Improve checking for termios.h, termio.h, and sgtty.h. + + * src/variables.cc (install_builtin_variables): DEFVAR realmax and + realmin here. + * src/sysdep.cc: Instead of DEFUNing them here. + + * src/variables.cc (do_who): Accept globbing patterns as args. + (maybe_list): Handle them here. + + * src/symtab.cc (matches_patterns): New function. + (symbol_table::list, symbol_table::long_list): Accept list of + patterns, and use matches_patterns to see if the given string is a + match. Change all callers. + + * src/load-save.cc (read_binary_data): Don't fail if reading + name_len fails. + (do_load): Quit quietly if nothing is left to read. Clean up doc + and name in all cases. + + Tue Nov 1 16:34:20 1994 John Eaton + + * src/lex.l (")"): Set cant_be_identifier to 1 here too. + + * src/tree-plot.cc: Use abbreviations for gnpulot plot, splot, + replot, with, using, and title commands. + + Mon Oct 31 14:26:12 1994 John Eaton + + * src/variables.cc (Fclear): Look in global symbol table for + user-defined function names. + + * src/load-save.cc (do_load): New function. + (Fload): Use it to avoid assigning streams. + (write_binary_header): New function. + (save_vars): New function. + (Fsave): Use it to avoid assigning streams. + + * libcruft/linpack/zgesl.f (zgesl): Comment out unused varialbes + and statement functions. + + * src/sysdep.cc (Fisieee): New function. + (Frealmax, Frealmin): Ditto. + + * scripts/miscellaneous/version.m: New file. + + Fri Oct 28 14:52:08 1994 John Eaton + + * octMakefile.in (distclean): Also delete config.cache and + config.log. + + * Makeconf.in (CPPFLAGS): Allow substitution. + + * configure.in: Use AC_PREFIX_DEFAULT. + + * configure.in: Use AC_CANONICAL_HOST instead of doing this + ourselves. + + * install-sh: Rename from install.sh. + * octMakefile.in (DISTFILES): Distribute install-sh, not install.sh. + + Mon Oct 24 10:04:27 1994 John Eaton + + * octave-bug.in: Print message if bug report appears to have been + mailed successfully. Otherwise, exit with error status. + + Fri Oct 21 14:05:10 1994 John Eaton + + * src/tc-rep-ass.cc (TC_REP::do_vector_assign (rhs, idx-vector)): + Handle all four cases of row/colum mixing. Report an error if the + RHS is a matrix. + + * src/tc-rep-idx.cc (TC_REP::do_index): Don't barf on indexing an + empty matrix with colon(s). + (TC_REP::do_scalar_index): Create index vector with z_len = 1. + (TC_REP::do_matrix_index (Range, tree_constant)): Correctly handle + case of colon as second arg. + + * octave-bug.in: Put mail commands in subshells so error message + really do go away. + + Thu Oct 20 11:05:36 1994 John Eaton + + * octave-bug.in: If passing $SUBJECT on the command line to a + mailer, quote it. Don't assume /bin/mail takes any args other + than a recipient address. Do the right thing if the To: line + changes. + + * src/tc-rep.cc (TC_REP::rows, TC_REP::columns): Return -1 for + anything that doesn't really have rows or columns. + + * src/tc-rep-idx.cc (fortran_style_matrix_index): Check max and + min index values. + + * Makefile.in (FORCE): New phony target. Used instead of .PHONY + to be portable. + + * octave-bug.in: Try harder to mail the message. + + * src/dynamic-ld.cc: Undefine true, false, and boolean after + including kpathse/pathsearch.h. + + * src/sysdep.cc: Include . + + Wed Oct 19 10:28:49 1994 John Eaton + + * configure.in (CXXLIB_LIST, FLIB_LIST, CXXLIB_PATH, FLIB_PATH): + Be careful not to match -l or -L in the middle of a word. + + * src/f-minmax.cc: Correctly handle mixed scalar/matrix args. + + * octMakefile.in: Rename from Makefile.in. + * Makefile.in: New file. For `all' target, print message and + execute make again using octMakefile. For other targets, just + execute make again using octMakefile. + + * configure.in: Check for sys_siglist. + * src/sighandlers.h [! HAVE_SYS_SIGLIST]: Provide an external + declaration. + * src/sighandlers.cc (generic_sig_handler): New function, replaces + most individual signal handler functions. + (sigint_handler, sigpipe_handler): Restore signal handler before + doing anything else. + [! HAVE_SYS_SIGLIST] (sys_siglist): Provide our own definition. + + * config.guess: Update from FSF sources. + + Tue Oct 18 23:36:24 1994 John Eaton + + * flibs.sh: Don't pass -Y P,path. Instead, turn it into a series + of -L dir args. + + * configure.in: Update for autoconf 2.0. + Delete support for --enable-run-in-place (it is too hard to make + this work reliably...). + + Mon Oct 17 11:40:49 1994 John Eaton + + * src/user-prefs.cc (init_user_prefs): Declare to return void, + not int. + + * configure.in: Change quote characters around tr command. Some + systems actually do need the []'s for ranges... + + Sun Oct 16 12:22:14 1994 John Eaton + + * src/tempname.c, src/tmpnam.c: New files. + * src/Makefile.in (SOURCES): Add them. + * src/dirfns.cc: Delete functions extracted from glibc. + + * configure.in (localfcnfiledir, localoctfiledir, imagedir): + New variables. Use them to define localfcnfilepath, + localoctfilepath, and imagepath. + * Makeconf.in: Substitute them here. + + * src/utils.cc (get_fcn_file_names) [WITH_DLD]: Also match .oct + files. + + * dld/find_exec.c (dld_find_executable): Don't be fooled by + directories or other special files in PATH. + (ABSOLUTE_FILENAME_P): Also return true if the name includes a + `/'. This isn't necessarily an absolute path, but we will turn it + into one later. + * src/dynamic-ld.cc (octave_dld_init): Call make_absolute() on + value returned from dld_find_executable(). + + Sat Oct 15 08:35:13 1994 John Eaton + + * flibs.sh: Undo previous change. Only substitute spaces for + commas if it looks like we have output from xlf. Handle -Y and + LD_RUN_PATH using gcc's -Xlinker option. + + * Makefile.in (snapshot-version): Use move-if-change for version.h. + + Fri Oct 14 09:18:08 1994 John Eaton + + * scripts/image/Makefile.in (SOURCES): Don't forget octtopnm.c. + + * Makefile.in (BINDISTFILES): Distribute octave-bug too. + + * configure.in (imagepath): Install at same level as fcnfiledir, + not below it. + + * doinstall.sh: Correctly extract version numbers that are not all + digits. Also install images too. Also install octaverc. Ask + octave for the target host type. Also create site/m and + site/oct directories. Also install octave-bug. + + * scripts/image/Makefile.in (DISTFILES): Distribute demo image + files too. + + * doinstall.sh: Update for new directory organization. + + * src/variables.cc (subst_octave_home): Make it work for multiple + substitutions. + + * flibs.sh: Handle -Y P,path:of:lib:dirs output from f77 on Solaris. + + * src/strfns.cc (Ftoascii): New file, new function. + (Fisstr, Fsetstr): Move here, fromd ata.cc. + + * src/Makefile.in (SOURCES): Include it. + + Thu Oct 13 11:58:03 1994 John Eaton + + * scripts/signal/filter.m: Postpad `b' before reshaping. + + * mkinstalldirs: New file. + * Makefile.in: Distribute it, don't make mkpath. + * All Makefile.in files: Use it instead of mkpath. + + * src/utils.cc (Foctave_tmp_file): New function. + + * src/utils.cc (undo_string_escape): Move here from tc-rep.cc, + rename from undo_string_escapes, and make extern. + (undo_string_escapes): New function, for undoing a whole string. + (Fundo_string_escapes): New function. + + * scripts/miscellaneous/dump_prefs.m, + scripts/miscellaneous/dump_1_pref.m: New functions. + * scripts/miscellaneous/bug_report.m: Record user preferences in a + file and pass the name of the file to octave-bug. Use + octave_tmp_file to generate tmp file name. + * octave-bug.in: Accept a final file-name arg as a file that + contains a list of user-preferences. + + Wed Oct 12 09:09:37 1994 John Eaton + + * configure.in: Redefine archlibdir and octfiledir so that oct + and exec directories are at the same level as the m directory. + Redefine localoctfilepath so that site/oct is a the same level as + site/m. + + * Makeconf.in (F77): Substitute it. + (BUG_CFLAGS, BUG_CXXFLAGS): New vars. + * configure.in: + * scripts/bug_report.m: New file. + * octave-bug.in: New file. + * Makefile.in (DISTFILES): Distribute octave-bug.in. + (dirs_to_make): Add $bindir. + (all): Add octave-bug. + (octave-bug): New target. + (install): Install it. + * src/defaults.h.in: Add defines for bindir. + * src/Makefile.in (defaults.h): Substitute it. + * src/variables.cc (octave_bin_dir): New function. + * src/octave.cc (initialize_globals): Also add $bindir to path. + + * configure.in: Check for gettimeofday. Add AC_TIME_WITH_SYS_TIME. + * src/systime.h: New file. + * src/timefns.h: Use gettimeofday if available. + * src/Makefile.in (INCLUDES): Add systime.h. + + Mon Oct 10 14:34:56 1994 John Eaton + + * src/octave.cc (verbose_flag): New global variable. + (long_opts): Add "verbose". + (usage_string): Update. + (main): Set verbose_flag if given --verbose. + (execute_startup_files): Don't print messages about reading + startup files if verbose_flag is not set. + + * src/tree-expr.cc (apply_mapper_fcn): Handle scalars as a special + case, but then just try to convert other arg types to a matrix. + + * src/f-det.cc (Fdet): Check if arg is complex type, but not + necessarily a complex matrix. + * src/f-schur.cc (Fschur): Likewise, and also for real types. + * src/f-lu.cc (Flu): Likewise. + * src/f-minmax.cc (Fmin, Fmax): Likewise. + + Sun Oct 9 21:04:17 1994 John Eaton + + * src/tc-rep-ass.cc (TC_REP::assign): If LHS is undefined, don't + try to force it to be a numeric type. + + Fri Oct 7 09:05:10 1994 John Eaton + + * configure.in: Define LD_STATIC_FLAG for Alpha OSF/1 1.3 systems. + + * src/tc-rep-idx.cc (TC_REP::do_index): Only work for numeric + types, but don't panic if conversion doesn't work. + * src/tc-rep-ass.cc (TC_REP::assign): Likewise. + + * src/tc-rep.cc (TC_REP::gripe_wrong_type_arg): New function. + + * src/gripes.cc (gripe_wrong_type_arg): Define here. + * src/tree-const.cc: Not here. + + Wed Oct 5 16:24:38 1994 John Eaton + + * src/file-io.cc (do_scanf): Don't panic if string is NULL. + + * src/gripes.cc (gripe_unrecognized_float_fmt): New function. + (gripe_2_or_3_dim_plot): Ditto. + (gripe_unrecognized_data_fmt): Ditto. + (gripe_data_conversion): Ditto. Use it in load-save.cc data + conversion routines that aren't implemented yet. + + * src/load-save.cc (do_double_format_conversion): Don't panic on + unrecognized floating point formats. + (do_float_format_conversion): Likewise. + (write_doubles): Don't panic if data format is unrecognized. + (do_save): Likewise + (install_loaded_variable): Don't panic for unknown symbol types. + (read_binary_data): Also check error_state after calls to read_doubles. + + * src/symtab.cc (symbol_table::rename): Don't panic if symbol + can't be renamed. + * src/parse.y (return_list): Abort parse if renaming results in an + error. + + * src/tree-misc.cc (tree_if_command::eval): Don't panic if all + (all (cond)) is not a scalar. + + * src/tree-expr.cc (tree_unary_expression::print_code): Don't + panic if expression type is unknown. + + * src/tree-plot.cc (tree_plot_command::eval): Don't panic if plot + is not 2 or 3 dimensional. + (tree_plot_command::print_code, subplot::print, save_in_tmp_file): + Likewise. + + * src/variables.cc (alias_builtin): Panic with better message. + (subst_octave_home): Don't panic if OCTAVE_HOME doesn't contain + OCTAVE_PREFIX. + + * src/tc-inlines.h (REP_RHS_MATRIX): Use panic_impossible() + instead of abort(). + (REP_ELEM_ASSIGN, CRMATRIX): Likewise. + + * src/data.cc (Fdiag, make_diag): Do work here. + * src/tc-rep.cc (TC_REP::diag, make_diag): Not here. + * src/tc-rep.h (TC_REP::diag): Delete. + * src/tree-const.h (tree_constant::diag): Delete. + + Tue Oct 4 08:35:37 1994 John Eaton + + * src/f-fft.cc (Ffft): Correctly set n_points for row vectors if + nargin == 1. + * src/f-ifft.cc (Fifft): Likewise. + + * src/load-save.cc (Fsave): Declare file and stream static. + + Mon Oct 3 10:40:50 1994 John Eaton + + * src/tree-expr.cc (octave_va_arg): Correct arg count and index to + match recent change to arg passing/nargin. + (define_param_list): Always set num_named_args = param_list->length (). + + * readline/Makefile.in (install): Don't install libreadline.a by + default. + (uninstall): Now no need to delete it. + + * configure.in (localfcnfilepath, localoctfilepath): Change to + match organization of system fcn and oct files, and enable + recursive searching in both. Enable recursive searching in + $(octfiledir). + (includedir): Change to $(prefix)/include/octave. + + Sun Oct 2 10:14:18 1994 John Eaton + + * configure.in: For now, disable IEEE floating point functions on + the Alpha. This is braindead, but at least prevents divide by + zero crashes... + + * src/file-io.cc (fseek_internal): Use values for origin that + match what we use to define SEEK_SET, SEEK_CUR, and SEEK_END in + variables.cc. + + * dld: Merge various changes for Linux from dld 3.2.4 that is + being distributed with jacal. + + * src/file-io.cc (fwrite_internal): Correct indexing of args. + + * src/tree-expr.cc (apply_mapper_fcn): New function. + (tree_builtin::eval): Use it instead of tree_constant::mapper(). + * src/tree-const.h (tree_constant::mapper): Delete. + * src/tc-rep.cc, src/tc-rep.h (TC_REP::mapper): Delete. + + * src/data.cc (Fcumprod, Fcumsum, Fprod, Fsum, Fsumsq): Do work here. + * src/tc-rep.cc (TC_REP::cumprod, TC_REP::cumsum, TC_REP::prod, + TC_REP::sum, TC_REP::sumsq): Not here. Delete. + * src/tc-rep.h (TC_REP::cumprod, TC_REP::cumsum, TC_REP::prod, + TC_REP::sum, TC_REP::sumsq): Delete + * src/tree-const.h (tree_constant::cumprod, tree_constant::cumsum, + tree_constant::prod, tree_constant::sum, tree_constant::sumsq): + Delete. + + * tree-const.h: Don't check gcc minor version number. + * tc-rep.h: Likewise. + + * src/file-io.h (class file_info): Declare here. + * src/file-io.cc: Not here. + + * configure.in (LIBOCTDLD, LIBDLD): Remove ../ prefix. + * Makefile.in (distclean, realclean): Don't remove *.a. + * src/Makefile.in (OCTAVE_LIBS): Correct directory spec for libs. + Build, install, and clean liboctdld.a, not ../liboctdld.a. + * dld/Makefile.in: Build, install, and clean libdld.a, not ../libdld.a. + * info/Makefile.in: Likewise, for libinfo.a. + * kpathsea/Makefile.in: Likewise, for libkpathsea.a. + * libcruft/Makefile.in: Likewise, for libcruft.a. + * liboctave/Makefile.in: Likewise, for liboctave.a. + * readline/Makefile.in: Likewise, for libreadline.a. + + * configure.in (gxx_version): Require 2.6.x or later. Don't + define EXTERNAL_TEMPLATES. Do define NO_IMPLICIT_TEMPLATES. + * liboctave/Array-C.cc, liboctave/Array-d.cc, src/Array-tc.cc, + src/DLList-fi.cc src/SLStack-tok.cc, src/SLStack-ue.cc, + src/SLStack-tm.cc, src/SLStack-pc.cc, src/SLStack-i.cc, + src/SLList-tc.cc, src/SLStack-sym.cc, src/SLStack-ui.cc, + src/SLList-misc.cc, src/SLList-expr.cc, src/SLList-plot.cc, + src/Map-tc.cc: New files. Instantiate templates here. + * libocave/Array.cc, src/Map.cc, src/Stack.cc, src/SLStack.cc: + Not here. Remove #pragma implementation hack. + * liboctave/Array.h, src/Stack.h, src/Map.h, src/SLStack.h: Remove + #pragma interface hack. + * Makeconf.in: Substitute NO_IMPLICIT_TEMPLATES, not + EXTERNAL_TEMPLATES. + (ALL_CXX_FLAGS, UGLY_ALL_CXX_FLAGS): Use $(NO_IMPLICIT_TEMPLATES), + not $(EXTERNAL_TEMPLATES). + * acconfig.h: Remove USE_EXTERNAL_TEMPLATES #undef. + * src/Makefile.in (XALL_CXX_FLAGS): Delete -fno-implicit-templates. + (TI_SRC, TI_OBJ): New variables. + (libtinst.a): New target. + * liboctave/Makefile.in (TI_SRC): New variable. + (SOURCES): Add it to list. + + Fri Sep 30 09:52:15 1994 John Eaton + + * src/Makefile.in: Automatically generate more lists. + Use := in more places. + * src/Array-C.cc src/Array-d.cc src/Array-tc.cc src/Map-tc.cc + src/Stack-i.cc src/SLStack-pc.cc src/SLStack-sym.cc + src/SLStack-tok.cc src/SLStack-tm.cc src/SLStack-ue.cc: + New template instantiation files. + * configure.in: If using gcc 2.6.x or later, use + -fno-implicit-templates instead of -fexternal-templates. + + * src/tc-inlines.h: Rename from tc-inlines.cc. + + * src/parse.y (looking_at_indirect_ref): New global flag, for + parser feedback. + (tree_indirect_ref_type): New token type. + (TEXT_ID): New token. + (indirect_ref): New non-terminal. + (make_index_expression): New function. + (variable): Use it to build variable from indirect_ref, not just + identifier. + + * src/lex.l (handle_identifier): Handle identifiers differently if + looking at an indirect reference. Add `.' to list of other ops. + + * src/tree-expr.cc (tree_identifier::do_lookup): Handle new + exec_script arg. + (tree_identifier::assign): New functions for assignment to a + strucutre element. + (print_constant): New function. + (tree_identifier::eval, tree_indirect_ref::eval): Use it. + ( + + * src/tree-expr.h (tree_indirect_ref): New class for handling + structure references. + (tree_expression::is_indirect_ref): New virtual function. + (tree_fvc::lookup_map_element): New virtual function. + (tree_index_expression, tree_simple_assignment_expression): + Add new constructors for handling indirect references. + + * src/oct-map.h: New file, for class managing Octave's + structure/map type. + + * src/tree-misc.cc (tree_global::eval): Don't allow individual + structure elements to be tagged global. + + * src/tc-rep.h (tree_constant_rep): Add new field, a_map, and a + new type_tag, map_constant. + * src/tree-const.cc (tree_constant::is_map): New function. + * src/tree-const.cc (tree_constant::map_value, + tree_constant::assign_map_element, tree_constant::make_unique, + tree_constant::lookup_map_element, + tree_constant::make_unique_map_element): New functions. + + * src/Map.h (CHNode::CHNode): Copy key. + (CHNode::~CHNode): Delete it. + (CHMap::contents): Don't declare return value const. + + * src/tc-inlines.cc: Move some macros here from tc-rep.cc so they + can appear in one place and be shared by tc-rep-idx.cc, + tc-rep-ass.cc, and tc-pre.cc. + + * src/tc-rep-idx.cc, src/tc-rep-ass.cc: New files, extracted from + tc-rep.cc to make compilation of tc-rep stuff faster and require + less memory. + + * src/variables.cc (Fwhos): Correctly insert "-long" into arg list + for Fwho. + + Mon Sep 26 12:59:55 1994 John Eaton + + * test/Makefile.in (OCTAVE_SCRIPT_PATH): Append `//' for recursive + searching. + + Fri Sep 23 07:53:13 1994 John Eaton + + * scripts/plot/bar.m: Don't return values if nargout == 0. + * scripts/plot/hist.m: Likewise. + * scripts/plot/stairs.m: Likewise. + + * src/tree-plot.cc (Fishold): New function. + (plot_line_count, parametric_plot, clear_before_plotting): + Declare static. + + * src/f-fft.cc (Ffft): Handle row vector as a special case. + * src/f-ifft.cc (Fifft): Ditto. + + Thu Sep 22 13:20:53 1994 John Eaton + + * src/help.cc (print_symbol_type): New function, extracted from Fwhich. + (Fwhich): Use it. + (Fhelp): Use it to print type info before help message. + + * src/dynamic-ld.cc: Hide all DLD-specific functions behind + #ifdef WITH_DLD. + + * scripts/startup: New directory. + * scripts/startup/Makefile.in: New file. + * scripts/startup/octaverc: New file. Don't overwrite existing + file when nstalling. + * configure.in: Generate Makefile in scripts/startup. + * scripts/Makefile.in (SUBDIRS): Add startup. + * src/defaults.h.in (OCTAVE_STARTUPFILEDIR): New macro. + * src/variables.cc (get_site_defaults): Look for octaverc in + OCTAVE_STARTUPFILEDIR. + + * configure.in (fcnfiledir): Make it end in `//'. + + * src/error.cc (Ferror): Correct indexing error. + + * src/Map.h, src/Map.cc: New files implementing associative arrays. + * src/Makefile.in: Include them in the list of files to distribute + and compile. + + Wed Sep 21 09:50:19 1994 John Eaton + + * Makefile.in (DISTSUBDIRS): Add dld to the list. + + * scripts/plot/hist.m: New function file. + + * src/tc-rep.cc (TC_REP::do_matrix_index (tree_constant, + tree_constant): For case of scalar as first arg, move call to + index check to the TC_REP::do_matrix_index (int, tree_constant) + function. + (TC_REP::do_matrix_index (int, tree_constant): Be compatible with + Matlab for indexing of the form row_vector (0, :). + (TC_REP::do_matrix_index (tree_constant, int): Likewise, for + indexing of the form col_vector (:, 0). + (TC_REP::do_matrix_assignment): Similar changes for assignment. + + Tue Sep 20 17:48:39 1994 John Eaton + + * src/parse.y (return_list, return_list1): New nonterminals. + Rename from func_def1a. Handle variable number of return values. + * src/tree-expr.h (tree_function::vr_list): New field. + * src/tree-expr.cc (delete_vr_list): New function. + (tree_function::octave_vr_val, tree_function::takes_var_return): + New functions, for variable return lists. + (tree_function::define_ret_list, tree_function::eval): Handle vr_list. + (Fvr_val): New function. + * src/tree-misc.h (tree_va_return_list): New list class. + * src/tree-misc.cc (tree_parameter_list::convert_to_const_vector): + Take pointer to tree_va_return_list as arg, and append the values + found there. + + * src/arith-ops.cc (mx_stupid_bool_op): Correctly handle empty + matrices for == and != ops. + + * src/variables.cc (Fis_global): Check args(0), not args(1). + (Fexist): Likewise. + (install_builtin_mapper): Set nargin_max to 1, not 2. + + * src/dynamic-ld.cc (octave_dld_init): Make raw program name + absolute before calling dld_find_executable. + + * src/octave.cc (initialize_error_handlers): New function. + (main): Call init_user_prefs and initialize_error_handlers. + Rearrange order of calls to initialization functions. + + * src/user-prefs.cc (init_user_prefs): New function. + + * src/data.cc (map): Correct condition for assert (). Correct + handling of empty args. + + * src/f-lsode.cc src/f-dassl.cc src/f-quad.cc src/f-npsol.cc + src/f-fsolve.cc: Pass correct number of args to + takes_correct_nargs (). + * src/variables.cc (takes_correct_nargs): Use %s, not %c in format + string. + + * src/f-ifft2.cc src/f-expm.cc src/f-det.cc src/f-svd.cc + src/f-syl.cc src/f-schur.cc src/f-qzval.cc src/f-qr.cc + src/f-pinv.cc src/f-lu.cc src/f-log.cc src/f-inv.cc src/f-hess.cc + src/f-eig.cc src/f-chol.cc src/f-balance.cc src/f-lsode.cc + src/f-dassl.cc src/f-quad.cc src/f-npsol.cc src/f-fsolve.cc: + Correctly handle return value from empty_arg (). + * src/utils.cc (empty_arg): Clarify usage, correct return value if + arg is empty but no message is printed. + + * src/Makefile.in (dist): Delete builtins.cc too. + + * configure.in (DYNAMIC_LD_OBJ): Delete. + * src/Makefile.in (OBJECTS): Don't substitute DYNAMIC_LD_OBJ. + Always include dynamic-ld.o. + + * configure.in: Generate Makefile in scripts/elfun and + scripts/specfun. + + * Makeconf.in (version): Use `:=' and `$(shell )', not just `=' + and backticks, so we only extract the version number once. + + Mon Sep 19 09:04:30 1994 John Eaton + + * src/tc-rep.h (represent_strings_with_doubles): New field in + tree_constant_rep class. + + * tree-misc.cc (tree_argument_list::convert_to_const_vector): + Don't allocate extra arg for function name. + * sysdep.cc, pr-output.cc, input.cc, file-io.cc, error.cc, + tc-rep.cc, tree-expr.cc, f-svd.cc, f-sort.cc, f-schur.cc, + f-rand.cc, f-qzval.cc, f-quad.cc, f-qr.cc, f-qpsol.cc, f-pinv.cc, + f-npsol.cc, f-minmax.cc, f-lu.cc, f-lsode.cc, f-log.cc, f-inv.cc, + f-ifft2.cc, f-ifft.cc, f-hess.cc, f-givens.cc, f-fsolve.cc, + f-fft2.cc, f-fft.cc, f-expm.cc, f-eig.cc, f-det.cc, f-dassl.cc, + f-colloc.cc, f-chol.cc, f-balance.cc, f-syl.cc, variables.cc, + tree-misc.cc, data.cc, octave.cc, utils.cc, defun-int.h: + Change meaning and usage of nargin and args.length() to cope with + above change. This makes nargin mean the same thing in built-in + functions as it does in M-files. + + Sat Sep 17 09:29:08 1994 John Eaton + + * scripts/general/nargchk.m: New function. + + Fri Sep 16 08:48:13 1994 John Eaton + + * Makeconf.in (FLIB_LIST, FLIB_PATH, CXXLIBS, CXXLIB_LIST, + CXXLIB_PATH): Set these. + + * cxxlibs.sh: New file. + * configure.in: Use it to determine extra C++ libraries to link + to. Use sed magic to extract list of libraries and directories + from FLIBS and CXXLIBS. + * Makefile.in: (DISTFILES): Include cxxlibs.sh. + + * configure.in: Change AC_VERBOSE messages to match + autoconf-generated messages. + + * src/dynamic-ld.cc (dld_octave_resolve_reference): Search library + path for list of files to link. + + * src/utils.cc (pathstring_to_vector): Un-#if 0 it. + + * Makefile.in: Install liboctdld.a if not linking to it. + (defaults.h): Substitute FLIB_LIST, FLIB_PATH, CXXLIB_LIST, + CXXLIB_PATH. + + Thu Sep 15 09:31:29 1994 John Eaton + + * Makeconf.in (LD_STATIC_FLAG): Actually substitute LD_STATIC_FLAG. + (ALL_LDFLAGS): Include it here. + + * configure.in: Check for signgam declaration in math.h + * acconfig.h: Add #undef for SIGNGAM_DECLARED. + * src/mappers.h: Provide our own declaration of signgam if + HAVE_LGAMMA but not SIGNGAM_DECLARED. + + Wed Sep 14 11:28:09 1994 John Eaton + + * src/dynamic-ld.cc (mangled_octave_builtin_name, + mangle_octave_oct_file_name, load_octave_builtin, + load_octave_oct_file, init_dynamic_linker): New functions. + [WITH_DLD] (octave_dld_init, dld_octave_resolve_reference, + dld_octave_builtin, dld_octave_oct_file): New functions to handle + details of dynamic linking using dld. + + * src/variables.cc (load_fcn_from_file) [WITH_DLD]: Handle looking + for .oct file to link at run time. + + * src/tree-expr.cc (tree_builtin::tree_builtin): Always init my_name. + (tree_builtin::eval): If no definition, try to load one using + load_octave_builtin(). + + * src/octave.cc (main): Initialize dynamic linking here. + + * src/defun-int.h (DEFINE_FUN_STRUCT, DEFINE_FUN_STRUCT_FUN): + New macros. + * src/defun-dld.h (DEFUN_DLD_BUILTIN): Rename from DEFUN_DLD and + handle case of WITH_DLD && OCTAVE_LITE && MAKE_BUITLINS. + (DEFUN_DLD): Use this for external user-supplied functions that + are intended to be dynamically linked. + + * configure.in: Handle --enable-lite-kernel. Call AC_SUBST for + use_dld and lite_kernel. Define LIBOCTDLD unless doing dynamic + linking and small kernel requested. + * acconfig.h: Add #undefs for OCTAVE_LITE and SMART_PUTENV. + * Makeconf.in: Define WITH_DLD from @use_dld@ and OCTAVE_LITE from + @lite_kernel@. + + * src/octave.cc (Fsystem): Rename from shell_cmd. + (Fshell_cmd): Define as alias to Fsystem. + + Mon Sep 12 20:19:20 1994 John Eaton + + * src/mappers.cc: Include error.h and math.h. + + Sat Sep 10 11:49:11 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * Makefile.in: Clean up rules for making distributions. + (DISTDIRS): Distribute kpathsea + + Fri Sep 9 08:46:03 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/dMatrix.cc (pseudo_inverse): New function. + * liboctave/CMatrix.cc (pseudo_inverse): New function. + * src/f-pinv.cc: New file, for pinv(). + * src/Makefile.in (DLD_SRC): Add f-pinv.cc. + (DLD_OBJ): Add f-pinv.o. + * scripts/linear-algebra/pinv.m: Delete. + + * configure.in: Define and substitute $imagepath. + * src/Makefile.in: Substitute OCTAVE_IMAGEPATH. + * src/defaults.h.in: Add OCTAVE_IMAGEPATH. + * src/variables.cc (install_builtin_variables): Define IMAGEPATH. + * src/user-prefs.cc (image_path): New function. + * Makeconf.in (imagepath): substitute it. + + * src/octave.cc (initialize_globals): Ensure that $archlibdir is + in the user's PATH. + + * utils.cc (search_path_for_file, Ffile_in_path): New functions. + + * configure.in: Append `//' to $fcnfiledir, for recursive + searching. + (AC_OUTPUT): Edit makefiles in script subdirectories too. + + * scripts: Regroup function files in the following directories, + each with its own Makefile.in: + + image plot signal control + linear-algebra polynomial special-matrix general + miscellaneous set statistics + + * src/help.cc (simple_help): Use kpathsea functions to find files + in path. + * src/utils.cc (get_fcn_file_names): Likewise. + (pathstring_to_vector): #if 0 out. + + Thu Sep 8 16:59:42 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/Makefile.in (OCTAVE_LIBS): Include ../libkpathsea.a. + * configure.in: Include configure stuff for kpathsea here too. + * Makefile.in (kpathsea): New target. + * src/utils.cc (file_in_path): Use kpathsea function instead of + doing our own searching. + * kpathsea/Makefile.in (lib): Define as ../libkpathsea.a, not just + kpathsea.a. + + Wed Sep 7 09:39:20 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/user-prefs.cc (check_str_pref): Fix comment. + + * src/utils.cc (empty_arg): Check flag == 0, not is_empty > 0. + + * src/f-fft2.cc (Ffft2): New file and function. + * src/f-ifft2.cc (Fifft2): Likewise. + * src/fft2.m, src/ifft2.m: Delete. + + * src/f-fft.cc (Ffft): Handle second arg. Depending on value of + propagate_empty_matrices, return empty matrix for empty arg. + * src/f-ifft.cc (Fifft): Likewise. + + * liboctave/CMatrix.cc (fourier2d, ifourier2d): New functions. + * liboctave/dMatrix.cc (fourier2d, ifourier2d): New functions. + + * src/tree-misc.cc (eval (int, int)): New function. + * src/octave.cc (eval_string, Feval): Handle multiple output args. + + * src/error.cc (suppress_octave_error_messages): New global. + (error): Check it to see if messages should be printed. + * src/octave/cc (Feval): Set it if `catch' arg is supplied. + + * src/octave.cc (Feval): Handle second `catch' arg. + + * src/load-save.cc (read_mat_file_header): Init swap to zero. + + * doc/octave.1: New simple man page. + * doc/Makefile.in: Distribute and install it. + + * src/variables.cc (Fclear): Handle -x option for exclusive clear. + + Tue Sep 6 16:00:34 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/load-save.cc (save_mat_binary_data): New function. + (do_save): Handle LS_MAT_BINARY. + (Fsave): Handle -mat-binary. + (Changes from G. Beyerle .) + + * src/variables.cc (subs_octave_home, octave_arch_lib_dir): + New functions. + (octave_home, octave_info_dir, octave_lib_dir, default_path): + Fix for new directory organization. + + * src/tree-expr.h (tree_multi_val_ret): New class to serve as a + base for objects that can produce more than one value when + evaluated. + (tree_fvc, tree_index_expression, tree_multi_assignment_expression): + Use it as a base. + + * src/parse.y (make_multi_val_re): New function. + (expression): Use it to construct multiple value assignments. + + * configure.in, Makefile.in, Makeconf.in, src/defaults.h.in: + Revamp directory structure used for installed versions of Octave. + + * src/f-schur.cc (Fschur): Correct argument count in error message. + + * src/octave.cc (Fcomputer): New function. + * scripts/computer.in: Delete. + * scripts/Makefile.in: Don't edit or distribute computer.in. + + Thu Sep 1 09:02:06 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/variables.cc (install_builtin_variables): New builtin + variable, OCTAVE_VERSION. + + Tue Aug 30 17:18:14 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * tree-expr.cc: Include string.h + (tree_matrix::eval): Fix handling of strings to work as in 1.0. + + Mon Aug 29 14:55:14 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/lex.l: Handle ".+" and ".-" too. + + * src/dirfns.cc (dir_acess, exists, gen_tempname, tempnam): New + functions from glibc. + * src/utils.cc (octave_tmp_file_name): Use tempnam. + (choose_temp_base_try): Delete. + * configure.in: Check for tempnam. + + * src/load-save.cc (Fsave): Only write floating point format if + doing binary save. + + * liboctave/Array.cc (operator =): Check to see if assignment is + to same object. + + Sun Aug 28 23:32:59 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/CollocWt.cc (CollocWt::init): Call delete [] on vectors. + * liboctave/NPSOL.cc (NPSOL::minimize): Eliminate some memory leaks. + * liboctave/QPSOL.cc (QPSOL::minimize): Likewise. + * liboctave/NLEqn.cc (NLEqn::solve): Likewise. + + Thu Aug 25 09:27:04 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * info/session.c (info_get_input_char): Don't exit immediately if + we see EOF on the input stream. + + * scripts/kurtosis.m, scripts/skewness.m: Update from KH. + + Wed Aug 24 00:19:49 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * dld/Makefile.in, scripts/Makefile.in, doc/Makefile.in, + readline/Makefile.in, info/Makefile.in, libcruft/Makefile.in, + liboctave/Makefile.in, src/Makefile.in (INSTALL, INSTALL_PROGRAM, + INSTALL_DATA): Define here. + * Makeconf.in: Not here. + + * src/tree-plot.cc (send_to_plot_stream): Handle + user_pref.automatic_replot. + * src/variables.cc (install_builtin_variables): + Add DEFVAR for automatic_replot. + * src/user-prefs.cc (automatic_replot): New function. + * src/user-prefs.h (user_preferences): Add automatic_replot to the + list. + + * src/data.cc (Fatan2): Make work for mixed scalar and Matrix args. + (map): New functions for two arg mappers (like atan2). + + * src/f-fsqp.cc: Don't surround everything in FSQP_MISSING, so + that trying to use fsqp will result in a message about fsqp not + being freely redistributable. + * src/f-npsol.cc: Likewise, for NPSOL_MISSING. + * src/f-qpsol.cc: Likewise, for QPSOL_MISSING. + + Tue Aug 23 12:56:47 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tree-expr.cc (tree_identifier::eval): Don't call delete for + ans_id. The destructor for tree_simple_assignment_expression does + this now. + + * src/Makefile.in (%.def : %.cc): Use sed, not awk. + (realclean, distclean, local-dist, dist): Delete .d and .def files. + + * liboctave/Array.h (DiagArray::Proxy): Make compilation + conditional on gcc version, not just _AIX. + + * src/utils.cc (octave_tmp_file_name, choose_temp_base_try): New + functions, stolen from GCC. If HAVE_MKTEMP is not defined, just + call tmpnam; otherwise, try harder to please. + * src/tree-plot.cc (save_in_tmp_file): Use it, instead of calling + tmpnam() directly. + * src/file-io.cc (do_scanf): Likewise. + * src/octave-hist.cc (mk_tmp_hist_file): Likewise. + * configure.in: Check for mktemp. + + * src/tree-const.h (is_matrix_type, is_scalar_type): Make private. + * src/tc-rep.h (is_matrix_type, is_scalar_type): Likewise. + + * src/tc-rep.h (force_numeric, make_numeric, + make_numeric_or_magic, make_numeric_or_range_or_magic): Make + private. + (make_numeric_or_range): #if 0 out. + + * src/utils.cc (empty_arg): Correctly set return value. + + * src/arith-ops.cc: Don't include setjmp.h. + * src/utils.cc: Surround setjmp.h with extern "C". + * src/octave.cc: Likewise. + + * src/sighandlers.cc (octave_new_handler): New function. + (install_signal_handlers): Call it. + + * src/f-qzval.cc (Fqzvalue): Don't call make_numeric for args. + Check error state after attempting to extract values. Simplify + where possible. + * src/f-colloc.cc (Fcolloc): Likewise. + * src/f-rand.cc (Frand): Likewise. + * src/f-sort.cc (Fsort): Likewise. + * src/f-find.cc (Ffind): Likewise. + * src/f-minmax.cc (Fmin, Fmax): Likewise. + * src/f-fft.cc (Ffft): Likewise. + * src/f-ifft.cc (Fifft): Likewise. + * src/f-svd.cc (Fsvd): Likewise. + * src/f-inv.cc (Finv): Likewise. + * src/f-det.cc (Fdet): Likewise. + * src/f-eig.cc (Feig): Likewise. + * src/f-lu.cc (Flu): Likewise. + * src/f-hess.cc (Fhess): Likewise. + * src/f-qr.cc (Fqr): Likewise. + * src/f-givens.cc (Fgivens): Likewise. + * src/f-syl.cc (Fsyl): Likewise. + * src/f-log.cc (Flog): Likewise. + * src/f-expm.cc (Fexpm): Likewise. + * src/f-balance.cc (Fbalance): Likewise. + * src/f-schur.cc (Fschur): Likewise. + * src/f-chol.cc (Fchol): Likewise. + * src/f-npsol.cc (Fnpsol, npsol_options): Likewise. + * src/f-fsolve.cc (Ffsolve, fsolve_options): Likewise. + * src/f-dassl.cc (Fdassl, dassl_options): Likewise. + * src/f-lsode.cc (Flsode, lsode_options): Likewise. + * src/f-quad.cc (Fquad, quad_options): Likewise. + * src/tree-expr.cc (tree_matrix::eval): Likewise, while building + matrix. + (tree_colon_expression::eval): Likewise, for elements of range. + * src/variables.cc (is_valid_function, Fis_global, Fexist): + Likewise. + * src/sysdep.cc (Fgetenv, Fpause): Likewise. + * src/octave.cc (eval_string, Fshell_cmd): Likewise. + * src/input.cc (get_user_input): Likewise. + * src/file-io.cc (return_valid_file, fopen_file_for_user, + fgets_internal, fseek_internal, process_printf_format, do_printf, + do_scanf, fread_internal, fwrite_internal, feof_internal): + Likewise. + + * src/tc-rep.cc (TC_REP::string_value): Call error() and return 0 + instead of crashing if not string_constant. + + * src/file-io.cc (fopen_file_for_user): Take string as first arg, + not tree_constant. Change callers. + (fgets_internal, fseek_internal): Correct check for int arg. + (process_scanf_format): Use isspace instead of checking directly + (and incorrectly) for white space characters. + + * src/tree-expr.cc (tree_matrix::eval, tree_unary_expression::eval, + tree_binary_expression::eval, tree_colon_expression::eval, + tree_simple_assignment_expression::eval ): Eliminate uneccesary + conversions to and from Octave_object/tree_constant. + + Mon Aug 22 18:35:05 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/data.cc (Fatan2): New function. + + * src/data.cc (get_dimensions): Don't call make_numeric for args. + Check error state after attempting to extract values. + + Fri Aug 19 08:28:24 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tree-misc.h (tree_parameter_list::tree_parameter_list)): + Initialize marked_for_varargs to zero. + + * src/load-save.cc: Add float variants of the conversion routines. + (LS_DO_READ): Add swap parameter and only swap bytes if it is true. + (read_doubles): Pass swap to LS_DO_READ. Handle float data. + (LS_DO_WRITE): Copy data to tmp buffer to avoid destroying data. + (do_double_format_conversion): Rename from do_float_format_conversion. + (do_float_format_conversion): New function to handle conversion + for float data. + (read_mat_binary_data): Use read_doules for all cases. Handle + float data. + (too_large_for_float): New function. + (save_binary_data): Save data format for scalars and ranges too. + (read_binary_data): Read data format for scalars and ranges too. + (do_save, save_vars): New arg, save_as_floats. + (Fsave): New option, -float-binary. + + * src/utils.cc (empty_arg): New function. + * src/f-balance.cc (Fbalance): Use it to simplify handling of + empty arguments. + * src/f-chol.cc (Fchol): Likewise. + * src/f-det.cc (Fdet): Likewise. + * src/f-eig.cc (Feig): Likewise. + * src/f-expm.cc (Fexpm): Likewise. + * src/f-fft.cc (Ffft): Likewise. + * src/f-hess.cc (Fhess): Likewise. + * src/f-ifft.cc (Fifft): Likewise. + * src/f-inv.cc (Finv): Likewise. + * src/f-log.cc (Flogm, Fsqrtm): Likewise. + * src/f-lu.cc (Flu): Likewise. + * src/f-qr.cc (Fqr): Likewise. + * src/f-schur.cc (Fschur): Likewise. + * src/f-svd.cc (Fsvd): Likewise. + + * src/tc-rep.cc (tupe_as_string): Move here. + * src/tree-const.cc: From here. + + * src/gripes.cc (gripe_invalid_conversion): New function. + + Thu Aug 18 21:02:19 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/(print_empty_matrix): New function. + * src/pr-output.cc (octave_print_internal): Use it to print empty + matrices. + * src/tc-rep.cc (TC_REP::print_code, TC_REP::print): Rely on + octave_print_internal() to handle printing empty matrices. + + * src/pr-output.cc (octave_print_internal (all variants)): + New arg, pr_as_read_syntax. If nonzero, print the value in a form + that Octave can parse. Declare os as ostream&, not ostrstream&. + * src/tc-rep.cc (TC_REP::print_code): Handle all types, not just + real and imaginary constants. + * src/help.cc (Ftype): Also print values of variables. + + Wed Aug 17 08:46:44 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/octave.cc (Fshell_cmd): Return output if nargout > 0 or + nargin > 2, otherwise, just send output to the pager. + + * src/mappers.cc (xerf, xerfc, xgamma, xlgamma): New functions. + Put preprocessor conditionals here. + (install_mapper_functions): Not here. + + Tue Aug 16 09:55:25 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * configure.in: Check for erf, erfc, and lgamma. + * src/mappers.cc (erf, erfc, lgamma): New mappers. + * src/mappers.h (Mapper_fcn): Add new field `name'. + * src/variables.cc (install_builtin_mapper): Save the name. + * src/tc-rep.cc (TC_REP::mapper): Don't crash if a mapper function + is missing. + + * src/tc-rep-1.cc (warn_invalid_conversion): New function. + * src/gripes.cc (gripe_invalid_conversion): New function. + + * src/parse.y (list1, parse_error): New non-terminals. + (list): Use them. + * src/lex.l: Return LEXICAL_ERROR instead of calling + jump_to_top_level. + + * liboctave/Range.cc (matrix_value): New function. + * src/tc-rep.cc (TC_REP::matrix_value): Use it. + + * src/tree-const.h (to_matrix, to_vector, to_scalar): Delete + unecessary functions. + * src/tc-rep.cc (TC_REP::to_matrix, TC_REP::to_vector, + TC_REP::to_scalar): Likewise. Change all callers to use + matrix_value, vector_value, and scalar_value instead. + + * src/tree-const.cc (TC_REP::matrix_value): If at all possible, + produce a matrix from the current constant. Otherwise, print an + error message. Don't abort or jump to the top level. + (TC_REP::scalar_value, TC_REP::complex_scalar_value, + TC_REP::vector_value, TC_REP::complex_vector_value, + TC_REP::complex_matrix_value): Likewise, for appropriate types. + + * src/utils.cc (empty_arg): New function. + * src/f-svd.cc (Fsvd): Use it. Don't call make_numeric; rely on + value functions to do conversion. + + * src/load-save.cc (Fload): Handle -list and -verbose. + + Mon Aug 15 09:32:57 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tc-rep.cc (TC_REP): New define, so we don't have to write + tree_constant::tree_constant_rep:: everywhere. + * src/tree-const.h (class tree_constant): Nest tree_constant_rep + class inside tree_constant class by including tc-rep.h here. + * src/tc-rep.h: Don't include any other files, delete forward + class declarations. + + * src/tc-rep.h (constant_type): Make private. + + * src/parse.y (arg_list): Use tree_constant::magic_colon in + constructor call, not tree_constant_rep::magic_colon. + * src/tree-const.h (tree_constant::tree_constant + (tree_constant::magic_colon)): Convert arg from + tree_constant_rep::constant_type. + + * src/f-svd.cc (Fsvd): Simplify. + + * src/tree-expr.cc (any_arg_is_magic_colon): Don't use values from + tree_constant_rep::constant_type enum. + (tree_matrix::eval): Likewise. + * src/tree-misc.cc (tree_parameter_list::define_from_arg_vector, + tree_if_clause::eval): Likewise. + * src/tree-cmd.cc (tree_while_command::eval, + tree_for_command::eval): Likewise. + * src/symtab.cc (symbol_record_info::symbol_record_info): Likewise. + * src/f-colloc.cc (Fcolloc): Likewise. + * src/f-npsol.cc (npsol_objective_function): Likewise. + * src/f-chol.cc (Fchol): Likewise. + * src/f-det.cc (Fdet): Likewise. + * src/f-eig.cc (Feig): Likewise. + * src/f-expm.cc (Fexpm): Likewise. + * src/f-fft.cc (Ffft): Likewise. + * src/f-find.cc (Ffind): Likewise. + * src/f-hess.cc (Fhess): Likewise. + * src/f-ifft.cc (Fifft): Likewise. + * src/f-inv.cc (Finv): Likewise. + * src/f-log.cc (Flog): Likewise. + * src/f-lu.cc (Flu): Likewise. + * src/f-minmax.cc (Fmin, Fmax): Likewise. + * src/f-qr.cc (Fqr): Likewise. + * src/f-rand.cc (rand): Likewise. + * src/f-schur.cc (schur): Likewise. + * src/f-sort.cc (Fsort): Likewise. + * src/f-svd.cc (Fsvd): Likewise. + + * src/f-lu.cc (Flu): Handle case of nargout == 0 the same as + nargout == 1. + + * src/tree-const.h (force_numeric): Don't return type info. + * src/tc-rep.cc (tree_matrix::eval): Ditto. + * src/tree-expr.cc (tree_matrix::eval): Don't use return value + from tree_constant::force_numeric(). + + * src/tree-const.h (is_magic_colon): New function. + * src/tc-rep.h (is_magic_colon): New function. + + * src/load-save.cc (ascii_save_type): New function. + (save_binary_data, save_ascii_data, save_three_d): Don't use + values from tree_constant_rep::constant_type enum. Fail if write + is unsuccessful. Fail but don't panic if type is unrecognized. + (save_vars): Check error state after call to do_save(). + + * src/tc-rep.cc (isstr): Delete, since we have is_string. + * src/tree-const.h (isstr): Ditto. + * src/data.cc (Fisstr): Use is_string(), not isstr(). + + Sun Aug 14 16:12:10 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/load-save.cc (save_type): Add LS_U_INT, LS_CHAR and LS_FLOAT. + (get_save_type): Handle them. + (read_doubles, write_doubles): Likewise. + + * src/load-save.cc (get_floating_point_format): New function. + (read_mat_binary_data, read_binary_file_header): Use it. + + * src/lex.l: Combine {D}+\.{D}*{EXPON}?{Im} and {D}+{EXPON}?{Im} + patterns into the single pattern {D}+\.?{D}*{EXPON}?{Im} + Likewise, combine {D}+\.{D}*{EXPON}? and {D}+{EXPON}? into the + single pattern {D}+\.?{D}*{EXPON}? + ({D}+/\.[\*/\\^']): New pattern to force expressions like `1./m' + to be parsed the same as `1 ./ m'. + + * src/tree-expr.cc (do_lookup): Correctly set script_file_executed. + + * src/octave.cc (long_opts): Add --silent as an alias for --quiet, + and --ignore-init-file as an alias for --norc. + + * src/octave.cc (verbose_usage): Exit successfully to conform to + the GNU coding standards. + + Sat Aug 13 11:06:23 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/dirfns.cc (chdir): New alias for cd. + + * src/lex.l (")"): Set convert_spaces_to_comma. + + * src/*.cc: Use tree_constant::is_string(), not + tree_constant::is_string_type(). + + * src/f-balance.cc (Fbalance): Use is_string() rather than + checking const_type() against tree_constant_rep::string_constant. + + * src/tc-rep.h (tree_constant_rep::is_string_type): Delete. + * src/tree-const.h (tree_constant::is_string_type): Delete. + + * src/Makefile.in (%.def : %.cc): Complain if generated file is + empty. + + * configure.in (gcc_version): Set LDFLAGS to -g, not "-g -O". + + * src/lex.l (looks_like_bin_op): Also return true for things like + [ 1+ 2 ]. + + * src/data.cc (Feye, Fones): With no args, return 1.0. + (Fzeros): With no args, return 0.0. + + * src/Makefile.in (XALL_CXXFLAGS): ALL_CXXFLAGS without + -fextternal-templates. + (%.def : %.cc): Use it instead of ALL_CXXFLAGS. + + * configure.in: Don't use -O for compiling float-type.c. + + * libcruft/misc/Makefile.in (XCC): Use patsubst to delete any -O# + flags, not just -O. + + Fri Aug 12 18:20:35 1994 John Eaton (jwe@schoch.che.utexas.edu) + + Changes for binary load/save, and reading .mat files: + + * src/variables.cc (is_globally_visible): Declare extern, not + static. + + * src/user-prefs.cc (sv_default_save_format): New function. + * src/user-prefs.h (default_save_format): New field in + user_preferences struct. + src/variables.cc (install_builtin_variables): Add DEFVAR for + default_save_format. + + * src/tc-rep.h (tree_constant_rep::is_unknown, + tree_constant_rep::is_scalar, tree_constant_rep::is_matrix, + tree_constant_rep::is_complex_scalar, + tree_constant_rep::is_complex_matrix, + tree_constant_rep::is_string, tree_constant_rep::is_range): + New functions. + + * src/tree-const.h (tree_constant::is_unknown, + tree_constant::is_scalar, tree_constant::is_matrix, + tree_constant::is_complex_scalar, tree_constant::is_complex_matrix, + tree_constant::is_string, tree_constant::is_range): + New functions. + + * src/tc-rep.cc (tree_constant_rep::save, + tree_constant_rep::save_three_d): Move to load-save.cc and convert + to nonmember functions. + + * src/tree-const.h (tree_constant::save, + tree_constant::save_three_d): Delete functions. + + * src/tree-plot.cc (save_in_tmp_file): Call nonmember functions + save_ascii_file and save_three_d instead of tree_constant class + member functions. + + * src/symtab.cc (symbol_table::glob): New function. + (symbol_table::save, symbol_record::save, symbol_def::save): + Delete unneeded functions. + + * src/load-save.cc: New file, for load/save related functions + extracted from src/variables.cc and src/tc-rep.cc. + + * src/error.cc (verror): Don't print name if it is null. + + Tue Aug 9 14:31:43 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/file-io.cc (process_printf_format): Use + tree_constant::is_scalar_type() and is_string_type() functions + instead of comparing directly with elements of the + tree_constant_rep::constant_type enum. + * src/variables.cc (builtin_real_scalar_variable): Likewise. + (install_loaded_variable): Likewise. + + * src/tree-plot.cc (open_plot_stream): New function. + (send_to_plot_stream): Use it. Do our own check for replot with + nothing to plot. + (tree_plot_command::eval): Open plot stream before doing anything. + + * src/data.cc (check_dimensions): When changing negative + dimensions to zero, handle nr and nc separately. + + Mon Aug 8 20:18:17 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * variables.cc (is_valid_fcn): Use lookup_by_name() instead of + looking in the global symbol table directly. + + * variables.cc (load_variable): Move code here. + * src/tc-rep.cc (tree_constant_rep::load): From here. + * src/tree-const.h (tree_constant::load): Delete. + + * src/tree-plot.cc: Derive classes from tree_print_code and + implement print_code() member functions. + + * src/tree-plot.cc (subplot_list::print): New function. + (tree_plot_command::print): Use it, and don't crash if plot_list + is null. + + * scripts/axis.m: New function file. + + Sun Aug 7 17:06:16 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * configure.in: Check for size of short, int, and long. + + * float-type.c: New file. + * configure.in: Use it to determine the native floating point + format. + * Makefile.in: Add it to the list of files to distribute. + * acconfig.h (IEEE_BIG_ENDIAN, IEEE_LITTLE_ENDIAN, VAX_D_FLOAT, + VAX_G_FLOAT): Add #undefs. + + Sat Aug 6 18:23:47 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * config.guess: Update with new copy from gcc 2.6.0. + + * src/*.cc, src/*.h, src/*.l, src/*.y: Eliminate need for tree.h. + * src/Makefile.in (INCLUDES): Delete it from the list. + + * src/token.cc (token::token (double)): Handle saving original + text of constants for later use by print_code() functions. + (token::~token): Delete original text. + (token::text_rep): New function. + * src/lex.l: Save original text for NUM and IMAG_NUM tokens. + * src/parse.y: Likewise. + + * src/parse.y (yyerror): Use the pager. + + * src/tree-base.h (tree_print_code): New base class for trees and + lists of trees. + (tree): Derive from tree_print_code. + * src/tree-base.cc: New file, for tree_print_code functions, and + for initializing tree_print_code static members. + * src/tree-const.cc, src/tc-rep.cc, src/tree-plot.cc, + src/tree-expr.cc, src/tree-cmd.cc (all tree classes): + Provide print_code() member function. + * src/tree-misc.cc: Also derive list classes from tree-base.h and + provide print_code() member functions. + + * src/help.cc (Ftype, Fwhich): New functions. + + * src/octave-hist (do_history): Send history output through the + pager. + + * src/variables.cc (do_who, Fwhos): New functions. + + * src/tree-expr.h (tree_expression::in_parens): Declare here. + (tree_simple_assignment_expression::in_parens): Not here. + * src/parse.y (maybe_warn_assign_as_truth_value): Eliminate cast. + + * src/variables.cc (load_fcn_from_file, lookup, lookup_by_name): + New functions, extracted from tree_identifier class. + (gobble_leading_whitespace, is_function_file, parse_fcn_file): + Move here from tree-expr.cc. + * src/help.cc (Fhelp): Use lookup_by_name so that looking up + symbols is handled in a consistent way. + + * tree-expr.cc (tree_unary_expression::oper, + tree_binary_expression::oper, tree_prefix_expression::oper, + tree_postfix_expression::oper): New functions. + + * tc-rep.cc (valid_scalar_indices): Define here. + * tc-inlines.cc: Not here. + + * src/tree-const.h (tree_constant::stash_original_text): New + function. + * src/tc-rep.cc (tree_constant_rep::stash_original_text): Ditto. + (undo_string_escapes): Ditto. + + * src/tc-rep (tree_constant_rep::do_matrix_index): Don't just + return *this. + * src/tree-const.h (tree_constant::tree_constant (tree_constant_re&)): + Delete. + + * src/pager.cc (open_diary_file, close_diary_file, + maybe_write_to_diary_file, Fdiary): New functions. + (flush_output_to_pager): Call maybe_write_to_diary_file before + sending output to the screen. + * src/input.cc (octave_gets): Call maybe_write_to_diary file to + save the prompt and the user input. + * src/error.cc (verror): Use C++ streams, not C I/O functions. + Call maybe_write_to_diary file to save error messges too. + * src/octave.cc (clean_up_and_exit): Close diary file here. + + * src/octave.cc (main): Initialize pager first. + + * src/input.cc (get_user_input): Return empty matrix for no input. + + * src/tree-plot.cc: Include readline/tilde.h instead of declaring + tilde_expand() directly. + * src/utils.cc: Likewise. + + * src/tree-plot.cc (tree_plot_command::print_code): New function. + * src/tree-const.h (tree_constant::print_code): Likewise. + + * src/tree-expr.h (tree_simple_assignment_expression::ans_ass): + New data member to flag assignments to ans. + * src/tree-expr.cc (tree_identifier::eval): Set it when + constructing assignments to ans. + * src/parse.y (maybe_convert_to_ans_assign): Likewise. + + * src/tree-expr.h (tree_simple_assignment_expression::preserve): + New data member to allow preserving left hand side args that + shouldn't be deleted in some cases (ugh). + * src/tree-expr.cc (tree_multi_assignment_expression::eval): + Create assignment with preserve flag set. + + Wed Aug 3 14:27:25 1994 John Eaton (jwe@schoch.che.utexas.edu) + + Yet another massive reorganization of sources, once again + hopefully for the better. A fair amount of work is not detailed + here, but these are the major points. The grammar file and the + derivation of the tree classes are somewhat cleaner now. + + * src/parse.y: Cope with changes to derivation scheme. + + * src/tree-misc.cc: New file. + (tree_statement, tree_global): New classes. + (tree_global_init_list): New class, derived from SLList for the + list of expressions in a global command. + * src/tree-cmd.cc (tree_global_command): Use tree_global_init_list. + + * src/tree-misc.cc (tree_argument_list): Move here from + tree-expr.cc, and derive from SLList instead of tree. + (tree_parameter_list): Likewise. + (tree_return_list): Likewise. + + * src/tree-cmd.cc (tree_command_list): Delete class. + * src/tree-misc.cc (tree_statement_list): New class for keeping a + list of commands or expressions to evaluate. Derive from SLList, + not tree. + + * src/tree-plot.cc (subplot_list, plot_limits, plot_range, + subplot_using, subplot_style): Rename from tree_*, and + don't derive from tree class. + + * src/tree-plot.cc: Eliminate eval member function for classes not + derived from tree class. + + * src/tree-plot.cc, src/tree-cmd.cc: For classes derived from + tree-command, the eval() member function is now void eval (void). + + * src/tree-base.h (tree::tree): New constructor, to initialize the + line and column info. For all classes that are derived from the + tree class, use it instead of manipulating the data directly. + (line_num, column_num): Make private. + + * src/tree-expr.cc (tree_simple_assignment_expression::preserve): + New data member, set in constructors and used by the destructor + when the left-hand side of the expression should not be deleted + (as for some temporary assignments not constructed in the parser). + + * src/tree-expr.h (tree_expression::type) Rename and move here from + tree-base.h. Change all uses. + (tree_matrix::dir): Likewise. Change all uses. + + * src/utils.cc (make_argv): Stash function name in argv[0]. + + * src/octave.cc (global_command): Declare as tree_statement_list, + not tree. + + * src/parse.y (make_binary_op, make_unary_op, make_prefix_op, + make_postfix_op): New functions. + + * src/parse.y (GLOBAL): Make it a tok_val type. + * src/lex.l (is_keyword): Give GLOBAL a value. + + Mon Aug 1 22:37:22 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/lex.l (grab_help_text): Unput the last character read. + + Sun Jul 31 21:17:07 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/pr-output.cc (set_format (double, int&)): Avoid calling + log10 for Inf and NaN. + + Fri Jul 29 16:08:32 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/octave.cc (reading_startup_message_printed): New flag. + (parse_and_execute): New arg, verbose. If true, print name of + file as it is read. + (execute_startup_files): Don't print message if + inhibit_startup_message is true. + (main): Move startup message before reading init files. + + Thu Jul 28 00:25:42 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/Makefile.in (MATRIX_INC): Delete CmplxColVec.h from list. + + * src/symtab.cc (symbol_table::rename): New function. + * src/parse.y (func_def2): Use it instead of tree_identifier::rename. + * src/tree-expr.cc (tree_identifier::rename): Delete unused function. + + * src/tree-expr.cc (tree_identifier::load_fcn_from_file): New function. + (tree_identifier::do_lookup): Use it instead of parse_fcn_file. + * src/variables.cc (is_valid_function): Ditto. + * src/help.cc (Fhelp): Ditto. + + * src/utils.cc (oct_file_in_path): New function. + + Wed Jul 27 08:59:32 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tree-expr.cc (tree_identifier::parse_fcn_file): Combine + three functions into one. + + * src/utils.cc: Delete uneeded declaration of ioctl(). + * src/sysdep.cc: Likewise. + + * install.sh: New file, from autoconf distribution. + * Makefile.in (DISTFILES): Distribute it. + + Tue Jul 26 16:08:58 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * scripts/Makefile.in (DISTDIRS): New variable, for directories + below scripts to distribute. + (dist): Handle distributing whole directories named by $(DISTDIRS). + (local-dist): Ditto. + + Mon Jul 25 12:57:09 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/CmplxQRP.cc: Provide declaration for zungqr. + * liboctave/dbleQRP.cc: Provide declaration for dorgqr. + + * src/Makefile.in (dist): Also remove y.output and defaults.h. + (local-dist): Ditto. + (realclean): Ditto. + + * src/oct-obj.h (Octave_object::Octave_object (int)): Make + private, to avoid problems with different meanings of + Octave_object (int) and Octave_object (double) constructors. + + * scripts/amr-image: New files for image processing from Tony + Richardson. These are not in the default octave LOADPATH yet. + See the README file in the amr-image directory for more info on + how to use them. + + * src/octave.cc (Fshell_cmd): Restore accidentally deleted + function. + + * scripts/conv-amr.m, scripts/deconv-amr.m, scripts/roots-amr.m, + scripts/poly-amr.m, scripts/roots-tuwien.m, scripts/conv-tuwien.m, + scripts/deconv-tuwien.m, scripts/poly-tuwien.m: + New files. + FIXME -- For each of these functions, either one of the + versions will need to be selected, or they will need to be merged + before the next release. + + * scripts/null.m, scripts/orth.m, scripts/fft2.m, scripts/ifft2.m, + scripts/filter.m, scripts/compan.m, scripts/polyderiv.m, + scripts/polyinteg.m, scripts/polyreduce.m, scripts/polyval.m, + scripts/polyvalm.m, scripts/postpad.m, scripts/prepad.m, + scripts/residue.m, scripts/sinc.m, scripts/freqz.m, + scripts/complement.m, scripts/intersection.m, + scripts/create_set.m, scripts/union.m: + New files. + + * scripts/hilb.m: Eliminate inner loop, for speed. From + romolo@URSAMAJOR.ENG.UNIPR.IT (Romolo Manfredini). + + Sun Jul 24 22:08:48 1994 Castor Fu (castor@drizzle.stanford.edu) + + * libcruft/ranlib/genf.f (genf): Use 1.2E-38 instead of 1.0E-38 + when checking to see if generated numbers will cause overflow. + This helps DEC's f77 compiler on the Alpha, which refuses to + generate denormalized constants. + * libcruft/ranlib/gennf.f (gennf): Likewise. + + Fri Jul 22 10:27:00 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/Makefile.in (DEF_FILES): Depend on defun header files too. + + Thu Jul 21 14:40:30 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/NLFunc.h (nonlinear_fcn): Declare as pointer to + function taking const ColumnVector arg. + (jacobian_fcn): Ditto. + + * src/defun-int.h (DEFINE_ARGV): Declare and define save_argc and + save_argv for functions that mess with argc and argv directly. + (DELETE_ARGV): Use save_argc and save_argv instead of argc and argv. + + * src/f-lsode.cc (ODE_OPTIONS): Add const qualifier for string elts. + (print_lsode_option_list): Declare keyword as const char *. + * src/f-npsol.cc, src/f-qpsol.cc, src/f-dassl.cc, src/f-quad.cc: + Likewise, for corresponding structs and functions. + + * liboctave/dbleSVD.h (SVD::type): New enum, for choosing type of + factorization. + * liboctave/CmplxSVD.cc (SVD::SVD): Add new optional arg for type. + (init): Handle case of type == SVD::economy. + * liboctave/dbleSVD.cc: Likewise. + + QR changes from R. Bruce Tenison (btenison@eng.auburn.edu) adapted + for new way of defining builtin functions: + + * doc/linalg.texi: Changed QR description to include QRP + factorization + + * src/f-qr.cc (Fqr): Handle permuted and economy QR + factorizations. Handle case of 1 output arg. + + * liboctave/Makefile.in (MATRIX_INC, MATRIX_SRC): Add new QRP files. + + * liboctave/dbleQRP.h, liboctave/dbleQRP.cc, liboctave/CmplxQRP.h, + liboctave/CmplxQRP.h: New files, for QR with pivoting. + + * liboctave/dbleQR.h (QR::type): New enum, for choosing type of + factorization. + * liboctave/CmplxQR.cc (QR): Add new optional arg for type. + Handle case of type == SVD::economy and SVD::raw. + * liboctave/dbleQR.cc (QR): Likewise. + + * libcruft/lapack/dgeqpf.f: New file. + * libcruft/lapack/zgeqpf.f: Ditto. + + Wed Jul 20 13:12:55 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/*.cc, liboctave/*.h: Various cleanups to remove use of + NULL. Only mention default argument values in function + declarations, not in their definitions (required for gcc 2.6.x). + + * configure.in: If configuring for alpha-dec-osf, check for sgtty + first. If not found, go ahead and check for Posix terminal driver. + + Tue Jul 19 09:25:45 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/mx-defs.h (FILE): Don't declare as struct FILE just to + avoid including stdio.h. + * liboctave/dMatrix.cc: Do include stdio.h here. + + * liboctave matrix classes: Declare operator>> correctly, and + return istream object. Get friend stuff right. + + * liboctave/DAE.cc (DAE::integrate): To see if the user provided a + Jacobian function, call DAEFunc::jacobian_function (). + + * liboctave/DAE.cc (user_fun, user_jac): Qualify with class name. + * liboctave/ODE.cc (user_fun, user_jac): Ditto. + + * liboctave/DAFunc.h (DAEJac): Declare inside class. + (DAERHSFunc, DAEJacFunc): Define types inside class. + * liboctave/ODEFunc.h (ODERHSFunc, ODEJacFunc) Likewise. + + Massive reorganization of sources, hopefully for the better. + A fair amount of work is not detailed here, but these are the + major points... + + * src/symtab.h (symbol_def::TYPE) Add new elements for recording + whether a symbol is a text function or mapper function. + * src/symtab.cc (symbol_def::is_text_function, + symbol_record::is_text_function, symbol_def::is_mapper_function, + symbol_record::is_mapper_function): New functions. + Modify existing is_* functions to cope with these changes. + (symbol_def::symbol_def (tree_builtin*, unsigned)): New 2nd arg. + (symbol_def::symbol_def (tree_function*, unsigned)): Ditto + (symbol_def::define (tree_builtin*, unsigned)): Ditto. + (symbol_def::define (tree_function*, unsigned)): Ditto. + * src/variables.cc (is_text_function_name): Use the new symbol + table functions, since we can no longer tell by looking in a + simple list. + + * tree-expr.cc (class tree_builtin): Text functions are no longer + handled as a special case here. + + * src/sysdep.cc (octave_ieee_init): Special case Alpha for + initializing Inf and NaN. + + * src/tc-rep.cc: Use const in more places. + + * src/data.cc src/timefns.cc, src/dirfns.cc, src/dirfns.h: New + files. + + * src/*.cc, src/*.y, src/*.l, src/*.h: Various cleanups to remove + use of NULL. Only mention default argument values in function + declarations, not in their definitions (required for gcc 2.6.x). + + * src/g-builtins.cc, src/g-builtins.h, src/t-builtins.cc + src/t-builtins.h: Removed. Functions moved to various other + files, where they more logically belong. + * src/utils.cc: Likewise, various functions moved to other files, + where they more logically belong. + * src/mappers.cc (install_mapper_functions): Declare all mapper + functions here with the new DEFUN_MAPPER() macro. + * src/variables.cc (install_builtin_variables): Declare all + builtin variables here, with the new DEFVAR() macro. + + * src/f-*.h: Deleted. + * src/f-*.cc: Delete #ifdef WITH_DLD code and use DEFUN_DLD() + instead to declare builtin functions that will be dynamically + loaded. Give all functions a uniform return type and argument + list. + + * src/mkdefs, src/mkbuiltins: New scripts. + * src/Makefile.in: Use them to generate builtins.cc automatically + from source files that use DEFUN. + + * src/defun.h, src/defun-dld.h, src/defun-int.h: New files, to + define DEFUN() and DEFVAR() macros to make it possible to define + functions together with their help strings in one place. The code + to install functions in the symbol table is now generated by + mkbuiltins. + + * configure.in (LIBOCTDLD): New variable to define. + Only call AC_VERBOSE() for DYNAMIC_LD_OBJ, DLD_DIR, LIBDLD, + LIBOCTDLD, and LD_STATIC_FLAG if they are set. + * move-if-change: Move here, from src/move-if-change. + * Makeconf.in (%.d: %.cc): Echo simple message instead of the + commands actually executed. + (%.d: %.c): Likewise. + + * src/unwind-prot.h: Include stddef.h, for size_t. + + Tue Jul 12 12:51:25 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/f-eval.cc, src/f-fill.cc, src/f-find.cc, src/f-input.cc, + src/f-minmax.cc, src/f-log.cc, src/f-sort.cc, src/f-eval.h, + src/f-fill.h, src/f-find.h, src/f-input.h, src/f-log.h, + src/f-minmax.h, src/f-sort.h: New files, for functions extracted + from tree-const.cc. + * src/Makefile.in: Add them to the list of INCLUDES, SOURCES, and + OBJECTS. + + * src/f-*.cc: Clean up things a bit by letting the compiler + generate the tree_constant constructor calls. + + * src/unwind-prot.h: Include stddef.h, for size_t. + + * src/oct-obj.h (Octave_object (int, const tree_constant&)): + New constructor form. + * src/tree-const.cc (find_nonzero_elem_idx): Rewrite to handle 2 + and 3 return values. + + * src/g-builtins.cc (builtin_find): Check nargout too. + * src/builtins.cc (general_functions): Fix help message for find. + + Mon Jul 11 13:36:15 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tc-rep.cc (tree_constant_rep::convert_to_row_or_column_vector): + If already have a row or column vector, return without doing + anything. + + Sat Jul 9 01:02:51 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/oct-obj.h (Octave_object): Make it a class, not just a + typedef. + + * src/tree-expr.h (tree_function::curr_va_arg_number): Rename from + curr_arg_number. + (tree_function::varargs_ok): Delete unused member variable. + * src/tree-expr.cc (tree_function::octave_va_arg): Increment + cur_va_arg_number before indexing args_passed. + (tree_function::octave_va_start): Set curr_va_arg_number to + num_args_passed, not num_args_passed + 1. + (tree_function::takes_varargs): Call param_list::takes_varargs, + don't just return varargs_ok. + (tree_function::define_param_list): If param_list is not NULL, set + num_named_args and curr_va_arg_number even if function doesn't + take varargs. + + * src/tree-expr.cc (tree_identifier::eval (int)): Only pass empty + arg list if evaluating a constant. + (tree_function::eval (int)): Always pass least one arg. + + * Makeconf.in (TMP_IF_1): Add `-I../src'. + (TMP_IF_2): Add `-I$(TOPDIR)/src' and `-I$(top_srcdir)/src'. + + * src/t-builtins.h, src/variables.h, src/file-io.h, src/f-syl.h, + src/f-svd.h, src/f-schur.h, src/f-rand.h, src/f-qzval.h, + src/f-quad.h, src/f-qpsol.h, src/f-npsol.h, src/f-lsode.h, + src/f-lpsolve.h, src/f-hess.h, src/f-givens.h, src/f-fsqp.h, + src/f-fsolve.h, src/f-eig.h, src/f-dassl.h, src/f-colloc.h, + src/f-balance.h, src/dynamic-ld.h, src/builtins.cc, + src/tree-const.cc, src/file-io.cc, src/f-syl.cc, src/f-svd.cc, + src/f-schur.cc, src/f-rand.cc, src/f-qzval.cc, src/f-qr.cc, + src/f-qpsol.cc, src/f-lu.cc, src/f-lpsolve.cc, src/f-inv.cc, + src/f-ifft.cc, src/f-hess.cc, src/f-givens.cc, src/f-fsqp.cc, + src/f-fft.cc, src/f-expm.cc, src/f-eig.cc, src/f-det.cc, + src/f-colloc.cc, src/f-chol.cc, src/f-balance.cc, + src/dynamic-ld.cc, src/f-dassl.cc, src/f-fsolve.cc, + src/f-lsode.cc, src/f-npsol.cc, src/f-quad.cc, src/tree-expr.h, + src/tc-rep.cc, src/tc-inlines.cc, src/tc-rep.h, src/tree-const.h, + src/g-builtins.cc, src/g-builtins.h, src/tree-expr.cc, + src/variables.cc: Delete nargin in favor of using args.length(). + + * configure.in: Check for struct exception in math.h. + * src/sysdep.cc (matherr): New function. + + Fri Jul 8 15:31:53 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tc-rep.cc: Include arith-ops.h. + (tree_constant_rep::do_scalar_index): Use `invalid', not `illegal' + in messages. + + * src/oct-obj.h: Protect contents from multiple inclusion. + + * src/tree-const.h, src/tree-expr.h: Don't include Array.h. + + * src/parse.y (param_list): Allow ELLIPSIS by itself. + * src/tree-expr.cc (tree_identifier::mark_varargs_only, + tree_identifier::vararg_only): New functions. + (tree_function::eval): Only call define_from_arg_vector if + param_list is non-null and not marked as varargs_only. + + * src/f-balance.h, src/f-chol.h, src/f-colloc.h, src/f-dassl.h, + src/f-eig.h, src/f-fsolve.h, src/f-fsqp.h, src/f-givens.h, + src/f-hess.h, src/f-lpsolve.h, src/f-lsode.h, src/f-lu.h, + src/f-npsol.h, src/f-qpsol.h, src/f-qr.h, src/f-quad.h, + src/f-qzval.h, src/f-rand.h, src/f-schur.h, src/f-svd.h, + src/f-syl.h: Include oct-obj.h, not tree-const.h to get + declaration of Octave_object. + + * src/f-givens.cc (givens): Handle case of nargout == 0. + Use `invalid', not `illegal' in messages. + * src/f-balance.cc (balance): Likewise. + + * src/f-balance.cc (balance): Print warning about two output + arguments for complex-valued case too. + + * src/tc-rep.cc: Include arith-ops.h. + + Thu Jul 7 20:54:12 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/parse.y (identifier): Add missing semicolon. + (param_list): Ditto. + + * src/f-svd.cc (svd): Handle nargout == 0 the same as nargout == 1. + * src/f-schur.cc (schur): Likewise. + * src/f-hess.cc (hess): Likewise. + * src/f-eig.cc (eig): Likewise. + * src/f-syl.cc (syl): Likewise. + * src/f-qzval.cc (qzvalue): Likewise. + * src/f-npsol.cc (npsol): Likewise. + * src/f-qpsol.cc (qpsol): Likewise. + * src/f-givens.cc (givens): Likewise. + * src/f-fsolve.cc (fsolve): Likewise. + * src/f-balance.cc (balance): Likewise. + * src/file-io.cc (process_scanf_format): Likewise. + * src/g-builtins.cc (builtin_balance, builtin_chol, builtin_dassl, + builtin_eig, builtin_fsolve, builtin_fsqp, builtin_lsode, + builtin_max, builtin_min, builtin_npsol, builtin_qpsol, + builtin_quad, builtin_rand, builtin_size, builtin_sort, + builtin_svd, builtin_schur, builtin_syl, builtin_givens, + builtin_hess): Likewise. + * src/tree-const.cc (vector_of_empties, column_max, column_min): + Likewise. + + * src/variables.h, src/symtab.h: Include builtins.h for typedefs. + + * src/tree-expr.cc(tree_multi_assignment_expression::eval): Rework + handling of undefined values returned from functions. + + * src/tree-expr.cc (tree_identifier::is_defined): New function. + (tree_parameter_list::is_defined): New function. + (tree_parameter_list::convert_to_const_vector): Use it to avoid + evaluating undefined objects. + + * src/f-balance.cc, src/f-eig.h, src/f-hess.cc, src/f-lu.h, + src/f-rand.cc, src/f-balance.h, src/f-expm.cc, src/f-hess.h, + src/f-npsol.cc, src/f-rand.h, src/f-chol.cc, src/f-expm.h, + src/f-ifft.cc, src/f-npsol.h, src/f-schur.cc, src/f-chol.h, + src/f-fft.cc, src/f-ifft.h, src/f-qpsol.cc, src/f-schur.h, + src/f-colloc.cc, src/f-fft.h, src/f-inv.cc, src/f-qpsol.h, + src/f-svd.cc, src/f-colloc.h, src/f-fsolve.cc, src/f-inv.h, + src/f-qr.cc, src/f-svd.h, src/f-dassl.cc, src/f-fsolve.h, + src/f-lpsolve.cc, src/f-qr.h, src/f-syl.cc, src/f-dassl.h, + src/f-fsqp.cc, src/f-lpsolve.h, src/f-quad.cc, src/f-syl.h, + src/f-det.cc, src/f-fsqp.h, src/f-lsode.cc, src/f-quad.h, + src/f-det.h, src/f-givens.cc, src/f-lsode.h, src/f-qzval.cc, + src/f-eig.cc, src/f-givens.h, src/f-lu.cc, src/f-qzval.h, + src/dynamic-ld.cc, src/dynamic-ld.h, src/file-io.cc, + src/file-io.h, src/t-biultins.cc, src/t-builtins.h, + src/tree-expr.cc, src/tree-expr.h, src/tree-const.cc, + src/tree-const.h, src/tc-inlines.cc, src/tc-rep.cc, src/tc-rep.h, + src/g-builtins.cc, src/g-builtins.h: + Cope with inital round of Octave_object changes. + + * src/oct-obj.h: New file for Octave_object typedef. + * src/dynamic-ld.h, src/file-io.h, src/tree-const.h, + src/tree-expr.h: Include it. + * src/Makefile.in (INCLUDES): Add it to the list. + + Wed Jul 6 09:28:28 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * libocsrc/tree-const.h: + + * src/parse.y (maybe_convert_to_ans_assign, + maybe_warn_assign_as_truth_value): Pass tree_expression*, not tree*. + (ans_expression, expression, simple_expr, simple_expr1, title): + Declare as tree_expression_type, not tree_type. + (opt_list): Add missing semicolon. + + * src/tc-rep.h, src/tc-rep.cc: New files, extracted from + tree-const.h and tree-const.cc, for the tree_constant_rep class. + Leave most friend functions behind, in tree-const.h. + Don't declare do_binary_op or do_unary_op as friends. + + * src/lex.l: Include tree-plot.h and tree-const.h. + + * src/variables.cc (takes_correct_nargs): Pass tree_fvc* not tree*. + * src/variables.cc (is_valid_function): Return tree_fvc* not tree*. + Change all callers. + + * src/symtab.h, symtab.cc: Change declaration of symbol definition to + be tree_fvc* instead of tree*. Change all callers. + + * src/f-dassl.cc (dassl_fcn): Declare as tree_fvc*, not tree*. + * src/f-quad.cc (quad_fcn): Likewise. + * src/f-lsode.cc (lsode_fcn): Likewise. + * src/f-fsolve.cc (fsolve_fcn): Likewise. + * src/f-npsol.cc (npsol_fcn, npsol_constraints): Likewise. + + * src/tree-plot.cc: All operations are now on tree_expression types, + not tree types. + + * src/tree-expr.h (tree_matrix): Derive from tree_expression, not tree. + + * src/tree-expr.h (tree_builtin, tree_function, tree_identifier): + Derive from tree_fvc, not tree. + * src/tree-const.h (class tree_constant): Likewise. + + * src/tree-expr.h (is_identifier, is_index_expression, + is_assignment_expression, is_prefix_expression, + mark_for_possible_ans_assign, eval (with args)): Declare in + tree_expression class, not tree class. + + * src/tree-expr.h (tree_fvc): New class, derived from + tree_expression, to provide a connection between functions, + variables, and constants. + (is_constant, assign, name, bump_value, max_expected_args, + fcn_file_name, time_parsed, is_system_fcn_file, save): Declare + in tree_fvc class, not in tree class. + + * src/tree.h: Simply include tree-expr.h and tree-cmd.h. + * src/tree-expr.h, tree-expr.cc: New files, extracted from tree.h + and tree.cc for classes derived from tree_expression, plus some + helper classes. + * src/tree-cmd.h, tree-cmd.cc: Likewise, for classes derived from + tree_command. + + * src/tree.cc (eval (int, int)): Merge with eval (int, + tree_constant*, int, int) by rearranging order of args and using + default arg values. Change all callers. + + Tue Jul 5 14:33:33 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * doc/Makefile.in (refcard.dvi): Run TeX on $(srcdir)/refcard.tex, + not just refcard.tex. + (refcard-local.tex): Likewise, for the local version. + + * src/tree-const.cc (tree_constant_rep::do_index): Check for empty + matrix here. + (tree_constant_rep::do_vector_index) Not here. + + Thu Jun 30 09:41:03 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/g-builtins.cc (builtin_shell_command): Only take one + argument and return [status, output]. + * src/procstream.cc (procstreambase::close): Return process exit + status. + + * src/tree.cc (tree_builtin::eval (int)): Handle new style of + calling text functions. + (tree_builtin::eval (int, int): Likewise. + (tree_builtin::eval (tree_constant*, int, int, int): Likewise. + (tree_identifier::eval (tree_constant*, int, int, int)): Don't + count the output arguments that we create automatically (ans) when + figuring nargout. + (tree_identifier::eval (int)): Likewise. + + * src/tree-const.cc: Delete text-style eval() functions. + * src/tree.cc: Ditto. + + * src/tree-const.h: Change typedef of Text_fcn to return a pointer + to a tree_constant, and to include the number of output arguments + in the parameter list. + * src/t-builtins.h: Change declarations of all builtin text-style + functions to match. + * src/t-builtins.cc: Change definitions too. + + * src/parse.y (word_list): Build an argument_list, not a word_list. + (word_list_command): Create an index_expression, not a + word_list_command. + * src/tree.cc (tree_word_list): Delete unneeded class. + (tree_word_list_command): Likewise. + + * src/tc-extras.cc (get_dimensions): For one-arg version, expect + 2-element vector or scalar specifying dimensions. Don't simply + use the dimensions of a matrix arg. + + Wed Jun 29 09:52:15 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/f-det.cc (determinant): Return 0 if matrix is singular to + machine precision. + + * liboctave/dMatrix.cc (Matrix::inverse): Declare rcond as + volatile to prevent optimization of the expression + `rcond + 1.0 == 1.0'. + (Matrix::determinant): Ditto. + (Matrix::solve): Ditto. + * liboctave/CMatrix.cc (ComplexMatrix::inverse): Ditto. + (ComplexMatrix::determinant): Ditto. + (ComplexMatrix::solve): Ditto. + + Tue Jun 28 10:53:31 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/utils.cc (default_info_file): Add directory separator when + appending "octave.info". + + * src/tree-plot.cc (plot_line_count): Make global. + * src/utils.cc (send_to_plot_stream): If the plot stream is not + open, set plot_line_count to zero. + (close_plot_stream): Likewise, set it to zero when closing the + stream. + + * src/parse.y (plot_command): Allow replot without args. + + * src/tree-plot.cc (clear_before_plotting): New global variable. + (tree_plot_command::eval): Use it to handle hold on/off. + * src/t-builtins.cc (builtin_hold): New function. + * src/builtins.cc (text_functions): Add it to the list. + + Fri Jun 24 11:08:36 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/token.h (plot_tok_type): Add new field, replot. + * src/lex.l (is_keyword): Handle replot here. + * src/parse.y (plot_command): And here. + * src/g-builtins.cc (builtin_replot): Not here. + * src/builtins.cc (general_functions): Or here. + + Tue Jun 21 10:47:08 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/g-builtins.cc (builtin_kbhit): New function. + * src/builtins.cc (general_functions): Add it to the list. + + * src/tree-const.cc (tree_constant_rep::rows (void)): For strings + and ranges, only return 1 if the string or range is not empty. + + Thu Jun 9 20:42:06 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tree.cc (tree_builtin::eval (int)): Delete ancient code that + eval()'d the return value. + (tree_builtin::eval (int, int)): Likewise. + (tree_builtin::eval (int, char**, int)): Likewise. + (tree_builtin::eval (tree_constant*, int, int, int)): Likewise. + (tree_function::eval (tree_constant*, int, int, int)): Likewise. + (tree_colon_expression::eval (int)): Likewise. + (tree_unary_expression::eval (int)): Likewise. + (tree_binary_expression::eval (int)): Likewise. + + Mon Jun 6 03:48:32 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/file-io.cc (fread_internal): Make it work. + (fwrite_internal): Likewise. + (num_items_remaining): Renamed from get_whats_left(). Don't pass + nr/nc as last arg, simply return the number of items of size that + are left to read. + (get_size_conv): Delete unnecessary function. + * liboctave/dMatrix.cc (Matrix::read): Make it work. + (Matrix::write): Likewise. + * liboctave/dMatrix.h (conversion): Delete unecessary enum. + + * src/sysdep.cc: Include . + (octave_ieee_init): Cast return value of infinity() and + quiet_nan() to double. + + Sun Jun 5 14:35:32 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * Makeconf.in (getversion): Get everything between the double + quotes, not just numbers and periods. + + * src/tree-const.cc (tree_constant_rep::do_scalar_assignment): Correct + typo in last change. + + * src/parse.y: Include tree-plot.h and tree-const.h. + + * src/Makefile.in (SOURCES): Delete tc-assign.cc and tc-index.cc + (INCLUDES): Add tree-plot.h. + + * src/tree-plot.h: New file. Declare plotting classes here. + * src/tree.h: Not here. + + * src/tc-index.cc, tc-assign.cc: Delete unnecessary files. + + * src/tc-extras.cc: Include EIG.h + + * src/tree-const.cc (tree_constant_rep::tree_constant_rep (RowVector&, + int)): Provide default value for int arg. + (tree_constant_rep::tree_constant_rep (ColumnwVector&, int)): Ditto + (tree_constant_rep::tree_constant_rep (ComplexRowVector&, int)): Ditto + (tree_constant_rep::tree_constant_rep (ComplexColumnwVector&, int)): + Ditto. + (tree_constant_rep::tree_constant_rep (RowVector&)): Delete, now + handled by corresponding two arg constructor. + (tree_constant_rep::tree_constant_rep (ColumnwVector&)): Likewise. + (tree_constant_rep::tree_constant_rep (ComplexRowVector&)): Likewise. + (tree_constant_rep::tree_constant_rep (ComplexColumnwVector&)): + Likewise. + + * src/tree-const.cc: Add pragma implementation. Merge in contents of + tc-index.cc and tc-assign.cc so that the pragma interface/pragma + implementation hack will do some good. + * src/tree-const.h: Include mx-base.h, not Matrix.h. Add pragma + interface. Delete unnecessary constructor declarations. + + * src/unwind-prot.h, src/unwind-prot.cc (unwind_elem_tag): Rename + from _tag. + (unwind_elem_fptr): Rename from _fptr. + (unwind_elem_ptr): Rename from _ptr. + + * NLConst.cc (NLConst::NLConst): Pass vector args by reference. + + * src/procstream.h, src/procstream.cc, src/idx-vector.h, + src/idx-vector.cc, src/token.h, src/token.cc, src/unwind-prot.h, + src/unwind-prot.cc, src/symtab.h, src/symtab.cc, src/tree.h, + src/tree.cc, liboctave/Range.h, liboctave/Range.cc, + liboctave/QLD.h, liboctave/QLD.cc, liboctave/ODE.h, + liboctave/ODE.cc, liboctave/Quad.h, liboctave/Quad.cc, + liboctave/Objective.h, liboctave/Objective.cc, liboctave/NPSOL.h, + liboctave/NPSOl.cc, liboctave/NLFunc.h, liboctave/NLFunc.cc, + liboctave/Bounds.h, liboctave/Bounds.cc, liboctave/QP.h, + liboctave/QP.cc, liboctave/NLConst.cc, liboctave/LinConst.cc, + liboctave/LPsolve.cc, liboctave/LP.cc, liboctave/FSQP.cc, + liboctave/FEGrid.cc, liboctave/QPSOL.cc, liboctave/CollocWt.cc, + liboctave/DAEFunc.cc, liboctave/DAEFunc.h, liboctave/DAE.cc, + liboctave/NLEqn.cc, liboctave/ODEFunc.cc, liboctave/QPSOL.h, + liboctave/ODEFunc.h, liboctave/NLP.h, liboctave/NLEqn.h, + liboctave/NLConst.h, liboctave/LinConst.h, liboctave/LPsolve.h, + liboctave/LP.h, liboctave/FSQP.h, liboctave/FEGrid.h, + liboctave/DAE.h, liboctave/CollocWt.h: + Add pragma interface/implementation. + + * src/f-svd.cc, src/f-schur.cc, src/f-qr.cc, src/f-lu.cc, + src/f-hess.cc, src/f-det.cc, src/f-chol.cc, src/f-qzval.cc, + src/f-inv.cc, src/f-ifft.cc, src/f-givens.cc, src/f-fft.cc, + src/f-balance.cc, src/f-expm.cc, src/f-fsqp.cc, src/f-syl.cc, + src/xdiv.cc, src/xpow.cc, src/idx-vector.cc, src/pr-output.cc, + src/unwind-prot.cc, src/file-io.cc, liboctave/Bounds.h, + liboctave/CollocWt.h, liboctave/DAE.h, liboctave/EIG.h, + liboctave/FEGrid.h, liboctave/LP.h, liboctave/LPsolve.cc, + liboctave/LinConst.h, liboctave/NLEqn.cc, liboctave/NLEqn.h, + liboctave/NLP.h, liboctave/NPSOL.cc, liboctave/NPSOL.h, + liboctave/ODE.h, liboctave/Objective.h, liboctave/QLD.cc, + liboctave/QP.h, liboctave/QPSOL.h, liboctave/Quad.h: + Instead of including Matrix.h, only include the individual + matrix/vector/etc. header files that are needed. + + * liboctave/QLD.cc, liboctave/ODE.cc, liboctave/NLFunc.cc, + liboctave/DAEFunc.cc, liboctave/DAE.cc, liboctave/NLEqn.cc, + liboctave/ODEFunc.cc: + Use 0, not NULL. + + * liboctave/mx-inlines.cc: Include Complex.h. + + * liboctave/mx-kludge.h: Don't enclose contents in extern "C++". + + * liboctave/Matrix.h: Simply include mx-base.h and mx-ext.h. + + * liboctave/mx-base.h: New file, includes all basic matrix/vector + header files. + * liboctave/mx-ext.h: New file, includes all extra matrix/vector + related header files. + * liboctave/mx-defs.h: New file, for matrix/vector related + defines. Also provides forward declarations for all matrix/vector + classes. + + * liboctave/Makefile.in: Cope with new files. + + * liboctave/CmplxAEPBAL.cc, liboctave/CmplxDET.h, + liboctave/CmplxQR.cc, liboctave/CmplxSVD.h, liboctave/dbleDET.cc, + liboctave/dbleHESS.h, liboctave/dbleSCHUR.cc, + liboctave/CmplxAEPBAL.h, liboctave/CmplxHESS.cc, + liboctave/CmplxQR.h, liboctave/dbleAEPBAL.cc, liboctave/dbleDET.h, + liboctave/dbleLU.cc, liboctave/dbleSCHUR.h, + liboctave/CmplxCHOL.cc, liboctave/CmplxHESS.h, + liboctave/CmplxSCHUR.cc, liboctave/dbleAEPBAL.h, + liboctave/dbleGEPBAL.cc, liboctave/dbleLU.h, liboctave/dbleSVD.cc, + liboctave/CmplxCHOL.h, liboctave/CmplxLU.cc, + liboctave/CmplxSCHUR.h, liboctave/dbleCHOL.cc + liboctave/dbleGEPBAL.h, liboctave/dbleQR.cc, liboctave/dbleSVD.h, + liboctave/CmplxDET.cc, liboctave/CmplxLU.h, liboctave/CmplxSVD.cc, + liboctave/dbleCHOL.h, liboctave/dbleHESS.cc, liboctave/dbleQR.h, + liboctave/EIG.h, liboctave/EIG.cc: + New files, extracted from Matrix-ext.cc, in an attempt to allow + effective use of pragma interface/implementation and make + generated code somewhat smaller. + * liboctave/dColVector.cc liboctave/CColVector.cc: Likewise, from + ColVector.{cc,h}. + * liboctave/dRowVector.cc liboctave/CRowVector.cc: Likewise, from + RowVector.{cc,h}. + * liboctave/dMatrix.cc liboctave/CMatrix.cc: Likewise, from + Matrix.{cc,h}. + * liboctave/dDiagMatrix.cc liboctave/CDiagMatrix.cc: Likewise, + from DiagMatrix.{cc,h}. + + Fri Jun 3 15:32:53 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/Array.h: Include assert.h. + (DiagArray::operator T ()): [! _AIX] Only call get() if i is + also equal to j. + + * scripts/rem.m: Allow mixing of scalar/matrix args, but complain + if both args are matrices and the dimensions don't agree. + + * src/lex.l (grab_help_text): Correct previous change. + + Thu Jun 2 12:08:18 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * Matrix.h (conversion): New enum, for binary read/write + functions. + * Matrix.cc (read, write) New functions. + * file-io.cc (feof_internal, ferror_internal, fread_internal, + fwrite_internal, get_size_conv, get_whats_left): New functions. + * g-builtins.cc (builtin_feof, builtin_ferror, builtin_fread, + builtin_fwrite): New functions. + * builtins.cc (general_functions): Add them to the list. + + * configure.in: Check for infinity() and quiet_nan(). + * sysdep.h (octave_Inf, octave_NaN): New global variables. + * sysdep.cc (octave_ieee_init): New function. Initialize + octave_Inf and octave_NaN. + (sysdep_init): Call it. + * builtins.cc (initialize_builtins): Don't compute Inf and NaN + values here. + + Tue May 31 20:06:27 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/variables.cc (identifier_exists): Only return 1 for + variables if they are also defined. + + Sun May 29 20:40:55 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/lex.l: Don't declare beginning_of_function as static. + (COMMENT): Delete unnecessary exclusive start state. + (\#, \%): Handle comments directly. Try to be smart about not + returning a newline character when reading a matrix list. + (grab_help_text): Don't put a newline back on the input stream. + * src/parse.y (list1): Set beginning_of_function to zero here. + + Wed May 25 03:34:17 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/error.cc (error): If error_state is -2, don't do anything. + If the format string ends in a new line character, strip it, print + the error message, and set the error state to -2. + * src/tree.cc (tree_function::traceback_error): Don't set the + error_state if it is already negative. + + * src/tree-const.cc (convert_to_row_or_column_vector): New function. + * src/idx-vector.cc (idx_vector::shorten): New function. + * src/tc-assign.cc (fortran_style_matrix_assignment + (tree_constant&, tree_constant&)): Handle deleting elements by + assignment of `[]'. Use convert_to_row_or_column_vector to handle + conversion to a vector in the case of deleting some elements from + a matrix. Use idx_vector::shorten() to remove unnecessary index + vector elements. + (do_scalar_assignment (tree_constant&, tree_constant*, int)): + Handle assignment of empty matrix. + If converting complex to real, delete old complex value. + (delete_rows (idx_vector&)): If deleting all rows of a column + vector, convert to empty matrix. + (delete_rows (Range&)): Ditto. + (delete_columns (idx_vector&)): If deleting all columns of a row + vector, convert to empty matrix. + (delete_columns (Range&)): Ditto. + + * src/tc-extras.cc (column_max (tree_constant*, int, int)): + Use MAX, not MIN when trying to find the biggest scalar. + Likewise, find the complex scalar with the largest, not the + smallest absolute value. + + * src/tc-assign.cc (do_matrix_assignment (tree_constant&, + tree_constant_rep::constant_type, tree_constant&): For case of + j_arg == matrix constant, don't negate return value of + indexed_assign_conforms(). + + * src/user-prefs.cc (commas_in_literal_matrix): New function. + Put functions in alphabetical order. + * src/user-prefs.h (commas_in_literal_matrix): New structure element. + Alphabetize structure elements and lists of functions. + * src/builtins.cc (string_variables): Add commas_in_literal_matrix + to the list. + * src/lex.l ({SN}*\]{S}*): Pay attention to the value of + usre_pref.commas_in_literal_matrix when deciding whether to insert + a comma after seeing a ']' character. + (handle_identifier): Likewise. + ({S}+): If commas are required, just eat the spaces. + + Tue May 24 19:49:51 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tc-assign.cc (tree_constant_rep::do_matrix_assignment + (tree_constant&, tree_constant*, int)): Handle empty arguments + for two index values. + (tree_constant_rep::do_matrix_assignment + (tree_constant&, tree_constant&)): + Likewise, for single index values. + + Mon May 23 01:43:23 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * Makefile.in (snapshot, snapshot-version): New targets. + + * configure.in: Handle --enable-run-in-place (was easier than + doing the work to parse --run-in-place like Emacs uses). + + * acconfig.h: Add #undef for RUN_IN_PLACE. + + * Makeconf.in (OCTAVE_HOME): New macro. + * src/Makefile.in (defaults.h): Use it instead of ${prefix}. + + * Makeconf.in (OCTAVE_INFO_DIR, OCTAVE_LIB_DIR): New macros. + * src/Makefile.in (defaults.h): Substitute them too. + + * src/defaults.h.in (OCTAVE_INFO_DIR): New macro, used if + RUN_IN_PLACE is defined. + (OCTAVE_LIB_DIR): Likewise. + + * src/utils.cc (octave_home): Handle RUN_IN_PLACE + (octave_info_dir): Ditto. + (octave_lib_dir): Ditto. + + * src/tree-const.cc (tree_constant_rep::diag (void)): For empty + matrix, return empty matrix. + (tree_constant_rep::diag (tree_constant &)): Likewise, regardless + of value of arg. + + * scripts/int2str.m: Format as integer, not float. + Don't add trailing new line character. + + Sun May 22 22:13:01 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * scripts/plot_int.m: When looking for imaginary arguments, check + if any element has an imaginary component, not if all elements + have imaginary components. + + Thu May 19 19:46:23 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/parse.y (EXPR_AND_AND, EXPR_OR_OR): New tokens, for + short-circuit logical AND and OR operators. + (simple_expression): Handle new tokens. + * src/lex.l (&&) [SHORT_CIRCUIT_LOGICALS]: Return EXPR_AND_AND. + (||) [SHORT_CIRCUIT_LOGICALS]: Return EXPR_OR_OR. + * src/tree.cc (tree_binary_expression::eval): Handle short-circuit + boolean operators. + (tree_binary_expression::eval_error): Print different messages for + or_or/or and and_and/and. + * src/tree-base.h (tree_expression_type): Add new structure + elements and_and and or_or. + * src/tree-const.cc (tree_constant_rep::is_true): New function. + + Tue May 17 17:04:00 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/idx-vector.cc (idx_vector::sort_uniq ()): New function. + * src/tc-assign.cc (tree_constant_rep::delete_rows ()): Use it. + (tree_constant_rep::delete_columns ()): Likewise. + + Mon May 16 13:31:33 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * scripts/linspace.m: Replace for loop with range operation. + * scripts/logspace.m: Replace for loop with element by element + exponentiation. + + Sun May 8 00:49:38 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * scripts/lqe.m: Correct comment. + Transpose k before returning. + + Fri May 6 00:47:24 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tree.cc (quit_loop_now): New function. + (tree_while_command::eval): Use it. + (tree_for_command::eval): Ditto. + + * src/tree.cc (tree_for_command::do_for_loop_once): New function. + (tree_for_command::eval): Use it. + + Mon May 2 19:45:39 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tree.cc (tree_for_command::eval): Handle returning, + breaking, and continuing for case of scalar expression in loop + control statement. + + Wed Apr 20 00:38:26 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/lex.l (\[{S}*): Don't return ',' for this match when + convert_spaces_to_comma is true, since that can never be the right + thing to do. + + * All Makefile.in files: Set top_srcdir here. + * Makeconf.in: Not here. + + * Makeconf.in: Use top_srcdir instead of root_srcdir + + * configure.in: Update for autoconf-1.8. Use AC_VERBOSE for + verbose messages. Use AC_WARN and AC_ERROR instead of echo for + warning and error messages. Organize feature tests a bit better. + Use new autoconf macros to check for C++ compiler. Add copyright + notice. Recognize --enable-dld instead of --with-dld since that + seems to be more in line with the intent of the --enable/--with + options for configure scripts. Use new autoconf macros + AC_REVISION and AC_PREREQ. Don't add -Wall to CFLAGS and CXXFLAGS + until after all feature tests are done. Etc. + + Fri Apr 15 01:56:20 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * acconfig.h: Add #undefs for HAVE_FINITE, HAVE_ISINF, and + HAVE_ISNAN. + * configure.in: Check for floatingpoint.h. + * src/sysdep.cc (sysdep_init): Disable trapping on common + exceptions for 386BSD systems that have floatingpoint.h. + + * src/utils.cc: Don't declare ioctl() with prototype. + + Sat Apr 9 17:48:07 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tc-assign.cc (tree_constant_rep::fortran_style_matrix_assignment + (tree_constant&, tree_constant&)): + Handle case of M (X) = scalar, where X is a zero-one vector with + only one nonzero element. + + * src/tc-assign.cc (tree_constant_rep::do_vector_assign + (tree_constant&, Range&): + Handle case of right hand side being a scalar. + (tree_constant_rep::do_vector_assign (tree_constant&, idx_vector&): + Ditto. + + * src/tc-assign.cc (tree_constant_rep::do_matrix_assignment + (int,tree_constant_rep::constant_type)): + Allow assignment of complex scalar too. + (tree_constant_rep::do_matrix_assignment + (tree_constant_rep::constant_type, int)): + Ditto. + + * src/tree-const.h (REP_RHS_MATRIX): Initialize nr and nc. + Abort if rhs is not a real or complex matrix. + + Wed Apr 6 13:59:37 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/Range.cc (Range::nelem_internal): Use an integer, not + a double, for the number of intervals. Avoid possible problems + with extended precision registers on some systems (e.g. x86/Linux). + + Mon Mar 28 17:23:18 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/utils.cc (raw_mode): For OCRNL, ONOCR, and ONLRET, check to + see if they are defined before using them instead of checking to + see if NeXT is defined. + + * info/terminal.c (terminal_prep_terminal): Check to see if OCRNL + is defined before using it instead of checking to see if NeXT is + defined. + + Thu Mar 24 03:21:01 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tree.cc (tree_parameter_list::define_from_arg_vector): + New function. + (tree_parameter_list::convert_to_const_vector): Ditto. + (tree_function::eval): Use them instead of trying to do this + in-line. + + * src/symtab.h (symbol_record::global_link_context): New stack for + saving linked_to_global flag. + * src/symtab.cc (symbol_record::push_context): Save + linked_to_global too. + (symbol_record::pop_context): And restore it. + + Wed Mar 23 16:18:19 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * doc/refcard.tex.in: New file. + * doc/Makefile.in: Create refcard.* and refcard-local.* from + refcard.tex.in. + + Tue Mar 22 15:23:55 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * octave.sh: exec $OCTAVE_HOME/bin/octave.bin, not just + octave.bin. + + Thu Mar 17 01:06:10 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/arith-ops.cc (do_binary_op (ComplexMatrix&, Matrix& b)): + Correctly handle element by element left division. + + * src/g-builtins.cc (builtin_error): Return without calling error + (and setting error_state) if the message is empty. + + * src/help.cc (operators): Correct help message for `.^'. + + * src/tc-index.cc (tree_contant_rep::fortran_style_matrix_index): + Preserve vector orientation when indexing with a zero-one vector. + + * src/tc-index.cc (tree_constant_rep::do_scalar_index): Handle + indexing a scalar with `0'. + + * src/tc-index.cc (tree_constant_rep::do_scalar_index): Handle the + index `:' the same as the index `1'. + + Tue Mar 15 17:22:00 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/Array.cc: Fix typo in comments about compiler flags. + + Wed Mar 9 15:08:21 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * Version 1.0.1. + + * src/*.h: Use the macro octave_FOO_h instead of _FOO_h to protect + against multiple inclusion. + * liboctave/*.h: Likewise. + + * liboctave/*.h: Surround contents of files in extern "C++" { }. + + Tue Mar 8 18:06:54 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tc-index.cc (tree_constant_rep::do_vector_index (const + tree_constant&) const): Don't crash if matrix is empty. + + * scripts/norm.m: Return empty matrix for empty argument. + + Mon Mar 7 23:34:44 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * doinstall.sh: chmod new directories to 755. + + Sat Mar 5 13:15:10 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * bsd-math/log1p.c: Declare finite as returning int, not double. + * bsd-math/finite.c (finite): Add return type. + + Thu Mar 3 14:42:00 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/DiagMatrix.cc (operator *): Provide definitions for + DiagMatrix * DiagMatrix, ComplexDiagMatrix * ComplexDiagMatrix, + ComplexDiagMatrix * DiagMatrix, and DiagMatrix * ComplexDiagMatrix. + + * liboctave/ColVector.cc (operator >>): Provide definitions for + real and complex column vectors. + + * liboctave/RowVector.cc (operator >>): Provide definitions for + real and complex row vectors. + + Wed Mar 2 18:00:47 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/Array.h (DiagArray::Proxy::operator & ()): Provide + function body. + + Tue Mar 1 13:18:35 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tree-const.cc (tree_constant::load (istream&)): Don't skip + past first type keyword if not global. + (tree_constant::load (istream&, tree_constant_rep::constant_type)): + Allocate storage for reading complex scalar. + + Sun Feb 20 14:17:47 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * scripts/menu.m: Don't fail on input that is empty or not a + scalar. + + * Makefile.in (DISTFILES): Distribute ChangeLog.[0-9]. + + * src/lex.l (reset_parser): Don't resynch line number to command + history number if reading a script file. + + Thu Feb 17 01:36:19 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * Version 1.0 released. + + * src/file-io.cc (fopen_file_for_user): Improve error message. + (fopen_internal): Likewise. + + Wed Feb 16 02:21:05 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * configure.in: Try harder to find finite, isnan, and isinf. + Use m4 `dnl' comments, not shell `#' comments. + + * src/file-io.cc (file_io_get_file): New function. + (fgets_internal): Use it instead of trying to do this in line. + (frewind_internal, fseek_internal, ftell_internal, do_printf, + do_scanf): Likewise. + * (do_scanf): Allow file name as string for fscanf. + * (procss_scanf_format): Delete unused argument `args'. Delete + unused local variable `arg_type'. Don't complain if we can't + store the result of a requested conversion. Only return + successfully if a conversion actually occurs, even if we are not + storing the value. + + Sun Feb 13 13:32:03 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.83 released. + + * Array.h (DiagArray): Move inline definitions of get() and set() + before use by other inline functions. + + Sat Feb 12 14:15:45 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * configure.in: Check for g77 last. Even if it is ever actually + released, it probably won't be stable for quite a while. + + * MAKEINFO.PATCH: New file. + * Makefile.in (DISTFILES): Distribute it. + + * liboctave/Matrix.cc (operator + (Complex, const Matrix&)): + Make it work. + (operator - (Complex, const Matrix&)): Ditto. + (operator * (Complex, const Matrix&)): Ditto. + (operator / (Complex, const Matrix&)): Ditto. + + Fri Feb 11 00:03:39 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * configure.in: Check for strerror too. + + * configure.in: When saving CFLAGS as XCFLAGS and then restoring + the value, quote the RHS. + + * src/g-builtins.cc (builtin_clc): Do the dirty work to clear the + screen here instead of using rl_clear_screen to avoid printing + prompt unnecessarily. + + Thu Feb 10 00:26:32 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/utils.cc: Add all the cruft that the autoconf manual + suggests for including dirent.h. + + * info/terminal.c (terminal_prep_terminal): [HAVE_TERMIOS_H && + NeXT]: Don't use OCRNL, as someone says NeXT's termios.h doesn't + have it. + + * configure.in (GCC_IEEE_FP_FLAG): Correct check for ix86 Linux. + Don't try to check for CC == gcc. + Add GCC_IEEE_FP_FLAG to CFLAGS while checking for IEEE FP + functions finite, isnan, and isinf. + + * readline/rldefs.h: Make definition of HAVE_POSIX_SIGNALS + conditional on definition of _POSIX_VERSION, not HAVE_TERMIOS_H. + + Wed Feb 9 02:41:32 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tree.cc (tree_function::octave_va_start): Rename from + va_start to avoid conflict with va_start macro. + (tree_function::octave_var_arg): Likewise, rename from va_arg. + * src/g-builtins.cc (builtin_va_arg): Call octave_va_arg for the + current function instead of va_arg. + (builtin_va_start): Likewise, for octave_va_start. + + * Version 0.82.1. + + * doc/Makefile.in (clean): Also remove octave.in, octave.rd, + octave.ins, and octave.rds. + + * src/t-builtins.cc (load_variable): Make it work for all + combinations of loading global or local variables when the + variable to be loaded is already a global variable, local + variable, a function, or even undefined. + + Tue Feb 8 00:33:09 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.82 released. + + * liboctave/mx-kludge.cc (operator + (KL_MAT_TYPE, KL_MAT_TYPE)): + For an empty matrix with one nonzero dimension, be sure to return + a result of the same size. + (operator - (KL_MAT_TYPE, KL_MAT_TYPE)): Ditto. + (product (KL_MAT_TYPE, KL_MAT_TYPE)): Ditto. + (quotient (KL_MAT_TYPE, KL_MAT_TYPE)): Ditto. + + Mon Feb 7 01:30:19 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/Array.h, liboctave/array.cc (DiagArray): Back off on + indexing via Proxy class changes for AIX systems to avoid gcc (or + possibly AIX assembler?) bug. + + * src/tree-const.cc (tree_constant_rep::maybe_resize (int, + force_orient)): Don't abort for a max index of zero. + + * liboctave/Matrix.h (class RowVector, friend double operator * + (const RowVector&, const ColumnVector&)): Add missing const in + declaration. + + * liboctave/Matrix.cc (Matrix::fill (val, r1, c1, r2, c2)): Set nc + to cols(), not rows(). + (ComplexMatrix::fill (double val, r1, c1, r2, c2)): Likewise. + (ComplexMatrix::fill (Complex val, r1, c1, r2, c2)): Likewise. + + * All source files: To match the documenation, refer to function + files, not M-files. Rename functions and variables that refer to + _m_file_, mfile, or mf to refer to _fcn_file, ffile, or ff. + + Sun Feb 6 19:08:26 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/parse.y (yyerror): Don't crash if a parse error happens and + the current input line is NULL. + + Sat Feb 5 18:53:04 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/file-io.cc (initialize_file_io): Don't use variable names + that start with `_'. + * src/file-io.cc (class file_info): Likewise. + + Fri Feb 4 01:15:59 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/builtins.cc (general_functions): In usage message for fopen, + use `Valid' instead of `Legal'. + + * src/file-io.cc (do_printf): Use `invalid' instead of `illegal' + in error message. + (do_scanf): Likewise. + + * src/mappers.cc (atanh): Use correct formula. + + Thu Feb 3 22:08:40 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * doc/refcard.tex: New file. + * doc/Makefile.in (all): Make refcard.ps. + (DISTFILES): Distribute refcard.tex, refcard.dvi, and refcard.ps. + + * src/tree-const.cc (any_element_is_negative): Delete function. + (any_element_less_than): New function. + (any_element_greater_than): Ditto. + (tree_constant_rep::mapper): Use struct elements lower_limit, + upper_limit, and can_return_complex_for_real_arg to properly + handle functions like acos, asin, atanh, and acosh. + + * src/builins.h (struct Mapper_fcn): Rename neg_arg_complex to + can_return_complex_for_real_arg. New elements, lower_limit and + upper_limit. + (struct builtin mappers functions): Rename neg_arg_complex to + can_return_complex_for_real_arg. New elements, lower_limit and + upper_limit. Delete elements nargin_max and nargout_max. + * src/variables.cc (install_builtin_mapper_function): Handle new + struct elements can_return_complex_for_real_arg, lower_limit, and + upper_limit. Don't use nargin_max and nargout_max -- they are + the same for all mapper functions. + + Wed Feb 2 05:06:56 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/Matrix.h: Don't include values.h. + * liboctave/Matrix-ext.cc: Include float.h + (DET::value_will_overflow): Use DBL_MAX, not MAXDOUBLE. + (ComplexDET::value_will_overflow): Likewise. + (DET::value_will_underflow): Use DBL_MIN, not MINDOUBLE. + (ComplexDET::value_will_underflow): Likewise. + * src/tree.cc: Include limits.h, not values.h. + (tree_builtin::max_expected_args): Use INT_MAX, not MAXINT. + + * configure.in: If compiling on an ix86, set GCC_IEEE_FP_FLAG to + -mieee-fp. We should no longer require the modified crt0 code on + Linux systems in order to get IEEE functions. + * Makeconf.in (GCC_IEEE_FP_FLAG): Substitute value. + (ALL_CFLAGS, UGLY_ALL_CFLAGS, ALL_CXX_FLAGS, UGLY_ALL_CXX_FLAGS, + ALL_LDFLAGS): Use it. + + Tue Feb 1 22:30:46 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/builtins.cc (install_builtins): Make SEEK_SET, SEEK_CUR, and + SEEK_END constants. + + * src/tree-plot.cc (tree_subplot_using::print): Only check column + number against max if max is greater than 0. + + Mon Jan 31 15:59:31 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * scripts/strcmp.m: Correctly handle empty strings. + + * src/parse.y (input): Recognize lone simple_list and simple_list + followed by error and '\n'. + + Fri Jan 28 00:20:30 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.81 released. + + * src/octave.cc (clean_up_and_exit): Call cleanup_tmp_files() here + too. + + * configure.in: Check for atexit and on_exit. + * src/octave.cc: Use HAVE_ATEXIT and HAVE_ON_EXIT (instead of + just checking to see if sun is defined) to decide whether to + define atexit as on_exit. + (main): Don't try to call atexit if it's missing and we don't have + on_exit either. + + Thu Jan 27 22:16:48 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * configure.in: Check for gethostname and sys/utsname.h. + * utils.cc (gethostname): Steal replacement from bash. Provide + definition if it looks like it's missing and we have + sys/utsname.h. + + * liboctave/Array.h (DiagArray): Define non-const indexing + functions here. + * liboctave/Array.cc (DiagArray): Not here. + + * liboctave/Array.h (DiagArray::Proxy): New class to handle + non-const reference indexing. Allows different action if indexing + on left side of assignment operator. + + * src/octave.cc (main): Call initialize_pager(), + initialize_readline(), and install_signal_handlers() before trying + to read startup files. + + * src/octave.cc (input_from_startup_file): New global flag. + (execute_startup_files): Set it to 1 before reading startup files. + * src/parse.y (func_def_2): If input_from_startup_file, don't try + to compare file name and function name. + + Wed Jan 26 14:39:27 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * readline/rldefs.h: Make better use of autoconf defines. + + Tue Jan 25 17:19:19 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/Matrix.cc (ComplexMatrix (DiagMatrix)): Make sure off + diagonal elements are zero. + (ComplexMatrix (ComplexDiagMatrix): Likewise. + (Matrix (DiagMatrix): Likewise. + + Fri Jan 21 17:43:11 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * flibs.sh: Recognize libraries that match `/*.a'. + + Thu Jan 20 18:12:01 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.80.1. + + Wed Jan 19 14:48:27 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * libcruft/odepack/stode.f: Don't try to `RETURN 0'. This causes + lsode to fail, at least with Sun's f77. + + * src/tree-const.cc (tree_constant_rep::load): Delete string + returned from extract_keyword. + * src/t-builtins.cc (builtin_load): Likewise. + * src/variables.cc (extract_keyword): Return new storage, not + static buffer. + + * src/t-builtins.cc (builtin_save): If saving a named list of + variables, use is_globally_visible to decide whether to mark + variables in the current symbol table as global. + + Tue Jan 18 11:57:03 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.80 released. + + * doc/Makefile.in (install): Delete commands for installing + liboctave.info instead of trying to comment them out. + + * liboctave/Array.cc: Allow users to compile with + -fexternal-stemplates and USE_EXTERNAL_TEMPLATES defined to + generate their own .o files with new types. + + * Makeconf.in (includedir): Install include files in + $prefix/include/octave by default. + + * liboctave/Makefile.in (TEMPLATE_SRC): New macro. + (install): Install files listed in $(TEMPLATE_SRC) too. + + * info/search.h: Conditionally declare stricmp and strnicmp. + * info/search.c: Conditionally define stricmp and strnicmp. + * config.h.in: Add undefs for HAVE_STRICMP and HAVE_STRNICMP. + + * configure.in: Check for stricmp and strnicmp too. + + * doc/Makefile.in: For now, don't format or try to install the + liboctave manual. + Don't distribute formatted copies of liboctave manual. + + Mon Jan 17 01:10:54 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * doc/Makefile.in (clean): Remove all index files. + + * src/Makefile.in (defaults.h): Depend on Makefile too. + * doc/Makefile.in (conf.texi): New rule for making conf.texi from + conf.texi.in. + + * doc/conf.texi.in: New file. + * doc/octave.texi: Include conf.texi to get VERSION, OCTAVE_HOME, + and other variables that need to be set depending on the + configuration. + + * Makefile.in (DISTFILES): Don't distribute PLOTTING. Current + plotting info is in the Texinfo docs. + + Sat Jan 15 15:43:34 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * config.sub: New file, from libg++-2.5.2. + * Makefile.in: Distribute config.sub. + * configure.in: Use config.sub to validate system types. If it + fails, continue with target_host_type and canonical_host_type set + to unknown. Leave target_host_type set to any alias given as the + TARGET argument to configure. + + * readline/rldefs.h: If ultrix and HAVE_SGTTY_H, avoid Posix + terminal driver. + * configure.in: If configuring for ultrix, check for sgtty first. + If not found, go ahead and check for Posix terminal driver. + + * configure.in: Don't try to do anything special for readline on + NeXT systems. + + * Makeconf.in: Define rules for making .d files here. + liboctave/Makefile.in: Not here. + src/Makefile.in: Or here. + + * liboctave/Matrix.h (all Matrix/Vector operator = functions): + Simply call the base class operator =, then return *this. + (class ColumnVector): Declare RowVector a friend class, so it can + access the private constructor for the transpose operator. + (class RowVector): Likewise, for ColumnVector. + (class ComplexColumnVector): Likewise, for CommplexRowVector. + (class ComplexRowVector): Likewise, for ComplexColumnVector. + Numerous formatting cleanups. + + Thu Jan 13 13:17:47 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.79.90. + + * builtins.cc: Include missing-math.h. + + * src/missing-math.h: Provide declarations for acosh, asinh, + atanh, and gamma whether they are actually missing or not, because + they are not part of the standard math.h, and the g++/libg++ + installation no longer provides declarations for them. + + * src/sighandlers.h (RETSIGTYPE): Define here. + (BADSIG): Likewise. + (sig_handler): Likewise. + + * src/g-builtins.cc: Include sighandlers.h + Don't define RETSIGTYPE, BADSIG, or sig_handler here. + * src/octave.cc: Or here. + + Wed Jan 12 16:12:27 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/g-builtins.cc: Don't check nargin/nargout in *_options + functions. + + * src/f-qpsol.cc, src/f-quad.cc, src/f-lsode.cc, src/f-fsolve.cc, + src/f-dassl.cc, liboctave/QPSOL.cc, liboctave/Quad.cc, + liboctave/ODE.cc, liboctave/NLEqn.cc, liboctave/DAE.cc: + Similar changes for these classes/functions as the following + changes for src/f-npsol.cc and liboctave/NPSOL.cc: + + * src/f-npsol.cc (npsol_opts): New static variable to hold Octave's + current idea of npsol options. + (npsol): Call nlp.copy (npsol_opts) after creating NPSOL object. + (npsol_option_table): New static list of options for npsol. + (print_npsol_option_list): New function. + (do_npsol_option): New function. + (npsol_options): Make it work. + + * liboctave/NPSOL.cc (NPSOL_options): New class. + * (NPSOL): Also derive from NPSOL_options. + * (minimize): Call pass_options_to_npsol before calling npsol. + * (NPSOL::option): No longer works. Print error message instead. + * (NPSOL::set_default_options): Now a member of NPSOL_options class. + + * src/utils.cc: If missing, declare strcasecmp, strncasecmp. + * (almost_match): Add new argument to do case-insensitive matches. + * (keyword_almost_match): New function to match a string against a + list of keywords. + + * liboctave/NLP.h (NLP): Add destructor and copy constructor. + + * configure.in: Check for strcasecmp and strncasecmp. + * config.h.in: Add #undefs for HAVE_STRCASECMP and STRNCASECMP. + * src/strcasecmp.c, src/strncase.c: New files, from glibc. + * src/Makefile.in (SOURCES, OBJECTS): List them. + + * src/builtins.cc (general_functions): Improve usage message for + the *_options functions. + (print_usage): New arg, just_usage with default value of 0. + If nonzero, don't print info about where to find additional help. + + * src/Makefile.in (INCLUDES): Add error.h. + (SOURCES): Add error.h. + + * src/tree.cc (tree_identifier::parse_m_file): call reset_parser + before calling yyparse (). + * src/tc-extras.cc (eval_string): Likewise. + Don't save previous symbol table. That is handled by the + unwind protect. + + * src/lex.l (reset_parser): Don't unconditionally call yyreset. + Add a couple of comments. + (yywrap): Always return 1, not 0. + (yy_flex_alloc, yy_flex_realloc, yy_flex_free): #if 0 out. + + * src/utils.cc (raw_mode): Only complain about stdin not being a + tty if we are really interactive. + + * src/octave.cc (main): End startup message with endl to ensure + flushing before other output. + * Turn of readline's blink_matching_paren feature if not + interactive, or if reading from a file specified on the command + line. + + * src/octave.cc (main): Set the symbol table context just before + calling reset_parser in the main loop. + * src/lex.l (reset_parser): Not here. + + * src/input.cc (octave_gets): Declare static. + (octave_read): Also handle echoing input if not using readline. + + * Makefile.in (DISTFILES): Add SENDING-PATCHES to the list. + + Mon Jan 10 14:30:13 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * scripts/corrcoef.m, scripts/fortran_vec.m, scripts/kurtosis.m, + scripts/ols.m, scripts/skewness.m, scripts/cov.m, scripts/gls.m, + scripts/mahalanobis.m, scripts/pinv.m: New script files from Kurt + Hornik (hornik@neuro.tuwien.ac.at) and the Department of + Probability Theory and Statistics TU Wien, Austria. + + Sun Jan 9 01:11:05 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/g-builtins.cc (builtin_fsqp_options): If FSQP_MISSING is + defined, don't call fsqp_options; just print usage message. + (builtin_npsol_options): Likewise, for npsol_options. + (builtin_qpsol_options): Likewise, for qpsol_options. + * src/builtins.cc (general_functions): Provide different usage + message for fsqp_options depending on whether FSQP_MISSING is + defined. Likewise for npsol_options and qpsol_options. + + Sat Jan 8 16:45:57 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * libcruft/misc/dostop.c: Include config.h. + + * src/variables.cc (extract_keyword): Use ostrstream instead of + fixed length buffer. For keywords with string values, return + value in static buffer. + * src/t-builtins.cc (builtin_load): Handle new argument list for + extract_keyword. Handle possiblity of load_variable setting + error_state. + * src/tree-const.cc (tree_constant_rep::load): Handle new argument + list for extract_keyword. + + Fri Jan 7 13:20:47 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/f-eig.cc (builtin_eig_2): Rename from builtin_eig. + * src/f-fsolve.cc (builtin_fsolve_2): Rename from builtin_fsolve. + * src/f-inv.cc (builtin_inv_2): Rename from builtin_inv. + + Thu Jan 6 12:29:41 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tree-base.h (tree::save): Add optional argument `precision'. + * src/tree-const.cc (tree_constant::save): Ditto. + (tree_constant_rep::save): Ditto. + * src/symtab.cc (symbol_def::save): Ditto. + (symbol_record::save): Ditto. + (symbol_table::save): Ditto. + + * src/t-builtins.cc (builtin_save): Pass user_pref.save_precision + to symbol table save functions. + * src/builtns.cc (string_variables): Add save precision to thelist. + (install_builtins): Initialize it. + * src/user-prefs.cc (set_save_precision): New function. + * src/user-prefs.h (user_pref.save_precision): New data element. + + * liboctave/Matrix-ext.cc: Provide correct prototypes for dgeesx + and zgeesx. + * (SCHUR::init): Don't declare a dummy_select function pointer, + just pass `(void *) 0' instead, since the dummy argument is never + supposed to be used anyway. + + * src/input.cc (initialize_readline): Cast command_completer to + CPPFunction, not Function, now that readline has more than one + function typedef. + * Add extern declaration for free_undo_list (). + + * Replace readline source from GDB with readline source from bash. + This allows paren matching. + + Wed Jan 5 01:20:26 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * configure.in: Also check for sys/select.h. + + * liboctave/RowVector.cc (ComplexRowVector::operator *): Complete + function body. Put code in-line rather than making a call to the + BLAS routine zdotu to avoid having to cope with the various ways + that Fortran compilers might translate this. + + * src/input.cc (operate_and_get_next): New function, from bash. + (initialize_readline): Bind operate_and_get_next to C-O here. + + * src/input.cc (command_completer, command_generator): + Declare static here. + * srs/input.h (command_completer, command_generator): + Not extern here. + + * g-builtins.cc (builtin_warranty): Change copyright info. + * octave.cc (verbose_usage): Likewise. + (main): Likewise. + + Mon Jan 3 15:49:41 1994 John Eaton (jwe@schoch.che.utexas.edu) + + * src/fnmatch.c, src/fnmatch.h: New files for pattern matching + from the GNU C library. + * src/Makefile.in: Add them to the appropriate lists. + * src/t-builtins.cc (builtin_save): Use fnmatch to do pattern + matching instead of using regular expressions. + (builtin_clear): Likewise. + (glob_pattern_p): New function. + (builtin_save): Print error message and return if only given one + argument that contains globbing characters. + + * src/symtab.cc (symbol_record::save): Don't attempt to save + undefined variables. + + Wed Dec 29 02:55:08 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * scripts/rank.m: Also need to compute SVD when nargin == 2. + Correct usage message. + + Wed Dec 15 01:44:18 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * src/f-lpsolve.cc, src/f-fsqp.cc, src/f-npsol.cc, src/f-qpsol.cc, + src/f-lsode.cc, src/f-dassl.cc, src/f-fsolve.cc, src/f-quad.cc: + New stub options functions, XXX_options, and XXX_options_2 (for + future dld use), where XXX is lpsolve, fsqp, npsol, etc. + * src/f-lpsolve.h, src/f-fsqp.h, src/f-npsol.h, src/f-qpsol.h, + src/f-lsode.h, src/f-dassl.h, src/f-fsolve.h, src/f-quad.h: + Declare XXX_options functions. + * src/builtins.cc (builtin_general_functions): Add new XXX_options + functions to the list of builtin functions. + * src/g-builtins.cc: Define builtin_XXX_options functions. + * src/g-builtins.h: Declare them. + + * scripts/tzero.m: Add missing comma in fprintf call. + + Tue Dec 14 00:24:35 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * libcruft/quadpack/*.f: Modify to handle user-requested + termination from inside the user-supplied function. + * src/f-quad.cc (quad_user_function): Set quad_integration_error + if an error is encountered in the user-supplied function. + * liboctave/Quad.h (quad_integration_error): New global variable. + * liboctave/Quad.cc (user_function): Handle + quad_integration_error, and error flag for modified Quadpack + functions. + + * src/tree.cc (tree_simple_assignment_expression::eval): Check + error status after calling convert_to_const_vector () on the + argument list. + (tree_index_expression::eval): Ditto. + + * src/tree.cc (tree_argument_list::convert_to_const_vector): + If an error is encountered while evaluating an element of the + list, print an error message including the element number. + + * liboctave/ODE.cc (integration_error): New private data member. + (ODE constructors): Initialize it to zero. + (ODE::integrate (double)): Reset it to zero before each + integration step. + (lsode_f): Treat empty vector returned from user-supplied function + as an error. + * src/f-lsode.cc (lsode_user_function): Return empty vector if + error is encountered in user-supplied function. Don't jump to top + level on error. + + * libcruft/odepack/lsode.f (lsode): Return with istate = -13 on + error from user supplied subroutine. + * libcruft/odepack/lsode.f (lsode): Handle extra argument returned + from user-supplied function. + * libcruft/odepack/stode.f (stode): Likewise. + * libcruft/odepack/prepj.f (prepj): Likewise. + + Wed Dec 8 01:30:57 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/DAE.cc (integration_error): New private data member. + (DAE constructors): Initialize it to zero. + (DAE::integrate (double)): Reset it to zero before each + integration step. + (dassl_f): Treat empty vector returned from user-supplied function + as an error. + * src/f-dassl.cc (dassl_user_function): Return empty vector if + error is encountered in user-supplied function. Don't jump to top + level on error. + + * liboctave/NPSOL.cc (npsol_objective_error): New global variable. + (npsol_objfun): Set to zero before calling user-supplied function. + Check after calling user-supplied function. + Set mode to -1 on error. + (npsol_confun): Set mode to -1 on error. + (npsol declaration): Declare args for user-supplied functions. + * src/f-npsol.cc (npsol_objective_function): If an error is + encountered in the calculation of the objective function, set + npsol_objective_error to 1. + (npsol_constraint_function): Treat empty vector returned from + user-supplied function as an error. + + * liboctave/Array.cc (*::checkelem): Correct bounds checking. On + error, return uninitialized value of type T. This avoids placing + an extra requirement on the class that can be used as an array + element. + (*::operator ()): Likewise. + + Mon Dec 6 07:24:49 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/NLEqn.cc (hybrd1 declaration): Declare args for + user-supplied fuction. + (hybrj1): Likewise. + (hybrd1_fcn): Treat return of empty vector from user supplied + function as an error by setting iflag to -1. + (hybrj1_fcn): Likewise. + (solve): Handle case of info < 0 returned from hybrd1. + + * src/f-fsolve.cc (fsolve_user_function): Don't jump to top level + on error in user-supplied function. Treat empty vector returned + from user-supplied function as error. + (hybrd_info_to_fsolve_info): Translate -1 (failure in evaluation + of user-supplied function) to -2. + * scripts/perror.m (fsolve case): Handle -2. + + * info/error.c (program_name): Initialize to info, not NULL. + + * info/session.c (initialize_info_session): Don't exit if term is + too dumb or too small to use info. Return int status instead. + * info/info.h (TERM_TOO_SMALL): New macro. + + * src/t-buitlins.cc (try_info): Check return value from + initialize_info_session (). + + * liboctave/Array.cc (DiagArray::DiagArray (int n, const T& val)): + Set number of rows and columns to n, not 0. + + Sat Dec 4 14:01:41 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * src/lex.h (YY_INPUT): Undefine if defined, then always define + the way we want. + (YY_FATAL_ERROR): Likewise. + + * src/lex.l (yywrap): Declare static. + (yy_flex_alloc): New function, so we don't have to link with + libfl.a when using flex 2.4.x. + (yy_flex_realloc): Ditto. + (yy_flex_free): Ditto. + + Thu Dec 2 19:23:43 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * scripts/*.m: Add copying notice to script files. + + * src/input.cc (command_generator): Return copy of matching string. + + * src/input.cc (command_generator): Correctly delete array of + character strings. + * src/symtab.cc (symbol_table::save): Likewise. + * src/utils.cc (pathstring_to_vector): Likewise. + + * src/utils.cc (get_m_file_names): When reallocating vector of + strings, delete original vector of pointers, but not the strings + they point to. + + Tue Nov 30 12:36:41 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/RowVector.cc, liboctave/ColVector.cc, + liboctave/DiagMatrix.cc, liboctave/Matrix.cc, + liboctave/Matrix-ext.cc: Massive rewrite to cope with new + derivation scheme. + + * liboctave/Matrix.h: Include Array.h, and derive Matrix, + ComplexMatrix, etc. from Array. Derive Complex + versions from Array. Delete declarations of functions + now inherited from the Array classes. + * Include mx-kludge.h with appropriate #defines in each class that + needs it. + * liboctave/Matrix.cc: Include mx-kludge.cc with appropriate + #defines in each class that needs it. + + * liboctave/Makefile.in (INCLUDES): Add Array.h, MArray.h, and + mx-kludge.h. + (SOURCES): Add Array.cc. + (EXTRAS): Add MArray.cc and mx-kludge.cc. + + * liboctave/mx-kludge.h, liboctave/mx-kludge.cc: New files to + implement the MArray functionality with macros until g++ can + handle the MArray stuff. + + * liboctave/MArray.h, liboctave/MArray.cc: New files for generic + arrays with simple math functions for like-types. This won't + quite work with g++ yet, so it's not used anywhere. + + * liboctave/Array.h, liboctave/Array.cc: New files for generic + arrays. + + * liboctave/mx-inlines.cc: Add const for const arguments. + + * src/file-io.cc (file_info): Rename class from File_info. + (file_info::operator =): Fix memory leak by deleting old name + and mode before saving new. Don't do copy if source and + destination are the same. + + * src/tree.cc (tree_matrix::eval): Plug memory leak. + + * src/tree.cc (tree_builtin::tree_builtin): Check to see that nm, + not my_name, is non-NULL before saving it. + + * src/tree.cc (tree_identifier::eval, tree_gobal_command::eval): + After performing the assignment, delete the identifier created + for temporary asssignment since the destrucotr for + tree_simple_assignment_expression doesn't do it for us. + + * src/tree.cc (tree_function::stash_m_file_name): Delete file_name + before saving it. + (tree_function::stash_function_name): Likewise, for fcn_name. + + * src/lex.l, src/lex.h: Make quote_is_transpose globally visible. + * src/parse.y (param_list): Use it, and recognize empty parameter + lists here. + + * src/parse.y (simple_expr1): Recognize empty matrices here. + (matrix): Not here. + + * src/arith-ops.cc (do_binary_op): The matrix product and quotient + functions aren't class member functions now. + + * src/tc-index.cc, src/tc-assign.cc, src/symtab.cc, + src/tree-plot.cc, src/idx-vector.cc, src/tree-const.cc: + Call ::error, not just error, since g++ now complains about not + being able to find a non-hidden member function by that name. + + * src/tree-const.cc: Call ::real and ::imag, not just real and imag, + since g++ now complains about not being able to find non-hidden + member functions by those names. + + * src/tree-const.cc (tree_constant_rep::force_numeric): Handle case + of zero-length strings. + + * src/tree-const.cc (tree_constant_rep::convert_to_str): Null + terminate strings created from scalars. + + * src/tc-index.cc (tree_constant_rep::fortran_style_matrix_index): Use + data(), not fortran_vec(). + * src/idx-vector.cc (idx_vector::idx_vector): Likewise. + + * src/SLStack.cc: Move function definitions here. + * src/SLStack.h: From here. Include SLStack.cc if not using + external templates. + + * src/unwind-prot.h: Move class declaration here. + * src/unwind-prot.cc: From here. + + * src/xdiv.h, src/xpow.h, src/variables.h, src/utils.h, + src/user-prefs.h, src/t-builtins.h, src/sighandlers.h, + src/pr-output.h, src/pager.h, src/octave-hist.h, src/mappers.h, + src/input.h, src/help.h, src/gripes.h, src/g-builtins.h, + src/f-syl.h, src/f-svd.h, src/f-schur.h, src/f-rand.h, + src/f-qzval.h, src/f-quad.h, src/f-qr.h, src/f-qpsol.h, + src/f-npsol.h, src/f-lu.h, src/f-lsode.h, src/f-lpsolve.h, + src/f-inv.h, src/f-ifft.h, src/f-hess.h, src/f-givens.h, + src/f-fsqp.h, src/f-fsolve.h, src/f-fft.h, src/f-expm.h, + src/f-eig.h, src/f-det.h, src/f-dassl.h, src/f-colloc.h, + src/f-chol.h, src/f-balance.h, src/error.h, src/dynamic-ld.h, + src/builtins.h, src/arith-ops.h, src/tree-const.h, src/tree.h, + src/token.h, src/symtab.h, src/procstream.h, src/idx-vector.h, + src/file-io.h, src/tree-base.h, src/unwind-prot.h, src/Stack.h, + liboctave/LinConst.h, liboctave/FEGrid.h, liboctave/NLEqn.h, + liboctave/NLConst.h, liboctave/LPsolve.h, liboctave/LP.h, + liboctave/FSQP.h, liboctave/DAEFunc.h, liboctave/DAE.h, + liboctave/CollocWt.h, liboctave/Bounds.h, liboctave/Objective.h, + liboctave/ODEFunc.h, liboctave/NLFunc.h, liboctave/Range.h, + liboctave/Quad.h, liboctave/QP.h, liboctave/QPSOL.h, + liboctave/QLD.h, liboctave/NPSOL.h, liboctave/NLP.h, + liboctave/f77-uscore.h, liboctave/lo-error.h, + liboctave/Matrix.h: + Don't use #pragma interface. + + * src/tc-index.cc, src/tc-assign.cc, src/symtab.cc, + src/procstream.cc, src/gripes.cc, src/f-syl.cc, src/f-svd.cc, + src/f-schur.cc, src/f-rand.cc, src/f-quad.cc, src/f-qr.cc, + src/f-qpsol.cc, src/f-npsol.cc, src/f-lu.cc, src/f-lsode.cc, + src/f-lpsolve.cc, src/f-inv.cc, src/f-ifft.cc, src/f-hess.cc, + src/f-givens.cc, src/f-fsqp.cc, src/f-fsolve.cc, src/f-fft.cc, + src/f-eig.cc, src/f-det.cc, src/f-dassl.cc, src/f-colloc.cc, + src/f-chol.cc, src/f-balance.cc, src/t-builtins.cc, + src/octave-hist.cc, src/input.cc, src/g-builtins.cc, + src/xdiv.cc, src/xpow.cc, src/user-prefs.cc, src/unwind-prot.cc, + src/tree-plot.cc, src/token.cc, src/tc-extras.cc, src/sysdep.cc, + src/sighandlers.cc, src/pr-output.cc, src/pager.cc, + src/mappers.cc, src/idx-vector.cc, src/help.cc, src/f-qzval.cc, + src/f-expm.cc, src/error.cc, src/dynamic-ld.cc, src/builtins.cc, + src/arith-ops.cc, src/variables.cc, src/utils.cc, + src/tree-const.cc, src/file-io.cc, src/tree.cc, + liboctave/sun-utils.cc, liboctave/mx-inlines.cc, + liboctave/RowVector.cc, liboctave/ColVector.cc, + liboctave/DiagMatrix.cc, liboctave/Matrix.cc, + liboctave/Matrix-ext.cc, liboctave/Quad.cc, liboctave/ODE.cc, + liboctave/LPsolve.cc, liboctave/FSQP.cc, liboctave/DAE.cc, + liboctave/DAEFunc.cc, liboctave/QP.cc, liboctave/Objective.cc, + liboctave/ODEFunc.cc, liboctave/NLFunc.cc, liboctave/NLConst.cc, + liboctave/LP.cc, liboctave/lo-error.cc, liboctave/Range.cc, + liboctave/QPSOL.cc, liboctave/NPSOL.cc, liboctave/NLEqn.cc, + liboctave/Matrix.cc, liboctave/Matrix-ext.cc, + liboctave/LinConst.cc, liboctave/FEGrid.cc, + liboctave/DiagMatrix.cc, liboctave/CollocWt.cc, + liboctave/ColVector.cc, liboctave/Bounds.cc: + Don't use #pragma implementation. + + * src/lex.l, src/parse.y, src/procstream.cc, src/gripes.cc, + src/f-syl.cc, src/f-svd.cc, src/f-schur.cc, src/f-rand.cc, + src/f-quad.cc, src/f-qr.cc, src/f-qpsol.cc, src/f-npsol.cc, + src/f-lu.cc, src/f-lsode.cc, src/f-lpsolve.cc, src/f-inv.cc, + src/f-ifft.cc, src/f-hess.cc, src/f-givens.cc, src/f-fsqp.cc, + src/f-fsolve.cc, src/f-fft.cc, src/f-eig.cc, src/f-det.cc, + src/f-dassl.cc, src/f-colloc.cc, src/f-chol.cc, + src/f-balance.cc, src/t-builtins.cc, src/octave-hist.cc, + src/input.cc, src/g-builtins.cc, src/xdiv.cc, src/xpow.cc, + src/user-prefs.cc, src/unwind-prot.cc, src/tree-plot.cc, + src/token.cc, src/tc-extras.cc, src/sysdep.cc, + src/sighandlers.cc, src/pr-output.cc, src/pager.cc, + src/mappers.cc, src/idx-vector.cc, src/help.cc, src/f-qzval.cc, + src/f-expm.cc, src/error.cc, src/dynamic-ld.cc, src/builtins.cc, + src/arith-ops.cc, src/variables.cc, src/utils.cc, + src/tree-const.cc, src/file-io.cc, src/tree.cc: If HAVE_CONFIG_H + is defined, include config.h. + + * config.h.in, acconfig.h: New files + * Makefile.in (DISTFILES): Add them to the list. + + * Makeconf.in (root_srcdir): Define. + (INCFLAGS): Clean up. + (UGLY_ALL_CFLAGS): New macro. + (UGLY_ALL_CXXFLAGS): Likewise. + (UGLY_ALL_LDFLAGS): Likewise. + + * configure.in: Convert to generate config.h. + Substitute root_srcdir in Makefiles. + Use AC_DEFINE(foo, 1) instead of DEFS="$DEFS -Dfoo=1". + If using g++ 2.5 or later, define USE_EXTERNAL_TEMPLATES. + Use UGLY_DEFS for what would have been substited in DEFS, for + those cases when we need DEFS instead of config.h. + + Tue Nov 16 04:59:19 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * src/f-expm.cc, src/f-givens.cc, src/f-qzval.cc, src/f-syl.cc: + Include f77-uscore.h here. + + * liboctave/ColVector.cc, liboctave/Matrix.cc, + liboctave/Matrix-ext.cc, liboctave/RowVector.cc: Move declarations + for Fortran functions here. + * liboctave/Matrix.h: From here. Don't include f77-uscore.h here. + + Mon Nov 15 04:03:34 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tc-extras.cc (min): For two-arg versions, use error(), not + FAIL. + (max): Likewise. + * src/idx-vector.cc (checkelem): Likewise. + + * liboctave/Matrix.h, liboctave/Matrix.cc, liboctave/RowVector.cc, + liboctave/ColVector.cc, liboctave/DiagMatrix.cc, + liboctave/Matrix-ext.cc, liboctave/Bounds.cc, liboctave/DAE.cc, + liboctave/CollocWt.cc, liboctave/FEGrid.cc, liboctave/LinConst.cc, + liboctave/ODE.cc, liboctave/NLEqn.cc: Don't abort or exit on + errors. Instead print some message by calling the function + pointed to by current_liboctave_error_handler and then return. + + * liboctave/lo-error.cc: New file, for liboctave error handling + stuff. + + Sun Nov 14 23:28:12 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * src/utils.cc (default_path): Handle OCTAVE_PATH from the + environment like TeX handles TEXINPUTS. If the path starts with + `:', prepend the standard path. If it ends with `:' append the + standard path. If it begins and ends with `:', do both (which is + useless, but the luser asked for it...). + (octave_lib_dir): Plug memory leak. + + Sat Nov 13 02:41:24 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * src/symtab.h (symbol_record::context): New data member, to allow + recursive functions to work. + * src/symtab.cc (symbol_record::push_context): New function + (symbol_record::pop_context): Ditto. + (symbol_table::pop_context): Ditto. + (symbol_table::push_context): Ditto. + + * src/tree.cc (tree_function::eval): If call_depth is > 1, push + symbol table context and add unwind protect to pop it on exit or + error. + (pop_symbol_table_context): New function for unwind protect. + + * configure.in: Use AC_HAVE_HEADERS(unistd.h) instead of + AC_UNISTD_H. + + * src/lex.l, src/f-quad.cc, src/f-rand.cc, src/f-lpsolve.cc, + src/f-fsqp.cc, src/f-fsolve.cc, src/f-det.cc, src/f-dassl.cc, + src/f-colloc.cc, src/utils.cc, src/variables.cc, src/tree.cc, + src/tree-const.cc, src/tc-extras.cc, src/sysdep.cc, src/symtab.cc, + src/octave-hist.cc, src/pr-output.cc, src/input.cc, + src/g-builtins.cc, src/f-det.cc, src/f-inv.cc, src/file-io.cc: + Convert most calls to message() to calls to warning() or error() + instead. + + * src/f-npsol.cc (npsol): Don't try to create the linear + constraint object before checking array sizes. + + Fri Nov 12 04:36:12 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tc-inlines.cc (is_one_zero): New function. + * src/tc-assign.cc: Everywhere we check for is_zero_one, also + check for is_one_zero. Some people write ranges that go in + decreasing order... + * src/tc-index.cc: Likewise. + + * src/tc-inlines (index_check (Range&, int&, char*)): Eliminate + second arg -- there is no need to return the max value of the + range. Correctly compute and check the minimum value. + * src/tc-index.cc: Change all callers, and check the max value + there. + * src/tc-assign.cc: Likewise. + + * src/tc-assign.cc (do_vector_assign): Handle assignment of empty + matrix for int, idx_vector, and Range cases. + (do_matrix_assign): Likewise, for cases when one of the indices is + a colon and the other is an int, idx_vector, or Range. + + * liboctave/Range.h (Range): Rename private data members rng_foo + instead of just _foo. + * liboctave/Range.cc: Change names where used. + + * liboctave/Range.cc (max): Return correct value even when the + elements in the range don't line up exactly with the limit. + (min): Likewise. + (sort): New function. + + * src/tc-assign.cc (delete_row (int)): New function. + (delete_rows (idx_vector&)): Ditto. + (delete_rows (Range&)): Ditto. + (delete_column (int)): New function. + (delete_columns (idx_vector&)): Ditto. + (delete_columns (Range&)): Ditto. + + * src/tree-const.h (is_empty): Don't try checking rows and columns + if type is magic_colon or unknown. Return false instead. + (is_zero_by_zero): New function. + + * src/idx-vector.cc (sort): New function. + (intcmp): New static function, for sorting. + + Thu Nov 11 02:31:13 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * scripts/menu.m: Update to use new va_start() and va_arg() + functions. + + * src/g-builtins.cc (builtin_va_arg): Rename from + builtin_get_next_arg. + (builtin_va_start): New function. + * src/builtins.cc (builtin_general_functions): Fix up list. + + * src/tree.cc (tree_function::va_arg): Rename from get_next_arg. + (tree_function::va_start): New function. + + * src/tree.h (tree_function::num_named_args): New data member. + * src/tree.cc (tree_function::define_param_list): Set it. + (tree_function::eval): Unwind-protect it. + + Wed Nov 10 03:37:44 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tree.cc (tree_identifier::assign): Also check to make sure + that the symbol record is defined since symbol_record::is_variable + may return true even if the record is undefined. + * src/variables.cc (link_to_global_variable): Don't try to copy a + NULL_TREE_CONST. + + * src/tree-const.cc (tree_constant_rep::matrix_value): If the + current value is a scalar, return 1x1 matrix. + * src/tc-assign.cc (tree_constant_rep::check_vector_assign): + Handle case of zero size LHS. + Clean up formatting of some error messages. + + * src/lex.l ({EL}): Recognize ... when not at end of line. + * src/octave.cc (curr_function): New global variable. + * src/g-buitlins.cc (builtin_get_next_arg): New function. + * src/builtins.cc (builtin_general_functions): Add it to the list. + * src/parse.y (param_list1): Handle ... at end of parameter list. + Abort parse on error. + (ELLIPSIS): New token, for variable argument lists. + * src/tree.h (tree_function): Add varargs_ok, args_passed, + num_args_passed, and curr_arg_number data members to handle + variable argument lists. + (tree_parameter_list::marked_for_varargs): New data member. + * src/tree.cc (tree_function::takes_varargs): New function. + (tree_function::get_next_arg): New function. + (tree_parameter_list::mark_varargs): New function. + (tree_parameter_list::takes_varargs): New function. + (tree_function::eval): Set curr_function, args_passed, and + num_args_passed for use by get_next_arg. + + Mon Nov 8 14:22:34 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.79 released. + + * src/builtins.cc (builtin_text_functions): Correct usage message + for who. + + * scripts/dgram.m: New function, from R. Bruce Tenison + (btenison@eng.auburn.edu). + * scripts/dlqe.m: Ditto. + * scripts/dlqr.m: Ditto. + * scripts/c2d.m: Ditto. + + * src/tree.cc (tree_identifier::name): Make it const. + (tree_builtin::name): Ditto. + (tree_parameter_list::name): Ditto. + (tree_word_list::name): Ditto. + + * src/symtab.cc (symbol_table::save): Delete list of names after + saving. + + * src/symtab.h (symbol_table): Move #defines outside of class + declaration. + + Sun Nov 7 07:03:12 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * Makeconf.in (CXX): Don't set from C++. Do set from @CXX@, which + is determined by configure. Don't set C++FLAGS. + + * src/tree.cc: (tree_function::eval (int, int)): Simply call + eval (tree_constant *, int, int, int) with nargin = 1 and args = + NULL_TREE_CONST instead of duplicating most of that function in place. + + * src/parse.y (func_def2): Reset id_name after renaming identifier. + Clear id_name from top level symbol table before defining identifier. + + Sat Nov 6 04:38:57 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * configure.in: When checking for g++, set CXX, not GXX. + + Merge min changes from Bruce Tenison (btenison@eng.auburn.edu) and + make the corresponding changes for max. + + * src/tc-extras.cc (min (ComplexMatrix&, ComplexMatrix&)): New + function. + (max (ComplexMatrix&, ComplexMatrix&)): Ditto. + (column_min): Handle complex args and two return values. + (column_max): Likewise. + + * liboctave/Matrix.cc (row_min_loc): New function. + (row_max_loc): New function. + (column_min_loc): Ditto. + (column_max_loc): Ditto. + + Fri Nov 5 03:12:55 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.78. + + * src/octave.h (clean_up_and_exit): Change form of declaration for + GCC 2.5.x and beyond. + + * src/tree.cc (tree_identifier::eval): Correctly handle printing + of identifier tags and conversion to assignment to `ans'. + * src/parse.y (maybe_convert_to_ans_assign): Simplify. + For identifiers, defer decision about making an ans assignment + until evaluation time since identifiers can be undefined at parse + time, and we can't tell what to do until we know what the def is. + * src/tree.cc (tree_identifier::mark_for_possible_ans_assgin): New + function. + * src/tree.cc (tree_index_expression::mark_for_possible_ans_assign): + New function. + * src/tree.h (tree_identifier): Add new private data, + maybe_do_ans_assign. + + * src/t-builtins.cc (builtin_who): Major overhaul. Support long + listings. + (print_symbol_info_line): New function. + (print_long_listing): Ditto. + (maybe_list): Ditto. + + * src/user-prefs.cc (sv_editor): New function for builtin variable + EDITOR. + * src/octave-hist.cc (do_edit_history): Use user_pref.editor, not + just the EDITOR environment variable. + + * src/user-prefs.cc (ignore_function_time_stamp): New function for + new builtin variable ignore_function_time_stamp. + * src/variables.cc (symbol_out_of_date): Use value of new + user_pref.ignore_function_time_stamp to decide whether to check to + see if a file has changed. + * src/tree.h (tree_function): Add new private data, system_m_file. + + * src/builtins.cc (string_variables): Add EDITOR and + ignore_function_time_stamp EDITOR to the list. + (bultin_general_functions): Add is_global to the list. + + * src/t-builtins.cc (builtin_clear): Make it work with new + variable scoping rules. + (builtin_document): Likewise, using new document_symbol() + function. + (builtin_save): Likewise. Allow regular expression arguments. + Don't save builtin variables that are read-only. + + * src/utils.cc (octave_home): Don't declare static. + (octave_lib_dir): Likewise. + (octave_info_dir): Likewise. + (default_editor): New function. + + * src/tree.cc (tree_builtin::def): Delete function. + (tree_identifier::def): Likewise. + (tree_identifier::symrec): Likewise. + + * src/tree.h (tree_builtin): Store name of function, not pointer + to symbol record. + + * src/user-prefs.cc (warn_assign_as_truth_value): Lookup + "warn_assign_as_truth_value", not "user_pref.warn...". + + * src/tree-base.h (def): Delete unused virtual function. + (is_prefix_expression): New virtual function. + (mark_for_possible_ans_assign): Likewise. + (is_system_m_file): Likewise. + (stash_m_file_name): No longer needs to be virtual. + (stash_m_file_time): Likewise. + + * src/octave.cc (octave_Complex_error_handler): Define, to keep + errors in the Complex class from aborting Octave. This is only a + temporary fix, I hope. + (main): Install it. + (initialize_globals): Get default editor. + (main): Call initialize_symbol_tables to do that instead of + creating them directly in main. + + * src/variables.cc (document_symbol): New function. + (initialize_symbol_tables): Likewise. + (install_builtin_mapper_function): Likewise. + (install_builtin_text_function): Likewise. + (install_builtin_general_function): Likewise. + (install_builtin_variable): Likewise. + (install_builtin_variable_as_function): Likewise. + (bind_nargin_and_nargout): Likewise. + (bind_builtin_variable): Likewise. + (link_to_global_variable): Likewise. + (link_to_builtin_variable): Likewise. + (link_to_builtin_or_function): Likewise. + (force_link_to_function): Likewise. + (is_globally_visible): Likewise. + (is_builtin_variable): Likewise. + + * src/tree.cc (print_as_scalar): Avoid trying to print row vectors + on one line. + + * src/builtins.cc (install_buitlins): Simplify installation of + builtin functions using new install_builtin_*_function functions. + Ditto for using bind_builtin_variable for installing variables. + + * src/tree.h (tree_global_command): New class. + * src/tree.cc (tree_global_command::*): Implement new class to + make global command executable. + * src/parse.y (global_decl): Make global an executable statement. + + * src/parse.y (func_def2): Rework to match new way of handling + global variables and function names in the symbol table. + Mark functions as `system' or not. + Don't use id_to_define. + If m-file and function names disagree, rename function to match + m-file name. + * src/tree.cc (tree_identifier::rename): New function. + * src/parse.cc, src/parse.h (id_to_define): Delete unused global + variable. + + * src/varables.cc (builtin_string_variable): Fix to match new + rules for global and builtin variables. + (builtin_real_scalar_variable): Likewise. + + * src/tree.cc (tree_identifier::assign): Make it work with new + rules for global variables. + (tree_identifier::parse_m_file): Likewise. + (tree_identifier::do_lookup): Likewise. + + * src/tree.cc (mark_as_system_m_file): New function. + (is_system_m_file): Ditto. + + * src/tree.cc (clear_symbol_table): New function, to be used in an + unwined_protect element for clearing function symbol tables on + exit or error. + + * src/tree.cc (tree_function::eval): Simplify using + bind_nargin_and_nargout. + Clear symbol table on exit or error with unwind_protect. + + * src/tree.cc (tree_prefix_expression::is_prefix_expression): New + function. + + * src/g-builtins.cc (builtin_is_global): New function. + + * src/lex.l (lookup_identifier): Now that global variable binding + has been fixed, only look for symbols in the current symbol table. + Really. I mean it this time. + + * src/symtab.cc: Complete overhaul, to make global variables work + a bit more reasonably. + + Mon Nov 1 15:03:39 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * src/Matrix.h (DiagMatrix::rows): Return nr, not len. + (ComplexDiagMatrix::rows): Ditto. + * src/Matrix.h (DiagMatrix::cols): Return nc, not len. + (ComplexDiagMatrix::cols): Ditto. + (DiagMatrix::columns): Ditto. + (ComplexDiagMatrix::columns): Ditto. + + * liboctave/DiagMatrix.cc (DiagMatrix::row): Make it work for + square case. + (DiagMatrix::column): Likewise. + (ComplexDiagMatrix::row): Likewise. + (ComplexDiagMatrix::column): Likewise. + + * liboctave/DiagMatrix.cc (DiagMatrix::operator <<): Print spaces + between elements. + (ComplexDiagMatrix::operator <<): Likewise. + + Fri Oct 29 15:32:12 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.77.1. + + * src/symtab.cc (symbol_record::alias): Don't copy formal_param or + forced_global attribute. + + * src/symtabl.cc (symbol_table::bind_globals): Don't bind to + global symbol unless it has forced_global attribute set. + + * src/tree.cc (print_as_scalar): New function. + (tree_identifier::eval): Use it. + (tree_simple_assignment_expression::eval): Likewise. + (tree_multi_assignment_expression::eval): Likewise. + + * src/lex.l (is_keyword): Give better error message for attempts + to define nested functions. + + * src/parse.y (global_decl): Return a command_list to execute + (this makes assignments in global declarations executable). + + * src/tree.cc (tree_for_command): Handle line and column info in + constructors and for error messages. + (tree_while_command): Ditto. + (tree_if_command): Ditto. + (tree_break_command): Ditto. + (tree_continue_command): Ditto. + (tree_return_command): Ditto. + (*::eval_error): Only print messages if error_state > 0. + (various): Only need to check that error_state is non-zero before + calling eval_error(). + + * src/parse.y: Handle line and column information for FOR WHILE IF + ELSEIF ELSE BREAK CONTINUE and FUNC_RET tokens. + * src/lex.l: Likewise. + + * src/octave.cc (parse_and_execute): Reset parser before starting + new parse. + + * src/tree-plot.cc (various): Check error_state in many more + places, and issue more meaningful error messages. + + * src/tree-const.cc (maybe_resize): Don't call + jump_to_top_level() on errors. + (tree_constant_rep (Range)): Likewise. + + * src/g-builtins.cc (builtin_error): Use error(), not + print_if_string() to print error messages. + * src/tree-const.cc (print_if_string): Delete unused function. + + * src/tc-assign.cc (various): Check error_state after calls to + maybe_resize(). + + * src/tc-index.cc (various): Always check the state of idx_vectors + after trying to create them. + * src/tc-assign.cc (various): Likewise. + + * src/idx-vector.cc: Use 0, not NULL. + Don't include stdlib.h. + (initialized): New data member, set nonzero if the idx_vector has + been properly initialized. + Never call jump_to_top_level () if initialization fails. + Add operator void *(), so we can test the state of an idx_vector + with `if (vector)'. + + * src/pager.cc: Explicitly initialize pager_buf to NULL. + + * src/tree-base.h: Move includes ahead of other definitions. + + * liboctave/NLEqn.cc (NLEqn::NLEqn (const Vector&, const NLFunc)): + Initialize n from xvec, not x. + + Mon Oct 25 18:01:12 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * src/user-prefs.cc (sv_info_file): New function. + * src/user-prefs.h (user_pref): Add info_file to the list. + * src/t-builtins.cc (try_info): Use it instead of + DEFAULT_INFO_FILE. + + * src/utils.cc (default_info_file): New function. + (octave_info_dir): Likewise. + + * src/defaults.h.in (DEFAULT_INFO_FILE): Delete unnecessary + definition since we figure out what it should be in utils.cc now. + * src/Makefile.in (defaults.h): Don't substitute DEFAULT_INFO_FILE. + * src/Makeconf.in (DEFAULT_INFO_FILE): Delete definition. + + * src/octave.cc (info_file): New global variable. + (initialize_globals): Call default_info_file () to initialize it. + (--info-file): New command line option. + + * src/builtins.cc (string_variables): Add INFO_FILE to the list. + (install_builtins): Define it. + + * info/filesys.c (compress_suffixes): Choose gunzip for .gz files. + + Sat Oct 23 17:46:09 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.77 released. + + * src/Makefile.in (INCFLAGS): Don't include info or dld + directories. + * dynamic-ld.cc: Include dld/dld.h, not just dld.h. + * t-buitlins.cc: Include info/info.h, info/dribble.h, and + info/terminal.h, not just info.h, dribble.h, and terminal.h. + + * src/t-builtins.cc (builtin_help): New option, -i, for invoking + info browser. If -i is not given, just do what we used to do, but + point to help -i as a way to get additional information. + + * builtins.cc (print_usage): New function. + + * g-builtins.cc (all builtins): Call print_usage to get usage message. + * t-builtins.cc (all builtins): Likewise. + + Fri Oct 22 15:56:16 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * Cholesky changes from R. Bruce Tenison (btenison@eng.auburn.edu): + + * src/f-chol.cc, src/f-chol.h: New files for the Cholesky + Factorization. + * src/Makefile.in (SOURCES, OBJECTS, DLD_OBJECTS): Add to lists. + * src/g-builtins.cc (builtin_chol): New function. + * src/g-builtins.h: Declare it. + + * liboctave/Matrix-ext.cc (CHOL, ComplexCHOL): New classes. + + * libcruft/lapack: dpotrf.f, zpotrf.f, dpotf2.f, zpotf2.f: New + files. + + * libcruft/blas: dsyrk.f, zherk.f: New files. + + Fri Oct 22 14:04:16 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * src/g-builtins.cc (builtin_schur): Fourth arg for DLD_BUILTIN is + schur, not hess. + + * scripts/dare.m: Correct usage of fprintf. + + * src/utils.cc (raw_mode): Only complain about stdin not a tty if + interactive or forced interactive. + + Thu Oct 21 17:00:57 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * src/builtins.cc (install_builtins): Try harder to make + initialization of NaN work. Make note about possible fixes if it + still doesn't work. + + * src/utils.cc (raw_mode): [HAVE_TERMIOS_H] and [HAVE_TERMIO_H] + Don't set TAB3 since it doesn't seem necessary and some systems + don't have it by this name. + [HAVE_SGTTY_H] To be consistent, don't set XTABS here either. + + * src/error.c (error): Call flush_output_to_pager before printing + error message. + (panic): Likewise, before aborting. + + * src/symtab.cc (symbol_record::undefine): Delete unused function. + (symbol_table::undefine): Likewise. + + * src/symtab.cc (clear): Never delete symbol records from the + table. Only delete the definitions. This makes clear and + undefine equivalent, so we don't need them + * src/tree.cc (tree_function::eval): Call symbol_table::clear, not + symbol_table::undefine. + + * src/t-builtins.cc (builtin_clear): Only clear global symbols if + we are at the top level. + * src/parse.y (CLEAR): Delete token. + (word_list_command): Remove code to handle CLEAR as special case. + (expect): Only 19 now. + * src/lex.l (handle_identifier): Remove special code for clear. + It's ok to use it in a function body now. + + * src/t-builtins.cc: Include extern "C" declarations for Info stuff. + (builtin_help): If given an argument, try to get help directly + from info file first. If that fails, do as before. + (help_syms_list): New function: + (simple_help): New function. + (try_info): New function. + (help_from_list): New function. + + * src/defaults.h.in (DEFAULT_INFO_FILE): Define new macro. + * Makeconf.in: Set value of DEFAULT_INFO_FILE. + * Makeconf.in (INSTALL_PROGRAM): Add definition. + * Makefile.in (SUBDIRS): Add info directory. + (info): New target. + * configure.in: Add autoconf macros to handle info configuration. + + * info/Makefile.in: Major changes to make it work with Octave's + Makeconf file, etc. The default action is now to build a + libinfo.a file. + + * info/error.c: New file. Move error functions here from info.c. + + * info/signals.c (clear_info_signal_handler): New function, useful + if info is used directly in another program. + + * info/termdep.h: Handle termios too. + * info/terminal.c (terminal_prep_terminal): Handle termios. + * (terminal_unprep_terminal): Likewise + + * info/session.c (initialize_info_session): Add arg to make + clearing the screen conditional. Useful if we want to call + index_entry_exists() first before displaying anything. + Change all callers. + + * info/session.c (finish_info_session): New function. + + * info/session.c (dispatch_error): Change message to include info + about how to get help and how to quit. + + * info/info.c (index_search_p): New flag. + (--index-search): New option, like apropos, but search the indices + and display the first node found. + + * info/indices.c (do_info_index_search): New function, modified + from info_index_search to allow searching the index for a string + without prompting for it. + (info_index_search): Just call do_info_index_search. + (index_entry_exists): New function, to allow us to find out if + there is an index entry for a given string without actually + displaying anything. + + * info: New directory, containing source for GNU info browser. + + Tue Oct 19 00:14:33 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * src/octave-hist.cc (input_from_tmp_history_file): New global flag. + (do_edit_history): Protect and set it. + (do_run_history): Likewise. + * src/parse.y (func_def2): Use it to see that input is coming from + a temporary file. This means that we shouldn't exit when we're + done reading it, and we should treat it just as if the input were + coming from the keyboard. + + * variables.cc (force_global): Force aliasing so it will happen + even if the symbol record is undefined. + + * src/lex.l (lookup_identifier): Simplify + + * src/lex.l (reset_parser): Reset error_state here. + * src/octave.cc (main): Not here. + + Mon Oct 18 14:27:02 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tree-const.cc: Delete constructor for tree_constant from + String. + + * In src: tree.h, mappers.h, unwind-prot.h, parse.h, file-io.h, + arith-ops.h, tree-base.h, tree-const.h, g-builtins.h, + idx-vector.h, builtins.h, dynamic-ld.h, xdiv.h, xpow.h, + pr-output.h, input.h, symtab.h, utils.h: Avoid including files + unnecessarily. + + * In src: tc-inlines.cc, mappers.cc, variables.cc, arith-ops.cc, + tree.cc, tree-const.cc, g-builtins.cc, file-io.cc, idx-vector.cc, + tc-assign.cc, tc-index.cc, builtins.cc, dynamic-ld.cc, xdiv.cc, + xpow.cc, pr-output.cc, tc-extras.cc, input.cc, symtab.cc, + utils.cc: Sprinkle liberally with const. + + * In src: f-syl.cc, f-svd.cc, f-schur.cc, f-rand.cc, f-qzval.cc, + f-quad.cc, f-qr.cc, f-qpsol.cc, f-npsol.cc, f-lu.cc, + f-lsode.cc, f-lpsolve.cc, f-inv.cc, f-ifft.cc, f-hess.cc, + f-givens.cc, f-fsqp.cc, f-fsolve.cc, f-fft.cc, f-expm.cc, + f-eig.cc, f-det.cc, f-dassl.cc, f-colloc.cc, f-balance.cc: + Add const qualifier to tree-constant arg. + + Sat Oct 16 12:22:24 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * src/tree-const.h, src/tree-const.cc: Add const qualifier to + constructor arguments passed by reference. + Pass Complex arguments by const reference instead of by value. + + * liboctave/Matrix.h, liboctave/Matrix.cc, liboctave/ColVector.cc, + liboctave/RowVector.cc liboctave/DiagMatrix.cc: Pass Complex + arguments by const reference instead of by value. + + Wed Oct 13 14:13:29 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * src/utils.cc (decode_prompt_string): ctime returns time_t, which + might not be a long. + + * src/variables.cc (identifier_exists): Only return non-zero if + the name has a definition. + + * src/f-npsol.cc (npsol): Call error(), not message(), to print + error messages. + (linear_constraints_ok): Likewise. + (nonlinear_constraints_ok): Likewise. + + * src/f-qpsol.cc (qpsol): Don't try to create the linear + constraint object before checking array sizes. Wouldn't exception + handling be nice? + Call error(), not message(), to print error messages. + Check to ensure that the bounds on linear constraints are + vectors. + + * src/lex.l (lookup_identifier): Don't bind global variables + immediately in loops or conditionals, even at the top level. + + Sun Oct 10 8:48:00 1993 John Eaton (jwe@schoch.che.utexas.edu) + + * README.doc: New file. + * Makefile.in (doc-dist): New target. + * doc/Makefile.in (FORMATTED): New macro. + (doc-dist): New target. + + * src/tree.cc (tree_identifier::eval): Don't print anything if an + error is encountered. + (tree_simple_assignment_expression::eval): Likewise. + + * src/tc-assign.cc (do_matrix_assignment): Handle resizing + correctly when indices are (:,range), (:,matrix), (range,:), or + (matrix,:) and the lhs is empty or undefined. + + Tue Oct 5 04:02:37 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.76 released. + + * src/octave.cc (main): Print usage message if we are given more + than one extra argument on the command line. + Delay printing startup message until just before setting the toplevel + jump context. + + * src/lex.h (DO_COMMA_INSERT_CHECK): Delete unused macro. + + * src/lex.l (handle_identifier): New function. + ({IDENT}/{S}*=, {IDENT}{S}*): Use it instead of duplicating code. + (do_comma_insert_check): Use yyunput instad of returning original + character count. + Call directly instead of using DO_COMMA_INSERT_CHECK macro. + + Mon Oct 4 08:06:10 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.75.4. + + * src/tree-const.cc (tree_constant_rep::eval ()): Avoid calling + rows() and columns() for things like magic_colon. + + Sun Oct 3 19:39:33 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + Changes to add line and column info to run-time error messages: + + * src/tree.cc (tree_identifier, tree_prefix_expression, + tree_postfix_expression, tree_simple_assignment_expression, + tree_multi_assignment_expression, tree_colon_expression, + tree_index_expression): Modify constructors to allow line and + column information to be stored. + (abort_on_undefined): Delete (now) unnecessary static variable. + (all eval() functions): If error_state, return immediately. + (tree_matrix::eval ()): Call error and return tree_constant() + instead of jumping to top level on error. + (tree_identifier::parse_m_file ()): When starting to read an + M-file, initialize current_input_column to 1, not 0. + (tree_identifier::eval_undefined_error ()): Improve error message + with line and column info if it is available. Don't abort to top + level on errors. + (tree_function::traceback_error ()): New function. + (tree_function::eval ()): Don't jump to top level on errors. + Call traceback_error if there is an error evaluating the command + list. + + * src/tree.cc (tree_prefix_expression::eval_error ()): New function. + (tree_postfix_expression::eval_error ()): Ditto. + (tree_unary_expression::eval_error ()): Ditto. + (tree_binary_expression::eval_error ()): Ditto. + (tree_simple_assignment_expression::eval_error ()): Ditto. + (tree_multi_assignment_expression::eval_error ()): Ditto. + (tree_colon_expression::eval_error ()): Ditto. + (tree_index_expression::eval_error ()): Ditto. + + * src/tree.cc (tree_function::stash_function_name ()): New function. + * src/parse.y (FCN): Use it. + + * src/lex.l: Return line and column info for many (but not all) + tokens. + + * src/parse.y: Handle token values with the token class defined in + token.cc. + (check_end ()): New function. + (end_error ()): Improve error messages by including line and + column info. + + * src/arith-ops.cc (lots of functions): Don't jump to top level on + errors. + * src/tree.cc (tree_unary_expression::eval ()), + tree_binary_expression::eval ()): Handle error condition here. + + * src/gripes.cc (gripe_nonconformant): Add additional form of this + function to allow message to include dimensions. Change most + callers to use new form + + * src/octave.cc: Initialize column counter to 1, not 0. + (main): Reset error_state before evaluating each top level + command. + + * src/tree-plot.cc (tree_plot_command::eval ()): If error_state, + return immediately. + + * src/tree-const.cc (do_binary_op ()): Return tree_constant() instead + of jumping to top level on errors. + (do_unary_op): Likewise. + (tree_constant_rep::eval ()): If error_state, return immediately. + Convert 1x1 matrices to scalars. + + * src/tc-assign.cc (tree_constant_rep::do_scalar_assignment ()): + Don't jump to top level on error. + If there is an error while attempting to convert an undefined + variable to a matrix, don't suddenly create an empty matrix. + (tree_constant_rep::fortran_style_matrix_assignment ()): Check + return value of range_max_check() and don't jumpt to top level on + errors. + (tree_constant_rep::vector_assignment ()): Check return value of + index_check and don't jump to top level on errors. + (tree_constant_rep::check_vector_assign ()): Don't jump to top + level on errors. + (tree_constant_rep::do_matrix_assignment ()): Check return value + of index_check and don't jump to top level on errors. + + * src/tc-extras.cc (get_dimensions ()): Call error (sets error state) + but don't jump to top level on errors. + (fill_matrix): Return tree_constant() on error. + (identity_matrix): Likewise. + + * src/error.cc (error_state): New global variable, initialize to zero. + (error): Set it to one. + + * src/tc-index.cc (tree_constant_rep::valid_as_scalar_index ()): + Don't declare unused variable retval. + (tree_constant_rep::do_scalar_index ()): Return tree_constant() + instead of jumping to top level on error. + (tree_constant_rep::fortran_style_matrix_index): Don't jump to top + level on indexing or range errors. + (tree_constant_rep::do_vector_index ()): Likewise. + (tree_constant_rep::do_matrix_index ()): Likewise. + + * src/tc-inlines (range_max_check): Return -1 instead of jumping + to top level on error. + (index_check): Likewise. + + * src/utils.cc (check_dimensions): Call error, not warning, and + don't jump to top level. + + * src/tree-base.h (line_num, column_num): New data members for all + tree classes. + (line (), column ()): New virtual functions to access line and + column info. + + * src/lex.l (enum end_tok_type, enum plot_tok_type): Delete + declarations (now in token.h). + + * src/lex.h (YY_INPUT, YY_FATAL_ERROR, DO_COMMA_INSERT_CHECK, + TOK_RETURN, BIN_OP_RETURN): Move macro definition here, from + lex.l. Rename RETURN TOK_RETURN. + + * src/token.cc, token.h: New files that define a class for tokens + that includes line and column information. + + Wed Sep 29 11:15:12 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/octave.cc: Use GNU getopt to handle option parsing. + * src/getopt.h src/getopt.c src/getopt1.c: New files for GNU + getopt. + * src/Makefile.in: Add them to the appropriate lists. + + * src/utils.cc (raw_mode): Use the termios.h terminal driver + interface if it is available. + * configure.in: Check for termios.h + + * src/tree-plot.cc (tree_subplot_list::print (int, ostrstream&)): + If the data to be plotted is a string but it doesn't name a file, + try sending it to gnuplot directly. + + Tue Sep 28 16:06:42 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/QPSOL.cc (QPSOL::minimize (double&, int&, Vector&)): + Correct dimensions of work arrays, based on QPSOL source. + Pass ncon, which is max (1, nclin), not n, as the row dimension of + clin. + + * src/f-npsol.cc (linear_constraints_ok): Improve warning for the + case of constraints with zero dimensions. + (nonlinear_constraints_ok): Likewise. + + Mon Sep 27 01:20:50 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.75.3. + + * Makefile.in (dist): Make file permissions for distribution rw. + (binary-dist): Ditto. + (local-dist): Ditto. + + Sat Sep 25 15:29:20 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/pr-output.cc: Include stdio.h, for sprintf. + + * src/input.cc (octave_gets): Set octave_gets_line to NULL after + freeing it. + + * Version 0.75.2. + + * liboctave/Matrix.cc (Matrix::operator * (const ColumnVector&): + Correct dimension of return value. + (ComplexMatrix::operator * (const ComplexColumnVector&)): Ditto. + + Tue Sep 21 20:42:10 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/tree.cc (tree_identifier::assign (tree_constant&)): + Correctly handle case of hiding a function with a variable when + the variable has not been flagged as global. + tree_identifier::assign (tree_constant&, tree_constant*, int)): + Likewise. + + * src/variables.cc (force_global): When a variable is moved to the + global symbol table, mark it as global. + + * src/symtab.cc (symbol_record::symbol_record ()): Initialize + forced_global. + (symbol_record::clear_visible ()): Reset forced_global to zero. + (symbol_record::clear_all ()): Ditto. + (symbol_record::mark_as_forced_global ()): New function. + (symbol_record::is_forced_global ()): New function. + (symbol_record::alias ()): Also copy forced_global attribute. + + * src/symtab.h (symbol_record::forced_global): New private data + member, used to record when a variable has been explicitly + declared global. + + * src/lex.l (lookup_identifier): Look in current scope first. + + Mon Sep 20 03:15:52 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/parse.y, src/tree.cc, src/tree.h: Allow `for' command to + assign to an index expression, not just an identifier. + + * src/t-builtins.cc (builtin_clear (int, char **)): Don't delete + g_names twice. + + * src/symtab.cc (symbol_table::list (int&)): Make sure count is + initialized to zero. + (symbol_table::var_list (int&)): Ditto. + (symbol_table::fcn_list (int&)): Ditto. + + Sat Sep 18 04:06:42 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/lex.l, src/parse.y, src/parse.h: Use new global variable + past_plot_range to make gplot and gsplot smarter about + distinguishing plot ranges and literal matrices. + + Fri Sep 17 01:06:30 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.75.1 released. + + * src/f-qzval.cc: Include for DBL_EPSILON. + + * src/symtab.cc (symbol_record::save (ostream&, int)): Don't print + a warning for ans being undefined. Call warning to print the + message, and change the text to make it clearer. + (symbol_table::save (ostream&, int)): Don't crash if there aren't + any symbols to save. + + Thu Sep 16 00:21:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/t-builtins.cc (builtin_help): When trying harder to find + help for M-files, only insert the symbol into the global symbol + table if there really is an M-file of the given name in the path. + + Wed Sep 15 02:08:27 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.75. + + * src/Makefile.in (INCLUDES): Distribute defaults.h + (%.d: %.cc): Don't fail if we can't determine dependencies. + (DISTFILES): Include move-if-change. + + Tue Sep 14 21:23:20 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * scripts/perror.m: Use err, not info for fsolve section. + + Mon Sep 13 19:29:26 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/utils.cc (get_m_file_names): Call closedir(), not free(), to + dispose of directory structure. + + Sun Sep 12 19:07:36 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/tree-const.cc (tree_constant_rep::double_value): Rearrange + to avoid warning about reaching end of non-void function. + (tree_constant_rep::matrix_value): Ditto. + + * src/error.cc (panic): Declare volatile. + * src/utils.cc (jump_to_top_level): Declare as `void volatile', + not `volatile void'. + + * src/tree-const.cc (tree_constant_rep::complex_matrix_value): + Make it work even if the internal representation is really a real + or complex scalar or a real matrix. + (tree_constant_rep::complex_scalar_value): Make it work even if + the internal representation is really a real scalar. + + * src/f-syl.cc (syl): Delete ComplexMatrixLoad(). + Use complex_matrix_value(), not ComplexMatrixLoad(). + + * src/tree-const.cc (vector_of_empties): Renamed from empty_tree, + moved from f-syl.cc. + + * src/f-syl.cc (syl): Call vector_of_empties() instead of empty_tree(). + * src/f-qzval.cc (qzvalue): Ditto. + + * src/tree-const.h (tree_constant::is_empty): New inline function. + + * src/f-syl.cc (syl): Call is_empty instead of empty_arg. + * src/f-qzval.cc (qzvalue): Ditto. + * src/f-expm.cc (matrix_exp): Ditto. + + Thu Sep 9 22:40:16 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/Matrix.cc (Matrix::transpose): Make it work for empty + matrices. + (ComplexMatrix::transpose): Ditto. + + Mon Sep 6 04:56:50 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/tree-plot.cc (tree_subplot_list::print): If the plot data + is a string and it names a file, plot the data in the file. + + * src/octave.cc (execute_startup_files): Try harder to avoid + executing $HOME/.octaverc twice. + + * liboctave/DAE.cc (DAE::integrate (Vector&, Matrix&, Vector&)): + Add missing parameter in call to integrate() if no critical points + are specified. + + Sat Sep 4 16:18:49 1993 John W. Eaton (jwe@ward.che.utexas.edu) + + * src/octave.cc (execute_startup_files): Don't execute + $HOME/.octaverc twice. + + Mon Aug 30 11:25:12 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/t-builtins.cc (builtin_clear): Handle regular expressions. + + Fri Aug 27 07:25:32 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/RowVector.cc: + (RowVector::operator * (const ColumnVector& a) const): Fix brain-o. + + Wed Aug 18 00:29:09 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * list_primes.m: New M-file. + + * src/tc-index.cc (do_scalar_index): Handle two vector args of all + ones. + + Tue Aug 17 06:26:04 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/file-io.cc (process_printf_format): Use NINT for * modifier + argument. + + Mon Aug 16 19:30:09 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/mappers.cc: (arg (double)): Return pi for negative real values. + + Sun Aug 15 05:08:48 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/octave-hist.cc (mk_tmp_hist_file): New function, extracted + from do_edit_history. + (do_edit_history): Simplify using mk_tmp_hist_file. + (do_run_history): New function. + (edit_history_repl_hist): New function. + + * src/t-builtins.cc (builtin_run_history): New function. + + * src/builtins.cc (text_functions): Add run_history to the list. + + Fri Aug 13 16:04:09 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tzero.m: New M-file. + * abcdchk.m: New M-file. + * is_symmetric.m: Use tol and norm (A) to decide if A' is close + enough to A to be considered the same. + + Wed Aug 11 15:50:59 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.74.1. + + Merge in expm changes from A. S. Hodel : + + * f-expm.{h,cc}: New files. + * src/Makefile.in: Include them in the usual places. + * src/g-builtins.cc (builtin_expm): The new matrix_exp returns a + tree_constant by value. + Include f-expm.h + * src/tc-extras.cc (matrix_exp): Delete function. + + Tue Aug 10 20:06:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + Merge in qzval changes from A. S. Hodel : + + * f-qzval.{h,cc}: New files. + * src/Makefile.in: Include them in the usual places. + * src/g-builtins.cc (builtin_qzval): New function. + Include f-qzval.h + * src/g-builtins.h: Declare builtin_qzval. + * src/builtins.cc (general_functions): Add qzval to the list. + + * libcruft/eispack: New directory. + * libcruft/Makefile.in (SUBDIRS): Include it. + + Tue Aug 10 20:06:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * configure.in: Add libcruft/balgen/Makefile and + libcruft/eispack/Makefile to the list of files to frob. + + Tue Aug 10 20:06:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + Merge in syl changes from A. S. Hodel : + + * lyap.m: New M-file. + + * f-syl.{h,cc}: New files. + * src/Makefile.in: Include them in the usual places. + * src/g-builtins.cc (builtin_syl): New function. + Include f-syl.h + * src/g-builtins.h: Declare builtin_syl. + * src/builtins.cc (general_functions): Add syl to the list. + + Tue Aug 10 20:06:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/g-builtins.cc (builtin_balance): Fix typo in doc string. + + Tue Aug 10 20:06:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + Merge in givens changes from A. S. Hodel : + + * f-givens.{h,cc}: New files. + * src/Makefile.in: Include them in the usual places. + * src/g-builtins.cc (builtin_givens): New function. + Include f-givens.h + * src/g-builtins.h: Declare builtin_givens. + * src/builtins.cc (general_functions): Add givens to the list. + + * src/Makefile.in: (defaults.h) Quote substitutions. + Use %foo%, not @foo@ to mark substitution. + * src/defaults.h.in: Use %foo%, no @foo@ to do mark things to + substitute. + + * qzhess.m: New M-file. + + Tue Aug 10 20:06:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + Merge in balance changes from A. S. Hodel : + + * are, is_controllable.m, is_observable.m, is_square.m, + is_symmetric.m: New M-files. + + * Matrix.h (AEPBALANCE): New class. + (ComplexAEPBALANCE): New class. + (GEPBALANCE): New class. + * Matrix-ext.cc: Add init functions for balancing classes. + + * src/f-balance.{h,cc}: New files. + * src/Makefile.in: Include them in the usual places. + * src/g-builtins.cc (builtin_balance): New function. + Include f-givens.h + * src/g-builtins.h: Declare builtin_balance. + * src/builtins.cc (general_functions): Add balance to the list. + + * libcruft/balgen: New directory. + * libcruft/Makefile.in (SUBDIRS): Include it. + + Tue Aug 10 20:06:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * configure.in: Use AC_HAVE_LIBRARY to check for -lm. + + * src/Makefile.in (defaults.h): Quote substitutions. + + Mon Aug 9 13:30:07 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * README.NLP: New file. + * Makefile.in (DISTFILES): Distribute it. + + Sun Aug 8 19:05:48 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/move-if-change: New file. + * src/Makefile.in (DISTFILES): Distribute it. + (defaults.h): New rule. + (utils.o): Delete rule, since extra defines are no longer needed. + (INCLUDES): Distribute defaults.h.in. + * src/utils.cc: Include defaults.h to get DEFAULT_PAGER and + OCTAVE_HOME instead of depending on having them defined by the + compile command. + + * configure.in (DEFAULT_PAGER): Use AC_PROGRAMS_CHECK. + If we find less, add `-e' flag, so users won't have to type q to + quit paging. + + Sat Aug 7 13:34:06 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * f-*.cc: Renamed from tc-*.cc. (Use f- as the file prefix + because most of these functions are ultimately implemented in + Fortran, and, most importantly, it keeps them grouped together.) + * f-*.h: New files, for external declarations of visible functions + defined in f-*.cc. + * g-builtins.cc: Include them all. + * tree-const.h: Don't declare these functions as friends. + * Makefile.in: Cope with new names. + + * octave.cc (parse_and_execute (char *, int)): Don't declare static. + * octave.h: Declare it extern here. + * octave-hist.cc (do_edit_history): Use it here. + + * octave-hist.cc (do_edit_history): New function. + * t-builtins.cc (builtin_edit_history): Use it. + + * t-builtins.cc, t-builtins.h, builtins.cc: Rename edit to + edit_history. + + * octave-hist.cc (do_history): Print line numbers by default. + Allow quieter output with -q option. + + * g-builtins.cc (builtin_hess): Use DLD_BUILTIN macro to call hess. + * g-builtins.cc (builtin_schur): Likewise + + * tc-hess.cc (builtin_hess_2): Call hess with corrrect args. + * tc-schur.cc (builtin_schur_2): Likewise, for schur dude :-). + + * tc-fsqp.cc (builtin_fsqp_2): Fix typo. + + Thu Aug 5 23:14:01 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * input.cc (octave_read): Ensure that the last character in the + buffer is a new line. + + Wed Aug 4 19:25:54 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * parse.y (func_def2): Also warn if we encounter a function + definition with the same name as the script file we are reading. + + * tree.cc (tree_identifier::do_lookup): Always return NULL_TREE if + a script file was executed. + + Tue Aug 3 23:25:45 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * file-io.cc: Delete useless static keyword from File_info class + declaration. + * unwind-prot.cc: Likewise, for unwind_elem and saved_variable + classes. + * tc-rand.cc: Likewise, for enum rand_dist declaration. + * arith-ops.cc: Likewise, for enum Matrix_bool_op declaration. + * tree.cc: Likewise, for struct const_matrix_list declaration. + + Fri Jul 23 01:40:38 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * sysdep.cc (malloc_handler): Add missing arg to call to message(). + + Tue Jul 20 04:09:32 1993 John W. Eaton (jwe@june.che.utexas.edu) + + * Version 0.74 released. + + * doinstall.sh (version): Run `./octave -v' to get the version + number instead of grabbing it from version.h. + * Fail if we can't get a version number. + * Install ./octave, not src/octave. + + * Makefile.in (binary-dist): Don't depend on all. + * Link src/octave to ./octave. (Now that there's no source in + binary distributions, why have a src directory?) + + * file-io.cc (process_scanf_format): Rename local variable `i' to + `chars_from_fmt_str'. + * (process_printf_format): Likewise. + + * sighandlers.cc (can_interrupt): New global variable. + * (sigint_handler): Use it to decide whether to jump to top level. + * octave.cc (main): Set it after calling setjmp. + + * octave.cc (main): Declare saved_sigint_handler to be volatile. + + * tree.cc, tree-plot.cc, t-builtins.cc, pager.cc, g-builtins.cc, + file-io.cc: Terminate strstream strings with ends instead of just + using '\0'. + + * file-io.cc (process_scanf_format): Skip leading white space for + %s conversions. + * (fopen_file_for_user): Pass tree_constant arg by reference. + * (do_scanf): If doing fprintf, don't fail if first arg is a + string. + + Mon Jul 19 16:00:22 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * symtab.cc (pstrcmp): Declare to take char** args, not char*. + + Sun Jul 18 13:02:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * file-io.cc (return_valid_file): Pass arg by reference. + + * file-io.cc (fclose_internal, fgets_internal, fseek_internal): + Eliminate unnecessary casts to double. + + * file-io.cc (return_valid_file, fgets_internal, fopen_internal, + do_printf, do_scanf): Use is_string_type instead of doing the + comparison ourselves. + * g-builtins.cc (builtin_exist, builtin_getenv, + builtin_shell_command): Ditto. + * tc-colloc.cc (collocation_weights): Ditto. + * tc-extras.cc (eval_string, get_user_input): Ditto. + * tc-rand.cc (rand_internal): Ditto. + * tree-plot.cc (tree_subplot_list::print): Ditto. + * variables.cc (is_valid_function, octave_string_variable): Ditto. + + Thu Jul 15 02:29:03 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * doc/Makefile.in (TEXINFO): Distribute texinfo.tex too. + + * t-builtins.cc (load_variable): Warn if replacing local symbol + with global from file. + * Warn if variable is not marked as global in a file, but already + exists as a global symbol, then go ahead and load it as a global. + + Tue Jul 13 01:47:48 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * lex.l (lookup_identifier): Never alias to global here. + * tree.cc (do_lookup): Don't alias formal parameters to global. + * variables.cc (force_global): Likewise. + * symtab.cc (symbol_table::bind_globals): Likewise. + + * symtab.h (symbol_record::formal_param): New field. + * symtab.cc (symbol_record::mark_as_global_parameter): New function. + * (symbol_record::is_formal_parameter): Ditto. + * tree.cc (tree_identifier::mark_as_formal_parameter): Ditto. + * (tree_parameter_list::mark_as_formal_parameters): Ditto. + * parse.y (param_list): Use it to tag formal parameters. + * (func_def1): Ditto. + + * arith-ops.cc (DIVIDE_BY_ZERO_ERROR): On IEEE machines, allow + divide by zero errors to be suppressed. + * user-prefs.h (warn_divide_by_zero): New user preference. + * user-prefs.cc (warn_divide_by_zero): New function. + * builtins.cc (builtin_string_variables): Install it with default + value of true. + + * tree.cc (tree_multi_assignemnt_expression): Use tree_return_list + instead of tree_param_list. + * (tree_multi_assignment_expression:eval): Make it work. + + * tree.cc (tree_return_list): New class. Allow index expressions + and identifiers in return lists. + * (tree_matrix::to_return_list): Rename from to_param_list. + * parse.y (expression): Use it. + + * parse.y: Increment and decrement maybe_screwed_again instead of + just setting it to zero or one. + + Mon Jul 12 03:23:40 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tc-assign.cc (tree_constant_rep::do_matrix_assignment): Handle + case of lhs being of unknown type. + + * lex.l (check_for_garbage_after_fcn_def): Also ignore trailing + commas and semicolons. + + Sun Jul 11 00:08:20 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.73.1 released. + + * symtab.cc (symbol_record::alias): Also copy pointer to sv_fcn. + + Sat Jul 10 14:34:00 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (tree_function::eval (int, char **, int): New function. + + * symtab.cc (symbol_table::bind_globals): New function. + * tree.cc (tree_function::eval): Use it to associate local symbols + with global data. + + * symtab.cc (alias): Add optional parameter `force'. + + * Version 0.73 released. + + * pr-output.cc: Use D_NINT instead of NINT in some cases to avoid + overflow problems on systems that don't have IEEE Inf. + * mappers.cc (round): Likewise. Also avoids conversion of Inf to + INT_MAX on systems that do have IEEE Inf. + + * builtins.h: Remove definition of NINT. + * tree.h: Likewise. + * tree-const.h: Likewise. + + * utils.cc (NINT): Move function here and improve handling of + extreme values. + * (D_NINT): New function. + + * scripts/isempty.m: Don't require the number of rows and columns + to both be zero. + + Thu Jul 8 16:25:50 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.72.2. + + * configure.in: Do a better job of grabbing the last argument as + the target_host_type and avoiding setting it to things like + --prefix=/foo/bar + + * tree-const.cc (tree_constant_rep::save): Add default case for + mark_as_global switch to avoid warnings from gcc. + + * variables.cc (force_global): Cope with symbol table changes. + * tree.cc: (tree_identifier::do_lookup): Likewise. + * lex.l (lookup_identifier): Likewise. + * builtins.cc (install_builtins): Likewise. + + * symtab.cc, symtab.h: Massive internal rewrite. + + Wed Jul 7 02:18:01 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tc-assign.cc (tree_constant_rep::do_scalar_assignment): If rhs + is a scalar type, also handle case of lhs being of unknown type. + * Be sure to set the new type of the lhs. + + * tree-base.h: Don't include symtab.h. + * tree-const.h: Ditto. + + Tue Jul 6 22:47:28 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * parse.y (func_def2): Remove the function name from the top-level + symbol table if defining on command line (an M-file would never be + parsed if there was already an entry with the same name in the top + level symbol table). + + * parse.y (word_list_command): Allow clear without any arguments. + * tree.cc (word_list_command::eval): Handle word list commands + with no arguments. + + Mon Jul 5 14:43:30 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.72.1. + + * help.cc (operators): Document the double quote character. + + * lex.l (getting_help): Delete unused variable. + * (HELP_FCN): New exclusive start state. + * ({IDENT}{S}*): Set start state to HELP_FCN instead of setting + getting_help. + * ({IDENT}/{S}*=): Likewise. + + * symtab.cc (symbol_table::load): Delete unused function. + + * tree-const.cc (tree_constant::load): Return flag telling whether + the constant is global. + * t-builtins.cc (builtin_load): Handle global variables. + * (builtin_save): Likewise. + + * symtab.cc (symbol_record::save): Don't save builtin variables + (variables marked as eternal are assumed to be builtin). + + * symtab.cc (symbol_record::mark_from_global): New function. + * (symbol_def::undefine): Add optional argument to prevent + deleting symbol's definition. + * (symbol_table::undefine): If this variable has been marked as + defined from a global, call symbol_def::undefine with arg = 1. + * tree.cc (tree_identifier::do_lookup): If a local symbol is + defined from a global, mark it as such. + + * symtab.cc (symbol_record::define (symbol_record*)): Delete + unused function. + + * tree.cc (tree_identifier::do_lookup (int&)): Use operator= + instead of symbol_record::define(). + * variables.cc (force_global (char*)): Likewise. + + Sun Jul 4 01:27:44 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * symtab.cc (symbol_record): Define copy constructor and operator=. + + * builtins.cc (install_builtins): Make `i' and `j' read-only + functions. + + * symtab.cc (symbol_record::define): Respect read-only status of + variables and functions. + + Sat Jul 3 19:11:31 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * user-prefs.h (print_empty_dimensions): New user preference variable. + * user-prefs.cc (print_empty_dimensions): New function. + * builtins.cc (print_empty_dimesions): Make default value true. + * tree-const.cc (tree_constant_rep::eval): Use value here. + + * cond.m: Handle empty matrices. + * tc-det.m (determinant): Likewise. + * tc-inv.m (inverse): Likewise. + + * tc-hess.cc (hess): Use gripe_square_matrix_required instead of + calling error. + * tc-schur.cc (schur): Likewise. + + * builtins.cc (propagate_empty_matrices): Change default value to + true. + + * tree-const.cc (tree_constant_rep::eval): If a matrix has zero + rows or columns, also print the dimension along with the `[]' + symbol. + + * tree-const.cc (do_binary_op): If ok to propagate empty matrices, + go ahead and do the binary operation so that the result will have + consistent dimensions. + * (do_unary_op): Likewyse. + + * tc-extras.cc (get_dimensions): Don't force both nr and nc to + zero if one is. + * Matrix.cc, DiagMatrix.cc, ColVector.cc, RowVector.cc: Handle + matrices with zero dimensions in a more consistent fashion. + + Thu Jul 1 00:27:01 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * perror.m: New M-file. + + * LP.h, LP.cc: New interface for linear programmming. + * LPsolve.h LPsolve.cc: New files to implement linear programming + using lp_solve. + + * NPSOL.cc (minimize): Also return the vector of Lagrange + multipliers. + * tc-npsol.cc (npsol): Optionally return them. + + * QPSOL.cc (minimize): Also return the vector of Lagrange + multipliers. + * tc-qpsol.cc (qpsol): Optionally return them. + + * tc-qpsol.cc (qpsol): Make it work. + + Wed Jun 30 02:19:00 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * g-builtins.cc (builtin_lpsolve): New function. + * (builtin_qpsol): Ditto. + * builtins.cc (general_functions): Add them to the list. + + * tc-lpsolve.cc: New file. + * tc-qpsol.cc: Ditto. + * src/Makefile.in: Add them to the list of SOURCES and DLD_OBJECTS. + + Tue Jun 29 15:02:07 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/DAE.cc (integrate): If stop_time_set is false, reset + default value for info[3]. + * liboctave/ODE.cc (integrate): Likewise, reset default values of + iopt and itask. + + From Thorsten Ohl : + * config.guess: Add check for NeXT. + * configure.in: Add check for NeXT so that readline is configured + properly (really need to improve readline's configuration scheme). + * sysdep.cc (malloc_handler): New function for handling malloc + errors on NeXT systems. + + * octave.cc (main): Call sysdep_init before anything else. + + * sysdep.cc: New file for system dependent things. + + * octave.cc (initialize_globals): Only pass argv[0] since that's + the only thing that's used. + + Sat Jun 26 13:00:50 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (tree_builtin::eval (int, char**, int)): Don't panic if + called for something other than a text_fcn. + + * t-builtins.cc (builtin_cd): Rewrite to fix bogus memory + problems. + + Fri Jun 25 15:23:03 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * t-builtins.cc (builtin_cd): Don't delete value returned by + get_working_directory. + * g-builtins.cc (builtin_pwd): Likewise, and simplify. + + * utils.cc (make_absolute): Always create a new copy to return. + * utils.cc (change_to_directory): Don't delete pointer returned + from get_working_directory(). + * (file_in_path): Likewise. + + Thu Jun 24 16:48:38 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * lex.l ({IDENT}{S}*): Always insert a comma if the next token + doesn't look like some sort of operator, not just if + convert_spaces_to_comma is also true (it may have been turned off + by BIN_OP_RETURN). + + * tree-const.h (matrix_ptr): Delete function. + * tc-extras.cc (frobit): Delete function. + * (get_dimensions): New function. + * (identity_matrix): Completely rewrite. + * (fill_matrix): Likewise. + + Wed Jun 23 13:50:16 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Matrix-ext.cc (SCHUR::init): Also allow ord flag to be lowercase. + * (ComplexSCHUR::init): Ditto. + * tc-schur.cc (schur): Likewise. + + * Matrix-ext.cc (SCHUR::init): Declare sort as char, not char*, + and pass its address to Lapack. + * (ComplexSCHUR::init): Ditto. + + * Matrix-ext.cc (SCHUR::select_dig): Make static, and move ahead + of first reference in file. + * (SCHUR::select_ana): Likewise. + * (ComplexSCHUR::select_complex_dig): Likewise. + * (ComplexSCHUR::select_complex_ana): Likewise. + + * builtins.cc (install_builtins): Add `J' as an alias for `I'. + + * builtins.cc (install_builtins): Always create a new + tree_constant for each variable, since the symbol table doesn't + know how to share them. + + * tc-schur.cc (schur): Use warning and error functions instead of + writing directly to cerr. + * tc-hess.cc (hess): Ditto. + + * src/Makefile.in (DLD_OBJECTS): Include tc-schur.o and tc-hess.o. + * (SOURCES): Add tc-schur.cc tc-hess.cc. + + * Merge Schur and Hessenberg changes: + + Fri Mar 19 11:01:19 1993 R. Bruce Tenison (btenison@eng.auburn.edu) + + * src/builtins.cc: Changed schur definition to include one more + input. Also changed the help line description + * src/g-builtins.cc: Changed builtin_schur to accept two inputs + Also changed the information to explain ordered schur operation. + * src/tc-schur.cc Added extensions to the SCHUR and ComplexSCHUR + calls to pass extra paramater. Also added check for proper param. + * liboctave/Matrix.h: Modified declarations dgeesx and zgeesx to + accept address of select function. Modified class structures for + SCHUR and ComplexSCHUR to accept extra ordered schur param. + * liboctave/Matrix-ext.cc: Added extensions for the extra ordered + schur paramater. + + Wed Mar 17 15:23:14 1993 R. Bruce Tenison (btenison@eng.auburn.edu) + + * liboctave/Matrix-ext.cc (HESS and ComplexHESS): Added the + Hessenburg decomposition routines. + * liboctave/Matrix.h Added fortran lapack functions definitions + used in the Hessenburg procedure. + * src/g-builtins.cc (builtin_hess): Hessenburg Decomposition routine + added + * src/g-builtins.h (builtin_hess): Added extern definition. + * liboctave/Matrix.h Added classed HESS and ComplexHESS + * src/tree_const.h added defs for hess. + * src/tc-hess.cc (hess): New file for hess function. + + Tue Mar 16 10:46:32 1993 R. Bruce Tenison (btenison@eng.auburn.edu) + + * src/g-builtins.cc (builtin_schur): Schur Decomposition routine + added. + * src/g-builtins.h (builtin_schur): Added extern definition. + * liboctave/Matrix.h Added Classes SCHUR and Complex SCHUR, and + added defs for zgeesx and dgeesx (lapack schur decomp) + * liboctave/Matrix-ext.cc (SCHUR and Complex SCHUR): Ditto. + * src/tree-const.h added defs for schur. + * src/tc-schur.cc (schur): New file for schur function. + + Tue Jun 22 20:18:52 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * lex.l (check_for_garbage_after_fcn_def): New function + * parse.y (fcn_end_or_eof): If reading from an M-file, use it to + print warning about trailing garbage after the end of a function + has been found. + + Mon Jun 21 20:21:01 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tc-assign.cc (tree_constant_rep::assign): Handle case of + assignment to unknown constant too. + * (tree_constant_rep::do_scalar_assignment): Don't fail for + unknown_constant type. + * (tree_constant_rep::do_matrix_assignment): Likewise. + + * tree-const.cc (rows): Return 0 for unknown_constant type. + * (columns): Likewise. + + * tree.cc (tree_identifier::assign): Defer defining symbol until + assignment is successful. + * When creating a new dummy tree_constant to assign a value to, + leave it an unknown_constant type. + + * tc-assign.cc (do_scalar_assignment): If the right hand side + isn't a scalar, maybe try to resize instead. + * (do_matrix_assignment): For A(:,int) and A(int,:) cases, also + resize if left hand side is a scalar. + + * norm.m: Allow "fro" to work for scalars and vectors too. + + Sun Jun 20 01:17:03 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * NLConst.cc: New file. Move inline function definitions here + from NLConst.h. + + * Objective.cc: New file. Move inline function definitions here + from Objective.h + + * tree.cc (tree_word_list_command::eval): Call strsave for argv[0] + too, and delete argv before returning. + * (tree_builtin::eval): Likewise, for text functions with no + arguments. + + Sat Jun 19 01:37:09 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * octave.cc (parse_and_execute): Delete calls to delete_buffer + and switch_to_buffer, since that is taken care of by unwinding the + frame. + + Fri Jun 18 00:08:36 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (tree_matrix::eval): Delete useless direct = ptr->direct + and ptr = ptr->next statements from size-determining loop. + + * parse.y (opt_list): New rule. Replace all occurrences of list + with opt_list. + + * tree.cc: (tree_index_expression::eval (int, int)): Don't + complain if the index expression has an empty argument list. + + * octave.cc (initialize_globals): Check return value of + getenv ("HOME") against NULL, not the global variable + home_directory that we are trying to initialize. + + * tree.cc (tree_function::eval): Quick return if command list + is empty. + * parse.y (func_def3): Allow empty function bodies. + + Thu Jun 17 02:08:02 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (tree_while_command): Add constructor for case of + expression only. + * parse.y (statement): Allow empty command list for while commands. + + * parse.y (list): Allow empty commands in more places. This ups + the shift/reduce error count by 6, to 19. + + * octave.cc (execute_startup_files): Don't delete sd. + + * octave.cc (initialize_globals): Make copies of all strings. + * Store more humorous messages if things fail. + + Tue Jun 15 11:03:39 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tc-extras.cc (get_user_input): Finish incomplete change to get + input using readline. + + * tc-extras.cc (match_sans_spaces): New function. + * (get_user_input): Use it when checking to see if the user + entered a `quit' command. + + * liboctave/Makefile.in: Don't distribute Makedeps.in or include + Makedeps since we generate dependencies automatically now. + * configure.in: Don't create liboctave/Makedeps. + + Sun Jun 13 18:31:17 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/xdiv.cc (xdiv): Solve least-squares problem if system of + equations is not square, or if it is singular. + * (xleftdiv): Likewise. + + * liboctave/Matrix.h (Matrix::lssolve): New functions for + least-squares solutions of linear systems. + * (ComplexMatrix::lssove): Ditto. + + Sat Jun 12 19:07:07 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * libcruft/misc/xstopx.f (xstopx): Call dostop, not do_stop. + * libcruft/misc/dostop.c: Rename from do_stop.c + * (dostop): Likewise. + + * src/mappers.cc (xisnan (double)): Define even for systems that + don't have xisnan by always returning false. + * (xisnan (const Complex&)): Likewise. + + Fri Jun 11 19:54:58 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * doc/Makefile.in (install): Try harder to install info files. + + * libcruft/Makefile.in (install): Run ranlib on installed library. + * liboctave/Makefile.in (install): Ditto. + * readline/Makefile.in (install): Ditto. + + Thu Jun 10 00:15:41 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.72 released. + + * libcruft/*/*.f: Don't call xstopx with '' since some Fortran + compilers object to zero-length strings. + * libcruft/misc/xstopx.f (xstopx): Don't print empty strings or + single blanks. + * libcruft/misc/gen-d1mach.c (main): Likewise, for generated code. + + * test/Makefile.in (check): Set the Tcl variable OCTAVE_PATH. + * test/config/unix-octave.exp: Pass OCTAVE_PATH to OCTAVE using + the new -p flag. + + * builtins.cc (install_builtins): Use load_path instead of calling + default_path(). + + * octave.cc (load_path): New global variable. + * (initialize_globals): Initialize it here by calling default_path(). + * (main): Call initialize_globals() before getting command line + arguments. + * Accept new argument, -p PATH. + + * octave.cc (clean_up_and_exit): Don't print a message when Octave + exits. + + * doinstall.sh: Install M-files in $(libsubdir), not $(libdir). + * Use mkpath to create directories. + * Extract version from version.h. + + * Makeconf.in (version): Compute version just once. + + * (libsubdir): New directory that includes version number, for + installing M-files in (old versions of Octave may not be able to + understand new M-files). + + * src/Makefile.in, libcruft/Makefile.in, liboctave/Makefile.in, + doc/Makefile.in, readline/Makefile.in, scripts/Makefile.in + (install): Use mkpath to create directories. + * scripts/Makefile.in (install): Install M-files in $(libsubdir), + not $(libdir). + + * mkpath.c: New file, from Emacs-19. + * Makefile.in (mkpath): New rule. + * (all): Depend on mkpath + * (binary-dist): Distribute it. + + * config.guess: Update from bothner@cygnus.com. + + * lex.l ({QSTR}*[\n\']): Set start state to 0 or MATRIX, + depending on value of braceflag. + * ({DQSTR}*[\n\"]): Ditto. + + * tree.cc (tree_matrix::eval): Make sure that strings are nul + terminated. + + Tue Jun 8 16:08:10 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * octave.cc (clean_up_and_exit): Print `bye-bye' here. + * g-builtins.cc (builtin_quit): Not here. + + * pager.cc (terminal_columns): If screenwidth <= 0, return a + default value of 80 columns. + * (terminal_rows): Likewise for screenheight and a default of 24 + rows. + + * octave.cc (parse_and_execute): Don't fiddle with interactive + states since that screws paging output. + * tree.cc (parse_m_file): Likewise. + + * parse.y (input): For `simple_list error END_OF_INPUT' and + `error END_OF_INPUT' use ABORT_PARSE. + * Always accept `simple_list END_OF_INPUT'. + * Always abort for `END_OF_INPUT'. + + Mon Jun 8 13:55:41 1993 John C. Campbell (jcc@schoch.che.utexas.edu) + + * file-io.h (fopen_file_for_user): New function declaration. + + * file-io.cc (fopen_file_for_user): New function. + * (fgets_internal): If file doesn't exist open it for user, + also return (double) -1 on EOF + * (fseek_internal), (ftell_internal), (frewind_internal), + (do_printf): Ditto. + * (fopen_internal): Remove warn_on_not_open flag, limit warns. + + Mon Jun 7 00:28:13 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * file-io.cc (do_scanf): Use `type' wherever possible instead of + hardcoding name in messages. + * (do_printf): Ditto. + + * file-io.cc (fflush_internal): If flushing stdout, flush output + to the pager instead of calling fflush on a stream. + * (do_printf): Make fprintf (stdout, ...) exactly the same as + printf (...). + * (do_scanf): Make fscanf (stdin, ...) exactly the same as + scanf (...). + + * tc-extras.cc (get_user_input): Flush output to pager before + prompting for input. + + * libcruft/Makefile.in (DISTFILES): Distribute STOP.patch to show + the changes made to the Fortran sources. + + * libcruft/*/*.f: Replace STOP statements with calls to xstopx, so + that Fortran programs won't just quit on us. + + * libcruft/misc/xstopx.f: New file. + * libcruft/misc/do_stop.c: New file. + * libcruft/misc/Makefile.in (SPECIAL): Add do_stop.c to the list. + * (SPECIAL_DEPEND): Likewise, for do_stop.o. + * libcruft/Makefile.in (CRUFT_OBJ): Ditto. + + * lex.l (")"): Don't pop the top of the in_brace_or_paren stack if + it's empty. + + Sun Jun 6 00:41:28 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * liboctave/CollocWt.cc (init): Always compute Gaussian quadrature + weights instead of trying to compute Radau or Lobatto weights if + the endpoints are included. + * Really do compute roots and derivative weights corresponding to + Legendre polynomials if alpha and beta are zero, even if the + endpoints are included. + + Sat Jun 5 22:19:55 1993 John C. Campbell (jcc@schoch.che.utexas.edu) + + * builtins.cc (builtin_general_functions): Correct max arg counts + for fscanf, scanf, and sscanf. + + * g-builtins.cc (builtin_fscanf): Correct argument checks. + * (builtin_sscanf): Likewise. + + * file-io.cc (fopen_internal): Don't warn for opening new file. + + * file-io.cc (process_printf_format): Handle * for field width and + precision. + * Pass array of arguments and nargin instead of just one arg. + * (do_printf): Call process_printf_format() with new args. + + * file-io.cc (process_scanf_format): New function to handle scanf + dirty work. + * (do_scanf): New function. + + Sat Jun 5 14:09:41 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * lex.l (YY_FATAL_ERROR): Redefine here to keep from exiting on + fatal scanner errors. + + Fri Jun 4 16:35:25 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (tree_multi_assignment_expression::eval (int)): Check to + see if result is NULL before trying to use it. + + * tc-extras.cc (get_user_input): Call gnu_readline() to get input. + + Thu Jun 3 00:30:28 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * scripts/*.m: Convert single-quoted strings to use double quotes + since the manual says they are better. + + * Version 0.71.10. + + * doc/Makefile.in (DISTFILES): Distribute octave.info*. + + * Makefile.in (.fname): Delete target and move actions back to the + individual dist targets because this always needs to be done. + * (binary-dist): Strip src/octave. + + * doinstall.sh: New file, for binary distributions. + + Wed Jun 2 15:11:54 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Makefile.in (binary-dist): New target, just like dist, except + also distribute libcruft.a, liboctave.a, libreadline.a and + src/octave. + + * Makefile.in (.fname): New target. + * (links-for-dist): New target. + * (local-dist): Depend on .fname. + * (dist): Depend on .fname and use links-for-dist. + + * octave.cc: Move code to print startup message to just after + option processing so that any messages from startup files will + appear after the normal startup message. + + * utils.cc (get_site_defaults): New function. + * (OCTAVE_HOME): Provide default definition. + + * (SITE_DEFAULTS): Delete definition. + * octave.cc (execute_startup_files): Use get_site_defaults instead. + + * src/Makefile.in (utils.o): Define OCTAVE_HOME to be $(prefix) + here. + + * Makeconf.in: Don't define SITE_DEFAULTS or OCTAVE_M_FILE_DIR. + + * lex.l (do_string_escapes): Recognize `\"'. + + Tue Jun 1 01:28:20 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.71.9. + + * parse.y (maybe_convert_to_ans_assign): Greatly simplify. + + * file-io.cc (File_info): Convert from struct to proper class. + * (valid_mode): New function. + + * parse.y, parse.h, lex.l, tree-extras.cc (convert_to_ans_assign): + Delete unused variable. + + * builtins.cc (SEEK_CUR): Set to 1 to match (normal) system values. + * (SEEK_END): Likewise, set to 2. + + * statdefs.h: New file. + * Makefile.in (INCLUDES): Add it to the list. + * octave-hist.cc: Include it. + * variables.cc (identifier_exists): Likewise. + * utils.cc (is_newer): Likewise. + + * builtins.cc (SEEK_SET): New builtin varible. + * (SEEK_CUR): Ditto. + * (SEEK_END): Ditto. + * (stdin): Ditto. + * (stdout): Ditto. + * (stderr): Ditto. + + * lex.l (strip_trailing_whitespace): New function. + * ({IDENT}{S}*): Use it. + * ([^ \t\n\;\,]*): Fix to grab trailing spaces. + Use strip_trailing_whitespce() to delete it before returning. + + Mon May 31 21:00:00 1993 John C. Campbell (jcc@june.che.utexas.edu) + + * file-io.cc, file-io.h: New files to implement C-style file + handling and I/O functions. + * (do_printf): Move here from tc-extras.cc. + * (process_printf_format): Likewise. Also renamed from + process_format. + + Mon May 31 00:52:55 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * (tree_function::eval): Now that we can restore values, enable + code to give error for attempts to call functions recursively. + + * octave.cc (parse_and_execute): Use unwind-protect functions to + save and restore state. + * tree.cc (parse_m_file): Likewise. + * (tree_function::eval): Likewise. + * tc-extras (eval_string): Likewise. + + * unwind-prot.cc (saved_variable): New class to hold values of and + pointers to variables we want to restore. + * (restore_saved_variable): New function. + + * unwind-prot.cc (unwind_protect_int_internal): New function. + * (unwind_protect_ptr_internal): Ditto. + * (unwind_protect_var_internal): Ditto. + + * unwind-prot.h (unwind_prot_int): New macro. + * unwind-prot.h (unwind_prot_ptr): Ditto. + * unwind-prot.h (unwind_prot_var): Ditto. + + * variables.cc (symbol_out_of_date ()): Move here from tree.cc. + * (is_valid_function): Fix logic for finding a function + definition, including checking to see if the current symbol + definition is out of date. + + * tree-const.h (is_numeric_or_range_type): New function. + * tree-const.h (is_string_type): New function. + * tree.cc (tree_matrix::eval): Use !is_string_type() instead of + is_numeric_type() to decide that we've seen something other than + a string. + + * parse.y (maybe_warn_assign_as_truth_value ()): New function. + * user-prefs.h (warn_assign_as_truth_value): New preference. + * user-prefs.cc (warn_assign_as_truth_value ()): New function. + * builtins.cc (string_variables): Add it to the list. + + * tree.h (tree_simple_assignment_expression): Rename class from + tree_assignment_expression. + * (tree_assignment_expression): New class, derived from + tree_expression. + * (tree_simple_assignment_expression): Derive from new + tree_assignment_expression class, not tree_expression class. + * (tree_multi_assignment_expression): Ditto. + + Sun May 30 22:40:58 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/Makefile.in (%.d: %.cc): First remove target file, then + redirect into tmp file, and finally move tmp file to target file + only if creating tmp file was successful. + * liboctave/Makefile.in (%.d: %.cc): Ditto. + + Sat May 29 18:18:16 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (tree_constant *tree_multi_assignment_expression + ::eval (int print, int nargout)): New function. + * (tree_constant tree_multi_assignment_expression::eval (int print)): + Use it to do the real work. + + * tree.cc (tree_matrix::to_param_list ()): Also allow index + expressions as long as the argument list is missing. + + * parse.y (ans_expression): Now that assignments are just + expressions, don't convert expressions to assignemnts to `ans' if + they already are assignments. + * maybe_convert_to_ans_assign (tree *expr): New function to do the + real work. + + * tree.cc (tree_multi_assignment_expression:: + is_assignement_expression ()): Return 1. + + * tree-base.h (tree::is_index_expression ()): New virtual + function, returns 0. + * tree.cc (tree_index_expression::is_index_expression ()): Return 1. + + * tree.cc (tree_assignment): Construct from tree_index_expression + and a tree. + * (tree_index_expression::ident ()): New function. + * (tree_index_expression::arg_list ()): New function. + + * parse.y (variable): New rule, returns tree_index_expression. + + * parse.y: Rewrite assignment rules so that they are simply + expressions, not special cases. + * Rearrange fact and expression rules into expression (assignement + or simple expression), simple_expr (binary and postfix expressions + or secondary simple expression), and simple_expr1 (constants and + prefix expressions) rules. + * Delete fact rules. + + * parse.y: Make EXPR_EQ and EXPR_NE have the same precedence as + the other relational operators. + + Fri May 28 10:14:01 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * unix-octave.exp: Delete use of OCTAVEFLAGS. + + * test/config: New directory. + * test/config/Makefile.in: New file. + * test/config/unix-octave.exp: Rename from test/octave-init.exp. + * test/Makefile.in (SOURCES): Delete octave-init.exp from list. + * configure.in: Add test/config/Makefile to the list of Makefiles + to build. + + * utils.cc (send_to_plot_stream): Plot lines by default. + + Thu May 27 08:03:31 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * lex.l (\]): Don't pop the top of the in_brace_or_paren stack if + it's empty. + + * tree.cc (tree_matrix::eval): Make it work for single element + strings as well. + + * Version 0.71.8. + + * lex.l (next_token_is_postfix_unary_op): New function. + * ({SN}*\]{S}*): Use it as well, to decide whether to + insert a comma. + * ({S}+): Likewise. + * ({IDENT}{S}*): Likewise. + + Wed May 26 15:37:27 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * pr-otput.cc (pr_any_float): Use form() now that iostream + formatting bug has been fixed (libg++-2.3.1). + + Mon May 24 15:36:22 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (any_arg_is_magic_colon): New function. + * (tree_builtin::eval) Use it to avoid calling builtin functions + with `:' arguments. + + Sun May 23 14:07:19 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * g-builtins.cc (builtin_fprintf): Correct usage message. + + Fri May 21 10:35:40 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.71.7. + + * octave.cc (main): Always reset_parser() before every call to + yyparse(), not just on a longjmp return. + + * doc/Makefile.in (install): For now, don't try to install + anything. + + * lex.l ({S}+): Call next_token_is_bin_op() instead of + making the check in line. + * ({SN}*\]{S}*): Likewise. + * ({S}+): Likewise. + + * lex.l (looks_like_bin_op): New function. + * (next_char_is_space): Ditto. + * (next_token_is_bin_op): Ditto. + + * lex.l ({IDENT}{S}*): If we're in a brace context and the next + character is an open paren, set convert_spaces_to_comma to 0. + * tree-const.cc (convert_to_str): New function. + * g-builtins.cc (builtin_setstr): New function. + * builtins.cc (builtin_general_functions): Add it to the list. + + Thu May 20 17:56:15 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * doc/Makefile.in (SOURCES): Define to be all .texi files. + * (octave.info): Depend on $(SOURCES). + * (octave.dvi): New target. + * Don't distribute the man page. + + * lex.l ({S}+): If the next character is a plus or minus + followed by a space or tab, don't insert a comma. This makes + input like [1 + 1] == 2 and input like [1 +1] == [1 1]. + * ({SN}*\]{S}*): Likewise. + + * lex.l ({S}+): Use in_brace_or_paren and + convert_spaces_to_comma to decide whether to convert spaces to a + comma. + + * lex.l ({IDENT}{S}*): If we're in a brace context and the next + character is an open paren, set convert_spaces_to_comma to 0. + + * lex.l ({SN}*\]{S}*): Even if we're still inside some braces, + don't always push a comma onto the input. + + * lex.l ({SN}*\]): Also grab trailing spaces. + * ({IDENT}): Ditto. + + * lex.l (in_brace_or_paren): New stack to keep track of whether + the closest enclosing scope is a pair of braces or parens. When + we see a `[' or a `(', push a flag on the stack. When we see a + `]' or a `)', pop the top of the stack. + + * lex.l (convert_spaces_to_comma): New flag to control lexer behavior. + * (RETURN): Reset it to 1. + * (most other returns): Reset it to 1. + + * lex.l (BIN_OP_RETURN): New macro. Set convert_spaces_to_comma to 0. + * (most binary operators): Use it instead of RETURN. + + * lex.l (match_any): New function. + + Wed May 19 12:51:54 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Range.cc (nelem_internal): Don't allow ranges with more than + INT_MAX elements. Return -1 to indicate failure. + * tree-const.cc (tree_constant_rep::tree_constant_rep (double, + double, double)): Check nelem() to see if the range is valid. + + * pr-output.cc (all_elements_are_ints (Range&)): We only need to + check the base and the increment, not the limit too. + + * Range.cc (nelem_internal): Move function definition here from + Range.h and do a better job of determining the number of elements + in the range. + + Tue May 18 09:06:20 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.71.6. + + * tc-extras.cc (find_nonzero_elem_idx): Declare inner loop + iteration variables that are used inside later nested loops + in the outer enclosing scope to make this work for old and new + language definitions (see the ARM, chapter 19: "ANSI/ISO + Resolutions", 6.4/6.5: "The statement or statements immediately + controlled by the condition in a selection-statement, or an + iteration-statement introduce an implicit local scope". + * xpow.cc (elem_xpow (Matrix&, Matrix&)): Likewise. + + * tree.cc (tree_identifier::parse_m_file (char*, int)): Set + reading_script_file before calling parse_m_file and restore it + afterward. + + Mon May 17 20:04:54 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * octave.h (prog_name): Declare extern. + * (raw_prog_name): Ditto. + + * f2c-compat.sh (ctest.c): Also write a dummy MAIN_ since gcc 2.4 + doesn't seem to create an executable now if there are unresolved + externals, and the linker wants to see it on Suns. + + Thu May 13 01:06:18 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Makefile.in (DISTFILES): Include Makeconf.in. + + * configure.in: Set defaults for CFLAGS, CXXFLAGS, LDFLAGS, and + FFLAGS. + * Don't substitute CDEBUG, COPTIMIZE, FOPTIMIZE, or CXXOPTIMIZE. + * Use AC_PROGRAMS_CHECK instead of our own code for checking for a + Fortran compiler. + * Add Makeconf to the list of files to create. + + * src/Makefile.in (octave): Use ALL_LDFLAGS instead of LDFLAGS. + + * Makeconf.in (ALL_CFLAGS, ALL_CXXFLAGS, ALL_LDFLAGS): New macros. + * Allow the user to set CFLAGS, CXXFLAGS, and FFLAGS without + screwing things up. + * (CDEBUG, COPTIMIZE, FOPTIMIZE, CXXOPTIMIZE): Delete. + * Provide rules for making .o from .cc or .c files that use + ALL_CXXFLAGS and ALL_CFLAGS. + + * src/Makefile.in: Generate dependencies automatically using the + method described in the GNU make manual. + * liboctave/Makefile.in: Likewise. + + * All Makefile.in files: Set TOPDIR and include $(TOPDIR)/Makeconf. + * Makeconf.in: New file, for most configuration options. + + * tc-rand.cc (rand_internal): Return an empty matrix for rand (0). + + Wed May 12 01:32:36 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * octave.cc (clean_up_and_exit): Call close_plot_stream before + quitting. + + * Version 0.71.4. + + * pr-output.cc (octave_print_internal (ostrstream&, Matrix&)): + Handle wrapping columns neatly, respecting value of split_long_rows. + * (octave_print_internal (ostrstream&, ComplexMatrix&)): Ditto. + * (octave_print_internal (ostrstream&, Range&)): Ditto. + + * user-prefs.cc (split_long_rows): New preference variable and + function. + * builtins.cc (builtin_string_variables): Add to list with default + value == true. + + Tue May 11 02:20:43 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * pr-output.cc (pr_max_internal): Don't count Inf or NaN when + looking for max value. + * (pr_min_internal): Likewise, for min values. + + * pr-output.cc (pr_any_float): Merge pr_float and pr_imag_float. + + * pr-output.cc (any_element_is_inf_or_nan (Matrix&)): New function. + * (any_element_is_inf_or_nan (ComplexMatrix&)): New function. + * (all set_format functions (except Range)): Consider Inf and NaN + when computing field width (we'll either print "Inf" (possibly + with a sign) or "NaN"). + + * pr-output.cc (pr_float): Handle Inf and NaN. + * (pr_imag_float): Ditto. + + * pr-output.cc (set_format_style): Make format short set precision + to 3 and max field width to 8. + + * pr-output.cc (pr_float): Don't print a sign for -0.0. + * (pr_imag_float): Ditto. + + * pr-output.cc (all set_format functions): Return the actual field + width computed or 0 if free format. For complex, return both real + and imaginary field widths. + * Include pager.h for terminal_rows() and terminal_columns(). + + * pr-output.cc (pr_complex): If imaginary part is -0.0, print a + minus sign but convert the value to 0.0 before printing. + + * octave.cc (parse_and_execute (FILE *, int)): Don't use readline + to read commands from files. + * (parse_and_execute (char *, int)): Set reading_script_file + before calling get_input_from_file. + + * Version 0.71.3. + + * src/Makefile.in (deps): New target. + * Update dependencies using the output from running `make deps'. + + * pr-output.cc (set_output_prec_and_fw): New function. + * (set_format_style): Use it. + * (set_format functions): Use user_pref variables for precision + and field width. + + * variables.cc (octave_real_scalar_variable): New function. + * buitlins.cc (builtin_string_varaibles): Add output_precision and + max_field_width to the list (really need a separate list for + numeric values...). + * user-prefs.cc (set_output_max_field_width): New function to be + called when output_max_field_width changes. + * (output_precision): Likewise, for output_precision. + + * sighandlers.cc (pipe_handler_error_count): New global variable. + * (sigpipe_handler): Use it to keep from printing more than one + broken pipe message between prompts. + * (input.cc): Reset pipe_handler_error_count before printing the + prompt. + + Mon May 10 13:06:52 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * sighandlers.cc (sigpipe_handler): Issue warning and return + instead of aborting. + + * user-prefs.cc (all sv_* functions): Don't delete previous value + of a preference string if the new value is bogus. + + * user-prefs.cc (all sv_* functions and all functions that handle + user preferences): Return 0 for success, -1 for failure. + * symbtab.cc (symbol_record::define): Check return value of sv_fcn + and restore previous value on failure. + * symtab.h (sv_Function typedef): Change to return int, not void. + * builtins.h (sv_Function typedef): Ditto. + + Sun May 9 18:25:00 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * user-prefs.cc (all sv_* functions): Issue a warning if the user + gives us something that's not a string. + + Sat May 8 23:40:59 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * ColVector.cc (ColumnVector::min): Upper loop limit is len, not 0. + * (ComplexColumnVector::min): Ditto. + * RowVector.cc (RowVector::min): Ditto. + * (ComplexRowVector::min): Ditto. + + Fri May 7 18:41:29 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * pr-output.cc (set_format_style): New function, extracted from + builtin_format(). + * t-builtins.cc (builtin_format): Call set_format_style to do real + work. + + * pr-output.cc: New file for special formatted printing funcions. + * tree-const.cc (tree_constant_rep::eval): Use new functions. + + * user-prefs.cc (sv_pager_binary): New function. + * user-prefs.h (user_preferences) Add new field, pager_binary. + * builtins.cc (builtin_string_variables): Add PAGER to the list. + * utils.cc (default_pager): New function. + * Makefile.in: Define DEFAULT_PAGER for utils.cc, not pager.cc. + * pager.cc (get_pager): Delete function. + * Use user_pref.pager_binary instead of calling get_pager(). + + Thu May 6 11:05:06 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * pager.cc (pager_buf): Declare as static pointer to ostrstream. + * (initialze_pager): Delete old pager_buf and create new one for + each batch of output. This is needed because once str() is called + for pager buf, it will no longer grow. + + * pager.cc (maybe_page_output): Take care of deleting buffer after + str() is called. + * (flush_output_to_pager): Likewise. + * t-builtins.cc (builtin_ls): Likewise. + * (builtin_set): Likewise. + * (builtin_show): Likewise. + * tc-extras.cc (process_format): Likewise. + * (process_format): Likewise. + * tree-plot.cc (tree_plot_command::eval): Likewise. + + Wed May 5 10:45:39 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * g-builtins.cc (builtin_shell_command): Buffer characters with an + ostrstream and call maybe_page_output instead of writing directly + to cout. + * (builtin_warranty): Likewise. + * tc-extras (do_printf): Likewise. + * tree.cc (tree_identifier::eval): Likewise. + * (tree_assignment_expression::eval): Likewise. + * (tree_multi_assignment_expression::eval): Likewise. + * tree-const.cc (tree_constant_rep::eval): Likewise. + * t-builtins.cc (builtin_help): Likewise. + * (builtin_ls): Likewise. + * (builtin_who): Likewise. + + * user-prefs.h user-prefs.cc (page_screen_output): New preference. + * builtins.cc (string_variables): Add to list with default value + of true. + + * input.cc (octave_gets): If interactive, call flush_to_pager() + before prompting. + + * utils.cc (terminal_rows): Move to pager.cc + * (terminal_columns): Likewise. + * (get_pager): Likewise. + + * pager.h, pager.cc: New file to handle pager stuff. + * src/Makefile.in: Fix things to distribute and compile them. + + * libcruft/Makefile.in (CRUFT_OBJ): Strip $(srcdir)/ and convert + from .f to .o in two steps since some versions of GNU make strip + the leading ./ from the output of $(wildcard), causing my pattern + match to fail if compiling in the source tree. + + Tue May 4 09:13:52 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * symtab.cc (symbol_record::define (symbol_record *)): Delete old + name before saving new name. + * (symbol_record::document): Likewise, for var.help and fcn.help. + + * parse.y (ABORT_PARSE): Renamed from DO_ABORT. + + Mon May 3 01:00:04 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc: Define destructors for every class in tree.h. It + appears that it should always be ok to delete everything in a + command tree once we're done executing it. Function definitions + are still ok because the parser doesn't set global_command to the + tree_function we've built (that's saved somewhere in the symbol + table and shouldn't be deleted until we clear or redefine the + function). + + * utils.cc (pathstring_to_vector): Do memory management here so + callers don't have to. + * (default_path): Likewise. + + * utils.cc (make_absolute): Return current_path (not a copy) since + it is static. + * (get_working_directory): Return the_current_working_directory + (not a copy) since it is global. + + * utils.cc (cleanup_tmp_files): Delete filename when done. + + * parse.y: Replace output to cerr with calls to error() or warning(). + * DO_ABORT: New macro. Use it instead of YYERROR for errors that + we detect, and call yyerror since bison doesn't. + * (param_list1): Detect invalid parameter lists. + * (yyerror): Don't print pointer if it is past the end of the line. + + Sun May 2 13:03:09 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tc-extras.cc (process_format): Use ostrstream instead of a + fixed-size character string to buffer the format. + + * utils.cc (terminal_rows): Get info from readline variable + instead of hardcoded constants. + * (terminal_columns): Likewise. + + * utils.cc (maybe_page_output): New function. + * t-builtins.cc (builtin_help): Use it. + * (builtin_who): Ditto. + * Don't include procstream.h anymore since we no longer need it. + + * utils.cc (jump_to_top_level): Call run_all_unwind_protects () + before jumping back to the top level. + + Sat May 1 20:59:12 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * unwind-prot.cc unwind-prot.h: New files to implement memory + cleanup stuff. + * src/Makefile.in: Distribute them. + + * Version 0.71.2. + + * computer.m: Delete file. + * scripts/Makefile.in (computer.m): Add $(srcdir)/ prefix to + computer.in. + + Fri Apr 30 17:03:04 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Matrix.h (::row (int i)): New function for extracting a + row of a matrix where CLASS is one of Matrix, DiagMatrix, + ComplexMatrix, or ComplexDiagMatrix. + * (:: column (int i)): Likewise for columns. + * (::row (char *s)): Likewise, but selection is done with a + character string. Currently we accept anything beginning with `F' + or `f' to mean the first row and anything beginning with `l' or + `L' to mean the last row. + + Wed Apr 28 14:23:49 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * scripts/computer.in: New template file for computer.m. + * scripts/Makefile.in (computer.m): Generate a custom computer.m + file using $target_host_type. + * (clean): Delete computer.m. + + * configure.in: If last argument is not empty, use its value as + the TARGET. + * If we aren't given a TARGET, use config.guess to find one. + * Substitute target_host_type. + + * config.guess: New file, taken from gdb distribution. + * Makefile.in: Distribute it. + + * tree-const.cc (force_numeric): New parameter, force_str_conv to + allow us to ignore user preference on string to numeric + conversion. + * (make_numeric): Likewise. + + * tree.cc (tree_matrix::eval): Allow range constants in matrix + lists by simply converting them to matrices. + * Ditto for string constants. + + Tue Apr 27 17:21:12 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * utils.cc (smells_like_X11): Delete unneeded function. + * builtins.cc (install_builtins): Don't initialize + graphics_terminal since it's no longer needed. + + * utils.cc (pathstring_to_vector): Call tilde_expand on each + element of the path. + + * mappers.cc: Include float.h for DBL_MAX. + + Wed Apr 21 19:31:12 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * mappers.cc (xisnan (Complex&)): Rename from isnan. + * builtins.cc (mapper_functions): Use xisnan instead of isnan. + * (install_builtins): Special case for linux for geenerating + infinity and NaN. + + Mon Apr 19 14:10:55 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.71.1 released. + + * symtab.cc (char **sorted_list (int& count)) New function. + * (char **sorted_var_list (int& count)): Ditto. + * (char **sorted_fcn_list (int& count)): Ditto. + * t-builtins.cc (builtin_who): Check symbol count too. + + * utils.cc (send_to_plot_stream): Check is_open(), not just the + state of the stream. + * (close_plot_stream): Likewise. + + * procstream.cc, procstream.h: Rewrite, taking a hint from the GNU + fstream class. + + Sun Apr 18 17:40:54 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * t-builtins.cc (builtin_help): Don't call list_in_columns if + there isn't anything to list. + + Fri Apr 16 20:57:15 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Makefile.in (DISTDIRS): List dld here. + * (DISTSUBDIRS): Not here. + + Thu Apr 15 12:17:08 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.71 released. + + * scripts/*.m: Improve help messages for most files. + + * libcruft/Makefile.in: Make libcruft.a here. + * libcruft/Makerules.in: Not here. + + * PLOTTING: New file. + * Makefile.in: Add it to the list of files we distribute. + + * g-builtins.cc (builtin_shell_command): New function. + * builtins.cc (general_functions): Add it to the list. + + * procstream.h, procstream.cc (iprocstream): New class. + + * lex.l ({SN}*\]): Maybe insert a comma after reading a `]'. + + * t-builtins.cc (builtin_load): Do tilde expansion for the file name. + * (builtin_save): Ditto. + + Wed Apr 14 10:40:44 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (tree_function::eval): Until we have a proper call frame + unwinding scheme, comment out previous change. + + * tree.cc (tree_matrix::eval): Brain Transplant. + * (tree_matrix::length): New function. + + * tree-base.h (matrix_dir): Delete md_none, md_left, and md_up. + The only valid values are md_unknown, md_right, and md_down. + + Tue Apr 13 20:07:25 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.h (tree_function::call_depth): New member variable. + * tree.cc (tree_function::eval): Check it to make recursive + function calls fail (waiting for proper symbol table handling). + + * utils.cc (pathstring_to_vector): Don't prepend `.' here. We do + that already in default_path() if the user hasn't given us a + loadpath. + + * t-builtins.cc (builtin_help): Get help for M-files even if they + haven't been compiled yet. + * List M-files we find in the loadpath. + + * utils.cc (get_m_file_names): Split into two functions, add + parameter to specify whether .m suffix is deleted. + + * lex.l (grab_help_text): New function. + * (beginning_of_function): New global variable. + * (%|#): Call grab_help_text() if at beginning of a function. + * tree.cc (tree_identifier::document): New function. + * parse.y (func_def2): Use it. + * (help_buf): New global buffer for help text. + + Mon Apr 12 00:31:09 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * utils.cc (get_m_file_names): New function. + * variables.cc (make_name_list): Use it. + + * t-builtins.cc (list_in_columns): Put output on an strstream + instead of in a String. + * (builtin_help): Use an strstream instead of a String for buffering. + * (builtin_who): Likewise. + + * g-builtins.cc (builtin_keyboard): New function. + * builtins.cc (general_functions): Add to list. + + * tc-extras.cc (get_user_input): If the user enters `exit', + `quit', or `return', return instead of eval'ing the string. + * Don't abort on empty input. + * Add additional argument to handle debugging via new `keyboard' + function. If doing debugging, keep reading until we see `exit', + `quit', or `return'. + + * menu.m: New M-file. + + * New top level plotting functions: + + plot.m semilogx.m semilogy.m loglog.m polar.m + title.m xlabel.m ylabel.m grid.m bar.m + stairs.m mesh.m meshdom.m contour.m + + * New internal plotting functions: + + plot_int.m plot_2_s_s.m plot_2_v_v.m plot_2_v_m.m + plot_2_m_v.m plot_2_m_m.m polar_int.m + + * New utility functions: + + is_scalar.m is_vector.m is_matrix.m + + Sun Apr 11 11:10:29 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * t-buitlins.cc (builtin_ls): New function. + * builtins.cc (text_functions): Add it to the list under the names + `ls' and `dir'. + + Sat Apr 10 15:13:05 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * procstream.cc (oprocstream::close): Set badbit for stream after + it is closed. + + * utils.cc (close_plot_stream): New function. + * g-buitlins.cc (closeplot): New builtin function. + * builtins.cc (general_functions): Add to list. + + * lex.l (cant_be_identifier): New cruft to properly handle the + plot command's `using', `title', and `with' keywords. + + Fri Apr 9 09:38:25 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * configure.in: Warn if it looks like gnuplot isn't installed. + + * utils.cc (send_to_plot_stream): Check the user's preference for + the gnuplot binary. + + * user-prefs.cc (sv_graphics_terminal): Delete function. + * user-prefs.h (graphics_terminal): Delete variable. + + * tree-plot.cc (tree_subplot_using::print): Add argument to allow + checking of columns given in using command and use it. + * (tree_plot_command::eval): Change caller. + + * parse.y (title): Allow plot title to be any expression. + * tree-plot.cc (subplot_list): Likewise. + + * tree-plot.cc (tree_plot_command::eval): Don't let lusers try to + make 2D parametric plots, since that seems to crash gnuplot. + + * tree.cc (tree_identifier::parse_m_file): Don't try to stash + m-file name or time parsed if we were actually executing a script + file. + + * sombrero.m: New M-file to demonstrate 3D plotting. + + * parse.y (plot_options): Allow them to be specified in any order. + + * g-builtins.cc (builtin_purge_tmp_files): New function. + * builtins.cc (general_functions): Add to list. + + * g-builtins.cc, g-builtins.h (builtin_plot): Delete. + * builtins.cc (general_functions): Delete entry for builtin_plot. + + * t-builtins.cc (builtin_set): Check to see if the user is setting + up parametric plotting. + * tree-plot.cc (parametric_plot): New global variable. + * tree_const.cc (save_three_d): New function. + * tree-plot.cc (tree_subplot_list::print): Handle 3D plots. + + * Makefile.in: Delete everything having to do with distributing or + making gnuplot. + * configure.in: Likewise. + + Thu Apr 8 10:02:52 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * utils.cc (send_to_plot_stream): New function. Move declaration + of plot_stream to utils.cc and make static. + + * t-builtins.cc (builtin_set): New function. + * (builtin_show): Ditto. + + * lex.l: Handle set command. + * (doing_set): Yet another global variable to control behavior of + the lexer. + + * tree-plot.cc (tree_subplot_using::print): Print warning if scanf + format string is given. + + * parse.y (ranges1): Allow lower and upper bounds to be optional. + * tree-plot.cc (tree_plot_range::print): Make it work. + + * tree-plot.cc: New file, extracted from tree.cc. + + * sighandlers.cc (install_signals): New function. + * (*_handler): New set of functions to handle signals that would + otherwise cause us to abort. + * (my_friendly_exit): Call exit from most signal_handlers to clean + up tmp files, etc. + + * lex.l (do_string_escapes): Correctly handle '' quotes. + * Warn about unrecognized escape sequences but convert them to the + escaped character anyway. + * (EXPON): New definition. Use it and ? qualifier to shorten the + expressions for matching numbers. + * (ECHAR): New definition. Use it to correctly match + backslash-escaped characters in strings. + * Definitions: Surround multi-character definitions in ()'s to + avoid potential problems with things like {DEF}*. + * (QQ): Rename from DQ. + * (DQSTR): New definition for strings in double quotes. + * (DQSTRING): New start state. Recognizing a naked " puts us here. + * ("\n"): Turn off quote_is_transpose at the beginning of each line. + * Use error functions instead of writing messages directly. + * Don't include iostream.h -- we don't need it now. + * Do include error.h. + + Wed Apr 7 13:12:17 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * sighandlers.h, sighandlers.cc: New files for signal handling + functions. + * Makefile.in: Include them in the usual places. + * octave.cc (interrupt_handler): Move to sighandlers.cc and rename + to sigint_handler. + + * utils.cc (mark_for_deletion): New function. + * octave.cc (cleanup_tmp_files): New function. + * octave.cc (main): Register cleanup_tmp_files with atexit + (on_exit for sun). + + * Stack.h: Template based stack class converted from libg++ + genclass files. + * SLStack.h: Likewise. + * (SLStack::pop): Avoid apparent bug in SLList::remove_front. + + Tue Apr 6 10:01:52 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * lex.l (almost_match): New function. + * (plot_style_token): New function. + + * t-buitlins.cc: Include procstream.h instead of procbuf.h. + * (builtin_help): Simplyfy opening of process output stream. + * (builtin_who): Likewise. + + Mon Apr 5 13:48:20 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tc-extras.cc (tree_constant_to_scalar): Move to tree-const.cc + and make it a member function called to_scalar. + * (tree_constant_to_vector): Likewise. + * (tree_constant_to_matrix): Likewise. + + * procstream.h, procstream.cc: New files/classes that implement + an ostream to a process. Built on top of procbuf from libg++. + * src/Makefile.in: Add them to the lists of files/objects. + + Sat Apr 3 23:11:56 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Lots of clean-up changes to parse.y, tree.cc, tree.h, and + tree-base.h. Use more specific types than just for + nonterminals. This allows us to have fewer virtual functions in + the base class. Safer. Cleaner. Should have always been this + way... + + Fri Apr 2 10:04:32 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * parse.y, lex.l: Fix grammar to accept plot command very similar + to the gnuplot plot command. + + Wed Mar 31 13:11:56 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (eval_undefined_error): Until we can figure out how to + clear names without causing problems later on, just remove the + symbol name. + + * tree.h (tree_plot_command): New class. + * (tree_plot_limits): Ditto. + * (tree_plot_range): Ditto. + * (tree_subplot_list): Ditto. + * (tree_subplot_using): Ditto. + * (tree_subplot_style): Ditto. + + * tree-base.h (command_type): Add plot_command to list. + + Mon Mar 29 09:53:50 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * find_exec.c (ABSOLUTE_FILENAME_P): Also return true if the + given filename begins with `.'. + + * DAE.cc, DAE.h, DAEFunc.h, tc-dassl.cc: Make sure all calls to + dassl and the user-supplied functions have consistent argument + lists. + + * octave.cc (raw_program_name): New global variable to hold the + unprocessed argv[0]. This is to help dld find the absolute path + to the executing program. + * (initialize_globals): Pass in argc and argv from main. + Initialize raw_prog_name. + + * builtins.cc (general_functions): Correct help message for dassl. + * g-builtins.cc (dassl_usage): Likewise. + + * src/Makefile.in: Lots of changes to make things work with or + without dld. + * Makefile.in: Likewise. + * configure.in: Likewise. + + * dld: New directory, containing our copy of the dld sources. + + * dynamic-ld.cc, dynamic-ld.h: New files to implement dynamic + loading functions. + * src/Makefile.in: Add them to the distribution, compile them if + doing dynamic loading. + + Sun Mar 28 11:03:15 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * configure.in: When looking for Fortran compilers, check for fc + last to avoid confusion with some vendor's /bin/sh fc builtin. + * Handle new argument --with-dld. + + * g-builtins.cc (builtin_warranty): Add 1993 to list of copyright + dates. + + Sat Mar 27 17:58:23 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tc-extras.cc: Rename from tree-extras.cc. + * tc-colloc.cc, tc-dassl.cc, tc-det.cc tc-eig.cc, tc-fft.cc, + tc-fsolve.cc, tc-fsqp.cc, tc-ifft.cc, tc-inv.cc, tc-lsode.cc, + tc-lu.cc, tc-npsol.cc, tc-qr.cc, tc-quad.cc, tc-rand.cc, + tc-svd.cc: Split individual functions from tree-extras.cc. + + * g-builtins.cc (npsol_usage): Improve message. + * (dassl_usage): Likewise. + * (builtin_lsode): Likewise. + * (builtin_fsolve): Likewise. + * (builtin_quad): Likewise. + * builtins.cc (general_functions): Improve corresponding messages. + + * libcruft/fftpack: New directory for fftpack functions. + * libcrutf/fftpack/*.f: Add implicit double precision (a-h,o-z) at + the top of every subroutine. + + * tree-extras.cc (fft): Allow propagation of empty matrices. + * (ifft): Ditto. + + * Matrix.cc (Matrix::fourier): New function. + * (Matrix::ifourier): Ditto. + * mx-inlines (make_complex): New function. + * tree-extras.cc (fft): Use Matrix::fourier instead of doing real + to complex conversion here and calling ComplexMatrix::fourier. + * (ifft): Likewise, for ifourier. + + Sat Mar 27 17:56:59 1993 Fook Fah Yap (ffy@eng.cam.ac.uk) + + * Matrix.cc (ComplexMatrix::fourier): New function for fft. + * (ComplexMatrix::ifourier): New function for inverse fft. + + * builtins.cc (general_functions): Add fft and ifft to the list of + builtin functions. + + * g-builtins.cc (fft): New function. + * (ifft): Ditto. + + * tree-extras.cc (fft): New function. + * (ifft): Ditto. + + Sat Mar 27 13:53:39 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * octave.cc (usage_string): New file scope constant. + * (getopt_option_string): Ditto. + + * error.cc: Declare all arguments const since we don't change them. + + * utils.cc (print_str_or_null): Delete unused function. + * utils.h: Delete declaration. + + * tc-assign.cc, tc-index.cc, tc-inlines.cc, tree.cc, + tree-const.cc: More error message cleanups. + + * tree-const.cc (print_if_string): Don't write to cerr + unconditionally. + + Fri Mar 26 22:00:18 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-extras.cc (min): Avoid function calls as arguments for MIN. + * (column_min): Ditto. + * (max): Likewise, for MAX. + * (column_max): Ditto. + + * tree-const.h (NINT): Make it an inline function instead of a + macro. + + * tree-extras.cc (fill_matrix (tree_constant&, double, char*)): + Convert to scalar type for complex values too. + + * error.h (panic_impossible): New macro to be used in place of + assert (0) calls. + * All .cc files: Replace calls to assert (0) and abort () with + panic_impossible (). + + * Many .cc files:: Replace many instances of `cerr << ...' with + calls to gripe() functions. + + * gripes.h, gripes.cc: New functions for reporting common errors. + * Makefile.in: Include them in the usual places. + + Thu Mar 25 18:42:49 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Many .cc files:: Replace many instances of `cerr << ...' with + calls to error() functions. + + * error.h, error.cc: New functions for reporting errors in a + consistent way. + * Makefile.in: Include them in the usual places. + + Wed Mar 17 17:29:44 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * symtab.cc (symbol_table::save): New functions. + * t-buitlins.cc (builtin_save): Use new functions for saving + symbols. Handle case of saving all variables. + + * g-builtins.cc (builtin_pause): If one argument is given, pause + for that many seconds before continuing. Otherwise, wait for user + input. + + * symtab.cc (clear): Actually delete undefined symbol_records and + remove their names from the list. + + * lex.l (lookup_identifier): New function. Avoid putting global + names in the local symbol table. + * ({IDENT}): Use it + * ({IDENT}/{S}*=): Ditto. + + * tc-index.cc (do_scalar_index (tree_constant*, int)): Make + indexing like a([1,1,1,1]) work for scalars. GAG. + + Tue Mar 16 20:08:23 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * t-buitlins.cc (builtin_cd): Call tilde_expand (from readline) on + the argument. + + * lex.l (discard_until): Delete unused function. + * When reading numbers, abort if scanf fails to read a number that + we think it should. + * (IDENT): New macro to match identifiers. + * ([_a-zA-Z][_a-zA-Z0-9]*): Use the / operator for trailing + context and split into two cases instead of trying to do the + lookahead ourselves. + + * lex.l (do_comma_insert_check): Return the value yyleng had + before yyinput() is called. + * (DO_COMMA_INSERT_CHECK): New macro. This avoids the use of + unput() in do_comma_insert_check() since there seems to be a bug + in flex when calling unput() for '\n'. + + Note that this change is necessary if we want to use yyless() + since we cant call yyless() from outside of yylex(), because + Flex's yyless() is a macro that uses some variables local to + yylex(). + + Mon Mar 15 11:03:43 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (tree_matrix::eval): Undo part of previous change to + make a = [1,2;3,4]; [a,a;a,a] work again. + + * parse.y (input): Don't abort for simple_list followed by EOF. + + Sun Mar 14 14:38:56 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * RowVector.cc (RowVector::operator << ()): Insert a space between + each element. + * (ComplexRowVector::operator << ()): Ditto. + + * g-buitlins.cc (plot): Don't declare plot_prog or plot_term as + static, and don't delete them. + + * Matrix.h (all checkelem functions): Don't check for range errors + if NO_RANGE_CHECK is defined. + + Sat Mar 13 10:18:51 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Matrix.cc (ComplexMatrix::prod): Make it work. + + Thu Mar 11 00:08:09 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Matrix.h (ellum): Delete function. + * Declare and define new const elem, checkelem, and operator() + functions. + + * ColVector.cc, DiagMatrix.cc, RowVector.cc, Matrix.cc, ODE.cc, + LinConst.cc, FEGrid.cc, DAE.cc, Bounds.cc, FEGrid.h: + Change all callers. + * tree-const.cc, tree-extras.cc, xdiv.cc, xpow.cc: Ditto. + + * tree.cc (tree_matrix::eval): Improve row and column mismatch + checking -- [[1,2];[3,4]] works now, and [1,2;3,4,[5,6]] is + rejected. + * Reformat error messages to include `error:' prefix. + + Wed Mar 10 14:02:09 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * lex.l (do_comma_insert): New global variable. + * (reset_parser): Reset it. + * lex.l (do_comma_insert_check): New function. Call it wherever a + token can be directly followed by '['. + * (\[{S}*): Check the value of do_comma_insert. + + * lex.l ([_a-zA-Z][_a-zA-Z0-9]*): Only look for names in the + current symbol table. + + * parse.y (word_list_cmd): Special case to disallow use of clear + inside a fuction body. + + * parse.y (CLEAR): New %token. + * lex.l ([_a-zA-Z][_a-zA-Z0-9]*): Return it if token is "clear". + + * t-builtins.cc (builtin_clear): Allow global symbols to be + cleared. + + * symtab.cc (symbol_table::undefine): Clarify comment. + * (symbol_table::clear): Don't actually remove names from the + table, just force them to be undefined. + + * tree.h (tree_function): Delete unused data member `id'. + * tree.cc (tree_function constructors): Don't initialize id. + + Mon Mar 8 15:50:28 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.70 released. + + * src/Makefile.in: Update dependencies. + + * tree.h: Include stdio.h, for FILE. + + * gnuplot-build: For now, always define -DNOGAMMA. + * configure.in: Don't check for gamma(). + + * libcruft/Makerules.in: Don't use lib.a(obj.o) style dependencies + because it's too slow for large archives. + * liboctave/Makefile.in: Ditto. + + Sun Mar 7 16:33:39 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * octave.cc (parse_and_execute): Save and restore current column + number. Set input line and column number to zero. + * tree.cc (parse_m_file): Likewise. + + * tree.cc (tree_identifier::parse_m_file (FILE*, int*)): New + function. If a parse error occurs, ensure that the symbol is + cleared from the global symbol table. + * (tree_identifier::parse_m_file (char*, int): Use it. + + * tree.cc (tree_identifier::do_lookup): New function. + * (tree_identifier::eval): Use it. + + * utils.cc (decode_prompt_string): Really do use value of PWD. + + * user_prefs.cc (sv_loadpath, sv_ps1, sv_ps2, sv_pwd, + sv_gnuplot_binary, sv_graphics_terminal): New functions. + * (sv_graphics_terminal): Warn if terminal isn't valid, but set it + anyway (it's too late to do anything by the time the function is + called). + * In functions that use these variables: Use the value from the + user_pref structure instead of doing a symbol table lookup. + + * builtins.cc (builtin_string_variables): Add functions to call + for LOADPATH, PS1, PS2, PWD, gnuplot_binary, and graphics_terminal. + + * builtins.cc (PS2): New builtin_string_variables. Set default + value to "> ". + * input.cc (octave_gets): Use it instead of no prompt for + continued input. + + * parse.y (yyerror): Use line, column, file name, and text of + current input line to print better parse error messages. + + * lex.l (NEW_MATRIX): New exclusive start state. Need this to be + able to match \[{SN}* _and_ get secondary prompting right. + + * input.cc (octave_read): Keep track of current input line. + * tree.cc (parse_m_file): Save and restore current line number. + + * lex.l (all patterns): Keep track of current input column. + * (fixup_column_count): New function to deal with patterns that + match more than one line. + + * input.h, input.cc (current_input_line): Global pointer to + the text of the current input line. + + * parse.y, parse.h (input_line_number, current_input_column): New + global variables. + + * Almost all source files: Finish (for now, at least) the + reorganization we started for global variables. + + Wed Mar 3 14:49:59 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tc-assign.cc, tc-index.cc, tc-inlines.cc: New files, split out + from tree-const.cc. + + * Almost all source files: reorganize so that all global data is + declared in some include file or another. It probably wouldn't + hurt to do some more reorganizing to try to eliminate the amount + of global information... + + Tue Mar 2 20:49:35 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * variables.h, variables.cc: New files for handling things that + need symbol table information. Lots of files changed to include + variables.h, which now includes the extern declarations for the + symbol tables. The declarations of the symbol tables are now in + variables.cc, but they are still initialized in octave.cc. + + Mon Mar 1 11:35:03 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * builtins.h (builtin_string_variables): New field, sv_function, + holds a pointer to the function to call when a variable changes. + * builtins.cc (string_variables): Initialize sv_function field. + * (install_builtins): While installing builtin string variables, + stash sv_function and, if it isn't NULL, call it to initialize + global variable user_pref. + + * symtab.h (symbol_record): New field, sv_fcn, holds a pointer to + the function to call when a variable changes. + * symtab.cc (symbol_record::define): Call sv_fcn if it isn't NULL. + * symtab.cc (symbol_record::set_sv_function): New function. + + * utils.cc, parse.y, tree.cc, tree-extras.cc, tree-const.cc, + idx-vector.cc, builtins.cc, symtab.cc: Instead of calling + functions like do_fortran_indexing(), get the user's preference + from the global struct user_pref. + + * utils.h, utils.cc: Delete all functions like do_fortran_indexing() + that lookup user variables to find integer values. + * user-prefs.h, user-prefs.cc: Move them here, but instead of + returning values, set elements of the new global struct user_pref. + + * user-prefs.h, user-prefs.cc: New files for handling global + variables for user preferences. + * Makefile.in: Add them to the SOURCES and INCLUDES macros. + + * bsd-math/{acosh,asinh,atanh,log1p}.c: Declare all external + functions used in each file since they might not be in math.h. + * bsd-math/{scalb,copysign,logb,finite,drem,sqrt}.c: New files + from BSD's support.c. Only using scalb, copysign, logb, and + finite for now. + + * configure.in: Move tests for f77 closer to the top. + * Allow configuration to proceed even if we can't find a Fortran + compiler or f2c. + * Use `here' documents instead of multiple echos for multi-line + messages. + * Imrpoved checking for missing math functions. + + Sun Feb 28 17:45:53 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * test/Makefile.in (check): Try to avoid errors from cp. + + * mappers.cc (xfinite): Put test for HAVE_FINITE first. + + * libcruft/Makerules.in (LIBCRUFT_DEPEND): Use `=' in assignment + instead of `:='. + + * liboctave/Makefile.in: Make an explicit list of sources instead + of using $(wildcard). + + Thu Feb 25 20:18:12 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * bsd-math/copysign.c: New file. HP's don't have this? + * configure.in (LIBOBJS): Also check for copysign, log1p, and + log__L. For each missing user-level function, add -DFOO_MISSING=1 + to DEFS. + * src/missing-math.h: For each function we declare, check the + corresponding XXX_MISSING macro. Add declarations for copysign + and log1p. + + Wed Feb 24 20:39:32 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * lex.l ({SN}*\]/{S}*==): Change scanning pattern to + {SN}*\]{S}*/== in order to keep flex from generating any + backtracking code. + * ({SN}*\]/{S}*=): Likewise. + + Tue Feb 23 02:45:00 1993 John W. Eaton (jwe@ward.che.utexas.edu) + + * Version 0.69 released. + + * mappers.cc [_AIX && __GNUG__] : Provide a definition for + finite(), since whatever version we get from the system when using + g++ doesn't work (note that it does seem to work with gcc, xlc, + and xlC). + + * bugs.texi: Note that the math.h file from libg++ declares + finite() incorrectly for some systems. + + Mon Feb 22 02:04:16 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * configure.in: Look for runtest, but only believe that it exists + if we can also find expect. + * test/Makefile.in (check): Run tests in build directory, not + source directory. + + * tree.cc (reading_script_file): New global variable. + * (parse_m_file): Use it, and properly save and restore state so + that nested script files will work. + + * octave.cc (parse_and_execute): Properly save and restore state + so that nested script files will work. + * Don't close input file here. + + * input.cc (get_input_from (FILE*)): Don't declare mf_instream + static. Set mf_instream if reading and M-file or a script file. + + * parse.y: Minor changes to accomodate new lexer. + + * lex.l: Major overhaul in an attempt to do better string + handling. Looks much simpler and even seems to work. + * (do_string_escapes): New function. + + Sat Feb 20 00:40:32 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * g-builtins.cc (builtin_npsol): If npsol is missing, return empty + matrices for x and phi, and -1 for inform. + + * num2str.m: Use %g, not %f. + + * tree.cc (parse_m_file): Save and restor curr_sym_tab, because + yyparse may mess with it if it encounters a function definition. + * tree-extras.cc (eval_string): Ditto + * octave.cc (parse_and_execute): Ditto + + * Makefile.in (DISTDIRS): Add bsd-math to list. + + * src/Makefile.in (LIBOBJS): New macro, value set by configure. + (vpath): Add @srcdir@/../bsd-math for LIBOBJS. + (octave): Add $(LIBOBJS) to deps. + * gnuplot-build/Makefile.in: Likewise, for notgnuplot. + + * configure.in: Use AC_REPLACE_FUNCS to Check for acosh, asinh, + atanh, and gamma. + + * bsd-math: New directory for functions from the BSD math library + to use as replacements for missing functions. + + * parse.y (semi_comma, comma_semi): New rules. + (simple_list, simple_list1): Use them to allow empty statements. + (list, list1): Likewise. This allows empty commands as long as + the empty command doesn't contain any newlines. + + * parse.y (simple_assign): New rule, allows things like a = b = c. + (multi_assign): Extracted from assignment. + (assignment): Split into simple_assign and multi_assign. + (expression): Allow '(' simple_assign ')' to be an expression. + + * tree-extras.cc (eval_string): Return result of last expression + evaluated, to make things like `eval ('1+1;')*2' work. + + Fri Feb 19 19:45:21 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * g-builtins.cc (builtin_pwd): Use getcwd, which is defined in + unistd.h, instead of getwd, which seems to be a BSDISM. + * utils.cc (decode_prompt_string): Ditto. + * (get_working_directory): Ditto. + + * arith_ops.cc (DIVIDE_BY_ZERO_ERROR): Don't rely on + HAVE_IEEE_MATH, use HAVE_ISINF, HAVE_FINITE, and HAVE_ISNAN + instead. + * configure.in: Don't define HAVE_IEEE_MATH. + + * tree-extras.cc: Include stdio.h for FILE. + + Thu Feb 18 10:17:38 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (gobble_leading_white_space): New function. + * (is_function_file): New function. + + * (parse_m_file): Handle case of .m file being just a file of + commands to execute. + * Add optional argument to specify whether to execute a script + file. + * Return whether a script file was executed. + * (tree.cc, tree-extras.cc): Change callers. + + * octave.cc (parse_and_execute): new functions. + * (execute_startup_files): Use them. + + * lex.l (\n): Don't gobble new line. + + * num2str.m: Don't print '\n'. + + Wed Feb 17 21:59:55 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * mappers.cc: Simplify and correct finite, isinf, isnan functions. + * test/octave/t7.oct: New test for finite, isinf, and isnan + functions. + + * configure.in: Define HAVE_IEEE_MATH if isnan and either finite + or isinf is available. + + * builtins.cc (mapper_functions): Check HAVE_ISNAN instead of + HAVE_IEEE_MATH to determine whether or not to define isnan(). + + * mappers.cc: Don't check for HAVE_IEEE_MATH. Just check for + individual functions directly. + + * g-builtins.cc (npsol_usage): Correct usage message. + + * g-builtins.cc: Don't include unistd.h unless HAVE_UNISTD_H is + defined. + * t-builtins.cc: Ditto. + * utils.cc: Ditto. + + Tue Feb 16 00:35:44 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.68 released. + + * tree.cc (parse_m_file): Set reading_m_file before calling + get_input_from_file. + * Don't mess with current_infile. + + * input.cc (get_input_from_file): Set mf_instream if we are + reading an M-file. Otherwise, set rl_instream, (even if we aren't + really using readline -- this is just the `normal' input stream). + * Don't use current_infile. + * (octave_read): If not interactive, check reading_m_file to + determine where to look for input. + + * octave.cc (main): Don't use readline if we aren't interactive. + + * libcruft/misc/Makefile.in (local-dist): Make sure we don't + distribute a bogus d1mach.f. + (dist): Ditto. + + * tree-extras.cc (convert_to_ans_assign): New global variable. + (eval_string): Conditionally turn off assignment to `ans', for + get_user_input (). + * parse.y (ans_expression): Use it. + * lex.l (reset_parser): Reset it. + + * g-builtins.cc (builtin_input): New function. + * builtins.cc (general_fucntions): Add it to the list. + * tree-extras.cc (get_user_input): Do most of the real work. + + Mon Feb 15 01:14:40 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * t-builtins.cc (load_variable): New function. + (builtin_load): Use it. + + * Makefile.in (SUBDIRS): Add the test directory. + (check): Don't depend on all. + + Sat Feb 13 05:17:53 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-extras.cc (determinant, lu, matrix_exp, matrix_log, + matrix_sqrt): Handle empty matrix argument. + + * Matrix.h: Add constructors of the form Matrix (double a) and + ColumnVector (double a) to make it even easier to form single + element vectors. + + Fri Feb 12 03:27:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * octave.cc (main): Add -v option that will print the version + string and quit with a successful exit status. + + Thu Feb 11 00:46:34 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-extras.cc (eig): If given an empty argument, return enough + empty matrices to fill all possible LHS variables. + (qr): Likewise. + (svd): Likewise. + + * tree-const.cc (fortran_style_matrix_assignment): Do the right + thing if LHS is an empty matrix. + + * tree-extras.cc (qr): Handle empty matrix argument. + + * Matrix-ext.cc (QR): Make it work (really!). + (ComplexQR): Ditto. + + Wed Feb 10 00:56:31 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * xdiv.cc (xdiv (ComplexMatrix& a, ComplexMatrix& b)): Do + btmp.solve (atmp), like the other three xdiv's. Argh! + + * tree-extras.cc (eval_string): New function. Mostly works but + could be very fragile. We desperately need some sort of + `unwind-protect' scheme to avoid disaster when octave is + interrupted. + + * g-builtins.cc (builtin_eval): Instead of just aborting, call + eval_string if given one argument. + + * input.cc (octave_read): If get_input_from_eval_string is + nonzero, stuff current_eval_string into buf for flex to read. + + * tree-extras.cc (char *current_eval_string): New global variable + for eval(). + * (int get_input_from_eval_string): Ditto. + + * Update copyright notices to include 1993 (now that it's + February...). + + Tue Feb 9 14:35:08 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.67 released. + + * tree-extras.cc, tree-const.cc: Check the value of the variable + `propagate_empty_matrices' to decide what to do about empty + matrices in binary and unary operations and some function calls. + + * builtins.cc (builtin_string_variables): New global variable + `propagate_empty_matrices' with initial value `warn'. + * utils.cc (propagate_empty_matrices): New function. + + Mon Feb 8 19:46:51 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-const.cc: Finish changes required to make zero-one indexing + work for indexing and assignment. + + Sat Feb 6 15:54:10 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * builtins.cc (builtin_string_variables): New global variable + `prefer_zero_one_indexing' with initial value `false'. + * utils.c (prefer_zero_one_indexing): New function. + + Fri Feb 5 13:03:14 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * idx-vector.h, idx-vector.cc: Major overhaul to help with + zero-one style indexing. + * tree-const.cc (matrix_to_index_vector): Delete functions. + * (functions that use idx_vectors): Update for new idx-vector + stuff. + + * arith-ops.cc: Don't declare matrix_to_fortran_indices. + + * tree-const.cc (matrix_to_index_vector): Add new argument, + allow_neg_one, with default value of false. + * (matrix_to_fortran_indices): Add new argument, allow_zero, with + default value of false. + + * g-builtins.cc (builtin_find): New function. + * builtins.cc (general_fucntions): Add it to the list. + * tree-extras.cc (find_nonzero_elem_idx (tree_constant)): Do + most of the real work. + * tree-extras.cc (find_nonzero_elem_idx (const Matrix&): Do the rest. + * (find_nonzero_elem_idx (const ComplexMatrix&): Ditto, for complex. + + Wed Feb 3 00:54:01 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * configure.in (DEFAULT_DOT_O_FROM_DOT_F): If using f2c, quote + with single quotes instead of double quotes to avoid problems on + systems (like the NeXT) that strip \'s from double quoted strings. + + * utils.c (empty_list_elements_ok): New function. + * tree.cc (matrix_list::eval): Use it. + * builtins.cc (builtin_string_variables): New global variable + `empty_list_elements_ok' with initial value `warn'. + + * utils.cc (check_str_pref): New function. + * (resize_on_range_error, prefer_column_vectors, + warn_comma_in_global_decl, do_fortran_indexing, + implicit_str_to_num_ok, treat_neg_dim_as_zero, + ok_to_lose_imaginary_part, return_last_computed_value, + silent_functions, print_answer_id_name): Use it instead of + needlessly duplicating code. + + Tue Feb 2 16:58:02 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * lex.l ("'"): If it looks like we're defining a matrix, don't set + the start condition to be MAYBE_QSTRING. GAK. There has to be a + better way... + + * lex.l: Increment and decrement promptflag instead of just + setting its value. This should help get prompting right for + things like if [1,2;3,4] NL ... + * input.cc (octave_gets): In order to issue a prompt, Require + propmtflag to be greater than zero, not just nonzero. + + * tree.cc (tree_if_command): Allow matrices as the expression to + test. Unlike Matlab, a complex value is false only if both the + real and imaginary parts are 0. + * tree.cc (tree_while_command): Ditto. + + * tree.cc (tree_for_command): Allow matrices and complex values + in the expression. For matrices, assign each column in turn to + the dummy variable. + + * Matrix-ext.cc (qr): Make it work. The LAPACK book gags me again! + + * xdiv.cc: When computing right division with complex matrices, + use hermitian() instead of transpose(). + + * lex.l: Return IMAG_NUM for a numeric constant followed by + [iIjJ], but don't allow spaces between the numeric constant and + the letter (it causes problems inside `[]' where spaces matter... + + Mon Feb 1 17:15:19 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree_extras.cc (rand_internal): Make the random number generator + give us a different sequence every time we start octave unless we + specifically set the seed. + + Thu Jan 28 00:10:24 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.66 released. + + * configure.in: Define PLOTLIB in addition to adding -DUNIXPLOT to + DEFS if we find -lplot, and call AC_SUBST for PLOTLIB. + + * QP.cc: Define constructors here. + * QP.h: Not here. + + * QP.cc (All constructors that are given H): Force H to be + symmetric. + * (make_h_symmetric): New function. + + Wed Jan 27 01:35:53 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * arith-ops.cc (do_unary_op): Do the right thing for complex + logical not operator. + * Matrix.cc (ComplexMatrix::operator ! (void)): Return Matrix + instead of ComplexMatrix. + * mx-inlines.cc (not (Complex *d, int len)): For each element of + d, return (d[i] == 0.0), not (d[i] != 0.0), and return it as a + pointer to double, not Complex. + + * configure.in: Check for libcruft/qpsol/qpsol.f. + * Create Makefile in libcruft/qpsol. + + * libcruft/qpsol: New directory. Copy QPSOL sources here. + * libcruft/qpsol/Makefile.in: New file. + * libcruft/qpsol/README.MISSING: New file. + * libcuft/Makefile.in: Include qpsol in list of directories to + make. + + * QPSOL.h, QPSOL.cc: New file for solving QPs with Gill and + Murray's QPSOL. + + * QLD.h, QLD.cc: Delete all minimize functions except + Vector minimize (double&, int&). + + * QP.h: Declare minimize functions virtual. + * (Vector minimize (double&, int&): Declare as a pure virtual + function. + + * QP.cc: New file to implement generic minimize functions. + + Tue Jan 26 00:27:13 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * lex.l: Recognize numbers of the form .{digits}E{digits} and + .{digits}E[+-]{digits} + + * lex.l: Recognize .\ as ELEFTDIV. + * parse.y: Handle ELEFTDIV. + * tree.cc (tree_binary_expression::eval): Handle el_leftdiv. + + * arith-ops.cc (do_binary_op): Handle element by element left + division. Fix some errors in element by element right division. + + * tree-base.h (enum expression_type): Add el_leftdiv. + + * Version 0.65 released. + + * tree-const.cc (tree_constant_rep::eval (tree_constant *args, int + nargin, int nargout, int print)): Fix another brain-o in making + recursive call.s + + * src/Makefile.in: Complete changes for CXX instead of C++ make + variables. + + * tree-const.cc: For assignment and indexing functions, treat + complex scalars and matrices in the same branch of the switch as + real scalars and matrices -- the double_value() and matrix_value() + functions take care of checking to see if it's ok to lose the + imaginary part. + + * tree-const.h (tree_constant_rep::is_numeric_type): New function. + * tree-const.h (tree_constant::make_numeric functions): Use it. + + * tree-const.h (tree_constant::make_numeric functions): Return + *this for complex constants too. + + Mon Jan 25 18:31:06 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-extras.cc (Matrix min (Matrix&, Matrix&)): Loop over nc and + nr, not nr and nr. + * (Matrix max (Matrix&, Matrix&)): Ditto. + + * tree-const.cc (tree_constant_rep::mapper): Fix brain-o in making + recursive call. + + Sun Jan 24 20:05:39 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * configure.in: If using f2c, explicitly check for -lf2c. If it's + not found, look for -lF77 and -lI77. If a suitable combination + isn't found, print a warning. + + * src/Makefile.in liboctave/Makefile.in: GNU Make 3.63 uses CXX + and CXXFLAGS instead of C++ and C++FLAGS. Fix things so that 3.63 + will work without sacrificing compatibility with earlier versions. + + * tree-const.cc (tree_constant_rep::diag (tree_constant&)): Fix + brain-o in forcing argument to be numeric. + + Fri Jan 22 15:03:42 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * octave.cc (interrupt_handler): Declare to take int argument. + + * NPSOL.cc (npsol_objfun): Delete leftover debugging message. + + Thu Jan 21 14:28:24 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * configure.in: Check version of gcc and issue a warning if it + looks like 1.something. + * Check for g++. Issue a warning if it is missing or if it is + there but it looks like verion 1.something. + + * flibs.sh, f2c-compat.sh: Change file permission to 755 to avoid + problems if the uid of the installer is different from the uid of + the owner of the files. + + Wed Jan 20 04:18:49 1993 John W. Eaton (jwe@june.che.utexas.edu) + + * libcruft/Makerules.in (@DOT_O_DOT_F_C[1234]@): Patterns deleted. + * configure.in: Do multiple line sed substitutions the right way. + + Tue Jan 19 14:50:50 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * configure.in: Use new AC_WITH to accept --with-f2c instead of + --use-f2c. + * Use new AC_HAVE_LIBRARY to find -lplot. + + * flibs.sh: Actually avoid including duplicate -lflags. + * Use test, not `['. + + Sun Jan 17 16:57:02 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Matrix.h: Declare operator+ and operator- functions for vectors. + * RowVector.cc: Define half of them. + * ColVector.cc: Define the other half. + + Fri Jan 15 03:00:46 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/Makefile.in (install): Include version number in name of + installed binary and make a link to $(bindir)/octave. + + * Version 0.64 released. + + * t-builtins.cc (builtin_clear): Don't allow the user to clear + global symbols by name. If he tries, issue a warning. + + * tree.cc (tree_identifier::eval_undefined_error): Don't clear + undefined symbols from the global or local (function) symbol + tables. + + Thu Jan 14 02:10:20 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (tree_function::eval): Save old and set current symbol + table context, so eval_undefined_error() doesn't wipe out top + level symbols. + + * Version 0.63 released. + + Wed Jan 13 13:16:56 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Nearly every .h and .cc file: Add interface and implementation + #pragmas for G++ in hopes of making smaller objects with -g. + + * tree-const: Properly handle assignments like A(:) = RHS when + do_fortran_indexing is true. + + * g-builtins.cc (builtin_eig): Correct usage message. + + * tree-const.cc (tree_constant_rep (ComplexDiagMatrix&)): Create + and initialize a new complex_scalar. Don't just try to copy the + value... + + * Matrix.h: Declare new fill functions for diagonal matrices. + * DiagMatrix.cc: Define them. + + * Matrix.h: Declare map functions for row and column vectors. + * RowVector.cc: Define them. + * ColumnVector.cc: Likewise. + + * CollocWt.h: Declare data protected instead of private. + * CollocWt.cc (CollocWt::CollocWt (const CollocWt&)): Fix brain-o. + + * lex.l: Return IMAG_NUM for a numeric constant followed by + [ \t]*[iIjJ]. + + * parse.y (IMAG_NUM): New token. + * (fact): Recogize IMAG_NUM and convert its value to a complex + constant. + + * Version 0.62 released. + + * Makefile.in (local-dist): Include -local in tar.Z filename. + * (split-local-dist): New target. + * (dist): Don't depend on newversion. + * (local-dist): Ditto. + + * tree-extras.cc (npsol): If the first argument isn't a vector, + print an error message and return. + + * tree.cc (tree_matrix::eval): Always set prev_row_total and + prev_column_total when starting out. + + * octave.cc (main): Don't try to detect signal handler failures, + but do call signal() to set up the interrupt handler. + + Tue Jan 12 19:59:33 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-extras.cc (npsol): Fix brain-o in checking length of bounds + vectors. + + Mon Jan 11 20:32:24 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-extras.cc (set_rand_seed): New function. + (force_to_fit_range): New function. + (current_seed): Really return current seed. + (rand_internal): Allow the user to actually set the seed for the + random number generator. + + Sun Jan 10 16:46:06 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.61 released. + + * builtins.h, builtins.cc: Rename from builtin-fcns.h, + builtin-fcns.cc (too long for Linux/SysV). + + * mappers.cc (xisinf): For non-IEEE machines, consider DBL_MAX to + be infinite. + + Fri Jan 8 09:15:57 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * gnuplot-build/Makefile.in (x11targets): Don't worry about + checking HAVE_X11_X_H. + + * configure.in: Check for gamma and lgamma for gnuplot. + + * gnuplot-build/Makefile.in (Makefile.X11): Only move Makefile to + ../Makefile.X11 if xmkmf succeeds. + + * gnuplot-build/Makefile.in (x11targets): Check to see that XMKMF + is set *and* that Makefile.X11 exists. + * If making notgnuplot_x11 with Makefile.X11 fails, try again with + Makefile. + + * gnuplot-build/Makefile.in: Use @PLOTLIB@ in definintion of LIBS. + * Don't define UNIXPLOT in TERMFLAGS. + * Don't define LN_S; it isn't used anywhere, and configure doesn't + give it a value. + + * configure.in: Check for closepl(). If found, define UNIXPLOT, + and substitute -lplot for @PLOTLIB@. + + * arith-ops.cc (DIVIDE_BY_ZERO_ERROR): New macro. On systems that + have IEEE math, give a warning but also go ahead and divide by + zero. On systems that don't have IEEE math, just give an error + message and return an undefined tree_constant (it would probably + be possible to handle this so that it works the same everywhere, + but I'm not sure it's worth the effort...). + + * builtin-fcns.cc (install_builtins): On systems that don't have + IEEE_MATH, define Inf to be MAX_DBL, but don't define NaN at all. + + * configure.in: Check for finite, isnan, and isinf. + * Set HAVE_IEEE_MATH if we find finite and isnan. + + * builtin-fcns.cc (install_builtins): Use HAVE_IEEE_MATH instead + of IEEE_MATH. + * mappers.cc: Check HAVE_IEEE_MATH and HAVE_ISINF macros rather + than checking system type. + + * graph3d.c (hidden_line_plot): Declare dy and y as double, not + float, since VERYLARGE can be DBL_MAX. + + * lsoda.f, lsodar.f, lsodes.f, lsodi.f, lsoibt.f, stoda.f, + stodi.f, zrotg.f, sdot.f: Remove unused files. + + * texas_lotto.m: Renamed from win_texas_lotto.m to keep the + filename less than 14 characters. + + Thu Jan 7 15:45:29 1993 John W. Eaton (jwe@june.che.utexas.edu) + + * utils.cc: Declare ioctl extern "C". + + * tree.cc: Include stdio.h to be sure FILE is defined (apparently + not required by older versions of GNU iostream library). + * t-builtins.cc: Likewise. + * g-builtins.cc: Likewise, but for tmpnam. + + * tree-const.h (rand_internal): Rename from rand to avoid + conflict with standard library rand (a macro in Linux). + * tree-extras.cc (rand_internal): Fix function definition. + * g-builtins.cc (builtin_rand): Call rand_internal instead of rand. + + * octave.cc (main): Don't try to detect signal handler failures. + What's the proper way to do this if RETSIGTYPE is void? + + Tue Jan 5 08:14:29 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (tree_matrix::eval): When adding a matrix down or to the + right, column or row dimension mismatches are always errors. + + Mon Jan 4 04:58:55 1993 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.60 released. + + * xdiv.h, xdiv.cc: New files for Octave-specific matrix division + stuff. + * src/Makefile.in (INCLUDES, SOURCES, OBJECTS): Add xdiv stuff. + + * arith-ops.cc: Include xdiv.h. + + Sun Jan 3 12:24:04 1993 John W. Eaton (jwe@ward.che.utexas.edu) + + * gnuplot-build/Imakefile.in (notgnuplot_x11): In the compile + command, put source file before libraries. + + * libcruft/misc/Makefile.in: Don't use -O to compile gen-dimach.c. + + Thu Dec 31 00:45:50 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-extras.cc (matrix_sqrt): Don't create D until it is really + needed. + * (matrix_log): Ditto. + * (matrix_exp): Ditto. + [this should really be just one function instead of three...] + + * g-builtins.cc (builtin_sqrtm): New function. + * builtin-fcns.cc (general_fucntions): Add it to the list. + * tree-extras.cc (matrix_sqrt): Do the real work. + + * Makefile.in: Distribute INSTALL.OCTAVE and configure.in. + * (INSTALL.info): Make ../INSTALL.OCTAVE, not ../INSTALL. + + * doc/Makefile.in: Make ../INSTALL.OCTAVE, not ../INSTALL. + + * INSTALL.OCTAVE: Rename from INSTALL. + Refer to INSTALL for more info. + + * INSTALL: Copy from autoconf distribution. + Refer to INSTALL.OCTAVE for more info. + + * octave.cc (main): Remove leading blank line from startup message. + * Don't print it everytime the user types C-c... + + * xpow.cc: Finish off remaining cases. + + * tree-extras.cc (process_format): New function. + (do_printf): Use it. + + Wed Dec 30 00:43:14 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.56. + + * g-builtins.cc (builtin_logm): New function. + * builtin-fcns.cc (general_fucntions): Add it to the list. + * tree-extras.cc (matrix_log): Do the real work. + + * g-builtins.cc (builtin_expm): New function. + * builtin-fcns.cc (general_fucntions): Add it to the list. + * tree-extras.cc (matrix_exp): Do the real work. + + * Matrix-ext.cc (LU): Construct LU decomp. here, not in Matrix class. + (ComplexLU): Likewise. + * Matrix.cc (lu): Deleted. Use LU constructor instead. + Change all uses in octave sources. + + * Matrix-ext.cc (EIG): Construct EIG object here, not in Matrix class. + * Matrix.cc (eig): Deleted. Use EIG constructor instead. + Change all uses in octave sources. + + * Matrix-ext.cc (SVD): Construct SVD here, not in Matrix class. + (ComplexSVD): Likewise. + * Matrix.cc (svd): Deleted. Use SVD constructor instead. + Change all uses in octave sources. + + * Makefile.in: Update for new Matrix file organization. + Don't compile mx-inlines separately -- it's included where needed. + * Matrix.h: Declare Fortran routines we call here, not in Matrix.cc. + Don't declare every class to be a friend of every other class. + * mx-inlines.cc: New file, included by all Matrix-related .cc files. + * Matrix.cc: Split into several files. + * ColVector.cc: New file, from Matrix.cc + * RowVector.cc: Ditto. + * DiagMatrix.cc: Ditto. + * Matrix-ext.cc: Ditto. + + * tree-extras.cc (svd): Take advantage of new constructors and + diag functions. + + * Matrix.cc (DiagMatrix::diag) New function. + (ComplexDiagMatrix::diag) Ditto. + + * tree-extras.cc (eig): Take advantage of new constructors. + + * tree-const.cc (tree_constant (DiagMatrix)): New constructor. + (tree_constant (ComplexDiagMatrix)): Ditto. + + * Matrix.cc (Matrix (const DiagMatrix)): New constructor. + (ComplexMatrix (const DiagMatrix)): Ditto. + (ComplexMatrix (const ComplexDiagMatrix)): Ditto. + + Tue Dec 29 01:14:49 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * octave.cc (main): Print message at startup by default. + Don't print it until just before main loop. + * New -q option (inhibit_startup_message) turns it off. + * New -f option (read_init_files) inhibits reading of startup files. + * Delete -v option. + * (verbose_usage): Reflect changes in arguments, document -d. + + * win_texas_lotto.m: Sort picks before returning. + + * tree-extras.cc (eig): Return [v,d], not [l,v], where d is a + diagonal matrix made from l. + + * builtin-fcns.cc (mapper_functions): Fix last element of + initialization list to have correct number of elements. + + * Version 0.55. + + * Quad.h: Move all inline functions to Quad.cc to avoid apparent + g++ bug on the RS/6000. + + * configure.in: If we find flex, don't define LEXLIB. + + * COPYING.LIB: Deleted -- we're not actually distributing anything + under these terms. + * Makefile.in: Don't distribute COPYING.LIB. + + Mon Dec 28 00:46:21 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * xpow.h, xpow.cc: New files for safer pow() interface for octave. + * src/Makefile.in (INCLUDES, SOURCES, OBJECTS): Add xpow stuff. + + * arith-ops.cc: Include xpow.h. + * Don't declare toplevel jmp_buf. + + * t-builtins.cc (builtin_save): Make file and stream static to + avoid dumping core on return (is this a bug in libg++ or g++?). + * (builtin_load): Ditto. + + * symtab.cc (load): Make it work again. Yikes! This hasn't + worked since the big symbol table overhaul... + + * tree-const.cc (tree_constant_rep::save): Handle complex scalars + and matrices. + + * (symbol_def::undefine): Delete previous symbol definition before + defining. This should be ok now, after the parse_m_file fix of + 27 Dec. + + * getting_help: New global flag. + * ([_a-zA-Z][_a-zA-Z0-9]*): Set it if looking at "help". + * (reset_parser): Clear it. + * lex.l (STRING): Use it to determine what to do with ' ; and , . + + * lex.l (QSTRING): Handle the following (C-style) backslash escape + sequences correctly(?). + + \a bell \r carriage return + \b backspace \t horizontal tab + \f formfeed \v vertical tab + \n newline \\ backslash + + * median.m: New M-file. + + * g-builtins.cc (builtin_sort): New function. + * builtin-fcns.cc (general_fucntions): Add it to the list. + * tree-extras.cc (sort): Do most of the real work. + * tree-extras.cc (mx_sort): Do the rest. + + Sun Dec 27 17:40:24 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * t-builtins.cc (builtin_casesen): New function. + * builtin-fcns.cc (text_functions): Add it to the list. + + * strcmp.m: Temporarily allow string to numeric conversions. + Maybe strcmp() should be built in to the interpreter? + + * norm.m: New M-file. + + * builtin-fcns.cc (install_builtins): Treat i and j as functions, + not variables. + * Install inf as an alias for Inf. + * Install nan as an alias for NaN. + + * tree.cc (tree_identifier::parse_m_file (char*)): Force new + global symbol to be a function, not a variable. + + Tue Dec 22 14:15:57 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (tree_function::eval): Check with silent_functions() + and return_last_value_computed() to determine proper behavoir. + + * builtin-fcns.cc (silent_functions): New builtin variable. + * (return_last_value_computed) Ditto. + + * utils.cc (silent_functions): New function. + * (return_last_value_computed) Ditto. + [This scheme for determining preferences needs to be reworked...] + + * lex.l ([_a-zA-Z][_a-zA-Z0-9]*): Only force yytext[len] to be the + end of the identifier if we gobbled some whitespace. + * Always unput the last character read. + + * tree.cc (tree_function::eval) Always turn on printing for + commands inside functions. + + Sat Dec 19 14:03:49 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.54. + + Fri Dec 18 16:02:59 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * (symbol_def::undefine): Undo previous change. Someone is + calling this function when they shouldn't be... + + * tree.cc (parse_m_file): If the script file is successfully + parsed, Ensure that the new symbol is defined in the global + symbol table. + + * lex.l: Handle continuation lines with the pattern + {EL}{S}*\n { promptflag = 0; } // Line continuation. + + Thu Dec 17 01:47:14 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * symtab.cc (symbol_def::define): Delete previous symbol + definition before defining. + (symbol_def::undefine): Ditto, but new definition is always NULL. + + * readline/Makefile.in: Don't compile emacs_keymap.c and + vi_keymap.c since they are included by keymaps.c. + + * configure.in: If RETSIGTYPE isn't int, then define + VOID_SIGHANDLER="-DVOID_SIGHANDLER=1". + Substitute VOID_SIGHANDLER. + + * readline/Makefile.in (CFLAGS): Add -DVOID_SIGHANDLER if + appropriate. + + * tilde.c: Declare xmalloc, not malloc. + + * lex.l ([_a-zA-Z][_a-zA-Z0-9]*): Only call unput if we've + actually read something. + + * Version 0.53. + + Wed Dec 16 01:35:48 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * lex.l ([_a-zA-Z][_a-zA-Z0-9]*): Look in the global symbol table + for names, but ignore functions. + + * tree.cc (tree_identifier::eval): Use symbol_out_of_date() to + simplify logic for re-parsing M-files. + Always look in global symbol table for functions in case the + definition has changed (shouldn't the local symbols be undefined + anyway??). + + * tree.cc (symbol_out_of_date): New function. + + * symtab.cc (symbol_table::undefine): Actually do something. + * (symbol_table::remove_name): Ditto. + * (symbol_table::clear): And so on. + + * Matrix.cc (ComplexMatrix::svd): Use complex conjugate transpose, + not simple transpose, for V. + + * Version 0.52. + + * gnuplot-build/Imakefile (notgnuplot_x11): In the compile + command, put source file before libraries. + + * parse.y (assignment): If trying to warn against assignment to a + function, check is_function() instead of !is_variable(). + + * src/Makefile.in: Distribute input.h. + + Tue Dec 15 10:48:22 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * octave.cc (main): Call initialize_readline to set up completion + functions. + + * input.cc (make_name_list, command_generator, command_completer, + initialize_readline): New functions. + + * input.h: New file. + * lex.l: Include it instead of input.cc. + * src/Makefile.in: Create input.o rather than including it + directly in lex.l. + + * builtin-fcns.cc: do_fortran_indexing is now initially false. + prefer_column_vectors is now initially true. + + * builtin-fcns.cc (install_builtins): Install i and j + (== sqrt(-1)) as permanent global variables. + + * g-builtins.cc (MAXPATHLEN) Provide default definition here. + * t-builtins.cc: Not here. + + * g-builtins.cc (quitting_gracefully, interactive, + clean_up_and_exit, verbatim_pwd, getwd) Declare here. + * t-builtins.cc: Not here. + + * g-builtins.cc: Also include readline.h and history.h. + + * g-builtins.cc: Include version.h and sys/param.h here. + * t-builtins.cc: Not here. + + * g-builtins.cc: Move builtin_clc, builtin_clock, builtin_date, + builtin_pause, builtin_quit, builtin_warranty here from + t-builtins.cc. + + * builtin-fcns.cc (general_functions): Move builtin_clc, + builtin_clock, builtin_date, builtin_pause, builtin_quit, + builtin_warranty here from text_functions to limit the number of + reserved words. + + * scripts/*.m: Check for correct number of input arguments before + proceeding. + + * configure.in (DEFAULT_PAGER): Look for less, more, page, and pg. + + * t-buitlins.cc (builtin_help): If no arguments are given, list + all the known operators, keywords, functions, and variables. + + * t-builtins.cc (builtin_help) Pass the output through PAGER using + a libg++ procbuf. + (builtin_who): Ditto. + + * utils.cc (get_pager): New function. + + * help.h, help.cc: New files to manage lists of help info for + keywords and operators. + + * symtab.cc (symbol_record): Implement the Matlab-style semantics + of functions using two symbol_def objects. + * (symbol_table): Store identifier names in a hash table instead + of a linear list. + * symtab.cc (symbol_def): New class. + + Sat Dec 12 00:00:00 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * parse.y (yyerror): Change error text to be more accurate. + + * lex.l ([_a-zA-Z][_a-zA-Z0-9]*): Only look in the current symbol + table for names. Function names and other global symbols are now + resolved at execution time. + + * symtab.cc (sorted_var_list): New function. + * (sorted_fcn_list): Ditto. + * (var_list): Ditto. + * (fcn_list): Ditto. + These should probably not all be separate functions... + + * t-functions.cc (builtin_who): Call sorted_var_list for each + symbol table to print variable names only. + * Accept -fcn, -fcns, or -functions to also list function names. + * Make -all list function names, but under a separate heading from + other symbols. + + * builtin-fcns.cc (is_text_function_name): New function. + * lex.l ([_a-zA-Z][_a-zA-Z0-9]*): Use is_text_function_name to + find if a name is a text function name instead of relying on the + symbol tables. + + * lex.l (is_keyword): New function. + ([_a-zA-Z][_a-zA-Z0-9]*): Use is_keyword instead of having a + special lex pattern for each keyword. + + Thu Dec 10 12:25:12 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * t-builtins.cc: Declare top_level_sym_tab extern. + + * Version 0.51. + + Wed Dec 9 02:00:38 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-extras.cc (all user_functions): If the return value from a + user's function is bogus, print an error message and abort to the + top level. + + * tree-const.cc (all do_matrix_index functions): Major overhaul to + simplify and apply range checking before doing the indexing. + + * tree-const.cc (fortran_row, fortran_column, valid_scalar_indices, + matrix_to_fortran_indices): Move here from arith-ops.cc and + declare as `static inline'. Delete declarations from arith-ops.h. + + * arith-ops.cc (gripe_nonconformant_assignment): Delete function. + + * tree-const.h (TREE_TO_MAT_IDX): Delete macro. + * tree-const.cc (tree_to_mat_idx): Make it an inline function. + + * tree-const.cc (all do_matrix_assignment functions): Major + overhaul to simplify resizing and range checking. + + * tree-const.cc (): Move here from arith-ops.cc. + Jump to top level on errors. + Return max value. + (indexed_assign_conforms) New function. + (index_check (int)): New function. + (index_check (Range)): New function. + + Tue Dec 8 21:07:23 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-const.cc (tree_constant_rep::tree_constant_rep (Range): + Don't create range constants that have less than 2 elements. + + * utils.cc (jump_to_top_level): New function. + * All: Replace calls to longjmp with calls to jump_to_top_level(). + Don't include , except in octave.cc, and utils.cc. + + Mon Dec 7 01:57:30 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * configure.in: Create Imakefile in gnuplot-build directory. + Look for xmkmf, then X11/X.h. + * gnuplot-build/Makefile.in: Try harder to get notgnuplot_x11 to + build correctly. + * gnuplot-build/Imakefile.in: New file, for building + notgnuplot_x11 if xmkmf is available. + + * Version 0.50. + + * gnuplot-build/Makefile.in (SUBDIRS): Add docs. + + * tree-const.h (make_numeric_or_range_or_magic): New function. + * tree-const.cc (do_matrix_index): Use it instead of make_numeric + so that we actually take advantage of all the special cases we + have for range types as matrix indices. + + * tree-const.cc (tree_constant_rep::do_matrix_index (int, Matrix)): + Fix typo. + + * DAE.cc (integrate): If returning a matrix of values, don't mix + time with the states. + * ODE.cc (integrate): Likewise. + + Sun Dec 6 16:58:41 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-extras.cc (dassl): New function. + * g-builtins.cc (builtin_dassl): Make it work. + * doc/octave.1: Document it. + + * DAEFunc.h, DAEFunc.cc, DAE.h, DAE.cc: New files. + + * tree-extras.cc (lsode): Clean up. Use available functions + instead of doing everything in line. + + * tree.cc (tree_multi_assignment_expression::eval): Don't define + constants that are of unknown type. + Try to be smarter about padding after last value. + + * tree-extras.cc (lu): Don't bother trying to return the LU + factorization in a single matrix since this isn't really useful + and isn't compatible with Matlab anyway (they use Linpack, we use + Lapack). + + * tree.cc (tree_identifier::assign (rhs, args, nargs)): Only try + to do assignment if rhs is defined. + + Sat Dec 5 18:23:55 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-extras.cc (qr): New function. + * g-builtins.cc (builtin_qr): New function. + * builtins.cc: Add builtin_qr to list of builtin functions. + * doc/octave.1: Document it. + + * Matrix.cc (Matrix::lu): Use dgesv from Lapack instead of dgefa + since it returns L and U, not some factors that need decoding. + (ComplexMatrix:lu): Likewise. + + Fri Dec 4 01:51:05 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * configure.in (INCDIRS): Don't include /usr/local/include. + (LIBDIRS): Don't include /usr/local/lib. + + * tree-extras.cc (lu): New function. + * g-builtins.cc (builtin_lu): New function. + * builtins.cc: Add builtin_lu to list of builtin functions. + * doc/octave.1: Document it. + + * Matrix.cc (Matrix:lu, ComplexMatrix:lu): New functions. + * Matrix.h, Matrix.cc (LU, ComplexLU): New classes. + + * tree-extras.cc (do_quad): New function. + * g-builtins.cc (builtin_quad): New function. + * builtins.cc: Add builtin_quad to list of builtin functions. + * doc/octave.1: Document it. + + * doc/Makefile.in (install): Edit the manpage to substitute + correct values in the FILES section. + (dist) Depend on octave.info. + (local-dist): Ditto. + + * Quad.h, Quad.cc: New files to implement quadrature. + + * NPSOL.cc (npsol_objfun): If compiling with GCC on a Sun, assign + to objf via assign_double(). + + * sun-utils.h, sun-utils.cc: New files. + * sun-utils.cc: Move declaration and definition of MAIN_ here from + utils.cc. + (access_double): New function, from GCC manual. + (assign_double): New function, after access_double. + + Thu Dec 3 03:16:03 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * NEWS: New file. + * Makefile.in: Distribute it. + + * scripts/*.m: Change to use new end feature. + + * lex.l: Recognize `endif', `endfor', `endfunction', `endif', and + `endwhile', in addtion to `end'. + * parse.y: Check for command/end mismatches. + (end_error): New function. + * doc/octave.1: Document it. + + Wed Dec 2 11:57:18 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * libcruft/villad: New directory. Move and split villad.f here + from libcruft/misc. + * configure.in: Create Makefile in libcruft/villad. + * libcruft/Makefile.in: Add libcruft/villad to list of dirs to make. + + * All Makefile.in (uninstall): New target. + (distclean): Likewise. + (check): Ditto. + * Try to make clean targets conform with GNU coding standards. + + * utils.cc (smells_like_X11): New function. + * builtin-fcns.cc (install_builtins): Don't set graphics terminal + to x11 unless it looks like we're running X11. + + * win_texas_lotto.m: New M-file. + * octave.1: Document it. + + * arith-ops.h: New file. + * src/Makefile.in: Build arith-ops.o, distribute arith-ops.cc, + arith-ops.h. Maybe this will at least speed up recompiles. + + * THANKS: New file + * Makefile.in: Distribute it. + + * configure.in: Create Makefile in gnuplot-build/docs. + * gnuplot-build/docs/Makefile.in: New file. + * Create and install notgnuplot.gih. + + Tue Dec 1 00:15:48 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (tree_identifier::eval (int)): Only pad after if printing. + (tree_multi_assignment_expression::eval (int)): Ditto. + (tree_assignment_expression::eval (int)): Ditto. + + * hankel.m: Use disp to print message. + * toeplitz.m: Ditto. + + * lex.l ({SN}*\]/{S}*=): Check maybe_screwed_again to + decide whether to return SCREW_TWO or ']'. + + * doc/Makefile.in (install): Really install the manpage. + + * Version 0.49. + + * Matrix.cc (ComplexMatrix::operator !): New function. + * arith-ops.cc (do_unar_op): Use it. + + * tree-extras.cc (inverse, svd, eig): Don't try to operate on + empty matrices. + + * Matrix.h, Matrix.cc: (EIG): New class. + (Matrix::eig): New functions. + (ComplexMatrix::eig): Ditto. + * tree-extras (eig): Use them. + * g-builtins.cc (builtin_eig): New function. + * builtin-fcns.cc (general_functions): Add eig to list. + * dococtave.1: Document it. + + * Matrix.h, Matrix.cc: (ComplexDET): New class. + * tree-extras (determinant): Use it. + + Mon Nov 30 04:02:29 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Matrix.h, Matrix.cc (ComplexSVD): New class. + * tree-extras (svd): Use it. + + * Matrix.cc (svd): Use lapack instead of linpack to compute SVD. + + * libcruft/Makefile.in: Replace eispack with lapack in + subdirectory list. + * libcruft/eispack: Delete directory. + * libcruft/lapack/Makefile.in: New file. + * configure.in: Create Makefile in libcruft/lapack, not + libcruft/eispack. + + * libcruft/lapack: New directory. + * Copy files for SVD and Eigenvalue computation here. + + * lex.l ({SN}*\]/{S}*=): Only return SCREW_TWO if not + defining a function. + + * arith-ops.cc (do_binary_op (double, double)): For pow operator, + don't create complex value if exponent is really an int. + + * configure.in: Check for f77 last. + * Print warnings if bison or lex is not found. + * Reformat fatal no f2c/f77 error message. + + * flib.sh: Make it work even if xlf is called f77. + + Sun Nov 29 01:55:41 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-extras.cc: Include f77-uscore.h. + * Use F77_FCN macro when declaring or calling Fortran functions. + + * configure.in: After checking to see that it's not garbage, add + the output of f2c-compat.sh to DEFS. + + * f2c-compat.sh: Figure out whether or not we need to append an + underscore to Fortran function names. + + * flibs.sh: Handle xlf -v output as special case. + + * octave.cc: Only define BADSIG if it isn't already defined. + * g-builtins.cc: Ditto. + + * configure.in: Don't create man/Makefile. + * man: Directory deleted. + * doc/Makefile.in: Distribute and install octave.1. + * doc/octave.1: Renamed from man/octave.1. + + Sat Nov 28 15:54:39 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * man/Makefile.in (install): Install manpage. + * octave.1: rename from octave.man + * octave.1: Document builtin variables and command line editing + (stolen from bash man page). + + * tree-const.cc (eval (int print)): Convert complex values to real + if imaginary part is zero. + + * octave.cc (log_usage): Deleted. + (main): Don't call log_usage. + + * g-builtins.cc (builtin_sqrt): Delete. + (builtin_log): Ditto. + (builtin_log10): Ditto. + + * tree-const.h, tree-const.cc (sqrt_internal): Delete. + (log_internal): Ditto. + (log10_internal): Ditto. + + * tree-const.cc (mapper): Handle neg_arg_complex. + + * builtin-fcns.h (Mapper_fcn): New field neg_arg_complex. + * builtin-fcns.cc: (mapper_functions[]): Initialize it for list of + mapper functions. + * builtin-fcns.cc: (mapper_functions[]): Move log, log10, and sqrt + back here from general_functions[]. + + Fri Nov 27 17:05:21 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-extras.cc (tree_constant_to_vector): Handle complex scalars + and matrices. + + Wed Nov 25 17:32:42 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * man/octave.man: New file, very incomplete. + * man/Makefile.in: Include octave.man in list of files to + distribute. + + * g-buitlins.cc (builtin_rand): Handle nargin == 1. + * tree-extras.cc (rand): Likewise. + + * rem.m: New M-file. Implemented as M-file because it's much + simpler! + + * configure.in (DEFAULT_DOT_C_FROM_DOT_F): Escape % characters in + rule to avoid problems with autoconf, which uses % for sed command + delimeters. + (DEFAULT_DOT_O_FROM_DOT_F): Ditto. + + Tue Nov 24 00:21:34 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-extras.cc (fill_matrix): Don't try to create matrices with + negative dimensions. + (frobit): Likewise. + + * utils.cc (check_dimensions): New function. + + * utils.cc (treat_neg_dim_as_zero): New function. + * builtin-fcns.cc (treat_neg_dim_as_zero): New builtin variable, + default value is false. + + * tree-const.h (tree_constant::bump_value): Like, assign, check + reference count and possibly make a new copy before changing + anything. + + * tree-base.h (is_builtin): New virtual function. + * tree.cc (tree_builtin::is_builtin): New function. + + * parse.y (ans_expression): Also check to see if the lone + expression is a builtin text-style function invoked without any + arguments. + + * octave.cc, t-builtins.cc: Print copyright and other normal + (non-error) message on cout instead of cerr. + + * t-builtins.cc (builtin_warranty): Don't return message in + retval. + (builtin_history): Likewise. + (builtin_help): Also. + (builtin_who): Ditto. + + * Version 0.48. + + * tree-extras.cc: Fix most functions to handle complex arguments. + Still need to finish SVD and DET (waiting for these functions in + the Matrix class). + + * tree.cc (tree_multi_assignment::eval): Optionally print names + for result variables. + + * tree-const.h (tree_constant::eval (int print, int nargout)): + New function. Simply ignore nargout. + * tree.cc (tree_matrix::eval (int print, int nargout)): Ditto. + + * tree.cc (tree_parameter_list::name): New function. + + * lex.l (): Delete rules, start condition because they are + unecessary. + + * lex.l ({SN}*\]): Split into three rules. Use trailing + context instead of home-brew lookahead. + + Mon Nov 23 00:51:51 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * utils.cc (ok_to_lose_imaginary_part): New function. + * builtin-fcns.cc (ok_to_lose_imaginary_part): New builtin + variable, default value is warn. + + * tree-const.h (double_value): Maybe return real part if invoked + for complex tree_constant. + * tree-const.h (matrix_value): Ditto. + + * Version 0.47. This one wasn't tested, but there have been a lot + of significant changes and I wanted a backup. + + * tree-const.cc (sqrt_internal): New function. Sqrt isn't + implemented as a mapper function since negative real arguments + give complex results. + (log_internal): Ditto. + (log10_internal): Ditto. + * builtin-fcns.cc: Move sqrt, log, and log10 from mapper struct + initializer to general function struct initializer. + + * rot90.m: New M-file. Still needs rem() to be complete. + + * tree-const.cc (mapper): Handle mapper functions for complex + variables. + + * mappers.h, mappers.cc: New file for mapper functions. + + * builtin-fcns.h, builtin-fcns.cc: Rename from builtins.h + builtins.cc. + + * flipud.m: Don't do indexing on lhs. + * fliplr.m: Likewise. + + Sun Nov 22 17:09:36 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * arith-ops.cc (do_binary_op (double, double)): Handle a^b for + a < 0. + + * builtins.cc: Make sqrt a general builtin function instead of a + mapper function. + * g-builtins.cc (builtin_sqrt): New function. + * tree-const.cc (sqrt_internal): New function. + + Sat Nov 21 16:41:02 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-const.h, tree-const.cc: Complete most changes required to + handle complex types. There are lots of details, most will be + omitted here. + + * tree-const.h (is_real_type) New function. + (is_complex_type): Ditto. + (is_scalar_type): Ditto. + (is_matrix_type): Ditto. + + * tree-const.h (REP_RHS_MATRIX, REP_ELEM_ASSIGN, CRMATRIX, + ASSIGN_CRMATRIX_TO, CRMATRIX_ASSIGN_REP_ELEM, + CRMATRIX_ASSIGN_ELEM): New macro for dealing with real and complex + matrices in the same tree_constant_rep function. + + * tree-const.cc: Include arith-ops.cc. + + * arith-op.cc: New file for functions that implement unary and + binary operations for the tree_constat classes. + * Mark all operations that aren't implemented yet with a + FIXME comment. There are about 35-40 things left to fix + in this file. + + Thu Nov 19 00:25:16 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.46. + [ This one wasn't tested, but there have been a lot of significant + changes and I wanted a backup. ] + + * tree-const.cc (tree_constant_rep::do_unary_op): Handle Complex. + (do_unary_op (Complex&, tree::expression_type)): New function. + (do_unary_op (ComplexMatrix&, tree_expression_type): Ditto. + + * tree-const.cc (tree_constant_rep::assign): Handle Complex + (still needs updated support functions in order to work). + + * tree.cc (tree_matrix::eval): Handle Complex. + (tree_identifier::eval): Ditto. + (tree_for_command::eval): Ditto. + + Wed Nov 18 23:33:13 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree_const.cc (tree_constant_rep::rows): Handle Complex. + (tree_constant_rep::columns): Ditto. + (tree_constant_rep::all): Ditto. + (tree_constant_rep::any): Ditto. + (tree_constant_rep::cumprod): Ditto. + (tree_constant_rep::cumsum): Ditto. + (tree_constant_rep::prod): Ditto. + (tree_constant_rep::sum): Ditto. + (tree_constant_rep::sumsq): Ditto. + + * tree_const.h, tree_const.cc (tree_constant::complex_value): New + function. + (tree_constant_rep::complex_value): Ditto + (tree_constant::complex_matrix_value): New + (tree_constant_rep::complex_matrix_value): New + + * tree_const.cc (tree_constant_rep::~tree_constant_rep): Handle + complex scalars and matrices. + (tree_constant_rep::force_numeric): Ditto. + (tree_constant_rep::make_numeric): Ditto. + (tree_constant_rep::eval): Ditto. + (tree_constant_rep::bump_value): Ditto. C++, for C == a + complex value is C = C + 1. Should I even do this? Hmmm. + + * tree-const.h, tree-const.cc: Begin adding support for Compelex. + * Add complex_scalar and complex_matrix to value union. + * Add complex_scalar_constant and complex_matrix_constant to type + tag enum. + * New constructors. + + * Matrix.h, Matrix.cc: Major changes to add Complex support. + + Tue Nov 17 14:40:45 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Matrix.cc (RowVector::operator (const Matrix&)): New function. + + * Matrix.cc (ColumnVector::transpose): New function. + Eliminate friend function that served the same purpose. + (RowVector::transpose): Ditto. + + Mon Nov 16 09:57:33 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * lex.l (QSTRING): Fix to allow '' inside a string to represent a + single quote. Makes computer.m a little funnier. + + Fri Nov 13 18:46:39 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.45. + + * computer.m: New M-file. + * tril.m: Ditto. + * triu.m: Ditto. + + * doc (*.texi): Can now produce BUGS, INSTALL, and octave.info + files without generating errors, though the organization is + probably till very wrong. + + * Makefile.in (newversion): Add magic to handle major versions + other than 0, and major/minor versions of any length. + + Thu Nov 12 01:37:45 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * g-builtins.h, tree-const.h, builtins.cc, g-builtins.cc, + tree-extras.cc: Conditionally compile code for NPSOL and FSQP + based on FSQP_MISSING and NPSOL_MISSING. + * g-builtins.cc (builtin_npsol): If NPSOL is missing, always call + npsol_usage() to print out message indicating why NPSOL doesn't + work. + * g-builtins.cc (builtin_fsqp): Likewise for FSQP. + + * configure.in: Check for srcdir/libcruft/npsol/npsol.f and + srcdir/libcruft/fsqp/fsqp.f. If missing, define NPSOL_MISSING or + FSQP_MISSING and add them to DEFS. + + * libcruft/npsol/README.MISSING: New file. + * libcruft/fsqp/README.MISSING: Ditto. + + * libcruft/npsol/Makefile.in (dist): Don't distribute sources + because of license restriction. Do distribute Makefile.in and + README.MISSING. + * libcruft/fsqp/Makefile.in (dist): Ditto. + + * All Makefile.in files (local-dist): New target, usually the same + as dist. + + * parse.y (ans_expression): Check to see that the RHS isn't just + an identifier. + * tree.cc (tree_identifier::eval (int)): Maybe print id name. + * tree.cc (tree_assignment::eval (int)): Ditto. + * buitlins.cc (print_answer_id_name): New builtin variable. + * utils.cc (print_answer_id_name): New function. + + Tue Nov 10 10:58:36 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * octave.cc (log_usage): Surround with #if 0/#endif. + + Mon Nov 9 13:42:54 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * symtab.cc (load): Only issue error mesasge if attempt to find + _first_ name keyword fails. + + * tree-const.cc (make_numeric_or_magic): New function. Like + make_numeric except also pass magic_colons. + * tree-const.cc (all do_matrix_index functions): Matrix ndices can + be naked colons, so use make_numeric_or_magic on index arguments + instead of make_numeric. + + * liboctave/Makefie.in (install): Install .h files in $(includedir). + (includedir): New macro, default value $(prefix)/include. + + * tree.cc (tree_function::eval (int print)): Force arguments to be + undefined. + + * tree-const.h (tree_constant::assign (rhs, args, nargs)): Check + reference count before assigning. + * tree.cc (tree_identifier::assign (rhs, args, nargs)): Don't eval + lhs before doing assignment. + + * tree.cc (parse_m_file): Gobble leading white space, including + comments. + + Fri Nov 6 16:52:59 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.44. + + * g-builtins.cc (builtin_getenv): New function. + + * isempty.m: New M-file. + + * g-builtins.cc (builtin_exist): New function. + * utils.cc (identifier_exists): Handle the dirty details. + + * utils.cc (warn_comma_in_global_decl): New function. + * builtins.cc (warn_comma_in_global_decl): New builtin variable. + Initial value is true. + * parse.y (global_decl): Handle global declarations here, + including optional initialization. + * t-builtins.cc (builtin_global): Deleted. + + Thu Nov 5 23:59:39 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * g-builtins.cc (builtin_feval): New function. + * tree-extras.cc (feval): Handle the dirty details. + + * g-builtins.cc (builtin_rand): New function. + * tree-extras.cc (rand): Handle the dirty details. + + Wed Nov 4 14:54:17 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * num2str.m: New M-file. + * int2str.m: Ditto. + + * g-builtins.cc (builtin_disp): New function. + + * g-builtins.cc (builtin_fprintf, builtin_printf, + builtin_sprintf): New functions. + * tree-extras.cc (do_printf): New function to handle the gory + details. + + * g-builtins.cc (builtin_flops): Implement here because we may + actually want to count operations at some point. + + Tue Nov 3 17:06:40 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-const.cc (do_binary_op): Detect and give error message for + optations on empty matrices. + (do_unary_op): Likewise. + + * parse.y (matrix): Convert `[]' and `[;]' to empty matrices + instead of (tree_matrix *) NULL. + + Mon Nov 2 11:23:40 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * src/Makefile.in: Update dependencies. + * liboctave/Makefile.in: Ditto. + + * tree-const.cc (force_numeric): Consult matlab_strings() + before doing string to number conversion. + * builtins.cc (matlab_strings): New builtin variable. + * utils.cc (matlab_strings): New function. + + * tree-extras.cc (linear_constraints_ok): New function. + (linear_constraints_ok): Ditto. + (npsol): Use them to avoid creating inconsistent sets of + constraints and crashing. It would really be nice to have + exception handling. + + * symtab.cc (load): Issue error mesasges if attempt to find + name keyword fails. + + * Version 0.43. + + * tree-extras.cc (npsol): Use new minimize (phi, inform). + Handle nargout == 3. + + * g-builtins.cc (builtin_npsol): Allow nargout == 3. + + * NPSOL.cc (set_default_options): New function. + (all constructors): Use it. + (operator =): Use it and print warning message (setting default + options doesn't represent a true copy and it would be somewhat + difficult to fix this...). + + * npchkd.f (npchkd): Only write message if msglvl > 0. + + Sun Nov 1 00:58:16 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * gnuplot-build/Makefile.in (LIBDIRS): Set correctly. + (notgnuplot): Use it. + + * libcruft/misc/gen-d1mach.c: Generate d1mach.f at build time + instead of depending on the installer to get it right. + * libcruft/Makefile.in (gen-d1mach): New target. + + * libcruft/Makerules.in (SPECIAL): New macro. + (DISTFILES): Include it. + + * libcruft/Makerules.in (SPECIAL_DEPEND): Ditto. + (../../libcruft.a): Use it. + + Mon Oct 26 02:25:11 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-extras.cc (is_valid_function): Try harder to find M-files + that may not have been parsed yet. + + * symtab.cc (define (symbol_record*)): New function. Make it + simple to copy all fields of a symbol_record if we already have + one. + * utils.cc (force_global): Use it. + + * utils.cc (valid_identifier): Allow underscores in names. + + * tree-extras.cc (npsol): Force column vector to be returned. + (fsolve): Ditto. + + * Version 0.42. + + * tree-extras.cc (fsolve): New function for solving nonlinear + algebraic equations. This needs much more work if it is to + provide all the functionality of Matlab's fsolve. + + * tree-extras.cc (fsolve_user_function): New function. + + * libcruft/minpack: Import needed functions. + + * tree-extras.cc: (npsol (tree_constant*, int, int): Completely + rewrite to handle all of the follwing: + + 1. npsol (x, phi) + 2. npsol (x, phi, lb, ub) + 3. npsol (x, phi, lb, ub, llb, c, lub) + 4. npsol (x, phi, lb, ub, llb, c, lub, nllb, g, nlub) + 5. npsol (x, phi, lb, ub, nllb, g, nlub) + 6. npsol (x, phi, llb, c, lub, nllb, g, nlub) + 7. npsol (x, phi, llb, c, lub) + 8. npsol (x, phi, nllb, g, nlub) + + * tree-extras.cc (npsol_constraint_function): New function. + + * tree-extras.cc (tree_constant_to_vector): New function. + (tree_constant_to_matrix): Ditto. + (takes_correct_nargs): Ditto. + + Fri Oct 23 10:19:51 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-extras.cc (is_valid_function): New function. + (npsol): Use it. + + * utils.cc (s_plural): New function. + (es_plural): Ditto. + + * tree-extras.cc (npsol): Improve checks for valid objective + function. + + * tree.cc (tree_function::max_expected_args): New function. + + Thu Oct 22 18:42:07 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * g-builtins.cc (builtin_lsode): Quick check of arguments, then + call lsode (tree_constant *, int, int). + * Move rest of code for implementing builtin_lsode to + tree-extras.cc. + + * g-builtins.cc (builtin_npsol: Quick check of arguments, then + call npsol (tree_constant *, int, int). + * Move rest of code for implementing builtin_npsol to + tree-extras.cc. + + * tree-const.cc: Simplify functions that require numeric arguments + by always calling make_numeric for them instead of doing it + conditionally. + * tree.cc: Ditto. + * tree-extras.cc: Ditto. + + * tree-const.h (tree_constant::make_numeric): Return *this if + already a numeric type. + + * NLP.cc: In constructors, don't try to assign NULL to bounds + objects. + + * tree-const.cc (tree_constant_rep::valid_as_scalar_index (void)): + New function. + * tree-const.cc (valid_scalar_indices (tree_constant*, int): + New function. + * tree-const.cc (tree_constant_rep::do_scalar_index): Simplify by + using functions to determine if arguments are valid as indices. + (tree_constant_rep::do_scalar_assignment): Likewise. + + Wed Oct 21 14:11:58 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-extras.cc (determinant): Make it work again. + + * tree.cc (tree_identifier::eval (tree_constant*, int, int, int): + Simplify logic. Only have one ans->eval() call. + + * tree-const.cc (tree_constant_rep::eval (tree_constant*, int, + int, int): Properly handle indexing of range constants. + + * tree-const.cc (stupid_fortran_style_matrix_index): Preserve row + or column orientation for vectors. + + * toeplitz.m: New M-file. + * invhilb.m: Ditto. + * hankel.m: Ditto. + + * tree-extras.cc (max): Handle two arg case. + tree-extras.cc (max): Likewise. + (min (Matrix&, Matrix&): New function. + (max (Matrix&, Matrix&): Ditto. + + Tue Oct 20 15:13:57 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.41. + + Mon Oct 19 16:46:35 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * rows.m: New M-file. + * g-builtins.cc (builtin_rows): Delete function. + * g-builtins.h (builtin_rows): Delete declaration. + * builtins.cc (general_functions): Delete from initialization list. + + * columns.m: New M-file. + * g-builtins.cc (builtin_columns): Delete function. + * g-builtins.h (builtin_columns): Delete declaration. + * builtins.cc (general_functions): Delete from initialization list. + + * length.m: New M-file. + * g-builtins.cc (builtin_length): Delete function. + * g-builtins.h (builtin_length): Delete declaration. + * builtins.cc (general_functions): Delete from initialization list. + + * g-builtins.cc (builtin_size): If two values are expected to be + returned, put nr and nc in separate registers. + + Sun Oct 18 13:37:17 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree-base.h: Extract base tree class declarations from tree.h. + * tree-const.cc, tree-const.h: Extract tree_constant class from + from tree.cc, tree.h. + Change all uses of tree.h to use either or both of tree-base.h and + tree-const.h. + + * Matrix.cc (solve): Replaces LinEqn class. + tree.cc (do_binary_op) Use it. + + * g-builtins.cc (builtin_max): New function. + tree.cc (tree_constant::max): New friend. + + * g-builtins.cc (builtin_min): New function. + tree.cc (tree_constant::min): New friend. + + * cond.m: New M-file. + + * rank.m: New M-file. + + * g-builtins.cc (builtin_svd): New function. + tree.cc (tree_constant::svd): New friend function. + + * g-builtins.cc (builtin_svd): New function. + tree.cc (tree_constant::svd): New friend function. + + * t-builtins.cc (builtin_format): New function. Implement some of + the Matlab options (sort of). + + * Major changes to liboctave source. A new Matrix.cc/Matrix.h + completely replaces the old Matrix/Vec/AVec code. All other + classes that use Matrix/Vector objects have been updated (or + deleted, if they are no longer needed). All callers changed in + octave sources. + + Sun Oct 11 21:22:16 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (tree_function::eval): Don't define more function + parameters than are expected. If fewer arguments than expected + are actually supplied, force them to be undefined. + + * parse.y (fact): Give warning and abort for identifiers followed + by '['. This should catch most improper uses of [] instead of () + for indexing operators. + + * tree.cc (do_binary_op (Matrix&, Matrix&, tree::expression_type): + Handle element by element exponentiation. + + Tue Sep 22 10:09:06 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.40. + + Mon Sep 21 13:09:06 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * lex.l: Accept ** and .** as well as ^ and .^ as exponentiation + operators. + + Fri Sep 18 15:19:51 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.h tree.cc utils.cc g-builtins.cc: Elimitate need for + overloaded operator-> in the tree_constant class. Also eliminate + uses of ->string, ->scalar, etc. Instead, always call + .string_value(), .double_value(), etc. + + * builtins.cc (install_builtins): Reserve `ans' as an + uninitialized global variable (should it really be global?). + + * parse.y (ans_expression): Handle default assignemnt to builtin + variable ans. + (command): Use it. + + Tue Sep 15 14:06:12 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.39. + + * tree.cc (tree_identifier::bump_value): Don't try to increment + undefined symbols or values. + (tree_prefix_expression::eval): Don't call bump_value if id is a + NULL_TREE. + (tree_prefix_expression::eval): Likewise. + + * g-builtins.cc (lsode_builtin): Handle extra arguments. + liboctave/ODE.cc (integ): Add template for handling bad returns + from lsode. + + * tree.cc (class tree_return_command): Implementation is just like + break and continue. Something seems wrong about this... + lex.l (return): Recognize return statement. + parse.y (statement): Handle function returns. + tree.cc (various eval functions): Check to see if we are returning + from a function. + + * tree.cc (tree_for_command::eval): Set abort_on_undefined when + evaluating the loop body. + (tree_while_command::eval): Ditto. + + * tree.cc (class tree_idenfier): Improve searching/parsing M-files + when handling undefined names. + tree.cc (tree_identifier::parse_m_file (char*)): New function. + (tree_identifier::parse_m_file (void)): Use it. + + * utils.cc (force_global): New function. + * symtab.cc (symbol_table::remove_name(char *)): New function. + + * tree.h, tree.cc (class tree_constant): Split into two classes, + tree_constant (handle) and tree_constant_rep (body) to enable use + of `smart pointers' and reference counted memory management. + (Lots of things are different with this change.) + + Sat Aug 22 11:58:27 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.38. + + * lex.l (COMMA_KLUDGE): Delete production, all uses. This doesn't + seem to be necessary anymore, and the mystery output lines + disappear without it. + + * builtins.cc (make_eternal (char *)): New function. + (install_builtins): Make LOADPATH, eps, pi, Inf, and NaN eternal. + + * New M-files: mean.m, std.m, hadamard.m, vander.m, hilb.m, + linspace.m, logspace.m. + + * tree.cc (tree_function::eval): Don't check number of arguments + supplied against total number possible (previously thought to be + `expected') so that user-defined functions can have variable + numbers of arguments. + + * tree.cc (tree_identifier::eval_undefined_error): New function. + (tree_identifier::eval): Use it. + + * octave.cc (abort_on_undefined): New global symbol to control + whether we should jump to top level after an undefined symbol has + been encountered. + tree.cc (tree_function::eval) Set it before evaluating function + body, restore to previous value after successful completion. + tree.cc (tree_identifier::eval_undefined_error): Use it + + Fri Aug 20 09:31:14 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * g-builtins.cc: New mapper functions: + isnan: Uses xisnan, which calls IEEE function isnan. + isinf: Uses xisinf which calls IEEE functions finite and isnan, + or isinf if available. + finite: Uses xfinite, which calls IEEE function finite. + abs: Uses fabs. + + * g-builtins.cc (sumsq): New function. + (diag): New function. + + * tree.cc (tree_constant::sumsq): New function + (tree_constant::diag): New function + + * Matrix.cc (sumsq): New function. + (diag): Ditto. + + Thu Aug 20 00:36:44 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * g-builtins.cc (builtin_error): New function. + + * gnuplot-build/Makefile.in (dist): Actually create `term' + subdirectory. + + * Lots of changes to tree.cc tree_assignment_expression::eval and + tree_index_expression::eval to make matrix indexing work like + Matlab. + (do_fortran_indexing): New user-level variable to control this + behavior. If this variable is false, things like + + a([1,2;3,4], [1,2;3,4]) = b + + become syntax errors. Otherwise, Matlab braindamage prevails. + + Tue Aug 18 13:15:46 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.37. + + * tree.cc (do_matrix_assignment): Conditionally allow single + indices for Matrix assignments. + (do_matrix_index): Ditto. + + * utils.cc (do_fortran_indexing): New function. + utils.h: Declare it. + builtins.cc (install_builtins): Default value for new + do_fortran_indexing variable. + + * builtins.cc (install_builtins): Bind eps to the value + DBL_EPSILON from float.h. Make it read only (will this cause + trouble)? + * Bind Inf to 1/0 (will only work for IEEE machines. + * Bind NaN to 0/0 (will only work for IEEE machines. + * Add round, fix, floor, ceil, and sign to builtin mapper functions. + (round): New function. + (fix): Ditto. + (signum): Ditto. + * Add clc (clear screen function). + * Add home (clear screen function). To be just like Matlab, this + wouldn't clear the screen. + + * New M-files: fliplr.m, flipud.m, trace.m, reshape.m. + + * utils.cc (bind_variable): Revise bind_string_variable so that it + takes a tree_constant as an argument. + (bind_protected_variable): Likewise for the function + bind_protected_string_variable. + (bind_string_variable): Delete. + (bind_protected_string_variable): Ditto. + utils.h: Fix declarations. + builtins.cc t-builtins.cc: Fix callers. + + * builtins.cc (install_builtins): Bind LOADPATH here. + octave.cc (initialize_globals): Not here. + + * Makefile.in (SOURCES): Add new scripts directory. + (scripts): New target. + libcruft/Makefile.in (install): Don't depend on all. + + * utils.cc (m_file_in_path): Get path from LOADPATH variable. + tree.cc (tree_identifier::parse_m_file): Modify caller. + + * src/Makefile.in (OCTAVE_M_FILE_DIR): New variable. + (utils.o): Use it. + utils.cc (default_path): Use it. + + * utils.cc (pathstring_to_vector): New function. + (default_path): Return colon separated path instead of vector of + paths. + * octave.cc (initialize_globals): Use pathstring_to_vector here. + Bind output of default_path to LOADPATH variable. + Eliminate octave_path global variable. + + * tree.cc (isstr): New function. + (all): Ditto. + (any): Ditto. + (cumprod): Ditto. + (cumsum): Ditto. + (prod): Ditto. + (sum): Ditto. + + * g-builtins.cc (builtin_isstr): New function. + (builtin_all): Ditto. + (builtin_any): Ditto. + (builtin_cumprod): Ditto. + (builtin_cumsum): Ditto. + (builtin_prod): Ditto. + (builtin_sum): Ditto. + + * Matrix.cc (all): New function. + (any): Ditto. + (cumprod): Ditto. + (cumsum): Ditto. + (prod): Ditto. + (sum): Ditto. + + * scripts: New directory. + scripts/strcmp.m: New file (first M-file function in distribution!). + scripts/Makefile.in: New file. + configure.in: Include scripts/Makefile in list of files to create. + + Sat Aug 15 18:32:24 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.36. + + Fri Aug 14 08:44:10 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (id_to_define): New global variable. + (curr_m_file_name): Ditto. + (current_infile): Ditto. + + * tree.h tree.cc (tree_identifier::parse_m_file): New function. + (tree_identifier::eval): Handle M-files. + + * tree.h (stash_m_file_name): New virtual function. + (stash_m_file_time): Ditto. + (time_parsed): Ditto. + (m_file_name): Ditto. + + * tree.h tree.cc (tree_function::stash_m_file_name) New function. + (tree_function::stash_m_file_time): Ditto. + (tree_function::time_parsed): Ditto. + (tree_function::m_file_name): Ditto. + + * lex.l (reading_m_file): New global variable. + (delete_buffer): New function. + (yywrap): New function. Always return 0 (is this a smart thing to + do?). + + * parse.y (func_def2): Handle input from m-files (sort of). + + * octave.cc (octave_path): New global variable. + (using_readline): Ditto. + (no_line_editing): Ditto. + + * octave.cc (main): Initialize current_command_number before + calling setjmp. + * Increment it in main command loop, not in parse.y. + + * utils.h utils.cc (default_path): New function. + (m_file_in_path): Ditto. + (is_newer): Ditto. + + * octave.cc (main): Execute commands here. + * parse.y (input): Not here. + + * octave.cc (tree *global_command): New global variable that + points to the current command to be executed. + + Thu Aug 13 07:08:11 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * parse.y: Make word_list_cmd a fact, not a command, so that + things like `y = who -all' can work. You can't do that in Matlab. + + * t-builtins.cc (builtin_who): Print symbols in columns, sorted. + (list_in_columns) New function, mostly stolen from GNU ls. + + * symtab.h symtab.cc (char **list (void)) New function. + (char **sorted_list (void) New function. + + * tree.cc (various eval functions): Handle printing results of + text and general functions here. Straighten out other printing + stuff, maybe... + + * t-builtins.h t-builtins.cc: Make text functions return + tree_constant* instead of int, delete print flag argument. + + * g-builtins.h g-builtins.cc: Delete print flag argument. + + * Version 0.35. + + Wed Aug 12 15:12:23 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (tree_builtin::eval): Call mapper function with + print = 0 to avoid getting two answers. + (specific do_matrix_assignment functions): Handle resizing + correctly for `:' indices. + (tree_colon_expression::eval): Don't crash if the evaluation of + an operand yields a NULL_TREE_CONST. + + Mon Aug 10 07:31:37 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (tree_identifier::define): Return NULL_TREE_CONST if + symbol_record::define fails. + (tree_identifier::assign): Likewise. + + * symtab.h (symbol_lifetime): New attribute for symbol_records. + Can be either temporary or eternal. + (symbol_class): Delete eternal attribute. + * builtins.cc (install_builtins): Mark all builtins as eternal. + + * Version 0.34. + + * tree.h: Delete ttype, enum list of tree types. + + * g-builtins.h g-builtins.cc (builtin_colloc): New function. + + * liboctave (various): Add missing return values, etc. so that + liboctave compiles cleanly. + + * tree.h tree.cc (tree_multi_assignment): New class to implement + assignments to more than one variable. Does it work? Maybe... + + * tree.h (tree_constant **eval (int, int)): New virtual function. + (is_identifier): Another one. + + * symtab.h (eternal): New class for symbol_records. + * symtab.h symtab.cc (make_eternal): New function. + * builtins.cc (install_builtins): Make builtin variables eternal. + + * tree.cc (list_to_vector): Surround by `#if 0/#endif' to avoid + compilation warning. + + Sun Aug 9 03:18:38 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * t-builtins.h t-builtins.cc (builtin_cd): New function adapted + from bash for changing the current working directory. + (builtin_pwd): New function adapted from bash for printing the + current working directory. + + * utils.h utils.cc: New functions from bash for changing and + printing the current working directory: + + pathname_backup make_absolute + get_working_directory change_to_directory + + * utils.h utils.cc (bind_string_variable): New function. + (bind_protected_string_variable): Likewise. + + * octave.cc (initialze_globals): New function. + + * utils.h utils.cc: New functions from bash, mostly for fancy + prompting: + + polite_directory_format absolute_pathname + absolute_program base_pathname + read_octal sub_append_string + decode_prompt_string + + Thu Aug 6 02:39:31 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * octave.cc (initialize_history): Fix up to + (octave_hist_file) New global variable. + (octave_hist_size) Ditto. + (history_lines_this_session) Ditto. + (history_lines_in_file) Ditto. + + * input.cc (octave_gets): Keep track of number of lines read + during the current session. + + * utils.cc (default_history_file): New function. Look for + OCTAVE_HISTFILE environment variable and use its value if + possible. + (default_history_size): New function. Look for OCTAVE_HISTSIZE + environment variable and use its value if possible. + + * t-builtins.cc (builtin_history): Steal from bash and modify to + work with octave. + + * g-builtins.cc (builtin_det): New function. + + * tree.h tree.cc (determinant): New function + + * g-builtins.cc: Rewrite functions that use fill_matrix, inverse, + and identity_matrix to use new versions implemented as friends of + tree_constant. This is being done in an attempt to get rid of all + calls to tree_constant::const_type() outside of tree.cc. + + * tree.cc (tree_constant): Implement new functions for filling + and inverting tree constants as matrices, and for creating an + identity matrix from a tree_constant. + + * g-builtins.cc (builtin_inv): New function. + builtins.cc: Allow builtin_inv to be called as either inv(A) or + inverse(A). + + * tree.cc (do_binary_op (Matrix, Matrix)): Better handling of + solution of linear equations for square coefficient matrices. + + * LinEqn.cc (solve): Don't exit on singular matrices. Implement + new variations of these functions that will allow status checking. + + * src/Makefile.in: Define GNUPLOT_BINARY and SITE_DEFAULTS. + Specific rules for octave.o and builtins.o to avoid defining + GNUPLOT_BINARY and SITE_DEFAULTS for all .cc targets. + + * builtins.cc: Use macro GNUPLOT_BINARY. + + * octave.cc (execute_startup_files): Use macro SITE_DEFAULTS. + Execute commands from SITE_DEFAULTS file. + + * t-buitlins.cc (builtin_pause): Make it work. + + * configure.in: Check for termio.h and/or sgtty.h. + + * octave.cc (clean_up): Reset terminal state to cooked mode. + (main) Likewise, after return from SIGINT signal handler. + + * utils.h utils.cc (raw_mode): New function (mostly stolen from + less(1)) toggle input processing for stdin to raw/cooked modes. + (kbhit): New function to read one character from cin in raw mode + without echoing it. + + * builtins.cc: Fix expected number of arguments in lists of + builtins. + + * tree.h tree.cc (max_args_expected (void)): New virtual function. + (tree_builtins::) Provide a definition of it. + + * lex.l (identifier): Before gobbling up text function arguments, + check to see that we expect some. + + * symtab.h symtab.cc (max_args_expected): Return max args expected + by a symbol (currently only valid for tree_builtins). + + Wed Aug 5 05:03:59 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * utils.h utils.cc (resize_on_range_error): Decide what to return + based on value of global variable of same name. + (prefer_column_vectors): Likewise. + + * Version 0.33. + + * parse.y (func_def2): Call define (tree *, symbol_type), not + define (tree *), so that the symbol type is set for user-defined + functions. + (assignment): Catch assignments to functions here. + + * tree.h tree.cc (tree_identifier::define (tree *, symbol_type): + New function (be careful out there...). + + * symtab.h (symbol_type): Add new `user_function' enum value. + + * tree.cc (do_matrix_assignment): Call prefer_column_vectors(). + + * tree.h tree.cc (do_matrix_assignment (...)): New functions to + implement assignment to indexed matrices. + (do_scalar_assignment (...)): New function to implement assignment + to an indexed scalar. + + * utils.h utils.cc (resize_on_range_error): New function. Should + eventually decide what to return based on value of global variable + of same name. + (prefer_column_vectors): New function. + + Tue Aug 4 05:37:47 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (tree_constant::save): New function. + (tree_constant::load): New function. + + * symtab.cc (symbol_record::save): New function. + (symbol_table::load): New function. + + * t-builtins.cc (builtin_load): Start implementation. Yikes, this + is probably going to need a lot of work to be very robust... + + * t-builtins.cc (builtin_save): Implement by asking the + symbol_record to save itself. Maybe this should really be done by + asking the symbol table to save a symbol... + + * utils.cc (extract_keyword): New function. + (valid_identifier): New function. + + Fri Jul 31 04:16:24 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * parse.y (func_def3): Extra error cases for empty function + bodies. + (func_def1, func_def1a, func_def1b): Slighly straighten out some + truly twisted logic, eliminate func_def1a, rename func_def1b to + func_def1a, and make statementss like function [x,y] = foo() end + work properly (I think). + (func_def*): Put function name in global symbol table, not top + level symbold table. This makes them accessible from other + functions, eh? + + * t-builtins.cc (builtin_who): Accept -all, -local, -global, and + -top flags. + + Thu Jul 30 00:39:40 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * lex.l (current_buffer): New function to return current flex + input buffer. Will need this to be able to switch file contexts. + + * Version 0.32. + + * lex.l (create_buffer, switch_to_buffer): New functions to handle + input from various streams. This should be enough to allow us to + implement Matlab-like M-files. + octave.cc (main, execute_startup_files): Use them. + + * octave.cc (execute_startup_files): Execute commands from + $HOME/.octaverc and ./.octaverc. + + * g-builtins.cc (builtin_plot): Delete temporary files. + Ignore SIGINT while gnuplot is executing. + + Wed Jul 29 20:16:25 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (all_args_defined): New function to check a + tree_constant** vector to see if all elements are non-null. + (tree_index_expression::eval (int)): Use it, and abort the + evaluation if test fails. + + * terminals.h, terminals.cc: New files for doing things with + gnuplot graphics terminal names. + src/Makefile.in: Handle new files. + + Tue Jul 28 00:25:24 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * g-builtins.cc (builtin_plot): Make it work, at least halfway. + + * g-builtins.cc (builtin_save): New function. + + * gnuplot-build/Makefile.in: Add -DREADLINE and remove readline.o + from list of objects to actually enable the GNU command line + editing. + + * configure.in: Use AC_PROG_CHECK macro to search for f2c and f77. + Check for several common Un*x Fortran compilers. + Add extra messages. + + * g-builtins.cc g-builtins.h: New files for builtin general + functions extracted from builtins.cc. + + * t-builtins.cc t-builtins.h: New files for builtin text functions + extracted from builtins.cc. + + * Makefile.in (split-dist): New target. + + * Version 0.31. + + Mon Jul 27 22:01:58 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (tree_constant::do_matrix_index (tree_constant **, int): + Allow single argument to work for matrices that are really row or + column vectors. + + * lex.l: Accept `<>' in addition to `!=' and `~=' as `not equal' + comparison operators. + + * libcruft/Makerules: Allow for compiling the Fortran routines + with the native Fortran compiler instead of translating to C. + + * f2c-compat.sh, flibs.sh: New scripts which try to determine + whether it will be possible for us to use the system's Fortran + compiler directly, and if so, what libraries to add to the loader + command. These scripts are known to work on SPARCstations running + SunOS and DECstations running Ultrix. Not tested elsewhere... + * configure.in: Use them. + * Makefile.in: Distribute them. + + Wed Jul 22 00:04:48 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * builtins.cc: Begin implementation of NLP solver using NPSOL. + + Tue Jul 21 13:44:13 1992 John W. Eaton (jwe@june.che.utexas.edu) + + * octave.cc: If printing version information, also print pointer + to warranty info. + + * builtins.cc: Implement the Matlab functions ones, zeros, eye, + clock, date, size, length, and global. + Implement warranty builtin. + (builtin_clear): Fix to work with global variables. + + * symtab.cc (clear): Fix to work properly with global variables. + + Mon Jul 20 11:58:23 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc (tree_constant::do_matrix_index (tree_constant**, int)): + Make string indices work. + (tree_constant::force_numeric): Don't special case + single-character strings (this uncovers a flaw in the design of + the constructor for the magic colon operator...). + + Fri Jul 17 16:33:00 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.30. + + * tree.cc: Delete undefined identifiers when trying to eval them. + + * builtins.cc: Add beginnings of builtin who and clear functions. + + * symtab.cc symtab.h (clear): New function. + + * tree.cc, tree.h, parse.y: Implement matrix indexing with colon + expressions, implement the magic colon operator for column and row + selection. + + * tree.cc tree.h: Completely rework colon expressions. + + Thu Jul 16 09:27:48 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * gnuplot-dist: Rename from gnuplot-3.2 so we're not tied to a + version number. + + Tue Jul 14 11:22:35 1992 John W. Eaton (jwe@ward.che.utexas.edu) + + * tree.cc builtins.cc: Make argc/nargs/nargin work like C: + the argument count is the number of command line arguments plus + the function name. This goes for `argument lists' for matrices as + well as functions. It seems a bit awkward but at it's consistent, + and it's like C. Hmm. Maybe this is a bad choice... + + * utils.cc utils.h: New files for utility functions. + + Mon Jul 13 00:29:50 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.29. + + * tree.cc tree_constant::tree_constant (matrix): Automatically + convert 1x1 matrices to scalars. + + * parse.y lex.l: Fix up a bunch of stupid stuff and reduce the + number of shift/reduce conflicts to 16 (all but one because of the + optional separator garbage). + + * parse.y lex.l: Allow for assignments to lists of identifiers to + be partially parsed. This will still require some error checking + in tree.cc to ensure that the list is made up of identifiers only, + since that's not enforced by the grammar (I don't see a way to do + it, do you?) + + Sun Jul 12 11:24:33 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * tree.cc tree.h parse.y lex.l: Implement logical AND (symbol &), + OR (symbol |), and not (symbol ~). Also provide the C-style + operators &&, ||, and !). + + * Matrix.cc Matrix.h: Provide stupid element-wise logical + operators for matrices. + + * Version 0.28. + + * parse.y lex.l tree.cc tree.h: Implement C-style prefix and + postfix increment and decrement operators (symbols ++ and -- + respectively). + + * parse.y lex.l tree.cc tree.h: Implement break and continue. + + * tree.cc tree.h: Assignment to matrix elements roughed out. + + * gnuplot/tree.cc: Solution of linear equations via the lift + division operator partially implemented. Singular coefficient + matrices aren't handled very well yet... + + * gnuplot-build/Makefile.in: Make this work to build gnuplot for + generic X11/unix environments. + * Remove -Wall from CFLAGS to avoid loads of warnings. + * Use GNU readline instead of the one that comes with gnuplot. + + * gnuplot-build/*.diff: Various patches for various things. + + Sat Jul 11 10:14:12 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.26 + + * src/Makefile.in: Distribute lex.cc, parse.cc, y.tab.h. + * src/Makefile.in (dist): Depend on lex.cc and parse.cc. + + * gnuplot-build: New directory for patching and building gnuplot. + This is apparenty required because the gnuplot license won't allow + distrubution of modified versions, but will allow patches to be + distributed. + * gnuplot-build/Makefile.in: New file. + + * gnuplot-3.2: New directory. + + * readline: New directory from the bash-1.12 distribution, plus + tilde.c from bash's lib/glob directory and xmalloc.c from bash's + lib/malloc directory. + * readline/Makefile.in, readline/doc/Makefile.in, + readline/examples/Makefile.in: New files. + + * All Makefie.in files: Allow make to work from any directory, not + just the top level one. + + Fri Jul 10 22:20:56 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * SERVICE: Remove, since it seems too specific to GNU products. + + Thu Jul 9 07:48:33 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.20. + + * Solution of ODEs with LSODE partially implemented. It's + possible to solve some simple equations. + + * tree.cc tree.h (tree_constant): Add string constants and make + them work more or less like string constants in Matlab (implicit + conversion to ASCII numbers -- gag. This isn't complete, and it + it assumes that ASCII is the character set for the host + machine/compiler...). + + Tue Jul 7 07:28:35 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.19. + + * User defined function definitions and calls to them mostly work. + Still need to implement multiple return values correctly. + + Mon Jul 6 04:23:37 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.18. + + * lex.l parse.y tree.cc tree.h: Begin implementation of + user-defined functions. + + Sun Jul 5 19:27:08 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.17. + + * lex.l: Replace SAVE_STRING macro with a function. + + * builtins.cc (builtin_document): New builtin function. + (builtin_help): Make it work. + + * lex.l: More rules for gathering text. These are still not quite + as they should be, but they will work in most cases. I think the + flex generated scanner is either going to have to be reworked or + replaced with a handemade version at some point (probably soon)... + + * tree.cc tree.h: Add tree_word_list and tree_word_list_command + classes for text functions. + + Fri Jul 3 05:13:15 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.16. + + * builtins.h builtins.cc: New files for builtin functions. + Implement a few simple builtin functions. + + * tree.cc tree.h: Add tree_builtin type for builtin functions. + + * tree.cc tree.h: eval (args...) New virtual function. + + Thu Jul 2 01:27:38 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.15. + + * symtab.h, symtab.cc: Allow variables and functions to be tagged + as read-only or read-write. + + Wed Jul 1 15:54:36 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * input.cc and octave.cc: allow input to come from a file. + + * lex.l: to accept `#' as a comment character (allows one to + use the `#!/bin/octave' style script hack). + + * doc: New directory containing skeleton stuff + * SERVICE: New file from GCC. + * BUGS: New file, now produced from doc/bugs.texi. + * INSTALL: New file, now produced from doc/install.texi. + + Sat Jun 27 15:52:37 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.14. + + * Fixed parser to eliminate reduce/reduce conflicts. + + * Fixed parser to recognize assignment to multiple identifiers + (e.g., [E,V] = eig (A); ). + + * Quickie implementation of indexed array evaluation. Works for + scalar indices, but not range/array indices. + + Fri Jun 26 04:23:12 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.12. + + * Hooks added for indexed array evaluation and assignment. + * Colon expression implementation improved. + * Implementation of for command eval() improved. + + Thu Jun 25 00:28:12 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.11. + + * Colon expressions added. + * For command added, but the implementation needs work. + + Wed Jun 24 15:09:36 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.10. + + * Cheesy signal handler added to catch interrupts. + + * Matrix input works, even for nested matrices. Some error + checking is done while the matrix is evaluated to ensure that + the number of rows and columns match up. + + Mon Jun 22 00:21:49 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.9. + + * Command line matrix input partially implemented. It's not yet + possible to enter nested matrices, but it is possible to enter + simple matrices (e.g. [1,2;a,b+c], where a, b, and c are scalars. + + * Version 0.8. + + * If commands added. + + * Version 0.7. + + * Command chains added. + * Boolean operations added, tested for scalars. + * While loop added, tested for simple commands. + + Fri Jun 19 05:50:44 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.6. + + At this early stage, while a lot of changes are being made very + quickly, ChangeLog entries will probably just list features added. + + * Variable assignment works for scalars. + * Simple scalar expressions work. + + Thu Jun 18 06:44:24 1992 John W. Eaton (jwe@schoch.che.utexas.edu) + + * Version 0.5. + + * src/version.h: For all the pre-alpha distributions, count + versions as 0.1, etc. instead of 0.01. + + * Makefile: (dist) Automatically update version_string in + src/version.h. + + * symtab.h, symbtab.cc: New files for symbol tables. + + * tree.h, tree.cc: New files for parse trees. + + * Lots of work unrecorded here. Octave is now self-contained, the + tree routines are being redesigned, etc. + + Fri Mar 20 17:03:16 1992 John W. Eaton (jwe@andy.che.utexas.edu) + + * Version 0.02. Octave understands some simple matrix + expressions, but it is not yet possible for matrix elements to + be constructed from expressions. + + Thu Mar 19 06:13:39 1992 John W. Eaton (jwe@andy.che.utexas.edu) + + * Version 0.01. Octave understands simple scalar expressions. + Hey, Hey! It is not yet self contained -- I'm still linking to + the old libraries in /usr/local/c++-classes, and this isn't likely + to change for a while. (Other things are much more important than + making the distribution work on other machines. Sorry...) + + Fri Feb 21 05:06:38 1992 John W. Eaton (jwe@andy.che.utexas.edu) + + * Version 0.00. This includes the basic directory structure, + makefiles, and a lot of the old Fortran source, including a way to + make a libcruft.a. Octave compiles and accepts input (with + history and editing) but doesn't do much else. + + Wed Feb 19 06:20:44 1992 John W. Eaton (jwe@andy.che.utexas.edu) + + * ChangeLog: New file. diff -cNr octave-3.4.0/etc/OLD-ChangeLogs/doc-ChangeLog octave-3.4.1/etc/OLD-ChangeLogs/doc-ChangeLog *** octave-3.4.0/etc/OLD-ChangeLogs/doc-ChangeLog 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/OLD-ChangeLogs/doc-ChangeLog 2011-06-15 11:13:48.000000000 -0400 *************** *** 0 **** --- 1,3176 ---- + 2011-04-14 Rik + + * interpreter/plot.txi: Add colstyle function to documentation. + + 2011-04-12 Rik + + * interpreter/expr.txi: Correct use of it's -> its in documentation. + + 2011-04-12 Ben Abbott + + * interpreter/data.txi: Replace xref{Data Structures} with + xref{Structures}. + + 2011-04-11 Rik + + * interpreter/func.txi: Add discussion of isargout to Ignoring + Arguments section of documentation. + + 2011-04-07 Rik + + * interpreter/Makefile.am: Add spellcheck target to documentation + Makefile. + + 2011-04-06 Rik + + * interpreter/numbers.txi, interpreter/strings.txi: Group commonly used + isXXX functions together in documentation. + + 2011-04-06 Rik + + * interpreter/system.txi, interpreter/var.txi: Move pack() function to + proper place in documentation. + + 2011-04-06 Rik + + * interpreter/diffeq.txi, interpreter/eval.txi, interpreter/plot.txi, + interpreter/var.txi: Clean up operator and function indices. + + 2011-04-04 Rik + + * interpreter/plot.txi: Add warning about single precision in FLTK. + + 2011-04-04 Rik + + * interpreter/doccheck/aspell-octave.en.pws, interpreter/nonlin.txi, + interpreter/tips.txi: Spellcheck documentation for 3.4.1 release. + + 2011-04-04 Rik + + * interpreter/container.txi, interpreter/dynamic.txi, + interpreter/install.txi, interpreter/system.txi, interpreter/tips.txi: + Grammarcheck files for 3.4.1 release. + + 2011-04-04 Rik + + * interpreter/grammar.txi: Remove reference to deprecated function + perror(). + + 2011-04-03 Rik + + * interpreter/grammar.txi, interpreter/octave.texi: Add new section + on parsing to documentation. Add functions add_input_event_hook, + remove_input_event_hook, missing_function_hook to documentation. + + 2011-04-03 Rik + + * interpreter/linalg.txi: Add blkmm function to documentation. + + 2011-04-02 Rik + + * interpreter/stats.txi: Add quantile, prctile functions to + documentation. + + 2011-04-02 Rik + + * interpreter/system.txi: Add isdeployed function to documentation. + + 2011-03-31 Rik + + * interpreter/io.txi: Add list_in_columns, terminal_size functions + to documentation. + + 2011-03-31 Rik + + * interpreter/errors.txi, interpreter/octave.texi: Add onCleanup + function to documentation. + + 2011-03-31 Rik + + * interpreter/contrib.txi: Add recommended format for commit messages + which reference the bug tracker. + + 2011-03-28 Rik + + * interpreter/expr.txi: Eliminate space between variable and + parenthesis when using indexing. + * interpreter/intro.txi, interpreter/io.txi: Fix typos in docstring. + * interpreter/tips.txi: Add new recommendations for double spaces at + start of sentences and suggested variable names. + + 2011-03-28 Rik + + * interpreter/basics.txi: Add do_braindead_shortcircuit_evaluation to + the list of variables set by --traditional option. + + 2011-03-27 Rik + + * interpreter/expr.txi: Add allow_noninteger_range_as_index to + documentation. + + 2011-03-27 Rik + + * interpreter/expr.txi: Add do_braindead_shortcircuit_evaluation to + documentation. + + 2011-03-26 Rik + + * interpreter/doccheck/mk_undocumented_list: Add error_text to list + of functions not requiring a docstring. + + 2011-03-19 Rik + + * interpreter/container.txi: Add cellindexmat function to documentation. + + 2011-03-19 Rik + + * interpreter/oop.txi: Add optimize_subsasgn_calls function to + documentation. + + 2011-03-19 Rik + + * interpreter/stats.txi: Add runlength function to documentation. + + 2011-03-19 Rik + + * interpreter/plot.txi: Add isocolors, isonormals, isosurface functions + to documentation. + + 2011-03-19 Rik + + * interpreter/basics.txi: Add dump_prefs to documentation. + + 2011-03-19 Rik + + * interpreter/octave.texi, interpreter/plot.txi: Add daspect, pbaspect + functions to documentation. + + 2011-03-19 Rik + + * interpreter/octave.texi, interpreter/plot.txi: Add getappdata, + setappdata, isappdata, rmappdata functions to documentation. + + 2011-03-18 Rik + + * interpreter/matrix.txi: Add nth_element function to documentation. + + 2011-03-18 Rik + + * interpreter/doccheck/aspell-octave.en.pws, interpreter/io.txi, + interpreter/octave.texi, interpreter/plot.txi: Add uimenu, uigetdir, + uigetfile, and uiputfile to documentation. + + 2011-03-18 Rik + + * interpreter/nonlin.txi, interpreter/octave.texi: Add fminbnd, + fminunc functions to documentation. + + 2011-03-18 Rik + + * interpreter/arith.txi, interpreter/linalg.txi: Add function chop + to documentation. Re-order Utility Functions and move function dot + from linear algebra section to be with other utility functions. + + 2011-03-18 Rik + + * interpreter/basics.txi: Add gen_doc_cache, get_help_text, + get_help_text_from_file, get_first_help_sentence to documentation. + + 2011-03-17 Rik + + * interpreter/io.txi: Add fileread to documentation. + + 2011-03-17 Rik + + * interpreter/system.txi: Add gethostname to documentation + + 2011-03-17 Rik + + * interpreter/doccheck/mk_undocumented_list: Add fmod, + octave_tmp_file_name to list of exceptions which are already + documented. + + 2011-03-17 Iain Murray + + * interpreter/system.txi: Remove nprocs and nprocs_conf functions + from documentation and replace with nproc. + + 2011-03-16 Rik + + * interpreter/system.txi: Add nproc and nproc_conf functions to + documentation. + + 2011-03-03 Rik + + * interpreter/matrix.txi: Deprecate is_duplicate_entry. + + 2011-03-02 Rik + + * interpreter/stats.txi: Correctly refer to discrete uniform + distribution in documentation. + + 2011-03-01 Jordi Gutiérrez Hermoso + + * interpreter/dynamic.txi: Make it clear that is + a C++ source file and refer to the section where other languages + are discussed. + + * faq/OctaveFAQ.texi: Major update to FAQ. Whitespace changes. + Update comments to version 3.4 of Octave. Summarise important + points of the NEWS file. We no longer have + stable/testing/unstable, only stable and development. Mention + newer versions of Windows. Update references to Matlab's latest + version. Mention that `!' can't be used for shell escapes. + Update other numbers like number of pages in manual, version + numbers, dates when things happened, file sizes. Clean out dead + links. Remove mentions of bugs@octave.org email address. Don't + say you can get Octave tapes from the FSF. Mention Ubuntu as + another distribution with Octave packages. Change package names + in anticipation for the forthcoming 3.4 binary packages. Explain + nested functions. Hint that classdef might happen in 3.5. + Mention 3D patches in the OpenGL backend. Clarify Matlab-style + short-circuiting. Specify that Octave also onCleanup. + + 2011-02-28 Rik + + * interpreter/numbers.txi: Add isrow, iscolumn functions to manual. + + 2011-02-25 Jordi Gutiérrez Hermoso + + * faq/OctaveFAQ.texi: Uniformise all mentions of Matlab to be + typeset in the @sc{Matlab} style. Also do some minor + proofreading like removing trailing spaces and some minor + spellchecking. + + 2011-02-19 Rik + + * interpreter/install.txi: Remove reference to POSIX regex library. + + 2011-02-14 Rik + + * interpreter/arith.txi, interpreter/io.txi, interpreter/oop.txi: + Remove functions which have no DOCSTRING entries. + + 2011-02-10 Carlo de Falco + + * interpreter/linalg.txi: Added gmres to the specialized solvers. + + + 2011-02-06 John W. Eaton + + * interpreter/contributors.in: Add Fotios Kasolis to the list. + + 2011-02-05 Rik + + * interpreter/doccheck/mk_undocumented_list: Add dbnext, alias for + dbstep, to functions not requiring a docstring. + + 2011-02-05 Rik + + * interpreter/doccheck/aspell-octave.en.pws: Add new spelling + exceptions to Octave private dictionary. + + 2011-02-05 Rik + + * interpreter/octave.texi: Update copyright on manual to 2011. + + 2011-02-05 Rik + + * interpreter/mkoctfile.1, interpreter/octave-config.1, + interpreter/octave.1: Overhaul man pages for release 3.4. + + 2011-02-04 Rik + + * icons/octave-logo.ico: Add logo format left out of last changeset. + + 2011-02-04 Rik + + * icons/: New directory for icons and .desktop files. + * icons/octave-logo.png, icons/octave-logo.svg: Add new Octave O logo + to Mercurial. + * Makefile.am: New Makefile to build .desktop file and distribute logos. + * octave.desktop.in, octave-sombrero.png: Moved from examples directory. + * octave_branding_samples.svg: Original logos and branding material for + Octave. This file is not distributed. + + * interpreter/octave.texi: Use new O logo on title page. + * interpreter/octave_logo.eps: O logo in eps form for Postscript output. + * interpreter/octave_logo.pdf: O logo in pdf form for pdf output. + + 2011-01-30 Rik + + * interpreter/Makefile.am: Use pattern-style rules to make .texi files + rather than older suffix-style rules. + + 2011-01-30 Rik + + * interpreter/octave.texi: Add new section + "Customizing Toolkit Behavior" + + * interpreter/plot.txi: Add functions gnuplot_binary, mouse_wheel_zoom, + and gui_mode to new section. + + 2011-01-30 Rik + + * interpreter/optim.txi: Deprecate glpkmex function and remove + from documentation. + + 2011-01-30 John W. Eaton + + * interpreter/install.txi (Compiling Octave with 64-bit Indexing): + Remove info about ARPACK. + + 2011-01-29 Rik + + * interpreter/octave.texi: Add new subsection on FLTK interaction. + * interpreter/plot.txi: Add fltk_gui_mode, fltk_mouse_wheel_zoom + functions to documentation. + + 2011-01-29 Rik + + * interpreter/arith.txi: Add accumdim function to documentation. + + 2011-01-29 Rik + + * interpreter/set.txi: Add powerset function to documentation. + + 2011-01-29 Rik + + * interpreter/system.txi: Add S_ISSOCK function to documentation. + + 2011-01-29 Rik + + * interpreter/system.txi: Add S_ISBLK and related functions to + documentation. + + 2011-01-29 Rik + + * interpreter/optim.txi: Add glpkmex function to documentation. + + 2011-01-29 Rik + + * interpreter/system.txi: Add compare_versions function to + documentation. + + 2011-01-27 Rik + + * interpreter/numbers.txi: Add sizemax function to documentation. + * interpreter/doccheck/mk_undocumented_list: Add ifelse to functions + not requiring documentation. + + 2011-01-27 Rik + + * interpreter/image.txi: Add whitebg function to documentation. + * interpreter/plot.txi: Add reset function to documentation. + + 2011-01-27 Rik + + * interpreter/linalg.txi: Add rsf2csf to documentation. + + 2011-01-27 Rik + + * interpreter/geometry.txi: Add trisurf to documentation. + + 2011-01-27 John W. Eaton + + * interpreter/arith.txi (Rational Approximations): Move here. + Update menu. + * interpreter/io.txi: From here. + Update menu. + * interpreter/octave.texi (Top): Update detailed menu. + + 2011-01-26 John W. Eaton + + * interpreter/mk_doc_cache.m, interpreter/mkoctfile.1, + interpreter/munge-texi.cc, interpreter/doccheck/mk_undocumented_list: + Strip trailing whitespace. + + 2011-01-26 Rik + + * interpreter/basics.txi: Use @code to eliminate extra single quotes + in index. + * interpreter/container.txi: Add @opindex citations for '.', '{' and + '}'. + + 2011-01-26 Rik + + * interpreter/octave-bug.1: Delete obsolete man page + * interpreter/Makefile.am: Stop distributing octave-bug.1 man page. + + 2011-01-26 Olaf Till + + * interpreter/package.txi: Document variables MKOCTFILE, + OCTAVE_CONFIG, and OCTAVE exported by pkg for configure and make. + + 2011-01-25 Rik + + * Makefile.am: Remove pass-through rules for AUTHORS, BUGS, and + INSTALL.OCTAVE which are no longer required. + + 2011-01-24 Rik + + * Makefile.am, interpreter/Makefile.am: Add rule to build AUTHORS file. + * interpreter/preface.txi: Add @ifclear rule to build AUTHORS file. + + 2011-01-23 Rik + + * interpreter/install.txi: Redo build instructions for release 3.4. + * interpreter/doccheck/aspell-octave.en.pws: Add new words to + Octave private dictionary from install.txi + + 2011-01-20 Rik + + * doc/interpreter/diagperm.txi, doc/interpreter/linalg.txi, + doc/interpreter/sparse.txi: Use non-breaking spaces between certain + adjectives and their linked nouns in docstrings. + + 2011-01-20 Rik + + * doc/interpreter/doccheck/README: Update documentation for + documentation scripts. + + 2011-01-20 Rik + + * doc/interpreter/doccheck/aspell-octave.en.pws, + doc/interpreter/plot.txi: Use @nospell macro on certain words in + docstring. + + 2011-01-20 John W. Eaton + + * faq/OctaveFAQ.texi, interpreter/doccheck/aspell-octave.en.pws, + interpreter/octave.texi, interpreter/plot.txi: Update for + backend -> graphics_toolkit change. + + * interpreter/interpimages.m, interpreter/geometryimages.m, + interpreter/sparseimages.m, interpreter/plotimages.m: + Call graphics_toolkit, not backend. + + 2011-01-19 Rik + + * interpreter/doccheck/aspell-octave.en.pws: Add new words to Octave + private dictionary. + + 2011-01-19 Rik + + * doc/interpreter/diagperm.txi, doc/interpreter/dynamic.txi, + doc/interpreter/func.txi, doc/interpreter/install.txi, + doc/interpreter/intro.txi, doc/interpreter/numbers.txi, + doc/interpreter/oop.txi, doc/interpreter/plot.txi, + doc/interpreter/sparse.txi, doc/interpreter/stats.txi: Grammarcheck + txi files for 3.4 release. + + 2011-01-17 Rik + + * interpreter/quad.txi: Add quadcc to documentation. + + 2011-01-15 Rik + + * interpreter/expr.txi: Add merge/ifelse function to documentation. + + 2011-01-15 Rik + + * interpreter/func.txi, interpreter/intro.txi: Eliminate + @deffn macros. + + 2011-01-15 Rik + + * interpreter/doccheck/mk_undocumented_list: Update list of exceptions + not requiring documentation. + + 2011-01-15 Rik + + * interpreter/stats.txi: Add stdnormal_xxx functions to documentation. + + 2011-01-14 Rik + + * interpreter/matrix.txi: Add undocumented postpad to documentation. + + 2011-01-14 Rik + + * interpreter/octave.texi, interpreter/poly.txi: Add undocumented + polyaffine to documentation. + + 2011-01-14 Rik + + * interpreter/container.txi: Add undocumented nfields to documentation. + + 2011-01-14 Rik + + * interpreter/poly.txi: Add undocumented ppder, ppint, ppjumps + functions to documentation. + + 2011-01-14 Rik + + * interpreter/system.txi: Add undocumented matlabroot to documentation. + + 2011-01-14 Rik + + * interpreter/linalg.txi: Add undocumented svd_driver to documentation. + + 2011-01-14 Rik + + * interpreter/arith.txi: Add undocumented cbrt to documentation. + + 2011-01-14 Rik + + * interpreter/arith.txi: Add undocumented erfcx to documentation. + + 2011-01-14 John W. Eaton + + * Update copyright notices for 2011. + + 2011-01-12 Rik + + * interpreter/basics.txi: Add to cursor movement section. + + 2011-01-12 John W. Eaton + + * interpreter/basics.txi (Commands For History): + Document history_control. + + 2011-01-10 John W. Eaton + + * interpreter/contributors.in: Add Konstantinos Poulios to the list. + + 2011-01-10 Jordi Gutiérrez Hermoso + + * interpreter/diagperm.txi: Remove Matlab euphemism. + * interpreter/dynamic.txi: Ditto. Also use @file macro for a + couple of filenames. + + 2011-01-10 John W. Eaton + + * interpreter/container.txi (Basic Usage and Examples): + Document print_struct_array_contents. + + 2011-01-05 Rik + + * interpreter/octave.texi: Put statistics detailmenu in correct order. + + 2011-01-05 Rik + + * interpreter/numbers.txi, interpreter/obsolete.txi, + interpreter/oop.txi, interpreter/stats.txi: Use @headitem macro to + create column heads for @multitable entries. + + 2011-01-05 Rik + + * interpreter/grammar.txi: Update list of keywords in grammar. + + 2011-01-05 John W. Eaton + + * interpreter/plot.txi (Introduction to Plotting): Formatting + and style fixes. Eliminate redundant example. + + 2011-01-03 Rik + + * interpreter/octave.texi: Add new menu item "Correlation and + Regression Analysis" + * interpreter/stats.txi: Update documentation chapter on + basic statistics. + + 2010-12-31 Rik + + * interpreter/expr.txi: Add isindex function to documentation + * interpreter/func.txi: Add isargout function to documentation + * interpreter/matrix.txi: Add isfinite function to documentation + * interpreter/numbers.txi: Add ishermitian function to documentation + + 2010-12-31 Kai Habel + + * interpreter/arith.txi: Add curl and divergence function. + + 2010-12-22 Tatsuro Matsuoka + + * nonlin.txi: Correct docs for using Jacobian with fsolve. + + 2010-12-22 Judd Storrs + + * interpreter/expr.txi: Insert operator function docstrings. + * interpreter/oop.txi: Remove conflicting anchors for operator + functions. Add cindex entries for overloaded operators. Add + overloads to opindex. + * interpreter/numbers.txi: Fix colon opindex. + + 2010-12-19 Rik + + * interpreter/func.txi, interpreter/sparse.txi: Remove documentation + on deprecated function dispatch. + + 2010-12-19 Rik + + * interpreter/Makefile.am: Update mk_undocumented_list target to use + $(srcdir) for portability. + + 2010-12-17 Rik + + * interpreter/container.txi, interpreter/func.txi, + interpreter/linalg.txi, interpreter/numbers.txi, + interpreter/signal.txi, interpreter/sparse.txi, interpreter/stats.txi, + interpreter/system.txi: Remove deprecated functions from manual. + + 2010-12-17 Rik + + * interpreter/doccheck/mk_undocumented_list: Update script to + automatically remove functions from the "test/" and "doc/interpreter" + directories. + + 2010-12-17 Rik + + * interpreter/Makefile.am: Add undocumented_list target to create list + of undocumented functions. + + 2010-12-17 John W. Eaton + + * interpreter/plot.txi (Two-Dimensional Plots): Document comet3. + + 2010-12-17 John W. Eaton + + * interpreter/plot.txi (Introduction to Graphics Structures): + Dcoument isprop. + + 2010-12-17 Rik + + * interpreter/oop.txi: Redo table rendered incorrectly in Info + environment. + + 2010-12-17 Rik + + * interpreter/numbers.txi: Remove obsolete documentation about 64-bit + integer arithmetic. + + 2010-12-16 Rik + + * interpreter/doccheck/mk_undocumented_list: Update list of exception + functions not requiring documentation. + + 2010-12-09 Doug Stewart + + * interpreter/plot.txi: changed origial to origin in Quiver section + + 2010-12-09 Kai Habel + + * interpreter/plot.txi: Add pie3 function. + + 2010-11-26 John W. Eaton + + * interpreter/install.txi (Compiling Octave with 64-bit + Indexing): New section. + + 2010-11-23 John W. Eaton + + * interpreter/install.txi: Delete obsolete statement about + needing a patch for makeinfo. + + 2010-11-18 John W. Eaton + + * interpreter/contributors.in: Add Christos Dimitrakakis to the list. + + 2010-11-18 John W. Eaton + + * interpreter/contributors.in: Add Daisuke Takago to the list. + + 2010-11-15 Rik + + * interpreter/bugs.txi, interpreter/emacs.txi, interpreter/func.txi, + interpreter/geometry.txi, interpreter/linalg.txi, + interpreter/octave.texi, interpreter/package.txi, interpreter/plot.txi, + interpreter/stmt.txi, interpreter/strings.txi, interpreter/system.txi: + Update info-based documentation menus to include new nodes. + + 2010-11-15 Rik + + * interpreter/octave.texi, interpreter/plot.txi: Rename subsection + "Printing Plots" to "Printing and Saving Plots". Add reference to + new saveas function. + + 2010-11-10 John W. Eaton + + * interpreter/munge-texi.cc: Eliminate special case for __DECCXX. + + 2010-11-01 Jordi Gutiérrez Hermoso + + * interpreter/numbers.txi: Explain that ranges in vectors do get + expanded. + + 2010-10-24 Rik + + * interpreter/doccheck/mk_undocumented_list: New verification + script produces a list of undocumented functions. + + 2010-10-23 John W. Eaton + + * interpreter/io.txi (Simple File I/O): Document textscan and + textread. + + 2010-10-23 Ben Abbott + + * interpreter/strings.txi: Add @DOCSTRING(strread). + + 2010-10-23 John W. Eaton + + * interpreter/io.txi (Opening and Closing Files): + Document is_valid_file_id. + + 2010-10-21 John W. Eaton + + * interpreter/contributors.in: Add Gunnar FarnebÀck to the list. + + 2010-10-18 John W. Eaton + + * interpreter/image.txi (Displaying Images): + Delete documentation for image_viewer. + + 2010-10-17 John W. Eaton + + * interpreter/strings.txi: Document untabify. + + 2010-09-30 John W. Eaton + + * interpreter/contributors.in: Add Jordi Gutiérrez Hermoso to + the list. Fix spelling of SÞren Hauberg. + + 2010-09-28 Rik + + * doc/interpreter/Makefile.am, doc/interpreter/geometryimages.m, + doc/interpreter/images.awk, doc/interpreter/interpimages.m, + doc/interpreter/plotimages.m, doc/interpreter/sparseimages.m: Use + Octave to create pdf versions of plots for documentation rather than + Ghostscript via Makefile. + + 2010-09-28 Rik + + * doc/interpreter/geometryimages.m, doc/interpreter/interpimages.m, + doc/interpreter/plotimages.m, doc/interpreter/sparseimages.m: Untabify + scripts. + + 2010-09-27 Rik + + * interpreter/mk_doc_cache.m: Use single quotes for regular expression + patterns where possible. + + 2010-09-25 Rik + + * interpreter/mk_doc_cache.m: Remove requirement for PCRE to build + doc cache. Correctly parse first sentence from docstrings with + multiple @deftypefn lines. + + 2010-09-15 John W. Eaton + + * interpreter/Makefile.am (EXTRA_DIST): Add images.awk to the list. + + 2010-08-15 Rik + + * interpreter/matrix.txi: Add documentation for randi function. + + 2010-08-13 Rik + + * interpreter/Makefile.am: Update @EXAMPLEFILE dependencies. + + 2010-08-10 Rik + + * interpreter/Makefile.am: Change dependency to $(srcdir)/images.mk. + + 2010-08-08 Rik + + * interpreter/Makefile.am: Add documentation dependency on images.mk. + * interpreter/config-images.sh: Create images.mk in passed in srcdir, + rather than pwd. + + 2010-08-08 Rik + + * interpreter/images.awk: HTML images depend on octave.html/index.html. + + 2010-08-01 Rik + + * interpreter/basics.txi, interpreter/contrib.txi, + interpreter/diagperm.txi, interpreter/dynamic.txi, interpreter/eos.txi, + interpreter/expr.txi, interpreter/geometry.txi, + interpreter/install.txi, interpreter/matrix.txi, + interpreter/numbers.txi, interpreter/oop.txi, interpreter/plot.txi, + interpreter/sparse.txi, interpreter/stats.txi, interpreter/testfun.txi, + interpreter/tips.txi: Grammarcheck documentation. Add @noindent lines + and ensure line length is less than 80. + + 2010-07-28 Rik + + * interpreter/arith.txi, interpreter/audio.txi, interpreter/basics.txi, + interpreter/container.txi, interpreter/contrib.txi, + interpreter/debug.txi, interpreter/diagperm.txi, + interpreter/diffeq.txi, interpreter/dynamic.txi, interpreter/emacs.txi, + interpreter/errors.txi, interpreter/eval.txi, interpreter/expr.txi, + interpreter/func.txi, interpreter/image.txi, interpreter/install.txi, + interpreter/interp.txi, interpreter/intro.txi, interpreter/io.txi, + interpreter/linalg.txi, interpreter/matrix.txi, interpreter/nonlin.txi, + interpreter/numbers.txi, interpreter/optim.txi, + interpreter/package.txi, interpreter/plot.txi, interpreter/poly.txi, + interpreter/quad.txi, interpreter/sparse.txi, interpreter/stmt.txi, + interpreter/strings.txi, interpreter/testfun.txi, interpreter/tips.txi, + interpreter/var.txi: Grammarcheck .txi documentation files. + + 2010-07-21 Jaroslav Hajek + + * interpreter/tips.txi: Update some tips. + + 2010-07-19 Rik + + * interpreter/mk_doc_cache.m: Use regexp rather than fussing with + character arrays. + + 2010-07-19 Rik + + * interpreter/matrix.txi: Add new function repelems to matrix chapter. + + 2010-07-18 Rik + + * interpreter/doccheck/spellcheck, + interpreter/doccheck/spellcheck/add_to_aspell_dict: + Use case insensitive sort in spellcheck scripts. + + 2010-07-18 Rik + + * interpreter/doccheck/aspell-octave.en.pws: Add Octave-specific words + from stats.texi to private Aspell dictionary. + + 2010-07-17 Rik + + * interpreter/doccheck: New directory for spelling/grammar scripts. + * interpreter/doccheck/README: Instructions for using scripts. + * interpreter/doccheck/spellcheck: Script to spellcheck a Texinfo file. + * interpreter/doccheck/aspell.conf: GNU Aspell configuration file for + Octave documentation. + * interpreter/doccheck/aspell-octave.en.pws: Private Aspell dictionary. + * interpreter/doccheck/add_to_aspell_dict: Script to add new + Octave-specific words to private Aspell dictionary. + * interpreter/octave.texi: New @nospell macro which forces Aspell to + ignore the word marked by the macro. + * interpreter/mk_doc_cache.m: Skip new @nospell macro when + building doc_cache. + * interpreter/arith.txi, interpreter/audio.txi, + interpreter/bugs.txi, interpreter/contrib.txi, + interpreter/debug.txi, interpreter/diagperm.txi, + interpreter/dynamic.txi, interpreter/geometry.txi, + interpreter/matrix.txi, interpreter/numbers.txi, + interpreter/oop.txi, interpreter/package.txi, + interpreter/sparse.txi, interpreter/tips.txi: + Spellcheck documentation. + + 2010-07-01 Rik + + * refcard/refcard.tex: Fix italic macro typo for stem. + + 2010-06-28 Rik + + * refcard/refcard.tex: Fix typos in refcard (bug #30260). + + 2010-06-16 Rik + + * ChangeLog: Correctly break lines > 80 characters. + + 2010-06-16 Rik + + * interpreter/intro.txi: Clarify wording. (bug #30165). + + 2010-06-16 Rik + + * interpreter/set.txi: Remove reference to deprecated function. + + 2010-06-16 Rik + + * interpreter/expr.txi, interpreter/func.txi, interpreter/install.txi, + interpreter/plot.txi, interpreter/sparse.txi: Periodic grammar check + of documentation to ensure a common format. + + 2010-05-27 Rik + + * interpreter/arith.txi, interpreter/diffeq.txi, interpreter/intro.txi, + interpreter/nonlin.txi, interpreter/poly.txi, interpreter/sparse.txi: + Replace @ifinfo with @ifnottex. + + 2010-05-07 John W. Eaton + + * basics.txi: Update list of internal variables for --traditional. + + 2010-05-02 Rik + + * interpreter/contrib.txi, interpreter/install.txi, + interpreter/plot.txi, interpreter/sparse.txi, + interpreter/octave.texi: Remove tabs causing problems with + pdf formatting. + + 2010-04-14 Shai Ayal + + * interpreter/plot.txi: Document keypress and mouse callback + properties + + 2010-04-07 John W. Eaton + + * interpreter/testfun.txi: Document runtests. + + 2010-03-24 John W. Eaton + + * interpreter/bugs.txi: Update for bug tracker. + + 2010-02-11 Jaroslav Hajek + + * interpreter/expr.txi: Mention no ternary operator and the ifelse + fucntion as a possible replacement. + + 2010-02-09 Jaroslav Hajek + + * interpreter/tips.txi: More tips. + + 2010-01-30 Jaroslav Hajek + + * interpreter/expr.txi (Assignment): Document return value of + multi-assignment with skipped values. + + 2010-01-29 John W. Eaton + + * interpreter/poly.txi (Derivatives and Integrals): + Don't include docstring for polyinteg. + + * interpreter/obsolete.txi (Obsolete Functions): + Remove weibcdf, weibinv, weibpdf, and weibrnd from the table. + + 2010-01-28 John W. Eaton + + * interpreter/obsolete.txi: New file. + * interpreter/Makefile.am (MUNGED_TEXI_SRC): Add it to the list. + * interpreter/octave.texi (Obsolete Functions): New menu item. + Include obsolete.texi. + + 2010-01-27 Jaroslav Hajek + + * interpreter/expr.txi: Document using dummy outputs. + * interpreter/func.txi: Document using dummy inputs. + + 2010-01-20 John W. Eaton + + * interpreter/munge-texi.cc: Delete Emacs local-variable settings. + Untabify. + + 2010-01-17 Thorsten Meyer + + * interpreter/container.txi (Creating Cell Arrays): Add + docstring for cellslices function. + + 2010-01-09 John W. Eaton + + * interpreter/munge-texi.cc: Avoid C-style casts. + (main): Call usage if fewer than two arguments. + + 2009-12-20 Rik + + * interpreter/geometryimages.m: Correctly set postscript output when + QHULL library does not exist and sombrero image is printed. + + 2009-12-19 Rik + + * Makefile.am, faq/Makefile.am, interpreter/Makefile.am, + liboctave/Makefile.am, refcard/Makefile.am, interpreter/images.awk: + Eliminate TOPDIR variable in favor of built-in automake variables of + top_builddir and top_srcdir. + + 2009-12-17 Rik + + * interpreter/Makefile.am: use automake syntax to build munge-texi. + + 2009-12-11 Rik + + * interpreter/Makefile.am: remove install-local target and use automake + syntax to install doc-cache file. + + 2009-12-10 Rik + + * interpreter/Makefile.am: Replace distdir-local with dist-hook rule as + it is better supported by automake. + + 2009-12-10 Rik + + * interpreter/Makefile.am: new distdir-local rule to check for presence + of necessary libraries before packaging distribution + + 2009-12-08 Rik + + * interpreter/Makefile.am: Distribute all generated documentation + (.pdf, .ps, .html, .dvi) to remove build requirement for TexInfo + + 2009-12-07 Rik + + * interpreter/Makefile.am, faq/Makefile.am, liboctave/Makefile.am: + Document use of NOTPARALLEL directive. + + 2009-12-07 Rik + + * refcard/Makefile.am: Add CLEANFILES and MAINTAINERCLEANFILES objects + to properly clean directory. + + 2009-12-05 Rik + + * interpreter/Makefile.am: Set dependency of *.texi files on + munge-texi source code rather than executable. + + 2009-12-04 Rik + + * interpreter/images.awk: Revert to using Ghostscript for documentation + pdf image creation rather than Octave. + + 2009-12-04 Rik + + * Makefile.am, interpreter/Makefile.am, liboctave/Makefile.am: remove + lingering configuration support for conf.texi. + * liboctave/Makefile.am: distribute .texi files. + + 2009-12-04 Rik + + * interpreter/geometryimages.m, interpreter/interpimages.m, + interpreter/sparseimages.m, interpreter/plotimages.m: + Switch to color output for PostScript documentation images. + + 2009-12-04 Rik + + * interpreter/geometryimages.m, interpreter/interpimages.m, + interpreter/sparseimages.m, interpreter/plotimages.m: + Set default paperorientation to landscape to stop warning message. + + 2009-12-04 Ben Abbott + + * interpreter/geometryimages.m, interpreter/interpimages.m, + interpreter/sparseimages.m: Set default papersize to the desired + imagesize. + + 2009-12-04 John W. Eaton + + * interpreter/images.awk: Emit rules to copy PNG files to + octave.html directory once it is created. + * interpreter/Makefile.am (all-local): Depend on $(HTMLDIR_IMAGES). + (IMAGES): Include $(HTMLDIR_IMAGES) in the list. + + 2009-12-04 John W. Eaton + + * interpreter/octave.texi: Include version.texi instead of conf.texi. + * interpreter/Makefile.am (../conf.texi): Delete rule. + (octave_TEXINFOS): Delete ../conf.texi from the list. + ($(srcdir)/octave.info octave.dvi octave.pdf octave.html): + Remove duplicate $(octave_TEXINFOS) dependency. + Depend on $(srcdir)/version.texi. + + * liboctave/liboctave.texi: Include version.texi instead of conf.texi. + * liboctave/Makefile.am (../conf.texi): Delete rule. + (dist_liboctave_TEXINFOS): Delete ../conf.texi from the list. + (.NOTPARALLEL): Correct spelling of target. + ($(srcdir)/liboctave.info liboctave.dvi liboctave.html liboctave.pdf): + Depend on $(srcdir)/version.texi + + * conf.texi.in: Delete. + * Makefile.am: Delete rules for conf.texi. + (.NOTPARALLEL): New target. + + 2009-12-03 John W. Eaton + + * doc/Makefile.am (MUNGED_TEXI_SRC): Define as explicit list. + (TXI_SRC): Define using substitution rule. + + * doc/Makefile.am (conf.texi): Only substitute OCTAVE_VERSION. + * conf.texi: Likewise. + + * doc/interpreter/find-docstring-files.sh: New file. + * doc/interpreter/Makefile.am (DOCSTRING_FILES): Use it. + ($(TOPDIR)/src/DOCSTRINGS, $(TOPDIR)/scripts/DOCSTRINGS): + Delete rules. + (.txi.texi): Pass $(top_srcdir) to munge-texi. + (octave.info octave.dvi octave.pdf octave.html): + Depend on $(octave_TEXINFOS), not $(nodist_octave_TEXINFOS). + (nodist_octave_TEXINFOS): Delete variable. + (octave_TEXINFOS): Include ../conf.texi in the list. + (dist-hook): Delete target. + (EXTRA_DIST): Add find-docstring-files.sh to the list. + + * doc/interpreter/basics.texi: Eliminate @value{OCTAVEHOME} + * doc/interpreter/dynamic.txi: Delete examplefile and + longexamplefile macro definitions. Replace uses with + @EXAMPLEFILE, to be expanded by munge-texi. + * doc/interpreter/geometry.txi: Eliminate @ifset HAVE_QHULL. + * doc/interpreter/oop.txi: Delete classfile and polynomialfile + macro definitions. Replace uses with @EXAMPLEFILE, to be expanded + by munge-texi. + * doc/interpreter/sparse.txi: Eliminate @ifset HAVE_CHOLMOD, + @ifset HAVE_UMFPACK, and @ifset HAVE_COLAMD. + + * munge-texi.cc (top_srcdir): New global variable. + (main): set top_srcdir from first arg. + (usage): Include TOP-SRCDIR in the message. + (recover_from_macro, process_example_file): New functions. + (process_texi_input_file): Handle @EXAMPLEFILE tag. + + * doc/liboctave/Makefile.am (nodist_liboctave_TEXINFOS): + Delete variable. + (liboctave_TEXINFOS): Include ../conf.texi in the list. + + 2009-12-02 Rik + + * interpreter/Makefile.am: Correct Makefile.am to allow VPATH builds of + documentation + + 2009-12-01 Rik + + * faq/Makefile.am, doc/interpreter/bugs.txi, + doc/interpreter/install.txi: Eliminate false dependency on conf.texi. + + 2009-11-30 Rik + + * interpreter/Makefile.am: + Overhaul Makefile to correctly generate *.texi files and to stop their + distribution when running 'make dist' + + 2009-11-30 John W. Eaton + + * interpreter/munge-texi.cc (process_texi_input_file): Double @ in + symbol_name used in @anchor. + (extract_docstring): Double @ in function name used in @ref. + + * interpreter/mk_doc_cache.m (cmd): Transform @ in class names to + @@ when processing DOCSTRINGS files. + + 2009-11-30 John W. Eaton + + * interpreter/Makefile.a (nodist_octave_TEXINFOS): Add + contributors.texi and $(MUNGED_TEXI_SRC) to the list. + (dist_octave_TEXINFOS): Delete. + (DISTCLEANFILES, all_octave_TEXINFOS): New variables. + ($(srcdir)/octave.info, octave.dvi, octave.pdf, octave.html): + Depend on $(all_octave_TEXINFOS), not $(octave_TEXINFOS). + (octave.ps): Depend on .dvi file and EPS files, but not .texi + source files. + + 2009-11-27 David Bateman + + * doc/interpreter/contributors.in: Add Kacper Kowalik. + + 2009-11-27 David Bateman + + * interpreter/install.txi: Document that curl libraries impact ftp + objects. + * interpreter/system.txi: Document the ftp objects + + 2009-11-25 Rik + + * interpreter/Makefile.am: + Simplify doc-cache handling in Makefile.am to use only + install-data-local target + + 2009-11-24 Rik + + * interpreter/Makefile.am: + Correct Makefile so that it halts on error when unable to build + doc-cache. + + 2009-11-23 Rik + + * faq/Makefile.am, interpreter/Makefile.am, liboctave/Makefile.am: + Stop distribution of conf.texi by autotools. conf.texi must be re-made + from conf.texi.in during configure step + + 2009-11-23 Rik + + * Makefile.am: Add . to SUBDIRS to force automake to compile this + directory, and make conf.texi, before recursively compiling SUBDIRS + which depend on conf.texi + + 2009-11-11 Rik + + * Makefile.am: Add DISTCLEANFILES macro so that generated conf.texi can + be cleaned by automake. + + 2009-11-10 John W. Eaton + + * Makefile.am, faq/Makefile.am, interpreter/Makefile.am, + liboctave/Makefile.am, refcard/Makefile.am, + interpreter/config-images.sh, interpreter/images, + interpreter/images.awk: New files. + * Makefile.in, faq/Makefile.in, interpreter/Makefile.in, + liboctave/Makefile.in, refcard/Makefile.in: Delete. + * interpreter/munge-texi.cc (main, usage): Eliminate unnecessary + -d option. + * liboctave/liboctave.texi: Surround @direntry in appropriate magic. + * faq/OctaveFAQ.texi: Rename from faq/Octave-FAQ.texi. + + 2009-10-23 Rik + + * various: Periodic grammar check of Octave documentation files to + ensure a standardized format. + + 2009-10-20 Rik + + * interpreter/Makefile.in: Clean Makefile.in and remove a few + non-functional targets + + 2009-10-13 Rik + + * various: Fix various incorrect usages of deffn and deftypefn macros + + 2009-10-12 Rik + + * liboctave/Makefile.in: Simplify Makefile using GNU Make functions + * liboctave/liboctave.texi: Stop header of file, which was meant to be + commented, from being transferred into the documentation. + + 2009-10-12 Rik + + * faq/Makefile.in: Clean a few non-functional commands from Makefile + + 2009-10-12 Rik + + * refcard/Makefile.in: Simplify Makefile using GNU Make functions + + 2009-10-11 Rik + + * Makefile.in: Include texmf.cnf in distributed files to fix texinfo + runtime error with stack overflow. + + 2009-10-11 Rik + + * intepreter/Makefile.in: Fix broken command to create octave.dvi + + 2009-10-08 Jaroslav Hajek + + * intepreter/linalg.txi: Add reference to luupdate. + + 2009-10-07 Jaroslav Hajek + + * interpreter/io.txi: Add reference to fskipl. + + 2009-09-30 John W. Eaton + + * interpreter/data.txi (Built-in Data Types): + Document bitpack and bitunpack. + * interpreter/plot.txi: Delete spurious {}. Update menus. Fix + cross-referencing. + * interpreter/octave.texi: Update plotting sub-menus in detailed menu. + + 2009-09-30 Michael D. Godfrey + + * interpreter/plot.txi: Document graphics structures. + + 2009-09-14 John W. Eaton + + * interpreter/optim.txi: Document pqpnonneg. + + 2009-08-27 Jaroslav Hajek + + * interpreter/expr.txi: Mention complex comparisons change. + + 2009-08-05 Jaroslav Hajek + + * interpreter/tips.txi: Update. + + 2009-07-20 John W. Eaton + + * interpreter/contributors.in: Add Aleksej Saushev. + + 2009-06-24 Rafael Laboissiere + + * Makefile.in (dist): Drop conf.texi as prerequisite. + + 2009-06-16 Jaroslav Hajek + + * interpreter/tips.txi: Update. + + 2009-06-07 Rik + + * interpreter/plot.txi: Update some of Advanced Plotting documentation. + Updated functions delete, allchild, backend, clf, hold, and refreshdata. + + 2009-06-07 Thorsten Meyer + + * interpreter/container.txi: Udate documentation of container types + + 2009-06-03 Rik + + * interpreter/plotimages.m: Correct errorbar plot for docs. Make hist + plot reprodroducible for docs. + * interpreter/interpimages.m: Correct typo in legend of interpft plot + for docs. + + 2009-06-03 Jaroslav Hajek + + * Makefile.in: Omit conf.texi in DISTFILES. + + 2009-06-02 Jaroslav Hajek + + * interpreter/oop.txi: Update docs of polynomial class, mention + chained indexing. + + 2009-05-27 Sᅵren Hauberg + + * interpreter/errors.txi: fix 'print_usage' output. + + 2009-05-27 Sᅵren Hauberg + + * interpreter/bugs.txi: fix call to 'page_screen_output'. + + 2009-05-25 Rik + + * interpreter/Makefile.in: Add texmf.cnf to list of distributed files + (DIST_FILES) so that pdfs will build. + + 2009-05-24 Robert T. Short + + * interpreter/oop.txi: Added inheritance documentatin + + 2009-05-21 Rik + + * interpreter/Makefile.in, texmf.cnf: Change texi2pdf call to include + local TeX configuration file which increases save_history variable. + + 2009-05-17 Rik + + * interpreter/tips.txi: Change recommendation to use @tex rather than + @iftex construction. + + 2009-05-17 Rik + + * interpreter/*.txi: Simplify TeXinfo files by eliminating redundant + @iftex followed by @tex construction. Also, spellchecked all .txi + and .texi files. + + 2009-05-14 Rik + + * interpreter/arith.txi: Update section 17.8 (Mathematical Consants) + of arith.txi. + + 2009-05-01 Rik + + * interpreter/arith.txi: Update section 17.7 (Coordinate + Transformations) of arith.txi. + + 2009-05-01 Rik + + * interpreter/arith.txi: Simplify TeXinfo and eliminate use of + @iftex in arith.txi. + + 2009-05-01 Rik + + * interpreter/arith.txi: Update section 17.5 (Utility Functions) + of arith.txi. + + 2009-04-30 Rik + + * interpreter/arith.txi: Update section 17.4 (Sums and Products) + of arith.txi. + + 2009-04-29 Jaroslav Hajek + + * interpreter/numbers.txi: Update info on ranges. + * interpreter/expr.txi: Update some info on indexing. + + 2009-04-26 Rik + + * interpreter/arith.txi: Update section 17.3 (Trigonometry) of + arith.txi. + + 2009-04-24 Rik + + * interpreter/arith.txi: Update section 17.2 (Complex Arithmetic) + of arith.txi. Use Tex in more of the doc strings for pretty + printing in pdf format. + + 2009-04-24 Rik + + * interpreter/octave.pdf: Eliminate most overfull errors when + running texi2pdf for generating pdf documentation. Use + @smallexample when necessary to reduce font for long lines. + Reword variables or phrases so that Tex can break them at a better + spot. + + 2009-04-21 Rik + + * interpreter/octave.pdf: Eliminate 'unbalanced parentheses in + @def...' error during texi2pdf. Fixed four .m files incorrectly + using @deftypefn macro. + + 2009-04-19 Ansgar Burchardt + + * interpreter/numbers.txi: Fix small mistake in example. + + 2009-04-17 Rik + + * interpreter/arith.txi: Update section 17.1 (Utility Functions) + of arith.txi. Split section into "Exponents and Logarithms" and + "Utility Functions" Use Tex in many more of the doc strings for + pretty printing in pdf format. + + 2009-04-17 Rik + + * interpreter/basics.txi: Update help text for sections 2.5, 2.6, 2.7 + of basics.txi + + 2009-04-17 Rik + + * interpreter/basics.txi: Update help text for sections 2.4 of + basics.txi. + + 2009-04-17 Rik + + * interpreter/basics.txi: Update help text for sections 2.2 + and 2.3 of basics.txi. + + 2009-04-17 Rik + + * interpreter/basics.txi: Update help strings for command line options. + + 2009-04-11 David Bateman + + * interpreter/contributors.in: Add Martin Helm. + + 2009-04-06 John W. Eaton + + * texinfo.tex: Prefer PDF image files if generating PDF output. + + 2009-03-27 Rik + + * interpreter/intro.txi: Add new sample section on elementary + calculations. Add new example of solving systems of equations + + 2009-03-27 Jaroslav Hajek + + * interpreter/diagperm.txi: Mention mixing with sparse matrices. + + 2009-03-25 John W. Eaton + + * interpreter/munge-texi.cc (process_texi_input_file): + Copy leading comment with file name info to output. + + 2009-03-09 John W. Eaton + + * interpreter/Makefile.in (DISTFILES): Use doc-cache instead of + DOC for doc cache file. + + 2009-03-08 Sᅵren Hauberg + + * interpreter/stats.txi (Basic Statistical Functions): + Add the 'histc' function. + + 2009-03-07 John W. Eaton + + * interpreter/basics.txi (Command Line Options): + Document --doc-cache-file command-line option. + + 2009-03-06 Jaroslav Hajek + + * interpreter/diagperm.txi: Various improvements. + + 2009-02-27 John W. Eaton + + * interpreter/set.txi (Sets): Don't document create_set. + + 2009-02-26 John W. Eaton + + * interpreter/strings.txi (Manipulating Strings): + Document strsplit, not split. + + 2009-02-25 John W. Eaton + + * interpreter/Makefile.in (distclean): Remove tags and TAGS here + instead of in maintainer-clean target. + (maintainer-clean): Depend on distclean, not clean. Remove DOC. + (DISTFILES): Add stmp-html to the list. + + * Makefile.in: Remove conf.texi in maintainer-clean target but not + distclean target. + + 2009-02-24 Jaroslav Hajek + + * interpreter/diagperm.txi: Remove redundant url references. + + 2009-02-23 Jaroslav Hajek + + * interpreter/diagperm.txi: Use TeX alternatives in some + formulas, improve examples, delete superfluous defs. + + 2009-02-23 Jaroslav Hajek + + * interpreter/diagperm.txi: New file. + * interpreter/octave.texi: Reference it. + * intepreter/Makefile.in: Include it. + * interpreter/matrix.txi: Move @DOCSTRING(diag) to diagperm.txi. + + 2009-02-19 John W. Eaton + + * doc/interperter: Include @DOCSTRING commands for the following + functions: bicgstab, cgs, choldelete, cholinsert, cholshift, + clabel, comet, command_line_path, compass, contour3, ctranspose, + cylinder, dellistener, diffuse, edit, ellipsoid, fclear, feather, + fill, find_dir_in_path, finite, flag, info, is_absolute_filename, + is_rooted_relative_filename, isdebugmode, ishghandle, isnull, + issorted, make_absolute_filename, meshz, news, + octave_tmp_file_name, optimget, pareto, plotmatrix, plotyy, + qrshift, quiver3, re_read_readline_init_file, ribbon, rose, + rundemos, scatter, scatter3, slice, specular, sphere, spinmap, + stem3, strchr, strtrim, surfl, surfnorm, times, transpose, + treelayout, uminus, uplus, warranty, what, xlim, yes_or_no. + + 2009-02-17 Thomas Treichl + + * interpreter/install.txi: Add documentation for configure options + "--without-framework-carbon" and "--without-framework-opengl". + + 2009-02-17 Jaroslav Hajek + + * interpreter/arith.txi: Add reference to "cummin" and "cummax". + + 2009-02-11 John W. Eaton + + * interpreter/Makefile.in (uninstall): Use $(DESTDIR) here too. + Uninstall Info dir file. Uninstall DOC file. + (install): Install DOC file. Add $(DESTDIR)$(octetcdir) to the + list of directories to make. + + 2009-02-10 John W. Eaton + + * interpreter/Makefile.in (DOC): New target. + (DISTFILES): Add DOC nad mk_doc_cache.m to the list. + * mk_doc_cache.m: New file. + + 2009-02-01 Sᅵren Hauberg + + * interpreter/nonlin.txi: Remove reference to 'fsolve_options'. + + 2009-02-01 Sᅵren Hauberg + + * interpreter/system.txi: Remove reference to 'eomdate'. + + 2009-01-24 Thorsten Meyer + + * interpreter/container.txi (Data Structures): Update examples for + structure arrays. + + 2009-01-22 John W. Eaton + + * interpreter/io.txi (Terminal Output): Remove @DOCSTRING(ans). + + * vr-idx.txi: Delete. + * interpreter/Makefile.in (SUB_SOURCE): Remove it from the list. + + 2009-01-22 Sᅵren Hauberg + + * interpreter/func.txi: Put varargin and varargout in concept index. + * interpreter/var.txi: Put ans in concept index. + * interpreter/octave.texi: Don't include vr-idx.texi. + + * interpreter/var.txi: Remove sections on built-in variables. + + 2009-01-20 John W. Eaton + + * interpreter/system.txi (Filesystem Utilities): @DOCSTRING for + fstat. Delete @DOCSTRING for lstat. Add anchor for doc-lstat. + + 2009-01-18 Thorsten Meyer + + * interpreter/numbers.txi (Numeric Data Types): Trivial fixes. + + 2009-01-14 Thorsten Meyer + + * interpreter/matrix.txi: Add anchor for doc-postpad. + + 2008-12-26 Thorsten Meyer + + * interpreter/strings.txi: Add space to ischar example. + + 2008-12-26 Francesco Potortì + + * interpreter/matrix.txi (Rearranging Matrices): Add reference + to resize function. + + * interpreter/plot.txi (Plot Annotations): Add cross reference to + Text Properties. + (Two-Dimensional Plots): Update introduction to the axis function. + + * interpreter/signal.txi (Signal Processing): Add explanation of + what wisdom is. + + 2008-12-23 David Bateman + + * interpreter/sparse.txi: Document the eigs and svds functions. + + 2008-12-02 Thorsten Meyer + + * interpreter/container.txi, interpreter/strings.txi: + Remove reference to str2mat.m + + 2008-11-15 Thorsten Meyer + + * interpreter/strings.txi: Add text around docstrings, change + structure of the strings chapter. + + 2008-10-31 John W. Eaton + + * interpreter/Makefile.in ($(TEXINFO)): Depend directly on + ../../src/DOCSTRINGS and ../../scripts/DOCSTRINGS instead of phony + src-DOCSTRINGS and scripts-DOCSTRINGS targets. + (src-DOCSTRINGS, scripts-DOCSTRINGS): Delete. + (DOCSTRING_FILES): New variable. + ($(SUB_TEXFINO)): Use it. Display actual command. + ($(DOCSTRING_FILES)): New target. + (%.spell : %.texi): Use -t suffix instead of .tmp. + (constributors.texi, $(SUB_TEXINFO)): Use mv, instead of + $(simple-move-if-change-rule). + + 2008-10-30 David Bateman + + * faq/Octave-FAQ.texi: Document improved indexing and add an faq for + the compatibility of mldivide/mrdivide for singualr, under- and + over-determined matrices. + + * interpreter/plot.txi: Document contour groups. + + 2008-10-29 Thorsten Meyer + + * interpreter/system.txi, interpreter/poly.txi, + interpreter/arith.txi, interpreter/poly.txi, + interpreter/optim.txi, interpreter/diffeq.txi, + interpreter/sparse.txi, interpreter/matrix.txi, + interpreter/plot.txi, interpreter/io.txi, interpreter/debug.txi, + interpreter/var.txi, interpreter/strings.txi: + Add missing @DOCSTRING commands. + + * interpreter/munge-texi.cc (extract_docstring): Expand arguments + of @seealso{} into Texinfo references. + + 2008-10-22 David Bateman + + * interprter/plot.txi: Add documentation for error bar series. + + * interprter/plot.txi: Update documentation for line series, Add + documetation for scatter groups, stem series and surface groups. + + * texinfo.tex: Import new upstream version. + * interpreter/Makefile.in (EXAMPLE_FILES_NODIR): Update for new OOP + class example location. + * interpreter/oop.txi: Ditto. + + 2008-10-15 David Bateman + + * interpreter/oop.txi: New file. + * interpreter/Makefile.in (SUB_SOURCES): Add it here. + (POLYNOMIAL_FILES_NODIR): New varaible for polynomial example class + methods. + (EXAMPLE_FILES_NODIR): Add POLYNOMIAL_FILES_NODIR here. + * interpreter/octave.texi: Reference new OOP chapter here. + * interpreter/func.txi: Document private directories and function + precedence here. + + 2008-10-16 Thorsten Meyer + + * interpreter/contrib.txi: added recommendation of limited + line width in code examples + + 2008-10-03 Thorsten Meyer + + * interpreter/contrib.txi: added example for mercurial queues + + 08-10-03 Thorsten Meyer + + * interpreter/contrib.txi: correction of the mercurial example + * interpreter/container.txi: minor correction of the text + + 2008-09-25 Sᅵren Hauberg + + * interpreter/image.txi: Update for imread and imwrite instead of + loadimge and saveimage. + + 2008-09-24 Sᅵren Hauberg + + * interpreter/image.txi: Document imfinfo. + + 2008-09-23 Francesco Potorti` . + + * interpreter/container.txi: Fix cross reference in struct docs. + + 2008-09-23 Brian Gough + + * interpreter/matrix.txi: Update docs for random number generators. + + 2008-09-22 David Bateman + + * faq/Octave-FAQ.texi: Update for Octave 3.1.51 and Matlab 2008a. + + 2008-09-15 David Bateman + + * interpreter/sparse.txi: Minor clarificiation + + 2008-08-28 John W. Eaton + + * interpreter/func.txi, interpreter/plot.txi: Doc fixes + suggested by Francesco Potorti` . + + 2008-08-28 David Bateman + + * interpreter/plot.txi: Add description of data sources and line + series objects. + + 2008-08-26 David Bateman + + * interpreter/plot.txi: Document the group objects (bar, stem, + stair, quiver and area series), and cllback functions. + + 2008-08-26 Jaroslav Hajek + + * interpreter/contrib.txi: New file. + * interpreter/octave.texi: Include it here. + * interpreter/Makefile.in (SUB_SOURCE): Add contrib.txi to the list. + + 2008-08-21 David Bateman + + * interpreter/plot.txi: Document ezplot. + + 2008-08-19 David Bateman + + * interpreter/numbers.txi: Document intwarning. + + 2008-08-06 Sᅵren Hauberg + + * interpreter/basics.txi, interpreter/errors.txi, + interpreter/expr.txi, interpreter/func.txi, + interpreter/numbers.txi: Update format of error messages in examples. + + 2008-07-29 David Bateman + + * interpreter/numbers.txi, interpreter/plot.txi, + interpreter/quad.txi: Miscellaneous documentation fixes. + + * control.txi, finance.txi, quaternion.txi: Delete. + * octave.texi: Remove all references to the above. + * Makefile.in: ditto. + + 2008-07-28 David Bateman + + * interpreter/arith.txi: Document reallog, realpow and realsqrt. + * interpreter/dbug.txi: Document the means of setting a breakpoint + in a sub-function + * interpreter/func.txi: Document nargoutchk and symvar. + * interpreter/geometry.txi: Document rectint. + * interpreter/image.txi: Document contrast. + * interpreter/interp.txi: Document interp1q. + * interpreter/linalg.txi: Document planerot, rcond and subspace. + * interpreter/numbers.txi: Document data type demotion and single + precision data type. + * interpreter/plot.txi: Document ginput, gtext, + waitforbuttonpress, ezcontour, ezcontourf, ezpolar, ezplot3, + ezmesh, ezmeshc, ezsurf, ezsurfc, allchild, findobj and findall + functions. + * interpreter/quad.txi: Document quadv, quadgk, dblquad and + triplequad functions. + * interpreter/strings.txi: Document validstring, regexptranslate + and isstrprop functions. + * interpreter/system.txi: Document addtodate, filemarker and perl + functions. + * interpreter/var.txi: Document the genvarname and namelengthmax + functions. + * interpreter/octave.texi: Update table of contents for the above + changes. + + * interpreter/plot.txi: Document contourf. + + * interpreter/plot.txi: Clarify the description of OuterPosition + axes property. + + 2008-05-20 David Bateman + + * interpreter/debug.txi: Uodate documentation for multiline + input. Add documentation for dbcont, dbquit, dbstep, dbstqck, dbup + and dbdown functions. + * interpreter/octave.texi: Upodate index for debugging functions. + + 2008-05-03 Rafael Laboissiere + + * interpreter/expr.txi, interpreter/tips.txi: Use ischar instead of + deprecated isstr. + + 2008-04-02 David Bateman + + * interpreter/sparse.txi: Document spaugment. + + 2008-03-26 Rafael Laboissiere + + * interpreter/mkoctfile.1: Remove spurious whitespace before macros + + 2008-03-25 David Bateman + + * interpreter/strings.txi: Document hex2num, num2hex. + + 2008-03-21 David Bateman + + * interpreter/sparse.txi: Document amd function. + + 2008-03-19 Michael D. Godfrey + + * interpreter/plot.txi: Reorder symbol character table. + + 2008-03-18 Rafael Laboissiere + + * interpreter/octave.1, interpreter/mkoctfile.1: + Escape "-" signs that mean the "minus" character. + + 2008-03-12 David Bateman + + * interpreter/io.txi: Document dlmread, dlmwrite, csvread and + csvwrite. + + 2008-02-25 Ben Abbott + + * interpreter/geometryimages.m, interpreter/interpimages.m, + interpreter/plotimages.m, interpreter/sparseimages.m: + Use cstrcat instead of strcat. + + 2008-02-22 David Bateman + + * interpreter/sparse.txi: Remove refernces to spdiag, spcumprod, + spcumsum, spprod, spsum, spsumsq, spchol, spchol2inv, spcholinv, + spinv and splu. + + 2008-02-20 David Bateman + + * interpreter/sparse.txi: Remove references to spmin, spmax, + spatan2, spfind, spqr and spdet. + + 2008-02-19 Carlo de Falco + + * interpreter/package.txi: Improve INDEX file documentation. + + 2008-01-18 Ben Abbott + + * interpreter/intro.txi: Replaced reference to deprecated + function struct_elements with filenames. + + 2008-02-08 Rafael Laboissiere + + * interpreter/octave.1: Dropped unknow LO macro + * interpreter/octave-bug.1: Likewise + + 2008-02-07 David Bateman + + * interpreter/sparse.txi: Remove references to spkron. + + 2008-02-06 John W. Eaton + + * interpreter/Makefile.in (stmp-html, HTML): New targets. + ($(HTML_IMAGES_PNG)): Also depend on stmp-html. + Don't create HTML directory here. + + 2007-12-28 John W. Eaton + + Merge changes from object branch: + + 2007-06-20 John W. Eaton + + * interpreter/var.txi, interpreter/io.txi: + Eliminate print_answer_id_name. + + 2007-12-21 John W. Eaton + + Version 3.0.0 released. + + 2007-12-13 John W. Eaton + + * Makefile.in (conf.texi): Also depend on $(top_srcdir)/src/version.h. + + 2007-12-05 John W. Eaton + + * interpreter/geometryimages.m (image_as_txt): New function. + Use it to generate "figures" for Info format. + * interpreter/interpimages.m: Likewise. + * interpreter/sparseimages.m: Likewise. + + 2007-12-04 John W. Eaton + + * interpreter/sparseimages.m, interpreter/plotimages.m, + interpreter/interpimages.m, interpreter/geometryimages.m: + Set default text font to "*" for png images. + + * interpreter/Makefile.in (run-octave): Don't sleep. + + 2007-12-04 Joseph P. Skudlarek + + * interpreter/plotimages.m: Generate text plots. + * interpreter/sparseimages.m: Add initial blank line to text plots. + + * interpreter/Makefile.in (IMAGES_TXT): Include $(INTERPIMAGES_TXT) + $(GEOMETRYIMAGES_TXT) and $(PLOTIMAGES_TXT) in the list. + (INTERPIMAGES_TXT, GEOMETRYIMAGES_TXT, PLOTIMAGES_TXT): New variables. + + 2007-11-26 David Bateman + + * interpreter/sparse.txi: Document condest. + * interpreter/plot.txi: Document the new text properties and the + TeX interpreter mode of text objects. + * interpreter/plotimages.m: Add an example for the TeX + interpreter. + * interpreter/Makefile.in (PLOTIMAGES): Add the TeX example + + * interpreter/plot.txi: Document caxis. + * interpreter/image.txi: Document gmap40. + + 2007-11-12 Joseph P. Skudlarek + + * interpreter/gpl.txi: Move index commands after sectioning commands. + + 2007-11-09 David Bateman + + * interpreter/plot.txi: Document the new hidden and area functions. + + 2007-11-07 David Bateman + + * interpreter/plot.txi: Document new functions. + + 2007-10-30 David Bateman + + * interpreter/dynamic.txi, interpreter/install.txi, + interpreter/stats.txi, interpreter/strings.txi, + interpreter/testfun.txi, interpreter/tips.txi: + Doc fixes for small book format. + + 2007-10-26 Michael Goffioul + + * interpreter/Makefile.in, faq/Makefile.in, liboctave/Makefile.in: + Use temporary renamed files instead of Don't use --output option + argument for texi2[dvi|pdf]. Use $(sepchar) for path element + separation when building TEXINPUTS. Remove use of UNSETCOMSPEC trick. + + 2007-10-22 Kim Hansen + + * interpreter/munge-texi.cc: Include and . + + 2007-10-19 David Bateman + + * refcard/refcard.tex: Update for 3.0. + + 2007-10-15 Sᅵren Hauberg + + * interpreter/preface.txi, interpreter/basics.txi, + interpreter/strings.txi, interpreter/container.txi, + interpreter/var.txi, interpreter/expr.txi, interpreter/errors.txi, + interpreter/io.txi, interpreter/func.txi, interpreter/package.txi: + Make text fit on pages when using smallbook. + + 2007-10-12 John W. Eaton + + * Change copyright notices in all files that are part of Octave to + GPLv3 or any later version. + + 2007-10-11 Brian Gough + + * interpreter/dynamic.txi, interpreter/geometry.txi, + interpreter/package.txi, interpreter/sparse.txi, + interpreter/system.txi: Spelling fixes. + + 2007-10-10 Olli Saarela + + * interpreter/arith.txi, interpreter/basics.txi, + interpreter/container.txi, interpreter/dynamic.txi, + interpreter/eval.txi, interpreter/expr.txi, interpreter/func.txi, + interpreter/geometry.txi, interpreter/intro.txi, + interpreter/numbers.txi, interpreter/plot.txi, + interpreter/poly.txi, interpreter/set.txi, interpreter/sparse.txi, + interpreter/stmt.txi, interpreter/strings.txi, + interpreter/testfun.txi, interpreter/tips.txi: Spelling fixes. + + 2007-10-06 John W. Eaton + + * interpreter/octave.texi: Add David Bateman and Sᅵren Hauberg as + authors. + + 2006-09-28 Henry Mollet mollet@pacbell.net + + * interpreter/func.txi: Correct results of a couple of examples. + + 2007-09-14 John W. Eaton + + * faq/Makefile.in: Create single Octave-FAQ.html file instead of a + splitting files into HTML directory. + + 2007-09-05 David Bateman + + * interpreter/system.m: Document gzip. + * interpreter/container.txi: Document celldisp. + * interpreter/matrix.txi: Document bsxfun. + * interpreter/data.txi: Document typecast and swapbytes. + * interpreter/container.txi: Document struct2cell. + * interpreter/stats.txi: Document mode. + * interpreter/eval.txi: Document run. + + 2007-09-01 David Bateman + + * interpreter/Makefile.in: Remove stray character from + INTERIMAGES_PNG target. + * conf.texi.in: Substitute for the variable TEXINFO_QHULL + * interpreter/geometryimages.m: Check for the HAVE_QHULL build + flag before creating certain figures. + * interpreter/geometry.txi: Check whether TEXINFO_QHULL is set + before including certain figures. + + 2007-08-31 Sᅵren Hauberg + + * interpreter/nonlin.txi: Extended the example. + + * interpreter/poly.txi: Sectioning and documentation. + * interpreter/octave.texi: Adapt to changes in poly.txi. + + 2007-08-30 David Bateman + + * interpreter/geometryimages.m: Add inpolygon example + * interpreter/Makefile.in (GEOMETRYIMAGES): Add inpolygon example. + * interpret/geometry.txi: Document inpolygon. + + 2007-08-27 David Bateman + + * interpreter/struct.txi: Remove. + * interpreter/containers.txi: Combine with this chapter. Add + examples, and section on comma separated lists. Document the + difference between "c(1,:) = []" and c{1,:} = []" for a cell + arrays. + * interpreter/octave.texi: Document new indexing of containers + section. + + 2007-08-25 David Bateman + + * interpreter/geometry.txi: Add examples and explanatory text. + * interpreter/octave.texi: Update indexing of geometry functions. + * interpreter/geometryimage.m: New script to create images for + geometry chapter. + * interpreter/Makefile.in (SCRIPT_SORCES): add geometryimages.m + (GEOMETRYIMAGES*): New variables. + (IMAGES_EPS, IMAGES_PDF, IMAGES_PNG): Add the GEOMETRYIMAGES*. + + 2007-08-24 David Bateman + + * interpreter/geometry.txi: Document new functions. + * interpreter/octave.texi: Update indexing of geometry items. + + 2007-07-25 John W. Eaton + + * interpreter/Makefile.in (run-octave): Don't set DISPLAY. + + 2007-07-25 David Bateman + + * Makefile.in, faq/Makefile.in, interpreter/Makwfile.in, + liboctave/Makefile.in, refcard/Makefile.in: Adjust DISTFILES + to allow out of tree "make dist" to work. + + 2007-07-23 David Bateman + + * interpreter/Makefile.in (SUB_SOURCE): remove bit.txi. + * interpreter/io.txi: Document rat and rats in new sub-section. + * interpreter/plot.txi: New section for test functions. Document + peaks and meshc. + * interpreter/octave.texi: Add test plotting section. + * interpreter/image.txi: Document the functions autumn, bone, + cool, copper, hot, hsv, jet, pink, prism, rainbow, spring, + summer, white and winter. + + 2007-07-19 David Bateman + + * interpreter/bit.xi: Remove. + * interpreter/numbers.txi: Move here, and add examples. + * interpreter/octave.texi: Remove "Bit manipulation" chapter and make + it a sub-section of the "Numeric Data Types" chapter. + + 2007-07-06 David Bateman + + * interpreter/arith.txi: Add accumarray. + + 2007-06-25 John W. Eaton + + * interpreter/stats.txi: Reorganize sections and add introductory text. + + * interpreter/octave.texi: Update to reflect changes in stats.txi. + + 2007-06-18 David Bateman + + * interpreter/interpimages.m: Simpler images to demonstrate + the continuity of the second derivative of splines. + * interpreter/interp.txi: Also change figures here. + * interpreter/Makefile.in: and here. + + 2007-06-18 Sᅵren Hauberg + + * interpreter/optim.txi: Added some introductory text to each + section. + + * interpreter/set.txi: Added some introductory text. + * interpreter/octave.texi: Updated to reflect changes in set.txi. + + 2007-06-15 David Bateman + + * faq/Octave-FAQ.texi: Document the gnuplot 4.2 bug using pipes. + + 2007-06-15 Paul Kienzle + + * interpreter/testfun.txi: Provide a clue to using xtest for assert. + + 2007-06-14 Paul Kienzle + + * interpreter/testfun.txi: Document xtest block + + 2007-06-14 David Bateman + + * interpreter/Makefile.in (SCRIPT_SORCES): add interimages.m + (INTERPIMAGES*): New variables. Add targets for them + (IMAGES_EPS, IMAGES_PDF, IMAGES_PNG): Add the INTERPIMAGES. + * interpreter/interpimages.m: New function + * interpreter/interp.txi: Add text about second derivation of + splines and add figures. + + 2007-06-12 David Bateman + + * interpreter/numbers.txi: Document that 64-bit arithmetic is + not possible. + + 2007-06-12 David Bateman + + * interpreter/interp.txi: Split into two section and document + interp3 and the differences in the treatement of the dimensions + between interpn and interp3. + * hashing.txi: Remove. + * system.txi: Move it here as a subsection. Include explanation + and example. + * interpreter/octave.texi: Add sections for the Interpolation + chapter. Remove references to Hashing chapter and hashing.texi, + and subsections for hashing to system utilities chapter. + + 2007-06-12 2007-06-10 Sᅵren Hauberg + + * interpreter/diffeq.txi: Note that x-dot is the derivative of x. + + 2007-06-03 David Bateman + + * interpreter/dynamic.txi: Use "mwSize" and "mwIndex" rather than + "int" for indexing in mex-files and document them. + + 2007-05-30 John W. Eaton + + * interpreter/Makefile.in (TEXI2DVICOMMAND, TEXI2PDFCOMMAND): + New macros. + (octave-a4.pdf, octave-smallbook.pdf): New targets. + (FORMATTED, all): Include octave-a4.pdf in list of dependencies. + Delete octave.dvi and octave.ps from list. + (FORMATTED, all): Use $(PDF_TARGETS). + (maintainer-clean): Depend on clean. + + 2007-05-30 G. D. McBain + + * interpreter/expr.txi (Assignment Ops): Doc fix. + + 2007-05-29 Steven Mestdagh + + * interpreter/Makefile.in ($(HTML_IMAGES_PNG)): Use cp instead of + INSTALL_DATA to copy files to the HTML directory. + + 2007-05-28 Sᅵren Hauberg + + * interpreter/errors.txi: Add new sections and some more detailed + descriptions on errors and warnings. + * interpreter/octave.texi, interpreter/stmt.txi, + interpreter/var.txi: Add references to the new sections in + errors.txi. + + 2007-05-28 Sᅵren Hauberg + + * interpreter/io.txi: Rearrange some sections, and add + a few examples. + + 2007-05-28 G. D. McBain + + * interpreter/struct.txi: Doc fix. + + 2007-05-23 John W. Eaton + + * liboctave/Makefile.in (TEXINFO_SOURCE): New variable. + (TEXINFO): Define using $(TEXINFO_SOURCE). + (DISTFILES): Include $(TEXINFO_SOURCE) in the list, not $(TEXINFO). + + 2007-05-22 John W. Eaton + + * interpreter/Makefile.in (TEXINFO_SOURCE): New variable. + (TEXINFO): Define using $(TEXINFO_SOURCE). + (DISTFILES): Include $(TEXINFO_SOURCE) in the list, not $(TEXINFO). + + 2007-05-22 Thomas Weber + + * faq/Octave-FAQ.texi, interpreter/basics.txi, + refcard/refcard.tex: Fix typos. + + 2007-05-22 John W. Eaton + + * interpreter/Makefile.in (DISTFILES): Add mkcontrib.awk to the list. + + 2007-05-21 David Bateman + + * interpreter/debug.txi, io.txi, octave.txi: Doc fixes. + + 2007-05-21 Sᅵren Hauberg + + * interpreter/expr.txi: Describe +=, -=, *=, and /= operators. + Add new example. + + * interpreter/eval.txi: Partition the chapter into sections. + Describe evalin and assignin functions using text from Paul + Kienzle. Change "See See" to "See". Use @ref instead of @xref to + avoid "See" to be written with a capital letter in the middle of a + sentence. + + * interpreter/func.txi: New section describing load path. + Improve 'inline' and 'command' sections. + + * interpreter/stmt.txi: Describe cell array cases for the switch + statement. Minor layout changes. + + 2007-05-19 David Bateman + + * interpreter/func.txi: Additional documentation for function + locking, dispatch and autoloading. + + 2007-05-16 Sᅵren Hauberg + + * interpreter/expr.txi: Improve docs. + + 2007-05-14 John W. Eaton + + * interpreter/basics.txi, interpreter/data.txi, + interpreter/intro.txi, interpreter/numbers.txi, + interpreter/octave.texi, interpreter/preface.txi: Doc fixes. + + 2007-04-18 Sᅵren Hauberg + + * interpreter/package.texi: Document "*" flag for loaded packages. + + * interpreter.var.txi: Improve explanation of clear, exist, and who. + + * interpreter/intro.txi: Change @unnumberedsubsec to @subsection. + + * interpreter/container.txi: Doc fix. + + * interpreter/strings.txi: Improve explanation for creating + comparing, and converting strings. + * interpreter/octave.texi: Update detailed menu. + + 2007-05-09 David Bateman + + * faq/Octave-FAQ.texi: Update compatibility section. + + 2007-04-27 David Bateman + + * Makefile.in (EXAMPLE_FILES_NODIR): Add mycell.c, myfeval.c, + myfunc.c, mypow2.c, mysparse.c, mystring.c, mystruct.c and + paramdemo.cc. + * interpreter.txi/dynamic.txi: Complete all but the section on + the mex- and oct-file APIs. + + 2007-04-26 David Bateman + + * interpreter/stmt.txi: Document for loops over matrices, arrays + and cell arrays. + + 2007-04-25 David Bateman + + * interpreter/dynamic.txi: Add additional copyrights. Add sections + of input parameter checking, documentation and testing of + oct-files. Adds a section on calling other functions from + mex-files, expands the basic information on mex-files, and add a + few new sections (to be completed) to the section about mex-files + + 2007-04-25 John W. Eaton + + * interpreter/dynamic.txi: Use abs_top_srcdir to find example files. + + 2007-04-25 David Bateman + + * conf.texi.in: Also set abs_top_srcdir with substitution. + * Makefile.in: Substitute abs_top_srcdir here. + + 2007-04-25 John W. Eaton + + * interpreter/dynamic.txi: Use @verbatiminclude for example code. + + * interpreter/Makefile.in (EXAMPLE_FILES_NODIR, EXAMPLE_FILES): + New variables. + (octave.info, octave.dvi, octave.pdf, HTML/index.html): + Depend on $(EXAMPLE_FILES). + + * conf.texi.in: Also set top_srcdir with substitution. + + * interpreter/tips.txi: Update with new text and examples. + Move documentation section to the end. + + 2007-04-24 David Bateman + + * interpreter/octave.texi: Include dynamic.texi as appendix and + update menus. + + * interpreter/plot.txi: Update menus. + + * interpreter/strings.txi: @result -> @result{}. + + * intrepreter/func.txi, intrepreter/sparse.txi: + Delete .oct file section and update menus. + + * interpreter/addtwomatrices.cc, interpreter/celldemo.cc, + interpreter/fortdemo.cc, interpreter/funcdemo.cc, + interpreter/globaldemo.cc, interpreter/helloworld.cc, + interpreter/stringdemo.cc, interpreter/structdemo.cc, + interpreter/unwinddemo.cc, interpreter/fortsub.f, + interpreter/dynamic.txi: New files. + + * Makefile.in (SUB_SOURCE): Include dynamic.txi in the list. + + 2007-04-18 Sᅵren Hauberg + + * interpreter/package.texi: New file. + * octave/texi: @include it, add it to the menus. + + 2007-04-18 John W. Eaton + + * interpreter/contributors.in: New file. + * interpreter/Makefile.in (contributors.texi): New target. + (clean): Also deleete contributors.texi + (TEXINFO): Include contributors.texi in the list. + (preface.texi): @include contributors.texi. + + 2007-04-17 David Bateman + + * interpreter/linalg.txi (Techniques used for Linear Algebra): + New node. + * interpreter/octave.texi: Include it in menu. + * interpreter/sparse.txi: Delete discusion of matrix_type. + + 2007-04-16 John W. Eaton + + * interpreter/stream.txi: Delete. + * interpreter/Makefile.in (SUB_SOURCE): Remove it from the list. + + 2007-04-16 Sᅵren Hauberg + + * intrepreter/stmt.txi: Improve documentation of switch statement. + + * interpreter/tips.txi: Update description of how copyright + statements are recognized. + + * interpreter/octave.texi: Don't include stream.texi. + Remove menu entry for I/O streams. + + * interpreter/image.txi: Update docs. + + 2007-04-11 Sᅵren Hauberg + + * interpreter/container.txi: Document indexing with (). + + 2007-04-11 Sᅵren Hauberg + + * interpreter/container.txi: Improve cell array documentation. + + 2007-04-09 Sᅵren Hauberg + + * interpreter/func.txi: Document varargin, varargout, and default + argument values. + + 2007-04-03 Rafael Laboissiere + + * interpreter/basics.txi: Clarified some limitations of the #! + script mechanism, in particular related to the parsing of the + arguments. + + 2007-03-29 Rafael Laboissiere + + * faq/Octave-FAQ.texi, interpreter/basics.txi, + interpreter/emacs.txi, interpreter/func.tx, interpreter/var.txi: + Make it clear that the old built-in LOADPATH is an internal + variable, accessible through path (). + Drop references to DEFAULT_LOADPATH. + Chang references to the old built-in variables INFO_FILE and + INFO_PROGRAM to the respective fucntions info_file and + info_program. + * refcard/refcard.tex: Drop LOADPATH from list of built-in variables. + + 2007-03-27 John W. Eaton + + * Makefile.in, interpreter/Makefile.in, faq/Makefile.in, + liboctave/Makefile.in, refcard/Makefile.in (dist): + Use ln instead of $(LN_S). + + 2007-03-21 G. D. McBain + + * interpreter/sparse.txi: Delete repeated word. + + 2007-03-20 G. D. McBain + + * interpreter/sparse.txi: Clarify sparse matrix creation example. + + 2007-03-14 G. D. McBain + + * interpreter/sparse.txi: Fix typo. + + 2007-02-26 From Michael Goffioul + + * Makefile.in, interpreter/Makefile.in, faq/Makefile.in, + liboctave/Makefile.in, refcard/Makefile.in: + Use $(LN_S) instead of ln or ln -s. + + 2007-02-21 David Bateman + + * interpreter/sparse.txi: Add functions sprank and normest to + documentation. + + 2007-01-25 John W. Eaton + + * interpreter/sparseimages.m: Don't call __gnuplot_x__ functions. + + 2006-11-17 John W. Eaton + + * interpreter/sparseimages.m: Fix call to __plt3__. + + 2006-11-16 John W. Eaton + + * interpreter/sparseimages.m (femimages): Use plot3. + + 2006-11-11 John W. Eaton + + * interpreter/Makefile.in (%.texi : %.txi): + Use $(simple-move-if-change-rule) here. + + 2006-10-29 John W. Eaton + + * interpreter/Makefile.in (run-octave): Call it here. + * interpreter/sparseimages.m (sparseimages): Don't call sleep here. + + 2006-10-27 John W. Eaton + + * interpreter/Makefile.in (run-octave): + Unset DISPLAY while running Octave. + From Michael Goffioul . + + * interpreter/Makefile.in (octave.dvi, octave.pdf): + Use $(UNSETCOMSPEC) in command. + * faq/Makefile.in (Octave-FAQ.dvi, Octave-FAQ.pdf): Likewise. + * liboctave/Makefile.in (liboctave.dvi, liboctave.pdf): Likewise. + + 2006-10-09 Thomas Treichl + + * interpreter/sparseimages.m: Plot sombrero images if sparse + capabilities are missing. + + 2006-10-04 John W. Eaton + + * interpreter/Makefile.in (HTML_IMAGES_PNG): New variable. + (HTML/index.html): Depend on $(HTML_IMAGES_PNG) instead of html-figs. + ($(HTML_IMAGES_PNG): HTML/%.png : %.png): New pattern rule. + (html-dir): Delete target. + + 2006-10-03 Rafael Laboissiere + + * interpreter/mkoctfile.1: Fix indentation for --mex description. + + 2006-09-26 John W. Eaton + + * interpreter/Makefile.in (stamp-images): Delete. + (octave.info): Depend on $(IMAGES_TXT), not stamp-images. + (octave.dvi): Depend on $(IMAGES_EPS), not stamp-images. + (octave.pdf): Depend on $(IMAGES_PDF), not stamp-images. + (html-figs): Depend on $(IMAGES_PNG), not stamp-images. + (SCRIPT_SOURCES, SPARSEIMAGES_1, SPARSEIMAGES_EPS, + SPARSEIMAGES_PDF, SPARSEIMAGES_PNG, SPARSE_IMAGES_TXT, IMAGES_EPS, + IMAGES_PDF, IMAGES_PNG, IMAGES_TXT, and IMAGES): New variables. + (SOURCES): Include $(SCRIPT_SOURCES) in the list. + (DISTFILES): Include $(IMAGES) in the list. + (maintainer-clean): Delete $(IMAGES) here. + (DISTSUBDIRS, SUBDIRS): Remove $(IMAGEDIR) from list. + (octave.dvi, octave.info, octave.pdf, HTML/index.html): + Don't include $(IMAGEDIR) in list of directories to search + * sparseimages.m: Move here from images/sparseimages.m. + * images/Makefile.in: Delete. + * images: Delete directory. + + 2006-08-24 John W. Eaton + + * interpreter/images/Makefile.in (SPARSEIMAGES_PDF): New macro. + Keep PDF images out of IMAGES list. + + 2006-08-18 John W. Eaton + + * conf.texi.in: Eliminate TARGETHOSTTYPE variable. + + 2006-08-17 John W. Eaton + + * interpreter/images/Makefile.in (%.pdf : %eps): + Use $(GHOSTSCRIPT) instead of gs. + + 2006-08-14 Dmitri A. Sergatskov + + * interpreter/images/sparseimages.m: Adapt to new automatic_replot + definition. + + 2006-06-27 John W. Eaton + + * interpreter/Makefile.in: Elminate double-colon rules. + + 2006-05-31 John W. Eaton + + * interpreter/images/Makefile.in (run-octave): + Use $(TOPDIR)/run-octave script to execute Octave. + (OCTAVE_BINARY, OCTAVE_SCRIPT_PATH, OCTAVE_LD_LIBRARY_PATH, + XLD_LIBRARY_PATH, SET_LD_LIBRARY_PATH): Delete variables. + + 2006-04-06 Keith Goodman + + * interpreter/mkoctfile.1: Doc string fix. + + 2006-04-03 David Bateman + + * interpreter/matrix.txi: Add rande, randp, randg and update + for different random generator behavior. + + 2006-03-28 John W. Eaton + + * texinfo.tex: Update FSF address. + + 2006-03-27 John W. Eaton + + * interpreter/images/sparseimages.m: Fix missing endif. Omit + unnecessary call to axis. + + 2006-03-24 John W. Eaton + + * interpreter/images/sparseimages.m: + Avoid some unnecessary calculations. + + 2006-03-22 John W. Eaton + + * interpreter/sparse.txi: Undo previous change. + Always use @image to include image files. + * interpreter/Makefile.in: Eliminate stamp files. + (clean, mostlyclean, distclean, maintainer-clean): Now + double-colon targets. + (stamp-images): New target. + (octave.info, octave.dvi, octave.pdf, HTML/index.html): Depend on it. + * interpreter/images/Makefile.in: Explicitly list images to be + created and their dependencies. + * interpreter/images/sparseimages.m (sparseimage): Delete dirc arg. + Sleep for 1 second before returning. + (txtimages): Also create gplot.txt and grid.txt. + (sparseimages): Don't redirect output here. + New arg, nm. Only output a single figure at a time. + (bury_output): New function. Use it before plotting commands and + after every print function. + * Makefile.in (conf.texi): New target. + (DISTFILES): Include conf.texi in the list. + (all, dist): Depend on conf.texi. + * conf.texi.in: Values come from Makeconf, not configure. + + 2006-03-21 John W. Eaton + + * liboctave/Makefile.in (FORMATTED): Omit .html files here. + (DISTDIRS): New variable. + (dist): Handle $(DISTDIRS) here. + + * faq/Makefile.in (FORMATTED): Omit .html files here. + (DISTDIRS): New variable. + (dist): Handle $(DISTDIRS) here. + + * interpreter/Makefile.in (FORMATTED): Omit .html files here. + (DISTDIRS): New variable. + (dist): Handle $(DISTDIRS) here. + + * interpreter/sparse.txi: Temporarily omit figures. + * interpreter/Makefile.in: Temporarily omit actions for making figures. + (DISTSUBDIRS): New macro. + (dist): Recurse into $(DISTSUBDIRS) here. + + * interpreter/Makefile.in (real-pdf): Depend on stamp-eps + (stamp-pdf): Depend on real-pdf. Touch stamp-pdf here. + (real-pdf): Not here. + + 2006-03-16 David Bateman + + * interpreter/images/sparseimages.m: set terminal type to dummy to + direct output to terminal rather than X11. + * interpreter/sparse.txi: Update docs for new QR solvers. + + 2006-03-09 David Bateman + + * interpreter/Makefile.in: Change order of commands in HTML/index.html + target. Respawn make for stamp-pdf target so that $(wildcard *.eps) is + reinterpreted. + * interpreter/sparse.txi: Isolate conditionally built targets in + "@ifset ... @end ifset". + + 2006-03-08 David Bateman + + * conf.texi: Remove. + * conf.texi.in: New file, for autoconf'ed version of conf.texi. + * Makefile.in: replace conf.texi with conf.texi.in in DISTFILES + * interpreter/Makefile.in: build in subdir IMAGEDIR, add stamps for + image files. Copy png-files to HTML directory. Build pdf files from + eps files using epsffit, gs, grep, basename, head and awk. + * octave.texi: Update sparse sub-sections. + * sparse.txi: Updates for current state of sparse code. + * interpreter/images/Makefile.in: New file. + * interpreter/images/sparseimages.m: New file to build sparse images. + + 2006-03-07 David Bateman + + * liboctave/dae.texi, liboctave/factor.texi, liboctave/nleqn.texi, + liboctave/quad.texi, liboctave/matvec.texi, liboctave/nlfunc.texi, + liboctave/diffeq.texi, liboctave/array.texi, liboctave/range.texi, + liboctave/optim.texi: Fix some syntax problems for texinfo.tex 4.8. + + 2006-03-06 Keith Goodman + + * interpreter/octave.texi (@seealso): Display args instead of + discarding them. + + 2006-03-02 John W. Eaton + + * faq/Makefile.in (Octave-FAQ.ps): Depend on Octave-FAQ.dvi, not + $(TEXINFO). + + * texinfo.tex: Update to 2004-11-25.16 version from Texinfo 4.8. + + 2005-12-14 David Bateman + + * interpreter/testfun.txi: New test/demo documentation. + * interpreter/strings.txi: Include regexp/regexi docstrings. + * interpreter/octave.texi: Include test/demo appendix. + * interpreter/Makefile.in (SUB_SOURCE): Include test.txi. + + 2005-12-13 David Bateman + + * interpreter/sparse.txi: Add new gplot, etreeplot and treeplot + functions. + + 2005-11-01 John W. Eaton + + * liboctave/Makefile.in (maintainer-clean): Also remove liboctave.pdf + * faq/Makefile.in (maintainer-clean): Also remove Octave-FAQ.pdf. + From Quentin Spencer . + + 2005-10-23 David Bateman + + * sparse.txi: Updates for new ufsparse licensing, new functions and + various typos. + + 2005-09-19 Rafael Laboissiere + + * interpreter/octave-config.1: Use bold instead of italics to + markup command name. + + 2005-07-29 John W. Eaton + + * faq/Makefile.in (HTML/index.html): Pass --ifinfo to makeinfo. + * interpreter/Makefile.in (HTML/index.html): Likewise. + * liboctave/Makefile.in (HTML/index.html): Likewise. + + 2005-07-28 John W. Eaton + + * faq/Makefile.in, interpreter/Makefile.in, liboctave/Makefile.in: + Use makeinfo instead of texi2html to generate HTML. + + 2005-05-02 John W. Eaton + + * interpreter/munge-texi.cc (skip_comments): New function. + (process_doc_file): Use it to skip comments at beginning of file. + + 2005-04-29 David Bateman + + * interpreter/sparse.txi: Add matrix_type, spkron, and document + changes in solve code. + + 2005-03-14 David Bateman + + * interpreter/sparse.txi: Add luinc function. + + 2005-03-09 John W. Eaton + + * Makefile.in (bin-dist): Delete target. + (BINDISTSUBDIRS): Delete variable. + + * refcard/Makefile.in (bin-dist): Delete target. + (BINDISTFILES): Delete variable. + * liboctave/Makefile.in: Likewise. + * interpreter/Makefile.in: Likewise. + * faq/Makefile.in: Likewise. + + 2005-02-25 John W. Eaton + + Sparse merge. + + 2005-01-07 David Bateman + + * interpreter/sparse.txi: New file. + * interpreter/Makefile.in: Add it to the build. + * interpreter/octave.texi: Include it in the contents tables and the + top level document. + + 2005-02-25 John W. Eaton + + * liboctave/Makefile.in (all): Also depend on Octave-FAQ.pdf. + Use $(MAKEINFO) instead of makeinfo in rules. + + 2005-02-25 Rafael Laboissiere + + * liboctave/Makefile.in (Octave-FAQ.pdf): New target and rule. + (FORMATTED): Add Octave-FAQ.pdf to the list. + + 2005-02-21 John W. Eaton + + * liboctave/Makefile.in (liboctave.pdf): New target and rule. + (FORMATTED): Add liboctave.pdf to the list. + (all): Also depend on liboctave.pdf. + Use $(MAKEINFO) instead of makeinfo in rules. + + * interpreter/Makefile.in (octave.pdf): New target and rule. + (FORMATTED): Add octave.pdf to the list. + (all): Also depend on octave.pdf. + Use $(MAKEINFO) instead of makeinfo in rules. + + 2005-02-08 Quentin Spencer + + * interpreter/plot.txi: Emphasize compatible plotting functions + over gplot and friends. + + 2004-02-13 John W. Eaton + + * liboctave/Makefile.in (FORMATTED): Use liboctave*.html instead + of liboctave_*.html. + + * faq/Makefile.in (FORMATTED): Use Octave-FAQ*.html instead of + Octave-FAQ_*.html. + + 2004-01-22 John W. Eaton + + * faq/Makefile.in (maintainer-clean): Remove Octave-FAQ*.html + instead of just Octave-FAQ_*.html. + + * liboctave/Makefile.in (maintainer-clean): Remove liboctave*.html + instead of just liboctave_*.html. + + * refcard/Makefile.in (maintainer-clean): Remove refcard-*.pdf. + + 2003-12-09 Eric S. Raymond + + * interpreter/mkoctfile.1: Use .I instead of .f for markup of ".oct". + + 2003-11-14 John W. Eaton + + * interpreter/munge-texi.cc (process_texi_input_file): + Avoid -Wshadow warnings. + + 2003-08-27 John W. Eaton + + * refcard/Makefile.in (refcard-a4.pdf, refcard-legal.pdf, + refcard-letter.pdf): New targets. + (FORMATTED): Add them to the list. + * refcard/refcard.tex: Optionally set pdf paper size parameters. + + 2003-08-07 John W. Eaton + + * interpreter/Makefile.in (octave_toc.html): Add "-I ." to texinfo + command line args. + + 2003-07-02 John W. Eaton + + * faq/Makefile.in (FORMATTED): Include all Octave-FAQ_*.html files + here, not just the toc. + + 2003-05-14 John W. Eaton + + * interpreter/Makefile.in, liboctave/Makefile.in: Handle DESTDIR. + + 2003-02-19 John W. Eaton + + * interpreter/Makefile.in (MAN_BASE): Add octave-config.1 to the list. + + 2003-02-19 Dirk Eddelbuettel + + * octave-config.1: New file. + + 2003-01-11 Paul Kienzle + + * interpreter/Makefile.in (munge-texi$(BUILD_EXEEXT)): Pass + $(BUILD_CXXFLAGS) and $(BUILD_LDFLAGS) to compiler. + (%.o : %.cc): Delete pattern rule. + + 2003-01-03 John W. Eaton + + * interpreter/munge-texi.cc: Define __USE_STD_IOSTREAM if using + Compaq C++. + + 2002-12-03 John W. Eaton + + * interpreter/Makefile.in (%.o : %.c): No longer need + -DNO_PRAGMA_INTERFACE_IMPLEMENTATION=1 compiler option. + (munge-texi#(BUILD_EXEEXT)): Likewise. + Don't link to Map-s.o. + + * interpreter/Map-s.cc: Delete. + * interpreter/Makefile.in (DISTFILES): Delete it from the list. + (mostlyclean, clean): Don't delete Map-s.o. + + * interpreter/munge-texi.cc: Require working STL. + + 2002-11-24 John W. Eaton + + * interpreter/Makefile.in (maintainer-clean): Depend on + clean-texi, don't remove $(TEXINFO). + + 2002-11-12 John W. Eaton + + * interpreter/munge-texi.cc: Use STL map class by default, but + make it easy to revert back to libg++-based Map class if that + fails to work on some systems. + + 2002-11-01 Dirk Eddelbuettel + + * interpreter/Makefile.in (MAN_BASE, MAN_SRC): New variables, use + as appropriate. + + 2002-11-01 John W. Eaton + + * interpreter/mkoctfile.1: New file. + + 2002-10-25 Paul Kienzle + + * interpreter/Makefile.in (octave_toc.html): Use -expandinfo and + -split_chapter instead of -expand info and -split chapter. + * liboctave/Makefile.in (liboctave_toc.html): Likewisel + * faq/Makefile.in (Octave-FAQ_toc.html): Likewise. + + 2002-10-25 John W. Eaton + + * interpreter/Makefile.in (munge-texi$(BUILD_EXEEXT)): Always use + -DNO_PRAGMA_INTERFACE_IMPLEMENTATION for compiling and linking. + + 2002-10-10 John W. Eaton + + * interpreter/Makefile.in (%.texi : %.txi): + Use $(top_srcdir)/move-if-change. + + 2002-10-09 John W. Eaton + + * interpreter/Makefile.in: Use $(BUILD_EXEEXT) as appropriate. + + 2002-10-08 John W. Eaton + + * interpreter/Makefile.in (munge-texi, %.o : %.cc): + Use $(BUILD_CXX), not $(CXX). + (src-DOCSTRINGS, scripts-DOCSTRINGS): New targets. + ($(TEXIFNO)): Depend on them. + (DOCSTRINGS): Delete variable. + + 2002-10-02 John W. Eaton + + * interpreter/Makefile.in (%.spell): Use $(SED), not sed. + * liboctave/Makefile.in (%.spell): Likewise. + * faq/Makefile.in (%.spell): Likewise. + + 2001-11-15 John W. Eaton + + * interpreter/Makefile.in (octave_toc.html): Use -expand info and + -split chapter, to be consistent. + * liboctave/Makefile.in (liboctave_toc.html): Likewise. + * faq/Makefile.in (Octave-FAQ_toc.html): Likewise. + + 2001-11-14 Christoph Spiel + + * faq/Makefile.in (Octave-FAQ_toc.html): Use -expandinfo and + -split_chapter, not -expand info and -split chapter. + * liboctave/Makefile.in (liboctave_toc.html): Likewise. + + 2001-11-01 John W. Eaton + + * interpreter/Makefile.in (MAIN_TEXINFO): Look in $(srcdir). + (octave_toc.html): Use -expandinfo and -split_chapter, not + -expand info and -split chapter. + + 2001-03-27 John W. Eaton + + * liboctave/Makefile.in (liboctave_toc.html): Use -expand info and + -split chapter instead of -expandinfo and -split_chapter options + for texi2html. + * faq/Makefile.in (Octave-FAQ_toc.html): Likewise. + * interpreter/Makefile.in (octave_toc.html): Likewise. + + 2000-10-10 John W. Eaton + + * liboctave/Makefile.in (liboctave_toc.html): Add space after -I + in texi2html command. + * interpreter/Makefile.in (octave_toc.html): Ditto. + + 2000-03-06 John W. Eaton + + * interpreter/octave-bug.1: New file. + * interpreter/Makefile.in (install install-strip): Install it. + (DISTFILES, BINDISTFILES): Add it to the + + 2000-02-23 John W. Eaton + + * interpreter/Makefile.in (clean): Also delete munge-texi, + munge-texi.o, and Map-s.o. + + 2000-02-04 John W. Eaton + + * interpreter/munge-texi.cc: Sprinkle with std:: qualifier. + + 2000-01-28 John W. Eaton + + * interpreter/Makefile.in (clean-texi): Avoid removing octave.texi. + + 2000-01-05 John W. Eaton + + * interpreter/Makefile.in: Don't generate octave.texi from octave.txi. + * interpreter/octave.texi: Rename from octave.txi. + + * interpreter/munge-texi.cc (process_texi_input_file): Undo + previous change, since % doesn't work as a comment character after + texinfo.tex is included. + + 2000-01-04 John W. Eaton + + * texinfo.tex: Update to version from texinfo-4.0. + + * interpreter/munge-texi.cc (process_texi_input_file): For Texinfo + doc strings, automatically insert an @anchor{doc-SYMBOL} command + just before the docstring for SYMBOL. + + 1999-12-09 John W. Eaton + + * interpreter/munge-texi.cc (process_texi_input_file): Begin + transformed files with `% DO NOT EDIT' instead of `@c DO NOT EDIT' + to prevent problems with TeX not knowing the definition of @c + before it is used. + + 1999-11-19 John W. Eaton + + * interpreter/Makefile.in (%.texi : %.txi): Suppress command echo. + + 1999-10-21 John W. Eaton + + * interpreter/Makefile.in (dist): Remove .texi files first, so + they will have timestamps newer than the $(DOCSTRINGS) files. + (%.texi : %.txi): Use mv instead of move-if-change. + + * interpreter/Map-s.cc: New file. + * interpreter/munge-texi.cc: Use old libg++ Map class instead of + STL map, for the benefit of systems that have assemblers that + can't handle the long symbol names generated by g++ for + map. + + 1999-10-19 John W. Eaton + + * interpreter/munge-texi.cc: Strip the "-*- texinfo -*-" marker + when including help text. + + * interpreter/Makefile.in ($(TEXINFO)): Depend on $(DOCSTRINGS). + ($(DOCSTRINGS)): New rule. + + * Makefile.in (dist, bin-dist): Use `$(MAKE) -C dir' instead of + `cd dir; $(MAKE); cd ..'. + (../BUGS, ../INSTALL.OCTAVE, $(SUBDIRS)) Likewise. + + * interpreter/*.txi: Rename from *.txi. + * interpreter/munge-texi.cc: New file. + * interpreter/Makefile.in: Use it to create .texi files from .txi + files and DOCSTRING files. + + Fri Jun 18 23:17:02 1999 John W. Eaton + + * interpreter/Makefile.in (octave_toc.html): Add -expandinfo to + tex12html options. + * liboctave/Makefile.in (liboctave_toc.html): Likewise. + * faq/Makefile.in (Octave-FAQ_toc.html): Likewise. + + Fri Oct 9 00:27:33 1998 John W. Eaton + + * faq/Makefile.in, interpreter/Makefile.in, liboctave/Makefile.in: + New rules for generating HTML files from Texinfo sources. + + Thu May 14 21:04:40 1998 John W. Eaton + + * interpreter/Makefile.in (../../BUGS, ../../INSTALL): Add + --no-validate to makeinfo args. + + Wed Jul 2 16:41:04 1997 John W. Eaton + + * refcard/Makefile.in: Remove .tex files from binary distributions. + + * interpreter/Makefile.in: Add DVI and Postscript files to binary + distributions. + + Fri Apr 18 02:51:00 1997 John W. Eaton + + * faq/Octave-FAQ.texi: Rename from faq/FAQ.texi. + * faq/Makefile.in: Fix names to match. + + Wed Mar 12 17:01:02 1997 John W. Eaton + + * Makefile.in (install-strip): New target. + * faq/Makefile.in: Ditto. + * interpreter/Makefile.in: Ditto. + * liboctave/Makefile.in: Ditto. + * refcard/Makefile.in: Ditto. + + Sat Mar 1 15:23:14 1997 John W. Eaton + + * Version 2.0.5 released. + + Fri Feb 28 20:53:40 1997 John W. Eaton + + * texinfo.tex: Update to latest version from Karl Berry, and apply + previous patch too. + + Thu Feb 27 03:34:48 1997 John W. Eaton + + * texinfo.tex (\codeunder): Maybe make it work for @var{} inside + @code{}. + + Wed Feb 26 12:03:48 1997 John W. Eaton + + * refcard/Makefile.in (mostlyclean clean): Delete log files. + + * liboctave/Makefile.in (mostlyclean clean): Delete more stuff. + + * faq/Makefile.in (mostlyclean clean): Delete some stuff. + + Thu Feb 20 02:58:05 1997 John W. Eaton + + * Version 2.0.4 released. + + Wed Feb 19 10:30:14 1997 John W. Eaton + + * Makefile.in (DISTFILES): Distribute conf.texi, not conf.texi.in. + + * liboctave/Makefile.in: Don't make or distribute conf.texi. + (liboctave.info, liboctave.dvi): Depend on ../conf.texi, not conf.texi. + + * interpreter/Makefile.in: Don't create or distribute conf.texi. + (octave.info, octave.dvi): Depend on ../conf.texi, not conf.texi. + + Tue Feb 18 09:22:04 1997 John W. Eaton + + * Version 2.0.3 released. + + Wed Jan 29 11:49:25 1997 John W. Eaton + + * Makefile.in (../INSTALL.OCTAVE, ../BUGS): Declare these to be + .PHONY so that we will always check the interpreter makefile to + get the proper dependencies. + + Mon Jan 27 15:52:33 1997 John W. Eaton + + * Version 2.0.2 released. + + Sun Jan 26 22:07:45 1997 John W. Eaton + + * interpreter/Makefile.in: Make BUGS file directly from bugs.texi. + * interpreter/bugs.texi: Incorporate bugs1.texi directly. + * interpreter/bugs1.texi: Delete. + + * interpreter/Makefile.in: Make INSTALL file directly from + install.texi. + * interpreter/install.texi: Incorporate install1.texi directly. + * interpreter/install1.texi: Delete. + + Sat Jan 25 22:32:33 1997 John W. Eaton + + * Makefile.in, interpreter/Makefile.in, liboctave/Makefile.in, + faq/Makefile.in, refcard/Makefile.in (bin-dist): New target. + + Tue Jan 7 00:17:24 1997 John W. Eaton + + * Version 2.0.1 released. + + Tue Dec 10 01:43:13 1996 John W. Eaton + + * Version 2.0 released. + + Fri Dec 6 15:23:52 1996 John W. Eaton + + * Version 1.94. + + Wed Nov 20 01:00:50 1996 John W. Eaton + + * Version 1.93. + + Thu Nov 14 00:07:25 1996 John W. Eaton + + * faq/Makefile.in (FAQ.dvi): Use $(TEXI2DVI), not just texi2dvi. + * interpreter/Makefile.in (octave.dvi): Likewise. + * liboctave/Makefile.in (liboctave.dvi): Likewise. + + * Version 1.92. + + Thu Nov 7 12:43:19 1996 John W. Eaton + + * Version 1.91. + + * texinfo.tex: Update to version from texinfo-3.9 distribution. + + Wed Oct 30 17:20:28 1996 John W. Eaton + + * Version 1.90. + + * Makefile.in (DISTFILES): Add ChangeLog. + + Sat Oct 12 13:38:49 1996 John W. Eaton + + * Makefile.in (maintainer-clean): Don't depend on distclean. + + Sat Jun 15 23:01:33 1996 John W. Eaton + + * interpreter/Makefile.in (TEXINFO): Add audio.texi and emacs.texi. + + Fri May 17 03:02:37 1996 John W. Eaton + + * interpreter/Makefile.in: Use man1dir instead of mandir, and + man1ext instead of manext. + + Sat Mar 23 05:01:17 1996 John W. Eaton + + * liboctave/Makefile.in (TEXINFO): Don't list conf.texi and + gpl.texi here. + + * liboctave/Makefile.in (dist targets): Fix ln command. + * refcard/Makefile.in (dist targets): Likewise. + * interpreter/Makefile.in (dist targets): Likewise. + * faq/Makefile.in (dist targets): Likewise. + + Fri Mar 22 23:57:26 1996 John W. Eaton + + * liboctave/Makefile.in (DISTFILES): Add gpl.texi. + * interpreter/Makefile.in (DISTFILES): Add gpl.texi. + * Makefile.in (DISTFILES): Delete gpl.texi. + + Sun Mar 3 11:33:30 1996 John W. Eaton + + * Split docs into faq, interpreter, liboctave, and refcard + subdirectories. + + Wed Sep 20 00:47:45 1995 John Eaton + + * mkinstalldirs: New file. + * Makefile.in (DISTFILES): Add it to the list. + + * Makefile.in (maintainer-clean): Delete .dvi, .ps, and .info + files here. + (clean): Not here. + (mostlyclean): Make this the same as clean. + + Tue Sep 19 03:18:35 1995 John Eaton + + * Makefile.in (../BUGS, ../INSTALL.OCTAVE): Specify output file to + makeinfo with --output option. + + Thu Sep 14 20:31:47 1995 John Eaton + + * Makefile.in: Don't fail if makeinfo, tex, or dvips fail. + + See ChangeLog.1 in the top level directory for earlier changes. diff -cNr octave-3.4.0/etc/OLD-ChangeLogs/libcruft-ChangeLog octave-3.4.1/etc/OLD-ChangeLogs/libcruft-ChangeLog *** octave-3.4.0/etc/OLD-ChangeLogs/libcruft-ChangeLog 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/OLD-ChangeLogs/libcruft-ChangeLog 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,1908 ---- + 2011-03-24 Jarno Rajahalme + + * misc/blaswrap.c: New file. + * misc/module.mk (EXTRA_DIST): Add it to the list. + + 2011-01-31 Rik + + * arpack/src/dseupd.f, arpack/src/sseupd.f: Change GOTO target + to eliminate warning about landing on end if. + + 2011-01-31 John W. Eaton + + * arpack/module.mk (EXTRA_DIST): Include arpack/module.mk in the + list. Remove arpack/src/module.mk and arpacck/util/module.mk + from the list. + + 2011-01-31 John W. Eaton + + * arpack/LICENSE: Update to current version from + http://www.caam.rice.edu/software/ARPACK. + * arpack/ARPACK-license-question.email: Delete as it no longer + applies to the current license terms. + * arpack/RiceBSD.txt: Delete. + * arpack/module.mk: Update for license changes. + Add arpack/ prefix to doc files in list. + + 2011-01-28 David Bateman + + * arpack/src/cneupd.f (cneupd): Restore value of nconv if ctrsen + returns a smaller value. + * arpack/src/dneupd.f (dneupd): Likewise, for dtrsen. + * arpack/src/sneupd.f (sneupd): Likewise, for strsen. + * arpack/src/zneupd.f (zneupd): Likewise, for ztrsen. + + 2011-01-28 John W. Eaton + + * arpack/util/second.f (ARSCND): Declare ETIME INTRINSIC, not EXTERNAL. + + 2011-01-28 John W. Eaton + + * arpack: New directory. + * Makefile.am: Include arpack/module.mk. + + 2011-01-26 John W. Eaton + + * mkf77def.in: Strip trailing whitespace. + + 2011-01-20 John W. Eaton + + * misc/cquit.c, misc/f77-fcn.h, misc/quit.cc: Strip trailing + whitespace. + + 2011-01-14 John W. Eaton + + * Update copyright notices for 2011. + + 2010-09-07 Jaroslav Hajek + + * blas-xtra/cconv2.f, blas-xtra/csconv2.f, blas-xtra/dconv2.f, + blas-xtra/sconv2.f, blas-xtra/zconv2.f, blas-xtra/zdconv2.f: + Fix inner convolution formula. + + 2010-07-27 Jaroslav Hajek + + * lapack-xtra/zrsf2csf.f, lapack-xtra/crsf2csf.f: New sources. + * lapack-xtra/module.mk: Add them. + + 2010-05-04 John W. Eaton + + * villad/dfopr.f, villad/dif.f, villad/intrp.f, villad/jcobi.f, + villad/radau.f, villad/vilerr.f, villad/module.mk: Delete. + * Makefile.am: Don't include villad/module.mk. + + 2010-04-11 Jaroslav Hajek + + * blas-xtra/cmatm3.f, blas-xtra/zmatm3.f, + blas-xtra/dmatm3.f, blas-xtra/xsdot.f: Fix typos. Add missing + decls. + + 2010-03-21 John W. Eaton + + * Makefile.am (libcruft_la_LIBADD): Include ../libgnu/libgnu.la + in the list. From Marco Atzeri . + + 2010-03-15 John W. Eaton + + * Makefile.am (libcruft_la_CPPFLAGS): Append $(AM_CPPFLAGS). + + 2010-03-03 Jaroslav Hajek + + * blas-xtra/cconv2.f, blas-xtra/csconv2.f, blas-xtra/dconv2.f, + blas-xtra/sconv2.f, blas-xtra/zconv2.f, blas-xtra/zdconv2.f: + New sources. + * blas-xtra/module.mk: Add them here. + + 2010-03-02 John W. Eaton + + * misc/cquit.c (octave_restore_signal_mask): Assume we have + POSIX signal handling. + + 2010-02-28 Jaroslav Hajek + + * misc/lo-error.c (liboctave_fatal_with_id, + set_liboctave_error_with_id_handler): New functions. + (current_liboctave_error_with_id_handler): New variable. + * misc/lo-error.h: Declare them. + (liboctave_error_with_id_handler): New typedef. + + 2010-02-21 Michael Goffioul + + * misc/quit.h: Define WIN32_LEAN_AND_MEAN and don't #undef min/max. + + * Makefile.am: Add -bindir option to libcruft_la_LDFLAGS. + + 2010-02-17 John W. Eaton + + * Makefile.am (libcruft_la_LIBADD): Include libranlib.la in the list. + (noinst_LTLIBRARIES, libranlib_la_SOURCES, libranlib_la_DEPENDENCIES, + libcruft_la_FFLAGS): New variables. + (ranlib.def): New target. + (DISTCLEANFILES): Also remove ranlib.def. + * ranlib/module.mk (libranlib_la_SOURCES): Rename from + libcruft_la_SOURCES. + + 2010-01-20 John W. Eaton + + * misc/quit.cc: Untabify. + + 2010-01-20 John W. Eaton + + * Makefile.am (EXTRA_DIST): Remove STOP.patch from the list. + + 2010-01-20 Jaroslav Hajek + + * misc/quit.h: Define inline-function variant of OCTAVE_QUIT in C++ + mode. + + 2009-01-13 Rik + + * STOP.patch: Remove unmaintained patch for Fortran code + + 2009-01-13 Rik + + * ranlib/advnst.f ranlib/genbet.f ranlib/genchi.f ranlib/genexp.f + ranlib/genf.f ranlib/gengam.f ranlib/genmul.f ranlib/gennch.f + ranlib/gennf.f ranlib/gennor.f ranlib/genunf.f ranlib/getcgn.f + ranlib/getsd.f ranlib/ignbin.f ranlib/ignnbn.f ranlib/ignpoi.f + ranlib/ignuin.f ranlib/initgn.f ranlib/mltmod.f ranlib/setant.f + ranlib/setgmn.f ranlib/setsd.f: call XSTOPX instead of STOP so Octave's + error handler can intercept errors in Fortran code + + 2010-01-07 Jaroslav Hajek + + * misc/quit.cc (octave_rethrow_exception): Set octave_interrupt_state + to -1 when throwing octave_interrupt_exception. + + 2010-01-05 John W. Eaton + + * Makefile.am (AM_CPPFLAGS): New variable. + + 2009-12-31 Rik + + * Makefile.am: Reverse using simple_move_if_change_rule for cruft.def + which interferes with make timestamp algorithm. + + 2009-12-19 Rik + + * Makefile.am: Eliminate TOPDIR variable in favor of built-in automake + variables of top_builddir and top_srcdir. + + 2009-12-13 Rik + + * Makefile.am: Use simple_move_if_change_rule for cruft.def to eliminate + unnecessary compilations. + + 2009-12-07 John W. Eaton + + * misc/f77-fcn.h, misc/lo-error.h, misc/quit.h, + misc/f77-extern.cc, misc/quit.cc, misc/cquit.c, misc/f77-fcn.c, + misc/lo-error.c: Remove Emacs local variable list. + + 2009-12-07 John W. Eaton + + * misc/cquit.c, misc/f77-fcn.h, misc/quit.h: Untabify. + + 2009-12-03 John W. Eaton + + * Makefile.am (DISTCLEANFILES): New variable. + + 2009-11-26 Jaroslav Hajek + + * blas-xtra/sdot3.f: Use nested cache-aligned loop for general case. + * blas-xtra/ddot3.f: Ditto. + * blas-xtra/cdotc3.f: Ditto. + * blas-xtra/zdotc3.f: Ditto. + + 2009-11-26 Jaroslav Hajek + + * blas-xtra/sdot3.f: New source. + * blas-xtra/ddot3.f: New source. + * blas-xtra/cdotc3.f: New source. + * blas-xtra/zdotc3.f: New source. + * blas-xtra/smatm3.f: New source. + * blas-xtra/dmatm3.f: New source. + * blas-xtra/cmatm3.f: New source. + * blas-xtra/zmatm3.f: New source. + * blas-xtra/module.mk: Include them. + + 2009-11-17 John W. Eaton + + * mkf77def.in: Only process files with names that match *.f. + + 2009-11-13 John W. Eaton + + * Makefile.am: Restore rules for building cruft.def. + (libcruft_la_LDFLAGS): Also append @XTRA_CRUFT_SH_LDFLAGS@. + (libcruft_la_DEPENDENCIES): New variable. + * mkf77def.in: Use @VAR@ instead of %VAR% substitutions. + Process srcdir plus list of files instead of working as a filter. + + 2009-11-13 John W. Eaton + + * Makefile.am (libcruft_la_CPPFLAGS): Define. + + 2009-11-10 John W. Eaton + + * blas, lapack: Remove directories and all files. + * Makefile.am: Don't include blas/module.mk or lapack/module.mk. + + 2009-11-10 John W. Eaton + + * Makefile.am, amos/module.mk, blas-xtra/module.mk, + blas/module.mk, daspk/module.mk, dasrt/module.mk, dassl/module.mk, + fftpack/module.mk, lapack-xtra/module.mk, lapack/module.mk, + misc/module.mk, odepack/module.mk, ordered-qz/module.mk, + quadpack/module.mk, ranlib/module.mk, slatec-err/module.mk, + slatec-fn/module.mk, villad/module.mk: New files. + + * Makefile.in, Makerules.in, amos/Makefile.in, + blas-xtra/Makefile.in, blas/Makefile.in, daspk/Makefile.in, + dasrt/Makefile.in, dassl/Makefile.in, fftpack/Makefile.in, + lapack-xtra/Makefile.in, lapack/Makefile.in, misc/Makefile.in, + odepack/Makefile.in, ordered-qz/Makefile.in, quadpack/Makefile.in, + ranlib/Makefile.in, slatec-err/Makefile.in, slatec-fn/Makefile.in, + villad/Makefile.in: Delete. + + 2009-09-17 John W. Eaton + + * misc/oct-dlldefs.h: Delete. + * misc/Makefile.in (INCLUDES): Remove oct-dlldefs.h from the list. + + 2009-08-05 John W. Eaton + + * Makefile.in (LINK_DEPS): Omit $(FFTW_LIBS) from the list. + + 2009-06-22 John W. Eaton + + * Makefile.in (MISC_OBJ): Remove misc/machar.o and misc/smachar.o + from the list. + + * misc/i1mach.f, misc/r1mach.f, misc/d1mach.f: Rewite in terms of + LAPACK functions slamch and dlamch. + * misc/machar.c: Delete. + * misc/Makefile.in (CSRC): Remove machar.c from the list. + (CEXTRA, XCC, XALL_CFLAGS): Delete variables. + (machar.o, smachar.o, pic/machar.o, pic/smachar.o): Delete rules. + + 2009-05-07 Marco Atzeri + + * Makefile.in: (SHLPRE): Rename from SHLLIBPRE. + + 2009-03-07 John W. Eaton + + * misc/quit.h (octave_rethrow_exception): + Don't tag with GCC_ATTR_NORETURN. + + 2009-02-25 John W. Eaton + + * Makefile.in (maintainer-clean): Also remove libraries. + + * Makerules.in: Make maintainer-clean and distclean the same. + + 2009-02-23 Jaroslav Hajek + + * misc/quit.h (octave_signal_caught): Declare as volatile. + * misc/cquit.cc (octave_signal_caught): Likewise. + + 2009-02-06 Jaroslav Hajek + + * blas/ssymm.f, blas/dsymm.f, blas/chemm.f, blas/zhemm.f: New sources. + * blas/Makefile.in: Include them. + + 2009-01-28 John W. Eaton + + * Makefile.in (LIBRARIES, install, uninstall): use SHLLIBPRE and + SHLBINPRE library prefixes. + From Marco Atzeri . + + 2008-12-21 Jaroslav Hajek + + * lapack/chegs2.f lapack/chegst.f lapack/chegv.f lapack/dsygs2.f + lapack/dsygst.f lapack/dsygv.f lapack/ssygs2.f lapack/ssygst.f + lapack/ssygv.f lapack/zhegs2.f lapack/zhegst.f lapack/zhegv.f: + New sources. + * lapack/Makefile.in: Include them. + + 2008-12-15 Jaroslav Hajek + + * blas/zsyrk.f: New source. + * lapack/cggbak.f, lapack/cggev.f, lapack/cgghrd.f, lapack/chgeqz.f, + lapack/ctgevc.f, lapack/dggev.f, lapack/sggev.f, lapack/zggbak.f, + lapack/zggev.f, lapack/zgghrd.f, lapack/zhgeqz.f, lapack/ztgevc.f: + New sources. + * lapack/Makefile.in: Include them. + + 2008-08-12 Thomas Treichl + + * blas/icamax.f, blas/isamax.f: New files. + * blas/Makefile.in (FSRC): Add them to the list. + + * lapack/icmax1.f: New file. + * lapack/Makefile.in (FSRC): Add it to the list. + + 2008-06-16 David Bateman + + * slatec-fn/xacosh.f, slatec-fn/xasinh.f: Replace xsacosh with + xacosh, xdacosh with xacosh and xdasinh with xasinh. + + 2008-06-12 Jaroslav Hajek + + * misc/Makefile.in (MAKEDEPS): Remove CEXTRA. + + 2008-06-04 Michael Goffioul + + * misc/oct-dlldefs.h (OCTGRAPHICS_API): New macro for import/export + in graphics related libraries. + + 2008-06-02 David Bateman + + * slatec/xsgmainc.f: Replace DLGAMS with ALGAMS. + + 2008-05-30 Thomas Treichl + + * quadpack/qk15i.f: Delete extraneous semicolons. + + 2008-05-21 David Bateman + + * odepack/slsode.f, odepack/sintdy.f: Replace the use of xerrwv + with xerrwd and rumach with d1mach(4). + + * odepack/scfode.f, odepack/sewset.f, odepack/sintdy.f, + odepack/slsode.f, odepack/sprepj.f, odepack/ssolsy.f, + odepack/sstode.f, odepack/svnorm.f: New files. + * odepack/Makefile.in (FSRC): Add them. + + * ordered-qz/sexchqz.f, ordered-qz/ssubsp.f: New files. + * ordered-qz/Makefile.in (FSRC): Add them. + * quadpack/qagi.f, quadpack/qagie.f, quadpack/qagp.f, + quadpack/qagpe.f, quadpack/qelg.f, quadpack/qk15i.f, + quadpack/qk21.f, quadpack/qpsrt.f: New files. + * quadpack/Makefile.in (FSRC): Add them. + + 2008-05-20 Jaroslav Hajek + + * qrupdate/cch1dn.f, qrupdate/cchinx.f, qrupdate/cqhqr.f, + qrupdate/cqrinc.f, qrupdate/cqrinr.f, qrupdate/cqrqhu.f, + qrupdate/cqrqhv.f, qrupdate/sch1dn.f, qrupdate/schinx.f, + qrupdate/sqhqr.f, qrupdate/sqrinc.f, qrupdate/sqrinr.f, + qrupdate/sqrqhu.f: Convert DOUBLE PRECISION constants to REAL. + * qrupdate/cqrinr.f, qrupdate/sqrinr.f: Correct EXTERNAL + declarations. + * qrupdate/sqrinr.f: Convert DOUBLE PRECISION calls to + REAL counterparts. + + 2008-05-20 David Bateman + + * Makefile.in (MISC_OBJ): Add misc/smachar.o + * Makerules.in (CRUFT_CSRC, CRUFT_CPICOBJ): Add CEXTRA, allowing + objects files with no corresponding source file in the + distribution. + + * amos/cacai.f, amos/cacon.f, amos/cbesh.f, amos/cbesi.f, + amos/cbesj.f, amos/cbesk.f, amos/cbesy.f, amos/cbinu.f, + amos/cbuni.f, amos/cbunk.f, amos/cunk1.f amos/cunk2.f, + amos/crati.f, amos/cshch.f, amos/cuni1.f, amos/cuoik.f, + amos/cairy.f, amos/cbiry.f, amos/ckscl.f, amos/cs1s2.f, + amos/cuchk.f, amos/cuni2.f, amos/cwrsk.f, amos/casyi.f, + amos/cbknu.f, amos/cmlri.f, amos/cseri.f, amos/cunhj.f, + amos/cunik.f: New files. + * amos/Makefile.in (FSRC): Add them. + + * blas-xtra/xsdot.f, blas-xtra/xsnrm2.f, blas-xtra/xscnrm2.f, + blas-xtra/xcdotc.f, blas-xtra/xcdotu.f: New files + * blas-xtra/Makefile.in (FSRC): Add them. + + * blas/sasum.f, blas/saxpy.f, blas/scabs1.f, blas/scopy.f, + blas/sger.f, blas/smach.f, blas/snrm2.f, blas/srot.f, + blas/sswap.f, blas/ssymv.f, blas/ssyr.f, blas/ssyr2.f, + blas/ssyr2k.f, blas/stbsv.f, blas/strmm.f, blas/strmv.f, + blas/strsv.f, blas/scasum.f, blas/scnrm2.f, blas/caxpy.f, + blas/ccopy.f, blas/cdotc.f, blas/cdotu.f, blas/, blas/csrot.f, + blas/csscal.f, blas/cgemm.f, blas/cgemv.f, blas/cgerc.f, + blas/cgeru.f, blas/chemv.f, blas/cher.f, blas/cher2.f, + blas/cher2k.f, blas/cherk.f, blas/cscal.f, blas/cswap.f, + blas/ctbsv.f, blas/ctrmm.f, blas/ctrmv.f, blas/, blas/ctrsm.f, + blas/ctrsv.f: New files + * blas/Makefile.in (FSRC): Add them. + + * fftpack/zfftb.f, zfftb1.f, fftpack/zfftf.f, fftpack/zfftf1.f, + fftpack/zffti.f, fftpack/zffti1.f, fftpack/zpassb.f, + fftpack/zpassb2.f, fftpack/zpassb3.f, fftpack/zpassb4.f, + fftpack/zpassb5.f, fftpack/zpassf.f, fftpack/zpassf2.f, + fftpack/zpassf3.f, fftpack/zpassf4.f, fftpack/zpassf5.f: Rename + function (c -> z | add z). + * fftpack/cfftb.f, cfftb1.f, fftpack/cfftf.f, fftpack/cfftf1.f, + fftpack/cffti.f, fftpack/cffti1.f, fftpack/passb.f, + fftpack/passb2.f, fftpack/passb3.f, fftpack/passb4.f, + fftpack/passb5.f, fftpack/passf.f, fftpack/passf2.f, + fftpack/passf3.f, fftpack/passf4.f, fftpack/passf5.f: New files + for single precision. + * fftpack/Makefile.in (FSRC): Add new files. + + * lapack-xtra/xclange.f, lapack-xtra/xslamch.f, + lapack-xtra/xslange.f: New files. + * lapack-xtra/Makefile.in (FSRC): Add them. + + * lapack/cbdsqr.f, lapack/csrscl.f, lapack/cgbcon.f, + lapack/cgbtf2.f, lapack/cgbtrf.f, lapack/cgbtrs.f, + lapack/cgebak.f, lapack/cgebal.f, lapack/cgebd2.f, + lapack/cgebrd.f, lapack/cgecon.f, lapack/cgeesx.f, lapack/cgeev.f, + lapack/cgehd2.f, lapack/cgehrd.f, lapack/cgelq2.f, + lapack/cgelqf.f, lapack/cgelsd.f, lapack/cgelss.f, + lapack/cgelsy.f, lapack/cgeqp3.f, lapack/cgeqpf.f, + lapack/cgeqr2.f, lapack/cgeqrf.f, lapack/cgesv.f, lapack/cgesvd.f, + lapack/cgetf2.f, lapack/cgetrf.f, lapack/cgetri.f, + lapack/cgetrs.f, lapack/cggbal.f, lapack/cgtsv.f, lapack/cgttrf.f, + lapack/cgttrs.f, lapack/cgtts2.f, lapack/cheev.f, lapack/chetd2.f, + lapack/chetrd.f, lapack/chseqr.f, lapack/clabrd.f, + lapack/clacgv.f, lapack/clacn2.f, lapack/clacon.f, + lapack/clacpy.f, lapack/cladiv.f, lapack/clahqr.f, + lapack/clahr2.f, lapack/clahrd.f, lapack/claic1.f, + lapack/clals0.f, lapack/clalsa.f, lapack/clalsd.f, + lapack/clange.f, lapack/clanhe.f, lapack/clanhs.f, + lapack/clantr.f, lapack/claqp2.f, lapack/claqps.f, + lapack/claqr0.f, lapack/claqr1.f, lapack/claqr2.f, + lapack/claqr3.f, lapack/claqr4.f, lapack/claqr5.f, lapack/clarf.f, + lapack/clarfb.f, lapack/clarfg.f, lapack/clarft.f, + lapack/clarfx.f, lapack/clartg.f, lapack/clarz.f, lapack/clarzb.f, + lapack/clarzt.f, lapack/clascl.f, lapack/claset.f, lapack/clasr.f, + lapack/classq.f, lapack/claswp.f, lapack/clatbs.f, + lapack/clatrd.f, lapack/clatrs.f, lapack/clatrz.f, + lapack/clauu2.f, lapack/clauum.f, lapack/cpbcon.f, + lapack/cpbtf2.f, lapack/cpbtrf.f, lapack/cpbtrs.f, + lapack/cpocon.f, lapack/cpotf2.f, lapack/cpotrf.f, + lapack/cpotri.f, lapack/cpotrs.f, lapack/cptsv.f, lapack/cpttrf.f, + lapack/cpttrs.f, lapack/cptts2.f, lapack/crot.f, lapack/csteqr.f, + lapack/ctrcon.f, lapack/ctrevc.f, lapack/ctrexc.f, + lapack/ctrsen.f, lapack/ctrsyl.f, lapack/ctrti2.f, + lapack/ctrtri.f, lapack/ctrtrs.f, lapack/ctzrzf.f, + lapack/cung2l.f, lapack/cung2r.f, lapack/cungbr.f, + lapack/cunghr.f, lapack/cungl2.f, lapack/cunglq.f, + lapack/cungql.f, lapack/cungqr.f, lapack/cungtr.f, + lapack/cunm2r.f, lapack/cunmbr.f, lapack/cunml2.f, + lapack/cunmlq.f, lapack/cunmqr.f, lapack/cunmr3.f, + lapack/cunmrz.f, lapack/sbdsqr.f, lapack/sgbcon.f, + lapack/sgbtf2.f, lapack/sgbtrf.f, lapack/sgbtrs.f, + lapack/sgebak.f, lapack/sgebal.f, lapack/sgebd2.f, + lapack/sgebrd.f, lapack/sgecon.f, lapack/sgeesx.f, lapack/sgeev.f, + lapack/sgehd2.f, lapack/sgehrd.f, lapack/sgelq2.f, + lapack/sgelqf.f, lapack/sgelsd.f, lapack/sgelss.f, + lapack/sgelsy.f, lapack/sgeqp3.f, lapack/sgeqpf.f, + lapack/sgeqr2.f, lapack/sgeqrf.f, lapack/sgesv.f, lapack/sgesvd.f, + lapack/sgetf2.f, lapack/sgetrf.f, lapack/sgetri.f, + lapack/sgetrs.f, lapack/sggbak.f, lapack/sggbal.f, + lapack/sgghrd.f, lapack/sgtsv.f, lapack/sgttrf.f, lapack/sgttrs.f, + lapack/sgtts2.f, lapack/shgeqz.f, lapack/shseqr.f, + lapack/slabad.f, lapack/slabrd.f, lapack/slacn2.f, + lapack/slacon.f, lapack/slacpy.f, lapack/sladiv.f, lapack/slae2.f, + lapack/slaed6.f, lapack/slaev2.f, lapack/slaexc.f, lapack/slag2.f, + lapack/slahqr.f, lapack/slahr2.f, lapack/slahrd.f, + lapack/slaic1.f, lapack/slaln2.f, lapack/slals0.f, + lapack/slalsa.f, lapack/slalsd.f, lapack/slamc1.f, + lapack/slamc2.f, lapack/slamc3.f, lapack/slamc4.f, + lapack/slamc5.f, lapack/slamch.f, lapack/slamrg.f, + lapack/slange.f, lapack/slanhs.f, lapack/slanst.f, + lapack/slansy.f, lapack/slantr.f, lapack/slanv2.f, + lapack/slapy2.f, lapack/slapy3.f, lapack/slaqp2.f, + lapack/slaqps.f, lapack/slaqr0.f, lapack/slaqr1.f, + lapack/slaqr2.f, lapack/slaqr3.f, lapack/slaqr4.f, + lapack/slaqr5.f, lapack/slarf.f, lapack/slarfb.f, lapack/slarfg.f, + lapack/slarft.f, lapack/slarfx.f, lapack/slartg.f, lapack/slarz.f, + lapack/slarzb.f, lapack/slarzt.f, lapack/slas2.f, lapack/slascl.f, + lapack/slasd0.f, lapack/slasd1.f, lapack/slasd2.f, + lapack/slasd3.f, lapack/slasd4.f, lapack/slasd5.f, + lapack/slasd6.f, lapack/slasd7.f, lapack/slasd8.f, + lapack/slasda.f, lapack/slasdq.f, lapack/slasdt.f, + lapack/slaset.f, lapack/slasq1.f, lapack/slasq2.f, + lapack/slasq3.f, lapack/slasq4.f, lapack/slasq5.f, + lapack/slasq6.f, lapack/slasr.f, lapack/slasrt.f, lapack/slassq.f, + lapack/slasv2.f, lapack/slaswp.f, lapack/slasy2.f, + lapack/slatbs.f, lapack/slatrd.f, lapack/slatrs.f, + lapack/slatrz.f, lapack/slauu2.f, lapack/slauum.f, + lapack/slazq3.f, lapack/slazq4.f, lapack/sorg2l.f, + lapack/sorg2r.f, lapack/sorgbr.f, lapack/sorghr.f, + lapack/sorgl2.f, lapack/sorglq.f, lapack/sorgql.f, + lapack/sorgqr.f, lapack/sorgtr.f, lapack/sorm2r.f, + lapack/sormbr.f, lapack/sorml2.f, lapack/sormlq.f, + lapack/sormqr.f, lapack/sormr3.f, lapack/sormrz.f, + lapack/spbcon.f, lapack/spbtf2.f, lapack/spbtrf.f, + lapack/spbtrs.f, lapack/spocon.f, lapack/spotri.f, + lapack/spotrs.f, lapack/sptsv.f, lapack/spttrf.f, lapack/spttrs.f, + lapack/sptts2.f, lapack/srscl.f, lapack/ssteqr.f, lapack/ssterf.f, + lapack/ssyev.f, lapack/ssytd2.f, lapack/ssytrd.f, lapack/stgevc.f, + lapack/strcon.f, lapack/strevc.f, lapack/strexc.f, + lapack/strsen.f, lapack/strsyl.f, lapack/strti2.f, + lapack/strtri.f, lapack/strtrs.f, lapack/stzrzf.f, + lapack/scsum1.f: New files + * lapack/Makefile.in (FSRC): Add them. + + * misc/r1mach.f: New file + * misc/machar.cc: Modify to allow to be build twice, once for + double precision and once for single precision. + * misc/Makefile.in (FSRC): Add it. + (CEXTRA): Add smachar.c, and target for smachar.o + (MAKEDEPS): Include CEXTRA. + + * qrupdate/sch1up.f, qrupdate/cch1up.f, qrupdate/sqrinc.f, + qrupdate/cqrinc.f, qrupdate/sqrdec.f, qrupdate/cqrdec.f, + qrupdate/sqrinr.f, qrupdate/cqrinr.f, qrupdate/sqrder.f, + qrupdate/cqrder.f, qrupdate/sqrshc.f, qrupdate/cqrshc.f, + qrupdate/sqr1up.f, qrupdate/cqr1up.f, qrupdate/sch1dn.f, + qrupdate/cch1dn.f, qrupdate/schinx.f, qrupdate/cchinx.f, + qrupdate/schdex.f, qrupdate/cchdex.f, qrupdate/sqrqhu.f, + qrupdate/cqrqhu.f, qrupdate/sqrqhv.f, qrupdate/cqrqhv.f, + qrupdate/sqhqr.f, qrupdate/cqhqr.f: New files. + * qrupdate/Makefile.in (FSRC): Add them. + + * slatec-fn/acosh.f, slatec-fn/albeta.f, slatec-fn/algams.f, + slatec-fn/alngam.f, slatec-fn/alnrel.f, slatec-fn/asinh.f, + slatec-fn/atanh.f, slatec-fn/betai.f, slatec-fn/csevl.f, + slatec-fn/erf.f, slatec-fn/erfc.f, slatec-fn/gami.f, + slatec-fn/gamit.f, slatec-fn/gamlim.f, slatec-fn/gamma.f, + slatec-fn/gamr.f, slatec-fn/inits.f, slatec-fn/pchim.f, + slatec-fn/pchst.f, slatec-fn/r9gmit.f, slatec-fn/r9lgic.f, + slatec-fn/r9lgit.f, slatec-fn/r9lgmc.f, slatec-fn/xacosh.f, + slatec-fn/xasinh.f, slatec-fn/xatanh.f, slatec-fn/xbetai.f, + slatec-fn/xerf.f, slatec-fn/xerfc.f, slatec-fn/xgamma.f, + slatec-fn/xsgmainc.f: New files. + * slatec-fn/Makefile.in (FSRC): Add them. + + 2008-04-20 Jaroslav Hajek + + * qrupdate/dch1dn.f, qrupdate/dchdex.f, qrupdate/dchinx.f, + qrupdate/dqhqr.f, qrupdate/dqrdec.f, qrupdate/dqrinc.f, + qrupdate/dqrqhu.f, qrupdate/dqrqhv.f, qrupdate/dqrshc.f, + qrupdate/zch1dn.f, qrupdate/zchdex.f, qrupdate/zchinx.f, + qrupdate/zqhqr.f, qrupdate/zqrdec.f, qrupdate/zqrder.f, + qrupdate/zqrinc.f, qrupdate/zqrinr.f, qrupdate/zqrqhu.f, + qrupdate/zqrqhv.f, qrupdate/zqrshc.f: + Fix external declarations, XERBLA calls, and docs. + + 2008-04-07 Jaroslav Hajek + + * qrupdate/dqrqhu.f, qrupdate/zqrqhu.f, + * qrupdate/dqrshc.f, qrupdate/zqrshc.f, + * qrupdate/dchinx.f, qrupdate/zchinx.f, + * qrupdate/dchdex.f, qrupdate/zchdex.f: New files. + + 2008-04-02 Jaroslav Hajek + + * blas-xtra/xzdotu.f: Turn into simple wrapper for zdotu. + * blas-xtra/xzdotc.f: Turn into simple wrapper for zdotc. + * qrupdate/zqrqhv.f: Undo previous change. + + 2008-03-22 David Bateman + + * qrupdate/dch1up.f: Remove unused external reference to dlartv. + + 2008-03-18 John W. Eaton + + * qrupdate/zqrqhv.f (zqrqhv): Call xzdotc instead of zdotc. + * blas-xtra/xzdotu.f: Eliminate local zdotu variable. + * blas-xtra/xzdotc.f: New file. + * blas-xtra/Makefile.in (FSRC): Add it to the list. + + 2008-03-10 John W. Eaton + + * blas/zdrot.f, odepack/dlsode.f, odepack/ewset.f, + odepack/intdy.f, fftpack/cffti.f, fftpack/cfftb.f, + fftpack/cfftf.f: + Use (*) instead of (1) for assumed-size dimensions. + + 2008-03-06 Jaroslav Hajek + + * qrupdate/dqrinc.f: Declare DGEMV external. + * qrupdate/zqrinc.f: Declare ZGEMV external. + Fix complex constant args in call to ZGEMV. + + 2008-03-05 Jaroslav Hajek + + * qrupdate/dch1dn.f, qrupdate/zch1dn.f: add "quick return" checks. + + 2008-03-04 Jaroslav Hajek + + * qrupdate/dch1dn.f, qrupdate/dch1up.f, + qrupdate/zch1dn.f, qrupdate/zch1up.f: New files. + * qrupdate/Makefile.in (FSRC): Add them to the list. + + * qrupdate/Makefile.in, qrupdate/dqhqr.f, qrupdate/dqr1up.f, + qrupdate/dqrdec.f, qrupdate/dqrder.f, qrupdate/dqrinc.f, + qrupdate/dqrinr.f, qrupdate/dqrqhv.f, qrupdate/zqhqr.f, + qrupdate/zqr1up.f, qrupdate/zqrdec.f, qrupdate/zqrder.f, + qrupdate/zqrinc.f, qrupdate/zqrinr.f, qrupdate/zqrqhv.f: + New files. + * Makefile.in (CRUFT_DIRS): Add qrupdate to the list. + + 2008-02-14 John W. Eaton + + * misc/f77-fcn.h (F77_XFCN): Call octave_rethrow_exception here + instead of checking octave_allocation_error. + * misc/quit.cc (octave_execution_exception): New function. + (octave_rethrow_exception): New function. + (octave_handle_signal): Call octave_rethrow_exception instead of + octave_throw_interrupt_exception. + * misc/quit.h (octave_execution_error): New variable. + (END_INTERRUPT_WITH_EXCEPTIONS): Catch octave_execution_exception. + (octave_execution_exception): New class. + (octave_exception): New enum. + (octave_exception_state): Rename from octave_allocation_error. + Change all uses. + + 2008-02-12 John W. Eaton + + * lapack-xtra/xilaenv.f: New wrapper for Fortran function ilaenv. + * lapack-xtra/Makefile.in (FSRC): Add it to the list. + + 2008-02-06 John W. Eaton + + * Makerules.in (%.def : %.f): Use mv instead of move-if-change. + + 2008-02-05 John W. Eaton + + * misc/Makefile.in: Unconditionally include $(MAKEDEPS). + Mark $(MAKEDEPS) as .PHONY targets if omit_deps is true. + + 2007-12-21 John W. Eaton + + Version 3.0.0 released. + + 2007-11-01 John W. Eaton + + * lapack-xtra/xzlange.f: Include complete implementation of ZLANGE + function here. + + * blas-xtra/xzdotu.f: Include complete implementation of ZDOTU + function here. + + 2007-10-26 John W. Eaton + + * lapack/dlals0.f: New file. + * lapack/Makefile.in (FSRC): Add it to the list. + + 2007-10-26 David Bateman + + * lapack/dgelsd.f, lapack/dlalsd.f, lapack/dlalsa.f, + lapack/dlasda.f, lapack/dlasdt.f, lapack/dlasdq.f + lapack/dlamrg.f, lapack/dlasd0.f, lapack/dlasd1.f, + lapack/dlasd2.f, lapack/dlasd3.f, lapack/dlasd4.f, + lapack/dlasd5.f, lapack/dlasd6.f, lapack/dlasd7.f, + lapack/dlasd8.f, lapack/dlaed6.f, lapack/zgelsd.f, + lapack/zlalsd.f , lapack/zlalsa.f, lapack/zlals0.f: New files. + * lapack/Makefile.in (FSRC): Include them here. + + 2007-10-23 John W. Eaton + + * lapack/dgtts2.f, lapack/zgtts2.f: New files. + * lapack/Makefile.in (FSRC): Add them to the list. + + 2007-10-16 John W. Eaton + + * lapack/dlacn2.f, lapack/dlacn2.f, lapack/dlahr2.f, + lapack/dlahr2.f, lapack/dlaqr0.f, lapack/dlazq3.f, + lapack/dlazq3.f, lapack/dormr3.f, lapack/dormrz.f, + lapack/iparmq.f, lapack/iparmq.f, lapack/zlacn2.f, + lapack/zlahr2.f, lapack/zlaqr0.f: New files. + * lapack/Makefile.in (FSRC): Add them to the list. + + * lapack: Update all files to current versions from Lapack 3.1.1. + + 2007-10-12 John W. Eaton + + * Change copyright notices in all files that are part of Octave to + GPLv3 or any later version. + + 2007-10-03 John W. Eaton + + * mkf77def.in: Combine sed expressions. + + 2007-09-26 David Bateman + + * lapack/dgelsy.f, lapack/dlatrz.f, lapack/zlarz.f, + lapack/dgeqp3.f, lapack/dtzrzf.f, lapack/zlarzt.f, + lapack/dlaic1.f, lapack/zgelsy.f, lapack/zlatrz.f, + lapack/dlaqp2.f, lapack/zgeqp3.f, lapack/ztzrzf.f, + lapack/dlaqps.f, lapack/zlaic1.f, lapack/zunmr3.f, + lapack/dlarzb.f, lapack/zlaqp2.f, lapack/zunmrz.f, + lapack/dlarz.f, lapack/zlaqps.f, lapack/dlarzt.f, + lapack/zlarzb.f: New files + * lapack/Makefile.in (FSRC): Add the new files. + + 2007-07-25 David Bateman + + * Makefile.in, Makerules.in, fftpack/Makefile.in, + randlib/Makefile.in: Adjust DISTFILES to allow out of tree "make dist" + to work. + + 2007-04-23 John W. Eaton + + * ranlib/phrtsd.f (phrtsd): Store result of call to index + instrinsic in an INTEGER variable to ensure that the types of the + arguments passed to mod really are the same even on 64-bit systems. + + 2007-04-18 Michael Goffioul + + * blas-xtra/xdnrm2.f, blas-xtra/xdznrm2.f: + Delete spurious semicolons. + + 2007-04-06 John W. Eaton + + * blas-xtra/xdnrm2.f, blas-xtra/xdznrm2.f: New functions. + * blas-xtra/Makefile.in (FSRC): Add them to the list. + + * ranlib/phrtsd.f (phrtsd): Ensure that the types of the arguments + passed to mod are the same even on 64-bit systems. + + 2007-04-04 John W. Eaton + + * Makefules.in: Handle Fortran, C, and C++ sources with separate + variables. + * misc/Makefile.in: Use new variables for Fortran, C, and C++ files. + * Makefile.in (clean mostlyclean distclean): No need to remove + $(CRUFT_OBJ) here. + + 2007-04-04 Rafael Laboissiere + + * Makefile.in (clean): Remove mkf77def. + + 2007-03-27 John W. Eaton + + * Makerules.in, Makefile.in (dist): Use ln instead of $(LN_S). + + 2007-02-26 John W. Eaton + + * misc/Makefile.in (CPICDEP): Also set if CPICFLAG is not defined. + (CXXPICDEP): Also set if CXXPICFLAG is not defined. + + 2007-02-26 Michael Goffioul + + * Makefile.in, Makerules.in: Use $(LN_S) instead of ln or ln -s. + + 2007-02-07 John W. Eaton + + * Makerules.in: Don't use wildcard function to generate source + efile list. + * amos/Makefile.in, blas-xtra/Makefile.in, blas/Makefile.in, + daspk/Makefile.in, dasrt/Makefile.in, dassl/Makefile.in, + fftpack/Makefile.in, lapack-xtra/Makefile.in, lapack/Makefile.in, + minpack/Makefile.in, misc/Makefile.in, odepack/Makefile.in, + ordered-qz/Makefile.in, quadpack/Makefile.in, ranlib/Makefile.in, + slatec-err/Makefile.in, slatec-fn/Makefile.in, villad/Makefile.in: + Explicitly list source files. + + 2007-01-24 Alexander Barth + + * misc/f77-fcn.h (F77_CSTRING): Call OCTAVE_LOCAL_BUFFER with cs, + not F77_CHAR_ARG_USE (s). + + 2006-11-11 John W. Eaton + + * Makerules.in (%.def : %.f): Use $(simple-move-if-change-rule) here. + + 2006-11-03 John W. Eaton + + * Makefile.in (DLL_CXXDEFS): Rename from XTRA_CXXDEFS. + (DLL_CDEFS): Rename from XTRA_CDEFS. + Substitute CRUFT_DLL_DEFS, not XTRA_CRUFT_DEFS. + (XTRA_CRUFT_SH_LDFLAGS): Rename from XTRA_CRUFT_LINK_DEPS. + Add $(XTRA_CRUFT_SH_LDFLAGS) to SH_LDFLAGS instead of to LINK_DEPS. + + 2006-10-31 John W. Eaton + + * misc/Makefile.in (INCLUDES): Add oct-dlldefs.h to the list. + + 2006-10-29 John W. Eaton + + * misc/Makefile.in (SPECIAL_INCLUDE): Add oct-dlldefs.h to the list. + + 2006-10-28 Michael Goffioul + + * misc/quit.h: Undefine min and max after including windows.h. + + 2006-10-27 John W. Eaton + + * misc/oct-dlldefs.h: New file. + + * mkf77def.in: Downcase all input to simplify matching. + Match only lines beginning with whitespace. + Match function return types. + Use literal TAB characters instead of \t in sed patterns. + From Michael Goffioul . + + 2006-10-26 Michael Goffioul + + * Makefile.in (XTRA_CRUFT_LINK_DEPS): Substitute. + (CRUFT_DEFS): New variable. + (LINK_DEPS): Include $(XTRA_CRUFT_LINK_DEPS) in the list. + (clean, mostlyclean, distclean): Delete cruft.def. + (cruft.def): New target. + (libraries): Depend on cruft.def. + + * misc/f77-fcn.h (f77_exception_encountered, xstopx): + Tag with CRUFT_API. + * misc/lo-error.h (current_liboctave_error_handler, + current_liboctave_warning_handler, + current_liboctave_warning_with_id_handler, + set_liboctave_error_handler, set_liboctave_warning_handler, + set_liboctave_warning_with_id_handler): Likewise. + * misc/quit.h (w32_sigint_init, w32_raise_final, + w32_raise, w32_in_main_thread, current_context, + octave_save_current_context, octave_restore_current_context, + octave_jump_to_enclosing_context, octave_save_signal_mask, + octave_restore_signal_mask, octave_interrupt_immediately, + octave_interrupt_state, octave_allocation_error, + octave_signal_caught, octave_handle_signal, + octave_throw_interrupt_exception, octave_throw_bad_alloc, + octave_signal_hook, octave_interrupt_hook, octave_bad_alloc_hook): + Likewise. + + 2006-10-26 John W. Eaton + + * Makefile.in ($(CRUFT_DEFS)): Depend on $(SUBDIRS). + (cruft.def): Depend on $(CRUFT_DEFS). + (libraries): Depend on cruft.def only. + + * mk77def.in: New script template + * Makefile.in (DISTFILES): Include mk77def.in in the list. + ($(SUBDIRS)): Depend on mk77def. + (mk77def): New target. + (CRUFT_DEFS): New variable. + * Makerules.in (CRUFT_FSRC, CRUFT_CSRC, CRUFT_CXXSRC): New variables. + (CRUFT_SRC): Define using $(CRUFT_FSRC), $(CRUFT_CSRC), and + $(CRUFT_CXXSRC). + (CRUFT_DEFS): New variable. + ($(CRUFT_DEFS)): Depend on $(TOPDIR)/libcruft/mkf77def. + (%.def : %.f): New pattern rule. Use mkf77def script to do + Fortran name mangling. + (clean, mostlyclean, distclean): Delete $(CRUFT_DEFS). + (all): Depend on $(CRUFT_DEFS) + Partially from Michael Goffioul . + + 2006-10-25 John W. Eaton + + * Makerules.in (XTRA_CDEFS, XTRA_CXXDEFS): Substitute here. + + 2006-10-23 Paul Kienzle + + * misc/f77-fcn.h (F77_CHAR_ARG_DEF, F77_CONST_CHAR_ARG_DEF, + F77_CHAR_ARG_LEN_DEF, F77_CHAR_ARG_USE, F77_CHAR_ARG_LEN_USE, + F77_CSTRING): New macros to handle passing C character strings to + Fortran. + + 2006-10-17 Michael Goffioul + + * lapack-xtra/xdlamch.f: Begin lines with spaces, not tabs. + + * misc/Makefile.in (machar.o, pic/machar.o): Specify output file + name in compile command. + + 2006-10-13 Michael Goffioul + + * Makefile.in: Adapt rules to use $(LIBPRE). + + 2006-09-11 John W. Eaton + + * blas-xtra/xddot.f, blas-xtra/xzdotu.f: New files. + + 2006-06-01 David Bateman + + * slatec-fn/dpchim.f, slatec-fn/dpchst.f: New files. + + 2006-05-22 John W. Eaton + + * lapack/dlantr.f, lapack/zlantr.f: New files. + + 2006-05-03 David Bateman + + * lapack/dpocon.f, lapack/zpocon.f, lapack/dpotrs.f, + lapack/zpotrs.f, lapack/dtrcon.f, lapack/ztrcon.f, + lapack/dtrtrs.f, lapack/ztrtrs.f: New files. + + 2006-04-29 John W. Eaton + + * misc/lo-error.c (set_liboctave_warning_with_id_handler, + liboctave_warning_with_id): New functions. + (current_liboctave_warning_with_id_handler): New variable. + * misc/lo-error.h (liboctave_warning_with_id_handler): New typedef. + (current_liboctave_warning_with_id_handler, liboctave_warning_with_id + set_liboctave_warning_with_id_handler): Provide decls. + + 2006-04-18 John W. Eaton + + * misc/f77-fcn.h (F77_XFCN): Move decls to beginning of blocks for C. + + 2006-04-13 John W. Eaton + + * misc/quit.h BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_1, + END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE): Omit unnecessary casts. + * misc/f77-fcn.h (F77_XFCN, F77_CHAR_ARG_LEN): Likewise. + + 2006-04-03 David Bateman + + * ranlib/wrap.f (dgenexp, dgengam, dignpoi): New functions. + + 2006-03-21 John W. Eaton + + * misc/f77-fcn.h (F77_XFCN): Save octave_interrupt_immediately and + restore it if an exception occurs that causes a longjmp. + + 2005-11-01 John W. Eaton + + * ranlib/ignbin.f, ranlib/ignpoi.f: Avoid arithmetic IF statements. + + 2005-10-17 John W. Eaton + + * lapack/Makefile.in (dlamc1.o pic/dlamc1.o): + Add $(F77_FLOAT_STORE_FLAG) to FFLAGS. + + 2005-09-23 John W. Eaton + + * misc/machar.c: Restore test code. + + 2005-09-15 John W. Eaton + + * misc/quit.h Rename all win32_ symbols to w32. Change all uses. + + 2005-09-15 David Bateman + + * Makefile.in (LN_S): Change to DESTDIR before LN_S to avoid + lack of symlinks under mingw. + * misc/cquit.c (w32_thread_setjmp_mutex, win32_signal_context, + win32_signal_to_raise, win32_main_thread_id, win32_main_thread, + win32_restore_thread): New static variables. + (win32_in_main_thread): Returns 1 if in main thread for win32. + (win32_reset_context): Reset context (longjmp style) for win32. + (win32_raise_in_main): Raise signal in main thread for win32. + (win32_raise): Raise signal for win32. + (win32_raise_final): Clean up win32 signalling. + (win32_sigint_init): Initialize win32 signalling. + * quit.h (win32_sigint_init, win32_raise_final, win32_raise, + win32_in_main_thread): Declaration. + + 2005-09-14 Daniel + + * lapack/zbdsqr.f: Fix typo in docs. + From Jorge Barros de Abreu . + + 2005-05-06 John W. Eaton + + * lapack/dpotri.f, lapack/dlauum.f, lapack/dlauu2.f, + lapack/zpotri.f, lapack/zlauum.f, lapack/zlauu2.f: New files. + + 2005-04-08 John W. Eaton + + * Makefile.in, Makerules.in (clean, distclean, maintainer-clean): + Avoid duplication in rules. + + 2005-03-17 Andy Adler + + * Makerules.in (install-strip): Include double-colon target here too. + + 2005-03-09 John W. Eaton + + * Makefile.in (bin-dist): Delete target. + (BINDISTLIBS, BINDISTFILES): Delete variables. + + 2005-03-01 John W. Eaton + + * Makefile.in (CRUFT_DIRS): Remove it from the list. + * odessa: Delete directory. + + * misc/machar.c (rmachar): Declare local REAL variables volatile. + + 2005-02-25 John W. Eaton + + * blas/zher.f: New file. + + Sparse merge. + + 2005-01-13 David Bateman + + * lapack/dgttrf.f lapack/dgttrs.f lapacl/zgttrf.f lapack/zgttrs.f: + new files + + 2005-01-23 David Bateman + + * lapack/dgtsv.f lapack/dpbcon.f lapack/dpbtf2.f lapack/dpbtrf.f + lapack/dpbtrs.f lapack/dptsv.f lapack/dpttrf.f lapack/dpttrs.f + lapack/dptts2.f lapack/zgtsv.f lapack/zpbcon.f lapack/zpbtf2.f + lapack/zpbtrf.f lapack/zpbtrs.f lapack/zptsv.f lapack/zpttrf.f + lapack/zpttrs.f lapck/zptts2.f: New files. + + 2004-12-29 John W. Eaton + + * blas/zbtsv.f: New file. + * lapack/dgbcon.f, lapack/dgbtrf.f, lapack/dgbtrs.f, + lapack/dlatbs.f, lapack/zgbcon.f, lapack/zgbtf2.f, + lapack/zgbtrf.f, lapack/zgbtrs.f, lapack/zlatbs.f: New files. + + 2005-02-10 John W. Eaton + + * misc/cquit.c (octave_signal_caught): New global variable. + * misc/quit.cc (occtave_handle_signal): New function. + (octave_signal_hook): New global pointer. + * misc/quit.h: Provide decls. + (OCTAVE_QUIT): Check octave_signal_caught, not + octave_interrupt_state, and call octave_handle_signal, not + octave_throw_interrupt_exception. + + 2005-02-08 John W. Eaton + + * misc/quit.h: Use C-style comments. + + 2004-09-08 John W. Eaton + + * misc/machar.c (rmachar): Use modern C declaration. + + 2004-02-24 John W. Eaton + + * misc/f77-fcn.c: Handle Cray, CVF, and f2c calling conventions. + + * misc/f77-fcn.h (xstopx): Use F77_CHAR_ARG_DECL and + F77_CHAR_ARG_LEN_DECL in declaration. + + 2004-02-20 John W. Eaton + + * misc/quit.h (OCTAVE_QUIT): Set octave_interrupt_state to -1 + while we are handling interrupts. + + 2004-02-14 John W. Eaton + + * Makefile.in (LINK_DEPS): Always define. + + 2003-11-12 John Eaton + + * misc/machar.c (machar) [CRAY]: Kluge to make it work. + + 2003-10-31 John W. Eaton + + * odepack/dlsode.f: Rename from odepack/lsode.f. + * odepack/dlsode.f (DLSODE): Rename from LSODE to avoid name + conflict with LSODE class constructors on systems that upcase + Fortran names. + + * odessa/dodessa.f: Rename from odessa/odessa.f. + * odessa/dodessa.f (DODESSA): Rename from ODESSA to avoid name + conflict with ODESSA class constructors on systems that upcase + Fortran names. + + 2003-10-30 John W. Eaton + + * Makefile.in (MISC_OBJ): Add misc/cquit.o to the list. + + * misc/Makefile.in (SPECIAL_SRC): Add cquit.c to the list. + * misc/cquit.c: New file. + * misc/quit.cc: Move everything except octave_interrupt_hook, + octave_bad_alloc_hook, octave_throw_interrupt_exception, and + octave_throw_bad_alloc to cquit.c. + + 2003-10-28 John W. Eaton + + * misc/quit.h (octave_interrupt_hook, octave_bad_alloc_hook): + Move declarations outside of extern "C" block. + + 2003-10-27 John W. Eaton + + * misc/f77-fcn.h: Only use inline if this is C++. + + * misc/f77-fcn.c (xstopx): Return type is now F77_RET_T. + Use F77_RETURN. + * misc/machar.c (machar): Likewise. + + * misc/f77-fcn.h (F77_CHAR_ARG, F77_CONST_CHAR_ARG, F77_CHAR_ARG2, + F77_CONST_CHAR_ARG2, F77_CXX_STRING_ARG, F77_CHAR_ARG_LEN, + F77_CHAR_ARG_DECL, F77_CONST_CHAR_ARG_DECL, F77_CHAR_ARG_LEN_DECL, + F77_RET_T, F77_RETURN): New macros. + [F77_USES_CRAY_CALLING_CONVENTION]: New data conversion functions. + + * misc/quit.h (octave_interrupt_hook, octave_bad_alloc_hook): + Move function pointer declarations inside __cplusplus section. + + 2003-07-29 John W. Eaton + + * Makefile.in (install-lib): Use $(INSTALL), not + $(INSTALL_PROGRAM) for $(SHLLIB) files. + + 2003-07-02 John W. Eaton + + * Makefile.in (CLEAN_SUBDIRS): New variable. + (clean mostlyclean distclean maintainer-clean): Use it to ensure + cleaning in all subdirs, not just those we build in. + + * Makerules.in (maintainer-clean, distclean): Don't use + dependencies on double colon rules. + (distclean): Also remove *.d, *.a, *.o, pic/*.o, pic, and stmp-pic. + (maintainer-clean): Also remove *.d, *.a, *.o, pic/*.o, pic, and + stmp-pic, and Makefile. + + * Makefile.in (maintainer-clean, distclean): Also remove *.$(SHLEXT). + + 2003-06-16 John W. Eaton + + * dasrt/ddasrt.f (DDASRT): Print correct message for invalid MXSTP. + + * dassl/ddassl.f (DDASSL): Handle MXSTP as in DASRT. + + * dassl/ddajac.f (DDAJAC): LIPVT is now 22. + * dassl/ddassl.f (DDASSL): Likewise. + * dassl/ddaslv.f (DDASLV): Likewise. + + * misc/quit.h (octave_interrupt_hook, octave_bad_alloc_hook): + New function pointers. + * misc/quit.cc: Initialize them. + (octave_throw_interrupt_exception): If octave_interrupt_hook is + set, call it. + (octave_throw_bad_alloc): Likewise, for octave_bad_alloc_hook. + + * dasrt/ddasrt.f (DDASRT): Set LMXSTP to 21 and LIPVT to 22 to + avoid conflict with LLAST in DRCHECK. Change docs for INFO(12) + and LIW. + + 2003-05-14 John W. Eaton + + * Makefile.in, misc/Makefile.in: Handle DESTDIR. + + 2003-02-20 John W. Eaton + + * blas/sgemm.f, blas/strsm.f, blas/ssyrk.f, blas/sscal.f, + blas/sgemv.f, blas/sdot.f: New files. + + 2003-02-20 Paul Kienzle + + * dassl/ddaslv.f: Fortran doesn't use ; in statements. + + 2003-02-18 John W. Eaton + + * blas/dtbsv.f: New file. + * lapack/dlatrs.f, lapack/dtrti2.f, lapack/dtrtri.f, lapack/ztrti2.f, + lapack/ztrtri.f: New files. + + 2003-02-04 David Bateman + + * Makefile.in (CRUFT_DIRS): Remove linpack from list. + + * linpackdgbfa.f, linpackdgbsl.f, linpackdgeco.f, linpackdgedi.f, + linpackdgefa.f, linpackdgesl.f, linpackspofa.f, linpackzgeco.f, + linpackzgedi.f, linpackzgefa.f, linpackzgesl.f: Delete. + + * dassl/ddajac.f, dassl/ddaslv.f: Use DGxTRF and + DGxTRS instead of DGxFA and DGxSL. + * daspk/ddaspk.f, daspk/dmatd.f, daspk/dslvd.f: Likewise. + * odepack/lsode.f, odepack/prepj.f, odepack/solsy.f: Likewise. + * odessa/odessa.f, odessa/odessa_prepj.f, odessa/odessa_solsy.f: + Likewise. + * libcrudt/ranlib/setgmn.f: Use SPOTRF instead of SPOFA. + + * lapack/dgbtf2.f, lapack/dgbtrf.f, lapack/dgbtrs.f, + lapack/dgecon.f, lapack/dgetri.f, lapack/spotf2.f, + lapack/spotrf.f, lapack/zgecon.f, lapack/zgetri.f: New files. + + 2003-01-22 John W. Eaton + + * misc/quit.h (BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_1, + BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_2): New macros. + + 2003-01-03 John W. Eaton + + * odessa/odessa_rscom.f (ODESSA_RSCOM): Fix apparent typo (LODE2 + should probably be LIODE2). + + * Makerules.in (clean, mostlyclean): Also remove *.d. + + * misc/quit.cc: Add std:: qualifiers to memcpy calls. + + 2003-01-03 Paul Kienzle + + * misc/quit.h: Move #include outside extern "C" block. + * misc/f77-fcn.h: Move #include "quit.h" outside extern "C" block. + + 2002-11-20 John W. Eaton + + * misc/quit.h (BEGIN_INTERRUPT_WITH_EXCEPTIONS, + END_INTERRUPT_WITH_EXCEPTIONS): Only define for C++ source. + Include for C++ source. + + 2002-11-15 John W. Eaton + + * misc/quit.h, misc/quit.cc [! USE_EXCEPTIONS_FOR_INTERRUPTS]): + Always use exceptions for handling interrupts. + (BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE): + + * misc/quit.h (OCTAVE_TRY_WITH_INTERRUPTS, OCTAVE_THROW_BAD_ALLOC, + OCTAVE_CATCH_INTERRUPTS, SAVE_OCTAVE_INTERRUPT_IMMEDIATELY, + INCREMENT_OCTAVE_INTERRUPT_IMMEDIATELY, OCTAVE_THROW_TO_TOP_LEVEL, + DECREMENT_OCTAVE_INTERRUPT_IMMEDIATELY, OCTAVE_JUMP_TO_TOP_LEVEL, + SET_OCTAVE_INTERRUPT_IMMEDIATELY): Replace all uses with + definitions, delete macros. + + 2002-11-14 John W. Eaton + + * misc/quit.cc (octave_allocation_error): New variable. + (octave_throw_bad_alloc): New function. + * misc/quit.h: Provide decls. + (OCTAVE_THROW_BAD_ALLOC): New macro. + (END_INTERRUPT_WITH_EXCEPTIONS): Also catch bad_alloc. + * misc/f77-fcn.h (F77_XFCN): Handle allocation errors. + + * misc/quit.h (octave_jmp_buf): New typedef. + (current_context): Type is now octave_jmp_buf. + (octave_set_current_context): Use sigsetjmp if we have it. + (octave_interrupt_immediately, octave_interrupt_state): Type is + now sig_atomic_t. + (BEGIN_INTERRUPT_WITH_EXCEPTIONS, END_INTERRUPT_WITH_EXCEPTIONS): + New macros. + + * misc/quit.cc (octave_jump_to_enclosing_context): Use siglongjmp + if we have it. + (octave_save_current_context, octave_restore_current_context): Use + octave_jmp_buf type here. + + 2002-11-07 John W. Eaton + + * misc/Makefile.in: Handle automatic dependency generation for + C/C++ source files. + + * misc/quit.h (INCREMENT_OCTAVE_INTERRUPT_IMMEDIATELY, + DECREMENT_OCTAVE_INTERRUPT_IMMEDIATELY, + SET_OCTAVE_INTERRUPT_IMMEDIATELY): New macros. + (BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE, + BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE): Use them. + * f77-fcn.h (F77_XFCN): Likewise. + + * misc/quit.cc: Include for memcpy decl. + + 2002-11-06 John W. Eaton + + * misc/f77-fcn.h (F77_XFCN): Adapt to new signal/exception + handling scheme. + (f77_context): Delete decl. + (copy_f77_context): Likewise. + * misc/f77-fcn.cn (copy_f77_context): Delete. + (Fxstopx): Set f77_exception_encountered. + Use octave_jump_to_enclosing_context, not longjmp. + + * misc/f77-extern.cc (f77_context): Delete definition. + + * misc/quit.h, misc/quit.cc: New files. + * misc/Makefile: Add them to the appropriate lists. + + * Makefile (MISC_OBJ): Add misc/quit.o + + 2002-10-31 John W. Eaton + + * odessa/odessa.f (ODESSA): Second arg of xerrwd is string length. + * odessa/odessa_intdy.f (ODESSA_INTDY): Likewise. + + 2002-10-29 John W. Eaton + + * dasrt/ddasrt.f (DDASRT): Fix computation of LENRW. + + 2002-10-16 John W. Eaton + + * Makefile.in (install): Don't bother with versions for $(SHLBIN) + files. + + * slatec-err/xerrwd.f (XERRWD): Print msg(1:nmes), not just msg. + + 2002-10-14 John W. Eaton + + * Makefile.in (install): No need to use cd to create links. + + 2002-10-14 Paul Kienzle + + * Makefile.in: Use link dependencies for shared libs if + INCLUDE_LINK_DEPS. + (LIBRARIES): If doing shared libs, include versioned library in list. + (libcruft.$(SHLEXT), libcruft.$(SHLEXT_VER)): Reverse actions -- + build unversioned library, symbolic link adds version info. + (install, uninstall): Handle link and load forms of the library + separately. + + 2002-09-30 Paul Kienzle + + * slatec-fn/xdacosh.f: Mark external functions as external. + * slatec-fn/xdasinh.f: Ditto. + * slatec-fn/xdatanh.f: Ditto. + * slatec-fn/xdbetai.f: Ditto. + * slatec-fn/xderf.f: Ditto. + * slatec-fn/xderfc.f: Ditto. + * slatec-fn/xdgami.f: Ditto. + * slatec-fn/xdgamit.f: Ditto. + * slatec-fn/xdgamma.f: Ditto. + * slatec-fn/xgmainc.f: Ditto. + + 2002-08-14 John W. Eaton + + * odessa/odessa.f (ODESSA): Use XERRWD instead of XERR. + * odessa/intdy.f (ODESSA_INTDY): Likewise. + * odessa_rscom.f (ODESSA_RSCOM): Delete unused common block EH0001. + * odessa_svcom.f (ODESSA_SVCOM): Likewise. + + * dasrt/xerrwv.f, odepack/xerrwv.f: Delete. + * slatec-err/xerrwd.f (XERRWD): Call XSTOPX instead of using STOP. + + * quadpack/dqagi.f (DQAGI): Replace Hollerith constants with + character string constants. + * quadpack/dqagp.f (DQAGP): Likewise. + * odepack/lsode.f (LSODE): Likewise. + + * odepack/lsode.f (LSODE): Use XERRWD instead of XERRWV. + * odepack/intdy.f (INTDY): Likewise. + * dasrt/ddasrt.f (DDASRT): Likewise. + * quadpack/xerror.f (XERROR): Likewise. + + 2002-07-25 John W. Eaton + + * slatec-fn/xgmainc.f: New file. + + 2002-07-12 John W. Eaton + + * dasrt: New subdirectory. + * Makefile.in (CRUFT_DIRS): Add it to the list. + + 2002-07-10 John W. Eaton + + * odessa: New subdirectory. + * Makefile.in (CRUFT_DIRS): Add it to the list. + + 2002-06-27 John W. Eaton + + * slatec-err/xermsg.f (XERMSG): If MAXMES .LT. 0, messages may be + printed an unlimited number of times. + * slatec-err/j4save.f (J4SAVE) Default for MAXMES is now -1. + + * misc/f77-fcn.c (xstopx): Pass args in proper order. + + 2002-05-22 John W. Eaton + + * ordered-qz/dsubsp.f (DSUBSP): Delete decl for unused variable J. + + * misc/f77-fcn.c (xstopx): Return type is void, not volatile void. + * misc/f77-fcn.h (xstopx): Provide decl. Add special gcc noreturn + attribute here. + + 2002-05-16 John W. Eaton + + * misc/f77-fcn.h: Define F77_FCN for backward compatibility. + + 2002-04-27 John W. Eaton + + * slatec-err/ixsav.f, slatec-err/xerrwd.f: New files. + + * daspk: New directory. + * Makefile.in (CRUFT_DIRS): Add it to the list + + 2002-04-03 Steven G. Johnson + + * misc/machar.c: Use F77_FUNC instead of checking + F77_APPEND_UNDERSCORE. + * misc/f77-fcn.h: Don't define F77_FCN. + (xSTRINGIZE, STRINGIZE): New macros. + (F77_XFCN_ERROR): Simplify by using STRINGIZE and F77_FUNC. + (F77_XFCN): Use F77_FUNC instead of F77_FCN. + * misc/f77-fcn.c: Use F77_FUNC instead of F77_FCN. + + 2001-11-01 John W. Eaton + + * Makefile.in (DISTSUBDIRS): Add fftpack. + + 2001-08-13 John W. Eaton + + * lapack/dlasq3.f: Update from netlib. + * lapack/dlasq5.f: Ditto. + + 2001-05-02 Mumit Khan + + * Makefile.in (CRUFT_DIRS): Substitute @FFT_DIR@. + + 2001-04-25 John W. Eaton + + * Makefile.in (install): Don't use mk-libdir-link. + + 2001-04-19 John W. Eaton + + * misc/Makefile.in (CPICDEP): Remove pic/dostop.o from the list. + + 2001-03-27 John W. Eaton + + * misc/xstopx.f: Delete. + * misc/dostop.c: Delete. + * misc/Makefile.in (SPECIAL, SPECIAL_DEPEND): Delete dostop.c and + dostop.o from lists. + * Makefile.in (MISC_OBJ): Delete misc/dostop.o from the list. + + * misc/dostop.c (dostop): Use F77_FCN macro for function definition. + Specify length in error format to avoid need for copying string. + From Paul Kienzle . + + 2000-12-14 John W. Eaton + + * lapack/dgelss.f (DGELSS): Use correct leading dimension for + workspace array passed to dgemm and dlacpy. + (ZGELSS): Likewise, for calls to zgemm and zlacpy. + + 2000-07-18 John W. Eaton + + * Makefile.in (DISTSUBDIRS): New macro. + (dist): Use it instead of SUBDIRS. + + 2000-06-30 Steven G. Johnson + + * blas-xtra, lapack-xtra: New directories. + * Makefile.in (CRUFT_DIRS): Add them to the list. + Substitute @BLAS_DIR@ and @LAPACK_DIR@ here. + * blas-xtra/xerbla.f: Move here from blas subdirectory. + * blas-xtra/Makefile.in: New file. + * lapack-xtra/xdlamch.f, lapack-xtra/xdlange.f, + lapack-xtra/xzlange.f: Move here from lapack subdirectory. + * lapack-xtra/Makefile.in: New file. + + 2000-04-25 John W. Eaton + + * misc/Makefile.in (install, uninstall): Include files go in + $(octincludedir)/octave, not just $(octincludedir). + + 2000-03-25 John W. Eaton + + * Makefile.in (LIBRARIES): Conditionally define. + (libraries): Depend on $(SUBDIRS) only. + Make $(LIBRARIES) using a recursive invocation of make once + $(SUBDIRS) are up to date. + (.NOTPARALLEL): New target, for GNU Make 3.79. + + 2000-03-21 John W. Eaton + + * Makefile.in (libcruft.$(LIBEXT)): New target. + (all): Depend on `libraries', not `$(SUBDIRS) shared-lib'. + Conditionally construct `libraries' target. + (libcruft.$(SHLEXT_VER)): Delete target before rebuilding. + * Makerules.in (LIBCRUFT): Delete variable. + (LIBCRUFT_DEPEND): Conditionally define to $(LIBCRUFT_OBJS) only. + (all): Print warning if anything is done. + (stmp-pic): New target. + ($CRUFT_PICOBJ): Depend on stmp-pic. + (clean, mostlyclean): Remove pic and stmp-pic. + + 2000-02-10 John W. Eaton + + * lapack/dbdsqr.f, lapack/dgeesv.f, lapack/dgelss.f, + lapack/dgesvd.f, lapack/dlasq1.f, lapack/dlasq2.f, + lapack/dlasq3.f, lapack/dlasq3.f, lapack/dlasq4.f, + lapack/dlasq5.f, lapack/dlasq6.f, lapack/zbdsqr.f, + lapack/zgelss.f, lapack/zgesvd.f, lapack/zhetd2.f: + Update from netlib. + + 1999-11-03 John W. Eaton + + * Update to Lapack version 3.0. + * lapack/ieeeck.f, lapack/dlasq2.f, lapack/dlasq3.f, + lapack/dlasq5.f, lapack/dlasq6.f: New files. + + 1999-10-29 John W. Eaton + + * misc/lo-error.cc (current_liboctave_warning_handler): Define here. + (set_liboctave_warning_handler): New function. + (liboctave_warning): Ditto. + * misc/lo-error.h: Provide declararations for them here. + + 1999-10-19 John W. Eaton + + * Makefile.in (dist): Use `$(MAKE) -C dir' instead of `cd dir; + $(MAKE); cd ..'. + + 1999-10-01 John W. Eaton + + * dassl/dpotrf.f, dassl/dpotf2.f: Move to lapack subdirectory. + + Fri Mar 26 01:19:04 1999 John W. Eaton + + * Makerules.in (all): Don't try to use a special rule for making + the archive. The default rules may be slower, but they are also + correct. + + Wed Nov 11 17:27:35 1998 John W. Eaton + + * Makefile.in (CRUFT_DIRS): Add amos. Delete specfun. + * specfun: Delete directory. + * amos: New directory + + Thu Oct 15 00:43:13 1998 John W. Eaton + + * ranlib: Update to newer version of randlib. + * ranlib/Makefile.in (SPECIAL): Update list. + + Thu Sep 24 11:59:02 1998 John W. Eaton + + * balgen, eispack: Delete directories and unnecesary files. + * Makefile.in (CRUFT_DIRS): Delete eispack and balgen from the list. + + * lapack/xdlamch.f: New file. + + * ordered-qz: New directory. + * Makefile.in (CRUFT_DIRS): Add it to the list. + + * lapack/dggbak.f, lapack/dtgevc.f, lapack/zggbal.f: New files. + + Tue Jun 2 09:57:52 1998 John W. Eaton + + * specfun/rybesl.f (rybesl): Don't access by(2) unless nb .gt. 1. + + Mon May 11 12:33:42 1998 John W. Eaton + + * fftpack/passb3.f, fftpack/passb5.f, fftpack/passf3.f, + fftpack/passf5.f: Use double precision constants in data + statements. + + Tue Apr 14 14:01:22 1998 John W. Eaton + + * slatec-fn/xdgamit.f (xdgamit): New file. + + Mon Apr 6 00:26:35 1998 John W. Eaton + + * slatec-fn/xdgami.f (xdgami): Reorder args to match dgami. + + Thu Feb 19 21:00:00 1998 John W. Eaton + + * specfun/ribesl.f, specfun/rjbesl.f: Compute NSIG correctly. + Add missing comma in declaration statement. + + Sun Feb 1 12:39:10 1998 John W. Eaton + + * Makefile.in (install, uninstall): Use $(octlibdir), not $(libdir). + Use $(mk-libdir-link). + + * quadpack/dqagi.f, quadpack/dqagie.f, quadpack/dqagp.f, + quadpack/dqagpe.f, quadpack/dqk15i.f, quadpack/dqk21.f: + Make user-supplied code a subroutine instead of a function. + + Mon Jan 19 23:11:21 1998 John W. Eaton + + * lapack/xdlange.f, lapack/xzlange.f: New files. + + Mon Dec 1 00:51:03 1997 John W. Eaton + + * dassl/xerhlt.f, dassl/xermsg.f, dassl/xerprn.f, dassl/xgetua.f, + dassl/xsetua.f: Delete. + + * slatec-err: New directory. + * Makefile.in: Add it to the list. + + Sun Nov 30 17:55:20 1997 John W. Eaton + + * slatec-fn/xdgami.f, slatec-fn/xdbetai.f, slatec-fn/xderfc.f, + slatec-fn/xderf.f, slatec-fn/xdatanh.f, slatec-fn/xdasinh.f, + slatec-fn/xdacosh.f: New files. + + Sat Nov 29 13:02:14 1997 John W. Eaton + + * specfun/ribesl.f (ribesl): Use d1mach to get machine parameters. + SAVE static data between calls. Use PARAMETERS where possible. + * specfun/rjbesl.f (rjbesl): Likewise. + * specfun/rkbesl.f (rkbesl): Likewise. + * specfun/rybesl.f (rybesl): Likewise. + + Fri Nov 28 14:05:12 1997 John W. Eaton + + * specfun: New subdirectory. + * specfun/Makefile.in, specfun/ribesl.f, specfun/rjbesl.f, + specfun/rkbesl.f, specfun/rybesl.f: New files. + * Makefile.in (CRUFT_DIRS): Add specfun. + + Wed Nov 26 01:49:47 1997 John W. Eaton + + * slatec-fn/d9gmit.f, slatec-fn/d9lgic.f, slatec-fn/d9lgit.f, + slatec-fn/dbetai.f, slatec-fn/dgami.f, slatec-fn/dgamit.f, + slatec-fn/dgamr.f, slatec-fn/dlbeta.f, slatec-fn/dlnrel.f: + New files for incomplete beta and incomplete gamma functions. + + Thu Jul 17 13:18:57 1997 Klaus Gebhardt + + * blas/xerbla.f (xerbla): Call XSTOPX instead of using STOP. + + Fri Jun 6 16:49:22 1997 John W. Eaton + + * slatec-fn/xdgamma.f: New file. + + * fsqp, npsol, qpsol: Delete directories. + * Makefile.in (CRUFT_DIRS): Delete fsqp, npsol, and qpsol from list. + + Thu Jun 5 01:40:36 1997 John W. Eaton + + * Makefile.in, Makerules.in: Make building of static library optional. + (liboctave.$(SHLEXT_VER)): Add $(SONAME_FLAGS) to command. + + * Makerules.in (stamp-picdir): Delete. + (pic): New target. Don't worry so much about creating pic + directory only when it is really needed. + + * Makefile.in (stamp-shared): Delete. + (shared-lib): New target. Depend on shared libraries directly. + + Wed May 21 16:29:42 1997 John W. Eaton + + * misc/Makefile.in (install): Ensure include directory link is made. + (uninstall): Delete all installed files. + + Thu Mar 13 22:31:35 1997 John W. Eaton + + * blas, lapack: Add new files for symmetric eigenvalue + computation. + + Wed Mar 12 16:59:59 1997 John W. Eaton + + * misc/Makefile.in (install-strip): New target. + + * Makefile.in (install-strip): New target. + + Mon Mar 3 15:38:39 1997 John W. Eaton + + * ranlib/Makefile.in (EXTERNAL_DISTFILES): Add Basegen.doc. + + * fftpack/Makefile.in (EXTERNAL_DISTFILES): Add fftpack.doc. + + * Makefile.in (DISTFILES): Add configure.in. + + Sat Mar 1 15:23:14 1997 John W. Eaton + + * Version 2.0.5 released. + + Wed Feb 26 12:08:39 1997 John W. Eaton + + * Makefile.in (maintainer-clean): Also remove configure. + + Thu Feb 20 02:58:05 1997 John W. Eaton + + * Version 2.0.4 released. + + Tue Feb 18 09:22:04 1997 John W. Eaton + + * Version 2.0.3 released. + + Fri Feb 14 16:23:42 1997 John W. Eaton + + * Makefile.in (bin-dist): Don't write empty strings to LIBRARIES. + + Thu Feb 13 17:33:41 1997 John W. Eaton + + * Makefile.in (stamp-shared): Use $(SH_LD) $(SH_LDFLAGS) instead + of $(CXX) -shared. + + * Makerules.in (stamp-picdir): Silence noise about making pic. + + Mon Jan 27 15:52:29 1997 John W. Eaton + + * Version 2.0.2 released. + + Sat Jan 25 22:34:10 1997 John W. Eaton + + * Makefile.in, balgen/Makefile.in, blas/Makefile.in, + cfsqp/Makefile.in, dassl/Makefile.in, eispack/Makefile.in, + fftpack/Makefile.in, fsqp/Makefile.in, lapack/Makefile.in, + linpack/Makefile.in, minpack/Makefile.in, misc/Makefile.in, + npsol/Makefile.in, odepack/Makefile.in, qpsol/Makefile.in, + quadpack/Makefile.in, ranlib/Makefile.in, slatec-fn/Makefile.in, + villad/Makefile.in (bin-dist): New target. + + Wed Jan 22 15:03:33 1997 John W. Eaton + + * misc/Makefile.in (pic/machar.o): Add $(CPICFLAG) for this target. + + * misc/d1mach.f (d1mach): Move SAVE statement ahead of DATA statment. + + Wed Jan 15 21:04:29 1997 John W. Eaton + + * blas/*.f: Update to latest version from Netlib. + + Tue Jan 7 00:17:17 1997 John W. Eaton + + * Version 2.0.1 released. + + Tue Dec 17 11:02:02 1996 John W. Eaton + + * misc/lo-error.c: Convert C++-style comments to C-style comments. + + Wed Dec 11 01:50:31 1996 John W. Eaton + + * misc/Makefile.in (SPECIAL_DEPEND): Delete d1mach.o from the list. + + Tue Dec 10 01:43:10 1996 John W. Eaton + + * Version 2.0 released. + + Fri Dec 6 15:23:50 1996 John W. Eaton + + * Version 1.94. + + Wed Nov 20 01:00:43 1996 John W. Eaton + + * misc/Makefile.in (install): Also install lo-error.h. + + * Makefile.in (MISC_OBJ): Add misc/f77-fcn.o. + + * misc/lo-error.h: New file, moved here from liboctave. + * misc/lo-error.c: Rename from lo-error.cc. Make this a C-file + instead of C++. + + * Version 1.93. + + Tue Nov 19 23:04:24 1996 John W. Eaton + + * misc/Makefile.in: Add variables for installing things. + + * Makerules.in (install, uninstall): Make these double colon rules. + + * f77-fcn.c, f77-fcn.h: New files, from liboctave. + + * misc/Makefile.in (SPECIAL_DEPEND): Add f77-fcn.o. + (SPECIAL): Add f77-fcn.c and f77-fcn.h. + (CPICDEP): Add pic/f77-fcn.o. + (install): Install f77-fcn.h in $(octincludedir). + (uninstall): Delete f77-fcn.h from $(octincludedir). + + * Makerules.in (CRUFT_CSRC): Delete unsed variable. + + Thu Nov 14 00:07:00 1996 John W. Eaton + + * Version 1.92. + + Fri Nov 8 09:55:40 1996 John W. Eaton + + * Makefile.in (libcruft.a): Delete target. + * Makerules.in, Makefile.in: Use real archive rules to build + libcruft.a in parts. + + * Makefile.in (install): Use $(INSTALL_PROGRAM) for installing + shared library. + + Thu Nov 7 12:43:17 1996 John W. Eaton + + * Makefile.in: Add -lm when building shared library. + + * Version 1.91. + + Mon Nov 4 10:09:00 1996 John W. Eaton + + * lapack/dlag2.f, lapack/dggbal.f, lapack/dgghrd.f, lapack/dhgeqz.f: + New files. + + * Makefile.in (install): Use INSTALL_PROGRAM for shared version of + libcruft. + + Sun Nov 3 19:37:37 1996 John W. Eaton + + * misc/Makefile.in (distclean): Delete target, since there is + nothing special to do. + + Wed Oct 30 17:20:14 1996 John W. Eaton + + * Version 1.90. + + * Makefile.in (DISTFILES): Add ChangeLog. + + * misc/Makefile.in: Make pic/machar.o using special rule. + Use CPPFLAGS, not CPP_FLAGS. + + Thu Oct 24 20:22:47 1996 John W. Eaton + + * Makefile.in (CRUFT_OBJ): No special treatment for d1mach.o. + + * misc/machar.c, misc/d1mach.f: New files + * misc/Makefile.in: Fix to not generate d1mach.f. + + Mon Oct 14 11:07:25 1996 John W. Eaton + + * Makefile.in (distclean): Remove stamp-shared too. + + Sat Oct 12 00:20:41 1996 John W. Eaton + + * Makefile.in (maintainer-clean): Don't depend on distclean. + * Makerules.in (maintainer-clean): Ditto. + + Tue Aug 20 22:09:08 1996 John W. Eaton + + * Makerules.in (stamp-picdir): Only create a pic subdirectory if + SHARED_LIBS is true AND FPICFLAG is not empty. + + Wed May 22 15:07:00 1996 John W. Eaton + + * Makefile.in (stamp-shared): Use CC, not CXX to create shared + library. Also use SHARED_FLIBS here instead of FLIBS. + + Sat Apr 6 21:28:47 1996 John W. Eaton + + * Makerules.in (clean, mostlyclean): Also remove pic/*.o. + (maintainer-clean, distclean): Also remove stamp-picdir and pic + directory. + + Wed Apr 3 01:01:31 1996 John W. Eaton + + * misc/Makefile.in: Set SPECIAL_PICDEPEND after including Makeconf + and before including Makerules. + + Fri Mar 29 13:45:06 1996 John W. Eaton + + * Makefile.in (distclean): Delete so_locations, which is created + on DEC Alpha systems. + (distclean, maintainer-clean): Don't depend on clean. + + Wed Mar 27 05:59:02 1996 John W. Eaton + + * Makerules.in: Add rules for making PIC code here. + * Makefile.in (libcruft.a): Depend on $(CRUFT_PICOBJ) + * misc/Makefile.in: Add rules for making PIC code from C and C++ + files. + + Fri Feb 9 21:04:45 1996 John W. Eaton + + * misc/f77-extern.cc, misc/lo-error.cc: New files. + * misc/Makefile.in (SPECIAL, SPECIAL_DEPEND): Add them to the lists. + * Makefile.in (CRUFT_OBJ): Add it f77-extern.o and lo-error.o here + too. + + Sat Feb 3 07:57:39 1996 John W. Eaton + + * misc/dostop.c (dostop): Call error handler if we have a message. + Call longjmp on f77_context, not jump_to_top_level(). + * misc/xstopx.f (xstopx): Pass non-blank strings on to dostop. + + Mon Jan 8 22:55:26 1996 John W. Eaton + + * Makefile.in (clean): If $(SHARED_LIBS), remove shared libs. + (mostlyclean): Ditto. + + Fri Dec 29 21:43:24 1995 John W. Eaton + + * Makefile.in, Makerules.in: Handle creating position independent + code and shared libraries for Octave. + + Tue Dec 26 00:15:31 1995 John W. Eaton + + * Makerules.in (stamp-picdir): New target. + (all): Depend on it. + + * Makefile.in: Delete references to configure stuff. + * configure.in, mkinstalldirs: Delete. + + Sun Dec 24 02:42:29 1995 John W. Eaton + + * linpack/spofa.f: New file. + * blas/level-1/sdot.f: New file. + * blas/level-2/dsyr.f: New file. + + Thu Dec 14 02:34:19 1995 Rick Niles + + * fftpack/cfftb1.f, fftpack/cfftf1.f, fftpack/cffti1.f, + odepack/prepj.f, odepack/solsy.f, odepack/stode.f: + Avoid warnings for nonstandard dimension statements of the form + `real foo(1)' by using `real foo(*)' instead. + + Mon Nov 6 07:24:03 1995 John Eaton + + * misc/dostop.c: Only call jump_to_top_level() if OCTAVE_SOURCE. + + Fri Nov 3 11:08:31 1995 John Eaton + + * misc/dostop.c: Just call jump_to_top_level() directly here. + + Wed Sep 20 00:01:03 1995 John Eaton + + * mkinstalldirs: New file. + * Makefile.in (DISTFILES): Add it to the list. + + * Makerules.in: Fix cleaning rules. Use double colon so we can + add things in the makefiles in the subdirectories. + + * Makefile.in (DISTFILES): Distribute configure.in and configure. + (distclean): Also remove Makerules, config.log, and config.status. + (maintainer-clean): Depend on distclean. + + Mon Apr 10 09:55:13 1995 John Eaton + + * configure.in: New file. + + Fri Mar 10 10:38:29 1995 John Eaton + + * Makefile.in (install uninstall clean mostlyclean distclean + realclean): Use SUBDIR_FOR_COMMAND. Combine actions. + + See ChangeLog.1 in the top level directory for earlier changes. diff -cNr octave-3.4.0/etc/OLD-ChangeLogs/liboctave-ChangeLog octave-3.4.1/etc/OLD-ChangeLogs/liboctave-ChangeLog *** octave-3.4.0/etc/OLD-ChangeLogs/liboctave-ChangeLog 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/OLD-ChangeLogs/liboctave-ChangeLog 2011-06-15 11:13:48.000000000 -0400 *************** *** 0 **** --- 1,14984 ---- + 2011-04-01 Jordi Gutiérrez Hermoso + + * MatrixType (MatrixType::operator =): Plug memory leak due to + improper handling of perm array (bug #32804). + + 2011-03-29 Rik + + * Array.cc (diag): Treat empty vector (1x0 or 0x1) as valid input. + Improves Matlab compatibility (bug #32901). + + 2011-02-13 David Bateman + + * Sparse-perm-op-defs.h (template + SM octinternal_do_mul_colpm_sm (const octave_idx_type *, + const SM&)): Ensure that the row indices are sorted. + + 2011-03-14 Jordi Gutiérrez Hermoso + + * Sparse.cc (Sparse::alloc) Change std::copy_backward to + std::copy, since the destination is at the back and not the + front. Bug #32747, cf. entry from 2010-11-25 + + 2011-02-08 John W. Eaton + + * oct-alloc.h: Include . + From Orion Poplawski . + + 2011-02-06 John W. Eaton + + * PermMatrix.cc (operator*): Fix mixed row/column permutation + case. Bug #32346. + + 2011-02-04 Rik + + * Makefile.am: Undo accidental checkin + + 2011-02-03 John W. Eaton + + * cmd-hist.cc (gnu_history::do_process_histcontrol): + Rename from command_history::do_process_histcontrol. + (gnu_history::do_histcontrol): Rename from + command_history::do_histcontrol. + * cmd-hist.h (command_history::do_histcontrol): Provide dummy version. + * cmd-hist.cc (command_history::do_process_histcontrol): Likewise. + Bug #32325. + + 2011-02-02 John W. Eaton + + * Range.cc (Range::Range (double, double, octave_idx_type)): + Correctly compute limit from base, increment and number of + elements. Bug #32321. + + 2011-01-31 John W. Eaton + + * Sparse.cc (Sparse::assign (const idx_vector&, const idx_vector&, + const Sparse&)): Handle case of LHS originally empty, and + with non-colon indices. Fix typo in previous change. Bug #32263. + + 2011-01-30 Pascal Dupuis + + * lo-sysdep.cc (opendir): On error, free allocated DIR object + before returning. + + 2011-01-28 John W. Eaton + + * eigs-base.cc: Remove #endif corresponding to "#ifdef HAVE_ARPACK", + not the one that matched "#if !defined (CXX_NEW_FRIEND_TEMPLATE_DECL)". + + 2011-01-28 John W. Eaton + + * eigs-base.cc (EigsRealNonSymmetricFunc, + EigsRealNonSymmetricMatrix, EigsRealNonSymmetricMatrixShift): + Initialize eig_vec2 to 0 before calling dneupd. + + 2011-01-28 John W. Eaton + + * eigs-base.cc: Assume we have ARPACK. + + 2011-01-27 John W. Eaton + + * Sparse.cc (Sparse::assign (const idx_vector&, const idx_vector&, + const Sparse&)): Allow 0x0 LHS with colon dimensions to + inherit dimensions from RHS. Fix tests. Bug #32263. + + 2011-01-26 John W. Eaton + + * oct-refcount.h: Strip trailing whitespace. + + 2011-01-24 Pascal Dupuis + + * SparseQR.h (class SparseQR::SparseQR_reps): Disallow copying. + * Array.cc (class rec_permute_helper, class rec_index_helper, + class rec_resize_helper): Likewise. + * cmd-edit.cc (class default_command_editor): Likewise. + + 2011-01-22 Jaroslav Hajek + + * oct-refcount.h: New source. + * Makefile.am: Add it here. + + * Array.h: Use octave_refcount for refcounting. + * Sparse.h: Ditto. + * SparseCmplxQR.h: Ditto. + * SparseQR.h: Ditto. + * idx-vector.h: Ditto. + * oct-shlib.h: Ditto. + * sparse-base-chol.h: Ditto. + + 2011-01-21 Pascal Dupuis + + * oct-fftw.h (class octave_fftw_planner): Disallow copying + (class octave_float_fftw_planner): Likewise. + * oct-sort.h (class octave_sort): Likewise. + (struct oct_sort::MergeState): Likewise. + * SparseCmplxQR.h (class SparseComplexQR::SparseComplexQR_rep): + Likewise. + * sparse-base-chol.h (class sparse_base_cho::sparse_base_chol_rep): + Likewise. + + 2011-01-21 John W. Eaton + + * CMatrix.cc (xgemm): Initialize output matrix for call to ZHERK. + * fCMatrix.cc (xgemm): Initialize output matrix for call to CHERK. + + 2011-01-20 John W. Eaton + + * Array-b.cc, Array-d.cc, Array-f.cc, Array-util.cc, + Array-util.h, Array.cc, Array.h, Array3.h, CColVector.cc, + CColVector.h, CDiagMatrix.cc, CDiagMatrix.h, CMatrix.cc, + CMatrix.h, CNDArray.cc, CNDArray.h, CSparse.cc, CSparse.h, + CmplxAEPBAL.cc, CmplxAEPBAL.h, CmplxCHOL.cc, CmplxGEPBAL.cc, + CmplxGEPBAL.h, CmplxHESS.cc, CmplxLU.h, CmplxQR.cc, CmplxQR.h, + CmplxSCHUR.cc, CmplxSVD.h, CollocWt.cc, CollocWt.h, DASPK.cc, + DASPK.h, DASRT.cc, DASRT.h, DASSL.cc, DASSL.h, DET.h, + DiagArray2.h, EIG.cc, LSODE.cc, MArray.cc, MArray.h, + MDiagArray2.cc, MDiagArray2.h, MSparse.cc, MSparse.h, + MatrixType.cc, MatrixType.h, ODESFunc.h, PermMatrix.cc, + PermMatrix.h, Quad.cc, Range.cc, Sparse.cc, Sparse.h, + SparseCmplxCHOL.cc, SparseCmplxCHOL.h, SparseCmplxLU.cc, + SparseCmplxLU.h, SparseCmplxQR.cc, SparseCmplxQR.h, SparseQR.cc, + SparseQR.h, SparsedbleCHOL.cc, SparsedbleCHOL.h, + SparsedbleLU.cc, SparsedbleLU.h, base-aepbal.h, base-de.h, + base-lu.cc, base-lu.h, boolNDArray.cc, boolNDArray.h, + boolSparse.cc, boolSparse.h, bsxfun-defs.cc, chMatrix.cc, + chNDArray.cc, chNDArray.h, cmd-edit.cc, cmd-edit.h, cmd-hist.cc, + dColVector.h, dDiagMatrix.cc, dDiagMatrix.h, dMatrix.cc, + dMatrix.h, dNDArray.cc, dNDArray.h, dSparse.cc, dSparse.h, + dbleAEPBAL.h, dbleCHOL.cc, dbleCHOL.h, dbleGEPBAL.cc, + dbleGEPBAL.h, dbleQR.cc, dbleQR.h, dbleSCHUR.h, dbleSVD.h, + dim-vector.cc, dim-vector.h, dir-ops.cc, eigs-base.cc, + f2c-main.c, fCColVector.cc, fCColVector.h, fCDiagMatrix.cc, + fCDiagMatrix.h, fCMatrix.cc, fCMatrix.h, fCNDArray.cc, + fCNDArray.h, fCRowVector.cc, fCRowVector.h, fCmplxAEPBAL.cc, + fCmplxAEPBAL.h, fCmplxCHOL.cc, fCmplxGEPBAL.cc, fCmplxGEPBAL.h, + fCmplxHESS.cc, fCmplxLU.h, fCmplxQR.cc, fCmplxQR.h, + fCmplxQRP.cc, fCmplxSCHUR.cc, fCmplxSVD.h, fColVector.h, + fDiagMatrix.cc, fDiagMatrix.h, fEIG.cc, fMatrix.cc, fMatrix.h, + fNDArray.cc, fNDArray.h, file-ops.cc, file-stat.cc, + floatAEPBAL.cc, floatAEPBAL.h, floatCHOL.cc, floatCHOL.h, + floatGEPBAL.cc, floatGEPBAL.h, floatLU.h, floatQR.cc, floatQR.h, + floatQRP.cc, floatSCHUR.h, floatSVD.h, idx-vector.cc, + idx-vector.h, intNDArray.cc, intNDArray.h, kpse.cc, + lo-array-gripes.cc, lo-array-gripes.h, lo-cieee.c, lo-ieee.h, + lo-mappers.cc, lo-mappers.h, lo-specfun.cc, mx-defs.h, + mx-inlines.cc, oct-binmap.h, oct-convn.cc, oct-env.cc, + oct-fftw.cc, oct-fftw.h, oct-glob.cc, oct-group.h, + oct-inttypes.cc, oct-inttypes.h, oct-locbuf.cc, oct-locbuf.h, + oct-md5.cc, oct-mem.h, oct-norm.cc, oct-norm.h, oct-rand.cc, + oct-rand.h, oct-rl-hist.c, oct-shlib.cc, oct-shlib.h, + oct-sort.cc, oct-sort.h, oct-spparms.cc, oct-spparms.h, + oct-syscalls.cc, oct-time.cc, randgamma.c, randmtzig.c, + randmtzig.h, randpoisson.c, regex-match.cc, regex-match.h, + sparse-base-chol.cc, sparse-base-chol.h, sparse-base-lu.cc, + sparse-base-lu.h, sparse-dmsolve.cc, sparse-sort.cc, + sparse-sort.h, sparse-util.h, tempname.c: + Strip trailing whitespace. + + 2011-01-20 John W. Eaton + + * Array.h, Array.cc + (Array::resize2 (octave_idx_type, octave_idx_type, const T&)): + New private function. + (Array::resize (octave_idx_type, octave_idx_type, const T&)): + Deprecate. Call resize2 to do the work. Remove all uses from + Octave. + + * CMatrix.h (ComplexMatrix::resize (octave_idx_type, + octave_idx_type, const Complex&)): New function. + * dMatrix.h (Matrix::resize (octave_idx_type, + octave_idx_type, double)): New function. + * fCMatrix.h (FloatComplexMatrix::resize (octave_idx_type, + octave_idx_type, const FloatComplex&)): New function. + * fMatrix.h (FloatMatrix::resize (octave_idx_type, + octave_idx_type, const float)): New function. + + 2011-01-20 David Bateman + + * Sparce.cc (template Sparse::Sparse (const Array&, + const idx_vector&, const idx_vector&, octave_idx_type, + octave_idx_type, bool, octave_idx_type): Fix off by one error in the + construction of sparse column vectors. Fix indexing issue in + construction of sparse row vectors. + * boolSparse.cc (SparseBoolMatrix SparseBoolMatrix::any (int) const): + Fully initialize cidx for any called on the first dimension. + + 2011-01-19 John W. Eaton + + * Array.h (explicit Array (octave_idx_type, const T&)): + Restore constructor, but mark as deprecated. + (explicit Array (octave_idx_type, octave_idx_type)): Delete. + (Array (const Array&, octave_idx_type, octave_idx_type)): Delete. + Fix all uses in Octave. + * Array3.h: Deprecate header file. Remove all uses from Octave. + + 2011-01-19 John W. Eaton + + * file-stat.cc (mode_as_string): Declare buffer as an array of + 12 characters, not 11. Don't set buf[10] to '\0'; strmode + NUL-terminates the array. + + 2011-01-14 David Grundberg + + * SparseQR.cc (SparseQR_rep::SparseQR_rep) [HAVE_CXSPARSE]: + Make initialization list depend on macro. Fixes compile error when + macro isn't defined. + * SparseCmplxQR.cc (SparseComplexQR_rep::SparseComplexQR_rep) + [HAVE_CXSPARSE]: Ditto. + + 2011-01-14 John W. Eaton + + * lo-mappers.cc (xfloor): Move function body here from + lo-mappers.h to avoid exposing gnulib:: in a header file. + + 2011-01-14 John W. Eaton + + * file-stat.cc (mode_as_string): Call strmode instead of mode_string. + + * filemode.h, filemode.c: Delete. + * Makefile.am (INCS): Remove filemode.h from the list. + (LIBOCTAVE_C_SOURCES): Remove filemode.c from the list. + + 2011-01-14 John W. Eaton + + * Update copyright notices for 2011. + + 2011-01-13 John W. Eaton + + * CColVector.cc, CMatrix.cc, CRowVector.cc, CSparse.cc, + CmplxAEPBAL.cc, CmplxCHOL.cc, CmplxLU.cc, CmplxQR.cc, + CmplxQRP.cc, EIG.cc, Quad.cc, dColVector.cc, dMatrix.cc, + dRowVector.cc, dSparse.cc, dbleAEPBAL.cc, dbleCHOL.cc, + dbleLU.cc, dbleQR.cc, dbleQRP.cc, eigs-base.cc, fCColVector.cc, + fCMatrix.cc, fCNDArray.cc, fCRowVector.cc, fCmplxAEPBAL.cc, + fCmplxCHOL.cc, fCmplxLU.cc, fCmplxQR.cc, fCmplxQRP.cc, + fCmplxSVD.cc, fColVector.cc, fEIG.cc, fMatrix.cc, fNDArray.cc, + fRowVector.cc, floatAEPBAL.cc, floatCHOL.cc, floatLU.cc, + floatQR.cc, floatQRP.cc, lo-specfun.cc, oct-convn.cc: + Style fixes. + + 2011-01-13 John W. Eaton + + * CMatrix.cc (get_blas_trans_arg): Return char, not char *. + Change all uses. + * dMatrix.cc (get_blas_trans_arg): Likewise. + * fCMatrix.cc (get_blas_trans_arg): Likewise. + * fMatrix.cc (get_blas_trans_arg): Likewise. + Suggested by Pascal Dupuis . + + 2011-01-13 John W. Eaton + + * filemode.c: Use prototypes for function definitions. Reorder + functions to eliminate need for forward declarations. + * filemode.h: New file. + * file-stat.cc: Include filemode.h instead of using local extern + declarations. + * Makefile.am (INCS): Add filemode.h to the list. + + * lo-cutils.h: New file. + (octave_qsort, octave_strcasecmp, octave_strncasecmp, + octave_w32_library_search, octave_waitpid): Move decls here from + lo-utils.h. + * Makefile.am (INCS): Add lo-cutils.h to the list. + * lo-utils.h: Include cutils.h. + * lo-cutils.c: Include cutils.h. + + 2011-01-13 John W. Eaton + + * SparseCmplxQR.cc + (SparseComplexQR::SparseComplexQR_rep::SparseComplexQR_rep): + Correct order of member initialization. + * SparseQR.cc (SparseQR::SparseQR_rep::SparseQR_rep): Likewise. + + 2011-01-13 John W. Eaton + + * oct-fftw.cc (octave_fftw_planner::octave_fftw_planner, + octave_float_fftw_planner::octave_float_fftw_planner): + Avoid duplicate initializations. Correctly initialize RN to + empty dim_vector. + + 2011-01-13 John W. Eaton + + * Sparse.cc (Sparse::Sparse): Initialize all data members in + initialization lists. + + 2011-01-13 John W. Eaton + + * Array.cc (rec_permute_helper::rec_permute_helper, + rec_index_helper::rec_index_helper, + rec_resize_helper::rec_resize_helper): Initialize all data + members in initialization lists. + + * Array.h, Array.cc (Array::Array): Initialize slice_data and + slice_len in memeber initialization lists. + (Array::~Array): Now virtual. + + 2011-01-13 John W. Eaton + + * oct-locbuf.h (octave_chunk_buffer::~octave_chunk_buffer): + Now virtual. + (class octave_local_buffer, class octave_chunk_buffer): + Don't allow copying or assignment. + + * file-stat.h (base_file_stat::~base_file_stat): + Now protected and virtual. + + 2011-01-13 John W. Eaton + + * base-lu.h (base_lu::base_lu): Initialize all data members in + initialization lists. + * base-qr.h (base_qr::base_qr): Likewise. + * DET.h (base_det::base_det): Likewise. + * sparse-base-lu.h (sparse_base_lu::sparse_base_lu): Likewise. + * sparse-base-chol.h (sparse_base_chol::sparse_base_chol): Likewise. + + * base-lu.h (base_lu::~base_lu): Explicitly define virtual destrutor. + * base-qr.h (base_qr::~base_qr): Likewise. + * base-aepbal.h (base_aepbal::~base_aepval): Likewise. + * sparse-base-lu.h (sparse_base_lu::~sparse_base_lu): Likewise. + * sparse-base-chol.h (sparse_base_chol::~sparse_base_chol): Likewise. + + 2011-01-13 John W. Eaton + + * DAE.h (DAE::~DAE): Now virtual. + * DAERT.h (DAERT::~DAERT): Likewise. + * ODE.h (ODE::~ODE): Likewise. + * DAEFunc.h (DAEFunc::~DAEFunc): Likewise. + * DAERTFunc.h (DAEFunc::~DAEFunc): Likewise. + * ODEFunc.h (ODE::~ODE): Likewise. + * ODESFunc.h (ODESFunc::~ODESFunc): Likewise. + + 2011-01-13 John W. Eaton + + * idx-vector.h (idx_vector_rep::idx_vector_rep, + idx_vector::idx_mask_rep::idx_mask_rep): + Initialize all data members in initialization lists. + + * idx-vector.cc (idx_vector::idx_scalar_rep::idx_scalar_rep): + Initialize data in member initialization list. + (class idx_base_rep, class idx_colon_rep, class idx_range_rep, + class idx_scalar_rep, class idx_vector_rep, class idx_mask_rep): + Don't allow assignment. + + 2011-01-13 John W. Eaton + + * LSODE.h (class LSODE): Delete pointer data members. + (LSODE::LSODE): Initialize all data members in initialization lists. + * LSODE.cc (LSODE::integrate): Extract pointers to data from + array data members at each call. + + * DASPK.h (class DASPK): Delete pointer data members. + (DASPK::DASPK): Initialize all data members in initialization lists. + * DASPK.cc (DASPK::integrate): Extract pointers to data from + array data members at each call. + + * DASSL.h (class DASSL): Delete pointer data members. + (DASSL::DASSL): Initialize all data members in initialization lists. + * DASSL.cc (DASSL::integrate): Extract pointers to data from + array data members at each call. + + * DASRT.h (class DASRT): Delete pointer data members. + (DASRT::DASRT): Initialize all data members in initialization lists. + * DASRT.cc (DASRT::integrate): Extract pointers to data from + array data members at each call. + + 2011-01-13 John W. Eaton + + * kpse.cc (struct str_llist_elt, struct cache_entry): + Explicitly define constructor and destructor. + + * Quad.h (Quad::Quad, IndefQuad::IndefQuad, + FloatIndefQuad::FloatIndefQuad): Initialize all data members in + initialization lists. + * CollocWt.h (CollocWt::CollocWt): Likewise. + * oct-time.h (octave_strptime::octave_strptime): Likewise. + * oct-time.cc (octave_time::octave_time): Likewise. + * pathsearch.h (dir_path::dir_path): Likewise. + * regex-match.h (regex_match::regex_match): Likewise. + * oct-sort.h (octave_sort::MergeState::MergeState): Likewise. + * oct-shlib.h, oct-shlib.cc (octave_shlib::shlib_rep::shlib_rep, + octave_shlib::octave_shlib): Likewise. + * oct-mutex.h, oct-mutex.cc (octave_mutex::octave_mutex): Likewise. + * MatrixType.cc (MatrixType::MatrixType): Likewise. + * oct-fftw.cc (octave_fftw_planner::octave_fftw_planner, + octave_float_fftw_planner::octave_float_fftw_planner): Likewise. + + * mach-info.h, mach-info.cc (oct_mach_info::oct_mach_info): + Initialize all data members in initialization lists. + (ten_little_endians): Rename from oct_mach_info::ten_little_endians. + Now static instead of private member function + (get_float_format): Rename from oct_mach_info::init_float_format. + Now static instead of private member function. + + * dir-ops.h, dir-ops.cc (dir_entry::copy): Delete. + (dir_entry::dir_entry): Initialize all data members in + initialization lists. + (dir_entry::operator =): Copy elements directly here instead of + calling copy. + + 2011-01-13 John W. Eaton + + * cmd-hist.h, cmd-hist.cc: Sprinkle with const. + + 2011-01-13 John W. Eaton + + * CmplxCHOL.h (ComplexCHOL::ComplexCHOL): Initialize all data + members in constructor initialization lists. + * CmplxGEPBAL.h (ComplexGEPBALANCE::ComplexGEPBALANCE): Likewise. + * CmplxHESS.h (ComplexHESS::ComplexHESS): Likewise. + * CmplxSCHUR.h, CmplxSCHUR.cc (ComplexSCHUR::ComplexSCHUR): Likewise. + * CmplxSVD.h (ComplexSVD::ComplexSVD): Likewise. + * DET.h (base_det::base_det): Likewise. + * EIG.h (EIG::EIG): Likewise. + * SparseCmplxQR.cc + (SparseComplexQR::SparseComplexQR_rep::SparseComplexQR_rep): + Likewise. + * SparseQR.cc (SparseQR::SparseQR_rep::SparseQR_rep): Likewise. + * dbleCHOL.h (CHOL::CHOL): Likewise. + * dbleGEPBAL.h (GEPBALANCE::GEPBALANCE): Likewise. + * dbleHESS.h (HESS::HESS): Likewise. + * dbleSCHUR.h, dbleSCHUR.cc (SCHUR::SCHUR): Likewise. + * dbleSVD.h (SVD::SVD): Likewise. + * fCmplxCHOL.h (FloatComplexCHOL::FloatComplexCHOL): Likewise. + * fCmplxGEPBAL.h + (FloatComplexGEPBALANCE::FloatComplexGEPBALANCE): Likewise. + * fCmplxHESS.h (FloatComplexHESS::FloatComplexHESS): Likewise. + * fCmplxSCHUR.h, fCmplxSCHUR.cc + (FloatComplexSCHUR::FloatComplexSCHUR): Likewise. + * fCmplxSVD.h (FloatComplexSVD::FloatComplexSVD): + Likewise. + * fEIG.h (FloatEIG::FloatEIG): Likewise. + * floatCHOL.h (FloatCHOL::FloatCHOL): Likewise. + * floatGEPBAL.h (FloatGEPBALANCE::FloatGEPBALANCE): Likewise. + * floatHESS.h (FloatHESS::FloatHESS): Likewise. + * floatSCHUR.h, floatSCHUR.cc (FloatSCHUR::FloatSCHUR): Likewise. + * floatSVD.h (FloatSVD::FloatSVD): Likewise. + + 2011-01-13 John W. Eaton + + * LSODE.cc, DASSL.cc, DASRT.cc, DASPK.cc, CmplxSVD.cc, + CmplxSCHUR.cc, CmplxHESS.cc, CmplxGEPBAL.cc, CmplxCHOL.cc, + EIG.cc, dbleCHOL.cc, dbleGEPBAL.cc, dbleHESS.cc, dbleSCHUR.cc, + dbleSVD.cc, fCmplxCHOL.cc, fCmplxGEPBAL.cc, fCmplxHESS.cc, + fCmplxSCHUR.cc, fCmplxSVD.cc, fEIG.cc, floatCHOL.cc, + floatGEPBAL.cc, floatHESS.cc, floatSCHUR.cc, floatSVD.cc: + Style fixes. + + 2011-01-12 John W. Eaton + + * oct-rl-hist.c (hc_erasedups): Avoid GCC warning. + + 2011-01-12 Jordi Gutiérrez Hermoso + + * oct-rl-hist.h: Replace macros with an enum + + 2011-01-12 Pascal Dupuis + John W. Eaton + + * cmd-hist.cc (command_history::process_histcontrol, + command_history::hist_control, command_history::process_histcontrol, + command_history::hist_control): New functions. + (command_history::initialize, command_history::do_initialize): + New arg, control_arg. + * cmd-hist.cc (gnu_history::do_add): Pass history_control to + octave_add_history. + * cmd-hist.h (command_history::process_histcontrol, + command_history::hist_control, command_history::process_histcontrol, + command_history::hist_control): Provide decls. + (command_history::history_control): New data member. + + * oct-rl-hist.c (octave_add_history): New arg, history_control. + Return int, not void. + (check_history_control, hc_erasedups): New static functions + borrowed from Bash. + * oct-rl-hist.h (octave_add_history): Fix decl. + (HC_IGNSPACE, HC_IGNDUPS, HC_ERASEDUPS): New #defined constants. + + 2011-01-06 John W. Eaton + + * oct-md5.cc (oct_md5_file): Tag call to fclose with gnulib::. + * Range.cc (tfloor): Tag calls to floor with gnulib::. + * lo-mappers.h (xfloor): Tag call to floor with gnulib:: + + 2010-12-20 John W. Eaton + + * lo-mappers.h (xrem, xmod): Declare temporary result from + multiplication volatile. + + 2010-12-15 John W. Eaton + + Bug #31883. + + * cmd-hist.cc (command_history::do_clean_up_and_save, + command_history::do_truncate_file, + command_history::do_append, command_history::do_write, + gnu_history::do_clean_up_and_save, gnu_history::do_truncate_file, + gnu_history::do_append, gnu_history::do_write, + gnu_history::do_read_range): + Don't do anything if not initialized. + + * cmd-hist.cc, cmd-hist.h (command_history::initialize, + command_history::is_initialized): New static functions. + (command_history::do_initialize, + command_history::do_is_initialized): New member functions. + + * cmd-hist.h (command_history::initialized): New data member. + (comand_history::command_history): Initialize it. + + 2010-12-14 John W. Eaton + + * lo-mappers.h (xcopysign (double)): Call copysign, not copysignf. + (xmod): Call X_NINT, not D_NINT. Call xfloor, not floor. + Bug #31872. + + 2010-12-13 John W. Eaton + + * CMatrix.cc (operator * (const Matrix& m, const ComplexMatrix& a)): + Fix cut and paste error. Bug #31869. + + 2010-12-09 Marco Atzeri + + * lo-specfun.cc (xgamma): Also handle negative integer values as + special cases when using tgamma. Bug #31772. + + 2010-11-25 John W. Eaton + + * Sparse.cc (Sparse::assign): Use correct endpoint for + destination range when making room for new elements. + Bug #31734. + + 2010-11-23 John W. Eaton + + * oct-md5.cc (oct_md5_result_to_str): Avoid buffer overrun in + call to sprintf. Replace loop with a single call to sprintf. + Bug #31689. + + 2010-11-23 John W. Eaton + + * oct-md5.cc (oct_md5_file): Close file after reading. + + 2010-11-22 John W. Eaton + + * boolSparse.cc (SparseBoolMatrix::sum, SparseBoolMatrix::any): + Cast integer idx_vector argument to octave_idx_type. + + 2010-11-18 John W. Eaton + + * chMatrix.cc (charMatrix::row_as_string): Never strip trailing + nul characters. Bug #31689. + + 2010-11-12 John W. Eaton + + * Makefile.am (LIBOCTAVE_SOURCES): Delete variable. + (liboctave_la_SOURCES): Include $(LIBOCTAVE_CXX_SOURCES) and + $(LIBOCTAVE_C_SOURCES) in this list instead of + $(LIBOCTAVE_SOURCES). + (nodist_liboctave_la_SOURCES): New variable. + (octinclude_HEADERS): Don't include $(BUILT_INCS) in the list. + (noinst_octinclude_HEADERS): New variable. + (PRIVATE_INCS): Delete variable. + (INCS): Include oct-glob.h in the list. + (liboctave_la_SOURCES): Don't include $(PRIVATE_INCS) in the + list. + (LIBOCT_PATHSEARCH_CXX_SOURCES, LIBOCT_PATHSEARCH_C_SOURCES, + LIBOCT_PATHSEARCH_SOURCES): Delete variables. + (LIBOCTAVE_CXX_SOURCES): Include pathsearch.cc in the list. + + 2010-11-12 John W. Eaton + + * Array.cc (Array::cat): Simplify previous change. + + 2010-11-11 John W. Eaton + + * Array.cc (Array::cat): New special case for concatenating + empty matrices. Bug #31615. + + 2010-11-11 John W. Eaton + + * lo-mappers.cc (xtrunc, xround): Move definitions here from + lo-mappers.h. + + 2010-11-10 John W. Eaton + + * kpse-xfns.c: Delete. + * kpse-xfns.h: Delete. Move defintions to kpse.cc. + * Makefile.am (INCS): Remove kpse-xfns.h from the list. + (LIBOCT_PATHSEARCH_SOURCES): Define to pathsearch.cc. + (LIBOCT_PATHSEARCH_CXX_SOURCES, LIBOCT_PATHSEARCH_C_SOURCES): + Delete variables. + + 2010-11-10 John W. Eaton + + * lo-cieee.c Eliminate special cases for SCO. + + 2010-11-10 John W. Eaton + + * lo-ieee.cc (octave_ieee_init): Don't initialize octave_Inf, + octave_NaN, and octave_NA to DBL_MAX. Don't initialize + octave_Float_Inf, octave_Float_NaN, and octave_Float_NA to FLT_MAX. + (octave_ieee_init): Simplify using std::numeric_limits template. + + 2010-11-10 John W. Eaton + + * syswait.h: Delete special cases for NeXT systems. + + 2010-11-10 John W. Eaton + + * lo-sysdep.cc (octave_chdir): Delete special case for __EMX__. + * oct-env.cc (octave_env::do_make_absolute): Likewise. + + 2010-11-10 John W. Eaton + + * lo-ieee.h: Eliminate special cases for SCO. + * lo-ieee.cc (octave_ieee_init): Eliminate special cases for SCO. + + 2010-11-09 John W. Eaton + + * lo-mappers.h (xmod, xrem): Don't copy sign if result is zero. + + 2010-11-09 John W. Eaton + + * lo-mappers.cc, lo-mappers.h (xisnan, xisinf, xfinite, xmod, + xrem, floor, ceil, xround, xroundb, signum): Move definitions + from lo-mappers.cc to lo-mappers.h and convert to templates. + (xtrunc): Move definitions from lo-mappers.cc to lo-mappers.h. + * lo-mappers.cc (fix): Use xtrunc. Move definitions to + lo-mappers.cc from lo-mappers.h. + (real, imag, conj) Move definitions to lo-mappers.h and declare inline. + (round): Move definitions to lo-mappers.h and declare inline. + Use roundf for float version. + (arg): Move definitions to lo-mappers.h and declare inline. + Use atan2f for float version. + * lo-mappers.h (xceil): New functions. + (X_NINT): New template function. + (D_NINT, F_NINT): Define in terms of X_NINT. + * lo-utils.h, lo-utils.cc (D_NINT, F_NINT): Delete. + * lo-mappers.h, lo-mappers.cc (NINTbig, NINT): Move from + lo-utils.cc and lo-utils.h. + + 2010-11-09 John W. Eaton + + * Array.cc (Array::sort, Array::is_sorted, + Array::is_sorted_rows): Use comparisons to sortmode values + instead of testing mode directly. + + 2010-11-09 John W. Eaton + + * lo-mappers.cc (xmod, xrem): New functions. + (mod): Delete. + * lo-mappers.h (xmod, xrem): Provide decls. + + 2010-10-31 Michael Goffioul + + * dim-vector.h (class dim_vector): tag with OCTAVE_API. + + 2010-10-21 John W. Eaton + + * Makefile.am (INCS): Include lo-array-gripes.h in the list. + (LIBOCTAVE_CXX_SOURCES): Include lo-array-gripes.cc in the list. + + * lo-array-gripes.h: New file. Move gripe function decls here + from Array-util.h. + * lo-array-gripes.c: New file. Move gripe function definitions + here from Array-util.cc. + + * CMatrix.cc (ComplexMatrix::operator !): Gripe if any element is NaN. + * CNDArray.cc (ComplexNDArray::operator !): Likewise. + * CSparse.cc (SparseComplexMatrix::operator !): Likewise. + * dMatrix.cc (Matrix::operator !): Likewise. + * dNDArray.cc (NDArray::operator !): Likewise. + * dSparse.cc (SparseMatrix::operator !): Likewise. + * fCMatrix.cc (FloatComplexMatrix::operator !): Likewise. + * fCNDArray.cc (FloatComplexNDArray::operator !): Likewise. + * fMatrix.cc (FloatMatrix::operator !): Likewise. + * fNDArray.cc (FloatNDArray::operator !): Likewise. + + 2010-10-21 John W. Eaton + + * Array-util.cc (gripe_nan_to_character_conversion): New function. + * Array-util.h: Provide decl. + + 2010-10-19 John W. Eaton + + * Makefile.am (INCS): Add caseless-str.h to the list. + + 2010-10-01 John W. Eaton + + * caseless-str.h: New file, extracted from src/graphics.h.in. + + 2010-09-22 Jaroslav Hajek + + * lo-utils.cc (xis_int_or_inf_or_nan): Fix typos. + + 2010-09-21 Jaroslav Hajek + + * Array.h (Array::test, Array::test_all, Array::test_any): New + overloaded template methods. + * lo-mappers.h (xisinteger, xnegative_sign): New bool mappers. + * dNDArray.cc (NDArray::any_element_is_negative, + NDArray::all_integers): Simplify. + * fNDArray.cc (FloatNDArray::any_element_is_negative, + FloatNDArray::all_integers): Simplify. + + * lo-utils.cc (xis_int_or_inf_or_nan, xis_one_or_zero, + xis_zero, xtoo_large_for_float): New utility functions. + + * dNDArray.cc (NDArray::any_element_is_negative, + NDArray::all_integers, NDArray::all_elements_are_zero, + NDArray::all_elements_are_int_or_inf_or_nan, + NDArray::any_element_not_one_or_zero, + NDArray::too_large_for_float): Simplify. + + * fNDArray.cc (FloatNDArray::any_element_is_negative, + FloatNDArray::all_integers, FloatNDArray::all_elements_are_zero, + FloatNDArray::all_elements_are_int_or_inf_or_nan, + FloatNDArray::any_element_not_one_or_zero, + FloatNDArray::too_large_for_float): Simplify. + + 2010-09-21 Jaroslav Hajek + + * dNDArray.cc (NDArray::any_element_is_negative, + NDArray::any_element_is_nan, + NDArray::any_element_is_inf_or_nan): Simplify. + * fNDArray.cc (FloatNDArray::any_element_is_negative, + FloatNDArray::any_element_is_nan, + FloatNDArray::any_element_is_inf_or_nan): Simplify. + * dMatrix.cc (Matrix::any_element_is_negative, + Matrix::any_element_is_nan, + Matrix::any_element_is_inf_or_nan): Simplify. + * fMatrix.cc (FloatMatrix::any_element_is_negative, + FloatMatrix::any_element_is_nan, + FloatMatrix::any_element_is_inf_or_nan): Simplify. + * CNDArray.cc (ComplexNDArray::any_element_is_negative, + ComplexNDArray::any_element_is_nan, + ComplexNDArray::any_element_is_inf_or_nan): Simplify. + * fCNDArray.cc (FloatComplexNDArray::any_element_is_negative, + FloatComplexNDArray::any_element_is_nan, + FloatComplexNDArray::any_element_is_inf_or_nan): Simplify. + * CMatrix.cc (ComplexMatrix::any_element_is_negative, + ComplexMatrix::any_element_is_nan, + ComplexMatrix::any_element_is_inf_or_nan): Simplify. + * fCMatrix.cc (FloatComplexMatrix::any_element_is_negative, + FloatComplexMatrix::any_element_is_nan, + FloatComplexMatrix::any_element_is_inf_or_nan): Simplify. + + 2010-09-21 John W. Eaton + + * oct-env.cc (do_get_host_name): Call gnulib::gethostname + instead of octave_gethostname. + + * lo-utils.h, lo-cutils.c (octave_gethostname): Delete. + + 2010-09-20 John W. Eaton + + * oct-time.cc (octave_time::octave_time, octave_strptime::init): + Call gnulib::mktime instead of mktime (may fix bug #31079). + + 2010-09-15 Jaroslav Hajek + + * dSparse.h (SparseMatrix::SparseMatrix (const Sparse&)): + New ctor. + * CSparse.h (SparseComplexMatrix::SparseComplexMatrix + (const Sparse&)): New ctor. + * boolSparse.cc (SparseBoolMatrix::sum): New method. + * boolSparse.h: Declare it. + + 2010-09-15 Jaroslav Hajek + + * boolSparse.cc (SparseBoolMatrix::any): Optimize. + + 2010-08-24 Jaroslav Hajek + + * Array-ch.cc: Inline basic sorts. + + 2010-08-21 Rik + + * CmplxQRP.cc, CmplxQRP.h, dbleQRP.cc, dbleQRP.h, fCmplxQRP.cc, + fCmplxQRP.h, floatQRP.cc, floatQRP.h: Declare Pvec as RowVector, + not ColumnVector. Bug #30832. + + 2010-08-18 Jaroslav Hajek + + * mx-inlines.cc (mx_inline_all_finite): New check. + * Sparse-op-defs.h (SPARSE_SMS_BIN_OP_1, SPARSE_SMS_BIN_OP_2, + SPARSE_SSM_BIN_OP_1, SPARSE_SSM_BIN_OP_2): Use unchecked access where + appropriate. + (SPARSE_SMM_BIN_OP_1, SPARSE_MSM_BIN_OP_1): Simplify. + (SPARSE_SMM_BIN_OP_2, SPARSE_MSM_BIN_OP_2): Use optimized code path + if all values are finite. + (SPARSE_MSM_BIN_OPS): Use SPARSE_MSM_BIN_OP_1 for division. + + 2010-07-31 Rik + + * DASPK-opts.in, DASRT-opts.in, DASSL-opts.in, LSODE-opts.in, + Quad-opts.in: Grammarcheck .cc files + + 2010-07-29 Jaroslav Hajek + + * dim-vector.cc (dim_vector::dim_max (void)): Turn it into a function. + (dim_vector::safe_numel): Update usage. + * dim-vector.h: Update declaration. + + 2010-07-27 Jaroslav Hajek + + * dbleSCHUR.cc (SCHUR::SCHUR (const Matrix&, const Matrix&)): + New ctor. + * dbleSCHUR.h: Declare it. + * floatSCHUR.cc (FloatSCHUR::FloatSCHUR (const FloatMatrix&, const + FloatMatrix&)): New ctor. + * floatSCHUR.h: Declare it. + * CmplxSCHUR.cc (ComplexSCHUR::ComplexSCHUR (const ComplexMatrix&, + const ComplexMatrix&), + ComplexSCHUR::ComplexSCHUR (const SCHUR&)): New ctors. + * CmplxSCHUR.h: Declare them. + * fCmplxSCHUR.cc (FloatComplexSCHUR::FloatComplexSCHUR + (const FloatComplexMatrix&, const FloatComplexMatrix&), + FloatComplexSCHUR::FloatComplexSCHUR (const FloatSCHUR&)): New ctors. + * fCmplxSCHUR.h: Declare them. + + 2010-07-22 Jaroslav Hajek + + * dMatrix.cc (Matrix::lssolve): Fix decision test for workaround. + * fMatrix.cc (FloatMatrix::lssolve): Ditto. + * CMatrix.cc (ComplexMatrix::lssolve): Ditto. + * fCMatrix.cc (FloatComplexMatrix::lssolve): Ditto. + + 2010-07-20 Jaroslav Hajek + + * dim-vector.cc (dim_vector::dim_max): New static const member. + * dim-vector.h: Declare it. + + 2010-07-20 Jaroslav Hajek + + * dMatrix.cc (Matrix::extract, Matrix::extract_n): Reimplement using + index. + * fMatrix.cc (FloatMatrix::extract, FloatMatrix::extract_n): Ditto. + * CMatrix.cc (ComplexMatrix::extract, ComplexMatrix::extract_n): Ditto. + * fCMatrix.cc (FloatComplexMatrix::extract, FloatComplexMatrix::extract_n): Ditto. + + 2010-07-13 Jaroslav Hajek + + * MSparse.h (MSparse::index): Remove overloads. + * dSparse.h (SparseMatrix::index): Likewise. + * dSparse.cc (SparseMatrix::index): Likewise. + * CSparse.h (SparseComplexMatrix::index): Likewise. + * CSparse.cc (SparseComplexMatrix::index): Likewise. + + 2010-07-09 Jaroslav Hajek + + * CMatrix.cc (ComplexMatrix::lssolve (const ComplexMatrix&)): + Undo 10708:2786b7ae3f80, implement proper correction. + * fCMatrix.cc (FloatComplexMatrix::lssolve (const FloatComplexMatrix&)): + Ditto. + + 2010-06-28 Jaroslav Hajek + + * dim-vector.h (dim_vector::scalar_1x1): New method. + * lo-traits.h (equal_types): Fix. + + 2010-06-21 Jaroslav Hajek + + * Array.cc (Array::cat): Implement the loose horzcat/vertcat rules + under dim=-1/-2. + * Sparse.cc (Array::cat): Implement the loose horzcat/vertcat rules + under dim=-1/-2. + * Array.h, Sparse.h: Document it. + + 2010-06-17 Jaroslav Hajek + + * dim-vector.cc (dim_vector::hvcat): New method. + * dim-vector.h (dim_vector::hvcat, dim_vector::cat): Update decls. + (dim_vector::empty_2d): New method. + + 2010-06-17 Jaroslav Hajek + + * MatrixType.cc (matrix_real_probe): Use OCTAVE_LOCAL_BUFFER for + temporary array. + (matrix_complex_probe): Parametrize by real type. Use + OCTAVE_LOCAL_BUFFER for temporary array. + + 2010-06-16 Rik + + * DASSL-opts.in: Periodic grammar check on documentation. + + 2010-06-16 David Bateman + + * oct-rand.cc (void octave_rand:do_reset (void), + void octave_rand:do_reset (const std::string&)): New functions + * oct-rand.h (void octave_rand:do_reset (void), + void octave_rand:do_reset (const std::string&)): Declare them + (void octave_rand:reset (void), + void octave_rand:reset (const std::string&)): New functions. + + 2010-06-16 Jaroslav Hajek + + * CMatrix.cc (ComplexMatrix::lssolve (const ComplexMatrix&)): + Workaround LAPACK bug. + * fCMatrix.cc (FloatComplexMatrix::lssolve (const FloatComplexMatrix&)): + Ditto. + + 2010-06-14 Jaroslav Hajek + + * Array.cc (Array::sort, Array::nth_element): Fix behavior when + trailing singleton dim is specified. + * Sparse.cc (Sparse::sort): Ditto. + + 2010-06-14 Jaroslav Hajek + + * idx-vector.cc (idx_vector::copy_data): Handle class_mask case. + (idx_vector::increment): Fix class_colon and add class_mask. + + 2010-06-06 Michael Goffioul + + * mx-op-defs.h (MNANCHK): Add matrix element type argument and use it + to specify template argument for mx_inline_any_nan. + (MS_BOOL_OP, SM_BOOL_OP, MM_BOOL_OP, NDS_BOOL_OP, SND_BOOL_OP, + NDND_BOOL_OP): Specify new MNANCHK argument. + + 2010-06-04 Jaroslav Hajek + + * dim-vector.cc: New source. + * Makefile.am: Add it. + * dim-vector.h (dim_vector::chop_all_singletons, + dim_vector::str, dim_vector::num_ones, dim_vector::safe_numel, + dim_vector::squeeze, dim_vector::concat, dim_vector::redim): + Move bodies to dim_vector.cc. + (dim_vector::concat): Rewrite. + * Array.cc (Array::cat): Fix dim_vector concatenation. Don't use 0x0 + as neutral element, because it isn't with dim > 1. + + 2010-06-01 Jaroslav Hajek + + * Array.cc (Array::optimize_dimensions): New method. + * Array.h: Declare it. + + 2010-06-01 Jaroslav Hajek + + * Array.cc (Array::maybe_delete_dims): Remove method (makes no + longer sense). + * Array.h: Update decls. + + 2010-05-20 Jaroslav Hajek + + * dim-vector.h (dim_vector::compute_index (const octave_idx_type *, + int)): New method overload. + (dim_vector::compute_index, dim_vector::cum_compute_index, + dim_vector::increment_index): Add missing const qualifiers. + + * Array-util.cc (compute_index (..., const dim_vector&)): Rewrite, + add new overloads. Move code from Array::checkelem here. + * Array-util.h: Update decls. + * Array.h (Array::compute_index): Forward to the above. + (Array::compute_index_unchecked): New method. + (Array::elem, Array::xelem): Call it here. + + * Array.cc (Array::checkelem): Use compute_index where suitable. + + 2010-05-19 Jaroslav Hajek + + * mx-inlines.cc (mx_inline_cumcount): Fix 2D version instantiation. + + 2010-05-14 Jaroslav Hajek + + * Array.cc (Array::linearize): Remove. + * Array.h (Array::linearize): Remove decl. + + 2010-05-13 Jaroslav Hajek + + * dMatrix.cc (Matrix::lssolve): Remove warnings about rank. + * fMatrix.cc (FloatMatrix::lssolve): Ditto. + * CMatrix.cc (ComplexMatrix::lssolve): Ditto. + * fCMatrix.cc (FloatComplexMatrix::lssolve): Ditto. + + 2010-05-11 Jaroslav Hajek + + * idx-vector.cc (idx_vector::unmask): Fix off-by-1 bug. Add tests. + + 2010-05-06 Jaroslav Hajek + + * Array.cc (Array::delete_elements (const idx_vector&)): Only call + resize1 when deleting the last element of a vector. + + 2010-05-06 Jaroslav Hajek + + * oct-norm.h: Fix include guard. + + 2010-05-06 Jaroslav Hajek + + * dbleSCHUR.cc (SCHUR::init): Handle empty matrix case. + Use clear rather than resize to realloc matrix. + * floatSCHUR.cc (FloatSCHUR::init): Ditto. + * CmplxSCHUR.cc (ComplexSCHUR::init): Ditto. + * fCmplxSCHUR.cc (FloatComplexSCHUR::init): Ditto. + + 2010-05-04 John W. Eaton + + * CollocWt.cc (diff, jcobi, dfopr): New functions, based on + Fortran functions in libcruft/villad. + (jcobi): Handle iteration failure at large N. + (CollocWt::init): Call them instead of Fortran code. + * CollocWt.h (CollocWt::initialized): Declare as bool, not int. + Change all uses. + Addresses bug #29473. + + 2010-05-03 Jaroslav Hajek + + * dbleSVD.h (SVD::driver): New enum. + (SVD::SVD, SVD::init): Add driver option. + * floatSVD.h (FloatSVD::FloatSVD, FloatSVD::init): Add driver option. + * CmplxSVD.h (ComplexSVD::ComplexSVD, ComplexSVD::init): + Add driver option. + * fCmplxSVD.h (FloatComplexSVD::FloatComplexSVD, + FloatComplexSVD::init): Add driver option. + * dbleSVD.cc (SVD::init): Optionally use xGESDD driver. + * floatSVD.cc (FloatSVD::init): Ditto. + * CmplxSVD.cc (ComplexSVD::init): Ditto. + * fCmplxSVD.cc (FloatComplexSVD::init): Ditto. + + 2010-04-28 John W. Eaton + + * dim-vector.h (dim_vector (const octave_idx_type *, size_t)): Delete. + * Sparse.cc (Sparse::assign): Cast 0 to octave_idx_type in + call to Sparse constructor. + Addresses bug #29692. + + 2010-04-27 John W. Eaton + + * intNDArray.cc (intNDArray::abs, intNDArray::signum): + Create new vector for return values. Fixes bug #29685. + + 2010-04-23 Jaroslav Hajek + + * Sparse.cc (Sparse::assign): Fix typos. + + 2010-04-20 Jaroslav Hajek + + * Sparse.h (::assign, ::assign1): Remove declarations. + + 2010-04-19 Jaroslav Hajek + + * Array.cc (Array::cat): Fast return for single array case. + * Sparse.cc (Sparse::cat): Ditto. + + 2010-04-19 Jaroslav Hajek + + * Array.cc (Array::cat): Miscellaneous fixes. + * Sparse.cc (Sparse::cat): Ditto. + + 2010-04-18 Jaroslav Hajek + + * Array.cc (Array::cat): New method. + * Array.h: Declare it. + * Sparse.cc (Sparse::cat): New method. + * Sparse.h: Declare it. + + 2010-04-16 David Bateman + + * Sparse.cc (template Sparse::Sparse (const Array&, + const idx_vector&, const idx_vector&, octave_idx_type, + octave_idx_type, bool, octave_idx_type)): Add argument defining the + minimum storage to allocate for the sparse matrix. + * Sparse.h (template Sparse (const Array&, + const idx_vector&, const idx_vector&, octave_idx_type, + octave_idx_type, bool, octave_idx_type)): ditto. + * MSparse.h : ditto + * CSparse.h : ditto + * dSparse.h : ditto + * boolSparse.h : ditto + + 2010-04-14 Jaroslav Hajek + + * Sparse.cc: Update failing tests. + + 2010-04-13 Jaroslav Hajek + + * Sparse.cc (Sparse::index): If S is a sparse column vector, + forward S(I,1) and S(I,:) to 1D indexing. Handle permutation indexing + in the 1D case. + (Sparse::assign): If S is a sparse column vector, + forward S(I,1) = X and S(I,:) =X to 1D indexed assignment. + * idx-vector.cc (idx_vector::inverse_permutation): Add missing break. + + 2010-04-13 Jaroslav Hajek + + * Array-util.cc (gripe_invalid_assignment_size, + gripe_assignment_dimension_mismatch): Move funcs here from Array.cc + * Array-util.h: Declare them. + * Array.cc: Remove them. + + * Sparse.cc (Sparse::assign): New overloaded method. + (Sparse::operator =): Update. + (Sparse::resize1): Rewrite to match sparse assignment specifics. + (Sparse::set_index, Sparse::clear_index, Sparse::index_count, + Sparse::value): Remove methods. + (::assign1, ::assign): Remove funcs. + + (INSTANTIATE_SPARSE): Move here from Sparse.h. + + * Sparse.h (Sparse::idx, Sparse::idx_count): Remove member + fields. Remove initializations from all ctors. + (Sparse::get_idx): Remove. + (Sparse::assign): Add decls. + (INSTANTIATE_SPARSE_ASSIGN, INSTANTIATE_SPARSE_AND_ASSIGN): Remove. + (INSTANTIATE_SPARSE): Move to Sparse.cc + + * Sparse-C.cc, Sparse-d.cc, Sparse-b.cc: Only call INSTANTIATE_SPARSE. + + * idx-vector.cc (idx_vector::inverse_permutation): New method. + * idx-vector.h: Declare it. + + 2010-04-12 Jaroslav Hajek + + * Sparse.cc (Sparse::Sparse (const Array&, const idx_vector&, + const idx_vector&, ...)): Call maybe_compress after matrix is created. + + 2010-04-09 Jaroslav Hajek + + * Sparse.cc (Sparse::diag): Change nzmax to nnz where appropriate. + * MatrixType.cc (MatrixType::MatrixType): Ditto. + * SparseQR.cc: Ditto. + * SparseCmplxQR.cc: Ditto. + * boolSparse.cc: Ditto. + + 2010-04-08 Jaroslav Hajek + + * Sparse.cc (Sparse::resize (octave_idx_type, octave_idx_type)): + Rewrite. Be smarter esp. when resizing to more columns. + + 2010-04-08 Jaroslav Hajek + + * dim-vector.h (dim_vector::concat): Ignore zero_by_zero, but not + all_zero arrays in concatenation (like Matlab). + + 2010-04-07 Jaroslav Hajek + + * Sparse.cc (Sparse::index (const idx_vector&, bool)): Use shallow + copy when column is indexed by colon. + + 2010-04-07 Jaroslav Hajek + + * Sparse.cc (lblookup): Move in front of Sparse::delete_elements. + + 2010-04-07 Jaroslav Hajek + + * str-vec.h (string_vector::string_vector (const Array)): + New constructor. + + 2010-04-06 Jaroslav Hajek + + * idx-vector.cc (idx_vector::complement): Rewrite. + + 2010-04-06 Jaroslav Hajek + + * Sparse.cc (Sparse::maybe_delete_elements): Rename to + delete_elements. Use const reference arguments. + (Sparse::delete_elements (const idx_vector&, const idx_vector&)): + Rewrite. + (Sparse::maybe_delete_elements (int dim, const idx_vector&)): New + overload. + (Sparse::maybe_delete_elements (Array&)): Remove + overload. + + 2010-04-06 Jaroslav Hajek + + * idx-vector.cc, Array-util.h, Array-util.cc: Reverse effects of + 4e64fbbd5c58. + + 2010-04-02 John W. Eaton + + * Array-util.cc, idx-vector.cc, idx-vector.h: Style fixes. + + 2010-04-02 John W. Eaton + + * idx-vector.cc (idx_vector::idx_vector (const Range&)): + Move here from idx-vector.h. Allow non-integer values in ranges, + but warn by default (for Matlab compatibility). + * Array-util.h, Array-util.cc (gripe_invalid_index): New arg, ERR. + If ERR is false, generate warning instead of error. + + 2010-04-02 Jaroslav Hajek + + * Sparse.cc (Sparse::maybe_delete_elements): Rewrite. Optimize for + sparse column vectors. + + 2010-04-01 Jaroslav Hajek + + * mx-inlines.cc: Declare all loops as throw (). Ditto for + corresponding applier arguments. + (do_mx_check): New applier. + (logical_value): Do not throw exceptions. + * mx-op-defs.h (SNANCHK, MNANCHK): New helper macros. + (MS_BOOL_OP, SM_BOOL_OP, MM_BOOL_OP, NDS_BOOL_OP, SND_BOOL_OP, + NDND_BOOL_OP): Use them here. + + 2010-03-31 Jaroslav Hajek + + * Sparse.cc (Sparse::Sparse (const Array&, + const Array&, ...), Sparse::Sparse (const Array&, + const Array&, ...)): + Remove old constructors. + * Sparse.h: Ditto. + * MSparse.h: Ditto. + * dSparse.h: Ditto. + * CSparse.h: Ditto. + * boolSparse.h: Ditto. + + 2010-03-31 Jaroslav Hajek + + * idx-vector.cc (idx_vector::idx_range_rep::as_array): Fix typo. + (idx_vector::raw): Use unchecked constructor. + * Sparse.cc (Sparse::Sparse (const Array&, const idx_vector&, + const idx_vector&, ...)): New ctor. + * Sparse.h: Declare it. + + 2010-03-30 John W. Eaton + + * str-vec.cc (string_vector::string_vector (const char * const *)): + Create empty string_vector object if arg is NULL. + Fixes bug #29386. + + 2010-03-29 Jaroslav Hajek + + * idx-vector.cc (idx_vector::raw): New method. + * idx-vector.h: Declare it. + + 2010-03-27 David Bateman + + * oct-openmp.h: New file. + * Makefile.am (INCS): Add it here. + + 2010-03-26 Jaroslav Hajek + + * Sparse.cc (Sparse::index (const idx_vector&, const idx_vector&, + bool)): Specialize for contiguous row range, row permutation, + and implement general case through double index-transpose. + + 2010-03-25 John W. Eaton + + * eigs-base.cc (EigsComplexNonSymmetricFunc): Avoid warning + about deprecated Array constructor. + + 2010-03-25 John W. Eaton + + * cmd-edit.cc, file-ops.cc, lo-math.h, lo-utils.cc, oct-env.cc, + dir-ops.cc, file-stat.cc, cmd-hist.cc, oct-time.cc, oct-time.h, + oct-uname.cc: Revert changes from 2010-03-24 and 2010-03-25. + + 2010-03-25 Jaroslav Hajek + + * lo-mappers.cc (fix (double)): Forward to gnulib::trunc. + (fix (float)): Forward to gnulib::truncf. + (xround (double)): Forward to gnulib::round. + (xround (float)): Forward to gnulib::roundf. + (xtrunc (double)): Forward to gnulib::trunc. + (xtrunc (float)): Forward to gnulib::truncf. + + 2010-03-25 David Grundberg + + * oct-time.h (octave_time): Revert ::modf to std::modf again now + that cmath is included again. + + 2010-03-25 Jaroslav Hajek + + * lo-math.h: Include both "math.h" and "cmath". + + 2010-03-24 David Grundberg + + * cmd-edit.cc: Include gnulib stdlib.h/string.h instead of C++ + headers. + * file-ops.cc: Include gnulib stdlib.h/stdio.h/string.h instead of + C++ headers. + * lo-math.h: Include gnulib math.h instead of C++ headers. + * lo-utils.cc: Include gnulib stdlib.h instead of C++ headers. + * oct-env.cc, dir-ops.cc, file-stat.cc, cmd-hist.cc: Include + gnulib string.h instead of C++ headers. + * oct-time.cc: Include gnulib time.h instead of C++ headers. + * oct-time.h (octave_time): Use default namespace ::modf instead + of std::modf. + * oct-uname.cc: Include gnulib string.h instead of C++ headers. + + 2010-03-24 Jaroslav Hajek + + * Sparse.cc (lblookup): New helper func. + (Sparse::index (const idx_vector&, bool)): Use it here for lookups. + (Sparse::index (const idx_vector&, const idx_vector&, bool)): + Specialize for scalar row index. + + 2010-03-23 John W. Eaton + + * config-ops.sh: Work properly for "all" cases. + + 2010-03-23 Jaroslav Hajek + + * oct-inttypes.h (octave_int_arith_base::rem, octave_int_base::mod): + New methods. + (rem, mod): New template functions. + * lo-mappers.cc (rem, mod): New overloaded functions. + * lo-mappers.h: Declare them. + + 2010-03-23 Jaroslav Hajek + + * oct-binmap.h: New source. + * Makefile.am: Include it here. + + 2010-03-22 John W. Eaton + + * config-ops.sh: Accept additional arguments. + * Makefile.am ($(srcdir)/vx-op-inc.mk, $(srcdir)/mx-op-inc.mk + $(srcdir)/smx-op-inc.mk, $(srcdir)/vx-op-src.mk, $(srcdir)/mx-op-src.mk + $(srcdir)/smx-op-src.mk): Pass additional arguments to config-ops.sh. + + 2010-03-22 Jaroslav Hajek + + * Sparse.cc (Sparse::index (const idx_vector&, const idx_vector&, + bool)): Handle resize_ok in advance. Optimize colon as the first index. + (Sparse::index (const idx_vector&, bool)): Small fixes. + + 2010-03-22 Jaroslav Hajek + + * dSparse.cc (SparseMatrix::matrix_value): Simplify. + * CSparse.cc (SparseComplexMatrix::matrix_value): Simplify. + + 2010-03-19 Jaroslav Hajek + + * Array-util.cc (gripe_invalid_resize): Move here from Array.cc. + * Array-util.h: Declare it. + * Array.cc: Use it. + + * idx-vector.cc (idx_vector::idx_mask_rep::unconvert): Fix non-owned + case. + (idx_vector::idx_mask_rep::as_array): New method. + * idx-vector.h: Declare it. + + * Sparse.cc (Sparse::index (const idx_vector&, bool)): Rewrite. + (Sparse::array_value): New method. + (Sparse::resize1): New method. + (Sparse::resize): Move resize_no_fill bodies in here. + (Sparse::resize_no_fill): Remove. + * Sparse.h: Update decls. + + 2010-03-18 Jaroslav Hajek + + * Sparse.h (Sparse::index): Use const references. Use bool for + resize_ok. Remove Array overload. + * MSparse.h (MSparse::index): Ditto. + * dSparse.h, dSparse.cc (SparseMatrix::index): Ditto. + * CSparse.h, CSparse.cc (SparseComplexMatrix::index): Ditto. + * boolSparse.h, boolSparse.cc (SparseBoolMatrix::index): Ditto. + * Sparse.cc (Sparse::index): Ditto. Redim index to 2 dimensions. + Don't use non-const methods. Use gripe_index_out_of_range. + + 2010-03-17 John W. Eaton + + * dim-vector.h (dim_vector): Also use DIM_VECTOR macro for 2 and + 3 dimensions. + + 2010-03-17 Jaroslav Hajek + + * lo-macros.h: New source. + * dim-vector.h: Use the macro magic to define constructors + generically. + + 2010-03-17 Jaroslav Hajek + + * dim-vector.h: Provide constructors up to order 7. + + 2010-03-16 Jaroslav Hajek + + * lo-specfun.cc: Substitute cbrt and cbrtf if needed. + * lo-specfun.h: Declare cbrt and cbrtf if needed. + * configure.ac: Check for cbrt and cbrtf. + + 2010-03-15 John W. Eaton + + * oct-glob.cc (octave_glob): Tag calls to glob and globfree with + gnulib::. + + * kpse.cc (DEBUG_START, DEBUGF, FATAL_PERROR, FATAL, KPSE_DEBUG, + log_search, find_first_of): Tag calls to + fputs with gnulib::. + (DEBUGF1, DEBUGF2, DEBUGF3, DEBUGF4, log_search, find_first_of, + kpse_element_dirs): Tag calls to fprintf with gnulib::. + (hash_lookup, search, find_first_of, kpse_element_dirs): + Tag calls to putc with gnulib::. + (do_subdir): Tag call to opendir with gnulib::. + (xclosedir): Tag call to closedir with gnulib::. Assume closedir + returns int value. + + * cmd-hist.cc (gnu_history::do_append): Tag calls to open and + close with gnulib::. + (command_history::error): Tag call to strerror with gnulib::. + + * cmd-edit.cc (gnu_readline::command_generator, + gnu_readline::command_quoter, gnu_readline::command_dequoter): + Tag call to malloc with gnulib::. + (default_command_editor::do_readline): Tag call to fputs with gnulib::. + (command_editor::error): Tag call to strerror with gnulib::. + + * sparse-util.cc (SparseCholPrint): Tag call to vfprintf with gnulib::. + + * oct-uname.cc (octave_uname::init): Tag call to strerror with gnulib::. + + * oct-time.cc (octave_time::stamp): Tag call to gettimeofday + with gnulib::. + (octave_strptime::init): Tag call to strptime with gnulib::. + + * oct-syscalls.cc (octave_syscalls::dup2, + octave_syscalls::execvp, octave_syscalls::fork, + octave_syscalls::vfork, octave_syscalls::getpgrp, + octave_syscalls::pipe, octave_syscalls::waitpid, + octave_syscalls::kill, octave_fcntl): + Tag call to strerror with gnulib::. + (octave_syscalls::dup2): Tag call to dup2 with gnulib::. + (octave_syscalls::popen2): Tag calls to close with gnulib::. + (octave_fcntl): Tag call to fcntl with gnulib::. + + * oct-env.cc (octave_env::error): Tag call to strerror with gnulib::. + + * lo-utils.cc (octave_putenv): Tag call to malloc with gnulib::. + (octave_fgets): Tag calls to malloc and realloc with gnulib::. + + * lo-sysdep.cc (octave_getcwd): Tag call to getcwd with gnulib::. + + * lo-mappers.cc (xround): Tag call to round with gnulib::. + + * file-stat.cc (file_stat::update_internal): Tag calls to lstat + and strerror with gnulib::. + (file_fstat::update_internal): Tag calls to fstat and strerror + with gnulib::. + + * file-ops.cc (octave_mkdir): Tag call to mkdir with gnulib::. + (octave_mkfifo): Tag call to mkfifo with gnulib::. + (octave_link): Tag call to link with gnulib::. + (octave_symlink): Tag call to symlink with gnulib::. + (octave_readlink): Tag call to readlink with gnulib::. + (octave_rename): Tag call to rename with gnulib::. + (octave_rmdir): Tag call to rmdir with gnulib::. + (octave_unlink): Tag call to unlink with gnulib::. + (octave_canonicalize_file_name): Tag call to + canonicalize_file_name with gnulib::. + (octave_mkdir, octave_mkfifo, octave_link, octave_symlink, + octave_readlink, octave_rename, octave_rmdir, octave_unlink, + octave_tempnam, octave_canonicalize_file_name): Tag calls to + strerror with gnulib::. + + * dir-ops.cc (dir_entry::close): Tag closedir call with gnulib::. + (dir_entry::open): Tag opendir and strerror calls with gnulib::. + + 2010-03-09 Jaroslav Hajek + + * oct-inttypes.h (octave_int_base::ftrunc, octave_int_base::fnon_int, + octave_int_base::fnan, octave_int_base::get_trunc_flag, + octave_int_base::get_nan_flag, + octave_int_base::get_non_int_flag, + octave_int_base::get_math_trunc_flag, + octave_int_base::clear_conv_flags): Remove. + Remove occurences of ftrunc, fnon_int and fnan eveywhere. + * oct-inttypes.cc: Ditto last sentence. Remove warning tests. + + 2010-03-07 Soren Hauberg + + * dim-vector.h: New constructor accepting a C array of dimensions. + + 2010-03-05 Jaroslav Hajek + + * MArray.cc (MArray::idx_add_nd): New method. + * MArray.h: Declare it. + + 2010-03-04 Jaroslav Hajek + + * lo-specfun.cc (erfcx, erfcx_impl): New functions. + * lo-specfun.h: Declare erfcx. + + 2010-03-03 John W. Eaton + + * oct-convn.cc (convolve): Cast int constant to octave_idx_type in + call to std::max. + + 2010-03-03 Jaroslav Hajek + + * oct-convn.cc (convolve_2d_axpy_kernel, convolve_2d_axpy): Remove. + (convolve_2d): Forward to Fortran implementations, add inner flag. + (convolve_nd): Handle inner-convolution case. + (convolve): Ditto. + + 2010-03-02 Jaroslav Hajek + + * oct-convn.h, oct-convn.cc: New sources. + * Makefile.am: Include them. + + 2010-03-01 David Bateman + + * Sparse.cc (Sparse::maybe_delete_elements (idxx_vector&)): + Special case the deletion of elements in sparse vectors. + (Sparse::index (idx_vector&, int) const): Special case indexing + of sparse matrices with ranges with a step of 1. + * Sparse.h: Include oct-mem.h for the copy_or_memcpy declaration. + + 2010-02-28 John W. Eaton + + * Makefile.am ($(srcdir)/vx-op-inc.mk, $(srcdir)/mx-op-inc.mk, + $(srcdir)/smx-op-inc.mk, $(srcdir)/vx-op-src.mk, + $(srcdir)/mx-op-src.mk, $(srcdir)/smx-op-src.mk): New targets. + + * config-ops.sh: Accept top_srcdir argument. Work from build + directory too, not just source tree. + + 2010-02-28 Michael Goffioul + + * Array-C.cc (DiagArray2::Proxy): Remove explicit + instantiation under MSVC. + Array-d.cc (DiagArray2::Proxy): Ditto. + Array-f.cc (DiagArray2::Proxy): Ditto. + Array-fC.cc (DiagArray2 + + * Array-util.cc (gripe_index_out_of_range): Throw errors with id. + (gripe_nonconformant): Likewise. + (error_id_index_out_of_bounds, error_id_invalid_index, + error_id_nonconformant_args): New variables. + (gripe_invalid_index): New function. + * Array-util.h: Declare them. + * Array.cc (Array::checkelem): Throw invalid-index when negative + indices are encountered. + + 2010-02-27 John W. Eaton + + * Sparse.cc (Sparse::diag): Handle case of diag (szv) when szv + is a sparse vector with nnz = 0. + + 2010-02-27 Jaroslav Hajek + + * Array-util.cc (gripe_index_out_of_range): New function. + * Array.cc (Array::range_error): Remove. + (Array::checkelem): Rewrite. + (Array::index, Array::delete_elements): Simplify. + * DiagArray2.cc (DiagArray2::checkelem): Use gripe_index_out_of_range. + * Range.cc (Range::checkelem, Range::index): Ditto. + + 2010-02-26 Jaroslav Hajek + + * mx-inlines.cc (OP_DUP_FCN): Remove. + (mx_inline_dup): Remove. + (mx_inline_not): Remove. + (mx_inline_make_complex): Remove. + (mx_inline_change_sign): Remove. + (mx_inline_fabs_dup): Remove. + (mx_inline_cabs_dup): Remove. + (mx_inline_imag_dup): Remove. + (mx_inline_real_dup): Remove. + (mx_inline_conj_dup): Remove. + (mx_inline_change_sign): Remove. + + 2010-02-26 Jaroslav Hajek + + * Array.h (Array::ArrayRep): Simplify copy constructor. Add + conversion constructor. + (Array): Remove pointer acquiring ctors. + (Array::maybe_economize): Update. + (Array::make_unique): Update. + * Array.cc (Array::fill): Update. + + * MArray.h (MArray::MArray (T *, ...)): Remove. + * DiagArray2.h (DiagArray2::DiagArray2 (T *, ...)): Remove. + * MDiagArray2.h (MDiagArray2::MDiagArray2 (T *, ...)): Remove. + * Array3.h (Array3::Array3 (T *, ...)): Remove. + + * dColVector.h (ColumnVector::ColumnVector (T *, ...)): Remove. + * fColVector.h (FloatColumnVector::FloatColumnVector (T *, ...)): Remove. + * CColVector.h (ComplexColumnVector::ComplexColumnVector (T *, ...)): Remove. + * fCColVector.h (FloatComplexColumnVector::FloatComplexColumnVector (T *, ...)): Remove. + + * dRowVector.h (RowVector::RowVector (T *, ...)): Remove. + * fRowVector.h (FloatRowVector::FloatRowVector (T *, ...)): Remove. + * CRowVector.h (ComplexRowVector::ComplexRowVector (T *, ...)): Remove. + * fCRowVector.h (FloatComplexRowVector::FloatComplexRowVector (T *, ...)): Remove. + + * dMatrix.h (Matrix::Matrix (T *, ...)): Remove. + * fMatrix.h (FloatMatrix::FloatMatrix (T *, ...)): Remove. + * CMatrix.h (ComplexMatrix::ComplexMatrix (T *, ...)): Remove. + * fCMatrix.h (FloatComplexMatrix::FloatComplexMatrix (T *, ...)): Remove. + * boolMatrix.h (boolMatrix::boolMatrix (T *, ...)): Remove. + * chMatrix.h (charMatrix::charMatrix (T *, ...)): Remove. + + * dNDArray.h (NDArray::NDArray (T *, ...)): Remove. + * fNDArray.h (FloatNDArray::FloatNDArray (T *, ...)): Remove. + * CNDArray.h (ComplexNDArray::ComplexNDArray (T *, ...)): Remove. + * fCNDArray.h (FloatComplexNDArray::FloatComplexNDArray (T *, ...)): Remove. + * boolNDArray.h (boolNDArray::boolNDArray (T *, ...)): Remove. + * chNDArray.h (charNDArray::charNDArray (T *, ...)): Remove. + + 2010-02-26 Jaroslav Hajek + + * DiagArray2.h (DiagArray2): Clean up ctors. Remove Proxy class. + Remove non-const two-index elem methods. + * DiagArray2.cc: Update. + * MDiagArray2.h: Update. + + * dDiagArray2.h: Update. + * dDiagArray2.cc: Update. + * fDiagArray2.h: Update. + * fDiagArray2.cc: Update. + * CDiagArray2.h: Update. + * CDiagArray2.cc: Update. + * fCDiagArray2.h: Update. + * fCDiagArray2.cc: Update. + + * dMatrix.cc: Update. + * fMatrix.cc: Update. + * CMatrix.cc: Update. + * fCMatrix.cc: Update. + + * dRowVector.cc: Update. + * fRowVector.cc: Update. + * CRowVector.cc: Update. + * fCRowVector.cc: Update. + + * dColVector.cc: Update. + * fColVector.cc: Update. + * CColVector.cc: Update. + * fCColVector.cc: Update. + + * dColVector.cc (ColumnVector::abs): New method. + * dColVector.h: Declare it. + * fColVector.cc (FloatColumnVector::abs): New method. + * fColVector.h: Declare it. + * CColVector.cc (ComplexColumnVector::abs): New method. + * CColVector.h: Declare it. + * fCColVector.cc (FloatComplexColumnVector::abs): New method. + * fCColVector.h: Declare it. + + 2010-02-26 Jaroslav Hajek + + * mx-inlines.cc: Parameterize all appliers by value types rather than + Array types. Return & accept Array instances. + * mx-op-defs.h: Update references. + * CMatrix.cc: Ditto. + * CNDArray.cc: Ditto. + * DiagArray2.h: Ditto. + * MArray.cc: Ditto. + * boolMatrix.cc: Ditto. + * boolNDArray.cc: Ditto. + * bsxfun-defs.cc: Ditto. + * chMatrix.cc: Ditto. + * chNDArray.cc: Ditto. + * dMatrix.cc: Ditto. + * dNDArray.cc: Ditto. + * fCMatrix.cc: Ditto. + * fCNDArray.cc: Ditto. + * fMatrix.cc: Ditto. + * fNDArray.cc: Ditto. + * intNDArray.cc: Ditto. + * MDiagArray2.cc: Remove computed assignment operators, adapt + operators to new mechanism. + * MDiagArray2.h: Declare operators as friends. + * MArray-decl.h (MDIAGARRAY2_OPS_FRIEND_DECLS): Don't expand + MARRAY_OP_ASSIGN_FRIENDS here. + + 2010-02-25 John W. Eaton + + * eigs-base.cc: Use octave_idx_type for Fortran LOGICAL values + in function prototypes. + (EigsRealSymmetricMatrix, EigsRealSymmetricMatrixShift, + EigsRealSymmetricFunc, EigsRealNonSymmetricMatrix, + EigsRealNonSymmetricMatrixShift, EigsRealNonSymmetricFunc, + EigsComplexNonSymmetricMatrix, EigsComplexNonSymmetricMatrixShift, + EigsComplexNonSymmetricFunc): Declare rvec argument as bool, not int. + Fix explicit instantiations to match. + + 2010-02-25 Jaroslav Hajek + + * oct-mem.h (safe_size_comp): New helper func. + (no_ctor_new): Call it here. + + 2010-02-25 Jaroslav Hajek + + * oct-mem.h (copy_or_memcpy, fill_or_memset, no_ctor_new): Accept + size_t rather than octave_idx_type. + * Array.h (Array::byte_size): Correct calculation. + * DiagArray2.h (DiagArray2::byte_size): Call inherited byte_size. + * PermMatrix.h (PermMatrix::byte_size): Ditto. + + 2010-02-25 Jaroslav Hajek + + * str-vec.h (string_vector::string_vector): Use (n, 1). + (string_vector::resize): Ditto. + * str-vec.cc (string_vector::string_vector): Ditto. + + 2010-02-24 Jaroslav Hajek + + * Array.cc (Array::Array (const Array&, octave_idx_type, + octave_idx_type): New ctor. + (Array::reshape (octave_idx_type, octave_idx_type): New method. + * Array.h: Declare them. + * Array2.h: Deprecate Array2, make it a #define for Array. + + * Array-C.cc: Remove Array2 instantiation. + * Array-b.cc: Ditto. + * Array-ch.cc: Ditto. + * Array-d.cc: Ditto. + * Array-f.cc: Ditto. + * Array-fC.cc: Ditto. + * Array-i.cc: Ditto. + * Array-s.cc: Ditto. + * Array-voidp.cc: Ditto. + + * CMatrix.cc: Use Array instead of Array2 everywhere. + * CMatrix.h: Ditto. + * CNDArray.cc: Ditto. + * DiagArray2.cc: Ditto. + * DiagArray2.h: Ditto. + * MDiagArray2.h: Ditto. + * Sparse.cc: Ditto. + * Sparse.h: Ditto. + * boolMatrix.h: Ditto. + * boolNDArray.cc: Ditto. + * chMatrix.h: Ditto. + * chNDArray.cc: Ditto. + * dMatrix.cc: Ditto. + * dMatrix.h: Ditto. + * dNDArray.cc: Ditto. + * fCMatrix.cc: Ditto. + * fCMatrix.h: Ditto. + * fCNDArray.cc: Ditto. + * fMatrix.cc: Ditto. + * fMatrix.h: Ditto. + * fNDArray.cc: Ditto. + * lo-specfun.cc: Ditto. + * lo-specfun.h: Ditto. + + 2010-02-23 Jaroslav Hajek + + * chMatrix.h (charMatrix): Base on Array. + * chMatrix.cc (charMatrix): Update. + * boolMatrix.h (boolMatrix): Ditto. + * boolMatrix.h (boolMatrix): Update. + + 2010-02-23 Jaroslav Hajek + + * Array.h (Array): Define 2D constructors. Remove conflicting 1D + initialized constructor. Deprecate 1D constructor. Deprecate 1D resize. + Add 2D resize, resize1. Remove resize_fill. Make resize_fill_value + return a reference. Remove 1D clear. + + * MArray.h (MArray): Merge with MArrayN. Define 2D constructors, sync + with Array changes. + + * MArrayN.h, MArray2.h: Deprecate headers, use compatibility #defines. + * MArrayN.cc, MArray2.cc: Remove sources. + * Makefile.am: Update. + + * fCMatrix.h (FloatComplexMatrix): Rebase on MArray. + * fMatrix.h (FloatMatrix): Ditto. + * dMatrix.h (Matrix): Ditto. + * CMatrix.h (ComplexMatrix): Ditto. + * fCNDArray.h (FloatComplexNDArray): Rebase on MArray. + * fNDArray.h (FloatNDArray): Ditto. + * dNDArray.h (NDArray): Ditto. + * CNDArray.h (ComplexNDArray): Ditto. + + * Array-util.cc: Update. + * Array.cc: Ditto. + * Array2.h: Ditto. + * Array3.h: Ditto. + * CColVector.cc: Ditto. + * CColVector.h: Ditto. + * CMatrix.cc: Ditto. + * CNDArray.cc: Ditto. + * CRowVector.cc: Ditto. + * CSparse.cc: Ditto. + * ChangeLog: Ditto. + * CmplxCHOL.cc: Ditto. + * CmplxHESS.cc: Ditto. + * CmplxLU.cc: Ditto. + * CmplxQRP.cc: Ditto. + * CmplxSCHUR.cc: Ditto. + * CmplxSVD.cc: Ditto. + * CollocWt.cc: Ditto. + * DASPK-opts.in: Ditto. + * DASPK.cc: Ditto. + * DASRT-opts.in: Ditto. + * DASRT.cc: Ditto. + * DASSL-opts.in: Ditto. + * DASSL.cc: Ditto. + * DiagArray2.cc: Ditto. + * DiagArray2.h: Ditto. + * EIG.cc: Ditto. + * LSODE-opts.in: Ditto. + * LSODE.cc: Ditto. + * MArray-C.cc: Ditto. + * MArray-d.cc: Ditto. + * MArray-defs.h: Ditto. + * MArray-f.cc: Ditto. + * MArray-fC.cc: Ditto. + * MArray-i.cc: Ditto. + * MArray-s.cc: Ditto. + * MArray.cc: Ditto. + * MDiagArray2.h: Ditto. + * MSparse-defs.h: Ditto. + * MSparse.cc: Ditto. + * MSparse.h: Ditto. + * Makefile.am: Ditto. + * MatrixType.cc: Ditto. + * PermMatrix.cc: Ditto. + * Quad.cc: Ditto. + * SparseCmplxLU.cc: Ditto. + * SparseCmplxQR.cc: Ditto. + * SparseCmplxQR.h: Ditto. + * SparseQR.cc: Ditto. + * SparseQR.h: Ditto. + * SparsedbleLU.cc: Ditto. + * base-lu.cc: Ditto. + * dColVector.h: Ditto. + * dMatrix.cc: Ditto. + * dNDArray.cc: Ditto. + * dRowVector.h: Ditto. + * dSparse.cc: Ditto. + * dbleCHOL.cc: Ditto. + * dbleHESS.cc: Ditto. + * dbleLU.cc: Ditto. + * dbleQRP.cc: Ditto. + * dbleSCHUR.cc: Ditto. + * dbleSVD.cc: Ditto. + * dim-vector.h: Ditto. + * eigs-base.cc: Ditto. + * fCColVector.cc: Ditto. + * fCColVector.h: Ditto. + * fCMatrix.cc: Ditto. + * fCNDArray.cc: Ditto. + * fCRowVector.cc: Ditto. + * fCRowVector.h: Ditto. + * fCmplxCHOL.cc: Ditto. + * fCmplxHESS.cc: Ditto. + * fCmplxLU.cc: Ditto. + * fCmplxQRP.cc: Ditto. + * fCmplxSCHUR.cc: Ditto. + * fCmplxSVD.cc: Ditto. + * fColVector.h: Ditto. + * fEIG.cc: Ditto. + * fMatrix.cc: Ditto. + * fNDArray.cc: Ditto. + * fRowVector.h: Ditto. + * floatCHOL.cc: Ditto. + * floatHESS.cc: Ditto. + * floatLU.cc: Ditto. + * floatQRP.cc: Ditto. + * floatSCHUR.cc: Ditto. + * floatSVD.cc: Ditto. + * glob-match.h: Ditto. + * int16NDArray.h: Ditto. + * int32NDArray.h: Ditto. + * int64NDArray.h: Ditto. + * int8NDArray.h: Ditto. + * intNDArray.cc: Ditto. + * intNDArray.h: Ditto. + * oct-fftw.cc: Ditto. + * oct-norm.cc: Ditto. + * oct-rand.cc: Ditto. + * regex-match.cc: Ditto. + * sparse-dmsolve.cc: Ditto. + * str-vec.cc: Ditto. + * str-vec.h: Ditto. + * uint16NDArray.h: Ditto. + * uint32NDArray.h: Ditto. + * uint64NDArray.h: Ditto. + * uint8NDArray.h: Ditto. + + 2010-02-22 John W. Eaton + + * data-conv.cc, data-conv.h (read_floats, read_doubles, + do_float_format_conversion, do_double_format_conversion): + Declare len arg and loop counter as octave_idx_type, not int. + (strip_spaces): Use size_t for string dimension and index, not int. + (LS_DO_READ, LS_DO_WRITE): Declare loop counter as + octave_idx_type, not int. + (write_floats, write_doubles): + Declare len arg as octave_idx_type, not int. + (IEEE_big_double_to_IEEE_little_double, + VAX_D_double_to_IEEE_little_double, + VAX_G_double_to_IEEE_little_double, + Cray_to_IEEE_little_double, + IEEE_big_float_to_IEEE_little_float, + VAX_D_float_to_IEEE_little_float, + VAX_G_float_to_IEEE_little_float, Cray_to_IEEE_little_float, + IEEE_little_double_to_IEEE_big_double, + VAX_D_double_to_IEEE_big_double, + VAX_G_double_to_IEEE_big_double, Cray_to_IEEE_big_double, + IEEE_little_float_to_IEEE_big_float, + VAX_D_float_to_IEEE_big_float, VAX_G_float_to_IEEE_big_float, + Cray_to_IEEE_big_float, IEEE_little_double_to_VAX_D_double, + IEEE_big_double_to_VAX_D_double, + VAX_G_double_to_VAX_D_double, Cray_to_VAX_D_double, + IEEE_little_float_to_VAX_D_float, + IEEE_big_float_to_VAX_D_float, VAX_G_float_to_VAX_D_float, + Cray_to_VAX_D_float, IEEE_little_double_to_VAX_G_double, + IEEE_big_double_to_VAX_G_double, + VAX_D_double_to_VAX_G_double, Cray_to_VAX_G_double, + IEEE_little_float_to_VAX_G_float, + IEEE_big_float_to_VAX_G_float, VAX_D_float_to_VAX_G_float, + Cray_to_VAX_G_float, read_doubles): + Declare len arg as octave_idx_type, not int. + + 2010-02-21 Michael Goffioul + + * lo-sysdep.cc, lo-utils.h, oct-shlib.h: Define WIN32_LEAN_AND_MEAN + and don't #undef min/max. + * oct-inttypes.h: Don't #undef min/max. + + * oct-glob.cc (octave_glob): Convert backslashes to forward slashes + automatically before calling glob, and convert back after the call + (implementation from jwe). + + * Makefile.am: Add -bindir flag to liboctave_la_LDFLAGS. + + 2010-02-19 Jaroslav Hajek + + * idx-vector.cc (idx_vector::as_array, + idx_vector::idx_range_rep::as_array, + idx_vector::idx_scalar_rep::as_array, + idx_vector::idx_vector_rep::as_array): New methods. + * idx-vector.h: Declare them. + + 2010-02-17 John W. Eaton + + * oct-rand.cc: Include . Change declarations of ranlib + functions to take int32_t instead of octave_idx_type values. + Change all uses. + (octave_rand::do_seed): Use int32_t in union, not octave_idx_type. + (force_to_fit_range): Args are now int32_t, not octave_idx_type. + (octave_rand::initialize_ranlib_generators): Use int32_t in seed + calculation. + + 2010-02-17 Jaroslav Hajek + + * mx-op-defs.h (MINMAX_FCNS): Generalize. + * mx-op-decl.h (MINMAX_DECLS): Likewise. + + * int16NDArray.h, int32NDArray.h, int64NDArray.h, int8NDArray.h, + uint16NDArray.h, uint32NDArray.h, uint64NDArray.h, uint8NDArray.h: + Update. + * int16NDArray.cc, int32NDArray.cc, int64NDArray.cc, int8NDArray.cc, + uint16NDArray.cc, uint32NDArray.cc, uint64NDArray.cc, uint8NDArray.cc: + Update. + + * CNDArray.h, dNDArray.h, fCNDArray.h, fNDArray.h: Replace explicit + decls. + + * CNDArray.cc, dNDArray.cc, fCNDArray.cc, fNDArray.cc: Replace explicit + definitions. + + + 2010-02-11 John W. Eaton + + * sparse-mk-ops.awk, mk-ops.awk, filemode.c, lo-cieee.c, + oct-rl-hist.c, randgamma.c, randmtzig.c, randpoisson.c, + tempnam.c, tempname.c: Untabify. + + 2010-02-11 John W. Eaton + + * Array-C.cc, Array-fC.cc, Array-util.cc, Array.cc, + CColVector.cc, CDiagMatrix.cc, CMatrix.cc, CNDArray.cc, + CRowVector.cc, CSparse.cc, CmplxAEPBAL.cc, CmplxCHOL.cc, + CmplxGEPBAL.cc, CmplxHESS.cc, CmplxLU.cc, CmplxQR.cc, + CmplxQRP.cc, CmplxSCHUR.cc, CmplxSVD.cc, CollocWt.cc, DASPK.cc, + DASRT.cc, DASSL.cc, EIG.cc, LSODE.cc, MSparse.cc, MatrixType.cc, + ODES.cc, Quad.cc, Range.cc, Sparse-C.cc, Sparse.cc, + SparseCmplxCHOL.cc, SparseCmplxLU.cc, SparseCmplxQR.cc, + SparseQR.cc, SparsedbleCHOL.cc, SparsedbleLU.cc, boolNDArray.cc, + boolSparse.cc, chMatrix.cc, chNDArray.cc, cmd-edit.cc, + cmd-hist.cc, dColVector.cc, dDiagMatrix.cc, dMatrix.cc, + dNDArray.cc, dRowVector.cc, dSparse.cc, data-conv.cc, + dbleAEPBAL.cc, dbleCHOL.cc, dbleGEPBAL.cc, dbleHESS.cc, + dbleLU.cc, dbleQR.cc, dbleQRP.cc, dbleSCHUR.cc, dbleSVD.cc, + dir-ops.cc, eigs-base.cc, fCColVector.cc, fCDiagMatrix.cc, + fCMatrix.cc, fCNDArray.cc, fCRowVector.cc, fCmplxAEPBAL.cc, + fCmplxCHOL.cc, fCmplxGEPBAL.cc, fCmplxHESS.cc, fCmplxLU.cc, + fCmplxQR.cc, fCmplxQRP.cc, fCmplxSCHUR.cc, fCmplxSVD.cc, + fColVector.cc, fDiagMatrix.cc, fEIG.cc, fMatrix.cc, fNDArray.cc, + fRowVector.cc, file-stat.cc, floatAEPBAL.cc, floatCHOL.cc, + floatGEPBAL.cc, floatHESS.cc, floatLU.cc, floatQR.cc, + floatQRP.cc, floatSCHUR.cc, floatSVD.cc, idx-vector.cc, + intNDArray.cc, kpse.cc, lo-ieee.cc, lo-mappers.cc, + lo-specfun.cc, lo-sysdep.cc, lo-utils.cc, mach-info.cc, + mx-inlines.cc, oct-alloc.cc, oct-env.cc, oct-fftw.cc, + oct-glob.cc, oct-group.cc, oct-inttypes.cc, oct-md5.cc, + oct-rand.cc, oct-shlib.cc, oct-sort.cc, oct-spparms.cc, + oct-syscalls.cc, oct-time.cc, pathsearch.cc, regex-match.cc, + sparse-base-chol.cc, sparse-base-lu.cc, sparse-dmsolve.cc, + sparse-sort.cc, sparse-util.cc, str-vec.cc: Untabify. + + 2010-02-11 John W. Eaton + + * Array-util.h, Array.h, Array2.h, Array3.h, CColVector.h, + CMatrix.h, CNDArray.h, CRowVector.h, CSparse.h, CmplxCHOL.h, + CmplxGEPBAL.h, CmplxHESS.h, CmplxLU.h, CmplxQRP.h, CmplxSCHUR.h, + CmplxSVD.h, CollocWt.h, DAE.h, DAEFunc.h, DAERT.h, DAERTFunc.h, + DASPK.h, DASRT.h, DASSL.h, DiagArray2.h, EIG.h, MArrayN.h, + MDiagArray2.h, MSparse-defs.h, MSparse.h, MatrixType.h, ODE.h, + ODEFunc.h, ODES.h, ODESFunc.h, Quad.h, Range.h, + Sparse-diag-op-defs.h, Sparse-op-defs.h, Sparse-perm-op-defs.h, + Sparse.h, SparseCmplxCHOL.h, SparseCmplxLU.h, SparseCmplxQR.h, + SparseQR.h, SparsedbleCHOL.h, SparsedbleLU.h, base-dae.h, + base-de.h, base-lu.h, base-min.h, base-qr.h, boolNDArray.h, + boolSparse.h, chNDArray.h, cmd-hist.h, dMatrix.h, dNDArray.h, + dSparse.h, data-conv.h, dbleCHOL.h, dbleGEPBAL.h, dbleHESS.h, + dbleLU.h, dbleQRP.h, dbleSCHUR.h, dbleSVD.h, dir-ops.h, + fCColVector.h, fCMatrix.h, fCNDArray.h, fCRowVector.h, + fCmplxCHOL.h, fCmplxGEPBAL.h, fCmplxHESS.h, fCmplxLU.h, + fCmplxQRP.h, fCmplxSCHUR.h, fCmplxSVD.h, fEIG.h, fMatrix.h, + fNDArray.h, file-stat.h, floatCHOL.h, floatGEPBAL.h, + floatHESS.h, floatLU.h, floatQRP.h, floatSCHUR.h, floatSVD.h, + glob-match.h, idx-vector.h, intNDArray.h, lo-ieee.h, + lo-specfun.h, mx-op-decl.h, mx-op-defs.h, oct-env.h, oct-fftw.h, + oct-group.h, oct-inttypes.h, oct-mutex.h, oct-passwd.h, + oct-rand.h, oct-shlib.h, oct-sort.h, oct-spparms.h, oct-time.h, + oct-uname.h, pathsearch.h, sparse-base-chol.h, sparse-base-lu.h, + sparse-sort.h, sparse-util.h, statdefs.h, str-vec.h: Untabify. + + 2010-02-10 John W. Eaton + + * dMatrix.h (template Matrix (const Array&)): + New constructor. + * CMatrix.h (template ComplexMatrix (const Array&)): + New constructor. + * fMatrix.h (template FloatMatrix (const Array&)): + New constructor. + * fCMatrix.h (template FloatComplexMatrix (const Array&)): + New constructor. + + 2010-02-09 Jaroslav Hajek + + * idx-vector.cc (idx_vector::idx_vector_rep::idx_vector_rep (const + Array&, octave_idx_type, direct)): New constructor. + * idx-vector.h: Declare it. + (idx_vector::idx_vector (const Array&, + octave_idx_type)): New constructor. + + 2010-02-08 John W. Eaton + + * oct-time.cc: Include "strftime.h", not . + * file-ops.cc: Include "pathmax.h", not . + + 2010-02-08 John W. Eaton + + * oct-env.cc (octave_env::prog_invocation_name): Rename from + program_invocation_name. Change all uses. + (octave_env::prog_name): Rename from program_name. Change all uses. + (octave_env::do_set_program_name): Call ::set_program_name + function from gnulib. + + 2010-02-08 Jaroslav Hajek + + * idx-vector.h (idx_vector::idx_base_rep::sort_idx): New pure virtual + function. + (idx_vector::idx_colon_rep::sort_idx, + idx_vector::idx_range_rep::sort_idx, + idx_vector::idx_scalar_rep::sort_idx, + idx_vector::idx_vector_rep::sort_idx, + idx_vector::idx_mask_rep::sort_idx): New override decls. + idx_vector::sort (Array&): New method. + * idx-vector.cc (idx_vector::idx_range_rep::sort_idx, + idx_vector::idx_vector_rep::sort_idx): New methods. + (idx_vector::idx_vector_rep::sort_uniq_clone): Rewrite + to use bucket sort under plausible circumstances. + + 2010-02-08 Jaroslav Hajek + + * Array.cc (Array::permute): Fix result dimensions when inv=true. + + 2010-02-05 Jaroslav Hajek + + * MArrayN.cc (MArrayN::idx_min, MArrayN::idx_max): New methods. + * MArrayN.h: Declare them. + * lo-mappers.h (xmin, xmax): Define for general arguments. + + 2010-02-04 Jaroslav Hajek + + * chMatrix.h (charMatrix): Rebase directly on Array. + * chNDArray.h (charNDArray): Ditto. + * chMatrix.cc: Update. + * chNDArray.cc: Update. + * MArray-ch.cc: Remove. + * Makefile.am: Update. + + 2010-02-04 John W. Eaton + + * lo-cutils.c (gethostname): Delete function. + * lo-sysdep.h (gethostname): Delete declaration. + + 2010-02-03 John W. Eaton + + * oct-syscalls.h, oct-syscalls.cc (octave_fcntl): Assume fcntl exists. + Rename from octave_syscalls::fcntl. + (octave_syscalls::popen2): Call octave_fcntl, not fcntl. + * cmd-hist.cc, lo-sysdep.cc, oct-syscalls.cc: + Include unconditionally. + + 2010-02-03 John W. Eaton + + * dbleSVD.cc (SVD::init): Ensure args to std::max are the same type. + * CmplxSVD.cc (ComplexSVD::init): Likewise. + * floatSVD.cc (FloatSVD::init): Likewise. + * fCmplxSVD.cc (FloatComplexSVD::init): Likewise. + * idx-vector.cc (idx_range_rep): Likewise. + * Array.cc (Array::nth_element): Likewise. + + * lo-specfun.cc (null_dims): Delete unused static variable. + (betainc): Call dim_vector (0, 0), not dim_vector (0). + + 2010-02-03 John W. Eaton + + * file-ops.h (octave_canonicalize_file_name): Rename from + file_ops::canonicalize_file_name. + + 2010-02-03 John W. Eaton + + * file-ops.cc (canonicalize_file_name): + Don't pass current directory to octave_env::make_absolute. + * cmd-edit.cc (do_decode_prompt_string): Likewise. + + * oct-env.h (octave_env::get_current_directory): + Rename from octave_env::getcwd. + (octave_env::make_absolute): Provide default value for second arg. + + * lo-sysdep.cc (octave_getcwd): Assume we are using gnulib + getcwd module. + + 2010-02-02 John W. Eaton + + * oct-time.h: Include , not "systime.h". + * oct-time.cc: Include , not "strftime.h". + Don't include . + + * systime.h: Delete. + * Makefile.am (INCS): Remove it from the list. + + 2010-02-02 John W. Eaton + + * lo-utils.h, lo-cutils.c (oct_strptime): Delete. + * oct-time.cc (octave_strptime::init): Call strptime, not oct_strptime. + + 2010-01-28 Jaroslav Hajek + + * dMatrix.cc (Matrix::determinant): Treat matrices marked as singular + normally. + * fMatrix.cc (FloatMatrix::determinant): Ditto. + * CMatrix.cc (ComplexMatrix::determinant): Ditto. + * fCMatrix.cc (FloatComplexMatrix::determinant): Ditto. + + 2010-01-26 John W. Eaton + + * file-ops.cc: Don't tag functions with OCTAVE_API in source file. + + 2010-01-26 John W. Eaton + + * lo-cutils.c, lo-utils.h (octave_link, octave_symlink, + octave_readlink, octave_mkdir, octave_mkfifo, octave_rmdir, + octave_rename, octave_tempnam, octave_umask, octave_unlink): + Delete. + * file-io.h, file-io.cc (octave_mkdir, octave_mkfifo, + octave_link, octave_symlink, octave_readlink, octave_rename, + octave_rmdir, octave_recursive_rmdir, octave_umask, + octave_unlink, octave_tempnam): Rename from file_ops::X to + octave_X. Change all uses. + (file_ops::static_members): Incorporate directly into file_ops class. + + 2010-01-23 John W. Eaton + + * Makefile.am (LIBOCTAVE_C_SOURCES): Remove oct-getopt.c from the list. + (LIBOCTAVE_CXX_SOURCES): Remove prog-args.c from the list. + (INCS): Remove prog-args.h and oct-getopt.h from the list. + * prog-args.cc, prog-args.h, oct-getopt.c, oct-getopt.h: Delete. + + 2010-01-22 John W. Eaton + + * prog-args.h, prog-args.cc (prog_args::get_option, + prog_args::option_argument, prog_args::option_index): + Don't declare const. + + 2010-01-22 John W. Eaton + + * prog-args.h, prog-args.cc (prog_args::get_option): + Rename from getopt. Now const. + (prog_args::option_argument): Rename from optarg. Now const. + (prog_args::option_index): Rename from optind. Now const. + + 2010-01-22 John W. Eaton + + * file-ops.cc: Don't include statdefs.h. + + 2010-01-22 Jaroslav Hajek + + * dbleSVD.cc (SVD::init): Ensure LD* arguments >= 1. + * floatSVD.cc (FloatSVD::init): Likewise. + * CmplxSVD.cc (ComplexSVD::init): Likewise. + * fCmplxSVD.cc (FloatComplexSVD::init): Likewise. + + 2010-01-21 John W. Eaton + + * CMatrix.cc, fCMatrix.cc, cmd-edit.cc, cmd-hist.cc, + file-ops.cc, file-ops.h, file-stat.cc, file-stat.h, filemode.c, + kpse.cc, lo-cutils.c, lo-sysdep.cc, lo-utils.cc, oct-env.cc, + oct-group.cc, oct-group.h, oct-passwd.cc, oct-passwd.h, + oct-time.cc, oct-syscalls.cc, oct-syscalls.h, statdefs.h, + sysdir.h, syswait.h, tempname.c, regex-match.h: + Assume sys/types.h and unistd.h are present (gnulib provides them). + + 2010-01-21 John W. Eaton + + * file-ops.h, file-ops.cc, lo-utils.h, lo-cutils.c: Untabify. + + * file-ops.cc: Don't include unistd.h. + (NOT_SUPPORTED): Delete unused macro. + + 2010-01-21 John W. Eaton + + * lo-cutils.c (octave_tempnam): New funtion. + * lo-utils.h: Provide decl. + * file-ops.cc (file_ops::tempnam): Call octave_tempnam. + + 2010-01-21 John W. Eaton + + * lo-cutils.c (octave_readlink): New funtion. + * lo-utils.h: Provide decl. + * file-ops.cc (file_ops::readlink): Call octave_readlink. + + 2010-01-21 John W. Eaton + + * lo-cutils.c (octave_symlink): New funtion. + * lo-utils.h: Provide decl. + * file-ops.cc (file_ops::symlink): Call octave_symlink. + + 2010-01-21 John W. Eaton + + * lo-cutils.c (octave_link): New funtion. + * lo-utils.h: Provide decl. + * file-ops.cc (file_ops::link): Call octave_link. + + 2010-01-21 John W. Eaton + + * lo-cutils.c (octave_unlink): New funtion. + * lo-utils.h: Provide decl. + * file-ops.cc (file_ops::unlink): Call octave_unlink. + + 2010-01-21 John W. Eaton + + * lo-cutils.c (octave_umask): New funtion. + * lo-utils.h: Provide decl. + * file-ops.cc (file_ops::umask): Call octave_umask. + + 2010-01-21 John W. Eaton + + * file-ops.h (file_ops::mkdir): Move definitions to file-ops.cc. + (file_ops::mkfifo): Move definitions to file-ops.cc. + (file_ops::mkdir_internal, file_ops::mkfifo_internal): Delete decls. + * file-ops.cc (file_ops::mkdir): Call octave_mkdir. + (file_ops::mkfifo): Call octave_mkfifo. + * lo-cutils.c (octave_mkdir, octave_mkfifo): New functions. + * lo-utils.h: Provide decls. + + 2010-01-21 John W. Eaton + + * Makefile.am (LIBOCTAVE_C_SOURCES): Remove strptime.c from the list. + * strptime.c: Delete. + + 2010-01-21 John W. Eaton + + * lo-cutils.c (octave_rename): New funtion. + * lo-utils.h: Provide decl. + * file-ops.cc (file_ops::rename): Call octave_rename. + * Makefile.am (LIBOCTAVE_C_SOURCES): Remove rename.c from the list. + * rename.c: Delete. + + 2010-01-21 John W. Eaton + + * lo-cutils.c (octave_rmdir): New function. + * lo-utils.h: Provide decl. + * file-ops.cc (file_ops::rmdir): Call octave_rmdir. + * Makefile.am (LIBOCTAVE_C_SOURCES): Remove rmdir.c from the list. + * rmdir.c: Delete. + + 2010-01-21 John W. Eaton + + * Makefile.am (LIBOCTAVE_C_SOURCES): Remove strcasecmp.c and + strncase.c from the list. + * strcasecmp.c, strncase.c: Delete. + + 2010-01-21 John W. Eaton + + * Makefile.am (INCS): Remove getopt.h from the list. + (LIBOCTAVE_C_SOURCES): Remove getopt.c and getopt1.c from the list. + * getopt.c, getopt1.c, getopt.h: Delete. + + 2010-01-20 John W. Eaton + + * Array-C.cc, Array-b.cc, Array-ch.cc, Array-d.cc, Array-f.cc, + Array-fC.cc, Array-i.cc, Array-idx-vec.cc, Array-s.cc, + Array-str.cc, Array-util.cc, Array-voidp.cc, Array.cc, + CColVector.cc, CDiagMatrix.cc, CMatrix.cc, CNDArray.cc, + CRowVector.cc, CSparse.cc, CmplxAEPBAL.cc, CmplxCHOL.cc, + CmplxGEPBAL.cc, CmplxHESS.cc, CmplxLU.cc, CmplxQR.cc, + CmplxQRP.cc, CmplxSCHUR.cc, CmplxSVD.cc, CollocWt.cc, DASPK.cc, + DASRT.cc, DASSL.cc, DiagArray2.cc, EIG.cc, LSODE.cc, + MArray-C.cc, MArray-ch.cc, MArray-d.cc, MArray-f.cc, + MArray-fC.cc, MArray-i.cc, MArray-s.cc, MArray.cc, MArray2.cc, + MArrayN.cc, MDiagArray2.cc, MSparse-C.cc, MSparse-d.cc, + MSparse.cc, MatrixType.cc, ODES.cc, Quad.cc, Range.cc, + Sparse-C.cc, Sparse-b.cc, Sparse-d.cc, Sparse.cc, + SparseCmplxCHOL.cc, SparseCmplxLU.cc, SparseCmplxQR.cc, + SparseQR.cc, SparsedbleCHOL.cc, SparsedbleLU.cc, base-lu.cc, + boolMatrix.cc, boolNDArray.cc, boolSparse.cc, chMatrix.cc, + chNDArray.cc, cmd-edit.cc, cmd-hist.cc, dColVector.cc, + dDiagMatrix.cc, dMatrix.cc, dNDArray.cc, dRowVector.cc, + dSparse.cc, data-conv.cc, dbleAEPBAL.cc, dbleCHOL.cc, + dbleGEPBAL.cc, dbleHESS.cc, dbleLU.cc, dbleQR.cc, dbleQRP.cc, + dbleSCHUR.cc, dbleSVD.cc, dir-ops.cc, eigs-base.cc, + fCColVector.cc, fCDiagMatrix.cc, fCMatrix.cc, fCNDArray.cc, + fCRowVector.cc, fCmplxAEPBAL.cc, fCmplxCHOL.cc, fCmplxGEPBAL.cc, + fCmplxHESS.cc, fCmplxLU.cc, fCmplxQR.cc, fCmplxQRP.cc, + fCmplxSCHUR.cc, fCmplxSVD.cc, fColVector.cc, fDiagMatrix.cc, + fEIG.cc, fMatrix.cc, fNDArray.cc, fRowVector.cc, file-ops.cc, + file-stat.cc, floatAEPBAL.cc, floatCHOL.cc, floatGEPBAL.cc, + floatHESS.cc, floatLU.cc, floatQR.cc, floatQRP.cc, + floatSCHUR.cc, floatSVD.cc, glob-match.cc, idx-vector.cc, + int16NDArray.cc, int32NDArray.cc, int64NDArray.cc, + int8NDArray.cc, intNDArray.cc, kpse.cc, lo-ieee.cc, + lo-mappers.cc, lo-specfun.cc, lo-sysdep.cc, lo-utils.cc, + mach-info.cc, mx-inlines.cc, oct-alloc.cc, oct-env.cc, + oct-fftw.cc, oct-group.cc, oct-inttypes.cc, oct-md5.cc, + oct-passwd.cc, oct-rand.cc, oct-shlib.cc, oct-sort.cc, + oct-spparms.cc, oct-syscalls.cc, oct-time.cc, oct-uname.cc, + pathsearch.cc, prog-args.cc, regex-match.cc, + sparse-base-chol.cc, sparse-base-lu.cc, sparse-dmsolve.cc, + sparse-sort.cc, sparse-util.cc, str-vec.cc, uint16NDArray.cc, + uint32NDArray.cc, uint64NDArray.cc, uint8NDArray.cc, + f2c-main.c, lo-cieee.c, lo-cutils.c, oct-getopt.c, + oct-rl-edit.c, oct-rl-hist.c, randgamma.c, randmtzig.c, + randpoisson.c, Array-util.h, Array.h, Array2.h, Array3.h, + ArrayN.h, CColVector.h, CDiagMatrix.h, CMatrix.h, CNDArray.h, + CRowVector.h, CSparse.h, CmplxAEPBAL.h, CmplxCHOL.h, + CmplxGEPBAL.h, CmplxHESS.h, CmplxLU.h, CmplxQR.h, CmplxQRP.h, + CmplxSCHUR.h, CmplxSVD.h, CollocWt.h, DAE.h, DAEFunc.h, DAERT.h, + DAERTFunc.h, DASPK.h, DASRT.h, DASSL.h, DiagArray2.h, EIG.h, + LSODE.h, MArray.h, MArray2.h, MArrayN.h, MDiagArray2.h, + MSparse-defs.h, MSparse.h, Matrix.h, MatrixType.h, ODE.h, + ODEFunc.h, ODES.h, ODESFunc.h, Quad.h, Range.h, + Sparse-op-defs.h, Sparse.h, SparseCmplxCHOL.h, SparseCmplxLU.h, + SparseCmplxQR.h, SparseQR.h, SparsedbleCHOL.h, SparsedbleLU.h, + base-dae.h, base-de.h, base-lu.h, base-min.h, boolMatrix.h, + boolNDArray.h, boolSparse.h, byte-swap.h, chMatrix.h, + chNDArray.h, cmd-edit.h, cmd-hist.h, dColVector.h, + dDiagMatrix.h, dMatrix.h, dNDArray.h, dRowVector.h, dSparse.h, + data-conv.h, dbleAEPBAL.h, dbleCHOL.h, dbleGEPBAL.h, dbleHESS.h, + dbleLU.h, dbleQR.h, dbleQRP.h, dbleSCHUR.h, dbleSVD.h, + dir-ops.h, fCColVector.h, fCDiagMatrix.h, fCMatrix.h, + fCNDArray.h, fCRowVector.h, fCmplxAEPBAL.h, fCmplxCHOL.h, + fCmplxGEPBAL.h, fCmplxHESS.h, fCmplxLU.h, fCmplxQR.h, + fCmplxQRP.h, fCmplxSCHUR.h, fCmplxSVD.h, fColVector.h, + fDiagMatrix.h, fEIG.h, fMatrix.h, fNDArray.h, fRowVector.h, + file-ops.h, file-stat.h, floatAEPBAL.h, floatCHOL.h, + floatGEPBAL.h, floatHESS.h, floatLU.h, floatQR.h, floatQRP.h, + floatSCHUR.h, floatSVD.h, functor.h, glob-match.h, idx-vector.h, + int16NDArray.h, int32NDArray.h, int64NDArray.h, int8NDArray.h, + intNDArray.h, kpse-xfns.h, lo-ieee.h, lo-mappers.h, lo-math.h, + lo-specfun.h, lo-sysdep.h, lo-traits.h, lo-utils.h, mach-info.h, + mx-base.h, mx-defs.h, mx-ext.h, mx-op-defs.h, oct-alloc.h, + oct-cmplx.h, oct-env.h, oct-fftw.h, oct-getopt.h, oct-group.h, + oct-inttypes.h, oct-md5.h, oct-passwd.h, oct-rand.h, + oct-rl-edit.h, oct-rl-hist.h, oct-shlib.h, oct-sort.h, + oct-spparms.h, oct-syscalls.h, oct-time.h, oct-uname.h, + pathlen.h, pathsearch.h, prog-args.h, randgamma.h, randmtzig.h, + randpoisson.h, regex-match.h, sparse-base-chol.h, + sparse-base-lu.h, sparse-sort.h, sparse-util.h, statdefs.h, + str-vec.h, sun-utils.h, sysdir.h, systime.h, syswait.h, + uint16NDArray.h, uint32NDArray.h, uint64NDArray.h, + uint8NDArray.h: Remove Emacs local-variables settings. + + 2010-01-20 Jaroslav Hajek + + * boolNDArray.cc (boolNDArray::cumsum): Sum directly in double to + avoid a copy. + + 2010-01-20 John W. Eaton + + * dim-vector.h: Style fixes. Remove Emacs local variables block. + Untabify. + + 2010-01-20 John W. Eaton + + * Makefile.am (PRIVATE_INCS): New variable. List oct-glob.h + here instead of in INCS. + (liboctave_la_SOURCES): Include $(PRIVATE_INCS) in the list. + + * glob-match.cc (glob_match::match, glob_match::glob): Now const. + Move definitions here from glob-match.h. + + 2010-01-20 Jaroslav Hajek + + * mx-inlines.cc (mx_inline_any_r, mx_inline_all_r): New helper + reductors. + (mx_inline_any, mx_inline_all): Call the here in row-wise reduction + with few enough columns. + + 2010-01-20 Jaroslav Hajek + + * lo-mappers.h (xmin (double, double), xmax (double, double), + xmin (float, float), xmax (float, float)): Inline definitions. + * lo-mappers.cc (xmin (double, double), xmax (double, double), + xmin (float, float), xmax (float, float)): Remove from here. + * mx-inlines.cc (mx_inline_xmin, mx_inline_xmax): Provide + specializations for real array-scalar and scalar-array cases. + + 2010-01-20 Jaroslav Hajek + + * oct-norm.cc (norm_accumulator_p::accum, norm_accumulator_mp::accum): + Call octave_quit here. + (higham_subp): Also here. + + 2010-01-20 Jaroslav Hajek + + * mx-op-defs.h (SND_MINMAX_FCN, NDS_MINMAX_FCN, NDND_MINMAX_FCN): + Simplify using mx_inlines machinery. + * dNDArray (min, max): Simplify. + * fNDArray (min, max): Simplify. + * CNDArray (min, max): Simplify. + * fCNDArray (min, max): Simplify. + + 2010-01-20 Jaroslav Hajek + + * Array.h: Substitute OCTAVE_QUIT -> octave_quit (). + * CMatrix.cc: Ditto. + * CNDArray.cc: Ditto. + * CSparse.cc: Ditto. + * CmplxGEPBAL.cc: Ditto. + * MArrayN.cc: Ditto. + * MSparse.cc: Ditto. + * Sparse-diag-op-defs.h: Ditto. + * Sparse-op-defs.h: Ditto. + * Sparse-perm-op-defs.h: Ditto. + * Sparse.cc: Ditto. + * Sparse.h: Ditto. + * SparseCmplxQR.cc: Ditto. + * SparseQR.cc: Ditto. + * boolSparse.cc: Ditto. + * bsxfun-defs.cc: Ditto. + * dMatrix.cc: Ditto. + * dNDArray.cc: Ditto. + * dSparse.cc: Ditto. + * dbleGEPBAL.cc: Ditto. + * fCMatrix.cc: Ditto. + * fCNDArray.cc: Ditto. + * fCmplxGEPBAL.cc: Ditto. + * fMatrix.cc: Ditto. + * fNDArray.cc: Ditto. + * file-ops.cc: Ditto. + * floatGEPBAL.cc: Ditto. + * lo-utils.cc: Ditto. + * mx-op-defs.h: Ditto. + * oct-fftw.cc: Ditto. + * oct-norm.cc: Ditto. + * oct-rand.cc: Ditto. + * sparse-dmsolve.cc: Ditto. + + 2010-01-20 Jaroslav Hajek + + * bsxfun-defs.cc (BSXFUN_STDOP_DEFS_MXLOOP): Fix reversed min/max + defs. + + 2010-01-20 John W. Eaton + + * glob-match.h: Update copyright. + + 2010-01-20 John W. Eaton + + * Makefile.am (INCS): Include oct-glob.h in the list. + (LIBOCTAVE_CXX_SOURCES): Include oct-glob.cc in the list. + * oct-glob.h, oct-glob.cc: New files. + * glob-match.cc: (glob_match::match): Move internals to oct-glob.cc. + (glob_match::glob_internal): Move internals to oct-glob.cc. + (single_match_exists): Move to oct-glob.cc. + (glob_match::opts_to_fnmatch_flags): New function. + * glob-match.h Include oct-glob.h. + (glob_match::glob): Call octave_glob to do the real work. + (glob_match::glob_internal): Delete decl. + (glob_match::match (const string_vector&)): Move here from + glob-match.cc. + (glob_match::match (const std::string&)): Call octave_fnmatch to + do the real work. + (glob_match::fnmatch_flags): Rename from flags. + (glob_match::opts_to_fnmatch_flags): New function. + (glob_match::glob_match): Use it. + + 2010-01-17 Jaroslav Hajek + + * CMatrix.cc (xgemm): Use octave_idx_type rather than int. + * fCMatrix.cc (xgemm): Ditto. + + 2010-01-16 Michael Goffioul + + * oct-time.cc: Avoid to include nonneeded headers from Win32 API, + especially winsock.h. Include unconditionally, as it is + now provided by gnulib, in order to get gettimeofday defined. + + 2010-01-15 Jaroslav Hajek + + * Array.cc (Array::insert): Rewrite using assign. + (Array::insert2, Array::insertN): Remove. + * Array.h: Update declarations. Add brief documentation. + + 2010-01-15 Jaroslav Hajek + + * Array-b.cc: Inline ascending and descending sort. + (do_bool_partition): New helper template function. + (octave_sort::sort): Provide specializations. + + 2010-01-14 Jaroslav Hajek + + * Array.cc (Array::insert (const Array&, const + Array&): Allow less dimensions than indices. + + 2010-01-14 Jaroslav Hajek + + * chNDArray.h: Declare relational bsxfun ops. + * chNDArray.cc: Define them. + + 2010-01-14 John W. Eaton + + * CMatrix.cc: Fix prototype for zherk. + * fCMatrix.cc: Fix prototype for cherk. + + 2010-01-14 John W. Eaton + + * oct-rl-edit.c (octave_rl_set_name): Save arg before setting + rl_terminal_name. + + 2010-01-13 John W. Eaton + + * idx-vector.cc (idx_vector::idx_scalar_rep::idx_scalar_rep (T x)): + Initialize dummy variable. + + 2010-01-13 Jaroslav Hajek + + * Array.cc (Array::compute_index): Generalize to the case of + unequal lengths. + + 2010-01-13 Jaroslav Hajek + + * dim-vector.h (dim_vector::chop_trailing_singletons): Only uniquify + if really needed. + * Array.h (Array::Array (T*, const dim_vector&)): Call + chop_trailing_singletons. + (Array::Array (const Array&, const dim_vector&, + octave_idx_type...)): Ditto. + (Array::Array (const dim_vector&)): Ditto. + (Array::Array (const dim_vector&, const T&)): Ditto. + (Array::chop_trailing_singletons): Deprecate. + * Array.cc (Array::Array(const Array&, const dim_vector&)): Ditto. + (Array::index (const Array&, ...)): Ditto. + (Array::permute): Don't call deprecate method here. + (Array::assign): Neither here. + + 2010-01-11 Rik + + * Makefile.am: Remove unnecessary use of + simple_move_if_change_rule to allow Make to update timestamps. + + 2010-01-08 Jaroslav Hajek + + * Array.h (Array::crefT): New helper typedef. + (Array::elem const, Array::xelem const, + Array::checkelem const, Array::operator () const): Return crefT. + (Array::range_error const): Remove overloads. + * Array.cc (Array::range_error const): Remove overloads. + + 2010-01-07 John W. Eaton + + * oct-time.cc (octave_time::stamp): Assume gettimeofday is + available and that it takes two arguments. + + 2010-01-07 Jaroslav Hajek + + * lo-utils.cc (octave_fgets (FILE *, bool&)): Add OCTAVE_QUIT at the + end. + + 2010-01-05 John W. Eaton + + * Makefile.am (AM_CPPFLAGS): Include @CPPFLAGS@ and -I../libgnu + in the list. + + 2009-12-30 Jaroslav Hajek + + * idx-vector.cc (idx_vector::maybe_reduce): Implement reduction rule + for subsequent ones () indices. + + 2009-12-28 John W. Eaton + + * file-ops.cc (fle_ops::mkdir_internal, + file_ops::mkfifo_internal): New private static functions. + * file-ops.h (file_ops::mkdir, file_ops::mkdir): Move + definitions here from file-ops.cc. Forward to X_internal functions. + + 2009-12-26 John W. Eaton + + * file-stat.cc (lstat): Delete replacement function. + (file_fstat::update_internal): Assume fstat is available. + + 2009-12-25 John W. Eaton + + * file-ops.cc (file_ops::mkdir): Assume we have an mkdir + function that takes two arguments. + * mkdir.c: Delete. + * Makefile.am (LIBOCTAVE_C_SOURCES): Remove mkdir.c from the list. + + 2009-12-25 John W. Eaton + + * oct-md5.cc (oct_md5_result_to_str): New function. + (oct_md5, oct_md5_file): Simplify using gnulib md5 functions and + oct_md5_result_to_str. + + * Makefile.am (INCS): Remove md5.h from the list. + (LIBOCTAVE_C_SOURCES): Remove md5.c from the list. + * md5.c, md5.h: Delete. + + 2009-12-19 Rik + + * Makefile.am: Eliminate TOPDIR variable in favor of built-in + automake variables of top_builddir and top_srcdir. + + 2009-12-17 John W. Eaton + + * glob-match.h, glob-match.cc (glob_match::glob_internal): + Rename from glob_match::glob and make private. + * glob-match.h (glob_match::glob): Forward to glob_internal. + + 2009-12-15 Jaroslav Hajek + + * Array.cc (Array::index (const idx_vector&)): Fix determining of + result dimensions. + + 2009-12-15 Jaroslav Hajek + + * Range.cc (Range::elem, Range::checkelem, Range::index): + New methods. + * Range.h: Declare them. + + 2009-12-15 Jaroslav Hajek + + * idx-vector.h (idx_vector::loop, idx_vector::bloop): Fix behavior for + masks. + + 2009-12-13 Rik + + * Makefile.am: Use DISTCLEANFILES rather than distclean-local rule. + Use PERL variable defined by autoconf rather than direct call. + Use simple_move_if_change rule to reduce useless compiles if + OPTS_INC have not changed. + + 2009-12-12 Jaroslav Hajek + + * oct-shlib.h: Remove stray declarations. + + 2009-12-11 John W. Eaton + + * oct-shlib.cc (octave_dlopen_shlib::octave_dlopen_shlib): + Print filename along with message from dlerror. + Reverse sense of test. + + 2009-12-09 Jaroslav Hajek + + * oct-shlib.h (octave_shlib): Rewrite. + * oct-shlib.cc (octave_shlib): Rewrite. + + 2009-12-09 John W. Eaton + + * oct-time.cc (octave_base_tm::strftime): Call nstrftime instead + of my_strftime. + + 2009-12-09 John W. Eaton + + * oct-time.cc: Include strftime.h. Don't provide decl for strftime. + (octave_base_tm::strftime): Call my_strftime instead of ::strftime. + * Makefile.am (AM_CPPFLAGS): Add -I$(top_srcdir)/libgnu to the list. + (LINK_DEPS): Add ../libgnu/libgnu.la to the list. + (LIBOCTAVE_C_SOURCES): Remove strftime.c from the list. + * strftime.c: Delete. + + 2009-12-08 Michael Goffioul + + * Array-d.cc (Array::is_sorted): Declare as OCTAVE_API. + * Array-f.cc (Array::is_sorted): Ditto. + * lo-sysdep.cc: Undef min and max after including windows.h + + 2009-12-05 Jaroslav Hajek + + * Array-d.cc (Array::is_sorted): Optimized specialization. + * Array-f.cc (Array::is_sorted): Ditto. + + 2009-12-05 Jaroslav Hajek + + * oct-sort.cc (lookup_binary): Remove. + (octave_sort::lookup (const T*, octave_idx_type, const T&, comp)): + Move code here. + (octave_sort::lookup (const T*, octave_idx_type, const T*, + octave_idx_type, octave_idx_type *, comp)): Remove offset parameter. + Use a simple sequence of lookups. + (octave_sort::lookup (const T*, octave_idx_type, const T*, + octave_idx_type, octave_idx_type *)): Update. + (octave_sort::lookupm, octave_sort::lookupb): Remove. + (octave_sort::lookup_sorted): New overloaded method. + + * Array.cc (Array::lookup (const Array&, sortmode)): Remove + linf & rinf params. Rewrite using is_sorted to check for sortedness, + call octave_sort::lookup_sorted to do the sorted merge. + (Array::lookupm, Array::lookupb): Remove. + (NO_INSTANTIATE_ARRAY_SORT): Update. + + 2009-12-05 Jaroslav Hajek + + * Array.cc (sortrows_comparator): Rename to safe_comparator. + (Array::is_sorted): Use it here. + * Array-d.cc: Update. + * Array-f.cc: Update. + * Array-C.cc: Update. + * Array-fC.cc: Update. + + 2009-12-03 John W. Eaton + + * Makefile.am (BUILT_NODISTFILES): New variable. + + 2009-12-01 Jaroslav Hajek + + * idx-vector.cc (idx_vector::idx_range_rep::unconvert, + idx_vector::idx_scalar_rep::unconvert, + idx_vector::idx_vector_rep::unconvert, + idx_vector::idx_mask_rep::unconvert): New methods. + (idx_vector::unconvert): Use them here. Add mask output. + * idx-vector.h: Update decls. + + 2009-11-28 Jaroslav Hajek + + * dim-vector.h (dim_vector::zero_by_zero): New method. + * idx-vector.h (idx_vector::idx_mask_rep::is_colon_equiv): Fix. + * Array.cc (Array::assign): Minor tweaks. Optimize + A = []; A(1:m,1:n,1:k) = X for all cases. Use a shallow copy + for all colon-equivalent indices. + + 2009-11-27 Jaroslav Hajek + + * idx-vector.h (idx_vector::index_class): New member: class_mask. + (idx_vector::idx_mask_rep): New class. + (idx_vector::idx_vector (bool)): Construct idx_mask_rep. + (idx_vector::unmask): New method decl. + * idx-vector.cc (idx_vector::idx_vector (const boolNDArray&)): + Construct idx_mask_rep conditionally. + (idx_vector::unmask): New method. + (idx_vector::unconvert): Make non-const. unmask when called on a mask + vector. + (idx_vector::is_cont_range): Check also for idx_mask_rep. + + 2009-11-27 Jaroslav Hajek + + * Array.cc (Array::nnz): New method. + * Array.h: Declare it. + * MArray.h (MArray::nnz): Remove. + * MArrayN.h (MArrayN::nnz): Remove. + * boolNDArray.h (boolNDArray::nnz): Remove. + + 2009-11-25 Jaroslav Hajek + + * dbleCHOL.cc (CHOL::init): Output LAPACK's info. Resize matrix if + nonzero. Use smarter copying. + * floatCHOL.cc (FloatCHOL::init): Ditto. + * CmplxCHOL.cc (ComplexCHOL::init): Ditto. + * fCmplxCHOL.cc (FloatComplexCHOL::init): Ditto. + + 2009-11-24 Jaroslav Hajek + + * MArrayN.cc (MArrayN::idx_add): New methods. + * MArrayN.h: Declare them. + * MArray.cc, MArray.h: Remove from here. + + 2009-11-19 Jaroslav Hajek + + * dim-vector.h (dim_vector::safe_numel): New method. + * Array.h (Array::Array (const dim_vector&), + Array::Array (const dim_vector&, const T&), + Array::Array (T *, const dim_vector&)): Use it here. + * Array.cc (Array::clear (const dim_vector&)): Also here. + (Array::get_size): Remove. + * Array2.h (Array2::get_size): Remove. + * Array3.h (Array3::get_size): Remove. + + 2009-11-19 Jaroslav Hajek + + * Array.cc (Array::clear (const dim_vector&)): Use get_size. + + 2009-11-19 Jaroslav Hajek + + * lo-mappers.cc (do_erfinv): New static function. + (erfinv (double), erfinv (float)): New mappers. + * lo-mappers.h: Declare them. + + 2009-11-18 David Grundberg + + * str-vec.cc (string_vector::list_in_columns): Avoid crash on + empty arguments from list_in_columns. + + 2009-11-18 Jaroslav Hajek + + * Sparse.h (read_sparse_matrix): Fix order of tests and reads. + + 2009-11-18 Jaroslav Hajek + + * mx-inlines.cc (mx_inline_any_negative, mx_inline_pow): New loops. + (DEFMXMAPPER2X): New macro. + * bsxfun-decl.h (BSXFUN_OP2_DECL): New macro. + * bsxfun-defs.cc (BSXFUN_OP2_DEF, BSXFUN_OP2_DEF_MXLOOP): New macros. + (do_bsxfun_op): Use OCTAVE_QUIT. + * dNDArray.cc (NDArray::all_integers (void)): New method. + (NDArray::any_element_is_negative): Use mx_inline_any_negative. + (bsxfun_pow (const NDArray&, const NDArray&), + bsxfun_pow (const ComplexNDArray&, const NDArray&)): New functions. + * dNDArray.h: Update. + * fNDArray.cc (FloatNDArray::all_integers (void)): New method. + (FloatNDArray::any_element_is_negative): Use mx_inline_any_negative. + (bsxfun_pow (const FloatNDArray&, const FloatNDArray&), + bsxfun_pow (const FloatComplexNDArray&, const FloatNDArray&)): + New functions. + * fNDArray.h: Update. + * CNDArray.cc (bsxfun_pow (const ComplexNDArray&, const + ComplexNDArray&)): New function. + * CNDArray.h: Update. + * fCNDArray.cc (bsxfun_pow (const FloatComplexNDArray&, const + FloatComplexNDArray&)): New function. + * fCNDArray.h: Update. + + 2009-11-13 Jaroslav Hajek + + * CNDArray.cc (ComplexNDArray::all_elements_are_real): + Use mx_inline_all_real. + * CMatrix.cc (ComplexMatrix::all_elements_are_real): Ditto. + * fCNDArray.cc (FloatComplexNDArray::all_elements_are_real): + Use mx_inline_all_real. + * fCMatrix.cc (FloatComplexMatrix::all_elements_are_real): Ditto. + * CDiagMatrix.cc (ComplexDiagMatrix::all_elements_are_real): Ditto. + * fCDiagMatrix.cc (FloatComplexDiagMatrix::all_elements_are_real): + Ditto. + * CSparse.cc (SparseComplexMatrix::all_elements_are_real): Ditto. + + 2009-11-17 Jaroslav Hajek + + * base-aepbal.h (permuting_vector): Fix lower part swapping. + + 2009-11-13 John W. Eaton + + * Makefile.am (liboctave_la_CPPFLAGS): Add @OCTAVE_DLL_DEFS@ to + the list of flags. + + 2009-11-13 Jaroslav Hajek + + * mx-inlines.cc (mx_inline_any_nan): Rewrite. + (mx_inline_all_real): New reduction loop. + + 2009-11-12 Jaroslav Hajek + + * lo-mappers.cc ( rc_acos, rc_acos, rc_acosh, rc_acosh, rc_asin, + rc_asin, rc_atanh, rc_atanh, rc_log, rc_log, rc_xlog2, rc_log2, + rc_log10, rc_log10, rc_sqrt, rc_sqrt): New mappers. + * lo-mappers.h: Declare them. + + * lo-specfun.cc (rc_lgamma, rc_lgamma, rc_log1p, rc_log1p): New + mappers. + * lo-specfun.h: Declare them. + * Array.h (Array::map): Unroll loop to reduce OCTAVE_QUIT checking. + Provide function-reference overloads. + + * MArray.h (MArray::map): Provide function-reference overloads. + * Array2.h (Array2::map): Ditto. + * MArray2.h (MArray2::map): Ditto. + + * Sparse.h (Sparse::map): Ditto. + * MSparse.h (MSparse::map): Ditto. + + * dNDArray.h (NDArray::map): Remove. + * dNDArray.cc (NDArray::map): Remove. + * fNDArray.h (FloatNDArray::map): Remove. + * fNDArray.cc (FloatNDArray::map): Remove. + * CNDArray.h (ComplexNDArray::map): Remove. + * CNDArray.cc (ComplexNDArray::map): Remove. + * fCNDArray.h (FloatComplexNDArray::map): Remove. + * fCNDArray.cc (FloatComplexNDArray::map): Remove. + + * dMatrix.h (Matrix::map): Remove. + * dMatrix.cc (Matrix::map): Remove. + * fMatrix.h (FloatMatrix::map): Remove. + * fMatrix.cc (FloatMatrix::map): Remove. + * CMatrix.h (ComplexMatrix::map): Remove. + * CMatrix.cc (ComplexMatrix::map): Remove. + * fCMatrix.h (FloatComplexMatrix::map): Remove. + * fCMatrix.cc (FloatComplexMatrix::map): Remove. + + * dRowVector.h (RowVector::map): Remove. + * dRowVector.cc (RowVector::map): Remove. + * fRowVector.h (FloatRowVector::map): Remove. + * fRowVector.cc (FloatRowVector::map): Remove. + * CRowVector.h (ComplexRowVector::map): Remove. + * CRowVector.cc (ComplexRowVector::map): Remove. + * fCRowVector.h (FloatComplexRowVector::map): Remove. + * fCRowVector.cc (FloatComplexRowVector::map): Remove. + + * dColVector.h (ColumnVector::map): Remove. + * dColVector.cc (ColumnVector::map): Remove. + * fColVector.h (FloatColumnVector::map): Remove. + * fColVector.cc (FloatColumnVector::map): Remove. + * CColVector.h (ComplexColumnVector::map): Remove. + * CColVector.cc (ComplexColumnVector::map): Remove. + * fCColVector.h (FloatComplexColumnVector::map): Remove. + * fCColVector.cc (FloatComplexColumnVector::map): Remove. + + * dSparse.h (SparseMatrix::map): Remove. + * dSparse.cc (SparseMatrix::map): Remove. + * CSparse.h (SparseComplexMatrix::map): Remove. + * CSparse.cc (SparseComplexMatrix::map): Remove. + + 2009-11-11 John W. Eaton + + * lo-ieee.cc (octave_ieee_init): Improve comment about systems + without IEEE floating point format. + + 2009-11-11 Jaroslav Hajek + + * mx-inlines.cc (mx_inline_map): New template loop. + (DEFMXMAPPER): New macro. + (DEFMXMAPPER2): Rename from DEFMXMAPPER. + (do_mx_unary_map): New applier. + (mx_inline_real, mx_inline_complex): New loops. + * dNDArray.cc (NDArray::abs, NDArray::isnan, NDArray::isinf, + NDArray::isfinite, real, imag): Use new constructs. + * fNDArray.cc (FloatNDArray::abs, FloatNDArray::isnan, + FloatNDArray::isinf, FloatNDArray::isfinite, real, imag): Ditto. + * CNDArray.cc (ComplexNDArray::abs, ComplexNDArray::isnan, + ComplexNDArray::isinf, ComplexNDArray::isfinite, conj): Use new + constructs. + * fCNDArray.cc (FloatComplexNDArray::abs, FloatComplexNDArray::isnan, + FloatComplexNDArray::isinf, FloatComplexNDArray::isfinite, conj): Use + new constructs. + + 2009-11-10 John W. Eaton + + * mx-ops, sparse-mx-ops, vx-ops, vx-ops: + Add comment about updating. + * Makefile.am, config-ops.sh: New files. + * Makefile.in: Delete. + + 2009-11-09 Jaroslav Hajek + + * dSparse.h (Sparse::max): Use Array. + * dSparse.cc: Update. + * CSparse.h (Sparse::max): Use Array. + * CSparse.cc: Update. + * dNDArray.h (NDArray::max, NDArray::min, NDArray::cummax, + NDArray::cummin, NDArray::diff): Use dim = -1 as default. + * fNDArray.h (FloatNDArray::max, FloatNDArray::min, FloatNDArray::cummax, + FloatNDArray::cummin, FloatNDArray::diff): Use dim = -1 as default. + * CNDArray.h (ComplexNDArray::max, ComplexNDArray::min, + ComplexNDArray::cummax, ComplexNDArray::cummin, ComplexNDArray::diff): + Use dim = -1 as default. + * fCNDArray.h (FloatComplexNDArray::max, FloatComplexNDArray::min, + FloatComplexNDArray::cummax, FloatComplexNDArray::cummin, + FloatComplexNDArray::diff): Use dim = -1 as default. + * intNDArray.h (intNDArray::max, intNDArray::min, intNDArray::cummax, + intNDArray::cummin, intNDArray::diff): Use dim = -1 as default. + + 2009-11-03 Jaroslav Hajek + + * oct-mem.h: Rename octave_ucopy -> copy_or_memcpy, + octave_fill -> fill_or_memset, octave_new -> no_ctor_new, + octave_delete -> no_ctor_delete. + * Array.h: Update. + * Array.cc: Update. + * idx-vector.h: Update. + * idx-vector.cc: Update. + + 2009-11-03 Jaroslav Hajek + + * oct-mem.h: New source. + * Makefile.in: Include it. + * Array.h (Array::ArrayRep::ArrayRep (...)): Use octave_new, + octave_ucopy and octave_fill. + (Array::ArrayRep::~ArrayRep): Use octave_delete. + (Array::coerce): Use octave_new. + * Array.cc (Array::fill, rec_resize_helper::do_resize_fill, + Array::resize_fill, rec_permute_helper::do_permute, + Array::delete_elements): Use octave_ucopy and octave_fill. + * idx-vector.h (index_vector::index, index_vector::assign): Use + octave_ucopy. + * idx-vector.cc (index_vector::copy_data): Ditto. + + 2009-11-03 Jaroslav Hajek + + * idx-vector.cc (idx_vector::maybe_reduce): Implement (i:k:end, :) + and (i:k:end, p:q) reductions. + + 2009-11-02 Jaroslav Hajek + + * mx-inlines.cc (twosum_accum): Remove FLOAT_TRUNCATE. + + 2009-10-28 John W. Eaton + + * PermMatrix.cc: Don't include error.h. + + 2009-10-27 David Bateman + + * SparsedbleLU.cc (SparseLU::SparseLU (const SparseMatrix&, + const Matrix&, bool), SparseLU::SparseLU (const SparseMatrix&, + const ColumnVector&, const Matrix&, boo, bool, double, bool, + bool)): Fix test for valid pivot tolerance. + * SparseCmplxLU.cc (SparseComplexLU::SparseComplexLU + (const SparseComplexMatrix&, const Matrix&, bool), + SparseComplexLU::SparseComplexLU (const SparseComplexMatrix&, + const ColumnVector&, const Matrix&, boo, bool, double, bool, + bool)): Ditto. + + 2009-10-23 Jaroslav Hajek + + * idx-vector.cc (idx_vector::idx_range_rep::idx_range_rep + (octave_idx_type, octave_idx_type, octave_idx_type)): + Improve checking. + + 2009-10-21 John W. Eaton + + * oct-time.h (octave_time::octave_time (time_t t, int us)): + New constructor. + (operator + (const octave_time&, const octave_time&)): New function. + + * file-stat.h (base_file_stat::time_resolution): New function. + + 2009-10-20 Jaroslav Hajek + + * bsxfun-decl.h, bsxfun-defs.cc: New sources. + * Makefile.in: Add them. + * dim-vector.h (dim_vector::compute_index, + dim_vector::increment_index): Fix. + * mx-inlines.cc (DEFMXMAPPER, DEFMXLOCALMAPPER): New macros. + (mx_inline_xmin, mx_inline_xmax): New loops. + (mx_inline_fun): Remove. + * oct-inttypes.h (xmin (const octave_int&, const octave_int&), + xmax (const octave_int&, const octave_int&)): + New inline functions. + + * CNDArray.cc: Define bsxfun operations. + * boolNDArray.cc: Ditto. + * dNDArray.cc: Ditto. + * fCNDArray.cc: Ditto. + * fNDArray.cc: Ditto. + * int16NDArray.cc: Ditto. + * int32NDArray.cc: Ditto. + * int64NDArray.cc: Ditto. + * int8NDArray.cc: Ditto. + * uint16NDArray.cc: Ditto. + * uint32NDArray.cc: Ditto. + * uint64NDArray.cc: Ditto. + * uint8NDArray.cc: Ditto. + + * CNDArray.h: Declare bsxfun operations. + * boolNDArray.h: Ditto. + * dNDArray.h: Ditto. + * fCNDArray.h: Ditto. + * fNDArray.h: Ditto. + * int16NDArray.h: Ditto. + * int32NDArray.h: Ditto. + * int64NDArray.h: Ditto. + * int8NDArray.h: Ditto. + * uint16NDArray.h: Ditto. + * uint32NDArray.h: Ditto. + * uint64NDArray.h: Ditto. + * uint8NDArray.h: Ditto. + + 2009-10-19 Jaroslav Hajek + + * dim-vector.h (dim_vector::compute_index, + dim_vector::increment_index, dim_vector::cumulative, + dim_vector::cum_compute_index): New methods. + + 2009-10-18 Carsten Clark + + * Makefile.in: Remove ArrayN.cc. + + 2009-10-18 Jaroslav Hajek + + * Makefile.in: Include base-qr.h and base-qr.cc. + + 2009-10-17 Jaroslav Hajek + + * dbleQR.cc: Initialize QR::raw, QR::economy and QR::std. + + 2009-10-16 Jaroslav Hajek + + * ArrayN.h: Remove everything, just #define ArrayN Array. + Warn if under gcc. + * ArrayN.cc: Remove. + * Array.cc (operator >>): New operator. + * Array.h: Declare it. + + * Array-C.cc: Remove traces of ArrayN. + * Array-b.cc: Ditto. + * Array-ch.cc: Ditto. + * Array-d.cc: Ditto. + * Array-f.cc: Ditto. + * Array-fC.cc: Ditto. + * CNDArray.cc: Ditto. + * CNDArray.h: Ditto. + * MArrayN.h: Ditto. + * boolNDArray.cc: Ditto. + * boolNDArray.h: Ditto. + * chNDArray.h: Ditto. + * dNDArray.cc: Ditto. + * dNDArray.h: Ditto. + * fCNDArray.cc: Ditto. + * fCNDArray.h: Ditto. + * fNDArray.cc: Ditto. + * fNDArray.h: Ditto. + * intNDArray.cc: Ditto. + * intNDArray.h: Ditto. + * lo-specfun.cc: Ditto. + * lo-specfun.h: Ditto. + + * mx-op-defs.h (DMS_BIN_OP, SDM_BIN_OP): Rewrite. + (DMS_BIN_OPS, SDM_BIN_OPS): Define dm*s and dm/s rather than dm+s and + dm-s which are rather useless. + * mx-ops: Update. + + 2009-10-16 Jaroslav Hajek + + * Array.cc (Array::column, Array::page, Array::linearize, + Array::linear_slice): New methods. + * Array.h: Declare them + * ArrayN.h: Forward them. + + 2009-10-14 Jaroslav Hajek + + * oct-sort.cc (octave_sort::nth_element): New overloaded method. + * oct-sort.h: Declare it. + * Array.cc (Array::nth_element): New method. + * Array.h: Declare it. + (Array::sort): Use int for dim argument. + * ArrayN.h (ArrayN::nth_element): Wrap. + (ArrayN::sort): Use int for dim argument. + + 2009-10-13 Jaroslav Hajek + + * lo-traits.h (equal_types, is_instance, subst_template_param): New + traits classes. + * mx-inlines.cc (op_dble_sum, twosum_accum): New helper funcs. + (mx_inline_dsum, mx_inline_xsum): New reduction loops. + * fNDArray.cc (FloatNDArray::dsum): New method. + * fNDArray.h: Declare it. + * fCNDArray.cc (FloatComplexNDArray::dsum): New method. + * fCNDArray.h: Declare it. + * dNDArray.cc (NDArray::xsum): New method. + * dNDArray.h: Declare it. + * CNDArray.cc (ComplexNDArray::xsum): New method. + * CNDArray.h: Declare it. + * intNDArray.cc (intNDArray::dsum): New method. + * intNDArray.h: Declare it. + + 2009-10-12 Jaroslav Hajek + + * base-qr.cc (base_qr::regular): New method. + * base-qr.h: Declare it. + * base-lu.cc (base_lu::regular): New method. + * base-lu.h: Declare it. + + 2009-10-12 Jaroslav Hajek + + * base-qr.h: New source. + * base-qr.cc: New source. + * dbleQR.h (QR): Rebase on base_qr. + * dbleQR.cc: Ditto. + * floatQR.h (QR): Rebase on base_qr. + * floatQR.cc: Ditto. + * CmplxQR.h (QR): Rebase on base_qr. + * CmplxQR.cc: Ditto. + * fCmplxQR.h (QR): Rebase on base_qr. + * fCmplxQR.cc: Ditto. + * dbleQRP.h (QR): Update. + * dbleQRP.cc: Ditto. + * floatQRP.h (QR): Update. + * floatQRP.cc: Ditto. + * CmplxQRP.h (QR): Update. + * CmplxQRP.cc: Ditto. + * fCmplxQRP.h (QR): Update. + * fCmplxQRP.cc: Ditto. + + 2009-10-08 Jaroslav Hajek + + * PermMatrix.cc (PermMatrix::eye): New method. + * PermMatrix.h: Declare it. + * dbleLU.cc (LU::update, LU::update_piv): New overloaded methods. + * dbleLU.h: Declare them. + * floatLU.cc (FloatLU::update, FloatLU::update_piv): New overloaded + methods. + * floatLU.h: Declare them. + * CmplxLU.cc (ComplexLU::update, ComplexLU::update_piv): New + overloaded methods. + * CmplxLU.h: Declare them. + * fCmplxLU.cc (FloatComplexLU::update, FloatComplexLU::update_piv): + New overloaded methods. + * fCmplxLU.h: Declare them. + + 2009-10-07 John W. Eaton + + * mx-inlines.cc (mx_inline_diff): Avoid uninitialized variable warning. + + 2009-10-06 Jaroslav Hajek + + * dDiagMatrix.cc (operator *(const DiagMatrix&, const DiagMatrix&)): + Rewrite. + * fDiagMatrix.cc (operator *(const FloatDiagMatrix&, const FloatDiagMatrix&)): + Rewrite. + * CDiagMatrix.cc (operator *(const ComplexDiagMatrix&, const ComplexDiagMatrix&)): + Rewrite. + * fCDiagMatrix.cc (operator *(const FloatComplexDiagMatrix&, const + FloatComplexDiagMatrix&)): + Rewrite. + * DiagArray2.h (DiagArray2::diag_length): New method. + * PermMatrix.h (PermMatrix::length): Make consistent with + DiagArray2::length. + + 2009-10-05 Jaroslav Hajek + + * base-lu.cc (base_lu::unpack): Unpack getp as well. + + 2009-10-05 Jaroslav Hajek + + * PermMatrix.cc (PermMatrix::determinant): Implement a (hopefully) + working algorithm. + + 2009-10-05 Jaroslav Hajek + + * dim-vector.h (operator ==): Include fast case. + * base-lu.cc (base_lu::packed, base_lu::unpack): New methods. + (base_lu::L, base_lu::U, base_lu::Y, base_lu::getp): Distinguish + packed vs. unpacked case. + * base-lu.h: Update decls. + (base_lu::l_fact): New member field. + + 2009-10-02 Jaroslav Hajek + + * lo-traits.h (strip_template_param): New trait class. + + 2009-10-01 Jaroslav Hajek + + * Array.cc (Array::permute): Fast case identity permutation. + + 2009-09-27 Jaroslav Hajek + + * oct-cmplx.h: Fix complex-real orderings. + + 2009-09-27 Jaroslav Hajek + + * dim-vector.h (dim_vector::redim): Rewrite. + * Array-util.cc (sub2ind): Allow single index case. + + 2009-09-26 Jaroslav Hajek + + * dMatrix.cc (xgemm): Use blas_trans_type to indicate transposes. + (operator *(const Matrix&, const Matrix&)): Update. + * fMatrix.cc (xgemm): Use blas_trans_type to indicate transposes. + (operator *(const FloatMatrix&, const FloatMatrix&)): Update. + * CMatrix.cc (xgemm): Use blas_trans_type to indicate transposes. + (operator *(const ComplexMatrix&, const ComplexMatrix&)): Update. + * fCMatrix.cc (xgemm): Use blas_trans_type to indicate transposes. + (operator *(const FloatComplexMatrix&, const FloatComplexMatrix&)): Update. + * dMatrix.h: Update decl. + * fMatrix.h: Update decl. + * CMatrix.h: Update decl. + * fCMatrix.h: Update decl. + + 2009-09-23 Jaroslav Hajek + + * CMatrix.cc (ComplexMatrix::ComplexMatrix (const Matrix&, const + Matrix&)): New constructor. + (operator * (Matrix, ComplexMatrix), operator * (ComplexMatrix, + Matrix)): Optimize. + * fCMatrix.cc (FloatComplexMatrix::FloatComplexMatrix (const FloatMatrix&, const + FloatMatrix&)): New constructor. + (operator * (FloatMatrix, FloatComplexMatrix), operator * (FloatComplexMatrix, + FloatMatrix)): Optimize. + + 2009-09-23 Jaroslav Hajek + + * dMatrix.cc (stack_complex_matrix, unstack_complex_matrix): New + static funcs. + (Matrix::solve (..., const ComplexMatrix&, ...)): Use the above funcs. + Improve forwarding. + * fMatrix.cc (stack_complex_matrix, unstack_complex_matrix): New + static funcs. + (FloatMatrix::solve (..., const FloatComplexMatrix&, ...)): Use the + above funcs. Improve forwarding. + + 2009-09-23 Jaroslav Hajek + + * mx-defs.h (blas_trans_type): New enum. + (get_blas_char): New inline func. + * dMatrix.cc (Matrix::utsolve, Matrix::ltsolve, Matrix::solve): + Support transt parameter. + * fMatrix.cc (FloatMatrix::utsolve, FloatMatrix::ltsolve, + FloatMatrix::solve): Ditto. + * CMatrix.cc (ComplexMatrix::utsolve, ComplexMatrix::ltsolve, + ComplexMatrix::solve): Ditto. + * fCMatrix.cc (FloatComplexMatrix::utsolve, + FloatComplexMatrix::ltsolve, FloatComplexMatrix::solve): Ditto. + * dMatrix.h, fMatrix.h, CMatrix.h, fCMatrix.h: Update. + + 2009-09-21 Jaroslav Hajek + + * mx-op-defs.h (VS_BIN_OP, SV_BIN_OP, VV_BIN_OP): Simplify. + + 2009-09-19 Jaroslav Hajek + + * dNDArray.h (NDArray::matrix_type): New typedef. + * fNDArray.h (FloatNDArray::matrix_type): New typedef. + * CNDArray.h (ComplexNDArray::matrix_type): New typedef. + * fCNDArray.h (FloatComplexNDArray::matrix_type): New typedef. + * boolNDArray.h (boolNDArray::matrix_type): New typedef. + * charNDArray.h (charNDArray::matrix_type): New typedef. + + * dMatrix.h (Matrix::column_vector_type, + Matrix::row_vector_type): New typedefs. + * fMatrix.h (FloatMatrix::column_vector_type, + FloatMatrix::row_vector_type): New typedefs. + * CMatrix.h (ComplexMatrix::column_vector_type, + ComplexMatrix::row_vector_type): New typedefs. + * fCMatrix.h (FloatComplexMatrix::column_vector_type, + FloatComplexMatrix::row_vector_type): New typedefs. + + 2009-09-18 John W. Eaton + + * mach-info.cc: Don't include oct-types.h. + + 2009-09-18 Jaroslav Hajek + + * Array.h (NoAlias): New template class. + * dRowVector.cc (linspace): Rewrite. + * fRowVector.cc (linspace): Rewrite. + * CRowVector.cc (linspace): Rewrite. + * fCRowVector.cc (linspace): Rewrite. + * dMatrix.cc (linspace): New method. + * dMatrix.h (linspace): Declare it. + * fMatrix.cc (linspace): New method. + * fMatrix.h (linspace): Declare it. + * CMatrix.cc (linspace): New method. + * CMatrix.h (linspace): Declare it. + * fCMatrix.cc (linspace): New method. + * fCMatrix.h (linspace): Declare it. + + 2009-09-17 John W. Eaton + + * oct-types.h.in: Delete. + * Makefile.in (BUILT_INCLUDES, DISTFILES): Remove oct-types.h.in + from the list. + (distclean, maintainer-clean): Don't remove oct-types.h + * DAEFunc.h, MatrixType.h, base-aepbal.h, dim-vector.h, + lo-specfun.h, lo-utils.h, mx-op-decl.h, oct-inttypes.h, + randgamma.h, randmtzig.h, randpoisson.h: + Don't include oct-types.h. + + 2009-09-16 Jaroslav Hajek + + * oct-rand.cc (octave_rand::do_matrix, do_nd_array, do_vector): + Use Array::clear rather than Array::resize. + + 2009-09-06 Jaroslav Hajek + + * dColVector.h (operator *(const Matrix&, const ColumnVector)): + Optimize. + * fColVector.h (operator *(const FloatMatrix&, const + FloatColumnVector)): Optimize. + * CColVector.h (operator *(const ComplexMatrix&, const + ComplexColumnVector)): Optimize. + * fCColVector.h (operator *(const FloatComplexMatrix&, const + FloatComplexColumnVector)): Optimize. + + 2009-09-04 Jaroslav Hajek + + * Array.cc (Array::clear (const dim_vector&)): new method. + * Array.h: Declare it. + (Array::clear (octave_idx_type)): New method. + (Array::clear (octave_idx_type, octave_idx_type)): New method. + + 2009-09-04 Jaroslav Hajek + + * mx-inlines.cc (DEFMXBOOLOPEQ): New macro. + (mx_inline_and2, mx_inline_or2): New loops. + + * MArray.h (MArray::MArray (const dim_vector&)): New constructor. + (MArray::MArray (const Array&)): Ensure column vector. + (MArray::resize): New method. + * DiagArray2.h (DiagArray2::DiagArray2 (const dim_vector&)): New + constructor. + * MDiagArray2.h (MDiagArray2::MDiagArray2 (const dim_vector&)): New + constructor. + * dColVector.h (ColumnVector::ColumnVector (const dim_vector&)): New + constructor. + * fColVector.h (FloatColumnVector::FloatColumnVector (const + dim_vector&)): New constructor. + * CColVector.h (ComplexColumnVector::ComplexColumnVector (const + dim_vector&)): New constructor. + * fCColVector.h (FloatComplexColumnVector::FloatComplexColumnVector + (const dim_vector&)): New constructor. + * dRowVector.h (RowVector::RowVector (const dim_vector&)): New + constructor. + * fRowVector.h (FloatRowVector::FloatRowVector (const dim_vector&)): + New constructor. + * CRowVector.h (ComplexRowVector::ComplexRowVector (const + dim_vector&)): New constructor. + * fCRowVector.h (FloatComplexRowVector::FloatComplexRowVector (const + dim_vector&)): New constructor. + + * CNDArray.cc (operator *= (const ComplexNDArray, double)): Simplify. + * fCNDArray.cc (operator *= (const FloatComplexNDArray, float)): Simplify. + + * MArray.cc + (operator += (MArray&, const T&)): Simplify. + (operator -= (MArray&, const T&)): Simplify. + (operator *= (MArray&, const T&)): Simplify. + (operator /= (MArray&, const T&)): Simplify. + (operator += (MArray&, const MArray&)): Simplify. + (operator -= (MArray&, const MArray&)): Simplify. + (product (MArray&, const MArray&)): Simplify. + (quotient (MArray&, const MArray&)): Simplify. + (MARRAY_AS_OP): Simplify. + (MARRAY_SA_OP): Simplify. + (MARRAY_AA_OP): Simplify. + (operator - (const MArray&)): Simplify. + + * MArray2.cc + (operator += (MArray2&, const T&)): Simplify. + (operator -= (MArray2&, const T&)): Simplify. + (operator *= (MArray2&, const T&)): Simplify. + (operator /= (MArray2&, const T&)): Simplify. + (operator += (MArray2&, const MArray&)): Simplify. + (operator -= (MArray2&, const MArray&)): Simplify. + (product (MArray2&, const MArray&)): Simplify. + (quotient (MArray2&, const MArray&)): Simplify. + (MARRAY_A2S_OP): Simplify. + (MARRAY_SA2_OP): Simplify. + (MARRAY_A2A2_OP): Simplify. + (operator - (const MArray2&)): Simplify. + + * MArrayN.cc + (operator += (MArrayN&, const T&)): Simplify. + (operator -= (MArrayN&, const T&)): Simplify. + (operator *= (MArrayN&, const T&)): Simplify. + (operator /= (MArrayN&, const T&)): Simplify. + (operator += (MArrayN&, const MArray&)): Simplify. + (operator -= (MArrayN&, const MArray&)): Simplify. + (product (MArrayN&, const MArray&)): Simplify. + (quotient (MArrayN&, const MArray&)): Simplify. + (MARRAY_NDS_OP): Simplify. + (MARRAY_SND_OP): Simplify. + (MARRAY_NDND_OP): Simplify. + (operator - (const MArrayN&)): Simplify. + + * MDiagArray2.cc + (operator += (MDiagArray2&, const MDiagArray2&)): Simplify. + (operator -= (MDiagArray2&, const MDiagArray2&)): Simplify. + (operator *= (MDiagArray2&, T)): Simplify. + (operator /= (MDiagArray2&, T)): Simplify. + (MARRAY_DAS_OP, MARRAY_SDA_OP, MARRAY_DADA_OP): Simplify. + * boolNDArray.cc (mx_el_and_assign, mx_el_or_assign): Simplify. + + * MArray-defs.h (DO_VS_OP, DO_SV_OP, DO_VV_OP, + DO_VS_OP2, DO_VV_OP2, NEGV): Remove. + + 2009-09-03 Jaroslav Hajek + + * mx-inlines.cc (DEFMXUNOPEQ): New macro. + (mx_inline_not2, mx_inline_uminus2): New loops. + * boolNDArray.cc (boolNDArray::invert): New method. + * boolNDArray.h: Declare it. + * MArrayN.cc (MArrayN::changesign): New method. + * MArrayN.h: Declare it. + * dNDArray.cc (NDArray::changesign): New method. + * dNDArray.h: Declare it. + * fNDArray.cc (FloatNDArray::changesign): New method. + * fNDArray.h: Declare it. + * CNDArray.cc (ComplexNDArray::changesign): New method. + * CNDArray.h: Declare it. + * fCNDArray.cc (FloatComplexNDArray::changesign): New method. + * fCNDArray.h: Declare it. + * intNDArray.cc (intNDArray::changesign): New method. + * intNDArray.h: Declare it. + + 2009-09-02 Jaroslav Hajek + + * oct-cmplx.h: Rewrite the comaprison ops. Use FLOAT_TRUNCATE. + + 2009-09-01 Jaroslav Hajek + + * oct-cmplx.h: Correct strict operators in macros. + + 2009-08-31 John W. Eaton + + * lo-ieee.cc (octave_ieee_init): Abort if floating point format + is not recognized as IEEE. + + 2009-08-27 John W. Eaton + + * str-vec.cc, str-vec.h (string_vector::string_vector (const + std::set&)): New constructor. + + 2009-08-27 Jaroslav Hajek + + * mx-inlines.cc (DEFCMPLXCMOP): Remove. + * oct-cmplx.h (operator <, operator >): Remove definitions. + (DEF_COMPLEXR_COMP): New macro. Instantiate for <, >, <=, >=. + * mx-op-defs.h (MM_CMP_OP, MS_CMP_OP, SM_CMP_OP, + NDND_CMP_OP, NDS_CMP_OP, SND_CMP_OP): Replace by one-liners. Remove + unused parameters. + (MM_CMP_OPS, MS_CMP_OPS, SM_CMP_OPS, NDND_CMP_OPS, NDS_CMP_OPS, + SND_CMP_OPS): Update. + (NDS_CMP_OP1, NDS_CMP_OPS1, NDS_CMP_OP2, NDS_CMP_OPS2, + SND_CMP_OP1, SND_CMP_OPS1, SND_CMP_OP2, SND_CMP_OPS2): Remove. + * mk-ops.awk: Simplify CMP_OPS branch. + * Sparse-op-defs.h (SPARSE_SMSM_CMP_OPS, SPARSE_SMS_CMP_OPS, + SPARSE_SSM_CMP_OPS, SPARSE_MSM_CMP_OPS, SPARSE_SMM_CMP_OPS): + Update. + + * CNDArray.cc: Update syntax. + * boolNDArray.cc: Ditto. + * chNDArray.cc: Ditto. + * dNDArray.cc: Ditto. + * fCNDArray.cc: Ditto. + * fNDArray.cc: Ditto. + + * int16NDArray.cc: Ditto. + * int32NDArray.cc: Ditto. + * int64NDArray.cc: Ditto. + * int8NDArray.cc: Ditto. + * uint16NDArray.cc: Ditto. + * uint32NDArray.cc: Ditto. + * uint64NDArray.cc: Ditto. + * uint8NDArray.cc: Ditto. + + * CMatrix.cc: Ditto. + * boolMatrix.cc: Ditto. + * chMatrix.cc: Ditto. + * dMatrix.cc: Ditto. + * fCMatrix.cc: Ditto. + * fMatrix.cc: Ditto. + + 2009-08-24 Jaroslav Hajek + + * MArray.cc (MArray::product_eq, MArray::quotient_eq): New + methods. + * MArray2.cc (MArray2::product_eq, MArray2::quotient_eq): Ditto. + * MArrayN.cc (MArrayN::product_eq, MArrayN::quotient_eq): Ditto. + * MArray-decl.h (MARRAY_OP_ASSIGN_DECLX): New macro. + (MARRAY_OP_ASSIGN_DECLS, MARRAY_OP_ASSIGN_FWD_DEFS): Include + product_eq and quotient_eq. + (MARRAY_FORWARD_DEFS): Use MARRAY_OP_ASSIGN_FWD_DEFS1. + (MDIAGARRAY2_OPS_FORWARD_DECLS): Don't instantiate + OP= operators for diag matrices. + (MDIAGARRAY2_FORWARD_DEFS): Ditto. + * MArray-defs.h (INSTANTIATE_MDIAGARRAY2_FRIENDS): Ditto. + + 2009-08-23 Jaroslav Hajek + + * Array.h (Array::make_unique, Array::~Array, Array::operator =): + Move here to allow inlining. + * Array.cc: Remove from here. + + 2009-08-20 Jaroslav Hajek + + * mx-inlines.cc (logical_value): New overloaded template. + (DEFMXBOOL_OP): Use it in definitions. + (mx_inline_not): Also use logical_value. + * mx-op-defs.h (ND_LOGICAL_NAN_CHECK, SC_LOGICAL_NAN_CHECK): Remove + (also from all macros). + + * CMatrix.cc (operator !): Simply call mx_inline_not. + * CNDArray.cc: Ditto. + * dMatrix.cc: Ditto. + * dNDArray.cc: Ditto. + * fCMatrix.cc: Ditto. + * fCNDArray.cc: Ditto. + * fMatrix.cc: Ditto. + * fNDArray.cc: Ditto. + + 2009-08-20 Jaroslav Hajek + + * dMatrix.cc (Matrix::operator!): Simplify & check for NaNs. + * fMatrix.cc (FloatMatrix::operator!): Ditto. + * CMatrix.cc (ComplexMatrix::operator!): Ditto. + * fCMatrix.cc (FloatComplexMatrix::operator!): Ditto. + * dNDArray.cc (NDArray::operator!): Ditto. + * fNDArray.cc (FloatNDArray::operator!): Ditto. + * CNDArray.cc (ComplexNDArray::operator!): Ditto. + * fCNDArray.cc (FloatComplexNDArray::operator!): Ditto. + + 2009-08-20 Jaroslav Hajek + + * mx-inlines.cc (mx_inline_add, mx_inline_sub, mx_inline_mul, + mx_inline_div, mx_inline_uminus, mx_inline_not, mx_inline_add2, + mx_inline_sub2, mx_inline_mul2, mx_inline_div2, mx_inline_iszero, + mx_inline_notzero, mx_inline_and, mx_inline_or, mx_inline_not_and, + mx_inline_not_or, mx_inline_and_not, mx_inline_or_not, + mx_inline_lt, mx_inline_le, mx_inline_gt, mx_inline_ge, + mx_inline_eq, mx_inline_ne): New templates. + (do_mx_unary_op, do_mm_binary_op, do_sm_binary_op, + do_ms_binary_op, do_mm_inplace_op,do_ms_inplace_op): + New templates. + + * mx-op-defs.h (ND_LOGICAL_NAN_CHECK, SC_LOGICAL_NAN_CHECK): + New macros. + (NDND_BIN_OP, NDS_BIN_OP, SND_BIN_OP): Simplify. + (MM_BIN_OP, MS_BIN_OP, MM_BIN_OP): Simplify. + (NDND_BOOL_OP, NDS_BOOL_OP, SND_BOOL_OP): Simplify. + (MM_BOOL_OP, MS_BOOL_OP, MM_BOOL_OP): Simplify. + (NDND_BOOL_OPS2, NDS_BOOL_OPS2, SND_BOOL_OPS2, + MM_BOOL_OPS2, MS_BOOL_OPS2, SM_BOOL_OPS2): Remove. + * mx-op-decl.h (NDND_BOOL_OPX_DECLS, NDS_BOOL_OPX_DECLS, + SND_BOOL_OPX_DECLS): New macros. + * mk-ops.awk: use _BOOL_OPS rather than _BOOL_OPS2. + + * boolMatrix.cc: Add missing bool op defs. + * boolMatrix.h: Add missing bool op decls. + + + * boolNDArray.cc: Remove unused arg to BOOL_OPS. + * CMatrix.cc: Ditto. + * CNDArray.cc: Ditto. + * ChangeLog: Ditto. + * chMatrix.cc: Ditto. + * chNDArray.cc: Ditto. + * dMatrix.cc: Ditto. + * dNDArray.cc: Ditto. + * fCMatrix.cc: Ditto. + * fCNDArray.cc: Ditto. + * fMatrix.cc: Ditto. + * fNDArray.cc: Ditto. + * int16NDArray.cc: Ditto. + * int32NDArray.cc: Ditto. + * int64NDArray.cc: Ditto. + * int8NDArray.cc: Ditto. + * uint16NDArray.cc: Ditto. + * uint32NDArray.cc: Ditto. + * uint64NDArray.cc: Ditto. + * uint8NDArray.cc: Ditto. + + * CColVector.cc: Update syntax where needed. + * CDiagMatrix.cc: Ditto. + * CMatrix.cc: Ditto. + * CRowVector.cc: Ditto. + * chMatrix.cc: Ditto. + * dColVector.cc: Ditto. + * dDiagMatrix.cc: Ditto. + * dMatrix.cc: Ditto. + * dRowVector.cc: Ditto. + * fCColVector.cc: Ditto. + * fCDiagMatrix.cc: Ditto. + * fCMatrix.cc: Ditto. + * fCRowVector.cc: Ditto. + * fColVector.cc: Ditto. + * fDiagMatrix.cc: Ditto. + * fMatrix.cc: Ditto. + * fRowVector.cc: Ditto. + + 2009-08-19 Jaroslav Hajek + + * Array-util.cc (zero_dims_inquire): Add matching ndims case. + + 2009-08-19 Jaroslav Hajek + + * MArrayN.cc (operator+=, operator-=): Test matching dimensions first. + * boolNDArray.cc (mx_el_and_assign, mx_el_or_assign): New functions. + * boolNDArray.h: Declare them. + + 2009-08-19 Jaroslav Hajek + + * Array.cc (Array::clear): New method. + * Array.h: Declare it. + * MArray-decl.h (MARRAY_OP_ASSIGN_DECLS1, MARRAY_OP_ASSIGN_FWD_DECLS1, + MARRAY_OP_ASSIGN_FRIENDS1, MARRAY_OP_ASSIGN_FWD_DEFS1): New macros. + (MARRAY_OPS_FORWARD_DECLS, MARRAY_OPS_FRIEND_DECLS): Use them. + * MArray-defs.h (MARRAY_OP_ASSIGN_DEFS1): New macro. + (INSTANTIATE_MARRAY_FRIENDS): Use it. + (INSTANTIATE_MARRAY2_FRIENDS): Use it. + (INSTANTIATE_MARRAYN_FRIENDS): Use it. + * MArray.cc (operator+=, operator-=): + Operate out-of-place when this is shared copy. + (operator*=, operator/=): New operator overloads. + * MArray2.cc: Ditto. + * MArrayN.cc: Ditto. + * CNDArray.cc (operator *= (ComplexNDArray&, double), + operator /= (ComplexNDArray&, double)): New operators. + * CNDArray.h: Declare them. + * fCNDArray.cc (operator *= (FloatComplexNDArray&, double), + operator /= (FloatComplexNDArray&, double)): New operators. + * fCNDArray.h: Declare them. + + 2009-08-17 John W. Eaton + + * Makefile.in (LINK_DEPS): List LIBS last. + + 2009-08-16 Jaroslav Hajek + + * dMatrix.cc, fMatrix.cc, CMatrix.cc, fCMatrix.cc: Add more tests. + * CMatrix.cc (xgemm): Fix vector * matrix case. + * fCMatrix.cc (xgemm): Ditto. + + 2009-08-16 Jaroslav Hajek + + * fMatrix.cc, fCMatrix.cc: Make tests use single precision. + + 2009-08-16 Jaroslav Hajek + + * CMatrix.cc (xgemm): Fix typo. Add test. + * fCMatrix.cc (xgemm): Ditto. + + 2009-08-14 John W. Eaton + + * Makefile.in (LINK_DEPS): Include BLAS_LIBS in the list. + + 2009-08-13 John W. Eaton + + * CMatrix.cc, CNDArray.cc, dMatrix.cc, dNDArray.cc, fCMatrix.cc, + fCNDArray.cc, fMatrix.cc, fNDARray.cc, oct-fftw.cc, oct-fftw.h: + Update for new FFTW defines. + + * Makefile.in: Add library-specific CPPFLAGS and LDFLAGS variables + to CPPFLAGS and LDFLAGS for files that use sparse matrices or fftw. + + 2009-08-12 Jaroslav Hajek + + * Makefile.in: Include LDFLAGS when linking shared executable. + + 2009-08-11 John W. Eaton + + * oct-fftw.h, oct-fftw.cc (octave_fftw_planner): Convert to singleton. + (octave_float_fft_planner): Likewise. + + 2009-08-11 John W. Eaton + + * Makefile.in (LINK_DEPS): Use READLINE_LIBS instead of + LIBREADLINE. Also link with TERM_LIBS and DL_LIBS. + + 2009-08-11 Jaroslav Hajek + + * mx-inlines.cc (mx_inline_diff): New overloaded template + function. + (get_extent_triplet): Use dim_vector::first_non_singleton. + (do_mx_diff_op): New template function. + * dNDArray.cc (NDArray::diff): New method. + * dNDArray.h: Declare it. + * fNDArray.cc (FloatNDArray::diff): New method. + * fNDArray.h: Declare it. + * CNDArray.cc (ComplexNDArray::diff): New method. + * CNDArray.h: Declare it. + * fCNDArray.cc (FloatComplexNDArray::diff): New method. + * fCNDArray.h: Declare it. + * intNDArray.cc (intNDArray::diff): New method. + * intNDArray.h: Declare it. + + 2009-08-10 Jaroslav Hajek + + * dim-vector.h (dim_vector::first_non_singleton): New method. + + 2009-08-06 Jaroslav Hajek + + * dim-vector.h (dim_vector): Rewrite. Use single-alloc implementation + aka GCC's basic_string class. + * Array.cc: Use dim_vector::alloc where fitting. + * Array-util.cc: Ditto. + + 2009-08-05 John W. Eaton + + * oct-shlib.cc (octave_shl_load_shlib::open): Pass BIND_IMMEDIATE, + not BIND_DEFERRED to shl_load. + (octave_dlopen_shlib::open): Don't pass RTLD_GLOBAL to dlopen. + + 2009-08-05 John W. Eaton + + * Makefile.in (LINK_DEPS): Omit $(BLAS_LIBS) from the list. + Include $(RLD_FLAG) in the list. + + 2009-08-05 John W. Eaton + + * Makefile.in (LINK_DEPS): Include $(PTHREAD_LIBS) in the list. + + 2009-08-04 Kristian Rumberg + + * cmd-edit.cc (gnu_readline::do_get_line_buffer, + default_command_editor::do_get_line_buffer): New functions. + (command_editor::get_line_buffer): New function. + * cmd-edit.h (command_editor::get_line_buffer): Provide decls. + (command_editor::do_get_line_buffer): New pure virtual function. + + 2009-07-31 Jaroslav Hajek + + * idx-vector.h (idx_vector::is_range): New method. + (idx_vector::copy_data, idx_vector::unconvert): New method decls. + * idx-vector.cc (idx_vector::copy_data, idx_vector::unconvert): New + methods. + * Array-utils.cc (sub2ind, ind2sub): New functions. + + 2009-07-29 John W. Eaton + + * fMatrix.cc (operator >>): Use template function to read value. + * fNDArray.cc (operator >>): Likeise. + * fCMatrix.cc (operator >>): Use template function to read value. + * fCNDArray.cc (operator >>): Likeise. + * dMatrix.cc (operator >>): Use template function to read value. + * dNDArray.cc (operator >>): Likeise. + * CMatrix.cc (operator >>): Use template function to read value. + * CNDArray.cc (operator >>): Likeise. + + * lo-utils.cc, lo-utils.h (octave_read_value): New template + (octave_read_value, octave_read_value): + Provide specializations. + (octave_read_double, octave_read_complex, octave_read_float, + octave_rread_float_complex): Define in terms of template functions. + * Sparse.h (read_sparse_matrix): New template function. + * dSparse.cc (operator >>): Call read_sparse_matrix. + * CSparse.cc (operator >>): Likewise. + * boolSparse.cc (operator >>): Likewise. + * sparse-util.cc, sparse-util.h (sparse_indices_ok): New function. + * Sparse.cc (Sparse::indices_ok, Sparse::SparseRep::indices_ok): + New member functions. + + 2009-07-20 John W. Eaton + + * lo-ieee.cc (octave_ieee_init) [__NetBSD__]: Call nan to + initialize Octave_NaN and nanf, to initialize Octave_Float_NaN. + + 2009-07-11 John W. Eaton + + * file-ops.cc (file_ops::symlink, file_ops::readlink): + Don't use incorrectly sized OCTAVE_LOCAL_BUFFER. + + 2009-07-08 John W. Eaton + + * dim-vector.h (dim_vector::dim_vector_rep::dim_vector_rep + (octave_idx_type, const dim_vector_rep *, int)): + Enforce 2-d objects here. + (dim_vector::dim_vector_rep::dim_vector_rep): Simply copy object. + (dim_vector::resize): Allow N < 2. + + 2009-07-03 Jaroslav Hajek + + * Sparse-op-defs.h (SPARSE_ALL_OP): Fix typo. + * dSparse.cc (SparseMatrix::prod): Ditto. + * CSparse.cc (ComplexSparseMatrix::prod): Ditto. + + 2009-07-02 Jaroslav Hajek + + * Sparse-diag-op-defs.h (inner_do_add_sm_dm): Rewrite to ensure + ordering of row indices. + + 2009-06-30 Jaroslav Hajek + + * oct-sort.cc (octave_sort::lookupb): Fix typo. + + 2009-06-29 Jaroslav Hajek + + * oct-sort.cc (octave_sort::lookup_merge): Delete. + (octave_sort::lookup, + octave_sort::lookupm, + octave_sort::lookupb): Rewrite. + + 2009-06-26 Michael Goffioul + + * pathsearch.h (class dir_path::static_members): Decorate with + OCTAVE_API. + + 2009-06-26 Jaroslav Hajek + + * oct-sort.cc (octave_sort::lookup_merge): Slightly speed-up + the merge case. + + 2009-06-26 Jaroslav Hajek + + * oct-sort.cc (octave_sort::lookup_merge): Fix lower-part + recursion. + + 2009-06-24 Alexander Barth + + * eigs-base.cc (EigsRealSymmetricMatrix, + EigsRealSymmetricMatrixShift, EigsRealSymmetricFunc, + EigsRealNonSymmetricMatrix, EigsRealNonSymmetricMatrixShift, + EigsRealNonSymmetricFunc, EigsComplexNonSymmetricMatrix, + EigsComplexNonSymmetricMatrixShift, EigsComplexNonSymmetricFunc): + Use octave_idx_type for parameters of type LOGICAL in ARPACK. + + 2009-06-22 Jaroslav Hajek + + * chMatrix.cc (charMatrix::charMatrix (const string_vector&)): + Optimize w.r.t. COW of std::string. + + 2009-06-18 Jaroslav Hajek + + * oct-sort.cc (lookup_impl): New helper inline function. + (octave_sort::lookup_merge): New private template method. + (octave_sort::lookup): Rewrite. + (octave_sort::lookupm): use lookup_impl. + (octave_sort::lookupb): use lookup_impl. + (out_of_range_pred, out_of_range): Remove. + + 2009-06-18 Jaroslav Hajek + + * dMatrix.cc (xgemm): Replace resize() with uninitialized allocations + where appropriate. + * fMatrix.cc (xgemm): Ditto. + * CMatrix.cc (xgemm): Ditto. + * fCMatrix.cc (xgemm): Ditto. + + 2009-06-12 Jaroslav Hajek + + * oct-sort.cc (octave_sort::lookupm, octave_sort::lookupb): New + overloaded methods. + * oct-sort.h: Declare them. + * Array.cc (Array::lookupm, Array::lookupb): New methods. + * Array.h: Declare them. + + 2009-06-09 Jaroslav Hajek + + * cmd-edit.cc (command_editor::force_default_editor): New static + method. + * cmd-edit.h: Declare it. + + 2009-06-09 Jaroslav Hajek + + * lo-mappers.cc (xlog2 (const Complex&, int&), xlog2 (const + FloatComplex&, int&)): Use more robust expression. + + 2009-06-07 Jaroslav Hajek + + * Array.cc (Array::find): Avoid allocating excessive memory. Fix + order for backward searches. + + 2009-06-02 Jaroslav Hajek + + * Array-C.cc (class DiagArray2::Proxy): Only explicitly + instantiate DiagArray2::Proxy on MSVC. + * Array-d.cc (class DiagArray2::Proxy): Ditto. + * Array-f.cc (class DiagArray2::Proxy): Ditto. + * Array-fC.cc (class DiagArray2::Proxy): Ditto. + + 2009-05-26 John W. Eaton + + * pathsearch.h (dir_path::path_sep_char (char), + dir_path::static_members::path_sep_char (char)): New functions. + + 2009-05-21 Michael Goffioul + + * Array-C.cc (class DiagArray2::Proxy): Tag with OCTAVE_API. + * Array-d.cc (class DiagArray2::Proxy): Ditto. + * Array-f.cc (class DiagArray2::Proxy): Ditto. + * Array-fC.cc (class DiagArray2::Proxy): Ditto. + * Array.cc (class octave_sort): Ditto. + * CColVector.h (conj, operator*, operator>>, operator<<): Ditto. + * CDiagMatrix.h (class ComplexDiagMatrix, conj, operator*): Ditto. + * CMatrix.h (conj): Ditto. + * CNDArray.h (conj): Ditto. + * PermMatrix.h (class PermMatrix, operator*): Ditto. + * dDiagMatrix.h (class DiagMatrix): Ditto. + * fCColVector.h (conj, operator*, operator>>, operator<<): Ditto. + * fCDiagMatrix.h (class FloatComplexDiagMatrix, conj, operator*): + Ditto. + * fCMatrix.h (conj): Ditto. + * fCNDArray.h (conj): Ditto. + * fDiagMatrix.h (operator*): Ditto. + * oct-locbuf.h (octave_chunk_buffer::octave_chunk_buffer, + octave_chunk_buffer::~octave_chunk_buffer): Ditto. + * oct-inttypes.cc (octave_int_cmp_op::emulate_op): Ditto. + * DET.h (class base_det): Remove OCTAVE_API (cannot be applied on + templates). + * oct-inttypes.cc (octave_int_cmp_op::emulate_op): Ditto. + + * CmplxQR.cc (ComplexQR::insert_col, ComplexQR::delete_col): Copy + volatile variable to avoid MSVC compilation error (cannot pass + volatile variable as const& argument). + * dbleQR.cc (QR::insert_col, QR::delete_col): Ditto. + * fCmplxQR.cc (FloatComplexQR::insert_col, + FloatComplexQR::delete_col): Ditto. + * floatQR.cc (FloatQR::insert_col, FloatQR::delete_col): Ditto. + + * oct-mutex.cc: Exclude pthread.h inclusion under Win32. + + * base-aepbal.h (base_aepbal::operator=): Add missing return + statement. + + 2009-05-20 Jaroslav Hajek + + * eigs-base.cc ( + EigsRealSymmetricMatrix, + EigsRealSymmetricMatrixShift, + EigsRealSymmetricFunc, + EigsRealNonSymmetricMatrix, + EigsRealNonSymmetricMatrixShift, + EigsRealNonSymmetricFunc, + EigsComplexNonSymmetricMatrix, + EigsComplexNonSymmetricMatrixShift, + EigsComplexNonSymmetricFunc): Update tests. + + 2009-05-21 Jaroslav Hajek + + * CMatrix.cc + (ComplexMatrix::all, ComplexMatrix::any, ComplexMatrix::cumprod, + ComplexMatrix::cumsum, ComplexMatrix::prod, ComplexMatrix::sum, + ComplexMatrix::sumsq): Use explicit template qualifications + to workaround bugs in Intel C++ and MSVC++ compilers. + * CNDArray.cc + (ComplexNDArray::all, ComplexNDArray::any, ComplexNDArray::cumprod, + ComplexNDArray::cumsum, ComplexNDArray::prod, ComplexNDArray::sum, + ComplexNDArray::sumsq): Ditto. + * boolMatrix.cc + (boolMatrix::all, boolMatrix::any): Ditto. + * boolNDArray.cc + (boolNDArray::all, boolNDArray::any): Ditto. + * chMatrix.cc + (charMatrix::all, charMatrix::any): Ditto. + * chNDArray.cc + (charNDArray::all, charNDArray::any): Ditto. + * dMatrix.cc + (Matrix::all, Matrix::any, Matrix::cumprod, + Matrix::cumsum, Matrix::prod, Matrix::sum, + Matrix::sumsq): Ditto. + * dNDArray.cc + (NDArray::all, NDArray::any, NDArray::cumprod, + NDArray::cumsum, NDArray::prod, NDArray::sum, + NDArray::sumsq): Ditto. + * fCMatrix.cc + (FloatComplexMatrix::all, FloatComplexMatrix::any, FloatComplexMatrix::cumprod, + FloatComplexMatrix::cumsum, FloatComplexMatrix::prod, FloatComplexMatrix::sum, + FloatComplexMatrix::sumsq): Ditto. + * fCNDArray.cc + (FloatComplexNDArray::all, FloatComplexNDArray::any, FloatComplexNDArray::cumprod, + FloatComplexNDArray::cumsum, FloatComplexNDArray::prod, FloatComplexNDArray::sum, + FloatComplexNDArray::sumsq): Ditto. + * fMatrix.cc + (FloatMatrix::all, FloatMatrix::any, FloatMatrix::cumprod, + FloatMatrix::cumsum, FloatMatrix::prod, FloatMatrix::sum, + FloatMatrix::sumsq): Ditto. + * fNDArray.cc + (FloatNDArray::all, FloatNDArray::any, FloatNDArray::cumprod, + FloatNDArray::cumsum, FloatNDArray::prod, FloatNDArray::sum, + FloatNDArray::sumsq): Ditto. + * intNDArray.cc + (intNDArray::all, intNDArray::any, + intNDArray::cumsum, intNDArray::sum): Ditto. + + 2009-05-20 Jaroslav Hajek + + * Makefile.in: Remove reference to ArrayN-idx.h. + + 2009-05-20 Jaroslav Hajek + + * Array-voidp.cc: New source. + * Array.cc (NO_INSTANTIATE_ARRAY_SORT): const T& -> T const & + * Makefile.in: Include it. + + 2009-05-15 Jaroslav Hajek + + * Array.cc (Array::instantiation_guard): New function + (INSTANTIATE_ARRAY): Always override it here. + * Array.h: Declare it. + + 2009-05-15 Jaroslav Hajek + + * ArrayN-idx.h: Remove file. + * ArrayN.cc: Don't include it. + * MArrayN.cc: Dtto. + + 2009-05-09 Jaroslav Hajek + + * Array-util.cc (zero_dims_inquire): Move j++ out of branch. + + 2009-05-07 Marco Atzeri + + * Makefile.in: (SHLPRE): Rename from SHLLIBPRE. + + 2009-05-05 Robert T. Short + + * file-ops.h (file_ops::tail) New function. + + 2009-05-05 Carsten Clark + + * Quad.cc (user_function): Use access_double and assign_double on + SPARC only, not on all Sun systems. + * sun-utils.h: Likewise, define these functions on SPARC only. + + 2009-05-05 Jaroslav Hajek + + * Sparse.cc (assign1): Fix an old indexing bug. + + 2009-05-04 Carsten Clark + + * Quad.cc (float_user_function): Remove Sun/GCC special case. + + 2009-04-16 Jaroslav Hajek + + * idx-vector.cc (idx_vector::idx_range_rep::idx_range_rep (const + Range&)): Check for positive integer indices. Unify gripes. + + 2009-04-15 Jaroslav Hajek + + * Array.cc (rec_permute_helper::blk_trans): Declare as static. + (Array::transpose): Reuse it. + + 2009-04-04 Jaroslav Hajek + + * Array.cc (Array::make_unique): Don't economize when unique. + (Array::resize_fill (octave_idx_type, const T&)): Optimize push & + pop operations. + (Array::delete_elements (const idx_vector&)): Do pop operation + using resize. + + 2009-03-29 Jaroslav Hajek + + * Array.cc (Array::assign): Remove redundant checks after invalid + resize. + + 2009-03-26 Jaroslav Hajek + + * Array.cc (Array::find): Reshape result for Matlab compatibility. + * Array.h (Array): Add friend template declaration. + + 2009-03-27 Jaroslav Hajek + + * idx-vector.cc (idx_vector::idx_vector_rep::idx_vector_rep (const + Array&): Use more M*b-compatible behaviour. + + 2009-03-26 Jaroslav Hajek + + * dim-vector.h (dim_vector::numel): Add optional argument, simplify. + + 2009-03-26 Jaroslav Hajek + + * Array.h (Array::dims): Return a const reference. + (Array::is_vector): New method. + + 2009-03-26 Jaroslav Hajek + + * Array.cc (Array::find): New method. + * Array.h: Declare it. + + 2009-03-25 John W. Eaton + + * EIG.cc (EIG::init (const Matrix&, bool), + EIG::init (const Matrix&, const Matrix&, bool)): + Avoid volatile declaration for tmp variable. + + * Makefile.in (MATRIX_INC): Add Sparse-diag-op-defs.h and + Sparse-perm-op-defs.h to the list. + + 2009-03-25 Jaroslav Hajek + + * oct-inttypes.cc (INT_DOUBLE_BINOP_DECL (*, uint64), + INT_DOUBLE_BINOP_DECL (*, int64)): x -> y where appropriate. + + 2009-03-25 Jaroslav Hajek + + * Array.cc (rec_permute_helper::use_blk): New field. + (rec_permute_helper::blk_trans): New method. + (rec_permute_helper::rec_permute_helper): Use smart reductions, + detect possibility of using blocked transpose. + (rec_permute_helper::do_permute): Use blocked transpose if possible. + + 2009-03-23 Jaroslav Hajek + + * idx-vector.cc (convert_index(double,...)): Simplify. + + 2009-03-21 Jaroslav Hajek + + * Array-d.cc: lo_ieee_isnan -> xisnan. + * Array-f.cc: Ditto. + * oct-inttypes.cc: Ditto. + * oct-inttypes.h: Ditto. + * CDiagMatrix.cc: Add missing include. + * fCDiagMatrix.cc: Ditto. + + 2009-03-20 Jaroslav Hajek + + * CColVector.cc, CMatrix.cc, CNDArray.cc, CRowVector.cc, CSparse.cc, + boolSparse.cc, dColVector.cc, dMatrix.cc, dNDArray.cc, dRowVector.cc, + dSparse.cc, fCColVector.cc, fCMatrix.cc, fCNDArray.cc, fCRowVector.cc, + fColVector.cc, fMatrix.cc, fNDArray.cc, fRowVector.cc, intNDArray.cc: + Allow empty arrays in stream input operators. + + 2009-03-20 Jaroslav Hajek + + * Array.h (Array::fastmap): New method. + * dNDArray.cc (NDArray::isnan, NDArray::isinf, NDArray::isfinite): + New methods. + * dNDArray.h: Declare them. + * fNDArray.cc (FloatNDArray::isnan, FloatNDArray::isinf, + FloatNDArray::isfinite): New methods. + * fNDArray.h: Declare them. + * CNDArray.cc (ComplexNDArray::isnan, ComplexNDArray::isinf, + ComplexNDArray::isfinite): New methods. + * CNDArray.h: Declare them. + * fCNDArray.cc (FloatComplexNDArray::isnan, FloatComplexNDArray::isinf, + FloatComplexNDArray::isfinite): New methods. + * fCNDArray.h: Declare them. + * lo-mappers.h (xisnan, xisinf, xfinite): If possible, use definitions + from . + + 2009-03-18 Jaroslav Hajek + + * oct-norm.cc (get_eps): Remove that hack. + (higham): Use std::numeric_limits instead. + Include OCTAVE_QUIT. + + 2009-03-16 Jason Riedy + + * Sparse.cc (transpose): Eliminate the workspace by computing in + retval.xcidx. + * CSparse.cc (hermitian): Eliminate the workspace by computing in + retval.xcidx. + + 2009-03-14 Jaroslav Hajek + + * mx-op-decl.h (NDS_BOOL_OP_DECLS, SND_BOOL_OP_DECLS, NDND_BOOL_OP_DECLS): Support compound binary ops. + * mx-op-defs.h (NDS_BOOL_OPS, SND_BOOL_OPS, NDND_BOOL_OPS): Ditto. Optimize. + * mx-op-defs.h (NDS_CMP_OP, SND_CMP_OP, NDND_CMP_OP): Optimize. + + 2009-03-14 Jaroslav Hajek + + * fNDArray.h (FloatMatrix::matrix_value): Fix return type. + * dNDArray.cc (Matrix::matrix_value): Simplify. + * fNDArray.cc (FloatMatrix::matrix_value): Simplify. + * CNDArray.cc (ComplexMatrix::matrix_value): Simplify. + * fCNDArray.cc (FloatComplexMatrix::matrix_value): Simplify. + + 2009-03-13 Jaroslav Hajek + + * Range.h (Range::Range (double, double, octave_idx_type)): Remove + constructor body. + * Range.cc: Move it here. Check for invalid range op results. + (all operators): Validate cache for invalid range op results. + * idx-vector.h (idx_vector::index): Optimize zero-step range case. + * idx-vector.cc (idx_vector::maybe_reduce): Always reduce colon in + singleton dimension. + + 2009-03-10 Jason Riedy + + * sparse-base-lu.cc (Pr_mat): New member function. Return the row + permutation as a PermMatrix. + (Pc_mat): New member function. Return the col permutation as a + PermMatrix. + + * sparse-base-lu.h (sparse_base_lu): Declare Pc_mat and Pr_mat + member functions. + + 2009-03-09 Jason Riedy + + * Sparse-diag-op-defs.h (octave_impl::inner_do_add_sm_dm): New + template function. Implementation for adding sparse and diagonal + matrices. Takes two functional arguments, opa and opd, to + generate both subtraction variants. + (octave_impl::do_commutative_add_dm_sm): New template function. + Ensure A+D and D+A use the same generated code. + (octave_impl::do_add_dm_sm): New template function. Check + arguments for diag + sparse and call inner routine. + (octave_impl::do_sub_dm_sm): New template function. Check + arguments for diag - sparse and call inner routine. + (octave_impl::do_add_sm_dm): New template function. Check + arguments for sparse + diag and call inner routine. + (octave_impl::do_sub_sm_dm): New template function. Check + arguments for sparse - diag and call inner routine. + + * dSparse.h (operator +): Declare overrides for real diag + + sparse. + (operator -): Declare overrides for real diag - sparse, sparse - + diag. + + * dSparse.cc (operator +): Define overrides for real diag + + sparse. + (operator -): Define overrides for real diag - sparse, sparse - + diag. + + * CSparse.h (operator +): Declare overrides for complex and real + combinations of diag + sparse. + (operator -): Declare overrides for complex and real combinations + of diag - sparse, sparse - diag. + + * CSparse.cc (operator +): Define overrides for complex and real + combinations of diag + sparse. + (operator -): Define overrides for complex and real combinations + of diag - sparse, sparse - diag. + + 2009-03-08 Jason Riedy + + * Sparse-diag-op-defs.h (octave_impl::do_mul_dm_sm) + (octave_impl::do_mul_sm_dm): New template + functions. Implementations for sparse * diag and diag * sparse. + + * CSparse.h (operator *, trans_mul, herm_mul): Add overloads for + DiagMatrix and ComplexDiagMatrix. + * CSparse.cc (operator *, trans_mul, herm_mul): Implement + operations by calling approprate functions in + Sparse-diag-op-defs.h. + * dSparse.h (operator *, trans_mul): Add overloads for DiagMatrix. + * dSparse.cc (operator *, trans_mul): Implement operations by + calling approprate functions in Sparse-diag-op-defs.h. + + 2009-03-12 John W. Eaton + + * oct-inttypes.h (bitshift): Apply mask even if not shifting. + From Seb Astien . + + 2009-03-11 Jaroslav Hajek + + * PermMatrix.cc (PermMatrix::power): New method. + * PermMatrix.h: Declare it. + + 2009-03-11 Jaroslav Hajek + + * dNDArray.cc (NDArray::NDArray (const charNDArray&)): New + constructor. + * fNDArray.cc (FloatNDArray::FloatNDArray (const charNDArray&)): + Ditto. + * CNDArray.cc (ComplexNDArray::ComplexNDArray (const charNDArray&)): + Ditto. + * fCNDArray.cc (FloatComplexNDArray::FloatComplexNDArray + (const charNDArray&)): Ditto. + + * dNDArray.h (NDArray::NDArray (const charNDArray&)): Declare. + * fNDArray.h (FloatNDArray::FloatNDArray (const charNDArray&)): + Ditto. + * CNDArray.h (ComplexNDArray::ComplexNDArray (const charNDArray&)): + Ditto. + * fCNDArray.h (FloatComplexNDArray::FloatComplexNDArray + (const charNDArray&)): Ditto. + + * dMatrix.cc (Matrix::Matrix (const charMatrix&)): Cast to unsigned + chars. + * fMatrix.cc (FloatMatrix::FloatMatrix (const charMatrix&)): Likewise. + * CMatrix.cc (ComplexMatrix::ComplexMatrix (const charMatrix&)): + Likewise. + * fCMatrix.cc (FloatComplexMatrix::FloatComplexMatrix + (const charMatrix&)): Likewise. + + 2009-03-10 Jason Riedy + + * Sparse-perm-op-defs.h (octinternal_do_mul_colpm_sm): New + template function. Logic for the column permutation * sparse + matrix operator. + (octinternal_do_mul_pm_sm): New template function. Logic for the + permutation matrix * sparse matrix operator. Note that there is + no special row perm * sparse routine; the permutation is inverted + and the col perm routine is called. + (octinternal_do_mul_sm_rowpm): New template function. Logic for + the sparse matrix * row permutation operator. + (octinternal_do_mul_sm_colpm): New template function. Logic for + the sparse matrix * column permutation operator. + (octinternal_do_mul_sm_pm): New template function. Logic for the + sparse matrix * permutation matrix operator. + + * dSparse.h (operator *): Declare sparse * permutation and + permutation * sparse. + * dSparse.cc (operator *): Define sparse * permutation and + permutation * sparse. + + * CSparse.h (operator *): Declare sparse * permutation and + permutation * sparse. + * CSparse.cc (operator *): Define sparse * permutation and + permutation * sparse. + + 2009-03-10 Jason Riedy + + * sparse-base-lu.cc (Pc_vec): The column permutation should be + Ufact.cols ()-long, not Lfact.rows ()-long. + + 2009-03-10 Jason Riedy + + * dSparse.cc (SparseMatrix::SparseMatrix (const PermMatrix&)): + Fix conversion to add values to the matrix as well as getting + structure correct. + + 2009-03-10 John W. Eaton + + * Array.h, ArrayN.h, Bounds.h, CmplxAEPBAL.h, CmplxCHOL.h, + CmplxGEPBAL.h, CmplxHESS.h, CmplxQR.h, CmplxQRP.h, CmplxSCHUR.h, + CmplxSVD.h, CollocWt.h, EIG.h, FEGrid.h, LinConst.h, Range.h, + Sparse.h, SparseCmplxQR.h, SparseQR.h, dbleAEPBAL.h, dbleCHOL.h, + dbleGEPBAL.h, dbleHESS.h, dbleQR.h, dbleQRP.h, dbleSCHUR.h, + dbleSVD.h, dim-vector.h, fCmplxAEPBAL.h, fCmplxCHOL.h, + fCmplxGEPBAL.h, fCmplxHESS.h, fCmplxQR.h, fCmplxQRP.h, + fCmplxSCHUR.h, fCmplxSVD.h, fEIG.h, floatAEPBAL.h, floatCHOL.h, + floatGEPBAL.h, floatHESS.h, floatQR.h, floatQRP.h, floatSCHUR.h, + floatSVD.h, idx-vector.h, lo-utils.h, oct-inttypes.h, + oct-spparms.h, str-vec.h: Include instead of . + + 2009-03-10 Jaroslav Hajek + + * mx-inlines.cc (OP_CUMMINMAX_FCN2): r -> r0 where appropriate. + + 2009-03-08 Jaroslav Hajek + + * idx-vector.h (idx_vector::bloop): loop --> bloop. + (idx_vector::loop): New method. + * MArray.cc (MArray::idx_add (cons idx_vector&, T)) + (MArray::idx_add (cons idx_vector&, const MArray&)): New methods. + * MArray.h: Declare them. + + 2009-03-05 Jason Riedy + + * Sparse.h (Sparse::elt_type): Remove typedef, replace with: + * Sparse.h (Sparse::element_type): Add typedef to be consistent + with Array.h + * DiagArray2.h (DiagArray2::elt_type): Likewise, removed. + * DiagArray2.h (DiagArray2::element_type): Define by using + Array::element_type. + * intNDArray.h (intNDArray::element_type): Remove, inherited + from MArrayN. + + 2009-03-05 Jaroslav Hajek + + * dSparse.h (SparseMatrix::SparseMatrix(const PermMatrix&)): New + constructor. + (SparseMatrix::SparseMatrix(const DiagMatrix&)): Fix implementation. + * CSparse.h (SparseComplexMatrix::SparseComplexMatrix(const ComplexDiagMatrix&)): + Fix implementation. + + 2009-03-04 Jaroslav Hajek + + * PermMatrix.h (PermMatrix::elem): Fix comparisons. + + 2009-03-03 Jaroslav Hajek + + * lo-mappers.cc (xmin (float, float), xmax (float, float)): Simplify. + + 2009-03-02 Jaroslav Hajek + + * mx-inlines.cc: Add missing #include. + + 2009-02-25 John W. Eaton + + * Makefile.in: Make maintainer-clean and distclean the same. + + 2009-02-25 Jaroslav Hajek + + * oct-inttypes.cc (pow (const octave_int&, const octave_int&)): + Simplify. + + 2009-02-23 Jaroslav Hajek + + * oct-inttypes.h (octave_int_cmp_op::mop): Implement as simple + forwarders when OCTAVE_INT_USE_LONG_DOUBLE is not defined. + (octave_int_cmp_op::emulate_mop): New static overloaded template + member function. + * oct-inttypes.cc: Turn the octave_int_cmp_op::mop definitions into + defs for octave_int_cmp_op::emulate_mop. + (INSTANTIATE_INT64_DOUBLE_CMP_OP0): Instantiate + octave_int_cmp_op::emulate_op instead. + + 2009-02-23 Jaroslav Hajek + + * dDiagMatrix.cc (DiagMatrix::pseudo_inverse): New method. + * dDiagMatrix.h: Declare it. + * fDiagMatrix.cc (FloatDiagMatrix::pseudo_inverse): New method. + * fDiagMatrix.h: Declare it. + * CDiagMatrix.cc (ComplexDiagMatrix::pseudo_inverse): New method. + * CDiagMatrix.h: Declare it. + * fCDiagMatrix.cc (FloatComplexDiagMatrix::pseudo_inverse): New method. + * fCDiagMatrix.h: Declare it. + + 2009-02-20 Jaroslav Hajek + + * oct-sort.h (octave_sort::MergeState::MergeState): New + constructor. + (octave_sort::MergeState::~MergeState): New destructor. + (octave_sort::MergeState::reset, + octave_sort::MergeState::getmem, + octave_sort::MergeState::getmemi): New methods. + (octave_sort::sort, + octave_sort::merge_lo, octave_sort::merge_hi + octave_sort::merge_at): Reflect change. + + 2009-02-19 Jaroslav Hajek + + * oct-types.h (sortmode): Move enum here. + * oct-sort.h (octave_sort::ms): Declare as pointer. + (octave_sort::lookup): New overloaded method. + * oct-sort.cc: Reflect change to ms. + (octave_sort::lookup): New overloaded method. + (out_of_range_pred): New helper class. + (out_of_range): New helper function. + * oct-lookup.h: Remove file. + * Array.cc (Array::lookup): New overloaded method. + * Array.h: Declare it. + + 2009-02-18 John W. Eaton + + * dbleQR.cc (QR::init, QR::form): Cast int to octave_idx_type in + call to std::max. + * floatQR.cc (FloatQR::init, FloatQR::form): Ditto. + * CmplxQR.cc (ComplexQR::init, ComplexQR::form): Ditto. + * fCmplxQR.cc (FloatComplexQR::init, FloatComplexQR::form): Ditto. + + * dbleQRP.cc (QRP::init): Cast int to octave_idx_type in call to + std::max and as operand to -= operator. + * CmplxQRP.cc (ComplexQRP::init): Ditto. + * floatQRP.cc (FloatQRP::init): Ditto. + * fCmplxQRP.cc (FloatComplexQRP::init): Ditto. + + * CDiagMatrix.cc, CDiagMatrix.h (ComplexDiagMatrix::inverse): + Declare info as octave_idx_type, not int. + * dDiagMatrix.cc, dDiagMatrix.h (DiagMatrix::inverse): Ditto. + * fDiagMatrix.cc, fCDiagMatrix.h (FloatDiagMatrix::inverse): Ditto. + * fCDiagMatrix.cc, fCDiagMatrix.h (FloatComplexDiagMatrix::inverse): + Ditto. + + * dMatrix.cc (Matrix::determinant): + Declare local variables volatile as needed to avoid "maybe + clobbered by vfork" warning from GCC. + * fMatrix.cc (FloatMatrix::determinant): Likewise. + * CMatrix.cc (ComplexMatrix::determinant): Likewise. + * fCMatrix.cc (FloatComplexMatrix::determinant): Likewise. + * dbleQR.cc (QR::update, QR::insert_col, QR::delete_col): Likewise. + * floatQR.cc (FloatQR::update, FloatQR::insert_col, + FloatQR::delete_col): Likewise. + * CmplxQR.cc (ComplexQR::update, ComplexQR::insert_col, + ComplexQR::delete_col): Likewise. + * fCmplxQR.cc (FloatComplexQR::update, FloatComplexQR::insert_col, + FloatComplexQR::delete_col): Likewise. + + * dMatrix.cc (padec, solve_singularity_warning): Delete unused + static variable and function. + * CMatrix.cc (padec, solve_singularity_warning): Ditto. + * fMatrix.cc (padec, solve_singularity_warning): Ditto. + * fCMatrix.cc (padec, solve_singularity_warning): Ditto. + + 2009-02-18 Jaroslav Hajek + + * Array.cc (Array::resize (const dim_vector&)): Check for negative + dimensions. + + 2009-02-18 Jaroslav Hajek + + * oct-inttypes.cc (pow (const octave_int&, const octave_int&)): + Use octave_int comparisons to avoid warning for unsigned types. + + 2009-02-17 Jaroslav Hajek + + * Array.cc (Array::resize (const dim_vector&)): Remove dead branch. + + 2009-02-17 Jaroslav Hajek + + * mx-inlines.cc (OP_CUM_FCN, OP_CUM_FCN2, OP_CUM_FCNN): + Add TSRC/TRES parameters. + (mx_inline_cumcount): New function. + * intNDArray.cc (intNDArray::cumsum): New method. + * intNDArray.h: Declare it. + * boolNDArray.cc (boolNDArray::cumsum): New method. + * boolNDArray.h: Declare it. + + 2009-02-17 Jaroslav Hajek + + * mx-inlines.cc (OP_CUMMINMAX_FCN, OP_CUMMINMAX_FCN2, + OP_CUMMINMAX_FCNN): New macros. + (mx_inline_cummax, mx_inline_cummin, do_mx_cumminmax_op): + New overloaded template functions. + + * dNDArray.cc (NDArray::cummin, NDArray::cummax): New methods. + * dNDArray.h: Declare them. + + * fNDArray.cc (FloatNDArray::cummin, FloatNDArray::cummax): New + methods. + * fNDArray.h: Declare them. + + * CNDArray.cc (ComplexNDArray::cummin, ComplexNDArray::cummax): New + methods. + * CNDArray.h: Declare them. + + * fCNDArray.cc (FloatComplexNDArray::cummin, + FloatComplexNDArray::cummax): New methods. + * fCNDArray.h: Declare them. + + * intNDArray.cc (intNDArray::cummin, intNDArray::cummax): New methods. + * intNDArray.h: Declare them. + + 2009-02-17 Jaroslav Hajek + + * mx-inlines.cc (OP_MINMAX_FCN): Correct behaviour with NaNs. + + 2009-02-17 Jaroslav Hajek + + * MArray-defs.h: Move declarative part to MArray-decl.h + * MArray-decl.h: New source. + + * mx-op-defs.h: Move declarative part to mx-op-decl.h. + * mx-op-decl.h: New source. + + * Makefile.in: Include new sources in build. + * mk-ops.awk: Include mx-op-decl.h in headers, mx-op-defs in .cc + files. + + * CMatrix.cc, CMatrix.h, CNDArray.cc, CNDArray.h, MArray.h, MArray2.h, + MArrayN.h, MDiagArray2.h, boolMatrix.cc, boolMatrix.h, boolNDArray.cc, + boolNDArray.h, chMatrix.cc, chMatrix.h, chNDArray.cc, chNDArray.h, + dMatrix.cc, dMatrix.h, dNDArray.cc, dNDArray.h, fCMatrix.cc, + fCMatrix.h, fCNDArray.cc, fCNDArray.h, fMatrix.cc, fMatrix.h, + fNDArray.cc, fNDArray.h, int16NDArray.cc, int16NDArray.h, + int32NDArray.cc, int32NDArray.h, int64NDArray.cc, int64NDArray.h, + int8NDArray.cc, int8NDArray.h, uint16NDArray.cc, uint16NDArray.h, + uint32NDArray.cc, uint32NDArray.h, uint64NDArray.cc, uint64NDArray.h, + uint8NDArray.cc, uint8NDArray.h: Ditto. + + 2009-02-16 Jaroslav Hajek + + * Array.cc (Array::assign (const idx_vector& i, + const idx_vector& j,...)): Fix invalid dimension inquiry. + + 2009-02-16 Jaroslav Hajek + + * mx-inlines.cc (OP_ROW_SHORT_CIRCUIT): New macro. + (mx_inline_any, mx_inline_all): Override row-reduction case. + (MX_CUMULATIVE_OP, MX_BASE_REDUCTION_OP, MX_REDUCTION_OP, + MX_ANY_OP, MX_ALL_OP, MX_ND_ANY_ALL, MX_ND_REDUCTION, + MX_ND_COMPLEX_OP_REDUCTION, MX_ND_CUMULATIVE_OP, + MX_ND_ANY_EVAL, MX_ND_ALL_EVAL, MX_ND_REAL_OP_REDUCTION): + Remove unused macros. + + 2009-02-16 Jaroslav Hajek + + * mx-inlines.cc (OP_RED_FCNN): Use explicit type qualification. + (mx_inline_count): New overloaded template function. + * boolNDArray.h (boolNDArray::sum): Return NDArray. + * boolNDArray.cc (boolNDArray::sum): Return NDArray, use do_mx-red_op. + + 2009-02-16 Jaroslav Hajek + + * Array-C.cc, Array-fC.cc: Don't redefine complex comparison. + * Sparse.cc (Sparse::sort): Don't use vec_index. + * Sparse-C.cc, Sparse-d.cc, Sparse-b.cc: Don't reinstantiate + octave_sort, reflect changes. + * sparse-sort.cc: Explicitly instantiate octave_sort for requested + pointer types. + + 2009-02-16 Jaroslav Hajek + + * oct-cmplx.h (operator <, operator >): New operators. + * mx-inlines.cc (OP_MINMAX_FCN, OP_MINMAX_FCN2, OP_MINMAX_FCNN): + New macros. + (mx_inline_min, mx_inline_max, do_mx_minmax_op): New overloaded + template functions. + * dNDArray (NDArray::min, NDArray::max): Use do_mx_minmax_op. + * fNDArray (FloatNDArray::min, FloatNDArray::max): Ditto. + * CNDArray (ComplexNDArray::min, ComplexNDArray::max): Ditto. + * fCNDArray (FloatComplexNDArray::min, FloatComplexNDArray::max): + Ditto. + + 2009-02-16 Jaroslav Hajek + + * chMatrix.cc (charMatrix::all, charMatrix::any): Use do_mx_red_op. + * chNDArray.cc (charNDArray::all, charNDArray::any): Ditto. + + 2009-02-16 John W. Eaton + + * cmd-edit.cc (default_command_editor::do_readline): + Use fputs instead of fprintf. + + 2009-02-14 Jaroslav Hajek + + * mx-inlines.cc (OP_RED_FCN, OP_RED_FCN2, OP_RED_FCNN, OP_CUM_FCN, + OP_CUM_FCN2, OP_CUM_FCNN): Include TRET parameter. + (OP_RED_ANYC, OP_RED_ANYR, OP_RED_ALLC, OP_RED_ALLR): New macros. + (is_true, is_false): New template functions. + (mx_inline_any, mx_inline_all): New template functions. + + * dMatrix.cc (Matrix::any, Matrix::all): Use do_mx_red_op and + do_mx_cum_op. + * fMatrix.cc (FloatMatrix::any, FloatMatrix::all): Use do_mx_red_op + and do_mx_cum_op. + * CMatrix.cc (ComplexMatrix::any, ComplexMatrix::all): Use + do_mx_red_op and do_mx_cum_op. + * fCMatrix.cc (FloatComplexMatrix::any, FloatComplexMatrix::all): Use + do_mx_red_op and do_mx_cum_op. + + * dNDArray.cc (NDArray::any, NDArray::all): Use do_mx_red_op and + do_mx_cum_op. + * fNDArray.cc (FloatNDArray::any, FloatNDArray::all): Use do_mx_red_op + and do_mx_cum_op. + * CNDArray.cc (ComplexNDArray::any, ComplexNDArray::all): Use + do_mx_red_op and do_mx_cum_op. + * fCNDArray.cc (FloatComplexNDArray::any, FloatComplexNDArray::all): + Use do_mx_red_op and do_mx_cum_op. + + * intNDArray.cc (intNDArray::any, intNDArray::all): Use do_mx_red_op and + do_mx_cum_op. + + * boolNDArray.cc (boolNDArray::any, boolNDArray::all): Use do_mx_red_op and + do_mx_cum_op. + + * boolMatrix.cc (boolMatrix::any, boolMatrix::all): Use do_mx_red_op and + do_mx_cum_op. + + 2009-02-14 Jaroslav Hajek + + * intNDArray.cc: include mx-inlines.cc. + (intNDArray::sum): Use mx_do_red_op (..., mx_inline_sum). + * Range.cc (Range::is_sorted): Add missing return statement. + + 2009-02-13 Jaroslav Hajek + + * mx-inlines.cc (OP_RED_SUM, OP_RED_PROD, OP_RED_SUMSQ, OP_RED_SUMSQC, + OP_RED_FCN, OP_RED_FCN2, OP_RED_FCNN, OP_CUM_FCN, OP_CUM_FCN2, + OP_CUM_FCNN): New macros. + (mx_inline_sum, mx_inline_prod, mx_inline_sumsq, mx_inline_cumsum, + mx_inline_cumprod, get_extent_triplet, do_mx_red_op, do_mx_cum_op): + New template functions. + * dMatrix.cc (Matrix::cumprod, Matrix::cumsum, Matrix::prod, + Matrix::sum, Matrix::sumsq): Use do_mx_red_op and do_mx_cum_op. + * fMatrix.cc (FloatMatrix::cumprod, FloatMatrix::cumsum, + FloatMatrix::prod, FloatMatrix::sum, FloatMatrix::sumsq): Use + do_mx_red_op and do_mx_cum_op. + * CMatrix.cc (ComplexMatrix::cumprod, ComplexMatrix::cumsum, + ComplexMatrix::prod, ComplexMatrix::sum, ComplexMatrix::sumsq): Use + do_mx_red_op and do_mx_cum_op. + * fCMatrix.cc (FloatComplexMatrix::cumprod, + FloatComplexMatrix::cumsum, FloatComplexMatrix::prod, + FloatComplexMatrix::sum, FloatComplexMatrix::sumsq): Use do_mx_red_op + and do_mx_cum_op. + + 2009-02-12 Jaroslav Hajek + + * oct-inttypes.h (if_else_type): Remove + (octave_int_base::truncate_int): Use if_then_else. + + 2009-02-12 John W. Eaton + + * lo-traits.h: New file. + * Makefile.in (INCLUDES): Add it to the list. + + * Array.h (compare_fcn_type): New typedef. + * oct-sort.h (compare_fcn_type): Ditto. + + * oct-sort.h, oct-sort.cc (octave_sort::octave_sort, + octave_sort::set_compare, octave_sort::compare): + Use typedef to simplify decl. + (octave_sort::ascending_compare, + octave_sort::descending_compare): + Use ref_param::type for parameter decl. + + * Array.cc (sort_isnan): Use ref_param::type for parameter decl. + (Array::sort): Use explicit template parameter for sort_isnan calls. + + * Array.cc, Array-C.cc, Array-fC.cc, Array-d.cc, Array-f.cc + (sortrows_comparator): Rename from _sortrows_comparator. Change + all uses. Use typedef for return value to simplify decl. + (sort_isnan): Rename from _sort_isnan. Change all uses. + (NO_INSTANTIATE_ARRAY_SORT): Use typedef to simplify instantiation + of sortrows_comparator. + + * Array-C.cc, Array-fC.cc (sort_isnan, ascending_compare, + descending_compare, nan_ascending_compare, + nan_descending_compare): + + 2009-02-11 Jaroslav Hajek + + * oct-sort.cc (octave_sort::is_sorted, octave_sort::sort_rows, + octave_sort::is_sorted_rows): New methods. + * oct-sort.h: Declare them. + + * Array.cc (Array::is_sorted): New method. + (INSTANTIATE_ARRAY_SORT, NO_INSTANTIATE_ARRAY_SORT, + INSTANTIATE_ARRAY_AND_ASSIGN, INSTANTIATE_ARRAY): Move macros here. + * Array.h: Reflect changes. + + * dim-vector.h (dim_vector::is_vector): New method. + * Array-C.cc, Array-fC.cc: Override _sort_isnan, don't check for + NaN in default comparators. Provide NaN-safe comparators, override + _sortrows_comparator. + * Array-d.cc, Array-f.cc: Provide NaN-safe comparators, override + _sortrows_comparator. + * Range.cc (Range::is_sorted): New method. + * Range.h: Declare it. + + 2009-02-09 Jaroslav Hajek + + * oct-sort.cc (octave_sort): Rewrite for optimizations. Allow + inlined comparison functor and by-the-way indexed sorting. + * oct-sort.h (octave_sort): Update interface. + * Array.cc (Array::sort): Reflect changes. Use copy & partition + mechanism. + * Array-d.cc, Array-f.cc, Array-C.cc, Array-fC.cc, Array-s.cc, + Array-i.cc: Reflect changes. + + 2009-02-05 John W. Eaton + + * file-stat.cc (base_file_stat::is_sock): + Use EXISTS instead of OK in previous change. + + * file-stat.cc (base_file_stat::is_blk, base_file_stat::is_chr, + base_file_stat::is_dir, base_file_stat::is_fifo, + base_file_stat::is_lnk, base_file_stat::is_reg, + base_file_stat::is_sock): Return false if object is not initialized. + From Rafael Laboissiere . + + 2009-02-05 Jaroslav Hajek + + * idx-vector.h (idx_vector::idx_colon_rep, + idx_vector::idx_scalar_rep, idx_vector::idx_range_rep, + idx_vector::idx_vector_rep): Declare allocators. + * idx-vector.cc: Define them. + + 2009-02-05 Jaroslav Hajek + + * str-vec.h (string_vector::sort): Remove implementation. + * str-vec.cc (string_vector::sort): Move here. Use in-place sorting. + * Array-str.cc: Fix order of header files. + * oct-sort.cc (octave_sort::merge_hi): std::copy -> + std::copy_backward where appropriate. + + 2009-02-05 John W. Eaton + + * Array-util.cc (zero_dims_inquire): Eliminate unused variable MATCH. + + * Sparse.cc (assign (Sparse& lhs, const Sparse& rhs)): + Eliminate unused variable N. + + * MArray-f.cc (MArray::norm (float p) const, + MArray::norm (float p) const): Pass P to xnorm. + + * eigs-base.cc (EigsRealNonSymmetricFunc, EigsRealSymmetricFunc) + (EigsComplexNonSymmetricFunc): Avoid unused parameter warning. + * idx-vector.cc (idx_vector::freeze): Likewise. + + 2009-02-04 Jaroslav Hajek + + * oct-locbuf.h: Specialize OCTAVE_LOCAL_BUFFER to use chunked + allocation for pointers and const pointers. + + 2009-02-03 Benjamin Lindner + + * Makefile.in: Add missing library reference. + + 2009-02-03 Jaroslav Hajek + + * Array.cc (Array::sort (octave_idx_type, sortmode)): + Copy array on-the-fly. + (Array::sort (Array &, octave_idx_type, sortmode)): + Copy array on-the-fly, use bare pointers rather than vec_index. + + * Array-d.cc (Array::sort (octave_idx_type, sortmode)): + Copy array on-the-fly. + (Array::sort (Array &, octave_idx_type, sortmode)): + Copy array on-the-fly, use bare pointers rather than vec_index. + + * Array-f.cc (Array::sort (octave_idx_type, sortmode)): + Copy array on-the-fly. + (Array::sort (Array &, octave_idx_type, sortmode)): + Copy array on-the-fly, use bare pointers rather than vec_index. + + 2009-02-02 Jaroslav Hajek + + * mx-inlines.cc (mx_inline_fabs_dup, mx_inline_cabs_dup): New funcs. + + * dMatrix.cc (real, imag, Matrix::abs): Simplify. + * fMatrix.cc (real, imag, FloatMatrix::abs): Simplify. + * CMatrix.cc (ComplexMatrix::abs, ComplexMatrix::conj): Simplify. + * fCMatrix.cc (FloatComplexMatrix::abs, FloatComplexMatrix::conj): Simplify. + + * CMatrix.h, fCMatrix.h (conj): Add missing decl. + + * dNDArray.cc (real, imag, NDArray::abs): Simplify. + * fNDArray.cc (real, imag, FloatNDArray::abs): Simplify. + * CNDArray.cc (ComplexNDArray::abs, ComplexNDArray::conj): Simplify. + * fCNDArray.cc (FloatComplexNDArray::abs, FloatComplexNDArray::conj): Simplify. + + * CMatrix.h, fCMatrix.h (conj): New decl. + + 2009-01-29 John W. Eaton + + * intNDArray.h (intNDArray:any_element_is_nan): New function. + * boolNDArrah.h (boolNDArray::any_element_is_nan): New function. + * chNDArray.h (charNDArray::any_element_is_nan): New function. + + 2009-01-28 John W. Eaton + + * Makefile.in (LIBRARIES, install, uninstall): Use SHLLIBPRE + and SHLBINPRE library prefixes. + From Marco Atzeri . + + 2009-01-28 Jaroslav Hajek + + * dMatrix.cc (Matrix::Matrix (const RowVector&)): Use shallow copy. + (Matrix::Matrix (const ColumnVector&)): Ditto. + (Matrix::row): Ditto. + (Matrix::column): Ditto. + + * fMatrix.cc (FloatMatrix::FloatMatrix (const FloatRowVector&)): Use + shallow copy. + (FloatMatrix::FloatMatrix (const FloatColumnVector&)): Ditto. + (FloatMatrix::row): Ditto. + (FloatMatrix::column): Ditto. + + * CMatrix.cc (ComplexMatrix::ComplexMatrix (const ComplexRowVector&)): + Use shallow copy. + (ComplexMatrix::ComplexMatrix (const ComplexColumnVector&)): Ditto. + (ComplexMatrix::row): Ditto. + (ComplexMatrix::column): Ditto. + + * fCMatrix.cc (FloatComplexMatrix::FloatComplexMatrix (const FloatComplexRowVector&)): + Use shallow copy. + (FloatComplexMatrix::FloatComplexMatrix (const FloatComplexColumnVector&)): Ditto. + (FloatComplexMatrix::row): Ditto. + (FloatComplexMatrix::column): Ditto. + + 2009-01-27 Benjamin Lindner + + * Makefile.in (LINK_DEPS): Include ARPACK_LIBS and REGEX_LIBS in + the list. + + 2009-01-27 Jaroslav Hajek + + * dbleQR.cc (QR::init): Use form. Use local buffers. + Query for optimal block size. + (QR::form): New function. + * dbleQR.h: Declare it. + * dbleQRP.cc (QRP::init):Use form. Use local buffers. + Query for optimal block size. + + * floatQR.cc (FloatQR::init): Use form. Use local buffers. + Query for optimal block size. + (FloatQR::form): New function. + * floatQR.h: Declare it. + * floatQRP.cc (FloatQRP::init):Use form. Use local buffers. + Query for optimal block size. + + * CmplxQR.cc (ComplexQR::init): Use form. Use local buffers. + Query for optimal block size. + (ComplexQR::form): New function. + * CmplxQR.h: Declare it. + * CmplxQRP.cc (ComplexQRP::init):Use form. Use local buffers. + Query for optimal block size. + + * fCmplxQR.cc (FloatComplexQR::init): Use form. Use local buffers. + Query for optimal block size. + (FloatComplexQR::form): New function. + * fCmplxQR.h: Declare it. + * fCmplxQRP.cc (FloatComplexQRP::init):Use form. Use local buffers. + Query for optimal block size. + + 2009-01-23 Jaroslav Hajek + + * Array.cc (Array::assign (const idx_vector&, const Array&)): + Optimize assignment to an empty array. + (Array::assign (const idx_vector&, const idx_vector&, const Array&)): + Optimize assignment to an empty array. + + 2009-01-22 Jaroslav Hajek + + * Array2.h (Array2::index): Declare resize_ok as bool. + * ArrayN.h (ArrayN::index): Ditto. Declare index vectors as const + refs. + + 2009-01-22 Jaroslav Hajek + + * Range.cc (sort_internal): Add missing test. + + 2009-01-22 Jaroslav Hajek + + * Array.cc (Array::index (..., bool resize_ok)): + Optimize the all-scalar-indices cases. + + 2009-01-22 Jaroslav Hajek + + * dbleQR.h: Optionally declare warn_qrupdate_once. + * dbleQR.cc: Define it. + * (CmplxQR.h, dbleQR.h, fCmplxQR.h, floatQR.h): Declare replacement + methods unconditionally. + * (CmplxQR.cc, dbleQR.cc, fCmplxQR.cc, floatQR.cc): Define + updating replacement methods. + * (CmplxCHOL.h, dbleCHOL.h, fCmplxCHOL.h, floatCHOL.h): Declare + replacement methods unconditionally. + * (CmplxCHOL.cc, dbleCHOL.cc, fCmplxCHOL.cc, floatCHOL.cc): Define + updating replacement methods. + + 2009-01-21 Jaroslav Hajek + + * Range.cc ( operator + (double x, const Range& r), + operator + (const Range& r, double x), + operator - (double x, const Range& r), + operator - (const Range& r, double x), + operator * (double x, const Range& r), + operator * (const Range& r, double x)): New operators. + * Range.h: Declare them. + + 2009-01-20 John W. Eaton + + * file-stat.h, file-stat.cc (class base_file_stat): New base class. + (class file_stat): Derive from base_file_stat. + (class file_fstat): New class, derived from base_file_stat. + + 2009-01-17 Jaroslav Hajek + + * floatQR.h (FloatQR::update, FloatQR::insert_col, + FloatQR::insert_row, FloatQR::delete_col, FloatQR::delete_row, + FloatQR::shift_col): Update interfaces. + + * floatQR.cc: Update external decls for qrupdate routines. + (FloatQR::update, FloatQR::insert_col, FloatQR::insert_row, + FloatQR::delete_col, FloatQR::delete_row, FloatQR::shift_col): Reflect + changes in qrupdate interfaces, implement batch updates. + + * dbleQR.h (QR::update, QR::insert_col, QR::insert_row, + QR::delete_col, QR::delete_row, QR::shift_col): Update interfaces. + + * dbleQR.cc: Update external decls for qrupdate routines. + (QR::update, QR::insert_col, QR::insert_row, QR::delete_col, + QR::delete_row, QR::shift_col): Reflect changes in qrupdate + interfaces, implement batch updates. + + * fCmplxQR.h (FloatComplexQR::update, FloatComplexQR::insert_col, + FloatComplexQR::insert_row, FloatComplexQR::delete_col, + FloatComplexQR::delete_row, FloatComplexQR::shift_col): Update + interfaces. + + * fCmplxQR.cc: Update external decls for qrupdate routines. + (FloatComplexQR::update, FloatComplexQR::insert_col, + FloatComplexQR::insert_row, FloatComplexQR::delete_col, + FloatComplexQR::delete_row, FloatComplexQR::shift_col): Reflect + changes in qrupdate interfaces, + implement batch updates. + + * CmplxQR.h (ComplexQR::update, ComplexQR::insert_col, + ComplexQR::insert_row, ComplexQR::delete_col, ComplexQR::delete_row, + ComplexQR::shift_col): Update interfaces. + + * CmplxQR.cc: Update external decls for qrupdate routines. + (ComplexQR::update, ComplexQR::insert_col, + ComplexQR::insert_row, ComplexQR::delete_col, ComplexQR::delete_row, + ComplexQR::shift_col): Reflect changes in qrupdate interfaces, + implement batch updates. + + * floatCHOL.h (FloatCHOL::update, FloatCHOL::downdate, + FloatCHOL::insert_sym): Update interfaces. + * floatCHOL.cc: Update external decls for qrupdate routines. + (FloatCHOL::update, FloatCHOL::downdate, FloatCHOL::insert_sym, + FloatCHOL::delete_sym, FloatCHOL::shift_sym): Reflect changes in + qrupdate interfaces, + + * CHOL.h (CHOL::update, CHOL::downdate, CHOL::insert_sym): Update + interfaces. + * CHOL.cc: Update external decls for qrupdate routines. + (CHOL::update, CHOL::downdate, CHOL::insert_sym, CHOL::delete_sym, + CHOL::shift_sym): Reflect changes in qrupdate interfaces, + + * fCmplxCHOL.h (FloatComplexCHOL::update, FloatComplexCHOL::downdate, + FloatComplexCHOL::insert_sym): Update interfaces. + * fCmplxCHOL.cc: Update external decls for qrupdate routines. + (FloatComplexCHOL::update, FloatComplexCHOL::downdate, + FloatComplexCHOL::insert_sym, FloatComplexCHOL::delete_sym, + FloatComplexCHOL::shift_sym): Reflect changes in qrupdate interfaces, + + * CmplxCHOL.h (ComplexCHOL::update, ComplexCHOL::downdate, + ComplexCHOL::insert_sym): Update interfaces. + * CmplxCHOL.cc: Update external decls for qrupdate routines. + (ComplexCHOL::update, ComplexCHOL::downdate, ComplexCHOL::insert_sym, + ComplexCHOL::delete_sym, ComplexCHOL::shift_sym): Reflect changes in + qrupdate interfaces, + + 2009-01-17 Jaroslav Hajek + + * Array.h (Array): Document internal use of slice_data and + slice_len. + + 2009-01-15 John W. Eaton + + * Sparse.cc (Sparse::reshape): Include mismatched dimensions in + error message. + * Array.cc (Array::reshape): Likewise. + From Robert Millan . + + 2009-01-14 Jaroslav Hajek + + * Array.h (Array::rep, Array::dimensions): Make protected. + * Array.cc (Array::make_unique): Move implementation here. + (Array::fill): Ditto. + * DiagArray2.h (DiagArray2): Reimplement without abusing + Array internals. + (DiagArray2::operator Array2): New method. + * DiagArray2.cc (DiagArray2): Update methods. + * MDiagArray2.h (MDiagArray2::operator Array2): Simplify. + * PermMatrix.h (PermMatrix): Reimplement without abusing + Array internals. + * PermMatrix.cc (PermMatrix): Update methods. + + 2009-01-14 Jaroslav Hajek + + * Array.cc, Array.h (all Array constructors): Handle slice_data and + slice_len. + (Array::Array (const Array&, const dim_vector&, + octave_idx_type, octave_idx_type)): New constructor. + (Array::index): Use shallow copy when index reduces to a contiguous + range. + (Array::make_unique): Rewrite. + (Array::ArrayRep): Delete redundant methods. + (rec_index_helper::is_cont_range): New method. + (Array::maybe_economize): New method. + * DiagArray2.cc (DiagArray2::resize): Fix the mess. + + 2008-01-15 Rafael Laboissiere + + * oct-md5.cc: Include . + + 2009-01-13 Jaroslav Hajek + + * Array.h (Array::ArrayRep::qsort): Remove. + (Array::qsort): Remove. + * glob-match.cc (glob_match::glob): qsort -> sort. + * str-vec.cc (string_vector::compare): Remove. + * str-vec.h (string_vector::compare): Remove decl. + (string_vector::qsort): Rename to sort, call Array::sort. + + 2008-12-23 David Bateman + + * eigs-base.cc: New file with template wrapper for ARPACK. + * Makefile.in (TEMPLATE_SRC): Add it here. + + 2008-12-16 Jaroslav Hajek + + * Array.cc (rec_permute_helper): New class. + (Array::permute): Rewrite using the recursive algorithm. + + 2008-12-12 David Bateman + + * sparse-base-chol.cc (inverse): Fix inversion based on cholesky + factorization. + + 2008-12-12 Jaroslav Hajek + + * oct-locbuf.cc: New source. + * oct-locbuf.h (octave_chunk_buffer): New class. + (octave_local_buffer): Subclass from octave_chunk_buffer for selected + POD types. + + 2008-12-11 Jaroslav Hajek + + * mx-op-defs.h (DMDM_BIN_OP): Fix invalid buffer length. + + 2008-12-10 Jaroslav Hajek + + * dMatrix.h, dMatrix.cc (Matrix::expm): Remove. + * fMatrix.h, fMatrix.cc (FloatMatrix::expm): Remove. + * CMatrix.h, CMatrix.cc (ComplexMatrix::expm): Remove. + * fCMatrix.h, fCMatrix.cc (FloatComplexMatrix::expm): Remove. + + 2008-12-09 Jaroslav Hajek + + * base-aepbal.h: New source. + * dbleAEPBAL.h, dbleAEPBAL.cc: Rebase AEPBAL on base_aepbal. + * floatAEPBAL.h, floatAEPBAL.cc: Rebase FloatAEPBAL on base_aepbal. + * CmplxAEPBAL.h, CmplxAEPBAL.cc: Rebase ComplexAEPBAL on base_aepbal. + * fCmplxAEPBAL.h, fCmplxAEPBAL.cc: Rebase FloatComplexAEPBAL on base_aepbal. + + 2008-12-08 Jaroslav Hajek + + * idx-vector.cc (idx_vector::idx_vector_rep::idx_vector_rep (const + Sparse&)): New constructor. + * idx_vector.h: Declare it. + (idx_vector::idx_vector (const Sparse&)): New constructor. + * idx-vector.cc (idx_vector::idx_vector_rep::idx_vector_rep (const + Array&)): Fix extent calculation. + + 2008-12-09 David Bateman + + * Makefile.in (INCLUDES): Add oct-locbuf.h + + 2008-12-07 Jaroslav Hajek + + * mx-inlines.cc (mx_inline_fill_vs): New template function. + * mx-op-defs.h (everywhere): Replace int by octave_idx_type. + (MDM_MULTIPLY_OP): Use mx_inline_mul_vs and mx_inline_fill_vs. + (DMM_MULTIPLY_OP): Ditto. + * fDiagMatrix.cc (operator *): Remove redundant ifs. + * fCDiagMatrix.cc (operator *): Remove redundant ifs. + + 2008-12-06 Jaroslav Hajek + + * oct-locbuf.h (OCTAVE_LOCAL_BUFFER_INIT): New macro. + + 2008-10-29 Jaroslav Hajek + + * oct-locbuf.h: New header file. + * Array-d.cc, Array-f.cc, Array.cc, CMatrix.cc, CNDArray.cc, + CSparse.cc, CmplxCHOL.cc, CmplxGEPBAL.cc, MatrixType.cc, + Sparse-op-defs.h, Sparse.cc, SparseCmplxLU.cc, SparseCmplxQR.cc, + SparseQR.cc, SparsedbleLU.cc, dMatrix.cc, dNDArray.cc, dSparse.cc, + data-conv.cc, dbleCHOL.cc, dbleGEPBAL.cc, fCMatrix.cc, fCNDArray.cc, + fCmplxCHOL.cc, fCmplxGEPBAL.cc, fMatrix.cc, fNDArray.cc, file-ops.cc, + floatCHOL.cc, floatGEPBAL.cc, lo-sysdep.cc, oct-fftw.cc, oct-md5.cc, + oct-rand.cc, regex-match.cc, sparse-dmsolve.cc: Include oct-locbuf.h. + + 2008-12-04 Jaroslav Hajek + + * DiagArray2.h (DiagArray2): Inherit Array privately. + (DiagArray2::dim1, dim2, rows, columns, cols, length, + nelem, numel, byte_size, dims): New methods. + (DiagArray2::diag): New method decl. + * DiagArray2.cc (DiagArray2::diag): New method. + * MDiagArray2.h (MDiagArray2::diag): New method. + * dDiagMatrix.cc (DiagMatrix::diag): Remove. + * fDiagMatrix.cc (FloatDiagMatrix::diag): Remove. + * CDiagMatrix.cc (ComplexDiagMatrix::diag): Remove. + * fCDiagMatrix.cc (FloatComplexDiagMatrix::diag): Remove. + + * PermMatrix.h (PermMatrix): Inherit Array privately. + (PermMatrix::dim1, dim2, rows, columns, cols, length, + nelem, numel, byte_size, dims): New methods. + + + 2008-12-04 Jaroslav Hajek + + * dDiagMatrix.cc (DiagMatrix::determinant, DiagMatrix::rcond): New + method. + * dDiagMatrix.h: Declare them. + * fDiagMatrix.cc (FloatDiagMatrix::determinant, + FloatDiagMatrix::rcond): New methods. + * fDiagMatrix.h: Declare them. + * CDiagMatrix.cc (ComplexDiagMatrix::determinant, + ComplexDiagMatrix::rcond): New methods. + * CDiagMatrix.h: Declare them. + * fCDiagMatrix.cc (FloatComplexDiagMatrix::determinant, + FloatComplexDiagMatrix::rcond): New methods. + * fCDiagMatrix.h: Declare them. + + 2008-12-04 Jaroslav Hajek + + * idx-vector.cc (idx-vector::complement): Add missing delete. + + 2008-12-04 Jaroslav Hajek + + * dbleQRP.cc (QRP::QRP): Call DGEQP3 rather than DGEQPF. + * floatQRP.cc (FloatQRP::FloatQRP): Call SGEQP3 rather than SGEQPF. + * CmplxQRP.cc (ComplexQRP::ComplexQRP): Call ZGEQP3 rather than ZGEQPF. + * fCmplxQRP.cc (FloatComplexQRP::FloatComplexQRP): Call CGEQP3 rather than CGEQPF. + + 2008-12-03 Jaroslav Hajek + + * PermMatrix.h, PermMatrix.cc: New sources. + * MDiagArray2.cc (MDiagArray2::is_multiple_of_identity): New method. + * MDiagArray2.h (MDiagArray2::is_multiple_of_identity): Declare it. + * idx-vector.cc (idx_vector::is_permutation): New method. + * idx-vector.h (idx_vector::is_permutation): Declare it. + * base-lu.cc (base_lu::getp): New method. + (base_lu::P): Call getp. + (base_lu::Pvec): Call getp. + * base-lu.h (base_lu): Delcare P as PermMatrix. Remove unused template + params. + * dbleQRP.cc (dbleQRP::dbleQRP): Construct a permutation matrix. + (dbleQRP::Pvec): New method. + * dbleQRP.h: Declare new method. Declare P as PermMatrix. + * CmplxQRP.cc (ComplexQRP): Likewise. + * CmplxQRP.h (ComplexQRP): Likewise. + * floatQRP.cc (FloatQRP): Likewise. + * floatQRP.h (FloatQRP): Likewise. + * fCmplxQRP.cc (FloatComplexQRP): Likewise. + * fCmplxQRP.h (FloatComplexQRP): Likewise. + + 2008-12-01 Jaroslav Hajek + + * DiagArray2.h (DiagArray2::DiagArray2 (const DiagArray2&)): New template + constructor. + (DiagArray2::elem, xelem, operator ()): Move to header file to + enable inlining. + * DiagArray2.cc (DiagArray2::elem, xelem, operator ()): Remove + implementations. + * MDiagArray2.h (MDiagArray2::MDiagArray2 (const DiagArray2&)): New template + constructor. + (MDiagArray2::nnz): New method. + * MDiagArray2.cc (MDiagArray2::nnz): Implement it. + + * dDiagMatrix.h (DiagMatrix::DiagMatrix (const DiagArray2&)): New template + constructor. + (DiagMatrix::abs): New method decl. + (real (const ComplexDiagMatrix&), imag (const ComplexDiagMatrix&)): + New decls. + * dDiagMatrix.cc (DiagMatrix::abs): New method. + (operator *(const DiagMatrix&, const DiagMatrix&)): Optimize. + (real (const ComplexDiagMatrix&), imag (const ComplexDiagMatrix&)): + New functions. + + * fDiagMatrix.h (FloatDiagMatrix::FloatDiagMatrix (const DiagArray2&)): New template + constructor. + (FloatDiagMatrix::abs): New method decl. + (real (const FloatComplexDiagMatrix&), imag (const FloatComplexDiagMatrix&)): + New decls. + * fDiagMatrix.cc (FloatDiagMatrix::abs): New method. + (operator *(const FloatDiagMatrix&, const FloatDiagMatrix&)): Optimize. + (real (const FloatComplexDiagMatrix&), imag (const FloatComplexDiagMatrix&)): + New functions. + + * CDiagMatrix.h (ComplexDiagMatrix::ComplexDiagMatrix (const DiagArray2&)): New template + constructor. + (ComplexDiagMatrix::abs): New method decl. + (conj (const ComplexDiagMatrix&)): Add missing decl. + (ComplexDiagMatrix::all_elements_are_real): New method decl. + + * CDiagMatrix.cc (CDiagMatrix::abs): New method. + (operator *(const DiagMatrix&, const ComplexDiagMatrix&)): Optimize. + (operator *(const ComplexDiagMatrix&, const DiagMatrix&)): Optimize. + (operator *(const ComplexDiagMatrix&, const ComplexDiagMatrix&)): Optimize. + (ComplexDiagMatrix::all_elements_are_real): New method. + + * fCDiagMatrix.h (FloatComplexDiagMatrix::FloatComplexDiagMatrix (const DiagArray2&)): New template + constructor. + (FloatComplexDiagMatrix::abs): New method decl. + (conj (const FloatComplexDiagMatrix&)): Add missing decl. + (FloatComplexDiagMatrix::all_elements_are_real): New method decl. + + * fCDiagMatrix.cc (CDiagMatrix::abs): New method. + (operator *(const FloatDiagMatrix&, const FloatComplexDiagMatrix&)): Optimize. + (operator *(const FloatComplexDiagMatrix&, const FloatDiagMatrix&)): Optimize. + (operator *(const ComplexDiagMatrix&, const ComplexDiagMatrix&)): Optimize. + (FloatComplexDiagMatrix::all_elements_are_real): New method. + + * dSparse.cc (SparseMatrix::SparseMatrix (const DiagMatrix&)): New + constructor. + * dSparse.h (SparseMatrix::SparseMatrix (const DiagMatrix&)): Declare + it. + + * CSparse.cc (SparseComplexMatrix::SparseComplexMatrix (const ComplexDiagMatrix&)): + New constructor. + * CSparse.h (SparseComplexMatrix::SparseComplexMatrix (const ComplexDiagMatrix&)): + Declare it. + * mx-op-defs.h (DMM_MULTIPLY_OP, MDM_MULTIPLY_OP): Optimize. + + 2008-11-21 Jarkko Kaleva + + * EIG.h (EIG::EIG (const Matrix& a, const Matrix& b, + bool calc_eigenvectors = true)): New constructor. + (EIG::EIG (const Matrix& a, const Matrix& b, octave_idx_type& info, + bool calc_eigenvectors = true)): New constructor. + (EIG::EIG (const ComplexMatrix& a, const ComplexMatrix& b, + bool calc_eigenvectors = true)): New constructor. + (EIG::EIG (const ComplexMatrix& a, const ComplexMatrix& b, + octave_idx_type& info, bool calc_eigenvectors = true)): New + constructor. + * EIG.cc (EIG::init (const Matrix& a, const Matrix& b, + bool calc_eigenvectors)): New function. + (EIG::init (const ComplexMatrix& a, const ComplexMatrix& b, + bool calc_eigenvectors)): New function. + (EIG::symmetric_init (const Matrix& a, const Matrix& b, + bool calc_eigenvectors)): New function. + (EIG::hermitian_init (const ComplexMatrix& a, const ComplexMatrix& b, + bool calc_eigenvectors)): New function. + * fEIG.h (fEIG::fEIG (const FloatMatrix& a, const FloatMatrix& b, + bool calc_eigenvectors = true)): New constructor. + (fEIG::fEIG (const FloatMatrix& a, const FloatMatrix& b, + octave_idx_type& info, bool calc_eigenvectors = true)): New + constructor. + (fEIG::fEIG (const FloatComplexMatrix& a, const FloatComplexMatrix& b, + bool calc_eigenvectors = true)): New constructor. + (fEIG::fEIG (const FloatComplexMatrix& a, const FloatComplexMatrix& b, + octave_idx_type& info, bool calc_eigenvectors = true)): New + constructor. + (fEIG::init (const FloatMatrix& a, const FloatMatrix& b, + bool calc_eigenvectors)): New function. + (fEIG::init (const FloatComplexMatrix& a, const FloatComplexMatrix& b, + bool calc_eigenvectors)): New function. + (fEIG::symmetric_init (const FloatMatrix& a, const FloatMatrix& b, + bool calc_eigenvectors)): New function. + (fEIG::hermitian_init (const FloatComplexMatrix& a, + const FloatComplexMatrix& b, bool calc_eigenvectors)): New function. + + 2008-11-19 Jaroslav Hajek + + * dMatrix.cc (Matrix::determinant), + fMatrix.cc (FloatMatrix::determinant), + CMatrix.cc (ComplexMatrix::determinant), + fCMatrix.cc (FloatComplexMatrix::determinant): + Use atmp(i,i) instead of elem(i,i). + + 2008-11-19 Jaroslav Hajek + + * DET.h (base_det::square): New member function. + * dMatrix.cc (Matrix::determinant), + fMatrix.cc (FloatMatrix::determinant), + CMatrix.cc (ComplexMatrix::determinant), + fCMatrix.cc (FloatComplexMatrix::determinant): + Allow taking MatrixType argument. + * dMatrix.h, fMatrix.h, CMatrix.h, fCMatrix.h: Update decls. + + 2008-11-19 Jaroslav Hajek + + * DET.h: New source. + * CmplxDET.cc, CmplxDET.h, dbleDET.cc, dbleDET.h, fCmplxDET.cc, + fCmplxDET.h, floatDET.cc, floatDET.h: Remove. + * Makefile.in: Reflect changes. + * mx-defs.h: Remove DET decls. + * mx-ext.h, dMatrix.h, fMatrix.h, CMatrix.h, fCMatrix.h, + dSparse.h, CSparse.h: Include only DET.h. + * dMatrix.cc (Matrix::determinant), + fMatrix.cc (FloatMatrix::determinant), + CMatrix.cc (ComplexMatrix::determinant), + fCMatrix.cc (FloatComplexMatrix::determinant), + dSparse.cc (SparseMatrix::determinant), + CSparse.cc (SparseComplexMatrix::determinant): Use new class. + + 2008-11-18 David Bateman + + * file-ops.cc (std::string file_ops::tilde_expand (const + std::string&)): Check if the string contains a tilde and fast + return if not. + + 2008-11-17 John W. Eaton + + * dir-ops.cc (dir_entry::read): Use std::list to + cache names before converting to string_vector. + + 2008-11-14 David Bateman + + * Array2.h (Array2 Array2::index): Correct use of + resize_fill_value. + + 2008-11-12 Michael Goffioul + + * MArray-C.cc, MArray-d.cc, MArray-f.cc, MArray-fC.cc: Declare + MArray::norm specialization before implicit MArray implicit + instantiation. + * idx-vector.h (class idx_vector::idx_base_rep, class + idx_vector::idx_range_rep, class idx_vector::idx_colon_rep, class + idx_vector::idx_scalar_rep, class idx_vector::idx_vector_rep): Add + OCTAVE_API tag. + * idx-vector.cc (idx_vector::idx_scalar_rep::idx_scalar_rep(T), + idx_vector::idx_vector_rep::idx_vector_rep(const Array&)): Ditto. + * oct-inttypes.cc (octave_int::type_name): Ditto. + * oct-inttypes.cc (powf(const octave_int&,const float&)): Cast 'b' + to double. + * oct-inttypes.h: Undefine min/max. + * oct-norm.h (xnorm, xfrobnorm, xcolnorms, xrownorms): Add OCTAVE_API + tag. + * oct-norm.cc (xnorm, xfrobnorm, xcolnorms, xrownorms): Ditto. + + 2008-11-12 Jaroslav Hajek + + * DiagArray2.h (DiagArray2::maybe_delete_elements): Remove + declaration. + + 2008-11-09 Jaroslav Hajek + + * oct-norm.cc: Don't include Array.cc. + (column_norms (const MArray2&, ...)): Use std::vector instead of Array for + accumulator containers. Use empty constructor instead of + Array::resize. + (row_norms (const MArray2&, ...)): Ditto. + (column_norms (const MSparse2&, ...)): Ditto. + (row_norms (const MSparse2&, ...)): Ditto. + + 2008-10-31 Jaroslav Hajek + + * oct-norm.h: New header file. + * oct-norm.cc: New source. + * CSparse.cc (SparseComplexMatrix::row, SparseComplexMatrix::column): + New member functions. + * CSparse.h (SparseComplexMatrix): Declare them. + * dSparse.cc (SparseMatrix::row, SparseMatrix::column): + New member functions. + * dSparse.h (SparseMatrix): Declare them. + * MArray-C.cc (MArray::norm), + MArray-d.cc (MArray::norm), + MArray-fC.cc (MArray::norm), + MArray-f.cc (MArray::norm): Wrap a call to xnorm. + + * MArray-defs.h (MARRAY_NORM_BODY): Remove. + + 2008-11-02 Jaroslav Hajek + + * idx-vector.cc (idx_vector::is_complement): Set resulting extent + correctly. + * Array.cc (Array::delete_elements (int, const idx_vector&)): + Fix check for invalid dim. + + 2008-10-31 Jaroslav Hajek + + * idx-vector.h (idx_vector::idx_range_rep::extent): Don't change + extent when len is zero. + * idx-vector.h (idx_vector::idx_range_rep::idx_range_rep (void)): + Create empty range by default. + + 2008-10-30 Jaroslav Hajek + + * oct-inttypes.h (octave_int_abs): New function. + (octave_int_arith_base::div): Use octave_int_abs instead of + std::abs. + * oct-inttypes.cc (octave_int_arith_base): Ditto. + + 2008-10-28 Jaroslav Hajek + + * Array-C.cc Array-d.cc Array-f.cc Array-fC.cc Array-i.cc Array-s.cc: + Don't use semicolon after INSTANTIATE_ARRAY_ASSIGN. + * Array-util.h (zero_dims_inquire): New declarations. + (is_in, how_many_lgt, short_freeze): Remove declarations. + * Array-util.cc (zero_dims_inquire): New functions. + (is_in, how_many_lgt, short_freeze): Remove functions. + * Array.cc (Array::index, Array::resize_fill, Array::resize, + Array::assign, Array::delete_elements): + Rewrite. + * Array.h (Array::index, Array::resize_fill, Array::resize, + Array::assign, Array::delete_elements): + Rewrite interfaces. + * Array2.h (Array2::resize): Call Array::resize_fill. + * Array3.h (Array3::resize): Call Array::resize_fill. + * ArrayN.h (ArrayN::resize): Remove declarations. + (ArrayN::index): Fix call to resize_fill_value. + * Sparse.cc (assign, assign1): Use zero-based indices. + * chMatrix.h: Include mx-op-defs.h + * dim-vector.h (dim_vector::any_neg, dim_vector::chop_all_singletons, + dim_vector::redim): New member functions. + * idx-vector.cc: Mostly rewrite. + * idx-vector.h: Mostly rewrite. + + 2008-10-29 Michael Goffioul + + * lo-specfun.cc (cbesj, cbesy, cbesi, cbesk, cbesh1, cbesh2): Do not + use std::complex::real() and std::complex::imag() as l-value, this is + not supported under MSVC. + + 2008-10-28 John W. Eaton + + * lo-specfun.cc: Fix prototypes for the Fortran subroutines cbesh, + cbesi, cbesj, cbesk, and cbesy. + (cbesh, cbesi, cbesj, cbesk, cbesy): Fix calls to Fortran + subroutines. + + 2008-10-28 Brian Gough + + * lo-specfun.cc (zbesi): Fix scaling factor for negative alpha. + (cbesi): Likewise. + + 2008-10-23 John Swensen + + * oct-shlib.cc (octave_dyld_shlib::open): Call NSLinkEditError to + get better diagnostic if NSLinkModule fails. + + 2008-10-23 John W. Eaton + + * oct-shlib.cc (octave_dlopen_shlib::open): Use RTLD_NOW instead + of RTLD_LAZY. + + 2008-10-12 Jaroslav Hajek + + * CSparse.cc (ComplexMatrix::expm): Improve inverse preconditioning + according to Marco Caliari. + * dSparse.cc (Matrix::expm): Likewise. + * fCSparse.cc (FloatComplexMatrix::expm): Likewise. + * fSparse.cc (FloatMatrix::expm): Likewise. + + 2008-10-10 Jaroslav Hajek + + * sparse-util.h (SparseCholPrint): Change char * argument to const + char *. + * sparse-util.cc (SparseCholPrint): Likewise. + + 2008-10-09 Jaroslav Hajek + + * oct-sort.cc (octave_sort::merge_getmem, + octave_sort::merge_freemem): Replace malloc -> new [], free -> + delete []. + (octave_sort::merge_lo, octave_sort::merge_hi): Replace + std::memcpy and std::memmove with std::copy. + + 2008-10-08 John W. Eaton + + * Sparse-op-defs.h (SPARSE_SMSM_BOOL_OPS): Duplicate code for scalar + sparse arguments rather than rely on extern function. + + 2008-10-08 Jaroslav Hajek + + * oct-inttypes.h (octave_base_int::compute_threshold): Return + exclusive bounds rather than inclusive, be resistant to compiler + optimizations. + (octave_base_int::convert_real): Use exclusive bounds. + + 2008-10-07 Jaroslav Hajek + + * oct-inttypes.h (OCTAVE_INT_DOUBLE_BIN_OP): Change octave_int64 to + octave_uint64 where appropriate. + + 2008-10-06 David Bateman + + * Sparse-op-defs.h (SPARSE_SMSM_CMP_OPS): Duplicate code for scalar + sparse arguments rather than rely on extern function. + + 2008-10-06 John W. Eaton + + * Spasre-op-defs.h: Undo previous change. + + 2008-10-01 Jaroslav Hajek + + * oct-inttypes.h (octave_int::one, octave_int::zero): Declare + constants. + * oct-inttypes.cc: Define them. + * oct-inttypes.h: Define mixed operations via long double if possible. + * oct-inttypes.cc: Define alternative implementations for 64-bit + multiplication and mixed operations. + * mx-ops: Instantiate all 64-bit integer operations. + + 2008-10-06 Jaroslav Hajek + + * oct-lookup.h: Mark functions inline. Add missing std:: qualifiers. + + 2008-10-06 John W. Eaton + + * Sparse.h (Sparse::elt_type): New typedef. + * Sparse-op-defs.h (SPARSE_SMSM_BOOL_OP, SPARSE_MSM_CMP_OP): + Use it to call sparse-matrix/scalar operator instead of attempting + to instantiate mixed-type sparse-matrix/scalar operators. + + 2008-10-03 Jaroslav Hajek + + * Array.h (Array::maybe_delete_elements): Remove rfv argument from + declaration. + * Array.cc (Array::maybe_delete_elements): Remove all usages of + rfv. + + 2008-10-03 Jaroslav Hajek + + * Array.cc (assignN): Do not call maybe_delete_elements when + for empty matrix. + + 2008-09-30 Jaroslav Hajek + + * oct-inttypes.h: Mostly rewrite. + * oct-inttypes.cc: Modstly rewrite. + + 2008-09-29 Jaroslav Hajek + + * Array.cc (Array::maybe_delete_elements_2(idx_vector&)): Return on + empty index vector. + + 2008-09-26 Jaroslav Hajek + + * Array.cc (assign1, assign2, assignN): Do not call + maybe_delete_elements. + (maybe_delete_elements (Array&)): Call the 1D and 2D + special handlers if possible. + * Sparse.cc (assign1, assign2, assignN): Do not call + maybe_delete_elements. + + 2008-09-22 Brian Gough + + * oct-rand.cc (initialize_mersenne_twister): Use separate + initializations for each generator to avoid correlation. + + 2008-09-12 Jaroslav Hajek + + * oct-inttypes.h (pow (const octave_int&, const octave_int&)): + + 2008-09-19 John W. Eaton + + * Array.cc (assign1, assign2, assignN): + Clear lhs index before throwing error. + (Array::value): Clear index before throwing error. + + 2008-09-18 Jaroslav Hajek + + * Array.cc (maybe_delete_elements_2 (idx_vector&)): Fix tests to get + better Matlab compatibility. + (maybe_delete_elements (idx_vector&, idx_vector&)): Fix tests to get + better Matlab compatibility, simplify, gripe on invalid 2-D deletion. + + 2008-09-18 Jaroslav Hajek + + * Array.h (Array::coerce): Use octave_idx_type instead of int. + + 2008-09-12 Jaroslav Hajek + + * oct-inttypes.h (pow (const octave_int&, const octave_int&)): + Handle negative exponent correctly. + + 2008-08-19 David Bateman + + * oct-inttypes.h (template inline T2 + octave_int_fit_to_range (const T1&, const T2&, const T2&), + template inline T octave_int_fit_to_range (const + double&, const T&, const T&), template <> inline T2 + octave_int_fit_to_range (const T1&, const T2&, const T2&), + OCTAVE_S_US_FTR): Check and flag integer trunctation. + (OCTAVE_INT_FIT_TO_RANGE, OCTAVE_INT_FIT_TO_RANGE2): Adapt for the + above change. + (OCTAVE_INT_CONV_FIT_TO_RANGE): New macro for conversion to + integer types. + (octave_int::conv_error_type): New enum to flag conversion and + math warnings. + (octave_int::octave_int (U i), octave_int::octave_int + (double i), octave_int<>::octave_int (const octave_int& i)): + Flag conversion and math errors other than integer truncation. + (octave_int octave_int::operator - (void)): Flag truncation + error. + (static bool get_trunc_flag (void), static bool clear_trunc_flag + (void, static bool trunc_flag)): Delete. + (static int get_conv_flag (void), static bool get_trunc_flag (void), + static bool get_nan_flag (void), static bool get_non_int_flag (void), + static bool get_math_trunc_flag (void), static void + clear_conv_flag (void)): New functions to query and reset + conversion and mathw arning state. + (static int cov_flag): New parameter holding current conversion + and math warning state. Set it to zero. + (template octave_int powf (float, const + octave_int&), template octave_int powf (const + octave_int&, float)): New functions. + + 2008-08-12 Jaroslav Hajek + + * lo-ieee.cc (octave_ieee_init): Try to ensure that octave_NaN is + classified as positive by lo_ieee_signbit. + + 2008-08-11 Jaroslav Hajek + + * Array.cc (no_op_fcn): New static function. + (Array::hermitian): If fcn is null, set to no_op_fcn. + + 2008-08-07 John W. Eaton + + * sprse-base-chol.h, oct-sparse.h: Don't include config.h. + + * cmd-edit.cc, file-ops.h, kpse.cc, oct-env.cc, pathsearch.cc: + Replace all uses of NPOS with std::string::npos. + + * fCmplxLU.h, CmplxLU.h: Fix typo in definition of + multiple-inclusion guard macro. + + 2008-08-05 John W. Eaton + + * file-ops.h, file-ops.cc (file_ops::static_members): + New singleton class for static members of file_ops. + + * pathsearch.h, pathsearch.cc (class dir_path::static_members): + New singleton class for static members of dir_path. + + * pathsearch.cc (dir_path::init): Move octave_kpathsea_initialized + here from file scope. + + 2008-08-04 John W. Eaton + + * oct-env.cc (octave_env::do_set_program_name, + octave_env::do_base_pathname): Fix usage of + file_ops::dir_sep_chars. + (octave_env::do_make_absolute): Fix usage of + file_ops::dir_sep_chars and file_ops::dir_sep_str. + (octave_env::do_get_home_directory): Fix usage of + file_ops::dir_sep_str. + + * file-ops.h (file_ops::do_is_dir_sep): New function. + (file_ops_::is_dir_sep): Call it. + * file-ops.cc (class file_ops): Make it a proper singleton object. + (file_ops::file_ops): New constructor. + (file_ops::instance_ok): New function. + (file_ops::xdir_sep_char): Now private. No longer static. Rename + from dir_sep_char. + (file_ops::xdir_sep_str): Likewise, from dir_sep_str. + (file_ops::xdir_sep_chars): Likewise, from dir_sep_chars. + (file_ops::dir_sep_char, file_ops::dir_sep_str, + file_ops::dir_sep_chars): New functions. + (file_ops::recursive_rmdir): Fix usage of file_ops::dir_sep_str. + (file_ops::concat): Fix usage of file_ops::dir_sep_char. + + * oct-env.cc (octave_env::instance_ok): Fix typo in error message. + + 2008-07-30 John W. Eaton + + * oct-inttypes.h: Style fixes. + + 2008-07-30 Jaroslav Hajek + + * oct-inttypes.h (octave_int::trunc_flag): New member static field. + (octave_int::get_trunc_flag, octave_int::clear_trunc_flag): New + member functions. + (octave_int::octave_int (const octave_int&)): set trunc_flag + on truncation. + (SPECIALIZE_WIDENING_CONVERSION): New macro. + (DECLARE_OCTAVE_INT_TYPENAME): New macro. + + 2008-07-29 David Bateman + + * lo-ieee.h (LO_IEEE_NA_HW, LO_IEEE_NA_LW, LO_IEEE_NA_FLOAT): + Change definition so cast from single to double and visa versa + maintains NA value. + (LO_IEEE_NA_HW_OLD, LO_IEEE_NA_LW_OLD): Keep old values. + (extern OCTAVE_API int __lo_ieee_is_old_NA (double)): Function to + detect old NA value. + (extern OCTAVE_API double __lo_ieee_replace_old_NA (double)): + Function to replace old NA value with new new. + * lo-cieee.c (int __lo_ieee_is_old_NA (double)): Function to + detect old NA value. + (double __lo_ieee_replace_old_NA (double)): Function to replace + old NA value with new new. + * data-conv.cc (void read_doubles(std::istream&, double *, + save_type, int, bool, octave_mach_info::float_format)): Test if + loaded NA values is the old representation and replace it. + + 2008-07-28 Jaroslav Hajek + + * lo-math.h: Ensure log2 is undefined from cmath in C++ mode. + + 2008-07-21 Michael Goffioul + + * oct-mutex.h (octave_base_mutex::octave_base_mutex): Initialize + count to 1, not -1. + + * oct-mutex.cc (octave_base_mutex::lock, octave_base_mutex::unlock): + Replace error calls with (*current_liboctave_error_handler). + + 2008-07-21 John W. Eaton + + * regex-match.cc (regex_match::init): Initialize err to 0. + + 2008-07-19 John W. Eaton + + * oct-mutex.h (class octave_base_mutex): New class. + (class octave_mutex): Don't use union for rep and count. + (octave_mutex::rep): Declare as octave_base_mutex. + (octave_mutex::count): Delete. + (octave_mutex::lock, octave_mutex::unlock): No longer virtual. + (octave_mutex::~octave_mutex): No need to check that rep is + valid or set rep to zero after deleting. + (octave_mutex::operator =): No need to check that rep is valid. + * oct-mutex.cc (octave_w32_mutex, octave_pthread_mutex): Derive + from octave_base_mutex, not octave_mutex. + + 2008-07-18 John W. Eaton + + * oct-mutex.h (octave_mutex::octave_mutex (int)): Initialize rep + to 0, not count. + * oct-mutex.cc (octave_mutex::octave_mutex (void)): Set rep->count + to 1 instead of incrementing it. + + 2008-07-17 Michael Goffioul + + * dNDArray.cc: Do not include ctor NDArray(Array, + bool, bool) into conditional HAVE_FFTW3 preprocessor statement. + + 2008-07-16 John W. Eaton + + * oct-mutex.h (octave_autolock::octave_autolock (void), + octave_autolock (const octave_autolock&), + octave_autolock::operator = (const octave_autolock&)): + Delete definitions. + + 2008-07-16 Michael Goffioul + + * cmd-edit.cc (event_hook_lock): New static mutex variable. + (command_editor::event_handler): Lock and copy event_hook_set before + executing handlers. + (command_editor::add_event_hook, command_editor::remove_event_hook): + Autolock event_hook_lock. + + 2008-07-15 Michael Goffioul + + * oct-mutex.h, oct-mutex.cc: New files. + * Makefile.in: Add them to appropriate lists. + + 2008-07-15 John W. Eaton + + * oct-sort.cc, oct-sort.h (octave_sort::count_run): Declare + descending arg as bool&. + (octave_sort::sort): Pass bool to count_run for descending arg. + + 2008-07-11 John W. Eaton + + * dDiagMatrix.cc (DiagMatrix::diag): Return empty ColumnVector if + number of rows or columns is 0. + * fDiagMatrix.cc (FloatDiagMatrix::diag): Likewise. + + * Array-util.cc (is_vector): Avoid GCC warning. + * Array-f.cc (Array::sort): Likewise. + * Array-d.cc (Array::sort): Likewise. + * dbleQR.cc (QR::QR (const Matrix&, const Matrix&)): Likewise. + * CmplxQR.cc (ComplexQR::ComplexQR (const ComplexMatrix&, const + ComplexMatrix&)): Likewise. + * floatQR.cc (FloatQR::FloatQR (const FloatMatrix&, const + FloatMatrix&)): Likewise. + * fCmplxQR.cc (FloatComplexQR::FloatComplexQR (const + FloatComplexMatrix&, const FloatComplexMatrix&)): Likewise. + * Quad.cc (IndefQuad::do_integrate (octave_idx_type&, + octave_idx_type&, float&), FloatIndefQuad::do_integrate, + DefQuad::do_integrate octave_idx_type&, octave_idx_type&, float&, + FloatIndefQuad::do_integrate): Likewise. + + * mx-op-defs.h (MS_BOOL_OP, SM_BOOL_OP, MM_BOOL_OP, NDS_BOOL_OP, + SND_BOOL_OP, NDND_BOOL_OP): Detect NaN values. + * Array-util.cc (gripe_nan_to_logical_conversion): New function. + * Array-util.h: Provide decl. + * oct-inttypes.h (xisnan (octave_int)): New function. + * lo-mappers.h (xisnan (bool), xisnan (char)): New inline functions. + + * CMatrix.cc, CNDArray.cc, CSparse.cc, dMatrix.cc, dNDArray.cc, + dSparse.cc, fCMatrix.cc, fCNDArray.cc, fMatrix.cc, fNDArray.cc: + New member function, any_element_is_nan. + * CMatrix.h, CNDArray.h, CSparse.h, dMatrix.h, dNDArray.h, + dSparse.h, fCMatrix.h, fCNDArray.h, fMatrix.h, fNDArray.h: + Provide decl. + + 2008-07-10 David Bateman + + * dNDArray.cc (NDArray::NDArray (const Array&, + bool, bool)): New constructor. + * dNDArray.h: Provide decl. + + 2008-07-10 Michael Goffioul + + * lo-specfun.h: Fix typo in erff/erfcf declaration. + * lo-specfun.cc: Ditto. Add atanhf implementation. + + 2008-06-20 Jaroslav Hajek + + * MatrixType.h: Add missing include statement. + + 2008-06-13 Michael Goffioul + + * lo-mappers.cc (arg): Remove ambiguity about atan2(float,float) usage. + * fCmplxDET.cc (FloatComplexDET::initialize10): Likewise, for pow. + + 2008-06-11 John W. Eaton + + * so-array.h, so-array.cc, Array-so.cc: Delete. + * Makefile.in: Remove them from the lists. + + 2008-06-05 John W. Eaton + + * oct-shlib.cc (octave_base_shlib::remove): Only dereference + counter if iterator is valid. + + 2008-06-02 David Bateman + + * fCmplxDET.cc (FloatComplexDET::value_will_overflow, + FloatComplexDET:value_will_underflow): Replace DBL_MIN and DBL_MAX + with FLT_MIN and FLT_MAX. + * floatDET.cc ((FloatDET::value_will_overflow, + FloatDET:value_will_underflow): Ditto. + * lo-cieee.c (__lo_ieee_float_is_NA): Check only a sngle word for + float NA value. + (lo_ieee_float_inf_value): Return correct float Infinity value. + (lo_ieee_float_NA_value): Return correct float NA value. + (lo_ieee_float_NaN_value): Return correct float NaN value. + * lo-ieee.cc (octave_ieee_init): Set float NA value correctly. + * lo-ieee.h (lo_ieee_float): value of union is of type float. + (LO_IEEE_NA_FLOAT): Make NA value a valid float NaN. + (LO_IEEE_NA_FLOAT_LW): Delete. + + 2008-06-02 David Bateman + + * fCmplxLU.cc (class FloatComplexLU): Correct error in instantiation. + * floatLU.cc (class FloatLU): ditto. + * floatLU.h (class FloatLU): ditto. + + * floatAEPBAL.cc (octave_idx_type FloatAEPBALANCE::init (const + FloatMatrix&, const std::string&)): Use FloatMatrix to initialize + balancing_mat. + + * Makefile.in (MATRIX_INC): Add fCmplxAEPBAL.h and floatAEPBAL.h. + (MATRIX_SRC): Add fCmplxAEPBAL.cc and floatAEPBAL.cc. + + 2008-05-21 David Bateman + + * Quad-opts.in: Handle single precision tolerances. + * Quad.cc (float_user_fcn): New static variable. + (quad_float_fcn_ptr): New typedef. + (qagp, quagi): New QUADPACK decls. + (float_user_function): New function. + (DefQuad::do_integrate, IndefQuad::do_integrate): Float versions. + (FloatDefQuad::do_integrate, FloatIndefQuad::do_integrate): + New functions. + * Quad.h (class Quad): Handle float type. + (class FloatDefQuad, class FloatIndefQuad): New classes. + + 2008-05-21 Jaroslav Hajek + + * fCMatrix.h (xgemm): Provide decl. + (xcdotc, csyrk, cherk): New F77 decls. + * fMatrix.cc (xgemm): New function. + (operator * (const FloatMatrix&, const FloatMatrix&)): Simplify. + (get_blas_trans_arg): New function. + * fCMatrix.h (xgemm): Provide decl. + (ssyrk): New F77 decl. + * fCMatrix.cc (xgemm): New function. + (operator * (const FloatComplexMatrix&, const + FloatComplexMatrix&)): Simplify. + (get_blas_trans_arg): New function. + + * dMatrix.cc, CMatrix.cc, Sparse-op-defs.h: Add missing copyright. + + * Sparse-op-defs.h (SPARSE_FULL_MUL): Simplify scalar*matrix case. + Correct indenting. + (SPARSE_FULL_TRANS_MUL): New macro. + (FULL_SPARSE_MUL): Simplify scalar*matrix case. Correct indenting. + Move OCTAVE_QUIT one level up. + (FULL_SPARSE_MUL_TRANS): New macro. + * dSparse.h (mul_trans, trans_mul): Provide decl. + * dSparse.cc (mul_trans, trans_mul): New functions. + * CSparse.h (mul_trans, trans_mul, mul_herm, herm_mul): Provide decl. + * CSparse.cc (mul_trans, trans_mul, mul_herm, herm_mul): New functions. + + * dMatrix.h (xgemm): Provide decl. + * dMatrix.cc (xgemm): New function. + (operator * (const Matrix&, const Matrix&)): Simplify. + (get_blas_trans_arg): New function. + * CMatrix.h (xgemm): Provide decl. + * CMatrix.cc (xgemm): New function. + (operator * (const ComplexMatrix&, const ComplexMatrix&)): Simplify. + (get_blas_trans_arg): New function. + + * MatrixType.cc (matrix_real_probe, matrix_complex_probe): + New template functions. + (MatrixType::MatrixType (const Matrix&), + MatrixType::MatrixType (const FloatMatrix&)): + just call matrix_real_probe. + (MatrixType::MatrixType (const ComplexMatrix&), + MatrixType::MatrixType (const FloatComplexMatrix&)): + just call matrix_complex_probe. + + * MatrixType.cc (MatrixType::MatrixType (matrix_type, bool)): + add missing test for Unknown. + + 2008-05-21 David Bateman + + * fCMatrix.cc (float rcond): Replace with float rcon everywhere + to avoid shadowed variable warning + (float ComplexMatrix::rcond (void) const): New method for + reciprocal condition number calculation. + (float ComplexMatrix::rcond (MatrixType &mattype) const): ditto. + * fCMatrix.h (float rcond): Replace with float rcon everywhere + to avoid shadowed variable warning + (float ComplexMatrix::rcond (void) const): New method for + reciprocal condition number calculation. + (float ComplexMatrix::rcond (MatrixType &mattype) const): ditto. + * fMatrix.cc (float rcond): Replace with float rcon everywhere + to avoid shadowed variable warning + (float Matrix::rcond (void) const): New method for + reciprocal condition number calculation. + (float Matrix::rcond (MatrixType &mattype) const): ditto. + * fMatrix.h (float rcond): Replace with float rcon everywhere + to avoid shadowed variable warning + (float Matrix::rcond (void) const): New method for + reciprocal condition number calculation. + (float Matrix::rcond (MatrixType &mattype) const): ditto. + + * Array.cc: Fix transpose tests. + + * CmplxGEBAL.cc (ComplexGEPBALANCE), dbleGEPBAL.cc (GEPBALANCE), + fCmplxGEPBAL.cc (FloatComplexGEPBALANCE), floatGEPBAL.cc + (FloatGEPBALANCE): New class for generalized eigenvalue balancing. + * CmplxGEBAL.h (ComplexGEPBALANCE), dbleGEPBAL.h (GEPBALANCE), + fCmplxGEPBAL.h (FloatComplexGEPBALANCE), floatGEPBAL.h + (FloatGEPBALANCE): Declare them. + * Makefile.in (MATRIX_INC): Include them here. + (MATRIX_SRC): and here. + + * floatAEPBAL.cc (FloatAEPBALANCE), fCmplxAEPBAL.cc + (FloatComplexAEPBALANCE): New classes for single precision + Algebraic eignvalue balancing. + * floatAEPBAL.h (FloatAEPBALANCE), fCmplxAEPBAL.h + (FloatComplexAEPBALANCE): Declare them. + * Makefile.in (MATRIX_INC): Include them here. + (MATRIX_SRC): and here. + + * floatHESS.cc (FloatHESS), fCmplxHESS.cc (FloatComplexHESS): New + classes for single precision Hessenberg decomposition. + * floatHESS.h (FloatHESS), fCmplxHESS.h (FloatComplexHESS): + Declare them. + * Makefile.in (MATRIX_INC): Include them here. + (MATRIX_SRC): and here. + + * floatQR.cc (FloatQR), fCmplxQR.cc (FloatComplexQR): New + classes for single precision QR decomposition. + * floatQR.h (FloatQR), fCmplxQR.h (FloatComplexQR): + Declare them. + * Makefile.in (MATRIX_INC): Include them here. + (MATRIX_SRC): and here. + + * floatQRP.cc (FloatQRP), fCmplxQRP.cc (FloatComplexQRP): New + classes for single precision permuted QR decomposition. + * floatQRP.h (FloatQRP), fCmplxQRP.h (FloatComplexQRP): + Declare them. + * Makefile.in (MATRIX_INC): Include them here. + (MATRIX_SRC): and here. + + * mx-defs (FloatAEPBALANCE, FloatComplexAEPBALANCE, + ComplexGEPBALANCE, FloatGEPBALANCE,FloatComplexGEPBALANCE, + FloatHESS, FloatComplexHESS, FloatQR, FloatComplexQR, QRP, + ComplexQRP, FloatQRP, FloatComplexQRP): Declare classes. + + 2008-05-20 David Bateman + + * Array.cc (Array Array::transpose () const): Modify for tiled + transpose to limit the number of cache misses. + (Array Array::hermitian (T (*)(const&)) const): New method + for matrix conjugate transpose. + * Array.h (Array hermitian (T (*)(const&)) const): Declare it. + + * DiagArray2.cc (DiagArray2 DiagArray2::transpose () const): + Specialization for diagonal arrays. + (DiagArray2 DiagArray2::transpose (T (*) (const&)) const): + Ditto. + + * MArray.h (MArray hermitian transpose () const): Ditto. + * MArray2.h (MArray2 hermitian hermitian hermitian transpose () const): Ditto. + (MDiagArray hermitian + + * CMatrix.cc (double rcond): Replace with double rcon everywhere + to avoid shadowed variable warning + (double ComplexMatrix::rcond (void) const): New method for + reciprocal condition number calculation. + (double ComplexMatrix::rcond (MatrixType &mattype) const): ditto. + * CMatrix.h (double rcond): Replace with double rcon everywhere + to avoid shadowed variable warning + (double ComplexMatrix::rcond (void) const): New method for + reciprocal condition number calculation. + (double ComplexMatrix::rcond (MatrixType &mattype) const): ditto. + * dMatrix.cc (double rcond): Replace with double rcon everywhere + to avoid shadowed variable warning + (double Matrix::rcond (void) const): New method for + reciprocal condition number calculation. + (double Matrix::rcond (MatrixType &mattype) const): ditto. + * dMatrix.h (double rcond): Replace with double rcon everywhere + to avoid shadowed variable warning + (double Matrix::rcond (void) const): New method for + reciprocal condition number calculation. + (double Matrix::rcond (MatrixType &mattype) const): ditto. + + * regex-match.cc, regex-match.h: New class for simple regular + expression matching + * Makefile.in (INCLUDES): Add regex-match.h here, and + (LIBOCTAVE_CXX_SOURCES): regex-match.cc here. + + 2008-05-19 David Bateman + + * dSparse.cc: Replace some DGBCON with GPBCON where they are + incorrectly used. + + 2008-05-13 David Bateman + + * idx-vector.cc (IDX_VEC_REP::idx_vector_rep (const boolNDArray&)): + If len is zero size the index vector in the same manner as if len + is not zero. + + 2008-05-05 John W. Eaton + + * cmd-edit.cc (command_editor::re_read_init_file, + gnu_readline::do_re_read_init_file): New functions. + * cmd-edit.h (command_editor::re_read_init_file): Provide decl. + (command_editor::do_re_read_init_file): New function. + * oct-rl-edit.c (octave_rl_re_read_init_file): New function. + * oct-rl-edit.h: Provide decl. + + 2008-05-05 Rafael Laboissiere + + * oct-rl-edit.c (octave_read_init_file): Simply call rl_read_init_file. + + 2008-05-01 John W. Eaton + + * oct-shlib.h (octave_shlib::number_of_functions_loaded): + Return size_t instead of int value. + * oct-shlib.cc (octave_base_shlib::number_of_functions_loaded): + Likewise. + (octave_base_shlib::fcn_names): Now a std::map object. + Adjust all uses. + (octave_base_shlib::fcn_names_iterator, + octave_base_shlib::fcn_names_const_iterator): New typedefs. + (octave_base_shlib::add_to_fcn_names, octave_base_shlib::remove): + Perform reference counting for functions accessed. + + 2008-04-30 Jaroslav Hajek + + * lo-mappers.cc (xlog2 (double)): Compute log (2), not log2 (2). + (xlog2 (Complex), xlog2 (double, int&), xlog2 (Complex, int&)): + New functions. + * lo-mappers.h: Provide decls. + + 2008-04-25 Michael Goffioul + + * oct-lookup.h (seq_lookup): Do not use output value of fill_n (MSVC + does not support it). + + 2008-04-24 Michael Goffioul + + * lo-sysdep.cc (octave_popen2): Don't set PIPE_NOWAIT for parentWrite. + + 2008-04-21 John W. Eaton + + * idx-vector.cc (IDX_VEC_REP::idx_vector_rep (const boolNDArray&)): + Fix for-loop condition. + + 2008-04-19 Jaroslav Hajek + + * CmplxCHOL.cc, CmplxQR.cc, dbleCHOL.cc, dbleQR.cc: Fix calls to error() + + 2008-04-16 David Bateman + + * Sparse.h (Sparse& operator = (Sparse&)): Move definition + of the operator for here + * Sparse.cc (Sparse& Sparse::operator = (Sparse&)): To + here. Also delete idx. + * Array.h (Array& operator = (Array&)): Move definition + of the operator for here + * Array.cc (Array& Array::operator = (Array&)): To + here. Also delete idx. + + 2008-04-09 Michael Goffioul + + * lo-mappers.cc (xround): Avoid floating-point overflow when input + value is equal to bitmax implementation taken from gnulib). + + * file-stat.cc (file_stat::update_internal): Do not strip trailing + file separator when path length is equal to 1 (handle case '\') under + __WIN32__ platforms. + + 2008-04-07 Jaroslav Hajek + + * dbleQR.h, dbleQR.cc (QR::shift_cols): New method. + * CmplxQR.h, CmplxQR.cc (ComplexQR::shift_cols): New method. + * dbleCHOL.h, dbleCHOL.cc (CHOL::insert_sym, CHOL::delete_sym, + CHOL::shift_sym): New methods. + * CmplxCHOL.h, CmplxCHOL.cc (ComplexCHOL::insert_sym, + ComplexCHOL::delete_sym, ComplexCHOL::shift_sym): New methods. + + 2008-04-03 John W. Eaton + + * lo-sysdep.cc [__WIN32__ && ! __CYGWIN__]: Include windows.h. + + 2008-03-27 Jaroslav Hajek + + * oct-lookup.h: New file. + + 2008-03-26 David Bateman + + * Array.cc (assignN): Additional fix for vector assignments. + + 2008-03-25 David Bateman + + * Array.cc (assignN): refactor calculation of new dimensions when + original matrix is empty. + * Array-util.cc (bool is_vector (const dim_vector&)): New + function. + * Array-util.h (bool is_vector (const dim_vector&)): declare it. + + 2008-03-25 David Bateman + + * sparse-base-chol.h (sparse_base_chol_rep::~sparse_base_chol_rep + (void)): Only free the factorization if it was created + * spase-base-chol.cc (sparse_base_chol_rep::init): Don't attempt + to factorize a matrix that has been flagged as not being positive + definite. + + 2008-03-25 John W. Eaton + + * lo-mappers.cc (xtrunc): New function. + * lo-mappers.h: Provide decl. + + 2008-03-25 Jaroslav Hajek + + * lo-specfun.cc (expm1, log1p): New functions. + * lo-specfun.h: Provide decls. + + * lo-mappers.cc (xroundb): New function. + * lo-mappers.h: Provide decl. + + 2008-03-23 David Bateman + + * mx-ops: Definite binary operators for mixed integer array + + array case, except for 64bit cases. + + 2008-03-21 David Bateman + + * oct-sparse.h: Add headers for amd.h. + + 2008-03-20 David Bateman + + * Array.cc (Array Array::diag (octave_idx_type) const): New + method for diag function. + * Array.h (Array diag (octave_idx_type) const): Declare it. + * Array2.h (Array2 diag (octave_idx_type) const): New method. + * MArray2.h (MArray2 diag (octave_idx_type) const): ditto. + * ArrayN.h (ArrayN diag (octave_idx_type) const): ditto. + * MArrayN.h (MArrayN diag (octave_idx_type) const): ditto. + + * Sparse.cc (Sparse Sparse::diag (octave_idx_type) const): + New method for the diag function. + * Sparse.h (Sparse diag (octave_idx_type) const): Declare it. + * MSparse.h (MSparse diag (octave_idx_type) const): New method. + + * Range.cc (Matrix Range::diag (octave_idx_type) const): + New method for the diag function. + * Range.h (Matrix diag (octave_idx_type) const): Declare it. + + * CDiagMatrix.cc (ComplexColumnVector ComplexDiagMatrix::diag + (void) const): delete. + * dDiagMatrix.cc (ColumnVector DiagMatrix::diag (void) const): delete. + * dDiagMatrix.h (ColumnVector diag (void) const): ditto. + * CMatrix.cc (ComplexColumnVector ComplexMatrix::diag (void) const): + delete. + * CMatrix.h (ComplexColumnVector diag (void) const): ditto. + * dMatrix.cc (ColumnVector Matrix::diag (void) const): ditto. + * dMatrix.h (ColumnVector diag (void) const): ditto. + * boolMatrix.cc (boolMatrix boolMatrix::diag (void) const): ditto. + * boolMatrix.h (boolMatrix diag (void) const): ditto. + * chMatrix.cc (charMatrix charMatrix::diag (void) const): ditto. + * chMatrix.h (charMatrix diag (void) const): ditto. + * intNDArray.cc (intNDArray intNDArray::diag (void) const): ditto. + * intNDArray.h (intNDArray diag (void) const): ditto. + + * CMatrix.cc (ComplexMatrix ComplexMatrix::diag (octave_idx_type) + const): Rewrite in terms of template classes function. + * CMatrix.h (ComplexMatrix diag (octave_idx_type)const ): Change + return type. + * dMatrix.cc (Matrix Matrix::diag (octave_idx_type) const): Rewrite in + terms of template classes function. + * dMatrix.h (Matrix diag (octave_idx_type) const): Change return type. + * boolMatrix.cc (boolMatrix boolMatrix::diag (octave_idx_type) const): + Rewrite in terms of template classes function. + * boolMatrix.h (boolMatrix diag (octave_idx_type) const): Change + return type. + * chMatrix.cc (charMatrix charMatrix::diag (octave_idx_type) + const): Rewrite in terms of template classes function. + + * dSparse.cc (SparseMatrix SparseMatrix::diag (octave_idx_type) const): + Rewrite in terms of template classes function. + * CSparse.cc (SparseComplexMatrix SparseComplexMatrix::diag + (octave_idx_type) const): ditto. + * boolSparse.cc (SparseBoolMatrix SparseBoolMatrix::diag + (octave_idx_type) const): ditto. + * intNDArray.cc (intNDArray intNDArray::diag + (octave_idx_type) const): ditto. + + * CNDArray.cc (ComplexNDArray ComplexNDArray::diag + (octave_idx_type) const): New method. + * CNDArray.h (ComplexNDArray diag (octave_idx_type) const): + Declare it. + * dNDArray.cc (NDArray NDArray::diag (octave_idx_type) const): New + method. + * dNDArray.h (NDArray diag (octave_idx_type) const): Declare it. + * chNDArray.cc (charNDArray charNDArray::diag + (octave_idx_type) const): New method. + * chNDArray.h (charNDArray diag (octave_idx_type) const): + Declare it. + + + 2008-03-19 John W. Eaton + + * oct-env.cc (octave_env::do_base_pathname): Also handle rooted + relative filenames. + + 2008-03-19 David Bateman + + * Array.cc (assignN): If orig_empty allow assignment like + a(1:10,1)=1:10 + + * Sparse.h (template Sparse map (F fcn) + const): New template function. + * MSparse.h (template MSparse map (F fcn) + const): ditto. + * dSparse.cc (SparseMatrix SparseMatrix::map (dmapper) const, + SparseComplexMatrix SparseMatrix::map (cmapper) const, + SparseBoolMatrix SparseMatrix::map (bmapper) const): Rewrite in + terms of the new template functor. + * CSparse.cc (SparseMatrix SparseComplexMatrix::map (dmapper) const, + SparseComplexMatrix SparseComplexMatrix::map (cmapper) const, + SparseBoolMatrix SparseComplexMatrix::map (bmapper) const): ditto. + + 2008-03-18 David Bateman + + * lo-specfun.cc (Complex xlgamma (const Complex&)): New function. + * lo-specfun.h (Complex xlgamma (const Complex&)): Declare it. + * randpoison.c (xlgamma): Use lgamma if HAVE_LGAMMA is defined. + + * dNDArray.cc (NDArray::min, NDArraymax): chop trailing singletons. + * CNDarray.cc (ComplexNDArray::min, CompelxNDArray::max): ditto. + * intNDarray.cc (intNDArray::min, intNDArray::max): ditto. + + * Array.cc (Array::index): Don't short_freeze on index with + fewer dimensions than the array only if the last dimension is empty. + + 2008-03-18 John W. Eaton + + * oct-inttypes.h (octave_int_fit_to_range): + Use partial specialization for double values. + + 2008-03-08 John W. Eaton + + * Sparse.cc (Sparse::index, assign): Likewise. + * Array.cc (Array::index1, Array::index2, Array::indexN, + assign2): Eliminate use of idx_vector::is_one_zero method. + * idx-vector.cc, idx-vector.h + (idx_vector::maybe_convert_one_zero_to_idx, + IDX_VEC_REP::maybe_convert_one_zero_to_idx): Delete unused function. + (IDX_VEC_REP::one_zero): Delete data member. + (IDX_VEC_REP::is_colon_equiv): Delete one_zero check. + (idx_vector::is_one_zero, IDX_VEC_REP::is_one_zero): Delete function. + + 2008-03-07 John W. Eaton + + * idx-vector.cc (IDX_VEC_REP::idx_vector_rep (bool), + IDX_VEC_REP::idx_vector_rep (const boolNDArray&)): + Simply perform the equivalent of "find" on the bool argument here, + set one_zero to 0 and orig_dims to size of resulting index vector. + (IDX_VEC_REP::freeze): Don't call maybe_convert_one_zero_to_idx here. + + 2008-03-05 Jaroslav Hajek + + * dbleQR.cc (QR::insert_col, QR::insert_row, + QR::delete_col, QR::delete_row): Use 0-based indexing. + * CmplxQR.cc (ComplexQR::insert_col, ComplexQR::insert_row, + ComplexQR::delete_col, ComplexQR::delete_row): Likewise. + + * dbleCHOL.cc: Small doc and declaration fixes. + * CmplxHOL.cc: Small doc and declaration fixes. + * CmplxQR.cc (ComplexQR::ComplexQR): Adjust code to match dbleQR.cc. + * dbleQR.cc (QR::delete_row): Fix incorrect test. + * CmplxQR.cc (ComplexQR::delete_row): Fix incorrect test. + + 2008-03-04 Jaroslav Hajek + + * dbleCHOL.cc (CHOL::set, CHOL::update, CHOL::downdate): + New functions. + * dbleCHOL.h: Provide decls. + * CmplxCHOL.cc (ComplexCHOL::set, ComplexCHOL::update, + ComplexCHOL::downdate): New functions. + * CmplxCHOL.h: Provide decls. + + * dbleQR.cc (QR::update, QR::insert_col, QR::delete_col, + QR::insert_row, QR::delete_row): New methods. + (QR::QR (const Matrix&, const MAtrix&)): New constructor. + * dbleQR.h: Provide decls. + * CmplxQR.cc (ComplexQR::update, ComplexQR::insert_col, + ComplexQR::delete_col, ComplexQR::insert_row, + ComplexQR::delete_row): New methods. + (ComplexQR::ComplexQR (const ComplexMatrix&, const ComplexMAtrix&)): + New constructor. + * CmplxQR.h: Provide decls. + + 2008-03-04 Jaroslav Hajek + + * Array-C.cc, Sparse-C.cc: Include oct-sort.cc after definitions + of < and > operators. + + 2008-03-03 David Bateman + + * Sparse.cc (assign1, assign1): Take care of repeated index + values. Adapt the test code to check for these cases. + + 2008-03-03 Jaroslav Hajek + + * dMatrix.cc (Matrix::lssolve): Also avoid dgelsd lwork query bug + in lssolve method that accepts column vector argument. Correct + calculation of nlvl. + * CMatrix.cc (ComplexMatrix::lssolve): Likewise, for zgelsd. + + 2008-02-27 John W. Eaton + + * oct-rand.cc (class octave_rand): Make it a proper singleton class. + + 2008-02-26 John W. Eaton + + * oct-rand.cc (get_dist_id): Fix typo. + (get_dist_id, octave_rand::distribution, octave_rand::scalar, + fill_rand): Improve error messages. + + * oct-rand.cc (unknown_dist): New dist type. + (uniform_dist, normal_dist, expon_dist, poisson_dist, gamma_dist): + Use static const int instead of #define. + (get_dist_id): Default retval is unknown_dist. + + * oct-rand.cc (rand_states): New static variable. + (initialize_rand_states, get_dist_id, get_internal_state, + set_internal_state, switch_to_generator, save_state): New functions. + (octave_rand::state): New arg to specify distribution. + Save state in rand_states instead of setting internal state. + Return named state. Use set_internal_state to generate proper + state vector from user supplied state. Save and restore current + state if specified and current distributions are different. + (octave_rand::distribution (void)): Use switch rather than if/else. + (octave_rand::distribution (const std::string&)): Likewise. + (octave_rand::uniform_distribution, + octave_rand::normal_distribution, + octave_rand::exponential_distribution, + octave_rand::poisson_distribution, + octave_rand::gamma_distribution): Call switch_to_generator. + (octave_rand::state, maybe_initialize): For new_generators, just + call initialize_rand_states if not already initialized. + (octave_rand::scalar, fill_rand): Save state after generating value. + + * dMatrix.cc (Matrix::lssolve): Avoid another dgelsd lwork query bug. + * CMatrix.cc (ComplexMatrix::lssolve): Likewise, for zgelsd + + 2008-02-24 John W. Eaton + + * oct-inttypes.h (octave_int_helper): New class. Provide + specializations for signed and unsigned types. + (octave_int::operator >>=, octave_int::abs, + octave_int::signum): Use static functions from + octave_int_helper class. + + * oct-inttypes.h, oct-inttypes.cc (OCTAVE_US_TYPE1_CMP_OP, + OCTAVE_US_TYPE2_CMP_OP): Tag function declarations and definitions + with "template <>". + + 2008-02-22 John W. Eaton + + * CSparse.cc, SparseCmplxLU.cc, SparsedbleLU.cc, dSparse.cc, + file-ops.cc, oct-group.cc, oct-shlib.cc, sparse-base-chol.h, + sparse-dmsolve.cc: Use 0 instead of NULL. + + 2008-02-22 David Bateman + + * boolSparse.cc (SparseBoolMatrix SparseBoolMatrix::diag + (octave_idx_type) const): New method. + * boolSparse.h (SparseBoolMatrix SparseBoolMatrix::diag + (octave_idx_type) const): Declare it. + + * base-lu.h (lu_type Y (void) const): New method to return + factorization of xGETRF directly. + * sparse-base-lu.cc (template lu_type sparse_base_lu :: Y (void) const): New method + to simulate the retirn of xGETRF. + * sparse-base-lu.h (template lu_type sparse_base_lu :: Y (void) const): Declare it + (SparseMatrix R (void) const): Method to return scaling factors. + * SparsedbleLU.cc: Allow two element pivot thresholding and + scaling. + * SparseCmplxLU.cc: ditto. + * SparsedbleLU.h: Modify constructors to allow passing of two + element pivoting thresholds and flag for scaling + * SparseCmplxLU.h: ditto. + + * base-lu.cc (ColumnVector P_vec (void) const): New method to + return permutations as a vector. + * base-lu.h (ColumnVector P_vec (void) const): Declare it. + * sparse-base-lu.cc (ColumnVector Pr_vec (void) const): New method + return row permutations as a vector. + (ColumnVector Pc_vec (void) const): New method return column + permutations as a vector. + * sparse-base-lu.h (ColumnVector Pr_vec (void) const): Declare it. + (ColumnVector Pc_vec (void) const): Declare it. + + * oct-spparms.cc: Add sym_tol field. + + 2008-02-20 David Bateman + + * SparseComplexQR.cc (ComplexMatrix + SparseComplexQR::SparseComplexQR_rep::Q + (void) const): New method. + * SparseComplexQR.h (ComplexMatrix + SparseComplexQR::SparseComplexQR_rep::Q + (void) const): Declare it. + * SparseQR.cc (Matrix SparseQR::SparseQR_rep::Q (void) const): ditto. + * SparseQR.h (Matrix SparseQR::SparseQR_rep::Q (void) const): ditto. + + 2008-02-20 John W. Eaton + + * boolNDArray.h (boolNDArray (const Array2&)): Delete. + + * Marray2.h (MArray2 (const Array2&), + MArray2 (const MArray2&)): New templated constructors. + + * Array2.h (Array2 (const Array&), + Array2 (const Array&, const dim_vector&)): + New templated constructors. + + * CColVector.cc (ComplexColumnVector::map): Forward to MArray::map. + * dColVector.cc (ColumnVector::map): ditto. + * CRowVector.cc (ComplexRowVector::map): ditto. + * dRowVector.cc (RowVector::map): ditto. + * CMatrix.cc (ComplexMatrix::map): Forward to MArray2::map. + * dMatrix.cc (Matrix::map): ditto. + + * dNDArray.cc (NDArray::map): New functions. + * dNDArray.h: Provide decls. + + * CNDArray.cc (ComplexNDArray::map): New functions. + * CNDArray.h: Provide decls. + + * MArray2.h (MArray2::map): New function. + * Array2.h (Array2::map): New function. + * MArrayN.h (MArrayN::map): New function. + * ArrayN.h (ArrayN::map): New function. + * Array.h (Array::map): New function. + + * functor.h: New file. + * Makefile.in (INCLUDES): Add it to the list. + + 2008-02-20 David Bateman + + * CColVector.h, CColVector.cc (ComplexColumnVector::apply): Remove. + * dColVector.h, dColVector.cc (ColumnVector::apply): ditto. + * CRowVector.h, CRowVector.cc (ComplexRowVector::apply): ditto. + * dRowVector.h, dRowVector.cc (RowVector::apply): ditto. + * CMatrix.h, CMatrix.cc (ComplexMatrix::apply): ditto. + * dMatrix.h, dMatrix.cc (Matrix::apply): ditto. + + * CSparse.cc (apply): Remove. + (map): Replace old mapper code with code taken from ov-mapepr.cc + * CSparse.h (map): Reeclare them. + (dmapper, cmapper, bmapper): typedefs for mapper functions. + * dSparse.cc (apply): Remove. + (map): Replace old mapper code with code taken from ov-mapepr.cc + * dSparse.h (map): Reeclare them. + (dmapper, cmapper, bmapper): typedefs for mapper functions. + + * intNDArray.cc (abs, signum): Two new mapper functions. + * intNDArray.h (abs, signum): Declare them. + * oct-inttypes.h (abs, signum): Mapper functions on scalar integer + base type. + + 2008-02-15 John W. Eaton + + * dMatrix.cc (Matrix::lssolve): Check n > mnthr, not n > m when + deciding whether to calculate workspace size, with mnthr from ILAENV. + * CMatrix.cc (ComplexMatrix::lssolve): Likewise. + + 2008-02-14 John W. Eaton + + * CColVector.cc, CMatrix.cc, CRowVector.cc, CSparse.cc, + CmplxAEPBAL.cc, CmplxCHOL.cc, CmplxHESS.cc, CmplxLU.cc, + CmplxQR.cc, CmplxQRP.cc, CmplxSCHUR.cc, CmplxSVD.cc, DASPK.cc, + DASRT.cc, DASSL.cc, EIG.cc, LSODE.cc, NLEqn.cc, Quad.cc, + dColVector.cc, dMatrix.cc, dRowVector.cc, dSparse.cc, + dbleAEPBAL.cc, dbleCHOL.cc, dbleHESS.cc, dbleLU.cc, dbleQR.cc, + dbleQRP.cc, dbleSCHUR.cc, dbleSVD.cc: + Don't check f77_exception_encountered. + + 2008-02-12 John W. Eaton + + * CMatrix.cc: Declare xilaenv instead of ilaenv. + (ComplexMatrix::lssolve): Call xilaenv instead of ilaenv. + + 2008-02-12 Jason Riedy + + * Array.cc (ascending_compare, descending_compare): Remove + non-standard extern in the instantiations. + + * oct-sort.cc: Include and sprinkle with std:: as needed. + + * dMatrix.cc (ILAENV): Declare LAPACK Fortran function. + (Matrix::lssolve): Use ILAENV to query smlsiz. And add an ugly + workaround for DGELSD's broken lwork query. The formula is from + LAPACK's dgelsd.f source and allocates enough workspace to use an + efficient algorithm in the short-and-fat case (n > m). + * CMatrix.cc (ILAENV): Declare LAPACK Fortran function. + (ComplexMatrix::lssolve): Use ILAENV to query smlsiz. And add an + ugly workaround for DGELSD's broken lwork query, as with double. + + 2008-02-12 John W. Eaton + + * sparse-sort.cc: Don't explicitly instantiate + class octave_sort, + class octave_sort, or + class octave_sort. + + * Sparse.h (INSTANTIATE_SPARSE_SORT): Delete macro. + * Sparse-C.cc, Sparse-b.cc, Sparse-d.cc: Don't use it. + + * Range.cc (Range::sort_internal): Avoid shadow warning from gcc. + + 2008-02-11 John W. Eaton + + * Makefile.in ($(MAKEDEPS)): Skip dependencies if omit_deps is defined. + + 2008-02-08 John W. Eaton + + * oct-sort.h (enum sortmode): Eliminate UNDEFINED. Change all + uses of UNDEFINED to ASCENDING. + + 2008-02-07 John W. Eaton + + * Range.cc (Range::sort_internal): Rename from sort. New arg, + ASCENDING, with default value of true. + (Range::sort_internal (Array&, bool)): New function. + (Range::sort (octave_idx_type, sortmode) const): New function. + (Range::sort (Array&, octave_idx_type, sortmode) + const): New function. + * Range.h: Fix/provide decls. + + * intNDArray.cc (intNDArray::any (int)): Use != for comparison. + + 2008-02-06 John W. Eaton + + * Makefile.in ($(OPTS_INC)): Use mv instead of move-if-change. + (stamp-prereq): Eliminate. + (clean): Don't remove stamp-prereq. + (libraries): Don't depend on stamp-prereq. + (PREREQ): New macro. + ($(MAKEDEPS)): Depend on $(PREREQ), not stamp-prereq. + (distclean): Simplify with $(PREREQ). + (OPT_BASE): New macro. + (OPT_IN): Rename from OPTS_INC_DATA. Define in terms of OPT_BASE. + (OPT_INC): Rename from OPTS_INC. Define in terms of OPT_BASE. + + 2008-02-05 John W. Eaton + + * Makefile.in: Unconditionally include $(MAKEDEPS). + Mark $(MAKEDEPS) as .PHONY targets if omit_deps is true. + + 2008-02-03 Michael Goffioul + + * Array.cc (ascending_compare, descending_compare, + Array::sort): Declare explicit specialization for T=double to + avoid symbol duplication error at link time. + * Array-d.cc (ascending_compare, descending_compare): Declare and + define as nonmember functions, not member functions of Array. + + 2008-02-03 John W. Eaton + + * Array-i.cc: Also instantiate Arrays for long long type if it exists. + + 2008-02-03 Michael Goffioul + + * Array.cc: Don't include Range.h. + + 2008-01-31 David Bateman + + * oct-sort.cc: conversion of int to octave_idx_type where needed + for 64-bit builds. + (IFLT): Allow IFLT macro to be overridden. + * oct-sort.h: conversion of int to octave_idx_type where needed + for 64-bit builds. + (enum sortmode): Type of sort to perform. + (vec_index): Simple class to aid in indexed sorts. + + * Array.h ( Array sort (octave_idx_type, sortmode) const, + Array sort (Array &, octave_idx_type, + sortmode) const): Array sorting methods. + (INSTANTIATE_ARRAY_SORT, NO_INSTANTIATE_ARRAY_SORT): Macros to + instantiate the array sorting methods. + * Array.cc (ascending_compare, descending_compare): New template + functions for generic sort comparison. + ( Array Array::sort (octave_idx_type, sortmode) const, + Array Array::sort (Array &, octave_idx_type, + sortmode) const): Array sorting functions based of octave_sort + class. + * Array-C.cc: Instantiate the complex array sort methods. + (IFLT): New macro to override the one in the + octave_sort class to avoid need for Complex < and > operators. + (static double xabs (const Complex&)): Complex abs function + avoiding std::abs(Inf) returning NaN with some compilers. + (ascending_compare, descending compare): override template + functions for complex comparison. + * Array-d.cc: Instantiate the double array sort methods. + (Array Array::sort (octave_idx_type, + sortmode) const, Array Array::sort + (Array &, octave_idx_type, sortmode) const): + Array sorting functions based of octave_sort using uint64 sorting + on IEE754 doubles, for speed and correct sorting of Inf and NaN. + (ascending_compare, descending compare): override template + functions for double and uint64 comparison. + * Array-b.cc, Array-ch.cc, Array-i.cc, Array-s.cc, Array-str.cc: + Instantiate the array sort methods. + * Array-idx-vec.cc: Null instantiation of array sort methods. + * Array2.h, Array3.h, ArrayN.h (sort): 2, 3 and N-dimensional + versions of the sort methods based on Array::sort. + + * CSparse.cc, dSparse.cc: Remove inclusion of octa-sort.h. + * Sparse.h ( Sparse sort (octave_idx_type, sortmode) const, + Sparse sort (Array &, octave_idx_type, + sortmode) const): Sparse sorting methods. + (INSTANTIATE_ARRAY_SORT): Macro to instantiate the sparse sorting + methods. + * Sparse.cc: replace sort with lsort throughout to avoid shadowing + of new sort method. + (sparse_ascending_compare, sparse_descending_compare): New template + functions for generic sort comparison. + ( Sparse Sparse::sort (octave_idx_type, sortmode) const, + Sparse Sparse::sort (Sparse &, octave_idx_type, + sortmode) const): Sparse sorting functions based of octave_sort + class. + * Sparse-C.cc: Instantiate the complex sparse sort methods. + (IFLT): New macro to override the one in the + octave_sort class to avoid need for Complex < and > operators. + (static double xabs (const Complex&)): Complex abs function + avoiding std::abs(Inf) returning NaN with some compilers. + (sparse_ascending_compare, sparse_descending compare): override + template functions for complex comparison. + * Sparse-d.cc: Instantiate the cdouble sparse sort methods. + (sparse_ascending_compare, sparse_descending compare): override + template functions for double comparison. + * Array-b.cc: Instantiate the sparse sort methods. + + 2008-01-25 Jaroslav Hajek + + * idx-vector.h (idx_vector::idx_vector_rep::range_base, + idx_vector::idx_vector_rep::range_step, + idx_vector::idx_vector_rep::range_step): New data members. + (idx_vector::idx_vector_rep::idx_vector_rep): Initialize them. + * idx-vector.cc (IDX_VEC_REP::sort, IDX_VEC_REP::is_colon_equiv, + IDX_VEC_REP::init_state, IDX_VEC_REP::operator =, + IDX_VECTOR_REP::idx_vector_rep): Handle range. + + 2008-01-18 Marco Caliari + + * dMatrix.cc (Matrix::expm): Correctly perform reverse permutation. + * CMatrix.cc (ComplexMatrix::expm): Likewise. + + 2008-01-22 Michael Goffioul + + * oct-time.cc (octave_base_tim::init): Validate pointer argument; + this fixes the "localtime(-1)" crash under Windows. + + 2008-01-18 John W. Eaton + + * dMatrix.cc (solve_singularity_warning): New function. + (Matrix::expm): Pass pointer to solve_singularity_warning to + Matrix::solve method. Exit early if Matrix::solve fails. + Limit sqpow value to avoid overflowing scale factor. + * CMatrix.cc (solve_singularity_warning): New function. + (ComplexMatrix::expm): Pass pointer to solve_singularity_warning to + ComplexMatrix::solve method. Exit early if ComplexMatrix::solve fails. + Limit sqpow value to avoid overflowing scale factor. + From Marco Caliari . + + 2008-01-10 Kim Hansen + + * Sparse.cc: New tests for slicing of sparse matrices. + + 2008-01-07 David Bateman + + * Sparse-op-defs.h (SPARSE_ANY_ALL_OP_ROW_CODE): Don't break from + loop if this test succeeds. + + 2008-01-03 David Bateman + + * MSparse.cc (SPARSE_A2A2_OP): If first arg is scalar zero, then + need unary operator on remaining argument + * Sparse-op-defs.h (SPARSE_SMSM_BIN_OP_1): ditto. + + 2007-12-21 John W. Eaton + + Version 3.0.0 released. + + 2007-12-18 David Bateman + + * Sparse.cc (template Sparse Sparse::index + (idx_vector&, int) const): Fix case indexing of non zero scalar + stored as a sparse matrix. + (template Sparse Sparse::index (idx_vector&, + idx_vector&, int) const): For the non permutated indexing case, + fix link list calculation and use. + + 2007-12-17 John W. Eaton + + * Array.cc (Array::indexN): Correctly handle scalar indexed by + N-d array. + + 2007-12-17 David Bateman + + * Sparse-op-defs.h (SPARSE_ANY_ALL_OP_ROW_CODE): Use ridx for row + index. + + 2007-12-11 John W. Eaton + + * Sparse.cc (Sparse::index (idx_vector&, int) const): + If indexing scalar with empty matrix, return empty array with same + size as index. + + 2007-12-10 John W. Eaton + + * NLEqn.h (NLEqn::fval): New data member. Adjust constructors + and assignment operator. + (NLEqn::function_value): New function. + * NLEqn.cc (NLEqn::solve): If solution is successful, compute + function value. + + * file-ops.cc (file_ops::concat): New function. + * file-ops.h: Provide decl. + + 2007-12-07 John W. Eaton + + * oct-time.cc (octave_base_tm::init): Only assign t->tm_zone if it + is not 0. + + 2007-12-07 David Bateman + + * Sparse-op-defs.h (SPARSE_SMS_CMP_OP, SPARSE_SMS_BOOL_OP, + SPARSE_SSM_CMP_OP, SPARSE_SSM_BOOL_OP, SPARSE_SMSM_CMP_OP, + SPARSE_SMSM_BOOL_OP, SPARSE_BASE_REDUCTION_OP): Use sparse + indexing where possible rather than the elem method. + (SPARSE_REDUCTION_OP_ROW_EXPR, SPARSE_REDUCTION_OP_COL_EXPR, + SPARSE_ANY_ALL_OP_ROW_CODE, SPARSE_ANY_ALL_OP_COL_CODE): + Replace for new version of SPARSE_BASE_REDUCTION_OP. + (SPARSE_ALL_OP): Specialize the initial value, and only treat dim + = 0 directly. + * CSparse.cc (SparseComplexMatrix SparseComplexMatrix::sumsq (int) + const): Replace ROW_EXPR and COL_EXPR functions for new version of + SPARSE_BASE_REDUCTION_OP. + (SparseComplexMatrix SparseComplexMatrix::prod (int) const): + Specialize the initial value, and only treat dim = 0 directly. + * dSparse.cc (SparseMatrix SparseMatrix::sumsq (int) const): + ditto. + (SparseMatrix SparseMatrix::prod (int) const): ditto. + + 2007-12-06 John W. Eaton + + * CMatrix.cc (ComplexMatrix::expm): Update pointers to internal + data for npp and dpp after assignments. + * dMatrix.cc (Matrix::expm): Use same method as ComplexMatrix::expm. + + 2007-12-04 John W. Eaton + + * Sparse.cc (assign (Sparse&, const Sparse&)): + Do nothing if one index is empty. + + 2007-12-04 David Bateman + + * Sparse.cc (assign (Sparse&, const Sparse&)): + Resize matrix as well if one dimension of lhs is zero and the rhs + index exceeds the lhs index. + * Sparse.cc (assign1 (Sparse&, const Sparse&)): + Don't resize to a smaller matrix for empty matrices with a max rhs + index smaller than the non zero lhs index. + + 2007-12-04 Michael Goffioul + + * Array-util.h: Tag permute_vector_compare with OCTAVE_API. + + 2007-12-03 Moritz Borgmann + + * Array-util.cc (permute_vector_compare): Move here from Array.cc. + * Array-util.h (permute_vector, permute_vector_compare): Provide decls. + * Array.cc (permute_vector, permute_vector_compare): Delete. + + 2007-12-03 David Bateman + + * Sparse.cc (template int assign + (Sparse&, const Sparse&)): Only set return matrix size to + rhs values if both no. rows and columns are zero. + + 2007-11-30 John W. Eaton + + * oct-sort.cc, oct-sort.h: Style fixes. + + * lo-math.h: New file. + * Makefile.in (INCLUDES): Add it to the list. + * Array2.h, ArrayN.h, CmplxDET.cc, DASPK.cc, DASPK.h, DASRT.cc, + DASRT.h, DASSL.cc, DASSL.h, LSODE.cc, LSODE.h, NLEqn.h, Quad.h, + Range.cc, dbleDET.cc, lo-cieee.c, lo-ieee.cc, lo-mappers.cc, + oct-time.cc, oct-time.h, randgamma.c, randmtzig.c, + randpoisson.c: Include lo-math.h instead of cmath or math.h. + * lo-mappers.h: Don't include sunmath.h here. + + 2007-11-26 John W. Eaton + + * idx-vector.h (idx_vector::idx_vector_rep (const intNDArray&)): + Eliminate unnecessary second arg from call to tree_to_mat_idx. + + * oct-inttypes.h (operator bool, operator char): Delete. + (bool_value, char_value, double_value, float_value): New functions. + + 2007-11-26 David Bateman + + * intNDArray.cc (template intNDArray + intNDArray::max (int) const, template intNDArray + intNDArray::max (ArrayN&, int) const, + template intNDArray intNDArray::min (int) const, + template intNDArray intNDArray::min + (ArrayN&, int) const): New methods for integer + classes. + * intNDArray.h (class intNDArray): Add min/max methods + * mx-op-defs.h (MIXMAX_DECLS, MINMAX_FCNS, SND_MINMAX_FCN, + NDS_MINMAX_FCN, NDND_MINMAX_FCN): New macro for instantiation of + min/max functions. + * int8NDArray.h, int16NDArray.h, int32NDArray.h, int64NDArray.h, + uint8NDArray.h, uint16NDArray.h, uint32NDArray.h, uint64NDArray.h + (MINMAX_DECLS(T)): Declare the min/max functions for integer + types. + * int8NDArray.cc, int16NDArray.cc, int32NDArray.cc, int64NDArray.cc, + uint8NDArray.cc, uint16NDArray.cc, uint32NDArray.cc, uint64NDArray.cc + (MINMAX_FCNS(T)): Instantiate the min/max functions for integer + types. + + * Arrayc.cc (Array::index (idx_vector&, idx_vector&, int, + const T& rfv) const): If ndims != 2 call ND version of index. + + 2007-11-14 John W. Eaton + + * oct-inttypes.h (opeator T (void) const): New conversion operator. + + * lo-specfun.cc (zbesi): When alpha is negative, don't limit + correction to half-integer values. From Eric Chassande-Mottin + . + + 2007-11-07 Michael Goffioul + + * dMatrix.cc, CMatrix.cc: Help MSVC compiler to resolve + ambiguities related to math functions (in C++ mode). + + 2007-11-06 David Bateman + + * intNDArray.cc (intNDArray intNDArray::sum (int) const): + New method. + * intNDarray.h (intNDArray sum (int) const): Declare it. + * boolNDArray.cc (boolNDArray boolNDArray::sum (int) const): + New method. + * boolNDarray.cc (boolNDArray sum (int) const): Declare it. + * MArray-def.h (MARRAY_NORM_BODY): Scale frobenius norm by infinity + norm to avoid issues of over- and underflow. From Rolf Fabian + . + + 2007-10-30 David Bateman + + * DASRT-opts.in, LSODE-opts.in: Doc fixes for small book format. + + 2007-10-30 John W. Eaton + + * CMatrix.cc (lssolve): Compute size of rwork and iwork arrays. + * dMatrix.cc (lssolve): Compute size of iwork array. + + 2007-10-29 David Bateman + + * CMatrix.h (lssolve (const Matrix&, octave_idx_type&, + octave_idx_type&, double&) const, lssolve (const ComplexMatrix&, + octave_idx_type&, octave_idx_type&, double&) const, lssolve + (const ColumnVector&, octave_idx_type&, octave_idx_type&, + double& rcond) const, lssolve (const ComplexColumnVector&, + octave_idx_type&, octave_idx_type&, double& rcond) const): New + declarations. + * CMatrix.cc (lssolve (const Matrix&, octave_idx_type&, + octave_idx_type&, double&) const, lssolve (const ComplexMatrix&, + octave_idx_type&, octave_idx_type&, double&) const, lssolve + (const ColumnVector&, octave_idx_type&, octave_idx_type&, + double& rcond) const, lssolve (const ComplexColumnVector&, + octave_idx_type&, octave_idx_type&, double& rcond) const): New + methods. + (lssolve (const Matrix&, octave_idx_type&, octave_idx_type&, + double&) const, lssolve (const ComplexMatrix&, octave_idx_type&, + octave_idx_type&, double&) const): Also return rcond from the + singular values returned by XGELSD. + * dMatrix.h (lssolve (const Matrix&, octave_idx_type&, + octave_idx_type&, double&) const, lssolve (const ComplexMatrix&, + octave_idx_type&, octave_idx_type&, double&) const, lssolve + (const ColumnVector&, octave_idx_type&, octave_idx_type&, + double& rcond) const, lssolve (const ComplexColumnVector&, + octave_idx_type&, octave_idx_type&, double& rcond) const): New + declarations. + * dMatrix.cc (lssolve (const Matrix&, octave_idx_type&, + octave_idx_type&, double&) const, lssolve (const ComplexMatrix&, + octave_idx_type&, octave_idx_type&, double&) const, lssolve + (const ColumnVector&, octave_idx_type&, octave_idx_type&, + double& rcond) const, lssolve (const ComplexColumnVector&, + octave_idx_type&, octave_idx_type&, double& rcond) const): New + methods. + (lssolve (const Matrix&, octave_idx_type&, octave_idx_type&, + double&) const, lssolve (const ComplexMatrix&, octave_idx_type&, + octave_idx_type&, double&) const): Also return rcond from the + singular values returned by XGELSD. + + 2007-10-26 David Bateman + + * dMatrix.cc (Matrix::lssolve): Use xGELSD for rank deficient + matrices to avoid reliability issues with xGELSY. + * CMatrix.cc (ComplexMatrix::lssolve): Likewise. + + 2007-10-25 John W. Eaton + + * oct-time.cc (octave_gmtime::init, octave_localtime::init): + Call unix_time on arg instead of relying on conversion operator. + + * oct-time.h (octave_time::double_value): New function. + (octave_time::operator double () const): Delete. + (octave_time::operator time_t () const): Delete. + + 2007-10-24 John W. Eaton + + * strptime.c: Also compile if OCTAVE_HAVE_BROKEN_STRPTIME is defined. + + 2007-10-23 John W. Eaton + + * CRowVector.cc (operator * const ComplexRowVector&, const + ComplexColumnVector&)): Delete spurious code left from patch. + + 2007-10-22 Kim Hansen + + * chMatrix.cc, lo-utils.cc, oct-env.cc, oct-uname.cc, + sparse-sort.cc: Include . + + 2007-10-17 John W. Eaton + + * oct-sparse.h: Don't include metis.h. + + * dSparse.cc (SparseMatrix::fsolve): Delete special code for METIS. + * CSparse.cc (SparseComplexMatrix::fsolve): Likewise. + * sparse-base-chol.cc (sparse_base_chol::sparse_base_chol_rep::init): Likewise. + + 2007-10-16 John W. Eaton + + * dMatrix.cc (Matrix::inverse): Only check rcond == 0 if the + matrix is hermitian or calc_cond is true. + * CMatrix.cc (ComplexMatrix::inverse): Likewise. + + 2007-10-12 John W. Eaton + + * Change copyright notices in all files that are part of Octave to + GPLv3 or any later version. + + 2007-10-11 Brian Gough + + * DASSL-opts.in, LSODE-opts.in: Spelling fixes. + + 2007-10-10 Olli Saarela + + * DASPK-opts.in, DASRT-opts.in, DASSL-opts.in: Spelling fixes. + + 2007-10-10 John W. Eaton + + * LPsolve.h, LPsolve.cc: Delete. + * Makefile.in: Remove them from the INCLUDES and + LIBOCTAVE_CXX_SOURCES lists. + + 2007-10-09 John W. Eaton + + * oct-time.cc (octave_strptime::init): Initialize t.tm_mon to -1 + and t.tm_year to INT_MIN before call to oct_strptime. Adjust + values to zero after call if they remain unchanged. + + * dSparse.cc (SparseMatrix::all_elements_are_zero): New function. + * dNDArray.cc (NDArray::all_elements_are_zero): New function. + + 2007-10-09 David Bateman + + * oct-time.cc (octave_strptime::init): Only call mktime if mday is + valud and mon and year are also filled in. + + * Array2.h (Array2::Array2(const dim_vector&), + Array2::Array(const dim_vector&, const T&)): Check that + dim_vector is 2 dimensional. + + * Sparse.cc (Sparse Sparse::index (idx_vector&, idx_vector&, + int)): Remove a for loop in the random indexing case at the + expense of maintaining a set of linked lists of indices that point + to the same column in the original matrix. + (int assign (Sparse&, Sparse)): Take a const copy of lhs + and use it on the RHS of expressions to avoid unnecessary calls to + make_unique. + + 2007-10-08 David Bateman + + * oct-rl-edit. (typedef rl_quoting_fcn_ptr, rl_dequoting_fcn_ptr, + rl_char_is_quoted_fcn_ptr, rl_command_fcn_ptr): New typedefs + for readline compatible functions. + (octave_rl_redisplay): Redisplay the current line of text. + (octave_rl_newline): Change interface to the same + as used by the equivalent readline function itself. + (octave_rl_filename_quoting_desired, + octave_rl_set_filename_quote_characters, + octave_rl_set_completer_quote_characters, + octave_rl_qet_quoting_function, octave_rl_qet_dequoting_function, + octave_rl_set_char_is_quoted_function): New functions to control + readline filename quoting and line acceptace. + * oct-rl-edit.c (octave_rl_newline): Change interface to the same + as used by the equivalent readline function itself. + (octave_rl_redisplay): Redisplay the current line of text. + (octave_rl_filename_quoting_desired, + octave_rl_set_filename_quote_characters, + octave_rl_set_completer_quote_characters, + octave_rl_qet_quoting_function, octave_rl_qet_dequoting_function, + octave_rl_set_char_is_quoted_function): New functions to control + readline filename quoting and line acceptace. + * cmd-edit.h (typedef quoting_fcn, typedef dequoting_fcn, + typedef char_is_quoted_fcn, user_accept_line_fcn): New typedefs + to map C++ function to readline compatible functions. + (set_filename_quote_characters): New function to set the + characters to if they appear in a filename that force the filename + to be quoted. + (set_completer_quote_characters): The characters that the readline + completion function considers as quotation characters. + (set_quoting_function, set_dequoting_function, + set_char_is_quoted_function, set_user_accept_line_function): + Functions to set the Octave functions to perform quoting and the + acceptance of a line of text by readline. + (get_quoting_function, get_dequoting_function, + get_char_is_quoted_function, get_user_accept_line_function): + Functions to get the above functions. + (accept_line): New method for the command_editor to accept a line + of text. + (file_quoting_desired): Function to set whether readline should + attempt to quote filenames. + (do_set_filename_quoting_characters, + do_set_completer_quote_characters, do_set_quoting_function, + do_set_dequoting_function, do_set_char_is_quoted_function, + do_set_user_accept_line_function, do_get_quoting_function, + do_get_dequoting_function, do_get_char_is_quoted_function, + do_get_user_accept_line_function, do_filename_quoting_desired): + Virtual functions to control the behavior of readline quoting and + acceptance of lines. + (do_accept_line): Virtual function for the accept line function. + * cmd-edit.cc (class gnu_readline do_set_filename_quote_characters, + do_completer_quote_characters, do_set_quoting_function, + do_set_dequoting_function, do_set_char_is_quoted_function, + do_set_user_accept_line_function, do_get_quoting_function, + do_get_dequoting_function, do_get_user_accept_line_function, + do_accept_line, do_filename_quoting_desired, command_quoter, + command_dequoter, command_char_is_quoted, command_accept_line): + New functions in gnu_readline class to control filename quoting + and line acceptance. + (quoting_function, dequoting_function, char_is_quoted_function, + user_accept_line_function): private variable to store functions + supplied for readline quoting and line acceptance. + (gnu_readline::gnu_readline): Also set the new function pointers + to zero. + (gnu_readline::do_newline): Adapt to new octave_rl_newline + interface. + (gnu_readeline::operate_and_get_next): Use new accept_line + function rather than newline. + (default_ommand_editor::do_accept_line): New method. + (class command_editor set_filename_quote_characters, + set_completer_quote_characters, set_quoting_function, + set_dequoting_function, set_char_is_quoted_function, + set_user_accept_line_function, get_quoting_function, + get_dequoting_function, get_user_accept_line_function, + accept_line, filename_quoting_desired): New functions checking + instance before calling virtual function. + + * CMatrix.h, dMatrix.h, boolMatrix.h, chMatrix.h, MArray2.h, + Array2.h: Add dim_vector constructors. + * charNDArray.h (charNDArray (const dim_vector&)): Add missing + const to dim_vector constructors. + * boolMatrix.cc, chMatrix.cc, intNDArray.cc (diag (void), diag + (octave_idx_type)): New methods to constructor diagonal matrices. + * boolMatrix.h, chMatrix.h, intNDArray.h (diag (void), diag + (octave_idx_type)): Declare them. + + 2007-10-06 John W. Eaton + + * lo-specfun.cc: (zlgamma): Delete. + (xgamma): Use C library gamma function if available. + (xlgamma): Use C library lgamma function if available. + (xlgamma) [! HAVE_LGAMMA]: Allow calculation for any value of X + other than NaN or Inf. + + 2007-10-05 John W. Eaton + + * lo-specfun.cc (zlgamma): New function. + + 2007-10-04 John W. Eaton + + * oct-sort.cc (octave_sort::binarysort): Remove register + qualifiers on local variables. + + 2007-10-04 Marco Caliari + + * CMatrix.cc (ComplexMatrix::expm): Limit shift to values less + than log(realmax) to avoid issues with NaN. + + 2007-10-01 John W. Eaton + + * oct-time.cc (octave_strptime::init): Call mktime to propertly + initialize wday and yday. + From Matthias Drochner . + + * cmd-edit.cc (command_editor::do_decode_prompt_string): Don't + insert extra '\001' when decoding \[ and \]. + + 2007-09-26 David Bateman + + * dMatrix.cc (lssolve): Replace the use of xGELSS with xGELSY with + is much faster and no less accurate. + * CMatrix.cc (lssolve): ditto. + + 2007-09-25 David Bateman + + * dMatrix.cc (utsolve, ltsolve, fsolve, lssolve): Allow + zero dimensioned matrices. + * CMatrix.cc (utsolve, ltsolve, fsolve, lssolve): ditto. + * dSparse.cc (dsolve, utsolve, ltsolve, bsolve, trisolve, fsolve): + ditto. + * CSparse.cc (dsolve, utsolve, ltsolve, bsolve, trisolve, fsolve): + ditto. + * SparseQR.cc (SparseQR::SparseQR_rep::C, qrsolve): ditto. + * SparseCmplxQR.cc (SparseComplexQR::SparseComplexQR_rep::C, + qrsolve): ditto. + * sparse-dmsolve.cc (dmsolve): ditto. + + 2007-09-21 John W. Eaton + + * Array.cc (assign1 (Array&, const Array&, const LT&)): + Also allow resizing empty LHS if it is 1x0 or 0xN. + + 2007-09-19 John W. Eaton + + * cmd-edit.cc (command_editor::remove_startup_hook): + Fix cut-and-paste error. + (gnu_readline::set_startup_hook): Only set hook function if new + function is different from the current one. + + 2007-09-18 John W. Eaton + + * cmd-edit.h, cmd-edit.cc (command_editor::startup_hook_set, + command_editor::event_hook_set): New static data. + (default_command_editor::set_startup_hook, + gnu_readline::set_startup_hook, + default_command_editor::restore_startup_hook, + gnu_readline_restore_event_hook): + Rename from do_set_startup_hook and do_set_event_hook. + (gnu_readline::operate_and_get_next): Call + command_editor::add_startup_hook, not + command_editor::set_startup_hook. + (command_editor::startup_handler, command_editor::event_handler): + New functions. + (command_editor::add_startup_hook, command_editor::add_event_hook, + command_editor::remove_startup_hook, + command_editor::remove_event_hook): Rename from set_startup_hook + and restore_startup_hook. Handle hook sets here. + * cmd-edit.cc (gnu_history::do_goto_mark): + Call remove_startup_hook instead of restore_startup_hook. + + 2007-09-17 John W. Eaton + + * lo-utils.cc (octave_read_complex, octave_read_double): Skip + leading whitespace. + + 2007-09-13 John W. Eaton + + * lo-utils.cc (read_inf_nan_na, octave_read_double, + octave_read_complex): Use istream::get instead of >> to read + individual characters. + + 2007-09-10 John W. Eaton + + * Array.cc (assign1): Don't call make_unique for invalid assignment. + + 2007-09-10 David Bateman + + * Array.h (Array::make_unique): Make public so that the + ::assign functions can access it directly. + * Array.cc (Array::maybe_delete_elements_1(idx_vector&), + Array::maybe_delete_elements_1(idx_vector&), + Array::maybe_delete_elements(idx_vector&, idx_vector&), + Array::maybe_delete_elements(Array&, const T&)): + Use xelem for non const RHS to avoid call to make_unique. + (int assign1 (Array&, const Array&, const LT&)): Use + xelem for LHS and call lhs.make_unique() only once. Special case + the is_colon index case and use Array::xelem(octave_idx_type) + rather than Array::xelem(octave_idx_type,octave_idx_type) and + bring the additional multiplication out of the inner loop. + (int assign2 (Array&, const Array&, const LT&)): ditto. + (int assignN (Array&, const Array&, const LT&)): ditto. + * idx-vector.h (idx_vector::idx_vector_rep::idx_vector_rep + (const Range& r)): Don't use init_state() method but special case + as with a Range can avoid exhaustive search. + + 2007-09-07 John W. Eaton + + * Array.cc (Array::fortran_vec): Call make_unique instead of + manipulating rep directly. + + * Array.h (idx, idx_count): Declare mutable. + (Array::set_index, Array::clear_index, Array::value): + Now const. + + 2007-09-06 David Bateman + + * Array-util.cc (increment_index): dimensions can have singleton + trailing dimensions. + * Array.h (range_error, xelem, checkelem, elem, operator ()): + Modify use of Array to Array and adjust + where necessary. + * Array.cc (range_error): ditto. + * MArrayN.h (permute, ipermute): ditto. + * ArrayN.h (permute, ipermute): ditto. + * so-array.cc (streamoff_array::compute_index): ditto. + * so-array.h (compute_index): ditto. + * CMattrix.cc (ComplexMatrix::exmpm): ditto. + + 2007-08-29 David Bateman + + * dSparse.cc (SparseMatrix SparseMatrix::inverse (MatrixType &, + octave_idx_type&, double&, int, int)): Calculate with LU even for + matrices marked as singular. + * CSparse.cc (SparseComplexMatrix SparseComplexMatrix::inverse ( + MatrixType &, octave_idx_type&, double&, int, int)): ditto. + * dMatrix.cc (Matrix Matrix::inverse (MatrixType &, octave_idx_type&, + double&, int, int)): ditto. If rcond==0 force matrix of infinities. + * dMatrix.cc (ComplexMatrix ComplexMatrix::inverse (MatrixType &, + octave_idx_type&, double&, int, int)): ditto. + + 2007-08-27 John W. Eaton + + * oct-env.cc (octave_env::rooted_relative_pathname, + octave_env::do_rooted_relative_pathname): New functions. + * oct-env.h: Provide decls. + + 2007-08-24 David Bateman + + * MSparse.h (MSparse& insert (const Sparse&, + const Array&)): New method. + (MSparse (const dim_vector&, octave_idx_type)): Ditto. + * dSparse.h (SparseMatrix& SparseMatrix::insert (const + SparseMatrix&, const Array&)): ditto. + (SparseMatrix (const dim_vector&, octave_idx_type)): ditto. + * dSparse.cc (SparseMatrix& SparseMatrix::insert (const + SparseMatrix&, const Array&)): ditto. + * boolSparse.h (SparseBoolMatrix& SparseBoolMatrix::insert (const + SparseBoolMatrix&, const Array&)): ditto. + * boolSparse.cc (SparseBoolMatrix& SparseBoolMatrix::insert (const + SparseBoolMatrix&, const Array&)): ditto. + * CSparse.h (SparseComplexMatrix& SparseComplexMatrix::insert (const + SparseMatrix&, const Array&), + SparseComplexMatrix& SparseComplexMatrix::insert (const + SparseComplexMatrix&, const Array&)): ditto. + (SparseComplexMatrix (const dim_vector&, octave_idx_type)): ditto. + * CSparse.cc (SparseComplexMatrix& SparseComplexMatrix::insert (const + SparseMatrix&, const Array&), + SparseComplexMatrix& SparseComplexMatrix::insert (const + SparseComplexMatrix&, const Array&)): ditto. + + 2007-08-19 David Bateman + + * Sparse.cc (Sparse::permute): Avoid shadowing warning. + + 2007-08-14 John W. Eaton + + * Sparse.cc (Sparse::permute): permutation vector is zero based. + Simplify. + (Sparse::reshape): Warn about reshaping to N-d array. + + 2007-08-10 Michael Goffioul + + * file-stat.cc (file_stat::update_internal) [__WIN32__]: + Remove trailing dir separator when stat'ing directory except for + root directory. + + 2007-07-25 David Bateman + + * Makefile.in: Adjust DISTFILES to allow out of tree "make dist" + to work. + + 2007-06-04 David Bateman + + * oct-inttypes.h (octave_int& operator <<= (const T2&), + octave_int& operator >>= (const T2&)): Make shift operators + perform a twos complement arithmetic shift for both signed and + unsigned integers regardless of compiler implementations. + + 2007-06-13 Michael Goffioul + + * SparseCmplxQR.cc (OCTAVE_C99_ZERO): For CXSparse 2.2 and greater + use cs_complex_t(0,0) for the complex zero. + + * MArray-ch.cc, MArray-d.cc, MArray-i.cc, MArray-s.cc: + Sprinkle class instantiations with OCTAVE_API as needed. + + * Array.h (INSTANTIATE_ARRAY_ASSIGN, INSTANTIATE_ARRAY, + INSTANTIATE_ARRAY_AND_ASSIGN): New arg, API. Change all uses. + * MArray-defs.h (MARRAY_OP_ASSIGN_DECL, MARRAY_OP_ASSIGN_DECLS, + MARRAY_OP_ASSIGN_FWD_DECLS, MARRAY_OP_ASSIGN_FRIENDS, + MARRAY_OP_ASSIGN_DEFS, MARRAY_UNOP, MARRAY_UNOP_DECLS, + MARRAY_UNOP_FWD_DECLS, MARRAY_UNOP_FRIENDS, MARRAY_UNOP_DEFS, + MARRAY_BINOP_DECL, MARRAY_BINOP_DECLS, MARRAY_AA_BINOP_DECLS, + MDIAGARRAY2_DAS_BINOP_DECLS, MDIAGARRAY2_SDA_BINOP_DECLS, + MDIAGARRAY2_DADA_BINOP_DECLS, MARRAY_BINOP_FWD_DECLS, + MDIAGARRAY2_BINOP_FWD_DECLS, MARRAY_BINOP_FRIENDS, + MDIAGARRAY2_BINOP_FRIENDS, MARRAY_BINOP_DEFS, + MDIAGARRAY2_BINOP_DEFS, MARRAY_OPS_FORWARD_DECLS, + MDIAGARRAY2_OPS_FORWARD_DECLS, MARRAY_OPS_FRIEND_DECLS, + MDIAGARRAY2_OPS_FRIEND_DECLS, INSTANTIATE_MARRAY_FRIENDS, + INSTANTIATE_MARRAY2_FRIENDS, INSTANTIATE_MARRAYN_FRIENDS, + INSTANTIATE_MDIAGARRAY2_FRIENDS): Ditto. + * MSparse-defs.h (SPARSE_OP_ASSIGN_DECL, SPARSE_OP_ASSIGN_DECLS, + SPARSE_OP_ASSIGN_FWD_DECLS, SPARSE_OP_ASSIGN_FRIENDS, + SPARSE_OP_ASSIGN_DEFS, SPARSE_UNOP, SPARSE_UNOP_DECLS, + SPARSE_UNOP_FWD_DECLS, SPARSE_UNOP_FRIENDS, SPARSE_UNOP_DEFS, + SPARSE_BINOP_DECL, SPARSE_BINOP_DECLS, SPARSE_AA_BINOP_DECLS, + SPARSE_BINOP_FWD_DECLS, SPARSE_BINOP_FRIENDS, SPARSE_BINOP_DEFS, + SPARSE_OPS_FORWARD_DECLS, SPARSE_OPS_FRIEND_DECLS, + INSTANTIATE_SPARSE_FRIENDS): Ditto. + * Sparse-op-defs.h (SPARSE_BIN_OP_DECL, SPARSE_CMP_OP_DECL, + SPARSE_BOOL_OP_DECL, SPARSE_SMS_BIN_OP_DECLS, + SPARSE_SMS_CMP_OP_DECLS, SPARSE_SMS_EQNE_OP_DECLS, + SPARSE_SMS_BOOL_OP_DECLS, SPARSE_SSM_BIN_OP_DECLS, + SPARSE_SMS_OP_DECLS, SPARSE_SSM_BIN_OP_DECLS, + SPARSE_SSM_CMP_OP_DECLS, SPARSE_SSM_EQNE_OP_DECLS, + SPARSE_SSM_BOOL_OP_DECLS, SPARSE_SSM_OP_DECLS, + SPARSE_SMSM_BIN_OP_DECLS, SPARSE_SMSM_CMP_OP_DECLS, + SPARSE_SMSM_EQNE_OP_DECLS, SPARSE_SMSM_BOOL_OP_DECLS, + SPARSE_SMSM_OP_DECLS, SPARSE_MSM_BIN_OP_DECLS, + SPARSE_MSM_CMP_OP_DECLS, SPARSE_MSM_EQNE_OP_DECLS, + SPARSE_MSM_BOOL_OP_DECLS, SPARSE_MSM_OP_DECLS, + SPARSE_SMM_BIN_OP_DECLS, SPARSE_SMM_CMP_OP_DECLS, + SPARSE_SMM_EQNE_OP_DECLS, SPARSE_SMM_BOOL_OP_DECLS, + SPARSE_SMM_OP_DECLS): Ditto. + * Sparse.h (INSTANTIATE_SPARSE_ASSIGN, INSTANTIATE_SPARSE, + INSTANTIATE_SPARSE_AND_ASSIGN): Ditto. + * mx-op-defs.h (BIN_OP_DECL, CMP_OP_DECL, NDCMP_OP_DECL, + BOOL_OP_DECL, NDBOOL_OP_DECL, VS_BIN_OP_DECLS, VS_OP_DECLS, + SV_BIN_OP_DECLS, SV_OP_DECLS, VV_BIN_OP_DECLS, VV_OP_DECLS, + MS_BIN_OP_DECLS, MS_CMP_OP_DECLS, MS_BOOL_OP_DECLS, MS_OP_DECLS, + SM_BIN_OP_DECLS, SM_CMP_OP_DECLS, SM_BOOL_OP_DECLS, SM_OP_DECLS, + MM_BIN_OP_DECLS, MM_CMP_OP_DECLS, MM_BOOL_OP_DECLS, MM_OP_DECLS, + NDS_BIN_OP_DECLS, NDS_CMP_OP_DECLS, NDS_BOOL_OP_DECLS, + NDS_OP_DECLS, SND_BIN_OP_DECLS, SND_CMP_OP_DECLS, + SND_BOOL_OP_DECLS, SND_OP_DECLS, NDND_BIN_OP_DECLS, + NDND_CMP_OP_DECLS, NDND_BOOL_OP_DECLS, NDND_OP_DECLS, + SDM_BIN_OP_DECLS, SDM_OP_DECLS, DMS_BIN_OP_DECLS, DMS_OP_DECLS, + MDM_BIN_OP_DECLS, MDM_OP_DECLS, DMM_BIN_OP_DECLS, DMM_OP_DECLS, + DMDM_BIN_OP_DECLS, DMDM_OP_DECLS): Ditto. + + 2007-06-12 John W. Eaton + + * dMatrix.cc (Matrix::expm): Special case for scalar arg. + * CMatrix.cc (ComplexMatrix::expm): Likewise. + + 2007-06-06 Michael Goffioul + + * file-ops.cc (tilde_find_suffix, isolate_tilde_prefix, + tilde_expand_word): Use file_ops::is_dir_sep instead of comparing + with file_ops::dir_sep_char. + + * MArray-C.cc: Sprinkle with OCTINTERP_API as needed. + + 2007-06-04 David Bateman + + * file-ops.cc: Typo. + + * Sparse.cc (Sparse Sparse::reshape): If length of new + dimensions is greater than 2, collapse to 2-D. + + 2007-06-02 David Bateman + + * SparseCmplxQR.cc: Changes to support CXSparse 2.2.0. + + 2007-05-31 John W. Eaton + + * Array.cc (Array::get_size): Throw std::bad_alloc exception if + the computed size is too large for the size of Octave's index type. + + 2007-05-23 John W. Eaton + + * oct-sparse.h: Don't surround included files with extern "C" { ... }. + + 2007-05-16 David Bateman + + * dRowVector.cc (linspace): Return second argument if fewer than + two values are requested. + * CRowVector.cc (linspace): Likewise. + + 2007-04-27 John W. Eaton + + * lo-mappers.cc (signum (const Complex&)): Special case for (0, 0). + + 2007-04-25 John W. Eaton + + * oct-fftw.h (octave_fftw): Tag with OCTAVE_API. + + 2007-04-20 John W. Eaton + + * Array.cc (assign1): For x(:) = RHS, require rhs_len == lhs_len, + not rhs_len == 1. + + 2007-04-18 Michael Goffioul + + * oct-md5.h (oct_md5, oct_md5_file): Tag decls with OCTAVE_API. + + 2007-04-13 John W. Eaton + + * Array.cc (Array::maybe_delete_elements_2): Don't return early + for empty matrix. Only check for colon index equivalence if not empty. + + 2007-04-10 John W. Eaton + + * SparseCmplxQR.cc + (SparseComplexQR::SparseComplexQR_rep::SparseComplexQR_rep): + Move GCC_ATTR_UNUSED before the parameter decl. + From Luis Ortiz . + + 2007-04-06 John W. Eaton + + * MArray-defs.h (MARRAY_NORM_BODY): New macro. + * MArray.h (MArray::norm): New function. + * MArray.cc: Provide decl. + * MArray-d.cc (MArray::norm): Define double specialization. + * MArray-C.cc (MArray::norm): Define Complex specialization. + + 2007-04-04 John W. Eaton + + * Range.cc (Range::nelem_internal): Likewise. + * lo-utils.cc (NINT): Use numeric_limits instead of INT_MAX. + (NINTbig): Use numeric_limits instead of INT_MAX. + From Scott Pakin . + + 2007-04-04 David Bateman + + * dMatrix.cc (Matrix::inverse): If calc_cond is true, calculate + the condition number for positive definite matrices. + * CMatrix.cc (ComplexMatrix::inverse): Ditto. + * dbleChol.h (CHOL(const Matrix&, bool)): New arg, calc_cond. + (CHOL(const Matrix&, octave_idx_type&, bool): Ditto. + (octave_idx_type init (const Matrix&, bool)): Ditto. + (CHOL(const CHOL&)): Copy xrcond. + (CHOL& operator = (const CHOL&)): Copy xrcond. + (xrcond): New private data member. + * CmplxCHOL.h (ComplexCHOL(const ComplexMatrix&, bool)): New arg, + calc_cond. + (ComplexCHOL(const ComplexMatrix&, octave_idx_type&, bool): Ditto + (octave_idx_type init (const ComplexMatrix&, bool)): Ditto. + (ComplexCHOL(const ComplexCHOL&)): Copy xrcond. + (ComplexCHOL& operator = (const ComplexCHOL&)): Copy xrcond. + (xrcond): New private data member. + * dbleCHOL.cc (CHOL::init(const Matrix&, bool)): If calc_cond is + true, calculate the condition number with dpocon. + * CmplxCHOL.cc (ComplexCHOL::init(const ComplexMatrix&, bool)): If + calc_cond is true, calculate the condition number with zpocon. + + 2007-04-03 John W. Eaton + + * intNDArray.cc (intNDArray): Delete spurious semicolon. + + * CMatrix.cc (ComplexMatrix::tinverse): Use Array and + fortran_vec method instead of OCTAVE_LOCAL_BUFFER to avoid + "maybe clobbered by vfork" warning. + + * Sparse-op-defs.h (SPARSE_CUMSUM): Add braces to avoid ambiguous + if/else. + + * oct-spparms.h (octave_sparse_params): Define copy constructor + and destructor. + + * Array.cc (assignN): Don't resize dimension if corresponding + index is empty. + + 2007-04-02 John W. Eaton + + * dMatrix.h (Matrix::inverse): Reinstate versions without + MatrixType argument. + * CMatrix.h (ComplexMatrix::inverse): Likewise. + + 2007-03-27 John W. Eaton + + * Makefile.in (DISTDIRS): Delete variable. + (dist): Delete action for DISTDIRS. Use ln instead of $(LN_S). + + 2007-03-26 David Bateman + + * MatrixType.cc: Replace all uses of the method + octave_sparse_params::get_key ("bandden") with + octave_sparse_params::get_bandden (void). + (MatrixType::MatrixType (void)): Undo previous change but use + octave_sparse_params::get_bandden (void). + * oct-spparms.cc (get_bandden(void), do_get_bandden(void)): New + methods. + * oct-spparms.h (get_bandden(void), do_get_bandden(void)): + Declare them. + + 2007-03-26 Luis Ortiz + David Bateman + + * idx-vector.h.cc (IDX_VEC_REP::idx_vector_rep (const Range&)): + Check that all elements are ints before doing anything. Simplify + calculation of index values. + + 2007-03-26 David Bateman + + * Range.cc (Range::all_elements_are_ints): Improve check. + + 2007-03-26 John W. Eaton + + * chNDArray.cc, chMatrix.cc: Also generate comparison and bool ops. + * chNDArray.h, chMatrix.h: Provide decls. + + 2007-03-24 Luis Ortiz + + * MatrixType.cc (MatrixType::MatrixType (void)): Initialize + sp_bandden to zero for performance reasons as it's not used. + + 2007-03-23 David Bateman + + * oct-rand.cc (octave_rand::seed): Seed differently for big and + little endian. + + 2007-03-15 John W. Eaton + + * lo-mappers.cc (acos): Use formula similar to what we use for asin. + From Alexander Barth . + + 2007-03-12 John W. Eaton + + * oct-inttypes.h (octave_int::octave_int (double)): + New Specialization. Round arg. + (operator / (const octave_int&, const octave_int&)): + Round result before converting type. + + 2007-03-07 John W. Eaton + + * Array.cc (assign1): Avoid resizing if there is an error. + + * dMatrix.cc, CMatrix.cc (operator *): Only check + f77_exception_encountered immediately after calls that use F77_XFCN. + + * Array.cc (assign1 (Array&, const Array&, const LT&)): + Only allow resizing empty LHS if it is 0x0. + + * Array.cc (Array::maybe_delete_elements (Array&, + const T&)): Handle case of more indices than dimensions. + (assign (Array&, const Array&, const LT&)): Allow more + cases to be handled by assignN. + (assignN (Array&, const Array&, const LT&)): + Special cases for 2-d array assignments for speed. + Improve handling of scalar RHS and empty indices. + + 2007-03-05 David Bateman + + * oct-md5.c (oct_md5_file (const std::string&)): New function. + * oct-md5.h (oct_md5_file (const std::string&)): Declare it. + + 2007-03-02 John W. Eaton + + * str-vec.h (string_vector::empty): Return bool, not int. + + 2007-03-01 David Bateman + + * md5.h, md5.c: New files from libmd5-rfc sourceforge project for + an independent implementation of RFC1321. + * oct-md5.h, oct-md5: New files for treating std::string class + with MD5. + * Makefile.in (INCLUDES): Add md5.h and oct-md5.h + (LIBOCTAVE_CXX_SOURCES): Add oct-md5.cc + (LIBOCTAVE_C_SOURCES): Add md5.c + + 2007-02-27 John W. Eaton + + * Makefile.in (uninstall): Delete files listed in + $(INCLUDES_FOR_INSTALL), instead of $(INCLUDES). + From Thomas Treichl . + + 2007-02-27 Michael Goffioul + + * file-ops.cc (file_ops::recursive_rmdir): + Close dir_entry object before calling rmdir. + + 2007-02-26 Michael Goffioul + + * Makefile.in: Use $(LN_S) instead of ln or ln -s. + + * sparse-util.h (SparseCholPrint, SparseCholError): + Tag with OCTAVE_API. + + 2007-02-18 David Bateman + + * oct-rand.cc (do_old_initialization()): call setcgn(1) prior to + calling setall and reset to the current generator after. + + 2007-02-16 John W. Eaton + + * oct-shlib.h (octave_shlib::relative): New data member. + (octave_shlib::mark_relative, octave_shlib::is_relative): + New functions. + + 2007-02-16 Michael Goffioul + + * lo-sysdep.cc (octave_popen2): New function to simulate popen2 on + windows platform. + * lo-sysdep.h (octave_popen2): Declare it. + * oct-syscalls.cc (octave_syscalls::popen2): New function. + * oct-syscalls.h (octave_syscalls::popen2): Declare it. + + 2007-02-14 John W. Eaton + + * kpse.cc (expand_elt): Omit special treatment for //. + + 2007-02-06 John W. Eaton + + * file-ops.cc (file_ops::canonicalize_file_name) [HAVE_REALPATH]: + Don't delete value returned from realpath. + + 2007-02-05 Thomas Treichl + + * file-ops.cc (file_ops::canonicalize_file_name): + Provide implementation if realpath function is available. + + 2007-01-29 Michael Goffioul + + * oct-fftw.h: Sprinkle with OCTAVE_API as needed. + + 2007-01-17 Michael Goffioul + + * lo-sysdep.cc (octave_chdir): Handle directory names like "C:" on + Windows systems. + + 2007-01-16 John W. Eaton + + * dSparse.cc: Fix dgbtrf decl for --enable-64. + (SparseMatrix::bsolve): Fix call to dgbtrf for --enable-64 + + * oct-fftw.h (fftw_planner): Provide decl. + + 2007-01-11 Michael Goffioul + + * Makefile.in (LINK_DEPS): Include $(CAMD_LIBS) in the list. + + 2007-01-10 John W. Eaton + + * oct-sparse.h: Use HAVE_CHOLMOD_CHOLMOD_H, not + HAVE_UMFPACK_CHOLMOD_H for case of "cholmod/cholmod.h". + + 2007-01-08 David Bateman + + * oct-sparse.h: Replace sparsesuite with suitesparse and + SPARSESUITE with SUITESPARSE to match upstream name. + + 2007-01-05 David Bateman + + * oct-fftw.cc: (octave_fftw_planner::method (void), + octave_fftw_planner (FftwMethod)): New methods to interrogate and + set the FFTW wisdom method used. + (octave_fftw_planner::create_plan) Modify to allow different + methods to be used. + (octave_fftw_planner): Move class definition from here. + * oct-fftw.h (octave_fftw_planner): To here. Add method methods + and FftwMethod enum. + + 2007-01-03 David Bateman + + * MSparse.cc (SPARSE_A2A2_OP, SPARSE_A2A2_FCN_1, + SPARSE_A2A2_FCN_1): Modify macros so that scalars stored as + sparse matrices are special cased. + + * Sparse-op-defs.h: Include mx-ops.h to have access to mixed + matrix, sparse matrix operations. + (SPARSE_SMSM_BIN_OP_1, SPARSE_SMSM_BIN_OP_2, SPARSE_SMSM_BIN_OP_3, + SPARSE_SMSM_CMP_OP, SPARSE_SMSM_BOOL_OP, SPARSE_MSM_BIN_OP_1, + SPARSE_MSM_BIN_OP_2, SPARSE_MSM_CMP_OP, SPARSE_MSM_BOOL_OP, + SPARSE_SMM_BIN_OP_1, SPARSE_SMM_BIN_OP_2, SPARSE_SMM_CMP_OP, + SPARSE_SMM_BOOL_OP, SPARSE_SPARSE_MUL, SPARSE_FULL_MUL, + FULL_SPARSE_MUL): Modify macros so that scalars stored as + sparse matrices are special cased. + + 2006-12-22 David Bateman + + * boolSparse.cc (SparseBoolMatrix::operator !): Fix off-by-one error. + + 2006-12-22 John W. Eaton + + * dim-vector.h (dim_vector::dim_vector): Always start with at + least 2 dimensions. + (dim_vector::resize): Don't allow resizing to fewer than 2 dimensions. + + 2006-12-06 Michael Goffioul + + * lo-sysdep.cc (opendir): Avoid passing \\* to FindFirstFile. + + * file-ops.cc (ops::canonicalize_file_name): Provide partial + implementation for Windows. + + 2006-12-06 David Bateman + + * dSparse.cc (SparseMatrix::is_symmetric): Faster implementation. + * CSparse.cc (SparseComplexMatrix::is_symmetric): Ditto. + + * dMatrrix.cc (finverse): Old inverse method renamed inverse. + (tinverse): New method for triangular matrices. + (inverse): New function with matrix type probing. + * dMatrix.h (finverse, tinverse, inverse): New and modified + declarations. + * CMatrix.cc: Ditto. + * CMatrix.h: Ditto. + + 2006-12-06 John W. Eaton + + * strptime.c (day_of_the_week): Use code from current glibc sources. + + 2006-12-05 John W. Eaton + + * lo-utils.cc (octave_read_double): If we see '+' or '-' but not + followed by 'I' or 'i', try reading number after putting + characters back on input stream. + + 2006-12-05 Paul Kienzle + + * randpoisson.c (oct_fill_randp): For lambda > 1e8, upper limit of + loop is n, not L. + + 2006-11-30 John W. Eaton + + * lo-utils.cc (octave_read_double, read_inf_nan_na): + Also recognize [+-][Ii]nf. + + 2006-11-28 David Bateman + + * oct-sparse.h: Allow sparse headers to also be in a sparsesuite + sub-directory. + + * dSparse.cc (SparseMatrix::inverse): Transpose the matrix type as + well when calling tinverse for lower triangular matrices. + * CSparse.cc (SparseComplexMatrix::inverse): + Ditto. + + 2006-11-21 John W. Eaton + + * oct-env.cc (do_absolute_pathname): Undo previous change. + + 2006-11-20 John W. Eaton + + * oct-env.cc (octave_env::do_absolute_pathname): Also return true + for ".", and names beginning with "./" or "../". + + 2006-11-14 Luis F. Ortiz + + * CMatrix.cc, dMatrix.cc: New tests. + + 2006-11-13 Michael Goffioul + + * Array-d.cc, dDiagMatrix.h: Sprinkle with OCTAVE_API as needed. + + 2006-11-11 John W. Eaton + + * Makefile.in ($(OPTS_INC), mx-ops.h): + Use $(simple-move-if-change-rule) here. + + 2006-11-09 David Bateman + + * sparse-base-chol.cc (sparse_base_chol_rep::Q): Cast perms(i) to + octave_idx_type, not int. + + 2006-11-08 John W. Eaton + + * dir-ops.cc (dir_entry::read): Avoid rewinddir. + + 2006-11-06 John W. Eaton + + * Array.cc (assignN): Exit early if invalid indices are found. + + 2006-11-03 Michael Goffioul + + * strftime.c [HAVE_TZNAME]: Tag tzname with OCTAVE_IMPORT. + + 2006-11-03 John W. Eaton + + * Makefile.in (DLL_CXXDEFS): Rename from XTRA_CXXDEFS. + (DLL_CDEFS): Rename from XTRA_CDEFS. + Substitute OCTAVE_DLL_DEFS, not XTRA_OCTAVE_DEFS. + + 2006-10-28 Michael Goffioul + + * oct-shlib.cc: Undefine min and max after including windows.h. + * oct-syscalls.cc (syscalls::pipe (int *)): Avoid infinite recursion. + * lo-sysdep.h: Move opendir, readdir, etc. decls here from + lo-sysdep.cc. + + 2006-10-27 John W. Eaton + + * oct-time.cc [! HAVE_STRFTIME]: Declare strftime. + + 2006-10-26 Michael Goffioul + + * mx-op-defs.h (NDS_CMP_OP1, NDS_CMP_OPS1, NDS_CMP_OP2, + NDS_CMP_OPS2): New macros. + + 2006-10-26 John W. Eaton + + * mx-ops (core-type): New field for integer types. + * mk-ops.awk: Handle core-type for integer comparison ops. + + * lo-cutils.c (octave_strcasecmp, octave-strncasecmp): + Move here from src/cutils.c. + * lo-utils.h: Provide decls. + * strcasecmp.c: Move here from src/strcasecmp.c. + * strncase.c: Move here from src/strncase.c. + * Makefile.in (LIBOCTAVE_C_SOURCES): Add them to the list. + + 2006-10-26 Michael Goffioul + + * kpse.cc [! MSVC]: Don't include win32lib.h. + + * Array-C.cc, Array-b.cc, Array-ch.cc, Array-i.cc, Array-util.h, + Array.h, CColVector.h, CMatrix.h, CNDArray.h, CRowVector.h, + CSparse.h, CmplxAEPBAL.h, CmplxCHOL.h, CmplxDET.h, CmplxHESS.h, + CmplxLU.h, CmplxQR.h, CmplxQRP.h, CmplxSCHUR.h, CmplxSVD.h, + CollocWt.h, DAE.h, DASPK.h, DASRT.h, DASSL.h, EIG.h, LSODE.h, + MArray-C.cc, MArray-defs.h, MSparse-C.cc, MSparse-d.cc, + MSparse-defs.h, MatrixType.h, NLEqn.h, Quad.h, Range.h, + Sparse-op-defs.h, Sparse.h, SparseCmplxCHOL.h, SparseCmplxLU.h, + SparseCmplxQR.h, SparseQR.h, SparsedbleCHOL.h, SparsedbleLU.h, + boolMatrix.h, boolNDArray.h, boolSparse.h, chMatrix.h, + chNDArray.h, cmd-edit.h, cmd-hist.h, dColVector.h, dDiagMatrix.h, + dMatrix.h, dNDArray.h, dRowVector.h, dSparse.h, data-conv.h, + dbleAEPBAL.h, dbleCHOL.h, dbleDET.h, dbleHESS.h, dbleLU.h, + dbleQR.h, dbleQRP.h, dbleSCHUR.h, dbleSVD.h, dir-ops.h, + file-ops.h, file-stat.h, glob-match.h, idx-vector.h, + int16NDArray.cc, int32NDArray.cc, int64NDArray.cc, int8NDArray.cc, + lo-cutils.c, lo-ieee.h, lo-mappers.h, lo-specfun.h, lo-utils.h, + mach-info.h, mx-op-defs.h, oct-alloc.h, oct-env.h, oct-group.h, + oct-inttypes.cc, oct-inttypes.h, oct-passwd.h, oct-rand.h, + oct-shlib.h, oct-spparms.h, oct-syscalls.h, oct-time.h, + oct-uname.h, pathsearch.h, prog-args.h, so-array.h, str-vec.h, + uint16NDArray.cc, uint32NDArray.cc, uint64NDArray.cc, + uint8NDArray.cc: Sprinkle with OCTAVE_API as needed. + + 2006-10-26 John W. Eaton + + * oct-inttypes.cc (INSTANTIATE_INTTYPE_BIN_OP): Provide explicit + type qualification for OP. + + 2006-10-26 David Bateman + + * Sparse.cc (Sparse::resize_no_fill (octave_idx_type, + octave_idx_type)): Be more careful with the size of the input + matrix, and therefore don't create or read non existent data. + + 2006-10-25 John W. Eaton + + * Sparse.cc (assign): Clear lhs index after error. + + 2006-10-25 David Bateman + + * Sparse.cc (assign (Sparse&, const Sparse&)): + Fix previous patch so it works. + + 2006-10-25 Michael Goffioul + + * glob-match.h (glob_match::glob_match (const std::string&, + unsigned int)): Delete initializer for first arg. + + * lo-sysdep.cc (opendir, readdir, rewinddir, closedir): + New functions. + + * Makefile.in (XTRA_CDEFS, XTRA_CXXDEFS): Substitute here. + + * oct-env.cc (octave_env::do_get_home_directory) [_MSC_VER]: Use + same code as __MINGW32__. + * syswait.h [_MSC_VER]: Define HAVE_WAITPID, WAITPID, and WNOHANG + the same as for __MINGW32__. + + * randpoisson.c: Undefine INFINITE before redefining. + + 2006-10-24 David Bateman + + * Sparse.cc (assign (Sparse&, const Sparse&)): Resize the + lhs at the point we know the assignment can succeed if the lhs is + empty. + + 2006-10-23 John W. Eaton + + * Array.cc (assign2): Don't require vector assignments to be oriented. + + 2006-10-17 John W. Eaton + + * lo-cieee.c: If isnan is not available but _isnan is, then define + isnan to be _isnan, and define HAVE_ISNAN. Likewise for _finite + and _copysign. + + 2006-10-17 Michael Goffioul + + * oct-syscalls.cc (syscalls::waitpid): Always declare and define retval. + + * CMatrix.cc (ComplexMatrix::solve): Avoid infinite recursion. + * CSparse.cc (SparseComplexMatrix::insert): Likewise. + + * oct-types.h.in: Include limits.h, for CHAR_BIT. + + 2006-10-13 Michael Goffioul + + * Makefile.in: Adapt rules to use $(LIBPRE). + + 2006-10-03 David Bateman + + * MatrixType.cc (MatrixType::MatrixType): Avoid crash if np == 0 + or p == 0. + + 2006-10-02 John W. Eaton + + * dbleDET.cc (DET::initialize2): Ensure arg to log10 is double. + * CmplxDET.cc (ComplexDET::initialize2): Likewise. + + 2006-09-22 David Bateman + + * MatrixType.h (MatrixType::MatrixType(const SparseComplexMatrix&)): + Remove spurious warning. + + 2006-09-15 John W. Eaton + + * Array.cc (Array::index (Array&, int, const T&) const): + Handle resizing. + + * intNDArray.h (intNDArray:elt_type): New typedef. + + 2006-09-11 John W. Eaton + + * dMatrix.cc (operator * (const Matrix&, const Matrix&))): + Handle M*v and rv*cv special cases. + * CMatrix.cc (operator * (const ComplexMatrix&, const + ComplexMatrix&))): Likewise. + From Luis F. Ortiz . + + * dRowVector.cc (operator * (const RowVector&, const + ColumnVector&)): Call xddot here instead of using a Fortran + function directly. + * CRowVector.cc (operator * (const ComplexRowVector&, const + ComplexColumnVector&)): Call xzdotu here. + + 2006-09-05 John W. Eaton + + * chNDArray.cc (charNDArray::any, charNDArray::all): Compare + elements to '\0', not ' '. + + 2006-08-25 John W. Eaton + + * mx-inlines.cc (MX_ND_REDUCTION): Special case for 0x0 arrays. + + 2006-08-23 John W. Eaton + + * dMatrix.cc, dMatrix.h (Matrix::save_ascii): Delete function and decl. + * CMatrix.cc, CMatrix.h (ComplexMatrix::save_ascii): Likewise. + + 2006-08-22 John W. Eaton + + * CMatrix.cc (ComplexMatrix::save_ascii): New function. + * dMatrix.cc (Matrix::save_ascii): New function. + + * mx-inlines.cc (MX_ND_CUMULATIVE_OP): Correctly detect empty arrays. + If array is empty, return value is same size as array. + (MX_ND_REDUCTION): Correctly detect empty arrays. + If array is empty, produce correctly sized return value. + + 2006-08-18 John W. Eaton + + * dMatrix.cc (Matrix::any_element_not_one_or_zero): New function. + * dMatrix.h: Provide decl. + * dNDArray.cc (NDArray::any_element_not_one_or_zero): New function. + * dNDArray.h: Provide decl. + * intNDArray.cc (intNDArray::any_element_not_one_or_zero): + New function. + * intNDArray.h: Provide decl. + + * Array.cc (Array::permute): Only rearrange values if array is + not empty. + + 2006-07-26 John W. Eaton + + * dbleDET.cc (DET::initialize10, DET::value_will_underflow, + DET::value_will_overflow): Use xlog2 instead of log2. + (DET::initialize2, DET::initialize10): Use xround instead of round. + (DET::initialize2, DET::value): Use xexp2 instead of exp2. + * CmplxDET.cc (ComplexDET::initialize10, + ComplexDET::value_will_underflow, + ComplexDET::value_will_overflow): Use xlog2 instead of log2. + (ComplexDET::initialize2, ComplexDET::initialize10): + Use xround instead of round. + (ComplexDET::initialize2, ComplexDET::value): + Use xexp2 instead of exp2. + + * lo-mappers.cc (M_LOG10E): Delete unused macro. + (xlog2, xexp2): New functions. + * lo-mappers.h: Provide decls. + + 2006-07-22 John W. Eaton + + * Sparse.h (Sparse::mex_get_data, Sparse::mex_get_ir, + Sparse::mex_get_jc): New functions. + + 2006-07-21 John W. Eaton + + * oct-inttypes.h (octave_int::mex_get_data): New function. + * Array.h (Array::mex_get_data): New function. + + 2006-07-19 John W. Eaton + + * oct-inttypes.h (octave_int::operator bool (void)): New function. + + 2006-07-16 John W. Eaton + + * oct-spparms.h, oct-spparms.cc (class octave_sparse_params): + Rename from SparseParams. Use same implementation method as other + singleton classes in Octave. Change all uses of + Voctave_sparse_controls to use static functions from + octave_sparse_params class instead. + + * oct-spparms.h, oct-spparms.cc (SparseParams::set_key, + SparseParams::get_key): Pass std::string arg by const reference, + not const value. + + 2006-07-15 John W. Eaton + + * data-conv.cc: Instantiante swap_bytes templates here. + + * MatrixType.cc (MatrixType::MatrixType): + Use complete initializer lists in constructors. + + 2006-07-06 John W. Eaton + + * str-vec.cc (string_vector::string_vector (std::list&)): + New constructor. + * str-vec.h: Provide decl. + + 2006-07-01 David Bateman + + * dSparse.cc (tinverse): Check for rows with no elements and zero + elements on the diagonal. Allow both Upper and Lower triangular + matrices to be treated. + * CSparse.cc (tinverse): ditto. + * Sparse-op-defs.h (SPARSE_SPARSE_MUL): Take into account 64-bit + constant assignment. + + 2006-06-30 John W. Eaton + + * lo-sysdep.cc (octave_chdir): Perform tilde expansion here. + * cmd-edit.cc (editor::read_init_file): Ditto. + * dir-ops.cc (dir_entry::open): Ditto. + * file-stat.cc (stat::update_internal): Ditto. + * cmd-hist.cc (command_history::set_file): Ditto. + + * data-conv.cc (data_conv::string_to_data_type): + Correctly handle leading "*". + + 2006-06-29 Atsushi Kajita + + * Sparse.cc (Sparse::SparseRep::elem): Avoid out of bounds + array access. + + 2006-06-27 John W. Eaton + + * Makefile.in: Finish renaming of OBJECTS -> LIBOCTAVE_OBJECTS. + + 2006-06-21 John W. Eaton + + * oct-shlib.cc (octave_dlopen_shlib::close, + octave_shl_load_shlib::close, octave_w32_shlib::close): + Skip do_close_hook if cl_hook is 0. + + 2006-06-16 John W. Eaton + + * oct-sort.h: Don't include config.h, lo-mappers.h, or quit.h. + * randmtzig.h: Don't inlcude config.h. + + 2006-05-31 David Bateman + + * Array.cc (assignN): Maybe reshape LHS before doing assignment. + + 2006-05-23 John W. Eaton + + * oct-types.h.in: Include stdint.h or inttypes.h for integer + typedefs, or define them if those files are not available. + * oct-inttypes.h (octave_int8_t, octave_int16_t, octave_int32_t, + octave_int64_t, octave_uint8_t, octave_uint16_t, octave_uint32_t, + octave_uint64_t): Delete typedefs. Replace all uses of these + types with int8_t, int16_t, etc. + * data-conv.h (TWO_BYTE_INT, FOUR_BYTE_INT, EIGHT_BYTE_INT): + Delete definitions. Replace all uses of these macros with int8_t, + int16_t, etc. + * randmtzig.h: Delete integer typedefs. + + 2006-05-18 John W. Eaton + + * EIG.cc (EIG::init): Trap Inf and NaN values here. + From Keith Goodman . + + 2006-05-08 David Bateman + + * Sparse-op-defs.h (SPARSE_SPARSE_MUL): fix bug in previous + modification. + + 2006-05-09 David Bateman + + * sparse-dmsolve.cc: Remove reference to ov-re-sparse.h, + ov-cx-sparse. and error_state. + * SparseQR.cc, SparseCmplxQR.cc (qrsolve): Return info = -1 on error. + + 2006-05-08 David Bateman + + * Sparse-op-defs.h (SPARSE_SPARSE_MUL): Set column pointers in + first pass and use to determine which algorithm to use on a + column-by-column basis. + + 2006-05-04 David Bateman + + * SparseQR.cc, SparseQR.h, SparseCmplxQR.cc, SparseCmplxQR.h, + sparse-dmsolve.cc : Allow compilation with versions v2.0.0 of + CXSparse or later + + 2006-05-03 David Bateman + + * CMatrix.cc (zpotrf, zpocon, zpotrs, ztrcon, ztrtrs): + External declaration of lapack triangular and Cholesky codes. + (ComplexMatrix::utsolve, ComplexMatrix::ltsolve, + ComplexMatrix::fsolve): New private solver codes for + upper, lower and LU/Cholesky solvers. + (ComplexMatrix::solve): New versions for cached matrix + type. Adapt old versions to call new versions + * CMatrix.h (utsolve, ltsolve, fsolve): Declaration of + new solvers. + (solve): New versions for cached matrix type. + * dMatrix.cc (dpotrf, dpocon, dpotrs, dtrcon, dtrtrs): + External declaration of lapack triangular and Cholesky codes. + (Matrix::utsolve, Matrix::ltsolve, + Matrix::fsolve): New private solver codes for + upper, lower and LU/Cholesky solvers. + (Matrix::solve): New versions for cached matrix + type. Adapt old versions to call new versions + * dMatrix.h (utsolve, ltsolve, fsolve): Declaration of + new solvers. + (solve): New versions for cached matrix type. + * CSparse.cc: Replace all uses of SparseType with MatrixType. + * CSparse.h: ditto. + * dSparse.cc: ditto. + * dSparse.h: ditto. + * SparseCmplxCHOL.cc: ditto. + * SparsedbleCHOL.cc: ditto. + * sparse-dmsolve.cc: ditto. + * SparseType.cc, SparseType.h: delete. + * MatrixType.cc: New file for class to cache matrix type, based on + old SparseType class but caching matrix and sparse types. + * MatrixType.h: ditto. + * Makefile.in (MATRIX_INC, MATRIX_SRC): Add MatrixType.h and + MatrixType.cc respectively. Delete SparseType.h and SparseType.cc + respectively. + * mx-base.h: Include MatrixTye.h as header file. + + 2006-05-01 John W. Eaton + + * oct-shlib.h (octave_shlib::octave_shlib, octave_shlib::open): + Delete WARN_FUTURE arg. Change all uses. + * oct-shlib.cc (octave_base_shlib::stamp_time): Delete arg. + Change all uses. Use current_liboctave_warning_with_id_handler. + (octave_base_shlib::open): Delete arg. Change all derived classes + and uses. + + 2006-04-29 John W. Eaton + + * Array-flags.cc, Array-flags.h: Delete. + * Makefile.in (MATRIX_SRC): Remove Array-flags.cc from the list. + (MATRIX_INC): Remove Array-flags.h from the list. + + * idx-vector.cc (IDX_VEC_REP::freeze): Delete warn_resize arg. + Use current_liboctave_warning_with_id_handler + with warning ID Octave:resize-on-range-error. + * idx-vector.h: Fix decl. + * Array.cc, Sparse.cc: Change all callers. + + * Array.cc (Array::maybe_delete_elements, Array::index2, + assign2, assignN): Use current_liboctave_warning_with_id_handler + with warning ID Octave:fortran-indexing instead of + liboctave_wfi_flag. + * Sparse.cc (assign, Sparse::index): Likewise. + + 2006-04-26 John W. Eaton + + * pathsearch.cc (dir_path::path_sep_char, dir_path::path_sep_str): + New static data. + * pathsearch.h: Provide decls. + (dir_path::is_path_sep): New function. + + 2006-04-18 John W. Eaton + + * randmtzig.c (randmt, randi53, randi54, randi64, randu32, randu53): + Omit inline from decl. + + * Sparse.cc (Sparse::index): Use std::vector to avoid + local array with variable dimension. + + 2006-04-16 John W. Eaton + + * lo-sstream.h: Delete. + * Makefile.in (INCLUDES): Remove it from the list. + + * dim-vector.h (dim_vector::str): Use std::ostringstream directly. + * Sparse.cc (Sparse::range_error): Likewise. + * DASSL.cc (DASSL::error_message): Likewise. + * LSODE.cc (LSODE::error_message): Likewise. + * DASRT.cc (DASRT::error_message): Likewise. + * DASPK.cc (DASPK::error_message): Likewise. + * Array.cc (Array::range_error): Likewise. + + * kpse.cc (kpse_hash): Rename from hash. + (hash_lookup): Call kpse_hash instead of hash. + + * SparseType.cc (SparseType::SparseType): Use std::vector + to avoid local array with variable dimension. + + 2006-04-13 David Bateman + + * Sparse.cc (assign (Sparse&, const Sparse&)): + Optimize assignment. + + 2006-04-13 John W. Eaton + + * Sparse.cc (assign (Sparse&, const Sparse&)): + Eliminate unnecessary casts. + * SparsedbleLU.cc (SparseLU::SparseLU): Likewise. + + * kpse.cc (fopen): Use reinterpret_cast instead of C-style cast. + (log_search, dir_links): Use static_cast instead of C-style cast. + + * prog-args.cc (args::getopt): Use reinterpret_cast instead of X_CAST. + * oct-alloc.cc (allocator::grow): Likewise. + * CSparse.cc (SparseComplexMatrix::determinant, + SparseComplexMatrix::factorize, SparseComplexMatrix::fsolve): + Likewise. + * SparseCmplxLU.cc (SparseComplexLU::SparseComplexLU): Likewise. + + * oct-sort.cc (roundupsize, octave_sort::merge_getmem): + Use static_cast instead of C-style cast. + * CSparse.cc (SparseComplexMatrix::fsolve): Likewise. + * dSparse.cc (SparseMatrix::fsolve): Likewise. + + * data-conv.cc (LS_DO_WRITE): Use static_cast for value conversion. + Use OCTAVE_LOCAL_BUFFER instead of new/delete. + (LS_DO_READ): Allocate local buffer to avoid pointer tricks. + (write_doubles, read_doubles, LS_DO_WRITE, LS_DO_READ): + Use reinterpret_cast instead of X_CAST. + + * DiagArray2.h (DiagArray2::Proxy::operator&): No need to cast + return value here. + + 2006-04-12 Rafael Laboissiere + + * ArrayN.h (ArrayN::ArrayN): Qualify fill with Array base class. + * DiagArray2.h (DiagArray2::DiagArray2): Likewise. + + 2006-04-03 David Bateman + + * Sparse.cc (Sparse::resize): Use xcidx rather than cdix, etc + to avoid copy of original matrix. + + * Makefile.in (INCLUDES): Add randgamma.h, randpoisson.h and + randmtzig.h to the list. + (LIBOCTAVE_C_SOURCES): Add randgamma.c, randpoisson.c and + randmtzig.c to the list. + * oct-rand.cc (do_old_initialization): Rename from do_initialization. + (use_old_generators): New variable. + (old_initialized): Rename from initialized. + (new_initialized): New variable. + (oct_init_by_entropy): New function. + (maybe_initialize): Initialize new or old generator depending on + value of use_old_generators. + (octave_rand::state): New functions. + (octave_rand::distribution): Add gamma, exponential and poisson + distributions. + (octave_rand::exponential_distribution, + octave_rand::poisson_distribution, + octave_rand::gamma_distribution): New methods to select + exponential, poisson or gamma distribution. + (octave_rand::scalar, octave_rand::matrix, octave_rand::nd_array, + octave_rand::vector): Add new distributions. + * oct-rand.h: Provide decls for new functions. + (octave_rand::matrix, octave_rand::scalar, octave_rand:: + (octave_rand::scalar, octave_rand::matrix, octave_rand::nd_array, + octave_rand::vector): New arg A, for gamma and poisson distributions. + * randpoisson.c, randpoisson.h, randgamma.c, randmtzig.c, + randmtzig.h: New files. + + 2006-03-24 John W. Eaton + + * dSparse.cc (SparseMatrix::bsolve): Integer work vector is + Array, so fortran_vec returns pointer to + octave_idx_type, not pointer to int. + + * CMatrix.cc, CMatrix.h (ComplexMatrix::row (char*), + ComplexMatrix::column (char*)): Delete. + * dMatrix.cc, dMatrix.h (Matrix::row (char*), + Matrix::column (char*)): Delete. + + 2006-03-21 David Bateman + + * SparseQR.h: Publish externally used friends. + * SparseCmplxQR.h: ditto. + + 2006-03-21 John W. Eaton + + * lo-specfun.cc (betainc): Use F77_XFCN instead of F77_FUNC for + call to xdbetai. + + 2006-03-21 David Bateman + + * lo-specfun.cc (xlgamma, xgamma): Trap special values. + (xlgamma): Use F77_XFCN instead of F77_FUNC for call to dlgams. + + * dSparse.cc (solve): Add argument singular_fallback, to allow + fallback to QR solvers to be optional. + * CSparse.cc (solve): Ditto. + * dSparse.h (solve): update declaration for new argument. + * CSparse.h (solve): Ditto. + * sparse-dmsolve.cc (dmsolve): Use singular_fallback argument + to bypass QR solvers when solving the well determined part of + the problem. + + 2006-03-17 John W. Eaton + + * str-vec.cc (vector::list_in_columns): New optional arg, width. + + 2006-03-16 David Bateman + + * CSparse.cc: Change use of nzmax to nnz to allow automatic + reduction of matrix size, except for a couple of cases where nzmax + is needed. + (zpbcon): Correct declaration of lapack zpbcon function. + (dsolve, utsolve, ltsolve, trisolve, bsolve, factorize, fsolve): Add + an argument to allow the calculation of condition number to be + optional. + (bsolve): Add code for the calculation of the condition number + using zpbcon and zgbcon. + (dsolve): Bug fix for rectangular matrices with sparse RHS. + (utsolve, ltsolve, trisolve, bsolve, fsolve): Mark matrix type as + singular if singularity is detected. + (solve): Use optional argument to disable calculation of + condition number for all but fsolve, for speed. Add code to + allow rectnagular matrices or matrices identified as singular + to be treated. + (lssolve): delete. + (operator *): Don't recast real matrices as complex, but + rather use the macro directly on the real data. + * dSparse.cc: ditto. + * CSparse.h (dsolve, utsolve, ltsolve, trisolve, bsolve, + fsolve, factorize): Update declaration for new argument to + calculate the condition number. + (lssolve): delete. + * dSparse.h: ditto. + * Msparse.h: Change use of nxmax to nnz to allow automatic + reduction of matrix size, except for a couple of cases where + nzmax is needed. + * Sparse.cc: Change use of nxmax to nnz to allow automatic + reduction of matrix size, except for a couple of cases where + nzmax is needed. + (Sparse::index (idx_vector&, idx_vector&, int) const): + Special case strict permutations for speed. + * Sparse-op-defs.h: Change use of nxmax to nnz to allow automatic + reduction of matrix size, except for a couple of cases where + nzmax is needed. + (SPARSE_SPARSE_MUL, SPARSE_FULL_MUL, FULL_SPARSE_MUL): Update + macros to allow mixed complex/real arguments. + * SparseCmplxQR.cc (OCTAVE_C99_ZERO): New macro for C99 zero + value. + (qrsolve): Use it to zero temporary buffers used bt CXSPARSE. + * SparseType.cc (SparseType::SparseType ()): Correct detection + of permutated triangular matrices to avoid seg-faults. Disable + detection of underdetermined lower and over-determined upper + matrix due to problems with non minimum norm solutions. + * sparse-dmsolve.cc: New file for Dulmage-Mendelsohn solver. + * Makefile.in: add sparse-dmsolve.cc to targets. + + 2006-03-15 William Poetra Yoga Hadisoeseno + + * oct-time.cc (octave_strptime::init): Return useful character count. + + 2006-03-08 David Bateman + + * SparseCmplxQR.cc: Updates for new upstream CXSPARSE release. Fix for + g++ 4.x stl_vector.h issue with C99 double _Complex type. + * SparseCmplxQR.h: Updates for new upstream CXSPARSE release. + * SparseQR.cc: ditto. + * SparseQR.h: ditto. + * oct-sparse.h: ditto. + * sparse-base-chol.cc (sparse_base_chol<>::sparse_base_chol_rep::init): + Declare info variable as volatile. + + * Sparse.cc (Sparse::transpose (void) const): Accelerate algorithm. + * CSparse.cc (SparseComplexMatrix::transpose (void) const): ditto. + + 2006-03-01 John W. Eaton + + * CMatrix.cc (ComplexMatrix::determinant): + Scale result by factors of 2, not 10. + * dMatrix.cc (Matrix::determinant): Likewise. + + * dbleDET.h (DET::DET): Use initializer list. + (DET::coefficient2, DET::coefficient10, DET::exponent2, + DET::exponent10): New functions. + (DET::det): Delete. + (DET::c2, DET::c10, DET::e2, DET::e10, DET::base2): New data members. + Store value internally with double and int instead of 2-element + double vector. + (DET::initialize2, DET::initialize10): Provide decls. + * dbleDET.cc (DET::value_will_overflow, DET::value_will_underflow): + Return bool value, not int. + (DET::initialize2, DET::initialize10): New functions. + + * CmplxDET.h (ComplexDET::ComplexDET): Use initializer list. + (ComplexDET::coefficient2, ComplexDET::coefficient10, + ComplexDET::exponent2, ComplexDET::exponent10): New functions. + (ComplexDET::det): Delete. + (ComplexDET::c2, ComplexDET::c10, ComplexDET::e2, ComplexDET::e10, + ComplexDET::base2): New data members. + Store value internally with Complex and int instead of 2-element + Complex vector. + (ComplexDET::initialize2, ComplexDET::initialize10): Provide decls. + * dbleComplexDET.cc (ComplexDET::value_will_overflow, + ComplexDET::value_will_underflow): Return bool value, not int. + (ComplexDET::initialize2, ComplexDET::initialize10): New functions. + + 2006-02-24 John W. Eaton + + * Array.cc (assignN): Clear index before reshaping. + + * Array.h (Array::operator =): Don't set idx to 0 if copying self. + + 2006-02-20 David Bateman + + * dSparse.cc (dsolve, utsolve, ltsolve): Remove restriction that + matrix must be square in diagonal, permuted diagonal, triangular + and permuted triangular back/forward substitution code. Change + ambiguous use of no. rows and columns. + * CSParse.cc (dsolve, utsolve, ltsolve): ditto. + * SparseType.cc (SparseType::SparseType(const SparseMatrix&), + SparseType::SparseType(const SparseComplexMatrix&)): Recognize + rectangular diagonal, permuted diagonal, triangular and permuted + triangular matrices. + * Sparse.cc (Sparse::Sparse (octave_idx_type, octave_idx_type, T)): + Treat case where third argument is zero. + + 2006-02-15 John W. Eaton + + * kpse.cc: Do define ST_NLINK_TRICK for Cygwin systems. + (do_subdir) [ST_NLINK_TRICK]: Check links != 2 instead of links > 2. + + * getopt.c: Use __CYGWIN__ instead of __CYGWIN32__. + + 2006-02-13 David Bateman + + * Makefile.in (LINK_DEPS): Add missing dependencies on colamd, + ccolamd and cxsparse + + 2006-02-13 John W. Eaton + + * kpse.cc (kpse_path_iterator::next): Reverse order of tests in + while loop condition. + (kpse_path_iterator::operator =): Declare as private function but + don't define to prevent attempts to use assignment operator. + Don't define ST_NLINK_TRICK for Cygwin systems. + + 2006-02-10 John W. Eaton + + * mx-inlines.cc (MX_ND_REDUCTION): Store in cummulative + product of all dimensions in CP_SZ. + + 2006-02-09 John W. Eaton + + * mx-inlines.cc (MX_ND_CUMULATIVE_OP): Store in cummulative + product of all dimensions in CP_SZ. + + 2006-02-09 David Bateman + + * SparseQR.cc: new file for real sparse QR class. + * SparseQR.h: declaration. + * SparseCmplxQR.cc: new file for complex sparse QR class. + * SparseCmplxQR.h: declaration. + * dSparse.cc (dinverse,tinverse,inverse): Remove unused input args. + (factorize, fsolve): Enable code code lssolve. + (lssolve): disable unused args, write based in above sparse QR class. + * CSparse.cc (dinverse,tinverse,inverse): Remove unused input args. + (factorize, fsolve): Enable code code lssolve. + (lssolve): disable unused args, write based in above sparse QR class. + * oct-sparse.h: fix location of colamd, ccolamd and metis headers. + Include CXSparse headers. + * Makefile.in (MATRIX_INC): Include SparseQR.h and SparseCmplxQR.h. + (MATRIX_SRC): Include SparseQR.cc and SparseCmplxQR.cc. + + 2006-02-08 John W. Eaton + + * Array-util.h (calc_permutated_idx): Delete. + * Array.cc (permute_vector): New data structure. + (permute_vector_compare): New function. + (Array::permute): Rewrite to avoid calc_permutated_index for + improved performance. + + 2006-02-04 David Bateman + + * COLAMD: Remove all files, as now unused. + + 2006-01-31 John W. Eaton + + * Sparse.h (Sparse::nzmax): New function. + (Sparse::nnz): Rename from nonzero. + Change all uses of old nnz function to be nzmax. Change all uses + of nonzero to be nnz. + (Sparse::nzmx): Rename from nnz (data member). Change all uses. + + 2006-01-21 David Bateman + + * sparse-sort.cc (bool octave_sparse_sidxl_comp): 64-bit fix. + (bool octave_idx_vector_comp): New function. + (template class octave_sort): Instantiate + indexed idx_vector sorting function. + * sparse-sort.h (class octave_sparse_sort_idxl): 64-bit fix. + (class octave_idx_vector_sort): New class for indexed idx_vector + sorting. + (bool octave_idx_vector_comp): Declaration. + * Sparse.cc (int assign1(Sparse&, Sparse&)): Treat cases of + unordered LHS indexes in assignment using new octave_idx_vector_sort + class. + (int assign(Sparse&, Sparse&)): ditto. + + 2006-01-30 John W. Eaton + + * so-array.h (streamoff_array::nnz): New funtion. + * boolNDArray.h (boolNDArray::nnz): New function. + * MArrayN.h (MArrayN::nnz): New function. + * MArray.h (MArray::nnz): New function. + + 2006-01-04 David Bateman + + * Spars-op-defs.h (SPARSE_SPARSE_MUL): Previous change resulted in + elements not being sorted in return matrix. Sort them, and make + solver select between two algorithms to further improve the + performance. + * dSparse.cc: include oct-sort.h. + * CSparse.cc: ditto. + * sparse-sort.cc: Instantiate octave_sort. + + 2005-12-28 David Bateman + + * Sparse-op-defs.h (SPARSE_SPARSE_MUL): Improved algorithm that is + faster in all cases, and significantly so for low density or small + order problems. + + 2005-11-30 John W. Eaton + + * LSODE.cc (LSODE::do_integrate (double)): Resize iwork and rwork + before setting any values in either array. + + 2005-11-29 John W. Eaton + + * oct-uname.h, oct-uname.cc: New files. + * Makefile.in: Add them to the appropriate lists. + + 2005-11-11 John W. Eaton + + * Array.cc (Array::indexN): Simplify. + + 2005-11-09 John W. Eaton + + * oct-inttypes.h (octave_int::operator char (void) const): + New conversion op. + + 2005-11-01 John W. Eaton + + * Makefile.in (distclean): Also remove oct-types.h. + From Quentin Spencer . + + 2005-10-31 David Bateman + + * dSparse.cc, CSparse.cc: Use C++ true/false instead of + preprocessor defined TRUE/FALSE. + + 2005-10-30 John W. Eaton + + * mx-inlines.cc (MX_ND_REDUCTION): Iterate in direction of DIM. + (MX_ND_CUMULATIVE_OP): Likewise. + + 2005-10-29 John W. Eaton + + * mx-inlines.cc (MX_ND_REDUCTION): Avoid increment_index to speed + things up. Simplify. + + * Array.cc (Array::indexN): Simplify. Delete separate special + case for "vector_equivalent". + + * Array-util.cc (vector_equivalent): Arg is now dim_vector. + + 2005-10-28 John W. Eaton + + * oct-sparse.h: Fix typo in HAVE_UFSPARSE_UMFPACK_H. + From Quentin Spencer . + + * sparse-base-chol.cc: Use C++ true/false instead of + preprocessor defined TRUE/FALSE. Use 0 instead of NULL. + + 2005-10-27 John W. Eaton + + * Array.cc (assignN): Reshape to final size instead of resizing. + + 2005-10-26 John W. Eaton + + * oct-sparse.h: New file. + * oct-sparse.h.in: Delete. + + 2005-10-26 David Bateman + + * sparse-base-chol.h: Include cholmod specific code in HAVE_CHOLMOD + * sparse-base-chol.cc: ditto. + + 2005-10-26 John W. Eaton + + Changes for GCC 4.1, tip from Arno J. Klaassen + : + + * dSparse.h (real (const SparseComplexMatrix&)): + Publish externally used friend function. + (imag (const SparseComplexMatrix&)): Likewise. + + * dColVector.h (real (const ComplexColumnVector&)): + Publish externally used friend function. + (imag (const ComplexColumnVector&)): Likewise. + + * dNDArray.h (real (const ComplexNDArray&)): + Publish externally used friend function. + (imag (const ComplexNDArray&)): Likewise. + + * dMatrix.h (operator * (const ComplexMatrix&)): + Move decl outside class. No need to be friend. + (real (const ComplexMatrix&)): Publish externally used friend function. + (imag (const ComplexMatrix&)): Likewise. + + * CMatrix.h: (operator * (const ColumnVector&, const + ComplexRowVector&)): Move decl outside class. No need to be friend. + (operator * (const ComplexColumnVector&, const RowVector&)): Likewise. + (operator * (const ComplexColumnVector&, const ComplexRowVector& b)): + Likewise. + + 2005-10-23 David Bateman + + * Sparse-op-defs.h (SPARSE_SPARSE_MUL): Check whether trailing zero + elements need to be removed. + + * oct-sparse.h.in: Include metis headers and some macros for long/int + versions of cholmod. + + * CSparse.cc (tinverse): New private function for the inversion of + an upper triangular matrix. + (dinverse): ditto for diagonal matrices. + (inverse): Add SparseType as an argument. Implement matrix inverse + using tinverse and dinverse. + (fsolve): Use cholmod to implement Cholesky solver. + * CSparse.h (tinverse, dinverse): Declarations + (inverse): Alter declaration to include SparseType. + + * dSparse.cc (tinverse, dinverse, inverse, fsolve): ditto. + * dSparse.h (tinverse, dinverse, inverse): ditto. + + * SparseType.cc: Fix complex constructor for hermitian matrices. + + * sparse-util.cc: New file for sparse utility functions. + * sparse-util.h: New file with declarations of sparse utility + functions. + + * sparse-base-chol.cc: New file with sparse cholesky class based + on cholmod. + * sparse-base-chol.h: New file with declaration of sparse cholesky + class based on cholmod. + + * SparseCmplxCHOL.cc: Instantiate sparse cholesky class for Complex. + * SparseCmplxCHOL.h: Declaration of sparse cholesky class. + + * SparsedbleCHOL.cc: ditto. + * SparsedbleCHOL.h: ditto. + + * Makefile.in (MATRIX_INC): Include sparse-base-chol.h. + (INCLUDES): Include sparse-util.h + (TEMPLATE_SRC): Include sparse-base-chol.cc + (MATRIX_SRC): Include SparseCmplxCHOL.cc and SparsedbleCHOL.cc + + 2005-10-12 John W. Eaton + + * oct-env.cc (octave_env::have_x11_display): New function. + * oct-env.h: Provide decl. + + 2005-09-29 John W. Eaton + + * file-stat.h (file_stat::mode): New function. + + * file-stat.cc (file_stat::is_blk, file_stat::is_chr, + file_stat::is_dir, file_stat::is_fifo, file_stat::is_lnk, + file_stat::is_reg, file_stat::is_sock): New static functions. + * file-stat.h: Provide decls. + + 2005-09-28 John W. Eaton + + * file-ops.cc (file_ops::recursive_rmdir): New function. + * file-ops.h: Provide decl. + + 2005-09-19 David Bateman + + * oct-env.cc (octave_env::do_get_home_directory): + Also check HOMEDRIVE under mingw. + + * Makefile.in (LINK_DEPS): Include UFsparse libraries. + + 2005-09-16 John W. Eaton + + * oct-syscalls.cc: Include lo-utils.h here. + (octave_syscalls::waitpid): Call octave_waitpid here. + + * lo-cutils.c (octave_waitpid): New function. + * lo-utils.h: Provide decl. Include syswait.h here, not in + oct-syscalls.cc + + + * syswait.h [__MINGW32__]: Define WAITPID here instead of defining + waitpid in src/sysdep.h. Make this header C-compatible. + + * oct-syscalls.cc (octave_syscalls::waitpid): New arg, status. + Change all uses. + + 2005-09-15 John W. Eaton + + * Makefile.in (MAKEDEPS_2): Omit unnecessary variable. + + * oct-sparse.h.in: New file. + * Makefile.in (DISTFILES): Include it in the list. + (INCLUDES): Add oct-sparse.h to the list. + + 2005-09-15 David Bateman + + * dSparse.cc : Include oct-sparse.h for probed umfpack, colamd etc + headers. Remove include of umfpack.h. + * CSparse.cc : ditto. + * SparsedbleLU.cc : ditto. + * SparseCmplxLU.cc : ditto. + + * COLAMD : Remove colamd files from octave. + * COLAMD.files : delete. + * COLAMD.README : delete. + * Makefile.in: Remove COLAMD. Add LIBGLOB. + (LN_S): Change to DESTDIR before LN_S to avoid lack of symlinks + under mingw. + + * kpse.cc (ENV_SEP, ENV_SEP_STRING): Use SEPCHAR and SEPCHAR_STR + in definition. + * lo-cutils.c (octave_w32_library_search): Call GetProcAddress with + change of cast not allowed under g++ 3.x. + * lo-utils.h (octave_w32_library_search): Declaration. + * oct-env.cc (do_get_home_directory): Also check HOMEPATH under mingw. + * oct-shlib.cc (octave_w32_shlib::search): Use octave_w32_library_search. + + 2005-09-07 John W. Eaton + + * cmd-edit.cc (command_editor::do_decode_prompt_string): Update + based on current code in Bash. Handle a few more escape + sequences. Do a better job of decoding \W. + + 2005-09-04 David Bateman + + * COLAMD: Update version of colamd to v2.4. + * COLAMD.files: Add colamd_global.c to COLAMD_SRC and second build of + colamd.c for long version. + + 2005-08-25 David Bateman + + * Sparse-op-defs.h (FULL_SPARSE_MUL, SPARSE_FULL_MUL): Macro for + mixed sparse/full multiply. + * dSparse.cc (operator *), CSparse.cc (operator *): New operators for + mixed sparse/full multiply. + * dSparse.h (operator *), CSparse.h (operator *): Declaration of + mixed sparse/full multiply operators. + + 2005-07-25 Erik de Castro Lopo + + * oct-inttypes.h (OCTAVE_S_US_FTR): Compare <= 0 instead of < 0 to + avoid warnings for unsigned types. + + 2005-07-07 John W. Eaton + + * dSparse.cc (SparseMatrix::factorize): Initialize Numeric to 0. + * CSparse.cc (SparseComplexMatrix::factorize:) Likewise. + + 2005-06-15 John W. Eaton + + * oct-rl-edit.c (flush_stdout): Rename from no_redisplay. + Flush stdout here. + (octave_rl_clear_screen): Set rl_redisplay_function to flush_stdout. + + * Array.h (Array::resize): Change int args to octave_idx_type. + + 2005-06-14 John W. Eaton + + * CMatrix.cc, CNDArray.cc, CSparse.cc, dMatrix.cc, dNDArray.cc, + dSparse.cc, lo-cieee.c, lo-mappers.cc: Change all uses of + octave_is_NaN_or_NA to xisnan. + + * lo-mappers.h (octave_is_NaN_or_NA): Mark with GCC_ATTR_DEPRECATED. + * lo-ieee.h (lo_ieee_is_NaN_or_NA): Likewise. + + * lo-cieee.c (lo_ieee_is_NaN_or_NA): Now just a wrapper for + lo_ieee_isnan. + + * dMatrix.cc (Matrix::too_large_for_float): Only check if abs + value is greater than FLT_MAX. + * CMatrix.cc (ComplexMatrix::too_large_for_float): Ditto. + * dNDArray.cc (NDArray::too_large_for_float): Ditto. + * CNDArray.cc (ComplexNDArray::too_large_for_float): Ditto. + + * dMatrix.cc (Matrix::too_large_for_float): Special case Inf + values too. + * CMatrix.cc (ComplexMatrix::too_large_for_float): Ditto. + + * dNDArray.cc (NDArray::too_large_for_float): Likewise for NaN, + NA, Inf values. + * CNDArray.cc (ComplexNDArray::too_large_for_float): Ditto. + + 2005-06-14 David Bateman + + * dMatrix.cc (Matrix::too_large_for_float): Special case NaN and + NA values. + * CMatrix.cc (ComplexMatrix::too_large_for_float): Ditto. + + 2005-06-02 John W. Eaton + + * Array.cc (assignN): Try harder to correctly resize previously + empty LHS. + + 2005-05-16 David Bateman + + * dSparse.h: Change UMFPACK_LONG_IDX to IDX_TYPE_LONG. + * CSparse.h: ditto. + + 2005-05-10 David Bateman + + * dSparse.cc (determinant): Free numeric factorization after + sucessful calculation. + * CSparse.cc (determinant): ditto. + + 2005-05-06 John W. Eaton + + * dbleCHOL.cc (CHOL::init): Use xelem instead of elem for indexing + chol_mat. + (chol2mat_internal, chol2mat, CHOL::inverse): New functions. + * dbleCHOL.h (chol2mat_internal, chol2mat, CHOL::inverse): + Provide decls. + + * CmplxChol.cc (ComplexCHOL::init): Use xelem instead of elem for + indexing chol_mat. + (chol2mat_internal, chol2mat, ComplexCHOL::inverse): New functions. + * CmplxCHOL.h (chol2mat_internal, chol2mat, CmplxCHOL::inverse): + Provide decls. + + 2005-05-05 John W. Eaton + + * Array.cc (Array::permute): Call chop_trailing_singletons on + retval before return. + + 2005-05-04 John W. Eaton + + * cmd-edit.cc (gnu_readline::do_readline): Extract const char* + from prompt outside of INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE block. + + 2005-05-02 John W. Eaton + + * Makefile.in (LINK_DEPS): List $(UMFPACK_LIBS) ahead of $(BLAS_LIBS). + From Dmitri A. Sergatskov . + + 2005-04-29 David Bateman + + * dSparse.cc (trisolve): Diagonal passed to lapack zptsv is type + double. Correct indexing for upper diagonal elements for sparse + tridiagonal. + * CSparse.cc (trisolve): ditto. + + * CSparse.h (UMFPACK_ZNAME): Define macro to pick version of + UMFPACK for 64-bit. + * CSparse.cc (UMFPACK_ZNAME): Replace all umfpack_zi_* with + UMFPACK_ZNAME(*). + * SparseCmplxLU.cc (UMFPACK_ZNAME): ditto + + * dSparse.h (UMFPACK_DNAME): Define macro to pick version of + UMFPACK for 64-bit. + * dSparse.cc (UMFPACK_DNAME): Replace all umfpack_di_* with + UMFPACK_DNAME(*). + * SparsedbleLU.cc (UMFPACK_DNAME): ditto + + * dSparse.cc (ltsolve, utsolve): Correct permuted upper/lower + triangular back/forward substitution code. + * CSparse.cc (ltsolve, utsolve): ditto. + + * dSparse.cc (solve): Use mattype.type (false) to force messaging + from spparms("spumoni",1). + * CSparse.cc (solve): ditto + + * SparseType.cc (SparseType(void)): Print info for + spparms("spumoni",1). + (SparseType(const matrix_type), SparseType(const matrix_type, const + octave_idx_type, const octave_idx_type*), SparseType(const matrix_type, + const octave_idx_type, const octave_idx_type)): New constructors. + (SparseType (const SparseMatrix&), SparseType (SparseComplexMatrix&)): + Detect row permuted lower triangular and column permuted upper + triangular matrices. Remove one of the permutation vectors.. + + * SparseType.h: Simplify the permutation code. + (SparseType(const matrix_type), SparseType + (const matrix_type, const octave_idx_type, const octave_idx_type*), + SparseType(const matrix_type, const octave_idx_type, + const octave_idx_type)): Declarations. + + 2005-04-25 John W. Eaton + + * str-vec.cc (string_vector::delete_c_str_vec): Correctly free + array and its contents. + + 2005-04-22 John W. Eaton + + * oct-rl-edit.c (octave_rl_set_terminal_name): Don't cast away + const here now that rl_terminal_name is declared const char*. + + 2005-04-21 John W. Eaton + + * Makefile.in (DISTFILES): Include oct-types.h.in in the list. + + 2005-04-19 John W. Eaton + + * Array.cc (assignN): Don't crash if the index list is empty. + + 2005-04-14 David Bateman + + * SparseCmplxLU.cc: Add flags for incomplete factorization. + * SparsedbleLU.cc: Ditto. + * SparseCmplxLU.h: Definition. + * SparsedbleLU.h: ditto. + + * SparseType.cc (transpose): New function. + * SparseType.h (transpose): Definition. + + 2005-04-11 John W. Eaton + + * lo-specfun.cc: Use F77_XFCN instead of F77_FUNC for calls to + fortran code that could end up calling XSTOPX. + + 2005-04-10 David Bateman + + * Makefile.in: include oct-types in INCLUDES so that it is + installed + + 2005-04-08 John W. Eaton + + * Makefile.in (clean): Use exact filenames instead of *.xxx. + + * Initial merge of 64-bit changes from Clinton Chee: + + 2005-04-07 John W. Eaton + + * MArray-i.cc, Array-i.cc: Instantiate Array and MArray. + + * CSparse.cc, CSparse.h, MSparse.cc, MSparse.h, Sparse-op-defs.h, + Sparse.cc, Sparse.h, SparseCmplxLU.cc, SparseType.cc, + SparseType.h, SparsedbleLU.cc, boolSparse.cc, boolSparse.h, + dSparse.cc, dSparse.h, sparse-base-lu.cc: + Use octave_idx_type instead of int where needed. + + 2005-03-31 Clinton Chee + + * Array-util.cc, Array-util.h, Array.cc,Array.h, Array2.h, + Array3.h, ArrayN.cc, ArrayN.h, Bounds.cc, Bounds.h, CColVector.cc, + CColVector.h, CDiagMatrix.cc, CDiagMatrix.h, CMatrix.cc, + CMatrix.h, CNDArray.cc, CNDArray.h, CRowVector.cc, CRowVector.h, + CmplxAEPBAL.cc, CmplxAEPBAL.h, CmplxCHOL.cc, CmplxCHOL.h, + CmplxHESS.cc, CmplxHESS.h, CmplxLU.cc, CmplxQR.cc, CmplxQRP.cc, + CmplxSCHUR.cc, CmplxSCHUR.h, CmplxSVD.cc, CmplxSVD.h, CollocWt.cc, + CollocWt.h, DAEFunc.h, DASPK-opts.in,DASPK.cc,DASPK.h, + DASRT-opts.in, DASRT.cc, DASRT.h, DASSL-opts.in, DASSL.cc, + DASSL.h, DiagArray2.cc, DiagArray2.h, EIG.cc, EIG.h, FEGrid.cc, + FEGrid.h, LPsolve.cc, LPsolve.h, LSODE-opts.in, LSODE.cc, LSODE.h, + MArray-defs.h, MArray.cc, MArray.h, MArray2.cc, MArray2.h, + MArrayN.cc, MDiagArray2.cc, MDiagArray2.h, NLConst.h, NLEqn.cc, + NLEqn.h, Quad.cc, Quad.h, Range.cc,Range.cc, Range.h, base-de.h, + base-lu.cc, base-lu.h, base-min.h, boolMatrix.cc, boolMatrix.h, + boolNDArray.cc, boolNDArray.h, chMatrix.cc, chMatrix.h, + chNDArray.cc, chNDArray.h, dColVector.cc, dColVector.h, + dDiagMatrix.cc, dDiagMatrix.h, dMatrix.cc, dMatrix.h, + dNDArray.cc,dNDArray.cc, dNDArray.h, dRowVector.cc, dRowVector.h, + dbleAEPBAL.cc, dbleAEPBAL.h, dbleCHOL.cc, dbleCHOL.h, dbleHESS.cc, + dbleHESS.h, dbleLU.cc, dbleQR.cc, dbleQRP.cc, dbleSCHUR.cc, + dbleSCHUR.h, dbleSVD.cc, dbleSVD.h, dim-vector.h, idx-vector.cc, + idx-vector.h, intNDArray.cc, intNDArray.h, lo-specfun.cc, + lo-specfun.h, mach-info.cc, mx-inlines.cc, oct-fftw.cc, + oct-fftw.h, oct-rand.cc, oct-rand.h, so-array.cc, so-array.h, + str-vec.cc, str-vec.h: + Use octave_idx_type instead of int where needed. + + 2005-04-01 John W. Eaton + + * dim-vector.h, lo-utils.h: Include oct-types.h. + + * oct-types.h.in: New file. + + 2005-03-31 Clinton Chee + + * lo-utils.cc (NINTbig): New function. + * lo-utils.h: Provide decl. + + 2005-04-06 David Bateman + + * Makefile.in: Link to UMFPACK_LIBS. + + 2005-04-05 John W. Eaton + + * Array.cc (assignN): Avoid shadowed declaration in previous change. + + 2005-04-01 John W. Eaton + + * Array.cc (assignN): For A(IDX-LIST) = RHS with A previously + undefined, correctly match colons in IDX-LIST with RHS dimensions + when resizing A. When performing the assignment, just check that + the number of elements in RHS matches the number of elements + indexed by IDX-LIST. + + 2005-03-30 John W. Eaton + + * lo-mappers.cc (log10, tan, tanh): Delete functions. + * lo-mappers.h (log10, tan, tanh): Delete decls. + + * CColVector.cc, CNDArray.cc, CRowVector.cc, CSparse.cc, + dSparse.cc: Use std:: for Complex functions instead of relying on + wrappers from oct-cmplx.h. + + * oct-cmplx.h: Provide typedef only. + + * DiagArray2.cc (xelem): Don't use initializer for static data. + * DiagArray2.h (DiagArray::Proxy::operator T ()): + Likewise. + + 2005-03-26 John W. Eaton + + * cmd-edit.cc (do_readline): Wrap call to ::octave_rl_readline + with {BEGIN,END}_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE. + + 2005-03-15 John W. Eaton + + * Makefile.in (MATRIX_INC): Remove oct-spparms.h from the list. + + 2005-03-14 John W. Eaton + + * Makefile.in (DISTFILES): Don't include $(UMFPACK_EXTRAS). + (DISTDIRS): Don't include UMFPACK. + (LIBOCTAVE_OBJECTS): Don't include $(UMFPACK_OBJ). + (UMFPACK_SPECIAL_1, UMFPACK_SPECIAL): No need for special include + flags for these files. + Don't include include $(srcdir)/UMFPACK.files. + Don't include include $(srcdir)/UMFPACK.rules. + + * UMFPACK.README, UMFPACK.files, UMFPACK.patch, UMFPACK.rules: + Delete files. + * UMFPACK: Delete directory tree. + + * dSparse.cc: Include instead of just "umfpack.h". + * CSparse.cc: Likewise. + * SparsedbleLU.cc: Likewise. + * SparseCmplxLU.cc: Likewise. + + 2005-03-14 David Bateman + + * CSParse.cc, SparseCmplxLU.cc, SparsedbleLU.cc, dSparse.cc: + Allow compilation to succeed if UMFPACK is not available. + + 2005-03-09 John W. Eaton + + * Makefile.in (bin-dist): Delete target. + (BINDISTLIBS, BINDISTFILES): Delete variables. + + 2005-03-01 John W. Eaton + + * ODESSA.h, ODESSA.cc, ODESSA-opts.in: Delete. + * Makefile.in: Remove them from the lists. + + 2005-02-28 John W. Eaton + + * Makefile.in (LINK_DEPS): Remove -lglob from the list. + + 2005-02-27 David Bateman + + * Sparse.cc (Sparse::reshape): Set cidx for the N last elements + in the sparse matrix. + + 2005-02-25 John W. Eaton + + Sparse merge. + + 2005-02-13 David Bateman + + * CSparse.cc (SparseComplexMatrix:dsolve, SparseComplexMatrix:utsolve, + SparseComplexMatrix::ltsolve, SparseComplexMatrix::trisolve, + SparseComplexMatrix::bsolve, SparseComplexMatrix:fsolve): Split sparse + solver into separate functions for the diagonal, upper, lower + triangular, tridiagonal, banded and full cases. + (SparseComplexMatrix::solve): rewrite to call the above function. One + version that probes the matrix type and another that assumes the type + is passed. + + * dSparse.cc (SparseMatrix:dsolve, SparseMatrix:utsolve, + SparseMatrix::ltsolve, SparseMatrix::trisolve, + SparseMatrix::bsolve, SparseMatrix:fsolve): Likewise + (SparseMatrix::solve): Likewise + + * CSparse.h (dsolve, utsolve, ltsolve, trisolve, bsolve, fsolve): + Declaration of new functions + * dSparse.h (dsolve, utsolve, ltsolve, trisolve, bsolve, fsolve): + Likewise + + * CSparse.cc (operator !): Reverse the sense of the test. + * dSpase.cc (operator !): Likewise + + * dSparse.h (type, band_size, is_dense, triangular_row_perm, + triangular_col_perm, sparse_info): Remove matrix type code + * CSparse.h (type, band_size, is_dense, triangular_row_perm, + triangular_col_perm, sparse_info): Likewise + * boolSparse.h (type, band_size, is_dense, triangular_row_perm, + triangular_col_perm, sparse_info): Likewise + * MSparse.h (type, band_size, is_dense, triangular_row_perm, + triangular_col_perm, sparse_info): Likewise + * Sparse.h (type, band_size, is_dense, triangular_row_perm, + triangular_col_perm, sparse_info, matrix_type): Likewise + + * Sparse.cc (type, sparse_info, band_size): Remove type code + + * SparseType.h: New class for the matrix type used in solvers + * SparseType.cc: methods of sparse matrix type class + + * Makefile.in: Add SparseType.cc + + 2005-02-01 David Bateman + + * UMFPACK: Update to version 4.4 + * UMFPACK.patch: Version 4.4 contains most of the previous patch. Only + keep octave specific test files + + 2005-01-23 David Bateman + + * dSparse.cc (SparseMatrix::solve): Include tridiagonal, cholesky + tridiagonal and banded cholesky solvers. Remove calculation of + condition number for banded solvers. + * CSparse.cc (SparseComplexMatrix::solve): ditto. + + * Sparse.h (int type (int) const, bool is_dense (void) const): + new functions. + * MSparse.h (int type (int) const, bool is_dense (void) const): ditto + * dSparse.h (int type (int) const, bool is_dense (void) const): ditto + * CSparse.h (int type (int) const, bool is_dense (void) const): ditto + * boolSparse.h (int type (int) const, bool is_dense (void) const): + ditto + + * Sparse.cc (int Sparse::type (int) const, + bool Sparse::is_dense (void) const): New functions definition + + * Sparse.h (matrix_type typ): Move caching of matrix type to SparseRep, + so it actually is cached, but disable + + * oct-spparms.cc (SparseParams::init_keys): Change spmoni to spumoni + for compatiability + + 2005-01-18 David Bateman + + * Array.cc (Array::insert (const Array&, const Array&)): + Modify calculation of number elements to skip between copied blocks. + + 2005-01-07 David Bateman + + * Sparse.h : Reverse definitions of numel and nelem. + * Sparse.cc (assign1): Use numel and not nelem + * Sparse-op-def.h: Replace all uses of nelem with numel + + 2005-01-07 David Bateman + + * dbleDET.h: Make SparseMatrix a friend of the class DET + * CmplexDET.h: Make SparseComplexMatrix a friend of the class + ComplexDET + * dSparse.cc (SparseMatrix::determinant): Replace use of SparseDET + by DET + * dSparse.h (determinant): ditto + * CSparse.cc (SparseComplexMatrix::determinant): Replace use of + SparseComplexDET by ComplexDET + * CSparse.h (determinant): ditto + * SparsedbleDET.h, SparsedbleDET.cc, SparseCmplxDET.h, + SparseCmplxDET.cc: delete files + * Makefile.in: Delete reference to SparsedbleDET.h, SparsedbleDET.cc, + SparseCmplxDET.h andSparseCmplxDET.cc. + + * CSparse.cc (SparseComplexMatrix::solve): Store matrix type in + local variable to avoid variable shadowing. + * dSparse.cc (SparseMatrix::solve): ditto. + + * boolSparse.cc boolSparse.h CSparse.cc CSparse.h dSparse.cc + dSparse.h MSparse.cc MSparse-C.cc MSparse-d.cc MSparse-defs.h + MSparse.h oct-spparms.cc oct-spparms.h Sparse-b.cc Sparse.cc + Sparse-C.cc SparseCmplxLU.cc SparseCmplxLU.h SparsedbleLU.cc + SparsedbleLU.h Sparse-d.cc Sparse.h Sparse-op-defs.h sparse-sort.cc + sparse-sort.h: Remove additional licensing clause with authors + permission. + + 2004-12-30 John W. Eaton + + * MSparse.cc (SPARSE_A2S_OP_2, SPARSE_SA2_OP_2): + Loop counter is int, not size_t. + + * oct-spparms.cc (SparseParams::operator =): Return *this. + + * Sparse-op-defs.h (SPARSE_SPARSE_MUL): Delete unused variable tmpval. + + * dSparse.cc (operator << (ostream&, const SparseMatrix&), atan2): + Delete unused variables. + (SparseMatrix::solve): Avoid warnings about uninitialized + variables and variables that might be clobbered by longjmp. + + * CSparse.cc (operator << (ostream&, const SparseComplexMatrix&), + min, max): Delete unused variables. + (SparseComplexMatrix::solve): Avoid warnings about uninitialized + variables and variables that might be clobbered by longjmp. + + * Makefile.in (UMFPACK_SPECIAL): Include .d files in the list. + + * Sparse-op-defs.h (SPARSE_SMS_BIN_OP_2, SPARSE_SSM_BIN_OP_2): + Loop counter is int, not size_t. + + * CSparse.cc (SparseComplexMatrix::hermitian): Avoid shadow warnings. + * Sparse.cc (Sparse::Sparse, Sparse::type, assign): Likewise. + + * Sparse.h (Sparse::SparseRep): Order data members and initializer + lists consistently. + + * mx-base.h: Include boolSparse.h, dSparse.h, and CSparse.h. + + 2004-12-29 John W. Eaton + + * COLAMD.files (COLAMD_EXTRAS): New variable. + * UMFPACK.files (UMFPACK_EXTRAS): New variable. + * Makefile.in (DISTFILES): Add $(COLAMD_EXTRAS) and + $(UMFPACK_EXTRAS) to the list. + (DISTDIRS): New variable. + (dist): Handle $(DISTDIRS). + + Merge of sparse code from David Bateman and + Andy Adler . + + * Makefile.in (VPATH): ADD @srcdir@/COLAMD to the list. + + * Makefile.in (MAKEDEPS): Include $(COLAMD_SRC) and $(UMFPACK_SRC) + without directory prefix. + + * Makefile.in (LIBOCTAVE_OBJECTS): Add $(COLAMD_OBJ) and + $(UMFPACK_OBJ) to the list. + + * COLAMD: New directory. + * COLAMD.files: New file. + * Makefile.in: Include COLAMD.files. + (SOURCES): Add $(COLAMD_SOURCES) to the list. + (LIBOCTAVE_OBJECTS): Add $(COLAMD_OBJECTS) to the list. + (INCLUDES): Add $(COLAMD_INCLUDES) to the list. + + * UMFPACK: New directory. + * UMFPACK.patch, UMFPACK.README, UMFPACK.files, UMFPACK.rules: + New files. + * Makefile.in: Include UMFPACK.files and UMFPACK.rules. + (SOURCES): Add $(UMFPACK_SOURCES) to the list. + (LIBOCTAVE_OBJECTS): Add $(UMFPACK_OBJECTS) to the list. + (INCLUDES): Add $(UMFPACK_INCLUDES) to the list. + + * Makefile.in (SPARSE_MX_OP_INC): New variable. + (INCLUDES): Add it to the list. + (SPARSE_MX_OP_SRC): New variable. + (LIBOCTAVE_CXX_SOURCES): Add it to the list. + (distclean): Remove $(SPARSE_MX_OP_INC) and $(SPARSE_MX_OP_SRC). + (stamp-prereq): Depend on $(SPARSE_MX_OP_INC) and $(SPARSE_MX_OP_SRC). + + * sparse-mk-ops.awk, sparse-mx-ops: New files. + * Makefile.in (DISTFILES): Add them to the lists. + + * oct-spparms.h, sparse-sort.h: New files. + * Makefile.in (INCLUDES): Add them to the list. + + * oct-spparms.cc, sparse-sort.cc: New files. + * Makefile.in (LIBOCTAVE_CXX_SOURCES): Add them to the list. + + * sparse-base-lu.cc: New file. + * Makefile.in (TEMPLATE_SRC): Add it to the list. + + * boolSparse.cc, CSparse.cc, dSparse.cc, MSparse.cc, Sparse.cc, + SparseCmplxDET.cc, SparseCmplxLU.cc, SparsedbleDET.cc, + SparsedbleLU.cc: New files. + * Makefile.in (MATRIX_SRC): Add them to the list. + + * boolSparse.h, CSparse.h, dSparse.h, MSparse-defs.h, MSparse.h, + Sparse.h, oct-spparms.h, sparse-base-lu.h, SparseCmplxDET.h, + SparseCmplxLU.h, SparsedbleDET.h, SparsedbleLU.h, + Sparse-op-defs.h: New files. + * Makefile.in (MATRIX_INC): Add them to the appropriate lists. + + * MSparse-d.cc, MSparse-C.cc, Sparse-b.cc, Sparse-d.cc, + Sparse-C.cc: New files. + * Makefile.in (TI_SRC): Add them to the list. + + 2005-02-18 John W. Eaton + + * file-ops.cc (file_ops::canonicalize_file_name) [HAVE_RESOLVEPATH]: + Pass current directory to octave_env::make_absolute. + Save value returned from octave_env::make_absolute in local var. + Pass const char*, not std::string as first arg of resolvepath. + Provide decl for resolved_len. + + 2005-02-18 John W. Eaton + + * Array.cc (Array::permute): Allow permutation vector longer + than number of dimenensions of permuted matrix. + + * Array.cc (Array::permute): Use zero-based indexing for perm_vec. + * Array-util.cc (calc_permutated_idx): Likewise. + + 2005-02-10 David Bateman + + * CNDArray.cc (ComplexNDarray::operator !): Change sense of test. + * CMatrix.cc (ComplexMatrix::operator !): Likewise. + + 2005-02-09 John W. Eaton + + * file-ops.cc (file_ops::canonicalize_file_name): New functions. + * file-ops.h: Provide decls. + + * kpse.cc (kpse_tilde_expand): Simply return NAME if it is empty. + + 2005-02-08 John W. Eaton + + * Array-util.cc (freeze): Improve error message. + + 2005-01-26 David Bateman + + * Array.cc (Array::insert): Handle generic case, not just + special case for fast concatenation. + + 2005-01-18 John W. Eaton + + * mx-inlines.cc (MX_ND_REDUCTION): Delete RET_ELT_TYPE arg. + Change all uses. Use VAL instead of RET_ELT_TYPE when resizing. + + * dNDArray.cc (NDArray::any): NaN does not count as a nonzero value. + * CNDArray.cc (ComplexNDArray::any): Likewise. + + 2005-01-18 David Bateman + + * Array.cc (Array::insert (const Array&, const Array&)): + Modify calculation of number elements to skip between copied blocks. + + 2005-01-18 John W. Eaton + + * idx-vector.cc (IDX_VEC_REP::freeze): Call warning handler, not + error handler, to warn about resizing. + + 2004-12-27 Martin Dalecki + + * Array.cc, ArrayN.cc, base-lu.cc, boolMatrix.cc, boolNDArray.cc, + Bounds.cc, CColVector.cc, CDiagMatrix.cc, chMatrix.cc, + chNDArray.cc, CMatrix.cc, CmplxAEPBAL.cc, CmplxCHOL.cc, + CmplxDET.cc, CmplxHESS.cc, CmplxLU.cc, CmplxQR.cc, CmplxQRP.cc, + CmplxSCHUR.cc, CmplxSVD.cc, CNDArray.cc, CollocWt.cc, + CRowVector.cc, DASPK.cc, DASRT.cc, DASSL.cc, dbleAEPBAL.cc, + dbleCHOL.cc, dbleDET.cc, dbleHESS.cc, dbleLU.cc, dbleQR.cc, + dbleQRP.cc, dbleSCHUR.cc, dbleSVD.cc, dColVector.cc, + dDiagMatrix.cc, DiagArray2.cc, dMatrix.cc, dNDArray.cc, + dRowVector.cc, EIG.cc, FEGrid.cc, idx-vector.cc, int16NDArray.cc, + int32NDArray.cc, int64NDArray.cc, int8NDArray.cc, intNDArray.cc, + LinConst.cc, LPsolve.cc, LSODE.cc, MArray2.cc, MArray.cc, + MArrayN.cc, MDiagArray2.cc, NLEqn.cc, oct-alloc.cc, ODES.cc, + ODESSA.cc, Quad.cc, Range.cc, so-array.cc, uint16NDArray.cc, + uint32NDArray.cc, uint64NDArray.cc, uint8NDArray.cc: + Delete #pragma implementation. + + * Array2.h, Array3.h, Array.h, ArrayN.h, base-lu.h, boolMatrix.h, + boolNDArray.h, Bounds.h, CColVector.h, CDiagMatrix.h, chMatrix.h, + chNDArray.h, CMatrix.h, CmplxAEPBAL.h, CmplxCHOL.h, CmplxDET.h, + CmplxHESS.h, CmplxLU.h, CmplxQR.h, CmplxQRP.h, CmplxSCHUR.h, + CmplxSVD.h, CNDArray.h, CollocWt.h, CRowVector.h, DASPK.h, + DASRT.h, DASSL.h, dbleAEPBAL.h, dbleCHOL.h, dbleDET.h, dbleHESS.h, + dbleLU.h, dbleQR.h, dbleQRP.h, dbleSCHUR.h, dbleSVD.h, + dColVector.h, dDiagMatrix.h, DiagArray2.h, dim-vector.h, + dMatrix.h, dNDArray.h, dRowVector.h, EIG.h, FEGrid.h, + idx-vector.h, int16NDArray.h, int32NDArray.h, int64NDArray.h, + int8NDArray.h, intNDArray.h, LinConst.h, LPsolve.h, LSODE.h, + MArray2.h, MArray.h, MArrayN.h, MDiagArray2.h, NLConst.h, NLEqn.h, + ODES.h, ODESSA.h, Quad.h, Range.h, so-array.h, uint16NDArray.h, + uint32NDArray.h, uint64NDArray.h, uint8NDArray.h: + Delete #pragma interface. + + 2004-12-17 John W. Eaton + + * lo-cieee.c (lo_ieee_signbit): New function. + * lo-ieee.h: Provide decl. + Don't define lo_ieee_signbit as a macro here. + From Orion Poplawski . + + 2004-11-18 John W. Eaton + + * int32NDArray.cc (pow): Delete instantiation. + * int16NDArray.cc (pow): Likewise. + * int8NDArray.cc (pow): Likewise. + * uint32NDArray.cc (pow): Likewise. + * uint16NDArray.cc (pow): Likewise. + * uint8NDArray.cc (pow): Likewise. + + 2004-11-17 John W. Eaton + + * kpse.cc (str_llist_float, str_llist_add, kpse_var_expand): + Now static. + (DB_ENVS, DB_HASH_SIZE, DB_NAME, ALIAS_NAME, ALIAS_HASH_SIZE, + DEFAULT_TEXMFDBS): Delete unused macros. + + * Array.cc (Array::index): Call generic N-d indexing function + if idx_arg is N-d. + + 2004-11-09 David Bateman + + * dNDArray.cc (concat): Delete. + (NDArray::concat): New methods. + * dNDArray.h: Provide decls. + + * CNDArray.cc (concat): Delete. + (ComplexNDArray::concat): New methods. + * CNDArray.h: Provide decls. + + * boolNDArray.cc (concat): Delete. + (boolNDArray::concat): New methods. + * boolNDArray.h: Provide decls. + + * chNDArray.cc (concat): Delete. + (charNDArray::concat): New methods. + * chNDArray.h: Provide decls. + + * oct-inttypes.h (OCTAVE_INT_CONCAT_FN, OCTAVE_INT_CONCAT_DECL): + Delete macros. + + * int8NDArray.h, int16NDArray.h, int32NDArray.h, int64NDArray.h, + uint8NDArray.h, uint16NDArray.h, uint32NDArray.h, uint64NDArray.h + (OCTAVE_INT_CONCAT_DECL): Delete use of macro. + + * int8NDArray.cc, int16NDArray.cc, int32NDArray.cc, int64NDArray.cc, + uint8NDArray.cc, uint16NDArray.cc, uint32NDArray.cc, uint64NDArray.cc + (OCTAVE_INT_CONCAT_FN): Delete use of macro. + + * intNDArray.cc (intNDArray::concat): New method. + * intNDArray.h: Provide decl. + + 2004-11-08 John W. Eaton + + * oct-inttypes.cc: New file. + * Makefile.in (TI_SRC): Add it to the list. + * oct-inttypes.h (OCTAVE_US_TYPE1_CMP_OP, OCTAVE_US_TYPE1_CMP_OPS, + OCTAVE_SU_TYPE1_CMP_OP, OCTAVE_SU_TYPE1_CMP_OPS, + OCTAVE_TYPE1_CMP_OPS, OCTAVE_US_TYPE2_CMP_OP, + OCTAVE_US_TYPE2_CMP_OPS, OCTAVE_SU_TYPE2_CMP_OP, + OCTAVE_SU_TYPE2_CMP_OPS, OCTAVE_TYPE2_CMP_OPS): + New macros for comparison operations. Avoid potential + problems with default conversions when comparing signed and + unsigned values. + + 2004-11-03 John W. Eaton + + * dMatrix.cc (Matrix::inverse): Return info == -1 for any failure. + * CMatrix.cc (ComplexMatrix::inverse): Likewise. + + 2004-10-19 John W. Eaton + + * Array.cc (assignN): Avoid resizing if assignment will fail. + + 2004-10-18 John W. Eaton + + * Array.cc (assign2): Save result of squeeze operation. + Squeeze if ndims is > 2, not if length of RHS vector is > 2. + + 2004-10-11 David Bateman + + * oct-fftw.cc (class octave_fftw_planner): Add inplace[2] to + flag whether transform in- or out-of-place. + (octave_fftw_planner::octave_fftw_planner): Initialize it. + (octave_fftw_planner::create_plan): Use it. + + 2004-09-24 John W. Eaton + + * Array.cc (assign2, assignN): If index is empty, allow RHS to be + any empty matrix, not just []. + + 2004-09-23 John W. Eaton + + * mx-ops: Include scalar zero value in type definitions. + Delete zero information from ops section. + * mk-ops.awk: Use type-specific zero info. + + * mx-op-defs.h (MS_BOOL_OP, SM_BOOL_OP, MM_BOOL_OP, NDS_BOOL_OP, + SND_BOOL_OP, NDND_BOOL_OP): Args now include zero values for both + LHS and RHS. + (MS_BOOL_OPS2, SM_BOOL_OPS2, MM_BOOL_OPS2, NDS_BOOL_OPS2, + SND_BOOL_OPS2, NDND_BOOL_OPS2): New macros. + (MS_BOOL_OPS, SM_BOOL_OPS, MM_BOOL_OPS, NDS_BOOL_OPS, + SND_BOOL_OPS, NDND_BOOL_OPS): Define in terms of 2-zero versions. + + * idx-vector.h (idx_vector::idx_vector_rep::idx_vector_rep (const + intNDArray&)): Use explicit as_double () conversion in call to + tree_to_mat_idx. + + * oct-inttypes.h (octave_int::operator float): New conversion. + (pow): Instead of "if (b_val)", use "if (b_val != zero)". + Likewise for the "if (b_val & one)" test. + (operator <<, operator >>): Type of retval is octave_int, not T1. + + 2004-09-23 David Bateman + + * oct-inttypes.h (OCTAVE_INT_DOUBLE_CMP_OP, OCTAVE_DOUBLE_INT_CMP_OP): + New macros. Use them to define mixed intX-double and double-intX ops. + + 2004-09-22 Federico Zenith + + * DASPK-opts.in, DASRT-opts.in, ODESSA-opts.in: + Fix doc string layout to avoid overfull hbox in printed output. + + 2004-09-21 John W. Eaton + + * mach-info.h (octave_mach_info::flt_fmt_native): Delete. + * mach-info.cc (octave_mach_info::string_to_float_format): + For "native", set actual native format. + (octave_mach_info::float_format_as_string): Delete flt_fmt_native case. + + 2004-09-17 David Bateman + + * CmplxSCHUR.cc (CmplxSCHUR::init): New arg, calc_unitary to make the + calculation of the unitary matrix optional. + * dbleSCHUR.cc (SCHUR::init): Ditto. + * CmplxSCHUR.h, dbleSCHUR.h: Update decls. + + 2004-09-15 David Bateman + + * oct-sort.h (octave_sort::set_compare (bool (*comp) (T, T))): + New function to set the comparison function for the sort. + + 2004-09-10 John W. Eaton + + * lo-mappers.cc (xround): Fix typo. + + 2004-09-08 John W. Eaton + + * Array.h (Array::~Array): Declare virtual. + + * idx-vector.h (idx_vector::idx_vector): Initialize rep in member + initializaion list. Don't set rep->count since the rep + constructor does that. + + 2004-09-07 John W. Eaton + + * data-conv.cc (oct_data_conv::string_to_data_type): Handle dt_logical. + (oct_data_conv::data_type_as_string): Likewise. + + * data-conv.h (oct_data_conv::data_type): Add dt_logical to list. + + * Range.cc (round): Delete unused function. + + * lo-mappers.cc (xround): Rename from round. Change all uses. + If HAVE_ROUND, call round, otherwise fake with floor and ceil. + + * oct-inttypes.h: Include here. + + 2004-09-03 David Bateman + + * boolNDArray.cc (boolNDArray::concat, boolNDArray::insert): + New functions for boolean matrix concatenation. + * boolNDArray.h: Provide decls. + + 2004-09-03 John W. Eaton + + * oct-inttpes.h (OCTAVE_INT_CMP_OP): Convert operarands to double + to avoid signed/unsigned int comparison problems. + + * mx-ops: Generate CMP and BOOL ops for mixed integer types and + for mixed integer and double types. + + * mk-ops.awk: Output BIN_OP_DECLS, CMP_OP_DECLS, and BOOL_OP_DECLS + separately, and only if needed. + + * oct-inttypes.h (octave_fit_to_range): Use constructor instead of + static_cast for type conversion. + + 2004-09-01 John W. Eaton + + * oct-inttypes.h (pow, operator +, operator -, operator *, + operator /): Handle mixed integer/double ops. If op generates a + NaN, set result to 0. + (octave_int::operator - (void)): Convert to double, then negate, + then fit to range. + + * mx-ops: Define integer types. Include declarations for mixed + integer/double ops. + + 2004-08-31 John W. Eaton + + * oct-inttypes.h (pow): Args now const reference. + (octave_int::operator *=, octave_int::operator /=, + octave_int::operator <<=, octave_int::operator >>=): + New member functions. + (OCTAVE_INT_BITSHIFT_OP): Delete macro. + (operator >> (const octave_int& x, const T2& y)): + Define in terms of >>=. + (operator << (const octave_int& x, const T2& y)): + Define in terms of <<=. + (bitshift): Operate on octave_int objects, not the values, so + we get proper saturation properties. + + 2004-08-31 David Bateman + + * oct-inttypes.h (pow (constT, T)): New template. + + * int8NDArray.cc, int16NDArray.cc, int32NDArray.cc, uint8NDArray.cc, + uint16NDArray.cc, uint32NDArray.cc: Instantiate power function. + + 2004-08-31 John W. Eaton + + * oct-inttypes.h (octave_int::byte_size): New function. + + 2004-08-31 John W. Eaton + + * Makefile.in (EXTRAS): Add intNDArray.cc to the list. + + * data-conv.h (oct_data_conv::data_type): Include sized types. + Explicitly number enum elements. + + * data-conv.cc (oct_data_conv::string_to_data_type (const + std::string&, int&, oct_data_conv::data_type&, + oct_data_conv::data_type&)): New function. + (oct_data_conv::string_to_data_type (const std::string&, int&, + oct_data_conv::data_type&)): New function. + (oct_data_conv::data_type_as_string): New function. + + * dMatrix.cc (read_int, do_read, Matrix::read): Delete. + (write_int, do_write, Matrix::write): Delete. + * dMatrix.h (Matrix::read, Matrix::write): Delete decls. + + * byte-swap.h: Use template functions and specialization. + Change all uses. + (swap_2_bytes, swap_4_bytes, swap_8_bytes): Delete. + + 2004-08-30 John W. Eaton + + * oct-inttypes.h (octave_int_fit_to_range): Use template + specializations to avoid warnings about signed/unsigned comparisons. + + 2004-08-28 John W. Eaton + + * data-conv.cc (do_float_format_conversion (unsigned char *, + size_t, int, oct_mach_info::float_format)): New function. + (GET_SIZED_INT_TYPE): New macro. + (string_to_data_type): Use it to return sized types corresponding + to Octave array data types. + (strip_spaces): New function. + (do_double_format_conversion, do_float_format_conversion): Pass + from_fmt and to_fmt. Don't always assume the to_fmt is the native + float format. + (do_double_format_conversion, + IEEE_big_double_to_IEEE_little_double, + VAX_D_double_to_IEEE_little_double, + VAX_G_double_to_IEEE_little_double, Cray_to_IEEE_little_double, + IEEE_little_double_to_IEEE_big_double, + VAX_D_double_to_IEEE_big_double, VAX_G_double_to_IEEE_big_double, + Cray_to_IEEE_big_double, IEEE_little_double_to_VAX_D_double, + IEEE_big_double_to_VAX_D_double, VAX_G_double_to_VAX_D_double, + Cray_to_VAX_D_double, IEEE_little_double_to_VAX_G_double, + IEEE_big_double_to_VAX_G_double, VAX_D_double_to_VAX_G_double, + Cray_to_VAX_G_double): + Pass data as void*, not double*. + (do_float_format_conversion, IEEE_big_float_to_IEEE_little_float, + VAX_D_float_to_IEEE_little_float, + VAX_G_float_to_IEEE_little_float, Cray_to_IEEE_little_float, + IEEE_little_float_to_IEEE_big_float, + VAX_D_float_to_IEEE_big_float, VAX_G_float_to_IEEE_big_float, + Cray_to_IEEE_big_float, IEEE_little_float_to_VAX_D_float, + IEEE_big_float_to_VAX_D_float, VAX_G_float_to_VAX_D_float, + Cray_to_VAX_D_float, IEEE_little_float_to_VAX_G_float, + IEEE_big_float_to_VAX_G_float, VAX_D_float_to_VAX_G_float, + Cray_to_VAX_G_float): + Pass data as void*, not float*. + + 2004-08-27 John W. Eaton + + * byte-swap.h (swap_bytes): New template versions, with + specializations. + (swap_2_bytes, swap_4_bytes, swap_8_bytes): Delete. + Change all uses. + + 2004-08-24 David Bateman + + * chNDArray.cc (concat): Check whether matrix to be inserted is + empty instead of checking final matrix. + * dNDArray.cc (concat): Likewise. + * CNDArray.cc (concat): Likewise. + + 2004-08-23 David Bateman + + * dim-vector.h (dim_vector::concat): Correct incrementation for + non-existent dimensions. + + 2004-08-09 John W. Eaton + + * idx-vector.h (idx_vector::idx_vector_rep::tree_to_mat_idx + (const octave_int&)): New member function. + (idx_vector::idx_vector_rep::tree_to_mat_idx (double, bool&), + idx_vector::idx_vector_rep::tree_to_mat_idx (int)): + Now member functions instead of static in idx-vector.cc. + (idx_vector::idx_vector_rep::idx_vector_rep (const octave_int&), + idx_vector::idx_vector_rep::idx_vector_rep (const intNDArray&)): + New template constructors. + + 2004-08-05 John W. Eaton + + * EIG.cc (EIG::init): Add volatile qualifier to nvr decl. + + * intNDArray.cc (intNDArray::operator !, intNDArray::all, + intNDArray::any): Sprinkle with this-> as needed. + * mx-inlines.cc (MX_ND_REDUCTION, MX_ND_CUMULATIVE_OP): Likewise. + + 2004-08-03 John W. Eaton + + * Array.cc (Array::squeeze): Do nothing for 2-d arrays. For + arrays with more than two dimensions and only one non-singleton + dimension, return a column vector. + + 2004-07-28 John W. Eaton + + * oct-cmplx.h (pow (const Complex&, const double&): + Convert second arg to complex to avoid libstdc++ bug. + + 2004-07-27 John W. Eaton + + * oct-inttypes.h (bitshift): New arg, MASK. + (OCTAVE_INT_BITSHIFT_OP): Bitshift does not saturate. + + 2004-07-23 John W. Eaton + + * Array.cc (Array::reshape): Return *this if no change in size. + + 2004-07-23 David Bateman + + * Array.cc, Array.h (cat_ra): Delete. + * Array.h, Array-C.cc, Array-d.cc, Array-ch.cc, Array-i.cc + (INSTANTIATE_ARRAY_CAT): Delete. + + * dNDArray.cc, dNDArray.h, CNDArray.cc, CNDArray.h, chNDArray.cc, + chNDArray.h, intNDArray.cc, intNDArray.h (cat): Delete. + + * Array.cc (Array::insert): Copy data in NDArray version. + + * dNDArray.cc, dNDArray.h, CNDArray.cc, CNDArray.h, chNDArray.cc, + chNDArray.h (concat): New function used for concatenation that does + an indexed copy of one array into another. + + * dim-vector.h (concat): New function to concatenate dim_vectors. + + * dNDArray.cc, dNDArray.h, CNDArray.cc, CNDArray.h, chNDArray.cc, + chNDArray.h, intNDArray.cc, intNDArray.h (insert): New function for + insertion of one NDArray into another. + + * oct-inttype.cc (OCTAVE_INT_CONCAT_FN, OCTAVE_INT_CONCAT_DECL): New + macros to define the int/uint concatenation functions. + + * uint8NDArray.cc, uint16NDArray.cc, uint32NDArray.cc, uint64NDArray.cc + int8NDArray.cc, int16NDArray.cc, int32NDArray.cc, int64NDArray.cc + (OCTAVE_INT_CONCAT_FN): Instantiate the concatenation function . + + * uint8NDArray.h, uint16NDArray.h, uint32NDArray.h, uint64NDArray.h + int8NDArray.h, int16NDArray.h, int32NDArray.h, int64NDArray.h + (OCTAVE_INT_CONCAT_DECL): Declare the int/uint concatentaion + functions. + + 2004-07-22 David Bateman + + * oct-sort.h: Don't include oct-obj.h. + + * lo-specfun.cc (is_integer_value): New function. + (zbesj, zbesi, zbesy): Special case negative integer or half + integer orders that cause overflow for small arguments. + + 2004-07-12 John W. Eaton + + * oct-inttypes.h (octave_int::nbits): New function. + (bitshift (const octave_int&, int)): New function. + + 2004-06-14 John W. Eaton + + * mx-base.h: Include headers for new int types. + + * dNDArray.h, dNDArray.cc (NDArray::NDArray (const boolNDArray&), + NDArray::NDArray (const charNDArray&)): Delete. + (template explicit NDArray (const intNDArray&)): New + constructor. + (NDArray::squeze): Call MArrayN::squeeze, not ArrayN::squeeze. + + * chMatrix.h (CharMatrix::transpose): New forwarding functions for + return type conversion. + + * ComplexNDArray.h, ComplexNDArray.cc + (ComplexNDArray::ComplexNDArray (const ArrayN&), + (ComplexNDArray::ComplexNDArray (const NDArray&), + (ComplexNDArray::ComplexNDArray (const boolNDArray&), + (ComplexNDArray::ComplexNDArray (const charNDArray&)): Delete. + + (ComplexNDArray::squeze): Call MArrayN::squeeze, not ArrayN::squeeze. + + * MArrayN.h: + (template explicit MArrayN::MArrayN (const Array2&), + (template MArrayN::MArrayN (const ArrayN&), + (template explicit MArrayN::MArrayN (const MArray&)): + New constructors. + (ArrayN::reshape, ArrayN::permute, ArrayN::ipermute, + ArrayN::squeeze): + New forwarding functions for return type conversion. + + * ArrayN.h: + (template explicit ArrayN::ArrayN (const Array2&), + (template explicit ArrayN::ArrayN (const ArrayN&), + (template explicit ArrayN::ArrayN (const Array&), + (template explicit ArrayN::ArrayN (const Array&, + const dim_vector&)): New constructors. + (ArrayN::reshape, ArrayN::permute, ArrayN::ipermute, + ArrayN::transpose): + New forwarding functions for return type conversion. + + * Array.h (template Array::Array (const Array&)): + New constructor. + (Array::coerce, Array::byte_size): New functions. + + * Array-i.cc, MArray-i.cc: Instantiate new integer types. + + * oct-inttypes.h, int16NDArray.h, int32NDArray.h, int64NDArray.h, + int8NDArray.h , intNDArray.h, uint16NDArray.h, uint32NDArray.h, + uint64NDArray.h, uint8NDArray.h, int16NDArray.cc, int32NDArray.cc, + int64NDArray.cc, int8NDArray.cc, intNDArray.cc, uint16NDArray.cc, + uint32NDArray.cc, uint64NDArray.cc, uint8NDArray.cc: New files. + * Makefile.in: Add them to the appropriate lists. + + 2004-06-04 John W. Eaton + + * mx-inlines.cc (MX_ND_REDUCTION): New arg, RET_ELT_TYPE. Use + "RET_ELT_TYPE ()" rather than "false" as fill value for retval + resize op. Change all uses. + + 2004-06-03 David Bateman + + * Array.cc (assignN): Allow magic colon for dimensions lvalue + greater than the existing number of dimensions in lvalue. + + 2004-04-30 David Bateman + + * dim_vector.h (dim_vector::dim_vector_rep::dim_vector_rep): + New arg, fill_value. + (dim_vector::resize): Allow optional fill_value argument. + + * Array.cc (Array::index (Array&, int, const T&)): + Don't chop trailing dimensions of Array if there is + more than one element in idx_vector. Resize the return value to + the size of Array. + + * Array-util.cc (short_freeze): Better freeze of last dimension of + idx_vector that is shorter than a dim_vector. + + 2004-04-23 John W. Eaton + + * oct-sort.cc: Don't include oct-obj.h. + + 2004-04-22 John W. Eaton + + * Array.cc (Array::index2, Array::indexN): + Don't set invalid dimensions on return value. + + 2004-04-21 John W. Eaton + + * mx-inlines.cc (MX_ND_REDUCTION): Chop trailing singletons. + + 2004-04-06 David Bateman + + * Array.cc (Array::resize_no_fill (const dim_vector& dv), + Array::resize_and_fill (const dim_vector& dv, const T& val)): + Make their behavior equivalent except for filling vs. not filling. + + * oct-sort.cc: New template class for arbitrary sorting. + * oct-sort.h: Declaration of sort class. + * Makefile: Add them to the appropriate lists. + + 2004-04-02 John W. Eaton + + * mx-inlines.cc (MX_ND_CUMULATIVE_OP): Fix off-by-one error. + + 2004-04-02 David Bateman + + * lo-specfun.cc (besselj, bessely, besseli, besselk, besselh1, + besselh2, airy, biry, betainc, gammainc, do_bessel): + New N-d array versions. + (SN_BESSEL, NS_BESSEL, NN_BESSEL): New macros. + * lo-specfun.h (besselj, bessely, besseli, besselk, besselh1, + besselh2, airy, biry, betainc, gammainc): Provide decls. + + * dNDArray.cc (NDArray::min, NDArray::max, min, max): + New functions. + * dNDArray.h (NDArray::min, NDArray::max, min, max): Provide decls. + + * CNDArray.cc (ComplexNDArray::min, ComplexNDArray::max, min, max): + New functions. + * CNDArray.h (ComplexNDArray::min, ComplexNDArray::max, min, max): + Provide decls. + + 2004-03-17 David Hoover + + * DASPK.cc (DASPK::do_integrate): Always add n*n elements to the + work vector, not just when using a numerical Jacobian. + + 2004-03-11 John W. Eaton + + * so-array.cc (SND_CMP_OP, NDS_CMP_OP, NDND_CMP_OP): + Omit empty result args. + + * Array.cc (Array::Array (const Array&, const dim_vector&)): + Move here from Array.h, check that size of array arg is not + smaller than the size defined by the new dimensions. + + 2004-03-10 John W. Eaton + + * Array.cc (Array::index2): Allow result to be N-d if indexing + a scalar or vector with an N-d array. + + 2004-03-09 John W. Eaton + + * Array.cc (Array::index2): If scalar or vector is indexed by + matrix, return object that is the same size as the index. + + * mx-op-defs.h (NDND_CMP_OP, MM_CMP_OP): Require dimensions to agree. + Eliminate MT_RESULT args. Return value is always size of args. + (MS_CMP_OP, SM_CMP_OP, NDS_CMP_OP, SND_CMP_OP): + Eliminate EMPTY_RESULT arg. + Return value is always size of matrix or N-d array arg. + (TBM, FBM, NBM): Delete unused macros. + + 2004-03-05 John W. Eaton + + * Array.cc (Array::maybe_delete_elements): Return immediately + if all LHS dimensions are zero. For one index case, freeze and + sort idx_vec before checking length, and do nothing if + num_to_delete is zero. + (Array::maybe_delete_elements_2): Omit Fortran-indexing warning. + + 2004-03-04 David Bateman + + * dNDArray.cc (NDArray::ifourier): Arg is int, not const int. + * CNDArray.cc (ComplexNDArray::ifourier): Likewise. + + 2004-03-03 Hans Ekkehard Plesser + + * base-lu.cc (base_lu<>::L): Check bounds before setting diagonal + element. + + 2004-03-03 John W. Eaton + + * Range.h (Range::Range): Add cache to member initialization list. + (Range::clear_cache): New private function. + + * Range.h (Range::set_base, Range::set_limit, Range::set_inc): + Use clear cache. Don't do anything if range does not change. + * Range.cc (Range::sort): Likewise. + + 2004-03-02 Paul Kienzle + + * Range.cc (Range::matrix_value): Cache result. + (Range::sort): Clear cache. + * Range.h (Range::cache): New data member. + (Range::set_base, Range::set_limit, Range::set_inc): Clear cache. + (Range::print_range): Delete. + + 2004-03-02 David Bateman + + * oct-fftw.cc: Only two versions of plan, and avoid endless + changes between them. Faster for small fft's. + (octave_fftw_planner::simd_align, octave_fftw_planner::rsimd_align): + New member variables. + (octave_fftw_planner::ialign, octave_fftw_planner::oalign, + octave_fftw_planner::rialign, octave_fftw_planner::roalign): Delete. + Change all uses. + (CHECK_SIMD_ALIGNMENT): New macro. + (octave_fftw_planner::create_plan): Use it. + + 2004-03-01 Petter Risholm + + * Array.cc (Array::insertN): Eliminate N-d indexing. + + * mx-inlines.cc (MX_ND_CAT): Delete macro. + + * dNDArray.h, chNDArray.h, CNDArray.h (cat): Change declaration. + * dNDArray.cc (NDArray::cat): Call new form of cat function. + * chNDArray.cc (charNDArray::cat): Ditto. + * CNDArray.cc (ComplexNDArray::cat): Ditto. + + * Array.h (cat_ra): Return int. Accept idx and move args, not add_dim. + * Array.cc (cat_ra): Speed up implementation by avoiding N-d indexing. + + 2004-02-24 John W. Eaton + + * oct-rl-edit.c (octave_rl_set_startup_hook, + octave_rl_get_startup_hook, octave_rl_set_event_hook, + octave_rl_get_event_hook): Omit casts. + * oct-rl-edit.h (rl_startup_hook_fcn_ptr, rl_event_hook_fcn_ptr): + Return value for function pointer typedef is now int. + * cmd-edit.h (command_editor::startup_hook_fcn, + command_editor::event_hook_fcn): Likewise. + * cmd-hist.cc, cmd-hist.h (command_history::goto_mark, + command_history::do_goto_mark, gnu_history::do_goto_mark): + Return type is now int. Return 0. + + * EIG.cc (EIG::init, EIG::symmetric_init): + Query Lapack for workspace size. + + 2004-02-23 John W. Eaton + + * Array.cc (Array::resize_and_fill (const dim_vector&, const T&)): + Fix thinko in extending dimensions. + + 2004-02-20 John W. Eaton + + * Range.cc (Range::matrix_value, Range::min, Range::max): + Don't compute values beyond the limits of the range. + (operator << (std::ostream&, const Range&)): Likewise. + + 2004-02-18 John W. Eaton + + * oct-fftw.cc (octave_fftw_planner::create_plan): + Cast IN and OUT args to ptrdiff_t instead of long before masking. + From Paul Kienzle . + + * Array.cc (Array::insertN (const Array&, int, int)): + Rename from Array::insert. + (Array::insert2 (const Array&, int, int)): + Reinstate old Array::insert function under this name. + (Array::insert (const Array&, int, int)): + New function. Dispatch to insert2 or insertN as appropriate. + + 2004-02-17 John W. Eaton + + * oct-fftw.cc (convert_packcomplex_1d, convert_packcomplex_Nd): + Sprinkle with OCTAVE_QUIT. + + 2004-02-16 David Bateman + + * oct-fftw.cc (octave_fftw_planner::create_plan, octave_fftw::fftNd): + Add support for FFTW 3.x. Include the ability to + use the real to complex transform for fft's of real matrices + (octave_fftw_planner::create_plan2d): Delete. + (octave_fftw::fft2d): Delete. + (convert_packcomplex_1d, convert_packcomplex_Nd): + New static functions. + * oct-fftw.h: Update decls. + + * dMatrix.cc (Matrix::fourier, Matrix::ifourier, + Matrix::fourier2d, Matrix::ifourier2d): FFT's use real to complex + transforms. 1D FFT of a matrix done as single call rather than + loop. Update for FFTW 3.x + * CMatrix.cc (ComplexMatrix::fourier, ComplexMatrix::ifourier, + ComplexMatrix::fourier2d, ComplexMatrix::ifourier2d): 1D fft of a + matrix done as single call rather than loop. Update for FFTW 3.x. + + * dNDArray.cc (NDArray::fourier, NDArray::ifourier, + NDArray::fourierNd, NDArray::ifouriourNd): New fourier transform + functions for Nd arrays. + * dNArray.h Provide decls. + * CNDArray.cc (ComplexNDArray::fourier, ComplexNDArray::ifourier, + ComplexNDArray::fourierNd, ComplexNDArray::ifouriourNd): New + fourier transform functions for complex Nd arrays. + * CNArray.h: Provide decls. + + 2004-02-15 Petter Risholm + + * Array.cc (Array::insert (const Array&, int, int)): + Make it work for N-d arrays. + + * ArrayN.h (ArrayN::insert (const ArrayN& a, int, int)): + New function. + + * CNDArray.cc (ComplexNDArray::insert (const NDArray&, int, int), + ComplexNDArray::insert (const ComplexNDArray&, int, int)): + New functions. + * CNDArray.h: Provide decls. + + 2004-02-14 John W. Eaton + + * Makefile.in (LINK_DEPS): Always define. + + * Array.cc (Array::squeeze): Always return an array with at + least two dimensions. + + 2004-02-13 Petter Risholm + + * mx-inlines.cc (MX_ND_CAT): New macro. + * dNDArray.cc (NDArray::cat): New function. + * dNDArray.h: Provide decls. + * CNDArray.cc (complexNDArray::cat): New function. + * CNDArray.h: Provide decls. + * chNDArray.cc (charNDArray::cat): New function. + * chNDArray.h: Provide decls. + + 2004-02-13 John W. Eaton + + * Array.cc (maybe_delete_elements_2): Allow X(n) = [] for 2-d X. + (Arrayassign2): Also call maybe_delete_elements for single + index when rows and columns or LHS are both greater than 1. + + 2004-02-13 Petter Risholm + + * Array.cc (Array::maybe_delete_elements): + Check for index out of bounds. Handle one index. + + * Array.cc (Array::indexN): Use dim_vector (0, 0) instead of + dim_vector (0) to create empty return vector. + + 2004-02-07 John W. Eaton + + * Array.cc (Array::assignN): Don't crash if trying to resize a + non-empty LHS when the number of lhs dimensions is less than the + number of indices. Detect error if attempting to resize non-empty + LHS with colon indices. + + 2004-02-06 John W. Eaton + + * Array.cc (Array::resize_and_fill): Don't bother to assign any + values unless the length of the new array is greater than 0. + (Array::resize_no_fill): Likewise. + + * Array-util.cc (index_in_bounds): Also return false if ra_idx(i) + is equal to dimensions(i). + + * Array-util.h, Array-util.cc (equal_arrays, any_zero_len, + get_zero_len_size, number_of_elements): + Delete unused functions. + + * Array-util.cc (get_ra_idx): Use dim_vector::numel instead of + number_of_elements function. + * Array.cc (Array::indexN): Likewise. + + * Array.cc (Array::indexN): Use dim_vector::operator == instead + of equal_arrays function. + (Array::index, Array::indexN, Array::assignN) Use + dim_vector::any_zero instead of any_zero_len function. + + * Array.cc (Array::assignN): Eliminate special case for empty index. + Don't skip reshaping and resizing if RHS is empty. + + * Array.cc (Array::assignN): Simplify loop for array assignment. + Move body of MAYBE_RESIZE_ND_DIMS here since it is only used once. + Delete unused variables is_colon and is_colon_equiv. + Correctly resize for expressions like x(:,:,2) = ones(3,3) when + LHS is not yet defined. + Error for resizing if number of indices is less than number of LHS + dimensions. + + * Array.cc (Array::maybe_delete_elements): Maybe warn about + Fortran-style indexing. + + 2004-02-05 John W. Eaton + + * Array.cc (Array::assignN): Simplify. + Allow assignments to succeed if number if indices is less than the + number of RHS dimensions. + + 2004-02-05 Petter Risholm + + * Array.cc (Array::maybe_delete_elements): Reshape LHS + when number of indices is less than number of dimensions. + + * Array.cc (Array::assignN, Array::maybe_delete_elements): + Remove unsued variable lhs_inc. + + * Array.cc (Array::maybe_delete_elements): Declare idx_is_colon + and idx_is_colon_equiv Array instead of dim_vector. + + * Array.cc (Array::assignN): Compute new dims in a cleaner way. + + * Array.cc (Array::index): Check for frozen_lengths.length () + == n_dims before checking to see if all indices are colon_equiv. + + 2004-02-05 John W. Eaton + + * Array.cc (Array::assignN): Require RHS == 0x0 matrix for + deleting elements. + (Array::index): Remove trailing singletons in ra_idx, but leave + at least ndims elements. + + 2004-02-05 Petter Risholm + + * Array.cc (Array::assignN): Accept assignment of a vector + oriented differently from the index. + + * dim-vector.h (dim_vector::squeeze): Return value always has at + least two dimensions. + + 2004-02-04 John W. Eaton + + * dim-vector.h (dim_vector::squeeze): New function. + (Array::assignN): Use it instead of chop_trailing_singltons for + deciding whether the assignment conforms. + + * Array.cc (Array::assignN): Simplify dimension check by + comparing rhs_dims and frozen_len sans trailing singletons. + + 2004-02-03 John W. Eaton + + * idx-vector.cc (tree_to_mat_idx): New arg, conversion_error. + Call error handler and return conversion_error == true if arg is + not integer. + (IDX_VEC_REP::idx_vector_rep): Exit early if conversion_error. + + 2004-02-02 John W. Eaton + + * boolNDArray.h (boolNDArray::boolNDArray): Declare dim_vector + reference arg const. + + 2004-01-30 John W. Eaton + + * Array-flags.cc: Include Array-flags.h, not Array.h. Doh. + + 2004-01-30 Jakub Bogusz + + * Array-flags.h (liboctave_wfi_flag, liboctave_wrore_flag): + Now bool, to match definition in Array-flags.cc. + + 2004-01-23 John W. Eaton + + * file-ops.cc: Include instead of for new + definition of OCTAVE_LOCAL_BUFFER. + + * EIG.cc, EIG.h (EIG::init, EIG::symmetric_init, EIG::hermitian_init): + New arg, calc_eigenvectors. + * EIG.h (EIG:EIG): New optional arg, calc_eigenvectors. + Based on patch from David Bateman . + + 2004-01-22 John W. Eaton + + * Array.cc (Array::assign2, Array::assignN): + For X(I) = RHS, don't restrict I to fewer elements than X. + + * Array.cc (Array::assign2): Simplify indexing for X(I) = RHS case. + + 2004-01-22 Petter Risholm + + * mx-inlines.cc (MX_ND_REDUCTION, MX_ND_CUMULATIVE_OP): + Simplify calculation of number of elements in retval. + + * Array.cc (Array::assignN): Eliminate unnecessray code for + filling when RHS is scalar and dimension lengths agree. + + 2004-01-22 John W. Eaton + + * Makefile.in (distclean): Remove mx-ops.h, $(MX_OP_INC), + $(VX_OP_INC), $(MX_OP_SRC), $(VX_OP_SRC), and $(OPTS_INC). + + 2004-01-22 Petter Risholm + + * Array.cc (Array::resize_and_fill): Correctly copy old elements. + (Array::assign2): Check for RHS dimensions larger than 2. + + 2004-01-21 Petter Risholm + + * Array.h (Array::chop_trailing_singletons): New function. + * Array.cc (Array::assignN): Use it on LHS. + + * Array.cc (Array::assignN): Fix incorrectly nested if statement. + Retrieve scalar element by passin 0 instead of an index array. + Check for singleton dimensions where RHS is matrix or higher dimension. + Make sure index is in bounds. + + 2004-01-19 John W. Eaton + + * lo-ieee.cc (octave_ieee_init): Ensure that octave_Inf, + octave_NaN, and octav_NA values are always initialized. Check + floating point format, not HAVE_ISINF, HAVE_FINITE, or HAVE_ISNAN + to decide whether to do IEEE initialization. + + 2004-01-06 David Bateman + + * CNDArray.cc (ComplexNDArray::any_element_is_inf_or_nan, + ComplexNDArray::all_elements_are_real, ComplexNDArray::all_integers, + ComplexNDArray::too_large_for_float): New functions + + * CNDArray.cc (operator <<, operator >>): New IO operators. + * CNDArray.h: Provide decls. + * dNDArray.cc (operator <<, operator >>): New IO operators. + * dNDArray.h: Provide decls. + + 2003-12-10 John W. Eaton + + * mx-ops: Delete bnda x bnda, b x bnda, and bnda x b ops since + they are already defined in boolNDArray.cc. + + * Array-util.cc (get_zero_len_size): Delete. + * Array.cc (Array::index (Array&, int, const T&)): + Handle zero-length result dimensions the same as empty original + indices. + + 2003-12-09 John W. Eaton + + * dim-vector.h (dim_vector::chop_trailing_singleton_dims, + dim_vector::dim_vector_rep::chop_trailing_singleton_dims): + New functions. + * Array.cc (ArrayN::indexN): Use it. + (ArrayN::index (Array&, int, const T&)): Likewise. + + 2003-11-26 John W. Eaton + + * boolNDArray.cc: Define BOOL ops. Define mixed CMP ops. + * boolNDArray.h: Declare BOOL ops. Declare mixed CMP ops. + + 2003-11-25 John W. Eaton + + * mk-ops.awk: Also emit #include "Array-util.h". + + * mx-ops: Add bool, boolMatrix, and boolNDarray types. + Add bnda x bnda, b x bnda, and bnda x b ops. + + * MArray-misc.cc: Delete. + * Makefile.in (MATRIX_SRC): Remove it from the list. + + * Array-util.h, Array-util.cc (gripe_nonconformant): Move here from + MArray.h, MArray2.h, MArrayN.h, and MArray-misc.cc. + + 2003-11-24 John W. Eaton + + * dbleQR.cc (QR::init): Use separate pwork pointers. + * CmplxQR.cc (ComplexQR::init): Likewise. + + * oct-group.cc (octave_group::getgrnam): Pass correct args to + two-arg getgrnam version. + + * Array.cc (assignN): Allow single indexing to work. + (Array::range_error (const char*, const Array&)): + Report index values. + + * Array.cc (Array::index): Delete unused arg names. + * ODESSA.cc (odessa_j): Likewise. + * DASRT.cc (ddasrt_f, ddasrt_g): Likewise. + * DASPK.cc (ddaspk_psol): Likewise. + * lo-mappers.cc (imag): Likewise. + * Array-util.cc (get_zero_len_size): Likewise. + * kpse.cc (path_search, path_find_first_of): Likewise. + * cmd-edit.cc (do_generate_filename_completions): Likewise. + + * dim-vector.h (dim_vector::all_ones): New function. + + 2003-11-23 John W. Eaton + + * idx-vector.h (idx_vector::orig_empty): Check orig_dims for + zeros, not orig_rows or orig_columns. + (idx_vector::idx_vector_rep::orig_rows): Define using orig_dims. + (idx_vector::idx_vector_rep::orig_columns): Likewise. + + * idx-vector.cc (idx_vector::idx_vector_rep::orig_nr, + (idx_vector::idx_vector_rep::orig_nc): Delete. + + * idx-vector.cc (idx_vector::idx_vector_rep): + Use initialization lists for constructors. + + * Array.cc (Array::indexN): Correctly handle single colon index. + Omit special case for ra_idx.capacity () == 1. + Always allow single index for matrix args with optional warning. + + * idx-vector.h, idx-vector.cc: Convert boolMatrix functions to use + boolNDArray. Likewise, convert Matrix functions to use NDArray. + + * Array-so.cc: New file. Move instantiations here from so-array.h. + * Makefile.in (TI_SRC): Add it to the list. + + * MArray-defs.h (DO_VS_OP2, DO_VV_OP2): Accept args for element + type and the names of the left and right operands. Change all uses. + + * so-array.cc, so-array.h: New files. Move streamoff_array here + from src/ov-streamoff.h and src/ov-streamoff.cc. + + 2003-11-20 John W. Eaton + + * MArrayN.cc (operator -=, operator +=): Check dimensions, not + just length. + + * Array2.h, Array3.h, DiagArray2.h, DiagArray2.cc, MDiagArray2.h, + ArrayN.h: Add this-> or Base:: qualifiers for references to + non-dependent member functions and data as needed. + + * DiagArray2.h, DiagArray2.cc: Delete unused code. + + * Array2.h (Array2::operator =): Don't copy dimensions here. + * Array3.h (Array3::operator =): Likewise. + * DiagArray2.h (DiagArray2::operator =): Likewise. + Include Array.h, not Array2.h. + + 2003-11-19 John W. Eaton + + * str-vec.cc (list_in_columns): Fix previous change. + + * dim-vector.h (dim_vector::num_ones): New function. + * Array.cc (maybe_delete_elements): Use it instead of + num_ones (const Array&). + + * Array.cc (assignN): Omit dubious check of singleton dimensions. + + * dNDArray.cc (NDArray::all_elements_are_int_or_inf_or_nan, + NDArray::any_element_is_inf_or_nan, NDArray::too_large_for_float): + New functions. + * dNDArray.h: Provide decls. + + * dMatrix.h (Matrix::any_element_is_negative, + Matrix::any_element_is_inf_or_nan, Matrix::too_large_for_float, + Matrix::all_elements_are_int_or_inf_or_nan, Matrix::all_integers): + Simplify. + + * dNDArray.cc (NDArray::abs): Make it work for N-d arrays. + * CNDArray.cc (ComplexNDArray::abs): Likewise. + + * dNDArray.cc (real, imag): New functions. + * dNDArray.h: Provide decls. + + 2003-11-18 John W. Eaton + + * Makefile.in (TEMPLATE_SRC): Move MArrayN.cc here from MATRIX_SRC. + + 2003-11-15 John W. Eaton + + * Array.h (Array::resize (int, const T&)): Reinstate. + * MArray.h (resize): Delete. + * MArray2.h (resize): Delete. + * DASRT.cc (DASRT::integrate): Use resize, not resize_and_fill. + * ODESSA (ODESSA::integrate): Likewise. + + 2003-11-14 John W. Eaton + + * Makefile.in (dist): Depend on stamp-prereq. + + 2003-11-12 John Eaton + + * mach-info.c (oct_mach_info::init_float_format) [CRAY]: + Kluge to make it work. + + * lo-ieee.cc (octave_ieee_init): Set octave_Inf, octave_NaN, and + octave_NA to DBL_MAX if native float format is vaxd, vaxg, or cray. + + * cmd-edit.cc (gnu_readline::do_generate_filename_completions, + default_command_editor::do_generate_filename_completions, + command_editor::generate_filename_completions): New functions. + * cmd-edit.h: Provide decls. + * oct-rl-edit.c (octave_rl_filename_completion_function): New + function. + * oct-rl-edit.h: Provide decl. + + 2003-11-11 John W. Eaton + + * Array.h (INSTANTIATE_ARRAY_ASSIGN, INSTANTIATE_ARRAY_AND_ASSIGN, + INSTANTIATE_ARRAY): New macros. + * Array-C.cc, Array-b.cc, Array-ch.cc, Array-d.cc, Array-i.cc, + Array-idx-vec.cc, Array-s.cc, Array-str.cc, ODESSA.cc: Use them. + + * Array.h (Array::ipermute): New function. + + 2003-11-11 Petter Risholm + + * Array.cc (Array::permute): New function. + * Array.h: Provide decl. + + * Array-util.cc (calc_permutated_idx): New function. + * Array-util.h: Provide decl. + + 2003-11-10 John W. Eaton + + * Array.cc (Array::index2): Return value has orientation of + indexed value if indexing a vector with a bool matrix. + + * ArrayN.h (ArrayN::get_size): Delete. + + * Array.cc, ArrayN.cc, dNDArray.cc, CNDArray.cc, boolNDArray.cc, + chNDArray.cc: Include Array-util.h instead of ArrayN-inline.h. + + * ArrayN-inline.h: Delete. + * Array-util.h, Array-util.cc: New files, from ArrayN-inline.h. + * Makefile.in: Fix the appropriate lists. + + * Array.cc, Array.h, ArrayN.h, CMatrix.cc, CNDArray.h, + CRowVector.cc, CmplxQR.cc, CollocWt.h, DASPK.h, DASRT.h, DASSL.h, + FEGrid.cc, LP.h, LSODE.h, MArrayN.h, ODE.h, ODES.h, ODESSA.cc, + boolNDArray.h, chNDArray.h, dMatrix.cc, dNDArray.h, dRowVector.cc, + dbleQR.cc, kpse.cc, oct-rl-hist.c, str-vec.cc, str-vec.h: + Avoid -Wshadow warnings. + + 2003-11-08 John Eaton + + * Array.h (Array::nil_rep): Qualify return type with typename. + + * mk-ops.awk: Delete elements of bool_headers array individually. + + 2003-11-07 John W. Eaton + + * Array.cc (maybe_delete_elements): Rename arg idx to ra_idx. + + 2003-10-31 Petter Risholm + + * mx-inlines.cc (MX_ND_CUMULATIVE_OP): New macro. + + * CNDArray.cc, CNDArray.h (ComplexNDArray::cumsum, + ComplexNDArray::cumprod): Return ComplexNDArray. Handle N-d arrays. + * dNDArray.cc, dNDArray.h (NDArray::cumsum, NDArray::cumprod): + Return NDArray. Handle N-d arrays. + + 2003-10-31 John W. Eaton + + * LSODE.cc (LSODE::do_integrate): Avoid name conflict on systems + that upcase Fortran names by calling dlsode instead of lsode. + + * ODESSA.cc (ODESSA::do_integrate): Avoid name conflict on systems + that upcase Fortran names by calling dodessa instead of odessa. + + * file-ops.cc (file_ops::symlink): Cope with systems that expect + non-const args for symlink system call. + (file_ops::readlink): Likewise, for readlink. + + * DASRT.cc (DASRT::integrate): Fix typo in Fortran function name. + + 2003-10-30 John W. Eaton + + * mach-info.h (oct_mach_info): Prefix enum elements with flt_fmt_. + Change all uses. + + 2003-10-29 Petter Risholm + + * dNDArray.cc (NDArray::cumprod, NDArray::cumsum, NDArray::prod, + NDArray::sum, NDArray::sumsq, NDArray::abs): New functions. + * dNDArray.h: Provide decls. + * CNDArray.cc (ComplexNDArray::cumprod, ComplexNDArray::cumsum, + ComplexNDArray::prod, ComplexNDArray::sum, ComplexNDArray::sumsq, + ComplexNDArray::abs): New functions. + * CNDArray.h: Provide decls. + + * mx-inlines.cc (MX_ND_REDUCTION): Rename from MX_ND_ANY_ALL. + Generalize to handle other reduction operations. + (MX_ND_REAL_OP_REDUCTION, MX_ND_COMPLEX_OP_REDUCTION, + MX_ND_ALL_ANY_REDUCTION): New macros. + + 2003-10-29 John W. Eaton + + * Array.cc (Array::reshape): New function. + * Array.h: Provide decl. + + * dim-vector.h (dim_vector::numel): New function. + + * dim-vector.h (dim_vector_rep::dim_vector_rep (int, const + dim_vector&)): Correctly handle case of n < dv->ndims. + + 2003-10-28 John W. Eaton + + * dim-vector.h (dim_vector::any_zero): New function. + (dim_vector::str): New default arg, sep. + + * Array.h (Array::numel): New function. + + 2003-10-27 Petter Risholm + + * mx-inlines.cc (MX_ND_ALL_EXPR, MX_ND_ANY_EXPR, + MX_ND_ALL_EVAL, MX_ND_ANY_EVAL, MX_ND_ALL_ANY): New macros. + * dNDArray.h (NDArray::all, NDArray::any): Return type now boolNDArray. + * CNDArray.h (ComplexNDArray::all, ComplexNDArray::any): Likewise. + * boolNDArray.h (boolNDArray::all, boolNDArray::any): Likewise. + * chNDArray.h (charNDArray::all, charNDArray::any): Likewise. + * dNDArray.cc (NDArray::all, NDArray::any): Make them work. + * CNDArray.cc (ComplexNDArray::all, ComplexNDArray::any): Likewise. + * boolNDArray.cc (boolNDArray::all, boolNDArray::any): Likewise. + * chNDArray.cc (charNDArray::all, charNDArray::any): Likewise. + + 2003-10-27 John W. Eaton + + * Array.cc (Array::resize_and_fill): Allow number of dimensions + to change. From Petter Risholm . + + * oct-rand.cc, CColVector.cc, CMatrix.cc, CRowVector.cc, + CmplxAEPBAL.cc CmplxCHOL.cc, CmplxHESS.cc, CmplxLU.cc, CmplxQR.cc, + CmplxQRP.cc, CmplxSCHUR.cc, CmplxSVD.cc, CollocWt.cc, DASPK.cc, + DASRT.cc, DASSL.cc, EIG.cc, LSODE.cc, NLEqn.cc, ODESSA.cc, + Quad.cc, dColVector.cc, dMatrix.cc, dRowVector.cc, dbleAEPBAL.cc, + dbleCHOL.cc, dbleHESS.cc, dbleLU.cc, dbleQR.cc, dbleQRP.cc, + dbleSCHUR.cc, dbleSVD.cc, lo-specfun.cc: + Use new F77 arg macros in declarations of external Fortran + subroutines and for calling them. + + 2003-10-25 John W. Eaton + + * Array.cc (Array::resize_no_fill (const dim_vector&)): + Allow number of dimensions to change. + (Array::resize_no_fill (int, int)): Require ndims to be 0 or 2. + (Array::resize_and_fill (int, int, const T&)): Likewise. + (Array::resize_no_fill (int, int, int)): Require ndims to be 0 or 3. + (Array::resize_and_fill (int, int, int, const T&)): Likewise. + (Array::transpose): Require ndims to be 2. + (Array::index2): Likewise. + (Array::index (idx_vector&, idx_vector&, int, const T&)): Likewise. + (Array::maybe_delete_elements_2): Likewise. + (Array::maybe_delete_elements (idx_vector&, idx_vector&)): Likewise. + (Array::index1): Use resize_and_fill. + (MAYBE_RESIZE_ND_DIMS): Likewise. + + * ODESSA.cc (ODESSA::integrate): Use resize_and_fill for x_s_out. + + * MArray2.h (MArray2::resize (int, int)): New function. + (MArray2::resize (int, int, const T&)): New function. + + * MArray.h (MArray::resize (int)): New function. + (MArray::resize (int, const T&)): New function. + + * DASRT.cc (DASRT::integrate): Use resize_and_fill for jroot. + + * DASPK-opts.in: Use single-arg resize for initial condition + heuristics. + + * dim-vector.h (class dim_vector): Now reference counted. + (dim_vector_rep::elem): Use assert to check that index is in bounds. + + 2003-10-23 John W. Eaton + + * Array.cc (Array::squeeze): Delete redundant retval decl. + + * mx-cdm-cm.cc, mx-cdm-cm.h, mx-cdm-cs.cc, mx-cdm-cs.h, + mx-cdm-dm.cc, mx-cdm-dm.h, mx-cdm-m.cc, mx-cdm-m.h, mx-cdm-s.cc, + mx-cdm-s.h, mx-cm-cdm.cc, mx-cm-cdm.h, mx-cm-dm.cc, mx-cm-dm.h, + mx-cm-m.cc, mx-cm-m.h, mx-cm-s.cc, mx-cm-s.h, mx-cs-cdm.cc, + mx-cs-cdm.h, mx-cs-dm.cc, mx-cs-dm.h, mx-cs-m.cc, mx-cs-m.h, + mx-dm-cdm.cc, mx-dm-cdm.h, mx-dm-cm.cc, mx-dm-cm.h, mx-dm-cs.cc, + mx-dm-cs.h, mx-dm-m.cc, mx-dm-m.h, mx-dm-s.cc, mx-dm-s.h, + mx-m-cdm.cc, mx-m-cdm.h, mx-m-cm.cc, mx-m-cm.h, mx-m-cs.cc, + mx-m-cs.h, mx-m-dm.cc, mx-m-dm.h, mx-ops.h, mx-s-cdm.cc, + mx-s-cdm.h, mx-s-cm.cc, mx-s-cm.h, mx-s-dm.cc, mx-s-dm.h, + vx-ccv-cv.cc, vx-ccv-cv.h, vx-ccv-s.cc, vx-ccv-s.h, vx-crv-rv.cc, + vx-crv-rv.h, vx-crv-s.cc, vx-crv-s.h, vx-cs-cv.cc, vx-cs-cv.h, + vx-cs-rv.cc, vx-cs-rv.h, vx-cv-ccv.cc, vx-cv-ccv.h, vx-cv-cs.cc, + vx-cv-cs.h, vx-rv-crv.cc, vx-rv-crv.h, vx-rv-cs.cc, vx-rv-cs.h, + vx-s-ccv.cc, vx-s-ccv.h, vx-s-crv.cc, vx-s-crv.h: Delete. These + files are now automatically generated. + + * Makefile.in ($(VX_OP_INC), $(VX_OP_SRC), $(MX_OP_INC), + $(MX_OP_SRC)): Generate lists with new mk-ops.awk script. + Add rules to generate these files and mx-ops.h. + (stamp-prereq): Depend on these files. + + * mx-ops, vx-ops, mk-ops.awk: New files. + * Makefile.in (DISTFILES): Add them to the list. + + 2003-10-17 John W. Eaton + + * NDArray.cc (NDArray::NDArray (const boolNDArray), + NDArray::NDArray (const charNDArray)): New constructors. + (NDArray::operator !): New function. + Provide NDS_CMP_OPS, NDS_BOOL_OPS, SND_CMP_OPS, SND_BOOL_OPS, + NDND_CMP_OPS, NDND_BOOL_OPS. + + * CNDArray.cc (ComplexNDArray::ComplexNDArray (const NDArray&), + ComplexNDArray::ComplexNDArray (const boolNDArray&), + ComplexNDArray::ComplexNDArray (const charNDArray&)): + New constructors. + (ComplexNDArray::operator !): New function. + Provide NDS_CMP_OPS, NDS_BOOL_OPS, SND_CMP_OPS, SND_BOOL_OPS, + NDND_CMP_OPS, NDND_BOOL_OPS. + + * ArrayN.h (resize (const dim_vector&)): Fix typo. + + * boolNDArray.cc (boolNDArray::operator !): New function. + Provide NDND_CMP_OPS. + + * MArrayN.cc (operator +=, operator -=): New functions. + Provide product and quotient functions. + + * MArray-misc.cc (gripe_nonconformant (const char *, dim_vector&, + dim_vector&)): New function. + + * dim-vector.h (dim_vector::str, dim_vector::all_zero, + operator ==, operator !=): New functions. + * ArrayN.cc (operator <<): Use dim_vector::str here. + + * Array.cc (Array::resize_no_fill, Array::resize_and_fill): + No need to save old dimensions. + + * oct-rand.cc (MAKE_RAND_ND_ARRAY): New macro. + (octave_rand::nd_array): New function. + * oct-rand.h (octave_rand::nd_array): Provide decl. + + * mx-op-defs.h (NDCMP_OP_DECL, NDBOOL_OP_DECL, NDS_BIN_OP_DECLS, + NDS_BIN_OP, NDS_BIN_OPS, NDS_CMP_OP_DECLS, NDS_CMP_OP, + NDS_CMP_OPS, NDS_BOOL_OP_DECLS, NDS_BOOL_OP, NDS_BOOL_OPS, + NDS_OP_DECLS, SND_BIN_OP_DECLS, SND_BIN_OP, SND_BIN_OPS, + SND_CMP_OP_DECLS, SND_CMP_OP, SND_CMP_OPS, SND_BOOL_OP_DECLS, + SND_BOOL_OP, SND_BOOL_OPS, SND_OP_DECLS, NDND_BIN_OP_DECLS, + NDND_BIN_OP, NDND_BIN_OPS, NDND_CMP_OP_DECLS, NDND_CMP_OP, + NDND_CMP_OPS, NDND_BOOL_OP_DECLS, NDND_BOOL_OP, NDND_BOOL_OPS, + NDND_OP_DECLS): New macros. + * mx-cm-m.h, mx-cm-s.h, mx-cs-m.h, mx-m-cm.h, mx-m-cs.h, + mx-s-cm.h, mx-cm-m.cc, mx-cm-s.cc, mx-cs-m.cc, mx-m-cm.cc, + mx-m-cs.cc, mx-s-cm.cc: Use them. + + * mx-defs.h (class NDArray, class ComplexNDArray, class + boolNDArray, class charNDArray): New forward decls. + + 2003-10-15 John W. Eaton + + * Array.cc (assign2): No error (but don't do anything either) for + expressions like x([],j) = scalar. + + 2003-10-09 John W. Eaton + + * Array.cc (assignN): Allow lhs(:) = scalar. + + * CNDArray.cc (ComplexNDArray::increment_index): New function. + * dNDArray.cc (NDArray::increment_index): Likewise. + * boolNDArray.cc (boolNDArray::increment_index): Likewise. + * chNDArray.cc (charNDArray::increment_index): Likewise. + + * dim-vector.h (rows, cols): Delete unused data members. + + * Array.cc (Array::get_size): Fix thinko. + + 2003-10-08 John W. Eaton + + * Array.cc (Array::squeeze): New function. + * CNDArray.h (ComplexNDArray::squeeze): Likewise. + * dNDArray.h (NDArray::squeeze): Likewise. + * boolNDArray.h (boolNDArray::squeeze): Likewise. + * chNDArray.h (charNDArray::squeeze): Likewise. + + 2003-10-06 Petter Risholm + + * Array.cc (ArrayN::indexN): New definition. + * Array.h (Array::indexN): Provide decl. + * Array.cc (ArrayN::index (idx_vector&, int, const T&): + Call indexN if more than 2 indices. + (ArrayN::index (Array&, int, const T&)): + Make it (mostly) work. + * ArrayN-inline.h (number_of_elements, get_ra_idx, short_freeze): + New functions. + + 2003-10-02 John W. Eaton + + * cmd-edit.cc (do_readline): Pass eof to octave_fgetl. + * lo-utils.cc (octave_fgets, octave_fgetl): New overloaded + versions with eof arg. + + 2003-09-20 John W. Eaton + + * Array.h (dimensions): Now public. + template + (assign (Array&, const Array&, const LT&), + assign1 (Array&, const Array&, const LT&), + assign2 (Array&, const Array&, const LT&), + assignN (Array&, const Array&, const LT&), + resize_no_fill (int), + resize_no_fill (int, int), + resize_no_fill (int, int, int), + resize_no_fill (const dim_vector&), + resize_and_fill (int, const T&), + resize_and_fill (int, int, const T&), + resize_and_fill (int, int, int, const T&), + resize_and_fill (const dim_vector&, const T&)): Now public. + + * Array.cc: Include . + + 2003-09-19 John W. Eaton + + * Array.cc: Merge Array-idx.h. + * Array-idx.h: Delete. + + * chNDArray.h, chNDArray.cc, boolNDArray.h, boolNDArray.cc: New files. + + * Array.h, Array-idx.h, Array.cc: Fold all N-d functionality here. + Turn inheritance hierarchy upside down (2-d and 3-d arrays are now + just special cases of the general purpose N-d Array object). + + * dim-vector.h: New file. Use dim_vector objects instead of + ints or Array objects to represent the size of Array + objects. + + * MArray-defs.h (INSTANTIATE_MARRAYN_FRIENDS): New macro. + + * Array2-idx.h, Array3-idx.h, Array2.cc, Array3.cc: Delete. + + * mx-base.h: Include NDArray header files. + + * MArray-C.cc, MArray-d.cc: Also instantiate ArrayN objects. + + * Array-C.cc, Array-b.cc, Array-ch.cc, Array-d.cc, Array-i.cc, + Array-s.cc: Also instantiate ArrayN objects. + Don't instantiate assign funcitons for Array2 objects. + + * CDiagMatrix.cc (ComplexDiagMatrix::diag): Signal error with + liboctave_error_handler, not cerr. + * CMatrix.cc (ComplexMatrix::diag): Likewise. + * dDiagMatrix.cc (DiagMatrix::diag): Likewise. + * dMatrix.cc (Matrix::diag): Likewise. + + * Array-flags.cc, Array.cc, Array.h, Array2.h, Array3.h, ArrayN.h: + Omit checks for HEAVYWEIGHT_INDEXING. + + 2003-09-12 John W. Eaton + + * mx-base.h: Include CNDarray.h. Include dNDArray.h, not NDArray.h. + + * CNDARray.h, CNDArray.cc: New files. + * Makefile.in: Add them to the appropriate lists. + + * dNDArray.h: Rename from NDArray.h. + * dNDArray.cc: Rename from NDArray.cc. + * Makefile.in: Rename them here too. + + 2003-09-10 Petter Risholm + + * mx-base.h: Include NDArray.h, not ArrayN.h. + + * MArrayN.cc, MArrayN.h, NDArray.h, NDArray.cc: New files. + * Makefile.in: Add them to the appropriate lists. + + 2003-09-09 David Bateman + + * lo-specfun.cc (zbesj, zbesy, zbesi, zbesk, zbesh1, zbesh2, airy, + biry): Always request scaled results from AMOS functions and + perform reverse scaling on results if scaled result not requested + by user. + + 2003-09-04 John W. Eaton + + * lo-specfun.cc (xlgamma): Require nonnegative argument. + + 2003-09-09 John W. Eaton + + * Array-d.cc: Instantiate assign functions. + + 2003-09-09 Petter Risholm + + * ArrayN-idx.h (vector_equivalent, equal_arrays): New functions. + (get_elt_idx): Index ra_idx correctly. + + * ArrayN-inline.h (index_in_bounds): Index is also condidered in + bounds if it is exactly on the bound. + + * ArrayN.cc (ArrayN::maybe_delete_dims): New function. + * ArrayN.h: Provide decl. + + * ArrayN.h (ArrayN::ArrayN (const Matrix&)): New constructor. + + * idx-vector.h (idx_vector::orig_dims): New member variable. + (idx_vector::idx_vector_rep::orig_dimensions): New function. + (idx_vector::orig_dimensions): New function. + + 2003-09-04 John W. Eaton + + * lo-specfun.cc (xlgamma): Require nonnegative argument. + + 2003-09-04 Petter Risholm + + * ArrayN-idx.h (maybe_delete_elements): Implement function. + (is_in, how_many_lgt, all_ones): New functions. + + 2003-09-03 John W. Eaton + + * Makefile.in (MATRIX_INC): Add ArrayN-inlines.h to the list. + + 2003-09-03 Petter Risholm + + * ArrayN-inline.h: New file. + (index_in_bounds, increment_index): Move here. + * ArrayN.cc: From here. + + * ArrayN.h (maybe_delete_elements): New arg, resize_fill_value. + * ArrayN-idx.h (assign): New function. + + 2003-08-28 John W. Eaton + + * lo-specfun.cc (zbesj, zbesy, zbesi, zbesk, airy, biry): + Also zero imaginary part of result if real part of input value is + zero. + + 2003-07-30 Heine Kolltveit + + * mx-base.h: Include ArrayN.h. + + 2003-30-07 Heine Kolltveit + + * ArrayN.cc (operator <<): Corrected output. + + 2003-07-30 John W. Eaton + + * ArrayN.cc (increment_index): New arg, start_dimension. + + 2003-07-29 Heine Kolltveit + + * ArrayN.cc (operator <<): Improve output readability. + + 2003-07-29 Petter Risholm + + * ArrayN.cc (ArrayN::resize (const Array&, const T&)): + * ArrayN.cc (ArrayN::resize (const Array&)): + Initialize old_len before changing size. + + 2003-07-29 John W. Eaton + + * Makefile.in (install-lib): Use $(INSTALL), not + $(INSTALL_PROGRAM) for $(SHLLIB) files. + + 2003-07-25 John W. Eaton + + * lo-mappers.cc (xmin, xmax): Handle NaN in a Matlab-compatible + way. Handle NA in an R-compatible way. + + * lo-cieee.c (lo_ieee_is_NaN_or_NA): Also check for lo_ieee_is_NA. + (lo_ieee_is_NA): Don't call isnan unless HAVE_ISNAN is defined. + + * lo-mappers.h (octave_is_NA (const Complex&)): Provide decl. + (octave_is_NaN_or_NA (const Complex&)): Likewise. + + * dMatrix.cc (Matrix::row_min, Matrix::row_max, + Matrix::column_min, Matrix::column_max): Ignore NaNs. + * CMatrix.cc (ComplexMatrix::row_min, ComplexMatrix::row_max, + ComplexMatrix::column_min, ComplexMatrix::column_max): Likewise. + + 2003-07-11 John W. Eaton + + * Array2-idx.h (assign (Array2&, const Array2&, const LT&)): + Pass true for resize_ok arg to freeze. + * Array-idx.h (assign (Array&, const Array&, const LT&)): + Likewise. + + * idx-vector.cc (IDX_VEC_REP::freeze): New arg, warn_resize; + resize_ok arg is now bool. + * idx-vector.h (idx_vector::freeze): Likewise. + + * Array-flags.cc, Array-flags.h (liboctave_wrore_flag): + Rename from liboctave_rre_flag. Now bool. + (liboctave_wfi_flag): Now bool. + + * Array2-idx.h (MAYBE_RESIZE_LHS): Don't check liboctave_rre_flag. + + 2003-07-11 Russell Standish + + * Array.h (resize_fill_value): Now a top-level template function. + Accept object as argument. Change all uses. + + 2003-07-09 John W. Eaton + + * Array-flags.cc, Array-flags.h (liboctave_pcv_flag): Delete. + + * Array2-idx.h (Array2::index): Use liboctave_wfi_flag, not + liboctave_dfi_flag. + (assign): Likewise. For indexed assignments like X(I) = RHS with + X undefined or empty, always create a row vector. + + * Array-flags.cc (liboctave_wfi_flag): Rename from liboctave_dfi_flag. + * Array-flags.h (liboctave_wfi_flag): Ditto. + + 2003-06-24 John W. Eaton + + * Array2-idx.h (Array2::index (idx_vector&, int, const T&)): + Magic colon indexing always produces an object with one column. + + 2003-06-21 Paul Kienzle + + * kpse-xfns.h (NAME_BEGINS_WITH_DEVICE): Arg is std::string, not char*. + + * lo-ieee.h (signbit): Eliminate redundant extern "C" decl. + + 2003-06-18 John W. Eaton + + * dMatrix.cc (any_element_is_negative): If new optional arg + neg_zero is true, also return true for negative zero. + + 2003-06-16 John W. Eaton + + * DASSL.cc (DASSL::do_integrate): Set liw to 21 + n, not 20 + n. + Handle step limit. + * DASSL-opts.in: New option for step limit. + + 2003-06-16 Per Persson + + * oct-shlib.cc: Include mach-o/dyld.h, not Mach-O/dyld.h. + + 2003-06-16 John W. Eaton + + * DASRT.cc (DASRT::integrate): Set liw to 21 + n, not 20 + n. + Store step limit in iwork(20), not iwork(18). + + 2003-05-16 Paul Kienzle + + * oct-rand.cc: Use liboctave's clock layer instead of the system clock. + + 2003-05-14 John W. Eaton + + * Makefile.in: Handle DESTDIR. + + * kpse.cc (kpse_path_iterator::next): Skip consecutive colons here. + (kpse_path_iterator::set_end): Don't miss last element when not + followed by a colon. + + 2003-05-11 John W. Eaton + + * Array-idx.h (Array::index): Fix off-by-one error. + + 2003-05-07 John W. Eaton + + * kpse.cc (kpse_absolute_p): Fix typo in translation. + (find_first_of): Also do an absolute search on each + name before looking in the path. + + 2003-05-04 John W. Eaton + + * kpse.cc (dir_list_add): Ensure that directory ends with a + directory separator. + + 2003-04-30 John W. Eaton + + * pathsearch.cc: Include kpse.cc here. + + * kpse.cc: All functions are now static. Massive surgery to + condense kpathsearch library to a single file of just the + essentials for Octave and convert to using C++ strings (no more + calls to malloc, very few calls to new, so there should be much + less potential for introducing memory leaks now). + + * Makefile.in (EXTRAS): Move kpse.cc here from + LIBOCT_PATHSEARCH_CXX_SOURCES. + + * kpse.h, kpse-config.h: Delete. + * Makefile.in (INCLUDES): Delete them from the list. + + 2003-04-26 John W. Eaton + + * str-vec.cc (string_vector::append (const std::string&), + string_vector::append (const string_vector&)): New methods. + + 2003-04-24 John W. Eaton + + * kpse.cc, kpse.h: Replace fn_type with std::string. + + * lo-ieee.h (lo_ieee_signbit): Provide signbit decl for MinGW systems. + + * kpse.cc (xclosedir): Don't define or declare for Windows. + (READABLE): Now a static function to avoid warnings from MinGW + compiler. + + 2003-04-23 John W. Eaton + + * kpse.cc: Move most functions from kpse-xfns.c here and make + static. Include most of kpse-xfns.h directly, removing + unnecessary bits. + + * dMatrix.cc (Matrix::pseudo_inverse): Now const. + * CMatrix.cc (ComplexMatrix::pseudo_inverse): Likewise. + + 2003-04-18 John W. Eaton + + * getopt.c, getopt1.c, getopt.h: Move here from kpathsea. + * Makefile.in: Add them to the appropriates lists. + + * oct-getopt.c: Include "getopt.h", not . + + * Makefile.in (liboctave.$(LIBEXT), liboctave.$(SHLEXT)): Adjust + for new locations of kpathsea objects. + Delete kpathsea targets. + + * pathsearch.cc (dir_path::set_program_name): Delete. + + * kpse.cc: New file. + * Makefile.in (LIBOCT_PATHSEARCH_CXX_SOURCES): Add it to the list. + + * kpse.c: New file. + * Makefile.in (LIBOCT_PATHSEARCH_C_SOURCES): Add it to the list. + + * kpse.h, kpse-config.h, kpse-xfns.h: New files. + * Makefile.in (INCLUDES): Add them to the list. + + * oct-kpse.h: Delete. + * Makefile.in (INCLUDES): Delete it from the list. + + 2003-04-07 John W. Eaton + + * dbleSVD.h (SVD::SVD, SVD::operator =): Also copy type_computed. + * CmplxSVD.h (ComplexSVD::ComplexSVD, ComplexSVD::operator =): + Likewise. + From Quentin H. Spencer . + + 2003-03-03 John W. Eaton + + * oct-getopt.c: Include , not "getopt.h". + + 2003-02-21 John W. Eaton + + * oct-alloc.h (DECLARE_OCTAVE_ALLOCATOR): Handle systems with or + without placement delete. + + * CMatrix.cc (ComplexMatrix::all_elements_are_real): Don't lose -0 + imaginary parts. + + * lo-ieee.h (lo_ieee_signbit): New macro. + + 2003-02-18 David Bateman + + * dMatrix.cc (Matrix::inverse, Matrix::determinant, Matrix::solve): + Use Lapack instead of Linpack. + * CMatrix.cc (ComplexMatrix::inverse, ComplexMatrix::determinant, + ComplexMatrix::solve): Likewise. + + * dMatrix.cc (Matrix::determinant, Matrix::inverse): New arg, + calc_cond. If 0, skip condition number calculation. + * CMatrix.cc (ComplexMatrix::determinant, ComplexMatrix::inverse): + Likewise. + + * CmplxLU.cc (ComplexLU::ComplexLU): Allow non-square matrices. + * dbleLU.cc (LU::LU): Likewise. + * base-lu.cc (base_lu::L), base_lu::U, base_lu::P): Likewise. + + 2002-10-31 John W. Eaton + + * octave.test/arith/prod-4.m, octave.test/arith/sum-4.m: + + 2003-02-14 John W. Eaton + + * Array2-idx.h (Array2::index): Fix thinko. + Additional compatibility fix. + + 2003-02-13 Arno Klaassen + + * Array2-idx.h, Array2.cc, Array2.h, Array3.cc, Array3.h, + ArrayN.cc, ArrayN.h, DiagArray2.cc, DiagArray2.h, MDiagArray2.h: + Sprinkle with Array:: as necessary for gcc 3.4. + + 2003-02-13 John W. Eaton + + * Array2-idx.h (Array2::index (idx_vector&, int, const T&)): + Compatibility fix. + + 2003-02-10 John W. Eaton + + * CColVector.cc (ComplexColumnVector::extract_n): New function. + * CRowVector.cc (ComplexRowVector::extract_n): Likewise. + * CMatrix.cc (ComplexMatrix::extract_n): Likewise. + * dColVector.cc (ColumnVector::extract_n): Likewise. + * dRowVector.cc (RowVector::extract_n): Likewise. + * dMatrix.cc (Matrix::extract_n): Likewise. + + * CColVector.cc (ComplexColumnVector::insert): Improve efficiency + with make_unique and xelem. + * CRowVector.cc (ComplexRowVector::insert): Likewise. + * CMatrix.cc (ComplexMatrix::insert, ComplexMatrix::fill, + ComplexMatrix::extract, ComplexMatrix::row, + ComplexMatrix::column): Likewise. + * dColVector.cc (ColumnVector::insert): Likewise. + * dRowVector.cc (RowVector::insert): Likewise. + * dMatrix.cc (Matrix::insert, Matrix::fill, Matrix::extract, + Matrix::row, Matrix::column): Likewise. + + 2003-01-30 John W. Eaton + + * lo-mappers.cc (imag (double)): Return 0.0 for all args, even NaN. + + 2003-01-28 John W. Eaton + + * CMatrix.cc, dMatrix.cc: Move min and max functions here, from + src/DLD-FUNCTIONS/minmax.cc, and make them extern. + * CMatrix.h, dMatrix.h: Provide decls. + + 2003-01-24 John W. Eaton + + * oct-rand.h, oct-rand.cc: New files. + * Makefile.in: Add them to the appropriate lists. + + 2003-01-23 John W. Eaton + + * Array2-idx.h (Array2::index): Fix off-by-one error. + + 2003-01-16 Mumit Khan + + * oct-syscalls.cc: Include signal.h. + + 2003-01-10 John W. Eaton + + * oct-syscalls.cc (octave_syscalls::kill): New function. + * oct-syscalls.h: Provide decl. + + + 2003-01-06 John W. Eaton + + * dMatrix.cc (Matrix::read): Set size and return immediately if + there is nothing to read. + + 2003-01-05 John W. Eaton + + * lo-cutils.c: Define _XOPEN_SOURCE. + + 2003-01-04 John W. Eaton + + * getopt.h: Update to version from kpathsearch, so we will install + the version that we are using. + + * getopt.c, getopt1.c: Delete. + (INCLUDES): Delete them from the list. We'll get these files from + kpathsearch. + + * Makefile.in (liboctave.$(LIBEXT)): Link directly to + ../kpathsea/STATIC/*.o. + (liboctave.$(SHLEXT)): Link directly to ../kpathsea/SHARED/*.o. + + 2003-01-03 John W. Eaton + + * dMatrix.cc (read_int, write_int): Avoid warnings about + unreachable code. + + * oct-alloc.h (DECLARE_OCTAVE_ALLOCATOR): Define operator delete + to correspond to placement new operator. + + * dbleDET.cc (DET::value_will_overflow): We want det[1], not det[2]. + (DET::value_will_underflow): Likewise. + * CmplxDET.cc (ComplexDET::value_will_overflow): Likewise. + (ComplexDET::value_will_underflow): Likewise. + + * Makefile.in (distclean): Also remove stamp-prereq. + + * Array2-idx.h (Array2::assign): If assignment conforms but the + RHS and index are empty matrices, don't do anything. + + 2002-12-26 John W. Eaton + + * pathsearch.cc (make_retval, free_c_array, make_c_names, + delete_c_names): New helper functions. + (dir_path::find_first_of): New function. + (dir_path::find_all_first_of): Likewise. + * pathsearch.h: Provide decls. + + * oct-kpse.c (octave_kpse_path_find_first_of): New function. + (octave_kpse_all_path_find_first_of): Likewise. + * oct-kpse.h: Provide decls. + + 2002-12-19 John W. Eaton + + * ODESSA.cc (ODESSA::integrate): Handle maxord. + * ODESSA-opts.in: Likewise. + + * LSODE.cc (ODESSA::integrate): Handle maxord. + * LSODE-opts.in: Likewise. + + 2002-12-18 John W. Eaton + + * ODESSA.cc (ODESSA::ODESSA): Initialize "initialized" data member + in all constructors. + + * Makefile.in (liboctave.$(SHLEXT)): Include $(LIBKPATHSEA) here. + (LINK_DEPS): Not here. + + 2002-12-06 John W. Eaton + + * str-vec.cc (string_vector::compare): New static member function. + * str-vec.h: Provide decl. + (string_vector::sort): Use it. + (str_vec_compare): Delete static function. + + * oct-alloc.h (DECLARE_OCTAVE_ALLOCATOR): Also declare and define + a placement operator new. + + 2002-12-03 John W. Eaton + + * Matrix.h: Include mx-ops.h too. + * mx-ops.h: New file. + + 2002-11-20 John W. Eaton + + * DASRT.cc, DASRT.h, Array.cc, ArrayN.h, Array.h, Array2.cc, + Array2.h, Array3.cc, Array3.h, Bounds.cc, Bounds.h, CRowVector.h, + CDiagMatrix.cc, CDiagMatrix.h, CMatrix.cc, CMatrix.h, + CRowVector.cc, CColVector.h, ChangeLog, CmplxAEPBAL.cc, + CmplxAEPBAL.h, CmplxCHOL.cc, CmplxCHOL.h, CmplxDET.cc, CmplxDET.h, + CmplxHESS.cc, CmplxHESS.h, CmplxLU.cc, CmplxLU.h, CmplxQR.cc, + CmplxQR.h, CmplxQRP.cc, ArrayN.cc, CmplxQRP.h, CmplxSCHUR.cc, + CmplxSCHUR.h, CmplxSVD.cc, CmplxSVD.h, CollocWt.cc, dMatrix.cc, + CollocWt.h, EIG.h, DASSL.cc, FEGrid.h, DASSL.h, DiagArray2.cc, + DiagArray2.h, EIG.cc, FEGrid.cc, LSODE.cc, LPsolve.cc, LPsolve.h, + LSODE.h, LinConst.cc, LinConst.h, MArray.h, MArray.cc, MArray2.cc, + MArray2.h, MDiagArray2.cc, MDiagArray2.h, Range.cc, NLConst.h, + NLEqn.cc, Range.h, NLEqn.h, Quad.cc, dbleQR.h, Quad.h, base-lu.cc, + base-lu.h, boolMatrix.cc, boolMatrix.h, dColVector.cc, + dColVector.h, dDiagMatrix.cc, dDiagMatrix.h, dMatrix.h, + dRowVector.cc, dRowVector.h, dbleAEPBAL.cc, dbleAEPBAL.h, + dbleCHOL.cc, dbleCHOL.h, dbleDET.cc, dbleDET.h, dbleHESS.cc, + dbleHESS.h, dbleLU.cc, dbleLU.h, dbleQR.cc, dbleQRP.cc, dbleQRP.h, + dbleSCHUR.cc, dbleSCHUR.h, dbleSVD.cc, dbleSVD.h, idx-vector.cc, + idx-vector.h, oct-alloc.cc, CColVector.cc, DASPK.h, DASPK.cc, + ODESSA.h, ODES.h, ODESSA.cc, ODES.cc, chMatrix.h, chMatrix.cc: + Use "defined (USE_PRAGMA_INTERFACE_IMPLEMENTATION)" instead of + "! defined (NO_PRAGMA_INTERFACE_IMPLEMENTATION)". + + 2002-11-15 John W. Eaton + + * oct-shlib.cc (octave_dlopen_shlib::open): Use RTLD_GLOBAL too. + From Remy Bruno + + 2002-11-14 John W. Eaton + + * lo-specfun.cc: Use F77_FUNC instead of F77_XFCN for calls to + fortran code that should run fast enough that it is not worth all + the setup costs of F77_XFCN. + + * Quad.cc (user_function): Surround body of function with + BEGIN_INTERRUPT_WITH_EXCEPTIONS, END_INTERRUPT_WITH_EXCEPTIONS. + * ODESSA.cc (odessa_f, odessa_j, odessa_b): Likewise. + * NLEqn.cc (hybrd1_fcn, hybrj1_fcn): Likewise. + * LSODE.cc (lsode_f, lsode_j): Likewise. + * DASSL.cc (ddassl_f, ddassl_j): Likewise. + * DASRT.cc (ddasrt_f, ddasrt_j, ddasrt_g): Likewise. + * DASPK.cc (ddaspk_f, ddaspk_psol, ddaspk_j): Likewise. + + 2002-11-11 John W. Eaton + + * lo-ieee.cc (octave_ieee_init): Check defined (__osf__) instead + of ! defined (linux). + + 2002-11-09 Per Persson + + * oct-shlib.cc (octave_dyld_shlib): New class. + (make_shlib): Instantiate octave_dyld_shlib. + + 2002-11-06 John W. Eaton + + * CMatrix.cc, dMatrix.cc: Sprinkle with OCTAVE_QUIT. + + * ODESSA.cc (odessa_f, odessa_j, odessa_b): Abort on error. + + * Array.h: Include here. + + 2002-11-01 John W. Eaton + + * DASPK.cc (DASPK::do_integrate): Resize rwork and iwork before + using them. Accept inequality contraint option of 0. Assign + pabs_tol and prel_tol before calling DASPK. Don't redeclare + abs_tol and rel_tol. + + * cmd-edit.h (command_editor::filename_completion_desired): New + static function. + (command_editor::do_filename_completion_desired): New virtual function. + * oct-rl-edit.c (octave_rl_filename_completion_desired): New function. + * oct-rl-edit.h: Provide decl. + + * Array2.cc (Array2::get_size): #define MALLOC_OVERHEAD to + avoid OS X linker bug. + * ArrayN.cc (ArrayN::get_size): Likewise. + + 2002-10-31 John W. Eaton + + * ODESFunc.h (ODESFunc::ODES_fsub, ODESFunc::ODES_bsub, + ODESFunc::ODES_jsub): Reorder args for consistency with other + solvers. + * ODESSA.cc: Fix all callers. + + * mx-inlines.cc (MX_BASE_REDUCTION_OP): Also return scalar + MT_RESULT if nr == 1 && nc == 0 && dim == -1 (i.e., + sum(zeros(1,0)) returns 0, not [](1x0)). + + 2002-10-30 John W. Eaton + + * Makefile.in (LINK_DEPS): Include $(FLIBS) here too. + + 2002-10-29 John W. Eaton + + * DASRT.cc (DASRT::integrate): Fix computation of lrw + (ddasrt_f): Combine loops. + + * NLEqn.cc (NLEqn::solve): Return current estimate of solution + instead of empty vector if user termninates iteration. + + 2002-10-28 John W. Eaton + + * lo-utils.cc (read_inf_nan_na, octave_read_double, + octave_read_complex, octave_write_double, octave_write_complex): + New functions. + * CMatrix.cc (operator << (std::ostream&, const ComplexMatrix&)): + Use octave_write_complex. + (operator >> (std::istream&, const ComplexMatrix&)): + Use octave_read_complex. + * dMatrix.cc (operator << (std::ostream&, double)): + Use octave_write_double. + (operator >> (std::istream&, double)): Use octave_read_double. + + 2002-10-25 John W. Eaton + + * oct-kpse.c (octave_kpse_clear_dir_cache): Delete. + * oct-kpse.h: Delete decl. + * pathsearch.cc (dir_path::init): Delete unnecessary call to + ::octave_kpse_clear_dir_cache. + + 2002-10-24 John W. Eaton + + * lo-sstream.h: Undef HAVE_SSTREAM if using a version of g++ + earlier than 3.0. + + * Makefile.in (LINK_DEPS): Include $(LIBKPATHSEA) here. + (liboctave.$(SHLEXT)): Not here. + + 2002-10-17 Paul Kienzle + + * oct-shlib.cc (octave_w32_shlib): New class to support Windows. + + 2002-10-16 John W. Eaton + + * Makefile.in (install-lib): Don't bother with versions for + $(SHLBIN) files. + + 2002-10-16 Paul Kienzle + + * Makefile.in (LIB_DEPS): Include $(LIBS). + + 2002-10-14 John W. Eaton + + * lo-cieee.c: Move everything but lo_ieee_init here. + (lo_ieee_Inf_value, lo_ieee_NA_value, lo_ieee_NaN_value): + New functions. + + * Makefile.in (install): No need to use cd to create links. + (LINK_DEPS): Include $(LIBOCTAVE_LFLAGS) before list of libraries. + + 2002-10-14 Paul Kienzle + + * Makefile.in: Merge liboctave with liboct-readline and + liboct-pathsearch. + Use link dependencies for shared libs if INCLUDE_LINK_DEPS. + (libraries): Depend on versioned library. + (liboctave.$(SHLEXT), liboctave.$(SHLEXT_VER)): Reverse actions -- + build unversioned library, symbolic link adds version info. + (install, uninstall): Handle link and load forms of the library + separately. + + 2002-10-11 John W. Eaton + + * oct-time.cc: Use OCTAVE_USE_WINDOWS_API instead of __WIN32__ and + __CYGWIN__. + + * file-ops.cc (file_ops::dir_sep_char, file_ops::dir_sep_str, + file_ops::dir_sep_chars): New static functions to replace + OCTAVE_DIR_SEP_CHAR, OCTAVE_DIR_SEP_STR, OCTAVE_DIR_SEP_CHARS. + + * oct-env.cc (octave_env::do_set_program_name): + Use file_ops::dir_sep_chars instead of OCTAVE_DIR_SEP_CHARS. + (octave_env::do_base_pathname): Likewise. + (octave_env::do_make_absolute): Likewise. + + * oct-env.cc (octave_env::do_make_absolute): + Use file_ops::dir_sep_str instead of OCTAVE_DIR_SEP_STR. + (octave_env::do_get_home_directory): Likewise. + + * file-ops.cc (is_dir_sep): Use dir_sep_chars instead of embedding + that information here too. + (tilde_find_suffix, isolate_tilde_prefix, tilde_expand_word): + Use file_ops::dir_sep_char instead of OCTAVE_DIR_SEP_CHAR. + + * file-ops.h: Use OCTAVE_HAVE_WINDOWS_FILESYSTEM and + OCTAVE_HAVE_POSIX_FILESYSTEM instead of __WIN32__ and __CYGWIN__. + + 2002-10-09 John W. Eaton + + * oct-env.h (octave_env::current_directory): Now mutable. + (octave_env:do_getcwd): Now const. + + * file-ops.h, file-ops.cc (file_ops::is_dir_sep): New function. + (OCTAVE_DIR_SEP_CHAR, OCTAVE_DIR_SEP_STR, OCTAVE_DIR_SEP_CHARS, + OCTAVE_CURRENT_DIR_STR): New macros. + * oct-env.cc (is_dir_sep): Delete. + (octave_env::do_base_pathname): Look for OCTAVE_DIR_SEP_CHARS, not '/'. + (octave_env::do_set_program_name): Likewise. + (octave_env::do_polite_directory_format): Use file_ops::is_dir_sep + instead of checking for '/'. + (octave_env::pathname_backup): Likewise. + (octave_env::do_absolute_pathname): Likewise. + (octave_env::do_make_absolute): Likewise. + If dot_path is empty, use getcwd to set current_dir. + (octave_env::do_get_home_directory): Use OCTAVE_DIR_SEP_STR + instead of "/". + + 2002-10-07 Paul Kienzle + + * lo-cutils.c: On non-Posix Windows systems, include winsock.h. + + 2002-10-07 Paul Kienzle + + * oct-env.cc (octave_env::do_absolute_pathname): Recognize + absolute path names under MinGW as well. + + 2002-10-07 John W. Eaton + + * oct-env.cc: Include too. + + 2002-10-04 John W. Eaton + + * oct-env.cc (octave_env::do_absolute_pathname): Handle Windows + filenames. + (octave_env::do_make_absolute): Check for absolute name with + do_absolute_path. + (octave_env::do_chdir): Likewise. + (is_dir_sep): New function. + + 2002-10-03 Paul Kienzle + + * oct-time.cc (octave_time::stamp): Better resolution for Windows + systems. + + 2002-10-02 John W. Eaton + + * dMatrix.cc (Matrix::read): Clean up error handling logic. + + 2002-09-30 John W. Eaton + + * file-ops.cc (file_ops::mkdir): Handle one-arg mkdir here. + + * lo-specfun.cc (acosh): Call xdacosh, not dacosh. + + 2002-09-27 Per Persson + + * oct-group.cc (octave_group::octave_group): Dont' forget to set + gr_gid too. + + 2002-09-27 John W. Eaton + + * lo-mappers.cc (xisnan, xfinite, xisinf): Simply forward to + lo_ieee_* functions. + * Makefile.in (LIBOCTAVE_C_SOURCES): Add lo-cieee.c to the list. + * lo-ieee.cc (lo_ieee_double): Rename from ieee_double. + (LO_IEEE_NA_HW, LO_IEEE_NA_LW): Rename from NA_HW and NA_LW. + * lo-cieee.c: New file. + [SCO] (isinf, isnan): Move here from lo-ieee.cc. + * lo-ieee.h: Now all extern "C". + (lo_ieee_isnan, lo_ieee_finite, lo_ieee_isinf): Move here from + lo-mappers.cc and rename from xisnan, xfinite, xisinf. + + * lo-ieee.cc (lo_ieee_hw, lo_ieee_low): Rename from hw and lw. + Now extern. + + 2002-09-26 John W. Eaton + + * Array.cc, Array.h, Array2.cc, Array2.h, Array3.cc, Array3.h, + ArrayN.cc, ArrayN.h, Bounds.cc, Bounds.h, CColVector.cc, + CColVector.h, CDiagMatrix.cc, CDiagMatrix.h, CMatrix.cc, + CMatrix.h, CRowVector.cc, CRowVector.h, CmplxAEPBAL.cc, + CmplxAEPBAL.h, CmplxCHOL.cc, CmplxCHOL.h, CmplxDET.cc, CmplxDET.h, + CmplxHESS.cc, CmplxHESS.h, CmplxLU.cc, CmplxLU.h, CmplxQR.cc, + CmplxQR.h, CmplxQRP.cc, CmplxQRP.h, CmplxSCHUR.cc, CmplxSCHUR.h, + CmplxSVD.cc, CmplxSVD.h, CollocWt.cc, CollocWt.h, DAE.cc, + DASPK.cc, DASPK.h, DASRT.cc, DASRT.h, DASSL.cc, DASSL.h, + DiagArray2.cc, DiagArray2.h, EIG.cc, EIG.h, FEGrid.cc, FEGrid.h, + LPsolve.cc, LPsolve.h, LSODE.cc, LSODE.h, LinConst.cc, LinConst.h, + MArray.cc, MArray.h, MArray2.cc, MArray2.h, MDiagArray2.cc, + MDiagArray2.h, NLConst.h, NLEqn.cc, NLEqn.h, ODES.cc, ODES.h, + ODESSA.cc, ODESSA.h, Quad.cc, Quad.h, Range.cc, Range.h, + base-lu.cc, base-lu.h, boolMatrix.cc, boolMatrix.h, chMatrix.cc, + chMatrix.h, dColVector.cc, dColVector.h, dDiagMatrix.cc, + dDiagMatrix.h, dMatrix.cc, dMatrix.h, dRowVector.cc, dRowVector.h, + dbleAEPBAL.cc, dbleAEPBAL.h, dbleCHOL.cc, dbleCHOL.h, dbleDET.cc, + dbleDET.h, dbleHESS.cc, dbleHESS.h, dbleLU.cc, dbleLU.h, + dbleQR.cc, dbleQR.h, dbleQRP.cc, dbleQRP.h, dbleSCHUR.cc, + dbleSCHUR.h, dbleSVD.cc, dbleSVD.h, idx-vector.cc, idx-vector.h, + oct-alloc.cc: + If __GNUG__, use pragma interface/implementation. Allow this to + be turned off by defining NO_PRAGMA_INTERFACE_IMPLEMENTATION. + + 2002-09-26 Paul Kienzle + + * file-ops.cc (file_ops::readlink): Don't declare buffer if + system readlink function is not available. + + * lo-mappers.cc (xerf, xerfc): Delete. + * lo-mappers.h (xerf, xerfc): Delete decls. + + * lo-mappers.cc: Remove unused #define M_PI. + * lo-specfun.cc: Add #define M_PI if needed. + + 2002-09-23 John W. Eaton + + * cmd-edit.cc (do_decode_prompt_string): Cope with possibility + that geteuid doesn't exist. + + * LP.h: Rename LP class to octave_LP. + LPsolve.h: Change all uses. + + * file-ops.cc, oct-passwd.cc oct-syscalls.cc oct-group.cc: Remove + incorrect token-pasting op. + + * statdefs.h [! S_ISLNK]: undef HAVE_LSTAT instead of trying to + define lstat. + + 2002-09-19 John W. Eaton + + * Array.cc, Array.h, Array2.cc, Array2.h, Array3.cc, Array3.h, + ArrayN.cc, ArrayN.h, Bounds.cc, Bounds.h, CColVector.cc, + CColVector.h, CDiagMatrix.cc, CDiagMatrix.h, CMatrix.cc, + CMatrix.h, CRowVector.cc, CRowVector.h, CmplxAEPBAL.cc, + CmplxAEPBAL.h, CmplxCHOL.cc, CmplxCHOL.h, CmplxDET.cc, CmplxDET.h, + CmplxHESS.cc, CmplxHESS.h, CmplxLU.cc, CmplxLU.h, CmplxQR.cc, + CmplxQR.h, CmplxQRP.cc, CmplxQRP.h, CmplxSCHUR.cc, CmplxSCHUR.h, + CmplxSVD.cc, CmplxSVD.h, CollocWt.cc, CollocWt.h, DAE.cc, + DASPK.cc, DASPK.h, DASRT.cc, DASRT.h, DASSL.cc, DASSL.h, + DiagArray2.cc, DiagArray2.h, EIG.cc, EIG.h, FEGrid.cc, FEGrid.h, + LPsolve.cc, LPsolve.h, LSODE.cc, LSODE.h, LinConst.cc, LinConst.h, + MArray.cc, MArray.h, MArray2.cc, MArray2.h, MDiagArray2.cc, + MDiagArray2.h, NLConst.h, NLEqn.cc, NLEqn.h, ODES.cc, ODES.h, + ODESSA.cc, ODESSA.h, Quad.cc, Quad.h, Range.cc, Range.h, + base-lu.cc, base-lu.h, boolMatrix.cc, boolMatrix.h, chMatrix.cc, + chMatrix.h, dColVector.cc, dColVector.h, dDiagMatrix.cc, + dDiagMatrix.h, dMatrix.cc, dMatrix.h, dRowVector.cc, dRowVector.h, + dbleAEPBAL.cc, dbleAEPBAL.h, dbleCHOL.cc, dbleCHOL.h, dbleDET.cc, + dbleDET.h, dbleHESS.cc, dbleHESS.h, dbleLU.cc, dbleLU.h, + dbleQR.cc, dbleQR.h, dbleQRP.cc, dbleQRP.h, dbleSCHUR.cc, + dbleSCHUR.h, dbleSVD.cc, dbleSVD.h, idx-vector.cc, idx-vector.h, + oct-alloc.cc: + Use USE_PRAGMA_INTERFACE_IMPLEMENTATION instead of __GNUG__ + to decide whether to use the interface/implementation pragmas. + + 2002-09-08 John W. Eaton + + * Makefile.in (INCLUDES): Add lo-sstream.h to the list. + + 2002-08-17 Mumit Khan + + * CmplxCHOL.h, CollocWt.h, cmd-edit.h, oct-shlib.h: Don't use + qualified names. + + 2002-08-17 John W. Eaton + + * Array.h, Array2-idx.h, DiagArray2.cc, Array2.cc, Array3.cc, + ArrayN.cc: Add typename where needed. + + * DASPK.cc: Include lo-sstream.h and use macros instead of using + strstream classes directly. + * DASRT.cc: Likewise. + * DASSL.cc: Likewise. + * LSODE.cc: Likewise. + * ODESSA.cc: Likewise. + + * cmd-hist.cc: Don't include . + * oct-shlib.cc: Likewise. + + * lo-sstream.h: New file. + + 2002-08-16 John W. Eaton + + * LSODE.h (rel_tol, abs_tol, px, pabs_tol, piwork, prwork, itol): + New data members. + (LSODE::sanity_checked): Delete unused data member. + + * DASPKL.h (initialized, abs_tol, rel_tol, px, pxdot, pabs_tol, + prel_tol, pinfo, piwork, prwork): New data members. + * DASSL.h (DASSL): Likewise. + + * DASRT.h (DASRT::sanity_checked): Delete unused data member. + + * DASRT.cc (DASRT::integrate (double)): Better handling of + initialization, changes in options, etc. + * DASPK.cc (DASPK::do_integrate): Likewise. + * DASSL.cc (DASSL::do_integrate): Likewise. + * LSODE.cc (LSODE::do_integrate): Likewise. + + 2002-08-15 John W. Eaton + + * DAEFunc.h (DAEFunc::reset): New data member. + * DAERTFunc.h (DAERTFunc::reset): Likewise. + + * base-de.h (base_diff_eqn::set_stop_time): Force restart here. + (base_diff_eqn::clear_stop_time): Likewise. + + * DASSL.cc (DASSL::do_integrate (double)): Handle more optoins. + * DASPK.cc (DASPK::do_integrate (double)): Likewise. + + 2002-08-15 Paul Kienzle + + * DASPK-opts.in, DASPK.h: Move include to .in file. + * DASRT-opts.in, DASRT.h: Likewise. + * DASSL-opts.in, DASSL.h: Likewise. + * LSODE-opts.in, LSODE.h: Likewise. + * NLEqn-opts.in, NLEqn.h: Likewise. + * ODESSA-opts.in, ODESSA.h: Likewise. + + 2002-08-14 John W. Eaton + + * LSODE.cc (LSODE::error_message): Also return current T on + failures when that makes sense. + * DASSL.cc (DASSL::error_message): Likewise. + * DASRT.cc (DASRT::error_message): Likewise. + * DASPK.cc (DASPK::error_message): Likewise. + * ODESSA.cc (ODESSA:error_message): Likewise. + + * Makefile.in (liboct-pathsearch.$(SHLEXT_VER)): Link to + $(LIBKPATHSEA) here. + + 2002-08-08 John W. Eaton + + * lo-ieee.cc (lo_ieee_is_NA): New function. + (lo_ieee_is_NaN_or_NA): New function. + (octave_NA): New global value. + (octave_ieee_init): Initialize it. + * lo-mappers.cc (octave_is_NA): New function. + (octave_is_NaN_or_NA): New function. + (xisnan): Return false if NaN looks like a missing value. + (xisnan (const Complex&)): Use xisnan here. + + 2002-08-02 John W. Eaton + + * CMatrix.h (ComplexMatrix::all, ComplexMatrix::any, + ComplexMatrix::cumprod, ComplexMatrix::cumsum, + ComplexMatrix::prod, ComplexMatrix::sum, ComplexMatrix::sumsq): + Default value for dim is -1, not 0. + * dMatrix.h (Matrix::all, Matrix::any, Matrix::cumprod, + Matrix::cumsum, Matrix::prod, Matrix::sum, Matrix::sumsq): Likewise. + * boolMatrix.h (boolMatrix:all, boolMatrix::any): Likewise. + * chMatrix.h (charMatrix::all, charMatrix::any): Likewise. + + * mx-inlines.cc (MX_ANY_ALL_OP_ROW_CODE, MX_ANY_ALL_OP_COL_CODE): + New macros. + (MX_ANY_ALL_OP): Define MX_ANY_ALL_OP using them and + MX_BASE_REDUCTION_OP. + (MX_CUMULATIVE_OP): Fix spelling. Change all uses. + + 2002-08-01 John W. Eaton + + * chMatrix.h, chMatrix.cc (charMatrix::any, charMatrix::all): + Return boolMatrix, not Matrix. + + * mx-inlines.cc (MX_ANY_ALL_OP, MX_ALL_OP, MX_ANY_OP): New macros. + * dMatrix.cc (Matrix::any): Replace guts with MX_ANY_OP. + (Matrix::all): Replace guts with MX_ALL_OP. + * CMatrix.cc (ComplexMatrix::any): Replace guts with MX_ANY_OP. + (ComplexMatrix::all): Replace guts with MX_ALL_OP. + * boolMatrix.cc (boolMatrix::any): Replace guts with MX_ANY_OP. + (boolMatrix::all): Replace guts with MX_ALL_OP. + * chMatrix.cc (charMatrix::any): Replace guts with MX_ANY_OP. + (charMatrix::all): Replace guts with MX_ALL_OP. + + * dMatrix.h (Matrix::any): New arg, dim. + (Matrix::all): Likewise. + * CMatrix.h (ComplexMatrix::any): Likewise. + (ComplexMatrix::all): Likewise. + * boolMatrix.h (boolMatrix::any): Likewise. + (boolMatrix::all): Likewise. + * chMatrix.h (charMatrix::any): Likewise. + (charMatrix::all): Likewise. + + * Makefile.in: Use $@-t instead of $@.t. + + 2002-07-25 John W. Eaton + + * lo-specfun.cc (gammainc): New arg, err, for scalar version. + Use it in matrix versions to avoid spewing multiple errors. + Call xgammainc instead of dgamit. + + 2002-07-22 John W. Eaton + + * CMatrix.cc (ComplexMatrix::ComplexMatrix (const boolMatrix&)): + Get rows and columns right in loop. + (ComplexMatrix::ComplexMatrix (const charMatrix&)): Likewise. + + 2002-07-19 John W. Eaton + + * DASPK.cc (DASPK::do_integrate): Allow array tolerances. + * DASRT.cc (DASRT::integrate): Likewise. + * DASSL.cc (DASSL::do_integrate): Likewise. + + * Quad.cc: Don't pass tolerances in constructors. + + * DASPK-opts.in, DASRT-opts.in, DASSL-opts.in, LSODE-opts.in, + NLeqn-opts.in, ODESSA-opts.in, Quad-opts.in: New files. + * DASPK-opts.h, DASRT-opts.h, DASSL-opts.h, LSODE-opts.h, + NLeqn-opts.h, ODESSA-opts.h, Quad-opts.h: Generate automatically + from corresponding .in files. + * LSODE.h, Quad.h: Replace options class definitions with included + file. + * Makefile.in (OPTS_INC_SRC, OPTS_INC): New variables, new rule to + create OPTS_INC files from OPTS_INC_SRC files. + (stamp-prereq): New target. + (libraries): Depend on stamp-prereq. + Include stamp-prereq along with $(MAKEDEPS). + + 2002-07-17 John W. Eaton + + * base-de.h (base_diff_eqn::istate): New data member. + (base_diff_eqn::integration_state): New member function. + * LSODE.h, LSODE.cc, ODESSA.h, ODESSA.cc: Delete corresponding + data members and functions. + * DASPK.h, DASRT.h, DASSL.h: Delete idid data member. + * DASPK.cc, DASRT.cc, DASSL.cc: Use istate instead of idid. + + 2002-07-16 John W. Eaton + + * base-de.h (base_diff_eqn::stop_time, + base_diff_eqn::stop_time_set, base_diff_eqn::restart, + base_diff_eqn::integration_error): New data members. + (base_diff_eqn::set_stop_time, base_diff_eqn::clear_stop_time, + base_diff_eqn::force_restart, base_diff_eqn::integration_ok, + base_diff_eqn::error_message): New member functions. + * LSODE.h, LSODE.cc, DASSL.h, DASSL.cc, DASPK.h, DASPK.cc, + DASRT.h, DASRT.cc, ODESSA.h, ODESSA.cc: Delete corresponding data + members and functions. + + * DASRT.h (DASRT::set_ng, DASRT::get_ng): Delete + * DASRT.cc (DASRT::DASRT): Set ng here. + (DASRT::integrate): Don't forget to set nn. + + * DAEFunc.h (DAEFunc): Jacobian function now follows format of DASSL. + * DASSL.cc (ddassl_j): Make it work. + * DASPK.cc (ddaspk_j): Likewise. + + * DAE.cc: Delete. + + * DAERT.h, DAERTFunc.h, DASRT.h, DASRT.cc: New files for DAE + solving with root finding. + * Makefile.in: Add them to the appropriate lists. + + * base-dae.h: New file. + * Makefile.in (INCLUDES): Add it to the list. + * DAE.h (DAE): Derive from base_diff_alg_eqn, not base_diff_eqn. + + 2002-07-10 John W. Eaton + + * ODE.h: Move integrate and do_integrate method declarations and + definitions here. + * base-de.h: From here. + + * ODES.h, ODES.cc, ODESFunc.h, ODESSA.h, ODESSA.cc: New files. + * Makefile.in: Add them to the appropriate lists. + (LIBOCTAVE_CXX_SOURCES): + + 2002-07-02 John W. Eaton + + * NLEqn.cc (NLEqn::error_message): New function. + * NLEqn.h (NLEqn::solution_state, NLEqn::solution_ok): New functions. + + 2002-07-01 John W. Eaton + + * lo-utils.cc (octave_fgetl): New function. + * cmd-edit.cc (do_readline): Use it instead of octave_fgets. + + 2002-05-24 John W. Eaton + + * LSODE.cc (LSODE::error_message): New function. + * LSODE.h: Provide decl. + (LSODE::integration_state): New function. + (LSODE::integration_ok): New function. + + 2002-05-23 John W. Eaton + + * LSODE.cc (LSODE_options::x_integration_method): New data member. + (LSODE_options::set_integration_method, + LSODE_options::integration_method): New functions. + + * LSODE.h (LSODE_options::x_absolute_tolerance): Now Array. + Change all uses. + (LSODE_OPTIONS::absolute_tolerance): Return Array, not double. + (LSODE_OPTIONS::set_absolute_tolerance (const Array&)): + New function. + + * Array.h (Array::fortran_vec): New const version. + + 2002-05-22 John W. Eaton + + * cmd-edit.cc (gnu_readline::history_search_backward): New function. + (gnu_readline::history_search_forward): Likewise. + (gnu_readline::gnu_readline): Use them instead of passing pointers + to extern "C" functions to octave_rl_ad_defun. + + 2002-05-22 Mumit Khan + + * DASPK.cc (ddaspk_psol): Return value. + * oct-rl-edit.c: Use /* ... */ to comment. + + 2002-05-20 John W. Eaton + + * DASSL.h (DASSL_options::init): Undo previous change. + (DASSL_options::set_absolute_tolerance): Likewise. + * LSODE.h (LSODE_options::init): Likewise. + (LSODE_options::set_absolute_tolerance): Likewise. + + * DASPK.h (DASPK_options::init): Use default absolute tolerance of + sqrt(eps), not eps^2. + DASPK_options::set_absolute_tolerance): Likewise. + + 2002-05-17 Mumit Khan + + * Array.h (Array::resize_fill_value): Return default initialized + object. + + 2002-05-14 John W. Eaton + + * oct-rl-edit.c (OCTAVE_RL_SAVE_STRING): New macro. + (octave_rl_set_name, octave_rl_set_basic_quote_characters): Use it. + (octave_rl_set_basic_word_break_characters, + octave_rl_set_completer_word_break_characters): New functions. + * oct-rl-edit.h: Provide decls. + * cmd-edit.cc (gnu_readline::do_set_basic_word_break_characters, + gnu_readline::do_set_completer_word_break_characters): New functions. + (command_editor::set_basic_quote_characters, + command_editor::set_completion_append_character): New static functions. + * cmd-edit.h: Provide decls. + (command_editor::do_set_basic_word_break_characters, + command_editor::do_set_completer_word_break_characters): + New virtual functions. + + * CMatrix.h, boolMatrix.h, chMatrix.h, dMatrix.h + (resize_fill_value): New static function. + + * Array-idx.h (Array::index): New args, resize_ok and + resize_fill_value. + * Array2-idx.h (Array2::index): Likewise. + * ArrayN-idx.h (ArrayN::index): Likewise. + + * Array2.cc (Array::print_info): New function. + * Array2.h: Provide decl. + + * Array.cc (Array::print_info): New function. + * Array.h: Provide decl. + + 2002-05-03 John W. Eaton + + * idx-vector.h (idx_vector::idx_vector (int)): New function. + (idx_vector_rep::idx_vector_rep (int)): New decl. + * idx-vector.cc (idx_vector_rep::idx_vector_rep (int)): New function. + + * Array.h (Array::resize_fill_value (void)): New static function. + (assign (Array&, const Array&)): Use it. + * Array2.h (assign (Array2&, const Array2&)): Use it. + * ArrayN.h (assign (ArrayN&, const ArrayN&)): Use it. + + 2002-05-02 Cai Jianming + + * Array3.h (Array3::checkelem): Improve error message. + * ArrayN.h (ArrayN::range_error): Likewise. + * DiagArray2.cc (DiagArray2::checkelem): Likewise. + * DiagArray2.cc (DiagArray2::operator ()): Likewise. + + 2002-04-30 John W. Eaton + + * DASSL.h (DASSL_options::init): Undo previous change. + (DASSL_options::set_absolute_tolerance): Likewise. + + 2002-04-27 John W. Eaton + + * DASPK.h, DASPK.cc: New files. + * Makefile.in: Add them to the appropriate lists. + + 2002-04-23 John W. Eaton + + * Array2-idx.h (Array2::index (idx_vector&, idx_vector&) const): + Simplify indexing when one or both of the indices are empty. + + 2002-04-11 John W. Eaton + + * DASSL.h (DASSL_options::init): Set absolute tolerance to eps ^ 2. + (DASSL_options::set_absolute_tolerance): Likewise. + * LSODE.h (LSODE_options::init): Likewise. + (LSODE_options::set_absolute_tolerance): Likewise. + + 2002-04-03 Steven G. Johnson + + * f2c-main.c (MAIN_, MAIN__): Delete. Use F77_DUMMY_MAIN instead. + * file-stat.cc (file_stat::update_internal, file_stat::copy): + Use HAVE_STRUCT_STAT_ST_RDEV instead of HAVE_ST_RDEV. + Use HAVE_STRUCT_STAT_ST_BLKSIZE instead of HAVE_ST_BLKSIZE. + Use HAVE_STRUCT_STAT_ST_BLOCKS instead of HAVE_ST_BLOCKS. + * file-stat.h: Likewise. + * oct-time.cc (octave_time::octave_time, octave_base_tm::strftime, + octave_base_tm::init, octave_strptime::init): Use HAVE_TM_ZONE + instead of HAVE_STRUCT_TM_TM_ZONE. + * strftime.c: Likewise. + * lo-specfun.cc, mach-info.cc, CColVector.cc, CMatrix.cc, + CRowVector.cc, CmplxAEPBAL.cc, CmplxCHOL.cc, CmplxHESS.cc, + CmplxLU.cc, CmplxQR.cc, CmplxQRP.cc, CmplxSCHUR.cc, CmplxSVD.cc, + CollocWt.cc, DASSL.cc, EIG.cc, LSODE.cc, NLEqn.cc, Quad.cc, + dColVector.cc, dMatrix.cc, dRowVector.cc, dbleAEPBAL.cc, + dbleCHOL.cc, dbleHESS.cc, dbleLU.cc, dbleQR.cc, dbleQRP.cc, + dbleSCHUR.cc, dbleSVD.cc: Use F77_FUNC instead of F77_FCN. + + 2002-04-02 Paul Kienzle + + * CmplxQR.cc (ComplexQR::init): Use economy QR decomposition + internally when the user requests it. + * CmplxQRP.cc (ComplexQRP::init): Ditto. + * dbleQR.cc (QR::init): Ditto. + * dbleQRP.cc (QRP::init): Ditto. + + 2002-02-22 John W. Eaton + + * oct-fftw.cc (octave_fftw::fft2d): Avoid having to find a + definition for NULL by passing 0 as the last arg to fftwnd_one. + (octave_fftw::ifft2d): Likewise. + + 2002-02-22 Paul Kienzle + + * lo-mappers.cc (arg): Simply call atan2 (0.0, x). + + 2001-12-17 John W. Eaton + + * data-conv.cc (LS_DO_READ): Don't do anything unless len > 0. + (LS_DO_WRITE): Likewise. + + 2001-11-16 John W. Eaton + + * mx-inlines.cc (MX_CUMMULATIVE_OP): New macro. + * CMatrix.cc (ComplexMatrix::cumprod, ComplexMatrix::cumsum): Use it. + * dMatrix.cc (Matrix::cumprod, Matrix::cumsum): Likewise. + + * mx-inlines.cc (MX_REDUCTION_OP, MX_REDUCTION_OP_COL_EXPR, + MX_REDUCTION_OP_ROW_EXPR): New macros. + * dMatrix.cc (Matrix::prod, Matrix::sum): Use MX_REDUCTION_OP. + * CMatrix.cc (ComplexMatrix::prod, ComplexMatrix::sum): Likewise. + + * mx-inlines.cc (MX_BASE_REDUCTION_OP): New macro. + DIM == -1 now means no orientation for vector sums. + * dMatrix.cc (ComplexMatrix::sumsq): Use it. + * CMatrix.cc (ComplexMatrix::sumsq): Likewise. + + 2001-11-08 John W. Eaton + + * Range.cc (Range::nelem_internal): Special case ranges that must + have zero elements. + + 2001-11-06 John W. Eaton + + * Makefile.in: Split out readline and pathsearch functionality + into separate liboct-readline and liboct-pathsearch libraries. + + * oct-rl-edit.c (octave_rl_clear_screen): Call rl_clear_screen, + not _rl_clear_screen. Temporarily redefine rl_redisplay_function + to do nothing for this call to rl_clear_screen. + + 2001-10-08 John W. Eaton + + * DASSL.cc (ddassl_f): Handle IRES returned from user supplied + function. + * DAEFunc.h (DAERHSFunc): Add IRES to prototype. + + 2001-06-07 John W. Eaton + + * dMatrix.cc (Matrix::inverse, Matrix::solve, Matrix::determinant, + Matrix::inverse): Handle the case of rcond being a NaN the same as + a signular matrix. From "Jianming" . + * CMatrix.cc (ComplexMatrix::inverse, ComplexMatrix::solve, + ComplexMatrix::determinant, ComplexMatrix::inverse): Likewise. + + 2001-05-31 John W. Eaton + + * chMatrix.cc (charMatrix::row_as_string): New parameter, raw. + + * Array-i.cc, Array-s.cc, Array-d.cc, Array-ch.cc, Array-C.cc, + Array-b.cc: Instantiate three arg assign functions. + + * ArrayN.cc (assign (ArrayN&, const ArrayN&, const LT&)): + New arg, resize_fill_value. + * ArrayN.h: Provide declaration. + (assign (ArrayN&, const ArrayN&): Define here by calling + three arg version. + + * Array3.cc (assign (Array3&, const Array3&, const LT&)): + New arg, resize_fill_value. + * Array3.h: Provide declaration. + (assign (Array3&, const Array3&): Define here by calling + three arg version. + + * Array2.cc (assign (Array2&, const Array2&, const LT&)): + New arg, resize_fill_value. + * Array2.h: Provide declaration. + (assign (Array2&, const Array2&): Define here by calling + three arg version. + + * Array.cc (assign (Array&, const Array&, const LT&)): + New arg, resize_fill_value. + * Array.h: Provide declaration. + (assign (Array&, const Array&): Define here by calling + three arg version. + + 2001-05-17 John W. Eaton + + * pathsearch.cc (dir_path::set_program_name): Set the environment + variables SELFAUTOLOC, SELFAUTODIR, SELFAUTOPARENT, and TEXMFDBS + to the empty string. + + 2001-05-15 John W. Eaton + + * Array2.h (Array2::operator = (const Array2&)): + Don't check for rep != a.rep. + + 2001-05-02 Mumit Khan + + * oct-fftw.h, oct-fftw.cc: New files. + * Makefile.in (INCLUDES, SOURCES): Add new files. + * CMatrix.cc (ComplexMatrix::{fourier, ifourier, fourier2d, + ifourier2d}): Use fftw if available. + * dMatrix.cc (Matrix::{fourier, ifourier, fourier2d, ifourier2d}): + Likewise. + + 2001-04-25 John W. Eaton + + * Makefile.in (install-lib): Don't use mk-libdir-link. + (install-inc): Don't use mk-includedir-link. + + 2001-02-28 John W. Eaton + + * lo-cutils.c (octave_gethostname): New function. + * lo-utils.h: Provide declaration. + * oct-env.cc (octave_env::do_get_host_name): + Call octave_gethostname, instead of gethostname. + + * lo-cutils.c (gethostname): Define here. + * lo-sysdep.cc: Not here. + + 2001-02-07 John W. Eaton + + * lo-cutils.c: Don't declare strptime. + (oct_strptime): Cast return type of strptime to char*. + + 2001-02-06 John W. Eaton + + * oct-rl-edit.c (octave_rl_newline): Call rl_newline with two args. + (octave_rl_set_name): call rl_re_read_init_file with two args. + (octave_rl_read_init_file): Ditto. + (octave_rl_clear_undo_list): Call rl_free_undo_list, not + free_undo_list. + (octave_rl_completion_matches): Call rl_completion_matches, not + completion_matches. + (octave_rl_enable_paren_matching): New function. + (octave_rl_set_blink_matching_paren_flag): Delete. + (octave_rl_get_blink_matching_paren_flag): Delete. + + * lo-mappers.h, lo-mappers.cc (log10 (const Complex&), + tanh (const Complex&)): Declare and define if not + CXX_ISO_COMPLIANT_LIBRARY. + + 2001-02-05 John W. Eaton + + * lo-mappers.h (tanh (const Complex&)): Only declare if not + CXX_ISO_COMPLIANT_LIBRARY. + + 2001-02-05 Mumit Khan + + * lo-mappers.cc (tanh (const Complex&)): Only define if not + CXX_ISO_COMPLIANT_LIBRARY. + + * Makefile.in (TEMPLATE_AR, TEMPLATE_ARFLAGS): Use to create + archive libraries containing templates. + + * ArrayN-idx.h (freeze, all_ok, any_orig_empty, any_zero_len, + get_zero_len_size, all_colon_equiv): Inline. + (ArrayN::index): Rename idx to arr_idx. + * ArrayN.cc (ArrayN::index, ArrayN::compute_index, + ArrayN::get_size, ArrayN::range_error, ArrayN::range_error, + increment_index, ArrayN::resize, ArrayN::insert): Likewise. + + 2001-02-05 John W. Eaton + + * lo-mappers.h, lo-mappers.cc (tan (const Complex&), + log10 (const Complex&)): Delete. + + * oct-cmplx.h: Define forwarding functions for real, imag, abs, + arg, norm, conj, polar, cos, cosh, exp, log, log10, pow, sin, + sinh, sqrt, tan, and tanh. + + 2001-01-31 John W. Eaton + + * file-ops.cc, help.cc, load-save.cc, pr-output.cc, utils.cc: + Add std:: namespace qualifier as needed. + + * mx-inlines.cc: Rename all functions with mx_inline_ prefix. + Change all uses to match. + + 2001-01-29 John W. Eaton + + * lo-cutils.c: Don't delcare strptime. + + 2001-01-02 John W. Eaton + + * CMatrix.cc (operator * (const ComplexMatrix&, const ComplexMatrix&): + Return correct size result for empty matrix case. + + 2000-12-15 John W. Eaton + + * lo-mappers.cc (xmin (const Complex&, const Complex& y): + If args are equal in magnitude, return first arg instead of + second. + + 2000-12-13 John W. Eaton + + * Range.cc (Range::nelem_internal): Call tfloor, not round, but + then try harder to compute correct number of elements. + + * dMatrix.cc (Matrix::lssolve): Ask DGELSS for size of work vector. + * CMatrix.cc (ComplexMatrix::lssolve): Likewise, for ZGELSS. + + 2000-12-09 John W. Eaton + + * Range.cc (Range::nelem_internal): Call round here, not tfloor. + Rename n_intervals to be n_elt. + + * strptime.c: Surround everything after including config.h in + #ifndef HAVE_STRPTIME ... #endif. + + 2000-11-29 John W. Eaton + + * Array-idx.h (assign): When resizing, cast fill value to LT. + * Array2-idx.h (MAYBE_RESIZE_LHS): Likewise. + + 2000-11-28 John W. Eaton + + * MArray-defs.h: Protect against multiple inclusion. + + 2000-11-20 John W. Eaton + + * data-conv.h (enum save_type): Move LS_U_LONG and LS_LONG to the + end of the list, to be compatible with previous versions of Octave. + + 2000-11-16 Paul Kienzle + + * oct-time.cc (DEFINE_SET_INT_FIELD_FCN): Don't check limits here, + since mktime is supposed to `normalize' the results for us. + + 2000-10-31 Paul Kienzle + + * Array2.cc (Array2::transpose): Avoid copy for empty matrices + and vectors. Use xelem for faster access to elements when copying. + + 2000-10-18 John W. Eaton + + * CMatrix.cc (ComplexMatrix::cumsum, ComplexMatrix::cumprod): + Correct indexing for operation across rows. + * dMatrix.cc (Matrix::cumsum, Matrix::cumprod): Likewise. + + 2000-10-12 Paul Kienzle + + * Array2-idx.h (Array2::index (idx_vector&)): Avoid copying + elements if arg is a colon. + + 2000-10-12 Cai Jianming + + * dMatrix.cc (Matrix::cumprod (int) const): New arg, DIM. + (Matrix::cumsum (int) const): Likewise. + (Matrix::prod (int) const): Likewise. + (Matrix::sum (int) const): Likewise. + (Matrix::sumsq (int) const): Likewise. + * CMatrix.cc (ComplexMatrix::cumprod (int dim) const): Likewise. + (ComplexMatrix::cumsum (int) const): Likewise. + (ComplexMatrix::prod (int) const): Likewise. + (ComplexMatrix::sum (int) const): Likewise. + (ComplexMatrix::sumsq (int) const): Likewise. + + 2000-10-10 John W. Eaton + + * Array2-idx.h (Array2::index (idx_vector&)): Correctly set + size if Array::index returns an empty array. + + 2000-08-02 John W. Eaton + + * file-ops.cc (file_ops::link, file_ops::symlink, + file_ops::readlink): New functions. + + 2000-08-01 John W. Eaton + + * Array2-idx.h (Array2::index (idx_vector&)): If a scalar is + indexed, always return an object the same size as the index arg. + + * oct-time.cc (octave_base_tm::strftime): Return empty string for + empty format. + + 2000-07-25 John W. Eaton + + * lo-cutils.c (oct_strptime): New function. + * oct-time.cc (octave_strptime::init): Call it instead of strptime. + Don't declare strptime. Don't define _XOPEN_SOURCE or _BSD_SOURCE. + + 2000-07-18 John W. Eaton + + * oct-time.cc: Comment out _BSD_SOURCE and _XOPEN_SOURCE definitions. + + * Makefile.in (MATRIX_INC): Add ArrayN-idx.h to the list. + + 2000-06-29 John W. Eaton + + * dMatrix.h (read_int): Provide declaration. + + 2000-06-29 James R. Van Zandt + + * data-conv.cc (read_doubles): Handle EIGHT_BYTE_INT cases. + (write_doubles): Ditto. + * data-conv.h: Ditto. + (enum save_type): New values, LS_U_LONG and LS_LONG. + + 2000-06-27 John W. Eaton + + * boolMatrix.h: Declare MM_CMP_OPS here. + * boolMatrix.cc: Define them here. + + 2000-06-08 John W. Eaton + + * Array2-idx.h (assign): Allow x(bool) = RHS to succeed if x is + previously undefined and set size of x to size of bool index. + * idx-vector.cc (IDX_VEC_REP::maybe_convert_one_zero_to_idx): + Allow z_len to be zero. + (IDX_VEC_REP::freeze): If z_len is zero, set frozen_at_z_len to len. + If frozen, don't assert that frozen_at_z_len == z_len. + + 2000-05-20 John W. Eaton + + * oct-rl-edit.c (octave_rl_clear_screen): Call _rl_clear_screen + instead of rl_clear_screen. + + 2000-05-11 John W. Eaton + + * Array-d.cc: Instantiate ArrayN here too. + * Array-idx-vec.cc, ArrayN-idx.h, ArrayN.cc, ArrayN.h: New files. + * Makefile.in: Add them to the appropriate lists. + + 2000-04-06 John W. Eaton + + * Array.cc (Array::operator =): Don't set max_indices to 1 here. + + 2000-03-23 John W. Eaton + + * lo-sysdep.h: octave_chdir returns int, not bool. + + 2000-03-21 John W. Eaton + + * Makefile.in (liboctave.$(SHLEXT)): Delete target + before rebuilding. + + 2000-03-21 Ben Sapp : + + * Makefile.in (liboctave.$(LIBEXT)): New target. + (libraries): Depend only on library targets, not archive members. + + 2000-03-17 John W. Eaton + + * Makefile.in: (objects): New target. + + * lo-cutils.c: New file. + * Makefile.in (SOURCES): Add it to the list. + * lo-utils.h: Declare octave_qsort here. + * Array.h (Array::qsort): Use it here. + + 2000-03-08 John W. Eaton + + * oct-time.cc: Include and , if available. + + 2000-02-18 John W. Eaton + + * oct-rl-hist.c (octave_history_list): Do something when not + printing line numbers. Fix reallocation of retval. + + 2000-02-11 John W. Eaton + + * Makefile.in (install-inc): Install files in + $(octincludedir)/octave. + (uninstall): Remove them from the correct directory too. + + * oct-time.cc: Temporarily define _BSD_SOURCE and _XOPEN_SOURCE if + they are not already defined. + + 2000-02-08 John W. Eaton + + * CRowVector.cc, CRowVector.h, CColVector.cc, CColVector.h: + Delete declarations and definitions of mixed-type vector-vector ops. + + 2000-02-07 John W. Eaton + + * CMatrix.h, CMatrix.cc: Add lssolve methods for real-valued RHS + matrix and vector objects. + + * mx-op-defs.h (DMM_BIN_OP): Explicitly request conversion to + return type from second arg type. + (MDM_BIN_OP): Likewise, for first arg type. + + * dMatrix.cc (Matrix::fourier, Matrix::ifourier, + Matrix::fourier2d, Matrix::ifourier2d): Likewise. + + * EIG.cc (EIG::symmetric_init, EIG::hermitian_init): Explicitly + request ColumnVector to ComplexColumnVector, and Matrix to + ComplexMatrix conversions. + + * CmplxAEPBAL.cc (ComplexAEPBALANCE::init): Give balancing_mat its + initial value using ComplexMatrix constructor. + + * CColVector.cc (product, quotient, + operator * (const DiagMatrix&, const ComplexColumnVetor&)): + Fix type of returned value. + * CDiagMatrix.cc (ComplexDiagMatrix::row, + ComplexDiagMatrix::column, ComplexDiagMatrix::inverse): Likewise. + + * Array.h, CColVector.h, CDiagMatrix.h, CMatrix.h, CRowVector.h, + MArray.h, MDiagArray2.h, dColVector.h, dDiagMatrix.h, dMatrix.h, + dRowVector.h: Declare some constructors explicit, to disallow + potentially problematic automatic type conversions. + + 2000-02-05 John W. Eaton + + * vx-rv-crv.h, vx-cv-ccv.h, vx-crv-rv.h, vx-ccv-cv.h, + vx-rv-crv.cc, vx-cv-ccv.cc, vx-crv-rv.cc, vx-ccv-cv.cc: + More new files. + * Makefile.in: Add them to the appropriate lists. + + * vx-ccv-s.h, vx-crv-s.h, vx-cs-cv.h, vx-cs-rv.h, vx-cv-cs.h, + vx-rv-cs.h, vx-s-ccv.h, vx-s-crv.h, vx-ccv-s.cc, vx-crv-s.cc, + vx-cs-cv.cc, vx-cs-rv.cc, vx-cv-cs.cc, vx-rv-cs.cc, vx-s-ccv.cc, + vx-s-crv.cc:, New files. + * Makefile.in: Add them to the appropriate lists. + + * CRowVector.h, CRowVector.cc, CColVector.h, CColVector.cc: + Delete scalar by vector and vector by scalar binary ops. + + * MArray-defs.h: More new macros to handle MDiagArray operators. + * dDiagMatrix.h, CDiagMatrix.h: Use the op-forwarding macros. + + 2000-02-04 John W. Eaton + + * oct-rl-edit.c (octave_rl_set_event_hook): Take address of + rl_event_hook before casting to void **. + (octave_rl_set_startup_hook): Likewise, for rl_startup_hook. + + * MArray-defs.h: Many new macros to make declaration and + definition of operators more consistent. + + * MArray.h, MArray2.h, dColVector.h, dRowVector.h, CColVector.h, + CRowVector.h, dMatrix.h, CMatrix.h: Use them. + + 2000-02-03 John W. Eaton + + * dMatrix.cc (Matrix::ifourier): Cast divisor to double. + (Matrix::ifourier2d): Likewise. + * CMatrix.cc (ComplexMatrix::ifourier): Likewise. + (ComplexMatrix::ifourier2d): Likewise. + + * Array.h (Array::ArrayRep::qsort): Cast len to size_t. + + 2000-02-01 John W. Eaton + + * oct-rl-edit.c, oct-rl-edit.h: New files for interface to GNU + readline library. + * Makefile.in: Add them to the appropriate lists. + + * oct-rl-hist.c, oct-rl-hist.h: New files for interface to GNU + readline history library. + * Makefile.in: Add them to the appropriate lists. + + * data-conv.cc (LS_DO_WRITE): Cast arg to ostream::write to char*. + (LS_DO_READ): Likewise, for istream::read. + (write_doubles): Likewise. + (read_doubles): Likewise. + + * oct-env.cc (octave_env::do_polite_directory_format): + Use operator== and substr method to do limited-length string + comparison. + + * Array2-idx.h, Array-idx.h: Avoid shadowing warnings for idx. + + * Quad.h: Use do_integrate as name of pure virtual function. + + * base-de.h: Use tt instead of t as arg names. + Add method with tcrit arg. + + * DAE.h, DAE.cc: Likewise, also xx for x. + + * DASSL.cc (dassl_fcn_ptr, dassl_jac_ptr): New typedefs. + * LSODE.cc: lsode_fcn_ptr, lsode_jac_ptr): Ditto. + * Quad.cc (quad_fcn_ptr): Ditto. + * NLEqn.cc (hybrd1_fcn_ptr, hybrj1_fcn_ptr): Ditto. + + * oct-getopt.h, oct-getopt.c: New files for interface to getopt. + * Makefile.in: Add them to the appropriate lists. + + * oct-kpse.h, oct-kpse.c: New files for interface to kpathsearch. + * Makefile.in: Add them to the appropriate lists. + + * dMatrix.cc (write_int, read_int): No longer declared static. + + * CDiagMatrix.h: Delete decls for friend operators that are + handled by MDiagArray2 class. Move others outside class decl and + strip friend status. + * dDiagMatrix.h: Likewise. + + * MArray.h: Delete decls for friend operators inside class decl. + * MArray2.h: Ditto. + * MDiagArray2.h: Ditto. + + * MArray-defs.h (DO_VS_OP,, DO_SV_OP, DO_VV_OP, NEGV): Pass all + necessary parameters. Don't allocate memory in the macro. Change + all uses. + + * dMatrix.h (class Matrix): Delete `friend class' decls. + * CMatrix.h (class ComplexMatrix): Ditto. + + * mx-op-defs (MS_BOOL_OP, MS_BOOL_OPS, SM_BOOL_OP, SM_BOOL_OPS, + MM_BOOL_OP, MM_BOOL_OPS, MDM_MULTIPLY_OP, MDM_BIN_OPS, + DMM_MULTIPLY_OP, DMM_BIN_OPS): Pass zero constant as final arg, to + avoid type conflicts. Change all uses. + + * strptime.c (__mon_yday): Fix size of array decl. + + * mx-inlines.cc: Use `xnot' instead of `not' for function name. + + * chMatrix.cc (charMatrix::row_as_string): Delete extraneous + default value for second arg. + + * Array2.cc (Array2::resize): Add Array:: qulaifier to + references to ArrayRep. + + 2000-01-31 John W. Eaton + + * Array.h (Array::ArrayRep): Now protected, not private. + + * All source files: Include iostream, fstream, strstream, + etc. as needed instead of using forward declarations for these + classes. Add std:: qualifier as needed. + + 2000-01-30 John W. Eaton + + * oct-time.cc: Declare strptime extern "C". + + 2000-01-29 John W. Eaton + + * oct-time.cc [! HAVE_STRPTIME]: Provide declaration. + + 2000-01-28 John W. Eaton + + * Array2.h (Array2::get_size): Now protected instead of private. + * Array3.h, Array3.cc: Use it in constructors and resize methods + to get total size to be allocated. + + * DASSL.cc (DASSL::integrate): Declare do_restart and save_output + as bool, not int. + + 2000-01-26 John W. Eaton + + * Array2-idx.h (assign (Array2& lhs, const Array2& rhs)): + Allow A(idx) = RHS if idx is a boolean index with the same shape + as A, even when do_fortran_indexing is not enabled. + (Array2::index (idx_vector& idx) const): Likewise, for A(idx). + + 2000-01-25 John W. Eaton + + * dMatrix.cc (Matrix::solve (...)): Add new variant with + function pointer as final arg. Passed function (if any) will be + called for singularity errors. + * CMatrix.cc (ComplexMatrix::solve (...)): Likewise. + + * dMatrix.cc (Matrix::pseudo_inverse): Use economy SVD. + * CMatrix.cc (ComplexMatrix::pseudo_inverse): Likewise. + + * lo-ieee.cc (octave_ieee_init): Don't include sunmath.h. + No longer bother with infinity or quiet_nan. + + * Array2.cc (Array2::get_size): New function. + (Array2::Array2, Array2::resize): Use it. + + 2000-01-23 John W. Eaton + + * Array2-idx.h (Array2::maybe_delete_elements (idx_vector&)): + New function. + (assign (Array2& lhs, const Array2& rhs)): + Use it when indexing with one arg instead of faking a second one. + (Array2::maybe_delete_elements (idx_vector&, idx_vector&)): + Return empty matrices with the correct dimensions for A(:,:) = [] + and also A(:,idx) = [], and A(idx,:) = [] when idx enumerates all + rows or columns. + + * idx-vector.cc (IDX_VEC_REP::is_colon_equiv): Recognize a bool + vector that is all true values with a length equal to n as colon + equivalent. + + 2000-01-22 John W. Eaton + + * strptime.c: Only include langinfo.h if _LIBC is defined. + + 2000-01-21 A. Scottedward Hodel + + * CMatrix.cc (ComplexMatrix::expm): Apply permutation and scaling + operations directly in step 2 and reverse step 2. + * dMatrix.cc (Matrix::expm): Apply permutation and scaling + operations directly in step 2 and reverse step 2. + + 2000-01-20 John W. Eaton + + * oct-time.h, oct-time.cc (octave_strptime): New class. + + * strptime.c: New file, from glibc 2.1.2. + * Makefile.in (SOURCES): Add strptime.c to the list. + + 2000-01-11 John W. Eaton + + * MArray.h (MArray &)): New constructor. + + 2000-01-10 John W. Eaton + + * pathsearch.cc (dir_path::all_directories): Avoid dereferencing + NULL directory list returned from kpse_element_dirs + + 1999-12-08 John W. Eaton + + * dbleLU.cc (LU::LU): Call DGETRF directly instead of calling DGESV. + * CmplxLU.cc (ComplexLU::ComplexLU): Likewise, call ZGETRF + directly, instead of calling ZGESV. + + 1999-11-18 John W. Eaton + + * data-conv.cc (init_sized_type_lookup_table): New function. + (string_to_data_type): Use it to improve lookup of data types. + + 1999-11-16 John W. Eaton + + * dMatrix.cc (is_symmetric): Move here from Array2.cc. + * Array2.h (is_symmetric): Delete declaration. + + 1999-11-10 John W. Eaton + + * oct-env.cc (do_get_user_name): Reverse sense of test. + + 1999-11-07 John W. Eaton + + * oct-time.cc (Fstrftime): Undo previous change. + (octave_time::octave_time (const octave_base_tm&)): Likewise. + + 1999-11-03 John W. Eaton + + * dbleSVD.cc (SVD::init): Let DGESVD determine work space requirement. + * CmplxSVD.cc (ComplexSVD::init): Likewise, for complex version. + + * dbleSCHUR.cc (SCHUR::init): IWORK is always referenced by dgeesx. + Don't forget to pass length of third string argument to dgeesx. + + * CmplxSCHUR.cc (ComplexSCHUR::init): Don't forget to pass length + of third string argument to zgeesx. + + 1999-11-02 John W. Eaton + + * DiagArray2.cc (DiagArray2::operator () (int, int)): + On errors, simply return `T ()'. + (DiagArray2::checkelem (int, int)): Likewise. + + 1999-11-02 A. Scottedward Hodel + + * dMatrix.cc (Matrix::expm): Do balancing here instead of using + AEPBALANCE class. + * CMatrix.cc (ComplexMatrix::expm): Likewise. + + 1999-10-29 John W. Eaton + + * oct-shlib.cc, oct-shlib.h: New files. + * Makefile.in (INCLUDES, SOURCES): Add them to the lists. + + 1999-10-26 John W. Eaton + + * CRowVector.cc (linspace): Allow npoints == 1 if x1 == x2. + * dRowVector.cc (linspace): Ditto. + + * oct-time.cc (Fstrftime): Don't save or delete tm_zone. + (octave_time::octave_time (const octave_base_tm&)): Likewise. + + 1999-10-21 John W. Eaton + + * DASSL.cc (DASSL::do_integrate (double)): If we have a function + to evaluate the Jacobian, set info(4), not iwork(4). + Set rwork(1) to the maximum step size, not rwork(2). + + 1999-10-14 John W. Eaton + + * oct-time.cc: Include . + + 1999-10-13 John W. Eaton + + * cmd-edit.h (command_editor::do_resize_terminal): New function. + * cmd-edit.cc (command_editor::resize_terminal): New function. + (gnu_readline::do_resize_terminal): New function. + + Fri Sep 3 12:39:17 1999 John W. Eaton + + * lo-mappers.cc: Include ieeefp.h and sunmath.h if we have them. + * lo-ieee.c: Likewise. + Delete extern "C" declarations for infinity and quiet_nan. + + Fri Aug 20 07:58:00 1999 John W. Eaton + + * mx-inlines.cc (VS_OP, SV_OP, VV_OP): Delete `extern template' decls. + (VS_OP_FCN, SV_OP_FCN, VV_OP_FCN): Declare template functions + `inline', not `static inline'. + + * idx-vector.cc (intcmp): Declare args as const void *, not int *, + then cast to const int * to compare. + + Fri Jul 16 11:23:51 1999 John W. Eaton + + * DAEFunc.h: Remove useless preprocessor conditional. + + Thu Jul 15 14:10:33 1999 John W. Eaton + + * cmd-edit.cc (command_editor::do_decode_prompt_string): + Use octave_time object instead of time_t. + + * file-stat.h (file_stat::fs_atime, file_stat::fs_mtime, + file_stat::fs_ctime): Now octave_time objects. + (file_stat::atime, file_stat::mtime, file_stat::ctime): + Return octave_time objects. + (file_stat::is_newer): Args are now octave_time objects instead of + time_t. + + * oct-time.h (octave_time::as_double): Delete. + (octave_time::operator double ()): New function. + (octave_time::operator time_t ()): New function. + (octave_time::ctime): New function. + (octave_base_tm::strftime): Renamed from format_as_string. + (octave_base_tm::asctime): New function. + (operator == (const octave_time&, const octave_time&), + operator != (const octave_time&, const octave_time&), + operator < (const octave_time&, const octave_time&), + operator <= (const octave_time&, const octave_time&), + operator > (const octave_time&, const octave_time&), + operator >= (const octave_time&, const octave_time&)): + New comparison functions. + + * strftime.c: Move here from src directory. + * Makefile.in (SOURCES): Add it to the list. + + * oct-time.h (octave_time::octave_time (time_t)): New constructor. + + Wed Jul 14 17:38:07 1999 John W. Eaton + + * oct-time.h, oct-time.cc: New files. + * Makefile.in (INCLUDES, SOURCES): Add them to the lists. + + * systime.h: Move here from src directory. + * Makefile.in (INCLUDES): Add it to the list. + + Mon Jul 12 22:34:34 1999 John W. Eaton + + * mx-defs.h (b_d_Mapper, b_c_Mapper): New typedefs. + * dMatrix.cc (Matrix::map (b_d_Mapper)): New function. + * CMatrix.cc (ComplexMatrix::map (b_c_Mapper)): New function. + * lo-mappers.cc (xisinf, xisnan, xfinite): Return bool, not double. + + * lo-mappers.cc (xmin, xmax): New functions to correctly handle NaNs. + + Mon May 10 07:45:11 1999 John W. Eaton + + * MArray-defs.h (DO_VV_OP2): Fix macro definition to use arg. + + Wed May 5 20:06:10 1999 John W. Eaton + + * Array2-idx.h (Array2index (idx_vector& idx)): Always return a + column vector for A(:), for compatibility with Matlab. + + Fri Apr 23 11:52:23 1999 John W. Eaton + + * LSODE.cc (LSODE::do_integrate (double)): Don't forget to set + iopt when there are optional inputs in rwork or iwork. + + Fri Mar 26 11:26:32 1999 John W. Eaton + + * Makefile.in (libraries): Use the libfoo.a(objects) method of + creating static libs. + + Thu Mar 4 02:17:04 1999 James Macnicol + + * data-conv.cc (oct_data_conv::string_to_data_type): Handle uint16 + and uint32 data types. + + Thu Mar 4 01:51:37 1999 John W. Eaton + + * lo-ieee.cc (octave_ieee_init): Don't use __alpha__-specific code + for Linux. Remove old Linux-specific code. + + Tue Jan 19 09:34:55 1999 John W. Eaton + + * dMatrix.cc (operator * (const ColumnVector& v, const RowVector& a)): + Don't require lengths to be equal. + * CMatrix.cc (operator * (const ComplexColumnVector& v, const + ComplexRowVector& a)): Likewise + + Tue Nov 24 23:38:19 1998 Eric Norum + + * statdefs.h: Only define mode_t if not already defined. + + Tue Nov 24 17:24:52 1998 john + + * lo-specfun.cc (airy, biry): Set imaginary part of result to zero + when appropriate. + + Mon Nov 23 09:57:05 1998 John W. Eaton + + * cmd-edit.cc (gnu_readline::gnu_readline): Set terminal name + before calling rl_initialize. + + Tue Nov 17 23:47:24 1998 John W. Eaton + + * lo-specfun.cc (besselh, airy, biry): New functions. + Update Bessel function support to use library by D. E. Amos. + + Thu Nov 12 17:44:15 1998 John W. Eaton + + * cmd-edit.h (command_editor::readline): Add new variation that + allows EOF information to be passed back to caller. + + * dMatrix.cc (Matrix::read): Do the right thing for EOF when + amount of data to read is unspecified. + + Tue Nov 10 07:53:15 1998 John W. Eaton + + * oct-alloc.h (DECLARE_OCTAVE_ALLOCATOR): New macro. + (DEFINE_OCTAVE_ALLOCATOR): Ditto. + + * byte-swap.h (swap_bytes, swap_2_bytes, swap_4_bytes, swap_8_bytes): + Add volatile qualifier to void* arg. + Cast volatile void* arg to volatile char*. + + Mon Nov 9 08:28:31 1998 John W. Eaton + + * cmd-edit.h (command_editor::do_set_event_hook): New function. + (command_editor::do_restore_event_hook): Ditto. + * cmd-edit.cc (command_editor::set_event_hook): Ditto. + (command_editor::restore_event_hook): Ditto. + (gnu_readline::do_set_event_hook): Ditto. + (gnu_readline::do_restore_event_hook): Ditto. + (gnu_readline::previous_event_hook): New data member. + (gnu_readline::gnu_readline): Initialize previous_event_hook. + + Mon Nov 2 13:36:04 1998 John W. Eaton + + * Makefile.in (BINDISTLIBS): Don't include .$(SHLEXT_VER) in name. + + * Makefile.in (stmp-pic): New target. + ($(PICOBJ)): Depend on stmp-pic, not pic. + (clean): Remove stmp-pic + + * Makefile.in: Undo previous change to avoid optmization when + compiling lo-ieee.cc. + + Sun Nov 1 10:10:40 1998 John W. Eaton + + * lo-mappers.cc (xfinite): Define in terms of xfinite for real and + imaginary parts. + (xisinf): Define in terms of xisinf for real and imaginary parts. + + Thu Oct 29 18:57:50 1998 John W. Eaton + + * boolMatrix.cc (boolMatrix::operator !): New function. + + Fri Oct 23 21:46:20 1998 John W. Eaton + + * pathsearch.h (dir_path::default_path): New data member. + * pathsearch.cc (dir_path::init): Use it. + + * Makefile.in: Avoid optmization when compiling lo-ieee.cc. + + Fri Oct 16 01:08:30 1998 John W. Eaton + + * chMatrix.cc (charMatrix::extract): New function. + (charMatrix::charMatrix (char c)): New constructor. + + Tue Oct 13 22:11:08 1998 John W. Eaton + + * cmd-edit.h: (command_editor::do_read_init_file): New function. + * cmd-edit.cc (command_editor::read_init_file): New function. + (gnu_readline::do_read_init_file): Likewise. + + Fri Sep 25 14:26:44 1998 John W. Eaton + + * oct-env.cc (octave_env::do_get_home_directory): + If HOME can't be found, set it to "/". + (octave_env::do_get_user_name) + If user name can't be found, set it to "unknown". + (octave_env::do_get_host_name) + If host name can't be found, set it to "unknown". + + * pathsearch.h (dir_path::rehash): New function. + * pathsearch.cc (dir_path::init): Clear kpathsea's internal + diretcory cache before doing initialization. + + Thu Sep 24 13:23:25 1998 John W. Eaton + + * dMatrix.cc (Qzval): Delete. + (qzhes, qzit, qzval): Delete F77_FCN declarations. + * dMatrix.h (Qzval): Delete declaration. + + * dbleGEPBAL.h, dbleGEPBAL.cc: Delete. + * Makefile.in (MATRIX_INC, MATRIX_SRC): Delete them from the lists. + * mx-ext.h: Don't include dbleGEPBAL. + + * lo-ieee.cc (octave_ieee_init): For now, use X_CAST instead of + static_cast. + + Fri Sep 4 10:58:22 1998 John W. Eaton + + * dMatrix.cc (Matrix::read): Skip after reading, not before. + From: Dr.-Ing. Torsten Finke . + + Wed Sep 2 09:50:21 1998 John W. Eaton + + * lo-ieee.cc (octave_ieee_init): For Linux on arm, don't rely on + HUGE_VAL and NAN. + + Wed Aug 26 15:04:57 1998 John W. Eaton + + * Array2-idx.h (assign (Array2& lhs, const Array2& rhs)): + Handle x(i) = scalar for do_fortran_indexing == 1. + + Thu Jul 30 00:34:10 1998 John W. Eaton + + * CMatrix.cc (ComplexMatrix::ComplexMatrix (const charMatrix&)): + Alloctate space before attempting to use it. + (ComplexMatrix::ComplexMatrix (const boolMatrix&)): Likewise. + + Mon Jun 22 17:04:27 1998 Tomislav Goles + + * EIG.cc (EIG::init): Move invariant code outside loop. + + Thu Jun 18 11:08:23 1998 John W. Eaton + + * MArray2.cc (MARRAY_A2A2_OP): If operands are empty, make result + have the same size as the operands. + + Thu May 28 10:41:04 1998 John W. Eaton + + * DASSL.cc (DASSL::do_integrate): If an exception occurs in the + call to ddassl, set integration_error to 1 before calling the + error handler and returning. + * LSODE.cc (LSODE::do_integrate): Likewise. + + Wed May 27 13:46:30 1998 John W. Eaton + + * Array2-idx.h (assign): Allow A([],[]) = scalar and, if + do_fortran_indexing is set, A([]) = scalar. + * Array-idx.h (assign): Allow A([]) = scalar. + + Thu May 14 11:50:24 1998 John W. Eaton + + * mx-op-defs.h (MDM_MULTIPLY_OP): Compute result if dm_nc > 0, not + if dm_nc == 0. + + Thu Apr 23 16:15:37 1998 John W. Eaton + + * pathsearch.h (dir_path::p_orig): New field. + * pathsearch.cc (dir_path::init): Perform variable and tilde + expansion on the original path here. + (dir_path::find_all): Don't do anything if not initialized. + + Tue Apr 14 14:41:30 1998 John W. Eaton + + * Array2-idx.h (index): Allow x(:) even when do_fortran_indexing + is not set. + (index): Allow x = zeros (2, 0); x(1,:) to work. + + * lo-specfun.cc (gammainc): Use dgamit to compute + (\int_0^x exp(-t) t^(a-1) dt)/gamma(a), not just + \int_0^x exp(-t) t^(a-1) dt. + + Wed Apr 8 22:50:44 1998 John W. Eaton + + * Array-C.cc, Array-b.cc, Array-ch.cc, Array-i.cc, Array-d.cc, + Array-s.cc: Change return types of all `assign' explicit + instantiations to be int, not void, to match the template decl in + Array.h. + + Mon Apr 6 00:27:06 1998 John W. Eaton + + * lo-specfun.cc (gammainc): Reorder args in call to xdgami. + + Thu Feb 19 01:16:38 1998 John W. Eaton + + * lo-specfun.cc (xgamma, xlgamma): Define here. + * lo-mappers.cc: Not here. + + * lo-specfun.h: Declare xgamma and xlgamma here. + * lo-mappers.h: Not here. + + * lo-specfun.h: Never declare gamma or lgamma. + + Tue Feb 10 16:14:36 1998 John W. Eaton + + * Array-idx.h (assign): Allow A([]) = X to succeed if X is an + empty matrix of any dimension. + + Thu Feb 5 02:12:38 1998 John W. Eaton + + * oct-syscalls.cc (octave_syscalls::vfork): New function. + + * lo-specfun.cc: Don't include dbleBessel.h. + + * Makefile.in (INCLUDES): Delete oct-math.h from the list. + + * dir-ops.h (dir_entry::operator bool ()): Return bool, not void*. + * file-stat.h (file_stat::operator bool ()): Likewise. + * idx-vector.h (idx_vector::operator bool ()): Likewise. + * oct-group.h (octave_group::operator bool ()): Likewise. + * oct-passwd.h (octave_passwd::operator bool ()): Likewise. + + * data-conv.cc (IEEE_little_double_to_IEEE_big_double): + Don't cast arg in call to swap_8_bytes. + (IEEE_big_double_to_IEEE_little_double): Ditto + (IEEE_big_float_to_IEEE_little_float): Don't cast arg in call to + swap_4_bytes. + (IEEE_little_float_to_IEEE_big_float): Ditto + + * oct-alloc.cc (grow): Use X_CAST, not static_cast. + * prog-args.cc (prog_args::getopt): Likewise. + * dMatrix.cc (read_int, do_read, write_int, do_write): Likewise. + * cmd-edit.cc (gnu_readline::do_set_completion_function): Likewise. + * data-conv.cc (LS_DO_READ, LS_DO_WRITE, read_doubles, write_doubles): + Likewise. + + * byte-swap.h (swap_bytes, swap_2_bytes, swap_4_bytes, + swap_8_bytes): Declare ptr arg as void*, then use cast. + + Mon Feb 2 01:42:56 1998 John W. Eaton + + * Makefile.in (install, uninstall): Use $(octlibdir), not $(libdir). + Use $(mk-libdir-link). + + * file-stat.cc (file_stat::update_internal): Use stat and lstat, + not SAFE_STAT and SAFE_LSTAT. + (lstat): New function, defined if HAVE_LSTAT is not defined. + * safe-xstat.hin, safe-xstat.cin: Delete. + * Makefile.in: Delete rules for safe-stat.h, safe-stat.c, + safe-lstat.h, and safe-lstat.cc. + + Fri Jan 30 23:48:43 1998 John W. Eaton + + * chMatrix.cc (charMatrix::all, charMatrix::any): New functions. + + Tue Jan 20 16:30:00 1998 John W. Eaton + + * dMatrix.cc (Matrix::expm): Skip trace normalization step if the + trace is negative. + * CMatrix.cc (ComplexMatrix::expm): Skip trace normalization if + the real part of the trace is negative. + + Mon Jan 19 16:01:59 1998 John W. Eaton + + * dMatrix.cc (Matrix::expm): Call xdlange instead of dlange. + * CMatrix.cc (ComplexMatrix::expm): Call xzlange instead of zlange. + + * Array2-idx.h (assign): Allow operations like a = 1; a(2:3) = [1;2] + to succeed. + + Thu Dec 18 14:53:45 1997 John W. Eaton + + * idx-vector.cc (IDX_VEC_REP::sort): Don't do anything unless len > 1. + (make_uniq): Likewise. + + Fri Dec 12 10:58:33 1997 John W. Eaton + + * lo-ieee.cc (octave_ieee_init): Check for linux before __alpha__. + + Sun Nov 30 14:59:12 1997 John W. Eaton + + * lo-mappers.cc: Include cmath and lo-specfun.h, not oct-math.h. + + * lo-specfun.h, lo-specfun.cc: New files. + * Makefile.in (INCLUDES, SOURCES): Add them to the lists. + + * acosh.c, asinh.c, atanh.c, erf.c, erfc.c, gamma.c, lgamma.c, + oct-math.h: Delete. + * Makefile.in (SOURCES): Delete them from the list. + + Wed Nov 26 20:02:13 1997 John W. Eaton + + * lo-sysdep.cc (octave_getcwd): Prefer getcwd over getwd. + + Wed Nov 19 02:30:04 1997 Mumit Khan + + Changes to make support egcs snapshots that implement explicit + specification of template functions according to CD2. + + * MArray.h: If NEED_TEMPLATE_FCN_SPECS is defined, add explicit + template function specs for template friends. + * MArray2.h: Likewise. + * MDiagArray2.h: Likewise. + + Thu Nov 13 21:57:16 1997 John W. Eaton + + * CMatrix.cc (sumsq): Compute equivalent of sum (x .* conj (x)) + + Thu Oct 2 17:13:02 1997 Mumit Khan + + * CRowVector.cc (linspace): Removed attempt for implicit conversion + to complex(int) instead of complex(double). + + * lo-mappers.cc (atanh): Ditto. + + Thu Jul 31 22:13:54 1997 John W. Eaton + + * idx-vector.cc (IDX_VEC_REP::sort): New function. + * idx-vector.h (idx_vector::sort): Ditto. + * Array2-idx.h (Array2::maybe_delete_elements): Use it before + trying to delete elements specified by the index vectors. + + Fri Jul 25 17:31:26 1997 John W. Eaton + + * dMatrix.cc (Matrix::lssolve): Increase lwork by factor of 16. + * CMatrix.cc (ComplexMatrix::lssolve): Ditto. + + Thu Jul 24 14:32:48 1997 John W. Eaton + + * file-ops.cc (tilde_expand_word): Fix off-by-one error. + + Wed Jul 9 19:40:23 1997 John W. Eaton + + * lo-sysdep.cc (octave_getcwd): If getwd is available, use it. + Call error handler if we can't find the current directory. + + Mon Jul 7 21:14:41 1997 John W. Eaton + + * lo-mappers.cc (xisnan (double)): Return only 1 or 0. + (xfinite (double)): Ditto. + + * dbleQR.cc (QR::init): Don't forget to initialize Q when type is raw. + * CmplxQR.cc (ComplexQR::init): Ditto. + + Sun Jun 15 21:06:37 1997 John W. Eaton + + * lo-mappers.cc (acos (const Complex&)): Select branch that is + compatible with Matlab. + + Tue Jun 10 10:58:05 1997 John W. Eaton + + * Array2-idx.h: Correctly handle empty matrices indexed by a + single colon. + + Fri Jun 6 04:27:40 1997 John W. Eaton + + * lo-mappers.cc (xlgamma): Use F77_XFCN function to call dlgams. + (xgamma): Likewise, for calling xdgamma. + + * FSQP.h, NPSOL.h, QPSOL.h, FSQP.cc, NPSOL.cc, QPSOL.cc: Delete + * Makefile.in (INCLUDES, SOURCES): Remove them from the lists. + + * file-ops.cc (file_ops::tilde_expand): Steal more code from bash + to do better job expanding tildes. + + * str-vec.cc (string_vector::string_vector (const char * const *): + Use temporary variable to compute length. + + Thu Jun 5 01:44:43 1997 John W. Eaton + + * Makefile.in: Make building of static library optional. + (liboctave.$(SHLEXT_VER)): Add $(SONAME_FLAGS) to command. + + * Makefile.in (stamp-picdir): Delete. + (pic): New target. Don't worry so much about creating pic + directory only when it is really needed. + (stamp-interp): Delete. + (libraries): New target. Depend on shared library directly. + + Wed Jun 4 00:08:55 1997 John W. Eaton + + * pathsearch.h, pathsearch.cc (dir_pat::set_program_name): + New static function. + + Mon Jun 2 12:44:14 1997 John W. Eaton + + * lo-mappers.cc (fix): Use floor and ceil instead of casting to int. + + Thu May 22 16:20:43 1997 John W. Eaton + + * cmd-edit.h, cmd-edit.cc: Rename set_paren_string_delimiters to + set_basic_quote_characters, to match new version of readline. + + * cmd-edit.cc (do_restore_terminal_state): Call readline function + for restoring terminal state through rl_deprep_term_function, now + declared in readline.h + (rl_deprep_terminal): Delete declaration. + + Wed May 21 16:30:25 1997 John W. Eaton + + * Makefile.in (install-in): Use new mk-includedir-link macro. + (install-lib): Install in $octlibdir. Use new mk-libdir-link macro. + + Thu May 15 11:46:42 1997 John W. Eaton + + * cmd-edit.cc (command_editor::increment_current_command_number): + New static function. + + Mon May 12 02:14:13 1997 John W. Eaton + + * idx-vector.cc (IDX_VEC_REP::is_colon_equiv): Make it work when + the vector is not sorted. + + * CMatrix.cc (ComplexMatrix::operator !): Return boolMatrix. + * dMatrix.cc (Matrix::operator !): Likewise + + Wed May 7 21:14:06 1997 John W. Eaton + + * oct-syscalls.h, oct-syscalls.cc: New files. + + * cmd-edit.h, cmd-edit.cc: Handle completion function. + + * str-vec.h, str-vec.cc (string_vector::uniq): New function. + + Tue May 6 00:52:02 1997 John W. Eaton + + * Makefile.in (INCLUDES_FOR_INSTALL): New variable. + (install-inc): Use it. + + * file-ops.h, file-ops.cc (tempnam): Add DIR and PREFIX args. + Handle errors and missing functions consistently. + + * oct-group.h, oct-group.cc: New files. + + * oct-passwd.cc: Handle errors and missing functions consistently. + + * str-vec.h, str-vec.cc (c_str_vec, delete_c_str_vec): New functions. + + Mon May 5 17:53:01 1997 John W. Eaton + + * file-ops.cc: (file_ops::tilde_expand): Use new octave_passwd class. + * oct-env.cc (octave_env::do_get_user_name): Likewise. + + * oct-passwd.h, oct-passwd.cc: New files. + + Sun May 4 22:17:08 1997 John W. Eaton + + * statdefs.h: Only include sys/types.h if HAVE_SYS_STAT_H is defined. + + * mach-info.h, mach-info.cc: Add missing const qualifiers. + (instance_ok ()): New function. + + * glob-match.h, glob-match.cc: Rename from oct-glob.h, oct-glob.cc. + + * cmd-hist.h, cmd-hist.cc: Make it work without GNU readline. + + * lo-utils.h, lo-utils.cc (strsave, octave_putenv): Move here from + src/utils.h and src/utils.cc. + (octave_fgets): New function, extracted from src/input.cc. + + * cmd-edit.h, cmd-edit.cc: New files. Provide wrapper class for + GNU readline, and allow Octave to work without GNU readline. + + * lo-sysdep.h, lo-sysdep.cc: New files for miscellaneous + system-dependent functions. + + * oct-env.h, oct-env.cc: New files for process environment stuff. + + * file-stat.h, file-stat.cc: New files. Extract file_stat class + from file-ops.h and file-ops.cc and move here. + + * file-ops.h, file-ops.cc: Wrap functions in struct. Move + tilde_expand functions here from src/dirfns.cc. + + Fri May 2 19:50:12 1997 John W. Eaton + + * pathlen.h: New file, from ../src. + + Tue Apr 29 04:39:01 1997 John W. Eaton + + * Array2-idx.h (Array2::maybe_delete_elements): Prevent + out-of-bounds indexing of the index array. + * Array-idx.h (Array::maybe_delete_elements): Likewise. + + Fri Mar 28 15:37:09 1997 John W. Eaton + + * LSODE.h (x_step_limit): New field. + (LSODE_options::init): Initialize it. + (LSODE_options::copy): Copy it. + (LSODE_options::set_step_limit, LSODE_options::step_limit): + New functions. + (LSODE::working_too_hard): Delete. + * LSODE.cc (LSODE::do_integrate): Handle step limit. + + Wed Mar 26 15:31:57 1997 John W. Eaton + + * MArray-b.cc: Delete. + * Makefile.in: Delete it from the lists. + + * boolMatrix.h (class bboolMatrix): Derive from Array2, not + MArray2, since most of the numeric ops don't really make sense. + + Tue Mar 25 17:37:25 1997 John W. Eaton + + * boolMatrix.cc (boolMatrix::all, boolMatrix::any): New functions. + + * dMatrix.cc (Matrix::all, Matrix::any): Return boolMatrix. + * CMatrix.cc (ComplexMatrix::all, ComplexMatrix::any): Likewise. + + * idx-vector.h (idx_vector::idx_vector_rep::freeze, + idx_vector::freeze): Delete prefer_zero_one arg. + * Array-idx.h, Array2-idx.h: Change all callers. + + * Array-flags.h, Array-flags.cc (liboctave_pzo_flag): Delete. + + * mx-op-defs.h: New file for operator definitions. + * mx-cdm-cm.h, mx-cdm-cs.h, mx-cdm-dm.h, mx-cdm-m.h, mx-cdm-s.h, + mx-cm-cdm.h, mx-cm-dm.h, mx-cm-m.h, mx-cm-s.h, mx-cs-cdm.h, + mx-cs-dm.h, mx-cs-m.h, mx-dm-cdm.h, mx-dm-cm.h, mx-dm-cs.h, + mx-dm-m.h, mx-dm-s.h, mx-m-cdm.h, mx-m-cm.h, mx-m-cs.h, mx-m-dm.h, + mx-s-cdm.h, mx-s-cm.h, mx-s-dm.h, mx-cdm-cm.cc, mx-cdm-cs.cc, + mx-cdm-dm.cc, mx-cdm-m.cc, mx-cdm-s.cc, mx-cm-cdm.cc, mx-cm-dm.cc, + mx-cm-m.cc, mx-cm-s.cc, mx-cs-cdm.cc, mx-cs-dm.cc, mx-cs-m.cc, + mx-dm-cdm.cc, mx-dm-cm.cc, mx-dm-cs.cc, mx-dm-m.cc, mx-dm-s.cc, + mx-m-cdm.cc, mx-m-cm.cc, mx-m-cs.cc, mx-m-dm.cc, mx-s-cdm.cc, + mx-s-cm.cc, mx-s-dm.cc: + New files for mixed-type operations. + * Makefiles.in: Add them to the appropriate lists. + + * mx-inlines.cc: Add bool by bool EQ ops. + + * idx-vector.h, idx-vector.cc: Add constructors for bool and + boolMatrix types. + (idx_vector::maybe_convert_one_zero_to_idx, + idx_vector::idx_vector_rep::maybe_convert_one_zero_to_idx): + Delete second arg, prefer_zero_one. Change all callers. + + * boolMatrix.h, boolMatrix.cc: New files. + * mx-base.h: Include boolMatrix.h here. + * mx-defs.h: Provide forward declaration for boolMatrix here. + + * chMatrix.h, chMatrix.cc: Delete unused junk. + + * dMatrix.h, CMatrix.h: Delete friend declarations for operator+, + operator-, operator*, product, and quotient functions. + Add constructor for boolMatrix type. + * dMatrix.cc, CMatrix.cc: Delete operator+, operator-, operator*, + product, and quotient functions. + + * CDiagMatrix.h: Delete friend declarations for operator+, + operator-, and product functions. + * CDiagMatrix.h: Delete operator+, operator-, and product functions. + + * Array-b.cc: Also instantiate 2d and 2d diagonal arrays. + + Fri Mar 14 00:29:46 1997 John W. Eaton + + * EIG.cc (EIG::hermitian_init (const ComplexMatrix&)): New function. + (EIG::init (const ComplexMatrix&)): Call it if arg is hermitian. + (EIG::symmetric_init (const Matrix&)): New function. + (EIG::init (const Matrix&)): Call it if arg is symmetric. + + * CMatrix.cc (ComplexMatrix::is_hermitian): New function. + + Thu Mar 13 17:04:26 1997 John W. Eaton + + * Array2.cc (is_symmetric): New function. + * Array2.h (is_square): New function. + + Wed Mar 12 16:59:49 1997 John W. Eaton + + * Makefile.in (install-strip): New target. + + Mon Mar 10 22:34:22 1997 John W. Eaton + + * CmplxCHOL.cc, CmplxHESS.cc, CmplxLU.cc, CmplxQR.cc, + CmplxQRP.cc, CmplxSCHUR.cc, CmplxSVD.cc, EIG.cc, dbleCHOL.cc, + dbleHESS.cc, dbleLU.cc, dbleQR.cc, dbleQRP.cc, dbleSCHUR.cc, + dbleSVD.cc: Don't include mx-inlines.cc. + + * mx-inlines.cc: Abuse the preprocessor to eliminate lots of + duplicate code. + + Sun Mar 9 03:44:52 1997 John W. Eaton + + * dbleQR.h (QR): Delete extra comma at end of list. + + * prog-args.cc (prog_args::getopt): Add missing const in cast. + + * dbleSVD.h (SVD::type): Delete extra comma at end of list. + + * idx-vector.h (idx_vector): Delete unnecessary idx_vector:: and + idx_vecotr_rep:: qualifiers. + + * Array.h (class Array): Delete unnecessary Array:: qualifiers. + + * data-conv.h (save_type): Delete extra comma at end of list. + + * CMatrix.cc, FEGrid.cc, Range.cc, dMatrix.cc, data-conv.cc, + dir-ops.cc, file-ops.h, idx-vector.cc, idx-vector.h, lo-ieee.cc, + lo-mappers.cc, oct-alloc.cc: Use `static_cast (val)' instead of + old C-style `(T) val' casts. + + Thu Mar 6 20:20:01 1997 John W. Eaton + + * dMatrix.cc (operator >>): Return if an error occurs instead of + just breaking out of the innermost loop. + * CMatrix.cc (operator >>): Likewise. + + Sat Mar 1 15:23:14 1997 John W. Eaton + + * Version 2.0.5 released. + + Fri Feb 28 20:11:23 1997 John W. Eaton + + * CmplxQR.cc (ComplexQR::init): New function. + (ComplexQR::ComplexQR): Use it. Use initializer list too. + * CmplxQRP.cc (ComplexQRP::init): New function. + Get sizes right in all cases. + (ComplexQR::ComplexQRP): Use it. Use initializer list too. + + * dbleQR.cc (QR::init): New function. + (QR::QR): Use it. Use initializer list too. + * dbleQRP.cc (QRP::init): New function. + Get sizes right in all cases. + (QR::QRP): Use it. Use initializer list too. + + Wed Feb 26 15:46:28 1997 John W. Eaton + + * mach-info.cc (oct_mach_info::string_to_float_format): + Recognize "vaxg", not "vax_g". + + Fri Feb 21 16:07:56 1997 John W. Eaton + + * Array2-idx.h (Array2::maybe_delete_elements): Use correct + dimension in check for colon equivalent index. + * idx-vector.cc (IDX_VEC_REP::is_colon_equiv): A single-element + index whose value is 0 is also colon eqivalent for n == 1. + + * lo-ieee.cc (octave_ieee_init): Reorder #ifdef stuff to put + system-specific tests first. + + Thu Feb 20 02:58:05 1997 John W. Eaton + + * Version 2.0.4 released. + + Wed Feb 19 09:42:30 1997 John W. Eaton + + * lo-ieee.cc: D'oh, it's `extern "C"', not `#extern "C"'. + + Tue Feb 18 09:22:04 1997 John W. Eaton + + * Version 2.0.3 released. + + Fri Feb 14 16:23:47 1997 John W. Eaton + + * Makefile.in (bin-dist): Don't write empty strings to LIBRARIES. + + Thu Feb 13 14:35:19 1997 John W. Eaton + + * Makefile.in (stamp-prereq): Depend on stamp-picdir. + (all): Don't depend on stamp-prereq or stamp-picdir. + (liboctave.a, stamp-shared): Do depend on stamp-prereq. + (stamp-picdir): Silence noise about making pic. + (stamp-shared): Use $(SH_LD) $(SH_LDFLAGS) instead of $(CXX) -shared. + + * Array2-idx.h (Array2::index (idx_vector&, idx_vector&)): + Fix typo in last change. + + * CColVector.cc (ComplexColumnVector::map (d_c_mapper)): + Convert from friend (moved from dColVector.cc). + * CMatrix.cc (ComplexMatrix::map (d_c_mapper)): + Likewise (moved from dMatrix.cc). + * CRowVector.cc (ComplexRowVector::map (d_c_mapper)): + Likewise (moved from dRowVector.cc). + + * dColVector.cc (ColumnVector::map (d_d_mapper)): Convert from friend. + * dMatrix.cc (Matrix::map (d_d_mapper)): Likewise. + * dRowVector.cc (RowVector::map (d_d_mapper)): Likewise. + * CColVector.cc (ComplexColumnVector::map (c_c_mapper)): Likewise. + * CMatrix.cc (ComplexMatrix::map (c_c_mapper)): Likewise. + * CRowVector.cc (ComplexRowVector::map (c_c_mapper)): Likewise. + + * dColVector.cc (ColumnVector::apply): Rename from map, return *this. + * dMatrix.cc (Matrix::apply): Likewise. + * dRowVector.cc (RowVector::apply): Likewise. + * CColVector.cc (ComplexColumnVector::apply): Likewise. + * CMatrix.cc (ComplexMatrix::apply): Likewise. + * CRowVector.cc (ComplexRowVector::apply): Likewise. + + Tue Feb 11 19:44:28 1997 John W. Eaton + + * lo-ieee.cc: Declare quiet_nan() and infinity(). + + Mon Feb 10 01:17:45 1997 John W. Eaton + + * file-ops.cc (oct_unlink (const string&, string&)): + New two-arg version. + (oct_rmdir (const string&, string&)): New two-arg version. + (oct_mkdir (const string&, mode_t, string&)): New three-arg version. + (oct_mkfifo (const string&, mode_t, string&)): New three-arg version. + (oct_rename (const string&, const string&, string&)): + New three-arg version. + + Fri Feb 7 13:15:55 1997 John W. Eaton + + * idx-vector.h (idx_vector::orig_empty): New function. + + * Array2-idx.h (Array2::index (idx_vector&, idx_vector&)): + Don't always resize to [](0x0) if one of the indices is empty or + zero. + + Sun Feb 2 22:33:44 1997 John W. Eaton + + * cmd-hist.cc (command_history::read): New arg, must_exist. + Set line_in_file here too. + (command_history::read_range): New arg, must_exist. + + Fri Jan 31 09:21:57 1997 John W. Eaton + + * f2c-main.c: Change C++-style comments to C-style comments. + + Tue Jan 28 10:46:02 1997 John W. Eaton + + * Makefile.in (install-inc): Create a relative symbolic link. + + Mon Jan 27 15:52:27 1997 John W. Eaton + + * Version 2.0.2 released. + + Sat Jan 25 22:36:21 1997 John W. Eaton + + * Makefile.in (bin-dist): New target. + + Wed Jan 22 16:18:53 1997 John W. Eaton + + * dbleSVD.cc (SVD::init): Work around apparent dgesvd() bug. + * CmplxSVD.cc (ComplexSVD::init): Work around apparent zgesvd() bug. + + Mon Jan 20 18:44:11 1997 John W. Eaton + + * chMatrix.cc (charMatrix::charMatrix (const string&)): + If the number of columns is zero, also set the number of rows to zero. + (charMatrix::charMatrix (const char *)): Likewise. + + Tue Jan 7 00:16:57 1997 John W. Eaton + + * Version 2.0.1 released. + + Sun Jan 5 12:07:45 1997 John W. Eaton + + * dMatrix.cc (Matrix::read): Correctly compute the number of + columns for resizing when the number of rows is specified but the + number of columns is not. + + Wed Dec 18 16:18:58 1996 John W. Eaton + + * Range.cc (operator -): New function. + + * lo-ieee.cc: Include on all systems that have it. + + Fri Dec 13 02:01:32 1996 John W. Eaton + + * Array2-idx.h (assign): Delay resizing left hand side until we + know if the assignment conforms. + + Tue Dec 10 01:43:09 1996 John W. Eaton + + * Version 2.0 released. + + Fri Dec 6 14:41:15 1996 John W. Eaton + + * Array2-idx.h (assign): If index is a colon, set number of + elements to the lhs dimension if the lhs dimension is greater than + zero. Otherwise, set it to the rhs dimension. + + * Version 1.94. + + * Array2-idx.h (assign): Test for rhs scalar case first. + If index is colon, set number of elements to lhs dimension, not + rhs dimension. + + Thu Dec 5 13:05:18 1996 John W. Eaton + + * sun-utils.h: Don't declare MAIN_ or MAIN__ here. + * sun-utils.cc: Delete. + * f2c-main.c: New file + + * Makefile.in: Fix file name lists. + + * CMatrix.cc (lssolve): Don't redeclare retval, resize it. + + Wed Dec 4 12:24:24 1996 John W. Eaton + + * dMatrix.cc (Qzval): Don't try to use same memory three times. + Create result using Complex constructor, not multiplication. + Order elements as they are returned from Eispack. + + Mon Dec 2 00:26:41 1996 John W. Eaton + + * lo-ieee.cc (octave_ieee_init): Kluge for octave_Inf on SCO. + Only include nan.h if SCO is defined. Define _IEEE before + including it and undefine it afterward. + [SCO] (isnan): Don't mistake Inf as NaN. + + * Array-idx.h (assign): Only resize if assignment conforms. + + Wed Nov 20 01:00:40 1996 John W. Eaton + + * Makefile.in (INCLUDES): Delete lo-error.h. + * lo-error.h: Delete (moved to libcruft/misc). + + * Version 1.93. + + Tue Nov 19 23:07:45 1996 John W. Eaton + + * oct-glob.cc (glob_match::match): Don't expect our flag values to + be the same as they are in fnmatch.h. + + * f77-fcn.c, f77-fcn.h: Move to libcruft/misc directory. + + * Makefile.in (INCLUDES): Delete f77-fcn.h. + (SOURCES): Delete f77-fcn.c. + + Fri Nov 15 13:47:34 1996 John W. Eaton + + * lo-ieee.h: [SCO]: Declare isinf and isnan. + + Thu Nov 14 00:06:53 1996 John W. Eaton + + * Version 1.92. + + Wed Nov 13 11:19:22 1996 John W. Eaton + + * cmd-hist.cc (command_history::add): Ignore empty input lines, or + lines that have only carriage return or newline. + + * lo-ieee.cc (isnan, isinf): Provide functions for SCO. + + Tue Nov 12 11:11:21 1996 John W. Eaton + + * idx-vector.cc (idx_is_inf_or_nan): New function. + (IDX_VEC_REP::idx_vector_rep): Use it. + + Sun Nov 10 17:09:24 1996 John W. Eaton + + * str-vec.h, str-vec.cc: Add constructors to make string vectors + from vectors of C strings. + + * oct-glob.h, oct-glob.cc (glob_match): Allow pat to be a string + vector. + (glob_match::match): Allow match string to be a string vector. + (glob_match::glob): New function. + + * chMatrix.cc (charMatrix::row_as_string): New arg, strip_ws. + + * Array-b.cc: New file. + * Makefile.in (TI_SRC): Add it to the list. + + Fri Nov 8 18:09:12 1996 John W. Eaton + + * file-ops.cc: Change #include "" to #include <> for safe-lstat.h + and safe-stat.h, to avoid getting them from $srcdir when we really + want the version from the build directory. (Maybe this should be + done for all the include files, not just those that are + auto-generated? Hmm.) + + Thu Nov 7 10:45:11 1996 John W. Eaton + + * Version 1.91. + + * Array3.cc (Array3::resize): Make it work. + + Wed Nov 6 22:44:33 1996 John W. Eaton + + * oct-alloc.h, oct-alloc.cc: New files. + * Makefile.in: Add them to the lists. + + Mon Nov 4 21:49:51 1996 John W. Eaton + + * dbleQRP.cc (QRP::QRP): Don't pass tmp data to unsafe constructor. + * CmplxQRP.cc (ComplexQRP::ComplexQRP): Ditto. + + Sun Nov 3 15:45:37 1996 John W. Eaton + + * file-ops.cc (file_stat::is_blk, file_stat::is_chr, + file_stat::is_dir, file_stat::is_fifo, file_stat::is_lnk, + file_stat::is_reg, file_stat::is_sock): Just return false if the + underlying macro is not defined. + + * oct-math.h (lgamma, gamma): Delete declarations. + (asinh, acosh, atanh, erf, erfc): Declare arg types too. + Protect declarations with #ifdef HAVE_*. + + Wed Oct 30 11:42:58 1996 John W. Eaton + + * Version 1.90. + + * Makefile.in (DISTFILES): Add ChangeLog. + + * cmd-hist.cc: Only include fcntl.h if HAVE_FCNTL_H. + + * Matrix-ext.cc: Include , not . + + * CMatrix.cc, cmd-hist.cc, file-ops.cc, file-ops.h, filemode.c, + mkdir.c, rename.c, rmdir.c, safe-xstat.cin, statdefs.h, sysdir.h, + tempname.c, utils.cc: Only include sys/types.h if HAVE_SYS_TYPES_H. + + * Array3.h (T Array3::checkelem): Return T() for bogus value, + since that is now accepatble syntax, even for built-in types. + * Array2.h (T Array2::checkelem): Likewise + + Sat Oct 26 23:37:34 1996 John W. Eaton + + * file-ops.cc (mkfifo) [! HAVE_MKFIFO]: Just print an error + message and return -1. + + Fri Oct 25 01:24:51 1996 John W. Eaton + + * str-vec.h (str_vec_compare): Declare args as const void *, then + cast them to const string * in the body of the function. + + * file-ops.cc (file_stat::mode_as_string): Explicitly construct + string from buf. + + * Array3.h (Array3::checkelem): Tag bogus return value with + GCC_ATTRIBUTE_UNUSED. + * Array2.h (Array2::checkelem): Likewise. + + Thu Oct 24 19:40:36 1996 John W. Eaton + + * Quad.h (Quad): Define virtual destructor. + + Tue Oct 15 11:34:48 1996 John W. Eaton + + * CMatrix.cc (ComplexMatrix::all_elements_are_real): new function. + + Sun Oct 13 11:19:00 1996 John W. Eaton + + * sun-utils.h: Conditionally declare MAIN__ too. Declare MAIN_ + and MAIN__ extern "C". + * sun-utils.cc: Include sun-utils.h here. Delete extern "C" stuff. + + Sat Oct 12 12:40:00 1996 John W. Eaton + + * MArray-misc.cc: New file. + * Makefile.in (MATRIX_SRC): Add it to the list. + + * mx-inlines.cc (equal): Return bool, not int. + + * idx-vector.h (idx_vector (double)): New constructor. + + * chMatrix.h, chMatrix.cc, CMatrix.h, CMatrix.cc, dMatrix.h, + dMatrix.cc, dDiagMatrix.h, dDiagMatrix.cc, dRowVector.h, + dRowVector.cc, dColVector.h, dColVector.cc, CColVector.h, + CColVector.cc, CDiagMatrix.h, CDiagMatrix.cc, CRowVector.h, + CRowVector.cc: Logical operators return bool, not int. + + * CMatrix.h, CMatrix.cc (ComplexMatrix::any_element_is_inf_or_nan): + New function. + + * dMatrix.h, dMatrix.cc (Matrix::any_element_is_negative, + Matrix::any_element_is_inf_or_nan, Matrix::abs, + Matrix::all_elements_are_inf_or_nan): New functions. + + * Range.h, Range.cc (Range::all_elements_are_ints): New function. + + * MArray.cc, MArray2.cc, MDiagArray2.cc: Call gripe_nonconformant + for errors. Simplify macros by converting FCN to string for error + messages. + + * Array-idx.h (Array::index): New function. Don't call + clear_index() here. + (Array::value): Call it, do call clear_index() here. + * Array2-idx.h (Array::value, Array::index): Likewise, for + one and two arg index functions. + + Tue Sep 17 21:21:16 1996 John W. Eaton + + * DAEFunc.h: Delete #pragma interface since there is no longer a + separate implementation file. + + Tue Aug 20 17:38:46 1996 John W. Eaton + + * Makefile.in (stamp-picdir): Only create a pic subdirectory if + SHARED_LIBS is true AND CPICFLAG or CXXPICFLAG is not empty. + + * idx-vector.cc (IDX_VEC_REP::is_colon_equiv): Rename arg sort to + sort_uniq. If sort_uniq is nonzero, sort the elements and make + them uniq. + + * CMatrix.cc (ComplexMatrix::row_max, ComplexMatrix::row_min, + ComplexMatrix::column_max, ComplexMatrix::column_min): + Rewrite. Also return index as a reference arg. + (ComplexMatrix::row_max_loc, ComplexMatrix::row_min_loc, + ComplexMatrix::column_max_loc, ComplexMatrix::column_min_loc): + Delete. + + * dMatrix.cc (Matrix::row_max, Matrix::row_min, + Matrix::column_max, Matrix::column_min): + Rewrite. Also return index as a reference arg. + (Matrix::row_max_loc, Matrix::row_min_loc, + Matrix::column_max_loc, Matrix::column_min_loc): Delete. + + Fri Aug 9 05:01:04 1996 John W. Eaton + + * dMatrix.cc (Matrix::row_min, Matrix::row_min_loc, + Matrix::row_max, Matrix::row_max_loc, Matrix::column_min, + Matrix::column_min_loc, Matrix::column_max, + Matrix::column_max_loc): Ignore leading NaNs. + * CMatrix.cc (ComplexMatrix::row_min, ComplexMatrix::row_min_loc, + ComplexMatrix::row_max, ComplexMatrix::row_max_loc, + ComplexMatrix::column_min, ComplexMatrix::column_min_loc, + ComplexMatrix::column_max, ComplexMatrix::column_max_loc): Ignore + leading NaNs. + + Thu Aug 8 16:04:17 1996 John W. Eaton + + * QPSOL.cc (QPSOL::do_minimize): Insert linear constraint bounds + starting at n, not 0. + + Sat Jul 27 02:54:44 1996 John W. Eaton + + * dMatrix.cc (Matrix::Matrix (const RowVector&), + Matrix::Matrix (const ColumnVector&)): New constructors. + + * CMatrix.cc (ComplexMatrix::ComplexMatrix (const RowVector&), + ComplexMatrix::ComplexMatrix (const ColumnVector&), + ComplexMatrix::ComplexMatrix (const ComplexRowVector&), + ComplexMatrix::ComplexMatrix (const ComplexColumnVector&)): + New constructors. + + * chMatrix.cc (charMatrix::charMatrix (const string_vector&)): + New constructor. + + Wed Jul 24 16:39:16 1996 John W. Eaton + + * LSODE.cc (do_integrate): Check to make sure that the state and + derivative vectors are the same size. + * DASSL.cc (do_integrate): Likewise. + + Sun Jul 14 17:30:37 1996 John W. Eaton + + * dMatrix.cc (Matrix::read, Matrix::write): Convert to use + iostreams and handler data format conversions. Delete old methods + that used stdio. + + * data-conv.h, data-conv.cc (oct_data_conv): New class. + + Fri Jul 12 13:52:44 1996 John W. Eaton + + * mach-info.h: Rename from float-fmt.h. + * mach-info.cc: Rename from float-fmt.cc. + Handle machine information using a singlton class. + * Makefile.in: Update appropriate lists. + + Tue Jul 9 11:49:10 1996 John W. Eaton + + * Array-flags.cc: Provide definitions for the flags even if + OCTAVE_SOURCE is not defined. + + * Array.h, Array2.h, Array3.h: BOUNDS_CHECKING now affects + operator(), not elem(). + * Array3.h: Move indexing methods here from Array3.cc. + + Mon Jun 24 02:30:05 1996 John W. Eaton + + * Array3.cc (checkelem): Fix typo in call to Array2::elem(). + + * Makefile.in (install-lib): Use INSTALL_PROGRAM instead of + INSTALL_DATA for shared libs. + + Thu Jun 6 09:59:06 1996 John W. Eaton + + * Quad.cc: Include lo-error.h here too. + + Mon May 27 12:41:07 1996 John W. Eaton + + * file-ops.h: Include sys/types.h here. + + Wed May 22 00:20:24 1996 John W. Eaton + + * chMatrix.cc (charMatrix::transpose): Provide definition. + + * Array-idx.h (maybe_delete_elements): Correctly compute number of + elements in result. + * Array2-idx.h (maybe_delete_elements): Likewise for number of + rows and columns in result. + + Tue May 21 23:46:09 1996 John W. Eaton + + * dbleQR.cc (QR::QR): Don't create result from to-be-deleted data. + * CmplxQR.cc (ComplexQR::ComplexQR): Likewise. + + Fri May 17 03:06:02 1996 John W. Eaton + + * Makefile.in (install-inc): Install in octincludedir, not includedir. + + Sun May 12 03:40:01 1996 John W. Eaton + + * Makefile.in (uninstall): Also delete shared library. + Split install into install-libs and install-includes. + (install-inc): If linkdir is a directory, leave it alone. + + * sun-utils.cc (MAIN__): Define for Linux/ELF systems. + + Thu May 2 20:19:01 1996 John W. Eaton + + * Array-idx.h (assign): Handle A(:) = X for A undefined or empty. + * Array2-idx.h (assign): Likewise. + + Tue Apr 30 05:43:06 1996 John W. Eaton + + * Array2.cc (Array2::range_error): New functions. + + * Array.h (class Array): elem() and operator() are now + equivalent, and do bounds checking by default. + * Array2.cc (class Array2): Likewise. + + Sat Apr 6 21:26:11 1996 John W. Eaton + + * Makefile.in (maintainer-clean, distclean): Also delete + stamp-picdir, stamp-shared, and pic directory. + (stamp-prereq): New target. + + Fri Mar 29 13:44:13 1996 John W. Eaton + + * NPSOL.h (NPSOL_options::set_option (const char *, int)): + New function. + + * Array.h, Array.cc (Array::range_error ()): New functions. + * Array.h (Array::checkelem): Use them. + + * base-lu.h, base-lu.cc: Parameterize based on types of matrix + elements too. + * dbleLU.h, dbleLU.cc, CmplxLU.h, CmplxLU.cc: Change to match. + + * MDiagArray2.h (MDiagArray2 (const MArray& a)): Delete. + + * Makefile.in (distclean): Delete so_locations, which is created + on DEC Alpha systems. + + Sat Mar 23 04:02:53 1996 John W. Eaton + + * Array.h (HEAVYWEIGHT_INDEXING): Do define this here if it is not + already defined. + + Fri Mar 22 23:53:58 1996 John W. Eaton + + * pathsearch.cc: Include config.h. + + Wed Mar 20 04:54:03 1996 John W. Eaton + + * Array2-idx.h (assign (Array2&, const Array2&)): Don't + allow M(I, J) = scalar if I or J is empty. + + * Array-idx.h: Delete Array2 and Array3 code (now in Array2-idx.h + and Array3-idx.h). + + Thu Mar 7 10:20:12 1996 John W. Eaton + + * lo-error.h: Make comments C friendly. + + Sun Mar 3 14:04:32 1996 John W. Eaton + + * Array2.h (make_unique): Move all indexing functions here. + * Array2.cc: From here. + + * Array.h, Array2.h (NO_BOUNDS_CHECKING): New macro to control + whether operator() calls elem or checkelem. + + * Array.h (make_unique): New private function. + Move all indexing functions here. + * Array.cc: From here. + + * pathsearch.cc (dir_path::find_all): Index tmp, don't dereference + it too. + + * Array-d.cc, Array-ch.cc, Array-C.cc, Array-s.cc, Array-str.cc, + Array-i.cc, MArray-i.cc, MArray-s.cc, MArray-d.cc, MArray-ch.cc, + MArray-C.cc: Include config.h. + + * Array.h, Array2.h, DiagArray2.h, Array3.h: + Don't define HEAVYWEIGHT_INDEXING here. + + Sat Mar 2 18:39:35 1996 John W. Eaton + + * base-lu.h, base-lu.cc: New files. + * Makefile.in: Add them to the appropriate lists. + * dbleLU.h, dbleLU.cc, CmplxLU.h, Cmplx.cc: Derive from base_lu. + + Fri Mar 1 08:30:58 1996 John W. Eaton + + * Array2.h, Array3.h, DiagArray2.h: New files, extracted from Array.h + * Array2-idx.h, Array3-idx.h: New files, extracted from Array-idx.h + * Array2.cc, Array3.cc, DiagArray2.cc: New files, from Array.cc. + * MArray2.h, MDiagArray2.h: New files, extracted from MArray.h. + * MArray2.cc, MDiagArray2.cc, MArray-defs.h: New files, from MArray.cc. + + * MArray.h (INSTANTIATE_MARRAY_FRIENDS): New macro. + (INSTANTIATE_MARRAY2_FRIENDS): Likewise. + (INSTANTIATE_MDIAGARRAY_FRIENDS): Likewise. + * MArray-C.cc, MArray-ch.cc, MArray-c.cc, MArray-i.cc, MArray-s.cc: + Simplify using new macros. + + Mon Feb 26 03:04:29 1996 John W. Eaton + + * Makefile.in (install): If $(includedir) ends in version string, + make link to name that does not include version info. + + * lo-ieee.cc: Include here. + + Fri Feb 16 20:52:34 1996 John W. Eaton + + * lo-ieee.cc, lo-ieee.h: New files. + * lo-mappers.cc, lo-mappers.h: New files. + * lo-utils.cc, lo-utils.h: New files. + * Makefile.in: Add them to the appropriate lists. + + Thu Feb 15 22:02:17 1996 John W. Eaton + + * dMatrix.cc (all_integers, too_large_for_float): New functions. + * CMatrix.cc (all_integers, too_large_for_float): New functions. + + * byte-swap.h, data-conv.h, data-conv.cc, float-fmt.h, + float-fmt.cc: New files. + * Makefile.in: Include them in the appropriate lists. + + Wed Feb 14 01:49:47 1996 John W. Eaton + + * dMatrix.cc (Qzval): New function. + + Tue Feb 13 12:41:54 1996 John W. Eaton + + * NPSOL.cc (NPSOL_options::set_option): Arg key is now string, not + char*. + + * DASSL.h, DASSL.cc: Do better management of temporary workspace. + Use F77_XFCN to call Fortran subroutine. + * dColVector.cc, CColVector.cc: Likewise. + * dRowVector.cc, CRowVector.cc: Likewise. + * NPSOL.h, NPSOL.cc: Likewise. + * CmplxCHOL.cc: Likewise. + * dbleCHOL.cc: Likewise. + * CMatrix.cc: Likewise. + * dMatrix.cc: Likewise. + * QPSOL.cc: Likewise. + * LSODE.cc: Likewise. + + Sun Feb 11 14:14:26 1996 John W. Eaton + + * dbleHESS.cc (HESS::init): Dimension of tau is n-1, not n+1. + + * dbleSCHUR.h, dbleSCHUR.cc: Do better management of temporary + workspace. Use F77_XFCN to call Fortran subroutine. + * CmplxAEPBAL.h, CmplxAEPBAL.cc: Likewise. + * CmplxSCHUR.h, CmplxSCHUR.cc: Likewise. + * dbleGEPBAL.h, dbleGEPBAL.cc: Likewise. + * dbleAEPBAL.h, dbleAEPBAL.cc: Likewise. + * CmplxHESS.h, CmplxHESS.cc: Likewise. + * CmplxSVD.h, CmplxSVD.cc: Likewise. + * dbleHESS.h, dbleHESS.cc: Likewise. + * dbleSVD.h, dbleSVD.cc: Likewise. + * EIG.h, EIG.cc; Likewise. + * CollocWt.cc: Likewise. + * NLEqn.cc: Likewise. + * Quad.cc: Likewise. + + Sat Feb 10 12:14:59 1996 John W. Eaton + + * dbleLU.h, dbleLU.cc: Do better management of temporary workspace. + Use F77_XFCN to call Fortran subroutine. + * CmplxLU.h, CmplxLU.cc: Ditto. + * dbleQR.h, dbleQR.cc: Ditto. + * CmplxQR.h, CmplxQR.cc: Ditto. + * dbleQRP.h, dbleQRP.cc: Ditto. + * CmplxQRP.h, CmplxQRP.cc: Ditto. + + * dir-ops.h (dir_entry::dir): Declare as void*, not DIR*. + (struct DIR): delete forward declaration. + (dir_entry::operator = (const dir_entry$)): Protect against + copying same object. + * dir-ops.cc: Cast dir appropriately. + + Fri Feb 9 16:12:44 1996 John W. Eaton + + * lo-error.cc: Moved to libcruft/misc. + * Makefile.in: Delete it from the list. + + * f77-fcn.c (f77_context, f77_exception_encountered): Delete + definitions (they have been moved to libcruft/misc/f77-extern.cc). + + * Array-flags.h: New file. + * Array-idx.h: Include it here. + * Makefile.in (MATRIX_INC): Add it to the list. + + * Array-flags.cc: Renamed from Array-ext.cc. + (liboctave_dfi_flag): Renamed from dfi_flag. + (liboctave_pcv_flag): Renamed from pcv_flag. + (liboctave_pzo_flag): Renamed from pzo_flag. + (liboctave_rre_flag): Renamed from rre_flag. + * Array-idx.h: Change all uses of dfi_flag, etc. + * Makefile.in (MATRIX_SRC): Change file name here too. + + * Makefile.in (LIBOCTAVE_LFLAGS, LIBOCTAVE_LIBS): New variables. + (stamp-shared): Use them here. + + Tue Feb 6 09:53:41 1996 John W. Eaton + + * cmd-hist.cc (command_history::ignore_entries): Delete default + argument value. + + Mon Feb 5 12:07:50 1996 John W. Eaton + + * CmplxAEPBAL.h, CmplxCHOL.h, CmplxDET.h, CmplxHESS.h, CmplxLU.h, + CmplxQR.h, CmplxQRP.h, CmplxSCHUR.h, CmplxSVD.h, dbleAEPBAL.h, + dbleCHOL.h, dbleDET.h, dbleGEPBAL.h, dbleHESS.h, dbleLU.h, + dbleQR.h, dbleQRP.h, dbleSCHUR.h, dbleSVD.h: + Clean up constructors, assigment operator. + + Sun Feb 4 03:12:04 1996 John W. Eaton + + * NPSOL.cc (do_minimize): Use F77_XFCN to call npsol. + Check f77_exception_encountered on return. + + * f77-fcn.c (f77_exception_encountered): New variable. + (F77_XFCN): Set it. + * f77-fcn.h: Provide declaration. + + * QPSOL.h (QPSOL_options::set_options): Renamed from copy(). + + * NPSOL.h (NPSOL_options::set_options): Renamed from copy(). + + * NLEqn.h (NLEqn_options::set_options): New function. + * Quad.h (Quad_options::set_options): Likewise. + + * LP.h (class LP): Add accessors for LP data. + + * NLEqn.h (NLEqn::n): Delete. + + * NLEqn.h (class NLEqn::n): Likewise. + + * NLP.h (class NLP): Add accessors for NLP data. + + * NPSOL.h (class NPSOL_options): Move constructors, set, and + access functions here. + * NPSOL.cc.cc: From here. + + * QLD.h (class QLD): Add destructor definition. + * Objective.h (class Objective): Likewise. + * ODEFunc.h (class ODEFunc): Likewise. + * NLFunc.h (class NLFunc): Likewise. + * NLEqn.h (class NLEqn): Likewise. + * NLConst.h (class NLConst): Likewise. + * LinConst.h (class LinConst): Likewise. + * LSODE.h (class LSODE_options): Likewise. + * CollocWt.h (class CollocWt): Likewise. + * Bounds.h (class Bounds): Likewise. + + * QLD.cc (QLD::set_default_options): Delete. + + * QP.h (QP): Add accessors for QP data. + Add copy constructor, operator =, and destructor definitions. + + * Range.h, Quad.h, QP.h, QLD.h, Objective.h, NLP.h, NLFunc.h, + NLConst.h, LinConst.h, LSODE.h, LP.h, FEGrid.h, EIG.h, DASSL.h, + DAEFunc.h, CollocWt.h, Bounds.h: + Clean up constructors, assigment operator. + + * dRowVector.cc (RowVector::transpose): Use magic of reference + counting to avoid duplicating the data immediately. + * dColVector.cc (ColumnVector::transpose): Likewise. + * CRowVector.cc (ComplexrowVector::transpose): Likewise. + * CColVector.cc (ComplexColumnVector::transpose): Likewise. + + Sat Feb 3 01:02:36 1996 John W. Eaton + + * prog-args.h (prog_args::option_argument): New enum. + + * f77-fcn.h: Rename from f77-uscore.h. + (F77_XFCN_ERROR, F77_XFCN): New macros. + * f77-fcn.c: New file. + * Makefile.in (SOURCES): Add it to the list. + + * ODEFunc.h: Clean up. + + * DASSL.cc, DASSL.h: New files. + * Makefile.in: Add them to the appropriate lists. + + * LSODE.cc, LSODE.h: New files. + * Makefile.in: Add them to the appropriate lists. + + * ODE.cc: Delete. + * Makefile.in (SOURCES): Remove from list. + + * base-de.h, DAE.cc: New files. + * Makefile.in: Add them to the appropriate lists. + * ODE.h: Only define interface for ODE classes. + * DAE.h: Only define interface for ODE classes. + + * LPsolve.cc (do_minimize): Print sorry not implemented message. + (LPsolve::set_default_options)): Delete + * LPsolve.h (class LPsolve): Add operator =, copy constructor, and + destructor. + + * LP.h (class LP): Add operator =, copy constructor, and destructor. + + * QPSOL.h (QPSOL::QPSOL (const QPSOL&)): New constructor. + (QPSOL::operator =): Call base class operator = instead of assuming + we know what to copy. + + * base-min.h (size): New function. + + * NLP.h (NLP::size): Delete. + (NLP::NLP (const NLP&)): New constructor. + (NLP::operator =): Call base class operator = instead of assuming + we know what to copy. + + * NPSOL.h, NPSOL.cc (NPSOL::option): Delete. + (class NPSOL): Add operator = and destructor. + + * NPSOL.h: Add NPSOL_options() to list of constructor initalizers. + + Fri Feb 2 22:52:55 1996 John W. Eaton + + * Makefile.in (liboctave.a): Depend on $(PICOBJ). + + Wed Jan 31 05:29:25 1996 John W. Eaton + + * dMatrix.cc (Givens, Sylvester, Matrix::expm): New functions. + * CMatrix.cc (Givens, Sylvester, ComplexMatrix::expm): Ditto. + + Mon Jan 29 00:00:12 1996 John W. Eaton + + * prog-args.h, prog-args.cc: New files. + * Makefile.in: Add them to lists. + + * getopt.h, getopt.c, getopt1.c: New files. + * Makefile.in: Add them to the lists. + + * oct-term.h, oct-term.cc: New files. + * Makefile.in: Add them to the lists. + + * str-vec.cc: New file. + * Makefile.in (SOURCES): Add it to the list. + + * file-ops.cc (oct_tmpnam): Move here from src/utils.cc. + + * tempname.c, tempnam.c: Move here from src directory. + * Makefile.in: Add to lists. + + Sun Jan 28 23:06:19 1996 John W. Eaton + + * cmd-hist.h, cmd-hist.cc: New files. + * Makefile.in: Add them to lists. + + Thu Jan 25 20:36:05 1996 John W. Eaton + + * oct-glob.h, oct-glob.cc: New files. + * Makefile.in: Add them to lists. + + Wed Jan 24 01:55:08 1996 John W. Eaton + + * pathsearch.h, pathsearch.cc: New files. + * Makefile.in: Add them to lists. + + * dir-ops.h, dir-ops.cc: New files. + * sysdir.h: Move here from src directory. + * Makefile.in: Add them to lists. + + * Array.h (Array::qsort): Return *this, not void. + * str-vec.h (string_vector::qsort): Likewise. + + * chMatrix.cc (row_as_string): Resize result to eliminate + unnecessary NULs. + + Tue Jan 23 00:40:58 1996 John W. Eaton + + * safe-xstat.hin, safe-xstat.cin, statdefs.h, file-ops.h, + file-ops.cc, filemode.c, mkdir.c, rmdir.c, rename.c: + Files moved here from src directory. + * Makefile.in: Add them to lists. Include appropriate rules. + + * acosh.c, asinh.c, atanh.c, erf.c, erfc.c, gamma.c, lgamma.c: + Use pointers, not references (this is C code!). + + * oct-math.h: New file. + * acosh.c, asinh.c, atanh.c, erf.c, erfc.c, gamma.c, lgamma.c: + Files moved here from src directory. + * Makefile.in: Add them to lists. + + Sun Jan 21 22:53:37 1996 John W. Eaton + + * idx-vector.cc (make_uniq): Fix major brain-o. + + * CmplxSCHUR.h, CmplxSCHUR.cc, dbleSCHUR.h, dbleSCHUR.cc: + Convert to use string class instead of char*. + + * str-vec.h, Array-str.cc: New files. + + * Array.h (Array::qsort): New function. + + Fri Jan 12 01:45:10 1996 John W. Eaton + + * Array.h: Nest ArrayRep class inside Array class. + Refer to ArrayRep, not ArrayRep. + Move all ArrayRep functions inline. + Don't declare other Array classes as friends of ArrayRep. + * Array.cc: Delete ArrayRep functions. + * Array-idx.h: Refer to ArrayRep, not ArrayRep. + + * Array-C.cc, Array-ch.cc, Array-d.cc, Array-i.cc, Array-s.cc: + Don't instantiate ArrayRep objects. + + Wed Jan 10 04:40:21 1996 John W. Eaton + + * chMatrix.cc (charMatrix::charMatrix (const string&)): + New constructor. + + Tue Jan 9 04:44:56 1996 John W. Eaton + + * dbleGEPBAL.cc (GEPBALANCE::init): Use string instead of char* + for balance_job arg. + * dbleAEPBAL.cc (AEPBALANCE::init): Likewise. + * CmplxAEPBAL.cc (ComplexAEPBALANCE::init): Likewise. + + * chMatrix.cc (row_as_string): Return string, not const char*. + + Mon Jan 8 03:20:01 1996 John W. Eaton + + * Makefile.in (clean): If $(SHARED_LIBS), also remove shared libs. + + * chMatrix.cc (row_as_string): Undo previous change. + + Sun Jan 7 19:50:16 1996 John W. Eaton + + * chMatrix.cc (row_as_string): Do memory management here. Caller + is expected to save string if necessary. + + Sat Jan 6 19:28:20 1996 John W. Eaton + + * Array.h (class DiagArray): Enable nested Proxy class for all + platforms. + + * Array.cc (Array::operator = (const Array&)): If rep == + a.rep, don't mess with count. + * Array.h (Array2& operator = (const Array2&)): Likewise, + don't do anything if reps are the same. + (Array3& operator = (const Array3&) + + * Array.h (ArrayRep::operator = (const ArrayRep&)): + Declare private with no definition to prevent misuse. + + * Array.cc (Array2::insert (const Array2&, int, int)): + Get range check right. + * dMatrix.cc (Matrix::insert (const RowVector&, int, int)): Ditto. + (Matrix::insert (const ColumnVector&, int, int)): Ditto. + (Matrix::insert (const DiagMatrix&, int, int)): Ditto. + * CMatrix.cc (ComplexMatrix::insert (const Matrix&, int, int)): Ditto. + (ComplexMatrix::insert (const RowVector&, int, int)): Ditto. + (ComplexMatrix::insert (const ColumnVector&, int, int)): Ditto. + (ComplexMatrix::insert (const DiagMatrix&, int, int)): Ditto. + (ComplexMatrix::insert (const ComplexRowVector&, int, int)): Ditto. + (ComplexMatrix::insert (const ComplexColumnVector&, int, int)): Ditto. + (ComplexMatrix::insert (const ComplexDiagMatrix&, int, int)): Ditto. + * dRowVector.cc (RowVector::insert (const RowVector&, int)): Ditto. + * dColVector.cc + (ColumnVector::insert (const ColumnVector&, int)): Ditto. + * CRowVector.cc + (ComplexRowVector::insert (const RowVector&, int)): Ditto. + (ComplexRowVector::insert (const ComplexRowVector&, int)): Ditto. + * CColVector.cc + (ComplexColumnVector::insert (const ColumnVector&, int)): Ditto. + (ComplexColumnVector::insert (const ComplexColumnVector&, int)): Ditto. + + * dMatrix.cc (Matrix::insert (const DiagMatrix&, int, int)): + Also fill in zeros, not just the diagonal. + + * CDiagMatrix.cc (ComplexDiagMatrix::fill (double, int, int)): + Use END parameter properly. + (ComplexDiagMatrix::fill (const Complex&, int, int)): Ditto. + * dDiagMatrix.cc (DiagMatrix::fill (double, int, int)): Ditto. + + * Array.h (ArrayRep::ArrayRep (void)): Set count to 1 here. + (ArrayRep::ArrayRep (T *, int)): Likewise. + * Array.cc (ArrayRep::ArrayRep (const ArrayRep&)): + Don't copy count. Set it to 1. + (ArrayRep::ArrayRep (int)): Set count to 1 here. + + * Array.h (Array::Array (T *, int)): After constructing rep, + don't set rep->count to 1 here (now handled by ArrayRep + constructors). + (Array::Array (void)): Ditto. + (Array::Array (int)): Ditto. + (Array::T& elem (int)): Ditto. + * Array-idx.h (Array::maybe_delete_elements (idx_vector&)): Ditto. + (Array2::maybe_delete_elements (idx_vector&, idx_vector&)): Ditto. + * Array.cc: (Array::Array (int, const T&)): Ditto. + (Array::resize (int)): Ditto. + (Array::resize (int, const T&)) :Ditto. + (Array::fortran_vec (void)): Ditto. + (Array2::resize (int, int)): Ditto. + (Array2::resize (int, int, const T&)): Ditto. + (DiagArray::resize (int, int)): Ditto. + (DiagArray::resize (int, int, const T&)): Ditto. + + Sun Dec 31 21:23:26 1995 John W. Eaton + + * Array-ch.cc: Rename from Array-c.cc. + * MArray-ch.cc: Rename from MArray-c.cc. + * chMatrix.cc: Rename from cMatrix.cc. + * chMatrix.h: Rename from cMatrix.h. + * Makefile.in (TI_SRC): Use new names here. + * mx-base.h: Likewise. + + Fri Dec 29 21:45:00 1995 John W. Eaton + + * Makefile.in: Handle shared libraries. + + Thu Dec 28 14:18:34 1995 John W. Eaton + + * CRowVector.cc (operator * (ComplexRowVector, ComplexMatrix)): + Correctly compute length of return value. Correct rows and + columns in zgemv call. + * dRowVector.cc (operator * (RowVector, Matrix)): Likewise. + + Tue Dec 26 00:37:57 1995 John W. Eaton + + * Makefile.in (stamp-picdir): New target. + (all): Depend on it. + + Sun Dec 24 03:10:41 1995 John W. Eaton + + * Makefile.in (INCLUDES): Remove QLD.h. + (SOURCES): Remove QLD.cc. + + Wed Dec 20 00:43:46 1995 John W. Eaton + + * dMatrix.cc (Matrix::inverse): New arg, force. + If force is nonzero, invert even if matrix is singular. + (ComplexMatrix::inverse): Likewise. + + * dRowVector.cc, mx-inlines.cc, dMatrix.cc, dDiagMatrix.cc, + dColVector.cc,MArray-C.cc, CmplxDET.cc, CRowVector.cc, CMatrix.cc, + CDiagMatrix.cc, CColVector.cc, Array-C.cc, CmplxDET.h, CMatrix.h: + Include "oct-cmplx.h" instead of . + + * mx-defs.h: Include oct-cmplx.h in place of forward declaration + for class Complex. + + * oct-cmplx.h: New file. + * Makefile.in (INCLUDES): Add it to the list. + + * idx-vector.cc (IDX_VEC_REP::idx_vector_rep): Don't redeclare len. + (IDX_VEC_REP::maybe_convert_one_zero_to_idx): Don't redeclare count. + (IDX_VEC_REP::freeze): Don't redeclare max_val and min_val. + (intcmp, sort_data, make_uniq, copy_data, IDX_VEC_REP::print): + Avoid g++ bugs. + + Tue Nov 14 14:24:16 1995 John Eaton + + * Array-idx.h (maybe_delete_elements): Give useful error message. + + * dbleSCHUR.cc, dbleSVD.cc: Include iostream.h. + + Mon Nov 13 08:35:07 1995 John Eaton + + * CDiagMatrix.cc (inverse): Return retval, not *this. + * dDiagMatrix.cc (inverse): Use same method as for Complex case. + + Sat Nov 4 05:06:12 1995 John Eaton + + * Array.h, Array.cc, Array-idx.h [HEAVYWEIGHT_INDEXING]: Keep + index vector object with Array, not ArrayRep. + + Fri Nov 3 06:52:38 1995 John Eaton + + * Array-idx.h (assign (Array2&, const Array2&): Don't fail + if index is a colon and resizing is maybe needed. + + Tue Oct 31 17:40:01 1995 John Eaton + + * idx-vector.cc (IDX_VEC_REP::is_colon_equiv): Don't return true + if we have a vector of 1's. + + * Array-idx.h (assign (Array2&, Array2&): If lhs has no + current orientation, require index and rhs to conform unless + do_fortran_indexing flag is set. + + Sun Oct 15 23:32:08 1995 John Eaton + + * Array-d.cc, Array-C.cc, mx-base.h, mx-inlines.cc, dDiagMatrix.h, + CDiagMatrix.h, CMatrix.cc, CMatrix.h, dMatrix.h, mx-defs.h, + cMatrix.h, MArray.cc, MArray.h, MArray-i.cc, MArray-c.cc, + MArray-s.cc, Array.h, Array.cc, Array-c.cc, Array-i.cc, + Array-s.cc, cMatrix.cc, Array-idx.h, dMatrix.cc: + Massive changes to support additional data types. Only charMatrix + is currently used in Octave. + + Thu Oct 12 02:22:36 1995 John Eaton + + * Array.cc (Array2::insert (Array2&, int, int): New function. + * CMatrix.cc (ComplexMatrix::insert (ComplexMatrix&, int, int): + Simply call Array2 version. + * dMatrix.cc (Matrix::insert (Matrix&, int, int): Similarly, just + call Array2 version. + + * Array-C.cc, Array-d.cc: Instantiate new assign functions too. + + * Array.h, Array.cc: Massive overhaul to support new way of + handling indexing. + * idx-vector.h, idx-vector.cc: Likewise. + * Array-ext.cc, Array-idx.h: New files. + * Makefile.in: Add them to the appropriate lists. + + Wed Oct 11 00:49:58 1995 John Eaton + + * Range.cc (nelem_internal): Use tfloor here, not round. + + Sun Oct 8 18:21:02 1995 John Eaton + + * idx-vector.h, idx-vector.cc: New files, moved from ../src. + * Makefile.in (SOURCES, INCLUDES): Include them in the lists. + + Sat Oct 7 19:07:02 1995 John Eaton + + * CMatrix.cc (pseudo_inverse): Avoid bogus g++ warning. + + * Array.h: Move simple member functions here. + * Array.cc: From here. + + Fri Oct 6 00:36:04 1995 John Eaton + + * Range.cc (tfloor, tceil, round): New static functions. + (Range::nelem_internal): Rewrite to use better method. + + * dbleSVD.h (SVD::type): New item, sigma_only. + (type_computed): New var. + * dbleSVD.cc (left_singular_matrix, right_singular_matrix): + Handle possible error condition. + (init): Allow for SVD::sigma_only, save type computed. + * CmplxSVD.cc (left_singular_matrix, right_singular_matrix): + Handle possible error condition. + (init): Allow for SVD::sigma_only, save type computed. + + Wed Oct 4 15:33:35 1995 John Eaton + + * Nearly all non-matrix .h and .cc files: + Move short function bodies into class declarations for inlining. + Generally clean up. + + * base-min.h: New file. + * LP.h (class LP): Derive from base_minimizer. + * QLP.h (class QLP): Derive from base_minimizer. + * NLP.h (class NLP): Derive from base_minimizer. + * Makefile.in (INCLUDES): Add base-min.h to the list. + + * Makefile.in (SOURCES): Delete DAEFunc.cc, LP.cc, NLConst.cc, + NLFunc.cc, Objective.cc and QP.cc from list. + + Tue Sep 26 04:14:23 1995 John Eaton + + * dbleSCHUR.cc (select_ana): Remove name of unused parameter. + (SCHUR::SCHUR): Delete unused parameter ord. + * CmplxSCHUR.h (ComplexSCHUR::CmplxSCHUR): Likewise. + + * CRowVector.cc + (ComplexRowVector::operator+ (const Complex&, const RowVector&), + (ComplexRowVector::operator- (const Complex&, const RowVector&), + (ComplexRowVector::operator* (const Complex&, const RowVector&), + (ComplexRowVector::operator/ (const Complex&, const RowVector&)): + Actually do something. + + * dMatrix.cc (Matrix::lssolve (ComplexMatrix&)): Use dummy vars. + (Matrix::lssolve (ComplexMatrix&, int&)): Likewise. + (Matrix::lssolve (ComplexMatrix&, int&, int&)): Likewise. + + * Quad.cc (Quad_options::Quad_options (double, double)): New function. + * (Quad::Quad (integrand_fcn, double, double): Properly initialize + tolerances. + + * DAE.cc (ddassl_f, ddassl_j): Remove names of unused parameters. + * LPsolve.cc (LPsolve::minimize): Likewise. + * NPSOL.cc (NPSOL::option, npsol_confun, npsol_objfun): Likewise. + * ODE.cc (lsode_f, lsode_j): Likewise. + * QPSOL.cc (qphess): Likewise. + + Fri Sep 22 04:14:51 1995 John Eaton + + * dMatrix.cc: Include . + + * Array.cc: Try harder to avoid warnings from gcc in functions + that return bogus values after calling the error handler. + + Thu Sep 14 00:56:00 1995 John Eaton + + * Makefile.in: Use `ifndef omit_deps', not `ifndef $(omit_deps)'. + + * Makefile.in (TEMPLATE_SRC): Add Array-i.cc to the list. + + Tue Aug 22 00:41:06 1995 John Eaton + + * DAE.cc (dassl_f): Add UNUSED attribute for unused parameters. + (dassl_j): Likewise. + + * DAE.cc, NLEqn.cc, NPSOL.cc, ODE.cc, CColVector.cc, CMatrix.cc, + dColVector.cc, dMatrix.cc, CmplxLU.cc, dbleLU.cc, QPSOL.cc, + Array.cc, CollocWt.cc, FEGrid.h, LinConst.h: + Update for change in for loop variable scope for gcc 2.7.0. + + Mon Aug 21 19:34:53 1995 John Eaton + + * Makefile.in: Only include dependency files if $(omit_deps) is + not set. + + Mon May 1 13:26:00 1995 John Eaton (jwe@bullwinkle.che.utexas.edu) + + * dbleSCHUR.h dbleSVD.h dbleQRP.h dbleQR.h dbleHESS.h dbleLU.h + dbleCHOL.h dbleGEPBAL.h dbleAEPBAL.h dbleDET.h dDiagMatrix.h + dColVector.h dMatrix.h dRowVector.h Quad.h Range.h QPSOL.h QLD.h + ODEFunc.h QP.h Objective.h NPSOL.h ODE.h NLEqn.h NLFunc.h + NLConst.h LinConst.h LPsolve.h LP.h FSQP.h FEGrid.h EIG.h + DAEFunc.h CollocWt.h DAE.h CmplxSVD.h CmplxQRP.h CmplxSCHUR.h + CmplxHESS.h CmplxDET.h CmplxLU.h CmplxQR.h CmplxCHOL.h + CmplxAEPBAL.h CRowVector.h CDiagMatrix.h Bounds.h CColVector.h + CMatrix.h dbleSCHUR.cc dbleSVD.cc dbleQRP.cc dbleQR.cc + dbleGEPBAL.cc dbleLU.cc dbleHESS.cc dbleDET.cc dbleCHOL.cc + dbleAEPBAL.cc dColVector.cc dRowVector.cc dMatrix.cc + dDiagMatrix.cc QPSOL.cc Range.cc Quad.cc QP.cc ODEFunc.cc QLD.cc + Objective.cc NLEqn.cc ODE.cc NPSOL.cc NLFunc.cc LPsolve.cc + NLConst.cc LinConst.cc FSQP.cc FEGrid.cc LP.cc DAE.cc EIG.cc + CollocWt.cc DAEFunc.cc CmplxSVD.cc CmplxSCHUR.cc CmplxQRP.cc + CmplxLU.cc CmplxQR.cc CmplxHESS.cc CmplxDET.cc CmplxCHOL.cc + CmplxAEPBAL.cc CRowVector.cc CColVector.cc CMatrix.cc + CDiagMatrix.cc Bounds.cc MArray.h MArray.cc Array.cc Array.h + NLP.h: Use pragma interface/implementation. Don't surround + contents in extern "C++". + * lo-error.h sun-utils.h: Don't surround contents in extern "C++". + + Tue Apr 11 10:59:24 1995 John Eaton + + * f77-uscore.h (F77_FCN): Allow for possibility of uppercase + identifiers. + * utils.cc dbleSVD.cc dbleSCHUR.cc dbleQRP.cc dbleQR.cc dbleLU.cc + dbleHESS.cc dbleGEPBAL.cc dbleAEPBAL.cc dRowVector.cc + dColVector.cc QLD.cc CmplxSVD.cc CmplxCHOL.cc CmplxHESS.cc + CmplxQR.cc CmplxQRP.cc QPSOL.cc CmplxAEPBAL.cc CmplxLU.cc + CmplxSCHUR.cc dMatrix.cc CColVector.cc CRowVector.cc dbleCHOL.cc + CollocWt.cc NLEqn.cc EIG.cc DAE.cc ODE.cc CMatrix.cc NPSOL.cc + Quad.cc: Change usage of F77_FCN to match new definition + + * utils.cc dbleSVD.cc dbleSCHUR.cc dbleQRP.cc dbleQR.cc dbleLU.cc + dbleHESS.cc dbleGEPBAL.cc dbleAEPBAL.cc dRowVector.cc + dColVector.cc QLD.cc CmplxSVD.cc CmplxCHOL.cc CmplxHESS.cc + CmplxQR.cc CmplxQRP.cc QPSOL.cc CmplxAEPBAL.cc CmplxLU.cc + CmplxSCHUR.cc dMatrix.cc CColVector.cc CRowVector.cc dbleCHOL.cc + CollocWt.cc NLEqn.cc EIG.cc DAE.cc ODE.cc CMatrix.cc NPSOL.cc + Quad.cc: Where appropriate, declare Fortran subroutines to take + args by reference instead of pointer. Change all callers. + + Sun Apr 9 20:11:56 1995 John Eaton + + * MArray.h (MArray2::~MArray2, MDiagArray::~MDiagArray): New + functions. Make += and -= operators friend functions. + + * Array.h (Array2::~Array2, Array3::~Array3, + DiagArray::~DiagArray): New functions. + + Wed Apr 5 21:21:13 1995 John Eaton + + * Makefile.in (EXTRAS): Don't distribute mx-kludge.cc. + (MATRIX_INC): Don't distribute mx-kludge.h. + + * CColVector.h CColVector.cc CDiagMatrix.h CDiagMatrix.cc + CMatrix.h CMatrix.cc CRowVector.h CRowVector.cc dColVector.h + dColVector.cc dDiagMatrix.h dDiagMatrix.cc dMatrix.h dMatrix.cc + dRowVector.h dRowVector.cc: + Derive classes from MArray, MArray2, and MDiagArray, not Array, + Array2, and DiagArray2. + Don't use functions defined in mx-kludge.cc for arithmetic + like-type operations on arrays. + + * MArray.cc: Use the classes defined here like-type mathematical + operations on Array objects. Abuse CPP more. + * Makefile.in (TEMPLATE_SRC): Add it to the list. + (EXTRAS): Delete it from this list. + + * MArray-C.cc, MArray-d.cc: New files. + * Makefile.in (TI_SRC): Add them to the list. + + Tue Apr 4 14:13:46 1995 John Eaton + + * mx-kludge.cc: Abuse CPP even more. + + Mon Apr 3 21:05:30 1995 John Eaton + + * Objective.h (objective_function): Add missing const. + (gradient_function): Likewise. + + * CColVector.h CColVector.cc CDiagMatrix.h CDiagMatrix.cc + CMatrix.h CMatrix.cc CRowVector.h CRowVector.cc dColVector.h + dColVector.cc dDiagMatrix.h dDiagMatrix.cc dMatrix.h dMatrix.cc + dRowVector.h dRowVector.cc: + Reorganize to declare and define friends where they should be, + based on the use of private constructors. + + Fri Mar 31 10:09:40 1995 John Eaton + + * CRowVector.h (linspace): Add declaration. + * dRowVector.h (linspace): Likewise. + + * dMatrix.cc (Matrix::inverse, Matrix::determinant, Matrix::solve): + Force result of rcond + 1.0 to be stored. + * CMatrix.cc (ComplexMatrix::inverse, ComplexMatrix::determinant, + ComplexMatrix::solve): Likewise. + + See ChangeLog.1 in the top level directory for earlier changes. diff -cNr octave-3.4.0/etc/OLD-ChangeLogs/scripts-ChangeLog octave-3.4.1/etc/OLD-ChangeLogs/scripts-ChangeLog *** octave-3.4.0/etc/OLD-ChangeLogs/scripts-ChangeLog 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/OLD-ChangeLogs/scripts-ChangeLog 2011-06-15 11:13:48.000000000 -0400 *************** *** 0 **** --- 1,17465 ---- + 2011-04-13 David Bateman + + * plot/colstyle.m : New function. + * plot/module.mk plot_FCN_FILES) : Add it here. + + 2011-04-12 Ben Abbott + + * miscellaneous/getappdata.m: If no property name is provided, return + a structure representing the appdata. + + 2011-04-12 Marco Caliari + + * general/quadgk.m: Fix problem with -Inf bound on integral (bug + #33055). + + 2011-04-11 Ben Abbott + + * miscellaneous/getappdata.m: If appdata propery does not exist, return + an empty matrix. + + 2011-04-08 Rik + + * linear-algebra/cond.m, linear-algebra/expm.m, linear-algebra/logm.m, + linear-algebra/null.m, linear-algebra/orth.m, linear-algebra/rank.m, + linear-algebra/rref.m: Improve docstrings. + + 2011-04-06 Rik + + * miscellaneous/pack.m: Improve docstring. + + 2011-04-06 Rik + + * signal/module.mk: Make spectral density helper functions private. + (rectangle_sw, rectangle_lw, triangle_sw, triangle_lw) + + 2011-04-06 Rik + + * optimization/fminunc.m, plot/isocolors.m, plot/isonormals.m: + Clean up operator and function indices. + + 2011-04-04 Rik + + * miscellaneous/symvar.m, miscellaneous/warning_ids.m, + optimization/fminunc.m: Spellcheck documentation for 3.4.1 release. + + 2011-04-04 Rik + + * @ftp/mget.m, audio/loadaudio.m, audio/playaudio.m, audio/record.m, + audio/saveaudio.m, general/circshift.m, general/cumtrapz.m, + general/dblquad.m, general/quadgk.m, general/quadl.m, + general/shiftdim.m, general/triplequad.m, geometry/convhull.m, + geometry/delaunay3.m, geometry/dsearch.m, geometry/dsearchn.m, + geometry/tsearchn.m, geometry/voronoi.m, image/brighten.m, + io/textscan.m, miscellaneous/getappdata.m, + miscellaneous/namelengthmax.m, miscellaneous/rmappdata.m, + miscellaneous/setappdata.m, miscellaneous/swapbytes.m, + miscellaneous/symvar.m, miscellaneous/warning_ids.m, + pkg/private/get_forge_pkg.m, plot/clabel.m, plot/colorbar.m, + plot/cylinder.m, plot/daspect.m, plot/linkprop.m, plot/pbaspect.m, + plot/plotyy.m, plot/private/__add_default_menu__.m, plot/sphere.m, + plot/subplot.m, plot/view.m, polynomial/polyreduce.m, + polynomial/ppder.m, polynomial/ppint.m, signal/periodogram.m, + sparse/colperm.m, sparse/nonzeros.m, sparse/spaugment.m, + sparse/speye.m, sparse/treelayout.m, sparse/treeplot.m, + statistics/base/kurtosis.m, statistics/base/mean.m, + statistics/base/meansq.m, statistics/base/median.m, + statistics/base/mode.m, statistics/base/moment.m, + statistics/base/ranks.m, statistics/base/skewness.m, + statistics/base/statistics.m, statistics/base/var.m, time/datenum.m, + time/datetick.m, time/now.m: Grammarcheck m-files for 3.4.1 release. + + 2011-04-04 Rik + + * deprecated/module.mk, general/module.mk: Deprecate perror, strerror + functions. + + 2011-04-02 Rik + + * statistics/base/prctile.m, statistics/base/quantile.m: Improve + docstrings. + + 2011-03-31 Rik + + * pkg/module.mk, pkg/pkg.m, pkg/private/get_forge_pkg.m: Add + documentation for '-forge' option (bug #32464). Make get_forge_pkg + a private function. + + 2011-03-31 Marco Caliari + + * sparse/spdiags.m: Treat empty vector (1x0 or 0x1) the same as diag(). + + 2011-03-31 Rik + + * statistics/base/cor.m: Increase tolerance of %!tests using random + data to guarantee passage. + + 2011-03-31 Rik + + * deprecated/module.mk, deprecated/cquad.m: Add deprecated entry for + cquad() pointing to quadcc(). + + 2011-03-31 Rik + + * statistics/base/cor.m: Fix operation with only single input + (bug #32961) + + 2011-03-29 John W. Eaton + + * special-matrix/wilkinson.m: Update test for 'wilkinson(1)' to reflect + changes to diag(). + + 2011-03-29 Michael Creel + + * statistics/base/ols.m: Fix erroneous degrees of freedom when + computing the covariance estimator (closes: bug #32892). + + 2011-03-28 Rik + + * linear-algebra/cross.m, plot/ishold.m, signal/fftfilt.m: Improve + docstrings. + + 2011-03-26 Robert T. Short + + * signal/ifftshift.m: Add tests. + + 2011-03-26 Robert T. Short + + * signal/fftshift.m: Add tests. + + 2011-03-21 Rik + + * signal/ifftshift.m: Fix bug #32873, ifftshift fails. + + 2011-03-19 Rik + + * general/module.mk, statistics/base/module.mk: Move runlength.m + to statistics/base directory. + * statistics/base/runlength.m: Add input validation and tests. + Improve docstring. + + 2011-03-19 Rik + + * statistics/models/logistic_regression.m: Do not split function + declaration with line continuation. + * statistics/models/private/logistic_regression_likelihood.m, + statistics/models/private/logistic_regression_derivatives.m: Make + helper functions private. + * statistics/models/module.mk: Make helper functions private. + + 2011-03-19 Rik + + * plot/isocolors.m, plot/isonormals.m, plot/isosurface.m: Improve + docstrings. + + 2011-03-19 Rik + + * miscellaneous/dump_prefs.m: Close @deftypefn macro left open. + + 2011-03-19 Rik + + * miscellaneous/dump_prefs.m: Improve docstring. + + 2011-03-19 Rik + + * plot/daspect.m, plot/pbaspect.m: Use newline between @deftypefnx + macros to get correct appearance. + + 2011-03-19 Ben Abbott + + * plot/patch.m: Add demo. + * geometry/trisurf.m: Set default edgecolor as Matlab does. Add demos. + + 2011-03-18 Rik + + * plot/uigetdir.m, plot/uigetfile.m, plot/uimenu.m, plot/uiputfile.m: + Improve docstrings. Check for error conditions (missing FLTK, wrong + number of arguments) at top of code. + + 2011-03-18 Rik + + * general/curl.m, general/divergence.m, linear-algebra/cross.m: + Update seealso cross references. + + 2011-03-18 Rik + + * help/get_first_help_sentence.m: Improve docstring. Add tests. + + 2011-03-17 Rik + + * scripts/sparse/svds.m: Fix bug #32818, nonconformant arguments + in svds. + + 2011-03-17 Rik + + * io/fileread.m: Add seealso reference to sscanf. + + 2011-03-05 Ben Abbott + + * plot/colorbar.m: Allow location to be specified as a property. + + 2011-03-03 Rik + + * miscellaneous/bunzip2.m, miscellaneous/bzip2.m, + miscellaneous/gunzip.m, miscellaneous/gzip.m, miscellaneous/unpack.m, + miscellaneous/untar.m, miscellaneous/unzip.m: Improve docstrings + + * miscellaneous/tar.m, miscellaneous/zip.m: Check for invalid arguments + at the top, rather than bottom, of code. + + 2011-03-03 Rik + + * miscellaneous/gzip.m: Use same functional form as bzip, zip, etc. + * miscellaneous/private/__xzip__.m: Allow use of character arrays of + filenames. + * miscellaneous/unpack.m: Allow use of character arrays of filenames. + Add capability for gunzip to work recursively on a directory. + Fix bug where unzip returned the archive name in addition to the list + of files unzipped. + + 2011-03-03 Rik + + * deprecated/module.mk, general/module.mk: Deprecate is_duplicate_entry. + + 2011-03-03 Rik + + * miscellaneous/movefile.m: Fix copy&paste bug affecting Windows + platform. (bug #32443) + + 2011-03-02 Rik + + * statistics/distributions/unidcdf.m, + statistics/distributions/unidinv.m, statistics/distributions/unidpdf.m, + statistics/distributions/unidrnd.m: Correctly refer to distribution as + discrete uniform in docstring. + + 2011-03-02 Konstantinos Poulios + + * plot/subplot.m: Remove redundant calls. + For gnuplot set "activepositionproperty" to "position" always. + + 2011-03-01 Rik + + * general/isscalar.m, general/isvector.m: Use modern warning function + rather than deprecated built-in variable to set warning state. + + 2011-02-28 Rik + + * general/iscolumn.m, general/isrow.m: Add 2 new utility functions + to check for row or column vector. + + 2011-02-28 Rik + + * sparse/treeplot.m: Use 'o' plot style as default for nodes + + 2011-02-27 Rik + + * special-matrix/pascal.m: Fix incorrect statement in documentation + for pascal.m. Bug #32523. + + 2011-02-26 Andy Buckle + + * testfun/demo.m, testfun/example.m: Allow command forms of example + and demo. + + 2011-02-26 Robert T. Short + + * polynomial/polyval.m: Compute offset/normalization only when needed. + + 2011-02-26 Robert T. Short + + * polynomial/polyval.m: Minor simplification in polynomial evaluation. + + 2011-02-22 Rik + + * general/bitcmp.m, general/bitget.m, general/bitset.m, + miscellaneous/license.m, special-matrix/pascal.m, + statistics/base/quantile.m, statistics/tests/cor_test.m, + strings/substr.m: Uppercase variables in error strings. + + 2011-02-25 Jordi Gutiérrez Hermoso + + * miscellaneous/warnings_ids.m: Add a warning description for + Matlab-style short-circuiting + + 2011-02-24 Ben Abbott + + * plot/subplot.m: Document using INDEX as a vector. + + 2011-02-24 Robert T. Short + + * polynomial/polyval.m: Properly evaluate constant polynomials. + + 2011-02-24 John W. Eaton + + * strings/strchr.m: Avoid implicit string to number conversion. + Bug #32546. From Kim Hansen . + + 2011-02-22 Ben Abbott + + * plot/subplot.m: Use new looseinset property introduced by changeset + 12467. Decrease spacing between subplots rows / columns. Clean up and + add comments. + + 2011-02-22 Rik + + * io/strread.m, plot/whitebg.m, strings/regexptranslate.m, + testfun/runtests.m: Use single quotes around regexp patterns. + + 2011-02-20 Karsten Trulsen + + * signal/fftshift.m: Fix broken function. Bug 32442. + + 2011-02-21 Carlo de Falco + + * pkg/get_forge_pkg.m: Fix typo in new PCRE style regular expression. + + 2011-02-20 Thomas Weber + + * miscellaneous/warning_ids.m: Document + Octave::autoload-relative-file-name warning. + + 2011-02-19 Rik + + * io/dlmwrite.m, pkg/get_forge_pkg.m, plot/__gnuplot_ginput__.m, + plot/__go_draw_axes__.m, testfun/runtests.m: Use PCRE regular + expressions to simplify scripts. + + 2011-02-19 Ben Abbott + + * plot/__print_parse_opts__.m, plot/private/__ghostscript__.m: Improve + warnings when shell utilties are missing. + + 2011-02-19 Thorsten Meyer + + * general/interp1.m: Fix tests according to spline update of + changeset 07e102029d2a (see bug 31780) + + 2011-02-17 Kai Habel + + * plot/private/__add_default_menu__.m: Rename fltk_gui_mode here + as well. + + 2011-02-16 Ben Abbott + + * plot/subplot.m: Decrease spacing between subplots rows / columns. + Clean up and add comments. + + 2011-02-16 Thorsten Meyer + + * statistics/base/mean.m: Fix tests according to changeset 0f21f258aa17. + + 2011-02-15 Konstantinos Poulios + + * plot/__fltk_print__.m: Forward pipeline to drawnow instead of + invoking a process here. Bug #32319. + + 2011-02-14 Rik + + * plot/semilogxerr.m, plot/semilogyerr.m, special-matrix/pascal.m, + special-matrix/rosser.m, special-matrix/wilkinson.m: Add missing + commas in @seealso macro. + + 2011-02-14 David Bateman + + * testfun/test.m: More explicit error message when source of a + dynamically linked function is not found. Bug #30341. + + 2011-02-14 David Bateman + + * plot/private/__scatter__.m: Correctly set the facevertexcdata and + faces properties in the patch objects. Bug #31801. + + 2011-02-14 Marco Caliari + + * polynomial/spline.m: Allow length(x) == 2 and unsorted x values. + + 2011-02-13 Konstantinos Poulios + + * plot/legend.m: Ignore outerposition. + + 2011-02-10 Ben Abbott + + * plot/legend.m, plot/plotyy.m, plot/sombrero.m, plot/shading.m, + plot/text.m: Modify demo scripts to allow conventient conversion + to Matlab compatible syntax. + + 2011-02-10 John W. Eaton + + * statistics/base/mean.m: Also accept logical values. + + 2011-02-10 Carlo de Falco + + * linear-algebra/gmres.m: New file implementing the GMRES + iterative method for solving linear systems. + + 2011-02-08 Ben Abbott + + * plot/__go_draw_axes__.m: Properly set fontspec for legends. + + 2011-02-05 David Bateman + + * plot/legend.m: Allow the location and orientation to be set + without modifiying the legend keys. + * plot/legend.m: Add padding to legend positions. Fix for + outerposition for southeastoutside and southwestoutside. + Bug #32374. + + 2011-02-06 Ben Abbott + + * plot/legend.m: Align legends to plot box, add demo. Bug 32373. + * plot/legend.m: "legend off" should delete the legend object. + + 2011-02-06 David Bateman + + * plot/legend.m : Delete old legend before probing the position and + outerposition. Reshape lpos correct if the legend locqtion is + "southeast". Bug #32343. + + 2011-02-06 Ben Abbott + + * plot/legend.m: Add demo for replacing existing legend. + + 2011-02-06 John W. Eaton + + * general/circshift.m: New tests. + + 2011-02-05 Rik + + * miscellaneous/version.m, path/matlabroot.m: Correct spelling. + + 2011-02-05 Rik + + * help/help.m, linear-algebra/onenormest.m, plot/graphics_toolkit.m, + plot/pie3.m, plot/view.m, signal/periodogram.m: Grammarcheck docstrings. + + 2011-02-05 Ben Abbott + + * plot/legend.m: Add demo for inline keys created by two plot commands. + + 2011-02-05 David Bateman + + Bug #32022 and #32343. + + * plot/legend.m (updatelegend): Don't flip plots when resetting the + legend. Use unwind_protect to ensure that the resursive flag is reset + in case of an error. + (getlegenddata): Remove this function and replace its use with the + function __getlegenddata__. + * plot/privata/__getlegenddata__.m: New function + * plot/module.mk (plot_PRIVATE_FCN_FILES): Add it here. + * plot/private/__plt__.m: Set initial values of hlgnd and tlgnd + if a legend exists already. + + 2011-02-02 Rik + + * sparse/svds.m: Use testif to only run some sparse tests when + necessary libraries are installed. + + 2011-02-01 Ben Abbott + + * plot/__gnuplot_has_feature__.m: Don't throw an error if gnuplot + isn't installed. + + 2011-02-01 John W. Eaton + + * plot/scatter3.m: Pass h to set, not ax. + + 2011-01-31 John W. Eaton + + * plot/private/__axis_label__.m: Don't call __fltk_redraw__. + + 2011-01-31 John W. Eaton + + * plot/__fltk_ginput__.m: Remove line that should have been + removed in previous change. + + 2011-01-31 Rik + + * plot/private/__gnuplot_has_terminal__.m: Simplify regular expression + to eliminate word-boundary assertion. + + 2011-01-30 Rik + + * deprecated/module.mk, optimization/module.mk: Deprecate glpkmex + function. + + 2011-01-30 John W. Eaton + + * plot/__gnuplot_drawnow__.m: Rename from gnuplot_drawnow.m + Update doc string and error message with new name. + * plot/module.mk (plot_FCN_FILES): Update list. + + 2011-01-30 Petr Mikulik + + * plot/__fltk_ginput__.m (ginput_aggregator): New arg, button. + Change all uses. + (ginput_keypressfcn): Save keypress info. + + 2011-01-29 Rik + + * plot/gnuplot_binary.in: Improve docstring + + 2011-01-29 Rik + + * general/accumarray.m: Add seealso reference to accumdim. + + 2011-01-29 Rik + + * set/powerset.m: Improve docstring. + + 2011-01-29 Rik + + * miscellaneous/copyfile.m, miscellaneous/movefile.m, + miscellaneous/tempname.m: Improve docstrings + + 2011-01-29 Rik + + * deprecated/module.mk, image/module.mk: Deprecate saveimage.m. + + 2011-01-29 Rik + + * optimization/glpkmex.m: Add seealso reference to glpk. + + 2011-01-29 Rik + + * miscellaneous/compare_versions.m: Allow only "==" equality operator. + Add input validation tests. Improve docstring. + + * miscellaneous/ver.m, miscellaneous/version.m, path/matlabroot.m: + Improve docstring. + + 2011-01-29 Ben Abbott + + * miscellaneous/edit.m: As most editors open their own window, change + mode to "async". + + 2011-01-28 Ben Abbott + + * plot/__fltk_print__.m, plot/print.m: Fix {eps,ps,pdf}latexstandalone + printing for fltk, bug 32262. + + 2011-01-28 John W. Eaton + + * sparse/svds.m: Use "test" instead of "testif HAVE_ARPACK". + + 2011-01-27 Rik + + * plot/whitebg.m: Improve docstring. + + 2011-01-27 Rik + + * geometry/trimesh.m, geometry/triplot.m, geometry/trisurf.m: Add + undocumented function trisurf to documentation. Update seealso + strings. + + 2011-01-27 John W. Eaton + + * general/rat.m: Move @seealso inside @deftypefn in docstring. + + 2011-01-27 Kai Habel + + * plot/uigetfile.m, plot/uiputfile.m, plot/uigetdir.m: Check + for __fltk_uigetfile__. + + 2011-01-27 John W. Eaton + + * Makefile.am (check-missing-semicolon): New rule. + + 2011-01-26 Rik + + * scripts/general/interp1.m, scripts/general/interp2.m, + scripts/general/interp3.m, scripts/general/interpn.m: Use em-dash + rather than en-dash. + * scripts/miscellaneous/mkoctfile.m: Use @code to prevent option + turning to en-dash. + + 2011-01-26 John W. Eaton + + * mkdoc: Untabify. + + * mkdoc, gethelp.cc: Strip trailing whitespace. + + 2011-01-26 John W. Eaton + + * general/curl.m: Simplify processing of outptut values. + + 2011-01-26 Olaf Till + + * pkg/pkg.m: Export environment variables MKOCTFILE and + OCTAVE_CONFIG for configure and make, to configure also OCTAVE. + + 2011-01-24 John W. Eaton + + * audio/lin2mu: Doc fix. + + * audio/mu2lin.m: Doc fix. + For compatibility with Matlab, change default for N to be 8. + + 2011-01-22 Rik + + * miscellaneous/info.m: Use reference to bug tracker rather than + octave-dev mailing list. + + 2011-01-22 Ben Abbott + + * plot/meshc.m: Add note: gnuplot does not support filled 3D patches, + or mixing non-filled contours with filled surfaces. + * plot/subplot.m: Set "box" to "on" by default (same as Matlab). + * plot/cylinder.m: Remove console output from demo. + + 2011-01-22 Konstantinos Poulios + + * plot/plotyy.m: Set box property to off to allow both y-axes colors + to be visible for OpenGL backends. + + 2011-01-22 John W. Eaton + + * plot/private/__scatter__.m: Don't accept "filled" as a color. + * plot/scatter.m: Doc fix. + Bug #32204. + + 2011-01-21 Konstantinos Poulios + + * plot/xlabel.m, plot/ylabel.m, plot/zlabel.m: Setting axis label + color from axis color. + + 2011-01-20 Jordi Gutiérrez Hermoso + + * image/imshow.m: Fix handling of clim and display_range so that + images are more faithfully reproduced. + + 2011-01-20 Rik + + * scripts/image/imshow.m, scripts/image/saveimage.m, + scripts/io/dlmwrite.m, scripts/io/strread.m, + scripts/miscellaneous/license.m, scripts/optimization/glpk.m, + scripts/plot/refreshdata.m, scripts/plot/shading.m, + scripts/plot/slice.m, scripts/plot/surfl.m, scripts/plot/uimenu.m, + scripts/statistics/base/mean.m, scripts/statistics/base/moment.m, + scripts/strings/isstrprop.m: Prevent doubled quotes around @table + items in Info. + + 2011-01-20 Rik + + * mkdoc: Mark all scripts as coming from 'scripts/' directory + in Texinfo '@c func location' comments. + + 2011-01-20 Rik + + * scripts/linear-algebra/condest.m, + scripts/linear-algebra/onenormest.m, scripts/linear-algebra/qzhess.m, + scripts/polynomial/polyfit.m, scripts/special-matrix/pascal.m: Use + non-breaking spaces between certain adjectives and their linked nouns + in docstrings + + 2011-01-20 Rik + + * image/imread.m, image/imwrite.m, signal/periodogram.m, + strings/isstrprop.m: Use @nospell macro on certain words in docstring. + + 2011-01-20 John W. Eaton + + * @ftp/loadobj.m, @ftp/saveobj.m, audio/record.m, + general/accumarray.m, general/accumdim.m, general/arrayfun.m, + general/bicubic.m, general/curl.m, general/divergence.m, + general/gradient.m, general/interp2.m, general/rat.m, + image/imagesc.m, io/strread.m, io/textscan.m, + linear-algebra/krylov.m, miscellaneous/getappdata.m, + miscellaneous/isappdata.m, miscellaneous/rmappdata.m, + miscellaneous/setappdata.m, miscellaneous/what.m, + optimization/qp.m, path/savepath.m, pkg/pkg.m, + plot/__fltk_print__.m, plot/__gnuplot_print__.m, + plot/__go_draw_axes__.m, plot/__print_parse_opts__.m, + plot/axis.m, plot/caxis.m, plot/cla.m, plot/clabel.m, + plot/clf.m, plot/colorbar.m, plot/cylinder.m, plot/daspect.m, + plot/gnuplot_drawnow.m, plot/meshc.m, plot/newplot.m, + plot/orient.m, plot/pbaspect.m, plot/plotyy.m, plot/print.m, + plot/private/__actual_axis_position__.m, + plot/private/__axis_label__.m, plot/private/__bar__.m, + plot/private/__clabel__.m, plot/private/__errplot__.m, + plot/private/__ezplot__.m, plot/private/__ghostscript__.m, + plot/private/__patch__.m, plot/private/__pie__.m, + plot/private/__quiver__.m, plot/private/__scatter__.m, + plot/private/__stem__.m, plot/private/__tight_eps_bbox__.m, + plot/refresh.m, plot/spinmap.m, plot/subplot.m, plot/surfc.m, + plot/uigetfile.m, polynomial/polyout.m, sparse/spaugment.m, + sparse/svds.m, sparse/treeplot.m, statistics/base/histc.m, + statistics/distributions/hygecdf.m, + statistics/distributions/hygeinv.m, statistics/tests/manova.m, + strings/deblank.m, testfun/runtests.m: Add missing semicolons. + + 2011-01-20 John W. Eaton + + * deprecated/cellidx.m, deprecated/dmult.m, + deprecated/intwarning.m, deprecated/str2mat.m, general/curl.m, + general/divergence.m, general/gradient.m, geometry/griddata.m, + help/gen_doc_cache.m, io/dlmwrite.m, miscellaneous/getappdata.m, + miscellaneous/isappdata.m, miscellaneous/rmappdata.m, + miscellaneous/setappdata.m, miscellaneous/unpack.m, + optimization/lsqnonneg.m, optimization/pqpnonneg.m, + pkg/get_forge_pkg.m, pkg/pkg.m, plot/__fltk_print__.m, + plot/__gnuplot_get_var__.m, plot/__gnuplot_open_stream__.m, + plot/__gnuplot_print__.m, plot/daspect.m, + plot/gnuplot_drawnow.m, plot/pbaspect.m, + plot/private/__errplot__.m, plot/private/__fltk_file_filter__.m, + plot/private/__ghostscript__.m, plot/uigetfile.m, + plot/uiputfile.m, polynomial/polyaffine.m, sparse/pcg.m: + Style fixes for error and warning messages. + + 2011-01-20 John W. Eaton + + * @ftp/dir.m, @ftp/mget.m, @ftp/mput.m, ChangeLog, + audio/lin2mu.m, audio/setaudio.m, audio/wavread.m, + audio/wavwrite.m, deprecated/autocor.m, deprecated/autocov.m, + deprecated/betai.m, deprecated/create_set.m, + deprecated/dispatch.m, deprecated/gammai.m, + deprecated/intwarning.m, deprecated/replot.m, elfun/cosd.m, + elfun/sind.m, elfun/tand.m, general/accumarray.m, + general/accumdim.m, general/arrayfun.m, general/bicubic.m, + general/bitcmp.m, general/bitget.m, general/bitset.m, + general/cart2pol.m, general/cart2sph.m, general/cell2mat.m, + general/celldisp.m, general/circshift.m, general/cplxpair.m, + general/cumtrapz.m, general/curl.m, general/dblquad.m, + general/deal.m, general/del2.m, general/divergence.m, + general/flipud.m, general/gradient.m, general/idivide.m, + general/int2str.m, general/interp1.m, general/interp2.m, + general/interp3.m, general/interpft.m, general/interpn.m, + general/isdir.m, general/loadobj.m, general/logspace.m, + general/num2str.m, general/pol2cart.m, general/polyarea.m, + general/quadgk.m, general/quadl.m, general/quadv.m, + general/randi.m, general/rat.m, general/repmat.m, + general/rot90.m, general/rotdim.m, general/saveobj.m, + general/shift.m, general/sortrows.m, general/sph2cart.m, + general/structfun.m, general/subsindex.m, general/trapz.m, + general/triplequad.m, geometry/convhull.m, geometry/delaunay.m, + geometry/delaunay3.m, geometry/delaunayn.m, geometry/dsearch.m, + geometry/dsearchn.m, geometry/griddata3.m, geometry/griddatan.m, + geometry/inpolygon.m, geometry/rectint.m, geometry/trimesh.m, + geometry/trisurf.m, geometry/tsearchn.m, geometry/voronoi.m, + help/__makeinfo__.m, help/__strip_html_tags__.m, help/doc.m, + help/gen_doc_cache.m, help/get_first_help_sentence.m, + help/help.m, help/lookfor.m, help/print_usage.m, help/type.m, + image/autumn.m, image/bone.m, image/brighten.m, image/cool.m, + image/copper.m, image/flag.m, image/gmap40.m, image/gray.m, + image/hot.m, image/hsv.m, image/hsv2rgb.m, image/image.m, + image/imread.m, image/imshow.m, image/imwrite.m, + image/ind2rgb.m, image/jet.m, image/ntsc2rgb.m, image/ocean.m, + image/pink.m, image/prism.m, image/rainbow.m, image/rgb2hsv.m, + image/rgb2ind.m, image/rgb2ntsc.m, image/spring.m, + image/summer.m, image/winter.m, io/dlmwrite.m, io/fileread.m, + io/strread.m, io/textread.m, linear-algebra/cond.m, + linear-algebra/condest.m, linear-algebra/cross.m, + linear-algebra/expm.m, linear-algebra/isdefinite.m, + linear-algebra/krylov.m, linear-algebra/logm.m, + linear-algebra/normest.m, linear-algebra/onenormest.m, + linear-algebra/rref.m, linear-algebra/subspace.m, + miscellaneous/ans.m, miscellaneous/bincoeff.m, + miscellaneous/bunzip2.m, miscellaneous/bzip2.m, + miscellaneous/computer.m, miscellaneous/copyfile.m, + miscellaneous/debug.m, miscellaneous/edit.m, + miscellaneous/getappdata.m, miscellaneous/getfield.m, + miscellaneous/gunzip.m, miscellaneous/gzip.m, + miscellaneous/isappdata.m, miscellaneous/ls.m, + miscellaneous/mkoctfile.m, miscellaneous/movefile.m, + miscellaneous/namelengthmax.m, miscellaneous/orderfields.m, + miscellaneous/private/__xzip__.m, miscellaneous/rmappdata.m, + miscellaneous/setappdata.m, miscellaneous/substruct.m, + miscellaneous/swapbytes.m, miscellaneous/tar.m, + miscellaneous/unimplemented.m, miscellaneous/unpack.m, + miscellaneous/untar.m, miscellaneous/unzip.m, + miscellaneous/ver.m, miscellaneous/warning_ids.m, + miscellaneous/what.m, miscellaneous/zip.m, + optimization/__all_opts__.m, optimization/fminbnd.m, + optimization/fminunc.m, optimization/fsolve.m, + optimization/fzero.m, optimization/glpk.m, + optimization/lsqnonneg.m, optimization/optimget.m, + optimization/pqpnonneg.m, optimization/qp.m, optimization/sqp.m, + path/pathdef.m, path/savepath.m, pkg/pkg.m, + plot/__fltk_ginput__.m, plot/__gnuplot_ginput__.m, + plot/__gnuplot_has_feature__.m, plot/__gnuplot_open_stream__.m, + plot/__gnuplot_print__.m, plot/__go_draw_axes__.m, + plot/__go_draw_figure__.m, plot/__marching_cube__.m, + plot/__next_line_color__.m, plot/__next_line_style__.m, + plot/__plt_get_axis_arg__.m, plot/__print_parse_opts__.m, + plot/area.m, plot/axis.m, plot/bar.m, plot/barh.m, plot/caxis.m, + plot/cla.m, plot/clabel.m, plot/colorbar.m, plot/comet.m, + plot/comet3.m, plot/compass.m, plot/contour.m, plot/contour3.m, + plot/contourc.m, plot/cylinder.m, plot/daspect.m, + plot/diffuse.m, plot/ellipsoid.m, plot/errorbar.m, + plot/ezcontour.m, plot/ezcontourf.m, plot/ezmesh.m, + plot/ezmeshc.m, plot/ezplot.m, plot/ezplot3.m, plot/ezpolar.m, + plot/ezsurf.m, plot/ezsurfc.m, plot/feather.m, plot/findobj.m, + plot/fplot.m, plot/gnuplot_drawnow.m, plot/gtext.m, plot/hist.m, + plot/hold.m, plot/ishghandle.m, plot/isocolors.m, + plot/isonormals.m, plot/isosurface.m, plot/isprop.m, + plot/legend.m, plot/loglog.m, plot/loglogerr.m, plot/meshc.m, + plot/meshz.m, plot/ndgrid.m, plot/orient.m, plot/pareto.m, + plot/patch.m, plot/pbaspect.m, plot/pcolor.m, plot/peaks.m, + plot/pie.m, plot/pie3.m, plot/plot.m, plot/plot3.m, + plot/plotmatrix.m, plot/plotyy.m, plot/polar.m, plot/print.m, + plot/private/__actual_axis_position__.m, + plot/private/__axis_label__.m, plot/private/__bar__.m, + plot/private/__clabel__.m, plot/private/__contour__.m, + plot/private/__errplot__.m, plot/private/__ezplot__.m, + plot/private/__fltk_file_filter__.m, + plot/private/__ghostscript__.m, + plot/private/__gnuplot_has_terminal__.m, + plot/private/__patch__.m, plot/private/__pie__.m, + plot/private/__pltopt__.m, plot/private/__quiver__.m, + plot/private/__scatter__.m, plot/private/__stem__.m, + plot/private/__tight_eps_bbox__.m, plot/quiver.m, + plot/quiver3.m, plot/refreshdata.m, plot/rose.m, plot/saveas.m, + plot/scatter.m, plot/scatter3.m, plot/semilogx.m, + plot/semilogxerr.m, plot/semilogy.m, plot/semilogyerr.m, + plot/shading.m, plot/slice.m, plot/specular.m, plot/sphere.m, + plot/stairs.m, plot/stem.m, plot/stem3.m, plot/subplot.m, + plot/surface.m, plot/surfc.m, plot/surfl.m, plot/surfnorm.m, + plot/uigetdir.m, plot/uigetfile.m, plot/uimenu.m, + plot/uiputfile.m, plot/view.m, plot/waitforbuttonpress.m, + plot/whitebg.m, plot/xlim.m, plot/ylim.m, plot/zlim.m, + polynomial/mkpp.m, polynomial/mpoles.m, polynomial/pchip.m, + polynomial/poly.m, polynomial/polyaffine.m, + polynomial/polyderiv.m, polynomial/polyfit.m, + polynomial/polyreduce.m, polynomial/polyval.m, + polynomial/ppder.m, polynomial/ppint.m, polynomial/ppjumps.m, + polynomial/ppval.m, polynomial/residue.m, polynomial/roots.m, + polynomial/spline.m, polynomial/unmkpp.m, set/ismember.m, + set/private/validargs.m, set/setdiff.m, set/setxor.m, + set/union.m, set/unique.m, signal/arma_rnd.m, signal/fftconv.m, + signal/fftshift.m, signal/filter2.m, signal/freqz.m, + signal/ifftshift.m, signal/unwrap.m, sparse/bicgstab.m, + sparse/cgs.m, sparse/gplot.m, sparse/pcg.m, sparse/pcr.m, + sparse/spaugment.m, sparse/spdiags.m, sparse/speye.m, + sparse/spfun.m, sparse/sprand.m, sparse/sprandn.m, + sparse/sprandsym.m, sparse/spstats.m, sparse/spy.m, + sparse/svds.m, sparse/treelayout.m, sparse/treeplot.m, + specfun/bessel.m, specfun/betaln.m, specfun/factor.m, + specfun/legendre.m, specfun/nchoosek.m, specfun/nthroot.m, + specfun/primes.m, specfun/reallog.m, specfun/realpow.m, + specfun/realsqrt.m, special-matrix/hadamard.m, + special-matrix/invhilb.m, special-matrix/magic.m, + special-matrix/pascal.m, special-matrix/toeplitz.m, + startup/__finish__.m, statistics/base/cov.m, + statistics/base/histc.m, statistics/base/iqr.m, + statistics/base/kendall.m, statistics/base/kurtosis.m, + statistics/base/mean.m, statistics/base/meansq.m, + statistics/base/median.m, statistics/base/mode.m, + statistics/base/moment.m, statistics/base/ols.m, + statistics/base/prctile.m, statistics/base/qqplot.m, + statistics/base/quantile.m, statistics/base/ranks.m, + statistics/base/run_count.m, statistics/base/skewness.m, + statistics/base/statistics.m, statistics/base/std.m, + statistics/base/studentize.m, statistics/base/var.m, + statistics/distributions/betainv.m, + statistics/distributions/betapdf.m, + statistics/distributions/betarnd.m, + statistics/distributions/binoinv.m, + statistics/distributions/binornd.m, + statistics/distributions/cauchy_cdf.m, + statistics/distributions/cauchy_inv.m, + statistics/distributions/cauchy_pdf.m, + statistics/distributions/cauchy_rnd.m, + statistics/distributions/chi2rnd.m, + statistics/distributions/discrete_rnd.m, + statistics/distributions/exprnd.m, + statistics/distributions/fcdf.m, + statistics/distributions/frnd.m, + statistics/distributions/gamrnd.m, + statistics/distributions/lognrnd.m, + statistics/distributions/nbincdf.m, + statistics/distributions/nbininv.m, + statistics/distributions/nbinpdf.m, + statistics/distributions/nbinrnd.m, + statistics/distributions/normrnd.m, + statistics/distributions/poissrnd.m, + statistics/distributions/stdnormal_rnd.m, + statistics/distributions/tpdf.m, + statistics/distributions/trnd.m, + statistics/distributions/unifcdf.m, + statistics/distributions/unifrnd.m, + statistics/distributions/wblrnd.m, + statistics/tests/bartlett_test.m, + statistics/tests/kolmogorov_smirnov_test_2.m, + statistics/tests/kruskal_wallis_test.m, + statistics/tests/t_test_regression.m, strings/blanks.m, + strings/dec2base.m, strings/dec2hex.m, strings/findstr.m, + strings/index.m, strings/isstrprop.m, strings/mat2str.m, + strings/regexptranslate.m, strings/str2num.m, strings/strchr.m, + strings/strjust.m, strings/strmatch.m, strings/strsplit.m, + strings/strtok.m, strings/untabify.m, testfun/assert.m, + testfun/demo.m, testfun/example.m, testfun/fail.m, + testfun/speed.m, testfun/test.m, time/datenum.m, time/datestr.m, + time/datetick.m, time/datevec.m, time/etime.m: + Strip trailing whitespace. + + * statistics/distributions/betapdf.m: Untabify. + + 2011-01-20 Petr Mikulik + + * plot/uigetdir.m: Use correct variable name for argument check. + Remove unneeded white spaces. + * plot/uigetfile.m, plot/uiputfile.m: Remove unneeded white spaces. + Bug #32190. + + 2011-01-20 John W. Eaton + + * plot/ginput.m, plot/gnuplot_drawnow.m, plot/uiputfile.m, + plot/subplot.m, plot/axis.m, plot/colorbar.m, + plot/__print_parse_opts__.m, plot/uigetdir.m, + plot/__fltk_print__.m, plot/print.m, plot/__gnuplot_print__.m, + plot/uigetfile.m, plot/private/__actual_axis_position__.m: + Update for backend -> graphics_toolkit change. + + * plot/graphics_toolkit.m: Rename from backend.m. + * plot/module.mk (plot_FCN_FILES): Update list. + + 2011-01-19 Rik + + * general/curl.m, general/divergence.m, io/strread.m, + miscellaneous/mkoctfile.m, plot/bar.m, plot/errorbar.m, plot/hist.m, + plot/mesh.m, plot/surf.m, polynomial/polyaffine.m: Correct spelling + in docstrings. + + 2011-01-19 John W. Eaton + + * help/help.m: New option --list. Bug #31905. + + 2011-01-19 John W. Eaton + + * io/strread.m: Avoid PCRE-ism in regexp. Bug #32066. + + 2011-01-17 Rik + + * audio/wavread.m, deprecated/spqr.m, elfun/lcm.m, general/bitget.m, + general/curl.m, general/divergence.m, general/interp3.m, + general/quadv.m, geometry/delaunayn.m, geometry/griddata.m, + help/help.m, io/textread.m, io/textscan.m, linear-algebra/cond.m, + miscellaneous/mkoctfile.m, miscellaneous/orderfields.m, + miscellaneous/run.m, miscellaneous/setappdata.m, plot/axis.m, + plot/caxis.m, plot/daspect.m, plot/ellipsoid.m, plot/errorbar.m, + plot/gnuplot_binary.in, plot/hist.m, plot/hold.m, plot/ishold.m, + plot/legend.m, plot/mesh.m, plot/pbaspect.m, plot/pie3.m, plot/print.m, + plot/private/__add_default_menu__.m, plot/scatter.m, plot/scatter3.m, + plot/shg.m, plot/slice.m, plot/surf.m, plot/surfl.m, plot/uigetdir.m, + plot/uigetfile.m, plot/uimenu.m, plot/uiputfile.m, plot/view.m, + set/unique.m, signal/periodogram.m, sparse/pcg.m, sparse/pcr.m, + sparse/spfun.m, specfun/legendre.m, + statistics/distributions/poisspdf.m, statistics/distributions/wblpdf.m, + strings/strjust.m, strings/untabify.m, testfun/assert.m, + testfun/demo.m, testfun/example.m, testfun/fail.m, testfun/test.m: + Grammarcheck m-files for 3.4 release. + + 2011-01-17 Rik + + * general/dblquad.m, general/quadgk.m, general/quadl.m, + general/quadv.m, general/triplequad.m: Improve docstring with seealso + links to quadcc. + + 2011-01-17 John W. Eaton + + * miscellaneous/isdeployed.m: New function. + * miscellaneous/module.mk (miscellaneous_FCN_FILES): Add it to + the list. Bug #32151. + + 2011-01-17 John W. Eaton + + * miscellaneous/inputname.m: Use __varval__ to lookup ".argn." + instead of "argn". + + 2011-01-16 Ben Abbott + + * plot/print.m: For DOS, connect the pipe to ghostscript (bug 31967), + and redirect to NUL instead of /dev/null. + + 2011-01-16 John W. Eaton + + * gethelp.cc (main): Write function name along with file name in + comment. + + 2011-01-16 David Bateman + + * plot/__go_draw_axes__.m: Use "{}" as the default font. + + 2011-01-15 Rik + + * scripts/help/doc.m, scripts/help/which.m, + scripts/miscellaneous/comma.m, scripts/miscellaneous/ls.m, + scripts/miscellaneous/paren.m, scripts/miscellaneous/semicolon.m, + scripts/pkg/pkg.m: Eliminate @deffn macros. + + 2011-01-15 John W. Eaton + + * deprecated/krylovb: Move here from linear-algebra. + * deprecated/module.mk (deprecated_FCN_FILES): + Include krylovb.m in the list. + * linear-algebra/module.mk (linear_algebra_FCN_FILES): + Remove krylovb.m from the list. + + 2011-01-14 Rik + + * general/postpad.m, general/prepad.m: Improve docstring. + + 2011-01-14 Rik + + * ploynomial/polyaffine.m: Improve docstring. + + 2011-01-14 Rik + + * general/interp1.m, general/interp2.m, polynomial/mkpp.m, + polynomial/pchip.m, polynomial/ppder.m, polynomial/ppint.m, + polynomial/ppjumps.m, polynomial/ppval.m, polynomial/spline.m, + polynomial/unmkpp.m: Improve docstrings + + 2011-01-14 Rik + + * miscellaneous/flops.m: Delete function which was unimplemented + in Octave and has been removed from Matlab since version 5. + + 2011-01-14 Rik + + * specfun/nthroot.m: Add Seealso references to docstring. + + 2011-01-14 Rik + + * miscellaneous/module.mk: Remove texas_lotto.m from build system. + + 2011-01-14 Rik + + * miscellaneous/texas_lotto.m: Remove Easter Egg function. + + 2011-01-14 John W. Eaton + + * Update copyright notices for 2011. + + 2011-01-13 Michael Godfrey + + * plot/contourc.m: Correct one argument case. + + 2011-01-12 John W. Eaton + + * strings/mat2str.m: Handle logical arguments. New tests. + Bug #32102. + + 2011-01-10 John W. Eaton + + * linear-algebra/expm.m: Validate nargin. New tests. + + 2011-01-10 John W. Eaton + + * linear-algebra/logm.m: Handle scalar and diagonal matrix + arguments specially. Call logm_pade_pf only if m > 1. New tests. + Special case suggested by Marco Caliari . + + 2011-01-10 John W. Eaton + + * general/private/__isequal__.m: Use builtin ("struct", ...) to + convert objects to a structs to avoid possible overloading of + the struct function. Bug #32071. + + 2011-01-09 Rik + + * plot/orient.m, statistics/tests/kolmogorov_smirnov_test.m, + strings/strtrunc.m: Correct failing tests due to change in + capitalization of error strings from previous changeset. + + 2011-01-09 Rik + + * audio/lin2mu.m, audio/loadaudio.m, audio/mu2lin.m, audio/saveaudio.m, + audio/wavwrite.m, deprecated/split.m, deprecated/values.m, + general/accumarray.m, general/bitcmp.m, general/cell2mat.m, + general/circshift.m, general/curl.m, general/divergence.m, + general/genvarname.m, general/interpft.m, general/interpn.m, + general/nextpow2.m, general/polyarea.m, general/repmat.m, + general/rot90.m, general/rotdim.m, general/shiftdim.m, + general/strerror.m, general/trapz.m, geometry/griddata.m, + geometry/griddata3.m, geometry/griddatan.m, geometry/rectint.m, + image/brighten.m, image/colormap.m, image/contrast.m, image/imagesc.m, + image/imfinfo.m, image/imread.m, linear-algebra/commutation_matrix.m, + linear-algebra/condest.m, linear-algebra/cross.m, + linear-algebra/duplication_matrix.m, linear-algebra/isdefinite.m, + linear-algebra/vech.m, miscellaneous/bincoeff.m, miscellaneous/cast.m, + miscellaneous/compare_versions.m, miscellaneous/fileparts.m, + miscellaneous/license.m, miscellaneous/private/__xzip__.m, + miscellaneous/substruct.m, miscellaneous/unpack.m, miscellaneous/xor.m, + optimization/sqp.m, pkg/get_forge_pkg.m, plot/backend.m, + plot/contourc.m, plot/cylinder.m, plot/hidden.m, plot/hold.m, + plot/orient.m, plot/private/__interp_cube__.m, plot/refreshdata.m, + plot/subplot.m, plot/surface.m, plot/surfnorm.m, plot/text.m, + plot/uimenu.m, polynomial/mkpp.m, polynomial/pchip.m, + polynomial/polyfit.m, polynomial/ppval.m, signal/arch_fit.m, + signal/arch_rnd.m, signal/arch_test.m, signal/arma_rnd.m, + signal/autoreg_matrix.m, signal/bartlett.m, signal/blackman.m, + signal/diffpara.m, signal/durbinlevinson.m, signal/fftfilt.m, + signal/fractdiff.m, signal/hamming.m, signal/hanning.m, signal/hurst.m, + signal/sinetone.m, signal/synthesis.m, signal/unwrap.m, + sparse/spaugment.m, specfun/factor.m, specfun/factorial.m, + specfun/legendre.m, specfun/nthroot.m, specfun/primes.m, + special-matrix/hadamard.m, special-matrix/magic.m, + statistics/distributions/betacdf.m, statistics/distributions/betainv.m, + statistics/distributions/betapdf.m, statistics/distributions/betarnd.m, + statistics/distributions/binocdf.m, statistics/distributions/binoinv.m, + statistics/distributions/binopdf.m, statistics/distributions/binornd.m, + statistics/distributions/cauchy_cdf.m, + statistics/distributions/cauchy_inv.m, + statistics/distributions/cauchy_pdf.m, + statistics/distributions/cauchy_rnd.m, + statistics/distributions/chi2cdf.m, statistics/distributions/chi2inv.m, + statistics/distributions/chi2pdf.m, statistics/distributions/chi2rnd.m, + statistics/distributions/discrete_cdf.m, + statistics/distributions/discrete_inv.m, + statistics/distributions/discrete_pdf.m, + statistics/distributions/discrete_rnd.m, + statistics/distributions/empirical_cdf.m, + statistics/distributions/empirical_inv.m, + statistics/distributions/empirical_pdf.m, + statistics/distributions/empirical_rnd.m, + statistics/distributions/expcdf.m, statistics/distributions/expinv.m, + statistics/distributions/exppdf.m, statistics/distributions/exprnd.m, + statistics/distributions/fcdf.m, statistics/distributions/finv.m, + statistics/distributions/fpdf.m, statistics/distributions/frnd.m, + statistics/distributions/gamcdf.m, statistics/distributions/gaminv.m, + statistics/distributions/gampdf.m, statistics/distributions/gamrnd.m, + statistics/distributions/geocdf.m, statistics/distributions/geoinv.m, + statistics/distributions/geopdf.m, statistics/distributions/geornd.m, + statistics/distributions/hygecdf.m, statistics/distributions/hygeinv.m, + statistics/distributions/hygepdf.m, statistics/distributions/hygernd.m, + statistics/distributions/kolmogorov_smirnov_cdf.m, + statistics/distributions/laplace_rnd.m, + statistics/distributions/logistic_rnd.m, + statistics/distributions/logncdf.m, statistics/distributions/logninv.m, + statistics/distributions/lognpdf.m, statistics/distributions/lognrnd.m, + statistics/distributions/nbincdf.m, statistics/distributions/nbininv.m, + statistics/distributions/nbinpdf.m, statistics/distributions/nbinrnd.m, + statistics/distributions/normcdf.m, statistics/distributions/norminv.m, + statistics/distributions/normpdf.m, statistics/distributions/normrnd.m, + statistics/distributions/poisscdf.m, + statistics/distributions/poissinv.m, + statistics/distributions/poisspdf.m, + statistics/distributions/poissrnd.m, + statistics/distributions/stdnormal_cdf.m, + statistics/distributions/stdnormal_rnd.m, + statistics/distributions/tcdf.m, statistics/distributions/tinv.m, + statistics/distributions/tpdf.m, statistics/distributions/trnd.m, + statistics/distributions/unidrnd.m, statistics/distributions/unifcdf.m, + statistics/distributions/unifinv.m, statistics/distributions/unifpdf.m, + statistics/distributions/unifrnd.m, statistics/distributions/wblcdf.m, + statistics/distributions/wblinv.m, statistics/distributions/wblpdf.m, + statistics/distributions/wblrnd.m, statistics/distributions/wienrnd.m, + statistics/models/logistic_regression.m, statistics/tests/anova.m, + statistics/tests/chisquare_test_homogeneity.m, + statistics/tests/cor_test.m, statistics/tests/f_test_regression.m, + statistics/tests/hotelling_test.m, statistics/tests/hotelling_test_2.m, + statistics/tests/kolmogorov_smirnov_test.m, + statistics/tests/kolmogorov_smirnov_test_2.m, + statistics/tests/manova.m, statistics/tests/mcnemar_test.m, + statistics/tests/prop_test_2.m, statistics/tests/sign_test.m, + statistics/tests/t_test.m, statistics/tests/t_test_2.m, + statistics/tests/t_test_regression.m, statistics/tests/u_test.m, + statistics/tests/var_test.m, statistics/tests/welch_test.m, + statistics/tests/wilcoxon_test.m, statistics/tests/z_test.m, + statistics/tests/z_test_2.m, strings/blanks.m, strings/index.m, + strings/strtrunc.m, strings/validatestring.m, time/addtodate.m, + time/datenum.m, time/datetick.m, time/datevec.m: Use uppercase for + variable names in error() strings to match Info documentation. + + * general/interp2.m, image/imshow.m, image/ind2rgb.m, + image/saveimage.m, io/dlmwrite.m, io/strread.m, io/textscan.m, + linear-algebra/expm.m, linear-algebra/krylov.m, linear-algebra/logm.m, + miscellaneous/delete.m, miscellaneous/run.m, plot/__marching_cube__.m, + sparse/bicgstab.m, sparse/cgs.m, strings/strmatch.m, + testfun/rundemos.m, testfun/runtests.m: Rewrite error string + + * @ftp/ftp.m, help/gen_doc_cache.m, miscellaneous/unix.m, + plot/__gnuplot_open_stream__.m, plot/private/__add_default_menu__.m, + polynomial/ppder.m, polynomial/ppint.m, polynomial/ppjumps.m, + signal/periodogram.m: Correct use of @deftypefn macro + + * miscellaneous/paren.m: Space @deffnx macro for readability + + 2011-01-09 Rik + + * general/arrayfun.m, general/blkdiag.m, general/structfun.m, + image/imagesc.m, linear-algebra/cond.m, linear-algebra/condest.m, + linear-algebra/expm.m, linear-algebra/logm.m, + linear-algebra/onenormest.m, linear-algebra/qzhess.m, + optimization/glpk.m, optimization/glpkmex.m, polynomial/poly.m, + sparse/gplot.m, sparse/pcg.m, sparse/pcr.m, sparse/spaugment.m, + sparse/spdiags.m, sparse/svds.m: Use uppercase 'A' to refer to matrix + argument. + + * io/dlmwrite.m: Use uppercase 'M' to refer to matrix argument. + + * io/textscan.m: Use uppercase 'C' to refer to Cell Array output. + Improve docstring. + + * signal/unwrap.m: Use 'x' instead of 'a' for vector input argument. + + 2011-01-09 Rik + + * general/bicubic.m, general/nargchk.m, general/nargoutchk.m, + linear-algebra/krylov.m, linear-algebra/krylovb.m, + linear-algebra/normest.m, linear-algebra/null.m, linear-algebra/orth.m, + linear-algebra/rank.m: Use common names for variables in documentation + and code. + + 2011-01-09 Rik + + * audio/loadaudio.m, audio/mu2lin.m, audio/saveaudio.m, + general/accumdim.m, general/bitget.m, general/bitset.m, general/del2.m, + general/isequal.m, general/isequalwithequalnans.m, general/logspace.m, + general/repmat.m, general/strerror.m, general/structfun.m, + geometry/delaunayn.m, geometry/dsearchn.m, image/ind2gray.m, + image/ind2rgb.m, image/rgb2ind.m, io/csvread.m, io/csvwrite.m, + linear-algebra/rref.m, linear-algebra/subspace.m, + linear-algebra/trace.m, miscellaneous/dir.m, miscellaneous/dos.m, + miscellaneous/menu.m, miscellaneous/perl.m, miscellaneous/unix.m, + path/savepath.m, plot/allchild.m, plot/diffuse.m, plot/fplot.m, + plot/refreshdata.m, plot/specular.m, plot/subplot.m, + polynomial/polyreduce.m, set/ismember.m, signal/arch_fit.m, + signal/arch_rnd.m, signal/arch_test.m, signal/diffpara.m, + signal/fftfilt.m, signal/filter2.m, signal/sinetone.m, + signal/spectral_xdf.m, signal/stft.m, signal/synthesis.m, + sparse/spfun.m, sparse/spones.m, sparse/spstats.m, sparse/treelayout.m, + sparse/treeplot.m, specfun/isprime.m, + statistics/distributions/expcdf.m, statistics/distributions/expinv.m, + statistics/distributions/exppdf.m, statistics/distributions/exprnd.m, + statistics/distributions/poisscdf.m, + statistics/distributions/poissinv.m, + statistics/distributions/poisspdf.m, + statistics/distributions/poissrnd.m, + statistics/tests/chisquare_test_independence.m, + statistics/tests/cor_test.m, statistics/tests/f_test_regression.m, + statistics/tests/t_test_regression.m, strings/base2dec.m, + strings/dec2base.m, strings/regexptranslate.m, strings/strjust.m, + strings/strmatch.m, time/asctime.m, time/datenum.m: + Use common names for variables in documentation and code. + + * @ftp/ascii.m, @ftp/binary.m, @ftp/cd.m, @ftp/close.m, @ftp/delete.m, + @ftp/dir.m, @ftp/ftp.m, @ftp/mget.m, @ftp/mkdir.m, @ftp/mput.m, + @ftp/rename.m, @ftp/rmdir.m, general/chop.m, geometry/dsearch.m, + signal/spencer.m, specfun/primes.m, time/etime.m: Use common names for + variables in documentation and code. Improve docstring + + * elfun/acot.m, elfun/acoth.m, elfun/acsc.m, elfun/acsch.m, + elfun/asec.m, elfun/asech.m, elfun/cot.m, elfun/coth.m, elfun/csc.m, + elfun/csch.m, elfun/sec.m, elfun/sech.m: Use common names for variables + in documentation and code. Change output variable to 'y' rather than + 'w'. + + * miscellaneous/bunzip2.m, miscellaneous/gunzip.m, + miscellaneous/unpack.m, miscellaneous/untar.m, miscellaneous/unzip.m: + Use common names for variables in documentation and code. Use default + on input argument to simplify input validation. + + * general/accumarray.m: Use common names for variables in + documentation, code and tests. + + * geometry/inpolygon.m: Use common names for variables in + documentation, code and tests. Improve docstring. + + * general/bitcmp.m: Use common names for variables in documentation and + code. Switch tests to %!test blocks rather than %!shared variables and + %!asserts for clarity. + + * general/int2str.m: Switch to input variable name 'n' rather than 'x'. + + * general/isdir.m: Switch to input variable name 'f' rather than 'x'. + Switch output variable to 'retval' rather than 'y'. + + * general/perror.m: Switch to input variable name 'funcname' rather + than 'name'. Use common names for variables in documentation and + code. + + * general/rot90.m: Switch to input variable name 'A' rather than 'x'. + Break very long %!assert line into multiple asserts for readability. + + * general/sortrows.m: Use common names for variables in documentation + and code. Break very long %!assert line into multiple asserts for + readability. + + * geometry/voronoin.m: Switch to input variable name 'options' rather + than 'opt'. + + * help/lookfor.m: Switch to input variable name 'arg2' rather than + 'extra'. + + * image/brighten.m: Switch to input variable name 'arg1' rather than + 'm'. Eliminate CamelCase in output variable 'Rmap'. + + * image/rgb2hsv.m: Switch to variable name 'hsv_map' rather than + 'hsval'. + + * image/saveimage.m: Switch to input variable name 'fname', rather than + 'file'. Use common names for variables in documentation and code. + + * io/strread.m, io/textread.m, io/textscan.m: Switch to input variable + name 'format' rather than 'formatstr' + + * miscellaneous/run.m: Switch to input variable 'script' rather than + 's'. + + * miscellaneous/ver.m: Switch to input variable 'package' rather than + 'pack'. Use default on input argument to simplify input validation. + + * plot/saveas.m: Switch to input variable 'fmt' rather than 'ext'. + Improve docstring. + + * plot/title.m: : Switch to input variable 'string' rather than 'title'. + + * plot/uigetdir.m: Improve docstring. Re-order input validation. + Eliminate unnecessary use of cellfun to compare strings. + + * polynomial/polyder.m, polynomial/polyderiv.m: Switch ouput variable + name 'r' to 'd'. Improve docstring. + + * polynomial/polyint.m: Switch input variable name 'c' to 'p'. + + * signal/fftconv.m: Switch input variable names to 'x','y' instead of + 'a','b' for vectors. + + * signal/fftshift.m, signal/ifftshift.m: Switch input variable name to + 'x' instead of 'v'. + + * sparse/etreeplot.m: Switch input variable name to 'A' rather than + 'tree' for matrix. + + * specfun/factor.m: Use common names for variables in documentation and + code. Uncomment and re-instate test code. + + * statistics/distributions/cauchy_cdf.m, + statistics/distributions/cauchy_inv.m, + statistics/distributions/cauchy_pdf.m, + statistics/distributions/cauchy_rnd.m: Switch to input variables + 'location','scale' rather than 'lambda','sigma'. + + * statistics/tests/manova.m: Switch to input variable 'x' rather than + 'y'. + + * strings/untabify.m: Switch to input variable 'dblank' rather than + 'db'. + + * time/datestr.m: Improve docstring + + * time/weekday.m: Switch to input variable name 'format' rather than + 'form'. Improve docstring. + + 2011-01-08 John Hunt + + * plot/legend.m, plot/private/__plt__.m: legend with more than two + inline keys (bug 31991). Add/modifyy demos. + + 2011-01-07 John W. Eaton + + * general/private/__isequal__.m: Compare objects as if they are + structures. Bug #32071. + + 2011-01-07 John W. Eaton + + * linear-algebra/logm.m: Style fixes. + + 2011-01-06 John W. Eaton + + * optimization/optimset.m: Remove "i" option from call to + lookup. Bug #31392. + + 2011-01-05 Rik + + * general/isa.m: Add tests against logical values. + + 2011-01-04 Rik + + * testfun/demo.m: Add newline to error output for better formatting. + + 2011-01-03 Rik + + * statistics/base/center.m, statistics/base/corrcoef.m, + statistics/base/kendall.m, statistics/base/mean.m, + statistics/base/meansq.m, statistics/base/skewness.m, + statistics/base/studentize.m, statistics/base/var.m, + statistics/base/run_count.m, statistics/base/ranks.m: Improve input + validation. Add function tests. Improve docstring. + + * statistics/base/moment.m, statistics/base/prctile.m, + statistics/base/spearman.m, statistics/base/std.m : Improve input + validation. Add input validation tests. Improve docstring. + + * statistics/base/cloglog.m: Add function tests. + + * statistics/base/cor.m: Replace with call to corrcoef, now only an + alias. + + * statistics/base/cov.m: Add normalization option. Improve input + validation. Add function tests. Improve docstring. + + * statistics/base/cut.m: Use lowercase variable names. Improve + docstring. + + * statistics/base/histc.m, statistics/base/median.m: Use same variable + name in documentation and in function. Add input validation tests. + Improve docstring. + + * statistics/base/iqr.m, statistics/base/mode.m: Add input validation + tests. Improve docstring. + + * statistics/base/kurtosis.m: Return same class as input variable. Add + input validation tests. Improve docstring. + + + * statistics/base/logit.m, statistics/base/range.m: Add function tests. + Improve docstring. + + * statistics/base/mahalanobis.m: Use lower case variable names. + Improve input validation. Add input validation tests. + + * statistics/base/ols.m, statistics/base/gls.m: Use isargout to only + calculate necessary outputs. Use lowercase variable names. Add + functional tests. Improve docstring. + + * statistics/base/ppplot.m: Add input validation tests. + + * statistics/base/qqplot.m: Add ability to call "XXXinv" or "XXX_inv" + functions. Improve input validation. Improve docstring. + + * statistics/base/quantile.m: Use defaults for input arguments to + simplify code. Improve input validation. Add input validation tests. + Improve docstring. + + * statistics/base/statistics.m: Use lowercase variable names. Improve + input validation. Add input validation tests. Improve docstring. + + * statistics/base/table.m: Switch from deprecated function 'values' to + 'unique'. Add input validation tests. Improve docstring. + + 2011-01-02 Ben Abbott + + * plot/legend.m: Only one legend per axes (bug 32022). Add / modify + demos to test addional features. + + 2010-12-31 Rik + + * general/is_duplicate_entry.m , general/isdir.m, general/isscalar.m, + general/issquare.m, general/isvector.m, linear-algebra/isdefinite.m, + linear-algebra/ishermitian.m, linear-algebra/issymmetric.m, + miscellaneous/isappdata.m, miscellaneous/ismac.m, miscellaneous/ispc.m, + miscellaneous/isunix.m, plot/isfigure.m, plot/ishold.m, plot/isprop.m, + set/ismember.m, specfun/isprime.m, strings/isletter.m, + time/is_leap_year.m : Improve docstring + * general/isa.m: Improve docstring. Change function variable name to + match documentation variable name. + * strings/isstrprop.m: Improve docstring. Change function variable + name to match documentation variable name. Add new test cases. + + 2010-12-31 Rik + + * plot/module.mk: Add isprop.m to list of function files for Automake. + + 2010-12-31 Kai Habel + + * general/curl.m, general/divergence.m: New functions. + * general/module.mk: Add new file to list. + * miscellaneous/unimplemented.m: Remove curl and divergence from list. + + 2010-12-31 Ben Abbott + + * plot/scatter3.m: Grid on by default for 3D plots. + + 2010-12-30 Ben Abbott + + * plot/contour3.m, plot/mesh.m, plot/meshc.m, plot/surfc.m: Grid on + by default for 3D plots. + * plot/surfc.m, plot/meshc.m: Place contour for meshc/surfc at + zlim(1). + * plot/__go_draw_axes__.m: Tweak vertical alignment of text objects + for gnuplot to favor eps/ps output. + + 2010-12-29 Ben Abbott + + * plot/text.m: New demo for 3D plot and text with verticalalignment. + * plot/__go_draw_axes__.m: Enable vertical alignment of text objects + for gnuplot. + + 2010-12-28 Ben Abbott + + * plot/private/__plt__.m: Fix to allow inline legend keys. Bug 31991. + + 2010-12-28 Rik + + * image/autumn.m, image/bone.m, image/cool.m, image/copper.m, + image/flag.m, image/gray.m, image/hot.m, image/hsv.m, image/jet.m, + image/ocean.m, image/pink.m, image/prism.m, image/rainbow.m, + image/spring.m, image/summer.m, image/white.m, image/winter.m: Use + same variable name for documentation and function call. Change demo + code to explicitly use colormap size. Update docstring. + + * image/gmap40.m: Use same variable name for documentation and function + call. Change demo code to use colormap size of 6 rather than 64. + Update docstring. + + 2010-12-28 Ben Abbott + + * plot/legend.m: Add demo to legend for inline key. + + 2010-12-27 Ben Abbott + + * plot/text.m: Add demo for text rotation and alignment. + + 2010-12-26 Michael Godfrey + + * specfun/legendre.m: Add @tex blocks to docstring. + + 2010-12-24 Rik + + * testfun/test.m: Use 'Command' for deftype in docstring. + + 2010-12-24 Rik + + * audio/setaudio.m: Re-write docstring. + + 2010-12-23 Soren Hauberg + + * signal/detrend.m: Also accept polynomial order as a string + ("constant" or "linear") for compatibility with Matlab. + + 2010-12-22 Konstantinos Poulios + + * plot/private/__axis_label__.m: Trigger fltk graphics redraw + immediately after setting an axis label. + + 2010-12-22 John W. Eaton + + * optimization/optimset.m, optimization/optimget.m, + optimization/__all_opts__.m: Consistently use lower case for + storing and searching option names. + + 2010-12-22 John W. Eaton + + * statistics/base/skewness.m: Make returned value have the same + class as the input. + + 2010-12-21 John W. Eaton + + * time/datevec.m: Style fixes. + + 2010-12-20 Ben Abbott + + * plot/__fltk_print__.m: Update figure for FLTK printing. Bug #31884. + + 2010-12-19 John W. Eaton + + * miscellaneous/run.m: Use source to execute script. + + 2010-12-18 Ben Abbott + + * plot/view.m: Return azimuth and elevation for nargin == 0. + + 2010-10-28 Rik + + * deprecated/module.mk, sparse/module.mk, deprecated/sphcat.m, + deprecated/spvcat.m: Deprecate sphcat and spvcat functions. + + 2010-12-17 John W. Eaton + + * plot/comet3.m: New function. + * plot/module.mk: Add comet3.m to the list + * miscellaneous/unimplemented.m: Remove comet3 from the list. + + 2010-12-17 John W. Eaton + + * plot/comet.m: Use __plt_get_axis_arg__ to extract axis + argument. Only switch to specified axis temporarily. + + 2010-12-16 Ben Abbott + + * miscellaneous/unimplemented.m: Remove isprop() from list of + unimplemented functions. + * plot/isprop.m: New function. + + 2010-12-16 Olaf Till + + * optimization/sqp.m: Fix indexing error in sqp bounds selection. + + 2010-12-14 Doug Stewart + + * plot/bar.m: Improve the docstring. + + 2010-12-14 John W. Eaton + + * plot/private/__quiver__.m: Use high contrast color black for arrows + in quiver3 plots. Bug #31802. + + 2010-12-14 Rik + + * plot/compass.m, plot/errorbar.m, plot/legend.m, plot/rose.m, + plot/scatter.m, plot/scatter3.m, plot/stairs.m: Assign data used in + demo plots for reproducibility between runs. + + 2010-12-13 Rik + + * statistics/median.m: Add NaN test case from bug #29930. + + 2010-12-13 Rik + + * general/isequalwithequalnans.m: Add test case from bug #31239. + + 2010-12-13 Ben Abbott + + * plot/__print_parse_opts__.m: Fix indexing bug for varargin. + Bug #31862. + + 2010-12-13 Rik + + * statistics/distributions/betapdf.m: Add test for large values of + alpha and beta. + + 2010-12-13 Rik + + * strings/strmatch.m: Add test with null search pattern. + + 2010-12-13 Doug Stewart + + * plot/hist.m: Improved the help section. + + 2010-12-13 Kai Habel + + * plot/private/__add_default_menu__.m: New function. + * plot/figure.m: Call __add_default_menu__ function. + * plot/module.mk: Add new file to list. + + 2010-12-13 Rik + + * optimization/sqp.m: Change docstring to refer to x0 as the initial + seed vector. + + 2010-12-13 Olaf Till + + * optimization/sqp.m: Remove never violated Inf bounds from + computation in function for inequality constraints (bug + #31742). Remove non-functional check for inequality constraints + being +Inf in each iteration. + + 2010-12-12 Jaroslav Hajek + + * optimization/optimget.m: Use explicit toupper conversion rather than + lookup(..., "i"). + * optimization/optimset.m: Ditto. + * miscellaneous/parseparams.m: Ditto. + + 2010-12-12 Kai Habel + + * plot/view.m: Fix bugs with respect to number if inputs and argument + handling. + + 2010-12-12 Kai Habel + + * plot/view.m: Make view more compatible. Allow cartesian + coordinates and axes handle arguments. + + 2010-12-10 Ben Abbott + + * io/strread.m: Don't require space between format specifiers. + + 2010-12-10 Rik + + * testfun/speed.m: Eliminate line continuation in function definition. + + 2010-12-10 Kai Habel + + * plot/private/__pie__.m: Add missing slice option to pie and + pie3 function. + * plot/pie.m, plot/pie3.m: Add new demo. + + 2010-12-10 Thorsten Meyer + + * statistics/tests/kolmogorov_smirnov_test.m: Add tests. + + 2010-12-09 John W. Eaton + + * plot/private/__pie__.m: Provide diagnositc for invalid + optional arguments. Use caller name instead of __pie__ in error + messages. + + 2010-12-09 John W. Eaton + + * statistics/tests/kolmogorov_smirnov_test.m: Try both DIST_cdf + and DISTcdf functions. Always use feval to call CDF function. + Bug #31838. + + 2010-12-09 John W. Eaton + + * plot/__go_draw_axes__.m: Set major and grid linewidths from + axis linewidth property. Bug #31755. + + 2010-12-09 Rik + + * plot/__print_parse_opts__.m: Convert print resolution from char to + double. Fixes Bug #31834. + + 2010-12-09 Rik + + * plot/private/__pie__.m: Allow logical indices for 'explode' variable. + + 2010-12-09 Kai Habel + + * plot/pie3.m, plot/private/__pie__.m: New functions. + * plot/pie.m: Move __pie__ function to plot/private, in order to + be used by pie and pie3. + * miscellaneous/unimplemented.m: Remove pie3.m from list of + unimplemented functions. + + 2010-12-09 John W. Eaton + + * time/datestr.m: Don't call localtime (mktime (tm)) to fill in + missing elements of time strcture. Bug #31079. + + 2010-12-08 Ben Abbott + + * plot/fill.m: Fix bug that implies nextplot = "add". + * image/imshow.m: Flip y-axis. + + 2010-12-08 John W. Eaton + + * strings/strmatch.m: Avoid passing length of zero to strncmp. + Bug #31774. + + 2010-12-07 John W. Eaton + + * general/repmat.m: Handle special case of replicating scalar + using an index vector containing zeros. Bug #31775. + + 2010-12-06 Rik + + * plot/plot.m: Eliminate present tense in first sentence of docstring. + + 2010-12-06 Rik + + * plot/xlabel.m, plot/ylabel.m, plot/zlabel.m: Add additional calling + form to docstring which returns handle (h) + + 2010-12-06 Rik + + * scripts/testfun/speed.m: Overhaul documentation string. + + 2010-12-03 Ben Abbott + + * plot/private/__stem__.m: Create a baseline for each stem hggroup. + * plot/__go_draw_axes__.m: If not set, then unset the gnuplot + {tblr}margins. Needed when using subplots with differing + activepositionproperty. + + 2010-12-03 Konstantinos Poulios + + * plot/pbaspect.m, plot/daspect.m: Fix handling of input array of + length 2. + + 2010-12-02 Ben Abbott + + * image/image.m: Only flip y-axis if nextplot property equal + "replace". Fixes bug 31745. + * plot/contour3.m: Modify demo to avoid clipping mesh. Fixes bug + 31744. + * plot/fill.m: Allow multiple filled polygons. Fixes bug 31750. + * plot/subplot.m: Add suppport for "align" and "replace" options. + Partial fix for bug 31610. + + 2010-11-26 John W. Eaton + + * pkg/pkg.m: Append directories to EXEC_PATH instead of + prepending them. Use pathsep instead of ":". + + * miscellaneous/copyfile.m, miscellaneous/movefile.m, + miscellaneous/ls_command.m, plot/__print_parse_opts__.m: + Search PATH for programs, not EXEC_PATH. + + * plot/print.m: Refer to PATH, not EXEC_PATH in error messages. + * plot/__print_parse_opts__.m: Likewise. + + 2010-11-25 Kai Habel + + * (plot/uimenu.m): Simplify code, add further check. + * (plot/uigetdir.m, plot/uigetfile.m, plot/uiputfile.m): + Fix error messages. + + 2010-11-25 John W. Eaton + + * time/datetick.m: Add missing semicolon. + + 2010-11-21 Rik + + * optimization/sqp.m: Use correct stopping tolerance in documentation. + + 2010-11-21 Kai Habel + + * (plot/uigetdir.m, plot/private/__fltk_file_filter__.m:): Check if + file argument is a valid path, don't use fileparts in this case. + + 2010-11-21 Ben Abbott + + * plot/__go_draw_axes__.m: Fix plot titles so they are visible for + gnuplot 4.4.x (31711). + * general/cell2mat.m: Return empty matrix for empty cell. + + 2010-11-21 Kai Habel + + * (plot/uigetfile.m, plot/uiputfile.m): Set default directory to pwd. + + 2010-11-21 Kai Habel + + * plot/uigetdir.m, plot/uigetfile.m, plot/uiputfile.m, + plot/private/__fltk_file_filter__.m: New files. + * plot/module.mk: Add new files. + * miscellaneous/unimplemented.m: Remove uigetdir.m, uigetfile.m, + and uiputfile.m from list of unimplemented functions. + + 2010-11-20 Rik + + * plot/gnuplot_drawnow.m: Remove spurious line causing 'ans=1' to be + returned when printing plots. + + 2010-11-19 Ben Abbott + + * plot/__gnuplot_has_feature__.m: Since there is not gnuplot 4.3.x + release, replace reference to version 4.3 with 4.4. + + 2010-11-18 Ben Abbott + + * plot/text.m: Ensure text position property is set after units + property. + * plot/__go_draw_axes__.m: Fix bug setting zscale to yscale (31693). + + 2010-11-18 Christos Dimitrakakis + + * statistics/distributions/betapdf.m: Use lgamma to compute + normalising constant in log space in order to handle large + parameters a and b. Ensure correct values at x == 0 or x == 1. + + 2010-11-18 Ben Abbott + + * plot/__print_parse_opts__.m: For tests, allow __print_parse_opts__ + to run with no inputs. + + 2010-11-17 Ben Abbott + + * general/subsindex.m: Fix typo in doc-string. + + 2010-11-17 John W. Eaton + + * strings/strchr.m: Style fixes. + + 2010-11-17 Kim Hansen + + * strings/strchr.m: New tests. + + 2010-11-16 Ben Abbott + + * miscellaneous/unimplemented.m: Update unimplemented functions list. + + 2010-11-15 Rik + + * plot/saveas.m: Add function name to error messages. Use semicolons + to prevent unnecessary output. Use common terms 'ext' for extension + and 'filename' for filename in docstring. + + 2010-11-15 Kai Habel + + * plot/saveas.m: New file. + * plot/module.mk: Add saveas.m + * plot/__print_parse_opts__.m: Parse arguments correctly when first + argument is a figure handle. + * plot/print.m: Add saveas to seealso entry. + + 2010-11-14 Michael Goffioul + + * plot/print.m: Use "del" instead of "delete" in DOS shell, and + replace forward slashes with backslashes. + * plot/__gnuplot_print__.m: Likewise. + + 2010-11-14 Jaroslav Hajek + + * optimization/__all_opts__.m: Ensure that the array is always + case-insensitively sorted. + + 2010-11-13 John W. Eaton + + * plot/gnuplot_drawnow.m (have_non_legend_axes): New function. + Use it to avoid errors if there are no axes. + * plot/legend.m: Avoid indexing beyond end of varargin array. + + 2010-11-10 John W. Eaton + + * gethelp.cc: Eliminate special case for __DECCXX. + + 2010-11-10 John W. Eaton + + * scripts/deprecated/dispatch.m: Don't set warning state in tests. + + 2010-11-10 John W. Eaton + + * deprecated/dispatch.m: Deprecate dispatch function. + * deprecated/module.mk (deprecated_FCN_FILES): Add it to the list. + + 2010-11-09 John W. Eaton + + * help/help.m: Call missing_function_hook with output argument + and print message here. + * miscellaneous/unimplemented.m: Return message if nargout > 0. + Fixes bug #31597. + + 2010-11-08 Ben Abbott + + * plot/__go_draw_axes__.m: Check for z/y/zdata before converting + negative values to NaNs. Bug fix for changeset 11201. + * plot/daspect.m: Fix demo using both daspect and pbaspect. + + 2010-11-08 David Bateman + + * plot/__go_draw_axes__.m: Remove foreground color earlier. + * plot/__go_draw_figure__.m: Don't set the foreground color here. + + 2010-11-08 Rik + + * sparse/sprand.m: Add input validation to function. + + 2010-11-08 Ben Abbott + + * plot/private/__bar__.m: Permit bar() to be called with scalar inputs. + * plot/__go_draw_axes__.m, plot/axis.m: Set proper tight axis limits + for log scale. + + 2010-11-07 David Bateman + + * plot/legend.m: Remove call to drawnow. + + * plot/__go_draw_axes__.m: Pass the legend axes as a structure. + Test whether the legend axis has any children before using it. + * plot/__go_draw_figure.m: Setup a fake axis to handle multi-parent + legend axes and delete this fake axiss when we're done with it. + * plot/gnuplot_drawnow.m: Don't cound legend axes when decidong if + multiplot should be used or not. + * plot/legend.m: Handle correctly plotyy as a multi-parented axis. + Reuse existing legend axis if possible. Setup listeners to propagate + changes in the lines to the legend. Setup listeners that handle the + properties that need to legend to be recreated. + * plot/plotyy.m: Cross-references the axes of the plotyy in the userdata + of the axes. + + 2010-11-07 Konstantinos Poulios + + * plot/colorbar.m: Make colorbar function aware of dataaspect settings. + + 2010-11-06 Marco Caliari + + * polynomial/spline.m: Fit a parabola for input with 3 + elements (bug #31098). + + 2010-11-04 Rik + + * plot/__fltk_ginput__.m: Use semicolons to prevent internal + function evaluations being output to screen. + + 2010-11-04 Rik + + * plot/module.mk: Add __fltk_ginput__.m to list of scripts + + 2010-11-04 Rik + + * Makefile.am: Update check-m-sources target to include generated + function files. + + 2010-11-04 Rik + + * general/accumarray.m, general/accumdim.m, general/blkdiag.m, + general/cell2mat.m, general/common_size.m, + general/private/__isequal__.m, general/private/__splinen__.m, + geometry/voronoi.m, io/textscan.m, miscellaneous/private/__xzip__.m, + pkg/pkg.m, plot/axis.m, plot/pareto.m, plot/private/__patch__.m, + statistics/base/mode.m, strings/deblank.m, strings/strcat.m, + strings/strmatch.m, strings/strtrim.m, strings/untabify.m: + Reverse previous changeset. Use all lower case for "uniformoutput" + option. + + 2010-11-03 Rik + + * general/accumdim.m, general/cell2mat.m, general/common_size.m, + general/structfun.m, pkg/pkg.m, strings/untabify.m: Use CamelCase + for 'UniformOutput' option to cellfun. + + 2010-11-03 Rik + + * scripts/plot/plotyy.m, scripts/plot/xlim.m, scripts/plot/ylim.m, + scripts/plot/zlim.m: Fix typos in docstring and demo string. + + 2010-11-03 Rik + + * general/common_size.m, miscellaneous/private/__xzip__.m, + miscellaneous/what.m, plot/pareto.m, plot/private/__patch__.m: + Use function handle as input to cellfun rather than quoted function + name or anonymous function wrapper. + + 2010-11-03 Konstantinos Poulios + + * plot/axis.m: Making 'axis equal' equivalent to 'daspect([1,1,1])'. + + 2010-11-03 Konstantinos Poulios + + * plot/private/__actual_axis_position__.m: Remove temporary + calculation of plotboxratio for the gnuplot backend when + dataaspectratiomode, xlimmode and ylimmode are all set to manual. + Now this case is handled in src/graphics.cc . + + 2010-11-03 Konstantinos Poulios + + * plot/axis.m: Leave zlim unchanged during "axis tight" on 2D plots + + 2010-11-03 Ben Abbott + + * plot/private/__patch__.m: Don't index an empty array; bug introduced + by changeset 11175. + + 2010-11-03 Ben Abbott + + * miscellaneous/getappdata.m, miscellaneous/isappdata.m, + miscellaneous/rmappdata.m, miscellaneous/setappdata.m: + Add new appdata function. + + 2010-11-01 David Bateman + + * plot/__private__/__contour__.m: Use __go_patch__ rather than patch + to avoid the cost of the patch callback functions. Ensure that the + properties that are normally set by patch are correctly set in the + call to __go_patch__. + + 2010-11-01 Ben Abbott + + * plot/axis.m: Exclude hggroup {x,y,z}data properties when determing + tight axis limits. + + 2010-10-31 Rik + + * strings/base2dec.m, strings/bin2dec.m, strings/dec2base.m, + strings/dec2bin.m, strings/dec2hex.m, strings/hex2dec.m: + Improve docstrings, use more descriptive variable names, + add more tests for functions used to convert between bases. + + 2010-10-31 Konstantinos Poulios + + * plot/__go_draw_axes__.m: Removing deprecated code handling the case + of both plotboxaspectratiomode and dataaspectratiomode set to manual + for the gnuplot backend. Now this case is handled already in + src/graphics.cc where xlim, ylim, zlim are recalculated if necessary. + + 2010-10-30 Gunnar FarnebÀck + + * strings/dec2base.m: Update algorithm to handle numbers up to 2^64-1. + + 2010-10-28 Rik + + * deprecated/module.mk, signal/module.mk, deprecated/autocov.m, + deprecated/autocor.m: Deprecate autocov and autocor functions. + + 2010-10-27 David Bateman + + * plot/__go_draw_axes__.m: Don't attempt to plot patch outlines if + the marker property is set to none. + + 2010-10-28 Ben Abbott + + * plot/daspect.m, plot/pbaspect.m: Add demos setting both data and + plotbox aspect ratios. + + 2010-10-27 David Bateman + + * plot/private/__patch__.m (setdata, setvertexdata): If argments are + repeated, take the last argument only into account. Set cdata and + facevertexcdata properties always. + + 2010-10-26 Kai Habel + + * plot/uimenu.m: Add simple demo + + 2010-10-25 David Bateman + + * statistics/distributions/discrete_pdf.m: Sort values before calling + the lookup function. + + 2010-10-25 Kai Habel + + * plot/uimenu.m: New function + * plot/__go_draw_figure__.m: Ignore uimenu objects for gnuplot + backend + * plot/module.mk (plot_FCN_FILES): Add it to the list. + + 2010-10-24 Rik + + * miscellaneous/compare_versions.m, plot/ylabel.m, plot/ylim.m, + plot/zlabel.m, plot/zlim.m: Docstring improvements. + + 2010-10-24 Rik + + * specfun/module.mk, deprecated/module.mk, deprecated/betai.m, + deprecated/gammai.m, deprecated/is_global.m: Deprecate betai, + gammai, and is_global functions. + + 2010-10-23 John W. Eaton + + * strings/untabify.m, strings/strjust.m, io/strread.m: + Docstring fixes. + + 2010-10-23 John W. Eaton + + * statistics/distributions/nbinrnd.m: Use | instead of || in + argument to find. + + * deprecated/intwarning.m, general/bicubic.m, general/postpad.m, + general/prepad.m, general/private/__splinen__.m, + general/shift.m, miscellaneous/swapbytes.m, pkg/pkg.m, + plot/clabel.m, plot/colorbar.m, plot/fill.m, plot/legend.m, + plot/plotmatrix.m, plot/plotyy.m, plot/private/__clabel__.m, + plot/private/__ezplot__.m, plot/private/__quiver__.m, + plot/subplot.m, signal/unwrap.m, statistics/base/histc.m, + statistics/base/iqr.m, statistics/base/kurtosis.m, + statistics/base/mode.m, statistics/base/ranks.m, + statistics/base/run_count.m, statistics/base/skewness.m, + statistics/base/statistics.m, statistics/base/studentize.m, + statistics/distributions/exprnd.m, + statistics/distributions/frnd.m, + statistics/distributions/geornd.m, + statistics/distributions/lognrnd.m, + statistics/distributions/nbinrnd.m, + statistics/distributions/poissrnd.m, + statistics/distributions/trnd.m, + statistics/distributions/wblrnd.m, strings/strcat.m, + time/datestr.m, time/datetick.m: Break lines before && and ||, + not before. + + 2010-10-23 John W. Eaton + + * io/strread.m: Docstring fixes. + + 2010-10-23 John W. Eaton + + * io/is_valid_file_id.m: Ensure that FID is a scalar before + calling fopen to get info. New tests. + + 2010-10-23 John W. Eaton + + * io/is_valid_file_id.m: New function. + * io/module.mk (io_FCN_FILES): Add it to the list. + + 2010-10-23 Ben Abbott + + * io/textscan.m, miscellaneous/unimplemented.m, io/module.mk: + New function. + + 2010-10-22 Ben Abbott + + * plot/legend.m: Trivial fix to allow legend handle to be returned. + + 2010-10-21 John W. Eaton + + * statistics/base/quantile.m: Fix typo in previous change. + + 2010-10-21 Rik + + * statistics/distributions/wblcdf.m, statistics/distributions/wblinv.m, + statistics/distributions/wblpdf.m, statistics/distributions/wblrnd.m: + Fix reversed documentation for shape and scale parameters. + + 2010-10-21 Ben Abbott + + * io/strread.m: Improve compatibility with Matlab. + + 2010-10-21 John W. Eaton + + * general/private/__isequal__.m: Style fixes. + + 2010-10-20 Iain Murray + + * general/private/__isequal__.m: Fix bug #31239 where + isequalwithequalnans is incorrect. + + 2010-10-20 Rik + + * polynomial/conv.m: Remove redundant test. + * signal/fftconv.m: Add tests used by conv.m code. + + 2010-10-20 Olaf Till + + * optimization/optimset.m: Use cell2struct instead of struct to + handle cell arrays as options. + + 2010-10-20 John W. Eaton + + * io/strread.m, optimization/sqp.m, plot/daspect.m, + plot/pbaspect.m, plot/gnuplot_drawnow.m, plot/isocolors.m, + plot/isonormals.m, plot/legend.m, plot/print.m, + plot/private/__interp_cube__.m, plot/__fltk_print__.m, + plot/__gnuplot_print__.m, plot/__print_parse_opts__.m, + statistics/base/quantile.m: Style fixes. + + 2010-10-19 John W. Eaton + + * strings/module.mk (strings_FCN_FILES): Include + strings/untabify.m in the list. + * strings/untabify.m: Escape { and } characters in docstring. + + 2010-10-19 Ben Abbott + + * strings/strjust.m: Add "untabify" and "strrep" to @seealso{} in the + doc-string. + + 2010-10-18 Thorsten Meyer + + * general/gradient.m, linear-algebra/normest.m, + plot/__gnuplot_print__.m, plot/__print_parse_opts__.m, + plot/daspect.m, plot/gnuplot_drawnow.m, plot/pbaspect.m, + plot/print.m, signal/periodogram.m: + Style fix, replace end by endfor. + + 2010-10-18 Marco Caliari + + * polynomial/polyval.m: Use Horner's method. + + 2010-10-18 John W. Eaton + + * plot/__go_draw_axes__.m: Always use gnuplot to display images. + * image/image.m: Delete references to image_viewer. + * image/image_viewer.m: Delete obsolete function. + * image/module.mk (image_FCN_FILES): Remove image/image_viewer.m + from the list. + + 2010-10-18 Gunnar Farneback + + * general/interp2.m: Fix input checks for cubic + interpolation (bug #31352, part 1). + + 2010-10-18 Ben Abbott + + * plot/print.m: Add examples to the docstring. + + 2010-10-18 John W. Eaton + + * plot/private/__errplot__.m: Remove debugging statement from + previous change. + + 2010-10-17 John W. Eaton + + * miscellaneous/edit.m: Use version 3 in GPL notice. + + * @ftp/ascii.m, @ftp/binary.m, @ftp/cd.m, @ftp/close.m, + @ftp/delete.m, @ftp/dir.m, @ftp/display.m, @ftp/ftp.m, + @ftp/loadobj.m, @ftp/mget.m, @ftp/mkdir.m, @ftp/mput.m, + @ftp/rename.m, @ftp/rmdir.m, @ftp/saveobj.m, + help/__makeinfo__.m, help/__strip_html_tags__.m, + help/gen_doc_cache.m, help/get_first_help_sentence.m, + help/help.m, help/lookfor.m, help/print_usage.m, + help/private/__additional_help_message__.m, help/type.m, + help/which.m, io/fileread.m, io/strread.m, io/textread.m, + pkg/get_forge_pkg.m, plot/__gnuplot_has_feature__.m, + plot/__gnuplot_open_stream__.m, plot/__marching_cube__.m, + plot/cla.m, plot/comet.m, plot/daspect.m, plot/isocolors.m, + plot/isonormals.m, plot/isosurface.m, plot/pbaspect.m, + plot/private/__interp_cube__.m, plot/private/__ghostscript__.m, + plot/private/__tight_eps_bbox__.m, + plot/private/__gnuplot_has_terminal__.m, + polynomial/polyaffine.m, sparse/svds.m, strings/strsplit.m: + Use Octave copyright notice instead of generic "This program is + free software" notice. + + 2010-10-18 Ben Abbott + + * strings/untabify.m: New function to untabify text. + + 2010-10-17 Ben Abbott + + * plot/mesh.m, plot/surf.m: Include the 4th input (color) in the + docstring. + + 2010-10-16 Ben Abbott + + * plot/private/__errplot__.m, plot/errorbar.m: Allow line and marker + types to be set. + + 2010-10-14 John W. Eaton + + * special-matrix/rosser.m: New tests. + * special-matrix/wilkinson.m: Fix error message. New tests. + * special-matrix/pascal.m: Error if T is out of range. + New tests. + + 2010-10-14 John W. Eaton + + * set/unique.m: Remove check for issparse existence since it is + now a built-in function. + + 2010-10-14 Ben Abbott + + * strings/strjust.m: Clarify that justification applies to spaces and + null characters. + + 2010-10-09 Ben Abbott + + * plot/__go_draw_axes__.m: Enable linetypes for gnuplot. + + 2010-10-09 John W. Eaton + + * statistics/distributions/geornd.m, + * statistics/distributions/hygecdf.m, + * statistics/distributions/hygeinv.m, + * statistics/distributions/poissrnd.m, + * statistics/distributions/wblrnd.m: + Use || instead of | and && instead of & in IF conditions + involving scalars. + + 2010-10-09 John W. Eaton + + * plot/__fltk_ginput__.m: Use || instead of | in IF condition. + + 2010-10-08 Ben Abbott + + * image/image.m, plot/__go_draw_axes__.m: Do not store flipped image + property values when x/ydata descends. + + 2010-10-07 John W. Eaton + + * signal/periodogram.m: Fix parse errors. + + 2010-10-07 John W. Eaton + + * time/datevec.m: Use endfunction to mark end of primary + function and subfunctions. + + 2010-10-07 Rik + + * polynomial/conv.m: Improve docstring. + * signal/fftconv.m: Improve docstring and error messages. + + 2010-10-07 John W. Eaton + + * polynomial/conv.m: Handle optional third argument. New + tests. Update doc string. + + 2010-10-06 Ben Abbott + + * image/image.m: Allow x/ydata to imply a flip of the image. + Modify demos. + + 2010-10-05 Carlo de Falco + + * general/quadv.m: Fix help string and add a test for vector + valued functions. + + 2010-10-04 Shai Ayal + + * image/image.m (__img__): Use __image_pixel_size__ to calculate + limits + + 2010-09-28 John P. Swensen + + * image/imwrite.m: Call __magick_format_list__ to get list of + accepted formats. + + 2010-09-28 Rik + + * linear-algebra/logm.m, plot/legend.m, signal/periodogram.m: + Untabify scripts. + + 2010-09-27 Rik + + * io/dlmwrite.m: Replace non-POSIX '\d' regex pattern. + + * miscellaneous/edit.m, path/savepath.m, + plot/__gnuplot_get_var__.m, + plot/private/__gnuplot_has_terminal__.m, plot/refreshdata.m, + plot/whitebg.m, testfun/runtests.m, time/datestr.m: + Use single quotes for regular expression patterns when possible. + + * miscellaneous/ls.m, plot/__gnuplot_ginput__.m, + plot/__go_draw_axes__.m, plot/private/__ezplot__.m, + testfun/test.m: Remove uses of shorthand character classes + within list operators which is unsupported by POSIX regex. + + * pkg/get_forge_pkg.m: Select desired output from regexp + rather than ignoring most outputs. + + 2010-09-28 Ben Abbott + + * plot/__print_parse_opts__.m: Fix test. + + 2010-09-27 Jaroslav Hajek + + * elfun/lcm.m: Simplify. + + 2010-09-27 Ben Abbott + + * plot/__print_parse_opts__.m: Properly crop eps image and fix tests. + + * plot/__go_draw_axes__.m, plot/private/__ezplot__.m, + testfun/test.m: Remove uses of shorthand character classes + within list operators which is unsupported by POSIX regex. + + * pkg/get_forge_pkg.m: Select desired output from regexp + rather than ignoring most outputs. + + 2010-09-26 Rik + + * testfun/runtests.m (has_tests): Recode to remove requirement for PCRE. + Bug #31025. + + 2010-09-25 Ben Abbott + + * plot/__print_parse_opts__.m: Recongize gs devices {eps/pdf/ps}write. + + 2010-09-23 John W. Eaton + + * miscellaneous/bug_report.m: Display information about how to + submit bug reports instead of creating and mailing a bug report. + + 2010-09-22 Ben Abbott + + * plot/private/__ghostscript__.m, plot/print.m: When appending, delete + temporay files at the end of the ghostscript pipeline. + + 2010-09-21 Ben Abbott + + * plot/__fltk_print__.m, plot/private/__ghostscript__.m, + plot/__gnuplot_print__.m, plot/__print_parse_opts__.m, + plot/print.m: Print via a pipeline. + + 2010-09-20 Ben Abbott + + * plot/legend.m: Index location cellstr to obtain a string. + + 2010-09-19 Ben Abbott + + * plot/colorbar.m, plot/axis.m, + plot/private/__actual_axis_position__.m, plot/__go_draw_axes__.m: + Special treatment activepositionproperty = outerposition for the + gnuplot backend. This allows the gnuplot key to be placed outside + the plotbox. + * plot/private/__plt__.m: Trivial fix for recent legend changeset. + * plot/legend.m: Treat line, patch, and surface objects differetly. + * plot/__go_draw_axes__.m: Remove left over debug code. + * miscellaneous/mkoctfile.m: Change help text to be consistent with + the shell version. + + 2010-09-18 David Bateman + + * plot/__go_draw_axes__.m: Modify legend code to use data from legend + axes. + * plot/__go_draw_figure__.m: Draw draw figure axes, but pass their + data to the axis they are associated with. + * plot/__get_plt_axes_arg__.m: Ignores axes tagged with "legend". + * plot/legend.m: Rewrite to use line and text primitives in a seperate + axis. + * plot/plot3.m: Support old legend format (eg "-;title'") with new + legend code. + * plot/private/__plt__.m: Ditto. + + 2010-09-16 Ben Abbott + + * plot/__go_draw_axes__.m: Ensure text objects have units of "data". + + 2010-09-16 John Swensen + + * imwrite.m: Accept more image formats. + + 2010-09-16 Jaroslav Hajek + + * signal/periodogram.m: Support additional inputs: + win, nfft, Fs, range. Thanks to Alois Schlögl. + + 2010-09-13 Ben Abbott + + * plot/gnuplot_drawnow.m: Use new function __gnuplot_has_terminal__(). + * plot/private/__gnuplot_has_terminal__.m: New function. + + 2010-09-13 Jaroslav Hajek + + * general/common_size.m: Partially rewrite using cellindexmat. + + 2010-09-13 Jaroslav Hajek + + * general/accumarray.m: Use @vec instead of @(x) x(:) for faster call. + + 2010-09-11 Jaroslav Hajek + + * pkg/get_forge_pkg.m: Allow underscores in pkg names. + + 2010-09-08 Ben Abbott + + * plot/__fltk_print__.m, plot/private/__ghostscript__.m, + plot/__gnuplot_print__.m, plot/__print_parse_opts__.m, + plot/print.m: Consolidate gs code into print.m. + * plot/colorbar.m, plot/axis.m, + plot/private/__actual_axis_position__.m, plot/__go_draw_axes__.m: + Revert treatment of activepositionproperty from the gnuplot backend. + * image/image.m: Fix axis limits for single dimension images, add + demo. + + 2010-09-07 David Bateman + + * plot/plotyy.m: Don't add the __plotyy_axes__ property to the + axes handles if iit already exists. + + 2010-09-06 Petr Mikulik + + * geometry/griddata.m: Allow x, y to be vectors, and z a matrix. + + 2010-09-03 David Bateman + + * geometry/delaunay.m: Allow the delaunay function to treat + matrices of the same size for compatibility. + + 2010-09-03 Ben Abbott + + * image/image.m: Matlab compatible axis limits, add demo. + + 2010-09-01 Jaroslav Hajek + + * io/dlmwrite.m: Don't fclose if file ID is supplied. + + 2010-09-01 Jaroslav Hajek + + * io/dlmwrite.m: Support file IDs. + + 2010-07-07 David Bateman + + * miscellaneous/what.m: Off by one error. + + * plot/__go_draw_axes__.m: Improve matlab compatibility for "." + marker. + + 2010-08-31 Ben Abbott + + * plot/private/__actual_axis_position__.m, plot/__go_draw_axes__.m, + plot/axis.m, plot/colorbar.m, plot/daspect.m, plot/plotyy.m, + plot/subplot.m: Treatment of activepositionproperty for gnuplot. + * plot/__go_draw_axes__.m: Missing part of last changeset. + * plot/__go_draw_axes__.m: Fix specification of pointtype for patches + (bug introduced in rev 2f9de135e7f9). + + 2010-08-30 Ben Abbott + + * plot/__go_draw_axes__.m: Use gnuplot's pentagon for marker == 'p'. + + 2010-08-27 Ben Abbott + + * plot/colorbar.m, * plot/__go_draw_axes__.m, + plot/private/__actual_axis_position__.m: Don't pass figure handle to + __calc_dimensions__. + * plot/private/__ghostscript__.m: Don't set anti-aliasing options for + vector formats. + * plot/__print_parse_opts__.m: Fix tests. + + 2010-08-27 Jordi Gutiérrez Hermoso + + * plot/__go_draw_axes__.m (__calc_dimensions__): Delete. + * plot/__actual_axis_position__.m (__calc_dimensions__): Delete. + + 2010-08-27 Pascal A. Dupuis + + * plot/hold.m: If arg is axis handle, get corresponding figure + handle from axis parent property. + + 2010-08-27 Ben Abbott + + * plot/__gnuplot_print__.m: Properly restore fontsize after eps output. + * plot/plotyy.m: Modified demo for changeset 10912 9abc67b4bd4f. + * plot/__fltk_print__.m, plot/__go_draw_axes__.m, + plot/__go_draw_figure__.m, plot/__gnuplot_print__.m, + plot/gnuplot_drawnow.m, plot/print.m, plot/private/__ghostscript__.m, + plot/private/__tight_eps_bbox__.m: Unify gnuplot printing with the + the fltk backend. Turn figure background color off when printing. + Improve the axes font spacing for most gnuplot terminals. + + 2010-08-26 Ben Abbott + + * plot/__go_draw_axes__.m: For yaxislocation == 'right' associate text + position with 'second' coordinate system. + + 2010-08-25 Ben Abbott + + * plot/__go_draw_axes__.m: Revert erroneous portion of changeset + 10910 40cf7cc4ea62. + + 2010-08-24 Ben Abbott + + * plot/private/__actual_axis_position__.m, plot/__go_draw_axes__.m: + Properly interpret plotboxaspectratio when 3D objects are viewed as 2D. + * plot/colorbar.m: Add demo. + + 2010-08-23 Jaroslav Hajek + + * general/interp2.m: Don't use bicubic for consistency (can't handle + non-grid interpolation). + + 2010-08-17 Rik + + * general/randi.m: Add IMAX check for class "single" numbers. + + 2010-08-15 Rik + + * general/randi.m: Add new script for random integers. + * general/module.mk: Add randi to build file list. + * miscellaneous/unimplemented.m: Remove randi from unimplemented list. + + 2010-08-15 Rik + + * image/imwrite.m: Allow writing of 1-bit (B&W) images. + Improve documentation string. Add input validation tests. + + 2010-08-13 Ben Abbott + + * plot/__print_parse_opts__.m: Double quote paths with spaces. + + 2010-08-11 Rik + + * set/unique.m: Handle corner case where sparse matrix is actually full. + + 2010-08-10 Rik + + * set/unique.m: Check whether outputs are used before calculating. + + 2010-08-10 Rik + + * statistics/base/module.mk, deprecated/module.mk, + statistics/base/values.m, deprecated/values.m: Deprecate values.m + + 2010-08-08 Rik + + * miscellaneous/unimplemented.m: Add newlines to format output for + easier reading. Format all lines < 80 characters. Remove + 'whitebg' function from unimplemented list. + + 2010-08-08 Rik + + * @ftp/PKG_ADD: Remove temporary build file from hg version control. + + 2010-08-09 Ben Abbott + + * plot/__print_parse_opts__.m: Default pstex suffix should be '.ps'. + + 2010-08-08 Rik + + * Makefile.am: Create .DOCSTRINGS quietly and avoid screen clutter + during build. + + 2010-08-08 Rik + + * Makefile.am: Run do_subst macro quietly without cluttering screen + during build. + + 2010-08-08 Ben Abbott + + * plot/print.m: Include 'colormap' when converting RGB to mono. + + 2010-08-07 Ben Abbott + + * plot/__fltk_print__.m: When running pstoedit, crop eps file after it + is created. Correctly check error status. + + 2010-08-06 Jaroslav Hajek + + * general/cell2mat.m: Allow cells of struct arrays. + + 2010-08-05 Ben Abbott + + * plot/__print_parse_opts__.m, plot/__fltk_print__.m: Don't warn on + absence of fig2dev or pstoedit until they are needed. + * plot/__print_parse_opts__.m, plot/__fltk_print__.m: Add epslatex, + pslatex, and pdflatex output for fltk backend. Use the gs png16m device + instead of png256. + * plot/print.m: Modify texinfo. Add unwind_protect block. + + 2010-08-01 Marco Caliari + + * general/bicubic.m: Fix bug #30400 when bicubic called with small + numbers of arguments. + + 2010-08-04 Jaroslav Hajek + + * general/sortrows.m: Don't actually permute the rows if not + requested. + + 2010-08-04 Ben Abbott + + * plot/print.m, plot/__print_parse_opts__.m, plot/__gnuplot_print__.m, + plot/private/__ghostscript__.m: plot/__fltk_print__.m: Add ps and pdf + output for fltk backend, improved use of ghostscript, and minor + improvements. + + 2010-08-01 Rik + + * deprecated/intwarning.m, general/arrayfun.m, general/cplxpair.m, + general/interp1.m, general/interpn.m, general/quadgk.m, + general/structfun.m, image/image_viewer.m, io/strread.m, + miscellaneous/warning_ids.m, optimization/lsqnonneg.m, pkg/pkg.m, + plot/__marching_cube__.m, plot/bar.m, plot/contourc.m, plot/errorbar.m, + plot/ezplot.m, plot/isocolors.m, plot/isonormals.m, plot/isosurface.m, + plot/stem.m, plot/stem3.m, polynomial/compan.m, polynomial/ppval.m, + signal/arch_rnd.m, sparse/pcg.m, sparse/svds.m, + special-matrix/invhilb.m, statistics/distributions/wblcdf.m, + testfun/assert.m, testfun/demo.m, testfun/speed.m: + Grammarcheck documentation. Add @noindent lines and ensure line + length is less than 80. + + 2010-08-01 Martin Helm + + * plot/isosurface.m: Swap rows and columns of matrix in call to + meshgrid. + + 2010-08-01 Rik + + * plot/print.m: Update documentation string. Change to active voice. + + 2010-07-30 Rik + + * Makefile.am: add .DOCSTRINGS to the DISTCLEANFILES list + + 2010-07-29 Ben Abbott + + * plot/print.m, plot/__print_parse_opts__.m, plot/__fltk_print__.m, + plot/__gnuplot_print__.m: Improved printing for the fltk backend. + * plot/private/__ghostscript__.m, plot/private/__tight_eps_bbox__.m: + New files to support printing. + + 2010-07-29 Jaroslav Hajek + + * linear-algebra/expm.m: Special-case scalars and diagonal matrices. + Suggested by M. Caliari. + + 2010-07-26 Rik + + * linear-algebra/logm.m: Improve documentation string. Add GPL header. + Add additional test block. + + 2010-07-28 Jaroslav Hajek + + * linear-algebra/logm.m: Rewrite. Thanks to M. Caliari and R. T. Guy. + + 2010-07-26 Rik + + * deprecated/complement.m, deprecated/intwarning.m, general/arrayfun.m, + general/circshift.m, general/colon.m, general/common_size.m, + general/del2.m, general/flipdim.m, general/fliplr.m, general/flipud.m, + general/idivide.m, general/interp1.m, general/interp2.m, + general/interp3.m, general/interpn.m, general/loadobj.m, + general/quadgk.m, general/rat.m, general/saveobj.m, general/shiftdim.m, + geometry/delaunayn.m, image/image_viewer.m, image/imfinfo.m, + io/csvread.m, io/csvwrite.m, io/strread.m, linear-algebra/condest.m, + linear-algebra/housh.m, linear-algebra/onenormest.m, + linear-algebra/qzhess.m, miscellaneous/bincoeff.m, + miscellaneous/compare_versions.m, miscellaneous/computer.m, + miscellaneous/edit.m, miscellaneous/fileattrib.m, + miscellaneous/getfield.m, miscellaneous/license.m, miscellaneous/ls.m, + miscellaneous/parseparams.m, miscellaneous/swapbytes.m, + miscellaneous/ver.m, miscellaneous/warning_ids.m, + optimization/fminbnd.m, optimization/fminunc.m, optimization/fsolve.m, + optimization/fzero.m, optimization/glpk.m, optimization/lsqnonneg.m, + optimization/pqpnonneg.m, optimization/qp.m, optimization/sqp.m, + path/pathdef.m, pkg/pkg.m, plot/__marching_cube__.m, plot/axis.m, + plot/colorbar.m, plot/contourc.m, plot/contourf.m, plot/cylinder.m, + plot/ezplot.m, plot/isocolors.m, plot/isonormals.m, plot/legend.m, + plot/print.m, plot/refreshdata.m, plot/slice.m, plot/subplot.m, + plot/surfl.m, polynomial/compan.m, polynomial/mpoles.m, + polynomial/poly.m, polynomial/polyaffine.m, polynomial/polyfit.m, + polynomial/polygcd.m, polynomial/polyout.m, polynomial/residue.m, + polynomial/roots.m, polynomial/unmkpp.m, set/union.m, signal/filter2.m, + signal/stft.m, sparse/spdiags.m, specfun/bessel.m, specfun/beta.m, + specfun/betaln.m, specfun/nchoosek.m, specfun/nthroot.m, + specfun/perms.m, special-matrix/hadamard.m, special-matrix/hankel.m, + special-matrix/hilb.m, special-matrix/invhilb.m, + special-matrix/toeplitz.m, special-matrix/vander.m, + statistics/base/cloglog.m, statistics/base/cor.m, + statistics/base/corrcoef.m, statistics/base/kendall.m, + statistics/base/kurtosis.m, statistics/base/logit.m, + statistics/base/mean.m, statistics/base/median.m, + statistics/base/quantile.m, statistics/base/skewness.m, + statistics/base/std.m, statistics/base/var.m, + statistics/distributions/kolmogorov_smirnov_cdf.m, + statistics/distributions/wblcdf.m, statistics/tests/cor_test.m, + statistics/tests/hotelling_test_2.m, strings/bin2dec.m, + strings/cstrcat.m, strings/dec2bin.m, strings/dec2hex.m, + strings/findstr.m, strings/hex2dec.m, strings/index.m, + strings/isstrprop.m, strings/regexptranslate.m, strings/rindex.m, + strings/strcat.m, strings/substr.m, testfun/demo.m, time/asctime.m, + time/clock.m, time/ctime.m, time/date.m, time/datenum.m, + time/is_leap_year.m: Grammarcheck documentation of m-files. + Add newlines between @items for readability. + + 2010-07-26 Ben Abbott + + * general/interp1.m: When absent set X equal to the inices of Y. + * general/interpn.m: Convert interpolation vectors of non-equal + length to nd-arrays. + + 2010-07-26 Soren Hauberg + + * image/image.m: Replace parenthesis with curly bracket in Texinfo. + + 2010-07-25 Rik + + * image/image.m: Always reverse 'ydir' property when displaying images. + + 2010-07-19 Rik + + * help/__makeinfo__.m: Add support to process @nopsell macro. + Fix bug when more than one @seealso block exists. + + 2010-07-19 Rik + + * general/repmat.m: Add seealso to new repelems function. + + 2010-07-19 Jaroslav Hajek + + * specfun/nchoosek.m: Optimize. + + 2010-07-18 Rik + + * @ftp/ftp.m, @ftp/mget.m, audio/lin2mu.m, audio/loadaudio.m, + audio/mu2lin.m, audio/playaudio.m, audio/saveaudio.m, + audio/wavwrite.m, deprecated/create_set.m, + deprecated/intwarning.m, deprecated/lchol.m, + deprecated/spchol.m, deprecated/spdiag.m, deprecated/spfind.m, + deprecated/splchol.m, deprecated/splu.m, deprecated/spmax.m, + deprecated/spmin.m, deprecated/spqr.m, deprecated/weibcdf.m, + deprecated/weibrnd.m, general/accumarray.m, general/bitset.m, + general/colon.m, general/deal.m, general/del2.m, + general/genvarname.m, general/gradient.m, general/interp1.m, + general/interp2.m, general/interp3.m, general/interpft.m, + general/interpn.m, general/nargchk.m, general/nargoutchk.m, + general/nextpow2.m, general/num2str.m, general/pol2cart.m, + general/polyarea.m, general/prepad.m, general/quadgk.m, + general/quadl.m, general/quadv.m, general/rat.m, + general/repmat.m, general/shiftdim.m, general/structfun.m, + general/trapz.m, geometry/convhull.m, geometry/delaunay.m, + geometry/delaunay3.m, geometry/delaunayn.m, geometry/dsearch.m, + geometry/dsearchn.m, geometry/griddata.m, geometry/trimesh.m, + geometry/triplot.m, geometry/trisurf.m, geometry/voronoi.m, + geometry/voronoin.m, help/__makeinfo__.m, help/gen_doc_cache.m, + help/get_first_help_sentence.m, help/print_usage.m, help/type.m, + image/brighten.m, image/colormap.m, image/image.m, + image/imagesc.m, image/imfinfo.m, image/imshow.m, + image/imwrite.m, image/ind2rgb.m, io/dlmwrite.m, io/fileread.m, + io/strread.m, io/textread.m, linear-algebra/cond.m, + linear-algebra/condest.m, linear-algebra/ishermitian.m, + linear-algebra/onenormest.m, miscellaneous/bzip2.m, + miscellaneous/dir.m, miscellaneous/dos.m, miscellaneous/edit.m, + miscellaneous/gzip.m, miscellaneous/mkoctfile.m, + miscellaneous/orderfields.m, miscellaneous/parseparams.m, + miscellaneous/perl.m, miscellaneous/unix.m, + miscellaneous/unpack.m, miscellaneous/version.m, + miscellaneous/zip.m, optimization/fminbnd.m, + optimization/fminunc.m, optimization/fsolve.m, + optimization/glpk.m, optimization/glpkmex.m, + optimization/lsqnonneg.m, optimization/optimget.m, + optimization/optimset.m, optimization/pqpnonneg.m, + optimization/private/__fdjac__.m, optimization/qp.m, + pkg/get_forge_pkg.m, pkg/pkg.m, plot/__fltk_print__.m, + plot/__gnuplot_print__.m, plot/ancestor.m, plot/area.m, + plot/axes.m, plot/axis.m, plot/bar.m, plot/barh.m, plot/box.m, + plot/caxis.m, plot/cla.m, plot/clabel.m, plot/close.m, + plot/colorbar.m, plot/comet.m, plot/compass.m, plot/contour.m, + plot/contour3.m, plot/contourc.m, plot/contourf.m, + plot/cylinder.m, plot/ellipsoid.m, plot/ezcontour.m, + plot/ezcontourf.m, plot/ezmesh.m, plot/ezmeshc.m, plot/ezplot.m, + plot/ezplot3.m, plot/ezpolar.m, plot/ezsurf.m, plot/ezsurfc.m, + plot/feather.m, plot/figure.m, plot/fill.m, plot/findall.m, + plot/findobj.m, plot/fplot.m, plot/gcbo.m, plot/grid.m, + plot/hggroup.m, plot/hidden.m, plot/line.m, plot/meshgrid.m, + plot/ndgrid.m, plot/pareto.m, plot/patch.m, plot/pcolor.m, + plot/peaks.m, plot/pie.m, plot/plotmatrix.m, plot/plotyy.m, + plot/print.m, plot/private/__actual_axis_position__.m, + plot/quiver.m, plot/quiver3.m, plot/refresh.m, plot/rose.m, + plot/scatter.m, plot/scatter3.m, plot/shading.m, plot/slice.m, + plot/specular.m, plot/sphere.m, plot/subplot.m, plot/surfl.m, + plot/surfnorm.m, plot/text.m, plot/title.m, plot/view.m, + plot/whitebg.m, plot/xlabel.m, plot/xlim.m, plot/ylabel.m, + plot/ylim.m, plot/zlabel.m, plot/zlim.m, polynomial/compan.m, + polynomial/mkpp.m, polynomial/mpoles.m, polynomial/pchip.m, + polynomial/ppder.m, polynomial/ppint.m, polynomial/ppjumps.m, + polynomial/ppval.m, polynomial/spline.m, set/intersect.m, + set/powerset.m, set/setdiff.m, set/setxor.m, set/union.m, + set/unique.m, signal/fftshift.m, signal/filter2.m, + signal/ifftshift.m, sparse/bicgstab.m, sparse/cgs.m, + sparse/etreeplot.m, sparse/gplot.m, sparse/pcg.m, sparse/pcr.m, + sparse/spdiags.m, sparse/speye.m, sparse/sprand.m, + sparse/sprandn.m, sparse/sprandsym.m, sparse/spstats.m, + sparse/spy.m, sparse/treelayout.m, sparse/treeplot.m, + specfun/bessel.m, specfun/legendre.m, specfun/pow2.m, + statistics/base/center.m, statistics/base/histc.m, + statistics/base/kendall.m, statistics/base/meansq.m, + statistics/base/prctile.m, statistics/base/quantile.m, + statistics/base/range.m, statistics/base/std.m, + statistics/base/table.m, statistics/distributions/betacdf.m, + statistics/distributions/betarnd.m, + statistics/distributions/binornd.m, + statistics/distributions/cauchy_rnd.m, + statistics/distributions/chi2rnd.m, + statistics/distributions/discrete_rnd.m, + statistics/distributions/empirical_rnd.m, + statistics/distributions/exprnd.m, + statistics/distributions/fcdf.m, + statistics/distributions/frnd.m, + statistics/distributions/gamrnd.m, + statistics/distributions/geornd.m, + statistics/distributions/hygernd.m, + statistics/distributions/kolmogorov_smirnov_cdf.m, + statistics/distributions/laplace_rnd.m, + statistics/distributions/logistic_rnd.m, + statistics/distributions/lognrnd.m, + statistics/distributions/nbinrnd.m, + statistics/distributions/normrnd.m, + statistics/distributions/stdnormal_rnd.m, + statistics/distributions/tcdf.m, + statistics/distributions/trnd.m, + statistics/distributions/unidrnd.m, + statistics/distributions/unifcdf.m, + statistics/distributions/unifrnd.m, + statistics/distributions/wblcdf.m, + statistics/distributions/wblrnd.m, + statistics/tests/kolmogorov_smirnov_test.m, + statistics/tests/kolmogorov_smirnov_test_2.m, + statistics/tests/wilcoxon_test.m, strings/base2dec.m, + strings/index.m, strings/mat2str.m, strings/strchr.m, + strings/substr.m, strings/validatestring.m, testfun/assert.m, + testfun/example.m, testfun/fail.m, testfun/speed.m, + testfun/test.m, time/calendar.m, time/date.m, time/datenum.m, + time/datetick.m, time/datevec.m: + Grammarcheck documentation of m-files. + + 2010-07-17 Rik + + * audio/lin2mu.m, general/common_size.m, general/interp1.m, + general/interp2.m, general/interpn.m, general/quadl.m, + geometry/dsearchn.m, geometry/voronoi.m, geometry/voronoin.m, + image/hsv2rgb.m, image/imread.m, image/rgb2hsv.m, + linear-algebra/commutation_matrix.m, linear-algebra/condest.m, + linear-algebra/expm.m, linear-algebra/krylov.m, + linear-algebra/onenormest.m, miscellaneous/perl.m, + plot/linkprop.m, plot/plot.m, plot/print.m, plot/stem3.m, + signal/diffpara.m, signal/stft.m, sparse/pcg.m, sparse/pcr.m, + specfun/primes.m, special-matrix/hadamard.m, special-matrix/hankel.m, + special-matrix/invhilb.m, special-matrix/pascal.m, + special-matrix/rosser.m, special-matrix/toeplitz.m, + special-matrix/vander.m, special-matrix/wilkinson.m, + testfun/speed.m: Spellcheck documentation. + + 2010-07-15 Jaroslav Hajek + + * general/flipdim.m: Suuport flipping about trailing singleton + dimension. + + 2010-07-14 Ben Abbott + + * plot/__gnuplot_print__.m: Fix broken options "-orientation", + "-special_flag", "-debug_file", "-tight_flag", and "-printer". + + 2010-07-14 Rik + + * linear-algebra/normest.m: Improve documentation. Add better input + validation. Use same variable names in code as in documentation. + + 2010-07-14 Marco Caliari + + * linear-algebra/normest.m: Set the "state" of the random number + generator to trace(A). + + 2010-07-12 Jaroslav Hajek + + * general/cell2mat.m: Optimize so as to minimize the number of + concats. + + 2010-07-12 John W. Eaton + + * general/display.m: Print usage message if nargin != 1. + Bug #30421. + + 2010-07-09 Thorsten Meyer + + * general/interp2.m: improve input argument handling and + allow not equally spaced griddata (bug #29601) + + 2010-07-08 Jaroslav Hajek + + * general/accumarray.m: Fix incorrect handling of nondefault fill + values in min/max reductions of integers. + + 2010-07-07 David Bateman + + * __next_line_color__.m: Allow conditional initialisation of the + color_rotation variable. + * __next_line_style__.m: Allow conditional initialisation of the + style_rotation variable. + * hold.m: Support "hold all". + * newplot.m: Conditionally initialisation the line style and color + based on the __hold_all__ axes property. + + 2010-07-04 Soren Hauberg + + * polynomial/deconv.m: ensure that the orientation of the third + input to 'filter' matches the orientation of 'y'. + + 2010-07-02 Rik + + * audio/wavread.m: Correctly handle non-word aligned data chunks. + (bug #30309). + + 2010-06-16 Rik + + * plot/stairs.m: Add additional calling forms to documentation. + + 2010-06-24 John W. Eaton + + * plot/private/__plt__.m: Replace usage message with error. + * plot/loglog.m, plot/plot.m, plot/polar.m, plot/semilogx.m, + plot/semilogy.m: Call print_usage if no args are supplied. + Add additional calling forms to documentation. + + 2010-06-24 Shai Ayal + + * plot/print.m: convert to wrapper for backend specific print functions + * plot/__gnuplot_print__.m: New gnuplot specific print function, + largely based on the former print.m + * plot/__fltk_print__.m: New fltk specific print function + * plot/__print_parse_opts__.m: New option parser for print + functions, largely based on the former print.m + * plot/module.mk: Add new m-files here + + 2010-06-23 David Bateman + + * whitebg.m: New function. + * module.mk (plot_FCN_FILES): Add it here. + * __go_draw_figure__.m: Set the border color to the inverse of the + background color. + + 2010-06-17 Brad Froehle + + * sparse/spy.m: Fix typo. + + 2010-06-16 Rik + + * set/union.m: Remove seealso reference to deprecated function. + + 2010-06-16 Rik + + * @ftp/dir.m, @ftp/ftp.m, @ftp/mget.m, @ftp/mput.m, @ftp/rename.m, + deprecated/fstat.m, general/accumdim.m, general/interp1.m, + linear-algebra/ishermitian.m, linear-algebra/issymmetric.m, + miscellaneous/substruct.m, optimization/fminbnd.m, + optimization/fsolve.m, plot/bar.m, plot/daspect.m, plot/pbaspect.m, + plot/print.m, polynomial/mkpp.m, polynomial/ppval.m, set/union.m, + signal/unwrap.m, specfun/nthroot.m: Periodic grammar check of + documentation to ensure a common format. + + 2010-06-14 Rik + + * plot/image.m: Flip data, rather than y-axis, for images. (bug #30033) + + 2010-06-12 Ben Abbott + + * plot/scatter.m: New demo. + * plot/private/__scatter__.m: Properly set default value markersize + and marker type. + + 2010-06-12 Rik + + * plot/scatter.m: Add new calling forms of function to documentation. + + 2010-06-10 Ben Abbott + + * plot/private/__scatter__.m, plot/scatter.m: Honor Matlab color + settings. + * general/prepad.m: Fix typo 'dimm' -> 'dim'. + + 2010-06-10 Jaroslav Hajek + + * linear-algebra/vec.m: Remove (make built-in). + * linear-algebra/module.mk: Update. + + 2010-06-09 Rik + + * general/flipdim.m, general/accumdim.m: Use > 1 test to find + first non-singleton dimension rather than != 1. + + 2010-06-08 Rik + + * general/cumtrapz.m, general/postpad.m, general/prepad.m, + general/shift.m, general/trapz.m, signal/unwrap.m: Use common + method to find first non-singleton dimension. + + 2010-06-08 Rik + + * general/rotdim.m: Modify function to use same variable names + as documentation. + + 2010-06-08 Rik + + * general/cart2pol.m, general/cart2sph.m, general/pol2cart.m, + general/sph2cart.m: Add option to operate on column matrix of + coordinates. + + 2010-06-08 Rik + + * general/arrayfun.m, general/cart2pol.m, general/cart2sph.m, + general/idivide.m, general/logspace.m, general/sph2cart.m, + general/structfun.m, image/imagesc.m, io/csvread.m, io/csvwrite.m, + linear-algebra/cond.m, linear-algebra/condest.m, + linear-algebra/isdefinite.m, linear-algebra/null.m, + linear-algebra/orth.m, miscellaneous/list_primes.m, + optimization/fminunc.m, optimization/fzero.m, path/matlabroot.m, + plot/axis.m, plot/plot.m, plot/semilogx.m, plot/semilogxerr.m, + plot/semilogy.m, plot/semilogyerr.m, plot/stem.m, polynomial/poly.m, + polynomial/polyder.m, polynomial/polyderiv.m, polynomial/polyfit.m, + polynomial/polyout.m, polynomial/polyval.m, set/ismember.m, + sparse/spfun.m, specfun/betaln.m, statistics/base/mean.m, + statistics/base/median.m, statistics/base/mode.m, statistics/base/ols.m, + statistics/base/ranks.m, + statistics/distributions/kolmogorov_smirnov_cdf.m, + statistics/distributions/wblpdf.m: Improve documentation strings + + 2010-06-07 Jaroslav Hajek + + * pkg/pkg.m: Support pkg list -forge. + + 2010-06-07 Jaroslav Hajek + + * pkg/get_forge_pkg.m: New function. + * pkg/module.mk: Add it here. + * pkg/pkg.m: Support -forge switch for auto-downloading OctaveForge + packages. + + 2010-06-03 Alois Schlögl + + * signal/arch_test.m, statistics/tests/bartlett_test.m, + statistics/tests/chisquare_test_homogeneity.m, + statistics/tests/chisquare_test_independence.m, + statistics/tests/manova.m, statistics/tests/mcnemar_test.m, + statistics/tests/run_test.m, statistics/distributions/chi2pdf.m: + Replace calls to obsolete chisquare_cdf with chi2cdf. + + 2010-06-03 Rik + + * plot/private/__plt__.m: Add newline to usage message. + + 2010-06-02 Rik + + * optimization/sqp.m: Overhaul sqp code. + Guarantee equivalent results if sqp called with or wihout bounds + (bug #29989). Simplify input option handling and add %tests + to check validation code. Rewrite documentation string. + + 2010-06-01 Rik + + * optimization/fminbnd.m: Remove unused persistent variable. + + 2010-06-01 Rik + + * plot/private/__contour__.m: Correctly size X and Y when only Z + specified (bug #30002). + + 2010-05-31 Rik + + * specfun/legendre.m: Orient row vector correctly (bug #29997). + Add input validation for negative values and %tests to check + validation routines. + + 2010-05-30 Rik + + * sparse/svds.m: Overhaul code. + Return smallest singular values if sigma == 0 (Bug #29721). + Avoid calculating U and V matrices unless requested. + Correctly handle zero matrix input. + Improve documentation string. + + 2010-05-26 Rik + + * statistics/base/histc.m, statistics/base/iqr.m, + statistics/base/kurtosis.m, statistics/base/mode.m, + statistics/base/ranks.m, statistics/base/run_count.m, + statistics/base/skewness.m, statistics/base/statistics.m, + statistics/base/studentize.m: Improve validation of input arguments. + + 2010-05-26 Jaroslav Hajek + + * specfun/isprime.m: Fix and further optimize. + + 2010-05-26 Rik + + * plot/legend.m: Improve documentation string. + + 2010-05-26 Rik + + * sparse/svds.m: Check struct input arguments. Overhaul documentation. + + 2010-05-26 Ben Abbott + + * plot/legend.m: Key labels for specified objects. + * plot/ancestor.m: Support vectors of handles. + + 2010-05-26 Rik + + * sparse/svds.m: Initialize ARPACK starting vector in svds test code. + Bug #29721. + + 2010-05-25 Ben Abbott + + * polynomial/spline.m: Ignore NaNs within input vectors. + + 2010-05-25 Jaroslav Hajek + + * specfun/primes.m: Use logical masks rather than numeric. + * specfun/isprime.m: Rewrite using isprime. + + 2010-05-25 Jaroslav Hajek + + * miscellaneous/unimplemented.m: Don't mention onCleanup (supported). + + 2010-05-25 Jaroslav Hajek + + * statistics/base/median.m: Ensure NaNs where needed. Simplify first + non-singleton dimension computation. + + 2010-05-24 Rik + + * general/private/__isequal__.m, image/image.m, + statistics/base/ranks.m: Replace calls to deprecated functions. + + 2010-05-23 Rik + + * image/imshow.m: Scale image point color according to colormap. + Bug #29926. + + 2010-05-16 Rik + + * plot/semilogx.m, plot/semilogy.m: Plot minor ticks for semilog plots. + + 2010-05-16 Rik + + * audio/loadaudio.m, audio/playaudio.m, audio/saveaudio.m, + audio/wavread.m, general/bicubic.m, general/bitcmp.m, general/bitget.m, + general/bitset.m, general/cplxpair.m, general/del2.m, + general/gradient.m, general/interp2.m, general/interp3.m, + general/interpn.m, general/postpad.m, general/prepad.m, + general/private/__splinen__.m, image/image_viewer.m, image/imagesc.m, + image/saveimage.m, linear-algebra/expm.m, linear-algebra/krylov.m, + miscellaneous/edit.m, miscellaneous/private/__xzip__.m, + miscellaneous/what.m, optimization/glpk.m, optimization/optimset.m, + optimization/pqpnonneg.m, path/pathdef.m, plot/__go_draw_axes__.m, + plot/__marching_cube__.m, plot/gnuplot_drawnow.m, plot/ishold.m, + plot/isocolors.m, plot/isonormals.m, plot/print.m, + plot/private/__add_datasource__.m, plot/private/__color_str_rgb__.m, + plot/private/__errplot__.m, plot/private/__interp_cube__.m, + plot/shading.m, plot/specular.m, polynomial/deconv.m, + polynomial/polyint.m, polynomial/ppint.m, set/powerset.m, + signal/arch_fit.m, signal/arch_test.m, signal/durbinlevinson.m, + special-matrix/hadamard.m, statistics/distributions/unidrnd.m, + statistics/distributions/unifinv.m, + statistics/models/logistic_regression.m, strings/strjust.m, + testfun/rundemos.m, testfun/runtests.m, testfun/test.m, time/datenum.m: + Print name of function in error() string messages. + + 2010-05-16 Rik + + * plot/contourc.m, plot/private/__contour__.m, + plot/surface.m, plot/surfnorm.m: Check input + arguments for size and type (bug #29861). + + 2010-05-13 John W. Eaton + + * help/help.m: Avoid unnecessary use of varargout. + + 2010-05-13 Qianqian Fang + + * miscellaneous/tempdir.m: Add filesep to end of tempdir (bug #29864). + + 2010-05-11 Jaroslav Hajek + + * io/textread.m: Fix typo. + + 2010-05-08 David Gesswein + + * io/dlmwrite.m: Correctly set output precision (#29870). + + 2010-05-12 Jordi Gutiérrez Hermoso + + * help/help.m: Allow docstring to be returned as output, and + correct docstring. + + 2010-05-08 Rik + + * testfun/test.m: Don't abort testing when skipping a testif block + + 2010-05-05 Rik + + * statistics/tests/cor_test.m, statistics/tests/t_test.m, + statistics/tests/t_test_2.m, statistics/tests/t_test_regression.m, + statistics/tests/welch_test.m: Replace deprecated function calls. + Patch provided by Alois Schlögl. + + 2010-05-02 Rik + + * linear-algebra/cond.m: Add TeX equation to documentation + + 2010-05-02 Peter van den Biggelaar + + * plot/close.m: No error on "close([])". + + 2010-05-01 Ben Abbott + + * plot/__go_draw_axes__.m: Remove gnuplot errorbar code. + + 2010-04-30 Ben Abbott + + * plot/loglogerr.m, plot/semilogxerr.m, plot/semilogyerr.m: + Add demos. + * plot/private/__errplot__.m: Fix bug parsing errorbar style. + * plot/private/__errplot__.m: Implement errorbars in the Matlab style. + + 2010-04-29 Ben Abbott + + * plot/errorbar.m: Modify demo. + * plot/private/__errplot__.m: Fix bug for boxxy errorbar. + * plot/errorbar.m: Add demos. + + 2010-04-27 David Bateman + + * plot/private/__errplot__.m: Update the marker in a seperate + listener function. + + 2010-04-27 Rik + + * plot/private/__go_draw_axes__.m: Use "." for marker when plotting + with errorbars. (bug #29057) + + 2010-04-27 Ben Abbott + + * plot/private/__errplot__.m: Add missing semicolon line terminations. + + 2010-04-27 David Bateman + + * plot/private/__default_plot_options_.m: New option errorstyle. + * plot/private/__pltopt__.m: Use errorstyle here seperately from + the linestyle so that both can be set. + * plot/private/__errcomm__.m: Allow for the fact that matrices + to __errplot__ with return a vector of handles. + * plot/private/__errplot__.m: Allow for default linestyles. + + * plot/private/__errplot__.m: Set the errorbar marker to "none". + + 2010-04-26 David Bateman + + * plot/bar.m: Document the use of the colormap for the color of + the bars. + + * plot/private/__errplot__.m: Allow x, box and xy errorbars with + different syntax. + + * plot/private/__errplot__.m: Allow matlab style linestyles, and + support setting the markers. + + 2010-04-24 David Bateman + + * plot/private/__patch__.m: Correct order of calling setdata and + setvertexdata. + + 2010-04-25 Ben Abbott + + * plot/__go_draw_figure__.m: Hidden axes may have visible children. + + 2010-04-24 Ben Abbott + + * plot/print.m: Set figure color property to 'none' when printing. + + 2010-04-24 David Bateman + + * plot/__go_draw_axes__.m: Correct fill of diamond markers + + 2010-04-24 Ben Abbott + + * plot/__go_draw_axes__.m: Consistent placement of axes for ps vs + other gnuplot terminals. + + 2010-04-23 Ben Abbott + + * plot/colorbar.m: Fix colorbar() bugs for manual plotboxaspectratio. + * plot/axis.m: For 'axis normal' restore plotboxaspectratio. + + 2010-04-23 John W. Eaton + + * gethelp.cc (extract_help_text): Use C++ static_cast instead of + C-style cast. + + 2010-04-23 Rik + + * audio/loadaudio.m, audio/mu2lin.m, audio/playaudio.m, + audio/saveaudio.m, audio/wavread.m, audio/wavwrite.m, + deprecated/cellidx.m, deprecated/intwarning.m, + deprecated/lchol.m, deprecated/spatan2.m, deprecated/spchol.m, + deprecated/spchol2inv.m, deprecated/spcholinv.m, + deprecated/spcumprod.m, deprecated/spcumsum.m, + deprecated/spdet.m, deprecated/spdiag.m, deprecated/spfind.m, + deprecated/spinv.m, deprecated/spkron.m, deprecated/splchol.m, + deprecated/split.m, deprecated/splu.m, deprecated/spmax.m, + deprecated/spmin.m, deprecated/spprod.m, deprecated/spqr.m, + deprecated/spsum.m, deprecated/spsumsq.m, elfun/lcm.m, + general/bicubic.m, general/cell2mat.m, general/circshift.m, + general/cplxpair.m, general/cumtrapz.m, general/dblquad.m, + general/del2.m, general/gradient.m, general/idivide.m, + general/int2str.m, general/interp1.m, general/interp2.m, + general/interp3.m, general/interpn.m, general/isa.m, + general/num2str.m, general/postpad.m, general/prepad.m, + general/private/__isequal__.m, general/quadgk.m, + general/quadl.m, general/quadv.m, general/rat.m, + general/rotdim.m, general/shift.m, general/sortrows.m, + general/structfun.m, general/trapz.m, geometry/griddata.m, + geometry/griddata3.m, geometry/inpolygon.m, geometry/rectint.m, + geometry/trimesh.m, geometry/triplot.m, geometry/trisurf.m, + geometry/voronoi.m, help/doc.m, help/help.m, help/which.m, + io/dlmwrite.m, io/strread.m, linear-algebra/condest.m, + linear-algebra/cross.m, linear-algebra/krylov.m, + linear-algebra/null.m, linear-algebra/onenormest.m, + linear-algebra/orth.m, linear-algebra/rank.m, + linear-algebra/rref.m, miscellaneous/bincoeff.m, + miscellaneous/cast.m, miscellaneous/compare_versions.m, + miscellaneous/copyfile.m, miscellaneous/dir.m, + miscellaneous/dump_prefs.m, miscellaneous/edit.m, + miscellaneous/fileattrib.m, miscellaneous/fileparts.m, + miscellaneous/fullfile.m, miscellaneous/license.m, + miscellaneous/ls.m, miscellaneous/ls_command.m, + miscellaneous/mkoctfile.m, miscellaneous/movefile.m, + miscellaneous/orderfields.m, miscellaneous/perl.m, + miscellaneous/run.m, miscellaneous/substruct.m, + miscellaneous/swapbytes.m, miscellaneous/tar.m, + miscellaneous/unpack.m, miscellaneous/what.m, + miscellaneous/zip.m, optimization/fminunc.m, + optimization/fsolve.m, optimization/glpk.m, optimization/qp.m, + optimization/sqp.m, path/pathdef.m, path/savepath.m, pkg/pkg.m, + plot/__gnuplot_get_var__.m, plot/__gnuplot_ginput__.m, + plot/__go_draw_axes__.m, plot/__next_line_color__.m, + plot/__next_line_style__.m, plot/__plt_get_axis_arg__.m, + plot/ancestor.m, plot/area.m, plot/axes.m, plot/axis.m, + plot/box.m, plot/cla.m, plot/clabel.m, plot/clf.m, plot/close.m, + plot/colorbar.m, plot/comet.m, plot/compass.m, plot/contourf.m, + plot/cylinder.m, plot/ellipsoid.m, plot/feather.m, plot/fill.m, + plot/findobj.m, plot/fplot.m, plot/gnuplot_drawnow.m, + plot/grid.m, plot/gtext.m, plot/hidden.m, plot/hist.m, + plot/hold.m, plot/ishold.m, plot/isonormals.m, + plot/isosurface.m, plot/legend.m, plot/linkprop.m, plot/meshz.m, + plot/newplot.m, plot/pareto.m, plot/pie.m, plot/plot3.m, + plot/plotmatrix.m, plot/plotyy.m, plot/polar.m, + plot/private/__actual_axis_position__.m, + plot/private/__add_datasource__.m, + plot/private/__axes_limits__.m, plot/private/__axis_label__.m, + plot/private/__bar__.m, plot/private/__clabel__.m, + plot/private/__contour__.m, plot/private/__errcomm__.m, + plot/private/__errplot__.m, plot/private/__ezplot__.m, + plot/private/__patch__.m, plot/private/__plt__.m, + plot/private/__pltopt__.m, plot/private/__quiver__.m, + plot/private/__scatter__.m, plot/private/__stem__.m, + plot/refreshdata.m, plot/ribbon.m, plot/rose.m, plot/slice.m, + plot/sombrero.m, plot/sphere.m, plot/stairs.m, plot/subplot.m, + plot/surf.m, plot/surface.m, plot/surfl.m, plot/surfnorm.m, + plot/text.m, plot/view.m, polynomial/polyderiv.m, + polynomial/polygcd.m, polynomial/polyout.m, polynomial/spline.m, + set/intersect.m, set/setdiff.m, set/setxor.m, signal/unwrap.m, + sparse/pcg.m, sparse/pcr.m, sparse/spaugment.m, + sparse/spconvert.m, sparse/sprand.m, sparse/sprandsym.m, + sparse/svds.m, sparse/treelayout.m, sparse/treeplot.m, + specfun/nchoosek.m, specfun/primes.m, special-matrix/toeplitz.m, + statistics/base/iqr.m, statistics/base/kurtosis.m, + statistics/base/qqplot.m, statistics/base/quantile.m, + statistics/base/ranks.m, statistics/base/run_count.m, + statistics/base/skewness.m, statistics/base/statistics.m, + statistics/base/studentize.m, statistics/base/var.m, + statistics/distributions/betapdf.m, + statistics/distributions/betarnd.m, + statistics/distributions/binocdf.m, + statistics/distributions/binoinv.m, + statistics/distributions/binornd.m, + statistics/distributions/cauchy_pdf.m, + statistics/distributions/cauchy_rnd.m, + statistics/distributions/chi2rnd.m, + statistics/distributions/discrete_rnd.m, + statistics/distributions/exprnd.m, + statistics/distributions/fcdf.m, + statistics/distributions/finv.m, + statistics/distributions/fpdf.m, + statistics/distributions/frnd.m, + statistics/distributions/gampdf.m, + statistics/distributions/gamrnd.m, + statistics/distributions/geornd.m, + statistics/distributions/hygepdf.m, + statistics/distributions/laplace_inv.m, + statistics/distributions/lognrnd.m, + statistics/distributions/nbincdf.m, + statistics/distributions/nbininv.m, + statistics/distributions/nbinpdf.m, + statistics/distributions/nbinrnd.m, + statistics/distributions/normrnd.m, + statistics/distributions/poissinv.m, + statistics/distributions/poissrnd.m, + statistics/distributions/tinv.m, + statistics/distributions/tpdf.m, + statistics/distributions/trnd.m, + statistics/distributions/unidrnd.m, + statistics/distributions/unifrnd.m, + statistics/distributions/wblpdf.m, + statistics/distributions/wblrnd.m, strings/cstrcat.m, + strings/deblank.m, strings/findstr.m, strings/isstrprop.m, + strings/regexptranslate.m, strings/strtok.m, testfun/assert.m, + testfun/example.m, testfun/fail.m, testfun/rundemos.m, + testfun/runtests.m, testfun/speed.m, testfun/test.m, + time/datestr.m, time/weekday.m: Untabify. + + 2010-04-23 Rik + + * geometry/griddata.m, geometry/griddatan.m, geometry/tsearchn.m: + Replace nan with NaN for nice visual cue. + + 2010-04-23 Rik + + * optimization/gplot.m: Eliminate parsing error for NaN inside + of matrix declaration. + + 2010-04-22 Rik + + * optimization/sqp.m: Return correct value (101) on succes. + Fixes bug #29577. + + 2010-04-22 Rik + + * optimization/glpk.m: Eliminate repmat (Inf, x , y) and just + use Inf (x,y). + + 2010-04-22 Rik + + * general/rat.m, sparse/gplot.m, strings/base2dec.m, + geometry/triplot.m, optimization/sqp.m, optimization/qp.m, + statistics/base/run_count.m, statistics/base/ranks.m: + Eliminate NaN*ones and Inf*ones constructs and just use Nan() + and Inf(). + + 2010-04-19 Ben Abbott + + * plot/colorbar.m: Allow 'peer' option to be specified. + * plot/colorbar.m: Consistent treatment of plotboxaspectratio, and + add listener for plotboxaspectratiomode. + * plot/axis.m: Consistent treatment of plotboxaspectratio. + * plot/__go_draw_axes__.m: Consistently determine axes position. + + 2010-04-17 Ben Abbott + + * plot/private/__actual_axis_position__.m: Fix bug when restoring + figure position property to its original value. + + 2010-04-16 David Bateman + + * plot/__go_draw_figure__.m: Pass bg_is_set to __go_draw_axes__. Don't + unset the background figure color. + * plot/__go_draw_axes__.m: Unset the background figure color here. + + * statistics/distributions/*: Replace constructs like "NaN * one()" + with "NaN()" and "Inf * ones ()" with "Inf()". + + 2010-04-15 David Bateman + + * statistics/distributions/discrete_pdf.m: Reimplement using lookup. + * statistics/distributions/discrete_inv.m: Reimplement using lookup. + * statistics/distributions/discrete_cdf.m: typo in last patch. + + 2010-04-15 Jaroslav Hajek + + * statistics/distributions/stdnormal_cdf.m: Calculate using erfc. + + 2010-04-13 David Bateman + + * statistics/discrete_cdf.m: Reimplement using lookup. + + 2010-04-13 Shai Ayal + + * plot/__fltk_ginput__.m: New functions, implement ginput for + fltk backend. + + 2010-04-13 Jaroslav Hajek + + * sparse/spalloc.m: Remove. + * sparse/module.mk: Update. + + 2010-04-16 Ben Abbott + + * plot/plotyy.m: Add listener for dataaspectratiomode. + + 2010-04-12 Ben Abbott + + * plot/loglog.m: Minor ticks on by default for loglog plots. + * plot/__plt_get_axis_arg__.m, plot/newplot.m: Respect the nextplot + property value of 'new' for axes and 'replacechildren' for axes and + figures. + + 2010-04-10 Ben Abbott + + * plot/__go_draw_figure__.m: Don't set background for non-visible axes. + + 2010-04-07 John W. Eaton + + * testfun/runtests.m: New function. + * testfun/module.mk (testfun_FCN_FILES): Add it to the list. + + 2010-02-19 Rik + + * statistics/cut.m: Modify cut to use the same decision criteria + as histc when deciding whether a data point is inside or outside + interval. + + 2010-04-02 Marc Vinyals + + * signal/arma_rnd.m: fix typo in test. + + 2010-04-02 Marc Vinyals + + * signal/arma_rnd.m: fix typo in test. + + 2010-03-30 Jaroslav Hajek + + * specfun/factor.m: Use rem to check divisibility. + + 2010-03-27 Ben Abbott + + * plot/__go_draw_figure__.m: Untabify. + * plot/print.m: Provide default suffixes & validate hardcopy format. + + 2010-03-27 Jaroslav Hajek + + * optimization/fzero.m: Handle the breakdown if initial bracketing + contains an exact root. Improve docstring. + + 2010-03-26 Jaroslav Hajek + + * miscellaneous/module.mk: Add unimplemented.m here. + + 2010-03-25 Ben Abbott + + * general/cell2mat.m: Add test for cells of cells. + + 2010-03-24 Petr Mikulik + + * plot/__go_draw_axes__.m: Unset logscale also for unused gnuplot + axis locations. + + 2010-03-24 Jaroslav Hajek + + * help/help.m: Maybe warn about unimplemented Matlab functions. + + 2010-03-24 Jaroslav Hajek + + * miscellaneous/unimplemented.m: New function. + + 2010-03-24 Jaroslav Hajek + + * general/cell2mat.m: Support cells of cells. + + 2010-03-23 John W. Eaton + + * plot/refreshdata.m: Don't use cell2mat on cell array of cell arrays. + + 2010-03-22 Soren Hauberg + + * image/gmap40.m, image/hot.m, image/hsv2rgb.m, image/image.m, + image/image_viewer.m, image/imfinfo.m, image/imread.m, image/imshow.m, + image/saveimage: Detabify. + + 2010-03-21 Soren Hauberg + + * general/quadv.m: Replace 'quadl' with 'quadv' in help text. + + 2010-03-20 Soren Hauberg + + * general/interp2.m: For nearest neighbour interpolation ceil + (instead of floor) at the center of the data intervals to be + compatible with Matlab. Add test. + * general/interpn.m: Ditto. + + 2010-03-19 Jaroslav Hajek + + * strings/strmatch.m (strtrimr): Rewrite for correct behavior. + Add test. + + 2010-03-18 Petr Mikulik + + * plot/print.m: Add '-append' option. + + 2010-03-18 Ben Abbott + + * plot/print.m: print.m: Detabify. + + 2010-03-16 Jaroslav Hajek + + * general/nthroot.m: Remove. + * general/module.mk: Update. + * specfun/nthroot.m: New source. + * specfun/module.mk: Update. + + 2010-03-16 Jaroslav Hajek + + * miscellaneous/intwarning.m: Deprecate. + + 2010-03-11 Jaroslav Hajek + + * strings/index.m: Make it a wrapper for strfind. + + 2010-03-11 Jaroslav Hajek + + * strings/strchr.m: Optimize. + + 2010-03-05 Soren Hauberg + + * pkg/pkg.m (write_index): include classes in autogenerated + INDEX files. + + 2010-03-05 Soren Hauberg + + * plot/fplot.m: Ensure that 'limits' is a 2 or 4 vector, and + that 'fn' is a function. + + 2010-03-05 Jaroslav Hajek + + * testfun/test.m: Support catching warnings and errors by IDs. + + 2010-03-05 Jaroslav Hajek + + * general/accumdim.m: Optimize the summation case. + + 2010-03-05 Jaroslav Hajek + + * general/accumdim.m: New function. + + 2010-03-05 Jaroslav Hajek + + * optimization/fzero.m: Avoid division by zero. + + 2010-03-04 Jaroslav Hajek + + * optimization/fminbnd.m: Fix tests. + + 2010-03-04 Jaroslav Hajek + + * optimization/fminbnd.m: Fix termination tolerances. + + 2010-03-02 Jaroslav Hajek + + * polynomial/convn.m: Remove. + * polynomial/module.mk: Update. + + 2010-02-28 John W. Eaton + + * set/unique.m: If the argument is sparse and we are not + operating on rows and we don't need indices, convert nonzero + elements to a full matrix and work on that instead, converting + back to sparse when done. + + 2010-02-28 John W. Eaton + + * set/unique.m: Return 0x1 arrays for empty arrays with some + nonzero dimensions. Return object with the same class as the + argument. New tests. + + 2010-02-27 Liam Groener + + * time/datetick.m: Fix 'keepticks' bug, and untabify. + + 2010-02-25 Jaroslav Hajek + + * strings/str2double.m: Remove. + + 2010-02-24 John W. Eaton + + * plot/private/__contour__.m (get_lvl_eps): New function. + Handle case of single level value. Use sqrt (eps) instead of 1e-6. + (update_text, add_patch_children): Use it. + + 2010-02-19 Rik + + * optimization/fzero.m: Add test for discontinuity at the end. + + 2010-02-18 John W. Eaton + + * image/imfinfo.m: Don't handle file time stamp here. + + 2010-02-17 Jaroslav Hajek + + * statistics/base/center.m: Convert integer inputs to doubles. + + 2010-02-17 Jaroslav Hajek + + * general/interp2: Slightly optimize linear interpolation. + + 2010-02-12 Jaroslav Hajek + + * general/interp2: Remove debug stub. + + 2010-02-12 Jaroslav Hajek + + * optimization/optimget.m: Simplify. + + 2010-02-11 Jaroslav Hajek + + * miscellaneous/parseparams.m: Extend to allow direct parsing of + options. + + 2010-02-10 Jaroslav Hajek + + * optimization/fminbnd.m: Undocument impossible info values. + * optimization/fzero.m: Ditto. + + * optimization/fzero.m: Make default TolX consistent with fminbnd. + 2010-02-10 Jaroslav Hajek + + * optimization/fminbnd.m: New function. + * optimization/module.mk: Add it here. + * optimization/fzero.m: Make default TolX consistent with fminbnd. + + 2010-02-10 Jaroslav Hajek + + * general/private/__isequal__.m: Remove list-related stub. + + 2010-02-09 John W. Eaton + + * image/imshow.m: Allow logical values for images. + + 2010-02-09 Jaroslav Hajek + + * general/accumarray.m: Use != instead of diff to compare indices in + dense case. Set explicit mode in sparse case to aid optimization. + + 2010-02-09 Jaroslav Hajek + + * miscellaneous/menu.m: Use sscanf rather than eval. + + 2010-02-09 Jaroslav Hajek + + * miscellaneous/substruct.m: Vectorize. + + 2010-02-08 Jaroslav Hajek + + * general/accumarray.m: Document complexity. + + 2010-02-08 Jaroslav Hajek + + * general/accumarray.m: Add new test that also forces index cache + generation for faster sorting. + + 2010-02-08 Jaroslav Hajek + + * general/accumarray.m: 1 more small fix. + + 2010-02-06 Jaroslav Hajek + + * general/accumarray.m: Small fixes. + + 2010-02-05 Jaroslav Hajek + + * general/accumarray.m: Rewrite. Split sparse and dense case. Treat + cell-valued subs efficiently. Optimize dense case for @sum, @max and + @min. Optimize the @(x){x} reduction. Add tests. + + 2010-02-04 Jaroslav Hajek + + * miscellaneous/dir.m: Fix month passed to datenum. + + 2010-02-03 Jaroslav Hajek + + * general/private/__isequal__.m: Handle function handles. + + 2010-02-01 David Bateman + + * plot/__go_draw_axes__.m (get_old_gnuplot_color): Remove as + no longer used (for gnuplot 4.0). + + * plot/private/__scatter__.m: Treat "flat" colored patches as + a single patch. + * plot/__go_draw_axes__.m: If a patch object is flat, treat its + outline with the gnuplot "palette". + + 2010-01-30 Thorsten Meyer + + * statistics/tests/kruskal_wallis_test.m: Replace chisquare_cdf + by chi2cdf. + + 2010-01-29 Ben Abbott + + * plot/axis.m, plot/__go_draw_axes__.m, plot/colorbar.m, + plot/isocolors.m, plot/isonormals.m, plot/isosurface.m, + plot/plotyy.m, plot/polar.m, plot/surfl.m, + plot/private/__actual_axis_position.m: + Replace dataaspectratio and dataaspectratiomode properties with + plotboxaspectratio and plotboxaspectratio properties. + + 2010-01-29 John W. Eaton + + * polynomial/compan.m, polynomial/conv.m, polynomial/deconv.m, + polynomial/mpoles.m, polynomial/polyderiv.m, + polynomial/polygcd.m, polynomial/polyout.m, + polynomial/polyreduce.m, polynomial/polyval.m, + polynomial/polyvalm.m, polynomial/residue.m: + Point to polyint in @seealso, not polyinteg. + + * deprecated/module.mk (deprecated_FCN_FILES): + Remove delete files from the list. + + * deprecated/beta_cdf.m, deprecated/beta_inv.m, + deprecated/beta_pdf.m, deprecated/beta_rnd.m, + deprecated/binomial_cdf.m, deprecated/binomial_inv.m, + deprecated/binomial_pdf.m, deprecated/binomial_rnd.m, + deprecated/chisquare_cdf.m, deprecated/chisquare_inv.m, + deprecated/chisquare_pdf.m, deprecated/chisquare_rnd.m, + deprecated/clearplot.m, deprecated/com2str.m, + deprecated/exponential_cdf.m, deprecated/exponential_inv.m, + deprecated/exponential_pdf.m, deprecated/exponential_rnd.m, + deprecated/f_cdf.m, deprecated/f_inv.m, deprecated/f_pdf.m, + deprecated/f_rnd.m, deprecated/gamma_cdf.m, + deprecated/gamma_inv.m, deprecated/gamma_pdf.m, + deprecated/gamma_rnd.m, deprecated/geometric_cdf.m, + deprecated/geometric_inv.m, deprecated/geometric_pdf.m, + deprecated/geometric_rnd.m, deprecated/hypergeometric_cdf.m, + deprecated/hypergeometric_inv.m, + deprecated/hypergeometric_pdf.m, + deprecated/hypergeometric_rnd.m, deprecated/intersection.m, + deprecated/is_bool.m, deprecated/is_complex.m, + deprecated/is_list.m, deprecated/is_matrix.m, + deprecated/is_scalar.m, deprecated/is_square.m, + deprecated/is_stream.m, deprecated/is_struct.m, + deprecated/is_symmetric.m, deprecated/is_vector.m, + deprecated/lognormal_cdf.m, deprecated/lognormal_inv.m, + deprecated/lognormal_pdf.m, deprecated/lognormal_rnd.m, + deprecated/meshdom.m, deprecated/normal_cdf.m, + deprecated/normal_inv.m, deprecated/normal_pdf.m, + deprecated/normal_rnd.m, deprecated/pascal_cdf.m, + deprecated/pascal_inv.m, deprecated/pascal_pdf.m, + deprecated/pascal_rnd.m, deprecated/poisson_cdf.m, + deprecated/poisson_inv.m, deprecated/poisson_pdf.m, + deprecated/poisson_rnd.m, deprecated/polyinteg.m, + deprecated/struct_contains.m, deprecated/struct_elements.m, + deprecated/t_cdf.m, deprecated/t_inv.m, deprecated/t_pdf.m, + deprecated/t_rnd.m, deprecated/uniform_cdf.m, + deprecated/uniform_inv.m, deprecated/uniform_pdf.m, + deprecated/uniform_rnd.m, deprecated/weibull_cdf.m, + deprecated/weibull_inv.m, deprecated/weibull_pdf.m, + deprecated/weibull_rnd.m, deprecated/wiener_rnd.m: + Delete functions deprecated in version 3.0.0. + + * deprecated/weibcdf.m, deprecated/weibinv.m, + deprecated/weibpdf.m, deprecated/weibrnd.m: + Note that Matlab still has these functions, so they probabl + should not be removed with other functions deprecated in 3.0.0. + + 2010-01-28 Ben Abbott + + * plot/daspect.m, plot/pbaspect.m: New functions. + + 2010-01-28 John W. Eaton + + * general/Makefile.am (general_FCN_FILES): Add chop.m to the list. + + 2010-01-28 John W. Eaton + + * deprecated/isstr.m, deprecated/clg.m, deprecated/setstr.m: + Note that Matlab still has these functions, so they probabl + should not be removed with other functions deprecated in 3.0.0. + + 2010-01-27 Thorsten Meyer + + * plot/gnuplot_drawnow.m: Add "emf" to the list of enhanced + terminals for the gnuplot backend. + + 2010-01-26 John W. Eaton + + * general/chop.m: New function. + + 2010-01-26 Jaroslav Hajek + + * optimization/fsolve.m: Support TypicalX, autoscale only if + AutoScaling is on, off by default. Fix default tolerances. + * optimization/fminunc.m: Support TypicalX, autoscale only if + AutoScaling is on, off by default Fix default tolerances.. + * optimization/private/__fdjac__.m: Accept typicalx as a parameter. + + 2010-01-26 Jaroslav Hajek + + * optimization/pqpnonneg.m: If Cholesky update failed, switch off + updating but continue. + + 2010-01-26 Jaroslav Hajek + + * pkg/pkg.m: More complement -> setdiff changes. + + 2010-01-23 Jaroslav Hajek + + * pkg/pkg.m: Use setdiff rather than complement. + + 2010-01-20 John W. Eaton + + * gethelp.cc: Untabfy. + + 2010-01-20 Ben Abbott + + * plot/__go_draw_figure__.m: Reverse order axes are drawn. + + 2010-01-20 David Bateman + + * plot/private/__contour__.m: Set default linestyle if pltopt returns + an empty style. + + 2010-01-20 John W. Eaton + + * time/datetick.m: Make form arg optional. + From Philip Nienhuis . + + 2010-01-20 David Bateman + + * plot/__go_draw_axes__.m: Correct an error in drawing of patch + objects where unrequested markers were drawn. + + * plot/__go_draw_figure__.m: Also plot white foreground and + background colors. + * plot/plotyy.m: Set axes colors to "none". + + * plot/__go_draw_axes__.m (next_marker): Remove and all uses of + this function. + Partially respect the markeredgecolor and markerfacecolor properties. + * plot/private/__color__str_rgb__.m: New function + * plot/module.mk: Add it here. + * plot/__next_line_style__.m: New function selected next line style + using the axes linestyleorder property. + * plot/__next_line_color.m: Increment next line style here. + * plot/newplot.m: Reset next line style here. + * plot/module.mk: Add __next_line_style__.m here. + * plot/plot3.m: Use __next_line_style__ here. + * plot/private/plt.m: And here. + * plot/private/stem.m: And here. + * plot/private/scatter.m: And here. Correctly handle nargin == 3. Use + matlab compatible edgecolor, markeredgecolor and markerfacecolor + property values. + * plot/private/pltopt.m: Remove "@" marker as an option. + * plot/private/__default_plot_options__.m: Default plot options + are empty signalling that __next_line_color__ and + __next_line_style should be used. + + 2010-01-19 Jaroslav Hajek + + * general/structfun.m: Error when invalid options are specified. + + 2010-01-19 Jaroslav Hajek , Thorsten Meyer + + * general/structfun.m: Correctly support multiple arguments with + non-uniform output. Correct test for non-uniform output. + + 2010-01-19 Jaroslav Hajek + + * help/print_usage.m: Try determining whether called from top level. + If not, don't print additional help and enable backtrace instead. + + 2010-01-18 John W. Eaton + + * testfun/test.m: Undo previous change. + + 2010-01-18 David Grundberg + + * testfun/test.m: Append endfunction to function test blocks. + + 2010-01-17 Thorsten Meyer + + * general/celldisp.m: Add example, add demo. + + * general/structfun.m, miscellaneous/getfield.m, + miscellaneous/orderfields.m, miscellaneous/setfield.m, + miscellaneous/substruct.m: Update documentation string. + + 2010-01-16 David Bateman + + * plot/__go_draw_axes__.m (next_marker): New function to find a + new marker. Use it to support the "@" marker. + * plot/private/__pltopt__.m: Don't convert "@" marker ro "+"; + + 2010-01-15 David Bateman + + plot/__go_draw_figure__.m: Respect the figure and axes color + properties. + + 2010-01-14 David Bateman + + * plot/__go_draw_axes__.m: Fix for markerfacecolor and + markeredgecolor for unfillable points like '+'. + + 2010-01-14 Jaroslav Hajek + + * io/fileread.m: Add missing semicolon. + + 2010-01-14 Jaroslav Hajek + + * strings/strcmpi.m: Remove. + * strings/strncmpi.m: Remove. + * strings/module.mk: Update. + + 2010-01-13 John W. Eaton + + * miscellaneous/inputname.m: Use isvarname instead of regexp. + + 2010-01-13 John W. Eaton + + * miscellaneous/inputname.m: Return "" if argument name is not a + valid identifier. Update docstring. + + 2010-01-12 David Bateman + + * plot/__go_draw_axes_.m: Allow patch markerfacecolor and + markeredgecolor properties to be used and set the marker colors + appropriately. + + 2010-01-12 Jaroslav Hajek + Ben Barrowes + + * set/private/validargs.m: New function. + * set/module.mk: Add it here. + * set/ismember.m: Use it here. + * set/intersect.m: Ditto. + * set/union.m: Ditto. + * set/setdiff.m: Ditto. + * set/setxor.m: Ditto. + + 2010-01-11 Rik + + * Makefile.am: Update DOCSTRINGS rules to avoid + simple_move_if_change_rule and allow Make to update timestamps. + + 2010-01-11 Jaroslav Hajek + + * plot/private/__scatter__.m: Use patch objects instead of lines, + switch at 100 points. + + 2010-01-11 Jaroslav Hajek + + * plot/private/__scatter__.m: Fix typos. + + 2010-01-11 Jaroslav Hajek + + * io/fileread.m: New source. + + 2010-01-10 Jaroslav Hajek + + * plot/private/__scatter__.m: Use alternative strategy for larger + point sets. + + 2010-01-06 Ben Abbott + + * optimization/qp.m: Add missing semicolon. + + 2010-01-11 Ben Barrowes + + * set/: allow set scripts to handle cell inputs + + 2010-01-05 Jaroslav Hajek + + * optimization/qp.m: Supply default values on request and register + options. + + 2010-01-05 John W. Eaton + + * qp.m: Allow linear term and constraint arguments to be + optional. + + 2010-01-05 Joshua Redstone + + * qp.m: Handle optimset options struct argument. + + 2010-01-04 Jaroslav Hajek + + * strings/strmatch.m: Optimize. + + 2010-01-04 Jaroslav Hajek + + * strings/strrep.m: Remove. + * strings/module.mk: Update. + + 2010-01-02 Jaroslav Hajek + + * optimization/fsolve.m: Support old style jacobian passing. + + 2010-01-01 Jaroslav Hajek + + * set/powerset.m: New function. + * set/module.mk: Include it. + + 2009-12-30 Jaroslav Hajek + + * general/common_size.m: Use named function rather than a handle. + + 2009-12-29 Jaroslav Hajek + + * set/complement.m: Deprecate. + + 2009-12-28 Jaroslav Hajek + + * strings/strcat.m: Further simplify. + + 2009-12-27 Jaroslav Hajek + + * general/common_size.m: Optimize. + + 2009-12-27 Jaroslav Hajek + + * strings/strcat.m: Vectorize. + + 2009-12-26 Jaroslav Hajek + + * miscellaneous/xor.m: Optimize. + + 2009-12-25 Jaroslav Hajek + + * general/issquare.m: Do not check type. + * linear-algebra/issymmetric.m: Strengthen test. + * linear-algebra/ishermitian.m: Strengthen test. + + 2009-12-25 Jaroslav Hajek + + * strings/strfind.m: Remove. + * strings/module.mk: Update. + + 2009-12-24 Jaroslav Hajek + + * strings/strjust.m: Rewrite. + + 2009-12-23 Jaroslav Hajek + + * strings/strjust.m: Special-case string and empty argument. + + 2009-12-19 Rik + + * Makefile.am: Eliminate TOPDIR variable in favor of built-in automake + variables of top_builddir and top_srcdir. + + 2009-12-18 Rik + + * Makefile.am: Use Automake syntax to build helper program gethelp + + 2009-12-17 Rik + + * testfun/test.m: Add newline to message output. + + 2009-12-14 John W. Eaton + + * specfun/isprime.m: Produce logical result. Error if nargin > 1. + New tests. + + 2009-12-14 John W. Eaton + + * help/__makeinfo__.m: Use fullfile to concatenate file name + components. Use hyphens instead of underscores in tmp file name. + + 2009-12-14 Jaroslav Hajek + + * help/__makeinfo__.m: Use P_tmpdir to create temporary file. + + 2009-12-09 Rik + + * polynomial/module.mk: Correct typo and distribute newly + created ppder.m. + + 2009-12-13 Jaroslav Hajek + + * ppder.m: New function. + * ppint.m: New function. + * ppjumps.m: New function. + + 2009-12-09 Rik + + * Makefile.am: remove install-images target and use automake + syntax to distribute image data. + + 2009-12-11 John W. Eaton + + * Makefile.am (DOCSTRINGS): Use $(cp_update_rule) instead of + cp -a --update. + + 2009-12-09 Rik + + * Makefile.am: Copy DOCSTRINGS from srcdir to builddir if it does not + exist. Enables VPATH builds. + + 2009-12-08 Petr Mikulik + + * plot/gnuplot_drawnow.m: Prune prompt lines from dumb terminal output. + * plot/__go_draw_figure__.m: Add missing 'unset multiplot' to restore + hotkey and mouse functionality for 2D plots. + + 2009-12-09 Rik + + * Makefile.am: Distribute DOCSTRINGS in tar.gz file. + * mkdoc: Pass current directory, "./", when running mkdoc on + local files. + + 2009-12-07 Jaroslav Hajek + + * general/interp1q.m: Use more optimal code. + + 2009-12-08 John W. Eaton + + * Makefile.am (DOCSTRINGS): Depend on $(GEN_FCN_FILES) instead + of $(FCN_FILES_IN). Pass $(GEN_FCN_FILES) to mkdoc instead of + $(FCN_FILES_IN). Use mv instead of $(simple_move_if_change_rule). + (EXTRA_DIST): Include $(GEN_FCN_FILES) in the list. + + 2009-12-07 Jaroslav Hajek + + * general/interp1.m: Allow discontinuities (jumps) for the + "nearest" and "linear" methods. Document the feature and add a + few tests. + + 2009-12-06 Rik + + * Makefile.am: Distribute DOCSTRINGS so that documentation will + not require rebuild after merely untarring a distribution. + * mkdoc: Change output to refer to mfiles as "scripts/..." rather than + "$srcdir/...". Otherwise, distributed DOCSTRINGS file will not match + DOCSTRINGS created under a VPATH build and documentation will be + unnecessarily rebuilt. + + 2009-12-05 Jaroslav Hajek + + * set/ismember.m: Simplify. + + 2009-12-03 John W. Eaton + + * audio/wavwrite.m: Delete generated a.wav file after each test. + + * Makefile.am (DIRSTAMP_FILES, DISTCLEANFILES): New variables. + (DOCSTRINGS): Also depend on $(FCN_FILES_IN). Pass + $(FCN_FILES_IN) to mkdoc instead of $(GEN_FCN_FILES). Tell mkdoc + to look for $(FCN_FILES_IN) files in $(srcdir), not build + directory. + (DISTCLEANFILES): New variable. + Don't silence dirstamp, DOCSTRINGS, $(GEN_FCN_FILES), and PKG_ADD + rules. + + * audio/module.mk, deprecated/module.mk, elfun/module.mk, + help/module.mk, general/module.mk, geometry/module.mk, + image/module.mk, io/module.mk, linear-algebra/module.mk, + miscellaneous/module.mk, @ftp/module.mk, optimization/module.mk, + path/module.mk, pkg/module.mk, plot/module.mk, + polynomial/module.mk, set/module.mk, signal/module.mk, + sparse/module.mk, specfun/module.mk, special-matrix/module.mk, + startup/module.mk, statistics/base/module.mk, + statistics/distributions/module.mk, statistics/models/module.mk, + statistics/tests/module.mk, strings/module.mk, testfun/module.mk, + time/module.mk: Append to DIRSTAMP_FILES. + + 2009-12-02 Rik + + * image/imread.m: Run test case only if underlying GraphicMagick + library exists. + + 2009-12-02 John W. Eaton + + * help/module.mk: Fix typo in previous change. + + 2009-12-01 John W. Eaton + + * help/module.mk (help_PRIVATE_FCN_FILES): New list. + (help_FCN_FILES): Remove new private functions from the list. + Include $(help_PRIVATE_FCN_FILES) in the list. + * help/private/__additional_help_message__.m: Rename from + help/__additional_help_message__.m. + + * statistics/base/module.mk (statistics_base_FCN_FILES): + Remove statistics/base/__quantile__.m from the list. + * statistics/base/__quantile__.m: Now a subfunction of + statistics/base/quantile.m. + * statistics/base/quantile.m: Remove redundant tests. + + * miscellaneous/__xzip__.m: Comment out tests until we have a way + to test private functions directly. + + * general/isequal.m, general/isequalwithequalnans.m: + Convert tests from __isequal__. + + * optimization/module.mk (optimization_PRIVATE_FCN_FILES): New list. + (optimization_FCN_FILES): Remove new private functions and new + subfunctions from the list. Include + $(optimization_PRIVATE_FCN_FILES) in the list. + + * optimization/private/__fdjac__.m: Rename from + optimization/__fdjac__.m. + + * optimization/__dogleg__.m: Now a subfunction of path/fsolve.m. + * optimization/__doglegm__.m: Now a subfunction of path/fminunc.m. + + * general/module.mk (general_PRIVATE_FCN_FILES): New list. + (general_FCN_FILES): Remove new private functions from the list. + Include $(general_PRIVATE_FCN_FILES) in the list. + + * general/private/__isequal__.m: Rename from general/__isequal__.m. + * general/private/__splinen__.m: Rename from general/__splinen__.m. + + * image/module.mk (image_FCN_FILES): Remove image/__img__.m and + image/__img_via_file__.m from the list. + + * image/__img__.m: Now a subfunction of image/image.m. + * image/__img_via_file__.m: Now a subfunction of image_viewer.m. + + * path/module.mk (path_FCN_FILES): Remove path/__extractpath__.m + from the list. + + * path/__extractpath__.m: Now a subfunction of path/pathdef.m. + + * miscellaneous/module.mk (miscellaneous_PRIVATE_FCN_FILES): New list. + (miscellaneous_FCN_FILES): Remove __xzip__.m from the list. + Include $(miscellaneous_PRIVATE_FCN_FILES) in the list. + + * miscellaneous/private/__xzip__.m: Rename from + miscellaneous/__xzip__.m. + + 2009-12-01 David Bateman + + * @ftp/ftp.m: Treat empty constructor and construction from + another FTP object. + * @ftp/loadobj.m: Allow and remove the matlab specific fields + of FTP objects allowing matlab FTP objects to be loaded in Octave. + * @ftp/display.m: user -> username. + + 2009-12-01 John W. Eaton + + * plot/module.mk (plot_PRIVATE_FCN_FILES): New list. + (plot_FCN_FILES): Include $(plot_PRIVATE_FCN_FILES) in the list. + Remove new private functions and new subfunctions from the list. + + * plot/private/__actual_axis_position__.m: Rename from + plot/__actual_axis_position__.m. + * plot/private/__add_datasource__.m: Rename from + plot/__add_datasource__.m. + * plot/private/__axes_limits__.m: Rename from plot/__axes_limits__.m. + * plot/private/__axis_label__.m: Rename from plot/__axis_label__.m. + * plot/private/__bar__.m: Rename from plot/__bar__.m. + * plot/private/__clabel__.m: Rename from plot/__clabel__.m. + * plot/private/__contour__.m: Rename from plot/__contour__.m. + * plot/private/__default_plot_options__.m: Rename from + plot/__default_plot_options__.m. + * plot/private/__errcomm__.m: Rename from plot/__errcomm__.m. + * plot/private/__errplot__.m: Rename from plot/__errplot__.m. + * plot/private/__ezplot__.m: Rename from plot/__ezplot__.m. + * plot/private/__interp_cube__.m: Rename from plot/__interp_cube__.m. + * plot/private/__line__.m: Rename from plot/__line__.m. + * plot/private/__patch__.m: Rename from plot/__patch__.m. + * plot/private/__plt__.m: Rename from plot/__plt__.m. + * plot/private/__pltopt__.m: Rename from plot/__pltopt__.m. + * plot/private/__quiver__.m: Rename from plot/__quiver__.m + * plot/private/__scatter__.m: Rename from plot/__scatter__.m. + * plot/private/__stem__.m: Rename from plot/__stem__.m. + + * plot/__pltopt1__.m: Now a subfunction of plot/__pltopt__.m. + + * plot/__bars__.m: Now a subfunction of plot/__bar__.m. + * plot/__bar__.m (bars): Rename from __bars__. + (__bar__): Call bars insteaad of __bars__. + + * plot/__area__.m: Now a subfunction of plot/area.m. + + * plot/__plr1__.m, plot/__plr2__.m: Now subfunctions of polar.m. + + * plot/__plt1__.m, plot/__plt2__.m, plot/__plt2mm__.m, + plot/__plt2mv__.m, plot/__plt2ss__.m, plot/__plt2sv__.m, + plot/__plt2vm__.m, plot/__plt2vs__.m, plot/__plt2vv__.m: + Now subfunctions of __plt__.m. + + 2009-11-30 John W. Eaton + + * mkdoc: Handle classes in function names. + + 2009-11-27 David Bateman + + * @ftp/ascii.m, @ftp/binary.m, @ftp/cd.m, @ftp/close.m, + @ftp/delete.m, @ftp/dir.m, @ftp/display.m, @ftp/ftp.m, + @ftp/loadobj.m, @ftp/mget.m, @ftp/mkdir.m, @ftp/module.mk, + @ftp/mput.m, @ftp/rename.m, @ftp/rmdir.m, @ftp/saveobj.m: New files + * Makefile.am: Add the @ftp to the build. + + 2009-11-26 Jaroslav Hajek + + * linear-algebra/cross.m: Avoid doing indexing twice. + + 2009-11-26 Jaroslav Hajek + + * linear-algebra/normest.m: Randomize initial vector. + + 2009-11-26 Jaroslav Hajek + + * linear-algebra/dot.m: Remove. + * linear-algebra/module.mk: Update. + + 2009-11-26 Jaroslav Hajek + + * optimization/qp.m: Fix matrix tests. + * optimization/condest.m: Ditto. + * optimization/krylov.m: Ditto. + + 2009-11-26 Jaroslav Hajek + + * sparse/normest.m: Move to linear-algebra. + * linear-algebra/normest.m: Simplify. Don't form A'*A explicitly. + + 2009-11-25 Jaroslav Hajek + + * linear-algebra/isdefinite.m: Use Cholesky factorization. + + 2009-11-24 Jaroslav Hajek + + * general/issymmetric.m: Move to linear-algebra. + * general/isdefinite.m: Ditto. + * linear-algebra/issymmetric.m: Use 0 as default tolerance. Optimize + this case. Check for symmetry, not hermitianness. + * linear-algebra/ishermitian.m: New function. + * linear-algebra/isdefinite.m: Use ishermitian instead of issymmetric. + + 2009-11-24 Jaroslav Hajek + + * general/cellidx.m: Deprecate. + + 2009-11-24 Jaroslav Hajek + + * general/issquare.m: Change to return consistent result for empty + matrices. + + 2009-11-24 Jaroslav Hajek + + * general/cell2mat.m: Check type of all elements. Slightly optimize. + Add tests. + + 2009-11-24 Jaroslav Hajek + + * general/accumarray.m: Use num2cell instead of mat2cell. Use repmat. + + 2009-11-20 Jaroslav Hajek + + * script/miscellaneous/getfield: Deblank field names, gripe on invalid + index. + * script/miscellaneous/setfield: Rewrite using subsasgn. + + 2009-11-22 Michael Goffioul + + * plot/print.m: Properly set the default ghostscript_binary + under Windows. Modify the search for the ghostscript binary + so that it works for Win32, mingw, Cygwin, and Unix systems. + + 2009-11-20 Jaroslav Hajek + + * strings/dec2base.m: Fix division. + + 2009-11-20 Lukas Reichlin + + * linear-algebra/krylov.m: Add missing swap routine. + + 2009-11-20 Jaroslav Hajek + + * general/__isequal__.m: Check for isnumeric|islogical. + * testfun/assert.m: Ditto. + + 2009-11-19 Jaroslav Hajek + + * specfun/perms.m: Avoid recursion. Simplify assignments. Allow empty + vectors. + + 2009-11-19 Jaroslav Hajek + + * specfun/erfinv.m: Remove. + * specfun/module.mk: Update. + + 2009-11-18 Ben Abbott + + * plot/orient.m: Flip papersize and paperposition when orientation + changes. Add support for 'tall' option. Add tests. + + 2009-11-18 Jaroslav Hajek + + * io/textread.m: strncmp->strcmpi. + + 2009-11-14 Jaroslav Hajek + + * linear-algebra/expm.m: Fix typo. + + 2009-11-11 John W. Eaton + + * miscellaneous/intwarning.m: Doc fix. + + 2009-11-11 John W. Eaton + + * plot/stairs.m (__stairs__): Correct nargin check. New demos. + From Jakub Kasse . + + 2009-11-11 John W. Eaton + + * help/help.m (help): Return immediately after calling do_contents. + (do_contents): Find all matching directories, not just the first. + Call get_help_text_from_file to avoid looking in path. + Handle printing here. + + 2009-11-10 John W. Eaton + + * Makefile.am, audio/module.mk, deprecated/module.mk, + elfun/module.mk, general/module.mk, geometry/module.mk, + help/module.mk, image/module.mk, io/module.mk, + linear-algebra/module.mk, miscellaneous/module.mk, + optimization/module.mk, path/module.mk, pkg/module.mk, + plot/module.mk, polynomial/module.mk, set/module.mk, + signal/module.mk, sparse/Makefile.in, specfun/Makefile.in, + special-matrix/Makefile.in, startup/Makefile.in, + statistics/Makefile.in, statistics/base/module.mk, + statistics/distributions/module.mk, statistics/models/module.mk, + statistics/tests/module.mk, strings/module.mk, testfun/module.mk, + time/module.mk: New files. + * Makefile.in, move-if-change, configure.ac, audio/Makefile.in, + deprecated/Makefile.in, elfun/Makefile.in, general/Makefile.in, + geometry/Makefile.in, help/Makefile.in, image/Makefile.in, + io/Makefile.in, linear-algebra/Makefile.in, + miscellaneous/Makefile.in, optimization/Makefile.in, + path/Makefile.in, pkg/Makefile.in, plot/Makefile.in, + polynomial/Makefile.in, set/Makefile.in, signal/Makefile.in, + skip-autoheader, sparse/module.mk, specfun/module.mk, + special-matrix/module.mk, startup/module.mk, + statistics/base/Makefile.in, statistics/distributions/Makefile.in, + statistics/models/Makefile.in, statistics/tests/Makefile.in, + strings/Makefile.in, testfun/Makefile.in, time/Makefile.in: + Delete. + * mk-pkg-add: Rename from mkpkgadd. + * mkdoc, mk-pkg-addd: Operate on explicit lists of files instead + of directory names. + * mkdoc: Skip files not ending in .m. + + 2009-11-10 Ben Abbott + + * plot/__go_draw_axes__.m: No 'with linestyle' when linestyle == 'none'. + + 2009-11-09 Jaroslav Hajek + + * general/arrayfun.m: Fix nargout=0 case. + + 2009-11-08 Petr Mikulik + + * plot/gnuplot_drawnow.m: Support gnuplot's dumb terminal. + + 2009-11-02 Stefan Hepp + + * plot/gnuplot_drawnow.m (gnuplot_default_term): Don't set term to + x11 unless DISPLAY is set. + + 2009-11-02 Jaroslav Hajek + + * general/interp1.m: Simplify. + + 2009-11-02 Jaroslav Hajek + + * polynomial/mkpp.m: Improve Matlab compatibility. + * polynomial/ppval.m: Ditto. + * polynomial/unmkpp: Update. + * polynomial/pchip.m: Update and optimize. + * polynomial/spline.m: Update. + * general/__splinen__.m: Update. + + 2009-10-23 Jaroslav Hajek + + * general/tril.m, general/triu.m: Remove sources. + * general/Makefile.in: Update. + + 2009-10-20 Soren Hauberg + + * general/interp2.m: improved error checking and support for bicubic + interpolation when X and Y are meshgrid format. + + 2009-10-22 Jaroslav Hajek + + * general/interp1.m: Perform optimizations, improve code (use switch + instead of multiple ifs). + * polynomial/pchip.m: Employ more optimized formulas (from SLATEC). + + 2009-10-22 Soren Hauberg + + * image/autumn.m, image/bone.m, image/cool.m, image/copper.m, + image/flag.m, image/gmap40.m, image/gray.m, image/hot.m, + image/hsv.m, image/jet.m, image/ocean.m, image/pink.m, + image/prism.m, image/rainbow.m, image/spring.m, image/summer.m, + image/white.m, image/winter.m: Add demos. + + 2009-10-20 Soren Hauberg + + * general/interp2.m: improved error checking and support for bicubic + + 2009-10-19 Soren Hauberg + + * io/strread.m, io/textread.m: New functions. + + 2009-10-20 Jaroslav Hajek + + * statistics/base/center.m: Rewrite using bsxfun. + + 2009-10-15 David Bateman + + * plot/__go_draw_axes__.m: Allow line and surface markerfacecolor + and markeredgecolor properties to be used and set the marker colors + appropriately. + + 2009-10-14 Jaroslav Hajek + + * statistics/base/median.m: Rewrite using nth_element. + + 2009-10-01 John W. Eaton + + * image/__img__.m: Adjust xlim and ylim correctly. + + 2009-10-01 John W. Eaton + + * Makefile.in (plot/gnuplot_binary.m): New rule. + (DOCSTRINGS): Depend on plot/gnuplot_binary.m. + (ALL_M_FILES): Define with =, not :=. + + 2009-10-01 Jaroslav Hajek + + * geometry/griddata.m: Fix handling vector xi, yi. + + 2009-09-30 Jaroslav Hajek + + * general/arrayfun.m: Simplify. + + 2009-09-30 John W. Eaton + + * mkdoc: Work on list of file names instead of a directory. + * Makefile.in (ALL_M_FILES): Don't strip directories. + Also search build directory if it is different from $(srcdir). + Pass $(ALL_M_FILES) to mkdoc. + + 2009-09-30 Michael D. Godfrey + + * plot/clabel.m: Spelling fix. + * plot/newplot.m: Update docstring. + + 2009-09-28 John W. Eaton + + * general/sortrows.m: Also use old algorithm for sparse matrices. + + 2009-09-21 Jaroslav Hajek + + * set/union.m: Fix docstring. + * set/setxor.m: Fix docstring. + + 2009-09-16 Jaroslav Hajek + + * general/randperm.m: Remove. + * general/Makefile.in: Update. + + 2009-09-15 John W. Eaton + + * confiugre.ac: Rename from configure.in + * Makefile.in: Rename all instances of configure.in to + configure.ac. + + 2009-09-11 Jaroslav Hajek + + * optimization/Makefile.in: Include __doglegm__.m. + + 2009-09-11 Jaroslav Hajek + + * optimization/fminunc.m: Simplify damped BFGS calculation. + + 2009-09-09 Tatsuro Matsuoka + + * plot/gnuplot_drawnow.m: Avoid flickering windows by avoding + 'set multiplot' / 'unset multiplot' for gnuplot's windows and + wxt terminals. + + 2009-09-06 Jaroslav Hajek + + * optimization/__dogleg__.m: Revert to revision 22c8272af34b. + * optimization/__doglegm__.m: New source. + * optimization/fminunc.m: Use it. + + 2009-09-08 John W. Eaton + + * io/dlmwrite.m: Fix typo. + + 2009-09-06 Jaroslav Hajek + + * optimization/fsolve.m: Change initial TR step strategy. + * optimization/fminunc.m: Change initial TR step strategy. + + 2009-09-08 Jaroslav Hajek + + * optimization/fminunc.m: Correct extra output params handling. + + 2009-09-06 Jaroslav Hajek + + * optimization/fsolve.m: Update initial factor. + * optimization/fminunc.m: Update initial factor. + + 2009-09-06 Jaroslav Hajek + + * general/arrayfun.m: Fix test. + + 2009-09-05 John W. Eaton + + * plot/hold.m: Correctly toggle hold state. Set both figure and + axes "nextplot" property when turning hold state on. + * plot/ishold.m: Check figure and axes nextplot properties. + Accept axes or figure handle argument. + + 2009-09-01 Christophe Tournery + + * audio/wavread.m: Rename data_size from obsolete ck_size. + + 2009-08-31 David Bateman + + * general/quadgk.m: More care with the interval length and + convergence of contour integrals. + + 2009-08-29 John W. Eaton + + * time/datestr.m: Add missing semicolon. + + 2009-08-17 Jaroslav Hajek + + * general/int2str.m: Convert to double before calling log10. + + 2009-08-26 E. Joshua Rigler + + * time/datestr.m: Set tm.isdst to -1 before calling mktime. + + 2009-08-25 John W. Eaton + + * plot/__gnuplot_open_stream__.m: Save pid in __plot_stream__ property. + * plot/gnuplot_drawnow.m: Wait for gnuplot subprocess when printing. + From Ben Abbott , Rob Mahurin , and + Dmitri Sergatskov . + + 2009-08-22 David Bateman + + * plot/__add_datasource__.m: Correct test for "datasource" argument + * plot/__countour__.m: Add edgecolor properties and make it an alias + for linecolor with the value "auto" being "flat" for the edgecolor. + + 2009-08-17 John W. Eaton + + * help/print_usage.m: Make it work again if an argument is given. + + 2009-08-17 Jaroslav Hajek + + * help/print_usage: Allow calling from methods. + + 2009-08-11 Jaroslav Hajek + + * general/diff.m: Remove. + * general/Makefile.in: Update. + + 2009-08-07 Jaroslav Hajek + + * general/flipdim.m: Fix omitted check. + + 2009-08-07 Jaroslav Hajek + + * general/flipdim.m: Simplify. + + 2009-08-07 Olli Saarela + + * plot/__gnuplot_ginput__.m: If read fails to return data, sleep + before trying again. + + 2009-08-06 John W. Eaton + + * plot/compass.m, plot/feather.m: Simplify argument processing. + + 2009-08-06 John W. Eaton + + * statistics/base/std.m: Correctly work along singleton dimension. + From Christoph Ellenberger . + + 2009-08-06 Jaroslav Hajek + + * geometry/griddata.m: Optimize. + + 2009-08-06 Olaf Till + + * geometry/griddata.m: Linearize arrays. + + 2009-08-04 Pieter Eendebak + + * set/setxor.m: Added test for cell arrays of strings. + + 2009-08-05 Olli Saarela + + * plot/__gnuplot_get_var__.m: If read fails to return data, sleep + before trying again. + + 2009-08-04 Pieter Eendebak + + * set/setxor.m: Support cell arrays of strings. + + 2009-08-03 Jaroslav Hajek + + * general/sub2ind.m: Remove source. + * general/ind2sub.m: Remove source. + * general/Makefile.in: Update. + + 2009-08-02 Ben Abbott + + * plot/gnuplot_drawnow.m: Avoid the flickering x11 window seen with + rapid replots by avoidng setting multiplot mode. This fix only + functions for a single axes with no image objects. + * plot/__go_draw_figure__.m: Move 'set multiplot' to gnuplot_drawnow. + + 2009-07-31 Jaroslav Hajek + + * general/common_size: Optimize. + + 2009-07-29 Ben Abbott + + * plot/__go_draw_axes__.m: Fix ticklabels specified as 2D character + array. + * plot/__go_draw_axes__.m: Ignore fontnames for the Lua-TikZ terminal. + * plot/gnuplot_drawnow.m: Support the gnuplot terminal Lua-TikZ. + * plot/print.m: Support the gnuplot terminal Lua-TikZ. + + 2009-07-29 Jaroslav Hajek + + * plot/gnuplot_binary.m: Fix typo. + + 2009-07-27 Jaroslav Hajek + + * optimization/fzero.m: Use "global" parameter in str2func. + * optimization/fsolve.m: Ditto. + * optimization/fminunc.m: Ditto. + + 2009-07-24 John W. Eaton + + * plot/gnuplot_binary.in: Accept arguments in addition to program name. + * plot/__gnuplot_open_stream__.m: Pass additional args to gnuplot. + + 2009-07-23 Ben Abbott + + * plot/legend.m: Add an hggroup demo using bar(). Include clf() + in each demo. + + 2009-07-23 John W. Eaton + + * image/imread.m: Fix test. + + * plot/legend.m: Process arguments in order, child objects in + reverse. Remove special case for single label. New demos. + + 2009-07-23 Thorsten Meyer + + * testfun/assert.m: Fix string comparison bug. + + 2009-07-20 Jaroslav Hajek + + * testfun/assert.m: Use less strict checking for exact matches. + + 2009-07-17 John W. Eaton + + * plot/__go_draw_axes__.m: Use "layer" property to decide whether + to send "set border front" or "set border layerdefault" to plot + stream. Don't send "set border front" to plot stream for image data. + + 2009-07-15 Robert T. Short + + * polynomial/conv.m: Fix Matlab incompatibility. New tests. + + 2009-07-09 John W. Eaton + + * plot/axis.m: Return 4-element vector for 2-d view. + From David Woodburn . + + * sparse/nonzeros.m: Always return a column vector. New tests. + + 2009-06-25 Ben Abbott + + * plot/gnuplot_drawnow.m: Apply feature 'wxt_has_size'. + * plot/__gnuplot_has_feature__.m: Add feature 'wxt_has_size' for + gnuplot >= 4.3.0. + + 2009-06-24 Ben Abbott + + * plot/__go_draw_figure__.m: Modify the implicit margin when gnuplot's + output is landscape. + * plot/gnuplot_drawnow.m: Simplify handling of the figure's paper + properties, and rely upon listeners for units conversion. Minor code + improvements. + * plot/print.m: Reimplement -landscape and -portrait to modify the + properties papersize and paperposition. Produce compatible results + when paperpositionmode=='auto'. Simplfy units conversion and + restoration of initial figure properties. + + 2009-06-24 Marco Caliari + + * general/repmat.m: Call kron, not spkron. + + 2009-06-24 Alexander Mamonov + + * plot/plot3.m: Correctly compute offsets for property/value pairs. + + 2009-06-23 Alexander Mamonov + + * image/imread.m: New test. + + 2009-06-22 Ben Abbott + + * plot/grid.m: Add missing semi-colon. Allow grid to be toggled + on/off for each axis independently. Gnuplot requires that minor + ticks accompany minor ticks. Add demo. + * plot/__go_draw_axes__.m: For {x,y,z}scale == 'log' use 10 minor + ticks. + + 2009-06-22 John W. Eaton + + * statistics/base/var.m: Return zero for scalar case. Handle + empty arguments in a Matlab compatible way. New tests. + + 2009-06-19 Jaroslav Hajek + + * set/ismember.m: Properly handle NaNs. Fix test. + + 2009-06-18 Ben Abbott + + * plot/__go_draw_axes__.m: Change the default x11 fontspec from '*,0' + to ',0' to avoid delays searching the fontpath for a font named '*'. + + 2009-06-18 Daniel Gualberto + + * polynomial/mpoles.m: Fix infinite loop for a multiplicity of + poles at zero. Test added. + + 2009-06-17 Bertrand Roessli + + * plot/axis.m: Fix bug for 'axis tight' with multiple surface plots, + add demo. + + 2009-06-15 Ben Abbott + + * plot/quiver.m: Add 'clf' to demos. + * plot/plotyy.m: Consider dataaspectratiomode before changing + dataaspectratio. + + 2009-06-14 Ben Abbott + + * plot/plotyy.m: Fix compatibility with subplot, add listeners for + dataaspectratio, and add a demo. + + 2009-06-14 Eric Chassande-Mottin + + * plot/plotyy.m: Correct behavior when there is no currentfigure. + + 2009-06-14 Jaroslav Hajek + + * set/ismember.m: Reimplement using lookup & unique. + + 2009-06-11 Ben Abbott + + * plot/print.m: Fix logic associated with 'have_ghostscript'. + * plot/gnuplot_drawnow.m: Add support for pdfcairo and pngcairo + terminals. Minor code improvements. + * plot/print.m: Associate '-mono' with devices ps, ps2, eps, & eps2. + Have '-mono' render all objects in monochrome. + For pdf or png output, favor gnuplot's cairo terminals. + + 2009-06-10 Marco Caliari + + * plot/hold.m: Add demo including a hggroup. + * plot/__go_draw_axes__.m: Fix order when pushing group children onto + the axes kid list. + * general/quadgk.m: Better waypoint transform. + + 2009-06-09 David Bateman + + * general/quadgk.m: Add test case and fixed doubly infinite + waypoint transform for x = 0 case. + + 2009-06-09 Marco Caliari + + * general/quadgk.m: Fix doubly infinite transformation to the finite + interval. + + 2009-06-08 Ben Abbott + + * plot/axis.m: Fix bug for 'axis tight' with multiple lines, modify + demo. + + 2009-06-07 Thorsten Meyer + + * testfun/assert.m: Fix texinfo bug. + + 2009-06-04 Ben Abbott + + * plot/__go_draw_axes__.m: Change strncmpi(scale,'lo') to + strcmp(scale,'log'). + * plot/__go_draw_axes__.m: For log-scale axes use format '10^{%T}'. + + 2009-06-03 Ben Abbott + + * plot/colorbar.m: Colorbar 'handlevisibility' should be 'on'. + Add additional demos which illustrate problems with the present + implementation. + * plot/__gnuplot_has_feature__.m: Change version for + "x11_figure_position" from ">=4.3.0" to ">=4.2.5". + * plot/__scatter__.m: If the color spec is empty, set using + __next_line_color__. + * plot/scatter3.m: Add demos. + + 2009-06-03 Jaroslav Hajek + + * polynomial/polyfit.m: Fix test. + + 2009-06-02 Rafael Laboissiere + + * help/doc.m: In test, look also for the gzipped version of the + info_file + + 2009-05-29 John W. Eaton + + * plot/__gnuplot_get_var__.m: Insert missing semicolon. + + 2009-05-28 Ben Abbott + + * plot/__go_draw_axes__.m: Set x2range when xaxislocation=='top' + and set y2range when yaxislocation=='right'. Simplify support + for ticklabel separator '|'. + * plot/__go_draw_figure__.m: Change 'autoscale fix' to + 'autoscale keepfix'. + * plot/colorbar.m: Add demos. + + 2009-05-28 Ben Abbott + + * plot/__go_draw_axes__.m: Add support for ticklabel separator '|'. + + 2009-05-28 Jaroslav Hajek + + * sparse/bicgstab.m: Improve preconditioning; avoid explicit inverse. + * sparse/cgs.m: Improve preconditioning; avoid explicit inverse. + + 2009-05-28 Radek Salac + + * sparse/bicgstab.m: New output when calling without arguments. + Time optimization - remove certain checks linked to + preconditioner which are unacceptably slow. + * sparse/cgs.m: New output when calling without arguments. + Time optimization - remove certain checks linked to + preconditioner which are unacceptably slow. Rename internal + variable to match bicgstab. + + 2009-05-27 Rik Wehbring + + * plot/axis.m: Update documentation to reflect addition of + "tight" option. + + 2009-05-27 Rik Wehbring + + * ismember.m: Update examples to remove incorrect reference to + residue function. + + 2009-05-27 John W. Eaton + + * image/imwrite.m: Convert indexed images to RGB before calling + __magick_write__. + + * image/imshow.m: In demo, convert image to rgb before scaling + components. Use imread instead of loadimage. + + 2009-05-26 Ben Abbott + + * plot/__go_draw_axes__.m: Fix rendering of overlaping images and + line objects. Add demos as well. + + 2009-05-27 Sᅵren Hauberg + + * geometry/delaunay.m: Support cellstr's as options. + + 2009-05-27 Jaroslav Hajek + + * plot/imshow.m: Fix handling of indexed images. + + 2009-05-26 Sᅵren Hauberg + + * help/__makeinfo__.m: Support several @seealso's in one text. + + 2009-05-26 John W. Eaton + + * plot/colorbar.m: Downcase location argument. + + 2009-05-26 Carlo de Falco + + * pkg/pkg.m: Add "version" field to the structure returned by "pkg + describe". + + 2009-05-25 Ben Abbott + + * plot/__go_draw_axes__.m: Properly render TeX symbols for x11, when + using the anonymous fontname="*". + + 2009-05-24 Benjamin Lindner + + * plot/gnuplot_drawnow.m: single-quote output name to allow backslash + characters as filesep under windows + * plot/print.m: Support ps->pdf using ghostscript under windows, check + for %GSC% environment variable. + + 2009-05-24 Benjamin Lindner + + * plot/__gnuplot_version__.m: quote gnuplot_binary to allow spaces + in file name + + 2009-05-22 John W. Eaton + + * general/interp3.m: Don't require interpolation grid to have same + size as data. From Kris Thielemans . + + 2009-05-19 Carlo de Falco + + * pkg/pkg.m: Fix a bug when quering only one non installed package + with "pkg describe". + + 2009-05-14 Jaroslav Hajek + + * optimization/__fdjac__.m: Support central differences. + * optimization/fsolve.m: Support central differences. Add FinDiffType + option. + * optimization/fminunc.m: Ditto. + + 2009-05-17 Rik Wehbring + + * *.m: Simplify Texinfo documentation in .m scripts by removing + redundant @iftex calls + + 2009-05-17 Jaroslav Hajek + + * optimization/fminunc.m: Improve TR updating strategy. + * optimization/fsolve.m: Ditto. + + 2009-05-15 John W. Eaton + + v * general/nargchk.m: Don't generate error if output is struct. + Uncomment some additional tests. + From Alois Schloegl + + 2009-05-14 Jaroslav Hajek + + * optimization/fminunc.m: Import the step adaptation strategy + improvements from fsolve. + + 2009-05-08 Ben Abbott + + * plot/__gnuplot_has_feature__.m: Add feature "key_has_font_properties". + * plot/__go_draw_axes__.m: Have legend inherit the axis font-name/size. + + 2009-05-04 Peter O'Gorman + + * miscellaneous/tar.m, miscellaneous/unpack.m: + Pass "xvf" to tar instead of "-x -v -f". + + 2009-04-30 Ben Abbott + + * plot/__gnuplot_has_feature__.m: Change version for + "x11_figure_position", >4.2.4 to >=4.3.0. + + 2009-04-30 Ben Abbott + + * plot/gnuplot_drawnow.m: For figure position, treat 'wxt' as 'x11'. + + 2009-04-30 Jaroslav Hajek + + * statistics/base/range.m: Fix behavior when dim is specified. + + 2009-04-28 Ben Abbott + + * plot/print.m: Fix typo: 'gswin23c' -> 'gswin32c'. Suppress stderr + when printing. New sub-function: fix_eps_bbox(). Add option, "-tight", + to replace the gnuplot bbox with a tight bbox for eps-files. + + 2009-04-23 Ben Abbott + + * plot/print.m: Use Ghostscript rather than ImageMagick's 'convert'. + Support printing to non-postscript printers. Do not change the output + filename when using Ghostscript. When using lpr to print the output, + send it without filtering (unix), or as if it were binary (pc). + + 2009-04-22 Robert T. Short + + * general/isa.m: Correctly report multiple layers of class hierarchy. + + 2009-04-20 John W. Eaton + + * special-matrix/vander.m: Update tests. + + 2009-04-20 Jaroslav Hajek + + * special-matrix/vander.m: Allow second argument. + * special-matrix/polyfit.m: Simplify. + + 2009-04-17 Rik + + * plot/__marching_cube__.m: Correct help Texinfo so manual will compile + + 2009-04-16 Marco Caliari + + * toeplitz.m: Treat separately the sparse case. + + 2009-04-14 Thomas Treichl + + * plot/__marching_cube__.m: Add help text. + * plot/isonormals.m: Add help text and tests. + + 2009-04-14 David Bateman + + * plot/__patch__.m: Set default facecolor to [0,1,0]. + + 2009-04-12 Aravindh Krishnamoorthy + + * special-matrix/hadamard.m: Fix a documentation mistake. + + 2009-04-14 Jaroslav Hajek + + * polynomial/polyaffine.m: New function. + * polynomial/polyscale.m: Remove. + * polynomial/polytrans.m: Remove. + + 2009-04-12 Ben Abbott + + * plot/__gnuplot_open_stream__.m: New function. + * plot/__gnuplot_get_var__.m: If not open, open the gnuplot plot stream. + * plot/gnuplot_drawnow.m: Replace internal function open_gnuplot_stream + with new __gnuplot_open_stream__. + + 2009-04-11 David Bateman + + * geometry/trisurf.m: New file. + * geometry/Makefile.in (SOURCES): Add it here. + * geometry/trimesh.m: Convert to using 3D patches. + * plot/__go_draw_axes__.m: Allow 3D filled triangular patches. + * plot/__patch__.m: Rewrite to allow update of dependent variables + with listener functions amongst themselves. + * plot/patch.m: Add 3D demo. Update the documentation. + + 2009-04-11 Martin Helm + + * plot/__interp_cube__.m, plot/__marching_cube__.m, isocolors.m, + isonnormals.m, isosurface.m: New files. + * plot/Makefile.in (SOURCES): Add them here. + + 2009-04-11 Jaroslav Hajek + + * set/intersect.m: Add missing branch. + + 2009-04-10 Ben Abbott + + * plot/print.m: If no pdf support in gnuplot, then "convert" from + postscript to pdf. For gnuplot 4.2.x use "convert", if it is present, + to produce pdf output. Only render a full page for ps/pdf output. + Rename variable, "size" to "canvas_size". Reformat help text to + eliminate unintended spaces. Minor improvements to the code. + * plot/gnuplot_drawnow.m: Place canvas size at the end of the terminal + spec, and remove trailing semicolon. Minor improvments to the code. + * plot/__gnuplot_get_var__.m: If fifo fails to open, try 2nd time. + + 2009-04-08 Jaroslav Hajek + + * special-matrix/vander.m: Optimize. + + 2009-04-07 Ben Abbott + + * plot/Makefile.in: Remove __gnuplot_default_font__.m from SOURCES. + + 2009-04-06 Ben Abbott + + * plot/__gnuplot_get_var__.m: Correct misleading error messages, and + remove dangling/commented code. + * plot/__gnuplot_default_font__.m: Remove file from archive. + * plot/__go_draw_axes__.m, plot/__go_draw_figure__.m: Allow + fontsize to be specified for all terminals with fontname == "*". + + 2009-04-06 Jaroslav Hajek + + * polynomial/polyscale.m: New function. + * polynomial/polytrans.m: New function. + + 2009-04-06 Jaroslav Hajek + + * special-matrix/pascal.m: Fix, optimize & extend. + + 2009-04-06 Jaroslav Hajek + + * linear-algebra/vech.m: Optimize. + + 2009-04-06 Jaroslav Hajek + + * special-matrix/toeplitz.m: Optimize. + + 2008-04-03 David Bateman + + * plot/__scatter__.m: correct indexing of cdata.x + + 2009-04-03 Jaroslav Hajek + + * optimization/fminunc.m: New function. + * optimization/Makefile.in: Update. + * optimization/__dogleg__: Allow general quadratics. + + 2009-04-02 Ben Abbott + + * plot/__go_draw_axes__.m: Include gnuplot command termination when + plotting image. + + 2009-04-02 Ben Abbott + + * plot/__go_draw_axes__.m: Fix title placement for gnuplot 4.2.x. + + 2009-04-02 Jaroslav Hajek + + * optimization/fsolve.m: Fix test. + + 2009-03-30 Ben Abbott + + * plot/__go_draw_axes__.m: New subfunction create_fontspec(). Allow + fontsize to be specified when the fontname is anonymous. + + 2009-03-30 Ben Abbott + + * plot/__gnuplot_default_font__.m: New function: determine gnuplot's + terminal dependent default font. + * plot/__go_draw_figure__.m: Substitute gnuplot default font when + "fontname" = "*". + + 2009-03-29 John W. Eaton + + * testfun/Makefile.in (SOURCES): Add rundemos.m to the list. + + 2009-03-29 Ben Abbott + + * plot/print.m: For eps output the bounding box should represent the + figure's position. + + 2009-03-28 Ben Abbott + + * plot/gnuplot_drawnow.m: Always set figure property "__plot_stream__" + to the active gnuplot steam. Permits __gnuplot_get_var__ to return to + proper result for all gnuplot streams. + + 2009-03-27 Ben Abbott + + * plot/__go_draw_axes__.m: Properly position the title for 3D plots + when using the gnuplot (v4.3+) backend. + + 2009-03-27 Jaroslav Hajek + + * linear-algebra/expm.m: Fix order of outputs from balance. + + 2009-03-25 Kai Habel + + * general/gradient.m: Fix calculation for more than two + dimensions. Change interpretation of vector arguments from + spacing to coordinates. New tests. + + 2009-03-25 John W. Eaton + + * mkdoc: Pass full file name to gethelp. + * gethelp.cc (main): Handle second argument. Write comment with + full file name to output. + + 2009-03-24 Ben Abbott + + * plot/gnuplot_drawnow.m: When printing, pass scalar plot_stream + to __gnuplot_draw_figure__, and close all plot streams when done. + + 2009-03-24 John W. Eaton + + * general/isa.m: Handle parent classes. + + 2009-03-23 Ben Abbott + + * plot/gnuplot_drawnow.m: Check that gnuplot has internal variable + "GPVAL_TERMINALS". + * plot/__gnuplot_has_feature__.m: Add "variable_GPVAL_TERMINALS". + + 2009-03-21 Ben Abbott + + * plot/gnuplot_drawnow.m: Verify the gnuplot terminal is supported. + * plot/__gnuplot_get_var__.m: Add function to get gnuplot variables. + * plot/print.m: Restore the behavior for option -S,. + + 2009-03-19 Jaroslav Hajek + + * optimization/fsolve.m (guarded_eval): Simplify & fix missing + semicolon. + + 2009-03-17 Jaroslav Hajek + + * optimization/__fdjac__.m: Pass in fvec to save one evaluation. + * optimization/fsolve.m: Avoid redundant reevaluation when using + FD jacobians. Document how it can be done with user jacobians. Make + first iteration special and call outputfcn after it. Skip updates + unless two successful iterations have occured. + * optimization/__dogleg__.m: Add missing alpha in the zero-gradient + case. + * optimization/fsolve.m: Remove autodg (not used), simplify. + + 2009-03-14 Jaroslav Hajek + + * statistics/base/var.m: a -> x. + + 2009-03-13 Jaroslav Hajek + + * statistics/base/mean.m: Simplify. + * statistics/base/meansq.m: Optimize. + * statistics/base/center.m: Fix behvaior with vectors, simplify. + * statistics/base/std.m: Simplify using `center'. + * statistics/base/var.m: Ditto. + * statistics/base/cov.m: Ditto. + + 2009-03-13 Jaroslav Hajek + + * general/repmat.m: Use subscript pairs rather than forming Kronecker + products. + + 2009-03-11 Ben Abbott + + * plot/__go_draw_axes__.m: Unset the {x,y,z}ticks when initializing + each axis. Set ticklabels when the ticklabels are empty and when + ticklabelmode=="manual". + + 2009-03-11 Marco Caliari + + * plot/axis.m: Implement "square" and "equal" options, conditional + on how octave positions gnuplot axes. Place the "title()" and + "axis()" commands after "plot()" in the demos. + + 2009-03-09 Ben Abbott + + * plot/__go_draw_axes__.m (do_tics): Fix typo (xaxislocation -> + yaxislocation). + + 2009-03-09 John W. Eaton + + * help/lookfor.m (search_cache): Also match function names. + + * pkg/pkg.m, help/gen_doc_cache.m, help/lookfor.m: + Use doc-cache instead of DOC for doc cache file. + + 2009-03-09 Jaroslav Hajek + + * general/accumarray.m: Reorder tests. Call either "sparse" or + __accumarray_sum__ for the default summation case. + * statistics/base/histc.m: Reimplement using lookup & accumarray. + + 2009-03-08 Sᅵren Hauberg + + * statistics/base/histc.m: New function. + + 2009-03-06 Ben Abbott + + * plot/__go_draw_axes__.m: Preserve the order of axes' children + when pruning the handles for the {x,y,z}labels and title. + * plot/legend.m: Change demo to add colors to lines. This change + reveals the problem (above) with the ordering of the axes' children. + + 2009-03-05 Jaroslav Hajek + + * linear-algebra/condest.m: Use lu rather than splu. Use relative tols + for tests. + + 2009-03-05 John W. Eaton + + * deprecated/spdiag.m: Ensure sparse result. + + 2009-03-05 Ben Abbott + + * plot/__go_draw_axes__.m: Preserve column vector orientation for + the axes children while removing the axis label & title handles. + + 2009-03-03 Jaroslav Hajek + + * polynomial/polyval.m: Implement using Horner scheme. + + 2009-03-03 Ben Abbott + + * plot/gnuplot_drawnow.m: Fix unintended shift of plot image for + the gnuplot postscript+eps terminal. + + 2009-03-02 Jaroslav Hajek + + * pkg/pkg.m (fix_depends): Fix & simplify splitting the string. + + 2009-03-02 Thorsten Meyer + + * set/complement.m, set/union.m: Remove reference to deprecated + function create_set. + + 2009-03-01 Ben Abbott + + * plot/__go_draw_axes__.m: Do not render axis labels twice when + their handles are visible, but do render objects with hidden + handles. + + 2009-03-01 Ben Abbott + + * general/num2str.m: Trivial bug fix. Recent switch from split() + to strsplit() produced cells rather than character data. + + 2009-03-01 Ben Abbott + + * plot/colorbar.m: Bug fix. Allow hidden colorbars to be deleted, + and replace existing colorbar when a new one is created. Additional + demos are included to verify these behaviors. + + 2009-02-28 Ben Abbott + + * plot/__actual_axis_position__.m: Include file missed in prior + changeset. + + 2009-02-28 Ben Abbott + + * plot/print.m, plot/gnuplot_drawnow.m: Add compatible support for + specificying resolution of bitmap terminals, "-r". + + * plot/gnuplot_drawnow.m: Check that canvas size is only specified + one time. + + * plot/gnuplot_drawnow.m, plot/__go_draw_figure__.m: Support papersize, + paperposition properties. Accommodate gnuplot's implicit margins for + postscript terminals. Remove internal function get_canvassize(). + + * plot/gnuplot_drawnow.m: + Terminate gnuplot "set term ..." with semicolon. + Specify vector terminals sizes in floating point. + Rename internal function isbackend() to output_to_screen(). + Rename internal function gnuplot_term() to gnuplot_default_term(). + Rename internal function isbitmap() to term_units_are_pixels(). + Minor changes for coding conventions. + + * plot/__actual_axis_position__.m, Makefile.in: New function to + determine position of rendered axes, including the effect of the + aspect ratio. + * plot/__gnuplot_has_feature__.m: Add new feature + "screen_coordinates_for_{lrtb}margin". + * plot/__go_draw_axes__.m, plot/colorbar.m: Enable axes to be + positioned using {lrtb}margins. + * plot/colorbar.m: Add to, and modify, demos. + + * plot/print.m: Remove non-functional/commented code. + * plot/__go_draw_figure__.m: Remove non-functional code. + * plot/__gnuplot_has_feature__.m: Remove non-functional code. + + * plot/quiver3.m: Add "clf" and "colormap(jet(64))" to demo. + + 2009-02-27 John W. Eaton + + * set/complement.m: Call unique, not create_set. + * set/unique.m: Style fix for docstring. + * deprecated/create_set.m: Move here from set/create_set.m. + Always return a row vector, as documented. + + * set/Makefile.in (SOURCES): Remove create_set.m from the list. + * deprecated/Makefile.in (SOURCES): Add create_set.m to the list. + + * general/num2str.m: Call strsplit instead of split. + + * strings/strsplit.m: Style fixes. + + 2009-02-27 Jaroslav Hajek + + * strings/strsplit.m: Check also nargin. + + 2009-02-26 John W. Eaton + + * deprecated/split.m: Add warning, not about version. + + 2009-02-26 Jaroslav Hajek + + * strings/strsplit.m: New function. + * strings/split.m: Move to deprecated/. + * strings/Makefile.in: Update. + * deprecated/Makefile.in: Update. + + * general/int2str.m: Use strsplit instead of split. + * general/num2str.m: Ditto. + * help/__makeinfo__.m: Ditto. + * help/lookfor.m: Ditto. + * miscellaneous/compare_versions.m: Ditto. + * miscellaneous/tar.m: Ditto. + * miscellaneous/unpack.m: Ditto. + * miscellaneous/what.m: Ditto. + * miscellaneous/zip.m: Ditto. + * pkg/pkg.m: Ditto. + * strings/strtok.m: Ditto. + * testfun/rundemos.m: Ditto. + + 2009-02-25 John W. Eaton + + * Makefile.in (distclean maintainer-clean): Remove tags and TAGS + in distclean target. + + 2009-02-25 Jaroslav Hajek + + * help/lookfor.m: Vectorize the path splitting using mat2cell. + Extract new path elements using setdiff. + + 2009-02-25 John W. Eaton + + * plot/pie.m: Use numel to check sizes of X and LABELS instead of + using size_equal. From Andy Buckle . + + * help/lookfor.m: Split original path into cell array and compare + elements with strcmp. Suppress warnings and errors when getting + help text from function files. + + 2009-02-24 John W. Eaton + + * help/gen_doc_cache.m: Don't compress output file. By default, + write to DOC, not DOC.gz. Don't save empty cache. + + * help/lookfor.m: Use doc_cache_file to get location of DOC file. + + 2009-02-24 Jason Riedy + + * pkg/pkg.m (generate_lookfor_cache): Generate a DOC file for each + directory. + + * help/gen_doc_cache.m: Call __makeinfo__, not makeinfo. + + 2009-02-24 Jaroslav Hajek + + * optimization/fsolve.m: Update niter after each iteration, not just + a succesful one. + + 2009-02-08 Thorsten Meyer + + * configure.in: AC_SUBST ac_config_files + + * Makefile.in: Add make targets for configuration files + and config.status. + + 2009-02-23 John W. Eaton + + * plot/fplot.m: Fix nargin check. + From Joel Parker . + + 2009-02-20 Steffen Groot + + * plot/__patch__.m: Correct indexing of varargin. + + 2009-02-20 Jaroslav Hajek + + * linear-algebra/dmult.m: Remove. + * linear-algebra/Makefile.in: Update. + * deprecated/dmult.m: Move here; revert to the 3.0.x version. + * deprecated/Makefile.in: Update. + * statistics/models/logistic_regression_derivatives.m: Replace dmult + by diagonal matrices. + + 2009-02-19 Ben Abbott + + * plot/gnuplot_drawnow.m: Only send figure position info to gnuplot + when the plot stream is first opened. Revert usage of hidden axes + to store prior figure "position" property. + + 2009-02-19 John W. Eaton + + * general/__isequal__.m, general/__splinen__.m, image/__img__.m, + image/__img_via_file__.m, miscellaneous/__xzip__.m, + optimization/__all_opts__.m, optimization/__dogleg__.m, + optimization/__fdjac__.m, path/__extractpath__.m, + plot/__add_datasource__.m, plot/__area__.m, + plot/__axes_limits__.m, plot/__axis_label__.m, plot/__bar__.m, + plot/__bars__.m, plot/__clabel__.m, plot/__contour__.m, + plot/__default_plot_options__.m, plot/__errcomm__.m, + plot/__errplot__.m, plot/__ezplot__.m, + plot/__gnuplot_has_feature__.m, plot/__gnuplot_version__.m, + plot/__go_close_all__.m, plot/__go_draw_axes__.m, + plot/__go_draw_figure__.m, plot/__line__.m, + plot/__next_line_color__.m, plot/__patch__.m, plot/__plr1__.m, + plot/__plr2__.m, plot/__plt1__.m, plot/__plt2__.m, + plot/__plt2mm__.m, plot/__plt2mv__.m, plot/__plt2ss__.m, + plot/__plt2sv__.m, plot/__plt2vm__.m, plot/__plt2vs__.m, + plot/__plt2vv__.m, plot/__plt__.m, plot/__plt_get_axis_arg__.m, + plot/__pltopt1__.m, plot/__pltopt__.m, plot/__quiver__.m, + plot/__scatter__.m, plot/__stem__.m, startup/__finish__.m, + statistics/base/__quantile__.m: Consistent doc strings for + internal fucntions. + + 2009-02-18 Ben Abbott + + * plot/subplot.m: Fix unintended deletion of axes. + + 2009-02-18 Frederick Umminger + + * audio/wavread.m: Improve search for data chunks. + + 2009-02-18 Ivan Sutoris + + * miscellaneous/edit.m: Expand documentation about editor mode. + + 2009-02-18 John W. Eaton + + * plot/__gnuplot_version__.m: Don't use regexp to extract version + number. + + 2009-02-18 John W. Eaton + + * plot/gnuplot_drawnow.m (gnuplot_set_term): + Adjust nargin checks for new signature. + + 2009-02-17 Ben Abbott + + * plot/contourc.m: Convert demo to test. + * plot/surfnorm.m: Add another demo. + * plot/surfnorm.m, plot/pareto.m: Add "colormap(jet)" to 1st demo. + * plot/plotyy.m, plot/patch.m, plot/pareto.m, plot/legend.m, + plot/fill.m, plot/comet.m, plot/colorbar.m, plot/clabel.m: + Replace "close all" with "clf" in demo. + + 2009-02-17 Ben Abbott + + * plot/gnuplot_drawnow.m: Only close the gnuplot window and send + position/size info when the figure's position property has changed. + (gnuplot_set_term): New arg, NEW_STREAM. Change all uses. + (open_gnuplot_stream): Delete unused output ENHANCED. + + 2009-02-17 John W. Eaton + + * plot/plotyy.m: Handle case of existing figure with no axes. + + 2009-02-16 John W. Eaton + + * help/__makeinfo__.m: Rename from help/makeinfo.m. Delete tmp file. + * help/Makefile.in (SOURCES): Add __makeinfo__.m, delete makeinfo.m. + * help/get_first_help_sentence.m, help/help.m, help/lookfor.m, + help/print_usage.m: Call __makeinfo__ instead of makeinfo. + * help/__strip_html_tags__.m, help/__additional_help_message__.m: + Doc fix. + + 2009-02-16 Ben Abbott + + * plot/shading.m: No new figure windows for the demos. + * plot/surfl.m: Clear figure before running demos. + + 2009-02-16 Jaroslav Hajek + + * linear-algebra/expm.m: Fix invalid unscaling. + * help/which.m: Do not add "function" here. + * optimization/fsolve.m: Update comments. + + 2009-02-16 John W. Eaton + + * help/help.m: Shorten default help text. + + 2009-02-15 John W. Eaton + + * help/doc.m, help/help.m, help/lookfor.m, help/type.m, + help/which.m, image/colormap.m, miscellaneous/delete.m, + miscellaneous/dir.m, miscellaneous/edit.m, + miscellaneous/intwarning.m, miscellaneous/ls.m, + miscellaneous/mex.m, miscellaneous/mkoctfile.m, + miscellaneous/run.m, miscellaneous/what.m, path/savepath.m, + pkg/pkg.m, plot/axis.m, plot/box.m, plot/caxis.m, plot/cla.m, + plot/close.m, plot/colorbar.m, plot/grid.m, plot/hidden.m, + plot/hold.m, plot/legend.m, plot/orient.m, plot/print.m, + plot/shading.m, plot/title.m, plot/xlabel.m, plot/ylabel.m, + plot/zlabel.m, testfun/demo.m, testfun/example.m, testfun/fail.m, + testfun/rundemos.m, testfun/test.m: + Delete "PKG_ADD: mark_as_command" directive. + + * edit.m: Avoid command-style function call syntax when + assigning results in tests. + + * deprecated/mark_as_rawcommand.m, deprecated/unmark_rawcommand.m, + deprecated/israwcommand.m, deprecated/mark_as_command.m, + deprecated/unmark_command.m, deprecated/iscommand.m: + New functions. + * deprecated/Makefile.in (SOURCES): Add them to the list. + + 2009-02-15 Ben Abbott + + * plot/subplot.m: Compatible placement of subplots. + + 2009-02-13 Ben Abbott + + * plot/__go_draw_axes__.m: Respect axes ticklength property. + + 2009-02-12 John W. Eaton + + * general/sortrows.m: Call __sort_rows_idx__, not __sortrows_idx__. + + 2009-02-12 Soren Hauberg + + * help/gen_doc_cache.m: Change API so we only handle one directory per + call to this function. + + 2009-02-12 Soren Hauberg + + * help/lookfor.m: Adapt to new cache scheme. + + 2009-02-11 Jaroslav Hajek + + * general/sortrows.m: Employ __sortrows_idx__ when applicable, + gripe for sparse matrices. + + 2009-02-11 John W. Eaton + + * miscellaneous/news.m: Look in octetcdir for NEWS file. + + 2009-02-09 Jaroslav Hajek + + * general/interp2.m: Added support for pchip bicubic interpolation. + Also simplified code and added support for natural extrapolation via + "extrap". + + 2009-02-09 John W. Eaton + + * miscellaneous/Makefile.in (SOURCES): Include __xzip__.m in the list. + + * testfun/rundemos.m: Error if fopen fails. + + 2009-02-08 John W. Eaton + + * Makefile.in (install install-strip): Don't install ls-R file. + (uninstall): Don't uninstall ls-R file. + + 2009-02-06 Jaroslav Hajek + + * optimization/fsolve.m: Document support for complex holomorphic + systems. Improve guarded evaluation. + + 2009-02-05 John W. Eaton + + * miscellaneous/news.m: Use puts instead of printf. + + 2009-02-05 Thomas D. Dean + + * polynomial/polyout.m: Replace com2str with num2str, and minor + style changes. + + 2009-02-04 John W. Eaton + + * help/which.m: Still print something sensible if type is empty. + + 2009-02-04 Soren Hauberg + Thomas Treichl + + * miscellaneous/Makefile.in (SOURCES): Add bzip2.m to the list. + + 2009-02-04 Frederick Umminger + + * signal/freqz.m: Ensure causal phase response. + Handle long input correctly. + + 2009-02-04 Petr Mikulik + + * plot/__go_draw_axes__.m: Pass "interpolate 0, 0" to gnuplot + instead of "interpolate 4, 4". + + 2009-02-04 John W. Eaton + + * audio/wavwrite.m, deprecated/splu.m, general/bitcmp.m, + general/fliplr.m, general/flipud.m, general/genvarname.m, + general/nargchk.m, general/nargoutchk.m, general/quadgk.m, + general/rot90.m, geometry/griddata.m, geometry/rectint.m, + geometry/voronoi.m, geometry/voronoin.m, + help/__strip_html_tags__.m, image/brighten.m, image/imfinfo.m, + image/imread.m, linear-algebra/cond.m, linear-algebra/condest.m, + linear-algebra/dmult.m, linear-algebra/dot.m, + linear-algebra/expm.m, linear-algebra/housh.m, + linear-algebra/onenormest.m, linear-algebra/subspace.m, + miscellaneous/compare_versions.m, optimization/__all_opts__.m, + optimization/optimget.m, pkg/pkg.m, plot/__bar__.m, + plot/__plr2__.m, plot/ribbon.m, plot/slice.m, polynomial/pchip.m, + polynomial/roots.m, set/unique.m, signal/fractdiff.m, + signal/hurst.m, specfun/beta.m, specfun/legendre.m, + statistics/base/__quantile__.m, statistics/base/quantile.m, + statistics/tests/cor_test.m, + statistics/tests/kolmogorov_smirnov_test_2.m, strings/base2dec.m, + strings/dec2base.m, strings/strcat.m, strings/validatestring.m, + time/addtodate.m: Style fixes. + + 2009-02-04 Jaroslav Hajek + + * optimization/fsolve.m: remove redundant line. + + 2009-02-03 Jaroslav Hajek + + * optimization/Makefile.in: Add missing source. + + 2009-02-02 Rob Mahurin + + * general/interpft.m: Increase tolerance in tests, for FFTPACK. + + 2009-02-03 Jaroslav Hajek + + * optimization/__all_opts__.m: Yield empty list in recursive calls. + mlock to avoid unloading. + + 2009-01-30 John W. Eaton + + * optimization/PKG_ADD: Delete. + * optimization/fsolve.m, optimization/fzero.m, + optimization/lsqnonneg.m: Use PKG_ADD: comment to call __all_opts__. + + 2009-01-30 Jaroslav Hajek + + * optimization/__all_opts__.m: New source. + * optimization/optimset.m: Implement checking for registered options. + * optimization/optimget.m: Ditto. + * optimization/fsolve.m: Fix misspelled option. + * optimization/PKG_ADD: New startup file. + + 2009-01-30 Kai Habel + + * plot/__go_draw_axes__.m: Add support for transparent surfaces. + * plot/__gnuplot_has_feature__.m: Add feature 'transparent_surface', + Require gnuplot 4.3 for transparent patches and surfaces. + + 2009-01-30 Benjamin Lindner + + * time/datestr.m: Convert YYYY to %Y instead of %C%y. + Convert [Dd][Dd] to %d instead of %e. + + 2009-01-30 Ben Abbott + + * plot/print.m: Use __gnuplot_has_feature__ instead of + compare_versions. + + * plot/gnuplot_drawnow.m: Respect x11 figure position property. + + 2009-01-29 John W. Eaton + + * miscellaneous/fileparts.m: Match all possible file separators. + + 2009-01-29 Kai Habel + + * plot/__go_draw_axes__.m: Add support for transparent patches. + + 2009-01-29 Sᅵren Hauberg + + * help/help.m, help/print_usage.m, help/get_first_help_sentence.m: + print sensible error message when function is found but not documented. + + * help/help.m: Allow displaying 'Contents.m' files. + + 2009-01-29 Kai Habel + + * plot/Makefile.in (SOURCES): Include diffuse.m, specular.m, and + surfl.m in the list. + + 2009-01-28 Ben Abbott + + * plot/gnuplot_drawnow.m: Style fixes. + + * plot/__gnuplot_has_feature__.m: New file, checks for supported + feature. + + 2009-01-28 Jaroslav Hajek + + * optimization/fsolve.m: Don't use pivoting at all (for the time + being). + + 2009-01-28 Jaroslav Hajek + + * optimization/fsolve.m: Use more adaptive rescaling. + Put back the default tolerances based on machine eps respecting + the used precision. Partially reflect this in the default optimset + values. + + 2009-01-28 Jaroslav Hajek + + * miscellaneous/ordefields.m: Use indexed assignment instead of a + loop. Fix for multidimensional cases. + + 2009-01-27 John W. Eaton + + * general/arrayfun.m, image/imwrite.m, plot/axis.m, plot/clf.m, + plot/ribbon.m, plot/gnuplot_drawnow.m, plot/cla.m, set/unique.m: + Use endif or endfor instead of "end". + + * path/savepath.m: Call command_line_path instead of commandlinepath. + + 2009-01-27 Jason Riedy + + * miscellaneous/orderfields.m: Really fix the indexing for struct + arrays. + + 2009-01-27 Carlo de Falco + + * polynomial/spline.m: Doc fix. + + 2009-01-27 Sᅵren Hauberg + + * general/gradient.m: Handle computing the gradient of a function + handle. + + 2009-01-27 Jaroslav Hajek + + * optimization/lsqnonneg.m: Reimplement using QR updating for + square and overdetermined systems. + + 2009-01-27 Jaroslav Hajek + + * optimization/fsolve.m: Provide default values on request. + Adjust some defaults. + * optimization/fzero.m: Ditto. + * optimization/optimset.m: Query optimal values via the M*b way. + + 2009-01-26 Jason Riedy + + * miscellaneous/orderfields.m: Also avoid loop for non-empty structs. + + 2009-01-17 Jaroslav Hajek + + * optimization/fsolve.m: Disable Broyden updates for sparse jacobians. + + 2009-01-17 Jaroslav Hajek + + * optimization/__fsolve_defopts__.m: Remove. + * optimization/Makefile.in: Reflect change. + + 2009-01-17 Jaroslav Hajek + + * optimization/__fdjac__.m: Fix setting up h. + * optimization/fsolve.m: Allow underdetermined systems. Use QR for + large enough square and overdetermined systems, with pivoting in the + first step. Simplify options. Adjust defaults - make TR radius + tolerance less stringent. Support DisplayFcn. + + 2008-12-24 Ben Abbott + + * path/savepath.m: Respect cmd-line and env paths. + + 2009-01-24 Ben Abbott + + * sparse/svds.m: svds.m: skip tests if ARPACK is missing. + + 2009-01-23 Sᅵren Hauberg + + * help/type.m: Make 'type X' work, when X is the name of a variable. + + 2009-01-22 John W. Eaton + + * help/which.m: New function. + * help/Makefile.in (SOURCES): Add it to the list. + + * help/help.m: Also display location of the file before the help text. + * help/print_usage: Also display additional help text. + * help/__additional_help_message__.m: Return message instead of + displaying it. + + 2009-01-22 Sᅵren Hauberg + + * help: New directory. + * configure.in (AC_CONFIG_FILES): Add help/Makefile to the list. + * Makefile.in (SUBDIRS): Add it to the list. + * help/__additional_help_message__.m, help/__strip_html_tags__.m, + help/gen_doc_cache.m, help/get_first_help_sentence.m, help/help.m, + help/lookfor.m, help/makeinfo.m, help/print_usage.m, help/type.m: + New functions. + * help/Makefile.in (SOURCES): Add them to the list. + * help/doc.m: Move here from miscellaneous/doc.m. + * miscellaneous/Makefile.in (SOURCES): Remove doc.m from the list. + * miscellaneous/pkg.m: Generate documentation cache during install. + + 2009-01-22 Jaroslav Hajek + + * optimization/fsolve.m: Undo the last change. + + 2009-01-18 Thorsten Meyer + + * miscellaneous/doc.m: Add test for existence of info file. + + 2009-01-21 John W. Eaton + + * plot/__axis_label__.m: Set properties in existing axis label + object instead of creating a new text object. + * plot/ylabel.m: Don't set rotation property here. + * plot/title.m: Don't set horizontalalignment property here. + + * plot/ylabel.m: Insert rotation property in varargin before + passing it on to __axis_label__. + * plot/__axis_label__.m: Don't set rotation for ylabel here. + + * plot/title.m: Insert horizontalalignment property in varargin + before passing it on to __axis_label__. + + 2009-01-21 Jaroslav Hajek + + * strings/strchr.m: New function. + * strings/Makefile.in: Add it. + + 2009-01-20 Jaroslav Hajek + + * optimization/fsolve.m: Only use qrupdate if available. + + 2009-01-20 John W. Eaton + + * general/postpad.m: Doc fix. + * general/prepad.m: Doc fix. + * image/pink.m: Spelling fix. + * image/hsv.m: Doc fix. + From Francesco Potorti` . + + * testfun/assert.m: Use isfield instead of struct_contains. + + 2009-01-17 Ben Abbott + + * general/cart2sph.m, cart2pol.m, sph2cart.m pol2cart.m: + Permit scalars when transforming coordinates. + + 2009-01-17 Steven Verstoep + + * plot/__quiver__.m: __quiver__.m: Fix auto-size of (x,y) coord. + + 2009-01-16 Daniel J Sebald + + * plot/gnuplot_drawnow.m: Fix for handling options. + + 2009-01-16 Daniel J Sebald + + * plot/legend.m: Fix legend order for both horizontal and + vertical string cell. + + 2008-01-15 Ben Abbott + + * plot/grid.m: Document handle argument. + + 2009-01-15 Peter L. Sᅵndergaard + + * general/nargoutchk.m: Doc fix. + * general/nargchk.m: Improve compatibility. New tests. + + 2008-01-15 Rafael Laboissiere + + * gethelp.cc: Include . + + 2009-01-14 Ben Abbott + + * plot/__go_draw_axes__.m (ticklabel_to_cell): New function. + Use it to handle non-cell ticklabels. + + 2009-01-14 Sᅵren Hauberg + + * general/diff.m, general/logspace.m, general/nextpow2.m, + linear-algebra/commutation_matrix.m, + linear-algebra/duplication_matrix.m, linear-algebra/expm.m, + miscellaneous/bincoeff.m, miscellaneous/list_primes.m, + optimization/fsolve.m, plot/subplot.m, polynomial/pchip.m, + polynomial/polyout.m, polynomial/residue.m, polynomial/spline.m, + signal/freqz.m, signal/sinc.m, specfun/beta.m, specfun/betaln.m, + specfun/nchoosek.m, specfun/pow2.m, special-matrix/hankel.m, + special-matrix/hilb.m, special-matrix/invhilb.m + special-matrix/sylvester_matrix.m, special-matrix/toeplitz.m, + special-matrix/vander.m, statistics/base/gls.m, + statistics/base/kendall.m, statistics/base/kurtosis.m, + statistics/base/mean.m, statistics/base/median.m, + statistics/base/ols.m, statistics/base/skewness.m, + statistics/distributions/kolmogorov_smirnov_cdf.m: + Use ifnottex instead of ifinfo. + + 2009-01-14 John W. Eaton + + * linear-algebra/expm.m: + + * optimization/fsolve.m: Doc fix. + + * plot/__go_draw_axes__.m: Scale markersize by 1/3, not 1/6. + + * io/dlmwrite.m: Use '%c' format for character data. + + 2009-01-13 John W. Eaton + + * general/repmat.m: Handle negative row or column dimension. + + * elfun/lcm.m, general/accumarray.m, general/bicubic.m, + general/cellidx.m, general/cplxpair.m, general/dblquad.m, + general/gradient.m, general/interp1.m , general/pol2cart.m, + general/quadgk.m, general/quadv.m, general/repmat.m, + general/structfun.m, geometry/griddata.m, geometry/inpolygon.m, + image/brighten.m, image/hsv2rgb.m, image/imread.m, + image/imwrite.m, linear-algebra/dmult.m, + linear-algebra/onenormest.m, miscellaneous/getfield.m, + miscellaneous/setfield.m, miscellaneous/what.m, + optimization/fsolve.m, optimization/fzero.m, + optimization/lsqnonneg.m, optimization/qp.m, pkg/pkg.m, + plot/__area__.m, plot/__clabel__.m, plot/__stem__.m, plot/axis.m, + plot/colorbar.m, plot/contour3.m, plot/findall.m, plot/findobj.m, + plot/fplot.m, plot/grid.m, plot/hist.m, polynomial/convn.m, + polynomial/polyreduce.m, set/intersect.m, set/setxor.m, + set/union.m, signal/arch_fit.m, signal/durbinlevinson.m, + signal/fftshift.m, signal/freqz_plot.m, signal/ifftshift.m, + signal/spectral_adf.m, sparse/bicgstab.m, sparse/cgs.m, + sparse/gplot.m, sparse/normest.m, sparse/pcg.m, sparse/pcr.m, + sparse/spy.m, sparse/svds.m, sparse/treelayout.m, + sparse/treeplot.m, specfun/primes.m, special-matrix/hadamard.m, + statistics/base/center.m, statistics/base/quantile.m, + statistics/base/ranks.m, statistics/base/std.m, + statistics/distributions/hygepdf.m, + statistics/tests/kruskal_wallis_test.m, strings/index.m, + strings/mat2str.m, strings/str2double.m, strings/strrep.m, + testfun/assert.m, testfun/example.m, testfun/fail.m, + testfun/speed.m, testfun/test.m: Style fixes. + + * audio/wavread.m, general/__splinen__.m, general/bicubic.m, + general/rat.m, linear-algebra/expm.m, linear-algebra/krylov.m, + linear-algebra/onenormest.m, miscellaneous/edit.m, + optimization/__dogleg__.m, pkg/pkg.m, plot/__errplot__.m, + plot/__go_draw_axes__.m, plot/__stem__.m, plot/findobj.m, + set/ismember.m, signal/arma_rnd.m, signal/freqz.m, signal/stft.m, + sparse/pcg.m, sparse/sprandsym.m, sparse/treelayout.m, + specfun/factor.m, specfun/nchoosek.m, specfun/primes.m, + statistics/base/quantile.m, statistics/base/values.m, + strings/findstr.m, strings/str2double.m, strings/strrep.m, + testfun/assert.m, testfun/fail.m, testfun/speed.m, testfun/test.m, + time/datestr.m, time/datevec.m: Comment style fixes. + + 2009-01-13 Daniel J Sebald + + * set/unique.m: Fix for vertical array inputs. + + 2009-01-12 John W. Eaton + + * optimization/fzero.m, optimization/fsolve.m: Style fixes. + Use strcmpi to compare options. + + 2009-01-12 Thorsten Meyer + + * strings/strvcat.m: Remove. + * strings/Makefile.in (SOURCES): Remove strvcat.m. + + 2009-01-12 John W. Eaton + + * plot/diffuse.m, plot/surfl.m, plot/specular.m: Style fixes. + + 2009-01-11 Jaroslav Hajek + + * general/sortrows.m: Fix invalid `{x:y} = z' assignment. + * miscellaneous/orderfields.m: Ditto. + * miscellaneous/what.m: Ditto. + * pkg/pkg.m: Ditto. + * plot/ndgrid.m: Ditto. + * strings/strcat.m: Ditto. + + 2009-01-09 Kai Habel + + * plot/surfl.m: New function + * plot/diffuse.m: Ditto. + * plot/specular.m: Ditto. + + 2009-01-05 John W. Eaton + + * mkdoc: Set defaults for FIND and PERL. Check usage. + + 2009-01-01 Thorsten Meyer + + * miscellaneous/__xzip__.m: Fix error messages, add tests. + + 2008-12-26 Thorsten Meyer + + * general/int2str.m, general/num2str.m, strings/base2dec.m, + strings/blanks.m, strings/cstrcat.m, strings/findstr.m, + strings/isstrprop.m, strings/mat2str.m, strings/regexptranslate.m, + strings/split.m, strings/str2double.m, strings/str2num.m, + strings/strcat.m, strings/strcmpi.m, strings/strfind.m, + strings/strjust.m, strings/strmatch.m, strings/strncmpi.m, + strings/strrep.m, strings/strtok.m, strings/strtrim.m, + strings/strtrunc.m, strings/strvcat.m, strings/substr.m: + Fix documentation strings, add examples, references and tests. + * general/int2str.m: Add missing semicolon. + * strings/regexptranslate.m: add nargin check. + * strings/str2double.m: fix nargin check. + + 2008-12-29 David Bateman + + * goemetry/voronoi.m: Speed up and handle dense grids. + + 2008-12-28 Jaroslav Hajek + + * miscellaneous/delete.m: Allow filename globs. Display warnings if + operation fails. + + 2008-12-26 Francesco Potortì + + * general/prepad.m: Add reference to postpad. + + * miscellaneous/bincoeff.m: Make reference to nchoosek. + + * general/postpad.m: Use @seealso. Add reference to resize. + + * statistics/base/statistics.m: Correct help string. + + * plot/hist.m: Doc string now mentions matrix input argument. + Correct error message. + + 2008-12-30 Ben Abbott + + * plot/__contour__.m: __contour__.m: correct order of patches + + 2008-12-30 Ben Abbott + + * plot/__contour__.m: __contour__.m: correct order of patches + + 2008-12-24 Doug Stewart + + * plot/grid.m: Handle "minor" option. + + 2008-12-24 John W. Eaton + + * testfun/test.m: Print "has no tests" message if there are demos + but no tests instead of printing PASSES 0 out of 0 tests. + + 2008-12-23 David Bateman + + * sparse/svds.m: New function. + * sparse/Makefile.in (SOURCES): Add it here. + + 2008-11-21 Radek Salac + + * sparse/bicgstab.m: New function. + * sparse/Makefile.in (SOURCES): Add it here. + + 2008-12-18 Daniel J Sebald + + * time/datevec.m (__date_vfmt2sfmt__): New helper function. + (datevec): Avoid repeated parsing of the format string. + * set/unique.m: Only check for options if nargin > 1. + + 2008-12-15 Jaroslav Hajek + + * optimization/lsqnonneg.m: Preprocess using QR for over-determined + systems. Simplify & fix indexing. Use left division for step problem. + Fix output args. + + 2008-12-13 Francesco Potortᅵ + + * specfun/nchoosek.m: Check for input arguments, signal loss of + precision, correctly handle k==0 and k==n cases, add proper tests. + + 2008-12-11 Jaroslav Hajek + + * optimization/fsolve.m: Optionally allow pivoted qr factorization. + + 2008-12-10 Jaroslav Hajek + + * linear-algebra/expm.m: New source. + + 2008-12-09 Jaroslav Hajek + + * specfun/nchoosek.m: Use a recursionless approach. + + 2008-12-09 Jaroslav Hajek + + * general/repmat.m: Optimize & simplify the scalar & 2d matrix case. + + 2008-12-07 Thorsten Meyer + + * strings/lower.m: Remove. + * strings/upper.m: Remove. + * strings/Makefile.in: Remove lower.m, upper.m. + + 2008-12-02 Thorsten Meyer + + * strings/str2mat.m: Make it a simple wrapper around + char() and move it to deprecated/str2mat.m, remove + obsolete tests, move remaining test to src/strfns.cc (Fchar). + * strings/Makefile.in: Remove str2mat.m. + * deprecated/Makefile.in: Add str2mat.m. + * strings/strvcat.m: Remove reference to str2mat. + + 2008-11-28 David Bateman + + * plot/__go_draw_axes__.m: Set two point clipping mode to be on. + + 2008-11-26 Francesco Potortì + + * specfun/nchoosek.m: Set max_recursion_depth and use a subfunction. + + 2008-11-29 Thorsten Meyer + + * miscellaneous/gzip.m: Remove @seealso reference to __xzip__, + improve tests. + * miscellaneous/bzip2.m: Remove @seealso reference to __xzip__, + fix handling of output argument, add test. + * miscellaneous/__xzip__.m: Improve error messages, fix cleanup + of temporary directories, remove tab characters + + 2008-11-24 Ben Abbott + + * plot/legend.m: Correct ording of legend labels. + + 2008-11-24 Ben Abbott + + * plot/__go_draw_axes__.m: Correct order for rendering children. + + 2008-11-21 Radek Salac + + * sparse/cgs.m, sparse/treelayout.m: New functions. + * sparse/Makefile.in (SOURCES): Add them here. + + 2008-11-14 David Bateman + + * plot/__go_draw_axes__.m (do_tics_1): Support the minorick properties + of the axis object. + + 2008-11-14 Ben Abbott + + * plot/gnuplot_drawnow.m: Add support of properites to gp backend. + + 2008-11-13 John W. Eaton + + * statistics/distributions/chi2rnd.m: Fix another missing semicolon. + From sven.mattisson@insatnet.nu. + + 2008-11-12 David Bateman + + * plot/__quiver__.m: Only autoscale if more than one element to + plot. Modify callbacks for change in order of children. + * plot/__stem__.m: Modify callbacks for change in order of children. + + 2008-11-10 John W. Eaton + + * polynomial/spline.m: Delete debugging statements. From + Sebastian Schᅵps . + + 2008-11-07 Thorsten Meyer + + * mkdoc: do not remove white space before @ within @example + environment + + 2008-11-05 Thorsten Meyer + + * plot/subplot.m: fix texi bug + + 2008-11-04 Thorsten Meyer + + * miscellaneous/unpack.m: return directly after recursive handling + of cell-strings + + 2008-11-03 Ben Abbott + + * plot/__go_draw_axes__.m: xticklabel should accept a numeric vector. + + 2008-09-28 Jaroslav Hajek + + * optimization/__fdjac__.m: New function file. + * optimization/__dogleg__.m: New function file. + * optimization/fsolve.m: New function file. + * optimization/Makefile.in: Include the new sources. + + 2008-09-28 Jaroslav Hajek + + * optimization/fzero.m: Replace tabs by spaces. + + 2008-09-28 Jaroslav Hajek + + * optimization/fzero.m: Simplify exception handling. + + 2008-10-31 Jaroslav Hajek + + * optimization/fzero.m: New function file. + * optimization/Makefile.in: Add it. + + 2008-10-31 Jaroslav Hajek + + * optimization/optimset.m: Don't include empty options in option + structure. + * optimization/optimget.m: New function file. + * optimization/Makefile.in: Add it. + * optimization/lsqnonneg.m: Query options using optimget. + + 2008-10-31 Jaroslav Hajek + + * linear-algebra/__norm__.m: Remove. + + 2008-10-25 Thorsten Meyer + + * miscellaneous/bzip2.m, miscellaneous/__xzip__.m: new commands. + * miscellaneous/gzip.m: change to use __xzip__ for actual compression, + add tests. + + 2008-10-31 David Bateman + + * plot/__contour__.m: Exclude infinite values when calculating contour + levels. + * plot/clabel.m: Close previous plots in demos to avoid pollution + between other plot demos. + * plot/plotyy.m: Ditto. + + 2008-10-30 David Bateman + + * plot/legend.m: Add support for the "left" and "right" options. + * plot/__go_draw_axes__.m: If the axes property keyreverse is set, + reverse the key and labelling text. + + * plot/__clabel__.m, plot/clabel.m: New functions. + * plot/Makefile.in (SOURCES): Add them here. + * plot/__contour__.m: Rewrite to use contour groups. + * plot/contourf.m: Call __contour__ instead of using specific code. + * plot/contour.m, plot/contour3.m: Minor modification to allow for + new interface to __contour__. + + 2008-10-29 Thorsten Meyer + + * set/create_set.m, set/ismember.m, set/union.m, set/complement.m: + Fix @seealso references to deprecated function intersection. + * polynomial/polyvalm.m, polynomial/polyout.m, + polynomial/polyint.m, polynomial/polygcd.m, + deprecated/polyinteg.m: Remove "and" from @seealso string. + * specfun/betaln.m: Change @seealso reference from deprecated + betai to betainc. + * plot/plot.m, plot/xlabel.m, plot/ylabel.m, plot/zlabel.m, + plot/plot3.m: Fix @seealso references to ylabel and zlabel. + * general/issymmetric.m, image/imagesc.m, specfun/realpow.m, + polynomial/polyfit.m, time/eomday.m: Remove @seealso references to + non-existent functions. + + 2008-10-29 John W. Eaton + + * plot/cla.m: In test, set visible off when creating figure. + + 2008-10-28 Gabriele Pannocchia + + * optimization/qp.m: Convert bounds of the form b <= x <= b and + constraints of the form b <= A*x <= b to equality constraints. + + 2008-10-27 Sᅵren Hauberg + + * plot/ellipsoid.m: Check nargin == 6, not nargin == 5. + + 2008-10-22 Ben Abbott + + * plot/cla.m: Fix error when no children to clear. + + * plot/findobj.m: Allow handle to be empty. + + 2008-10-22 John W. Eaton + + * plot/allchild.m: Move call to get showhiddenhandles outside of + unwind_protect block. + + 2008-10-22 David Bateman + + * plot/refreshdata.m: Modify demo so that "y" is evaluated in the + "caller" workspace. + + * plot/__errplot__.m: Add errorbar series objects. + * plot/errbar.m: Add some demos. + + * plot/__add_line_series__.m: Remove + * plot/Makefile.in (SOURCES): Remove it here too. + * plot/__add_datasource__.m: Allow for more than one character in + source name. + * plot/refreshdata.m: Ditto. + * plot/__plt2mm__.m, plot/__plt2mv__.m, plot/__plt2ss__.m, + plot/__plt2sv__.m, plot/__plt2vm__.m, plot/__plt2vv__.m, + plot/__plt2vs__.m, plot3.m: Remove previous line series changes. + * plot/__scatter__.m: Add scatter series objects and data sources. + * plot/legend.m: Update type in loop and remove debugging messages. + + 2008-10-21 Ben Abbott + + * specfun/legendre.m: Warn once on under/overflow. + + * plot/clf.m: Improve Matlab compatibility. + + 2008-10-21 John W. Eaton + + * plot/quiver3.m: Turn hold off after demo. + + * plot/newplot.m: Delete stray debugging code. + + * plot/gnuplot_drawnow.m: Pass handle to __go_draw_figure__, not + struct. Use get instead of examining struct fields directly. + * plot/__go_draw_figure__.m: First arg is now handle, not figure + object struct. Use get instead of examining struct elements + directly. Use allhild instead of looking at children field of + figure object struct. + + 2008-10-20 Ben Abbott + + * plot/orient.m: Fix syntax error. + + 2008-10-20 David Bateman + + * testfun/rundemos.m: Pause between files, as demo itself doesn't. + + * plot/fill.m, plot/quiver.m: Quiet the demos. + * plot/stair.m: Treat a line style argument correctly. + + 2008-10-20 John W. Eaton + + * plot/surfnorm.m: Save and restore hold state. + From Daniel J. Sebald and + Ben Abbott . + + 2008-10-20 Ben Abbott + + * plot/closereq.m: Respect property tag. + + * plot/__stem__.m: Respect new ordering of children when setting + baseline. + + * plot/orient.m, plot/print.m: Properly validate figure handle. + + * plot/hold.m, plot/comet.m: Properly validate axes handle. + + * plot/__go_draw_axes__.m: Fix for binary xfer of suface plots. + + 2008-10-20 David Bateman + + * plot/plotyy.m: Test that an axes handle actually is one before + setting it. + + 2008-10-17 David Bateman + + * plot/__plt_get_axis_arg__.m: Exclude non-numeric and root figure + from potential axis handles. + * plot/colorbar.m: Remove debug output. + * plot/comet.m: Close plot before demo + * plot/contourc.m: No output if nargout == 0. + + 2008-10-16 David Bateman + + * plot/subplot.m: Allow for column vector of children for figure. + + 2008-10-16 John W. Eaton + + * testfun/rundemos.m: New function. + + 2008-10-16 Ben Abbott + + * plot/contourf.m: Correct order of patch object handles. + + 2008-10-16 David Bateman + + * plot/colorbar.m (colorbar:resetaxis): Uncomment the reseting of + the axes. + + * plot/newplot.m: Don't preserve axes properties here, but rather + do it in the graphics handle code so that the preservation can be + done after callbacks are executed. + + * plot/__go_draw_axes__.m: If current plot is an image, don't flag + the plot as binary, as the binary specification is already in the + "usingclause". + + * plot/__go_draw_figure__.m: Always use multiplot and create an + enclosing axis to ensure bounding box of postscript is correct. + + 2008-10-16 Ben Abbott + + * plot/__go_draw_axes__.m (do_tics_1): New arg, interpreter. + (do_tics): Pass interpreter to do_tics_1. + + 2008-10-15 David Bateman + + * general/colon.m: Small typo. + * general/loadobj.m: Ditto. + + 2008-10-14 Ben Abbott + + * plot/__go_draw_axes__.m (do_tics_1): New args, fontname and fontsize. + Pass fontspec for tic marks to gnuplot. + (do_tics): Pass axes fontname and fontsize to do_tics_1. + + * plot/newplot.m: Perserve fontangle, fontname, fontsize, + fontunits, fontweight, position, outerposition, and + activepositionproperty axes properties when replacing plot. + + 2008-10-15 Daniel J. Sebald + + * plot/__go_draw_axes__.m: Make previous change work for surface + plots. + + 2008-10-14 Daniel J. Sebald + + * plot/__go_draw_axes__.m: Send binary data to gnuplot. + + 2008-10-13 Ben Abbott + + * plot/__go_draw_axes__.m: Fix concatenation of handles. + + 2008-10-12 David Bateman + + * general/colon..m: New function. + * general/Makefile.in (SOURCES): Add it here. + + 2008-10-10 David Bateman + + * image/__img__.m: Manually set the limits of th eimage + * plot/__go_draw_axes__.m: Base window position in the axis + position property and not the outerposition property. Remove + colorbar code based on the gnuplot colorbox. Allow images to be a + vector to support image based colorbars. Also check labelmode for + manual tics. + * plot/__go_draw_figure__.m: Remove gnuplot colorbox based + colorbar code. + * plot/colorbar.m: Rewrite to use an image and callbacks to link + it to the principal axis. + * plot/legend.m: Support an axis handle as the first + argument. Support hggroups. + * plot/pareto.m: Don't support an axis handle as the first + argument as the plotyy command in fact needs two axis handles. + * plot/plotyy.m: Rewrite to use listeners and callbacks to + synchronize the two axes. + * plot/subplot.m: Also skip axes that are tagged as being a + colorbar. Don't break in search of overlapping axes to delete. Set + both the position and the outerposition. + + 2008-10-09 Ben Abbott + + * plot/__axis_label__.m: Inherit font properties from axes. + + 2008-10-09 David Bateman + + * general/loadobj.m, general/saveobj.m, general/display: New functions + * general/Makefile.in (SOURCES): Add then here. + + 2008-10-08 John W. Eaton + + * miscellaneous/fileparts.m: Handle "/file" properly. + Improve compatibility. + + 2008-10-07 Ben Abbott + + * plot/cla.m: New function. + * plot/Makefile.in (SOURCES): Add it to the list. + + 2008-10-07 John W. Eaton + + * miscellaneous/delete.m: Pass array of handles to __go_delete__. + + 2008-10-06 John W. Eaton + + * plot/__add_datasource__.m, plot/__axes_limits__.m, + plot/__bar__.m, plot/__bars__.m, plot/__contour__.m, + plot/__go_draw_axes__.m, plot/__go_draw_figure__.m, + plot/__patch__.m, plot/__quiver__.m, plot/__scatter__.m, + plot/__stem__.m, plot/ancestor.m, plot/axis.m, plot/box.m, + plot/caxis.m, plot/close.m, plot/colorbar.m, plot/fill.m, + plot/findobj.m, plot/grid.m, plot/hidden.m, plot/hold.m, + plot/ishold.m, plot/legend.m, plot/linkprop.m, plot/orient.m, + plot/plotmatrix.m, plot/shading.m: Use case-insensitive comparison + for properties. Misc style fixes. + + 2008-10-06 Ben Abbott + + * plot/orient.m: Figure handle must be scalar. + * plot/hold.m: Axis handle must be scalar. + * plot/axes.m: Axis handle must be scalar. + * plot/__plt_get_axis_arg__.m: Handle must be scalar. + + * miscellaneous/delete.m: Permit a vector of handles to be deleted. + + 2008-10-02 John W. Eaton + + * pkg/pkg.m (configure_make): Handle filenames with spaces. + + 2008-10-02 Benjamin Lindner + + * pkg.m (configure_make): Enclose building directory in quotes. + + 2008-10-02 Ben Abbott + + * plot/__go_draw_axes__.m: Remove depdenence on gnuplot version. + + 2008-09-30 Jaroslav Hajek + + * string/split.m: New tests. + + 2008-09-30 Ben Abbott + + * plot/__go_draw_axes__.m: Fix interpolation of facecolors. + + * plot/shading.m: New demo. + + 2008-09-29 John W. Eaton + + * plot/__go_draw_axes__.m: Eliminate have_newer_gnuplot variable. + + * plot/__gnuplot_version__.m: Also include patchlevel. + + 2008-09-29 Ben Abbott + + * polynomial/deconv.m: Fix row/col orientation & length of output. + + * polynomial/conv.m: Correct row/col orientation of output. + + 2008-09-27 Ivan Sutoris + + * optimization/sqp.m: Document additional parameters. + + 2008-09-26 David Bateman + + * general/subsindex.m: Dummy subsindex function for help string + and to throw error for use outside of a class + * general/Makefile.in (SOURCES): Include it here. + + 2008-09-26 John W. Eaton + + * image/imfinfo.m: Delete temporary file. + + 2008-09-25 Sᅵren Hauberg + + * image/imread.m, image/imwrite.m: Doc fix. + + 2008-09-24 John W. Eaton + + * plot/fplot.m: Call axis after calling plot. + + 2008-09-24 Sᅵren Hauberg + + * image/imfinfo.m: New function. + * image/Makefile.in (SOURCES): Add it to the list. + + 2008-09-24 Ben Abbott + + * strings/strcat.m: Improve Matlab compatibility for non-character + data. + + 2008-09-24 John W. Eaton + + * general/interpft.m: Increase tolerance in tests. + + 2008-09-23 Francesco Potorti` + + * plot/pcolor.m: Improve doc string. + + 2008-09-22 Ben Abbott + + * plot/comet.m: New file. + * plot/Makefile.in (SOURCES): Add it here. + + 2008-09-22 David Bateman + + * plot/plotmatrix.m: New function. + * plot/Makefile.in (SOURCES): Add it here. + + * general/quadgk.m: No function count in quadgk and so don't try and + print it when given trace argument. + + 2008-09-18 Jaroslav Hajek + + * general/blkdiag.m: Skip assignment if rhs is empty. + + 2008-09-18 Kris Thielemans + + * image/imshow.m: Fix for display_range. + + * general/interpn.m: Fixe for extrapval and documentation of + extrapval. + + 2008-09-17 David Bateman + + * time/datetick.m: New function. + * time/Makefile.in (SOURCES): Add it here. + * time/datestr.m: More careful check for datevec format with 6 + column arguments. + * plot/__go_draw_axes__ (do_tics_1): Use %.15g format rather than + %g format. Also use manual mode if xlabelmode is manual. + + * general/cell2mat.m: Backout previous change. Special case 2D + case for speed. + + 2008-09-11 David Bateman + + * general/cell2mat.m: Improve the speed. + + 2008-09-09 John W. Eaton + + * time/datestr.m: Convert format and use strftime to do most of + the actual conversion. + + 2008-09-08 Tatsuro MATSUOKA + + * plot/plot.m: Doc fix. + + 2008-09-08 Mark van Rossum + + * statistics/distributions/binornd.m: Handle zero values of n + correctly. + + 2008-09-08 Kai Habel + + * plot/contourf.m: Fix case for equal-sized matrices + of X and Y. + + 2008-09-02 David Bateman + + * plot/__add_datasource__.m: Fix indexing of varargin. + + * plot/__line__.m: Remove empty clause fof if/then/else test + * plot/plot3.m: Correctly plot matrices. + + 2008-08-31 Michael Goffioul + + * plot/__plt2mm__.m, plot/__plt2mv__.m, plot/__plt2ss__.m, + plot/__plt2sv__.m, plot/__plt2vm__.m, plot/__plt2vs__.m, + plot/__plt2vv__.m: Do not call "set" with empty arguments. + + 2008-08-29 David Bateman + + * plot/__plt2mm__.m, plot/__plt2mv__.m, plot/__plt2ss__.m, + plot/__plt2sv__.m, plot/__plt2vm__.m, plot/__plt2vs__.m, + plot/__plt2vv__.m, plot/plot3.m, plot/__area__.m, plot/__bars__.m, + plot/__quiver__.m, plot/__stem__.m, plot/stairs.m : + Pass additional prop/val pairs to hggroup rather than underlying + objects. If a baseline existings specifically associate it with + the parent of the created hggroup to allow things like "stem(..., + 'parent', hg)" to work correctly. + * plot/hold.m: If currentaxes if figure doesn't exist, create it. + + * plot/plot3.m: Pass hline to __add_line_series__. + * plot/__add_datasource__.m: Fix off by one error. + + 2008-08-28 David Bateman + + * plot/__add_line_series__.m, plot/ishghandle.m, plot/linkprop.m, + plot/refresh.m, plot/refreshdata.m: New functions + * Makefile.in (SOURCES): Add them here. + + * plot/__area__.m, plot/__bars__.m, plot/__quiver__.m, + plot/__stem__.m, plot/stairs.m, plot/stem.m: Add data sources. + + * plot/__plt2mm__.m, plot/__plt2mv__.m, plot/__plt2ss__.m, + plot/__plt2sv__.m, plot/__plt2vm__.m, plot/__plt2vs__.m, + plot/__plt2vv__.m, plot/plot3.m: Add line series and data sources. + + 2008-08-28 Martin Weiser + + * plot/scatter3.m: Doc fix. + + 2008-08-26 John W. Eaton + + * plot/hold.m: If hold is applied to a figure, set state for all + child axes objects. + + 2008-08-26 Michael Goffioul + + * plot/backend.m: New function to handle backend switch. + * plot/Makefile.in: Add it. + + 2008-08-26 David Bateman + + * plot/__area__.m: Use __next_line_color__ rather than fixed set + of colors. Convert to use area series objects. + * plot/area.m: Update documentation to correspond to + the area series usage. + * plot/__bar.m: Pass the original rather than scaled width to + __bars__. + * plot/__bars__.m: Convert to use bar series objects. + * plot/bar.m, plor/barh.m: Update documentation to correspond to + the bar series usage. + * plot/__quiver__.m: Convert to use quiver series objects. Change + the default scaling and arrowsize for compatibility. + * plot/quiver.m: Update documentation to correspond to + the quiver series usage. + * plot/stairs.m: Convert to use stair series objects. + * plot/stem.m: Don't include baseline in xlim calculation. Correct + test of whether baseline xdata needs updating in the update_xlim + callback. + + 2008-08-25 Thomas L. Scofield + + * image/imwrite.m: Add ras and tiff to the list of accepted formats. + Handle parameter-value options. Untabify. + + 2008-08-25 David Bateman + + * plot/__stem__.m: Use property inheritance and don't explicitly + call drawnow. + + * plot/__go_draw_axes__.m: Respect the "visible" property of object and + don't draw them if the object is not visible. + + * plot/__stem__.m: Convert to use stem series object. + * plot/stem.m, plot/stem3.m: Update documentation to correspond to + the stem series usage. + + 2008-08-22 John W. Eaton + + * statistics/distributions/chi2rnd.m: Fix missing semicolon. + + 2008-08-21 John W. Eaton + + * plot/__go_draw_axes__.m: Fix test for have_data. + (__gnuplot_write_data__): Write "Inf Inf\n" if all data pairs + contain NaN values. + + 2008-08-21 Thomas Treichl + + * optimization/sqp.m: Increase test script tolerance. + + 2008-08-21 David Bateman + + * plot/ezplot.m : New function. + * plot/Makefile.in (SOURCES): Add ezplot.m to the list. + * plot/__ezplot__.m: Adapt to allow for use with the ezplot function. + + 2008-08-20 Jaroslav Hajek + + * pkg/pkg.m (configure_make): Pass handle to is_architecture_dependent + directly. + + 2008-08-20 David Bateman + + * plot/__go_draw_axes__.m: Don't set pm3d implicit if the plot + contains a surface. Fixes things like meshc(peaks()). + + 2008-08-19 Jaroslav Hajek + + * optimization/glpk.m: Fix invalid call to zeros. + + 2008-08-19 David Bateman + + * miscellaneous/intwarning.m: New function. + * miscellaneous/Makefile.in (SOURCES): Add it here. + + * statistics/base/ranks.m: Doc fix. + + 2008-08-08 John W. Eaton + + * general/Makefile.in (SOURCES): Add cellidx.m to the list. + + 2008-08-07 John W. Eaton + + * gethelp.cc: Delete definition of NPOS. + + 2008-08-04 John W. Eaton + + * strings/strtok.m: Include TAB, LF, VT, FF, and CR in default + list of delim characters. Update tests. + + 2008-07-29 Thomas Treichl + + * general/arrayfun.m: Minor bug fixes, update help text and tests + + 2008-07-29 John W. Eaton + + * plot/axis.m (__get_tight_lims__): Use strcat instead of []. + Don't fail if data is not a vector. + + 2008-07-29 David Bateman + + * general/cellidx.m: reinclude from control toolbox, as used by + print command. Replace is_signal_list with iscellstr. + * general/quadqk.m, linear-algebra/planeror.m, + miscellaneous/namelengthmax.m, specfun/realpow.m: Miscellaneous + documentation fixes. + + * control, finance, quaternion: Remove directories and all of the + files they contain. + * Makefile.in: Remove all references to the above directories. + * configure.in: ditto. + + 2008-07-28 Ben Abbott + + * plot/hold.m: Clarify help text. + + * specfun/reallog.m: Fix help string. + + 2008-07-28 David Bateman + + * strings/regexptranslate.m: Add real documentation. + + * plot/contourf.m: Allow X,Y to be unequal vectors. + + * plot/shading.m: Clarify help string. + + * general/genvarname.m: Trivial documentation fix. + + 2008-07-28 John W. Eaton + + * image/imwrite.m: New function. + * image/Makefile.in (SOURCES): Add it to the list. + + 2008-07-24 Ben Abbott + + * time/datestr.m: New xtest. + + 2008-07-21 Michael Goffioul + + * plot/closereq.m: Use first gcbf to get the handle of the figure to + be closed. + * plot/close.m: Call __go_execute_callback__. + + 2008-07-17 John W. Eaton + + * general/fliplr.m: Fix usage test. + * testfun/test.m: Fix usage tests. + + 2008-07-17 Jaroslav Hajek + + * statistics/base/cov.m: Fix test that should no longer work. + + 2008-07-16 Michael Goffioul + + * plot/gcbo.m, plot/gcbf.m: New functions. + * plot/Makefile.in (SOURCES): Add them to the list. + + 2008-07-16 John W. Eaton + + * deprecated/loadimage.m: New file. + * deprecated/Makefile.in (SOURCES): Add it to the list. + * image/loadimage.m: Delete. + * image/Makefile.in (SOURCES): Remove it from the list. + * image/imread.m: Incorporate loadimage functionality here. + Simplify. + * image/imshow.m: Call imread, not loadimage. + + * image/__img__.m: Set clim for true-color integer data. + + * image/imshow.m: Don't convert integer true-color data to double. + + * plot/__go_draw_axes__.m: Recognize 3-d cdata as a true-color image. + + 2008-07-14 John W. Eaton + + * image/Makefile.in (SOURCES): Add imread.m to the list. + + 2008-07-14 Thomas L. Scofield + + * image/imread.m: New file from Octave Forge. + + 2008-07-10 Jaroslav Hajek + + * set/unique.m: Implement 'first' and 'last', some simplifications. + * set/union.m: Implement output indices. + * set/intersect.m: Implement 'rows'. + * set/setdiff.m: Implement output indices. + * set/setxor.m: Implement 'rows' and output indices. + Add tests and adjust docs in all of the above. + + 2008-06-11 John W. Eaton + + * set/ismember.m: Fix fail tests. + + * general/rat.m: Properly initialize steps when all elements of + input array are integers. Append spaces as necessary when + building character array. + + 2008-06-05 Jaroslav Hajek + + * plot/__go_draw_axes__.m: Use fprintf for formatted output. + + 2008-06-04 Michael Goffioul + + * plot/__go_draw_axes__.m: Support hggroup objects. + * plot/hggroup.m: New file. + * plot/Makefile.in: Handle it. + + 2008-06-02 David Bateman + + * miscellaneous/debug.m: New file.. + * Makefile.in (SOURCES): Add it to the list. + + * general/interp1q.m: Remove spaces between functions and args in + []. Fix test code to actually test interp1q. + + 2008-06-02 Jaroslav Hajek + + * strings/strcat.m: Add tests. + + 2008-06-02 Kim Hansen + + * strings/mat2str.m: Change is_complex to iscomplex, add tests, add + missing ; + + 2008-05-20 David Bateman + + * miscellaneous/single.m: Remove. + * Makefile.in (SOURCES): Remove it here as well. + + 2008-05-20 David Bateman + + * general/interp1q.m: New function. + * general/Makefile.in (SOURCES): Add it here. + + 2008-05-20 Bill Denney + + * time/datenum.m: Allow mixed scalar and vector/matrix input. + New tests. + + 2008-05-19 John W. Eaton + + * general/isa.m: Fix tests. + + 2008-05-13 Bill Denney + + * general/isa.m: Use persistent cell arrays to hold class names + instead of multiple strcmp calls. + + 2008-05-12 David Bateman + + * control/base/__stepimp__.m, control/base/bode_bounds.m, + control/base/damp.m, control/base/dlqr.m, control/base/lsim.m, + control/base/tzero.m, control/hinf/hinfsyn.m, + control/hinf/is_dgkf.m, control/system/d2c.m, + control/system/is_controllable.m, control/system/is_detectable.m, + control/system/is_stabilizable.m, control/system/is_stable.m, + control/system/sysconnect.m, general/bicubic.m, + general/cplxpair.m, general/isdefinite.m, general/issymmetric.m, + general/quadgk.m, general/quadl.m, general/quadv.m, + geometry/delaunayn.m, linear-algebra/krylov.m, + linear-algebra/null.m, linear-algebra/onenormest.m, + linear-algebra/orth.m, linear-algebra/rank.m, + linear-algebra/rref.m, optimization/qp.m, optimization/sqp.m, + polynomial/polygcd.m, polynomial/residue.m, sparse/normest.m, + specfun/erfinv.m, statistics/distributions/betainv.m, + statistics/distributions/gaminv.m, + statistics/distributions/kolmogorov_smirnov_cdf.m, + statistics/tests/manova.m: Modify calls to eps to allow for single + precision types. + + * general/isa.m: Also treat "float: and "numeric" as the class + argument. + + * general/dblquad.m, general/quadgk.m, general/quadv.m, + general/triplequad.m: New functions. + + * testfun/assert.m: Allow assert(cond, errmsg, ...) and + assert(cond, msgid, errmsg, ...) syntax for compatibility. + + 2008-05-09 Thomas Weber + + * miscellaneous/news.m: Replace deprecated isstr call. + + 2008-05-06 David Bateman + + * miscellaneous/symvar.m: New function. + * miscellaneous/Makefile.in (SOURCES): Add it to the list. + + 2008-05-04 John W. Eaton + + * miscellaneous/dbstack.m: Delete. + * miscellaneous/Makefile.in (SOURCES): Remove it from the list. + + 2008-05-03 Rafael Laboissiere + + * linear-algebra/cond.m, miscellaneous/version.m, + miscellaneous/version.m, plot/feather.m, plot/__bar__.m, + plot/compass.m, plot/__quiver__.m, plot/__scatter__.m: Use ischar + instead of deprecated isstr. + + 2008-05-01 David Bateman + + * plot/plot.m: Remove documentation of 'L' option. + * plot/stairs.m: Allow axis handles, properties and linespecs to + be passed. + + 2008-04-30 John W. Eaton + + * elfun/acot.m, elfun/acsc.m, elfun/acsch.m, elfun/asec.m, + elfun/asech.m, specfun/pow2.m: Fix tests. + + 2008-04-30 Jaroslav Hajek + + * specfun/log2.m: Delete. + * specfun/Makefile.in (SOURCES): Delete it from the list. + + 2008-04-29 David Bateman + + pkg/pkg.m: Also set archprefix with the -local and -global options. + + 2008-04-29 Jonathan Stickel + + * statistics/distributions/tcdf.m, statistics/distributions/tinv.m: + Doc fix. + + 2008-04-25 John W. Eaton + + * miscellaneous/dbstack.m: New function. + * miscellaneous/Makefile.in (SOURCES): Add it to the list. + + 2008-04-21 David Bateman + + * plot/__go_draw_axes__.m (gnuplot_position_colorbox): New arg, obj. + Change caller. Improve sizing and position of colorbox for subplots. + * plot/colorbar.m: New demos. + + 2008-04-16 Sᅵren Hauberg + + * plot/__gnuplot_version__.m: Display error if gnuplot is not found. + + 2008-04-15 John W. Eaton + + * plot/view.m: Get values from current axes if nargin == 0. + + 2008-04-15 David Bateman + + * plot/__patch__.m: Fix for NaN values in faces of patches. + + 2008-04-14 David Bateman + + * plot/rose.m: Add missing comment mark that causes issues with + octave-forge function referencing. + * deprecated/lchol.m, deprecated/splchol.m: Fix texinfo errors. + + 2008-04-09 John W. Eaton + + * deprecated/beta_cdf.m, deprecated/beta_inv.m, + deprecated/beta_pdf.m, deprecated/beta_rnd.m, + deprecated/binomial_cdf.m, deprecated/binomial_inv.m, + deprecated/binomial_pdf.m, deprecated/binomial_rnd.m, + deprecated/chisquare_cdf.m, deprecated/chisquare_inv.m, + deprecated/chisquare_pdf.m, deprecated/chisquare_rnd.m, + deprecated/clearplot.m, deprecated/clg.m, deprecated/com2str.m, + deprecated/exponential_cdf.m, deprecated/exponential_inv.m, + deprecated/exponential_pdf.m, deprecated/exponential_rnd.m, + deprecated/f_cdf.m, deprecated/f_inv.m, deprecated/f_pdf.m, + deprecated/f_rnd.m, deprecated/gamma_cdf.m, + deprecated/gamma_inv.m, deprecated/gamma_pdf.m, + deprecated/gamma_rnd.m, deprecated/geometric_cdf.m, + deprecated/geometric_inv.m, deprecated/geometric_pdf.m, + deprecated/geometric_rnd.m, deprecated/hypergeometric_cdf.m, + deprecated/hypergeometric_inv.m, deprecated/hypergeometric_pdf.m, + deprecated/hypergeometric_rnd.m, deprecated/intersection.m, + deprecated/is_bool.m, deprecated/is_complex.m, + deprecated/is_list.m, deprecated/is_matrix.m, + deprecated/is_scalar.m, deprecated/is_square.m, + deprecated/is_stream.m, deprecated/is_struct.m, + deprecated/is_symmetric.m, deprecated/is_vector.m, + deprecated/isstr.m, deprecated/lchol.m, + deprecated/lognormal_cdf.m, deprecated/lognormal_inv.m, + deprecated/lognormal_pdf.m, deprecated/lognormal_rnd.m, + deprecated/meshdom.m, deprecated/normal_cdf.m, + deprecated/normal_inv.m, deprecated/normal_pdf.m, + deprecated/normal_rnd.m, deprecated/pascal_cdf.m, + deprecated/pascal_inv.m, deprecated/pascal_pdf.m, + deprecated/pascal_rnd.m, deprecated/poisson_cdf.m, + deprecated/poisson_inv.m, deprecated/poisson_pdf.m, + deprecated/poisson_rnd.m, deprecated/polyinteg.m, + deprecated/setstr.m, deprecated/spatan2.m, deprecated/spchol.m, + deprecated/spchol2inv.m, deprecated/spcholinv.m, + deprecated/spcumprod.m, deprecated/spcumsum.m, deprecated/spdet.m, + deprecated/spdiag.m, deprecated/spfind.m, deprecated/spinv.m, + deprecated/spkron.m, deprecated/splchol.m, deprecated/splu.m, + deprecated/spmax.m, deprecated/spmin.m, deprecated/spprod.m, + deprecated/spqr.m, deprecated/spsum.m, deprecated/spsumsq.m, + deprecated/struct_contains.m, deprecated/struct_elements.m, + deprecated/t_cdf.m, deprecated/t_inv.m, deprecated/t_pdf.m, + deprecated/t_rnd.m, deprecated/uniform_cdf.m, + deprecated/uniform_inv.m, deprecated/uniform_pdf.m, + deprecated/uniform_rnd.m, deprecated/weibcdf.m, + deprecated/weibinv.m, deprecated/weibpdf.m, deprecated/weibrnd.m, + deprecated/weibull_cdf.m, deprecated/weibull_inv.m, + deprecated/weibull_pdf.m, deprecated/weibull_rnd.m, + deprecated/wiener_rnd.m: Don't embed newline in warning message. + + 2008-04-09 David Bateman + + * testfun/assert.m: Don't allow cond and expected to be lists. + + 2008-04-04 John W. Eaton + + * strings/Makefile.in (SOURCES): Add isstrprop.m to the list. + + * Makefile.in, audio/Makefile.in, control/Makefile.in, + * Makefile.incontrol/base/Makefile.in, control/hinf/Makefile.in, + * Makefile.incontrol/obsolete/Makefile.in, + * Makefile.incontrol/system/Makefile.in, control/util/Makefile.in, + * Makefile.indeprecated/Makefile.in, elfun/Makefile.in, + * Makefile.infinance/Makefile.in, general/Makefile.in, + * Makefile.ingeometry/Makefile.in, image/Makefile.in, + * Makefile.inio/Makefile.in, linear-algebra/Makefile.in, + * Makefile.inmiscellaneous/Makefile.in, optimization/Makefile.in, + * Makefile.inpath/Makefile.in, pkg/Makefile.in, plot/Makefile.in, + * Makefile.inpolynomial/Makefile.in, quaternion/Makefile.in, + * Makefile.inset/Makefile.in, signal/Makefile.in, + * Makefile.insparse/Makefile.in, specfun/Makefile.in, + * Makefile.inspecial-matrix/Makefile.in, startup/Makefile.in, + * Makefile.instatistics/Makefile.in, statistics/base/Makefile.in, + * Makefile.instatistics/distributions/Makefile.in, + * Makefile.instatistics/models/Makefile.in, + * Makefile.instatistics/tests/Makefile.in, strings/Makefile.in, + * Makefile.intestfun/Makefile.in, time/Makefile.in + * Makefile.in(check-m-sources): New target. + + 2008-04-04 Bill Denney + + * optimization/lsqnonneg.m: Use optimset, correctly index + Z and P in main loop. + + 2008-04-04 David Bateman + + * deprecated/beta_cdf.m deprecated/beta_inv.m + deprecated/beta_pdf.m deprecated/beta_rnd.m + deprecated/binomial_cdf.m deprecated/binomial_inv.m + deprecated/binomial_pdf.m deprecated/binomial_rnd.m + deprecated/chisquare_cdf.m deprecated/chisquare_inv.m + deprecated/chisquare_pdf.m deprecated/chisquare_rnd.m + deprecated/clearplot.m deprecated/clg.m deprecated/com2str.m + deprecated/exponential_cdf.m deprecated/exponential_inv.m + deprecated/exponential_pdf.m deprecated/exponential_rnd.m + deprecated/f_cdf.m deprecated/f_inv.m deprecated/f_pdf.m + deprecated/f_rnd.m deprecated/gamma_cdf.m deprecated/gamma_inv.m + deprecated/gamma_pdf.m deprecated/gamma_rnd.m + deprecated/geometric_cdf.m deprecated/geometric_inv.m + deprecated/geometric_pdf.m deprecated/geometric_rnd.m + deprecated/hypergeometric_cdf.m deprecated/hypergeometric_inv.m + deprecated/hypergeometric_pdf.m deprecated/hypergeometric_rnd.m + deprecated/intersection.m deprecated/is_bool.m + deprecated/is_complex.m deprecated/is_list.m + deprecated/is_matrix.m deprecated/is_scalar.m + deprecated/is_square.m deprecated/is_stream.m deprecated/isstr.m + deprecated/is_struct.m deprecated/is_symmetric.m + deprecated/is_vector.m deprecated/lognormal_cdf.m + deprecated/lognormal_inv.m deprecated/lognormal_pdf.m + deprecated/lognormal_rnd.m deprecated/meshdom.m + deprecated/normal_cdf.m deprecated/normal_inv.m + deprecated/normal_pdf.m deprecated/normal_rnd.m + deprecated/pascal_cdf.m deprecated/pascal_inv.m + deprecated/pascal_pdf.m deprecated/pascal_rnd.m + deprecated/poisson_cdf.m deprecated/poisson_inv.m + deprecated/poisson_pdf.m deprecated/poisson_rnd.m + deprecated/polyinteg.m deprecated/setstr.m + deprecated/struct_contains.m deprecated/struct_elements.m + deprecated/t_cdf.m deprecated/t_inv.m deprecated/t_pdf.m + deprecated/t_rnd.m deprecated/uniform_cdf.m + deprecated/uniform_inv.m deprecated/uniform_pdf.m + deprecated/uniform_rnd.m deprecated/weibcdf.m deprecated/weibinv.m + deprecated/weibpdf.m deprecated/weibrnd.m deprecated/weibull_cdf.m + deprecated/weibull_inv.m deprecated/weibull_pdf.m + deprecated/weibull_rnd.m deprecated/wiener_rnd.m: Add warning that + function will be removed in a future version. + + 2008-04-03 John W. Eaton + + * deprecated/beta_cdf.m, deprecated/beta_inv.m, + deprecated/beta_pdf.m, deprecated/beta_rnd.m, + deprecated/binomial_cdf.m, deprecated/binomial_inv.m, + deprecated/binomial_pdf.m, deprecated/binomial_rnd.m, + deprecated/chisquare_cdf.m, deprecated/chisquare_inv.m, + deprecated/chisquare_pdf.m, deprecated/chisquare_rnd.m, + deprecated/clearplot.m, deprecated/clg.m, deprecated/com2str.m, + deprecated/exponential_cdf.m, deprecated/exponential_inv.m, + deprecated/exponential_pdf.m, deprecated/exponential_rnd.m, + deprecated/f_cdf.m, deprecated/f_inv.m, deprecated/f_pdf.m, + deprecated/f_rnd.m, deprecated/gamma_cdf.m, + deprecated/gamma_inv.m, deprecated/gamma_pdf.m, + deprecated/gamma_rnd.m, deprecated/geometric_cdf.m, + deprecated/geometric_inv.m, deprecated/geometric_pdf.m, + deprecated/geometric_rnd.m, deprecated/hypergeometric_cdf.m, + deprecated/hypergeometric_inv.m, deprecated/hypergeometric_pdf.m, + deprecated/hypergeometric_rnd.m, deprecated/intersection.m, + deprecated/is_bool.m, deprecated/is_complex.m, + deprecated/is_list.m, deprecated/is_matrix.m, + deprecated/is_scalar.m, deprecated/is_square.m, + deprecated/is_stream.m, deprecated/is_struct.m, + deprecated/is_symmetric.m, deprecated/is_vector.m, + deprecated/isstr.m, deprecated/lchol.m, + deprecated/lognormal_cdf.m, deprecated/lognormal_inv.m, + deprecated/lognormal_pdf.m, deprecated/lognormal_rnd.m, + deprecated/meshdom.m, deprecated/normal_cdf.m, + deprecated/normal_inv.m, deprecated/normal_pdf.m, + deprecated/normal_rnd.m, deprecated/pascal_cdf.m, + deprecated/pascal_inv.m, deprecated/pascal_pdf.m, + deprecated/pascal_rnd.m, deprecated/poisson_cdf.m, + deprecated/poisson_inv.m, deprecated/poisson_pdf.m, + deprecated/poisson_rnd.m, deprecated/polyinteg.m, + deprecated/setstr.m, deprecated/spatan2.m, deprecated/spchol.m, + deprecated/spchol2inv.m, deprecated/spcholinv.m, + deprecated/spcumprod.m, deprecated/spcumsum.m, deprecated/spdet.m, + deprecated/spdiag.m, deprecated/spfind.m, deprecated/spinv.m, + deprecated/spkron.m, deprecated/splchol.m, deprecated/splu.m, + deprecated/spmax.m, deprecated/spmin.m, deprecated/spprod.m, + deprecated/spqr.m, deprecated/spsum.m, deprecated/spsumsq.m, + deprecated/struct_contains.m, deprecated/struct_elements.m, + deprecated/t_cdf.m, deprecated/t_inv.m, deprecated/t_pdf.m, + deprecated/t_rnd.m, deprecated/uniform_cdf.m, + deprecated/uniform_inv.m, deprecated/uniform_pdf.m, + deprecated/uniform_rnd.m, deprecated/weibcdf.m, + deprecated/weibinv.m, deprecated/weibpdf.m, deprecated/weibrnd.m, + deprecated/weibull_cdf.m, deprecated/weibull_inv.m, + deprecated/weibull_pdf.m, deprecated/weibull_rnd.m, + deprecated/wiener_rnd.m: + Note version when function was deprecated. + + 2008-04-03 David Bateman + + * plot/__go_draw_axes__.m: Conditionally "set pm3d implict" for 2D + plot or 3D plots with more than one line. + + * deprecated/splchol.m deprecated/lchol.m deprecated/spfind.m + deprecated/spchol.m deprecated/spmin.m deprecated/spmax.m + deprecated/spdet.m deprecated/splu.m deprecated/spqr.m + deprecated/spatan2.m deprecated/spchol2inv.m + deprecated/spcholinv.m deprecated/spcumprod.m deprecated/spdiag.m + deprecated/spinv.m deprecated/spcumsum.m deprecated/spprod.m + deprecated/spsum.m deprecated/spsumsq.m: New files + * deprecated/Makefile.in (SOURCES): Add them here. + + 2008-04-03 Ben Abbott + + * sparse/spaugment.m: Increase test script tolerance. + + 2008-04-02 John W. Eaton + + * deprecated/Makefile.in (SOURCES): Add spkron.m to the list. + + * general/Makefile.in (SOURCES): Add runlength.m to the list. + + 2008-04-02 Bill Denney + + * optimization/lsqnonneg.m: New function. + * optimization/Makefile.in (SOURCES): Add it to the list. + + 2008-04-02 David Bateman + + * sparse/spaugment.m: New function + * sparse/Makefile.in (SOURCES): Add it here. + + * plot/__gnuplot_ginput__.m: Use the gnuplot stream itself for + communication rather than a chat file if mkfifo is not available. + * plot/gnuplot_drawnow.m: Open stream with popen2 to allow two way + communication with the gnuplot process. + + 2008-04-01 Richard Bovey + + * general/sortrows.m: Handle negative column arguments. + + 2008-04-01 Julian Schnidder + + * miscellaneous/perl.m: New function. + * miscellaneous/Makefile.in (SOURCES): Add it to the list. + + 2008-03-31 David Bateman + + * plot/__go_draw_axes__.m: Set the tick direction in the main call + the set tics rather than separately to avoid issues with multiple + ticks in plotyy. + + * plot/gtext.m: New function to place text on a plot. + * plot/waitforbuttonpress.m: New function. + * plot/Makefile.in (SOURCES): Add them to the list. + * plot/__gnuplot_ginput__.m: Bug fix for nargin==1. Workaround for + missing mkfifo under Windows. + * plot/ginput.m: Eliminate setting of n. + + * plot/ginput.m: New function. + * plot/__gnuplot_ginput__.m: New function based on a version of + ginput.m from Petr Mikulik . + * plot/Makefile.in (SOURCES): Add them to the list. + + 2008-03-31 Dmitri A. Sergatskov + + * miscellaneous/run.m: Fix check for existence of file. + + 2008-03-27 Jaroslav Hajek + + * general/lookup.m: Remove (lookup moved to DLD-FUNCTIONS). + * general/Makefile.in (SOURCES): Delete lookup.m from the list. + * general/interp1.m, general/interp2.m, general/interpn.m, + polynomial/ppval.m: Fix buggy lookup calls. + * general/interp1.m: New test. + + 2008-03-28 Thomas Weber + + * miscellaneous/tempdir.m: Use correct function name in texinfo + documentation. + + 2008-03-28 Jaroslav Hajek + + * general/del2.m: Missing semicolon. + + 2008-03-28 Julian Schnidder + + * miscellaneous/info.m: New function. + * miscellaneous/Makefile.in (SOURCES): Add it to the list. + + 2008-03-27 Sᅵren Hauberg + + * plot/xlim.m, plot/ylim.m, plot/zlim.m, strings/strtrim.m: + Doc fixes. + + 2008-03-27 David Bateman + + * plot/__plt2__.m: Test if args are empty first so that + plot(zeros(1,0),zeros(1,0)) works as expected. + + * plot/plotyy.m: The axis handle is a two element vector and + so needs special treatment. Call newplot for the second axis. + + 2008-03-27 Bill Denney + + * time/datenum.m: Allow vector inputs in any orientation. + + * strings/validatestring.m: New function. + * strings/Makefile.in (SOURCES): Add it to the list. + + * general/nargoutchk.m: New function. + * general/Makefile.in (SOURCES): Add it to the list. + + * general/genvarname.m: New function. + * general/Makefile.in (SOURCES): Add it to the list. + + * time/addtodate.m: New function. + * time/Makefile.in (SOURCES): Add it to the list. + + * geometry/rectint.m: Vectorize and add more tests. + + 2008-03-27 John W. Eaton + + * plot/__axis_label__.m: Use name of caller in error message. + + 2008-03-27 David Bateman + + * linear-algebra/planerot.m: Givens rotation function. + + 2008-03-26 John W. Eaton + + * set/ismember.m: Set size of idx output correctly for empty args. + New tests. + + * general/logical.m: Correctly handle empty args. New tests. + + * control/hinf/h2syn.m, general/__splinen__.m, general/gradient.m, + geometry/inpolygon.m, geometry/trimesh.m, geometry/triplot.m, + image/imagesc.m, io/csvread.m, io/csvwrite.m, + miscellaneous/edit.m, miscellaneous/tempname.m, plot/fill.m, + plot/patch.m, plot/ribbon.m, plot/surface.m, polynomial/mkpp.m, + polynomial/pchip.m, polynomial/spline.m, set/unique.m: + Texinfo fixes. + + 2008-03-26 Jaroslav Hajek + + * linear-algebra/dmult.m: Handle scaling along arbitrary dimension. + + 2008-03-26 Sᅵren Hauberg + + * polynomial/convn.m: New tests. + + 2008-03-20 Ben Abbott + + * statistics/base/statistics.m: Calculate median and quantiles in + a manner consistent with method #7 used by GNU R. + * statistics/base/__quantile__.m, statistics/base/quantile.m, + statistics/base/prctile.m: New functions. + * statistics/base/Makefile.in (SOURCES): Add them to the list. + + 2008-03-25 Sᅵren Hauberg + + * polynomial/convn.m: New function. + * polynomial/Makefile.in (SOURCES): Add it to the list. + + 2008-03-25 David Bateman + + * image/contrast.m: New function. + * image/Makefile.in (SOURCES): Add it to the list. + + 2008-03-24 Thomas Weber + + * pkg/pkg.m: Allow installation of already extracted packages. + + 2008-03-24 David Bateman + + * general/idivide.m: New function. + * general/Makefile.in (SOURCES): Add it to the list. + + * miscellaneous/namelengthmax.m: New function. + * miscellaneous/Makefile.in (SOURCES): Add it to the list. + + * strings/regexptranslate.m: New function. + * strings/Makefile.in (SOURCES): Add it to the list. + + 2008-03-21 David Bateman + + * specfun/reallog.m, specfun/realpow.m, specfun/realsqrt.m: + New functions. + * specfun/Makefile.in (SOURCES): Add them to the list. + + 2008-03-20 David Bateman + + * general/tril.m, general/triu.m: Fail if input is a structure. + + * miscellaneous/cast.m: Also allow cast to "char". + + * general/rotdim.m: Ensure k is an integer scale. + + * general/circshift.m: If matrix is empty fast return. + + 2008-03-20 Jaroslav Hajek + + * linear-algebra/subspace.m: Check number of arguments, number + of dimensions of arguments and matching dimensions. + + 2008-03-19 Jaroslav Hajek + + * linear-algebra/subspace.m: New function. + * linear-algebra/subspace.m: New function. + + 2008-03-19 Emil Lucretiu + + * signal/sinetone.m: Ensure integral number of samples. + + 2008-03-19 Michael D. Godfrey + + * plot/__go_draw_axes__.m: Additional correction for symbol codes. + + 2008-03-19 Ben Abbott + + * statistics/base/mode.m: Add NDArray tests. + + 2008-03-19 Jaroslav Hajek + + * statistics/distributions/exppdf.m, + statistics/distributions/expcdf.m, + statistics/distributions/expinv.m, + statistics/distributions/exprnd.m: Doc fix. + + 2008-03-19 David Bateman + + * statistics/base/mode.m: Fix for row vectors. + + * plot/__scatter__.m: Modify for change of markersize in + __go_draw_axes__.m and for compatibility. + * plot/__go_draw_axes__.m: Don't divide the marker size by 6 + twice. + * plot/scatter3.m: Doc fix. + + 2008-03-18 Ben Abbott + + * specfun/beta.m: Fix for negative inputs. + + 2008-03-18 Michael D. Godfrey + + * plot/__go_draw_axes__.m: Use correct symbol codes. + + 2008-03-14 Kai Habel + + * plot/__go_draw_axes__.m: Expicitly set gnuplot user + style to default to avoid wrong mesh color in some cases. + + 2008-03-12 David Bateman + + * geometry/griddata3.m: Use griddatan and not griddata + internally. Return vi and not yi. Add test code. + + 2008-03-11 John W. Eaton + + * plot/__go_draw_axes__.m: Use get to access hidden properties. + Use strcmpi when comparing string properties. + + * io/csread.m, io/csvwrite.m, io/dlmwrite.m: Style fixes. + + 2008-03-11 Kai Habel + + * plot/__go_draw_axes__.m: Plot surfaces in front of axes. + Allow plotting of uniform colored mesh plots with and + w/o hidden line removal. + + 2008-03-11 David Bateman + + * io/dlmwrite.m, io/csvread.m, io/csvwrite.m: Files ported from + octave-forge. + * io/Makefile.in (SOURCES): Add them here. + + 2008-03-07 John W. Eaton + + * plot/contourf.m: Set axes layer property to "top". + + * plot/__go_draw_axes__.m: Handle tickdir property. + + 2008-03-06 John W. Eaton + + * plot/hist.m: Avoid temporaries. + Allow matrix arguments when number of bins > 30. + From Robert S. Mahurin . + + * plot/ChangeLog: Handle axes linewidth property. + + * plot/__go_draw_axes__.m: Adjust markersize by a factor of 1/6. + + * general/interpn.m: New test. + + 2008-03-05 Ben Abbott + + * polynomial/roots.m: Catch Infs and/or NaNs. + + 2008-03-05 Sebastien Loisel + + * polynomial/roots.m: Apply a scaling factor to the removal of the + leading zeros. + + 2008-03-04 John W. Eaton + + * plot/print.m: Fix oops in applying last change. + + 2008-03-04 Bill Denney + + * plot/allchild.m, plot/findall.m: New functions. + * plot/Makefile.in (SOURCES): Add them to the list. + + * geometry/rectint.m: New function. + * geometry/Makefile.in (SOURCES): Add it to the list. + + 2008-03-04 Michael Goffioul + + * pkg/pkg.m (pkg:configure_make): Make it work with recent changes in + isspace handling with cell arrays of strings. + + 2008-03-04 Ben Abbott + + * polynomial/polyfit.m: Modified tests to respect a relative tolerance. + + * plot/print.m: Accept a figure handle as an optional input. + + 2008-02-29 John W. Eaton + + * plot/print.m: Handle gif and jpg devices. + + 2008-02-28 John W. Eaton + + * plot/__go_draw_axes__.m (get_old_gnuplot_color): New subfunction. + Use it to replace repeated if/elseif blocks. + + 2008-02-28 Kai Habel + + * plot/__go_draw_axes__.m: If facecolor property of a surface is + "none", don't use pm3d mode and set linestyle correctly. + + 2008-02-25 Ben Abbott + + * control/system/zpout.m, finance/irr.m, general/int2str.m, + general/num2str.m, miscellaneous/bug_report.m, + miscellaneous/copyfile.m, miscellaneous/dir.m, + miscellaneous/edit.m, miscellaneous/fullfile.m, + miscellaneous/mkoctfile.m, miscellaneous/movefile.m, + miscellaneous/tempdir.m, miscellaneous/unpack.m, + path/__extractpath__.m, pkg/pkg.m, plot/__ezplot__.m, + plot/__go_draw_axes__.m, plot/legend.m, plot/print.m, + signal/spectral_adf.m, signal/spectral_xdf.m, + statistics/tests/z_test.m, statistics/tests/z_test_2.m, + strings/Makefile.in, strings/strcat.m, strings/strvcat.m, + testfun/assert.m, testfun/demo.m, testfun/speed.m, + testfun/test.m: Use cstrcat instead of strcat. + + * strings/strcat.m: New compatible version. + + * strings/cstrcat.m: Rename from strings/strcat.m. + + 2008-02-25 John W. Eaton + + * strings/isstrprop.m: New file. + + 2008-02-25 Ryan Hinton + + * miscellaneous/unpack.m: Use "-f -" args for tar. + + 2008-02-24 John W. Eaton + + * specfun/log2.m: Ensure returned value of F strictly less than 1. + From Dave Hawthorne . + + 2008-02-22 Ben Abbott + + * specfun/legendre.m: Doc fix. + + 2008-02-22 David Bateman + + * sparse/pcg.m, sparse/spdiags, spstats.m: Remove references to + spdiag. + + 2008-02-22 John W. Eaton + + * miscellaneous/fullfile.m: Improve handling of empty args and + args ending with filesep. + + * control/base/__stepimp__.m: Don't use subplot for just one plot. + + 2008-02-21 John W. Eaton + + * image/imshow.m: Call axis ("image"). + From Michael G. Ross . + + * plot/errorbar.m: If nargout > 0, return vector of handles to + line objects. + * plot/__go_draw_axes__.m: Improve handling of line style for + errorbar plots. + + 2008-02-20 Marco Caliari + + * specfun/legendre.m: Accept normalization options ("sch", "norm"), + and improve stability for higher orders. + + 2008-02-20 John W. Eaton + + * strings/strcat.m: Detect cellstr args. + + 2008-02-20 David Bateman + + * sparse/colperm.m, sparse/nonzero.m, sparse/spdiags.m, + sparse/spfun.m, sparse/spones.m, sparse/sprand.m, + sparse/sprandn.m, sparse/sprandsym.m, sparse/spy.m: Use generic + version of find rather than spfind. + + 2008-02-19 Ben Abbott + + * miscellaneous/edit.m: New option EDITINPLACE. Prefer file list + rather than path list. Return option structure with "get all". + + * polynomial/polyfit.m: Use QR decomposition. Handle + normalization option. + * polynomial/polyval.m: Normalize dependent variable. Optionally + generate 50% prediction intervals. + + * miscellaneous/ver.m: Include package version information in + output. Improve consistency with Matlab. + + 2008-02-19 John W. Eaton + + * pkg/pkg.m: Style fixes. + + 2008-02-19 Carlo de Falco + + * pkg/pkg.m: Handle 'describe' command. + (parse_pkg_idx, print_package_description): New subfunctions. + + 2008-02-19 Bill Denney + + * time/datestr.m: Avoid confusion for datenum vectors that are 6 + elements wide. + + 2008-02-18 David Bateman + + * general/rem.m, general/mod.m: Treat integer types correctly. + + 2008-02-15 Timo Lindfors + + * statistics/tests/kruskal_wallis_test.m: Handle ties. + * general/runlength.m: New function from Paul Kienzle. + + 2008-02-15 Rolf Fabian + + * linear-algebra/cond.m: New optional second argument to + specify 1-norm, inf-norm, or frobenius-norm. + + 2008-02-12 Kostas Poulios + + * plot/__quiver__.m: make arrow head be in z-plane of the arrow + body. Allow the linespec to specify the arrow color. + + 2008-02-12 David Bateman + + * miscellaneous/cast.m: Also treat the logical type. + + * plot/__go_draw_axes__.m: Set pm3d implict to fix colorbars on + contour plots. + + * plot/__go_draw_axes__.m: Use the cdatamapping property to set + the cbrange. + * plot/__img__.m: Set cdatamapping to "direct". + * plot/imagesc.m: Set cdatamapping to "scaled". + + 2008-02-08 Julien Pommier + + * audio/wavread.m: Limit data read to end of data chunk. + + 2008-02-08 David Bateman + + * plot/__contour__.m: Respect the graphic handle options that are + passed. + * plot/__go_draw_axes__.m: Respect the linewidth for patch objects. + + 2008-02-01 Dave Goel + + * signal/arch_rnd.m: Correctly index E and Y vectors. + + 2008-02-01 Bill Denney + + * time/weekday.m: Allow vector inputs and speed up. + * time/eomday.m: Return column vector for column vector inputs. + + 2008-01-30 John W. Eaton + + * miscellaneous/edit.m: Use "## Created: DATE" instead of "initial + revision". + + * plot/Makefile.in (SOURCES): Include __plt2sv__.m and + __plt2vs__.m in the list. + + * miscellaneous/tempdir.m: Append filesep to name for + compatibility. Warn if not a directory or directory does not + exist. + + * strings/deblank.m: Improve compatibility. + + 2008-01-29 John W. Eaton + + * strings/str2double.m: Delete unused variable FLAG_OCTAVE. + + 2008-01-28 Michael Goffioul + + * plot/xlabel.m, plot/ylabel.m, plot/zlabel.m: + Return the label handle, not the current axis handle. + + 2008-01-25 Alexander Barth + + * general/interpn.m: Compatibility fix. Don't ndgrid vector + abscissa. + + 2008-01-25 David Bateman + + * general/__splinen__.m: Treat mixed orientation vectors. + * plot/__scatter__.m: Remove NaN values from data. + * plot/__patch__.m: Vectorize treatment of trailing NaN values. + + 2008-01-25 Thomas Weber + + * linear-algebra/trace.m: Test cases for non 2-d args. + + 2008-01-25 James Packer + + * geometry/griddata3.m: Call griddata, not gridata. + + 2008-01-24 Schloegl Alois + + * linear-algebra/trace.m: Require 2-d args. Handle vectors properly. + + 2008-01-22 Thomas Weber + + * linear-algebra/cond.m, linear-algebra/trace.m: + Move tests here from test/test_linalg.m. + + * general/diff.m, general/fliplr.m, general/flipud.m, + general/logspace.m, general/rot90.m, general/shift.m, general/tril.m, + general/triu.m, linear-algebra/vec.m, linear-algebra/vech.m, + special-matrix/hankel.m, special-matrix/hilb.m, + special-matrix/invhilb.m, special-matrix/sylvester_matrix.m, + special-matrix/toeplitz.m, special-matrix/vander.m: + Move tests here from test/test_matrix.m. + + * general/isscalar.m, general/issquare.m, general/isvector.m: + Move tests here from test/test_number.m. + + * deprecated/polyinteg.m, polynomial/compan.m, polynomial/conv.m, + polynomial/deconv.m, polynomial/poly.m, polynomial/polyderiv.m, + polynomial/polyfit.m, polynomial/polyreduce.m, polynomial/polyval.m, + polynomial/polyvalm.m, polynomial/roots.m: + Move tests here from test/test_poly.m. + + * signal/unwrap.m: + Move tests here from test/test_signal.m. + + * statistics/base/corrcoef.m, statistics/base/cov.m, + statistics/base/kurtosis.m, statistics/base/mahalanobis.m, + statistics/base/mean.m, statistics/base/median.m, + statistics/base/skewness.m, statistics/base/std.m: + Move tests here from test/test_stats.m. + + * general/int2str.m, general/num2str.m, strings/bin2dec.m, + strings/blanks.m, strings/deblank.m, strings/dec2bin.m, + strings/dec2hex.m, strings/findstr.m, strings/hex2dec.m, + strings/index.m, strings/rindex.m, strings/split.m, strings/str2mat.m, + strings/str2num.m, strings/strcat.m, strings/strrep.m, + strings/substr.m: + Move tests here from test/test_string.m. + + * miscellaneous/computer.m, miscellaneous/ls.m, + miscellaneous/version.m, time/asctime.m, time/clock.m, time/ctime.m, + time/date.m, time/etime.m, time/is_leap_year.m: + Move tests here from test/test_system.m. + + 2008-01-22 Schloegl Alois + + * specfun/erfinv.m: Replace z_old and z_new by a single variable z. + Simplify initial checks on argument values. + + 2008-01-22 Michael Goffioul + + * plot/gnuplot_drawnow.m: New function corresponding to the + implementation of the gnuplot-based graphics backend (derived from + drawnow.m). + * plot/drawnow.m: Deleted (converted to C++). + + 2008-01-15 Rolf Fabian + + * linear-algebra/__norm__.m: Only scale if inf norm is finite. + New tests. + + 2008-01-18 John W. Eaton + + * optimization/sqp.m: End each function with endfunction. + + 2008-01-18 Ben Abbott + + * polynomial/residue.m: For each group of pole multiplicity, set + the poles of the group to the value of the group's average. + + 2008-01-17 Tetsuro KURITA + + * plot/print.m: Handle PDF output. + * plot/drawnow.m: Add "PDF" in a list of enhanced_terminals. + + 2008-01-17 John W. Eaton + + * path/savepath.m: Print newline before initial comment line. + Double up single quote characters. + * path/__extractpath__.m: Return just the path as a string. + Undo single quote character doubling. + + * path/pathdef.m: Avoid eval. Simplify. + + * path/pathdef.m: Use fullfile instead of concatenating with filesep. + * path/__extractpath__.m, path/savepath.m: Use unwind_protect to + avoid possible file descriptor leak. + + 2008-01-17 Ben Abbott + + * path/savepath.m: Warn if modified file is not explicitly specified. + * startup/main-rcfile: Call atexit ("__finish__"). + + 2008-01-16 John W. Eaton + + * plot/__go_draw_axes__.m (__do_enhanced_option__): New subfunction. + Use it to disable enhanced mode for individual labels and titles. + + * startup/Makefile.in (SOURCES): Add __finish__.m to the list. + (install install-strip, uninstall): Handle function files. + + 2008-01-16 Ben Abbott + + * startup/__finish__.m: New file. + * path/__extractpath__.m, path/matlabroot.m, + path/pathdef.m: New files. + * path/Makefile.in (SOURCES): Add them to the list. + + 2008-01-15 Thomas Weber + + * special-matrix/vander.m: Vectorize. New test. + + * elfun/acot.m, elfun/acoth.m, elfun/acsc.m, elfun/acsch.m, + elfun/asec.m, elfun/asech.m, elfun/cot.m, elfun/coth.m, + elfun/csc.m,elfun/csch.m, elfun/lcm.m, elfun/sec.m, elfun/sech.m, + general/rem.m, miscellaneous/bincoeff.m, miscellaneous/xor.m, + specfun/beta.m, specfun/log2.m, specfun/pow2.m: + Move tests here from test/test_arith.m. + + 2008-01-15 John W. Eaton + + * linear-algebra/__norm__.m: Use sum(abs(x),2), not sum(abs(x.')). + + 2008-01-15 Michael Goffioul + + * plot/drawnow.m, plot/__go_draw_figure__.m, plot/__go_draw_axes__.m: + Call __get__ instead of get. + + 2008-01-15 Ben Abbott + + * linear-algebra/__norm__.m: Avoid divide by zero error for + Frobenius norm if matrix is all zeros. Use transpose instead of + hermitian operator. + + 2008-01-14 Bill Denney + + * plot/axis.m: Correctly handle "tight" and "image" options. + + 2008-01-14 Sᅵren Hauberg + + * image/hsv2rgb.m, image/ntsc2rgb.m, image/rgb2hsv.m, + image/rgb2ntsc.m: Also accept images as input. + + * image/gray2ind.m: Handle image type other than double. + Improve error checking and documentation. + + 2008-01-14 John W. Eaton + + * plot/__go_draw_axes__.m (get_fontname_and_size): Use strcmpi + instead of calling tolower on first arg. Default font name is + Helvetica, not helvetica. Don't downcase user-specified font name. + (__maybe_munge_text__): Fix typo. + + * optimization/sqp.m: Fix function definitions in test code. + + 2008-01-12 John W. Eaton + + * plot/gnuplot_binary.in: New file. + * plot/gnuplot_binary.m: Delete. + * plot/Makefile.in (SOURCES): Remove gnuplot_binary.m from the list. + (SOURCES_IN, GEN_M): New macros. + (DISTFILES): Include $(SOURCES_IN) in the list. + (FCN_FILES): Include $(GEN_M) in the list. + (all): Depend on $(GEN_M). + ($(GEN_M): %.m : $(TOPDIR)/Makeconf): New pattern rule. + (distclean): Also remove $(GEN_M). + + 2008-01-11 John W. Eaton + + * optimization/sqp.m: New test from example in doc string. + + 2008-01-10 Ben Abbott + + * polynomial/mpoles.m: Avoid cases where poles could be assigned + to more than one multiplicity group. + + 2008-01-10 John W. Eaton + + * plot/gnuplot_binary.m: New file. + * plot/Makefile.in (SOURCES): Add it to the list. + + 2008-01-09 John W. Eaton + + * plot/drawnow.m: Fail if filename includes a directory part that + does not exist. + + 2008-01-07 John W. Eaton + + * miscellaneous/copyfile.m, miscellaneous/movefile.m: + Error if glob call fails to match any files. + + 2008-01-04 Thomas Treichl + + * strings/strtrim.m: Doc fix. + + 2008-01-04 Muthiah Annamalai + + * general/sub2ind.m, general/ind2sub.m: Doc fix. + + 2008-01-04 Sᅵren Hauberg + + * set/create_set.m, set/union.m: Accept "rows" argument. + + 2008-01-02 John W. Eaton + + * plot/print.m: Correctly handle pbm terminal. + + 2007-12-28 John W. Eaton + + * miscellaneous/edit.m: Use strcat instead of fullfile to add file + extensions. + + 2007-12-28 David Bateman + + * ezcontourf.m, ezcontour.m, ezmeshc.m, ezmesh.m, ezplot3.m, + __ezplot__.m, ezpolar.m, ezsurfc.m, ezsurf.m: New functions. + * Makefile.in (SOURCES): Add to the sources. + + 2007-12-28 Kai Habel + + * plot/pcolor.m: Swap 1st and 2nd argument in call to meshgrid. + Remove unnecessary call of size function. + + 2007-12-21 John W. Eaton + + Version 3.0.0 released. + + 2007-12-21 Sᅵren Hauberg + + * image/imshow.m: Accept empty value for display_range. + + 2007-12-20 Michael Goffioul + + * pkg/pkg.m: Add .lib as architecture-dependent suffix. + + 2007-12-19 Sᅵren Hauberg + + * image/imshow.m: Store uint8 images as doubles. Handle default + display ranges correctly. + + 2007-12-19 Alexander Barth + Peter A. Gustafson + + * plot/contourc.m: Allow usage of irregular spaced x, y data. + + 2007-12-19 John W. Eaton + + * miscellaneous/edit.m: New function. + * miscellaneous/Makefile.in (SOURCES): Add it to the list. + + 2007-12-19 Michael Goffioul + + * plot/__bar__.m: Handle "basevalue" option. + * plot/__bars__.m: New arg, base_value. + + 2007-12-17 David Bateman + + * plot/rose.m, plot/feather.m, plot/compass.m: New functions + * plot/Makefiles (SOURCES): Add them to the sources + * plot/polar.m: Set the x and y limits to the maximum polar + radius. Set the axes to be square. + * plot/__go_draw_axes__.m: Allow {x|y}axislocation to be "zero" + and print axis at zero if this is used. + + * plot/__go_draw_axes__.m: Use "set pm3d explicit" so that + contours can overlay pcolor plots. Priveldge no hidden line + removal when there are multiple objects in the plot. + + 2007-12-17 Peter A. Gustafson + + * plot/__go_draw_axes__.m: Fix mirrored tics and borders for + set (gca (), "[xy]axislocation", "{right|top}", "box", "off"). + + 2007-12-17 Ben Abbott + + * miscellaneous/run.m: Replace script with f when looking for + file to run. + + 2007-12-14 David Bateman + + * plot/contour3.m, plot/__contour__.m: Handle linespec. + * plot/contour.m: Doc fix. + * plot/__go_draw_axes__.m (case "patch"): Include "lt" in lt string. + Include linetype in withclause. + + * plot/__go_draw_axes__.m (__calc_dimensions__): New function. + Use it to determine dimensions. Consolidate all 3-d settings. + + 2007-12-13 John W. Eaton + + * image/imshow.m: Turn axis visibility off. + Don't scale true color images. + * image/image.m: Set axis layer property to "top". + + 2007-12-12 John W. Eaton + + * image/loadimage.m: Avoid calling eval. Avoid calling exist. + + * plot/pie.m: Avoid calling "exist". + + * linear-algebra/condest.m: Use nargin instead of size(varargin,2). + Condense argument processing logic. Allow 6 arguments. + Use issquare. Avoid calling "exist". + + * plot/__go_draw_axes__.m: Handle the axes layer property. + + 2007-12-12 David Bateman + + * plot/ellipsoid.m: Port from octave-forge, editing for style. + * plot/Makefile.in (SOURCES): Add to the sources. + + 2007-12-11 John W. Eaton + + * plot/surf.m: Set xgrid, ygrid, and zgrid on here. + * plot/surface.m: Not here. + + * plot/__go_draw_axes__.m: Always use "set grid front". Send a + subsequent "unset grid" if there is no grid. + + * plot/__go_draw_axes__.m: Include "front" in "set label" options. + + * plot/surface.m: Don't set facecolor property in call to + __go_surface__. + + * plot/__plt2vs__.m, plot/__plt2sv__.m: New functions. + * plot/__plt2__.m: Handle scalar-vector and vector-scalar cases. + + 2007-12-11 Kai Habel + + * plot/__patch__.m: Fix typo. Improve argument checking, so that a + color string is not taken as z value. + + * plot/slice.m: Remove unused variable, set xgrid, ygrid, and + zgrid to "on" and box to "off" for used axes. + + * plot/__go_draw_axes__.m, plot/plot3.m, plot/ribbon.m, + plot/slice.m: Use size_equal(var1,var2,...) when possible. + + 2007-12-11 David Bateman + + * miscelleaneous/fullfile.m: Ignore empty arguments. + + * sparse/spstats.m: Drop argument to Fsparse to force mutation. + * statistics/base/mode.m: Ditto. + + * plot/__plt_get_axis_arg__.m: Ignore integer valued handles as + object handles are all now non integer. + + 2007-12-10 John W. Eaton + + * plot/sombrero.m, plot/peaks.m: Use surf instead of mesh. + + * general/issymmetric.m: Use ' instead of .' for compatibility + with previous versions of Octave. + * general/ishermitian.m: Delete. + * general/Makefile.in (SOURCES): Remove ishermitian.m from the list. + + * plot/fplot.m: In N is not specified, increase initial number of + points from 3 and 5 to 5 and 8. + + * signal/detrend.m: Move tests here from test/test_signal.m. + Loosen tolerance on first test from 10*eps to 20*eps. + + * finance/rate.m: Don't request info from fsolve. + + 2007-12-10 Michael Goffioul + + * plot/__line__.m: Pass initial property/value pairs to __go_line__. + * plot/surface.m: Pass initial property/value pairs to __go_surface__. + + 2007-12-10 David Bateman + + * image/image.m: Rewritten to allow trailing properties to be + passed to underlying image object. + * image/__img__.m: Pass additional arguments to __go_image__. + * plot/__patch__.m: Don't set clim, rely on autoscaling. + + 2007-12-10 John W. Eaton + + * plot/__go_draw_axes__.m: If we have a grid, send "set grid + front" to gnuplot. + + 2007-12-10 David Bateman + + * plot/__go_draw_axes__.m: Issue "set view map" for pcolor, and "set + border front" from images. + * plot/__go_draw_figure__.m: Issue "set autoscale fix" for gnuplot. + * plot/pcolor.m: Set axis "box" property. + * plot/title.m, plot/xlabel.m, plot/ylabel.m, plot/xlabel.m: + Mark as commands. + + 2007-12-07 David Bateman + + * plot/surf.m: Don't set facecolor property. + + 2007-12-06 John W. Eaton + + * plot/print.m: Pass mono to drawnow. + * plot/drawnow.m: New arg, mono. Pass it to __go_draw_figure__. + * plot/__go_draw_figure__.m: New arg, mono. Pass it to __go_draw_axes. + * plot/__go_draw_axes__.m: New arg, mono. If mono is true, + disable color specifications. + + * general/issymmetric.m: Move tests here from test/test_number.m + + 2007-12-06 Jason Riedy + + * general/issymmetric.m: To keep its argument sparse and the + function quick, use the infinity norm rather than the 2-norm. + Also measure the symmetric part rather than the Hermitian part. + * general/ishermitian.m: New file. Measure the Hermitian part. + * general/Makefile.in: Add ishermitian.m to SOURCES. + + 2007-12-04 John W. Eaton + + * plot/__go_draw_axes__.m: Omit "font \"NAME,SIZE\"" in gnuplot + text and label commands if font is "*". + + * linear-algebra/krylov.m: Doc fixes. + From Marco Caliari . + + 2007-12-04 Kai Habel + + * plot/shading.m: Use __plt_get_axis_arg__ for optional axes argument. + Add "## PKG_ADD: mark_as_command axis" line. + + 2007-12-03 John W. Eaton + + * contour.m, contour3.m, contourc.m, contourf.m, cylinder.m, + fplot.m, plot3.m, plotyy.m, quiver3.m, scatter.m, scatter3.m, + slice.m, sombrero.m, stairs.m, stem.m, stem3.m: + Generate demos from examples. + + 2007-12-03 David Bateman + + * testfun/test.m: Disable "testif" test block to avoid spurious + skipped test for "make check". Avoid printing variables for + skipped tests. + + * testfun/test.m: Add "testif" type to allow for conditional tests. + + * plot/plotyy.m: Use activepositionproperty property of axes + object. Set second axis color to "none". + * plot/__go_draw_axes__.m: Respect the activepositionproperty + property of the axis objects. + + 2007-12-03 Thomas Treichl + + * linear-algebra/condest.m: Loosen tolerance in test. + + 2007-12-02 John W. Eaton + + * plot/__go_draw_axes__.m: Remove unnecessary call to + get_data_limits. + + 2007-11-30 John W. Eaton + + * plot/__go_draw_axes__.m: Don't compute data or axis limits. + (get_data_limits, get_axis_limits): Delete. + + 2007-11-30 David Bateman + + * plot/__scatter__.m: Avoid out of bounds varargin element access. + + * plot/__go_draw_axes__.m (do_tics_1): regexprep the cell array of + tick labels rather than one by one on the labels themselves. + * plot/pareto.m: Bug in numerical labels fixed. Bug in search for + 95% crossing fixed. + + 2007-11-29 David Bateman + + * plot/pareto.m: New file. + * plot/Makefile.in (SOURCES): Add it to the sources. + * plot/__go_draw_axes__.m (do_tics1): Replace "%" with "%%" in tic + marks to avoid gnuplot error about formating. More colorspec to + after the tics. + * plot/plotyy.m: More generic check for appropriate axis color. + + * plot/__stem__.m: New file based on old stem.m expanded to treat + 2- and 3-D. + * plot/stem3.m: New function. + * plot/Makefile.in (SOURCES): Add them to the sources. + * plot/stem.m: Adapt to use __stem__. + + 2007-11-29 John W. Eaton + + * plot/contour.m, plot/contour3.m, plot/fill.m, plot/patch.m, + plot/surf.m, plot/surface.m: Don't return handle value unless + requested. + + * plot/patch.m: Omit isnan check on handle returned from + __plt_get_axis_arg__. + + * plot/__plt_get_axis_arg__.m: Don't fail if current figure exists + but has no axes. + + 2007-11-28 David Bateman + + * __plt_get_axis_handle__.m: Also allow hggroup and return axes + ancestor. If leading argument is logical set variable nogca to see + if gca() should be called if there is no active handle found. + * __bar__.m, caxis.m, scatter.m, contourf.m, __axes_limits__.m, + fill.m, surf.m, meshz.m, axis.m, pie.m, contour.m, + quiver.m, area.m, grid.m, cylinder.m, contour3.m, surface.m, + patch.m, scatter3.m, plot.m, sphere.m, quiver3.m, plotyy.m, + xlabel.m, ylabel.m, surfnorm.m, zlabel.m: Adapt to use + __plt__get_axis_arg__ to find axis handle. + * polar.m: Typo. + + 2007-11-28 John W. Eaton + + * plot/__go_draw_axes__.m (get_data_limits): Delete unused arg TX. + + 2007-11-28 Michael Goffioul + + * plot/drawnow.m: Fix typo. + + 2007-11-27 David Bateman + + * plot/errorbar.m, plot/loglog.m, plot/loglogerr.m, plot/polar.m, + plot/semilogx.m, plot/semilogxerr.m, plot/semilogy.m, + plot/semilogyerr.m: Treat an axis handle as the first argument. + + * plot/meshz.m: New function. + * plot/Makefile.in (SOURCES): Add it to the list. + * plot/surface.m: Allow surface to accept an axis handle as the + first argument. + * plot/meshc.m: Extract z from the the surface object rather than + varargin so that we can rely on code in surface to treat leading + axis handles. + + * plot/__go_draw_axes__.m: Add nomirror to "set ytics" and "set + y2tics" in the case of a plotyy plot. + * plot/plotyy.m: ensure the position property is set correct for + the second axis, by setting it after the plot itself. In the case + of a plot that returns multiple handles, base the color selection + on the first. + + 2007-11-27 Kai Habel + + * plot/__go_draw_axes__.m: Set quadrilateral color according to + z-value of vertex 'c3'. + + 2007-11-27 John W. Eaton + + * image/image.m: Allow nargin == 0 case to work again. + + 2007-11-27 David Bateman + + * plot/__go_draw_figure__.m: Force a multiplot mode with a + colorbar, to ensure that the colorbar is on the canvas for png and + postscipt outputs. + + 2007-11-26 David Bateman + + * sparse/spstats.m, statistics/base/mode.m: More care with sparse + return values. + + * plot/plotyy.m: New function + * plot/Makefile.in (SOURCES): Add it here. + * plot/__go_draw_axes__.m: Force axis margins for plotyy. Set text + color for {x|y|z}label and {x|y|z}tics. Also force the label of + {x|y}label to respect the axis position. + * plot/xlabel.m, plot/ylabel.m, plot/zlabel.m: Accept an axis + handle as the first argument. + + * pkg/pkg.m (pkg:install): When loading the installed packages + index into installed_pkgs_lst and not descriptions.. + + * plot/quiver3.m, plot/surfnorm.m, plot/__quiver__.m: New functions. + * plot/Makefile.in (SOURCES): Add them to the sources. + * plot/quiver.m: Modify to use __quiver__.m. + + * plot/hist.m: Avoid saturation when the x values are in an + inetger type. + + 2007-11-26 Jason Riedy + + * linear-algebra/condest.m, linear-algebra/onenormest.m: New + functions. + * linear-algebra/Makefile.in (SOURCES): Add them to the sources. + + 2007-11-26 David Bateman + + * plot/__go_draw_axes__.m: Prevent the cbrange from being of zero + extent. + + * plot/colorbar.m: New function. + * plot/Makefile.in (SOURCES): Add it to the sources. + * plot/__go_draw_axes__.m: Calculate the colorbar position, + precalculate the clim, set pm3d except for mesh. + * plot/__contour__.m: Don't scale the contours to clim, but rather + save the real values so that colorbar corresponds to the contour + levels. + + * plot/stem.m: Set marker color the same as the line color. Draw + a single discontinous line object for the stems. + + * plot/sphere.m: New function ported from JHandles. + * plot/Makefile.in (SOURCES): Add it to the sources. + + * plot/__go_draw_axes__.m: Pass the have_newer_gnuplot arg to + __maybe_munge_text__. Use it to reforce fontname for gnuplot 4.0 + to get enhanced mode to work correctly for the X11 terminal. + + * plot/imagesc.m, plot/image.m: Scale colormap to image and not + the reverse. Allow an axes handle to be passed and/or returned. + * plot/__go_draw_axes__.m: Autoscale colormap for images. + + * plot/__go_draw_axes__.m: Add depthorder flag to "set pm3d" to + sort surface patches by their depth and not the order they are + rendered in. + + * plot/__patch__.m: Set clim correctly. + * plot__go_draw_axes__.m: Allow patch objects to have markers, and + the marker color is determined by the cmap. + * plot/scatter.m: New function to 2D scatter plots. + * plot/scatter3.m: New function to 3D scatter plots. + * plot/__scatter__.m: Support function for scatter plots + * Makefile.in (SOURCES): Ad dnew functions here. + + * plot/drawnow.m (open_gnuplot_stream, init_gnuplot_stream): + Return whether the terminal supports enhanced text or not. + (drawnow:enhanced_term): New sub-function to determine if terminal + supports enhanced mode. + * plot/__go_draw_figure__.m: Accept enhanced flag and pass to + __go_draw_axes__. + * plot/__go_draw_axes__.m: Accept enhanced flag and munge text if + needed to support the enhanced mode. + * plot/print.m: Remove "enhanced" option as this is now treated in + drawnow.m. + + * plot/caxis.m: New function to control the color axis limits. + * plot/Makefile.in (SOURCES): Include it. + * plot/axis.m: Allow the first argument to be an axes handle. + * plot/__go_draw_axes__.m: Move the setting of the caxis, also + autoscale caxis for patches. If any(isinf(clim)) don't set the + caxis limits. + + * image/gmap40.m: New gnuplot 4.0 specific colormap fucntion. + * image/Makefile.in (SOURCES): Include it. + * plot/__bar__.h: Allow axis handles to be passed. Set the color + of the bars for the colormap. + * plot/bar.m, plot/barh.m: Document that axis handles can be + passed. + * plot/__contour.m: Avoid possible divide by zero error. + * plot/contour.m: Missing semicolon. + * plot/surface.m: Don't attempt to set additional arguments if + there are none. + * plot/Makefile.in (SOURCES): Include __bars__.m + + 2007-11-19 Michael Goffioul + + * plot/__bar__.m: put bar creation code into separate function + to allow easy hook up from other graphic backends + + * plot/__bars__.m: new function containing bar creation code + + 2007-11-26 Alexander Barth + + * general/accumarray.m: Correct dimension check. + + 2007-11-26 John W. Eaton + + * polynomial/residue.m: Prepad along second dimension. + From Doug Stewart . + + 2007-11-26 Kai Habel + + * plot/cylinder.m, plot/slice.m: New functions. + * plot/Makefile.in (SOURCES): Add them to the list. + + 2007-11-14 Michael Goffioul + + * plot/patch.m: Handle arg may also be hggroup object. + Use ancestor to find parent axes object. + + 2007-11-14 David Bateman + + * plot/__contour__.m: Treat unclosed contours by adding NaN to + flag to patch that it is not closed. Allow z to take string + arguments and use it to flag that the contours are placed at the + z level of the contour itself. + * plot/__go_draw_axes__.m: Treat hidden line removal in patch + objects as well. Let hidden removal take precedence in case of a + conflict. + * plot/surface.m: Allow surface to treat handles being passed or + returned. Any additional arguments arr used to set the surface + handle. + * plot/contour3.m: New function + * plot/Makefile.in (SOURCES): Add it to the sources. + + 2007-11-14 John W. Eaton + + * specfun/bessel.m: Update doc string from + src/DLD-FUNCTIONS/besselj.cc. + + 2007-11-12 David Bateman + + * plot/contour.m: Allow handles to be passed and returned. Split + the countour function itself into __contour__.m to be shared with + surfc and meshc. + * plot/__contour__.m: New file + * plot/Makefile.in (SOURCES): Add it to the sources. + * plot/__go_draw_axes.m: For patch objects don't attempt to patch + the face or edge if the facecolor or edge color are marked as + "none". Allow the edgecolor to be determined by the cdata in the + same manner as the facecolor. Fail if facecolor is not "none" and + a 3-D plot is desired, rather than ignoring zdata. Make the + storage of 3D/4D data consistent between line, surface and patch + objects. + * plot/meshc.m: Use new __contour__.m to plot the contours. + * plot/surfc.m: Use new __contour__.m to plot the contours. + + * plot/__go_draw_axes__.m (get_fontname_and_size): + Handle fontweight and fontangle properties. + + 2007-11-12 Kai Habel + + * plot/spinmap.m, plot/ribbon.m: New functions. + * plot/Makefile.in (SOURCES): Add them to the list. + + 2007-11-12 John W. Eaton + + * plot/__go_draw_axes__.m (get_fontname_and_size): New subfunction. + Use it to avoid duplicated code. + + 2007-11-12 David Bateman + + * plot/title.m: Fix return value for nargout > 0. + + * plot/__go_draw_axes.m: Allow the font and fontsize to be + specified for the title, xlabel, ylabel and text objects. + + * plot/__go_draw_axes.m: Allow arbitrary colormaps with gnuplot + 4.0 and surface plots. + + 2007-11-12 Michael Goffioul + + * plot/__patch__.m: Fix computation of faces when patch is defined + with X/Y/Z data. + + 2007-11-09 John W. Eaton + + * plot/__go_draw_axes__.m: Correct test for have_data. + Correct logic in setting palette data. + + * audio/wavread.m, control/base/__bodquist__.m, + control/base/dare.m, control/base/dlqr.m, control/hinf/h2norm.m, + control/system/c2d.m, control/system/is_detectable.m, + control/system/is_signal_list.m, control/system/is_stabilizable.m, + control/system/tfout.m, general/isdefinite.m, + linear-algebra/krylov.m, miscellaneous/compare_versions.m, + optimization/glpk.m, path/savepath.m, plot/findobj.m, + plot/shading.m, polynomial/mpoles.m, polynomial/polyint.m, + signal/freqz.m, signal/hurst.m, sparse/spfun.m, sparse/spones.m, + sparse/spstats.m, testfun/assert.m, testfun/fail.m, + testfun/test.m: Use specific end keywords. + + * plot/surfc.m, plot/meshc.m: Don't change view if hold is on. + + 2007-11-09 Kai Habel + + * plot/mesh.m, plot/pcolor.m, plot/surf.m, plot/surface.m: + Don't change view if hold is on. + + 2007-11-09 David Bateman + + * plot/hidden.m: New function. + * plot/Makefile.in (SOURCES): Add it here. + * plot/meshc.m, plot/mesh.m: Set facecolor to White for hidden + line removal. + * plot/__go_draw_axes__.m: If facecolor is white flag hidden line + removal and if it is "none" don't do hidden line removal. + + * plot/legend.m: Also allow labels for surface and patch types. + * plot/__bar__.m: Split into separate patch pbjects to allow + setting of the legend. + * plot/__go_draw_axes__.m: Set titlespec from keylabel for patch + objects as well. + + * plot/area.m, plot/__area__.m: New functions + * plot/Makefile.in (SOURCES): Add them to the list of files. + + * plot/patch.m: Correctly handle case of axis handle as first arg. + + 2007-11-09 Joseph P. Skudlarek + + * sparse/spdiags.m: Tweak documentation entries to match other uses. + + 2007-11-08 John W. Eaton + + * control/base/dcgain.m, control/base/dre.m, + control/base/impulse.m, control/base/step.m, + control/system/dmr2d.m, control/system/ord2.m, + control/system/sys2ss.m, control/system/sysdimensions.m, + control/system/sysgetsignals.m, control/system/sysout.m, + control/system/tfout.m, control/system/ugain.m, + control/system/zpout.m, control/util/strappend.m: + Don't fail with usage message if nargout is too large. + + * control/hinf/h2syn.m, control/hinf/hinf_ctr.m, + control/hinf/hinfnorm.m, control/hinf/hinfsyn.m, + control/hinf/hinfsyn_chk.m, control/hinf/is_dgkf.m, + control/hinf/wgt1o.m, control/obsolete/dezero.m, + control/obsolete/dlqg.m, control/obsolete/minfo.m, + control/obsolete/packsys.m, control/obsolete/qzval.m, + control/obsolete/rotg.m, control/obsolete/series.m, + control/obsolete/swapcols.m, control/obsolete/swaprows.m, + control/obsolete/syschnames.m, control/obsolete/unpacksys.m, + control/system/__syschnamesl__.m, + control/system/__syscont_disc__.m, + control/system/__sysdefioname__.m, control/system/__sysgroupn__.m, + control/system/__tf2sysl__.m, control/system/__zp2ssg2__.m, + control/system/abcddim.m, control/system/buildssic.m, + control/system/c2d.m, control/system/cellidx.m, + control/system/d2c.m, control/system/dmr2d.m, + control/system/fir2sys.m, control/system/is_abcd.m, + control/system/is_controllable.m, control/system/is_detectable.m, + control/system/is_digital.m, control/system/is_observable.m, + control/system/is_stabilizable.m, control/system/is_stable.m, + control/system/jet707.m, control/system/listidx.m, + control/system/parallel.m, control/system/ss.m, + control/system/ss2sys.m, control/system/ss2zp.m, + control/system/starp.m, control/system/sys2ss.m, + control/system/sys2tf.m, control/system/sys2zp.m, + control/system/sysadd.m, control/system/sysappend.m, + control/system/sysconnect.m, control/system/syscont.m, + control/system/sysdimensions.m, control/system/sysdisc.m, + control/system/sysdup.m, control/system/sysgetsignals.m, + control/system/sysgroup.m, control/system/sysmin.m, + control/system/sysmult.m, control/system/sysout.m, + control/system/sysprune.m, control/system/sysreorder.m, + control/system/sysscale.m, control/system/syssetsignals.m, + control/system/syssub.m, control/system/sysupdate.m, + control/system/tf.m, control/system/tf2ss.m, + control/system/tf2sys.m, control/system/tfout.m, + control/system/zp.m, control/system/zp2ss.m, + control/system/zp2sys.m, control/system/zp2tf.m, + control/system/zpout.m, control/util/__outlist__.m, + control/util/__zgpbal__.m, control/util/axis2dlim.m, + control/util/prompt.m, control/util/sortcom.m, + control/util/zgfmul.m, control/util/zgfslv.m, + control/util/zginit.m, control/util/zgreduce.m, + control/util/zgrownorm.m, control/util/zgscal.m: Style fixes. + + 2007-11-08 David Bateman + + * plot/quiver.m: Fix arrowheads. + + 2007-11-07 Ben Abbott + + * set/ismember.m: Call cell_ismember to handle cellstr args. + Handle "rows" argument. New tests. + (cell_ismember): New function. + + 2007-11-07 John W. Eaton + + * control/base/__bodquist__.m, control/base/__freqresp__.m, + control/base/__stepimp__.m, control/base/are.m, + control/base/ctrb.m, control/base/damp.m, control/base/dare.m, + control/base/dcgain.m, control/base/dgram.m, control/base/dlqr.m, + control/base/dre.m, control/base/impulse.m, control/base/lqe.m, + control/base/lqg.m, control/base/lqr.m, control/base/lsim.m, + control/base/ltifr.m, control/base/nichols.m, + control/base/nyquist.m, control/base/obsv.m, control/base/place.m, + control/base/rlocus.m, control/base/step.m, control/base/tzero.m: + Style fixes. + + 2007-11-07 Muthiah Annamalai + + * control/base/bode_bounds.m, control/base/dgram.m, + control/base/dlyap.m, control/base/freqchkw.m, + control/base/gram.m, control/base/place.m, + control/hinf/hinf_ctr.m, control/hinf/hinfsyn_chk.m, + control/hinf/hinfsyn_ric.m, control/system/is_sample.m, + control/system/is_signal_list.m, control/system/ss2tf.m, + control/system/sys2fir.m, control/system/sysgettsam.m, + control/system/sysgettype.m, control/system/sysreorder.m, + control/system/tf2sys.m, control/system/zp2tf.m, + control/util/axis2dlim.m, control/util/swap.m, + control/util/zgfmul.m, control/util/zgfslv.m, + control/util/zginit.m, control/util/zgreduce.m, + control/util/zgrownorm.m, control/util/zgscal.m, + control/util/zgsgiv.m, control/util/zgshsr.m, general/isa.m, + geometry/inpolygon.m, linear-algebra/housh.m, + miscellaneous/compare_versions.m, miscellaneous/inputname.m, + miscellaneous/run.m, quaternion/qconj.m, + quaternion/qcoordinate_plot.m, quaternion/qderiv.m, + quaternion/qderivmat.m, quaternion/qinv.m, quaternion/qmult.m, + quaternion/qtrans.m, quaternion/qtransvmat.m, signal/fractdiff.m, + signal/freqz_plot.m, signal/periodogram.m, signal/rectangle_lw.m, + signal/rectangle_sw.m, signal/sinc.m, signal/triangle_lw.m, + signal/triangle_sw.m, signal/yulewalker.m, sparse/colperm.m, + sparse/etreeplot.m, sparse/nonzeros.m, sparse/spalloc.m, + sparse/spones.m, sparse/spy.m, specfun/isprime.m, + statistics/distributions/empirical_cdf.m, + statistics/distributions/empirical_inv.m, + statistics/distributions/empirical_pdf.m, + statistics/models/logistic_regression_derivatives.m, + statistics/models/logistic_regression_likelihood.m: Check nargin. + + 2007-11-07 David Bateman + + * general/gradient.m: Correctly convert deltax and deltay scalar + values are scalars to vectors. + + * plot/__go_draw_axes__.m: Fix surfaces for gnuplot 4.0 and for + the meshc.m function. + * plot/meshc.m: Also use the surface function. + + * plot/meshc.m, plot/quiver.m, plot/surfc.m, : New files. + * plot/Makefile.in (SOURCES): Add them to the list. + Also add pcolor.m, shading.m, surf.m, and surface.m to the list. + + 2007-11-07 Michael Zeising + + * audio/wavwrite.m, audio/wavwrite.m: Correct sample scaling. + + 2007-11-07 John W. Eaton + + * plot/__go_draw_axes__.m: Also set have_data to false if any of + the data limits are infinite. + (get_data_limits): Don't do anything if xdat or tx are empty. + (get_axis_limits): Don't do anything if min_val or max_val are + infinite. + + 2007-11-06 David Bateman + + * plot/hist.m: Pass any additional arguments to bar for + treatment. Create a default x value that is always a vector. + + 2007-11-06 Thomas Treichl + + * pkg/pkg.m.m: Check for environment variables CC, CXX, AR, RANLIB + when calling ./configure and add quotes to preserve spaces. + + 2007-11-06 Kai Habel + + * plot/pcolor.m, plot/shading.m, plot/surf.m, plot/surface.m: + New files. + * plot/mesh.m: Call surface to do the real work. + * plot/__go_draw_axes__.m: Use pm3d mode to handle new surface + properties. + + * image/colormap.m: Also return current colormap if nargout and + nargin are both 0. + + 2007-11-05 Michael Goffioul + + * startup/inputrc: Delete key bindings starting with \340 code. + + 2007-11-05 David Bateman + + * linear-algebra/__norm__.m: Scale frobenius norm by infinity norm + to avoid issues of over- and underflow. From Rolf Fabian + . + + 2007-11-02 Olli Saarela + + * time/asctime.m, general/structfun.m: Fix broken @examples in + help texts. + + 2007-11-02 Kai Habel + + * plot/bar.m, plot/barh.m: Doc fix. + + 2007-10-31 John W. Eaton + + * plot/__go_draw_axes__.m: Call undo_string_escapes on obj.keylabel. + + 2007-10-31 Michael goffioul + + * plot/subplot.m: Ignore legend objects when parsing existing axes + objects and legend objects are implemented with a separate axes + object. + + 2007-10-30 David Bateman + + * control/base/DEMOcontrol.m: Doc fixes for small book format. + + * plot/__go_draw_axes__.m (do_linestyle_command): + Use point type 0 for ".". + + 2007-10-26 John W. Eaton + + * image/imshow.m: Improve compatibility. + * image/image.m: Return handle if nargou > 0. + + * pkg/pkg.m: Delete PKG_ADD directive for autoloading packes. + + 2007-10-25 John W. Eaton + + * miscellaneous/compare_versions.m: Style fixes. + + 2007-10-24 John W. Eaton + + * image/saveimage.m: Use functional form of save instead of eval. + Use -text instead of -ascii. + + * plot/__go_draw_axes__.m: Handle visible = "off" for axes objects. + + 2007-10-23 Peter A. Gustafson + + * plot/legend.m: Also extract location string from varargin (lost + when 2007-10-08 patch was applied). + + 2007-10-23 David Bateman + + * plot/xlim.m, plot/ylim.m, plot/zlim.m, plot/__axes_limits__.m, + miscellaneous/what.m: New functions + * plot/Makefile.in, miscellaneous/Makefile.in (SOURCES): Add new + functions. + + 2007-10-22 David Bateman + + * miscellaneous/cputime.m, time/tic.m, time/toc.m: Delete. + * miscellaneous/Makefile.in (SOURCES): remove cputim.m + * time/Makefile.in (SOURCES): Remov tic.m and toc.m + + 2007-10-19 Kai Habel + + * plot/contourf.m: New function. + * plot/Makefile.in (SOURCES): Add it to the list. + + 2007-10-19 John W. Eaton + + * plot/subplot.m: Doc fix. + + 2007-10-19 David Bateman + + * plot/__bar__.m, plot/fill.m: Call newplot as needed. + + 2007-10-17 Carlo de Falco + + * plot/print.m: Handle -textspecial and -textnormal flags for fig + output. + + 2007-10-15 Sᅵren Hauberg + + * general/rat.m, sparse/pcg.m, sparse/pcr.m, optimization/sqp.m, + statistics/models/logistic_regression.m, polynomial/polygcd.m, + control/system/ss.m, signal/arch_rnd.m, control/system/ss2sys.m, + control/system/syssetsignals.m, control/base/lqg.m, + strings/str2double.m, control/system/sysscale.m, + control/hinf/hinfdemo.m, general/cplxpair.m: + Make help text fit on pages when using smallbook. + + 2007-10-15 David Bateman + + * plot/print.m: Call drawnow before printing to ensure the plot is + on the screen. + + * testfun/test.m: In error/warning blocks test for an error before + a warning to avoid unexpected failures. + + 2007-10-15 Kim Hansen i + + * testfun/assert.m: Correct documentation of absolution versus + relative error tolerance and add tests. + + 2007-10-14 David Bateman + + * pkg/pkg.m (pkg:configure_make): Treat case of no files to install in + src directory. + * plot/Makefile.in (SOURCES): Add fill.m. + + 2007-10-13 David Bateman + + * plot/__patch__.m: Allow multiple patches to be defined and + return a single patch object. Allow Faces/Vertices form of + patch. Flag failure so the patch can call print_usage. + * plot/patch.m: Update help string for Faces/Vertices + call. Respect the fail flag returned by __patch__. Add demo code + that tests the functionality of patch. + * plot/__go_draw_axes__.m: Treat an array of patches in a single + patch object. + * plot/fill.m: New function. + + 2007-10-12 John W. Eaton + + * Change copyright notices in all files that are part of Octave to + GPLv3 or any later version. + + 2007-10-11 John W. Eaton + + * plot/__go_draw_axes__.m (get_axis_limits): + Return lim = [] if logscale and no positive values. + (__go_draw_axes__): Skip plotting if computed axis limits are empty. + Set initial min and min positive values to Inf, max values to -Inf. + (get_data_limits): Correctly handle xminp when no positive values + are found. + + 2007-10-11 Ben Abbott + + * polynomial/residue.m: New optional input for pole multiplicity. + Doc fix. Fix tests. + + 2007-10-11 Thomas Treichl + + * toplev.cc (Foctave_config_info): Add field "mac". + + * miscellaneous/ismac.m: New function. + * miscellaneous/Makefile.in (SOURCES): Add it to the list. + * miscellaneous/ispc.m, miscellaneous/isunix.m: Doc fix. + + 2007-10-11 Arno Onken + + * statistics/distributions/hygernd.m: Allow size to be specified + as a scalar. Handle three argument case. Allow T, M, and N to be + scalars or matrices of a common size. + + 2007-10-11 Brian Gough + + * control/csrefcard.lt, control/system/is_detectable.m, + control/system/sysgroup.m, geometry/voronoin.m, + miscellaneous/dir.m, sparse/pcg.m, sparse/treeplot.m, + statistics/base/mode.m, statistics/distributions/betarnd.m, + statistics/distributions/binornd.m, + statistics/distributions/cauchy_rnd.m, + statistics/distributions/chi2rnd.m, + statistics/distributions/discrete_rnd.m, + statistics/distributions/exprnd.m, + statistics/distributions/frnd.m, + statistics/distributions/gamrnd.m, + statistics/distributions/geornd.m, + statistics/distributions/laplace_rnd.m, + statistics/distributions/logistic_rnd.m, + statistics/distributions/lognrnd.m, + statistics/distributions/nbinrnd.m, + statistics/distributions/normrnd.m, + statistics/distributions/poissrnd.m, + statistics/distributions/stdnormal_rnd.m, + statistics/distributions/trnd.m, + statistics/distributions/unifrnd.m, + statistics/distributions/wblrnd.m: Spelling fixes. + + 2007-10-10 Thomas Treichl + + * time/tic.m: New optional output value. + + * general/int2str.m: Doc fix. + + 2007-10-10 Arno Onken + + * statistics/distributions/hygecdf.m, + statistics/distributions/hygeinv.m, + statistics/distributions/hygepdf.m, + statistics/distributions/hygernd.m: + Swap order of T and M args for compatibility. + + 2007-10-10 Olli Saarela + + * control/hinf/hinfsyn.m, control/hinf/wgt1o.m, + control/system/buildssic.m, control/system/c2d.m, + control/system/d2c.m, control/system/ord2.m, control/system/ss.m, + control/system/ss2sys.m, control/system/ss2tf.m, + control/system/syscont.m, control/system/sysdimensions.m, + control/system/sysdisc.m, control/system/sysmult.m, + control/system/sysrepdemo.m, control/system/tf2ss.m, elfun/lcm.m, + finance/fv.m, general/cumtrapz.m, general/gradient.m, + general/interp1.m, general/interp2.m, general/interp3.m, + general/interpft.m, general/interpn.m, general/polyarea.m, + general/rat.m, general/structfun.m, general/trapz.m, + geometry/tsearchn.m, image/rgb2hsv.m, linear-algebra/krylov.m, + miscellaneous/ans.m, miscellaneous/gzip.m, optimization/glpk.m, + optimization/sqp.m, plot/findobj.m, plot/legend.m, plot/peaks.m, + plot/plot3.m, plot/stem.m, polynomial/deconv.m, + polynomial/pchip.m, polynomial/spline.m, polynomial/unmkpp.m, + sparse/pcr.m, sparse/spalloc.m, sparse/spconvert.m, + specfun/factor.m, specfun/legendre.m, statistics/base/mean.m, + statistics/base/meansq.m, statistics/base/var.m, + statistics/tests/chisquare_test_independence.m, + statistics/tests/t_test.m, statistics/tests/u_test.m, + strings/dec2base.m, strings/mat2str.m, testfun/speed.m, + testfun/test.m: Spelling fixes. + + 2007-10-10 Ben Abbott + + * polynomial/mpoles.m: Return indx = ordr(indx), not indx(ordr). + + 2007-10-10 John W. Eaton + + * general/num2str.m: Always allow for sign for automatically + computed format widths. + + 2007-10-09 David Bateman + + * plot/patch.m: Accept a handle as the first argument. + + 2007-10-09: Kim Hansen + + * general/repmat.m: Handle sparse input. Add tests. + + 2007-10-09 John W. Eaton + + * audio/wavwrite.m: Accept arguments in compatible order. + + 2007-10-08 David Bateman + + * general/interp2.m: Relax test for values outside the grid to + allow monotonically decreasing abscissa as well. + + 2007-10-08 Ben Abbott + + * polynomial/residue.m: Doc fix. Add tests. Restore multiplicity + as output parameter. + + 2007-10-08 Peter A. Gustafson + + * plot/__go_draw_axes__.m, plot/legend.m: + Handle compatible position specifiers as strings. + + 2007-10-08 John Swensen + + * general/num2str.m: Eliminate extra whitespace in output. + * strings/strtrim.m: New function. + * strings/Makefile.in (SOURCES): Add it to the list. + + 2007-10-06 John W. Eaton + + * polynomial/residue.m: New test from test/test_poly.m. + + 2007-10-06 Sᅵren Hauberg + + * image/saveimage.m: Handle saving color images without a colormap. + * image/__img_via_file__.m: Add missing semicolon. + + 2007-10-06 Bill Denney + + * general/__splinen__.m, general/isscalar.m, general/rat.m, + strings/dec2base.m: Use numel(x) instead of prod(size(x)). + + 2007-10-06 Francesco Potorti` + + * plot/print.m: Handle svg output type. Accept new -S option to + specify size for PNG and SVG output types. + + 2007-10-05 Ben Abbott + + * polynomial/mpoles.m: New function. + * polynomial/residue.m: Modified to behave in reciprocal + manner. No longer compute 4th output, "e". No longer accept + tolerance input. Explicitly set tolerance parameter to 0.001. + Respect maximum relative difference in poles when determining + their multiplicity. Use mpoles to determine the multiplicity of + poles. + + 2007-10-05 Peter A. Gustafson + + * plot/__go_draw_axes__.m: Add cbrange to the plot stream + for surface plots. + + 2007-10-05 John W. Eaton + + * plot/__next_line_color__.m: Get color_rotation from axes + colororder property. + + 2007-10-03 John W. Eaton + + * miscellaneous/dir.m: Handle symbolic links in compatible way. + Use S_ISDIR (st.mode) instead of checking st.modestr(1) == "d". + + * linear-algebra/Makefile.in (SOURCES): Rename norm.m to __norm__.m. + * linear-algebra/__norm__.m: Rename from norm.m. Eliminate + special for __vnorm__. + + 2007-10-03 Quentin Spencer + + * linear-algebra/norm.m: Special case vector 1-norm and 2-norm. + + 2007-10-03 David Bateman + + * pkg/pkg.m (is_architecture_dependent): New function to identify + if a file is architecture dependent based on a list of file + extensions. + (configure_make): Simplify the search for architecture dependent + files based on this function. + (load_pakages_and_dependencies): Also look for bin directory in + the architecture dependent directory. + + 2007-10-03 John W. Eaton + + * miscellaneous/dir.m: Create empty struct with field names. + Include datenum in struct. + + 2007-10-02 David Bateman + + * miscellaneous/ls.m: If nargout return string array of files + returned by ls. + + 2007-10-01 John W. Eaton + + * plot/__go_draw_axes__.m: Use %.15e instead of %.15g when setting + range values. + + 2007-10-01 David Bateman + + * linear-algebra/norm.m: Inline the isvector(x) calculation for + speed with small vectors. + * pkg/pkg.m (archprefix): Set using octave_config_info("libexecdir") + rather than OCTAVE_HOME(). + + 2007-09-30 Ben Abbott + + * plot/findobj.m: New function. + * plot/Makefile.m (SOURCES): Add it to SOURCES. + + 2007-09-26 David Bateman + + * pkg/pkg.m: Add second argument to setting for prefix for + architecture dependent files. Use throughout. + (pkg:issuperuser): New function, use through to check for + root user. + (pkg:getarchprefix): function to give the archiecture dependent + prefix for a package. + (pkg:getarchdir): New function giving location of architetcure + dependent directory. Use through out. + (pkg:install): Treat architecture dependent directory separately + as in might not be a sub-directory of the package directory. + (pkg:uninstall): ditto. + (pkg:create_pkgadddel): Check for global or local install for + architecture dependent directory. + (pkg:finish_installation): ditto. + (pkg:write_INDEX): ditto. + (pkg:load_packages_and_dependencies): ditto. + (pkg:copy_files): ditto. Add step to copy architecture dependent + files to a new location if user is root. + (pkg:rm_rf): Check if file or directory exists before removing. + (pkg:dirempty): Check if directory exists before checking. + + * plot/___patch__.m: Allow face colors to be passed as strings + + * plot/__plt_get_axis_arg__.m: Treat case of empty "varargin" + needed for calls to "hold" without an argument. + + 2007-09-21 John W. Eaton + + * optimization/sqp.m: Fix typo. + + * plot/__go_draw_axes__.m (do_tics_1): Use %g, not %.15g here. + + 2007-09-21 Luther Tychonievich + + * control/hinf/h2norm: Compute d*d', not d'*d. + + 2007-09-21 Thomas Weber + + * statistics/distributions/Makefile.in (SOURCES): Add unidcdf.m, + unidpdf.m and unidinv.m + + 2007-09-18 John W. Eaton + + * plot/__go_draw_axes__.m: Use %.15g throughout. + (do_tics_1): Set numeric axes formats to "%.15g". + + 2007-09-18 David Bateman + + * plot/__go_draw_axes__.m (__gnuplot_write_data__): Use %e instead + of %g when writing data. + + 2007-09-17 John W. Eaton + + * plot/__go_draw_axes__.m: Omit linestyle clause for errorbar plots. + + 2007-09-14 Ulrich Tipp + + * miscellaneous/bincoeff.m: Fix calculation of bincoeff (n, k) for + noninteger N with N-K < 1. + + 2007-08-04 Jean-Francois Cardoso + + * strings/index.m: Correct for strings differing after the third + position (bug reported by Maude Martin). + + 2007-09-13 John W. Eaton + + * plot/__default_colormap__.m: Delete. + * plot/Makefile (SOURCES): Remove from the list. + + 2007-09-13 Christof Zeile + + * pol2cart.m: Make it work with mixed scalar/nonscalar arguments. + + 2007-09-10 David Bateman + + * plot/__go_draw_axes__.m: Allow gnuplot 4.0 with patches, but + limit the selection of colors in the same way as for lines. + * plot/__patch__.m: Allow matrix arguments with one patch per + column. + * plot/__bar__.m: Adapt to use "patch". + + 2007-09-06 John W. Eaton + + * plot/drawnow.m (drawnow): New arg, debug_file. + (init_plot_stream): Split from open_plot_stream. + * plot/print.m: Accept -debug=FILE argument. + + 2007-09-06 David Bateman + + * general/celldisp.m: New function. + * general/Makefile.in (SOURCES): Add celldisp.m. + * miscellaneous/swapbytes.m: New function. + * miscellaneous/gzip.m: New function. + * miscellaneous/Makefile.in (SOURCES): Add swapbytes.m and gzip.m. + + 2007-09-05 David Bateman + + * general/structfun.m: New function. + * general/Makefile.in (SOURCES): Add it to sources. + * miscellaneous/run.m: New function. + * miscellaneous/Makefile.in (SOURCES): Add it to sources. + * statistics/base/mode.m: New function. + * statistics/base//Makefile.in (SOURCES): Add it to sources. + + 2007-09-05 John W. Eaton + + * miscellaneous/orderfields.m: Use numel instead of length. + + 2007-09-05 Michael goffioul + + * miscellaneous/orderfields.m: Handle empty structs. + + 2007-09-05 John W. Eaton + + * plot/__go_draw_axes__.m: Consistently index PARAMETRIC with + DATA_IDX. + + 2007-09-04 David Bateman + + * general/isdir.m: Return a logical value. + + 2007-09-04 David Bateman + + * statistics/distributions/chi2pdf.m, + statistics/distributions/chi2cdf.m, + statistics/distributions/chi2inv.m: Modifiy the call to the gamma + distribution functions to account for inverse of scale factor in + gamma functions. + + 2007-09-01 John W. Eaton + + * plot/Makefile.in (SOURCES): Add ancestor.m to the list. + + 2007-09-01 David Bateman + + * polynomial/polyint.m: New function like polyinteg but with + explicit integration constant. + * polynomial/polyinteg.m: Remove. + * polynomial/Makefile.in (SOURCES): Add polyint.m and remove + polyinteg.m. + * deprecated/polyinteg.m: Move version here. + * deprecated/Makefile.in (SOURCES): Add polyinteg.m. + + * geometry/voronoi.m: Add large box around data to get a good + approximation of the rays to infinity. + + 2007-08-31 Michael goffioul + + * plot/axes.m: Allow parent to be specified when creating axes + objects. Support non-figure parents. + + 2007-08-31 John W. Eaton + + * plot/ancestor.m: New function, adapted from Octave Forge. + + 2007-08-31 Sᅵren Hauberg + + * polynomial/polygcd.m: Better layout of example. + * polynomial/compan.m: Remove unnecessary check. + * polynomial/roots.m: Added example to help text. + * polynomial/polyderiv.m: Change 'polyder' to 'polyderiv' in help text. + * polynomial/poly.m: Added example to help text. + + 2007-08-30 John W. Eaton + + * optimization/qp.m: Increase maxit to 200. + + 2007-08-30 David Bateman + + * geometry/inpolygon.m: New file. + * geometry/Makefile.in (SOURCES): Add inpolygon.m. + + 2007-08-29 Peter A. Gustafson + + * plot/__go_draw_axes__.m: Disable linetype in do_linestyle_command. + + 2007-08-24 David Bateman + + * plot/__go_draw_axes__.m: Treat text color property. + + 2007-08-24 John W. Eaton + + * plot/subplot.m, plot/plot.m, plot/grid.m: + Use p = get (h, "prop") instead of obj = get (h); p = obj.prop. + + * miscellaneous/movefile.m: Separate second and third args and + use p1 and p2, not f1 and f2 when constructing arguments for + calls to system. From Michael Goffioul . + + 2007-08-24 Michael Goffioul + + * set/intersect.m: Make it work with cell arrays of strings. + + 2007-08-24 David Bateman + + * geometry/convhull.m, geometry/delaunay.m, geometry/delaunay3.m, + geometry/griddata.m, geometry/voronoi.m, geometry/voronoin.m: New + functions ported from octave-forge. + * geometry/delaunayn.m, geometry/dsearch.m, geometry/dsearchn.m, + geometry/griddata3.m, geometry/griddatan.m, geometry/trimesh.m, + geometry/triplot.m, geometry/tsearchn.m: + New functions. + * geometry/voronoi.m: Remove duplicate edges from Voronoi diagram. + * geometry/Makefile.in (SOURCES): Add functions above. + * configure.in (AC_CONFIG_FILES): Add new file geometry/Makefile. + + 2007-08-23 John W. Eaton + + * pkg/pkg.m: Avoid using installed_packages for both function and + variable name. + + 2007-08-23 David Bateman + + * plot/plot.m: Allow first arg to be axes handle. + + 2007-08-22 David Bateman + + * control/base/nichols.m: Correct for misnamed variable, and ensure + outputs are returned only if requested. + + 2007-08-22 Donald Parsons + + * control/base/nichols.m: Fix typo. + + 2007-08-13 John W. Eaton + + * plot/meshgrid.m: Use repmat instead of multiplication. + + 2007-08-10 Peter A. Gustafson + + * plot/__go_draw_axes__.m: Add axes position to the usingclause, + use axes position in each appropriate gnuplot set statement. + + 2007-08-10 John W. Eaton + + * image/Makefile.in (DISTFILES): Also include $(IMAGES) in the list. + (install install-strip): Use $(IMAGES), not $(IMAGE_FILES_NO_DIR). + (uninstall): Use $(IMAGES), not $(IMAGE_FILES_NO_DIR). + (IMAGE_FILES, IMAGE_FILES_NO_DIR): Delete obsolete variables. + + 2007-08-10 Kai Habel + + * plot/patch.m, plot/__patch__.m: New files. + * plot/Makefile.in (SOURCES): Add them to the list. + + 2007-08-07 John W. Eaton + + * path/savepath.m: Use single quotes for argument to PATH command + that is inserted in file. + + 2007-07-27 John W. Eaton + + * plot/drawnow.m: Only set default value for term if GNUTERM is + not set in the environment. + + 2007-07-25 David Bateman + + * Makefile.in, audio/Makefile.in, control/Makefile.in, + control/base/Makefile.in, control/hinf/Makefile.in, + control/obsolete/Makefile.in, control/system/Makefile.in, + control/util/Makefile.in, deprecated/Makefile.in, + elfun/Makefile.in, finance/Makefile.in, general/Makefile.in, + image/Makefile.in, io/Makefile.in, linear-algebra/Makefile.in, + miscellaneous/Makefile.in, optimizaton/Makefile.in, + path/Makefile.in, pkg/Makefile.in, plot/Makefile.in, + polynomial/Makefile.in, quaternion/Makefile.in, + set/Makefile.in, signal/Makefile.in, sparse/Makefile.in, + specfun/Makefile.in, special-matrix/Makefile.in, + startup/Makefile.in, statistics/Makefile.in, + statistics/base/Makefile.in, statistics/distributions/Makefile.in, + statistics/models/Makefile.in, statistics/tests/Makefile.in, + strings/Makefile.in, testfun/Makefile.in, time/Makefile.in: + Adjust DISTFILES to allow out of tree "make dist" to work. + + 2007-07-25 John W. Eaton + + * plot/__plt2__.m: Return [](0x1) if both X and Y are empty. + + 2007-07-24 David Bateman + + * image/flag.m: New colormap function. + * images/Makefile.in: Include it in SOURCES. + + * image/autumn.m image/bone.m image/cool.m image/copper.m + image/hot.m image/hsv.m image/jet.m image/pink.m image/prism.m + image/rainbow.m image/spring.m image/summer.m image/white.m + image/winter.m, image/brighten.m: Use isscalar and not is_scalar. + * image/gray.m, image/ocean.m: Use the same means of finding the + number of colormap elements as the other colormap functions. + + 2007-07-24 Kai Habel + + * plot/__go_draw_axes__.m: Handle patch. + + 2007-07-23 David Bateman + + * general/rat.m: New function for ration approximation imported + from octave-forge. + * general/del2.m: New function for discrete laplacian operator. + * general/Makefile.in: Include rat.m and del2.m in SOURCES. + + * image/autumn.m image/bone.m image/cool.m image/copper.m + image/hot.m image/hsv.m image/jet.m image/pink.m image/prism.m + image/rainbow.m image/spring.m image/summer.m image/white.m + image/winter.m, image/brighten.m: Port image functions from + octave-forge. + * image/Makefile.in: Add ported functions to SOURCES. + * image/gray.m, image/ocean.m: Don't set the colormap for + compatibility with matlab. + + * plot/meshc.m, plot/peaks.m: Port plotting function from + octave-forge + * plot/Makefile.in: Add ported functions to SOURCES. + * plot/__go_draw_axes__.m: Set the palette for the surfaces if + using gnuplot 4.2 or greater. + + 2007-07-23 Claudio Belotti + + * general/cart2sph.m: Fix unbalanced paranthesis. + + 2007-07-19 David Bateman + + * plot/fplot.m: More compatible version. + + 2007-07-18 Michael Goffioul + + * plot/clf.m: Check for valid handle before deleting. + + * plot/figure.m: Pass "figure" property/value pairs directly to + __go_figure__ instead of using regular "set" call. + + 2007-07-18 Paul Kienzle + + * plot/drawnow.m: Prefer GNUTERM to DISPLAY when choosing terminal + type for gnuplot. + + 2007-07-18 John W. Eaton + + * plot/__go_draw_axes__.m: Unconditionally send "unset label" to + gnuplot for each set of axes. + + 2007-07-18 David Bateman + + * statistics/distributions/gamcdf.m, statistics/distributions/gaminv.m, + statistics/distributions/gampdf.m, statistics/distributions/gamrnd.m, + statistics/distributions/expcdf.m, statistics/distributions/expinv.m, + statistics/distributions/exppdf.m, statistics/distributions/exprnd.m: + Use standard scale factor rather than one on the scale factor for + compatibility. + + * deprecated/gamma_cdf.m, deprecated/gamma_inv.m, + deprecated/gamma_pdf.m, deprecated/gamma_rnd.m, + deprecated/exponential_cdf.m, deprecated/exponential_inv.m, + deprecated/exponential_pdf.m, deprecated/exponential_rnd.m: + Preserve backward compatibility. + + 2007-07-17 Michael Goffioul + + * pkg/pkg.m (pkg:installed_packages): Use findstr rather than regexp + to avoid issues with regexp special characters in the path strings. + + 2007-07-06 David Bateman + + * general/accumarray.m: New function to create an array by + accumulating the elements. + + 2007-06-29 Marcus W. Reble + + * optimization/sqp.m (sqp): New args, lb, ub, maxiter, and tolerance. + (fdjac): Set nx outside of if block. + (cf_ub_lb, cigrad_ub_lb): New subfunctons. + + 2007-06-28 Michael Goffioul + + * plot/subplot.m: Add 'ishandle' check when parsing the existing axes. + + * plot/axis.m: Also set "visible" property when setting axes to + on/off. + + 2007-06-27 Michael Goffioul + + * image/colormap.m: Only return colormap if nargout > 0. + Mark as command. + + 2007-06-25 John W. Eaton + + * plot/drawnow.m, plot/__go_draw_axes__.m: Use strcmpi instead of + strcmp for selected property comparisons. + + 2007-06-25 Sᅵren Hauberg + + * image/imshow.m: Fix check for colormap arguments. + + 2007-06-25 Joel Keay + + * plot/drawnow.m: Handle GNUTERM=aqua if DISPLAY is not set. + + 2007-06-25 Sᅵren Hauberg + + * statistics/base/median.m: Update help text to mention 'dim' + argument, and note that the data should be sorted for the + definition of the median to be correct. + + * statistics/base/std.m: Add missing square to definition of + standard deviation. + + * statistics/base/cov.m: Add definition of covariance to the help text. + + * statistics/base/kurtosis.m, statistics/base/skewness.m, + statistics/base/std.m: + Note that \bar{x} is the mean value of x in the help text. + + * specfun/nchoosek.m: Add alternative definition of the binomial + coefficient to the help text. + + * specfun/perms.m, statistics/base/values.m: Add example in help text. + + * statistics/base/var.m: Put N in @math in help text. + + * statistics/base/qqplot.m, statistics/base/ppplot.m, + statistics/tests/kolmogorov_smirnov_test.m: + Write about possible values of 'dist' in help text. + + * statistics/base/corrcoef.m, statistics/base/cor.m: + Add definition of correlation to the help text. + + * statistics/base/logit.m, statistics/base/kendall.m, + statistics/base/cloglog.m, statistics/tests/hotelling_test_2.m, + statistics/distributions/wblcdf.m, statistics/distributions/wblpdf.m: + TeXification of help text. + + * statistics/tests/hotelling_test.m: Write T^2 in @math in help text. + + * statistics/tests/var_test.m, statistics/tests/welch_test.m: + Add missing @var's to help text. + + * statistics/models/logistic_regression.m: Fix typos in help text. + + * statistics/distributions/kolmogorov_smirnov_cdf.m: Fix TeX part + of help text. + + * statistics/distributions/unidinv.m: Add a missing 'discrete' to + help text. + + * statistics/distributions/unidpdf.m, + statistics/distributions/discrete_pdf.m: + Replace 'pDF' with 'PDF' in help text. + + 2007-06-25 John W. Eaton + + * strings/substr.m: Use offset consistently in code and doc string. + From Rafael Laboissiere . + + 2007-06-25 Pete Gustafson + + * plot/__go_draw_axes__.m: Handle units for text objects. + + 2007-06-25 John W. Eaton + + * plot/__go_draw_axes__.m: Handle char arrays for tic labels. + Recycle tic labels if necessary. From Juhani Saastamoinen + . + + 2007-06-20 John W. Eaton + + * strings/index.m: Allow strings to be empty. + From Hartmut Wziontek + + * plot/__go_draw_axes__.m (do_tics_1): Fix typo (xtic -> tics). + + 2007-06-19 Vittoria Rezzonico + + * sparse/pcg.m: Allow the preconditioner to be passed as two + separate matrices. + + 2007-06-19 David Bateman + + * plot/axis.m: Prefer to use legend rather than the older Octave + only ";;" legend syntax. + * polynomial/mkpp.m: ditto. + * polynomial/pchip.m: ditto. + * signal/freqz_plot.m: ditto. + * sparse/gplot.m: ditto. + * sparse/treeplot.m: ditto. + + 2007-06-19 John W. Eaton + + * plot/__go_draw_axes__.m (do_tics, do_tics_1): New functions. + (__go_draw_axes__): Call do_tics to handle tic marks. + + 2007-06-18 Sᅵren Hauberg + + * general/interp1.m, general/interp2.m, general/interp3.m, + general/interpn.m: Replace, NaN with NA. Use isna instead of == + to check for NA. + + 2007-06-18 Sᅵren Hauberg + + * optimization/glpk.m: TeXified the help text. + * optimization/qp.m: TeXified the help text. + * optimization/sqp.m: TeXified the help text. + + 2007-06-16 Sᅵren Hauberg + + * plot/legend.m: Replace 'vargin' with 'varargin'. + + 2007-06-15 John W. Eaton + + * plot/__go_draw_axes__.m: Only attempt label rotation if + have_newer_gnuplot is true. + + 2007-06-15 Pete Gustafson + + * plot/__go_draw_axes__.m Handle rotation arg for axis labels. + * plot/__axis_label__.m Assign ylabel default rotation property + to 90, all others 0. + + * plot/__errplot__.m: Set ifmt from fmt.linestyle. + * plot/__go_draw_axes__.m: Removed undefined tx from call to + get_data_limits. + * plot/__plotopt1__.m: Intercept and strip format string when + called by __errplot__. + + 2007-06-15 John W. Eaton + + * testfun/test.m: Also return number of expected failures. + + 2007-06-14 John W. Eaton + + * set/ismember.m: Mark two tests known to fail with xtest. + + * plot/__go_draw_axes__.m: Handle text rotation property. + + 2007-06-14 Paul Kienzle + + * testfun/test.m: Add xtest support for tests known to fail. + + 2007-06-14 Sebastian Schubert + + * plot/print.m: Handle pstex, pslatex, epslatex, and + epslatexstandalone terminals. + + 2007-06-14 David Bateman + + * general/__splinen__.m: Check also for ND vectors. Fix for N > 2, + as permutation of results was incorrect. + * general/interp1.m: Add demo on second derivative + * general/interpn.m: Convert "y" to vectors for __splinen__ + call. Add 3D demo. Fix typos + * general/interp3.m: Fix typos. Correct permutation for use of + interpn. + * polynomial/mkpp.m: Correction for matrices of 3 or more dimensions. + + 2007-06-13 John W. Eaton + + * miscellaneous/mkoctfile.m: Quote args too. + + 2007-06-13 Michael Goffioul + + * miscellaneous/mkoctfile.m: Quote script name for call to system. + + 2007-06-12 Michael Goffioul + + * plot/__pltopt1__.m: Set linestyle to "none" instead of "". + Set have_linestyle to true if two character linestyle is found. + + 2007-06-12 David Bateman + + * general/Makefile.in (SOURCES): Include __spline__.m, interp3.m + and interpn.m. + + * pkg/pkg.m (pkg:load_package_dirs): Check for field "loaded" in + structure before using it. + + 2007-06-12 David Bateman + + * general/interp1.m: Change examples to use new graphics interface. + * general/__splinen__.m: New support function for N-dimensional + spline interpolation. + * general/bicubic.m: Allow definition of extrapolation + value. Adapt tests to use new graphics interface + * general/interp2.m: Call __splinen__ for 2-D spline + interpolation. Make the lookup table code only be called for + linear and nearest methods. + * general/interpn.m: New function for N-dimensional, linear, nearest + and spline interpolation. + * general/interp3.m: New function for 3-dimensional, linear, nearest + and spline interpolation. + * polynomial/spline.m: Change examples to use new graphics interface. + + 2007-06-12 Steve M. Robbins + + * statistics/tests/wilcoxon_test.m: Error if N <= 25. + + 2007-06-12 Sᅵren Hauberg + + * plot/fplot.m: If function is inline, vectorize it. + + 2007-06-10 David Bateman + + * pkg/pkg.m (pkg:installed_packages): truncate start of package + directory if need to, so that it fits on a line. + + 2007-06-07 David Bateman + + * pkg/pkg.m (pkg): For rebuild target, force package order in + saved file so that dependent packages are loaded first, and if + nargout==0 don't return any arguments. + (pkg:install): Only load packages that are marked autoload after + install. Various fixes. Save in order. + (pkg:uninstall): Save in order + (pkg:load_packages): Use load_package_and_dependencies to load + packages. + (pkg:save_order): New function to sort package list with dependent + packages first. + (pkg:load_packages_and_dependencies): New function to load both a + list of packages and their dependencies. + (pkg:load_package_dirs): New function that returns a vector of the + indexes into the installed package list indicating the packages to + load and the order to load them in to respect the dependencies. + + 2007-06-03 Sᅵren Hauberg + + * plot/axes.m: Eliminate redundant else clause. + + 2007-06-03 David Bateman + + * polynomial/spline.m: Add a small tolerance to spline tests. + * pkg/pkg.m: Protect against multiple actions being define. + + 2007-06-01 David Bateman + + * pkg.m (pkg:is_superuser): Remove function used in one place and + incorporate into main pkg function. + (pkg:install): Check for existence of files to install before + globbing and warn the user if they don't exist. + + 2007-05-31 David Bateman + + * miscellaneous/copyfile.m: Split copying of multiple files to a + directory over several copy command to limit the line length. + * miscellaneous/movefile.m: Ditto. + + * pkg.m: Add build option to allow binary Octave packages to be + built from source packages. Probe absolute path of prefix, global + and local lists. Use strcat, rather that [] for strings. + (pkg:build): New function to binary binary package. + (pkg:absolute_pathname): Use fileattrib to probe absolute path. + (pkg:repackage): Package binary Octave package from installation. + (pkg:create_pkgadddel): Extract PKG_ADD and PKG_DEL directives + from m-files into main installation directory. + (pkg:shell): Suppress verbose messages from shell and only display + them with the verbose flag. + (pkg:installed_packages): Also include the loaded flag in the + local and global packages. + (pkg:uninstall): On uninstall, only rmpath the package if it is + flagged as loaded. + + 2007-05-31 Michael Goffioul + + * pkg.m (pkg:load_packages): Correctly load a mix of packages + with and without architecture dependent directories. + (pkg:installed_packages): Probe the global_list file even if it is + the same as the local_list. + + 2007-05-29 John W. Eaton + + * sparse/spy.m: Set axis to "ij" mode. + + 2007-05-24 John W. Eaton + + * set/ismember.m: Quote first arg of "fail" tests. + + 2007-05-24 David Bateman + + * pkg/pkg.m (pkg:rebuild): Thinko in rebuild logic. + + 2007-05-22 David Bateman + + * pkg/pkg.m: Use rethrow(lasterror()) throughout rather than + error(lasterr()(8:end)). + (pkg:install): Warning for empty packages being removed. Suppress + spurious output. Warning rather than error for uninstalling a + package that is not installed to avoid RPM issue. + (pkg:configure_make): Fix for parsing of src/FILES. Don't create + inst or architecture dependent directory if it exists. + + 2007-05-22 Thomas Weber + + * ChangeLog, control/system/is_stabilizable.m, general/bicubic.m, + image/ind2gray.m, image/saveimage.m, plot/box.m, plot/grid.m, + signal/freqz.m: Fix typos. + + 2007-05-21 David Bateman + + * pkg/pkg.m: Add rebuild target, and -local, -global option to + force installation location. + (rebuild): New subfunction to rebuild package database from + installed packages. Also allows changing of autoload status + (install): Warn use if attempting to install from non existent + file. + (issuperuser): Use 'geteuid() == 0' instead of 'strcmp (getenv( + "USER", "root"))' for root test. + + 2007-05-21 Michael Goffioul + + * miscellaneous/copyfile.m: check for cp.exe on Windows platforms + and replace "\" characters with "/". + * pkg/pkg.m: Use shell rather than system throughout. Replace "\" + characters with "/" throughout. + (shell): New subfunction that wraps system and is careful with the + shell on windows platforms. + (configure_make): Explictly pass complier etc to configure + process. + (issuperuser): Force default to global install for Windows machines. + + 2007-05-19 Kristan Onu + + * plot/Makefile.in (SOURCES): Remove hbar.m and add barh.m. + + 2007-05-18 David Bateman + + * pkg/pkg.m (install): More verbosity. + (configure_make): Ditto. + (create_pkgadddel): Install in architecture dependent directory if + it exists to address issues with autoload/mfilename. + (write_INDEX): Check in archiecture dependent directories as well. + + 2007-05-17 David Bateman + + * plot/hbar.m: Remove. + * plot/barh.m: and move it here. + + 2007-05-16 Sᅵren Hauberg + + * general/sub2ind.m, general/ind2sub.m: Doc fix. + + 2007-05-16 John W. Eaton + + * general/logspace.m: Return second arg if fewer than two values + are requested. + + 2007-05-14 John W. Eaton + + * plot/__go_draw_figure__.m: Ensure that a reset commands starts + on a new line. + + 2007-05-14 Tarmigan Casebolt + + * statistics/distributions/norminv.m, + statistics/distributions/norminv.m, + statistics/distributions/normpdf.m, + statistics/distributions/normrnd.m: + Use standard deviation, not variance. + * statistics/distributions/lognpdf.m: Adapt to change in norminv. + * statistics/distributions/logninv.m: Refer to norminv, not normal_inv. + * deprecated/normal_cdf.m, deprecated/normal_inv.m, + deprecated/normal_pdf.m, deprecated/normal_rnd.m: Preserve + backward compatibility. + + 2007-05-14 David Bateman + + * pkg/pkg.m: Mark loaded packages with "*". + + 2007-05-13 Sᅵren Hauberg + + * miscellaneous/single.m: Doc fix. + Convert to double instead of returning argument unchanged. + + * miscellaneous/doc.m: Doc fix. + + * miscellaneous/ver.m: Doc fix. + Don't display information about Octave Forge. + + 2007-05-12 David Bateman + + * pkg/pkg.m: Add a "-verbose" option that allows all output of an + install to be printed. An error in the on_uninstall script causes + a failure to uninstall. Place oct- and mex-files in an + architecture dependent directory. + + 2007-05-09 John W. Eaton + + * plot/__go_draw_axes__.m: Break plot command over multiple lines. + + 2007-05-09 G. D. McBain + + * statistics/distributions/normcdf.m: Use standard deviation + instead of variance for compatibility. + + 2007-05-08 John W. Eaton + + * set/unique.m, set/ismember.m: Use numel(x) instead of prod(size(x)). + + * set/ismember.m: Always return logical values. + + * set/ismember.m: Return early if no matches are found. New tests. + From David Grohmann . + + * general/__isequal__.m: Allow numeric values of different classes + to compare equal. + + 2007-05-07 David Bateman + + * sparse/spy.m: Reverse Y axis for new graphics code. Make more + compatiable, accepting LineSpec and markersize arguments. + + 2007-05-02 John W. Eaton + + * plot/__go_draw_axes__.m: Convert NA to NaN before writing. + + 2007-05-02 G. D. McBain + + * contour.m: Rewrite help string. + + 2007-04-28 John W. Eaton + + * miscellaneous/unzip.m, miscellaneous/untar.m, + miscellaneous/bunzip2.m, miscellaneous/gunzip.m: + Special case nargout == 0. + + 2007-04-27 Kim Hansen + + * general/sub2ind.m: Handle empty input, add tests. + + 2007-04-27 G. D. McBain + + * plot/contourc.m: Doc fix. + + 2007-04-26 David Bateman + + * plot/hist.m: Partially remove previous patch. + + 2007-04-26 David Bateman + + * plot/hist.m: Support returning of handle + * plot/__bar__.m: __pltopt__ should only be called on strings or + cells. + + 2007-04-25 John W. Eaton + + * plot/__go_draw_axes__.m: For images, set titlespec{data_idx} to + "title \"\"", not "". + + * plot/legend.m: Initialize WARNED to false. + + 2007-04-24 John W. Eaton + + * io/beep.m: Fix cut and paste error. + From Sᅵren Hauberg . + + 2007-04-23 John W. Eaton + + * plot/box.m: Delete extra endfunction keyword. + + 2007-04-23 David Bateman + + * plot/plot3.m: Call newplot. + + 2007-04-20 John W. Eaton + + * plot/Makefile.in (SOURCES): Fix typo in adding __bar__.m to the list. + + 2007-04-19 John W. Eaton + + * miscellaneous/unpack.m: Use gzip -d and bzip2 -d instead of + gunzip and bunzip. From Michael Goffioul . + + 2007-04-19 A. S. Hodel + + * control/util/axis2dlim.m: Delete extraneous line. + + 2007-04-18 John W. Eaton + + * specfun/factorial.m: Increase tolerance in large value test. + + 2007-04-18 David Bateman + + * __bar__.m: New support function for bar/hbar to support graphic + handles, and additional arguments. + * bar.m: Convert to use __bar__. + * hbar.m: New function + * hist.m: Explicitly set the width of the bar plot. + + 2007-04-17 John W. Eaton + + * plot/stem.m (stem_line_spec): Pass false as third arg to __pltopt__. + + * set/ismember.m: New tests. + From David Grohmann + + 2007-04-17 Paul Kienzle + + * specfun/factorial.m: Use gamma function instead of cumprod. + Add tests. + + 2007-04-16 John W. Eaton + + * gethelp.cc (looks_like_octave_copyright): Use same logic as in + looks_like_copyright in src/help.cc. + From Sᅵren Hauberg . + + * plot/__go_draw_axes__.m: For log plots, omit zero values too. + + 2007-04-13 John W. Eaton + + * optimization/sqp.m: Initialize info to 0. + + * optimization/qp.m: Undo previous change. + + 2007-04-13 Geordie McBain + + * spdiags.m: Fixed the four-argument case to work for columns of + length one. + + 2007-04-12 John W. Eaton + + * optimization/qp.m: Avoid Octave indexing bug. + + 2007-04-12 Carlo de Falco + + * miscellaneous/menu.m, control/base/bddemo.m, + control/hinf/dgkfdemo.m, control/system/packedform.m, + control/system/sysrepdemo.m: + Adapt to page_screen_output as a function. + + 2007-04-11 John W. Eaton + + * miscellaneous/not.m: Delete. + * miscellaneous/Makefile.in (SOURCES): Delete it from the list. + + 2007-04-11 A. S. Hodel + + * control/util/axis2dlim.m: Try harder to handle min and max vals + that are close but not exactly equal. + + 2007-04-11 David Bateman + + * general/bitcmp.m: Make it work again. + + 2007-04-10 John W. Eaton + + * plot/__go_draw_axes__.m: Try harder to handle min and max vals + that are close but not exactly equal. + + 2007-04-09 Daniel J. Sebald + + * plot/stem.m: Add back the baseline line and let it be not adjustable + in response to a change in x limits for now. + + 2007-04-09 John W. Eaton + + * plot/__go_draw_axes__.m (__gnuplot_write_data__): New function. + (__go_draw_axes__): Use it to write data to plot stream. + + 2007-04-09 Daniel J Sebald + + * plot/stem.m: Fix typos in doc string. Fix typo in call to + zeros. Set markerfacecolor property in call to plot. + + 2007-04-06 John W. Eaton + + * linear-algebra/norm.m: Use new __vnorm__ function for vector args. + + 2007-04-06 Daniel J Sebald + + * plot/stem.m: Use plot instead of a series of calls to line. + + 2007-04-05 John W. Eaton + + * sparse/nonzeros.m, sparse/normest.m, sparse/spconvert.m, + sparse/spdiags.m, sparse/speye.m, sparse/spfun.m, sparse/spones.m, + sparse/sprand.m, sparse/sprandn.m, sparse/sprandsym.m, + sparse/spstats.m, sparse/treeplot.m: Style fixes. + + * pkg/pkg.m: Use "strcat (...)" instead of "[...]". + Use strcmpi instead of strcmp+tolower. + Style fixes. + + * testfun/speed.m: Use "strcat (...)" instead of "[...]". + Plotting fixes. Style fixes. + + * testfun/test.m: Use "strcat (...)" instead of "[...]". + Style fixes. + + * testfun/fail.m: No need to check for evalin and lastwarn. + Style fixes. + + * testfun/demo.m, testfun/example.m: Style fixes. + Use "strcat (...)" instead of "[...]". + Use format specifiers in calls to warning. + + * testfun/assert.m: Use "numel (x)" instead of "prod (size (x))". + Use "strcat (...)" instead of "[...]". + Use "x(end)" instead of "x(length (x))". + Check NA before NaN. + Style fixes. + + 2007-03-29 John W. Eaton + + * plot/stem.m (stem, set_default_values): Use RGB triple for color. + + 2007-03-27 John W. Eaton + + * Makefile.in, audio/Makefile.in, control/Makefile.in, + control/base/Makefile.in, control/hinf/Makefile.in, + control/obsolete/Makefile.in, control/system/Makefile.in, + control/util/Makefile.in, deprecated/Makefile.in, + elfun/Makefile.in, finance/Makefile.in, general/Makefile.in, + image/Makefile.in, io/Makefile.in, linear-algebra/Makefile.in, + miscellaneous/Makefile.in, optimization/Makefile.in, + path/Makefile.in, pkg/Makefile.in, plot/Makefile.in, + polynomial/Makefile.in, quaternion/Makefile.in, set/Makefile.in, + signal/Makefile.in, sparse/Makefile.in, specfun/Makefile.in, + special-matrix/Makefile.in, startup/Makefile.in, + statistics/Makefile.in, statistics/base/Makefile.in, + statistics/distributions/Makefile.in, + statistics/models/Makefile.in, statistics/tests/Makefile.in, + strings/Makefile.in, testfun/Makefile.in, time/Makefile.in: + Use ln instead of $(LN_S) in dist target. + + 2007-03-27 David Bateman + + * plot/__go_draw_axes__.m: Allow linewidth settings to work with + gnuplot 4.0. + + 2007-03-26 John W. Eaton + + * plot/__go_draw_axes__.m: Send image data to gnuplot via plot stream. + + 2007-03-26 Daniel J Sebald + + * plot/__go_draw_axes__.m: Always end palette data to gnuplot via + plot stream and using binary data. + + 2007-03-26 John W. Eaton + + * plot/__plt1__.m, plot/__plt2__.m, plot/__plt2mm__.m, + lot/__plt2mv__.m, plot/__plt2ss__.m, plot/__plt2vm__.m, + plot/__plt2vv__.m: Accept properties in addtition to options struct. + + 2007-03-26 David Bateman + + * plot/__go_draw_axes__.m: Send "set ticslevel 0" to plot stream. + + * plot/plot3.m: Handle line properties. + * plot/plot.m: Update docstring. + * plot/__plotopt__.m, plot/__pltopt1__.m: New arg, err_on_invalid. + * plot/__plt__.m: Also gather properties. + + 2007-03-26 Kim Hansen + + * testfun/assert.m: Delete special check for empty objects. + Add test. + + 2007-03-26 John W. Eaton + + * plot/drawnow.m: Exit early if call is recursive. + + * plot/__go_draw_axes__.m (get_data_limits): New function. + Check for Inf too. + (__go_draw_axes__): Use get_data_limits. + + 2007-03-24 John W. Eaton + + * plot/drawnow.m: If GNUTERM is set to wxt in the environment, + send terminal setting command with title option to plot stream. + + * plot/legend.m: Correctly increment index into list of children.. + + 2007-03-23 John W. Eaton + + * general/interp2.m, general/bicubic.m, control/base/rldemo.m, + control/hinf/hinfdemo.m, control/hinf/dhinfdemo.m, + control/base/nyquist.m, control/base/nichols.m, + control/base/frdemo.m, signal/freqz_plot.m, + control/base/__stepimp__.m, control/base/bode.m, + quaternion/demoquat.m, quaternion/qcoordinate_plot.m, + statistics/base/qqplot.m, statistics/base/ppplot.m, sparse/spy.m: + Update plotting code. + + * control/base/bode.m: Unwrap phase angle. + + * miscellaneous/dump_prefs.m: Remove automatic_replot from the list. + + * plot/axis.m: Don't check automatic_replot, or call replot. + + * quaternion/demoquat.m: Delete comments with obsolete plotting + commands. + + * plot/__pltopt1__.m: Handle "@" marker same as "+". + Handle numeric color specs. + * plot/plot.m: Remove "-@" and "@" from docstring. + + * plot/orient.m: Fix tests to avoid creating a plot window. + + * elfun/acosd.m, elfun/acotd.m, elfun/acscd.m, elfun/asecd.m, + elfun/asind.m, elfun/atand.m, elfun/cosd.m, elfun/cotd.m, + elfun/cscd.m, elfun/secd.m, elfun/sind.m, elfun/tand.m, + general/arrayfun.m, miscellaneous/compare_versions.m, + path/savepath.m, pkg/pkg.m, plot/__gnuplot_version__.m, + plot/contour.m, plot/contourc.m, plot/legend.m, plot/stem.m, + polynomial/pchip.m: Fix copyright notice, correct FSF address. + + * plot/__go_draw_figure__.m: Send reset to gnuplot before every + plot, not just multiplots. + + * plot/__go_draw_axes__.m: Use %g for label coordinates, not %d. + + * plot/contour.m: Don't call drawnow. + + 2007-03-22 John W. Eaton + + * plot/drawnow.m: Check and optionally, set, the __modified__ + property of each figure. + + * plot/__go_draw_axes__.m: If no real data, plot a point at Inf, + Inf to show axes. From Daniel J Sebald . + + 2007-03-21 John W. Eaton + + * linear-algebra/null.m: Set elements of retval with magnitudes + less than eps to 0. + + 2007-03-21 David Bateman + + * plot/__go_draw_axes__.m: Handle some colors with older gnuplot. + * testfun/speed.m: Documentation and example fix. + + 2007-03-21 John W. Eaton + + * plot/subplot.m: If we find an existing subplot region, set + it to be the "currentaxes" property for the current figure. + Delete old axes objects if the new axes object overlaps the old. + + 2007-03-20 David Bateman + + * general/Makefile.in: Include arrayfun.m in SOURCES. + + 2007-03-20 Bill Denney + + * general/arrayfun.m: New function. + + 2007-03-20 John W. Eaton + + * plot/newplot.m: Call __request_drawnow__ after initializing axes. + * plot/text.m: Call __request_drawnow__ after creating text objects. + + * plot/clf.m: Don't call drawnow. + + 2007-03-20 Daniel J Sebald + + * image/__img__.m: Maybe set yaxis to reverse for images. + * plot/__go_draw_axes__.m: Don't add flipy to gnuplot command for + images. + + * plot/drawnow.m: Make __go_close_all_registered__ persistent + instead of global. Only register __go_close_all__ with atexit if + the plot stream is successfully opened. + + 2007-03-15 John W. Eaton + + * plot/__go_draw_axes__.m: Make have_newer_gnuplot persistent. + From Daniel J Sebald . + + 2007-03-15 Daniel J Sebald + + * plot/__go_draw_axes__.m (do_linestyle_command): Fix marker types. + Use numeric line types. + + * control/base/rlocus.m: Add asymptotes to the plot. Use wider + lines and larger markers. Remove key titles from line type + properties. + + 2007-03-14 John W. Eaton + + * plot/__axis_label__.m: Accept additional property-value pairs + and pass them to __go_text__. Simply return the handle obtained + from __go_text__ instead of calling get on the current axis. + * plot/xlabel.m, plot/zlabel.m, plot/zlabel.m: Check args here. + Allow for extra property value pairs to be passed along. + * plot/title.m: Implement with __axis_label__ since it does all + that title needs to do. + + * plot/clf.m: Set currentaxes property for current figure to []. + + * plot/__axis_label__.m: Convert arg to text handle before calling set. + + * plot/__plt__.m: Return line handles from all calls to __plt1__ + and __plt2__, not just the last. + + * plot/Makefile.in (SOURCES): Rename from SOURCES_M. + (SOURCES_IN, GEN_M): Delete. + (FCN_FILES): Don't include $(GEN_M). + (all): Don't depend on $(GEN_M). + ($(GEN_M) : %.m : %.in): Delete pattern rule. + + * plot/text.m: Use __go_text__ instead of __uiboject_text_ctor__. + + * plot/newplot.m: Call __go_axes_init__ instead of + __uiobject_axes_init__. + + * plot/mesh.m: Use __go_surface__ instead of + __uiobject_surface_ctor__. Don't access object fields directly. + + * plot/line.m: Use __line__ to do actual work. + * plot/__line__.m: New function. + + * plot/axes.m: Use __go_axes__ to create axes graphics handle. + Use get and set instead of accessing object fields directly. + + * plot/figure.m: Use __go_figure__ to create figure graphics + handle. + + * plot/drawnow.m: Register __go_close_all__ with atexit instead of + __uiobject_close_all. Call __go_draw_figure__ instead of + __uiobject_draw_figure__. + + * plot/clf.m: Use get instead of accessing object fields + directly. Simply delete children. Don't set currentaxes. + + * plot/close.m (close_all_figures): New subfunction. + Use it instead of getting list of figures to close from + __uiobject_figures__. + + * plot/closereq.m: Simply delete the current figure. Don't set + currentfigure. + + * plot/__errplot__.m: Call __line__ instead of + __uiobject_line_ctor__. Use set instead of accesing object fields + directly. Don't call __uiobject_adopt__. + + * plot/__uiobject_adopt__.m, plot/__uiobject_alloc__.in, + plot/__uiobject_axes_ctor__.m, plot/__uiobject_axes_dtor__.m, + plot/__uiobject_axes_init__.in, plot/__uiobject_axes_setr__.m, + plot/__uiobject_delete__.m, plot/__uiobject_figure_ctor__.m, + plot/__uiobject_figures__.in, plot/__uiobject_free__.in, + plot/__uiobject_get_handle__.in, plot/__uiobject_globals__.m, + plot/__uiobject_grow_list__.in, plot/__uiobject_handle2idx__.in, + plot/__uiobject_image_ctor__.m, plot/__uiobject_init_figure__.in, + plot/__uiobject_init_root_figure__.in, + plot/__uiobject_line_ctor__.m, plot/__uiobject_make_handle__.in, + plot/__uiobject_root_figure_ctor__.m, + plot/__uiobject_surface_ctor__.m, plot/__uiobject_text_ctor__.m: + plot/get.in, plot/include-globals.awk, plot/ishandle.m, + plot/set.in: Delete. + * plot/Makefile.in (SOURCES_M, SOURCES_IN): Remove from lists. + + * plot/__go_close_all__.m: Rename from __uiobject_close_all.m. + Pass "hidden" as second arg to close. + * plot/__go_draw_axes__.m: Rename from __uiobject_draw_axes.m. + * plot/__go_draw_figure__.m: Rename from __uiobject_draw_figure.m. + * plot/Makefile.in (SOURCES_M): Rename in list. + + * image/__img__.m: Use __go_image__ to create image graphics + handle. + + * miscellaneous/delete.m: Call __go_delete__, not + __uiobject_delete__. Check that arg is a graphics handle before + calling __go_delete__. + + 2007-03-13 John W. Eaton + + * miscellaneous/cast.m: Use feval and strcmp with cell to check + arg instead of switch statement. + From Sᅵren Hauberg . + + 2007-03-12 John W. Eaton + + * miscellaneous/cast.m: New function. + + * miscellaneous/delete.m: Call __go_delete__, not __uiobject_delete__. + + 2007-03-08 John W. Eaton + + * miscellaneous/copyfile.m, miscellaneous/movefile.m: Perform + tilde expansion on target filename before passing it to the shell. + + * statistics/base/Makefile.in (SOURCES): Remove unidrnd.m from list. + * statistics/distributions/Makefile.in (SOURCES): Add it here. + + 2007-03-08 David Bateman + + * statistics/base/unidrnd.m: Move to statistics/distributions + replacing slower version based on dicrete_rnd. + + 2007-03-07 John W. Eaton + + * control/base/rlocus.m: Update for current plotting functions. + + 2007-03-07 A. S. Hodel + + * control/base/rlocus.m: Improve display. + + 2007-03-07 John W. Eaton + + * plot/legend.m: Only handle positions -1:4. + * plot/__pltopt1__.m: Don't set linestyle if only marker style is + found in option string + * plot/__uiobject_draw_axes__.m: Handle key position. + + * plot/newplot.m: Always reset next line color. + + * testfun/assert.m: Check that number of dimensions match before + checking dimensions. + + 2007-03-07 Muthiah Annamalai + + * specfun/perms.m, specfun/factorial.m: Check args. + + 2007-03-07 John W. Eaton + + * plot/mesh.m: Call newplot before doing anything. + + * plot/__uiobject_draw_axes__.m: Send "e\n" at end of data, not + just "e". Only flush plot stream once. + From Daniel J Sebald . + + * strings/blanks.m: Omit first index in assignment. + + 2007-03-07 Paul Kienzle + + * set/setdiff.m: Some code cleanup and a fix for setdiff on rows. + + 2007-03-06 David Bateman + John W. Eaton + + * set/setdiff.m: Ignore "rows" for cell array args. + Handle cellstr args. + + 2007-03-05 John W. Eaton + + * optimization/sqp.m: Defer first call to obj_hess until after + calling obj_fun. + + 2007-03-02 Bob Weigel + + * specfun/nchoosek.m: Fix nargin check. + + 2007-03-01 Daniel J Sebald + + * image/__img__.m: Don't set xlim and ylim properties. + + 2007-03-01 Paul Kienzle + + * general/interp1.m: Fix *style cases for decreasing x. + + 2007-03-01 Muthiah Annamalai + + * polynomial/roots.m: Check nargin before accessing arg. + + 2007-02-28 John W. Eaton + + * plot/__uiobject_draw_axes__.m: If looking at image data, Don't + increment data_idx unless using gnuplot for display. + + 2007-02-28 Daniel J Sebald + + * plot/__uiobject_draw_axes__.m: Improve calculation of limits for + plots with images. + * image/image.m, image/imagesc.m, image/imshow.m: + Deprecate zoom argument. + + 2007-02-28 John W. Eaton + + * plot/__uiobject_draw_axes__.m: Use fullfile to generate + temporary file names. Keep image and colormap file ids separate. + + * general/interp1.m: Correctly compute min and max values when + values are decreasing and not evenly spaced. + From Ricardo Marranita . + + 2007-02-27 John W. Eaton + + * testfun/test.m (test): Handle possibility of file_in_loadpath + returning an empty cell array. + + 2007-02-27 Michael Goffioul + + * pkg/pkg.m: Use fullfile to create filenames from parts. + + 2007-02-26 Michael Goffioul + + * Makefile.in, audio/Makefile.in, control/Makefile.in, + control/base/Makefile.in, control/hinf/Makefile.in, + control/obsolete/Makefile.in, control/system/Makefile.in, + control/util/Makefile.in, deprecated/Makefile.in, + elfun/Makefile.in, finance/Makefile.in, general/Makefile.in, + image/Makefile.in, io/Makefile.in, linear-algebra/Makefile.in, + miscellaneous/Makefile.in, optimization/Makefile.in, + path/Makefile.in, pkg/Makefile.in, plot/Makefile.in, + polynomial/Makefile.in, quaternion/Makefile.in, set/Makefile.in, + signal/Makefile.in, sparse/Makefile.in, specfun/Makefile.in, + special-matrix/Makefile.in, startup/Makefile.in, + statistics/Makefile.in, statistics/base/Makefile.in, + statistics/distributions/Makefile.in, + statistics/models/Makefile.in, statistics/tests/Makefile.in, + strings/Makefile.in, testfun/Makefile.in, time/Makefile.in: + Use $(LN_S) instead of ln or ln -s. + + 2007-02-24 David Bateman + + * pkg/pkg.m (configure_make): Ignore blank lines and trailing + '\n' in FILES file. + (configure_make): Also install any mex files. + + 2007-02-24 David Bateman + + * statistics/distributions (SOURCES): Add nbincdf.m, + nbininv.m, nbinpdf.m and nbinrnd.m. + + 2007-02-23 John W. Eaton + + * statistics/distributions/Makefile.in (SOURCES): Remove + pascal_cdf.m pascal_inv.m pascal_pdf.m pascal_rnd.m from the list. + + * deprecated/Makefile.in (SOURCES): Add pascal_cdf.m, + pascal_inv.m, pascal_pdf.m, and pascal_rnd.m to the list. + + 2007-02-23 David Bateman + + * statistics/distributions/discrete_rnd.m, + statistics/distributions/geornd.m, + statistics/distributions/lognnd.m, + statistics/distributions/nbinrnd.m, + statistics/distributions/wblrnd.m: Accelerate distributions. + + * statistics/distributions/unidcdf.m, + statistics/distributions/unidinv.m, + statistics/distributions/unidpdf.m, + statistics/distributions/unidrnd.m: New functions based on + discrete_cdf, etc. + + * statistics/distributions/pascal_cdf.m, + statistics/distributions/pascal_inv.m, + statistics/distributions/pascal_pdf.m, + statistics/distributions/pascal_rnd.m: Remove. + * statistics/distributions/nbincdf.m, + statistics/distributions/nbininv.m, + statistics/distributions/nbinpdf.m, + statistics/distributions/nbinrnd.m: Replace with matlab + compatible functions. + * deprecated/pascal_cdf.m, deprecated/pascal_inv.m, + deprecated/pascal_pdf.m, deprecated/pascal_rnd.m: Use the new + nbincdf, etc functions to implement these. + + 2007-02-22 Daniel J Sebald + + * plot/__uiobject_draw_axes__.m: Insert newline between plot + command and data. + + 2007-02-22 John W. Eaton + + * miscellaneous/doc.m: If index search fails, try again without + the index search option. + + 2007-02-22 David Bateman + + * miscellaneous/doc.m: Find doc.info file correctly in user directories. + + * statistics/distributions/frnd.m, statistics/distributions/exprnd.m, + statistics/distributions/gamrnd.m, statistics/distributions/trnd.m, + statistics/distributions/poissrnd.m, statistics/distributions/chi2rnd.m, + statistics/distributions/betarnd.m: Convert to use randg, rande + and randp to accelerate. + + * pkg/pkg.m (fix_depends): Support > and < operators as well. + + 2007-02-22 John W. Eaton + + * plot/__uiobject_draw_axes__.m: If not using gnuplot for images, + cache data and display after xlim and ylim have been determined. + + 2007-02-22 Daniel J Sebald + + * plot/__uiobject_draw_axes__.m: + Allow multiple images to be displayed with gnuplot. + + 2007-02-20 Rafael Laboissiere + + * optimization/glpk.m: Document the fact that extra.mem does not work + for versions of GLPK 4.15 and later. + + 2007-02-19 John W. Eaton + + * plot/__uiobject_alloc__.in: If next available element in + __uiobject_list__ is 0, grow list before doing anything else. + * plot/__uiobject_grow_list__.in: Only set __uiobject_head__ on + first call when size of __uiobject_list__ is 0. + + 2007-02-16 John W. Eaton + + * miscellaneous/Makefile.in (SOURCES): Remove popen2.m from the list. + + 2007-02-16 Michael Goffioul + + * miscellaneous/popen2.m: Remove as replaced with builtin. + + 2007-02-16 Muthiah Annamalai + + * specfun/nchoosek.m: Check nargin. + + 2007-02-15 John W. Eaton + + * path/addpath.m, path/rmpath.m: Delete + * path/Makefile.in (SOURCES): Remove them from the list. + + * plot/__uiobject_axes_init__.in, plot/__uiobject_axes_setr__.m: + Delete title, xlabel, ylabel, and zlabel properties before + reassigning. + * plot/__uiobject_axes_init__.in: New arg, mode. + Don't init outerposition if "mode" is "replace". + * plot/newplot.m: Check both figure and axes nextplot properties. + If axes nextplot property is replace, pass "replace" as mode arg + to __uiobject_axes_init__. + + 2007-02-15 Daniel J Sebald + + * image/imshow.m: Don't restore old colormap. + + * plot/__uiobject_image_ctor__.m: Set xdata and ydata properties. + * image/__img__.m: New file containing common parts of image.m and + imshow.m. + * image/Makefile.in (SOURCES): Add __img__.m to the list. + * image/image.m, image/imshow.m: Call __img__. + * plot/__uiobject_draw_axes__.m: + Handle rgb imaged data stored in 3-d arrays. + + * plot/figure.m: Doc fix. + + 2007-02-14 Thomas Weber + + * audio/wavread.m, audio/wavwrite.m: Use types with specific sizes + for reading and writing data. New tests. Improve rounding. + + 2007-02-13 John W. Eaton + + * plot/stem.m: New file, adapted from OctPlot. + * plot/Makefile.in (SOURCES_M): Add it to the list. + + * plot/__errcomm__.m, plot/__plr1__.m, plot/__plr2__.m, + plot/__plt1__.m, plot/__plt2__.m, plot/__plt2mm__.m, + plot/__plt2mv__.m, plot/__plt2ss__.m, plot/__plt2vm__.m, + plot/__plt2vv__.m, plot/__plt__.m, plot/loglog.m, + plot/loglogerr.m, plot/plot.m, plot/plot3.m, plot/polar.m, + plot/semilogx.m, plot/semilogxerr.m, plot/semilogy.m, + plot/semilogyerr.m: Return handles to line objects. + + 2007-02-11 John W. Eaton + + * plot/__uiobject_close_all.m: New file. + * plot/Makefile.in (SOURCES_M): Add it to the list. + + 2007-02-10 John W. Eaton + + * plot/drawnow.m: Arrange for plot streams to be close on exit. + * plot/__uiobject_globals__.m: Don't call mlock. + + * plot/drawnow.m: Only check for DISPLAY if isunix returns true. + * plot/__uiobject_delete__.m: Send quit command and flush stream + before calling pclose. + + 2007-02-09 John W. Eaton + + * plot/subplot.m: Delete spurious call to axes. + + * plot/figure.m: Call drawnow for current figure before creating + or switching to a new figure. + * plot/__uiobject_init_figure__.in: Handle empty arg the same as + nargin == 0 case. + + * testfun/assert.m: Try to avoid problems when comparisons involve + strange values like Inf+NaNi. + + 2007-02-08 John W. Eaton + + * plot/drawnow.m: Use gnuplot_binary() instead of just "gnuplot" + and check gnuplot_use_title_option instead of just assuming -title + works. From Michael Goffioul . + + * Makefile.in (DISTFILES): Add move-if-change to the list. + + * audio/Makefile.in, control/base/Makefile.in, + control/hinf/Makefile.in, control/obsolete/Makefile.in, + control/system/Makefile.in, control/util/Makefile.in, + deprecated/Makefile.in, elfun/Makefile.in, finance/Makefile.in, + general/Makefile.in, image/Makefile.in, io/Makefile.in, + linear-algebra/Makefile.in, miscellaneous/Makefile.in, + optimization/Makefile.in, plot/Makefile.in, + polynomial/Makefile.in, quaternion/Makefile.in, set/Makefile.in, + signal/Makefile.in, sparse/Makefile.in, specfun/Makefile.in, + special-matrix/Makefile.in, startup/Makefile.in, + statistics/base/Makefile.in, statistics/distributions/Makefile.in, + statistics/models/Makefile.in, statistics/tests/Makefile.in, + strings/Makefile.in, testfun/Makefile.in, time/Makefile.in, + path/Makefile.in, pkg/Makefile.in: Explicitly list source files. + + * plot/figure.m: Don't call drawnow. Correctly init figure when + only given property list. + + 2007-02-07 John W. Eaton + + * plot/__uiobject_draw_axes__.m: Handle xdir, ydir, and zdir axis + properties. + + * plot/sombrero.m: Call box ("off") after mesh. + + * plot/__uiobject_draw_axes__.m: Avoid rgb colors and "set style + line default" commands with older versions of gnuplot. + + * plot/close.m: Use get (0, "currentifgure") instead of gcf. + + 2007-02-06 John W. Eaton + + * plot/__uiobject_draw_axes__.m: Set pt to 0 if marker is ".". + * sparse/gplot.m: Use line style - instead of 1. + + 2007-02-05 Rafael Laboissiere + + * plot/print.m: Avoid error message from cellidx. + + 2007-02-05 John W. Eaton + + * plot/legend.m: Fix check for data. + + 2007-02-05 Thomas Treichl + + * plot/__uiobject_draw_axes__.m (do_linestyle_command): + Always set lt and pt. + + 2007-02-05 Shai Ayal + + * plot/contourc.m: Correctly compute X and Y. + + 2007-02-05 John W. Eaton + + * plot/__uiobject_draw_axes__.m: Use title "" if no explicit title. + When setting {x,y,z}lim, also set {x,y,z}limmode to "auto. + + 2007-02-01 John W. Eaton + + * plot/__uiobject_draw_axes__.m: + Don't try to set axis limits unless we have data. + + * plot/__plt1__.m, plot/__plt2__.m, plot/__plt2mm__.m, + plot/__plt2mv__.m, plot/__plt2ss__.m, plot/__plt2vm__.m, + plot/__plt2vv__.m, plot/__plt__.m, plot/__pltopt1__.m, + plot/__pltopt__.m, plot/plot3.m: Set and use options struct + instead of of key and fmt strings. + + * plot/__pltopt1__.m: Greatly simplify. + + * plot/__next_line_color__.m: New file. + * plot/Makefile.in (SOURCES_M): Add it to the list. + * plot/newplot.m: Call __next_line_color__ here to reset rotation. + + * plot/__default_plot_options__.m: New file. + * plot/Makefile.in (SOURCES_M): Add it to the list. + + * plot/__plt3__.m: Delete. + * plot/Makefile.in (SOURCES_M): Remove it from the list. + + 2007-01-31 John W. Eaton + + * plot/__uiobject_draw_axes__.m: Set defaults for color, + linestyle, linewidth, marker, and markersize properties. + * plot/__uiobject_draw_axes__.m: Attempt to handle line and marker + colors and widths, and line styles. + + * plot/__plt__.m, image/image.m: Don't call drawnow. + + * plot/__gnuplot_version__.m: Restore from CVS Attic. + * plot/Makefile.in (SOURCES_M): Add it to the list. + + * plot/__uiobject_draw_axes__.m: Delete useless call to + __gnuplot_save_data__. + + * image/image.m: Accept 2 args, but ignore the second for now. + + 2007-01-30 David Bateman + + * pkg/pkg.m (pkg, isautoload, install, load_packages): Add ability + to flag a package as to be autoloaded. Add install flags -noauto, + -auto to force autoload behavior. + (installed_packages): Make list of installed packages unique. + + 2007-01-30 John W. Eaton + + * Merge of changes from graphics-branch: + + 2007-01-29 John W. Eaton + + * plot/subplot.m: Set nextplot property of current figure to "add". + + * plot/__uiobject_draw_axes__.m: Only handle outerposition + property if it exists. + + 2007-01-26 John W. Eaton + + * plot/__uiobject_draw_axes__.m: Move initialization of max and + min values outside of loop over child objects. + + * plot/contour.m, plot/contourc.m: New files. + * plot/Makefile.in (SOURCES_M): Add them to the list. + + * image/image_viewer.m: Set view_fcn to "gnuplot_internal" if we + find a gnuplot version newer than 4.0. + * image/__img_gnuplot__.m: Delete. + * image/image.m: Create image graphics object. + Call newplot to setup and drawnow to finish. + Eliminate ZOOM arg. + + * plot/__uiobject_draw_axes__.m: Handle image data. + + * plot/legend.m: Eliminate useless variable "warned". + + * plot/__uiobject_image_ctor__.m: New file. + * plot/Makefile.in (SOURCES_M): Add it to the list. + + * plot/gcf.m: Also create new figure if currentfigure is 0. + * plot/drawnow.m: Use get (0, "currentfigure") instead of gcf. + + * plot/__uiobject_root_figure_ctor__.m: Set visible property. + + * plot/__default_colormap__.m: New file. + * plot/Makefile.in (SOURCES_M): Add it to the list. + * plot/__uiobject_figure_ctor__.m: Use it to set default colormap + property. + * image/colormap.m: Use colormap property of current figure + to store colormap instead of using persistent variable. + Call __default_colormap__ to get default map value. + * image/ocean.m, image/gray.m: Set colormap for current figure. + + * plot/__uiobject_draw_axes__.m: Handle aspect ratio property. + Handle some tick mark options. + + * plot/__uiobject_axes_setr__.m: If we see xtick, ytick, or ztick, + set corresponding *mode to "manual". If we set dataaspectratio, + set dataaspectratiomode to "manual". + + * plot/__uiobject_axes_init__.m: Include *tick, *tickmode, + *ticklabelmode, dataaspectratio, dataaspectratiomode properties. + + * plot/axis.m: New file. + * plot/Makefile.in (SOURCES_M): Include it in the list. + + * plot/__uiobject_axes_setr__.m: If we see xlim, ylim, or zlim, + set corresponding *limmode to "manual". + * plot/__uiobject_draw_axes__.m (get_axis_limits): New subfunction. + Use it to compute autosclaled limits. + Arg is now handle, not object. Change all callers. + Compute data limits. + + 2007-01-25 John W. Eaton + + * plot/drawnow: Fix visibility check for zero args. + + * plot/text.m: New file. + * plot/Makefile.in (SOURCES_M): Add it to the list. + * plot/__uiobject_draw_axes__.m: Handle text objects. + * plot/__uiobject_text_ctor__.m: Include units, position, and + horizontalalignment properties. + + * plot/figure.m: Set options for f we just constructed or were + given as an argument, not gcf. Only return handle if nargout > 0. + + * plot/drawnow.m: Handle visible field for figure here. + * plot/__uiobject_figure_ctor__.m: Set default visible field. + + * plot/__uiobject_draw_axes__.m: Call undo_string_escapes on + title and axis labels. + + * plot/plot3.m, plot/mesh.m: Set default 3-d view here. + * plot/__uiobject_draw_axes__.m: Handle view for 3-d plots. + * plot/__uiobject_axes_init__.in: Set default view field for object. + * plot/view.m: New file. + * plot/Makefile.in (SOURCES_M): Add it to the list. + + * plot/__uiobject_make_handle__.in, plot/set.m, plot/drawnow.m: + Call __request_drawnow__. + + * plot/newplot.m: For "replace" action, call __uiobject_axes_init__. + + * plot/__uiobject_axes_ctor__.m, plot/__uiobject_text_ctor__.m: + Call set to set properties. Return handle instead of structure. + Change all callers. + + * plot/__uiobject_axes_setr__.m: New file. + * plot/set.in: Check for __setter__ field. + + * plot/__uiobject_axes_init__.in: + Rename from plot/__uiobject_axes_init__.m. + Include __uiobject_globals__. + Accept handle as arg instead of structure + * plot/Makefile.in (SOURCES_M): Remove __uiobject_axes_init__.m + from the list. + (SOURCES_IN): Add __uiobject_axes_init__.in to the list. + + 2007-01-24 John W. Eaton + + * plot/Makefile.in ($(GEN_M)): Depend on __uiobject_globals__.m. + + * plot/__uiobject_globals__.m: Call __lock_global__ when + initializing each global variable. + + 2007-01-18 John W. Eaton + + * plot/__uiobject_globals__.m (__uiobject_handles_free_list__, + __uiobject_figure_handles_free_list__): New global variables. + * plot/__uiobject_get_handle__.m, plot/__uiobject_free__.m: + Place unused handles on the free list. + + * plot/__uiobject_get_figure_handle__.in: Delete. + * plot/Makefile.in: Delete it from the SOURCES_IN list. + + * plot/__uiobject_init_figure__.in: Perform allocation of figure + handles here. Return figure handle. + * plot/figure.m: Call __uiobject_init_figure__ to allocate handle. + + 2007-01-11 John W. Eaton + + * plot/__uiobject_draw_axes__.m: Use "%g", not "%.4g" when writing + data for gnuplot. + + * plot/Makefile.in (SOURCES_M, SOURCES_IN, GEN_M): New lists of + files. + (SOURCES): Include $(SOURCES_M) and $(SOURCES_M) in the list. + (DISTFILES): Include include-globals.awk in the list. + (FCN_FILES): Define using $(SOURCES_M) and $(GEN_M). + ($(GEN_M) : %.m : %.in): New rule. + + * include-globals.awk: New file. + + * plot/__uiobject_alloc__.in, plot/__uiobject_figures__.in, + plot/__uiobject_free__.in, plot/__uiobject_get_figure_handle__.in, + plot/__uiobject_get_handle__.in, plot/__uiobject_grow_list__.in, + plot/__uiobject_handle2idx__.in, plot/__uiobject_init_figure__.in, + plot/__uiobject_init_root_figure__.in, + plot/__uiobject_make_handle__.in, plot/get.in, plot/set.in: + Rename from corresponding .m files. + + * move-if-change: New file. + + * plot/__uiobject_delete__.m: New file. + * plot/delete.m, plot/__uiobject_delete_children__.m, + plot/__uiobject_delete_child__.m: Delete. + * miscellaneous/delete.m: Forward to __uiobject_delete__ if arg is + not a character string. + * plot/__plt2mm__.m, plot/__plt2mv__.m, plot/__plt2vm__.m: + Fix assignment to tmp key value in loop. + * plot/__uiobject_axes_dtor__.m: No need to Call __uiobject_free__ + for obj.title, obj.xlabel, obj.ylabel, obj.zlabel. + * plot/__uiobject_axes_dtor__.m, plot/__uiobject_axis_init__.m: + Inline code to delete children. + * plot/__uiobject_free__.m: Arg is now handle, not index into + __uiobject_list__. + * plot/clf.m, plot/closereq.m, plot/newplot.m: No need to remove + and free child. + + 2006-12-08 John W. Eaton + + * plot/gcf.m: Check if the root figure object's currentfigure + handle is empty, not 0. + * plot/__uiobject_root_figure_ctor__.m: + Set currentfigure to [], not 0. + + * plot/stairs.m: Handle matrix arguments. Improve compatibility. + + 2006-12-07 John W. Eaton + + * plot/__plt_get_axis_arg__.m, plot/__uiobject_adopt__.m, + plot/__uiobject_alloc__.m, plot/__uiobject_axes_ctor__.m, + plot/__uiobject_axes_dtor__.m, plot/__uiobject_axes_init__.m, + plot/__uiobject_delete_children__.m, + plot/__uiobject_draw_axes__.m, plot/__uiobject_draw_figure__.m, + plot/__uiobject_figure_ctor__.m, plot/__uiobject_figures__.m, + plot/__uiobject_free__.m, plot/__uiobject_get_figure_handle__.m, + plot/__uiobject_get_handle__.m, plot/__uiobject_globals__.m, + plot/__uiobject_grow_list__.m, plot/__uiobject_handle2idx__.m, + plot/__uiobject_init_figure__.m, + plot/__uiobject_init_root_figure__.m, + plot/__uiobject_line_ctor__.m, plot/__uiobject_make_handle__.m, + plot/__uiobject_remove_child__.m, + plot/__uiobject_root_figure_ctor__.m, + plot/__uiobject_surface_ctor__.m, plot/__uiobject_text_ctor__.m, + plot/axes.m, plot/box.m, plot/closereq.m, plot/delete.m, + plot/drawnow.m, plot/gca.m, plot/gcf.m, plot/get.m, + plot/isfigure.m, plot/ishandle.m, plot/line.m, plot/newplot.m, + plot/set.m: New files. + + * plot/__plt3__.m, plot/errorbar.m, plot/__axis_label__.m, + plot/__plr1__.m, plot/__errcomm__.m, plot/print.m, plot/zlabel.m, + plot/__plt1__.m, plot/__plt2__.m, plot/sombrero.m, plot/shg.m, + plot/fplot.m, plot/ndgrid.m, plot/clf.m, plot/hold.m, + plot/ishold.m, plot/meshdom.m, plot/ylabel.m, plot/__plt2ss__.m, + plot/__plt2vv__.m, plot/__plr2__.m, plot/__plt2mm__.m, + plot/__pltopt1__.m, plot/meshgrid.m, plot/__plt2mv__.m, + plot/figure.m, plot/xlabel.m, plot/stairs.m, plot/__plt2vm__.m, + plot/bar.m, plot/__errplot__.m, plot/semilogx.m, plot/semilogy.m, + plot/loglog.m, plot/polar.m, plot/legend.m, plot/orient.m, + plot/title.m, plot/__pltopt__.m, plot/grid.m, plot/hist.m, + plot/subplot.m, plot/plot.m, plot/mesh.m, plot/__plt__.m, + plot/close.m, plot/loglogerr.m, plot/plot3.m, plot/semilogxerr.m, + plot/semilogyerr.m, plot/replot.m: + Adapt to new graphics data structure. + + * plot/__do_legend__.m, plot/__gnuplot_version__.m, + plot/__init_plot_vars__.m, plot/__make_using_clause__.m, + plot/__plot_globals__.m, plot/__plr__.m, plot/__render_plot1__.m, + plot/__render_plot__.m, plot/__setup_plot__.m, plot/axis.m, + plot/contour.m, plot/mplot.m, plot/multiplot.m, plot/oneplot.m, + plot/plot_border.m, plot/subwindow.m: Delete. + + 2007-01-24 David Bateman + + * pkg/pkg.m: Install ChangeLog file if it exists. + Delete bare newline in string passed to write_INDEX. + + * sparse/sprandsym.m: Make work for even values of N. + + 2007-01-24 John W. Eaton + + * miscellaneous/news.m: New file. + + 2007-01-23 Luis F. Ortiz + + * strings/strncmpi.m: Use strncmp instead of calling strtrunc on args. + + * strings/strncmp.m: Delete (we now have a built-in version). + + 2007-01-22 Bob Weigel + + * testfun/test.m: Check for all files in path, use first found. + + 2007-01-22 David Bateman + + * polynomial/spline.m: Make DG a column instead of a row vector. + + 2007-01-18 Sᅵren Hauberg + + * pkg/pkg.m (copy_files): Call write_INDEX with correct target + file name. + + * image/ind2rgb.m: Better input checking. Return 3-d array if + nargout is 1. Handle colormaps that have too few colors. + + * pkg/pkg.m (create_pkgadddel): Call fullfile with nm, not "nm". + (configure_make): Use fullfile instead of concatenating with "/". + + 2007-01-10 Baylis Shanks + + * set/ismember.m: Handle N-d arrays. + + 2007-01-10 David Bateman + + * elfun/acosd.m, elfun/acotd.m, elfun/acscd.m, elfun/asecd.m, + elfun/asind.m, elfun/atand.m, elfun/cosd.m, elfun/cotd.m, + elfun/cscd.m, elfun/secd.m, elfun/sind.m, elfun/tand.m: + New files. + + 2007-01-09 Sᅵren Hauberg + + * pkg/pkg.m: Allow filenames to contain glob patterns. + + 2007-01-08 Sᅵren Hauberg + + * pkg/pkg.m: Use copyfile instead of calling system. Use fullfile + instead of concatenating with "/". Use mlock to ensure that + persistent variables are not clobbered if user types clear all. + + 2007-01-08 John W. Eaton + + * miscellaneous/copyfile.m, miscellaneous/movefile.m: + Improve handling of file names containing globbing characters. + From Sᅵren Hauberg . + + 2007-01-05 John W. Eaton + + * optimization/optimset.m, optimization/__fsolve_defopts__.m: + New files. + + 2006-12-30 John W. Eaton + + * sparse/spfun.m: Check for "function_handle" not "function handle". + * plot/fplot.m: Likewise. Use isa instead of strcmp + class. + + 2006-12-27 Sᅵren Hauberg + + * image/imshow.m: Strip NaNs from image. + + 2006-12-08 David Bateman + + * sparse/normest.m: New file. + + 2006-12-06 Michael Goffioul + + * miscellaneous/copyfile.m, miscellaneous/movefile.m: + Work on Windows systems without cp or mv. + + * startup/inputrc: Include sequences for Windows. + + 2006-12-06 Sᅵren Hauberg + + * pkg/pkg.m (unload_packages): New function. + (pkg): Handle unload action. + + * __errplot__.m: Add missing semicolon. + + 2006-11-30 John W. Eaton + + * miscellaneous/mexext.m: New file. + + 2006-11-29 David Bateman + + * pkg/pkg.m: Add local_list and global_list options that allow the + location of package lists to be probed and set. + + 2006-11-17 John W. Eaton + + * plot/__render_plot1__.m: Reverse y axis for images. + + * plot/__render_plot__.m: New args, terminal and output. + * plot/print.m: Don't set output and term here. Instead, call + __render_plot__ with terminal and output. + + 2006-11-16 John W. Eaton + + * plot/__render_plot1__.m: New file. + * plot/__render_plot__.m: Use it. Loop over multiplots. + * plot/print.m, plot/subplot.m: Don't send "set multiplot" to + gnuplot. Let __render_plot__ do that. + + 2006-11-16 Francesco Potorti` + + * plot/plot.m: Fix doc string. + + 2006-11-16 John W. Eaton + + * plot/__render_plot__.m: Check for mix of 2-d and 3-d plots + before sending anything to the plotter. + + 2006-11-15 John W. Eaton + + * image/__img_gnuplot__.m: Store more info in global plot + structures and use __render_plot__ to build plot command to + display image. + + * plot/__plt3__.m: New arg, parametric. Change all callers. + + * plot/__plot_globals__.m (__plot_line_offset__, __plot_command__, + __plot_command_sep__): Delete. + (__plot_data_type__, __plot_data_parametric__, + __plot_image_colormap__, __plot_image_dims__, __plot_fmtstr__, + __plot_usingstr__, __plot_withstr__): New variables. + * plot/__init_plot_vars__.m: Initialize them. + + * plot/__init_plot_vars__.m, plot/__setup_plot__.m: + Don't handle sep or cmd. + + * plot/__render_plot__.m: New function. + * plot/__plt__.m, plot/__plt3__.m, plot/__errplot__.m: + Store more info in global plot structures and use __render_plot__ + to build plot command. + * plot/replot.m: Simply call __render_plot__. + + * plot/contour.m, plot/mesh.m, plot/plot3.m: + Set __plot_data_parametric__ here. + + 2006-11-14 John W. Eaton + + * plot/bottom_title.m, plot/top_title.m: Delete. + + * image/image_viewer.m: Set default values here. + * image/image.m: Not here. + + * image/image_viewer.m: Always return old values. Check arguments. + * image/__img_gnuplot__.m: Rename from __img__m. + + 2006-11-14 Sᅵren Hauberg + + * image/image_viewer.m: New function. + * image/__img_via_file__.m: New function. + * image/image.m: Use image_viewer to determine which program to + use for image viewing. + * image/__img__.m: Silently accept more than 3 args. + + 2006-11-14 John W. Eaton + + * plot/__do_legend__.m, plot/__errplot__.m, + plot/__init_plot_vars__.m, plot/__plot_globals__.m, + plot/__plt3__.m, plot/__plt__.m, plot/__setup_plot__.m, + plot/legend.m, plot/mplot.m, plot/multiplot.m, plot/oneplot.m, + plot/replot.m, plot/subplot.m, plot/subwindow.m: + Use __plot_globals__ for multiplot variables. Keep track of + multiplot info for each figure. Eliminate __multiplot_xscale__. + + 2006-11-13 John W. Eaton + + * plot/mesh.m: Use proper dimensions for y in call to repmat. + + * miscellaneous/substruct.m: New function. + + * testfun/assert.m: Force orientation to match when comparing + struct elements. + + * general/__isequal__.m: Avoid assignment of comma-separated lists + when comparing structs. + + 2006-11-13 Sᅵren Hauberg + + * general/bicubic.m, general/cart2pol.m, general/cart2sph.m, + plot/contour.m, linear-algebra/cross.m, general/cumtrapz.m, + linear-algebra/dot.m, image/imshow.m, general/interp2.m, + general/mod.m, plot/plot3.m, plot/__plr2__.m, plot/__plr__.m, + general/pol2cart.m, general/polyarea.m, polynomial/polyfit.m, + general/rem.m, image/rgb2ind.m, general/sph2cart.m, + general/trapz.m, miscellaneous/xor.m: Use size_equal. + + 2006-11-13 John W. Eaton + + * plot/mesh.m: Use size_equal to compare dimensions. + + 2006-11-13 Sᅵren Hauberg + + * plot/mesh.m: Simplify. Set hidden3d for the plot. + + 2006-11-11 Sᅵren Hauberg + + * miscellaneous/copyfile.m: Fix docs to match function. + + 2006-11-08 John W. Eaton + + * plot/legend.m: New function, adapted from Octave Forge. + + * plot/__do_legend__.m: New function. + * plot/__errplot__.m, plot/__plt3__.m, plot/__plt__.m, + plot/replot.m: Call it before plotting. + + * plot/plot3.m, plot/mesh.m, plot/contour.m: Don't send "set + noparametric" to gnuplot.. + + * plot/__plotopt__.m, plot/__pltopt1__.m, plot/__plt1__.m, + plot/__plt2__.m, plot/__plt2mm__.m, plot/__plt2mv__.m, + plot/__plt2ss__.m, plot/__plt2vm__.m, plot/__plt2vv__.m: Accept + and return key title separate from line format. Accept format and + key as cellstr. Always return data as cell array. Return format + and key title as cellstr. + * plot/__errplot__.m, plot/__plt3__.m, plot/__plt__.m: + Handle line format and key titles separately. + * plot/__plt3__.m, plot/__plt__.m: Handle data as cell array only. + + * plot/__plot_globals__.m (__plot_line_offset__, + __plot_key_labels__, __plot_key_properties__): New global + variables. Initialize them. + * plot/__init_plot_vars__.m (__plot_line_offset__, + __plot_key_labels__, __plot_key_properties__): Initialize. + * plot/__errplot__.m, plot/__plt3__.m, plot/__plt__.m + (__plot_line_offset__, __plot_key_labels__, + __plot_key_properties__): Store information about plot key titles. + + * plot/__errplot__.m, plot/__init_plot_vars__.m, plot/__plt3__.m, + plot/__plt__.m: Use cf, mxi, and myi as shorthand for + __current_figure__, __multiplot_xi__, and __multiplot_yi__, + respectively. + + * plot/__errcomm__.m: Allow fmt to be cellstr. + + * strings/strcat.m: Disable Octave:empty-list-elements warning + whle concatenating args. + + 2006-11-07 John W. Eaton + + * startup/main-rcfile: Conditionally set PAGER_FLAGS. + + 2006-11-06 Sᅵren Hauberg + + * pkg/pkg.m (extract_pkg): No need to pass "dotexceptnewline" + option to regexp. + + * image/__img__.m: Send "set size ratio -1" before plotting. + + 2006-11-03 Bill Denney + + * strings/index.m: New arg, direction. Simplify and speed up. + * strings/rindex.m: Implement using index (..., "last"); + + * blanks.m, strcat.m: Simplify. Add tests. + + 2006-11-01 Bill Denney + + * general/__isequal__.m: Test size and class more consistently. + + 2006-10-27 John W. Eaton + + * miscellaneous/ls_command.m: Use /D instead of /w. + From Michael Goffioul . + + * miscellaneous/ls.m, miscellaneous/ls_command.m: New files. + * miscellaneous/dir.m: Mark as a command. + + 2006-10-27 William Poetra Yoga Hadisoeseno + + * miscellaneous/unpack.m: Fix missing comma in strcat call. + + 2006-10-25 John W. Eaton + + * image/image.m: Set x = y = [] when nargin == 0; + + 2006-10-25 Quentin Spencer + + * image/image.m: Call __img__ if gnuplot version is > 4.0. + * image/__img__.m: New file, originally from + Daniel J Sebald . + + 2006-10-25 John W. Eaton + + * plot/__gnuplot_version__.m: New function, originally from + Daniel J Sebald by way of + Quentin Spencer . + + 2006-10-25 Sᅵren Hauberg + + * plot/__pltopt__.m: Update symbol marker id numbers for gnuplot 4. + + 2006-10-24 Bill Denney + + * miscellaneous/unpack.m, miscellaneous/bunzip2.m, + miscellaneous/gunzip.m: New files. + * miscellaneous/untar.m, miscellaneous/unzip.m: + Call unpack to do the real work. + + 2006-10-24 John W. Eaton + + * plot/plot3.m: If we have a format string, then also pass using + string to __plt3__. + + * plot/sombrero.m: Don't return anything if nargout == 0. + + * plot/__plt3__.m: Create using clause if none is supplied. + * plot/mesh.m: Always pass empty using string to __plt3__. + + 2006-10-20 Bill Denney + + * movefile.m, copyfile.m: Handle cellstr lists of files. + Quote filenames in shell commands. + + 2006-10-17 David Bateman + + * pkg/pkg.m (uninstall): Allow the uninstall to proceed even if + the package directory is missing. + + 2006-10-13 John W. Eaton + + * plot/box.m: New function. + + 2006-10-13 Etienne Grossmann + + * general/ind2sub.m, general/sub2ind.m: Handle empty indices. + + 2006-10-12 Quentin Spencer + + * plot/sombrero.m: Only plot if nargout == 0. Otherwise, return data. + + 2006-10-10 John W. Eaton + + * miscellaneous/copyfile.m, miscellaneous/movefile.m: New functions. + + 2006-10-10 Bill Denney + + * audio/lin2mu.m, audio/loadaudio.m, audio/mu2lin.m, + audio/playaudio.m, audio/record.m, audio/saveaudio.m, + audio/setaudio.m, audio/wavread.m, audio/wavwrite.m, + control/base/__bodquist__.m, control/base/__freqresp__.m, + control/base/are.m, control/base/bode.m, control/base/ctrb.m, + control/base/damp.m, control/base/dare.m, control/base/dcgain.m, + control/base/dre.m, control/base/impulse.m, control/base/lqg.m, + control/base/lsim.m, control/base/lyap.m, control/base/nichols.m, + control/base/nyquist.m, control/base/obsv.m, control/base/pzmap.m, + control/base/rlocus.m, control/base/step.m, control/base/tzero.m, + control/hinf/h2norm.m, control/hinf/h2syn.m, + control/hinf/hinfnorm.m, control/hinf/hinfsyn.m, + control/hinf/is_dgkf.m, control/hinf/wgt1o.m, + control/obsolete/dezero.m, control/system/__sysdefioname__.m, + control/system/buildssic.m, control/system/c2d.m, + control/system/cellidx.m, control/system/d2c.m, + control/system/dmr2d.m, control/system/fir2sys.m, + control/system/is_abcd.m, control/system/is_controllable.m, + control/system/is_detectable.m, control/system/is_digital.m, + control/system/is_observable.m, control/system/is_siso.m, + control/system/is_stabilizable.m, control/system/is_stable.m, + control/system/jet707.m, control/system/listidx.m, + control/system/ord2.m, control/system/parallel.m, + control/system/ss.m, control/system/ss2zp.m, + control/system/starp.m, control/system/sys2ss.m, + control/system/sys2tf.m, control/system/sys2zp.m, + control/system/sysadd.m, control/system/sysappend.m, + control/system/syschtsam.m, control/system/sysconnect.m, + control/system/syscont.m, control/system/sysdimensions.m, + control/system/sysdisc.m, control/system/sysdup.m, + control/system/sysgetsignals.m, control/system/sysgettsam.m, + control/system/sysgroup.m, control/system/sysidx.m, + control/system/sysmin.m, control/system/sysmult.m, + control/system/sysout.m, control/system/sysprune.m, + control/system/sysscale.m, control/system/syssetsignals.m, + control/system/syssub.m, control/system/sysupdate.m, + control/system/tf.m, control/system/tfout.m, + control/system/ugain.m, control/system/zp.m, + control/system/zpout.m, control/util/__outlist__.m, + control/util/__zgpbal__.m, control/util/prompt.m, + control/util/sortcom.m, control/util/strappend.m, + deprecated/com2str.m, elfun/acot.m, elfun/acoth.m, elfun/acsc.m, + elfun/acsch.m, elfun/asec.m, elfun/asech.m, elfun/cot.m, + elfun/coth.m, elfun/csc.m, elfun/csch.m, elfun/lcm.m, elfun/sec.m, + elfun/sech.m, finance/fv.m, finance/fvl.m, finance/irr.m, + finance/nper.m, finance/npv.m, finance/pmt.m, finance/pv.m, + finance/pvl.m, finance/rate.m, finance/vol.m, + general/__isequal__.m, general/bitcmp.m, general/bitget.m, + general/bitset.m, general/blkdiag.m, general/cart2sph.m, + general/cell2mat.m, general/circshift.m, general/cplxpair.m, + general/cumtrapz.m, general/deal.m, general/diff.m, + general/flipdim.m, general/fliplr.m, general/flipud.m, + general/ind2sub.m, general/int2str.m, + general/is_duplicate_entry.m, general/isdefinite.m, + general/isequal.m, general/isequalwithequalnans.m, + general/isscalar.m, general/issquare.m, general/issymmetric.m, + general/isvector.m, general/logical.m, general/logspace.m, + general/mod.m, general/nargchk.m, general/nextpow2.m, + general/perror.m, general/postpad.m, general/prepad.m, + general/randperm.m, general/rem.m, general/repmat.m, + general/rot90.m, general/rotdim.m, general/shift.m, + general/shiftdim.m, general/sph2cart.m, general/strerror.m, + general/sub2ind.m, general/trapz.m, general/tril.m, + general/triu.m, image/gray.m, image/gray2ind.m, image/hsv2rgb.m, + image/image.m, image/imagesc.m, image/ind2gray.m, image/ind2rgb.m, + image/loadimage.m, image/ntsc2rgb.m, image/ocean.m, + image/rgb2hsv.m, image/rgb2ntsc.m, image/saveimage.m, io/beep.m, + linear-algebra/commutation_matrix.m, linear-algebra/cond.m, + linear-algebra/cross.m, linear-algebra/dmult.m, + linear-algebra/dot.m, linear-algebra/duplication_matrix.m, + linear-algebra/krylov.m, linear-algebra/krylovb.m, + linear-algebra/logm.m, linear-algebra/norm.m, + linear-algebra/null.m, linear-algebra/orth.m, + linear-algebra/qzhess.m, linear-algebra/rank.m, + linear-algebra/trace.m, linear-algebra/vec.m, + linear-algebra/vech.m, miscellaneous/bincoeff.m, + miscellaneous/delete.m, miscellaneous/dir.m, miscellaneous/dos.m, + miscellaneous/fileattrib.m, miscellaneous/fileparts.m, + miscellaneous/flops.m, miscellaneous/fullfile.m, + miscellaneous/ispc.m, miscellaneous/isunix.m, + miscellaneous/menu.m, miscellaneous/not.m, miscellaneous/popen2.m, + miscellaneous/single.m, miscellaneous/unix.m, miscellaneous/ver.m, + miscellaneous/xor.m, optimization/glpk.m, optimization/glpkmex.m, + optimization/qp.m, optimization/sqp.m, plot/__axis_label__.m, + plot/__errplot__.m, plot/__plr1__.m, plot/__plr2__.m, + plot/__plr__.m, plot/__plt1__.m, plot/__plt2__.m, + plot/__plt2mm__.m, plot/__plt2mv__.m, plot/__plt2ss__.m, + plot/__plt2vm__.m, plot/__plt2vv__.m, plot/__pltopt1__.m, + plot/__pltopt__.m, plot/bar.m, plot/bottom_title.m, plot/close.m, + plot/contour.m, plot/errorbar.m, plot/figure.m, plot/fplot.m, + plot/grid.m, plot/hist.m, plot/hold.m, plot/ishold.m, + plot/loglogerr.m, plot/mesh.m, plot/meshdom.m, plot/meshgrid.m, + plot/multiplot.m, plot/orient.m, plot/polar.m, plot/replot.m, + plot/semilogxerr.m, plot/semilogyerr.m, plot/sombrero.m, + plot/stairs.m, plot/subplot.m, plot/subwindow.m, plot/title.m, + plot/top_title.m, polynomial/compan.m, polynomial/conv.m, + polynomial/deconv.m, polynomial/mkpp.m, polynomial/poly.m, + polynomial/polyder.m, polynomial/polyderiv.m, + polynomial/polyfit.m, polynomial/polygcd.m, + polynomial/polyinteg.m, polynomial/polyout.m, + polynomial/polyreduce.m, polynomial/polyval.m, + polynomial/polyvalm.m, polynomial/ppval.m, polynomial/residue.m, + polynomial/roots.m, polynomial/unmkpp.m, quaternion/quaternion.m, + set/complement.m, set/create_set.m, set/intersect.m, + set/ismember.m, set/setdiff.m, set/setxor.m, set/union.m, + set/unique.m, signal/arch_fit.m, signal/arch_rnd.m, + signal/arma_rnd.m, signal/autocor.m, signal/autoreg_matrix.m, + signal/bartlett.m, signal/blackman.m, signal/detrend.m, + signal/diffpara.m, signal/durbinlevinson.m, signal/fftconv.m, + signal/fftfilt.m, signal/fftshift.m, signal/filter2.m, + signal/freqz.m, signal/hamming.m, signal/hanning.m, + signal/hurst.m, signal/ifftshift.m, signal/sinetone.m, + signal/sinewave.m, signal/spencer.m, signal/stft.m, + signal/synthesis.m, signal/unwrap.m, sparse/gplot.m, + sparse/spfun.m, sparse/sprand.m, sparse/sprandn.m, + sparse/sprandsym.m, sparse/spstats.m, specfun/beta.m, + specfun/betai.m, specfun/betaln.m, specfun/erfinv.m, + specfun/gammai.m, specfun/log2.m, specfun/pow2.m, + special-matrix/hankel.m, special-matrix/hilb.m, + special-matrix/invhilb.m, special-matrix/sylvester_matrix.m, + special-matrix/toeplitz.m, special-matrix/vander.m, + statistics/base/center.m, statistics/base/cloglog.m, + statistics/base/cor.m, statistics/base/corrcoef.m, + statistics/base/cov.m, statistics/base/cut.m, + statistics/base/gls.m, statistics/base/iqr.m, + statistics/base/kendall.m, statistics/base/kurtosis.m, + statistics/base/logit.m, statistics/base/mahalanobis.m, + statistics/base/mean.m, statistics/base/meansq.m, + statistics/base/median.m, statistics/base/moment.m, + statistics/base/ols.m, statistics/base/ppplot.m, + statistics/base/probit.m, statistics/base/qqplot.m, + statistics/base/range.m, statistics/base/ranks.m, + statistics/base/run_count.m, statistics/base/skewness.m, + statistics/base/spearman.m, statistics/base/statistics.m, + statistics/base/std.m, statistics/base/studentize.m, + statistics/base/table.m, statistics/base/values.m, + statistics/base/var.m, statistics/distributions/betacdf.m, + statistics/distributions/betainv.m, + statistics/distributions/betapdf.m, + statistics/distributions/betarnd.m, + statistics/distributions/binocdf.m, + statistics/distributions/binoinv.m, + statistics/distributions/binopdf.m, + statistics/distributions/binornd.m, + statistics/distributions/cauchy_cdf.m, + statistics/distributions/cauchy_inv.m, + statistics/distributions/cauchy_pdf.m, + statistics/distributions/cauchy_rnd.m, + statistics/distributions/chi2cdf.m, + statistics/distributions/chi2inv.m, + statistics/distributions/chi2pdf.m, + statistics/distributions/chi2rnd.m, + statistics/distributions/discrete_cdf.m, + statistics/distributions/discrete_inv.m, + statistics/distributions/discrete_pdf.m, + statistics/distributions/discrete_rnd.m, + statistics/distributions/empirical_rnd.m, + statistics/distributions/expcdf.m, + statistics/distributions/expinv.m, + statistics/distributions/exppdf.m, + statistics/distributions/exprnd.m, + statistics/distributions/fcdf.m, statistics/distributions/finv.m, + statistics/distributions/fpdf.m, statistics/distributions/frnd.m, + statistics/distributions/gamcdf.m, + statistics/distributions/gaminv.m, + statistics/distributions/gampdf.m, + statistics/distributions/gamrnd.m, + statistics/distributions/geocdf.m, + statistics/distributions/geoinv.m, + statistics/distributions/geopdf.m, + statistics/distributions/geornd.m, + statistics/distributions/hygecdf.m, + statistics/distributions/hygeinv.m, + statistics/distributions/hygepdf.m, + statistics/distributions/hygernd.m, + statistics/distributions/kolmogorov_smirnov_cdf.m, + statistics/distributions/laplace_cdf.m, + statistics/distributions/laplace_inv.m, + statistics/distributions/laplace_pdf.m, + statistics/distributions/laplace_rnd.m, + statistics/distributions/logistic_cdf.m, + statistics/distributions/logistic_inv.m, + statistics/distributions/logistic_pdf.m, + statistics/distributions/logistic_rnd.m, + statistics/distributions/logncdf.m, + statistics/distributions/logninv.m, + statistics/distributions/lognpdf.m, + statistics/distributions/lognrnd.m, + statistics/distributions/normcdf.m, + statistics/distributions/norminv.m, + statistics/distributions/normpdf.m, + statistics/distributions/normrnd.m, + statistics/distributions/pascal_cdf.m, + statistics/distributions/pascal_inv.m, + statistics/distributions/pascal_pdf.m, + statistics/distributions/pascal_rnd.m, + statistics/distributions/poisscdf.m, + statistics/distributions/poissinv.m, + statistics/distributions/poisspdf.m, + statistics/distributions/poissrnd.m, + statistics/distributions/stdnormal_cdf.m, + statistics/distributions/stdnormal_inv.m, + statistics/distributions/stdnormal_pdf.m, + statistics/distributions/stdnormal_rnd.m, + statistics/distributions/tcdf.m, statistics/distributions/tinv.m, + statistics/distributions/tpdf.m, statistics/distributions/trnd.m, + statistics/distributions/unifcdf.m, + statistics/distributions/unifinv.m, + statistics/distributions/unifpdf.m, + statistics/distributions/unifrnd.m, + statistics/distributions/wblcdf.m, + statistics/distributions/wblinv.m, + statistics/distributions/wblpdf.m, + statistics/distributions/wblrnd.m, + statistics/distributions/wienrnd.m, statistics/tests/anova.m, + statistics/tests/bartlett_test.m, + statistics/tests/chisquare_test_homogeneity.m, + statistics/tests/chisquare_test_independence.m, + statistics/tests/cor_test.m, statistics/tests/f_test_regression.m, + statistics/tests/hotelling_test.m, + statistics/tests/hotelling_test_2.m, + statistics/tests/kolmogorov_smirnov_test.m, + statistics/tests/kolmogorov_smirnov_test_2.m, + statistics/tests/kruskal_wallis_test.m, statistics/tests/manova.m, + statistics/tests/mcnemar_test.m, statistics/tests/prop_test_2.m, + statistics/tests/run_test.m, statistics/tests/sign_test.m, + statistics/tests/t_test.m, statistics/tests/t_test_2.m, + statistics/tests/t_test_regression.m, statistics/tests/u_test.m, + statistics/tests/var_test.m, statistics/tests/welch_test.m, + statistics/tests/wilcoxon_test.m, statistics/tests/z_test.m, + statistics/tests/z_test_2.m, strings/base2dec.m, strings/blanks.m, + strings/deblank.m, strings/dec2base.m, strings/dec2bin.m, + strings/dec2hex.m, strings/findstr.m, strings/hex2dec.m, + strings/index.m, strings/isletter.m, strings/lower.m, + strings/rindex.m, strings/split.m, strings/str2mat.m, + strings/str2num.m, strings/strcat.m, strings/strcmpi.m, + strings/strfind.m, strings/strjust.m, strings/strmatch.m, + strings/strncmp.m, strings/strncmpi.m, strings/strrep.m, + strings/strtrunc.m, strings/strvcat.m, strings/substr.m, + strings/upper.m, testfun/assert.m, testfun/demo.m, + testfun/example.m, testfun/fail.m, testfun/speed.m, + testfun/test.m, time/asctime.m, time/calendar.m, time/ctime.m, + time/datenum.m, time/datestr.m, time/datevec.m, time/eomday.m, + time/etime.m, time/is_leap_year.m: + Use print_usage instead of usage. + + 2006-10-09 David Bateman + + * time/datevec.m: Add additional compatible default parsing strings. + + 2006-10-09 Bill Denney + + * pkg/pkg.m: Remove trailing "\n" from error messages. + Remove compare_versions subfunction. + + * miscellaneous/compare_versions.m: New function to compare + version numbers as strings with any boolean operators. + + * miscellaneous/untar.m: Check more rigorously to see if the tar + file exists. + + 2006-10-04 John W. Eaton + + * pkg/pkg.m: Use fullfile to concatenate directory and file names. + + 2006-10-04 Sᅵren Hauberg + + * pkg/pkg.m: Update docs. Handle prefix option. + Handle dependencies for load option. + + 2006-10-04 John W. Eaton + + * deprecated/clearplot.m, deprecated/clg.m: New functions. + + * plot/clg.m: Delete. + * plot/__init_plot_vars__.m: New function. + * plot/__setup_plot__.m: Use __init_plot_vars__. + + 2006-10-03 Sᅵren Hauberg + + * pkg/pkg.m: Avoid calling addpath with no args. + + 2006-10-03 Bill Denney + + * audio/loadaudio.m, control/base/nyquist.m, + control/system/__zp2ssg2__.m, linear-algebra/cross.m, + linear-algebra/krylov.m, statistics/base/center.m, + statistics/base/median.m, statistics/base/std.m, + statistics/base/var.m, testfun/test.m: Use the new find syntax to + find first or last element matching a condition. + + 2006-10-02 Bill Denney + + * strings/deblank.m, strings/upper.m, strings/lower.m, + general/__isequal__.m: Minimize looping using cellfun. + + 2006-10-02 David Bateman + + * pkg/pkg.m (copy_files): always create installation directory. + + 2006-10-02 Thomas Weber + + * miscellaneous/doc.m: Swap file and directory args to info. + + 2006-10-01 Arno Onken + + * statistics/distributions/exprnd.m: Fix typo. + + 2006-09-30 Benjamin Lindner + + * polynomial/ppval.m: Use .' instead of '. + * polynomial/spline.m: Likewise. New tests. + + 2006-09-26 David Bateman + + * __plt3__.m: Using global variables __plot_data__, + __plot_data_offset__ and __plot_command__ to store plots and + correctly handle multiplots, and hold state. Only accept a single + data parameter plus, using, format and with strings. Remove + setting of gnuplot parameters. + * __make_using_clause__.m: New function extracted from __plt__.m. + * __setup_plot__.m: Convert to a function and pass the plotting + command to use. + * __plt__.m: Change call to __setup_plot__ and __make_using_clause__. + * contour.m: Use unwind protect on the parametric state of plot + and __plt3__ instead of calling __gnuplot_splot__ directly. + * mesh.m: ditto. + * plot3.m: Error checking, setting of parametric state and + formation of matrix to plot moved from old __plt3__. + + 2006-09-22 Michael Creel + + * deprecated/chisquare_pdf.m: Typo in documentation. + + 2006-09-22 Sᅵren Hauberg + + * signal/filter2.m: Correct texinfo doc. + + 2006-09-22 David Bateman + + * miscellaneous/parseparams.m: Correct texinfo doc. + + 2006-09-15 David Bateman + + * pkg/pkg.m (prepare_installation): Don't create package + installation directory here. + (copy_files): Create it here instead, to avoid issues with + upgrades. Also install the COPYING file in packinfo. + + 2006-09-13 John W. Eaton + + * general/blkdiag.m: Adjust to new cellfun rules. + + 2006-08-30 David Bateman + + * pkg/pkg.m (install): Disallow bundles of packages. More verbose + error message for archive name not matching package name. + (installed_packages): Size header of printed results to + arguments. Sort the list of installed packages before printing + them. + + 2006-09-11 Paul Kienzle + + * signal/freqz.m: Update tests. + + 2006-09-11 Ken Kouno + + * signal/freqz.m: Corretly postpad arrays. + Don't call fliplr on a column vector. + + 2006-09-11 Luis F. Ortiz + + * general/shiftdim.m: Use permute instead of reshape. + + 2006-09-05 Alexander Barth + + * miscellaneous/parseparams.m: New function. + + 2006-09-05 Rafael Laboissiere + + * miscellaneous/doc.m: Swap order of --file and --directory + options for info program invocation. + + 2006-08-30 David Bateman + + * pkg/pkg.m (create_pkgadddel): Resolve variable name-clash from + previous change. + + 2006-08-26 David Bateman + + * pkg/pkg.m (install, uninstall, installed_packages): Allow for + absence of trailing "/" in OCTAVE_HOME. + + 2006-08-25 Alexander Barth + + * time/datenum.m: Allow arg to be character string. + + 2006-08-25 David Bateman + + * pkg/pkg.m (install): Verify that package name correponds to the + archive name. Treat both PKG_ADD and PKG_DEL and remove them if + they are empty. If package directory is empty, remove it to fail + gracefully for system specific packages. + (extract_pkgadd, create_pkgadd): delete. + (extract_pkg, create_pkg): Generalized versions of deleted functions + (copy_files): Install both bin/ and doc/ directories, adding the + bin/ to the EXEC_PATH when the package is loaded. + + 2006-08-24 John W. Eaton + + * image/saveimage.m: Use logical indexing instead of + indices computed by calling find on the logical index. + + 2006-08-24 Sᅵren Hauberg + + * miscellaneous/bincoeff.m, specfun/factorial.m: + Use logical indexing instead of indices computed by calling find + on the logical index. + + * linear-algebra/krylov.m: Delete unused local var nzidx. + + 2006-08-23 Quentin Spencer + + * control/system/tf2zp.m: Simplify gain calculation. + + 2006-08-23 John W. Eaton + + * plot/__plt__.m: Insert using clauses for all plots. + + 2006-08-23 A S Hodel + + * control/system/sysscale.m: Call tf and zp with correct number of + args. + + 2006-08-22 David Bateman + + * pkg/pkg.m (extract_pkgadd, create_pkgadd): New functions to + Search inst/*.m and src/*.m files in the package for + PKG_ADD directives and append user supplied PKG_ADD. + (pkg): Call create_pkgadd after copying files. + + 2006-08-21 Sᅵren Hauberg + + * pkg/pkg.m: Handle multiple packages in a single file. + Insert directory separator between OCTAVE_HOME and rest of package + installation directory. + + 2006-08-21 John W. Eaton + + * general/num2str.m: Early return if arg is empty. + From Thomas Treichl . + + 2006-08-21 David Bateman + + * strings/mat2str.m: Compute NC before using. + + 2006-08-17 John W. Eaton + + * audio/wavread.m: Fix calculation of sample count. + + 2006-08-14 Sᅵren Hauberg + + * image/imshow.m: New Matlab-compatible version. + + 2006-08-15 John W. Eaton + + * deprecated/is_global.m: Delete. + + 2006-08-14 John W. Eaton + + * pkg/Makefile.in (script_sub_dir): Change from plot to pkg. + + 2006-08-14 Dmitri A. Sergatskov + + * sparse/spy.m, control/base/bode.m, control/base/__stepimp__.m, + signal/freqz_plot.m: Adapt to new automatic_replot definition. + + 2006-08-14 Sᅵren Hauberg + + * pkg/pkg.m: Don't pass function name to print_usage. + Use addpath and rmpath instead of manipulating LOADPATH. + Handle changes to system function. + (rm_rf): New subfunction. Use it to avoid confirmation dialog for + recursive directory removal. + + * strings/bin2dec.m: Ignore spaces in input for compatibility. + + * colormap.m: Change global variable to persistent. + + * rgb2ind.m: Handle single 3-d array as rgb image. + + 2006-08-14 John W. Eaton + + * strings/str2double.m: Fix missing semicolon. + + 2006-07-27 Jim Peterson + + * plot/plot3.m: Accept one complex or one real and one complex + argument and plot real and imaginary components for y and z. + + 2006-07-27 John W. Eaton + + * testfun/test.m: Call fflush after each block of calls to + fprintf, fputs, or fdisp. + + 2006-07-26 John W. Eaton + + * miscellaneous/mex.m: New function. + + 2006-07-22 John W. Eaton + + * special-matrix/hadamard.m: Coerce bool matrix to double. + + 2006-07-07 John W. Eaton + + * miscellaneous/orderfields.m: New file. + + 2006-06-30 John W. Eaton + + * time/datevec.m: Make another attempt to account for precision of + datenum format. + + 2006-06-29 John W. Eaton + + * miscellaneous/dump_prefs.m: Remove obsolete symbols from the list. + Use feval instead of "type -q" to get values now that all the + symbols are functions. + + 2006-06-16 John W. Eaton + + * time/datevec.m: Avoid computing log of non-positive values. + + 2006-06-14 John W. Eaton + + * time/datevec.m: Attempt to account for precision of datenum format. + + 2006-06-01 Quentin H. Spencer + + * audio/wavread.m: Fix file range error and add read support for + 24-bit WAV files. + + 2006-06-01 David Bateman + + * general/interpft.m, general/quadl.m, general/polyarea.m, + general/interp1.m, general/gradient.m, general/interp2.m, + general/bicubic.m, miscellaneous/inputname.m, plot/__plt3__.m, + plot/ndgrid.m, plot/plot3.m, polynomial/pchip.m, sparse/pcg.m, + sparse/pcr.m, strings/mat2str.m: New files from Octave Forge. + + 2006-05-31 Bill Denney + + * miscellaneous/fileparts.m, miscellaneous/fullfile.m: Add seealso. + * miscellaneous/texas_lotto.m: Fix warning message. + + 2006-05-26 John W. Eaton + + * miscellaneous/doc.m: Also handle nargin == 0. + + 2006-05-23 John W. Eaton + + * plot/mesh.m: Use __gnupot_raw__ except where __gnuplot_set__ is + really needed. + + 2006-05-22 John W. Eaton + + * general/lookup.m: New file from Octave Forge. + + 2006-05-22 David Bateman + + * general/nthroot.m, linear-algebra/rref.m, specfun/isprime.m, + specfun/primes.m, specfun/factor.m, specfun/nchoosek.m, + specfun/legendre.m, specfun/perms.m, special-matrix/rosser.m, + special-matrix/wilkinson.m, special-matrix/pascal.m, + special-matrix/magic.m, special-matrix/hadamard.m, + strings/strtok.m: New files from Octave Forge. + + 2006-05-19 David Bateman + + * polynomial/unmkpp.m, polynomial/mkpp.m, polynomial/spline.m, + polynomial/ppval.m, set/setxor.m: New files from Octave Forge. + + 2006-05-17 John W. Eaton + + * set/intersection.m: Delete + * deprecated/intersection.m: New file. + + 2006-05-17 David Bateman + + * general/cplxpair.m, general/trapz.m, general/cumtrapz.m, + general/isdir.m, miscellaneous/dos.m, miscellaneous/getfield.m, + miscellaneous/setfield.m, plot/fplot.m, set/intersect.m, + signal/ifftshift.m, signal/filter2.m, specfun/betaln.m, + specfun/factorial.m, strings/strvcat.m: New files from Octave + Forge. + + 2006-05-11 John W. Eaton + + * path/path.m: Delete (now a built-in function). + + * pkg/Makefile.in: New file. + * configure.in (AC_CONFIG_FILES): Add pkg/Makefile to the list. + * Makefile.in (SUBDIRS): Add pkg to the list. + + 2006-05-10 John W. Eaton + + * tar.m, untar.m, unzip.m: Adapt to Octave coding style. + * tar.m, untar.m: Only tar; don't compress or uncompress. + + 2006-05-10 Sᅵren Hauberg + + * tar.m, untar.m, unzip.m: New files. + + 2006-05-10 John W. Eaton + + * path/addpath.m, path/rmpath.m: Improve compatibility. + * path/setpath.m: Delete. + + * pkg/pkg.m: New file. + + 2006-05-09 Keith Goodman + + * plot/plot.m: Doc string fix. + + 2006-05-09 Paul Kienzle + + * testfun/speeed.m: Use new interface to unique and assert. + Improve documentation. Approximate time complexity from log-log + plot. Return time complexity and raw times if requested. The + mean ratio is no longer returned. Provide complete control over + which n are computed. + + 2006-05-09 John W. Eaton + + * path/path.m: Move here from miscellaneous. + Adapt to new LOADPATH definition. + + 2006-05-03 David Bateman + + * path/rmpath.m, path/addpath.m, miscellaneous/path.m: Replace all + explicit uses of a path seperation character with pathsep(). + + 2006-05-03 Bob Weigel + + * set/setdiff.m: New arg, byrows. New tests. + + 2006-04-29 John W. Eaton + + * startup/main-rcfile: Disable some warnings. + + 2006-04-14 Bill Denney + + * strings/strcmpi.m: Return false instead of error if args are not + char or cellstr. + + 2006-04-10 John W. Eaton + + * miscellaneous/dir.m: Ensure that returned structure array is + Nx1, not 1xN. + + 2006-04-06 Olli Saarela + + * plot/hist.m: Ignore NaN in inputs. + + 2006-04-06 Keith Goodman + + * miscellaneous/mkoctfile.m: Doc string fix. + + 2006-04-05 John W. Eaton + + * plot/__plt2__.m: Return data = [] and fmtstr = "" if x1 and x2 + are both empty. + * plot/__plt__.m: Ignore empty data and format strings returned + from __plt1__ or __plt2__. + + 2006-04-04 Bob Weigel + + * set/unique.m: Properly handle single column input when + "rows" is specified. + + 2006-04-04 John W. Eaton + + * path/setpath.m: New file. + * path/savepath.m: Use setpath to set path instead of assigning + directly to LOADPATH. + + * path/Makefile.in, path/addpath.m, path/rmpath.m, path/savepath.m: + New files, adapted from Octave Forge by Keith Goodman + . + * path: New directory. + * Makefile.in (SUBDIRS): Add it to the list. + * configure.in (AC_CONFIG_FILES): Include path/Makefile here. + + 2006-04-02 David Bateman + + * general/tril.m, general.triu.m: + Use resize (resize (x, 0), nr, nc) rather than zeros (nr, nc) + to allow user types to work correctly. + * special-matrix/hankel.m, special-matrix/toeplitz.m: Ditto. + + 2006-04-03 David Bateman + + * plot/grid.m: Cache the state of the grid to allow toggling. + Accept keyword "minor" for minor grid. + + 2006-03-28 John W. Eaton + + * general/isscalar.m: Only require that all dimensions are 1 for + compatiblity. + + 2006-03-28 Bill Denney + + * general/isvector.m: Allow non-numeric objects to be vectors for + compatibility. + + 2006-03-28 Keith Goodman + + * plot/__errplot__.m: Doc string fix. + + * miscellaneous/doc.m: Mark as command. + + * general/isequal.m, general/__isequal__.m, general/cell2mat.m, + general/isequalwithequalnans.m, general/blkdiag.m, + strings/strfind.m, miscellaneous/doc.m: Update FSF address. + + 2006-03-27 Don Bindner + + * plot/meshgrid.m: If nargout == 3 and vectors are supplied, + return 3d matrices. + + 2006-03-27 Keith Goodman + + * time/toc.m: Don't print "Elapsed time..." if tic has not been set. + + 2006-03-22 John W. Eaton + + * plot/print.m: Don't replot after popping terminal setting. + + 2006-03-20 John W. Eaton + + * miscellaneous/mkoctfile.m: Use version-specific name of + mkoctfile. Use fullfile to construct file name. + + 2006-03-20 Keith Goodman + + * miscellaneous/mkoctfile.m: Make it possible to call mkoctfile + shell script from Octave prompt. + + 2006-03-17 John W. Eaton + + * deprecated/weibcdf.m, deprecated/weibinv.m, + deprecated/weibpdf.m, deprecated/weibrnd.m: New functions. + + * deprecated/weibull_cdf.m, deprecated/weibull_inv.m, + deprecated/weibull_pdf.m, deprecated/weibull_rnd.m: + Call new wbl functions to do the real work. + Swap args and provide default values as necessary to preserve + compatibility with old version of Octave. + + * statistics/distributions/wblcdf.m: Rename from weibcdf.m. + statistics/distributions/wblinv.m: Rename from weibinv.m. + statistics/distributions/wblpdf.m: Rename from weibpdf.m. + statistics/distributions/wblrnd.m: Rename from weibrnd.m. + Swap scale and shape args for compatibility. + + * deprecated/lognormal_cdf.m, deprecated/lognormal_inv.m, + deprecated/lognormal_pdf.m, deprecated/lognormal_rnd.m: + Preserve compatibility with old versions of Octave given new + definitions of logncdf, logninv, lognpdf, and lognrnd. + + * statistics/distributions/logncdf.m, + statistics/distributions/logninv.m, + statistics/distributions/lognpdf.m, + statistics/distributions/lognrnd.m: Compatibility fixes. + From Ben Barrowes + + * deprecated/hypergeometric_rnd.m: Update interface to match + current 2.1.x version. + + * deprecated/t_rnd.m: Call trnd, not t_rnd. + + * miscellaneous/dir.m: Use readdir instead of glob. + Special case for "." to avoid globbing. Use list_in_columns. + Eliminate unused variables len and finfo. + + 2006-03-16 Bill Denney + + * miscellaneous/dir.m: Improve compatibility. + + 2006-03-15 William Poetra Yoga Hadisoeseno + + * time/calendar.m, time/datestr.m, time/datevec.m, time/eomday.m, + time/now.m, time/weekday.m: New functions from Octave Forge. + + 2006-03-16 John W. Eaton + + * control/base/bode_bounds.m: Check for iip and iiz empty instead + of looking at sum of max dimensions. + + 2006-03-16 David Bateman + + * testfun/test.m: Clear last warning before warning test to avoid + issues with previously set warnings. + * build_sparse_test.sh: Tests for multiple RHS for rectanguar + sparse matrices. Force matrix type from spqr solution to be + singular to force QR solvers to be used for assert. + + 2006-03-16 William Poetra Yoga Hadisoeseno + + * strings/strfind.m: New file. + + 2006-03-16 John W. Eaton + + * general/rows.m, general/columns.m: Delete. + + 2006-03-15 William Poetra Yoga Hadisoeseno + + * strings/strcmpi.m: Simplify. + * strings/strncmpi.m: Import from octave-forge, simplify. + * strings/strtrunc.m: New file. + + * strings/lower.m, strings/upper.m: Handle cellstr arguments. + + 2006-03-15 John W. Eaton + + * miscellaneous/doc.m: New file. + From Sᅵren Hauberg . + + 2006-03-15 Keith Goodman + + * miscellaneous/mkoctfile.m: New file. + + 2006-03-15 John W. Eaton + + * polynomial/residue.m: Use & instead of && to generate arg for find. + + 2006-03-14 Keith Goodman + + * strings/bin2dec.m: Doc fix. + + 2006-03-10 Paul Kienzle + + * time/etime.m: Use datenum to support times spanning year boundaries. + * time/datenum.m: New function to compute day number from time. + + 2006-03-09 John W. Eaton + + * miscellaneous/unix.m, plot/print.m: + Swap order of outputs from system. + + 2006-03-06 Keith Goodman + + * audio/lin2mu.m, audio/loadaudio.m, audio/mu2lin.m, + audio/playaudio.m, audio/record.m, audio/saveaudio.m, + audio/wavread.m, audio/wavwrite.m, control/base/DEMOcontrol.m, + control/base/__stepimp__.m, control/base/are.m, + control/base/controldemo.m, control/base/damp.m, + control/base/dare.m, control/base/impulse.m, control/base/lqg.m, + control/base/step.m, control/system/abcddim.m, + control/system/is_abcd.m, control/system/is_controllable.m, + control/system/is_detectable.m, control/system/is_observable.m, + control/system/is_stabilizable.m, control/system/is_stable.m, + control/system/jet707.m, control/system/sys2fir.m, + control/system/sysdimensions.m, control/system/sysupdate.m, + control/system/tfout.m, control/system/ugain.m, + control/system/zpout.m, elfun/lcm.m, finance/irr.m, + finance/nper.m, finance/npv.m, finance/pmt.m, finance/pv.m, + finance/rate.m, general/__isequal__.m, general/bitcmp.m, + general/bitget.m, general/bitset.m, general/blkdiag.m, + general/cart2pol.m, general/cart2sph.m, general/cell2mat.m, + general/circshift.m, general/columns.m, general/flipdim.m, + general/fliplr.m, general/flipud.m, general/ind2sub.m, + general/int2str.m, general/isdefinite.m, general/isequal.m, + general/isequalwithequalnans.m, general/isscalar.m, + general/issquare.m, general/issymmetric.m, general/isvector.m, + general/logspace.m, general/mod.m, general/nextpow2.m, + general/num2str.m, general/perror.m, general/pol2cart.m, + general/rem.m, general/rot90.m, general/rotdim.m, general/rows.m, + general/shiftdim.m, general/sph2cart.m, general/sub2ind.m, + general/tril.m, image/hsv2rgb.m, image/image.m, image/imagesc.m, + image/imshow.m, image/ind2gray.m, image/ind2rgb.m, + image/loadimage.m, image/rgb2hsv.m, image/rgb2ind.m, + image/saveimage.m, io/beep.m, linear-algebra/cond.m, + linear-algebra/norm.m, miscellaneous/comma.m, miscellaneous/dir.m, + miscellaneous/license.m, miscellaneous/menu.m, + miscellaneous/semicolon.m, miscellaneous/texas_lotto.m, + miscellaneous/unix.m, miscellaneous/ver.m, optimization/sqp.m, + plot/__errcomm__.m, plot/__errplot__.m, plot/__pltopt1__.m, + plot/__pltopt__.m, plot/bar.m, plot/contour.m, plot/errorbar.m, + plot/grid.m, plot/hist.m, plot/loglog.m, plot/loglogerr.m, + plot/mesh.m, plot/meshgrid.m, plot/plot.m, plot/polar.m, + plot/semilogx.m, plot/semilogxerr.m, plot/semilogy.m, + plot/semilogyerr.m, plot/shg.m, plot/stairs.m, plot/title.m, + plot/xlabel.m, polynomial/compan.m, polynomial/conv.m, + polynomial/deconv.m, polynomial/polyderiv.m, polynomial/polygcd.m, + polynomial/polyinteg.m, polynomial/polyout.m, + polynomial/polyreduce.m, polynomial/polyval.m, + polynomial/polyvalm.m, polynomial/residue.m, set/complement.m, + set/create_set.m, set/intersection.m, set/ismember.m, + set/setdiff.m, set/union.m, set/unique.m, sparse/etreeplot.m, + sparse/gplot.m, sparse/spalloc.m, sparse/sphcat.m, + sparse/sprand.m, sparse/sprandn.m, sparse/sprandsym.m, + sparse/spvcat.m, sparse/treeplot.m, specfun/erfinv.m, + specfun/log2.m, specfun/pow2.m, special-matrix/hankel.m, + special-matrix/hilb.m, special-matrix/invhilb.m, + special-matrix/sylvester_matrix.m, special-matrix/toeplitz.m, + special-matrix/vander.m, statistics/base/median.m, + statistics/base/std.m, statistics/distributions/gamcdf.m, + statistics/distributions/gaminv.m, + statistics/distributions/gampdf.m, + statistics/distributions/gamrnd.m, strings/base2dec.m, + strings/bin2dec.m, strings/dec2base.m, strings/dec2bin.m, + strings/dec2hex.m, strings/hex2dec.m, strings/isletter.m, + strings/lower.m, strings/upper.m, testfun/assert.m, + testfun/demo.m, testfun/example.m, testfun/test.m, time/etime.m: + Move @seealso inside @defXXX macro. Remove "and" from @seealso. + + 2006-02-27 John W. Eaton + + * time/tic.m: Move here from miscellaneous/tic.m. + * time/toc.m: Move here from miscellaneous/toc.m. + + 2006-02-26 Keith Goodman + + * miscellaneous/toc.m: Display "Elapsed time is X seconds" if user + does not assign output of toc to a variable. + + 2006-02-16 Bill Denney + + * axis.m: Catch limits that are the same and return an error. + + 2006-02-15 Dmitri A. Sergatskov + + * plot/print.m: Accept emf device option to support Enhanced + Metafile format. + + 2006-02-15 A S Hodel + + * control/base/lqe.m: Doc fix. + + 2006-02-15 Keith Goodman + + * statistics/distributions/gamcdf.m: Doc fix. + * statistics/distributions/gaminv.m: Doc fix. + * statistics/distributions/gampdf.m: Doc fix. + * statistics/distributions/gamrnd.m: Doc fix. + + 2006-02-09 David Bateman + + * general/triu.m: Minimum change to allow sparse matrix. More needed + for arbitrary user type. + * general/tril.m: ditto. + * sparse/sprand.m: Doc fix. + * sparse/sprandn.m: Ditto. + * sparse/sprandsym.m: New function. + * audio/setaudio.m, general/cart2pol.m, general/cart2sph.m, + general/pol2cart.m, general/sph2cart.m, signal/freqz_plot.m: + Update for syntax error for latest texinfo.tex file. + + 2006-02-02 John W. Eaton + + * plot/grid.m: Append ";\n" to "set grid" command. + + 2006-02-02 A S Hodel + + * control/base/rlocus.m: Don't atttempt to plot rlzer if it is empty. + + 2006-01-13 John W. Eaton + + * audio/Makefile.in, control/base/Makefile.in, + control/hinf/Makefile.in, control/obsolete/Makefile.in, + control/system/Makefile.in, control/util/Makefile.in, + deprecated/Makefile.in, elfun/Makefile.in, finance/Makefile.in, + general/Makefile.in, image/Makefile.in, io/Makefile.in, + linear-algebra/Makefile.in, miscellaneous/Makefile.in, + optimization/Makefile.in, plot/Makefile.in, + polynomial/Makefile.in, quaternion/Makefile.in, set/Makefile.in, + signal/Makefile.in, sparse/Makefile.in, specfun/Makefile.in, + special-matrix/Makefile.in, startup/Makefile.in, + statistics/base/Makefile.in, statistics/distributions/Makefile.in, + statistics/models/Makefile.in, statistics/tests/Makefile.in, + strings/Makefile.in, time/Makefile.in, testfun/Makefile.in: + (all): Depend on PKG_ADD. + (PKG_ADD): New target. + + 2006-01-13 Bill Denney + + * miscellaneous/dir.m: Add @seealso{} to docstring. + + 2006-01-13 John W. Eaton + + * time/etime.m: Move here from miscellaneous/etime.m. + * time/is_leap_year.m: Move here from miscellaneous/is_leap_year.m. + + 2006-01-13 Bill Denney + + * miscellaneous/dir.m: Use filesep instead of "/" where needed. + * miscellaneous/fullfile.m: Likewise. + + 2006-01-12 David Bateman + + * general/blkdiag.m: Compatible behavior for empty matrices + * statistics/base/unidrnd.m: Documentation buglet. + + 2005-12-14 David Bateman + + * testfun/assert.m, testfun/fail.m, testfun/test.m, testfun/demo.m, + testfun/speed.m, testfun/example.m, Makefile.in: New files. + + * Makefile.in (SUBDIRS): Include testfun. + * configure.in (AC_CONFIG_FILES): Include testfun/Makefile. + + * miscellaneous/dir.m: Transpose sub-assignment for cleanness. + + * general/__isequal__.m: Remove reference to getfield. + + * plot/hist.m: Update test code for row/column discrepencies. + * signal/freqz.m: Alter output row/column for matlab compatibility. + Update the test code for this. + * sparse/spstats.m: Fix small bug in the dimension of output. + + 2005-12-13 William Poetra Yoga Hadisoeseno + + * cell/cell2mat.m: New file, from octave-forge. + + 2005-12-13 Ivana Varekova + + * sparse/treeplot.m, sparse/etreeplot.m, sparse/gplot.m: + New graph theory functions. + + 2005-12-13 John W. Eaton + + * general/blkdiag.m: Use "isempty" instead of @isempty. + + * control/system/ss.m: Doc fix. + From Jorge Barros de Abreu . + + 2005-12-12 Michael Zeising + + * audio/wavread.m, audio/wavwrite.m: + Correct scaling for 8-bit linear pcm samples. + Improve scaling for all other linear pcm resolutions. + + 2005-12-07 John W. Eaton + + * statistics/base/moment.m: Don't save and restore warn_str_to_num. + + * sparse/spdiags.m: Don't save and restore warn_fortran_indexing. + * strings/strjust.m: Likewise. + + * general/shift.m: Don't save and restore warn_empty_list_elements. + * signal/arma_rnd.m: Likewise. + * strings/strcat.m: Likewise. + * control/base/__freqresp__.m: Likewise. + * control/base/place.m: Likewise. + * control/base/pzmap.m: Likewise. + * control/base/pzmap.m: Likewise. + * control/system/sysappend.m: Likewise. + * control/system/syscont.m: Likewise. + * control/system/sysdisc.m: Likewise. + * control/system/sysgroup.m: Likewise. + * control/system/tfout.m: Likewise. + * control/system/zpout.m: Likewise. + * control/util/__outlist__.m: Likewise. + + 2005-12-06 John W. Eaton + + * audio/wavread.m, audio/wavwrite.m: Adapt to Octave coding style. + Avoid for loop in interleave/deinterleave steps. + + 2005-12-06 Michael Zeising + + * audio/wavread.m, audio/wavwrite.m: New files. + + 2005-12-06 John W. Eaton + + * miscellaneous/dir.m: Return Nx1 instead of 1xN struct array. + + 2005-12-05 John W. Eaton + + * plot/axis.m: Add "## PKG_ADD: mark_as_command axis" line. + + 2005-12-02 John W. Eaton + + * miscellaneous/fileattrib.m: New function. + + 2005-12-01 John W. Eaton + + * general/columns.m: Use size (x, 2) instead of [nr, nc] = size (x). + * general/rows.m: Use size (x, 1) instead of [nr, nc] = size (x). + From William Poetra Yoga Hadisoeseno . + + 2005-11-30 John W. Eaton + + * linear-algebra/krylov.m: Format doc string. + From Jorge Barros de Abreu . + + 2005-11-23 William Poetra Yoga Hadisoeseno + + * general/blkdiag.m: Import from octave-forge. + Ignore empty matrices in the input. Add tests. + + * general/isequal.m, general/isequalwithequalnans.m: + New wrapper scripts for general/__isequal__.m. + * general/__isequal__.m: Rename from general/isequal.m. + New arg, nans_compare_equal. + + 2005-11-29 John W. Eaton + + * miscellaneous/ver.m: Use new uname built-in function instead of + calling system. Only append octave_forge_string if + OCTAVE_FORGE_VERSION exists. Use puts instead of disp. + Call license instead of hard-coding license info here. + + * miscellaneous/license.m: Use persistent instead of global for + __octave_licenses__. Use puts instead of disp. + Use getuid and getpwuid instead of calling unix ("id -un"). + If nargout = 1, return license info instead of printing usage message. + + 2005-11-29 William Poetra Yoga Hadisoeseno + + * miscellaneous/ver.m: New file. + * miscellaneous/license.m: New file. + + 2005-11-22 John W. Eaton + + * plot/axis.m: Use %.16g instead of just %g to format ranges for + gnuplot set command. + + 2005-11-15 John W. Eaton + + * general/shiftdim.m: Doc fix. + + 2005-11-07 Keith Goodman + + * set/unique.m: Doc string fix. + + 2005-11-01 John W. Eaton + + * Makefile.in (distclean, maintainer-clean): + Also remove autom4te.cache directory. + From Quentin Spencer . + + 2005-10-28 John W. Eaton + + * general/shiftdim.m: Compatibility fix for row vectors. + Correct check for non-scalar non-integer shift. For positive + N, shift is remainder of N and number of dims. Always return NS. + Simplify. + + 2005-10-18 Keith Goodman + + * general/randperm.m: Improve compatibility by allowing input + value of zero. + + 2005-10-13 John W. Eaton + + * plot/__plt__.m, plot/__errplot__.m, plot/replot.m: + If in multiplot mode, clear plot before issuing new plot command. + + * plot/__setup_plot__.m: New function. + * plot/__plt__.m, plot__errplot__.m: Use it. + Handle multiplot data and offsets here. + + * plot/__plot_globals__.m: Also keep track of multiplot options. + Move initialization to __setup_plot__.m. + + * plot/subplot.m: Multiplot globals now in __plot_globals__.m. + Don't reset gnuplot_command_replot. + + * plot/replot.m: Handle multiplot data and offsets here. + * plot__axis_label__.m, plot/axis.m, plot/grid.m, + plot/plot_border.m, plot/plot.m, plot/plot_title.m, + plot/top_title.m: Call replot, not __gnuplot_replot__. + + 2005-10-12 John W. Eaton + + * plot/figure.m: Handle __current_figure__, not gnuplot details. + + 2005-10-04 Rafael Laboissiere + + * binoinv.m, chi2pdf.m, frnd.m, poissinv.m, tinv.m, trnd.m, + weibrnd.m: Removed calls and references to deprecated _pdf and + _inv functions. + * chi2pdf.m: Fixed typos in the documentation. + + 2005-09-28 John W. Eaton + + * miscellaneous/single.m: New function. + + * statistics/base/unidrnd.m: New function. + + 2005-09-27 John W. Eaton + + * miscellaneous/dir.m: Filename never includes directory part. + + 2005-09-22 John W. Eaton + + * polynomial/residue.m: Use logical indexing instead of find.. + + 2005-09-22 Julius Smith + + * polynomial/residue.m: Avoid division by zero for pure imaginary + and zero poles. + + 2005-09-22 Bill Denney + + * strings/deblank.m: Handle cell arrays. + * strings/split.m: New argument, N, to limit number of splits. + + 2005-09-22 Miroslaw Kwasniak + + * plot/__pltopt1__.m: Handle plot colors "w" and "k" separately. + + 2005-09-20 "Orestes Mas" + + * control/base/rlocus.m: Doc fix. + + 2005-09-20 John W. Eaton + + * general/isvector.m: Improve compatibility. + + * general/postpad.m: Allow first argument to be a scalar. + Allow padding to extend dimensionality. + * general/prepad.m: Likewise. + + 2005-09-14 Daniel + + * statistics/tests/bartlett_test.m, linear-algebra/cross.m, + statistics/distributions/discrete_cdf.m, general/fliplr.m, + /control/base/dgram.m: Doc string fixes. + From Jorge Barros de Abreu . + + 2005-09-12 Stefan van der Walt + + * saveimage.m: Do not ignore most significant bit when writing + black and white images to file. + + 2005-09-07 Bill Denney + + * audio/playaudio.m, control/base/__bodquist__.m, + control/base/lqg.m, control/obsolete/dezero.m, + control/system/__syschnamesl__.m, control/system/__sysconcat__.m, + control/system/c2d.m, control/system/cellidx.m, + control/system/d2c.m, control/system/dmr2d.m, + control/system/is_signal_list.m, control/system/listidx.m, + control/system/ss.m, control/system/sysappend.m, + control/system/sysconnect.m, control/system/sysdup.m, + control/system/sysgetsignals.m, control/system/sysidx.m, + control/system/sysprune.m, control/system/syssetsignals.m, + control/system/tfout.m, control/system/zpout.m, + control/util/prompt.m, control/util/sortcom.m, + control/util/strappend.m, finance/fv.m, finance/nper.m, + finance/pmt.m, finance/pv.m, finance/rate.m, general/diff.m, + general/num2str.m, general/repmat.m, general/sortrows.m, + general/strerror.m, image/colormap.m, image/imshow.m, + image/loadimage.m, image/saveimage.m, linear-algebra/norm.m, + miscellaneous/fileparts.m, miscellaneous/popen2.m, + plot/__axis_label__.m, plot/__errcomm__.m, plot/__plt1__.m, + plot/__plt2__.m, plot/__plt__.m, plot/__pltopt1__.m, + plot/__pltopt__.m, plot/axis.m, plot/bottom_title.m, plot/close.m, + plot/grid.m, plot/hist.m, plot/plot_border.m, plot/polar.m, + plot/print.m, plot/title.m, plot/top_title.m, + polynomial/polyout.m, set/unique.m, signal/freqz.m, signal/stft.m, + statistics/base/mean.m, statistics/base/moment.m, + statistics/tests/cor_test.m, + statistics/tests/kolmogorov_smirnov_test.m, + statistics/tests/kolmogorov_smirnov_test_2.m, + statistics/tests/prop_test_2.m, statistics/tests/sign_test.m, + statistics/tests/t_test.m, statistics/tests/t_test_2.m, + statistics/tests/t_test_regression.m, statistics/tests/u_test.m, + statistics/tests/var_test.m, statistics/tests/welch_test.m, + statistics/tests/wilcoxon_test.m, statistics/tests/z_test.m, + statistics/tests/z_test_2.m, strings/base2dec.m, strings/blanks.m, + strings/deblank.m, strings/dec2base.m, strings/index.m, + strings/rindex.m, strings/split.m, strings/str2mat.m, + strings/str2num.m, strings/strcat.m, strings/strcmpi.m, + strings/strncmp.m, strings/strrep.m, strings/substr.m: + Avoid deprecated functions. Use ischar instead of isstr. Use + isvector instead of is_vector. Use isstruct instead of + is_struct. Use char instead of setstr. + + 2005-08-31 Daniel + + * special-matrix/invhilb.m, statistics/base/iqr.m, + control/system/is_controllable.m, set/ismember.m: Doc fixes. + From Jorge Barros de Abreu . + + 2005-08-29 Bill Denney + + * image/saveimage.m: Open output file in binary mode. + + * miscellaneous/bug_report.m: Open prefs file in text mode. + + 2005-08-16 John W. Eaton + + * miscellaneous/computer.m: Handle optional maxsize and endian + outputs. + + 2005-08-15 John W. Eaton + + * strings/strcat.m: Allow single argument. + + 2005-07-18 John W. Eaton + + * strings/strcmp.m: Delete. + + 2005-07-13 John W. Eaton + + * deprecated/hypergeometric_rnd.m: Preserve compatibility with old + versions of Octave. + + 2005-07-13 Ben Barrowes + + * statistics/distributions/betacdf.m: Rename from beta_cdf.m. + * statistics/distributions/betainv.m: Rename from beta_inv.m. + * statistics/distributions/betapdf.m: Rename from beta_pdf.m. + * statistics/distributions/betarnd.m: Rename from beta_rnd.m. + * statistics/distributions/binocdf.m: Rename from binomial_cdf.m. + * statistics/distributions/binoinv.m: Rename from binomial_inv.m. + * statistics/distributions/binopdf.m: Rename from binomial_pdf.m. + * statistics/distributions/binornd.m: Rename from binomial_rnd.m. + * statistics/distributions/chi2cdf.m: Rename from chisquare_cdf.m. + * statistics/distributions/chi2inv.m: Rename from chisquare_inv.m. + * statistics/distributions/chi2pdf.m: Rename from chisquare_pdf.m. + * statistics/distributions/chi2rnd.m: Rename from chisquare_rnd.m. + * statistics/distributions/expcdf.m: Rename from exponential_cdf.m. + * statistics/distributions/expinv.m: Rename from exponential_inv.m. + * statistics/distributions/exppdf.m: Rename from exponential_pdf.m. + * statistics/distributions/exprnd.m: Rename from exponential_rnd.m. + * statistics/distributions/fcdf.m: Rename from f_cdf.m. + * statistics/distributions/finv.m: Rename from f_inv.m. + * statistics/distributions/fpdf.m: Rename from f_pdf.m. + * statistics/distributions/frnd.m: Rename from f_rnd.m. + * statistics/distributions/gamcdf.m: Rename from gamma_cdf.m. + * statistics/distributions/gaminv.m: Rename from gamma_inv.m. + * statistics/distributions/gampdf.m: Rename from gamma_pdf.m. + * statistics/distributions/gamrnd.m: Rename from gamma_rnd.m. + * statistics/distributions/geocdf.m: Rename from geometric_cdf.m. + * statistics/distributions/geoinv.m: Rename from geometric_inv.m. + * statistics/distributions/geopdf.m: Rename from geometric_pdf.m. + * statistics/distributions/geornd.m: Rename from geometric_rnd.m. + * statistics/distributions/hygecdf.m: Rename from hypergeometric_cdf.m. + * statistics/distributions/hygeinv.m: Rename from hypergeometric_inv.m. + * statistics/distributions/hygepdf.m: Rename from hypergeometric_pdf.m. + * statistics/distributions/hygernd.m: Rename from hypergeometric_rnd.m. + * statistics/distributions/logncdf.m: Rename from lognormal_cdf.m. + * statistics/distributions/logninv.m: Rename from lognormal_inv.m. + * statistics/distributions/lognpdf.m: Rename from lognormal_pdf.m. + * statistics/distributions/lognrnd.m: Rename from lognormal_rnd.m. + * statistics/distributions/normcdf.m: Rename from normal_cdf.m. + * statistics/distributions/norminv.m: Rename from normal_inv.m. + * statistics/distributions/normpdf.m: Rename from normal_pdf.m. + * statistics/distributions/normrnd.m: Rename from normal_rnd.m. + * statistics/distributions/poisscdf.m: Rename from poisson_cdf.m. + * statistics/distributions/poissinv.m: Rename from poisson_inv.m. + * statistics/distributions/poisspdf.m: Rename from poisson_pdf.m. + * statistics/distributions/poissrnd.m: Rename from poisson_rnd.m. + * statistics/distributions/tcdf.m: Rename from t_cdf.m. + * statistics/distributions/tinv.m: Rename from t_inv.m. + * statistics/distributions/tpdf.m: Rename from t_pdf.m. + * statistics/distributions/trnd.m: Rename from t_rnd.m. + * statistics/distributions/unifcdf.m: Rename from unifoxorm_cdf.m. + * statistics/distributions/unifinv.m: Rename from uniform_inv.m. + * statistics/distributions/unifpdf.m: Rename from uniform_pdf.m. + * statistics/distributions/unifrnd.m: Rename from uniform_rnd.m. + * statistics/distributions/weibcdf.m: Rename from weibull_cdf.m. + * statistics/distributions/weibinv.m: Rename from weibull_inv.m. + * statistics/distributions/weibpdf.m: Rename from weibull_pdf.m. + * statistics/distributions/wienrnd.m: Rename from wiener_rnd.m. + + * deprecated/beta_cdf.m, deprecated/beta_inv.m, + deprecated/beta_pdf.m, deprecated/beta_rnd.m, + deprecated/binomial_cdf.m, deprecated/binomial_inv.m, + deprecated/binomial_pdf.m, deprecated/binomial_rnd.m, + deprecated/chisquare_cdf.m, deprecated/chisquare_inv.m, + deprecated/chisquare_pdf.m, deprecated/chisquare_rnd.m, + deprecated/exponential_cdf.m, deprecated/exponential_inv.m, + deprecated/exponential_pdf.m, deprecated/exponential_rnd.m, + deprecated/f_cdf.m, deprecated/f_inv.m, deprecated/f_pdf.m, + deprecated/f_rnd.m, deprecated/gamma_cdf.m, + deprecated/gamma_inv.m, deprecated/gamma_pdf.m, + deprecated/gamma_rnd.m, deprecated/geometric_cdf.m, + deprecated/geometric_inv.m, deprecated/geometric_pdf.m, + deprecated/geometric_rnd.m, deprecated/hypergeometric_cdf.m, + deprecated/hypergeometric_inv.m, deprecated/hypergeometric_pdf.m, + deprecated/hypergeometric_rnd.m, deprecated/lognormal_cdf.m, + deprecated/lognormal_inv.m, deprecated/lognormal_pdf.m, + deprecated/lognormal_rnd.m, deprecated/normal_cdf.m, + deprecated/normal_inv.m, deprecated/normal_pdf.m, + deprecated/normal_rnd.m, deprecated/poisson_cdf.m, + deprecated/poisson_inv.m, deprecated/poisson_pdf.m, + deprecated/poisson_rnd.m, deprecated/t_cdf.m, deprecated/t_inv.m, + deprecated/t_pdf.m, deprecated/t_rnd.m, deprecated/uniform_cdf.m, + deprecated/uniform_inv.m, deprecated/uniform_pdf.m, + deprecated/uniform_rnd.m, deprecated/weibull_cdf.m, + deprecated/weibull_inv.m, deprecated/weibull_pdf.m, + deprecated/wiener_rnd.m: New files. + + 2005-07-08 John W. Eaton + + * statistics/distributions/weibrnd.m: Rename from weibull_rnd.m. + * deprecated/weibull_rnd.m: New file. + + 2005-07-08 cctsim + + * strings/dec2base.m: Allow matrix arguments. + + 2005-07-08 John W. Eaton + + * plot/__errplot__.m: Use __plot_globals__. + * plot/__plt__.m: Likewise. + * plot/figure.m: Likewise. + + * plot/hold.m: New file. + * plot/ishold.m: New file. + * plot/__plot_globals__.m: New file. + + 2005-07-05 cctsim + + * strings/dec2base.m: Don't remove all leading zeros if result is zero. + + 2005-07-05 John W. Eaton + + * strings/findstr.m: Return [] for no matches. + + 2005-06-17 Keith Goodman + + * miscellaneous/tic.m: Fix doc string. + + 2005-06-15 John W. Eaton + + * polynomial/polyfit.m: Force return value to be a row vector. + + 2005-06-15 Tom Holroyd + + * general/isequal.m: Correct nargin check. + + 2005-06-14 John W. Eaton + + * general/isvector.m: Handle N-d arrays. + From Bill Denney . + + 2005-06-02 Ben Barrowes + + * plot/meshgrid.m: Handle 3 input arguments. + + 2005-06-02 Paul Kienzle + + * signal/freqz.m: Use correct calculations when given a vector of + frequencies. Improve accuracy of returned frequency vector. + Improve speed for medium length filters (at a slight cost for slow + filters). Add test cases. + + 2005-05-27 "Dmitri A. Sergatskov" + + * plot/loglog.m: Fix set commands. + + 2005-05-25 John W. Eaton + + * plot/sombrero.m: Default n to 41 if nargin == 0. + + 2005-05-24 John W. Eaton + + * statistics/tests/anova.m: Use mean (y(:)) to compute total_mean. + + * strings/strncmp.m: New file, from Tom Holroyd + . + + * strings/strcmp.m: Return logical values in all cases. + + 2005-05-23 John W. Eaton + + * plot/orient.m: New file. Adapt to Octave coding style. + Texinfoize doc string. + + * plot/print.m: New file. Adapt to Octave coding style. Include + PKG_ADD command. Use set terminal consistently throughout. Use + set terminal push/pop and unconditionally set output to screen + when done to avoid requiring gget. Use a cell array for dev_list + and cellidx to search for items in the list. Delete local + variable endl. Don't set and restore automatic_replot. Use {} + instead of nth to index varargin. Delete local variable + va_arg_cnt. + + 2005-05-18 John W. Eaton + + * general/num2str.m: Return early if X is a character string. + + 2005-05-11 John W. Eaton + + * strings/findstr.m: Allow non-string arguments for compatiblity. + From Tom Holroyd . + + * plot/polar.m: Don't call __pltopt__ here. + + 2005-05-02 John W. Eaton + + * mkdoc: Print header message. + + 2005-04-28 John W. Eaton + + * configure.in (AC_CONFIG_SRCDIR): Look for startup/inputrc, not + startup/octaverc. + + 2005-04-28 Stefan van der Walt + + * image/imshow.m: Handle various image depths and 3d RGB images. + (__im_numeric_limits__): New internal function. + + 2005-04-28 toni saarela + + * statistics/tests/anova.m: Compute total_mean as mean of all + data, not mean of group_mean. + + 2005-04-28 John W. Eaton + + * startup/local-rcfile: New file. + * startup/main-rcfile: Rename from startup/octaverc. + * startup/Makefile.in (SOURCES): Add inputrc to the list. + (install install-strip): Install main-rcfile in $(fcnfiledir)/startup. + Install local-rcfile in $(localfcnfiledir)/startup. + + 2005-04-28 Keith Goodman + + * startup/inputrc: New file. + * startup/octaverc: Configure readline using inputrc from + startupfiledir. + * startup/Makefile.in (install, install-strip): Install octaverc + in $(fcnfiledir)/startup. + + 2005-04-27 John W. Eaton + + * optimization/qp.m: Define n_in after removing -Inf bounds from Ain. + + 2005-04-21 John W. Eaton + + * optimization/glpk.m: Handle SENSE argument. + + * optimization/qp.m, optimization/sqp.m: New files. + + 2005-04-08 John W. Eaton + + * Makefile.in (clean, distclean, maintainer-clean): + Avoid duplication in rules. + + 2005-03-28 John W. Eaton + + * plot/contour.m, plot/mesh.m: Continue to use __gnuplot_raw__ for + setting {no,}parametric. + * plot/figure.m: Likewise, for setting terminal type. + + * __axis_label__.m:, plot/axis.m, plot/bottom_title.m, + plot/contour.m, plot/figure.m, plot/multiplot.m, plot/mplot.m, + plot/plot_border.m, plot/subplot.m, plot/subwindow.m, + plot/title.m, plot/top_title.m: Avoid eval. + + 2005-03-28 Dmitri A. Sergatskov + + * plot/__axis_label__.m, plot/axis.m, plot/grid.m, + plot/plot_border.m, plot/replot.m, plot/title.m, plot/top_title.m: + Use __gnuplot_replot__ instead of replot. + + * plot/__axis_label__.m, plot/axis.m, plot/bottom_title.m, + plot/contour.m, plot/errorbar.m, plot/figure.m, plot/grid.m, + plot/loglogerr.m, plot/loglog.m, plot/mesh.m, plot/mplot.m, + plot/multiplot.m, plot/oneplot.m, plot/plot_border.m, plot/plot.m, + plot/polar.m, plot/semilogxerr.m, plot/semilogx.m, + plot/semilogyerr.m, plot/semilogy.m, plot/shg.m, plot/subplot.m, + plot/subwindow.m, plot/title.m, plot/top_title.m: + Use __gnuplot_raw__ instead of __gnuplot_set__. + + * plot/replot.m: Use __gnuplot_replot__, not __greplot__. + + 2005-03-24 John W. Eaton + + * optimization/glpkmex.m: Texinfoize Doc string. + * optimization/glpk.m: Likewise. + Allow VARTYPE and CTYPE to be row or column vectors of characters + (row vectors are orginary character strings). + * optimization/glpkparam.m: Delete. + + 2005-03-24 Quentin Spencer + + * statistics/base/mean.m: Allow DIMS arg greater than the number + of dimensions of X. + + 2005-03-23 John W. Eaton + + * general/tril.m, general/triu.m: Return value of same class as + argument. + + * optimization/glpk.m: Simplify interface. By default, solve + standard LP min C'*x s.t. A*x = b, x >= 0. + * optimization/glpkmex.m: New file. + + 2005-03-22 John W. Eaton + + * configure.in (AC_CONFIG_FILES): Add optimization/Makefile to the + list. + + * optimization/glpk.m: Adapt to Octave coding style. + No need for varargout or varargin. + Print usage message if nargin > 11. + Allow any value of nargout. + Use repmat (C, nr, nc) instead of char (C * ones (nr, nc)). + Avoid looping when checking character classes. + + * optimization: New directory. + * Makefile.in (SUBDIRS): Add it to the list. + * optimization/Makefile.in: New file. + * optimization/glpk.m, optimization/glpkparams.m, + optimization/glpktest1, optimization/glpktest2: New files. + + 2005-03-16 Sᅵren Hauberg + + * strings/split.m: Quick return for empty second arg. + Improve warning for multi-line strings. + Speed up by avoiding sprintf in loop and eval. + + 2005-03-16 Paul Kienzle + + * polynomial/polyderiv.m : Accept a*b, a/b. Auto-reduce common terms. + * polynomial/polyder.m: Ditto. + * polynomial/polygcd.m: New function. + + 2005-03-16 John W. Eaton + + * control/base/__stepimp__.m, control/base/bode.m, + control/base/frdemo.m, control/base/nichols.m, + control/base/nyquist.m, control/base/pzmap.m, + control/base/rldemo.m, control/base/rlocus.m, + control/hinf/dhinfdemo.m, control/hinf/hinfdemo.m, + plot/__axis_label__.m, plot/__errplot__.m, plot/__plt__.m, + plot/axis.m, plot/bar.m, plot/bottom_title.m, plot/contour.m, + plot/errorbar.m, plot/figure.m, plot/grid.m, plot/loglog.m, + plot/loglogerr.m, plot/mesh.m, plot/meshgrid.m, plot/mplot.m, + plot/multiplot.m, plot/oneplot.m, plot/plot.m, plot/plot_border.m, + plot/polar.m, plot/semilogx.m, plot/semilogxerr.m, + plot/semilogy.m, plot/semilogyerr.m, plot/shg.m, plot/stairs.m, + plot/subplot.m, plot/subwindow.m, plot/title.m, plot/top_title.m, + plot/xlabel.m, quaternion/demoquat.m, + quaternion/qcoordinate_plot.m, signal/freqz_plot.m, sparse/spy.m, + statistics/base/ppplot.m, statistics/base/qqplot.m: + Use __gnuplot_plot__ instead of gplot, __gnuplot_splot__ instead + of gsplot, and __gnuplot_set__ instead of gset. Remove gplot, + gsplot from @seealso docs. + + * plot/replot.m: New file. + + 2005-03-15 David Bateman + + * set/unique.m, set/ismember.m: Handle cell arrays. + + 2005-03-09 John W. Eaton + + * statistics/Makefile.in (bin-dist): Delete target. + (BINDISTSUBDIRS): Delete variable. + * control/Makefile.in: Likewise. + + * audio/Makefile.in (bin-dist): Delete target. + (BINDISTFILES): Delete variable. + * control/base/Makefile.in: Likewise. + * control/hinf/Makefile.in: Likewise. + * control/obsolete/Makefile.in: Likewise. + * control/system/Makefile.in: Likewise. + * control/util/Makefile.in: Likewise. + * deprecated/Makefile.in: Likewise. + * elfun/Makefile.in: Likewise. + * finance/Makefile.in: Likewise. + * general/Makefile.in: Likewise. + * image/Makefile.in: Likewise. + * sparse/Makefile.in: Likewise. + * io/Makefile.in: Likewise. + * plot/Makefile.in: Likewise. + * Makefile.in: Likewise. + * miscellaneous/Makefile.in: Likewise. + * linear-algebra/Makefile.in: Likewise. + * polynomial/Makefile.in: Likewise. + * quaternion/Makefile.in: Likewise. + * set/Makefile.in: Likewise. + * signal/Makefile.in: Likewise. + * specfun/Makefile.in: Likewise. + * special-matrix/Makefile.in: Likewise. + * startup/Makefile.in: Likewise. + * statistics/base/Makefile.in: Likewise. + * statistics/distributions/Makefile.in: Likewise. + * statistics/models/Makefile.in: Likewise. + * statistics/tests/Makefile.in: Likewise. + * strings/Makefile.in: Likewise. + * time/Makefile.in: Likewise. + + 2005-03-08 John W. Eaton + + * general/repmat.m: Correctly diagnose 3-argument non-scalar + dimensions case. From Matthew A Swabey . + + 2005-03-04 John W. Eaton + + * plot/clg.m: New file. + + 2005-03-03 John W. Eaton + + * general/isequal.m, general/sortrows.m, set/ismember.m, + set/setdiff.m, strings/str2double.m, strings/strmatch.m, + strings/strcmpi.m: + New files from Octave-forge. Adapt to Octave coding standards. + + 2005-03-03 Paul Kienzle + + * statistics/distributions/binomial_pdf.m: Extend the feasible + computation range. + + 2005-02-25 John W. Eaton + + Sparse merge. + + 2005-01-23 David Bateman + + * sparse/randperm.m: Delete duplicate randperm.m. + + 2005-01-10 John W. Eaton + + * sparse/Makefile.in: New file. + * configure.in (AC_CONFIG_FILES): Add sparse/Makefile to the list. + + 2005-01-07 David Bateman + + * set/unique.m: import file from octave-forge. + + 2005-01-05 David Bateman + + * Makefile.in: include sparse directory in SUBDIRS. + + 2004-12-30 John W. Eaton + + * sparse/nzmax.m: Delete (there is an nzmax function in + src/DLD-FUNCTIONS/sparse.cc). + + 2004-12-28 John W. Eaton + + Merge of sparse code from David Bateman and + Andy Adler . + + * sparse/colperm.m, sparse/nonzeros.m, sparse/nzmax.m, + sparse/randperm.m, sparse/spalloc.m, sparse/spconvert.m, + sparse/spdiags.m, sparse/speye.m, sparse/spfun.m, sparse/sphcat.m, + sparse/spones.m, sparse/sprand.m, sparse/sprandn.m, + sparse/spstats.m, sparse/spvcat.m, sparse/spy.m: New files. + + * sparse: New directory. + + 2005-02-22 John W. Eaton + + * polynomial/residue.m: Force prepad to always create row vectors. + + * polynomial/poly.m: Quick return if m is 0. + From Carmen Navarrete . + + 2005-02-21 David Bateman + + * statistics/distributions/poisson_rnd.m: fix for lambda of zero. + From Mark van Rossum . + Fix for row vectors with at least one element of lambda not in + (0, Inf). + + 2005-02-21 John W. Eaton + + * statistics/base/qqplot.m: Use feval instead of eval. + + * plot/grid.m, plot/plot_border.m, plot/title.m, plot/top_title.m, + plot/__axis_label__.m: Issue replot command. + + 2005-02-09 John W. Eaton + + * polynomial/polyderiv.m: Force P to be a row vector. + + 2005-02-08 John W. Eaton + + * strings/dec2base.m: Don't delete leading zero if third arg is + provided and len <= computed max_len. + + 2005-01-27 David Bateman + + * strings/dec2base.m: Be even more careful about handling all digits. + + 2005-01-27 Paul Kienzle + + * strings/dec2base.m: Use integer arithmetic to count number of digits. + + 2005-01-27 Benjamin Hall + + * statistics/base/median.m: Make it work for the scalar case too. + + 2005-01-25 Daniel J Sebald + + * plot/__plt__.m: Initialize fmt and sep outside of loop. + Simplify logic for decoding args. + + 2005-01-24 John W. Eaton + + * plot/__plr__.m, plot/__plr2__.m: Pass name of caller to __plt__. + + * plot/__plt__.m: No need to save and reset hold state now. + (first_plot): Delete unused variable. + + * plot/__plr2__.m, plot/__plt2__.m: Improve diagnostics. + + * plot/__plr__.m: Use __plt__, not specific __pltXX__ functions. + * plot/__plt1__.m, plot/__plt2__.m, plot/__plt2mm__.m, + plot/__plt2mv__.m, plot/__plt2ss__.m, plot/__plt2vm__.m, + plot/__plt2vv__.m: + Return data and gnuplot commands instead of evaluating them. + * plot/__plt__.m: Handle evaluation of all gnuplot commands here. + Based on changes from Daniel J Sebald . + + 2005-01-18 John W. Eaton + + * linear-algebra/cross.m: Allocate idx1 before use. + + 2004-12-08 Heikki Junes + + * statistics/base/range.m: Fix varargin usage. + + 2004-12-02 Pascal A. Dupuis + + * strings/deblank.m: Remove all trailing whitespace (check with + isspace), not just SPC. + + 2004-12-02 Balint Reczey + + * statistics/base/moment.m: Fix argument parsing for N-d arrays. + + 2004-11-09 John W. Eaton + + * miscellaneous/fileparts.m: Allow filenames with no extension. + From Julius Smith . + + 2004-11-08 John W. Eaton + + * plot/__plt2vm__.m: Delete debugging statement. + From Dmitri A. Sergatskov . + + 2004-11-04 John W. Eaton + + * plot/hist.m: Always return row vectors for vector args. + + 2004-09-23 John W. Eaton + + * strings/strcmp.m: If args are not strings or cell arrays of + strings, return zero instead of reporting an error. + + 2004-09-22 Federico Zenith + + * control/base/analdemo.m, control/base/are.m, control/base/bddemo.m, + control/base/controldemo.m, control/base/damp.m, control/base/dare.m, + control/base/dcgain.m, control/base/dgram.m, control/base/dlyap.m, + control/base/dre.m, control/base/frdemo.m, control/base/gram.m, + control/base/impulse.m, control/base/lqp.m, control/base/obsv.m, + control/base/pzmap.m, control/base/rldemo.m, control/hinf/h2norm.m, + control/hinf/hinfsyn.m, control/hinf/hinfsyn_ric.m, + control/hinf/is_dgkf.m, control/system/c2d.m, + control/system/is_detectable.m, control/system/is_sample.m, + control/system/is_siso.m, control/system/is_stable.m, + control/system/ss2sys.m, control/system/ss.m, control/system/sys2ss.m, + control/system/sys2tf.m, control/system/sys2zp.m, + control/system/sysappend.m, control/system/sysconnect.m, + control/system/sysdisc.m, control/system/sysdup.m, + control/system/sysgetsignals.m, control/system/sysmult.m, + control/system/syssetsignals.m, control/system/syssub.m, + control/system/tf2sys.m, control/system/ugain.m, + control/system/zp2ss.m, control/system/zp2sys.m, + control/system/zp2tf.m, control/util/axis2dlim.m, polynomial/roots.m, + special-matrix/toeplitz.m: Fix typos in doc strings. + + * control/base/are.m, control/base/dare.m, control/base/lsim.m, + control/base/ltifr.m, control/base/place.m,control/base/tzero2.m, + control/base/tzero.m, control/hinf/hinf_ctr.m, control/hinf/wgt1o.m, + ontrol/system/is_abcd.m, control/system/parallel.m, + control/system/ss2tf.m, control/system/ss2zp.m, control/system/ss.m, + control/system/sysappend.m, control/system/sysconnect.m, + control/system/sysdup.m, control/system/sysgroup.m, + control/system/sysprune.m, control/system/sysreorder.m, + control/system/sysscale.m, control/system/syssub.m, + control/system/tf2ss.m, control/system/tf2zp.m, control/util/zgfmul.m, + control/util/zginit.m, control/util/zgscal.m, elfun/acoth.m, + polynomial/polyout.m, specfun/log2.m: + Add output arguments in doc strings. + + * control/base/are.m, control/base/bode_bounds, control/base/bode.m, + control/base/__bodquist__.m, control/base/ctrb.m, control/base/dare.m, + control/base/DEMOcontrol.m, control/base/dlyap.m, control/base/dre.m, + control/base/freqchkw.m, control/base/__freqresp__.m, + control/base/__freqresp__.m, control/base/lqp.m, control/base/lqr.m, + contol/base/lsim.m, control/base/lyap.m, control/base/nyquist.m, + control/base/obsv.m, control/base/place.m, control/base/pzmap.m, + control/base/__stepimp__.m, control/base/step.m, control/base/tzero2.m + control/base/tzero.m, control/hinf/dhinfdemo.m, control/hinf/h2norm.m, + control/hinf/h2syn.m, control/hinf/hinfdemo.m, + control/hinf/hinfnorm.m, control/hinf/hinfsyn_chk.m, + control/hinf/hinfsyn.m, control/hinf/is_dgkf.m, + control/obsolete/syschnames.m, control/obsolete/syschnames.m, + control/system/c2d.m, control/system/is_abcd.m, + control/system/is_controllable.m, control/system/is_detectable.m, + control/system/is_observable.m, control/system/is_stable.m, + control/system/jet707.m, control/system/ord2.m, + control/system/starp.m, control/system/sys2fir.m, + control/system/sys2ss.m, control/system/sys2tf.m, + control/system/sys2zp.m, control/system/syscont.m, + control/system/sysdisc.m, control/system/sysdup.m, + control/system/sysgettype.m, control/system/sysgroup.m, + control/system/sysmult.m, control/system/sysprune.m, + control/system/sysreorder.m, control/system/sysscale.m, + control/system/syssetsignals.m, control/system/sysupdate.m, + control/system/tf2ss.m, control/system/tf2sys.m, + control/system/zp2ss.m, control/system/zp2sys.m, + control/util/axis2dlim.m, control/util/prompt.m, + control/util/zgfmul.m, control/util/zginit.m, + control/util/__zgpbal__.m, control/util/zgscal.m: + Use @var, @strong, @command, @math, @acronym, @table and @cite + in doc strings. + + * control/base/bode_bounds.m, control/base/ctrb.m, control/base/dre.m, + control/base/dgram.m, control/base/dlyap.m, control/base/ltifr.m, + control/base/nyquist.m, control/base/obsv.m, control/base/tzero.m, + control/hinf/dgkfdemo.m, control/hinf/dhinfdemo.m, + control/hinf/h2norm.m, control/hinf/h2syn.m, control/hinf/hinf_ctr.m, + control/hinf/hinfdemo.m, control/hinf/hinfnorm.m, + control/hinf/hinfsyn_chk.m, control/hinf/hinfsyn.m, + control/hinf/wgt1o.m, control/obsolete/syschnames.m, + control/system/c2d.m, control/system/fir2sys.m, + control/system/is_stabilizable.m, control/system/jet707.m, + control/system/ord2.m, control/system/ss2tf.m, control/system/tf2ss.m, + control/util/zgshsr.m, polynomial/polyout.m: + New @tex section(s) in doc strings for better formating of printed + output. + + * control/base/__freqresp__.m, control/base/nyquist.m, + control/base/__stepimp__.m, control/hinf/hinfdemo.m, + control/obsolete/syschnames.m, control/system/sysprune.m: + Use proper double quote marks for TeX. + + * control/base/DEMOcontrol.m: Add missing ; + + * control/base/nichols.m, control/base/rlocus.m, + control/obsolete/minfo.m, control/system/is_digital.m, + control/system/ss2zp.m, control/system/sysmin.m, + control/system/tf2zp.m, control/util/sortcom.m: + Convert documentation to use or more completely use Texinfo. + + * control/base/rlocus.m, control/hinf/dhinfdemo.m, + control/hinf/hinfdemo.m, control/system/ord2.m, + control/system/parallel.m, control/system/ss2tf.m, + control/system/starp.m: Use "@group ... @end group" to avoid ascii + art splitting over a page boundary. + + * control/hinf/dgkfdemo.m, control/hinf/dhinfdemo.m, + control/hinf/h2norm.m, control/hinf/h2syn.m, control/hinf/hinf_ctr.m, + control/hinf/hinfdemo.m, control/hinf/hinfnorm.m, + control/hinf/hinfsyn_chk.m, control/hinf/hinfsyn.m, + control/hinf/wgt1o.m, control/system/buildssic.m: + Use {\cal H}_\infty for H-infinity and likewise for H-2 to + the TeX documentation. + + * control/system/is_stabilizable.m: + Add Copyright so that help is displayed correctly. + + * special-matrix/vander.m: Octave indexes start at 1. + + 2004-09-21 David Bateman + + * general/rotdim.m: New function for rotation of an N-d array in an + arbitrary plane. + + * general/flipdim.m: New function to flip an N-d array about an + arbitrary axis. + + 2004-09-15 David Bateman + + * general/bitget.m: Replace Bmax, which is undefined with bitmax + + 2004-09-15 John W. Eaton + + * strings/strcmp.m: Fix typo in cell/string array case. + Use iscellstr to check for cells rather than iscell. + Improve diagnostics for invalid args. + + 2004-09-10 David Bateman + + * statistics/distributions/binomial_rnd.m: Fix error for scalar n + and p with n > 1, and fix for matrix n and p with n == 1. + + * statistics/distributions/poisson_rnd.m: Fix for matrix length, + due to row vs. column vector operations. + + 2004-09-03 David Bateman + + * general/repmat.m: Fix to allow logical classes. + + 2004-08-31 John W. Eaton + + * general/isa.m: New function, from Octave-forge. + + 2004-08-31 David Bateman + + * general/bitcmp.m, general/bitget.m, general/bitset.m: Remove + limitation on the use of int64 and uint64 types, and the use + of the eval. + + * general/bitset.m: Remove superfluous cast to return type, as bug + in .^ with integer types is fixed. + + * general/repmat.m: Adapt to allow integer types. + + 2004-08-31 Paul Kienzle + + * plot/axis.m: Don't reset axes when querying them. + + 2004-08-27 David Bateman + + * statistics/base/ranks.m: Handle non-consecutive ties. + Eliminate loop. + + 2004-07-27 David Bateman + + * general/num2str.m: Also insert spaces in output when precision + argument is supplied. + + 2004-07-23 David Bateman + + * general/bitcmp.m, general/bitget.m, general/bitset.m: New functions. + + 2004-07-22 Etienne Grossmann + + * general/sub2ind.m: Make reshaping index list unnecessary. + + 2004-07-22 Paul Kienzle + + * miscellaneous/unix.m: Fix doc string. + + 2004-07-22 Stefan van der Walt + + * plot/figure.m: Clarification of documentation. + + * image/imshow.m: Warn for complex images. + Only estimate colourmap for images in [0, 65536]. + + 2004-07-22 David Bateman + + * general/num2str.m: Fix the case of an all zero input. + + 2004-06-22 Etienne Grossmann + + * general/ind2sub.m: Doc fix. + + 2004-06-08 John W. Eaton + + * statistics/tests/kolmogorov_smirnov_test.m: Use func2str to + convert function handle to string for eval. + + 2004-06-04 Paul Kienzle + + * plot/errorbar.m: Remove debugging output. + + 2004-06-03 Stefan van der Walt + + * plot/__pltopt__.m: Properly escape @ symbols in doc string. + + 2004-06-03 Paul Kienzle + + * deprecated/com2str.m: Include 'i' suffix for pure imaginary numbers. + + * polynomial/polyout.m: Use parenthesis if necessary around + complex polynomial coefficient. + + * plot/__errcomm__.m, plot/__errplot__.m: Simplify code and fix + the bug which causes __errplot__ to ignore the last argument. + + 2004-06-03 David Bateman + + * general/shiftdim.m: New function based on JWE code snippet. + + * general/circdim.m: New function. + + 2004-05-06 David Bateman + + * general/issquare.m: Fail if ndim(x) > 2. + + * linear-algebra/norm.m, linear-algebra/norm.m: Fail if ndim(x) > 2. + + * linear-alegbra/cross.m, linear-algebra/dot.m: Allow matrix and + N-d array arguments. Add optional dim argument to define + dimension along which to operate. + + * linear-algebra/dmult.m: Allow N-d arrays. + + * linear-algebra/vec.m: Use v(:) and not reshape. + + 2004-04-29 David Bateman + + * statistics/base/ranks.m, statistics/base/run_count.m, + statistics/base/studentize.m, statistics/base/kurtosis.m + statistics/base/statistics.m, statistics/base/skewness.m + statistics/base/iqr.m: + Make N-d array aware. Allow optional argument to define the + dimension along which to operate. Update the documentation. + + * statistics/base/ranks.m: Change algorithm to use sort, + and adjust for the ties after. + + * statistics/base/run_counts.m: Change algorithm to use + the a combination of diff and find, rather than a for-loop. + + 2004-04-23 Paul Kienzle + + * plot/hist.m: Correctly determine cutoffs. New tests. + + 2004-04-23 David Bateman + + * general/int2str.m: Treat only real part of argument, and treat + NDArrays by stacking the slices through the matrix vertically. + + * general/num2str.m: Improve format of integer matrices, and the + conversion of complex matrices added. Treat NDArrays by stacking + the slices through the matrix vertically. + + * deprecated/com2str.m: Moved here from general subdirectory. + + 2004-04-22 John W. Eaton + + * quaternion/qtransvmat.m: Use continuation characters to make + sure result is a matrix instead of a vector. From . + + 2004-04-21 David Bateman + + * elfun/lcm.m: Make N-d aware. + + * general/diff.m: Make the code N-d array aware. Allow an + optional argument to define the dimension along which to perform + the differences and allow the order of the differences to be larger + than the dimension itself. + + * general/rot90.m, general/fliplr.m, general/flipud.m: Limit the + use of these functions to 1- and 2-d arrays. + + 2004-04-16 John W. Eaton + + * elfun/gcd.m: Delete. + + 2004-04-15 David Bateman + + * set/create_set.m, general/is_duplicate_entry.m: Make N-d array aware. + + * general/shift.m, general/prepad.m, general/postpad.m: Make N-d + array aware and and optional argument for the dimension along + which to operate. + + * signal/unwrap.m: Make N-d array aware and fix optional + argument for the dimension to be consistent with other N-d array + functions. + + 2004-04-08 David Bateman + + * statistics/distributions/discrete_cdf.m, + statistics/distributions/discrete_inv.m, + statistics/distributions/discrete_pdf.m, + statistics/distributions/discrete_rnd.m, + statistics/distributions/exponential_cdf.m, + statistics/distributions/exponential_inv.m, + statistics/distributions/exponential_pdf.m, + statistics/distributions/exponential_rnd.m, + statistics/distributions/f_cdf.m, + statistics/distributions/f_inv.m, + statistics/distributions/f_pdf.m, + statistics/distributions/f_rnd.m, + statistics/distributions/geometric_cdf.m, + statistics/distributions/geometric_inv.m, + statistics/distributions/geometric_pdf.m, + statistics/distributions/geometric_rnd.m, + statistics/distributions/hypergeometric_rnd.m, + statistics/distributions/kolmogorov_smirnov_cdf.m, + statistics/distributions/laplace_cdf.m, + statistics/distributions/laplace_inv.m, + statistics/distributions/laplace_pdf.m, + statistics/distributions/laplace_rnd.m, + statistics/distributions/logistic_inv.m, + statistics/distributions/logistic_rnd.m, + statistics/distributions/lognormal_cdf.m, + statistics/distributions/lognormal_inv.m, + statistics/distributions/lognormal_pdf.m, + statistics/distributions/lognormal_rnd.m, + statistics/distributions/pascal_cdf.m, + statistics/distributions/pascal_inv.m, + statistics/distributions/pascal_pdf.m, + statistics/distributions/pascal_rnd.m, + statistics/distributions/poisson_cdf.m, + statistics/distributions/poisson_inv.m, + statistics/distributions/poisson_pdf.m, + statistics/distributions/poisson_rnd.m, + statistics/distributions/t_cdf.m, + statistics/distributions/t_inv.m, + statistics/distributions/t_pdf.m, + statistics/distributions/t_rnd.m, + statistics/distributions/weibull_cdf.m, + statistics/distributions/weibull_inv.m, + statistics/distributions/weibull_pdf.m, + statistics/distributions/weibull_rnd.m: + Allow N-d arrays. + + * statistics/distributions/discrete_inv.m: Fix bug in indexing, + that results in NaN in places where it should not have had. + + * statistics/distributions/discrete_rnd.m: New argument formats to + allow creating arbitrary matrices, compatiable with the other + *_rnd.m functions. Maintain compatibility with previous format. + + * statistics/distributions/empirical_rnd.m: New argument formats + to allow creating arbitrary matrices, compatiable with the other + *_rnd.m functions. Maintain compatibility with previous + format. Allow N-d arrays. + + * statistics/distributions/hypergeometric_cdf.m, + statistics/distributions/hypergeometric_inv.m, + statistics/distributions/hypergeometric_pdf.m, + statistics/distributions/wiener_rnd.m: + Error for non-scalar arguments. + + * statistics/distributions/pascal_rnd.m: + Correct for n = 1 bug, where all elements were equal. + + 2004-04-06 David Bateman + + * general/common_size.m, miscellaneous/bincoeff.m, + statistics/distributions/beta_cdf.m, + statistics/distributions/beta_inv.m, + statistics/distributions/beta_pdf.m, + statistics/distributions/beta_rnd.m, + statistics/distributions/binomial_cdf.m, + statistics/distributions/binomial_inv.m, + statistics/distributions/binomial_pdf.m, + statistics/distributions/binomial_rnd.m, + statistics/distributions/cauchy_cdf.m, + statistics/distributions/cauchy_inv.m, + statistics/distributions/cauchy_pdf.m, + statistics/distributions/cauchy_rnd.m, + statistics/distributions/chisquare_cdf.m, + statistics/distributions/chisquare_inv.m, + statistics/distributions/chisquare_pdf.m, + statistics/distributions/chisquare_rnd.m, + statistics/distributions/gamma_cdf.m, + statistics/distributions/gamma_inv.m, + statistics/distributions/gamma_pdf.m, + statistics/distributions/gamma_rnd.m, + statistics/distributions/normal_cdf.m, + statistics/distributions/normal_inv.m, + statistics/distributions/normal_pdf.m, + statistics/distributions/normal_rnd.m, + statistics/distributions/stdnormal_cdf.m, + statistics/distributions/stdnormal_pdf.m, + statistics/distributions/stdnormal_rnd.m, + statistics/distributions/uniform_cdf.m, + statistics/distributions/uniform_inv.m, + statistics/distributions/uniform_pdf.m, + statistics/distributions/uniform_rnd.m: + Allow the inputs to be N-d arrays. + + * statistics/base/var.m: Update for N-d arrays. Allow dimension arg. + * statistics/base/median.m: Likewise. + + 2004-04-02 David Bateman + + * statistics/base/std.m: Allow optional args for type and dim. + * statistics/base/center.m, statistics/base/meansq.m, + statistics/base/moment.m, statistics/base/range.m: + Update for N-d arrays. + * signal/fftshift.m: Fix dimensioning error. + + * statistics/base/std.m: Use repmat not ones(nr,1)*mean to allow + N-d arrays. + + * general/mod.m, general/mod.m: Allow N-d arrays with one scalar arg. + + * signal/fftshift.m: Update for N-d arrays, allow optional dim arg. + + * specfun/erfinv.m, general/repmat.m: Update for N-d arrays. + + * control/base/bode.m, control/base/lqg.m, control/system/ss2sys.m, + control/system/cellidx.m, control/system/dmr2d.m control/system/ss.m, + control/system/sysprune.m: Doc update for usage of cell arrays. + + * control/system/sysidx.m: Use cellidx and not listidx. + + 2004-03-12 John W. Eaton + + * plot/__pltopt1__.m: Always add title clause to plot command with + default of "" (so it is off unless explicitly set by the user). + + 2004-03-12 Stefan van der Walt + + * image/imshow.m: Accept "truesize" argument. + Ignore current colormap. New tests and demos. + + 2004-03-10 Volker Kuhlmann + + * signal/sinewave.m: Allow N to default to M. + + 2004-03-09 John W. Eaton + + * signal/unwrap.m: Use "isempty (tol)" instead of "tol == []". + + 2004-03-04 John W. Eaton + + * general/deal.m: New function. + Add tests from Paul Kienzle. + + 2004-03-03 Stefan van der Walt + + * plot/hist.m: Compute histogram correctly for n>=30. + + 2004-03-02 Paul Kienzle + + * signal/sinc.m: Use i(:) instead of i when checking for any nonzeros. + + 2004-03-01 John W. Eaton + + * miscellaneous/horzcat.m: Delete. + * miscellaneous/vertcat.m: Delete. + + 2004-02-19 John W. Eaton + + * plot/figure.m: Also look for GNUTERM in the environment and use + that if it is set (for OS X). From Per Persson . + + 2004-02-18 John W. Eaton + + * control/base/__stepimp__.m: Only call clearplot if we will be + doing multiple plots in the same gnuplot frame. + + 2004-02-16 John W. Eaton + + * control/system/__sysconcat__.m, control/system/__tfl__.m, + control/system/cellidx.m, control/system/ss.m, + control/system/tf.m, control/system/zp.m: New functions. + + 2004-02-16 Glenn Golden + + * statistics/distributions/discrete_inv.m: + Reduce memory requirements. + + 2004-02-16 John W. Eaton + + * plot/__errcomm__.m: Fix thinko in previous change. + From Teemu Ikonen . + + 2004-02-16 A S Hodel + + * control/base/__bodquist__.m, control/base/__stepimp__.m, + control/base/analdemo.m, control/base/bddemo.m, + control/base/bode.m, control/base/dre.m, control/base/frdemo.m, + control/base/lqg.m, control/base/nyquist.m, control/base/place.m, + control/base/rldemo.m, control/base/rlocus.m, + control/base/tzero.m, control/hinf/dgkfdemo.m, + control/hinf/dhinfdemo.m, control/hinf/h2syn.m, + control/hinf/hinf_ctr.m, control/hinf/hinfsyn.m, + control/hinf/wgt1o.m, control/obsolete/dlqg.m, + control/obsolete/packsys.m, control/obsolete/series.m, + control/system/__sysdefioname__.m, + control/system/__sysdefstname__.m, control/system/__sysgroupn__.m, + control/system/__tf2sysl__.m, control/system/buildssic.m, + control/system/c2d.m, control/system/d2c.m, + control/system/dmr2d.m, control/system/fir2sys.m, + control/system/is_signal_list.m, control/system/is_siso.m, + control/system/jet707.m, control/system/listidx.m, + control/system/moddemo.m, control/system/ord2.m, + control/system/packedform.m, control/system/parallel.m, + control/system/ss2sys.m, control/system/sys2tf.m, + control/system/sys2zp.m, control/system/sysadd.m, + control/system/sysappend.m, control/system/sysconnect.m, + control/system/syscont.m, control/system/sysdimensions.m, + control/system/sysdisc.m, control/system/sysdup.m, + control/system/sysgetsignals.m, control/system/sysgettype.m, + control/system/sysgroup.m, control/system/sysmin.m, + control/system/sysmult.m, control/system/sysprune.m, + control/system/sysrepdemo.m, control/system/sysscale.m, + control/system/syssetsignals.m, control/system/syssub.m, + control/system/sysupdate.m, control/system/tf2sys.m, + control/system/ugain.m, control/system/zp2ss.m, + control/system/zp2sys.m, control/util/__outlist__.m, + control/util/__zgpbal__.m, control/util/strappend.m: + Use cell arrays instead of lists. + + 2004-01-23 Stefan van der Walt + + * plot/bar.m: Increase size of cutoff vector from xlen-1 to xlen + so that bar (1, 1) will work. + + 2004-01-22 John W. Eaton + + * plot/__errcomm__.m: Cope with nargin now being a function. + * plot/__errplot__.m: Likewise. + * plot/__plt__.m: Likewise. + * plot/plot_border.m: Likewise. + + * Makefile.in (distclean, maintainer-clean): Remove DOCSTRINGS, + not $(DOCSTRINGS). + + 2004-01-21 Quentin Spencer + + * linear-algebra/rank.m: Allow rank ([]) to return 0, same as + rank ([], tol). + + 2004-01-10 John W. Eaton + + * elfun/acot.m: Return atan (1./z). + From Gregory Vanuxem . + + * miscellaneous/dir.m: New file. + + * general/num2str.m: Use "%d" as format if values are ints with + magnitude less than 1e10. + + 2004-01-09 John W. Eaton + + * general/num2str.m: If single arg is string, return it. + + * miscellaneous/not.m: New file. + + * miscellaneous/unix.m: New file. + + * miscellaneous/isunix.m: New file. + * miscellaneous/ispc.m: New file. + + * miscellaneous/computer.m: New file. + + * miscellaneous/delete.m: New file. + + 2004-01-08 John W. Eaton + + * statistics/tests/kolmogorov_smirnov_test_2.m: Fix test for ties. + + 2004-01-07 John W. Eaton + + * miscellaneous/path.m: Handle DEFAULT_LOADPATH substitution. + Always return substituted version of LOADPATH if nargout != 0. + + 2003-12-21 Schloegl Alois + + * miscellaneous/fullfile.m: If filename is empty, set it to "." + before continuing. + + * miscellaneous/fileparts.m: Allow name to start with ".". + + 2003-12-16 John W. Eaton + + * general/ind2sub.m: New file. + * general/sub2ind.m: New file. + + 2003-12-15 John W. Eaton + + * control/system/zp2ss.m: Don't save and restore + warn_empty_list_elements. + + 2003-12-15 Gabriele Pannocchia + + * control/system/zp2ss.m: Correct definition of pure gain system. + + 2003-12-10 Quentin Spencer + + * statistics/base/mean.m: Remove special case for row vectors. + + 2003-11-19 Quentin Spencer + + * signal/freqz_plot.m: Save and restore automatic_replot too. + + 2003-11-18 Danilo Piazzalunga + + * statistics/base/iqr.m: Handle matrices. + + 2003-11-18 John W. Eaton + + * general/issymmetric.m: Don't fail if norm (x) == 0. + + 2003-11-17 John W. Eaton + + * miscellaneous/path.m: Fix thinko in previous change. + + 2003-11-14 Gabriele Pannocchia + + * control/base/dare.m: Check positive (semi)definiteness and + dimensions of r (and q). + * control/base/dlqr.m: Check stabilizability of (A,B), + detectability of (A,Q), and whether (A,Q) has non minimal modes + near unit circle. + + * control/system/is_detectable.m: Use Hautus Lemma. + Correct the behavior for discrete-time systems. + * control/system/is_stabilizable.m: Likewise. + + * linear-algebra/krylov.m: Return H = [] in Vnrm == 0 case. + + * linear-algebra/krylovb.m: Fix typo in usage message. + + * general/isdefinite.m: New function. + + 2003-10-29 John W. Eaton + + * general/reshape: Delete. + + 2003-10-28 John W. Eaton + + * general/numel.m: Delete. + + 2003-10-15 John W. Eaton + + * miscellaneous/horzcat.m, miscellaneous/vartcat.m: New files. + + * deprecated/isstr.m: New file. + + 2003-10-04 John W. Eaton + + * plot/__axis_label__.m, plot/xlabel.m, plot/ylabel.m, + plot/zlabel.m, plot/title.m: Return a value if nargout > 0. + + 2003-10-02 Quentin Spencer + + * statistics/base/mean.m: Fix missing semicolon problem. + + 2003-09-08 Al Niessner + + * plot/subplot.m: New global variable, __multiplot_scale__. + + 2003-08-29 David Castelow + + * strings/dec2base.m, strings/dec2bin.m, strings/dec2hex.m: + Allow optional length argument. + + 2003-08-28 John W. Eaton + + * polynomial/polyfit.m: Avoid calling flipud. + From Pascal A. Dupuis . + Return structure as second output value for improved Matlab + compatibility. + + 2003-07-30 John W. Eaton + + * linear-algebra/cond.m: Behave as though old built-in variable + propagate_empty_matrices is always 1. Also handle empty matrices + with one non-zero dimension. + + * miscellaneous/dump_prefs.m: Add warn_separator_insert and + warn_single_quote_string to the list. + Delete whitespace_in_literal_matrix and propagate_empty_matrices + from the list. + + 2003-07-25 Paul Kienzle + + * signal/autocov.m: Transpose result of conj because diag returns + a column vector, not a row vector. + + * audio/playaudio.m, audio/record.m, image/image.m, + miscellaneous/bug_report.m: Protect spaces in filenames + with quotes. + + 2003-07-15 John W. Eaton + + * io/printf.m, io/puts.m: Delete. + + * miscellaneous/dump_prefs.m: Delete define_all_return_values and + default_return_value from the list. + Add warn_undefined_return_values to the list. + + + 2003-07-13 John W. Eaton + + * miscellaneous/dump_prefs.m: Delete default_global_variable_value + and initialize_global_variables from the list. + + 2003-07-11 John W. Eaton + + * image/colormap.m: Don't save and restore default_eval_print_flag. + + * miscellaneous/dump_prefs.m: Delete default_eval_print_flag. + + * control/util/zgshsr.m: Use x OP= y instead of x = x OP y. + * control/system/sys2fir.m: Likewise. + + * control/system/is_siso.m: Use && instead of & where appropriate. + * control/system/__tf2sysl__.m: Likewise. + + * control/system/__tf2sysl__.m: Use end instead of length(X). + + * control/freqchkw.m: Use %-escapes for error instead of num2str + and [] concatenation. + * control/system/sys2fir.m: Likewise. + + * control/base/dgram.m, control/base/freqchkw.m, + control/base/gram.m, control/system/__abcddims__.m, + control/system/__sysdefstname__.m, control/system/__tf2sysl__.m, + control/system/is_sample.m, control/system/is_signal_list.m, + control/system/is_siso.m, control/system/sys2fir.m, + control/system/syschtsam.m, control/system/sysgettsam.m, + control/system/sysgettype.m, control/system/tf2zp.m, + control/system/ugain.m, control/util/prompt.m, + control/util/run_cmd.m, control/util/zgrownorm.m, + control/util/zgshsr.m: + Improve conformance to Octave coding style. + + * miscellaneous/dump_prefs.m: Add warn_resize_on_reange_error to + the list. + Delete resize_on_range_error from the list. + + * control/base/pzmap.m, control/base/place.m, + control/base/__freqresp__.m, control/system/sysappend.m, + control/system/syscont.m, control/system/sysdisc.m, + control/system/sysgroup.m, control/system/tfout.m, + control/system/zp2ss.m, control/system/zpout.m, + control/util/__outlist__.m, signal/arma_rnd.m, general/shift.m, + strings/strcat.m: Save and restore warn_empty_list_elements, not + empty_list_elements_ok. + + * miscellaneous/dump_prefs.m: Add warn_empty_list_elements to the list. + Delete empty_list_elements_ok from the list. + + 2003-07-10 John W. Eaton + + * miscellaneous/dump_prefs.m: Include warn_neg_dim_as_zero in the + list. + Delete treat_neg_dim_as_zero from the list. + + * strings/blanks.m: Don't check treat_neg_dim_as_zero. + + 2003-07-09 John W. Eaton + + * general/reshape.m: Omit do_fortran_indexing from doc string (it + was not used in the code in any case). + + * strings/strjust.m: Temporarily set warn_fortran_indexing, not + do_fortran_indexing. + + * statistics/base/moment.m: Temporarily set warn_str_to_num, not + implict_str_to_num_ok. Use unwind_protect block to do it. + + * miscellaneous/dump_prefs.m: Include DEFAULT_EXEC_PATH, + DEFAULT_LOAD_PATH, crash_dumps_octave_core, + sighup_dumps_octave_core, sigterm_dumps_octave_core, + warn_imag_to_real, warn_num_to_str, warn_str_to_num, and + warn_fortran_indexing in the list. + Delete ok_to_lose_imaginary_part, implicit_num_to_str_ok, + implicit_str_to_num_ok, do_fortran_indexing, and + prefer_column_vectors from list. + + 2003-07-02 John W. Eaton + + * Makefile.in (distclean, maintainer-clean): Also remove + gethelp$(BUILD_EXEEXT), $(DOCSTRINGS), and autom4te.cache + directory. + + 2003-06-17 Aaron A. King + + * plot/hist.m: Don't forget to define n if x is a vector. + + 2003-06-13 Alois Schloegl + + * miscellaneous/fileparts.m: For compatibility with Matlab, + return "." with extension. + + 2003-06-04 John W. Eaton + + * control/base/__stepimp__.m, control/base/nichols.m, + control/base/nyquist.m, miscellaneous/dump_prefs.m, + plot/bottom_title.m, plot/mplot.m, plot/multiplot.m, + plot/oneplot.m, plot/plot_border.m, plot/subplot.m, + plot/subwindow.m, plot/top_title.m, signal/freqz_plot.m: + Eliminate gnuplot_has_multiplot (assume it is always true). + + 2003-05-14 John W. Eaton + + * Makefile.in, image/Makefile.in, startup/Makefile.in: Handle DESTDIR. + + 2003-05-05 Andy Adler + + * plot/hist.m: Improve performance by using different algorithms + depending on number of bins. + + 2003-05-01 John W. Eaton + + * control/system/sysadd.m: If systems are not "tf", convert before + adding. + + 2003-05-01 Paul Kienzle + + * image/imagesc.m: Accept data limits parameter for colormap. + + 2003-04-11 Doug Stewart + + * control/base/__stepimp__.m: If digital impulse, reduce gain of + the impulse by t_step. + + 2003-04-07 John W. Eaton + + * control/base/__bodquist__.m: Don't convert pdbig and fdbig to + column vectors. + + 2003-03-24 Quentin Spencer + + * linear-algebra/null.m: Handle empty matrix arg. + + 2003-03-18 John W. Eaton + + * general/shift.m: Force empty_list_elements_ok to 1. + + 2003-02-22 John W. Eaton + + * deprecated/struct_contains.m, deprecated/struct_elements.m: + New files. + + 2003-02-20 John W. Eaton + + * statistics/tests/kolmogorov_smirnov_test.m: Use str2func to make + function handle to pass to feval. + * statistics/base/qqplot.m: Likewise. + * statistics/base/ppplot.m: Likewise. + * signal/spectral_xdf.m: Likewise. + * signal/spectral_adf.m: Likewise. + + 2003-02-19 John W. Eaton + + * plot/axis.m: Avoid whitespace in literal matrix problem. + + 2003-02-18 John W. Eaton + + * linear-algebra/logm.m: New file. + + 2003-02-18 David Bateman + + * mkpkgadd: Scan C++ files as well + + 2003-02-13 Alois Schloegl + + * strings/findstr.m: Return empty set for zero-length target. + + 2003-02-11 Paul Kienzle + + * set/union.m: Preserve the orientation of inputs. + + 2003-01-23 John W. Eaton + + * general/int2str.m: Eliminate leading spaces. + + 2003-01-22 John W. Eaton + + * general/int2str.m: Do a better job with 0, Inf, and NaN, + + 2003-01-11 Paul Kienzle + + * Makefile.in (gethelp$(BUILD_EXEEXT)): Pass $(BUILD_CXXFLAGS) and + $(BUILD_LDFLAGS) to compiler. + + 2003-01-10 John W. Eaton + + * general/num2str.m: Don't specify field width for scalars. + + 2003-01-05 John W. Eaton + + * Makefile.in (DISTFILES): Don't forget mkpkgadd. + + 2003-01-03 John W. Eaton + + * gethelp.cc: Define __USE_STD_IOSTREAM if using Compaq C++. + + * miscellaneous/tempname.m: New file. + + * miscellaneous/tempdir.m: New file. + + * miscellaneous/fullfile.m: New file. + + 2003-01-02 John W. Eaton + + * miscellaneous/fileparts.m: New file. + + * io/beep.m: New file. + + * plot/__pltopt1__.m: Call undo_string_escapes for title part of + format only. + + 2003-01-01 John W. Eaton + + * strings/strcmp.m: Handle cell arrays of strings. + + 2002-12-18 John W. Eaton + + * general/int2str.m: Handle matrices. + * general/num2str.m: Likewise. + Also handle optional precision, and format args. + + 2002-12-17 John W. Eaton + + * audio/Makefile.in, control/base/Makefile.in, + control/hinf/Makefile.in, control/obsolete/Makefile.in, + control/system/Makefile.in, elfun/Makefile.in, + finance/Makefile.in, general/Makefile.in, image/Makefile.in, + io/Makefile.in, linear-algebra/Makefile.in, + miscellaneous/Makefile.in, polynomial/Makefile.in, + quaternion/Makefile.in, set/Makefile.in, signal/Makefile.in, + specfun/Makefile.in, special-matrix/Makefile.in, + statistics/base/Makefile.in, statistics/distributions/Makefile.in, + statistics/models/Makefile.in, statistics/tests/Makefile.in, + strings/Makefile.in, time/Makefile.in, plot/Makefile.in, + deprecated/Makefile.in: Use new do-script-install and + do-script-uninstall macros. + + * mkpkgadd: New script. + + * plot/close.m: New file. + + 2002-11-15 John W. Eaton + + * image/image.m: Use -raw option for xv. + From Remy Bruno + + 2002-11-12 John W. Eaton + + * control/base/lsim.m: Use approximate test for step size change. + + * signal/bartlett.m: Avoid row/column mismatch error. + + 2002-11-12 Paul Kienzle + + * statistics/base/var.m: Use better formula for improved accuracy. + + 2002-11-04 Nicholas Piper + + * control/base/lsim.m: Correct doc string. + + 2002-11-04 A S Hodel + + * control/system/syssub.m: Call tf2sys with Gnum-Hnum, not Gnum+Hnum. + + 2002-11-01 John W. Eaton + + * plot/contour.m: Handle x and y as matrices too. + + 2002-11-01 Joseph P. Skudlarek + + * plot/contour.m: Fix error and usage messages. + + 2002-11-01 John W. Eaton + + * plot/contour.m: Correct orientation of plot. + + 2002-10-31 John W. Eaton + + * control/base/analdemo.m: Fix typo. + + 2002-10-31 Francesco Potorti` + + * statistics/distributions/discrete_pdf.m: Fix typo. + + 2002-10-09 John W. Eaton + + * mkdoc: Exit immediately on errors. + Exit with error if gethelp does not exist. + + * Makefile.in: Use $(BUILD_EXEEXT) as appropriate. + + 2002-10-08 John W. Eaton + + * Makefile.in (gethelp): Use $(BUILD_CXX), not $(CXX). + + 2002-09-27 Paul Kienzle + + * statistics/distributions/normal_cdf.m: Handle variance == 0. + * statistics/distributions/normal_pdf.m: Likewise. + * statistics/distributions/normal_inv.m: Likewise. + + 2002-09-27 Paul Kienzle + + * specfun/erfinv.m: Return NaN for NaN inputs. + + 2002-09-26 Jeff Cunningham + + * statistics/base/var.m: Handle complex values. + + 2002-08-09 John W. Eaton + + * configure.in (AC_CONFIG_FILES): Add deprecated/Makefile to the + list. + * deprecated/Makefile.in: New file. + + 2002-08-09 Paul Kienzle + + * statistics/distributions/beta_cdf.m: Replace betai with betainc. + * statistics/distributions/binomial_cdf.m: Likewise. + * statistics/distributions/f_cdf.m: Likewise. + * statistics/distributions/t_cdf.m: Likewise. + + * miscellaneous/bincoeff.m: Replace lgamma with gammaln. + * specfun/beta.m: Likewise. + * special-matrix/invhilb.m: Likewise (but it is only in a comment). + * statistics/distributions/gamma_pdf.m: Likewise. + * statistics/distributions/poisson_pdf.m: Likewise. + + * statistics/distributions/gamma_cdf.m: replace gammai with gammainc + * statistics/distributions/poisson_cdf.m: Likewise. + + 2002-08-09 John W. Eaton + + * deprecated/is_bool.m: New file. + * deprecated/is_complex.m: New file. + * deprecated/is_global.m: New file. + * deprecated/is_list.m: New file. + * deprecated/is_matrix.m: New file. + * deprecated/is_scalar.m: New file. + * deprecated/is_square.m: New file. + * deprecated/is_stream.m: New file. + * deprecated/is_struct.m: New file. + * deprecated/is_symmetric.m: New file. + * deprecated/is_vector.m: New file. + * Change all callers of these functions to use the new names. + + * deprecated: New directory. + * Makefile.in (SUBDIRS): Add it to the list. + + * general/isscalar.m: Rename from is_scalar.m. + * general/issquare.m: Rename from is_square.m. + * general/issymmetric.m: Rename from is_symmetric.m. + * general/isvector.m: Rename from is_vector.m. + + 2002-08-05 John W. Eaton + + * statistics/base/mean.m: Allow empty matrices. + Handle DIM arg. + + 2002-08-05 Teemu Ikonen + + * plot/__errcomm__.m: If format is not specified, default to error + bar format. + + 2002-08-01 John W. Eaton + + * miscellaneous/popen2.m: Use F_SETFL and O_NONBLOCK, not + __F_SETFL__ and __O_NONBLOCK__. + + * image/saveimage.m: Use OCTAVE_VERSION, not __OCTAVE_VERSION__. + * miscellaneous/bug_report.m: Likewise. + + 2002-07-25 John W. Eaton + + * general/mod.m: Use isreal (x), not any (any (imag (x))). + * general/rem.m: Likewise. + + * plot/loglogerr.m: Use varargin instead of old style varargs. + * plot/semilogxerr.m: Likewise. + * plot/semilogyerr.m: Likewise. + + 2002-07-25 Teemu Ikonen + + * plot/__errcomm__.m: New file. Common functionality for error plots. + * plot/loglogerr.m: New file. Double logarithm plots with errorbars. + * plot/semilogxerr.m: New file. Semilogarithm plots with errorbars. + * plot/semilogyerr.m: New file. Semilogarithm plots with errorbars + + * plot/errorbar.m: Use __errcomm__.m. + * plot/__errplot__.m: Minor cleanups. + * plot/__pltopt__.m: Handle boxxyerrorbars plot style. + * plot/__pltopt1__.m: Likewise. + + 2002-07-10 John W. Eaton + + * general/rem.m: Delete redundant call to usage. + + * general/mod.m: Additional error checks, Texinfoize doc string. + + 2002-04-29 Paul Kienzle + + * general/mod.m: New function. + + 2002-07-10 John W. Eaton + + * control/system/sysmult.m: Use varargin instead of old style varargs. + * control/system/sysadd.m: Likewise. + * control/system/sysgroup.m: Likewise. + * control/system/syssub.m: Likewise. + * elfun/gcd.m: Likewise. + * elfun/lcm.m: Likewise. + * general/common_size.m: Likewise. + * io/printf.m: Likewise. + * miscellaneous/menu.m: Likewise. + * miscellaneous/path.m: Likewise. + * plot/__errplot__.m: Likewise. + * plot/__plt__.m: Likewise. + * plot/axis.m: Likewise. + * plot/errorbar.m: Likewise. + * plot/mplot.m: Likewise. + * plot/loglog.m: Likewise. + * plot/plot.m: Likewise. + * plot/plot_border.m: Likewise. + * plot/semilogx.m: Likewise. + * plot/semilogy.m: Likewise. + * plot/xlabel.m: Likewise. + * plot/ylabel.m: Likewise. + * plot/zlabel.m: Likewise. + * statistics/base/ppplot.m: Likewise. + * statistics/base/qqplot.m: Likewise. + * statistics/tests/bartlett_test.m: Likewise. + * statistics/tests/kolmogorov_smirnov_test.m: Likewise. + * statistics/tests/kruskal_wallis_test.m: Likewise. + * strings/str2mat.m: Likewise. + * strings/strcat.m: Likewise. + + 2002-06-27 Paul Kienzle + + * statistics/distributions/gamma_pdf.m: Avoid overflow in more cases. + + 2002-05-01 John W. Eaton + + * skip-autoheader: New file, for autogen.sh. + * Makefile.in (DISTFILES): Add it to the list. + + 2002-04-29 Paul Kienzle + + * general/repmat.m: New function. + + 2002-04-25 Paul Kienzle + + * audio/lin2mu.m: Accept matrices and [-1,1] normalized audio. + Use optional parameter to specify the number of bits in the input. + * audio/mu2lin.m: Accept matrices, return n-bit integers or + floats in the range [-1,1], 2x speedup. + + * strings/index.m, strings/rindex.m: Vectorize for speed. + + 2002-04-25 John W. Eaton + + * linear-algebra/kron.m: Delete. + + 2002-04-24 Paul Kienzle + + * signal/freqz.m: If nargout is zero, plot results instead of + returning them. + * signal/freqz_plot.m: New file. + + 2002-04-24 Bill Lash + + * signal/unwrap.m: New file. + + 2002-04-23 Paul Kienzle + + * image/rgb2hsv.m: Faster, more accurate, remove the + divide by zero warning. + + 2002-04-09 Paul Kienzle + + * strings/deblank.m: Trim \0 as well as blank. + + * freqz.m: Evaluate a specific range of frequencies + expressed in radians or Hz relative to a supplied sample rate. + + 2002-04-04 Paul Kienzle + + * signal/fftfilt.m: Filter columns if called with a matrix. + + * strings/findstr.m: Vectorize as much as possible. + + 2002-04-04 Dirk Laurie + + * special-matrix/invhilb.m: New version that is faster and more + accurate. + + 2002-04-03 Steven G. Johnson + + * configure.in: Update for autoconf 2.5x. + + 2002-04-03 Paul Kienzle + + * special-matrix/vander.m: Code tidy and vectorize. + + 2002-04-02 Paul Kienzle + + * linear-algebra/cross.m: Accept nx3 and 3xn matrices, in addition + to vectors. Issue a warning in the case x matches y' but return a + column vector as Octave currently does. + + * plot/contour.m: Set default number of levels for contour(x,y,z). + + * control/system/starp.m: Leave more of the documentation + processing to texinfo and less to the @format block. + + * image/imagesc.m: Only display image if no output is requested. + Code tidying. + + 2002-03-07 Paul Kienzle + + * statistics/base/center.m: Accept and return empty matrix. + + 2002-02-22 John W. Eaton + + * specfun/erfinv.m: Fix usage message. + + 2002-02-08 John W. Eaton + + * elfun/coth.m: Use 1 ./ tanh(z) instead of cosh(z) ./ sinh(z). + From "Michael O'Brien" . + + 2001-06-06 John W. Eaton + + * statistics/distributions/discrete_cdf.m: Downcase incorrectly + capitalized variable names. + + 2001-05-30 Jean-Francois Cardoso + + * m/image/saveimage.m: fix saving an image to Postscript format. + + 2001-04-18 A. Scottedward Hodel + + * control/system/is_stabilizable.m: Pass a to sys2ss, not sys. + + 2001-02-28 Kai Habel + + * general/cart2pol.m: New file. + * general/pol2cart.m: New file. + * general/cart2sph.m: New file. + * general/sph2cart.m: New file. + * image/rgb2hsv.m: New file. + * image/hsv2rgb.m: New file. + + 2001-02-26 Paul Kienzle + + * plot/meshgrid.m: Avoid for loops. + * plot/meshdom.m: Likewise. + + 2001-02-22 John W. Eaton + + * linear-algebra/norm.m: Use sqrt instead of ^0.5. + + 2001-02-22 Heinz Bauschke + + * linear-algebra/norm.m: Use more efficient method for Frobenius + norm. + + 2001-02-09 David Livings + + * statistics/tests/welch_test.m: Fix typo. + + * statistics/distributions/chisquare_cdf.m: + Don't restrict inputs to be only positive integers. + * statistics/distributions/chisquare_inv.m: Likewise. + * statistics/distributions/chisquare_pdf.m: Likewise. + * statistics/distributions/chisquare_rnd.m: Likewise. + * statistics/distributions/f_cdf.m: Likewise. + * statistics/distributions/f_inv.m: Likewise. + * statistics/distributions/f_pdf.m: Likewise. + * statistics/distributions/f_rnd.m: Likewise. + * statistics/distributions/t_cdf.m: Likewise. + * statistics/distributions/t_inv.m: Likewise. + * statistics/distributions/t_pdf.m: Likewise. + * statistics/distributions/t_rnd.m: Likewise. + + 2001-02-08 Paul Kienzle + + * strings/dec2base.m: New file. + * strings/base2dec.m: New file. + * strings/strjust.m: New file. + * strings/dec2hex.m: Replace with version that just calls 2dec2base. + * strings/dec2bin.m: Likewise. + * strings/hex2dec.m: Replace with version that just calls base2dec. + * strings/bin2dec.m: Likewise. + + 2001-02-07 David Livings + + * statistics/base/ppplot.m: Use gset, not set. + * statistics/base/qqplot.m: Likewise. + + 2001-02-05 Ondrej Popp + + * control/system/c2d.m: Add missing endif. + + 2000-12-15 Teemu Ikonen + + * strings/index.m: Return 0 if either string is empty. + + 2000-12-15 Ben Sapp + + * control/system/c2d.m: Allow option of matched pole/zero + equivalent for conversion. + + 2000-12-15 Matthew W. Roberts + + * strings/findstr.m: Return empty matrix if search string is empty. + + 2000-12-15 Kai Habel + + * saveimage.m: Do create rawbit image for black and white images, + but do it correctly. + + 2000-12-13 Teemu Ikonen + + * polynomial/deconv.m: For compatibility with Matlab, don't reduce + result polynomials. + + 2000-12-07 John W. Eaton + + * image/saveimage.m: Don't try to create rawbit image. + + 2000-11-21 John W. Eaton + + * Makefile.in (bin-dist): Pass -C to $(MAKE), not -c. + + 2000-11-16 Paul Kienzle + + * plot/contour.m: Reorder args for Matlab compatibility. + + 2000-10-27 Mats Jansson + + * set/create_set.m: Avoid empty matrix in matrix list warning. + + 2000-09-08 Teemu Ikonen + + * plot/errorbar.m, plot/__errplot__.m: New functions. + + * plot/mesh.m: Also set nologscale before plotting. + * plot/__pltopt1__.m: Handle xerrorbars, yerrorbars, and + xyerrorbars instead of just errorbars. + + 2000-08-25 Thomas Walter + + * image/image.m: Try display (from ImageMagick) first. + + 2000-08-01 Rolf Fabian + + * plot/meshgrid.m: Use transpose to reorient vectors, not complex + conjugate transpose. + + 2000-07-21 John W. Eaton + + * strings/str2mat.m: Apply setstr to each argument. + + 2000-07-17 Gabriele Pannocchia + + * control/base/dkalman.m: New file. + * control/base/dlqe.m: Handle singular A matrix. + * control/base/dlqr.m: Likewise. + + 2000-07-14 John W. Eaton + + * strings/strcmp.m: Return 0 instead of an error if row and column + dimensions don't match. + + 2000-06-30 Kai Habel + + * plot/hist.m: Allow 3 argument form to work. + + 2000-06-27 Matthew W. Roberts + + * plot/plot.m: Add examples in doc string. + + 2000-06-08 Ben Sapp + + * control/base/__stepimp__.m: Reset multiplot state when done. + Do the right thing even if automatic_replot is not zero. + Avoid failure if system has pure imaginary poles. + + 2000-06-06 John W. Eaton + + * general/logical.m: Return arg if it is empty. Better error + message for non-numeric types. + + 2000-05-31 A. Scottedward Hodel + + * control/base/dlqe.m: Update documentation. Fix typo. Warn + about difference with Matlab dlqe function. + + * control/system/sysmult.m: Fix typo in argument dimensions checking. + + 2000-05-24 Ben Sapp + + * strings/strrep.m: Fix typo. + + 2000-05-13 John W. Eaton + + * strings/strrep.m: Don't transpose result for case of jump > 0. + + 2000-05-13 Paul Kienzle + + * strings/strrep.m: Avoid for loop for speed. + * plot/axis.m: Handle string options for Matlab compatibility. + + 2000-04-04 John Smith + + * statistics/distributions/beta_inv.m: Provide better(?) initial + guess for iteration. + + 2000-03-31 Paul Kienzle + + * image/image.m: Allow image (A) or image (x, y, A). + * image/imagesc.m: Likewise. + + * image/image.m: If zoom is not supplied, or if it is an empty + matrix, autoscale the image. + + 2000-03-22 John W. Eaton + + * plot/title.m, plot/bottom_title.m, plot/top_title.m: + Undo string escapes in text twice(!) before sending to gnuplot. + + * image/saveimage.m: Add comment to file saying who created it and + when it was created. Suggested by Stephen Eglen + . + + 2000-03-21 Paul Kienzle + + * polynomial/polyreduce.m: Simplify by looking for the first + non-zero element rather than the last of the first set of zero + elements. + + * plot/__pltopt1__.m: Accept "--", "-.", and ":" line styles. + + 2000-03-21 Kai Habel + + * image/saveimage.m: Swap black and white colormaps so zero is + displayed as black and 1 is displayed as white. + Fix indexing bug in ppm case. + + 2000-03-06 Stephen Eglen + + * statistics/tests/kolmogorov_smirnov_test_2.m: Account for ties + between the two distributions (took same approach as ks.test() in R.) + + 2000-02-29 John W. Eaton + + * control/base/bode.m: Temporarily disable automatic_replot. + + 2000-02-23 John W. Eaton + + * Makefile.in (clean): Also remove gethelp. + + * specfun/erfinv.m: Use z_new in convergence test, not z_old. + + 2000-02-11 Georg Thimm + + * set/create_set.m: Use find to avoid while loop. + + 2000-02-11 Stephen Eglen + + * plot/hist.m: New optional third argument. + + 2000-02-10 John W. Eaton + + * miscellaneous/bug_report.m: Use octave-bug script with version + number appended. + + 2000-02-04 John W. Eaton + + * gethelp.cc: Sprinkle with std:: qualifier. + + 2000-01-30 John W. Eaton + + * image/saveimage.m: Delete some debugging code. + + 2000-01-27 John W. Eaton + + * signal/sinc.m: Avoid reshaping. + + * image/rgb2ind.m: No longer needs to reset do_fortran_indexing. + * image/ind2rgb.m: Ditto. + * image/ind2gray.m: Ditto. + * general/reshape.m: Ditto. Also no longer needs to reset + implicit_str_to_num_ok. + + 2000-01-26 John W. Eaton + + * miscellaneous/popen2.m: Deal with the fact that pipe now returns + a list of file structures, not a vector of numeric file ids. + + 2000-01-25 John W. Eaton + + * plot/__axis_label__.m: New function. + Undo string escapes in text twice(!) before sending to gnuplot. + * plot/xlabel.m: Use it. + * plot/ylabel.m: Ditto. + * plot/zlabel.m: Ditto. + + * plot/mesh.m: Fix error message to reflect reality. + + 2000-01-24 Cyril Humbert + + * statistics/distributions/weibull_pdf.m: Use correct formula. + + 2000-01-22 Michael Reifenberger + + * audio/saveaudio.m: Also accept files with .ul extension. + * audio/loadaudio.m: Ditto. + * audio/playaudio.m: Ditto. + + 2000-01-19 John W. Eaton + + * statistics/distributions/beta_cdf.m: Texinfoize doc string. + * statistics/distributions/beta_inv.m: Ditto. + * statistics/distributions/beta_pdf.m: Ditto. + * statistics/distributions/beta_rnd.m: Ditto. + * statistics/distributions/binomial_cdf.m: Ditto. + * statistics/distributions/binomial_inv.m: Ditto. + * statistics/distributions/binomial_pdf.m: Ditto. + * statistics/distributions/binomial_rnd.m: Ditto. + * statistics/distributions/cauchy_cdf.m: Ditto. + * statistics/distributions/cauchy_inv.m: Ditto. + * statistics/distributions/cauchy_pdf.m: Ditto. + * statistics/distributions/cauchy_rnd.m: Ditto. + * statistics/distributions/chisquare_cdf.m: Ditto. + * statistics/distributions/chisquare_inv.m: Ditto. + * statistics/distributions/chisquare_pdf.m: Ditto. + * statistics/distributions/chisquare_rnd.m: Ditto. + * statistics/distributions/discrete_cdf.m: Ditto. + * statistics/distributions/discrete_inv.m: Ditto. + * statistics/distributions/discrete_pdf.m: Ditto. + * statistics/distributions/discrete_rnd.m: Ditto. + * statistics/distributions/empirical_cdf.m: Ditto. + * statistics/distributions/empirical_inv.m: Ditto. + * statistics/distributions/empirical_pdf.m: Ditto. + * statistics/distributions/empirical_rnd.m: Ditto. + * statistics/distributions/exponential_cdf.m: Ditto. + * statistics/distributions/exponential_inv.m: Ditto. + * statistics/distributions/exponential_pdf.m: Ditto. + * statistics/distributions/exponential_rnd.m: Ditto. + * statistics/distributions/f_cdf.m: Ditto. + * statistics/distributions/f_inv.m: Ditto. + * statistics/distributions/f_pdf.m: Ditto. + * statistics/distributions/f_rnd.m: Ditto. + * statistics/distributions/gamma_cdf.m: Ditto. + * statistics/distributions/gamma_inv.m: Ditto. + * statistics/distributions/gamma_pdf.m: Ditto. + * statistics/distributions/gamma_rnd.m: Ditto. + * statistics/distributions/geometric_cdf.m: Ditto. + * statistics/distributions/geometric_inv.m: Ditto. + * statistics/distributions/geometric_pdf.m: Ditto. + * statistics/distributions/geometric_rnd.m: Ditto. + * statistics/distributions/hypergeometric_cdf.m: Ditto. + * statistics/distributions/hypergeometric_inv.m: Ditto. + * statistics/distributions/hypergeometric_pdf.m: Ditto. + * statistics/distributions/hypergeometric_rnd.m: Ditto. + * statistics/distributions/kolmogorov_smirnov_cdf.m: Ditto. + * statistics/distributions/laplace_cdf.m: Ditto. + * statistics/distributions/laplace_inv.m: Ditto. + * statistics/distributions/laplace_pdf.m: Ditto. + * statistics/distributions/laplace_rnd.m: Ditto. + * statistics/distributions/logistic_cdf.m: Ditto. + * statistics/distributions/logistic_inv.m: Ditto. + * statistics/distributions/logistic_pdf.m: Ditto. + * statistics/distributions/logistic_rnd.m: Ditto. + * statistics/distributions/lognormal_cdf.m: Ditto. + * statistics/distributions/lognormal_inv.m: Ditto. + * statistics/distributions/lognormal_pdf.m: Ditto. + * statistics/distributions/lognormal_rnd.m: Ditto. + * statistics/distributions/normal_cdf.m: Ditto. + * statistics/distributions/normal_inv.m: Ditto. + * statistics/distributions/normal_pdf.m: Ditto. + * statistics/distributions/normal_rnd.m: Ditto. + * statistics/distributions/pascal_cdf.m: Ditto. + * statistics/distributions/pascal_inv.m: Ditto. + * statistics/distributions/pascal_pdf.m: Ditto. + * statistics/distributions/pascal_rnd.m: Ditto. + * statistics/distributions/poisson_cdf.m: Ditto. + * statistics/distributions/poisson_inv.m: Ditto. + * statistics/distributions/poisson_pdf.m: Ditto. + * statistics/distributions/poisson_rnd.m: Ditto. + * statistics/distributions/stdnormal_cdf.m: Ditto. + * statistics/distributions/stdnormal_inv.m: Ditto. + * statistics/distributions/stdnormal_pdf.m: Ditto. + * statistics/distributions/stdnormal_rnd.m: Ditto. + * statistics/distributions/t_cdf.m: Ditto. + * statistics/distributions/t_inv.m: Ditto. + * statistics/distributions/t_pdf.m: Ditto. + * statistics/distributions/t_rnd.m: Ditto. + * statistics/distributions/uniform_cdf.m: Ditto. + * statistics/distributions/uniform_inv.m: Ditto. + * statistics/distributions/uniform_pdf.m: Ditto. + * statistics/distributions/uniform_rnd.m: Ditto. + * statistics/distributions/weibull_cdf.m: Ditto. + * statistics/distributions/weibull_inv.m: Ditto. + * statistics/distributions/weibull_pdf.m: Ditto. + * statistics/distributions/weibull_rnd.m: Ditto. + * statistics/distributions/wiener_rnd.m: Ditto. + + 2000-01-18 John W. Eaton + + * statistics/base/values.m: Texinfoize doc string. + * statistics/base/var.m: Ditto. + * statistics/base/table.m: Ditto. + * statistics/base/studentize.m: Ditto. + * statistics/base/statistics.m: Ditto. + * statistics/base/spearman.m: Ditto. + * statistics/base/run_count.m: Ditto. + * statistics/base/ranks.m: Ditto. + * statistics/base/range.m: Ditto. + * statistics/base/qqplot.m: Ditto. + * statistics/base/probit.m: Ditto. + * statistics/base/ppplot.m: Ditto. + * statistics/base/moment.m: Ditto. + * statistics/base/meansq.m: Ditto. + * statistics/base/logit.m: Ditto. + * statistics/base/kendall.m: Ditto. + * statistics/base/iqr.m: Ditto. + * statistics/base/cut.m: Ditto. + * statistics/base/cor.m: Ditto. + * statistics/base/cloglog.m: Ditto. + * statistics/base/center.m: Ditto. + * statistics/models/logistic_regression.m: Ditto. + * statistics/models/logistic_regression_derivative.m: Ditto. + * statistics/models/logistic_regression_likelihood.m: Ditto. + * statistics/tests/anova.m: Ditto. + * statistics/tests/bartlett_test.m: Ditto. + * statistics/tests/chisquare_test_homogeneity.m: Ditto. + * statistics/tests/chisquare_test_independence.m: Ditto. + * statistics/tests/cor_test.m: Ditto. + * statistics/tests/f_test_regression.m: Ditto. + * statistics/tests/hotelling_test.m: Ditto. + * statistics/tests/hotelling_test_2.m: Ditto. + * statistics/tests/kolmogorov_smirnov_test.m: Ditto. + * statistics/tests/kolmogorov_smirnov_test_2.m: Ditto. + * statistics/tests/kruskal_wallis_test.m: Ditto. + * statistics/tests/manova.m: Ditto. + * statistics/tests/mcnemar_test.m: Ditto. + * statistics/tests/prop_test_2.m: Ditto. + * statistics/tests/run_test.m: Ditto. + * statistics/tests/sign_test.m: Ditto. + * statistics/tests/t_test.m: Ditto. + * statistics/tests/t_test_2.m: Ditto. + * statistics/tests/t_test_regression.m: Ditto. + * statistics/tests/u_test.m: Ditto. + * statistics/tests/var_test.m: Ditto. + * statistics/tests/welch_test.m: Ditto. + * statistics/tests/wilcoxon_test.m: Ditto. + * statistics/tests/z_test.m: Ditto. + * statistics/tests/z_test_2.m: Ditto. + + 2000-01-17 John W. Eaton + + * strings/bin2dec.m: Texinfoize doc string. + * plot/__plr1__.m: Ditto. + * plot/__pltopt__.m: Ditto. + * plot/__plt__.m: Ditto. + * plot/__plt2vv__.m: Ditto. + * plot/__plr2__.m: Ditto. + * plot/__plr__.m: Ditto. + * plot/__plt1__.m: Ditto. + * plot/__plt2__.m: Ditto. + * plot/__plt2mm__.m: Ditto. + * plot/__plt2mv__.m: Ditto. + * plot/__plt2ss__.m: Ditto. + * miscellaneous/paren.m: Ditto. + * miscellaneous/comma.m: Ditto. + * miscellaneous/semicolon.m: Ditto. + * miscellaneous/path.m: Ditto. + * miscellaneous/list_primes.m: Ditto. + * miscellaneous/flops.m: Ditto. + * miscellaneous/dump_prefs.m: Ditto. + * miscellaneous/bug_report.m: Ditto. + * linear-algebra/dot.m: Ditto + * linear-algebra/dmult.m: Ditto. + * general/randperm.m: Ditto. + * general/logical.m: Ditto. + * general/is_duplicate_entry.m: Ditto. + * signal/arch_fit.m: Ditto. + * signal/arch_rnd.m: Ditto. + * signal/arch_test.m: Ditto. + * signal/arma_rnd.m: Ditto. + * signal/autocor.m: Ditto. + * signal/autocov.m: Ditto. + * signal/autoreg_matrix.m: Ditto. + * signal/bartlett.m: Ditto. + * signal/blackman.m: Ditto. + * signal/detrend.m: Ditto. + * signal/diffpara.m: Ditto. + * signal/durbinlevinson.m: Ditto. + * signal/fftconv.m: Ditto. + * signal/fftfilt.m: Ditto. + * signal/fftshift.m: Ditto. + * signal/fractdiff.m: Ditto. + * signal/freqz.m: Ditto. + * signal/hamming.m: Ditto. + * signal/hanning.m: Ditto. + * signal/hurst.m: Ditto. + * signal/periodogram.m: Ditto. + * signal/rectangle_lw.m: Ditto. + * signal/rectangle_sw.m: Ditto. + * signal/sinc.m: Ditto. + * signal/sinetone.m: Ditto. + * signal/sinewave.m: Ditto. + * signal/spectral_adf.m: Ditto. + * signal/spectral_xdf.m: Ditto. + * signal/spencer.m: Ditto. + * signal/stft.m: Ditto. + * signal/synthesis.m: Ditto. + * signal/triangle_lw.m: Ditto. + * signal/triangle_sw.m: Ditto. + * signal/yulewalker.m: Ditto. + * control/util/strappend.m: Ditto. + * control/base/nichols.m: Ditto. + * control/system/is_signal_list.m: Ditto. + * control/system/listidx.m: Ditto. + * control/system/sysgettsam.m: Ditto. + * control/system/sysidx.m: Ditto. + + 2000-01-14 John W. Eaton + + * control/system/__abcddims__.m: Rename from + control/system/abcddims.m, change all callers. + * control/base/__bodquist__.m: Likewise. + * control/base/__freqresp__.m: Likewise. + * control/util/__outlist__.m: Likewise. + * control/base/__stepimp__.m: Likewise. + * control/system/__syschnamesl__.m: Likewise. + * control/system/__syscont_disc__.m: Likewise. + * control/system/__sysdefioname__.m: Likewise. + * control/system/__sysdefstname__.m: Likewise. + * control/system/__sysgroupn__.m: Likewise. + * control/system/__tf2sysl__.m: Likewise. + * control/util/__zgpbal__.m: Likewise. + * control/system/__zp2ssg2__.m: Likewise. + + * quaternion/demoquat.m: Add copyright notice, Texinfoize doc string. + * quaternion/qconj.m: Ditto. + * quaternion/qcoordinate_plot.m: Ditto. + * quaternion/qderiv.m: Ditto. + * quaternion/qderivmat.m: Ditto. + * quaternion/qinv.m: Ditto. + * quaternion/qmult.m: Ditto. + * quaternion/qtrans.m: Ditto. + * quaternion/qtransv.m: Ditto. + * quaternion/qtransvmat.m: Ditto. + * quaternion/quaternion.m: Ditto. + + 2000-01-13 John W. Eaton + + * control/base/Makefile.in: Ditto. + * control/hinf/Makefile.in: New file. + * control/marsyas/Makefile.in: Ditto. + * control/obsolete/Makefile.in: Ditto. + * control/system/Makefile.in: Ditto. + * control/util/Makefile.in: Ditto. + + * strings/com2str.m: Move here from control directory. + + * control/base: New directory. + * control/base/DEMOcontrol.m: Move here from control directory. + * control/base/analdemo.m: Ditto. + * control/base/are.m: Ditto. + * control/base/bddemo.m: Ditto. + * control/base/bode.m: Ditto. + * control/base/bode_bounds.m: Ditto. + * control/base/bodquist.m: Ditto. + * control/base/controldemo.m: Ditto. + * control/base/ctrb.m: Ditto. + * control/base/damp.m: Ditto. + * control/base/dare.m: Ditto. + * control/base/dcgain.m: Ditto. + * control/base/dgram.m: Ditto. + * control/base/dlqe.m: Ditto. + * control/base/dlqr.m: Ditto. + * control/base/dlyap.m: Ditto. + * control/base/dre.m: Ditto. + * control/base/frdemo.m: Ditto. + * control/base/freqchkw.m: Ditto. + * control/base/freqresp.m: Ditto. + * control/base/gram.m: Ditto. + * control/base/impulse.m: Ditto. + * control/base/lqe.m: Ditto. + * control/base/lqg.m: Ditto. + * control/base/lqr.m: Ditto. + * control/base/lsim.m: Ditto. + * control/base/ltifr.m: Ditto. + * control/base/lyap.m: Ditto. + * control/base/nichols.m: Ditto. + * control/base/nyquist.m: Ditto. + * control/base/obsv.m: Ditto. + * control/base/place.m: Ditto. + * control/base/pzmap.m: Ditto. + * control/base/rldemo.m: Ditto. + * control/base/rlocus.m: Ditto. + * control/base/step.m: Ditto. + * control/base/stepimp.m: Ditto. + * control/base/tzero.m: Ditto. + * control/base/tzero2.m: Ditto. + + * control/hinf: New directory. + * control/hinf/dhinfdemo.m: Move here from control directory. + * control/hinf/h2norm.m: Ditto. + * control/hinf/h2syn.m: Ditto. + * control/hinf/hinf_ctr.m: Ditto. + * control/hinf/hinfdemo.m: Ditto. + * control/hinf/hinfnorm.m: Ditto. + * control/hinf/hinfsyn.m: Ditto. + * control/hinf/hinfsyn_chk.m: Ditto. + * control/hinf/hinfsyn_ric.m: Ditto. + * control/hinf/wgt1o.m: Ditto. + * control/hinf/dgkfdemo.m: Ditto. + * control/hinf/is_dgkf.m: Ditto. + + * control/marsyas: New directory. + * control/marsyas/demomarsyas.m: Move here from control directory. + * control/marsyas/susball.m: Ditto. + + * control/obsolete/dezero.m: Move here from control directory. + * control/obsolete/rotg.m: Ditto. + + * control/system: New directory. + * control/system/abcddim.m: Move here from control directory. + * control/system/abcddims.m: Ditto. + * control/system/buildssic.m: Ditto. + * control/system/c2d.m: Ditto. + * control/system/d2c.m: Ditto. + * control/system/dmr2d.m: Ditto. + * control/system/fir2sys.m: Ditto. + * control/system/is_abcd.m: Ditto. + * control/system/is_digital.m: Ditto. + * control/system/is_sample.m: Ditto. + * control/system/is_signal_list.m: Ditto. + * control/system/is_siso.m: Ditto. + * control/system/is_controllable.m: Ditto. + * control/system/is_detectable.m: Ditto. + * control/system/is_observable.m: Ditto. + * control/system/is_stabilizable.m: Ditto. + * control/system/is_stable.m: Ditto. + * control/system/jet707.m: Ditto. + * control/system/listidx.m: Ditto. + * control/system/moddemo.m: Ditto. + * control/system/ord2.m: Ditto. + * control/system/packedform.m: Ditto. + * control/system/parallel.m: Ditto. + * control/system/ss2sys.m: Ditto. + * control/system/ss2tf.m: Ditto. + * control/system/ss2zp.m: Ditto. + * control/system/starp.m: Ditto. + * control/system/sys2fir.m: Ditto. + * control/system/sys2ss.m: Ditto. + * control/system/sys2tf.m: Ditto. + * control/system/sys2zp.m: Ditto. + * control/system/sysadd.m: Ditto. + * control/system/sysappend.m: Ditto. + * control/system/syschnamesl.m: Ditto. + * control/system/syschtsam.m: Ditto. + * control/system/sysconnect.m: Ditto. + * control/system/syscont.m: Ditto. + * control/system/syscont_disc.m: Ditto. + * control/system/sysdefioname.m: Ditto. + * control/system/sysdefstname.m: Ditto. + * control/system/sysdimensions.m: Ditto. + * control/system/sysdisc.m: Ditto. + * control/system/sysdup.m: Ditto. + * control/system/sysgetsignals.m: Ditto. + * control/system/sysgettsam.m: Ditto. + * control/system/sysgettype.m: Ditto. + * control/system/sysgroup.m: Ditto. + * control/system/sysgroupn.m: Ditto. + * control/system/sysidx.m: Ditto. + * control/system/sysmin.m: Ditto. + * control/system/sysmult.m: Ditto. + * control/system/sysout.m: Ditto. + * control/system/sysprune.m: Ditto. + * control/system/sysreorder.m: Ditto. + * control/system/sysrepdemo.m: Ditto. + * control/system/sysscale.m: Ditto. + * control/system/syssetsignals.m: Ditto. + * control/system/syssub.m: Ditto. + * control/system/sysupdate.m: Ditto. + * control/system/tf2ss.m: Ditto. + * control/system/tf2sys.m: Ditto. + * control/system/tf2sysl.m: Ditto. + * control/system/tf2zp.m: Ditto. + * control/system/tfout.m: Ditto. + * control/system/ugain.m: Ditto. + * control/system/zp2ss.m: Ditto. + * control/system/zp2ssg2.m: Ditto. + * control/system/zp2sys.m: Ditto. + * control/system/zp2tf.m: Ditto. + * control/system/zpout.m: Ditto. + + * control/util: New directory. + * control/util/axis2dlim.m: Move here from control directory. + * control/util/outlist.m: Ditto. + * control/util/prompt.m: Ditto. + * control/util/run_cmd.m: Ditto. + * control/util/sortcom.m: Ditto. + * control/util/strappend.m: Ditto. + * control/util/swap.m: Ditto. + * control/util/zgfmul.m: Ditto. + * control/util/zgfslv.m: Ditto. + * control/util/zginit.m: Ditto. + * control/util/zgpbal.m: Ditto. + * control/util/zgreduce.m: Ditto. + * control/util/zgrownorm.m: Ditto. + * control/util/zgscal.m: Ditto. + * control/util/zgsgiv.m: Ditto. + * control/util/zgshsr.m: Ditto. + + 2000-01-13 John W. Eaton + + * gethelp.cc (extract_help_text): Discard first space character + after consecutive comment characters. + + Thu Jan 13 00:56:57 2000 John W. Eaton + + * control/obsolete: New directory + * control/obsolete/swaprows.m: Move here from control directory. + * control/obsolete/swapcols.m: Ditto. + * control/obsolete/dlqg.m: Ditto. + * control/obsolete/minfo.m: Ditto. + * control/obsolete/packsys.m: Ditto. + * control/obsolete/qzval.m: Ditto. + * control/obsolete/unpacksys.m: Ditto. + * control/obsolete/series.m: Ditto. + * control/obsolete/syschnames.m: Ditto. + * polynomial/polyout.m: Ditto. + + 2000-01-13 John W. Eaton + + * general/fliplr.m: Eliminate useless copy of arg. + * general/flipud.m: Ditto. + + 2000-01-11 John W. Eaton + + * linear-algebra/cross.m: Only return a row vector if both args + are row vectors. + * polynomial/polyfit.m: Likewise. + + * signal/autocov.m: Don't reset prefer_column_vectors. + + * statistics/distributions/discrete_rnd.m: + Always generate a row vector. + * statistics/distributions/hypergeometric_rnd.m: Likewise. + + 2000-01-11 Ben Sapp + + * strings/upper.m: Add missing `-*- texinfo -*-' tag to doc string. + + * audio/setaudio.m: Texinfoize doc string. + * control/com2str.m: Likewise. + * control/controldemo.m: Likewise. + * control/DEMOcontrol.m: Likewise. + * control/dezero.m: Likewise. + * control/dre.m: Likewise. + * control/hinfsyn_ric.m: Likewise. + + 2000-01-05 Ben Sapp + + * io/printf.m: Add @seealso{...} to doc string. + * io/puts.m: Likewise. + * plot/semilogx.m: Likewise. + * plot/semilogy.m: Likewise. + * plot/__pltopt__.m: Likewise. + * plot/bar.m: Likewise. + * plot/xlabel.m: Likewise. + * plot/grid.m: Likewise. + * plot/shg.m: Likewise. + * plot/title.m: Likewise. + * plot/mesh.m: Likewise. + * plot/__pltopt1__.m: Likewise. + * plot/contour.m: Likewise. + * plot/hist.m: Likewise. + * plot/stairs.m: Likewise. + * plot/meshgrid.m: Likewise. + * plot/polar.m: Likewise. + * plot/loglog.m: Likewise. + * plot/plot.m: Likewise. + * miscellaneous/semicolon.m: Likewise. + * miscellaneous/menu.m: Likewise. + * miscellaneous/etime.m: Likewise. + * miscellaneous/texas_lotto.m: Likewise. + * miscellaneous/comma.m: Likewise. + * audio/lin2mu.m: Likewise. + * audio/playaudio.m: Likewise. + * audio/loadaudio.m: Likewise. + * audio/saveaudio.m: Likewise. + * audio/mu2lin.m: Likewise. + * audio/record.m: Likewise. + * strings/isletter.m: Likewise. + * strings/lower.m: Likewise. + * strings/lower.m: Likewise. + * strings/upper.m: Likewise. + * specfun/erfinv.m: Likewise. + * specfun/gammai.m: Likewise. + * specfun/log2.m: Likewise. + * specfun/pow2.m: Likewise. + * elfun/gcd.m: Likewise. + * elfun/lcm.m: Likewise. + * special-matrix/vander.m: Likewise. + * special-matrix/sylvester_matrix.m: Likewise. + * special-matrix/hilb.m: Likewise. + * special-matrix/hankel.m: Likewise. + * special-matrix/toeplitz.m: Likewise. + * special-matrix/invhilb.m: Likewise. + * statistics/base/std.m: Likewise. + * statistics/base/median.m: Likewise. + * linear-algebra/cond.m: Likewise. + * linear-algebra/norm.m: Likewise. + * finance/nper.m: Likewise. + * finance/pmt.m: Likewise. + * finance/pv.m: Likewise. + * finance/rate.m: Likewise. + * finance/npv.m: Likewise. + * general/fliplr.m: Likewise. + * general/flipud.m: Likewise. + * general/is_scalar.m: Likewise. + * general/rem.m: Likewise. + * general/perror.m: Likewise. + * general/tril.m: Likewise. + * general/rot90.m: Likewise. + * general/num2str.m: Likewise. + * general/int2str.m: Likewise. + * general/reshape.m: Likewise. + * general/logspace.m: Likewise. + * general/is_symmetric.m: Likewise. + * general/is_vector.m: Likewise. + * general/nextpow2.m: Likewise. + * general/columns.m: Likewise. + * general/is_square.m: Likewise. + * general/rows.m: Likewise. + * control/ugain.m: Likewise. + * control/damp.m: Likewise. + * control/dare.m: Likewise. + * control/are.m: Likewise. + * control/sys2fir.m: Likewise. + * control/abcddim.m: Likewise. + * control/is_abcd.m: Likewise. + * control/step.m: Likewise. + * control/is_observable.m: Likewise. + * control/is_controllable.m: Likewise. + * control/jet707.m: Likewise. + * control/polyout.m: Likewise. + * control/impulse.m: Likewise. + * control/lqg.m: Likewise. + * control/is_detectable.m: Likewise. + * control/sysdimensions.m: Likewise. + * control/sysupdate.m: Likewise. + * control/stepimp.m: Likewise. + * control/is_stable.m: Likewise. + * control/tfout.m: Likewise. + * control/zpout.m: Likewise. + + 2000-01-05 John W. Eaton + + * set/complement.m: Add @seealso{} stuff. + * set/create_set.m: Likewise. + * set/intersection.m: Likewise. + * set/union.m: Likewise. + + 1999-12-22 John W. Eaton + + * control/d2c.m: Use double quotes instead of single quotes for + string constants. + * control/dgkfdemo.m: Likewise. + * control/fir2sys.m: Likewise. + * control/frdemo.m: Likewise. + * control/moddemo.m: Likewise. + * control/minfo.m: Likewise. + * control/is_stabilizable.m: Likewise. + * control/is_dgkf.m: Likewise. + * control/polyout.m: Likewise. + * control/sysconnect.m: Likewise. + * control/sysrepdemo.m: Likewise. + * control/tf2sys.m: Likewise. + * control/tfout.m: Likewise. + * control/zp2sys.m: Likewise. + * control/zpout.m: Likewise. + * control/tzero.m: Likewise. + + * control/DEMOcontrol.m: Handle moddemo case too. + + * image/loadimage.m: Use double quotes instead of single quotes + for string constants. Use sprintf instead of square brackets to + construct string. + + * control/DEMOcontrol.m: Formatting tweaks. + * control/fir2sys.m: Likewise. + + 1999-12-17 John W. Eaton + + * mkdoc: Only delete spaces before @ characters at the beginning + of a line. + + 1999-12-15 John W. Eaton + + * control/bddemo.m: Make it more likely to work with any value of + whitespace_in_literal_matrix. + * control/analdemo.m: Ditto. + * control/dgkfdemo.m: Ditto. + * control/frdemo.m: Ditto. + * control/sysrepdemo.m: Ditto. + * control/moddemo.m: Ditto. + * control/zp2ss.m: Ditto. + * control/zp2tf.m: Ditto. + * control/syssub.m: Ditto. + * finance/npv.m: Ditto. + * statistics/base/studentize.m: Ditto. + * statistics/base/values.m: Ditto. + * statistics/distributions/exponential_cdf.m: Ditto. + * statistics/distributions/poisson_cdf.m: Ditto. + + * control/dezero.m: Use toascii to convert string to ASCII value + instead of multiplying it by 1. + + * control/zp2sys.m: Don't save and restore implicit_str_to_num_ok. + * control/zpout.m: Ditto. + * control/tfout.m: Ditto. + * control/tf2sys.m: Ditto. + * control/syssub.m: Ditto. + * control/syssetsignals.m: Ditto. + * control/sysout.m: Ditto. + * control/sysmult.m: Ditto. + * control/sysgroup.m: Ditto. + * control/sysdup.m: Ditto. + * control/sysdisc.m: Ditto. + * control/syscont.m: Ditto. + * control/sysconnect.m: Ditto. + * control/sysappend.m: Ditto. + * control/sysadd.m: Ditto. + * control/ss2sys.m: Ditto. + * control/nyquist.m: Ditto. + * control/lqg.m: Ditto. + * control/fir2sys.m: Ditto. + * control/dmr2d.m: Ditto. + * control/dezero.m: Ditto. + * control/d2c.m: Ditto. + * control/c2d.m: Ditto. + * control/bddemo.m: Ditto. + * control/pzmap.m: Ditto. + + 1999-12-08 Daniel Calvelo + + * signal/spectral_adf.m: Fix typo. + + 1999-11-23 John W. Eaton + + * linear-algebra/cond.m: Texinfoize doc string. + * linear-algebra/kron.m: Ditto. + * linear-algebra/norm.m: Ditto. + * linear-algebra/null.m: Ditto. + * linear-algebra/orth.m: Ditto. + * linear-algebra/rank.m: Ditto. + * linear-algebra/trace.m: Ditto. + * linear-algebra/qzhess.m: Ditto. + * miscellaneous/menu.m: Ditto. + * general/perror.m: Ditto. + * general/strerror.m: Ditto. + * general/columns.m: Ditto. + * general/rows.m: Ditto. + * image/colormap.m: Ditto. + * image/gray.m: Ditto. + * image/gray2ind.m: Ditto. + * image/image.m: Ditto. + * image/imagesc.m: Ditto. + * image/imshow.m: Ditto. + * image/ind2gray.m: Ditto. + * image/ind2rgb.m: Ditto. + * image/loadimage.m: Ditto. + * image/rgb2ntsc.m: Ditto. + * image/ntsc2rgb.m: Ditto. + * image/ocean.m: Ditto. + * image/rgb2ind.m: Ditto. + * image/saveimage.m: Ditto. + * io/printf.m: Ditto. + * io/puts.m: Ditto. + + 1999-11-21 John W. Eaton + + * special-matrix/hankel.m: Texinfoize doc string. + * special-matrix/hilb.m: Ditto. + * special-matrix/invhilb.m: Ditto. + * special-matrix/sylvester_matrix.m: Ditto. + * special-matrix/toeplitz.m: Ditto. + * special-matrix/vander.m: Ditto. + * linear-algebra/vec.m: Ditto. + * linear-algebra/vech.m: Ditto. + * general/common_size.m: Ditto. + * general/diff.m: Ditto. + * general/fliplr.m: Ditto. + * general/flipud.m: Ditto. + * general/rot90.m: Ditto. + * general/reshape.m: Ditto. + * general/shift.m: Ditto. + * general/tril.m: Ditto. + * general/triu.m: Ditto. + * general/logspace.m: Ditto. + * general/nargchk.m: Ditto. + + 1999-11-20 John W. Eaton + + * statistics/base/mean: Texinfoize doc string. + * statistics/base/median: Ditto. + * statistics/base/std: Ditto. + * statistics/base/cov: Ditto. + * statistics/base/corrcoef: Ditto. + * statistics/base/kurtosis: Ditto. + * statistics/base/mahalanobis: Ditto. + * statistics/base/skewness: Ditto. + * statistics/base/gls.m: Ditto. + * statistics/base/ols.m: Ditto. + * signal/detrend.m: Ditto. + * signal/freqz.m: Ditto. + * signal/sinc.m: Ditto. + * signal/fftconv.m: Ditto. + * signal/fftfilt.m: Ditto. + * set/create_set.m: Ditto. + * set/union.m: Ditto. + * set/intersection.m: Ditto. + * set/complement.m: Ditto. + * poly/compan.m: Ditto. + * poly/conv: Ditto. + * poly/deconv: Ditto. + * poly/poly: Ditto. + * poly/polyderiv: Ditto. + * poly/polyfit: Ditto. + * poly/polyinteg: Ditto. + * poly/polyreduce: Ditto. + * poly/polyval: Ditto. + * poly/polyvalm: Ditto. + * poly/residue: Ditto. + * poly/roots: Ditto. + * plot/top_title.m: Ditto + * plot/subwindow.m: Ditto + * plot/subplot.m: Ditto + * plot/plot_border.m: Ditto + * plot/oneplot.m: Ditto + * plot/multiplot.m: Ditto + * plot/mplot.m: Ditto + * plot/xlabel.m: Ditto + * plot/figure.m: Ditto + * plot/meshdom.m: Ditto + * plot/mesh.m: Ditto + * plot/stairs.m: Ditto + * plot/polar.m: Ditto + * plot/loglog.m: Ditto + * plot/hist.m: Ditto + * plot/contour.m: Ditto + * plot/bar.m: Ditto + * plot/axis.m: Ditto + * plot/plot.m: Ditto. + + 1999-11-19 John W. Eaton + + * control/pinv.m: Delete. + + * Makefile.in (DOCSTRINGS): Don't echo $(ALL_M_FILES). + + * strings/blanks.m: Texinfoize doc string. + * strings/strcat.m: Ditto. + * strings/str2mat.m: Ditto. + * strings/deblank.m: Ditto. + * strings/findstr.m: Ditto. + * strings/index.m: Ditto. + * strings/rindex.m: Ditto. + * strings/split.m: Ditto. + * strings/strcmp.m: Ditto. + * strings/strrep.m: Ditto. + * strings/substr.m: Ditto. + * general/int2str.m: Ditto. + * general/num2str.m: Ditto. + * strings/dec2bin.m: Ditto. + * strings/bin2dec: Ditto. + * strings/dec2bin: Ditto. + * strings/dec2hex: Ditto. + * strings/hex2dec: Ditto. + * strings/str2num: Ditto. + + 1999-11-10 John W. Eaton + + * Makefile.in (DISTFILES): Include DOCSTRINGS. + + 1999-11-09 Ben Sapp + + * control/DEMOcontrol.m: Texinfoize doc string. + * control/abcddim.m: Ditto. + * control/abcddims.m: Ditto. + * control/analdemo.m: Ditto. + * control/are.m: Ditto. + * control/axis2dlim.m: Ditto. + * control/bddemo.m: Ditto. + * control/bode.m: Ditto. + * control/bode_bounds.m: Ditto. + * control/bodquist.m: Ditto. + * control/buildssic.m: Ditto. + * control/c2d.m: Ditto. + * control/ctrb.m: Ditto. + * control/d2c.m: Ditto. + * control/damp.m: Ditto. + * control/dare.m: Ditto. + * control/dcgain.m: Ditto. + * control/dgkfdemo.m: Ditto. + * control/dgram.m: Ditto. + * control/dlqe.m: Ditto. + * control/dlqr.m: Ditto. + * control/dlyap.m: Ditto. + * control/dmr2d.m: Ditto. + * control/fir2sys.m: Ditto. + * control/frdemo.m: Ditto. + * control/freqchkw.m: Ditto. + * control/freqresp.m: Ditto. + * control/gram.m: Ditto. + * control/h2norm.m: Ditto. + * control/h2syn.m: Ditto. + * control/hinf_ctr.m: Ditto. + * control/hinfdemo.m: Ditto. + * control/hinfnorm.m: Ditto. + * control/hinfsyn.m: Ditto. + * control/hinfsyn_chk.m: Ditto. + * control/impulse.m: Ditto. + * control/is_abcd.m: Ditto. + * control/is_controllable.m: Ditto. + * control/is_detectable.m: Ditto. + * control/is_dgkf.m: Ditto. + * control/is_digital.m: Ditto. + * control/is_observable.m: Ditto. + * control/is_sample.m: Ditto. + * control/is_signal_list.m: Ditto. + * control/is_siso.m: Ditto. + * control/is_stabilizable.m: Ditto. + * control/is_stable.m: Ditto. + * control/jet707.m: Ditto. + * control/lqe.m: Ditto. + * control/lqg.m: Ditto. + * control/lqr.m: Ditto. + * control/lsim.m: Ditto. + * control/ltifr.m: Ditto. + * control/lyap.m: Ditto. + * control/moddemo.m: Ditto. + * control/nyquist.m: Ditto. + * control/obsv.m: Ditto. + * control/ord2.m: Ditto. + * control/outlist.m: Ditto. + * control/pinv.m: Ditto. + * control/place.m: Ditto. + * control/polyout.m: Ditto. + * control/prompt.m: Ditto. + * control/pzmap.m: Ditto. + * control/qzval.m: Ditto. + * control/rldemo.m: Ditto. + * control/rlocus.m: Ditto. + * control/sortcom.m: Ditto. + * control/ss2sys.m: Ditto. + * control/ss2tf.m: Ditto. + * control/ss2zp.m: Ditto. + * control/starp.m: Ditto. + * control/step.m: Ditto. + * control/stepimp.m: Ditto. + * control/susball.m: Ditto. + * control/sys2fir.m: Ditto. + * control/sys2ss.m: Ditto. + * control/sys2tf.m: Ditto. + * control/sys2zp.m: Ditto. + * control/sysadd.m: Ditto. + * control/sysappend.m: Ditto. + * control/syschnames.m: Ditto. + * control/syschnamesl.m: Ditto. + * control/syschtsam.m: Ditto. + * control/sysconnect.m: Ditto. + * control/syscont.m: Ditto. + * control/syscont_disc.m: Ditto. + * control/sysdefioname.m: Ditto. + * control/sysdefstname.m: Ditto. + * control/sysdimensions.m: Ditto. + * control/sysdisc.m: Ditto. + * control/sysdup.m: Ditto. + * control/sysgetsignals.m: Ditto. + * control/sysgettype.m: Ditto. + * control/sysgroup.m: Ditto. + * control/sysgroupn.m: Ditto. + * control/sysmult.m: Ditto. + * control/sysout.m: Ditto. + * control/sysprune.m: Ditto. + * control/sysreorder.m: Ditto. + * control/sysrepdemo.m: Ditto. + * control/sysscale.m: Ditto. + * control/syssetsignals.m: Ditto. + * control/syssub.m: Ditto. + * control/sysupdate.m: Ditto. + * control/tf2ss.m: Ditto. + * control/tf2sys.m: Ditto. + * control/tf2sysl.m: Ditto. + * control/tf2zp.m: Ditto. + * control/tfout.m: Ditto. + * control/tzero.m: Ditto. + * control/tzero2.m: Ditto. + * control/ugain.m: Ditto. + * control/wgt1o.m: Ditto. + * control/zgfmul.m: Ditto. + * control/zgfslv.m: Ditto. + * control/zginit.m: Ditto. + * control/zgpbal.m: Ditto. + * control/zgreduce.m: Ditto. + * control/zgrownorm.m: Ditto. + * control/zgscal.m: Ditto. + * control/zgsgiv.m: Ditto. + * control/zgshsr.m: Ditto. + * control/zp2ss.m: Ditto. + * control/zp2ssg2.m: Ditto. + * control/zp2sys.m: Ditto. + * control/zp2tf.m: Ditto. + * control/zpout.m: Ditto. + + 1999-11-02 Ben Sapp + + * audio/lin2mu.m: Texinfoize doc string. + * audio/loadaudio.m: Ditto. + * audio/mu2lin.m: Ditto. + * audio/playaudio.m: Ditto. + * audio/record.m: Ditto. + * audio/saveaudio.m: Ditto. + + 1999-10-26 Ben Sapp + + * elfun/acot.m: Texinfoize doc string. + * elfun/acsc.m: Ditto. + * elfun/acsch.m: Ditto. + * elfun/asec.m: Ditto. + * elfun/asech.m: Ditto. + * elfun/cot.m: Ditto. + * elfun/coth.m: Ditto. + * elfun/csc.m: Ditto. + * elfun/csch.m: Ditto. + * elfun/gcd.m: Ditto. + * elfun/lcm.m: Ditto. + * elfun/sec.m: Ditto. + * elfun/sech.m: Ditto. + * general/nextpow2.m: Ditto. + * general/rem.m: Ditto. + * linear-algebra/commutation_matrix.m: Ditto. + * linear-algebra/cross.m: Ditto. + * linear-algebra/duplication_matrix.m: Ditto. + * miscellaneous/bincoeff.m: Ditto. + * miscellaneous/xor.m: Ditto. + * specfun/bessel.m: Ditto. + * specfun/beta.m: Ditto. + * specfun/betai.m: Ditto. + * specfun/erfinv.m: Ditto. + * specfun/gammai.m: Ditto. + * specfun/log2.m: Ditto. + * specfun/pow2.m: Ditto. + + 1999-10-23 Ben Sapp + + * general/is_scalar.m: Texinfoize help text. + * general/is_square.m: Ditto. + * general/is_symmetric.m: Ditto. + + 1999-10-22 John W. Eaton + + * strings/split.m: If the string to be split is empty, just return + an empty string. + + 1999-10-21 John W. Eaton + + * Makefile.in (ALL_M_FILES): New macro. + (DOCSTRINGS): No longer .PHONY; depend on $(ALL_M_FILES). + + 1999-10-20 John W. Eaton + + * control/bode.m: Don't return anything if nargout == 0. + + 1999-10-20 James B. Rawlings + + * control/bode.m: Don't do axis scaling for magnitude plots. + + 1999-10-20 John W. Eaton + + * Makefile.in (DISTFILES): Add move-if-change, mkdoc, and + gethelp.cc to the list. + + 1999-10-19 John W. Eaton + + * time/asctime.m: Texinfoize help text. + * time/clock.m: Ditto. + * time/date.m: Ditto. + * miscellaneous/cputime.m: Ditto. + * miscellaneous/etime.m: Ditto. + * miscellaneous/is_leap_year.m: Ditto. + * miscellaneous/popen2.m: Ditto. + * miscellaneous/version.m: Ditto. + * miscellaneous/tic.m: Ditto. + * miscellaneous/toc.m: Just refer to tic.m. + + * Makefile.in (dist, bin-dist): Use `$(MAKE) -C dir' instead of + `cd dir; $(MAKE); cd ..'. + ($(SUBDIRS)): Likewise. + + * statistics/Makefile.in ($(SUBDIRS)): Likewise. + + * statistics/Makefile.in (bin-dist): Use `$(MAKE) -C dir' instead + of `cd dir; $(MAKE)'. + + * gethelp.cc, mkdoc: New files. + * Makefile.in: Use them to create DOCSTRINGS file from .m file + sources. + + 1999-10-14 John W. Eaton + + * linear-algebra/kron.m: Fix typo in previous change + + 1999-10-13 John W. Eaton + + * control/bode.m: Allow optional 5th arg to specify plot style. + + Wed Sep 22 22:12:03 1999 A. Scottedward Hodel + + * linear-algebra/krylov.m: Correctly handle case of V having full + rank when V has more columns than rows. + + Mon Sep 20 23:04:57 1999 John W. Eaton + + * general/linspace.m, linear-algebra/pinv.m: Delete. + + * statistics/tests/manova.m: Avoid problems if + whitespace_in_literal_matrix is set to "traditional". + * statistics/tests/t_test_regression.m: Likewise. + * statistics/tests/u_test.m: Likewise. + * statistics/tests/chisquare_test_homogeneity.m: Likewise. + * statistics/tests/anova.m: Likewise. + * statistics/tests/kruskal_wallis_test.m: Likewise. + * statistics/base/statistics.m: Likewise. + * image/saveimage.m: Likewise. + * signal/arch_fit.m: Likewise. + * signal/autoreg_matrix.m: Likewise. + * signal/triangle_lw.m: Likewise. + * strings/dec2hex.m: Likewise. + + Thu Sep 9 19:31:58 1999 John W. Eaton + + * image/saveimage.m: Initialize scale. + + Sun Sep 5 22:13:47 1999 John W. Eaton + + * general/reshape.m: Allow reshape (a, size (b)). + + Fri Sep 3 00:01:38 1999 John W. Eaton + + * specfun/erfinv.m: Improve stopping criterion. + Add iteration count as second return value. + + Mon Aug 30 12:07:00 1999 John W. Eaton + + * statistics/base/mean.m: Use .', not ' to reorient row vectors. + + Tue Aug 17 11:11:27 1999 John W. Eaton + + * miscellaneous/pack.m: New function. + + Mon Aug 16 07:46:57 1999 John W. Eaton + + * plot/figure.m: Always return figure number. With no args, + figure now creates a new figure window and returns its number. + Accept figure (property, value) syntax, but do nothing. + + Thu Aug 12 09:28:01 PDT 1999 Tom Poage + + * general/shift.m: Avoid printing temporary value for backward shift. + + Mon Aug 2 16:39:04 1999 John W. Eaton + + * plot/bar.m: Compute bar widths correctly when x-values are not + evenly spaced. + + Mon Jul 12 22:48:34 1999 John W. Eaton + + * linear-algebra/cond.m: Avoid returning NaN for matrices that + contain only zeros. + + Sun Jun 20 22:24:27 1999 Eduardo Gallestey + + * linear-algebra/kron.m: Create result matrix and insert blocks + instead of appending them. + + Sat Jun 19 01:52:18 1999 John W. Eaton + + * control/bodquist.m, control/buildssic.m, control/is_digital.m, + control/stepimp.m, control/sysmin.m, control/syssetsignals.m: + Update from A. S. Hodel. + + Fri Jun 18 12:19:22 1999 John W. Eaton + + * polynomial/polyfit.m: Correct previous change. + + Wed Apr 7 13:57:26 1999 John W. Eaton + + * linear-algebra/qrhouse.m, linear-algebra/krygetq.m: Delete. + + Wed Apr 7 13:22:43 1999 A. S. Hodel + + * control/is_controllable.m, control/zgscal.m: Accomodate new + version of krylov and krylovb. + + * control/outlist.m, control/sysout.m: Fix typos. + + * control/sysdimensions.m: Add option for total number of states. + + * linear-algebra/krylov.m: Improve robustness by row-pivoting. + * linear-algebra/krylovb.m: Just call krylov with appropriate + arguments. + + Tue Mar 30 00:43:09 1999 John W. Eaton + + * strings/index.m: Fail with meaningful error message if either + arg is a string array. + + Wed Mar 24 20:34:48 1999 John W. Eaton + + * linear-algebra/norm.m: Do the right thing for 1- and + infinity-norms of complex matrices. From Sven Khatri + . + + Tue Mar 16 13:36:36 1999 A. Scottedward Hodel" + + * linear-algebra/qrhouse.m: Handle default args correctly. + + Thu Mar 11 12:52:34 1999 John W. Eaton + + * strings/split.m: Avoid problems when splitting strings that have + \ in them. + + Thu Mar 11 12:36:13 1999 Massimo Lorenzin + + * image/colormap.m: Do better arg checking, handle string args + that name the colormap function to call (e.g., colormap ("ocean")). + + Mon Mar 8 22:23:24 1999 Rolf Fabian + + * polynomial/polyfit.m: Use .' transpose operator, not '. + * linear-algebra/dot.m: Likewise. + * linear-algebra/cross.m: Likewise. + * general/rot90.m: Likewise. + + Sat Mar 6 01:45:00 1999 A Scott Hodel + + * linear-algebra/qrhouse.m: Permute columns at each iteration so + that the leading column is not all zeros. + + Fri Mar 5 00:37:47 1999 John W. Eaton + + * general/shift.m: Fix potential problems with + whitespace_in_literal_matrix. + * signal/arch_rnd.m: Ditto. + * signal/autocov.m: Ditto. + * signal/diffpara.m: Ditto. + * signal/hurst.m: Ditto. + * signal/periodogram.m: Ditto. + * signal/spectral_adf.m: Ditto. + * signal/spectral_xdf.m: Ditto. + * signal/spencer.m: Ditto. + * signal/synthesis.m: Ditto. + * statistics/distributions/wiener_rnd.m: Ditto. + * statistics/models/logistic_regression_likelihood.m: Ditto. + * statistics/models/logistic_regression.m: Ditto. + * statistics/models/logistic_regression_derivatives.m: Ditto. + * statistics/tests/run_test.m: Ditto. + * statistics/tests/chisquare_test_independence.m: Ditto. + + Wed Mar 3 02:25:00 1999 Joao Cardoso + + * plot/__plr2__.m: Fix typo. + + Tue Jan 12 10:31:15 1999 John W. Eaton + + * plot/__pltopt1__.m: Accept "k" to mean black. + + Fri Dec 11 10:43:19 1998 A Scott Hodel + + * linear-algebra/krylov.m: Force empty_list_elements_ok for this + function. + + Thu Dec 10 11:07:00 1998 A Scott Hodel + + * control/ss2sys.m: Fix typo. + + Wed Dec 9 12:42:19 1998 John W. Eaton + + * plot/subplot.m, plot/oneplot.m: Don't call clearplot. + + * control: Update from A. S. Hodel for + signal names as lists of strings instead of string arrays. + + Fri Dec 4 16:08:42 1998 John W. Eaton + + * quaternion: New directory of functions from A. S. Hodel + . + * Makefile.in (SUBDIRS): Add it to the list. + * quaternion/Makefile.in: New file. + * configure.in (AC_OUTPUT): Add quaternion/Makefile. + + Tue Nov 24 21:41:31 1998 John W. Eaton + + * image/saveimage.m: Make it work again for black and white colormaps. + + * image/imagesc.m: Use rows (colormap), not length (colormap), + since there can be fewer rows than columns. Round values to + nearest position in colormap instead of truncating. Correct usage + message. + + Tue Nov 24 14:50:52 1998 A Scott Hodel + + * linear-algebra/krylov.m: New arg pflg. If nonzero, avoid using + zero rows of [A,v] as householder pivots; this avoids spurious + non-zero entries in returned orthogonal matrix U, but destroys the + Householder matrix structure of H. + + Fri Nov 20 12:46:46 1998 John W. Eaton + + * general/logical.m: Just copy input to output if argument is + already a logical object. + + Fri Nov 6 10:17:00 1998 John W. Eaton + + * New files from OCST, in control subdiretory: + + DEMOcontrol.m is_siso.m syschnames.m + abcddim.m is_stabilizable.m syschnamesl.m + abcddims.m is_stable.m syschtsam.m + analdemo.m jet707.m sysconnect.m + are.m lqe.m syscont.m + axis2dlim.m lqg.m syscont_disc.m + bddemo.m lqr.m sysdefioname.m + bode.m lsim.m sysdefstname.m + bode_bounds.m ltifr.m sysdimensions.m + bodquist.m lyap.m sysdisc.m + buildssic.m mb.m sysdup.m + c2d.m minfo.m sysgetsignals.m + com2str.m moddemo.m sysgettsam.m + controldemo.m nichols.m sysgettype.m + ctrb.m nyquist.m sysgroup.m + d2c.m obsv.m sysgroupn.m + damp.m ord2.m sysmult.m + dare.m outlist.m sysout.m + dcgain.m packedform.m sysprune.m + demomarsyas.m packsys.m sysreorder.m + dezero.m; parallel.m sysrepdemo.m + dgkfdemo.m place.m sysscale.m + dgram.m polyout.m syssub.m + dhinfdemo.m prompt.m sysupdate.m + dlqe.m pzmap.m tf2ss.m + dlqg.m qzval.m tf2sys.m + dlqr.m rldemo.m tf2sysl.m + dlyap.m rlocus.m tf2zp.m + dmr2d.m rotg.m tfout.m + fir2sys.m run_cmd.m; tzero.m + frdemo.m series.m tzero2.m + freqchkw.m sortcom.m ugain.m + freqresp.m ss2sys.m unpacksys.m + gram.m ss2tf.m wgt1o.m + h2norm.m ss2zp.m zgfmul.m + h2syn.m starp.m zgfslv.m + hinf_ctr.m step.m zginit.m + hinfdemo.m stepimp.m zgpbal.m + hinfnorm.m strappend.m; zgreduce.m + hinfsyn.m susball.m zgrownorm.m + hinfsyn_chk.m swap.m zgscal.m + impulse.m swapcols.m zgsgiv.m + is_abcd.m swaprows.m zgshsr.m + is_controllable.m sys2fir.m zp2ss.m + is_detectable.m sys2ss.m zp2ssg2.m + is_dgkf.m sys2tf.m zp2sys.m + is_digital.m sys2zp.m zp2tf.m + is_observable.m sysadd.m zpout.m + is_sample.m sysappend.m + + Thu Nov 5 13:28:40 1998 John W. Eaton + + * configure.in (AC_OUTPUT): Escape newlinew in macro call with \. + + * strings/deblank.m: Make it work for string arrays too. + + Wed Nov 4 21:51:13 1998 John W. Eaton + + * linear-algebra/housh.m: New file from the OCST. + * linear-algebra/krygetq.m: Ditto. + * linear-algebra/krylov.m: Ditto. + * linear-algebra/krylovb.m: Ditto. + * linear-algebra/qrhouse.m: Ditto. + * general/is_duplicate_entry.m: Ditto. + + * general/is_symmetric.m: Call is_square instead of doing that + check in line. + + Wed Oct 28 11:51:14 1998 John W. Eaton + + * general/is_square.m: + + * general/isempty.m, general/is_matrix.m: Delete. + + * general/is_symmetric: Delete special case for strings. Whether + the conversion is valid should depend on implicit_str_to_num_ok. + + * general/is_square.m: If arg is not a matrix, don't check size, + just return 0. + * general/is_symmetric: Likewise. + * general/is_vector.m: Likewise. + * general/is_scalar.m: Likewise. + + * general/length.m: Delete. + + Fri Oct 23 00:21:55 1998 John W. Eaton + + * configure.in: Add finance/Makefile, statistics/base/Makefile, + statistics/distributions/Makefile, statistics/models/Makefile, + and statistics/tests/Makefile to the list of files to create. + + * finance/Makefile.in, statistics/base/Makefile.in, + statistics/distributions/Makefile.in, statistics/models/Makefile.in, + statistics/tests/Makefile.in: New files. + * statistics/Makefile.in: Delete file lists. Now only handle + subdirectories. + * Makefile.in (SUBDIRS): Add finance. + + * Move the following files from statistics to statistics/base: + + corrcoef.m + kurtosis.m + mahalanobis.m + median.m + ols.m + skewness.m + std.m + + New files, from Kurt Hornik's octave-ci package: + + * finance (new directory): + + fv.m + fvl.m + irr.m + nper.m + npv.m + pmt.m + pv.m + pvl.m + rate.m + vol.m + + * linear-algebra/dmult.m + + * signal: + + arch_fit.m + arch_rnd.m + arch_test.m + arma_rnd.m + autocor.m + autocov.m + autoreg_matrix.m + bartlett.m + blackman.m + diffpara.m + durbinlevinson.m + fractdiff.m + hamming.m + hanning.m + hurst.m + periodogram.m + rectangle_lw.m + rectangle_sw.m + sinetone.m + sinewave.m + spectral_adf.m + spectral_xdf.m + spencer.m + stft.m + synthesis.m + triangle_lw.m + triangle_sw.m + yulewalker.m + + * statistics/base (new directory): + + center.m + cloglog.m + cor.m + cov.m + cut.m + iqr.m + kendall.m + logit.m + mean.m + meansq.m + moment.m + ppplot.m + probit.m + qqplot.m + range.m + ranks.m + run_count.m + spearman.m + statistics.m + studentize.m + table.m + values.m + var.m + + (Replaces cov.m and mean.m with new versions.) + + * statistics/distributions (new directory): + + beta_cdf.m + beta_inv.m + beta_pdf.m + beta_rnd.m + binomial_cdf.m + binomial_inv.m + binomial_pdf.m + binomial_rnd.m + cauchy_cdf.m + cauchy_inv.m + cauchy_pdf.m + cauchy_rnd.m + chisquare_cdf.m + chisquare_inv.m + chisquare_pdf.m + chisquare_rnd.m + discrete_cdf.m + discrete_inv.m + discrete_pdf.m + discrete_rnd.m + empirical_cdf.m + empirical_inv.m + empirical_pdf.m + empirical_rnd.m + exponential_cdf.m + exponential_inv.m + exponential_pdf.m + exponential_rnd.m + f_cdf.m + f_inv.m + f_pdf.m + f_rnd.m + gamma_cdf.m + gamma_inv.m + gamma_pdf.m + gamma_rnd.m + geometric_cdf.m + geometric_inv.m + geometric_pdf.m + geometric_rnd.m + hypergeometric_cdf.m + hypergeometric_inv.m + hypergeometric_pdf.m + hypergeometric_rnd.m + kolmogorov_smirnov_cdf.m + laplace_cdf.m + laplace_inv.m + laplace_pdf.m + laplace_rnd.m + logistic_cdf.m + logistic_inv.m + logistic_pdf.m + logistic_rnd.m + lognormal_cdf.m + lognormal_inv.m + lognormal_pdf.m + lognormal_rnd.m + normal_cdf.m + normal_inv.m + normal_pdf.m + normal_rnd.m + pascal_cdf.m + pascal_inv.m + pascal_pdf.m + pascal_rnd.m + poisson_cdf.m + poisson_inv.m + poisson_pdf.m + poisson_rnd.m + stdnormal_cdf.m + stdnormal_inv.m + stdnormal_pdf.m + stdnormal_rnd.m + t_cdf.m + t_inv.m + t_pdf.m + t_rnd.m + uniform_cdf.m + uniform_inv.m + uniform_pdf.m + uniform_rnd.m + weibull_cdf.m + weibull_inv.m + weibull_pdf.m + weibull_rnd.m + wiener_rnd.m + + * statistics/models (new directory): + + logistic_regression.m + logistic_regression_derivatives.m + logistic_regression_likelihood.m + + * statistics/tests (new directory): + + anova.m + bartlett_test.m + chisquare_test_homogeneity.m + chisquare_test_independence.m + cor_test.m + f_test_regression.m + hotelling_test.m + hotelling_test_2.m + kolmogorov_smirnov_test.m + kolmogorov_smirnov_test_2.m + kruskal_wallis_test.m + manova.m + mcnemar_test.m + prop_test_2.m + run_test.m + sign_test.m + t_test.m + t_test_2.m + t_test_regression.m + u_test.m + var_test.m + welch_test.m + wilcoxon_test.m + z_test.m + z_test_2.m + + Thu Oct 22 12:25:55 1998 John W. Eaton + + * time/date.m: Use %Y, not %y in format string, for Matlab 5 + compatibility and to avoid Y2K problems. + + Mon Oct 19 17:26:35 1998 John W. Eaton + + * polynomial/polyfit.m: Just use the \ operator to handle the + least-squares solution. + + Thu Sep 3 12:40:47 1998 John W. Eaton + + * strings/str2num.m: If eval returns a string, return an empty matrix. + + * strings/strrep.m: Don't convert args to numeric values. + Prevent warnings for empty string args. + From Georg Thimm . + + * strings/strcat.m: Prevent warnings for empty string args. + + Wed Sep 2 17:20:24 1998 John W. Eaton + + * miscellaneous/menu.m: Remove special case for empty string + returned from input(). Add second arg to eval() to catch errors. + + Thu Jun 18 16:32:15 1998 John W. Eaton + + * plot/__plt__.m: Don't call usleep. + + Mon May 18 11:42:36 1998 John W. Eaton + + * linear-algebra/dot.m: New function. + + * strings/lower.m, strings/upper.m: New functions, for Matlab + compatibility. + + Fri May 15 01:16:53 1998 John W. Eaton + + * plot/hist.m: Also allow just one output argument. + + Sun May 10 23:00:45 1998 John W. Eaton + + * strings/deblank.m: Make it work if the string is only blanks. + + Tue May 5 00:53:36 1998 John W. Eaton + + * plot/__plt2mv__.m: Delete calls to keyboard. + + Mon May 4 11:43:31 1998 John W. Eaton + + * plot/oneplot.m: Fix typo. + + Wed Apr 22 12:11:27 1998 John W. Eaton + + * miscellaneous/flops.m: Allow a single argument too. + + Tue Apr 21 10:18:20 1998 John W. Eaton + + * strings/str2mat.m: Also handle case when there are no empty + strings correctly. + + Mon Apr 20 22:14:15 1998 John W. Eaton + + * strings/isletter.m: New function, for Matlab compatibility. + + Fri Apr 17 10:53:39 1998 John W. Eaton + + * strings/str2mat.m: Handle string matrices too. + + Wed Apr 15 11:16:01 1998 John W. Eaton + + * audio/loadaudio.m: Accept "pcm" as another file extension for + linear encoding. + + * audio/saveaudio.m, audio/loadaudio.m, audio/playaudio.m, + audio/record.m: Open files in binary mode. + + Fri Apr 10 10:46:21 1998 John W. Eaton + + * miscellaneous/dump_prefs.m: Use string array for list of values. + Move functionality of dump_1_pref here, but use built-in function + type to extract value, and put it inside try/catch block. + * miscellaneous/dump_1_pref.m: Delete unused function. + + Wed Apr 8 13:17:58 1998 John W. Eaton + + * plot/__pltopt1.m__: New file. + * plot/__pltopt.m__: Handle opt as a string array by calling + __pltopt1__ multiple times and returning a string array with rows + corresponding to the rows of opt. + * plot/__plt2ss__.m, plot/__plt2vv__.m, plot/__plt2vm__.m, + plot/__plt2mv__.m, plot/__plt2mm__.m: Handle fmt as a string + array. + + Fri Mar 27 03:00:40 1998 John W. Eaton + + * plot/mplot.m: Fix misspellings of global variables. + Don't call clearplot. + + Tue Mar 17 17:45:25 1998 John W. Eaton + + * plot/subplot.m, plot/multiplot.m: Set gnuplot_command_replot to + "cle;rep" when going in ot multiplot mode. + * plot/oneplot.m: Reset gnuplot_command_replot to "rep" when + switching out of multiplot mode. + + Fri Feb 20 01:31:32 1998 John W. Eaton + + * plot/mplot.m, plot/subplot.m, plot/oneplot.m, plot/multiplot.m, + plot/subwindow.m: Call clearplot after setting up multiplot mode. + + Tue Feb 3 00:18:40 1998 John W. Eaton + + * special-matrix/sylvester_matrix.m: Rename from hadamard.m + + * miscellaneous/bug_report.m: Don't try to get smart with + OCTAVE_HOME. Assume octave-bug can be found in EXEC_PATH. + + * Makefile.in (install): Create separate ls-R files for + $(datadir) and $(libexecdir). + (uninstall): Remove both ls-R files. + + Sat Jan 31 01:09:32 1998 John W. Eaton + + * signal/fftshift.m: New file. + + * plot/contour.m: Fix for non-square case. + + * general/randperm.m: New file. + + Fri Jan 30 15:20:39 1998 John W. Eaton + + * specfun/betai.m: Restore file for compatibility with previous + versions. Call betainc with reordered args. + * specfun/gammai.m: Likewise, call gammainc with reordered args. + + Wed Jan 28 22:44:59 1998 John W. Eaton + + * plot/contour.m: Handle discrete contour levels. + + Tue Jan 27 04:31:22 1998 John W. Eaton + + * control/lyap.m: For compatibility with Matlab, solve + A*X + X*A' + C = 0 instead of A'*X + X*A + C = 0. + + Wed Dec 10 00:14:29 1997 John W. Eaton + + * specfun/bessel.m: New file. + + * specfun/betai.m, specfun/betainc.m, specfun/gammai.m, + specfun/gammainc.m: Delete. + + Wed Nov 19 00:19:18 1997 John W. Eaton + + * image/colormap.m: Initialize __current_color_map__ in global + statement. + * miscellaneous/toc.m: Initialize __tic_toc_timestamp__ in global + statement. + * plot/axis.m: Initialize __current_axis__ in global statement. + * plot/mplot.m, plot/multiplot.m, plot/oneplot.m, plot/subplot.m, + plot/subwindow.m: Initialize __multiplot_mode__ in global statement. + + Tue Nov 18 01:35:50 1997 John W. Eaton + + * time/tic.m: Rename _time_tic_called to __tic_toc_timestamp__. + * time/toc.m: Likewise. + + * image/colormap.m: Rename CURRENT_COLOR_MAP to __current_color_map__. + + * plot/mplot.m, plot/multiplot.m, plot/subplot.m: Don't do + anything special for automatic_replot when in multiplot mode -- + recent 3.6beta releases handle this correctly. + + * plot/figure.m: Ensure that we are not in multiplot mode before + setting the terminal type. + + * plot/mplot.m, plot/multiplot.m, plot/oneplot.m, plot/subplot.m, + plot/subwindow.m: Use leading and trailing underscores for + `private' globals. + + * plot/oneplot.m: Don't do anything if gnuplot_has_multiplot is false. + + Fri Nov 14 10:53:11 1997 John W. Eaton + + * plot/__pltopt__.m: Use sprintf instead of strcat when adding TITLE. + + Fri Oct 10 11:18:10 1997 John W. Eaton + + * specfun/gammai.m: Avoid problems with whitespace when + constructing matrices. + + * polynomial/polyfit.m: Compute yf correctly. From Seung Lee + . Also return yf in the same orientation as the + original y vector. + + Fri Sep 19 17:04:40 1997 John W. Eaton + + * linear-algebra/cross.m: Use direct formula instead of calling + det three times in a loop. If both args are column (row) vectors, + return a column (row) vector. If they don't match, pay attention + to the value of prefer_column_vectors. + + Thu Aug 28 15:31:20 1997 Rolf Fabian + + * polynomial/polyvalm.m: Don't assume orthogonal eigenvectors for + nonsymmetric matrices. + + * general/tril.m: Fix usage message. + + * polynomial/polyvalm.m: Fix error messages. + * polynomial/polyderiv.m: Likewise. + * polynomial/polyval.m: Likewise. + + Wed Aug 13 14:14:16 1997 John W. Eaton + + * strings/blanks.m: Allow blanks(0) to return empty string. + Allow negative arguments if treat_neg_dim_as_zero is true. + + Wed Jun 25 21:26:24 1997 John W. Eaton + + * plot/mesh.m: Set noparametric plot mode after plotting. + + Wed Jun 25 21:06:10 1997 Rick Niles + + * plot/__pltopt__.m: Handle key/legend names. + Correctly set colors, line styles, and point styles. + + Wed Jun 25 13:34:06 1997 John W. Eaton + + * polynomial/polyfit.m: Return fit y values as second output. + Don't use QR factorization to solve least squares problem. + + Wed Jun 18 10:24:00 1997 John W. Eaton + + * control/dlqr.m: Use ao, not a, to compute k. + + Tue Jun 3 12:16:00 1997 John W. Eaton + + * miscellaneous/path.m: New file. + + Wed May 21 11:45:31 1997 John W. Eaton + + * miscellaneous/bug_report.m: Pass file id to dump_prefs, not file + name. + + Mon May 12 02:04:01 1997 John W. Eaton + + * specfun/erfinv.m: Add missing semicolon. + + Wed Apr 2 22:04:03 1997 John W. Eaton + + * miscellaneous/xor.m: Make type of return value logical. + + Fri Mar 28 16:19:53 1997 John W. Eaton + + * miscellaneous/dump_prefs.m: Delete call to dump_1_pref for + warn_comma_in_global_decl. + + Tue Mar 25 22:00:49 1997 John W. Eaton + + * miscellaneous/bug_report.m: Use __OCTAVE_HOME__ to find + octave-bug script. + + Mon Mar 24 16:49:47 1997 John W. Eaton + + * miscellaneous/dump_prefs.m: Delete call to dump_1_pref for + prefer_zero_one_indexing. + + * general/logical.m: New file. + + Sat Mar 15 15:07:30 1997 John W. Eaton + + * general/nextpow2.m: Correctly handle new meaning of is_scalar() + and is_vector(). + + Thu Mar 13 16:36:35 1997 Kurt Hornik + + * specfun/erfinv.m: Scale update by sqrt (pi) / 2. + Use tolerance of 2 * eps. + + Wed Mar 12 16:57:45 1997 John W. Eaton + + * Makefile.in (install-strip): New target. + * audio/Makefile.in: Ditto. + * control/Makefile.in: Ditto. + * elfun/Makefile.in: Ditto. + * general/Makefile.in: Ditto. + * image/Makefile.in: Ditto. + * io/Makefile.in: Ditto. + * linear-algebra/Makefile.in: Ditto. + * miscellaneous/Makefile.in: Ditto. + * plot/Makefile.in: Ditto. + * polynomial/Makefile.in: Ditto. + * set/Makefile.in: Ditto. + * signal/Makefile.in: Ditto. + * specfun/Makefile.in: Ditto. + * special-matrix/Makefile.in: Ditto. + * startup/Makefile.in: Ditto. + * statistics/Makefile.in: Ditto. + * strings/Makefile.in: Ditto. + + Tue Mar 11 10:14:26 1997 John W. Eaton + + * elfun/coth.m: Write as cosh(x) ./ sinh(x) instead of 1 ./ tanh(x). + + Fri Mar 7 23:06:48 1997 John W. Eaton + + * statistics/corrcoef.m: Make it actually work. + + Thu Mar 6 12:36:30 1997 John W. Eaton + + * statistics/corrcoef.m: Don't fail if single argument is a matrix. + + Sat Mar 1 15:23:14 1997 John W. Eaton + + * Version 2.0.5 released. + + Wed Feb 26 01:48:28 1997 John W. Eaton + + * Makefile.in (maintainer-clean): Also remove configure. + + * signal/fftconv.m: Check inputs with is_vector(), not is_matrix(). + + * general/is_matrix.m: Return zero for empty matrices. + + Tue Feb 25 15:16:04 1997 John W. Eaton + + * linear-algebra/vech.m: Size result just once. + + Sun Feb 23 00:15:57 1997 John W. Eaton + + * general/is_square.m: Handle empty matrices correctly. + * general/is_symmetric.m: Handle empty matrices and strings. + + Sat Feb 22 01:06:22 1997 John W. Eaton + + * polynomial/conv.m: Check inputs with is_vector(), not is_matrix(). + * polynomial/deconv.m: Likewise. + * polynomial/polyderiv.m: Likewise. + * polynomial/polyinteg.m: Likewise. + * polynomial/polyreduce.m: Likewise. + * polynomial/polyval.m: Likewise. + * polynomial/polyvalm.m: Likewise. + * general/postpad.m: Likewise. + * general/prepad.m: Likewise. + + * polynomial/compan.m: Check input with is_vector(), not + is_matrix(). Handle scalar case. + + Fri Feb 21 13:36:58 1997 John W. Eaton + + * plot/contour.m: Order data so that it is consistent with + meshgrid and mesh. + + * plot/meshdom.m, plot/meshgrid.m: Change help message. + * plot/sombrero.m: Use meshgrid, not meshdom. + + Thu Feb 20 02:58:05 1997 John W. Eaton + + * Version 2.0.4 released. + + Wed Feb 19 10:30:14 1997 John W. Eaton + + * miscellaneous/paren.m: New file. + + Tue Feb 18 09:22:04 1997 John W. Eaton + + * Version 2.0.3 released. + + Thu Feb 13 19:06:42 1997 John W. Eaton + + * image/saveimage.m: Only clip image data that is actually out of + range. + + Sun Feb 9 19:52:08 1997 John W. Eaton + + * general/is_matrix.m: Scalars, vectors, and empty matrices may + also be considered to be matrices. + + * general/is_vector.m: Scalars may also be considered to be vectors. + + * general/isempty.m: Use size(), not rows() and columns(). + + * plot/contour.m: Convert set to gset. + Set view to 0, 0, 1, 1, not 0, 0, 1.9, 1. + + Fri Feb 7 12:55:55 1997 John W. Eaton + + * specfun/erfinv.m: Fix typo in last change. + + Fri Jan 31 09:30:16 1997 John W. Eaton + + * image/loadimage.m: Make it possible to load files with image + data named X or img. + + * image/default.img: Change name of image from X to img to match + what saveimage does now. + + * image/loadimage.m: Rename X to be img, to match what saveimage + does now. + + Mon Jan 27 13:48:31 1997 John W. Eaton + + * Version 2.0.2 released. + + * plot/__plt__.m: Use usleep() instead of replot to try to avoid + weird missing-lines bug without creating extra plots unecessarily. + + Sat Jan 25 22:37:07 1997 John W. Eaton + + * Makefile.in, audio/Makefile.in, control/Makefile.in, + elfun/Makefile.in, general/Makefile.in, image/Makefile.in, + io/Makefile.in, linear-algebra/Makefile.in, + miscellaneous/Makefile.in, plot/Makefile.in, + polynomial/Makefile.in, set/Makefile.in, signal/Makefile.in, + specfun/Makefile.in, special-matrix/Makefile.in, + startup/Makefile.in, statistics/Makefile.in, strings/Makefile.in, + time/Makefile.in (bin-dist): New target. + + Wed Jan 22 11:28:30 1997 John W. Eaton + + * specfun/erfinv.m: Avoid A([]) = X, X != [] error. + + Tue Jan 21 11:16:40 1997 John W. Eaton + + * miscellaneous/xor.m: Make it work. + + Mon Jan 20 12:28:34 1997 John W. Eaton + + * plot/sombrero.m: Doc fix. + + Tue Jan 7 00:16:52 1997 John W. Eaton + + * Version 2.0.1 released. + + Thu Dec 19 22:16:46 1996 John W. Eaton + + * elfun/lcm.m: Replace missing if statement. + + * elfun/gcd.m: Report error if no input args. + * elfun/lcm.m: Likewise. + + Mon Dec 16 15:23:04 1996 John W. Eaton + + * Makefile.in (install): Use ls -LR to create ls-R database. + Also list contents of $libexecdir/octave in ls-R database. + + Tue Dec 10 01:43:07 1996 John W. Eaton + + * Version 2.0 released. + + Fri Dec 6 15:23:46 1996 John W. Eaton + + * Version 1.94. + + Sun Dec 1 20:55:34 1996 John W. Eaton + + * strings/str2num.m: New file. + + Wed Nov 20 01:00:24 1996 John W. Eaton + + * Version 1.93. + + Tue Nov 19 15:13:35 1996 John W. Eaton + + * linear-algebra/commutation_matrix.m, linear-algebra/cross.m, + linear-algebra/duplication_matrix.m, linear-algebra/vec.m, + linear-algebra/vech.m: New files from Kurt Hornik. + + * general/nextpow2.m, general/shift.m, general/diff.m, + general/common_size.m: New files from Kurt Hornik. + + * miscellaneous/bincoeff.m, miscellaneous/xor.m: + New files from Kurt Hornik. + + * signal/detrend.m: New file from Kurt Hornik. + + * specfun/betai.m, specfun/gammai.m, specfun/erfinv.m, + specfun/pow2.m, specfun/log2.m: + New files and updates from Kurt Hornik. + + Fri Nov 15 18:13:00 1996 John W. Eaton + + * plot/__plt__.m: Add explicit replot after last command is + issued, to force all lines to be displayed. Hmm. + + Thu Nov 14 00:06:34 1996 John W. Eaton + + * plot/axis.m, plot/bottom_title.m, plot/contour.m, + plot/figure.m, plot/grid.m, plot/loglog.m, plot/mesh.m, + plot/mplot.m, plot/multiplot.m, plot/oneplot.m, plot/plot.m, + plot/plot_border.m, plot/polar.m, plot/semilogx.m, + plot/semilogy.m, plot/subplot.m, plot/subwindow.m, plot/title.m, + plot/top_title.m, plot/xlabel.m, plot/ylabel.m, plot/zlabel.m: + Uset gset, not set. + + * Version 1.92. + + Thu Nov 7 12:43:12 1996 John W. Eaton + + * image/saveimage.m: When writing PostScript, name Octave as the + almighty Creator. Use single call to fprintf instead of looping. + + * image/Makefile.in: Delete references to octtopnm. + + * general/logspace.m: Doc fix. + + * Version 1.91. + + Sat Nov 2 21:06:29 1996 John W. Eaton + + * image/image.m: Use tmpnam() instead of home-brew scheme. + + * audio/record.m, audio/playaudio.m: Use tmpnam() instead of + octave_tmp_file_name(). Use unwind_protect to ensure tmp file is + deleted. + * miscellaneous/bug_report.m: Likewise. Also use unlink() instead + of a system() command to delete the tmp file. + + Wed Oct 30 17:19:45 1996 John W. Eaton + + * Version 1.90. + + * Makefile.in (DISTFILES): Add ChangeLog. + + Thu Oct 10 17:31:01 1996 John W. Eaton + + * plot/subplot.m, plot/multiplot.m, plot/mplot.m: + Don't check for string value of automatic_replot. + + * image/ind2ind.m, image/ind2rgb.m, image/ind2gray.m: + Temporarily set do_fortran_indexing to 1, not "true". + + * miscellaneous/menu.m: Temporarily set page_screen_output to 0, + not "false". + + * linear-algebra/cond.m: Don't compare propagate_empty_matrices to + "false". + + Tue Aug 20 18:27:36 1996 Kurt Hornik + + * strings/substr.m: Allow negative OFFSET. LEN is now optional. + + Mon Jul 15 16:15:22 1996 John W. Eaton + + * miscellaneous/bug_report.m: Don't redirect output to /dev/tty in + system command. + + Fri Jul 12 12:24:29 1996 John W. Eaton + + * __plr1__.m: Renamed from polar_int_1.m. + * __plr2__.m: Renamed from polar_int_2.m. + * __plr__.m: Renamed from polar_int.m. + * __plt1__.m: Renamed from plot_int_1.m. + * __plt2__.m: Renamed from plot_int_2.m. + * __plt2mm__.m: Renamed from plot_2_m_m_.m. + * __plt2mv__.m: Renamed from plot_2_m_v_.m. + * __plt2ss__.m: Renamed from plot_2_s_s_.m. + * __plt2vm__.m: Renamed from plot_2_v_m_.m. + * __plt2vv__.m: Renamed from plot_2_v_v_.m. + * __plt__.m: Renamed from plot_int.m. + * __pltopt__.m: Renamed from plot_opt.m. + Change all callers. + + Thu Jul 11 17:24:29 1996 John W. Eaton + + * All .m files: Add regular Author:, Created:, and Adapted-By: + comments like those found in Emacs lisp files. + + Mon Jun 24 04:16:41 1996 John W. Eaton + + * All .m files: Change comment style. + + Fri Jun 14 01:42:21 1996 John W. Eaton + + * bottom_title.m, mplot.m, multiplot.m, oneplot.m, plot_border.m, + subplot.m, subwindow.m, top_title.m: + Print error message if gnuplot_has_multiplot is not true. + + Thu Jun 6 00:18:54 1996 John W. Eaton + + * plot/figure.m: New function. + + Wed Jun 5 18:19:00 1996 John W. Eaton + + * strings/strrep.m: New function. + + Thu May 23 15:04:22 1996 John W. Eaton + + * strings/bin2dec.m, strings/blanks.m, strings/deblank.m, + strings/dec2bin.m, strings/dec2hex.m, strings/findstr.m, + strings/hex2dec.m, strings/index.m, strings/rindex.m, + strings/split.m, strings/str2mat.m, strings/substr.m: + New functions from Kurt Hornik, heavily modified by jwe. + + * general/reshape.m: Allow strings to be reshaped too. + + * strings/strcmp.m: No longer need to set implicit_str_to_num_ok. + Always return a scalar. + + Wed May 22 19:52:11 1996 John W. Eaton + + * polynomial/polyfit.m: Make orientation of result compatible with + Matlab. + + Sat May 18 17:32:15 1996 John W. Eaton + + * polynomial/polyfit.m: Add missing close paren. + + Thu May 16 10:23:11 1996 John W. Eaton + + * plot/plot_opt.m: Set compatibility arg in call to sscanf. + + * io/scanf.m: Delete. + + Mon May 13 09:37:38 1996 John W. Eaton + + * statistics/median.m: Fix typo in usage message. + + Wed Apr 24 02:45:52 1996 John W. Eaton + + * miscellaneous/popen2.m: New file. + + Wed Apr 17 18:34:04 1996 John W. Eaton + + * configure.in (AC_OUTPUT): Add io/Makefile. + + * io: New directory. + * Makefile.in (SUBDIRS): Add it to the list. + + * miscellaneous/flops.m: New file. + + Fri Mar 22 04:40:48 1996 John W. Eaton + + * miscellaneous/cputime.m: Return three arguments instead of a + vector, for compatibility with previous versions and with Matlab + (which only returns one scalar value). + + Wed Mar 20 05:09:48 1996 Kurt Hornik + + * general/triu.m: Compute lower bound on loop index correctly. + * general/tril.m: Likewise, for upper bound. + + Tue Feb 6 09:29:43 1996 John W. Eaton + + * image/saveimage.m: For color images, make sure indices into + temporary colormap and result matrix have proper orientation. + Set grey flag correctly. + + Tue Jan 9 00:12:14 1996 John W. Eaton + + * statistics/std.m: Use better formula (from Jim Van Zandt + jrv@vanzandt.mv.com). + + Sun Jan 7 20:12:14 1996 John W. Eaton + + * meshgrid.m: New file (from Jim Van Zandt jrv@vanzandt.mv.com). + * mesh.m: Transpose Z if only one arg. + Handle case of all three args being matrices (from Jim Van Zandt + jrv@vanzandt.mv.com). + * meshdom.m: Undo previous change. + + Wed Dec 20 13:48:12 1995 John W. Eaton + + * configure.in (AC_OUTPUT): Add audio/Makefile + + Thu Nov 16 13:07:07 1995 John Eaton + + * audio: New directory of files from Kurt Hornik and Andreas + Weingessel. + * audio/Makefile.in: New file. + * Makefile.in (SUBDIRS): Add audio to the list. + + Mon Nov 6 07:29:35 1995 John Eaton + + * polynomial/polyfit.m: Use `economy-stle' QR factorization. + + Fri Nov 3 00:38:46 1995 John Eaton + + * plot/mesh.m: Require, length (y) == rows (z) and length (x) == + columns (z), not the other way around. + * plot/meshdom.m: Don't reverse order of elements in y. + + Thu Nov 2 23:56:53 1995 John Eaton + + * plot/axis.m: Return current axis if nargin == 0. + + Tue Oct 31 04:11:28 1995 John Eaton + + * polynomial/roots.m: Updates from Kurt Hornik. + + * polynomial/polyder.m: New file. + + * polynomial/polyderiv.m: Give return value and arg different names. + + Mon Oct 30 23:27:02 1995 John Eaton + + * specfun/betainc.m: New file. + * specfun/gammainc.m: New file. + + Wed Oct 18 23:45:52 1995 John Eaton + + * general/strerror.m: New file. + * general/perror.m: Implement using strerror(). + + Thu Oct 5 03:21:36 1995 John Eaton + + * plot/bottom_title.m plot/mplot.m plot/multiplot.m plot/oneplot.m + plot/plot_border.m plot/subplot.m plot/subwindow.m + plot/top_title.m plot/zlabel.m: New files, from Vinayak Dutt. + + * image/saveimage.m: Round img values first. + + Tue Oct 3 03:55:18 1995 John Eaton + + * control/abcddim.m control/are.m general/tril.m general/triu.m + image/saveimage.m linear-algebra/kron.m linear-algebra/norm.m + linear-algebra/null.m miscellaneous/etime.m plot/contour.m + plot/mesh.m plot/plot_int.m plot/polar_int.m + special-matrix/hankel.m special-matrix/toeplitz.m + tuwien/strfun/split.m: Add missing semicolons. + + * plot/polar_int.m: Use .', not ' to make vectors conform. + + * image/Makefile.in: Don't build or install octtoppm. + + * image/saveimage.m: Rewrite to avoid using octoppm and pbm + routines so that people who don't have the pbm stuff installed + can still use this function. + + Mon Oct 2 05:10:44 1995 John Eaton + + * image/saveimage.m: Better error checking, clean up a bit. + + Tue Sep 26 00:04:56 1995 John Eaton + + * plot/plot_opt.m: Change more to more_opts as a temporary fix to + avoid conflict with new built-in text-style function more. + + * linear-algebra/norm.m: Also allow 2nd arg == "inf". + + * startup/Makefile.in (install): Also install octaverc in + $localfcnfiledir/startup/octavrc. + + Wed Sep 20 00:01:30 1995 John Eaton + + * mkinstalldirs: New file. + * Makefile.in (DISTFILES): Add it to the list. + + * Makefile.in (DISTFILES): Distribute configure.in and configure. + + Thu Sep 14 03:56:19 1995 John Eaton + + * special-matrix/hankel.m: Compatibility fix. Complain if + r(1) != c(nr), not if r(1) != c(1). + + * signal/filter.m: Doc fix. + + Wed Sep 13 03:19:05 1995 John Eaton + + * miscellaneous/cputime.m: Use new resource structure names (no + ru_ or tv_ prefixes). + + Tue Sep 12 02:20:44 1995 John Eaton + + * time/ctime.m: Fix doc string and usage message. + + Mon Sep 11 18:43:46 1995 John Eaton + + * time/clock.m: Use new time structure names (no tm_ prefix). + + Thu Aug 24 20:53:08 1995 John Eaton + + * control/c2d.m: Make function work for any value of + whitespace_in_literal_matrix. + * control/dare.m: Likewise. + * control/tzero.m: Likewise. + * elfun/gcd.m: Likewise. + * elfun/lcm.m: Likewise. + * general/postpad.m: Likewise. + * general/prepad.m: Likewise. + * linear-algebra/kron.m: Likewise. + * miscellaneous/etime.m: Likewise. + * polynomial/conv.m: Likewise. + * polynomial/deconv.m: Likewise. + * polynomial/poly.m: Likewise. + * polynomial/roots.m: Likewise. + * signal/filter.m: Likewise. + * signal/freqz.m: Likewise. + * signal/fftfilt.m: Likewise. + + Tue Jun 6 22:34:04 1995 John Eaton + + * miscellaneous/is_leap_year.m: Make work for vector args. + + Tue May 2 16:18:33 1995 John Eaton + + * plot/polar_int_2.m: Add missing semicolons. + Set theta = theta', not rho'. + + Sun Apr 30 11:19:11 1995 John Eaton + + * polynomial/roots.m: Make it work for any value of + whitespace_in_literal_matrix. + + Mon Apr 10 09:37:17 1995 John Eaton + + * configure.in: New file. + + Thu Mar 30 13:29:35 1995 John Eaton + + * control/lyap.m: Add missing semicolon. + + * miscellaneous/cputime.m: New function file. + + Wed Mar 29 22:50:49 1995 John Eaton + + * time: New directory. + * time/asctime.m, time/clock.m, time/ctime.m, time/date.m: + New function files. + * time/Makefile.in: New file. + * Makefile.in (SUBDIRS): Add time. + + Thu Mar 23 15:42:26 1995 John Eaton + + * polynomial/polyreduce.m: Make sure initial index is not empty. + + Tue Mar 14 23:38:24 1995 John Eaton + + * plot/plot_int_1.m: Transpose data with .', not '. + + Fri Mar 10 10:40:13 1995 John Eaton + + * Makefile.in (install uninstall clean mostlyclean distclean + realclean): Use SUBDIR_FOR_COMMAND. Combine actions. + + Sun Feb 26 22:18:22 1995 John Eaton + + * Makefile.in (install): Create ls-R database file. + (uninstall): Delete it. + + Fri Feb 24 10:36:01 1995 John Eaton + + * image/saveimage.m: Fix typo. + + See ChangeLog.1 in the top level directory for earlier changes. diff -cNr octave-3.4.0/etc/OLD-ChangeLogs/src-ChangeLog octave-3.4.1/etc/OLD-ChangeLogs/src-ChangeLog *** octave-3.4.0/etc/OLD-ChangeLogs/src-ChangeLog 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/OLD-ChangeLogs/src-ChangeLog 2011-06-15 11:13:48.000000000 -0400 *************** *** 0 **** --- 1,38717 ---- + 2011-04-13 Rik + + * help.cc: Add spaces after commas in @seealso blocks. + + 2011-04-12 Rik + + * load-path.cc (restoredefaultpath): Correct use of it's -> its in + documentation. + + 2011-04-10 John Eaton + + * graphics.cc (Fishandle) Accept vector of handles (bug #33025). + + 2011-04-08 Rik + + * DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/eig.cc, + DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/schur.cc, + DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/svd.cc, data.cc: Improve + docstrings. + + 2011-04-06 Rik + + * DLD-FUNCTIONS/dmperm.cc, data.cc: Clean up operator and function + indices. + + 2011-04-04 Rik + + * DLD-FUNCTIONS/nproc.cc: Spellcheck documentation for 3.4.1 release. + + 2011-04-04 Rik + + * DLD-FUNCTIONS/colamd.cc, data.cc, file-io.cc: Grammarcheck files + for 3.4.1 release. + + 2011-04-03 Rik + + * input.cc (add_input_event_hook, remove_input_event_hook): Improve + docstring. + * utils.cc (isvarname): Add seealso link to iskeyword(). + * variables.cc (missing_function_hook): Improve docstring. + + 2011-04-03 Rik + + * DLD-FUNCTIONS/dot.cc (blkmm): Improve docstring. + + 2011-04-03 Rik + + * data.cc (diag): Add documentation for 3-input form of diag. Add new + tests. + + 2011-04-03 Rik + + * data.cc (diag): Reverse previous changeset. Return 3-input form + of diag(). + + 2011-04-01 Rik + + * data.cc (diag): Remove archaic 3-input argument form of function. + Add all calling forms of function to docstring. + + 2011-04-01 Rik + + * DLD-FUNCTIONS/filter.cc: Fix orientation of initial conditions vector + (bug #32741). Revamp test vectors. + + 2011-04-01 Rik + + * DLD-FUNCTIONS/__fltk_uigetfile__.cc, DLD-FUNCTIONS/__init_fltk__.cc: + Correct typo in #include path (bug #32972). + + 2011-03-31 Rik + + * DLD-FUNCTIONS/onCleanup.cc: Remove non-existent @seealso link in + docstring. + + 2011-03-31 Rik + + * DLD-FUNCTIONS/quadcc.cc: Add reference to original paper in docstring. + + 2011-03-30 Jordi Gutiérrez Hermoso + + * file-io.cc: Document the "all" parameter to fclose. + + 2011-03-29 Ben Abbott + + * graphics.cc: Prevent ticks from being cropped by round-off errors + when limmode == auto (bug #32701). + + 2011-03-28 Rik + + * DLD-FUNCTIONS/inv.cc (inv, inverse), DLD-FUNCTIONS/tril.cc (tril), + data.cc (cumsum, szie), file-io.cc (fgets), ov-typeinfo.cc (typeinfo), + ov-usr-fcn.cc (nargout), utils.cc (make_absolute_filename), + variables.cc (who): Improve docstrings + + 2011-03-25 John W. Eaton + + * file-io.cc (Fmkstemp): Use gnulib::mkstemp. + * DLD-FUNCTIONS/__init_fltk__.cc (f): Use gnulib::floor. + + 2011-03-18 Rik + + * dot.cc: Improve seealso cross references in docstring. + + 2011-03-18 Rik + + * help.cc (get_help_text, get_help_text_from_file): Improve docstrings. + + 2011-03-17 John W. Eaton + + * ov-float.cc (octave_float_scalar::do_index_op): Widen to float + matrix, not double. + + 2011-03-17 Rik + + * syscalls.cc (gethostname): Redo documentation string. + + 2011-03-17 Iain Murray + + * DLD-FUNCTIONS/nprocs.cc: Delete file. + * DLD-FUNCTIONS/nproc.cc: New file. New function nproc provided by + gnulib. + * DLD-FUNCTIONS/module-files: Add nproc.cc. + + 2011-03-16 Iain Murray + + * DLD-FUNCTIONS/nprocs.cc: New file. + * DLD-FUNCTIONS/module-files: Add nprocs.cc. + Expose nprocs and nprocs_conf from gnulib. + + 2011-03-15 Marco Caliari + + * graphics.cc: Simplify calculation of number of tick labels. Fixes + bug #32692. + + 2011-03-13 Konstantinos Poulios + + * DLD-FUNCTIONS/__init_fltk__.cc (plot_window::plot_window): + Revert changes from 2011-02-26. + + 2011-03-10 Konstantinos Poulios + + * graphics.h.in: Add PERSISTENT mode to listener_mode. + (base_property::delete_listener): Take into account persistent + mode of a listener. + * graphics.cc (addlistener, dellistener): Accept a new optional + argument for persistent listeners. + + 2011-03-07 Konstantinos Poulios + + Bug #32482. + + * graphics.h.in (axes::properties::update_yaxislocation, + axes::properties::update_yaxislocation): + Hook update_ylabel_position and update_xlabel_position + respectively. + + 2011-03-06 Konstantinos Poulios + + * graphics.cc (axes::properties::update_xlabel_position, + axes::properties::update_ylabel_position, + axes::properties::update_zlabel_position, + axes::properties::update_title_position): + Determine position also for empty axes labels/titles in order + to improve the tightinset calculation. + (axes::properties::get_extent): Take position of empty strings + into account for the calculation of axes extents. + + 2011-03-03 Konstantinos Poulios + + * graphics.h.in (axes::properties::get_extent): Add new optional + argument for ignoring the length of text objects. + * graphics.cc (axes::properties::get_extent): Add the possibility + of ignoring the length of text objects. + (axes::properties::calc_tightbox): Take only text height into + account for the calculation of the tight box. + + 2011-02-26 Konstantinos Poulios + + * DLD-FUNCTIONS/__init_fltk__.cc (plot_window::plot_window): + Move canvas allocation after the configuration of the menubar. + (plot_window::show_menubar, plot_window::hide_menubar): + Simplify source code. + + 2011-02-26 Rik + + * DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/cellfun.cc, + DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/matrix_type.cc, + DLD-FUNCTIONS/strfind.cc, DLD-FUNCTIONS/sub2ind.cc, bitfcns.cc, + data.cc, error.cc, file-io.cc, graphics.cc, help.cc, input.cc, + load-path.cc, load-save.cc, oct-parse.yy, ov-base.cc, ov-cell.cc, + ov-class.cc, ov-fcn-handle.cc, ov-fcn-inline.cc, ov-flt-re-mat.cc, + ov-struct.cc, ov-usr-fcn.cc, pr-output.cc, pt-mat.cc, sparse.cc, + strfns.cc, syscalls.cc, sysdep.cc, toplev.cc, utils.cc, variables.cc: + Rewrite error strings to use variables named in documentation. + + 2011-02-23 John W. Eaton + + * mex.cc (mxArray_base::dup): Return retval. + + 2011-02-22 Konstantinos Poulios + + * graphics.h.in (class axes::properties): New hidden property + looseinset. + (axes::properties::update_looseinset): New function. + * graphics.cc (axes::properties::init): Initialize looseinset. + (axes::properties::sync_positions): Take looseinset into account + instead of default_axes_position. + (axes::properties::set_defaults): Default values for looseinset. + + 2011-02-21 Kai Habel + + * src/DLD-FUNCTIONS/__fltk_uigetfile__cc: + Use forward slash as file seperator for fltk file path processing only. + + 2011-02-21 Kai Habel + + * src/DLD-FUNCTIONS/__init_fltk__.cc(plot_window::plot_window): + Call size_range early to allow window resizing for MacOS and MinGW. + + 2011-02-21 John W. Eaton + + * DLD-FUNCTIONS/regexp.cc: Assume we have PCRE. + + 2011-02-19 Rik + + * src/DLD-FUNCTIONS/regexp.cc: Use PCRE regular expressions everywhere + now that Octave requires library for building. Remove testif PCRE + on testing blocks and adjust all documentation. + + 2011-02-18 Konstantinos Poulios + + * graphics.cc (axes::properties::sync_positions): Fix a small + bug introduced with changes from 2011-02-14. + + 2011-02-15 Konstantinos Poulios + + Bug #32319. + + * DLD-FUNCTIONS/__init_fltk__.cc: Include sysdep.h. + (class OpenGL_fltk): Replace integer print_fid member with + boolean print_mode. New class member print_cmd of type string. + (OpenGL_fltk::print): Accept command string argument instead of + file id. + (OpenGL_fltk::draw): Invoke and terminate an octave process for + the printing job. + (plot_window::print, figure_manager::print, + figure_manager::do_print): Replace file id with command string. + (fltk_graphics_toolkit::print_figure): Remove parsing of file id. + * graphics.cc (drawnow): Recognize strings beginning with "|" as + pipelines instead of filenames. + + 2011-02-14 David Bateman + + * gl-render.cc (void opengl_renderer::draw_patch ( + const patch::properties &)): Obtain the marker color directly + from the cdata rather that the facecolor, as the facecolor might + not have been set. Bug #31801. + + 2011-02-14 Konstantinos Poulios + + * graphics.cc (axes::properties::sync_positions): Calculation of + tightinset property. + + 2011-02-13 Konstantinos Poulios + + Bugs #31800, #32211. + + * gl-render.cc (opengl_renderer::draw_axes_boxes): Draw only one + y-axis line when plotyy tag is present. + (opengl_renderer::draw_text): Remove superfluous calls of set_font + and set_color. + * graphics.h.in (class text::properties): Tag color with "u" + qualifier. + (text::properties::update_color): New function. + + 2011-02-13 Konstantinos Poulios + + * graphics.h.in (axes::properties::update_boundingbox, + axes::properties::update_dataaspectratio, + axes::properties::update_dataaspectratiomode, + axes::properties::update_plotboxaspectratio, + axes::properties::update_plotboxaspectratiomode): + Replace update_transform hooks with sync_positions. + + 2011-02-13 Konstantinos Poulios + + * graphics.h.in (axes::properties::get_extent, + axes::properties::calc_tightbox): New functions prototypes. + (axes::properties::update_view): Hook sync_positions. + (axes::properties::update_outerposition, + axes::properties::update_position): Set activepositionproperty + appropriately. + (text::properties::update_string): Call update_text_extent after + request_autopos. + * graphics.cc (axes::properties::sync_positions): Enable + synchronization of position and outer position. Take label and + title extents in the calculation of outerposition into account. + Do iterative calculation of position when activepositionproperty + is set to outerposition. + (axes::properties::update_title_position): Use new function + get_extent. + (axes::properties::update_autopos): Handle new tag "sync". + (axes::properties::get_extent): New function calculating the + tight box which contains all axes labels and axes title. + (axes::properties::calc_tightbox): New function calculating axes + tight box. + (axes::properties::update_units): Don't call any hooks and listeners + for position, outerposition and tightset. + (text::properties::update_text_extent): Request axes positions + synchronization when axes labels or title extents change. + + 2011-02-11 John W. Eaton + + * load-path.cc (strip_trailing_separators): Declare K as size_t + rather than octave_idx_type. + + 2011-02-10 Carlo de Falco + + * DLD-FUNCTIONS/mgorth.cc: New file implementing modified + Gram-Schmidt orthogonalization. + + 2011-02-10 John W. Eaton + + * DLD-FUNCTIONS/regexp.cc (octregexp_list): Avoid deprecated + Array::resize function. + + 2011-02-09 Konstantinos Poulios + + * graphics.cc (axes::properties::update_xlabel_position, + axes::properties::update_ylabel_position, + axes::properties::update_zlabel_position, + axes::properties::update_title_position): Use get_transform only + when it is required. + (text::properties::request_autopos): Remove redundant temporary + settting of autopos_tag to none. + + 2011-02-08 John W. Eaton + + * pr-output.cc (INSTANTIATE_ABS): Omit inline keyword from + template instantiation. From Orion Poplawski . + + 2011-02-08 John W. Eaton + + * oct-parse.yy (parse_fcn_file): Don't warn about coercing + nested functions to subfunctions if yyparse failed. + + 2011-02-06 Konstantinos Poulios + + * graphics.h.in (class axes::properties): Tag positionmode, + rotationmode, horizontalalignmentmode, verticalalignmentmode + with "u" qualifier. New hidden property autopos_tag. + (axes::properties::request_autopos, + axes::properties::update_positionmode, + axes::properties::update_rotationmode, + axes::properties::update_horizontalalignmentmode, + axes::properties::update_verticalalignmentmode): New functions + (base_properties::update_autopos): New virtual function. + (axes::properties::update_xlabel_position, + axes::properties::update_ylabel_position, + axes::properties::update_zlabel_position, + axes::properties::update_title_position): Made public. + * graphics.cc (base_properties::update_autopos, + axes::properties::update_autopos, + text::properties::request_autopos): New functions. + (axes::properties::init, axes::properties::set_defaults, + axes::properties::set_xlabel, axes::properties::set_ylabel, + axes::properties::set_zlabel, axes::properties::set_title): + Set autopos_tag for {x,y,z}label and title. + (axes::properties::update_xlabel_position, + axes::properties::update_ylabel_position, + axes::properties::update_zlabel_position, + axes::properties::update_title_position): Run only for non-empty + strings. Set autopos_tag temporarily to none in order to prevent + race conditions. + + 2011-02-06 Konstantinos Poulios + + * graphics.cc: Untabify and improve indentation. + + 2011-02-06 Konstantinos Poulios + + * graphics.cc (updating_axes_layout): New file-scope variable. + (axes::properties::update_axes_layout): Return immediately if + updating_axes_layout is true. + + 2011-02-03 John W. Eaton + + * octave.cc: Include and for isatty. + Bug #32336. + + 2011-02-03 Konstantinos Poulios + + * gl-render.h: (opengl_renderer::draw_axes_titles): Remove prototype. + * gl-render.cc: (opengl_renderer::draw_axes_titles): Remove function. + (opengl_renderer::draw_axes_x_grid, + opengl_renderer::draw_axes_y_grid, + opengl_renderer::draw_axes_z_grid): Remove calculation of axis label + positions. + * graphics.cc: (axes::properties::update_xlabel_position, + axes::properties::update_ylabel_position + axes::properties::update_zlabel_position + axes::properties::update_title_position): New functions calculating + label and title positions. + (axes::properties::get_ticklabel_extents): New function. + * graphics.h.in: Provide functions prototypes. + * txt-eng-ft.cc (ft_render::get_extent): New function version. + * txt-eng-ft.h (ft_render::get_extent): Provide function prototype. + + 2011-02-03 Kai Habel + + * src/gl-render.cc(text_to_pixels): Use text_renderer object only + when freetype is available + + 2011-02-03 John W. Eaton + + * ov-base.cc (octave_base_value::as_mxArray): Return 0 silently. + * mex.cc (mxArray_octave_value::dup): If value can't be + converted to mxArray object, then simply create a clone of the + mxArray_octave_value container. + + 2011-02-02 Rik + + * DLD-FUNCTIONS/eigs.cc, DLD-FUNCTIONS/qr.cc: Use testif to only run + some sparse tests when necessary libraries are installed. + + 2011-02-03 Konstantinos Poulios + + * graphics.cc (axes::properties::update_axes_layout): + New function calculating axes layout. + (axes::properties::update_ticklengths): New function calculating + tick lengths and offsets. + * graphics.h.in (class axes::properties):: New private data + describing axes layout and corresponding "get" methods. Provide + declaration and call dependencies for "update_axes_layout". + Tag layer, yaxislocation, xaxislocation, tickdir, tickdirmode, + with "u" qualifier. + (axes::properties::update_layer, + axes::properties::update_yaxislocation, + axes::properties::update_xaxislocation, + axes::properties::update_ticklengths, + axes::properties::update_tickdir, + axes::properties::update_tickdirmode): New functions + * gl-render.cc: (opengl_renderer::draw_axes_planes, + opengl_renderer::draw_axes_boxes, + opengl_renderer::draw_axes_x_grid, + opengl_renderer::draw_axes_y_grid, + opengl_renderer::draw_axes_z_grid, + opengl_renderer::draw_axes_title): Simplify arguments list. + (opengl_renderer::draw_axes): Remove calculation of axes layout. + (opengl_renderer::setup_opengl_transformation): Disable antializing. + * gl-render.h: Adapt functions prototypes. + + 2011-02-01 John W. Eaton + + * gl-render.h (opengl_renderer::draw (const Matrix& hlist)): + Use get_object instead of lookup. + * DLD-FUNCTIONS/__init_fltk__.cc (Fl_Gl_Window::draw): Likewise. + * graphics.h.in (gh_manager::get_object (double)): New function. + * gl-renderer.h (opengl_renderer::draw (const graphics_handle&)): + Delete. + * gl2ps-renderer.h (glps_renderer::draw (const graphics_handle&)): + Delete. + + 2011-02-01 John W. Eaton + + * gl2ps-renderer.h: Remove virtual tag for derived virtual functions. + (opengl_renderer (const graphics_handle&)): New function. + * DLD-FUNCTIONS/__init_fltk__.cc (OpenGL_fltk::Fl_Gl_Window): + Don't use new to create temporary glps_renderer object. + + 2011-02-01 Michael Godfrey + + * gl2ps-renderer.cc (glps_renderer::draw): + Return immediately if fdopen fails. + + 2011-02-01 John W. Eaton + + * gl-render.cc: (opengl_renderer::setup_opengl_transformation, + opengl_renderer::draw_axes_planes, + opengl_renderer::draw_axes_boxes, + opengl_renderer::draw_axes_x_grid, + opengl_renderer::draw_axes_y_grid, + opengl_renderer::draw_axes_z_grid, + opengl_renderer::draw_axes_title, + opengl_renderer::draw_axes_children): + New private functions, extracted from opengl_renderer::draw_axes. + (opengl_renderer::draw_axes): Call subfunctions to do most of + the work. + * gl-render.h: Provide decls. + + 2011-01-31 John W. Eaton + + * sysdep.cc (get_P_tmpdir): New function. + * file-io.cc (FP_tmpdir): Use it. + Bug #32158. + + 2011-01-30 Rik + + * DLD-FUNCTIONS/__init_fltk__.cc (mouse_wheel_zoom, gui_mode): Rename + functions and strip "fltk_" prefix. Improve docstrings. + + 2011-01-30 John W. Eaton + + * txt-eng-ft.cc (ft_manager::ft_manager): Omit fc_init_done from + initialization list if fontconfig is missing. + + 2011-01-30 Pascal Dupuis + + * oct-parse.yy (class stdio_stream_reader): Disallow copying. + + 2011-01-30 John W. Eaton + + * graphics.cc (gnuplot_toolkit::redraw): Call __gnuplot_drawnow__, + not gnuplot_drawnow. + (gnuplot_toolkit::print_figure): Likewise. + + 2011-01-30 John W. Eaton + + * Makefile.am (OCTAVE_LIBS): Remove $(ARPACK_LDFLAGS) and + $(ARPACK_LIBS) from the list. + (DLD-FUNCTIONS/eigs.df): Don't add $(ARPACK_CPPFLAGS) to CPPFLAGS. + (DLD_FUNCTIONS_eigs_la_CPPFLAGS): Remove $(ARPACK_CPPFLAGS) from + the list. + (DLD_FUNCTIONS_eigs_la_LIBADD): Remove $(ARPACK_LDFLAGS) and + $(ARPACK_LIBS) from the list. + + 2011-01-30 John W. Eaton + + * load-save.cc (Fload): Doc fix. + + 2011-01-29 Rik + + * DLD-FUNCTIONS/__init_fltk__.cc (fltk_gui_mode, fltk_mouse_wheel_zoom): + Improve docstrings. + + * graphics.cc (available_graphics_toolkits): Fix typo in docstring. + + 2011-01-29 Rik + + * syscalls.cc (S_ISSOCK, S_ISCHR): Improve docstrings + + 2011-01-29 Rik + + * dirfns.cc (readdir, filesep, pathsep): Improve docstrings + * file-io.cc (tmpnam): Improve docstring + * input.cc (filemarker): Improve docstring + * syscalls.cc (stat, lstat): Improve docstring + + 2011-01-29 Rik + + * DLD-FUNCTIONS/getrusage.cc, toplev.cc: Improve docstring + + 2011-01-29 John W. Eaton + + * DLD-FUNCTIONS/__fltk_uigetfile__.cc (__fltk_uigetfile__): + Don't allocate Fl_File_Chooser object with new. Delete unused + variable fargs. Allocate default retval values in initial + declaration. + + 2011-01-29 John W. Eaton + + * DLD-FUNCTIONS/__init_fltk__.cc: Undefine Complex after + including FLTK headers. + * DLD-FUNCTIONS/__fltk_uigetfile__.cc: Likewise. + + 2011-01-29 John W. Eaton + + * Makefile.am (__fltk_uigetfile__): Use the same compiler flags + as for __init_fltk__. + + 2011-01-28 John W. Eaton + + * DLD-FUNCTIONS/eigs.cc (Feigs): Assume we have ARPACK. + Use "test" instead of "testif HAVE_ARPACK". + * toplev.cc (octave_config_info): Remove ARPACK_CPPFLAGS, + ARPACK_LDFLAGS, ARPACK_LIBS from the struct. + * oct-conf.h.in (OCTAVE_CONF_ARPACK_CPPFLAGS, + OCTAVE_CONF_ARPACK_LDFLAGS, OCTAVE_CONF_ARPACK_LIBS): + Delete #defines. + + 2011-01-28 Kai Habel + + * DLD-FUNCTIONS/__fltk_uigetfile__.cc: File filter value is + 1-based now. + + 2011-01-28 John W. Eaton + + * pr-output.cc (Foutput_max_field_width): Set internal variable + output_max_field_width, not output_precision. + + 2011-01-28 John W. Eaton + + * pr-output.cc (Fformat, Ffixed_point_format, Foutput_precision, + Foutput_max_field_width, Fsplit_long_rows, Fprint_empty_dimensions): + Update @seealso lists. + + 2011-01-27 Rik + + * graphics.cc: Improve reset docstring. + + 2011-01-27 Kai Habel + + * DLD-FUNCTIONS/__init_fltk__.cc (__fltk_uigetfile__): Remove here. + * DLD-FUNCTIONS/__fltk_uigetfile__.cc: New file. + * DLD-FUNCTIONS/module-files: Add __fltk_uigetfile__.cc. + Bug #32190. + + 2011-01-27 John W. Eaton + + * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Skip leading whitespace + on each line. + + 2011-01-27 John W. Eaton + + * ov-struct.cc (octave_struct::subsasgn, + octave_scalar_struct::subsasgn): Call undef_subsasgn on object + returned by octave_value::empty_conv if LHS is initially undefined. + Bug #32242. + + 2011-01-27 John W. Eaton + + * input.cc (input_event_hook): Fix incorrect use of iterator. + Reported by Pascal Dupuis . + + 2011-01-27 John W. Eaton + + * ov-class.cc (octave_class::reconstruct_exemplar): + Call constructor with do_multi_index_op instead of feval. + Verify that symbol_table::find_method did return a class + constructor for the correct type. Bug #32242. + + 2011-01-26 John W. Eaton + + * lex.ll, graphics.cc, gl-render.cc, ov-mex-fcn.h, graphics.h.in: + Delete trailing whitespace. + + 2011-01-26 John W. Eaton + + Bug #32242. + + * ov.h, ov.cc (octave_value::undef_subsasgn): New function. + * ov-class.h, ov-class.cc (octave_class::undef_subsasgn, + octave_class::subsasgn_common): New functions. + * ov-base.h, ov-base.cc (octave_base_value::subsasgn): If + undefined, call undef_subsasgn on object returned by + octave_value::empty_conv. + (octave_base_value::undef_subsasgn): New virtual function. + (octave_base_value::subsasgn): Only handle case of undefined + values here. + + 2011-01-26 Pascal Dupuis + John W. Eaton + + * graphics.h.in (scaler::scaler (const std::string&)): New constructor. + (graphics_handle::operator++, graphics_hanlde::operator--): + Implement as recommended by Effective C++. + + * graphics.h.in (class base_property, class array_property, + class children_property, class property, class graphics_xform, + class graphics_event): Explicitelly iniatialize + all data members in constructor initialisation list. + * gl-render.cc (class patch_tesselator): Likewise + * graphics.cc (class radio_values, class gh_manager), + (class callback_event, class set_event): Likewise. + + * graphics.h.in (class base_graphics_property): Disallow copying. + * graphics.cc (class function_event): Likewise. + (function_event::function_event (void)): Delete implementation. + + 2011-01-25 Rik + + * DLD-FUNCTIONS/config-module.awk: Use automake variable for + portability. + * Makefile.am (uninstall-oct): Use GNU Make features for portability + + 2011-01-25 Rik + + * DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftn.cc, + load-save.cc: Make docstrings static by removing documentation + depending on #ifdef configuration variables. + + 2011-01-25 John W. Eaton + + * Makefile.am (OCT_STAMP_FILES): New variable. + (DISTCLEANFILES): Add $(OCT_STAMP_FILES) to the list. + (all-local): Depend on $(OCT_STAMP_FILES) instead of $(OCT_FILES). + + * DLD-FUNCTIONS/config-module.awk: Create stamp files when + creating .oct file links. + + 2011-01-25 Konstantinos Poulios + + * src/graphics.cc (text::properties::update_text_extent): + Disable warning about missing freetype library. + + 2011-01-25 Konstantinos Poulios + + * src/graphics.cc (axes::properties::calc_ticks_and_lims): + Fixing wrong dimensions of minor ticks vector. + + 2011-01-25 John W. Eaton + + * oct-map.h (octave_map::octave_map (const string_vector&)): + Initialize xvals elements to 1x1 Cells. Bug #32222. + + 2011-01-24 Pascal Dupuis + + * ov-base-mat.h (class octave_base_matrix): Disallow assignment. + * ov-range.h (class octave_range): Likewise. + + 2011-01-23 John W. Eaton + + * ov-struct.cc (octave_scalar_struct::print_raw): + Avoid unnecessary conversion of map value to Cell. + + 2011-01-22 John W. Eaton + + * symtab.h (symbol_table::parent_classes): + Also add parents of parents to the list. Bug #32210. + + 2011-01-22 Jaroslav Hajek + + * ov-class.cc (octave_class::subsasgn): Find appropriate unique base + before trying any indexed assignment. Bug #32182. + + 2011-01-22 Konstantinos Poulios + + * graphics.h.in, graphics.cc (xmtick, ymtick, zmtick): + New properties holding minor ticks positions. + (axes::properties::calc_ticks_and_lims): Calculation of minor ticks + positions. + * gl-render.h, gl-render.cc + (opengl_renderer::render_grid, opengl_renderer::render_tickmarks, + opengl_renderer::render_ticktexts): New functions. + (opengl_renderer::draw_axes): Make use of new rendering functions + and minor ticks positions. + Correct axis label positioning for x axis at top and y axis at right + position. Bug #31800. + Change axis positioning policy for 3D plots, keeping x and y axis + always at bottom. + + 2011-01-22 Jaroslav Hajek + + * gl-render.cc: Use octave_refcount for refcounting. + * oct-map.h: Ditto. + * ov-base.h: Ditto. + * pt-mat.cc: Ditto. + + 2011-01-22 Pascal Dupuis + + * ov-mex-fcn.h, txt-eng-ft.cc, mex.cc: + Initialize all data members in initialization list. + + 2011-01-22 Pascal Dupuis + + * DLD-FUNCTIONS/__init_fltk__.cc (fltk_uimenu): Disallow copying. + (class plot_window): Likewise. + * c-file-ptr-stream.h (class c_file_ptr_buf): Likewise. + (class c_file_ptr_stream): Likewise. + (class c_zfile_ptr_buf): Likewise. + * gl-render.cc (class opengl_tesselator): Likewise. + (class patch_tesselator): Likewise. + * lex.ll (class flex_stream_reader): Likewise. + * mex.cc (class mex): Likewise. + * oct-procbuf.h (class octave_procbuf): Likewise. + * pt-cbinop.h (class tree_compound_binary_expression): Likewise. + * symtab.h (class scope_id_cache): Likewise. + (class symbol_table): Likewise. + * txt-eng-ft.h (class ft_manager): Likewise. + (class ft_render): Likewise. + * unwind-prot.h (class unwind_protect::elem): Likewise. + (class unwind_protect::fcn_arg_elem): Likewise. + (class unwind_protect::method_elem): Likewise. + (class unwind_protect::restore_var_elem): Likewise. + (class unwind_protect::delete_ptr_elem): Likewise. + (class unwind_protect): Likewise. + * zfstream.h (class gzfilebuf): Likewise. + + * mex.cc (class mxArray_octave_value): Disallow assignment. + (class mxArray_matlab): Likewise. + (class mxArray_number): Likewise. + (class mxArray_sparse): Likewise. + (class mxArray_struct): Likewise. + (class mxArray_cell): Likewise. + + * unwind-prot.h (unwind_protect::elem::elem): + Provide default constructor. + + 2011-01-21 Konstantinos Poulios + + * src/graphics.cc (axes::properties::set_xlabel, + axes::properties::set_ylabel, axes::properties::set_zlabel): + Setting axis label color from axis color. + + 2011-01-20 Rik + + * src/file-io.cc, src/variables.cc: Prevent doubled quotes around @table + items in Info. + + 2011-01-20 Rik + + * src/DLD-FUNCTIONS/chol.cc, src/DLD-FUNCTIONS/luinc.cc, + src/DLD-FUNCTIONS/qz.cc: Use non-breaking spaces between certain + adjectives and their linked nouns in docstrings + + 2011-01-20 Rik + + * src/DLD-FUNCTIONS/str2double.cc, src/data.cc, src/mappers.cc, + src/variables.cc: Use @nospell macro on certain words in docstring. + + 2011-01-20 John W. Eaton + + * DLD-FUNCTIONS/__delaunayn__.cc, + DLD-FUNCTIONS/__init_fltk__.cc, + DLD-FUNCTIONS/__magick_read__.cc, DLD-FUNCTIONS/cellfun.cc, + DLD-FUNCTIONS/quadcc.cc, DLD-FUNCTIONS/regexp.cc, data.cc, + gripes.cc, ls-mat5.cc, toplev.cc, variables.cc: + Style fixes for error and warning messages. + + 2011-01-20 John W. Eaton + + * Array.cc, Sparse.cc, base-lu.cc, idx-vector.cc, + lo-array-gripes.cc: Style fixes for error and warning messages. + + 2011-01-20 John W. Eaton + + * DLD-FUNCTIONS/__contourc__.cc, DLD-FUNCTIONS/__delaunayn__.cc, + DLD-FUNCTIONS/__dsearchn__.cc, DLD-FUNCTIONS/__glpk__.cc, + DLD-FUNCTIONS/__init_fltk__.cc, + DLD-FUNCTIONS/__lin_interpn__.cc, + DLD-FUNCTIONS/__magick_read__.cc, + DLD-FUNCTIONS/__pchip_deriv__.cc, DLD-FUNCTIONS/__qp__.cc, + DLD-FUNCTIONS/__voronoi__.cc, DLD-FUNCTIONS/amd.cc, + DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc, + DLD-FUNCTIONS/bsxfun.cc, DLD-FUNCTIONS/ccolamd.cc, + DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/chol.cc, + DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/colloc.cc, + DLD-FUNCTIONS/convhulln.cc, DLD-FUNCTIONS/daspk.cc, + DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dassl.cc, + DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/dlmread.cc, + DLD-FUNCTIONS/dmperm.cc, DLD-FUNCTIONS/dot.cc, + DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/eigs.cc, + DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, + DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw.cc, + DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/find.cc, + DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/givens.cc, + DLD-FUNCTIONS/hex2num.cc, DLD-FUNCTIONS/inv.cc, + DLD-FUNCTIONS/kron.cc, DLD-FUNCTIONS/lookup.cc, + DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/lu.cc, + DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/matrix_type.cc, + DLD-FUNCTIONS/max.cc, DLD-FUNCTIONS/md5sum.cc, + DLD-FUNCTIONS/onCleanup.cc, DLD-FUNCTIONS/qr.cc, + DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/quadcc.cc, + DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/rand.cc, + DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/schur.cc, + DLD-FUNCTIONS/spparms.cc, DLD-FUNCTIONS/sqrtm.cc, + DLD-FUNCTIONS/str2double.cc, DLD-FUNCTIONS/strfind.cc, + DLD-FUNCTIONS/sub2ind.cc, DLD-FUNCTIONS/svd.cc, + DLD-FUNCTIONS/syl.cc, DLD-FUNCTIONS/symbfact.cc, + DLD-FUNCTIONS/symrcm.cc, DLD-FUNCTIONS/tril.cc, + DLD-FUNCTIONS/tsearch.cc, DLD-FUNCTIONS/typecast.cc, + DLD-FUNCTIONS/urlwrite.cc, OPERATORS/op-b-sbm.cc, + OPERATORS/op-bm-sbm.cc, OPERATORS/op-cdm-cdm.cc, + OPERATORS/op-chm.cc, OPERATORS/op-cm-cm.cc, + OPERATORS/op-cm-m.cc, OPERATORS/op-cm-scm.cc, + OPERATORS/op-cm-sm.cc, OPERATORS/op-cs-cs.cc, + OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, + OPERATORS/op-dm-dm.cc, OPERATORS/op-dms-template.cc, + OPERATORS/op-fcdm-fcdm.cc, OPERATORS/op-fcm-fcm.cc, + OPERATORS/op-fcm-fcs.cc, OPERATORS/op-fcm-fm.cc, + OPERATORS/op-fcm-fs.cc, OPERATORS/op-fcs-fcm.cc, + OPERATORS/op-fcs-fcs.cc, OPERATORS/op-fcs-fm.cc, + OPERATORS/op-fcs-fs.cc, OPERATORS/op-fdm-fdm.cc, + OPERATORS/op-fm-fcm.cc, OPERATORS/op-fm-fcs.cc, + OPERATORS/op-fm-fm.cc, OPERATORS/op-fm-fs.cc, + OPERATORS/op-fs-fcm.cc, OPERATORS/op-fs-fcs.cc, + OPERATORS/op-fs-fm.cc, OPERATORS/op-int-concat.cc, + OPERATORS/op-m-cm.cc, OPERATORS/op-m-m.cc, + OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, + OPERATORS/op-pm-pm.cc, OPERATORS/op-pm-scm.cc, + OPERATORS/op-pm-sm.cc, OPERATORS/op-pm-template.cc, + OPERATORS/op-range.cc, OPERATORS/op-s-scm.cc, + OPERATORS/op-sbm-b.cc, OPERATORS/op-sbm-bm.cc, + OPERATORS/op-sbm-sbm.cc, OPERATORS/op-scm-cm.cc, + OPERATORS/op-scm-cs.cc, OPERATORS/op-scm-m.cc, + OPERATORS/op-scm-s.cc, OPERATORS/op-scm-scm.cc, + OPERATORS/op-scm-sm.cc, OPERATORS/op-sm-cm.cc, + OPERATORS/op-sm-cs.cc, OPERATORS/op-sm-m.cc, + OPERATORS/op-sm-s.cc, OPERATORS/op-sm-scm.cc, + OPERATORS/op-sm-sm.cc, OPERATORS/op-str-str.cc, + OPERATORS/op-ui64-ui64.cc, bitfcns.cc, c-file-ptr-stream.cc, + c-file-ptr-stream.h, comment-list.h, data.cc, debug.cc, debug.h, + defun-int.h, defun.cc, dynamic-ld.cc, error.cc, file-io.cc, + gl-render.cc, gl-render.h, gl2ps-renderer.cc, gl2ps-renderer.h, + gl2ps.c, gl2ps.h, graphics.cc, graphics.h.in, help.cc, input.cc, + lex.h, lex.ll, load-path.cc, load-path.h, load-save.cc, + load-save.h, ls-ascii-helper.cc, ls-hdf5.cc, ls-hdf5.h, + ls-mat-ascii.cc, ls-mat4.cc, ls-mat4.h, ls-mat5.cc, + ls-oct-ascii.cc, ls-oct-ascii.h, ls-oct-binary.cc, mappers.cc, + mex.cc, mex.h, mexproto.h, mxarray.h.in, oct-hist.cc, + oct-lvalue.cc, oct-lvalue.h, oct-map.cc, oct-map.h, oct-obj.cc, + oct-obj.h, oct-parse.yy, oct-procbuf.cc, oct-stream.cc, + oct-stream.h, octave.cc, ov-base-diag.cc, ov-base-diag.h, + ov-base-int.cc, ov-base-int.h, ov-base-mat.cc, ov-base-mat.h, + ov-base-scalar.cc, ov-base-scalar.h, ov-base-sparse.cc, + ov-base-sparse.h, ov-base.cc, ov-base.h, ov-bool-mat.cc, + ov-bool-mat.h, ov-bool-sparse.cc, ov-bool-sparse.h, ov-bool.cc, + ov-bool.h, ov-builtin.h, ov-cell.cc, ov-cell.h, ov-ch-mat.cc, + ov-class.cc, ov-class.h, ov-complex.cc, ov-complex.h, + ov-cx-diag.cc, ov-cx-diag.h, ov-cx-mat.cc, ov-cx-mat.h, + ov-cx-sparse.cc, ov-cx-sparse.h, ov-dld-fcn.h, ov-fcn-handle.cc, + ov-fcn-handle.h, ov-fcn-inline.cc, ov-fcn-inline.h, ov-fcn.h, + ov-float.cc, ov-float.h, ov-flt-complex.cc, ov-flt-complex.h, + ov-flt-cx-diag.cc, ov-flt-cx-diag.h, ov-flt-cx-mat.cc, + ov-flt-cx-mat.h, ov-flt-re-diag.cc, ov-flt-re-diag.h, + ov-flt-re-mat.cc, ov-flt-re-mat.h, ov-intx.h, ov-lazy-idx.cc, + ov-lazy-idx.h, ov-null-mat.cc, ov-null-mat.h, ov-perm.cc, + ov-perm.h, ov-range.cc, ov-range.h, ov-re-diag.cc, ov-re-diag.h, + ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h, + ov-scalar.cc, ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, + ov-struct.cc, ov-struct.h, ov-type-conv.h, ov-typeinfo.cc, + ov-usr-fcn.cc, ov-usr-fcn.h, ov.cc, ov.h, pager.cc, + pr-output.cc, procstream.h, pt-arg-list.cc, pt-assign.h, + pt-binop.cc, pt-bp.cc, pt-bp.h, pt-cbinop.cc, pt-cell.cc, + pt-colon.cc, pt-const.cc, pt-decl.cc, pt-eval.cc, + pt-fcn-handle.cc, pt-id.h, pt-idx.cc, pt-idx.h, pt-mat.cc, + pt-mat.h, pt-pr-code.cc, pt-select.cc, pt-select.h, pt-stmt.cc, + pt-unop.cc, pt-unop.h, sighandlers.cc, sighandlers.h, + sparse-xdiv.cc, sparse-xdiv.h, sparse-xpow.cc, sparse-xpow.h, + sparse.cc, strfns.cc, symtab.cc, symtab.h, syscalls.cc, + sysdep.cc, toplev.cc, toplev.h, txt-eng-ft.cc, txt-eng-ft.h, + txt-eng.h, unwind-prot.h, utils.cc, utils.h, variables.cc, + variables.h, xdiv.cc, xdiv.h, xnorm.cc, xpow.cc, zfstream.cc, + zfstream.h: Strip trailing whitespace. + + 2011-01-20 John W. Eaton + + * gl-render.cc, DLD-FUNCTIONS/__init_fltk__.cc, + DLD-FUNCTIONS/__magick_read__.cc: Untabify. + + 2011-01-20 Pascal Dupuis . + + * debug.h, dynamic-ld.cc, gl-render.cc, gl-render.h, + gl2ps-renderer.h, lex.h, ls-hdf5.h, oct-stream.h, oct-strstrm.h, + ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h, ov-base-sparse.h, + ov-cell.h, ov-class.h, ov-dld-fcn.h, ov-fcn-handle.h, + ov-lazy-idx.h, ov-perm.h, ov-range.h, ov-struct.h, procstream.h, + pt-assign.h, symtab.h, unwind-prot.h: Initialize + all data members in initialization list. + + 2011-01-20 Kai Habel + + * DLD-FUNCTIONS/__init_fltk__.cc (__fltk_uigetfile__): Append file + seperator to 2nd return value (file path). + Bug #32190. + + 2011-01-20 John W. Eaton + + * oct-obj.h (octave_value_list::octave_value_list): Initialize + all data members in initialization list. From Pascal Dupuis + . + + 2011-01-20 John W. Eaton + + * ls-mat5.cc (read_mat5_binary_element): + Improve diagnositc if uncompress fails. + + * load-path.cc (strip_trailing_separators): New static function. + (load_path::do_add, load_path::do_remove): Call it on directory arg. + + 2011-01-20 John W. Eaton + + * gl-render.h, graphics.cc, gl-render.cc, graphics.h.in: + Update for backend -> graphics_toolkit change. + + * DLD-FUNCTIONS/__init_fltk__.cc: Rename from fltk_backend.cc + Update for backend -> graphics_toolkit change. + * DLD-FUNCTIONS/module-files, Makefile.am: Update for renamed file. + + 2011-01-19 Rik + + * src/data.cc, src/input.cc, src/utils.cc: spellcheck docstrings. + + 2011-01-19 Rik + + * DLD-FUNCTIONS/dlmread.cc, DLD-FUNCTIONS/filter.cc, + DLD-FUNCTIONS/inv.cc, DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/quad.cc, + DLD-FUNCTIONS/quadcc.cc, DLD-FUNCTIONS/rcond.cc, + DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/strfind.cc, + DLD-FUNCTIONS/typecast.cc, data.cc, dirfns.cc, error.cc, file-io.cc, + graphics.cc, help.cc, input.cc, load-path.cc, load-save.cc, mappers.cc, + oct-hist.cc, oct-parse.yy, pager.cc, pr-output.cc, pt-binop.cc, + sparse.cc, strfns.cc, syscalls.cc, sysdep.cc, utils.cc: grammarcheck + files in src directory. + + 2011-01-19 John W. Eaton + + * oct-obj.cc (octave_value_list::all_scalars): Check for scalar + values, not strings. Bug #32172. + + 2011-01-17 Rik + + * DLD-FUNCTIONS/module-files: Add quadcc.cc to list of files. + * DLD-FUNCTIONS/quad.cc: Add Seealso links to quadcc. + + 2011-01-17 Jaroslav Hajek + + * DLD-FUNCTION/lookup.cc (Flookup): Validate option string. + + 2011-01-17 John W. Eaton + + * ov-usr-fcn.cc (octave_user_function::bind_automatic_vars): + Save argument names in hidden variable .argn.. + + * variables.cc (F__varval__): New function. + + 2011-01-17 John W. Eaton + + * ov-usr-fcn.cc (bind_automatic_vars): Mark variables created + here as automatic. + + * symtab.h (symbol_table::mark_automatic): New function. + (symbol_table::do_mark_automatic): New function. + + 2011-01-17 Michael Godfrey + + * variables.cc (Fwhos): Describe a and f attributes in help text. + + 2011-01-17 John W. Eaton + + * sighandlers.cc (octave_signal_handler): Wait for children here. + (sigchld_handler): Not here. + + 2011-01-16 Rik + + * DLD-FUNCTIONS/__delaunayn__.cc, DLD-FUNCTIONS/__dispatch__.cc, + DLD-FUNCTIONS/__dsearchn__.cc, DLD-FUNCTIONS/__glpk__.cc, + DLD-FUNCTIONS/__magick_read__.cc, DLD-FUNCTIONS/__pchip_deriv__.cc, + DLD-FUNCTIONS/__voronoi__.cc, DLD-FUNCTIONS/amd.cc, + DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc, + DLD-FUNCTIONS/bsxfun.cc, DLD-FUNCTIONS/ccolamd.cc, + DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/chol.cc, + DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/colloc.cc, + DLD-FUNCTIONS/conv2.cc, DLD-FUNCTIONS/convhulln.cc, + DLD-FUNCTIONS/cquad.cc, DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/det.cc, + DLD-FUNCTIONS/dlmread.cc, DLD-FUNCTIONS/dmperm.cc, + DLD-FUNCTIONS/dot.cc, DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/eigs.cc, + DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftn.cc, + DLD-FUNCTIONS/fftw.cc, DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/find.cc, + DLD-FUNCTIONS/fltk_backend.cc, DLD-FUNCTIONS/gammainc.cc, + DLD-FUNCTIONS/gcd.cc, DLD-FUNCTIONS/getgrent.cc, + DLD-FUNCTIONS/getpwent.cc, DLD-FUNCTIONS/hess.cc, + DLD-FUNCTIONS/hex2num.cc, DLD-FUNCTIONS/inv.cc, DLD-FUNCTIONS/kron.cc, + DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/lu.cc, + DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/matrix_type.cc, + DLD-FUNCTIONS/max.cc, DLD-FUNCTIONS/md5sum.cc, + DLD-FUNCTIONS/onCleanup.cc, DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/qr.cc, + DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/rand.cc, + DLD-FUNCTIONS/rcond.cc, DLD-FUNCTIONS/regexp.cc, + DLD-FUNCTIONS/schur.cc, DLD-FUNCTIONS/spparms.cc, + DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/str2double.cc, + DLD-FUNCTIONS/strfind.cc, DLD-FUNCTIONS/sub2ind.cc, + DLD-FUNCTIONS/svd.cc, DLD-FUNCTIONS/syl.cc, DLD-FUNCTIONS/symbfact.cc, + DLD-FUNCTIONS/symrcm.cc, DLD-FUNCTIONS/time.cc, DLD-FUNCTIONS/tril.cc, + DLD-FUNCTIONS/tsearch.cc, DLD-FUNCTIONS/typecast.cc, + DLD-FUNCTIONS/urlwrite.cc: Improve docstrings. Use same variable names + in error() strings and docstrings. + + 2011-01-16 John W. Eaton + + * mkgendoc: Write function name along with file name in comment. + + 2011-01-15 Jordi Gutiérrez Hermoso + + * symtab.h (do_clear_global_pattern): Reword so as to not + invalidate iterators when calling std::map::erase(). + * DLD-FUNCTIONS/urwlwrite.cc (~curl_handles): Ditto. + + 2011-01-15 Rik + + * src/dirfns.cc, src/help.cc, src/input.cc, src/load-save.cc, + src/oct-hist.cc, src/pager.cc, src/pr-output.cc, src/variables.cc: + Eliminate @deffn macros. + + 2011-01-15 John W. Eaton + + * syscalls.cc (FWEXITSTATUS, FWIFEXITED): Missing semicolon. + + 2011-01-15 John W. Eaton + + * ov-fcn-handle.cc: Use version instead of flops in test. + + 2011-01-14 Rik + + * DLD-FUNCTIONS/svd.cc: Add Seealso references to svd. + + 2011-01-14 Rik + + * src/mappers.cc: Add Seealso links between sqrt, cbrt, nthroot + functions. + + 2011-01-14 John W. Eaton + + * dirfns.cc (Ffnmatch): Use DEFUNX until gnulib's fnmatch is C++ + friendly. + + 2011-01-14 Rik + + * src/mappers.cc: Add Seealso links between erf variants to docstring. + + 2011-01-14 John W. Eaton + + * sighandlers.cc (BADSIG, BLOCK_SIGNAL, SIGCHLD, BLOCK_CHILD, + UNBLOCK_CHILD): Move macro definitions here from sighandlers.h. + + 2011-01-14 John W. Eaton + + * Update copyright notices for 2011. + + 2011-01-13 John W. Eaton + + * file-io.cc (mkstemp): Delete. + Delete decl for mkstemps. + (Fmkstemp): Assume we have mkstemp from gnulib. + + 2011-01-13 John W. Eaton + + * DLD-FUNCTIONS/__pchip_deriv__.cc, DLD-FUNCTIONS/dot.cc, + octave.cc: Style fixes. + + 2011-01-13 David Bateman + + ls-mat5.cc (int save_mat5_element_length (const octave_value&, + const std::string&, bool, bool)): For sparse matrices use nnz rather + than nzmax. + (bool save_mat5_binary_element (std::ostream&, const octave_value&, + const std::string&, bool, bool, bool, bool)): ditto. + + 2011-01-13 John W. Eaton + + * base-list.h (class octave_base_list): Provide explicit + default and copy construtors, assignment operator, and destructor. + * load-path.h (load_path::dir_info::class_info): Likewise. + + * load-path.h (load_path::dir_info::dir_info): Initialize all + members in initializaition list. + * lex.h (lexical_feedback::lexical_feedback): Likewise. + + 2011-01-13 John W. Eaton + + * cutils.h: New file. + (octave_sleep, octave_usleep, octave_raw_vsnprintf): Move decls + here from utils.h. + * Makefile.am (octinclude_HEADERS): Add cutils.h to the list. + * utils.h: Include cutils.h. + * cutils.c: Include cutils.h. + + 2011-01-12 David Grundberg + + * DLD-FUNCTIONS/__magick_read__.cc (__magick_read__) [!HAVE_MAGICK]: + Write more verbose error message that blames on imread, not + __magick_read__. + + 2011-01-12 John W. Eaton + + * DLD-FUNCTIONS/rand.cc (reset_rand_generator): Delete unused + static function. + + 2011-01-12 John W. Eaton + + * graphics.cc (graphics_object::get_ancestor): Avoid GCC warning. + + 2011-01-12 John W. Eaton + + * DLD-FUNCTIONS/gcd.cc (extended_gcd): Tag call to floor with gnulib::. + + 2011-01-12 John W. Eaton + + * oct-hist.cc (Fhistory_control): New function. + + 2011-01-12 Pascal Dupuis + + * oct-hist.cc (default_history_control): New function. + (initialize_history): Pass Vhistory control to + command_history::initialize. + + 2011-01-11 Konstantinos Poulios + + * gl-render.cc (opengl_renderer::draw_axes): Improve positioning + of titles. + + 2011-01-10 John W. Eaton + + * ov-cell.cc (octave_cell::print_as_scalar): Always return true. + (octave_cell::print_raw): Handle extra newlines here. + * ov-struct.cc (Fstruct_levels_to_print): Move here from pr-output.cc + (Vstruct_levels_to_print): Move here from pr-output.cc. Now static. + (Vprint_struct_array_contents): New static variable. + (Fprint_struct_array_contents): New function. + (octave_struct::print_raw): Use Vprint_struct_array_contents. + Simplify and improve output. + (octave_scalar_struct::print_raw): Simplify and improve output. + * pr-output.h (Vstruct_levels_to_print): Delete decl. + * ov-class.cc (octave_class::print_raw): Don't unwind_protect + Vstruct_levels_to_print. + + 2011-01-09 David Bateman + + * ls-mat5.cc (save_mat5_array_length (const float*, octave_idx_type, + bool)): Take in to account the short tags for single data elements. + (int save_mat5_element_length (const octave_value&, const std::string&, + bool, bool)): Declare sparse matrices const to avoid a copy on read. + * ls-utils.cc (save_type get_save_type (float, float)): New function. + * ls-utils.h (save_type get_save_type (float, float)): Declare it. + + 2011-01-09 John W. Eaton + + * token.h, token.cc (token::plot_tok_typ): Delete unused enum. + (token::token_type): Delete pttype_token from the list. + (token::token (plot_tok_type, int, int)): Delete unused constructor. + (token::pttype): Delete unused function. + (token::anonymous union): Delete PT element. + + 2011-01-09 John W. Eaton + + * lex.ll (display_token): Display token value for NUM, IMAG_NUM, + STRUCT_ELT, NAME, DQ_STRING, and SQ_STRING tokens. + + 2011-01-09 John W. Eaton + + * lex.h, lex.ll, oct-parse.yy (lexer_flags::parsed_function_name): + Declare to be std::stack instead of bool. Change all uses. + Bug #32083. + + 2011-01-08 Konstantinos Poulios + + * gl-render.cc (opengl_renderer::draw_axes): Revert positionmode + to auto after automatic positioning of titles. Bug #32074. + + 2011-01-08 David Grundberg + + * ov-fcn.h (is_subfunction): Rename from is_nested_function. + Change all uses and nearby comments. + * ov-usr-fcn.h (is_subfunction, mark_as_subfunction): Rename from + is_nested_function, mark_as_nested_function. Change all uses. + + 2011-01-07 John W. Eaton + + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): For uniformoutput case + with nargout > 0, initialize elements of retval to NDArray + objects of the same size as the input. Bug #32067. + + 2011-01-07 John W. Eaton + + * graphics.cc (Fget): Return empty matrix if no values are found. + Bug #32067. + + 2011-01-06 Konstantinos Poulios + + * txt-eng-ft.h, txt-eng-ft.cc: Remove dependency on graphics.h. + (ft_render::set_font): New arguments list. + (ft_render::text_to_pixels): New method. + * graphics.cc (text::properties::update_text_extent): Adapt the call + to ft_render::set_font. + (text::properties::get_extent_matrix): New function. + (text::properties::update_text_extent): Function rewrite. + * gl-render.cc (opengl_renderer::set_font): Likewise. + (opengl_renderer::text_to_pixels): + Make use of ft_render::text_to_pixels. + (opengl_renderer::render_text): Simplify. + (opengl_renderer::draw_text): Make text drawing aware of the text + extent property. + * gl-render.h (opengl_renderer::text_to_pixels): Arguments reordering. + (opengl_renderer::get_transform): New function. + * gl2ps-renderer.cc (glps_renderer::render_text): Adapt the call to + text_to_pixels. + (glps_renderer::alignment_to_mode): New function. + (glps_renderer::draw_text): Overload inherited function. + * gl2ps-renderer.h (glps_renderer::alignment_to_mode): New function. + * graphics.h.in: Add dependency on txt-eng-ft.h. + (class text::properties): Tag horizontalalignment and verticalalignment + with "u" qualifier. + (text::properties::get_extent_matrix, get_pixels, + update_horizontalalignment, update_verticalalignment): New functions. + (text::properties::renderer): New class member of type ft_render. + (text::properties::pixels): New class member of type uint8NDArray. + + 2011-01-06 John W. Eaton + + * DLD-FUNCTIONS/rand.cc (Frandperm): Tag call to floor with gnulib::. + * DLD-FUNCTIONS/gcd.cc (divide): Tag calls to floor with gnulib::. + * ov-scalar.cc (octave_scalar::map): Tag floor with gnulib::. + * ov-cell.cc (octave_cell::save_hdf5): Tag call to floor with gnulib::. + * pr-output.cc (engineering_exponent, num_digits, + octave_print_internal_template): Tag call to floor with gnulib::. + * graphics.cc: Consistently use std::ceil. + (axes::properties::get_axis_limits): Tag calls to floor with gnulib::. + (axes::properties::calc_ticks_and_lims): Likewise. + + 2011-01-05 John W. Eaton + + Bug #32060. + + * ov-fcn.h (octave_function::mark_as_private_function): Now virtual. + * ov-usr-fcn.h (octave_function::mark_as_private_fucntion): + New function. Mark subfunctions as private also. + * symtab.cc, symtab.h + (symbol_table::mark_subfunctions_in_scope_as_private, + symbol_table::fcn_info::mark_subfunction_in_scope_as_private, + symbol_table::fcn_info::fcn_info_rep::mark_subfunction_in_scope_as_private): + New functions. + + 2011-01-04 John W. Eaton + + * ov-base-sparse.cc (octave_base_sparse::print_raw): Improve + display of percentage full. Bug #32011. + + 2011-01-04 John W. Eaton + + * ov-typeinfo.cc (Ftypeinfo): Return cell array of character + strings, not character array. Bug #32050. + + 2011-01-03 Rik + + * data.cc (islogical, isnumeric): Add tests to check sparse forms of + logical matrices. + + 2011-01-02 Jaroslav Hajek + + * ov-bool-sparse.h (octave_sparse_bool_matrix::is_numeric_type): New + virtual method override. + + 2010-12-31 Rik + + * toplev.cc (system): Add additional calling form "shell_cmd" to + documentation. + + 2010-12-31 Rik + + * data.cc (islogical, isinteger, iscomplex, isfloat, isempty, + isnumeric, ismatrix, issorted): Improve docstring + * graphics.cc (ishandle): Improve docstring + * lex.ll (iskeyword): Improve docstring + * mappers.cc (isalnum, isalpha, isascii, iscntrl, isdigit, isinf, + isgraph, islower, isna, isnan, isprint, ispunct, isspace, isupper, + isxdigit): Improve docstring + (finite/isfinite): Make finite an alias for isfinite rather than the + reverse. Improve docstring. + * ov-cell.cc (iscell, iscellstr): Improve docstring + * ov-class.cc (isobject, ismethod): Improve docstring + * ov-null-mat.cc (isnull): Improve docstring + * ov-struct.cc (isstruct, isfield): Improve docstring + * ov-usr-fcn.cc (isargout): Improve docstring + * sparse.cc (issparse): Improve docstring + * strfns.cc (ischar): Improve docstring + * sysdep.cc (isieee): Improve docstring + * utils.cc (isvarname, is_absolute_filename, + is_rooted_relative_filename, isindex): Improve docstring + * variables.cc (isglobal): Improve docstring + + 2010-12-28 Rik + + * data.cc (and, ctranspose, eq, ge, gt, ldivide, le, lt, minus, + mldivide, mpower, mrdivide, mtimes, ne, not, or, plus, power, rdivide, + times, transpose, uminus, uplus): Improve docstrings for functions + which emulate operators. Add Seealso cross-referencing. + + 2010-12-28 David Bateman + + * ls-mat5.cc (save_mat5_array_length (const float*, octave_idx_type, + bool)): Take in to account the 4 bytes of padding for an odd number + of elements in single precision arrays. + + 2010-12-27 Rik + + * syscalls.cc (stat): Add additional calling form using file descriptor + fid to docstring. + + 2010-12-26 Michael Godfrey + + * gammainc.cc: Add @tex blocks to docstring. + + 2010-12-25 Rik + + * DLD-FUNCTIONS/str2double.cc: Fix bug in converting "numberi" strings + such as "2i". Add ability to process special value "NA". Rewrite + docstring. + + 2010-12-25 Rik + + * input.cc (PS1): Correct use of xref macro to remove Tex warning. + + 2010-12-22 Jordi Gutiérrez Hermoso + + * input.cc (PS1): Give an example of how PS1 can use ANSI escape + codes for getting a colourised prompt. + * oct-hist.cc (history): Correct documentation about how + history("-r") appends to history, doesn't replace it. + + 2010-12-22 Judd Storrs + + * data.cc (Fvec): New optional second argument to set dimension + of result. + + 2010-12-18 Konstantinos Poulios + + * graphics.h.in (class axes::properties): Tag xtickmode, ytickmode + and ztickmode with "u" qualifier. + (axes::properties::update_xtickmode, axes::properties::update_ytickmode + axes::properties::update_ztickmode): New functions. + + 2010-12-18 John W. Eaton + + * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Simplify file name/id logic. + Bug #31910. + + 2010-12-17 Rik + + * oct-parse.yy (builtin): Remove seealso reference to deprecated + function dispatch. + + 2010-12-17 Konstantinos Poulios + + * graphics.h.in (class text::properties): New properties positionmode, + rotationmode, horizontalalignmentmode, verticalalignmentmode. + * graphics.cc (axes::properties::init, axes::properties::set_defaults): + Set mode to auto for all initialized positioning properties. + (axes::properties::set_xlabel,set_ylabel,set_zlabel,set_title): + Revert to auto-positioning mode and turn clipping off when title or + labels are set. + * gl-render.cc (opengl_renderer::draw_axes): Disable auto-positioning + of manually positioned title and axes labels. + + 2010-12-17 Konstantinos Poulios + + * graphics.h.in (class axes::properties): Change default value for + fontsize from 12 to 10. + * graphics.cc (axes::properties::set_defaults): Likewise. + + 2010-12-15 John W. Eaton + + Bug #31883. + + * oct-hist.cc (initialize_history): Call command_history::initialize. + + * octave.cc (gripe_safe_source_exception): New function. + (safe_source_file): New function. + (execute_startup_files): Call safe_source_file instead of source_file. + (execute_command_line_file): Likewise. Don't handle exceptions here. + (execute_eval_option_code): Also catch octave_execution exception. + + 2010-12-15 John W. Eaton + + Bug #31861. Also bug #31286. + + * lex.h (lexical_feedback::defining_func): Now int instead of bool. + lex.ll (is_keyword_token): Increment lexer_flags.defining_func + instead of setting it to true. + (lexical_feedback::init): Set defining_func to 0 instead of false. + * oct-parse.yy (recover_from_parsing_function): Decrement + lexer_flags.defining_func here. + * input.cc (input_event_hook): Don't do anything if we are + lexer_flags.defining_func is nonzero. + + 2010-12-13 Rik + + * ov-struct.cc (isfield): Additional test for cellstring of field names. + + 2010-12-13 Rik + + * data.cc (mod): Additional tests for mod with non-integer real values. + + 2010-12-12 Jaroslav Hajek + + * DLD-FUNCTIONS/lookup.cc (Flookup): Drop support for the "i" option. + + 2010-12-09 Marco Atzeri + + * mappers.cc: In test for gamma, expect Inf for gamma(-1), not NaN. + Bug #31772. + + 2010-12-08 John W. Eaton + + * graphics.h.in (base_property::do_set): Don't reverse order of + children. Bug #31822. + + 2010-12-08 John W. Eaton + + * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find_user_function): + Return if an error occurs in out_of_date_check. + + 2010-12-07 John W. Eaton + + * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find): If an + error occurred during the first call to xfind, don't try again. + + 2010-12-07 John W. Eaton + + * oct-parse.yy (case_list): Also accept default_case by itself. + Bug #31793. + + 2010-12-01 John W. Eaton + + * pt-pr-code.cc (tree_print_code::visit_octave_user_function_trailer): + Don't indent or print "endfunction" here. + * ov-usr-fcn.cc (ov_user_script::do_multi_index_op): Save and + set tree_evaluator::statement_context, not + tree_evaluator::in_fcn_or_script_body. + (ov_user_function::do_multi_index_op): Likewise. + * pt-eval.cc: Initialize tree_evaluator::statement_context, not + tree_evaluator::in_fcn_or_script_body. + (tree_evaluator::visit_break_command): Check statement_context, + not in_fcn_or_script_body. + (tree_evaluator::visit_continue_command): Likewise. + (tree_evaluator::visit_return_command): Likewise. + (visit_statement): Also echo commands in scripts if + Vecho_executing_commands & ECHO_SCRIPTS is true. + * pt-eval.h (tree_evaluator::in_fcn_body, + tree_evaluator::in_script_body): New static variables. + (tree_evaluator::): Now an enum. + (tree_evaluator::in_function_or_script_body): Now an enum. + Rename from in_fcn_or_script_body. + + 2010-12-01 Kai Habel + + * DLD-FUNCTIONS/fltk_backend.cc (fltk_gui_mode): Fix gui mode + problems when set to none. + + 2010-11-26 Kai Habel + + * DLD-FUNCTIONS/fltk_backend.cc (find_uimenu_children, + __fltk_redraw__): Consider hidden handles here. + + 2010-11-26 John W. Eaton + + * defaults.cc (FEXEC_PATH): Only call set_exec_path if nargin is + greater than zero. + + 2010-11-25 Kai Habel + + * DLD-FUNCTIONS/fltk_backend.cc (fltk_gui_mode): New + function to set GUI mode. + (__fltk_uigetfile__): Remove nargout from argument list. + (plot_window): Remove gui_mode enum here. + + 2010-11-25 John W. Eaton + + * defaults.cc (set_exec_path): Append EXEC_PATH to PATH. Store + only extra directories in EXEC_PATH. + (FEXEC_PATH): Update doc string. + Bug #31695. + + 2010-11-22 John W. Eaton + + * defun.cc (defun_isargout): Cast nout to octave_idx_type in call + to std::min. + + 2010-11-21 Kai Habel + + * DLD-FUNCTIONS/fltk-backend.cc (__fltk_uigetfile__): New function + for GUI file dialogs. + * graphics.cc (property_list::set): Indentation fix. + + 2010-11-20 Ben Abbott + + * graphics.h.in: Change intended for 11272. + + 2010-11-19 John W. Eaton + + Bug #31706. + + * mex.h, mex.cc (mxArray::dup): Rename from clone. Change all + uses and derived classes. + (mxArray_octave_value::dup): Convert to mxArray object here. + + 2010-11-19 John W. Eaton + + Bug #31707. + + * mex.cc (mex::free): Don't warn about skipping memory not + allocated by mxMalloc, mxCalloc, or mxRealloc. + + 2010-11-18 Daisuke TAKAGO + + * gl-render.cc (opengl_renderer::draw_line): + Layer markers in 2D plots. + + 2010-11-18 John W. Eaton + + Bug # 31689. + + * ov-str-mat.cc (octave_char_matrix_str::save_ascii): + Adapt to change in charMatrix::row_as_string function. + * DLD-FUNCTIONS/md5sum.cc: New tests. + + 2010-11-17 John W. Eaton + + * pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue1): Also stash + the directory name of the parent function in the newly created + anonymous function. Bug #31484. + + 2010-11-17 John W. Eaton + + * oct-parse.yy (parse_fcn_file): Protect and set global_command + to 0 before calling yyparse. + * toplev.cc (main_loop): Likewise. + + * oct-parse.yy (eval_string): Set global_command to 0 after + protecting it and before calling yyparse. + * input.cc (get_debug_input): Likewise. + + 2010-11-14 Michael Goffioul + + * graphics.h.in (graphics_object::get_ancestor): New method. + * graphics.cc (graphics_object::get_ancestor): Likewise. + (convert_text_position, convert_cdata): Use it. + (xget_ancestor): Remove obsolete function. + * DLD_FUNCTIONS/fltk_backend.cc (plot_window::uimenu_update, + fltk_backend::update): Replace xget_ancestor with + graphics_objects::get_ancestor. + + 2010-11-13 John W. Eaton + + * graphics.h.in (figure::properties::filename): Make writable. + Bug #31450. + + 2010-11-12 John W. Eaton + + * Makefile.am (nodist_liboctinterp_la_SOURCES): Remove + $(OPT_HANDLERS) from the list. Bug #31623. + + 2010-11-11 John W. Eaton + + * data.cc: New tests for cat. Enable 4 asserts that were disabled. + + 2010-11-11 Kai Habel + + * fltk-backend.cc (plot_window::uimenu_update, + fltk_backend::update): Add prefix 'ID_' to property ids to avoid + name clash on windows systems. + * graphics.cc (gnuplot_backend::update): Ditto. + * genprops.awk (emit_declarations, emit_source): Ditto. + + 2010-11-11 John W. Eaton + + Bug #31165. + + * symtab.h (symbol_table::parent_classes): New static function. + * symtab.cc (out_of_date_check): Also look for methods defined + in parent classes of dispatch_type. + (symbol_table::fcn_info::fcn_info_rep::load_class_method): Call + parent_classes instead of accessing parent_map directly. + + 2010-11-10 John W. Eaton + + * octave.cc (octave_main): Call octave_ieee_init here. + * sysdep.cc (sysdep_init): Not here. + + 2010-11-10 John W. Eaton + + * sysdep.cc: Eliminate special case for __DECCXX. + + 2010-11-10 John W. Eaton + + * sysdep.cc (sysdep_init): Eliminate special case for NeXT systems. + (malloc_handler, NeXT_init): Delete. + + 2010-11-10 John W. Eaton + + * sighandlers.cc (MAYBE_ACK_SIGNAL): Delete macro and all uses. + (sigchld_handler): Delete special case for __EMX__. + * sysdep.cc (sysdep_init): Eliminate special case for __EMX__. + (OS2_init, Fextproc): Delete. + + 2010-11-10 John W. Eaton + + * sysdep.cc (sysdep_init): Eliminate special case for SCO. + (SCO_init): Delete. + + 2010-11-10 John W. Eaton + + * DLD-FUNCTIONS/__dispatch__.cc: Rename from dispatch.cc. + Move tests to scripts/deprecated/dispatch.m. + (F__dispatch__): Rename from Fdispatch. + + * DLD-FUNCTIONS/module-files: Add __dispatch__.cc to the list. + Remove dispatch.cc from the list. + + 2010-11-10 John W. Eaton + + * oct-parse.yy (Fbuiltin): Move here from DLD-FUNCTIONS/dispatch.cc. + + 2010-11-10 Kai Habel + + * fltk-backend.cc (fltk_uimenu::update_accelerator + fltk_uimenu::update_callback, fltk_uimenu::update_enable, + fltk_uimenu::update_foregroundcolor fltk_uimenu::update_visible): + Check if find_item was succesful. + (fltk_uimenu::update_seperator): Make sure we don't write beyond + limits of menubar structure. + + 2010-11-10 John W. Eaton + + Bug #31491. + + * pt-pr-code.cc, pt-pr-code.h (tree_print_code::print_fcn_handle_body): + New function. + * ov-fcn-handle (octave_fcn_handle::print_raw): Use it. + * pt-pr-code.cc (tree_print_code::visit_anon_fcn_handle): Likewise. + * pt-pr-code.h (tree_print_code::suppress_newline): Rename from + printing_newlines. Now int. Change all uses. + * pt-pr-code.cc (tree_print_code::newline): Only set + beginning_of_line if newline is printed. + + 2010-11-10 John W. Eaton + + Bug #31567. + + * ov-fcn.h (octave_base_value::is_class_constructor) + octave_base_value::is_class_method): New optional character + string argument. + * ov-usr-fcn.h (octave_usr_fcn::is_class_constructor) + octave_usr_fcn::is_class_method): New optional arg. If this + argument is not empty, also check it against the name of the + dispatch class. + * ov-class.cc (Fclass): Allow class function to be called inside + a class method. Require that the to-be-constructed object is of + the same class as the class constructor or method. + + 2010-11-09 John W. Eaton + + * lex.ll (handle_number): Set lexer_flags.looking_for_object_index + to false here. Fixes bug #31608. + + 2010-11-09 John W. Eaton + + * gl-render.cc (make_marker_list): Call fmod instead of mod. + + * data.cc (Frem): Use xrem instead of fmod and fmodf. + (Fmod): Use xmod instead of mod. + + 2010-11-08 Kai Habel + + * fltk-backend.cc (fltk_uimenu::do_find_uimenu_children): + Simplify. Remove unused code. + (fltk_uimenu::update_submenu): Remove unused function. + (fltk_uimenu::add_to_menu, fltk_uimenu::remove_from_menu): + Simplify. Get properties for valid objects only. + + 2010-11-03 Ben Abbott + + * gl-render.cc: Do not give rendering error for uimenus. + + 2010-11-03 John W. Eaton + + * DLD-FUNCTIONS/cquad.cc: If we don't have copysign but we do + have _copysign, define copysign to be _copysign. + + 2010-11-02 John W. Eaton + + * DLD-FUNCTIONS/cquad.cc (Fcquad): Use octave_Inf, not INFINITY. + + 2010-11-02 David Bateman + + * ls-hdf5.cc (bool hdf5_get_scalar_attr (hid_t, hid_t, + const char *, void *), herr_t hdf5_add_scalar_attr + (hid_t, hid_t, const char *, void *)): New functions. + (herr_t hdf5_add_scalar_attr (hid_t, const char *)): Remove static + definition to make this function visible externally. + * ls-hdf5.h (extern OCTINTERP_API bool hdf5_check_attr (hid_t, + const char *), extern OCTINTERP_API bool hdf5_get_scalar_attr + (hid_t, hid_t, const char *, void *buf), extern OCTINTERP_API herr_t + hdf5_add_attr (hid_t, const char *), extern OCTINTERP_API herr_t + hdf5_add_scalar_attr (hid_t, hid_t, const char *, void *)): Function + declarations. + * ov-range.cc (bool octave_range::save_hdf5 (hid_t, const char *, + bool)): Save the number of elements in the range as an HDF5 attribute. + (bool octave_range::load_hdf5 (hid_t, const char *)): If an HDF5 + attribute containing the number of elements exists use it to ensure + the correct number of elements in the range. + + 2010-11-01 David Bateman + + * gl-render.cc (void opengl_renderer::draw_patch (const + patch::properties &)): Draw clipped contours of patches. + * graphics.cc (template static void get_array_limits + (const Array&, double&, double&, double&)): Don't need to test + for NaN as comparison is always false. + (Matrix children_property::do_get_children (bool) const): New method of + new children_property class. + (void children_property::do_delete_children (bool)): Ditto. + (void base_properties::remove_child (const graphics_handle&)): Delete. + (void base_properties::set_children (const octave_value&)): Delete. + (void base_properties::delete_children (void)): Delete. + (base_properties::update_axis_limits (const std::string&, + const graphics_handle&) const): New method. + (void base_graphics_object::update_axis_limits (const std::string&, + const graphics_handle&)): New Method. + (Matrix base_properties::get_children_internal (bool) const): Delete. + (Matrix base_properties::get_children (void) const): Delete. + (Matrix base_properties::get_hidden_children (void) const): Delete. + (void axes::update_axis_limits (const std::string&, + const graphics_handle&): New Method. + (void hggroup::properties::update_limits (void) const): New method. + (void hggroup::properties::update_limits (const graphics_handle&) + const): New method. + (void hggroup::update_axis_limits (const std::string&, + const graphics_handle&)): New method. + * graphics.h.in (class children_property): New class. + (class base_properties): Use it. + (base_graphics_object::update_axis_limits(const std::string&, + const graphics_handle&)): New method. + (graphics_object::update_axis_limits(const std::string&, + const graphics_handle&)): New method. + (axes::update_axis_limits(const std::string&, + const graphics_handle&)): New method. + (hggroup::adopt (const graphics_handle&)): Use it + (void hggroup::properties::update_limits (void) const): Remove inline + definition of the methid. + (void hggroup::properties::update_limits (const graphics_handle&) + const): New method. + (void hggroup::update_axis_limits (const std::string&, + const graphics_handle&)): New method. + + 2010-10-31 Michael Goffioul + + * xnorm.h (xnorm, xcolnorms, xrownorms, xfrobnorm): tag with + OCTINTERP_API. + + 2010-10-31 Kai Habel + + * fltk-backend.cc (find_uimenu_children): Remove template argument. + (do_find_uimenu_children): New function. + + 2010-10-29 David Bateman + + * graphics.cc (octave_value patch::properties::get_color_data + (void) const): Don't call convert_data is the facevertexcdata + property is undefined or empty. + * gl-render.cc (void opengl_renderer::draw_patch + (const patch::properties &)): Set ec_mode to 0 if edgecolor is "none". + Set fc_mode to 0 if facecolor is "none". + + 2010-10-29 Ben Abbott + + * gl-render.cc: Crop ticks, ticklabels, and gridlines for OpenGL + backend. + + 2010-10-28 Konstantinos Poulios + + * graphics.cc (normalized_aspectratios, max_axes_scale): + New file-scope static function + (updating_aspectratios): New file-scope variable. + (axes::properties::update_aspectratios, axes::update_axis_limits): + Return immediately if updating_aspecratios is true. + (axes::properties::update_aspectratios): + If dataaspectratiomode is set to manual this function will try to + respect it even after changes in xlim, ylim, zlim. + If both dataaspectratiomode and plotboxaspectratiomode is set to + manual this function will try to recalulate xlim, ylim, zlim + depending on the status of xlimmode, ylimmode, zlimmode. If + altering xlim, ylim, zlim is not possible, plotboxaspectratio will + be overriden. + * graphics.h.in (class axes::properties): Tag dataaspectratio, + dataaspectratiomode, plotboxaspectratio, and + plotboxaspectratiomode with "u" qualifier. + (axes::update_dataaspectratio, + axes::update_dataaspectratiomode, + axes::update_plotboxaspectratio, + axes::update_plotboxaspectratiomode): New functions. + + 2010-10-25 John W. Eaton + + * octave.cc (octave_main): Use F77_CHAR_ARC_LEN macro to pass + character string length in call to xerbla. + + 2010-10-25 Kai Habel + + * gl-render.cc (opengl_renderer::draw): Ignore uimenu objects here. + * graphics.h.in (class OCTINTERP_API uimenu): New graphics object. + * graphics.cc (lookup_object_name): Add uimenu here. + (make_graphics_object_from_type): Likewise. + (property_list::set): Likewise. + (property_list::lookup): Likewise. + (root_figure::init_factory_properties): Likewise. + (__go_uimenu__): New function. + * DLD-Functions/fltk-backend.cc (OpenGL_fltk::resize): Make public. + (script_cb): New function. + (fltk_uimenu): New class. + (plot_window::plot_window): Initialize fltk_uimenu object. + (plot_window::~plot_window): Delete fltk_uimenu object. + (plot_window::show_menubar): New function. + (plot_window::hide_menubar): New function. + (plot_window::uimenu_update): New function. + (plot_window::handle): Do not evaluate FLTK events when figure + is deleted. + (figure_manager::uimenu_update): New function. + (figure_manager::toggle_menubar_visibility): New functions. + (figure_manager::do_toggle_menubar_visibility): New function. + (figure_manager::do_uimenu_update): New function. + (fltk_backend::uimenu_set_fltk_label): New function. + (fltk_backend::update): Add figure and uimenu updates. + + 2010-10-24 Rik + + * DLD-FUNCTIONS/tril.cc, syscalls.cc: Docstring improvements. + + 2010-10-24 Rik + + * variables.cc: Deprecate is_global function + + 2010-10-23 John W. Eaton + + * file-io.cc (Ffopen): Only handle fopen ("all") case if nargout + is 0 or 1. + + 2010-10-22 John W. Eaton + + * octave.cc (usage): Put whitespace before and after usage message. + (octave_main): If getopt_long returns '?', it means an + unrecognized option was encountered. + Panic if default case in option switch statement is reached. + (verbose_usage, short_opts, usage_string): Remove '?' as an + alias for 'h' in the list of possible options. + Fixes bug #31423. + + 2010-10-22 John W. Eaton + + * oct-parse.yy (load_fcn_from_file): Also strip directory when + computing function name from filename. Bug #31395. + + 2010-10-21 Gunnar FarnebÀck + + * mex.cc (mxArray_number::as_octave_value): Convert single + matlab array to single octave array instead of to double octave + array. + + 2010-10-21 John W. Eaton + + * gripes.h: Include lo-array-gripes.h. + + 2010-10-21 John W. Eaton + + * ov-float.cc, ov-flt-re-mat.cc, ov-re-mat.cc, ov-re-sparse.cc, + ov-scalar.cc: Use gripe_nan_to_character_conversion. + + * ops.h, ov-base-mat.cc, ov-base-scalar.cc, ov-complex.h, + ov-cx-mat.cc, ov-cx-sparse.cc, ov-float.h, ov-flt-complex.h, + ov-flt-cx-mat.cc, ov-flt-re-mat.cc, ov-range.cc, ov-re-mat.cc, + ov-re-sparse.cc, ov-scalar.h: Use gripe_nan_to_logical_conversion. + + 2010-10-20 John W. Eaton + + * toplev.cc (Fsystem): Allow optional RETURN_OUTPUT and TYPE + arguments to be specified independently. Update doc string. + + 2010-10-18 John W. Eaton + + * load-path.cc (load_path::do_find_first_of, + load_path::do_find_all_first_of): Also search path for relative + filenames. + + 2010-10-17 John W. Eaton + + * DLD-FUNCTIONS/tril.cc: Use Octave copyright notice instead of + generic "This program is free software" notice. + + * toplev.cc (Fwarranty): Say "GNU Octave" instead of "This program". + + 2010-10-16 John W. Eaton + + * mxarray.h.in (mxArray::is_function_handle): New virtual function. + * mex.cc (mxArray_base::is_function_handle): New pure virtual function. + (mxArray_octave_value::is_function_handle): New function. + (mxArray_matlab::is_function_handle): New function. + (mxIsFunctionHandle): New function. + * mexproto.h (mxIsFunctionHandle): Provide decl. + + 2010-10-14 John W. Eaton + + * sparse.cc: Rename from DLD-FUNCTIONS/sparse.cc. Include + defun.h, not defun-dld.h. + (Fissparse, Fsparse, Fspalloc): Use DEFUN, not DEFUN_DLD. + * Makefile.am (DIST_SRC): Add sparse.cc to the list. + * DLD-FUNCTIONS/module-files: Remove sparse.cc from the list of files. + + 2010-10-09 Ben Abbott + + * gl-render.cc: Treat images with scalar unique(x/ydata) like Matlab. + + 2010-10-08 John W. Eaton + + * octave.cc (maximum_braindamage): + Set do_braindead_shortcircuit_evaluation to true. + Disable Octave:possible-matlab-short-circuit-operator warning. + * oct-parse.yy (if_cmd_list1, elseif_clause, loop_command): + Mark conditions in IF and WHILE statements for braindead + short-circuit behavior. + * pt-binop.cc (Vdo_braindead_shortcircuit_evaluation): New + static variable. + (Fdo_braindead_shortcircuit_evaluation): New function. + (tree_binary_expression::rvalue1): Perform short-circuit + evaluation of | and & expressions that are conditions of WHILE + and IF statements if Vdo_braindead_shortcircuit_evaluation is true. + * pt-binop.h + (tree_binary_expression::eligible_for_braindead_shortcircuit): + New data member. Initialize it in class constructors. + (tree_binary_expression::mark_braindead_shortcircuit): New function. + * pt-exp.h (tree_expression::mark_braindead_shortcircuit): + New virtual function. + + 2010-10-08 Ben Abbott + + * graphics.h.in: Properly set image pixel size when unique(x/ydata) + is scalar. + + 2010-10-07 Rik + + * DLD-FUNCTIONS/conv2.cc (convn): Update docstring. Add 1 new test. + + 2010-10-07 John W. Eaton + + * DLD-FUNCTIONS/conv2.cc (convn): Style fixes. Edit docstring. + + 2010-10-07 John W. Eaton + + * file-io.cc (do_stream_open): Use fileno instead of ::fileno to + avoid problems if fileno is a macro. + + 2010-10-05 John W. Eaton + + * oct-stdstrm.h (octave_stdiostream::octave_stdiostream): Use + fileno instead of ::fileno to avoid problems if fileno is a macro. + + 2010-10-04 Shai Ayal + + * graphics.h.in (axis::properties::pixel_size): New function. + (axis::properties::pixel_xsize,axis::properties::pixel_ysize): + New functions, use axis::properties::pixel_size + (axis::properties::update_ydata,axis::properties::update_xdata): + Use axis::properties::pixel_size functions + + * graphics.cc (__image_pixel_size__): New function uses + axis::properties::pixel_size functions + + 2010-10-01 John W. Eaton + + * graphics.h.in (class caseless_str): Move to + liboctave/caseless-string.h. + + 2010-10-01 John W. Eaton + + * graphics.cc (base_properties::get_dynamic): Create and return + octave_scalar_map object instead of Octave_map. + (base_graphics_object::remove_all_listeners): Use octave_map + instead of Octave_map. + (base_graphics_object::values_as_string): Likewise. + + * graphics.h.in, graphics.cc (property_list::as_struct): + Return octave_scalar_map instead of Octave_map. + (base_graphics_object::values_as_struct): Likewise. + (graphics_object:values_as_struct): Likewise. + (graphics_object::set): Accept octave_map instead of Octave_map. + + * genprops.awk: Use octave_map instead of Octave_map in + generated code. Convert second arg to octave_value in call to + octave_map::assign. + + 2010-10-01 John W. Eaton + + * mex.cc (mxArray_struct::as_octave_value): Use octave_map + instead of Octave_map. + + 2010-10-01 John W. Eaton + + * ov-base.h: Delete forward decl for Octave_map class. + + 2010-10-01 John W. Eaton + + * ov-struct.h (octave_struct (const Octave_map&)): Delete constructor. + + 2010-10-01 John W. Eaton + + * ov-fcn-inline.cc (octave_fcn_inline::map_value): Use + octave_scalar_map and octave_map instead of Octave_map. + + 2010-10-01 John W. Eaton + + * variables.cc (symbol_info_list::map_value): Use + octave_scalar_map and octave_map instead of Octave_map. + + 2010-09-30 Jaroslav Hajek + + * oct-map.h (octave_fields::nil_rep): Make a static function. + (octave_fields::octave_fields (void)): Use it here. + + 2010-09-30 John W. Eaton + + * toplev.cc (octave_config_info): Use Octave_scalar_map instead + of Octave_map. + * sighandlers.cc (make_sig_struct, FSIG): Likewise. + + * utils.cc (decode_subscripts): Use octave_map instead of Octave_map. + * octave.cc (F__version_info__): Likewise. + * pt-eval.cc (visit_complex_for_command): Likewise. + * pt-idx.cc (tree_index_expression::lvalue): Likewise. + + 2010-09-30 John W. Eaton + + * DLD-FUNCTIONS/gcd.cc: Style fixes. + + 2010-09-30 John W. Eaton + + * oct-errno.cc.in (octave_errno::do_list, octave_errno::list): + Use octave_scalar_map instead of Octave_map. + + 2010-09-30 Jordi Gutiérrez Hermoso + + * DLD-FUNCTIONS/gcd.cc (divide): New function, complex integer + division with remainder. + (simple_gcd): Overload for complex values. + (extended_gcd): Ditto. + (do_simple_gcd): Dispatch for complex gcd. + (do_extended_gcd): Ditto. + (Fgcd): Mention that complex gcd is now also possible. + + 2010-09-30 Jordi Gutiérrez Hermoso + + * DLD-FUNCTIONS/gcd.cc (extended_gcd): Fix bug that didn't + distinguish the two output coefficients. + (Fgcd): Fix off-by-one bug and typo from copy-pasted code. + + 2010-09-30 Jaroslav Hajek + + * oct-parse.yy (Fautoload): Replace Octave_map by octave_map. + * ov-fcn-handle.cc (Ffunctions): Replace Octave_map by + octave_scalar_map. + + 2010-09-30 Jaroslav Hajek + + * help.cc (F__which__): Use octave_map instead of Octave_map. + * load-save.cc (do_load, save_fields, save_vars): Use + octave_scalar_map instead of Octave_map. + + 2010-09-30 Jaroslav Hajek + + * debug.cc (Fdbstatus, Fdbstack): Use octave_map instead of + Octave_map. + * error.cc (warning_options, initialize_warning_options, + pr_where, Frethrow, Ferror, Fwarning, Flasterror): Use + octave_scalar_map or octave_map instead of Octave_map. + + 2010-09-30 Jaroslav Hajek + + * oct-errno.cc (octave_errno::list, octave_errno::do_list): Use + octave_scalar_map instead of Octave_map. + * oct-errno.h: Update decls. + + 2010-09-30 Jaroslav Hajek + + * pt-idx.cc (tree_index_expression::make_arg_struct): Use octave_map + instead of Octave_map. + * pt-idx.h: Update decl. + + 2010-09-29 Jaroslav Hajek + + * oct-map.cc (octave_map::contents): Fix off-by-1 error. + + 2010-09-29 John W. Eaton + + * DLD-FUNCTIONS/__glpk__.cc (OCTAVE_GLPK_GET_REAL_PARAM, + OCTAVE_GLPK_GET_INT_PARAM): Use GETFIELD to access map fields, + not CONTENTS. + * DLD-FUNCTIONS/amd.cc (Famd): Likewise. + * DLD-FUNCTIONS/luinc.cc (Fluinc): Likewise. + + 2010-09-29 John W. Eaton + + * DLD-FUNCTIONS/urlwrite.cc (F__ftp_dir__): Use octave_scalar_map + instead of Octave_map. + + 2010-09-29 John W. Eaton + + * DLD-FUNCTIONS/luinc.cc (Fluinc): Use octave_scalar_map + instead of Octave_map. + + 2010-09-29 John W. Eaton + + * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Use octave_scalar_map + instead of Octave_map. Use scalar values where appropriate in + call to glpk. + (OCTAVE_GLPK_GET_REAL_PARAM, OCTAVE_GLPK_GET_INT_PARAM): + Update for octave_scalar_map. + + 2010-09-29 John W. Eaton + + * DLD-FUNCTIONS/amd.cc (Famd): Use octave_scalar_map instead of + Octave_map. + * DLD-FUNCTIONS/cellfun.cc (get_output_list): Likewise. + + 2010-09-29 John W. Eaton + + * DLD-FUNCTIONS/dispatch.cc (Fdispatch): Use octave_scalar_map + instead of Octave_map. + * DLD-FUNCTIONS/fltk_backend.cc (plot_window::handle): Likewise. + * DLD-FUNCTIONS/regexp.cc (octregexp): Likewise. + + 2010-09-29 John W. Eaton + + * DLD-FUNCTIONS/eigs.cc (Feigs): Use octave_scalar_map instead + of Octave_map. + + 2010-09-29 John W. Eaton + + * DLD-FUNCTIONS/getpwent.cc (mk_pw_map): Use octave_scalar_map + instead of Octave_map. + * DLD-FUNCTIONS/getgrent.cc (mk_gr_map): Likewise. + * DLD-FUNCTIONS/getrusage.cc (Fgetrusage): Likewise. + + 2010-09-29 John W. Eaton + + * DLD-FUNCTIONS/time.cc (intfield, stringfield): New functions. + (mk_tm_map, extract_tm): Arg is now octave_scalar_map instead of + Octave_map. + (extract_tm): Use local intfield and setfield functions. + (Fmktime, Fstrftime): Use octave_scalar_map instead of Octave_map. + + 2010-09-28 John W. Eaton + + * Cell.h, Cell.cc (Cell::Cell (const std::list&)): + New constructor. + + 2010-09-28 John P. Swensen + + * DLD-FUNCTIONS/__magick_read__.cc (maybe_initialize_magick): + Warn on initialization of *Magick if QuantumDepth is less than 32. + + 2010-09-28 John P. Swensen + + * DLD-FUNCTIONS/__magick_read__.cc (F__magick_format_list__): + New function. + + 2010-09-28 John P. Swensen + + * DLD-FUNCTIONS/__magick_read__.cc (encode_uint_image) + (encode_bool_image): Ensure bit depth encoding is correct for + logical, uint8, and uint16 images. + + 2010-09-28 Jaroslav Hajek + + * xpow.cc (xpow (double, const Matrix&)): Ensure real result for + positive base. + (xpow (double, const Matrix&)): Likewise. + + 2010-09-28 Jaroslav Hajek + + * error.cc (interpreter_try): New function. + * error.h: Declare it. + * ov-fcn-handle.cc (octave_fcn_binder::maybe_binder): Use it here. + * variables.cc (safe_symbol_lookup): Also here. + + 2010-09-27 John W. Eaton + + * gl-render.cc (opengl_renderer::draw_axes): Reverse order in + which child objects are processed. + + 2010-09-26 Rik + + * load-path.cc: Use single quotes for regex when possible. + * DLD-FUNCTIONS/regexp.cc (regexp): Update docstring to highlight + differences between POSIX and PCRE regex. + + 2010-09-26 Rik + + * load-path.cc: Use single quotes for regular expression patterns when + possible. + + 2010-09-26 Rik + + * DLD-FUNCTIONS/regexp.cc (regexp, regexprep, regexpi): Update + docstrings to more fully explain PCRE. Modify advanced tests to run + only run when PCRE is present. + + 2010-09-25 John W. Eaton + + * toplev.cc (Fquit): Allow any number of output parameters. + + 2010-09-25 Jaroslav Hajek + + * DLD-FUNCTIONS/gcd.cc (Fgcd): Rewrite. Use more efficient code. + Specialize for simple/extended Euclid. Handle integer arguments. + + 2010-09-24 Rik + + * DLD-FUNCTIONS/regexp.cc (regexp, regexprep): Update docstring to + discuss limits when not compiled with PCRE. + + 2010-09-23 John W. Eaton + + * Makefile.am (ALL_DEF_FILES): New variable. + (DEF_FILES): Don't include $(DLD_DYNAMIC_DEF_FILES) in the list. + (DEF_FILES DLD_DYNAMIC_DEF_FILES): Fix dependency info. + (doc-files): Depend on $(ALL_DEF_FILES), not $(DEF_FILES). + + 2010-09-22 Jaroslav Hajek + + * xpow.cc (elem_xpow (float, const NDArray&), + elem_xpow (float, const FloatNDArray&)): Use simpler tests. + + 2010-09-21 John W. Eaton + + * oct-stream.h (octave_base_stream::file_number): Return 0, 1, + and 2 for named stdin, stdout, and stderr streams; -1 otherwise. + + 2010-09-21 John W. Eaton + + * syscalls.cc (Fgethostname): New function. + + 2010-09-20 John W. Eaton + + * DLD-FUNCTIONS/time.cc (Fmktime): New tests (bug #31079). + + 2010-09-20 John W. Eaton + + Bug #31085: + + * file-io.cc (do_stream_open): Use fopen, fileno, and gzdopen + instead of gzopen. Pass integer file id to + octave_zstdiostream::create. + + * oct-stdstrm.h (class octave_base_tstdiostream): Rename from + octave_tstdiostream. + (octave_tstdiostream::fnum): New data member. + (octave_tstdiostream::file_number): New member function. + (octave_tstdiostream::octave_tstdiostream): New arg, FID. + (octave_tstdiostream::create): Delete. + (class octave_stdiostream, class octave_zstdiostream): New + non-template classes derived from octave_tstdiostream to replace + typedefs. + + * oct-stream.h (octave_base_stream::file_number): Now virtual + and const. Return -1 in defaault implementation. + + 2010-09-20 John W. Eaton + + * DLD-FUNCTIONS/regexp.cc (octregexp_list) [HAVE_PCRE]: + Break from search loop if idx is at or beyond end of buffer + (bug #31056). + + 2010-09-19 Ben Abbott + + * graphics.h.in: Add displayname property to patch and surface objects. + + 2010-09-18 David Bateman + + * graphics.h.in: Remove properties for dead legend code. + + 2010-09-18 Ben Abbott + + * graphics.cc: Replace pagetype property value custom with . + + 2010-09-16 David Bateman + + * graphics.cc (static Matrix screen_size_pixels (void), static Matrix + papersize_from_type (const caseless_str, const caseless_str))): New + functions. + (void figure::properties::set_paperunits (const octave_value&), + void figure::properties::set_papertype (const octave_value&), + void figure::properties::update_paperunits (const caseless_str&)) + void figure::properties::update_papertype (void), + void figure::properties::update_papersize (void), + void figure::properties::update_units (const caseless_str&)): New + methods of the figure class. + (void axes::properties::set_units (const octave_value&), + void axes::properties::update_units (const caseless_str&), + void axes::properties::set_fontunits (const octave_value&), + void axes::properties::update_fontunits (const caseless_str&)): + New methods of the axes class. + * graphics.h.in (void figure::properties::update_paperunits + (const caseless_str&), void figure::properties::update_units + (const caseless_str&)): Declaration of new figure methods. + (void figure::properties::update_paperunits (const caseless_str&), + void figure::properties::update_units (const caseless_str&)): + Declaration of new axes methods. + + 2010-09-16 John P. Swensen + + * DLD-FUNCTIONS/))magick_read__.cc (write_image): Remove + unnecessary for loop to set image format. + + 2010-09-16 John W. Eaton + + * DLD-FUNCTIONS/svd.cc (Fsvd): Delete assert to avoid + "comparison is always false due to limited range of data type" + warning from GCC. + + * utils.cc (octave_vsnprintf): Declare nchars volatile to avoid + GCC warning. + + * pr-output.cc (octave_print_internal): Avoid uninitialized + variable warning from GCC. + + 2010-09-16 John Swensen + + * DLD-FUNCTIONS/__magick_read__.cc (write_image): Allow + arbitrary extensions with format specifier. + + 2010-09-15 John W. Eaton + + * load-path.cc (Faddpath, Frmpath): Document path arguments. + + 2010-09-15 John Swensen + + * DLD-FUNCTIONS/__magick_read__.cc (write_image): Allow writing + arbitrary image types to filenames without an extension (bug #30784). + + 2010-09-14 John W. Eaton + + * variables.cc (symbol_exist): If looking for any type of file + or "file", return 7 for directories and 2 for all other types of + files. + + 2010-09-14 John W. Eaton + + * graphics.h.in (base_graphics_backend::initialize): Rename + from base_graphics_backend::object_created. Change all uses. + (base_graphics_backend::finalize): Rename from + base_graphics_backend::object_destoyed. Change all uses. + (base_graphics_backend::update): Rename from + base_graphics_backend::property_changed. Change all uses. + + 2010-09-14 John W. Eaton + + * DLD-FUNCTIONS/fltk_backend.cc (fltk_backend::object_destroyed): + Don't attempt to delete window if __plot_stream__ is empty. + + 2010-09-14 Jordi Gutiérrez Hermoso + + * load-path.cc (genpath): Pass SKIP in recursive call. + (Fgenpath): Accept list of directories to skip. + + 2010-09-14 John W. Eaton + + * oct-stream.cc (BEGIN_CHAR_CLASS_CONVERSION): If we hit EOF but + have found a match, clear the stream state (bug # 30997). + + 2010-09-13 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Remove subsref optimization. + + 2010-09-13 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc (Fcellindexmat): New DEFUN. + + 2010-09-12 Jaroslav Hajek + + * ov-fcn-handle.cc (octave_fcn_binder::maybe_binder): Stash name tags + in the template. + (octave_fcn_binder::do_multi_index_op): Don't use xelem to ensure + proper unsharing. Make a shallow copy prior to call to ensure + consistency throughout recursive calls. + + 2010-09-11 Jaroslav Hajek + + * ov-fcn-handle.h (octave_fcn_binder): New subclass. + * ov-fcn-handle.cc: Define methods. + * pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue1): Call + octave_fcn_binder::maybe_binder. + + 2010-09-11 John W. Eaton + + * pt-misc.cc (tree_parameter_list::initialize_undefined_elements): + Avoid GCC shadow variable warning. + + 2010-09-11 John W. Eaton + + * load-path.cc (Faddpath): Adjust value of nargin if numeric + option is found (bug #31001). + + 2010-09-09 Shai Ayal + + * gl2ps-renderer.cc: Renders to a previously opened fid. + * gl2ps-renderer.h: Ditto. + * DLD-FUNCTIONS/fltk_backend.cc: print now accepts fid instead + of filename to use with above change + + 2010-09-07 Jaroslav Hajek + + * DLD-FUNCTIONS/__magick_read__.cc (maybe_initialize_magick): New + helper function. Move initialization code & static variable here. + (F__magick_read__, F__magick_write__, F__magick_finfo__): Call it + here. + + 2010-09-03 Jaroslav Hajek + + * DLD-FUNCTIONS/cquad.cc: New source, courtesy by Pedro Gonnet. + * DLD-FUNCTIONS/module-files: Update. + + 2010-09-01 Marco Caliari + + * graphics.cc: Fix axes limits underflow to zero for logscale. + + 2010-09-01 Jaroslav Hajek + + * pt-mat.cc (single_type_concat (Array&, ...)): Optimize all + scalars case. + + 2010-09-01 Jaroslav Hajek + + * oct-map.cc (octave_map::cat): Search first for an index with + nonzero nfields and use it for comparisons. + (permute_to_correct_order1): New overloaded helper func. + (permute_to_correct_order): use it here. Pass the index here. + * pt-mat.cc (single_type_concat): Don't subst 0x0 for all empty + arrays. Use the respective cat() capability instead. + + 2010-09-01 Jaroslav Hajek + + * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Support "emptyvalue" option. + Fix condition for terminating read. + + 2010-08-31 Jaroslav Hajek + + * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Support reading from a file ID. + + 2010-08-31 Jaroslav Hajek + + * ov-class.cc (get_current_method_class): Make it an octave_class + method. Return class_name as default. + (octave_class::dotref): Error on zero return value. + + 2010-08-30 Ben Abbott + + * gl-render.cc: Matlab compatible markers for the OpenGL. + + 2010-08-30 John W. Eaton + + * graphics.cc (convert_cdata_1, convert_cdata_2): New functions. + (convert_cdata): Use them to avoid converting all elements of + cdata to double at once. + * graphics.h.in (surface::properties::init): Constrain cdata and + alphadata to be single, double, or uint8. + + 2010-08-30 Jaroslav Hajek + + * graphics.cc (convert_cdata): Avoid extracting pointer to temporary + copy. + + 2010-08-30 John W. Eaton + + * graphics.cc (convert_cdata): Allow cdata to be any type that + can be converted to double. + * graphics.h.in (surface::properties::init): Remove constraints + on cdata and alphadata. + + 2010-08-27 Jordi Gutiérrez Hermoso + + * graphics.cc (axes::properties::rotate_view): Don't rotate past + the top and bottom. + (axes::properties::update_camera): Fix the view when rotating to + the bottom. + (calc_dimensions): New static function. + (F__calc_dimensions__) New defun to replace m-script function. + * graphics.h.in (calc_dimension): Provide decl. + * DLD-FUNCTIONS/fltk_backend.cc (plot_window::plot_window): + Use calc_dimensions to decide whether the current figure should + be rotated. + (plot_window::mark_modified) Recompute the number of dimensions. + Deactivate rotation if necessary. + (plot_window::ndim) New data member. + (plot_window::button_press, plot_window::handle): Only turn on + rotation if ndim == 3. + + 2010-08-24 David Bateman + + * ls-mat5.cc (static void read_mat5_binary_data (std::istream&, + float *, octave_idx_type, bool, mat5_data_type, + oct_mach_info::float_format)) : New function + (std::string read_mat5_binary_element (std::istream&, + const std::string&, bool, bool&, octave_value&)): Treat + MAT_FILE_SINGLE_CLASS as single precision rather than convert to + double precision. + (static void write_mat5_array (std::ostream&, const FloatNDArray&, + bool), int save_mat5_array_length (const float*, octave_idx_type, + bool), int save_mat5_array_length (const FloatComplex*, + octave_idx_type, bool)): New functions. + (int save_mat5_element_length (const octave_value&, + const std::string&, bool save_as_floats, bool), bool + save_mat5_binary_element (std::ostream&, const octave_value&, + const std::string&, bool, bool, bool, bool)): Treat + MAT_FILE_SINGLE_CLASS as single precision rather than convert to + double precision. + + 2010-08-23 John W. Eaton + + * load-path.cc (load_path::dir_info::initialize): Clear + method_file_map before updating file list. + * load-path.cc (load_path::load_path): Explicitly initialize + private_fcn_map. + + 2010-08-17 Rik + + * mappers.cc (gamma,lgamma): Add %!tests for negative integer + input arguments. + + 2010-08-17 Rik + + * bitfcns.cc (bitmax): Add additional calling argument, class, and + additional return value for bitmax("single"). + + 2010-08-17 Rik + + * bitfcns.cc (sizemax): Improve documentation string. + + 2010-08-16 Ben Abbott + + * gl2ps.c: Use upstream version gl2ps-1.3.5-svn-20100816. + + 2010-08-13 Rik + + * toplev.c (do_goto_frame_relative): Remove unused variable c. + + 2010-08-13 Jaroslav Hajek + + * ov-builtin.cc + (octave_builtin::subsref (..., const std::list *) + octave_builtin::do_multi_index_op (..., const std::list *)): + New methods. Move code here. Set curr_lvalue_list. + (octave_builtin::curr_lvalue_list): New static member. + * ov-fcn-handle.h: Declare them. + * defun.cc (defun_isargout): New overloaded function. + * defun-int.h: Declare it. + + 2010-08-11 Jaroslav Hajek + + * ov-lazy-idx.h (octave_lazy_index::subsasgn): Remove override. Leave + it to the defualt numeric conversion mechanism. + + 2010-08-10 Jaroslav Hajek + + * data.cc (Fdiff): Allow logical type. + + 2010-08-09 Rik + + * oct-parse.yy (parse_fcn_file): Restore parsing of help text + accidentally lost in previous changeset. + + 2010-08-09 John W. Eaton + + * oct-parse.yy (parse_fcn_file): Handle empty script files + (bug #30588). + + 2010-08-09 Jaroslav Hajek + + * ov.cc (octave_value::assign (assign_op, const std::string&, + const std::list&, const octave_value&): + Don't attempt to fix struct assignment to non-struct values here. + Check for successful assignment before overwriting this. + + * ov-cell.cc (octave_cell::subsasgn): Allow dot assignment into empty + cell. + + 2010-08-08 Rik + + * DLD-FUNCTIONS/config-module.awk: Add newlines to divide blocks + in generated modules.mk and improve readability. + + 2010-08-08 Rik + + * Makefile.am: Create .DOCSTRINGS quietly and avoid screen clutter + during build. + + 2010-08-08 Rik + + * Makefile.am: Run do_subst macro quietly without cluttering screen + during build. + + 2010-08-08 Shai Ayal + + * DLD-FUNCTIONS/fltk_backend.cc + (base_graphics_backend::print_figure): Add a redraw to get the + thing going. + + 2010-08-05 Shai Ayal + + * gl2ps-renderer.cc (draw): Add support for more terminal types. + * DLD-FUNCTIONS/fltk_backend.cc: Likewise. + + 2010-08-04 John W. Eaton + + * mex.cc (mxArray_number (const char *)): Create empty string if + given NULL arg (bug #30639). Create 0x0 string array if given + an empty string argument, not 1x0. + + 2010-08-03 Jaroslav Hajek + + * OPERATORS/op-str-str.cc: Fix assignment operator. + * OPERATORS/op-str-s.cc: Likewise. + * OPERATORS/op-str-m.cc: Likewise. + + 2010-08-03 Jaroslav Hajek + + * ov-fcn-handle.cc + (octave_value::subsref (..., const std::list *) + octave_value::do_multi_index_op (..., const std::list *)): + New methods. Move code here. + * ov-fcn-handle.h: Declare them. + + 2010-08-03 Jaroslav Hajek + + * ov-usr-fcn.cc (Fis_ignored_output): Rename to Fisargout. Change the + behavior to indicate not ignored outputs. + + 2010-08-01 Rik + + * DLD-FUNCTIONS/amd.cc, DLD-FUNCTIONS/balance.cc, + DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc, + DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc, + DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/daspk.cc, + DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dot.cc, DLD-FUNCTIONS/eigs.cc, + DLD-FUNCTIONS/fftw.cc, DLD-FUNCTIONS/filter.cc, + DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/lu.cc, + DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/onCleanup.cc, + DLD-FUNCTIONS/qr.cc, DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/regexp.cc, + DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/str2double.cc, + DLD-FUNCTIONS/tril.cc, DLD-FUNCTIONS/typecast.cc, data.cc, graphics.cc, + load-save.cc, ov-null-mat.cc, ov-struct.cc, ov-usr-fcn.cc, + pr-output.cc, strfns.cc, variables.cc: Grammarcheck documentation. + Add @noindent lines and ensure line length is less than 80. + + 2010-07-31 Rik + + * DLD-FUNCTIONS/__magick_read__.cc, DLD-FUNCTIONS/__voronoi__.cc, + DLD-FUNCTIONS/amd.cc, DLD-FUNCTIONS/balance.cc, + DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc, + DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc, + DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/conv2.cc, + DLD-FUNCTIONS/convhulln.cc, DLD-FUNCTIONS/daspk.cc, + DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dassl.cc, + DLD-FUNCTIONS/dmperm.cc, DLD-FUNCTIONS/dot.cc, DLD-FUNCTIONS/eigs.cc, + DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw.cc, DLD-FUNCTIONS/filter.cc, + DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/gcd.cc, + DLD-FUNCTIONS/getrusage.cc, DLD-FUNCTIONS/givens.cc, + DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/hex2num.cc, DLD-FUNCTIONS/inv.cc, + DLD-FUNCTIONS/kron.cc, DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc, + DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/luinc.cc, + DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/max.cc, + DLD-FUNCTIONS/md5sum.cc, DLD-FUNCTIONS/onCleanup.cc, + DLD-FUNCTIONS/qr.cc, DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/qz.cc, + DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/schur.cc, + DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/spparms.cc, + DLD-FUNCTIONS/str2double.cc, DLD-FUNCTIONS/strfind.cc, + DLD-FUNCTIONS/sub2ind.cc, DLD-FUNCTIONS/svd.cc, DLD-FUNCTIONS/syl.cc, + DLD-FUNCTIONS/symbfact.cc, DLD-FUNCTIONS/time.cc, + DLD-FUNCTIONS/tril.cc, DLD-FUNCTIONS/typecast.cc, + DLD-FUNCTIONS/urlwrite.cc, bitfcns.cc, data.cc, debug.cc, defaults.cc, + dirfns.cc, error.cc, file-io.cc, graphics.cc, help.cc, input.cc, + load-path.cc, load-save.cc, ls-oct-ascii.cc, mappers.cc, oct-hist.cc, + octave.cc, ov-base.cc, ov-cell.cc, ov-class.cc, ov-fcn-handle.cc, + ov-fcn-inline.cc, ov-null-mat.cc, ov-range.cc, ov-struct.cc, + ov-usr-fcn.cc, pager.cc, pr-output.cc, pt-eval.cc, pt-mat.cc, + sighandlers.cc, strfns.cc, symtab.cc, syscalls.cc, sysdep.cc, + toplev.cc, utils.cc, variables.cc: Grammarcheck .cc files + + 2010-07-30 John W. Eaton + + * debug.cc (Fdbstack): Improve display. + + * toplev.cc (octave_call_stack::do_goto_frame_relative): + Improve message. Don't display column number. + + * debug.cc (get_file_line): Don't allow eol to be less than bol. + (Fdbwhere): Improve message. Don't display column number. + (Fdbstack): Omit column number from display. + + * pt-eval.cc (tree_evaluator::visit_statement): Don't call + octave_call_stack::set_statement for commands issued while + debugging. + + 2010-07-30 John W. Eaton + + * pt-bp.cc (tree_breakpoint::take_action): Only call + delete_breakpoint if is_breakpoint returns true. + (tree_breakpoint::visit_statement): If statement is command, + accept it, otherwise, maybe take action on the statement. + (tree_breakpoint::visit_no_op_command): Handle breakpoints at + end of function. + Addresses more problems found with bug #30490. + + 2010-07-30 Rik + + * Makefile.am: add .DOCSTRINGS to the DISTCLEANFILES list + + 2010-07-30 John W. Eaton + + * pt-eval.cc (tree_evaluator::visit_if_command, + tree_evaluator::visit_switch_command): Also process breakpoints + for the command (bug #30490). + + 2010-07-29 Ben Abbott + + * gl-render.cc: Transpose markers '^' and 'v'. + + 2010-07-29 John W. Eaton + + * pt-bp.cc (tree_breakpoint::visit_if_command): Also allow + breakpoint to be set on command, same as for switch, while, or + do-until statments. + * pt-select.h, pt-select.cc (tree_if_command::set_breakpoint, + tree_if_command::delete_breakpoint, tree_switch_command::set_breakpoint, + tree_switch_command::delete_breakpoint): Delete functions and decls. + (bug #30490). + + 2010-07-29 Jaroslav Hajek + + * ov.cc (octave_value::subsref (..., const std::list *) + octave_value::do_multi_index_op (..., const std::list *)): + New methods. + * ov.h: Declare them. + * ov-base.cc (octave_base_value::subsref (..., const std::list *) + octave_base_value::do_multi_index_op (..., const std::list *)): + New methods. + * ov-base.h: Declare them. + * ov-usr-fcn.cc (octave_user_function::subsref (..., const std::list *) + octave_user_function::do_multi_index_op (..., const std::list *)): + New virtual method overrides. Move code here. + (octave_user_function::bind_automatic_vars): Add lvalue_list + parameter. Bind automatic variable ".ignored.". + (Fis_ignored_output): New defun. + * ov-usr-fcn.h: Update decls. + * pt-misc.cc (tree_parameter_list::initialize_undefined_elements): + Skip warning if outputs are ignored. + * pt-exp.cc (tree_expression::rvalue (..., const + std::list *)): New method overload. + * pt-exp.h: Declare it. + * pt-idx.cc (tree_index_expression::rvalue (..., const + std::list *)): New method override. Move code here. + * pt-idx.h: Declare it. + * pt-assign.cc (tree_multi_assignment::rvalue): Pass in the pointer to + lvalue_list. + + 2010-07-28 John W. Eaton + + * DLD-FUNCTIONS/find.cc (Ffind): Reorder cases to check for + character strings before numeric arrays. + Delete explicit instantiations of find_nonzero_elem_idx templates. + New test for char array argument. + + 2010-07-27 Rik + + * DLD-FUNCTIONS/schur.cc (rsf2csf): Change first documentation line to + active voice. + + 2010-07-27 Jaroslav Hajek + + * DLD-FUNCTIONS/schur.cc (Frsf2csf): New DEFUN. + + 2010-07-23 Jaroslav Hajek + + * ov-base-scalar.cc (octave_base_scalar::diag): Implement here. Fix. + * ov-base-scalar.h: Only declare here. + + 2010-07-23 Jaroslav Hajek + + * ov-re-diag.cc (octave_diag_matrix::try_narrowing_conversion): Remove + redundant cast. + * ov-flt-re-diag.cc + (octave_float_diag_matrix::try_narrowing_conversion): Ditto. + * ov-cx-diag.cc + (octave_complex_diag_matrix::try_narrowing_conversion): Ditto. + * ov-flt-cx-diag.cc + (octave_float_complex_diag_matrix::try_narrowing_conversion): Ditto. + + 2010-07-23 Jaroslav Hajek + + * pt-mat.cc (do_single_type_concat_no_mutate): Remove. + (tree_matrix::rvalue1): Use do_single_type_concat instead. + + 2010-07-21 Jaroslav Hajek + + * bitfcns.cc (Fsizemax): New DEFUN. + + 2010-07-20 Shai Ayal + + * DLD-FUNCTIONS/fltk_backend.cc (plot_window::plot_window): + Added a bottom Fl_Box (copied from gmsh) and tooltips + + 2010-07-20 Rik + + * DLD-FUNCTIONS/typecast.cc (typecast): Combine two @seealso macro + uses to one. + + 2010-07-20 Jaroslav Hajek + + * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Use octave_idx_type instead of + unsigned long. Over-allocate by a factor 2 to reduce copying. + Attempt to estimate number of columns from first line. + Hoist tmp_stream out of the loop and reset it for each substring. + + 2010-07-17 Rik + + * data.cc (repelems): Add more documentation about new function. + + 2010-07-19 Jaroslav Hajek + + * data.cc (do_repelems): New helper func. + (Frepelems): New DEFUN. + + 2010-07-19 John W. Eaton + + * DLD-FUNCTIONS/fltk_backend.cc (plot_window::gui_mode): + Use enum instead of int. Change all uses. + + 2010-07-18 Kai Habel + + * DLD-FUNCTIONS/fltk_backend.cc: Add mode for mouse rotation. + (view2status): new function + * graphics.cc: Remove limitations for zooming and translation. + (axes::properties::rotate_view): new function + + 2010-07-17 Rik + + * DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/ccolamd.cc, + DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/dasrt.cc, + DLD-FUNCTIONS/dmperm.cc, DLD-FUNCTIONS/eigs.cc, DLD-FUNCTIONS/qz.cc, + DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/sparse.cc, + DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/symrcm.cc, dirfns.cc, + file-io.cc, syscalls.cc: Spellcheck documentation + + 2010-07-08 Rik + + * DLD_FUNCTIONS/rand.cc: Correct typo in rande documentation. + (bug #30446). + + 2010-07-13 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc (mat2cell_mismatch, prepare_idx, + do_mat2cell_2d, do_mat2cell_nd, do_mat2cell): New helper funcs. + (Fmat2cell): Use them here. + + 2010-07-13 Jaroslav Hajek + + * data.cc (do_sparse_diff): Use typecasts where needed. + + 2010-07-12 Jaroslav Hajek + + * DLD-FUNCTIONS/rand.cc (do_rand): Pass the distribution name as an + argument. Ensure restoration using unwind_protect. + (Frand, Frandn, Frandg, Frandp, Frande): Update. + + 2010-07-12 Jaroslav Hajek + + * unwind-prot.h (unwind_protect::fcn_crefarg_elem): New class. + (unwind_protect::add_fcn (void (*) (const T&), T)): New method + overload. + + 2010-07-08 David Bateman + + * DLD-FUNCTIONS/__magick_read__,cc (F__magick_read__): Add the syntax + __magick_read__ ("file", "frames", "all"). + + 2010-07-08 Rik + + * DLD_FUNCTIONS/eigs.cc: Initialize random number generator in test + blocks to get reproducible results. + + 2010-07-08 Jaroslav Hajek + + * ov-cell.cc (Fstruct2cell): Use octave_map. Optimize. + + 2010-07-07 Rik + + * pr-output.cc (calc_scale_exp): Avoid use of % operator on negative + operands for portability between C++ compilers. + (engineering_exponent): Avoid use of % operator. Keep calculation of + exponent within pr_engineering_float class. (encapsulation). + (num_digits): Rename from calc_digits. Return true number of digits = + 1 + calc_digits. + (calc_scale_exp): Rename from maybe_mod3 for readability. + (operator << (... pr_engineering_float pef): Use pef abbreviation for + pr_engineering_float. + + 2010-07-07 David Bateman + + * graphics.h.in (axes): Add hidden property __hold_all. + + 2010-07-07 Jaroslav Hajek + + * ov-class.h (octave_class::map): Turn to octave_map. + * ov-class.cc (octave_class): Update methods. + * ov-base.h, ov-base.cc (octave_base_value::old_map_value) : Remove. + * ov.h, ov.cc (octave_value::old_map_value) : Remove. + + 2010-07-06 David Bateman + + * pr-output.cc (static bool print_eng): Flag engineering format, + (float_format::float_format (int, int, int, int)): New constructor. + (int float_format::ex): New field in the class. + (static int maybe_mod3 (const int&), static int + engineering_exponent (const double&), + static int calc_digits (const double&)): New functions + (class pr_engineering_float): New class + (std::ostream& operator << (std::ostream&, + const pr_formatted_float&)): New operator. Make it a friend of the + float_format class. + (static void set_real_format(...), + static void set_real_matrix_format (...), + static void set_complex_format(...), + static void set_complex_matrix_format (...), + static void set_range_format (...)): Set width for engineering format. + (static void set_format (...)): Call calc_digits to find the number + of digits in a value. + (static void pr_any_float (const float_format *, std::ostream&, + double, int)): Print engineering formats. + (static void init_format_state (void)): Set default state of print_eng. + (static void set_format_style (int, const string_vector&)): Parse + the "eng" argument. + (Fformat): Document the new engineering format. + + 2010-07-04 Soren Hauberg + + * DLD_FUNCTIONS/__magick_read__.cc: restore locale after + GraphicsMagick initialisation. + + 2010-07-02 Jaroslav Hajek + + * toplev.cc (octave_call_stack::do_backtrace): Use static + octave_fields struct. + (octave_call_stack::empty_backtrace): New static method. + * toplev.h: Declare it. + * error.cc (Vlast_error_stack, initialize_last_error_stack, + Frethrow): Use octave_map or octave_scalar_map where applicable. + + 2010-07-02 Jaroslav Hajek + + * pt-mat.cc (tm_row_const::tm_row_const_rep::all_1x1, + tm_cont::all_1x1): New member fields. + (tm_row_const::tm_row_const_rep::init, tm_const::init): + Handle them here. + (tm_row_const::all_1x1_p, tm_const::all_1x1_p): New methods. + (single_type_concat (octave_map&, ...)): New template + overload. + (do_single_type_concat): New template specialization. + (tree_matrix::rvalue1): Specialize for cell and struct classes. + * oct-map.cc (octave_map::do_cat (..., const octave_map *, ...)): + Assign result dimensions. + + 2010-07-02 Jaroslav Hajek + + * oct-map.cc (octave_map::cat (..., const octave_scalar_map *)): + Handle special dims (-1, -2). + * data.cc (do_single_type_concat_map): Don't handle them here. + + 2010-07-01 Jaroslav Hajek + + * syscalls.cc (mk_stat_map, Funame): Use octave_scalar_map. + + 2010-07-01 Jaroslav Hajek + + * oct-map.h (octave_scalar_map::assign (const std::string&, const + octave_value&), octave_map::assign (const std::string&, const Cell&)): + Backward-compatible aliases for setfield. + + 2010-07-01 Jaroslav Hajek + + * oct-map.cc (octave_fields::equal_up_to_order (const octave_fields&, + octave_idx_type *)): New overload. + (octave_fields::equal_up_to_order (const octave_fields&, + Array&)): Use it here. + (octave_map::fast_elem_insert, + octave_map::fast_elem_extract): New methods. + * oct-map.h: Update decls. + * ov-struct.cc (octave_struct::fast_elem_extract, + octave_struct::fast_elem_insert, + octave_scalar_struct::fast_elem_insert_self): New methods. + * ov-struct.h: Update decls. + + 2010-06-28 Jaroslav Hajek + + * data.cc (single_type_concat): Optimize all scalars case where + applicable. + (single_type_concat_map, do_single_type_concat_map): New funcs. + * pt-mat.cc (get_concat_class): Handle cell and struct concats. + + + 2010-06-25 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc (Fnum2cell, do_num2cell): Optimize cells + and structs. + + 2010-06-25 Jaroslav Hajek + + * ov-struct.h (octave_scalar_struct::resize, octave_struct::resize): + Don't ignore fill argument. + + 2010-06-25 Jaroslav Hajek + + * oct-map.h (octave_map::octave_map (const dim_vector&, const + octave_fields&)): New internal ctor. + + * oct-map.cc (octave_map::assign): Handle no fields case. + + 2010-06-25 Jaroslav Hajek + + * ov-struct.cc (Fcell2struct): Rewrite. + + 2010-06-30 Jaroslav Hajek + + * ov-range.cc (octave_range::save_ascii): Save length rather than + limit when inc is zero. Adjust comment. + (octave_range::save_binary, octave_range::save_hdf5): Ditto. + (octave_range::load_ascii): Assume limit is length when increment is + zero. + (octave_range::load_binary, octave_range::load_hdf5): Ditto. + + + 2010-06-25 John W. Eaton + + * graphics.cc (reset_default_properties): New static function. + (root_figure::reset_default_properties, + figure::reset_default_properties, axes::reset_default_properties): + Use it to avoid duplicated code. + + 2010-06-24 Rik + + * octave.cc: Add [FILE] to octave usage string (bug #30258). + + 2010-06-24 Jaroslav Hajek + + * oct-map.h (octave_map, octave_scalar_map): New classes. + * oct-map.cc (octave_map, octave_scalar_map): Implement them. + (Octave_map::Octave_map (const octave_map&)): New ctor. + * ov-struct.h (octave_struct): Use octave_map for storage. + (octave_scalar_struct): New class. + * ov-struct.cc: Update implementations. + * ov-base.h (octave_base_value::old_map_value): New method. + (octave_base_value::map_value): Return octave_map. + (octave_base_value::scalar_map_value): New method. + * ov-base.cc (octave_base_value::old_map_value, + octave_base_value::map_value, octave_base_value::scalar_map_value): + Add default implementations. + * ov-class.h (octave_class::old_map_value): New override. + * ov-class.cc: Use old_map_value for efficiency. + + 2010-06-23 David Bateman + + * graphics.cc (void root_figure::reset_default_properties (void), + void figure::reset_default_properties (void), + void figure::reset_default_properties (void), + Freset): New functions. + * graphics.h.in (void graphics_object:reset_default_properies (void), + virtual void base_graphics_object:reset_default_properies (void)): + New functions. + (void root_figure::reset_default_properties (void), + void figure::reset_default_properties (void), + void figure::reset_default_properties (void)): Declarations. + (std::string color_property::values_as_string (void) const, + Cell color_property::values_as_cell (void) const): New functions. + + 2010-06-21 Rik + + * DLD-FUNCTIONS/dlmread.cc: Fix spreadsheet style range option. + (bug #30183). + + 2010-06-21 David Bateman + + * graphics.cc (std::string radio_values:values_as_string (void) + const, Cell radio_values:values_as_cell (void) const): New functions. + (void graphics_object::set (const octave_value_list&)): Throw error + with no arguments. + (std::string base_graphics_object::values_as_string (void), + Octave_map base_graphics_object::values_as_struct (void)): New + functions. + (Fset): Allow single handle as an argument and return the radio + values. + * graphics.h.in (virtual bool base_property::is_radio (void) const, + virtual std::string base_property::values_as_string (void) const, + virtual Cell base_property::values_as_cell (void) const): + New function. + (std::string radio_values::values_as_string (void) const, + Cell radio_values::values_as_cell (void) const): Declaration. + (octave_idx_type radio_values::nelem (void) const): New function. + (std::string radio_property::values_as_string (void) const, + Cell radio_property::values_as_cell (void) const, + bool radio_property::is_radio (void) const): New functions. + (bool property::is_radio (void) const, + std::string raproperty::values_as_string (void) const, + Cell property::values_as_cell (void) const): New functions. + (std::string base_graphics_object::values_as_string (void), + Octave_map base_graphics_object::values_as_struct (void)): Declaration. + (std::string graphics_object::values_as_string (void), + Octave_map graphics_object::values_as_struct (void)): New functions. + + 2010-06-21 Jaroslav Hajek + + * data.cc (single_type_concat): Assume matrix arguments start from + index zero. + (do_cat): Make dim a separate argument. Special-case support for dim = + -1 and dim = -2 + + 2010-06-18 Jaroslav Hajek + + * pt-mat.cc (tm_row_const::eval_error): Make a static func. + (tm_row_const::do_init_element): Simplify using dim_vector::hvcat. + (tm_const::init): Ditto. + (single_type_concat): Special-case empty results. Skip or use 0x0 for + empty arrays otherwise. + (tree_matrix::rvalue1): Skip empty arrays in the fallback branch. + + 2010-06-16 Rik + + * DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/dot.cc, + DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/lookup.cc, + DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/onCleanup.cc, + DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/spparms.cc, DLD-FUNCTIONS/svd.cc, + data.cc, dirfns.cc, graphics.cc, mappers.cc, ov-cell.cc, ov-range.cc: + Periodic grammar check of documentation to ensure a common format. + + 2010-06-11 David Bateman + + * DLD-FUNCTIONS/rand.cc : Add "reset" flag to reset the random + generators from the entropy pool. + + * genprops.awk : Don't special case the color_property in the + factory default methods. + + 2010-06-16 Jaroslav Hajek + + * data.cc (Fsort): Fix invalid tests. + + 2010-06-15 Rik + + * pr-output.cc: Second try at removing extra newlines from NDArrays + + 2010-06-14 Rik + + * pr-output.cc: Remove extra newlines when displaying multi-dimensional + arrays (bug #30029). + + 2010-06-14 Jaroslav Hajek + + * data.cc (Fsort, Fnth_element): Fix behavior when trailing singleton + dim is specified. + + 2010-06-12 Ben Abbott + + * DLD-FUNCTIONS/gammainc.cc: Fix doc-string typo. + + 2010-06-11 David Bateman + + * DLD-FUNCTIONS/gammainc.cc: Implement complementary incomplete + gamma function. + + 2010-06-10 Ben Abbott + + * data.cc: Fix test for concatentating empty nd-arrays. + + 2010-06-10 Jaroslav Hajek + + * data.cc (Fvec): New DEFUN. + + 2010-06-09 Jaroslav Hajek + + * data.cc (Freshape): Use octave_idx_type rather than int. + Don't use intermediate Array when sizes are given as separate + arguments. Simplify computing unknown dimension. + + 2010-06-09 David Grundberg + + * ov-struct.cc (Fisfield): Accept cell array as name argument. + + 2010-06-08 Rik + + * DLD-FUNCTIONS/bsxfun.cc, DLD-FUNCTIONS/cellfun.cc, + DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lu.cc, + DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/svd.cc, DLD-FUNCTIONS/tril.cc, + data.cc, ov.cc: Improve documentation string. + + 2010-06-06 Michael Goffioul + + * data.cc (Frem, Fmod): Specify template arguments of binmap + explicitely. + + 2010-06-02 Jaroslav Hajek + + * DLD-FUNCTIONS/strfind.cc (Fqs_replace): Allow overlapped matches. + (Fstrrep): Support "overlaps" option. + (Fstrfind): Ditto. + + 2010-05-28 Jaroslav Hajek + + * ov.h (octave_value::fast_elem_extract, + octave_value::fast_elem_insert): New methods. + * ov-base.cc (octave_base_value::fast_elem_extract, + octave_base_value::fast_elem_insert, + octave_base_value::fast_elem_insert_self): New methods. + * ov-base.h: Declare them. + * ov-base-mat.cc (octave_base_matrix::fast_elem_extract, + octave_base_matrix::fast_elem_insert): New overrides. + * ov-base-mat.h: Declare them. + * ov-base-scalar.cc (octave_base_scalar::fast_elem_extract, + octave_base_scalar::fast_elem_insert_self): New overrides. + * ov-base-scalar.h: Declare them. + (octave_base_scalar::scalar_ref): New method. + * ov-scalar.cc (octave_scalar::fast_elem_insert_self): New override. + * ov-scalar.h: Declare it. + * ov-float.cc (octave_float_scalar::fast_elem_insert_self): New override. + * ov-float.h: Declare it. + * ov-cell.cc (octave_base_matrix::fast_elem_extract, + octave_base_matrix::fast_elem_insert): New specializations. + * DLD-FUNCTIONS/cellfun.cc (scalar_col_helper, scalar_col_helper_def, + scalar_col_helper_nda, make_col_helper, can_extract): Remove. + (Fcellfun): Use the new fast_elem_insert method. + + 2010-05-10 Rik + + * DLD-FUNCTIONS/eigs.cc: Improve documentation string. + Use ~ notation instead of dummy variables for unused return arguments. + + 2010-05-27 Jaroslav Hajek + + * ov-base-mat.h (octave_base_matrix::matrix_ref (void) const): New + overload. + + 2010-05-26 Jaroslav Hajek + + * oct-obj.h (octave_value_list::slice): Optionally include tags in + slicing. + * oct-parse.yy (get_feval_args): Simplify. + * pt-idx.cc (make_value_list): Use octave_idx_type instead of int. + + 2010-05-25 Jaroslav Hajek + + * ov.cc (octave_value::length): Simplify. + + 2010-05-25 Jaroslav Hajek + + * ov-base-mat.h (octave_base_matrix::ndims): New override. + * ov-base-scalar.h (octave_base_scalar::numel, + octave_base_scalar::ndims): New overrides. + + 2010-05-25 Jaroslav Hajek + + * ov-base.cc (octave_base_value::ndims): Remove fallback + implementation (makes no sense). + * ov-base.h (octave_base_value::ndims): Use a simplistic fallback + here. + + 2010-05-25 Jaroslav Hajek + + * ov-base.h (octave_base_value::rows, octave_base_value::columns): + Use const where appropriate, don't test for impossible condition. + + 2010-05-24 Jaroslav Hajek + + * Cell.h (Cell::index, Cell::assign, Cell::delete_elements): + Make signatures consistent with inherited overloads. Import inherited + overloads to class's scope. + * oct-map.cc (Octave_map::maybe_delete_elements): Simplify. + + 2010-05-20 John W. Eaton + + * utils.cc (Ffile_in_path, Ffile_in_loadpath): If no file is + found, return empty character string instead of empty matrix. + + 2010-05-20 Jaroslav Hajek + + * DLD-FUNCTIONS/onCleanup.cc (octave_oncleanup::load_ascii, + octave_oncleanup::load_binary, octave_oncleanup::load_hdf5, + octave_oncleanup::save_ascii, octave_oncleanup::save_binary, + octave_oncleanup::save_hdf5): Comment out unused params. + + 2010-05-18 Jaroslav Hajek + + * defun-int.h (octave_auto_shlib): Make members public. + * DLD-FUNCTIONS/onCleanup.cc: New source. + * DLD-FUNCTIONS/module-files: Add it here. + + 2010-05-18 Jaroslav Hajek + + * variables.cc (set_internal_variable (int&, ..., const char **)): + Drop nchoices argument. Instead determine nchoices by trailing NULL. + * variables.h (SET_INTERNAL_VARIABLE_CHOICES): Update. + * DLD-FUNCTIONS/svd.cc (Fsvd_driver): Update. + + 2010-05-17 Jaroslav Hajek + + * variables.cc (set_internal_variable (int&, ..., const char **, int)): + New overload. + * variables.h: Declare it. + (SET_INTERNAL_VARIABLE_CHOICES): New macro. + * DLD-FUNCTIONS/svd.cc (Fsvd_driver): Use it here. + + 2010-05-17 Jaroslav Hajek + + * ov-usr-fcn.h (octave_user_function::curr_unwind_protect_frame): New + field. + (octave_user_function::local_protect): New template method. + * ov-usr-fcn.cc (octave_user_function::octave_user_function): + Initialize it here. + (octave_user_function::do_multi_index_op): Set and restore it here. + * variables.cc (wants_local_change, try_local_protect): New helper + funcs. + (set_internal_variable): Call them in all overloads. + + 2010-05-14 Jaroslav Hajek + + * symtab.cc (symtab::do_mark_global, symtab::do_mark_hidden): Force + non-existing symbol to be created. + + 2010-05-13 Jaroslav Hajek + + * xdiv.cc (solve_singularity_warning): Use ID for the warning. + + 2010-05-13 Jaroslav Hajek + + * DLD-FUNCTIONS/sqrtm.cc (sqrtm_utri_inplace): Use an ID for the + warning. + + 2010-05-13 Jaroslav Hajek + + * load-save.cc (install_loaded_variable): Pre-extract symbol record + reference to do all operations. + + 2010-05-11 David Bateman + + * ls-mat5.cc (save_mat5_element_length): Correct element length for + sparse elements with NZMAX=1 or NC=0. + (save_mat5_binary_element): Save the NZMAX elements of the RIDX + sparse index. + + 2010-05-11 Jaroslav Hajek + + * ov-lazy-idx.cc (octave_lazy_index::save_binary): Fix arguments to + save_binary_data. + + 2010-05-07 Jaroslav Hajek + + * DLD-FUNCTIONS/sqrtm.cc (do_sqrtm): Mark the result as triangular + where applicable. + + 2010-05-10 Rik + + * DLD-FUNCTIONS/qr.cc: Split qrdelete test into high precision test + when QRUPDATE is present and low precision when it is not. + + 2010-05-10 Jaroslav Hajek + + * DLD-FUNCTIONS/schur.cc (Fschur): Mark triangular matrices on output. + + 2010-05-10 Jaroslav Hajek + + * ov-range.cc (octave_range::index_vector): Optimize order of + conditions. + + 2010-05-08 Jaroslav Hajek + + * ov.cc (octave_value::do_non_const_unary_op): Always return *this as + octave_value&. Remove unused overload. + * oct-lvalue.cc (octave_lvalue::do_unary_op): Simplify. + * pt-unop.cc (tree_prefix_expression::rvalue1, + tree_postfix_expression::rvalue1): Remove dummy rvalue1 calls. + + 2010-05-07 Michael Goffioul + + * ov-base.h (Vsparse_auto_mutate): Add OCTINTERP_API tag. + + 2010-05-07 John W. Eaton + + * octave.cc (maximum_braindamage): Set value of internal + variable Vallow_noninteger_range_as_index to true instead of + setting Octave:allow-noninteger-ranges-as-indices warning state. + * ov-range.cc (Fallow_noninteger_range_as_index): New function. + (Vallow_noninteger_range_as_index): New variable. + (octave_range::index_vector): Only allow non-integer range as + index if Vallow_noninteger_range_as_index is true. + (octave_range::bool_array_value): Move definition here from ov-range.h. + * ov-range.h (Vallow_noninteger_range_as_index): Provide decl. + * utils.cc (reset_warning_state): Delete. + (Fisindex): Temporarily set Vallow_noninteger_range_as_index + instead of changing warning state for + Octave:allow-noninteger-ranges-as-indices to "error". + + 2010-05-06 John W. Eaton + + * xgl2ps.c: Don't compile gl2ps.c unless we have OpenGL. + From Petr Mikulik . + + 2010-05-06 John W. Eaton + + * ov-range.cc (octave_range::index_vector): + Improve warning/error message. + + 2010-05-06 Jaroslav Hajek + + * DLD-FUNCTIONS/sqrtm.cc (sqrtm_utri_inplace, do_sqrtm): New helper + functions. + (Fsqrtm): Rewrite. + + 2010-05-06 Jaroslav Hajek + + * DLD-FUNCTIONS/schur.cc (Fschur): Recognize "complex" option for + Matlab compatibility. Simplify argument handling and improve error + messages. + + 2010-05-05 John W. Eaton + + * utils.cc (reset_warning_state): New function. + (Fisindex): Temporarily set warning state for + Octave:allow-noninteger-ranges-as-indices to "error". + * error.cc (set_warning_state): New function. + (initialize_default_warning_state): Set default warning state + for Octave:allow-noninteger-ranges-as-indices to "error". + * error.h (set_warning_state): Provide decl. + * octave.cc (maximum_braindamage): Set warning state for + Octave:allow-noninteger-ranges-as-indices to "on". + * ov-range.cc (octave_range::index_vector): Warn if range + contains non-integer values. + + 2010-05-03 Jaroslav Hajek + + * DLD-FUNCTIONS/svd.cc (driver): New static var. + (Fsvd): Use it to select a driver. + (Fsvd_driver): New DEFUN. + + 2010-05-02 Rik + + * ov-cell.cc: Wrap documentation line to prevent overfull hbox + LaTex warning + + 2010-05-01 Ben Abbott + + * graphics.cc, graphics.h.in: Remove line object properties ldata, + udata, xldata, xudata. + + 2010-04-30 Shai Ayal + + * DLD-FUNCTIONS/fltk_backend.cc (plot_window::set_axes_currentpoint): + check for valid object before manipulating it + + 2010-04-27 John W. Eaton + + * graphics.h.in (string_array_property::string_array_property): + Index string_vector with [], not (). + (string_array_property::string_value): Likewise. + (string_array_property::do_set): Likewise. + Avoid indexing past last element of string_vector object. + Fixes bug #29695. + + 2010-04-27 Jaroslav Hajek + + * ov-cs-list.cc (octave_cs_list::subsref): New methods. Just gripe. + * ov-cs-list.h: Declare them. + + 2010-04-27 John W. Eaton + + * ov-usr-fcn.cc (octave_user_script::do_multi_index_op): + Correct spelling of max_recursion_depth in error message. + (octave_usr_fcn::do_multi_index_op): Ditto. + * pt-eval.h, pt-eval.cc (Vmax_recursion_depth): Move definition + here from ov-usr-fcn.cc. Now extern. + (Fmax_recursion_depth): Move definition here from ov-usr-fcn.cc. + * oct-parse.yy (source_file): Limit recursive calls on a + per-file basis. + Addresses bug #29491. + + 2010-04-25 David Bateman + + * oct-parse.yy (octave_function * load_fcn_from_file + (const std::string&, const std::string&, const std::string&) + (const std::string&, bool)): When loading a mex-file attempt + to load the m-file first to get the help string. + + 2010-04-24 Ben Abbott + + * graphics.h.in: Have figure color property support a radio value, + 'none'. + + 2010-04-24 David Bateman + + * graphics.cc (void axes::properties::set_defaults + (base_graphics_object&, const std::string&)): Make the default + axes color "none". + + 2010-04-24 Shai Ayal + + * Makefile.am: change GRAPHICS_CPPFLAGS to GRAPHICS_CFLAGS since + the former does not exist and the latter serves the same purpose + + 2010-04-23 Rik + + * Makefile.am: Clarify compilation note about defaults.h + + 2010-04-23 Rik + + * symtab.h: Clear global variables when 'clear -all' called + + 2010-04-23 John W. Eaton + + * DLD-FUNCTIONS/fltk_backend.cc (OpenGL_fltk::OpenGL_fltk): + Explicitly initizlize all data members in the order they are declared. + + 2010-04-23 John W. Eaton + + * txt-eng-ft.cc (ft_render::visit): Declare loop counter size_t, + not int. + + * graphics.h.in (graphics_xform::untransform): Likewise. + * graphics.cc (text::properties::update_text_extent): Likewise. + * DLD-FUNCTIONS/fltk_backend.cc (plot_window::set_axes_currentpoint): + Avoid GCC shadow variable warning. + + * DLD-FUNCTIONS (plot_window::plot_window): Explicitly + initialize all data members in the order they are declared. + + 2010-04-23 John W. Eaton + + * DLD-FUNCTIONS/gcd.cc (Fgcd): Use two-argument dim_vector constructor. + + * ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal): + Explicitly create idx_vec with column orientation. + + * oct-obj.cc (octave_value_list::octave_value_list): + Explicitly resize data to be row vector. + + 2010-04-23 Rik + + * DLD-FUNCTIONS/regexp.cc.: Eliminate compile warning. + warning: suggest explicit braces to avoid ambiguous 'else'. + + 2010-04-23 Jaroslav Hajek + + * ov-base-scalar.h (octave_base_scalar::reshape, + octave_base_scalar::permute): Remove implementations. + * ov-base-scalar.cc (octave_base_scalar::reshape, + octave_base_scalar::permute): Provide correct implementations here. + + 2010-04-23 Jaroslav Hajek + + * ov-bool.h (octave_bool::empty_clone): Correctly return an empty + matrix. + * ov-float.h (octave_float::empty_clone): Ditto. + * ov-base-mat.h (octave_base_matrix::clone, + octave_base_matrix::empty_clone): Remove. + * ov-base-scalar.h (octave_base_scalar::clone, + octave_base_scalar::empty_clone): Remove. + * ov-base-sparse.h (octave_base_sparse::clone, + octave_base_sparse::empty_clone): Remove. + * ov-base.h (octave_base_value::empty_clone): Remove implementation. + * ov-base.cc (octave_base_value::empty_clone): Implement here. + Fall back to resize() for empty_clone(). + * ov.cc (octave_value::assign): Correct behavior in the indexed + OP= case. Use better error messages. Always return non-const + reference, like any assignment. + * ov.h: Update decls. + * oct-lvalue.cc (octave_lvalue::assign): Simplify. + + 2010-04-22 Rik + + * DLD-FUNCTIONS/hess.cc.: return correct Hessenberg matrix when + called with only one output argument. + + 2010-04-22 Jaroslav Hajek + + * data.cc (do_hypot): New helper function. Move bulk code from Fhypot + here. + (Fhypot): Account for >2 args by folding do_hypot several times. + + 2010-04-20 Jaroslav Hajek + + * pt-mat.cc (single_type_concat): New overloads. Make TYPE an explicit + template parameter. Try to forward some cases to Array::cat and + Sparse::cat. + (do_single_type_concat, do_single_type_concat_no_mutate): Don't + allocate the array here, let single_type_concat do it. + + 2010-04-19 Jaroslav Hajek + + * data.cc (single_type_concat, do_single_type_concat): Rewrite using + new liboctave facilities. + (do_cat): Don't compute result dims if the case can be forwarded to + liboctave. + + 2010-04-13 David Bateman + + * graphics.cc (void text::properties::update_text_extent (void)): + Don't call text_renderer.set_font if HAVE_FONTCONFIG is not set. + + 2010-04-13 David Bateman + + * DLD-FUNCTIONS/regexp.cc (octregexp_list): Handle repeated matches + in the list of matches returned by pcre. + + 2010-04-13 Shai Ayal + + * DLD-FUNCTIONS/fltk_backend.cc (plot_window::set_currentpoint, + (plot_window::set_axes_currentpoint, plot_window::key2shift, + (plot_window::key2ascii, plot_window::modifier2cell): New helper + functions for keypress and mousebutton callbacks. + (plot_window::handle): implement keypress and mousebutton callbacks. + + * graphics.h.in (callback_property::is_defined): New conveniance + function. Rename figure.current_point to figure.currentpoint. + + 2010-04-13 Jaroslav Hajek + + * DLD-FUNCTIONS/sparse.cc (Fspalloc): New DEFUN. + * ov-base.cc (octave_base_value::nzmax): Return numel by default. + + 2010-04-13 Jaroslav Hajek + + * ov-base-sparse.cc (octave_base_sparse::assign): Rewrite. + * ov-cx-sparse.cc (octave_sparse_complex_matrix::assign + (const octave_value_list& idx, const SparseMatrix& rhs)): Remove. + * ov-cx-sparse.h: Remove decl. + + 2010-04-10 Ben Abbott + + * graphics.h.in: Fix nextplot property values. Add "new" to + list for axes nextplot values. Change "replace_children" to + "replacechildren" for both axes and figures. + + 2010-04-09 David Bateman + + * DLD-FUNCTIONS/regexp.cc (octregexp_list): Properly ignore + zero-length matches in named tokens. + + 2010-04-09 John W. Eaton + + * ov-ch-mat.h (octave_char_matrix::mex_get_data): New function. + Addresses bug #29475. + + 2010-04-09 Judd Storrs + + * utils.cc (isvarname): Keywords are not valid variable names. + + 2010-04-08 Jaroslav Hajek + + * help.cc (make_name_list): Don't insert global and top-level scope + variables. Always insert current scope. + + 2010-04-08 Jaroslav Hajek + + * data.cc (SINGLE_TYPE_CONCAT, DO_SINGLE_TYPE_CONCAT): Replace by + templates. + (single_type_concat, do_single_type_concat): New static temvplate + funcs. Correctly skip 0x0 matrices. + (Fcat): Call them here. Add tests. + + 2010-04-07 Jaroslav Hajek + + * oct-parse.yy (feval): Use do_multi_index_op on handles. + (get_feval_args): Use array slicing functions rather than loops. + + 2010-04-06 Jaroslav Hajek + + * ov-base-sparse.cc (octave_base_sparse::delete_elements): Rewrite. + + 2010-04-02 Judd Storrs + + * octave.cc (intern_argv): Truncate argv when script files are + run without command line parameters. Resolves bug #29423. + + 2010-03-31 Jaroslav Hajek + + * DLD-FUNCTIONS/sparse.cc (Fsparse): Rewrite. + + 2010-03-28 David Grundberg + + * DLD-FUNCTIONS/convhulln.cc [HAVE_QHULL]: Neither include + qhull/qhull_a.h nor run tests if unless we HAVE_QHULL. + + 2010-03-26 Jaroslav Hajek + + * variables.cc (maybe_missing_function_hook): Temporarily clear before + executing the hook to avoid recursive calls. + + 2010-03-25 John W. Eaton + + * gl2ps-renderer.cc (glps_renderer::draw): Tag call to fclose + with gnulib::. + + 2010-03-25 John W. Eaton + + * oct-parse.yy, oct-fstrm.cc, mex.cc, input.cc, + c-file-ptr-stream.cc: Revert changes from 2010-03-24. + + 2010-03-25 Jaroslav Hajek + + * kron.cc (Fkron): Completely rewrite. + + 2010-03-24 John W. Eaton + + * version.h.in (OCTAVE_BUGS_STATEMENT): Point to + http://www.octave.org/bugs.html, not the mailing list. + + 2010-03-24 John W. Eaton + + * DLD-FUNCTIONS/config-module.awk: Emit additions to EXTRA_DIST. + + 2010-03-24 John W. Eaton + + * Makefile.am ($(srcdir)/DLD-FUNCTIONS/module.mk): + Remove doubled // from file name in rule. + + 2010-03-24 David Grundberg + + * oct-parse.yy: Include gnulib stdlib.h/stdio.h instead of C++ + headers. + * oct-fstrm.cc: Include gnulib stdlib.h/string.h instead of C++ + headers. + * mex.cc: Include gnulib stdlib.h instead of C++ headers. + * input.cc: Include gnulib stdio.h instead of C++ headers. + * c-file-ptr-stream.cc: Include gnulib stdio.h. + + 2010-03-24 John W. Eaton + + * load-path.cc (load_path::add_to_fcn_map): Style fixes. + + 2010-03-24 Jaroslav Hajek + + * variables.cc (maybe_missing_function_hook): Don't call hook if + errors are being handled. + + 2010-03-24 Jaroslav Hajek + + * variables.cc (Fmissing_function_hook): New pseudo-variable. + (Vmissing_function_hook): New static var. + (maybe_missing_function_hook): New function. + * variables.h: Declare it. + * pt-id.cc (tree_identifier::eval_undefined_error): Call it here. + * oct-parse.yy (feval (const std::string&, ...)): Also here. + + 2010-03-23 Jaroslav Hajek + + * data.cc (Frem, Fmod): New DEFUNs. + (Ffmod): Remove. Make an alias of Frem. + + 2010-03-23 Jaroslav Hajek + + * data.cc (map_d_m, map_m_d, map_m_m, map_f_fm, map_fm_f, map_fm_fm, + map_d_s, map_s_d, map_s_s): Remove. + (Fatan2, Fhypot, Ffmod): Rewrite using binmap. + + 2010-03-21 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Fix the parsing of string + function arguments. + + 2010-03-20 John W. Eaton + + * lex.ll: Don't undefine GNULIB_NAMESPACE. Define fprintf, + fwrite, malloc, and realloc and GNULIB_NAMESPACE::fprintf, ... + * oct-parse.yy: Likewise. Always include cstdlib. + + 2010-03-16 John W. Eaton + + * ls-oct-ascii.cc (save_ascii_data): Insert extra newline after + data is written to file. From Brett Stewart . + + 2010-03-16 Jaroslav Hajek + + * ov-base.h (unary_mapper_t::umap_cbrt): New enum member. + * ov.h (octave_value::cbrt): New forwarder method. + * ov-scalar.cc (octave_scalar::map): Handle cbrt. + * ov-float.cc (octave_float_scalar::map): Ditto. + * ov-re-mat.cc (octave_matrix::map): Ditto. + * ov-flt-re-mat.cc (octave_float_matrix::map): Ditto. + * ov-re-sparse.cc (octave_sparse_matrix::map): Ditto. + + 2010-03-15 John W. Eaton + + * oct-parse.yy, lex.ll: Undefine GNULIB_NAMESPACE immediately + after including . + + * toplev.cc (wait_for_input): Tag call to select with gnulib::. + + * sighandlers.h (BLOCK_SIGNAL): Tag calls to sigemptyset, + sigaddset, and sigprocmask with gnulib::. + (UNBLOCK_CHILD): Tag call to sigprocmask with gnulib::. + * sighandlers.cc (octave_set_signal_handler): Tag calls to + sigemptyset with gnulib::. + (octave_set_signal_handler): Tag call to sigaction with gnulib::. + + * oct-procbuf.cc (octave_procbuf::open): Tag calls to close, dup2, + and fclose with gnulib::. + (octave_procbuf::close): Tag call to fclose with gnulib::. + + * oct-hist.cc (unlink_cleanup): Tag call to unlink with gnulib::. + + * oct-fstrm.cc (octave_fstream::octave_fstream): Tag call to + strerror with gnulib::. + + * mex.cc (mex::malloc_unmarked, mex::realloc, mxArray::malloc, + mxMalloc, mxRealloc): Tag call to malloc with gnulib::. + + * input.cc (gnu_readline): Tag call to fputs with gnulib::. + + * file-io.cc (cleanup_tmp_files): Tag call to unlink with gnulib::. + (do_stream_open, Ftmpfile, Fmkstemp): Tag call to strerror with + gnulib::. + + * dirfns.cc (octave_change_to_directory): Tag call to strerror + with gnulib::. + + * c-file-ptr-stream.cc (c_file_ptr_buf::overflow): Tag calls to + fputc with gnulib::. + (c_file_ptr_buf::xsputn): Tag call to fwrite with gnulib::. + (c_file_ptr_buf::file_close): Move here from + c-file-ptr-stream.h. Tag call to fclose with gnulib::. + + 2010-03-12 Ben Abbott + + * /DLD-FUNCTIONS/chol.cc: Increase tolerance for single precision test. + + 2010-03-09 Jaroslav Hajek + + * DLD-FUNCTIONS/lookup.cc (Flookup): Fix deprecated array constructor. + + 2010-03-09 Jaroslav Hajek + + * ov-intx.h + (OCTAVE_INT_NDARRAY_T::convert_gripe): Remove method. + (OCTAVE_INT_NDARRAY_T): Remove all uses. + (OCTAVE_INT_T::convert_gripe): Remove method. + (OCTAVE_INT_T): Remove all uses. + * ov.cc (convert_to_int_array, convert_to_octave_idx_type_array): + Remove int conversion warnings. + * data.cc (NATIVE_REDUCTION_1): Ditto. + + * OPERATORS/op-intx.h: Remove integer warning stubs. + * OPERATORS/opt-int-conv.cc: Ditto. + + * gripes.cc (gripe_truncated_conversion, + gripe_binop_integer_math_truncated, + gripe_native_integer_math_truncated, + gripe_unop_integer_math_truncated, gripe_non_integer_conversion, + gripe_nan_conversion): Remove. + * gripes.h: Remove decls. + * error.cc (initialize_default_warning_state): Don't initialize + removed warnings. + + 2010-03-07 Michael Goffioul + + * gl-render.cc (draw_figure): disable depth test on the 3rd pass. + (draw_text): use get_data_position to get text position. + * graphics.h.in (graphics_xform): New zlim field. + (graphics_xform::untransform(double,double,bool)): New method. + (axes::properties::get_transform): Provide zlim data to graphics_xform + constructor. + (text::properties::string, text::properties::units, + text::properties::rotation, text::properties::fontname, + text::properties::fontangle, text::properties::fontsize, + text::properties::fontweight, text::properties::interpreter): Add 'u' + modified. + (text::properties::extent): New property. + (text::properties::get_data_position): New method. + (text::properties::update_position): Use it. + (text::properties::update_text_extent, + text::properties::update_string, text::properties::update_rotation, + text::properties::update_fontname, text::properties::update_fontsize, + text::properties::update_fontangle, + text::properties::update_fontweight, + text::properties::update_interpreter, text::properties::update_units): + New updaters. + * graphics.cc (convert_position): Support single point. + (convert_text_position): New helper function. + (text::properties::get_data_position, text::properties::get_extent, + text::properties::update_text_extent, text::properties::update_units): + New methods. + * txt-eng-ft.h (ft_render::get_extent, ft_render::rotation_to_mode): + New methods. + * txt-eng-ft.cc (ft_render::get_extent, ft_render::rotation_to_mode): + Ditto. + + 2010-03-05 Jaroslav Hajek + + * data.cc (do_accumdim_sum): New helper function. + (F__accumdim_sum__): New DEFUN. + + 2010-03-04 Jaroslav Hajek + + * ov-base.h (unary_mapper_t::umap_erfcx): New enum member. + * ov.h (octave_value::erfcx): New forwarder method. + * ov-scalar.cc (octave_scalar::map): Handle erfcx. + * ov-float.cc (octave_float_scalar::map): Ditto. + * ov-re-mat.cc (octave_matrix::map): Ditto. + * ov-flt-re-mat.cc (octave_float_matrix::map): Ditto. + + 2010-03-03 John W. Eaton + + * DLD-FUNCTIONS/__magick_read__.cc (F__magick_read__): + Call Magick::InitializeMagick. + + 2010-03-02 Jaroslav Hajek + + * DLD-FUNCTIONS/__convn__.cc: Remove. + * DLD-FUNCTIONS/module-files: Update. + + 2010-03-02 Jaroslav Hajek + + * DLD-FUNCTIONS/conv.cc (Fconv2): Rewrite using convn from liboctave. + (Fconvn): New DEFUN. + + 2010-03-01 John W. Eaton + + * (str2double1): Pass argument as const reference and make + explicit copy instead of passing by value. + + 2010-03-01 John W. Eaton + + * DLD-FUNCTIONS/str2double.cc (set_component): Use autoconf + macros instead of checking predefined compiler macros. + (str2double1): Pass val to set_component, not c. + + 2010-03-01 Jaroslav Hajek + + * DLD-FUNCTIONS/str2double.cc (set_component): New helper func. + (str2double1): Use it here. + + 2010-03-01 Jaroslav Hajek + + * DLD-FUNCTIONS/str2double.cc (str2double1): Use ISO-conformant code + for setting the real and imaginary part. + + 2010-02-28 David Bateman + + * DLD-FUNCTIONS/urlwrite.cc (curl_handle::init): Don't set + CURLOPT_USERPWD if userpwd is empty. + + 2010-02-28 John W. Eaton + + * Makefile.am ($(srcdir)/DLD-FUNCTIONS/module.mk): New target. + + * DLD-FUNCTIONS/config-module.sh: Accept top_srcdir argument. + Work from build directory too, not just source tree. + + 2010-02-28 Jaroslav Hajek + + * ov-typeinfo.h (octave_value_typeinfo::octave_value_typeinfo): + Add missing initializers. + + 2010-02-28 John W. Eaton + + * DLD-FUNCTIONS/conv2.cc (conv2 (const MArray&, const MArray&, + Shape)): Args are now const. Move invariant expressions outside + of loops. Use pointers instead of Array class indexing methods. + (conv2 (const MArray&, const MArray&, const MArray&, Shape)): + Ditto. + + 2010-02-27 Jaroslav Hajek + + * ov-base-mat.cc (do_index_op): Use checkelem for scalar indices. + Simplify. + + 2010-02-26 Jaroslav Hajek + + * xpow.cc: Update. + * ov-base-diag.cc: Update. + + 2010-02-25 Jaroslav Hajek + + * DLD-FUNCTIONS/str2double.cc (single_number): New helper func. + (extract_number): Call it instead of >> to get Inf's and NaN's + correctly. + + 2010-02-25 Jaroslav Hajek + + * DLD-FUNCTIONS/str2double.cc: New source. + + 2010-02-19 John W. Eaton + + * DLD-FUNCTIONS/qr.cc: Increase tolerance for test. + + 2010-02-24 Jaroslav Hajek + + * TEMPLATE-INST/Array-tc.cc: Remove Array2 instantiation. + * DLD-FUNCTIONS/besselj.cc: Use Array instead of Array2. + * DLD-FUNCTIONS/tril.cc: Ditto. + * data.cc: Ditto. + * ov-typeinfo.cc: Ditto. + * ov-typeinfo.h: Ditto. + * pr-output.cc: Ditto. + + 2010-02-23 Jaroslav Hajek + + * ov-bool-mat.h (octave_bool_matrix::octave_bool_matrix (const + Array&)): New ctor. + * ov-ch-mat.h (octave_char_matrix::octave_char_matrix (const + Array&)): New ctor. + * ov-str-mat.h (octave_char_matrix_str::octave_char_matrix_str (const + Array&)): New ctor. + (octave_char_matrix_sq_str::octave_char_matrix_sq_str (const + Array&)): New ctor. + + 2010-02-23 Jaroslav Hajek + + * Cell.cc: Reflect Array API changes. + * DLD-FUNCTIONS/__convn__.cc: Ditto. + * DLD-FUNCTIONS/__glpk__.cc: Ditto. + * DLD-FUNCTIONS/__magick_read__.cc: Ditto. + * DLD-FUNCTIONS/bsxfun.cc: Ditto. + * DLD-FUNCTIONS/cellfun.cc: Ditto. + * DLD-FUNCTIONS/conv2.cc: Ditto. + * DLD-FUNCTIONS/dlmread.cc: Ditto. + * DLD-FUNCTIONS/filter.cc: Ditto. + * DLD-FUNCTIONS/kron.cc: Ditto. + * DLD-FUNCTIONS/qz.cc: Ditto. + * DLD-FUNCTIONS/regexp.cc: Ditto. + * DLD-FUNCTIONS/sub2ind.cc: Ditto. + * data.cc: Ditto. + * file-io.cc: Ditto. + * gl-render.cc: Ditto. + * ls-mat5.cc: Ditto. + * oct-map.cc: Ditto. + * oct-obj.h: Ditto. + * oct-parse.yy: Ditto. + * oct-stream.cc: Ditto. + * ov-base-mat.cc: Ditto. + * ov-base-sparse.cc: Ditto. + * ov-perm.cc: Ditto. + * ov-struct.cc: Ditto. + * ov-typeinfo.cc: Ditto. + * ov-typeinfo.h: Ditto. + * ov.cc: Ditto. + * pr-output.cc: Ditto. + * pt-mat.cc: Ditto. + * strfns.cc: Ditto. + * txt-eng-ft.cc: Ditto. + * variables.cc: Ditto. + + 2010-02-22 John W. Eaton + + * ls-mat5.cc: Use numel instead of nelem consistently and where + appropriate in all functions. + (read_mat5_binary_element): Declare ridx and cidx as pointer to + octave_idx_type, not int. + (read_mat5_integer_data): Declare count as octave_idx_type, not int. + (READ_INTEGER_DATA): Loop counter is octave_idx_type, not int. + (OCTAVE_MAT5_INTEGER_READ): Declare n and loop counter as + octave_idx_type, not int. + (read_mat5_binary_element): Rows and columns of sparse matrix + are octave_idx_type, not int. Declare nzmax and nnz as + octave_idx_type. Read nzmax as 32-bit int, and assign. Move + decls closer to first use. + (read_mat5_binary_data): Declare count as octave_idx_type, not int. + (read_mat5_binary_element, write_mat5_array): + Use octave_idx_type instead of int for numel and loop counters. + (write_mat5_array): Declare len and nel as octave_idx_type. + Move declarations closer to first use. + (write_mat5_tag): Declare bytes arg as octave_idx_type, not int. + (write_mat5_integer_data): Declare nel as octave_idx_type, not int. + (write_mat5_cell_array): Declare nel and loop counter as + octave_idx_type, not int. + (save_mat5_array_length): Declare nel nad loop counters as + octave_idx_type, not int. + (save_mat5_binary_element): Declare dims and counters as + octave_idx_type, not int. Delete unused streampos variables. + Call write_mat5_sparse_index_vector to write ridx and cidx. + Don't write element if dimension is too large to save. + (gripe_dim_too_large, write_mat5_sparse_index_vector): New functions. + + 2010-02-22 Carlo de Falco + + * dirfns.cc (Fglob): Make glob function test more robust. + + 2010-02-21 Michael Goffioul + + * gl-render.h: Define WIN32_LEAN_AND_MEAN and don't #undef min/max. + * DLD-FUNCTIONS/fltk_backend.cc: Don't #undef min/max. + + * sighandlers.cc (octave_set_signal_handler): Don't use SIGALRM + unconditionally. + + * ov-bool.h (class octave_bool): Add OCTINTERP_API. + * unwind-prot.h (class unwind_protect_safe): Ditto. + + * Makefile.am: Add -bindir flag to liboctinterp_la_LDFLAGS. Remove + temporary libtool module file after copying oct file. + + 2010-02-19 John W. Eaton + + * DLD-FUNCTIONS/qr.cc: Increase tolerance for test. + + 2010-02-19 Jaroslav Hajek + + * ov-lazy-idx.cc (octave_lazy_index::reshape, + octave_lazy_index::squeeze, octave_lazy_index::permute, + octave_lazy_index::sort, octave_lazy_index::is_sorted, + octave_lazy_index::sort_rows_idx, octave_lazy_index::is_sorted_rows): + New method overrides. + * ov-lazy-idx.h: Declare them. + * ov-re-mat.cc (octave_matrix::reshape, octave_matrix::squeeze, + octave_matrix::sort, octave_matrix::is_sorted, + octave_matrix::sort_rows_idx, octave_matrix::is_sorted_rows): New + method overrides. + * ov-re-mat.h: Declare them. + + 2010-02-19 Jaroslav Hajek + + * DLD-FUNCTIONS/find.cc (Ffind): Avoid unsafe conversion from Inf to + integer. + + 2010-02-18 Jaroslav Hajek + + * syscalls.cc (mk_stat_result): New helper function. + (Flstat): Call it here. + (Fstat): Also here. Handle also the fstat case here. + + 2010-02-18 Thorsten Meyer + + * dirfns.cc (Fglob): Document globbing patterns, add test. + + 2010-02-18 Jaroslav Hajek + + * load-path.cc (in_path_list): New helper function. + (add_to_fcn_map): Use it here. + + 2010-02-18 Sᅵren Hauberg + + * DLD-FUNCTIONS/__magick_read__.cc (__magick_finfo__): + Handle multiple frames in a single image file. + + 2010-02-18 John W. Eaton + + * oct-map.h (Octave_map::Octave_map): Allow dimension to also be + specified in string_vector constructor. + + 2010-02-17 John W. Eaton + + * Makefile.am (OCTAVE_LIBS, OCTINTERP_LINK_DEPS): + Include ../libcruft/libranlib.la in the list. + * oct-conf.h.in (OCTAVE_CONF_F77_INTEGER_8_FLAG): New macro. + * toplev.cc (octave_config_info): Include F77_INTEGER_8_FLAG in + the struct. + + 2010-02-17 Jaroslav Hajek + + * DLD-FUNCTIONS/lookup.cc (do_numeric_lookup): Return an idx_vector + when left_inf is in effect, to enable lazy index optimization. + + 2010-02-16 Jaroslav Hajek + + * ov-lazy-idx.h: New source. + * ov-lazy-idx.cc: New source. + * ov.cc (install_types): Register lazy_index here. + (octave_value::octave_value (const idx_vector&)): Use lazy + construction if possible, under control of an optional flag. + (octave_value::clone): Implement. + * ls-hdf5.cc (save_hdf5): Avoid saving lazy indices. + + 2010-02-15 Jaroslav Hajek + + * ov-fcn-handle.h (octave_fcn_handle::print_as_scalar): New method + override. + + 2010-02-15 Jaroslav Hajek + + * ov-fcn-handle.cc (octave_fcn_handle::is_equal_to): New method. + * ov-fcn-handle.h: Declare it. + * OPERATORS/op-fcn.cc (eq, ne): Call it here. Register new handler. + + 2010-02-13 Jaroslav Hajek + + * load-path.cc (load_path::do_any_class_method): Rename to + do_overloads. Return a list of classes. + * load-path.h (load_path::any_class_method): Likewise. + * symtab.cc (get_dispatch_type): Rewrite. + * symtab.h (get_dispatch_type): Update decl. + * ov-fcn-handle.h (octave_fcn_handle): Partially rewrite. + (octave_fcn_handle::builtin_overloads, octave_fcn_handle::overloads, + octave_fcn_handle::has_overloads): New members. + * ov-fcn-handle.cc (octave_fcn_handle::do_multi_index_op): Rewrite. + (make_fcn_handle): Partially rewrite. + + 2010-02-11 John W. Eaton + + * DLD-FUNCTIONS/config-module.awk, genprops.awk, graphics.h.in, + mkgendoc, mk-pkg-add, mxarray.h.in, zfstream.cc, zfstream.h: + Untabify. + + 2010-02-11 John W. Eaton + + * strfns.cc (Fstrcmpi, Fstrncmpi): Use DEFUNX instead of DEFUN. + (Fstrncmpi): Report strncmpi in error message, not strncmp. + + 2010-02-11 John W. Eaton + + * Cell.cc, bitfcns.cc, c-file-ptr-stream.cc, comment-list.cc, + data.cc, debug.cc, defaults.cc, defun.cc, dirfns.cc, display.cc, + dynamic-ld.cc, error.cc, file-io.cc, gl-render.cc, + gl2ps-renderer.cc, graphics.cc, gripes.cc, help.cc, input.cc, + load-path.cc, load-save.cc, ls-ascii-helper.cc, ls-hdf5.cc, + ls-mat-ascii.cc, ls-mat4.cc, ls-mat5.cc, ls-oct-ascii.cc, + ls-oct-binary.cc, mex.cc, oct-fstrm.cc, oct-hist.cc, + oct-lvalue.cc, oct-map.cc, oct-obj.cc, oct-prcstrm.cc, + oct-procbuf.cc, oct-stream.cc, oct-strstrm.cc, octave.cc, + ov-base-diag.cc, ov-base-int.cc, ov-base-mat.cc, + ov-base-scalar.cc, ov-base-sparse.cc, ov-base.cc, + ov-bool-mat.cc, ov-bool-sparse.cc, ov-bool.cc, ov-builtin.cc, + ov-cell.cc, ov-ch-mat.cc, ov-class.cc, ov-colon.cc, + ov-complex.cc, ov-cx-diag.cc, ov-cx-mat.cc, ov-cx-sparse.cc, + ov-dld-fcn.cc, ov-fcn-handle.cc, ov-fcn-inline.cc, ov-float.cc, + ov-flt-complex.cc, ov-flt-cx-diag.cc, ov-flt-cx-mat.cc, + ov-flt-re-diag.cc, ov-flt-re-mat.cc, ov-int16.cc, ov-int32.cc, + ov-int64.cc, ov-int8.cc, ov-mex-fcn.cc, ov-perm.cc, ov-range.cc, + ov-re-diag.cc, ov-re-mat.cc, ov-re-sparse.cc, ov-scalar.cc, + ov-str-mat.cc, ov-struct.cc, ov-typeinfo.cc, ov-uint16.cc, + ov-uint32.cc, ov-uint64.cc, ov-uint8.cc, ov-usr-fcn.cc, ov.cc, + pager.cc, pr-output.cc, procstream.cc, pt-arg-list.cc, + pt-assign.cc, pt-binop.cc, pt-bp.cc, pt-cbinop.cc, pt-cell.cc, + pt-check.cc, pt-cmd.cc, pt-colon.cc, pt-const.cc, pt-decl.cc, + pt-eval.cc, pt-except.cc, pt-exp.cc, pt-fcn-handle.cc, pt-id.cc, + pt-idx.cc, pt-jump.cc, pt-loop.cc, pt-mat.cc, pt-misc.cc, + pt-pr-code.cc, pt-select.cc, pt-stmt.cc, pt-unop.cc, + sighandlers.cc, sparse-xdiv.cc, sparse-xpow.cc, strfns.cc, + symtab.cc, syscalls.cc, sysdep.cc, toplev.cc, txt-eng-ft.cc, + utils.cc, variables.cc, xdiv.cc, xpow.cc, oct-parse.yy, lex.ll: + Untabify. + + 2010-02-11 John W. Eaton + + * Cell.h, base-list.h, c-file-ptr-stream.h, comment-list.h, + debug.h, defun-int.h, dynamic-ld.h, error.h, gl-render.h, + gl2ps-renderer.h, gripes.h, load-path.h, load-save.h, ls-hdf5.h, + ls-mat-ascii.h, ls-mat4.h, ls-mat5.h, ls-oct-ascii.h, + ls-oct-binary.h, oct-fstrm.h, oct-iostrm.h, oct-lvalue.h, + oct-map.h, oct-obj.h, oct-prcstrm.h, oct-stdstrm.h, + oct-stream.h, oct-strstrm.h, octave.h, ops.h, ov-base-diag.h, + ov-base-int.h, ov-base-mat.h, ov-base-scalar.h, + ov-base-sparse.h, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, + ov-bool.h, ov-builtin.h, ov-cell.h, ov-class.h, ov-complex.h, + ov-cx-diag.h, ov-cx-mat.h, ov-cx-sparse.h, ov-dld-fcn.h, + ov-fcn-handle.h, ov-fcn-inline.h, ov-fcn.h, ov-float.h, + ov-flt-complex.h, ov-flt-cx-diag.h, ov-flt-cx-mat.h, + ov-flt-re-diag.h, ov-flt-re-mat.h, ov-intx.h, ov-mex-fcn.h, + ov-perm.h, ov-range.h, ov-re-diag.h, ov-re-mat.h, + ov-re-sparse.h, ov-scalar.h, ov-str-mat.h, ov-struct.h, + ov-type-conv.h, ov-typeinfo.h, ov-usr-fcn.h, ov.h, parse.h, + pr-output.h, pt-arg-list.h, pt-assign.h, pt-binop.h, pt-cell.h, + pt-cmd.h, pt-colon.h, pt-const.h, pt-decl.h, pt-eval.h, + pt-except.h, pt-exp.h, pt-fcn-handle.h, pt-id.h, pt-idx.h, + pt-jump.h, pt-loop.h, pt-mat.h, pt-misc.h, pt-pr-code.h, + pt-select.h, pt-stmt.h, pt-unop.h, sighandlers.h, sparse-xdiv.h, + sparse-xpow.h, symtab.h, token.h, toplev.h, txt-eng-ft.h, + txt-eng.h, utils.h, variables.h, xdiv.h: Untabify. + + 2010-02-11 John W. Eaton + + * DLD-FUNCTIONS/qz.cc: Untabify. + (Fqz): Declare complex_case volatile to avoid GCC warning. + + 2010-02-11 John W. Eaton + + * DLD-FUNCTIONS/qz.cc: Style fixes. + + 2010-02-11 John W. Eaton + + * load-save.cc: If gnulib defines open, undefine it. Move + #undefs before including zfstream.h. + + 2010-01-30 Jyh-Miin Lin + + * DLD-FUNCTIONS/qz.cc (Fqz): Handle complex case without reordering. + Return Q' for Matlab compatibility. + + 2010-02-11 Jaroslav Hajek + + * symtab.cc: Reverse the effect of 2ceae0b40515. + (get_dispatch_type): If btyp_unknown occurs, read the class dispatch + type. + + 2010-02-10 John W. Eaton + + * load-save.cc: If gnulib defines close, undefine it. + + 2010-02-10 Jaroslav Hajek + + * ov-perm.h (octave_perm_matrix::builtin_type): New function. + * symtab.cc (build_sup_table): Build the matrix with extra column + and row to avoid segfault when undefined value leaks in. + (get_dispatch_type): Update. Gripe if invalid result is detected. + + 2010-02-10 John W. Eaton + + * data.cc: Ensure that CLOCKS_PER_SEC is defined instead of HZ. + (Fcputime): Use CLOCKS_PER_SEC instead of HZ. + + 2010-02-10 John W. Eaton + + * data.cc: Include . Define HZ if it is not defined. + + 2010-02-10 John W. Eaton + + * graphics.cc (base_properties::set_children): Ensure that new + children are stored as a column vector. + + * syscalls.cc (Fdup2, Fexec, Fpopen2, Ffork, Fgetpgrp, Fgetpid, + Fgetppid, Fgetegid, Fgetgid, Fgeteuid, Fkill, Ffstat, Flstat, + Fpipe, Fstat, Fwaitpid): Use DEFUNX instead of DEFUN. + + 2010-02-10 David Grundberg + + * DLD-FUNCTIONS/__magick_read__.cc (read_images): Reimplement + copying with direct fortran_vec manipulation, avoiding indexing + operations. Replace scale_quantum_to_depth calls with simple + arithmetics. + (scale_quantum_to_depth): Remove function. + + 2010-02-10 Jaroslav Hajek + + * DLD-FUNCTIONS/bsxfun.cc (Fbsxfun): Remove redundant test. Add + explanation. + + 2010-02-10 Jaroslav Hajek + + * ov-base.h (octave_base_value::is_list): Remove. + * ov.h (octave_value::is_list): Remove. + * data.cc (Fislist): Remove. + * oct-stream.cc (printf_value_cache::printf_value_cache): Don't call + is_list. + + 2010-02-10 Jaroslav Hajek + + * ov-str-mat.h (octave_char_matrix_str::is_real_type): Delete + overload. + * data.cc (Fisreal): Improve docs. + + 2010-02-10 Jaroslav Hajek + + * data.cc (Fisnumeric): Improve documentation. + (Fismatrix): Ditto. + + 2010-02-09 John W. Eaton + + * graphics.cc, graphics.h.in + (base_properties::get_hidden_children): New function. + (base_properties::get_children_internal): New function. + (base_properties::get_children): Call get_children_internal to + do the work. + (base_properties::set_children): Incorporate maybe_set_children + function here. Account for hidden children. + (maybe_set_children): Delete. + + * c-file-ptr-stream.h (c_file_ptr_buf::buf_close): Rename from close. + (c_file_ptr_buf::file_close): Rename from fclose. + (c_file_ptr_stream::stream_close): Rename from close. + (c_zfile_ptr_buf:buf_close): Rename from close. + Change all callers. + + 2010-02-09 John W. Eaton + + * dynamic-ld.cc (clear): Only warn if reloading a dynamically + linked file that defines multiple functions. + + 2010-02-09 Jaroslav Hajek + + * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx (const Array&, ...)): + Optimize creation of result indices. + * data.cc (Fsort): Ditto. + + 2010-02-09 Jaroslav Hajek + + * DLD-FUNCTIONS/colamd.cc (Fcolamd, Fsymamd, Fetree): Fix improper arg + checks. + * DLD-FUNCTIONS/ccolamd.cc (Fccolamd, Fcsymamd): Likewise. + + 2010-02-08 Jaroslav Hajek + + * ov-re-mat.cc (octave_matrix::sort): Special-case sorting a known + index vector. + + 2010-02-08 John W. Eaton + + * ov-class.cc (Fclass): If more than 1 argument, check that + call is inside class constructor first, then check for valid + arguments. + + 2010-02-05 Jaroslav Hajek + + * data.cc (F__accumarray_sum__): Allow bool and char inputs. + (do_accumarray_minmax, do_accumarray_minmax_fun): New helper funcs. + (F__accumarray_min__, F__accumarray_max__): New defuns. + + 2010-02-04 John W. Eaton + + * sysdep.cc: Don't include . + + 2010-02-04 John W. Eaton + + * graphics.h.in (gh_manager::lookup (const octave_value&)): + New function. + * graphics.cc (axes::properties::set_text_child): Validate value. + Allow value to be character string or handle of text object. + + 2010-02-04 John W. Eaton + + * Makefile.am (OCTAVE_LIBS): Include all liboctave library + dependencies here. + + 2010-02-03 Jaroslav Hajek + + * ov-fcn-handle.h (octave_fcn_handle::anonymous): New static field. + * ov-fcn-handle.cc (octave_fcn_handle::anonymous): Initialize it. + Use everywhere instead of hardwired string. + (octave_fcn_handle::print_raw): Print named function handle with + starting @. + * pt-fcn-handle.cc: Use octave_fcn_handle::anonymous rather than + hardcoded string. + + 2010-02-03 Jaroslav Hajek + + * OPERATORS/op-fcn.cc: New source. + * OPERATORS/module.mk: Include it. + + 2010-02-03 John W. Eaton + + * file-io.cc: Assume we have fcntl.h and sys/stat.h. + + * syscalls.cc: Assume we have fcntl.h and fcntl. + (Ffcntl): Use DEFUNX, not DEFUN. Call octave_fcntl, not + octave_syscalls::fcntl. + + 2010-02-03 John W. Eaton + + * DLD-FUNCTIONS/sub2ind.cc (get_dim_vector): + Eliminate unnecessary cast. + + * DLD-FUNCTIONS/qr.cc (Fqrinsert, Fqrdelete): + Avoid type mismatch errors with octave_idx_type. + + * oct-stream.cc (scanf_format_list::add_elt_to_list): + NUM_ELTS arg is octave_idx_type, not int. + + * ov-struct.cc (octave_struct::load_ascii): Ensure args to + std::max are the same type. + * DLD-FUNCTIONS/lookup.cc (do_numeric_lookup): Likewise. + * DLD-FUNCTIONS/sub2ind.cc (get_dim_vector): Likewise. + * DLD-FUNCTIONS/strfind.cc (qs_search): Likewise, for std::min. + * DLD-FUNCTIONS/tril.cc (do_tril, do_triu): Likewise. + + 2010-02-03 John W. Eaton + + * utils.cc (octave_vsnprintf): Assume we have vsnprintf with + semantics that match the version provided by gnulib. + + * DLD-FUNCTIONS/convhulln.cc (Fconvhulln): + Use std::sstream instead of fixed-length buffer and snprintf. + + 2010-02-03 John W. Eaton + + * cutils.c (octave_usleep): Implement using nanosleep. + (octave_sleep): Assume sleep exists. + + 2010-02-03 John W. Eaton + + * syscalls.cc (Fcanonicalize_file_name): + Call octave_canonicalize_file_name instead of + file_ops::canonicalize_file_name. + + 2010-02-03 John W. Eaton + + * dirfns.cc (Fpwd): Call octave_env::get_current_directory, not + octave_env::getcwd. + + * utils.cc (search_path_for_file, search_path_for_all_files, + make_absolute, Ffile_in_loadpath, Ffile_in_path, file_in_path, + contents_file_in_path, Fmake_absolute_filename): + Don't pass current directory to octave_env::make_absolute. + * ov-fcn-handle.cc (octave_fcn_handle::set_fcn): Likewise. + * octave.cc (execute_startup_files): Likewise. + * ls-mat5.cc (read_mat5_binary_element): Likewise. + * load-save.cc (find_file_to_load): Likewise. + * load-path.cc (load_path::dir_info::update, + load_path::dir_info::initialize, load_path::do_find_dir, + load_path::do_find_matching_dirs): Likewise. + * file-io.cc (do_stream_open): Likewise. + * oct-parse.yy (load_fcn_from_file, Fautoload): Likewise. + * DLD-FUNCTIONS/md5sum.cc (Fmd5sum): Likewise. + * DLD-FUNCTIONS/urlwrite.cc (Furlwrite): Likewise. + + 2010-02-02 John W. Eaton + + * syscalls.cc (Fcanonicalize_file_name): Use DEFUNX instead of DEFUN. + + 2010-02-02 Thomas Weber + + * DLD-FUNCTIONS/filter.cc: New tests. + + 2010-02-02 John W. Eaton + + * octave.cc (octave_main): Assume we have atexit. + * sighandlers.h, sighandlers.cc: Delete conditional definition + of RETSIGTYPE. Replace all uses of RETSIGTYPE with void. + (MAYBE_REINSTALL_SIGHANDLER, SIGHANDLER_RETURN): + Delete macros and all uses. + + 2010-02-01 Jaroslav Hajek + + * load-path.cc (load_path::add_to_fcn_map): Warn when core library or + built-in functions are being shadowed. + (load_path::do_add): Pass at_end to add_to_fcn_map, add_to_method_map. + Don't abort when "." not yet included. + (load_path::do_clear): Don't append "." here. + (load_path::do_set): Always prepend "." here. + (load_path::initialize): Don't explicitly include "." here. + + 2010-02-02 John W. Eaton + + * DLD-FUNCTIONS/filter.cc (filter (MArray&, MArray&, + MArrayN&, MArrayN&, int)): Return early if X is empty. + + 2010-02-02 John W. Eaton + + * cutils.c: Include , not "systime.h". + * data.cc (Fcputime): Assume we have times. + + * DLD-FUNCTIONS/getrusage.cc (Fgetrusage): Assume we have times. + Include and unconditionally. + Don't include + + 2010-02-01 Jaroslav Hajek + + * strfns.cc (Fstrncmpi): Fix typo in docstring. + + 2010-01-30 Jaroslav Hajek + + * ov-list.h, ov-list.cc, OPERATORS/op-list.cc: Remove. + + * Makefile.am, OPERATORS/module.mk: Update. + * debug.cc: Remove #include. + * ov-base.cc: Ditto. + * ov-cs-list.h: Ditto. + * ov-struct.cc: Ditto. + * pt-bp.cc: Ditto. + * ov.cc (octave_value::octave_value (const octave_value_list&)): + Simplify. + (install_types): Omit octave_list. + + 2010-01-30 Thorsten Meyer + + * DLD-FUNCTIONS/time.cc: Replace struct_contains by isfield. + + 2010-01-30 Jaroslav Hajek + + * pt-assign.h (tree_multi_assignment::etype): Remove. + (tree_multi_assignment::tree_multi_assignment): Update. + (tree_multi_assignment::op_type): Update. + * pt-assign.cc (tree_multi_assignment::tree_multi_assignment): Update. + (tree_multi_assignment::rvalue): Update. + (tree_multi_assignment::dup): Update. + * oct=parse.yy (make_assign_op): Don't allow computed multiple + assignments. + + 2010-01-30 Shai Ayal + + * DLD-FUNCTIONS/fltk_backend.cc (__fltk_redraw__): call + Fl::check twice to ensure all pending draws are shown on screen + + 2010-01-30 Jaroslav Hajek + + * oct-lvalue.h (octave_lvalue::black_hole): Remove field. + (octave_lvalue::(all methods)): Update. + * oct-lvalue.cc: Ditto. + + 2010-01-29 David Grundberg + + * mex.cc (mex::realloc): Allocate new memory if the argument is + NULL. + + 2010-01-29 Ryan Rusaw + + * pt-eval.h, pt-eval.cc (tree_evaluator::do_keyboard): + New virtual function. + + 2010-01-28 Jaroslav Hajek + + * toplev.cc (run_command_and_return_output): Fix testing of failed + process creation, simplify. + (cleanup_iprocstream): Remove. + + 2010-01-27 Jaroslav Hajek + + * pt-eval.cc (do_unwind_protect_cleanup_code): Save + current_statement and restore it after cleanup block. + + 2010-01-27 Jaroslav Hajek + + * oct-parse.yy (validate_matrix_row): New static helper func. + (cell_or_matrix_row): Call it here. + + 2010-01-27 Jaroslav Hajek + + * oct-lvalue.h (octave_lvalue::is_black_hole): New method. + (octave_lvalue::black_hole): New field. + (octave_lvalue::is_defined, octave_lvalue::is_undefined, + octave_lvalue::is_map): Make const. + (octave_lvalue::index_set): Remove field. + (octave_lvalue::octave_lvalue, octave_lvalue::operator =): Correctly + handle black holes. Update. + (dummy_value): Remove. + * pt-id.h (tree_identifier::is_black_hole): New method. + (tree_identifier::is_variable): Make virtual. + (tree_black_hole): New class. + * oct-parse.yy (magic_tilde): New terminal. + (param_list): Allow magic_tilde. + (arg_list): Allow magic_tilde. + * pt-misc.cc (tree_parameter_list::validate): Handle black holes. + * pt-idx.cc (tree_index_expression::append): Gripe if arguments + contain magic tilde. + * pt-arg-list.h (tree_argument_list::has_magic_tilde): New method + decl. + (tree_argument_list::list_includes_magic_tilde): New field. + (tree_argument_list::tree_argument_list): Initialize it in ctors. + * pt-arg-list.cc (tree_argument_list::has_magic_tilde): New method. + (tree_argument_list::append): Update list_includes_magic_tilde. + + 2010-01-27 Judd Storrs + + * ov-class.cc (octave_class::print_with_name) Add default case for + classes that don't define a display method. + + 2010-01-26 Shai Ayal + + * gl-render.cc (draw_text): scale position. + + 2010-01-26 John W. Eaton + + * dirfns.cc (Fmkdir, Frmdir, Flink, Fsymlink, Freadlink, + Frename, Ftmpnam, Fumask): Use DEFUNX instead of DEFUN. + * syscall.scc (Fmkfifo, Funlink): Ditto. + * DLD-FUNCTIONS/urlwrite.cc (cleanup_urlwrite, reset_path, + delete_file): Now static. + + 2010-01-23 John W. Eaton + + * octave.cc (octave_main): Use getopt directly instead of using + the (mostly useless) prog_args wrapper class. + Include , not "prog-args.h". + + 2010-01-23 John W. Eaton + + * sighandlers.cc (user_abort): Also set debug_mode if Vdebugging. + * debug.cc (bp_table::do_add_breakpoint, do_remove_all_breakpoints, + bp_table::do_remove_breakpoint, do_remove_all_breakpoints_in_file): + Also set debug_mode if Vdebugging. + * pt-eval.cc (visit_return_command): Actually call reset_debug_state. + (reset_debug_state): Also set debug_mode if Vdebugging. + + 2010-01-22 John W. Eaton + + * octave.cc (octave_main): Use new names for prog_args member + functions. + + 2010-01-22 John W. Eaton + + * octave.cc: Don't include sys/types.h, unistd.h, or fstream. + + 2010-01-22 John W. Eaton + + * oct-parse.yy (make_break_command, make_continue_command, + make_return_command): Don't examine evaluator state here. + * pt-eval.cc (tree_evaluator::visit_break_command): Don't set + tree_break_command::breaking unless inside function or script + body, or inside a looping command. + (tree_evaluator::visit_continue_command): Likewise, for + tree_continue_command::continuing. + (tree_evaluator::visit_return_command): Likewise, for + tree_return_command::returning. Act like dbcont if debugging + and in the top-level debugging stack frame. + + 2010-01-22 John W. Eaton + + * oct-stream.cc (octave_base_stream::do_scanf): Don't skip + whitespace, literal text, and %% elements at the end of the + format spec. Correctly process formats containing only literal text. + (scanf_format_list::finish_conversion): Don't increment nconv + for literal % characters. + (scanf_format_list::length, scanf_format_list::num_conversions): + Return octave_idx_type, not int. + (scanf_format_list::nconv, scanf_format_list::curr_idx): + Now octave_idx_type, not int. Change all uses. + (printf_format_list::length): Return octave_idx_type, not int. + (scanf_format_list::nconv, scanf_format_list::curr_idx): + Now octave_idx_type, not int. Change all uses. + (scanf_format_list::add_elt_to_list, + scanf_format_list::process_conversion, + scanf_format_list::finish_conversion, + printf_format_list::add_elt_to_list, + printf_format_list::process_conversion, + printf_format_list::finish_conversion): + Use size_t instead of int as appropriate. + * oct-stream.h: Update decls. + + 2010-01-22 John W. Eaton + + * debug.cc (Fdbcont, Fdbquit): Call reset_debug_state. + (Fdbquit): Set Vdebugging to false. + * input.cc (Fkeyboard): Set tree_evaluator::debug_state to true. + Set tree_evaluator::current_frame to the initial stack frame + that is active for debugging commands. + * pt-eval.cc (tree_evaluator::reset_debug_state): New function. + * pt-eval.h (tree_evaluator::reset_debug_state): Provide decl. + * toplev.cc (main_loop): Call tree_evaluator::reset_debug_state + if at top level. + + 2010-01-22 Jaroslav Hajek + + * data.cc (Fnorm): Don't special-case empty matrix. + * DLD-FUNCTIONS/svd.cc (Fsvd): Fix empty matrix case. Add tests. + + 2010-01-21 Jaroslav Hajek + + * ov-builtin.cc (octave_builtin::do_multi_index_op): Partially undo + previous change. + * ov-type-conv.h (octave_type_conv_body): Undo previous change. + * ov-dld-fcn.cc (octave_dld_function::do_multi_index_op): Ditto. + + 2010-01-21 John W. Eaton + + * DLD-FUNCTIONS/getrusage.cc, DLD-FUNCTIONS/getgrent.cc, + DLD-FUNCTIONS/getpwent.cc, DLD-FUNCTIONS/regexp.cc, lex.ll, + cutils.c, data.cc, defaults.cc, dirfns.cc, file-io.cc, help.cc, + input.cc, oct-hist.cc, oct-procbuf.cc, oct-procbuf.h, octave.cc, + pager.h, procstream.h, sighandlers.cc, toplev.cc, syscalls.cc, + sysdep.cc, utils.cc: Assume sys/types.h and unistd.h are present + (gnulib provides them). + + 2010-01-21 Jaroslav Hajek + + * ov-base.h (octave_base_value::dim_vector): Return 0x0 by default. + * oct-obj.h (octave_value_list::xelem, octave_value_list::clear): New + methods. + * ov-builtin.cc (octave_builtin::do_multi_index_op): Don't call + make_storable_values. Chop a potential single undefined value. + * ov-type-conv.h (octave_type_conv_body): Ensure storable value. + * ov-dld-fcn.cc (octave_dld_function::do_multi_index_op): New method. + * DLD-FUNCTIONS/cellfun.cc (get_output_list): New helper function. + (Fcellfun): Call it here. Optimize. + + 2010-01-20 John W. Eaton + + * defaults.h.in, graphics.h.in, oct-conf.h.in, oct-errno.cc.in, + version.h.in: Delete Emacs local-variable settings. + + 2010-01-20 John W. Eaton + + * cutils.c, main.c, matherr.c, siglist.c, Cell.cc, bitfcns.cc, + c-file-ptr-stream.cc, comment-list.cc, data.cc, debug.cc, + defaults.cc, defun.cc, dirfns.cc, display.cc, dynamic-ld.cc, + error.cc, file-io.cc, gl-render.cc, gl2ps-renderer.cc, + graphics.cc, gripes.cc, help.cc, input.cc, load-path.cc, + load-save.cc, ls-ascii-helper.cc, ls-hdf5.cc, ls-mat-ascii.cc, + ls-mat4.cc, ls-mat5.cc, ls-oct-ascii.cc, ls-oct-binary.cc, + ls-utils.cc, mappers.cc, oct-fstrm.cc, oct-hist.cc, + oct-iostrm.cc, oct-lvalue.cc, oct-map.cc, oct-obj.cc, + oct-prcstrm.cc, oct-procbuf.cc, oct-stream.cc, oct-strstrm.cc, + octave.cc, ov-base-int.cc, ov-base-mat.cc, ov-base-scalar.cc, + ov-base-sparse.cc, ov-base.cc, ov-bool-mat.cc, + ov-bool-sparse.cc, ov-bool.cc, ov-builtin.cc, ov-cell.cc, + ov-ch-mat.cc, ov-class.cc, ov-colon.cc, ov-complex.cc, + ov-cs-list.cc, ov-cx-mat.cc, ov-cx-sparse.cc, ov-dld-fcn.cc, + ov-fcn-handle.cc, ov-fcn-inline.cc, ov-fcn.cc, ov-float.cc, + ov-flt-complex.cc, ov-flt-cx-mat.cc, ov-flt-re-mat.cc, + ov-int16.cc, ov-int32.cc, ov-int64.cc, ov-int8.cc, ov-list.cc, + ov-mex-fcn.cc, ov-range.cc, ov-re-mat.cc, ov-re-sparse.cc, + ov-scalar.cc, ov-str-mat.cc, ov-struct.cc, ov-typeinfo.cc, + ov-uint16.cc, ov-uint32.cc, ov-uint64.cc, ov-uint8.cc, + ov-usr-fcn.cc, ov.cc, pager.cc, pr-output.cc, procstream.cc, + pt-arg-list.cc, pt-assign.cc, pt-binop.cc, pt-bp.cc, pt-cell.cc, + pt-check.cc, pt-cmd.cc, pt-colon.cc, pt-const.cc, pt-decl.cc, + pt-eval.cc, pt-except.cc, pt-exp.cc, pt-fcn-handle.cc, pt-id.cc, + pt-idx.cc, pt-jump.cc, pt-loop.cc, pt-mat.cc, pt-misc.cc, + pt-pr-code.cc, pt-select.cc, pt-stmt.cc, pt-unop.cc, pt.cc, + sighandlers.cc, sparse-xdiv.cc, sparse-xpow.cc, strfns.cc, + symtab.cc, syscalls.cc, sysdep.cc, token.cc, toplev.cc, + unwind-prot.cc, utils.cc, variables.cc, xdiv.cc, xpow.cc, + zfstream.cc, Cell.h, base-list.h, builtins.h, + c-file-ptr-stream.h, comment-list.h, debug.h, defun-dld.h, + defun-int.h, defun.h, dirfns.h, display.h, dynamic-ld.h, + error.h, file-io.h, gl2ps-renderer.h, gripes.h, help.h, input.h, + lex.h, load-path.h, load-save.h, ls-ascii-helper.h, ls-hdf5.h, + ls-mat-ascii.h, ls-mat4.h, ls-mat5.h, ls-oct-ascii.h, + ls-oct-binary.h, ls-utils.h, mex.h, mexproto.h, oct-errno.h, + oct-fstrm.h, oct-hdf5.h, oct-hist.h, oct-iostrm.h, oct-lvalue.h, + oct-map.h, oct-obj.h, oct-prcstrm.h, oct-procbuf.h, + oct-stdstrm.h, oct-stream.h, oct-strstrm.h, oct.h, octave.h, + ops.h, ov-base-int.h, ov-base-mat.h, ov-base-scalar.h, + ov-base-sparse.h, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, + ov-bool.h, ov-builtin.h, ov-cell.h, ov-ch-mat.h, ov-class.h, + ov-colon.h, ov-complex.h, ov-cs-list.h, ov-cx-mat.h, + ov-cx-sparse.h, ov-dld-fcn.h, ov-fcn-handle.h, ov-fcn-inline.h, + ov-fcn.h, ov-float.h, ov-flt-complex.h, ov-flt-cx-diag.h, + ov-flt-cx-mat.h, ov-flt-re-mat.h, ov-int-traits.h, ov-int16.h, + ov-int32.h, ov-int64.h, ov-int8.h, ov-intx.h, ov-list.h, + ov-mex-fcn.h, ov-range.h, ov-re-mat.h, ov-re-sparse.h, + ov-scalar.h, ov-str-mat.h, ov-struct.h, ov-type-conv.h, + ov-typeinfo.h, ov-uint16.h, ov-uint32.h, ov-uint64.h, + ov-uint8.h, ov-usr-fcn.h, ov.h, pager.h, parse.h, pr-output.h, + procstream.h, pt-all.h, pt-arg-list.h, pt-assign.h, pt-binop.h, + pt-bp.h, pt-cbinop.h, pt-cell.h, pt-check.h, pt-cmd.h, + pt-colon.h, pt-const.h, pt-decl.h, pt-eval.h, pt-except.h, + pt-exp.h, pt-fcn-handle.h, pt-id.h, pt-idx.h, pt-jump.h, + pt-loop.h, pt-mat.h, pt-misc.h, pt-pr-code.h, pt-select.h, + pt-stmt.h, pt-unop.h, pt-walk.h, pt.h, sighandlers.h, siglist.h, + sparse-xdiv.h, sparse-xpow.h, symtab.h, sysdep.h, token.h, + toplev.h, unwind-prot.h, utils.h, variables.h, xdiv.h, xpow.h, + zfstream.h, oct-parse.yy, lex.ll: Delete EMacs local-variable settings. + + 2010-01-20 John W. Eaton + + * DLD-FUNCTIONS/__magick_read__.cc, DLD-FUNCTIONS/balance.cc, + DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc, + DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc, + DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colamd.cc, + DLD-FUNCTIONS/colloc.cc, DLD-FUNCTIONS/conv2.cc, + DLD-FUNCTIONS/daspk.cc, DLD-FUNCTIONS/dasrt.cc, + DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/det.cc, + DLD-FUNCTIONS/dmperm.cc, DLD-FUNCTIONS/dot.cc, + DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/eigs.cc, + DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, + DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/filter.cc, + DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/fltk_backend.cc, + DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/gcd.cc, + DLD-FUNCTIONS/getgrent.cc, DLD-FUNCTIONS/getpwent.cc, + DLD-FUNCTIONS/getrusage.cc, DLD-FUNCTIONS/givens.cc, + DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/inv.cc, + DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc, + DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/luinc.cc, + DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/max.cc, + DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/qr.cc, + DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/qz.cc, + DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/regexp.cc, + DLD-FUNCTIONS/schur.cc, DLD-FUNCTIONS/sparse.cc, + DLD-FUNCTIONS/spparms.cc, DLD-FUNCTIONS/sqrtm.cc, + DLD-FUNCTIONS/svd.cc, DLD-FUNCTIONS/syl.cc, + DLD-FUNCTIONS/symbfact.cc, DLD-FUNCTIONS/time.cc, + DLD-FUNCTIONS/tril.cc: Delete Emacs local-variable settings. + + 2010-01-20 John W. Eaton + + * DLD-FUNCTIONS/__contourc__.cc, DLD-FUNCTIONS/__convn__.cc, + DLD-FUNCTIONS/__delaunayn__.cc, DLD-FUNCTIONS/__dsearchn__.cc, + DLD-FUNCTIONS/__glpk__.cc, DLD-FUNCTIONS/__lin_interpn__.cc, + DLD-FUNCTIONS/__magick_read__.cc, + DLD-FUNCTIONS/__pchip_deriv__.cc, DLD-FUNCTIONS/__qp__.cc, + DLD-FUNCTIONS/__voronoi__.cc, DLD-FUNCTIONS/amd.cc, + DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc, + DLD-FUNCTIONS/betainc.cc, DLD-FUNCTIONS/bsxfun.cc, + DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc, + DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colamd.cc, + DLD-FUNCTIONS/colloc.cc, DLD-FUNCTIONS/conv2.cc, + DLD-FUNCTIONS/convhulln.cc, DLD-FUNCTIONS/daspk.cc, + DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dassl.cc, + DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/dispatch.cc, + DLD-FUNCTIONS/dlmread.cc, DLD-FUNCTIONS/dmperm.cc, + DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/eigs.cc, + DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, + DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw.cc, + DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/find.cc, + DLD-FUNCTIONS/fltk_backend.cc, DLD-FUNCTIONS/gammainc.cc, + DLD-FUNCTIONS/gcd.cc, DLD-FUNCTIONS/getgrent.cc, + DLD-FUNCTIONS/getpwent.cc, DLD-FUNCTIONS/givens.cc, + DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/hex2num.cc, + DLD-FUNCTIONS/inv.cc, DLD-FUNCTIONS/kron.cc, + DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc, + DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/luinc.cc, + DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/md5sum.cc, + DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/qr.cc, + DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/qz.cc, + DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/rcond.cc, + DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/schur.cc, + DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/spparms.cc, + DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/svd.cc, + DLD-FUNCTIONS/syl.cc, DLD-FUNCTIONS/symbfact.cc, + DLD-FUNCTIONS/symrcm.cc, DLD-FUNCTIONS/time.cc, + DLD-FUNCTIONS/tril.cc, DLD-FUNCTIONS/tsearch.cc, + DLD-FUNCTIONS/urlwrite.cc: Untabify. + + 2010-01-20 John W. Eaton + + * TEMPLATE-INST/Array-os.cc, TEMPLATE-INST/Array-tc.cc, + TEMPLATE-INST/Array-sym.cc: Delete Emacs local-variable settings. + + 2010-01-20 Jaroslav Hajek + + * xpow.cc (xpow, elem_xpow): Don't do redundant real->complex + conversions. + + 2010-01-20 Jaroslav Hajek + + * data.cc: Substitute OCTAVE_QUIT -> octave_quit (). + * input.cc: Ditto. + * ls-mat-ascii.cc: Ditto. + * oct-stream.cc: Ditto. + * ov-base-int.cc: Ditto. + * ov-base-sparse.cc: Ditto. + * ov-bool-sparse.cc: Ditto. + * ov-cell.cc: Ditto. + * ov-cx-sparse.cc: Ditto. + * ov-flt-re-mat.cc: Ditto. + * ov-re-mat.cc: Ditto. + * ov-re-sparse.cc: Ditto. + * pr-output.cc: Ditto. + * pt-eval.cc: Ditto. + * pt-mat.cc: Ditto. + * sighandlers.cc: Ditto. + * sparse-xdiv.cc: Ditto. + * sparse-xpow.cc: Ditto. + * toplev.cc: Ditto. + * utils.cc: Ditto. + * xdiv.cc: Ditto. + * xpow.cc: Ditto. + + 2010-01-20 Jaroslav Hajek + + * DLD-FUNCTIONS/bsxfun.cc: New tests. + + 2010-01-20 David Bateman + + * graphics.h.in (string_array_property): New property. + (axes::properties): Use it here for the linestyleorder property. + Remove the markerorder property. + * genprops.awk: Emit string_array_property + + 2010-01-19 Jaroslav Hajek + + * DLD-FUNCTIONS/strfind.cc: Optimize searching for 1 or 2 characters. + + 2010-01-18 John W. Eaton + + * oct-parse.yy (fcn_end): Allow EOF as end of function if + reading from eval string. + (eval_string): Protect and set reading_fcn_file, + reading_script_file, and reading_classdef_file. + + 2010-01-18 Jaroslav Hajek + + * xpow.cc (xpow (const NDArray&, double), xpow (const FloatNDArray&, + float)): Optimize also the x.^3 case. + + 2010-01-18 David Grundberg + + * mex.cc (mexPrintf): Change signature. + * mexproto.h (mexPrintf): Ditto. + + 2010-01-18 David Grundberg + + * mexproto.h (mxSetDimensions): Change signature. + * mex.cc (mxSetDimensions): Ditto. + + 2010-01-17 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc (Fcellslices): Support dim argument, make + consistent with rest of functions. + + 2010-01-17 Thorsten Meyer + + * ov-cell.cc (Fstruct2cell): Add example, add test. + * DLD-FUNCTIONS/cellfun.cc (Fcellfun, Fnum2cell), ov-struct.cc + (Fisstruct): Fix docstring. + * DLD-FUNCTIONS/cellfun.cc (Fcellslices, Fisfield, Ffieldnames, + Frmfield): Add test. + * ov-struct.cc (Fcell2struct): Fix docstring, add test. + + 2010-01-16 David Bateman + + * graphics.h.in (line::properties, surface::properties, + patch::properties): Allow the use of a "@" marker. + (axes::properties): Add markerorder properties to set the + order of the marker styles for the "@" marker. + + 2010-01-15 Jaroslav Hajek + + * pt-mat.cc (SINGLE_TYPE_CONCAT, DO_SINGLE_TYPE_CONCAT, + DO_SINGLE_TYPE_CONCAT_NO_MUTATE): Remove macros. + (single_type_concat, do_single_type_concat, + do_single_type_concat_no_mutate): New template funcs. + (tree_matrix::rvalue1): Call them here. + + 2010-01-14 Jaroslav Hajek + + * strfns.cc (do_strcmp_fun, + strcmp_array_op, strcmp_str_op, + strcmpi_array_op, strcmpi_str_op, + strncmp_array_op, strncmp_str_op, + strncmpi_array_op, strncmpi_str_op): New functions. + (Fstrcmp, Fstrncmp): Reimplement using do_strcmp_fun. + (Fstrcmpi, Fstrncmpi): New defuns. + + 2010-01-14 Jaroslav Hajek + + * DLD-FUNCTIONS/bsxfun.cc (maybe_fill_table): register relational + handlers for char arrays. + + 2010-01-14 Jaroslav Hajek + + * ov-class.cc (octave_class::numel (const octave_value_list&)): Don't + attempt to query overloaded size. + + 2010-01-13 John W. Eaton + + * ov-fcn.h (octave_function (const std::string&, const std::string&)): + Explicitly initialize all data members. + + * ov-builtin.h (octave_builtin::octave_builtin): + Explicitly initialize base class object and data member. + + 2010-01-13 John W. Eaton + + * DLD-FUNCTIONS/__magick_read__.cc (read_indexed_images): + No need to explicitly call chop_trailing_singletons now. + + 2010-01-13 John W. Eaton + + * oct-obj.cc (octave_value_list::any_cell): Avoid assignment in + condition of if statement. + + 2010-01-13 John W. Eaton + + * DLD-FUNCTIONS/lu.cc: Avoid test failures if HAVE_QRUPDATE_LUU is + not defined. + + 2010-01-12 David Bateman + + * graphics.h.in (patch::properties): Add "flat" value to + markeredgecolor and markerfacecolor properties. + + 2010-01-12 Jaroslav Hajek + + * ov-base.h (builtin_type_t): New enum constants: btyp_cell, + btyp_struct and btyp_func_handle. + (btyp_isinteger, btyp_isfloat, btyp_isarray): New funcs. + (btyp_class_name): New array. + (get_builtin_classes): New func. + * ov-cell.h (octave_cell::builtin_type): New virtual override. + * ov-struct.h (octave_struct::builtin_type): New virtual override. + * ov-fcn-handle.h (octave_fcn_handle::builtin_type): New virtual override. + * symtab.cc (get_dispatch_type): Rewrite. Add overload. + * symtab.h: Update decls. + * ov-fcn-handle.cc (octave_fcn_handle::do_multi_index_op): Rewrite. + (get_builtin_classes): Remove. + + 2010-01-12 Jaroslav Hajek + + * oct-obj.cc (octave_value_list::any_cell): New method. + * oct-obj.h: Declare it. + * utils.cc (do_simple_cellfun): New overloaded function. + * utils.h: Declare it. + * DLD-FUNCTIONS/strfind.cc (Fstrfind): Call it here. + (Fstrrep): Also here. + + 2010-01-11 Rik + + * Makefile.am: Update DOCSTRINGS rules to avoid + simple_move_if_change_rule and allow Make to update timestamps. + + 2010-01-11 John W. Eaton + + * DLD-FUNCTIONS/urlwrite.cc (curl_handle::lasterror): + Avoid using errno as a local variable name. + + 2010-01-11 Jaroslav Hajek + + * DLD-FUNCTIONS/lu.cc (Fluupdate): Add tests for LU updating. + + 2010-01-11 Tatsuro MATSUOKA + + * Makefile.am (OCTINTERP_LINK_DEPS): Include FT2_LDFLAGS and + FT2_LIBS in the list. + + 2010-01-09 John W. Eaton + + * DLD-FUNCTIONS/lookup.cc (stri_comp_lt, stri_comp_gt): + Comment out unused functions. + + * oct-stream.cc (BEGIN_S_CONVERSION): Don't declare local tmp + variable twice. + + * gl-render.cc (opengl_renderer::draw_image): Avoid shadow + declaration warning from GCC. + + * DLD-FUNCTIONS/fltk_backend.cc (base_graphics_backend): + Avoid unused parameter warning from GCC. + * dynamic-ld.cc (octave_dynamic_loader::do_load_mex): Likewise. + + * data.cc (get_sort_mode_option): Avoid uninitialized variable + warning from GCC. + + 2010-01-08 Jaroslav Hajek + + * oct-obj.h (octave_value_list::operator () const, + octave_value_list::elem const): Return const octave_value&. + * ov.cc (octave_value::function_value, + octave_value::user_function_value, octave_value::user_script_value, + octave_value::user_code_value, octave_value::fcn_handle_value, + octave_value::fcn_inline_value): Declare as const. + * ov.h: Likewise. + * ov-base.h (octave_value::function_value const): Remove overload. + * ov-usr-fcn.h (octave_user_function::function_value const): Likewise. + * ov-builtin.h (octave_builtin::function_value const): Likewise. + * ov-builtin.h (octave_builtin::function_value const): Likewise. + + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Take a non-const copy prior to + calling non-const functions. + + + 2010-01-08 Jaroslav Hajek + + * DLD-FUNCTIONS/strfind.cc (qs_replace): New function. + (Fstrrep): Use it here. Allow S to be a cellstr. + + 2010-01-07 John W. Eaton + + * data.cc (cputime): Eliminate Windows-specific code. + + 2010-01-07 John W. Eaton + + * variables.cc (get_global_value): Fix function name in error message. + (get_top_level_value, set_top_level_value): New functions. + * variables.h (get_top_level_value, set_top_level_value): + Provide decls. + + * symtab.h (symbol_table::top_level_varref, + symbol_table::top_level_varval): New static functions. + + 2010-01-07 Jaroslav Hajek + + * utils.cc (octave_sleep (double)): Add OCTAVE_QUIT. + + 2010-01-06 Jaroslav Hajek + + * unwind_protect.h, unwind_protect.cc (unwind_protect): Rewrite. + Remove obsolete macros. Use a simple linked list. + + * debug.cc (Fdbwhere): Update to new unwind_protect style. + * dynamic-ld.cc (octave_dynamic_loader::do_load_oct, + octave_dynamic_loader::do_load_mex): Ditto. + * error.cc (Flasterror, Flasterr, error_2, warning_1): Ditto. + * graphics.cc (base_graphics_object::remove_all_listeners, + axes::update_axis_limits, gh_manager::do_execute_callback, + Fdrawnow): Ditto. + * help.cc (raw_help_from_file): Ditto. + * input.cc (do_keyboard, Fkeyboard, get_debug_input): Ditto. + * load-path.cc (load_path::do_set, execute_pkg_add_or_del, + * ls-mat4.cc (save_mat_binary_data): Ditto. + * ls-mat5.cc (read_mat5_binary_element): Ditto. + * mex.cc (call_mex, mexGetVariable): Ditto. + * oct-hist.cc (do_edit_history, do_run_history): Ditto. + * octave.cc (execute_startup_files, execute_eval_option_code, + execute_command_line_file): Ditto. + * ov-builtin.cc (octave_builtin::do_multi_index_op): Ditto. + * ov-class.cc (octave_class::subsasgn, octave_class::print_raw): + Ditto. + * ov-fcn-handle.cc (octave_fcn_handle::load_ascii, + octave_fcn_handle::load_binary, octave_fcn_handle::load_hdf5): Ditto. + * ov-list.cc (octave_list::print_raw): Ditto. + * ov-mex-fcn.cc (octave_mex_function::do_multi_index_op): Ditto. + * ov-struct.cc (octave_struct::print_raw): Ditto. + * ov-usr-fcn.cc (octave_user_script::do_multi_index_op, + octave_user_function::do_multi_index_op): Ditto. + * pager.cc (flush_octave_stdout): Ditto. + * pr-output.cc (Frats): Ditto. + * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): Ditto. + + * pt-eval.cc (tree_evaluator::visit_simple_for_command, + tree_evaluator::visit_complex_for_command, + tree_evaluator::visit_while_command, + tree_evaluator::visit_do_until_command): Update to new unwind_protect + style. + (do_catch_code): Remove. + (tree_evaluator::visit_try_catch_command): Simplify. Don't register + catch code for unwind_protect. + (tree_evaluator::do_unwind_protect_cleanup_code): Make a + tree_evaluator method. Update to new unwind_protect style. + (tree_evaluator::visit_unwind_protect_command): Use explicit try/catch + handling rather than inserting unsafe code into unwind_protect. + + * pt-eval.h (tree_evaluator::do_unwind_protect_cleanup_code): New decl. + * toplev.cc (main_loop): Update to new unwind_protect style. + (run_command_and_return_output): Ditto. + * utils.cc (Fisindex): Ditto. + * variables.cc (generate_struct_completions, safe_symbol_lookup, + do_who): Ditto. + + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Ditto. + * DLD-FUNCTIONS/daspk.cc (Fdaspk): Ditto. + * DLD-FUNCTIONS/dasrt.cc (Fdasrt): Ditto. + * DLD-FUNCTIONS/dassl.cc (Fdassl): Ditto. + * DLD-FUNCTIONS/eigs.cc (Feigs): Ditto. + * DLD-FUNCTIONS/lsode.cc (Flsode): Ditto. + * DLD-FUNCTIONS/quad.cc (Fquad): Ditto. + * DLD-FUNCTIONS/rand.cc (Frandn, Frande, Frandg, Frandp): Ditto. + * DLD-FUNCTIONS/typecast.cc (get_data_and_bytesize, Ftypecast): Ditto. + * DLD-FUNCTIONS/urlwrite.cc (Furlwrite, mput_directory, + getallfiles, F__ftp_mget__): Ditto. + + 2010-01-05 Jaroslav Hajek + + * Cell.cc (Cell::cellstr_value): New method. + * Cell.h (Cell::cellstr_value): Declare it. + + * ov-cell.h (octave_cell::cellstr_cache): Declare as autopointer. + (octave_cell::clear_cellstr_cache): Move here. + * ov-cell.cc (octave_cell::is_cellstr): Only allocate the pointer, but + don't actually create strings. + (octave_cell::cellstr_value): Use cached test, call + Cell::cellstr_value. + (octave_cell::make_cellstr_cache): Remove. + + 2010-01-05 John W. Eaton + + * Makefile.am (AM_CPPFLAGS): Include -I../libgnu in the list. + + 2010-01-04 Thorsten Meyer + + * graphics.cc (graphics_object::set (const Octave_map&)): New function. + (graphics_object::set (const Array&, const Cell&, + octave_idx_type)): New function. + (graphics_object::set_value_or_default (const caseless_str&, + const octave_value&)): New function. + (graphics_object::set (const octave_value_list&)): + Call set_value_or_default to set property values. + (Fset): Handle struct and cell array arguments. + New tests. + * graphics.h.in (graphics_objects::set): Provide decls. + + 2010-01-04 Jaroslav Hajek + + * DLD-FUNCTIONS/strfind.cc (qs_search): Optionally discard overlaps. + Return result as Array. + (Fstrfind): Use octave_value (Array) constructor. + (Fstrrep): New function. + + 2010-01-04 John W. Eaton + + * lex.ll (can_be_command): New function. + (handle_identifier): Use it. + + 2010-01-04 Marco Atzeri + + * Makefile.am (install-oct): Write $(DESTDIR)$(...), not + $(DESTDIR).$(...). + + 2010-01-02 Ben Abbott + + * mappers.cc: Change test tolerance from 1e-16 to eps. + + 2009-12-30 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc (scalar_query_helper): Remove. + (can_extract): New overloaded helper function. + (scalar_col_helper_nda): Rewrite using can_extract and + octave_value_extract. Instantiate for integer types. + (make_col_helper): Support integer types. + + + 2009-12-30 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Fix tests. + + 2009-12-28 Thomas Treichl + + * DLD-FUNCTIONS/md5sum.cc, DLD-FUNCTIONS/lookup.cc: Include + config.h before another header file. + + 2009-12-27 John W. Eaton + + * Makefile.am (xgl2ps.c): New file. + (EXTRA_DIST): Include gl2ps.c in the list. + (DIST_SRC): Include xgl2ps.c in the list instead of gl2ps.c. + + 2009-12-27 Jaroslav Hajek + + * ov.cc (decode_subscripts): Move to utils.cc. + * utils.cc (decode_subscripts): New func. + * utils.h: Declare it. + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Optimize the + `cellfun (@subsref, args, {subs}, "uniformoutput", true)' case. + + 2009-12-26 Jaroslav Hajek + + * gripes.cc (gripe_nonbraced_cs_list_assignment): New function. + * gripes.h: Declare it. + * ov-cell.cc (octave_cell::subsasgn): Use it here. + * ov-struct.cc (octave_struct::subsasgn): Also here. + * pt-idx.cc (tree_simple_assignment::rvalue1): And here. Check for + single lhs value. + + 2009-12-25 Jaroslav Hajek + + * ov-str-mat.h (octave_char_matrix_str::is_matrix_type): Remove + override. + * data.cc (Fismatrix): Update test. + + 2009-12-25 Jaroslav Hajek + + * DLD-FUNCTIONS/strfind.cc: New source. + * DLD-FUNCTIONS/module-files: Add it here. + + 2009-12-23 John W. Eaton + + * lex.ll: Use %top block to include config.h. + + 2009-12-16 Jaroslav Hajek + + * DLD-FUNCTIONS/max.cc (do_cumminmax_body): Support also btyp_bool. + + 2009-12-22 Rob Mahurin + + * find-defun-files.sh: Use SED and EGREP as returned by configure. + + 2009-12-20 Shai Ayal + + * DLD-FUNCTIONS/fltk_backend.cc (plot_sindow::set_name): New method. + (figure_manager::set_name, figure_manage::do_set_name): New methods. + (fltk_backend::property_changed): Handle change of figure title string. + + 2009-12-19 Rik + + * Makefile.am: Eliminate TOPDIR variable in favor of built-in automake + variables of top_builddir and top_srcdir. + + 2009-12-18 David Grundberg + + * ov-usr-fcn.cc (octave_user_script::do_multi_index_op): + Print script filename in script indexing errors. + (octave_user_script::subsref): Ditto. + + 2009-12-18 John W. Eaton + + * input.cc (get_debug_input): Don't attempt to get user input + unless stdin is a tty. Force interactive input mode when + reading debugging input. + (octave_gets): Bypass readline if get_input_from_eval_string is true. + + * input.cc, input.h (stdin_is_tty): New variable. + * octave.cc (octave_main): Set it to true if stdin is not a tty. + + 2009-12-16 Jaroslav Hajek + + * DLD-FUNCTIONS/max.cc (do_minmax_red_op): New + specialization. + (do_minmax_body): Handle btyp_bool. + + 2009-12-16 Jaroslav Hajek + + * symtab.cc (symbol_table::cleanup): Call clear_variables rather than + clear_all on the top and global scopes. + + 2009-12-16 John W. Eaton + + * DLD-FUNCTIONS/fltk_backend.cc (F__init_fltk__): + Add __remove_fltk__ to the list of atexit functions. + (F__remove_fltk__): Wait fltk_maxtime instead of 10 seconds. + + 2009-12-15 John W. Eaton + + * toplev.cc (do_goto_frame_relative): Stop searching at top + stack frame even though it is not a function. + + 2009-12-15 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Preserve original nargout. Call + functions with this value. Use nargout1 to possibly accumulate extra + outputs, as long as they are defined. + + 2009-12-14 Jaroslav Hajek + + * ov-range.cc (octave_range::do_index_op): Defer single subscript to + new Range methods. + + 2009-12-14 Jaroslav Hajek + + * symtab.cc (symbol_table::cleanup): New static method. + * symtab.h: Declare it. + * toplev.cc (clean_up_and_exit): Call it here. + + 2009-12-12 Shai Ayal + + * DLD-FUNCTIONS/fltk_backend.cc (plot_window::toggle_grid, + plot_window::axis_auto): Modify the axes of the correct figure. + + 2009-12-12 Shai Ayal + + * DLD-FUNCTIONS/fltk_backend.cc (plot_window::plot_window): + Handle case where window is created but not visible. Cache + window label. + (figure_manager::toggle_window_visibility, + (figure_manager::do_toggle_window_visibility): New methods. + (fltk_backend::property_change): Handle figure visibility change. + + 2009-12-11 John W. Eaton + + * graphics.h.in (base_properties::all_dynamic_properties): + No longer static. + (base_properties::set (const caseless_str&, const octave_value&)): + Only provide decl, not definition. + (base_properties::set (const caseless_str&, const std::string&, + const octave_value&)): Delete. + (base_properties::dynamic_properties): Rename from + all_dynamic_properties. No longer static. Now protected. + (base_properties::has_dynamic_property, + base_properties::dynamic_property_names, + base_properties::set_dynamic): Omit class name argument. + * graphics.cc (base_properties::all_dynamic_properties): + Delete obsolete definition. + (base_properties::dynamic_property_names): Now const. + Omit class name argument. Simply return dynamic_properties set. + (base_properties::has_dynamic_property): Omit class name argument. + Simply return dynamic_properties set. Don't pass class name to + dynamic_property_names function. + (base_properties::set_dynamic): Omit class name argument. + Dynamic_properties is no longer a map. + + * genprops.awk: Omit class name from arguments of generated + base_properties::all_property_names and base_properties::set + functions. Don't pass class name to base_properties::set in + generated derived class set functions. + + 2009-12-11 John W. Eaton + + * Makefile.am (DOCSTRINGS): Use $(cp_update_rule) instead of + cp -a --update. + + 2009-12-10 Rik + + * Makefile.am: distclean symbolic links for OCT_FILES + + 2009-12-10 Rik + + * Makefile.am: Copy DOCSTRINGS from srcdir to builddir if it does not + exist. Enables VPATH builds. + + 2009-12-10 Jaroslav Hajek + + * ov-dld-fcn.h (octave_dld_function::get_shlib): New method. + * ov-mex-fcn.h (octave_mex_function::get_shlib): New method. + * defun.cc (get_current_shlib): New function. + * defun-int.h: Declare it. + (octave_auto_shlib): New class. + + 2009-12-10 Jaroslav Hajek + + * symtab.cc (out_of_date_check): Try also autoloads. + + 2009-12-09 Jaroslav Hajek + + * symtab.h (symbol_table::fcn_info::clear_autoload_function): + New method. + (symbol_table::clear_dld_function): New method. + * dynamic-ld.cc (octave_shlib_list::do_remove): Switch order of stmts. + (octave_mex_file_list::do_remove): Likewise. + (do_clear_function): Call symbol_table::clear_dld_function. + (octave_dynamic_loader::do_load_oct): Don't use + octave_shlib::mark_relative. + (octave_dynamic_loader::do_load_mex): Ditto. + + 2009-12-10 John W. Eaton + + * file-io.cc (fopen_mode_to_ios_mode): Allow "+" at the end of + modestrings like "rb+". + + 2009-12-10 John W. Eaton + + * oct-stream.cc (BEGIN_C_CONVERSION, BEGIN_S_CONVERSION): + Store characters directly in appropriately sized std::string object. + (FINISH_CHARACTER_CONVERSION): Do store ASCII NUL values. + + 2009-12-09 John W. Eaton + + * DLD-FUNCTIONS/fltk_backend.cc: Style fixes. + + 2009-12-09 Shai Ayal + + * DLD-FUNCTIONS/fltk_backend.cc (plot_window::print): Print immediatly. + + 2009-12-09 John W. Eaton + + * gl2ps-renderer.cc (draw_pixels): New template function. + (opengl_renderer::draw_pixels): Use it. + + 2009-12-09 Shai Ayal + + * gl2ps.c, gl2ps.h: Use upstream version gl2ps-1.3.5-svn-20091202. + + * gl-render.cc (opengl_renderer::draw_pixels): New function. + (opengl_renderer::draw_image): Correctly handle images with width + or height of 1. Use draw_pixels. + * gl-render.h (opengl_renderer::draw_pixels): Provide decl. + + * gl2ps-renderer.cc (glps_renderer::draw_pixels): New function. + * gl2ps-renderer.h (glps_renderer::draw_pixels): Provide decl. + + 2009-12-09 John W. Eaton + + * load-save.cc: Call nstrftime instead of my_strftime. + + 2009-12-09 John W. Eaton + + * load-save.cc: Include strftime.h. + (write_header): Call my_strftime instead of strftime. + + * Makefile.am (AM_CPPFLAGS): Add -I$(top_srcdir)/libgnu to the list. + (OCTAVE_LIBS, OCTINTERP_LINK_DEPS, OCT_LINK_DEPS): + Add ../libgnu/libgnu.la to the list. + + 2009-12-09 Rik + + * Makefile.am: Distribute DOCSTRINGS in tar.gz file + + 2009-12-07 Jaroslav Hajek + + * dirfns.cc (Ffnmatch): Simplify. + + 2009-12-08 Michael Goffioul + + * ov-ch-mat.cc: Add missing #include. + * oct-stream.cc (do_read): Simplify. + * gl-render.h: Undef min and max after #including windows.h. + + 2009-12-08 John W. Eaton + + * Makefile.am (gendoc.cc): Don't pass $(srcdidr) to mkgendoc. + + 2009-12-07 John W. Eaton + + * OPERATORS/op-b-b.cc, OPERATORS/op-b-bm.cc, + OPERATORS/op-b-sbm.cc, OPERATORS/op-bm-b.cc, + OPERATORS/op-bm-bm.cc, OPERATORS/op-bm-sbm.cc, + OPERATORS/op-cdm-cdm.cc, OPERATORS/op-cdm-cm.cc, + OPERATORS/op-cdm-cs.cc, OPERATORS/op-cdm-dm.cc, + OPERATORS/op-cdm-m.cc, OPERATORS/op-cdm-s.cc, + OPERATORS/op-cell.cc, OPERATORS/op-chm.cc, + OPERATORS/op-class.cc, OPERATORS/op-cm-cdm.cc, + OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, + OPERATORS/op-cm-dm.cc, OPERATORS/op-cm-m.cc, + OPERATORS/op-cm-pm.cc, OPERATORS/op-cm-s.cc, + OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, + OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-cs.cc, + OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc, + OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, + OPERATORS/op-dm-cdm.cc, OPERATORS/op-dm-cm.cc, + OPERATORS/op-dm-cs.cc, OPERATORS/op-dm-dm.cc, + OPERATORS/op-dm-m.cc, OPERATORS/op-dm-s.cc, + OPERATORS/op-dm-scm.cc, OPERATORS/op-dm-sm.cc, + OPERATORS/op-dm-template.cc, OPERATORS/op-dms-template.cc, + OPERATORS/op-double-conv.cc, OPERATORS/op-fcdm-fcdm.cc, + OPERATORS/op-fcdm-fcm.cc, OPERATORS/op-fcdm-fcs.cc, + OPERATORS/op-fcdm-fdm.cc, OPERATORS/op-fcdm-fm.cc, + OPERATORS/op-fcdm-fs.cc, OPERATORS/op-fcm-fcdm.cc, + OPERATORS/op-fcm-fcm.cc, OPERATORS/op-fcm-fcs.cc, + OPERATORS/op-fcm-fdm.cc, OPERATORS/op-fcm-fm.cc, + OPERATORS/op-fcm-fs.cc, OPERATORS/op-fcm-pm.cc, + OPERATORS/op-fcs-fcm.cc, OPERATORS/op-fcs-fcs.cc, + OPERATORS/op-fcs-fm.cc, OPERATORS/op-fcs-fs.cc, + OPERATORS/op-fdm-fcdm.cc, OPERATORS/op-fdm-fcm.cc, + OPERATORS/op-fdm-fcs.cc, OPERATORS/op-fdm-fdm.cc, + OPERATORS/op-fdm-fm.cc, OPERATORS/op-fdm-fs.cc, + OPERATORS/op-float-conv.cc, OPERATORS/op-fm-fcdm.cc, + OPERATORS/op-fm-fcm.cc, OPERATORS/op-fm-fcs.cc, + OPERATORS/op-fm-fdm.cc, OPERATORS/op-fm-fm.cc, + OPERATORS/op-fm-fs.cc, OPERATORS/op-fm-pm.cc, + OPERATORS/op-fs-fcm.cc, OPERATORS/op-fs-fcs.cc, + OPERATORS/op-fs-fm.cc, OPERATORS/op-fs-fs.cc, + OPERATORS/op-i16-i16.cc, OPERATORS/op-i32-i32.cc, + OPERATORS/op-i64-i64.cc, OPERATORS/op-i8-i8.cc, + OPERATORS/op-int-concat.cc, OPERATORS/op-int-conv.cc, + OPERATORS/op-list.cc, OPERATORS/op-m-cdm.cc, + OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc, + OPERATORS/op-m-dm.cc, OPERATORS/op-m-m.cc, OPERATORS/op-m-pm.cc, + OPERATORS/op-m-s.cc, OPERATORS/op-m-scm.cc, + OPERATORS/op-m-sm.cc, OPERATORS/op-pm-cm.cc, + OPERATORS/op-pm-fcm.cc, OPERATORS/op-pm-fm.cc, + OPERATORS/op-pm-m.cc, OPERATORS/op-pm-pm.cc, + OPERATORS/op-pm-scm.cc, OPERATORS/op-pm-sm.cc, + OPERATORS/op-pm-template.cc, OPERATORS/op-range.cc, + OPERATORS/op-s-cm.cc, OPERATORS/op-s-cs.cc, OPERATORS/op-s-m.cc, + OPERATORS/op-s-s.cc, OPERATORS/op-s-scm.cc, + OPERATORS/op-s-sm.cc, OPERATORS/op-sbm-b.cc, + OPERATORS/op-sbm-bm.cc, OPERATORS/op-sbm-sbm.cc, + OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc, + OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc, + OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc, + OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc, + OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc, + OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc, + OPERATORS/op-str-m.cc, OPERATORS/op-str-s.cc, + OPERATORS/op-str-str.cc, OPERATORS/op-struct.cc, + OPERATORS/op-ui16-ui16.cc, OPERATORS/op-ui32-ui32.cc, + OPERATORS/op-ui64-ui64.cc, OPERATORS/op-ui8-ui8.cc: + Delete Emacs local-variable settings. + + 2009-12-07 John W. Eaton + + * OPERATORS/op-pm-sm.cc, OPERATORS/op-pm-scm.cc, + OPERATORS/op-dm-sm.cc, OPERATORS/op-dm-scm.cc, + OPERATORS/op-fs-fm.cc, OPERATORS/op-fs-fcm.cc, + OPERATORS/op-fs-fcs.cc, OPERATORS/op-fm-fm.cc, + OPERATORS/op-fm-fcs.cc, OPERATORS/op-fm-fcm.cc, + OPERATORS/op-fcs-fs.cc, OPERATORS/op-fcs-fm.cc, + OPERATORS/op-fcs-fcm.cc, OPERATORS/op-fcm-fs.cc, + OPERATORS/op-fcm-fm.cc, OPERATORS/op-fm-fs.cc, + OPERATORS/op-fcm-fcm.cc, OPERATORS/op-class.cc, + OPERATORS/op-fcm-fcs.cc, OPERATORS/op-str-str.cc, + OPERATORS/op-str-s.cc, OPERATORS/op-str-m.cc, + OPERATORS/op-struct.cc, OPERATORS/op-sm-scm.cc, + OPERATORS/op-sm-s.cc, OPERATORS/op-sm-sm.cc, + OPERATORS/op-sm-cs.cc, OPERATORS/op-sm-cm.cc, + OPERATORS/op-scm-sm.cc, OPERATORS/op-scm-scm.cc, + OPERATORS/op-scm-s.cc, OPERATORS/op-scm-m.cc, + OPERATORS/op-scm-cs.cc, OPERATORS/op-sm-m.cc, + OPERATORS/op-sbm-sbm.cc, OPERATORS/op-scm-cm.cc, + OPERATORS/op-sbm-bm.cc, OPERATORS/op-s-sm.cc, + OPERATORS/op-s-scm.cc, OPERATORS/op-sbm-b.cc, + OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, + OPERATORS/op-m-cm.cc, OPERATORS/op-int.h, + OPERATORS/op-int-conv.cc, OPERATORS/op-int-concat.cc, + OPERATORS/op-cs-sm.cc, OPERATORS/op-cs-scm.cc, + OPERATORS/op-cm-sm.cc, OPERATORS/op-cs-cs.cc, + OPERATORS/op-cm-m.cc, OPERATORS/op-cm-scm.cc, + OPERATORS/op-cm-cm.cc, OPERATORS/op-chm.cc, + OPERATORS/op-cell.cc, OPERATORS/op-bm-sbm.cc, + OPERATORS/op-bm-bm.cc, OPERATORS/op-bm-b.cc, + OPERATORS/op-b-sbm.cc, OPERATORS/op-fcs-fcs.cc: + Untabify. + + 2009-12-07 Jaroslav Hajek + + * Makefile.am: Build OPT_HANDLERS before DEF_FILES. + + 2009-12-06 Rik + + * Makefile.am: Distribute DOCSTRINGS so that documentation will + not require rebuild after merely untarring a distribution. + + 2009-12-05 Jaroslav Hajek + + * DLD-FUNCTIONS/lookup.cc (Flookup): Document complexity. + + 2009-12-05 Jaroslav Hajek + + * DLD-FUNCTIONS/lookup.cc (do_numeric_lookup): Rewrite. + (Flookup): Simplify string part. Use Array::lookup. + + 2009-12-04 John W. Eaton + + * DLD-FUNCTIONS/urlwrite.cc (curl_handle::init): Always use + CURLOPT_USERPWD instead of CURLOPT_USER and CURLOPT_PASSWD. + + 2009-12-04 John W. Eaton + + * version.h.in (OCTAVE_API_VERSION_NUMBER): New macro. + * Makefile.am (version.h): Substitute OCTAVE_API_VERSION_NUMBER. + + 2009-12-04 John W. Eaton + + * Makefile.am (mkdefs): New arguments, srcdir and file. + Generate output here. (.cc.df): Not here. + + 2009-12-04 John W. Eaton + + * Makefile.am (BUILT_SOURCES): Include graphics-props.cc in the + list. + + 2009-12-04 John W. Eaton + + * Makefile.am (liboctinterp_la_SOURCES): Remove $(OPT_HANDLERS) + from the list. + + 2009-12-03 John W. Eaton + + * Makefile.am (CLEANFILES): Include DLD-FUNCTIONS/PKG_ADD, + doc-files, gendoc.cc, gendoc$(BUILD_EXEEXT), graphics-props.cc, + oct-parse.output, $(BUILT_NODISTFILES) in the list. Remove + $(BUILT_SOURCES) from the list. (MAINTAINERCLEANFILES): New + variable. (BUILT_DISTFILES): Remove oct-parse.cc and lex.cc + from the list. (BUILT_NODISTFILES): Include defaults.h, + graphics.h, oct-conf.h, oct-errno.cc, ops.cc, mxarray.h, and + version.h in the list. Remove $(OPT_INC) from the list. + (BUILT_SOURCES): Include mxarray.h and version.h in the list. + (EXTRA_DIST): Include version.h.in in the list. (.cc.df): Don't + silence rules. Omit $(srcdir) from XDEFUN_FILE_NAME. + ($(DEF_FILES)): Depend on mkdefs and Makefile. (mxarray.h, + version.h): New rules. (DLD-FUNCTIONS/PKG_ADD): Don't silence + rules. (builtins.cc, DOCSTRINGS, gendoc.cc, ops.cc, + $(OPT_HANDLERS)) oct-errno.cc, oct-gperf.h): Don't silence + rules. (doc-files, defaults.h, oct-conf.h): Don't silence + rules. + + * mxarray.h.in, version.h.in: Use % to delimit substitutions, + not @. + + * mkbuiltins: Operate on a list of files passed as arguments. + + * genprops.awk: Write either graphics.h or graphics-props.cc to + stdout instead of graphics.h simultaneously with + graphics-props.cc ot a file. * Makefile.am (graphics.h, + graphics-props.cc): Split into two separate rules. + + * find-defun-files.sh: Omit directory part from .df file names. + Operate on .ll and .yy files instead of generated .cc files. + + 2009-12-02 Rik + + * DLD-FUNCTIONS/urlwrite.cc: Correctly compile code even when + libcurl is not present according to configure. + + 2009-12-01 Jaroslav Hajek + + * ov-bool-mat.h (octave_bool_matrix::octave_bool_matrix (const + boolNDArray&, const idx_vector&)): New constructor. + * ov-re-mat.h (octave_bool_matrix::octave_bool_matrix (const + NDArray&, const idx_vector&)): Simplify. + * ov.cc (octave_value::octave_value (const idx_vector&)): Allow + the mask case. + * DLD-FUNCTIONS/find.cc (Ffind): Explicitly call unmask. + + 2009-11-30 Kacper Kowalik + + * oct-hdf5.h: Drop force the use of the v1.6 API * ls-hdf5.cc, + ov-base-int.cc, ov-bool-mat.cc, ov-bool-sparse.cc, ov-bool.cc, + ov-cell.cc, ov-class.cc, ov-complex.cc, ov-cx-mat.cc, + ov-cx-sparse.cc, ov-fcn-handle.cc, ov-fcn-inline.cc, + ov-float.cc, ov-flt-complex.cc, ov-flt-cx-mat.cc, + ov-flt-re-mat.cc, ov-list.cc, ov-range.cc, ov-re-mat.cc, + ov-re-sparse.cc, ov-scalar.cc, ov-str-mat.cc, ov-struct.cc: + Allow v1.8 API versions of hdf5 functions. + + 2009-11-30 John W. Eaton + + * DLD-FUNCTIONS/fft2.cc (Fifft2): Docstring fix. + + 2009-11-29 Jaroslav Hajek + + * pt-unop.cc (tree_prefix_expression::rvalue1): Try to use + octave_value::do_non_const_unary_op. + + 2009-11-29 Jaroslav Hajek + + * DLD-FUNCTIONS/urlwrite.cc (curl_handle::init): Use + CURLOPT_USERPWD if libcurl ver < 7.19.0. + + 2009-11-28 Shai Ayal + + * gl-render.cc (opengl_renderer::draw_image): Handle indexed + images. + + 2009-11-28 Shai Ayal + + * gl-render.h (opengl_renderer::draw): Draw children from end of + list to preserve correct stacking order (first child should be + on top). + + * graphics.cc (maybe_set_children): Store sorted child lists. + + 2009-11-27 Kacper Kowalik + + * ls-hdf5.cc (have_h5giterate_bug): Drop this group iteration + flag for buggy pre 1.2.2 versions of hdf5. * ov-base-int.cc + (octave_base_int_matrix::load_hdf5) + octave_base_int_scalar::load_hdf5), ov-base-int.h + (octave_base_int_matrix::load_hdf5, + octave_base_int_scalar::load_hdf5), ov-base.cc + (octave_base_value::load_hdf5), ov-base.h + (octave_base_value::load_hdf5), ov-bool-mat.cc + (octave_bool_matrix::load_hdf5), ov-bool-mat.h + (octave_bool_matrix::load_hdf5), ov-bool-sparse.cc + (octave_sparse_bool_matrix::load_hdf5), ov-bool-sparse.h + (octave_sparse_bool_matrix::load_hdf5), ov-bool.cc + (octave_bool::load_hdf5), ov-bool.h (octave_bool::load_hdf5), + ov-cell.cc (octave_cell::load_hdf5), ov-cell.h + (octave_cell::load_hdf5), ov-class.cc (octave_class::load_hdf5), + ov-class.h (octave_class::load_hdf5), ov-complex.cc + (octave_complex::load_hdf5), ov-complex.h + (octave_complex::load_hdf5), ov-cx-mat.cc + (octave_complex_matrix::load_hdf5), ov-cx-mat.h + (octave_complex_matrix::load_hdf5), ov-cx-sparse.cc + (octave_sparse_complex_matrix::load_hdf5), ov-cx-sparse.h + (octave_sparse_complex_matrix::load_hdf5), ov-fcn-handle.cc + (octave_fcn_handle::load_hdf5), ov-fcn-handle.h + (octave_fcn_handle::load_hdf5), ov-fcn-inline.cc + (octave_fcn_inline::load_hdf5), ov-fcn-inline.h + (octave_fcn_inline::load_hdf5), ov-float.cc + (octave_float_scalar::load_hdf5), ov-float.h + (octave_float_scalar::load_hdf5), ov-flt-complex.cc + (octave_float_complex::load_hdf5), ov-flt-complex.h + (octave_float_complex::load_hdf5), ov-flt-cx-mat.cc + (octave_float_complex_matrix::load_hdf5), ov-flt-cx-mat.h + (octave_float_complex_matrix::load_hdf5), ov-flt-re-mat.cc + (octave_float_matrix::load_hdf5), ov-flt-re-mat.h + (octave_float_matrix::load_hdf5), ov-list.cc + (octave_list::load_hdf5), ov-list.h (octave_list::load_hdf5), + ov-range.cc (octave_range::load_hdf5), ov-range.h + (octave_range::load_hdf5), ov-re-mat.cc + (octave_matrix::load_hdf5), ov-re-mat.h + (octave_matrix::load_hdf5), ov-re-sparse.cc + (octave_sparse_matrix::load_hdf5), ov-re-sparse.h + (octave_sparse_matrix::load_hdf5), ov-scalar.cc + (octave_scalar::load_hdf5), ov-scalar.h + (octave_scalar::load_hdf5), ov-str-mat.cc + (octave_char_matrix_str::load_hdf5), ov-str-mat.h + (octave_char_matrix_str::load_hdf5), ov-struct.cc + (octave_struct::load_hdf5), ov-struct.h + (octave_struct::load_hdf5), ov.h (octave_value::load_hdf5): + Remove have_hg5iterate_bug from the call to load_hdf5. + * ov-cell.cc (octave_bool::load_hdf5), ov-class.cc + (octave_class::load_hdf5), ov-fcn-handle.cc + (octave_fcn_handle::load_hdf5), ov-list.cc + (octave_list::load_hdf5), ov-struct.cc + (octave_struct::load_hdf5): Remove HAVE_H5GGET_NUM_OBJS cruft + for old hdf5 versions. + + 2009-11-27 David Bateman + + * DLD-FUNCTIONS/urlwrite.cc (curl_handle, curl_handles): Add + classes to manage the open curl connections. (F__ftp__, + F__ftp_pwd__, F__ftp_cwd__, F__ftp_dir__, F__ftp_ascii__, + F__ftp_binary__, F__ftp_close__, F__ftp_mode__, F__ftp_delete__, + F__ftp_rmdir__, F__ftp_mkdir__, F__ftp_rename__, F__ftp_mput__, + F__ftp_mget__): New functions. + + 2009-11-27 Jaroslav Hajek + + * ov.cc (octave_value::octave_value (const index_vector&)): Take + a copy if idx to allow mutation. + + 2009-11-26 Jaroslav Hajek + + * DLD-FUNCTIONS/dot.cc (Fdot): Update docs. + + 2009-11-26 Jaroslav Hajek + + * DLD-FUNCTIONS/dot.cc: New source. + * DLD-FUNCTIONS/module-files: Include it. + + 2009-11-26 Jaroslav Hajek + + * data.cc (Fismatrix): Return true for empty matrices as well. + + 2009-11-25 Jaroslav Hajek + + * DLD-FUNCTIONS/chol.cc (get_chol_l): New helper function. + (Fchol): Use it to set MatrixType for lower triangular factors + as well. Use default octave_idx_type->octave_value conversion. + + 2009-11-24 Jaroslav Hajek + + * data.cc (do_accumarray_sum): Simplify. + + 2009-11-24 Jaroslav Hajek + + * ov-struct.cc (octave_struct::save_binary): Save dimensions for + structs. (octave_struct::load_binary): Load dimensions if + present, use 1x1 otherwise. + + 2009-11-23 Jaroslav Hajek + + * data.cc (Fmerge): Add missing parentheses. + + 2009-11-23 Jaroslav Hajek + + * ov-complex.h (octave_complex::bool_value, + octave_complex::bool_array_value): New methods. + * ov-flt-complex.h (octave_float_complex::bool_value, + octave_float_complex::bool_array_value): New methods. + * ov-cx-mat.cc (octave_complex_matrix::bool_array_value): New + method. * ov-cx-mat.h: Declare it. + * ov-flt-cx-mat.cc (octave_float_complex_matrix::bool_array_value): + New method. + * ov-flt-cx-mat.h: Declare it. + + 2009-11-23 Jaroslav Hajek + + * ov-struct.cc (octave_struct::save_ascii): Save dimensions for + structs. (octave_struct::load_ascii): Load dimensions if + present, use 1x1 otherwise. + + 2009-11-20 Jaroslav Hajek + + * data.cc (Fmerge): Correct query for logical masks. + + 2009-11-20 Jaroslav Hajek + + * utils.cc (dims_to_numel): Fallback to index_vector query for + non-numeric types. + + 2009-11-20 Jaroslav Hajek + + * ov-bool.h (octave_bool::is_numeric_type): New overload. + * ov-bool-mat.h (octave_bool-matrix::is_numeric_type): New overload. + + 2009-11-19 Jaroslav Hajek + + * ov-base.h (unary_mapper_t): New member: umap_erfinv. + * ov-base.c (octave_base_value::get_umap_name): Add "erfinv" here. + * ov.h (octave_value::erfinv): New method. + * ov-scalar.cc (octave_scalar::map): Handle umap_erfinv. + * ov-float.cc (octave_float::map): Ditto. + * ov-re-mat.cc (octave_matrix::map): Ditto. + * ov-flt-re-mat.cc (octave_float_matrix::map): Ditto. + * ov-re-sparse.cc (octave_sparse_matrix::map): Ditto. + * mappers.cc (Ferfinv): New DEFUN. + + 2009-11-14 Shai Ayal + + * gl-render.cc (opengl_renderer::text_to_pixels): New function + from code in render_text to produce the pixels and compute + bounding box. (opengl_renderer::render_text): Call + text_to_pixels to compute rotation mode and bounding box. + * gl-renger.h (opengl_renderer::text_to_pixels): Provide decl. + * gl2ps-renderer.cc (glps_renderer::render_text): Call + text_to_pixels to compute bounding box. + (glps_renderer::set_font): Call opengl_renderer::set_font. + + 2009-11-18 Michael Godfrey + + * txt-eng-ft.cc: Relax font match test. + + 2009-11-18 Jaroslav Hajek + + * DLD-FUNCTIONS/bsxfun.cc (bsxfun_builtin_op): New member: + bsxfun_builtin_power. (bsxfun_builtin_names): Include "power". + (do_bsxfun_real_pow): New static function. (maybe_fill_table): + Register power handlers. + + 2009-11-13 Jaroslav Hajek + + * ov-complex.cc (octave_complex::try_narrowing_conversion): + Don't check signbit. + * ov-flt-complex.cc + (octave_float_complex::try_narrowing_conversion): Ditto. + * ov-cx-mat.cc (octave_complex_matrix::try_narrowing_conversion): + Simplify. Don't check signbit. + * ov-flt-cx-mat.cc + (octave_float_complex_matrix::try_narrowing_conversion): Ditto. + + 2009-11-17 Jaroslav Hajek + + * ov-re-mat.cc (do_rc_map): New static function. + (octave_matrix::map): Use it here. + * ov-flt-re-mat.cc (do_rc_map): New static function. + (octave_float_matrix::map): Use it here. + + 2009-11-17 Jaroslav Hajek + + * DLD-FUNCTIONS/balance.cc: Fix docs. + + 2009-11-13 John W. Eaton + + * Makefile.am (liboctinterp_la_CPPFLAGS): Define. + + 2009-11-13 Joel Keay + + * graphics.h.in (image::properties::init): Also allow single, + int16, and uint16 data types. + + 2009-11-13 Jaroslav Hajek + + * ov-base.h (unary_mapper_t): Move to octave_base_value. + * ov.h: Partially revert to c657c056240d. + (FORWARD_MAPPER): Update to use octave_base_value::map. + (octave_value::map): Ditto. + * mappers.cc: Revert to c657c056240d. + * data.cc: Ditto. + * Cell.h, Cell.cc: Ditto. + * ov-cell.cc (octave_cell::map): Rewrite. + * ov-base-sparse.cc (octave_base_sparse::map): New method. + * ov-base-sparse.h: Declare it. + * ov-re-sparse.cc (octave_sparse_matrix::map): Use it as a fallback. + * ov-cx-sparse.cc (octave_sparse_complexmatrix::map): Ditto. + + 2009-11-12 Jaroslav Hajek + + * ov-base.h (unary_mapper_t): New enum. + (octave_base_value::map (unary_mapper_t)): New method. + (octave_base_value::abs, octave_base_value::acos, + octave_base_value::acosh, octave_base_value::angle, + octave_base_value::arg, octave_base_value::asin, + octave_base_value::asinh, octave_base_value::atan, + octave_base_value::atanh, octave_base_value::ceil, + octave_base_value::conj, octave_base_value::cos, + octave_base_value::cosh, octave_base_value::erf, + octave_base_value::erfc, octave_base_value::exp, + octave_base_value::expm1, octave_base_value::finite, + octave_base_value::fix, octave_base_value::floor, + octave_base_value::gamma, octave_base_value::imag, + octave_base_value::isinf, octave_base_value::isna, + octave_base_value::isnan, octave_base_value::lgamma, + octave_base_value::log, octave_base_value::log2, + octave_base_value::log10, octave_base_value::log1p, + octave_base_value::real, octave_base_value::round, + octave_base_value::roundb, octave_base_value::signum, + octave_base_value::sin, octave_base_value::sinh, + octave_base_value::sqrt, octave_base_value::tan, + octave_base_value::tanh): Remove. + + * ov.h (octave_value::map (unary_mapper_t)): New method. + (octave_value::abs, octave_value::acos, octave_value::acosh, + octave_value::angle, octave_value::arg, octave_value::asin, + octave_value::asinh, octave_value::atan, octave_value::atanh, + octave_value::ceil, octave_value::conj, octave_value::cos, + octave_value::cosh, octave_value::erf, octave_value::erfc, + octave_value::exp, octave_value::expm1, octave_value::finite, + octave_value::fix, octave_value::floor, octave_value::gamma, + octave_value::imag, octave_value::isinf, octave_value::isna, + octave_value::isnan, octave_value::lgamma, octave_value::log, + octave_value::log2, octave_value::log10, octave_value::log1p, + octave_value::real, octave_value::round, octave_value::roundb, + octave_value::signum, octave_value::sin, octave_value::sinh, + octave_value::sqrt, octave_value::tan, octave_value::tanh): Remove. + + * ov-scalar.h, ov-scalar.cc (octave_scalar): Update. + * ov-float.h, ov-float.cc (octave_float): Update. + + * ov-complex.h, ov-complex.cc (octave_complex): Update. + * ov-flt-complex.h, ov-flt-complex.cc (octave_float_complex): + Update. + + * ov-re-matrix.h, ov-re-matrix.cc (octave_matrix): Update. + * ov-flt-re-matrix.h, ov-flt-re-matrix.cc (octave_float_matrix): Update. + * ov-cx-matrix.h, ov-cx-matrix.cc (octave_complex_matrix): Update. + * ov-flt-cx-matrix.h, ov-flt-cx-matrix.cc + (octave_float_complex_matrix): Update. + + * ov-re-sparse.h, ov-re-sparse.cc (octave_sparse_matrix): Update. + * ov-cx-sparse.h, ov-cx-sparse.cc (octave_sparse_complex_matrix): + Update. + + * ov-re-diag.h, ov-re-diag.cc (octave_diag_matrix): Update. + * ov-flt-re-diag.h, ov-flt-re-diag.cc (octave_float_diag_matrix): + Update. + * ov-cx-diag.h ov-cx-diag.cc (octave_complex_diag_matrix): Update. + * ov-flt-cx-diag.h, ov-flt-cx-diag.cc + (octave_float_complex_diag_matrix): Update. + + * ov-range.h (octave_range): Update. + * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T): Update. + (OCTAVE_VALUE_INT_SCALAR_T): Update. + + * ov-perm.h (octave_perm_matrix): Update. + * ov-bool.h (octave_bool): Update. + * ov-bool-mat.h (octave_bool_matrix): Update. + * ov-ch-mat.h (octave_char_matrix): Update. + + * mappers.cc (Fabs, Facos, Facosh, Fangle, Farg, Fasin, Fasinh, + Fatan, Fatanh, Fceil, Fconj, Fcos, Fcosh, Ferf, Ferfc, Fexp, + Fexpm1, Ffinite, Ffix, Ffloor, Fgamma, Fimag, Fisinf, Fisna, + Fisnan, Flgamma, Flog, Flog2, Flog10, Flog1p, Freal, Fround, + Froundb, Fsignum, Fsin, Fsinh, Fsqrt, Ftan, Ftanh, Fisalnum, + Fisalpha, Fisascii, Fiscntrl, Fisdigit, Fisgraph, Fislower, + Fisprint, Fispunct, Fisspace, Fisupper, Fisxdigit, Ftoascii, + Ftolower, Ftoupper): Update. + + 2009-11-11 John W. Eaton + + * load-path.cc (load_path::do_find_all_first_of): Take advantage + of string_vector (std::list) constructor. + + 2009-11-11 John W. Eaton + + * help.cc (do_get_help_text_from_file, + Fget_help_text_from_file): New functions. + (do_get_help_text): Pass NAME by const reference. + * utils.cc (find_dir_in_path): New optional argument "all". + * load-path.cc (load_path::do_find_matching_dirs): New function. + (load_path::do_find_dir): Perform match on absolute directory + names, but return name as it appears in dir_info_list. Adjust + dname_len after stripping directory separator. + * load-path.h (load_path::do_find_matching_dirs): Provide decl. + (load_path::find_matching_dirs): New function. + + 2009-11-11 Shai Ayal + + * DLD-FUNCTIONS/fltk_backend.cc (Fl_Gl_Window::draw): + If zooming, call overlay. + (Fl_Gl_Window::overlay): Rename from draw_overlay. Don't return + early if zooming. Don't call valid and conditionally call + setup_veiwport. Set overlay color and draw line around zoom box. + (Fl_Gl_Window::zoom_box_vertex): New function. + (Fl_Gl_Window::pixel2status): Call canvas->redraw, not + canvas->redraw_overlay. + + 2009-11-10 Shai Ayal + + * gl2ps-renderer.cc, gl2ps-renderer.h, gl2ps.c, gl2ps.h: New + files. PostScript backend based on opengl_renderer and gl2ps. + * Makefile.am (octinclude_HEADERS): Add gl2ps.h to the list. + (DIST_SRC): Add gl2ps.c to the list. + * gl-render.cc (opengl_renderer::render_text): Rename from + opengl_renderer::draw_text. + (opengl_renderer::draw_figure, opengl_renderer::draw_axes, + opengl_renderer::draw_line, opengl_renderer::draw_surface, + opengl_renderer::draw_patch, opengl_renderer::draw_hggroup, + opengl_renderer::draw_text, opengl_renderer::draw_image): + Rename from overloaded opengl_renderer::draw. + * gl-render.h: Fix decls. + + * DLD-FUNCTIONS/fltk_backend.cc (OpenGL_fltk::print): New function. + (OpenGL_fltk::print_filename): New data member. + (OpenGL_fltk::draw): Add support for printing. + (fltk_backend::print_figure): Call figure_manager::print. + + 2009-11-10 John W. Eaton + + * file-io.cc (Fferror): Update doc string. + + 2009-11-10 David Grundberg + + * oct-strstrm.h (octave_base_strstream::tell): Declare virtual. + (octave_istrstream::tell): New method. + + 2009-11-10 John W. Eaton + + * Makefile.am, OPERATORS/module.mk, TEMPLATE-INST/module.mk, + find-defun-files.sh, version.h.in, + DLD-FUNCTIONS/config-module.awk, DLD-FUNCTIONS/config-module.sh, + DLD-FUNCTIONS/module-files: New files. + * Makefile.in, version.h: Delete. + * lex.ll: Rename from lex.l. Include oct-parse.h instead of y.tab.h. + * parse.yy: Rename from parse.y + * mkbuiltins, mkgendoc: Don't require filenames to start with a + "." at beginning of line. + + * oct-conf.h.in (OCTAVE_CONF_LAPACK_LIBS): Delete macro. + * toplev.cc (octave_config_info): Don't include LAPACK_LIBS in the + struct. + + 2009-11-10 Jaroslav Hajek + + * ov-class.cc (octave_class::numel): Use base version if called + from built-in assignment. + (octave_class::size): Ditto. + + 2009-11-10 Jaroslav Hajek + + * DLD-FUNCTIONS/max.cc (Fcummin, Fcummax): Simplify examples in + docs. + + 2009-11-09 Jaroslav Hajek + + * ov-base.cc (btyp_mixed_numeric): New function. + * ov-base.h: Declare it. + (btyp_isnumeric): New inline function. + * DLD_FUNCTIONS/max.cc (do_minmax_red_op, do_minmax_bin_op, + do_minmax_body, do_cumminmax_red_op): New functions. + (MINMAX_DOUBLE_SBODY, MINMAX_DOUBLE_BODY, MINMAX_SINGLE_SBODY, + MINMAX_SINGLE_BODY, MINMAX_SPARSE_BODY, MINMAX_INT_SBODY, + MINMAX_INT_BODY, MINMAX_BODY, CUMMINMAX_BODY): Remove. + (Fmin, Fmax, Fcummin, Fcummax): Update. + + 2009-11-09 Jaroslav Hajek + + * ov.h: Add sparse matrix extractors. + + 2009-11-09 John W. Eaton + + * DLD-FUNCTIONS/__delaunayn__.cc, DLD-FUNCTIONS/__dsearchn__.cc, + DLD-FUNCTIONS/__voronoi__.cc, DLD-FUNCTIONS/convhulln.cc, + DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/tsearch.cc: Correctly include + config.h, don't include oct.h, etc. + + 2009-11-08 Jaroslav Hajek + + * DLD-FUNCTIONS/bsxfun.cc: Add missing copyright. (fill_table): + Mark table as initialized. + + 2009-11-06 Jaroslav Hajek + + * pt-assign.cc (tree_multi_assignment::rvalue): Don't skip + zero-length lvalue cs-lists. + + 2009-11-06 Jaroslav Hajek + + * ov-cell.cc (octave_cell::print_raw): Indent properly. Use + newline rather than '\n'. + + 2009-11-03 John W. Eaton + + * graphics.h.in (root_figure): Add commandwindowsize, diary, + diaryfile, echo, format, language, monitorpositions, + pointerlocation, pointerwindow, and recursionlimit properties. + + 2009-11-03 David Grundberg + + * graphics.h.in (root_figure): Add FormatSpacing property. + + 2009-11-03 David Grundberg + + * ov-class.cc (octave_class::size): Allow and ignore extra + outargs from user-defined size methods. + + 2009-11-03 David Grundberg + + * ov-class.cc (make_idx_args): Call user-defined + subsref/subsasgn with 1xN structs instead of Nx1. + + 2009-11-02 Jaroslav Hajek + + * ov-class.cc (octave_class::unique_parent_class): New method. + (octave_class::subsasgn): Use it here. + * ov-class.h: Declare it. + + 2009-11-01 John W. Eaton + + * data.cc (get_sort_mode_option): New function. + (Fissorted): Handle ascending or descending option. + + 2009-11-01 John W. Eaton + + * load-path.cc (load_path::dir_info::update): Always initialize + relative directories that are not yet included in abs_dir_cache. + + 2009-10-29 John W. Eaton + + * parse.y (finish_function): Return function object unless + parsing function file. + + 2009-10-23 Jaroslav Hajek + + * DLD-FUNCTIONS/tril.cc: New source. * Makefile.in: Include it. + + 2009-10-22 Jaroslav Hajek + + * error.cc (verror (bool, std::ostream&, ..., bool)): Add + optional with_cfn flag. If specified, prepend current function + name (unless already there). + (error_1): Accept with_cfn flag and pass it on. + (error_2): Ditto. + (verror_with_cfn, error_with_cfn, error_with_id_cfn, + verror_with_id_cfn): New functions. + * error.h: Declare them. + * octave.cc (lo_error_handler): Call verror_with_cfn. + * ov-base.cc (INT_CONV_METHOD): Call error_with_cfn. + * ov.cc (octave_value::int_vector_value, octave_idx_type_vector_value): + Call error_with_cfn. + + 2009-10-21 Rik + + * variables.cc: Correct use of deftypefnx for who and whos. + + 2009-10-21 John W. Eaton + + * load-path.h (load_path::dir_path::dir_time_last_checked): New + field. (load_path::dir_path::dir_path, + load_path::dir_path::operator=): Initialize and copy + dir_time_last_checked. + * load-path.cc (load_path::dir_info::initialize): Store time of + last update. + (load_path::dir_info::update): Check directory modification time + against time of last update, within resolution of filesystem + time stamps. Suggested by Judd Storrs . + + 2009-10-20 Jaroslav Hajek + + * ov-base.h (builtin_type_t): Declare also btyp_num_types. + * DLD-FUNCTIONS/bsxfun.cc (bsxfun_builtin_op): New enum. + (bsxfun_handler): New typedef. + (bsxfun_builtin_names, bsxfun_handler_table): New variables. + (bsxfun_builtin_lookup, maybe_fill_table, maybe_optimized_builtin): + New static funcs. + (bsxfun_forward_op, bsxfun_forward_rel): New static template funcs. + (Fbsxfun): Try to optimize some built-in operations. + + 2009-10-19 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc (Fcellslices): Allow non-positive + indices as bounds. + + 2009-10-17 Jaroslav Hajek + + * data.cc (Fnth_element): Clarify docstring. + + 2009-10-16 Jaroslav Hajek + + * Cell.cc, Cell.h, DLD-FUNCTIONS/besselj.cc, + DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/lookup.cc, + DLD-FUNCTIONS/max.cc, TEMPLATE-INST/Array-tc.cc, data.cc, + oct-map.cc, ov-cx-mat.h, ov-flt-cx-mat.cc, ov-flt-cx-mat.h, + ov-flt-re-mat.cc, ov-flt-re-mat.h, ov-intx.h, ov-re-mat.h, + ov.cc, ov.h, pr-output.cc, pr-output.h, variables.cc: + Remove traces of ArrayN. + + * OPERATORS/op-dm-scm.cc: Avoid using dm + s, dm - s operators. + * OPERATORS/op-dm-sm.cc: Ditto. + * OPERATORS/op-dms-template.cc: Ditto. + + 2009-10-16 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc (Fnum2cell): Use Array::column here. + + 2009-10-15 Jaroslav Hajek + + * DLD-FUNCTIONS/lookup.cc (Flookup): Update docstring. + + 2009-10-15 Jaroslav Hajek + + * ov.h (octave_value::octave_value (octave_base_value *, bool)): + New constructor. + (octave_value::octave_value (octave_base_value *, int)): Deprecate. + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Allow the obsolete func + body syntax. + + 2009-10-15 Jaroslav Hajek + + * variables.cc (extract_function): Pass 0 to eval_string to avoid + error. + + 2009-10-14 Jaroslav Hajek + + * ov.cc (octave_value::octave_value (const Array&)): New + constructor. + * ov.h: Declare it. + * data.cc (Fnth_element): New DEFUN. + + 2009-10-13 Jaroslav Hajek + + * data.cc (Fcumsum, Fcumprod, Fprod, Fsum, Fsumsq): Correct help + string. + + 2009-10-13 Jaroslav Hajek + + * data.cc (Fsum): Rewrite. + (Fcumsum): Rewrite. + (NATIVE_REDUCTION, NATIVE_REDUCTION_1): Remove. + + 2009-10-12 Jaroslav Hajek + + * pt-binop.cc, pt-unop.cc: Revert the effect of 1be3c73ed7b5. + + 2009-10-12 Jaroslav Hajek + + * DLD-FUNCTIONS/lu.cc (maybe_set_triangular): Remove. + (get_lu_l, get_lu_u): New helper funcs. + (Flu, Fluupdate): Use them to auto-set MatrixType of results. + * DLD-FUNCTIONS/qr.cc (maybe_set_triangular): Remove. + (get_qr_r): New helper func. + (Fqr, Fqrupdate, Fqrinsert, Fqrdelete, + Fqrshift): Use it to auto-set MatrixType of results. + * DLD-FUNCTIONS/chol.cc (get_chol_r): New helper func. + (Fchol, Fcholupdate, Fcholinsert, Fcholdelete, Fcholshift): Use it + to auto-set MatrixType of result. + + 2009-10-12 Jaroslav Hajek + + * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Support 'nocompute' + option. + + 2009-10-08 Jaroslav Hajek + + * DLD-FUNCTIONS/lu.cc (Fluupdate): New DEFUN_DLD. + (check_lu_dims): New helper func. + + 2009-10-08 Jaroslav Hajek + + * data.cc (Flength): Simplify. + (Fndims): Simplify. + (Fsize): Rewrite, use dim_vector::redim to simplify. + (Fsize_equal): Don't chop trailing singletons (should be already + chopped). + + 2009-10-08 Jaroslav Hajek + + * utils.cc (dims_to_numel): New function. + * utils.h: Declare it. + * ov-base.cc (octave_base_value::numel (const octave_value_list&)): + Use it here. + * data.cc (Fnumel): Also here. + + 2009-10-07 John W. Eaton + + * variables.cc (get_dims_str): New function. + (symbol_info_list::display_line, + symbol_info_list::parse_whos_line_format): Use it to get dims string. + + 2009-10-07 John W. Eaton + + * ov.h (octave_value::get_count): Return octave_idx_type, not int. + + 2009-10-07 John W. Eaton + + * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): + Avoid uninitialized variable warning. + * pt-cbinop.cc (simplify_ldiv_op): Avoid unused parameter warning. + * ov-flt-re-mat.cc (convert_to_str_internal): + Update for octave_value constructor changes. + + 2009-10-07 Jaroslav Hajek + + * oct-stream.cc (octave_base_stream::skipl, + octave_stream::skipl (long, ...), octave_stream::skipl (const + octave_value&, ...)): New methods. + * oct-stream.h: Declare them. + * file-io.cc (Ffskipl): New DEFUN. + + 2009-10-07 John W. Eaton + + * OPERATORS/op-str-str.cc (DEFUNOP (transpose, char_matrix_str)): + Update for octave_value constructor changes. + + 2009-10-05 Jaroslav Hajek + + * ov.cc (octave_value::assign): Do not gripe "assignment failed" if + already griped about the binary operation. + + 2009-10-05 Jaroslav Hajek + + * pt-idx.cc (tree_index_expression::rvalue): When evaluating index + chain, split on chaining ()() and (){}. + + 2009-10-05 Jaroslav Hajek + + * pt-misc.cc (tree_argument_list::convert_to_const_vector): + Return more than nargout arguments only unless undefined elements + occur. + * ov-class.cc (octave_class::subsref): Pack return list from + overloaded method into first value. + + 2009-10-05 Jaroslav Hajek + + * ov-ch-mat.h (octave_char_matrix): Don't declare allocator and + typeid. + * ov-ch-mat.cc: Don't define them. + * ov.cc (install_types): Don't register octave_char_matrix. + + 2009-10-05 John W. Eaton + + * ov.h (octave_value (const charMatrix&, char, bool), + octave_value (const charNDArray&, char, bool), + octave_value (const ArrayN&, char, bool)): + New constructor decls. + (octave_value (const charMatrix&, bool, char), + octave_value (const charNDArray&, bool, char), + octave_value (const ArrayN&, bool, char)): Mark with + GCC_ATTR_DEPRECATED. Single-quoted strings are now default string + type. + (octave_value::convert_to_str): Default is single-quoted strings. + * ov.cc (octave_value (const charMatrix&, char, bool), + octave_value (const charNDArray&, char, bool), + octave_value (const ArrayN&, char, bool)): New constructors. + (octave_value (const charMatrix&, bool, char), + octave_value (const charNDArray&, bool, char), + octave_value (const ArrayN&, bool, char)): + Assume is_string argument is always true. + + * ov-re-mat.cc (octave_sparse_matrix::convert_to_str_internal): + Update for octave_value constructor changes. + * ov-ch-mat.h (octave_char_matrix::convert_to_str_internal): Likewise. + * ov-re-sparse.cc (octave_sparse_matrix::convert_to_str_internal): + Likewise. + * ov-str-mat.h (octave_char_matrix_str::squeeze, + octave_char_matrix_str::reshape, octave_char_matrix_str::permute, + octave_char_matrix_str::diag, octave_char_matrix_str::sort, + octave_char_matrix_sq_str::squeeze, + octave_char_matrix_sq_str::reshape, + octave_char_matrix_sq_str::permute, + octave_char_matrix_sq_str::diag, octave_char_matrix_sq_str::sort): + Likewise. + * ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal): + Likewise. + (octave_char_matrix_str::resize): Likewise. + * data.cc (do_cat, Fmerge): Likewise. + * ops.h (DEFNDCHARCATOP_FN): Likewise. + * ov-base-int.cc (octave_base_int_matrix::convert_to_str_internal): + Likewise. + * pt-mat.cc (tree_matrix::rvalue1): Likewise. + + * ov-ch-mat.h (octave_char_matrix::octave_char_matrix): Delete + unused bool arg. Declare constructors protected. + + (xisalnum, xisalpha, xisascii, xiscntrl, xisdigit, xisgraph, + xislower, xisprint, xispunct, xisspace, xisupper, xisxdigit, + xtoascii, xtolower, xtoupper): Move decls here from ov-str-mat.h. + (MAT_MAPPER, BOOL_MAT_MAPPER): Move macro definitions and uses + here from ov-str-mat.h. + + * ov-ch-mat.cc (MACRO_WRAPPER, STRING_MAPPER, TOSTRING_MAPPER): + Move macro definitions and uses here. + * ov-str-mat.cc: From here. + + * DLD-FUNCTIONS/typecast (Ftypecast): Update for octave_value + constructor changes. Create sq_string unless casting from string, + then preserve exact type. + (Fbitpack): Update for octave_value constructor changes. Create + sq_string. + * DLD-FUNCTIONS/hex2num.cc (Fnum2hex): Update for octave_value + constructor changes. Create sq_string. + * ls-oct-ascii.cc (read_ascii_data): Likewise. + * mex.cc (mxArray_number::as_octave_value): Likewise. + * oct-stream.cc (octave_stream::read): Likewise. + * ov-base.cc (STRING_MAPPER): Likewise. + + 2009-10-04 John W. Eaton + + * ov-str-mat.h (octave_char_matrix_str::squeeze, + octave_char_matrix_sq_str::squeeze, octave_char_matrix_str::diag, + octave_char_matrix_sq_str::diag): New functions. + + 2009-10-03 Shai Ayal + + * graphics.h.in (image::update_xdata): Add a half-pixel to each limit. + (image::update_ydata): Ditto. + * gl-render.cc (opengl_renderer::draw): Clip image to axis and fix + unpack alignment. + + 2009-10-02 Jaroslav Hajek + + * ov-base-scalar.h (octave_base_scalar::matrix_type): Always + return MatrixType::Diagonal. + (octave_base_scalar::typ): Remove. + + 2009-10-02 Jaroslav Hajek + + * ov.h: Define also diag matrix extractors. + (octave_type_traits, octave_array_type_traits): Remove. + (octave_value::builtin_type): New method. + * oct-stream.cc (do_read): Update. + * data.cc (identity_matrix): Update. + * ov-base.h (builtin_type_t): New enum. + (octave_base_value::builtin_type): New method. + * ov-re-mat.h (octave_matrix::builtin_type): New method. + * ov-flt-re-mat.h (octave_float_matrix::builtin_type): New method. + * ov-cx-mat.h (octave_complex_matrix::builtin_type): New method. + * ov-flt-cx-mat.h (octave_float_complex_matrix::builtin_type): + New method. + * ov-bool-mat.h (octave_bool_matrix::builtin_type): New method. + * ov-ch-mat.h (octave_char_matrix::builtin_type): New method. + * ov-scalar.h (octave_scalar::builtin_type): New method. + * ov-float.h (octave_float::builtin_type): New method. + * ov-complex.h (octave_complex::builtin_type): New method. + * ov-bool.h (octave_bool::builtin_type): New method. + * ov-flt-complex.h (octave_float_complex::builtin_type): New method. + * ov-re-diag.h (octave_diag_matrix::builtin_type): New method. + * ov-flt-re-diag.h (octave_float_diag_matrix::builtin_type): New method. + * ov-cx-diag.h (octave_complex_diag_matrix::builtin_type): New method. + * ov-flt-cx-diag.h + (octave_float_complex_diag_matrix::builtin_type): + New method. + * ov-re-sparse.h (octave_sparse_matrix::builtin_type): New method. + * ov-cx-sparse.h (octave_sparse_complex_matrix::builtin_type): + New method. + * ov-bool-sparse.h (octave_sparse_bool_matrix::builtin_type): + New method. + * ov-intx.h (octave_int_matrix::builtin_type, + octave_int_scalar::builtin_type): New methods. + * ov-int8.h: Define OCTAVE_INT_BTYP. + * ov-int16.h: Define OCTAVE_INT_BTYP. + * ov-int32.h: Define OCTAVE_INT_BTYP. + * ov-int64.h: Define OCTAVE_INT_BTYP. + * ov-uint8.h: Define OCTAVE_INT_BTYP. + * ov-uint16.h: Define OCTAVE_INT_BTYP. + * ov-uint32.h: Define OCTAVE_INT_BTYP. + * ov-uint64.h: Define OCTAVE_INT_BTYP. + + 2009-10-01 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Fix initialization, add missing + break. + + 2009-10-01 John W. Eaton + + * gl-render.cc (opengl_renderer::draw (const image::properties&)): + Adjust origin for glRasterPos3d. + + 2009-10-01 John W. Eaton + + * gl-render.cc: Style fixes. + + 2009-10-01 Shai Ayal + + * graphics.cc (image::properties::get_color_data): New function. + * gl-render.cc (opengl_renderer::draw): Handle RGB images. + + 2009-10-01 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc + (do_num2cell_helper, do_num2cell): New funcs. + (Fnum2cell): Rewrite. + (do_cellslices_nda): Do not leave trailing dims. + + 2009-09-30 John W. Eaton + + * error.cc (error_1, pr_where_2, handle_message): + Don't do anything if fmt is empty. + (Ferror): Call print_usage if nargin == 0. + + 2009-09-29 Jaroslav Hajek + + * DLD-FUNCTIONS/typecast.cc (Ftypecast): Rewrite. + (Fbitpack, Fbitunpack): New DEFUNs. + + 2009-09-28 Shai Ayal + + * DLD-FUNCTIONS/fltk_backend.cc (plot_window::handle): Redraw the + overlay when zoom box changes size. + * DLD-FUNCTIONS/fltk_backend.cc (fltk_mouse_wheel_zoom): New + function to set mouse wheel zoom factor. + + 2009-09-27 Jaroslav Hajek + + * DLD-FUNCTIONS/sub2ind.cc (get_dimensions): Allow singleton array. + (Fsub2ind): Allow single index. + + 2009-09-26 Jaroslav Hajek + + * OPERATORS/op-m-m.cc (trans_mul, mul_trans): Update. + * OPERATORS/op-fm-fm.cc (trans_mul, mul_trans): Update. + * OPERATORS/op-cm-cm.cc (trans_mul, mul_trans, herm_mul, mul_herm): + Update. + * OPERATORS/op-fcm-fcm.cc (trans_mul, mul_trans, herm_mul, mul_herm): + Update. + * OPERATORS/op-m-cm.cc (trans_mul): Update. + * OPERATORS/op-cm-m.cc (mul_trans): Update. + * OPERATORS/op-fm-fcm.cc (trans_mul): Update. + * OPERATORS/op-fcm-fm.cc (mul_trans): Update. + + 2009-09-23 Jaroslav Hajek + + * OPERATORS/op-m-cm.cc: Declare and install trans_mul operator. + * OPERATORS/op-fm-fcm.cc: Ditto. + * OPERATORS/op-cm-m.cc: Declare and install mul_trans operator. + * OPERATORS/op-fcm-fm.cc: Ditto. + + 2009-09-23 Jaroslav Hajek + + * OPERATORS/op-m-cm.cc: Declare and install trans_ldiv operator. + * OPERATORS/op-fm-fcm.cc: Ditto. + + 2009-09-23 Jaroslav Hajek + + * ov.h (octave_value::op_trans_ldiv, op_herm_ldiv): New enum constants. + * ov.cc (decompose_binary_op, binary_op_fcn_name): Support them. + * xdiv.h: Include mx-defs.h, delete forward decls. + * xdiv.cc (xleftdiv): Support transt parameter. + (xdiv): Optimize. + * pt-cbinop.cc (simplify_ldiv_op): New static func. + (maybe_compound_binary_expression): Try it. + * OPERATORS/op-m-m.cc: Define and install trans_ldiv handler. + * OPERATORS/op-fm-fm.cc: Ditto. + * OPERATORS/op-cm-cm.cc: Define and install trans_ldiv and herm_ldiv + handlers. + * OPERATORS/op-fcm-fcm.cc: Ditto. + + 2009-09-19 Jaroslav Hajek + + * ov.h (octave_value_extract): New template function. + * data.cc (do_linspace): New static template function. + (Flinspace): Rewrite. + + 2009-09-18 John W. Eaton + + * DLD-FUNCTIONS/fltk_backend.cc (fltk_backend::redraw_figure): + Call __fltk_redraw__ after marking figure as modified. + + 2009-09-18 John W. Eaton + + * mexproto.h: Define OCTINTERP_API if it is not already defined. + Use C-style comments. + + 2009-09-16 Jaroslav Hajek + + * DLD-FUNCTIONS/rand.cc (Frandperm): New function. + + 2009-09-15 Jaroslav Hajek + + * pt-misc.cc (tree_parameter_list::convert_to_const_vector): Pass + in nargout. Don't return excess elements. Optimize varargout-only case + to possibly use a shallow copy. + * pt-misc.h: Update decl. + * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): Update call + to tree_parameter_list::convert_to_const_vector. + + 2009-09-15 Jaroslav Hajek + + * pr-output.cc (Fdisp, Ffdisp): Declare retval as octave_value_list. + + 2009-09-14 Shai Ayal + + * DLD-FUNCTIONS/fltk_backend.cc (plot_window::pixel2status, + plot_window::pixel2pos): New argument AXES, which the + coordinates are relative to. + (plot_window::handle): Pass axes to pixel2status and pixel2pos. + + 2009-09-14 Jaroslav Hajek + + * symtab.h (symbol_table::curr_fcn): New member field. + (symbol_table::get_curr_fcn, symbol_table::set_curr_fcn): New member + funcs. + * symtab.cc (symbol_table::fcn_info::fcn_info_rep::xfind): Use + symbol_table::get_curr_fcn. + (symbol_table::fcn_info::fcn_info_rep::x_builtin_find): Ditto. + * ov-usr-fcn.cc (octave_user_function::octave_user_function): Call + symbol_table::set_curr_fcn. + + 2009-09-12 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 3.3.50+. + (OCTAVE_API_VERSION): Now api-v38+. + + 2009-09-12 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 3.3.50. + (OCTAVE_API_VERSION): Now api-v38. + (OCTAVE_RELEASE_DATE): Now 2009-09-12. + + 2009-09-08 Rafael Laboissiere + + * pr-output.cc: New test. + + 2009-09-07 Jaroslav Hajek + + * Makefile.in: Add LDFLAGS to OCT_LINK_DEPS. + + 2009-09-06 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc: Fix test. + + 2009-09-06 Jaroslav Hajek + + * OPERATORS/op-s-cs.cc: Use DEFCMPLXCMPOP_OP. + * OPERATORS/op-cs-s.cc: Ditto. + * OPERATORS/op-fs-fcs.cc: Ditto. + * OPERATORS/op-fcs-fs.cc: Ditto. + + 2009-09-05 John W. Eaton + + * genprops.awk: Fix formatting of generated output. + * graphics.h.in (graphics_object::get (const std::string&) const, + graphics_object::get (const char *) const): New functions. + + 2009-09-05 John W. Eaton + + * txt-eng-ft.cc (ft_manager::do_get_font): Remove spurious + assignment usd for debugging. + + 2009-09-04 John W. Eaton + + * txt-eng-ft.cc (ft_manager::do_get_font, ft_render::set_font, + ft_render::set_mode, ft_render::visit, ft_render::set_color): + Issue warnings instead of errors for non-fatal problems. + (ft_render::visit): If face is null, then return without warning. + * genprops.awk: Also generate const std::string& and const char* + versions of the get member functions. + * gl-render.cc (opengl_renderer::draw): Omit caseless_str + constructor in call to get method. + * ft_render::set_font (): Likewise. + + 2009-09-03 John W. Eaton + + * pr-output.cc (set_format (const Complex&, int&, int&)): + Avoid passing NaN or Inf to log10. + + 2009-09-03 Jaroslav Hajek + + * ov.cc (octave_value::assign (assign_op, const octave_value&)): + Call maybe_mutate after in-place operation. + + 2009-09-03 Jaroslav Hajek + + * ov.cc (octave_value::do_non_const_unary_op): Split to + genuine/non-genuine case. + (octave_value::binary_op_to_assign_op): New method. + * ov.h: Declare it. + * ov-re-mat.h (octave_matrix::changesign): New method. + * ov-flt-re-mat.h (octave_float_matrix::changesign): New method. + * ov-cx-mat.h (octave_complex_matrix::changesign): New method. + * ov-flt-cx-mat.h (octave_float_complex_matrix::changesign): New + method. + * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::changesign): New method. + * ov-bool-mat.h (octave_bool_matrix::invert): New method. + * pt-unop.cc (tree_prefix_expression::rvalue1): Use + do_non_const_unary_op. + * pt-binop.cc (tree_binary_expression::rvalue1): If possible, + convert to computed assignment. + + * OPERATORS/op-m-m.cc: Define & install in-place minus operation. + * OPERATORS/op-fm-fm.cc: Ditto. + * OPERATORS/op-cm-cm.cc: Ditto. + * OPERATORS/op-fcm-fcm.cc: Ditto. + * OPERATORS/op-int.h: Ditto. + * OPERATORS/op-bm-bm.cc: Define & install in-place not operation. + + 2009-09-03 Jaroslav Hajek + + * ov-re-mat.h (octave_matrix::increment, octave_matrix::decrement): + Use matrix_ref. + * ov-flt-re-mat.h (octave_float_matrix::increment, + octave_float_matrix::decrement): Use matrix_ref. + * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::increment, + OCTAVE_VALUE_INT_MATRIX_T::decrement): + Use matrix_ref. + + 2009-09-02 John W. Eaton + + * graphics.cc (axes::properties::calc_ticklabels): + Avoid unused parameter warning from gcc. + + * ov-perm.cc (octave_perm_matrix::save_binary, + octave_perm_matrix::load_binary): Avoid shadow warning from gcc. + + 2009-09-01 David Bateman + + * DLD-FUNCTIONS/eig.cc (Feigs): Correct nesting error in option + parsing that prevented the use of a function for generalized + eigenvalue problems. + + 2009-08-30 Jaroslav Hajek + + * ops.h (DEFCMPLXCMPOP_OP, DEFNDCMPLXCMPOP_FN): New macros. + * gripes.cc (gripe_warn_complex_cmp): New function. + * gripes.h: declare it. + + * OPERATORS/op-cm-cm.cc: Call the new macros. + * OPERATORS/op-cm-cs.cc: Ditto. + * OPERATORS/op-cm-m.cc: Ditto. + * OPERATORS/op-cm-s.cc: Ditto. + * OPERATORS/op-cs-cm.cc: Ditto. + * OPERATORS/op-cs-cs.cc: Ditto. + * OPERATORS/op-cs-m.cc: Ditto. + * OPERATORS/op-fcm-fcm.cc: Ditto. + * OPERATORS/op-fcm-fcs.cc: Ditto. + * OPERATORS/op-fcm-fm.cc: Ditto. + * OPERATORS/op-fcm-fs.cc: Ditto. + * OPERATORS/op-fcs-fcm.cc: Ditto. + * OPERATORS/op-fcs-fcs.cc: Ditto. + * OPERATORS/op-fcs-fm.cc: Ditto. + * OPERATORS/op-fm-fcm.cc: Ditto. + * OPERATORS/op-fm-fcs.cc: Ditto. + * OPERATORS/op-fs-fcm.cc: Ditto. + * OPERATORS/op-m-cm.cc: Ditto. + * OPERATORS/op-m-cs.cc: Ditto. + * OPERATORS/op-s-cm.cc: Ditto. + + + 2009-08-30 Jaroslav Hajek + + * ops.h (BOOL_OP1, BOOL_OP2, BOOL_OP3, SC_MX_BOOL_OP, MX_SC_BOOL_OP, + MX_MX_BOOL_OP): Remove. + + 2009-08-28 John W. Eaton + + * genprops.awk: Generate static member functions has_core_property + and core_property_names. Make has_property and all_property_names + non-static const member functions. Pass object type to + validate_property_name. + * graphics.cc (validate_property_name): New arg, WHAT. + Improve warning and error messages. + (property_list::set): Use has_core_property instead of has_property. + (base_properties::has_property): Delete definition. + (base_graphics_object::remove_all_listeners): Move unwind protect + block here, from old base_properties::has_property function. + * graphics.h.in (base_properties::has_property): Now virtual. + Unconditionally call panic_impossible. + + 2009-08-28 John W. Eaton + + * graphics.cc (validate_property_name): Return full name of + matched property value. Issue warning if given property name is + abbreviated. + * genprops.awk: Use name returned by validate_property_name for + subsequent matching. + * octave.cc (maximum_braindamage): + Disable Octave:abbreviated-property-match warning. + + 2009-08-27 John W. Eaton + + * graphics.cc (validate_property_name): New static function. + (base_properties::dynamic_property_names): New function. + * graphicffs.h.in (base_properties::dynamic_property_names): + Provide decl. + * genprops.awk: Generate all_property_names functions. Use + all_property_names as needed to avoid duplication elsewhere. + Call validate_property_name in set/get functions. + + 2009-08-27 Jaroslav Hajek + + * ov-class.cc (get_current_method_class): Simplify. + (octave_class::in_class_method): Don't rely on multiple copies of + methods. Don't declare as const. + (octave_class::octave_class (const Octave_map&, const std::string&, + const octave_value_list&)): + Call symbol_table::add_to_parent_map instead. + * ov-class.h (octave_class::in_class_method): Don't declare as const. + * symtab.h (symbol_table::parent_map): New field. + (symbol_table::add_to_parent_map): New method. + (symbol_table::load_class_method): Search also parent classes. + * load-path.h (load_path::parent_map, load_path::add_to_parent_map, + load_path::do_add_to_parent_map): Remove. + * load-path.cc (load_path::do_find_method): Don't search parent + classes. + + 2009-08-27 Jaroslav Hajek + + * OPERATORS/op-cs-cs.cc: Simplify comparison operators. + * OPERATORS/op-fcs-fcs.cc: Ditto. + + 2009-08-25 David Grundberg + + * DLD-FUNCTIONS/__magick_read__.cc [HAVE_MAGICK]: Include + Magick++.h instead of GraphicsMagick/Magic++.h. + * Makefile.in: Replace MAGICK_LIBS with MAGICK_LDFLAGS and + MAGICK_LIBS. Replace MAGICK_INCFLAGS with MAGICK_CPPFLAGS. + * oct-conf.h.in: Ditto. + * toplev.cc (octave_config_info): Ditto. + + 2009-08-26 John W. Eaton + + * oct-conf.h.in: New defines for UMFPACK_CPPFLAGS and UMFPACK_LDFLAGS. + * toplev.cc (octave_config_info): Include them in the list. + + 2009-08-26 John W. Eaton + + * oct-conf.h.in: New defines for QRUPDATE_CPPFLAGS and QRUPDATE_LDFLAGS. + * toplev.cc (octave_config_info): Include them in the list. + + 2009-08-26 John W. Eaton + + * oct-conf.h.in: New defines for ARPACK_CPPFLAGS and ARPACK_LDFLAGS. + * toplev.cc (octave_config_info): Include them in the list. + + 2009-08-26 John W. Eaton + + * Makefile.in (OCTAVE_LIBS, OCTINTERP_LINK_DEPS): + Include BLAS_LIBS in the list. + + 2009-08-26 John W. Eaton + + * Makefile.in (OCTAVE_LIBS): Include FLIBS in the list. + (OCTINTERP_LINK_DEPS): Include TERM_LIBS, LIBGLOB, and FLIBS in + the list. + + 2009-08-26 Jaroslav Hajek + + * data.cc (Ffmod): Reverse order of args. + + 2009-08-26 Rob Mahurin + + * syscalls.cc: Recommend waitpid() in popen2() documentation. + + 2009-08-25 John W. Eaton + + * graphics.cc (gnuplot_backend::send_quit): Wait for gnuplot process. + + 2009-08-24 Jaroslav Hajek + + * OPERATORS/op-m-m.cc: Install .*= and ./= operators. + * OPERATORS/op-fm-fm.cc: Ditto. + * OPERATORS/op-cm-cm.cc: Ditto. + * OPERATORS/op-fcm-fcm.cc: Ditto. + * OPERATORS/op-int.h: Ditto. + + 2009-08-22 Jaroslav Hajek + + * data.cc (UNARY_OP_DEFUN_BODY, + BINARY_OP_DEFUN_BODY, BINARY_ASSOC_OP_DEFUN_BODY): Remove. + (unary_op_defun_body, binary_op_defun_body, + binary_assoc_op_defun_body): New functions. + (Fnot, Fuplus, Fuminus, Ftranspose, Fctranspose): Use + unary_op_defun_body. + (Fminus, Fmrdivide, Fmpower, Fmldivide, Flt, Fle, Feq, Fge, Fgt, Fne, + Frdivide, Fpower, Fldivide): Use binary_op_defun_body. + (Fplus, Ftimes, Fmtimes, Fand, For): Use binary_assoc_op_defun_body. + + 2009-08-21 Jaroslav Hajek + + * OPERATORS/op-s-s.cc: Check for NaN in ! operator. + * OPERATORS/op-fs-fs.cc: Ditto. + * OPERATORS/op-cs-cs.cc: Ditto. + * OPERATORS/op-fcs-fcs.cc: Ditto. + + 2009-08-17 Jaroslav Hajek + + * ops.h (DEFNDASSIGNOP_FNOP): New macro. + * OPERATORS/op-bm-bm.cc: Define and install &= and |= operators. + + 2009-08-17 Jaroslav Hajek + + * OPERATORS/op-m-m.cc: Define and install += and -= operators. + * OPERATORS/op-fm-fm.cc: Ditto. + * OPERATORS/op-cm-cm.cc: Ditto. + * OPERATORS/op-fcm-fcm.cc: Ditto. + * OPERATORS/op-m-s.cc: Define and install +=,-=,*=,/= operators. + * OPERATORS/op-fm-fs.cc: Ditto. + * OPERATORS/op-cm-cs.cc: Ditto. + * OPERATORS/op-fcm-fcs.cc: Ditto. + * OPERATORS/op-cm-s.cc: Define and install *=,/= operators. + * OPERATORS/op-fcm-fs.cc: Ditto. + * ops.h (DEFNDASSIGNOP_OP): New macro. + * ov.cc (octave_value::assign (assign_op, const octave_value&)): + Try looking up specialized handlers if the value is not shared. + * ov-base-mat.h (octave_base_matrix::matrix_ref): New method. + + 2009-08-17 Jaroslav Hajek + + * oct-obj.h (octave_value_list::octave_value_list (octave_idx_type)): + Allow this constructor. + + 2009-08-19 Jaroslav Hajek + + * DLD-FUNCTIONS/find.cc (Ffind): Reuse cached index vector when + converting boolean mask to indices. + + 2009-08-18 John W. Eaton + + * oct-conf.h.in: New #defines for HDF5_LDFLAGS and HDF5LDFLAGS. + * Makefile.in (OCTAVE_LIBS, OCTINTERP_LINK_DEPS): + Include them in the lists. + * toplev.cc (octave_config_info): Include them in the list. + + 2009-08-17 John W. Eaton + + * oct-conf.h.in: New #defines for ZLIB_CPPFLAGS and ZLIB_LDFLAGS. + * toplev.cc (octave_config_info): Include them in the list. + + 2009-08-17 John W. Eaton + + * Makefile.in (OCTINTERP_LINK_DEPS): Include FFTW_LDFLAGS, + FFTW_LIBS and READLINE_LIBS in the list. + (OCTAVE_LIBS): Attempt to include all necessary dependencies for + static linking. + + 2009-08-17 John W. Eaton + + * Makefile.in (eigs.oct, chol.oct, qr.oct): Add library-specific + CPPFLAGS and LDFLAGS variables to CPPFLAGS and LDFLAGS. + From Benjamin Lindner . + + 2009-08-17 John W. Eaton + + * Makefile.in (OCTINTERP_LINK_DEPS): List $(LIBS) last. + + 2009-08-17 Michael Goffioul + + * Makefile.in (OCTINTERP_LINK_DEPS): Include $(LIBCRUFT) and + $(LIBS) in the list. + (OCT_LINK_DEPS): Include $(LIBOCTAVE) and $(LIBCRUFT) in the list. + (eigs.oct, qz.oct): Add $(BLAS_LIBS) to LDFLAGS. + (ccolamd.oct, symbfact.oct): Add library-specific CPPFLAGS and + LDFLAGS variables to CPPFLAGS and LDFLAGS. + + 2009-08-17 Jaroslav Hajek + + * ov-struct.h, ov-struct.cc: Revert to e08d72bb988e. + * ov-class.h, ov-class.cc: Partially revert to e08d72bb988e. + (octave_class::subsasgn): Cut&paste code from octave_struct::subsasgn + for the nested dot indexing. + * ov-usr-fcn.cc (Voptimize_subasgn_calls): Default to true. + + 2009-08-13 John W. Eaton + + * DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, + DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw.cc: Update for new FFTW + defines. + + * Makefile.in (amd.oct, colamd.oct, dmperm.oct, symcrm.oct, + qr.oct, fft.oct, fft2.oct, fftn.oct, fftw.oct): Add + library-specific CPPFLAGS and LDFLAGS variables to CPPFLAGS + and LDFLAGS. + * oct-conf.h.in: New #defines for GLPK_CPPFLAGS, GLPK_LDFLAGS, + AMD_CPPFLAGS, AMD_LDFLAGS, CAMD_CPPFLAGS, CAMD_LDFLAGS, + CCOLAMD_CPPFLAGS, CCOLAMD_LDFLAGS, CHOLMOD_CPPFLAGS, + CHOLMOD_LDFLAGS, COLAMD_CPPFLAGS, COLAMD_LDFLAGS, + CXSPARSE_CPPFLAGS, CXSPARSE_LDFLAGS, FFTW3_CPPFLAGS, + FFTW3_LDFLAGS, FFTW3_LIBS, FFTW3F_CPPFLAGS, FFTW3F_LDFLAGS, and + FFTW3F_LIBS. + * toplev.cc (octave_config_info): Include them in the list. + + 2009-08-13 Jaroslav Hajek + + * ov-class.h (octave_class): Derive from octave_struct. + (octave_class::octave_class): Update all constructors. + (octave_class::numeric_conv, octave_class::byte_size, octave_class::numel, octave_class::nfields, + octave_class::reshape, octave_class::resize, octave_class::is_defined, + octave_class::map_value): Remove methods (inherit). + * ov-class.h (octave_class::obsolete_copies): New field. + Init to 0 in all constructors. + (octave_class::unique_clone): New decl. + * ov-class.cc (octave_class::unique_clone): Fake clone if all + remaining copies are obsolete. + (octave_class::subsref): Share code with octave_struct::subsref. + (octave_class::subsref (..., bool auto_add)): New method. + (octave_class::subsasgn): If plausible, attempt to + optimize the method call by marking appropriate number of copies + obsolete. Share code with octave_struct::subsasgn. + (octave_class::dotasgn): New method override. + * ov-struct.h (octave_struct::dotref): New virtual overload. + (octave_struct::dotasgn): New virtual method decl. + * ov-struct.cc (octave_struct::dotasgn): New virtual method. + * ov-usr-fcn.h (octave_user_function::num_args_passed, + octave_user_function::saved_args): Remove fields. Wipe from all + constructor lists. + (octave_user_function::save_args_passed, + octave_user_function::restore_args_passed): Remove methods. + (octave_user_function::all_va_args): Update decl. + (octave_user_function::subsasgn_optimization_ok): New method decl. + * ov-usr-fcn.cc (octave_user_function::all_va_args): Rename from + octave_all_va_args, take args as a parameter. + (octave_user_function::subsasgn_optimization_ok): New method. + (octave_user_function::do_multi_index_op): Simplify. + + 2009-08-12 Jaroslav Hajek + + * ov-base.h (octave_base_value::count): Declare as octave_idx_type. + (octave_base_value::octave_base_value (const octave_base_value&)): + Initialize count to 1. + (octave_base_value::unique_clone ()): New method. + (octave_base_value::print_with_name): Declare as non-const. + * ov-base.cc (octave_base_value::print_with_name): Update. + * ov.h (octave_value::make_unique (void)): Don't set rep->count. + Call unique_clone. + (octave_value::make_unique (int)): Don't set rep->count. + Call unique_clone. + (octave_value::octave_value (const octave_base_value *)): Declare + as private. + * ov-class.cc (octave_class::print_with_name): Avoid using clone (). + * ov-class.h (octave_class::print_with_name): Declare as non-const. + + 2009-08-13 John W. Eaton + + * Makefile.in: Consistently add library-specific CPPFLAGS and + LDFLAGS variables to CPPFLAGS and LDFLAGS for .oct files that need + them. Also add X11_FLAGS to CPPFLAGS for display.d display.df and + pic/display.o. + + * oct-conf.h.in: New #defines for QHULL_CPPFLAGS, QHULL_LDFLAGS, + CURL_CPPFLAGS, and CURL_LDFLAGS. + * toplev.cc (octave_config_info): Include them in the list. + + 2009-08-12 Jaroslav Hajek + + * Makefile.in: Include LDFLAGS when linking shared executable. + + 2009-08-12 Jaroslav Hajek + + * data.cc (Fissorted, F__sort_rows_idx__, Fnorm): Mark as Built-in + Functions in the inline help. + + 2009-08-11 John W. Eaton + + * DLD-FUNCTIONS/fftw.cc (Ffftw): Update for octave_fftw_planner + and octave_float_fftw_planner as singleton objects. + + 2009-08-11 John W. Eaton + + * oct-conf.h.in: Use READLINE_LIBS instead of LIBREADLINE. + New #defines for TERM_LIBS and DL_LIBS. + * toplev.cc (octave_config_info): Add TERM_LIBS and DL_LIBS to the + struct. Use READLINE_LIBS instead of LIBREADLINE. + + 2009-08-11 John W. Eaton + + * oct-conf.h.in: New #defines for AMD_LIBS, ARPACK_LIBS, + CAMD_LIBS, CCOLAMD_LIBS, CHOLMOD_LIBS, COLAMD_LIBS, CXSPARSE_LIBS, + FT2_LIBS, GRAPHICS_LIBS, HDF5_LIBS, OPENGL_LIBS, PTHREAD_CFLAGS, + PTHREAD_LIBS, QHULL_LIBS, QRUPDATE_LIBS, REGEX_LIBS, UMFPACK_LIBS, + ZLIB_LIBS. + + * toplev.cc (octave_config_info): Include them in the struct. + + 2009-08-11 Jaroslav Hajek + + * data.cc (Fdiff): New built-in function. + (do_diff): New assistant function. + + 2009-08-10 John W. Eaton + + * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Perform tilde expansion on + filename argument. + + 2009-08-10 Jaroslav Hajek + + * symtab.cc (out_of_date_check): Remove overloads. Add check_relative + parameter. + (out_of_date_check_internal): Remove. + * symtab.h: Update. + * ov-fcn-handle.cc (octave_fcn_handle::do_index_op): Call + out_of_date_check with check_relative = false. + + 2009-08-09 John W. Eaton + + * parse.y (Fevalin): Also return output from CATCH expression. + + 2009-08-08 Jaroslav Hajek + + * data.cc (Fifelse): Rename to Fmerge, alias to Fifelse. + + 2009-08-06 Jaroslav Hajek + + * OPERATORS/op-dm-template.cc, OPERATORS/op-pm-template.cc: + Also define conversions for null string and null sq_string. + + 2009-08-06 John W. Eaton + + * OPERATORS/op-cdm-m.cc, OPERATORS/op-dm-m.cc, OPERATORS/op-pm-m.cc: + Define LDMATRIX and DEFINENULLASSIGNCONV. + * OPERATORS/op-dm-template.cc, OPERATORS/op-pm-template.cc: + Include ov-null-mat.h and define assignment conversion for null + matrices if DEFINENULLASSIGNCONV is defined. Define OCTAVE_LDMATRIX. + + 2009-08-05 John W. Eaton + + * pt-eval.cc (tree_evaluator::visit_complex_for_command): + Use key_list order for iterating through map. + + * Makefile.in (OCT_LINK_DEPS): Also include $(RLD_FLAG) in the list. + + 2009-08-05 John W. Eaton + + * Makefile.in (octave$(EXEEXT)): Clean up link flags and library list. + (OCTINTERP_LINK_DEPS): Omit -L../libcruft $(LIBCRUFT) $(LIBS) + $(FLIBS) from the list. Include $(RLD_FLAG) in the list. + (OCT_LINK_DEPS): Only include -L. $(LIBOCTINTERP) in the list. + + 2009-08-05 Jaroslav Hajek + + * utils.cc (Fisindex): New DEFUN. + + 2009-08-04 Kristian Rumberg + + * input.cc (is_completing_dirfns): New function. + (generate_completion): Use it to selectively complete file names. + + 2009-08-04 John W. Eaton + + * debug.cc (Fdbwhere): Call octave_call_stack::goto_frame_relative + to move to user code frame. Get line and column information from + call stack. + * input.cc (Fkeyboard): Don't pass verbose flag to + octave_call_stack::goto_frame_relative. + (get_debug_input): Get line and column information from call stack. + + * pt-eval.h, pt-eval.cc (tree_evaluator::debug_line, + tree_evaluator::debug_column, tree_evaluator::db_line, + tree_evaluator::db_column): Delete. + * pt-eval.cc (tree_evaluator::do_breakpoint): Don't print function + name and location info here. Delete line and column number args. + Change all callers. + + * toplev.h (octave_call_stack::do_current, + octave_call_stack::do_current_statement): New functions. + (octave_call_stack::current): Call do_current, not top. + (octave_call_stack::current_statement): Call do_current_statement, + not top_statement. + (octave_call_stack::top, octave_call_stack::top_statement, + octave_call_stack::do_top, octave_call_stack::do_top_statement): + Delete. + + 2009-08-04 John W. Eaton + + * toplev.cc (octave_call_stack::do_goto_frame_relative): Allow + NSKIP to be 0. Set current scope and context. + * input.cc (Fkeyboard): Use octave_call_stack::goto_frame_relative + to set scope in user code that called the keyboard function. + + 2009-08-04 Jaroslav Hajek + + * input.cc (Fkeyboard): Only call do_keyboard, don't fiddle with + stack. + + 2009-08-03 Jaroslav Hajek + + * DLD-FUNCTIONS/sub2ind.cc: New source. + * Makefile.in: Include it. + * ov-range.h (octave_range::octave_range (const Range&, const + idx_vector&)): New constructor. + * ov-re-mat.h (octave_matrix::octave_matrix (const NDArray&, const + idx_vector&)): New constructor. + * ov.cc (octave_value::octave_value (const idx_vector&)): New + constructor. + * ov.h: Declare it. + + 2009-07-30 Ryan Rusaw + + * input.cc (reading_classdef_file): New file-scope variable. + (gnu_readline): Also set curr_stream if reading_classdef_file. + (octave_gets, get_input_from_file): + Handle classdef files like other input files. + * input.h (reading_classdef_file): Provide decl. + + * octave.gperf (classdef, endclassdef, endevents, endmethods, + endproperties, events, get, methods, properties, set): New keywords. + + * lex.l: Handle classdef filees like other input files. + Recognize superclass method identifiers and metaclass query constructs. + (is_keyword_token): Recognize endclassdef, endevents, endmethods, + endproperties, get, set, properties, methods, and events keywords. + (maybe_classdef_get_set_method, parsing_classdef): New variables. + (handle_superclass_identifier, handle_meta_identifier): + New static functions. + (lexical_feedback::init): Initialize parsing_classdef and + maybe_classdef_get_set_method. + (display_token): Handle SUPERCLASSREF, METAQUERY, GET, SET, + PROPERTIES, METHODS, EVENTS, and CLASSDEF tokens. + * lex.h (maybe_classdef_get_set_method, parsing_classdef): + Provide decls. + * parse.y (%union): New placeholder type, dummy_type. + (SUPERCLASSREF, METAQUERY, GET, SET, PROPERTIES, METHODS, EVENTS, + CLASSDEF): New tokens. + (superclass_identifier, meta_identifier, classdef_beg, + classdef_end, classdef1, classdef, opt_attr_list, attr_list, attr, + opt_superclasses, superclasses, class_body, properties_beg, + properties_block, properties_list, class_property, methods_beg, + methods_block, methods_list, events_beg, events_block, + events_list, class_event): New non-terminals. + (primary_expr): Include superclass_identifier and meta_identifier + as possible primary_exprs. + (function_beg): If parsing classdef file, set + lexer_flags.maybe_classdef_get_set_method to true. + be recognized. + (fcn_name): Accept GET '.' identifier or SET '.' identifier. + (end_error): Handle endclassdef. + (looking_at_classdef_keyword): New function. + (gobble_leading_whitespace): Handle classdef. + * token.h, token.cc (sc, mc): + New union fields for symbol classdef symbol_record info. + (token::token (symbol_table::symbol_record *, + symbol_table::symbol_record *, int, int), + token::token (symbol_table::symbol_record *, + symbol_table::symbol_record *, symbol_table::symbol_record *, int, + int)): New constructors. + (token::method_rec, token::class_rec, token::package_rec, + token::meta_class_rec, token::meta_package_rec): New methods. + (token_type): New enum values: scls_rec_token, meta_rec_token. + (end_tok_type): New enum values: classdef_end, events_end, + methods_end, properties_end. + + 2009-07-30 David Grundberg + + * symtab.h (symbol_table::parent_scope): Remove. + (symbol_table::set_parent_scope): Remove. + (symbol_table::reset_parent_scope): Remove. + (symbol_table::install_subfunction): Require scope parameter + instead of xparent_scope default. + * symtab.cc: Remove symbol_table::xparent_scope + * lex.h (lexical_feedback::parsing_nested_function): Remove. + * lex.l (is_keyword_token): Don't ignore endfunctions. + (prep_lexer_for_script_file): Renamed from prep_lexer_for_script. + (prep_lexer_for_function_file): New function. + (display_token): Display SCRIPT_FILE and FUNCTION_FILE. + (display_state): Display FUNCTION_FILE_BEGIN + (FUNCTION_FILE_BEGIN): New state. + (NESTED_FUNCTION_END, NESTED_FUNCTION_BEGIN): Remove states. + (prep_for_function, prep_for_nested_function): Remove functions. + * parse.h: Remove extern declaration parent_function_name, + end_tokens_expected. + * parse.y: Add variables current_function_depth, + max_function_depth, parsing_subfunctions, seen_endfunction. Remove + parent_function_name. Rename curr_fcn_ptr to primary_fcn_ptr. Add + token FUNCTION_FILE. Rename token SCRIPT to SCRIPT_FILE. + (function_file): New rule. + (input): Accept function_file. + (script_file): Rule renamed from script. + (function_file): New rule. + (function_list): New rule. + (push_fcn_symtab): Parse nested functions. + (fcn_name): Remove parent_function_name. + (function_end): Use seen_endfunction. New error messages. + (make_script): Use primary_fcn_ptr. + (frob_function): Simplify control structures. Don't use + symbol_table::parent_scope. + (push_fcn_symtab, function_end, frob_function, finish_function): + Use current_function_depth instead of + lexical_feedback::parsing_nested_function. + (make_return_command): Use current_function_depth instead of + lexical_feedback::defining_func. + (make_break_command, make_decl_command, maybe_warn_missing_semi): + Ditto + (parse_fcn_file): Warn when nested functions have been + declared. Remove superfluous local variables. Parse function files + using function_file rule. + + 2009-07-30 Jaroslav Hajek + + * data.cc (Fmerge): Rename to Fifelse. + + 2009-07-30 Jaroslav Hajek + + * data.cc (Fmerge): New DEFUN. + (do_merge): New helper function. + + 2009-07-29 John W. Eaton + + * parse.y (param_list_end): Also set + lexer_flags.looking_for_object_index to false. + + * ov-float.cc, ov-flt-re-mat.cc, ov-re-mat.cc, ov-re-sparse.cc, + ov-scalar.cc: Use complex function for acos mapper if arg is out + of range [-1, 1]. + + * ov-bool.cc (octave_bool::load_ascii): Call template function to + read value. + * ov-scalar.cc (octave_scalar::load_ascii): Likewise. + * ov-complex.cc (octave_complex::load_ascii): Likewise. + * ov-float.cc (octave_float_scalar::load_ascii): Likewise. + * ov-flt-complex.cc (octave_float_complex::load_ascii): Likewise. + * ls-mat-ascii.cc (read_mat_ascii_data): Likewise. + + * ov-re-sparse.cc (octave_sparse_matrix::load_binary, + octave_sparse_matrix::load_hdf5): Perform sanity check on indices. + * ov-cx-sparse.cc (octave_sparse_complex_matrix::load_binary, + octave_sparse_complex_matrix::load_hdf5): Likewise. + * ov-bool-sparse.cc (octave_sparse_bool_matrix::load_binary, + octave_sparse_bool_matrix::load_hdf5): Likewise. + + 2009-07-29 Jaroslav Hajek + + * ov-fcn-handle.cc (octave_fcn_handle::do_multi_index_op): + Cache lookups also for classes. + + 2009-07-28 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Support auto-expanding scalar + cells. + + 2009-07-27 Jaroslav Hajek + + * symtab.cc (symbol_table::fcn_info::fcn_info_rep::xfind, + symbol_table::fcn_info::fcn_info_rep::find, + symbol_table::fcn_info::fcn_info_rep::find_function, + symbol_table::fcn_info::find, + symbol_table::fcn_info::find_function, + symbol_table::find, symbol_table::do_find, + symbol_table::find_function): + Add local_funcs parameter. + * symtab.h: Update decls. + * ov-fcn-handle.cc (make_fcn_handle): Add local_funcs parameter. + * ov-fcn-handle.h: Update decls. + + 2009-07-24 John W. Eaton + + * pt-mat.cc (DO_SINGLE_TYPE_CONCAT_NO_MUTATE): New macro. + (tree_matrix::rvalue1): Use it to avoid complex -> real conversion. + + 2009-07-24 Jaroslav Hajek + + * DLD-FUNCIONS/cellfun.cc (Fcellfun): Avoid double error messages. + + 2009-07-24 Jaroslav Hajek + + * load-path.cc (load_path::do_any_class_method): New method. + * load-path.h (load_path::do_any_class_method): New method decl. + (load_path::any_class_method): New method. + * ov-fcn-handle.cc (octave_fcn_handle::do_multi_index_op): Support + calls without non-overloaded base function. + (make_fcn_handle): Support creation without non-overloaded base + function. + + 2009-07-23 Shai Ayal + + * DLD-FUNCTIONS/fltk_backend.cc (plot_window::pixel2axes_or_ca): + Replace plot_window::pixel2axes and use algorithm from octavede. + (plot_window::handle): Zooming now works on the axes below the + mouse pointer instead of the current axes. Combine old and new + zooming methods. + (help_text): Update to reflect new mouse/key bindings. + + 2009-07-23 Soren Hauberg + + * graphics.cc (axes::properties::zoom_about_point, + axes::properties::translate_view): New functions. + (axes::properties::zoom): make zoom_stack usage optional. + * DLD-FUNCTIONS/fltk_backend.cc (plot_window::handle): Use new + zoom API. + + 2009-07-23 John W. Eaton + + * variables.cc (safe_symbol_lookup): New function. + (symbol_exist): Use it. + + 2009-07-23 Jaroslav Hajek + + * DLD-FUNCTIONS/chol.cc (Fcholupdate, + Fcholinsert, Fcholdelete, Fcholshift): Replace is_matrix_type -> + is_numeric_type. + + 2009-07-23 John W. Eaton + + * toplev.cc (IGNORE_EXCEPTION, SAFE_CALL): New macros. + (clean_up_and_exit, do_octave_atexit): Use SAFE_CALL to handle + exceptions while preparing to exit. + + 2009-07-23 Jaroslav Hajek + + * symtab.cc (get_dispatch_type): Omit first-arg dispatch, export. + * symtab.h (get_dispatch_type): Provide decl. + * ov-fcn-handle.h (octave_fcn_handle::warn_reload): Delete. + (octave_fcn_handle::disp): New field. + (octave_fcn_handle::str_ov_map): New typedef. + (octave_fcn_handle::octave_fcn_handle (..., str_ov_map *)): New + constructor. + (octave_fcn_handle::do_multi_index_op): New method decl. + (octave_fcn_handle::is_overloaded): New method. + * ov-fcn-handle.cc + (octave_fcn_handle::do_multi_index_op): New method. + (octave_fcn_handle::subsref): Rewrite using do_multi_index_op. + (octave_fcn_handle::make_fcn_handle): Construct overloaded handles if + appropriate. + (Ffunctions): Indicate (statically) overloaded handles. + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Update & modernize. + * DLD-FUNCTIONS/bsxfun.cc (Fbsxfun): Ditto. + + 2009-07-22 Jaroslav Hajek + + * symtab.cc (symbol_table::find, + symbol_table::find_function, + symbol_table::symbol_record::find, + symbol_table::fcn_info::find, + symbol_table::fcn_info::fcn_info_rep::find, + symbol_table::fcn_info::fcn_info_rep::xfind): Simplify argument lists. + * symtab.h: Update declarations. + * pt-id.cc (tree_identifier::rvalue): Simplify. + * pt-id.h (tree_identifier::do_lookup): Simplify. + * pt-idx.cc (tree_index_expression::rvalue): Update. + * variables.cc (symbol_exist): Update. + + 2009-07-21 John W. Eaton + + * symtab.cc (symbol_table::builtin_find, + symbol_table::do_builtin_find, + symbol_table::fcn_info::builtin_find, + symbol_table::fcn_info::fcn_info_rep::builtin_find, + symbol_table::fcn_info::fcn_info_rep::x_builtin_find): New functions. + * symtab.h: Provide decls. + * DLD-FUNCTIONS/dispatch.cc (Fbuiltin): Call + symbol_table::builtin_find instead of symbol_table::find_function. + + 2009-07-20 Aleksej Saushev + + * sysdep.cc: Also define BSD_init if __NetBSD__ is defined. + (sysdep_init): Also call BSD_init if __NetBSD__ is defined. + + 2009-07-20 Jaroslav Hajek + + * bitfcns.cc (DO_UBITSHIFT): Avoid overflow. + (DO_SBITSHIFT): Fix mask calculation. + + 2009-07-17 Benjamin Lindner + + * DLD-FUNCTIONS/__magick_read__.cc (F__magick_read__): + Determine correct number of bits required when reading images. + + 2009-07-16 John W. Eaton + + * graphics.cc (get_array_limits): Require min_pos value to be + greater than zero. + + 2009-07-15 Robert T. Short + + * DLD-FUNCTIONS/filter.cc: New tests. + + 2009-07-09 John W. Eaton + + * data.cc (Fones, Fzeros, Ftrue, Ffalse): Update docstrings. + + 2009-07-08 John W. Eaton + + * graphics.cc (convert_cdata): Return NaN for NaN values in cdata. + + * pt-assign.cc (maybe_warn_former_built_in_variable): Improve message. + + 2009-07-04 Jaroslav Hajek + + * pt-eval.cc (do_unwind_protect_cleanup_code): Add missing + unwind_protect::run. + + 2009-07-02 Jaroslav Hajek + + * help.cc (do_which): Also look for files. + + 2009-07-02 Jaroslav Hajek + + * Cell.cc (Cell::index): Use proper resize_fill_value. + + 2009-07-01 Jaroslav Hajek + + * symtab.h (symbol_table::get_fcn_info): New private static method. + (symbol_record_rep::finfo): New field. + * symtab.cc (symbol_record::find): Use cached finfo if possible, + cache on successful queries. + + 2008-07-01 David Bateman + + * pr-output.cc (static inline std::string rational_approx (double, + int)): Test for underflow of fractional part of rational approximation + earlier in the loop. + + 2009-07-01 Joe Rothweiler + + * input.cc (raw_mode): Use TCSADRAIN if no wait. + + 2009-06-30 Jaroslav Hajek + + * symtab.h (force_variable): Remove assertion. + + 2009-06-28 Michael Goffioul + + * Makefile.in (INCLUDES): Install txt-eng.h and txt-eng-ft.h. + * gl-render.cc (opengl_renderer::draw_text): Fix bitmap offset + computation for 90x rotated text. + * txt-eng-ft.cc (ft_render::render): Compute bitmap pixels correctly + for 90x rotated text. + + * gl-render.cc (opengl_renderer::draw(text::properties)): Don't do + anything if the bitmap data is empty. Issue a warning instead of + an error if Freetype library is not available. + * txt-eng-ft.cc (ft_manager::do_get_font): Small change in error + string (add prefix). + (ft_render::render): Don't do anything if the bitmap data is empty. + + 2009-06-28 Jaroslav Hajek + + * symtab.h (erase_scope (void *)): Remove overload. + + 2009-06-26 Michael Goffioul + + * txt-eng.h: New file for simple text engine. + * txt-eng.h, txt-eng.cc: Freetype based text render engine. + * Makefile.in: Add txt-eng-ft.cc to list of source files. + * gl-render.h (opengl_renderer::draw_text, opengl_renderer::set_font, + opengl_renderer::draw(text::properties)): New method to support text + rendering using the Freetype renderer. + (opengl_renderer::text_renderer): New field for text rendering. + * gl-render.cc (opengl_renderer::draw(graphics_object)): Support text + object. + (opengl_renderer::draw(figure::properties)): Setup alpha test. + (opengl_renderer::draw(axes::properties)): Render tick labels, hide + labels for depth axes and fix a problem in calling + graphics_object::get(char*). + (opengl_renderer::draw(text::properties)): Basic text rendering using + Freetype engine. + (opengl_renderer::draw_text): Ditto. + (opengl_renderer::set_color): Propagate the color to the text + renderer. + (opengl_renderer::set_font): New utility method. + * graphics.cc (axes::properties::init, axes::properties::set_defauls): + (Re)initialize tick labels, labels and title property. + + 2009-06-26 John W. Eaton + + * load-path.cc (Faddpath): Preserve order of prepended elements. + + 2009-06-25 John W. Eaton + + * graphics.h.in (gh_manager::restore_gcbo): + Arg is now void, not void*. + + 2009-06-25 Jaroslav Hajek + + * unwind-prot.h (unwind_protect::fcn_elem): New class. + (unwind_protect::fcn_arg_elem): New class. + (unwind_protect::method_elem): New class. + (unwind_protect::add_action_var): Rename to add_fcn. + (unwind_protect::add_fcn): New static method. + (unwind_protect::add_method): New static method. + + * symtab.h: Split clear_variables into two overloads. + * toplev.h (octave_call_stack::restore_frame): New static method. + + * graphics.cc: Update unwind_protect usage. + * input.cc: Ditto. + * lex.h: Ditto. + * ls-mat5.cc: Ditto. + * mex.cc: Ditto. + * ov-builtin.cc: Ditto. + * ov-fcn-handle.cc: Ditto. + * ov-mex-fcn.cc: Ditto. + * ov-usr-fcn.cc: Ditto. + * parse.y: Ditto. + * pt-eval.cc: Ditto. + * toplev.cc: Ditto. + * variables.cc: Ditto. + + 2009-06-25 Jaroslav Hajek + + * input.cc: Use unwind_protect::add_action_var where appropriate. + * ls-mat5.cc: Ditto. + * ov-fcn-handle.cc: Ditto. + * parse.y: Ditto. + * toplev.cc: Ditto. + * variables.cc: Ditto. + + 2009-06-25 Jaroslav Hajek + + * unwind-prot.h (unwind_protect::elem): New polymorphic class. + (unwind_protect::restore_var): Remove. + (unwind_protect::restore_mem): Remove. + (unwind_protect::elt_list): Update. + (unwind_protect::add (elem *)): New method. + (unwind_protect::add (void (*)(void *), void *)): Reimplement. + (unwind_protect::run (void)): Rewrite. + (unwind_protect::discard (void)): Rewrite. + (unwind_protect::protect_var): Rewrite. + (unwind_protect::protect_mem): Rewrite. + (unwind_protect::add_action_var): New method. + * unwind-prot.cc (unwind_protect::restore_mem): Remove. + + 2009-06-24 Thorsten Meyer + + * oct-map.cc (Octave_map::squeeze, Octave_map::permute, + Octave_map::transpose, Octave_map::reshape, Octave_map::concat, + Octave_map::index): Add tests for preservation of key order in + struct arrays. + + 2009-06-24 Jaroslav Hajek + + * pt-mat.cc (get_concat_class): Use empty string as zero value. + (tm_row_const_rep::tm_row_const_rep): Initialize class_nm to empty + string. + (tm_const::tm_const): Ditto. + + 2009-06-24 John W. Eaton + + * pt-assign.cc (former_built_in_variables): Remove "ans" from the list. + + 2009-06-24 Jaroslav Hajek + + * unwind-prot.h (restore_var, restore_mem): Hide also copy + constructors. + + 2009-06-23 Jaroslav Hajek + + * quit.h (octave_quit_exception): Delete. + (exit_status, quitting_gracefully): New globals. + * quit.cc: Initialize them. + (Fquit): Set the globals, simulate interrupt. + (main_loop): Handle exit properly. + * octave.cc (execute_eval_option_code): Ditto. + (execute_command_line_file): Ditto. + * pt-eval.cc (do_unwind_protect_cleanup_code): + Fix order of unwind_protect calls. + + 2009-06-23 John W. Eaton + + * oct-map.cc (Octave_map::squeeze, Octave_map::permute, + Octave_map::transpose, Octave_map::reshape, Octave_map::concat): + Preserve key order. + + 2009-06-23 Jaroslav Hajek + + * pt-eval.cc (tree_evaluator::visit_try_catch_command): Simplify. + + 2009-06-23 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc: Modernize unwind_protect usage. + * DLD-FUNCTIONS/daspk.cc: Ditto. + * DLD-FUNCTIONS/dasrt.cc: Ditto. + * DLD-FUNCTIONS/dassl.cc: Ditto. + * DLD-FUNCTIONS/eigs.cc: Ditto. + * DLD-FUNCTIONS/lsode.cc: Ditto. + * DLD-FUNCTIONS/quad.cc: Ditto. + * DLD-FUNCTIONS/rand.cc: Ditto. + * debug.cc: Ditto. + * dynamic-ld.cc: Ditto. + * error.cc: Ditto. + * graphics.cc: Ditto. + * help.cc: Ditto. + * input.cc: Ditto. + * load-path.cc: Ditto. + * ls-mat4.cc: Ditto. + * ls-mat5.cc: Ditto. + * mex.cc: Ditto. + * oct-hist.cc: Ditto. + * octave.cc: Ditto. + * ov-builtin.cc: Ditto. + * ov-class.cc: Ditto. + * ov-fcn-handle.cc: Ditto. + * ov-list.cc: Ditto. + * ov-mex-fcn.cc: Ditto. + * ov-struct.cc: Ditto. + * ov-usr-fcn.cc: Ditto. + * pager.cc: Ditto. + * pr-output.cc: Ditto. + * pt-arg-list.cc: Ditto. + * pt-eval.cc: Ditto. + * toplev.cc: Ditto. + * variables.cc: Ditto. + + 2009-06-22 Jaroslav Hajek + + * unwind-prot.h (unwind_protect): Rewrite. + (unwind_protect::protect_var): New class. + (unwind_protect::protect_mem): New class. + * unwind-prot.cc (unwind_protect): Rewrite. + * pt-eval.cc (tree_evaluator::visit_try_catch_command): Delete frame + properly. + + 2009-06-22 Jaroslav Hajek + + * ov-cell.cc (octave_cell::all_strings): Avoid duplicate conversions. + + 2009-06-20 Jaroslav Hajek + + * ov.cc (Fsubsasgn): Uniquify shared value before assigning to it. + + 2009-06-19 Jaroslav Hajek + + * DLD-FUNCTIONS/lookup.cc: Update docs. + + 2009-06-17 John W. Eaton + + * mex.cc (mxArray_octave_value::get_data): + If octave_value::mex_get_data returns a valid pointer, mark it as + foreign and return it instead of enumerating the types that can be + handled directly. + + * ov-re-mat.h (octave_matrix::mex_get_data): New function. + * ov-bool-mat.h (octave_bool_matrix::mex_get_data): Ditto. + * ov-flt-re-mat.h (octave_float_matrix::mex_get_data): Ditto. + * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::mex_get_data): Ditto. + * ov-base-mat.h (octave_base_matrix::mex_get_data): Delete. + + 2009-06-16 Jaroslav Hajek + + * symtab.h (symbol_table::set_scope_and_context): Avoid checking + error_state for setting context. + + 2009-06-15 Jaroslav Hajek + + * ov-re-mat.h (octave_matrix::octave_matrix (const Array&, + bool)): New constructor. + * ov.cc (octave_value::octave_value (const Array&, + bool)): New constructor. + * ov.h: Declare it. + + * data.cc (Fsort, F__sort_rows_idx__): Use the new constructor. + * DLD-FUNCTIONS/find.cc (Ffind): Ditto. + * DLD-FUNCTIONS/lookup.cc (Flookup): Ditto. + * DLD-FUNCTIONS/max.cc (Fmax, Fmin, Fcummax, Fcummin): Ditto. + + 2009-06-15 Jaroslav Hajek + + * ov-base-mat.h (octave_base_matrix::idx_cache): New member field. + (octave_base_matrix::typ): Turn to MatrixType *. + (octave_base_matrix::octave_base_matrix (...)): Update constructors. + (octave_base_matrix::clear_cached_info, + octave_base_matrix::set_idx_cache): New member functions. + * ov-base-mat.cc (octave_base_matrix::assign, + octave_base_matrix::delete_elements): Call clear_cached_info here. + * ov-re-mat.h (octave_matrix::index_vector): Use idx_cache. + * ov-flt-re-mat.h (octave_float_matrix::index_vector): Ditto. + * ov-bool-mat.h (octave_bool_matrix::index_vector): Ditto. + * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::index_vector): Ditto. + * ov-range.h (octave_range::idx_cache): New member field. + (octave_range::octave_range (...)): Update constructors. + (octave_range::clear_cached_info, + octave_base_matrix::set_idx_cache): New member functions. + (octave_range::idx_vector): Use idx_cache. + + 2009-06-14 Michael Goffioul + + * graphics.h.in (axes::properties::xtick, axes::properties::ytick, + axes::properties::ztick, axes::properties::xticklabelmode, + axes::properties::yticklabelmode, axes::properties::zticklabelmode): + Add 'u' modifier to enable updaters. + (axes::properties::calc_ticklabels): New function to update tick + labels. + (axes::properties::update_xtick, axes::properties::update_ytick, + axes::properties::update_ztick, + axes::properties::update_xticklabelmode, + axes::properties::update_yticklabelmode, + axes::properties::update_zticklabelmode): Add updaters to update tick + labels correctly. + (axes::properties::update_xlim, axes::properties::update_ylim, + axes::properties::update_zlim): Update tick labels. + * graphics.cc (axes::properties::calc_ticklabels): New function to + update tick labels. + + 2009-06-14 Jaroslav Hajek + + * DLD-FUNCTIONS/lookup.cc (Flookup): Support character array lookup. + + 2009-06-12 John W. Eaton + + * ov-fcn-handle.cc (make_fcn_handle): Accept operators which have + corresponding functions and make function handles using the names. + New test. + + 2009-06-12 Jaroslav Hajek + + * DLD-FUNCTIONS/lookup.cc (do_numeric_lookup): New template function. + (Flookup): Extend to support b and m options, improve diagnostic. + Refactor. + + 2009-06-12 Kai NODA + + * ls-mat4.h: Fix include guard + * ov-type-conv.h: Add missing include guard. + + 2009-06-12 Jaroslav Hajek + + * data.cc (BINARY_ASSOC_OP_DEFUN_BODY): New helper macro. + (Fplus, Fmtimes, Ftimes, Fand, For): Allow >= 1 arguments. + + 2009-06-12 Jaroslav Hajek + + * ov-cell.cc (octave_cell::sort (Array&)): Simplify. + + 2009-06-11 John W. Eaton + + * octave.cc: Keep long options alphabetized. + + * display.h (display_info::no_window_system): New static function. + (display_info::display_info, display_info::init, + display_info::instance_ok): New argument, QUERY. + (display_info::init): Skip query if QUERY is false. + + * octave.cc (long_opts, octave_main): Handle --no-window-system option. + (NO_WINDOW_SYSTEM_OPTION): New defined value. + (usage_string, verbose_usage): Mention --no-window-system option. + + 2009-06-11 Jaroslav Hajek + + * ov-class.cc (octave_class::subsref): Set up proper nargout for call to subsref + method. + * ov-class.cc (octave_class::subsref): Unpack cs-list and setup nargin + for call to subsasgn. + + 2009-06-10 Jaroslav Hajek + + * ov-base.cc (octave_base_value::numel (const octave_value_list&), + octave_base_value::size): New virtual methods. + * ov-base.h: Declare them. + * ov.h (octave_value::numel (const octave_value_list&)): New method. + (octave_value::size): Forward to octave_base_value. + * ov-class.cc (octave_class::numel (const octave_value_list&), + octave_base_value::size): New method overrides. + * ov-class.h: Declare them. + * pt-idx.cc (tree_index_expression::lvalue): Rewrite. + * data.cc (Fnumel): Allow indexed query. + + 2009-06-10 John W. Eaton + + * pt-fcn-handle.cc (tree_anon_fcn_handle::dup): Don't convert to + tree_constant object here. Do inherit from current symbol table + scope and context. New test. + + * lex.l (handle_identifier): Set lexer_flags.looking_for_object_index + false if identifier is a keyword. + ({IDENT}{S}*): Don't set lexer_flags.looking_for_object_index here. + + 2009-06-09 Jaroslav Hajek + + * octave.cc (octave_main): Call initialize_command_input + conditionally. Move line_editing update in front of it. + Call command_editor::force_default_editor if not line_editing. + + 2009-06-09 Jaroslav Hajek + + * data.cc (Flog2): Fix tests. + + 2009-06-08 John W. Eaton + + * variables.cc (symbol_exist): Returnn 1 for function handles and + inline function objects. + + 2009-06-08 Jaroslav Hajek + + * symtab.h (symbol_table::do_clear_global, + symbol_table::do_clear_global_pattern): Properly erase from both local + and global table. + + 2009-06-08 Jaroslav Hajek + + * variables.cc (Fclear): Clear also globals when called without + arguments. + + 2009-06-07 Jaroslav Hajek + + * graphics.cc (color_property::do_set): Allow a wider range of types. + + 2009-06-07 Jaroslav Hajek + + * DLD-FUNCTIONS/find.cc (Ffind): Fix docs. Improve second argument + handling. Add regression tests. + + 2009-06-06 Rik + + * data.cc: Update documentation for 'complex' function + + 2009-06-06 Rik + + * load-save.cc: Update documentation for NA and isna functions + + 2009-06-06 Rik + + * load-save.cc: Update documentation for load and save + + 2009-06-06 Rik + + * pr-output.cc: Update documentation for 'format' + + 2009-06-05 Rik + + * variables.cc: Update documentation for 'who' family of functions + + 2009-06-03 Rik + + * input.cc: Correct documentation for keyboard function + + 2009-06-02 Rob Mahurin + + * Makefile.in: Add CARBON_LIBS to OCTINTERP_LINK_DEPS. + From Bernard Desgraups . + + 2009-06-02 Jaroslav Hajek + + * ov-base.cc (octave_base_value::numeric_assign): Gripe when no index + given. + * ov-cell.cc (octave_cell::subsasgn): Ditto. + * ov-struct.cc (octave_struct::subsasgn): Ditto. + * ov-list.cc (octave_list::subsasgn): Ditto. + + 2009-05-28 John W. Eaton + + * load-path.cc (load_path::do_files): Avoid shadow warning from GCC. + + 2009-05-27 John W. Eaton + + * DLD-FUNCTIONS/__magick_read__.cc (write_image): + Bail out if given indexed image. + + 2009-05-27 Jaroslav Hajek + + * DLD-FUNCTIONS/__magick_read__.cc (encode_map): Fix RGB color + construction. + + 2009-05-26 John W. Eaton + + * load-path.h, load-path.cc (load_path::files, load_path::do_files): + New arg, OMIT_EXTS. + * help.cc (F__list_functions__): Call load_path::files with + omit_exts set to true. + + * symtab.h + (symbol_table::symbol_record::symbol_record_rep::is_variable): + Use "! is_local ()" instead of storage_class != local. + (symbol_table::do_variable_names): Only add variables to the list. + (symbol_table::unmark_forced_variables): New static function + * variables.cc (do_who): Use is_variable instead of is_defined. + Also limit output to variables when using regexp pattern. + * octave.cc (unmark_forced_vars): Delete. + (execute_eval_option_code): Don't add unmark_forced_vars to + unwind_protect stack here. + * toplev.cc (main_loop): Add symbol_table::unmark_forced_variables + to the unwind_protect stack here. + * input.cc (get_debug_input): Likewise. + * parse.y (parse_fcn_file, eval_string): Likewise. + + 2009-05-25 Jaroslav Hajek + + * toplev.h (quit_allowed): New global variable. + * toplev.cc (quit_allowed): Declare it. + (Fquit): Raise error if quitting is not allowed. + * octave.cc (octave_main): if running as embedded, disable quit by + default. + + 2009-05-25 Jaroslav Hajek + + * variables.cc (do_who): Only output symbols with a defined value. + + 2009-05-22 Michael Goffioul + + * toplev.h (main_loop): Tag with OCTINTERP_API. + * input.h (octave_read, get_input_from_file, get_input_from_stdin): + Ditto. + * lex.h (create_buffer, current_buffer, switch_to_buffer, + delete_buffer, restore_input_buffer, delete_input_buffer): Ditto. + + 2009-05-22 Robert T. Short + + * ov-class.h, ov-class.cc (octave_class::clear_exemplar_map): + New function. + * symtab.h (symbol_record::clear_objects, + symbol_record::do_clear_objects): New functions. + * variables.cc (do_matlab_compatible_clear, clear): + Handle -classes option. + + 2009-05-22 Jaroslav Hajek + + * ov-base-mat.cc (octave_base_matrix::assign (const + octave_value_list, typename MT::element_type)): Avoid out of bounds + assignments. + + 2009-05-21 Michael Goffioul + + * graphics.cc (figure::properties::get_boundingbox, + figure::properties::set_boundingbox): Get screen size from root + object. + (convert_position): Get screen resolution from root object and remove + unneeded "backend" argument. + (axes::properties::get_boundingbox, + figure::properties::get_boundingbox, + figure::properties::set_boundingbox): Remove unneeded backend argument + to convert_position call. + + * debug.h (class bp_table): Tag with OCTINTERP_API. + * input.h (Vdebugging): Ditto. + * pt-eval.h (class tree_evaluator): Ditto. + * toplev.h (class octave_call_stack): Ditto. + + * file-io.cc (mkstemp): Add mktemp-based implementation of mkstemp on + platforms that do not have it (mkstemp is required by the new help + system). + + * TEMPLATE-INST/Array-os.cc: Add "extern template" declaration for + Array to avoid implicit instantiation (and duplicate + symbols at link-time) [Win32] + + 2009-05-20 John W. Eaton + + * pt-assign.cc (maybe_warn_former_built_in_variable): + Set initialized to true when done initializing vars set. + From Michael Goffioul . + + 2009-05-20 Jaroslav Hajek + + * ov-typeinfo.h + (octave_value_typeinfo::unary_class_ops, + octave_value_typeinfo::unary_ops, + octave_value_typeinfo::non_const_unary_ops, + octave_value_typeinfo::binary_class_ops, + octave_value_typeinfo::binary_ops, + octave_value_typeinfo::compound_binary_class_ops, + octave_value_typeinfo::compound_binary_ops, + octave_value_typeinfo::cat_ops, + octave_value_typeinfo::assign_ops, + octave_value_typeinfo::assignany_ops, + octave_value_typeinfo::pref_assign_conv, + octave_value_typeinfo::type_conv_ops, + octave_value_typeinfo::widening_ops): Declare as Array. + * ov-typeinfo.cc: Reflect changes. + + 2009-05-20 Jaroslav Hajek + + * toplev.h (octave_exit_func): New typedef. + (octave_exit): Change to octave_exit_func. + + 2009-05-20 Jaroslav Hajek + + * ov-typeinfo.cc: Don't include oct-obj.h. + + 2009-05-20 Jaroslav Hajek + + * toplev.h (octave_quit_exception): New class. + (octave_exit): New global variable. + * toplev.cc (octave_exit): Initialize to ::exit. + (clean_up_and_exit): Call octave_exit if set. + (Fquit): Raise octave_quit_exception to quit. + (main_loop): Catch octave_quit_exception. + * octave.cc (execute_command_line_file): Ditto. + (execute_eval_option_code): Ditto. + + 2009-05-19 John W. Eaton + + * DLD-FUNCTIONS/fltk_backend.cc (F__fltk_redraw__): New function. + (F__init_fltk__): Call add_input_event_hook with feval to add + __fltk_redraw__ to the list of even hook functions to call. + Call mlock when initializing. + (F__remove_fltk__): Call remove_input_event_hook with feval to + remove __fltk_redraw__ from the list of event hook functions. + Unlock __init_fltk__ when shutting down. + + * input.cc (Finput_event_hook): Delete. + (input_event_hook): Handle set of functions instead of just one. + (Fadd_input_event_hook, Fremove_input_event_hook): New functions. + + 2009-05-19 Jaroslav Hajek + + * Makefile.in: Add X11_LIBS to OCTINTERP_LINK_DEPS. + + 2009-05-17 Jaroslav Hajek + + * TEMPLATE-INST/Array-tc.cc: Change #include. + + 2009-05-15 Robert T. Short + + * ov-class.cc (octave_class::exemplar_info): Fix typo in error message. + * ov-class.cc (Fmethods): Methods returns cell array. + * ls-mat5.cc (read_mat5_binary_element): + Construct exemplar array and ensure inheritance is correct. + + 2009-05-15 John W. Eaton + + * error.cc (Ferror): Handle error struct argument. + + * ls-mat5.cc (save_mat5_binary_element): Avoid multiple calls to + contents method. From David Bateman . + (save_mat5_element_length): Use const Cell to avoid making copies + when indexing. + + 2009-05-15 Jaroslav Hajek + + * oct-stream.cc: Don't instantiate Array2. + (octave_stream::read): Make read_fptr_table a static 2d array. + (FILL_TABLE_ROW): Update. + + 2009-05-12 Jaroslav Hajek + + * data.cc (F__accumarray_sum__): Optimize the constant range case. + + 2009-05-11 John W. Eaton + + * sparse-xdiv.cc (do_rightdiv_sm_dm, do_leftdiv_dm_sm): + Avoid apparent MSVC bug with typedef. + + * Makefile.in (install-lib): Remove + $(DESTDIR)$(octlibdir)/$(SHLLIBPRE)octinterp.$(SHLLIB_VER), not + $(DESTDIR)$(octlibdir)/$(SHLPRE)octinterp.$(SHLEXT_VER). + + 2009-05-08 Carsten Clark + + * data.cc (Fissorted): Fix typo in documentation entry. + + 2009-05-07 Robert T. Short + + * ov-class.h, ov-class.cc (octave_class::reconstruct_exemplar): + New function. + * ov-class.cc (octave_class::load_binary, octave_class::load_hdf5, + octave_class::load_ascii): Construct exemplar table and ensure + inheritance is correct. + * ov-struct.cc (struct): Return struct from object. + + 2009-05-07 John W. Eaton + + * graphics.h.in (base_graphics_object::set): Undo previous change. + (base_properties::set (const caseless_str&, const octave_value&): + New virtual function. + (base_properties::set (const caseless_str&, const std::string&, + const octave_value&)): No longer virtual. + + * toplev.cc (octave_config_info): Remove F2C and F2CFLAGS from the + config infor struct. + * oct-conf.h.in (OCTAVE_CONF_F2CFLAGS, OCTAVE_CONF_F2C): + Delete definitions. + + 2009-05-07 Marco Atzeri + + * Makefile.in: (SHLPRE): Rename from SHLLIBPRE. + + 2009-05-07 John W. Eaton + + * genprops.awk (emit_declarations): Emit decls for static + has_property functions. + (emit_source): Add class name argument to base_properties::set + function. Pass class name to set_dynamic and + base_properties::set. Emit definitions for has_property + functions. + * graphics.h.in, graphics.cc + (base_properties::set, base_properties::set_dynamic): + New argument CNAME. + (base_properties::all_dynamic_properties): New static data member. + (base_properties::has_dynamic_property): New static function. + (base_graphics_object::set): Pass class name to + base_properties::set function. + (property_list::set): Check for invalid property names. + + 2009-05-06 Jaroslav Hajek + + * ov-re-mat.cc (Fdouble): Fix order of branches. + + 2009-05-05 John Swensen + + * debug.h, debug.cc (breakpoints): Rename from bp_map, use a + std::set instead of a std::map object. Change all uses. + (bp_table::do_get_breakpoint_list): Simplify. + + 2009-05-05 Robert T. Short + + * ov-class.h, ov-class.cc (octave_class::reconstruct_parents): + New function. + * ov-class.cc (octave_class::load_binary, octave_class::load_hdf5): + Contstruct parent list. + (get_current_method_class): Clean up method class extraction. + + 2009-05-05 John W. Eaton + + * graphics.cc (array_property::validate): Require object to be any + numeric type, not necessarily a double precision value. + + * variables.cc (set_internal_variable): Pass NM in call to error. + + 2009-05-04 Peter O'Gorman + + * utils.cc: Don't define HAVE_C99_VSNPRINTF here. + + 2009-05-01 John W. Eaton + + * error.cc (Vlast_error_file, Vlast_error_name, Vlast_error_line, + Vlast_error_column): Delete. + (Vlast_error_stack): New static variable. + (initialize_last_error_stack): New static function. + (verror, Frethrow, Flasterror): Set or use Vlast_error_stack, not + Vlast_error_file, etc. + + 2009-04-27 John W. Eaton + + * ov-class.cc (octave_class::dotref): Handle empty parent class. + (octave_class::get_current_method_class): Allow result to be empty. + (called_from_builtin): New static function. + (octave_class::subsref, octave_class::subsasgn): Use it. + + 2009-04-23 John W. Eaton + + * ov-class.cc (Fclass): Check newly constructed classes against + the first constructed object of the class. + + * ov-class.h, ov-class.cc (octave_class::exmplar_info): New class. + (exemplar_map): New static data member. + (exemplar_iterator, exemplar_const_iterator): New typedefs. + + * ov-class.h (octave_class::nparents, + octave_class::parent_class_name_list): New functions. + * ov.h (octave_base_value::nparents, + octave_base_value::parent_class_name_list): New functions. + * ov-base.h, ov-base.cc (octave_base_value::nparents, + octave_base_value::parent_class_name_list): New functions. + (parent_class_names): Error if called for wrong type argument. + + * symtab.cc (load_out_of_date_fcn): New arg, dispatch_type. + (out_of_date_check_internal): Pass dispatch type to + load_out_of_date_fcn. + + 2009-04-22 John W. Eaton + + * ov-base-int.cc (octave_base_int_helper::char_value_out_of_range): Correct result for specialization. + + * ov-class.cc (octave_class::dotref, octave_class::subsasgn): + Protect against possibly invalid octave_value -> string conversions. + + 2009-04-22 Robert T. Short + + * variables.cc (symbol_exist): Also return 1 for objects. + * ov-base.h (octave_base_value::assign): New virtual function. + * ov-class.h (octave_class::assign): New function. + * ov-class.cc (octave_class::find_parent_class): Simplify. + (octave_class::octave_class): Don't allow duplicate parent classes. + (octave_class::subsasgn): Allow cls = method (cls, value) to work + properly when method is a parent-class method. + (get_method_class): New static function. + (octave_class:subsasgn, octave_class::dotref): Use it. + (F__isa_parent__): New function. + + 2009-04-22 Jaroslav Hajek + + * ov-range.cc (octave_range::char_array_value): New virtual function + override. + * ov-range.h: Declare it. + + 2009-04-22 Jaroslav Hajek + + * pt-mat.cc (tm_row_const::tm_row_const_rep::do_init_element): + Update class name even for all-zeros elements. + (get_concat_class): Update the default value if possible. + + 2009-04-21 John W. Eaton + + * parse.y (Fassignin): Add missing unwind_protect frame. + + * toplev.h (push (symbol_table::scope_id, symbol_table::context_id)): + New function. + + * toplev.cc (main_loop): Don't call symbol_table::reset_scope. + + * mex.cc (mexGetVariable, mexPutVariable): Use unwind_protect to + restore call stack and scope. + + * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): + Don't use symbol_table::push_scope. + * variablees.cc (do_who): Likewise. Use octave_call_stack and + unwind_protect to manage change in scope. + * ov-fcn-handle.cc (octave_fcn_handle::load_ascii, + octave_fcn_handle::load_binary, octave_fcn_handle::load_hdf5): + Likewise. + * ls-mat5.cc (read_mat5_binary_element): Likewise. + + * symtab.h (erase_scope (void*)): New function, for unwind_protect. + (symbol_table::push_scope, symbol_table::pop_scope, + symbol_table::reset_scope): Delete. + (symbol_table::scope_stack): Delete static member. + * symtab.cc (symbol_table::scope_stack): Delete definition. + + 2009-04-17 Jaroslav Hajek + + * oct-map.h (Octave_map::contents (const_iterator) const, + Octave_map::contents (iterator)): Simplify. + + 2009-04-17 Jaroslav Hajek + + * oct-map.cc (Octave_map::assign (const octave_value_list&, const + std::string&, const Cell&)): Fix & simplify. + (common_size): Remove. + + 2009-04-16 Jaroslav Hajek + + * pt-idx.cc (make_value_list): Gripe on magic end query for undefined + variables. + + 2009-04-16 Jaroslav Hajek + + * xpow.cc (same_sign): New helper function. + (elem_xpow (double, const Range&), elem_xpow (const Complex&, const Range&)): + Only optimize monotonic-magnitude integer ranges, start always from + the smaller end. + + 2008-04-11 David Bateman + + * ov-cell.cc (Fstruct2cell): Treat possible trailing singleton for + creation of cell array from column structure vector. + + 2009-04-09 Jaroslav Hajek + + * ov-cell.cc (octave_cell::subsasgn): Fix reference counting + optimization. + + 2009-04-08 John W. Eaton + + * load-path.cc (rehash_internal): New function. + (Frehash): Use it. + (Fpath, Faddpath, Frmpath): Call rehash_internal if path is modified. + + 2009-04-08 Jaroslav Hajek + + * xpow.cc (elem_xpow (double, const Range&), + elem_xpow (const Complex&, const Range&)): New functions. + * xpow.h: Declare them. + * OPERATORS/op-range.cc: Define scalar .^ range and complex .^ range & + install them. + + 2009-04-04 Jaroslav Hajek + + * ov-struct.cc (octave_struct::subsasgn): Fix reference counting + optimization. + + 2008-04-03 David Bateman + + * DLD-FUNCTIONS/max.cc (MINMAX_SPARSE_BODY): Allow sparse boolean + values. + + 2009-04-01 Jaroslav Hajek + + * ov-str-mat.cc (default_numeric_conversion_function): + Create an octave_scalar if possible. + + 2009-03-29 John W. Eaton + + * DLD-FUNCTIONS/fltk_backend.cc (plot_window::button_press): + Don't pass arbitrary input to fl_message as a format string. + + 2009-03-29 Jaroslav Hajek + + * pt-eval.cc (do_unwind_protect_cleanup_code): Protect also + octave_interrupt_state. + + 2009-03-29 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc (Fcellslices): Index n-d arrays along the + last dimension. + + 2009-03-27 Jaroslav Hajek + + * DLD-FUNCTIONS/balance.cc (Fbalance): Fix order of output args. + + 2009-03-26 Jaroslav Hajek + + * DLD-FUNCTIONS/find.cc + (find_nonzero_elem_idx (const Array&, ...)): Move dimensions + fixup to liboctave. + + 2009-03-26 Jaroslav Hajek + + * DLD-FUNCTIONS/find.cc + (find_nonzero_elem_idx (const Array&, ...)): Simplify. + Instantiate for bool and octave_int types. + (find_nonzero_elem_idx (const Sparse&, ...)): + Instantiate for bool. + (Ffind): Handle bool and octave_int cases. + + 2009-03-25 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 3.1.55+. + (OCTAVE_API_VERSION): Now api-v37+. + + * version.h (OCTAVE_VERSION): Now 3.1.55. + (OCTAVE_API_VERSION): Now api-v37. + (OCTAVE_RELEASE_DATE): Now 2009-03-25. + + * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Also return + [](0x0) if the array has 0 rows and it is not a column vector. + + * oct-stream.cc (octave_stream::write (const Array&, + octave_idx_type, oct_data_conv::data_type, octave_idx_type, + oct_mach_info::float_format)): Seek to skip if still inside bounds + of existing file. Otherwise, write NUL to skip. + + * Makefile.in (%.df : %.cc): Write source file name to output, + wrapped in XDEFUN_FILE_NAME macro. + * mkbuiltins: Provide definition for XDEFUN_FILE_NAME. + * mkgendoc: Likeiwse. + (XDEFUN_DLD_INTERNAL, XDEFUNX_DLD_INTERNAL, XDEFUN_INTERNAL, + XDEFCONSTFUN_INTERNAL, XDEFUNX_INTERNAL, XDEFVAR_INTERNAL, + XDEFCONST_INTERNAL): Pass file_name to print_doc_string. + (print_doc_string): New arg, FILE_NAME. Print file name as + comment. + + 2009-03-24 John W. Eaton + + * ov-class.cc (F__parent_classes__): New function. + + 2009-03-24 Robert T. Short + + * ov-class.h, ov-class.cc (octave_class::octave_class (const + Octave_map&, const std::string&, const octave_value_list&)): + New constructor. + (octave_class::find_parent_class, octave_class::parent_classes): + New functions. + (octave_class::dotref): Also look in parent class. + (Fclass): Handle parent class arguments. + + * ov-base.h (octave_base_value::get_parent_list, + octave_base_value::parent_classes): New virtual functions. + + * load-path.h, load-path.cc (load_path::parent_map): New data member. + (load_path::add_to_parent_map): New static function. + (load_path::do_add_to_parent_map): New member function. + (load_path::do_find_method): Also look in parent classes for methods. + (load_path::parent_map_type, load_path::const_parent_map_iterator, + load_path::parent_map_iterator): New typedefs. + + 2009-03-23 John W. Eaton + + * symtab.h + (symbol_table::symbol_record::symobl_recoord_rep::is_variable): + Also return true if symbol is tagged as a variable. + (symbol_table::symbol_record::symobl_recoord_rep::force_variable): + Don't set variable value. + (symbol_table::symbol_record::symobl_recoord_rep::clear_forced, + symbol_table::symbol_record::clear_forced): Delete. + (symbol_table::unmark_forced_variables): Rename from + symbol_table::clear_forced_variables. + (symbol_table::do_unmark_forced_variables): Rename from + symbol_table::do_clear_forced_variables. + * parse.y (make_script, finish_function): Call + symbol_table::unmark_forced_variables instead of + symbol_table::clear_forced_variables. + * octave.cc (unmark_forced_vars): New function. + (execute_eval_option_code): Add it to the unwind-protect stack. + + 2009-03-22 Jaroslav Hajek + + * pt-eval.cc (tree_evaluator::visit_simple_for_command): + Remove struct branch, handle structs by the generic code. + (tree_evaluator::visit_complex_for_command): + Add missing const qualifiers. + + 2009-03-21 Jaroslav Hajek + + * ov-base-diag.cc: Add missing include. + * sparse-xdiv.cc: Ditto. + * DLD-FUNCTIONS/__glpk__.cc: Ditto. + * DLD-FUNCTIONS/__lin_interpn__.cc: Ditto. + * DLD-FUNCTIONS/__voronoi__.cc: Ditto. + + 2009-03-20 Jaroslav Hajek + + * ov-re-mat.cc (octave_matrix::load_ascii): Simplify. + * ov-flt-re-mat.cc (octave_float_matrix::load_ascii): Simplify. + * ov-cx-mat.cc (octave_complex_matrix::load_ascii): Simplify. + * ov-flt-cx-mat.cc (octave_float_complex_matrix::load_ascii): Simplify. + + 2009-03-20 Jaroslav Hajek + + * ov-re-mat.cc (octave_matrix::isnan, octave_matrix::isinf, + octave_matrix::finite): Simplify. + * ov-flt-re-mat.cc (octave_float_matrix::isnan, + octave_float_matrix::isinf, octave_float_matrix::finite): Simplify. + * ov-cx-mat.cc (octave_complex_matrix::isnan, + octave_complex_matrix::isinf, octave_complex_matrix::finite): + Simplify. + * ov-flt-cx-mat.cc (octave_float_complex_matrix::isnan, + octave_float_complex_matrix::isinf, + octave_float_complex_matrix::finite): Simplify. + + 2009-03-19 Benjamin Lindner + + * ls-oct-ascii.cc (extract_keyword): Replace loop with call to + read_until_newline to avoid leaving stray '\r' in stream when + reading files with CRLF line endings. + + 2009-03-18 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc + (scalar_col_helper, scalar_col_helper_def, scalar_col_helper_nda, + scalar_query_helper): New classes. + (make_col_helper): New function. + (Fcellfun): Use col_helper classes for UniformOutput. Avoid copying by + using const variables. + + 2009-03-17 Jaroslav Hajek + + * OPERATORS/op-b-bm.cc: Add missing INSTALL_BINOPs. + * OPERATORS/op-bm-b.cc: Ditto. + * OPERATORS/op-fm-fm.cc: Ditto. + * OPERATORS/op-m-m.cc: Ditto. + + 2009-03-17 Jaroslav Hajek + + * ov.cc (octave_value::octave_value): Move to ov.h + * ov.h (octave_value::octave_value): Implement fast inline constructor + using a static rep. + + 2009-03-15 Jaroslav Hajek + + * DLD-FUNCTIONS/cellfun.cc (Fcellslices): New DLD function. + + 2009-03-13 Jaroslav Hajek + + * ov.h (octave_value::compound_binary_op): Support bool compound ops. + * ov.cc (do_binary_op, decompose_binary_op, binary_op_fcn_name): + Ditto. + * pt-cbinop.cc (strip_not, simplify_and_or_op): New funcs. + (maybe_compound_binary_expression): Support bool compound ops. + * OPERATORS/op-int.h: Support bool compound ops. + * OPERATORS/op-b-bm.cc: Ditto. + * OPERATORS/op-bm-b.cc: Ditto. + * OPERATORS/op-bm-bm.cc: Ditto. + * OPERATORS/op-fm-fm.cc: Ditto. + * OPERATORS/op-m-m.cc: Ditto. + + 2009-03-13 Jaroslav Hajek + + * xpow.cc (xpow (const NDArray&, double), xpow (const ComplexNDArray&, double), + xpow (const FloatNDArray&, float), xpow (const FloatComplexNDArray&, + float)): Use xisint for testing ints. Optimize w.r.t int exponents. + + 2009-03-13 John W. Eaton + + * parse.y (maybe_warn_assign_as_truth_value, make_binary_op, + maybe_warn_variable_switch_label, maybe_warn_associativity_change): + Print file and line number info if available. + * lex.l (gripe_matlab_incompatible): Likewise. + + * error.cc (pr_where): Use octave_call_stack::backtrace to print + complete stack trace at once. Don't attempt to print code. + (error_2): Set error_state to 0 before calling pr_where. + (warning_1): Switch sense of test on symbol_table::at_top_level. + Call pr_where after printing primary warning message. + + 2009-03-13 Jaroslav Hajek + + * ov-range.h (octave_range::octave_range (const Range&)): Allow + constructing from invalid range op result. + * ov-range.cc (octave_range::try_narrowing_conversion): Validate + invalid range op results. + * data.cc (fill_matrix): Return packed form (zero-step range) if + possible. + + 2009-03-10 Jason Riedy + + * DLD-FUNCTIONS/lu.cc (lu): Call fact.Pr_mat () and fact.Pc_mat () + to return permutation matrices in the sparse case. + + 2009-03-12 John W. Eaton + + * ls-mat-ascii.cc (get_mat_data_input_line): If we are looking at + '\r' or '\n', skip current line ending instead of skipping until + the next. + + 2009-03-12 Ben Abbott + + * graphics.cc: Fix default "papersize" property value. + + 2009-03-12 Jaroslav Hajek + + * ov-flt-perm.h, ov-flt-perm.cc: Remove sources. + * ov.h, ov.cc (octave_value::octave_value (const PermMatrix&)): Remove + use "single" argument. + * ov.cc (install_types): Update. + * xpow.cc, xpow.h (xpow (PermMatrix, float)): Remove. + * ov-base-diag.cc (octave_base_diag::do_index_op): Remove permutation + creating block. + * ov-re-diag.cc (octave_diag_matrix::do_index_op): Move it here. + * ov-re-diag.h (octave_diag_matrix::do_index_op): New decl. + + * DLD-FUNCTIONS/det.cc (Fdet): Update. + * DLD-FUNCTIONS/inv.cc (Finv): Update. + * DLD-FUNCTIONS/pinv.cc (Fpinv): Update. + + * OPERATORS/op-fcm-pm.cc <-- OPERATORS/op-fcm-fpm.cc + * OPERATORS/op-fcm-pm.cc: Update. + * OPERATORS/op-fm-pm.cc <-- OPERATORS/op-fm-fpm.cc + * OPERATORS/op-fm-pm.cc: Update. + * OPERATORS/op-pm-fcm.cc <-- OPERATORS/op-fpm-fcm.cc + * OPERATORS/op-pm-fcm.cc: Update. + * OPERATORS/op-pm-fm.cc <-- OPERATORS/op-fpm-fm.cc + * OPERATORS/op-pm-fm.cc: Update. + * OPERATORS/op-pm-pm.cc: Update. + * OPERATORS/op-pm-template.cc: Update. + + 2009-03-11 Jaroslav Hajek + + * xpow.cc (xpow (const PermMatrix&, double), xpow (const PermMatrix&, + float)): New functions. + * xpow.h: Declare them. + * DLD-FUNCTIONS/op-pm-pm.cc: Support permutation matrix ^ scalar. + * DLD-FUNCTIONS/op-fpm-fpm.cc: Ditto. + + 2009-03-11 Jaroslav Hajek + + * ov-ch-mat.cc (octave_char_matrix::double_value, + octave_char_matrix::float_value, octave_char_matrix::complex_value, + octave_char_matrix::float_complex_value): Cast to unsigned char. + + 2009-03-10 Jason Riedy + + * OPERATORS/op-pm-sm.cc (mul_pm_sm): New Octave binding for + perm * sparse. + (ldiv_pm_sm): New Octave binding for perm \ sparse. + (mul_sm_pm): New Octave binding for sparse * perm. + (div_sm_pm): New Octave binding for sparse / perm. + (install_pm_sm_ops): Install the above bindings. + + * OPERATORS/op-pm-scm.cc (mul_pm_scm): New Octave binding for + perm * sparse complex. + (ldiv_pm_scm): New Octave binding for perm \ sparse complex. + (mul_scm_pm): New Octave binding for sparse complex * perm. + (div_scm_pm): New Octave binding for sparse complex / perm. + (install_pm_scm_ops): Install the above bindings. + + * Makefile.in (PERM_OP_XSRC): Add op-pm-sm.cc and op-pm-scm.cc for + operations between permutations and sparse matrices. + + 2009-03-10 Jason Riedy + + * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): New override + for find on PermMatrix. + (find): Add a branch testing arg.is_perm_matrix () and calling the + above override. + + 2009-03-10 John W. Eaton + + * c-file-ptr-stream.cc, dynamic-ld.cc, error.cc, lex.l, pager.cc, + zfstream.cc: Include . + * zfstream.h: Include instead of and . + * c-file-ptr-stream.h, help.h, load-path.h, load-save.h, + ls-ascii-helper.h, oct-iostrm.h, oct-stream.h, ov-base-diag.h, + ov-base-int.h, ov-base-mat.h, ov-base-scalar.h, ov-base-sparse.h, + ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, ov-bool.h, ov-cell.h, + ov-ch-mat.h, ov-class.h, ov-colon.h, ov-complex.h, ov-cs-list.h, + ov-cx-mat.h, ov-cx-sparse.h, ov-fcn-handle.h, ov-fcn-inline.h, + ov-float.h, ov-flt-complex.h, ov-flt-cx-mat.h, ov-flt-re-mat.h, + ov-intx.h, ov-list.h, ov-range.h, ov-re-mat.h, ov-re-sparse.h, + ov-scalar.h, ov-str-mat.h, ov-struct.h, ov.h, pager.h, + pr-output.h, procstream.h, pt-assign.h, pt-cell.h, pt-const.h, + pt-fcn-handle.h, pt-id.h, pt-mat.h, pt.h, utils.h: + Include instead of . + + 2009-03-10 Jaroslav Hajek + + * data.cc (Fsize_equal): Allow single argument call. + * DLD-FUNCTIONS/max.cc (Fcummin, Fcummax): Update docs. + + 2009-03-09 Benjamin Lindner + + * ls-ascii-helper.h, ls-ascii-helper.cc: New files. + * Makefile.in: Add them to the appropriate lists. + * load-save.cc (Fload): Open all files in binary mode. + * ov-range.cc (load_ascii): Explicitly handle CR and CRLF line endings. + * ov-fcn-handle.cc (load_ascii): Likewise. + * ov-fcn-inline.cc (load_ascii): Likewise. + * ov-str-mat.cc (load_ascii): Likewise. + * ls-mat-ascii.cc (get_mat_data_input_line): Likewise. + * ls-oct-ascii.cc (extract_keyword, read_ascii_data): Likewise. + * ls-oct-ascii.h (extract_keyword): Likewise. + + 2009-03-09 John W. Eaton + + * graphics.h.in (OCTAVE_DEFAULT_FONTNAME): New macro, defaults to "*". + (axes::properties, text::properties): Use it to set default fontname. + * graphics.cc (axes::properties::set_defaults): Likewise. + + 2009-03-09 Rafael Laboissiere + + * Makefile.in (maintainer-clean): Remove y.tab.h here. + (distclean): Not here. + + 2009-03-09 Jason Riedy + + * OPERATORS/op-dm-sm.cc (add_dm_sm): Octave binding for diag + sparse. + (sub_dm_sm): Octave binding for diag - sparse. + (add_sm_dm): Octave binding for diag + sparse. + (sub_sm_dm): Octave binding for diag - sparse. + (install_dm_sm_ops): Install above bindings. + + * OPERATORS/op-dm-scm.cc (add_cdm_sm): Octave binding for diag + sparse. + (add_dm_scm): Octave binding for diag + sparse. + (add_cdm_scm): Octave binding for diag + sparse. + (sub_cdm_sm): Octave binding for diag - sparse. + (sub_dm_scm): Octave binding for diag - sparse. + (sub_cdm_csm): Octave binding for diag - sparse. + (add_sm_cdm): Octave binding for diag + sparse. + (add_scm_dm): Octave binding for diag + sparse. + (add_scm_cdm): Octave binding for diag + sparse. + (sub_sm_cdm): Octave binding for diag - sparse. + (sub_scm_dm): Octave binding for diag - sparse. + (sub_scm_cdm): Octave binding for diag - sparse. + (install_dm_scm_ops): Install above bindings. + + 2009-03-08 Jason Riedy + + * sparse-xdiv.h (xleftdiv): Declare overrides for + xleftdiv (diagonal, sparse), both real and complex. + (xdiv): Declare overrides for xdiv (sparse, diagonal), both real + and complex. + + * sparse-xdiv.cc (do_rightdiv_sm_dm): New template function. + Implementation for xdiv (sparse, diagonal). + (xdiv): Call do_rightdiv_sm_dm to implement overrides, real and + complex. + (do_leftdiv_dm_sm): New template function. Implementation for + xleftdiv (diagonal, sparse). + (xleftdiv): Call do_leftdiv_dm_sm to implement overrides, real and + complex. + + * OPERATORS/op-dm-sm.cc (ldiv_dm_sm): Octave binding for real left + division, diagonal into sparse. + (div_sm_dm): Octave binding for real right division, sparse by + diagonal. + (install_dm_sm_ops): Install above bindings. + + * OPERATORS/op-dm-scm.cc (ldiv_dm_scm): Octave binding for real + diagonal \ complex sparse. + (ldiv_cdm_sm): Octave binding for complex diagonal \ real sparse. + (ldiv_cdm_scm): Octave binding for complex diagonal \ complex sparse. + (div_scm_dm): Octave binding for complex sparse / real diagonal. + (div_sm_cdm): Octave binding for real sparse / complex diagonal. + (div_scm_cdm): Octave binding for complex sparse / complex diagonal. + (install_dm_scm_ops): Install above bindings. + + 2009-03-08 Jason Riedy + + * OPERATORS/op-dm-scm.cc: New file. Implement multiplication + between diagonal matrices (both real and complex) and complex + sparse matrices. + * OPERATORS/op-dm-sm.cc: New file. Implement multiplication + between diagonal matrices and sparse matrices, all real. + * Makefile.in (DIAG_OP_XSRC): Add op-dm-sm.cc and op-dm-scm.cc. + + 2009-03-09 Jaroslav Hajek + + * data.cc (F__accumarray_sum__): New function. + (do_accumarray_sum): New helper template function. + + 2009-03-07 Jaroslav Hajek + + * xdiv.cc (mdm_div_impl, dmm_lelftdiv_impl, dmdm_div_impl, + dmdm_leftdiv_impl): Optimize. + + 2009-03-07 John W. Eaton + + * pr-output.cc (octave_print_internal (std::ostream&, + const PermMatrix&, bool, int)): Delete unused variable SCALE. + + * utils.cc (octave_vsnprintf): Avoid uninitialized variable + warning from GCC. + + * DLD-FUNCTIONS/qz.cc (Fqz): Avoid "maybe clobbered by vfork" + warning from GCC. + + * version.h (OCTAVE_VERSION): Now 3.1.54. + (OCTAVE_API_VERSION): Now api-v36. + (OCTAVE_RELEASE_DATE): Now 2009-03-07. + + * octave.cc (verbose_usage): Include --doc-cache-file in option list. + + 2009-03-06 Jaroslav Hajek + + * ov.h (octave_value::diag_matrix_value, + octave_value::complex_diag_matrix_value, + octave_value::float_diag_matrix_value, + octave_value::float_complex_diag_matrix_value, + octave_value::perm_matrix_value): New methods. + + * ov-base.cc (octave_base_value::diag_matrix_value, + octave_base_value::complex_diag_matrix_value, + octave_base_value::float_diag_matrix_value, + octave_base_value::float_complex_diag_matrix_value, + octave_base_value::perm_matrix_value): New virtual methods. + + * ov-base.h: Declare them. + + * ov-base-diag.h (octave_base_diag::diag_matrix_value, + octave_base_diag::complex_diag_matrix_value, + octave_base_diag::float_diag_matrix_value, + octave_base_diag::float_complex_diag_matrix_value, + octave_base_diag::perm_matrix_value): Remove declarations. + + * DLD-FUNCTIONS/inv.cc (Finv): Simplify handling diag & perm matrices. + * DLD-FUNCTIONS/pinv.cc (Fpinv): Ditto. + * DLD-FUNCTIONS/det.cc (Fdet): Ditto. + + 2009-03-05 Jaroslav Hajek + + * ls-hdf5.cc (add_hdf5_data): Handle diag & perm matrices. + + 2009-03-05 John W. Eaton + + * pt-cell.cc, pt-cell.h (tree_cell::dup): Now const. + * comment-list.cc, comment-list.h (octave_comment_list::dup): Ditto. + * pt-arg-list.cc, pt-arg-list.h (tree_argument_list::dup): Ditto. + * pt-assign.cc, pt-assign.h (tree_simple_assignment::dup, + tree_multi_assignment::dup): Ditto. + * pt-binop.cc, pt-binop.h (tree_binary_expression::dup, + tree_boolean_expression::dup): Ditto. + * pt-cmd.cc, pt-cmd.h (tree_no_op_command::dup, + tree_function_def::dup): Ditto. + * pt-colon.cc, pt-colon.h (tree_colon_expression::dup): Ditto. + * pt-const.cc, pt-const.h (tree_constant::dup): Ditto. + * pt-decl.cc, pt-decl.h (tree_decl_elt::dup, tree_decl_init_list::dup, + tree_global_command::dup, tree_static_command::dup): Ditto. + * pt-except.cc, pt-except.h (tree_try_catch_command::dup, + tree_unwind_protect_command::dup): Ditto. + * pt-fcn-handle.cc, pt-fcn-handle.h (tree_fcn_handle::dup, + tree_anon_fcn_handle::dup): Ditto. + * pt-id.cc, pt-id.h (tree_identifier::dup): Ditto. + * pt-idx.cc, pt-idx.h (tree_index_expression::dup): Ditto. + * pt-jump.cc, pt-jump.h (tree_break_command::dup, + tree_continue_command::dup, tree_return_command::dup): Ditto. + * pt-loop.cc, pt-loop.h (tree_while_command::dup, + tree_do_until_command::dup, tree_simple_for_command::dup, + tree_complex_for_command::dup): Ditto. + * pt-mat.cc, pt-mat.h (tree_matrix::dup): Ditto. + * pt-misc.cc, pt-misc.h (tree_parameter_list::dup, + tree_return_list::dup): Ditto. + * pt-select.cc, pt-select.h (tree_if_clause::dup, + tree_if_command_list::dup, tree_if_command::dup, + tree_switch_case::dup, tree_switch_case_list::dup, + tree_switch_command::dup): Ditto. + * pt-stmt.cc, pt-stmt.h (tree_statement::dup, + tree_statement_list::dup): Ditto. + * pt-unop.cc, pt-unop.h (tree_prefix_expression::dup, + tree_postfix_expression::dup): Ditto. + * pt-fcn-handle.h (tree_anon_fcn_handle::parameter_list, + tree_anon_fcn_handle::return_list, tree_anon_fcn_handle::body, + tree_anon_fcn_handle::scope): Ditto. + + 2009-03-05 Jason Riedy + + * ov-base-int.cc (convert_to_str_internal): Replace elt_type with + element_type throughout. + + 2009-03-05 Jaroslav Hajek + + * DLD-FUNCTIONS/sparse.cc (Fsparse): Handle diagonal and permutation + matrices. + + 2009-03-03 John W. Eaton + + * ov-struct.cc (octave_struct::save_ascii, + octave_struct::save_binary, octave_struct::save_hdf5): + Preserve order of structure fields. + * ls-mat5.cc (save_mat5_binary_element): Likewise. + + * symtab.h (symbol_table::do_inherit): Only inherit values for + symbols from the donor_scope that already exist in the table. + (symbol_table::symbol_record::symbol_record_rep::dup): Now const. + (symbol_table::symbol_record::operator=): Decrement rep->count and + maybe delete rep. + (symbol_table::fcn_info::operator=): Likewise. + + * pt-fcn-handle.cc: (tree_anon_fcn_handle::dup): Transform + tree_anon_fcn_handle objects to tree_constant objects containing + octave_fcn_handle objects. New tests. + + * pt-assign.cc (tree_simple_assignment::rvalue1): Assign result of + call to rhs->rvalue1() to an octave_value object, not an + octave_value_list object. + + 2009-03-03 Jaroslav Hajek + + * oct-stream.h (octave_stream_list::lookup_cache): New member field. + (octave_stream_list::octave_stream_list): Initialize it. + (octave_stream_list::do_lookup): Use it. + (octave_stream_list::clear): Make flush optional. Do physically erase + entries from the map. Close files. + (octave_stream_list::do_remove): Call clear on "all". Do erase deleted + entry from the map. + + 2009-03-02 John W. Eaton + + * graphics.cc (Fget, F__get__): Return a column vector of property + values, not a row vector. + + 2009-03-01 John W. Eaton + + * OPERATORS/op-fcm-fcm.cc (DEFNDASSIGNOP_FN (dbl_assign)): + LHS type is float_complex_matrix, not complex_matrix. RHS value + function is float_complex_array, not complex_array. + + 2009-03-01 Jaroslav Hajek + + * ov-perm.cc (octave_perm_matrix::print_raw): Call + octave_print_internal. + (octave_perm_matrix::print_raw): Call print_raw. + * pr-output.cc (octave_print_internal (...,const DiagMatrix&,...)): + Indicate diagonal matrix. + (octave_print_internal (...,const ComplexDiagMatrix&,...)): Ditto. + (octave_print_internal (...,const PermMatrix&,...)): New function. + * pr-output.h: Declare it. + + 2009-02-27 Jaroslav Hajek + + * OPERATORS/op-dms-template.cc (gripe_if_zero): New template static + function. + (dmsdiv, sdmldiv): Call it. + + 2009-02-26 John W. Eaton + + * symtab.h (symbol_table::symbol_record::symbol_record_rep::forced): + New static constant. + (symbol_table::symbol_record::symbol_record_rep::force_variable, + symbol_table::symbol_record::force_variable): New functions. + (symbol_table::symbol_record::symbol_record_rep::is_forced, + symbol_table::symbol_record::symbol_record_rep::mark_forced, + symbol_table::symbol_record::symbol_record_rep::unmark_forced, + symbol_table::symbol_record::symbol_record_rep::clear_forced, + symbol_table::symbol_record::is_forced, + symbol_table::symbol_record::mark_forced, + symbol_table::symbol_record::clear_forced, + symbol_table::symbol_record::unmark_forced): New fucntions. + * lex.h, lex.l (force_local_variable): Delete. + (handle_identifier): Call symbol_table::force_variable instead of + force_local_variable. + * parse.y (make_script): Call symbol_table:clear_forced_variables + after defining script. + (finish_function): Call symbol_table::clear_forced_variables + instead of symbol_table::clear_variables. + + * DLD-FUNCTIONS/chol.cc: Correct spelling of CHOLMOD in tests. + + * version.h (OCTAVE_VERSION): Now 3.1.53+. + (OCTAVE_API_VERSION): Now api-v35+. + + 2009-02-25 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 3.1.53. + (OCTAVE_API_VERSION): Now api-v35. + (OCTAVE_RELEASE_DATE): Now 2009-02-25. + (OCTAVE_COPYRIGHT): Update year. + + * Makefile.in (distclean): Remove tags TAGS y.tab.h y.output + yy.lex.c here, not in maintainer-clean target. Also remove + parse.output. + + * DLD-FUNCTIONS/rand.cc: Note that the tests for the old random + number generator will fail if using 64-bit indexing. + + 2009-02-25 Jaroslav Hajek + + * DLD-FUNCTIONS/lu.cc (maybe_set_triangular): New function. + (Flu): Use it. + * DLD-FUNCTIONS/qr.cc (maybe_set_triangular): New function. + (Fqr): Use it. + + 2009-02-25 John W. Eaton + + * DLD-FUNCTIONS/chol.cc: Fix tests for missing cholmod. + + * input.cc (get_debug_input): Write debugging location info + directly to std::cerr instead of calling message. + * pt-eval.cc (tree_evaluator::do_breakpoint): Write debugging + location info directly to std::cerr, not octave_stdout. + + * defaults.h.in (OCTAVE_DOC_CACHE_FILE): New macro. + * defaults.cc (set_default_doc_cache_file): New function. + (install_defaults): Call it. + + * help.cc (__list_functions__): Simplify + + * input.cc (get_debug_input): Don't pass arbitrary input to + message as a format string. + + 2009-02-24 John W. Eaton + + * help.cc, help.h (Vdoc_cache_file): New global variable. + (Fdoc_cache_file): New function. + * octave.cc (DOC_CACHE_FILE_OPTION): New option tag. + (long_opts): Include doc-cache-file in the list. + (octave_main): Handle DOC_CACHE_FILE_OPTION. + + 2009-02-24 Jaroslav Hajek + + * ov-scalar.h + (octave_scalar::int8_scalar_value): New method. + (octave_scalar::int16_scalar_value): New method. + (octave_scalar::int32_scalar_value): New method. + (octave_scalar::int64_scalar_value): New method. + (octave_scalar::uint8_scalar_value): New method. + (octave_scalar::uint16_scalar_value): New method. + (octave_scalar::uint32_scalar_value): New method. + (octave_scalar::uint64_scalar_value): New method. + + * ov-float.h + (octave_float_scalar::int8_scalar_value): New method. + (octave_float_scalar::int16_scalar_value): New method. + (octave_float_scalar::int32_scalar_value): New method. + (octave_float_scalar::int64_scalar_value): New method. + (octave_float_scalar::uint8_scalar_value): New method. + (octave_float_scalar::uint16_scalar_value): New method. + (octave_float_scalar::uint32_scalar_value): New method. + (octave_float_scalar::uint64_scalar_value): New method. + + * OPERATORS/op-s-s.cc (scalar_to_float): Remove duplicate conversion. + * OPERATORS/op-range.cc (range_to_float_matrix): Ditto. + + 2009-02-24 John W. Eaton + + * OPERATORS/op-float-conv.cc: New file. + * Makefile.in (FLOAT_OP_XSRC): Add it to the list. + (DOUBLE_OP_XSRC): Move op-double-conv.cc here from INTTYPE_OP_XSRC. + * ops.h (DEFFLTCONVFN, DEFSTRFLTCONVFN): New macros. + + 2009-02-23 John W. Eaton + + * ov-base-sparse.cc (octave_base_sparse::print_raw): + Remove extra ")" from output. + + * DLD-FUNCTIONS/eigs.cc (Feigs): If sigma argument is not a + string, try extraction as complex value and check for error + instead of inquiring about type first. + + * pt-eval.cc (tree_evaluator::visit_break_command, + tree_evaluator::visit_return_command, + tree_evaluator::visit_global_command, + tree_evaluator::visit_static_command): Handle breakpoint. + (tree_evaluator::visit_simple_for_command, + tree_evaluator::visit_complex_for_command): Handle breakpoint once + at beginning of loop. + (tree_evaluator::visit_if_command_list): Don't call do_breakpoint + for else clauses. + (tree_evaluator::visit_no_op_command): Handle breakpoint if no-op + command is end of function or script. + (tree_evaluator::visit_statement): Handle breakpoint for + expressions but not commands. + (tree_evaluator::visit_while_command, + tree_evaluator::visit_do_until_command): + Check for breakpoint set on cmd, not expr. + (tree_evaluator::visit_do_until_command): Handle breakpoint + between check for breaking out of loop and loop control + expression. + + * pt-cmd.h (tree_no_op_command::eof): New data member + (tree_no_op_command::tree_no_op_command): Initialize it. + (tree_no_op_command::is_end_of_fcn_or_script): New function. + * pt-stmt.cc (tree_statement::is_end_of_fcn_or_script): + Call is_end_of_fcn_or_script instead of looking at original text + of no-op command. + + * pt-select.h, pt-select.cc (tree_if_command::set_breakpoint, + tree_if_command::delete_breakpoint): New functions. + (tree_switch_command::set_breakpoint, + tree_switch_command::delete_breakpoint): New functions. + * pt-stmt.h, pt-stmt.cc (tree_statement::set_breakpoint, + tree_statement::delete_breakpoint, tree_statement::is_breakpoint): + Delegate real work to cmd or expr. + (tree_statement::bp): Delete data member. + (tree_statement::tree_statement): Don't initialize bp. + (tree_statement::dup): Don't copy bp. + + * pt.h (tree::line (int), tree:column (int)): New functions. + (tree:set_breakpoint, tree::delete_breakpoint): Now virtual. + + * parse.y (finish_if_command): Also store line and column info for + if statement in first element of list. + (finish_switch_command): Likewise, for switch. + + * input.cc (last_debugging_command): New static variable. + (octave_gets): Set it here. Don't insert repeated debugging + commands in the history list. + + 2009-02-23 Jaroslav Hajek + + * DLD-FUNCTIONS/pinv.cc: Support diagonal and permutation matrices. + + 2008-02-21 David Bateman + + * OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, OPERATORS/op-s-scm.cc, + OPERATORS/op-s-sm.cc, OPERATORS/op-scm-cs.cc, OPERATORS/op-scm-s.cc, + OPERATORS/op-sm-cs.cc, OPERATORS/op-sm-s.cc: Don't perform any + narrowing to full matrices. + + 2009-02-20 Jaroslav Hajek + + * ov-base-diag.h (octave_base_diag::sqrt): Remove. + * ov-re-diag.cc (octave_diag_matrix::sqrt): New method. + * ov-re-diag.h: Declare it. + * ov-flt-re-diag.cc (octave_float_diag_matrix::sqrt): New method. + * ov-flt-re-diag.h: Declare it. + * ov-cx-diag.cc (octave_complex_diag_matrix::sqrt): New method. + * ov-cx-diag.h: Declare it. + * ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::sqrt): New method. + * ov-flt-cx-diag.h: Declare it. + + 2009-02-20 John W. Eaton + + * dynamic-ld.cc (octave_dynamic_loader::do_load_mex): Clear and + reload mex file if it is out of date. Don't check path for file. + + * pt-bp.cc (tree_breakpoint::visit_octave_user_script, + tree_breakpoint::visit_octave_user_function): + Don't panic. Call accept on command list if it exists. + + 2009-02-20 Jaroslav Hajek + + * ov-base-mat.cc (octave_base_matrix::do_index_op): + Correctly compute all-scalar index. + * ov-cell.cc (octave_cell::is_sorted, octave_cell::is_sorted_rows): + New methods. + (octave_cell::octave_cell (const Array&)): New + constructor. + * ov-cell.h: Declare them. + * ov-cell.cc (octave_cell::sort): Create result already with + cellstr_cache. + * strfns.cc (Fstrcmp): Use special code when dealing with + cellstr arrays. + + 2009-02-20 John W. Eaton + + * ov-base-mat.cc (octave_base_matrix::assign): + Correctly compute all-scalar index. + + * symbtab.cc (symbol_table::stash_dir_name_for_subfunctions): + New function. + * symtab.h: Provide decl. + * parse.y (load_fcn_from_file): Call it after parsing a function. + + 2009-02-19 Jaroslav Hajek + + * ov-cell.h (octave_cell::cellstr_cache): New field. + (octave_cell::clear_cellstr_cache, octave_cell::make_cellstr_cache, + octave_cell::assign, octave_cell::delete_elements, + octave_cell::mex_get_data): New methods. + (octave_cell::is_cellstr): Reuse cellstr cache if possible, create if + successful. + (octave_cell::cellstr_value): Reuse cellstr cache if possible. + (octave_cell::subsasgn): Clear cellstr cache. + + 2009-02-19 Jaroslav Hajek + + * DLD-FUNCTIONS/lookup.cc (Flookup): Use Array::lookup if possible. + Do not compare octave_values directly. Properly check for iscellstr. + + 2009-02-19 John W. Eaton + + * data.cc, graphics.cc, help.cc, lex.l, load-path.cc, parse.y: + Consistent doc strings for internal functions. + + 2009-02-18 John W. Eaton + + * ov.cc (convert_to_octave_idx_type_array): New static function. + (octave_value::octave_idx_type_vector_value): New function. + * ov.h (octave_value::octave_idx_type_vector_value): Provide decl. + * DLD-FUNCTIONS/qr.cc (Fqrdelete, Fqrinsert): Use it to convert + octave_value object to array of octave_idx_type values. + + * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Likewise. + * DLD-FUNCTIONS/time.cc (strptime): Likewise. + * DLD-FUNCTIONS/quad.cc (Fquad): Eliminate unnecessary cast. + * toplev.cc (run_command_and_return_output): Likewise. + + * strfns.cc (Fstrvcat): Use octave_idx_type and size_t instead of + int as needed. + (Fstrcmp, Fstrncmp): Use octave_idx_type instead of int as needed. + + * DLD-FUNCTIONS/hex2num.cc (Fhex2num, Fnum2hex): + Use union to avoid reinterpret_cast and GCC warning. + + * mex.cc (call_mex): Declare local nargout variable volatile to + avoid "maybe clobbered by vfork" warning from GCC. + + * ov-cx-mat.cc (xabs): Comment out unused static function. + * ov-flt-cx-mat.cc (xabs): Ditto. + + * c-file-ptr-stream.cc (c_file_ptr_buf::seekoff, + c_file_ptr_buf::seepos, c_zfile_ptr_buf::seekoff, + c_zfile_ptr_buf::seepos): Avoid unused paramter warnings. + + 2009-02-18 Jaroslav Hajek + + * data.cc (Fresize): Allow arbitrary number of parameters. Improve + documentation. + + 2009-02-17 Benjamin Lindner + + * file-io.cc: (Fmkstemp): Use mkstemps if it is available and + mkstemp is missing. + + 2009-02-17 Olaf Till + + * DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/daspk.cc, + DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/dasrt.cc: Documentation fixes. + + 2009-02-17 Kai Habel + + * DLD-FUNCTIONS/convhulln.cc (Fconvhulln): Compute convex hull + volume and return it as second output. New tests. + + 2009-02-17 John W. Eaton + + * ov-fcn.h (octave_function::octave_function): Initialize data members. + (octave_function::dispatch_class): No longer virtual. + Replace with version from ov-usr-fcn.h. + (octave_function::xdispatch_class, + octave_function::stash_dispatch_class): Move here from ov-usr-fcn.h. + (octave_function::mark_as_private_function, + octave_function::is_private_function, + octave_function::is_private_function_of_class): New functions. + (octave_function::private_function): New data member. + * ov-usr-fcn.h (octave_user_function::xdispatch_class, + octave_user_function::stash_dispatch_class, + octave_user_function::dispatch_class): Delete. + * ov-usr-fcn.cc (octave_user_function::octave_user_function): + Don't initialize xdispatch_type. + + * symtab.cc + (symbol_table::fcn_info::fcn_info_rep::load_private_function): + If private directory is subdirectory of class directory, qmark + function as a private directory of the class. + + * ov-class.cc (octave_class::in_class_method): Also return true + for functions that are private to a class. + (octave_class::subsasgn): If not in class method, look for + subsasgn method. If not found, or if not in a class method, + perform default struct-style subscripted indexing. + + * ov-class.h (octave_class::empty_clone): + Preserve fields and class name. + * oct-map.h (Octave_map::Octave_map (const string_vector&): + New constructor. + + * ov-class.cc (octave_class::subsref): If indexing directly and + result is map, return class object, not simple struct. + + * symtab.cc + (symbol_table::fcn_info::fcn_info_rep::load_private_function): + Pass dir_name to load_fcn_from_file. + + 2009-02-17 Jaroslav Hajek + + * DLD-FUNCTIONS/data.cc (NATIVE_REDUCTION): Add BOOL_FCN argument. + (NATIVE_REDUCTION_1): Check integer overflow flags and possibly gripe. + (Fsum): Reflect change. + (Fcumsum): USE NATIVE_REDUCTION. + * gripes.cc (gripe_native_integer_math_truncated): New function. + + 2009-02-17 Jaroslav Hajek + + * DLD-FUNCTIONS/max.cc (Fcummin, Fcummax): Improve inline docs. + + 2009-02-17 Jaroslav Hajek + + * DLD-FUNCTIONS/max.cc (MINMAX_DOUBLE_SBODY): New macro. + (MINMAX_DOUBLE_BODY): Move part of code to MINMAX_DOUBLE_SBODY. + (MINMAX_SINGLE_SBODY): New macro. + (MINMAX_SINGLE_BODY): Move part of code to MINMAX_DOUBLE_SBODY. + (MINMAX_INT_SBODY): New macro. + (MINMAX_INT_BODY): Move part of code to MINMAX_DOUBLE_SBODY. + (CUMMINMAX_BODY): New macro. + (Fcummin, Fcummax): New DLD functions. + + 2009-02-17 John W. Eaton + + * octave.gperf: Eliminate whitespace to allow gperf 2.7.2 to work. + + * file-io.cc (Ffscanf, Fsscanf): Check error_state after call to + octave_stream::scanf. + (Ffgetl): Check error state after call to octave_stream::getl. + (Ffgets): Check error state after call to octave_stream::gets. + + * oct-stream.cc (octave_base_stream::do_gets, + octave_base_stream::do_scanf): + Disallow reading from stdin when running interactively. + + * toplev.cc (octave_config_info): Add CARBON_LIBS, X11_INCFLAGS, + and X11_LIBS to the struct. + * oct-conf.h.in (OCTAVE_CONF_CARBON_LIBS, + OCTAVE_CONF_X11_INCFLAGS, OCTAVE_CONF_X11_LIBS): New macros. + + 2009-02-17 Thomas Treichl + + * Makefile.in (octave$(EXEEXT)): Link with CARBON_LIBS. + + 2009-02-16 John W. Eaton + + * lex.l (next_token_can_follow_bin_op): + Push all characters read on to buffer stack. + + * genprops.awk (emit_source): Don't use + to concatenate strings. + + 2009-02-16 Jaroslav Hajek + + * data.cc (NATIVE_REDUCTION): Use boolNDArray::any for native bool + summation, boolNDArray::sum for double-valued. + + 2009-02-16 Jaroslav Hajek + + * ov-base-mat.cc (octave_base_matrix::assign (const octave_value_list&, + typename MT::element_type): Fix invalid index. + * ov-re-mat.cc (default_numeric_demotion_function): Use + float_array_value instead of float_matrix_value. + + 2009-02-16 John W. Eaton + + * input.cc (gnu_readline): Use fputs instead of fprintf. + + 2009-02-15 John W. Eaton + + * defun.cc, defun-int.h, defun-dld.h (DEFUN_INTERNAL, + DEFCONSTFUN_INTERNAL, DEFUNX_INTERNAL, DEFUN_DLD_INTERNAL, + DEFUNX_DLD_INTERNAL, install_builtin_function, + install_dld_function, install_mex_function): + Delete IS_TEXT_FCN arg. Fix all uses. + (DEFMD, DEFUN_TEXT): Delete. + * mkbuiltins, mkgendoc: Adapt to DEFUN macro changes. + + * lex.h, lex.l (lexer_flags::at_beginning_of_statement): + New data member. Set it as needed in rules. + (is_keyword_token): + Handle lexer_flags::at_beginning_of_statement. + (next_token_can_follow_bin_op, looks_like_command_arg): New functions. + (handle_identifier): Use them to determine + Don't check is_command_name or is_rawcommand_name. + * parse.y (statement): Recognize word_list_cmd here. + (expression): Not here. + + * lex.l (handle_string): Delete arg TEXT_STYLE. + (BIN_OP_RETURN, XBIN_OP_RETURN): New arg, BOS. Change all uses. + + * lex.h, lex.l (lexer_flags::doing_raw_command): Delete data + member and all uses. + + * debug.cc, dirfns.cc, error.cc, input.cc, lex.l, load-path.cc, + load-save.cc, oct-hist.cc, ov-class.cc, pager.cc, parse.y, + pr-output.cc, sysdep.cc, utils.cc, variables.cc: + Replace all uses of DEFCMD with DEFUN. + + * variables.cc (command_set, rawcommand_set): Delete static variables. + (mark_as_command, unmark_command, is_command_name, + mark_as_rawcommand, unmark_raw_command, is_rawcommand_name): Delete. + (Fmark_as_command, Funmark_command, Fiscommand, + Fmark_as_rawcommand, Funmark_rawcommand, Fisrawcommand): + Convert to .m files and move to scripts/deprecated. + * variables.h (mark_as_command, is_command_name, + is_marked_as_rawcommand, mark_as_rawcommand, unmark_rawcommand, + is_rawcommand_name): Delete decls. + + * lex.h, lex.l (lexer_flags.looking_at_object_index): Now a + std::list object instead of an int. + Push TRUE to list at start of object index. Push FALSE at + beginning of matrix list. Pop value at end of object index or + matrix list. + (lexer_flags.looking_for_object_index): New data member. + Set it as needed in rules. + (inside_any_object_index): New function. + * parse.y (begin_obj_idx, cancel_obj_idx): Delete non-terminals + and all uses. + + 2009-02-13 Ben Abbott + + * graphics.h.in (class axes::properties): Initialize ticklength. + * graphics.cc (default_axes_ticklength): New function. + + 2009-02-13 John W. Eaton + + * oct-stream.cc (octave_base_stream::do_gets): Handle CRLF and CR. + + * toplev.cc (do_octave_atexit): Only save history if + Vsaving_history is true. + + 2009-02-12 John W. Eaton + + * data.cc, ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h, + ov-base-sparse.h, ov-base.cc, ov-base.h, ov-perm.h, ov-range.h, + ov.h: Rename internal issorted and issorted_rows functions to + is_sorted and is_sorted_rows. + + * ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h, ov-base.h, + ov-cell.h, ov-perm.h, ov-range.h, ov.h, data.cc, ov-base.cc, + ov-cell.cc: Rename all uses of sortrows_idx to sort_rows_idx. + + * TEMPLATE-INST/Array-tc.cc: Don't instantiate sort functions for + Arrays of octave_value objects. + (octave_sort::ascending_compare, + octave_sort::descending_compare): Delete. + + * ov.h (octave_value::cellstr_value): New function. + * ov-base.cc, ov-base.h (octave_base_value::cellstr_value): + New function. + * ov-cell.h (octave_cell::cellstr_value, octave_cell::sort, + octave_cell::sortrows_idx): New functions + * Cell.h, Cell.cc (Cell::Cell (Array)): New constructor. + + * TEMPLATE-INST/Array-tc.cc: Undo previous change. + (octave_sort::ascending_compare, + octave_sort::descending_compare): + Pass args by const reference instead of value. + + * version.h (OCTAVE_VERSION): Now 3.1.52+. + (OCTAVE_API_VERSION): Now api-v34+. + + * TEMPLATE-INST/Array-tc.cc + (octave_sort::ascending_compare, + octave_sort::descending_compare): + Delete unused template specializations. + Use NO_INSTANTIATE_ARRAY_SORT instead of INSTANTIATE_ARRAY_SORT + for octave_values. + + 2009-02-11 Thomas Treichl + + * gl-render.h: Use HAVE_FRAMEWORK_OPENGL. + * gl-render.cc (opengl_tesselator, opengl_renderer::draw, + opengl_renderer::init_marker): Use HAVE_FRAMEWORK_OPENGL. + + 2009-02-11 Jaroslav Hajek + + * ov.h (octave_value::issorted, octave_value::sortrows_idx, + octave_value::issorted_rows): New methods. + * ov.cc (octave_base_value::issorted, octave_base_value::sortrows_idx, + octave_base_value::issorted_rows): New methods. + * ov.cc: Declare them. + + * ov-base-mat.h (octave_base_matrix::issorted, octave_base_matrix::sortrows_idx, + octave_base_matrix::issorted_rows): New methods. + + * ov-base-diag.h (octave_base_diag::issorted, octave_base_diag::sortrows_idx, + octave_base_diag::issorted_rows): New methods. + + * ov-perm.h (octave_perm_matrix::issorted, octave_perm_matrix::sortrows_idx, + octave_perm_matrix::issorted_rows): New methods. + + * ov-range.h (octave_range::issorted, octave_range::sortrows_idx, + octave_range::issorted_rows): New methods. + + * data.cc (F__sortrows_idx__, Fissorted): New defuns. + + 2009-02-11 John W. Eaton + + * toplev.cc (octave_config_info): Add octetcdir to the struct. + * defaults.h.in (OCTAVE_OCTETCDIR): New macro. + + 2009-02-10 Jaroslav Hajek + + * DLD-FUNCTIONS/__pchip_deriv__.cc (F__pchip_deriv__): + Add support for computing pchip derivatives along rows of matrix. + Eliminate redundant copying by using const args where appropriate. + + 2009-02-09 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 3.1.52. + (OCTAVE_RELEASE_DATE): Now 2009-02-09. + (OCTAVE_COPYRIGHT): Update year. + + * load-path.cc (dir_info::update, dir_info::initialize): + Likewise, to allow some functionality if getcwd fails. + + * toplev.cc (main_loop): Also catch octave_execution_exception. + + * DLD-FUNCTIONS/dispatch.cc: Comment out troublesome tests. + + * DLD-FUNCTIONS/eigs.cc: Increase tolerance to 1e-11 on all tests. + + * lex.l (lexical_feedback::looking_at_decl_list): New data member. + * lex.l (lexical_feedback::init): Initialize it. + (handle_identifier): Also force local variable if looking_at_decl_list. + * parse.y (parsing_decl_list): New non-terminal. + (declaration): Use it. Set lexer_flags.looking_at_decl_list to + false after parsing the declaration. + + 2009-02-09 Jaroslav Hajek + + * TEMPLATE-INST/Array-tc.cc: Reflect changes in octave_sort. + + 2009-02-08 John W. Eaton + + * octave.cc (initialize_pathsearch): Delete. + (octave_main): Don't call initialize_pathsearch. + + 2009-02-07 John W. Eaton + + * parse.y (eval_string): Use the one true evaluator. + + 2009-02-06 John W. Eaton + + * Makefile.in (INCLUDES): Include oct-hdf5.h in the list. + + * Makefile.in (oct-gperf.h): Don't use pipeline to process gperf + output. + + 2009-02-05 John W. Eaton + + * symtab.cc (symbol_table::fcn_info::cn_info_rep::xfind): + New function. + (symbol_table::fcn_info::cn_info_rep::find): + Use it to avoid recursive call. + + * graphics.cc (Fdrawnow): Return after errors. Don't strip + trailing directory separator from name used in call to file_stat. + + * DLD-FUNCTIONS/eigs.cc (Feigs): Avoid warnings about ambiguous + else. Style fixes. Return after errors. + + 2009-02-05 Jaroslav Hajek + + * oct-map.cc (Octave_map::index): Optimize. + + 2009-02-05 Jaroslav Hajek + + * OPERATORS/op-cm-cs.cc: Use scalar_value in scalar-to-matrix + indexed assignments. + * OPERATORS/op-fcm-fcs.cc: Ditto. + * OPERATORS/op-fm-fs.cc: Ditto. + * OPERATORS/op-m-s.cc: Ditto. + * OPERATORS/op-int.h (OCTAVE_MS_INT_ASSIGN_OPS): Use homogeneous + integer scalar-to-matrix assignment. + (OCTAVE_MM_INT_ASSIGN_OPS): Use homogeneous integer matrix-to-matrix + assignment. + + * Cell.h (Cell::index): Remove direct idx_vector overloads. + (Cell::assign): Remove direct idx_vector overloads. + (Cell::delete_elements): Remove direct idx_vector overloads. + * Cell.cc (Cell::index (const octave_value_list&)): Call + ArrayN::index. + + * oct-map.h (Octave_map::index): Remove direct idx_vector overloads. + * oct-map.cc (Octave_map::index): Ditto. + * ov-base-mat.cc (octave_base_mat::do_index_op): Optimize scalar + indexing case. + (octave_base_mat::assign (const octave_value_list&, const MT&)): + Specialize variable argument number. + (octave_base_mat::assign (const octave_value_list&, const + typename MT::element_type&)): + New method overload with optimized scalar indexing case. + + * ov-cell.cc (octave_base_matrix::do_index_op, + octave_base_matrix::assign, + octave_base_matrix::delete_elements): Specialize. + (octave_cell::assign (const_octave_value_list, const octave_value&): + Delete method. + * ov-cell.h: Reflect change. + + * ov-cx-mat.cc (octave_complex_matrix::assign): Delete overloads. + * ov-cx-mat.h: Reflect changes. + * ov-flt-cx-mat.cc (octave_float_complex_matrix::assign): Delete overloads. + * ov-flt-cx-mat.h: Reflect changes. + * ov-list.cc (octave_list::do_index_op): Simplify. + * ov-struct.cc (octave_struct::do_index_op): Simplify. + * pt-eval.cc (tree_evaluator::visit_simple_for_command): Optimize + traversing a row vector. + + 2009-02-05 John W. Eaton + + * variables.cc (Vignore_function_time_stamp): + Eliminate unused static variable. + + * debug.cc (get_file_line): Override default precedence in logical + expression. + + * ov-null-mat.cc (default_null_str_numeric_conversion_function, + default_null_sq_str_numeric_conversion_function, + default_null_matrix_numeric_conversion_function): + Avoid unused variable warning. + + * ov-flt-re-diag.cc (octave_float_diag_matrix::save_binary): + Avoid unused parameter warning. + * pt-eval.cc (tree_evaluator::visit_if_clause): Likewise. + * ov-typeinfo.cc (octave_value_typeinfo::do_register_type): Likewise. + * ov-base.cc (octave_base_value::subsref (const std::string&, + const std::list&, bool): Likewise. + * ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::save_binary): + Likewise. + + * oct-hdf5.h: New file. + * ls-hdf5.cc, ov-base.h, ov.h: Include oct-hdf5.h instead of hdf5.h. + * ls-hdf5.h: Include oct-hdf5.h. + * load-save.cc: Include ls-hdf5.h instead of hdf5.h. + * ov-base-sparse.cc, load-save.cc: + Don't protect #include "ls-hdf5.h" with #ifdef. + + 2009-02-04 Kai Habel + + * gl-render.cc (opengl_renderer::draw (surface::properties)): + Normalize surface normals. Correct calculation of diffuse lighting. + * gl-render.cc (opengl_renderer::draw (patch::properties)): + Correct calculation of diffuse lighting. + + 2009-02-04 John W. Eaton + + * help.cc (do_which): If NAME is not in the symbol table, look for + a function file in the load path. + (raw_help_from_file): Unwind-protect and set reading_script_file. + + * pt-loop.h, pt-loop.cc (evaluating_looping_command): + Delete global variable and all uses. + * parse.y, parse.h (evaluating_function_body): Delete global + variable and all uses. + (make_break_command, make_continue_command, make_return_command): + Use tree_evaluator::in_fcn_or_script_body and + tree_evaluator::in_loop_command instead of + evaluating_function_body and evaluating_looping_command. + + * pt-eval.h (tree_evaluator::in_function_or_script_body): + Delete member variable and all uses. + (tree_evaluator::reset): Delete function and all uses. + + * pt-eval.cc, pt-eval.h (tree_evaluator::in_fcn_or_script_body, + tree_evaluator::in_loop_command): New static variables. + (tree_evaluator::visit_simple_for_command, + tree_evaluator::visit_complex_for_command, + tree_evaluator::visit_while_command, + tree_evaluator::visit_do_until_command): Unwind-protect and set + tree_evaluator::in_loop_command instead of + evaluating_looping_command. + (tree_evaluator::visit_statement): Only call echo_code if + evaluating function or script and (Vecho_executing_commands & + ECHO_FUNCTIONS). Use tree_evaluator::in_fcn_or_script_body + instead of evaluating_function_body. + + * ov-usr-fcn.cc (octave_user_script::do_multi_index_op): + octave_user_function::do_multi_index_op): Unwind-protect and set + tree_evaluator::in_fcn_or_script_body. + + * pt-stmt.cc, pt-stmt.h (tree_statement::echo_code): + Rename from maybe_echo_code. Simplify. + + 2009-02-04 Jaroslav Hajek + + * pt-loop.h (tree_simple_for_command::do_for_loop_once, + tree_complex_for_command::do_for_loop_once): Remove obsolete decls. + * pt-loop.cc (quit_loop_now): Remove obsolete method. + * pt-eval.cc (DO_ND_LOOP): Delete macro. + (tree_evaluator::visit_simple_for_command): Use the generic + do_index_op for iterating matrices. + + 2009-02-04 John W. Eaton + + New evaluator and debugger derived from tree-walker class. + + * pt-eval.h, pt-eval.cc: New files. Parse tree evaluator code + adapted from eval member functions in classes derived from + tree_command. + * Makefile.in (PT_INCLUDES, PT_SRC): Add them to the lists + + * pt-cmd.cc (tree_function_def::eval): Delete. + * pt-cmd.h: Delete decl. + (tree_command::eval): Delete pure virtual function. + (tree_no_op_command::eval): Delete. + (tree_function_def::function): Return octave_value, instead of + pointer to octave_function. Change all uses. + + * pt-except.cc (do_catch_code, tree_try_catch_command::eval, + do_unwind_protect_cleanup_code, + tree_unwind_protect_command::eval): Delete. + * pt-except.h: Delete decls. + + * pt-jump.cc (tree_break_command::eval, tree_return_command::eval, + tree_continue_command::eval): Delete. + * pt-jump.h: Delete decls. + + * pt-loop.cc (DO_ND_LOOP): Delete macro. + (tree_while_command::eval, tree_do_until_command::eval, + tree_simple_for_command::do_for_loop_once, + tree_simple_for_command::eval, + tree_complex_for_command::do_for_loop_once, + tree_complex_for_command::eval): + * pt-loop.h: Delete decls. + + * pt-select.cc (tree_if_clause::eval, tree_if_command_list::eval, + tree_if_command::eval, tree_switch_case::eval, + tree_switch_case_list::eval, tree_switch_command::eval): Delete. + * pt-select.h: Delete decls. + (class tree_if_clause, class tree_switch_case): Derive from tree. + Handle line and column in constructors. + + * pt-stmt.cc (tree_statement::eval): Delete + * pt-stmt.h: Delete decl. + + * pt-stmt.cc, pt-stmt.h (tree_statement::is_command, + tree_statement::is_expression, tree_statement::line, + tree_statement::column): Now const. + + * pt-stmt.cc (tree_statement::set_print_flag, + tree_statement::is_end_of_fcn_or_script): New functions. + * pt-stmt.h: Provide decl. + (set_breakpoint, delete_breakpoint, is_breakpoint): New function. + (bp): New member variable. + (print_result): Delete member variable. + (tree_statement_list::anon_function_body): New member variable. + (tree_statement_list::mark_as_anon_function_body, + tree_statement_list::is_anon_function_body, + tree_statement_list::is_script_body): New functions. + + * pt-decl.cc (tree_decl_init_list::eval, + tree_decl_command::accept, tree_global_command::do_init, + tree_global_command::eval, tree_static_command::do_init, + tree_static_command::eval): Delete. + * pt-decl.h: Delete decls. + (tree_decl_elt::eval_fcn): Delete typedef. + + * pt-decl.cc (tree_global_command::accept, + tree_static_command::accept): New functions. + + * pt-stmt.cc (tree_statement::print_result): Move here from + pt-stmt.h. Return true if expr is printable. + + * ov-base.cc (Vsilent_functions): Delete. + (octave_base_value::print_with_name): Don't check + evaluating_function_body && Vsilent_functions here. + * ov-class.cc (octave_class::print_with_name): Likewise. + * ov-base.h (Vsilent_functions): Delete decl. + * pt-eval.cc (Fsilent_functions): Move here from ov-base.cc. + (Vsilent_functions): New static variable. + + * sighandlers.cc (user_abort): Set tree_evaluator::debug_mode here. + + * pt.h (tree::bp): Rename from tree::break_point. + (tree::set_breakpoint, tree::delete_breakpoint, tree::is_breakpoint): + No longer virtual. + + * input.cc (get_debug_input): Use current_evaluator and + tree-walker to evaluate command. + * ov-usr-fcn.cc (octave_user_script::do_multi_index_op): Likewise. + * toplev.cc (main_loop): Likewise. + * parse.y (eval_string): + + * input.h, input.cc (Vdebugging_current_line): Delete. + (get_debug_input): Use tree_evaluator::debug_line instead of + Vdebugging_current_line. + + * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): + Handle inline functions and anonymous functions as single + expressions. + * parse.y (eval_string): Likewise. + + * parse.y (make_do_until_command): Rename first argument from + do_tok to until_tok. + (loop_command): Pass UNTIL token instead of DO token to + make_do_until_command. + (make_elseif_clause): New arg, elseif_tok. Pass line and column + info to tree_if_clause constructor. + (elseif_clause): Pass ELSEIF token to make_elseif_clause. + (make_switch_case): New arg, case_tok. Pass line and column info + to tree_switch_case constructor. + (switch_case): Pass CASE token to make_switch_case. + (make_script): New arg end_script. Append it to cmds. + (script): Create no-op command for end of script and pass it to + make_script. + (start_function): New arg, end_function. Append it to body. + (function2): Pass end_function to start_function. + (make_end): New function. + (function_end): Declare as tree_statement_type. + Create no-op command for end of script. + (make_anon_fcn_handle): Mark body as anonymous function. + (set_stmt_print_flag): Set print flag for all separator types + + * parse.y (fold (tree_binary_expression*), + fold (tree_unary_expression *), finish_colon_expression, + finish_matrix): Call rvalue1 instead of rvalue. + Stash line number in new tree_constant object. + + * debug.h (bp_table::have_breakpoints): New static function. + (bp_table::do_have_breakpoints): New member function. + * debug.cc (bp_table::do_add_breakpoint, + bp_table::do_remove_breakpoint, + bp_table::do_remove_all_breakpoints_in_file, + bp_table::do_remove_all_breakpoints): Call + bp_table::have_breakpoints to set tree_evaluator::debug_mode. + (Fdbnext): Delete function. Alias to dbstep. + (Fdbquit, Fdbcont): Set tree_evaluator::dbstep_flag to zero. + (Fdbstep): Rewrite to use tree_evaluator::dbstep_flag instead of + tree::break_next, tree::last_line, tree::break_function, and + tree::last_break_function. + (Fdbwhere): Use tree_evaluator::debug_line and + tree_evaluator::debug_column to get current line and column info. + Don't print column if it is less than zero. + * pt.cc, pt.h (tree::break_next, tree::last_line, + tree::last_break_function, tree::break_function, + tree::break_statement): Delete. + + * pt-bp.cc (tree_breakpoint::visit_global_command, + tree_breakpoint::visit_static_command, + tree_breakpoint::take_action (tree_statement&)): New functions. + * pt-bp.h: Provide decls. + + * pt-bp.h (tree_walker::visit_global_command, + tree_walker::visit_static_command): New pure virtual functions. + (tree_walker::visit_decl_command): Delete. + + * pt-bp.cc (tree_breakpoint::visit_decl_command): Delete. + * pt-bp.h: Delete decl. + (MAYBE_DO_BREAKPOINT): Delete macro and all uses. + + * pt-bp.cc (tree_breakpoint::visit_no_op_command): Do nothing. + (tree_breakpoint::visit_argument_list, + tree_breakpoint::visit_binary_expression, + tree_breakpoint::visit_colon_expression, + tree_breakpoint::visit_decl_elt, + tree_breakpoint::visit_decl_init_list, + tree_breakpoint::visit_octave_user_script, + tree_breakpoint::visit_octave_user_function, + tree_breakpoint::visit_octave_user_function_header, + tree_breakpoint::visit_octave_user_function_trailer, + tree_breakpoint::visit_identifier, + tree_breakpoint::visit_index_expression, + tree_breakpoint::visit_matrix, tree_breakpoint::visit_cell, + tree_breakpoint::visit_multi_assignment, + tree_breakpoint::visit_anon_fcn_handle, + tree_breakpoint::visit_constant, + tree_breakpoint::visit_fcn_handle, + tree_breakpoint::visit_parameter_list, + tree_breakpoint::visit_postfix_expression, + tree_breakpoint::visit_prefix_expression, + tree_breakpoint::visit_return_list, + tree_breakpoint::visit_simple_assignment): Call panic_impossible + since breakpoints aren't set on expressions. + (tree_breakpoint::visit_if_clause): Fold into visit_if_command_list. + (tree_breakpoint::visit_switch_case): Fold into visit_switch_case_list. + (tree_breakpoint::visit_try_catch_command, + tree_breakpoint::visit_unwind_protect_command): + Don't set breakpoint on command itself, the the statements it + contains. + (tree_breakpoint::visit_global_command, + tree_breakpoint::visit_static_command): Call do_decl_command to do + actual work. + (tree_breakpoint::visit_while_command, + tree_breakpoint::visit_do_until_command, + tree_breakpoint::visit_simple_for_command, + tree_breakpoint::visit_complex_for_command, + tree_breakpoint::visit_statement, + tree_breakpoint::visit_statement_list, + tree_breakpoint::visit_switch_case_list): Set breakpoints at + appropriate places. + + * pt-pr-code.h, pt-pr-code.cc (tree_print_code::visit_global_command, + tree_print_code::visit_static_command, + tree_print_code::do_decl_command): New functions. + (tree_print_code::visit_decl_command): Delete. + + * pt-check.h, pt-check.cc (tree_checker::visit_global_command, + tree_checker::visit_static_command, tree_checker::do_decl_command): + New functions. + (tree_checker::visit_decl_command): Delete. + + * pt-select.cc (tree_switch_case::label_matches): Call rvalue1 + instead of rvalue. + + * pt-exp.h, pt-exp.cc (tree_expression::rvalue1): New function. + (tree_expression::rvalue (void)): Delete. + (tree_expression::is_logically_true): Call rvalue1 instead of rvalue. + + * pt-fcn-handle.h, pt-fcn-handle.cc (tree_fcn_handle::rvalue1, + tree_anon_fcn_handle::rvalue1): New functions. + (tree_fcn_handle:rvalue (void), + tree_anon_fcn_handle::rvalue1 (void)): Delete. + (tree_fcn_handle::rvalue (int), tree_anon_fcn_handle_rvalue (int)): + Call rvalue1 instead of rvalue. + + * pt-idx.h, pt-idx.cc (tree_index_expression::rvalue1): New function. + (tree_index_expression::rvalue (void)): Delete. + (tree_index_expression::get_struct_index, + tree_index_expression::rvalue (int)): Call rvalue1 instead of rvalue. + + * pt-mat.h, pt-mat.cc (tree_matrix::rvalue1): New function. + (tree_matrix::rvalue (void)): Delete. + (tm_row_const::tm_row_const_rep::init, + tree_matrix::rvalue (int)): Call rvalue1 instead of rvalue. + + * pt-misc.cc (tree_parameter_list::convert_to_const_vector): + Call rvalue1 instead of rvalue. + * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): + Likewise. + + * pt-unop.h, pt-unop.cc (tree_prefix_expression::rvalue1, + tree_postfix_expression::rvalue1): New functions. + (tree_prefix_expression::rvalue (void), + tree_postfix_expression::rvalue (void)): Delete. + (tree_prefix_expression::rvalue (int), + tree_postfix_expression::rvalue (int)): + Call rvalue1 instead of rvalue. + + * pt-id.h, pt-id.cc (tree_identifier::rvalue1): New function. + (tree_identifier::rvalue (void)): Delete. + + * pt-assign.h, pt-assign.cc (tree_simple_assignment::rvalue1, + tree_multi_assignment::rvalue1): New functions. + (tree_simple_assignment::rvalue (void), + tree_multi_assignment::rvalue (void): Delete. + (tree_simple_assignment::rvalue (int)): + Call rvalue1 instead of rvalue. + + * pt-binop.h, pt-binop.cc (tree_binary_expression::rvalue1, + tree_boolean_expression::rvalue1): New functions. + (tree_binary_expression::rvalue (void), + tree_boolean_expression::rvalue (void)): Delete. + (tree_binary_expression::rvalue (int), + tree_boolean_expression::rvalue (int)): + Call rvalue1 instead of rvalue. + + * pt-cbinop.h, pt-cbinop.cc + (tree_compound_binary_expression::rvalue1): New function. + (tree_compound_binary_expression::rvalue (void)): Delete. + + * pt-cell.h, pt-cell.cc (tree_cell::rvalue1): New function. + (tree_cell::rvalue (void)): Delete. + (tree_cell::rvalue (int)): Call rvalue1 instead of rvalue. + + * pt-colon.h, pt-colon.cc (tree_colon_expression::rvalue1): + New function. + (tree_colon_expression::rvalue (void)): Delete. + (tree_colon_expression::rvalue (int)): + Call rvalue1 instead of rvalue. + + * pt-const.h, pt-const.cc (tree_constant::rvalue1): New function. + (tree_constant::rvalue (void)): Delete. + (tree_constant::rvalue (int)): Call rvalue1 instead of rvalue. + + * pt-decl.h, pt-decl.cc (tree_decl_elt::ravlue1): New function. + (tree_decl_elt::ravlue (void)): Delete. + (tree_decl_elt::eval): Call rvalue1 instead of rvalue. + + 2009-02-03 Jaroslav Hajek + + * TEMPLATE-INST/Array-tc.cc: Replace vec_index by pointers. + + 2009-02-02 Jaroslav Hajek + + * ov-re-mat.cc (octave_matrix::abs, octave_matrix::real, + octave_matrix::imag, octave_matrix::conj): Use special code. + * ov-flt-re-mat.cc (octave_float_matrix::abs, octave_float_matrix::real, + octave_float_matrix::imag, octave_float_matrix::conj): Use special code. + * ov-cx-mat.cc (octave_complex_matrix::abs, octave_complex_matrix::real, + octave_complex_matrix::imag, octave_complex_matrix::conj): Use special code. + * ov-flt-cx-mat.cc (octave_float_complex_matrix::abs, octave_float_complex_matrix::real, + octave_float_complex_matrix::imag, octave_float_complex_matrix::conj): Use special code. + + 2009-01-30 Jaroslav Hajek + + * DLD-FUNCTIONS/lookup.cc (Flookup): Add missing check. + + 2009-01-29 John W. Eaton + + * pt-stmt.cc (tree_statement::eval): Check + in_function_or_script_body instead of symbol_table::at_top_level () + to decide whether to call octave_call_stack::set_statement. + + * graphics.cc (properties::set_defaults): Also set + horizontalalignment, verticalalignmnt, and rotation properties for + new label objects here. + + * ov-base-scalar.cc (octave_base_scalar::is_true (void) const): + Error if scalar is NaN. + * ov-base-mat.cc (octave_base_matrix::is_true (void) const): + Likewise, if any element of matrix is NaN. + * ov-cell.cc (octave_cell::is_true): New function. + * Cell.h (Cell::any_element_is_nan): New function. + + 2009-01-29 Jaroslav Hajek + + * pr-output.cc: + (void octave_print_internal (..., const DiagMatrix& m,...), + (void octave_print_internal (..., const ComplexDiagMatrix& m,...), + (void octave_print_internal (..., const FloatDiagMatrix& m,...), + (void octave_print_internal (..., const FloatComplexDiagMatrix& m,...)): + New functions. + * pr-output.h: Declare them. + * ov-base-diag.cc (octave_base_diag::print_raw): Call + octave_print_internal. + + 2009-01-28 John W. Eaton + + * Makefile.in (install, uninstall): Handle SHLLIBPRE and SHLBINPRE + library prefixes. From Marco Atzeri . + + 2008-01-28 David Bateman + + * DLD-FUNCTIONS/regexp.cc (octregexp_list): Don't break for zero + length match, but rather advance the index by one character and + try again. + + 2009-01-28 Jaroslav Hajek + + * DLD-FUNCTIONS/lookup.cc (Flookup): Fix doc string. + + 2009-01-27 John W. Eaton + + * load-path.cc (Fcommand_line_path): Rename from Fcommandlinepath. + + 2009-01-27 Ben Abbott + + * graphics.cc (convert_position): Handle character units. + (default_axes_tick, default_figure_papersize, + default_figure_paperposition): New functions. + * graphics.h.in (class figure::properties): Use them to + initialize papersize, paperposition, xtick, ytick, and ztick + properties. + + 2009-01-27 Jaroslav Hajek + + * DLD-FUNCTIONS/qr.cc (Fqr): Treat empty matrices correctly. + + 2009-01-26 Thomas Treichl + + * display.cc (display_info::init): Use double instead of CGFloat. + Use HAVE_FRAMEWORK_CARBON instead of OCTAVE_USE_OS_X_API. + + 2009-01-26 John W. Eaton + + * load-path.cc (load_path::do_find_fcn): Handle @foo/bar. + + 2009-01-24 Jaroslav Hajek + + * pt-cell.cc (tree_cell::rvalue): Optimize the single row case. + + 2009-01-24 Jaroslav Hajek + + * ov-struct.cc (octave_struct::subsasgn): Reshape cs-list on rhs + according to the index expression. + * ov-cell.cc (octave_cell::subsasgn): Ditto. + + 2008-12-25 Ben Abbott + + * load-path.cc (Fcommandlinepath): New function. + * load-path.h (load_path::get_command_line_path, + load_path::do_get_command_line_path): New functions. + + 2009-01-24 Ben Abbott + + * DLD-FUNCTIONS/eigs.cc: eigs.cc: skip tests if ARPACK is missing. + + 2009-01-25 Sᅵren Hauberg + + * help.cc (do_get_help_text, raw_help_from_symbol_table): new output to + flag the a function is found but not documented. + + 2009-01-25 Sᅵren Hauberg + + * help.cc (raw_help_from_file): No longer search for files called + 'Contents.m', as this is moved to 'script/help.m'. + + + 2009-01-23 John W. Eaton + + * toplev.cc (octave_call_stack::do_goto_caller_frame): + Also allow caller frame to be base frame, not just user code. + + 2009-01-23 Jaroslav Hajek + + * gripes.cc (gripe_indexed_cs_list, gripe_invalid_inquiry_subscript): + New functions. + * gripes.h: Declare them. + * pt-idx.cc: Remove definitions of the above funcs. + * ov-cell.cc (octave_cell::subsref): Declare constants as const. + (octave_cell::subsasgn): Remove dead branch, declare constants as const. + (octave_cell::list_value): Optimize. + * ov-struct.cc + (octave_struct::subsref): Declare constants as const. + (octave_struct::subsasgn): Remove dead branch, declare constants as const. + * ov-cs-list.cc (octave_cs_list::octave_cs_list (const Cell&)): + Optimize. + * oct-obj.cc (octave_value_list::octave_value_list (const + std::list&)): New constructor. + * oct-obj.h: Declare it. + * pt-arg-list.cc (convert_to_const_vector): Optimize. + * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find): Use const + reference to avoid redundant copy. + * ov-usr-fcn.cc (octave_user_function::bind_automatic_vars): Optimize. + (octave_user_function::octave_all_va_args): Optimize. + + 2009-01-22 Jaroslav Hajek + + * Cell.h (Cell::Cell (octave_value_list)): Only declare. + (Cell::index (*)): Change resize_ok type to bool. + * Cell.cc (Cell::Cell (octave_value_list)): Redefine. + * oct-obj.h, oct-obj.cc: Change octave_value_list::data to + Cell variable, reflect changes. + + 2009-01-22 John W. Eaton + + * help.cc (do_which (std::ostream&, const std::string&), Fwhich): + Delete. + (do_which (const std::string&, std::string&), F__which__): + New functions. + * do_which (const std::string&): + Call do_which (const std::string&, std::string&) to do the work. + + 2009-01-22 Sᅵren Hauberg + + * defun-int.h (print_usage): No longer mark as deprecated. + * defun.cc (print_usage): Simply call feval to execute print_usage.m. + * help.cc (additional_help_message, display_names_from_help_list, + display_symtab_names, simple_help, try_info, help_from_info, + display_help_text, display_usage_text, raw_help_from_list, + help_from_list, help_from_symbol_table, help_from_file, + builtin_help, Fhelp, display_file, do_type, Ftype, + first_help_sentence, print_lookfor, Flookfor): Delete. + (looks_like_html, raw_help_from_map, raw_help, do_get_help_text, + F__operators__, F__keywords__, F__builtins__, + file_is_in_dir, F__list_functions__): New functions. + (pair_type, map_iter): New typedefs. + (operators, keywords): Use pair_type for elements of list. + (names): Use map for (keyword, doc) lists. + (make_name_list): Sprinkle with const. + * help.h (display_help_text, display_usage_text, + additional_help_message): Delete decls. + + 2009-01-22 John W. Eaton + + * toplev.cc (octave_config_info): Check OCTAVEUSE_OS_X_API instead + of __APPLE__ && __MACH__. + + * display.cc (display_info::init): Get info for Windows and OS X + systems. + + 2009-01-22 Jaroslav Hajek + + * pt-idx.cc (tree_index_expression::lvalue): Correct tmpi when seeing + a plain struct component. + * ov-struct.cc (octave_struct::subsasgn): Use proper type substr in + empty_conv. + + 2009-01-22 Jaroslav Hajek + + * DLD-FUNCTIONS/qr.cc: Remove HAVE_QRUPDATE check. + * DLD-FUNCTIONS/chol.cc: Ditto. + + 2009-01-21 John W. Eaton + + * Makefile.in (display.o): Add X11_INCFLAGS to CPPFLAGS. + (octave$(EXEEXT)): Link with X11_LIBS. + + * display.h, display.cc: New files. + * graphics.cc (default_screendepth, default_screensize, + default_screenpixelsperinch): New functions. + * graphics.h.in (class root_figure::properties): New property, + screendepth. Use default_screensize to initialize screensize + property. Use default_screenpixelsperinch to initialize + screenpixelsperinch property. + + * graphics.cc (properties::init): Set default xlabel, ylabel, + zlabel, and title properties that differ from default text + properties. + + 2009-01-21 Jaroslav Hajek + + * OPERATORS/op-range.cc: Define & register range-scalar ops. + + 2009-01-21 Jaroslav Hajek + + * ov.h (octave_value::subsref (..., bool auto_add)): New method. + (octave_value::next_subsref (bool auto_add, ...)): New method. + * ov.cc (octave_value::next_subsref (bool auto_add, ...)): New method. + * ov-base.h (octave_base_value::subsref (..., bool auto_add)): New + virtual method. + * ov-base.cc (octave_base_value::subsref (..., bool auto_add)): New + virtual method. + * ov-cell.cc (octave_cell::subsref (..., bool auto_add)): New virtual + method. + * ov-cell.h (octave_cell::subsref (..., bool auto_add)): Declare it. + * ov-struct.cc (octave_struct::subsref (..., bool auto_add)): New + virtual method. + (octave_struct::subsref (const std::string& type, const + std::list& idx)): Do not allow resizing. + * ov-struct.h (octave_struct::subsref (..., bool auto_add)): Declare + it. + * ov-struct.cc (octave_struct::dotref (..., bool auto_add)): New + virtual method. + * ov-struct.h (octave_struct::dotref (..., bool auto_add)): Declare it. + * pt-idx.cc (tree_index_expression::rvalue): Do not reevaluate already + evaluated part of the index chain. + (tree_index_expression::rvalue): Do not reevaluate already evaluated + part of the index chain. Do not actually perform trailing indexing. + Do not allow indexing cs-lists. + + 2009-01-20 John W. Eaton + + * file-io.cc (Ffstat): New function. + + 2009-01-17 Jaroslav Hajek + + * DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete, Fqrshift): + Reflect changes in liboctave. + * DLD-FUNCTIONS/chol.cc (Fcholupdate, Fcholinsert): + Reflect changes in liboctave. + + 2009-01-19 Jaroslav Hajek + + * ov.h (octave_value::make_unique (int)): New method. + * oct-obj.h (octave_value_list::octave_value_list (const Cell&)): New + constructor. + * ov-cell.cc (octave_cell::subsasgn): Allow composed {} indexing + in multi-assignments. Optimize. + * ov-struct.cc (octave_struct::subsasgn): Correct composed {} indexing + in multi-assignments. Optimize & fix bugs. + * pt-idx.cc (tree_index_expression::lvalue): Rewrite to allow + specifying cs-list anywhere in index chain, be more robust. + + 2009-01-19 John W. Eaton + + * lex.l (grab_comment_block): If not reading input from a file, + bail out at first newline inside a comment. + + * lex.l (lexer_debug_flag): New static variable. + (F__lexer_debug_flag__): New function. + (LEXER_DEBUG): New macro. Use it in all patterns. + (DISPLAY_TOK_AND_RETURN): Also display token if lexer_debug_flag + is set. + (process_comment): Display comment if lexer_debug_flag is set. + (display_character, display_state, lexer_debug): New static functions. + (xunput): Display character if lexer_debug_flag is set. + + 2009-01-17 Jaroslav Hajek + + * ov.h: Describe usage of storable_value and make_storable_value. + * ov.cc: Remove FIXME comment. + + 2009-01-15 John W. Eaton + + * data.cc (Freshape): Include mismatched dimensions in error message. + From Robert Millan . + + 2009-01-14 Jaroslav Hajek + + * ov.cc (octave_value::maybe_economize): New method. + (octave_value::non_null_value): rename to storable_value. + (octave_value::make_non_null_value): rename to make_storable_value. + * ov-base.h (octave_base_value::maybe_economize): New method. + * ov-base-mat.h (octave_base_mat::maybe_economize): New override. + * oct-obj.cc (octave_value_list::normalize_null_values): + Rename to make_storable_values, use make_storable_value. + * oct-obj.h: Ditto. + * ov-builtin.cc: non_null_value -> storable_value. + * ov-cell.cc: Ditto. + * ov-struct.cc: Ditto. + * pt-decl.h: Ditto. + + 2009-01-15 Sᅵren Hauberg + + * DLD-FUNCTIONS/__magick_read__.cc (encode_uint_image): + Initialize bitdepth. + + 2009-01-14 Sᅵren Hauberg + + * DLD-FUNCTIONS/betainc.cc, DLD-FUNCTIONS/chol.cc, + DLD-FUNCTIONS/daspk.cc, DLD-FUNCTIONS/dasrt.cc, + DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/filter.cc, + DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/gcd.cc, + DLD-FUNCTIONS/givens.cc, DLD-FUNCTIONS/hess.cc, + DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/qr.cc, DLD-FUNCTIONS/qz.cc, + DLD-FUNCTIONS/schur.cc, DLD-FUNCTIONS/svd.cc, + DLD-FUNCTIONS/syl.cc, data.cc, mappers.cc: + Use ifnottex instead of ifinfo. + + 2009-01-14 John W. Eaton + + * load-path.cc (load_path::do_set): Call do_clear after disabling + add_hook. + + 2009-01-13 Jaroslav Hajek + + * dirfns.cc (Freadddir): qsort -> sort. + * graphics.cc (maybe_set_children): Ditto. + * help.cc (simple_help): Ditto. + * input.cc (generate_possible_completions): Ditto. + * oct_map.cc (keys_ok): Ditto. + * ov-fcn-inline.cc (Finline): Ditto. + * variables.cc (Fisrawcommand): Ditto. + + 2009-01-12 John W. Eaton + + * octave.cc (maximum_braindamage): Set confirm_recursive_rmdir to + false. + + * strfns.cc (Fstrcmp, Fstrncmp): Simplify by initializing all + elements of output to false with constructor argument. + + 2009-01-12 Thorsten Meyer + + * strfns.cc (Fstrncmp): New test. + + 2009-01-12 John W. Eaton + + * pt-stmt.h (tree_statement::is_null_statement): New function. + * parse.y (set_stmt_print_flag): Return list. Remove trailing + null statements from list. + (list, simple_list): Simplify action. + (make_statement, make_statement_list, append_statement_list): + Always create statements and them to the list. + + * base-list.h (octave_base_list::push_front, + octave_base_list::push_back, octave_base_list::pop_front, + octave_base_list::pop_back): New functions. + + * DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete, Fqrshift): + Require args to be numeric, not necessarily matrix objects. + + 2009-01-12 Ben Abbott + + * graphics.h.in (text::properties::fontunits): Fix typo in list of + possible values. + + 2009-01-12 John W. Eaton + + * strfns.cc (Fstrvcat, Fchar): Use queue to avoid duplicate calls + to all_strings. + + 2009-01-12 Thorsten Meyer + + * strfns.cc (Fstrvcap): New function. + + 2008-11-29 Thorsten Meyer + + * strfns.cc (Fchar, Fischar, Fstrncmp, Flist_in_columns): + Improve documentation strings. Add examples and tests. + + 2009-01-12 Jaroslav Hajek + + * ov-perm.cc (octave_perm_matrix::do_index_op): Return shallow copy + when indexed by (:,:). + * ov-base-mat.cc (octave_base_diag::do_index_op): Return shallow copy + when indexed by (:,:). Optimize indexing equivalent to resizing. + * data.cc: Fix tests. + * mappers.cc: Fix tests. + + 2009-01-12 Jaroslav Hajek + + * ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h, ov-base-sparse.h, + ov-base.cc, ov-base.h, ov-perm.h, ov-range.h, ov.h: Add full_value + methods to octave_value, octave_base_value and its relevant + subclasses. + * data.cc (Ffull): New DEFUN. + * DLD-FUNCTIONS/sparse.cc (Ffull): move to data.cc. + 2009-01-11 Jaroslav Hajek + + * ov.h (octave_value::is_copy_of): New method. + * ov-struct.cc (numeric_conv): Add output parameter orig. + (octave_struct::subsasgn): Temporarily erase duplicate lhs value prior + to assignment. + + 2009-01-11 Jaroslav Hajek + + * oct-obj.cc (octave_value_list::all_scalars): New method. + * oct-obj.h: Declare it. + * ov-cell.cc (octave_cell::subsasgn): Disable assigning + to non-scalar {}-indexed cell, unless in a multi-assignment. + + 2009-01-10 Jaroslav Hajek + + * DLD-FUNCTIONS/sparse.cc (Ffull): Convert diagonal & permutation + matrices, leave other classes untouched. + + 2009-01-09 Jaroslav Hajek + + * OPERATORS/op-cdm-cdm.cc: Install missing widening op. + * OPERATORS/op-dm-dm.cc: Ditto. + * OPERATORS/op-fcdm-fcdm.cc: Ditto. + * OPERATORS/op-fdm-fdm.cc: Ditto. + * OPERATORS/op-pm-pm.cc: Ditto. + * OPERATORS/op-fpm-fpm.cc: Ditto. + + 2009-01-09 Jaroslav Hajek + + * ov-cell.cc (octave_cell::subsasgn): Put erased copy back after + make_unique has been called. + + 2009-01-09 Kai Habel + + * graphics.cc: Calculate normals for surface boundaries, use + more neighboring points to calculate interior normals + + 2009-01-09 John W. Eaton + + * input.cc (get_user_input (void)): Don't increment input_line_number. + * lex.l (xunput): New function. Use it in place of yyunput + anywhere a newline character may be put back on the input stream. + Increment input_line_number in all rules that consume newlines + characters. + (text_yyinput): Increment input_line_number + (fixup_column_count): Increment input_line_number. + (prep_for_function): Set input_line_number to 1, not 0. + (reset_parser): Set input_line_number to current_command_number, + not current_command_number-1. + (flex_stream_reader::ungetc): Call xunput, not yyunput. + * parse.y (input_line_number): Initialize to 1, not 0. + (text_getc): Increment input_line_number correctly. + (stdio_stream_reader::ungetc): Decrement input_line_number if + putting back a newline character. + (parse_fcn_file): Set input_line_number to 1, not 0. + (eval_string): Unwind-protect input_line_number and + current_input_column. + + * parse.y (make_statement): New function. + (statement): Use it. + (make_statement_list, append_statement_list): New functions. + (simple_list1, list1): Use them. + + 2009-01-08 Jaroslav Hajek + + * ov-cell.cc (octave_cell::subsasgn): Erase duplicate lhs value + prior to assignment to avoid a redundant copy. + + 2008-12-26 Thorsten Meyer + + * mappers.cc (Ftoascii), mappers.cc (Ftolower), mappers.cc + (Ftoupper), DLD-FUNCTIONS/regexp.cc (Fregexp), + DLD-FUNCTIONS/regexp.cc (Fregexpi), DLD-FUNCTIONS/regexp.cc + (Fregexprep): Add references. + + 2008-12-27 Jaroslav Hajek + + * oct-obj.h, oct-obj.cc (octave_value_list::valid_scalar_indices): Remove. + * ov-base-diag.cc, ov-base-diag.h, ov-base-scalar.cc, ov-base.h, + ov-bool-mat.cc, ov-bool-mat.h, ov-bool-sparse.cc, ov-bool-sparse.h, + ov-bool.cc, ov-bool.h, ov-ch-mat.cc, ov-ch-mat.h, ov-colon.h, + ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, + ov-cx-sparse.cc, ov-cx-sparse.h, ov-float.cc, ov-float.h, + ov-flt-complex.cc, ov-flt-complex.h, ov-flt-cx-mat.cc, + ov-flt-cx-mat.h, ov-flt-re-mat.cc, ov-flt-re-mat.h, ov-intx.h, + ov-perm.cc, ov-perm.h, ov-range.h, ov-re-mat.cc, ov-re-mat.h, + ov-re-sparse.cc, ov-re-sparse.h, ov-scalar.cc, ov-scalar.h, + ov-str-mat.cc, ov-str-mat.h, ov.h: + Remove valid_as_scalar_index and valid_as_zero_index methods + from octave_value, octave_base_value and all of its subclasses. + + 2008-12-26 Francesco Potortì + + * data.cc (resize): Add cross reference to postpad. + + 2008-12-25 Jaroslav Hajek + + * load-save.h (load_save_format_type, load_save_format_options): New + enums. + (load_save_format): Convert to a class. + * load-save.cc (do_save(..., const octave_value&,...)): Use fmt.type + in switch. Use options of LS_MAT_ASCII. + (do_load, write_header): Use format.type in switch. + * ls-mat-ascii.h (save_mat_ascii_data): Add tabs option. + * ls-mat-ascii.cc (save_mat_ascii_data): Implement it. + + 2008-12-24 Ben Abbott + + * DLD-FUNCTIONS/chol.cc: Compare results to 0 in tests. + Delete spurious function calls in test block. + + 2008-12-24 John W. Eaton + + * DLD-FUNCTIONS/eigs.cc: Use "testif HAVE_ARPACK" to skip tests if + ARPACK is not available. + + * Makefile.in (DLD_XSRC): Add eigs.cc to the list. + + * load-save.cc (parse_save_options): Handle -double. + + 2008-12-23 David Bateman + + * DLD-FUNCTIONS/eigs.cc: New file. + * Makefile.in (DLD_XSRC): Add it here. + + 2008-12-22 David Bateman + + * DLD-FUNCTIONS/__voronoi__.cc (F__voronoi__): Resize AtInf array + before returning it. + + 2008-12-12 David Bateman + + * DLD-FUNCTIONS/chol.cc (Fcholinv): Add test. + + 2008-12-12 Jaroslav Hajek + + * ls-hdf5.cc (add_hdf5_data): Check for diagonal & permutation + matrices and convert them to full prior to saving. + + 2008-12-11 Jaroslav Hajek + + * ov-re-mat.cc (Fdouble): Handle diagonal & perm matrices. + * ov-flt-re-mat.cc (Fsingle): Handle diagonal & perm matrices. + + 2008-12-11 Jaroslav Hajek + + * ov-base-diag.cc (octave_base_diag::subsasgn): New method. + * ov-base-diag.h (octave_base_diag::subsasgn): Declare it. + (octave_base_diag::chk_valid_scalar): New method decl. + + * ov-re-diag.cc (octave_diag_matrix::chk_valid_scalar): New method + override. + * ov-re-diag.h: Declare it. + * ov-flt-re-diag.cc (octave_float_diag_matrix::chk_valid_scalar): New + method override. + * ov-flt-re-diag.h: Declare it. + * ov-cx-diag.cc (octave_complex_diag_matrix::chk_valid_scalar): New + method override. + * ov-cx-diag.h: Declare it. + * ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::chk_valid_scalar): + New method override. + * ov-flt-cx-diag.h: Declare it. + + 2008-12-10 Jaroslav Hajek + + * DLD-FUNCTIONS/expm.cc: Remove. + * Makefile.in: Update. + + 2008-12-10 Jaroslav Hajek + + * ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::empty_clone): Construct an + empty matrix instead of zero. + + 2008-12-07 Thorsten Meyer + + * mappers.cc (Ftolower): Make lower alias of tolower, add tests + * mappers.cc (Ftoupper): Make upper alias of toupper, add tests + + 2008-12-09 Jaroslav Hajek + + * DLD-FUNCTIONS/balance.cc (Fbalance): Exploit the new AEPBAL functionality. + + 2008-12-08 Jaroslav Hajek + + * xpow.cc ( xpow (const DiagMatrix& a, double b), + xpow (const DiagMatrix& a, const Complex& b), + xpow (const ComplexDiagMatrix& a, double b), + xpow (const ComplexDiagMatrix& a, const Complex& b), + xpow (const FloatDiagMatrix& a, float b), + xpow (const FloatDiagMatrix& a, const FloatComplex& b), + xpow (const FloatComplexDiagMatrix& a, float b), + xpow (const FloatComplexDiagMatrix& a, const FloatComplex& b)): + New methods. + * xpow.h: Declare them. + * OPERATORS/op-dms-template.cc: Support diagonal matrix ^ scalar. + + 2008-12-08 Jaroslav Hajek + + * ov-re-diag.cc (octave_diag_matrix::save_binary, + octave_diag_matrix::load_binary): New methods. + * ov-re-diag.h: Declare them. + * ov-flt-re-diag.cc (octave_float_diag_matrix::save_binary, + octave_float_diag_matrix::load_binary): New methods. + * ov-flt-re-diag.h: Declare them. + * ov-cx-diag.cc (octave_complex_diag_matrix::save_binary, + octave_complex_diag_matrix::load_binary): New methods. + * ov-cx-diag.h: Declare them. + * ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::save_binary, + octave_float_complex_diag_matrix::load_binary): New methods. + * ov-flt-cx-diag.h: Declare them. + * ov-perm.cc (octave_perm_matrix::save_binary, + octave_perm_matrix::load_binary): New methods. + * ov-perm.h: Declare them. + + 2008-12-06 Jaroslav Hajek + + * ov-fcn-handle.cc (octave_fcn_handle::load_binary): Call istream::get + rather than istream::read to supply null terminating character. + + 2008-10-29 Jaroslav Hajek + * file-io.cc, gl-render.cc, load-save.cc, ls-hdf5.cc, ls-mat4.cc, + ls-mat5.cc, ls-oct-binary.cc, mex.cc, oct.h, ov-base-int.cc, + ov-bool-mat.cc, ov-bool-sparse.cc, ov-cell.cc, ov-class.cc, + ov-cx-mat.cc, ov-cx-sparse.cc, ov-fcn-handle.cc, ov-fcn-inline.cc, + ov-flt-cx-mat.cc, ov-flt-re-mat.cc, ov-re-mat.cc, ov-re-sparse.cc, + ov-str-mat.cc, ov-struct.cc, toplev.cc, + DLD-FUNCTIONS/__lin_interpn__.cc, DLD-FUNCTIONS/amd.cc, + DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc, + DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/gcd.cc, + DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/regexp.cc, + DLD-FUNCTIONS/symbfact.cc, DLD-FUNCTIONS/symrcm.cc: + Include oct-locbuf.h. + + 2008-12-05 Jaroslav Hajek + + * ov-base-diag.cc (save_ascii, load_ascii): Save natively. + * ov-base-diag.h (load_ascii): Declare. + * ov-perm.cc (save_ascii, load_ascii): Save natively. + * ov-perm.h (load_ascii): Declare. + + 2008-12-04 Thorsten Meyer + + * strfns.cc (Fchar): Add test from str2mat.m + + 2008-12-04 Jaroslav Hajek + + * ov.h (octave_value::is_perm_matrix): New method. + * ov-base.h (octave_base_value::is_perm_matrix): New method. + * ov-perm.h (octave_perm_matrix::is_perm_matrix): New method. + * DLD-FUNCTIONS/inv.cc (Finv): Handle permutation matrices specially, + compute rcond for diagonal matrices. + * DLD-FUNCTIONS/det.cc (Fdet): Handle permutation & diagonal matrices + specially. + + 2008-12-03 Jaroslav Hajek + + * ov-perm.h: New source. + * ov-perm.cc: New source. + * ov-flt-perm.h: New source. + * ov-flt-perm.cc: New source. + * ov-base-diag.cc (octave_base_diag::do_index_op): + If subscripting an identity matrix by permutation(s), return a + permutation matrix object. + * ov.cc (octave_value::octave_value (const PermMatrix&)): New + constructor. + * ov.cc (octave_value::octave_value (const PermMatrix&)): Declare it. + * op-cm-pm.cc: New source. + * op-fcm-fpm.cc: New source. + * op-fm-fpm.cc: New source. + * op-fpm-fcm.cc: New source. + * op-fpm-fm.cc: New source. + * op-fpm-fpm.cc: New source. + * op-m-pm.cc: New source. + * op-pm-cm.cc: New source. + * op-pm-m.cc: New source. + * op-pm-pm.cc: New source. + * op-pm-template.cc: New source. + * Makefile.in: Include new sources. + * DLD-FUNCTIONS/qr.cc (Fqr): Reflect interface changes of QR classes. + + 2008-12-03 John W. Eaton + + * debug.cc (bp_table::do_get_breakpoint_list): Style fixes. + + 2008-12-01 Jaroslav Hajek + + * ov-base.h (octave_base_value::is_diag_matrix): New virtual method. + * ops.h (CONCAT2, CONCAT3): New macros. Use CONCAT macros instead of + direct token pasting to avoid disabling argument prescan. + * xdiv.cc, xdiv.h: Implement xdiv and xleftdiv overloads for diagonal + and mixed dense-diagonal operands. + + * ov-re-diag.h: New source. + * ov-re-diag.cc: New source. + * ov-flt-re-diag.h: New source. + * ov-flt-re-diag.cc: New source. + * ov-base-diag.h: New source. + * ov-base-diag.cc: New source. + * OPERATORS/op-m-dm.cc: New source. + * OPERATORS/op-m-cdm.cc: New source. + * OPERATORS/op-fm-fdm.cc: New source. + * OPERATORS/op-fm-fcdm.cc: New source. + * OPERATORS/op-fdm-fs.cc: New source. + * OPERATORS/op-fdm-fm.cc: New source. + * OPERATORS/op-fdm-fdm.cc: New source. + * OPERATORS/op-fdm-fcs.cc: New source. + * OPERATORS/op-fdm-fcm.cc: New source. + * OPERATORS/op-fdm-fcdm.cc: New source. + * OPERATORS/op-fcm-fdm.cc: New source. + * OPERATORS/op-fcm-fcdm.cc: New source. + * OPERATORS/op-fcdm-fs.cc: New source. + * OPERATORS/op-fcdm-fm.cc: New source. + * OPERATORS/op-fcdm-fdm.cc: New source. + * OPERATORS/op-fcdm-fcs.cc: New source. + * OPERATORS/op-fcdm-fcm.cc: New source. + * OPERATORS/op-fcdm-fcdm.cc: New source. + * OPERATORS/op-dms-template.cc: New source. + * OPERATORS/op-dm-template.cc: New source. + * OPERATORS/op-dm-s.cc: New source. + * OPERATORS/op-dm-m.cc: New source. + * OPERATORS/op-dm-dm.cc: New source. + * OPERATORS/op-dm-cs.cc: New source. + * OPERATORS/op-dm-cm.cc: New source. + * OPERATORS/op-dm-cdm.cc: New source. + * OPERATORS/op-cm-dm.cc: New source. + * OPERATORS/op-cm-cdm.cc: New source. + * OPERATORS/op-cdm-s.cc: New source. + * OPERATORS/op-cdm-m.cc: New source. + * OPERATORS/op-cdm-dm.cc: New source. + * OPERATORS/op-cdm-cs.cc: New source. + * OPERATORS/op-cdm-cm.cc: New source. + * OPERATORS/op-cdm-cdm.cc: New source. + * Makefile.in: Include them. + + * ov-re-mat.cc (octave_matrix::diag): New method override. + * ov-re-mat.h: Declare it. + * ov-cx-mat.cc: Likewise with octave_complex_matrix. + * ov-cx-mat.h: Likewise with octave_complex_matrix. + * ov-flt-re-mat.cc: Likewise with octave_float_matrix. + * ov-flt-re-mat.h: Likewise with octave_float_matrix. + * ov-flt-cx-mat.cc: Likewise with octave_float_complex_matrix. + * ov-flt-cx-mat.h: Likewise with octave_float_complex_matrix. + * ov.cc (octave_value::octave_value (const DiagMatrix&)) + (octave_value::octave_value (const FloatDiagMatrix&)) + (octave_value::octave_value (const ComplexDiagMatrix&)) + (octave_value::octave_value (const FloatComplexDiagMatrix&)): + Construct a diagonal matrix object. + * data.cc (Fdiag): Support explicit dimensions. Fix tests. + (Feye): Return diagonal matrix objects if possible. Fix tests. + * mappers.cc (Freal, Fimag): Fix tests. + * DLD-FUNCTIONS/inv.cc (Finv): Handle diagonal matrix objects. + * ov-range.h (octave_range::diag): Declare only. + * ov-range.cc (octave_range::diag): Return DiagMatrix if possible. + + 2008-11-25 Jaroslav Hajek + * ov.cc (octave_value::is_equal): New member function. + * ov.h: Declare it. + * pt-select.cc (tree_switch_case::label_matches): Call + octave_value::is_equal. + + 2008-12-04 Thomas Treichl + + * DLD-FUNCTIONS/cellfun.cc: Added more tests for cellfun. + + 2008-11-25 Jaroslav Hajek + + * ov-base.h (octave_base_value::type_conv_info): New class. + * ov-base.h, ov-bool-mat.cc, ov-bool-mat.h, ov-bool-sparse.cc, + ov-bool-sparse.h, ov-bool.cc, ov-bool.h, ov-complex.cc, ov-complex.h, + ov-cx-mat.cc, ov-cx-mat.h, ov-null-mat.cc, ov-null-mat.h, + ov-range.cc, ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, + ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, ov.h: + Return type_conv_info instead of type_conv_fcn from + numeric_conversion_function and numeric_demotion_function + methods. + * ov-base.cc (octave_base_value::numeric_assign): Try biased conversion + first if possible. + * ov.cc (do_binary_op): Likewise. Also, search recursively. + * ov.cc (do_cat_op): Likewise. + + 2008-11-24 David Bateman + + * graphics.cc (F__go_delete__): Check validity of handles before + deleting them to avoid issues with callback function also deleting + the handles. + + 2008-11-21 John Swensen + + * debug.cc (bp_table::do_get_breakpoint_list): Avoid modifying + bp_map while iterating over it. + + 2008-11-21 Jarkko Kaleva + + * DLD-FUNCTIONS/eig.cc (Feig): Handle generalized eigenvalues and + eigenvectors. + + 2008-11-19 Jaroslav Hajek + + * DLD_FUNCTIONS/det.cc: Include only DET.h. Retrieve & matrix type & + store it after calculation if possible. + + 2008-11-17 John W. Eaton + + * load-path.cc (load_path::dir_info::update): Simplify previous + change. + + * load-path.h (load_path::dir_info::abs_dir_name): New data member. + (load_path::dir_info::dir_info, load_path::dir_info::operator =): + Copy abs_dir_name. + (load_path::abs_dir_cache_type, load_path::dir_cache_iterator, + load_path::const_dir_cache_iterator): New typedefs. + (load_path::abs_dir_cache): New static data member. + (load_path::dir_info:dir_info): New constructor. + * load-path.cc (load_path::abs_dir_cache): Define new static data + member. + (load_path::dir_info::update): Look in abs_dir_cache for relative + directory names. + (load_path::dir_info::initialize): Update abs_dir_cache here. + + 2008-11-13 John W. Eaton + + * ov-int8.h, ov-int16.h, ov-int32.h, ov-int64.h, ov-uint8.h, + ov-uint16.h, ov-uint32.h, ov-uint64.h: Don't define + OCTAVE_INT_NDARRAY_T. + * ov-intx.h (class OCTAVE_VALUE_INT_MATRIX_T, + class OCTAVE_VALUE_INT_SCALAR_T): Use intNDArray + instead of OCTAVE_INT_NDARRAY_T. + (OCTAVE_VALUE_INT_MATRIX_T::increment, + OCTAVE_VALUE_INT_MATRIX_T::decrement, + OCTAVE_VALUE_INT_SCALAR_T::increment, + OCTAVE_VALUE_INT_SCALAR_T::decrement): Convert 1 to OCTAVE_INT_T. + + 2008-11-15 Thorsten Meyer + + * strfns.cc (Fchar): adapt to conserve empty strings, add tests + + 2008-11-12 Michael Goffioul + + * dirfcn.cc (Ffilesep): Make it return all file separators when 'all' + is given as argument. + + * DLD-FUNCTIONS/getrusage.cc: Undefine min/max. + * TEMPLATE-INST/Array-os.cc: Declare Array as extern template. + + 2008-11-12 David Bateman + + * OPERATORS/op-cell.cc (op_catop_matrix_cell): Cast args in the correct + order. + * OPERATORS/op-struct.cc (op_catop_matrix_struct): Ditto. + + 2008-11-11 Jaroslav Hajek + + * pt-assign.cc: Fix handling of empty cs-lists in assignment LHS. + + 2008-11-11 John W. Eaton + + * lex.l ({S}+): Don't insert separator if next token + is a separator. + + * parse.y (F__parser_debug_flag__): New function. + + 2008-10-31 Jaroslav Hajek + + * xnorm.cc: New source. + * xnorm.h: New header file. + * Makefile.in: Include xnorm.cc in the build process. + * data.cc (Fnorm): Call xnorm, xcolnorms, xrownorms or xfrobnorm + to do the actual work. + + 2008-10-31 David Bateman + + * ov-base-scalar.h (octave_value octave_base_scalar::reshape + (const dim_vector&) const): New method. + + 2008-10-30 John W. Eaton + + * oct-map.cc (Octave_map::index): Copy key_list. + + 2008-10-31 David Bateman + + * graphics.h.in (void image::init (void)): Add a constraint for + logical cdata. + + * graphics.h.in (base_property::delete_listener): New method. + (property::delete_listener): New method. + (base_graphics_object::delete_listener): New method. + (base_graphics_object::delete_property_listener): New method. + (base_graphics_object::remove_all_listeners): New method. + (graphics_object::delete_property_listener): New method. + (axes::set_defaults): Call remove_all_listeners. + * graphics.cc (void base_properties::delete_listener): New method + (void base_graphics_object::remove_all_listeners (void)): New method + (Fdellistener): New command to remove listener functions associated + with a property. + + 2008-10-30 David Bateman + + * graphics.h.in (axes::properties): Add keyreverse property. + * graphics.cc (axes::properties::set_defaults): Initialize + keyreverse property. + + 2008-10-28 Jaroslav Hajek + + * Cell.h (Cell::assign (const Array&, ...), + Cell::delete_elements (const Array&, ...)): + New member functions. + * Cell.cc (Cell::assign (const octave_value_list&, ...), + Cell::delete_elements (const octave_value_list&, ...)): + Call Array::assign. + * DLD-FUNCTIONS/dlmread.cc: Call Array::resize_fill. + * ov-base-mat.cc (octave_base_matrix::assign): Call Array::assign. + (octave_base_matrix::delete_elements):: Call Array::delete_elements. + * ov-cell.cc (Fcell): Call Array::chop_trailing_singletons, + simplify. + * ov-cx-mat.cc (octave_complex_matrix::assign): Call Array::assign. + * ov-flt-cx-mat.cc (octave_float_complex_matrix::assign): Call + Array::assign. + * ov-list.cc (octave_list::subsasgn): Call Array::assign. + * pr-output.cc (PRINT_ND_ARRAY): Use zero-based indices. + + 2008-10-29 Thorsten Meyer + + * data.cc (Fcolumns): Remove "and" from @seealso string. + * mappers.cc (Fgamma, Flgamma): Replace @seealso reference to + deprecated gammai by gammainc. + * DLD-FUNCTIONS/sqrtm.cc (Fsqrtm): Remove reference to Octave + Forge function funm. + * DLD-FUNCTIONS/qz.cc (Fqz): removed @seealso reference to Octave + Forge function dare. + * DLD-FUNCTIONS/rcond.cc (Frcond): removed @seealso reference to + mldivide. + * debug.cc (Fdbstop): Fix @seealso references and function name in + docstring of dbnext. + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Remove @seealso reference + to isclass. + * syscalls.cc (Fwaitpid): Replace WCONTINUED by WCONTINUE. + * oct-hist.cc (Fhistory_size, Fsaving_history): Fix @seealso + references to history_timestamp_format_string. + * DLD-FUNCTIONS/luinc.cc (Fluinc): Remove reference to missing + function cholinc. + + 2008-10-29 Jaroslav Hajek + + * DLD-FUNCTIONS/qr.cc (Fcholinsert, Fcholdelete, Fcholshift): Fix + inline docs. + + 2008-10-28 John W. Eaton + + * parse.y (finish_function): Clear local variables in function scope. + * symtab.h (symbol_table::clear_variables): New argument, scope. + + 2008-10-28 Brian Gough + + * DLD-FUNCTIONS/besselj.cc: Added tests. + + 2008-10-23 John W. Eaton + + * oct-hist.c (initialize_history): New arg, read_history_file) + * oct-hist.h: Fix decl. + * octave.cc (octave_main): Set read_history_file to false if + --no-history option is specified. Pass read_history_file to + initialize_history. + + * DLD-FUNCTIONS/fltk_backend.cc: Update initialization comment. + + 2008-10-22 John W. Eaton + + * DLD-FUNCTIONS/fltk_backend.cc (figure_manager::do_close_all): + Rename from close_all. Now private. + (figure_manager::do_new_window): Rename from new_window. + Now private. + (figure_manager::do_delete_window): Rename from delete_window. + Now private. + (figure_manager::do_mark_modified): Rename from mark_modified. + Now private. + (figure_manager::do_get_size): Rename from get_size. Now private. + (figure_manager::close_all, figure_manager::do_new_window, + figure_manager::do_delete_window, + figure_manager::do_mark_modified, figure_manager::do_get_size): + New static functions. + (figure_manager::instance_ok): New function. + (figure_manager::Instance): Delete. Eliminate all uses in favor + of static methods that call instance_ok and forward to private + member functions. + (figure_manager::instance): New static data member. + (figure_manager::hnd2idx, figure_manager::figprops2idx, + figure_manager::figprops2idx, figure_manager::str2idx): Now static. + + * DLD-FUNCTIONS/fltk_backend.cc (figure_manager::default_size): + Increase default window size. + + * graphics.cc (figure::properties::remove_child): New function. + * graphics.h.in: Provide decl. + + * gl-render.cc (opengl_renderer::draw): Get all children. + + * DLD-FUNCTIONS/fltk_backend.cc (__fltk_redraw__): + Check for "root" object, not "root_figure". + + * graphics.h.in (base_properties::get_all_children): New function. + + 2008-10-22 David Bateman + + * graphics.h.in (line::properties, surface::properties): Add data + source properties. + + 2008-10-21 John W. Eaton + + * graphics.h.in (axes::properties::delete_children): Delete decl. + + * graphics.h.in (gh_manager::is_handle_visible): New function. + (axes::properites): Move title property after label properties. + (graphics_object::is_handle_visible): New function. + (base_properties::is_handle_visible): New function. + (base_properties): Mark children property with G. + * graphics.cc (axes::properties::set_text_child): New function. + (axes::properties::set_title, axes::properties::set_xlabel, + axes::properties::set_ylabel, axes::properties::set_zlabel): Use it. + (base_property::get_children): New function. Only + return handles that are visible. + (axes::properties::delete_text_child): Set handlevisibility to + "off" for newly created object and add it to the list of children. + Call base_properties::remove_child on previous handle value. + (axes::properties::set_defaults): Don't explicitly delete xlabel, + ylabel, zlabel, and title handles. Reinitialize them after + deleting children. + (axes::properties::remove_child): Don't explicitly delete xlabel, + ylabel, zlabel, and title handles. + (axes::properties::init): Move here from graphics.h.in. Set + handlevisibility to "off" for xlabel, ylabel, zlabel, and title + and add them to the list of children. + (axes::properties::delete_children): Delete. + + * genprops.awk: Allow whitespace between BEGIN_PROPERTIES and + opening paren. Accept optional second argument for graphics + object name. + * graphics.h.in (root_figure properties): Pass "root" as second + arg to BEGIN_PROPERTIES. + + 2008-10-16 John W. Eaton + + * graphics.cc (make_handle_fraction): New static function. + (gh_manager::get_handle): Use it. + (gh_manager::do_free): Call make_handle_fraction to replace + fractional part of non-figure handles. + + * graphics.cc (base_properties::remove_child): Handle children as + a column vector instead of a row vector. + + * utils.cc (Fis_absolute_filename, Fis_rooted_relative_filename, + Fmake_absolute_filename, Ffind_dir_in_path): New functions. + + 2008-10-16 David Bateman + + * graphics.cc (void axes::properties::set_defaults + (base_graphics_object&, const std::string&)): Preserve font + and position properties if the axis is "replaced". + + 2008-10-16 John W. Eaton + + * graphics.h.in (class axes::properties): New property: interpreter. + + 2008-10-15 David Bateman + + * ov-class.c (Fsuperiorto, Finferiorto): Allow more than one class + to be defined at a time. + + 2008-10-12 David Bateman + + * pt-colon.cc (octave_value tree_colon_expression::make_range + (const octave_value&, const octave_value&, const octave_value&)): + Treating class overloading of colon operator. + (octave_value tree_colon_expression::rvalue (void)): Ditto. + + 2008-10-10 John W. Eaton + + * graphics.h.in (base_properties::adopt): Place new child at front + of list, not end. Make list of children a column vector instead + of a row vector. + + * graphics.cc (gh_manager::do_free): Set the beingdeleted + property, then delete the children, then execute the deletefcn. + (axes::properties::set_defaults, axes::properties::remove_child, + axes::properites::delete_children): Call delete_text_child to + manage the title, xlabel, ylabel, and zlabel properties. + (axes::properties::get_title, axes::properties::get_xlabel, + axes::properties::get_ylabel, axes::properties::get_zlabel): Delete. + + * graphics.h.in (axes::properites::title, + axes::properites::xlabel, axes::properites::ylabel, + axes::properites::zlabel): No longer mutable. Don't generate + factory default values or custom get functions for these + properties. + + * graphics.cc (axes::properties::delete_text_child): New function. + * graphics.h.in: Provide decl. + + * graphics.h.in (graphics_object::type): New function. + + 2008-10-10 David Bateman + + * graphics.h.in (radio_property axes::properties::__colorbar__): + Delete. + * graphics.cc (void axes::properties::sync_positions (void)): + Disable code synchronizing outerposiiton and position. + (void axes::properties::set_defaults (base_graphics_object&, + const std::string&): Remove __colorbar__. + (F__go_delete__): Don't delete if already being deleting to avoid + recursion in callback functions. + (F__go_axes_init__): Flag error if handle is deleted during + initialization due. + + 2008-10-09 David Bateman + + * ov-class.cc (Octave_map octave_class::map_value (void) const): + Remove. + (bool octave_class::save_ascii (std::ostream&), + bool octave_class::load_ascii (std::istream&), + bool octave_class::save_binary (std::ostream&, bool&), + bool octave_class::save_binary (std::ostream&, bool&), + bool octave_class::save_hdf5 (hid_t, const char *, bool), + bool octave_class::load_hdf5 (hid_t, const char *, bool)): + Allow saving and reloading of classes. + * ov-class. (Octave_map octave_class::map_value (void) const): + Remove. + * ls-mat.cc (std::string read_mat5_binary_element (std::istream&, + const std::string&, bool, bool&, octave_value&), + int save_mat5_element_length (const octave_value&, const std::string&, + bool, bool)): Allow saving and loading of classes. + * ls-oct-ascii.h (template bool extract_keyword + (std::istream&, const char *, T&, const bool)): Initialize value with + null constructor rather than 0. + + 2008-10-07 David Bateman + + * graphics.cc (F__go_delete__): Allow arrays of graphic handles. + + 2008-10-01 Jaroslav Hajek + + * OPERATORS/op-i64-i64.cc: Instantiate all 64-bit operations. + * OPERATORS/op-ui64-ui64.cc: Instantiate all unsigned 64-bit operations. + + 2008-10-06 John W. Eaton + + * ov-type-conv.h (octave_type_conv_body): Avoid shadow warning + from GCC. + + 2008-10-06 David Bateman + + * graphics.cc (static bool is_handle (const octave_value&)): Delete. + (static octave_value is_handle (const octave_value&)): New function. + + 2008-10-03 Jaroslav Hajek + + * Cell.cc (Cell::delete_elements): Don't pass second arg to + Array::maybe_delete_elements. + * ov-base-mat.cc (octave_base_matrix::delete_elements): Ditto. + + 2008-10-02 Jaroslav Hajek + + * Cell.h (Cell::delete_elements): Declare new member function. + * Cell.h (Cell::delete_elements): Define it. + * oct-map.cc (Octave_map::maybe_delete_elements): Call delete_elements + instead of assign with empty Cell. + + 2008-10-02 John W. Eaton + + * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): + Don't insert undefined elements in return list. + + 2008-09-30 Jaroslav Hajek + + * ov-str-mat.h (octave-char-matrix-str::assign): Remove declaration. + * ov-str-mat.cc (octave-char-matrix-str::assign): Remove definition. + + 2008-09-30 John W. Eaton + + * DLD-FUNCTIONS/__magick_read__.cc: Only define + magick_to_octave_value if HAVE_MAGICK is defined. + + 2008-09-29 John W. Eaton + + * symtab.cc (symbol_table::fcn_info::fcn_info_rep::load_class_method): + Call load_class_constructor if name and dispatch_type are the same. + + 2008-09-29 David Bateman + + * symtab.cc (octave_value symbol_table::find_function + (const std::string&, tree_argument_list *, const string_vector&, + octave_value_list&, bool&)): If first character of function name + is "@" then look for class specific method. + + 2008-09-26 John W. Eaton + + * symtab.cc (out_of_date_check_internal): + Fix order of arguments in call to load_path::find_method. + + 2008-09-26 David Bateman + + * ov-class.h (idx_vector index_vector (void) const): Declare new + maethod. + * ov-class.cc (idx_vector index_vector (void) const): Define new + method. + * (Fismethod): New function. + + 2008-09-26 John W. Eaton + + * DLD-FUNCTIONS/urlwrite.cc (urlwrite_cleanup_file) New function. + (urlwrite_delete_file, urlwrite_filename): New static variables. + (Furlwrite): Only return filename if urlget succeeds. Use + unwind_protect to delete files we create if download fails. + + 2008-09-26 Jaroslav Hajek + + * ov-null-mat.h: New header file. + * ov-null-mat.cc: New source. + * ov.h (octave_value::is_null_value, octave_value::non_null_value, + octave_value::make_non_null_value): + Declare new member functions. + * ov.cc (octave_value:non_null_value, octave_value::make_non_null_value): + Define them. + (octave_value::assign (assign_op op, const octave_value& rhs)): + (register_types): Register null types. + Call non_null_value (). + * oct-obj.cc (octave_value_list::normalize_null_values): New member + function. + * oct-obj.h (octave_value_list::normalize_null_values): Declare it. + * ov-base.h (is_null_value): New virtual member function. + * ops.h (NULLASSIGNOPDECL, DEFNULLASSIGNOP_FN): New macros. + * ov-base-mat.cc (octave_base_mat::delete_elements): New member func. + * ov-base-mat.h: Declare it. + * ov-base-sparse.cc (octave_base_sparse::delete_elements): New member func. + * ov-base-sparse.h: Declare it. + * ov-cell.cc (octave_cell:subsasgn): Handle null values. + * ov-struct.cc (octave_cell:subsasgn): Handle null values. + * ov-builtin.cc (octave_builtin::do_multi_index_op): Normalize return + values. + * pt-misc.cc (tree_parameter_list::define_from_arg_vector): Call + octave_lvalue::define instead of octave_lvalue::assign. + * pt-decl.h (tree_decl_elt::rvalue): Call non_null_value (). + * OPERATORS/op-int.h (OCTAVE_INT_NULL_ASSIGN_OPS, + OCTAVE_INSTALL_INT_NULL_ASSIGN_OPS): New macros. + * OPERATORS/op-m-m.cc: Install & define assignment & conversion operators. + * OPERATORS/op-bm-bm.cc: Ditto. + * OPERATORS/op-cell.cc: Ditto. + * OPERATORS/op-cm-cm.cc: Ditto. + * OPERATORS/op-cs-cs.cc: Ditto. + * OPERATORS/op-fcm-fcm.cc: Ditto. + * OPERATORS/op-fcs-fcs.cc: Ditto. + * OPERATORS/op-fm-fm.cc: Ditto. + * OPERATORS/op-fs-fs.cc: Ditto. + * OPERATORS/op-int.h: Ditto. + * OPERATORS/op-m-m.cc: Ditto. + * OPERATORS/op-range.cc: Ditto. + * OPERATORS/op-s-s.cc: Ditto. + * OPERATORS/op-scm-scm.cc: Ditto. + * OPERATORS/op-sm-sm.cc: Ditto. + * OPERATORS/op-str-str.cc: Ditto. + * OPERATORS/op-i16-i16.cc: Ditto. + * OPERATORS/op-i32-i32.cc: Ditto. + * OPERATORS/op-i64-i64.cc: Ditto. + * OPERATORS/op-i8-i8.cc: Ditto. + * OPERATORS/op-ui16-ui16.cc: Ditto. + * OPERATORS/op-ui32-ui32.cc: Ditto. + * OPERATORS/op-ui64-ui64.cc: Ditto. + * OPERATORS/op-ui8-ui8.cc: Ditto. + + 2008-09-25 David Bateman + + * pt-mat.cc (class tm_row_const): Add any_class test + (class tm_const): Ditto. + (octave_value tree_matrix::rvalue (void)): If any object to + concatenate is a class object, dispatch to the appropriate + vertcat/horzcat function. + + 2008-09-25 John W. Eaton + + * symtab.cc (symbol_table::do_find): Don't set evaluated_args and + args_evaluated here, prior to call to symbol_table::fcn_info::find. + + 2008-09-24 Sᅵren Hauberg + + * DLD-FUNCTIONS/__magick_read__.cc (magick_to_octave_value): New + template function with specializations for various + GraphicsMagick++ types. + (F__magick_finfo__): New function. + + 2008-09-24 John W. Eaton + + * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): + Add symbol_table::clear_variables cleanup function to the + unwind_protect stack after the parameter list cleanup functions. + + * load-path.cc (load_path::do_initialize): Check for OCTAVE_PATH + in the environment, not OCTAVE_LOADPATH. + + 2008-09-24 Thomas Weber + + * DLD-FUNCTIONS/regexp.cc (octregexp_list): Retry if match limit + is exceeded. + + 2008-09-24 John W. Eaton + + * genprops.awk (emit_declarations): Emit call to set_mode before + updaters. + + 2008-09-23 John W. Eaton + + * pt-arg-list.cc (F__end__): Dispatch to user-defined end + function for classes if one is defined. + * lex.l (is_keyword_token): Allow "end" as a functon name. + + 2008-09-23 David Bateman + + * variables.cc (static octave_value do_who (int, const string_vector&, + bool, bool, std::string): Add final message argument and simple + treatment of the "-file" option. + + 2008-09-22 David Bateman + + * debug.cc (static octave_user_code * get_user_code + (const std::string&)): Only check user code as break points can't + be set in builtins or oct-files. + (bp_table::intmap bp_table::do_remove_all_breakpoints_in_file + (const std::string&, bool)): Add flag to silence the error message + from this function if a user code with breakpoints is not found. + (bp_table::fname_line_map bp_table::do_get_breakpoint_list (const + octave_value_list&)): Do an ourt of date check on the function + before checking the breakpoints. + * debug.h (do_remove_all_breakpoints_in_file, + remove_all_breakpoints_in_file): Add flag to silence error + message. + * symtab.cc (out_of_date_check_internal): Clear breakpoints in + function if out_of_date. split into two versions taking the + octave_function pointer seperately or not. + * symtab.h (bool out_of_date_check (octave_function*)): New function. + + 2008-09-18 David Bateman + + * DLD-FUNCTIONS/fftw.cc (Ffftw): Clarify the documentation. + + 2008-09-17 Krzesimir Nowak + + * debug.cc (Fisdebugmode): New function. + + 2008-09-17 David Bateman + + * data.cc (do_cat): Chopping trailing singleton dimensions. + + * data.cc (SINGLE_TYPE_CONCAT, DO_SINGLE_TYPE_CONCAT): New macros + (do_cat): Special case single type concatenations for speed. + * pt.mat.cc (std::string get_concat_class (const std::string&, + const std::string&), void maybe_warn_string_concat (bool, bool)): + Remove static declaration. + * pt-mat.h (std::string get_concat_class (const std::string&, + const std::string&), void maybe_warn_string_concat (bool, bool)): + Define extern here. + + * DLD-FUNCTIONS/sparse.cc (Fsparse): Clarify the help string. + + 2008-09-10 John W. Eaton + + * octave.cc (octave_main): Make all command-line arguments + available to startup scripts and PKG_ADD files. + + 2008-09-09 David Bateman + + * DLD-FUNCTIONS/regexp.cc (octregexp_list): Distinguish between + matlab named tokens and perl lookbehind expressions. For + lookbehind expression replace "*" and "+" with a limited number of + fixed length expressions to simulate arbitrary length look behind. + + 2008-09-08 Michael Goffioul + + * DLD-FUNCTIONS/__magick_read__.cc (encode_uint_image): Resolve "pow" + ambiguity. + + * graphics.cc (base_properties::get_dynamic, + base_properties::set_dynamic, base_propertyes::get_property_dynamic): + Add the 3rd template parameter to std::map, corresponding to all_props + field. + + 2008-09-08 John W. Eaton + + * ls-oct-ascii.cc (std::string extract_keyword (std::istream&, + const char *, const bool)): Also accept \r as line ending character. + * ls-oct-ascii.h (template bool extract_keyword + (std::istream&, const char *, T&, const bool)): Likewise. + (template bool extract_keyword (std::istream&, const + string_vector&, std::string&, T&, const bool)): Likewise. + + 2008-09-03 Ben Abbott + + * mappers.cc: Use eps(single) as tolerance for single precesion test. + + 2008-09-03 John W. Eaton + + * variables.cc (mlock): Lock current function on the call stack. + (Fmlock): Lock caller. + + * symtab.cc (out_of_date_check_internal): If dispatch type is set, + check for method. If that fails, check for regular function. + + 2008-09-02 Michael Goffioul + + * graphics.cc (hggroup::update_axis_limits): Also reacts on + [xyzac]liminclude changes. + + 2008-08-31 Michael Goffioul + + * DLD-FUNCTIONS/fltk_backend.cc (fltk_backend::redraw_figure, + fltk_backend::print_figure): Change graphics_handle argument to + graphics_object. + + 2008-08-29 David Bateman + + * graphics.cc: Replace int by octave_idx_type in multiple + places. + (array_property::is_equal): In macro CHECK_ARRAY_EQUAL, special + case scalar case and keep copy of array value to avoid early + destruction of converted array values. + + 2008-08-28 David Bateman + + * graphics.h.in (root_figure::properties::showhiddenhandles): + New property. + + 2008-08-27 Jaroslav Hajek + + * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Initialize output vectors + by NA value. + + 2008-08-26 Ben Abbott + + * mappers.cc: Adjust tolerance for single precesion tests. + + * DLD-FUNCTIONS/chol.cc: Double tolerance. + + 2008-08-26 Jaroslav Hajek + + * parse.y (Fassignin): Use default scope when calling varref. + + 2008-08-26 Michael Goffioul + + * genprops.awk (emit_declarations): Call updaters/listeners only when + 'set' method returned true. + * graphics.h.in (base_property::set, base_property::do_set): + Return bool value. + (property::set): Likewise. + (string_property::do_set): Check value change and return bool value. + (radio_property::do_set, double_property::do_set, + array_property::do_set): Likewise. + (color_property::do_set, double_radio_property::do_set, + row_vector_property::do_set, bool_property::do_set, + handle_property::do_set): Return bool value. + (any_property::do_set, callback_property::do_set): Return always true. + (color_values::operator==, color_values::operator!=): Add. + (array_property::is_equal): Add. + * graphics.cc (base_property::set): Executes listeners/notifiers only + when do_set returns true. Return bool value. + (color_property::do_set, double_radio_property::do_set): Check value + change and return bool value. + (array_property::is_equal): Add. + + * genprops.awk (emit_declarations, emit_source): Change code emission + when emitting base_properties code (base is 1). + (BEGIN): Initialize pcount to 0. + (BEGIN_PROPERTIES): Initialize base to 0. + (BEGIN_BASE_PROPERTIES): New statement. + (main): Add support for 'f' modifier. Add support for non xxx_property + typed properties. + * graphics.h.in (base_properties::base_properties): Remove + implementation. + (base_properties::get_tag, base_properties::get_parent, + base_properties::get_type, base_properties::get___myhandle__, + base_properties::get_busyaction, base_properties::get_buttondownfcn, + base_properties::is_clipping, base_properties::get_clipping, + base_properties::execute_createfcn, base_properties::get_createfcn, + base_properties::execute_deletefcn, base_properties::get_deletefcn, + base_properties::get_handlevisibility, base_properties::is_hittest, + base_properties::get_hittest, base_properties::is_interruptible, + base_properties::get_interruptible, base_properties::is_selected, + base_properties::get_selected, base_properties::is_selectionhighlight, + base_properties::get_selectionhighlight, + base_properties::get_uicontextmenu, base_properties::get_userdata, + base_properties::is_visible, base_properties::get_visible, + base_properties::is_beingdeleted, base_properties::get_beingdeleted, + base_properties::set_busyaction, base_properties::set_buttondownfcn, + base_properties::set_clipping, base_properties::set_createfcn, + base_properties::set_deletefcn, base_properties::set_handlevisibility, + base_properties::set_hittest, base_properties::set_interruptible, + base_properties::set_selected, + base_properties::set_selectionhighlight, + base_properties::set_uicontextmenu, base_properties::set_userdata, + base_properties::set_visible, base_properties::set_beingdeleted, + base_properties::get_children): Remove (now auto-generated). + (base_properties::enum): Likewise. + (base_properties::is_modified): Call is___modified__. + (base_properties::set_modified): Call set___modified__. + (base_properties::set_children): Add. + (base_properties::set_dynamic, base_properties::get_dynamic, + base_properties::get_property_dynamic): New methods. + (class base_properties): Surround properties declaration with + BEGIN_BASE_PROPERTIES/END_PROPERTIES pair. + * graphics.cc (base_properties::get, base_properties::set, + base_properties::get_property): Remove (now auto-generated). + (base_properties::set_dynamic, base_properties::get_dynamic, + base_properties::get_property_dynamic): New methods. + (base_properties::set_children): Likewise. + + * DLD_FUNCTIONS/fltk_backend.cc (F__fltk_redraw__): Make static. + (F__init_fltk__): Protect from mutliple invocations. + (F__remove_fltk__): Likewise. + (F__init_fltk__): Register input event hook. + (F__remove_fltk__): Unregister input event hook. + + * DLD_FUNCTIONS/fltk_backend.cc (fltk_backend::close_figure): Remove. + (fltk_backend::object_destroyed, fltk_backend::property_changed): New + methods. + * genprops.awk (emit_declarations): Generate "enum" property fields. + (emit_sources): Emit set_id calls. + * graphics.h.in (base_property::id): New field. + (base_property::base_property): Initialize it. + (base_property::get_id, base_property::set_id): Add accessors. + (property::get_id, property::set_id): Likewise. + (base_graphics_backend::close_figure, graphics_backend::close_figure): + Remove methods. + (base_graphics_backend::redraw_figure, + base_graphics_backend::print_figure, graphics_backend::redraw_figure, + graphics_backend::print_figure): Change graphics_handle argument into + graphics_object. + (base_graphics_backend::property_changed, + base_graphics_backend::object_created, + base_graphics_backend::object_destroyed, + graphics_backend::property_changed, graphics_backend::object_created, + graphics_backend::object_destroyed): New signature with + graphics_object argument. + (base_properties::base_properties): Add set_id calls. + (class base_properties): Add "enum" property fields. + (root_figure::properties::remove_child): Add overloaded method. + (figure::properties::close): Remove. + (figure::properties::set_backend): Call object_destroyed instead of + close. + (figure::~figure): Remove close call. + (figure::properties::get_title): New method. + * graphics.cc (base_property::set): Call property_changed only for + valid id (>=0); Use graphics_object argument. + (gh_manager::do_free): Call object_destroyed with graphics_object + argument. + (base_graphics_backend::property_changed, + base_graphics_backend::object_created, + base_graphics_object::object_destroyed): Implement wrappers for + graphics_handle argument case. + (gnuplot_backend::close_figure): Remove. + (gnuplot_backend::object_destroyed, + gnuplot_backend::property_changed): New methods. + (gnuplot_backend::redraw_figure, gnuplot_backend::print_figure): + Change graphics_handle argument to graphics_object. + (root_figure::properties::remove_child): Add. + (figure::properties::close): Remove. + (figure::properties::set_position): Do not call set_figure_position. + (figure::properties::get_title): New method. + (gh_manager::do_make_graphics_handle): Call object_created with + a graphics_object argument. + (gh_manager::do_make_figure_handle): Likewise. + (Fdrawnow): Call redraw_figure and print_figure with a graphics_object + argument. + + 2008-08-26 Maciek Gajewski + + * graphics.h.in (base_property::set): Remove inline implementation. + (base_graphics_backend::property_changed, + base_graphics_backend::object_created, + base_graphics_backend::object_destroyed): New method. + (graphics_backend::property_changed, graphics_backend::object_created, + graphics_backend::object_destroyed): Likewise. + * graphics.cc (base_property::set): Moved from header file. + (gh_manager::do_free): Add backend notification. + (gh_manager::do_make_graphics_handle): Likewise. + (gh_manager::do_make_figure_handle): Likewise. + + 2008-08-25 Thomas L. Scofield + + * DLD-FUNCTIONS/__magick_read__.cc: Untabify. + (jpg_settings, encode_bool_image, encode_uint_image, encode_map): + New functions. + (write_image): Use them to handle various image types. + + 2008-08-25 David Bateman + + * graphics.cc (void gh_manager::do_execute_callback + (const graphics_handle&, const octave_value&, const + octave_value&)): Don't pass the function handle as first arg of + property listener functions + + * graphics.h.in (class base_properties): Add functor for caseless + string comparison. Use it in the property map, so that user added + properties are found in a case insensitive fashion. + + 2008-08-22 John W. Eaton + + * symtab.h (symbol_table::inherit): Pass reference to symbol table + to do_inherit instead of scope. + (symbol_table::do_inherit): First arg is now reference to + symbol_table, not scope id. Insert all variables from donor scope. + + 2008-08-21 Thomas Treichl + + * mappers.cc: Increase test script tolerance. + + 2008-08-20 John W. Eaton + + * help.cc (builtin_help): Go to next symbol name on error. + (do_type, do_which): Omit separate path search for files. + (help_from_symbol_table): Only insert Texinfo markup if it looks + like the help message is already in Texinfo. + + 2008-08-19 David Bateman + + * load-path.cc (load-path::do_find_dir (const std:string&) const)): + Method to find a directory on the load-path corresponding to the + argument. + * load-path.h (load-path::do_find_dir (const std:string&) const), + load-path::find_dir (const std::string&) const): New methods. + * utils.cc (std::string contents_file_in_path (const std::string&)): + New function. + * utils.h (std::string contents_file_in_path (const std::string&)): + Declare it. + * help.cc (static bool raw_help_from_file (const std::string&, + std::string&, std::string&, bool&)): Also check is requested + argument is a directory and contains the file Contents.m. + + * OPERATORS/op-int-conv.cc (DEFINTCONVFN): New macro that warn + for integer conversion issues. Use it to replace DEFCONVFN. + * OPERATORS/op-int.h (DEFINTBINOP_OP, DEFINTNDBINOP_OP, + DEFINTBINOP_FN, DEFINTNDBINOP_FN): New macros that warn for + integer truncation issues. Use them to replace the corresponding + macros in the integer arithmetic macros. Update other integer + arithmetic functions that don't use these macros individually. + * error.cc (initialize_default_warning_state (void)): Initialize + the default warning state for the integer warnings to be off. + * gripes.cc (void gripe_binop_integer_math_truncated (const char *, + const char *, const char *), void gripe_unop_integer_math_truncated + (const char *, const char *), void gripe_non_integer_conversion + (const char *, const char *), void gripe_nan_conversion (const char *, + const char *)): Warning functions for integer conversion and math + issues. + * gripes.h (void gripe_binop_integer_math_truncated (const char *, + const char *, const char *), void gripe_unop_integer_math_truncated + (const char *, const char *), void gripe_non_integer_conversion + (const char *, const char *), void gripe_nan_conversion (const char *, + const char *)): Declare them. + * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::convert_gripe, + OCTAVE_VALUE_INT_SCALAR_T::convert_gripe): Adapt for new means of + flagging integer truncation. + (OCTAVE_VALUE_INT_MATRIX_T::decrement, + OCTAVE_VALUE_INT_MATRIX_T::increment, + OCTAVE_VALUE_INT_SCALAR_T::decrement, + OCTAVE_VALUE_INT_SCALAR_T::increment): Check for integer + truncation. + * ov.cc (convert_to_int_array): Adapt for new means of + flagging integer truncation. + + 2008-08-19 Jaroslav Hajek + + * pt-assign.h (tree_simple_assignment::first_execution): New + member field. + (tree_simple_assignment::first_execution): Ditto. + * pt-assign.cc (tree_simple_assignment::tree_simple_assignment): + Initialize first_execution. + (tree_multi_assignment::tree_multi_assignment): Ditto. + (tree_simple_assignment::rvalue): Check for obsolete built-in + variables only at first execution. + (tree_multi_assignment::rvalue): Ditto. + + * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Checks whether LB and UB are + of proper size. + + * oct-obj.cc, oct-obj.h (octave_value_list::make_argv): + Allow calling without fcn_name. + * load-save.cc (parse_save_options (const string_vector&, ...)): + Return string_vector with parsed arguments removed instead. + (parse_save_options (const std::string&, ...)): Ditto. + (Fsave): Fix calls to parse_save_options. + + 2008-08-19 John W. Eaton + + * parse.y (Feval): Return value produced by evaluating CATCH string. + + 2008-08-12 John W. Eaton + + * pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue): + Call stash_parent_function_scope for user function. + * ov-fcn-inline.cc (octave_fcn_inline::octave_fcn_inline): + Likewise. + + * ov-struct.cc (octave_struct::subsref): Don't allow resizing for + simple x(idx) case. + + 2008-08-07 John W. Eaton + + * ov.cc (octave_value::idx_type_value): Don't include default + argument values in definition. + + * glrender.h, zfstream.h: Don't include config.h. + + * oct-errno.h: Include . + + * Cell.cc, DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/dlmread.cc, + debug.cc, error.cc, file-io.cc, graphics.cc, help.cc, input.cc, + lex.l, load-path.cc, load-save.cc, ls-mat-ascii.cc, + ls-oct-ascii.cc, oct-stream.cc, octave.cc, variables.cc, + ov-fcn-handle.cc, parse.y, pr-output.cc, symtab.cc, sysdep.cc, + utils.cc, graphics.h.in: Replace all uses of NPOS with + std::string::npos. + + * ov.cc (octave_value::idx_type_value): Move definition here. + * ov.h: From here. + + * DLD-FUNCTIONS/fsolve.cc (override_options): Don't fail if + options_map does not contain an expected keyword. + Fix typo in warning identifier. + (make_unimplemented_options): Use CamelCase names here. + + 2008-08-06 Sᅵren Hauberg + + * error.cc (Ferror): Update format of error messages in exmple. + * parse.y: (Feval): Likewise. + + 2008-08-06 John W. Eaton + + * DLD-FUNCTIONS/fsolve.cc (hybrd_info_to_fsolve_info): + Update INFO values to be compatible with Matlab's current fsolve. + (make_unimplemented_options, override_options): New functions. + (Ffsolve): Handle optimset options. Update doc string. + + * ov-usr-fcn.cc (octave_user_function::do_multi_index_op, + octave_user_script::do_multi_index_op): + Call octave_call_stack::backtrace_error_message. + * toplev.h (octave_call_stack::do_pop): Don't call + backtrace_error_message here. + * toplev.cc, toplev.h (octave_call_stack::do_backtrace_error_message): + Rename from octave_call_stack::backtrace_error_message. + * toplev.h (octave_call_stack::backtrace_error_message): + New public static function. + + 2008-08-05 John W. Eaton + + * gripes.cc (gripe_truncated_conversion, + gripe_logical_conversion): Don't declare as extern here. + * utils.cc (octave_format, octave_vformat): Likewise. + * pr-output.cc (octave_print_internal (std::ostream&, const Cell&, + bool, int, bool)): Likewise. + + * toplev.cc (octave_call_stack::backtrace_error_message): New + function. + * toplev.h: Provide decl. + (octave_call_stack::do_pop): Call backtrace_error_message if + error_state is nonzero. + + * pt-unop.cc (tree_prefix_expression::eval_error, + tree_postfix_expression::eval_error): Delete. Eliminate all uses. + * pt-unop.h: Delete decls. + + * pt-select.cc (tree_switch_case::eval_error, + tree_switch_command::eval_error): Delete. Eliminate all uses. + (tree_if_command::eval): Omit "evaluating if command" message. + * pt-select.h: Delete decls. + + * pt-loop.cc (tree_while_command::eval_error, + tree_complex_for_command::eval_error, + tree_simple_for_command::eval_error, + tree_do_until_command::eval_error): Delete. Eliminate all uses. + * pt-loop.h: Delete decls. + + * pt-exp.cc (tree_expression::is_logically_true): Omit "evaluating + conditional expression" error message. + + * pt-decl.cc (tree_global_command::eval): Omit "evaluating global + command" error message. + (tree_static_command::eval): Omit "evaluating static command" + error message. + + * pt-colon.cc (tree_colon_expression::eval_error): Omit + "evaluating colon expression" error message. + * pt-colon.h (tree_colon_expression::eval_error): Eliminate + default argument value. + + * pt-idx.cc (tree_index_expression::eval_error): Delete. + Eliminate all uses. + * pt-idx.h: Delete decl. + + * pt-binop.cc (tree_binary_expression::eval_error): Delete. + * pt-binop.cc, pt-cbinop.cc: Eliminate all uses of eval_error. + * pt-binop.h: Delete decl. + + * pt-assign.cc (tree_simple_assignment::eval_error, + tree_multi_assignment::eval_error): Delete. Eliminate all uses. + * pt-assign.h: Delete decls. + + * ov-usr-fcn.cc (octave_user_script::traceback_error, + octave_user_function::traceback_error): Delete. Eliminate all uses. + * ov-usr-fcn.h: Delete decls. + + * ov-builtin.cc (octave_builtin::do_multi_index_op): Call + gripe_library_exectuion_error on octave_execution_exception. + * ov-mex-fcn.cc (octave_mex_function::do_multi_index_op): Likewise. + * ov.cc (do_binary_op, do_cat_op, do_unary_op, + do_non_const_unary_op): Likewise. + * pt-stmt.cc (tree_statement::eval): Likewise. + + * gripes.cc (gripe_library_execution_error): New function. + * gripes.h: Provide decl. + + * dirfns.cc (Fpathsep): Fix usage of dir_path::path_sep_str. + * defaults.cc (set_exec_path, set_image_path): Likewise. + * load-path.h (load_path::set_command_line_path): Likewise. + * load-path.cc (maybe_add_path_elts, load_path::do_initialize, + load_path::do_path, genpath, Fpath): Likewise. + (split_path): Fix usage of dir_path::path_sep_char. + + 2008-08-04 John W. Eaton + + * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find_autoload): + Fix usage of file_ops::dir_sep_chars. + * variables.cc (looks_like_struct): + Likewise. + * ov-fcn-handle.cc (octave_fcn_handle::set_fcn): Likewise. + * octave.cc (execute_command_line_file): Likewise. + * ls-mat5.cc (read_mat5_binary_element): Likewise. + * load-save.cc (find_file_to_load): Likewise. + * load-path.cc (load_path::do_find_file): Likewise. + * graphics.cc (drawnow): Likewise. + * parse.y (frob_function): Likewise. + + * octave.cc (initialize_pathsearch): Fix usage of + file_ops::dir_sep_str. + * help.cc (Flookfor): Likewise. + * dirfns.cc (Ffilesep): Likewise. + (Fautoload): Likewise. + + * defaults.cc (subst_octave_home): Fix usage of + file_ops::dir_sep_char. + (Fmfilename): Likewise. + + 2008-07-31 John W. Eaton + + * parse.y (assign_lhs): Call force_local_variable on all elements + of lexer_flags.pending_local_variables here, then clear the set. + (matrix): Clear lexer_flags.pending_local_variable here. + * lex.l (lexical_feedback::init): Clear it. + (force_local_variable): No longer static. + (is_variable): Also return true for names in the + lexer_flags.pending_local_variables. + (handle_identifier): If we are parsing a matrix list, mark + identifiers as pending local variables rather than forcing them to + be local variables immediately. + * lex.h (lexical_feedback::pending_local_variables): New data member. + (force_local_variable): Provide decl. + + 2008-07-30 John W. Eaton + + * ov-intx.h, ov.cc: Style fixes. + + * gripes.cc (gripe_truncated_conversion): Use the warning ID + Octave:int-convert-overflow. + + 2008-07-30 Jaroslav Hajek + + * gripes.cc (gripe_truncated_conversion): New function. + * gripes.h (gripe_truncated_conversion): Declare it. + * ops.h (DEFCONVFNX2): New macro. + (DEFCONVFN, DEFCONVFN2): Call DEFCONVFNX2 instead of DEFCONVFNX. + * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::convert_gripe): New member + function. + (OCTAVE_VALUE_INT_MATRIX_T::int*_array_value): Call convert_gripe. + (OCTAVE_VALUE_INT_SCALAR_T::convert_gripe): New member function. + (OCTAVE_VALUE_INT_SCALAR_T::int*_scalar_value): Call convert_gripe. + (OCTAVE_VALUE_INT_SCALAR_T::int*_array_value): Call int*_scalar_value. + * ov.cc (convert_to_int_array): New function. + (int_vector_value): Call convert_to_int_array. + + 2008-07-30 John W. Eaton + + * defun-dld.h (DEFUNX_DLD): Eliminate fsname arg. + * defun-int.h (DEFINE_FUN_INSTALLER_FUN2, + DEFINE_FUN_INSTALLER_FUN3, DEFINE_FUNX_INSTALLER_FUN2): Delete. + (DEFINE_FUNX_INSTALLER_FUN): Rename from DEFINE_FUNX_INSTALLER_FUN3. + Don't emit fsname function. Don't append cxx_abi to gname. + (DEFINE_FUN_INSTALLER_FUN): Define in terms of + DEFINE_FUNX_INSTALLER_FUN, not DEFINE_FUN_INSTALLER_FUN2. + * dynamic-ld.cc (octave_dynamic_loader::name_mangler, + octave_dynamic_loader::name_uscore_mangler): New functions. + (octave_dynamic_loader::mangle_name, + octave_dynamic_loader::xmangle_name): Delete. + (octave_dynamic_loader::do_load_oct): Search for function with + name_mangler then name_uscore_mangler. + + * oct-stream.cc (do_read): New arg, do_NA_conv. + Perform NA translation if do_NA_conv is true. + (DO_READ_VAL_TEMPLATE, read_fptr): Include the new arg for do_read + in decl. + (octave_stream::read): Pass do_NA_conv to do_read. + + 2008-07-29 David Bateman + + * data.cc (FNA): Add tests for conversion of single to double NA + values. + + * ov-flt-re-mat.cc (Fsingle): Documentation fix. + + 2008-07-28 David Bateman + + * error.cc (last_error_id, last_error_message, last_warning_id, + last_warning_message): New functions to return the error/warning + message and id without exposing the internal values. + * error.h (last_error_id, last_error_message, last_warning_id, + last_warning_message): Declare them. + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Use them to pass the error + to the ErrorHandler function. + + 2008-07-28 John W. Eaton + + * error.cc (Flasterror, Flasterr): Unwind-protect error_state. + + * DLD-FUNCTIONS/__magick_read__.cc (F__magick_write__, write_image): + New functions. + + 2008-07-25 John W. Eaton + + * DLD-FUNCTIONS/det.cc (Fdet): Return calculated determinant for + numerically singular matrices, not 0. + + * symtab.cc (get_dispatch_type): New function. + (symbol_table::fcn_info::fcn_info_rep::find): Use it. + + * ov-class.cc (set_class_relationship): Delete static function. + (Fsuperiorto, Finferiorto): Warn about precedence conflicts. + Call symbol_table::set_class_relationship instead of local static + function. + * symtab.h (symbol_table::class_precedence_table): New data member. + (symbol_table::set_class_relationship, symbol_table::is_superiorto): + New static functions. + + 2008-07-24 John W. Eaton + + * load-path.h (load_path::dir_info::class_info): New struct. + (load_path::dir_info::method_file_map_type): Now a map from + class name to a to a class_info object. Change all uses. + * load-path.cc (load_path::dir_info::get_method_file_map): + Also look for private functions in the class directory. + (load_path::add_to_method_map): Also add private functions from + class directories to private_fcn_map. + + * dirfns.cc (Fmkdir): If directory already exists, return status = + true, but also set error message. + + 2008-07-23 John W. Eaton + + * ov-usr_fcn.cc (octave_user_function::do_multi_index_op): + Don't unwind_protect and set curr_parent_function here. + * toplev.cc (curr_parent_function): Delete definition. + * toplev.h: (curr_parent_function): Delete declaration. + + * ov-usr-fcn.h (octave_user_function::parent_scope): New data member. + (octave_user_function::parent_fcn_scope, + octave_user_function::stash_parent_fcn_scope): New functions. + * ov-usr_fcn.cc (octave_user_function::octave_user_function): + Initialize parent_scope. + * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find): + Check parent of current function by looking at call stack, not + global curr_parent_function variable. + * parse.y (frob_function): If parsing nested function, stash + current parent function scope. + * ov-fcn.h (octave_function::parent_fcn_scope): New virtual function. + + 2008-07-22 Michael Goffioul + + * graphics.cc (F__go_execute_callback__): New function. + + * DLD-FUNCTIONS/fltk_backend.cc: Undefine min/max after FLTK headers + inclusion. + + * graphics.h.in (class base_graphics_event, class graphics_event): New + classes (replace gh_manager::event_data). + (class gh_manager::event_data): Remove. + (gh_manager::post_function, gh_manager::do_post_function): Use + graphics_event::event_fcn type. + (gh_manager::event_queue, gh_manager::do_post_event): Use + graphics_event type. + * graphics.cc (class callback_event, class function_event, class + set_event): Renamed from xxx_data classes. + (graphics_event::create_callback_event, + graphics_event::create_function_event, + graphics_event::create_set_event): Renamed from gh_manager::xxx + equivalent methods, removed reference count increment. + (gh_manager::do_post_event): Likewise. + (gh_manager::do_post_event): Use graphics_event type. + (gh_manager::do_post_function): Use graphics_event::event_fcn type. + + 2008-07-22 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 3.1.51+. + + 2008-07-21 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 3.1.51. + (OCTAVE_RELEASE_DATE): Now 2008-07-21. + + * ov-class.cc (octave_class::subsasgn): Only do internal magic if + rhs is not an octave_class object. + + * OPERATORS/op-struct.cc: Define concatenation operators for + struct/matrix concatenation (valid if matrix is empty). + * OPERATORS/op-cell.cc (install_cell_ops): Likewise, for cells. + + * DLD-FUNCTIONS/fltk_backend.cc: Don't include oct.h. + Make compilation of entire file conditional on HAVE_FLTK. + + * gl-render.cc: Make compilation of entire file conditional on + HAVE_OPENGL. + + * Makefile.in (GL_RENDER_SRC, FLTK_BACKEND_SRC): Delete variables. + (DLD_XSRC): Always include fltk_backend.cc in the list. + (DIST_SRC): Always include gl-render.cc in the list. + + 2008-07-19 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 3.1.50+. + (OCTAVE_API_VERSION): Now api-v33+. + + 2008-07-18 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 3.1.50. + (OCTAVE_API_VERSION): Now api-v33. + (OCTAVE_RELEASE_DATE): Now 2008-07-18. + (OCTAVE_COPYRIGHT): Update date to 2008. + + 2008-07-18 John W. Eaton + + * Makefile.in (__magick_read__.df): New rule. + Append MAGICK_INCFLAGS to CPPFLAGS. + + * Makefile.in (EXTRAS): Add graphics-props.cc to the list. + List graphics-props.cc as a target generated by genprops.awk. + + 2008-07-18 Carlo de Falco + + * gl-render.h: Conditionally include GL/gl.h or OpenGL/gl.h + and GL/glu.h or OpenGL/glu.h + + 2008-07-17 John W. Eaton + + * symtab.cc (out_of_date_check_internal): New arg, dispatch_type. + Use it to handle class methods. + + * toplev.h (octave_call_stack::do_caller): New function. + (octave_call_stack::caller): Use it. + + 2008-07-17 Jaroslav Hajek + + * Makefile.in (convhulln.oct, __delaunayn__.oct, __voronoi__.oct, + regexp.oct, urlwrite.oct, __glpk__.oct, fltk_backend.oct): + Use OCT_LINK_DEPS instead of DL_LDFLAGS for target-specific + dependencies. + + 2008-07-17 David Bateman + + * DLD-FUNCTION/__magick_read__.cc (F__magick_read__): Allow build + without GraphicsMagick++ installed. + + 2008-07-16 John W. Eaton + + * graphics.h.in (gh_manager::autolock): Delete copy constructor + and assignment definitions. + + 2008-07-16 Michael Goffioul + + * graphics.h.in (callback_property::execute): Remove static version. + (base_properties::is_hittest, base_properties::is_interruptible, + base_properties::is_selected, base_properties::is_selectionhighlight): + New convenience property accessors. + (base_graphics_object::get_handle, graphics_object::get_handle): Idem. + (gh_manager::graphics_lock): New global mutex + (gh_manager::lock, gh_manager::unlock, gh_manager::do_lock, + gh_manager::do_unlock): Add accessors for it. + (gh_manager::autolock): New class for easy locking of the graphics + system. + (gh_manager::event_data): New class for event management. + (gh_manager::event_queue): New object to hold pending events. + (gh_manager::callback_objects): New stack of callback objects. + (gh_manager::execute_callback, gh_manager:post_callback, + gh_manager::post_function, gh_manager::post_set, + gh_manager::process_events, gh_manager::flush_events, + gh_manager::restore_gcbo): New static methods for event management. + (gh_manager::do_execute_callback, gh_manager::do_post_callback, + gh_manager::do_post_function, gh_manager::do_post_set, + gh_manager::do_process_events, gh_manager::do_post_event, + gh_manager::do_restore_gcbo): New non-static versions. + * graphics.cc (xreset_gcbo): Remove. + (execute_callback): Likewise. + (base_property::run_listeners, callback_property::execute): Use + gh_manager::execute_callback. + (class callback_event_data, class function_event_data, class + set_event_data): New classes to implement various types of events. + (gh_manager::event_data::create_callback_event, + gh_manager::event_data::create_function_event, + gh_manager::event_data::create_set_event): Implement event factory + methods. + (gh_manager::do_restore_gcbo, gh_manager::do_execute_callback, + gh_manager::do_post_event, gh_manager::do_post_callback, + gh_manager::do_post_function, gh_manager::do_post_set, + gh_manager::do_process_events): New methods for event management. + (Fishandle, Fset, Fget, F__get__, F__go_figure__, F__go_delete__, + F__go_axes_init__, F__go_handles__, F__go_figure_handles__, + Favailable_backends, Fdrawnow, Faddlistener, Faddproperty, + get_property_from_handle, set_property_in_handle): Lock graphics + system. + (GO_BODY): Likewise. + (Fdrawnow): Support single "expose" argument. + + 2008-07-15 John W. Eaton + + * DLD-FUNCTIONS/__convn__.cc (convn): Cast second arg to + octave_idx_type in call to std::max. + + 2008-07-14 John W. Eaton + + * Makefile.in (convhulln.oct, __delaunayn__.oct, __voronoi__.oct, + regexp.oct, urlwrite.oct, __glpk__.oct, fltk_backend.oct): + Simplify with target-specific settings for DL_LDFLAGS. + + * DLD-FUNCTIONS/__magick_read__.cc: Delete "using namespace std" + and "using namespace Magick" directives. Style fixes. + + * oct-conf.h.in (OCTAVE_CONF_MAGICK_INCFLAGS, + OCTAVE_CONF_MAGICK_LIBS): Substitute here. + * toplev.cc (octave_config_info): Include MAGICK_INCFLAGS and + MAGICK_LIBS in the struct. + * Makefile.in (DLD_XSRC): Add __magick_read__.cc to the list. + (OCTAVE_LIBS): Add $(MAGICK_LIBS) to the list for static linking case. + (__magick_read__.d, __magick_read__.o, pic/__magick_read__.o): + Append MAGICK_INCFLAGS to CPPFLAGS. + (__magick_read__.oct): Append MAGICK_LIBS to LDFLAGS. + + 2008-07-14 Thomas L. Scofield + + * DLD-FUNCTIONS/__magick_read__.cc: New file from Octave Forge. + + 2008-07-11 John W. Eaton + + * syscalls.cc (const_value): Delete arg NM. Change all uses. + + * DLD-FUNCTIONS/fft.cc (do_fft): Avoid GCC warning. + * DLD-FUNCTIONS/fft2.cc (do_fft2): Likewise. + * DLD-FUNCTIONS/fftn.cc (do_fftn): Likewise. + * DLD-FUNCTIONS/qr.cc (Fqrshift): Likewise. + * DLD-FUNCTIONS/lookup.cc (Flookup): Likewise. + * gl-render.cc (opengl_renderer::draw): Likewise. + * graphics.cc (axes::update_axis_limits, + hggroup::update_axis_limits, Favailable_backends): + Likewise. + * pt-cmd.cc (tree_no_op_command::dup, tree_function_def::dup): + Likewise. + * pt-const.cc (tree_constant::dup): Likewise. + * pt-id.cc (tree_identifier::dup): Likewise. + * pt-jump.cc (tree_break_command::dup, tree_continue_command::dup, + tree_return_command::dup): Likewise. + + * DLD-FUNCTIONS/colamd.cc: Style fixes. + (tree_postorder): Rename from TreePostorder. + (tree_postorder, coletree): Avoid GCC warnings. + + * DLD-FUNCTIONS/chol.cc (Fchol): Avoid GCC warnings. + (Fcholdelete, Fcholshift): Delete unused arg nargout. + + * toplev.cc, toplev.h (octave_call_stack::caller_user_function, + octave_call_stack::caller_user_script, + octave_call_stack::do_caller_user_function, + octave_call_stack::do_caller_user_script): + Delete functions and decls. + + * defun.cc (print_usage): Call octave_call_stack::caller_user_code, + not octave_call_stack::caller_user_function. + * debug.cc (get_user_code): Likewise. + + * toplev.h (octave_call_stack::difference_type): Delete typedef. + * toplev.cc, toplev.h (octave_call_stack::caller_user_code_line, + octave_call_stack::do_caller_user_code_line, + octave_call_stack::caller_user_code_column, + octave_call_stack::do_caller_user_code_column, + octave_call_stack::caller_script, + octave_call_stack::do_caller_script, + octave_call_stack::caller_user_function, + octave_call_stack::do_caller_user_function, + octave_call_stack::caller_user_code, + octave_call_stack::do_caller_user_code): + Delete unused difference_type arg. + + * ov-float.h, ov-flt-re-mat.cc, ov-range.h, ov-re-mat.h, + ov-re-sparse.cc, ov-scalar.h: Check for NaN in bool_value and + bool_array_value member functions to bool. + + * ops.h (DEFSCALARBOOLOP_OP): New macro. + * OPERATORS/op-s-s.cc, OPERATORS/op-fs-fs.cc: Use it to define + el_and and el_or ops. + + 2008-07-10 David Bateman + + * DLD-FUNCTIONS/lookup.cc (assign): Delete. + (Flookup): Use new NDArray constructors rather than assign. + * data.cc (Fsort): Use new NDArray constructors rather than + directly assigning. + * besselj.cc (int_array2_to_matrix, int_arrayn_to_array, + int_array2_to_float_matrix, int_arrayn_to_float_array): Delete. + (do-bessel): Use new NDArray constructors. + * max.cc (MINMAX_SPARSE_BODY, MINMAX_INT_BODY, MINMAX_SINGLE_BODY, + MINMAX_DOUBLE_BODY): Use new NDArray constructors. + * ov-bool.h (array_value, float_array_value): Explictly cast + boolean scalar to double before the assignment to avoid ambiguity. + + 2008-07-10 David Bateman + + * ls-mat4.cc (read_mat_binary_data, save_mat_binary_data): Add + loading and saving of sparse matrices. + + 2008-07-10 Michael Goffioul + + * Makefile.in: Add OPENGL_LIBS to liboctinterp link command. Add + GRAPHICS_CFLAGS to fltk_backend.cc compilation command. + * data.cc: Define hypotf to _hypotf when not present. + * gl-render.h: Replace OCTGRAPHICS_API with OCTINTERP_API. + * gl-render.cc: Get rid of Array2. + * OPERATORS/op-int.h: Use powf instead of pow when invoked + with float arguments. + + 2008-07-09 John W. Eaton + + * input.cc (get_debug_input): Don't delete global_command here. + * toplev.cc (main_loop): Undo previous change. + + * toplev.h (octave_call_stack::instance_ok): Push top scope when + creating instance. + + * DLD-FUNCTIONS/inv.cc (Finv): Avoid GCC warning. + + * DLD-FUNCTIONS/expm.cc (Fexpm): Avoid GCC warning. + + * ov-fcn-inline.cc (octave_fcn_inline::load_ascii): Avoid GCC warning. + + 2008-07-09 Michael Goffioul + + * gl-render.cc (opengl_renderer::draw(figure)): Enable line smoothing + according to __enhanced__ property. + (opengl_renderer::draw_marker): Only draw markers with valid call + lists ID. + (opengl_renderer::make_marker_list): Do not produce filled marker call + list for non-fillable markers. + (opengl_renderer::draw(axes)): Do not antialias axes system. + + * gl-render.cc (opengl_renderer::set_polygon_offset): Also enable + polygon offseting in GL_LINE mode. + (opengl_renderer::draw_marker): Offset markers foward instead of + backward (to draw them above lines). + + * Makefile.in: new substituted variables GL_RENDER_SRC and + FLTK_BACKEND_SRC. + + * gl-render.cc (vertex_data::vertex_data_rep::vertex_data(void), + vertex_data::vertex_data(void), vertex_data::vertex_data(...)): + initialize reference counting correctly. + + 2008-07-09 John W. Eaton + + * toplev.cc (main_loop): Unwind-protect global_command. + * input.cc (get_debug_input): Likewise. + + 2008-07-09 David Bateman + + * pt-id.cc (octave_value_list tree_identifier::rvalue (int), + octave_lvalue tree_identifier::lvalue (void)): Remove + MAYBE_DO_BREAKPOINT. + + 2008-07-08 John W. Eaton + + * graphics.h.in (axes::properties::keypos): Declare as + any_property instead of double_property. + + 2008-06-28 John W. Eaton + + * debug.cc (push_dummy_call_stack_elt): Delete. + (Fdbstack): Don't push dummy stack elt. Use nskip instead of + nframes, and curr_frame instead of idx. Pass curr_frame to + octave_call_stack::backtrace. + + * ls-mat5.cc (read_mat5_binary_element): Explicitly pass 0 for + current_context in call to symbol_table::varref. + * ov-fcn-handle.cc (octave_fcn_handle::load_ascii): Likewise. + Fix test. + + * mex.cc (mexGetVariable, mexPutVariable): Use octave_call_stack + methods to manipulate scope and context. + * parse.y (source_file, Fassignin, Fevalin): Likewise. + + * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): + Call octave_call_stack::push after call to symbol_table::push_scope. + Call unwind_protect::add with octave_call_stack::unwind_pop + immediately after call to octave_call_stack::push. + + * symtab.cc (symbol_table::xcurrent_caller_scope): Delete definition. + * symtab.h (symbol_table::xcurrent_caller_scope): Delete decl. + Delete all uses. + (xcurrent_context_this_table): Delete. Delete all uses. + (symbol_table::current_caller_scope): Delete. + + * toplev.cc (octave_call_stack::do_num_user_code_frames): + New function. + (octave_call_stack::do_backtrace): New arg, curr_user_frame. + Rename nframes arg to nskip. Correctly handle curr_frame not at + end of stack. + (octave_call_stack::do_goto_frame_relative): Rename n arg to nskip. + Correctly handle curr_frame not at end of stack. + (octave_call_stack::do_goto_caller_frame): New function. + (octave_call_stack::do_goto_base_frame): New function. + * toplev.h: Provide decls for new functions. + (octave_call_stack::call_stack_elt::prev): New data member. + Initialize it in constructor. + (octave_call_stack::const_reverse_iterator, + octave_call_stack::reverse_iterator): New typedefs. + (octave_call_stack::symbol_table::scope_id current_scope, + octave_call_stack::symbol_table::context_id current_context, + octave_call_stack::num_user_code_frames, + octave_call_stack::goto_caller_frame, + octave_call_stack::goto_base_frame, + octave_call_stack::do_num_user_code_frames, + octave_call_stack::do_current_scope, + octave_call_stack::do_current_context): New functions. + + (octave_call_stack::push): Default value for context arg is + symbol_table::current_context, not 0. + (octave_call_stack::do_push): Save previous frame. Always push + new frame on back of stack. Call symbol_table::set_scope_and_context. + (octave_call_stack::do_pop): Restore previous frame. Always pop + frame from back of stack. Call symbol_table::set_scope_and_context. + + 2008-06-26 John W. Eaton + + * token.h: Omit "class symbol_table::symbol_record" decl; + + * lex.l (grab_block_comment): Use parens around || expression + within && expression. + + 2008-06-23 John W. Eaton + + * debug.cc (Fdbstack): Avoid shadowed variable warning. + + 2008-06-23 Jaroslav Hajek + + * genprops.awk (emit_source): Avoid gensub for portability. + (BEGIN): Ditto. + + 2008-06-20 Jaroslav Hajek + + * DLD-FUNCTIONS/regexp.cc (octregexp_list): Make "once" an output + argument. + (octregexp): Do not use cell arrays when "once" is requested. + + * ov.cc (make_vector_dims): New function. + (vector_value, complex_vector_value, float_vector_value, + float_complex_vector_value): Query N-d array values and simplify, + avoid copying. + (column_vector_value, complex_column_vector_value, + float_column_vector_value, float_complex_column_vector_value, + row_vector_value, complex_row_vector_value, + float_row_vector_value, float_complex_row_vector_value): + Simplify to trivial wrappers. + (int_vector_value): Avoid conversions if integer type, query N-d array + value, simplify. + + 2008-06-17 John W. Eaton + + * toplev.h, toplev.cc (class octave_call_stack): + Push elements on and pop from back of queue. + (octave_call_stack::do_push, octave_call_stack::do_pop): + Always adjust curr_frame. + (octave_call_stack::size, octave_call_stack::do_size): New functions. + * pt-stmt.cc (tree_statement::eval): + Also call octave_call_stack::set_statement when debugging. + * debug.cc (push_dummy_call_stack_elt): New function. + (Fdbstack): Omit dbstack from call stack by popping element rather + than adjusting frame number. Correctly handle arg. + + 2008-06-12 David Bateman + + * DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrshift, Fqrdelete): + Allow single precision arguments, add tests for single precision. + + 2008-06-11 John W. Eaton + + * ov-base.cc (octave_base_value::streamoff_value, + octave_base_value::streamoff_array_value): Delete. + * ov-base.h: Delete decls. + (octave_base_value::is_streamoff): Delete. + * ov-float.cc (octave_float_scalar::streamoff_value, + octave_float_scalar::streamoff_array_value): Delete. + * ov-float.h: Delete decls. + * ov-flt-re-mat.cc (octave_float_matrix::streamoff_array_value): Delete. + * ov-flt-re-mat.h: Delete decl. + * ov-re-mat.cc (octave_matrix::streamoff_array_value): Delete. + * ov-re-mat.h: Delete decl. + * ov-re-sparse.cc (octave_sparse_matrix::streamoff_array_value): Delete. + * ov-re-sparse.h: Delete decl. + * ov-scalar.cc (octave_scalar::streamoff_value, + octave_scalar::streamoff_array_value): Delete. + * ov-scalar.h: Delete decls. + * ov.cc (octave_value::octave_value (const streamoff_array&), + octave_value::octave_value (const ArrayN&), + octave_value::streamoff_value (void) const, + octave_value::streamoff_array_value (void) const): Delete. + * ov.h: Delete decls. + (octave_value::is_streamoff): Delete. + * ov.cc (install_types): Don't register streamoff type. + * ov-streamoff.h, ov-streamoff.cc, OPERATORS/op-streamoff.cc: Delete. + * Makefile.in: Delete them from the lists. + + * error.cc (verror): Restore newline in msg_string. Stripping + "error: " prefix when buffering error messages is no longer neeed. + + 2008-06-25 David Bateman + + * pr-output.cc (Frats): Print usage if nargin == 0. + + 2008-06-10 John W. Eaton + + * mexproto.h (mxCreateLogicalScalar): Declar arg as mxLogical, not int. + + 2008-06-09 John W. Eaton + + * graphics.cc (execute_callback): Pass CB by const reference and + explicitly make a copy. + (xget_ancestor): Pass GO by const reference and explicitly make a copy. + + * error.cc (verror): Omit "name: " and "\a" from Vlast_error_msg. + Save line and column information from user code. + * toplev.cc (octave_call_stack::do_caller_user_code_line, + octave_call_stack::do_caller_user_code_column): New functions. + * toplev.h: Provide decls. + (octave_call_stack::caller_user_code_line, + octave_call_stack::caller_user_code_column): New functions. + (octave_call_stack::current_line, octave_call_stack::current_column): + Default return value is -1, not 0. + + 2008-06-06 John W. Eaton + + * ov.h (octave_value::erase_subfunctions): + New function. + * ov-base.h (octave_base_value::erase_subfunctions): + New virtual function. + * ov-usr-fcn.h (octave_user_function::erase_subfunctions): + New function. + * symtab.h (symbol_table::fcn_info::::erase_subfunction, + symbol_table::fcn_info::fcn_info_rep::erase_subfunction, + symbol_table::erase_subfunctions_in_scope): + New functions. + (symbol_table::fcn_info::fcn_info_rep::clear_user_function): + Erase subfunctions here. + + * variables.cc (Fmlock): Doc fix. + + 2008-06-05 John W. Eaton + + * gl-render.cc (opengl_renderer::draw): Correctly avoid shadow + warnings from gcc for xmin, xmax, ymin, ymax, zmin, and zmax. + + * graphics/ChangeLog, graphics/Makefile.in, graphics/Makerules.in, + graphics/fltk_backend/Makefile.in, graphics/opengl/Makefile.in: + Delete. + + * gl-render.cc, gl-render.h: Move here from graphics/opengl. + * Makefile.in: Add them to the appropriate lists. + (octave$(EXEEXT)): Also link with $(OPENGL_LIBS) + + * fltk_backend.cc: Move here from graphics/fltk_backend. + * Makefile.in (DLD_XSRC): Add it to the list + (fltk_backend.oct): Include special rules for linking with + $(GRAPHICS_LIBS) and $(FT2_LIBS). + + * dynamic-ld.cc (octave_dynamic_loader::mex_mangler, + octave_dynamic_loader::mex_uscore_mangler, + octave_dynamic_loader::mex_f77_mangler): New functions. + (octave_dynamic_loader::do_load_mex): Use them. + (octave_dynamic_loader::do_remove_oct): Rename from + octave_dynamic_loader::do_remove. + (octave_dynamic_loader::do_remove_mex): New function. + * dynamic-ld.h: Provide/fix decls. + + * graphics.cc (properties::update_normals): Style fixes. + * graphics.h.in: Style fixes. + + ChangeLog entries for gl-render.h, gl-render.cc, and + fltk_backend.cc before the move: + + 2008-06-05 John W. Eaton + + * opengl/gl-render.cc (xmin): New static function. + + * opengl/gl-render.h (opengl_renderer): Style fixes. + * fltk_backend/fltk_backend.cc: Style fixes. + + 2008-04-26 Michael Goffioul + + * opengl/gl-render.h (opengl_renderer::draw(hggroup)): New method. + * opengl/gl-render.cc (opengl_renderer::draw(hggroup)): Likewise. + (opengl_renderer::draw(graphics_object)): Call it. + + 2008-03-17 Shai Ayal + + * fltk_backend/fltk_backend.cc (plot_window::resize, + plot_window::draw): make canvas the size of figure.position + + 2008-03-09 Shai Ayal + + * fltk_backend/fltk_backend.cc (plot_window::handle): add zoom + stack + + 2008-03-06 Shai Ayal + + * fltk_backend/fltk_backend.cc (plot_window::handle): Add handling + of the 'a' and 'g' keys + (plot_window: toggle_grid): New helper function + (plot_window): Add new togglegrid button + + 2008-03-01 Shai Ayal + + * fltk_backend/fltk_backend.cc (OpenGL_fltk::draw_overlay, + OpenGL_fltk::zoom, OpenGL_fltk::set_zoom_box): Added to support + zoom box + (plot_window::handle): Added zoom box code, B-3 now does autoscale + (plot_window::axis_auto): New utility function to call axis("auto") + (plot_window::button_press): "A" button now does autoscale + + * opengl/gl-render.cc (make_marker_list): Add the "+x*.^v><" + markers + + 2008-02-27 Michael Goffioul + + * opengl/gl-render.cc (opengl_renderer::draw(patch), + opengl_renderer::draw(surface)): Adapt to type change of facealpha and + edgealpha, using double_radio_property class. + + 2008-02-26 Michael Goffioul + + * opengl/gl-render.h: Make sure windows.h is included before OpenGL + headers. + * fltk_backend/Makefile.in (FLTK_EXTRA_CXXFLAGS): Use $(srcdir) for + includesion of OpenGL renderer headers. + (Makeconf): Move inclusion of Makeconf later on, to avoid freezing + MinGW make. + + * fltk_backend/Makefile.in (GRAPHICS_CFLAGS): New substituted + variable. + + 2008-02-25 Shai Ayal + + * fltk_backend/fltk_backend.cc (class plot_window): Many changes + to use figure::properties instead of figure handle to reference + the figure + (class figure_manager): ditto + (__fltk_redraw__): moved most of functionality into the + figure_manager class + (plot_window::pixel2pos): Modified to use axes::pixel2coord + (plot_window::pixel2staus): Modified to use pixel2pos + (plot_window::handle): Added zoom with mouse + + 2008-02-24 Shai Ayal + + * fltk_backend/fltk_backend.cc (OpenGL_fltk::Draw): removed double + buffer switch + (OpenGL_fltk::setup_viewport): removed call to glOrtho -- + gl-render takes care of all the transformations + + 2008-02-23 Shai Ayal + + * fltk_backend/fltk_backend.cc (plot_window::mark_modifed): mark + the whole window as damaged (otherwise changing figure.postion + does not have immediate effect) + (plot_window::draw): New function, checks for window size + (__fltk_maxtime__): New DEFUN to allow tweaking of fltk timeout + (__fltk_redraw__): Use fltk_maxtime as timeout + + 2008-02-21 Michael Goffioul + + * opengl/gl-render.cc (opengl_renderer::patch_tesselator::combine): + Protect against NULL vertex data. + + * opengl/gl-render.cc (opengl_renderer::draw(patch)): Add marker + rendering of patch objects. + + 2008-02-21 Shai Ayal + + * opengl/gl-render.cc: remove OpenGL includes + * opengl/gl-render.h: add OpenGL includes + * fltk_backend/fltk_backend.cc: remove OpenGL includes + (__fltk_redraw__): put figure handle into the figure's + __plot_stream__ property for later + (fltk_backend::close_figure): use argument as figure handle to + close + + 2008-02-20 Shai Ayal + + * fltk_backend/Makefile.in: initial import + + * fltk_backend/fltk_backend.cc: initial import + + + 2008-02-20 Michael Goffioul + + * opengl/gl-render.h (opengl_renderer::draw(patch)): New method to + render patch objects. + (class opengl_renderer::patch_tesselator): Forward declaration. + * opengl/gl-render.cc (opengl_texture::create): Use RGB data format + instead of RGBA. + (class opengl_tesselator): New classes to abstract GLU tessellation + process. + (class opengl_renderer::patch_tesselator): New class to render opaque + patch objects. + (class vertex_data): New class to hold vertex data during tessellation + of patch objects. + (opengl_renderer::draw(patch)): New method to render patch objects (no + transparency, no border, no marker yet). + (opengl_renderer::draw(graphics_object)): Dispatch to it. + + * opengl/gl-render.cc (opengl_renderer::draw(patch)): Use patch color + data and support face/vertex single color specification. + + * opengl/gl-render.cc (opengl_tesselator::begin_polygon): Set + tessellation property also for non-filled polygons. + (opengl_renderer::patch_tesselator::vertex): Protect against empty + color matrices. + (opengl_renderer::draw(patch)): Render patch border (no transparency + yet). + + 2008-02-19 Michael Goffioul + + * opengl/gl-render.cc (opengl_texture::texture_rep::tex_coord, + opengl_texture::tex_coord): New wrapper around glTexCoord2d. + (opengl_renderer::draw(surface)): Use it for texturemap + implementation. + (opengl_renderer::draw(surface)): Fix indexing bug when creating clip + matrix. + (opengl_texture::operator=): Add assignment operator. + (opengl_texture::create): New static opengl_texture creator. + (opengl_texture::is_valid): New accessor. + + 2008-02-18 Michael Goffioul + + * opengl/gl-render.cc (class opengl_texture): New class to wrap + texture operations in OpenGL. + + 2008-02-17 Michael Goffioul + + * opengl/gl-render.cc (opengl_renderer::draw(surface)): Set material + color when rendering surface facets. + + * opengl/gl-render.cc (opengl_renderer::draw(surface)): Add rendering + of mesh and markers. + + 2008-02-16 Michael Goffioul + + * opengl/gl-render.cc (opengl_renderer::draw(figure)): Initialize the + OpenGL context correctly. + (opengl_renderer::draw(surface)): Add missing glEnd call. + + 2008-02-14 Michael Goffioul + + * opengl/gl-render.h opengl/gl-render.cc: Add rendering + interface for surface objects (actual implement still + missing). + + 2008-02-14 Michael Goffioul + + * Makefile.in Makerules.in: Initial import + * opengl/Makefile.in: Likewise. + * opengl/gl-render.h opengl/gl-render.cc: Likewise. + + 2008-06-04 Shai Ayal + + * graphics.cc (axes::properties::set_defaults): Preserve position + if mode is replace. + (axes::properties::sync_positions): Use default_axes_postion for + consistency. + + * graphics.h.in (axes::properties::sync_positions, + axes::properties::update_position, + axes::properties::update_outerposition): New functions to sync + outerposition and position. + + * graphics.h.in (axes::properties::update_xlim, + axes::properties::update_ylim, axes::properties::update_zlim): + pass is_logscale flag to axes::properties::calc_ticks_and_lims + * graphics.cc (axes::properties::calc_ticks_and_lims): Added + support for log scale + + * graphics.h.in (axes::properities::fix_limits) : New method. + (axes::properties::update_xlim, axes::properties::update_ylim, + axes::properties::update_zlim): Use fix_limits. + + * graphics.cc (axes::properties::calc_ticks_and_lims): Make sure + that lo <= hi. + + * graphics.h.in (axes::pixel2coord, axes::coord2pixel): New functions. + + * graphics.cc (convert_position): No longer static. + * graphics.h.in: Provide decl. + + * graphics.cc (Favailable_backends): New function. + * graphics.h.in (base_graphics_backend::available_backends_list): + New function. + + * graphics.cc (axes::properties::calc_ticks_and_lims): Refactor. + Adjust axes limits & tics together so that the result is consistent. + (axes::properties::calc_tick_sep): Ditto. + (axes::properties::get_axis_limits): Ditto. Now a member of + axes::properties + (magform): Now file-scope static function instead of + axes::properties member function. + + * graphics.h.in (axes::properties::update_xlim): call the new + axes::properties::calc_ticks_and_lims method + (axes::properties::update_ylim): ditto + (axes::properties::update_zlim): ditto + + 2008-06-04 Michael Goffioul + + * ov-fcn-inline.h (class octave_fcn_inline): Mark with OCTINTERP_API. + * ov-fcn-handle.h (class Octave_fcn_handle): Likewise. + * ls-oct-binary.h (save_binary_data, read_binary_data): Likewise. + + * genprops.awk (emit_source): Fix if-then-else statement generation + when the first property is hidden. + * graphics.h.in (base_properties::adopt): Call mark_modified. + (class hggroup): New graphics object class. + * graphics.cc (lookup_object_name, make_graphics_object_from_type, + property_list::lookup, property_list::set, + root_figure::init_factory_properties): Support hggroup as possible + object type. + (hggroup::update_axis_limits): New graphics object class. + (make_graphics_object): Look for "parent" property in the arguments + and use it as actual parent for the created object. + (F__go_hggroup__): New function. + (F__go_delete__): Set Vdrawnow_requested to true. + + * graphics.h.in (base_property::clone, string_property::clone, + radio_property::clone, color_property::clone, double_property::clone, + double_radio_property::clone, array_property::clone, + row_vector_property::clone, bool_property::clone, + handle_property::clone, callback_property::clone, any_property::clone, + property::clone): New virtual method. + (property::create): New static method to create dynamic properties. + (base_properties::has_property): New method to check the existence of + a property. + (any_property::any_property, row_vector_property::row_vector_property, + double_radio_property::double_radio_property): New copy constructors. + * graphics.cc (lookup_object_name): New static utility function. + (make_graphics_object_from_type): Likewise. + (gh_manager::do_make_graphics_handle): Use it. + (dprop_obj_map): New static map used for chaching purpose in dynamic + property creation. + (property::create): New static method to create dynamic properties. + (base_properties::has_property): New method to check the existence of + a property. + (base_properties::override_defaults): Check parent validity. + (Faddlistener): Documentation fix. + (Faddproperty): New function to create dynamic properties. + + * genprops.awk (emit_get_array): Don't produce get_xxx_property + accessors. + * graphics.h.in (array_property::get_limits): New method to return the + array limits. + (base_properties::get_xdata_property, + base_properties::get_ydata_property, + base_properties::get_zdata_property, + base_properties::get_ldata_property, + base_properties::get_udata_property, + base_properties::get_xldata_property, + base_properties::get_xudata_property, + base_properties::get_cdata_property): Remove methods, replaced with + limit-based equivalent. + (base_graphics_object::get_xdata_property, + base_graphics_object::get_ydata_property, + base_graphics_object::get_zdata_property, + base_graphics_object::get_ldata_property, + base_graphics_object::get_udata_property, + base_graphics_object::get_xldata_property, + base_graphics_object::get_xudata_property, + base_graphics_object::get_cdata_property): Likewise. + (graphics_object::get_xdata_property, + graphics_object::get_ydata_property, + graphics_object::get_zdata_property, + graphics_object::get_ldata_property, + graphics_object::get_udata_property, + graphics_object::get_xldata_property, + graphics_object::get_xudata_property, + graphics_object::get_cdata_property): Likewise. + (base_properties::get_xlim, base_properties::get_ylim, + base_properties::get_zlim, base_properties::get_clim, + base_properties::get_alim, base_properties::is_xliminclude, + base_properties::is_yliminclude, base_properties::is_zliminclude, + base_properties::is_climinclude, base_properties::is_aliminclude): + New methods. + (base_graphics_object::get_xlim, base_graphics_object::get_ylim, + base_graphics_object::get_zlim, base_graphics_object::get_clim, + base_graphics_object::get_alim, base_graphics_object::is_xliminclude, + base_graphics_object::is_yliminclude, + base_graphics_object::is_zliminclude, + base_graphics_object::is_climinclude, + base_graphics_object::is_aliminclude): Likewise. + (graphics_object::get_xlim, graphics_object::get_ylim, + graphics_object::get_zlim, graphics_object::get_clim, + graphics_object::get_alim, graphics_object::is_xliminclude, + graphics_object::is_yliminclude, graphics_object::is_zliminclude, + graphics_object::is_climinclude, graphics_object::is_aliminclude): + Likewise. + (base_graphics_object::update_axis_limits): Provide default behavior + by passing the call to the parent object. + (line::properties::xdata, line::properties::ydata, + line::properties::zdata, line::properties::ldata, + line::properties::udata, line::properties::xldata, + line::properties::xudata): Replace 'l' modifier with 'u'. + (line::properties::xlim, line::properties::ylim, + line::properties::zlim, line::properties::xliminclude, + line::properties::yliminclude, line::properties::zliminclude): New + hidden properties. + (line::properties::update_xdata, line::properties::update_ydata, + line::properties::update_zdata, line::properties::update_xldata, + line::properties::update_xudata, line::properties::update_ldata, + line::properties::update_udata): New updaters that update limit + properties. + (line::properties::compute_xlim, line::properties::compute_ylim): New + method to compute actual limits taking into account x/y data and + upper/lower bounds. + (text::properties::position): Add 'u' modifier. + (text::properties::xlim, text::properties::ylim, + text::properties::zlim, text::properties::xliminclude, + text::properties::yliminclude, text::properties::zliminclude): New + hidden properties. + (text::properties::update_position): New updater that updates limit + properties. + (image::properties::xdata, image::properties::ydata, + image::properties::cdata): Replace 'l' modifier with 'u'. + (image::properties::cdatamapping): Add 'l' modifier. + (image::properties::xlim, image::properties::ylim, + image::properties::clim, image::properties::xliminclude, + image::properties::yliminclude, image::properties::climinclude): New + hidden properties. + (image::properties::get_climinclude, + image::properties::is_climinclude): Provide specialized inline + accessors. + (image::properties::update_xdata, image::properties::update_ydata, + image::properties::update_cdata): New updaters that update limit + properties. + (patch::properties::xdata, patch::properties::ydata, + patch::properties::zdata, patch::properties::cdata): Replace 'l' + modifier with 'u'. + (patch::properties::cdatamapping): Add 'l' modifier. + (patch::properties::alphadatamapping): New property. + (patch::properties::xlim, patch::properties::ylim, + patch::properties::zlim, patch::properties::clim, + patch::properties::alim, patch::properties::xliminclude, + patch::properties::yliminclude, patch::properties::zliminclude, + patch::properties::climinclude, patch::properties::aliminclude: New + hidden properties. + (patch::properties::get_climinclude, + patch::properties::is_climinclude, patch::properties::get_aliminclude, + patch::properties::is_aliminclude): Provide specialized inline + accessors. + (patch::properties::update_xdata, patch::properties::update_ydata, + patch::properties::update_zdata, patch::properties::update_cdata): New + updaters that update limit properties. + (surface::properties::xdata, surface::properties::ydata, + surface::properties::zdata, surface::properties::cdata, + surface::properties::alphadata): Replace 'l' modifier with 'u'. + (surface::properties::cdatamapping, + surface::properties::alphadatamapping): Add 'l' modifier. + (surface::properties::xlim, surface::properties::ylim, + surface::properties::zlim, surface::properties::clim, + surface::properties::alim, surface::properties::xliminclude, + surface::properties::yliminclude, surface::properties::zliminclude, + surface::properties::climinclude, surface::properties::aliminclude: New + hidden properties. + (surface::properties::get_climinclude, + surface::properties::is_climinclude, + surface::properties::get_aliminclude, + surface::properties::is_aliminclude): Provide specialized inline + accessors. + (surface::properties::update_xdata, surface::properties::update_ydata, + surface::properties::update_zdata): Update limit properties. + (surface::properties::update_cdata, + surface::properties::update_alphadata): New updaters that update limit + properties. + * graphics.cc (base_properties::update_axis_limits): Simply call + update_axis_limits in owning graphics_object. + (base_graphics_object::update_axis_limits): Provide default behavior + by passing the call to the parent object. + (check_limits_vals(double&,double&,double&,const octave_value&)): New + static method to work with new limit properties in graphics objects. + (get_children_limits): New static method to compute the raw limits of + a set of children, based on the new limit properties. + (axes::update_axis_limits): Simplify and call get_children_limits. Add + handling of alpha limits. + (line::properties::compute_xlim, line::properties::compute_ylim): New + methods to compute line limits taking into account upper/lower bounds. + + * graphics.cc (axes::properties::sync_positions): Update + transformation data. + + * graphics.cc (Faddlistener): Rename from Fadd_listener. + + * graphics.h.in (axes::properties::pixel2coord): Center Z coordinate + on x_zlim instead of 0. + (axes::properties::zoom, axes::properties::unzoom, + axes::properties::clear_zoom_stack): New methods to handle zoom stack. + (axes::properties::zoom_stack): New field to hold zoom stack. + (axes::properties::update_xlim, axes::properites::update_ylim): + Additional do_clr_zoom argument to control whether the zoom stack will + be cleared. + (axes::properties::update_zlim): Clear zoom stack. + * graphics.cc (axes::properties::zoom, axes::properties::unzoom, + axes::properties::clear_zoom_stack): New methods to handle zoom stack. + + * genprops.awk (emit_source): Use all properties in factory defaults. + + * graphics.h.in (base_property::base_property): Set internal counter + to 1 by default. + (property::property): Adapt constructors to default counter value in + base_property. + + * graphics.h.in (base_properties::get_property): Make virtual and + remove const modifier. + * graphics.cc (base_properties::get_property): Can return built-in + properties. Generate an error if the property does not exist. + (base_properties::add_listener): Use get_property. + (Fadd_listener): Add documentation. + * genprops.awk (emit_common_declarations, emit_source): Emit code for + overloaded get_property method. + + * genprops.awk (emit_declarations): Run listeners in the property + setter methods. + * graphics.h.in (enum listener_mode): New enum type for listeners. + (base_property::set): Make non-virtual and handle listeners execution. + (base_property::listeners): New field holding a map of listeners. + (base_property::add_listener, base_property::run_listeners, + base_property::do_set): New methods to handle listeners. + (property::add_listener, property::run_listeners): Likewise. + (base_properties::add_listener): Likewise. + (base_graphics_object::add_property_listener, + graphics_object::add_property_listener): Likewise. + (all property classes): Rename set to do_set and make it protected. + * graphics.cc (base_property::run_listeners): New method to execute + listeners. + (color_property::set, double_radio_property::set, + handle_property::set): Rename to do_set. + (base_properties::add_listener): New method to handle listener + additio. Only handle dynamic properties. + (Fadd_listener): New octave interface to add property listeners to + graphics object. + + * genprops.awk (emit_get_data): Remove. + (emit_declarations): Treat row_vector_property as array_property and + remove data_property references. + * graphics.h.in (array_property::array_property(array_property)): Add + copy constructor. + (class data_property): Remove (replaced by array_property). + (class base_graphics_backend, class graphics_backend): Replace + data_property references with array_property. + (line::properties::xdata, line::properties::ydata, + line::properties::zdata, line::properties::ldata, + line::properties::udata, line::properties::xldata, + line::properties::xudata): Turn into row_vector_property. + (image::properties::xdata, image::properties::ydata): Likewise. + (image::properties::init): Add length constraints for xdata and ydata. + (patch::properties::xdata, patch::properties::ydata, + patch::properties::zdata, patch::properties::facevertexalphadata): + Turn into array_property. + (surface::properties::xdata, surface::properties::ydata, + surface::properties::zdata): Likewise. + (patch::properties::init): Add size constraints for xdata, ydata, + zdata and facevertexalphadata. + (surface::properties::init): Add size constraints for xdata, ydata and + zdata. + * graphics.cc (check_limit_vals): Remove override with data_property. + (axes::update_axis_limits): Replace data_property references with + array_property. + + * graphics.h.in (root_figure::get_default): Use factory defaults when + no explicit default value exists. + (figure::properties::set___backend__): Reset __plot_stream__ to empty + value. + * graphics.cc (gh_manager::gh_manager): Call + graphics_backend::default_backend to make sure the default backend is + initialized. + + * graphics.h.in (patch::properties::edgealpha, + surface::properties::facealpha, surface::properties::edgealpha): Fix + typos in property names. + + * graphics.h.in (class double_radio_property): New property class for + holding face/edge alpha values. + (patch::properties::facealpha, patch::properties::edgealpha, + surface::properties::facealpha, surface::properties::edgealpha): Use + double_radio_property class. + * graphics.cc (double_radio_property::set): Implement new property + class. + * genprops.awk (emit_get_double_radio): New function to emit code for + double_radio_property. + (emit_declarations): Use it. + + * graphics.h.in (array_property::array_property(void)): New default + constructor. + (array_property::xmin, array_property:xmax, array_property::xminp, + array_property::min_val, array_property::max_val, + array_property::min_pos): New fields and accessors to hold min/max + values of the array data. + (array_property::get_data_limits): New method to compute min/max + values of the array data. + (base_properties::get_cdata_property, + graphics_object::get_cdata_property): Return array_property. + (image::properties::cdata, surface::properties::cdata, + patch::properties::cdata, patch::properties::facevertexcdata): Turn + into array_property type. + (image::properties::init, surface::properties::init, + patch::properties::init): Add constraint initialization for cdata and + facevertexcdata (patch only). + * genprops.awk (emit_get_array): New function to emit accessor for + array_property. + (emit_declarations): Use it. + * graphics.cc (get_array_limits): New template function to compute + min/max values of an Array object. + (array_property::get_data_limits): New method to compute min/max + values of the array data, using get_array_limits. + (check_limit_vals): Overridden function with array_property. + (axes::update_axis_limits): Turn cdata property into array_property. + + * graphics.h.in (patch::properties::get_color_data): New utility + function to retrieve actual color data. + * graphics.cc (patch::properties::get_color_data): Likewise. + + * graphics.h.in (base_scaler::is_linear, lin_scaler::is_linear, + scaler::is_linear): New method to detect linear scales. + (graphics_xform::scale(Matrix)): New method to scale 2D/3D coordinates + directly. + (patch::properties::facelighting): Set default value to "none". + + * graphics.h.in (axes::axes): Be sure to initialize transformation + data correctly. + + * graphics.cc (xget_ancestor): Pass graphics_object argument by value + instead of by reference. + + * graphics.h.in (surface::properties::xdata, + surface::properties::ydata, surface::properties::zdata, + surface::properties::normalmode, surface::properties::vertexnormals): + Add 'u' modifier. + (surface::properties::update_normals): New method to compute normals + automatically. + (surface::properties::update_xdata, surface::properties::update_ydata, + surface::properties::update_zdata, + surface::properties::update_normalmode, + surface::properties::update_vertexnormals): New updaters to update + normals automatically. + * graphics.cc (surface::properties::update_normals): Likewise. + (cross_product): New inlined utility function for cross product + computation adn accumulation. + + * graphics.h.in (class base_scaler, class lin_scaler, class + log_scaler, class scaler): Add scale method for NDArray. + (log_scaler::do_scale): Factorize scaling code. + + * graphics.h.in (figure::properties::update_position): Re-remove. + (figure::properties::facecolor): Re-add 'texturemap' value. + (surface::properties::get_color_data): New method to compute actual + surface color data from cdata. + * graphics.cc (surface::properties::get_color_data): Likewise. + (xget_ancestor): New utility function to retrieve an ancestor of a + given type. + (convert_cdata): New utility function to convert cdata property into + actual color data. + + * graphics.h.in (surface::properties::facecolor): Add "texturemap" + as possible value. + (class surface::properties): New properties alphadata, + alphadatmapping, ambientstrength, backfacelighting, diffusestrength, + edgealpha, edgelighting, erasemode, facelighting, meshstyle, + normalmode, specularcolorreflectance, specularexponent, + specularstrength, vertexnormals. + (surface::properties::init): Add constraints for alphadata, + vertexnormals and cdata (the latter are commented until cdata + has changed type). + + * graphics.h.in (base_properties::update_boundingbox): New method + to handle object resize. + (figure::properties::set_boundingbox): New method to set figure + position from backend. + (figure::properties::update_position): Remove method. + (figure::properties::position): Remove 'u' modifier and add 'S' + modifier. + (axes::properties::update_boundingbox): Overload to recompute + transformation when axes size changed. + * graphics.cc (base_properties::update_boundingbox): New method. + (figure::properties::set_boundingbox, + figure::properties::set_position): Likewise. + + * genprops.awk: Add 'U' modifier to support extern updaters. + * graphics.h.in (base_graphics_backend::gripe_invalid): New method + to simplify error reporting. + (class base_graphics_backend): Use it. + (base_graphics_backend::set_figure_position): New backend method. + (graphics_backend::set_figure_position): Likewise. + (figure::properties::position): Mark property with updater. + (figure::properties::update_position): New updater. + + * graphics.h.in (root_figure::properties::callbackobject): + New root property. + (root_figure::properties::cbo_stack): New field. + * graphics.cc (xset_gcbo, xreset_gcbo): New utility functions. + (execute_callback): Set callbackobject property in root object + before executing a callback. + (root_figure::properties::set_callbackobject): Implement accessor. + + * graphics.h.in (root_figure::properties::callbackobject): + New root property. + (root_figure::properties::cbo_stack): New field. + * graphics.cc (xset_gcbo, xreset_gcbo): New utility functions. + (execute_callback): Set callbackobject property in root object + before executing a callback. + (root_figure::properties::set_callbackobject): Implement accessor. + + * graphics.h.in (class root_figure::properties, + class line::properties, class text::properties, + class image::properties, class patch::properties, + class surface::properties): Export classes with + OCTINTERP_API. + + * graphics.cc (axes::properties::set_defaults): Use correct + default values for gridlinestyle and minorgridlinestyle. + + 2008-06-03 Jaroslav Hajek + + * load-save.cc (Fload): Fix "-7" option. + + 2008-06-02 David Bateman + + * pt.cc (tree:last_break_function): Next pointer to last function + with a breakpoint. + * pt.h (tree:last_break_function): ditto. + * debug.cc (Fdbstep): Use tree::break_function value of zero to + signal to step into the next function. Set tree::last_break_function + to indicate position of last breakpoint. + (Fdbnext): Set tree::last_break_function to indicate position of + last breakpoint. + * pt-bp.h (MAYBE_DO_BREAKPOINT): Check tree::break_function value + of zero as well. Only check tree::last_line if we are in teh same + function as the last breakpoint. + * input.cc (char Vfilemarker): New global variable. + (Ffilemarker): New function to query and set Vfilemarker. + * input.h (extern char Vfilemarker): Make Vfilemarker available. + * util.cc (fcn_file_in_path): If the input argument contains + Vfilemarker, strip the trailing part of string from this point + when looking for function file. + * toplev.cc (octave_call_stack::fo_backtrace): Mark subfunctions + with the name of the parent function and Vfilemarker. + * symtab.cc (symbol_table::find_function (const std::string&, + tree_argument_list *, const string_vector&, octave_value_list*, + bool&): If function name contains Vfilemarker, check in scope of + specified parent function. + + * DLD-FUNCTIONS/betainc.cc: Move test code here. Add test code for + single precision type. + * DLD-FUNCTIONS/gammainc.cc: Ditto. + * DLD-FUNCTIONS/gcd.cc (Fgcd): Support single precision. Move test + code here. Add test code for single precision type. + * data.cc: Move test code here and add tests for single precision + type. Add tests for Fislogical. + (NATIVE_REDUCTION): Support the 'double' argument. + * mapper.cc: Move test code here and add tests for single precision + type. + * ov-float.cc (CD_SCALAR_MAPPER): Replace Complex with + FloatComplex. + (erf, erfc, abs, acos, asin, asinh, atan, atanh, ceil, cos, cosh, + exp, expm1, floor, log10, log1p, sin, sinh, sqrt, tan, tanh): Use + float version of base functions (ie. ::sinf and not ::sin) + (lgamma, acosh, log, log2, log10, log1p): Use single precision + infinity value. + * ov-flt-complex.cc (erf, erfc, expm1, log1p): Use the float + version of base functions. + * ov-flt-cx-mat.cc (DARRY_MAPPER): Replace NDArray with FloatNDArray. + (erf, erdc, gamma): Use FloatNDArray::dmapper and not + NDArray::dmapper. + * ov-flt-cx-mat.h (is_double_type): Delete. + (is_single_type): New method. + * ov-flt-re-mat.cc (lgamma, acosh, log, log2, log10, log1p, + sqrt): Use single precision infinity value. + + * chol.cc (Fcholinv, Fchol2inv, Fcholupdate, Fcholinsert, + Fcholdelete, Fcholshift): Allow single precision arguments. + (Fchol): Move test code here. Add test code for single precision. + (Fcholupdate, Fcholinsert, Fcholdelete, Fcholshift): Add test code + for single precision. + * conv2.cc (Fconv2): Add single precision test code. + * det.cc (Fdet): For single values or empty matrices, return + single precision arg for single precion input. Move test code + here. Add single precision test code. + * fft.cc (do_fft): For empty single precision arguments return a + single precision value. Add single precision test code. Remove + fft2 test code. + * fft2.cc (do_fft2): For empty single precision arguments return a + single precision value. Add single precision test code. Move fft2 + test code here. + * fftn.cc (do_fftn): For empty single precision arguments return a + single precision value. + * eig.cc (Feig): Move test code here. Add single precision test + code. + * expm.cc (Fexpm): Ditto. + * find.cc (Ffind): Ditto. + * hess.cc (Fhess): Ditto. + * inv.cc (Finc): Ditto. + * lu.cc (Flu): Ditto. + * qr.cc (Fqr): Ditto. + * schur.cc (Fschur): Ditto. + * svd.cc (Fsvd): Ditto. + * syl.cc (Fsyl): Ditto. + + * op-fcm-fcm.cc, op-fcm-fcs.cc, op-fcm-fm.cc, op-fcm-fs.cc, + op-fcs-fcm.cc, op-fcs-fcs.cc, op-fcs-fm.cc, op-fcs-fs.cc, + op-fm-fcm.cc, op-fm-fcs.cc, op-fm-fm.cc, op-fm-fs.cc, + op-fs-fcm.cc, op-fs-fcs.cc, op-fs-fm.cc, op-fs-fs.cc: Add mixed + double, single precision concatenation operators. + + * data.cc (Fall, Fany, Fdiag, Fcat, Fismatrix, Fones, Fzeros, + Finf, FNaN, FNA, Feye, Flinspace, Freshape, Ftranspose, + Fctranspose, Fsort). Move tests here. Add single precision tests. + * mappers.cc (Ffinite, Fisinf, Fisna, Fisnan): Ditto. + * ov-float.cc (octave_float_scalar:resize): single precision + return value. + * ov.cc (octave_value::octave_value (const + FloatComplexDiagMatrix&)): Ditto. + * data.cc (Fnorm): Add single precision. + (do_cat): Disable fast return and skipping empty matrices, as they + play a part in determining the return type. + * ov.cc (octave_value do_cat_op (const octave_value&, const + octave_value&, const Array&)): ditto. + + 2008-06-02 Jaroslav Hajek + + * ov-cell.cc (Fcellstr): For compatibility with Matlab, return {''} + when given ''. + + 2008-05-26 Jaroslav Hajek + + * DLD-FUNCTIONS/fsolve.cc (fsolve_user_function, + fsolve_user_jacobian): Reshape argument to original dims before + passing. + (Ffsolve): Save original dimensions of the starting guess and reshape + on return. Fix tests. + + 2008-05-21 David Bateman + + * DLD-FUNCTIONS/quad.cc (quad_float_user_function): New function. + (Fquad): Handle float type. + New tests. + + 2008-05-21 Jaroslav Hajek + + * OPERATORS/op-fcm-fcm.cc (trans_mul, mul_trans, herm_mul, mul_herm): + New functions. + (install_fcm_fcm_ops): Install them. + * OPERATORS/op-fm-fm.cc (trans_mul, mul_trans): New functions. + (install_fm_fm_ops): Install them. + + * OPERATORS/op-sm-m.cc (trans_mul): New function. + (install_sm_m_ops): Register it. + * OPERATORS/op-m-sm.cc (mul_trans): New function. + (install_m_sm_ops): Register it. + * OPERATORS/op-scm-cm.cc (trans_mul, herm_mul): New function. + (install_scm_cm_ops): Register it. + * OPERATORS/op-cm-scm.cc (mul_trans, mul_herm): New function. + (install_cm_scm_ops): Register it. + + * dMatrix.cc: Declare DSYRK. + (xgemm): Call DSYRK if symmetric case detected. + * CMatrix.cc: Declare ZSYRK, ZHERK. + (xgemm): Call ZSYRK/ZHERK if symmetric/hermitian case detected. + + * ov.h (octave_value::compound_binary_op): New enum. + (do_binary_op (octave_value::compound_binary_op, ...), + octave_value::binary_op_fcn_name (compound_binary_op), + octave_value::do_binary_op (compound_binary_op, ...)): + New declarations. + (OV_COMP_BINOP_FN): New macro (+ several expansions). + * ov.cc (octave_value::binary_op_fcn_name (compound_binary_op), + decompose_binary_op, do_binary_op (compound_binary_op, ...)): + New functions. + * ov-typeinfo.h (octave_value_typeinfo::register_binary_class_op + (octave_value::compound_binary_op, ...), + octave_value_typeinfo::register_binary_op + (octave_value::compound_binary_op, ...), + octave_value_typeinfo::do_register_binary_class_op + (octave_value::compound_binary_op, ...), + octave_value_typeinfo::do_register_binary_op + (octave_value::compound_binary_op, ...), + octave_value_typeinfo::do_lookup_binary_class_op + (octave_value::compound_binary_op), + octave_value_typeinfo::do_lookup_binary_op + (octave_value::compound_binary_op, ...)): + New declarations. + (octave_value_typeinfo::lookup_binary_class_op + (octave_value::compound_binary_op), + (octave_value_typeinfo::lookup_binary_op + (octave_value::compound_binary_op, ...)): + New functions. + (octave_value_typeinfo::compound_binary_class_ops, + octave_value_typeinfo::compound_binary_ops): + New fields. + * ov-typeinfo.cc (octave_value_typeinfo::register_binary_class_op + (octave_value::compound_binary_op, ...), + octave_value_typeinfo::register_binary_op + (octave_value::compound_binary_op, ...), + octave_value_typeinfo::do_register_binary_class_op + (octave_value::compound_binary_op, ...), + octave_value_typeinfo::do_register_binary_op + (octave_value::compound_binary_op, ...), + octave_value_typeinfo::do_lookup_binary_class_op + (octave_value::compound_binary_op), + octave_value_typeinfo::do_lookup_binary_op + (octave_value::compound_binary_op, ...)): + New functions. + (octave_value::do_register_type): Resize also compound_binary_ops + field. + * pt-exp.h (tree_expression::is_unary_expression): New virtual + function. + * pt-unop.h (tree_unary_expression::is_unary_expression): New virtual + override. + * pt-cbinop.h, pt-cbinop.cc: New files (implement + tree_compound_binary_expression class). + * pt-all.h: Include pt-cbinop.h. + * Makefile.in (PT_INCLUDES, PT_SRC): Include them in the lists. + * parse.y (make_binary_op): Call maybe_compound_binary_expression. + * OPERATORS/op-m-m.cc (trans_mul, mul_trans): New operator handlers. + (install_m_m_ops): Register them. + * OPERATORS/op-cm-cm.cc (trans_mul, mul_trans, herm_mul, mul_herm): + New operator handlers. + (install_cm_cm_ops): Register them. + + * DLD-FUNCTIONS/matrix_type.cc: Fix tests relying on the + older more optimistic hermitian check. + + 2008-05-21 David Bateman + + * DLD-FUNCTIONS/rcond.cc (Frcond): Add support for single precision. + + * DLD-FUNCTIONS/sqrt.m: Replace DBL_* with FLT_* for single + precision types. + * data.cc (static octave_value fill_matrix (const + octave_value_list&, double, float, const char *)): Add function + with additional argument to allow for different valid for double + and single precision. + (Finf, FNaN, FNA, Frealmax, Frealmin): Use it here. + (Feps): Modify behavior for a single numerical argument to give + difference to next largest value in the class of the type passed. + + 2008-05-21 John W. Eaton + + * pt-idx.h (tree_index_expression::tree_index_expression (int, int)): + Delete default argument values. + + 2008-05-20 David Bateman + + * data.cc (Flog2): Handle single precision. + * ov-float.h, ov.float.cc, ov-flt-complex.h, ov-flt-complex.cc, + ov-flt-re-mat.h, ov-flt-re-mat.cc, ov-flt-cx-mat.h, + ov-flt-cx-mat.cc: Provide single precision version of log2 mapper + function. + + * DLD-FUNCTIONS/__convn__.cc, DLD-FUNCTIONS/__pchip_deriv__.cc, + DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc, + DLD-FUNCTIONS/conv2.cc, DLD-FUNCTIONS/gammainc.cc, + DLD-FUNCTIONS/givens.cc, DLD-FUNCTIONS/kron.cc, + DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/syl.cc, data.cc: + Prefer demotion to single precision rather than promotion to double. + + * ov-float.cc, ov-float.h, ov-flt-complex.cc, ov-flt-complex.h, + ov-flt-cx-mat.cc, ov-flt-cx-mat.h, ov-flt-re-mat.cc, + ov-flt-re-mat.h (numeric_conversion_function (void) const): + Remove method. + + * ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, + ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, ov-scalar.h + (numeric_conversion_function (void) const): Add method for + conversion to single precision. + + * DLD-FUNCTIONS/conv2.cc (Fconv2): Don't access third arg if we + don't have one. + + * DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/expm.cc, + DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/hess.cc, + DLD-FUNCTIONS/qr.cc: COnvert for use with single precision. + + * OPERATORS/op-int.h, OPERATORS/op-int-conv.cc, + OPERATORS/op-int-concat.cc: Adapt for single precision. + + * OPERATORS/op-i8-i8.cc, OPERATORS/op-i16-i16.cc, + OPERATORS/op-i32-i32.cc, OPERATORS/op-i64-i64.cc, + OPERATORS/op-ui8-ui8.cc, OPERATORS/op-ui16-ui16.cc, + OPERATORS/op-ui32-ui32.cc, OPERATORS/op-ui64-ui64.cc: + Add includes for single precision types. + + * OPERATORS/op-b-b.cc, OPERATORS/op-b-bm.cc, OPERATORS/op-bm-b.cc, + OPERATORS/op-fcm-fs.cc, OPERATORS/op-fcs-fs.cc, + OPERATORS/op-fm-fs.cc, OPERATORS/op-fs-fcm.cc, + OPERATORS/op-fs-fcs.cc, OPERATORS/op-fs-fm.cc, + OPERATORS/op-fs-fs.cc, OPERATORS/op-int.h, ov.cc, ov-scalar.cc, + ov-float.h, ov-flt-complex.cc, ov-float.cc, ov-flt-re-mat.cc, + ov-flt-cx-mat.cc: Replace octave_float with octave_scalar_float + + * OPERATORS/op-fm-fm.cc, OPERATORS/op-fm-fs.cc, + OPERATORS/op-fm-fcm.cc, OPERATORS/op-fm-fcs.cc, + OPERATORS/op-fs-fm.cc, OPERATORS/op-fs-fs.cc, + OPERATORS/op-fs-fcm.cc, OPERATORS/op-fs-fcs.cc, + OPERATORS/op-fcm-fm.cc, OPERATORS/op-fcm-fs.cc, + OPERATORS/op-fcm-fcm.cc, OPERATORS/op-fcm-fcs.cc, + OPERATORS/op-fcs-fm.cc, OPERATORS/op-fcs-fs.cc, + OPERATORS/op-fcs-fcm.cc, OPERATORS/op-fcs-fcs.cc, + OPERATORS/op-m-m.cc, OPERATORS/op-m-s.cc, + OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc, + OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc, + OPERATORS/op-s-cm.cc, OPERATORS/op-s-cs.cc, + OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, + OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, + OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc, + OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-cs.cc: + Add mixed single/double assign operators. + + * ov.h (numeric_demotion_function): New method for double to + single demotion. + * ov-base.h (numeric_demotion_function): Declare virtual version. + + * ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, + ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, ov-scalar.h + (numeric_cdemote_function (void) const): Add method for + conversion to single precision renamed from the method + numeric_conversion_function + + * ov.cc (do_binary_op): Use demotion function seperately than the + numeric conversion function so as to avoid isses like + a=zeros(2,2);a(1,:)=1:2. + + * OPERATORS/op-fcm-fcm.cc, OPERATORS/op-fcm-fcs.cc, + OPERATORS/op-fcm-fm.cc, OPERATORS/op-fcm-fs.cc, + OPERATORS/op-fcs-fcm.cc, OPERATORS/op-fcs-fcs.cc, + OPERATORS/op-fcs-fm.cc, OPERATORS/op-fcs-fs.cc, + OPERATORS/op-fm-fcm.cc, OPERATORS/op-fm-fcs.cc, + OPERATORS/op-fm-fm.cc, OPERATORS/op-fm-fs.cc, + OPERATORS/op-fs-fcm.cc, OPERATORS/op-fs-fcs.cc, + OPERATORS/op-fs-fm.cc, OPERATORS/op-fs-fs.cc, ov-float.cc, + ov-float.h, ov-flt-complex.cc, ov-flt-complex.h, ov-flt-cx-mat.cc, + ov-flt-cx-mat.h, ov-flt-re-mat.cc, ov-flt-re-mat.h: New files. + * Makefile.in (OV_INCLUDES, OV_SRC, OP_XSRC. FLOAT_OP_XSRC, + DOUBLE_OP_XSRC): Add them here. + + * DLD-FUNCTIONS/__convn__.cc, DLD-FUNCTIONS/__lin_interpn__.cc, + DLD-FUNCTIONS/__pchip_deriv__.cc, DLD-FUNCTIONS/besselj.cc, + DLD-FUNCTIONS/betainc.cc, DLD-FUNCTIONS/bsxfun.cc, + DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/conv2.cc, + DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/fft.cc, + DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftn.cc, + DLD-FUNCTIONS/fftw.cc, DLD-FUNCTIONS/filter.cc, + DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/givens.cc, + DLD-FUNCTIONS/inv.cc, DLD-FUNCTIONS/kron.cc, + DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lu.cc, + DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/max.cc, + DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/schur.cc, + DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/svd.cc, + DLD-FUNCTIONS/syl.cc, DLD-FUNCTIONS/symbfact.cc, + DLD-FUNCTIONS/typecast.cc, OPERATORS/op-b-b.cc, + OPERATORS/op-b-bm.cc, OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc, + OPERATORS/op-cm-cm.cc, OPERATORS/op-cs-cs.cc, OPERATORS/op-m-m.cc, + OPERATORS/op-range.cc, OPERATORS/op-s-s.cc, bitfcns.cc, data.cc, + oct-stream.cc, ov-base.cc, ov-base.h, ov-bool-mat.cc, + ov-bool-mat.h, ov-bool.h, ov-ch-mat.cc, ov-ch-mat.h, + ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, ov-intx.h, + ov-range.cc, ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-scalar.h, + ov.cc, ov.h, pr-output.cc, pr-output.h, pt-mat.cc, utils.cc, + utils.h, xdiv.cc, xdiv.h, xpow.cc, xpow.h: + Allow single precision types. + + 2008-05-20 David Bateman + + * DLD-FUNCTIONS/rcond.cc: New function. + * Makefile.in (DLD_XSRC): Add it here. + + * debug.cc (Fdbstop): If no line specified assume line 1. + (Fdbstep, Fdbcont, Fdbnext): Move debugging functions + to normal commands. + (Fdbquit): New command to quit debugging mode and return to the + prompt. + (Fdbstep): Modify the dbstep command for compatibility. + * input.cc (Vdebugging_current_line): Store current line being + debugged for use in DEFCMD versions of debug commands. + (match_sans_spaces_semi): Delete. + (static void get_debug_input (const std;string&)): New function to + parse input in debug mode using standard Octave parser. + (static octave_value_list get_user_input (const + octave_value_list&, int)): Remove debugging specialization. + * input.h (Vdebugging_current_line): Store current line being + debugged for use in DEFCMD versions of debug commands. + * parse.y (make_return_command): Special handling in debug mode. + * pt-bp.h (MAYBE_DO_BREAKPOINT): Support break in n lines needed + to support "dbstep N". + * pt.cc (tree::break_next): Convert to a down counter to support + break in N lines. Breakpoint occure when tree::break_next is zero. + * toplev.cc (octave_user_script * + octave_call_stack::do_caller_user_script (difference_type) const): + Support skipping the first N functions to support "dbstep out". + (octave_user_function * octave_call_stack::do_caller_user_function + (difference_type) const): Ditto. + (octave_user_code * octave_call_stack::do_caller_user_code + (difference_type) const): Ditto. + * toplev.h (octave_user_script * + octave_call_stack::do_caller_user_script (difference_type) const): + Add difference_type argument. + (octave_user_function * octave_call_stack::do_caller_user_function + (difference_type) const): Ditto. + (octave_user_code * octave_call_stack::do_caller_user_code + (difference_type) const): Ditto. + (static octave_user_script *caller_script (difference_type)): + Ditto. + (static octave_user_function *caller_user_function + (difference_type q)): Ditto. + (static octave_user_code *caller_user_code (difference_type q)): + Ditto. + + 2008-05-20 Kim Hansen + + * load-path.cc (load_path::do_initialize): + Include separator when appending sys_path. + + 2008-05-20 Bill Denney + + * file-io.cc (Ffgets, Fgets, Ffputs, Ffscanf): Doc fix (seealso). + + 2008-05-20 Thomas Weber + + * DLD-FUNCTIONS/rand.cc (Frandn): Doc fix. + + 2008-05-20 David Bateman + + * load-save.cc (do_load): Treat non verbose list_only output in + the same manner as Fwho. + * symtab.h (static void clear_variable_regexp (const + std::string&): New method. + (static std::list regexp (const std::string&)): Ditto. + (static std::list regexp_variables (const + std::string&)): Ditto. + (static std::list regexp_global_variables (const + std::string&)): Ditto, + (static std::list regexp_variables (const + string_vector&)): Ditto. + (void do_clear_variable_regexp (const std::string&)): Ditto. + (std::list do_regexp (const std::string&, bool) + const): Ditto. + (do_who): Accept the "-regexp" option. Use regexp versions of + symbol table functions. + (static inline bool name_match_any_pattern (const string_vector&, + int, int, bool): Add regexp argument, and use regexp matching if + true. + (do_clear_variables): Add regexp option and pass to + name_match_any_pattern. + (Fclear): Accept the -regexp option. + + 2008-05-07 John W. Eaton + + * pt-arg-list.cc, pt-arg-list.h (tree_argument_list::dup): + New arg, context. + * pt-assign.cc, pt-assign.h (tree_simple_assignment::dup, + tree_multi_assignment::dup): Likewise. + * pt-binop.cc, pt-binop.h (tree_binary_expression::dup, + tree_boolean_expression::dup): Likewise. + * pt-cell.cc, pt-cell.h (tree_cell::dup): Likewise. + * pt-cmd.cc, pt-cmd.h (tree_no_op_command::dup, + tree_function_def::dup): Likewise. + * pt-colon.cc, pt-colon.h (tree_colon_expression::dup): Likewise. + * pt-const.cc, pt-const.h (tree_constant::dup): Likewise. + * pt-decl.cc, pt-decl.h (tree_decl_elt::dup, tree_decl_init_list::dup, + tree_global_command::dup, tree_static_command::dup): Likewise. + * pt-except.cc, pt-except.h (tree_try_catch_command::dup, + tree_unwind_protect_command::dup): Likewise. + * pt-exp.h (tree_expression:dup): Likewise. + * pt-fcn-handle.cc, pt-exp.h (tree_expression:dup): Likewise. + * pt-fcn-handle.h (tree_fcn_handle::dup, + tree_anon_fcn_handle::dup): Likewise. + * pt-id.cc, pt-id.h (tree_identifier::dup): Likewise. + * pt-idx.cc, pt-idx.h (tree_index_expression::dup): Likewise. + * pt-jump.cc, pt-jump.h (tree_break_command::dup, + tree_continue_command::dup, tree_return_command::dup): Likewise. + * pt-loop.cc, pt-loop.h (tree_while_command::dup, + tree_do_until_command::dup, tree_simple_for_command::dup, + tree_complex_for_command::dup): Likewise. + * pt-mat.cc, pt-mat.h (tree_matrix::dup): Likewise. + * pt-misc.cc, pt-misc.h (tree_parameter_list::dup, + tree_return_list::dup): Likewise. + * pt-select.cc, pt-select.h (tree_if_clause::dup, + tree_if_command_list::dup, tree_if_command::dup, + tree_switch_case::dup, tree_switch_case_list::dup, + tree_switch_command::dup, tree_statement::dup, + tree_statement_list::dup, tree_prefix_expression::dup, + tree_postfix_expression::dup): Likewise. + + * ov-fcn-handle.cc (octave_fcn_handle::save_ascii, + octave_fcn_handle::save_binary, octave_fcn_handle::save_hdf5): + Pass context to symbol_table::all_variables. + * load-save.cc (dump_octave_core): Likewise. + * ov-fcn-handle.cc (Ffunctions): Don't skip anonymous functions + with the name set to the text of the function body. + Pass context to symbol_table::all_variables and + symbol_table::symbol_record::varval. + + * symtab.h (symbol_table::varref, symbol_table::do_varref, + symbol_table::varval, symbol_table::do_varval, + symbol_table::all_variables, symbol_table::do_all_variables, + symbol_table::symbol_record::varref, + symbol_table::symbol_record::varval, + symbol_table::symbol_record::is_defined, + symbol_table::symbol_record::is_variable, + symbol_table::symbol_record::symbol_record_rep::varref, + symbol_table::symbol_record::symbol_record_rep::varval, + symbol_table::symbol_record::symbol_record_rep::is_defined, + symbol_table::symbol_record::symbol_record_rep::is_variable, + ): + * symtab.h (symbol_table::do_inherit): New arg, donor_context. + Look for value in donor_contxt. Set value in base context. + * symtab.cc (symbol_table::symbol_record::symbol_record_rep::dump): + Pass xcurrent_context to varval. + + 2008-05-06 David Bateman + + * ov-fcn-inline.cc (Finline): Also ignore NaN, Inf, pi, NA and eps. + + * bitfcns.cc (BITOP): Treat octave_bool types and octave_scalar. + + 2008-05-06 John W. Eaton + + * symtab.h (symbol_table::scope_id_cache): New class. Use it to + replace scope_ids_in_use and scope_ids_free_list. + (symbol_table::erase_scope): Call free_scope. + (symbol_table::free_scope): Call scope_id_cache::free. + + * ov-fcn.h (octave_function::lock_subfunctions, + octave_function::unlock_subfunctions): New virtual functions. + (octave_function::lock_subfunctions): Call lock_subfunctions here. + (octave_function::unlock_subfunctions): Call unlock_subfunctions here. + * ov-usr-fcn.h (octave_user_function::lock_subfunctions, + octave_user_function::unlock_subfunctions): New functions. + + * symtab.h (symbol_table::lock_subfunctions, + symbol_table::lock_subfunctions, + symbol_table::fcn_info::lock_subfunction, + symbol_table::fcn_info::unlock_subfunction, + symbol_table::fcn_info::fcn_info_rep::lock_subfunction, + symbol_table::fcn_info::fcn_info_rep::unlock_subfunction): + New functions. + + * symtab.h (symbol_table::set_scope, symbol_table::get_instance): + Don't set instance unless allocation succeeds. + (symbol_table::print_scope, symbol_table::do_print_scope): Delete. + (symbol_table::free_scope): Avoid using invalid iterator. + (symbol_table::erase_scope): Call free_scope here. + + * ov-fcn-handle.cc (octave_fcn_handle::load_ascii, + octave_fcn_handle::load_binary, octave_fcn_handle::load_hdf5): + Cache anonymous name here. + (octave_fcn_handle::octave_fcn_handle): Move here from + ov-fcn-handle.h. Cache name if function is user-defined. + + * pt-id.cc (tree_identifier::dup): Avoid shadow warning. + + * symtab.h (symbol_table::cache_name, symbol_table::do_cache_name): + New functions. + (symbol_table::get_instance): Cache top-level name here. + * parse.y (finish_function): Call symbol_table::cache_name here. + + * symtab.cc (F__dump_symtab_info__): New function. + + * symtab.cc (symbol_table::dump, symbol_table::dump_global, + symbol_table::dump_functions, symbol_table::do_dump, + symbol_table::symbol_record::symbol_record_rep::dump, + symobl_table::fcn_info::fcn_info_rep::dump): New functions. + * symtab.h: Provide decls. + (symtab::scopes, symbol_table::symbol_record::dump, + symbol_table::fcn_info::dump): New functions. + (symtab::get_instance): New arg, create; if false throw error if + instance for given scope is not found. + + * ov-base.cc (octave_base_value::dump): New virtual function. + * ov-base.h: Proivde decl. + * ov.h (octave_value::dump): New function. + + * ov.h, ov.c (octave_value::function_value): New const version. + * ov-base.h, ov-base.cc (octave_base_value::function_value): Likewise. + * ov-builtin.h (octave_builtin::function_value): Likewise. + * ov-fcn-handle.h (octave_fcn_handle::function_value): Likewise. + * ov-mex-fcn.h (octave_mex_function::function_value): Likewise. + * ov-usr-fcn.h (octave_user_script::function_value, + octave_user_function): Likewise. + + * symtab.h, symtab.cc: Use consistent naming scheme for iterator + typedefs. Change all uses. + + * variables.cc (F__print_symtab_info__, F__print_symbol_info__): + Delete. + + * ov-cell.cc (Fstruct2cell): Handle structure arrays properly. + + 2008-05-05 David Bateman + + * sysdep.cc (Fputenv): Allow single arg. Alias to setenv. + + 2008-05-05 John W. Eaton + + * input.cc (Fre_read_readline_init_file): New function. + + 2008-05-04 John W. Eaton + + * ov-fcn-handle.cc (Ffunctions): Pass octave_value object instead + of Cell in structure field assignment. + + * parse.y (frob_function): Don't install subfunctions here. + (finish_function): Handle subfunctions here. + Conditionally define tree_function_def object here. + + * symtab.h (symbol_table::fcn_info::fcn_info_rep::find_function): + Initialize args_evaluated. + * pt-id.cc (tree_identifier::rvalue): Likewise. + * variables.cc (symbol_exist): Likewise. + + * pt-id.h (tree_identifier::tree_identifer): Delete useless statement. + + * variables.cc (get_global_value): Use symbol_table::global_varval + instead of passing scope to symbol_table::varval. + (set_global_value): Use symbol_table::global_varref + instead of passing scope to symbol_table::varref. + (do_who): Use symbol_table::glob_global_variables + instead of passing scope to symbol_table::glob_variables. + (do_clear_globals): + Use symbol_table::global_variable_names and + symbol_table::clear_global instead of passing scope to + symbol_table::clear_variables. + Use symbol_table::global_variable_names instead of passing scope + to symbol_table::variable_names. + + * unwind-prot.cc (unwind_protect::save_size_t): New function. + (saved_variable::restore_value): Handle size_t values. + (saved_variable::saved_variable): New size_t constructor. + (saved_variable::size_type): New var_type enum value. + (saved_variable::ptr_to_size_t, saved_variable::size_t_value): + New union elements. + * unwind-prot.h (unwind_protect::save_size_t): Provide decl + (unwind_protect_size_t): New macro. + + * toplev.cc (octave_call_stack::do_goto_frame, + octave_call_stack::do_goto_frame_relative): New functions. + (octave_call_stack::do_backtrace): Also return scope and context ids. + * toplev.h (octave_call_stack::do_goto_frame, + octave_call_stack::do_goto_frame_relative): Provide decls. + (octave_call_stack::curr_frame): New data member. + (octave_call_stack::octave_call_stack): Initialize it. + (octave_call_stack::call_stack_elt::scope, + (octave_call_stack::call_stack_elt::context): New data members., + (octave_call_stack::current_frame, + (octave_call_stack::do_current_frame + octave_call_stack::do_goto_frame, + octave_call_stack::do_goto_frame_relative): New functions. + (octave_call_stack::push, octave_call_stack::do_push): + New args, scope and context. + (octave_call_stack::do_push, octave_call_stack::do_pop): Update + curr_frame if debugging. + + * symtab.cc (symbol_table::global_table): New map for global values. + (symbol_table::xcurrent_context): New variable for context info. + * symtab.h: Provide decls. + (symbol_table::global_varref, symbol_table::global_varval, + symbol_table::current_context, + symbol_table::set_scope_and_context, + symbol_table::glob_global_variables, + symbol_table::global_variable_names, + symbol_table::top_leve_variable_names): + New functions. + (symbol_table::context_id, const_global_table_iterator, + global_table_iterator): New typedefs. + (symbol_table::xcurrent_context_this_table): New variable. + (symbol_table::symbol_table): Initialize it. + (symbol_table::set_scope): Use it. + (symbol_table::symbol_record::find, symbol_table::do_find): + Use symbol_table::global_varref instead of passing scope to + symbol_table::varref. + (symbol_table::symbol_record::symbol_record_rep::value_stack): + Now a std::deque instead of a std::stack. + (symbol_table::symbol_record::symbol_record_rep::push_context, + symbol_table::symbol_record::symbol_record_rep::pop_context): + Don't push or pop persistent of global variables. + (symbol_table::symbol_record::symbol_record_rep::varval, + Handle context here. Call symbol_table::global_varval instead of + passing scope to symbol_table::varval. + (symbol_table::symbol_record::symbol_record_rep::varref): + Handle context here. Call symbol_table::global_varref instead of + passing scope to symbol_table::varref. + (symbol_table::symbol_record::varref, + symbol_table::symbol_record::varval): No need to handle global + values specially here. + (symbol_table::symbol_record::push_context + symbol_table::symbol_record::pop_context: No need to handle global + or persistent values specially here. + (symbol_table::get_instance): Don't return global scope. + (symbol_table::do_push_context, symbol_table::do_pop_context): + Increment/decrement xcurrent_context. + (symbol_table::do_clear_global, symbol_table::do_clear_global_pattern): + Use global_table instead of separate scope. + + * symtab.h, symtab.cc (symbol_table::fcn_info::fcn_info_rep::find, + symbol_table::fcn_info::fcn_info_rep::find_function, + symbol_table::fcn_info::find, symbol_table::fcn_info::find_function, + symbol_table::find, symbol_table::find_function, + symbol_table::do_find, symbol_table::insert, symbol_table::varref, + symbol_table::varval, symbol_table::persistent_varref, + symbol_table::persistent_varval, symbol_table::erase_persistent, + symbol_table::is_variable, symbol_table::clear, + symbol_table::clear_variables, symbol_table::clear_global, + symbol_table::clear_variable, symbol_table::clear_global_pattern, + symbol_table::clear_variable_pattern, symbol_table::push_context, + symbol_table::pop_context, symbol_table::mark_hidden, + symbol_table::mark_global, symbol_table::glob, + symbol_table::glob_variables, symbol_table::variable_names, + symbol_table::is_local_variable, symbol_table::is_global): + Eliminate scope arg. Change all uses. + (symbol_table::erase_scope, symbol_table::dup_scope): + Require scope arg. + + * pt-stmt.cc (tree_statement::eval): Don't update statement info + in octave_call_stack if debugging. + + * pt-id.h (tree_identifier::xsym): New function. + (tree_identifier::rvalue, tree_identifier::lvalue, + tree_identifier::dup, tree_identifier::is_defined, + tree_identifier::is_variable, tree_identifier::mark_global, + tree_identifier::mark_as_static, tree_identifier::do_lookup, + tree_identifier::mark_as_formal_parameter): + Use xsym to access symbol. + (tree_identifier::scope): New data member. + (tree_identifier::tree_identifier): Initialize it. + + * ov-usr-fcn.cc (octave_user_script::octave_user_script, + octave_user_function::octave_user_function): + Initialize call_depth to -1. + (octave_user_script::do_multi_index_op): Fix comparison of + call_depth with Vmax_recursion_depth. + (octave_user_function::do_multi_index_op): + Compare call depth > 0, instead of > 1. + * ov-usr-fcn.h (octave_user_function::save_args_passed): + Compare call depth > 0, instead of > 1. + + * input.cc (Vdebugging): New variable. + (get_user_input): Eliminate DEBUG argument. Use global Vdebugging + variable instead. Change all callers. + (saved_frame): New static variable. + (restore_frame): New function. + (do_keyboard): Unwind-protect Vdebugging here and set it to TRUE. + Save current frame. Use unwind_protect to restore it. + (Fkeyboard): Save current frame. Use unwind_protect to restore it. + Move up the call stack one frame before calling do_keyboard. + * input.h (Vdebugging): Provide decl. + + * mex.cc (mexGetVariable): Handle global vars with get_global_value. + (mexPutVariable): Likewise, with set_global_value. + + * octave.cc (intern_argv): Assert that we are at the top level. + Don't pass scope to symbol_table::varref or symbol_table::mark_hidden. + + * load-save.cc (install_loaded_variable): Use + symbol_table::global_varref instead of passing global scope to + symbol_table::varref. + + * help.cc (make_name_list): Call symbol_table::global_variable_names + and symbol_table::top_level_variable_names instead of passing + scope to symbol_table::variable_names. + + * debug.cc (do_dbupdown, Fdbup, Fdbdown): New functions. + (current_stack_frame): Delete static variable. + (Fdbstack): Rename from F__dbstack__. Implement all of dbstack + here instead of partially in dbstack.m. + + 2008-05-03 John W. Eaton + + * pt-arg-list.cc (F__end__): If there are more dimensions than + indices, smash extra dimensions first. + (num_indices): New static variable. + (tree_argument_list::convert_to_const_vector): Save and set it. + + * parse.y (parse_fcn_file): Also temporarily set parser_end_of_input + and get_input_from_eval_string to false while reading script files. + + 2008-05-01 John W. Eaton + + * parse.y (load_fcn_from_file): Expect + * dynamic-ld.cc (octave_dynamic_loader::do_load_oct): + Search currently loaded .oct files by file name. Don't search + currently loaded files for functions. + (octave_shlib_list::find_file, octave_shlib_list::do_find_file): + New functions. + (octave_shlib_list::search, octave_shlib_list::do_search): Delete. + + * dynamic-ld.cc (octave_dynamic_loader::do_load_oct): No need to + do load_path lookups here. + (octave_shlib_list::iterator, octave_shlib_list::const_iterator): + New typedefs. + (octave_shlib_list::do_remove, octave_shlib_list::do_search, + octave_shlib_list::do_display): Use them. + (octave_mex_file_list::iterator, octave_mex_file_list::const_iterator): + New typedefs. + (octave_mex_file_list::do_remove): Use them. + + 2008-05-03 Rafael Laboissiere + + * DLD-FUNCTIONS/time.cc, file_io.cc: Use ischar instead of + deprecated isstr. + + 2008-04-30 John W. Eaton + + * dynamic-ld.cc (octave_dynamic_loader::do_load_oct): + If function already exists, reload it anyway. Clear existing + oct_file only if reloading a function from the same file. + (octave_shlib_list::display): New static function. + (octave_shlib_list::do_display): New function. + + * symtab.cc (out_of_date_check_internal): Better handling for + functions found in files by relative file names. + (load_out_of_date_fcn): New function. + + * ls-oct-ascii.cc (extract_keyword): Return early if first char is + not a comment character. + (read_ascii_data): Accept .nargin. and .nargout. as valid identifiers. + + * ov-fcn-handle.cc: Combine tests. Test saving and loading + handles for built-in, .oct, and .m functions. + (octave_fcn_handle::save_ascii, octave_fcn_handle::save_binary, + octave_fcn_handle::save_hdf5, octave_fcn_handle::print): + Avoid dereferencing invalid pointer. + + * data.cc: Fix tests. Use "%!assert", not "%! assert" for + individual assert tests. + + 2008-04-30 Jaroslav Hajek + + * ov-base.cc, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, + ov-bool.h, ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, + ov-cx-sparse.cc, ov-cx-sparse.h, ov-intx.h, ov-range.h, + ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h, + ov-scalar.cc, ov-scalar.h, ov.h: + Provide log2 mapper function. + * data.cc (Flog2): New function. + + 2008-04-25 John W. Eaton + + * pt-stmt.h (tree_statement_list::function_body): New data member. + (tree_statement_list::tree_statement_list): Initialize it. + (tree_statement_list::mark_as_script_body): New function. + (tree_statement::maybe_echo_code, tree_statement::eval): + Rename in_function_body argument to in_function_or_script_body. + * pt-stmt.cc (tree_statement::eval): Only set statement in call + stack if in_function_or_script_body is true. + + * pt-stmt.cc (tree_statement_list::eval): Call elt->eval with + function_body || script_body. + * ov-usr-fcn.cc (octave_user_script::octave_user_script): + command list as script body here. + (octave_user_function::octave_user_function): + Mark command list as function body here. + * parse.y (start_function, make_anon_fcn_handle): Not here. + + * toplev.h, toplev.cc (octave_call_stack::backtrace, + octave_call_stack::do_backtrace): New arg, N. Skip innermost N + stack frames. + + * debug.cc (F__dbstack__): New function. + (current_stack_frame): New static variable. + + * error.cc (verror, pr_where): Use octave_call_stack instead of + tree_statement stack to get line and column information. + (pr_where): Use octave_call_stack instead of tree_statement stack + to get current statement. + * input.cc (get_user_input): Extract current line number from + octave_call_stack instead of tree_statement_stack. + * pt-stmt.cc (tree_statement::eval): Put current statement on + octave_call_stack instead of tree_statement_stack. + * pt-stmt.h, pt-stmt.cc (class tree_statement_stack): Delete. + + * toplev.h, toplev.cc (octave_call_stack::call_stack_elt): + New nested struct. + (octave_call_stack::cs): Now a deque of call_stack_elts. + Change all uses. + (octave_call_stack::current_statement, + octave_call_stack::current_line, + octave_call_stack::current_column, + octave_call_stack::top_statement, + octave_call_stack::set_statement, octave_call_stack::backtrace): + New static functions. + (octave_call_stack::do_current_line, + octave_call_stack::do_current_column, + octave_call_stack::do_top_statement, + octave_call_stack::do_set_statement, + octave_call_stack::do_backtrace): New member functions. + + 2008-04-24 John W. Eaton + + * toplev.h, toplev.cc (octave_call_stack::unwind_pop_script): + Delete unused function. + + * ov-usr-fcn.cc: Move constructor definitions here, from ov-usr-fcn.h. + * ov-usr-fcn.h (octave_user_script::octave_user_script): + Also Initialize t_parsed and t_checked. + + 2008-04-24 Jaroslav Hajek + + * ov-usr-fcn.h (octave_user_script::octave_user_script): + Initialize call_depth. + + 2008-04-24 John W. Eaton + + * file-io.cc (do_stream_open): Return -1 for directories. + + 2008-04-23 John W. Eaton + + * DLD-FUNCTIONS/__qp__.cc (qp): Avoid bounds error when removing + constraint from active set. + + * lex.l (text_yyinput): New function. Use it in place of yyinput. + (next_token_is_sep_op, scan_for_comments, eat_whitespace, + have_continuation): No need to check for CR or CRLF. + * parse.y (text_getc): Also return NL for single CR. + + 2008-04-32 Michael Goffioul + + * input.cc (get_input_from_file): Open file in binary mode. + + 2008-04-20 John W. Eaton + + * oct-stream.cc (octave_stream::read): Allow single data type + specification but return double. + + 2008-04-18 John W. Eaton + + * lex.l, lex.h (process_comment): New arg, start_in_block. Call + grab_block_comment if start_in_block is true. Change all uses. + * lex.l (grab_block_comment): New function. + (grab_comment_block): New arg, at_bol. Change all uses. + Call grab_block_comment if we find the start of a block comment. + (block_comment_nesting_level): New static variable. + (^{S}*{CCHAR}\{{S}*{NL}): New rule. + (<>): Warn about open block comments. + (reset_parser): Set block_comment_nesting_level to zero. + * parse.y (parse_fcn_file): Stash help text from + gobble_leading_white_space after calling reset_parser. + (text_getc): Keep track of input_line_number here. + (skip_white_sapce): Don't increment input_line_number here. + * lex.l (grab_comment_block): Or here. + + * lex.l (Vdisplay_tokens): New static variable. + (F__display_tokens__): New function. + (display_token): New function. + (DISPLAY_TOK_AND_RETURN): New macro. + (COUNT_TOK_AND_RETURN): Use DISPLAY_TOK_AND_RETURN. + ([\"\'], "'", \"): Move handle_string outside of + COUNT_TOK_AND_RETURN macro parameter list. + (handle_identifier): Don't use macros to return token values here. + ({S}*{COMMENT}{SNLCMT}*|{S}*{NL}{SNLCMT}*): + Recognize block comments here. + + * pr-output.cc (Fdisp): If nargout > 0, produce an sq-string + unless arg is a dq-string. + + 2008-04-17 John W. Eaton + + * parse.y (looks_like_copyright): Handle leading whitespace. + (class stdio_stream_reader): New class. + (skip_white_space): New function. + (gobble_leading_white_space): New arg, EOF. Change all uses. + Use skip_white_space and grab_comment_block to process comments. + (process_leading_comments): Delete. + (parse_fcn_file): Call gobble_leading_white_space instead of + process_leading_comments. + Skip parsing if gobble_leading_white_space detects EOF. + * lex.l (process_comment): Delete CCHAR arg. Change all uses. + ({CCHAR}): Unput comment character before calling process_comment. + (grab_comment_block): Rename from grab_help_text. Don't discard + spaces from comment text. Update input_line_number and + current_input_column as characters are read. Warn only once about + incompatible comment characters in a given block of comments. + Use stream_reader class instead of accessing yyinput and yyunput + directly. + (class flex_stream_reader): New class. + (process_comment): Use grab_comment_block to handle all comments. + Don't call maybe_gripe_matlab_incompatible_comment. + Always store comment text returned by grab_comment_block. + * lex.h (grab_comment_block): Provide decl. + (class stream_reader): New class. + + 2008-04-16 John W. Eaton + + * parse.y (Fautoload, Fmfilename): Call + octave_call_stack::caller_user_code, not + octave_call_stack::caller_user_script_or_function. + * toplev.cc, toplev.h (octave_call_stack::caller_user_code): + Rename from octave_call_stack::caller_user_script_or_function. + (octave_call_stack::do_caller_user_code): Rename from + octave_call_stack::do_caller_user_script_or_function. + * ov-usr-fcn.h (class octave_user_code): New class, derived from + octave_fucntion. + (class octave_user_function, class octave_user_script): Derive + from octave_user_code, not octave_function. + (octave_user_script::user_code_value, + octave_user_function::user_code_value): New functions. + * ov.cc (octave_value::user_script_value, + octave_value::user_code_value): New functions. + * ov.h: Provide decls. + (octave_value::is_user_code, octave_value::is_user_script): + New functions. + * ov-base.cc (octave_base_value::user_script_value, + octave_base_value::user_code_value): New virutal functions. + * ov-base.h: Provide decls. + (octave_base_value::is_user_script, octave_base_value::is_user_code): + New virtual functions. + * error.cc (verror, pr_where, error_2, warning_1): + Call octave_call_stack::caller_user_code instead of + octave_call_stack::caller_user_script_or_function + * input.cc (get_user_input): Likewise. + * debug.h (bp_table::breakpoint_map): Use pointer to + octave_user_code instead of octave_user_function. + * debug.cc (get_user_code): Rename from get_user_function. + Return pointer to octave_user_code instead of octave_user_function. + Change all uses. + (bp_table::do_add_breakpoint, bp_table::do_remove_breakpoint, + bp_table::do_remove_all_breakpoints_in_file, + bp_table::do_get_breakpoint_list): + Avoid dereferencing invalid pointers. + (parse_dbfunction_params): Call + octave_call_stack::caller_user_code, not + octave_call_stack::caller_user_script_or_function. + + * load-save.cc (Fsave): Fix continuation character in doc string. + + * pt-walk.h (tree_walker::visit_function_def): New function. + * pt-pr-code.cc (tree_print_code::visit_function_def): New function. + * pt-pr-code.h: Provide decl. + * pt-bp.cc (tree_breakpoint::visit_function_def): New function. + * pt-bp.h: Provide decl. + * pt-check.cc (tree_checker::visit_function_def): New function. + * pt-check.h: Provide decl. + + * parse.y (finish_function): Return ptr to tree_function_def object + if curr_fcn_ptr is not defined. Avoid dereferencing invalid pointers. + (frob_function): Set curr_fcn_ptr only when reading a function file. + (function): Call finish function in both cases to generate value + of production. + + * pt-cmd.h, pt-cmd.cc (tree_function_def): New class. + + * parse.y (parse_and_execute): Delete. + * parse.h: Delete decl. + + * pt-pb.cc (tree_breakpoint::visit_octave_user_script): New function. + * pt-pb.h: Provide decl. + * pt-check.cc (tree_checker::visit_octave_user_script): New function. + * pt-check.h: Provide decl. + * pt-pr-code.cc (tree_print_code::visit_octave_user_script): + New function. + * pt-pr-code.h: Provide decl. + * pt-walk.h (visit_octave_user_script): New pure virtual function. + + * parse.y (make_script, process_leading_comments, + looking_at_function_keyword): New static functions. + (SCRIPT): New token. + (script): New non-terminal. + (command): Handle script here. + (parse_fcn_file): Eliminate EXEC_SCRIPT argument. Change all + callers. Parse scripts and return an octave_user_script rather + than executing them here. + (load_fcn_from_file): Handle script and function files the same. + (source_file): Call d_multi_index_op on object returned by + parse_fcn_file. + (is_function_file): Delete. + (gobble_leading_white_space): Don't recurse. Simplify. Eliminate + SKIP_CODE, IN_PARTS, and SAVE_COPYRIGHT arguments. Change all + callers. + (octave_function_ptr): Delete unused typedef. + (get_help_from_file): If help text isn't found by + gobble_leading_whitespace, parse file to find it. + + * lex.l (SCRIPT_FILE_BEGIN): New exclusive start state. + (prep_lexer_for_script): New function. + (grab_help_text): New arg, EOF. + (process_comment): New function. + ({CCHAR}): Use it. + * lex.h (prep_lexer_for_script): Provide decl. + + * lex.h, lex.cc, parse.y (lexical_feedback::beginning_of_function): + Delete data member and all uses. + + * ov-usr-fcn.cc (octave_user_script::~octave_user_script): + Move destructor here from ov-usr-fcn.h. Delete cmd_list. + (octave_user_script::subsref, octave_user_script::accept, + octave_user_script::traceback_error): New functions. + (octave_user_script::do_multi_index_op): + Execute cmd_list instead of calling source_file. + * ov-usr-fcn.h (octave_usr_script::cmd_list, + octave_usr_script::t_parsed, octave_usr_script::t_checked, + octave_usr_script::call_depth): New data members. + (octave_usr_script::octave_usr_script): Initialize all data members. + (octave_usr_script::octave_usr_script (const std::string&, const + std::string&, tree_statement_list *, const std::string&)): + New constructor. + (octave_usr_script::function_value, + octave_usr_script::user_script_value, mark_fcn_file_up_to_date, + octave_usr_script::stash_fcn_file_time, + octave_usr_script::time_parsed, octave_usr_script::time_checked, + octave_usr_script::subsref, octave_usr_script::body): New functions. + (octave_user_script::subsref, octave_user_script::accept, + octave_user_script::traceback_error): Provide decls. + + 2008-04-14 Jaroslav Hajek + + * oct-stream.cc (octave_scan_1): Ensure digit following X is hex + digit before reading number as hex. + + 2008-04-14 John W. Eaton + + * file-io.cc (Ffread): Allow SKIP arg to be omitted. + (Ffwrite): Likewise. Handle args in a way consistent with Ffread. + + 2008-04-09 Michael Goffioul + + * DLD-FUNCTIONS/dispatch.cc: Replace system("echo '...'>...") calls + with real file writing. + + 2008-04-07 Jaroslav Hajek + + * DLD-FUNCTIONS/qr.cc (Fqrshift): New function. + * DLD-FUNCTIONS/chol.cc (Fcholinsert, Fcholdelete, Fcholshift): + New functions. + + 2008-04-04 John W. Eaton + + * parse.y (make_constant): Handle escape sequences in dq-strings. + + 2008-04-03 John W. Eaton + + * parse.y (make_constant): Also stash original text for strings. + + * ov-fcn-handle.cc (octave_fcn_handle::subsref): + Don't call next_subsref here. + + 2008-04-01 John W. Eaton + + * pt-id.h (do_lookup (bool&, bool)): Delete. + (do_lookup (tree_argument_list *, const string_vector&, + octave_value_list&, bool&)): Call MAYBE_DO_BREAKPOINT here. + + 2008-04-02 David Bateman + + * graphics.cc (void gnuplot_backend::close_figure (const + octave_value&) const): Allow for an input and output stream. + + 2008-03-28 Jaroslav Hajek + + * DLD-FUNCTIONS/lookup.cc: New file. + * Makefile.in (DLD_XSRC): Add it to the list. + + 2008-03-28 David Bateman + + * ov-complex.cc (SCALAR_MAPPER, CD_SCALAR_MAPPER): New macro for + complex values with zero imaginary part. + (erf, erfc, gamma, lgamma): Use the new mappers to define these + mapper functions. + * ov-complex.h (erf, erfc, gamma, lgamma): Declare them. + * ov-cx-mat.cc (any_element_less_than, any_element_greater_than): + New static functions + (DARRAY_MAPPER, CD_ARRAY_MAPPER): New macro for complex values + with zero imaginary part. + (erf, erfc, gamma, lgamma): Use the new mappers to define these + mapper functions. + * ov-cx-mat.h (erf, erfc, gamma, lgamma): Declare them. + * ov-cx-sparse.cc (any_element_less_than, any_element_greater_than): + New static functions + (DSPARSE_MAPPER, CD_SPARSE_MAPPER): New macro for complex values + with zero imaginary part. + (erf, erfc, gamma, lgamma): Use the new mappers to define these + mapper functions. + * ov-cx-sparse.h (erf, erfc, gamma, lgamma): Declare them. + * ov-re-sparse.cc (CD_SPARSE_MAPPER): Use correct mapper functors. + * mapper.cc: Add tests for the above cases. + + 2008-03-27 John W. Eaton + + * DLD-FUNCTIONS/max.cc: Rename from minmax.cc. + * Makefile.in (DLD_XSRC): Rename minmax.cc to max.cc. + + * DLD-FUNCTIONS/__convn__.cc (convn): Use traits class and + typedefs to allow all types to be deduced from argument types. + + 2008-03-27 Sᅵren Hauberg + + * DLD-FUNCTIONS/__convn__.cc (Fconvn): Allow convolving real data with + complex data. + + 2008-03-26 John W. Eaton + + * ov-range.h (octave_range::subsref (const std::string&, + const std::list&, int)): + Forward to simple subsref. + * ov-base-sparse.h (octave_base_sparse::subsref (const std::string&, + const std::list&, int)): Likewise. + * ov-base-scalar.h (octave_base_sparse::subsref (const std::string&, + const std::list&, int)): Likewise. + * ov-base-matrix.h (octave_base_matrix::subsref (const std::string&, + const std::list&, int)): Likewise. + + * ov-struct.cc, ov-cell.h (octave_cell::subsref (const + std::string&, const std::list&, int)): + Define nargout version of subsref instead of simple version. + * ov-struct.cc, ov-struct.h (octave_struct::subsref (const + std::string&, const std::list&, int)): + Define nargout version of subsref instead of simple version. + + * ov-builtin.h (octave_builtin::subsref (const std::string&, + const std::list&): Forward to nargout subsref. + * ov-cell.h (octave_cell::subsref (const std::string&, + const std::list&)): + * ov-class.h (octave_class::subsref (const std::string&, + const std::list&): Likewise. + * ov-fcn-handle.h (octave_fcn_handle::subsref (const std::string&, + const std::list&): Likewise. + * ov-list.h (octave_list::subsref (const std::string&, + const std::list&): Likewise. + * ov-mex-fcn.h (octave_mex_function::subsref (const std::string&, + const std::list&): Likewise. + * ov-struct.h (octave_struct::subsref (const std::string&, + const std::list&)): + * ov-usr-fcn.h (octave_user_function::subsref (const std::string&, + const std::list&): Likewise. + + * ov.cc (octave_value::subsref): Use value of nargout instead of + is_constant method to decide which type of subsref method to call. + (octave_value::assign): Always call simple subref method here. + + * DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/det.cc, + DLD-FUNCTIONS/getpwent.cc, DLD-FUNCTIONS/inv.cc, + DLD-FUNCTIONS/qr.cc, DLD-FUNCTIONS/symrcm.cc, file-io.cc): + Texinfo fixes. + + 2008-03-26 Sᅵren Hauberg + + * DLD-FUNCTIONS/__convn__.cc (Fconvn): + Call complex_array_value to extract N-d array. + + 2008-03-26 John W. Eaton + + * ov-base-sparse.cc (octave_base_sparse::print_raw): + Also display percentage of elements that are nonzero. + + 2008-03-25 Sᅵren Hauberg + + * DLD-FUNCTIONS/__convn__.cc: New file. + * Makefile.in: Add __convn__.cc + + 2008-03-25 David Bateman + + * DLD-FUNCTIONS/hex2num.cc: New function + * Makefile.in (DLD_XSRC): Add hex2num.cc. + + 2008-03-25 Jaroslav Hajek + + * mappers.cc (Fexpm1, Flog1p): New functions. + * ov-base.cc, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, + ov-bool.h, ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, + ov-cx-sparse.cc, ov-cx-sparse.h, ov-range.h, ov-re-mat.cc, + ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h, ov-scalar.cc, + ov-scalar.h, ov.h: + Provide expm1 and log1p functions. + + * mappers.cc (Froundb): New functions + * ov-base.cc, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, + ov-bool.h, ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, + ov-cx-sparse.cc, ov-cx-sparse.h, ov-intx.h, ov-range.h, + ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h, + ov-scalar.cc, ov-scalar.h, ov.h: + Provide roundb mapper function. + + 2008-03-25 Jaroslav Hajek + + * load-save.cc (save_vars): Handle -struct modifier. + (save_fields): New function. + (Fsave): Document new feature. + + 2008-03-25 John W. Eaton + + * lex.h (lexical_feedback::looking_at_initializer_expression): + New data member. + * lex.l (lexical_feedback::init): Initialize it. + (handle_identifier): Don't unconditionally force identifiers to be + variables in the current scope. Don't call force_local_variable + for symbols that appear in parameter initializer expressions. + * parse.y (decl_param_init): New parser "subroutine". + (decl2): Use it. Set lexer_flags.looking_at_initializer_expression + to false after parsing initializer. + + 2008-03-24 David Bateman + + * data.cc (map_s_s): Fix for sparse/sparse mappers that resulted + in an empty sparse matrix being returned. + (Fhypot): New function based on the libm hypot function. + + 2008-03-24 Primozz Peterlin + + * variables.cc (Fexist): Doc fix. + + 2008-03-23 David Bateman + + * OPERATORS/op-int.h: Add el_div and el_ldiv operators to the + binops that were missing them. Added elem_pow functions for mixed + integer floating point cases. Initialize the mixed integer + floating point cases. + + 2008-03-21 John W. Eaton + + * ov-cell.h (octave_cell::is_constant): Return true. + * ov-cell.h, ov-cell.cc (octave_cell::subsref (const std::string&, + const std::list&)): Define. + (octave_cell::subsref (const std::string&, + const std::list&, int)): Call panic_impossible. + + * ov-struct.h (octave_struct::is_constant): New function. + * ov-struct.h, ov-struct.cc (octave_struct::subsref (const std::string&, + const std::list&)): Define. + (octave_struct::subsref (const std::string&, + const std::list&, int)): Call panic_impossible. + + 2008-03-21 David Bateman + + * DLD-FUNCTIONS/amd.cc: New file. + * Makefile.in (DLD_XSRC): Add amd.cc. + + 2008-03-20 David Bateman + + * Cell.cc (Cell Cell::diag (void) const): delete. + (Cell Cell::diag (octave__idx_type) const):Rewrite in terms of + template classes function. + * Cell.h (Cell diag (void) const): delete. + + * ov.h (octave_value diag (octave_idx_type) const): New method. + * ov-base.h (virtual octave_value diag (octave_idx_type) const): + New virtual method. + * ov-base.cc (octave_value octave_base_value::diag + (octave_idx_type) const): New default method. + + * ov-base-mat.h (octave_value diag (octave_idx_type) const): New + method. + * ov-base-sparse.h (octave_value diag (octave_idx_type) const): New + method. + * ov-base-scalar.h (octave_value diag (octave_idx_type) const): New + method. + * ov-range.h (octave_value diag (octave_idx_type) const): New + method. + + * data.cc (make_diag, make_spdiag): Delete. + (Fdiag): Rewrite in terms of octave_value diag function. + + * data.cc (static octave_value make_diag (const Cell&, + octave_idx_type)): New instantiation of template function. + (static octave_value make_diag (const octave_value&, + octave_idx_type)): Allow cell arrays. + + * Cell.cc (Cell Cell::diag (void) const, Cell Cell::diag + (octave__idx_type)): New methods for diagonal matrices. + * Cell.h (Cell Cell::diag (void) const, Cell Cell::diag + (octave__idx_type)): Declare them. + + 2008-03-18 David Bateman + + * ov-re-mat.cc (lgamma): Convert to a allow negative arguments. + * ov-re-sparse.cc (lgamma): ditto. + * ov-scalar.cc (lgamma): ditto. + + * DLD-FUNCTIONS/minmax.cc: 64-bit indexing fix. + + 2008-03-13 John W. Eaton + + * ov-usr-fcn.cc (octave_user_function::octave_user_function): + Handle num_named_args in initialization list instead of functinon body. + + * octave.gperf: Eliminate varargin and varargout keywords. + * lex.l (is_keyword_token): Eliminate varargin_kw and varargout_kw + from switch statement. + * parse.y (return_list): Eliminate special cases for VARARGOUT. + Call validate on tree_parameter_list object. + (param_list1): Likewise, for VARARGIN. + * pt-misc.cc (tree_parameter_list::validate): New function. + (tree_parameter_list::mark_varargs_only): Now private. + (tree_parameter_list::mark_varargs): Now private. + * pt-misc.h (tree_parameter_list::validate): Provide decl. + + 2008-03-12 John W. Eaton + + * variables.cc (Vwhos_line_format): Omit print_dims parameter. + Fix doc string in Vwhos_line_format DEVAR. + (symbol_record_name_compare): Delete unused function. + (whos_parameter::dimensions): Delete struct field. + (symbol_info_list): New class. + (dimensions_string_req_first_space, make_dimensions_string, + dimensions_string_req_total_space): Delete. + (parse_whos_line_format): Move functionality to new + symbol_info_list class. + (print_symbol_info_line): Move functionality to new + symbol_info_list::struct symbol_info::displaly_line method. + (do_who): Simplify with new symbol_info_list class. + Handle index expressions in addition to symbol names. + + * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Fix separator detection. + + 2008-03-11 John W. Eaton + + * DLD-FUNCTIONS/eig.cc (Feig): Handle possible error from EIG. + * DLD-FUNCTIONS/qp.cc (qp, Fqp): Likewise. + * xpow.cc (xpow): Likewise. + + 2008-03-11 John W. Eaton + + * DLD-FUNCTIONS/dlmread.cc: Style fixes. + + 2008-03-11 David Bateman + + * DLD-FUNCTIONS/dlmread.cc: Function ported from octave forge. Add + spreadsheet style ranges. + * Makefile.in (DLD_XSRC): Add dlmread.cc. + + 2008-03-10 John W. Eaton + + * mex.cc (mxCreateLogicalScalar): Argument is now mxLogical. + + * data.cc (Fisfloat): New function. + * ov.h (octave_value::is_float_type): Ditto. + * ov-base.h (octave_base_value::is_float_type): Ditto. + * ov-complex.h (octave_complex): Ditto. + * ov-cx-mat.h (octave_complex_matrix): Ditto. + * ov-cx-sparse.h (octave_sparse_complex_matrix): Ditto. + * ov-range.h (octave_range): Ditto. + * ov-re-mat.h (octave_matrix): Ditto. + * ov-re-sparse.h (octave_sparse_matrix): Ditto. + * ov-scalar.h (octave_scalar): Ditto. + + * mxarray.h.in (mxLogical): Use unsigned char instead of int. + From Antwerpen, G. (Gert) van . + + 2008-03-07 John W. Eaton + + * ov-struct.cc (octave_struct::print_raw): Don't print contents fo + struct arrays that have more than one element. + + 2008-03-06 David Bateman + + * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Document that + the initial interpretation of a positive definite return from + matrix_type is that the matrix is "probably" positive definite and + not certainly so. + + 2008-03-06 John W. Eaton + + * parse.y: Move tests here from test/test_eval.m. + * DLD-FUNCTIONS/fft.cc: Move tests here from test/test_signal.m. + * DLD-FUNCTIONS/dassl.cc: Move tests here from test/test_diffeq.m. + * DLD-FUNCTIONS/lsode.cc: Move tests here from test/test_diffeq.m. + * DLD-FUNCTIONS/quad.cc: Move tests here from test/test_quad.m. + * DLD-FUNCTIONS/time.cc: Move tests here from test/test_system.m. + + 2008-03-06 Alexander Barth + + * DLD-FUNCTIONS/__lin_interpn__.cc (lookup): + Handle decreasing coordinate values. + + 2008-03-05 Jaroslav Hajek + + * DLD-FUNCTIONS/chol.cc (Fcholupdate): Adjust code to meet + Octave's coding guidelines. + + * DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete): Adjust + code to meet Octave's coding guidelines. + * DLD-FUNCTIONS/qr.cc (Fqrdelete): Fix incorrect test. + + * DLD-FUNCTIONS/qr.cc (Fqrinsert, Fqrdelete): Modify to use + 0-based indexing in liboctave's QR classes. + + 2008-03-04 Jaroslav Hajek + + * DLD-FUNCTIONS/chol.cc (Fcholupdate): New function. + + * DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete): + New functions. + + 2008-03-04 Ryan Rusaw + + * toplev.h (octave_call_stack::element): New static function. + (octave_call_stack::cs): Now std::deque instead of std::list. + + * pt-stmt.cc (curr_statement, curr_caller_statement): Delete. + * pt-stmt.h: Delete decls. + + * pt-stmt.h, pt-stmt.cc (tree_statement_stack): New class. + + * pt-stmt.cc (tree_statement::eval): Use tree_statement_stack + instead of curr_statement variable. + + * ov-usr-func.cc (octave_user_function::do_multi_index_op): + Don't set curr_caller_statement. + + * error.cc (verror, pr_where): Call tree_statement_stack::current_line + and tree_statement_stack::current_column instead of + instead of curr_statement->line and curr_statement->column. + * input.cc (get_user_input): Likewise. + + 2008-02-27 John P. Swensen + + * debug.cc (get_user_function): Call symtab::find_function instead + of symtab::find_user_function. + + 2008-02-27 John W. Eaton + + * oct-stream.cc (do_read): Stop reading if seek fails. + + 2008-02-26 John W. Eaton + + * ov-base-int.cc (octave_base_int_helper, + octave_base_int_helper_traits): New templates and specializations. + (octave_base_int_matrix::convert_to_str_internal, + octave_base_int_matrix::convert_to_str_internal): Use them. + + * DLD-FUNCTIONS/rand.cc (do_rand): Pass name of calling function + to octave_rand::state. + + * variables.cc (bind_ans): Handle cs-lists recursively. + + * ov-cs-list.h, ov-cs-list.cc (octave_cs_list::print, + octave_cs_list::print_raw): Delete. + + 2008-02-25 John W. Eaton + + * Cell.cc (Cell::map): New function. + * Cell.h (Cell::map): Declare. + (xisalnum, xisalpha, xisascii, xiscntrl, xisdigit, + xisgraph, xislower, xisprint, xispunct, xisspace, xisupper, + xisxdigit, xtoascii, xtolower, xtoupper): New mapper functions. + (ctype_mapper): New private typedef. + + * ov-cell.h (xisalnum, xisalpha, xisascii, xiscntrl, xisdigit, + xisgraph, xislower, xisprint, xispunct, xisspace, xisupper, + xisxdigit, xtoascii, xtolower, xtoupper): New mapper functions. + + 2008-02-25 Michael Goffioul + + * ov-scalar.cc (octave_scalar::round): Use xround instead of ::round + in mapper implementation. + + 2008-02-25 John W. Eaton + + * ov-base.cc (UNDEFINED_MAPPER, STRING_MAPPER): New macros. Use + them to define mapper functions. + + * mappers.cc (Fisalnum, Fisalpha, Fisascii, Fiscntrl, Fisdigit, + Fisgraph, Fislower, Fisprint, Fispunct, Fisspace, Fisupper, + Fisxdigit, Ftoascii, Ftolower, Ftoupper): + Use DEFUNX to define ctype mapper functions. + Use new function names. + + * ov-base.h, ov-base.cc, ov-str-mat.h, ov-str-mat.cc: + Prepend x to ctype mapper function names. + + * graphics.h.in (row_vector_property::row_vector_property): + Set default constraints here. + (row_vector_property::add_constraint): New function. + (row_vector_property::validate): Delete decl. + (axes::properties::init): Use single-arg add_constraint function + for xlim, ylim, zlim, clim, and alim properties. + + * graphics.cc (row_vector_property::validate): Delete. + + * graphics.cc (axes::properties::update_camera, + axes::properties::update_aspectratios): + Avoid shadow warnings from GCC. + + * graphics.h.in (base_properties::get_bounding_box): + Avoid unused argument warning from GCC. + + * graphics.h.in (array_property::add_constraint): Arg is now const + reference, not value. + + * graphics.h.in, graphics.cc (class row_vector_property): New class. + (axes::properties): xlim, ylim, zlim, clim, alim, xtick, ytick, + ztick properties are now row_vector_property objects instead of + array_property objects. + + * genprops.awk: Special case row_vector_property in the same way + as array_property. + + 2008-02-22 John W. Eaton + + * DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/colamd.cc, + DLD-FUNCTIONS/convhulln.cc, DLD-FUNCTIONS/dmperm.cc, + DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/regexp.cc, + DLD-FUNCTIONS/symbfact.cc, zfstream.h, zfstream.cc: + Use 0 instead of NULL. + + 2008-02-22 David Bateman + + * DLD-FUNCTIONS/chol.c (Fchol, Fcholinv, Fchol2iinv): Treat + sparse matrices. Add the "lower" and "vector" flags. + * DLD-FUNCTIONS/inv.c (Finv): Treat sparse matrices. + * DLD-FUNCTION/sparse.cc (static bool is_sparse (const + octave_value&)): Remove and use arg.is_sparse_type () instead. + (Fspcumprod, Fspcumsum, Fspprod, spsum, spsumsq, spdiag): Remove. + * DLD-FUNCTIONS/splu.cc: Remove. + * DLD-FUNCTIONS/lu.cc: Treat sparse matrices, Add "vector" flag. + * DLD-FUNCTIONS/spchol.cc: Move to symbfact.cc + * DLD-FUNCTIONS/symbfact.cc: Remove cholesky functions Fspchol, + Fspcholinv, Fspchol2inv. + * DLD-FUNCTIONS/luinc.cc: Modify for new sparse LU + constructors. Ass the 'vector' flag. + * DLD-FUNCTIONS/spparms.cc: Add the sum_tol flag. + + * Makifile.in (DLD_XSRC): Remove spchol.cc, splu.cc and add + symbfact.cc + * data.cc (NATIVE_REDUCTION): Treat sparse matrices + (DATA_REDUCTION): Ditto. + (template static octave_value make_spdiag (const T&, + octave_idx_type)): New template function for sparse diag + function. Instantiate it. + (static octave_value make_diag (const octave_value&, + octave_idx_type): Use make_spdiag for sparse matrice. + (Fatan2): Compatibility fixes for mixed full/sparse matrices. + + 2008-02-21 John W. Eaton + + * DLD-FUNCTIONS/fsolve.cc (fsolve_user_jacobian): + Check dimensions of user-supplied Jacobian matrix. + (fsolve_user_function): Check for non-square systems. + + 2008-02-20 John W. Eaton + + * data.cc (map_d_m, map_m_d, map_m_m, Fatan2, Ffmod): + Handle N-d arrays. + + * ov-bool-mat.h (octave_bool_matrix (const Array2&)): Delete. + + 2008-02-20 David Bateman + + * DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/find.cc, + * DLD-FUNCTIONS/minmax.cc, DLD-FUNCTIONS/qr.cc: + Treat sparse matrices. + + * DLD-FUNCTIONS/sparse.cc (Fspmin, Fspmax, Fatan2): Remove functions. + + * DLD-FUNCTIONS/dmperm.cc: Rename from spqr.cc. + (Fspqr): Delete function. + + * DLD-FUNCTIONS/spqr.cc, DLD-FUNCTIONS/spdet.cc, + DLD-FUNCTIONS/spfind.cc: Remove. + + * Makefile.in (DLD_XSRC): Add dmperm.cc to the list. + Delete det.cc, find.cc, minmax.cc, and qr.cc from the list. + + * Makefile.in (OV_SRC): Remove ov-mapper.cc. + (OV_INCLUDES): Remove ov-mapper.h. + (DEFUN_PATTERN): No longer accept DEFUN_MAPPER as valid. + * ov-mapper.cc, ov-mapepr.h: Delete, remove all includes of + ov-mapper.h from all files. + + * op-b-sbm.cc, op-bm-sbm.cc, op-smb-b.cc, op-sbm-bm.cc: Include + ov-bool-sparse.h. + + * defun-int.h (DEFUN_MAPPER_INTERNAL, install_builtin_mapper): + Remove. + * defun.cc (install_builtin_mapper): Ditto. + * defun.h (DEFUN_MAPPER): Remove. + + * mappers.cc: Rewrite all mapper function using DEFUN and newly + introduced octave_value mapper functions. + (dummyp, xabs, xisalnum, xisascii, xiscntrl, xisdigit, + xisgraph, xislower, xisprint, xispunct, xisspace, xisupper, + xtoascii, xtolower, xtoupper, xconj, ximag, xreal): Remove + static wrapper functions. + + * mkbuiltins (XDEFUN_MAPPER_INTERNAL, install_builtin_functions): + Remove. + * mkgendoc (XDEFUN_MAPPER_INTERNAL): Remove. + + * ov.cc (octave_mapper::register_type): Remove. + + * ov.h (abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, + ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, gamma, + imag, isinf, isna, isnan, lgamma, log, log10, real, round, signum, + sin, sinh, sqrt, tan, tanh, isalnum, isalpha, isascii, iscntrl, + isdigit, isgraph, islower, isprint, ispunct, isspace, isupper, + isxdigit, toascii, tolower, toupper): + New octave_value mapper functions. + + * ov-base.h (abs, acos, acosh, angle, arg, asin, asinh, atan, + atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, + gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round, + signum, sin, sinh, sqrt, tan, tanh, isalnum, isalpha, isascii, + iscntrl, isdigit, isgraph, slower, isprint, ispunct, isspace, + isupper, isxdigit, toascii, tolower, toupper): + New virtual mapper functions. + * ov-base.cc (abs, acos, acosh, angle, arg, asin, asinh, atan, + atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, + gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round, + signum, sin, sinh, sqrt, tan, tanh, isalnum, isalpha, isascii, + iscntrl, isdigit, isgraph, slower, isprint, ispunct, isspace, + isupper, isxdigit, toascii, tolower, toupper): + Base versions of mapper functions. + + * ov-bool-mat.h (abs, acos, acosh, angle, arg, asin, asinh, atan, + atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, + gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round, + signum, sin, sinh, sqrt, tan, tanh): + Mapper function recast boolen matrix as double. + * ov-bool.h (abs, acos, acosh, angle, arg, asin, asinh, atan, + atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, + gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round, + signum, sin, sinh, sqrt, tan, tanh): Ditto. + * ov-bool-sparse.h (abs, acos, acosh, angle, arg, asin, asinh, + atan, atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, + floor, gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, + round, signum, sin, sinh, sqrt, tan, tanh): Ditto. + (char_array_value): New method to convert to charNDArray. + * ov-bool-sparse.cc (char_array_value): New method to convert to + charNDArray. + * ov-complex.cc (char_array_value): ditto. + (xabs, ximag, xreal): Static wrapper functions. + (abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil, + conj, cos, cosh, exp, finite, fix, floor, imag, isinf, isna, + isnan, log, log10, real, round, signum, sin, sinh, sqrt, tan, + tanh): New mapper methods. + * ov-complex.h: Provide decls. + + * ov-cx-mat.cc (char_array_value): New method to convert to + charNDArray. + (xabs, ximag, xreal): Static wrapper functions. + (abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil, + conj, cos, cosh, exp, finite, fix, floor, imag, isinf, isna, + isnan, log, log10, real, round, signum, sin, sinh, sqrt, tan, + tanh): New mapper methods. + * ov-cx-mat.h: Provide decls. + + * ov-cx-sparse.cc (char_array_value): New method to convert to + charNDArray. + (xabs, ximag, xreal): Static wrapper functions. + (abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil, + conj, cos, cosh, exp, finite, fix, floor, imag, isinf, isna, + isnan, log, log10, real, round, signum, sin, sinh, sqrt, tan, + tanh): New mapper methods. + * ov-cx-sparse.h: Provide decls. + + * ov-intx.h (abs, signum, imag, ceil, conj, fix, floor, real, + round, finite, isinf, isna, isnan): Define for both matrix and + scalar classes. + + * ov-range.h (abs, acos, acosh, angle, arg, asin, asinh, atan, + atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, + gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round, + signum, sin, sinh, sqrt, tan, tanh): New mapper functions. + + * ov-re-mat.cc (any_element_less_than): Static function to check if + any elemet was less than a value, + (any_element_greater_than): Ditto with greater than. + (abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil, + conj, cos, cosh, erf, erfc, exp, finite, fix, floor, gamma, imag, + isinf, isna, isnan, lgamma, log, log10, real, round, signum, sin, + sinh, sqrt, tan, tanh): New mapper functions. + * ov-re-mat.h: Provide decls. + + * ov-scalar.cc (any_element_less_than): Static function to check if + any elemet was less than a value, + (any_element_greater_than): ditto with greater than. + (abs acos acosh angle arg asin asinh atan atanh + ceil conj cos cosh erf erfc exp finite fix floor gamma imag + isinf isna isnan lgamma log log10 real round signum sin sinh + sqrt tan tanh): New mapper functions. + * ov-scalar.h: Provide decls. + + * ov-str-mat.cc (xisalnum, xisascii, xiscntrl, xisdigit, + xisgraph, xislower, xisprint, xispunct, xisspace, xisupper, + xtoascii, xtolower, xtoupper): New static wrapper functions. + (isalnum, isalpha, isascii, iscntrl, isdigit, isgraph, islower, + isprint, ispunct, isspace, isupper, isxdigit, toascii, tolower, + toupper): New mapper methods. + * ov-str-mat.h: Provide decls. + + 2008-02-18 David Bateman + + * data.cc (Fatan2): Reject arguments that are integer types. + + 2008-02-19 Jaroslav Hajek + + * DLD-FUNCTIONS/qr.cc: Doc fix. + + 2008-02-18 John W. Eaton + + * symtab.h + (symbol_table::fcn_info::fcn_info_rep::clear_unlocked_functions): + symbol_table::fcn_info::fcn_info_rep::clear_cmdline_function, + symbol_table::fcn_info::fcn_info_rep::clear_autoload_function): + New functions. + (symbol_table::fcn_info::fcn_info_rep::clear_user_function): + Don't clear locked functions. + (symbol_table::fcn_info::fcn_info_rep::clear_mex_function): + Call clear_user_function instead of setting function_on_path directly. + (symbol_table::fcn_info::fcn_info_rep::clear): + Use new functions to do the real work. + + * ov.h (octave_value::lock, octave_value::unlock, + octave_value::islocked): New functions. + * ov-base.cc (octave_base_value::lock, octave_base_value::unlock): + New functions. + * ov-base.h Provide decls. + (octave_base_value::islocked): New function. + * ov-fcn.h (octave_function::islocked): Now const. + + 2008-02-15 John W. Eaton + + * ov-builtin.cc (octave_builtin::do_multi_index_op): + Catch possible octave_execution_exception. + * ov-mex-fcn.cc (octave_mex_function::do_multi_index_op): Likewise. + * ov.cc (do_binary_op, do_cat_op, do_unary_op, + octave_value::do_non_const_unary_op): Likewise. + + 2008-02-14 John W. Eaton + + * DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/qz.cc: + Don't check f77_exception_encountered. + + * sighandlers.cc (user_abort): If interrupting immediately, set + octave_interrupt_state if it is not already set. + + * pt-stmt.cc (tree_statement::eval): Catch execution exceptions. + + * octave.cc (lo_error_handler): New static function. + (initialize_error_handlers): Set liboctave_error_handler to + lo_error_handler, not error. + + * DLD-FUNCTIONS/urlwrite.cc (urlget): Call octave_rethrow_exception + instead of octave_throw_interrupt_exception. + * utils.cc (BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_FOR_VSNPRINTF): + Likewise. + + 2008-02-12 David Bateman + + * graphics.h.in: Implement the cdatamapping property in patch and + image objects. + + 2008-02-12 John W. Eaton + + * pt-loop.cc (tree_simple_for_command::eval): Compute range + element with multiplication. + + 2008-02-11 John W. Eaton + + * Makefile.in ($(MAKEDEPS)): Skip dependencies if omit_deps is defined. + + 2008-02-09 John W. Eaton + + * pr-output.cc (set_range_format): Eliminate sign arg. + Change all callers. + + 2008-02-08 John W. Eaton + + * ov-struct.cc (octave_struct::subsref): Allow Cell::index to resize. + + * input.cc (interactive_input): Eliminate debug arg. Change All uses. + (get_user_input): Don't process input_buf if there is an error. + Call reset_error_handler instead of setting error_state to 0. + + 2008-02-08 Michael Goffioul + + * graphics.h.in (callback_property::execute): New static + helper method (useful to execute callbacks by name). + * graphics.cc (callback_property::execute): Likewise. + (execute_callback): Avoid undefined argument when executing + callback. Do not use arguments when the callback is a string. + + 2008-02-07 John W. Eaton + + * ov-range.h (octave_range::sort): New functions. + + 2008-02-07 David Bateman + + * Makefile.in (DLD_XSRC): Delete spkron.cc. + * DLD-FUNCTIONS/spkron.cc: Delete. + * DLD-FUNCTIONS/kron.cc: Include here and dispatch to the sparse + version if either argument is sparse. + + 2008-02-06 John W. Eaton + + * Makefile.in (parse.cc): Also use --defines option for bison. + + 2008-02-06 Michael Goffioul + + * graphics.cc (axes::properties::set_defaults): Set default axes + color to white. + + 2008-02-06 John W. Eaton + + * Makefile.in (parse.cc): Use "-o $@" instead of renaming y.tab.c. + (maintainer-clean): Don't remove y.tab.c. + + * Makefile.in (parse.cc : parse.y): Use mv instead of move-if-change. + (stamp-prereq, stamp-liboctave-prereq): Eliminate. + (clean): Don't remove stamp-prereq and stamp-liboctave-prereq. + (OPT_BASE, OPT_IN, OPT_INC): New macros. + (OPT_HANDLERS): Define in terms of OPT_BASE. + ($(OPT_INC) : %.h : %.in): New pattern rule. + (PREREQ): New macro. + ($(MAKEDEPS)): Simplify with $(PREREQ). + + 2008-02-05 John W. Eaton + + * Makefile.in: Unconditionally include $(MAKEDEPS). + Mark $(MAKEDEPS) as .PHONY targets if omit_deps is true. + + 2008-02-05 Michael Goffioul + + * graphics.h.in (base_properties::get_boundingbox): New method. + (figure::properties::get_boundingbox): Overload method. + (axes::properties::get_boundingbox): Likewise. + * graphics.cc (figure::properties::get_boundingbox): Return a + left-to-right/top-to-bottom bounding box rectangle. + (axes::properties::get_boundingbox): Likewise. + (axes::properties::update_camera): Remove backend access and + use the new axes bounding box. + + 2008-02-04 Shai Ayal + + * graphics.h.in (axes::properties::update_xlim, + axes::properties::update_ylim, axes::properties::update_zlim): + New update methods. + + * graphics.cc (axes::properties::calc_ticks): New function. + (axes::properties::magform): New function. + (axes::update_axis_limits): Call update_{x,y,z}lims if + appropriate. + + 2008-02-04 Michael Goffioul + + * graphics.h.in (base_graphics_backend::get_screen_size, + graphics_backend::get_screen_size): New methods. + (graphics_backend::available_backends): Export symbol. + (class figure::properties, class axes::properties): Export classes. + (figure::properties::get_boundingbox): New utility method. + (figure::properties::position): Use valid default position. + (axes::properties::gridlinestyle, + axes::properties::minorgridlinestyle): + Use dotted line style as default. + * graphics.cc (default_figure_position): New static function. + (gnuplot_backend::get_screen_size): New method. + (figure::properties::get_boundingbox): New utility method. + + 2008-02-02 Shai Ayal + + * graphics.h.in (base_scaler::~base_scalar): New virtual destructor. + * graphics.cc (axes::properties::update_camera): Tag abs with std. + + * graphics.h.in (graphics_backend::find_backend): New function. + (class figure): Add __backend__ property and set method. + + 2008-02-02 John W. Eaton + + * help.cc (do_type): Don't print dyamically loaded function files. + + * ov-fcn.h (octave_function::is_dynamically_loaded_function): Delete. + + 2008-02-01 John W. Eaton + + * symtab.cc (Fset_variable, Fvariable_value): + New functions, but commented out for now. + + 2008-01-30 Michael Goffioul + + * graphics.h.in (axes::properties::get_transform_matrix, + axes::properties::get_inverse_transform_matrix, + axes::properties::get_opengl_matrix_1, + axes::properties::get_opengl_matrix_2, + axes::properties::get_transform_zlim): New accessors. + (base_properties::is_clipping): New accessor. + (class graphics_xform): New class encapsulating axes transformation. + (axes::properties::get_transform): New method returning a + graphics_xform object. + * graphics.cc (class graphics_xform): New class. + + 2008-01-31 David Bateman + + * ov.cc (octave_value::octave_value (const ArrayN&), + octave_value::octave_value (const Sparse&, const MatrixType &), + octave_value::octave_value (const ArrayN&)): New + constructors. + * ov.h: (octave_value (const ArrayN&), + octave_value (const Sparse&, const MatrixType &), + octave_value (const ArrayN&)): Declare them. + (octave_value sort (octave_idx_type, sortmode) const, octave_value + sort (Array &, octave_idx_type, sortmode) const): + octave_value sort method. + + + * ov-base.cc (sort): Base versions of teh octave_value sort methods. + * ov-base.h (sort): Declare the octave_value sort methods + * ov-base-scalar.h (sort): Simple sort methods for scalars. + * ov-base-mat.h, ov-base-sparse.h (sort): Sort methods calling + underlying array or sparse sort methods. + * ov-str-mat.h (sort): String specific sort methods. + + * TEMPLATE-INST/Array-tc.cc: Instantiate the array sort methods. + * ov-streamoff.h (sort): Sort versions returning and error. + * oct-stream.cc, ov-typeinfo.cc, Array-os.cc: Null instantiation + of array sort methods. + + * Makefile.in (DLD_XSRC): Remove sort.cc + * DLD-FUNCTIONS/sort.cc: Remove + * data.cc (Fsort): New function using octave_value sort methods + for the sorting. Add tests. + + 2008-01-30 Thomas Weber + + * pager.cc (Fmore): Doc fix. + + 2008-01-28 Michael Goffioul + + * genprops.awk: Add update ('u') modifier and document the + readonly ('r') modifier. + * graphics.h.in (class base_scaler, class lin_scaler, class + log_scaler, class scaler): New classes to make abstraction of the + axis scale. + (base_graphics_backend::get_screen_resolution, + graphics_backend::get_screen_resolution): New methods. + (axes::properties::sx, axes::properties::sy, + axes::properties::sz): New scaler fields. + (axes::properties::get_x_scaler, axes::properties::get_y_scaler, + axes::properties::get_z_scaler): New accessors. + (axes::properties::x_render, axes::properties::x_render_inv, + axes::properties::x_gl_mat1, axes::properties::x_gl_mat2, + axes::properties::x_zlim): New utility Matrix fields. + (axes::properties::get_boundingbox, + axes::properties::update_camera, + axes::properites::update_aspectratios, + axes::properties::update_transform, + axes::properties::update_xscale, axes::properties::update_yscale, + axes::properties::update_zscale, axes::properties::update_view, + axes::properties::update_xdir, axes::properties::update_ydir, + axes::properties::update_zdir): New updater methods. + (axes::properties::init): Initialize sx, sy, sz and x_zlim correctly. + (axes::properties::position): Use valid default position value. + (axes::properties::xscale, axes::properties::yscale, + axes::properties::zscale, axes::properties::xdir, + axes::properties::ydir, axes::properties::zdir, + axes::properties::view): Add updater ('u') property modifier. + * graphics.cc (default_axes_position, default_axes_outerposition): + New initializers. + (convert_position): New utility function to convert position + according to specified units. + (gnuplot_backend::get_screen_resolution): New method. + (axes::properties::set_defaults): Initilize recently added properties. + (xform_matrix, xform_vector, transform, xform_scale, + xform_translate, scale, translate, xform, normalize, dot, cross, + unit_cube, cam2xform, xform2cam): New inline transformation + utility functions. + (axes::properties::update_camera, + axes::properties::update_aspectratios, + axes::properties::get_boundingbox): New updater methods for + computing transformation matrices. + (axes::update_axis_limits): Update transformation data. + + 2008-01-28 John W. Eaton + + * oct-stream.cc (BEGIN_CHAR_CLASS_CONVERSION): Handle width properly. + (OCTAVE_SCAN) [__GNUG__ && ! CXX_ISO_COMPLIANT_LIBRARY]: + Delete special case. + + 2008-01-25 David Bateman + + * DLD-FUNCTIONS/rand.cc (Frandp): Relax relative error on randp + tests. + + 2008-01-25 Michael Goffioul + + * graphics.h.in (base_properties::get_backend, + base_graphics_object::get_backend, graphics_backend::get_backend): + New methods for convenient access to the backend. + (figure::get_backend, figure::set_backend): Remove. + * graphics.cc (base_properties::get_backend): New method. + (Fdrawnow): Use graphics_object::get_backend to simplify code. + + 2008-01-24 Pascal Dupuis + + * mxarray.h.in: Include . + + 2008-01-22 John W. Eaton + + * graphics.cc (clear_drawnow_request): New function. + (Fdrawnow): Add it to the unwind_protect stack. + + * input.cc (Vdrawnow_requested): No longer static. + * input.h: Provide decl. + * graphics.cc (Fdrawnow, Fset, make_graphics_object): + Use Vdrawnow_requested directly. + + * toplev.cc (octave_add_atexit_function, + octave_remove_atexit_function): New functions. + (Fatexit): Use them. + * graphics.cc (Fdrawnow): Call octave_add_atexit_function instead + of using eval. + * toplev.h (octave_add_atexit_function, + octave_remove_atexit_function): Provide decls. + + 2008-01-22 Michael Goffioul + + * graphics.h.in (base_properties::is_visible, + base_properties::set_modified): New accessors. + (class base_graphics_backend, class graphics_backend): New classes + for handling octave/backend interaction. + (figure::properties::close): Add "pop" argument controlling + whether the figure should be popped from the list of existing figures. + (class figure::properties): New backend field and accessors, holding + the graphics backend associated with the figure. + * graphics.cc (class gnuplot_backend): New class for the default + gnuplot backend. + (figure::properties::close): Add "pop" argument and transfer the + figure closing to the associated backend. + (Fdrawnow): New builtin function, converted from drawnow.m. + + 2008-01-19 John W. Eaton + + * genprops.awk (emit_source): Use "pname" for property name argument. + + 2008-01-19 Shai Ayal + + * graphics.h.in (class figure::properties): New properties: + alphamap, currentcharacter, currentobject, current_point, + dockcontrols, doublebuffer, filename, integerhandle, + inverthardcopy, keypressfcn, keyreleasefcn, menubar, mincolormap, + name, numbertitle, paperunits, paperposition, paperpositionmode, + papersize, papertype, pointer, pointershapecdata, + pointershapehotspot, position, renderer, renderermode, resize, + resizefcn, selectiontype, toolbar, units, windowbuttondownfcn, + windowbuttonmotionfcn, windowbuttonupfcn, windowbuttonwheelfcn, + windowstyle, wvisual, wvisualmode, xdisplay, xvisual, xvisualmode, + buttondownfcn. + + 2008-01-19 Michael Goffioul + + * graphics.h.in (base_properties::beingdeleted, + base_properties::is_beingdeleted, + base_properties::get_beingdeleted, + base_properties::set_beingdeleted): + Add beingdeleted property and accessors. + * graphics.cc (base_properties::get): Likewise. + (gh_manager::free): Set beingdeleted to "on" when freeing an object. + * genprops.awk: Skip C++-style comments in property declaration. + + * graphics.h.in (class axes::properties): New properties: alim, + alimmode, xminortick, yminortick, zminortick, ambientlightcolor, + cameraposition, cameratarget, cameraupvector, cameraviewangle, + camerapositionmode, cameratargetmode, cameraupvectormode, + cameraviewanglemode, currentpoint, drawmode, fontangle, fontname, + fontsize, fontweight, fontunits, gridlinestyle, + minorgridlinestyle, linestyleorder, linewidth, plotboxaspectratio, + plotboxaspectratiomode, projection, tickdir, tickdirmode, + ticklength, tightinset, units, x_viewtransform, + x_projectiontransform, x_viewporttransform, x_normrendertransform, + x_rendertransform. + * genprops.awk: Handle new readonly modifier 'r'. + + 2008-01-18 Juhani Saastamoinen + + * genprops.awk: Avoid using "default" as a variable name. + + 2008-01-17 Michael Goffioul + + * graphics.h.in (data_property::get_data_limits): Reset min/max values. + + 2008-01-17 David Bateman + + * ov-fcn-inline.cc: Add tests for Finline. + + 2008-01-17 Ben Abbott + + * load-path.cc (F__pathorig__): Rename from Fpathdef. + (Frestoredefaultpath): New function. + + 2008-01-16 John W. Eaton + + * pt-assign.cc (tree_simple_assignment::rvalue, + tree_multi_assignment::rvalue): Handle assignment of + comma-separated lists. + + 2008-01-15 John W. Eaton + + * mappers.cc (install_mapper_functions): Move test for asin here + from test/test_arith.m. + + * graphics.h.in (class line::properties, class text::properties): + Rename erase_mode property to erasemode. + + 2008-01-15 Michael Goffioul + + * graphics.h.in (base_properties::remove_child, + base_properties::adopt, base_properties::update_axis_limits): + Make virtual. + (base_graphics_object::mark_modified, + base_graphics_object::override-defaults, + base_graphics_object::set_from_list, base_graphics_object::set, + base_graphics_object::get, base_graphics_object::get_parent, + base_graphics_object::remove_child, base_graphics_object::adopt, + base_graphics_object::reparent, base_graphics_object::defaults, + base_graphics_object::type): Add default implementation. + (class root_figure, class figure, class axes, class line, + class text, class image, class patch, class surface): + Remove overloaded virtual methods whose implementation is + identical to the default one. + + * genprops.awk: Handle 'h' modifier for hidden properties. + Replace "get(void)" method with "get(bool all = false)" to allow + access to hidden properties. + + * graphics.h.in (base_properties::get, base_graphics_object::get, + graphics_object::get, root_figure::get, figure::get, axes::get, + line::get, text::get, patch::get, surface::get, image::get): + New arg, ALL, to access hidden properties. + (gh_manager::do_get_object): Do not look for invalid handles. + (figure::properties::__plot_stream__, + figure::properties::__enhanced__, axes::properties::__colorbar__): + Make properties hidden. + (axes::properties, line::properties, text::properties, + patch::properties, surface::properties): Remove obsolete 'a' + property modifier. + * graphics.cc (base_properties::get): New arg ALL, to access + hidden properties. + (base_properties::mark_modified): Call mark_modified only on valid + parent object. + (__get__): New internal function returning all properties, + including the hidden ones. + + 2008-01-15 John W. Eaton + + * graphics.cc (properties::set_currentfigure, + properties::set_currentaxes): Don't convert arg to double + before passing to graphics_handle constructor. + (base_properties::remove_child): Call mark_modified if list of + children changes. + + 2008-01-15 Shai Ayal + + * graphics.h.in (class line::properties): New properties: + displayname, erasemode. + (class text::properties) New properties: backgroundcolor, + displayname, edgecolor, erase_mode, editing, fontunits, linestyle, + linewidth, margin, verticalalignment. + + 2008-01-14 John W. Eaton + + * load-path.cc (load_path::do_initialize): Start with sys_path empty. + (maybe_add_path_elts): Omit path_sep_str if path is empty. + + * symtab.h (symbol_table::do_pop_context): Remove symbol_records + which have no more context. + (symbol_table::symbol_record::pop_context, + (symbol_table::symbol_record::symbol_record_rep::pop_context): + Return size of value_stack, or 1 if variable is persistent or global. + + 2008-01-14 Kai Habel + + * graphics.h.in (class patch::properties): New properties: + cdatamapping, facevertexalphadata, facevertexcdata, vertexnormals, + normalmode, facelighting, edgealpha, edgelighting, + backfacelighting, ambientstrength, diffusestrength, + specularstrength, specularexponent, specularcolorreflectance, + erasemode. + + 2008-01-14 Michael Goffioul + + * graphics.h.in (gh_manager::do_make_graphics_handle, + gh_manager::make_graphics_handle): New boolean parameter + do_createfcn. + * graphics.cc (xcreatefcn): New static function. + (gh_manager::do_make_graphics_handle): New boolean parameter + do_createfcn. Execute createfcn callback accordingly. + (make_graphics_object, F__go_figure__): Use do_createfcn + parameter and call xcreatefcn + + * genprops.awk (emit_get_callback): Pass user data to execute method. + * graphics.cc (execute_callback): New static function. + (callback_property::validate): Make it work. + (callback_property::execute): Make it work. + (gh_manager::do_free): Execute delete function here. + * graphics.h.in (callback_property::execute): Fix decl. + (base_properties::buttondownfcn, base_properties::createfcn, + base_properties::deletefcn, base_properties::userdata): Default + value is empty Matrix, not undefined octave_value object. + (base_properties::execute_createfcn): New function. + (base_properties::execute_deletefcn): New function. + + 2007-12-13 Shai Ayal + + * graphics.h.in, graphics.cc (class base_properties): New + properties: busyaction, buttondownfcn, clipping, createfcn, + deletefcn, handlevisibility, hittest, interruptible, selected, + selectionhighlight, uicontextmenu, userdata, visible. + (class figure): Delete visible property. + + 2008-01-13 Michael Goffioul + + * graphics.h.in: Sprinkle with OCTINTERP_API as needed. + (axes::properties::xaxislocation): Allow value of zero. + (axes::properties::yaxislocation): Likewise. + + 2008-01-12 Michael Goffioul + + * Makefile.in (distclean): Delete graphics-props.cc. + + * genprops.awk: Handle new graphics property classes. + + * graphics.h.in, graphics.cc: Adapt for new specific property types. + + 2008-01-12 John W. Eaton + + * toplev.cc (octave_config_info): Add GNUPLOT to the struct. + * oct-conf.h.in (OCTAVE_CONF_GNUPLOT): New macro. + + 2008-01-11 John W. Eaton + + * DLD-FUNCTIONS/__qp__.cc (qp): Undo part of change from + 2007-09-04 (compute Y at each iteration). + + 2008-01-10 John W. Eaton + + * DLD-FUNCTIONS/fsolve.cc (Ffsolve): Doc fix. + (hybrd_info_to_fsolve_info): Swap return values for -1 and -2 inputs. + + * DLD_FUNCTIONS/__gnuplot_raw__.l: Delete. + * Makefile.in (DLD_XSRC): Remove it from the list. + (BUILT_DISTFILES): Remove __gnuplot_raw__.cc from the list. + (stamp-prereq): Don't depend on __gnuplot_raw__.cc. + (maintainer-clean): Don't remove __gnuplot_raw__.cc. + (__gnuplot_raw__.cc): Delete target. + (__gnuplot_raw__.o, pic/__gnuplot_raw__.o): Delete targets. + + * mex.cc (calc_single_subscript_internal): New static function. + (mxArray_octave_value::calc_single_subscript): Use it. + (mxArray_matlab::calc_single_subscript): Use it. + + 2008-01-07 John W. Eaton + + * pt-except.cc (tree_try_catch_command::eval): + Set Vdebug_on_error and Vdebug_on_warning to false while executing + try block. + + * error.cc (Vdebug_on_error, Vdebug_on_warning): No longer static. + * error.h: Provide decls. + + * gripes.cc (gripe_wrong_type_arg (const std::string&, const + octave_value&, bool)): New function. + * gripes.h: Provide decl. + + * oct-stream.cc (printf_value_cache::printf_value_cache): + Reject structs, cells, objects, and lists. + (octave_base_stream::do_printf): Quit early if printf_value_cache + constructor fails. + + * parse.y (make_anon_fcn_handle): Don't attempt to convert + expression to assignment to __retval__. + + 2008-01-07 Michael Goffioul + + * ov-builtin.h (octave_builtin): Tag with OCTINTERP_API. + * ov-dld-fcn.h (octave_dld_function): Likewise. + + * ov-dld-fcn.cc (octave_dld_function::create): New function. + * ov-dld-fcn.h: Provide decl. + * defun.h (DEFINE_FUNX_INSTALLER_FUN3): Call it instead of + creating a new octave_dld_function object directly. + + 2008-01-04 John Swensen + + * debug.cc (bp_table::do_remove_all_breakpoints_in_file): + Avoid calling erase on invalid bp_map iterators. + (bp_table::do_remove_breakpoint): Only try to delete breakpoints + if some exist. Avoid calling erase on invalid bp_map iterators. + (parse_dbfunction_params): Return early if ARGS is empty. + New arg, WHO. Change all uses. + Accept but do nothing with struct args. + + 2008-01-04 Thomas Weber + + * variables.cc (Fclear): Doc fix. + + 2008-01-04 John W. Eaton + + * symtab.h (symbol_table:pop_scope): Avoid accessing beyond end of + scope_stack. + + 2008-01-04 David Bateman + + * ov-mapper.cc (SPARSE_MAPPER_LOOP_2): Use data method instead of + elem in the case where F(0) is non-zero. + + 2007-12-28 John W. Eaton + + Merge changes from object branch: + + 2007-12-12 John W. Eaton + + * load-path.cc (load_path::dir_info::get_file_list, + load_path::move_method_map, load_path::remove_method_map, + load_path::do_find_fcn, load_path::do_find_private_fcn, + load_path::do_find_method, load_path::do_find_file, + load_path::do_find_first_of, load_path::do_find_all_first_of, + load_path::do_display, load_path::add_to_method_map, genpath, + execute_pkg_add_or_del): Use file_ops::concat. + + 2007-08-24 John W. Eaton + + * variables.cc (Fmislocked): return value for nargin == 0 case. + + 2007-07-27 John W. Eaton + + * pt-idx.cc (tree_index_expression::rvalue): + Pass substring of type to subsref when doing partial evaluation. + (tree_index_expression::lvalue): Likewise. + + 2007-06-29 John W. Eaton + + * ov-class.cc (is_built_in_class, set_class_relationship, + Fsuperiorto, Finferiorto): New functions. + (octave_class::in_class_method): New function. + (octave_class::subsref, octave_class:subsasgn): Use it. + + 2007-06-28 John W. Eaton + + * ov-class.cc (sanitize): New function. + (make_idx_args): Use it. + + 2007-06-28 John W. Eaton + + * ov-class.cc (octave_class::subsasgn): Expect and use only + one return value from feval of subsasgn method. + + * ov.cc (octave_value::assign): Don't convert to struct if + indexing a class object with ".". + + * pt-idx.cc (tree_index_expression::make_arg_struct): + Use Cell instead of octave_value_list for subscripts. + + * ov-class.cc (make_idx_args): For "." index, subs field is + string, not cell. + + 2007-06-27 John W. Eaton + + * ov-fcn-handle.cc (octave_fcn_handle::save_ascii, + octave_fcn_handle::load_ascii, octave_fcn_handle::save_binary, + octave_fcn_handle::load_binary, octave_fcn_handle::save_hdf5, + octave_fcn_handle::load_hdf5): Adapt to new symbol table objects. + + * symtab.h (symbol_table::all_variables, + symbol_table::do_all_variables): New arg, defined_only. + + 2007-06-26 John W. Eaton + + * ls-mat5.cc (read_mat5_binary_element): Adapt to new symbol table + objects. + + * variables.cc (Vwhos_line_format): New static variable. + (Fwhos_line_format): New function. + (symbol_record_name_compare): Delete function. + (symbol_record_name_compare, whos_parameter): New structs. + (print_descriptor, dimensions_string_req_first_space, + dimensions_string_req_total_space, make_dimensions_string, + parse_whos_line_format, print_symbol_info_line): New static + functions, adapted from old symbol table class. + (do_who): Adapt to new symbol table objects. + + * symtab.h (symbol_table::glob_variables): New functions. + (symbol_table::do_glob): New argument, vars_only. Change all uses. + + 2007-06-22 John W. Eaton + + * symtab.cc (symbol_table::fcn_info::fcn_info_rep::help_for_dispatch): + New function. + * symtab.h: Provide decl. + (symbol_table::fcn_info::help_for_dispatch, + symbol_table::help_for_dispatch): New functions. + + * help.cc (help_from_symbol_table): Call + symbol_table::help_for_dispatch instead of + extract_help_from_dispatch. + + * help.cc (extract_help_from_dispatch): Delete. + * help.h: Delete decl. + + 2007-06-21 John W. Eaton + + * DLD-FUNCTIONS/dispatch.cc (class octave_dispatch): Delete class. + (builtin, any_arg_is_magic_colon, dispatch_record): Delete functions. + (Fbuiltin, Fdispatch): Adapt to new symbol table objects. + + * symtab.cc (symbol_table::fcn_info::fcn_info_rep::print_dispatch): + New function. + * symtab.h: Provide decl. + (symbol_table::fcn_info::print_dispatch, symbol_table::print_dispatch): + New functions. + + * symtab.h (symbol_table::fcn_info::fcn_info_rep::clear_dispatch, + symbol_table::fcn_info::clear_dispatch, symbol_table::clear_dispatch): + New functions. + + * symtab.h (symbol_table::fcn_info::fcn_info_rep::get_dispatch, + symbol_table::fcn_info::get_dispatch, symbol_table::get_dispatch): + New functions. + + * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find): + Use leftmost class argument as dispatch type, or first argument if + there are no class arguments. + + 2007-06-20 John W. Eaton + + * ov-base.cc (Vprint_answer_id_name, Fprint_answer_id_name): Delete. + (octave_base_value::print_with_name): Always print name. + + * ov-base.cc (Vsilent_functions): No longer static. + * ov-base.h: Provide decl. + + * ov-class.cc (Fmethods): Define as command. + + * ov-class.cc (octave_class::print): Simply call print_raw. + + * ov-class.cc (octave_class::print_with_name): New function. + * ov-class.h: Provide decl. + + 2007-06-19 John W. Eaton + + * ov.cc (octave_value::do_unary_op, octave_value::do_binary_op): + Handle class methods. + + * ov.cc (octave_value::unary_op_fcn_name, + octave_value::binary_op_fcn_name): New functions. + * ov.h: Provide decls. + + * ov-typeinfo.cc (octave_value_typeinfo::register_unary_class_op, + octave_value_typeinfo::register_binary_class_op, + octave_value_typeinfo::do_register_unary_class_op, + octave_value_typeinfo::do_register_binary_class_op, + octave_value_typeinfo::do_lookup_unary_class_op, + octave_value_typeinfo::do_lookup_binary_class_op): New functions. + * ov-typeinfo.h: Provide decls. + + * ov-typeinfo.h (octave_value_typeinfo::unary_class_op_fcn, + octave_value_typeinfo::binary_class_op_fcn): New typedefs. + (octave_value_typeinfo::unary_class_ops, + octave_value_typeinfo::binary_class_ops): New data members. + (octave_value_typeinfo::octave_value_typeinfo): Initialize them. + (octave_value_typeinfo::lookup_unary_class_op, + octave_value_typeinfo::lookup_binary_class_op): New functions. + + * OPERATORS/op-class.cc: New file. + * Makefile.in (OP_XSRC): Add it to the list. + + * ov.cc (install_types): Call octave_class::register_type here. + + * ov-class.h (octave_class): Implement by containing a map object + instead of deriving from octave_struct. + * ov-class.cc (octave_class::subsref, octave_class::subsasgn): + Don't use octave_class implementation as default action. + + * ov.h, ov.cc (octave_value::octave_value (const Octave_map&, const + std::string&)): New constructor. + + 2007-06-18 John W. Eaton + + * ov-class.cc (octave_class::subsref, octave_class::subsasgn): + Handle dispatch to user-defined methods. + + * parse.y (load_fcn_from_file): New arg, dispatch_type. + Change all uses. + + * ov-fcn.h (octave_function::is_class_constructor, + octave_function::is_class_method, octave_function::dispatch_class): + New virtual functions. + + * ov-usr-fcn.h (octave_user_function::dispatch_class, + octave_usr_function::stash_dispatch_class): New functions. + (octave_usr_fucntion::xdispatch_class): New data member. + * parse.y (frob_function): Call stash_dispatch_class here. + + * ov-struct.cc (Ffieldnames): Also handle objects. + + * ov-class.cc (Fmethods): New function. + * load-path.cc (load_path::do_methods): New function. + * load-path.h (load_path::methods): New function. + + * ov.h (octave_value::is_object): New function. + * ov-base.h (octave_base_value::is_object): New virtual function. + * ov-class.h (octave_class::is_object): New function. + * ov-class.cc (Fisobject): New function. + + 2007-06-15 John W. Eaton + + * ov-class.cc (octave_class::print): Call display method if found. + + * symtab.h (symbol_table::fcn_info::find_method): New function. + (symbol_table::find_method): New function. + (symbol_table::fcn_info::fcn_info_rep::find_method): Provide decl. + * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find_method): + New function. + (symbol_table::fcn_info::fcn_info_rep::find): Use it. + + 2007-06-14 John W. Eaton + + * symtab.h (symbol_table::clear_mex_functions): Make it work. + (symbol_table::fcn_info::fcn_info_rep::clear_mex_function, + symbol_table::fcn_info::clear_mex_function): New functions. + + 2007-06-08 John W. Eaton + + * defun.cc (Falias): Delete. + + * variables.cc (load_fcn_try_ctor): New function. + (lookup): call load_fcn_try_ctor instead of load_fcn_from_file. + + * variables.cc, variables.h (at_top_level, lookup_by_name, lookup, + initialize_symbol_tables, fcn_out_of_date, symbol_out_of_date, + lookup_function, lookup_user_function, link_to_global_variable, + link_to_builtin_or_function, force_link_to_function, Fdocument, + is_local_variable, do_clear_all, do_clear_functions, + do_clear_globals, do_clear_variables, do_clear_function, + do_clear_global, do_clear_variable, do_clear_symbol, + do_clear_function_pattern, do_clear_global_pattern, + do_clear_variable_pattern, do_clear_symbol_pattern, + clear_function, clear_variable, clear_symbol): + Delete (some functionality moved to the new symtab.cc and some is + no longer needed). + (Fignore_function_time_stamp): Move to symtab.cc. + + * lex.l (lookup_identifier): Delete. + + * parse.y (is_function_file): New function. + (load_fcn_from_file): Return pointer to octave_function, not bool. + + * ov-usr-fcn.h, ov-usr-fcn.cc (octave_user_function::argn_sr, + octave_user_function::nargin_sr, octave_user_function::nargout_sr, + octave_user_function::varargin_sr): Delete data members. + (octave_user_function::install_automatic_vars): Delete. + (octave_user_script::do_multi_index_op): New function. + + * ov-fcn.h (octave_function::locked, octave_function::my_dir_name): + New data members. + (octave_function::dir_name, octave_function::stash_dir_name, + octave_function::lock, octave_function::unlock, + octave_function::islocked): New functions. + + * of-fcn-handle.h, ov-fcn-handle.cc (octave_fcn_handle::subsref): + Call out_of_date_check here to simplify time stamp checking. + (octave_fcn_handle::reload_warning): Delete. + + * ov.h (octave_value::is_user_script, octave_value::is_user_function): + New functions. + * ov-base.h (octave_base_value::is_user_script, + octave_base_value::is_user_function): New pure virtual functions. + * ov-fcn.h (octave_function::is_user_script, + octave_function::is_user_function): Delete. + + * load-save.cc (install_loaded_variable): Greatly simplify. + + * load-path.h, load-path.cc: Change private_fcn_file to private_file. + (load_path::private_fcn_map): New data member. + (load_path::do_add, load_path::do_remove, load_path::do_update): + Also manage private_file_map here. + (load_path::add_to_private_fcn_map): New function. + (load_path::remove_private_fcn_map): New function. + (load_path::do_find_private_fcn): Make it work. + (get_file_list): New function. + (load_path::do_display): Use it. Display private map. + (load_path::find_method, load_path::find_fcn): Handle directory name. + + * token.cc, token.h, toplev.cc, debug.cc, defun.cc, defun-dld.h, + defun-int.h, error.cc, help.cc, load-save.h, load-save.cc, mex.cc, + octave.cc, ov-fcn-handle.cc, ov-usr-fcn.cc, parse.h, parse.y, + lex.l, variables.cc: Adapt to new symbol table objects (my + apologies for the lack of detail). + + * unwind-prot.h (unwind_protect::add): Set default value for ptr arg. + + * pt-stmt.cc (tree_statement::eval): Rework method for deciding + whether to assign value to ans. + + * pt-idx.cc (tree_index_expression::rvalue): + Looking up symbol may evaluaate first args now. + + * pt-id.h, pt-id.cc (tree_identifier::document, + tree_identifier::is_defined, tree_identifier::define, + tree_identifier::is_function, tree_identifier::lookup, + tree_identifier::link_to_global): Delete. + (tree_identifier::do_lookup): Simplify. + (tree_identifier::rvalue): Looking up symbol can't execute script now. + + * pt-misc.cc (tree_parameter_list::initialize_undefined, + tree_parameter_list::is_defined): Call is_variable for elt, not + is_defined. + + * pt-fcn-handle.h (tree_anon_fcn_handle::fcn): Now pointer to + octave_user_function, not value. Change all uses. + + * pt-decl.h (tree_decl_command::initialized): Delete data member. + (tree_decl_elt::is_variable): New function. + * pt-decl.cc: Fix all uses of tree_decl_command::initialized. + + * ls-hdf5.cc, ls-mat-ascii.cc, ls-mat4.cc, ls-mat5.cc, + ls-oct-ascii.cc, ls-oct-binary.cc, input.cc: Don't include symtab.h. + + * dynamic-ld.h, dynamic-ld.cc (octave_dynamic_loader::load_oct, + octave_dynamic_loader::load_mex, octave_dynamic_loader::do_load_oct, + octave_dynamic_loader::do_load_mex): Adapt to new symbol table + objects. Return pointer octave_function instead of bool. + + * DLD-FUNCTIONS/dispatch.cc (Fbuiltin): Disable for now. + Disable code that works with old symbol tables. + (Fbuiltin): Simply call symbol_table::add_dispatch. + + * pt-arg-list.cc, pt-arg-list.h, pt-assign.cc, pt-assign.h, + pt-binop.cc, pt-binop.h, pt-bp.h, pt-cell.cc, pt-cell.h, + pt-cmd.cc, pt-cmd.h, pt-colon.cc, pt-colon.h, pt-const.cc, + pt-const.h, pt-decl.cc, pt-decl.h, pt-except.cc, pt-except.h, + pt-exp.h, pt-fcn-handle.cc, pt-fcn-handle.h, pt-id.cc, pt-id.h, + pt-idx.cc, pt-idx.h, pt-jump.cc, pt-jump.h, pt-loop.cc, pt-loop.h, + pt-mat.cc, pt-mat.h, pt-misc.cc, pt-misc.h, pt-select.cc, + pt-select.h, pt-stmt.cc, pt-stmt.h, pt-unop.cc, pt-unop.h: + Adapt dup functions to use scope instead of symbol_table objects. + + * TEMPLATE-INST/Array-sym.cc: Delete. + * Makefile.in (TI_XSRC): Remove it from the list. + + * symtab.h, symtab.cc: Replace with new versions. + + 2007-05-16 John W. Eaton + + * oct-lvalue.cc, oct-lvalue.h (octave_lvalue::chg_fcn): Delete. + Fix all uses. + + 2007-05-15 John W. Eaton + + * load-path.cc (load_path::do_find_private_function): New function. + * load-path.h (load_path::do_find_private_function): Provide decl. + (load_path::find_private_function): New function. + + 2007-05-08 John W. Eaton + + * pt-idx.cc (tree_index_expression::rvalue): Handle dispatch here. + + * pt-id.cc (tree_identifier::is_variable, tree_identifier::lookup): + New functions. + * pt-id.cc: Provide decls. + + * parse.y (current_class_name): New global variable. + * parse.h: Provide decl. + + * parse.y (load_fcn_from_file, parse_fcn_file): + New arg, dispatch_type. + (parse_fcn_file): Protect current_class_name and set it to + dispatch_type before parsing function. + (load_fcn_from_file): If dispatch_type is not empty, call + load_path::find_method instead of load_path::find_fcn. + * parse.h: Fix decls for extern functions. + + * lex.h (lexical_feedback::parsing_class_method): New data member. + * lex.l (lexical_feedback::init): Initialize it. + (lookup_identifier): Check it and set sym_name accordingly. + + * ov-usr-fcn.h (octave_user_function::mark_as_class_constructor, + octave_user_function::is_class_constructor, + octave_user_function::mark_as_class_method, + octave_user_function::is_class_method): New functions. + (octave_user_function::class_constructor, + octave_user_function::class_method): New data members. + * ov-usr-fcn.cc (octave_user_function::octave_user_function): + Initialize them. + + * load-path.h, load-path.cc: Use typedefs to simplify template decls. + Use fcn consistently instead of function. + + 2007-05-03 John W. Eaton + + * ov-class.cc (Fclass): Move here. + * ov-typeinfo.cc: From here. + + * input.cc (octave_gets): Call load_path::update if user input + contains something other than one of the characters " \t\n\r". + + * ov-class.cc, ov-class.h: New files. + * Makefile.in: Add them to the appropriate lists. + + * load-path.cc (genpath): Skip directories beginning with "@". + (load_path::dir_info::get_file_list): Don't return anything. + Call get_private_function_map here. + (load_path::dir_info::initialize): Not here. + (load_path::dir_info_::get_method_file_map): New function. + (load_path::method_map): New data member. + (load_path::do_clear): Also clear method_map. + (load_path::do_add): Also call add_to_method_map. + (load_path::do_update): Also clear method_map and call + (load_path::do_find_method): New function. + (load_path::do_add_to_method_map): New function. + (load_path::move_fcn_map, load_path::move_method_map): New functions. + (load_path::move): Use them. + (load_path::remove_fcn_map, load_path::remove_method_map): + New functions. + (load_path::remove): Use them. + * load-path.h: Provide/fix decls. + (load_path::find_method): New static function. + + * Makefile.in (%.df : %.cc): Use mv instead of + $(simple-move-if-change-rule). + + 2007-12-21 John W. Eaton + + Version 3.0.0 released. + + * version.h (OCTAVE_VERSION): Now 3.0.0. + (OCTAVE_API_VERSION): Now api-v32. + (OCTAVE_RELEASE_DATE): Now 2007-12-21. + + 2007-12-19 Thomas Kasper + + * OPERATORS/op-scm-cs.cc (DEFBINOP (pow)): Extract complex value + from second arg. + + 2007-12-12 David Bateman + + * DLD-FUNCTIONS/sparse.cc (Fsparse): Check for scalar arguments + for 2 argument version. + + 2007-12-12 John W. Eaton + + * graphics.h.in (class axes) Add the layer property. + * graphics.cc (class axes) Ditto. + + * graphics.cc (gh_manager::get_handle): Use ceil instead of trunc. + + 2007-12-11 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.19+. + + 2007-12-11 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.19. + (OCTAVE_API_VERSION): Now api-v31. + (OCTAVE_RELEASE_DATE): Now 2007-12-11. + + * graphics.cc (make_graphics_object): + If successful, call __request_drawnow__. + + * input.cc (Vgud_mode): New static variable. + (F__gud_mode__): New function. + (get_user_input): If debug and Vgud_mode, print location info in + format for Emacs GUD mode. + + 2007-12-11 David Bateman + + * OPERATORS/op-bm-sbm.cc, OPERATORS/op-b-sbm.cc, + OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, + OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, + OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, + OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc: Privilege + conversion to dense matrices for compatibility. + + * DLD-FUNCTIONS/sparse.cc (FSparse): Remove the mutate flag, as + default bahavior is now to keep matrix sparse always. + + * graphics.cc (axes::properties::properties): + Initialize xcolor, ycolor, and zcolor to (0, 0, 0). + + * graphics.h.in (gh_manager::next_handle): Now double. + * graphics.cc (gh_manager::get_handle, gh_manager::gh_manager): + Set fractional part of next_handle to a random value. + + 2007-12-10 John W. Eaton + + * ov-cell.cc (octave_cell::all_strings): Handle empty elements. + Handle N-d cell arrays. + + * DLD-FUNCTIONS/fsolve.cc (Ffsolve): + For compatibility, return [x, fval, info] instead of [x, info, msg]. + Move tests here from test/test_nonlin.m. + + * OPERATORS/op-cm-s.cc: Define function for el_mul with + DEFNDBINOP_OP, not DEFBINOP_OP. + + * OPERATORS/op-s-cm.cc: Define functions for el_and and el_or + operators with DEFNDBINOP_FN. + + * oct-hist.cc (default_history_file): Use file_ops::concat. + * load-path.cc (dir_info::initialize, dir_info::get_file_list, + load_path::do_find_fcn, load_path::do_find_file, genpath, + execute_pkg_add_or_del, load_path::do_find_first_of, + load_path::do_find_all_first_of): Likewise. + + * help.cc (Flookfor): Avoid doubling directory separator. + * dirfns.cc (Fmkdir): Likewise. + + * pt-mat.cc (tree_matrix::rvalue): Produce sq_string if any + strings are sq_string objects. + + 2007-12-10 David Bateman + + * graphics.h.in (data_property::data): Declare as NDArray instead + of Matrix. Change all uses. + + 2007-12-10 Shai Ayal + + * graphics.h.in (class figure) Add the color property. + * graphics.cc (class figure) Ditto. + + 2007-12-07 David Bateman + + * data.cc (Fnorm): Don't return a scalar stored as a sparse + matrix. Convert it to a scalar. + + * graphics.cc (check_limit_val): Delete. + (check_limit_vals): Simplify and no longer use check_limit_val. + + 2007-12-05 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.18+. + + 2007-12-05 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.18. + (OCTAVE_API_VERSION): Now api-v30. + (OCTAVE_RELEASE_DATE): Now 2007-12-05. + + 2007-12-04 John W. Eaton + + * Makefile.in (INCLUDES): Add builtins.h to the list. + + * oct-hist.cc (default_history_file): Use += instead of + push_back to append character to std::string object. + + * Makefile.in (LIBDLFCN): Delete all uses. + + * toplev.cc (octave_config_info): Remove LIBDLFCN and + DLFCN_INCFLAGS from the list. + * oct-conf.h.in (OCTAVE_CONF_DLFCN_INCFLAGS, OCTAVE_CONF_LIBDLFCN): + Delete. + + * error.cc (Ferror): Handle error id. + + * load-save.cc (Fsave, Fload): Doc fixes. + From Marco Caliari . + + 2007-12-04 Shai Ayal + + * graphics.h.in (base_properties::get_type + base_properties::get___modified__, + base_properties::get___myhandle__): New functions. + + 2007-12-04 Christoph Mayer . + + * toplev.h (clean_up_and_exit, recover_from_exception, + do_octave_atexit, global_command, curr_parent_function): + Tag with OCTINTERP_API. + + 2007-12-03 David Bateman + + * DLD-FUNCTIONS/luinc.cc: Make tests conditional on HAVE_UMFPACK. + * DLD-FUNCTIONS/spqr.cc: Make tests conditional on HAVE_CXSPARSE. + + * DLD-FUNCTIONS/regexp.cc: Use "%!testif" blocks for conditional + tests on PCRE. + + * graphics.cc (class axes): Add color and activepositionproperty + properties to axis objects. + * graphics.h.in (class axes): ditto. + + * DLD-FUNCTIONS/regexp.cc: Also include sys/types.h for regexp. + + 2007-11-30 John W. Eaton + + * DLD-FUNCTIONS/sort.cc (operator < (const Complex&, const Complex&), + operator > (const Complex&, const Complex&)): + Pass args by const reference, not value. + + * data.cc, matherr.c, pr-output.cc, sysdep.cc, + DLD-FUNCTIONS/__dsearchn__.cc, DLD-FUNCTIONS/minmax.cc, + DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/sort.cc, + DLD-FUNCTIONS/tsearch.cc: Include lo-math.h instead of cmath + or math.h. + + 2007-11-30 Moritz Borgmann + + * ls-mat5.h (mat5_data_type): Delete trailing comma in enum decl. + * oct-stream.cc (octave_base_stream::do_printf): Use + OCTAVE_EMPTY_CPP_ARG to avoid annoying Sun compiler warning. + * OPERATORS/op-sbm-sbm.cc (DEFDBLCONVFN): Delete useless macro + invocation. + + * DLD-FUNCTIONS/typecast.cc (typecast): No longer static. + + 2007-11-30 John W. Eaton + + * graphics.cc (updating_axis_limits): New static variable. + (check_limit_val, check_limit_vals, get_axis_limits): New functions. + (axes::update_axis_limits): Make it work. + * graphics.h.in (base_properties::get_children): New function. + (base_properties::get_xdata, base_properties::get_ydata, + base_properties::get_zdata, base_properties::get_ldata, + base_properties::get_udata, base_properties::get_xldata, + base_properties::get_xudata, base_properties::get_cdata, + base_properties::get_properties (void) const): + New virtual functions. + (graphics_object::get_xdata, graphics_object::get_ydata, + graphics_object::get_zdata, graphics_object::get_ldata, + graphics_object::get_udata, graphics_object::get_xldata, + graphics_object::get_xudata, graphics_object::get_cdata, + graphics_object::get_properties (void) const, + root_figure::get_properties (void) const, + figure::get_properties (void) const, + axes::get_properties (void) const, + line::get_properties (void) const, + text::get_properties (void) const, + image::get_properties (void) const, + patch::get_properties (void) const, + surface::get_properties (void) const)): New functions. + (radio_property::radio_property (const radio_values&)): + Provide default value for argument. + (radio_property::radio_property (const radio_values&, const + std::string&)): Delete. + (axes::xlimmode, axes::ylimmode, axes::zlimmode, axes::climmode, + axes::xscale, axes::yscale, axes::zscale): Declare as + radio_property instead of octave_value values. Adjust all uses. + + 2007-11-29 John W. Eaton + + * pr-output.cc (octave_print_internal_template (std::ostream&, + const octave_int&, bool)): Rename from octave_print_internal. + (PRINT_INT_SCALAR_INTERNAL): New macro. Use it to define + non-template functions for printing scalar octave_int values. + (octave_print_internal_template (std::ostream&, const intNDArray&, + bool, int)): Rename from octave_print_internal. + (PRINT_INT_ARRAY_INTERNAL): New macro. Use it to define + non-template functions for printing scalar octave_int values. + * pr-output.h: Declare non-template functions for printing + octave_int scalar and array values. + Delete declarations of template funtions for printing octave_int + scalar and array values. + + 2007-11-28 John W. Eaton + + * graphics.cc (base_properties::update_axis_limits, + axes::update_axis_limits): New functions. + * graphics.h.in (class data_property): New class. + (graphics_object::update_axis_limits): New function. + (base_graphics_object::update_axis_limits): New virtual function. + (base_properties::update_axis_limits, axes::update_axis_limits): + Provide decls. + (class line, class image, class patch, class surface): Use it + instead of octave_value for data properties. Tag data properties + with "l" modifier. + (class axes): Tag scale properties with "l" modifier. + * genprops.awk: Handle "l" modifier. + + * mkbuiltins: Emit #include "builtins.h" for the builtins.cc file. + From Christoph Mayer . + + * TEMPLATE-INST/Array-tc.cc (resize_fill_value): + Delete. + + * Cell.cc (Cell::Cell (const dim_vector&, const string_vector&, bool)): + Initialize undefined values to resize_fill_value (). + + 2007-11-27 John W. Eaton + + * TEMPLATE-INST/Array-tc.cc (resize_fill_value): + Tag inline. From Moritz Borgmann . + + * pt-bp.cc (tree_breakpoint::visit_decl_command): Also check line + number of cmd. + * pt-decl.cc (tree_global_command::eval, tree_static_command::eval): + Insert MAYBE_DO_BREAKPOINT here. + + * error.cc (Fwarning): If setting state "all" to "error", leave + Octave:matlab-incompatible and Octave:single-quote-string warning + states unchanged. + (warning_enabled): Allow individual warning states to override + "warning error all". + + * octave.cc (execute_eval_option_code, execute_command_line_file): + Handle interrupts. + * toplev.cc (recover_from_exception): Now extern. + * toplev.h (recover_from_exception): Provide decl. + + * pt-idx.cc (tree_index_expression::lvalue): Treat object == [] + the same as undefined. + + 2007-11-26 John W. Eaton + + * oct-stream.cc (DO_DOUBLE_CONV): Always use long. + + * oct-stream.cc (do_write): Call float_value and double_value on + octave_int objects instead of relying on conversion operators. + + * ls-mat5.cc (read_mat5_binary_element, OCTAVE_MAT5_INTEGER_READ): + Call double_value on octave_int objects + instead of relying on conversion operator. + (read_mat5_binary_file_header): + Call char_value on octave_int objects + instead of relying on conversion operator. + (read_mat5_binary_element): + Call bool_value on octave_int objects + instead of relying on conversion operator. + + * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::double_value, + OCTAVE_VALUE_INT_MATRIX_T::scalar_value, + OCTAVE_VALUE_INT_MATRIX_T::matrix_value, + OCTAVE_VALUE_INT_MATRIX_T::complex_matrix_value, + OCTAVE_VALUE_INT_MATRIX_T::array_value, + OCTAVE_VALUE_INT_MATRIX_T::complex_array_value, + OCTAVE_VALUE_INT_SCALAR_T::double_value, + OCTAVE_VALUE_INT_SCALAR_T::scalar_value, + OCTAVE_VALUE_INT_SCALAR_T::matrix_value, + OCTAVE_VALUE_INT_SCALAR_T::complex_matrix_value, + OCTAVE_VALUE_INT_SCALAR_T::array_value, + OCTAVE_VALUE_INT_SCALAR_T::complex_array_value, + Call double_value on octave_int objects + instead of relying on conversion operator. + (OCTAVE_VALUE_INT_MATRIX_T::bool_array_value, + OCTAVE_VALUE_INT_SCALAR_T::bool_array_value): + Call bool_value on octave_int objects + instead of relying on conversion operator. + (OCTAVE_VALUE_INT_MATRIX_T::char_array_value, + OCTAVE_VALUE_INT_SCALAR_T::char_array_value): + Call char_value on octave_int objects + instead of relying on conversion operator. + + 2007-11-26 David Bateman + + * Sparse-op-defs.h (SPARSE_BASE_REDUCTION_OP): Check that the fill + value is not zero before creating the matrices. + + * graphics.cc (class axes): Add the {x|y|z}color color property. + * graphics.h.in (class axes): ditto. + + * ov-base.cc (Vsparse_auto_mutate, Fsparse_auto_mutate): New + internal variable and built-in function to set it. + * ov-base.h (extern bool Vsparse_auto_mutate): Export internal + variable to other functions. + * ov-re-sparse.cc (octave_sparse_matrix::try_narrowing_conversion + (void)), ov-cx-sparse.cc + (octave_sparse_complex_matrix::try_narrowing_conversion (void)), + ov-bool-sparse.cc + (octave_sparse_bool_matrix::try_narrowing_conversion (void)): + Use Vsparse_auto_mutate flag to determine whether to convert + sparse matrices to full matrices if that saves space. + + * DLD-FUNCTIONS/minmax.cc (MINMAX_DOUBLE_BODY): New version of + MINMAX_BODY macro without the initialization. + (MINMAX_INT_BODY): Macro for min/max for the integer types + (MINMAX_BODY): New macro that calls the appropriate instantiation + of the other two macros. + + * graphics.cc (class axes): Add __colorbar__ property. + * graphics.h.in (class axes): ditto. + + * data.cc (Fnorm): Document the "inf" string argument for matrice + and vectors and the "fro" argument for vectors. + + * graphics.h.in (class figure): Add __enhanced__ property to cache + whether the terminal supports enhanced mode. Add interpreter + property to all text classes, to determine the renderer for the + text. + * graphics.cc (class figure): ditto. + + 2007-11-26 Shai Ayal + + * graphics.cc (string_properties): delete class + (property_name): rename class to caseless_str. + (radio_values::possible_vals): change type to caseless_str. + + 2007-11-26 Michael Goffioul + + * builtins.h (install_builtins): Tag with OCTINTERP_API. + * toplev.h (octave_interpreter_ready, octave_initialized): Likewise. + + 2007-11-14 John W. Eaton + + * mex.cc (mex::foreign_memlist): New data member. + (mex::mark_foreign, mex::unmark_foreign): New functions. + (mex::free): Don't warn about pointers found in foreign_memlist. + (maybe_mark_foreign): New function. + (mxArray_octave_value::get_data, mxArray_octave_value::get_ir, + mxArray_octave_value::get_jc): + Call maybe_mark_foreign on returned pointer. + + 2007-11-14 David Bateman + + * mex.cc (mxArray_sparse::mxArray_sparse (const mxArray_sparse&)): + Also ensure that pr and pi are correctly copied. + + 2007-11-14 John W. Eaton + + * Makefile.in (@bsd_gcc_kluge_targets_frag@): Delete line for + Makefrag.bsd substitution. + + * graphics.h.in (base_properties::tag): New property. + (base_properties::get_tag, base_properties::set_tag): New functions. + (root_figure::set, root_figure::get, figure::set, figure::get, + axes::set, axes::get, line::set, line::get, text::set, text::get, + patch::set, patch::get, surface::set, surface::get): Handle tag. + + 2007-11-14 Joseph P. Skudlarek + + * DLD-FUNCTIONS/regexp.cc: Undo previous change. + + 2007-11-14 John W. Eaton + + * mex.cc (mex::mark, mex::unmark): Now public. + (mex::persistent): Delete. + (mexMakeArrayPersistent): Call maybe_unmark_array instead of + mex::persistent. + (mexMakeMemoryPersistent): Call maybe_unmark instead of + mex::persistent. + (maybe_unmark (void *)): New function. + (mxSetDimensions, mxSetPr, mxSetPi, mxSetData, mxSetImagData, + mxSetIr, mxSetJc): Use it. From David Bateman. + + 2007-11-13 Joseph P. Skudlarek + + * DLD-FUNCTIONS/rand.cc (Frand): Update URL reference in doc string. + + 2007-11-12 David Bateman + + * graphics.h.in, graphics.cc (class text): Add the fontangle and + fontweight properties. Add string_property class to handle the + string radio values. + + 2007-11-12 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.17+. + + 2007-11-12 David Bateman + + * graphics.h.in, graphics.cc (class text): Add the fontname and + fontsize properties. + + 2007-11-10 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.17. + (OCTAVE_API_VERSION): Now api-v29. + (OCTAVE_RELEASE_DATE): Now 2007-11-10. + + 2007-11-09 John W. Eaton + + * DLD-FUNCTIONS/__gnuplot_raw__.l: Don't add atexit ("closeplot") + to PKG_ADD file. + + 2007-11-09 David Bateman + + * graphics.cc, graphics.h.in (class patch): Add the field "keylabel". + + * data.cc (Fcputime) [__WIN32__]: Correct scaling of sys and usr times. + + * graphics.cc (is_handle): Handle must be a real scalar. + + 2007-11-09 Joseph P. Skudlarek + + * data.cc (Fislogical): Fix typo in documentation entry. + + 2007-11-08 John W. Eaton + + * DLD-FUNCTIONS/__gnuplot_raw__.l (F__gnuplot_save_data__): + Note obsolescence in doc string. + (WARN_OBSOLETE): New macro + (F__gnuplot_save_data__, Fgnuplot_command_plot, + Fgnuplot_command_replot, Fgnuplot_command_splot, + Fgnuplot_command_using, Fgnuplot_command_with, + Fgnuplot_command_axes, Fgnuplot_command_title, + Fgnuplot_command_end, Fgnuplot_use_title_option, + F__clear_plot_window__, Fcloseplot, Fpurge_tmp_files, + F__gnuplot_raw__, F__gnuplot_send_inline_data__, F__gnuplot_set__, + F__gnuplot_show__, F__gnuplot_plot__, F__gnuplot_splot__, + F__gnuplot_replot__): Use WARN_OBSOLETE. + + 2007-11-07 John W. Eaton + + * DLD-FUNCTIONS/regexp.cc: Handle HAVE_PCRE_PCRE_H. Check + HAVE_PCRE_H instead of HAVE_PCRE to decide whether to include pcre.h. + + * DLD-FUNCTIONS/__gnuplot_raw__.l (Fgnuplot_command_plot, + Fgnuplot_command_replot, Fgnuplot_command_splot, + Fgnuplot_command_using, Fgnuplot_command_with, + Fgnuplot_command_axes, Fgnuplot_command_title, + Fgnuplot_command_end, Fgnuplot_use_title_option, + F__clear_plot_window__, Fcloseplot, Fpurge_tmp_files, + F__gnuplot_raw__, F__gnuplot_send_inline_data__, F__gnuplot_set__, + F__gnuplot_show__, F__gnuplot_plot__, F__gnuplot_splot__, + F__gnuplot_replot__): Note obsolescence in doc string. + + 2007-11-06 Kai Habel + + * graphics.h.in (class surface::properties): New properties, + cdata, facecolor, facealpha, edgecolor, linestyle, + linewidth, marker, markeredgecolor, markerfacecolor, markersize. + * graphics.cc (surface::properties::properties, + surface::properties::set, surface::properties::get, + surface::properties::factory_defaults): Handle new properities. + + 2007-11-06 David Bateman + + * data.cc (DATA_REDUCTION): Handle the 'native' and 'double' + arguments of the Fsum function. + * OPERATORS/op-bm-bm.cc (matrix_to_bool_matrix, + scalar_to_bool_matrix): New type conversion functions. + (install_bm_bm_ops): Install new type conversions functions. + + 2007-11-06 Michael Goffioul + + * toplev.cc (Fsystem) [__WIN32__ && ! __CYGWIN__]: + Quote the complete command. + + 2007-11-06 John W. Eaton + + * data.cc (Fnorm): New tests. + + * defun-int.h (DEFINE_FUNX_INSTALLER_FUN3): Don't install function + if check_version produces an error. + + 2007-11-05 John W. Eaton + + * pt-idx.cc (tree_index_expression::lvalue): Try to do a better + job of computing the number of elements in lvalue expressions when + the last indexing element is ".". + + 2007-11-02 John W. Eaton + + * file-io.cc (fopen_mode_to_ios_mode): Use std::ios::app instead + of std::ios::ate. + + 2007-11-02 Olli Saarela + + * input.cc, pr-output.cc, bitfcns.cc, DLD-FUNCTIONS/time.cc: + Fix broken @examples in help texts. + + 2007-10-31 John W. Eaton + + * data.cc (Fnorm): Avoid warning about p_val possibly being used + uninitialized. + + * version.h (OCTAVE_VERSION): Now 2.9.16+. + + 2007-10-31 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.16. + (OCTAVE_API_VERSION): Now api-v28. + (OCTAVE_RELEASE_DATE): Now 2007-10-31. + + 2007-10-31 Muthiah Annamalai + + * pt-assign.h (tree_simple_assignment::op_type, + tree_multi_assignment::op_type): New functions. + * pt-unop.h (tree_unary_expression::op_type): New function. + + 2007-10-31 John W. Eaton + + * graphics.cc (line::properties::get): Fix property name + (markerface -> markerfacecolor). + + * Makefile.in (INCLUDES): Add debug.h to the list. + + 2007-10-30 John Swensen + + * debug.h: New file. + * debug.cc (parse_dbfunction_params, do_find_bkpt_list, + intmap_to_ov): New functions. + (Fdbstop, Fdbclear): Use parse_dbfunction_params. + Improve compatibility. + (Fdbstatus): Improve compatibility. + + * help.cc (do_which): No longer static. + * help.h: Provide decl. + + 2007-10-30 David Bateman + + * symtab.cc: Doc fixes for small book format. + + 2007-10-30 John W. Eaton + + * file-io.cc (fopen_mode_to_ios_mode): Handle 'W' as 'w' and 'R' + as 'r', but warn about them. + + 2007-10-29 Thomas Treichl + + * data.cc: Include sytime.h, sys/types.h, and sys/resource.h. + + 2007-10-25 John W. Eaton + + * graphics.cc (figure::properties::set_currentaxes): + Allow currentfigure to be NaN. + + 2007-10-25 Michael Goffioul + + * DLD-FUNCTIONS/__contourc__.cc: Use unsigned int instead of uint. + (drawcn): Use 1 << k instead of pow (2, k). + + 2007-10-25 John W. Eaton + + * symtab.h (symbol_record::TYPE): Delete trailing comma in enum decl. + + * ov-base.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Use + OCTAVE_EMPTY_CPP_ARG to avoid annoying Sun compiler warning. + + * Makefile.in (graphics.h): Use $(AWK) instead of awk. + + * DLD-FUNCTIONS/time.cc (Ftime, Fmktime): Avoid unnecessary cast. + + * data.cc (Ftic, Ftoc): Call double_value on octave_time objects + instead of relying on conversion operator. + * ov.cc (octave_value::octave_value (octave_time)): Likewise. + + * variables.cc (symbol_out_of_date): Use explicit conversion to + time_t instead of relying on conversion operator. + * ov-fcn-handle.cc (octave_fcn_handle::subsref): Likewise. + + * data.cc (tic_toc_timestamp): Rename from __tic_toc_timestamp__. + Change all uses. + + 2007-10-24 David Bateman + + * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::OCTAVE_VALUE_INT_MATRIX_T + (const ArrayN&)): New constructor. + * ov.cc (octave_value::octave_value(const ArrayN) with T being + octave_int8, octave_uint8, octave_int16, octave_uint16, + octave_int32, octave_uint32, octave_int64, octave_uint64): New + constructors. + * ov.h (octave_value::octave_value(const ArrayN) with T being + octave_int8, octave_uint8, octave_int16, octave_uint16, + octave_int32, octave_uint32, octave_int64, octave_uint64): + Declare them. + * DLD-FUNCTIONS/sort.cc (template class octave_sort, + template class vec_index, template class + octave_sort *>, with T being + octave_int8, octave_uint8, octave_int16, octave_uint16, + octave_int32, octave_uint32, octave_int64, octave_uint64): New + instantiations of sort template classes. + (Fsort): Use them. + + 2007-10-24 John W. Eaton + + * graphics.cc (root_figure::properties::set_currentfigure): + Allow currentfigure to be NaN. + + * pt-idx.cc (tree_index_expression::lvalue): Correctly compute + number of elements in lvalue expression when last indexing + element is ".". + + 2007-10-23 John W. Eaton + + * graphics.cc (is_handle (const graphics_handle&)): New function. + (gh_manager::do_free, reparent, base_properties::set_parent, + properties::get_title, properties::get_xlabel, + properties::get_ylabel, properties::get_zlabel, + properties::remove_child, make_graphics_object, F__go_figure__, + F__go_delete__, __go_axes_init__): Call OK on graphics handle + object instead of relying on implicit conversion operator. + * graphics.h.in (graphics_handle::operator double ()): Delete. + (graphics_handle::operator bool ()): Delete. + (gh_manager::do_handle_list, gh_manager::do_figure_handle_list, + base_properties::adopt): Call VALUE on graphics handle object + instead of relying on implicit conversion operator. + + * ov-base.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Call + DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA2 with "( )" as arg list + instead of "()". + + * mxarray.h.in (mxClassID): Delete trailing comma in enum decl. + + * symtab.h (symbol_table::symbol_table): Reduce default table size + to 64. + + 2007-10-22 Kim Hansen + + * unwind-prot.cc: Include . + + 2007-10-22 David Bateman + + * data.cc (Ftic, Ftoc, Fcputime): New builtin versions of the + benchmarking functions for speed. + * oct-map.cc (Octave_map::squeeze, Octave_map::permute): New methods. + (Octave_map::index (const octave_value_list&, bool)): Add resize_ok + argument, define as const and use const_iterator internally. + (Octave_map::index (idx_vector&, ...), Octave_map::index (Array + &, ...)): New forms of the index function. + * oct-map.h (squeeze, permute, indx (const octave_value_list&, bool), + index (idx_vector&, ...), index (Array &, ...)): Add + or update declaration. + * ov-struct.cc (octave_struct::do_index_op (const octave_value_list&, + bool)): New method. + * ov-struct.h (do_index_op (const octave_value_list&, bool)): Declare + it. + (squeeze (void), permute (const Arra&, bool): New methods. + + 2007-10-19 Kai Habel + + * DLD-FUNCTIONS/__contourc__.cc (add_point): Rename from + cl_add_point. Change all uses. + (end_contour): Rename from cl_end_contour. Change all uses. + (start_contour): Rename from cl_start_contour. Change all uses. + (drawcn): Rename from cl_drawcn. New algorithm for locating contours. + (mark_facets): New function. + (cntr): Rename from cl_cntr. Change all uses. New algorithm for + locating contours. + + 2007-10-19 John W. Eaton + + * ov-cell.cc (octave_cell::subsasgn): If RHS is cs-list, don't + fail if shape of LHS is different. + * ov-struct.cc (octave_struct::subsasgn): Likewise. + + 2007-10-19 Olli Saarela + + * help.cc (Flookfor): Call print_usage instead of usage. + * DLD-FUNCTIONS/cellfun.cc (Fmat2cell): Likewise. + + 2007-10-17 John W. Eaton + + * DLD-FUNCTIONS/spchol.cc (Fsymbfact): Delete special code for METIS. + + 2007-10-17 Gabriele Pannocchia + + * DLD-FUNCTIONS/__qp__.cc (qp): Fix check for Wact(j). + + 2007-10-15 Sᅵren Hauberg + + * error.cc (Ferror): Make text fit on pages when using smallbook. + * load-save.cc (Fsave_header_format_string): Ditto. + * ov-struct.cc (Fcell2struct): Ditto. + * DLD-FUNCTIONS/besselj.cc (Fairy): Ditto. + * DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread): Ditto. + + 2007-10-15 David Bateman + + * graphics.cc (axes::properties::get): Fix typo. + + 2007-10-13 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.15+. + + 2007-10-13 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.15. + (OCTAVE_API_VERSION): Now api-v27. + (OCTAVE_RELEASE_DATE): Now 2007-10-13. + + 2007-10-13 David Bateman + + * graphics.h.in (class patch): Add the faces and vertices properties. + * graphics.cc (patch::properties::properties): Initialize faces + and vertices. + (patch::properties::get): Also fetch faces and vertices. + (patch::properties::factory_defaults): Set faces and vertices. + + 2007-10-12 John W. Eaton + + * Change copyright notices in all files that are part of Octave to + GPLv3 or any later version. + + 2007-10-11 John W. Eaton + + * DLD-FUNCTIONS/urlwrite.cc (urlget): Disable use of EPSV mode. + + 2007-10-11 Brian Gough + + * DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/regexp.cc, dirfns.cc, + input.cc: Spelling fixes. + + 2007-10-10 John W. Eaton + + * OPERATORS/op-sbm-sbm.cc (bool_matrix_to_double_matrix): + New conversion function. + (install_sbm_sbm_ops): Install it. + + * ov-re-mat.cc (double): Handle sparse as a special case. + + 2007-10-10 Olli Saarela + + * data.cc, debug.cc, dirfns.cc, error.cc, file-io.cc, help.cc, + load-save.cc, ov-fcn-inline.cc, parse.y, pr-output.cc, symtab.cc, + syscalls.cc, toplev.cc, variables.cc, DLD-FUNCTIONS/bsxfun.cc, + DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/fft.cc, + DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftw.cc, + DLD-FUNCTIONS/gcd.cc, DLD-FUNCTIONS/lsode.cc, + DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/matrix_type.cc, + DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/regexp.cc, + DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/spchol.cc, + DLD-FUNCTIONS/splu.cc, DLD-FUNCTIONS/spparms.cc: Spelling fixes. + + 2007-10-10 Kim Hansen + + * DLD-FUNCTIONS/lpsolve.cc: Delete. + * Makefile.in (DLD_XSRC): Remove it from the list. + + * data.cc (Fsqueeze): Document 2d behaviour. + * ov-range.h (octave_range::squeeze): New function. + + 2007-10-09 John W. Eaton + + * DLD-FUNCTIONS/urlwrite.cc (urlget_cleanup): New function. + (urlget): Protect call to curl_easy_perform with + BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE and + END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE. + + 2007-10-09 David Bateman + + * input.cc (accept_line): Drop this function and remove automatic + insertion of closing quotes as the transpose operator confuses it. + (initialize_command_input): Remove accept_line from here as well. + + 2007-10-09 John W. Eaton + + * ov-mapper.cc (octave_mapper::apply): If possible, use + d_d_map_fcn to handle complex values which have imag(z) == 0. + + * DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread) [! HAVE_CURL]: + Throw error instead of returning empty string hiding error message + in third return value. + (progress_func): Delete. + (Furlread): Don't set progress callback for curl. + (write_data, form_query_string, urlget): Now static. + + 2007-10-08 David Bateman + + * input.cc (quoting_filename): Function to add a leading quote to + a string if needed. + (accept_line): Function to check if a string needs a closing quote + before calling the rl_newline function. + (initialize_command_input): Initialize completer_quote_characters, + filename_quote_characters, quoting_function, + user_accept_line_function. + + * data.cc (template static make_diag (...)): New + template class version of make_diag. Make other make_diag + functions depend on it. + ( static octave_value make_diag (const octave_value&, + octave_idx_type)): Treat all possible internal Octave types. + + 2007-10-08 John W. Eaton + + * load-save.cc (save_vars, dump_octave_core): + Don't pass INFNAN_WARNED to do_save. + (do_save): Delete unused arg, INFNAN_WARNED. + Don't pass INFNAN_WARNED to save_ascii_data. + * ls-oct-ascii.cc (save_ascii_data_for_plotting): + Don't pass INFNAN_WARNED to save_ascii. + (save_ascii_data): Delete unused arg, INFNAN_WARNED. + + * ov.h (octave_value::save_ascii): Delete unused arg, INFNAN_WARNED. + * ov-base-int.cc (octave_base_int_matrix::save_ascii, + octave_base_int_scalar::save_ascii): Likewise. + * ov-base-sparse.cc (octave_base_sparse::save_ascii): Likewise. + * ov-base.cc (octave_base_value::save_ascii): Likewise. + * ov-bool-mat.cc (octave_bool_matrix::save_ascii): Likewise. + * ov-bool.cc (octave_bool::save_ascii): Likewise. + * ov-cell.cc (octave_cell::save_ascii): Likewise. + * ov-fcn-handle.cc (octave_fcn_handle::save_ascii): Likewise. + * ov-fcn-inline.cc (octave_fcn_inline::save_ascii): Likewise. + * ov-list.cc (octave_list::save_ascii): Likewise. + * ov-struct.cc (octave_struct::save_ascii): Likewise. + * ov-str-mat.cc (octave_char_matrix_str::save_ascii): Likewise. + * ov-range.cc (octave_range::save_ascii): Likewise. + + * ov-scalar.cc (octave_scalar::save_ascii): Remove warning about + reloading inf/nan values. Delete unused arg, INFNAN_WARNED. + * ov-complex.cc (octave_complex::save_ascii): Likewise. + * ov-re-mat.cc (octave_matrix::save_ascii): Likewise. + * ov-cx-mat.cc (octave_complex_matrix::save_ascii): Likewise. + + * ov-fcn-inline.cc (Finline): Use DEFUNX instead of DEFUN. + + 2007-10-08 Michael Goffioul + + * sighandlers.h (can_interrupt): Tag with OCTINERP_API. + * sysdep.h (raw_mode, octave_popen, octave_pclose, + same_file_internal): Likewise. + + 2007-10-06 John W. Eaton + + * oct-stream.cc (octave_base_stream::do_scanf): + Always allow MVAL to re resized if NR > 0. + (FINISH_CHARACTER_CONVERSION): Likewise. + + * mappers.cc (install_mapper_functions): Undo previous change. + Fix doc string for lgamma. + (xzlgamma): Delete. + + 2007-10-05 John W. Eaton + + * graphics.h.in (axes::properties): New property, colororder. + * graphics.cc (default_colororder): New function. + (axes::properties::properties, axes::properties::get, + axes::properties::set_defaults, + axes::properties::factory_defaults, ): Handle colororder. + + * mappers.cc (xzlgamma): New static function. + (install_mapper_functions): Pass xzlgamma for c_c_map for lgamma + mapper. Pass 1 for can_ret_cmplx_for_real and set hi to + octave_Inf. + + 2007-10-04 John W. Eaton + + * DLD-FUNCTIONS/symrcm.cc: Move static functions to top of file to + avoid forward decls. + (Q_enq): Delete unused arg QH. Change all uses. + (Q_deq): Delete unused arg QT. Change all uses. + (find_starting_node): Delete unused local variable J. + (H_heapify_min, H_insert, find_starting_node, Fsymrcm): + Move local variable decls to point of first use. + + * OPERATORS/op-streamoff.cc (STREAMOFF_COMP_OP): + Avoid control-reaches-end-of-non-void-function warning. + + * pt-const.cc (tree_constant::dup): Avoid unused parameter warning. + + * pr-output.cc (set_real_format, set_real_matrix_format, + set_complex_format, set_complex_matrix_format): + Delete unused arg, SIGN. Change uses. + + * oct-map.cc (Octave_map::Octave_map): Avoid shadow warning. + + * load-save.cc (write_header): Use reinterpret_cast to avoid + old-style cast warning. + + * data.cc (do_permute): Delete unused arg, FNAME. Change all uses. + + * sysdep.cc (w32_set_octave_home, w32_set_quiet_shutdown, + MINGW_signal_cleanup): + Only define if defined (__WIN32__) && ! defined (_POSIX_VERSION). + + 2007-10-04 Jason Riedy + + * ls-mat5.cc (read_mat5_binary_data): Map miUTF16 to miUINT16, + miUTF32 to miUINT32. The matfile format currently states that + wide UTF formats are in the same byte order as the integers. + (read_mat5_binary_element): Replace all UTF16 and UTF32 + characters with the high bit set (value >127) by '?' and warn + that we've done so. + + 2007-10-04 Michael Goffioul + + * sysdep.cc (w32_set_octave_home): Base OCTAVE_HOME location on + octinterp, not the main exe. + + 2007-10-03 John W. Eaton + + * data.cc (Fnorm): New function. + (F__vnorm__): Delete. + + 2007-10-03 Michael Goffioul + + * DLD-FUNCTIONS/typecast.cc: Include . + + 2007-10-03 John W. Eaton + + * oct-map.cc (Octave_map::Octave_map (const dim_vector&, + const string_vector&)): Delete. + (Octave_map::Octave_map (const dim_vector&, const Cell&)): + New function. + * ov-struct.cc (Fstruct): Allow creation of empty struct arrays + with field names. + + 2007-10-01 Shai Ayal + + * graphics.cc ((color_property::color_property (const + octave_value& val)): Undo change from 2007-09-26 + (patch::properties::properties): use the "a" modifier to + face_color & edge_color properties + (patch::properties::set): Undo change from 2007-09-26 + * graphics.h.in (color_property::color_property + (const octave_value& val)): Undo change from 2007-09-26 + + 2007-10-01 Michael Goffioul + + * octave.cc (octave_main): Add "--line-editing" option to force + readline line editing. + + 2007-09-28 David Bateman + + * ov-range.h (int8_array_value, int16_array_value, int32_array_value, + int64_array_value, uint8_array_value, uint16_array_value, + int32_array_value, uint64_array_value): New methods + + 2007-09-28 Kai Habel + + * graphics.h.in (color_property::colormap_property (const Matrix&)): + Use floating point math in calculation of colormap. + + 2007-09-26 David Bateman + + * graphics.cc (color_values::str2rgb): accept upper, lower and + mixed-case versions of the string representing the color. Allow + black defined as "k" and white as "w". + (color_property::color_property (const octave_value& val, + const radio_values &v)): Modify the constructor to also take a + radio_values argument. Use it. + (patch::properties::set): Change set_facecolor calls to initialize + the color_property argument with the available radio_values. + * graphics.h.in (color_property::color_property + (const octave_value& val, const radio_values &v)): Also pass a + radio_values argument. + + * ov-range.h (sparse_matrix_value, sparse_complex_matrix_value): + New methods. + + * mk-pkg-add: Simplfy the autoload commands. + * parse.y (Fautoload): Allow bare filename if file is in the same + directory as the script from where the autoload command is run. + + 2007-09-25 Matthias Drochner + + * syscalls.cc (Fpopen2): Doc fix. + Use "sort -r" instead of "sort -nr" in test. + + 2007-09-18 John W. Eaton + + * input.cc (input_event_hook, Finput_event_hook): Call + command_editor::add_event_hook and + command_editor::remove_event_hook intstead of + command_editor::set_event_hook and + command_editor::restore_event_hook. + + 2007-09-17 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.14+. + + 2007-09-17 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.14. + (OCTAVE_API_VERSION): Now api-v26. + (OCTAVE_RELEASE_DATE): Now 2007-09-17. + + * Makefile.in (DISTFILES): Add genprops.awk to the list. + + * ov-typeinfo.h (cat_op_fcn): Third arg in function pointer + typedef is now Array instead of Array. + + * file-io.cc (do_stream_open): Use binary mode by default. + + 2007-09-14 Shai Ayal + + * genprop.awk: Handle "a" modifier. + + 2007-09-14 Kai Habel + + * graphics.h.in (radio_values::contains): New function. + (radio_values::validate): Use it. + * graphics.cc (color_property::operator =): Call it instead of + validate here. + + 2007-09-13 John W. Eaton + + * DLD-FUNCTIONS/__glpk__.cc (glpk): Pass LPX_FX, not LB_DB, to + lpx_set_col_bnds when lb[i] == ub[i]. + From: Zhi Wang . + + * graphics.h.in (colormap_property::colormap_property): + Use jet colormap as default. + + 2007-09-12 John W. Eaton + + * graphics.cc (text::properties::properties): Default color is + black, not white. + * graphics.h (text::properties::color): Declare as color_property, + not octave_value. + + * graphics.h.in (root_figure::defaults, figure::defaults, + axes::defaults, line::defaults, text::defaults, image::defaults, + patch::defaults, surface::defaults): New functions. + * gripes.cc (gripe_not_implemented): New function. + * gripes.h: Provide decl. + + 2007-09-10 John W. Eaton + + * genprops.awk: Add missing newline character at end of file. + From Alexander Klimov . + + 2007-09-10 David Bateman + + * data.cc (do_cat): Avoid invalid indexing into ra_idx vector. + + 2007-09-06 David Bateman + + * DLD-FUNCTIONS/__delaunay__.cc, DLD-FUNCRIONS/__voronoi__.cc, + DLD-FUNCTIONS/convhulln.cc: Avoid variables in global scope + + 2007-09-06 David Bateman + + * Makefile.in (stamp-prereq): Add graphics.h to the dependency list. + + 2007-08-31 John W. Eaton + + * Makefile.in (INCLUDES): Remove graphics.h from the list. + (DISTFILES): Include graphics.h.in in the list. + (genprops.awk): New file. + (graphics.h): New rule. + (distclean): Remove graphics.h. + * graphics.h.in: New file, from graphics.h. + (graphics_handle): Now a class instead of typedef. Adapt all uses. + (OCTAVE_GRAPHICS_PROPERTY_INTERNAL, OCTAVE_GRAPHICS_PROPERTY, + OCTAVE_GRAPHICS_MUTABLE_PROPERTY): Delete macros. + (class root_figure, class figure, class axes, class line, class + text, class image, class patch, class surface): Use genprops.awk + to generate property declarations and set/get functions. + * graphics.h: Delete. + * graphics.cc (nan_to_empty, empty_to_nan): Delete. + (root_figure::properties::set, figure::properties::set, + axes::properties::set, line::properties::set, + text::properties::set, image::properties::set, + patch::properties::set, surface::properties::set): Call + type-specific set functions to set properties. + (root_figure::properties::set_currentfigure, + figure::properties::set_currentaxes, figure::properties::set_visible, + axes::properties::get_title, axes::properties::get_xlabel, + axes::properties::get_ylabel, axes::properties::get_zlabel, + axes::properties::set_title, axes::properties::set_xlabel, + axes::properties::set_ylabel, axes::properties::set_zlabel): + Define custom versions. + + 2007-09-06 David Bateman + + * DLD-FUNCTIONS/bsxfun.cc: New function. + * DLD-FUNCTIONS/typecast.cc: New function. + * Makefile.in (DLD_XSRC): Add bsxfun.cc and typecast.cc. + * ov.cc (do_cat_op): Modify use of Array to + Array and adjust where necessary. + * ov.h (do_cat_op): ditto. + * data.cc (do_cat): ditto. + * pt-mat.cc (tree_matrix::rvalue): ditto. + + 2007-09-05 Michael Goffioul + + * oct-stream.cc (octave_base_stream::do_printf): Ignore precision + portion of format string if printing Inf, NaN, or NA values. + + 2007-09-05 David Bateman + + * DLD-FUNCTIONS/sort.cc (mx_sort_sparse, mx_sort_sparse_indexed): + New template classes for sparse sort functions. + (Fsort): Use them. + * ov.h (octave_value (const Sparse&, const MatrixType&), + octave_value (const Sparse&, const MatrixType&)): New + constructors. + * ov.cc (octave_value::octave_value (const Sparse&, + const MatrixType&), octave_value::octave_value (const + Sparse&, const MatrixType&)): Define them. + * ov-re-sparse.h (octave_sparse_matrix (const MSparse&, + const MatrixType&), octave_sparse_matrix (const Sparse&), + octave_sparse_matrix (const Sparse&, const MatrixType&)): + New constructors. + * ov-cx-sparse.h (octave_sparse_complex_matrix (const MSparse&, + const MatrixType&), octave_sparse_complex_matrix (const + Sparse&), octave_sparse_complex_matrix (const + Sparse&, const MatrixType&)): ditto. + + 2007-09-04 Gabriele Pannocchia + + * DLD-FUNCTIONS/__qp__.cc (qp): Use Wact(j) == i - n_eq when + checking for blocking constraint. Don't resize lambda_tmp. Only + compute Y = Aact.pseudo_inverse () if it is needed. + + 2007-08-31 Michael Goffioul + + * ls-mat-ascii.cc (get_lines_and_columns): Check beg variable for + NPOS to avoid segmentation fault. + + * load-path.cc (load_path::do_find_file): Do not assume paths + use forward slashes. + + 2007-08-30 John W. Eaton + + * sysdep.cc (Fpause): Doc fix. + + 2007-08-30 Gabriele Pannocchia + + * DLD-FUNCTIONS/__qp__.cc (qp): Resize Wact to n_act-neq, not n_act. + + 2007-08-29 John W. Eaton + + * graphics.cc (class root_figure::properties): + Rename from root_figure::root_figure_properties. + (class figure::properties): Rename from figure::figure_properties. + (class axes::properties): Rename from axes::axes_properties. + (class line::properties): Rename from line::line_properties. + (class text::properties): Rename from text::text_properties. + (class image::properties): Rename from image::image_properties. + (class patch::properties): Rename from patch::patch_properties. + (class surface::properties): Rename from surface::surface_properties. + + * base-list.h (octave_base_list::remove): Implement our own + remove_if function here. + + 2007-08-28 John W. Eaton + + * graphics.h (base_properties): Move class definition before + definition of base_graphics_object class. Provide forward + declaration of base_graphics_object prior to definition of + base_properties. + (base_graphics_object::get_properties): New virtual function. + (graphics_object::get_properties, root_figure::get_properties, + figure::get_properties, axes::get_properties, + line::get_properties, text::get_properties, image::get_properties, + patch::get_properties, surface::get_properties): New functions. + (root_figure::properties, figure::properties, axes::properties, + line::properties, text::properties, image::properties, + patch::properties, surface::properties): Data member now private. + + 2007-08-27 John W. Eaton + + * load-path.cc (load_path::do_find_file): Also files with non + rooted relative names. + * load-save.cc (find_file_to_load): Likewise. Also handle + appending .mat to files with relative names. + + * graphics.cc (base_properties::mark_modified, + base_properties::override_defaults, + base_properties::delete_children, figure::get_default, + axes::get_default): Move definitions here, from graphics.h. + * graphics.h (class gh_manager): Move decl to end of file. + + * Cell.h (Cell::Cell (const octave_value_list&)): Create row + vector instead of column vector. + + * pt-idx.cc (tree_index_expression::lvalue): Handle [x.a] = + ... style assignments. + * ov-struct.cc (octave_struct::subsasgn): Handle case of RHS as + comma-separated list. + + * ov-cell.cc (gripe_failed_assignment): New function. + (octave_cell::subsasgn): Call gripe_failed_assignment if assign + methods fail. + + 2007-08-24 David Bateman + + * symtab.cc (void symbol_table::clear (void)): If the record in + the symbol table to clear is a user function that is a sub + function with a static parent or if the parent is the current + parent function, don't delete the record. + (void symbol_table::clear_functions (void)): ditto. + (void symbol_table::clear (const std::string&)): ditto. + (void symbol_table::clear_function (const std::string&)): ditto. + + * graphics.h (class text): Add property color. + * graphics.cc (text::text_properties::text_properties) ditto. + (text::text_properties::set): ditto. + (text::text_properties::get): ditto. + (text::text_properties::factory_defaults): ditto. + + 2007-08-24 John W. Eaton + + * mappers.cc (dummyp): New function. + (install_mapper_functions): Use it to handle character data in + finite, isinf, isna, and isnan functions. + + * load-path.cc (load_path::do_remove): Call remove_hook function + before removing directory from list. + + 2007-08-24 David Bateman + + * ov-bool-sparse.cc (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Class + is now logical. + * ov-re-sparse.cc, ov-cx-sparse.cc + (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Class is now double. + * ov-mapper.cc (octave_mapper::apply): Use is_sparse_type method + rather than comparing class name. + * ls-mat5.cc (save_mat5_element_length, save_mat5_binary_element): + ditto. + * pt-mat.cc (tree_matrix:rvalue): sparse matrices are now of class + "double" or "logical", create new single type concat clause for + them. + * mex.cc (get_class_id): No longer need to special case sparse + matrices. + + * DLD-FUNCTIONS/__delaunayn__.cc, DLD-FUNCTIONS/convhulln.cc, + DLD-FUNCTIONS/tsearch.cc, DLD-FUNCTIONS/__voronoi__.cc: New + functions ported from octave-forge. + * DLD-FUCTIONS/__dsearchn__.cc: New file. + * DLD-FUNCTIONS/__voronoi__.cc: Return point at infinity and + include it in the polygrons of the Voronoi diagram for + compatibility. + * Makefile.in: Add specific build targets for __delanayn__.cc, + convhulln.cc and __voronoi__.cc to link to Qhull. + (DLD_SRC): Add new functions. + (OCTAVE_LIBS): Add QHULL_LIBS + + 2007-08-22 David Bateman + + * variables.cc (Fmunlock): Call munlock and not mlock. + * symtab.cc (symbol_record::mark_as_formal_parameter): Typo. + + 2007-08-10 John W. Eaton + + * pt-idx.cc (tree_index_expression::get_struct_index): Improve + error message. + * ov-struct.cc (Fstruct, Fcell2struct): Trap invalid field names here. + + 2007-08-10 Peter A. Gustafson + + * graphics.h, graphics.cc (axes::axes_properties): New properties, + xaxislocation and yaxislocation. + + 2007-08-10 Kai Habel + + * graphics.cc, graphics.h (patch): New class. + (axes::axes_properties): New properties, clim and climmode. + (surface::surface_properties::surface_properties): Handle patch. + (F__go_patch__): New function. + + 2007-07-30 John W. Eaton + + * mex.cc (mxArray_number::mxArray_number (int, const char **)): + First arg is now mwSize. + (max_str_len): Return mwSize value, not int. + * mxarray.h.in (mxArray::mxArray (int, const char **)): + First arg is now mwSize. + (mxArray::mxArray (mxClassID, mwSize, mwSize, int, mxComplexity)): + Third arg is now mwSize. + (mxArray::get_string (char *, int)): Second arg is now mwSize. + + 2007-07-26 John W. Eaton + + * DLD-FUNCTIONS/__glpk__.cc: Include glpk/glpk.h if + HAVE_GLPK_GLPK_H is defined. + + 2007-07-26 David Bateman + + * pr-output.cc (Frats): Return character array with same number of + rows as original value. + + 2007-07-26 John W. Eaton + + * pt-bp.h (MAYBE_DO_BREAKPOINT): Rename cur_fcn to xfcn. + + * version.h (OCTAVE_VERSION): Now 2.9.13+. + + 2007-07-25 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.13 + (OCTAVE_API_VERSION): Now api-v25. + (OCTAVE_RELEASE_DATE): Now 2007-07-25. + + * pt-bp.h (MAYBE_DO_BREAKPOINT): Rename fcn to curr_fcn. + + 2007-07-25 David Bateman + + * Makefile.in: Adjust DISTFILES to allow out of tree "make dist" + to work. + + 2007-07-24 Shai Ayal + + * graphics.cc (color_property::operator = (const octave_value&)): + New method. + * graphics.h: Provide decl. + + 2007-07-24 Rafael Laboissiere + + * oct-conf.h.in (OCTAVE_CONF_RUNTEST): Delete definition. + * toplevel.cc (Foctave_config_info): Remove RUNTEST from struct. + + 2007-07-23 David Bateman + + * pr-output.cc (rat_format, rat_string_len): Global variable + controlling behavior of rational approximation. Use throughout. + (class pr_rational_float): New class for rational approximation of + floats, specifically with the << operator defined. + (std::ostream& operator << (std::ostream&, const + pr_rational_float&)): Operator to print rational approximations of + double values. + (std::string rational_approx (double, int)): Function to convert a + double value to a string of maximum length giving the rational + approximation. + (pr_any_float): Include the output of rational approximations. + (Fformat): Add the "rat" format as an option. + (Frats): New function. + + 2007-07-23 Aquil H. Abdullah + + * mex.cc (mxCreateStructArray): Declare second arg as const. + * mexproto.h (mxCreateStructArray): Ditto. + + 2007-07-20 David Bateman + + * zfstream.cc (BUFSIZE): Increase default buffer size to 256kB + (gzfilebuf::underflow): Stash the last 16 characters read, so as + to avoid calling pbackfail as much as possible. + + 2007-07-18 David Bateman + + * zfstream.cc (int_type gzfilebuf::pbackfail (int_type)): New + method to putback a character when the putback position in the + internal buffer doesn't exist. + * zfstream.h (int_type pbackfail (int_type)): Declaration it. + + 2007-07-14 Michael Goffioul + + * ov-bool-sparse.cc (octave_sparse_bool_matrix:load_hdf5): + Use OCTAVE_LOCAL_BUFFER for temporary boolean value. + + 2007-06-27 David Bateman + + * DLD-FUNCTIONS/sparse.cc (Fspdiag): Ensure spdiag(zeros(1,0)) returns + 0x0 matrix. Doc update. + * data.cc (Fdiag): Doc update. + + 2007-06-28 John W. Eaton + + * ov-cell.cc (octave_cell::subsasgn): Given x = {}, convert to + struct for assignments like x(1).f = val; + + * oct-stream.cc (octave_scan_1): New function + (octave_scan): Use it. Handle fmt.width. + + * graphics.h (axes::axes_properties::visible): New data member. + * graphics.cc (axes::axes_properties::axes_properties, + axes::axes_properties::set, axes::axes_properties::get, + axes::axes_properties::factory_defaults): Handle visible property. + + 2007-06-27 Kai Habel + + * graphics.h (color_values::color_values): Arg is now std:string + instead of char. Call str2rgb, not c2rgb. + * graphics.h, graphics.cc: (color_values::str2rgb): Rename from + c2rgb. Handle long color names, not just single char abbreviations. + + 2007-06-27 David Bateman + + * load-save.cc (Fsave): Ensure header is written for non + existent file with "-append". + * ls-hdf5.h: First steps towards having append work for hdf5. + + 2007-06-26 John W. Eaton + + * load-save.cc (Fsave): Open files correctly for -append. + Don't write file headers if appending. Error for -append -hdf5. + + 2007-06-25 Olaf Till + + * oct-stream.h (octave_stream_list::list): Use std::map. + (octave_stream_list::curr_len): Delete data member. + (octave_stream_list::octave_stream_list): Fix initializations. + + * oct-stream.cc (octave_steam_list::do_insert, + octave_steam_list::do_lookup, octave_steam_list::do_remove, + octave_steam_list::do_clear, octave_steam_list::do_list_open_files, + octave_steam_list::do_open_file_numbers, + octave_steam_list::do_get_file_number): + Use new octave_stream_list::list type. + (octave_stream_list::do_insert): Insert octave_stream with key + corresponding to file-descriptor. + (octave_stream_list::do_insert, octave_steam_list::insert): + Remove const qualifier of argument. + + 2007-06-18 Sᅵren Hauberg + + * DLD-FUNCTIONS/__lin_interpn__.cc: Replace octave_NaN with octave_NA. + + 2007-06-15 Shai Ayal + + * graphics.h (OCTAVE_GRAPHICS_PROPERTY_INTERNAL, + OCTAVE_GRAPHICS_PROPERTY, OCTAVE_GRAPHICS_MUTABLE_PROPERTY): + New macros. Use them to declare individual properties and define + accessor methods for each property in the property classes. + + 2007-06-15 Kai Habel + + * graphics.cc (Fget, Fset): Handle vectors of handles. + + 2007-06-14 John W. Eaton + + * sysdep.cc (octave_popen, octave_pclose): New functions. + * sysdep.h: Provide decls. + + * oct-procbuf.cc (procbuf::open): Use octave_popen. + (procbuf::close): Use octave_pclose. + * oct-prcstrm.cc (octave_oprocstream::octave_oprocstream, + octave_iprocstream::ictave_oprocstream): Likewise. + + * graphics.h (text::text_properties::rotation): New data member. + * graphics.cc (text::text_properties::text_properties, + text::text_properties::set, text::text_properties::get, + text::text_properties::factory_defaults): Handle rotation property. + + 2007-06-14 Kai Habel + + * graphics.cc (color_values::c2rgb): Also accept 'k' for black. + + 2007-06-14 David Bateman + + * ov-ch-mat.h (idx_vector index_vector (void) const): Remove + definition. + * ov-ch-mat.cc (idx_vector index_vector (void) const): Move it + here. Special case ":" case for compatibility. + + 2007-06-13 John W. Eaton + + * ov-re-mat.cc (octave_matrix::load_ascii): + Do a better job of handling read errors and empty matrices. + * ov-cx-mat.cc (octave_complex_matrix::load_ascii): Likewise. + * ov-bool-mat.cc (octave_bool_matrix::load_ascii): Likewise. + * ov-str-mat.cc (octave_char_matrix_str::load_ascii): Likewise. + + 2007-06-13 David Bateman + + * DLD-FUNCTIONS/minmax.cc (MINMAX_BODY): Don't treat as single + argument if arg2 is empty and nargin=2. + + 2007-06-13 Shai Ayal + + * graphics.h, graphics.cc: Move class declarations to graphics.h. + Move larger functions outside of class declarations in graphics.cc. + + 2007-06-12 Benjamin Lindner + + * DLD-FUNCTIONS/cellfun.cc: Use fullfile to generate filenames + instead of assuming / will work as directory separator. + + 2007-06-12 David Bateman + + * DLD-FUNCTIONS/interpn.cc: Remove it. + * DLD-FUNCTIONS/__lin_interpn__.cc: Move it. This is now a support + function of interpn.m. + * Makefile.in (DLD_XSRC): Remove interpn.cc and add __lin_interpn__.cc. + + 2007-06-07 David Bateman + + * ov-fcn-handles.cc (octave_fcn_handle::save_hdf5): More care that + all open HDF5 descriptors are closed. + (octave_fcn_handle::load_hdf5): Ditto. + + 2007-06-06 Benjamin Lindner + + * utils.cc [__MINGW32__]: Don't define HAVE_C99_VSNPRINTF. + + 2007-06-06 Michael Goffioul + + * defaults.h.in, ls-hdf5.h, ov-complex.h, ov-cx-mat.h, ov-intx.h, + sysdep.h: Sprinkle with OCTINTERP_API as needed. + + 2007-06-05 John W. Eaton + + * help.h (raw_help): Tag with OCTINTERP_API. + + * Makefile.in (INCLUDES): Remove mxarray.h from the list so that + it is not distributed. + (EXTRAS): Add mxarray.h to the list so that it is installed. + + * sysdep.cc (same_file_internal) [OCTAVE_USE_WINDOWS_API]: + Avoid leaking file handles. + + 2007-05-08 Michael Weitzel + + * DLD-FUNCTIONS/symrcm.cc: Fix for queuing error that might cause + an infinite loop. + + 2007-06-04 John W. Eaton + + * data.cc (Fislogical): Rename from Fisbool. + Make isbool an alias for islogical. + + 2007-06-03 David Bateman + + * Makefile.in (DISTFILES): Add mxarray.h.in + (install-inc): Modify target so that mxarray.h is installed + correctly. + (distclean): Remove mxarray.h on distclean. + * mex.cc: Use mwSize for dimensions and mwIndex for indexing + throughout, with the exception of struct key indexes. + * mexproto.h: ditto. + * mxarray.h: remove. + * mxarray.h.in: Copy here and define mwSize, mwIndex, and use + throughout. + * ov-bool-mat.cc (octave_bool_matrix::as_mxArray): Use mwSize and + mwIndex. + * ov-bool-sparse (octave_sparse_bool_matrix::as_mxArray): ditto. + * ov-cell.cc (octave_cell:as_mxArray): ditto. + * ov-ch-mat.cc (octave_char_matrix:as_mxArray): ditto. + * ov-cx-mat.cc (octave_complex_matrix::as_mxArray): ditto. + * ov-cx-sparse.cc (octave_sparse_complex_matrix::as_mxArray): ditto. + * ov-int.h (as_mxArray): ditto. + * ov-range.cc (octave_range:as_mxArray): ditto. + * ov-re-mat.cc (octave_matrix:as_mxArray): ditto. + * ov-re-sparse.cc (octave_sparse_matrix::as_mxArray): ditto. + * ov-struct.cc (octave_struct::as_mxArray): ditto. + + 2007-06-02 David Bateman + + * graphics.cc (color_property class): g++ doesn't like anonymous + enums. Give type to color_type enum. + + 2007-05-31 Shai Ayal + + * graphics.cc (radio_values, radio_property, color_values): + New classes. + (color_property class): Handle both color and radio values. + + 2007-05-31 John W. Eaton + + * toplev.cc (main_loop): Improve bad_alloc error message. + + * octave.cc (execute_command_line_file, execute_eval_option_code): + Likewise. + + 2007-05-31 Michael Goffioul + + * toplev.cc (octave_atexit_functions): + Now std::list instead of std::stack. + (do_octave_atexit): Adapte to octave_atexit_functions as list. + (Fatexit): Allow second arg of false to remove element from list. + + * DLD-FUNCTIONS/symrcm.cc: Use ! instead of "not". + + * sysdep.cc (same_file_internal) [OCTAVE_USE_WINDOWS_API]: + Use INVALID_HANDLE_VALUE, not INVALID_FILE_HANDLE. + + 2007-05-28 G. D. McBain + + * ov-list.cc (append): Doc fix. + + 2007-05-28 John W. Eaton + + * pt-loop.cc (DO_ND_LOOP): Avoid parser problem with obsolete g++. + + 2007-05-23 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.12+. + + 2007-05-23 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.12. + (OCTAVE_RELEASE_DATE): Now 2007-05-23. + + * parse.y (make_anon_fcn_handle): Don't build assignment expression. + * ov-fcn-handle.cc (octave_fcn_handle::print_raw): + Don't split assignment expression. + * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): + Special case for inline function body evaluation. + + 2007-05-22 John W. Eaton + + * pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue): + Set current function as parent of anonymous function handle. + + * Makefile.in (uninstall): Also remove + $(DESTDIR)$(octincludedir)/octave, $(DESTDIR)$(octincludedir), + $(DESTDIR)$(octlibdir), and $(DESTDIR)$(octfiledir). + + 2007-05-22 Thomas Weber + + * debug.cc, error.cc, load-save.cc, oct-hist.cc, sighandlers.cc, + symtab.cc: Fix typos. + + 2007-05-22 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.11+. + + 2007-05-22 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.11. + (OCTAVE_API_VERSION): Now api-v24. + (OCTAVE_RELEASE_DATE): Now 2007-05-22. + + 2007-05-21 David Bateman + + * debug.cc (Fdbstop): handle integer, vector and multiple line + arguments. + (Fdbclar): ditto. Eliminate extraneous debugging messages. + + 2007-05-21 Sᅵren Hauberg + + * load-path.cc (Fpath, Frehash): Replace "LOADPATH" with "load + path" in doc strings. + + * parse.y (Feval): Add example. + + 2007-05-21 David Bateman + + * error.cc (rethrow_error): Use NULL name so that "error:" is not + added to the message + (Frethrow): Correctly treat empty stack. + + 2007-05-21 John W. Eaton + + * oct-map.h (Octave_map::numel): Return number of array elements, + not number of map elements. + (Octave_map::nfields): Rename from length. + (Octave_map::empty): Delete. + Change all uses of empty to check nfields () == 0 instead. + + 2007-05-21 Sᅵren Hauberg + + * help.cc (Fautoload): Doc fix. + * variables.cc (Fiscommand): Doc fix. + + 2007-05-19 David Bateman + + * ov-fcn-inline.cc (Fvectorize): Doc fix. + + 2007-05-16 Sᅵren Hauberg + + * ov.cc (Fsubsref, Fsubsasgn): Doc fix. + + 2007-05-16 John W. Eaton + + * load-path.h (load_path::sys_path): New static data member. + (load_path::system_path): New static function. + (load_path::do_system_path): New function. + * load-path.cc (Vsystem_path): Delete. + (load_path::do_initialize): Use sys_path, not Vsystem_path. + (Fpathdef): Call load_path::system_path instead of using Vsystem_path. + * ls-mat5.cc (read_mat5_binary_element): Likewise. + * ov-fcn-handle.cc (octave_fcn_handle::set_fcn): Likewise. + + 2007-05-16 David Bateman + + * load_pathc.cc (std::string octave_system_path (void)): New + function. + * load-path.h (std::string octave_system_path (void)): Declare it. + + * load-save.cc (static load_save_format get_file_format + (std::istream&, const std::string&)): Add filename argument, and + pass it to read_mat5_binary_header. Use new format throughout file. + (Fload): Don't allow gzip of matlab v7 files as the files + themselves include compression. + + * ls-mat5.cc (arrayclsstype:MAT_FILE_WORKSPACE_CLASS): New class + type. + (read_mat5_binary_element): Workspaces, don't have dimensions, so + don't read them. Implement read of matlab objects, but only use + them for inline functions. Implement reading of function and + workspace classes. + (read_mat5_binary_header): Add filename argument. Read sub-system + specific data block given as an offset in bytes 117 to 124. + (save_mat5_binary_element): Include saving of inline functions. + + * ls-mat5.h (read_mat5_binary_header): Include filename. + + * ov-fcn-handle.cc (octave_fcn_handle_save_ascii, + octave_fcn_handle::load_ascii, octave_fcn_handle::save_binary, + octave_fcn_handle::load_binary, octave_fcn_handle::save_hdf5, + octave_fcn_handle::load_hdf5): Save and reload the local symbol + table of the user function associated with anonymous function + handles. Save and load the absolute path and the exec_prefix for + normal function handles and use then to find equivalent functions + between different installations of Octave. Attempt to maintain + backward and forward compatibility. + (Ffunctions): Additional outputs, including the workspace of + anonymous functions, and more compatiable outputs. + + * ov-fcn-handle.h (user_function_value): Expose the user function + value of a function handle. + + * ov-fcn-inline.cc (Octave_map octave_fcn_inline::map_value + (void) const): Return a structure compatiable with matlab's class + implementation of inline functions. + + * ov-fcn-inline.h (map_value): Declare it. + + 2007-05-14 Bob Weigel + + * DLD-FUNCTIONS/svd.cc: Doc fix. + + 2007-05-14 Thomas Weber + + * DLD-FUNCTIONS/fft.cc (do_fft): Handle empty matrices. New tests. + + 2007-05-14 Sᅵren Hauberg + + * toplev.cc (Fatexit): Simplify example in doc string. + * help.cc (Flookfor): Doc fix. + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): + Reformat to avoid long lines in doc string example. + + 2007-05-13 Sᅵren Hauberg + + * toplev.cc (Fquit): Doc fix. + * help.cc (Fhelp): Doc fix. + * oct-hist.cc (Fsaving_history): Doc fix. + + 2007-05-11 John W. Eaton + + * variables.cc (symbol_out_of_date): + Always check for files that have gone missing. + + 2007-05-08 Michael Weitzel + + * DLD-FUNCTIONS/symrcm.cc: New function for Reverse Cuthill-McKee + permutation. + + 2007-05-07 John W. Eaton + + * oct-map.cc (Octave_map::resize): Handle case of no keys. + (keys_ok): Rename from equiv_keys. Return value is now status. + Pass key names as string_vector reference arg. + (Octave_map::assign (const octave_value_list&, const Octave_map&)): + Call keys_ok, not equiv_keys. Handle case of no keys. + + 2007-04-30 John W. Eaton + + * Makefile.in (%.df : %.cc): Use mv instead of + $(simple-move-if-change-rule). + + 2007-04-30 David Bateman + + * pt-loop.cc (DO_ND_LOOP): New args, CONV and ARG. + Use octave_idx_type instead of int for loop counters. + Remove redundant assignments to variable "quit" as it is + always defined in quit_loop_now. + Special case rows = 0 and 1 cases in loops over arrays. + Include some of the code that was separate from the macro + DO_ND_LOOP in the macro itself + (tree_simple_for_command::eval): USE DO_ND_LOOP for all loops. + (DO_LOOP): Delete. + + 2007-04-30 John W. Eaton + + * mex.cc (mex::cleanup): Don't call unmark for elements of the set + inside the loop. From Laurent Mazet . + + 2007-04-30 David Bateman + + * OPERATORS/op-int-conv.cc: Define sq and dq string conversion + operators. Delete old char_matrix_str conversions. + * OPERATORS/op-int-conv.cc (install_int_conv_ops): Install them. + + 2007-04-27 Benjamin Lindner . + + * octave.cc (execute_startup_files): Call same_file to check for + already executed init files. + + 2007-04-27 John W. Eaton + + * sysdep.cc (same_file_internal): New function. POSIX code + from same_file in utils.cc. Windows code from + Benjamin Lindner . + Don't canonicalize file names. + Also return false if stat calls fail. + * sysdep.h: Provide decl. + * utils.cc (same_file): Use same_file_internal. + + 2007-04-27 David Bateman + + * graphic.cc (get_property_form_handle, set_property_in_handle): + New functions. + * grahics.h: New file. + * mex.cc (mexGet, mexSet): use the above to implement mexGet + and mexSet. + * Makefile.in (INCLUDES): Add graphics.h + + 2007-04-26 John W. Eaton + + * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): + Only deal with varargout if ret_list->takes_varargs () is true. + + 2007-04-26 Sᅵren Hauberg + + * DLD-FUNCTIONS/urlwrite.cc: Doc fix. + + 2007-04-26 David Bateman + + * pt-loop.cc (tree_simple_for_command::eval (void)): Correct + reshaping of dim_vector in for loop for multi-dimensional array. + + 2007-04-26 John W. Eaton + + * load-save.cc (find_file_to_load): Only consider regular files. + + 2007-04-24 Shai Ayal + + * graphics.cc (color_property): Eliminate alpha channel from RGB + color spec. + + 2007-04-23 Shai Ayal + + * graphics.cc (color_property::color_property): + New arg A for alpha channel. Set rgba instead of red, green, blue. + (color_property::color_property (char)): New constructor. + (color_propery::rgba): New data member. + (color_property::red, color_property::green, color_property::blue): + Delete. + (color_property::validate): Use rgba. + (color_property::c2rgba): New function. + + 2007-04-23 Sᅵren Hauberg + + * data.cc (Fsize_equal): Allow more than two arguments. + + 2007-04-20 John W. Eaton + + * DLD-FUNCTIONS/__gnuplot_raw__.l (deftypefn): + (Vautomatic_replot): Delete static variable. + (Fautomatic_replot): Delete function. + + * toplev.cc (Fcasesen): Delete obsolete function. + + * DLD-FUNCTIONS/__gnuplot_raw__.l (gnuplot::makeplot): Check + whether caller is "splot", not "gsplot". + + 2007-04-19 John W. Eaton + + * lex.l (is_keyword_token): Delete all_va_args_kw switch case. + * octave.gperf: Remove all_va_args_kw from the list. + + 2007-04-19 Daniel J. Sebald + + * syscalls.cc: Fix popen2 test to stop trying after 100 times + throught the loop. + + 2007-04-16 Geordie McBain + + * ov-fcn-inline.cc (Fargnames): Doc fix. + + 2007-04-13 Geordie McBain + + * DLD-FUNCTIONS/find.cc (Ffind): Doc fix. + + 2007-04-11 John W. Eaton + + * Makefile.in (DOCSTRINGS): Don't echo commands. + (doc-files): Use mv, not $(simple-move-if-change-rule). + + * data.cc (Fnot, Fuplus, Fuminus, Ftranspose, Fctranspose, Fplus, + Fminus, Fmtimes, Fmrdivide, Fmpower, Fmldivide, Flt, Fle, Feq, + Fge, Fgt, Fne, Ftimes, Frdivide, Fpower, Fldivide, Fand, For): + New functions. + + 2007-04-09 John W. Eaton + + * graphics.cc (line::line_properties::markeredgecolor, + line::line_properties::markerfacecolor): New properties. + + 2007-04-06 John W. Eaton + + * data.cc (F__vnorm__): New function. + + * pt-fcn-handle.cc (tree_anon_fcn_handle::param_list, + tree_anon_fcn_handle::cmd_list, tree_anon_fcn_handle::ret_list, + tree_anon_fcn_handle::sym_tab): Delete. Remove all uses. + (tree_anon_fcn_handle::fcn): New data member. + (tree_anon_fcn_handle::tree_anon_fcn_handle): Initialize it. + (tree_anon_fcn_handle::rvalue, tree_anon_fcn_handle::dup): + Extract parameter list, return list, function body, and symbol + table from fcn. + (tree_anon_fcn_handle::parameter_list, tree_anon_fcn_handle::body): + Forward request to fcn. + + * ov-usr-fcn.h (octave_user_function::local_sym_tab): Rename from + sym_tab. Change all uses. + (octave_user_function::sym_tab): New function. + + * octave.cc (execute_command_line_file): + + 2007-04-05 David Bateman + + * DLD-FUNCTIONS/regexp.cc (Fregexprep): Correct iteration over + cell arrays so that the source and pattern are iterated seperately + in the same manner as matlab. + + 2007-04-05 Laurent Mazet + + * mex.cc (mxArray_octave_value::get_string): Copy nel elements, + not buflen elements. + + 2007-04-05 John W. Eaton + + * oct-stream.cc (DO_DOUBLE_CONV): New macro. + (do_printf): Use it. + + 2007-04-04 John W. Eaton + + * input.cc (octave_yes_or_no): Force interactive_input to use readline. + + * octave.cc (execute_eval_option_code): Catch bad::alloc here. + + 2007-04-03 John W. Eaton + + * DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread): + Use && for logical, not &. + + * DLD-FUNCTIONS/qr.cc (Fqr): Clarify nargin check. + + * error.cc (Frethrow): Add braces to avoid ambiguous if/else. + * oct-stream.cc (octave_scan<>): Likewise. + * DLD-FUNCTIONS/colamd.cc (Fetree): Likewise. + * DLD-FUNCTIONS/sort.cc (mx_sort, mx_sort_indexed): Likewise. + + * ov-fcn-handle.cc (make_fcn_handle): Pass ultimate parent + function name to lookup_function. + + 2007-03-29 John W. Eaton + + * DLD-FUNCTIONS/filter.cc (filter): Fix typo in doc string. + From Utkarsh Upadhyay . + + 2007-03-28 Rafael Laboissiere + + * DLD-FUNCTIONS/__glpk__.cc: Fix #ifdef logic around GLPK_PRE_4_14. + + 2007-03-27 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.10+ + + 2007-03-27 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.10. + (OCTAVE_API_VERSION): Now api-v23. + (OCTAVE_RELEASE_DATE): Now 2007-03-27. + + * version.h (OCTAVE_COPYRIGHT): Update for 2007. Add "and others". + (X_OCTAVE_WARRANTY_STATEMENT): Rename from OCTAVE_WARRANTY_STATEMENT. + Accept arg. + (OCTAVE_WARRANTY_STATEMENT): Define using X_OCTAVE_WARRANTY_STATEMENT. + (OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY): Define using + X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY. + (X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY): Rename + from OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY. + Accept arg and pass to X_OCTAVE_WARRANTY_STATEMENT. + (OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY): Pass empty + arg to X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS. + (OCTAVE_STARTUP_MESSAGE): Put info about news last. + + 2007-03-27 John W. Eaton + + * Makefile.in (dist, conf-dist): Use ln, not $(LN_S). + + 2007-03-26 Juhani Saastamoinen + + * file-io.cc (do_stream_open) [! HAVE_ZLIB]: + Call fopen with mode, not tmode. + + 2007-03-26 John W. Eaton + + * OPERATORS/op-str-str.cc (DEFCHARNDBINOP): New macro. Use it to + define functions for eq and ne ops. Also define lt, le, ge, and + gt ops. + + 2007-03-23 David Bateman + + * DLD-FUNCTIONS/rand.cc: Make more statistical tests optional. + + 2007-03-23 John W. Eaton + + * bitfcns.cc (Fbitshift): Error if third argument is not a scalar. + + 2007-03-23 David Bateman + + * DLD-FUNCTIONS/rand.cc: Make statistical tests optional and + add tests for fixed sequences. + + 2007-03-22 John W. Eaton + + * graphics.cc (base_graphics_object::mark_modified): + New virtual function. + (base_properties::__modified__): New data member. + (base_properties::base_properties): Initialize it. + (graphics_object::mark_modified, base_properties::mark_modified, + root_figure::mark_modified, figure::mark_modified, + axes::mark_modified, line::mark_modified, text::mark_modified, + image::mark_modified, surface::mark_modified, + root_figure::root_figure_properties::mark_modified, + figure::figure_properties::mark_modified, + axes::axes_properties::mark_modified, + line::line_properties::mark_modified, + text::text_properties::mark_modified, + image::image_properties::mark_modified, + surface::surface_properties::mark_modified): New functions. + (figure::figure_properties::set, figure::figure_properties::get, + axes::axes_properties::set, axes::axes_properties::get, + line::line_properties::set, line::line_properties::get, + text::text_properties::set, text::text_properties::get, + image::image_properties::set, image::image_properties::get, + surface::surface_properties::set, surface::surface_properties::get): + Handle __modified__ property. + + * parse.y (Fautoload): Use warning_with_id. + + 2007-03-21 John W. Eaton + + * DLD-FUNCTIONS/__qp__.cc (ABS): Delete. Use std::abs instead. + (null): Set elements of retval with magnitudes less than eps to 0. + + * error.cc (Fwarning): Allow setting options with struct. + If setting options, return previous state. + + * graphics.cc (axes::axes_properties::set_defaults): Reverse sense + of mode test for setting outerposition property. + (figure::figure_properties::set): If setting visible property, + make this figure the current figure. + (gh_manager::figure_handle_list, gh_manager::do_figure_handle_list): + New functions. + (F__go_figure_handles__): New function. + + * sysdep.cc (Fpause): Also call drawnow if nargin == 0. + (Fkbhit, Fsleep, Fusleep): Also call drawnow here. + + 2007-03-20 David Bateman + + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Correct for shape of return + matrix for the case of UniformOutput being true. + + 2007-03-20 John W. Eaton + + * sysdep.cc (Fpause): Call drawnow. + + 2007-03-15 John W. Eaton + + * variables.cc (F__lock_global__): Delete. + + 2007-03-14 John W. Eaton + + * graphics.cc: New file. + * Makefile.in (DIST_SRC): Add it to the list. + + 2007-03-13 John W. Eaton + + * file-io.cc (do_stream_open): Use binary mode if 't' is not + specified in mode, but don't add 'b' if it is already present. + + 2007-03-09 David Bateman + + * data.cc (do_cat): Also treat case of all empty matrices. + + 2007-03-08 John W. Eaton + + * mex.cc (mxArray_octave_value::set_dimensions, + mxArray_octave_value::set_m, mxArray_octave_value::set_n, + mxArray_octave_value::set_class_name, + mxArray_octave_value::set_ir, mxArray_octave_value::set_jc, + mxArray_octave_value::remove_field, + mxArray_octave_value::set_field_by_number): + Don't panic; request mutation instead. + (class mxArray_octave_value): + + * mxarray.h (mxArray::set_m, mxArray::set_n, + mxArray::set_dimensions): Wrap method call call with + DO_VOID_MUTABLE_METHOD. + + 2007-03-08 David Bateman + + * data.cc (do_cat): Ignore leading empty matrices. + + 2007-03-07 Bob Weigel + + * urlwrite.cc (urlget): Allow URL redirects. + + 2007-03-05 David Bateman + + * DLD-FUNCTIONS/md5sum.cc (Fmd5sum): Treat both files and strings. + + 2007-03-05 John W. Eaton + + * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Check GLPK_PRE_4_14, not + GLPK_PRE_4_15. + + 2007-03-02 John W. Eaton + + * parse.y (Fautoload): Undo previous change. + Warn if FILE is not an absolute file name. + + * utils.cc (make_absolute): Make copy of arg before + + 2007-03-01 John W. Eaton + + * ov-base-mat.h (octave_base_matrix::octave_base_matrix (const MT&), + (octave_base_matrix::octave_base_matrix (const MT&, const MatrixType&)): + Use common definition with default argument value. + * ov-base-scalar.h (octave_base_scalar::typ): New data member. + Initialize in constructors. + (octave_base_scalar::matrix_type): New funtions. + + 2007-03-01 David Bateman + + * DLD-FUNCTIONS/md5sum.cc: New file. + * Makefile.in (DLD_XSRC): Add md5sum.cc + + 2007-03-01 Olli Saarela + + * input.cc (FPS1): Fix @seealso. + + 2007-03-01 David Bateman + + * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Special case scalar + types and always return "Full" matrix type. + + 2007-02-28 John W. Eaton + + * input.cc (interactive_input): Also call flush_octave_stdout + after calling drawnow. + + 2007-02-27 John W. Eaton + + * Makefile.in (uninstall): Also remove octave-$(version)$(EXEEXT), + oct-gperf.h, and all .oct files. Remove PKG_ADD. + From Thomas Treichl . + + * load-path.h, (load_path::initialize, load_path::do_initialize): + New arg, set_initial_path. + * load-path.cc (load_path::do_initialize): Don't add system + directories to apth if set_initial_path is false. + * octave.cc (set_initial_path): New static variable. + (NO_INITIAL_PATH_OPTION): New define. + (usage_string): Include --no-initial-path in message. + (long_opts): Include no-initial-path/NO_INITIAL_PATH_OPTION here. + (octave_main): Handle NO_INITIAL_PATH_OPTION. + Pass set_initial_path to load_path::initialize. + + * parse.y (Fautoload): Warn about duplicate entries. Only insert + the first found. + + 2007-02-27 David Bateman + + * error.cc (Vlast_error_file, Vlast_erro_name, Vlast_error_row, + Vlast_error_column): New static variables. + (verror): Use them to store the location of last error. + (rethrow_error, Frethrow, Flasterror): New functions. + + * DLD-FUNCTIONS/regexp.cc (octcellregexp): Wrapper to octregexp + function for cases when string or pattern are cell arrays + (Fregexp, Fregexpi): Use them. + (octregexprep): New function with functionality of old Fregexprep. + (Fregexprep): Treat cell arguments. + + 2007-02-26 Michael Goffioul + + * Makefile.in: Use $(LN_S) instead of ln or ln -s. + + * DLD-FUNCTIONS/getrusage.cc: Undef min after including windows.h. + + 2007-02-25 John W. Eaton + + * DLD-FUNCTIONS/interpn.cc: Include dNDArray.h, not dMatrix.cc. + + * error.h: Include cstdarg. + From Juhani Saastamoinen . + + 2007-02-23 John W. Eaton + + * variables.cc (lookup_function): Don't dereference NULL + curr_parent_fucntion pointer. + * ov-fcn-handle.cc (make_fcn_handle): Call lookup_function with + parent set to empty string if call_stack is empty. + + * DLD-FUNCTIONS/dispatch.cc (Fbuiltin): Also adjust argument list + in calls to functions that are not overloaded. Call + lookup_by_name to find function instead of searching fbi_symtab + directly. + + * help.cc (do_which): Return empty string if file not found. + + 2007-02-22 John W. Eaton + + * mex.cc (mxArray_cell::mxArray_cell (const mxArray_cell&), + mxArray_struct::mxArray_struct (const mxArray_struct&)): + Avoid calling clone on 0 elements. + + * variables.cc (symbol_out_of_date): If checking nested function, + look for file using parent function name. Delete unused + variable NAMES. + + * oct-stream.cc (octave_stream::do_gets): If no limit or not + at limit, read ahead one character at end of line for compatibility. + (octave_stream::gets, octave_stream::getl): Set max_len to -1 if + tc_max_len is not defined. + * file-io.cc (Ffgets, Ffgetl): If no limit specified, pass + undefined octave_value object as max_len in call to + octave_stream::gets. + + 2007-02-21 John W. Eaton + + * mex.cc (mexErrMsgIdAndTxt, mexWarnMsgIdAndTxt): Handle second + arg as format and accept variable number of arguments. + * mexproto.h: Fix decls. + + * error.h, error.cc (vmessage, vusage, vwarning, verror, + vparse_error, vmessage_with_id, vusage_with_id, vwarning_with_id, + verror_with_id, vparse_error_with_id): Provide va_list versions of + variadic error, warning, and message functions. + (message, usage, warning, error, parse_error, message_with_id, + usage_with_id, warning_with_id, error_with_id, + parse_error_with_id): Call va_list versions. + + * DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread): Return error + code and message instead of throwing error if functionality is + missing. + + * oct-obj.h (octave_value_list::splice): Set default for + replacement list argument. + + 2007-02-20 Rafael Laboissiere + + * DLD-FUNCTIONS/__glpk__.cc: Adapt code for changes in the GLPK + API for version 4.15 or later. + + 2007-02-20 John W. Eaton + + * mxarray.h (mxArray::get_scalar): New function. + * mex.cc (mxArray_base::get_scalar): New pure virtual function. + (mxArray_octave_value::get_scalar, mxArray_matlab::get_scalar, + mxArray_number::get_scalar): New functions. + (mxGetScalar): Call get_scalar here. + + * mex.cc (mxArray_octave_value::get_dimensions): Cache ndims here. + (mxArray_octave_value::get_number_of_dimensions): + Call get_dimensions here to cache both ndims and dims. + + 2007-02-17 John W. Eaton + + * variables.cc (symbol_out_of_date): Don't exit early if looking + at nested function. + + 2007-02-16 John W. Eaton + + * dynamic-ld.cc (octave_dynamic_loader::do_load_oct): Clear + function if original was loaded from relative path and the name + can no longer be found in path. Mark files found from relative + path as relative. + (clear): Only warn if there is more than one function to clear. + + * variables.cc (symbol_out_of_date): Don't ignore return value in + call to octave_env::make_absolute. + (symbol_out_of_date): Clear symbol if original was loaded from + relative path and name can no longer be found in path. + + * dynamic-ld.cc (octave_dynamic_loader::do_load_oct): + Also check whether new file is same as the old file. + + * utils.cc (same_file): Move here from variables.cc. + * utils.h: (same_file): Provide decl. + + * parse.y (frob_function): Stash parent function name if parsing + nested function. + + * ov-fcn-handle.cc (make_fcn_handle): Pass current function name + as parent in call to lookup_function. + + * ov-fcn.h (octave_function::parent_fcn_name): New virtual function. + + * ov-usr-fcn.h (octave_user_function::parent_name): New data member. + (octave_user_function::stash_parent_function_name, + octave_user_function::parent_function_name): New methods. + * ov-usr-fcn.cc (octave_user_function::octave_user_function): + Initialize parent_name. + + * variables.h, variables.cc (lookup_function): New arg, parent. + If not empty, try this first for lookup. + + * dynamic-ld.cc (octave_dynamic_loader::do_load_mex): If doing + path lookup, check relative status. Pass relative to oct_file_in_path. + (octave_dynamic_loader::do_load_mex): Likewise, for mex_file_in_path + + * defun-int.h, defun.cc (install_mex_function): New arg, relative. + (install_dld_function): Likewise. + (octave_dld_fcn_installer): Likewise. + (DEFINE_FUNX_INSTALLER_FUN3): Pass relative to install_dld_function. + + * dynamic-ld.h (octave_dynamic_loader::load_oct, + octave_dynamic_loader::load_mex, + octave_dynamic_loader::do_load_oct + octave_dynamic_loader::do_load_mex): New arg, relative. + + * dirfns.h (Vcurrent_directory): Delete unused variable. + + * variables.cc (symbol_out_of_date): Also compare function time + stamp to Vlast_chdir_time if function is from relative lookup. + + * dirfns.cc (Vlast_chdir_time): New variable. + (octave_change_to_directory): Update it if chdir succeeds. + * dirfns.h (Vlast_chdir_time): Provide decl. + + * ov-fcn.h (octave_function::relative): New data member. + (octave_function::mark_relative, octave_function::is_relative): + New functions. + + * parse.y (fcn_file_from_relative_lookup): New static variable. + (load_fcn_from_file): Note whether function file was found from + relative path element. + (frob_function): Maybe mark function as relative. + + * parse.y (lookup_autoload): Don't call octave_env::make_absolute + on return value. + * variables.cc (symbol_out_of_date): Make name absolute after call + to lookup_autoload. + + * input.cc (interactive_input): New arg, DEBUG. Don't call + drawnow if debugging. + (get_user_input): Pass DEBUG to interactive_input. + + 2007-02-16 Michael Goffioul + + * syscalls.cc (Fpopen2): New function. + (pipe): Modify to return input and output file descriptor + seperately rather than in a list. + + 2007-02-16 Muthiah Annamalai + + * debug.cc (Fdbtype): Improve compatibility. + + 2007-02-16 John W. Eaton + + * toplev.cc (wait_for_input): New function. + (run_command_and_return_output): Use it instead of napping. + + * oct-procbuf.h (octave_procbuf::pid): Now const. + * procstream.h (procstreambase::pid): Now const. + (procstreambase::file_number): New function. + + 2007-02-15 John W. Eaton + + * mxarray.h (mxChar): Use char instead of unsigned short. + + * toplev.cc (Foctave_config_info): Remove + OCTAVE_CONF_MKOCTFILE_INCFLAGS and OCTAVE_CONF_MKOCTFILE_LFLAGS + from the list. + * oct-conf.h.in (OCTAVE_CONF_MKOCTFILE_INCFLAGS, + OCTAVE_CONF_MKOCTFILE_LFLAGS): Don't define. + (OCTAVE_CONF_INCLUDEDIR, OCTAVE_CONF_OCTINCLUDEDIR, + OCTAVE_CONF_OCTLIBDIR, OCTAVE_CONF_PREFIX): New definitions. + + 2007-02-14 Alexander Barth + + * DLD-FUNCTIONS/interpn.cc: New file. + * Makefile.in (DLD_XSRC): Add it to the list. + + 2007-02-14 John W. Eaton + + * input.cc (interactive_input): Check error_state after call to feval. + + 2007-02-10 John W. Eaton + + * oct-stream.cc (octave_stream::rewind): Call seek (0, SEEK_SET) + instead of rep->rewind. + (octave_base_stream::rewind): Delete Function. + * oct-stream.h (octave_base_stream::rewind): Delete decl. + + 2007-02-09 John W. Eaton + + * ls-mat5.cc (PAD): Adjust to change in write_mat5_tag. + (TAGLENGTH): Delete unused macro. + + * ov-struct.cc (octave_struct::load_ascii, + octave_struct::load_binary, octave_struct::load_hdf5): + Delete obsolete attempt at backward compatibility. + + * ls-mat5.cc (read_mat5_binary_element): Don't attempt to read + fieldnames if there are no fields. + (write_mat5_tag): Don't use small data element format if bytes == 0. + + * ls-mat5.cc (read_mat5_binary_element): Always create a structure + that is at least 1x1. + * ov-struct.cc (octave_struct::load_ascii, + octave_struct::load_binary, octave_struct::load_hdf5): Likewise. + + 2007-02-08 Michael Goffioul + + * DLD-FUNCTIONS/__glpk__.cc: Include glplib.h if glpk.h does not. + Provide definitions for lib_set_fault_hook and lib_set_print_hook + if they are not defined. + + 2007-02-07 John W. Eaton + + * defaults.cc (subst_octave_home): + Only substitute at beginning of string. + + * ls-hdf5.cc (save_hdf5_empty): Use OCTAVE_LOCAL_BUFFER. + * ov-bool-mat.cc (octave_bool_matrix::save_hdf5, + octave_bool_matrix::load_hdf5): Likewise. + * ov-bool-sparse.cc (octave_sparse_bool_matrix::save_hdf5, + octave_sparse_bool_matrix::load_hdf5): Likewise. + + 2007-02-07 Michael Goffioul + + * ov-cell.cc (octave_cell::save_hdf5): Correct test for H5Dwrite + return value. + + 2007-02-07 John W. Eaton + + * zfstream.cc (gzfilebuf::open_mode): Always append "b" to c_mode. + + * toplev.cc (Foctave_config_info): Use struct for conf_info. + Call subst_octave_home on selected values when initializing map. + * defaults.cc (subst_octave_home): Now extern. + * defaults.h.in: Provide decl. + + 2007-02-05 John W. Eaton + + * mex.cc (mxArray_number::as_octave_value): Fake mxSINGLE_CLASS + by returning double-precision values. + (mxArray_sparse::as_octave_value): Clarify error message. + + * ov-complex.h (octave_complex): Use std instead of OCTAVE_STD + since the latter was unconditionally defined to be std anyway. + + 2007-02-05 Michael Goffioul + + * ov-complex.h: Tag octave_complex class with OCTINTERP_API. + + 2007-01-30 John W. Eaton + + * Merge of changes from graphics-branch: + + 2007-01-26 John W. Eaton + + * DLD-FUNCTIONS/__contourc__.cc: New function. + * Makefile.in (DLD_XSRC): Add it to the list. + + 2007-01-25 John W. Eaton + + * input.cc (Vdrawnow_requested): New static variable. + (F__request_drawnow__): New function. + (interactive_input): New function. Update Vlast_prompt_time here. + (octave_gets, get_user_input, octave_yes_or_no): + Call interactive_input instead of gnu_readline. + + * symtab.h (symbol_record::eternal): New data member. + (symbol_record::symbol_record): Initialize it. + (symbol_record::make_eternal, symbol_record::is_eternal): + Don't forward to symbol_def functions. + (symbol_record::symbol_def::make_eternal, + symbol_record::symbol_def::is_eternal): Delete. + (symbol_record::symbol_def::eternal): Delete data member. + (symbol_record::symbol_def::symbol_def): Delete initialization. + + * pt-id.cc (tree_identifier::link_to_global): Include variable + name in warning message. + + * variables.cc (F__lock_global__): New function. + + 2007-01-11 John W. Eaton + + * ls-oct-ascii.cc (save_ascii_data_for_plotting, save_three_d): + Set precision to 6 instead of 4. + + 2007-01-29 David Bateman + + * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Don't panic if + nargout is greater than 3. + + 2007-01-24 John W. Eaton + + * pt-assgn.cc (former_built_in_variables): New static data. + (maybe_warn_former_built_in_variable): New static function. + (tree_simple_assignment::tree_simple_assignment, + tree_multi_assignment::tree_multi_assignment): + Move definition here from pt-assign.h + Maybe warn about assignment to obsolete built-in variables. + + * version.h (OCTAVE_STARTUP_MESSAGE): Mention "news" function. + + * pt-stmt.cc (tree_statement::eval): Use dynamic_cast, not + static_cast. + + * help.cc (help_from_file): Show .oct or .mex file name if one + exists in the same directory as the .m file. + + 2007-01-23 Luis F. Ortiz + + * strfns.cc (Fstrncmp): New function. + + 2007-01-17 John W. Eaton + + * help.cc (help_from_file, help_from_symbol_table, help_from_list): + Rewrite using raw_ versions. + + 2007-01-17 David Bateman + + * help.cc (raw_help, raw_help_from_file, + raw_help_from_symbol_table, raw_help_from_list): New functions. + * help.h (raw_help): Provide decl. + + 2007-01-16 John W. Eaton + + * DLD-FUNCTIONS/__pchip_deriv__.cc: Fix dpchim decl for --enable-64. + (F__pchip_deriv__): Fix call to dpchim for --enable-64. + + * DLD-FUNCTIONS/fftw.cc: Delete decl for fftw_planner. + + 2007-01-11 Michael Goffioul + + * load-path.h (class load_path): Tag with OCTINTERP_API. + + * ls-oct-binary.cc (read_binary_data): Use unsigned char, not + char, for reading flags and data types. + + 2007-01-10 Luis F. Ortiz + + * parse.y (load_fcn_from_file): Delete unused variable NAMES. + If NM is absolute, strip directory and extension parts. + + 2007-01-10 Michael Goffioul + + * DLD-FUNCTIONS/getrusage.cc: Use #ifdef __WIN32__, not __MINGW32__. + + 2007-01-10 John W. Eaton + + * parse.y (load_fcn_from_file): Only compare last two characters + when looking for ".m". + + 2007-01-06 John W. Eaton + + * version.h (OCTAVE_CONFIG_STATEMENT): New macro + (OCTAVE_NAME_AND_VERSION): Remove config info. + (OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY): + Use OCTAVE_CONFIG_STATEMENT here. + + 2007-01-05 David Bateman + + * Makefile.in (DLD_XSRC): Add fftw.cc and remove fftw_wisdom.cc + * DLD-FUNCTIONS/fftw.cc: New file. + * DLD-FUNCTIONS/fftw_wisdom.cc: Delete. + * defaults.cc (Vfftw_wisdom_program): Delete variable. + (set_default_fftw_wisdom_prog): Delete function that sets it. + (install_defaults): Delete set_default_fftw_prog from defaults. + (Ffftw_wisdom_program): Delete. + + 2007-01-04 David Bateman + + * ov-fcn-handle.cc (octave_fcn_handle::load_ascii, + octave_fcn_handle::load_binary): + Throw error if handle can't be created. + + 2007-01-04 Luis F. Ortiz + + * mex.cc (mxArray_number::mxArray_number (int, const char **)): + Correctly index LHS in assignment. + + 2007-01-03 John W. Eaton + + * data.cc (Fisinteger): New function. + * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::is_integer_type, + OCTAVE_VALUE_INT_SCALAR_T::is_integer_type): New function. + * ov.h (octave_value::is_integer_type): New function. + * ov-base.h (octave_base_value::is_integer_type): New virtual function. + + 2007-01-03 Michael Goffioul + + * toplev.cc (Fsystem): Handle async calls on Windows systems. + + 2007-01-03 David Bateman + + * (OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, + OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, + OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, + OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc, + OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc, + OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc, + OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc, + OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc, + OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc, + OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc): + Modify div and ldiv functions so that scalars stored as sparse + matrices are special cased. + + * ov-re-sparse.cc (double_value, complex_value): Scalar can be + stored as a sparse matrix and so don't warn on implicit conversion + to a scalar. + * ov-cx-sparse.cc (double_value, complex_value): ditto. + * ov-bool-sparse.cc (double_value, complex_value): ditto. + + 2007-01-03 John W. Eaton + + * dynamic-ld.cc (octave_dynamic_loader::do_load_mex): Also check + for _mexFunction. + + 2006-12-30 John W. Eaton + + * ov-fcn-inline.cc: For compatibility, class id is + "function_handle", not "inline function". + + 2006-12-27 John W. Eaton + + * Makefile.in (%.df : %.cc): Insert a "do not edit" notice in the + .df files. + + * mex.cc (mxArray_matlab::get_class_name, + mxArray_octave_value::get_class_id): Use "function_handle", not + "function handle". + + 2006-12-14 John W. Eaton + + * pt-decl.cc (tree_decl_elt::eval): New function. + * pt-decl.h (tree_decl_elt::eval): Provide decl. + (tree_decl_elt::is_defined, tree_decl_elt::lvalue_ok, + tree_decl_elt::mark_as_formal_parameter, tree_decl_elt::rvalue, + tree_decl_elt::lvalue): New functions. + + * pt-misc.h (class tree_parameter_list): Derive from + octave_base_list instead of + octave_base_list. + (tree_parameter_list::tree_parameter_list (tree_identifier *)): Delete. + (tree_parameter_list::tree_parameter_list (tree_decl_elt *)): + New function. + * pt-misc.cc (tree_parameter_list::mark_as_formal_parameters, + tree_parameter_list::initialize_undefined_elements, + tree_parameter_list::undefine, tree_parameter_list::dup, + tree_parameter_list::convert_to_const_vector, + tree_parameter_list::is_defined): Handle argument list elements + as tree_decl_list objects instead of tree_identifier objects. + (tree_parameter_list::define_from_arg_vector): Likewise. + Always process entire list, setting default values if possible. + Accept ":" to mean "use default argument". + + * parse.y (param_list2): Use decl2 to recognize + "identifier '=' expression" in addition to "identifier". + + * parse.y (return_list1, make_anon_fcn_handle, finish_function): + Adapt to new definition of tree_parameter_list. + * pt-bp.cc (tree_breakpoint::visit_parameter_list): Likewise. + * pt-check.cc (tree_checker::visit_parameter_list): Likewise. + * pt-pr-code.cc (tree_print_code::visit_parameter_list): Likewise. + + 2006-12-08 John W. Eaton + + * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::array_value, + OCTAVE_VALUE_INT_MATRIX_T::complex_array_value, + OCTAVE_VALUE_INT_MATRIX_T::bool_array_value, + OCTAVE_VALUE_INT_MATRIX_T::char_array_value): + Use fortran_vec to avoid expensive indexing operator. + + 2006-12-08 David Bateman + + * ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::matrix_value, + OCTAVE_VALUE_INT_SCALAR_T::complex_matrix_value, + OCTAVE_VALUE_INT_MATRIX_T::matrix_value, + OCTAVE_VALUE_INT_MATRIX_T::comlex_matrix_value): New functions. + (OCTAVE_VALUE_INT_MATRIX_T::array_value, + OCTAVE_VALUE_INT_MATRIX_T::comlex_array_value): + Use octave_idx_type instead of int for indexing. + + 2006-12-04 David Bateman + + * xpow.cc (xpow (const Matrix&, double)): Add matrix type probing + to matrix inverse. + (xpow (const ComplexMatrix&, double)): ditto. + * DLD-FUNCTIONS/inv.cc (Finv): Add matrix type probing. + + 2006-12-06 John W. Eaton + + * sysdep.cc: Include "Cell.h" here. + * input.h: Include "oct-obj.h", not "ov-list.h". + + 2006-12-06 Michael Goffioul + + * mappers.cc (install_mapper_functions): Undefine isascii before + the DEFUN_MAPPER for it. + + * input.cc (get_user_input): Prevent out of bounds array access + when checking for EOL. + + 2006-12-05 John W. Eaton + + * ls-oct-ascii.cc (extract_keyword): If no match and looking for + more, skip to end of line before trying another match. + + * pt-mat.cc (tm_row_const::empty): New function. + (tm_const::init): Don't append anything if tmp tm_row_const object + is empty. + (tree_matrix::rvalue): Default return value is Matrix(). + Don't do anything if tmp tm_const object is empty. + + * dirfns.cc (Fmkdir): Fix thinko in previous change. + + 2006-12-05 Paul Kienzle + + * DLD-FUNCTIONS/rand.cc: Test for Poisson generator with lambda > 1e8. + + 2006-12-04 David Bateman + + * data.cc (Fdata): If ndims is greater than nargout and + nargout is greater than 1, then collect size of trailing + dimensions into retval(end). + + * load-path.cc (load_path::do_find_fcn): Return empty string if + tests fail. + + * ov-base-mat.cc (void octave_base_matrix::assign (const + octave_value_list&, const MT&)): Invalidate matrix type on + assignment. + + 2006-11-30 John W. Eaton + + * DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom): + Accept "r" or "w" for second argument. + + 2006-11-29 John W. Eaton + + * DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom): Look in load-path + if reading wisdom file, but not if writing. + + 2006-11-28 John W. Eaton + + * mex.cc (mxArray_struct::get_field_by_number): + Return 0 if key_num is out of range. + (mxArray_struct::set_field_by_number): + Do nothing if key_num is out of range. + (mxArray_cell::get_cell, mxArray_cell::set_cell): + Avoid out-of-bounds indexing + + 2006-11-28 Luis F. Ortiz + + * mex.cc (mxArray_matlab::get_n, mxArray_octave_value::get_n): + Return product of last N-1 dims. + + 2006-11-28 John W. Eaton + + * lex.l (eat_whitespace): Also handle CRLF as EOL. + + * dirfns.cc (Fmkdir): Handle "mkdir (parent, dir)". + + 2006-11-21 John W. Eaton + + * load-path.cc (load_path::do_find_file, + load_path::do_find_first_of, load_path::do_find_all_first_of): + Call rooted_pathname instead of absolute_pathname. + * utils.cc (fcn_file_in_path, oct_file_in_path, mex_file_in_path): + Likewise. + + 2006-11-16 Michael Goffioul + + * oct-hist.cc (default_history_file): Instead of appending + "/.octave_hist", append directory separator (but only if + necessary), then ".octave_hist". + + 2006-11-16 John W. Eaton + + * data.cc (Fresize): Fix doc string. + + 2006-11-15 John W. Eaton + + * DLD-FUNCTIONS/__gnuplot_raw__.l (write_data, write_inline_data): + New functions. + (save_in_tmp_file): Use write_data. + (gnuplot::send_inline_data, gnuplot_do_send_inline_data): + New functions. + (F__gnuplot_send_inline_data__, F__gnuplot_save_data__): + New functions. + + * ls-oct-ascii.cc (save_ascii_data_for_plotting): + Call save_ascii_data with precision = 4. + (save_three_d): Temporarily set precision to 4 for output stream. + + 2006-11-15 Michael Goffioul + + * Cell.h (Cell): Tag class with OCTINTERP_API. + + 2006-11-13 John W. Eaton + + * octave.cc (maximum_braindamage): Disable + Octave:fopen-file-in-path and Octave:load-file-in-path warnings. + + * load-save.cc (find_file_to_load): New function. + (Fload): Call find_file_to_load to search load path for file. + + * file-io.cc (Ffopen): Search load path for file. + + * load-path.cc (path::do_find_first_of, path::do_find_file): + Break out of all loops once file is found, not just innermost one. + + * data.cc (Fsize_equal): New function. + + 2006-11-13 Michael Goffioul + + * ov.cc (check_subsref_elements, Fsubsref, Fsubsasgn): + New functions. + + * ov-re-mat.h, ov-scalar.h, pr-output.h: + Sprinkle with OCTINTERP_API as needed. + + 2006-11-11 John W. Eaton + + * Makefile.in (parse.cc): Avoid creating empty files. + (%.df : %cc, builtins.cc, mkbuiltins, PKG_ADD, DOCSTRINGS, + doc-files, gendoc.cc, ops.cc, $(OPT_HANDLERS), oct-errno.cc, + oct-gperf.h): Use $(simple-move-if-change-rule) here. + (lex.cc, __gnuplot_raw__.cc): + Use $(destdir-move-if-change-rule) here. + (ifndef omit_deps): Don't include stamp-prereq here. + ($(DEF_FILES), $(MAKEDEPS)): Also depend on stamp-prereq. + + 2006-11-10 John W. Eaton + + * ov-str-mat.cc (octave_char_matrix_str::load_ascii, + octave_char_matrix_str::load_binary): + Use chMatrix as buffer instead of C string. + + 2006-11-09 John W. Eaton + + * ov-usr-fcn.h (octave_user_function::inline_function): + New data member. + (octave_user_function::mark_as_inline_function): Set it. + (octave_user_function::is_inline_function): Check it. + * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): + Also skip setting curr_parent_fucntion if evaluating an inline + function. + (octave_user_function::octave_user_function): + Initialize inline_function. + * pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue): + Mark user function as inline here. + + 2006-11-09 Michael Goffioul + + * load-path.cc (load_path::move): Don't use reference to file_info + object that will be erased. + + 2006-11-07 John W. Eaton + + * utils.cc (file_in_path): Don't unconditionally return "". + + * pager.cc (default_pager): Don't append options here. + (pager_command): New function. + (do_sync): Use it. + (VPAGER_FLAGS): New variable. + (FPAGER_FLAGS): New function. + + 2006-11-06 John W. Eaton + + * oct-hist.cc (default_history_file): If env_file is not empty, + just accept it rather than checking to see if it exists. + + 2006-11-03 Bill Denney + + * help.cc (keywords): Document try and unwind_protect. + + 2006-11-03 John W. Eaton + + * Makefile.in (DLL_CXXDEFS): Rename from XTRA_CXXDEFS. + (DLL_CDEFS): Rename from XTRA_CDEFS. + Substitute OCTINTERP_DLL_DEFS, not XTRA_OCTINTERP_DEFS. + + 2006-11-02 Michael Goffioul + + * sysdep.cc (MSVC_init): Also cal w32_sigint_init and + w32_set_quiet_shutdown. + + 2006-11-01 John W. Eaton + + * ov.h (octave_value::idx_type_value): New function. + * data.cc (fill_matrix, Flinspace, Freshape): Use idx_type_value + instead of int_value to extract size args. + + 2006-10-31 John W. Eaton + + * ov-range.h (octave_range::empty_clone): Return octave_matrix + object instead of octave_range. + + 2006-10-29 Juhani Saastamoinen + + * ls-mat5.cc (read_mat5_tag): Declare bytes as int32_t, not just int. + + 2006-10-28 John W. Eaton + + * toplev.cc (Fatexit): Push function names on the stack even if we + don't have atexit or on_exit. + + 2006-10-28 Michael Goffioul + + * mappers.cc (install_mapper_functions): Undefine toascii before + the DEFUN_MAPPER for it. + + 2006-10-27 John W. Eaton + + * mexproto.h: Include oct-dlldefs.h. + + * pr-output.cc (SPECIALIZE_UABS): New macro. + Use it to generate specializations of abs for unsigned int types. + Instantiate abs for signed int types. + + * load-path.cc (load_path::do_initialize): + Use dir_path::path_sep_str instead of ":". + Don't append ":::" to xpath when calling do_set. + + * dirfns.cc (Fls, cleanup_iprocstream): Delete. + + * sysdep.cc (Ftilde_expand): If arg is cellstr, return cellstr. + + * ov.h (octave_value::is_cellstr): New function. + * ov-base.h (octave_base_value::is_cellstr): New function. + * ov-cell.h (octave_cell::is_cellstr): New function. + * ov-cell.cc (Fiscellstr): Implement with is_cellstr. + * Cell.cc (Cell::Cell (const dim_vector&, const string_vector&, bool)): + New constructor. + (Cell::is_cellstr): New function. + * Cell.h: Provide decls. + + * defaults.cc (subst_octave_home): If dir_sep_char is not '/', + replace before returning. + From Michael Goffioul . + + 2006-10-26 John W. Eaton + + * cutils.c (octave_strcasecmp, octave-strncasecmp): + Move to liboctave/lo-cutils.c. + * utils.h: Delete decls. + * strcasecmp.c: Move to liboctave/strcasecmp.c. + * strncase.c: Move to liboctave/strncase.c. + * Makefile.in (DIST_SRC): Delete them from the list. + + * bitfcns.cc (bitshift): If A < 0, return -bitshift (-A, N, MASK). + + 2006-10-26 Michael Goffioul + + * help.cc (display_help_text): Quote sed patterns with ". + + * file-io.cc: Include file-io.h. + + * TEMPLATE-INST/Array-os.cc, TEMPLATE-INST/Array-sym.cc, + TEMPLATE-INST/Array-tc.cc, defun-int.h, error.h, file-io.h, + gripes.h, ls-oct-ascii.h, mexproto.h, oct-map.h, oct-obj.h, + oct-stream.cc, oct-stream.h, octave.h, ov-base.h, + ov-bool-sparse.cc, ov-bool-sparse.h, ov-cx-sparse.cc, + ov-cx-sparse.h, ov-fcn.h, ov-re-sparse.cc, ov-re-sparse.h, + ov-str-mat.h, ov-typeinfo.cc, ov-typeinfo.h, ov.h, pager.h, + parse.h, pr-output.cc, pr-output.h, procstream.h, sighandlers.h, + symtab.h, unwind-prot.h, utils.h, variables.h: + Sprinkle with OCTINTERP_API as needed. + + 2006-10-26 John W. Eaton + + * ov-bool.h (octave_bool::sparse_matrix_value, + octave_bool::sparse_complex_matrix_value + octave_bool::sparse_bool_matrix_value): New functions. + + 2006-10-25 John W. Eaton + + * sighandlers.cc: Check defined (RETSIGTYPE_IS_VOID) instead of + RETSIGTYPE == void. + + * oct-procbuf.cc (BUFSIZ): Define if not already defined. + (octave_procbuf::open): Pass BUFSIZ as size argument to setvbuf. + + 2006-10-25 Michael Goffioul + + * Makefile.in (XTRA_CDEFS, XTRA_CXXDEFS): Substitute here. + + * oct-procbuf.cc [_MSC_VER]: Define W32POPEN and W32PCLOSE the + same as for __MINGW32__. + (octave_procbuf::open, octave_procbuf::close) [_MSC_VER]: + Use the same code as for __MINGW32__ and __CYGWIN__. + + * oct-prcstrm.cc [_MSC_VER]: Define popen and pclose. + + 2006-10-25 John W. Eaton + + * sysdep.cc (w32_set_octave_home): Correctly initialize bin_dir. + Fill it with '\0' instead of ' '. + + 2006-10-24 Michael Goffioul + + * Makefile.in: Filter out $(XTRA_CXXDEFS) from $(ALL_CXXFLAGS) for + $(DLD_PICOBJ). + + 2006-10-24 John W. Eaton + + * sysdep.cc (MSC_init): New function. + (sysdep_init): Call it. + (w32_set_octave_home): New function, based on code from Michael + Goffioul . + (MINGW_init): Call w32_set_octave_home here too. + + 2006-10-23 John W. Eaton + + * symtab.cc (symbol_table::clear_mex_functions): New function. + * symtab.h: Provide decl. + * vriables.cc (clear_mex_functions): New function. + * variables.h Provide decl. + * toplev.cc: Call clear_mex_functions instead of delete_symbol_tables. + + * variables.cc (delete_symbol_tables): Delete. + * variables.h: Delete decl. + + * mex.cc (mex::unmark_array): New function. + (mex::persistent): Define with unmark_array. + (maybe_unmark_array): New function. + (mxArray_struct::set_field_by_number, mxArray_cell::set_cell): + Call maybe_unmark_array on val to avoid freeing val twice on exit + from mex function. + (mxFree): Call xfree, not free. + + 2006-10-21 John W. Eaton + + * ov-intx.h + (OCTAVE_VALUE_INT_MATRIX_T::OCTAVE_TYPE_PREDICATE_FUNCTION, + (OCTAVE_VALUE_INT_SCALAR_T::OCTAVE_TYPE_PREDICATE_FUNCTION): + Function is now const, so it properly overloads method in base + class. + + * mex.cc (mxArray_octave_value::is_uint32): + Call val.is_uint32_type, not val.is_int32_type. + (mxArray_octave_value::is_uint64): + Call val.is_uint64_type, not val.is_int64_type. + (mxArray_octave_value::is_uint8): + Call val.is_uint8_type, not val.is_int8_type. + + 2006-10-20 Paul Kienzle + + * ov-mex-fcn.h (octave_mex_function::atexit): New function. + (octave_mex_function::exit_fcn_ptr): New data member. + * ov-mex-fcn.cc (octave_mex_function::exit_fcn_ptr): New data member. + (octave_mex_function::octave_mex_function): Initialize it. + (octave_mex_function::~octave_mex_function): + If we have an exit function, call it. + + 2006-10-20 John W. Eaton + + * variables.cc (delete_symbol_tables): New function. + * variables.h: Provide decl. + * toplev.cc (do_octave_atexit): Call it. + + * mex.cc (mex::mex): New arg, a pointer to the current mex function. + (mex::curr_mex_fcn): New data member. + (mex::current_mex_function): New function. + (mexAtExit): Set exit function pointer in current mex file object. + + 2006-10-20 Paul Kienzle + + * mex.cc (enum callstyle): Delete enum definition. + (Fortran_mex, C_mex): Delete functions. + (call_mex): First arg is now bool. + * ov-mex-fcn.cc (call_mex): Fix decl to match new definition. + (Fortran_mex, C_mex): Delete decls. + (octave_mex_function::do_multi_index_op): Simplify call to call_mex. + + 2006-10-20 John W. Eaton + + * lex.l (handle_identifier): If a command name is found, skip + starting command mode if parsing an object index. + + 2006-10-20 David Bateman + + * DLD-FUNCTION/spqr.cc (dmperm_internal): New function with core + of Fdmperm. + (Fdmperm): Call dmperm_internal rather then calculating loally. + (Fsprank): New function to calculate the strutural rank also using + dmperm_internal. + + 2006-10-19 John W. Eaton + + * ov-struct.cc (octave_struct::as_mxArrary): + Use OCTAVE_LOCAL_BUFFER to allocate tempoarary array of field names. + + * mxarray.h (mxArray::persistent): Delete var and all uses. + (mxArray::mark_persistent, mxArray::unmark_persistent, + mxArray::is_persistent): Delete functions. + * mex.cc (mex::function_name): Use mxArray::strsave, not strsave. + (mex::mark_array): New function. + (mex::make_value): Use it. + (mex::free_value): Return true if we found ptr in arraylist. + (mex::persistent (mxArray *)): Remove ptr from arraylist instead + of marking it as persistent. + (mxArray::malloc): Call ::malloc instead of malloc. + (mxArray::calloc): Call ::calloc instead of calloc. + (maybe_mark_array): New function. + (mxCreateCellArray, mxCreateCellMatrix, mxCreateCharArray, + mxCreateCharMatrixFromStrings, mxCreateDoubleMatrix, + mxCreateDoubleScalar, mxCreateLogicalArray, mxCreateLogicalMatrix, + mxCreateLogicalScalar, mxCreateNumericArray, + mxCreateNumericMatrix, mxCreateSparse, + mxCreateSparseLogicalMatrix, mxCreateString, mxCreateStructArray, + mxCreateStructMatrix, mxDuplicateArray): Use it. + (mxDestroyArray): No need to check persistence now. + Also delete ptr if mex_context->free_value does not. + (call_mex): No need to delete elements of argout now. + + 2006-10-18 John W. Eaton + + * dynamic-ld.cc (octave_shlib_list::remove, + octave_shlib_list::do_remove, octave_mex_file_list::remove, + octave_mex_file_list::do_remove): New arg, cl_hook. + (octave_shlib_list::do_remove): Pass cl_hook to octave_shlib close + function. + (octave_dynamic_loader::do_load_oct): Don't call close on shl + directly. Pass do_clear_function to octave_shlib_list::remove. + + * mex.cc (mexUnlock): Don't warn if unlocking a function that is + not locked. + + * pt-fcn-handle.cc (tree_anon_fcn_handle::dup): + Correctly duplicate symbol table info. + + 2006-10-17 Michael Goffioul + + * oct-map.h: Include . + + 2006-10-16 John W. Eaton + + * oct-stream.cc (octave_stream_list::do_remove): Handle "all" as a + special case. + + 2006-10-13 Michael Goffioul + + * Makefile.in: Adapt rules to use $(LIBPRE). + + 2006-10-11 John W. Eaton + + * mex.h (UINT64_T, uint64_T, INT64_T, int64_T, UINT32_T, uint32_T, + INT32_T, int32_T, UINT16_T, uint16_T, INT16_T, int16_T, UINT8_T, + uint8_T, INT8_T, int8_T): Conditionally define. + From Andy Adler . + + 2006-10-09 John W. Eaton + + * oct-conf.h.in (OCTAVE_CONF_CURL_LIBS): Substitute. + * toplev.cc (octave_config_info): Add CURL_LIBS to the list. + + 2006-10-09 Alexander Barth + + * DLD-FUNCTIONS/urlwrite.cc: New file providing urlwrite and urlread. + + 2006-10-09 John W. Eaton + + * pt-mat.cc (tree_matrix::dup): Append new elements to new matrix. + * pt-cell.cc (tree_cell::dup): Append new elements to new cell array. + + 2006-10-04 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.9+. + + * DLD-FUNCTIONS/__gnuplot_raw__.l (F__clear_plot_window__): + Rename from Fclearplot. Only clear plot window. + + 2006-10-03 John W. Eaton + + * DLD-FUNCTIONS/luinc.cc (Fluinc): Avoid crash if SparseLU or + SparseComplexLU constructor fails. + + * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): + Delete unused variable. + + 2006-10-03 David Bateman + + * Makefile.in (OCT_LINK_DEPS) Include $(CAMD_LIBS) in the list. + (octave$(EXEEXT)): Include $(CAMD_LIBS) in link command. + + 2006-10-02 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.9. + (OCTAVE_API_VERSION): Now api-v22. + (OCTAVE_RELEASE_DATE): Now 2006-10-02. + + * pr-output.cc (pr_plus_format): Use "inline" instead of "static + inline" for template functions to avoid problems when not + compiling with g++. + + * mex.cc (call_mex): Delete elements of argout. + From Kai Labusch . + + 2006-09-29 John W. Eaton + + * DLD-FUNCTIONS/spfind.cc (sparse_find_non_zero_elem_idx): + Leading dimension is NR, not NC. + + * Makefile.in (DEP_5): Include oct-errno.cc in the list. + + 2006-09-27 John W. Eaton + + * pr-output.cc (abs): New template function. Instantiate for + unsigned types. + + 2006-09-27 David Bateman + + * file-io.cc (Fsprintf): If fmt is an sq_string, return an sq_string. + + * DLD-FUNCTIONS/sparse.cc (spfind, sparse_find): Delete. + * DLD-FUNCTIONS/spfind.cc: New file implementating compatible + sparse find function. + * Makefile.in (DLD_XSRC): Add spfind.cc. + + 2006-09-26 Bill Denney + + * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx, Ffind): + Handle direction and limit on number of elements to find. + + 2006-09-26 John W. Eaton + + * error.cc (warning_1): Call error_2, not error. + + 2006-09-15 John W. Eaton + + * ops.h (DEFSTRDBLCONVFN): New arg, TFROM. + * OPERATORS/op-double-conv.cc: Declare and install sq_string + conversions too. + + * ov-base-int.cc (octave_base_int_scalar::convert_to_str_internal, + octave_base_int_matrix::convert_to_str_internal): + New functions. + * ov-base-int.h: Provide decls. + + 2006-09-15 Sᅵren Hauberg . + + * data.cc (Fsize): If nargout > ndims, fill with 1. + + 2006-09-15 John W. Eaton + + * octave.cc: Fix xerbla decl. + + 2006-09-13 John W. Eaton + + * DLD-FUNCTIONS/cellfun.cc: Improve error message for uniform + output case when results are not scalars. Avoid shadow decls. + + 2006-09-13 David Bateman + + * ov-scalar.h (octave_scalar::sparse_matrix_value, + octave_scalar::sparse_complex_matrix_value): New extractor functions. + * ov-complex.h (octave_complex::sparse_matrix_value, + octave_complex::sparse_complex_matrix_value): Ditto. + * DLD-FUNCTIONS/spkron.cc (Fspkron): Change example in help. + + 2006-09-12 David Bateman + + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Allow matlab compatiable + 'UniformOutput' and 'ErrorHandler' options. Change output when + called with function handler or inline function to by default have + 'UniformOutput' set to true. Allow functions with multiple inputs + and outputs. Add test code. Replace some int with octave_idx_type. + (Fnum2cell): Replace some int with octave_idx_type. Add test code. + + 2006-09-11 Yozo Hida + + * DLD-FUNCTIONS/gcd.cc (Fgcd): Extend range by using std::floor + instead of converting to int. + + 2006-09-05 John W. Eaton + + * mex.cc (mxArray_sparse::as_octave_value): Cast nzmax to + octave_idx_type for sparse matrix constructors. + + 2006-09-01 John W. Eaton + + * dirfns.cc: Don't handle nargout == 0 as a special case. + (octave_change_to_directory): Perform tilde expansion on directory + name here. + + 2006-08-30 John W. Eaton + + * load-save.cc (get_file_format): Fix misplaced #endif. + + 2006-08-29 John W. Eaton + + * load-path.cc (execute_pkg_add_or_del): + Source PKG_ADD or PKG_DEL in base workspace. + * parse.y (source_file): New optional arg, context. + * parse.h (source_file): Fix decl. + + 2006-08-25 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.8+. + + 2006-08-24 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.8. + (OCTAVE_API_VERSION): Now api-v21. + (OCTAVE_RELEASE_DATE): Now 2006-08-24. + + 2006-08-23 John W. Eaton + + * ov.h (octave_value::save_ascii): Delete strip_nan_and_inf arg. + * ov-base.h, ov-base.cc (octave_base_value::save_ascii): Likewise. + * ov-base-int.h, ov-base-int.cc (octave_base_int_matrix::save_ascii, + octave_base_int_scalar::save_ascii, ): Likewise. + * ov-base-sparse.cc, ov-base-sparse.h + (octave_base_sparse::save_ascii): Likewise. + * ov-bool-mat.cc, ov-bool-mat.h (octave_bool_matrix::save_ascii): + Likewise. + * ov-bool.cc, ov-bool.h (octave_bool::save_ascii): Likewise. + * ov-cell.cc, ov-cell.h (octave_cell::save_ascii): Likewise. + * ov-complex.cc, ov-complex.h (octave_complex::save_ascii): Likewise. + * ov-fcn-handle.cc, ov-fcn-handle.h (octave_fcn_handle::save_ascii): + Likewise. + * ov-fcn-inline.cc, ov-fcn-inline.h (octave_fcn_inline::save_ascii): + Likewise. + * ov-list.cc, ov-list.h (octave_list::save_ascii): Likewise. + * ov-range.cc, ov-range.h (octave_range::save_ascii): Likewise. + * ov-scalar.cc, ov-scalar.h (octave_scalar::save_ascii): Likewise. + * ov-str-mat.cc, ov-str-mat.h (octave_char_matrix_str::save_ascii): + Likewise. + * ov-struct.cc, ov-struct.h (octave_struct::save_ascii): Likewise. + * ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii): Likewise. + * ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii): + Likewise. + * ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii): + Likewise. + * ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii): Likewise. + + * ls-oct-ascii.cc, ls-oct-ascii.h (save_ascii_data): + Delete strip_nan_and_inf arg. + (save_ascii_data_for_plotting): Delete strip_nan_and_inf arg from + call to save_ascii_data. + + * DLD-FUNCTIONS/__gnuplot_raw__.l (handle_using): Accept "(EXPR)" + as components of using clauses. + (enum _toktype): New element DOLLAR. + Accept "$" in lexer. + + * ls-oct-ascii.cc (save_ascii_data): Delete arg strip_nan_and_inf. + Change all uses. + + * ls-oct-ascii.h (save_three_d): Provide decl. + * load-save.h (save_ascii_data_for_plotting, save_three_d): + Delete decls. + + 2006-08-22 John W. Eaton + + * ov.h (octave_value::save_ascii): strip_nan_and_inf is now int, + not bool. + * ov-base.h, ov-base.cc (octave_base_value::save_ascii): Likewise. + * ov-base-int.h, ov-base-int.cc (octave_base_int_matrix::save_ascii, + octave_base_int_scalar::save_ascii, ): Likewise. + * ov-base-sparse.cc, ov-base-sparse.h + (octave_base_sparse::save_ascii): Likewise. + * ov-bool-mat.cc, ov-bool-mat.h (octave_bool_matrix::save_ascii): + Likewise. + * ov-bool.cc, ov-bool.h (octave_bool::save_ascii): Likewise. + * ov-cell.cc, ov-cell.h (octave_cell::save_ascii): Likewise. + * ov-complex.cc, ov-complex.h (octave_complex::save_ascii): Likewise. + * ov-fcn-handle.cc, ov-fcn-handle.h (octave_fcn_handle::save_ascii): + Likewise. + * ov-fcn-inline.cc, ov-fcn-inline.h (octave_fcn_inline::save_ascii): + Likewise. + * ov-list.cc, ov-list.h (octave_list::save_ascii): Likewise. + * ov-range.cc, ov-range.h (octave_range::save_ascii): Likewise. + * ov-scalar.cc, ov-scalar.h (octave_scalar::save_ascii): Likewise. + * ov-str-mat.cc, ov-str-mat.h (octave_char_matrix_str::save_ascii): + Likewise. + * ov-struct.cc, ov-struct.h (octave_struct::save_ascii): Likewise. + * ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii): Likewise. + * ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii): + Likewise. + + * ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii): + Don't strip Inf and NaN here. Call ComplexMatrix::save_ascii to + do the real work. + * ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii): + Don't strip Inf and NaN here. Call Matrix::save_ascii to do the + real work. + + * ov-re-mat.cc, ov-cx-mat.cc (strip_infnan): Delete. + * ls-oct-ascii.cc, ls-oct-ascii.h (save_ascii_data): + strip_nan_and_inf is now int, not bool. + (strip_infnan): Delete. + (save_ascii_data_for_plotting): Call save_ascii_data with + strip_nan_and_inf = 2. + + * Makefile.in (INCLUDES): Remove matrix.h from the list. + + 2006-08-22 David Bateman + + * sparse-xpow.cc: Replace all uses of pow by std::pow. + (elem_pow): Simplify for two sparse matrices arguments. + + 2006-08-22 John W. Eaton + + * ls-oct-ascii.cc: Increase default value of save_precision to 16. + + * ls-mat-ascii.cc (save_mat5_ascii_data): Use scientific format. + + 2006-08-21 John W. Eaton + + * ls-mat5.cc (read_mat5_binary_data, read_mat5_integer_data, + write_mat5_array): Unconditionally enable code for 64-bit int types. + + * ov-fcn-handle.cc (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): + For compatibility, set class to function_handle. + + 2006-08-18 John W. Eaton + + * pr-output.cc (set_real_matrix_format): Also always include space + for sign if values are int, inf, or nan. + (set_complex_format, set_complex_matrix_format): Always include + space for sign in real format, but never in imaginary format. + + * gripes.cc (gripe_logical_conversion): New function. + * gripes.h: Provide decl. + * ov.h (octave_value::bool_value, octave_value::bool_matrix_value, + octave_value::bool_array_value): New arg, warn. + * ov-base.cc, ov-base.h (octave_base_value::bool_value, + octave_base_value::bool_matrix_value, + octave_base_value::bool_array_value): Likewise. + * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::bool_array_value, + OCTAVE_VALUE_INT_SCALAR_T::bool_array_value): Likewise. + * ov-range.h (octave_range::bool_array_value): Likewise. + * ov-re-mat.cc, ov-re-mat.h (octave_matrix::bool_array_value): + Likewise. + * ov-re-sparse.cc, ov-re-sparse.h + (octave_sparse_matrix::bool_array_value): Likewise. + * ov-scalar.h (octave_scalar::bool_value, + octave_scalar::bool_array_value): Likewise. + * OPERATORS/op-bm-b.cc (oct_assignop_conv_and_assign): + Ask for warning from bool_array_value. + * OPERATORS/op-bm-bm.cc (oct_assignop_conv_and_assign): Likewise. + * ov-bool.h (octave_bool::bool_value, + octave_bool::bool_matrix_value, octave_bool::bool_array_value): + Likewise. + * ov-bool-mat.h (octave_bool_matrix::bool_matrix_value, + octave_bool_matrix::bool_array_value): Likewise. + * ov-bool-sparse.cc, ov-bool-sparse.h + (octave_sparse_bool_matrix::bool_matrix_value, + octave_sparse_bool_matrix::bool_array_value): Likewise. + + 2006-08-18 Benjamin Lindner + + * ls-mat5.cc (read_mat5_tag): Declare type as int32_t, not int. + (read_mat5_binary_element): Likewise, for len and element_length. + + 2006-08-18 John W. Eaton + + * load-save.h (enum load_save_format): New element, LS_MAT_ASCII_LONG. + * load-save.cc (Fload, Fsave): Make -ascii Matlab compatible. + (do_save): Handle LS_MAT_ASCII. + * ls-mat-ascii.cc (save_mat_ascii_data): New function. + * ls-mat-ascii.h: Provide decl. + + 2006-08-17 John W. Eaton + + * ls-mat5.cc (save_mat5_element_length): Correctly compute element + length for character data. Handle N-d character data + (save_mat5_binary_element): Handle N-d character data. + + 2006-08-16 John W. Eaton + + * parse.y (gobble_leading_white_space): New arg, SKIP_CODE. + Change all uses. + + 2006-08-15 John W. Eaton + + * help.cc (help_from_file): Call get_help_from_file with new file + arg. Print file info here. + + * parse.y (get_help_from_file): Delete include_file_info arg. + Provide two versions, one that returns the file found in a + reference arg and one that does not. + + * variables.cc (do_isglobal): New function. + (Fisglobal): Use it. + (Fis_global): New function. + + 2006-08-14 John W. Eaton + + * variables.cc (symbol_record_name_compare): Fix casts. + + * ov-cell.cc (octave_cell::subsasgn): Call empty_conv for 0x0 + objects, not just empty objects. + + * oct-map.h (Octave_map::clear): Also clear key_list. + + * load-path.cc (load_path::find_dir_info, load_path::do_add, + load_path::do_remove): Perform tilde expansion on directory here. + + 2006-07-29 John W. Eaton + + * matrix.h: Delete to avoid conflict with liboctave/Matrix.h on + case-insensitive filesystems. + + * version.h (OCTAVE_VERSION): Now 2.9.7+. + + 2006-07-28 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.7. + (OCTAVE_API_VERSION): Now api-v20. + (OCTAVE_RELEASE_DATE): Now 2006-07-28. + + * load-path.cc (path::do_add): Warn for trailing "//". + + * strfns.cc: Comment out some tests for snapshot. + + 2006-07-27 John W. Eaton + + * defaults.cc (Vlocal_api_arch_lib_dir): New variable. + (set_default_local_api_arch_lib_dir): New function. + (install_defaults): Call it. + (set_exec_path): Put Vlocal_api_arch_lib_dir in the list. + * toplev.cc (localapiarchlibdir): Include it in the list. + * defaults.h.in (OCTAVE_LOCALAPIARCHLIBDIR): Substitute here. + + 2006-07-26 John W. Eaton + + * mex.cc (mxArray::as_octave_value (mxArray *)): New static function. + (call_mex, mexPutVariable, mexCallMATLAB, + mxArray_cell::as_octave_value, mxArray_struct::as_octave_value): + Use static version of as_octave_value here. + (mxArray_sparse::mxArray_sparse (const mxArray_sparse&)): + Check pr, ir, and jc before calling memcpy. + (mxArray_number::mxArray_number): Check pr before calling memcpy + + * mxarray.h (mxArray::as_octave_value (mxArray *)): Provide decl. + (mxArray::as_octave_value): Now protected. + + * file-io.cc (Ffeof, Fferror): Use DEFUNX instead of DEFUN. + + * mex.cc (xfree): New function. + (mex::free): Use it. + (mxArray_struct::~mxArray_struct, mxArray_cell::~mxArray_cell): + Delete elements with delete, not mxDestroyArray. + (mex::cleanup): Don't call mex::free or mex::free_value. + (mex::free_value): Add debug warning. + (mex::mark, mex::unmark): Fix debug warning. + (call_mex): Use unwind_protect frame. + (mexUnlock): Use iterator to remove item from mex_lock_count. + + * octave.cc (maximum_braindamage): Use disable_warning instead of + bind_internal_variable to disable function-name-clash warning. + * error.cc (disable_warning): No longer static. + * error.h: Provide decl. + + 2006-07-25 David Bateman + + * mex.cc (mxArray_octave_value::get_class_id): Handle sparse. + (class mxArray_sparse): Derive from mxArray_matlab, not + mxArray_number. + (mxArray_sparse::as_octave_value): Implement function. + * ov-bool-sparse.cc (octave_sparse_bool_matrix::as_mxArray): + Implement function. + * ov-cx-sparse.cc (octave_sparse_complex_matrix::as_mxArray): + Implement function. + * ov-re-sparse.cc (octave_sparse_matrix::as_mxArray): + Implement function. + + 2006-07-25 John W. Eaton + + * mex.cc (mxArray_struct::as_octave_value, call_mex, + mexCallMATLAB, mxArray_cell::as_octave_value): + Convert NULL mxArray* pointers to empty matrix values. + (mxArray_octave_value:get_ir): Fix typo. + + 2006-07-22 John W. Eaton + + * mxarray.h: New file. + * mex.h, mexproto.h, mex.cc: New implementation of mxArray and MEX + interface. + + * ov.h (octave_value::mex_get_ir, octave_value::mex_get_jc): + New functions. + * ov-base.h (octave_base_value::mex_get_ir, + octave_base_value::mex_get_jc): New virtual functions. + * ov-base-sparse.h (octave_base_sparse::mex_get_ir, + octave_base_sparse::mex_get_jc): New functions. + + * ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::as_mxArray, + OCTAVE_VALUE_INT_MATRIX_T::as_mxArray): New functions. + * ov-int8.h, ov-int16.h, ov-int32.h, ov-int64.h, ov-uint8.h, + ov-uint16.h, ov-uint32.h, ov-uint64.h: Define OCTAVE_INT_MX_CLASS + before including ov-intx.h. Undef it after. + * ov-range.cc (octave_range::as_mxArray): New function. + * ov-range.h: Provide decl. + * ov-scalar.cc (octave_scalar::as_mxArray): New function. + * ov-scalar.h: Provide decl. + * ov-complex.cc (octave_complex::as_mxArray): New function. + * ov-complex.h: Provide decl. + * ov-re-mat.cc (octave_matrix::as_mxArray): New function. + * ov-re-mat.h: Provide decl. + * ov-cx-mat.cc (octave_complex_matrix::as_mxArray): New function. + * ov-cx-mat.h: Provide decl. + * ov-ch-mat.cc (octave_char_matrix::as_mxArray): New function. + * ov-ch-mat.h: Provide decl. + * ov-bool-mat.cc (octave_bool_matrix::as_mxArray): New function. + * ov-bool-mat.h: Provide decl. + * ov-bool.cc (octave_bool::as_mxArray): New function. + * ov-bool.h: Provide decl. + + * ov-struct.h (octave_struct::numel): New function. + + * ls-mat5.cc (arrayclasstype): Use "MAT_FILE_" instead of "mx" as + prefix for element names. + + * ov.h (octave_value::as_mxArray): New function. + * ov-base.cc (octave_base_value::as_mxArray): New function. + * ov-base.h: Provide decl. + + * ov.h (octave_value::mex_get_data): New function. + * ov-base.h (octave_base_value::mex_get_data): New function. + * ov-base-scalar.h (octave_base_scalar::mex_get_data): New function. + * ov-base-matrix.h (octave_base_matrix::mex_get_data): New function. + * ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::mex_get_data): New function. + + * ov.h (octave_value::nfields): New function. + * ov-base.cc (octave_base_value::nfields): New virtual function. + * ov-base.h: Provide decl. + * ov-struct.h (octave_struct::nfields): New function. + + 2006-07-19 John W. Eaton + + * OPERATORS/op-bm-bm.cc (oct_assignop_conv_and_assign): New function. + (install_bm_bm_ops): Install it for various types. + * OPERATORS/op-bm-b.cc (oct_assignop_conv_and_assign): New function. + (install_bm_b_ops): Install it for various types. + * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::bool_array_value, + OCTAVE_VALUE_INT_SCALAR_T::bool_array_value): New functions. + * ov-range.h (octave_range::bool_array_value): New function. + * ov-re-sparse.cc (octave_sparse_matrix::bool_array_value): + New function. + * ov-re-sparse.h: Provide decl. + * ov-re-mat.cc (octave_matrix::bool_array_value): New function. + * ov-re-mat.h: Provide decl. + + * ov-base.cc (octave_base_value::numeric_assign): + Avoid memory leak when converting LHS. + + 2006-07-18 John W. Eaton + + * ov.h (octave_value::is_int8_type, octave_value::is_int16_type, + octave_value::is_int32_type, octave_value::is_int64_type, + octave_value::is_uint8_type, octave_value::is_uint16_type, + octave_value::is_uint32_type, octave_value::is_uint64_type): + New functions. + * ov-base.h (octave_base_value::is_int8_type, + octave_base_value::is_int16_type, + octave_base_value::is_int32_type, + octave_base_value::is_int64_type, + octave_base_value::is_uint8_type, + octave_base_value::is_uint16_type, + octave_base_value::is_uint32_type, + octave_base_value::is_uint64_type): New functions. + * ov-int8.h, ov-int16.h, ov-int32.h, ov-int16.h, ov-uint8.h, + ov-uint16.h, ov-uint32.h, ov-uint16.h: Define OCTAVE_BASE_INT_T. + * ov-intx.h: Use OCTAVE_BASE_INT_T to define type-specific predicate. + + * ov.h (octave_value::is_double_type, octave_value::is_single_type): + New functions. + * ov-base.h (octave_base_value::is_double_type, + octave_base_value::is_single_type): New functions. + * ov-re-mat.h (octave_matrix::is_double_type): New function. + * ov-cx-mat.h (octave_matrix::is_double_type): New function. + * ov-scalar.h (octave_scalar::is_double_type): New function. + * ov-complex.h (octave_complex::is_double_type): New function. + * ov-range.h (octave_range::is_double_type): New function. + * ov-re-sparse.h (octave_sparse_matrix::is_double_type): New function. + * ov-cx-sparse.h (octave_sparse_complex_matrix::is_double_type): + New function. + + 2006-07-15 John W. Eaton + + * ov-typeinfo.cc: Also instantiate arrays of assignany_ops. + + * oct-errno.cc.in (octave_errno::octave_errno): VALUE field in + errno_struct no longer const. + + * DLD-FUNCTIONS/dispatch.cc (octave_dispatch::do_index_op): + Declare resize_ok arg as bool, not int. + Provide default value for resize_ok. + + 2006-07-14 John W. Eaton + + * oct-stream.cc (do_write): Include explicit instantiations. + + * ov-str-mat.h (octave_char_matrix_sq_str::resize): + Include fill arg to match base class. + * ov-struct.h (octave_struct::resize): Likewise. + + * ov-base-mat.cc, ov-base-mat.h, ov-base-sparse.cc, + ov-base-sparse.h, ov-base.cc, ov-base.h, ov-bool.cc, + ov-bool.h, ov-complex.cc, ov-complex.h, ov-intx.h, ov-list.cc, + ov-list.h, ov-range.cc, ov-range.h, ov-scalar.cc, ov-scalar.h, + ov-str-mat.cc, ov-str-mat.h, ov.h (do_index_op): + Declare resize_ok arg as bool, not int. + Provide default value for resize_ok. + + * c-file-ptr-stream.h (c_file_ptr_stream::c_file_ptr_stream): + Qualify init. + + 2006-07-13 John W. Eaton + + * oct-map.h (Octave_map::del): Add missing std:: qualifier to use + of find template. + + 2006-07-07 John W. Eaton + + * ov.h (octave_value::is_bool_scalar): New function. + * ov-base.h (octave_base_value::is_bool_scalar): New function. + * ov-bool.h (octave_bool::is_bool_scalar): New function. + + * oct-map.cc (Octave_map::keys): Use assert. + (Octave_map::assign): Avoid inserting new key in map unless + assignment to cell succeeds. + + * oct-map.h (Octave_map::del): Only touch key_list if map contains key. + Assert that key_list contains key. + + * oct-map.h (Octave_map::maybe_add_to_key_list): For efficiency, + check map, not key_list. From Paul Kienzle . + + 2006-07-06 John W. Eaton + + * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Declare mrowsc volatile. + + * ov-struct.cc (octave_struct::print_raw): Print keys in key_list + order. + + * oct-map.h (Octave_map::key_list): New data member. + (Octave_map::maybe_add_to_key_list): New function. + (Octave_map::key_list_iterator, Octave_map::const_key_list_iterator): + New typedefs. + (Octave_map::del): Also delete key from key_list. + * oct-map.cc (Octave_map::keys): Compute return value from + key_list instead of map. + (Octave_map::assign, Octave_map::contents): Call maybe_add_to_key_list. + * oct-map.h, oct-map.cc (Octave_map::Octave_map): + Insert keys in key_list. + + * oct-map.h (Octave_map::Octave_map (const dim_vector&, + const string_vector&)): New arg, key_list_arg. + * oct-map.cc: Move definition here. + + 2006-07-05 John W. Eaton + + * mex.cc (mexGetVariable): Rename from mexGetArray, swap arguments. + (mexGetVariablePtr): Rename from mexGetArrayPtr, swap arguments. + (mexErrMsgIdAndTxt, mexWarnMsgIdAndTxt): New functions. + * mexproto.h: Provide decls. + Include decls for as yet unsupported functions. + * mex.h: Add enum for class ids. + (mexGetArray): Define using mexGetVariable. + (mexGetArrayPtr): Define using mexGetVariablePtr. + + 2006-07-02 John W. Eaton + + * ov-str-mat.cc (CHAR_MATRIX_CONV): Omit "warn-" from label. + * parse.y (maybe_warn_variable_switch_label): Likewise. + + 2006-07-01 John W. Eaton + + * parse.y (finish_cell): Use finish_matrix to do constant folding. + + 2006-06-30 John W. Eaton + + * ov-base.cc (octave_base_value::numeric_assign): + Avoid memory leak when converting LHS. + + * oct-hist.cc (do_history, initialize_history, Fhistory_file): + Don't perform tilde expansion on history file name. + + * syscalls.cc (Flstat, Fstat): Don't perform tilde expansion on arg. + * input.cc (Fread_readline_init_file): Likewise. + * dirfns.cc (Fcd, Freaddir): Likewise. + + * load-path.cc (genpath): Don't perform tilde expansion on name. + (load_path::do_add): Don't warn about moving "." to front of list. + + 2006-06-28 John W. Eaton + + * load-path.cc (Faddpath): Don't treat "." specially here. + Don't check directory status here. + (Fpath): Handle all args. Don't treat "." specially here. + (Faddpath, Frmpath): Delete unused variable xpath. + (load_path::do_add): New function. + (load_path::do_prepend, load_path::do_append): Use it. + (load_path::do_remove): Really prevent removal of ".". + (load_path::do_clear): Clearing doesn't remove ".". + (load_path::append, load_path::prepend, load_path::do_append, + load_path::do_prepend): New arg, warn. + + * load-path.h: Fix decls. + + * DLD-FUNCTIONS/regexp.cc (octregexp_list): + Avoid bug in older versions of g++. + + 2006-06-27 John W. Eaton + + * Makefile.in (clean): Also remove $(DLD_OBJ). + + * sighandlers.cc (install_signal_handlers): Don't handle SIGPROF. + From Geoffrey Knauth . + + 2006-06-25 John W. Eaton + + * mk-pkg-add: Avoid apparently non-portable sed patterns. + + 2006-06-21 John W. Eaton + + * variables.cc (do_who): Handle mex. + + * symtab.cc (SYMBOL_DEF::type_as_string, SYMBOL_DEF::which, + symbol_table::clear_functions, table::clear_function, + symbol_table::clear_function_pattern): + Handle mex. + * symtab.h (symbol_record::is_mex_function, + symbol_record::symbol_def::is_mex_function): New functions. + (symbol_record::TYPE): New value, MEX_FUNCTION. + (symbol_record::is_function, symbol_table::user_function_name_list, + SYMTAB_ALL_TYPES): Handle MEX_FUNCTION. + + * ov-fcn.h (octave_function::octave_function): + Provide default for doc string arg. + + * defun.cc (install_mex_function): New function. + * defun-int.h: Provide decl. + + * ov-builtin.cc (any_arg_is_magic_colon): Delete. + (octave_builtin::do_multi_index_op): Call has_magic_colon method + for args instead of any_arg_is_magic_colon. + + * ov-base.h (octave_base_value::is_mex_function): New function. + * ov.h (octave_value::is_mex_function): New function. + + * ov-mex-fcn.h, ov-mex-fcn.cc: New files. + + * parse.y (load_fcn_from_file): Also handle .mex files. + + * dynamic-ld.cc (octave_dynamic_loader::load_oct): Rename from load. + (octave_dynamic_loader::do_load_oct): Rename from do_load. + * dynamic-ld.h: Fix decls. + + * utils.cc (mex_file_in_path): New function. + * utils.h: Provide decl. + + * variables.cc (symbol_out_of_date): Also handle mex files. + + * load-path.cc (load_path::dir_info::get_file_list, + load_path::dir_info::get_private_function_map, + load_path::do_find_fcn, load_path::add_to_fcn_map, + load_path::do_display): Also handle mex files. + * load-path.h (load_path::find_mex_file): New static function. + (load_path::MEX_FILE): New static data member. + (load_path::do_find_fcn): By default, also look for mex files. + + * matrix.h, mex.h, mex.cc: New files from Octave Forge + * mexproto.h: New file, extracted from mex.h. + * Makefile.in: Add them to the appropriate lists. + + 2006-06-20 John W. Eaton + + * ov-re-mat.cc (octave_matrix::convert_to_str_internal): + Don't lose empty dimensions on conversion to char. + + * strfns.cc (Fstrcmp): Handle comparison of cellstr and empty string. + + 2006-06-16 John W. Eaton + + * parse.y (%union): New type, anon_fcn_handle_type. + (anon_fcn_handle): Now anon_fcn_handle_type, not tree_constant_type. + (make_anon_fcn_handle): Return tree_anon_fcn_handle, not tree_constant. + + * comment-list.cc (octave_comment_list::dup): New function. + * comment-list.h: Provide decl. + + * pt-cmd.cc (tree_no_op_command::dup): New function. + * pt-cmd.h: Provide decl. + (tree_command::dup): New pure virtual function. + + * pt-loop.cc (tree_while_command::dup, tree_do_until_command::dup, + tree_simple_for_command::dup, tree_complex_for_command::dup): + New functions. + * pt-loop.h: Provide decls. + + * pt-jump.cc (tree_break_command::dup, tree_continue_command::dup, + tree_return_command::dup): New functions. + * pt-jump.h: Provide decls. + + * pt-except.cc (tree_try_catch_command::dup, + tree_unwind_protect_command::dup): New functions. + * pt-except.h: Provide decls. + + * pt-select.cc (tree_if_clause::dup, tree_if_command_list::dup, + tree_if_command::dup, tree_switch_case::dup, + tree_switch_case_list::dup, tree_switch_command::dup): + New functions. + * pt-select.h: Provide decls. + + * pt-decl.cc (tree_decl_elt::dup, tree_decl_init_list::dup, + tree_global_command::dup, tree_static_command::dup): New functions. + * pt-decl.h: Provide decls. + + * pt-exp.h (tree_expression::copy_base): New function. + (tree_expression::dup): New pure virtual function. + + * pt-fcn-handle.cc, pt-fcn-handle.h (tree_anon_fcn_handle): New class. + + * pt-fcn-handle.cc (tree_function_handle::dup): New function. + * pt-fcn-handle.h: Provide decl. + + * pt-colon.cc (tree_colon_expression::dup): New function. + * pt-colon.h: Provide decl. + (tree_colon_expression::tree_colon_expression (tree_expression *, + tree_expression *, tree_expression *, int, int)): New constructor. + + * pt-const.cc (tree_constant::dup): New function. + (tree_constant::tree_constant (const octave_value&, const + std::string&, int, int)): New constructor. + * pt-const.h: Provide decls. + + * pt-idx.cc (tree_index_expression::dup): New functoin. + (tree_index_expression::tree_index_expression (int, int)): + New constructor. + * pt-idx.h: Provide decls. + + * pt-arg-list.cc (tree_argument_list::dup): New function. + * pt-arg-list.h: Provide decl. + + * pt-id.cc (tree_identifier::dup): New function. + * pt-id.h: Provide decl. + + * pt-cell.cc (tree_cell::dup): New function. + * pt-cell.h: Provide decl. + + * pt-mat.cc (tree_matrix::dup): New function. + * pt-mat.h: Provide decl. + + * pt-assign.cc (tree_simple_assignment::dup, + tree_multi_assignment::dup): New functions. + * pt-assign.h: Provide decls. + + * pt-binop.cc (tree_binary_expression::dup, + tree_boolean_expression::dup): New functions. + * pt-binop.h: Provide decls. + + * pt-unop.cc (tree_prefix_expression::dup, + tree_postfix_expression::dup): New functions. + * pt-unop.h: Provide decls. + + * pt-stmt.cc (tree_statement::dup, tree_statement_list::dup): + New functions. + * pt-stmt.h: Provide decls. + + * pt-misc.cc (tree_parameter_list::dup, + tree_return_list::dup): New functions. + * pt-misc.h: Provide decls. + + * symtab.cc (symbol_table::dup, symbol_table::inherit, + symbol_record:is_automatic_variable): New functions. + * symtab.h: Provide decls. + (symbol_record::automatic_variable): New data member. + (symbol_record::symbol_record): Initialize it. + (symbol_record::mark_as_automatic_variable): New function. + + * pt-walk.h (tree_walker::visit_anon_fcn_handle): + New pure virtual function. + * pt-pr-code.cc (tree_print_code::visit_anon_fcn_handle): New function. + * pt-pr-code.h: Provide decl. + * pt-bp.cc (tree_breakpoint::visit_anon_fcn_handle): New function. + * pt-bp.h: Provide decl. + * pt-check.cc (tree_checker::visit_anon_fcn_handle): New function. + * pt-check.h: Provide decl. + + 2006-06-13 John W. Eaton + + * pt-stmt.cc (tree_statement_list::eval): Revise previous change + to preserve return-last-value-computed semantics. + + * DLD-FUNCTIONS/fsolve.cc (hybrd_info_to_fsolve_info): + Warn about invalid values of INFO from MINPACK instead of calling + panic_impossible. + + * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): + Don't assign values returned by evaluation of cmd_list to + temporary variable. Delete unused variable last_computed_value. + + * pt-stmt.cc (tree_statement_list::eval): + Clear retval before each statement is evaluated. + + 2006-06-12 John W. Eaton + + * unwind-prot.h (unwind_protect_fptr): New macro. + * load-path.cc (load_path::do_set): Use it instead of + unwind_protect_ptr when protecting add_hook function pointer. + * dynamic-ld.cc (octave_dynamic_loader::do_load): Use FCN_PTR_CAST + here instead of reinterpret_cast. + + 2006-06-09 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.6+. + + 2006-06-09 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.6. + (OCTAVE_API_VERSION): Now api-v19. + (OCTAVE_RELEASE_DATE): Now 2006-06-09. + + * ov-cell.cc (cell::save_hdf5): Use leading zeros to keep elements + correctly sorted in the HDF file. + From Stephen Fegan . + + 2006-06-08 John W. Eaton + + * ov-usr-fcn.cc (function::do_multi_index_op): Append contents of + varargout to ret_list before calling convert_to_const_vector. + + * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): + No need to handle all_va_args here. + + * ov-va-args.h, ov-va-args.cc: Delete files. + * Makefile.in (OV_INCLUDES, OV_SRC): Delete from the lists. + + * ov.cc (install_types): Don't register octave_all_va_args type. + * ov.h, ov.cc (octave_value::octave_value (octave_value::all_va_args)): + Delete. + * ov.h (octave_value::is_all_va_args): Delete. + (octave_value::enum all_va_args): Delete. + + * pt-pr-code.cc (tree_print_code::visit_octave_user_function_header): + Print "varargout" and "varargin" instead of "...". + + * pt-misc.h, pt-misc.cc (tree_parameter_list::convert_to_const_vector): + Arg is now const Cell& instead of tree_va_return_list*. + + * ov-usr-fcn.h, ov-usr-fcn.cc (octave_user_function::vr_list, + octave_user_function::curr_va_arg_number): + Delete variables and all uses. + (octave_function::octave_va_start, octave_function::octave_va_arg, + octave_function::octave_vr_val, octave_function::has_varargout): + Delete functions and all uses. + + * ov-fcn.h (octave_function::octave_va_start, + octave_function::octave_va_arg, octave_function::octave_vr_val, + octave_function::has_varargout): Delete. + + * ov-usr-fcn.cc (Fva_arg, Fva_start, Fvr_val): Delete. + + * lex.l ({EL}): Don't handle "..." as varargin or varargout. + * octave.gperf (all_va_args, ALL_VA_ARGS, all_va_args_kw): Delete. + * parse.y (ALL_VA_ARGS): Delete token and all uses. + + * defaults.h.in (OCTAVE_DATAROOTDIR): Substitute here. + * toplev.cc (octave_config_info): Add datarootdir to the struct. + + 2006-06-07 John W. Eaton + + * ov-cell.cc (octave_cell::subsasgn): Handle c-s list object on + RHS if last index is '{'. + * pt-assign.cc (tree_multi_assignment::rvalue): Compute all LHS + lvalues before evaluating RHS. If LHS lvalue expects more than + one output, pass octave_cs_list object to assign method. + * pt-idx.cc (tree_index_expression::lvalue): Compute expected + number of values if '{' index appears last. + * pt-arg-list.cc (tree_argument_list::lvalue_list): New function. + * pt-arg-list.h (tree_argument_list::lvalue_list): Provide decl. + * oct-lvalue.h (octave_lvalue::nel): New data member. + (octave_lvalue::numel): New functions + * oct-obj.cc (octave_value_list::has_magic_colon): New function. + * oct-obj.h (octave_value_list::has_magic_colon): Provide decl. + * pt-arg-list.cc (tree_argument_list::nargout_count): Delete function. + * pt-arg-list.h (tree_argument_list::nargout_count): Delete decl. + + 2006-06-06 John W. Eaton + + * sighandlers.cc (generic_sig_handler, sigint_handler): + Use strsignal instead of accessing sys_siglist directly. + * siglist.h: Use HAVE_DECL_SYS_SIGLIST instead of SYS_SIGLIST_DECLARED. + * siglist.c: Update sys_siglist. + (init_signals, strsignal): New functions. + * octave.cc (octave_main): Call init_signals here. + + * toplev.cc (Foctave_config_info): Delete LIBPLPLOT from struct. + + 2006-06-05 John W. Eaton + + * pt-assign.cc (Vprint_rhs_assign_val): Delete variable. + (Fprint_rhs_assign_val): Delete function. + tree_simple_assignment::rvalue, tree_multi_assignment::rvalue): + No special case for Vprint_rhs_assign_val. + + 2006-06-02 John W. Eaton + + * pt-arg-list.h (tree_argument_list::mark_as_simple_assign_lhs, + tree_argument_list::is_simple_assign_lhs): New functions. + (tree_argument_list::simple_assign_lhs): New data member. + * parse.y (assign_lhs): Classify LHS here. + (make_assign_op): Create simple or multi assign op based on + classification of LHS, not its length. + + 2006-06-01 John W. Eaton + + * Makefile.in (DLD_XSRC): Add __pchip_deriv__.cc to the list. + + 2006-06-01 David Bateman + + * DLD-FUNCTIONS/__pchip_deriv__.cc: New file. + + 2006-05-31 John W. Eaton + + * load-path.h (load_path::set_command_line_path): Make it + additive. + + 2006-05-26 John W. Eaton + + * load-path.cc (genpath, maybe_add_path_elts, Fgenpath, Frehash, + Fpath, Fpathdef): Move here from defaults.cc. + * load-path.cc, load-path.h: New files. + * Makefile.in (INCLUDES, DIST_SRC): Add them to the lists. + * help.cc (make_name_list, simple_help): Use load_path instead of + octave_fcn_file_name_cache. + (Flookfor): Use load_path instead of Vload_path_dir_path. + * octave.cc (octave_main): Likewise. + * parse.y (load_fcn_from_file): Likewise. + * utils.cc (Ffile_in_loadpath, file_in_path, fcn_file_in_path, + oct_file_in_path): Likewise. + * variables.cc (symbol_exist, symbol_out_of_date): Likewise. + * DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom): Likewise. + * utils.cc (Ffind_first_of_in_loadpath): Delete. + * input.cc (octave_gets): Call load_path::update here. + * dirfns.cc (octave_change_to_directory): Likewise. + * defaults.cc (VLOADPATH, VDEFAULT_LOADPATH, Vload_path_dir_path, + maybe_add_or_del_packages, update_load_path_dir_path, + execute_default_pkg_add_files, set_load_path): Delete. + * defaults.h.in (Vload_path_dir_path, + execute_default_pkg_add_files, maybe_add_default_load_path, + set_load_path): Delete decls. + + * fn-cache.h, fn-cache.cc: Delete. + * Makefile.in (INCLUDES, DIST_SRC): Remove them from the lists. + + * input.cc (octave_gets): Only update Vlast_prompt_time if we are + interactive and actually printing a prompt. Don't print prompt if + reading startup files or command line files. Initialize + Vlast_prompt_time to 0. + + * pr-output.cc (set_format): Always include space for sign. + + 2006-05-23 John W. Eaton + + * load-save.cc (Fsave): Use tellp instead of pubseekoff to + determine whether we are at beginning of file. + + * ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::increment, + OCTAVE_VALUE_INT_SCALAR_T::decrement, + OCTAVE_VALUE_INT_MATRIX_T::increment, + OCTAVE_VALUE_INT_MATRIX_T::decrement): New functions. + * OPERATORS/op-int.h (OCTAVE_INSTALL_M_INT_UNOPS, + OCTAVE_INSTALL_S_INT_UNOPS, OCTAVE_M_INT_UNOPS, + OCTAVE_S_INT_UNOPS): Uncomment increment and decrement ops. + + 2006-05-19 John W. Eaton + + * symtab.cc (SYMBOL_DEF::document): If definition is a function, + also pass doc string to function object. + * ov-fcn.h (octave_function::document): New function. + * defun.cc (print_usage (octave_function *)): New function. + (print_usage (void)): New function. + (print_usage (const std::string&)): Provide for backward + compatibility. Ignore arg. + (Fprint_usage): Don't accept arg. + * defun-int.h (print_usage (void)): Provide decl. + (print_usage (const std::string&)): Tag with GCC_ATTR_DEPRECATED. + + 2006-05-04 David Bateman + + * DLD-FUNCTIONS/conv2.cc: New file from Octave Forge. + * Makefile.in (DLD_XSRC): Add it to the list + + 2006-05-17 Bill Denney + + * help.cc (keywords): Improve and Texinfoize. + + 2006-05-17 John W. Eaton + + * symtab.cc (Vwhos_line_format): Show class instead of type. + (symbol_table::parse_whos_line_format): + Use 't' for "Type" and 'c' for "Class". + (symbol_record::print_symbol_info_line): Likewise. + (maybe_list_cmp_fcn): Fix casts. + + 2006-05-11 John W. Eaton + + * octave.cc (IMAGE_PATH_OPTION): New macro. + (usage_string, verbose_usage): Include --image-path option. + (long_opts): Include --image-path. + (octave_main): Handle IMAGE_PATH_OPTION. + + * toplev.cc (Foctave_config_info): Delete fcnfilepath, imagepath, + localfcnfilepath, and localoctfilepath from the struct. + * defaults.h.in (OCTAVE_FCNFILEPATH, OCTAVE_IMAGEPATH, + OCTAVE_LOCALFCNFILEPATH, OCTAVE_LOCALOCTFILEPATH): Delete variables. + + * octave.cc (octave_main): Call set_exec_path and set_load_path + instead of bind_internal_variable. + + * defaults.cc (Fpathdef): Rename from FDEFAULT_LOADPATH. + Don't allow default path to be set. + (Fpath): Rename from FLOADPATH. Make Matlab-compatible. + (update_load_path_dir_path): No need to pass VDEFAULT_LOADPATH to + dir_path constructor now. + (update_exec_path, FDEFAULT_EXEC_PATH, + set_default_default_exec_path, set_default_exec_path, + maybe_add_default_load_path): Delete functions. + (VDEFAULT_EXEC_PATH): Delete variable. + (FEXEC_PATH): Leading and trailing colons no longer special. + (set_exec_path, set_load_path, set_image_path, + maybe_add_path_elts): New functions. + (install_defaults): Call set_exec_path and set_load_path instead + of set_default_exec_path and set_default_path. Don't call + set_default_default_exec_path. Do call set_image_path. + * defaults.cc (genpath, Fgenpath): New functions. + (Vlocal_ver_oct_file_dir, Vlocal_api_oct_file_dir, + Vlocal_oct_file_dir, Vlocal_ver_fcn_file_dir, + Vlocal_api_fcn_file_dir, Vlocal_fcn_file_dir, Vimage_dir): + New variables. + (set_default_local_ver_oct_file_dir, + set_default_local_api_oct_file_dir, + set_default_local_oct_file_dir, + set_default_local_ver_fcn_file_dir, + set_default_local_api_fcn_file_dir, + set_default_local_fcn_file_dir, set_default_image_dir): + New functions. + (install_defaults): Call them. + * defaults.h.in (set_exec_path, set_load_path, set_image_path, + Vlocal_ver_oct_file_dir, Vlocal_api_oct_file_dir, + Vlocal_oct_file_dir, Vlocal_ver_fcn_file_dir, + Vlocal_api_fcn_file_dir, Vlocal_fcn_file_dir, + Vlocal_fcn_file_dir, Vimage_dir): Provide decls. + + 2006-05-10 John W. Eaton + + * ov-cell.cc (Fcellstr): Trim trailing blanks. + * Cell.h (Cell::Cell (const string_vector&)): New arg, TRIM. + + * oct-hist.cc (initialize_history, Fhistory_size): + Also call command_history::set_size here. + + * defun.cc (Fprint_usage): New function. + * help.cc (display_usage_text): New function. + + 2006-05-09 Keith Goodman + + * DLD-FUNCTIONS/rand.cc: Doc string fix. + + 2006-05-09 Jorge Barros de Abreu + + * data.cc (FInf, FNaN): Fix typo in doc string. + + 2006-05-08 John W. Eaton + + * Makefile.in (DEFUN_PATTERN): Match DEFUNX_DLD. + * mkbuiltins: Handle XDEFUNX_DLD_INTERNAL. + * mkgendoc: Likewise. + * mk-pkg-add: Likewise. Do all the matching with sed. + * defun-int.h (DEFINE_FUNX_INSTALLER_FUN, DEFINE_FUNX_INSTALLER_FUN2, + DEFINE_FUNX_INSTALLER_FUN3): New macros. + (DEFINE_FUN_INSTALLER_FUN3): Define using DEFINE_FUNX_INSTALLER_FUN3. + (DEFUNX_DLD_INTERNAL): New macro. + * defun-dld.h (DEFUNX_DLD): New macro. + + * DLD-FUNCTIONS/__gnuplot_raw__.l: Mark __gnuplot_set__ as a + command, not a rawcommand. + + * load-save.cc: No need to handle built-in variables. + * help.cc (simple_help): No need to handle built-in variables. + + * variables.cc (is_builtin_variable, builtin_string_variable, + builtin_real_scalar_variable, builtin_any_variable): + Delete functions. + (Fexist, Fdocument, do_who, Fwho, link_to_builtin_or_function): + No need to handle built-in variables. + * variables.h (is_builtin_variable, builtin_string_variable, + builtin_real_scalar_variable, builtin_any_variable): Delete decls. + + * symtab.h (symbol_record::symbol_def::is_builtin_variable, + symbol_record::is_builtin_variable): Delete. + (symbol_record::TYPE): Remove BUILTIN_VARIABLE from enum. + (symbol_record::symbol_def::is_variable, SYMTAB_ALL_TYPES, + SYMTAB_VARIABLES): No need to handle built-in variables now. + (symbol_record::define_builtin_variable, + symbol_record::link_to_builtin_variable): Delete decls. + * symtab.cc (record::define, SYMBOL_DEF::type, + SYMBOL_DEF::type_as_string): No need to handle built-in variables. + (symbol_record::define_builtin_variable): Delete. + (symbol_record::variable_reference): No need to attemp to link to + built-in variable. + + * utils.cc (check_preference, warn_old_style_preference): Delete. + * utils.h (check_preference): Delete decl. + + * defun-int.h: Delete all DEFVAR macros. + + * Makefile.in, mkbuiltins: No need for VAR_FILES. + + * parse.y (current_script_file_name): Delete all uses. + (clear_current_script_file_name): Delete function. + + * variables.cc (symbols_of_variables): Delete DEFVAR and function. + (bind_ans): Lookup ans in curr_sym_tab, not fbi_sym_tab. + SR is no longer static, so we insert value in local scope. + + * defun.cc (bind_builtin_variable): Delete function. + * defun-int.h: Delete decl. + + * defaults.cc (fftw_wisdom_program): Rename from fftw_wisdom_prog. + Change all uses. + (VDEFAULT_LOADPATH): Rename from Vdefault_load_path. Change all uses. + (VLOADPATH): Rename from Vload_path. Change all uses. + (VDEFAULT_EXECPATH): Rename from Vdefault_exec_path. Change all uses. + (VEXECPATH): Rename from Vexec_path. Change all uses. + (VEDITOR): Rename from Veditor. Change all uses. + (Ffftw_wisdom_program, FDEFAULT_LOADPATH, FLOADPATH, + FDEFAULT_EXEC_PATH, FEXEC_PATH, FEDITOR, FIMAGEPATH): New functions. + (fftw_wisdom_program, default_load_path, loadpath, + default_exec_path, exec_path, editor, image_path): Delete functions. + (symbols_of_defaults): Delete DEFVARs and function. + + * pr-output.cc (set_output_prec_and_fw): Set Voutput_precision and + Voutput_max_field_width directly instead of calling + bind_builtin_variable. + + * octave.cc (octave_main, maximum_braindamage): + Call bind_internal_variable instead of bind_builtin_variable. + + * pager.cc (Fmore): Set Vpage_screen_output directly instead of + calling bind_builtin_variable. + + * error.cc (Fwarning): Set Vdebug_on_warning directly instead of + calling bind_builtin_variable. + + * error.cc (initialize_warning_options): Now static. + (disable_warning, initialize_default_warning_state): New functions. + + * error.h (initialize_warning_options): Delete decl. + (initialize_default_warning_state): Provide decl. + * octave.cc (octave_main): Call initialize_default_warning_state + instead initialize_warning_options. + + * lex.l (warn_matlab_incompatible, warn_separator_insert, + warn_single_quote_string): Delete functions. + (symbols_of_lex): Delete DEFVARS. + (Vwarn_matlab_incompatible, Vwarn_separator_insert, + Vwarn_single_quote_string): Delete variables. + (maybe_warn_separator_insert, gripe_single_quote_string, + gripe_matlab_incompatible): Call warning_with_id instead of warning. + + * variables.h (SET_NONEMPTY_INTERNAL_STRING_VARIABLE, + SET_INTERNAL_VARIABLE_WITH_LIMITS): New macros. + + * ls-oct-ascii.cc (Fsave_precision): New function. + (save_precision): Delete function. + (symbols_of_ls_oct_ascii): Delete DEFVAR and function. + + * oct-hist.cc (initialize_history): New function. + * oct-hist.h: Provide decl. + * octave.cc (octave_main): Call initialize_history instead of + command_history::read. + + * oct-hist.cc (Fhistory_size, Fhistory_file, + Fhistory_timestamp_format_string, Fsaving_history): New functions. + (history_size, history_file, history_timestamp_format_string, + saving_history): Delete functions. + (symbols_of_oct_hist): Delete DEFVARs and function. + + * pt-mat.cc (Fstring_fill_char): New function. + (string_fill_char): Delete function. + (symbols_of_pt_mat): Delete DEFVAR and function. + + * variables.cc (Fignore_function_time_stamp, ans): New functions. + (ignore_function_time_stamp): Delete function. + (symbols_of_variables): Delete DEFVARs and function. + + * oct-procbuf.cc: (Vkluge_procbuf_delay): Delete variable. + (octave_procbuf::open): Never delay after fork. + (kluge_procbuf_delay): Delete function. + (symbols_of_oct_procbuf): Delete DEFVAR and function. + + * dirfns.cc (Fconfirm_recursive_rmdir): New function. + (confirm_recursive_rmdir): Delete function. + (symbols_of_dirfns): Delete DEFVAR and function. + + * error.cc (initialize_warning_options): Now extern. + Rename from init_warning_options. + * error.h: Provide decl. + * octave.cc (octave_main): Call it here. + + * error.cc (Fbeep_on_error, Fdebug_on_error, Fdebug_on_warning): + New functions. + (beep_on_error, debug_on_error, debug_on_warning): Delete Functions. + (symbols_of_error): Delete DEFVARs and function. + + * help.cc (Finfo_file, Finfo_program, Fmakeinfo_program, + Fsuppress_verbose_help_message): New function. + (info_file, info_program, makeinfo_program, + suppress_verbose_help_message): Delete function. + (symbols_of_help): Delete DEFVARs and function. + (Vinfo_program): Rename from Vinfo_prog. Change all uses. + + * input.cc (FPS1, FPS2, FPS4, Fcompletion_append_char, + Fecho_executing_commands): New functions. + (ps1, ps2, ps4, completion_append_char, echo_executing_commands): + Delete functions. + (symbols_of_input): Delete DEFVARs and function. + (VPS1, VPS2, VPS4): Rename from Vps1, Vps2, Vps4. Change all uses. + (Fecho): Set Vecho_executing_commands directly. + + * load-save.cc (crash_dumps_octave_core, Fdefault_save_options, + Foctave_core_file_limit, Foctave_core_file_name, + Foctave_core_file_options, Fsave_header_format_string): + New functions. + (crash_dumps_octave_core, default_save_options, + octave_core_file_limit, octave_core_file_name, + octave_core_file_options, save_header_format_string): + Delete functions. + (symbols_of_load_save): Delete DEFVARs and function. + + * ov-base.cc (Fprint_answer_id_name, Fsilent_functions): New functions. + (print_answer_id_name, silent_functions): Delete functions. + (symbols_of_ov_base): Delete DEFVARs and function. + + * ov-usr-fcn.cc (Fmax_recursion_depth): New function. + (max_recursion_depth): Delete function. + (symbols_of_ov_usr_fcn): Delete DEFVAR for max_recursion_depth. + Delete function. + + * pager.cc (Fpage_output_immediately, Fpage_screen_output, FPAGER): + New functions. + (page_output_immediately, page_screen_output, pager_binary): + Delete functions. + (symbols_of_pager): Delete DEFVARs and function. + (VPAGER): Rename from Vpager_binary. Change all uses. + + * pr-output.cc (Ffixed_point_format, Fprint_empty_dimensions, + Fsplit_long_rows, Foutput_max_field_width, Foutput_precision, + Fstruct_levels_to_print): New functions. + (fixed_point_format, print_empty_dimensions, split_long_rows, + output_max_field_width, output_precision, struct_levels_to_print): + Delete functions. + (symbols_of_pr_output): Delete DEFVARs and function. + + * pt-assign.cc (Fprint_rhs_assign_val): New function. + (print_rhs_assign_val): Delete function. + (symbols_of_pt_assign): Delete DEFVAR. Delete function. + + * sighandlers.cc (Fdebug_on_interrupt, Fsighup_dumps_octave_core, + Fsigterm_dumps_octave_core): New functions. + (debug_on_interrupt, sighup_dumps_octave_core, + sigterm_dumps_octave_core): Delete functions. + (symbols_of_sighanlders): Delete DEFVARs. Delete function. + + * symtab.cc (Vdebug_symtab_lookups): Now bool. + (Fdebug_symtab_lookups, Fwhos_line_format, + Fvariables_can_hide_functions): New functions. + (debug_symtab_lookups, whos_line_format, + variables_can_hide_functions): Delete functions. + (symbols_of_symtab): Delete DEFVARs and function. + + 2006-05-04 David Bateman + + * DLD-FUNCTIONS/sqqr (Fdmperm): Allow compilation with versions + v2.0.0 of CXSparse or later. + + 2006-05-04 John W. Eaton + + * variables.cc (set_internal_variable): Move here from + DLD-FUNCTIONS/__gnuplot_raw__.l. + * variables.h (SET_INTERNAL_VARIABLE): Likewise. + (set_internal_variable): Provide decls. + + * DLD-FUNCTIONS/__gnuplot_raw__.l: Convert all DEFVARs to DEFUN_DLDs. + (gnuplot::init): Delete. + (gnuplot::gnuplot): Don't call init here. + (set_internal_variable): New functions. + (SET_INTERNAL_VARIABLE): New macro. + + * Makefile.in: Undo changes of 2006-03-16. + * DLD-FUNCTINS/__gnuplot_raw__.l: Move here from __gnuplot_raw__.l. + Undo changes of 2006-03-16. + + 2006-05-03 David Bateman + + * ov-base-mat.h: Add caching of matrix type, and code to supply + and copy matrix type. + * ov-bool-mat.h: Add caching to constructor. + * ov-re-mat.h: ditto. + * ov-cx-mat.h: ditto. + * ov.cc: Add to the BoolMatrix, Matrix and the ComplexMatrix + octave_value constructors, the ability to specify the matrix type. + * ov.h: Adapt declaration of above constructors. + (MatrixType matrix_type(void) const, MatrixType matrix_type (const + MatrixType&)): New functions for probing and setting matrix type. + * ov-base.cc (virtual MatrixType matrix_type(void) const, virtual + MatrixType matrix_type (const MatrixType&)): New default functions + for probing and setting matrix type. + * ov-base.h (virtual MatrixType matrix_type(void) const, virtual + MatrixType matrix_type (const MatrixType&)): Declarations. + * ov-base-sparse.h: Replace all uses of SparseType with + MatrixType. Replace sparse_type function with matrix_type function. + * ov-bool-sparse.h: Replace all uses of SparseType with MatrixType. + * ov-cx-sparse.h: ditto. + * ov-re-sparse.h: ditto. + * sparse-xdiv.cc: ditto. + * sparse-xdiv.h: ditto. + * sparse-xpow.cc: ditto. + * DLD-FUNCTIONS/luinc.cc: ditto. + * DLD-FUNCTIONS/splu.cc: ditto. + * xdiv.cc (xdiv, xleftdiv): Pass the matrix type, simplfy since + the matrix solve function now calls lssolve if singular. + * xdiv.h (xdvi, xleftdiv): Update the declarations + * OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, + OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, + OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, + OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-m.cc, + OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc, + OPERATORS/op-m-m.cc, OPERATORS/op-m-s.cc, + OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, + OPERATORS/op-s-cm.cc, OPERATORS/op-s-m.cc, + OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-m.cc, + OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-m.cc: Update use of + xdiv and xleftdiv functions to allow matrix type caching. + * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Update to allow typing + of Matrix, and ComplexMatrix types. Add new test code for this. + + * DLD-FUNCTIONS/cellfun.cc (Fmat2cell): new function. + + * DLD-FUNCTIONS/regexp.cc (class regexp_elem): New class to store + matched element in a std::list. + (octregexp_list): Take algorithm from octregexp and construct a + list of matches. + (octregexp): Rewrite to use linked list of matches. + (Fregexprep): New function, working directly in linked list of + matches. + + 2006-05-02 John W. Eaton + + * lex.l ({CCHAR}): Exit rawcommand mode if returning '\n' token. + + 2006-05-02 David Bateman + + * DLD-FUNCTIONS/rand.cc (do_rand): Require real scalar for seed. + + 2006-05-01 John W. Eaton + + * error.h (Vwarning_option): Delete. + * variables.cc (looks_like_struct): Remove use from commented code. + + * gripes.cc, gripes.h (gripe_implicit_conversion): New arg, ID. + Change all uses. + + * defaults.cc (set_local_site_defaults_file, set_site_defaults_file): + Allow filenames to be set from the environment. + + * oct-map.cc (octave_map::resize): No longer const. + * ov-struct.h (octave_struct::resize): Deal with it. + + * octave.cc (initialize_error_handlers): Also call + set_liboctave_warning_with_id_handler. + (execute_startup_files): Check that home_rc is not an empty string. + (F__version_info__): Resize vinfo before assigining elements. + + * ov-base.cc (warn_num_to_str, warn_resize_on_range_error): + Delete functions. + (symbols_of_ov_base): Delete DEFVARS. + (Vwarn_num_to_str, Vwarn_resize_on_range_error): Delete variables. + (value::convert_to_str): Check state of warning ID + Octave:num-to-str instead of using Vwarn_num_to_str. + * OPERATORS/op-chm.cc: Likewise. + * ov-base.h (Vwarn_num_to_str, Vwarn_resize_on_range_error): + Delete decls. + + * ov-list.cc (octave_list::assign): Call warning_with_id instead + of warning. + + * parse.y (warn_assign_as_truth_value, warn_associativity_change, + warn_function_name_clash, warn_future_time_stamp, + warn_missing_semicolon, warn_precedence_change, + warn_variable_switch_label, symbols_of_parse): + Delete DEFVARs and functions. + (Vwarn_assign_as_truth_value, Vwarn_associativity_change, + Vwarn_function_name_clash, Vwarn_future_time_stamp, + Vwarn_missing_semicolon, Vwarn_precedence_change, + Vwarn_variable_switch_label): Delete variables. + * parse.h (Vwarn_future_time_stamp): Delete decl. + * parse.y (fold): Check state of warning ID + Octave:associativity-change and Octave:precedence-change instead + of using Vwarn_associativity_change and Vwarn_precedence_change. + (maybe_warn_associativity_change, maybe_warn_missing_semi, + maybe_warn_assign_as_truth_value, make_binary_op, make_boolean_op, + frob_function): Call warning_with_id instead of warning. + * dynamic-ld.cc (octave_dynamic_loader::do_load): Likewise. + + * ov.cc (warn_fortran_indexing, warn_imag_to_real, symbols_of_ov): + Delete DEFVARs and functions. + (Vwarn_fortran_indexing, Vwarn_imag_to_real): Delete variables. + + * ov.cc (octave_value::vector_value, octave_value::int_vector_value, + octave_value::complex_vector_value): Check state of warning ID + Octave:fortran-indexing instead of using Vwarn_fortran_indexing. + * ov-cx-sparse.cc (octave_sparse_complex_matrix::double_value, + octave_sparse_complex_matrix::complex_value): Likewise. + * ov-cx-mat.cc (octave_complex_matrix::matrix_value, + octave_complex_matrix::complex_value): Likewise. + * ov-re-mat.cc (octave_matrix::complex_value, + octave_matrix::double_value): Likewise. + * ov-streamoff.cc (octave_streamoff::streamoff_value): Likewise. + * ov-re-sparse.cc (octave_sparse_matrix::complex_value, + octave_sparse_matrix::double_value): Likewise. + * ov-range.cc (octave_range::complex_value, + octave_range::double_value): Likewise. + * ov-ch-mat.cc (octave_char_matrix::complex_value, + octave_char_matrix::double_value): Likewise. + * ov-bool-sparse.cc (octave_sparse_bool_matrix::complex_value, + octave_sparse_bool_matrix::double_value): Likewise. + * ov-bool-mat.cc (octave_bool_matrix::complex_value, + octave_bool_matrix::double_value): Likewise. + + * ov-cx-sparse.cc (octave_sparse_complex_matrix::double_value, + octave_sparse_complex_matrix::matrix_value, + octave_sparse_complex_matrix::sparse_matrix_value): Check state of + warning ID Octave:imag-to-real instead of using Vwarn_imag_to_real. + * ov-cx-mat.cc (octave_complex_matrix::double_value, + octave_complex_matrix::matrix_value, + octave_complex_matrix::complex_value, + octave_complex_matrix::sparse_matrix_value): Likewise. + * ov-complex.cc (octave_complex::double_value, + octave_complex::matrix_value, octave_complex::array_value): Likewise. + + * ov.h (Vwarn_fortran_indexing, Vwarn_imag_to_real): Delete decls. + + * pt-mat.cc (warn_empty_list_elements, warn_string_concat): + Delete functions. + (symbols_of_pt_mat): Delete DEFVARs. + (Vwarn_empty_list_elements, Vwarn_string_concat): Delete variables. + (tm_row_const::tm_row_const_rep::eval_warning, tm_const::init, + maybe_warn_string_concat): Call warning_with_id instead of warning. + + * ov-str-mat.cc (warn_str_to_num, symbols_of_ov_str_mat): + Delete DEFVAR and functions. + (Vwarn_str_to_num): Delete variable. + (CHAR_MATRIX_CONV): Call warning_with_id instead of warning. + + * utils.cc (warn_neg_dim_as_zero, symbols_of_utils): + Delete DEFVAR and functions. + (Vwarn_neg_dim_as_zero): Delete variable. + (check_dimensions): Call warning_with_id instead of warning. + + * pt-misc.cc (warn_undefined_return_values, symbols_of_pt_misc): + Delete DEFVAR and functions. + (Vwarn_undefined_return_values): Delete variable. + (tree_parameter_list::initialize_undefined_elements): + Call warning_with_id instead of warning. + + * dynamic-ld.cc (warn_reload_forces_clear, symbols_of_dynamic_ld): + Delete DEFVAR and functions. + (Vwarn_reload_forces_clear): Delete variable. + (do_clear_function, octave_dynamic_loader::do_load): + Call warning_with_id instead of warning. + * error.cc (warning_enabled): Now extern. + (Fwarning): If specific id is not found, return state of "all". + + * error.h: Provide decl. + + * gripes.cc (warn_divide_by_zero, symbols_of_gripes): + Delete DEFVAR and functions. + (gripe_divide_by_zero): Check whether warning is enabled, then + call warning_with_id instead of warning. + (Vwarn_divide_by_zero): Delete variable. + + 2006-04-27 John W. Eaton + + * variables.cc (Fexist): Fix doc string. + + * help.cc (simple_help): No need to handle built-in constants now. + * variables.cc (do_who): Likewise. + (symbol_exist): Likewise. + (link_to_builtin_or_function): Likewise. + * symtab.cc (SYMBOL_DEF::type_as_string): Likewise. + (record::read_only_error): Likewise. + (SYMBOL_DEF::type): Likewise. + (record::variable_reference): Likewise. + (symbol_record::define_builtin_const): Delete function. + + * symtab.h (symbol_record::define_builtin_const): Delete decl. + (symbol_record::symbol_def::is_constant): Delete function. + (symbol_record::symbol_def::is_builtin_constant): Delete function. + (symbol_record::symbol_def::is_constant): Delete function. + (symbol_record::is_builtin_constant): Delete function. + (SYMTAB_ALL_TYPES): No need to handle builtin-constants now. + (symbol_record::TYPE): Remove BUILTIN_CONSTANT from enum. + + * defun.cc (install_builtin_constant): Delete function. + * defun-int.h (install_builtin_constant): Delete decl. + + * variables.cc (bind_builtin_constant): Delete function. + * variables.h (bind_builtin_constant): Delete decl. + + * defun-int.h (DEFCONST, DEFCONSTX, DEFCONST_INTERNAL, + DEFCONSTX_INTERNAL): Delete definitions. + + * sighandlers.cc (FSIG): New function to replace DEFCONST in + symbols_of_sighandlers. + + * octave.cc (intern_argv): Set octave_argv instead of calling + bind_builtin_variable here. + (Fargv, Fprogram_invocation_name, Fprogram_name): New functions to + replace DEFCONSTs in symbols_of_toplvev in toplev.cc. + (octave_program_invocation_name, octave_program_name): + New static variables. + (execute_command_line_file): Use unwind_protect_str to protect + octave_program_invocation_name, octave_program_name instead of + using a restore function. + (restore_program_name): Delete. + + * defaults.cc (FOCTAVE_HOME): New function to replace DEFCONST in + symbols_of_defaults. + + 2006-04-27 David Bateman + + * DLD-FUNCTIONS/regexp.cc (octregexp): Fix for infinite loop in + regexp. Include news regexp arguments, and associated tests. + + 2006-04-26 John W. Eaton + + * oct-stream.cc: Also instantiate do_read functions for boolNDArray. + + 2006-04-26 Bill Denney + + * pager.cc (Fterminal_size): Add list_in_columns to @seealso. + + 2006-04-26 John W. Eaton + + * dirfns.cc (Ffilesep): New function to replace DEFCONST in + symbols_of_dirfns. + (Fpathsep): New function. + + * defaults.cc (set_default_default_exec_path): Use + dir_path::path_sep_str instead of std::string (SEPCHAR_STR). + (set_default_exec_path): Likewise. + (set_default_path): Likewise. + (maybe_add_default_load_path): Likewise. Use dir_path::is_path_sep. + + 2006-04-18 John W. Eaton + + * DLD-FUNCTIONS/regexp.cc: Include , for transform decl. + + * DLD-FUNCTIONS/ccolamd.cc (Fccolamd, Fcsymamd): + Always return something. + + * sighandlers.cc (octave_set_signal_handler, + octave_set_interrupt_handler): New arg, restart_syscalls, with + default value true. + * sighandlers.h: Fix decls to match. + * sysdep.cc (octave_kbhit): Disable restarting of system calls. + + * help.cc (Flookfor): Add std qualifier to transform function. + Include , for transform decl. + + 2006-04-16 John W. Eaton + + * pager.h (octave_diary_buf, octave_pager_buf): Use std:stringbuf + directly. + + * ls-mat-ascii.cc (read_mat_ascii_data): Use std::istringstream + directly. + * load-save.cc (parse_save_options): Likewise. + * ls-mat5.cc (read_mat5_binary_element): Likewise. + * oct-strstrm.h (octave_istrstream::is): Likewise. + + * __gnuplot_raw__.l (printrange, handle_using, gnuplot::do_open, + gnuplot::do_set, gnuplot::do_show, gnuplot::makeplot, + gnuplot::handle_title): Use std::ostringstream directly. + * toplev.cc (run_command_and_return_output): Likewise. + * symtab.h (symbol_table::symbol_table): Likewise. + * strfns.cc (Flist_in_columns): Likewise. + * pt.cc (tree::str_print_code): Likewise. + * parse.y (yyerror, fold, finish_matrix): Likewise. + * pr-output.cc (PRINT_ND_ARRAY, octave_print_internal, Fdisp): + Likewise. + * symtab.cc (symbol_table::print_descriptor): Likewise. + * ov-list.cc (octave_list::print_raw, octave_list::save_ascii, + octave_list::save_binary, octave_list::save_hdf5): Likewise. + * ov-fcn-inline.cc (octave_fcn_inline::octave_fcn_inline, + octave_fcn_inline::load_ascii, octave_fcn_inline::print_raw, + Finline): Likewise. + * ov-fcn-handle.cc (octave_fcn_handle::load_ascii, + octave_fcn_handle::save_binary, octave_fcn_handle::save_hdf5): + Likewise. + * ov-cs-list.cc (octave_cs_list::print_raw): Likewise. + * ov-cell.cc (octave_cell::print_raw, octave_cell::save_hdf5): + Likewise. + * oct-strstrm.h (octave_ostrstream::os, octave_ostrstream::str): + Likewise. + * oct-stream.h (scanf_format_list::buf, printf_format_list::buf): + Likewise. + * oct-stream.cc (scanf_format_list::scanf_format_list, + printf_format_list::printf_format_list, + octave_base_stream::do_gets, BEGIN_CHAR_CLASS_CONVERSION, + octave_stream_list::do_list_open_files): Likewise. + * ls-oct-ascii.h (extract_keyword): Likewise. + * load-save.cc (do_load): Likewise. + * lex.l (have_continuation, handle_string): Likewise. + * input.cc (get_user_input): Likewise. + * dirfns.cc (Fls): Likewise. + * error.cc (error_message_buffer, vwarning, verror, pr_where): + Likewise. + * defun.cc (print_usage): Likewise. + * help.cc (display_help_text, Ftype, first_help_sentence): + Likewise. + * ls-mat5.cc (save_mat5_binary_element): Likewise. + * DLD-FUNCTIONS/regexp.cc (octregexp): Likewise. + * DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom): Likewise. + + 2006-04-13 John W. Eaton + + * Makefile.in (lex.o parse.o __gnuplot_raw__.o, pic/parse.o + pic/__gnuplot_raw__.o): Omit -Wold-style-cast from CXXFLAGS. + + * ls-mat5.cc (READ_INTEGER_DATA): Allocate local buffer to avoid + pointer tricks. + + * DLD-FUNCTIONS/regexp.cc (octregexp): Use OCTAVE_LOCAL_BUFFER + instead of allocting memory with malloc. + + * DLD-FUNCTIONS/sparse.cc (Fsparse): Use octave_value extractors + instead of using get_rep. + + * DLD-FUNCTIONS/dispatch.cc (dispatch_record): Use dynamic_cast, + not reinterpret_cast. + + * DLD-FUNCTIONS/besselj.cc (Fairy): Use int_value instead of + double_value and cast to extract kind arg. + (int_arrayN_to_array): Arg is ArrayN, not ArrayN. + + * OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, + OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, + OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, + OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc, + OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc, + OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc, + OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc, + OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc, + OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc, + OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc: No need to cast + away const just to cache sparse type. + * ov-base-sparse.h (octave_base_sparse::typ): Now mutable. + (octave_base_sparse::sparse_type): Now const. + + * OPERATORS/op-cm-scm.cc (DEFBINOP(div)): Explicitly cast args + here instead of using CAST_BINOP_ARGS. + + * OPERATORS/op-streamoff.cc (STREAMOFF_COMP_OP): Second arg to + CAST_BINOP_ARGS is also const. + + * DLD-FUNCTIONS/chol.cc (Fcholinv, Fchol2inv): Eliminate nargout + arg to avoid unused variable warnings. + + * unwind-prot.h, unwind-prot.cc (unwind_protect::save_bool, + unwind_protect::save_int, unwind_protect::save_str, + unwind_protect::save_ptr, unwind_protect::save_var): + Pointer args now const. + (unwind_protect_const_ptr): New macro. + + * symtab.cc (maybe_list_cmp_fcn): Use static_cast instead of X_CAST. + * variables.cc (symbol_record_name_compare): Likewise. + * ls-mat5.cc (MAT5_DO_WRITE, save_mat5_binary_element): Likewise. + + * ov-fcn-handle.cc (octave_fcn_handle::save_hdf5, + octave_fcn_handle::load_hdf5): Eliminate unnecessary casts. + * ov-fcn-inline.cc (octave_fcn_inline::save_hdf5, + octave_fcn_inline::load_hdf5): Likewise. + * ov-str-mat.cc (octave_char_matrix_str::save_hdf5, + octave_char_matrix_str::load_hdf5): Likewise. + * ov-bool-sparse.cc (octave_sparse_bool_matrix::save_hdf5, + octave_sparse_bool_matrix::load_hdf5): Likewise. + * ov-cx-sparse.cc (octave_sparse_complex_matrix::save_hdf5, + octave_sparse_complex_matrix::load_hdf5): Likewise. + * ov-re-sparse.cc (octave_sparse_matrix::save_hdf5, + octave_sparse_matrix::load_hdf5): Likewise. + * ov-str-mat.cc (octave_char_matrix_str::save_ascii, + octave_char_matrix_str::load_ascii): Likewise. + * mappers.cc (xtoascii): Likewise. + * load-save.cc (read_binary_file_header, write_header): Likewise. + * parse.y (get_help_from_file, parse_fcn_file): Likewise. + * DLD-FUNCTIONS/rand.cc (do_rand): Likewise. + * ls-hdf5.cc (read_hdf5_data, hdf5_add_attr, save_hdf5_empty, + load_hdf5_empty add_hdf5_data): Likewise. + * ls-mat4.cc (read_mat_binary_data): Likewise. + * ls-mat5.cc (read_mat5_binary_element): Likewise. + + * oct-stream.cc (expand_char_class, octave_base_stream::do_gets): + Use static_cast instead of C-style cast. + * oct-procbuf.cc (kluge_procbuf_delay): Likewise. + * parse.y (gobble_leading_white_space,: Likewise. + * DLD-FUNCTIONS/besselj.cc (int_array2_to_matrix, + int_arrayN_to_array): Likewise. + * DLD-FUNCTIONS/colamd.cc (Fcolamd, Fsymamd): Likewise. + * DLD-FUNCTIONS/ccolamd.cc (Fcsymamd): Likewise. + * pt-pr-code.cc (tree_print_code::print_comment_elt): Likewise. + * DLD-FUNCTIONS/besselj.cc (do_bessel): Likewise. + * DLD-FUNCTIONS/spchol.cc (Fsymfact): Likewise. + * DLD-FUNCTIONS/sparse.cc (sparse_find): Likewise. + * DLD-FUNCTIONS/sort.cc (FloatFlip): Likewise. + * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Likewise. + * ls-mat5.cc (read_mat5_binary_element, OCTAVE_MAT5_INTEGER_READ, + read_mat5_binary_element, save_mat5_binary_element): Likewise. + + * DLD-FUNCTIONS/splu.cc (Fspinv): Use dynamic_cast instead of + C-style cast. + * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Likewise. + + * DLD-FUNCTIONS/sort.cc (mx_sort): Use reinterpret_cast instead of + C-style cast. + * ls-mat5.cc (write_mat5_tag): Likewise. + + * ov-typeinfo.h (octave_value_typeinfo::octave_value_typeinfo): + Eliminate unnecessary casts in constructor initializers. + + * ops.h (CAST_CONV_ARG, CAST_UNOP_ARG, CAST_BINOP_ARGS, + DEFASSIGNANYOP_FN): Use C++ dynamic_cast instead of DYNAMIC_CAST macro. + + * unwind-prot.h (unwind_protect_ptr): Use combination of + reinterpret_cast and const_cast instead of X_CAST. + + * dynamic-ld.cc (loader::do_load): Use reinterpret_cast instead of + X_CAST. + * ov-base-int.cc (octave_base_int_matrix::save_binary, + octave_base_int_matrix::load_binary, + octave_base_int_scalar::save_binary, + octave_base_int_scalar::load_binary): Likewise. + * ov-bool-mat.cc (octave_bool_matrix::save_binary, + octave_bool_matrix::load_binary): Likewise. + * ov-bool-sparse.cc (octave_sparse_bool_matrix::save_binary, + octave_sparse_bool_matrix::load_binary): Likewise. + * ov-bool.cc (octave_bool::save_binary, octave_bool::load_binary): + Likewise. + * ov-cell.cc (octave_cell::save_binary, octave_cell::load_binary): + Likewise. + * ov-complex.cc (octave_complex::save_binary, + octave_complex::load_binary): Likewise. + * ov-cx-mat.cc (octave_matrix::save_binary, + octave_matrix::load_binary): Likewise. + * ov-cx-sparse.cc (octave_sparse_complex_matrix::save_binary, + octave_sparse_complex_matrix::load_binary): Likewise. + * ov-fcn-handle.cc (octave_fcn_handle::save_binary, + octave_fcn_handle::load_binary): Likewise. + * ov-fcn-inline.cc (octave_fcn_inline::save_binary, + octave_fcn_inline::load_binary): Likewise. + * ov-list.cc (octave_list::save_binary, octave_list::load_binary): + Likewise. + * ov-range.cc (octave_range::save_binary, octave_range::load_binary): + Likewise. + * ov-re-mat.cc (octave_matrix::save_binary, + octave_matrix::load_binary): Likewise. + * ov-re-sparse.cc (octave_sparse_matrix::save_binary, + octave_sparse_matrix::load_binary): Likewise. + * ov-scalar.cc (octave_scalar::save_binary, + octave_scalar::load_binary): Likewise. + * ov-str-mat.cc (octave_char_matrix_str::save_binary, + (octave_char_matrix_str::load_binary): Likewise. + * ov-struct.cc (octave_struct::save_binary, + octave_struct::load_binary): Likewise. + * ls-oct-binary.cc (save_binary_data, read_binary_data): Likewise. + * ls-mat4.cc (read_mat_file_header, save_mat_binary_data): Likewise. + * ls-mat5.cc (read_mat5_tag, read_mat5_binary_element, + read_mat5_binary_element, read_mat5_binary_file_header, + MAT5_DO_WRITE, write_mat5_array, write_mat5_integer_data, + save_mat5_binary_element, READ_INTEGER_DATA): Likewise. + + 2006-04-12 John W. Eaton + + * ov.h (OV_REP_TYPE): New macro. + + * DLD-FUNCTIONS/sparse.cc (MINMAX_BODY): No need to cast arg1 to + const octave_sparse_matrix&. + + * ov-base.cc (print_answer_id_name, warn_resize_on_range_error, + warn_num_to_str, silent_functions): Move here, from ov.cc. + (Vwarn_resize_on_range_error, Vsilent_functions): Likewise. + (Vprint_answer_id_name): Likewise. Now static. + (symbols_of_ov_base): New function. Move DEFVARs for + print_answer_id_name, warn_resize_on_range_error, warn_num_to_str, + and silent_functions here from symbols_of_ov in ov.cc. + * ov.h (Vprint_answer_id_name): Delete decl. + * ov-base.h (Vwarn_resize_on_range_error, Vwarn_num_to_str): + Move decls here from ov.h. + + * ov-str-mat.cc (warn_str_to_num): Move here, from ov.cc. + (Vwarn_str_to_num): Likewise. Now static. + (symbols_of_ov_str_mat): New function. Move DEFVAR for + warn_str_to_num here from symbols_of_ov in ov.cc. + * ov.h (Vwarn_str_to_num): Delete decl. + + * ov-struct.cc (octave_struct::load_ascii): Pass loop counter, not + count, to read_ascii. + * ov-list.cc (octave_list::load_ascii): Likewise. + + * ov-list.cc (octave_list::do_index_op): Allow index to extract + multiple items. Result is always a list. + + * pr-output.cc (struct_levels_to_print): Move here from ov.cc. + (Vstruct-levels_to_print): Likewise. + (symbols_of_pr_output): Move DEFVAR for struct_levels_to_print here + from symbols_of_ov in ov.cc. + * pr-output.h (Vstruct_levels_to_print): Nove decl here from ov.h. + + * gripes.cc (warn_divide_by_zero): Move here from ov.cc. + (Vwarn_divide_by_zero): Likewise. Now static. + (symbols_of_gripes): New function. Move DEFVAR for + warn_divide_by_zero here from symbols_of_ov in ov.cc. + * ov.h (Vwarn_divide_by_zero): Delete decl. + + * load-save.cc (do_load): Declare count octave_idx_type, not int. + * ls-oct-ascii.cc, ls-oct-ascii.h (read_ascii_data): Likewise. + + Rearrange octave_value class hierarchy so that rep is a pointer + an octave_base_value object and the octave_base_value class + stores the reference count. Virtualness now goes with the + octave_base_value class, not the octave_value class. + + * ops.h, ov-base-int.cc, ov-base-int.h, ov-base-mat.h, + ov-base-scalar.h, ov-base-sparse.h, ov-base.cc, ov-base.h, + ov-bool-mat.cc, ov-bool-mat.h, ov-bool-sparse.cc, + ov-bool-sparse.h, ov-bool.cc, ov-bool.h, ov-cell.cc, ov-cell.h, + ov-ch-mat.h, ov-colon.h, ov-complex.cc, ov-complex.h, + ov-cs-list.h, ov-cx-mat.cc, ov-cx-mat.h, ov-cx-sparse.cc, + ov-cx-sparse.h, ov-fcn-handle.h, ov-fcn-inline.h, ov-fcn.cc, + ov-fcn.h, ov-intx.h, ov-list.cc, ov-list.h, ov-range.cc, + ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, + ov-re-sparse.h, ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, + ov-streamoff.h, ov-struct.cc, ov-struct.h, ov-type-conv.h, + ov-typeinfo.cc, ov-typeinfo.h, ov-va-args.h, ov.cc, ov.h, + variables.cc, DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/splu.cc, + OPERATORS/op-chm.cc: Cope with octave_value hierarchy changes + (apologies for the lack of detail). + + * ov.cc (octave_value::nil_rep): Delete. + * ov.h (octave_value::nil_rep): Delete decl. + + * ov-base.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA, + DECLARE_OV_BASE_TYPEID_FUNCTIONS_AND_DATA, + DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA2, + DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): + Move macro definitions here from ov.h. + (struct_indent, increment_struct_indent, decrement_struct_indent, + list_indent, increment_list_indent, decrement_list_indent): + Delete decls. + + * ov-base.cc. ov-base.h (do_index_op, ndims, all, any, + convert_to_str, print_with_name, numeric_assign, + reset_indent_level, increment_indent_level, + decrement_indent_level, current_print_indent_level, newline, + indent, reset): Move member functions here from octave_value class. + (count, curr_print_indent_level, beginning_of_line): + Move data members here from octave_value class. + (gripe_indexed_assignment, gripe_assign_conversion_failed, + gripe_no_conversion): Move here from ov.cc. + + * ov.h (class octave_xvalue): Delete. + (octave_value::octave_value (const octave_xvalue&)): Delete. + (anonymous union): Delete. + (octave_value::rep): Now a pointer to octave_base_value instead of + octave_value. + + (octave_value::internal_rep): Return pointer to octave_base_value, + not octave_value. + + 2006-04-11 John W. Eaton + + * pt-assign.cc (tree_simple_assignment::rvalue, + tree_multi_assignment::rvalue): + Error if RHS is a comma-separated list. + + 2006-04-07 John W. Eaton + + * defaults.cc (FOCTAVE_VERSION): New function to replace + corresponding DEFCONSTX macro in symbols_of_defaults. + + * file-io.cc (FP_tmpdir, FSEEK_SET, FSEEK_CUR, FSEEK_END, Fstdin, + Fstdout, Fstderr): New functions to replace DEFCONSTX macros in + symbols_of_file_io. + (const_value): New static function. + (symbols_of_file_io): Delete. + + * syscalls.cc (FF_DUPFD, FF_GETFD, FF_GETFL, FF_SETFD, FF_SETFL, + FO_APPEND, FO_ASYNC, FO_CREAT, FO_EXCL, FO_NONBLOCK, FO_RDONLY, + FO_RDWR, FO_SYNC, FO_TRUNC, FO_WRONLY, FWNOHANG, FWUNTRACED, + FWCONTINUE): New functions to replace DEFCONSTX macros in + symbols_of_syscalls. + (const_value): New static function. + (symbols_of_syscalls): Delete. + + * pr-output.cc (pr_max_internal, pr_min_internal): + Return 0 if all values are Inf or NaN. + Always leave space for sign when printing Inf or NaN values. + + * parse.y (Fmfilename): Don't let filenames like ../foo fake us out. + + * data.cc (fill_matrix): Create separate versions for int, bool, + and double, and Complex values. + (FInf, FNaN, Fe, Feps, Fpi, Frealmax, Frealmin, FI, FNA, Ffalse, + Ftrue): New functions to replace DEFCONST and DEFCONSTX macros in + symbols_of_data. Provide i, J, and j aliases for I. + Provide nan alias for NaN. Provide inf alias for Inf. + (symbols_of_data): Delete. + + 2006-04-06 John W. Eaton + + * parse.y (parse_and_execute, parse_fcn_file): + Create octave_script_function object and push it on the call stack. + + * parse.y (Fmfilename): Check for script or user function file on + call stack. + + * ov-builtin.cc (octave_builtin::do_multi_index_op): + Use octave_call_stack instead of curr_function to save pointer to + current function. + * ov-mapper.cc (octave_mapper::do_multi_index_op): Likewise. + * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): Likewise. + + * pt-bp.h (MAYBE_DO_BREAKPOINT): Use octave_call_stack instead of + curr_function to get pointer to current function. + * pt-arg-list.cc (list::convert_to_const_vector): Likewise. + * variables.cc (Fmlock, Fmunlock, Fmislocked): Likewise. + * input.cc (get_user_input): Likewise. + * error.cc (warning_1, error_2): Likewise. Only enter debug mode + if there is a scripting language caller. + * ov-usr-fcn.cc (Fva_arg, Fva_start, Fvr_val): Likewise. Check + scripting language caller, not current function. + + * toplev.cc (curr_caller_function, curr_function): Delete. + * toplev.h: Delete decls. + + * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): + Don't protect and set curr_caller_function. + * ov-builtin.cc (octave_builtin::do_multi_index_op): Likewise. + * ov-mapper.cc (octave_mapper::do_multi_index_op): Likewise. + + * variables.cc (do_who): Use octave_call_stack instead of + curr_caller_function to get pointer to calling function. + * input.cc (get_user_input): Likewise. + * error.cc (pr_where): Likewise. No need for curr_function now. + * parse.y (Fmfilename): Likewise. Check for scripting language + caller, not any calling function. + + * ov-usr-fcn.h (octave_user_script): New class. + * ov-fcn.h (octave_function::is_user_script): New virtual function. + + * toplev.h, toplev.cc (octave_call_stack): New class. + + * debug.cc (Fdbwhere): Use get_user_function here. + + 2006-04-05 John W. Eaton + + * Makefile.in (mk-pkg-add): Use mfilename to simplify. + (PKG_ADD): Don't pass --prefix arg to mk-pkg-add. + (PKG_ADD.inst): Delete target. + (clean): Don't remove PKG_ADD.inst. + (install-oct): Don't depend on PKG_ADD.inst. Install PKG_ADD, not + PKG_ADD.inst. + + * parse.y (Fmfilename): New function. + + 2006-04-04 David Bateman + + * help.cc (Flookfor): Skip overloaded functions. Lookup help text + of autoloaded function, not parent that contains the autoload. + + 2006-04-03 David Bateman + + * data.cc (Fresize): New function. + * oct-map.cc, ov-base-mat.cc, ov-base-sparse.cc, ov-base.cc, + ov-bool.cc, ov-complex.cc, ov-range.cc, ov-scalar.cc, + ov-str-mat.cc (resize): Add boolean fill argument. + * oct-map.h, ov-base-mat.h, ov-base-sparse.h, ov-base.h, + ov-bool.h, ov-complex.h, ov-intx.h, ov-range.h, ov-scalar.h, + ov-str-mat.h, ov.h (resize): Ditto. + + * DLD-FUNCTIONS/rand.cc (do_rand): Additional argument for + gamma and poisson distributions. Change "state" and "seed" + arguments so that they choose between generators. + Add, poisson, gamma and exponential generators. + (Frand, Frandn): Update docs for new generators, add tests. + (Frande, Frandp, Frandg): New generators, with test code. + + * DLD-FUNCTIONS/daspk.cc (Fdaspk): Allow functions to be passed + using function handles, inline functions, and cell arrays of + strings, inline and function handles. + * DLD-FUNCTIONS/dasrtk.cc (Fdasrt): Likewise. + * DLD-FUNCTIONS/dassl.cc (Fdassl): Likewise. + * DLD-FUNCTIONS/fsolve.cc (Ffsolve): Likewise. + * DLD-FUNCTIONS/lsode.cc (Flsode): Likewise. + + * ls-hdf5.h (hdf5_fstreambase::open): Remove unused arg prot. + + 2006-03-30 Bill Denney + + * data.cc: Include numel in @seealso. + + 2006-03-30 David Bateman + + * DLD-FUNCTIONS/fftw_wisdom.cc: Don't attempt to save wisdom to + an empty filename or invalid filename. + + 2006-03-28 John W. Eaton + + * DLD-FUNCTIONS/matrix_type.cc: Update copyright notice and FSF + address. + + 2006-03-24 John W. Eaton + + * DLD-FUNCTIONS/spchol.cc (Fsymbfact): Use CHOLMOD_NAME to select + proper version of row_subtree function. + + * ov-cell.cc (octave_cell::save_hdf5): Use OSSTREAM instead of + fixed character buffer and sprintf. + * ov-list.cc (octave_list::save_hdf5, octave_list::save_ascii, + octave_list::save_binary): Likewise. + + * ov-cell.h (octave_cell::convert_to_str_internal): + Undo previous change for pad arg. + * ov-cell.cc (octave_cell::all_strings): Reinstate pad arg, pass + it on to all_strings. + * ov.h (octave_value::all_strings): Reinstate pad arg. + * ov-base.cc (octave_base_value::all_strings): Likewise. + * ov-str-mat.cc (octave_char_matrix_str::all_strings): Likewise. + * ov.h, ov-base.h, ov-cell.h, ov-str-mat.h: Fix all_strings decls. + + 2005-10-25 David Bateman + + * data.cc (do_cat): With 1 arg, return [](0x0) for compatibility. + + 2006-03-23 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.5+. + + 2006-03-22 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.5. + (OCTAVE_API_VERSION): Now api-v18. + (OCTAVE_RELEASE_DATE): Now 2006-03-22. + + 2006-03-21 John W. Eaton + + * ov-cell.h (octave_cell::convert_to_str_internal): + Ignore pad and force args. + * ov-cell.cc (octave_cell::all_strings): Delete args. Never pad. + * ov-base.cc (octave_base_value::all_strings): Delete args. + Always force string conversion, never pad. + * ov-str-mat.cc (octave_char_matrix_str::all_strings): + Delete args. Don't strip whitespace. + * ov.h, ov-base.h, ov-cell.h, ov-str-mat.h: Fix all_strings decls. + * strfns.cc (Fchar): No args for all_strings. + + 2006-03-21 David bateman + + * DLD-FUNCTIONS/getrusage.cc (Fgetrusage): Use GetProcessTimes for + MinGW to obtain user and system times. + + 2006-03-17 John W. Eaton + + * strfns.cc (F__list_in_columns__): New function. + + 2006-03-16 Bill Denney + + * DLD-FUNCTIONS/time.cc: Improve @seealso entries in doc strings. + + 2006-03-16 John W. Eaton + + * __gnuplot_raw__.l (F__gnuplot_show__): Temporarily use DEFCMD + instead of DEFUN. + (symbols_of___gnuplot_raw__): Temporarily mark __gnuplot_plot__, + __gnuplot_set__, __gnuplot_splot__, and __gnuplot_replot__ as raw + commands. + + * variables.cc (is_marked_as_rawcommand, unmark_rawcommand, + mark_as_rawcommand): Temporarily not static. + * variables.h: Temporarily Provide decls. + + 2006-03-16 David Bateman + + * sparse-xdiv.cc (result_ok): delete. + (xdiv, xleftdiv): Simplify to use version of SpareMatrix::solve + and SparseComplexMatrix::solve which internally treats rectangular + and singular matrices. + * DLD-FUNCTIONS/luinc.cc: Remove error test for singular matrix as + QR solver now implemented. + * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Paranoid check on + error_state. Disable tests for the detection of underdetermined + lower and over-determined upper matrix due to problems with + non minimum norm solutions. + * DLD-FUNCTIONS/spqr.cc: Warning for issue of use of Fspqr for + under-determined problems. + + 2006-03-16 John W. Eaton + + * __gnuplot_raw__.l: Move here from DLD-FUNCTIONS/__gnuplot_raw__.l. + Use DEFUN, not DEFUN_DLD. Include defun.h, not defun-dld.h. + (gnuplot::do_init):Move guts to symbols_of___gnuplot_raw__. + (symbols_of___gnuplot_raw__): New function. + + * Makefile.in (DLD_XSRC): Delete __gnuplot_raw__.l from the list. + (DIST_SRC): Include __gnuplot_raw__.l in the list. + (__gnuplot_raw__.cc): Depend on __gnuplot_raw__.l, not + DLD-FUNCTIONS/__gnuplot_raw__.l + + * ls-oct-ascii.h (extract_keyword): Use std::string compare method + instead of strncmp. + * ls-oct-ascii.cc (extract_keyword): Likewise. + + 2006-03-15 William Poetra Yoga Hadisoeseno + + * data.cc (Frows, Fcolumns): New functions. + + * DLD-FUNCTIONS/time.cc (Fstrptime, Fstrftime): Fix docstring. + + * strfns.cc (Fstrcmp): Fixed docstring. + + 2006-03-15 John W. Eaton + + * pager.cc (Fterminal_size): New function. + + * help.cc (help_from_info): Simplify. + (try_info): Use feval to call doc instead of executing info program. + (additional_help_message): Point users to doc instead of help -i. + From Sᅵren Hauberg . + + * toplev.cc (Fsystem): Return output if nargout > 1, not 0. + + 2006-03-14 Keith Goodman + + * help.cc (Fhelp, Fwhich, Flookfor): Doc string fix. + + 2006-03-14 John W. Eaton + + * defun.cc (print_usage): New arg, extra_msg. + + * xpow.cc: Omit tests for now. + + * parse.y (QUOTE, TRANSPOSE): For compatibility, now have same + precedence as POW and EPOW. + + 2006-03-14 Bill Denney + + * load-save.cc (Fload, Fsave): Update docstring for functional form. + + 2006-03-14 John W. Eaton + + * xpow.cc (elem_xpow): Undo previous change. + + 2006-03-14 Paul Kienzle + + * xpow.cc: New tests. + + 2006-03-13 John W. Eaton + + * variables.cc (fcn_out_of_date): No longer static. + * ov-fcn-handle.cc (warn_reload): New function. + (octave_fcn_handle::subsref): Implement basic logic for updating + when pointed-to function changes. + + 2006-03-10 John W. Eaton + + * xpow.cc (elem_xpow): Only use complex pow if really necessary. + + * symtab.cc (symbol_table::glob, symbol_table::symbol_list, + symbol_table::subsymbol_list): Force result to be a column + vector. + + * oct-stream.h (octave_stream::stream_ok): Undo previous change. + Eliminate who parameter. Change all callers. + + * variables.cc (do_who): Return more info in structure array for + verbose output. + * symtab.h (symbol_record::size, symbol_record::class_name, + symbol_record::is_sparse_type, symbol_record::is_complex_type, + symbol_record::size, symbol_record::symbol_def::class_name, + symbol_record::symbol_def::is_sparse_type, + symbol_record::symbol_def::is_complex_type): New functions. + * ov.h (octave_value::size): New function. + + 2006-03-09 John W. Eaton + + * toplev.cc (run_command_and_return_output): Swap output and + status for compatibility. + + * Makefile.in (defaults.h, oct-conf.h): Force updates. + + * defaults.h.in (OCTAVE_RELEASE): New macro. + + * octave.cc (F__version_info__): New arg, release. + (initialize_version_info): Pass release arg to F__version_info__. + + * toplev.cc: Include api_version in the list. + + * Makefile.in (DIST_SRC): Include octave.cc here. + (DISTFILES, DEP_5): Not here. + + * octave.cc (F__version_info__): New function. + (initialize_version_info): New function. + (octave_main): Call initialize_version_info just before reading + init files. + + * version.h (OCTAVE_RELEASE_DATE): New macro. + + * ov-fcn-handle.h (octave_fcn_handle::dims): New function. + + 2006-03-08 John W. Eaton + + * oct-stream.cc (octave_stream::stream_ok): Move definition here, + from oct-stream.h. New arg, warn. If warn is true and stream is + invalid, print warning. + (octave_stream::error): Always avoid warning message from + stream_ok. Return "invalid stream object" if stream is not ok. + + 2006-03-08 David Bateman + + * ov-mapper.cc (SPARSE_MAPPER_LOOP_2): Change nnz to nz to remove + shadowed variable warning. + * DLD-FUNCTIONS/spqr.cc: Update for new upstream CXSPARSE release. + + 2006-03-06 John W. Eaton + + * help.cc (display_help_text): Force linebreak with @sp. + + 2006-03-06 Keith Goodman + + * bitfcns.cc, data.cc, debug.cc, file-io.cc, help.cc, + load-save.cc, mappers.cc, ov-cell.cc, ov-fcn-inline.cc, + ov-struct.cc, ov-usr-fcn.cc, ov.cc, pr-output.cc, utils.cc, + variables.cc, DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc, + DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/daspk.cc, + DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dassl.cc, + DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, + DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw_wisdom.cc, + DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/gcd.cc, + DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/sparse.cc, + DLD-FUNCTIONS/spchol.cc, DLD-FUNCTIONS/splu.cc, + DLD-FUNCTIONS/spqr.cc, DLD-FUNCTIONS/sqrtm.cc: + Move @seealso inside @defXXX macro. Remove "and" from @seealso. + + 2006-03-04 John W. Eaton + + * help.cc (additional_help_message): Don't print "\n" before message. + (help_from_symbol_table): If Vsuppress_verbose_help_message is + true, don't print which info. + + 2006-03-03 John W. Eaton + + * dirfns.cc (Vconfirm_recursive_rmdir): New static variable. + (symbols_of_dirfns): DEFVAR it. + (confirm_recursive_rmdir): New function. + (Frmdir): Maybe ask for confirmation for recursive removal. + Require second arg to be "s". + + * input.cc (octave_yes_or_no): New function. + (Fyes_or_no): New function. + * input.h (octave_yes_or_no): Provide decl. + + 2006-03-02 John W. Eaton + + * dirfns.cc (Fmkdir, Frmdir): Now commands. + + 2006-02-20 David Bateman + + * ov.h (virtual bool is_sparse_type (bool)): New virtual function + * ov-base.h (bool is_sparse_type (bool)): New function + * ov-base-sparse.h (bool is_sparse_type (bool)): New function + * DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTION/colamd.cc, + DLD-FUNCTIONS/__glpk__.cc, DLD-FUNCTIONS/splu.cc, + DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/matrix_type.cc, pt-mat.cc: + Replace us of 'arg.class_name () == "sparse"' with + 'arg.is_sparse_type ()' + + 2006-02-20 David Bateman + + * pt-mat.cc (class tm_row_const): Add any_sparse bool variable. + (tm_row_const::tm_row_const_rep::do_init_element): Initialize + any_sparse variable if any matrice is sparse. + (class tm_const): Add any_sparse bool variable. + (tm_const::init): Initialize any_sparse variable. + (tree_matrix::rvalue): If any matrix is sparse use sparse matrix + as initial matrix for concatenation + * DLD-FUNCTIONS/matrix_type.cc: Add tests for new rectangular + diagonal, permuted diagonal, triangular and permuted triangular + matrices + + 2006-02-20 John W. Eaton + + * toplev.cc (__builtin_delete, __builtin_new): Use std::cerr for + messages instead of std::cout. + (main_loop, do_octave_atexit): Use octave_stdout, not std::cout. + + 2006-02-15 John W. Eaton + + * parse.y (Fautoload): Return struct array of autoload info if + nargin == 0. + + 2006-02-15 Keith Goodman + + * help.cc (keywords): Doc string fix. + + 2006-02-15 John W. Eaton + + * oct-procbuf.cc (close): Use __CYGWIN__ instead of __CYGWIN32__. + + 2006-02-13 David Bateman + + * DLD_FUNCTIONS/regexp.cc (octregexp): Add matlab compatiable + named tokens. Update the tests + + 2006-02-10 John W. Eaton + + * lex.l (\[{S}*): Maybe set lexer_flags.looking_at_return_list or + lexer_flags.looking_at_matrix_or_assign_lhs here. + * parse.y + (return_list_beg): Don't use in_return_list here. + (assign_lhs, matrix): Don't use in_matrix_or_assign_lhs here. + (in_matrix_or_assign_lhs, in_return_list): Delete unused macros. + (matrix): Clear lexer_flags.looking_at_matrix_or_assign_lhs in all + cases. + + 2006-02-09 John W. Eaton + + * utils.cc (oct_file_in_path): Check len > 4, not len > 2. + From Larrie Carr . + + 2006-02-09 David Bateman + + * DLD-FUNCTIONS/spqr.cc: New file for sparse QR and dmperm based on + CSparse. + * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): dintinguish between + rectangular and singular matrices. Add tests. + * DLD-FUNCTIONS/luinc.cc: Add tests. + * DLD-FUNCTIONS/spkron.cc: Ditto. + * Makefile.in (DLD_XSRC): Add spqr.cc. + (OCT_LINK_DEPS): Add CSSPARSE_LIBS. + * sparse-xdiv.h: Remove conditio of lssolve. + + 2006-02-08 John W. Eaton + + * parse.y (frob_function): Clear ID_NAME from top_level symbol + table if we are defining a function at the top-level and a + function with the same name is already in the top-level symbol + table. + + 2006-01-31 John W. Eaton + + * ov-base-sparse.h (octave_base_sparse::nzmax): New function. + * ov.h (octave_value::nzmax): New function. + * ov-base.cc (octave_base_value::nzmax): New function. + * ov-base.h: Provide decl. + * data.cc (Fnzmax): New function. + * DLD-FUNCTIONS/sparse.cc (Fnzmax): Delete. + + 2006-01-31 Kim Hansen + + * __glpk__.cc (F__glpk__): Fix for sparse matrices. + + 2006-01-30 John W. Eaton + + * gripes.cc (gripe_wrong_type_arg (const char*, const char*, bool)): + New function. + (gripe_wrong_type_arg (const char*, const std::string&, bool)): + Define using const char*, const char*, bool version. + (gripe_wrong_type_arg (const char*, const octave_value&, bool)): + Define using const char*, const std::string&, bool version. + + * ov.h (octave_value::nnz): New function. + * ov-base.cc (octave_base_value::nnz): New function. + * ov-base.h: Provide decl. + * ov-base-mat.h (octave_base_matrix::nnz): New function. + * ov-base-scalar.h (octave_base_scalar::nnz): New function. + * Cell.cc (Cell::nnz): New function. + * Cell.h: Provide decl. + * data.cc (Fnnz): New function. + * DLD-FUNCTIONS/sparse.cc (Fnnz): Delete. + + 2006-01-13 John W. Eaton + + * ov-struct.cc (octave_struct::print_raw): Correctly print scalar + structs and empty struct arrays. + + * DLD-FUNCTIONS/__gnuplot_raw__.l (Fclearplot): For compatibility, + also turn off hold state for current figure. + + 2006-01-13 Bill Denney + + * dirfns.cc: Add @seealso{} to docstrings. + + 2006-01-13 John W. Eaton + + * help.cc (display_help_text): Use warning() to print raw Texinfo + source. Don't redirect error output for makeinfo process. + + * DLD-FUNCTIONS/__gnuplot_raw__.l (F__gnuplot_init__): Delete + function and PKG_ADD directive. + (gnuplot::gnuplot): Call do_init here. + (gnuplot::init): Delete static function. + (gnuplot::close_all): New static function. + (class gnuplot_X): New class. + (gnpulot_X::X): New static instance. + + 2006-01-12 David Bateman + + * help.cc (make_name_list): Add autoload functions to list of + available completions. + (simple_help): Add autoloaded functions to functions listed + (first_help_sentence): Avoid issue with single line help string + that is not terminated in \n. + (Flookfor): Check for string match in the keyword/function, etc + name. Also look for string match in help of autoloaded functions. + Load oct-files to be able to access their help string. + * parse.y (string_vector autoloaded_functions (void)): New + function to list all autloaded functions. + (string_vector reverse_lookup_autoload (const std::string& nm)): + Reverse lookup function to match file to autoloaded functions. + * parse.h (autoloaded_functions, reverse_lookup_autoload): + Declaration. + + * oct-map.cc (maybe_delete_elements): New function. + * oct-map.h (maybe_delete_elements): Declare it. + * ov-struct.cc (octave_struct::subsref): Handle indexing empty + structure. + (octave_struct::subsasgn): If rhs is [], delete elements. + (octave_struct::print_raw): Handle printing empty structure. + + * ls-mat5.cc (read_mat5_binary_element): Allow reading of sparse + elements when nnz doesn't equal nzmax. + + 2006-01-10 David Bateman + + * DLD-FUNCTIONS/sparse.cc (sparse_find): Use Sparse::nonzero() + rather than Sparse::nnz(), due to possibility of overallocation + of memory. + + 2006-01-06 John W. Eaton + + * oct-map.cc (Octave_map::transpose): Avoid GCC 3.3.x parse error. + + 2005-12-14 John W. Eaton + + * oct-stream.cc (octave_stream::invalid_stream_error): Delete. + * oct-stream.h (octave_stream::stream_ok): Don't fail with error. + + 2005-12-14 David Bateman + + * DLD-FUNCTIONS/regexp.cc: New file. + + * DLD-FUNCTIONS/dispatch.cc: Update tests for string/sq_string + differences. + + * error.cc (Vquiet_warning): New variable. + (vwarning): Use Vquiet_warning to prevent warning output. + (Fwarning): Include "quiet" option to Fwarning function. + Assign retval when using "query". Typo in error message. + (Flastwarn): Clear warning_state when using Flastwarn to probe warning + message. + + * ov-struct.cc: Update Fstruct tests for change in error output. + + * Makefile.in: Include regexp when needed with appropriate libraries. + + 2005-12-13 David Bateman + + * Makefile.in: Change references to gplot.l to __gnuplot_raw__.l. + * DLD-FUNCTIONS/__gnuplot_raw__.l: Rename from DLD-FUNCTIONS/gplot.l. + Remove all references to deprecated gplot, gsplot, graw, gset and + gshow functions. + * help.cc (static help_list keywords[]): Remove gsplot and gplot. + + * ls-oct-ascii.cc (save_three_d): Don't strip Inf or NaN. + (save_ascii_data_for_plotting): Ditto. + + 2005-12-13 John W. Eaton + + * oct-stream.cc (octave_stream_list::do_insert): Check open state + of stream in list instead of whether stream state is OK. + + 2005-12-12 David Bateman + + * OPERATORS/op-struct.cc (transpose): New function. + (install_struct_ops): Install it. + + * oct-map.cc (Octave_map::transpose): New function. + * oct-map.h: Provide decl. + + 2005-12-08 John W. Eaton + + * Cell.cc (Cell::column): New function. + * pt-loop.cc (DO_ND_LOOP): Simplify. + (simple_for_loop_command::eval): Correctly handle N-d numeric and + cell arrays when only the first dimension is 0. + + 2005-12-07 John W. Eaton + + * lex.l (NL): Also accept '\r'. + + * error.cc (Vbacktrace_on_warning, warning_options, + Vlast_warning_id, Vlast_error_id): New file-scope variables. + (Vwarning_frequency, Vwarning_option): Delete unused variables. + (set_warning_option): Delete unused function. + (Fwarning): Update for compatibility. Use DEFCMD, not DEFUN. + (warning_enabled, check_state): New functions. + (warning (const char *fmt, ...)): Use it. + (init_warning_options): New function. + (symbols_of_error): Call it. + (vwarning, Flastwarn): Handle Vlast_warning_id. Improve compatibility. + (handle_message): New arg, ID. Change all callers. + (vwarning, verror, error_1): New arg, ID. Change all callers. + (verror, Flasterr): Handle Vlast_error_id. Improve compatibility. + + * error.cc (message_with_id, usage_with_id, warning_with_id, + error_with_id, parse_error_with_id): New functions. + (error_2, warning_1, usage_1): New functions. + * error.h (message_with_id, usage_with_id, warning_with_id, + error_with_id, parse_error_with_id): Provide decls. + + 2005-11-30 John W. Eaton + + * DLD-FUNCTIONS/schur.cc (Fschur): Doc string fix. + From Jorge Barros de Abreu . + + 2005-11-28 John W. Eaton + + * syscalls.cc (Funame): New function. + + 2005-11-21 John W. Eaton + + * pr-output.cc (pr_int): Fix thinko in byte-swapping for bit format. + + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): + Use C++ static_cast instead of C-style casts. + + 2005-11-21 William Poetra Yoga H + + * DLD-FUNCTIONS/cellfun.cc (Fcellfun): + Docstring and error message fixes. + + 2005-11-17 John W. Eaton + + * DLD-FUNCTIONS/minmax.cc (MINMAX_BODY): Don't cast arg1 to + const octave_complex_matrix&. + + 2005-11-16 John W. Eaton + + * Makefile.in (PKG_ADD.inst): New target. + (install-oct): Depend on it. + (clean): Remove it. + + * mk-pkg-add: New option --install. Don't use --prefix option. + Delete obsolete comments. + + * Cell.cc (Cell::index): Indexing with () is a no-op, not an error. + * oct-map.cc (Octave_map::index): Likewise. + * ov-base-mat.cc (octave_base_matrix::do_index_op): Likewise. + * ov-base-sparse.cc (octave_base_sparse::do_index_op): Likewise. + * ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal): + Likewise. + + 2005-11-11 John W. Eaton + + * Makefile.in (install-oct): Fix thinko in previous change. + + * version.h (OCTAVE_VERSION): Now 2.9.4 + (OCTAVE_API_VERSION): Now api-v17. + + * variables.cc (symbol_out_of_date): Check for autoloads here too. + + * Makefile.in (PKG_ADD): Depend on $(DLD_DEF_FILES), not $(DLD_SRC). + (%.df : %.cc): Also insert PKG_ADD commands in .df files. + (install-oct): Generate PKG_ADD file for install directory here. + Don't depend on PKG-ADD. No need to make .oct file links. + (clean): No need to delete links. + (stamp-oct-links): Delete target. + (distclean): No need to remove stamp-oct-links. + (all): Depend on $(OCT_FILES), not stamp-oct-links. + + * mk-pkg-add: New file. + * Makefile.in (DISTFILES): Add it to the list. + + * mk-oct-links: Delete. + * Makefile.in (DISTFILES): Remove it from the list. + + 2005-11-10 John W. Eaton + + * ov-str-mat.h (octave_char_matrix_str::permute, + octave_char_matrix_str::resize): New functions. + (octave_char_matrix_sq_str::reshape, + octave_char_matrix_sq_str::permute, + octave_char_matrix_sq_str::resize): New functions. + + * OPERATORS/op-str-str.cc, OPERATORS/op-str-s.cc, + OPERATORS/op-str-m.cc: Use DEFNDCHARCATOP_FN. + + * data.cc (do_cat): No need to handle character arrays specially here. + + * ops.h (DEFNDCHARCATOP_FN): New macro. + * OPERATORS/op-int.h (OCTAVE_INT_CHAR_CONCAT_FN, + OCTAVE_CHAR_INT_CONCAT_FN, OCTAVE_INSTALL_INT_CHAR_CONCAT_FN, + OCTAVE_INSTALL_CHAR_INT_CONCAT_FN): New macros. + * OPERATORS/op-int-concat.cc: Use them do define char/int op functions. + (install_int_concat_ops): Install char/int concat ops. + + * ov-scalar.h (class octave_scalar): Provide extractors + for all int array types and char array type. + + 2005-11-09 John W. Eaton + + * ov-bool-mat.h (class octave_bool_matrix): Provide extractors + for all int array types and char array type. + * ov-bool.h (class octave_bool): Likewise. + + * ov-intx.h (class OCTAVE_VALUE_INT_MATRIX_T): Provide extractors + for all int array types and char array type. + (class OCTAVE_VALUE_INT_SCALAR_T): Provide extractors for all int + scalar and array types and char array type. + + * pt-mat.cc (tm_const::class_nm): New data member. + (tm_const::tm_const): Initialize it. + (tm_const::class_name): New function. + (tm_row_const::tm_row_const_rep::class_nm): New data member. + (tm_row_const::tm_row_const_rep::tm_row_const_rep): Initialize it. + (tm_row_const::class_name): New function. + (get_concat_class): New function. + (tm_row_const::tm_row_const_rep::do_init_element): Use it. + (tm_const::init): Use it. + + 2005-11-07 John W. Eaton + + * strfns.cc (Fstrcmp): If args are not strings or cell arrays of + strings, return false. + + 2005-11-01 John W. Eaton + + * Makefile.in (oct-gperf.h): Avoid extra temporary file. + (distclean): Delete oct-errno.cc here. + From Quentin Spencer . + + 2005-11-01 Quentin Spencer + + * DLD-FUNCTIONS/spchol.cc: Use C++ true/false instead of + preprocessor defined TRUE/FALSE. + * Makefile.in (DISTFILES): Add mk-errno-list to the list. + + 2005-10-30 John W. Eaton + + * DLD-FUNCTIONS/gplot.l (gnuplot::set_gnuplot_exe, + gnuplot::do_set_gnuplot_exe): New functions. + (gnuplot_binary): Call gnuplot::set_gnuplot_exe here. + + * DLD-FUNCTIONS/gplot.l (gnuplot::set_gnuplot_use_title_option, + gnuplot::do_set_gnuplot_use_title_option): New functions. + (gnuplot_use_title_option): + Call gnuplot::set_gnuplot_use_title_option here. + + 2005-10-27 James R. Van Zandt + + * mappers.cc: Doc fix for lgamma. + * DLD-FUNCTIONS/gammainc.cc (Fgammainc): Doc fix. + + 2005-10-27 John W. Eaton + + * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Declare mrowsA volatile. + + * pt-mat.cc (tm_row_const::tm_row_const_rep::tm_row_const_rep): + Ensure that we always have at least two dimensions here. + (tm_const::tm_const): Likewise. + (tm_const::rows, tm_const::columns): Simplify. + (tm_row_const::rows, tm_row_const::columns)): Simplify. + + 2005-10-26 John W. Eaton + + * oct-procbuf.cc (octave_procbuf::open): Cast 0 to void * to avoid + new g++ warning. + * toplev.cc (Fsystem): Likewise. + + Changes for GCC 4.1, tip from Arno J. Klaassen + : + + * ov.h (do_unary_op (octave_value::unary_op, const octave_value&)): + Publish externally used friend function. + (do_unary_op (octave_value::unary_op, const octave_value&, + const octave_value&)): Likewise. + + 2005-10-25 David Bateman + + * data.cc (do_cat): called with 2 args, should return args(1) + for compatibility. + + 2005-10-23 David Bateman + + * Makefile.in (DLD_XSRC): Add spchol.cc. + * sparse-xpow.cc (xpow): Change call to sparse inverse to include + SparseType. + * DLD-FUNCTIONS/colamd.c (Fsymbfact): Remove. + * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): 64-bit fixes and fix + for permutation of upper/lower triangular matrices. + * DLD-FUNCTIONS/splu.cc (Fspinv): Implemtation of sparse inverse + function. + * DLD-FUNCTIONS/spchol.cc (sparse_chol): Static function for core of + the sparse cholesky factorization. + (Fspchol): New function for sparse cholesky factorization R'R. + (Fsplchol): New function for sparse cholesky factorization LL'. + (Fspcholinv): New cholesky inverse function. + (Fspchol2inv): New cholesky inverse function. + (Fsymbfact): Implementation of symbolic factorization using cholmod. + + 2005-10-21 John W. Eaton + + * DLD-FUNCTIONS/gplot.l (read_until): Special case STRING. + (handle_string): Restore function. + ("'", "\""): Call handle string when matching these tokens.. + + 2005-10-20 John W. Eaton + + * pt-mat.cc (tm_row_const::all_real): New data member. + (tm_row_const::all_real_p): New function. + (tm_row_const::tm_row_const_rep::all_real): New data member. + (tm_row_const::tm_row_const_rep::all_real_p): New function. + (tm_row_const::tm_row_const_rep::init): Set all_real and all_cmplx + to true here. + (tm_row_const::all_cmplx): Rename from is_cmplx. + (tm_row_const::all_complex_p): Rename from complex_p. + (tm_row_const::tm_row_const_rep::all_cmplx): Rename from is_cmplx. + (tm_row_const::tm_row_const_rep::all_complex_p): Rename from complex_p. + (tm_row_const::tm_row_const_rep::init): Set all_real and all_cmplx + to true here. + (SINGLE_TYPE_CONCAT): New macro. + (tree_matrix::rvalue): Use it for single type cases. + + * pt-mat.cc: Sprinkle with OCTAVE_QUIT. + + 2005-10-18 John W. Eaton + + * octave.cc (octave_main): If not embedded, call clean_up_and_exit + instead of return to exit function. + + 2005-10-18 Arno J. Klaassen + + * DLD-FUNCTIONS/gplot.l (gnuplot::handle_title): + Omit class name from declaration. + + 2005-10-17 Keith Goodman + + * DLD-FUNCTIONS/sort.cc: Doc string fix. + + 2005-10-17 John W. Eaton + + * oct-conf.h.in (OCTAVE_CONF_F77_FLOAT_STORE_FLAG): Substitute + OCTAVE_CONF_F77_FLOAT_STORE_FLAG here. + + 2005-10-14 John W. Eaton + + * mk-errno-list: New script. + * Makefile.in (oct-errno.cc): Use it. + + 2005-10-13 John W. Eaton + + * DLD-FUNCTIONS/gplot.l (F__gnuplot_raw__): + Call print_usage with correct function name. + + 2005-10-12 John W. Eaton + + * DLD-FUNCTIONS/gplot.l: Major cleanup. + Built-in variable gnuplot_has_frames no longer necessary. + (gnuplot): New class to manage multiple gnuplot processes. + (handle_string): Delete. It was only used for the case of + __gnuplot_plot__ "file", which is no longer allowed. + + 2005-10-05 John W. Eaton + + * variables.cc (symbol_exist): Chekck for autoloaded functions. + + * parse.y (Fautoload): New function. + (autoloading, autoload_map): New static variables. + (load_fcn_from_file, frob_function): Handle autoloading. + (lookup_autoload): New function. + (get_help_from_file): New args, symbol_found and include_file_info. + Change all callers. + + 2005-10-05 David Bateman + + * help.cc (try_info): format in command string for mingw. + + 2005-09-30 John W. Eaton + + * ov.cc (octave_value::~octave_value): No need to set rep to zero + after deleting. + + 2005-09-29 John W. Eaton + + * syscalls.cc (mk_stat_map): Store mode too. + (FS_ISREG, FS_ISDIR, FS_ISCHR, FS_ISBLK, FS_ISFIFO, FS_ISLNK, + FS_ISSOCK): New functions. + (Fstat): Fix docstring. + + 2005-09-28 John W. Eaton + + * oct-stream.cc (printf_value_cache::double_value): Force + character strings to be converted to ASCII equivalents. + + * data.cc (Fcomplex): New function. + + * ov-type-conv.h (OCTAVE_TYPE_CONV_BODY3): Return arg unchanged if + class name is same as name of conversion. + + * dirfns.cc (Frmdir, Fmkdir): For compatibility, return true for + success and false for failure. Return third value, msgid. + (Frmdir): Handle second arg for recursive behavior. + + 2005-09-23 John W. Eaton + + * parse.y (load_fcn_from_file): Don't look in path if file is + absolute and has .oct or .m extension. + + * utils.cc (Ferrno_list): New function. + + * oct-errno.h, oct-errno.cc.in: New files. + * Makefile.in: Add them to the appropriate lists. + (oct-errno.cc): New rule. + ($(OPT_HANDLERS)): Use $(PERL) instead of just perl. + + * utils.cc: Include oct-errno.h. + (Ferrno): Rename from FERRNO. Allow errno to be set. Allow + lookups of errno codes by name and access to structure containing + all errno names and codes. + + 2005-09-19 John W. Eaton + + * pt-bp.cc (tree_breakpoint::visit_index_expression): + Avoid dereferencing invalid pointer. + + 2005-09-19 David Bateman + + * Makefile.in (OCT_LINK_DEPS): Include UFsparse libraries. + + * DLD_FUNCTIONS/__glpk__.cc (F__glpk__): Replace isinf with + xisinf. Allow sparse matrices as second argument. + + * syscalls.cc: Typos. + * sysdep.cc: Typos. + + 2005-09-16 John W. Eaton + + * syscalls.cc (Fwaitpid): Doc fix. Expect WNOHANG, WUNTRACED, + WCONTINUED as args instad of int values. + Return values are now [pid, status, msg] instad of [pid, msg]. + (WIFEXITED, WEXITSTATUS, WIFSIGNALED, WTERMSIG, WCOREDUMP, + WIFSTOPPED, WSTOPSIG, WIFCONTINUED): New functions. + (symbols_of_syscalls): DEFCONST WNOHANG, WUNTRACED, and WCONTINUE. + + * oct-procbuf.cc (octave_procbuf::close): Call octave_syscalls::waitpid + here instead of calling waitpid directly. + * sighandlers.cc (OCL_REP::wait): Likewise. + + * sysdep.h [__MINGW32__]: Don't define waitpid here. + + 2005-09-15 John W. Eaton + + * sysdep.h [__MINGW32__]: Move to definition of waitpid sysdep.h. + + * sysdep.cc, sighandlers.cc: Rename all win32_ symbols to w32. + + * sysdep.cc (w32_set_quiet_shutdown): New function. + * sysdep.h: Provide decl. + * sysdep.cc (MINGW_signal_cleanup): Use it. + * sighandlers.cc (octave_catch_interrupts): Use it. + + * sysdep.h: Provide decl. + (MINGW_SIGNAL_CLEANUP): New macro. + (USE_W32_SIGINT): Move definition here. + * sighandlers.cc: From here. + + * DLD-FUNCTIONS/cellfun.cc (Fnum2cell): Use print_usage, not usage. + * DLD-FUNCTIONS/colamd.cc (Fcolamd, Fsymamd, Fetree): Likewise. + (Fcolamd, Fsymamd) [! HAVE_COLAMD]: Return empty octave_value_list + object. + + * sysdep.cc (sysdep_cleanup): New function. + Move w32 clean up code here. + * toplev.cc (clean_up_and_exit): From here. + Call sysdep_cleanup here. + + 2005-09-15 David Bateman + + * Makefile.in (DLD_XSRC): Add ccolamd.cc + (OCTAVE_LIBS): Add LIBGLOB. + (OCT_LINK_DEPST, octave): Add AMD, COLAMD, CCOLAMD and CHOLMOD + libraries. + * default.cc (set_default_exec_path, set_default_path, + maybe_add_default_load_path, LOADPATH): Use SEPCHAR_STR and SEPCHAR. + * help.cc (display_help_text): Exclude /dev/null on mingw. + * oct-procbuf.cc (W32POPEN, W32PCLOSE): Macros for cygwin/mingw. + (octave_procbuf::open, octave_probuf::close): Use them. + * sighandler.cc (user_abort): New function with core of old + sigint_handler. + (sigint_handler): Simplify and specialize for w32. + (w32_sigint_handler): W32 version of sigint handler. + (octave_catch_interrupts): Initialize w32 siginit handler. + * sysdep.cc (MINGW_init): New function. + (sysdep_init): Use it. + * toplev.cc (clean_up_and_exit): Clean w32 signalling shutdown. + * DLD-FUNCTIONS/cellfun.cc (Fnum2cell): New function. + * DLD-FUNCTIONS/colamd.cc (Fcolamd, Fsymamd): Allow conditional build. + Include oct-sparse.h rather than colamd.h. + * DLD-FUNCTIONS/ccolamd.cc: New file with Fccolamd a Fcsymamd. + + 2005-09-14 John W. Eaton + + * ov-complex.cc (octave_complex::try_narrowing_conversion): + Don't drop -0i. + * ov-cx-mat.cc (octave_complex_matrix::try_narrowing_conversion): + Likewise. + + 2005-09-14 Daniel + + * DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/chol.cc, + DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fftw_wisdom.cc, utils.cc: + Doc string fixes. + From Jorge Barros de Abreu . + + 2005-09-14 David Bateman + + * help.cc (Flookfor, print_lookfor, first_help_sentence): + New functions. + + 2005-09-07 Bill Denney + + * dirfns.cc (Fglob): Doc fix. + + 2005-09-07 John W. Eaton + + * ov-struct.cc (Fstruct): Allow struct (zeros (0, N)) to create a + 0xN struct array. + + 2005-09-04 David Bateman + + * DLD-FUNCTIONS/colamd.c (COLAMD_NAME, SYMAMD_NAME): New macros + (symetree, make_set, link, finf, etdfs, TreePostorder, coletree, + Fcolamd, Fsymamd, Fetree): Update for 64-bit indexing and colamd + versin 2.4. + + 2005-09-01 John W. Eaton + + * variables.cc (symbol_out_of_date): Don't check nested functions. + + 2005-08-31 John W. Eaton + + * oct-map.cc (Octave_map::index): Don't crash if index list is empty. + * ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal): + Likewise. + + * oct-map.h (Octave_map::ndims): New function. + + 2005-08-30 John W. Eaton + + * ov-range.h (octave_range::permute): New function. + + * ov-struct.cc (octave_struct::load_ascii, + octave_struct::load_binary, octave_struct::load_hdf5): Try harder + to read old-style files correctly. + + 2005-08-25 David Bateman + + * OPERATORS/op-sm-m.cc, OPERATORS/op-sm-cm.cc, OPERATORS/op-scm-m.cc, + OPERATORS/op-scm-cm.cc, OPERATORS/op-m-sm.cc, OPERATORS/op-m-scm.cc, + OPERATORS/op-cm-sm.cc, OPERATORS/op-cm-scm.cc: Use mixed matrix/sparse + multiply operator rather than casting sparse to matrix. + + 2005-07-18 John W. Eaton + + * strfns.cc (Fstrcmp): New function from Sᅵren Hauberg + and Tom Holroyd . + Adapt to Octave conventions. + + 2005-07-11 David Bateman + + * ov-fc-inline.cc (Fvectorize): Allow string arguments + + 2005-07-08 John W. Eaton + + * DLD-FUNCTIONS/gplot.l (Fhold, Fishold): Delete. + (clear_before_plotting): Delete static variable. + Delete PKG_ADD line for hold. + + 2005-07-07 John W. Eaton + + * pr-output.cc (pr_plus_format): Delete "static" from template decl. + + * oct-stream.cc (octave_scan): Delete explicit instantiation of + octave_scan since a specialization is provided. + + * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Include + , for std::transform decl. Use std qualifier for + transform and tolower. + + 2005-07-05 Antoine Moreau + + * DLD-FUNCTIONS/betainc.cc (Fbetainc): Fix doc string to match + function definition.. + + 2005-07-05 Mats Jansson + + * file-io.cc (Fmkstemp): Check if second argument is true + before marking file for deletion. + + 2005-07-05 John W. Eaton + + * ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal): + Rename from char_matrix_str::do_index_op. New arg, type. + ov-str-mat.h (octave_char_matrix_str::do_index_op): Define using + do_index_op_internal. + (octave_char_matrix_sq_str::do_index_op): New function. + + 2005-07-01 John W. Eaton + + * parse.y (end_error): Also handle end_try_catch case. + + 2005-06-17 John W. Eaton + + * help.cc (help_from_list, help_from_symbol_table, + help_from_file): New arg, symbol_found. + (builtin_help): Use symbol_found arg to determine whether help + text is empty or symbol is not available. + + * symtab.cc (symbol_record::print_info): Print more info. + + * DLD-FUNCTIONS/dispatch.cc (Fdispatch_help): Delete. + (dispatch_record): Don't prepend "<>" to help text. + (Fdispatch): Don't setup dispatched help. + + * help.cc (extract_help_from_dispatch): New function. + (help_from_symbol_table): Use it. + * defun.cc (print_usage): Use it. + + * toplev.cc (octave_config_info): Include localapifcnfiledir and + localapioctfiledir in the list. + + * symtab.h (symbol_record::alias): New arg, mark_to_clear. + (symbol_record::aliases_to_clear): New data member. + (symbol_record::push_alias_to_clear): New function. + * symtab.cc (symbol_record::alias): If mark_to_clear is true, push + this pointer on aliases_to_clear stack for s. + (symbol_record::clear): Also clear aliases_to_clear_stack. + + * defun.cc (install_dld_function): Create full file name alias in + fbi_sym_tab and hide it from view. + Don't call protect or make_eternal on sym_rec. + + * variables.cc (fcn_out_of_date): New function. + (symbol_out_of_date): Also check for symbol using full function + file name. + + * symtab.h (symbol_record::visible): New data member. + (symbol_record::hide, symbol_record::show, symbol_record::is_visible): + New functions. + + * symtab.h (symbol_record::maybe_delete_def): New private function. + * symtab.cc (symbol_record::clear, symbol_record::alias, + symbol_record::pop_context, + symbol_record::define (octave_function *, unsigned int)): Use it. + (symbol_table::symbol_list): Only include visible symbols in list. + + * parse.y (frob_function): Hide nested function names. + + * parse.y (frob_function): Create full file name alias in + fbi_sym_tab and hide it from view. + * defun.cc (install_dld_function): Likewise. + + 2005-06-16 John W. Eaton + + * ov-dld-fcn.cc (octave_dld_function): Check Voct_file_dir to see + if function is system file, Vfcn_file_dir. + * defaults.cc (set_default_oct_file_dir): New function. + (install_defaults): Call it. + (Voct_file_dir): New global variable. + * defaults.h.in (Voct_file_dir): Provide decl. + + * variables.cc (function_out_of_date_internal): Use + Vignore_function_time_stamp only to avoid calling stat. + (symbol_out_of_date): Don't check Vignore_function_time_stamp here. + (function_out_of_date): Rename from function_out_of_date_internal. + + * defaults.cc (loadpath): Don't do anything if value is unchanged. + If loadpath changes, also update Vlast_prompt_time. + + 2005-06-14 John W. Eaton + + * pt-mat.cc (Vwarn_string_concat): Default value now false. + (symbols_of_pt_mat): Change initial value here as well. + + * ls-mat5.cc, mappers.cc, oct-stream.cc, pr-output.cc: Change all + uses of octave_is_NaN_or_NA to xisnan. + + 2005-06-14 Keith Goodman + + * input.cc (get_user_input): Renamed debug commands to dbnext, + dbstep, and dbcont. + * pt.cc: Renamed dbg_next to dbnext in comment string. + * pt.h: Renamed dbg_next to dbnext in comment string. + + 2005-06-14 David Bateman + + * pt-arg-list.cc (F__end__): Return 1 for dimensions larger than ndim. + + 2005-06-14 John W. Eaton + + * ls-mat5.cc (save_mat5_array_length): Special case for NaN, NA, + and Inf values. Only check if abs value is greater than FLT_MAX. + + 2005-06-09 David Bateman + + * ls-mat5.cc (save_mat5_element_length): 1 element strings will be + saved in a compressed format, so calculate the length accordingly. + + 2005-05-30 David Bateman + + * ls-mat5.cc (read_mat5_binary_element): Don't convert to string + if matrix is not of type mxCHAR_CLASS. + + 2005-05-23 John W. Eaton + + * file-io.cc (Ffopen): Don't fail with internal error message if + we fail to create a valid stream object. + (do_stream_open (const std::string&, const std::string&, + const std::string&, int&): Always create octave_stream object, + even if file pointer returne from fopen is 0. + + * load-save.cc (gripe_file_open): New function. + (get_file_format, Fload, Fsave): Use it. + + * DLD-FUNCTIONS/sort.cc (mx_sort, mx_sort_indexed): Return + appropriately sized empty values for empty args. + + * debug.cc (Fdbwhere, get_user_function): Look at + curr_caller_function, not curr_function, since function is now set + inside mapper, built-in (and therefore dld) functions too. + + 2005-05-21 John W. Eaton + + * pr-output.cc, pr-output.h (Vprint_empty_dimensions): Now extern. + * ov-cell.cc (octave_cell::print_raw): Conditionally print + dimensions of empty 2-d cell arrays. + + * DLD-FUNCTIONS/sort.cc (mx_sort, mx_sort_indexed): Return empty + values for empty args. + + * lex.l (handle_string): If single-quote string, \ and . have no + special meaning. + + 2005-05-18 John W. Eaton + + * pt-colon.cc (tree_colon_expression::make_range): Don't require + scalars values as range components. + + * version.h (OCTAVE_VERSION): Now 2.9.3 + (OCTAVE_API_VERSION): Now api-v16. + + * ov-base-sparse.cc (octave_base_sparse::print_raw): + Make spacing of output consistent with other parts of Octave. + + * DLD-FUNCTIONS/rand.cc (do_rand): Chop trailing singelton + dimensions before generating array. + + 2005-05-17 John W. Eaton + + * ov.cc (install_types): Don't call octave_stream::register_type. + * ov.h, ov.cc (octave_value::octave_value (const octave_stream&, + int): Delete constructor. + (octave_value::is_stream, octave_value::stream_value, + octave_value::stream_number): Delete functions. + * ov-base.h (octave_base_value::is_stream): Delete function. + * ov-base.h, ov-base.cc (octave_base_value::stream_value, + octave_base_value::stream_number): Delete functions. + * file-io.cc (Fisstream): Delete function. + * op-file.h, op-file.cc, OPERATORS/op-fil-sbm.cc, + OPERATORS/op-fil-scm.cc, OPERATORS/op-fil-sm.cc, + * OPERATORS/op-fil-b.cc, OPERATORS/op-fil-bm.cc, + OPERATORS/op-fil-cm.cc, OPERATORS/op-fil-cs.cc, + OPERATORS/op-fil-m.cc, OPERATORS/op-fil-s.cc, + OPERATORS/op-fil-lis.cc, OPERATORS/op-fil-rec.cc, + OPERATORS/op-fil-str.cc: Delete files. + * Makefile.in (OP_XSRC, SPARSE_OP_XSRC): Delete op-fil-*.cc from + the lists. + (OV_INCLUDES): Delete op-file.h from the list. + (OV_SRC): Delete op-file.cc from the list. + * oct-stream.cc, oct-stream.h (octave_stream_list::insert, + octave_stream_list::do_insert): Return stream number instead of + octave_value. + + 2005-05-16 David Bateman + + * ls-mat.cc (save_mat5_binary_element): Increase size of + compression buffer. + (load_mat5_binary_element): Allow ASCII encoded as UTF8, + and give error messages for multi-byte UTF8 and UTF16 and UTF32 + encodings. + + * ls-hdf5.h (H5T_NATIVE_IDX): New macro defining native indexing + type for HDF5 files + + * ls-hdf5.cc (save_hdf5_empty, load_hdf5_empty): Use + H5T_NATIVE_IDX to allow 64-bit indexing. + * ov-bool-sparse.cc (save_hdf5, load_hdf5): ditto. + * ov-re-sparse.cc (save_hdf5, load_hdf5): ditto. + * ov-cx-sparse.cc (save_hdf5, load_hdf5): ditto. + * ov-cell.cc (save_hdf5, load_hdf5): ditto. + + * load-save.cc (parse_save_options): Remove -nozip option. + (Fsave): If user defines file format, ignore completely the default + file format options. + + 2005-05-12 John W. Eaton + + * Makefile.in (oct-gperf.h): Try harder to cause Make to exit here + if gperf is missing or fails to create a valid file. + + 2005-05-10 John W. Eaton + + * lex.l ({SNLCMT}*\]{S}*): If whitespace was gobbled, + unput SPC before returning the token. + ({SNLCMT}*\}{S}*): Likewise. + + 2005-05-09 John W. Eaton + + * parse.y (except_command): Make catch clause optional in try + statements. + * pt-except.cc (tree_try_catch_command::eval): + Always buffer error messages. + + 2005-05-06 John W. Eaton + + * ov-struct.cc (octave_struct::save_ascii, + octave_struct::save_binary, octave_sruct::save_hdf5): + Always save cell array. + (octave_struct::load_ascii, octave_struct::load_binary, + octave_sruct::load_hdf5): Try to read old-style files correctly. + + * DLD-FUNCTIONS/__qp__.cc (qp): Use chol2inv to compute inverse + from Cholesky factors. + (cholinv): Delete. + + * DLD-FUNCTIONS/chol.cc (Fcholinv): New function. + (Fchol2inv): New function. + + 2005-05-05 Keith Goodman + + * ov-usr-fcn.cc (Fnargout, Fnargin): Update doc strings. + * help.cc (keywords): Update doc strings for varargin, varargout. + + 2005-05-05 John W. Eaton + + * oct-stream.cc (BEGIN_S_CONVERSION): Correctly handle width + specifiers. + + 2005-05-04 John W. Eaton + + * ls-mat5.cc (read_mat5_binary_element): Implement reading of N-d + structure arrays. + + * ov-struct.cc (octave_struct::load_hdf5, + octave_struct::load_binary, octave_struct::load_ascii): Assign + cell_value to map slot, not octave_value containing the cell. + + 2005-05-02 John W. Eaton + + * error.cc (Flasterr): Don't access argv if an error occurs when + creating it. + + * mkgendoc (main): Print header message. + + 2005-05-02 Bill Denney + + * data.cc, defaults.cc, DLD-FUNCTIONS/qz.cc, file-io.cc, + sighandlers.cc, syscalls.cc: Docstring fixes. + + 2005-05-02 John W. Eaton + + * pr-output.cc (octave_print_internal (std::ostream&, + const Range&, bool, int)): Don't print newline at end of broken + rows (that is handled by pr_col_num_header). + From Keith Goodman . + + * Makefile.in (octave$(EXEEXT)): List $(UMFPACK_LIBS) ahead of + $(BLAS_LIBS). + (OCTAVE_LIBS): Include $(GLPK_LIBS) in the list if dynamic linking + is not enabled. + From Dmitri A. Sergatskov . + + 2005-05-02 John W. Eaton + + * oct-map.h, oct-map.cc (Octave_map::seek, Octave_map::contents): + New non-const versions. + (Octave_map::assign (const octave_value_list&, + const std::string&, const Cell&)): Allow both tmp RHS and LHS to + be resized. For clarity, always resize to new_dims. + + 2005-05-02 David Bateman + + * ov-re-sparse.cc, ov-cx-sparse.cc (load_binary): read save_type into + one byte variable. + + 2005-04-29 John W. Eaton + + * oct-stream.cc (DO_LITERAL_CONVERSION): Cast fmt[i] to unsigned + char for comparison. + + * c-file-ptr-stream.h (c_file_ptr_stream): New template class, + converted from i_c_file_ptr_stream. + (i_c_file_ptr_stream, o_c_file_ptr_stream, io_c_file_ptr_stream): + Now typedefs. + (i_c_zfile_ptr_stream, o_c_zfile_ptr_stream, io_c_zfile_ptr_stream): + New typedefs. + * c-file-ptr-stream.h, c-file-ptr-stream.cc (c_zfile_ptr_buf): + New class. + + * oct-stdstrm.h (class octave_tstdiostream): New template class, + converted from octave_stdiostream. + (octave_stdiostream): Now a typedef. + [HAVE_ZLIB] (octave_zstdiostream): New a typedef. + * oct-stdstrm.cc: Delete. + * Makefile.in (DIST_SRC): Remove it from the list. + + 2005-04-29 David Bateman + + * Makefile.in: Add matrix_type.cc and spkron.cc to DLD_XSRC. + + * ls.mat.cc (read_mat5_binary_element): Allow for endian change + for compressed data elements. + + * ov-base-sparse.cc (assign): Invalidate matrix type. + + * ov-base-sparse.cc (SparseType sparse_type (void), + SparseType sparse_type (const SparseType&): + Functions to read and set sparse matrix type. + + * ov-bool-sparse.cc (load_binary): Remove third argument. + (load_hdf5): Cast hsize_t comparisions with int to avoid warning. + * ov-cx-sparse.cc (load_hdf5): Ditto. + * ov-re-sparse.cc (load_hdf5): Ditto. + + * ov-re-sparse.cc (convert_to_str_internal): Add third argument + for string type. + * ov-re-sparse.h (convert_to_str_internal): Adject declaration. + + * sparse-xdiv.cc (xdiv, xleftdiv): Pass SparseType as third + argument, use it and return it to allow caching of type. + * sparse-xdiv.h (xdiv, xleftdiv): Change declarations for third + argument of type SparseType. + + * DLD-FUNCTIONS/luinc.cc (Fluinc): Use type_name and not + class_name to test for real/complex sparse matrices. + Set matrix type. + + * DLD-FUNCTIONS/splu.cc (Fsplu): Set matrix type. + + * OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, + OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, + OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, + OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc, + OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc, + OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc, + OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc, + OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc, + OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc, + OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc (div, ldiv): + Pass and recache SparseType wirh xdiv/xleftdiv. + + 2005-04-29 John W. Eaton + + * file-io.cc (maybe_warn_interface_change): Delete function. + (fopen_mode_to_ios_mode): Don't call it. + + 2005-04-27 John W. Eaton + + * ov-fcn-handle.cc (octave_fcn_handle::subsref): + Check whether function referenced by handle is out of date. + (Ffunctions): Tag nameless user function as "command-line". + + * variables.cc (symbol_out_of_date (octave_fucntion *)): New function. + (function_out_of_date): New function. + * parse.y (load_fcn_from_file (const std::string&, bool)): + New function. + + * DLD-FUNCTIONS/gplot.l (gnuplot_init): New function to handle + initialization. If builtin variables have already been installed, + simply update our cached values. + (F__gnuplot_init__): Call gnuplot_init to do all the real work. + (Fclearplot, Fcloseplot, Fhold, Fishold, Fpurge_tmp_files, + F__gnuplot_raw__, F__gnuplot_set__, F__gnuplot_plot__, + F__gnuplot_splot__, F__gnuplot_replot__, Fgplot, Fgsplot, Fgraw, + Fgset, Fgshow): Call gnuplot_init before doing anything. + + * parse.y: (safe_fclose): Delete comment list to avoid memory leak. + (parse_and_execute (FILE *)): Also save and restore global_command. + + 2005-04-26 John W. Eaton + + * mkbuiltins (VAR_FILES): Expect $(VAR_FILES) to have .df suffix. + + * Makefile.in (clean): Also remove $(DLD_PICOBJ). + Use mk-oct-links --delete to remove links to .oct files. + Remove $(DOC_FILES) not $(DEF_FILES) and $(VAR_FILES). + + * mk-oct-links (mk-oct-links): Handle --delete option. + Rename -p option to be --print. Skip nonexistent .df files. + + 2005-04-25 John W. Eaton + + * oct-hist.cc (default_history_file, default_history_size): Now static. + * oct-hist.h: Delete decls. + + * oct-hist.cc (default_history_timestamp_format, + default_history_timestamp_format): New functions. + (Vdefault_history_timestamp_format): New variable. + (symbols_of_oct_hist): DEFVAR it. + (octave_history_write_timestamp): New function. + * oct-hist.h (octave_history_write_timestamp): Provide decl. + * toplev.cc (): call octave_history_write_timestamp here. + * octave.cc (maximum_braindamage): + Bind history_timestamp_format_string here. + + 2005-04-22 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.9.2. + (OCTAVE_API_VERSION): Now api-v15. + + * pager.cc (default_pager): Also append -X. + + * DLD-FUNCTIONS/dispatch.cc (Fdispatch): Dispatch help on "string" + and "sq_string" types. + (dispatch_record): Add extra space to force new paragraph after + each dispatched function name if we are formatting with Texinfo. + Force noindent of preceding "Overloaded function:" tag. + + 2005-04-21 John W Eaton + + * ls-mat5.cc (read_mat5_binary_element): Only read sparse matrix + values if sizeof (int) == sizeof (octave_idx_type). + + * DLD-FUNCTIONS/colamd.cc: These functions only work if + sizeof (int) == sizeof (octave_idx_type). + + * Makefile.in (parse.cc): Expect 14 shift/reduce conflicts. + + * parse.y (USING TITLE WITH AXES COLON OPEN_BRACE CLEAR): + Delete unused tokens. + + * DLD-FUNCTIONS/__qp__.cc (qp): Use octave_idx_type where needed. + + * DLD-FUNCTIONS/__qp__.cc: New file. + * Makefile.in (DLD_XSRC): Add it to the list. + + 2005-04-20 John W. Eaton + + * lex.l (IDENT): Allow $ in identifiers. + * utils.cc (valid_identifier): Likewise. + + 2005-04-19 John W. Eaton + + * toplev.cc (Fsystem): Move enum exec_type declaration to file + scope and rename system_exec_type. Change all uses. + + 2005-04-14 David Bateman + + * load-save.cc (Vdefault_save_format, Voctave_core_file_format): + Delete variables. + (Vdefault_save_options, Voctave_core_file_options): New variables. + (get_save_format): Delete function. + (parse_save_options (const string_vector&, ...), + parse_save_options (const std::string&, ...)): New functions. + (dump_octave_core): Allow save_as_floats to be used. + (dump_octave_core): Parse save options. + (Fsave): Split parsing of options, and default formats. + (default_save_format): Delete function and DEFVAR. + (default_save_options): New function. DEFVAR it. + (octave_core_file_format): Delete function and DEFVAR. + (octave_core_file_options): New function. DEFVAR it. + + * octave.cc (default_save_format): Delete binding + (default_save_options): New bindings + + * Makefile.in: Add luinc.cc to DLD_XSRC. + * DLD-FUNCTIONS/luinc.cc: New file for incomplete LU factorization. + + * ov-bool-sparse.h (index_vector): New function. + * ov-re-sparse.cc (index_vector): Ditto. + * ov-re-sparse.h (index_vector): Definition. + + * ov-mapper.cc (any_element_less_than, any_element_greater_than): + New versions for SparseMatrix + (SPARSE_MAPPER_LOOP_2, SPARSE_MAPPER_LOOP_1, SPARSE_MAPPER_LOOP): + New macros. + (octave_mapper::apply): Add special cases for sparse arguments to + the mapper functions + + * ov-re-sparse.cc (streamoff_array_value): Use octave_idx_type. + (convert_to_str_internal): New function. + * ov-re-sparse.h (convert_to_str_internal): Definition. + + * DLD-FUNCTIONS/sparse.cc (Fsparse): More care for nargin=2 case. + + * DLD-FUNCTIONS/splu.cc (Fsplu): Use octave_idx_type. + + 2005-04-14 John W. Eaton + + * strfns.cc (Fchar): If arg is a dq string, return a dq string. + + * pt-mat.cc (Vwarn_string_concat): New static variable. + (symbols_of_pt_mat): DEFVAR it. + (warn_string_concat): New function. + (maybe_warn_string_concat): New function. + (tree_matrix::rvalue): If all args are single quoted strings, + create a single quoted string object. If all args are strings + (any type), create a double quoted string object. If a mixture of + string types, maybe warn. + (class tm_row_const, class tm_row_const_rep, class tm_const): + Note whether all values are double or single quoted strings. + + * ov.h (octave_value::is_dq_string): New function. + + 2005-04-13 John W. Eaton + + * strfns.cc (Fchar): Create sq_string objects here. + + 2005-04-12 John W. Eaton + + * file-io.cc (Ffprintf, Fprintf, Fsprintf): + Pass octave_value to octave_stream::printf for FMT. + (Fscanf, Fsscanf): Likewise, for octave_stream::scanf and + octave_stream::oscanf. + + * oct-stream.cc, oct-stream.h (octave_stream::printf, + octave_stream::scanf, octave_stream::oscanf): New versions that + accept an octave_value for FMT. + (octave_stream::puts): New version that accepts octave_value for + value to print. + (octave_base_stream::do_scanf): If all_char_conv, force + conversion to string to avoid warning. + + * ov-str-mat.h, ov-str-mat.cc (octave_char_matrix_sq_str): New class. + (octave_char_matrix_dq_str): New typedef. + + * ov.h, ov.cc: All string constructors now take type argument. + + * ov.cc (install_types): Register octave_char_matrix_sq_str. + + * ov.h (octave_value::convert_to_str): New arg, type. + (octave_value::convert_to_str_internal): Likewise. + Change all derived classes. + + * ov.h (octave_value::is_sq_string): New predicate. + + * octave.gperf (__FILE__): Now a DQ_STRING. + + * ls-mat4.cc (read_mat_binary_data): Force sq strings here. + * ls-mat5.cc (read_mat5_binary_element): And here. + + * lex.l ([\;\,]): Return SQ_STRING, not STRING. + ([^#% \t\r\n\;\,\"\'][^ \t\r\n\;\,]*{S}*): Likewise. + (handle_string): Type of string to return depends on delimeter. + + * parse.y (DQ_STRING, SQ_STRING): New token types. + (STRING): Delete token type. + (string): New non-terminal. + (constant): Recognize string here instead of STRING. + (word_list): Likewise. + (opt_sep): Handle DQ_STRING and SQ_STRING. + + * OPERATORS/op-str-m.cc, OPERATORS/op-str-s.cc, + OPERATORS/op-str-str.cc: Define operators for both sq and dq + strings. + + 2005-04-08 John W. Eaton + + * Makefile.in (clean): Use exact filenames instead of *.xxx. + Also remove PKG_ADD. + (DISTFILES): Add gplot.cc to the list. + (maintainer-clean): Remove gplot.cc here. + + * Initial merge of 64-bit changes from Clinton Chee: + + 2005-04-07 John W. Eaton + + * ls-oct-ascii.h, ls-oct-ascii.cc (extract_keyword): Now template + functions defined in the header file. + + * ls-mat5.cc, ov-base-sparse.h, ov-base.h, ov-bool-sparse.cc + ov-cx-sparse.cc, ov-re-sparse.cc, ov.cc, pt-loop.cc, + sparse-xdiv.cc, sparse-xpow.cc, DLD-FUNCTIONS/sparse.cc, + DLD-FUNCTIONS/spdet.cc: + Use octave_idx_type instead of int where needed. + + 2005-03-31 Clinton Chee + + * Cell.cc, Cell.h, data.cc, defaults.cc, dirfns.cc, file-io.cc, + gripes.cc, gripes.h, ls-mat-ascii.cc, ls-mat4.cc, ls-oct-ascii.cc, + oct-map.cc, oct-map.h, oct-obj.cc, oct-obj.h, oct-stream.cc, + oct-stream.h, octave.cc, ops.h, ov-base-mat.cc, ov-base.h, + ov-bool-mat.cc, ov-cell.cc, ov-cs-list.cc, ov-cx-mat.cc, + ov-intx.h, ov-list.cc, ov-mapper.cc, ov-range.cc, ov-range.h, + ov-re-mat.cc, ov-scalar.h, ov-str-mat.cc, ov-struct.cc, ov.cc, + ov.h, pr-output.cc, pt-arg-list.cc, pt-cell.cc, pt-loop.cc, + pt-mat.cc, pt-select.cc, symtab.h, utils.cc, utils.h, xdiv.cc, + xpow.cc: + Use octave_idx_type instead of int where needed. + + 2005-04-01 John W. Eaton + + * toplev.cc (octave_config_info): Add USE_64_BIT_IDX_T to the list. + * oct-conf.h.in (OCTAVE_CONF_USE_64_BIT_IDX_T): Substitute here. + + 2005-03-31 John W. Eaton + + * DLD-FUNCTIONS/sort.cc: Don't use unsigned int for index into + dim_vector, or cast dim to unsigned int. + (Fsort): No need to cast arg before asking for dims. + + * DLD-FUNCTIONS/gcd.cc (Fgcd): Use OCTAVE_LOCAL_BUFFER to allocate + local array of NDArray objects. + + 2005-03-31 Clinton Chee + + * DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc, + DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colloc.cc, + DLD-FUNCTIONS/daspk.cc, DLD-FUNCTIONS/dasrt.cc, + DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/det.cc, + DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/expm.cc, DLD-FUNCTIONS/fft.cc, + DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftn.cc, + DLD-FUNCTIONS/fftw_wisdom.cc, DLD-FUNCTIONS/filter.cc, + DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/fsolve.cc, + DLD-FUNCTIONS/gcd.cc, DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/inv.cc, + DLD-FUNCTIONS/kron.cc, DLD-FUNCTIONS/lu.cc, + DLD-FUNCTIONS/minmax.cc, DLD-FUNCTIONS/quad.cc, + DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/rand.cc, + DLD-FUNCTIONS/schur.cc, DLD-FUNCTIONS/sort.cc, + DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/svd.cc, + DLD-FUNCTIONS/syl.cc: + Use octave_idx_type instead of int where needed. + + 2005-04-06 David Bateman + + * Makefile.in: Link to UMFPACK_LIBS. Add zfstream.{cc,h} to build and + dist files. + + * zfstream.cc: New file for C++ binding for fstream like class for + zlib. + + * zfstream.h: Definition for fstream like C++ bindings to zlib. + + * load-save.cc (static bool check_gzip_magic (const std::string&)): + New function to look for GZIP magic + (static load_save_format get_file_format (const istream &file)): New + function split from old get_file_format but passed istream to allow + use with zlib istream. + (static load_save_format get_file_format (const std::string&, + const std::string&, bool)): Modify the test uncompressed file first, + then compressed version + (Fload) Allow -v6, -6, -v7 and -7 options. Split load code to allow + use of zlib. + (Fsave) Allow -zip, -z, -v6, -6, -v7 and -7 options. Split save code + to allow use of zlib. + + * load-save.h: add LS_MAT7_BINARY to load_save_format enum + + * ls-mat5.cc (read_mat5_binary_element): Test for miCOMPRESSED flag for + matlab v7 files, and decompress data in memory. Allow reading of matlab + logical variables either in mxDOUBLE_CLASS or mxUINT8_CLASS. + (int save_mat5_array_length(const double*, ...): New function to + calculate number of bytes used to save NDArray. + (int save_mat5_array_length(const Complex*, ...): New function to + calculate number of bytes used to save ComplexNDArray. + (int save_mat5_element_length): New function to find number of bytes + needed to save data element. + (save_mat5_binary_element): New input arguments, mat7_format and + compressing, that define if we are in a matlab v7 format and where we + are currently compressing the data element. If mat7_format use + miCOMPRESSED flag for matlab v7 files, and compress data in memory. + Add capability to save logical variables as mxUINT8_CLASS. If v7 + format maximum variable length is 63 characters and not 31. Use the + save_mat5_element_length function to pre-calculate the number of bytes + taken by a variable rather than use a negative seek to correct after + writing (zlib can't do negative seeking) + + * ls-mat5.h: Add to miCOMPRESSED, miUTF8, miUTF16 and miUTF32 flags to + the enum mat5_data_type. + (save_mat5_binary_element): Add args mat7_format and compressing to the + definition. + + 2005-04-06 John W. Eaton + + * OPERATORS/op-scm-scm.cc: Delete #pragma implementation. + + 2005-04-05 John W. Eaton + + * ov-ch-mat.h (octave_char_matrix::index_vector): New function. + + * oct-stream.cc (BEGIN_C_CONVERSION): Clear stream state if + we hit EOF after we read something. + + * pt-assign.cc (tree_multi_assignment::rvalue): + Allow assignments of the form [a,b,c] = x{:}. + + 2005-03-30 John W. Eaton + + * mappers.cc (install_mapper_functions): Use std:: as needed. + * defun-int.h (DEFUN_MAPPER_INTERNAL): Don't use X_CAST on + function pointer args. + + * ov-complex.cc, ov-cx-mat.cc, xpow.cc, ls-mat5.cc: Use std:: for + Complex functions instead of relying on wrappers from oct-cmplx.h. + + * oct-stream.cc (octave_scan): Initialize c1 to EOF. + + 2005-03-29 John W. Eaton + + * utils.cc (get_dimensions): Produce error instead of warning if + given a matrix argument. + + * load-save.cc (Fload, Fsave): Also accept -V4 option. + + * ls-hdf5.h (hdf5_fstreambase::hdf5_fstreambase, + hdf5_fstreambase::open): Use & instead of == to test whether mode + is std::ios::in or std::ios::out. + (hd5_ifstream::istream, hd5_ifstream::open, hd5_ofstream::istream, + hd5_ofstream::open): Default mode now includes binary flag. + + 2005-03-28 John W. Eaton + + * oct-stream.cc (octave_stream::write): For compatibility, Write + zeros instead of seeking if SKIP is nonzero. + + * DLD-FUNCTIONS/gplot.l (Fgraw): Recommend __gnuplot_raw__, not + __gnuplot__raw__. + (Fgshow): Recommend __gnuplot_show__, not __gnuplot__show__. + Don't add "mark_as_rawcommand ("replot")" to PKG_ADD file. + + 2005-03-26 John W. Eaton + + * input.cc (gnu_readline): Don't wrap call to command_editor::readline + with {BEGIN,END}_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE. + + 2005-03-25 John W. Eaton + + * toplev.cc (main_loop): Don't use octave_set_current_context here. + + * pt-loop.cc (simple_for_loop::eval): In for i = matrix ... end, + skip loop if matrix is empty. Likewise for cell arrays. + + 2005-03-24 John W. Eaton + + * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Texinfoize doc string. + + * Makefile.in (install-oct): Always create $(octfiledir) and + install PKG_ADD file there. + + * octave.cc (octave_main): Fix logic in test for exit after + evaluating --eval option code. + + 2005-03-23 John W. Eaton + + * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Require 9 arguments. + Print error messages and return early if value extractions fail. + Default for message level now 0. + Rename local variable error to be errnum. + (glpk_fault_hook): Call message instead of writing to octave_stderr. + (glpk_fault_hook): Call error instead of writing to octave_stderr. + (glpk): Likewise. + Declare mark static. Delete declaration of fperr. + (glpk): Delete unnecessary casts. + + * DLD-FUNCTIONS/__glpk__.cc (OCTAVE_GLPK_GET_REAL_PARAM, + OCTAVE_GLPK_GET_INT_PARAM): New macros. + (F__glpk__): Use them. + + * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Accept lpsolver and + save_pb in param arg instead of as separate args. + Arg list now matches new interface for glpk.m. + Don't return lambda and redcosts fields in extra if isMIP. + + * toplev.cc (do_octave_atexit): Call reset_error_handler before + each call to feval. + + 2005-03-22 John W. Eaton + + * Makefile.in: Add special rule for __glpk__.oct. + + * toplev.cc (octave_config_info): Add GLPK_LIBS to the list. + * oct-conf.h.in (OCTAVE_CONF_GLPK_LIBS): Substitute here. + + * DLD-FUNCTIONS/__glpk__.cc (F__glpk__, glpk): + Adapt to Octave coding style. + (glpk): Move decls closer to first use. + (F__glpk__): Eliminate unnecessary loop seting inf values. + Ensure that isMIP is initialized. + Declare sense, nz, and isMIP volatile to avoid GCC warnings that + these variables might be might be clobbered by `longjmp' or `vfork' + + * DLD-FUNCTIONS/__glpk__.cc: New file. + + * Makefile.in (DLD_XSRC): Add it to the list. + + 2005-03-21 John W. Eaton + + * octave.cc (maximum_braindamage): + Don't set warn_matlab_incompatible to true. + + 2005-03-17 John W. Eaton + + * lex.l (class bracket_brace_paren_nesting_level): Use static + const int members instead of anonymous enum. + + 2005-03-16 John W. Eaton + + * ov-struct.cc (octave_struct::save_ascii): Don't convert Cell + object to cs-list. + (octave_struct::save_binary): Likewise + (octave_struct::save_hdf5): Likewise. + + * DLD-FUNCTIONS/gplot.l (Fset, Fshow): Delete. + (F__gnuplot_plot__): Rename from Fgplot. + (F__gnuplot_splot__): Rename from Fgsplot. + (F__gnuplot_raw__): Rename from Fgraw. + (F__gnuplot_set__): Rename from Fgset. + (F__gnuplot_show__): Rename from Fgshow. + (F__gnuplot_replot__): Rename from Freplot. + (WARN_DEPRECATED, DEPRECATED_BODY): New macros. + (Fgplot, Fgsplot, Fgraw, Fgset, Fgshow): New functions. + + 2005-03-15 John W. Eaton + + * lex.l ({NL}): Reset lexer_flags.doing_rawcommand + state here. + + * version.h (OCTAVE_API_VERSION): Now 2.9.0. + (OCTAVE_API_VERSION): Now api-v14. + + * Makefile.in (INCLUDES): Delete sparse-ops.h from the list. + + * cellfun.cc: New function from Octave-forge. Adapt to Octave + coding standards. + * Makefile.in (DLD_XSRC): Add it to the list. + + 2005-03-14 John W. Eaton + + * DLD-FUNCTIONS/dispatch.cc (Fbuiltin): Avoid crash if symbol + lookup fails. + + 2005-03-10 John W. Eaton + + * toplev.cc (Foctave_config_info): Print error instead of crashing + if struct does not contain field we are looking for. + + 2005-03-09 John W. Eaton + + * load-save.cc (Fload, Fsave): Accept -text as an alias for -ascii. + Issue warning for future change in meaning of -ascii. + + * Makefile.in (bin-dist): Delete target. + (BINDISTFILES, BINDISTLIBS): Delete variables. + + 2005-03-04 John W. Eaton + + * octave.cc (octave_main): Concatenate all --eval arguments. + + 2005-03-03 John W. Eaton + + * input.cc (input_from_command_line_file): Move definition here. + * parse.y: From here. + * input.h (input_from_command_line_file): Move decl here. + * parse.h: From here. + + * input.cc (octave_gets): + Don't save history if input is from command line file. + + * parse.y (parse_and_execute, parse_fcn_file, eval_string): + Don't alter value of input_from_command_line_file here. + (input_from_command_line_file): Default value is false. + (eval_string): Turn off line editing here. + + * toplev.cc, toplev.h (main_loop): Delete fun_to_call arg and all uses. + + * octave.cc (fun_to_call): Delete static variable. + (persist, code_to_eval): New static variables. + (long_opts): Delete --funcall, add --eval and --persist. + (usage_string, verbose_usage, octave_main): Likewise. + (FUNCALL_OPTION): Delete. + (EVAL_OPTION, PERSIST_OPTION): New macros. + (maximum_braindamage): Set persist to true. + (execute_eval_option_code): New function. + (restore_program_name): New function. + (execute_command_line_file): New function. + (octave_main): Call execute_eval_option code and + execute_command_line file. If persist, go interactive even after + evaluating --eval code and/or command-line file. + + * ov-bool-sparse.h, ov-bool-sparse.cc + (octave_sparse_bool_matrix::sparse_matrix_value, + octave_sparse_bool_matrix::sparse_complex_matrix_value): + Accept bool arg. + + * parse.y (looks_like_copyright): Check first 9 characters, not 14. + + 2005-03-02 John W. Eaton + + * oct-stream.cc (octave_scan (std::istream&, const + scanf_format_elt&, double*)): New specialization to handle Inf, + NaN, and NA. + + * parse.y (looks_like_copyright): + Rename from looks_like_octave_copyright. Change all uses. + Simply match "Copyright". + + 2005-03-01 John W. Eaton + + * DLD-FUNCTIONS/odessa.cc: Delete. + * Makefile.in (DLD_XSRC): Remove it from the list. + (OPT_HANDLERS): Remove ODESSA-opts.cc from the list. + + 2005-02-28 John W. Eaton + + * toplev.cc (octave_config_info): Remove LIBGLOB and GLOB_INCFLAGS + from the list. + * oct-conf.h.in (OCTAVE_CONF_LIBGLOB, OCTAVE_CONF_GLOB_INCFLAGS): + Delete. + * Makefile.in (OCTAVE_LIBS): Remove $(LIBGLOB) from the list. + + 2005-02-25 John W. Eaton + + Sparse merge. + + 2005-02-25 John W. Eaton + + * DLD-SRC/rand.cc (Frand): Accept "state" as an alias for "seed". + + * DLD-SRC/dispatch.cc: New file. + * Makefile.in (DLD_XSRC): Add it to the list. + + 2005-02-13 David Bateman + + * ov-fcn-inline.h, DLD-FUNCTIONS/spparms.cc, DLD-FUNCTIONS/gcd.cc: + Remove additional licensing clause, with authors permission + + * ov-base-sparse.h: New constructor to cache SparseType, not yet + used + * ov-re-sparse.h: likewise + * ov-cx-sparse.h: likewise + * ov.h: Likewise + + * sparse-xdiv.cc: Remove spparms umfpack flag + + * DLD-FUNCTIONS/spparms.cc: Warning that umfpack flag is ignored. + + 2005-01-16 David Bateman + + * ls-mat5.cc (read_mat5_integer_data): Change "T &m" to "T *m" and + instantiate with values like octave_int8 rather than int8NDArray. + Modify function to fit + (read_mat5_binary_element): Use new form of read_mat_integer_data + to read data directly into sparse matrix + (write_mat5_integer_data): Change "const T &m" to "T *m", etc. New + instantiation with int. + (save_mat5_binary_element): Modify to save sparse data + + 2005-01-15 David Bateman + + * data.cc (do_cat): Use first non-empty matrix as base for + concatenation. + * pt-mat.cc (tree_matrix::rvalue): ditto. + + 2005-01-14 John W. Eaton + + * ov.cc (do_cat_op): When checking for empty args, use + all_zero_dims, not numel. + * ov.h (octave_value::all_zero_dims): New function. + + * ov-bool-sparse.cc (try_narrowing_conversion): Convert to + bool_matrix, not matrix. + + 2005-01-13 David Bateman + + * data.cc (make_diag): Use numel not capacity to remove ambiguity. + * ov.h (octave_value::capacity): New virtual funtion. + * ov-base.h (octave_base_value::capacity): New function calls numel. + * data.cc (Freshape): Use arg.numel() rather than arg.dims().numel() + since sparse numel now consistent. + * symtab.h (symbol_record::symbol_def::capacity, + symbol_record::capacity): New methods. + * symtab.cc (symbol_record::print_symbol_info_line, + symbol_table::parse_whos_line_format, symbol_table::maybe_list): + used capacity() and not numel() to properly assess size of + sparse objects. + * ov-base-sparse.h (octave_base_sparse::capacity): New function, + (octave_base_sparse::numel): Delete. + * ov-re-sparse.cc (octave_sparse_matrix::streamoff_array_value): + Only fill from non-zero elements of sparse array. + * DLD-FUNCTIONS/splu.cc (Fsplu): Change use of nelem to numel. + * ov.cc (do_cat_op): Early return for concatenation with empty + objects. + + 2005-01-12 John W. Eaton + + * DLD-FUNCTIONS/find.cc (Ffind): Make it work for character strings. + + 2005-01-11 John W. Eaton + + * OPERATORS/op-double-conv.cc: New conversions for sparse_matrix + and sparse_bool_matrix to matrix. + + 2005-01-11 David Bateman + + * ov-base-sparse.h (octave_base_sparse::any, + octave_base_sparse::all): Use new constructors, etc as pointed out + by JWE. + + 2005-01-10 John W. Eaton + + * DLD-FUNCTIONS/sparse.cc (MINMAX_BODY, Fspatan2, make_spdiag): + Write retval(0) = result instead of retval(0) = octave_value (result). + * DLD-FUNCTIONS/splu.cc (Fsplu): Likewise. + + 2005-01-08 David Bateman + + * ls-mat5.cc (read_mat5_integer_data): Instantiate for Array + (read_mat5_binary_element): Add code to read sparse matrices + saved in matlab v5 format + + 2005-01-07 David Bateman + + * OPERATORS/op-bm-sbm.cc, OPERATORS/op-b-sbm.cc, + OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, + OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, + OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, + OPERATORS/op-sbm-b.cc, OPERATORS/op-sbm-bm.cc, + OPERATORS/op-sbm-sbm.cc, OPERATORS/op-scm-cm.cc, + OPERATORS/op-scm-cs.cc, OPERATORS/op-scm-m.cc, + OPERATORS/op-scm-s.cc, OPERATORS/op-scm-scm.cc, + OPERATORS/op-scm-sm.cc, OPERATORS/op-sm-cm.cc, + OPERATORS/op-sm-cs.cc, OPERATORS/op-sm-m.cc, + OPERATORS/op-sm-s.cc, OPERATORS/op-sm-scm.cc, + OPERATORS/op-sm-sm.cc, OPERATORS/op-s-scm.cc, + OPERATORS/op-s-sm.cc: New octave_value constructors allow + macros from ops.h to be used rather than sparse-ops.h. Remove + other explicit uses of maybe_mutate. + + * sparse-ops.h: delete file. + + * colamd.cc (Fcolamd, Fsymamd, Fetree): Remove no longer needed + use of get_rep() and use the sparse matrix conversion functions + directly. + + * data.cc (Freshape): Use arg.dims().numel() rather than + arg.numel() due to definition of numel for sparse matrices. + + * sparse.cc (Ffull, Fspfind, SPARSE_DIM_ARG_BODY, MINMAX_BODY, + Fspatan2, make_spdiag): Convert to use new octave_value sparse + constructors, sparse matrix conversion functions and remove + maybe_mutate calls. + (Fspreshape): Delete + + * splu.cc (Fsplu): Remove remaining explicit octave_value + construction. + + * ov-base-sparse.h (do_index_op, resize, reshape, permute, squeeze): + Move these methods from the derived classes. + * ov-base-spase.cc (do_index_op): Move this method from the derived + classes. + * ov-bool-sparse.h (do_index_op, resize, reshape, permute, squeeze): + delete. + * ov-re-spase.cc (do_index_op): delete. + * ov-cx-sparse.h (do_index_op, resize, reshape, permute, squeeze): + delete. + * ov-cx-spase.cc (do_index_op): delete. + * ov-bool-spase.cc (do_index_op): delete. + * ov-re-sparse.h (do_index_op, resize, reshape, permute, squeeze): + delete. + + * DLD-FUNCTIONS/spdet.cc (Fspdet): Remove use of SparseDet and + SparseComplexDET classes and use DET and ComplexDET classes. + + * DLD-FUNCTIONS/colamd.cc op-bm-sbm.cc OPERATORS/op-b-sbm.cc + OPERATORS/op-cm-scm.cc OPERATORS/op-cm-sm.cc OPERATORS/op-cs-scm.cc + OPERATORS/op-cs-sm.cc OPERATORS/op-fil-sbm.cc OPERATORS/op-fil-scm.cc + OPERATORS/op-fil-sm.cc OPERATORS/op-m-scm.cc OPERATORS/op-m-sm.cc + OPERATORS/op-sbm-b.cc OPERATORS/op-sbm-bm.cc OPERATORS/op-sbm-sbm.cc + OPERATORS/op-scm-cm.cc OPERATORS/op-scm-cs.cc OPERATORS/op-scm-m.cc + OPERATORS/op-scm-s.cc OPERATORS/op-scm-scm.cc OPERATORS/op-scm-sm.cc + OPERATORS/op-sm-cm.cc OPERATORS/op-sm-cs.cc OPERATORS/op-sm-m.cc + OPERATORS/op-sm-s.cc OPERATORS/op-sm-scm.cc OPERATORS/op-sm-sm.cc + OPERATORS/op-s-scm.cc OPERATORS/op-s-sm.cc ov-base-sparse.cc + ov-base-sparse.h ov-bool-sparse.cc ov-bool-sparse.h ov-cx-sparse.cc + ov-cx-sparse.h ov-re-sparse.cc ov-re-sparse.h sparse-base-lu.cc + sparse-base-lu.h DLD-FUNCTIONS/sparse.cc sparse-xdiv.cc sparse-xdiv.h + sparse-xpow.cc sparse-xpow.h DLD-FUNCTIONS/spdet.cc + DLD-FUNCTIONS/splu.cc DLD-FUNCTIONS/spparms.cc: Remove additional + licensing clause with authors permission. + + 2005-01-05 David Bateman + + * DLD-FUNCTIONS/colamd.cc: Rename from colamdoct.cc. Base colamd.h + now found in COLAMD/colamd.h. + (Fcolamd): Return value is now used. + (Fsymamd): ditto. + + * Makefile.in: include colamd.cc in DLD_XSRC. + + * ov.h (sparse_matrix_value, sparse_complex_matrix_value, + sparse_bool_matrix_value): New virtual functions + + * ov-base.cc (octave_base_value::sparse_matrix_value, + octave_base_value::sparse_complex_matrix_value, + octave_base_value::sparse_bool_matrix_value): New default sparse + matrix extraction functions. + + * ov-base.h (sparse_matrix_value, sparse_complex_matrix_value, + sparse_bool_matrix_value): Declare them. + + * ov-re-mat.cc (octave_matrix::sparse_matrix_value, + octave_matrix::sparse_complex_matrix_value): Conversion functions. + + * ov-re-mat.h (sparse_matrix_value, sparse_complex_matrix_value): + Declare them. + + * ov-cx-mat.cc (octave_complex_matrix::sparse_matrix_value, + octave_complex_matrix::sparse_complex_matrix_value): Conversion + functions. + + * ov-cx-mat.h (sparse_matrix_value, sparse_complex_matrix_value): + Declare them. + + * ov-bool-mat.h (sparse_matrix_value, sparse_complex_matrix_value, + sparse_bool_matrix_value): Conversion functions. + + * DLD_FUNCTIONS/spdet.cc (Fspdet): Use the above constructors + and conversion functions. + * DLD_FUNCTIONS/splu.cc (Fsplu): ditto. + + 2004-12-30 John W. Eaton + + * DLD-FUNCTIONS/splu.cc (Fsplu): Avoid shadow warnings. + + * sparse-xpow.cc (elem_xpow): Delete unsed variables. + * sparse-xdiv.cc (x_el_div): Likewise. + + * DLD-FUNCTIONS/det.cc (Fdet): Delete unused argument nargout. + * DLD-FUNCTIONS/spdet.cc (Fspdet): Likewise. + + * DLD-FUNCTIONS/sparse.cc (Fnzmax): Return a value. + + * ov.cc, ov.h (octave_value::octave_value (const SparseMatrix&), + (octave_value::octave_value (const SparseBoolMatrix&), + (octave_value::octave_value (const SparseComplexMatrix&)): + New constructors. + + 2004-12-29 John W. Eaton + + * DLD-FUNCTIONS/sparse.cc (SPARSE_DIM_ARG_BODY): Rename from + DEFUN_DLD_SPARSE_DIM_ARG. Omit HELP arg. Omit DEFUN_DLD, so the + macro only defines the function body. + (Fspprod, Fspcumprod, Fspsum, Fspcumsum, Fspsumsq): Define with + DEFUN_DLD, not DEFUN_DLD_SPARSE_DIM_ARG. Use SPARSE_DIM_ARG_BODY + to define function body. + + * DLD-FUNCTIONS/sparse.cc (load_sparse_type, sparse_type_loaded): + Delete function, variable, and all uses. + * ov.cc: Include ov-bool-sparse.h, ov-re-sparse.h, ov-cx-sparse.h. + (install_types): Register sparse types. + + Merge of sparse code from David Bateman and + Andy Adler . + + * sparse-xdiv.cc, sparse-xpow.cc: New files. + * Makefile.in (DIST_SRC): Add them to the list. + + * sparse-ops.h sparse-xdiv.h, sparse-xpow.h: New files. + * Makefile.in (INCLUDES): Add them to the list. + + * DLD-FUNCTIONS/colamdoct.cc, DLD-FUNCTIONS/sparse.cc, + DLD-FUNCTIONS/spdet.cc, DLD-FUNCTIONS/splu.cc, + DLD-FUNCTIONS/spparms.cc: New files. + * Makefile.in (DLD_XSRC): Add them to the list. + + * ov-base-sparse.cc, ov-base-sparse.h, ov-bool-sparse.cc, + ov-bool-sparse.h, ov-cx-sparse.cc, ov-cx-sparse.h, + ov-re-sparse.cc, ov-re-sparse.h: New files. + * Makefile.in (OV_SPARSE_SRC, OV_SPARSE_INCLUDES): New lists. + (OV_SRC): Add $(OV_SPARSE_SRC) to the list. + (INCLUDES): Add $(OV_SPARSE_INCLUDES) to the list. + + * OPERATORS/op-bm-sbm.cc, OPERATORS/op-b-sbm.cc, + OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, + OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, + OPERATORS/op-fil-sbm.cc, OPERATORS/op-fil-scm.cc, + OPERATORS/op-fil-sm.cc, OPERATORS/op-m-scm.cc, + OPERATORS/op-m-sm.cc, OPERATORS/op-sbm-b.cc, + OPERATORS/op-sbm-bm.cc, OPERATORS/op-sbm-sbm.cc, + OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc, + OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc, + OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc, + OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc, + OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc, + OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc, + OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc: New files. + * Makefile.in (SPARSE_OP_XSRC): New list. + (OP_XSRC): Add $(SPARSE_OP_XSRC) to the list. + + 2005-02-23 John W. Eaton + + * parse.y (fold (tree_binary_expression*)): Skip constant folding + for some expressions to preserve warnings. + (Vwarn_associativity_change): New static variable. + (warn_associativity_change): New function. + (symbols_of_parse): DEFVAR warn_associativity_change. + (maybe_warn_associativity_change): New function. + (make_binary_op): Use it. + + 2005-02-22 John W. Eaton + + * parse.y (POW, EPOW): Use %left associativity for compatibility. + + * ov-base-int.cc (octave_baes_int_matrix::load_binary): + Handle arrays with only one dimension. + * ov-bool-mat.cc (octave_bool_matrix::load_binary): Likewise. + * ov-cell.cc (octave_cell::load_binary): Likewise. + * ov-cell.cc (octave_complex_matrix::load_binary): Likewise. + * ov-re-mat.cc (octave_matrix::load_binary): Likewise. + * ov-str-mat.cc (octave_char_matrix_str::load_binary): Likewise. + + * ov-mapper.cc (octave_mapper::subsref): Return retval after + calling next_subsref. + + * ov-mapper.cc (octave_builtin::subsref): If nargout is 0 and we + have additional indexing to perform, set it to 1 before calling + do_multi_index_op. + + * oct-map.cc (Octave_map::intfield, Octave_map::stringfield): + New functions. + * oct-map.h: Provide decls. + * DLD-FUNCTIONS/time.cc (extract_tm): Use intfield and stringfield + to access map elements. + + 2005-02-21 John W. Eaton + + * ov-builtin.cc (octave_builtin::subsref): If nargout is 0 and we + have additional indexing to perform, set it to 1 before calling + do_multi_index_op. + * ov-usr-fcn.cc (octave_user_function::subsref): Likewise. + + * DLD-FUNCTIONS/gplot.l (send_to_plot_stream): + Replot with no previous plot is a no-op. + (makeplot): Likewise. + (Vautomatic_replot): Don't use this variable in low-level functions. + + 2005-02-18 John W. Eaton + + * Makefile.in (oct-gperf.h): Remove -E from list of gperf options. + + * data.cc (do_permute): Use zero-based indexing for permutation + vector that is passed to octave_value::permute method. + Allow permutation vector longer than number of dimenensions of + permuted matrix. + + 2005-02-17 John W. Eaton + + * version.h (OCTAVE_API_VERSION): Now 2.1.64-cvs. + (OCTAVE_API_VERSION): Now api-v12-cvs. + + 2005-02-16 John W. Eaton + + * ov-base-mat.h (octave_base_matrix::squeeze): Explicitly convert + result of matrix.squeeze() to MT. + + 2005-02-15 John W. Eaton + + * dirfns.cc (deftypefn): Don't print to octave_stdout if nargout > 0. + + * pt-mat.cc (tree_matrix::rvalue): Min size of ra_idx is 2. + + * file-io.cc (Ffclear): New function. + + * sighandlers.h: Define SIGCHLD if it is not already defined and + SIGCLD is defined. + + * sighandlers.cc (octave_set_signal_handler): Request system calls + restarted if interrupted by signals (except for SIGALRM). + * dirfns.cc (Fls): Don't bother with sleeping or checking errno. + + 2005-02-11 John W. Eaton + + * sighandlers.cc (sigpipe_handler): Don't try to take action. + Set octave_signal_caught and octave_signals_caught here. + (sigchld_handler): Call octave_child_list::wait here. + Set octave_signal_caught and octave_signals_caught here. + (octave_signals_caught): New static file-scope variable. + (sigint_handler): Also set octave_signal_caught. + + * sighandlers.cc (sigpipe_handler): + + * DLD-FUNCTIONS/gplot.l (plot_stream_event_handler): Rename from + plot_stream_death_handler. Return true if plotter has exited. + Call close_plot_stream with false arg. + (plot_stream_pid): Delete static file-scope variable and all uses. + (close_plot_stream): New arg, remove_from_child_list, with default + value of true. Only call octave_child_list::remove if + remove_from_child_list is true. + + * pager.cc (octave_pager_pid, saved_interrupt_handler, + interrupt_handler_saved): Delete static file-scope variables and + all uses. + (clear_external_pager): Do nothing if external_pager is 0. + (pager_event_handler): Rename from pager_death_handler. + Improve warning message. Return true if pager has exited. + (octave_pager_buf::do_sync): Check errno == EPIPE after write. + (flush_octave_stdout): No need to check external_pager before + calling clear_external_pager. + + * toplev.cc (recover_from_exception): Set octave_signal_caught to zero. + (main_loop): Set octave_signal_hook to octave_signal_handler here. + + * sighandlers.cc (octave_signal_handler): New function. + * sighanlders.h: Provide decl. + + * sighandlers.cc (install_signal_handlers): Initialize + octave_signals_caught. + + * sighandlers.h (octave_child::status, have_status): New data members. + (child_event_handler): Rename from dead_child_handler. + Change all uses. + (octave_child_list::reap, octave_child_list::wait): New functions. + (octave_child_list::length, octave_child_list::do_length, + octave_child_list::elem, octave_child_list::do_elem, + octave_child_list::list, octave_child_list::curr_len): Delete. + + * sighandlers.h, sighandlers.cc + (octave_child_list::octave_child_list_rep): New class. + + * input.cc (gnu_readline, octave_gets, get_user_input): + Call OCTAVE_QUIT before doing anything. + + * base-list.h (octave_base_list::remove_if): New function. + + * TEMPLATE-INST/Array-oc.cc: Delete. + * Makefile.in (TI_XSRC): Remove from list. + + 2005-02-10 Driss Ghaddab + + * cutils.c (octave_usleep) [HAVE_POLL]: Fix typo. + + 2005-02-10 John W. Eaton + + * variables.cc (symbol_exist): Don't search path if explicitly + asked for a variable or builtin. From David Bateman + . + + 2005-02-09 John W. Eaton + + * variables.cc (same_file): New static function. + (symbol_out_of_date): Use it. + + * syscalls.cc (Fcanonicalize_file_name): New function. + + 2005-02-08 Walter Landry + + * symtab.h (symbol_record::mark_as_command): Avoid AIX compiler error. + + 2005-02-07 John W. Eaton + + * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Return [] instead + of [](1x0) for scalar arg of zero. + + 2005-02-06 John W. Eaton + + * DLD-FUNCTIONS/gplot.l (tmp_files): Delete. + From Todd Neal . + + 2005-02-04 John W. Eaton + + * sighandlers.cc (octave_child_list::~octave_child_list): Move here. + * sighandlers.h: From here. + + 2005-02-02 John W. Eaton + + * Makefile.in (parse.cc): Expect 12 shift/reduce conflicts. + * parse.y (loop_command): Allow "for (k=1:10) ... endfor". + + 2005-01-27 David Bateman + + * ov-mapper.cc (octave_mapper::apply): Only work on real arguments + if c_c_map_fcn or d_d_map_fcn or d_b_map_fcn is defined.xo + + 2005-01-26 Joel Andersson + + * help.cc (keywords): Document endswitch. + + 2005-01-21 John W. Eaton + + * DLD-FUNCTIONS/filter.cc (filter): Avoid slow Marray indexing ops. + + 2005-01-20 John W. Eaton + + * Makefile.in (EXTRAS): Move ov-base-mat.cc ov-base-scalar.cc here. + (OV_SRC): From here. + + 2005-01-18 John W. Eaton + + * ov-complex.h (octave_complex::any): New function. + * ov-scalar.h (octave_scalar::any): New function. + + * file-io.cc (Fmkstemp): Fix doc string. Error message belongs in + third output value. From Mats Jansson . + + 2005-01-12 John W. Eaton + + * DLD-FUNCTIONS/find.cc (Ffind): Make it work for character strings. + + 2005-01-11 John W. Eaton + + * DLD-FUNCTIONS/gplot.l (UNOP): Avoid trailing comment. + + 2005-01-10 John W. Eaton + + * ls-oct-ascii.cc (extract_keyword (std::istream&, const + string_vector&, std::string&, int&, const bool)): + Remove duplicate definition. + + 2004-12-27 Martin Dalecki + + * Cell.cc, c-file-ptr-stream.cc, comment-list.cc, oct-map.cc, + oct-obj.cc, ov-base.cc, ov-base-int.cc, ov-base-mat.cc, + ov-base-scalar.cc, ov-bool.cc, ov-bool-mat.cc, ov-builtin.cc, + ov.cc, ov-cell.cc, ov-ch-mat.cc, ov-colon.cc, ov-complex.cc, + ov-cs-list.cc, ov-cx-mat.cc, ov-dld-fcn.cc, ov-fcn.cc, + ov-fcn-handle.cc, ov-fcn-inline.cc, ov-file.cc, ov-int16.cc, + ov-int32.cc, ov-int64.cc, ov-int8.cc, ov-list.cc, ov-mapper.cc, + ov-range.cc, ov-re-mat.cc, ov-scalar.cc, ov-streamoff.cc, + ov-str-mat.cc, ov-struct.cc, ov-typeinfo.cc, ov-uint16.cc, + ov-uint32.cc, ov-uint64.cc, ov-uint8.cc, ov-usr-fcn.cc, + ov-va-args.cc, procstream.cc, pt-arg-list.cc, pt-assign.cc, + pt-binop.cc, pt-bp.cc, pt.cc, pt-cell.cc, pt-check.cc, pt-cmd.cc, + pt-colon.cc, pt-const.cc, pt-decl.cc, pt-except.cc, pt-exp.cc, + pt-fcn-handle.cc, pt-id.cc, pt-idx.cc, pt-jump.cc, pt-loop.cc, + pt-mat.cc, pt-misc.cc, pt-pr-code.cc, pt-select.cc, pt-stmt.cc, + pt-unop.cc, symtab.cc, token.cc, unwind-prot.cc: + Delete #pragma implementation. + + * Cell.h, c-file-ptr-stream.h, comment-list.h, oct-map.h, + oct-obj.h, ov-base.h, ov-base-int.h, ov-base-mat.h, + ov-base-scalar.h, ov-bool.h, ov-bool-mat.h, ov-builtin.h, + ov-cell.h, ov-ch-mat.h, ov-complex.h, ov-cs-list.h, ov-cx-mat.h, + ov-dld-fcn.h, ov-fcn.h, ov-fcn-handle.h, ov-fcn-inline.h, + ov-file.h, ov.h, ov-int16.h, ov-int32.h, ov-int64.h, ov-int8.h, + ov-list.h, ov-mapper.h, ov-range.h, ov-re-mat.h, ov-scalar.h, + ov-streamoff.h, ov-str-mat.h, ov-struct.h, ov-typeinfo.h, + ov-uint16.h, ov-uint32.h, ov-uint64.h, ov-uint8.h, ov-usr-fcn.h, + procstream.h, pt-arg-list.h, pt-assign.h, pt-binop.h, pt-bp.h, + pt-cell.h, pt-check.h, pt-cmd.h, pt-colon.h, pt-const.h, + pt-decl.h, pt-except.h, pt-exp.h, pt-fcn-handle.h, pt.h, pt-id.h, + pt-idx.h, pt-jump.h, pt-loop.h, pt-mat.h, pt-misc.h, pt-pr-code.h, + pt-select.h, pt-stmt.h, pt-unop.h, symtab.h, token.h, + unwind-prot.h: Delete #pragma interface. + + 2004-12-27 John W. Eaton + + Merge of changes from Teemu Ikonen to + remove gnuplot from main parser. + + * pt-plot.cc, pt-plot.h: Delete. + * Makefile.in (PT_SRC, PT_INCLUDES): Delete them from the lists. + + * DLD-FUNCTIONS/gplot.l: New file. + * Makefile.in: Include it in the DLD_XSRC list. + + * dirfns.cc (octave_change_to_directory): + Don't call do_external_plotter_cd. + + * symtab.h (symbol_record::TYPE): New element, RAWCOMMAND. + (symbol_record::symbol_def::mark_as_rawcommand, + symbol_record::symbol_def::unmark_rawcommand, + symbol_record::symbol_def::is_rawcommand): New functions. + (symbol_record::symbol_def::symbol_type): Bitfield is now 9 bits wide. + (symbol_record::mark_as_rawcommand, + symbol_record::unmark_rawcommand, symbol_record::is_rawcommand): + New functions. + (SYMTAB_ALL_TYPES): Include RAWCOMMAND. + + * parse.y (make_plot_command): Delete function. + (tree_plot_command_type, subplot_type, subplot_list_type, + plot_limits_type, plot_range_type, subplot_using_type, + subplot_style_type, subplot_axes_type): + Delete non-terminal type decls. + (PLOT, STYLE, AXES_TAG): Delete token types. + (title, plot_command, plot_command2, plot_options, plot_command1, + ranges, ranges1, using, using1, style, axes): Delete non-terminals. + + * toplev.cc (do_octave_atexit): Don't call close_plot_stream. + + * variables.cc (rawcommand_set): New static variable. + (is_marked_as_rawcommand, mark_as_rawcommand, unmark_rawcommand, + Fiscommand, Fmark_as_rawcommand, Funmark_rawcommand, + Fisrawcommand, is_rawcommand_name): New functions. + * variables.h: Provide decl for is_rawcommand_name. + + * pt-bp.cc, pt-bp.h, pt-check.cc, pt-check.h, pt-pr-code.cc, + pt-pr-code.h, pt-walk.h: Delete all declarations, definitions, and + uses of visit_subplot, visit_subplot_axes, visit_subplot_list, + visit_subplot_style, and visit_subplot_using methods. + + * lex.h (lexer_flags): New field, doing_rawcommand. + * lex.l ([\;\,]): Also handle raw commands here. + (lexer_flags::init): Initialize doing_racommand to false. + (handle_identifier): Recognize raw commands ere. + (handle_string): Don't do string escape conversions on raw command + strings. + + * octave.gperf: Delete gplot_kw, gsplot_kw, replot_kw. + + * lex.h (lexer_flags): Delete fields cant_be_identifier, + doing_set, in_plot_range, in_plot_using, in_plot_style, + in_plot_axes, past_plot_range, and plotting. + * lex.l: Delete all uses of these lexer flags and remove all + special cases for plotting. + (plot_style_token, plot_axes_token, is_plot_keyword): Delete. + + * file-io.cc, file-io.h (tmp_files, mark_for_deletion, + cleanup_tmp_files): Move here. + * pt-plot.cc, pt-plot.h: From here. + + * Makefile.in (PKG_ADD): New target. + (all): Depend on PKG_ADD. + (install-oct): Depend on PKG_ADD. Install PKG_ADD file. + (gplot.cc): New target. + (stamp-prereq): Depend on gplot.cc. + (VAR): Don't include $(DLD_SRC) here. + (DLD_OBJ, DLD_DEF_FILES): Include .l files. + + * defun-int.h (DEFVAR, DEFCONST, DEFCONSTX): Move definition here. + * defun.h: From here. + + 2004-12-22 John W. Eaton + + * ls-oct-ascii.cc (extract_keyword (std::istream&, const + string_vector&, std::string&, int&, const bool): New function. + * ls-oct-ascii.h: Provide decl. + * ov-bool-mat.cc (octave_bool_matrix::load_ascii): + Use new extract_keyword function to avoid calling tellg/seekg. + * ov-cell.cc (octave_cell::load_ascii): Likewise. + * ov-cx-mat.cc (octave_complex_matrix::load_ascii): Likewise. + * ov-re-mat.cc (octave_matrix::load_ascii): Likewise. + * ov-str-mat.cc (octave_char_matrix_str::load_ascii): Likewise. + + 2004-12-20 John W. Eaton + + * pt-idx.cc (tree_index_expression::has_magic_end): Return true if + any argument list element has a magic end token. + + 2004-12-03 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.64. + + 2004-12-03 Teemu Ikonen + + * file-io.cc: Doc string fixes. + + 2004-12-02 David Bateman + + * input.cc (get_user_input): Only set nm and line for debugging if + both debug is true and curr_caller_function is non-null. + + 2004-12-02 David Bateman + + * ls-mat5.cc (arrayclasstype): Add mxINT64_CLASS, mxUINT64_CLASS, + mxFUNCTION_CLASS enum values. + (read_mat5_integer_data): New template function. + (OCTAVE_MAT5_INTEGER_READ): New macro. + (read_mat5_binary_element): Handle reading integer types. + Eliminate automatic conversion from int to double. + (write_mat5_integer_data): New template function. + Instantiate it for the 8 integer data types + (save_mat5_binary_element): Handle integer data types. + + * load-save.cc (Fload): Check file existence here. + If file does not exist, append ".mat" to name and try again. + (get_file_format): Delete check for file existence. + + 2004-11-30 John W. Eaton + + * Makefile.in (oct-gperf.h): Use -L C++ instead of -L ANSI_C. + Use -Z octave_kw_hash option, delete -H and -N options. + * lex.l (is_keyword_token): Use octave_kw_hash::in_word_set + instead of octave_kw_lookup. + (is_keyword): Likewise. + + 2004-11-22 John W. Eaton + + * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): + Check to see whether object is a function or function handle + instead of constant. + + 2004-11-19 John W. Eaton + + * ov-str-mat.cc (octave_char_matrix_str::do_index_op): + Skip indexing operation if indices are invalid. + + * pr-output.cc (set_range_format, set_complex_matrix_format, + set_complex_format, set_real_matrix_format, set_real_format): + Also specify std::ios::fixed for bank format. + + 2004-11-17 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.63. + (OCTAVE_API_VERSION): Now api-v12. + + 2004-11-17 David Bateman + + * pt-arg-list.cc (F__end__): Ask dv for the number of elements + instead indexed_object. + + 2004-11-16 David Bateman + + * ov.h (octave_value::numel): Now virtual. Call rep->numel (). + * ov.cc (octave_value::numel): Delete. + * ov-base.h (octave_base_value::numel): New function. + + 2004-11-12 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.62. + + 2004-11-09 John W. Eaton + + * OPERATORS/op-int-concat.cc: New file for mixed integer/other + concatentation operators. + * Makefile.in (INTTYPE_OP_XSRC): Add it to the list. + + * ops.h (DEFNDCATOP_FN2): New macro. + + * OPERATORS/op-int.h (OCTAVE_CONCAT_FN2, + OCTAVE_INSTALL_CONCAT_FN2, OCTAVE_DOUBLE_INT_CONCAT_FN, + OCTAVE_INSTALL_DOUBLE_INT_CONCAT_FN, OCTAVE_INT_DOUBLE_CONCAT_FN, + OCTAVE_INSTALL_INT_DOUBLE_CONCAT_FN): New macros. + + 2004-11-09 David Bateman + + * Cell.cc (concat): Delete. + (Cell::concat): New method. + * Cell.h: Provide decls. + + * oct-map.cc (concat): Delete + (Octave_map::concat): New method. + * oct-map.h: Provide decls. + + * ov.h (typedef octave_value (*cat_op_fcn) (octave_value&, + const octave_value&, const Array&): Change definition of + cat_op_fcn so first argument is not constant. + + * ops.h (CATOPDECL): First arg is no longer constant. + (DEFCATOP_FN, DEFNDCATOP_FN): Change to use new concat methods. + + * OPERATORS/op-chm.cc, OPERATORS/op-str-m.cc, OPERATORS/op-str-s.cc, + OPERATORS/op-str-str.cc (DEFCATOP): Change explicit concat functions + to use new concatenation methods. + + 2004-11-05 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.61. + + * DLD-FUNCTIONS/det.cc (det): Always compute rcond so we can + detect numerically singular matrices. + + 2004-11-04 John W. Eaton + + * pt-colon.cc (tree_colon_expression::line, + tree_colon_expression::column): New functions. + * pt-colon.h: Provide decls. + + * oct-stream.cc (octave_stream::seek (long, int)): Return error + (but leave file position unchanged) for attempt to seek beyond end + of file. + + * DLD-FUNCTIONS/inv.cc (Finv): Check rcond value returned from + LAPACK routines, and be careful to avoid optimizing away the + 1+rcond == 1.0 check. + * DLD-FUNCTIONS/det.cc (Fdet): Likewise. + + 2004-11-03 John W. Eaton + + * data.cc (Fsize): Return 1 if requested dimension is larger than + the number of dimensions of the given object. + + 2004-11-01 Claude Lacoursiere a + + * ls-hdf5.cc (read_hdf5_data): Expect num_obj to be in distinct group. + * ov-cell.cc (octave_cell::load_hdf5): Likewise. + * ov-list.cc (octave_list::load_hdf5): Likewise. + * ov-struct.cc (octave_struct::load_hdf5): Likewise. + + 2004-11-01 David Bateman + + * DLD-FUNCTIONS/filter.cc (filter (MArray&, MArray&, + MArrayN&, MArrayN&, int)): The variable si is now at least 2-D. + (Ffilter): Force si to be 2-D, while allowing arbitrary vector + orientation. + + 2004-11-01 John W. Eaton + + * data.cc (INSTANTIATE_EYE): New macro. Use it to instantiate + identity matrix functions for various matrix types. + + * variables.cc (do_who): Fix typo in for loop. + + 2004-10-28 John W. Eaton + + * ls-mat5.cc (save_mat5_binary_element): Save structure elements + in correct order. + + 2004-10-26 John W. Eaton + + * ov-fcn.h (octave_function::octave_va_arg): No longer const. + + 2004-10-22 John W. Eaton + + * DLD-FUNCTIONS/filter.cc: Remove some unnecessary parens. + + 2004-10-22 David Bateman + + * DLD-FUNCTIONS/filter.cc (filter (MArray&, MArray&, + MArrayN&, MArrayN&, int)): If value to filter is + dimensionality 2 it might still be a vector, use special case. + + 2004-10-21 John W. Eaton + + * ov-base.cc (INT_CONV_METHOD): Apply saturation semantics here too. + + 2004-10-19 John W. Eaton + + * ov-range.h (octave_range::write): New function. + + 2004-10-18 John W. Eaton + + * symtab.cc (symbol_record::dimensions_string_req_first_space, + symbol_record::make_dimensions_string): Use dims() for all objects. + + 2004-10-18 Oyvind Kristiansen + + * symtab.cc (symbol_table::parse_whos_line_format): Handle + size-of-parameter and center-specific format specifiers. + + 2004-10-18 John W. Eaton + + * pt-plot.cc (handle_plot_data): If plotting data from file, + always use "using" clause. + + 2004-10-12 David Bateman + + * pt-mat.cc (tm_row_const::tm_row_const_rep::do_init_element, + tm_const::init): Dimensionality of matrices not necessarily the + same. Check before comparing. + + 2004-10-06 John W. Eaton + + * pt-fcn-handle.h (tree_fcn_handle::name): New function. + + 2004-10-01 John W. Eaton + + * ov-range.h (octave_range::valid_as_scalar_index): Ensure int value. + (octave_range::valid_as_zero_index): Likewise. + + * ov-scalar.h (octave_scalar::valid_as_scalar_index): Ensure int value. + (octave_scalar::valid_as_zero_index): Likewise. + + 2004-09-24 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.60. + (OCTAVE_API_VERSION): Now api-v11. + + * OPERATORS/op-int.h (OCTAVE_MM_INT_OPS): Include missing matrix + by int matrix ops. + (OCTAVE_INSTALL_MM_INT_OPS): Install them. + + * OPERATORS/op-i64-i64.cc: Define and install missing int64 by + matrix and scalar ops. + + 2004-09-24 David Bateman + + * ov-fcn-inline (Finline): Attempt better auto-detection of + symbols that should be recognized as arguments. + + 2004-09-24 John W. Eaton + + * ov-str-mat.cc (default_numeric_conversion_function): Return + scalar object if numel == 1. + + 2004-09-23 John W. Eaton + + * ops.h (DEFSTRDBLCONVFN): New macro. + * OPERATORS/op-double-conv.cc: Use it to define new conversion op. + Define new range to double matrix conversion. + (install_int_conv_ops): Install new ops. + + * ops.h (DEFSTRINTCONVFN): New macro. + * OPERATORS/op-int-conv.cc: Use it to define new conversion ops. + (install_int_conv_ops): Install them. + + * (OCTAVE_SS_INT_OPS2, OCTAVE_SM_INT_OPS2, OCTAVE_MM_INT_OPS2, + OCTAVE_INSTALL_SS_INT_OPS2, OCTAVE_INSTALL_SM_INT_OPS2, + OCTAVE_INSTALL_MS_INT_OPS2, OCTAVE_INSTALL_MM_INT_OPS2): + Delete unused macros. + + * OPERATORS/op-int.h (OCTAVE_SS_INT_BOOL_OPS): New args Z1 and Z2. + (OCTAVE_SS_INT_OPS): Pass appropriately typed zero values to + OCTAVE_SS_INT_BOOL_OPS. + * OPERATORS/op-i64-i64.cc, OPERATORS/op-ui64-ui64.cc: Likewise. + + * pr-output.cc (pr_plus_format): Now template. + Specialize for Complex. + (octave_print_internal): Lookup print_conv_type using + octave_int, not just T. + + * ov-struct.cc (octave_struct::subsref): Pass skip to next_subsref. + + * oct-stream.cc (do_read): Hitting EOF should not be an error. + + 2004-09-22 John W. Eaton + + * pt-plot.cc (send_to_plot_stream): Skip automatic replot if in + multiplot mode. + + * variables.cc (get_global_value): New arg, silent. + * variables.h (get_global_value): Default value for silent arg is + false. + + 2004-09-22 David Bateman + + * ov-fcn-inline.cc (Finline): When called with a single arg, derive + argument of inline function in a compatible manner. + + 2004-09-22 Federico Zenith + + * DLD-FUNCTIONS/qz.cc (Fqz): New @tex section(s) in doc string for + better formating of printed documentation. Use @var in doc string. + + * DLD-FUNCTIONS/time.cc (Fstrftime): Fix typo in doc string. + * error.cc (Flasterr, Flastwarn): Likewise. + * mappers.cc (Farg, Fasinh, Fatanh, Ffinite, Fsin, Fsinh, Ftan): + Likewise. + * file-io.cc (Fmktemp): Likewise. + * pt-plot.cc (symbols_of_pt_plot): Fix typos in doc string for + gnuplot_has_frames. + + * input.cc (symbols_of_input): Replace --echo-input with new + --echo-commands in PS4 doc string. + + * pt-assign.cc (symbols_of_pt_assign): Mark print_rhs_assign_val + as built-in in doc string. + + * symtab.cc (symbols_of_symtab): Mark variables_can_hide_functions + as built-in in doc string. + + 2004-09-21 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.59. + + * oct-fstrm.h (octave_fstream::octave_fstream, + octave_fstream::create): Set default float format to actual native + format, not flt_fmt_native. + * oct-iostrm.h (octave_base_iostream::octave_base_iostream, + octave_istream::octave_istream, octave_ostream::octave_ostream): + Likewise. + * oct-prcstrm.h (octave_iprocstream::octave_iprocstream, + octave_oprocstream::octave_oprocstream, + octave_iprocstream::create, octave_oprocstream::create): + Likewise. + * oct-stdstrm.h (octave_stdiostream::octave_stdiostream, + octave_stdiostream::create): + Likewise. + * oct-stream.h (octave_base_stream::octave_base_stream): + Likewise. + * oct-strstrm.h (octave_base_strstream::octave_base_strstream, + octave_istrstream::octave_istrstream, octave_istrstream::create): + Likewise. + + 2004-09-21 David Bateman + + * data.cc (Freshape): Allow a single empty dimension argument + to flag unknown dimension and calculate its value from the + other dimensions. + + 2004-09-21 John W. Eaton + + * symtab.h (symbol_record::~symbol_record): Delete definition if + count goes to zero. + * symtab.cc (symbol_table::~symbol_table): Move here from symtab.h. + Call delete on each symbol record in the table instead of just + clearing them. + + 2004-09-17 David Bateman + + * DLD-FUNCTIONS/sort.cc (ascending_compare, descending_compare): + Now templates (avoids g++ 3.4.x compile problems). + Fix other uses of these functions to also treat them as templates. + (mx_sort): For unsigned EIGHT_BYTE_INT versions correct the test + for the position of NaN. Problems when mode was DESCENDING or + UNDEFINED. Use static_cast (dim) rather than + (unsigned int) dim. + (IFloatFlip): Now static. + + 2004-09-17 David Bateman + + * DLD-FUNCTIONS/det.cc (Fdet): Only compute estimate of the + condition number if requested as output. + + * DLD-FUNCTIONS/schur.cc (Fschur): Only compute unitary matrix if + requested as output. + + 2004-09-17 John W. Eaton + + * ov-fcn-inline.cc (octave_fcn_inline::octave_fcn_inline): + Call eval_string instead of feval ("eval", ...). + Construct anonymous function handle to avoid going through the + symbol table. + + * ov-fcn-handle.h (octave_fcn_handle::fcn_val): New function. + (octave_fcn_handle::octave_fcn_handle (const std:string&)): + New constructor. + + 2004-09-16 John W. Eaton + + * parse.y (frob_function): Clear id_name from curr_sym_tab, not + top_level_sym_tab. + + * symtab.cc (maybe_list): Count sizes using size_t, not int. + + * variables.cc (symbol_out_of_date): Always look in LOADPATH. + + 2004-09-15 John W. Eaton + + * OPERATORS/op-int-conv.cc: Define and install bool to int + conversions. + * OPERATORS/op-double-conv.cc: Define and install bool to double + conversions. + + * ov.cc (octave_value::assign): Handle subsref for containers. + * oct-lvalue.cc (octave_lvale::value): Likewise. + + * DLD-FUNCTIONS/sort.cc (mx_sort): Return octave_value, not + octave_value list. + + 2004-09-15 David Bateman + + * ov.cc (octave_value::octave_value (const ArrayN&, bool)): + New Constructor . + * ov.h: Provide decl. + + * DLD-FUNCTIONS/sort.cc (sortmode): New enum to define sort direction. + (template class vec_index): New class to contain values and + index for indexed sorts, replacing all previous struct versions. + Instantiate for double, Complex, char and octave_value. + (template static octave_value_list mx_sort (ArrayN &, int, + sortmode)): New templated version of mx_sort replacing all previous + versions, but specific to non indexed sorts. Instantiate for char + and double if not IEEE754. + (template <> static octave_value_list mx_sort (ArrayN &, + int, sortmode)): Specialized function of mx_sort of IEEE754. + (template static octave_value_list mx_sort_indexed + (ArrayN &, int, sortmode)): New templated version of mx_sort + for indexed sorts. Instantiate for double, Complex, char and + octave_value. + (ascending_compare, descending_compare): Comparison functions + for double, char, vec_index *, vec_index *, + vec_index *, vec_index. Fix Complex comparison + operator to sort by arg of values if absolute values are equal. + (Fsort): Update docs for new mode argument and for sorting of + strings and cell arrays of strings. Implement mode argument to + define ascending and descending sorts. Include sorting of cell + arrays of strings. Adapt for new templated versions of the mx_sort + function. + + 2004-09-15 John W. Eaton + + * ov-cell.cc (octave_cell::subsref): Pass nargout to next_subsref. + * ov-builtin.cc (octave_builtin::subsref): Likewise. + * ov-fcn-handle.cc (octave_fcn_handle::subsref): Likewise. + * ov-list.cc (octave_list::subsref): Likewise. + * ov-mapper.cc (octave_mapper::subsref): Likewise. + * ov-struct.cc (octave_struct::subsref): Likewise. + * ov-usr-fcn.cc (octave_user_function::subsref): Likewise. + + * ov-struct.cc, ov-struct.h (octave_struct::subsref (const + std::string&, const std::list&, int)): + Define this version. + (octave_struct::subsref (const std::string&, const + std::list&)): Panic in this version. + * ov-list.cc, ov-list.h: Likewise. + * ov-cell.cc, ov-cell.h: Likewise. + + * ov.cc (octave_value::subsref (int, const std::string&, const + std::list&, size_t)): New function. + * ov.h: Provide decl. + + * ov-cell.h (octave_cell::is_constant): Return false. + * ov-struct.h (octave_struct::is_constant): Delete. + * ov-list.h (octave_list::is_constant): Delete. + + 2004-09-14 David Bateman + + * DLD-FUNCTIONS/sort.cc (mx_sort (charNDArray&, bool, int)): + New function to sort character strings. + (Fsort): Handle character strings. + + 2004-09-11 John W. Eaton + + * ov-fcn-handle.cc (octave_fcn_handle::save_ascii): + Write directly to OS. + (octave_fcn_handle::load_ascii, octave_fcn_handle::load_binary, + octave_fcn_handle::load_hdf5): Check parse status after calling + eval_string. Don't dereference fh unless it is valid. + + 2004-09-11 David Bateman + + * ov-fcn-handle.cc (octave_fcn_handle::save_ascii, + octave_fcn_handle::load_ascii, octave_fcn_handle::save_binary, + octave_fcn_handle::load_binary, octave_fcn_handle::save_hdf5, + octave_fcn_handle::load_hdf5): New functions. + * ov-fcn-handle.h: Provide decls. + + * ov-fcn-inline.cc (octave_fcn_inline::load_ascii): + Allow spaces in saved function. + (octave_fcn_inline::save_hdf5): Properly close all HDF5 objects. + + * ls-oct-ascii.cc (read_ascii_data): Check return type of + .load_ascii for errors reading the variables + + * variables.cc (lookup_function_handle, clear_variable, + clear_symbol): New functions. + * variables.h: Provide decls. + + 2004-09-10 John W. Eaton + + * ov-builtin.cc (octave_builtin::do_multi_index_op): Use unwind + protect frame instead of a single unwind_protect::run. + * ov-mapper.cc (octave_mapper::do_multi_index_op): Likewise. + + * data.cc (fill_matrix, identity_matrix): + Also allow logical data type. + + 2004-09-10 David Bateman + + * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::double_value, + OCTAVE_VALUE_INT_MATRIX_T::scalar_value, + OCTAVE_VALUE_INT_SCALAR_T::double_value, + OCTAVE_VALUE_INT_SCALAR_T::scalar_value): New functions. + + 2004-09-10 John W. Eaton + + * ov-base-scalar.h (octave_base_scalar::clone, + octave_base_scalar::empty_clone): New functions. + + 2004-09-09 John W. Eaton + + * pt-pr-code.h (tree_print_code::newline): New optional arg, alt_nl. + * pt-pr-code.cc (tree_print_code::newline): Use it if not printing + newlines. + (tree_print_code::visit_statement): If we printed ";", call + newline with optional arg set to "". + (tree_print_code::printing_newlines): New data member. + (tree_print_code::tree_print_code): Initialize it. + (tree_print_code::suspend_newline, tree_print_code::resume_newline): + New functions. + (tree_print_code::newline, tree_print_code::indent): Use it + + * ov-fcn-handle.cc (octave_fcn_handle::print_raw): + Print code for anonymous function handles. + + 2004-09-08 John W. Eaton + + * ov-fcn-handle.cc (Ffunc2str, Ffunctions): Don't call substr(1) + on fh_nm, since we no longer need to skip "@" in the name. + + * error.cc (pr_where): Do a better job of printing location info. + + * input.cc (get_user_input): Print location info before the debug + prompt. From Keith Goodman . + + * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): + Save and set curr_caller_function and curr_caller_statement here. + * ov-mapper.cc (octave_mapper::do_multi_index_op): Likewise. + * ov-builtin.cc (octave_builtin::do_multi_index_op): Likewise. + + * pt-stmt.cc (curr_caller_statement): New variable. + * pt-stmt.h: Provide decl. + + * toplev.cc (curr_caller_function): New variable. + * toplev.h: Provide decl. + + * pt-arg-list.cc (convert_to_const_vector): + Unwind-protect index_position before modifying it. + Don't protect and set index_position unless stash_object is true. + + 2004-09-08 David Bateman + + * ov-fcn-inline.cc (octave_fcn_inline::save_ascii, + octave_fcn_inline::load_ascii, octave_fcn_inline::save_binary, + octave_fcn_inline::load_binary, octave_fcn_inline::save_hdf5, + octave_fcn_inline::load_hdf5): New functions. + * ov-fcn-inline.h: Provide decls. + + 2004-09-08 John W. Eaton + + * ov.h: Add octave_array_type_traits specialization for + boolNDArray element type. + + 2004-09-07 John W. Eaton + + * oct-stream.cc: Instantiate octave_stream::write for Array. + (octave_stream::read): Expand read_fptr_table to include dt_logical. + + * ov-bool.h (octave_bool::write): New function. + * ov-bool-mat.h (octave_bool_matrix::write): New function. + + * ov-fcn-inline.h (octave_fcn_inline::octave_fcn_inline): New copy + constructor. + (octave_fcn_inline::clone, octave_fcn_inline::empty_clone): + New functions. + + * ov-fcn-handle.h (octave_fcn_handle::octave_fcn_handle): New copy + constructor. + (octave_fcn_handle::clone, octave_fcn_handle::empty_clone): + New functions. + + 2004-09-06 John W. Eaton + + * ov.cc (install_types): Call octave_fcn_inline::register_type. + + * version.h (OCTAVE_API_VERSION): Now api-v10. + + * OPERATORS/op-b-b.cc, OPERATORS/op-bm-bm.cc: Define and install + unary plus and unary minus operators. + + * OPERATORS/op-int.h, OPERATORS/op-cm-cm.cc, + OPERATORS/op-cs-cs.cc, OPERATORS/op-m-m.cc, OPERATORS/op-range.cc: + Define and install unary plus operator. + + * ov.cc (unary_op_as_string): Handle op_uplus too. + + * parse.y (prefix_expr): Build unary plus op here instead of + converting to no-op. + (make_prefix_op): Accept op_uplus. + + 2004-09-03 John W. Eaton + + * OPERATORS/op-b-bm.cc (DEFCONV): Define bool scalar to bool + matrix conversion. + (install_b_bm_ops): Install it. + Install conversion for assignment of bool matrix to indexed bool. + * OPERATORS/op-b-b.cc (install_b_b_ops): Install conversion for + assignment of bool to indexed bool. + + 2004-09-03 David Bateman + + * OPERATORS/op-b-b.cc, OPERATORS/op-b-bm.cc, OPERATORS/op-bm-b.cc, + OPERATORS/op-bm-bm.cc: Modify concatenation between boolean types + so that it returns a boolean. + + * ov-bool.cc (octave_bool::do_index_op): Return boolean matrix. + + * ov-intx.h (do_index_op (const octave_value_list&, int)): + New function for indexed subsref of int types. + + 2004-09-03 John W. Eaton + + * OPERATORS/op-int.h (OCTAVE_SM_INT_OPS): Define int by double + mixed comparison and bool ops. + (OCTAVE_INSTALL_SM_INT_OPS): Install them. + (OCTAVE_MS_INT_OPS): Define double by int mixed comparison and + bool ops. + (OCTAVE_INSTALL_MS_INT_OPS): Install them + + * OPERATORS/op-i8-i8.cc, OPERATORS/op-i16-i16.cc, + OPERATORS/op-i32-i32.cc, OPERATORS/op-i64-i64.cc, + OPERATORS/op-ui8-ui8.cc, OPERATORS/op-ui16-ui16.cc, + OPERATORS/op-ui32-ui32.cc, OPERATORS/op-ui64-ui64.cc: + Define and install various mixed-type operators. + + * OPERATORS/op-int.h (OCTAVE_MM_INT_OPS): Also define mixed int + and double matrix comparison and bool ops. + (OCTAVE_INSTALL_MM_INT_OPS): Install them. + (OCTAVE_SS_INT_BOOL_OPS, OCTAVE_SM_INT_BOOL_OPS, + OCTAVE_MS_INT_BOOL_OPS, OCTAVE_MM_INT_BOOL_OPS): + Define logical AND and OR ops. + (OCTAVE_INSTALL_SS_INT_BOOL_OPS, OCTAVE_INSTALL_SM_INT_BOOL_OPS, + OCTAVE_INSTALL_MS_INT_BOOL_OPS, OCTAVE_INSTALL_MM_INT_BOOL_OPS): + Install them. + (OCTAVE_MM_INT_CMP_OPS, OCTAVE_MM_INT_BOOL_OPS): Accept prefix arg. + (OCTAVE_MM_CONV): New macro. + (OCTAVE_MM_INT_OPS): Use it to define complex matrix conversion. + (OCTAVE_MIXED_INT_CMP_OPS, OCTAVE_MIXED_INT_BOOL_OPS): New macros. + + * OPERATORS/op-int.h (OCTAVE_MS_INT_OPS): Don't define indexed int + matrix = complex scalar assignment ops. + (OCTAVE_MS_INT_OPS): Don't define indexed int matrix = complex + matrix assignment ops. + (OCTAVE_SM_CONV): New macro. + (OCTAVE_SM_INT_OPS): Use it to define int scalar -> (int|complex) + matrix widening ops. + (OCTAVE_RE_INT_ASSIGN_OPS, OCTAVE_CX_INT_ASSIGN_OPS): New macros. + (OCTAVE_INT_OPS): Use them here. + (OCTAVE_INSTALL_SS_INT_OPS): Install indexed int scalar = scalar + and indexed int scalar = complex scalar assignment conversions. + (OCTAVE_INSTALL_SM_INT_OPS): Install int scalar -> (int|complex) + matrix widening ops. Install indexed int scalar = + (int|real|complex) matrix assignment conversions. + (OCTAVE_INSTALL_MS_INT_OPS): Install indexed int matrix = complex + scalar assignment conversion. + (OCTAVE_INSTALL_MM_INT_OPS): Install int matrix -> complex matrix + widening op. Install indexed int matrix = complex matrix + assignment conversion. + (OCTAVE_INSTALL_RE_INT_ASSIGN_OPS, OCTAVE_INSTALL_CX_INT_ASSIGN_OPS): + New macros. + (OCTAVE_INSTALL_INT_OPS): Use them. + + * op-int.h: (OCTAVE_INSTALL_SM_INT_ASSIGNCONV): New macro. + * OPERATORS/op-i8-i8.cc, OPERATORS/op-i16-i16.cc, + OPERATORS/op-i32-i32.cc, OPERATORS/op-i64-i64.cc, + OPERATORS/op-ui8-ui8.cc, OPERATORS/op-ui16-ui16.cc, + OPERATORS/op-ui32-ui32.cc, OPERATORS/op-ui64-ui64.cc: + Use it to define mixed size integer scalar/integer matrix + assignment conversions. + + * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::complex_array_value, + OCTAVE_VALUE_INT_SCALAR_T::complex_array_vale): + New functions. + + 2004-09-02 John W. Eaton + + * DLD-FUNCTIONS/quad.cc (Fquad): Pass "__quad_fcn_" instead of + "__quad_fcn__" to unique_symbol_name. + + * ov-fcn-inline.cc (octave_fcn_inline): Pass "__inline_" instead + of "__inline__" to unique_symbol_name. + + * variables.cc (unique_symbol_name): Make better random symbol name. + + 2004-09-01 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.58. + + * Makefile.in (OP_INCLUDES): New variable. + Include OPERATORS/op-int.h here. + * Makefile.in (dist): Also link $(OP_INCLUDES). + + * Makefile.in (DISTFILES): Include $(EXTRAS) in the list. + + 2004-09-01 David Bateman + + * DLD-FUNCTION/quad.cc: Allow function handle and inline functions. + Use a unique function name and delete it on exit. + + * ov.h (is_inline_function): New virtual function. + * ov-fcn-inline.h (is_inline_function): New function. + * ov-base.h (is_inline_function): New function. + + * ov-fcn-inline.cc (octave_fcn_handle::octave_fcn_handle): + Use unique_symbol_name and clear_function instead of manipulating + symbol table directly. + + * variables.cc (unique_symbol_name): New function. + (clear_function): New function. + * variables.h: Provide decls. + + * dynamic-ld.cc (do_clear_function): Rename from clear_function. + + 2004-09-01 John W. Eaton + + * OPERATORS/op-i8-i8.cc, OPERATORS/op-i16-i16.cc, + OPERATORS/op-i32-i32.cc, OPERATORS/op-i64-i64.cc, + OPERATORS/op-ui8-ui8.cc, OPERATORS/op-ui16-ui16.cc, + OPERATORS/op-ui32-ui32.cc, OPERATORS/op-ui64-ui64.cc: + Define and install mixed assignment ops. + * op-int.h: Define mixed integer/double ops. + Define simple division ops. + + * ov-complex.h (octave_complex_scalar): New typedef to simplify + various macros where naming consistency matters. + + 2004-08-31 David Bateman + + * OPERATORS/op-int.h (ss_pow, ms_el_pow, mm_el_pow): New power + functions. + (sm_el_pow): Return correct type. + (OCTAVE_SS_POW_OPS, OCTAVE_SM_POW_OPS, OCTAVE_MS_POW_OPS, + OCTAVE_MM_POW_OPS): New macros to define the power operator over + integer types. + (OCTAVE_SS_INT_OPS, OCTAVE_SM_INT_OPS, OCTAVE_MS_INT_OPS, + OCTAVE_MM_INT_OPS): Use the new macros for the power operators. + (OCTAVE_INSTALL_SS_INT_OPS, OCTAVE_INSTALL_MS_INT_OPS, + OCTAVE_INSTALL_MM_INT_OPS): Install new power functions. + + * OPERATORS/op-int-conv.cc (INT_CONV_FUNCTIONS): Correct return + types for unsigned integer scalars and signed integer matrices. + + * ov-type-conv.h (OCTAVE_TYPE_CONV_BODY3): Conversion betwen same + types returns the original value. + + * bitfcns.cc (BITOP): Fix for mixed scalar/matrix ops. Allow + octave_range as an argument, by using class_name rather than + type_id to test. + + 2004-08-31 John W. Eaton + + * pr-output.cc (pr_int): Also handle bank_format. + (octave_print_internal (std::ostream& os, const intNDArray&, + bool, int)): Likewise. + + 2004-08-31 David Bateman + + * pr-output.cc (pr_int(std::ostream, const T&, int)): + New template function to print formatted integer types. + Instantiate it for all of the integer types. + (octave_print_internal (std::ostream, const intNDArray&, bool, + int)): Use pr_int. Align output up in columns, and check for + free_format or plus_format. + (octave_print_internal (std::ostream, const octave_int&, bool)): + Use pr_int. Check for free_format and plus_format. + + * ls-hdf5.cc (hdf5_read_next_data): When importing hdf5 files, + allow structures and lists (for backward compatibility). Also + allow importation of integer types into octave int and uint types. + + 2004-08-31 John W. Eaton + + * data.cc (fill_matrix, identity_matrix): Convert class name to + oct_data_conv::data_type and switch on that. + (identity_matrix (int, int)): New template. + (identity_matrix (int, int, const std::string&)): Use it. + + * ov.h (octave_type_traits, octave_array_type_traits): Move here. + * oct-stream.cc: From here. + + 2004-08-31 David Bateman + + * data.cc (Fzeros, Fones, Feye): Update help text for optional + class argument. + (static octave_value identity_matrix (int, int, const std::string&)): + New function to create identity matrices with an arbitrary type. + (Feye): Call new version of identity matrix function, even for scalars. + (static octave_value fill_matrix (const octave_value_list&, double, + const char *)): Update to allow arbitrary classes of matrices to be + created. + + 2004-08-31 John W. Eaton + + * ls-mat5.cc (read_int): New function. + + * oct-stream.cc (octave_base_stream::do_read, + octave_base_stream::read, octave_base_stream::write): Delete. + * oct-stream.h: Delete decls. + + * oct-stream.cc (octave_stream::read): Handle block_size and + separate input/output types. + (octave_stream::write): Handle block_size and various input types. + (octave_type_traits, octave_array_type_traits): New traits classes. + (do_read): New templates to read data and perform type conversion. + (octave_stream::write (const Array&, int, + oct_data_conv::data_type, int, oct_mach_info::float_format), + do_write, write_int): + New templates to write ints and perform type conversion. + Instantiate for various Octave types. + + * ov.cc (octave_value::write): New function. + * ov.h: Provide decl. + * ov-base.cc (octave_base_value::write): New function. + * ov-base.h: Provide decl. + * ov-complex.h (octave_complex::write): New function. + * ov-cx-mat.h (octave_complex_matrix::write): New function. + * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::write): New function. + (OCTAVE_VALUE_INT_SCALAR_T::write): New function. + * ov-re-mat.h (octave_matrix::write): New function. + * ov-scalar.h (octave_scalar::write): New function. + * ov-str-mat.h (octave_char_matrix_str::write): New function. + + * file-io.cc (Ffread): Handle block size, to/from format in + precision argument. + (Ffwrite): Handle block size in precision argument. + + 2004-08-25 David Bateman + + * ov-cell.cc (octave_cell::subsasgn): Delete elements of cell array + when type is "(" and rhs is empty. + + 2004-08-09 John W. Eaton + + * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::index_vector, + OCTAVE_VALUE_INT_SCALAR_T::index_vector): New functions. + + 2004-08-06 David Bateman + + * OPERATORS/op-struct.cc: New file. + * ov-struct.h (octave_struct::resize (const dim_vector&)): + New function. + * oct-map.h (Octave_map::resize (const dim_vector&)): New function. + * ov-map.cc (Octave_map::reshape): + Correct return for same sized reshape. + (Octave_map::resize (const dim_vector&)): New function. + (concat (const Octave_map&, const Octave_map&, const Array&)): + Complete concatenation function. + * Makefile.in (OP_XSRC): Include op-struct.cc in the list. + + 2004-08-05 John W. Eaton + + * pt-stmt.h (tree_statement::set_command, + (tree_statement::set_expression): New functions. + + * parse.y (param_list_beg): Handle pushing new symbol table + context for anonymous function handle parameter lists here. + (anon_fcn_handle): New non-terminal. + (expression): Include anon_fcn_handle here. + (make_anon_fcn_handle): New static function. + + 2004-08-05 David Bateman + + * ov.cc (octave_value::fcn_inline_value): New virtual function. + * ov.h (octave_value::fcn_inline_value): Provide decl. + * ov-base.cc (octave_base_value::fcn_inline_value): New function + * ov-base.h (octave_base_value::fcn_inline_value): Provide decl. + * ov-fcn-handle.cc (octave_fcn_handle::octave_fcn_handle + (const std::string&, const string_vector&, const std::string&), + octave_fcn_handle::convert_to_str_internal, Finline, Fargnames, + Fformula, Fvectorize): Delete. + (octave_fcn_handle::print_raw): Remove inline case. + * ov-fcn-handle.h (octave_fcn_handle::fcn_type, + octave_fcn_handle::octave_fcn_handle (const std::string&, const + string_vector&, const std::string&), + octave_fcn_handle::inline_fcn_name, + octave_fcn_handle::inline_fcn_text, + octave_fcn_handle::inline_fcn_arg_names, + octave_fcn_handle::is_inline, + octave_fcn_handle::convert_to_str_internal, + octave_fcn_handle::typ, octave_fcn_handle::iftext, + octave_fcn_handle::ifargs): Delete constructors, + functions, and data members (moved to ov-fcn-inline.h). + * Makefile.in: Include ov-fcn-inline.h and ov-fcn-inline.cc where + appropriate. + * ov-fcn-inline.h, ov-fcn-inline.cc: New class. + + 2004-08-05 John W. Eaton + + * ov-base-int.cc (octave_base_int_matrix::save_ascii, + octave_base_int_matrix::load_ascii, + octave_base_int_matrix::save_binary, + octave_base_int_matrix::load_binary, + octave_base_int_matrix::save_hdf5, + octave_base_int_matrix::load_hdf5, + octave_base_int_matrix::try_narrowing_conversion, + octave_base_int_scalar::print_raw, + octave_base_int_scalar::save_ascii, + octave_base_int_scalar::load_ascii, + octave_base_int_scalar::save_binary, + octave_base_int_scalar::load_binary, + octave_base_int_scalar::save_hdf5, + octave_base_int_scalar::load_hdf5): + Sprinkle with this-> as needed. + + * Makefile.in (EXTRAS): New macro. Move ov-base-int.cc here from + OV_INTTYPE_SRC. + (INCLUDES_FOR_INSTALL): New macro. + (install-inc, uninstall): Use it instead of INCLUDES. + + * variables.h (symbol_exist): Default for type is now "any". + + 2004-08-05 David Bateman + + * ov-fcn-handle.cc (octave_fcn_handle (const std::string&, + const string_vector&, const std::string&)): New constructor for inline + function handles. + (octave_fcn_handle::print_raw): Allow inline functions to be printed. + (octave_fcn_handle::convert_to_str_internal): New function to allow + Fchar to work on inlined function handles. + (Finline, Fformula, Fargnames, Fvectorize): New functions. + * ov-fcn-handle.h (octave_fcn_handle (const std::string&, + const string_vector&, const std::string&)): Provide decl. + (octave_fcn_handle::convert_to_str_internal): Provide decl. + (fcn_type): New enum for the type of function handle. + (octave_fcn_handle::inline_fcn_text, octave_fcn_handle::is_inline, + octave_fcn_handle::inline_fcn_arg_names): New functions. + (octave_fcn_handle::typ, octave_fcn_handle::iftext, + octave_fcn_handle::ifargs): New private variables for inline functions. + + 2004-08-04 John W. Eaton + + * parse.y (fcn_handle): + Recognize '@' FCN_HANDLE rather than just FCN_HANDLE. + Decrement lexer_flags.looking_at_function_handle here. + * lex.h (lexical_feedback::looking_at_function_handle): + New data member. + (lexical_feedback::init): Initialize it. + * lex.l (handle_identifier): Only reject keywords if we are + looking at a function handle. + ("@"): Recognize this separately from what follows. + Increment lexer_flags.looking_at_function_handle here. + + * ov-fcn-handle.h (octave_fcn_handle::octave_fcn_handle + (octave_function*, const std::string)): Delete. + * ov.h, ov.cc (octave_value::octave_value (octave_function *)): Delete. + (octave_value::octave_value (octave_function *, const std::string)): + Delete. + + * ov-fcn-handle.h (octave_fcn_handle::fcn): Now octave_value, not + pointer to octave_function. + (octave_fcn_handle::octave_fcn_handle (const octave_value&, const + std::string)): New constructor. + * variables.cc (lookup_function): Return octave_value, not pointer + to octave_function. Change all uses. + (lookup_user_function): Return octave_value, not pointer + to octave_user_function. Change all uses. + + 2004-08-03 John W. Eaton + + * ov-usr-fcn.cc (octave_user_fcn::do_multi_index_op): Call + install_automatic_vars here. + (octave_user_fcn::octave_user_fcn): Not here. + (install_automatic_vars): Don't mark argn_sr, nargin_sr, + nargout_sr, or varargin_sr as static. + + * oct-stream.cc (octave_scan): Avoid need for pushing two + characters back on the input stream. + + 2004-08-02 John W. Eaton + + * oct-stream.cc (octave_scan): For %i format, recognize numbers + with leading 0x or 0X as hex and leading 0 as octal. + + * OPERATORS/op-fcn-handle.cc: Delete. + * Makefile.in (OP_XSRC): Delete it from the list. + * pr-output.cc (octave_print_internal (std::ostream&, const + std::string&, bool, int): New function. + * ov-fcn-handle.cc (octave_value::subsref): New function. + * ov-fcn-handle.h (class fcn_handle_elt, class fcn_handle_array): + Delete. + (class octave_fcn_handle): Derive from octave_base_value, not + octave_base_matrix. + + * ov-cx-mat.cc (try_narrowing_conversion): Also allow complex to + real conversion for N-d arrays. + + 2004-07-30 John W. Eaton + + * lex.l ([^#% \t\r\n\;\,\"\'][^ \t\r\n\;\,]*{S}*): + Also recognize \r as a word list separator. + + 2004-07-27 John W. Eaton + + * bitfcns.cc (DO_BITSHIFT): Pass mask to bitshift. + (bitshift (double, int, EIGHT_BYTE_INT): New arg, mask. + (DO_UBITSHIFT, DO_SBITSHIFT): Use bitshfit, not operator >>. + Use nbits function from octave_int type to set bits_in_type. + + * ov-struct.cc (Fisfield): Only print usage message if number of + arguments is incorrect. Return false for invalid arguments. + From Andy Adler . + + 2004-07-27 David Bateman + + * Cell.cc (Cell::index): Quit early if an error occurs when + creating index vector object. + + * ov-int8.cc, ov-int16.cc, ov-int32.cc, ov-int64.cc, ov-uint8.cc, + ov-uint16.cc, ov-uint32.cc, ov-uint64.cc (HDF5_SAVE_TYPE): Define + for HDF5 native format for the type. + + * ov-base-int.h (save_ascii, save_binary, load_binary, save_hdf5): + Delete unused arguments. + + * ov-base-int.cc (octave_base_int_matrix::save_ascii, + octave_base_int_matrix::save_binary, + octave_base_int_scalar::save_ascii, + octave_base_int_scalar::save_binary, + octave_base_int_scalar::save_hdf5): Delete unused argument. + + * ov-base-int.cc (octave_base_int_matrix::save_binary, + octave_base_int_matrix::load_binary, + octave_base_int_matrix::save_hdf5, + octave_base_int_matrix::load_hdf5, + octave_base_int_scalar::save_ascii, + octave_base_int_scalar::load_ascii, + octave_base_int_scalar::save_binary, + octave_base_int_scalar::load_binary, + octave_base_int_scalar::save_hdf5, + octave_base_int_scalar::load_hdf5): Implement missing functions. + + 2004-07-23 David Bateman + + * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::array_value, + OCTAVE_VALUE_INT_SCALAR_T::array_value): new methods to extract array + value from integer types. + + * bitfcns.cc (BITOPX): New Macro renamed from BITOP. + (BITOP): Alter to allow different types and call BITOP appropriately. + (DO_SBITSHIFT, DO_UBITSHIFT): New macros for signed, unsigned + bitshifts. + + (DO_BITSHIFT): Test for shift of more bits than in type, which is + undefined. Generalize to allow double args as well. + (Fbitshift): Add int and double types. + (Fbitmax): Return 53 bit value which conforms to IEEE754 double + mantissa. + (Fintmax, Fintmin): New functions. + (Fbitget, Fbitset, Fbitcmp): Delete. + + * OPERATORS/op-int.h: Add sm_el_pow function + + * ops.h (CATOPDECL, DEFCATOPX, DEFCATOP, DEFCATOP_FB, DEFNDCATOP_FN, + CATOP_NONCONFORMANT, INSTALL_CATOP): New macros. + + * OPERATORS/op-b-b.cc, OPERATORS/op-b-bm.cc, OPERATORS/op-bm-b.cc, + OPERATORS/op-bm-bm.cc, OPERATORS/op-cell.cc, OPERATORS/op-chm.cc, + OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-m.cc, + OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-cs.cc, + OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc, OPERATORS/op-m-cm.cc, + OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc, OPERATORS/op-m-s.cc, + OPERATORS/op-range.cc, OPERATORS/op-s-cm.cc, OPERATORS/op-s-cs.cc, + OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc, OPERATORS/op-str-str.cc, + OPERATORS/op-str-m.cc, OPERATORS/op-str-s.cc (CATOPDECL, DEFCATOPX, + DEFCATOP, DEFCATOP_FB, DEFNDCATOP_FN, CATOP_NONCONFORMANT, + INSTALL_CATOP): Use them to define concatenation functions. + + * OPERATORS/op-int.h (OCTAVE_CONCAT_FN, OCTAVE_INSTALL_CONCAT_FN): + New macros to define and install concatentaion functions for int/uint + types. + + * TEMPLATE-INST/Array-tc.cc (INSTANTIATE_ARRAY_CAT): Delete. + + * pt-mat.cc (tm_row_const::tm_row_const_rep::do_init_element): + Also append empty elements to the list of elements to be parsed. + (tree_matrix::rvalue): Use new concatenation binary operators. + + * data.cc (cat_add_dims): Delete (now dim_vector::concat). + (do_cat): Use new concatenation binary operators. + + * ov-typeinfo.cc (cat_op_fcn): Instantiate the array of cat functions. + (register_cat_op, do_register_cat_op, do_lookup_cat_op): New functions. + (cat_ops): Lookup table of binary concatentaion operators. + + * ov-typeinfo.h (lookup_cat_op): New function. + + * ov.cc (gripe_cat_op, gripe_cat_op_conv, do_cat_op): New functions. + + * ov.h (cat_op_fcn): Definition. + (resize, do_cat_op): New functions. + + * ov-intx.h (resize): New_function + + * version.h (OCTAVE_API_VERSION): Bump version to api-v9. + + * Cell.cc, Cell.h, oct-map.cc, oct-map.h (cat): Delete. + (concat): New function. + + * Cell.cc, Cell.h (insert): New function + + * ov-base.cc, ov-base.h, ov-scalar.h, ov-complex.h, ov-bool.h, + ov-range.h, ov-base-mat.h, (resize): New function. + + 2004-07-23 John W. Eaton + + * symtab.cc (whos_parameter): Move decl here, from symtab.h. + + 2004-07-23 Oyvind Kristiansen + + * symtab.cc (symbol_record::subsymbols_list): New method. + (symbol_record::maybe_list): Call to subsymbols_list and merge + result with the original list of symbols. + + * symtab.cc (symbol_record::make_dimensions_string): New method. + (symbol_record::print_symbol_info_line): Print N-d info. Output + for long format now under control of format string. + (symbol_table::maybe_list): Headers to whos listing updated. + Also print footer info. + (symbol_table::print_descriptor): Method printing the + header of whos listings. + (symbol_table::parse_whos_line_format): New method. + (whos_line_format, Vwhos_line_format): New built-in variables. + (symbols_of_symtab): DEFVAR them. + (symbol_record::nelem, symbol_record::symbol_def::nelem, + symbol_record::byte_size, symbol_record::symbol_def::byte_size): + New methods. + (symbol_record::dimensions_string_req_first_space): New method. + (symbol_record::dimensions_string_req_total_space): New method. + * symtab.h (whos_parameter): New struct. Container for one + parameter in whos_line_format. + + 2004-07-22 Paul Kienzle + + * DLD-FUNCTIONS/dassl.cc (Fdassl): Fix doc string. + * ov-struct.cc (Fstruct): Likewise. + * symtab.cc (Fdebug_symtab_lookups): Likewise. + + 2004-07-22 David Bateman + + * data.cc (Fsize): Return 1 for dimensions exceeding ndim. + + * ov.cc (octave_value::octave_value (const ArrayN)): + New constructor. + * ov.h: Provide decl. + * ov-cx-mat.h (octave_complex_matrix (const ArrayN&)): + New constructor. + * ov-re-mat.h (octave_complex_matrix (const ArrayN&)): + New constructor. + + * ov-re-mat.h (octave_matrix(const ArrayN&)): New constructor + * pt-loop.cc (DO_ND_LOOP): New macro for use of NDArray in for loop. + (tree_simple_for_command::eval): Use it, and allow iteration over + cell arrays. + + 2004-07-12 John W. Eaton + + * ov-intx.h: N-d array and scalar extractor functions take no args. + + * ov.h (octave_value::int8_scalar_value, + octave_value::int16_scalar_value, octave_value::int32_scalar_value, + octave_value::int64_scalar_value, octave_value::uint8_scalar_value, + octave_value::uint16_scalar_value, octave_value::uint32_scalar_value, + octave_value::uint64_scalar_value): New functions. + * ov-base.cc (octave_base_value::int8_scalar_value, + octave_base_value::int16_scalar_value, + octave_base_value::int32_scalar_value, + octave_base_value::int64_scalar_value, + octave_base_value::uint8_scalar_value, + octave_base_value::uint16_scalar_value, + octave_base_value::uint32_scalar_value, + octave_base_value::uint64_scalar_value): New functions. + * ov-base.h: Provide decls. + + * lex.l: (Vtoken_count): New static variable. + (COUNT_TOK_AND_RETURN): New macro. Use it everywhere a token is + returned to the parser. + (F__token_count__): New function. + + 2004-06-25 John W. Eaton + + * OPERATORS/op-int-conv.cc: Add conversions for range type. + + 2004-06-17 John W. Eaton + + * bitfcns.cc (bitfcns): New file. + * Makefile.in (DIST_SRC): Add it to the list. + + 2004-06-16 John W. Eaton + + * OPERATORS/op-int.h: New file. + * OPERATORS/op-i16-i16.cc, OPERATORS/op-i8-i8.cc, + OPERATORS/op-ui32-ui32.cc, OPERATORS/op-i32-i32.cc, + OPERATORS/op-int-conv.cc, OPERATORS/op-ui64-ui64.cc, + OPERATORS/op-i64-i64.cc, OPERATORS/op-ui16-ui16.cc, + OPERATORS/op-ui8-ui8.cc: Use new macros from op-int.h. + + 2004-06-14 John W. Eaton + + * pr-output.h, pr-output.cc (octave_print_conv): New traits class. + (template void octave_print_internal (std::ostream&, + const intNDArray&, bool, int), + (template void octave_print_internal (std::ostream&, + const octave_int&, bool)): New template functions. + Instantiate versions for new int types. + + * ov-typeinfo.h (octave_value_typeinfo::type_conv_ops): + New data member. + (octave_value_typeinfo::register_type_conv_op, + octave_value_typeinfo::lookup_type_conv_op, + octave_value_typeinfo::do_register_type_conv_op, + octave_value_typeinfo::do_lookup_type_conv_op): New functions. + + * ov-re-mat.cc (Fdouble): New function. + + * ov-range.h (octave_range::reshape): Reshape array_value, not + matrix_value. + + * ov-base-scalar.h (octave_base_scalar::all, + octave_base_scalar::any, octave_base_scalar::is_true): Use + ST() instead of 0.0. + + * ov-base-mat.h (octave_base_matrix::byte_size): New function. + + * ops.h (INSTALL_COLNVOP, DEFCONVFNX, DEFDBLCONVFN, DEFCONVFN, + DEFCONVFN2): New macros. + + * DLD-FUNCTIONS/filter.cc (Ffilter): Kluge type conversions. + + * ov.cc (install_types): Register new integer types. + + * ov.h, ov.cc (octave_value::octave_value (const octave_int8&), + octave_value::octave_value (const octave_uint8&), + octave_value::octave_value (const octave_int16&), + octave_value::octave_value (const octave_uint16&), + octave_value::octave_value (const octave_int32&), + octave_value::octave_value (const octave_uint32&), + octave_value::octave_value (const octave_int64&), + octave_value::octave_value (const octave_uint64&), + octave_value::octave_value (const int8NDArray&), + octave_value::octave_value (const uint8NDArray&), + octave_value::octave_value (const int16NDArray&), + octave_value::octave_value (const uint16NDArray&), + octave_value::octave_value (const int32NDArray&), + octave_value::octave_value (const uint32NDArray&), + octave_value::octave_value (const int64NDArray&), + octave_value::octave_value (const uint64NDArray&)): + New constructors. + + * ov.h (octave_value::internal_rep): New function. + (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Also define + static_type_id, static_type_name, and static_class_name + functions. + + * Cell.h (Cell::reshape (const dim_vector&)): New forwarding + function for return type conversion. + + * ov-int16.cc, ov-int16.h, ov-int32.cc, ov-int32.h, ov-int64.cc, + ov-int64.h, ov-int8.cc, ov-int8.h, ov-uint16.cc, ov-uint16.h, + ov-uint32.cc, ov-uint32.h, ov-uint64.cc, ov-uint64.h, ov-uint8.cc, + ov-uint8.h, ov-type-conv.h, ov-int-traits.h, + OPERATORS/op-int-conv.cc, OPERATORS/op-double-conv.cc, + OPERATORS/op-i16-i16.cc, OPERATORS/op-i32-i32.cc, + OPERATORS/op-i64-i64.cc, OPERATORS/op-i8-i8.cc, + OPERATORS/op-ui16-ui16.cc, OPERATORS/op-ui32-ui32.cc, + OPERATORS/op-ui64-ui64.cc, OPERATORS/op-ui8-ui8.cc: New files. + Makefile.in: Add them to the appropriate lists. + + 2004-06-03 John W. Eaton + + * ov-fcn-handle.h (octave_function_handle::is_matrix_type, + octave_function_handle::is_numeric_type, + octave_function_handle::is_constant, + octave_function_handle::is_true): New functions. + (octave_function_handle::is_defined): Delete (inherited version is + OK). + + 2004-06-03 David Bateman + + * DLD-FUNCTIONS/filter.cc: Fix for length(a)=1 && length(b)=2 case. + + 2004-05-07 John W. Eaton + + * ov.cc (octave_value::print_with_name): Only print name tag if + Vprint_answer_id_name is true. + + * octave.cc (intern_argv): Insert __nargin__ in top_level_sym_tab + instead of making it a builtin variable. Mark it static. + * ov-usr-fcn.cc (octave_user_function::install_automatic_vars): + Mark local automatic variables static. + + 2004-04-30 John W. Eaton + + * oct-stream.cc (octave_base_stream::clearerr): New function. + (octave_stream::clearerr): New function. + (seek (long, int)): Call clearerr here. + * oct-stdstrm.h (octave_stdiostream::clear): New function. + * c-file-ptr-stream.h (c_file_ptr_buf::clear, + i_c_file_ptr_stream::clear, o_c_file_ptr_stream::clear, + io_c_file_ptr_stream::clear): New functions. + + 2004-04-29 David Bateman + + * load-save.cc (Fload, Fsave): Accept -mat as well as -mat-binary. + + 2004-04-27 David Bateman + + * DLD-FUNCTIONS/sort.cc: Add missing "class" keywords to template + instantiations. + + 2004-04-22 John W. Eaton + + * pt-plot.cc (Fclearplot): Temporarily turn off automatic_replot. + Clear display after resetting title, labels, etc. + + 2004-04-22 John W. Eaton + + * pt-colon.cc (tree_colon_expression::rvalue): Also check for + error_state after evaluating each subexpression. + + 2004-04-22 David Bateman + + * ov-base-scalar.h (octave_base_scalar::permute): New function. + + * ov-base-mat.cc (octave_base_matrix::is_true): Make N-d aware. + + 2004-04-22 John W. Eaton + + * oct-stream.cc (printf_value_cache::curr_value): Now NDArray. + (printf_value_cache::double_value): Extract N-d array, not Matrix. + + 2004-04-21 John W. Eaton + + * parse.y (function2): Pass id name to frob_function. Delete id. + (frob_function): Accept function name instead of identifier. + Don't try to rename symbol table entry. Lookup symbol record for + function name here. Insert name in symbol table if needed. + Operate on symbol record instead of identifier. + + 2004-04-21 David Bateman + + * DLD_FUNCTIONS/fft.cc(do_fft): Correctly initialize the variable dim + for scalar arguments. + + * DLD-FUNCTIONS/minmax.cc: Handle single vector arg correctly. + + 2004-04-20 John W. Eaton + + * ls-mat-ascii.cc (read_mat_ascii_data): Prepend "X" to keywords. + Only drop text after last "." in name. + + * lex.l (is_keyword): New function. + (Fiskeyword): Use it. + * lex.h: Provide decl. + + * lex.l (is_keyword_token): Rename from is_keyword. + + 2004-04-16 John W. Eaton + + * file-io.cc (maybe_warn_interface_change): New function. + (fopen_mode_to_ios_mode): Use it. + + 2004-04-16 Paul Kienzle + + * file-io.cc (fopen_mode_to_ios_mode): Default to binary mode. + (Ffopen): Document 't' and 'b' mode flags. + + 2004-04-16 John W. Eaton + + * Makefile.in (DLD_XSRC): Add gcd.cc to the list. + + 2004-04-16 David Bateman + + * DLD-FUNCTIONS/gcd.cc: New file. + + 2004-04-15 David Bateman + + * ov-ch-mat.h: convert_to_str_interal returns charNDArray. + + 2004-04-12 John W. Eaton + + * version.h (OCTAVE_BUGS_STATEMENT): Bug list is now bug@octave.org. + + 2004-04-08 John W. Eaton + + * ov-base-mat.cc (octave_base_matrix::do_index_op): Quit early + if an error occurs when creating index vector object. + + * ov.cc (octave_value::numeric_assign): Always call maybe_mutate + on return value. + + 2004-04-06 David Bateman + + * DLD_FUNCTIONS/sort.cc: Use the new template sort class, adapt for + N-d arrays, and allow optional dim argument. + + * DLD_FUNCTIONS/fftn.cc: Save result of transpose operation. + Check for failure of transpose. + + 2004-04-02 John W. Eaton + + * ov-bool.h (octave_bool::bool_array_value): New function. + + * ov-base-mat.cc (octave_base_matrix::subsasgn): Don't allow + expressions like x(i)(j) or x(i){j} when x is empty. + + * load-save.cc (get_file_format): Error if file does not exist. + (Fload): Also complain here if specific file type is specified and + file does not exist. + + 2004-04-02 Quentin Spencer + + * parse.y: Use persistent instead of static in warnings messages. + + 2004-04-02 John W. Eaton + + * pt-decl.cc (tree_static_command::do_init): Initialize to empty + matrix by default. + + 2004-04-02 David Bateman + + * ov-re-mat.cc (octave_matrix::convert_to_str_internal): + Return charNDArray. + * ov-bool-mat.cc (octave_bool_matrix::convert_to_str_internal): + Call array_value. + + * DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc, + DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/minmax.cc, + DLD-FUNCTIONS/filter.cc: + Convert for N-d array, better Matlab compatibility. + + * load-save.cc (Fload): Better handling of non existent files. + + 2004-03-19 John W. Eaton + + * ov-list.cc (octave_list::subsref): Correctly create return value. + Return comma-separate list if {-style indexing extracts more than + one value. + + 2004-03-12 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.57. + (OCTAVE_API_VERSION): Now api-v8. + + * ov-cell.cc (octave_cell::save_hdf5): Handle empty cells. + (octave_cell::load_hdf5): Likewise. + + 2004-03-11 John W. Eaton + + * ov-base-mat.cc (octave_base_matrix::subsasgn): If empty, + allow type conversion when indexing with "{" and ".". + + 2004-03-10 John W. Eaton + + * pr-output.cc (init_format_state): Also set compact_format. + (pr_col_num_header): Print one newline character before column + headers for compact format. + + 2004-03-09 John W. Eaton + + * version.h (OCTAVE_WWW_STATEMENT): New macro. + (OCTAVE_STARTUP_MESSAGE): Include it here. + (OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS): And here. + + * octave.cc (verbose_usage): Use OCTAVE_WWW_STATEMENT here. + + * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): If there are no + nonzero elements, return [](0x1) or [](1x0), not [](0x0). + Correctly preserve orientation for row vectors. + + 2004-03-08 Petter Risholm + + * data.cc (do_cat): Check for length of args before getting dimension. + New arg, fname. Print usage message corresponding to fname. + (Fcat): Pass "cat" as fname arg to do_cat. + (Fhorzcat): Pass "horzcat" as fname arg to do_cat. + (Fvertcat): Pass "vertcat" as fname arg to do_cat. + + 2004-03-05 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.56. + (OCTAVE_API_VERSION): Now api-v7. + + 2004-03-04 John W. Eaton + + * ov-struct.cc (Frmfield): New function + + * oct-map.h (Octave_map::contains): Return bool, not int. + + * ov-cell.cc (Fiscellstr): No error if arg is not a cell array. + (Fcellstr): Return arg if it is already a cell array of character + strings. + + 2004-03-03 John W. Eaton + + * ov-bool.cc (octave_bool::load_hdf5, octave_bool::save_hdf5): + Avoid unnecessary casts. + * ov-bool-mat.cc (octave_bool_matrix::load_hdf5, + octave_bool_matrix::save_hdf5): Likewise. + * ov-cell.cc (octave_cell::load_hdf5, octave_cell::save_hdf5): + Likewise. + * ov-complex.cc (octave_complex::load_hdf5, + octave_complex::save_hdf5): Likewise. + * ov-cx-mat.cc (octave_complex_matrix::load_hdf5, + octave_complex_matrix::save_hdf5): Likewise. + * ov-range.cc (octave_range::load_hdf5, octave_range::save_hdf5): + Likewise. + * ov-re-mat.cc (octave_matrix::load_hdf5, octave_matrix::save_hdf5): + Likewise. + * ov-scalar.cc (octave_scalar::load_hdf5, octave_scalar::save_hdf5): + Likewise. + * ov-str-mat.cc (octave_char_matrix_str::load_hdf5, + octave_char_matrix_str::save_hdf5): Likewise. + + 2004-03-03 David Bateman + + * ov-cell.cc (octave_cell::save_hdf5, octave_cell::load_hdf5): + Make N-d aware. + + 2004-03-03 John W. Eaton + + * parse.y: Delete spaces surrounding = in %name-prefix directive. + + 2004-03-01 Petter Risholm + + * Cell.cc (Cell::cat): New function. + * Cell.h: Provide decl. + + * oct-map.cc (Octave_map::cat): New function. + * oct-map.h: Provide decl. + + * data.cc (Fcat): Speedup implementation. + + * data.cc (Fhorzcat, Fvertcat): New functions. + + * Array-tc.cc: Instantiate cat function. + + 2004-03-01 David Bateman + + * ls-hdf5.cc (save_hdf5_empty, load_hdf5_empty): New functions + to save/load empty matrices keeping their dimensions. + * ls-hdf5.h (save_hdf5_empty, load_hdf5_empty): Provide decls. + + * ov-re-mat.cc (save_hdf5, load_hdf5): Cleanup, check empty matrix. + * ov-cx-mat.cc (save_hdf5, load_hdf5): Ditto. + * ov-bool-mat.cc (save_hdf5, load_hdf5): Ditto. + + * ov-str-mat.cc (save_ascoo, load_ascii, save_binary, + load_binary, save_hdf5, load_hdf5): Cleanup, check empty matrix, + and save/load N-d arrays. + + 2004-02-27 John W. Eaton + + * octave.cc (execute_startup_files): Don't find current directory + for absolute name of local_rc until after executing home_rc. + + 2004-02-24 John W. Eaton + + * input.cc (input_event_hook): Return type is now int. Return 0. + + * file-io.cc (do_stream_open): Don't call ::error if stream can't + be created. Don't call ::fopen if arch is invalid. Set error + state for stream if fopen fails. + * oct-stream.h (octave_stream::error (const char *)): New function. + (octave_stream::error (const std::string&)): Now public. + + 2004-02-23 John W. Eaton + + * file-io.cc (Fftell): Return long integer instead of streamoff_array. + (do_stream_open): Create octave_stdiostream instead of octave_fstream. + + * oct-fstrm.cc (octave_fstream::seek, octave_fstream::tell): + Always fail. Signatures now match C library functionsb. + * oct-iostrm.cc (octave_base_iostream::seek, + octave_base_iostream::tell): Likewise. + * oct-strstrm.cc (octave_base_strstream::seek, + octave_base_strstream::tell): Likewise. + + * oct-stream.cc (octave_stream::seek, octave_stream::tell): + Signatures now match C-library functions. + + * oct-stdstrm.cc (octave_stdiostream::seek, octave_stdiostream::tell): + Call io_c_file_ptr_stream::seek and tell. Signatures now match + C-library functions. + + * c-file-ptr-stream.h (c_file_ptr_buf::seek, c_file_ptr_buf::tell): + New functions. + (i_c_file_ptr_stream::seek, i_c_file_ptr_stream::tell): Likewise. + (o_c_file_ptr_stream::seek, o_c_file_ptr_stream::tell): Likewise. + (io_c_file_ptr_stream::seek, io_c_file_ptr_stream::tell): Likewise. + + 2004-02-20 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.55. + (OCTAVE_API_VERSION): Now api-v6. + + * sighandlers.cc (sigfpe_handler, sigpipe_handler): + Don't increment octave_interrupt_state if it is less than 0. + (sigint_handler): If octave_interrupt_state is less than zero, + reset it. + + * pt-except.cc (do_catch_code): Call OCTAVE_QUIT here so the catch + code won't run if an interrupt is pending. Don't run catch code + if octave_interrupt_state is less than zero. + + 2004-02-20 Per Persson + + * Makefile.in (OCT_LINK_DEPS, OCTINTERP_LINK_DEPS): + Include $(LIBS) in the list before $(FLIBS). + + 2004-02-20 John W. Eaton + + * pr-output.cc (octave_print_internal (std::ostream&, const + Range&, bool, int)): Don't print values beyond the limits of the + range. + + * sighandlers.cc (sigint_handler): Print message after two + consecutive interrupts, dump core after three or more. + + * load-save.cc (dump_octave_core): Handle core size limit. + Rename from save_user_variables. Change all callers. + (Fload, dump_octave_core, Fsave): Open HDF5 fils in binary mode. + (do_save): Extract switch over file types to separate function. + + * load-save.cc (Voctave_core_file_limit): New variable. + (octave_core_file_limit): New function. + (symbols_of_load_save): Add DEFVAR for octave_core_file_limit. + + * load-save.cc (Voctave_core_file_name): New variable. + (octave_core_file_name): New function. + (symbols_of_load_save): Add DEFVAR for octave_core_file_name. + + * load-save.cc (Voctave_core_file_format): + Rename from Voctave_core_format. + (octave_core_file_format): Rename from octave_core_format. + (symbols_of_load_save): Fix DEFVAR to match. + + 2004-02-19 John W. Eaton + + * ov.cc (Fsizeof): New function. + + * ov.h (octave_value::byte_size): New function. + * ov-base.h (octave_base_value::byte_size): New function. + * ov-base-scalar.h (octave_base_scalar::byte_size): New function. + * ov-bool-mat.h (octave_bool_matrix::byte_size): New function. + * ov-ch-mat.h (octave_char_matrix::byte_size): New function. + * ov-cx-mat.h (octave_complex_matrix::byte_size): New function. + * ov-re-mat.h (octave_matrix::byte_size): New function. + * ov-range.h (octave_range::byte_size): New function. + * ov-cell.cc (octave_cell::byte_size): New function. + * ov-cell.h: Provide decl. + * ov-struct.cc (octave_struct::byte_size): New function. + * ov-struct.h: Provide decl. + * ov-streamoff.h (octave_streamoff::byte_size): New function. + * ov-list.cc (octave_list::byte_size): New function. + * ov-list.h: Provide decl. + + * xpow.cc (elem_xpow (const Matrix&, double)): + Convert both operands to Complex if any element of A is negative. + (elem_xpow (const NDArray&, double)): Likewise. + + 2004-02-18 John W. Eaton + + * load-save.cc (Voctave_core_format): New static_variable. + (octave_core_format): New function. + (symbols_of_load_save): Add DEFVAR for octave_core_format. + (get_save_format): Rename from get_default_save_format. + Pass name of format as arg. New optional arg, fallback_format. + Change all uses. + (save_user_variables): Use pass Voctave_core_format to + get_save_format here. Pass LS_BINARY as fallback_format. + + * sighandlers.cc (my_friendly_exit): New optional arg, save_vars. + Only call save_user_variables if save_vars is true. + (sigint_handler): If interactive, offer to abort and save + workspace after three consecutive interrupts. + (sigint_handler, sigpipe_handler, sigfpe_handler): + Increment octave_interrupt_handler instead of setting it to 1. + + 2004-02-16 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.54. + (OCTAVE_API_VERSION): Now api-v5. + + * Makefile.in (DLD_XSRC): Always include fftw_wisdom.cc. + + * DLD-FUNCTIONS/fftw_wisdom.cc: + Rename from DLD-FUNCTIONS/fft_wisdom.cc. + (Vfftw_wisdom_prog): Delete extern decl. + (Ffftw_wisdom): Rename from Ffft_wisdom. + Use Vfftw_wisdom_prog instead of Vwisdom_prog. + Always define function. Signal error if not configured to use FFTW3. + + * defaults.cc (symbols_of_defaults): Rename WISDOM_PROGRAM to be + FFTW_WISDOM_PROGRAM. + (Vfftw_wisdom_prog): Rename from Vwisdom_prog. + (fftw_wisdom_program): Rename from wisdom_program. + For simplicity, always define FFTW_WISDOM_PROGRAM even when not + using fftw3. + (set_default_wisdom_prog): Look for OCTAVE_FFTW_WISDOM_PROGRAM in + the environment instead of OCTAVE_WISDOM_PROGRAM. + (set_default_fftw_wisdom_prog): Rename from set_default_wisdom_prog. + * defaults.h.in (Vfftw_wisdom_prog): Provide extern decl. + + 2004-02-16 David Bateman + + * DLD-FUNCTIONS/fft.cc: Adapt for Nd arrays, combine with ifft.cc. + * DLD-FUNCTIONS/ifft.cc: Delete. + * DLD-FUNCTIONS/fft2.cc: Adapt for Nd arrays, combine with ifft.cc. + * DLD-FUNCTIONS/ifft2.cc: Delete. + * DLD-FUNCTIONS/fftn.cc: New function for Nd FFT and inverse FFT. + * DLD-FUNCTIONS/fft_wisdom.cc: New function to manipulate FFTW + wisdom. + + * Makefile.in: Remove ifft.cc and ifft2.cc. Add fftn.cc and + ifftn.cc. Make building of fft-wisdom.cc conditional on the + value of FFTW_LIBS. + * defaults.cc (Vwisdom_prog): New variable + (set_default_wisdom_prog, wisdom_prog): New functions. + (symbols_of_defaults): Add DEFVAR for wisdom_prog. + + 2004-02-16 John W. Eaton + + * ov-list.cc (octave_list::subsasgn): Call assign for Cell objects + here, not the base octave_value::assign. + + 2004-02-15 John W. Eaton + + * lex.l (yywrap): Don't #undef this symbol. + + 2004-02-15 Petter Risholm + + * pt-mat.cc: Make [,] concatenation work for N-d arrays. + + 2004-02-15 John W. Eaton + + * data.cc (do_cat): Merge with Fcat. + + 2004-02-15 Petter Risholm + + * ov-cell.cc (Fstruct2cell): New function. + + 2004-02-14 John W. Eaton + + * Makefile.in (OCTINTERP_LINK_DEPS, OCT_LINK_DEPS): Always define. + + * oct-conf.h.in: Add OCTAVE_CONF_DL_LD, OCTAVE_CONF_DL_LDFLAGS, + and OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS. + Delete OCTAVE_CONF_MKOCTFILE_SH_LDFLAGS. + + * toplev.cc (octave_config_info): Delete MKOCTFILE_SH_LDFLAGS. + Add DL_LD, DL_LDFLAGS, and MKOCTFILE_DL_LDFLAGS to the struct. + + 2004-02-14 Per Persson + + * Makefile.in (%.oct): Use DL_LD instead of SH_LD to build .oct files. + + 2004-02-14 John W. Eaton + + * ov-base-scalar.h (octave_base_scalar::squeeze): New function. + + 2004-02-13 Petter Risholm + + * data.cc (Fcat): New function. + * data.cc (do_cat): New function. + * data.cc (cat_add_dims): New function. + + 2004-02-13 John W. Eaton + + * toplev.cc (main_loop): Call octave_parse, not yyparse. + * octave.cc (octave_main): Increment octave_debug, not yydebug. + * parse.y (%name-prefix): New directive, set to "octave_". + * parse.h: Provide declarations for octave_lex and octave_parse + instead of yylex and yyparse. + * lex.l (%option prefix): New directive, set to "_octave". + Define yylval to be octave_lval. + Move definitions of YY_INPUT, YY_FATAL_ERROR, TOK_RETURN, + TOK_PUSH_AND_RETURN, BIN_OP_RETURN, XBIN_OP_RETURN here. + * lex.h: From here. + + 2004-02-07 Petter Risholm + + * ov-struct.cc (Fcell2struct): New function. + (cell2struct_check_args, cell2struct_construct_idx): Likewise. + + 2004-02-07 John W. Eaton + + * ov-scalar.h (octave_scalar::empty_clone): + Return empty octave_matrix, not an octave_scalar object. + * ov-complex.h (octave_complex::empty_clone): + Return empty octave_complex_matrix, not an octave_complex object. + + 2004-02-06 John W. Eaton + + * ov-usr-fcn.h (octave_user_function::function_name): Delete. + (octave_user_function::fcn_name): Delete unused data member. + (octave_user_function::stash_function_name): Save name in + tree_function::my_name instead of fcn_name. + Change all uses of fcn_name to be my_name instead. + + * pt.h, pt.cc (tree::break_function): Now pointer to + octave_function rather than octave_user_function object. + + * pt-bp.h (MAYBE_DO_BREAKPOINT): Use name instead of function_name + to get name from curr_function. + * pt-pr-code.cc (tree_print_code::visit_octave_user_function_header): + likewise. + * debug.cc (Fdbwhere, Fdbtype, ): Likewise + * error.cc (pr_where): Likewise. + * variables.cc (Fmlock, Fmunlock, Fmislocked): Likewise. + (lookup_function, lookup_user_function, link_to_builtin_or_function): + Likewise, for curr_parent_function. + + * debug.cc (get_user_function, Fdbwhere): + Cast curr_function to pointer to octave_user_function. + + * ov-mapper.cc (octave_mapper::do_multi_index_op): + Save and restore curr_function here. + * ov-builtin.cc (octave_builtin::do_multi_index_op): Likewise. + + * toplev.h, toplev.cc (curr_function, curr_parent_function): Now + pointers to octave_function rather than octave_user_function objects. + + * ov-usr-fcn.h (octave_user_function::is_user_function): New function. + * ov-fcn.h (octave_function::takes_varargs, + octave_function::octave_va_start, octave_function::octave_va_arg, + octave_function::octave_all_va_args, + octave_function::takes_var_return, octave_function::octave_vr_val, + octave_function::is_user_function): New virtual functions. + + 2004-02-05 John W. Eaton + + * ov-struct.cc (Fstruct): Use new Octave_map constructor to create + structures with specified sizes but no keys. + + * ov-struct.cc (Fstruct): New function, from Paul Kienzle + and Petter Risholm . + + * oct-map.h (Octave_map::Octave_map): Allow dimension to be + specified for map with no keys. + + * ov-struct.cc (fieldnames): Return 0x1 cell array if no fieldnames. + + 2004-02-05 Petter Risholm + + * ov-base-mat.cc (octave_base_matrix::do_index_op): + Don't fail if number of indices is greater than 2. + + 2004-02-05 John W. Eaton + + * data.cc (Fsize): Update for N-d objects. + + * ls-mat5.cc (read_mat5_binary_element): Force conversion. + + * ov-base.cc (octave_base_value::char_matrix_value): + Pass force arg to convert_to_str. + + * data.cc (Freshape): Chop trailing singletons from new dimensions. + + 2004-02-03 John W. Eaton + + * error.cc (defun_usage_message): Only accept one arg, a const + std::string& object. Change all uses. Pass nul-terminated string + to defun_message_1. + (defun_usage_message_1): New function, equivalent to old + defun_usage_message. + + * ov-base.cc (nint_value): Use fix, not NINT. + (INT_CONV_METHOD): Likewise, use fix instead of just casting. + + * data.cc (make_diag): Use int_value instead of nint_value to + extract k for Matlab compatibility. + (Flinspace): Likewise, for npoints. + (fill_matrix): Likewise, for extracting dims. + (Fsize): Likewise, for extracting dim argument. Require int value. + * utils.cc (get_dimensions): Likewise. Use fix, not NINT. + + 2004-02-02 John W. Eaton + + * error.cc (verror, error_1): New arg, os. Use this instead + of always printing to std:cerr. Change all callers. + + * error.cc (defun_usage_message): New function. + * error.h: Provide decl. + * defun.cc (print_usage): Use it to display error message. + + * error.cc (verror): New arg, save_last_error. Change all callers. + (usage): Set error_state after calling verror. + + * oct-map.cc (Octave_map::assign (const std::string, const Cell&)): + Set dimensions to RHS dimensions, not 1x1. + + 2004-01-23 John W. Eaton + + * ov-bool.cc, ov-cx-mat.cc, ov-re-mat.cc, ov-str-mat.cc: + Include . + * file-io.cc, ls-hdf5.cc, ls-mat4.cc, ls-mat5.cc, ls-oct-binary.cc: + Include , not for new defn of OCTAVE_LOCAL_BUFFER. + * load-save.cc, ls-mat-ascii.cc, ls-oct-ascii.cc + No need to include now. + + * DLD-FUNCTIONS/eig.cc (Feig): Use new optional arg for EIG to + avoid computing eigenvectors if not requested. + Based on a patch from David Bateman . + + 2004-01-23 John W. Eaton + + * ov-cell.cc (all_strings): Always compute total required length + of retval. + + 2004-01-22 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.53. + (OCTAVE_API_VERSION): Now api-v4. + + * error.cc (pr_where): New arg, print_code with default value true. + (warning): Call pr_where with second arg false. + + * file-io.cc (Ffrewind): Only return value if nargout > 0. + (Ffprintf): Likewise. + (Fprintf): Likewise. + + * file-io.cc (Ffrewind): Return 0 for success, -1 for failure. + Make docs match. + + * Makefile.in (distclean): Remove DOCSTRINGS. + (maintainer-clean): Remove $(OPT_HANDLERS). + + 2004-01-21 John W. Eaton + + * ov-cell.cc (octave_cell::subsref): Make '{' case N-d aware. + + * ov-scalar.cc (streamoff_array_value): New function. + * ov-scalar.h: Provide decl. + + * OPERATORS/op-streamoff.cc (STREAMOFF_COMP_OP): New maco. + Use it to define streamoff by matrix, streamoff by scalar, scalar + by streamoff, and matrix by streamoff comparison operators. + (install_streamoff_ops): Install them. + + * Cell.h (Cell::operator ()): Delete (we inherit them from Array). + (maybe_resize, elem_internal): Delete unused functions. + + * ls-mat5.cc (write_mat5_cell_array): Cell& arg is now const. + + 2004-01-20 John W. Eaton + + * variables.cc (is_valid_function): If warn, also print error + message if arg is not a string. + + * ov-usr-fcn.cc (Fnargin, Fnargout): New functions. + + * octave.cc (intern_argv): Lookup __nargin__ instead of nargin. + * ov-usr-fcn.cc (octave_user_function::install_automatic_vars): + Lookup __nargin__ and __nargout__ instead of nargin and nargout. + + * variables.h (at_top_level): Now extern. + (lookup_user_function): New function. + * variables.cc: Provide decls. + + * ov.h, ov.cc (octave_value::user_function_value): + New virtual function. + * ov-base.h, ov-base.cc (octave_base_value::user_function_value): + Provide default version. + * ov-usr-fcn.h (octave_user_function::user_function_value): + New function. + + * ov-re-mat.cc (complex_array_value): New function. + * ov-re-mat.h: Provide decl. + + * ov-cell.cc (Fiscellstr): Don't return value on usage error. + + * error.cc: (symbols_of_error): Delete DEFVAR for error_text. + Define __error_text__ and error_text as aliases for lasterr. + + * error.cc (bind_global_error_variable, clear_global_error_variable): + Delete. + * variables.h: Delete decls. + + * parse.y (Feval, Fevalin): Don't call bind_global_error_variable. + Don't add clear_global_error_variable to the unwind_protect stack. + Increment buffer_error_messages before evaluating "eval" code, + decrement it before evaluating "catch" code. + + * pt-except.cc (do_catch_code): Don't call bind_global_error_variable. + Don't add clear_global_error_variable to the unwind_protect stack. + Decrement buffer_error_messages here. + (tree_try_catch_command::eval): Increment buffer_error_messages here. + + * error.cc, error.h (buffer_error_messages): Now an int. + + 2004-01-16 John W. Eaton + + * toplev.cc (octave_config_info): Add float_format, + words_big_endian, and words_little_endian to the struct. + + 2004-01-14 David Bateman + + * ov-cell.cc (octave_cell::load_hdf5): Fix for HDF5 version 1.6 + handling of number of objects in a group. + * ov-struct.cc (octave_struct::load_hdf5): Likewise. + * ov-list.cc (octave_list::load_hdf5): Likewise. + * ls-hdf5.cc (read_hdf5_data): Likewise. + + 2004-01-13 John W. Eaton + + * ls-hdf5.h: Surround contents with #if defined (HAVE_HDF5). + + 2004-01-10 John W. Eaton + + * oct-stream.cc (convert_to_valid_int, get_size): + Use lo_ieee_is_NaN_or_NA instead of xisnan. + (octave_base_stream::do_printf): Correct special case check for + NA, NaN, Inf, or out of range integers. + + * dirfns.cc (Fglob): Always return list of files as a cell array. + (Freaddir): Likewise. + + * dirfns.cc (Fls): If nargout > 0, return ls output. + + 2004-01-09 John W. Eaton + + * load-save.cc (Fload): Assume -force by default. + + * oct-stream.cc (octave_base_stream::write): + Allow fwrite (fid, "some string") to work. + + * toplev.cc (Fcomputer): Delete. + (octave_config_info): Add unix and windows fields to the struct. + + 2004-01-06 David Bateman + + * ls-hdf5.cc: Fix handle of old versus new format files. + + * ls-oct-binary.cc: Split the load/save functionality into the types + themselves. Backward compatibility maintained. + + * ov-struct.cc (save_binary, load_binary): + * ov-str-mat.cc (save_binary, load_binary): + * ov-scalar.cc (save_binary, load_binary): + * ov-re-mat.cc (save_binary, load_binary): + * ov-range.cc (save_binary, load_binary): + * ov-list.cc (save_binary, load_binary): + * ov-cx-mat.cc (save_binary, load_binary): + * ov-complex.cc (save_binary, load_binary): + * ov-cell.cc (save_binary, load_binary): + * ov-bool.cc (save_binary, load_binary): + * ov-bool-mat.cc (save_binary, load_binary): + New functions for loading and saving structures in octave binary + format. + + * ov-str-mat.h (save_binary, load_binary): + * ov-scalar.h (save_binary, load_binary): + * ov-re-mat.h (save_binary, load_binary): + * ov-range.h (save_binary, load_binary): + * ov-list.h (save_binary, load_binary): + * ov-cx-mat.h (save_binary, load_binary): + * ov-complex.h (save_binary, load_binary): + * ov-cell.h (save_binary, load_binary): + * ov-bool.h (save_binary, load_binary): + * ov-bool-mat.h (save_binary, load_binary): + * ov-struct.h (save_binary, load_binary): + Provide decls. + + * ov.h (save_binary, load_binary): New virtual functions. + + * ov-base.cc (save_binary, load_binary): New functions, for fallbacks + with error message. + * ov-base.h: Provide decls. + + * load-save.cc: Remove "-import" flag and make it the default. + * load-save.h: Likewise. + + * ls-oct-ascii.cc: Split the load/save functionality into the types + themselves. Save "string" variables with the name "string" rather than + string array. Backward compatiability maintained in ov-cs-mat.cc. + Include new version of extract_keyword that halts if the next value is + invalid rather that searching for the next valid value. + + * ls-oct-ascii.h: Extract_keyword header updated. + Include definition of OCT_RBV and CELL_ELT_TAG, since they are now + used elsewhere. + + * ls-hdf5.cc: Split load/save functionality into the types themselves. + The hdf5 format is changed so that each object is a group with a + dataset "type" being a string with the octave_value type and the + dataset or group "value" containing the value of the data, struct, etc. + This allows extensibility. Backward compatibility is maintained. The + "import" flag is now assumed to always be true and has been removed. + + * ov-struct.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-str-mat.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-scalar.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-re-mat.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-range.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-list.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-cx-mat.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-complex.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-cell.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-bool.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-bool-mat.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): + New functions for loading and saving structures in octave ascii + and hdf5 formatted files. + + * ov-struct.h (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-str-mat.h (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-scalar.h (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-re-mat.h (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-range.h (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-list.h (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-cx-mat.h (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-complex.h (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-cell.h (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-bool.h (save_ascii, load_ascii, save_hdf5, load_hdf5): + * ov-bool-mat.h (save_ascii, load_ascii, save_hdf5, load_hdf5): + Provide decls. + + * ov-typeinfo.cc (octave_value_typeinfo::do_lookup_type): Include + make_unique so that the stored type value is not used for all loaded + variables. + + * ov.h: (save_ascii, load_ascii, save_hdf5 and load_hdf5): + New virtual functions. + + * ov-base.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): + New functions, for fallbacks with error message. + * ov-base.h: Provide decls. + + 2003-12-22 John W. Eaton + + * ov-cx-mat.cc (octave_complex_matrix::assign): RHS arg is N-d. + * ov-cx-mat.h: Fix decl. + + * ops.h (DEFNDASSIGNOP_FN): New macro. + * OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc, + OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, + OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, OPERATORS/op-m-m.cc, + OPERATORS/op-m-s.cc: Use it instead of DEFASSIGNOP_FN. + + 2003-12-19 John W. Eaton + + * xpow.cc (xpow (double, double)): Avoid apparent GNU libm bug. + + 2003-12-17 John W. Eaton + + * symtab.cc (symbol_record::print_symbol_info_line): + Also check is_static to see if a symbol can be cleared. + + 2003-12-16 John W. Eaton + + * lex.l (is_keyword): Also allow varargout_kw if + lexer_flags.looking_at_return_list is false provided that we are + defining a function and we haven't seen the function name yet. + * parse.y (return_list): Don't require [] around varargout. + + * DLD-FUNCTIONS/find.cc (DO_FIND_OP): Delete macro. + (find_to_fortran_idx): Delete. Move guts of function to + find_nonzero_elem_idx. + (find_nonzero_elem_idx): Now a template function. Handle overall + array index here too. Make it N-d aware. + + * pt-pr-code.cc (tree_print_code::visit_complex_for_command, + tree_print_code::visit_octave_user_function_header, + tree_print_code::visit_matrix, tree_print_code::visit_cell, + tree_print_code::visit_multi_assignment): Keep track of nearest + [, {, or ( nesting level. + (tree_print_code::visit_index_expression): Likewise. Check nesting + level to decide how to print index. + (tree_print_code::reset): Also reset nesting level stack. + + * pt-pr-code.h (tree_print_code::nesting): New data member. + (tree_print_code::tree_print_code): Initialize it. + + * ov-base-mat.h (octave_base_matrix::octave_base_matrix (const MT&)): + If arg has no dimensions, resize to be 0x0. + + 2003-12-15 John W. Eaton + + * oct-map.cc (Octave_map::assign): Use Octave_map::contents member + function instead of operator []. + * ov-struct.cc (octave_struct::subsasgn): Likewise. + * DLD-FUNCTIONS/time.cc (extract_tm): Likewise. + + * DLD-FUNCTIONS/time.cc (mk_tm_map): Use Octave_map::assign member + function instead of operator []. + * DLD-FUNCTIONS/getrusage.cc (Fgetrusage): Likewise. + * DLD-FUNCTIONS/getgrent.cc (mk_gr_map): Likewise. + * DLD-FUNCTIONS/getpwent.cc (mk_pw_map): Likewise. + * load-save.cc (do_load): Likewise. + * ls-hdf5.cc (hdf5_read_next_data): Likewise. + * ls-mat5.cc (read_mat5_binary_element): Likewise. + * oct-map.cc (Octave_map::reshape): Likewise. + * oct-map.cc (Octave_map::index): Likewise. + * ov-fcn-handle.cc (Ffunctions): Likewise. + * pt-idx.cc (make_arg_struct): Likewise. + * sighandlers.cc (make_sig_struct): Likewise. + * syscalls.cc (mk_stat_map): Likewise. + * toplev.cc (Foctave_config_info): Likewise. + + * ls-hdf5.cc (add_hdf5_data): Temporary Octave_map is now const. + * ls-mat5.cc (save_mat5_binary_element): Likewise. + + * oct-map.cc (Octave_map::assign (const std::string&, const + octave_value&)): New function. + * oct-map.h: Provide decl. + (Octave_map::contents (const std::string&)): New function. + (Octave_map::operator [] (const std::string&) const): Delete. + (Octave_map::operator [] (const std::string&)): Delete. + + 2003-12-09 John W. Eaton + + * OPERATORS/op-cell.cc: Allow transpose for cell arrays. + * OPERATORS/op-m-m.cc, OPERATORS/op-cm-cm.cc, + OPERATORS/op-bm-bm.cc, OPERATORS/op-streamoff.cc, + OPERATORS/op-str-str.cc: Improve error message for attempt to + transpose N-d object. + + 2003-11-27 John W. Eaton + + * pt-arg-list.cc (F__end__): Handle N-d objects. + + 2003-11-25 John W. Eaton + + * OPERATORS/op-b-bm.cc: New file. + + * OPERATORS/op-bm-b.cc (op_el_and, op_el_or): Define and install. + * OPERATORS/op-bm-bm.cc (op_el_and, op_el_or, assign): Likewise. + + * ov-str-mat.cc (CHAR_MATRIX_CONV): New macro. + * ov-str-mat.h (octave_char_matrix_str::double_value, + octave_char_matrix_str::matrix_value, + octave_char_matrix_str::array_value, + octave_char_matrix_str::complex_value, + octave_char_matrix_str::complex_matrix_value, + (octave_char_matrix_str::complex_array_value): Use it. + + * ov-bool-mat.cc (default_numeric_conversion_function): + Convert to NDArray, not Matrix. + * ov-str-mat.cc (default_numeric_conversion_function): Likewise. + + * ov-range.h (octave_range::array_value): New function. + (octave_range::complex_array_value): Likewise. + * ov-ch-mat.h (charNDArray::array_value): New function. + (charNDArray::complex_array_value): Likewise. + * ov-str-mat.h (octave_char_matrix_str::array_value): Likewise. + (octave_char_matrix_str::complex_value): Likewise. + (octave_char_matrix_str::complex_matrix_value): Likewise. + (octave_char_matrix_str::complex_array_value): Likewise. + + * mappers.cc (acosh, log, log10, sqrt): + Use octave_Inf instead of DBL_MAX for range limit. + + 2003-11-24 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.52. + (OCTAVE_API_VERSION): Now api-v3. + + * DLD-FUNCTIONS/rand.cc (do_rand): Pass function name from arg + list in calls to error. + + * ov-cs-list.cc, ov-cs-list.h (octave_cs_list::octave_cs_list): + Explicitly initialize base class in constructors. + + * ov.h (octave_value::all_strings): Pass second arg to rep function. + + * ov.h (octave_value::string_value): Pass arg to rep function. + + * DLD-FUNCTIONS/dasrt.cc (dasrt_user_f): Delete unused arg names. + * DLD-FUNCTIONS/rand.cc (Frand, Frandn): Likewise. + * ls-hdf5.h (hdf5_streambase::hdf5_streambase): Likewise. + * ls-hdf5.cc (read_hdf5_data): Likewise. + * ls-utils.cc (get_save_type): Likewise. + * parse.y (Fassignin): Likewise. + * utils.cc (empty_arg): Likewise. + * ov-usr-fcn.h (octave_user_function::subsref): Likewise. + * ov-base-mat.h (octave_base_matrix::subsref): Likewise. + * ov-mapper.h (octave_mapper::subsref): Likewise. + * ov-builtin.h (octave_builtin::subsref): Likewise. + * ov-complex.cc (octave_complex::complex_array_value): Likewise. + * ov-cell.h (octave_cell::subsref): Likewise. + * ov-base-scalar.h (octave_base_scalar::subsref): Likewise. + * ov-struct.h (octave_struct::subsref): Likewise. + * ov-range.h (octave_range::subsref): Likewise. + * ov-list.h (octave_list::subsref): Likewise. + * ov-base.cc (octave_base_value::print_info): Likewise. + * pt-check.cc (tree_checker::visit_subplot_axes): Likewise. + * pr-output.cc (octave_print_internal (std::ostream&, double, bool), + octave_print_internal (std::ostream&, const Complex&, bool), + octave_print_internal (std::ostream&, const ArrayN&, + bool, int): Likewise. + * oct-stream.cc (octave_scan<> (std::istream&, const + scanf_format_elt&, char*): Likewise + * TEMPLATE-INST/Array-tc.cc (resize_fill_value): + Likewise. + * pt-bp.cc (tree_breakpoint::visit_octave_user_function, + tree_breakpoint::visit_octave_user_function_header, + tree_breakpoint::visit_octave_user_function_trailer, + tree_breakpoint::visit_plot_limits, + tree_breakpoint::visit_plot_range, + tree_breakpoint::visit_subplot, + tree_breakpoint::visit_subplot_axes, + tree_breakpoint::visit_subplot_list, + tree_breakpoint::visit_subplot_style, + tree_breakpoint::visit_subplot_using): Likewise. + * ov.cc (octave_value::column_vector_value, + (octave_value::complex_column_vector_value, + (octave_value::row_vector_value, + octave_value::complex_row_vector_value, + octave_value::do_non_const_unary_op): Likewise. + + * load-save.cc: Only include ls-hdf5.h if HAVE_HDF5 is defined. + From Melqart . + + * pr-output.h (octave_fcn_handle::print_as_scalar): Delete. + + * pr-output.cc (octave_print_internal): New version for + ArrayN objects. + * pr-output.h: Provide decl. + * ov-fcn-handle.cc (octave_fcn_handle::print_raw): Use it. + + * OPERATORS/op-fcn-handle.cc: New file. + * Makefile.in (OP_XSRC): Add it to the list. + + * ov-fcn-handle.h, ov-fcn-handle.cc (octave_fcn_handle): + Now an array of function handle objects. + + * ov.h, ov.cc (octave_value::octave_value (const fcn_handle_array&), + (octave_value::octave_value (octave_function *f, const std::string&)): + New constructors. + (octave_value::octave_value (const octave_fcn_handle&)): Delete. + + * ov-base-mat.cc (octave_base_matrix::print_as_scalar): + Check dims instead of rows and columns. + + * ov.h (octave_value::is_function_handle): New function. + * ov-base.h (octave_base_value::is_function_handle): New function. + + 2003-11-23 John W. Eaton + + * ov-bool-mat.h (octave_bool_matrix::array_value): Construct return + value directly from matrix data member, not matrix.matrix_value (). + + * ov-re-mat.h (octave_matrix::index_vector): Construct idx_vector + from NDArray, not Matrix. + + * ov-bool-mat.h (octave_bool_matrix::index_vector): Construct + idx_vector from boolNDArray, not boolMatrix. + + * ov.cc (install_types): Also register dld function type. + + * OPERATORS/op-streamoff.cc: Install increment and decrement operators. + * ov-streamoff.h (octave_streamoff::increment, + octave_streamoff::decrement): New functions. + + * ov-streamoff.h, ov-streamoff.cc: Move streamoff_array class to + liboctave/so-array.h and liboctave/so-array.cc. + + * oct-stream.cc (octave_stream::seek): Extract std::streamoff from + tc_offset instead of int. + + * ov-re-mat.cc (octave_matrix::double_value): Use numel, not length. + + * ov-re-mat.cc (octave_matrix::streamoff_array_value): New function. + * ov-re-mat.h: Provide decl. + + * ov-scalar.cc (octave_scalar::streamoff_value): New function. + * ov-scalar.h: Provide decl. + + * ov.cc (octave_value::streamoff_array_value, + octave_value::streamoff_value): New functions. + * ov.h: Provide decls. + + * ov-base.cc (octave_base_value::streamoff_array_value, + octave_base_value::streamoff_value): New functions. + * ov-base.h: Provide decls. + + * ov-usr-fcn.cc (install_automatic_vars): Don't do anything unless + sym_tab is defined. + + * ov-streamoff.h, ov-streamoff.cc, OPERATORS/op-streamoff.cc: + New files. + + * ov-cell.h (octave_value_cell::is_matrix_type): New function. + + * ov-mapper.h (octave_mapper::octave_mapper): No copying. + * ov-fcn.h (octave_function::octave_function): Likewise. + * ov-usr-fcn.h (octave_function::octave_function): Likewise. + * ov-builtin.h (octave_builtin::octave_builtin): Likewise. + * ov-dld-fcn.h (octave_dld_function::octave_dld_function): Likewise. + + 2003-11-22 John W. Eaton + + * ov-mapper.h (octave_mapper::octave_mapper): Make public. + Provide copy constructor and assignment operator. + * ov-fcn.h (octave_function::octave_function): Likewise. + * ov-builtin.h (octave_builtin::octave_builtin): Likewise. + * ov-dld-fcn.h (octave_dld_function::octave_dld_function): Likewise. + + * ov-typeinfo.cc (octave_value_typeinfo::register_type, + octave_value_typeinfo::do_register_type): New arg, val. + Save it in vals array. + (octave_value_typeinfo::lookup_type, + octave_value_typeinfo::do_lookup_type): New functions. + * ov-typeinfo.h: Provide decl. + (octave_value_typeinfo::vals): New data member. + (octave_value_typeinfo::octave_value_typeinfo): Initialize it. + + * ov.h (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Pass + + * ov.h (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Define register_type + here. Also pass an empty object of the to-be-registered type to + register_type. + (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Declare register_type + here, but don't define it. + + 2003-11-21 John W. Eaton + + * ov-fcn-handle.h (octave_fcn_handle::octave_fcn_handle (void)): + New constructor. + + * ov-usr-fcn.h (octave_user_function::octave_user_function): + Delete decl for private constructor. + + * ov-str-mat.cc (octave_char_matrix_str::matrix_value): + Conversion to matrix is an error unless explicitly forced. + + * ov-str-mat.cc (octave_char_matrix_str::double_value): New function. + * ov-str-mat.h: Provide decl. + + * ov-file.cc (print_raw): Use parens around ?: conditional used on + RHS of << output operator. + + * c-file-ptr-stream.cc (c_file_ptr_buf::seekoff, + c_file_ptr_buf::seekpos): Can't use fseek here, so just fail (by + returning -1) until we have a better solution. + + * oct-stream.cc (octave_stream::tell): Return std::streamoff, not long. + * oct-iostrm.cc (octave_base_iostream::tell): Likewise. + * oct-stdstrm.cc (octave_stdiostream::tell): Likewise. + * oct-strstrm.cc (octave_base_strstream::tell): Likewise. + * oct-stream.h, oct-iostrm.h, oct-stdstrm.h, oct-strstrm.h: + Fix decls to match. + + 2003-11-20 John W. Eaton + + * ls-mat-ascii.cc (get_lines_and_columns): Delete second arg in + call to istream::seekg. + + * ov-mapper.cc (MAPPER_LOOP_2, any_element_less_than, + any_element_greater_than, octave_mapper::apply): + Handle N-d arrays. + + 2003-11-19 John W. Eaton + + * ls-mat5.cc (read_mat5_binary_element, save_mat5_binary_element): + Handle N-d arrays. + + * lex.l (next_token_is_index_op): New function. + (handle_close_bracket): Use it. + + * ls-hdf5.cc, ls-mat-ascii.cc, ls-mat4.cc, ls-mat5.cc, + ls-oct-ascii.cc, ls-oct-binary.cc, ls-utils.cc, ls-hdf5.h, + ls-mat-ascii.h, ls-mat4.h, ls-mat5.h, ls-oct-ascii.h, + ls-oct-binary.h, ls-utils.h: New files, extracted from load-save.cc. + * Makefile.in: Add them to the appropriate lists. + + 2003-11-18 John W. Eaton + + * pr-output.cc (octave_print_internal): Don't indent rows for + plus_format. Use pr_plus_format for Range type with plus_format. + (plus_format_chars): New static variable. + (set_format_style): Allow optional arg for plus format to set it. + (pr_plus_format): Use it. + + * ov-bool.h (octave_bool::array_value, + octave_bool::complex_array_value): New functions. + + * ov-base-mat.cc (octave_base_matrix::do_index_op): + Ensure correct number of indices for Array indexing code. + + 2003-11-17 John W. Eaton + + * DLD-FUNCTIONS/qz.cc (qz): Use x.data()+offset instead of &a(i,j). + First and third args for dlag2 are const. + + * DLD-FUNCTIONS/sort.cc (Fsort): Use const qualifier as appropriate. + + * DLD-FUNCTIONS/balance.cc (balance): Use data() instead of + fortran_vec where appropriate in call to dggbak. + + * DLD-FUNCTIONS/dasrt.cc (dasrt_user_j): Simplify inserting x and + xdot in arg vector. + (dasrt_user_f): Likewise. + (dasrt_user_cf): Likewise. + * DLD-FUNCTIONS/dassl.cc (dassl_user_function): Likewise. + (dassl_user_jacobian): Likewise. + * DLD-FUNCTIONS/lsode.cc (lsode_user_function): Likewise. + (lsode_user_jacobian): Likewise. + * DLD-FUNCTIONS/daspk.cc (daspk_user_function): Likewise. + (daspk_user_jacobian): Likewise. + + 2003-11-16 John W. Eaton + + * ov-range.h (octave_range::reshape): New function. + + 2003-11-15 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.51. + (OCTAVE_API_VERSION): Now api-v2. + + * version.h (OCTAVE_BUGS_STATEMENT): Also tell people to look at + http://www.octave.org/bugs.html. + + * oct-map.cc (Octave_map::assign): Use resize, not resize and fill. + * ov-typeinfo.cc (octave_value_typeinfo::do_register_type): Likewise. + + * Cell.cc (Cell::Cell): Pass dim_vector to resize instead of two ints. + + 2003-11-14 John W. Eaton + + * Makefile.in (stamp-liboctave-prereq): New target. + ($(DEF_FILES), $(MAKEDEPS)): Depend on it. + (distclean): Remove it. + + * parse.y (cancel_obj_idx): New rule. + (postfix_expr, prefix_expr): Use begin_obj_idx after every + postfix_expr on RHS. Use cancel_obj_idx as soon as possible for + cases where we are not working on an index expression. + + * lex.l (maybe_unput_comma, handle_close_bracket): + Don't insert comma if we are looking at an object index and the + closest nesting level is a brace. + + * parse.y (postfix_expr): Use begin_obj_idx between postfix_expr + and the indexing delimiter rather than after it. + + * lex.h (lexical_feedback::braceflag): New member variable. + * lex.l (lexical_feedback::init): Initialize braceflag. + (\{{S}*): Increment lexer_flags.braceflag, not + lexer_flags.bracketflag. + (handle_close_bracket): Handle lexer_flags.braceflag and + lexer_flags.bracketflag separately based on bracket_type. + Delete unnecesary yyinput/yyunput. + + * lex.l (next_token_is_postfix_unary_op): Also recognize ++ and --. + + * ov-typeinfo.cc (octave_value_typeinfo::register_type, + octave_value_typeinfo::do_register_type): + New arg, c_name for class name. + * ov-base.cc, ov-bool-mat.cc, ov-bool.cc, ov-builtin.cc, + ov-cell.cc, ov-ch-mat.cc, ov-colon.cc, ov-complex.cc, + ov-cs-list.cc, ov-cx-mat.cc, ov-dld-fcn.cc, ov-fcn-handle.cc, + ov-file.cc, ov-list.cc, ov-mapper.cc, ov-range.cc, ov-re-mat.cc, + ov-scalar.cc, ov-str-mat.cc, ov-struct.cc, ov-usr-fcn.cc, + ov-va-args.cc: Pass class name to DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA. + * ov.h (octave_value::class_name): New virtual function. + (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Define c_name, for class name. + Pass c_name to octave_value_typeinfo::register_type. + (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Declare static member + c_name for class name. Provide class_name member function. + + * ov-typeinfo.cc (Fclass): New function. + + 2003-11-13 John W. Eaton + + * utils.cc (Fisvarname): Pass correct name to make_argv. + + * ov-cell.cc (Fiscellstr): New function. + + * ov-file.h (octave_file::all, octave_file::any, + octave_file::dims, octave_file::is_real_type, + octave_file::ist_real_scalar): New functions. + + * lex.l (bracket_brace_paren_nesting_level::is_bracket_or_brace): + New function. + (handle_close_bracket): New arg, bracket_type. Change all uses. + First arg is now bool. + ({SNLCMT}*\}{S}*): New pattern. + (maybe_unput_comma): Handle brace nesting level the same as brackets. + (handle_close_brace): Likewise. + ({S}+): Likewise. + ({S}*{COMMENT}{SNLCMT}*): Likewise. + ({S}*{NL}{SNLCMT}*): Likewise. + ({NL}): Likewise. + ({CCHAR}): Likewise. + (")"): Likewise. + (\{{S}*): Handle the same as \[{S}*. + ("}"): Handle the same as \]. + + * Makefile.in (stamp-prereq): Add oct-gperf.h, parse.cc, and + lex.cc to the list. + + 2003-11-12 John W. Eaton + + * ov-cell.cc (print_as_scalar): New function. + * ov-cell.h: Provide decl. + + * ov-cell.cc (octave_cell::print_name_tag): Delete. + * ov-cell.h: Delete decl. + + * ov-base-mat.cc (octave_base_matrix::print_name_tag): Delete. + * ov-base-mat.h: Delete decl. + + * ov-base.cc (octave_base_value::print_name_tag): + Use print_as_scalar here. + * ov.h (octave_base_value::print_as_scalar): New virtual function. + * ov-base.h (octave_base_value::print_as_scalar): + New default implementation. + * ov-base-mat.h (octave_base_matrix::pirnt_as_scalar): + Don't declare as virtual here. + + * ov-struct.cc (octave_struct::print_raw): If only printing keys, + also print dimensions of fields and overall array. + + * sysdep.cc (Fnative_float_format): New function. + + * input.cc (generate_possible_completions): Also append all + possible filename completions here. + + 2003-11-11 John W. Eaton + + * oct-stream.cc: Explicitly instantiate octave_scan functions. + + * TEMPLATE-INST/Array-c.cc, TEMPLATE-INST/Array-os.cc, + TEMPLATE-INST/Array-sym.cc, ov-typeinfo.cc: + Use new INSTANTIATE_ARRAY macro. + + * data.cc (do_permute): New function. + (Fpermute, Fipermute): Use it. + + * ov-base.cc (octave_base_value::permute): New function. + * ov-base.h: Provide decl. + + * ov.h (octave_value::ipermute): New function. + + 2003-11-11 Petter Risholm + + * data.cc (Fpermute, Fipermute): New functions. + * ov.h (octave_value::permute): New function. + * ov-base-mat.h (octave_base_matrix::permute): New function. + + 2003-11-10 John W. Eaton + + * oct-obj.h (octave_value_list): Internal representation is now + std::vector instead of Array. + + * ov-list.h, ov-list.cc: Internal representation is now Cell, not + octave_value_list. + (Flist): Print one-time warning. + + * ov.cc (octave_value::octave_value (const octave_value_list&, bool)): + Cope with octave_cs_list not being derived from octave_list. + + * ov-cs-list.cc (octave_cs_list): Handle conversion of Cell array + to octave_value_list here. + + * ov-cs-list.h (class octave_cs_list): Derive from + octave_base_value, not octave_list. + + * ov-cs-list.h, ov-cs-list.cc: Remove commented-out code. + + * TEMPLATE-INST/Array-tc.cc (resize_fill_value): Use modern + specialization syntax. + + * ov-cell.cc (octave_cell::print_raw): Use dim_vector::str. + + * Cell.cc, Cell.h, debug.cc, file-io.cc, load-save.cc, + oct-fstrm.cc, oct-iostrm.cc, oct-iostrm.h, oct-map.cc, oct-map.h, + oct-prcstrm.cc, oct-stdstrm.h, oct-stream.cc, oct-strstrm.h, + octave.cc, ov-base.h, ov-cell.cc, ov.cc, ov.h, pt-cell.h, + pt-mat.cc, pt-mat.h, pt-plot.cc, pt-stmt.cc, variables.cc, + DLD-FUNCTIONS/rand.cc: Avoid -Wshadow warnings. + + 2003-11-01 John W. Eaton + + * ov.h (octave_base_value::is_bool_matrix): New virtual function. + * ov-base.h (octave_base_value::is_bool_matrix): New function. + + 2003-10-31 John W. Eaton + + * ov.cc (octave_value::length): If any dim is zero, return 0. + + * ov-cell.cc (octave_cell::subsref): When indexing with '{', quit + early if an error occurs in do_index_op. + + * ov.cc (octave_value::next_subsref): Don't do anything if + error_state is true. + + * cutils.c (octave_usleep) [HAVE_SELECT]: Introduce new local + scope for declaration of delay. + [HAVE_POLL]: Likewise, for delay and pfd. + + * ov-base.cc (octave_base_value::bool_array_value): + Function takes no args. + * ov-base.h: Likewise, for decl. + * ov-bool-mat.h (boolNDArray::bool_array_value): Likewise. + + * ov-fcn.cc, ov-fcn.h (octave_value::clone, + octave_value::empty_clone): Return type is octave_value*, not + octave_function*. + + 2003-10-29 John W. Eaton + + * ov-str-mat.h (octave_char_matrix_str::reshape): New function. + Force result to be a string. + + 2003-10-29 Petter Risholm + + * data.cc (DATA_REDUCTION): Work on NDArray and ComplexNDArray + objects instead of Matrix and ComplexMatrix objects. + + 2003-10-29 John W. Eaton + + * ov-bool-mat.h (octave_bool_matrix::NDArray, + octave_bool_matrix::ComplexNDArray): New functions. + + * ov-complex.cc (octave_complex::array_value, + octave_complex::complex_array_value): New functions. + * ov-complex.h: Provide decls. + + * ov-scalar.cc (octave_scalar::array_value, + octave_scalar::complex_array_value): New functions. + * ov-scalar.h: Provide decls. + + * oct-map.cc (Octave_map::reshape): New function. + * oct-map.h: Provide decl. + + * ov-struct.h (octave_struct::reshape): New function. + + * Cell.h (Cell:Cell (const Array&): New constructor. + + * data.cc (Freshape): New function. + * ov.h (octave_value::reshape): New function. + * ov-base-mat.h (octave_base_matrix::reshape): New function. + * ov-base.cc (octave_base_value::reshape): New function. + * ov-base.h: Provide decl. + + * DLD-FUNCTIONS/balance.cc: lscale and rscale args for dggbak are + const. Use data() instead of fortran_vec where possible. + * DLD-FUNCTIONS/qz.cc: Likewise. + + * data.cc (fill_matrix): Remove trailing singletons before + allocating the result matrix. + + * input.cc (get_user_input): Don't forget about the diary here. + + 2003-10-28 John W. Eaton + + * ov-list.h (octave_list::nelem): Delete. + (octave_list::dims): New function. + * ov-range.h (octave_list::dims): New function. + * ov-struct.h (octave_struct::dims): New function. + * ov-base-scalar.h (octave_base_scalar::dims): New function. + + * ov.h (octave_value::rows): No longer virtual. + * ov.cc (octave_value::rows): Provide common implementation. + * ov-base.h (octave_base_value::rows): Delete. + * ov-base-mat.h (octave_base_matrix::rows): Delete. + * ov-base-scalar.h (octave_base_scalar::rows): Delete. + * ov-struct.h (octave_struct::rows): Delete. + * ov-range.h (octave_range::rows): Delete. + + * ov.h (octave_value::columns): No longer virtual. + * ov.cc (octave_value::columns): Provide common implementation. + * ov-base.h (octave_base_value::columns): Delete. + * ov-base-mat.h (octave_base_matrix::columns): Delete. + * ov-base-scalar.h (octave_base_scalar::columns): Delete. + * ov-struct.h (octave_struct::columns): Delete. + * ov-range.h (octave_range::columns): Delete. + + * ov.h (octave_value::numel): No longer virtual. + * ov.cc (octave_value::numel): Provide common implementation. + * ov-base.h (octave_base_value::numel): Delete. + * ov-base-mat.h (octave_base_matrix::numel): Delete. + * ov-base-scalar.h (octave_base_scalar::numel): Delete. + * ov-struct.h (octave_struct::numel): Delete. + + * ov-cs-list.h (octave_cs_list::dims): New function. + (octave_cs_list::length): Delete. + + * ov.h (octave_value::ndims): No longer virtual. + * ov.cc (octave_value::ndims): Provide common implementation. + * ov-base.h (octave_base_value::ndims): Delete. + * ov-base-mat.h (octave_base_matrix::ndims): Delete. + * ov-base-scalar.h (octave_base_scalar::ndims): Delete. + * ov-struct.h (octave_struct::ndims): Delete. + + * ov-cell.cc (Fcell): Make it work for N-d cells. + + * Cell.h (Cell::Cell (const dim_vector&, const octave_value&)): + New constructor. + + * ov.h (octave_value::length): No longer virtual. + * ov.cc (octave_value::length): Provide common implementation. + * ov-base.h (octave_base_value::length): Delete. + * ov-base-mat.h (octave_base_matrix::length): Delete. + * ov-base-scalar.h (octave_base_scalar::length): Delete. + * ov-struct.h (octave_struct::length): Delete. + * ov-cs-list.h (octave_cs_list::length): Delete. + * ov-list.h (octave_list::length): Delete. + * ov-range.h (octave_range::length): Delete. + + * load-save.cc (save_mat5_binary_element): Use numel instead of + array_length. + * ov-struct.cc (octave_struct::print_raw): Likewise. + * pt-loop.cc (tree_complex_for_command::eval): Likewise. + * oct-map.cc (Octave_map::numel): New function. + * oct-map.h: Provide decl. + + * oct-map.cc, oct-map.h (Octave_map::array_length): Delete. + (common_size): New static function. + (Octave_map::assign): Make resizing work for N-d cell objects. + + * oct-map.cc (Octave_map::dims): New function. + * oct-map.h: Provide decl. + + * pr-output.cc (print_empty_nd_array): New static function. + (PRINT_ND_ARRAY): Use it. + + * ov.h (octave_value::is_empty): No longer virtual. Return value + based on numel. + * data.cc (Fisempty): Use it. + (Fnumel): New function. + + * ov.h (octave_value::numel): New function. + * ov-base.h (octave_base_value::numel): Likewise. + * ov-base-mat.h (octave_base_matrix::numel): Likewise. + * ov-base-scalar.h (octave_base_scalar::numel): Likewise. + + 2003-10-27 Petter Risholm + + * ov-base-mat.cc (octave_base_matrix::is_true): + Only work for 2-dimensional objects. + * data.cc (ANY_ALL (FCN)): Allow dim to take values large than 2. + + * ov.h (octave_value::ndims): New function. + * ov-base.h (octave_base_value::ndims): Likewise. + * ov-base-scalar.h (octave_base_scalar::ndims): Likewise. + * ov-base-mat.cc (octave_base_matrix::ndims): New function. + (octave_base_matrix::length): Move here from ov-base-mat.h. + Make it work for N-d arrays. + * ov-base-mat.h (octave_base_matrix::ndims): Provide decl. + * data.cc (Fndims): New built-in function. + + 2003-10-27 John W. Eaton + + * DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/qz.cc: + Use new F77 arg macros in declarations of external Fortran + subroutines and for calling them. + + * ops.h (DEFNDUNOP_OP, DEFNDUNOP_FN): New arg e, to name value + extractor function prefix. + * OPERATORS/op-bm-bm.cc, OPERATORS/op-cm-cm.cc, OPERATORS/op-m-m.cc: + Change all uses. + + * ov-cx-mat.h (octave_complex_matrix::complex_array_value, + octave_char_matrix::char_array_value, + octave_bool_matrix::bool_array_value): Rename from array_value. + * OPERATORS/op-bm-bm.cc, OPERATORS/op-cm-cm.cc, + OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-m.cc, + OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc, + OPERATORS/op-m-cm.cc, OPERATORS/op-m-m.cc, + OPERATORS/op-s-cm.cc: Use complex_array, char_array, and + bool_array as appropriate (instead of just array). + + * ov-base.cc (octave_base_value::array_value, + octave_base_value::bool_array_value, + octave_base_value::complex_array_value, + octave_base_value::char_array_value): Provide default implementations. + * ov-base.h: Provide decls. + + * ov.h (octave_value::array_value, octave_value::bool_array_value, + octave_value::complex_array_value, octave_value::char_array_value): + New virtual functions. + + 2003-10-25 John W. Eaton + + * pt-idx.cc (make_subs_cell): Pass dim_vector object to resize. + + * ov-typeinfo.cc (octave_value_typeinfo::do_register_type): + Use resize_and_fill for types. + + * oct-obj.h (octave_value_list::maybe_resize): Use resize_and_fill. + (octave_value_list::resize (int, const octave_value&)): Likewise. + + * oct-map.cc (Octave_map::assign): Use resize_and_fill as needed. + + * Cell.h (Cell (void)): Default size is now 0x0. + + 2003-10-23 John W. Eaton + + * OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, + OPERATORS/op-cs-m.cc, OPERATORS/op-m-cm.cc, OPERATORS/op-s-cm.cc: + Include headers for N-d operators. + + 2003-10-17 John W. Eaton + + * ops.h (DEFNDUNOP_OP, DEFNDUNOP_FN, DEFNDBINOP_OP, + DEFNDBINOP_FN): New N-dimensional macros. + * OPERATORS/op-bm-bm.cc, OPERATORS/op-cm-cm.cc, + OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-m.cc, + OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc, + OPERATORS/op-cs-m.cc, OPERATORS/op-m-cm.cc, + OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc, + OPERATORS/op-m-s.cc, OPERATORS/op-s-cm.cc, + OPERATORS/op-s-m.cc: Use N-dimensional macros as appropriate. + + * DLD-FUNCTIONS/rand.cc (do_rand, Frand, Frandn): + Handle N-dimensions. + + * xpow.cc (elem_xpow (double, const NDArray&), + elem_xpow (double, const ComplexNDArray&), + elem_xpow (const NDArray&, double), + elem_xpow (const NDArray&, const NDArray&), + elem_xpow (const NDArray&, const Complex&), + elem_xpow (const NDArray&, const ComplexNDArray&), + elem_xpow (const Complex&, const NDArray&), + elem_xpow (const Complex&, const ComplexNDArray&), + elem_xpow (const ComplexNDArray&, double), + elem_xpow (const ComplexNDArray&, const NDArray&), + elem_xpow (const ComplexNDArray&, const Complex&), + elem_xpow (const ComplexNDArray&, const ComplexNDArray&): + New functions. + * xpow.h: Provide decls. + + * xdiv.cc (x_el_div (double, const NDArray&), + x_el_div (double, const ComplexNDArray&), + x_el_div (const Complex, const NDArray&), + x_el_div (const Complex, const ComplexNDArray&)): New functions. + * xdiv.h: Provide decls. + + * ov-bool-mat.h (boolNDArray::array_value): New function. + * ov-ch-mat.h (charNDArray::array_value): New function. + * ov-cx-mat.h (ComplexNDArray::array_value): New function. + * ov-re-mat.h (NDArray::array_value): New function. + (NDArray::double_nd_array_value): Delete. + + 2003-10-16 John W. Eaton + + * parse.y (text_getc): New static function. + (gobble_leading_white_space): Use it to simplify EOL processing. + + 2003-10-15 John W. Eaton + + * file-io.cc (fopen_mode_to_ios_mode): Ignore "t" in mode string. + + * strfns.cc (Fischar): rename from Fisstr. + + 2003-10-09 John W. Eaton + + * pr-output.cc (PRINT_ND_ARRAY): New macro. + (octave_print_internal): Use it. + + 2003-10-08 John W. Eaton + + * ov.cc (octave_value::octave_value (const ArrayN&, + bool)): New constructor. + * ov.h: Provide decl. + + * ov.h (octave_value::squeeze): New virtual function. + * ov-base.cc (squeeze): Provide default implementation. + * ov-base-mat.h (octave_base_matrix::squeeze): New function. + * data.cc (Fsqueeze): New function. + + 2003-10-03 John W. Eaton + + * load-save.cc (make_valid_identifier): Return new string. + Arg is now string, not char *. + (ident_is_all_digits): New function. + (hdf5_read_next_data): Use it. + + 2003-10-02 John W. Eaton + + * input.cc (input_event_hook): Clear the event hook if hook_fcn + does not name a valid function. + + 2003-10-01 John W. Eaton + + * mappers.cc (xabs): New function. + (install_mapper_functions): Use it instead of abs for complex args + in Octave's abs mapper function. + + 2003-09-27 Joseph P. Skudlarek + + * DLD-FUNCTIONS/minmax.cc (min, max): Use @deftypefn machinery, + doc missing semantics, and add more examples to texinfo strings. + + 2003-09-26 John W. Eaton + + * load-save.cc (read_mat5_binary_element): Return early if the + miMATRIX element has length zero. + + 2003-09-24 John W. Eaton + + * ov-cell.cc (octave_cell::subsasgn): Also attempt empty + conversion after extracting single element from cell array to + allow things like x{i}.elt = rhs to work. + + 2003-09-19 John W. Eaton + + * ov.h (octave_value::dim_vector): New function. + + * ov.h, ov.cc (octave_value::octave_value (const Cell&)): + New arg, is_cs_list. + (octave_value::octave_value (const NDArray&)): + Create octave_matrix object, not octave_double_nd_array object. + (octave_value::octave_value (const ComplexNDArray&), + octave_value::octave_value (const boolNDArray&), + octave_value (const charNDArray&, bool)): New constructors. + + * ov.h, ov.cc (octave_value::nil_rep): New function. + (octave_value::octave_value (void)): Use it to initialize empty + octave_value objects. + + * ov-list.h, ov-list.cc (octave_list::octave_list (const Cell&)): + New constructor. + * ov-cs-list.h (octave_cs_list::octave_cs_list (const Cell&)): + Likewise. + + * data.cc (Fsize): Handle N-d objects. + + * pr-output.cc (octave_print_internal): New versions for NDArray, + ComplexNDArray, boolNDArray, and charNDArray objects. + * pr-output.h: Provide decls. + + * ov-re-nd-array.h, ov-re-nd-array.cc: Delete. + + * Cell.h, Cell.cc, ov-base-mat.h, ov-base-mat.cc, ov-bool-mat.h, + ov-bool-mat.cc, ov-ch-mat.h, ov-ch-mat.cc, ov-cx-mat.h, + ov-cx-mat.cc, ov-re-mat.h, ov-re-mat.cc, ov-str-mat.h, + ov-str-mat.cc: Now N-dimensional. + + * oct-map.h, oct-map.cc: Now based on Cell ojects instead of + octave_value_list objects. Change all uses. + + * TEMPLATE-INST/Array-tc.cc: Also instantiate ArrayN objects. + Don't instantiate assign funcitons for Array2 objects. + + 2003-09-11 John W. Eaton + + * pt-plot.cc (symbols_of_pt_plot): Default for automatic replot is + now true. + + * pr-output.cc (Fformat): Doc fix. + (current_output_max_field_width, current_output_precision): + New functions. + (float_format::float_format (int, int, int)): Use them to provide + default values for field width and precision. + (print_g): New static variable. + (set_real_format, set_real_matrix_format, set_complex_format) + (set_complex_matrix_format, set_range_format): Handle print_g. + (pr_float, pr_complex): Don't scale if using print_g. + (set_format_style): Accept new "g" and "G" modifiers for short and + long formats and set print_g. + Set default precision and width for short to 5, 10. + Set default precision and width for long to 15, 20. + + 2003-09-10 John W. Eaton + + * OPERATORS/op-m-cs.cc (complex_matrix_conv): Delete function. + (install_m_cs_ops): Don't install complex_matrix_conv here. + + * OPERATORS/op-s-cs.cc (complex_matrix_conv): Delete function. + (install_s_cs_ops): Don't install complex_matrix_conv here. + + * OPERATORS/op-s-s.cc (matrix_conv): Delete function. + (install_s_s_ops): Don't install matrix_conv here. + + * OPERATORS/op-cs-s.cc (complex_matrix_conv): Delete function. + (install_cs_s_ops): Don't install complex_matrix_conv here. + + * OPERATORS/op-cs-m.cc (complex_matrix_conv): Delete function. + (install_cs_m_ops): Don't install complex_matrix_conv here. + + * OPERATORS/op-cs-cs.cc (complex_matrix_conv): Delete function. + (install_cs_cs_ops): Don't install complex_matrix_conv here. + + * ov-typeinfo.cc (do_register_unary_op, + do_register_non_const_unary_op, do_register_binary_op, + do_register_assign_op, do_register_assignany_op, + do_register_pref_assign_conv, do_register_widening_op): + Print warning if installing a duplicate function. + + 2003-09-10 Petter Risholm + + * data.cc, ov-base.cc, ov-base.h, ov.h, ov.cc, ov-re-mat.h, + ov-scalar.h, ov-re-nd-array.h, ov-re-nd-array.cc: Use NDArray, not + ArrayN. + + 2003-09-09 John W. Eaton + + * ov.h (octave_value::double_nd_array_value): New function. + (octave_value::is_real_nd_array): New function. + + * ov-base.cc (octave_base_value::double_nd_array_value): New function. + * ov-base.h: Provide decl. + (octave_base_value::is_real_nd_array): New function. + + 2003-09-09 Petter Risholm + + * ov-re-mat.h (octave_matrix::double_nd_array_value): New function. + * ov-scalar.h (octave_scalar::double_nd_array_value): New function. + + * ov-re-nd-array.cc (octave_double_nd_array::assign): New function. + (octave_double_nd_array::try_narrowing_conversion): Likewise. + (octave_double_nd_array::valid_as_scalar_index): Likewise. + (octave_double_nd_array::double_value): Likewise. + (octave_double_nd_array::matrix_value): Likewise. + (octave_double_nd_array::complex_value): Likewise. + (octave_double_nd_array::convert_slice_to_matrix): Likewise. + * ov-re-nd-array.h: Provide decls. + (octave_double_nd_array::is_real_nd_array): New function. + (octave_double_nd_array::double_nd_array_value): New function. + (octave_double_nd_array::double_nd_array_value): New function. + + * OPERATORS/op-m-nd.cc, OPERATORS/op-nd-m.cc, + OPERATORS/op-nd-nd.cc, OPERATORS/op-nd-s.cc, OPERATORS/op-s-nd.cc: + New files. + * Makefile.in (OP_XSRC): Add them to the list. + + 2003-09-09 David Bateman + + * OPERATORS/op-cs-s.cc (DEFBINOP): First arg is complex, second is + double. + + 2003-09-05 John W. Eaton + + * pt-cell.cc (tree_cell::rvalue): Don't assume that the number of + elements in a tree_argument_list is the same as the number of + objects it contains (cs-list objects expand to more than one). + + * pt-mat.cc (tm_row_const::tm_row_const_rep::do_init_element): + New function, extracted from tm_row_const::tm_row_const_rep::init. + (tm_row_const::tm_row_const_rep::init): Use it. + Also handle cs-list objects. + + * ov-cs-list.cc (octave_cs_list::print_raw): New function. + * ov-cs-list.h (octave_cs_list::print_raw): Provide decl. + * ov-list.h (octave_list::lst): Now protected instead of private. + + 2003-09-04 John W. Eaton + + * pt-plot.cc (subplot_style::columns_ok): Allow boxes style to + have 2 columns as well. + + 2003-08-28 John W. Eaton + + * dirfns.cc (Fls): Check EAGAIN to avoid losing output. + * toplev.cc (run_command_and_return_output): Likewise. + + 2003-08-25 John W. Eaton + + * OPERATORS/op-str-s.cc, OPERATORS/op-str-m.cc: New files. + * Makefile.in (OP_XSRC): Add them to the list. + + 2003-08-22 John W. Eaton + + * defaults.cc (maybe_add_or_del_packages): Use source_file instead + of parse_and_execute. + * parse.y (source_file): New function. + (Fsource): Use it. + * parse.h (source_file): Provide decl. + + 2003-08-21 John W. Eaton + + * utils.cc (octave_vsnprintf): Copy va_list to avoid using more + than once. + + 2003-08-07 John W. Eaton + + * utils.cc (octave_vsnprintf): Call octave_raw_vsnprintf instead + of calling vsnprintf directly. + (octave_vsnprintf) [HAVE_C99_VSNPRINTF]: Declare nchars to be size_t. + + 2003-08-06 Heine Kolltveit + + * utils.cc (check_dimensions(Array&, char), + get_dimensions(octave_value&, char, Array&): New functions. + * utils.h (check_dimensions (Array&, char), + get_dimensions (octave_value&, char, Array&)): Provide decl. + + * data.cc (fill_matrix): Also create N-d arrays. + (Fones, Fzeros): Handle more than 2 args to create N-d arrays. + + 2003-07-30 John W. Eaton + + * data.cc (make_diag): Use std::abs instead of our own ABS macro. + + * utils.cc (identity_matrix): Move here from data.cc. + (identity_matrix): Use std::min instead of our own MIN macro. + + * utils.h (identity_matrix): Provide decl. + + * DLD-FUNCTIONS/svd.cc (Fsvd): Improve handling of empty matrix arg. + + * ov.cc (octave_value(const ArrayN&)): New constructor. + * ov.h (octave_value(const ArrayN&)): Provide decl. + + 2003-07-30 Heine Kolltveit + + * ov.cc (octave_value(const ArrayN&)): New constructor. + * ov.h (octave_value(const ArrayN&)): Provide decl. + + 2003-07-30 John W. Eaton + + * ov.h (Vpropagate_empty_matrices): Delete decl. + * ov.cc: (Vpropagate_empty_matrices): Delete. + (propagate_empty_matrices): Delete. + (symbols_of_ov): Delete DEFVAR for propagate_empty_matrices. + + * utils.cc (empty_arg): Behave as though propagate_empty_matrices + is always 1. + * ov-range.cc (octave_range::is_true): Likewise. + * ov-base-mat.cc (octave_base_matrix::is_true): Likewise. + + * octave.cc (maximum_braindamage): Also set + warn_matlab_incompatible to TRUE. + + * lex.l (Vwhitespace_in_literal_matrix): Delete. + (whitespace_in_literal_matrix): Delete. + (symbols_of_lex): Delete DEFVAR for whitespace_in_literal_matrix. + ({S}*\,{S}*, {S}+, + ({S}*{COMMENT}{SNLCMT}*, + {S}*{NL}{SNLCMT}*, maybe_unput_comma): Behave as though + old Vwhitespace_in_literal_matrix varaible is always 1. + + * octave.cc (maximum_braindamage): Don't set + whitespace_in_literal_matrix. + + 2003-07-29 John W. Eaton + + * Makefile.in (install-lib): Use $(INSTALL), not + $(INSTALL_PROGRAM) for $(SHLLIB) files. + + 2003-07-29 Paul Kienzle + + * Makefile.in: Don't need special system.c for Cygwin. + * oct-procbuf.cc: Use popen rather than fork/exec for Windows. + + 2003-07-28 Paul Kienzle + + * sysdep.cc (CYGWIN_init): Convert TMPDIR to system agnostic path. + + 2003-07-25 Paul Kienzle + + * help.cc (try_info, display_help_text): + Protect spaces in filenames with quotes. + * oct-hist.cc (do_edit_history): Likewise. + * pt-plot.cc (open_plot_stream): Likewise. + + 2003-07-15 John W. Eaton + + * oct-stream.cc (get_size, octave_base_stream::error, + octave_base_stream::do_gets, octave_base_stream::getl, + octave_base_stream::gets, octave_base_stream::do_scanf, + octave_base_stream::scanf, octave_base_stream::do_oscanf, + octave_base_stream::oscanf, do_printf_conv, + octave_base_stream::do_printf, octave_base_stream::printf, + octave_base_stream::puts, octave_base_stream::invalid_operation, + octave_stream::getl, octave_stream::gets, octave_stream::scanf, + octave_stream::oscanf, octave_stream::printf, octave_stream::puts, + octave_stream::invalid_stream_error): Handle name of calling + function for error messages as a std::string object. Change all + callers. + + * file-io.cc (Fprintf, Fputs): New functions, so we can get + function prefixes on error messages right. + (Ffgetl, Ffgets, Ffprintf, Fsprintf, Fputs, Ffscanf, Fsscanf): + Pass name of calling function to octave_stream method. + + * oct-stream.h (octave_base_stream::do_char_scanf, + octave_base_stream::do_real_scanf): Delete unused decls. + + * load-save.cc (read_mat5_binary_element): Correctly read struct + arrays. + + * pt-misc.cc (tree_parameter_list::initialize_undefined_elements): + New args, warnfor and nargout. Change all callers. + (symbols_of_pt_misc): New function. + (warn_undefined_return_values): New function. + + * octave.cc (maximum_braindamage): Don't set + define_all_return_values. + + * ov-usr-fcn.cc (ov_user_function::do_multi_index_op): Always + intiialize undefined elements in ret_list to []. + Never return last computed value. + (Vreturn_last_computed_value, Vdefine_all_return_values): Delete. + (return_last_computed_value, define_all_return_values): Delete. + (symbols_of_ov_usr_fcn): Delete DEFVARs for + return_last_computed_value, define_all_return_values, and + default_return_value. + + 2003-07-14 John W. Eaton + + * pt-misc.cc (tree_parameter_list::convert_to_const_vector): + Don't skip undefined elements. + + 2003-07-13 John W. Eaton + + * octave.cc (maximum_braindamage): Don't set + default_global_variable_value or initialize_global_variables. + + * pt-decl.cc (Vinitialize_global_variables): Delete. + (initialize_global_variables): Delete. + (symbols_of_pt_decl): Delete. + (tree_global_command::do_init): Default initial value is now + always []. + + 2003-07-11 John W. Eaton + + * octave.cc (maximum_braindamage): Don't set default_eval_print_flag. + + * parse.y (Vdefault_eval_print_flag): Delete: + (default_eval_print_flag): Delete. + (symbols_of_parse): Delete DEFVAR for default_eval_print_flag. + (Feval, Fevalin): Return empty octave_value_list and turn printing + on in eval_string if nargout is zero. + + * ov-list.cc (octave_list::assign): Check + Vwarn_resize_on_range_error, not Vresize_on_range_error. + + * ov.cc (Vwarn_resize_on_range_error): New variable. + (warn_resize_on_range_error): New function. + (symbols_of_ov): Add DEFVAR for warn_resize_on_range_error. + + * ov.cc (Vresize_on_range_error): Delete. + (resize_on_range_error): Delete. + (symbols_of_ov): Delete DEFVAR for resize_on_range_error. + + * pt-mat.cc (Vwarn_empty_list_elements): New variable. + (warn_empty_list_elements): New function. + (symbols_of_pt_mat): Add DEFVAR for warn_empty_list_elements. + (tm_row_const::tm_row_const_rep::init, tm_const::init): + Check Vwarn_empty_list_elements, not Vempty_list_elements_ok. + + * pt-mat.cc (Vempty_list_elements_ok): Delete. + (empty_list_elements_ok): Delete. + (symbols_of_pt_mat): Delete DEFVAR for empty_list_elements_ok. + + 2003-07-11 Russell Standish + + * TEMPLATE-INST/Array-tc.cc (resize_fill_value): Provide + specialization. + + 2003-07-10 John W. Eaton + + * strfns.cc (Fchar): Force string conversions without warnings. + + * ov.h (octave_value::convert_to_str, octave_value::all_strings, + octave_value::string_value, octave_value:convert_to_str_internal): + New arg, force. Fix all derived classes to match. + + * strfns.cc (Fchar): Temporarily reset Vwarn_num_to_str to avoid + warnings. + + * ov.cc (convert_to_str): New arg, force. + + * octave.cc (maximum_braindamage): Don't set treat_neg_dim_as_zero. + + * utils.cc (Vwarn_neg_dim_as_zero): New variable. + (warn_neg_dim_as_zero): New function. + (symbols_of_utils): Add DEFVAR for warn_neg_dim_as_zero. + (check_dimensions): Check Vwarn_neg_dim_as_zero, not + Vtreat_neg_dim_as_zero. + + * utils.cc (Vtreat_neg_dim_as_zero): Delete. + (treat_neg_dim_as_zero): Delete. + (symbols_of_utils): Delete DEFVAR for treat_neg_dim_as_zero. + + 2003-07-09 John W. Eaton + + * octave.cc (maximum_braindamage): Don't set prefer_column_vectors. + + * ov.cc (Vprefer_column_vectors): Delete. + (prefer_column_vectors): Delete. + (symbols_of_ov): Delete DEFVAR for prefer_column_vectors. + + * octave.cc (maximum_braindamage): Don't set do_fortran_indexing. + + * ov-re-mat.cc (octave_matrix::double_value, + octave_matrix::complex_value): Use Vwarn_fortran_indexing, not + Vdo_fortran_indexing. + * ov-range.cc (octave_range::double_value, + octave_range::complex_value): Likewise. + * ov-cx-mat.cc (octave_complex_matrix::double_value, + octave_complex_matrix::complex_value): Likewise. + * ov-ch-mat.cc (octave_char_matrix::double_value, + octave_char_matrix::complex_value): Likewise. + * ov-bool-mat.cc (octave_bool_matrix::double_value, + octave_bool_matrix::complex_value): Likewise. + + * ov.cc (Vwarn_fortran_indexing): New variable. + (warn_fortran_indexing): New function. + (symbols_of_ov): Add DEFVAR for warn_fortran_indexing. + (octave_value::vector_value, octave_value::int_vector_value, + (octave_value::complex_vector_value): Check + Vwarn_fortran_indexing, not Vdo_fortran_indexing. + + * ov.h (Vwarn_fortran_indexing): Provide decl. + + * ov.cc (Vdo_fortran_indexing): Delete unused variable. + (do_fortran_indexing): Delete unused function. + (symbols_of_ov): Delete DEFVAR for do_fortran_indexing. + * ov.h (Vdo_fortran_indexing): Delete decl. + + * ov.cc (octave_value::convert_to_str): Call convert_to_str_internal. + (octave_value::convert_to_str_internal): New virtual function. + Rename all derived class convert_to_str functions to match. + + * variables.cc (generate_struct_completions): Set + discard_warning_messages, not Vwarning_option. Also protect + warning_state. + + * parse.y (fold): Temporarily discard warning messages. + Also protect warning_state. + + * error.cc (discard_warning_messages): New variable. + (vwarning): Use it. + (warning): Don't print backtrace if discard_warning_messages is true. + + * ov.cc (octave_value::convert_to_str): + Handle type conversion warning here. + + * gripes.cc (gripe_implicit_conversion): + New function accepting std::string args. + + * octave.cc (maximum_braindamage): Don't set + implicit_num_to_str_ok or implicit_str_to_num_ok. + + * ov-base.cc (octave_base_value::char_matrix_value): + Vimplicit_num_to_str_ok no longer exists. + (octave_base_value::all_strings): Likewise. + (octave_base_value::string_value): Likewise. + + * ov-str-mat.cc (octave_char_matrix_str::matrix_value): Warn based + on Vwarn_str_to_num instead of Vimplicit_str_to_num_ok. + + * ov.cc (Vwarn_num_to_str, Vwarn_str_to_num): New variables. + (warn_num_to_str, warn_str_to_num): New functions. + (symbols_of_ov): Add DEFVARs for warn_num_to_str and Vwarn_str_to_num. + * ov.h (Vwarn_num_to_str, Vwarn_str_to_num): Provide decl. + + * ov.cc (Vimplicit_num_to_str_ok, Vimplicit_str_to_num_ok): + Delete unused variables. + (implicit_num_to_str_ok, implicit_str_to_num_ok): + Delete unused functions. + (symbols_of_ov): Delete DEFVARs for implicit_num_to_str_ok and + implicit_str_to_num_ok. + * ov.h (Vimplicit_num_to_str_ok, Vimplicit_str_to_num_ok): + Delete decls. + + * pt-mat.cc (tree_matrix::rvalue): Vimplicit_num_to_str_ok no + longer exists. + + * ov.cc (Vwarn_imag_to_real): New variable. + (warn_imag_to_real): New function. + (symbols_of_ov): Add DEFVAR for warn_imag_to_real. + * ov.h (Vwarn_imag_to_real): Provide decl. + + * ov.cc (Vok_to_lose_imaginary_part): Delete unused variable. + (ok_to_lose_imaginary_part): Delete unused function. + (symbols_of_ov): Delete DEFVAR for ok_to_lose_imaginary_part. + * ov.h (Vok_to_lose_imaginary_part): Delete decl. + + * ov-complex.cc (octave_complex::double_value): Warn based on + Vwarn_imag_to_real instead of Vok_to_lose_imaginary_part. + (octave_complex::matrix_value): Likewise. + * ov-cx-mat.cc (octave_complex_matrix::double_value): Likewise. + (octave_complex_matrix::matrix_value): Likewise. + + * octave.cc (maximum_braindamage): Don't set ok_to_lose_imaginary_part. + + 2003-07-08 John W. Eaton + + * sighandlers.cc (sig_hup_or_term_handler): New function. + (install_signal_handlers): Install sig_hup_or_term_handler for + SIGHUP and SIGTERM instead of generic_sig_handler. + (Vsighup_dumps_octave_core, Vsigterm_dumps_octave_core): + New static variables. + (sighup_dumps_octave_core, sigterm_dumps_octave_core): + New static functions. + (symbols_of_sighandlers): Add DEFVARs for sighup_dumps_octave_core + and sigterm_dumps_octave_core. + + * defaults.h.in (OCTAVE_LOCALAPIFCNFILEDIR, OCTAVE_LOCALAPIOCTFILEDIR): + Subsitute new variables. + + * defun.cc (check_version): Compare version to OCTAVE_API_VERSION, + not OCTAVE_VERSION. Mismatch is now fatal. + * defun-int.h (DEFINE_FUN_INSTALLER_FUN3): Pass + OCTAVE_API_VERSION instead of OCTAVE_VERSION to check_version. + * version.h (OCTAVE_API_VERSION): New macro, initial value api-v1. + + * defaults.cc (Vdefault_exec_path): New static variable. + (set_default_default_exec_path): New function. + (install_defaults): Call it. + (exec_path): Use it. + (default_exec_path): New function. + (symbols_of_defaults): Add DEFVAR for DEFAULT_EXEC_PATH. + + 2003-07-07 John W. Eaton + + * defaults.h.in (OCTAVE_LOCALSTARTUPFILEDIR, OCTAVE_STARTUPFILEDIR): + Set values directly instead of constructing them. + + 2003-06-28 Arno J. Klaassen + + * toplev.cc (octave_config_info): Key for OCTAVE_CONF_DEFS should + be DEFS, not UGLY_DEFS. + + 2003-06-27 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.50. + + 2003-06-26 John W. Eaton + + * variables.cc (symbol_exist): Distinguish between user and dld + functions loaded in memory. + + 2003-06-24 John W. Eaton + + * pt-mat.cc (tm_row_const::init, tm_const::init): Don't ignore + empty matrices that have one non-zero dimension. + + * variables.cc (symbol_exist): Use dir_path::find_first_of to + search for .oct and .m files. + + * ov-base.cc (octave_base_value::subsasgn): Also allow type + conversion for empty numeric objects with more than one index. + * ov-base-mat.cc (octave_base_matrix::subsasgn): Likewise. + + 2003-06-23 John W. Eaton + + * variables.cc (do_who): New arg, return_list. If return_list is + true, return values in cell or struct arrays instead of printing. + (Fwho, Fwhos): If nargout is 1, ask do_who to return lists of values. + * oct-map.h (Octave_map (const std::string&, const octave_value_list&): + New constructor. + + 2003-06-19 John W. Eaton + + * pt-idx.cc (tree_index_expression::rvalue): + Correctly handle index expressions like x(end).f(end). + (tree_index_expression::lvalue): Likewise. + + * pt-arg-list.cc (F__end__): Add nr, nc info to error messages. + + 2003-06-18 John W. Eaton + + * pr-output.cc (set_format (const Matrix&, int&, double&)): Ask + any_element_is_negative to return true for negative zero as well. + (set_format (const ComplexMatrix&, int&, int&, double&)): Likewise. + + 2003-06-16 John W. Eaton + + * toplev.cc (main_loop): Set octave_interrupt_hook and + octave_bad_alloc_hook to unwind_protect::run_all here. + (recover_from_exception): Don't call unwind_protect::run_all here. + + * pt-except.cc (do_catch_code): Return immediately if + octave_interrupt_immediately is nonzero. + + * sighandlers.cc (sigint_handler): If jumping, don't set + octave_interrupt_state. + + 2003-06-14 John W. Eaton + + * load-save.cc (get_save_type): Avoid all save types other than + LS_DOUBLE to avoid apparent Matlab bugs. + + 2003-06-13 John W. Eaton + + * parse.y (frob_function, parse_fcn_file): Handle help_buf as + stack of strings. + * lex.l ({CCHAR}): Handle help_buf as stack of strings. + Store text returned from grab_help_text in help_buf here. + (reset_parser): Handle help_buf as stack of strings. + (prep_for_nested_function): Push empty string onto help_buf stack. + (grab_help_text): Return help text instead of storing it in help_buf. + * parse.h, parse.y (help_buf): Now a stack of strings. + + * oct-stream.cc (printf_value_cache::string_value): Don't attempt + to extract values when none are available. + + 2003-06-04 John W. Eaton + + * pt-plot.cc (Vgnuplot_has_multiplot): Delete variable. + (gnuplot_has_multiplot): Delete. + (symbols_of_pt_plot): Delete DEFVAR for gnuplot_has_multiplot. + + 2003-05-28 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.49. + + 2003-05-28 Teemu Ikonen + + * load-save.cc (save_mat5_binary_element, save_mat_binary_data): + Allow saving of non-7-bit ASCII characters. + + 2003-05-28 John W. Eaton + + * oct-stream.cc (FINISH_CHARACTER_CONVERSION, + octave_base_stream::do_scanf): Do a better job of resizing for + charachter conversions. + + 2003-05-25 John W. Eaton + + * ov-cx-mat.cc (octave_complex_matrix::assign): Move definition here. + * ov-cx-mat.h: From here. + + 2003-05-24 John W. Eaton + + * ov-range.cc (octave_range::try_narrowing_conversion): Convert to + [](1x0) instead of [](0x0) if range is empty. + + 2003-05-14 John W. Eaton + + * Makefile.in: Handle DESTDIR. + + 2003-05-13 John W. Eaton + + * lex.l: Use yyunput (X, yytext) instead of unput (X) for newer + versions of flex. + + 2003-05-06 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.48. + + 2003-05-02 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.47. + + 2003-05-01 John W. Eaton + + * load-save.cc (save_ascii_data): If saving a range with + non-integer base, limit, or increment, save as matrix instead. + (get_save_type): Avoid unsigned types. + + 2003-04-30 John W. Eaton + + * octave.cc (initialize_pathsearch): Don't save old and set new + value of TEXMFDBS. + + * toplev.cc (restore_texmfdbs_envvar): Delete function. + (Fsystem): Don't set and reset TEXMFDBS. + + * toplev.h, toplev.cc (octave_original_texmfdbs): Delete variable. + + 2003-04-25 John W. Eaton + + * DLD-FUNCTIONS/getpwent.cc (Fgetpwnam): Delete unnecessary + c_str() method. + + 2003-04-22 John W. Eaton + + * file-io.cc: Include for auto_ptr. + + 2003-04-18 John W. Eaton + + * toplev.cc (octave_config_info): Delete LIBKPATHSEA from struct. + * oct-conf.h.in: Don't substitute LIBKPATHSEA. + + * octave.cc (octave_main): Don't call dir_path::set_program_name. + + 2003-04-17 John W. Eaton + + * ov-file.h (octave_file::empty_clone): Create an octave_scalar + object, not an octave_file object. + + 2003-04-01 John W. Eaton + + * load-save.cc (hdf5_read_next_data): Extract list before + assigning to map element. + (add_hdf5_data): Prefix faked names with '_' so they are valid + identifiers. + + 2003-03-24 Mats Jansson + + * syscalls.cc (Fkill): Fixed docstring typo. + + 2003-03-18 John W. Eaton + + * ov-cell.h (octave_cell::is_matrix_type): New function. + + 2003-03-09 Duncan Temple Lang + + * octave.cc (octave_main): New arg, embedded. + * octave.h: Fix decl. + * main.c: Pass 0 for embedded here. + + 2003-03-03 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.46. + + * oct-conf.h.in: Undo previous change. + + * load-save.cc (read_mat5_binary_element): Handle structure arrays. + (save_mat5_binary_element): Likewise. + + 2003-03-01 John W. Eaton + + * ov-cell.cc (octave_cell::subsasgn): Use make_unique in + appropriate places to preserve copy on write semantics. + + * oct-conf.h.in: Substitute OCTAVE_CONF_KPATHSEA_INCFLAGS. + + * oct-stdstrm.h (octave_stdiostream::output_stream): Return stream + if mode is out, not in. + + 2003-02-22 John W. Eaton + + * strfns.cc (Fchar): New function. + + * ov-cell.cc (octave_cell::all_strings): Allow elements to be + string arrays. + * ov.cc (octave_value::all_strings, octave_value::convert_to_str): + New optional arg, pad. Change all derived classes. + + * ov-struct.cc (Ffieldnames, Fisfield): Move here from data.cc. + + * data.cc (Ffieldnames): Rename from Fstruct_elements. Return + cell array instead of a string array. + (Fisfield): Rename from struct_contains. + + 2003-02-22 Paul Kienzle + + * toplev.cc: Put config info in array of strings, then convert to map. + + 2003-02-22 John W. Eaton + + * variables.cc (symbol_exist): For names like foo.bar, don't omit + the part after the dot. + + 2003-02-21 John W. Eaton + + * octave.cc (fun_to_call): New static variable. + (octave_main): Pass it to main_loop. + (long_opts): Accept --funcall. + (usage_string, verbose_usage): Add --funcall. + + * toplev.cc (main_loop): New arg, fun_to_call. If non-empty, + evaluate this function before continuing. + + 2003-02-21 Paul Kienzle + + * file-io.cc (Fmkstemp): Use OCTAVE_LOCAL_BUFFER instead of using + std::auto_ptr directly. + + 2003-02-21 John W. Eaton + + * ov.h, ov.cc (octave_value (long long int)): New constructor. + (octave_value (unsigned long long int)): Likewise. + + * oct-obj.h (octave_value_list::operator delete): Handle systems + with or without placement delete. + + 2003-02-21 Paul Kienzle + + * utils.cc (octave_vsnprintf): Return value of vsnprintf is int, + not size_t. Make sure there is some space left in the buffer for + vsnprintf versions which return the number of characters written + even when the buffer is too short. + + 2003-02-20 John W. Eaton + + * debug.cc (get_user_function): Use dynamic_cast, not static_cast. + + * ov-usr-fcn.cc (octave_user_function::traceback_error): Now const. + + * ov.cc (octave_value (const octave_fcn_handle&)): New constructor. + (octave_value::fcn_handle_value): New virtual function. + * ov-base.cc (octave_value::fcn_handle_value): Provide default. + * ov-usr-fcn.cc (octave_user_function::stash_fcn_file_name): New + arg, nm. Change all callers. + * ov-fcn.h (octave_function::is_nested_function): New virtual function. + * parse.y (get_feval_args): New function. + (feval (octave_function *, const octave_value_list&, int)): Likewise. + (feval (const octave_value_list&, int)): Allow the first arg to be + a function handle as well as a string. + * variables.cc (load_function): New function. + * pt-walk.h, pt-pr-code.h, pt-pr-code.cc, pt-check.h, pt-check.cc, + pt-bp.h, pt-bp.cc: Handle new tree_fcn_handle class. + * pt-all.h: Include pt-fcn-handle.h. + * pt-fcn-handle.h, pt-fcn-handle.cc, ov-fcn-handle.h, + ov-fcn-handle.cc: New files. + + 2003-02-19 John W. Eaton + + * parse.y (FCN_HANDLE): New token type. + (fcn_handle): New non-terminal. + (primary_expr): Also accept fcn_handle. + (tree_fcn_handle_type): New %type. + (union): New field, tree_fcn_handle_type. + (make_fcn_handle): New function. + + * lex.l (@{IDENT}): Recognize function handle syntax. + (@): Don't recognize "@" as a single token. + + * load-save.cc (struct hdf5_callback_data): Provide constructor. + (hdf5_callback_data::name, hdf5_callback_data::doc): Now + std::string instead of char*. Change all uses. + + 2003-02-18 Roger Banks + + * load-save.cc (read_ascii_data, read_ascii_data, + read_mat5_binary_element, save_mat5_binary_element, + save_ascii_data): Handle cell arrays. + (write_mat5_cell_array): New function. + + 2003-02-18 John W. Eaton + + * Makefile.in (DLD_XSRC): Delete log.cc from the list. + Add sqrtm.cc to the list. + + * DLD-FUNCTIONS/log.cc: Delete. + + 2003-02-18 Paul Kienzle + + * DLD-FUNCTIONS/sqrtm.cc: New file. + + 2003-02-18 David Bateman + + * DLD-FUNCTIONS/lu.cc (Flu): Allow non-square matrices. + + 2003-02-17 John W. Eaton + + * load-save.cc (read_binary_file_header, do_load, do_save, + write_header): No longer static. + (load_save_format): Move enum decl to load-save.h. + + 2003-02-15 John W. Eaton + + * oct-stdstrm.h, oct-stdstrm.cc (octave_base_stdiostream, + octave_iostdiostream, octave_istdiostram, octave_ostdiostream): + Combine all functionality into one class, octave_stdiostream. + Change all uses. + + * file-io.cc (Ftmpfile, Fmkstemp): New functions. + * oct-stdstrm.h (octave_iostdiostream): New class. + (octave_istdiostream::octave_istdiostream, + octave_istdiostream::create, + octave_ostdiostream::octave_ostdiostream, octave_ostdiostream::create, + octave_iostdiostream::octave_iostdiostream, + octave_iostdiostream::create): Make close function the last arg. + Change all uses. + + * c-file-ptr-stream.h (io_c_file_ptr_stream): New class. + + 2003-02-14 John W. Eaton + + * octave.cc (maximum_braindamage): Set boolean built-in variables + to true and false instead of 1.0 and 0.0. + (octave_main): Likewise. + * error.cc (Fwarning): Likewise. + + * pager.cc (Fmore): Make the no-arg case work too. + + * ov-str-mat.h (octave_char_matrix_str::is_real_type, + octave_char_matrix_str::is_matrix_type, + octave_char_matrix_str::is_numeric_type): Always return false. + + 2003-02-13 John W. Eaton + + * lex.l (): If we are parsing a command, reset start state. + Use BEGIN (INITIAL) instead of BEGIN 0. Use parens around start + state in BEGIN statements. + + 2003-02-13 Paul Kienzle + + * variables.cc (Fmlock, Fmunlock, Fmislocked): New functions. + + * variables.cc (mlock, munlock, mislocked): New functions. + * variables.h: Provide decls. + + * symtab.h (symbol_record::unmark_static): New function. + + 2003-02-12 John W. Eaton + + * error.cc (reset_error_handler): New function. + * toplev.cc (main_loop): Use it here. + * lex.l (reset_parser): Don't set error_state and warning_state here. + * parse.y (eval_string): Reset parser before calling yyparse. + + 2003-01-29 John W. Eaton + + * data.cc (Ffmod): New function. + + * c-file-ptr-stream.cc (c_file_ptr_buf::underflow_common): New + function. + * c-file-ptr-stream.h (c_file_ptr_buf::underflow, + c_file_ptr_buf::uflow): Use it. + (c_file_ptr_buf): Derive from std::streambuf, not OCTAVE_STD_FILEBUF. + Don't cache file descriptor. + + 2003-01-28 John W. Eaton + + * DLD-FUNCTIONS/minmax.cc: Move min and max functions from here to + liboctave/dMatrix.cc and liboctave/CMatrix.cc. + + 2003-01-24 John W. Eaton + + * DLD-FUNCTIONS/rand.cc: Rewrite to use new octave_rand functions. + + 2003-01-23 John W. Eaton + + * oct-stream.cc (octave_base_stream::do_printf): Handle values + outside the range of integers in int conversions for + compatibilitiy wtih Matlab. + + 2003-01-22 John W. Eaton + + * load-save.cc (get_mat_data_input_line): Handle lines with CR + only as separator. + + * oct-stream.cc (octave_base_stream::do_printf): Handle Inf and + NaN in int conversions for compatibility with Matlab. + + * data.cc (symbols_of_data): Doc fix for realmin. + + * cutils.c (octave_raw_vsnprintf): New function. + * utils.cc (octave_snprintf): Move here from cutils.c. + (octave_Vsnprintf): Likewise. Allow octave_raw_vsnprintf to be + interrupted. + * utils.h (octave_vsnprintf, octave_snprintf): No longer extern "C". + + 2003-01-21 John W. Eaton + + * pt-loop.cc (tree_complex_for_command::eval): Fix typo. + + 2003-01-16 Mumit Khan + + * mk-oct-links: Use $SED if set. + * mkbuiltins: Likewise. + * mkdefs: Likewise. + * mkdocs: Likewise. + * mkgendoc: Likewise. + * mkops: Likewise. + + 2003-01-11 Paul Kienzle + + * Makefile.in (gendoc$(BUILD_EXEEXT)): Pass $(BUILD_CXXFLAGS) and + $(BUILD_LDFLAGS) to compiler. + + 2003-01-11 John W. Eaton + + * parse.y (Fassignin): New function. + + 2003-01-10 John W. Eaton + + * sighandlers.cc (make_sig_struct): New function. + (symbols_of_sighandlers): Add DEFCONST for SIG struct. + + * syscalls.cc (Fkill): New function. + + 2003-01-06 John W. Eaton + + * oct-stream.cc (get_size): If only one dimension is specified and + it is zero, also set the other dimension to zero instead of one. + + 2003-01-04 John W. Eaton + + * sysdep.cc [__DECCXX]: Add a kluge for some missing template + functions. + + 2003-01-03 John W. Eaton + + * ov-usr-fcn.cc (octave_vr_val): Assert vr_list != 0, not vr_list. + * variables.cc (builtin_string_variable, builtin_any_variable, + builtin_real_scalar_variable, bind_builtin_variable): Likewise. + + * TEMPLATE-INST/Array-tc.cc: Provide specialization of + Array::resize_fill_value before instantiation of + Array. + + * oct-obj.h (octave_value_list::operator delete): Define version + of delete operator to correspond to placement new operator. + + * mkgendoc: In generated code, define __USE_STD_IOSTREAM if using + Compaq C++. + + * Makefile.in (distclean): Also remove doc-files and gendoc.cc. + + * input.cc (initialize_command_input): Use const for + initialization of char * from literal string. + + * pt-plot.cc (subplot::extract_plot_data): Call single_subsref, + not subsref. + * ov.h, ov.cc (single_subsref (const std::string&, const + octave_value_list&)): Rename from subsref. + + * symtab.cc (symbol_table::rename): Explicitly convert C string to + std::string so type of second arg of ?: matches third. + (symbol_table::lookup): Likewise. + + * mappers.cc: Remove std:: qualifiers from C library names. + + 2003-01-03 John W. Eaton + + * pt-exp.h (tree_expression::has_magic_end): New pure virtual function. + * pt-id.h (tree_identifier::has_magic_end): New function. + * pt-colon.h (tree_colon_expression::has_magic_end): Likewise. + * pt-idx.h (tree_index_expression::has_magic_end): Likewise. + * pt-const.h (tree_constant::has_magic_end): Likewise. + * pt-unop.h (tree_unary_expression::has_magic_end): Likewise. + * pt-binop.h (tree_binary_expression::has_magic_end): Likewise. + * pt-assign.h (tree_multi_assignment::has_magic_end): Likewise. + (tree_simple_assignment::has_magic_end): Likewise. + * pt-mat.cc (tree_matrix::has_magic_end): Likewise. + * pt-arg-list.cc (tree_argument_list::has_magic_end): Likewise. + + * pt-arg-list.cc (tree_argument_list::append): Check all + expression types for magic end token.. + + * file-io.cc (Ftmpnam): Improve error checking. + (symbols_of_file_io): Move definition of P_tmpdir here from dirfns.cc. + + * dirfns.cc (symbols_of_dirfns): Install new built-in constant + P_tmpdir. + + 2003-01-02 John W. Eaton + + * dirfns.cc (symbols_of_dirfns): New function. + Install new built-in constant filesep. + + * utils.cc (Fisvaranme): New function. + (valid_identifier): Identifiers can't start with digits! Doh! + + * lex.l (Fiskeyword): New function. + + * Makefile.in (INCLUDES): Don't forget base-list.h. + + * symtab.cc (symbol_record::define): If definition already exists, + redefine it instead of replacing it. + + * variables.cc (symbol_exist): Don't use reference when handling + sr->def (). + + * pt-plot.cc (save_in_tmp_file): octave_value arg is now const. + * pt-misc.cc (tree_parameter_list::initialize_undefined_elements): + Likewise. + + * symtab.cc (symbol_record::clear): Don't do anything if the + symbol record is already undefined. + + 2003-01-01 John W. Eaton + + * pt-arg-list.cc (tree_argument_list::append): New function. + (tree_argument_list::convert_to_const_vector): Don't save and + set pointer to indexed object if list_includes_magic_end is false. + * pt-arg-list.h (tree_argument_list::append): Provide decl. + (tree_argument_list::list_includes_magic_end): New data member. + (tree_argument_list::tree_argument_list): Initialize it. + + * ov-base.cc (octave_base_value::char_matrix_value, + octave_base_value::all_strings, octave_base_value::string_value): + Attempt conversions here if Vimplicit_num_to_num_ok is true. + + * ov.cc (Vimplicit_num_to_str_ok): Move here from pt-mat.cc and + make extern. + * ov.h: Provide decl. + + * oct-stream.cc (printf_value_cache::looking_at_string): Delete. + (printf_value_cache::string_value): Just attempt conversion. + (octave_base_stream::do_printf): When doing '%s' format, + just attempt converstion. + + * file-io.cc (Ffread): Allow size to be omitted even when + additional arguments are given. + + 2002-12-31 John W. Eaton + + * pt-arg-list.cc (F__end__): Fail if rows or columns is negative. + (tree_argument_list::convert_to_const_vector): Only protect and + save pointer to the indexed object if it is a constant. + + * syscalls.cc (Fmkfifo): Use long_value instead of cast. + + * ov.h (octave_value::short_value, octave_value::ushort_value, + octave_value::uint_value, octave_value::long_value, + octave_value::ulong_value): New functions. + + * syscalls.cc (mk_stat_map, Fgetegid, getgid, geteuid): Likewise. + Delete unnecessary casts. + * file-io.cc (Ffgetl, Ffgets, Fftell, Fsscanf): Likewise. + * toplev.cc (Fsystem): Likewise. + + * ov-file.h (octave_file::double_value, octave_file::scalar_value): + Delete unnecessry cast. + + * ov.cc (octave_value::octave_value): Add constructors for + octave_time, short int, unsigned short int, unsigned int, long + int, unsigned long int, + + * ov.h (octave_value::do_subsref (const std::string&, const + octave_value_list&)): Rename from subsref. Change all derived classes. + + * input.cc (generate_completion): Delete unused variable prefix_len. + + * ov.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Delete volatile + qualifier for decls of static_type_id and t_id. + (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Likewise, for def of t_id. + + 2002-12-30 John W. Eaton + + * utils.cc (Ffile_in_path): Index args correctly. + + * utils.cc (Ffile_in_path): Call error, not print_usage, for + invalid option error. + (Ffile_in_loadpath): Likewise. + + * load-save.cc: Use OCTAVE_LOCAL_BUFFER instead of local automatic + arrays or using new/delete. + + * lex.l (.): Try another approach to handling EOF here. + + * load-save.cc (read_mat_ascii_data): Use isalpha and isalnum, not + ::isalpha and ::isalnum. + + * defaults.cc (maybe_add_or_del_packages): SCRIPT_FILE arg is now + a const reference type. + + * ov.h (octave_value::subsref, octave_value::subsasgn, + octave_value::assign, octave_value::do_non_const_unary_op, + octave_value::numeric_assign): TYPE arg is now a const reference + type. Change all derived classes. + + * ov.cc (octave_value::subsref (const std::string&, const + octave_value_list&)): Move body here, from ov.h. + + * octave.cc (octave_main): Return 0 at end of function to avoid + compiler warnings. + + 2002-12-30 Paul Kienzle + + * parse.y: Fix typo in doc string. + + 2002-12-29 John W. Eaton + + * DLD-FUNCTIONS/lpsolve.cc (Flpsolve): Rename from Flp_solve. + (Flpsolve_options): Rename ffrom Flp_solve_options. + + 2002-12-27 John W. Eaton + + * parse.y (Fevalin): New function. + + * variables.cc (curr_caller_sym_tab): New global variable. + * variables.h: Provide decl. + (initialize_symbol_tables): Initialize it. + * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): + Protect and set it here. + + 2002-12-26 John W. Eaton + + * utils.cc (search_path_for_file): Second arg now string_vector. + Use find_first_of, not find. + (search_path_for_all_files): Second arg now string_vector. + Use find_all_first_of, not find_all. + (Ffile_in_path): Accept cell array of strings as first argument. + (Ffile_in_loadpath): Likewise. + + * dynamic-ld.cc (octave_dynamic_loader::load): New arg, file_name. + (octave_dynamic_loader::do_load): Likewise. If file_name is not + empty, use it instead of searching in path. + + * parse.y (load_fcn_from_file): Use find_first_of to perform search. + + * ov-cell.cc (octave_cell::all_strings): New function. + * ov-cell.h: Provide decl. + + 2002-12-25 John W. Eaton + + * parse.y (function_end): If parsing a nested function, set + lexer_flags.parsing_nested_function to -1. + (frob_function): If lexer_flags.parsing_nested_function is + negative, set it to zero. + * lex.h (lexical_feedback::parsing_nested_function): Now int. + Change uses as needed. + + * lex.l (NESTED_FUNCTION_BEGIN): Rename from NESTED_FUNCTION_START. + Now an exclusive start state. + (NESTED_FUNCTION_END): New exclusive start state. + (is_keyword): When matching a new function keyword in a nested + function context, explicitly return END and set start state to + NESTED_FUNCTION_END. + (.): Accept EOF here too. + + * variables.cc (link_to_builtin_or_function): Maybe prepend parent + function name symbol name. + + * parse.y (parent_function_name): New variable. + (fcn_name): New non-terminal. + (function2): Use it. + (parsed_fcn_name): Fold into fcn_name. + (function_end): Don't call check_for_garbage_after_fcn_def. + Set lexer_flags.parsing_nested_function on EOF. + * parse.h: Provide decl for parent_function_name. + + * ov-usr-fcn.h (octave_user_function::mark_as_nested_function, + (octave_user_funciton::is_nested_function): New functions. + (octave_user_function::nested_function): New data member. + (octave_user_function::do_multi_index_op): Maybe protect and set + curr_parent_function pointer. + * parse.y (frob_function): Maybe mark as nested function. + + * toplev.cc (curr_parent_function): New global variable. + * toplev.h: Provide decl. + + * lex.l (check_for_garbage_after_fcn_def): Delete. + * lex.h: Delete decl. + + * lex.l (prep_for_nested_function): New function. + (): Use it here. + (is_keyword): And here. + (lookup_identifier): Maybe prepend parent function name. + + * variables.cc (initialize_symbol_tables): Give names to the three + main symbol tables. + * symtab.cc (symbol_table::lookup, symbol_table::rename): Print + debugging info if Vdebug_symtab_lookups is nonzero. + (debug_symtab_lookups): New function. + (Vdebug_symtab_lookups): New static varaible. + (symbols_of_symtab): DEFVAR it. + * symtab.h (symbol_table::table_name): New member variable. + (symtab_count): New static member variable. + (symbol_table::symbol_table): Handle table name. + + 2002-12-24 John W. Eaton + + * parse.y (frob_function): Don't give nested functions the same + name as the function file. + + * lex.h (lexical_feedback::parsing_nested_function): New data member. + * lex.l (lexical_feedback::init): Initialize it to false. + (): Set lexer_flags.parsing_nested_function + to true. + + * parse.y (symtab_context): Now a stack. Change all uses. + + * lex.l (NESTED_FUNCTION_START): New start state to handle + "function" keyword in a nested function context. + (prep_for_function): New function. + (is_keyword): Allow functions to be nested in function files. + + * lex.l (is_keyword): Maybe ignore END tokens. + Increment and decrement end_tokens_expected as appropriate. + (handle_identifier): If is_keyword returns -1, return immediately. + ({IDENT}{S}*): Do nothing if handle_identifier returns -1. + + * parse.y (end_tokens_expected): New variable. + (parse_fcn_file): Protect and set it. + + * parse.y (begin_obj_idx): Increment + lexer_flags.looking_at_object_index. + (postfix_expr): Decrement it as appropriate here. + + * lex.h (lexical_feedback::looking_at_object_index): Now int. + + * parse.y (postfix_expr): Reset lexer_flags.looking_at_object_index + in () and {} cases too. + + 2002-12-21 John W. Eaton + + * pt-arg-list.cc (indexed_object, indexed_position): + New file-scope static variables. + (tree_argument_list::convert_to_const_vector): New arg, object. + Protect and set indexed_object and indexed_position. + (F__end__): New function. + + * octave-lvalue.h (octave_lvalue::object): New member function. + * pt-idx.cc (make_value_list): New arg, object. Change all + callers. Pass object to convert_to_const_vector. + + * lex.h (lexical_feedback.looking_at_object_index): New data member. + * lex.l (lexical_feedback::init): Initialize it. + (is_keyword): If looking at object index, end is not a keyword. + (handle_identifier): If end is not a keyword, transform it to __end__. + * parse.y (begin_obj_idx): New non-terminal. + (postfix_expr): Use it. + + * defun.cc (install_builtin_function): New arg, can_hide_function. + * defun-int.h: Fix decl. + (DEFCONSTFUN_INTERNAL): New macro. + * defun.h (DEFCONSTFUN): New macro. + * mkbuiltins (XDEFCONSTFUN_INTERNAL): New macro. + * mkgendoc: Likewise. + * Makefile.in (DEFUN_PATTERN): Make it work for DEFCONSTFUN too. + * symtab.h (symbol_record::can_hide_function): New data member. + (symbol_record::symbol_record): Initialize it. + * symtab.cc (symbol_record::variable_reference): Also check + can_hide_function flag. + + 2002-12-20 John W. Eaton + + * DLD-FUNCTIONS/time.cc (extract_tm): Use int_value() instead of + casting double_value() to int. + + * ov.cc (octave_value::next_subsref): Arg "skip" is now size_t. + + * oct-obj.h (octave_value_list::octave_value_list (double), + octave_value_list::octave_value_list (const Matrix&), + octave_value_list::octave_value_list (const DiagMatrix&), + octave_value_list::octave_value_list (const RowVector&), + octave_value_list::octave_value_list (const ColumnVector&), + octave_value_list::octave_value_list (const Complex&), + octave_value_list::octave_value_list (const ComplexMatrix&), + octave_value_list::octave_value_list (const ComplexDiagMatrix&), + octave_value_list::octave_value_list (const ComplexRowVector&), + octave_value_list::octave_value_list (const ComplexColumnVector&), + octave_value_list::octave_value_list (const char *), + octave_value_list::octave_value_list (const std::string&), + octave_value_list::octave_value_list (const string_vector&), + octave_value_list::octave_value_list (double, double, double), + octave_value_list::octave_value_list (const Range&): Delete. + Adjust uses of octave_value/octave_value_list to handle this change. + + * ov.cc (octave_value::octave_value (int)): New constructor. + * ov.h: Provide decl. + In files that construct integer-valued octave_value objects, use + ints instead of casing to double. + + 2002-12-19 John W. Eaton + + * load-save.cc (read_mat_ascii_data): Allow commas to separate values. + Try harder to convert filenames to valid identifiers in a + Matlab-compatible way. + + 2002-12-18 John W. Eaton + + * Makefile.in: No need to add $(LIBKPATHSEA) to LINK_DEPS, since + it is not included in liboctave. + + 2002-12-18 JD Cole + + * pt-check.cc (tree_checker::visit_subplot_axes, + tree_checker::visit_do_until_command): New functions. + * pt-check.h: Provide decl. + + 2002-12-17 John W. Eaton + + * variables.cc (Fclear): Fix off-by-one error. + + * oct-stream.cc (octave_base_stream::do_gets): Correctly read + last line of file even if it does not end with new line + character. + + * pt-select.cc (equal): Don't look up == op, just try it and see + whether it works. + + * oct-stream.cc (printf_format_list::printf_format_list): + Handle empty format string. + + 2002-12-06 John W. Eaton + + * pt-mat.cc (class tm_row_const::tm_row_const_rep): Derive from + octave_base_list instead of SLList. Fix tm_row_const member + functions as needed, change all uses. + (class tm_const): Derive from octave_base_list, not SLList. Fix + member functions as needed, change all uses. + * pt-mat.h (class tree_matrix): Derive from octave_base_list + instead of including SLList object as data member. Fix member + functions as needed, change all uses. + + * pt-idx.h (tree_index_expression::args, + tree_index_expression::arg_nm, tree_index_expression::dyn_field): + Now std::list, not SLList. Fix member functions as needed, change + all uses. + + * oct-map.h (Octave_map::map): Now std::map instead of CHMap. + Fix member functions as needed, change all uses. + + * oct-lvalue.h (octave_lvalue::idx): Now std::list instead of + SLList object. Fix member functions as needed, change all uses. + + * dynamic-ld.cc (octave_shlib_list::lib_list): Now std::list + instead of DLList object. Fix member functions as needed, change + all uses. + + * ov.h (octave_value::subsref, octave_value::subsasgn): + Index arg is not std::list, not SLList. Change all derived + classes, all uses. + + * pt-stmt.h (tree_statement_list): Derive from base_octave_list + object instead of including SLList object as data member. Fix + member functions as needed, change all uses. + * pt-select.h (tree_switch_case_list): Likewise. + (tree_if_command_list): Likewise. + * pt-misc.h (tree_parameter_list, tree_return_list, + tree_va_return_list): Likewise. + * pt-plot.h (subplot_list): Likewise. + * pt-mat.h (tree_matrix): Likewise. + * pt-decl.h (tree_decl_init_list): Likewise. + * pt-arg-list.h (tree_argument_list): Likewise. + * comment-list.h (octave_comment_list): Likewise. + + * BaseSLList.cc, DLList.cc, Map.cc, SLList.cc, SLStack.cc, + Stack.cc: Delete. + * Makefile.in (DIST_SRC): Delete them from the list. + + * BaseSLList.h, DLList.h, Map.h, Pix.h, SLList.h, SLStack.h, + Stack.h: Delete + * Makefile.in (INCLUDES): Delete them from the list. + + * Map-oct-obj.cc, SLList-expr.cc, SLList-misc.cc, SLList-plot.cc, + SLList-tc.cc, SLList-tm.cc: Delete. + * Makefile.in (TI_XSRC): Delete them from the list. + + * ov-base-mat.cc (octave_base_matrix::assign): Pass + MT::resize_fill_value () as third arg for ::assign. + + * Cell.h (Cell::resize_fill_value): Use empty Matrix object, not + undefined octave_value object. + (Cell::Cell (int, int, const octave_value&)): Use + resize_fill_value () as default value, not undefined octave_value + object. + + 2002-12-05 John W. Eaton + + * Makefile.in (DEFUN_PATTERN): Make it work for DEFCMD too. + + * base-list.h: New file. + + 2002-12-04 John W. Eaton + + * toplev.cc (octave_interpreter_ready): New global variable. + * toplev.h: Provide decl. + + * octave.cc (octave_main): Call execute_default_pkg_add_files just + before executing startup files. Set octave_interpreter_ready to + true before calling execute_default_pkg_add_files. + + * defaults.cc (maybe_add_or_del_packages, default_load_path, + update_load_path_dir_path): New static functions. + (set_default_path, loadpath): Call update_load_path_dir_path. + (symbols_of_defaults): Use DEFVAR, not DEFCONST for DEFAULT_LOADPATH. + (execute_default_pkg_add_files): New function. + * defaults.h.in: Provide decl. + + * utils.cc (search_path_for_all_files): New function. + (Ffile_in_loadpath, Ffile_in_path): Allow search to return all + files in the path. + + * Cell.cc (Cell (const string_vector&)): New constructor. + + * oct-obj.cc (octave_value_list::assign): Allow optional fill + value for resizing. + * oct-map.cc (Octave_map::assign): Pass fill_value in initial + assignment too. + + 2002-12-03 John W. Eaton + + * TEMPLATE-INST/Map-tc.cc, TEMPLATE-INST/Map-fnc.cc: Delete. + * Makefile.in (TI_XSRC): Delete them from the list. + + * fn-cache.h (octave_fcn_file_name_cache::cache): Now std::map, + not CHMap. + + * TEMPLATE-INST/SLStack-i.cc, TEMPLATE-INST/SLStack-ovl.cc, + TEMPLATE-INST/SLStack-pc.cc, TEMPLATE-INST/SLStack-str.cc, + TEMPLATE-INST/SLStack-sym.cc, TEMPLATE-INST/SLStack-tok.cc, + TEMPLATE-INST/SLStack-ue.cc, TEMPLATE-INST/SLStack-ui.cc: + Delete unnecessary files. + * Makefile.in (TI_XSRC): Delete them from the list. + + * toplev.cc (octave_atexit_functions): Now std::stack, not SLStack. + * pt-plot.cc (tmp_files): Likewise. + * lex.l (token_stack): Likewise. + (class bracket_brace_paren_nesting_level): Make context a data + member instead of deriving from SLStack object. + Use std::stack instead of SLStack. + * ov-usr-fcn.h (octave_user_function::saved_args): Likewise. + * symtab.h (symbol_record::context): Likewise. + (symbol_record::global_link_context): Likewise. + + * unwind-prot.h (unwind_protect::elt_list): Rename from list. + Now std::stack, not SLStack. + + * pt-stmt.h (tree_statement_list): Make list member data instead + of deriving from SLList object. + * pt-select.h (tree_switch_case_list): Likewise. + (tree_if_command_list): Likewise. + * pt-plot.h (subplot_list): Likewise. + * pt-mat.h (tree_matrix): Likewise. + * pt-decl.h (tree_decl_init_list): Likewise. + * pt-arg-list.h (tree_argument_list): Likewise. + * comment-list.h (octave_comment_list): Likewise. + + * defun.h (DEFCMD): Rename from DEFUN_TEXT. Provide DEFUN_TEXT as + an alias for DEFCMD. Change all uses. + + * variables.cc (at_top_level): New function. + (do_who, Fmark_as_command, Funmark_command): Use it. + + * lex.l (COMMAND_START): Rename from TEXT_FCN. Change all uses. + (MATRIX_START): Rename from MATRIX. Change all uses. + * variables.cc (command_function_set): Rename from + text_function_set. + (mark_as_command): Rename from mark_as_text_function. + (is_marked_as_command): Rename from is_marked_as_text_function. + (Fmark_as_command): Rename from Fmark_as_text_function. + (Funmark_command): Rename from Funmark_text_function. + (is_command_name): Rename from is_text_function_name. + * symtab.h (symbol_record::COMMAND): Rename from TEXT_FUNCTION. + (symbol_record::mark_as_command): Rename from mark_as_text_function. + (symbol_record::unmark_command): Rename from + symbol_record::unmark_text_function. + (symbol_record::is_command): Rename from + symbol_record::is_text_function. + (symbol_record::symbol_def::mark_as_command): Rename from + symbol_record::symbol_def::mark_as_text_function. + (symbol_record::symbol_def::unmark_command): Rename from + symbol_record::symbol_def::unmark_text_function. + (symbol_record::symbol_def::is_command): Rename from + symbol_record::symbol_def::is_text_function. + + * pt-jump.h, pt-jump.cc: Undo previous changes. + * parse.y: Undo previous changes for brea, continue, and return. + + 2002-11-25 John W. Eaton + + * pt-stmt.cc (tree_statement::eval): Allow the lookup to execute + script files. If script file has been executed, don't bother to + call expr->rvalue (). + + 2002-11-22 John W. Eaton + + * Makefile.in (OCTINTERP_LINK_DEPS): Include $(FLIBS) in + OCTINTERP_LINK_DEPS. + + * variables.cc (text_function_set): New static data. + (mark_as_text_function, unmark_text_function, + is_marked_as_text_function, Fmark_as_text_function, + Funmark_text_function): New functions. + (is_text_function_name): Handle functions marked as text functions + in special list, not just those marked in the symbol record. + * symtab.h (symbol_record::mark_as_text_function, + symbol_record::unmark_text_function, + symbol_record::symbol_def::mark_as_text_function, + symbol_record::symbol_def::unmark_text_function): New functions. + + * oct-map.h (Octave_map::rows, Octave_map::columns): New functions. + * ov-struct.h (octave_struct::rows, octave_struct::columns, + octave_struct::length): New functions. + + 2002-11-21 John W. Eaton + + * oct-conf.h.in (OCTAVE_CONF_MKOCTFILE_SH_LDFLAGS): New macro. + * toplev.cc (octave_config_info): Add it to the struct. + + * lex.l (): If yytext begins with # or %, don't + recognize it as a string. + + * oct-map.h (Octave_map::operator[]): New const version. + * oct-map.cc (equiv_keys): New function. + (assign (const idx_vector&, const Octave_map&)): New function. + * ov-struct.cc (octave_struct::subsasgn): Use it. + + 2002-11-20 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.40. + + * p-b-b.cc, op-bm-bm.cc, op-chm.cc, op-cm-cm.cc, op-cm-cs.cc, + op-cm-m.cc, op-cm-s.cc, op-cs-cm.cc, op-cs-cs.cc, op-cs-m.cc, + op-cs-s.cc, op-fil-b.cc, op-fil-bm.cc, op-fil-cm.cc, op-fil-cs.cc, + op-fil-lis.cc, op-fil-m.cc, op-fil-rec.cc, op-fil-s.cc, + op-fil-str.cc, op-list.cc, op-m-cm.cc, op-m-cs.cc, op-m-m.cc, + op-m-s.cc, op-range.cc, op-s-cm.cc, op-s-cs.cc, op-s-m.cc, + op-s-s.cc, op-str-str.cc, op-bm-b.cc, op-cell.cc, BaseSLList.cc, + BaseSLList.h, ChangeLog, Map.cc, Map.h, SLList.cc, SLList.h, + SLStack.cc, SLStack.h, Stack.cc, Stack.h, oct-map.cc, oct-map.h, + oct-obj.cc, oct-obj.h, c-file-ptr-stream.cc, c-file-ptr-stream.h, + ov-base-mat.cc, ov-base-scalar.cc, ov-base-scalar.h, ov-base.cc, + ov-base.h, ov-bool-mat.cc, ov-bool-mat.h, ov-bool.cc, ov-bool.h, + ov-builtin.cc, ov-builtin.h, ov-ch-mat.cc, ov-ch-mat.h, + ov-colon.cc, ov-complex.cc, ov-complex.h, ov.h, ov-cx-mat.cc, + ov-cx-mat.h, ov-fcn.cc, ov-fcn.h, ov-file.cc, ov-file.h, + ov-list.cc, ov-list.h, ov-mapper.cc, ov-mapper.h, ov-range.cc, + ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, ov-scalar.h, + ov-str-mat.cc, ov-str-mat.h, ov-struct.cc, ov-struct.h, + ov-typeinfo.cc, ov-typeinfo.h, ov-usr-fcn.cc, ov-usr-fcn.h, + ov-va-args.cc, ov.cc, ov-base-mat.h, procstream.cc, procstream.h, + pt-arg-list.cc, pt-arg-list.h, pt-binop.cc, pt-binop.h, + pt-check.cc, pt-check.h, pt-cmd.cc, pt-cmd.h, pt-colon.cc, + pt-colon.h, pt-const.cc, pt-const.h, pt-decl.cc, pt-decl.h, + pt-except.cc, pt-except.h, pt-exp.cc, pt-exp.h, pt-id.cc, pt-id.h, + pt-idx.cc, pt-idx.h, pt-jump.cc, pt-jump.h, pt-loop.cc, pt-loop.h, + pt-mat.cc, pt-mat.h, pt-misc.cc, pt-misc.h, pt-pr-code.cc, + pt-pr-code.h, pt-select.cc, pt-select.h, pt-stmt.cc, pt-stmt.h, + pt-unop.cc, pt-unop.h, pt.cc, pt.h, symtab.h, token.cc, token.h, + unwind-prot.cc, unwind-prot.h, ov-base-nd-array.cc, + ov-re-nd-array.h, ov-re-nd-array.cc, ov-base-nd-array.h, + comment-list.h, comment-list.cc, DLList.cc, DLList.h, + ov-dld-fcn.h, ov-dld-fcn.cc, Cell.cc, Cell.h, pt-cell.h, + pt-cell.cc, ov-cell.h, ov-cell.cc, pt-plot.cc, pt-plot.h, + pt-assign.cc, pt-assign.h, pt-bp.cc, pt-bp.h, symtab.cc, + ov-cs-list.h, ov-cs-list.cc: + Use "defined (USE_PRAGMA_INTERFACE_IMPLEMENTATION)" instead of + "! defined (NO_PRAGMA_INTERFACE_IMPLEMENTATION)". + + 2002-11-19 John W. Eaton + + * oct-obj.h (octave_value_list::~octave_value_list): New function. + + 2002-11-19 John W. Eaton + + * DLD-FUNCTIONS/odessa.cc (odessa_user_j): Put T in args(1), not + args(0). + + 2002-11-18 John W. Eaton + + * parse.y (symtab_context): Now extern. + * parse.h: Provide decl. + * lex.l (reset_parser): Set it to 0. + + 2002-11-15 John W. Eaton + + * pt-bp.cc (octave_debug_on_interrupt_state): New global variable. + * pt-bp.h: Provide decl. + (MAYBE_DO_BREAKPOINT): Check it. + + * sighandlers.cc (sigint_handler): Handle debug_on_interrupt. + (Vdebug_on_interrupt): New static variable. + (symbols_of_sighandlers): New function. DEFVAR Vdebug_on_interrupt. + (debug_on_interrupt): New function. + + * lex.h (YY_FATAL_ERROR): Use OCTAVE_QUIT here. + + * utils.cc (toplevel): Delete variable. + + * sighandlers.cc (OCTAVE_MEMORY_EXHAUSTED_ERROR): Delete. + + 2002-11-14 John W. Eaton + + * sighandlers.cc (octave_new_handler): Delete. + (install_signal_handlers): Don't call set_new_handler. + * toplev.cc (main_loop): Handle bad_alloc exception here. + + * sighandlers.cc (octave_new_handler): Allow return after + OCTAVE_JUMP_TO_TOP_LEVEL. + (sigfpe_handler): Likewise. + + 2002-11-13 John W. Eaton + + * variables.cc (is_variable): New static function. + (generate_struct_completions): Only evaluate objects that look + like variables. + + 2002-11-12 John W. Eaton + + * pt-jump.h, pt-jump.cc (tree_break_expression, + tree_continue_expression, tree_return_expression): Rename from + tree_break_command, tree_continue_command, tree_return_command. + Implement as expressions that return TRUE instead of commands. + Change all uses. + * parse.y (make_break_expression, make_continue_expression, + make_return_expression): Rename from make_break_command, + make_continue_command, make_return_command. Change all uses. + (jump_expr): Rename from jump_command, type is now expression. + Use in simple_expr, not command. + + * toplev.cc (octave_initialized): New global variable. + (main_loop): Set it to true here. + * sighandlers.cc (sigint_handler): Exit immediately if we have not + finished init process. + + * load-save.cc (extract_keyword): Return std::string, not char *. + Change all uses. + (read_ascii_data): Likewise. + (read_binary_data): Likewise. + (read_hdf5_data): Likewise. + (read_mat_ascii_data): Likewise. + (read_mat_binary_data): Likewise. + (do_load): Name and doc are now std::string objects, not char *. + (install_loaded_variable): Likewise. + (read_hdf5_data): Doc is now std::string object, not char *&. + (read_mat_ascii_data): Call OCTAVE_QUIT in strategic locations. + (get_lines_and_columns): Likewise. + + * toplev.cc (main_loop): Call OCTAVE_QUIT after executing command. + * parse.y (parse_and_execute (FILE *)): Likewise. + + 2002-11-12 Joseph P. Skudlarek + + * input.cc (match_sans_spaces_semi): Rename from match_sans_spaces. + Ignore trailing semicolons too. Change all callers. + + 2002-11-11 John W. Eaton + + * octave.gperf: Allow "persistent" as a synonym for static. + + * defun-int.h (DEFUN_MAPPER_INTERNAL): Don't forget doc string + when creating octave_mapper object. + + * sysdep.cc (BSD_init): Avoid failure if FP_X_DNML is not defined. + + 2002-11-08 John W. Eaton + + * cutils.c: Be sure to always return buf. + + Undo previous vnprintf changes. The portable snprintf I found + does not handle floating point conversions... + + 2002-11-07 John W. Eaton + + * Makefile.in (liboctinterp.$(LIBEXT)): Include $(XERBLA) here. + (octave.$(EXEEXT)): Not here. + (liboctinterp.$(SHLEXT)): Include $(PIC_XERBLA) here. + + * main.c: Move decl for xerbla here from octave.cc. + + * cutils.c (octave_vsnprintf): Use portable_snprintf to avoid + having to cope with all kinds of buggy implementations. + + * snprintf.c: New file. + * Makefile.in (DISTFILES): Add it to the list. + + * oct-snprintf.h: New file. + * Makefile.in (INCLUDES): Add it to the list. + + * oct-snprintf.c: New file. + * Makefile.in (DIST_SRC): Add it to the list. + + * toplev.cc (main_loop): Use SET_OCTAVE_INTERRUPT_IMMEDIATELY + instead of assigning octave_interrupt_immediately. + + 2002-11-06 John W. Eaton + + * utils.cc (jump_to_top_level): Delete. + + * toplev.cc (toplevel): Delete. + (main_loop): Adapt to new signal/exception handling scheme. + + * sighandlers.cc (octave_signal_mask, octave_save_signal_mask, + octave_restore_signal_mask): Move to libcruft/misc/quit.cc. + (sigint_handler) [USE_EXCEPTIONS_FOR_INTERRUPTS]: set + octave_interrupt_state. Only jump if octave_interrupt_immediately + is true, and then only to enclosing context. + + * lex.h (YY_FATAL_ERROR): Use OCTAVE_JUMP_TO_TOP_LEVEL, not + jump_to_top_level. + * sighandlers.cc (octave_new_handler, sigfpe_handler, endif, + sigpipe_handler): Likewise. + + * input.cc (gnu_readline): Surround call to + command_editor::readline with + BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE and + END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE. + + * data.cc, oct-stream.cc, ov-cell.cc, ov-mapper.cc, ov-re-mat.cc, + ov.cc, pr-output.cc, pt-loop.cc, pt-stmt.cc, xdiv.cc, xpow.cc, + DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc, + DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/find.cc, + DLD-FUNCTIONS/kron.cc, DLD-FUNCTIONS/log.cc, + DLD-FUNCTIONS/minmax.cc, DLD-FUNCTIONS/qz.cc, + DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/sort.cc: Sprinkle with + OCTAVE_QUIT. + + * DLD-FUNCTIONS/odessa.cc (Fodessa): Correctly extract bsub from + function arg. + + 2002-11-04 John W. Eaton + + * cutils.c (octave_vsnprintf): Handle C99 snprintf semantics. + + * oct-obj.h (octave_value_list::operator =): Copy names too. + (octave_value_list::octave_value_list (const octave_value_list&)): + Likewise. + + 2002-11-01 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.39. + + * variables.cc (generate_struct_completions): Temporarily reset + discard_error_messages and error_state + (looks_like_struct): Temporarily reset Vwarning option, + error_state, and discard_error_messages. + + * pt-idx.cc (tree_index_expression::eval_error): Now const. + (tree_index_expression::get_struct_index): Require valid identifier. + (tree_index_expression::make_arg_struct, + tree_index_expression::rvalue, tree_index_expression::lvalue): + Handle possible error from get_struct_index. + + * utils.cc (valid_identifier): Move here from load-save.cc. + * utils.h: Provide decl. + + * input.cc (generate_possible_completions): Call + command_editor::filename_completion_desired here. + (generate_possible_completions): Don't generate struct completions + if text contains directory separator or "..". + + 2002-10-31 John W. Eaton + + * DLD-FUNCTIONS/odessa.cc (odessa_user_f, odessa_user_j, + odessa_user_b): Reorder args for consistency with other solvers. + (Fodessa): Use extract_function to set args. + (odessa_user_j): Rename from odessa_user_mf. + + * DLD-FUNCTIONS/fsolve.cc (fsolve_user_function, fsolve_user_jacobian): + Print warning if user returns complex value. + * DLD-FUNCTIONS/quad.cc (quad_user_function): Likewise. + * DLD-FUNCTIONS/lsode.cc (lsode_user_function, lsode_user_jacobian): + Likewise. + * DLD-FUNCTIONS/dassl.cc (dassl_user_function, dassl_user_jacobian): + Likewise. + * DLD-FUNCTIONS/dasrt.cc (dasrt_user_f, dasrt_user_cf, dasrt_user_j): + Likewise. + * DLD-FUNCTIONS/daspk.cc (daspk_user_function, daspk_user_jacobian): + Likewise. + + * DLD-FUNCTIONS/daspk.cc (daspk_user_jacobian): New function. + (Fdaspk): Handle extracting Jacobian from function argument. + + * DLD-FUNCTIONS/fsolve.cc (fsolve_user_function): New function. + (Ffsolve): Handle extracting Jacobian from function argument. + + * Makefile.in (%.oct): Depend on octave$(EXEEXT) so that octave + will be built before any .oct files. + (all): Depend on stamp-oct-links. + (octave$(EXEEXT)): Don't depend on stamp-oct-links. + + * ov-base.cc (octave_base_value::subsasgn): Handle default numeric + case here. + * ov-base-mat.cc (octave_base_matrix::subsasgn): Delete. + + 2002-10-30 John W. Eaton + + * Makefile.in (OCT_LINK_DEPS): Add $(BLAS_LIBS), $(FFTW_LIBS), and + $(FLIBS). + + 2002-10-29 John W. Eaton + + * version.h (OCTAVE_VERSION): Now 2.1.38. + + * utils.cc (octave_vformat): Get return value from + streambuf::vform. + + * DLD-FUNCTIONS/fsolve.cc (Ffsolve): Always return solution. + Don't barf on nargout == 3. + + * pt-idx.h (tree_index_expression::dyn_field): New data member. + * pt-idx.cc (tree_index_expression::tree_index_expression + (tree_expression*, tree_expression*, int, int)): New constructor. + (tree_index_expression::append (tree_expression*)): New function. + (tree_index_expression::get_struct_index): New function. + (tree_index_expression::make_arg_struct): Handle dynamic fields. + (tree_index_expression::rvalue): Likewise. + (tree_index_expression::lvalue): Likewise. + + * parse.y (make_indirect_ref (tree_expression*, tree_expression*)): + New function. + (indirect_ref_op): New non-terminal. + (postfix_expr): Use it. + Recognize dynamic struct field references. + (parsing_indir): Delete unused non-terminal. + + * lex.l ("("): Set lexer_flags.looking_at_indirect_ref to false here. + + * pt-idx.cc (tree_index_expression::name): Simplify. + + 2002-10-28 John W. Eaton + + * oct-conf.h.in (OCTAVE_CONF_HAVE_DLOPEN_API, + OCTAVE_CONF_HAVE_LOADLIBRARY_API, OCTAVE_CONF_HAVE_SHL_LOAD_API): + Delete. + * toplev.cc (octave_config_info): Delete them from the struct + + * load-save.cc (read_ascii_data): Use octave_read_double and + octave_read_complex so that we handle Inf, NaN, and NA. + (read_mat_ascii_data): Likewise. + (save_ascii_data): Use octave_write_double andoctave_write_complex. + + 2002-10-25 John W. Eaton + + * toplev.cc (octave_config_info): Rename WITH_DYNAMIC_LINKING to + ENABLE_DYNAMIC_LINKING. + * oct-conf.h.in: Likewise. + * mkbuiltins: Likewise. + * fn-cache.cc (file_name_cache_elt::update): Likewise. + * Makefile.in: Likewise. + + 2002-10-24 John W. Eaton + + * cutils.c (octave_vsnprintf): Buffer and buffer size now static. + * utils.cc (octave_vformat): Don't free buffer returned from + octave_vsnprintf here. + + * ov-usr-fcn.cc (va_arg, va_start, vr_val): Only print warning + once per session. + + * ov-mapper.cc (octave_mapper::apply): Don't try real_type case if + arg is a string and we have a ch_map_fcn. + + * Makefile.in: Add $(LIBKPATHSEA) to $(OCTAVE_LIBS) if + $(INCLUDE_LINK_DEPS) is false, not if $(SHARED_LIBS) is false. + + 2002-10-23 John W. Eaton + + * DLD-FUNCTIONS/daspk.cc (daspk): Use set_options, not copy. + * DLD-FUNCTIONS/dasrt.cc (dasrt): Likewise. + * DLD-FUNCTIONS/dassl.cc (dassl): Likewise. + * DLD-FUNCTIONS/fsolve.cc (fsolve): Likewise. + * DLD-FUNCTIONS/lsode.cc (lsode): Likewise. + * DLD-FUNCTIONS/odessa.cc (Fodessa): Likewise. + * DLD-FUNCTIONS/quad.cc (Fquad): Likewise. + + 2002-10-22 John W. Eaton + + * oct-map.cc (Octave_map::assign): Fix typo in resizing. + + * pt-loop.cc (tree_complex_for_command::eval): Only return list + for val if struct array has more than one element. + (tree_simple_for_command::eval): Likewise. + + * ov-struct.cc (octave_struct::print_raw): Don't create + octave_list directly, use octave_value (const octave_value_list&) + constructor instead. + Call print_with_name for tmp, not val(0). + + * version.h (OCTAVE_VERSION): Now 2.1.37. + (OCTAVE_CONTRIB_STATEMENT): New macro. + (OCTAVE_STARTUP_MESSAGE): Use it. + + 2002-10-17 John W. Eaton + + * data.cc (fill_matrix): If nargin is zero, use val, not 0.0. + + * main.c: New file. + * octave.h: New file. + * octave.cc (octave_main): Rename from main. + Include octave.h. + * Makefile.in (OBJECTS): Add octave.o, builtins.o, and ops.o to + the list. + (octave): Depend on and link main.o, not octave.o, builtins.o, and + ops.o (they are now in liboctinterp). + (DEP_5): Add main.c here. + + * oct-conf.h.in: No need to substitute OCTAVE_CONF_OCTAVE_LITE. + * toplev.cc (octave_config_info): Likewise, don't include it in + struct. + + * mkbuiltins: Remove check for OCTAVE_LITE, since it is now + implied by WITH_DYNAMIC_LINKING. + * Makefile.in: Likewise, replace tests for OCTAVE_LITE with tests + for WITH_DYNAMIC_LINKING instead. + + * oct-conf.h.in: Use OCTAVE_CONF_HAVE_DLOPEN_API, + OCTAVE_CONF_HAVE_LOADLIBRARY_API, and + OCTAVE_CONF_HAVE_SHL_LOAD_API instead of OCTAVE_CONF_WITH_DL and + OCTAVE_CONF_WITH_SHL. + * toplev.cc (octave_config_info): Likewise. + + 2002-10-16 John W. Eaton + + * help.cc (display_help_text): Quote output file name for Cygwin. + + * Makefile.in (install-lib): Don't bother with versions for + $(SHLBIN) files. + + * help.cc (display_help_text): Match zero or more comment + characters instead of one or more. + + * Makefile.in (install-oct): Process files from $(DLD_DEF_FILES), + not $(DLD_SRC). Look for them in current directory, not $(srcdir). + + 2002-10-15 John W. Eaton + + * ov-mapper.cc (octave_mapper::apply): Handle real and complex + types first. If the arg is something else, try ch_map_fcn if it + is defined. + + 2002-10-15 Paul Kienzle + + * Makefile.in: If building shared but not static libs, only set + XERBLA to the location of the pic object file if FPICFLAG is + defined. + + 2002-10-14 John W. Eaton + + * DLD-FUNCTIONS/minmax.cc, DLD-FUNCTIONS/getrusage.cc, data.cc, + file-io.cc, ov-base.cc, ov-bool-mat.cc, ov-ch-mat.cc, + ov-complex.cc, ov-cx-mat.cc, ov-range.cc, ov-re-mat.cc, + ov-re-nd-array.cc: Change all uses of octave_Inf, octave_NA, and + octave_NaN to be calls to lo_ieee_Inf_value, lo_ieee_NA_value, and + lo_ieee_NaN_value instead of using the constants directly to avoid + linking problem with Cygwin. + + * Makefile.in (install): No need to use cd to create links. + + 2002-10-14 Paul Kienzle + + * Makefile.in: Merge liboctave with liboct-readline and + liboct-pathsearch. + Use link dependencies for shared libs if INCLUDE_LINK_DEPS. + (LIBRARIES): If doing shared libs, include versioned library in list. + (liboctinterp.$(SHLEXT), liboctinterp.$(SHLEXT_VER)): Reverse + actions -- build unversioned library, symbolic link adds version + info. + (install, uninstall): Handle link and load forms of the library + separately. + + * toplev.cc (octave_config_info): Remove LIBOCT_READLINE and + LIBOCT_PATHSEARCH, add LIBREADLINE. + * oct-conf.h.in: Likewise. + + 2002-10-11 John W. Eaton + + * lex.l (handle_identifier): Don't enter token in local symbol + table if the following token is a dot and it looks like a binary + operator. + (force_local_variable): If name is not a variable, clear it before + defining. + + * oct-procbuf.cc (Vkluge_procbuf_delay): Make default 0 for all + systems. + + * octave.cc (execute_startup_files, initialize_pathsearch): + Use file_ops::dir_sep_str instead of OCTAVE_DIR_SEP_STR. + (main): Use file_ops::dir_sep_chars instead of OCTAVE_DIR_SEP_CHARS. + + * ov-re-mat.cc (octave_matrix::convert_to_str): Warn for out of + range conversions. For negative values, set to 0. + * ov-scalar.cc (octave_scalar:convert_to_str): Likewise. + + * mappers.cc (xabs): New static function. + (install_mapper_functions): Use it for abs for character matrices. + Handle ch_map_flag separately from can_ret_cmplx_for_real in + all uses of DEFUN_MAPPER. + * defun.h (DEFUN_MAPPER): Handle ch_map_flag separately from + can_ret_cmplx_for_real. + * defun-int.h (DEFUN_MAPPER_INTERNAL): Likewise. + * mkbuiltins: Likewise. + * mkgendoc: Likewise. + * ov-mapper.cc (octave_mapper::apply): Use ch_map_flag and + can_ret_cmplx_for_real instead of flag. + * ov-mapper.h (octave_mapper::ch_map_flag): Rename from flag. + (octave_mapper::can_ret_cmplx_for_real): New data member. + (octave_mapper::octave_mapper): Handle it here. + + 2002-10-10 John W. Eaton + + * octave.cc (execute_startup_files): Don't forget directory + separator for local initfile. + + * move-if-change: Delete. + * Makefile.in (DISTFILES): Delete it from the list. + + 2002-10-09 John W. Eaton + + * Makefile.in: Use $(EXEEXT) and $(BUILD_EXEEXT) as appropriate. + + * pt-plot.cc (Vgnuplot_binary): Use GNUPLOT_BINARY as default. + + * octave.cc (execute_startup_files): + Use octave_env::getcwd instead of "./". + Use OCTAVE_DIR_SEP_STR instead of "/". + (initialize_pathsearch): Use OCTAVE_DIR_SEP_STR instead of /. + (main): Look for OCTAVE_DIR_SEP_CHARS, not '/'. + + 2002-10-08 John W. Eaton + + * Makefile.in (gendoc): Use $(BUILD_CXX), not $(CXX). + + 2002-10-07 John W. Eaton + + * utils.cc (octave_sleep): Cast result of modf to unsigned int. + + 2002-10-07 Paul Kienzle + + * sighandlers.cc (my_friendly_exit): If kill is unavailable, use + raise. + + 2002-10-06 John W. Eaton + + * sysdep.cc (CYGWIN_init): New function. + (sysdep_init) [__CYGWIN__]: Call it. + + * pt-plot.cc (subplot::handle_plot_data): Surround file names in + single quotes, not double (for Windows). + (do_external_plotter_cd): Likewise. + + 2002-10-03 John W. Eaton + + * cutils.c (octave_usleep): Call octave_sleep, not sleep. + + * utils.cc (octave_sleep (double)): New function. + * utils.h: Provide decl. + * sysdep.cc (Fpause, Fsleep): Use it. + + * cutils.c (do_octave_usleep): Merge with octave_usleep. + (octave_usleep): Make it work for Windows systems. From Paul + Kienzle . + + 2002-10-03 Paul Kienzle + + * cutils.c (octave_usleep): Make it work for Windows systems. + + * toplev.cc (Fsystem): Error message if fork is not available. + + 2002-10-02 John W. Eaton + + * cutils.c (octave_sleep): Handle Windows, which may not have + sleep, but should have Sleep. + + * oct-conf.h.in (OCTAVE_CONF_SED): Add an entry for SED. + * toplev.cc (octave_config_info): Likewise. + * Makefile.in (oct-gperf.h): Use $(SED), not sed. + + 2002-09-27 John W. Eaton + + * file-io.cc (fopen_mode_to_ios_mode): Set ios::ate instead of + ios::app for "a+" mode. + * oct-stream.cc (octave_stream::mode_as_string): Recognize + ios::ate, not ios::app as "a+" mode. + (octave_stream::mode_as_string): Use parens since | has lower + precedence than ==. + + 2002-09-26 Paul Kienzle + + * sysdep.cc: Include conio.h if it exists. + (octave_kbhit): Rename from kbhit. Implement with _kbhit if it + exists. Change all callers. + * cutils.c (octave_sleep): New function. + Change all callers of sleep to use octave_sleep instead. + + 2002-09-26 John W. Eaton + + * BaseSLList.cc, BaseSLList.h, Cell.cc, Cell.h, DLList.cc, + DLList.h, Map.cc, Map.h, OPERATORS/op-b-b.cc, + OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc, OPERATORS/op-cell.cc, + OPERATORS/op-chm.cc, OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, + OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc, + OPERATORS/op-cs-cs.cc, OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc, + OPERATORS/op-fil-b.cc, OPERATORS/op-fil-bm.cc, + OPERATORS/op-fil-cm.cc, OPERATORS/op-fil-cs.cc, + OPERATORS/op-fil-lis.cc, OPERATORS/op-fil-m.cc, + OPERATORS/op-fil-rec.cc, OPERATORS/op-fil-s.cc, + OPERATORS/op-fil-str.cc, OPERATORS/op-list.cc, + OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc, + OPERATORS/op-m-s.cc, OPERATORS/op-range.cc, OPERATORS/op-s-cm.cc, + OPERATORS/op-s-cs.cc, OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc, + OPERATORS/op-str-str.cc, SLList.cc, SLList.h, SLStack.cc, + SLStack.h, Stack.cc, Stack.h, c-file-ptr-stream.cc, + c-file-ptr-stream.h, comment-list.cc, comment-list.h, oct-map.cc, + oct-map.h, oct-obj.cc, oct-obj.h, ov-base-mat.cc, ov-base-mat.h, + ov-base-nd-array.cc, ov-base-nd-array.h, ov-base-scalar.cc, + ov-base-scalar.h, ov-base.cc, ov-base.h, ov-bool-mat.cc, + ov-bool-mat.h, ov-bool.cc, ov-bool.h, ov-builtin.cc, ov-builtin.h, + ov-cell.cc, ov-cell.h, ov-ch-mat.cc, ov-ch-mat.h, ov-colon.cc, + ov-complex.cc, ov-complex.h, ov-cs-list.cc ov-cs-list.h, + ov-cx-mat.cc, ov-cx-mat.h, ov-dld-fcn.cc, ov-dld-fcn.h, ov-fcn.cc, + ov-fcn.h, ov-file.cc, ov-file.h, ov-list.cc, ov-list.h, + ov-mapper.cc, ov-mapper.h, ov-range.cc, ov-range.h, ov-re-mat.cc, + ov-re-mat.h, ov-re-nd-array.cc, ov-re-nd-array.h, ov-scalar.cc, + ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, ov-struct.cc, + ov-struct.h, ov-typeinfo.cc, ov-typeinfo.h, ov-usr-fcn.cc, + ov-usr-fcn.h, ov-va-args.cc, ov.cc, ov.h, procstream.cc, + procstream.h, pt-arg-list.cc, pt-arg-list.h, pt-assign.cc, + pt-assign.h, pt-binop.cc, pt-binop.h, pt-bp.cc, pt-bp.h, + pt-cell.cc, pt-cell.h, pt-check.cc, pt-check.h, pt-cmd.cc, + pt-cmd.h, pt-colon.cc, pt-colon.h, pt-const.cc, pt-const.h, + pt-decl.cc, pt-decl.h, pt-except.cc, pt-except.h, pt-exp.cc, + pt-exp.h, pt-id.cc, pt-id.h, pt-idx.cc, pt-idx.h, pt-jump.cc, + pt-jump.h, pt-loop.cc, pt-loop.h, pt-mat.cc, pt-mat.h, pt-misc.cc, + pt-misc.h, pt-plot.cc, pt-plot.h, pt-pr-code.cc, pt-pr-code.h, + pt-select.cc, pt-select.h, pt-stmt.cc, pt-stmt.h, pt-unop.cc, + pt-unop.h, pt.cc, pt.h, symtab.cc, symtab.h, token.cc, token.h, + unwind-prot.cc, unwind-prot.h: + If __GNUG__, use pragma interface/implementation. Allow this to + be turned off by defining NO_PRAGMA_INTERFACE_IMPLEMENTATION. + + 2002-09-26 Paul Kienzle + + * mappers.cc (install_mapper_functions): Install erf, not xerf. + Install erfc, not xerfc. + + * pt-bp.cc (tree_breakpoint::visit_unwind_protect_command): + Rename lst1 and lst2 to avoid dlgs.h conflict. + + * parse.y: Replace TEXT with STRING to avoid winnt.h conflict. + * lex.l: Ditto. + + * sysdep.cc (raw_mode): Non-fatal warning if raw_mode is not + supported. + + * sighandlers.cc: Don't define handlers for non-existent signals. + + * utils.cc: Don't include unneeded termio headers. + + 2002-09-19 John W. Eaton + + * BaseSLList.cc, BaseSLList.h, Cell.cc, Cell.h, DLList.cc, + DLList.h, Map.cc, Map.h, OPERATORS/op-b-b.cc, + OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc, OPERATORS/op-cell.cc, + OPERATORS/op-chm.cc, OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, + OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc, + OPERATORS/op-cs-cs.cc, OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc, + OPERATORS/op-fil-b.cc, OPERATORS/op-fil-bm.cc, + OPERATORS/op-fil-cm.cc, OPERATORS/op-fil-cs.cc, + OPERATORS/op-fil-lis.cc, OPERATORS/op-fil-m.cc, + OPERATORS/op-fil-rec.cc, OPERATORS/op-fil-s.cc, + OPERATORS/op-fil-str.cc, OPERATORS/op-list.cc, + OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc, + OPERATORS/op-m-s.cc, OPERATORS/op-range.cc, OPERATORS/op-s-cm.cc, + OPERATORS/op-s-cs.cc, OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc, + OPERATORS/op-str-str.cc, SLList.cc, SLList.h, SLStack.cc, + SLStack.h, Stack.cc, Stack.h, c-file-ptr-stream.cc, + c-file-ptr-stream.h, comment-list.cc, comment-list.h, oct-map.cc, + oct-map.h, oct-obj.cc, oct-obj.h, ov-base-mat.cc, ov-base-mat.h, + ov-base-nd-array.cc, ov-base-nd-array.h, ov-base-scalar.cc, + ov-base-scalar.h, ov-base.cc, ov-base.h, ov-bool-mat.cc, + ov-bool-mat.h, ov-bool.cc, ov-bool.h, ov-builtin.cc, ov-builtin.h, + ov-cell.cc, ov-cell.h, ov-ch-mat.cc, ov-ch-mat.h, ov-colon.cc, + ov-complex.cc, ov-complex.h, ov-cs-list.cc ov-cs-list.h, + ov-cx-mat.cc, ov-cx-mat.h, ov-dld-fcn.cc, ov-dld-fcn.h, ov-fcn.cc, + ov-fcn.h, ov-file.cc, ov-file.h, ov-list.cc, ov-list.h, + ov-mapper.cc, ov-mapper.h, ov-range.cc, ov-range.h, ov-re-mat.cc, + ov-re-mat.h, ov-re-nd-array.cc, ov-re-nd-array.h, ov-scalar.cc, + ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, ov-struct.cc, + ov-struct.h, ov-typeinfo.cc, ov-typeinfo.h, ov-usr-fcn.cc, + ov-usr-fcn.h, ov-va-args.cc, ov.cc, ov.h, procstream.cc, + procstream.h, pt-arg-list.cc, pt-arg-list.h, pt-assign.cc, + pt-assign.h, pt-binop.cc, pt-binop.h, pt-bp.cc, pt-bp.h, + pt-cell.cc, pt-cell.h, pt-check.cc, pt-check.h, pt-cmd.cc, + pt-cmd.h, pt-colon.cc, pt-colon.h, pt-const.cc, pt-const.h, + pt-decl.cc, pt-decl.h, pt-except.cc, pt-except.h, pt-exp.cc, + pt-exp.h, pt-id.cc, pt-id.h, pt-idx.cc, pt-idx.h, pt-jump.cc, + pt-jump.h, pt-loop.cc, pt-loop.h, pt-mat.cc, pt-mat.h, pt-misc.cc, + pt-misc.h, pt-plot.cc, pt-plot.h, pt-pr-code.cc, pt-pr-code.h, + pt-select.cc, pt-select.h, pt-stmt.cc, pt-stmt.h, pt-unop.cc, + pt-unop.h, pt.cc, pt.h, symtab.cc, symtab.h, token.cc, token.h, + unwind-prot.cc, unwind-prot.h: + Use USE_PRAGMA_INTERFACE_IMPLEMENTATION instead of __GNUG__ to + decide whether to use the interface/implementation pragmas. + + 2002-09-18 John W. Eaton + + * load-save.cc: Undo previous change. + + * ov-struct.cc (octave_struct::subsasgn): Ensure that indexed + object is not shared before calling subsasgn. + + 2002-09-04 John W. Eaton + + * load-save.cc: Use % instead of # as comment character in ascii + data files. + + 2002-08-17 Mumit Khan + + * c-file-ptr-stream.h (c_file_ptr_buf::c_file_ptr_buf): Add Intel + C++ runtime support. + + * Cell.h, gripes.cc, ov-base-scalar.cc, ov-colon.cc, ov-fcn.cc, + ov-file.cc, ov-mapper.h, ov-va-args.cc, token.cc, xpow.cc, + OPERATORS/op-b-b.cc, OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc, + OPERATORS/op-cell.cc, OPERATORS/op-chm.cc, OPERATORS/op-cm-cm.cc, + OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, + OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-cs.cc, OPERATORS/op-cs-m.cc, + OPERATORS/op-cs-s.cc, OPERATORS/op-fil-b.cc, OPERATORS/op-fil-bm.cc, + OPERATORS/op-fil-cm.cc, OPERATORS/op-fil-cs.cc, + OPERATORS/op-fil-lis.cc, OPERATORS/op-fil-m.cc, + OPERATORS/op-fil-rec.cc, OPERATORS/op-fil-s.cc, + OPERATORS/op-fil-str.cc, OPERATORS/op-list.cc, OPERATORS/op-m-cm.cc, + OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc, OPERATORS/op-m-s.cc, + OPERATORS/op-range.cc, OPERATORS/op-s-cm.cc, OPERATORS/op-s-cs.cc, + OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc, OPERATORS/op-str-str.cc, + TEMPLATE-INST/Array-sym.cc, TEMPLATE-INST/Array-tc.cc, + TEMPLATE-INST/Map-tc.cc, TEMPLATE-INST/SLList-expr.cc, + TEMPLATE-INST/SLList-tc.cc, TEMPLATE-INST/SLList-tm.cc, + TEMPLATE-INST/SLStack-sym.cc: Make the implementation of + octave_value_list visibile for template instantiation. + + 2002-08-17 John W. Eaton + + * DLD-FUNCTIONS/dasrt.cc: Include not . + + * pager.h: Include lo-sstream.h and use macros instead of using + strstreambuf class directly. + + * load-save.cc (read_mat_ascii_data): Handle istrstream here too. + + * procstream.h (procstream::procstream): Also accept std::string arg. + (iprocstream::iprocstream, iprocstream::open): Likewise. + (oprocstream::oprocstream, oprocstream::open): Likewise. + (procstreambase::procstreambase, procstreambase::open): Likewise. + + * pt-plot.cc (gnuplot_terminal_type): Now std::string&, not char*. + (send_to_plot_stream): Likewise, for cmd arg. + + * pt-plot.h, pt-plot.cc: Include lo-sstream.h and use macros + instead of using strstream classes directly. + * oct-strstrm.h: Likewise. + * error.h, error.cc: Likewise. + * oct-stream.h, oct-stream.cc: Likewise. + * lex.l: Likewise. + * toplev.cc: Likewise. + * utils.cc: Likewise. + * pt.cc: Likewise. + * pr-output.cc: Likewise. + * ov-list.cc: Likewise. + * ov-cs-list.cc: Likewise. + * ov-cell.cc: Likewise. + * load-save.cc: Likewise. + * help.cc: Likewise. + * dirfns.cc: Likewise. + + 2002-08-15 Paul Kienzle + + * input.cc (octave_read): Do a better job of buffering. + + 2002-08-15 John W. Eaton + + * Makefile.in (DLD_DEF_FILES): New macro. + (DEF_5): Delete. + (DEF_4): Now only includes $(SOURCES). + (DEF_FILES): Append $(DLD_DEF_FILES) here. + (stamp-oct-links): Pass $(DLD_DEF_FILES) to mk-oct-links instead + of a list of source files. + * mk-oct-links: Work on .df files instead of .cc files. + + * parse.y (case_list): Allow it to be empty. + + * ov.cc, ov.h (octave_value::int_vector_value): New function. + + 2002-08-14 John W. Eaton + + * Makefile.in (OCTAVE_LIBS): Only include $(LIBKPATHSEA) if not + using shared libraries. + + * ov.cc (octave_value::octave_value (const octave_value_list&, bool)): + Don't forget to assign rep. + + 2002-08-12 John W. Eaton + + * lex.l: Warn for various Matlab-incompatibilities. + No longer accept <> for NOTEQ. + (gripe_matlab_incompatible): New function. + (maybe_gripe_matlab_incompatible_comment): Likewise. + (gripe_matlab_incompatible_continuation): Likewise. + (gripe_matlab_incompatible_operator): Likewise. + (warn_matlab_incompatible): New function. + (Vwarn_matlab_incompatible): New static variable. + (symbols_of_lex): Add a DEFVAR for it. + + + * file-io.cc (fopen_mode_to_ios_mode): Default value is std::ios::in. + Return std::ios::openmode instead of int. + + 2002-08-10 John W. Eaton + + * DLD-FUNCTIONS/dasrt.cc (DASRT_ABORT1, DASRT_ABORT2): + "##" pastes tokens, not strings. + + * DLD-FUNCTIONS/odessa.cc: Add std:: qualifiers as needed. + + 2002-08-09 John W. Eaton + + * variables.cc (Fisglobal): Rename from Fis_global. + * file-io.cc (Fisstream): Rename from Fis_stream. + * data.cc (Fisbool): Rename from Fis_bool. + (Fiscomplex): Rename from Fis_complex. + (Fislist): Rename from Fis_list. + (Fismatrix): Rename from Fis_matrix. + (Fisstruct): Rename from Fis_struct. + + * parse.y (switch_case): Make list of command optional. + + 2002-08-08 John W. Eaton + + * pr-output.cc (pr_max_internal): Use octave_is_NaN_or_NA instead + of xisnan. + (pr_min_internal): Likewise. + (output_max_field_width): Likewise. + (output_precision): Likewise. + (pr_any_float): Handle NA. + * mappers.cc (Fisna, F_is_nan_or_na): New functions. + * data.cc (symbols_of_data): New constant, NA. + + 2002-08-07 John W. Eaton + + * pt-binop.h (tree_binary_expression::is_binary_expression): + New function, return true. + (tree_boolean_expression::is_boolean_expression): New function, + return true. + * pt-exp.h (tree_expression::is_binary_expression): New function. + (tree_expression::is_boolean_expression): Likewise. + * parse.y (EXPR_OR_OR): Now lower precedence than EXPR_AND_AND. + (EXPR_OR): Now lower precedence than EXPR_AND. + (make_boolean_op): Maybe warn about change in precedence. + (make_binary_op): Likewise. + (Vwarn_precedence_change): New static variable. + (warn_precedence_change): New function. + (Vwarn_precedence_change): New DEFVAR. + + 2002-08-05 John W. Eaton + + * data.cc (ANY_ALL): Improve arg checks. + + 2002-08-04 John W. Eaton + + * ov.h (octave_value::assign_op): New enum values, op_pow_eq and + op_el_pow_eq. + * ov.cc (octave_value::assign_op_as_string): Handle them here. + (ocatave_value::op_eq_to_binary_op): And here. + * parse.y (POW_EQ, EPOW_EQ): New tokens. + (assign_expr): Handle them here too. + (make_assign_op): And here. + + * lex.l: Recognize {POW}= and {EPOW}=. + + 2002-08-02 John W. Eaton + + * ov-base-scalar.h (octave_base_scalar::all): New int arg. + (octave_base_scalar::any): Likewise. + * ov-range.h (octave_range::all): Likewise. + (octave_range::any): Likewise. + + * Makefile.in (doc-files): Use mv, not move-if-change here. + + * variables.cc (symbol_exist): New function. + (Fexist): Use it. Handle optional type arg. Make return codes + more compatible with Matlab. + + * data.cc (ANY_ALL): New macro. + (Fany, Fall): Replace guts with ANY_ALL. + + 2002-08-01 John W. Eaton + + * data.cc (Fall, Fany): Handle optional DIM argument. + + * ov.h (octave_value::any): New arg, dim. + (octave_value::all): Likewise. + * ov-base.h (octave_base_value::any): Likewise. + (octave_base_value::all): Likewise. + * ov-base-mat.h (octave_base_matrix::any): Likewise. + (octave_base_matrix::all): Likewise. + + * Makefile.in: Use $@-t instead of $@.t. + (doc-files): Use move-if-change when creating doc-files. + + * error.cc (warning): Don't print warning backtrace at top level. + + * ov-cell.cc (octave_cell::print_raw): Print empty dimensions too. + (octave_cell::print_name_tag): Don't print new line if cell is empty. + + * octave.cc (intern_argv): Don't install __argv__. + + * defun-int.h (UNDERSCORIFY): Delete. + (DEFCONST_INTERNAL): Don't install double underscore versions of + constants since they aren't really needed. + (DEFCONSTX_INTERNAL): Likewise. + + 2002-07-31 John W. Eaton + + * symtab.cc (symbol_table::clear (void)): Clear all records. + (symbol_table::clear (const std::string&)): Delete second arg. + Clear any symbol that matches, regardless of type. + + * symtab.h (symbol_table::variable_name_list): New function. + (symbol_table::global_variable_name_list): Likewise. + (symbol_table::user_function_name_list): Likewise. + + * symtab.h, symtab.cc (symbol_table::clear_variables): New function. + (symbol_table::clear_functions): Likewise. + (symbol_table::clear_globals): Likewise. + (symbol_table::clear_variable): New function. + (symbol_table::clear_function): Likewise. + (symbol_table::clear_global): Likewise. + (symbol_table::clear_variable_pattern): New function. + (symbol_table::clear_function_pattern): Likewise. + (symbol_table::clear_global_pattern): Likewise. + + * variables.cc (name_matches_any_pattern): Rename from + var_matches_any_pattern. + (is_local_variable): New static inline function. + (maybe_warn_exclusive): Likewise. + (do_clear_all): Likewise. + (do_clear_functions): Likewise. + (do_clear_globals): Likewise. + (do_clear_variables): Likewise. + (do_clear_function): Likewise. + (do_clear_global): Likewise. + (do_clear_variable): Likewise. + (do_clear_symbol): Likewise. + (do_clear_function_pattern): Likewise. + (do_clear_global_pattern): Likewise. + (do_clear_variable_pattern): Likewise. + (do_clear_symbol_pattern): Likewise. + (do_clear_functions): Likewise. + (do_clear_functions): Likewise. + (do_clear_globals): Likewise. + (do_clear_variables): Likewise. + (do_clear_symbols): Likewise. + (do_matlab_compatible_clear): Likewise. + (CLEAR_OPTION_ERROR): New macro. + (Fclear): Rewrite for Matlab compatibility and to cope with new + symbol table semantics. + + 2002-07-30 John W. Eaton + + * symtab.cc (symbol_table::clear): Simply clear everything. + (symbol_table::clear_functions, symbol_table::clear_globals, + symbol_table::clear_all): New functions. + + * symtab.h (symbol_record::symbol_def::next_elem): Delete. + (symbol_record::symbol_def::symbol_def): Delete intializer. + + * symtab.h, symtab.cc (symbol_record::push_def): Delete. + (symbol_record::remove_top_def): Delete. + (symbol_record::replace_all_defs): Delete. + (symbol_record::hides_fcn): Delete. + (symbol_record::hides_builtin): Delete. + + * symtab.h (symbol_table::~symbol_table): Call clear before + deleting the table. + + * variables.cc (initialize_symbol_tables): Create fbi_sym_tab too. + (Fexist): Look in fbi_sym_tab, not global_sym_tab. + + * parse.y (function_symtab): Rename from global_symtab. + Set curr_sym_tab to fbi_sym_tab, not global_sym_tab. + Change all uses of global_symtab to be function_symtab instead. + (frob_function): Rename and look for function name in fbi_sym_tab, + not global_sym_tab. + (parse_fcn_file): Clear function name from fbi_sym_tab, not + global_sym_tab. + + * load-save.cc (save_vars): Look for built-in vars in fbi_sym_tab. + * symtab.cc (symbol_record::link_to_builtin_variable): Likewise. + * variables.cc (is_builtin_variable): Likewise. + (bind_ans): Likewise. + (bind_builtin_constant): Likewise. + (bind_builtin_variable): Likewise. + (builtin_string_variable): Likewise. + (builtin_real_scalar_variable): Likewise. + (builtin_any_variable): Likewise. + (is_text_function_name): Likewise, for functions. + (force_link_to_function): Likewise. + (is_builtin_function_name): Likewise. + (is_mapper_function_name): Likewise. + (is_valid_function): Likewise. + (Fclear): Likewise. + (F__print_symtab_info__): Likewise. + * defun.cc (print_usage): Likewise. + (install_builtin_mapper): Likewise. + (install_builtin_function): Likewise. + (install_dld_function): Likewise. + (Falias): Likewise. + * dynamic-ld.cc (clear_function): Likewise. + * variables.cc (do_who): Likewise, for built-ins and functions. + (link_to_builtin_or_function): Likewise. + * help.cc (LIST_SYMBOLS): Likewise. + (make_name_list): Handle fbi_sym_tab too. + + * variables.cc (fbi_sym_tab): New symbol table. + * variables.h (fbi_sym_tab): Provide decl. + + 2002-07-29 John W. Eaton + + * symtab.h (symbol_record::alias): Delete unused arg force. + Change all callers. + + * variables.cc (link_to_global_variable): Give local variable + global value. + + * pt-id.cc (tree_identifier::link_to_global): Warn about global + variables that have been defined before being declared global. + for a global variable to be used before it is declared global. + * pt-decl.cc (tree_global_command::do_init): Handle possible error + from tree_identifier::link_to_global. + + 2002-07-25 John W. Eaton + + * ov.cc (silent_functions, Vsilent_functions): Move here. + (octave_value::print_with_name): Don't print anything if we are + evaluating a function and Vsilent_functions is true. + + * pt-stmt.cc: From here. + (symbols_of_pt_stmt): Delete. + (tree_statement_list::eval): Don't bother with Vsilent_functions here. + + 2002-07-24 John W. Eaton + + * Makefile.in (OPT_HANDLERS): New targets. + (doc-files): New target. + (gendoc.cc): Depend on doc-files, not $(DOC_FILES). + + * DLD-FUNCTIONS/daspk.cc, DLD-FUNCTIONS/dasrt.cc, + DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/fsolve.cc, + DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/odessa.cc + DLD-FUNCTIONS/quad.cc: Replace option handling code with include + directive. + + 2002-07-22 John W. Eaton + + * pt-loop.cc (tree_simple_for_command::eval): Once we know the RHS + is a matrix type check for real_type, not real_matrix. + + 2002-07-19 John W. Eaton + + * DLD-FUNCTIONS/quad.cc (quad): Cope with changes to Quad constructors. + + 2002-07-17 John W. Eaton + + * DLD-FUNCTIONS/daspk.cc (Fdaspk): Also return istate and error + message. Only generate error if user is not at least requesting + the istate output. + * DLD-FUNCTIONS/dasrt.cc (Fdasrt): Likewise. + * DLD-FUNCTIONS/dassl.cc (Fdassl): Likewise. + * DLD-FUNCTIONS/lsode.cc (Fodessa): Likewise. + + 2002-07-16 John W. Eaton + + * DLD-FUNCTIONS/dasrt.cc (Fdasrt): No need to find ng here. + (dasrt_user_j): New function. + (Fdasrt): Handle Jacobian function. + + * DLD-FUNCTIONS/dassl.cc (dassl_user_jacobian): New function. + (Fdassl): Handle Jacobian function. + + * DLD-FUNCTIONS/dasrt.cc: New file. + * Makefile.in (DLD_XSRC): Add it to the list. + + 2002-07-12 John W. Eaton + + * lex.l (@): Handle new token. + * parse.y (constant): Accept function handle syntax. + (make_constant): Create function handles here. + + 2002-07-11 John W. Eaton + + * defun.cc (check_version): Improve error message. + * error.cc (warning): Only print backtrace once per warning series. + Print backtrace before warning messages. + + 2002-07-10 John W. Eaton + + * lex.l (maybe_unput_comma): Also handle '{' as an indexing op. + + * DLD-FUNCTIONS/odessa.cc: New file. + * Makefile.in (DLD_XSRC): Add it to the list. + + 2002-07-05 John W. Eaton + + * pt-assign.cc (tree_multi_assignment::rvalue): Call + lhs->nargout_count, not lhs->length. + + * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): + Handle cs-list objects here. + (tree_argument_list::nargout_count): New function. + * pt-arg-list.h: Provide decl. + + * ov-cs-list.h, ov-cs-list.cc: New files. + * Makefile.in: Add them to the appropriate lists. + + * ov.cc: Include ov-cs-list.h. + New arg, is_cs_list for constructor taking octave_value_list arg. + (install_types): Register ov_cs_list. + * ov.h (octave_value::is_cs_list): New function. + * ov-base.h (octave_base_value::is_cs_list): Likewise. + * ov-cell.cc (octave_cell::subsref): Return cs-list for "{" indexing. + + 2002-07-04 John W. Eaton + + * pt-mat.cc (Vempty_list_elements_ok): Default value is now 1. + * octave.cc (maximum_braindamage): No longer need to set value here. + + * ov-usr-fcn.cc (Fva_arg, Fva_start, Fvr_val): Warn that these + functions are deprecated. + * lex.l (EL): Warn that `...' is deprecated. + * ov-usr-fcn.cc (octave_user_function::varargout_to_vr_val, + octave_user_function::has_varargout): New functions. + (Fvr_val): Ensure varargout is not defined. + (octave_user_function::do_multi_index_op): Copy values from + varargout here. + + 2002-07-03 John W. Eaton + + * ov-usr-fcn.h (octave_user_function::varargin_sr): New data member. + * ov-usr-fcn.cc (octave_user_function::octave_user_function): + Initialize it. + (bind_automatic_vars): Handle varargin. Change all callers. + + * octave.gperf: Handle varargin and varargout as keywords. + * lex.l (is_keyword): Likewise. + (IDENT): Move all actions into handle_identifier. + (handle_identifier): Now takes no args. + + * lex.l (EL): Return VARARGIN or VARARGOUT, not ELLIPSIS. + * parse.y (param_list): Use VARARGIN instead of ELLIPSIS. + (return_list): Use VARARGOUT instead of ELLIPSIS. + + * data.cc (make_diag const octave_value&, const octave_value&): + Allow first arg to be 1x0 or 0x1. + + 2002-07-02 John W. Eaton + + * defaults.cc (loadpath): Comment out previous change. + + * DLD-FUNCTIONS/fsolve.cc (Ffsolve): Return message too. Only + generate error if user is not at least requesting the info output. + + * DLD-FUNCTIONS/lsode.cc (Flsode): Fix typos in setting return value. + + 2002-07-01 John W. Eaton + + * oct-stream.cc (printf_value_cache::double_value): If the current + element is empty and there are no more elements in the value list, + set curr_state to conversion_error. + + * input.cc (initialize_command_input): Include (, ), {, and } as + word break characters. + + * variables.cc (looks_like_struct): Don't evaluate text if it is a + function. From Ben Sapp . + + * symtab.h (symbol_record::is_function): Also return true if + symbol is a text function or a mapper function. + + 2002-06-28 John W. Eaton + + * defaults.cc (loadpath): Warn if loadpath doesn't contain + leading, trailing, or doubled colon. + + * pt-decl.cc (tree_static_command::eval, tree_global_command::eval): + Call error for any non-zero value of error_state. + * pt-select.cc (tree_if_command::eval): Likewise. + * pt-loop.cc (tree_while_command::eval_error): Don't check error_state. + (tree_do_until_command::eval_error): Likewise. + (tree_simple_for_command::eval_error): Likewise. + (tree_complex_for_command::eval_error): Likewise. + * pt-assign.cc (tree_multi_assignment::eval_error): Likewise. + (tree_simple_assignment::eval_error): Likewise. + * pt-idx.cc (tree_index_expression::eval_error): Likewise. + * pt-colon.cc (tree_colon_expression::eval_error): Likewise. + (tree_colon_expression::rvalue): Delete rendundant error_state check. + + 2002-06-26 John W. Eaton + + * ov-mapper.cc (MAPPER_LOOP, MAPPER_LOOP_1, MAPPER_LOOP_2): New macros. + (octave_mapper::apply): Use them to inline the mapper loops. + + * pt-unop.cc (tree_prefix_expression::rvalue): Ensure that the + operand is defined for op_incr and op_decr. + (tree_postfix_expression::rvalue): Likewise. + From Ben Sapp . + + 2002-06-25 John W. Eaton + + * ov-mapper.cc (octave_mapper::apply): Exit loops on error. + + 2002-06-03 John W. Eaton + + * ov-struct.cc (octave_struct::print_raw): Print field names with + data types if Vstruct_levels_to_print is 0. + (octave_struct::print_name_tag): Don't emit newline if + Vstruct_levels_to_print is negative. + * ov.cc (struct_levels_to_print): Allow negative values too. + + 2002-05-24 John W. Eaton + + * DLD-FUNCTIONS/lsode.cc (Flsode): Also return istate and error + message. Only generate error if user is not at least requesting + the istate output. + + * load-save.cc (hdf5_import_multidim, hdf5_check_attr, + hdf5_callback_data, hdf5_read_next_data, read_hdf5_data, + add_hdf5_data): Use 0, not NULL in calls to HDF routines. + + * oct-procbuf.cc (octave_procbuf::open): Use NULL, not 0 as last + arg in call to execl. + + * debug.cc (get_user_function): Initialise dbg_fcn to 0, not NULL. + + 2002-05-23 John W. Eaton + + * DLD-FUNCTIONS/lsode.cc (LSODE_options::da_set_opt_mf, + LSODE_options::da_get_opt_mf): New typedefs. + (LSODE_OPTIONS::da_set_fcn, LSODE_OPTIONS::da_get_fcn): New fields. + (lsode_option_table): Fill them in. + (set_lsode_option (const Array&)): New function. + (print_lsode_option_list): Handle vector options. + (show_lsode_option_list): Likewise. + (Flsode_options): Likewise. + + * DLD-FUNCTIONS/lsode.cc (LSODE_options::s_set_opt_mf, + LSODE_options::s_get_opt_mf): New typedefs. + (LSODE_OPTIONS::s_set_fcn, LSODE_OPTIONS::s_get_fcn): New fields. + (lsode_option_table): Fill them in. + (set_lsode_option (const std::string&)): New function. + (print_lsode_option_list): Handle string options. + (show_lsode_option_list): Likewise. + (Flsode_options): Likewise. + + 2002-05-22 John W. Eaton + + * c-file-ptr-stream.h (c_file_ptr_buf::fclose): New function. + (c_file_ptr_buf::c_file_ptr_buf): Use it as default argument + instead of extern "C" fclose function. + (i_c_file_ptr_stream::i_c_file_ptr_stream): Likewise. + (o_c_file_ptr_stream::o_c_file_ptr_stream): Likewise. + * oct-stdstrm.h (octave_istdiostream::octave_istdiostream): Likewise. + (octave_istdiostream::create): Likewise. + * oct-stdstrm.h (octave_ostdiostream::octave_ostdiostream): Likewise. + (octave_ostdiostream::create): Likewise. + + * oct-prcstrm.cc (cxx_pclose): New static function. + (octave_iprocstream::octave_iprocstream): Pass it to + octave_istdiostream constructor instead of extern "C" pclose function. + (octave_oprocstream::octave_oprocstream): Pass it to + octave_ostdiostream constructor instead of extern "C" pclose function. + + * debug.cc (Fdbtype): Use C++ strings, not C strings. + + 2002-05-22 Mumit Khan + + * debug.cc: Include cstdlib instead of stdlib.h. Include cstring. + (dbtype): Use strchr instead of index. + * TEMPLATE-INST/Array-tc.cc (Array::resize_fill_value): + Fix template specialization syntax. + + 2002-05-17 Mumit Khan + + * c-file-ptr-stream.h (OCTAVE_STD_FILEBUF): New macro to handle + various forms of extensions to std::filebuf. + (c_file_ptr_buf::c_file_ptr_buf): Use. + * pt-idx.cc (tree_index_expression::tree_index_expression): Remove + default arguments are from definition. + * symtab.cc (SYMBOL_DEF::print_info): Add std::. + (symbol_record::print_info): Likewise. + (symbol_table::print_info): Likewise. + + 2002-05-16 John W. Eaton + + * oct-map.cc (Octave_map::assign): Resize RHS if it is shorter + than existing struct array. + + * ov-cell.cc (octave_cell::subsasgn): If an error has occurred, + skip final assignment step. + * ov-list.cc (octave_list::subsasgn): Likewise. + * oct-lvalue.cc (octave_lvalue::assign): Add parens to clarify intent. + (octave_lvalue::do_unary_op): Likewise. + + * parse.y (function_end): Also accept end of input as end of + function if input is coming from an eval string. + + * pr-output.cc (pr_any_float): Don't convert -0 to 0. + + 2002-05-15 John W. Eaton + + * input.cc (generate_completion): If it looks like we are + completing a struct, set completion append char to '\0'. + + * variables.cc (generate_struct_completions): Temporarily set + warnings off here. + + * error.cc (warning): Don't do anything if Vdebug_option == "off". + Only print backtrace if Vdebug_option == "backtrace". + (handle_message): Now returns a string containing the text of the + formatted message. Change all callers. + (Fwarning): Now a text-style function. Handle Matlab-compatible + warning options. + (Flasterr, Flastwarn, set_warning_option): New functions. + (Vlast_error_message, Vlast_warning_message, Vwarning_frequency, + Vwarning_option): New static variables. + (vwarning): Set Vlast_warning_message here too. + (verror): Set Vlast_error_message here too. + + 2002-05-14 John W. Eaton + + * ov.h (octave_value::get_count): Now const. + + * ov.h, ov.cc (octave_value::do_non_const_unary_op, + octave_value::assign): Idx is now a list of octave_value_list + objects. + + * ov-base.cc, ov-base.h (octave_base_value::do_struct_elt_index_op, + octave_base_value::struct_elt_ref): Delete. + * ov-struct.cc, ov-struct.h (octave_sruct::do_struct_elt_index_op, + octave_struct::struct_elt_ref): Delete. + * ov.cc, ov.h (octave_value::do_struct_elt_index_op, + octave_value::struct_elt_ref, octave_value::assign_struct_elt, + octave_value::convert_and_assign, octave_value::try_assignment, + octave_value::try_assignment_with_conversion, + octave_value::simple_assign): Delete. + + * parse.y (make_index_expression): Type is now a single + character. Change all callers. If expr is already an index + expression, append index to it. + (make_indirect_ref): Likewise. + + * pt-pr-code.cc (octave_print_internal (std::ostream&, const + Cell&, bool, int)): Now just a dummy function, panic if called. + + * pt-idx.cc (tree_index_expression::make_arg_struct): New function. + (tree_index_expression::type): Delete enum, rename from itype, now + a string. + (tree_index_expression::arg_nm): Now a list of string_vector objects. + (tree_index_expression::idx): Now a list of tree_argument_list* + objects. + (tree_index_expression::is_index_expression): Always return true. + (tree_index_expression::apend, make_value_list, make_subs_cell): + New functions. + + * pt-pr-code.cc (visit_index_expression): Handle new definition of + tree_index_expression object. + * pt-check.cc (visit_index_expression): Likewise. + * pt-bp.cc (visit_index_expression): Likewise. + + * ov-usr-fcn.h (octave_user_function::restore_args_passed): + Clear args_passed even if nothing was saved. + + * ov-base.cc (octave_base_value::subsasgn, + octave_base_value::map_keys, octave_base_value::print_info): + New functions. + + * ov.h, ov.cc (octave_value::map_keys, octave_value::print_info, + octave_value::subsref, octave_value::subsasgn, + octave_value::numeric_assign, octave_value::next_subsref): + New functions. + (octave_value::empty_conv): New static function. + (octave_value (octave_value *, int)): New arg, count. + + * ov-base-mat.cc (octave_base_matrix::subsref, + octave_base_matrix::subsasgn): New functions. + * ov-base-mat.h: Provide decls. + + * ov-builtin.cc (octave_builtin::subsref): New function. + * ov-builtin.h: Provide decl. + + * ov-range.cc (octave_range::subsref): New function. + * ov-range.h: Provide decl. + + * ov-cell.cc (octave_cell::subsref, octave_cell::subsasgn, + octave_cell::list_value, octave_cell::print, + octave_cell::print_raw, octave_cell::print_name_tag): New functions. + * ov-cell.h: Provide decls. + + * ov-struct.cc (octave_struct::dotref, octave_struct::subsref, + octave_struct::subsasgn, gripe_invalid_index, + gripe_invalid_index_for_assignment, grip_invalid_index_type, + gripe_failed_assignment): New functions. + (octave_struct::numeric_conv): New static function. + * ov-struct.h: Provide decls. + (octave_struct::is_constant): Return true. + (octave_struct::map_keys): New function. + + * ov-list.cc (octave_list::subsref, octave_list::subsasgn): + New functions. + * ov-list.h: Provide decls. + + * ov-usr-fcn.cc (octave_user_function::subsref, + octave_user_function::print_symtab_info): New functions. + * ov-usr-fcn.h: Provide decl. + + * ov-mapper.cc (octave_mapper::subsref): New function. + * ov-mapper.h: Provide decl. + + * ov-base.cc (octave_base_value::subsref, + octave_base_value::subsasgn): New functions. + * ov-base.h: Provide decls. + + * ov-base.cc (octave_base_value::do_index_op): New arg, resize_ok. + * ov-base-mat.cc (octave_base_matrix::do_index_op): Likewise. + * ov-base-nd-array.cc (octave_base_nd_array::do_index_op): Ditto. + * ov-bool-mat.cc (octave_bool::do_index_op): Ditto. + * ov-str-mat.cc (octave_char_matrix_str::do_index_op): Ditto. + * ov-range.cc (octave_range::do_index_op): Ditto. + * ov-list.cc (octave_list::do_index_op): Ditto. + * ov.cc (octave_value::do_index_op): Ditto. + + * ov-base-mat.cc (octave_base_matrix::print_info): New function. + + * ov-base-mat.h (octave_base_matrix::empty_clone): New function. + * ov-base-nd-array.h (octave_base_nd_array::empty_clone): Ditto. + * ov-base.h (octave_base_value::empty_clone): Ditto. + * ov-bool-mat.h (octave_bool::empty_clone): Ditto. + * ov-ch-mat.h (octave_char_matrix::empty_clone): Likewise. + * ov-colon.h (octave_magic_colon::empty_clone): Likewise. + * ov-complex.h (octave_complex::empty_clone): Likewise. + * ov-cx-mat.h (octave_complex_matrix::empty_clone): Likewise. + * ov-fcn.cc (octave_function::empty_clone): Likewise. + * ov-file.h (octave_file::empty_clone): Likewise. + * ov-range.h (octave_range::empty_clone): Likewise. + * ov-list.h (octave_list::empty_clone): Likewise. + * ov-re-mat.h (octave_matrix::empty_clone): Likewise. + * ov-re-nd-array.h (octave_double_nd_array::empty_clone): Likewise. + * ov-str-mat.h (octave_char_matrix_str::empty_clone): Likewise. + * ov-struct.h (octave_struct::empty_clone): Likewise. + * ov-va_args.h (octave_all_va_args::empty_clone): Likewise. + * ov.h (octave_value::empty_clone): Likewise. + + * ov-base-mat.h (octave_base_matrix::clone): Now const. + * ov-base-nd-array.h (octave_base_nd_array::clone): Likewise. + * ov-base.h (octave_base_value::clone): Likewise. + * ov-bool-mat.h (octave_bool::clone): Likewise. + * ov-ch-mat.h (octave_char_matrix::clone): Likewise. + * ov-colon.h (octave_magic_colon::clone): Likewise. + * ov-complex.h (octave_complex::clone): Likewise. + * ov-cx-mat.h (octave_complex_matrix::clone): Likewise. + * ov-fcn.h (octave_function::clone): Likewise. + * ov-file.h (octave_file::clone): Likewise. + * ov-range.h (octave_range::clone): Likewise. + * ov-list.h (octave_list::clone): Likewise. + * ov-re-mat.h (octave_matrix::clone): Likewise. + * ov-re-nd-array.h (octave_double_nd_array::clone): Likewise. + * ov-str-mat.h (octave_char_matrix_str::clone): Likewise. + * ov-struct.h (octave_struct::clone): Likewise. + * ov-va_args.h (octave_all_va_args::clone): Likewise. + * ov.h (octave_value::clone): Likewise. + + * oct-lvalue.cc (octave_lvalue::assign, octave_lvalue::set_index, + octave_lvalue::do_unary_op): Idx is now a list of indices. Simplify. + * oct-lvalue.h (octave_lvalue::value): Simplify. + (octave_lvalue::struct_elt_names): Delete data member. + (octave_lvalue::type): Now string + Update decls. + + * pt-exp.h (tree_expression::is_indirect_ref): + Delete virtual function. + + * pt-plot.cc (subplot::extract_plot_data): Use subsref, instead of + do_index_op. + + * pt-stmt.cc (tree_statement::eval): Don't try to avoid binding + ans for structure references. + + * symtab.cc (symbol_record::symbol_def::print_info): Rename from + symbol_record::symbol_def::dump_symbol_info. + (symbol_record::print_info): Rename from + symbol_record::dump_symbol_info. Now const.. + (symbol_record::print_symbol_info_line): Now const. + (symbol_table::print_info): Rename from print_stats. Accept + ostream arg. Now const. Print more info. + * symtab.h: Update decls. + + * toplev.cc (octave_config_info): Indexing a map now returns a + list, but we only want to return the first element. + + * variables.cc (generate_struct_completions, looks_like_struct): + Simplify using eval_string. + (F__print_symtab_info__): Rename from F__dump_symtab_info__. + Handle "top-level" and individual function names in addition to + "global". + (F__print_symbol_info__): Rename from F___dump_symbol_info__. + + * octave.cc (intern_argv): Built-in variable argv is now a cell array. + + * ov-complex.cc (valid_scalar_indices): Delete. + * ov-scalar.cc (valid_scalar_indices): Delete. + + * oct-obj.cc (octave_value_list::valid_scalar_indices): New function. + (octave_value_list::index): New arg, resize_ok. + * oct-obj.h: Provide decls. + + * oct-map.cc (Octave_map::keys): Rename from make_name_list. + Change all uses. + (Octave_map::assign, Octave_map::index): New functions. + * oct-map.h: Provide decls. + + * data.cc (Fstruct_contains): Use map_value instead of + do_struct_elt_index_op. + + * Cell.h (Cell (const Array2&, int, int)): + New constructor. + (Cell::resize_fill_value): New static function. + + * input.cc (initialize_command_input): Set basic and completer + word break characters. + + 2002-05-07 John W. Eaton + + * ov.h (octave_value::subsref): New function. + * ov-base.cc (octave_base_value::subsref): Likewise. + + * ov-struct.cc (octave_struct::print_raw): Print scalar struct + arrays more compactly. + + * DLD-FUNCTIONS/time.cc (extract_tm): Handle new struct array def. + + * oct-map.cc (Octave_map::array_len): New data member. + (Octave_map::operator[], Octave_map::contsnts): Return + octave_value_list, not Octave_value. Change callers as necessary. + (Octave_map::assign): New function. + (Octave_map::array_length): New fucntion. + * oct-obj.cc (octave_value_list::assign): New function. + + 2002-05-06 John W. Eaton + + * TEMPLATE-INST/Map-oct-obj.cc: New file. + * Makefile.in (TI_XSRC): Add it to the list. + + * oct-map.h (Octave_map): Make CHMap a data + member instead of deriving from CHMap, in + preparation for structure arrays. + + * pt-indir.h, pt-indir.cc: Delete. + + * pt-all.h: Don't include pt-indir.h. + + * Makefile.in (PT_SRC): Delete pt-indir.cc from the list. + (PT_INCLUDES): Delete pt-indir.h from the list. + + * pt-walk.h (tree_walker::visit_indirect_ref): Delete. + * pt-pr-code.h, pt-pr-code.cc (tree_print_code::visit_indirect_ref): + Likewise. + * pt-check.h, pt-check.cc (tree_checker::visit_indirect_ref): Likewise. + * pt-bp.h, pt-bp.cc (tree_breakpoint::visit_indirect_ref): Likewise. + + * pt-walk.h: Delete forward decl for tree_indirect_ref. + * variables.h: Likewise. + + * parse.y (make_indirect_ref): Return tree_index_expression, not + tree_indirect_ref. + + * pt-idx.h (tree_index_expression::struct_elt_name): New function. + + * pt-idx.cc (tree_index_expression::lvalue): Handle dot case too. + (tree_index_expression::name): Likewise. + (tree_index_expression rvalue (int)): Likewise. + (tree_index_expression::eval_error): Likewise. + * pt-pr-code.cc (visit_index_expression): Likewise. + * pt-bp.cc (tree_breakpoint::visit_index_expression): Likewise. + + * pt-idx.h (tree_index_expression::dot): New type enum element. + (tree_index_expression::expr_type): New function. + (tree_index_expression::tree_index_expression (tree_expression*, + const std::string&, int, int)): New constructor. + (tree_index_expression::is_index_expression): Return value is now + conditional on itype. + (tree_index_expression::is_indirect_ref): New function. + (tree_index_expression::lvalue_ok): Also return true if itype is dot. + + 2002-05-03 John W. Eaton + + * parse.y (ABORT_PARSE): Maybe restore symbol table context too. + + * pt-idx.h (tree_index_expression::type): New enum. + (tree_index_expression::etype): New data member. + * pt-idx.h (tree_index_expression::tree_index_expression): + New arg, t, to set type of index. + * parse.y (make_index_expression): Likewise. + Change all callers. + + * ov-base.cc (cell_conv): New conversion function. + (install_base_type_conversions): Install it. + Install conversion for indexed assignment of octave_cells to + undefined values. + + * TEMPLATE-INST/Array-tc.cc: Instantiate assign functions too. + (Array::resize_fill_value (void)): + Provide specialization for octave_value. + + * ov-cell.cc (octave_cell::assign (const octave_value_list&, + const octave_value&)): New function. + * Cell.h (Cell::Cell (const octave_value&)): New function. + + * OPERATORS/op-cell.cc (install_list_ops): Use DEFASSIGNANYOP_FN + and INSTALL_ASSIGNANYOP, not DEFASSIGNOP_FN and INSTALL_ASSIGNOP. + + 2002-05-03 Cai Jianming + + * OPERATORS/op-cell.cc: New file. + * Makefile.in (OP_XSRC): Include it in the list. + + * parse.y (cell): Return a cell type instead of Matrix type. + + * ov.cc (install_types): Install octave_cell type. + + * pr-output.cc (octave_print_internal): Handle Cells. + * pr-output.h (octave_print_internal): Provide decl. + + * ov-cell.h (octave_cell): Derive from octave_base_matrix. + * ov-cell.cc (do_index_op, assign, print, print_raw, + print_name_tag): Delete. + + * Cell.cc (allocator, index): Delete. + * Cell.h (Cell): Derive from Array2. + Most functions removed since we can use those from Array2 instead. + + 2002-05-02 Cai Jianming + + * ov-base-mat.cc (octave_base_matrix::assign): + New function. + * ov-base-mat.h (octave_base_matrix::assign): Provide decl. + * ov-bool-mat.cc (octave_bool_matrix::assign): Delete. + * ov-bool-mat.h (octave_bool_matrix:assign): Delete decl + * ov-cx-mat.cc (octave_complex_matrix::assign (const + octave_value_list& idx, const ComplexMatrix&)): Delete. + * ov-cx-mat.h (octave_complex_matrix:assign (const + octave_value_list& idx, const ComplexMatrix&)): Replace decl with + function. + * ov-re-mat.cc (octave_bool_matrix::assign): Delete. + * ov-re-mat.h (octave_bool_matrix:assign): Delete decl. + + 2002-05-02 Cai Jianming + + * OPERATORS/op-bm-b.cc: New file.x + * Makefile.in (OP_XSRC): Add it to the list. + + 2002-04-30 John W. Eaton + + * octave.cc (print_version_and_exit): Use + OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY, not + OCTAVE_NAME_AND_VERSION. + + * octave.cc (verbose_usage): + Use OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY, not + OCTAVE_NAME_VERSION_AND_COPYRIGHT. + + * version.h (OCTAVE_COPYING_STATEMENT, OCTAVE_WARRANTY_STATEMENT, + OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY, + X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS, + OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS, + OCTAVE_BUGS_STATEMENT): New macros. + (OCTAVE_STARTUP_MESSAGE): Define in terms of + X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS + to include bugs address and amplified warranty information. + + * DLD-FUNCTIONS/lsode.cc (Flsode): Delete unused variable nsteps. + + 2002-04-29 John W. Eaton + + * help.cc (additional_help_message): Use www.octave.org, not + www.che.wisc.edu/octave/octave.html. + * octave.cc (verbose_usage): Likewise. + + 2002-04-27 John W. Eaton + + * DLD-FUNCTIONS/daspk.cc: New file. + * Makefile.in (DLD_XSRC): Add it to the list. + + 2002-04-25 Paul Kienzle + + * DLD-FUNCTIONS/kron.cc: New file. + * Makefile.in (DLD_SRC): Add it to the list. + + 2002-04-22 John W. Eaton + + * parse.y (save_symtab): New non-terminal. Save current symbol + table context here. + (function_beg): Use it. + (symtab_context): New file-scope variable. + (recover_from_parsing_function): Restore symbol table context here. + + 2002-04-17 John W. Eaton + + * load-save.cc (get_lines_and_columns): Handle CRLF as line + separator in addition to LF. + + 2002-04-11 John W. Eaton + + * load-save.cc (hdf5_ofstream::hdf5_ofstream): + Explicitly List std::ostream(0) in constructor. + (hdf5_ifstream::hdf5_ifstream): + Explicitly List std::istream(0) in constructor. + (hdf5_fstreambase::hdf5_fstreambase): Use std::ios::setstate, not set. + (hdf5_fstreambase::close): Likewise. + (hdf5_fstreambase::open): Likewise. + + 2002-04-10 Ben Sapp + + * pt-stmt.cc (delete_breakpoint): List breakpoints if line < 0. + * debug.cc (get_user_function): Check symbol by name first. + (Fdbstop): Rename from Fdbg_set. + (Fdbclear): Rename from Fdbg_delete. + (Fdbstatus): Rename from Fdbg_list. + (Fdbg_where): Rename from Fdbwhere. + (do_dbtype, Fdbtype): New functions. + + 2002-04-10 Peter Van Wieren + + * load-save.cc (save_mat5_binary_element): Save elements of 2d + character matrices in proper order. + + 2002-04-09 Paul Kienzle + + * utils.cc (do_string_escapes): Handle \0 too. + (undo_string_escape): Likewise. + + 2002-04-04 John W. Eaton + + * toplev.cc (octave_config_info): Define struct member EXEEXT, not EXE. + * Makefile.in (install-bin): Use $(EXEEXT), not $(EXE). + * oct-conf.h.in (OCTAVE_CONF_EXEEXT): Define and substitute + OCTAVE_CONF_EXEEXT, not OCTAVE_CONF_EXE. + + 2002-04-03 Steven G. Johnson + + * DLD-FUNCTIONS/balance.cc: Use F77_FUNC instead of F77_FCN. + * DLD-FUNCTIONS/qz.cc: Likewise. + * DLD-FUNCTIONS/rand.cc: Likewise. + * octave.cc: Likewise. + * toplev.cc (Foctave_config_info): Delete use of FORTRAN_MAIN_FLAG. + * oct-conf.h.in: Delete use of OCTAVE_CONF_FORTRAN_MAIN_FLAG. + * syscalls.cc (mk_stat_map): + Use HAVE_STRUCT_STAT_ST_RDEV instead of HAVE_ST_RDEV. + Use HAVE_STRUCT_STAT_ST_BLKSIZE instead of HAVE_ST_BLKSIZE. + Use HAVE_STRUCT_STAT_ST_BLOCKS instead of HAVE_ST_BLOCKS. + + 2002-04-02 John W. Eaton + + * lex.l, lex.h (parser_end_of_input): New global variable. + (reset_parser): Reset it here. + * parse.y (input): Set it to TRUE on EOF. + (parse_and_executed): Save and restore it, check it to correctly + break out of parse-execute loop. + (parse_fcn_file): Likewise. + (eval_string): Likewise. + * toplev.cc (main_loop): Likewise. + + * parse.y (input): Call YYACCEPT for END_OF_INPUT. + Return no-op command for bare newline. + (parse_and_execute): Handle change in yyparse return value semantics. + + * toplev.cc (main_loop): Likewise. + + 2002-03-25 John W. Eaton + + * parse.y (parse_fcn_file): Call error if there is no input file. + (parse_and_execute (FILE *): Protect get_input_from_eval_string. + Set get_input_from_eval_string to false before calling yyparse. + * lex.l (reset_parser): Also skip yyrestart (stdin) if + reading_script_file is true. + + 2002-03-07 John W. Eaton + + * pt-loop.cc (evaluating_looping_command): New global. + (tree_while_command::eval): Protect evaluating_looping_command. + Set it to true while evaluating loop. + (tree_do_until_command::eval): Ditto. + (tree_simple_for_command::eval): Ditto. + (tree_complex_for_command::eval): Ditto. + * pt-loop.h (evaluating_looping_command): Provide decl. + * parse.y (parse_fcn_file): Protect get_input_from_eval_string. + Set get_input_from_eval_string to false before calling yyparse. + (make_break_command): Also check evaluating_looping_command. + (make_continue_command): Also check evaluating_looping_command. + (eval_string (const std::string&, bool, int&, int)): Loop over + yyparse to handle multi-line strings. + Move call to unwind_protect::run_frame to end of function. + Don't reset parser before calling yyparse. + Correctly handle return, break, and continue. + + * input.cc (input_from_eval_string_pending): New global variable. + (get_usr_input): Use it. + * input.h (input_from_eval_string_pending): Provide decl. + + 2002-03-06 John W. Eaton + + * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): + Don't unwind_protect num_named_args (it doesn't change on + recursive calls). + Do re-initialize curr_va_arg_number to num_named_args after + unwind_protecting. + + * ov-usr-fcn.h (octave_user_function::clear_args_passed): Delete. + (octave_user_function::saved_args): New data member. + (octave_user_function::save_args_passed): New function. + (octave_user_function::restore_args_passed): Ditto. + * ov-usr-fcn.cc (clear_args_passed): Delete. + (restore_args_passed): New function. + (octave_user_function::do_multi_index_op): Correctly save and + restore args passed for recursive calls. + + * TEMPLATE-INST/SLStack-ovl.cc: New file. + * Makefile.in: Add it to the list. + + 2002-02-22 John W. Eaton + + * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): + Handle define_all_return_values after function is evaluated. + From Paul Kienzle . + + * ov-scalar.cc (convert_to_str): Use octave_value (std::string) + constructor instead of octave_value (char *) constructor so that + setstr (0) will work. + + * pager.cc (octave_pager_buf::sync): Set pointer to beginning + of buffer after calling flush_currnt_contents_to_diary. + (octave_diary_buf::sync): Call eback only once. + + 2002-01-03 John W. Eaton + + * lex.l (.): Remove test for EOF since it is already handled + separately. + + 2001-12-05 John W. Eaton + + * load-save.cc (save_mat5_binary_element): + Extract dimensions directly from tc. + Handle ranges the same as real matrices. + + 2001-11-16 John W. Eaton + + * data.cc (DATA_REDUCTION): If no DIM arg, pass -1 to FCN. + + 2001-11-09 John W. Eaton + + * oct-conf.h.in (FFTW_LIBS, LD_CXX, LIBOCT_PATHSEARCH, + LIBOCT_READLINE, MKOCTFILE_LFLAGS): Substitute. + * toplev.cc (octave_config_info): Add them to the map. + + 2001-11-08 John W. Eaton + + * DLD-FUNCTIONS/lsode.cc (Flsode): Don't bother to give OUTPUT + matrix a size before calling integration function. + + 2001-11-06 John W. Eaton + + Makefile.in (OCTAVE_LIBS): Add $(LIBOCT_READLINE) and + $(LIBOCT_PATHSEARCH) to the list. + + 2001-10-08 John W. Eaton + + * DLD-FUNCTIONS/dassl.cc (dassl_user_function): Allow user + supplied RES function to return IDID as second value. + + 2001-07-23 John W. Eaton + + * parse.y: Clear help_buf after documenting function. + + 2001-06-29 Mumit Khan + + * defun-int.h (DEFINE_FUN_INSTALLER_FUN{2,3}): New macros. + (DEFINE_FUN_INSTALLER_FUN): Use. + * dynamic-ld.cc ({STRINGIFY, STRINGIFY1}): New macros. + (octave_dynamic_loader::mangle_name): Support dynamic linking + for GNU v3 and Sun C++ ABI. + + 2001-06-26 Mumit Khan + + * c-file-ptr-stream.h (c_file_ptr_buf::c_file_ptr_buf): Add GCC3 + libstdc++-v3 support. + * load-save.cc (save_mat5_binary_element): Cast arguments to the + correct type. + (save_ascii_data): Eliminate compiler warning. + * toplev.cc (system): Prefix std::. + + 2001-05-31 John W. Eaton + + * ov-cx-mat.cc: Deleve unnecessary instantiation of assign function. + * ov-re-mat.cc: Likewise. + * ov-re-nd-array.cc: Likewise. + * ov-str-mat.cc: Likewise. + * ov-bool-mat.cc: Likewise. + + * load-save.cc (save_ascii_data): When saving string data, get raw + string value for matrix row since there may be embedded nuls. + + * pt-mat.cc (Vstring_fill_char): No longer static. + * pt-mat.h: Provide declaration. + + 2001-05-17 John W. Eaton + + * octave.cc (initialize_pathsearch): Save initial value of the + TEXMFDBS environment variable here. + * toplev.cc (restore_texmfdbs_envvar): New function. + (Fsystem): Set TEXMFDBS back to original value before running + subprocesses. + + 2001-05-02 Mumit Khan + + * Makefile.in (octave): Add $(FFTW_LIBS). + + 2001-04-27 John W. Eaton + + * DLD-FUNCTIONS/sort.cc (mx_sort): Check for NaNs in comparisons. + + 2001-04-26 John W. Eaton + + * Makefile.in (OCTAVE_LIBS): Delete $(LIBREADLINE) from the list. + (octave): Delete TERMLIBS from link command. + * oct-conf.h.in: Delete references to LIBREADLINE, TERMLIBS. + * toplev.cc (octave_config_info): Delete entries for LIBREADLINE, + TERMLIBS. + + 2001-04-25 John W. Eaton + + * Makefile.in (install-lib): Don't use mk-libdir-link. + (install-inc): Don't use mk-includedir-link. + + 2001-04-19 John W. Eaton + + * parse.y (fold (tree_binary_expression *)): + Set discard_error_messages here instead of buffer_error_messages. + Don't add clear_global_error_variable to the unwind_protect stack. + (fold (tree_unary_expression *)): Likewise. + (finish_colon_expression): Likewise. + (finish_matrix): Likewise. + + * error.cc (panic): Set discard_error_messages to false here. + (verror): Return immediately if discard_error_messages is true. + + * error.cc (discard_error_messages): New global variable. + * error.h: Provide declaration. + + 2001-04-18 John W. Eaton + + * lex.l: If unexpected character is EOF, report EOF error instead + of invalid character error. + + 2001-04-18 Mumit Khan + + * load-save.cc (read_mat5_binary_element): Cast arguments to the + correct type when adding stream positions. + * DLD-FUNCTIONS/det.cc (det): Explicity create a Complex value to + work around a Sun C++ type conversion bug. + + 2001-04-17 John W. Eaton + + * symtab.cc (define_builtin_const): Don't call replace_all_defs + here. + + * error.cc (error_message_buffer): Now static. + * error.h (error_message_buffer): Delete extern declaration. + + 2001-03-29 John W. Eaton + + * DLD-FUNCTIONS/besselj.cc (besselh): Use K arg. + From: Thomas Stuart . + + * oct-stream.cc (get_size): Don't allow [Inf, N] as a size + specification for the read and scanf functions. + (get_size): SIZE is now an Array instead of a Matrix object. + (read): Likewise. Change all callers. + (scanf): Likewise. Change all callers. + + 2001-03-26 John W. Eaton + + * DLD-FUNCTIONS/det.cc (Fdet): Only return rcond if nargout > 1. + * DLD-FUNCTIONS/inv.cc (Finv): Only return rcond if nargout > 1. + + 2001-03-26 Paul Kienzle + + * DLD-FUNCTIONS/det.cc (Fdet): Suppress warning, but return rcond. + * DLD_FUNCTIONS/inv.cc (Finv): Return rcond if requested. + + 2001-02-28 John W. Eaton + + * pt.h (tree::break_statement): New static member. + (tree::break_function): Make const. + * pt.cc (tree::break_statement): Initialize here. + (tree::break_function): Make const. + * pb-bp.h (break_statement): Delete global varaible declaration. + * pt-bp.cc (break_statement): Delete global variable definition. + + * pt-bp.h (tree_breakpoint::bp_list): Rename from lst. + + * pt.h: Don't inlcude ov-usr-fcn.h. + Provide forward declaration of octave_user_function class. + + 2001-02-28 Ben Sapp + + * debug.cc (get_user_function): Simplify by using curr_function. + (Fdbg_where): New function. + (Fdbg_list): Now DLD_TEXT instead of DLD_FCN. + (Fdbg_set): Likewise. + (Fdbg_delete): Likewise. + + * pt-bp.h (break_statement): New global variable. + (MAYBE_DO_BREAKPOINT): Check for dbg_next and dbg_step. + Print line, column, and current statement. + * pt-bp.cc (break_statement): New global variable + (tree_breakpoint::visit_do_until_command): Return immediately if + we've already found the line. + (tree_breakpoint::visit_colon_expression): Set breakpoint info here. + (tree_breakpoint::visit_binary_expression): Recurse here when + checking for breakpoints. + + * debug.cc: Move here from DLD-FUNCTIONS/debug.cc. + * Makefile.in (DIST_SRC): Add it to the list. + (DLD_XSRC): Delete it from the list. + + * pt.h (tree::last_line, tree::break_function): New static members. + * pt.cc(tree::last_line, tree::break_function): Initialize them. + + * pt-cell.h (tree_cell::tree_cell): Accept line and column info. + * pt-mat.h (tree_matrix::tree_matrix): Likewise. + + * ov-usr-fcn.h (octave_user_function::sym_tab): Delete. + + * input.cc (get_user_input): Handle dbg_next. + Set tree:break_function and tree::last_line when doing dbg_step. + + 2001-02-28 John W. Eaton + + * lex.l (handle_string): Save line and column information in token. + (is_keyword): Save line and column information for plot style and + axes tokens. + + * toplev.cc (main_loop): Set retval to non-zero value if error + occurs when not interactive. + + 2001-02-26 John W. Eaton + + * parse.y (gobble_leading_white_space): Handle CRLF here too. + * lex.l (check_for_garbage_after_fcn_def): Likewise. + + * lex.l: Add numeric value of character to error message for + unrecognized characters. + + 2001-02-22 John W. Eaton + + * DLD-FUNCTIONS/minmax.cc (EMPTY_RETURN_CHECK): For empty matrix + args, make Octave's min and max behave like Matlab. + + 2001-02-18 John W. Eaton + + * OPERATORS/op-s-s.cc (el_or, el_and): Return bool value. + + 2001-02-14 John W. Eaton + + * pt-binop.cc (tree_boolean_expression::rvalue): + Don't cast result to double. + + * OPERATORS/op-b-b.cc: Allow & and | operators to return bool values. + + 2001-02-09 John W. Eaton + + * data.cc (DATA_REDUCTION): Undo previous change. + + 2001-02-13 Matthew W. Roberts + + * load-save.cc (Fload): Accept -4 as an alias for -v4 and -mat4-binary. + (Fsave): Likewise. + + 2001-02-13 John W. Eaton + + * lex.l (lexical_feedbac::init): + Initialize looking_at_matrix_or_assign_lhs too. + + 2001-02-09 John W. Eaton + + * data.cc (DATA_REDUCTION): Allow FCN(x,0) to be equivalent to FCN(x). + + 2001-02-06 Mumit Khan + + * oct-stream.cc (octave_scan): Partially implement and specialize + for char*. Delete the old template instantiations. + (BEGIN_S_CONVERSION): Use strings instead of ostrstreambuf. + (octave_base_stream::do_scanf): Pass correct parameter to + do_scan_conv. + + 2001-02-05 Mumit Khan + + * pr-output.cc (set_format): Add std:: namespace qualifier as + needed. + + * oct-stream.cc (octave_scan): Implement, and specialize for + char*. Delete the old template instantiations. + (BEGIN_S_CONVERSION): Use strings instead of ostrstreambuf. + (octave_base_stream::do_scanf): Pass correct parameter to + do_scan_conv. + + * Makefile.in (TEMPLATE_AR, TEMPLATE_ARFLAGS): Use to create + archive libraries containing templates. + + * c-file-ptr-stream.h: Include . Use instead of + + (c_file_ptr_buf::int_type): Compat typedef for non-ISO libstdc++. + (c_file_ptr_buf::{overflow, underflow, uflow, pbackfail): Use. + (c_file_ptr_buf::c_file_ptr_buf): Handle various compilers. + (c_file_ptr_buf::file_number): New member function. + (c_file_ptr_buf::fd): New private data. + (i_c_file_ptr_stream::i_c_file_ptr_stream): Initialize stream + correctly. + (o_c_file_ptr_stream::o_c_file_ptr_stream): Likewise. + * c-file-ptr-stream.cc + (c_file_ptr_buf::{overflow, underflow, uflow, pbackfail): Add + ISO-compliant EOF handling. + * oct-stream.cc (octave_base_stream::file_number): Use + c_file_ptr_buf::file_number to get underlying file descriptor. + + * comment-list.cc: Add missing class qualifier. + + * file-io.cc, load-save.cc, mappers.cc, oct-fstrm.cc, oct-fstrm.h, + oct-iostrm.cc, oct-iostrm.h, oct-stdstrm.cc, oct-stdstrm.h, + oct-stream.cc, oct-stream.h, oct-strstrm.cc, oct-strstrm.h, + ov-base-nd-array.cc, ov-base-scalar.h, ov-complex.cc, ov-cx-mat.cc, + pager.cc, pr-output.cc, procstream.h, pt-bp.h, utils.cc: + Add std:: namespace qualifier as needed, and replace + deprecated or invalid libstdc++-v2 names with standard ones + where appropriate. + + * DLD-FUNCTIONS/minmax.cc: Fix docstring. + + * oct-fstrm.cc (octave_fstream::octave_fstream): Maintain fix for + libstdc++-v2. + + * oct-stdstrm.cc (octave_ostdiostream::create): Remove default + parameter value in definition. + + * oct-stream.cc (octave_stream::mode_as_string): Don't assume + std::iso::openmode is an integral quantity. + + * pager.cc, procstream.h: Initialize streams correctly. + + * utils.cc: Use CXX_ISO_COMPLIANT_LIBRARY guard. + + * ov-base-nd-array.cc (idx_list_to_idx_array): Inline. + + * ov-base-scalar.h (octave_base_scalar::octave_base_scalar): Use + ``const ST& s'' instead of ST to workaround gcc3 complex bug. + + 2001-02-05 John W. Eaton + + * lex.l (next_token_is_bin_op): Remove Checks for spacing except + for ops that begin with +, - but are not ++, --, +=, or -=. + + 2001-02-02 John W. Eaton + + * input.cc (get_user_input): Handle dbg_cont and dbg_step here. + * debug.cc (Fdbg_cont): Delete. + * pt-bp.h (MAYBE_DO_BREAKPOINT): Check tree::break_next here. + * pt.h (tree::break_next): New static member. + * pt.cc: Initialize it. + + * parse.h (feval (const octave_value_list&, int)): + Set default value for nargout. + (feval (const std::string&, const octave_value_list&, int)): + Set default values for args and nargout. + + 2001-02-01 Ben Sapp + + * DLD-FUNCTIONS/debug.cc: New file. + * pt-bp.h, pt-bp.cc: New files, for breakpoints. + * Makefile.in: Add them to the appropriate lists. + + * pt-stmt.cc (tree_statement_list::set_breakpoint, + tree_statement_list::delete_breakpoint, + tree_statement_list::list_breakpoints): New functions. + + * pt.h (tree::break_point): New data member. + (tree::set_breakpoint, tree::delete_breakpoint, tree::is_breakpoint): + New virtual functions. + + * pt-mat.cc (tree_matrix::rvalue): Check for breakpoint here. + * pt-unop.cc (tree_prefix_expression::rvalue): Likewise. + (tree_postfix_expression::rvalue): Likewise. + * pt-loop.cc (tree_do_until_command::eval): Likewise. + (DO_LOOP): Likewise. + (tree_simple_for_command::eval): Likewise. + (tree_complex_for_command::eval): Likewise. + * pt-assign.cc (tree_simple_assignment::rvalue): Likewise. + * pt-binop.cc (tree_binary_expression::rvalue): Likewise. + (tree_boolean_expression::rvalue): Likewise. + * pt-cell.cc (tree_cell::rvalue): Likewise. + * pt-colon.cc (tree_colon_expression::rvalue): Likewise. + * pt-except.cc (tree_try_catch_command::eval): Likewise. + (tree_unwind_protect_command::eval): Likewise. + * pt-id.cc (tree_identifier::rvalue): Likewise. + (tree_identifier::lvalue): Likewise. + * pt-indir.cc (tree_indirect_ref::rvalue): Likewise. + * pt-jump.cc (tree_break_command::eval): Likewise. + (tree_continue_command::eval): Likewise. + (tree_return_command::eval): Likewise. + + 2001-01-29 John W. Eaton + + * Map.h, Map.cc (CHMap::operator = (const CHMap&)): New function. + (Map::operator = (const Map&)): Likewise. + (Map (const Map&)): Likewise. + + * OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-s.cc, + OPERATORS/op-m-cs.cc, OPERATORS/op-m-s.cc: + Make ldiv operator work for row vector by scalar ops. + + * OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-m.cc, + OPERATORS/op-s-cm.cc, OPERATORS/op-s-m.cc: + Make div operator work for scalar by column vector ops. + + 2001-01-17 John W. Eaton + + * parse.y (safe_fclose): Discard comments at the end of a file. + + 2001-01-16 John W. Eaton + + * error.cc (pr_where): Call pr_where_1 with two args, not one, to + avoid processing format escapes that might appear in formatted code. + + 2001-01-05 John W. Eaton + + * error.cc (vwarning): Write to output_buf, then send formatted + message to diary and error streams. + + 2001-01-02 John W. Eaton + + * ov-cx-mat.cc (octave_complex_matrix::try_narrowing_conversion): + Handle empty matrix dimensions correctly. + + 2000-12-14 John W. Eaton + + * pager.h (octave_pager_buf::diary_skip): New data member. + (octave_pager_buf::octave_pager_buf): Initialize it. + * pager.cc (octave_pager_buf::set_diary_skip): New function. + (octave_pager_stream::set_diary_skip): New function. + (octave_pager_buf::sync): Call flush_current_contents_to_diary + instead of octave_diary.write. + (octave_pager_buf::flush_current_contents_to_diary): Use + diary_skip, reset when done. + (open_diary_file): Call octave_stdout.set_diary_skip here. + + 2000-12-06 John W. Eaton + + * DLD-FUNCTIONS/minmax.cc (EMPTY_RETURN_CHECK): New macro. + (min, max): Use it. + + * DLD-FUNCTIONS/minmax.cc (MINMAX_BODY): New macro. If single arg + is empty, return empty matrix result and empty matrix for index. + (Fmin, Fmax): Use MINMAX_BODY, so we have consistent definition + for min and max functions. + + 2000-11-30 Joerg Specht + + * help.cc (display_help_text): Append new line at end of doc string. + + 2000-11-30 John W. Eaton + + * DLD-FUNCTIONS/lsode.cc (LSODE_ABORT1, LSODE_ABORT2): Omit `##' + in macro definition since they are not needed to paste strings + together and picky compilers choke on them. + * DLD-FUNCTIONS/quad.cc (QUAD_ABORT1, QUAD_ABORT2): Likewise. + * DLD-FUNCTIONS/fsolve.cc (FSOLVE_ABORT1, FSOLVE_ABORT2): Likewise. + * DLD-FUNCTIONS/dassl.cc (DASSL_ABORT1, DASSL_ABORT2): Likewise. + + 2000-11-29 John W. Eaton + + * mkbuiltins (XDEFUNX_INTERNAL): New macro. + * mkgendoc (XDEFUNX_INTERNAL): Likewise. + * defun-int.h (DEFUNX_INTERNAL): Use it. + + * defun.h (DEFUNX): New macro. + * defun-int.h (DEFUNX_INTERNAL, DECLARE_FUNX): New macro. + (DECLARE_FUN): Define in terms of DECLARE_FUNX. + + * mkdefs: Read and print one line at a time, so we can force + patterns to match only at the beginning of a line. + + * defun-int.h (UNDERSCORIFY): Omit `##' in macro definition since + they are not needed to paste strings together and picky compilers + choke on them. + + 2000-11-17 John W. Eaton + + * load-save.cc (save_ascii_data_for_plotting): New function. + * pt-plot.cc (save_in_tmp_file): Use it instead of save_ascii_data. + + * load-save.cc (save_ascii_data): Warn if saving Inf or NaN values. + New arg, infnan_warned. Use it to warn just once per set. + Now static. + (do_save): New arg, infnan_warned. Pass to save_ascii_data. + (save_vars): Initialize infnan_warned here, pass to do_save. + + 2000-11-16 Paul Kienzle + + * file-io.cc (Ffprintf): If no file id parameter, don't return + count of characters if nargout is 0 (for compatibility with + Matlab). + + 2000-11-16 Ben Sapp + + * DLD-FUNCTIONS/rand.cc (do_rand): Declare loop counter as + volatile int, not just volatile. + + 2000-10-31 John W. Eaton + + * load-save.cc (skip_comments): Allow % as comment character too. + (extract_keyword): Likewise. + + * Makefile.in (oct-gperf.h): Remove -a, -g, and -p flags for gperf. + + 2000-10-30 John W. Eaton + + * load-save.cc (do_load): Allow result to be returned instead of + inserting variables in the symbol table. Change patterned after + patch by Kian Ming Adam Chai . + + 2000-10-27 John W. Eaton + + * Makefile.in (ops.cc): Don't substitute BLAS_LIBS and LIBS here. + + * oct-conf.h.in (OCTAVE_CONF_SPECIAL_MATH_LIB): Delete. + (OCTAVE_CONF_BLAS_LIBS): Add. + * toplev.cc (octave_config_info): Likewise, add BLAS_LIBS and + remove SPECIAL_MATH_LIB from the struct. + + * parse.y (feval (const octave_value_list&, int)): Don't panic + while processing arg names if arg.length() and arg_names.length() + differ. + + 2000-10-12 Paul Kienzle + + * ov-cell.h (octave_cell::is_cell): New function. + + * pt-select.cc (equal): New static function. + (tree_switch_case::label_matches): Use it to compare case label + against arg. Handle cell arrays as case labels. + + 2000-10-12 John W. Eaton + + Change patterned after patch by Cai Jianming + to support for DIM arg in 2.0.x sources. + + * data.cc (DATA_REDUCTION): New macro. Handle second DIM arg here. + (Fcumprod): Replace function body with DATA_REDUCTION. + (Fcumsum): Likewise. + (Fprod): Likewise. + (Fsum): Likewise. + (Fsumsq): Likewise. + + 2000-10-10 John W. Eaton + + * error.cc (pr_where_2): New function. + (pr_where_1): Use it instead of error_1 to avoid setting error_state. + + 2000-10-02 John W. Eaton + + * xdiv.cc (xdiv): Warn if execution falls through to lssolve. + + 2000-09-06 John W. Eaton + + * utils.cc (FERRNO): New function (currently commented out). + + * c-file-ptr-stream.cc (c_file_ptr_buf::close): Call flush here. + (c_file_ptr_buf::~c_file_ptr_buf): Not here. + * c-file-ptr-stream.h (c_fie_ptr_buf::close_fcn): New typedef. + (c_file_ptr_buf::cf): New data member. Add default constructor arg. + (class c_file_ptr_buf): Derive from filebuf, not streambuf. + (i_c_file_ptr_stream, o_c_file_ptr_stream): Handle close function here. + * oct-procstrm.cc (octave_iprocstream, octave_oprocstream): Likewise. + (octave_iprocstream::do_close, octave_oprocstream::do_close): Delete. + * oct-stdstrm.cc (octave_base_stdiostream::~octave_base_stdiostream): + Don't do anything. + (octave_istdiostream::create): Handle close function here. + (octave_istdiostream::octave_istdiostream): Likewise. + (octave_ostdiostream::create): Likewise. + (octave_ostdiostream::octave_ostdiostream): Likewise. + (class octave_base_stdiostream): Don't cache FILE pointer here. + + 2000-09-01 John W. Eaton + + * syscalls.cc (Ffcntl): Don't assume that the file id passed in is + the same as the underlying system file id. + + 2000-08-22 John W. Eaton + + * parse.y: Use octave_time, not time. + + 2000-08-03 John W. Eaton + + * oct-stream.cc (printf_value_cache::double_value): Also set + curr_stat to conversion_error if there are no values at all. + + 2000-08-02 John W. Eaton + + * dirfns.cc (Flink, Fsymlink, Freadlink): New functions. + + 2000-08-01 John W. Eaton + + * load-save.cc (Vsave_header_format_string): New variable. + (symbols_of_load_save): DEFVAR it. + (save_header_format, default_save_header_format): New functions. + (write_header): Use Vsave_header_format_string here. + + 2000-07-28 John W. Eaton + + * pt-pr-code.h (tree_print_code::curr_print_indent_level, + (tree_print_code::beginning_of_line): No longer static. + (tree_print_code::tree_print_code): Initialize them here. + * pt-pr-code.cc: Not here. + + * pt-stmt.cc (tree_statement::eval): Set curr_statement here. + (tree_statement_list::eval): Not here. + + Debug-on-error stuff based on a patch submitted by Paul Kienzle + for 2.0.x. + + * error.cc (Vdebug_on_warning): New static flag variable. + (debug_on_warning): New function. + (symbols_of_warning): DEFVAR debug_on_warning. + (warning): Handle debug_on_warning here. + + * input.cc (do_keyboard): New function. + (Fkeyboard): Use it to do the real work. + * pt-stmt.cc (curr_statement): New static variable. + (tree_statement::eval): Save and restore it here. + * error.cc (Vdebug_on_error): New static flag variable. + (debug_on_error): New function. + (symbols_of_error): DEFVAR debug_on_error. + (pr_where, pr_where_1): New functions. + (error): Handle debug_on_error here. + + 2000-07-20 Joao Cardoso + + * Makefile.in (octave): Link with $(LD_CXX) instead of $(CXX) + + 2000-07-20 John W. Eaton + + * oct-stream.cc (octave_base_stream::oscanf): Advance to next + format element before attempting to pick up any trailing stuff. + + 2000-07-17 John W. Eaton + + * lex.l (next_token_is_bin_op): Don't recognize `..' as a binary op. + + * load-save.cc (get_file_format): Call read_mat5_binary_file_header + with third arg true instead of false, so we don't barf if the file + is not a matlab v5 binary file. + + 2000-07-14 John W. Eaton + + * Makefile.in (octave): Link to ../libcruft/blas-xtra/xerbla.o here. + + * octave.cc (main): Remove kluge to attempt linking our version of + xerbla. + + 2000-07-07 Steven G. Johnson + + * load-save.cc (have_h5giterate_bug): New file-scope variable. + (hdf5_read_next_data): Only increment current_item if + have_h5giterate_bug is true. + (read_hdf5_data): Set have_h5giterate_bug here. + Only increment hs.current_item if have_h5giterate_bug is true. + + 2000-07-05 John W. Eaton + + * c-file-ptr-stream.cc (c_file_ptr_buf::close): + Return -1 if file pointer is NULL. + Set file pointer to 0 after closing. + (c_file_ptr_buf::~c_file_ptr_buf): Call close after flushing. + + 2000-07-05 Steven G. Johnson + + * Makefile.in (BLAS_LIBS): Substitute here. + (octave): Use $(BLAS_LIBS) in the final link command. + + 2000-06-30 Steven G. Johnson + + * Makefile.in (octave): Link $(FLIBS) last. + * octave.cc (main): Force our own xerbla to be linked instead of + some system version. + + 2000-06-29 James R. Van Zandt + + * load-save.cc (load_save_format): New value, LS_MAT5_BINARY. + (arrayclasstype, mat5_data_type): New enums. + (read_mat5_binary_data): New function. + (read_mat5_tag): New function. + (read_mat5_binary_element): New function. + (read_mat5_binary_file_header): New function. + (get_file_format): Check for mat5 binary format too. + (do_load): Handle mat5 binary format. + (write_mat5_tag): New function. + (write_mat5_array): New function. + (class mat5_callback): New class. + (save_mat5_binary_element): New functnon. + (do_save): Handle mat5 binary format. + (write_header): Handle LS_MAT5_BINARY case too. + (save_user_variables): Handle LS_MAT5_BINARY case too. + (Fsave): Handle LS_MAT5_BINARY case too. + (Fload): Handle LS_MAT5_BINARY case too. + + 2000-06-29 Steven G. Johnson + + All of the following changes are protected by #ifdef HAVE_HDF5. + + * load-save.cc (load_save_format): New value, LS_HDF5. + (make_valid_identifier): New function. + (class hdf5_fstreambase, class hdf5_ifstream, class hdf5_ofstream): + New classes for reading and writing hdf5 data. + (hdf5_types_compatible): New function. + (hdf5_import_multidim): New function. + (hdf5_check_attr): New function. + (hdf5_read_next_data): New function. + (hdf5_make_complex_type): New function. + (hdf5_make_range_type): New function. + (read_hdf5_data): New function. + (get_file_format): Handle HDF5 format. + (do_load): Handle LS_HDF5 case. + (Fload): Handle HDF5 format. + (hdf5_add_attr): New function. + (save_type_to_hdf5): New function. + (add_hdf5_data): New function. + (do_save): Handle HDF5 format. + (get_default_save_format): Handle LS_HDF5 case. + (write_header): Handle LS_HDF5 case. + (save_user_variables): Handle HDF5 format. + (Fsave): Handle HDF5 format. + + 2000-06-28 John W. Eaton + + * help.cc (display_help_text): If writing to filter fails, send + unformatted text to output stream. + + 2000-06-27 John W. Eaton + + * OPERATORS/op-bm-bm.cc (eq): Define using mx_el_eq, not operator ==. + (ne): Likewise, use mx_el_ne, not operator !=. + + * pr-output.cc (Fdisp): Delete. + + 2000-06-26 John W. Eaton + + * pr-output.cc (float_format::float_format): Set default values + for width and precision to -1. + (operator << (ostream&, pr_formatted_float&): Set width and + precision if values are >= 0. + (set_real_format, set_real_matrix_format, set_range_format, + set_complex_format, set_complex_matrix_format): If we have all + integers, infinities, or nans, set precision equal to field width. + + * load-save.cc (read_ascii_data): Allow empty strings and string + vectors to be restored. + + * variables.cc (var_matches_any_pattern): New function. + (Fclear): Use it to make exclusive clear work correctly. + + 2000-06-08 John W. Eaton + + * ov-range.h (octave_range::is_numeric_type): New function. + + * sysdep.cc (Fkbhit): Also ask for input if forced_interactive. + + 2000-06-07 John W. Eaton + + * Makefile.in (oct-gperf.h): Use $(GPERF) instead of gperf. + + 2000-05-31 John W. Eaton + + * DLD-FUNCTIONS/qz.cc (Fqz): When computing finite generalized + eigenvalues, don't write past the end of the array. + + 2000-05-11 John W. Eaton + + * ov-base-nd-array.h, ov-base-nd-array.cc, ov-re-nd-array.h, + ov-re-nd-array.h: New files. + * Makefile.in: Add them to the appropriate lists. + + * pt-stmt.h, pt-stmt.cc (class tree_statement): + Store comments associated with this parse tree element. + * pt-select.h, pt-select.cc (class tree_if_clause, + class tree_if_command, class tree_switch_case + class tree_switch_command): Likewise. + * pt-loop.h, pt-loop.cc (class tree_while_command, + class tree_do_until_command, class tree_simple_for_command, + class tree_complex_for_command): Likewise. + * pt-except.h, pt-except.cc (class tree_try_catch_command, + class tree_unwind_protect_command): Likewise. + * ov-usr-fcn.h, ov-usr-fcn.cc (class octave_user_function): Likewise. + * pt-pr-code.h, pt-pr-code.cc (tree_print_code::print_comment_elt, + tree_print_code::print_comment_list, + tree_print_code::print_indented_comment): New functions. + (tree_print_code::visit_simple_for_command, + tree_print_code::visit_complex_for_command, + tree_print_code::visit_octave_user_function_header, + tree_print_code::visit_octave_user_function_trailer, + tree_print_code::visit_if_command, tree_print_code::visit_statement, + tree_print_code::visit_switch_case, + tree_print_code::visit_switch_command, + tree_print_code::visit_try_catch_command, + tree_print_code::visit_unwind_protect_command + tree_print_code::visit_while_command, + tree_print_code::visit_do_until_command): Handle comments. + * lex.l, parse.y: Handle comments in parse trees. + * comment-list.h, comment-list.cc: New files. + * Makefile.in: Add them to the appropriate lists. + + 2000-04-23 etienne grossmann + + * pt-mat.cc (tm_row_const::tm_row_const_rep::eval_error): + New args x and y, for dimension mismatch info. + Change callers where appropriate. + (tm_const::init): Report mismatched column dimensions. + + 2000-04-11 John W. Eaton + + * sysdep.cc (kbhit): Also clear cin if at EOF. + + 2000-04-11 Joao Cardoso + + * sysdep.cc (kbhit): New arg, wait. + (raw_mode): Ditto. + (Fkbhit): If given an arg, call kbhit with wait = false. + + * DLD-FUNCTIONS/minmax.cc (Fmax, Fmin): Fix doc string. + + 2000-04-04 John W. Eaton + + * dynamic-ld.cc (octave_dynamic_loader::do_load): Undo previous change. + + 2000-04-03 John W. Eaton + + * dynamic-ld.cc (octave_dynamic_loader::do_load): Also fail with + error message if we don't find the mangled function name in the + file. + + 2000-03-31 John W. Eaton + + * oct-stream.cc (printf_value_cache::string_value): Return string + matrices in a Matlab-compatible way. + (printf_value_cache): Redesign the way list_exhausted works. + + * oct-fstrm.cc (octave_fstream::do_close): New function. + * oct-stdstrm.cc (octave_istdiostream::do_close): Ditto. + (octave_ostdiostream::do_close): Ditto. + * c-file-ptr-stream.cc (c_file_ptr_buf::close): Ditto. + (i_c_file_ptr_stream::close): Ditto. + (o_c_file_ptr_stream::close): Ditto. + * oct-prcstrm.cc (octave_iprocstream::do_close): Ditto. + (octave_oprocstream::do_close): Ditto. + (octave_iprocstram::~octave_iprocstram): Call do_close here. + (octave_iprocstram::~octave_oprocstram): Likewise. + + * oct-stream.h (octave_base_stream::do_close): New virtual function. + (octave_base_stream::close): If stream is open, call do_close. + + * c-file-ptr-stream.cc (c_file_ptr_buf::flush): New function. + (c_file_ptr_buf::~c_file_ptr_buf): Use it. + (c_file_ptr_buf::overflow): Ditto. + (c_file_ptr_buf::sync): Ditto. + + 2000-03-30 John W. Eaton + + * oct-procbuf.cc (octave_procbuf::open): Make output streams line + buffered. + + 2000-03-24 John W. Eaton + + * sighandlers.cc (my_friendly_exit): Prefix failure messages with + panic instead of error. + + * c-file-ptr-stream.cc (c_file_ptr_buf::~c_file_ptr_buf): + Avoid dereferencing NULL pointer. + + * oct-stream.cc (printf_format_list::add_elt_to_list, + printf_format_list::process_conversion, + printf_format_list::finish_conversion): New args, flags, fw, and prec. + (printf_format_list::printf_format_list): Save more complete info. + (printf_format_list::printme): Print flags, fw, and prec. + (octave_base_stream::printf): Simplify. + (do_printf_conv): Delete have_arg arg, since it is always true now. + (octave_base_stream::do_printf): Handle case of no args and % + directly instead of using do_printf_conv. + (printf_value_cache::exhausted): Rename from no_more_values. + (DO_PCT_CONVERSION): New macro + (octave_base_streain::do_scanf, octave_base_streain::do_oscanf): + Use it. + (scanf_format_list::finish_conversion): `%' counts as a conversion too. + Also don't forget to set type for it. + (OCTAVE_SCAN_0): Delete. + (OCTAVE_SCAN): Rename from OCTAVE_SCAN_1. + (octave_base_stream::scanf, octave_base_stream::oscanf): Don't + special-case number of conversions here. + (octave_base_stream::oscanf, octave_base_stream::do_oscanf): Only + cycle through fmt elements if the number of conversions is greater + than 0. + + * oct-stream.h (scanf_format_list::next): New arg, `cycle'. + (printf_format_list::next): New arg, `cycle'. + (printf_format_list::last_elt_p): New function. + (printf_format_elt): New fields fw, prec, and flags. + Define copy constructor and assignment operator. + (scanf_format_elt): Define copy constructor and assignment operator. + + 2000-03-23 John W. Eaton + + * oct-stream.cc (OCTAVE_SCAN_0, OCTAVE_SCAN_1): New macros. + (do_scanf_conv, BEGIN_S_CONVERSION, BEGIN_CHAR_CLASS_CONVERSION, + do_scanf, scanf, do_oscanf, do_oscanf, oscanf): Use them instead + of calling istream::scan directly. + (octave_scan): New function. + (do_scanf_conv): Second arg is now scanf_format_elt instead of char*. + Change all callers. + + * oct-procbuf.h, oct-procbuf.cc (octave_procbuf): + Derive from c_file_ptr_buf instead of filebuf. + + * oct-stream.cc (octave_base_stream::printf): Use octave_format + instead of ostream::form. Return number of characters written. + + 2000-03-22 John W. Eaton + + * oct-stream.cc (do_printf_conv): Use octave_format instead of + ostream::form. Return number of characters written. + (octave_base_stream::do_printf): Return number of characters written. + + * error.cc (verror, vwarning): Use octave_format instead of + ostream::vform. + + * utils.cc (octave_format, octave_vformat): New functions. + * cutils.c (octave_snprintf, octave_vsnprintf): New functions. + + * oct-lvalue.h (dummy_val): New static variable. + (octave_lvalue::octave_lvalue): Use it to initialize val. + + * variables.cc (is_valid_function): Look in the global symbol + table for functions. + + 2000-03-21 John W. Eaton + + * Makefile.in (LIBRARIES): Conditionally define. + (libraries): Depend on $(LIBRARIES). + (octave): Depend on $(LIBRARIES), not libraries. Also depend on + stamp-prereq and stamp-oct-links. + (all): Don't depend on stamp-prereq or stamp-oct-links. + (liboctinterp.$(LIBEXT), liboctinterp.$(SHELXT)): Delete target + before rebuilding. + + 2000-03-21 Ben Sapp : + + * Makefile.in (libraries): Depend only on library targets, not + archive members. + + 2000-03-17 John W. Eaton + + * Makefile.in (objects): New target + + * c_file_ptr_stream.h, c_file_ptr_stream.cc: New files. + * oct-stdstrm.h, oct-stdstrm.cc, oct-prcstrm.cc: + Use c_file_ptr_buf, i_c_file_ptr_stream, and o_c_fie_ptr_stream + instead of stdiobuf, istdiostream, and ostdiostream. + + * pr-output.cc (set_real_format, set_real_matrix_format, + set_complex_format, set_complex_matrix_format, set_range_format): + Do the right thing again for int, NaN, and Inf values. + + 2000-03-14 John W. Eaton + + * pr-output.cc (pr_plus_format): Rename from do_plus_format. + Change all callers. + (pr_float, pr_complex): New arg, scale. Handle scaling here. + (float_format): New class for managing details of formatting + floats. Use it instead of character string formats and the + nonstandard form() function from the GNU iostream library. + + 2000-02-23 John W. Eaton + + * Makefile.in (clean): Also delete gendoc. + + 2000-02-18 James R. Van Zandt + + * load-save.cc (Vcrash_dumps_octave_core): Fix comment for this var. + + 2000-02-18 John W. Eaton + + * lex.l (handle_number): Don't transorm `[Dd]' to `e' if reading + hex. + + 2000-02-11 John W. Eaton + + * Makefile.in (install-inc): Install files in + $(octincludedir)/octave. + (uninstall): Remove them from the correct directory too. + + * defaults.h, defaults.cc (Vlocal_ver_arch_lib_dir): New variable. + * defaults.cc (set_default_local_ver_arch_lib_dir): New function. + (install_defaults): Call it. + (exec_path): Prepend the versioned form of the local arch lib + directory to the standard path. + * defaults.h.in (OCTAVE_LOCALVERARCHLIBDIR, + OCTAVE_LOCALVERFCNFILEDIR, OCTAVE_LOCALVEROCTFILEDIR): + Substitute these too. + * toplev.cc (Foctave_config_info): Add them to the struct. + + 2000-02-08 John W. Eaton + + * toplev.cc (Foctave_config_info): Add MKOCTFILE_INCFLAGS to the + struct. + * oct-conf.h.in (OCTAVE_CONF_MKOCTFILE_INCFLAGS): Define. + + 2000-02-07 John W. Eaton + + * DLD-FUNCTIONS/balance.cc (Fbalance): Explicitly request + conversion from Matrix to ComplexMatrix. + * DLD-FUNCTIONS/qz.cc (Fqz): Likewise. + + * ov-re-mat.h (octave_matrix::complex_matrix_value): Explicitly + request conversion from Matrix type. + + * ov-ch-mat.h (octave_char_matrix::matrix_value): Explicitly + request conversion from charMatrix type. + (octave_char_matrix::complex_matrix_value): Likewise. + * ov-bool-mat.h (octave_bool_matrix::matrix_value): Likewise. + (octave_bool_matrix::complex_matrix_value): Likewise. + + * ov-range.h (octave_range::complex_matrix_value): Explicitly + request conversion from Matrix type. + + * ov-cx-mat.h, ov-re-mat.h: Explicitly request conversions from + diagonal matrix types in constructors. + + * mappers.cc (ximag, xreal): Return double, not Complex. + + * error.cc (panic): Turn off buffering of error messages. + Don't call flush_octave_stdout here, verror will do it for us. + (verror): Don't call flush_octave_stdout if buffering error messages. + + * pt-except.cc (tree_try_catch_command::eval): Only restore + buffer_error_message value (by running the unwind_protect element + for it) if it has been saved. + + * help.cc (Ftype): Return value if nargout is NOT equal to zero. + Delete unnecessary unwind_protect::begin_frame(). + + * toplev.cc (octave_config_info): Stuff lots of new config info in + the struct. + + * oct-conf.h.in: Delete TARGET_HOST_TYPE. + + 2000-02-04 John W. Eaton + + * siglist.c: Include . + + * lex.l (is_plot_keyword): Add minimum match length in call to + almost_match. + + * Makefile.in (%.df : %.cc): Don't pass -c to compiler. + + 2000-02-03 John W. Eaton + + * ov-base-mat.cc: Include pr-output.h here. + + * DLD-FUNCTIONS/rand.cc (curr_rand_dist): Return const char * + instead of char *. + + * oct-fstrm.cc (octave_fstream::seek, octave_fstream::tell): + Call pubseekoff instead of seekoff. + + * DLD-FUNCTIONS/dassl.cc (print_dassl_option_list): Use stream + manipulators instead of GNU iostream-specific form function. + * DLD-FUNCTIONS/fsolve.cc (print_fsolve_option_list): Ditto. + * DLD-FUNCTIONS/lsode.cc (print_lsode_option_list): Ditto. + * DLD-FUNCTIONS/quad.cc (print_quad_option_list): Ditto. + * pr-output.cc (pr_scale_header): Ditto. + + * sighandlers.h: Include signal.h here. + * sighandlers.cc: Not here. + + * utils.cc: Include setjmp.h, not csetjmp. + * toplev.cc: Ditto. + + * sighandlers.cc: Include signal.h, not csignal. + + * pt-plot.h: Don't include csignal. + * toplev.cc: Ditto. + * oct-hist.cc: Ditto. + * octave.cc: Ditto. + * pager.cc: Ditto. + * input.cc: Ditto. + * help.cc: Ditto. + + * pt-plot.cc (send_to_plot_stream): Use operator== and substr + method to do limited-length string comparison. + * input.cc (generate_completion): Likewise. + * ov-dld-fcn.cc (octave_dld_function::octave_dld_function): Likewise. + * ov-usr-fcn.cc (octave_user_function::mark_as_system_fcn_file): + Likewise. + + * utils.cc (check_preference): Expect exact string matches. + * variables.cc (ignore_function_time_stamp): Likewise. + * lex.l (whitespace_in_literal_matrix): Likewise. + + * mappers.cc (xconj, ximag, xreal): New functions. Use them in + DEFUN_MAPPER calls. + + * defun-int.h (DEFUN_MAPPER_INTERNAL): Cast function pointer args + to octave_mapper constructor. + + 2000-02-02 John W. Eaton + + * procstream.cc (procstreambase::procstreambase, + procstreambase::open, procstreambase::close): + Call std::ios::setstate, not set. + + * lex.l (plot_axes_token): Declare plot_axes as const char *. + Declare tmp const char **. + + * oct-procbuf.h: Include fstream, not streambuf.h. + + * load-save.cc (Fsave): Call pubseekoff instead of seekoff. + * oct-strstrm.cc (octave_base_strstream::tell): Likewise. + (octave_base_strstream::seek): Likewise. + + * oct-stream.cc (octave_base_stream::read): Rename count to char_count. + (octave_base_stream::do_gets): Likewise. + + * octave-stream.cc (octave_base_stream::write): Rename flt_fmt to ffmt. + (octave_base_stream::read): Likewise. + + * TEMPLATE-INST/SLStack-sym.cc: Delete meaningless `extern + template' declarations. + * TEMPLATE-INST/Array-tc.cc: Ditto. + + * TEMPLATE-INST/Map-fnc.cc: Don't try to instantiate goodCHptr or + CHptr_to_index here. + * TEMPLATE-INST/Map-tc.cc: Likewise. + * Map.h (CHNode::goodCHptr, CHNode::CHptr_to_index): Now member + functions. Change all callers. + + * load-save.cc (read_binary_file_header): Declare magic_len `const'. + + * token.h (token::token (const token&), token::operator=): + Delete unnecessary definitions. + + * oct-stream.cc (octave_stream::mode_as_string): Use + std::ios::binary, not std::ios::bin. + * load-save.cc (Fsave, Fload, save_user_variables): Likewise. + + * DLD-FUNCTIONS/qz.cc (Fqz): Use Array class instead of + trying to create automatic int array with variable size. + + * variables.cc (F__dump_symbol_info__): Fix continuation char. + * mappers.cc (Ftoupper): Likewise. + * DLD-FUNCTIONS/besselj.cc (Fairy, Fbesselj): Likewise. + * DLD-FUNCTIONS/chol.cc (Fchol): Likewise. + * DLD-FUNCTIONS/det.cc (Fdet): Likewise. + * DLD-FUNCTIONS/eig.cc (Feig): Likewise. + * DLD-FUNCTIONS/gammainc.cc (gammainc): Likewise. + * DLD-FUNCTIONS/givens.cc (givens): Likewise. + * DLD-FUNCTIONS/hess.cc (hess): Likewise. + * DLD-FUNCTIONS/inv.cc (inv): Likewise. + * DLD-FUNCTIONS/log.cc (logm): Likewise. + * DLD-FUNCTIONS/lu.cc (lu): Likewise. + * DLD-FUNCTIONS/qr.cc (qr): Likewise. + * DLD-FUNCTIONS/schur.cc (schur): Likewise. + * DLD-FUNCTIONS/balance.cc (balance): Likewise. + * DLD-FUNCTIONS/svd.cc (svd): Likewise. + * DLD-FUNCTIONS/syl.cc (syl): Likewise. + * DLD-FUNCTIONS/expm.cc (Fexpm): Likewise. + + * token.h (token::token_type, token::end_tok_type, + token::plot_tok_type): Delete extraneous comma from enum decls. + * load-save.cc (load_save_format): Likewise. + + * pt-idx.cc (tree_index_expression::tree_index_expression): + Delete default arg values. + * oct-fstrm.cc (octave_fstream::octave_fstream): Likewise. + * oct-stream.cc (octave_stream::octave_stream): Likewise. + + * siglist.h, siglist.c: New files. + * Makefile.in: Add them to the appropriate lists. + * siglist.c (sys_siglist): Move definition here from sighandlers.cc. + * siglist.h (sys_siglist): Move declaration here from sighandlers.h. + + * ov.h, ov-bool.h, ov-bool-mat.h (bool_matrix_value): + Delete unnecessary arg. + + * ov.h (octave_value::do_multi_index_op): Rename from do_index_op. + + * ov-fcn.h (octave_function::is_system_fcn_file): Now const. + + * Map.cc (index_to_CHptr): Now a macro. + (CHMap::hash): Now a member function. + + * defun-int.h (UNDERSCORIFY): New macro. + (DEFCONST_INTERNAL, DEFCONSTX_INTERNAL): Use it. + + * data.cc (Fis_list): Fix continuation char. + * defaults.cc (IMAGEPATH): Likewise. + + * Map.cc (CHptr_to_index, goodCHptr): Delete static decl. + + * ov.h (unary_op, binary_op, assign_op): Prepend `op_' to elts. + Change all usses + + * All source files: Sprinkle with std:: qualifier as needed. + + 2000-01-31 John W. Eaton + + * sighandlers.cc (install_signal_handlers): Add std:: qualifier + for set_net_handler. + + * All source files: Include iostream, fstream, strstream, + etc. as needed instead of using forward declarations for these + classes. + + 2000-01-30 John W. Eaton + + * input.cc (input_event_hook, Finput_event_hook): New functions. + (hook_fcn, user_data): New static variables. + + 2000-01-28 John W. Eaton + + * pt-except.cc (do_catch_code): Don't do anything special for + tree_return_command::returning, or tree_break_command::breaking. + + * error.cc (vwarning): New function. + (warning): Use it instead of calling verror. + + * oct-stream.cc (octave_base_stream::oscanf): + Result is now always nconv+1 elements. Return count of successful + conversions in last element. + * file-io.cc (Ffscanf, Fsscanf, Fscanf): Fix doc string. + + * pt-except.cc (do_catch_code): Unwind-protect buffer_error_messages. + Be sure to run all unwind-protects before returning. + (tree_try_catch_command::eval): Add do_catch_code cleanup function + to unwind-protect stack before resetting buffer_error_messages. + Use unwind-protect to save and restore buffer_error_messages. + If there is no catch code, discard the cleanup function and run + the unwind-protect for buffer_error_messages. + + * error.cc (bind_global_error_variable): Avoid dereferencing + error_message_buffer if it is NULL. + + * parse.y (evaluating_function_body): New global flag. + * ov-usr-fcn.cc (octave_user_function::do_index_op): + Protect and set it here. + * parse.y (make_break_command, make_return_command): Check it here. + + * error.cc (warning_state): New global flag. + (warning): Set it here. + * lex.l (reset_parser): Clear it here. + * parse.y (fold): Check it here. + + 2000-01-27 John W. Eaton + + * pt-walk.h (tree_walker::visit_do_until_command): New pure virtual. + * pt-pr-code.cc (tree_print_code::visit_do_until_command): + New function. + * pt-loop.h (tree_do_until_command): New class. + (tree_while_command::expr, tree_while_command::list): + Now protected instead of private. + * parse.y (make_do_until_command): New function. + (loop_command): Recognize do-until statement. + (DO, UNTIL): New tokens. + + * input.cc (match_sans_spaces): Require non-blank part of test + string to match standard string exactly. + + 2000-01-26 John W. Eaton + + * oct-stream.h (scanf_format_elt::char_class): New struct elt. + Add arg to constructor. + (scanf_format_elt::special_conversion): New enum. + * oct-stream.cc (scanf_format_list::add_elt_to_list): New arg, + char_class. Pass it to scanf_format_elt constructor. + (scanf_format_list::scanf_format_list): Create separate list + elements for whitespace and literal conversions. + (expand_char_class): New function. + (scanf_format_list::finish_conversion): Extract character class + (not including the delimiting brackets) and expand the list of + characters. Pass the result to add_elt_to_list. + (scanf_format_list::all_character_conversions): Also accept '^', + scanf_format_elt::literal_conversion, and + scanf_format_elt::whitespace_conversion types too. + (DO_WHITESPACE_CONVERSION, BEGIN_CHAR_CLASS_CONVERSION, + BEGIN_C_CONVERSION, BEGIN_S_CONVERSION, DO_LITERAL_CONVERSION): + New macros. + (octave_base_stream::do_scanf, octave_base_stream::do_oscanf): + Use them to avoid code duplication. + Handle whitespace, literal text, and character class conversions. + (octave_base_stream::oscanf): Loop over all format list elements, + not just the first nconv elements. Clear status flags on is for + all streams. + + 2000-01-25 John W. Eaton + + * xdiv.cc (result_ok): Just check value of info. + (solve_singularity_warning): New function. + (xleftdiv, xdiv): Pass pointer to solve_singularity_warning to + solve function. + + * lex.l (handle_identifier): Set next_tok_is_eq if we are looking + at `=', but not if we are looking at `=='. + + * pt-pr-code.cc (tree_print_code::visit_unwind_protect_command): + Print `unwind_protect_cleanup', not `cleanup_code'. + + * pager.cc (octave_pager_buf::flush_current_contents_to_diary): + New function. + (octave_pager_stream::flush_current_contents_to_diary): + Ditto. + (close_diary_file): Use the new octave_pager_stream function to + try to flush the current buffer to the diary when it is closed. + + * variables.cc (Fexist): Return 6 for built-in constants. + + * pt-plot.cc (Fgshow): Don't append " " after last arg. + (Fgset): Likewise. + + 2000-01-23 John W. Eaton + + * ov-base-mat.h (octave_base_matrix::length): Return 0 for empty + arrays. + + 2000-01-20 John W. Eaton + + * DLD-FUNCTIONS/time.cc (Fstrptime): New function. + + * load-save.cc (Fsave): Add missing else. + + 2000-01-17 John W. Eaton + + * DLD-FUNCTIONS/gammainc.cc (Fgammainc): Texinfoize doc string. + * ov-typeinfo.cc (Ftypeinfo): Ditto. + * parse.y (Vwarn_future_time_stamp): Ditto. + * DLD-FUNCTIONS/minmax.cc (Fmax, Fmin): Ditto. + * ov-usr-fcn.cc (Fva_arg, Fva_start, Fvr_val): Ditto. + * defaults.cc (VOCTAVE_HOME, Frehash): Ditto. + * toplev.cc (Fwarranty, Fcasesen): Ditto. + * utils.cc (Fdo_string_escapes, Ffile_in_loadpath): Ditto. + * variables.cc (F__dump_symtab_info__, F__dump_symbol_info__): Ditto. + * ov-list.cc (Flist, Fappend, Fnth, Freverse, Fsplice): Ditto. + * input.cc (Fread_readline_init_file): Ditto. + * file-io.cc (Fis_stream): Ditto. + * ov-cell.cc (Fiscell, Fcell): Ditto. + * pt-assign.cc (Vprint_rhs_assign_val): Ditto. + * pt-decl.cc (Vinitialize_global_variables): Ditto. + * symtab.cc (Vvariables_can_hide_functions): Ditto. + + * pt-plot.cc (Fgraw, Fgset, Fgshow, Vgnuplot_command_plot, + Vgnuplot_command_replot, Vgnuplot_command_splot, + Vgnuplot_command_using, Vgnuplot_command_with, + Vgnuplot_command_axes, Vgnuplot_command_title, + Vgnuplot_command_end): Texinfoize doc strings. + + * oct-procbuf.cc (__kluge_procbuf_delay__): Rename from + kluge_procbuf_delay. Texinfoize doc string. + + 2000-01-13 John W. Eaton + + * parse.y (gobble_leading_whitespace): Discard first space character + after consecutive comment characters. + * lex.l (grab_help_text): Ditto. + + * lex.l (Vwhitespace_in_literal_matrix, Vwarn_separator_insert, + Vwarn_single_quote_string): Texinfoize doc string. + + 2000-01-11 John W. Eaton + + * ov.h, ov.cc (octave_value::column_vector_value, + octave_value::row_vector_value, + octave_value::complex_column_vector_value, + octave_value::complex_row_vector_value): New functions. + (octave_value::vector_value): Now returns Array. + (octave_value::complex_vector_value): Now returns Array. + Sprinkle conversions where necessary. + + * ov.cc (Vprefer_column_vectors): Now static. + * ov.h (octave_value (const ComplexRowVector&), + octave_value (const ComplexColumnVector&), + octave_value (const RowVector&), octave_value (const ColumnVector&)): + Delete second arg. Change all callers. + + * oct-obj.h (octave_value_list (const RowVector&), + octave_value_list (const ColumnVector&), + octave_value_list (const ComplexRowVector&), + octave_value_list (const ComplexColumnVector&)): Likewise. + * ov-cx-mat.h, ov-cx-mat.cc + (octave_complex_matrix (const ComplexRowVector&), + (octave_complex_matrix (const ComplexColumnVector&)): + Delete second arg, simply create object with orientation + corresponding to vector arg. Move constructors to class decl. + * ov-re-mat.h, ov-re-mat.cc (octave_matrix (const RowVector&), + (octave_matrix (const ColumnVector&)): + Delete second arg, simply create object with orientation + corresponding to vector arg. Move constructors to class decl. + + 2000-01-07 Ben Sapp + + * mappers.cc (Fconj, Ferf, Ferfc, Fgamma, Fimag, Flgamma, Flog10, + Freal, Fround): Add @seealso{...} to doc strings. + + 2000-01-06 John W. Eaton + + * oct-stream.cc (do_scanf): Do the right thing again for character + conversions. + + * help.cc (display_help_text): Also strip out leading spaces + before Texinfo @-commands before sending doc string to makeinfo. + (display_help_text): Improve format of `See also' string. + + 2000-01-05 John W. Eaton + + * help.cc (display_help_text): Pass a definition for @seealso + through the filter. + + 1999-12-22 John W. Eaton + + * lex.l (Vwarn_single_quote_string): New variable. + (syms_of_lex): DEFVAR it. + (warn_single_quote_string): New function. + (gripe_single_quote_string): New function. + Use new stuff to allow warnings for code that uses single quote + characters to introduce string constants. + + 1999-12-20 John W. Eaton + + * mkbuiltins: Add #undef quad to generated file. + + 1999-12-15 John W. Eaton + + * lex.l (Vwarn_separator_insert): New variable. + (syms_of_lex): DEFVAR it. + (warn_separator_insert): New function. + (maybe_warn_separator_insert): New function. + Use new stuff to allow warnings for code that might result in + auto-insertion of commas or semicolons, depending on the value of + whitespace_in_literal_matrix. + + * parse.y (Fsource): Record function file name here too. + + 1999-12-13 John W. Eaton + + * variables.cc (link_to_global_variable): If the local symbol is + not a variable, don't bother to clear it. Instead, just redefine + it by aliasing to the global symbol. + + 1999-11-23 John W. Eaton + + * DLD-FUNCTIONS/balance.cc (Fbalance): Texinfoize doc string. + * DLD-FUNCTIONS/det.cc (Fdet): Ditto. + * DLD-FUNCTIONS/eig.cc (Feig): Ditto. + * DLD-FUNCTIONS/givens.cc (Fgivens): Ditto. + * DLD-FUNCTIONS/inv.cc (Finv): Ditto. + * DLD-FUNCTIONS/chol.cc (Fchol): Ditto. + * DLD-FUNCTIONS/hess.cc (Fhess): Ditto. + * DLD-FUNCTIONS/lu.cc (Flu): Ditto. + * DLD-FUNCTIONS/qr.cc (Fqr): Ditto. + * DLD-FUNCTIONS/schur.cc (Fschur): Ditto. + * DLD-FUNCTIONS/svd.cc (Fsvd): Ditto. + * DLD-FUNCTIONS/expm.cc (Fexpm): Ditto. + * DLD-FUNCTIONS/log.cc (Flogm, Fsqrtm): Ditto. + * DLD-FUNCTIONS/syl.cc (Fsyl): Ditto. + * DLD-FUNCTIONS/pinv.cc (Fpinv): Ditto. + * DLD-FUNCTIONS/qz.cc (Fqz): Ditto. + * DLD-FUNCTIONS/dassl.cc (Fdassl, Fdassl_options): Ditto. + * DLD-FUNCTIONS/lsode.cc (Flsode, Flsode_options): Ditto. + * data.cc (Flength, Fsize, Fisempty): Ditto. + * sysdep.cc (Fkbhit): Ditto. + * input.cc (Fkeyboard, Finput): Ditto. + * variables.cc (ans): Ditto. + * pr-output.cc (Fdisp, Fformat): Ditto. + * ov.cc (Vprint_answer_id_name): Ditto. + * defaults.cc (IMAGEPATH): Ditto. + * error.cc (Ferror, Fwarning, Fusage, error_text, beep_on_error): + Ditto. + * load-save.cc (Fload, Fsave, Vdefault_save_format, + Vsave_precision): Ditto. + * file-io.cc (Ffflush, Ffopen, Ffclose, Ffputs, Ffgetl, Ffgets, + Ffprintf, Fsprintf, Fscanf, Ffscanf, Fsscanf, Ffread, Ffwrite, + Ffseek, Fftell, Ffeof, Fferror, Ffreport, Ftmpnam, Vstdin_file, + Vstdout_file, Vstderr_file, SEEK_SET, SEEK_CUR, SEEK_END): Ditto. + * pager.cc (Vpager_binary, Vpage_output_immediately, + Vpage_screen_output, Fmore): Ditto. + + 1999-11-21 John W. Eaton + + * utils.cc (Vtreat_neg_dim_as_zero): Texinfoize doc string. + * DLD-FUNCTIONS/find.cc (Ffind): Ditto. + * DLD-FUNCTIONS/rand.cc (Frand, Frandn): Ditto. + * DLD-FUNCTIONS/sort.cc (Fsort): Ditto. + * mappers.cc (Fisinf, Fisnan, Ffinite): Ditto. + * data.cc (Fall, Fany, Fdiag, Fones, Fzeros, Feye, Flinspace): Ditto. + * defaults.cc (Vloadpath, Vdefault_loadpath): Ditto. + * parse.y (Feval, Ffeval, Vdefault_eval_print_flag, + Vwarn_missing_semicolon, Vwarn_function_name_clash, Fsource): Ditto. + * ov-usr-fcn.cc (Vmax_recursion_depth, Vdefault_return_value, + Vdefine_all_return_values, Vreturn_last_computed_value): Ditto. + * ov.cc (Vok_to_lose_imaginary_part, Vdo_fortran_indexing, + Vprefer_column_vectors, Vresize_on_range_error, + Vwarn_divide_by_zero): Ditto. + * pt-stmt.cc (Vsilent_functions): Ditto. + * variables.cc (Vignore_function_time_stamp): Ditto. + * dynamic-ld.cc (Vwarn_reload_forces_clear): Ditto. + + 1999-11-20 John W. Eaton + + * DLD-FUNCTIONS/fft.cc (Ffft): Texinfoize doc string. + * DLD-FUNCTIONS/ifft.cc (Fifft): Ditto. + * DLD-FUNCTIONS/fft2.cc (Ffft2): Ditto. + * DLD-FUNCTIONS/ifft2.cc (Fifft2): Ditto. + * DLD-FUNCTIONS/filter.cc (Ffilter): Ditto. + * DLD-FUNCTIONS/quad.cc (Fquad, Fquad_options): Ditto. + * DLD-FUNCTIONS/colloc.cc (Fcolloc): Ditto. + * DLD-FUNCTIONS/fsolve.cc (Ffsolve, Ffsolve_options): Ditto. + * defaults.cc (Veditor): Ditto. + * pt-plot.cc (Vautomatic_replot, Vgnuplot_binary, + Vgnuplot_has_frames, Vgnuplot_has_multiplot, Fclearplot, + Fcloseplot, Fpurge_tmp_files, Fishold, Fhold): + + * Makefile.in (parse.cc): Expect 11 shift/reduce conflicts now. + + 1999-11-19 John W. Eaton + + * parse.y (Vwarn_assign_as_truth_value, Vwarn_variable_switch_label): + Texinfoize doc strings. + + * DLD-FUNCTIONS/pinv.cc (Fpinv): Texinfoize doc string. + + * defun-int.h (DEFUN_DLD_INTERNAL): New macro. + * defun-dld.h [MAKE_BUILTINS] (DEFUN_DLD): Simply expand to + DEFUN_DLD_INTERNAL. + * mkbuiltins: Generate code to define DEFUN_DLD_INTERNAL. + * mkgendoc: Likewise. + + * Makefile.in (gendoc.o): Don't optimize when creating gendoc. + (%.dc : %.cc): Delete rule. + + * pt-decl.cc (Vdefault_global_variable_value): Texinofize doc string. + * variables.cc (Fclear, Fdocument, Fexist, Fis_global, Fwho): Ditto. + * help.cc (Ftype, Fwhich): Ditto. + * ov.cc (Vstruct_levels_to_print, Vimplicit_str_to_num_ok): Ditto. + * data.cc (Fis_struct, Fstruct_elements, Fstruct_constains): Ditto. + * strfns.cc (Fisstr, Fsetstr): Ditto. + * pt-mat.cc: (Fimplicit_num_to_str_ok, Fstring_fill_char): Ditto. + * utils.cc (Fundo_string_escapes): Ditto. + * mappers.cc: (Fisalnum, Fisalpha, Fisascii, Fiscntrl, Fisdigit, + Fisgraph, Fislower, Fisprint, Fispunct, Fisspace, Fisupper, + Fisxdigit, Ftoascii, Ftolower, Ftoupper): Ditto. + + 1999-11-18 John W. Eaton + + * syscalls.cc (symbols_of_syscalls): Use DEFCONSTX to define + Octave constants for C macros like O_WRONLY. + + * oct-lvalue.cc (octave_lvalue::set_index): Disallow expressions + like x(i)(j) = rhs. + + 1999-11-17 John W. Eaton + + * symtab.cc (symbol_record::type_as_string): New function. + + * symtab.cc (symbol_record::which): New functions. + * help.cc (do_which): New functions. + (Fwhich): Use them. + + * help.cc (help_from_symbol_table, help_from_file): New functions. + (builtin_help): Use them. + + * help.cc (do_type): New function. + (symbol_record::type): New function. + (Ftype): Use them. + + * help.cc (print_symbol_type): Delete. + + * symtab.cc (symbol_table::name_list): Delete count arg. + (symbol_table::symbol_list): Likewise. + (symbol_table::glob): Likewise. Also return Array + instead of symbol_record **. + Change all callers. + * help.cc (names, display_symtab_names): Delete count arg. + + * help.cc (print_symbol_type, Ftype): No longer need to look up + fcn_file_name in the loadpath. + + * help.cc (print_symbol_type): Handle dld functions. + (help_from_symbol_table, help_from_file): New functions. + (builtin_help): Use them. + + 1999-11-16 John W. Eaton + + * ov-cell.cc (Fiscell, Fcell): New Functions. + (octave_cell::do_index_op): New function. + + * utils.cc (get_dimensions): Move here from data.cc and make extern. + (Vtreat_neg_dim_as_zero, treat_neg_dim_as_zero): Likewise. + (symbols_of_utils): New function. + + * data.cc (fill_matrix (const octave_value_list&, double, + const char*)): New function. + (Fones, Fzeros): Use it to avoid some code duplication. + + 1999-11-15 John W. Eaton + + * pt-cell.h, pt-cell.cc, ov-cell.h, ov-cell.cc, Cell.h, Cell.cc: + New files. + * Makefile.in: Add them to the appropriate lists. + * pt-walk.h (visit_cell (tree_cell&): New pure virtual. + * pt-pr-code.cc (tree_print_code::visit_cell (tree_cell&)): New + function. + * TEMPLATE-INST/Array-tc.cc: Instantiate 2D arrays of octave_value + objects. + * pt-all.h: Include pt-cell.h. + * ov.h, ov.cc (octave_value::is_cell, octave_value::cell_value): + New functions. + * ov-base.h, ov-base.cc (octave_value::is_cell, + octave_value::cell_value): Provide defaults. + * lex.h, lex.l: Handle `{' and `}' tokens (for cell arrays). + (bracketflag): Rename from braceflag. + (handle_close_bracket): Rename from handle_close_brace. + (class bracket_brace_paren_nesting_level): Rename from + brace_paren_nesting_level. + (bracket_brace_paren_nesting_level::bracket, + bracket_brace_paren_nesting_level::is_bracket): New functions to + keep count of nesting level for `[' and `]'. + (bracket_brace_paren_nesting_level::brace, + bracket_brace_paren_nesting_level::is_brace): Now keeps count of + nesting level for `{' and `}'. + * parse.y (tree_cell_type): New type. + Give '{' the same precedence and associativity as '(' and '.' + (matrix_rows, matrix_rows1): Rename from rows, rows1. + (cell, cell_rows, cell_rows1): New non-terminals. + (cell_or_matrix_row): Rename from matrix_row. + (primary_expr): Accept cell here. + (postfix_expr): Allow indexing using '{' arg_list '}'. + (finish_cell): New function. + + 1999-11-12 John W. Eaton + + * utils.cc (jump_to_top_level): No longer declared extern "C". + + * cutils.c (octave_strcasecmp, octave_strncasecmp): New functions. + * utils.cc (almost_match): Call octave_strncasecmp instead of + calling strncasecmp directly. + + 1999-11-10 John W. Eaton + + * parse.y: Don't define warn_reload_forces_clear here. + + * Makefile.in (DISTFILES): Include DOCSTRINGS. + + 1999-11-05 John W. Eaton + + * sighandlers.cc (install_signal_handlers): Don't install + sigwinch_handler. + + * oct-iostrm.h (octave_istream::eof, octave_ostream::eof): Provide + implementation for these. + + * oct-stream.cc (octave_base_stream::do_scanf): + The stdin stream is only special if we are interactive. + (octave_base_stream::scanf): Ditto. + (octave_base_stream::do_oscanf): Ditto. + (octave_base_stream::oscanf): Ditto. + + * ov.h (octave_value::is_stream): New predicate. + * ov-file.h (octave_file::is_stream): Return true. + * file-io.cc (Fis_stream): New function. + + * ov-file.h (class octave_file): stream is now an object instead + of pointer. + * ov-file.cc (octave_file::print_raw): Handle stream as object + instead of pointer. Also print stream status. + + * ov-base.cc (octave_base_value::stream_value): Return object + instead of pointer. + + * ov.cc (octave_value::stream_value): Return object instead of pointer. + (octave_value::octave_value (const octave_stream&)): Take const + reference instead of pointer arg. + + * TEMPLATE-INST/Array-os.cc: Instantiate Arrays of octave_stream + objects, not pointers to them. + + * OPERATORS/op-fil-b.cc: Cope with octave_stream class changes. + * OPERATORS/op-fil-bm.cc: Likewise. + * OPERATORS/op-fil-cm.cc: Likewise. + * OPERATORS/op-fil-cs.cc: Likewise. + * OPERATORS/op-fil-lis.cc: Likewise. + * OPERATORS/op-fil-m.cc: Likewise. + * OPERATORS/op-fil-rec.cc: Likewise. + * OPERATORS/op-fil-s.cc: Likewise. + * OPERATORS/op-fil-str.cc: Likewise. + * file-io.cc: Likewise. + * syscalls.cc (Fdup): Likewise. + + * oct-fstrm.cc, oct-fstrm.h, oct-iostrm.cc, oct-iostrm.h, + oct-prcstrm.cc, oct-prcstrm.h, oct-stdstrm.cc, oct-stdstrm.h, + oct-stream.cc, oct-stream.h, oct-strstrm.cc, oct-strstrm.h: + Rewrite to allow octave_stream objects to be used like values + instead of having to use pointers. + + 1999-11-03 John W. Eaton + + * oct-stream.cc (octave_base_stream::do_scanf): If it looks like + we have a matching failure, then reset the failbit in the stream + state. + (octave_base_stream::do_oscanf): Likewise. + + 1999-11-02 Ben Sapp + + * help.cc (Fhelp): Texinfoize doc string. + * input.cc (Fecho, Fcompletion_matches): Ditto. + * oct-hist.cc (Fedit_history, Fhistory, Frun_history): Ditto. + * pager.cc (Fdiary): Ditto. + * sysdep.cc (Fclc): Ditto. + * toplev.cc (Fquit, Fatexit): Ditto. + + 1999-11-02 John W. Eaton + + * lex.l (yywrap): No longer static. + (have_continuation): Declare input character as int, not char, so + comparison to EOF will work. + + 1999-11-01 John W. Eaton + + * defun.cc (print_usage): Use display_help_text instead of sending + help message directly to octave_stdout. + + 1999-10-29 John W. Eaton + + * defun-dld.h (INSTALL_DLD_FCNS, INSTALL_DLD_FCN): Delete definitions. + * DLD-FUNCTIONS/dassl.cc: Don't use INSTALL_DLD_FCN or + INSTALL_DLD_FCNS macros. They are not necessary with the new code + in dynamic-ld.cc. + * DLD-FUNCTIONS/lsode.cc: Ditto. + * DLD-FUNCTIONS/fsolve.cc: Ditto. + * DLD-FUNCTIONS/quad.cc: Ditto. + * DLD-FUNCTIONS/time.cc: Ditto. + * DLD-FUNCTIONS/besselj.cc: Ditto. + * DLD-FUNCTIONS/getgrent.cc: Ditto. + * DLD-FUNCTIONS/getpwent.cc: Ditto. + * DLD-FUNCTIONS/inv.cc: Ditto. + * DLD-FUNCTIONS/log.cc: Ditto. + * DLD-FUNCTIONS/minmax.cc: Ditto. + * DLD-FUNCTIONS/rand.cc: Ditto. + + * dynamic-ld.cc, dynamic-ld.h: Major rewrite to allow reloading of + dynamically linked functions. + + * symtab.cc (symbol_record::replace_all_defs): Don't allow top + definition to be NULL. + (symbol_table::clear): Allow dynamically linked functions to be + cleared. + + * symtab.h (TYPE): New enum value, DLD_FUCTION. + (symbol_type): Now 8 bits wide. + (SYMTAB_ALL_TYPES): Include DLD_FUNCTION. + (symbol_record::symbol_def::is_function): Also recognize dld functions. + (symbol_record::symbol_def::is_dld_function): New function. + (symbol_record::is_dld_function): Ditto. + + * defun.cc (install_dld_function): New function. + * defun-int.h: Provide declaration here. + (octave_dld_fcn_installer): New typedef. + (DEFINE_FUN_INSTALLER_FUN): Installer function now takes an + oct_shlib object as an arg. Allow installation of a function to + happen more than once. + + * octave.cc (initialize_error_handlers): Call + set_liboctave_warning_handler here too. + + * ov-builtin.h (is_builtin_function): Return true. + Data member is now protected, not private. + + * ov-fcn.h (is_dynamically_loaded_function): New predicate. + (unload): New function. + Data members are now protected, not private. + + * ov.h (is_builtin_function, is_dld_function): New predicates. + * ov-base.h (is_builtin_function, is_dld_function): Ditto. + + * parse.y (Vwarn_reload_forces_clear): New static flag. + (warn_reload_forces_clear): New function. + (symbols_of_parse): DEFVAR warn_reload_forces_clear. + + * variables.cc (Fclear): Look for dld functions too. + + * ov-dld-fcn.cc, ov-dld-fcn.h: New files. + * Makefile.in (OV_INCLUDES, OV_SRC): Add them to the lists. + + * Makefile.in (DEFVAR_PATTERN): Also match DEFCONSTX. + + 1999-10-26 John W. Eaton + + * DLList.h, DLList.cc: New files. + * Makefile.in (INCLUDES, DIST_SRC): Add them to the lists. + + * DLD-FUNCTIONS/lsode.cc (Flsode): Be sure to call + unwind_protect::run_frame before returning. + * DLD-FUNCTIONS/quad.cc (Fquad): Likewise. + * DLD-FUNCTIONS/fsolve.cc (Ffsolve): Likewise. + * DLD-FUNCTIONS/dassl.cc (Fdassl): Likewise. + + * load-save.cc (read_mat_ascii_data): When reading from + tmp_stream, check its state, not the state of is. + + * defun-dld.h (INSTALL_DLD_FCN, INSTALL_DLD_FCNS): New macros. + * DLD-FUNCTIONS/dassl.cc: Use them. + * DLD-FUNCTIONS/lsode.cc: Ditto. + * DLD-FUNCTIONS/fsolve.cc: Ditto. + * DLD-FUNCTIONS/quad.cc: Ditto. + * DLD-FUNCTIONS/time.cc: Ditto. + * DLD-FUNCTIONS/besselj.cc: Ditto. + * DLD-FUNCTIONS/getgrent.cc: Ditto. + * DLD-FUNCTIONS/getpwent.cc: Ditto. + * DLD-FUNCTIONS/inv.cc: Ditto. + * DLD-FUNCTIONS/log.cc: Ditto. + * DLD-FUNCTIONS/minmax.cc: Ditto. + * DLD-FUNCTIONS/rand.cc: Ditto. + + * data.cc (Flinspace): Let linspace functions handle errors. + + * mkgendoc (print_doc_string): Handle quoted names. + + * file-io.cc (symbols_of_file_io): Use DEFCONSTX for SEEK_SET, + SEEK_CUR, and SEEK_END. + + * defun.h (DEFCONST): Just pass name, defn, and doc to + DEFCONST_INTERNAL. + (DEFCONSTX): Likewise, pass name, defn, and doc to DEFCONSTX_INTERNAL. + * defun-int.h [MKBUILTINS] (DEFCONST_INTERNAL): Likewise, pass + name, defn, and doc to XDEFCONST_INTERNAL. + [MKBUILTINS] (DEFCONSTX_INTERNAL): New macro. + (INSTALL_CONST): New macro. + [! MKBUILTINS] (DEFCONST_INTERNAL): Use it to handle details here. + [! MKBUILTINS] (DEFCONSTX_INTERNAL): Ditto. + * mkgendoc: Fix definition of XDEFCONST_INTERNAL to match. + * mkbuiltins: Ditto. + + * mkdefs: Match spaces before BEGIN_INSTALL_BUILTIN. + + * Makefile.in (DEFUN_PATTERN): Also match DEFUN_MAPPER. + + 1999-10-26 Ben Sapp + + * data.cc (VI, VInf, VJ, VNaN, Ve, Veps, Vfalse, Vi, Vinf, Vj, + Vnan, Vpi, Vrealmax, Vrealmin): Texinfoize doc strings. + * mappers.cc (Fabs, Facos, Facosh, Fangle, Farg, Fasin, Fasinh, + Fatan, Fatanh, Fceil, Fconj, Fcos, Fcosh, Ferf, Ferfc, Fexp, + Ffinite, Ffix, Ffloor, Fgamma, Fimag, Flgamma, Flog, Flog10, + Freal, Fround, Fsign, Fsin, Fsinh, Fsqrt, Ftan, Ftanh): Ditto. + + 1999-10-23 Ben Sapp + + * data.cc (Fis_matrix): Texinfoize doc string. + * ov.cc (Vpropagate_empty_matrices): Ditto. + * pt-mat.cc: (Vempty_list_elements_ok): Ditto. + * pr-output.cc (Vfixed_point_format, Voutput_max_field_width, + Voutput_precision, Vprint_empty_dimensions, Vsplit_long_rows): + Ditto. + + 1999-10-22 John W. Eaton + + * ov-usr-fcn.cc (octave_user_function::do_index_op): If + Vmax_recursion_depth is exceeded, call unwind_protect::run_frame + before returning. + + 1999-10-21 John W. Eaton + + * cutils.c (do_octave_usleep): Handle useconds > 1e6. + + * variables.h (is_valid_function): Provide default values for the + string argument. + + * symtab.cc (variable_reference): Maybe print warning (or error) + about variables that hide functions of the same name. + (symbol_record::define (const octave_value&, unsigned int)): Ditto. + (Vvariables_can_hide_functions): New static variable. + (variables_can_hide_functions, symbols_of_symtab): New functions. + + * cutils.c: New file. + * Makefile.in (SOURCES): Add it to the list. + * utils.h: Declare octave_usleep here. + * dirfns.cc (Fls): Simply all octave_usleep. + * oct-procbuf.cc (octave_procbuf::open): Ditto. + * sysdep.cc (Fusleep): Ditto. + * toplev.cc (run_command_and_return_output): Ditto. + + 1999-10-20 John W. Eaton + + * data.cc (make_diag (const octave_value&, const octave_value&)): + Delete special cases for scalars and simply attempt conversion of + first arg to a matrix value. If that fails, we will still see an + error message. + + * Makefile.in (DISTFILES): Add mkgendoc to the list. + + 1999-10-19 John W. Eaton + + * Makefile.in (stmp-pic): New target. + ($(PICOBJS)): Depend on stmp-pic, not pic. + + * ov.h (get_rep): New function. + + * help.cc (display_help_text): Pass definitions for VERSION, + OCTAVE_HOME, and TARGETHOSTTYPE to makeinfo. + + * DLD-FUNCTIONS/getgrent.cc: Texinfoize all doc strings. + * DLD-FUNCTIONS/getpwent.cc: Ditto. + * DLD-FUNCTIONS/getrusage.cc: Ditto. + * DLD-FUNCTIONS/time.cc: Ditto. + + * defaults.cc (EXEC_PATH, OCTAVE_VERSION): Texinfoize doc strings. + * dirfns.cc (Fcd, Fls, Fpwd, Freaddir, Fmkdir, Frmdir, Frename, + Fglob, Ffnmatch): Ditto. + * file-io.cc (Fpopen, Fpclose, Fumask): Ditto. + * sysdep.cc (Fgetenv, Fputenv, Fpause, Fsleep, Fusleep, Fisieee, + Ftilde_expand): Ditto. + * toplev.cc (Fcomputer, Fsystem, Foctave_config_info): Ditto. + * utils.cc (Ffile_in_path): Ditto. + * syscalls.cc (Fdup2, Fexec, Ffcntl, Ffork, Fgetpgrp, Fgetpid, + Fgetppid, Fgetegid, Fgetgid, Fgeteuid, Fgetuid, Fmkfifo, Fpipe, + Fstat, Funlink, Fwaitpid, F): Ditto. + (Flstat): Refer to stat for doc. + + * help.cc (looks_like_texinfo): New function. + (display_help_text): Use it to see if the doc string looks like + Texinfo source. If so, use makeinfo to format the text before + displaying it. + + * mkgendoc: New script. + * Makefile.in: Use it to create gendoc.cc, which is compiled and + run to create DOCSTRINGS file from sources. + + 1999-10-18 John W. Eaton + + * help.cc (help_from_info): Print `unable to find info' message if + try_info returns 127; otherwise, print `not indexed' message. + Don't sleep after printing `not indexed' message. + + 1999-10-14 John W. Eaton + + * parse.y (fold (tree_unary_expression *)): New function. + (make_prefix_op, make_postfix_op): Use it. + + 1999-10-13 John W. Eaton + + * Makefile.in (oct-gperf.h): Ask for ANSI-C output from gperf + (requires gperf-2.7 or later). + + * sighandlers.cc (sigwinch_handler): New function. + (install_signal_handlers): Install it. + + Thu Sep 23 19:49:36 1999 John W. Eaton + + * toplev.cc (Fsystem): For async case, use execl instead of + system, avoiding the need to exit after executing the subprocess. + + Thu Sep 9 17:09:23 1999 John W. Eaton + + * oct-stream.cc (get_size): Allow zero values. + (get_size): New arg, one_elt_size_spec. + (do_scanf_conv): New arg, `conv_count'. Change instantiation + requests and all callers. + (octave_base_stream::do_scanf): Improve scanning of strings. + (octave_base_stream::do_oscanf): Remove size limit on %s conversions. + + * oct-stream.cc (scanf_format_list::all_character_conversions): + Don't count %p as a character conversion. + + Tue Sep 7 08:31:04 1999 John W. Eaton + + * pr-output.cc (set_real_matrix_format, set_complex_matrix_format): + Move check for fixed_point_format ahead of check for + int_or_inf_or_nan. + + Thu Sep 2 11:54:51 1999 John W. Eaton + + * oct-obj.cc (make_argv): Correctly handle empty strings as args. + + Fri Aug 20 08:17:52 1999 John W. Eaton + + * DLD-FUNCTIONS/quad.cc (quad): Delete unused label. + + * unwind-prot.cc (saved_variable::~saved_variable): Don't try to + delete gen_ptr_value here. + + Mon Aug 16 21:34:33 1999 John W. Eaton + + * lex.l (next_token_is_sep_op): New function. + (handle_close_brace, maybe_unput_comma): Use it. + (have_continuation): Also handle CRLF here. + + Wed Aug 11 16:06:57 1999 John W. Eaton + + * file-io.cc (Ffopen): Make fopen ("filename") work and imply that + MODE = "r". + + Wed Jul 21 15:38:52 1999 John W. Eaton + + * help.cc (display_names_from_help_list): Sort names before + listing them. + (print_symbol_type, Ftype): Also handle built-in constants. + (LIST_SYMBOLS): Correct call to symbol_table::name_list. + (simple_help): List constants here too. List constants and + variables before functions, not after. Sort names before listing + them. + + * variables.cc (do_who): Display built-in constants in a separate + section. + + * error.cc (bind_global_error_variable, clear_global_error_variable): + Call bind_builtin_constant, not bind_builtin_variable to set + __error_text__. + * octave.cc (intern_argv): Likewise, for argv and __argv__. + + * defun.cc (install_builtin_constant): Move function guts to + bind_builtin_constant in variables.cc. + * variables.cc (bind_builtin_constant): New function. + + * symtab.cc (symbol_record::define, symbol_record::variable_reference): + Handle constants the same as functions. + (symbol_record::link_to_builtin_variable): New function. + (symbol_record::define_builtin_const): New function. + (symbol_record::define_as_fcn): Delete unused function. + (symbol_record::read_only_error): + Handle constants the same as variables. + * symtab.h (symbol_record::BUILTIN_CONSTANT): New enum value. + (symbol_record::symbol_type): Increase width to 7 bits. + (symbol_record::symbol_def::is_constant): New function. + (symbol_record::symbol_def::is_builtin_constant): New function. + (symbol_record::is_constant): New function. + (symbol_record::is_builtin_constant): New function. + (SYMTAB_ALL_TYPES): Add symbol_record::BUILTIN_CONSTANT. + * variables.cc (link_to_builtin_variable): Delete unused function. + (link_to_builtin_or_function): Handle built-in constants here too. + + * defun.cc (install_builtin_variable): Delete inst_as_fcn arg. + (install_builtin_constant): New function. + (install_builtin_variable_as_function): Delete unused function. + * defun.h (DEFVAR_INTERNAL): Delete inst_as_fcn arg. + (DEFCONST_INTERNAL): New macro. + * defun.h (DEFVAR): Delete inst_as_fcn arg. + (DEFCONST, DEFCONSTX): Define using DEFCONST_INTERNAL instead of + DEFVAR_INTERNAL. + * data.cc, defaults.cc, error.cc, help.cc, input.cc, lex.l, + load-save.cc, oct-hist.cc, oct-procbuf.cc, ov-fcn.h, + ov-usr-fcn.cc, ov.cc, pager.cc, parse.y, pr-output.cc, + pt-assign.cc, pt-decl.cc, pt-mat.cc, pt-plot.cc, pt-stmt.cc, + toplev.cc, variables.cc: + Change all invocations of DEFVAR to match new definition. + + * data.cc (symbols_of_data): Add DEFCONSTs for true and false. + + Thu Jul 15 10:59:42 1999 John W. Eaton + + * data.cc (Fis_bool, Fis_complex, Fisempty, Fisnumeric, Fis_list, + Fis_map, Fis_struct): Return bool object. + (Fisreal): New function. + + * ov-str-mat.h (octave_char_matrix_str): Only return true if + Vimplicit_str_to_num_ok is also true. + + * DLD-FUNCTIONS/time.cc (Ftime): Print usage message if any + arguments are supplied. + + * variables.cc (symbol_out_of_date): Call octave_time for time stamps. + + * fn-cache.h (octave_fcn_file_name_cache::timestamp): + Now octave_time object. + + * strftime.c: Move to liboctave directory. + * Makefile.in (DIST_SRC): Delete from list. + + * ov-usr-fcn.h (octave_user_function::t_parsed, + octave_user_function::t_checked): Now octave_time objects. + (octave_user_function::time_parsed, + (octave_user_function::time_checked): + Return value is now octave_time object. + (octave_user_function::mark_fcn_file_up_to_date)): + Arg is now octave_time object. + + * ov-fcn.h (octave_function::mark_fcn_file_up_to_date)): + Arg is now octave_time object. + (octave_function::time_parsed, octave_function::time_checked): + Return value is now octave_time object. + + * input.cc (Vlast_prompt_time): Now an octave_time object. + (octave_gets): Call octave_time::stamp() to set Vlast_prompt_time. + + * DLD-FUNCTIONS/time.cc (mk_tm_map, extract_tm, Ftime, Fgmtime, + Flocaltime, Fmktime, Fstrftime): Use new classes defined in + liboctave/oct-time.cc instead of accessing C functions directly. + + Wed Jul 14 17:38:46 1999 John W. Eaton + + * systime.h: Move to liboctave directory. + * Makefile.in (INCLUDES): Delete it from the list + + Tue Jul 13 14:34:57 1999 John W. Eaton + + * sighandlers.cc (sigchld_handler): Only wait for processes in + octave_child_list. + * toplev.cc (cmd_status): Delete unused static variable. + (cmd_death_handler): Delete unused function. + (run_command_and_return_output): Don't add cmd_death_handler to + octave_child_list. Simply extract command exit status from + calling close() on the procstream object. + + Mon Jul 12 22:38:50 1999 John W. Eaton + + * defun.h (DEFUN_MAPPER): Handle new args, d_b_map and c_b_map. + * defun-int.h (DEFUN_MAPPER_INTERNAL): Likewise. + * mappers.cc (install_mapper_functions): Supply new args to + all uses of DEFUN_MAPPER. + * ov-mapper.cc (octave_mapper::apply): Handle mapper functions + that return bool objects. + * ov-mapper.h (octave_mapper::d_b_mapper, octave_mapper::c_b_mapper): + New typedefs. + (octave_mapper::octave_mapper): Handle new mapper function types. + + * DLD-FUNCTIONS/minmax.cc: Do a better job of handling NaNs. + + Sun Jul 11 13:15:17 1999 John W. Eaton + + * pr-output.cc (do_plus_format (ostream&, double)): New function. + (octave_print_internal (ostream&, double, bool)): Use it. + (octave_print_internal (ostream&, const Matrix&, bool, int)): Ditto. + + * pr-output.cc (do_plus_format (ostream&, const Complex&)): + New function. + (octave_print_internal (ostream&, const Complex&, bool)): Use it. + (octave_print_internal (ostream&, const ComplexMatrix&, bool, int)): + Ditto. + + Sun Jun 20 23:04:00 1999 John W. Eaton + + * sysdep.cc: Include sys/ioctl.h if available. + + Sat Jun 19 12:07:16 1999 John W. Eaton + + * variables.cc (do_who): Make pattern and multiple non-option + arguments work. + + Mon Jun 7 09:54:51 1999 John W. Eaton + + * lex.l (next_token_is_bin_op, next_token_is_postfix_unary_op, + handle_number): Delete yytext arg. Change all callers. + (next_token_is_postfix_unary_op): Check the first character + obtained from yyinput before calling it again. + (next_token_is_bin_op): Do a more thorough check. + (handle_identifier): Also enter token in local symbol table if the + following token is a dot and it looks like a binary operator. + (whitespace_in_literal_matrix): Now static. + + * lex.l: Always use unput, not yyunput. + + Fri May 28 11:02:37 1999 John W. Eaton + + * DLD-FUNCTIONS/chol.cc (Fchol): If two output arguments, never + produce error message. + + Thu May 27 18:28:35 1999 John W. Eaton + + * DLD-FUNCTIONS/chol.cc (Fchol): Also return info as second output. + + * DLD-FUNCTIONS/minmax.cc (max (const ComplexMatrix&, const + ComplexMatrix&)): Correct test for real columns only. + (min (const ComplexMatrix&, const ComplexMatrix&)): Likewise. + + Wed Apr 14 12:54:25 1999 John W. Eaton + + * DLD-FUNCTIONS/dassl.cc (Fdassl): Prevent recursive calls. + * DLD-FUNCTIONS/fsolve.cc (Ffsolve): Likewise. + * DLD-FUNCTIONS/lsode.cc (Flsode): Likewise. + * DLD-FUNCTIONS/quad.cc (Fquad): Likewise. + + * file-io.cc (Fsscanf, Ffscanf): Doc fix. + + Sat Mar 27 11:07:51 1999 John W. Eaton + + * ov.h (octave_value::count): New function. + * symtab.cc (symbol_record::dump_symbol_info): New function. + * symtab.cc (symbol_record::symbol_def::dump_symbol_info): Ditto. + * variables.cc (F__dump_symbol_info__): Ditto. + + * pt-misc.cc (tree_parameter_list::clear): New function. + * ov-usr-fcn.h (octave_user_function::clear_args_passed): Ditto. + * ov-usr-fcn.cc (clear_param_list): New function. + (clear_args_passed): New function. + (octave_user_function::do_index_op): Use them to decrement + reference counts on local variables. + + Fri Mar 26 00:51:53 1999 John W. Eaton + + * Makefile.in (libraries): Use the libfoo.a(objects) method of + creating static libs. + + * defaults.cc (symbols_of_defaults): Initialize LOADPATH to + Vload_path, not ":". + + Thu Mar 18 12:09:23 1999 John W. Eaton + + * data.cc (Fisnumeric): Fix typo. + + Thu Mar 4 02:17:04 1999 James Macnicol + + * file-io.cc (Ffread, Ffwrite): Add uint16 and uint32 data types + to doc string. + + Wed Mar 3 11:55:17 1999 John W. Eaton + + * lex.l (handle_string): Allow "" to pass through unchanged if + working on a gset command. + + Tue Mar 2 01:36:29 1999 John W. Eaton + + * variables.cc (Fexist): If a variable isn't defined, only go on + to look for a global by the same name if we are at the top level. + + Fri Jan 29 02:18:36 1999 John W. Eaton + + * version.h (OCTAVE_NAME_AND_VERSION): Say `GNU Octave', not just + Octave. + + Thu Jan 28 21:29:16 1999 John W. Eaton + + * toplev.cc (Fcomputer): Use CANONICAL_HOST_TYPE, not TARGET_HOST_TYPE. + (octave_config_info): Likewise. + * version.h: Ditto. + + * sysdep.cc (Fpause): Flush output before getting user input. + + Wed Jan 27 14:18:29 1999 John W. Eaton + + * Makefile.in (DEFFUN_PATTERN, DEFVAR_PATTERN): Use egrep again. + Make the patterns work with stupid egreps that don't like empty + elements in alternation patterns. + + Fri Jan 22 04:41:48 1999 John W. Eaton + + * load-save.cc (save_ascii_data): Check for string type first, + then range, then the rest. + (save_binary_data): Ditto. + + * pager.cc (more_than_a_screenful): Accept length as second arg. + Handle long lines properly, assuming the terminal wraps long lines. + (octave_pager_buf::do_sync): Accept length of data as second arg. + Use write instead of << to put characters on output stream. + (octave_pager_buf::sync): Don't assume data ends at first NUL. + (octave_diary_buf::sync): Ditto. + + Thu Jan 21 22:15:23 1999 John W. Eaton + + * load-save.cc (save_mat_binary_data): Check for string type + first, then range, then the rest. + + Wed Jan 20 12:01:14 1999 John W. Eaton + + * oct-stream.cc (octave_base_stream::do_scanf): Handle short and + long ints correctly. + + Fri Jan 15 13:04:58 1999 John W. Eaton + + * parse.y (end_error): Handle case of endswitch too. + + * Makefile.in: Use basic regular expressions and grep instead of + egrep to find files that contain DEFVAR, DEFCONST, or DEFUN. + + Wed Dec 9 14:14:11 1998 John W. Eaton + + * Makefile.in (octave): Add $(RDYNAMIC_FLAG) to link command. + + Fri Dec 4 20:26:33 1998 John W. Eaton + + * DLD-FUNCTIONS/time.cc (Fstrftime): Make it work even when not + using the GNU version of strftime, which allows passing NULL for + the buffer to determine the required size of the buffer. + + Wed Dec 2 22:38:40 1998 John W. Eaton + + * utils.cc (file_in_loadpath): Expect argc == 2, not 3. + + Tue Nov 24 23:38:19 1998 Eric Norum + + * mkbuiltins: Also strip off leading `./' from file names. + * mkops: Ditto. + + Tue Nov 24 23:24:26 1998 John W. Eaton + + * strftime.c: Surround everything with #ifdef HAVE_STRFTIME / #endif. + + * lex.h (YY_FATAL_ERROR): Call yy_falta_error after + jump_to_top_level to avoid gcc warning. + + Fri Nov 20 13:34:47 1998 John W. Eaton + + * ov-bool.h, ov-bool.cc (class octave_bool): Derive from + octave_base_scalar and get common functions via derivation. + * ov-scalar.h, ov-scalar.cc (class octave_scalar): Ditto. + * ov-complex.h, ov-complex.cc (class octave_complex): Ditto. + + * ov-base-scalar.h, ov-base-scalar.cc (class octave_base_scalar): + New files for new class definition. Put common scalar data type + stuff here. + * Makefile.in (OV_INCLUDES, OV_SRC): Add them to the lists. + + Thu Nov 19 14:30:25 1998 John W. Eaton + + * dynamic-ld.cc (octave_dynamic_loader::mangle_name): + Prepend underscore here. + (octave_dynamic_loader::load_fcn_from_dot_oct_file): Not here. + + * ov-re-mat.h (octave_matrix_value): Delete experimental code for + handling structure references for things like .rows, .cols, etc. + + Wed Nov 18 01:18:46 1998 John W. Eaton + + * Makefile.in (VAR_FILES): Be more careful about matching. + (DEF_FILES): Likewise. + + * ov-base-mat.h, ov-base-mat.cc, ov-bool-mat.h, ov-bool-mat.cc, + ov-ch-mat.h, ov-ch-mat.cc, ov-cx-mat.h, ov-cx-mat.cc, + ov-re-mat.h, ov-re-mat.cc: Move default definition of all, any, + is_matrix_type, is_numeric_type, valid_as_zero_index, and + do_index_op to base class. + Provide definitions that override the defaults where necessary. + + * mappers.cc: Don't include lo-specfun.h. + + Tue Nov 17 14:35:56 1998 John W. Eaton + + * besselj.cc (Fbesselh, Fairy); New functions. + (Fbesselj, Fbessely, Fbesselk, Fbesseli): Update doc strings. + (do_bessel): Handle additional args. + + Fri Nov 13 14:47:11 1998 John W. Eaton + + * lex.l (NUMBER): Allow hexadecimal constants. + (looks_like_hex): New function. + (handle_number): Check for hexadecimal constants and convert them + to unsigned integer values. + + Thu Nov 12 11:13:24 1998 John W. Eaton + + * input.cc (gnu_readline): Check for EOF from command_editor::readline. + + * ov-str-mat.h, ov-str-mat.cc (class octave_char_matrix_str): + Get common functions via new derivation scheme. + + * ov-bool-mat.h, ov-bool-mat.cc (class octave_bool_matrix): + Derive from octave_base_matrix and get common functions via derivation. + * ov-ch-mat.h, ov-ch-mat.cc (class octave_char_matrix): Ditto. + * ov-cx-mat.h, ov-cx-mat.cc (class octave_complex_matrix): Ditto. + * ov-re-mat.h, ov-re-mat.cc (class octave_real_matrix): Ditto. + + * ov-base-mat.h, ov-base-mat.cc (class octave_base_matrix): New + files for new class definition. Put common matrix data type + stuff here. + + * ov-list.cc (Fnth): New function. + + * ov-list.cc (octave_list::do_index_op): Allow more complex indexing. + + * oct-obj.cc (octave_value_list::index): New function. + (octave_value_list::octve_value_list (Array)): + New private constructor. + + * ov-list.cc (Fsplice): Fix docstring to match. + * oct-obj.cc (octave_value_list::splice): Allow special case + splice (x, length(x)+1, 0, y) to be equivalent to append (x, y). + + * ov-list.cc (Fappend): If an arg is a list, concatenate the lists + instead of appending arg as a single element. + + Wed Nov 11 14:07:27 1998 John W. Eaton + + * load-save.cc (get_mat_data_input_line): New function. + (get_lines_and_columns): Use it here. + (read_mat_ascii_data): And here and do our own reading instead of + using Matrix::operator<<. + + Tue Nov 10 16:12:25 1998 John W. Eaton + + * parse.y (make_constant): Initialize retval to 0. + + * toplev.h (clean_up_and_exit (void)): Delete declaration. + * toplev.cc (do_octave_atexit): Move guts of clean_up_for_exit + here, but ensure that the actions are only executed once. + * octave.cc (main): Don't register cleanup_tmp_files with atexit. + + * ov.h, ov.cc (class octave_value): Use DECLARE_OCTAVE_ALLOCATOR + and DEFINE_OCTAVE_ALLOCATOR for uniform declaration and definition + of allocator functions. Use DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA + and DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA for uniform declaration + and definition of type id functions and data. + * ov-usr-fcn.h, ov-usr-fcn.cc (class octave_user_function): Ditto. + * ov-scalar.h, ov-scalar.cc (class octave_scalar): Ditto. + * ov-re-mat.h ov-re-mat.cc (class octave_matrix): Ditto. + * ov-range.h, ov-range.cc (class octave_range): Ditto. + * ov-mapper.h, ov-mapper.cc (class octave_mapper): Ditto. + * ov-list.h, ov-list.cc (class octave_list): Ditto. + * ov-file.h, ov-file.cc (class octave_file): Ditto. + * ov-fcn.h, ov-fcn.cc (class octave_function): Ditto. + * ov-cx-mat.h, ov-cx-mat.cc (class octave_complex_matrix): Ditto. + * ov-complex.h, ov-complex.cc (class octave_complex): Ditto. + * ov-ch-mat.h, ov-ch-mat.cc (octave_char_matrix): Ditto. + * ov-builtin.h, ov-builtin.cc (class octave_builtin): Ditto. + * ov-bool.h, ov-bool.cc (class octave_bool): Ditto. + * ov-bool-mat.h, ov-bool-mat.cc (octave_bool_matrix): Ditto. + + * ov.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): New macro. + (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Ditto. + + Mon Nov 9 16:12:37 1998 John W. Eaton + + * pr-output.cc (octave_print_internal): Reorder default args for + charMatrix version. + (octave_print_internal): New function for boolMatrix. + + * version.h (OCTAVE_STARTUP_MESSAGE): Note that this is a + development release. + + * toplev.cc (do_octave_atexit): Call flush_octave_stdout here. + (clean_up_for_exit): And here. + + Mon Nov 9 15:20:53 1998 John W. Eaton + + * input.cc (get_user_input): Check retval.length(), not retval.length. + + Sun Nov 8 19:30:33 1998 John W. Eaton + + * pt-assign.cc (tree_simple_assignment::rvalue): If etype is + asn_eq, don't evaluate ult again because retval is just rhs value. + (tree_multi_assignment::rvalue): Likewise. + + Fri Nov 6 12:14:29 1998 John W. Eaton + + * pt-loop.cc (tree_for_command::eval): Move code for string RHS + outside if clause for matrix types. + + * pt-idx.cc: Don't forget to define arg_nm. + Move contstructor here. + * pt-idx.h: From here. + + * data.cc (Fisempty): Also return true for empty strings. + + Wed Nov 4 17:21:41 1998 John W. Eaton + + * ov-base.cc (octave_base_value::rows, octave_base_value::columns, + octave_base_value::length): Delete. + * ov-base.h (octave_base_value::rows, octave_base_value::columns, + octave_base_value::length): Define here. All return -1 if not + defined in a derived class. + + * data.cc (Fis_matrix): Also return true if the arg is a range. + + Tue Nov 3 09:40:24 1998 John W. Eaton + + * data.cc (Fis_bool): New function. + Also add alias for islogical. + + * ov.h (octave_value::is_bool_type): New function. + * ov-base.h (octave_base_value::is_bool_type): Likewise. + * ov-bool.h (octave_bool::is_bool_type): Likewise. + * ov-bool-mat.h (octave_bool_matrix::is_bool_type): Likewise. + + Mon Nov 2 13:36:04 1998 John W. Eaton + + * lex.l (handle_close_brace): Also handle case of ']' followed by + other assignment ops (+=, -=, ...). + + * pt-assign.cc (tree_simple_assignment::rvalue): Correctly handle + return value and printing for operators other than `='. + (tree_multi_assignment::rvalue): Likewise. + + * pt-assign.h (tree_multi_assignment::etype): New data member. + * pt-assign.cc (tree_multi_assignment::rvalue): Use it instead of + assuming `='. + (tree_multi_assignment::oper): New function. + * pt-pr-code.cc (tree_print_code::visit_multi_assignment): Use + it instead of always printing `='. + * parse.y (make_assign_op): Pass expression type to + tree_multi_assignment constructor. + + * Makefile.in (stmp-pic): New target. + ($(PICOBJ)): Depend on stmp-pic, not pic. + (clean): Delete stmp-pic. + + Sun Nov 1 23:24:55 1998 John W. Eaton + + * mappers.cc (install_mapper_functions): Add alias for isfinite. + + Sat Oct 31 08:46:55 1998 John W. Eaton + + * data.cc (Fisnumeric): New function. + + Fri Oct 30 08:39:30 1998 John W. Eaton + + * oct-lvalue.cc (octave_lvalue::do_unary_op): Make it work for + indexed ops too. + * ov.cc (octave_value::unary_op_to_assign_op): New function. + (octave_value::do_non_const_unary_op): New function for indexed ops. + + * parse.y (LEFTDIV_EQ, ELEFTDIV_EQ): New tokens. + (assign_expr): Add rules for them. + (make_assign_op): Handle them here too. + * lex.l: Recognize them. + * ov.h (octave_value::assign_op): Add ldiv_eq and el_ldiv_eq. + * ov.cc (octave_value::assign_op_as_string): Ditto. + (octave_value::op_eq_to_binary_op): Ditto. + (octave_value::assign): Handle OP= style operators with brute force. + (octave_value::simple_assign): New function. + + * parse.y (matrix): Dont' forget to reset + lexer_flags.looking_at_matrix_or_assign_lhs. + + * oct-lvalue.cc (octave_lvalue::assign): Don't call change + function if error occurs. + (octave_lvalue::do_unary_op): If we have an index, fail with message. + + Thu Oct 29 09:27:04 1998 John W. Eaton + + * ov.cc (do_binary_op): Protect against invalid type conversions. + (try_assignment_with_conversion): Likewise. + (do_unary_op): Likewise. + + * ov.h (OV_UNOP_FN, OV_UNOP_OP, OV_UNOP_FN_OP): New macros. + Use them to define not, uminus, transpose, hermitian functions + and operators ! and -. + (OV_BINOP_FN, OV_BINOP_OP, OV_BINOP_FN_OP): New macros. + Use them to define add, sub, mul, div, pow, ldiv, lshift, rshift, + lt, le, eq, ge, gt, ne, el_mul, el_div, el_pow, el_ldiv, el_and, + el_or, struct_ref, functions and operators <, <=, ==, >=, >, !=, + +, -, *, and /. + + * ops.h (CONVDECLX): New macro. + * ov-base.cc (matrix_conv, complex_matrix_conv, string_conv): + Use it to declare these functions. + + * ops.h (CONVDECL, INSTALL_WIDENOP): + Prefix function name with `oct_conv_'. + (INSTALL_BINOP, BINOPDECL): Prefix function name with `oct_binop_'. + (INSTALL_ASSIGNOP, INSTALL_ASSIGNANYOP, ASSIGNOPDECL): + Prefix function name with `oct_assignop_'. + (UNOPDECL, DEFNCUNOP_METHOD, INSTALL_UNOP, INSTALL_NCUNOP): + Prefix function name with `oct_unop_'. + + * ov-str-mat.cc (default_numeric_conversion_function): + Return 0 if conversion fails. + + * parse.y (make_prefix_op, make_postfix_op): Use + octave_value::unary_op enum. + + * pt-unop.cc (tree_prefix_expression::rvalue): Use new unary_op + functions from octave_value and octave_lvalue classes. + (tree_prefix_expression::rvalue): Likewise. + + * pt-unop.cc (tree_unary_expression::oper): Move here. + (tree_prefix_expression::oper, tree_postfix_expression): From here. + + * pt-unop.h (tree_prefix_expression, tree_postfix_expression): + Delete enums. + (tree_unary_expression): Use octave_value::unary_op enum. + * parse.y (make_prefix_op, make_postfix_op): Likewise. + + * oct-lvalue.h (octave_lvalue::do_unary_op): New function. + (octave_lvalue::increment, octave_lvalue::decrement): Delete. + + * ov-typeinfo.h (octave_value_typeinfo::non_const_unary_ops): + New data member. + * ov-typeinfo.h (octave_value_typeinfo::lookup_non_const_unary_op): + New function. + * ov-typeinfo.cc (octave_value_typeinfo::register_non_const_unary_op): + New function. + (octave_value_typeinfo::do_register_non_const_unary_op): Ditto. + (octave_value_typeinfo::do_lookup_non_const_unary_op): Ditto. + + * ov.cc (octave_value::do_non_const_unary_op): New function. + + * Makefile.in (OP_XSRC): Add op-chm.cc and op-range.cc to the list. + + * OPERATORS/op-str-str.cc: Define string matrix unary operators here. + (install_str_str_ops): Install them here. + * ov-bool-mat.h (octave_bool_matrix::transpose, + octave_bool_matrix_value::hermitian): Delete. + + * OPERATORS/op-chm.cc: New file. Define char matrix unary operators. + (install_chm_ops): Install them here. + * ov-ch-mat.h (octave_char_matrix::transpose, + octave_char_matrix_value::hermitian): Delete. + * ops.cc (install_ops): Call install_chm_ops. + + * OPERATORS/op-bm-bm.cc: Define bool matrix unary operators here. + (install_bm_bm_ops): Install them here. + * ov-bool-mat.h (octave_bool_matrix::transpose, + octave_bool_matrix_value::hermitian): Delete. + + * ov-bool.h (octave_bool::not, octave_bool::uminus, + octave_bool::transpose, octave_bool::hermitian): Delete. + + * OPERATORS/op-cs-cs.cc: Define complex scalar unary operators here. + (install_cs_cs_ops): Install them here. + * ov-complex.h (octave_complex::not, octave_complex::uminus, + octave_complex::transpose, octave_complex::hermitian): Delete. + + * OPERATORS/op-cm-cm.cc: Define complex matrix unary operators here. + (install_cm_cm_ops): Install them here. + * ov-cx-mat.h (octave_complex_matrix::not, + octave_complex_matrix::uminus, octave_complex_matrix::transpose, + octave_complex_matrix::hermitian): Delete. + + * OPERATORS/op-m-m.cc: Define matrix unary operators here. + (install_m_m_ops): Install them here. + * ov-re-mat.h (octave_matrix::not, octave_matrix::uminus, + octave_matrix::transpose, octave_matrix::hermitian): Delete. + + * OPERATORS/op-range.cc: New file. Define range unary operators. + (install_range_ops): Install them here. + * ov-range.h (octave_range::not, octave_range::uminus, + octave_range::transpose, octave_range::hermitian): Delete. + * ops.cc (install_ops): Call install_range_ops. + + * OPERATORS/op-s-s.cc: Define scalar unary operators here. + (install_s_s_ops): Install them here. + * ov-scalar.h (octave_scalar::not, octave_scalar::uminus, + octave_scalar::transpose, octave_scalar::hermitian): Delete. + + * ops.h (INSTALL_UNOP, CAST_UNOP_ARG, UNOPDECL, DEFUNOPX, DEFUNOP, + DEFUNOP_OP, DEFUNOP_FN): New macros. + + * ov.h (unary_op_fcn): New typedef. + (octave_value::unary_op): New enum. + * ov.cc (octave_value::octave_value): New function. + + * ov.h (octave_value::not, octave_value::uminus, + octave_value::transpose, octave_value::hermitian, + octave_value::increment, octave_value::decrement): Delete. + + * ov-base.cc (octave_base_value::not, octave_base_value::uminus, + octave_base_value::transpose, octave_base_value::hermitian, + octave_base_value::increment, octave_base_value::decrement): Delete. + + * ov.cc (gripe_unary_op): New function. + (do_unary_op): New function. + * ov-typeinfo.h (octave_value_typeinfo::unary_ops): + New data member. + * ov-typeinfo.cc (octave_value_info::register_unary_op, + octave_value_info::do_register_unary_op, + octave_value_info::lookup_unary_op, + octave_value_info::do_lookup_unary_op): + New functions. + + * ov-list.cc (Fsplice): Use new octave_value::int_value function here. + (octave_list::do_index_op): Likewise. + (octave_list::assign): Likewise. + * toplev.cc (Fquit): Likewise. + * syscalls.cc (Fwaitpid): Likewise. + (Ffcntl): Likewise. + * file-io.cc (do_fread): Likewise. + (do_fwrite): Likewise. + * data.cc (make_diag): Likewise. + (Fsize): Likewise. + (get_dimensions): Likewise. + (Flinspace): + + * ov-base.cc (octave_base_value::int_value): New function. + (octave_base_value::nint_value): Ditto. + * ov.h (octave_value::int_value): Ditto. + (octave_value::nint_value): Ditto. + + * ov-list.cc (octave_list::assign): Fix off-by-one error. + + Wed Oct 28 11:01:37 1998 John W. Eaton + + * load-save.cc (read_mat_ascii_data): Try harder to convert file + name to valid variable name. + + * data.cc (Fisempty, Fis_matrix): New functions. + + * ov-str-mat.h (octave_char_matrix_str::is_matrix_type): New function. + + * OPERATORS/op-list.cc: New file. + * Makefile.in (OP_XSRC): Add it to the list. + + * ov-list.cc (octave_list::assign): New function. + + * ov-typeinfo.h (octave_value_typeinfo::assignany_ops): + New data member. + * ov-typeinfo.cc (octave_value_info::register_assignany_op, + octave_value_info::do_register_assignany_op, + octave_value_info::lookup_assignany_op, + octave_value_info::do_lookup_assignany_op): + New functions. + * ov.cc (octave_value::try_assignment (octave_value::assign_op, + const octave_value_list&, const octave_value&)): If no assignment + operator for particular RHS type exists, try finding one for + generic octave_value as RHS type. + * ops.h (DEFASSIGNANYOP_FN): New macro. + + * ov-list.cc (Fsplice): New function. + * oct-obj.cc (octave_value_list::splice): New function. + + * ov.cc (Vresize_on_range_error): No longer static. + * ov.h (Vresize_on_range_error): Provide extern declaration. + + * oct-procbuf.cc (symbols_of_oct_procbuf): Don't declare static. + + * data.cc (Flength): New function. + * ov.h (octave_value::length): New virtual function. + * ov-base.cc (octave_base_value::length): New function. + (octave_base_value::rows, octave_base_value::columns): Move + definitions here, from ov-base.h. Don't return -1. Instead, + gripe about wrong argument type. + * ov-bool-mat.h (octave_bool_matrix::length): New function. + * ov-bool.h (octave_bool::length): Ditto. + * ov-ch-mat.h (octave_char_matrix::length): Ditto. + * ov-complex.h (octave_complex::length): Ditto. + * ov-cx-mat.h (octave_complex_matrix::length): Ditto. + * ov-list.h (octave_list::length): Ditto. + * ov-range.h (octave_range::length): Ditto. + * ov-re-mat.h (octave_matrix::length): Ditto. + * ov-scalar.h (octave_scalar::length): Ditto. + + Tue Oct 27 22:19:24 1998 John W. Eaton + + * ov-list.cc (octave_list::print_raw): Handle case of empty list. + (octave_list::print_name_tag): Likewise. + + * octave.cc (intern_argv): Built-in variable argv is now a list of + strings instead of a string vector. + Always bind argv, making it an empty list if there are no args. + + Mon Oct 26 08:41:46 1998 John W. Eaton + + * xdiv.cc (mx_leftdiv_conform): Explicitly declare args to be + passed as references to const objects. Fix explicit instantiation + requests to match. + (mx_div_conform): Likewise. + + * pt-unop.h (tree_prefix_expression): Reorder constructor args to + put those with default values last. + (tree_postfix_expression): Likewise. + * parse.y: Change all callers. + + Fri Oct 23 12:07:32 1998 John W. Eaton + + * utils.cc (Ffile_in_loadpath): New function. + + * defaults.cc (Vload_path, Vdefault_load_path): Now static. + + * help.cc (simple_help): Use Vload_path_dir_path here instead of + trying to reconstruct it from Vload_path. + * fn-cache.cc (octave_fcn_file_name_cache::do_list): Likewise. + (octave_fcn_file_name_cache::update): Likewise. + + * defaults.cc (octave_loadpath): Construct Vload_path_dir_path + using Vdefault_load_path. + (set_default_path): Likewise. + + * defaults.h, defaults.cc (maybe_add_default_load_path): Delete. + + * defaults.cc (Vdefault_load_path): New static variable. + (set_default_path): Set it. + (maybe_add_default_load_path): Use it. + (symbols_of_defaults): Add DEFCONST for DEFAULT_LOADPATH. + Thanks to Rafael Laboissiere . + + * defaults.cc (set_default_path): If OCTAVE_PATH is set in the + environment, call maybe_add_default_load_path on it. + + Tue Oct 20 20:58:04 1998 John W. Eaton + + * defaults.cc (maybe_add_default_load_path): If LOADPATH contains + an embedded "::", insert the default path there too. + + Fri Oct 16 00:52:15 1998 John W. Eaton + + * parse.y (in_matrix_or_assign_lhs): New subroutine for lexical + feedback. + (matrix): Use it. + (assign_lhs): Ditto. + * lex.h (lexical_feedback::looking_at_matrix_or_assign_lhs): New + data member. + * lex.l (handle_identifier): Use it to handle keywords like `cd' + as variables in contexts like [ab, cd] = foo (). + + * ov-str-mat.h + (octave_char_matrix_str::octave_char_matrix_str (char c)): + New constructor. + * ov-ch-mat.h (octave_char_matrix::octave_char_matrix (char c)): + New constructor. + * ov.cc (octave_value::octave_value (char c): New constructor. + + * pt-loop.cc (tree_simple_for_command::eval): Handle case of RHS + as string. + + Thu Oct 15 00:56:47 1998 John W. Eaton + + * DLD-FUNCTIONS/rand.cc: Declare Fortran subroutines as returning + int, not int*. + + Wed Oct 14 23:51:31 1998 Georg Thimm + + * load-save.cc (Vcrash_dumps_octave_core): New static variable. + (save_user_variables): Only save variables if + Vcrash_dumps_octave_core is true. + (symbols_of_load_save): Add DEFVAR for it here. + (crash_dumps_octave_core): New function. + * octave.cc (maximum_braindamage): Bind crash_dumps_octave_core to + 0.0 here. + + Tue Oct 13 22:05:55 1998 John W. Eaton + + * input.cc (read_readline_init_file): New function. + + Thu Oct 8 13:47:55 1998 John W. Eaton + + * oct-procbuf.h (octave_procbuf::wstatus): New data member. + Initialize in constructors. + (octave_procbuf::wait_status): New member function. + * oct-procbuf.cc (octave_procbuf::sys_close): Use class data + member wstatus, not local variable. + * procstream.cc (procstreambase::close): Don't call sys_close directly. + Get subprocess exit status by calling wait_status for our procbuf. + * pt-plot.cc (close_plot_stream): Send "quit" command to gnuplot + before deleting plot_stream. + + Thu Oct 1 22:39:44 1998 John W. Eaton + + * data.cc (Fis_complex): New function. + + Fri Sep 25 11:50:44 1998 John W. Eaton + + * load-save.cc (write_header): Rename from write_binary_header. + Also write header for Octave ASCII files. + + * load-save.cc (Fsave): Implement -append option. + + * defaults.cc (Frehash): New function. + + Fri Sep 25 11:50:44 1998 John W. Eaton + + * help.cc (help_from_info): Improve error message in case that + info doesn't work. + + Thu Sep 24 10:48:12 1998 John W. Eaton + + * Makefile.in (DLD_XSRC): Replace qzval.cc with qz.cc + + * DLD-FUNCTIONS/balance.cc: Update from A. S. Hodel + . + + * DLD-FUNCTIONS/qz.cc: New file. + + * DLD-FUNCTIONS/qzval.cc: Delete. + + * parse.y (plot_command1): Don't allow it to be empty. + (plot_command): Handle simple `PLOT' and `PLOT ranges' as special + cases here. + + Wed Sep 23 21:10:08 1998 John W. Eaton + + * lex.l: Change {SNLCMT}*\n{SNLCMT}* pattern + to {S}*{COMMENT}{SNLCMT}* | {S}*{NL}{SNLCMT}*. + + Fri Sep 4 10:50:00 1998 John W. Eaton + + * file-io.cc (Ffwrite): Fix doc string. + + Wed Sep 2 16:22:23 1998 John W. Eaton + + * input.cc (match_sans_spaces): Make it work. + + * toplev.cc (quit): Require nargout == 0. + + * input.cc (get_user_input): Only try matching "exit", "quit", and + "return" if debugging. + + Tue Sep 1 12:50:24 1998 John W. Eaton + + * octave.cc: Use -H as single character equivalent of --no-history. + + Sat Aug 29 12:23:12 1998 John W. Eaton + + * oct-obj.cc (octave_value_list::make_argv): If some values are + string vectors, insert all the elements, not just the first. + + Tue Aug 18 16:39:50 1998 John W. Eaton + + * oct-stream.cc (octave_base_stream::do_gets): Accept last line of + file even if it doesn't end in a newline character. + + Tue Aug 18 16:25:49 1998 Mumit Khan + + * xdiv.cc (mx_leftdiv_conform, mx_div_conform): Instantiate correct + templates. + + Thu Jul 30 00:37:43 1998 John W. Eaton + + * pt-loop.cc (tree_for_command::eval): Check for range first. + If error occurs when extracting matrix value, return early. + Don't bother to check for string type. + + * ov-ch-mat.h (octave_char_matrix::is_real_matrix): New function. + + Tue Jun 23 15:09:54 1998 John W. Eaton + + * parse.y (clear_current_script_file_name): New function. + (parse_fcn_file): Bind current_script_file_name while script is + executing. Use unwind_protect to clear it once the script is + finished. + + * pt-plot.cc (Fgraw): New function. + + Mon Jun 22 22:13:38 1998 John W. Eaton + + * variables.cc (is_valid_function): Provide version that takes + function name as string. + + * parse.y (binary_expr): Fix thinko that resulted in incorrect + evaluation of -x^y. Thanks to Richard Allan Holcombe + . + (feval): Don't attempt to copy nonexistent arg names. + + Mon Jun 22 21:35:50 1998 Richard Allan Holcombe + + * xpow.cc (xpow): Improve efficiency for matrix^(scalar int) case. + + Thu Jun 4 12:42:46 1998 John W. Eaton + + * ov-usr-fcn.cc (octave_user_function::octave_all_va_args): + If num_args_passed < num_named_args, create zero length list. + + Thu May 14 16:23:15 1998 John W. Eaton + + * DLD-FUNCTIONS/getrusage.cc: Include sys/types.h too. + + Mon May 11 00:38:45 1998 John W. Eaton + + * pager.cc (Fdiary): Don't forget to set write_to_diary file if + just given a file name. + + * input.cc (octave_gets): Only send new line character to + octave_diary if current_input_line is empty or doesn't already end + with a new line character.. + Don't send input from function files or scripts to octave_diary. + + Sun May 3 19:54:38 1998 John W. Eaton + + * lex.l (reset_parser): Also call yyrestart if forced_interactive + is true, but not if input_from_startup_file is true. + + Tue Apr 28 14:06:20 1998 John W. Eaton + + * oct-procbuf.cc (Vkluge_procbuf_delay): New static variable. + (kluge_procbuf_delay): New function. + (symbols_of_oct_procbuf): New function. + (octave_procbuf::open): Delay Vkluge_procbuf_delay microseconds + after forking. + + Thu Apr 23 15:41:08 1998 John W. Eaton + + * defaults.cc (Vload_path_dir_path): New variable. + * utils.cc (file_in_path): Use it. + + * utils.cc (search_path_for_file): Undo previous change. + (file_in_path): Undo previous change. + * defaults.cc (loadpath): Undo previous change. Tilde expansion + is once again handled correctly by the code in + liboctave/pathsearch.cc. + + Mon Apr 20 21:50:34 1998 John W. Eaton + + * data.cc (get_dimensions): Allow zeros ([], 3) to work, for + compatibility with Matlab. + + * dynamic-ld.cc [WITH_DL && ! HAVE_DLFCN_H]: Add declarations for + dlopen, dlerror, dlsym, and dlclose. + + * octave.gperf: Handle __FILE__ and __LINE__. + * lex.l (is_keyword): Likewise. + * Makefile.in (oct-gperf.h): Pass -D option to gperf. + Postprocess output of gperf to convert name of static variable + from lookup to gperf_lookup, to avoid conflict with our function + of the same name defined in variables.cc. + + Sat Apr 18 20:17:10 1998 John W. Eaton + + * help.cc (USE_GNU_INFO): Delete uses of this macro. + + Thu Apr 16 01:00:12 1998 John W. Eaton + + * dynamic-ld.cc: Only include dlfcn.h if HAVE_DLFCN_H. + + Wed Apr 15 01:03:05 1998 John W. Eaton + + * input.cc (Vlast_prompt_time): New global variable. + (octave_gets): Set it. + * ov-fcn.h (octave_function::time_checked): New virtual function + (octave_function::mark_fcn_file_up_to_date): Ditto. + * ov-usr-fcn.h (octave_user_function::time_checked): New function. + (octave_user_function::mark_fcn_file_up_to_date): Ditto. + (octave_user_function::t_checked): New data member. + * variables.cc (symbol_out_of_date): Only check file time stamp if + a prompt has been printed since the last time check. + + * pt-plot.h, pt-plot.cc (subplot_axes): New class. + (subplot): Handle axes. + (Vgnuplot_command_axes): New static variable. + (gnuplot_command_axes): New function. + (symbols_of_pt_plot): DEFVAR gnuplot_command_axes. + * pt-walk.h (tree_walker::visit_subplot_axes): New virtual function. + * parse.y (plot_options): Handle axes. + * lex.l (plot_axes_token): New function. + (is_keyword): Use it. + (is_plot_keyword): Recognize "axes" and "axis". + * lex.h (class lexical_feedback): New field, in_plot_axes. + (lexical_feedback::init): Reset it. + + Tue Apr 14 23:32:27 1998 John W. Eaton + + * parse.y (parse_fcn_file): New arg, force_script. Change callers. + + Fri Apr 10 11:01:27 1998 John W. Eaton + + * help.cc (type): Also print values of variables. + + Wed Apr 8 01:00:58 1998 John W. Eaton + + * pr-output.cc (set_format): Set scale to 1.0 if all elements are + int or inf or nan. + + * parse.y (Vwarn_future_time_stamp): New variable. + (symbols_of_parse): Add DEFVAR for it. + (warn_future_time_stamp): New function. + (frob_function_def): Maybe warn about files with future time stamps. + + Thu Apr 2 20:43:45 1998 John W. Eaton + + * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): In + error messages, print element numbers starting with 1, not 0. + + Sat Mar 28 15:25:44 1998 John W. Eaton + + * toplev.cc (clean_up_for_exit): New function. + (clean_up_and_exit): Use it. + * sighandlers.cc (my_friendly_exit): Call it instead of + clean_up_and_exit, then do default action for signal. + + * sighandlers.cc (octave_new_handler): Call my_friendly_exit with + signal set to SIGABRT if it is defined, or -1 otherwise. + + * error.cc (verror): Fix thinko in attempt to skip `error: ' tag + when buffering error messages. + * pt-except.cc (tree_try_catch::eval): Reset buffer_error_messages + here if just discarding unwind_protect frame. + + Wed Mar 18 12:35:18 1998 John W. Eaton + + * xpow.cc (elem_xpow): For real-scalar .^ matrix case, result is + complex only if real-scalar is negative and matrix has some + non-integer values. + + Tue Mar 17 17:47:50 1998 John W. Eaton + + * pt-plot.cc (Vgnuplot_command_plot, Vgnuplot_command_replot, + Vgnuplot_command_splot, Vgnuplot_command_using, + Vgnuplot_command_with, Vgnuplot_command_title, + Vgnuplot_command_end): New static variables. + (symbols_of_pt_plot): DEFVAR them. + (gnuplot_command_plot, gnuplot_command_replot, + gnuplot_command_splot, gnuplot_command_using, + gnuplot_command_with, gnuplot_command_title, + gnuplot_command_end): New functions. + (open_plot_stream, send_to_plot_stream, tree_plot_command::eval, + subplot_using::print, subplot_style::print, subplot::print, + do_external_plotter_cd, Fgset, Fgshow): Use them instead of the + GPLOT_CMD_PLOT, GPLOT_CMD_REPLOT, GPLOT_CMD_SPLOT, + GPLOT_CMD_USING, GPLOT_CMD_WITH, GPLOT_CMD_TITLE, and + GPLOT_CMD_END macros. + + Fri Feb 27 12:25:27 1998 John W. Eaton + + * help.cc (additional_help_message): Fix www address. + + Tue Feb 24 00:42:59 1998 John W. Eaton + + * help.cc (simple_help): Put additional help message first. + (additional_help_message): Add information about web site and + mailing list. + + Fri Feb 20 00:41:06 1998 John W. Eaton + + * pt-plot.cc (GPLOT_CMD_REPLOT): Clear before replot. + + * Makefile.in: Better handling of lib flags for linking. + + Thu Feb 19 21:14:30 1998 John W. Eaton + + * pt-decl.cc (Vinitialize_global_values): New static variable. + (initialize_global_variables): New function. + (symbols_of_pt_decl): New function. + DEFVAR Vinitialize_global_values and initialize_global_variables. + (tree_global_command::do_init): If initialize_global_variables is + not true and the variable doesn't have an explicit initializer, don't + initialize it. If we are giving it a default value, use the value + of the variable defualt_global_variable_value. + * octave.cc (maximum_braindamage): Set default_global_variable_value + and initialize_global_variables to Matlab-compatible values. + + Wed Feb 18 04:35:31 1998 John W. Eaton + + * DLD-FUNCTIONS/besselj.cc: Rename from bessel.cc. + * Makefile.in (DLD_XSRC): Likewise. + + * syscalls.cc (Fvfork): Delete. + + * oct-procbuf.cc: Just use fork. + + * parse.y (feval): Provide version that takes function name + separate from other args. + * parse.h: Declare it. + + * oct-procbuf.cc (octave_procbuf::open): Move declaration of + child_std_end outside of child scope and declare volatile. + + Mon Feb 16 15:04:28 1998 John W. Eaton + + * parse.y: Include cstdio, for SEEK_SET. + + Thu Feb 12 22:07:00 1998 John W. Eaton + + * system.c: New file. + * Makefile.in (SOURCES): Add it to the list. + + Fri Feb 6 01:23:18 1998 John W. Eaton + + * oct-stream.cc (octave_base_stream::file_number): Rename from fileno. + Change all uses. + + * fsolve.cc (fsolve_option_table): Add missing & to function names. + + Thu Feb 5 02:27:18 1998 John W. Eaton + + * dirfns.cc (Fls): If first attempt at reading process output + fails, sleep once and try again. + * toplev.cc (run_command_and_return_output): Likewise. + + * oct-procbuf.cc (octave_procbuf::open): Use vfork if it is available. + + * syscalls.cc (Fvfork): New function. + + * ov-bool-mat.cc: Only declare assign function if + CXX_NEW_FRIEND_TEMPLATE_DECL is not defined. + + * ov-base.h, ov-bool-mat.h, ov-bool.h, ov-ch-mat.h, ov-complex.h, + ov-cx-mat.h, ov-range.h, ov-re-mat.h, ov-scalar.h: Handle default + args for *_value functions consistently. + + * symtab.cc (maybe_list_cmp_fcn): Declare args as void*, not + void**, then use X_CAST. + + * OPERATORS/op-s-cm.cc: Include mx-cm-s.h. + + * defun-int.h: Include ov-builtin.h, ov-mapper.h, and symtab.h. + (install_builtin_mapper, install_builtin_function, + install_builtin_variable) Use specific types rather than void * in + declaration. + * defun.cc (install_builtin_mapper, install_builtin_function, + install_builtin_variable): Likewise. Eliminate casts. + + * load-save.cc (read_binary_data, read_mat_file_header, + save_binary_data): Use X_CAST, not static_cast. + * unwind-prot.h (unwind_protect::save_ptr): Likewise. + * Map.cc (goodCHptr, index_to_CHptr, CHptr_to_index): Likewise. + * dynamic-ld.cc (octave_dlopen_dynamic_loder::resolve_reference): + Likewise. + + * pt-mat.cc (tm_const::operator bool ()): + (tm_row_const::operator bool ()): Likewise. + * oct-stream.cc (printf_value_cache::operator bool ()): Likewise. + (scanf_format_list::operator bool ()): Likewise. + (printf_format_list::operator bool ()): Likewise. + (octave_stream::operator bool ()): Likewise. + + Wed Feb 4 13:08:29 1998 John W. Eaton + + * DLD-FUNCTIONS/minmax.cc: Include cmath, not oct-math.h. + + * syscalls.cc (Fdup2): Convert stream to actual system file id. + + * oct-stream.cc (octave_base_stream::fileno, octave_stream::fileno): + New functions. + + Tue Feb 3 00:24:44 1998 John W. Eaton + + * defaults.cc (exec_path): Append Vbin_dir to std_path. + + * octave.cc (initialize_pathsearch): Set TEXMFDBS, not TEXMF. + Look for OCTAVE_DB_PATH in environment. + Simplify using Vdata_dir and Vlibexec_dir. + + * defaults.h.in (Vdata_dir, Vlibexecdir): Declare new vars. + defaults.cc: Define them. + (set_default_data_dir, set_default_libexecdir): New functions. + (install_defaults): Call them. + + * defaults.h.in (OCTAVE_LIBEXECDIR): Define. + + Mon Feb 2 02:43:16 1998 John W. Eaton + + * Makefile.in (install, uninstall): Use $(octlibdir), not $(libdir). + Use mk-libdir-link. + + * defaults.h.in (OCTAVE_OCTLIBDIR): Substitute value. + (Vlib_dir): Delete declaration. + * defaults.cc (Vlib_dir): Delete. + (set_default_lib_dir): Delete. + (install_defaults): Don't call set_default_lib_dir. + (set_default_info_prog): If oct_info_prog is empty, set default to + "info" -- we expect it to be somewhere in the user's path. + + * defun.h (DEFCONST, DEFCONSTX): Eliminate inst_as_fcn and chg_fcn + args. Always pass true for inst_as_fcn and 0 for chg_fcn to + DEFVAR when creating built-in values like `e' or `stderr' that can + be redefined. Change all uses. + + * help.cc (Ftype): Handle script files too. + (Fwhich): Likewise. + + Sat Jan 31 00:00:26 1998 John W. Eaton + + * ov-ch-mat.cc (octave_char_matrix::is_true): Make it work. + * ov-str-mat.h, ov-str-mat.cc (octave_char_matrix_str::is_true): + Delete. + + * load-save.cc (read_ascii_data): Allow strings of length 0. + If we don't find data on the first call, fail with error message. + (do_load): Pass count of items read to read_ascii_data. + Allow `load foo xyz' to work when foo contains only numbers. + + Fri Jan 30 23:46:42 1998 John W. Eaton + + * ov-str-mat.h (octave_char_matrix_str::all): Delete. + (octave_char_matrix_str::any): Delete. + * ov-ch-mat.h (octave_char_matrix::all, octave_char_matrix::any): + Call charMatrix::all, charMatrix::any. + + Thu Jan 29 16:25:46 1998 John W. Eaton + + * load-save.cc (read_mat_binary_data): Handle third digit of MOPT + as flag indicating row or column major ordering. + + Wed Jan 28 00:18:17 1998 John W. Eaton + + * DLD-FUNCTIONS/dassl.cc (lsode_option_table): + Add missing & to function names. + * DLD-FUNCTIONS/lsode.cc (lsode_option_table): Likewise. + * DLD-FUNCTIONS/quad.cc (quad_option_table): Likewise. + + * Makefile.in (oct-gperf.h): Add -G option to gperf. + + * load-save.cc (get_save_type): Add `UL' and `L' suffixes to large + constant values. For LS_INT, use <= and >= for comparison. + + Mon Jan 26 13:17:59 1998 John W. Eaton + + * ov-usr-fcn.cc (Vmax_recursion_depth): New static variable. + (max_recursion_depth): New fucnction + (symbols_of_ov_usr_fcn): DEFVAR max_recursion_depth. + (octave_user_function::do_index_op): Check Vmax_recursion_depth. + + Thu Jan 22 13:45:26 1998 John W. Eaton + + * dynamic-ld.cc (make_dynamic_loader): Fix typo. + + Tue Jan 20 17:02:19 1998 John W. Eaton + + * variables.cc (Fexist): If local symbol is undefined, check + global table. + + * pr-output.cc (pr_max_internal): Initial value for result is + -DBL_MAX, not DBL_MIN. + + Thu Jan 8 11:54:33 1998 John W. Eaton + + * xpow.cc (elem_xpow): If second arg of pow is complex, make sure + first arg is also complex. + + * symtab.cc (symbol_table::rename): Properly insert new item at + the front of the list to avoid losing the rest of the items. + + Thu Dec 11 23:30:03 1997 John W. Eaton + + * variables.cc (Fclear): Increment index to skip -x arg. + + Tue Dec 9 02:45:35 1997 John W. Eaton + + * Makefile.in (INCLUDES): Don't forget Pix.h. + + * BaseSLList.cc: Don't include nonstandard libg++ header files. + + Sun Nov 30 14:58:56 1997 John W. Eaton + + * pr-output.cc: Include cmath, not oct-math. + * sysdep.cc: Likewise. + + * DLD-FUNCTIONS/bessel.cc: New file. + * Makefile.in (DLD_XSRC): Add it to the list. + + Thu Nov 27 23:28:59 1997 John W. Eaton + + * lex.l (handle_string): Constructor for string class takes + (size_t, char) args, not (char, size_t). + + Wed Nov 26 00:39:34 1997 John W. Eaton + + * Makefile.in (OCTAVE_LIBS): Include $(SPECIAL_MATH_LIB) just + ahead of -lcruft. + + Thu Nov 20 15:16:22 1997 John W. Eaton + + * octave.cc (maximum_braindamage): Bind implicit_num_to_str_ok to 1. + * pt-mat.cc (Vimplicit_num_to_str_ok): New static variable. + (implicit_num_to_str_ok): New function. + (symbols_of_pt_mat): DEFVAR implicit_num_to_str_ok. + (tm_row_const::some_str): New data member. + (tm_row_const::some_strings_p): New function. + (tm_row_const::init): Set some_str. + (tm_const::some_str): New data member. + (tm_const::some_strings_p): New function. + (tm_const::init): Set some_str. + (tree_matrix::eval): If Vimplicit_num_to_str_ok is true and some + of the elements are strings, force a string conversion before + returning. + + * parse.y (fold, finish_colon_expression, finish_matrix): + If an error occurs, return the original expression. + Use unwind_protect to restore error_state. + + * ov-ch-mat.h (octave_char_matrix::convert_to_str): Result is + char_matrix_str, not just char_matrix. + + Wed Nov 19 02:05:40 1997 Mumit Khan + + * DLD-FUNCTIONS/filter.cc: Don't include extern template decls if + CXX_NEW_FRIEND_TEMPLATE_DECL is defined. + * ov-cx-mat.cc: Likewise. + * ov-re-mat.cc: Likewise. + * ov-str-mat.cc: Likewise. + + * ov-cx-mat.h (octave_complex_matrix::decrement, + octave_complex_matrix): Use explicit Complex constructor. + + Wed Nov 19 00:08:13 1997 John W. Eaton + + * pt-decl.cc (tree_global_command::do_init): Initialize global + values to `[]'. Only perform explicit initialization once. + + Tue Nov 18 04:27:55 1997 John W. Eaton + + * pr-output.cc (Vfixed_point_format): New variable. + (fixed_point_format): New fucntion. + (symbols_of_pr_output): Add DEFVAR for fixed_point_format. + (set_real_matrix_format): Handle fixed point format + (set_complex_matrix_format): Handle fixed point format + (set_format): New arg, scale in Matrix, ComplexMatrix, Range versions. + (pr_scale_header): New function. + (octave_print_internal): Handle fixed point format in Matrix, + ComplexMatrix, and Range versions. + * octave.cc (maximum_braindamage): Set fixed_point_format to 1.0. + + * utils.cc (do_string_escapes): Move here, from lex.l. + Arg is now const string& instead of char*. + Return new string object instead of modifying arg in place. + (Fdo_string_escapes): New function. + * lex.l (handle_string): Use new version of do_string_escapes. + + * lex.l (Vbackslash_escapes): Delete. + (backslash_escapes): Delete. + (do_string_escapes): Undo previous change. + (eat_whitespace, eat_continuation): Undo previous change. + (handle_string): Undo previous change. + (symbols_of_lex): Undo previous change. + * octave.cc (maximum_braindamage): Undo previous change. + + Fri Nov 14 01:53:13 1997 John W. Eaton + + * parse.y (eval_string (const string&, bool, int&, int)): No + longer static. + * parse.h: Provide declaration. + * input.cc (get_user_input (const octave_value_list&, bool, int)): + New arg, nargout. Pass it to eval_string. + (keyboard): Pass nargout = 0 to get_user_input. + (input): Pass nargout to get_user_input. + + * input.cc (get_user_input (const octave_value_list&, bool)): + Return octave_value_list() if user enters `quit', `exit', or `return'. + If debugging, let eval_string handle the printing chores and + reset error_state before asking for more input. + + * input.cc (Fkeyboard): Unconditionally turn on history here. + + * lex.l (have_continuation, have_ellipsis_continuation): Declare + arg as bool, not int. Change callers. + + * lex.l (Vbackslash_escapes): New static variable. + (backslash_escapes): New function. + (do_string_escapes): Return immediately if ! Vbackslash_escapes. + (eat_whitespace, eat_continuation): Only call have_continuation if + Vbackslash_escapes. + (handle_string): Backslash is only special if Vbackslash_escapes. + (symbols_of_lex): Add DEFVAR for backslash_escapes. + * octave.cc (maximum_braindamage): Set backslash_escapes to 0. + + Thu Nov 13 16:20:40 1997 John W. Eaton + + * variables.cc (Fexist): Also return 2 if NAME is a regular file + somewhere in the LOADPATH. + + * data.cc (sumsq): Fix doc string. + + * parse.y (Fsource): Call parse_fcn_file, not parse_and_execute. + + Tue Oct 7 16:51:01 1997 John W. Eaton + + * defun-int.h (DEFINE_FUN_INSTALLER_FUN): Set installed to true + after installing the function. + + Thu Sep 25 10:17:26 1997 John W. Eaton + + * DLD-FUNCTIONS/filter.cc (Ffilter): Return second output value + even when called with only 3 arguments. + + Mon Sep 22 16:44:27 1997 John W. Eaton + + * DLD-FUNCTIONS/rand.cc (do_rand): Print error if first of two + args is a string but doesn't match "seed". + (Frand, Frandn): Fix doc string. + + Mon Aug 25 10:42:07 1997 John W. Eaton + + * input.cc (get_user_input): Return an empty string if the user + just types RET. + + Thu Jul 31 22:59:04 1997 John W. Eaton + + * lex.l : Ensure that we handle words that begin with + single or double quotes as strings. + + Thu Jul 17 13:06:48 1997 Klaus Gebhardt + + * DLD-FUNCTIONS/rand.cc (Frand): Use F77_XFCN to call getsd, + setsd, setall, setcgn, dgenunf, and dgennor since they can call + XSTOPX. + + Mon Jul 14 12:54:23 1997 John W. Eaton + + * dynamic-ld.cc (octave_dynamic_loader::load_fcn_from_dot_oct_file): + If first attempt to load function fails, prepend and underscore + and try again. + + * Makefile.in (install-inc): If defaults.h, oct-conf.h, or + oct-gperf.h don't exist in the current directory, look in $(srcdir). + + Mon Jul 7 21:14:07 1997 John W. Eaton + + * DLD-FUNCTIONS/qr.cc (Fqr): Correctly handle nargout == 0. + + Wed Jul 2 16:47:09 1997 John W. Eaton + + * matherr.c: New file. Move matherr function here. + * sysdep.cc: From here. + * Makefile.in (DIST_SRC): Add matherr.c to the list. + + * error.cc (handle_message): Avoid bug in g++ snapshot. + + Thu Jun 26 22:04:09 1997 John W. Eaton + + * utils.cc (file_in_path): Add default load path to PATH arg if + it begins or ends with a colon. + + Wed Jun 25 13:31:06 1997 John W. Eaton + + * oct-lvalue.h (octave_lvalue::struct_elt_ref): Ensure val is unique. + + Fri Jun 20 12:33:35 1997 John W. Eaton + + * toplev.cc (cmd_death_handler): New function. + (run_command_and_return_output): Insert pid of command in + octave_child_list along with pointer to cmd_death_handler so we + can get the exit status without having to block SIGCHLD. + (cleanup_iprocstream): Remove pid of command from octave_child_list. + + Sun Jun 15 16:11:13 1997 John W. Eaton + + * OPERATORS/op-cs-s.cc (ldiv): Doh, v1 is complex, v2 is real. + + * Makefile.in (DISTFILES): Add mkops to the list. + (dist): Correctly link files in DLD-FUNCTIONS, OPERATORS, and + TEMPLATE-INST subdirectories. + + Fri Jun 6 04:30:57 1997 John W. Eaton + + * DLD-FUNCTIONS/npsol.cc, DLD-FUNCTIONS/qpsol.cc, + DLD-FUNCTIONS/fsqp.cc: Delete. + * Makefile.in (DLD_XSRC): Remove them from the list. + + * utils.cc (search_path_for_file): New arg, do_tilde_expansion. + If TRUE, perform tilde expansion on path before searching. + (file_in_path): Call search_path_for_file with do_tilde_expansion + set to false, since we've already performed tilde expansion on the + load path. + + * defaults.cc (loadpath): Perform tilde expansion here. + + Thu Jun 5 01:42:39 1997 John W. Eaton + + * Makefile.in: Make building of static library optional. + (liboctave.$(SHLEXT_VER)): Add $(SONAME_FLAGS) to command. + + * dynamic-ld.cc (octave_shl_load_dynamic_loader::resolve_reference): + Call shl_findsym with type set to TYPE_UNDEFINED. + + * Makefile.in (stamp-picdir): Delete. + (pic): New target. Don't worry so much about creating pic + directory only when it is really needed. + (stamp-interp): Delete. + (libraries): New target. Depend on shared library directly. + + Wed Jun 4 00:09:42 1997 John W. Eaton + + * octave.cc (main): Call dir_path::set_program_name here. + + Tue Jun 3 16:47:34 1997 John W. Eaton + + * variables.cc (symbol_out_of_date): Make it work again. + + * parse.y (parse_and_execute): Move here from toplev.cc + (default_eval_print_flag): Likewise. + (safe_fclose): Likewise. + (eval_string): Likewise. + (Fsource): Likewise. + (Ffeval): Likewise. + (feval): Likewise. + (Feval): Likewise. + (symbols_of_parse): Define default_eval_print_flag here instead of + in varaibles.cc. + (looks_like_octave_copyright): Move here from variables.cc + (gobble_leading_whitespace): Likeiwse. + (is_function_file): Likewise. + (restore_input_stream): Likewise. + (parse_fcn_file): Likewise. + (load_fcn_from_file): Likewise. + (get_help_from_file): Likewise. + + * toplev.cc (syms_of_toplev): Define argv, program_name, and + program_invocation_name here instead of in variables.cc. + + * parse.h (line_editing): Move here from toplev.h. Now bool, not int. + (reading_startup_message_printed) Likewise. + (input_from_startup_file): Likewise. + (input_from_command_line_file): Likewise. + + * load-save.cc: Use bool instead of int where appropriate. + + * input.h (enum echo_state): Move here from variables.h. + (Vecho_executing_commands): Likewise. Now bool, not int. + * input.cc (echo_executing_commands): Move here from variables.cc. + (symbols_of_input): Define echo_executing_commands here instead of + in variables.cc. + + * octave.cc (program_invocation_name): Don't define. + (intern_argv): Don't set program_invocation_name here. + (main): Call octave_env::set_program_name here, not in intern_argv. + + * toplev.cc (quitting_gracefully): Move here from octave.h and + make static bool instead of extern int. + + * error.cc (bind_global_error_variable, clear_global_error_variable): + Move here from variables.cc. + (symbols_of_error): Define error_text here instead of in variables.cc. + + * pager.cc (write_to_diary_file): Now bool, not int. + (really_flush_to_pager): Likewise. + (flushing_to_pager): Likewise. + * sighandlers.h (can_interrupt): Likewise. + * error.h (buffer_error_messages): Likewise. + * oct-hist.h (input_from_tmp_history_file, Vsaving_history): Likewise. + * input.h (forced_interactive): Likewise. + (get_input_from_eval_string): Likeiwse. + (reading_script_file): Likeiwse. + (reading_fcn_file): Likeiwse. + (interactive): Likewise. + + * unwind-prot.cc (saved_variable::saved_variable (bool *, bool)): + Set type_tag to boolean, not int. + + Mon Jun 2 00:40:10 1997 John W. Eaton + + * variables.h (Octave_builtin_fcn): Delete typedef. + + * help.cc (make_name_list): Move here from variables.cc. + (keyword_help, names): Now static. + (struct help_list): Move declaration here from help.h. + + * oct-hist.cc (Vhistory_file, Vhistory_size, Vsaving_history): + Move here from variables.cc. + (symbols_of_oct_hist): New function. + + * version.h: Protect against multiple inclusion. + + * defun.cc (check_version): New function. + * defun-int.h (DEFINE_FUN_INSTALLER_FUN): Use it. + + * help.h, help.cc (additional_help_message): Now extern. + (operator_help): Now static. + + * defun.cc (print_usage): Move here from help.cc + * DLD-FUNCTIONS/*.cc, data.cc, dirfns.cc, file-io.cc, input.cc, + load-save.cc, octave.cc, ov-list.cc, ov-typeinfo.cc, + ov-usr-fcn.cc, pager.cc, pr-output.cc, pt-plot.cc, strfns.cc, + syscalls.cc, sysdep.cc, utils.cc, toplev.cc: + Don't include help.h. + + * TEMPLATE-INST/Array-sym.cc: New file. + + * load-save.cc (do_load): Don't use ostream::form. + * pr-output.cc: Likewise, at least where it is easy to do so. + * oct-stream.cc: Ditto. + + * symtab.h (symbol_record::symbol_def::rows): New function. + (symbol_record::symbol_def::columns): Ditto. + (symbol_record::symbol_def::type_name): Ditto. + (symbol_record::rows): Ditto + (symbol_record::columns): Ditto + (symbol_record::type_name): Ditto + + * symtab.h, symtab.cc (symbol_record::hides_fcn): New function. + (symbol_record::hides_builtin): Ditto. + (symbol_record::print_symbol_info_line): Ditto. + (symbol_table::long_list): Delete. + (symbol_table::symbol_list): New function. + (symbol_table::maybe_list): Delete argc arg. + (symbol_table::name_list): Rename from symbol_table::list. + Change all callers. + + * symtab.h, symtab.cc (class symbol_record_info): Delete. + + * symtab.cc (matches_patterns): Use vector form of glob_match. + + Sun Jun 1 14:04:26 1997 John W. Eaton + + * pt-check.h, pt-check.cc: New files, for semantic checking of + parse trees. + + * symtab.h (class symbol_def): Now nested in symbol_record class. + (enum TYPE): Move from symbol_def to symbol record class. Change + all uses. + + * symtab.h, symtab.cc (symbol_table::maybe_list): New function, + from variables.cc. Change all uses. + + * pt-idx.h (tree_identifier::lvalue_ok): New function. + * pt-id.h (tree_index_expression::lvalue_ok): Likewise. + * pt-indir.h (tree_indirect_ref::lvalue_ok): Likewise. + + * pt-pr-code.h, pt-pr-code.cc (tree_print_code::visit_oct_obj): Delete. + * pt-walk.h (tree_walker::visit_oct_obj): Delete declaration. + + * lex.h (class lexical_feedback): Delete maybe_screwed_again. + * lex.l (lexical_feedback::init): Don't set it. + + Fri May 30 16:07:22 1997 John W. Eaton + + * mappers.cc: Include here. + + Tue May 27 10:08:43 1997 John W. Eaton + + * toplev.cc (eval_string): Don't index tmp if it is empty. + + Sat May 24 00:18:41 1997 John W. Eaton + + * load-save.cc (valid_identifier): Move here and make static. + * symtab.h, symtab.cc (valid_identifier): Delete declaration and + definition. + + Fri May 23 22:54:28 1997 John W. Eaton + + * symtab.h (symbol_def::symbol_def): Use initializer list instead + of calling init_state. + (symbol_def::init_state): Delete. + + * symtab.cc (symbol_table::print_stats): New function. + * variables.cc (F__dump_symtab_info__): New function. + + * symtab.h, symtab.cc (symbol_table::hash): Return masked value. + (symbol_table::table_size): New data member. + (symbol_table::symbol_table): Set size of table in constructor. + (HASH_TABLE_SIZE): Replace uses with table_size. + (HASH_MASK): Delete. + * variables.cc (initialize_symbol_tables): Set top-level and + global symbol table sizes here. + + Thu May 22 13:32:55 1997 John W. Eaton + + * dynamic-ld.cc (octave_shl_load_dynamic_loader::resolve_reference): + Call shl_findsym with type set to TYPE_PROCEDURE. Pass the + address of the pointer we want to define. + + Wed May 21 16:30:25 1997 John W. Eaton + + * DLD-FUNCTIONS/time.cc (extract_tm): Avoid memory leak in dealing + with time zone. + + * Makefile.in (install-in): Use new mk-includedir-link macro. + (install-lib): Install in $octlibdir. Use new mk-libdir-link macro. + + Tue May 20 01:24:11 1997 John W. Eaton + + * ov-list.cc (Flist): Rename from Fmake_list. + + Mon May 19 14:45:58 1997 John W. Eaton + + * octave.cc (maximum_braindamage): Set default_eval_print_flag to 0. + + Sat May 17 16:32:23 1997 John W. Eaton + + * defaults.cc (set_default_editor): Default is now Emacs, not vi. + + Fri May 16 00:07:11 1997 John W. Eaton + + * pt-idx.cc (tree_index_expression::name): New function. + + * pt.cc (tree::str_print_code): New file, new convenience function. + * pt-arg-list.cc (tree_argument_list::get_arg_names): Use it. + * pt-assign.cc (tree_simple_assignment::rvalue): Likewise. + (tree_multi_assignment::rvalue): Likewise. + + * pt-colon.h (tree_colon_expression::save_base): New data memmber. + (tree_colon_expression::preserve_base): New function. + * parse.y (finish_colon_expression): When converting to a simple + expression, be sure to delete the original colon expression but + not the base value. + + * pt-mat.cc (tree_matrix::~tree_matrix): Actually do something. + + * pt-all.h: New file. + * parse.y, lex.l, pt-pr-code.cc: Use it. + + * pt.h: Rename from pt-base.h. + + * All parse tree classes: Add private copy constructors and + assignment operators to prevent copying. + + * pt-base.cc: Delete. + + * unwind-prot.h, unwind-prot.cc: Make a bit more object-oriented. + Change all uses of unwind_protect stuff to match. + + * pt-jump.h, pt-jump.cc (breaking, continuing, returning): + Make these flags static members of the corresponding class. + Change all uses. + + * pt-assign.cc (tree_simple_assignment_expression::eval, + tree_multi_assignment_expression::eval): Clear lvalue index here. + + * oct-lvalue.cc (octave_lvalue::assign): Don't clear index here. + * oct-lvalue.h (octave_lvalue::clear_index): New function. + (octave_lvalue::set_index): Rename from octave_lvalue::index. + Change all callers. + + Thu May 15 11:48:10 1997 John W. Eaton + + * pt-select.h, pt-select.cc (class tree_if_command_list, + class tree_if_clause, class tree_switch_case_list, + class tree_switch_case): Move here from pt-misc.h, pt-misc.cc. + * pt-decl.h, pt-decl.cc (class tree_decl_init_list, + class tree_decl_elt): Move here from pt-mist.h, pt-misc.cc + + * pt-arg-list.h, pt-stmt.h: New files, extracted from pt-misc.h. + * pt-arg-list.cc, pt-stmt.cc: New files, extracted from pt-misc.cc. + + * pt-decl.h, pt-except.h, pt-jump.h, pt-loop.h, pt-select.h: + New files, extraced from pt-cmd.h. + * pt-decl.cc, pt-except.cc, pt-jump.cc, pt-loop.cc, pt-select.cc: + New files, extraced from pt-cmd.cc. + + * pt-unop.h, pt-binop.h, pt-colon.h, pt-idx.h, pt-assign.h: + New files, extracted from pt-exp.h + * pt-unop.cc, pt-binop.cc, pt-colon.cc, pt-idx.cc, pt-assign.cc: + New files, extracted from pt-exp.cc + * pt-exp.h, pt-exp.cc: Rename from pt-exp-base.h, pt-exp-base.cc. + + * oct-lvalue.h: Rename from oct-var-ref.h. Rename class from + octave_variable_reference to octave_lvalue. Change all uses. + * oct-lvalue.cc: Rename from oct-var-ref.cc. + + * variables.cc (bind_ans): Only bind ans and print result if value + is defined. + + * defun.cc: New file. Move functions for installing objects in + the symbol table here from variables.cc. + + * oct-obj.h, oct-obj.cc: Add custom allocator, fwiw. + + * toplev.cc (main_loop): Correctly increment command number. + + * TEMPLATE-INST/SLList-tm.cc: Don't instantiate lists of pointers + to tree_matrix_row objects. + * TEMPLATE-INST/SLList-misc.cc: Do instantiate lists of pointers + to tree_argument_list objects. + + * DLD-FUNCTIONS/dassl.cc: Update to use new octave_function + interface to user-supplied functions. + * DLD-FUNCTIONS/fsolve.cc: Likewise. + * DLD-FUNCTIONS/lsode.cc: Likewise. + * DLD-FUNCTIONS/npsol.cc: Likewise. + * DLD-FUNCTIONS/quad.cc: Likewise. + + * dynamic-ld.h, dynamic-ld.cc (builtin_fcn_installer typedef): + Rename from builtin_fcn. + (octave_dynamic_loader::load_fcn_from_dot_oct_file): + Simplify by using new installer function defined by DEFUN_DLD. + + * defun-dld.h (DEFUN_DLD): Use DEFINE_FUN_INSTALLER_FUN instead of + DEFINE_FUN_STRUCT_FUN. + * defun.h (DEFUN_MAPPER): Use DEFUN_MAPPER_INTERNAL. + * defun-int.h (DEFVAR_INTERNAL): Rename from DEFVAR_INT and move + here from defun.h. Change all uses. + (DEFUN_MAPPER_INTERNAL): New macro. + (DEFINE_FUN_INSTALLER_FUN): New macro to define function that the + dynamic loader calls to do all the work of installing a new function. + (DEFINE_FUN_STRUCT_FUN): Delete. + + * parse.y: Rewrite to handle more general expressions. + * lex.l: Corresponding changes. + + * pt-walk.h, pt-pr-code.h, pt-pr-code.cc: Cope with new parse tree + object structure. + + * pt-misc.cc (class tree_for_command): Split into + tree_simple_for_command and tree_complex_for_command classes. + + * pt-misc.h, pt-misc.cc (tree_statement::eval): Handle identifier + lookup and printing and binding ans here. + (tree_statement_list::eval): Simplify. + (tree_argument_list::all_elements_are_constant): New function. + (class tree_decl_elt): Now contains id and expr, not an assignment + expression. + + * pt-exp-base.h pt-exp.h pt-id.h pt-indir.h pt-mat.h pt-const.h, + pt-exp-base.cc pt-exp.cc pt-id.cc pt-indir.cc pt-mat.cc pt-const.cc: + Replace eval functions with rvalue and lvalue functions. + Change all uses. + (lvalue_ok, rvalue_ok): New functions, for future compile-time + semantic checks. + + * oct-var-ref.h (is_defined, is_map): New functions. + + * pt-exp.h (class tree_oct_obj): Delete. + + * variables.cc (extract_function, is_valid_function): Return + pointer to octave_function, not octave_symbol. + (link_to_global_variable): Rewrite. Handle errors in + symbol_record::mark_as_linked_to_global. + + * symtab.h, symtab.cc (class symbol_def, class symbol_record): + Symbols are now stored as octave_value objects only. + + * ov.cc (install_types): Register function types here. + * ov-fcn.h, ov-fcn.cc, ov-builtin.h, ov-builtin.cc, ov-mapper.h, + ov-mapper.cc, ov-usr-fcn.h, ov-usr-fcn.cc: New classes for + functions as values. + * ov.h (class octave_value): Don't derive from octave_symbol. + * oct-fcn.h, oct-fcn.cc, oct-builtin.h, oct-builtin.cc, + oct-mapper.h, oct-mapper.cc, oct-usr-fcn.h, oct-usr-fcn.cc, + oct-sym.h, oct-sym.cc: Delete. + + Sun May 11 17:51:22 1997 John W. Eaton + + * help.cc (Ftype): Make it work again for functions. + + * pt-pr-code.cc (tree_print_code::print_parens): New function. + Use it in other tree_print_code functions to handle printing all + the parens that we found when parsing the expression, not just one + pair. + * pt-exp-base.h (tree_expression::paren_count): Rename from + is_in_parens. + * parse.y (maybe_warn_assign_as_truth_value): Use new name. + + * parse.y (constant): New non-terminal. + (simple_expr1): Use it. + + * parse.y (make_unary_op): Delete. + (simple_expr1): Where appropriate, use make_prefix_op and + make_postfix_op instead of make_unary_op. Allow increment and + decrement ops to work on expressions, not just identifiers. + (make_prefix_op, make_postfix_op): Arg is expression, not identifier. + Handle old unary_op cases too. + (fold (tree_unary_expression *)): Delete. + * pt-exp.h, pt-exp.cc (tree_prefix_expression::eval): Handle unary + minus and not here. + (tree_postfix_expression::eval): Likewise, for transpose and hermitian. + (class tree_prefix_expression, class tree_postfix_expression): + Derive from tree_unary_expression. Delete identifier member. + Delete ident member function. + (tree_unary_expression): Don't handle evaluation here. + * pt-exp-base.h (mark_in_parens): No longer virtual. Return this. + (reference): New virtual function. + (class tree_expression): Don't handle expression type here. + * pt-mvr-base.h (tree_multi_val_ret::tree_multi_val_ret): Likewise. + * pt-mvr.h, pt-mvr.cc (tree_multi_assignment_expression): Likewise. + * pt-walk.h (visit_unary_expression): Delete declaration. + * pt-pr-code.h, pt-pr-code.cc (visit_unary_expression): Delete. + (visit_prefix_expression): Use operand(), not ident(). + new, visit_postfix_expression): + * pt-id.h, pt-id.cc (increment, decrement): Delete. + + * pt-misc.cc (tree_parameter_list::define_from_arg_vector): Get a + reference to each element and use the assignment operator instead + of tree_identifier::define. + * pt-id.h, pt-id.cc (tree_identifier::define): Delete versions + that take octave_value and octave_symbol args. + + Sat May 10 23:32:13 1997 John W. Eaton + + * pt-indir.h, pt-indir.cc (tree_indirect_reference::value): Delete. + + * oct-var-ref.cc (octave_variable_ref::assign): Clear idx after + assignment. + + * octave_value classes: Add is_constant, is_function, and + function_value functions. + + * ov.h, ov.cc (assign): Return void, not reference to octave_value. + (do_index_op): Rename, from index. + (do_struct_elt_index_op): Rename, from struct_elt_val. + Add version that accepts index arg. + Change all uses and derived classes to match. + * pt-const.h (index): Delete. + * oct-var-ref.h, oct-var-ref.cc (value): Handle indexed structure + ops here too. + + Fri May 9 07:40:59 1997 John W. Eaton + + * pt-exp.cc (print_rhs_assign_val, symbols_of_pt_exp): New functions. + (Vprint_rhs_assign_val): New static variable. + (tree_simple_assignment_expression::eval): Use it to optionally + allow the rhs (which is the result) of an assignment to be printed + instead of the left. + + * pt-exp.cc (tree_simple_assignment_expression::eval): Use new + octave_variabl_reference::index function to handle indexing. + + * oct-var-ref.h, oct-var-ref.cc (idx): New data member. + (octave_variable_reference::index): Set it. + (octave_variable_reference::assign): Handle indexing here. + Delete version of this function htat takes index arg. + + * variables.h (struct builtin_varaible): Delete. + * variables.cc (install_builtin_variable): Take all elts of + builtin_variable struct directly. + * defun.h (DEFVAR_INT): Call install_builtin_variable directly. + + * symtab.h, defun-int.h: Don't include variables.h. + + * symtab.h (symbol_record::sv_function): Move typedef here. + * variables.h: From here. + + * oct-var-ref.h, oct-var-ref.cc: New files for + octave_variable_reference class, extracted from variables.h and + variables.cc + * Makefile.in: Add them to the appropriate lists. + + * oct-obj.h (octave_value_list::empty): New function. + + * variables.h (class octave_variable_reference): Rewrite to work + as a proxy class to store a pointer to octave_value and, + optionally, the change function to call and the name of the + structure element we are referencing. Handle assignment, + increment, decrement, and value operations. + + Thu May 8 23:40:59 1997 John W. Eaton + + * ov-re-mat.h, ov-re-mat.cc (struct_elt_ref, struct_elt_val, + assign_struct_elt): Provide functions for looking up and setting + matrix dimensions. + + * symtab.cc (symbol_record::define): Don't call sv_fcn here. + Don't save and restore value here. + (symbol_record::define_builtin_var): Do call sv_fcn here. + (symbol_record::variable_reference): Don't make value unique here. + Return pointer to sv_fcn in octave_variable_reference. + + * pt-misc.cc (tree_parameter_list::initialize_undefined_elements): + Simplify. + + * pt-id.h, pt-id.cc (tree_identifier::reference): Return + octave_variable_reference, not octave_value&. + * symtab.h, symtab.cc (symbol_record::variable_reference): Ditto. + * pt-indir.h, pt-indir.cc (tree_indirect_ref::reference): Ditto. + Simplify too. + + * pt-const.h (tree_constant::reference, tree_constant::value, + tree_constant::assign): Delete unnecessary functions. + * pt-id.h, pt-id.cc (tree_identifier::assign): Ditto. + + * pt-cmd.cc (tree_for_command::do_for_loop_once): Simplify. + + * ov.h, ov.cc, ov-base.h, ov-base.cc, ov-struct.h, ov-struct.cc + (struct_elt_ref): New arg, octave_value* parent. + Allow deferred lookup. Return octave_variable_reference, not + octave_value&. + + * ov.h, ov.cc, ov-re-mat.h, ov-re-mat.cc (assign_struct_elt): + New virtual functions. + + * ov.h, ov.cc (Vresize_on_range_error): Now static. + + * pt-mvr.cc (tree_index_expression::eval): Delete redundant check + of error_state. + + Wed May 7 21:17:00 1997 John W. Eaton + + * input.cc (generate_completion): Rename from command_generator. + Use string objects instead of char*. + (generate_possible_completions): Let qsort also make matches unique. + (initialize_command_input): Register generate_completion with the + command_editor class. + (completion_matches): Simplify using generate_completion. + + * pt-pr-code.cc (tree_print_code::visit_constant): For val, call + print_raw, not print. + + * oct-usr-fcn.h (octave_user_function::argn_sr): New data member. + (octave_user_function::install_automatic_vars): Rename from + install_nargin_and_nargout. + (octave_user_function::bind_automatic_vars): Rename from + bind_nargin_and_nargout. + * oct-usr-fcn.cc (octave_user_function::eval): Extract arg names + from args vector and bind them to argn. + * oct-obj.h (octave_value_list::names): New data member. + * oct-obj.cc (octave_value_list::stash_name_tags): New function. + (octave_value_list::name_tags): Ditto. + * pt-const.h, pt-const.cc (tree_constant::print_raw): New function. + * pt-misc.h, pt-misc.cc (tree_argument_list::get_arg_names): + New function. + * pt-mvr.h, pt-mvr.cc (class index_expression): Cache arg names. + * toplev.cc (feval): Now static. Handle arg names. + + * mkops: Cope with moving files defining operators to OPERATORS + subdirectory. + + Tue May 6 00:48:59 1997 John W. Eaton + + * DLD-FUNCTIONS/getgrent.cc: Use new octave_group class. + * DLD-FUNCTIONS/getpwent.cc: Use new octave_passwd class. + + * syscalls.cc: Simplify by using new functions defined in + liboctave/oct-syscalls.cc. + + * file-io.cc (Ftmpnam): Accept DIR and PREFIX args. + + Mon May 5 00:54:03 1997 John W. Eaton + + * ov-str-mat.cc (octave_char_matrix_str::print_name_tag): Print + empty strings on one line. + + * DLD-FUNCTIONS, OPERATORS, and TEMPLATE-INST: New subdirectories. + Move appropriate files to new directories. + * Makefile.in: Add DLD-FUNCTIONS, OPERATORS, and TEMPLATE-INST + directories to VPATH. Fix rules to work with new directory + structure. + + Sun May 4 22:40:45 1997 John W. Eaton + + * input.cc (initialize_command_input): Rename from + initialize_readline. + (gnu_readline, octave_gets, get_user_input): Simplify, return + string, not char *. + + * Many of other files: Miscellaneous changes to go along with the + changes described in the liboctave/ChangeLog for May 4. More code + moved from here to liboctave. + + Fri May 2 19:50:33 1997 John W. Eaton + + * pathlen.h: Move to ../liboctave. + + Thu May 1 21:50:44 1997 John W. Eaton + + * variables.cc (get_struct_elts): New fucntion. + (looks_like_struct, generate_struct_completions): Move here from + input.cc, rewrite, and make work again. + + Wed Apr 30 00:24:05 1997 John W. Eaton + + * ov-base.h, ov-bool-mat.cc, ov-bool-mat.h, ov-bool.cc, ov-bool.h, + ov-ch-mat.cc, ov-ch-mat.h, ov-complex.cc, ov-complex.h, + ov-cx-mat.cc, ov-cx-mat.h, ov-file.cc, ov-file.h, ov-list.cc, + ov-range.cc, ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, + ov-scalar.h, ov-str-mat.cc, ov-struct.cc, ov.h (scalar_value): + New function. Same as double_value, but name is consistent with + octave_scalar class. + + * op-fil-b.cc, op-fil-cm.cc, op-fil-lis.cc, op-fil-rec.cc, + op-fil-str.cc, op-fil-bm.cc, op-fil-cs.cc, op-fil-m.cc, + op-fil-s.cc: New files. + + * ops.h (ASSIGNOPDECL, DEFASSIGNOP, DEFASSIGNOP_FN, CONVDECL, + DEFCONV, BINOPDECL, DEFBINOPX, DEFBINOP, DEFBINOP_OP, DEFBINOP_FN, + BINOP_NONCONFORMANT): New macros. + * op-b-b.cc, op-bm-bm.cc, op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, + op-cm-s.cc, op-cs-cm.cc, op-cs-cs.cc, op-cs-m.cc, op-cs-s.cc, + op-m-cm.cc, op-m-cs.cc, op-m-m.cc, op-m-s.cc, op-s-cm.cc, + op-s-cs.cc, op-s-m.cc, op-s-s.cc, op-str-str.cc: Use them. + + * Makefile.in (octave): Also depend on ops.o. + + * builtins.h: Delete. + * octave.cc: Add extern declaration here. + + * mappers.h: Delete. + * Makefile.in (INCLUDES): Delete from list. + * mkbuiltins: Add extern declaration in builtins.cc. + + * mkops: New file. + * ops.cc: Delete. + * Makefile.in (SOURCES): Delete from the list. + (ops.cc): New target. + (OP_SOURCES): New list. Move all op-*.cc files here from SOURCES. + Add $(OP_SOURCES) to SOURCES list. + + * variables.cc (symbols_of_variables): No longer static. + * ov.cc (symbols_of_ov): Rename from symbols_of_value. + + * ov-base.h: Delete declaration for install_base_type_conversions. + * op-b-b.h, op-bm-bm.h, op-cm-cm.h, op-cm-cs.h, op-cm-m.h, + op-cm-s.h, op-cs-cm.h, op-cs-cs.h, op-cs-m.h, op-cs-s.h, + op-m-cm.h, op-m-cs.h, op-m-m.h, op-m-s.h, op-s-cm.h, op-s-cs.h, + op-s-m.h, op-s-s.h, op-str-str.h: Delete. + * Makefile.in (INCLUDES): Delete them from the list. + + Tue Apr 29 22:27:49 1997 John W. Eaton + + * variables.h, variables.cc (install_builtin_variables): Delete. + * mkbuiltins: Also generate install_builtin_variables function. + * Makefile.in: Fix rule to call mkbuiltins with correct args. + (clean): Also delete def-files and var-files. + * defaults.h.in, dirfns.h, error.h, file-io.h, help.h, input.h, + lex.h, load-save.h, oct-usr-fcn.h, pager.h, parse.h, pr-output.cc, + pr-output.h, pt-mat.h, pt-misc.h, pt-plot.h, toplev.h: + Delete declarations of symbols_of_* functions. + * data.h, syscalls.h: Delete. + + * pr-output.cc (octave_print_internal): Leave printing of final + new line up to the caller. + + * ov.h, ov.cc (reset_indent_level, increment_indent_level, + decrement_indent_level, newline, indent, reset, + curr_print_indent_level, beginning_of_line): + New functions and static data to manage indent level for printing. + (print_as_scalar): Delete. + (print, print_with_name): Always require stream arg. + Change all callers. + + * oct-stream.h (octave_stream::input_stream): Make publicly available. + (octave_stream::output_stream): Likewise. + + * ov-base.h, ov-base.cc, ov.h, ov.cc, ov-file.h ov-base.h + (is_file, stream_value, stream_number): New functions. + * ov-file.h, ov-file.cc: New files for value class to manage files. + * file-io.cc (symbols_of_file_io): Define stdin, stdout, and + stderr as octve_file objects, not just integers. + (Ffopen, Fpopen): Return octave_file objects, not integer file ids. + * syscalls.cc (Fpipe): Likewise. + * oct-stream.h, oct-stream.cc (octave_stream_list::insert): + Return octave_file object, not integer file id. + + * ov-base.cc, ov-bool-mat.cc, ov-bool.cc, ov-ch-mat.cc, + ov-complex.cc, ov-cx-mat.cc, ov-file.cc, ov-list.cc, ov-range.cc, + ov-re-mat.cc, ov-scalar.cc, ov-str-mat.cc, ov-struct.cc, ov.cc + (print_name_tag, print_raw): New functions. + + * help.cc (Ftype): Don't cast symbol definition to tree_constant *. + + * variables.cc (link_to_global_variable): Don't try to define + symbol with tree_constant objects. + (bind_ans): Call symbol_record::define directly and then + octave_value::print_with_name instead of creating a temporary + assignment expression. + + * pt-pr-code.cc (tree_print_code::indent): Don't use ostream::form. + + * pt-exp-base.h, pt-exp.h, pt-exp.cc (oper): Return string, not + char *. Change all where necessary. + + Mon Apr 28 16:33:49 1997 John W. Eaton + + * ov.h (octave_value binary_op enum): Add lshift and rshift. + (octave_value assign_op enum): Add lshift_eq and rshift_eq. + * ov.cc (assign_op_as_string, binary_op_as_string): Include them. + * parse.y (LSHIFT_EQ RSHIFT_EQ LSHIFT RSHIFT): New tokens. + Add them to the precedence list. + (simple_expr): Add new operators. + (make_assign_op, make_binary_op): Handle new operators. + * lex.l: Recognize new operators. + + * lex.l: Recognize them. + + Sun Apr 27 20:17:49 1997 John W. Eaton + + * pt-misc.cc (Vsilent_functions, silent_functions): + Move here from oct-usr-fcn.cc. + (symbols_of_pt_misc): New function. DEFVAR silent_functions. + (tree_statement_list::eval): Handle Vsilent_functions here instead + of in octave_user_function::eval. + (tree_statement::eval): New functions. + (tree_statement_list::eval): Use them. + Change print flag arg to silent flag. Change all callers. + * variables.cc (install_builtin_variables): Call symbols_of_pt_misc. + * toplev.cc (parse_and_execute): Delete print arg. Change all callers. + (eval_string): Change print flag arg to silent flag. Change callers. + + * dynamic-ld.h, dynamic-ld.cc: Rewrite to use singleton class. + * variables.cc (load_fcn_from_file): Use new dynamic linking class. + + * dynamic-ld.h (Octave_builtin_fcn): Delete typedef. + * dynamic-ld.cc: Simplify via the magic of function pointers. + + * pt-fcn.h pt-fcn.cc pt-fvc.h pt-fvc.cc pt-fvc-base.h pt-fvc-base.cc: + Delete obsolete files. + * Makefile.in: Remove them from various lists. + + * pt-walk.h (visit_octave_user_function): Rename from visit_function. + (visit_builtin): Delete. + * pt-pr-code.h, pt-pr-code.cc (visit_octave_user_function): + Rename from visit_function. + (visit_octave_user_function_header): Rename from visit_function_header. + (visit_octave_user_function_trailer): Rename from + visit_function_trailer. + + * ov.h, ov.cc (eval): New functions. + + * dassl.cc, fsolve.cc, lsode.cc, npsol.cc, qpsol.cc, quad.cc: + Declare user-defined functions as a pointer to an octave_symbol + object, not as a pointer to a tree_fvc object. + + * symtab.h, symtab.cc: Use new octave_symbol class. + * variables.cc (install_builtin_function, install_builtin_mapper, + install_builtin_variable, install_builtin_variable_as_function): + Make work with new octave_symbol class and symbol table structure. + + * variables.h: Delete declaration of builtin_function struct. + * defun-dld.h (DEFUN_DLD): Simplify. + * defun-int.h (DEFINE_FUN_STRUCT): Delete. + (DEFINE_FUN_STRUCT_FUN): Rewrite to not use static builtin_function + object. + + * mappers.h: Delete declaration of builtin_mapper_function struct. + * mappers.cc: Declare wrapper functions static. + * defun.h (DEFUN_MAPPER): Simplify. + + * oct-sym.h: New file. Declare base class for Octave symbols. + * ov.h: Derive octave_value class from octave_symbol. + * oct-fcn.h, oct-fcn.cc: New files to declare and define + base class for functions. + * oct-builtin.h, oct-builtin.cc: New files to declare and define + class for built-in functions. + * oct-mapper.h, oct-mapper.cc: New files to declare and define + class for mapper functions. + * oct-usr-fcn.h, oct-usr-fcn.cc: New files to declare and define + base class for user-defined functions. + * Makefile.in: Add new files to appropriate lists. + + * pt-id.h, pt-id.cc: Move tree_identifier class here. + * pt-fvc.h, pt-fvc.cc: From here. + + * pt-indir.h, pt-indir.cc: Move tree_indirect_ref class here. + * pt-fvc.h, pt-fvc.cc: From here. + + Thu Apr 24 03:58:16 1997 John W. Eaton + + * parse.y (magic_colon): New nonterminal. + (arg_list): Simplify using magic_colon. + + * lex.h (class lexical_feedback): Delete maybe_screwed field. + New field, parsed_function name. + * lex.l (lexical_feedback::init): Initialize it. + (handle_identifier): Don't return SCREW. Handle switching + symbol table context properly for `function f ()' vs `function x ='. + (is_keyword): If looking at function keyword, don't set current + symbol table to point to the local table. + * parse.y (recover_from_parsing_function): New function. + (finish_function_def): Use identifier, not token. + Simplify parsing of functions. + + * ov-list.h, ov-list.cc: New files to implement generic list type. + * ov.cc (list_indent): New global variable. + (increment_list_indent, decrement_list_indent): New functions. + (install_types): Register octave_list type. + * ov-base.cc (octave_base_value::is_list): New function. + + * oct-sym.h: New file. + * ov.h (class octave_value): Derive from octave_symbol class. + + * pt-const.h, pt-const.cc: Delete lots of old useless cruft. + + * pt-exp.h, pt-exp.cc (tree_binary_expression): Use type codes for + operators from octave_value instead of repeating them here. + + * pt-fvc-base.cc (tree_fvc::increment, tree_fvc::decrement): Delete. + * pt-fvc.cc (tree_identifier::increment): Get reference to value + and increment that instead of using virutal tree_fvc::increment + function. + + * lex.l: Handle +=, -=, *=, /=, .+=, .-=, .*=, ./=, &=, and |= ops. + * parse.y (make_assign_op): Rename from make_simple_assignment and + handle different op types. + (simple_expr1): Do new ops. + * pt-misc.cc (initialize_undefined_elements): Pass op to assign. + * pt-cmd.cc (tree_for_command::do_for_command_once): Likewise. + * pt-fvc.cc (tree_identifier::assign): Pass op. + * pt-exp.cc (tree_simple_assignment_expression): Handle new ops. + * variables.cc (octave_variable_reference::assign): Likewise. + * ov.h (class octave_value): Likewise. + * ov.cc (octave_value::assign_op_as_string): New function. + (octave_value::assign, octave_value::convert_and_assign, + octave_value::try_assignment_with_conversion, + octave_value::try_assignment): Pass op. + * pt-pr-code.cc (tree_print_code::visit_simple_assignment_expression): + Use expr.oper() instead of printing "=". + * op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, op-cm-s.cc, op-m-m.cc, + op-m-s.cc, op-str-str.cc: Pass op to INSTALL_ASSIGNOP. + * ops.h (INSTALL_ASSIGNOP): Pass op. + * ov-typeinfo.cc (do_register_assign_op): Include op type in table. + (do_lookup_assign_op): Use op in lookup. + + * ops.h (INSTALL_UNOP): Delete. + + * input.cc (generate_struct_completions, looks_like_struct): + Disable, since they don't work now anyway. + + * help.cc (Ftype): Work with octave_value instead of a pointer to + tree_constant. + * symtab.cc (symbol_record_info::symbol_record_info): Likewise. + + Tue Apr 22 22:59:55 1997 John W. Eaton + + * file-io.cc (Ffprintf): If first arg is a string, assume FID = 1. + + Fri Apr 18 20:16:34 1997 John W. Eaton + + * oct-obj.h, oct-obj.cc: Implement octave_value_list with + Array as a data member, not as a class derived from + Array. + (octave_value_list::length, octave_value_list::resize, + octave_value_list::prepend, octave_value_list::append, + octave_value_list::reverse): New functions. + + * op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, op-cm-s.cc, op-cs-cm.cc, + op-cs-m.cc, op-m-cm.cc, op-m-cs.cc, op-m-m.cc, op-m-s.cc, + op-s-cm.cc, op-s-m.cc: Use new bool ops from liboctave instead of + the macros defined in ops.h. + + Thu Apr 17 13:12:22 1997 John W. Eaton + + * parse.y (ABORT_PARSE): Handle forced_interactive the same as + interactive. + + Mon Apr 14 01:46:50 1997 John W. Eaton + + * input.cc (octave_read): Don't forget to free input buffer if it + exists and has zero length. + (gnu_readline): Free buf if fgets returns 0. + + Wed Apr 9 00:03:57 1997 John W. Eaton + + * time.cc (mk_tm_map): Only set zone field if HAVE_TM_ZONE or + HAVE_TZNAME are defined. + + Tue Apr 8 12:39:21 1997 John W. Eaton + + * time.cc (extract_tm): Set tm.tm_zone if HAVE_TM_ZONE is defined, + not if HAVE_TMZONE is defined. + + * Makefile.in (%.oct : %.o): Use $(SH_LD), not $(CXX). + + Wed Apr 2 21:32:16 1997 John W. Eaton + + * dynamic-ld.cc, dynamic-ld.h (init_dynamic_linker): Delete + function and declaration. + * octave.cc (main): Don't call it. + + Mon Mar 31 00:37:48 1997 John W. Eaton + + * pt-base-exp.h (tree_expression::eval): Give arg a default value. + * pt-const.h (tree_constant::eval): Likewise. + * pt-exp.h (tree_prefix_expression::eval, tree_colon_expression::eval, + tree_postfix_expression::eval, tree_unary_expression::eval, + tree_binary_expression::eval, tree_boolean_expression::eval, + tree_simple_assignment_expression::eval): Likewise. + * pt-fcn.h (tree_function::eval): Likewise. + * pt-fvc.h (tree_identifier::eval, tree_indirect_ref::eval, + tree_builtin::eval): Likewise. + * pt-mat.h (tree_matrix::eval): Likewise. + * pt-misc.h (tree_statement_list::eval): Likewise. + * pt-mvr-base.h (tree_multi_val_ret::eval): Likewise. + * pt-mvr.h (tree_oct_obj::eval, tree_index_expression::eval, + tree_multi_assignment_expression::eval): Likewise. + * dassl.cc, fsolve.cc, load-save.cc, lsode.cc, npsol.cc, parse.y, + pt-cmd.cc, pt-exp-base.cc, pt-exp.cc, pt-fvc.cc, pt-mat.cc, + pt-misc.cc, pt-mvr.cc, pt-plot.cc, quad.cc, toplev.cc, variables.cc: + Change callers of eval() to use bool instead of int and to make + use of default argument value. + + * toplev.h, toplev.cc (parse_and_execute, eval_string): Flag args + are now bool instead of int. + + * symtab.h, symtab.cc: Use bool instead of int in more places. + * variables.h, variables.cc: Likewise. + * lex.h, lex.l: Likewise. + * parse.y: Likewise. + * help.cc, input.cc, lex.l, load-save.cc, parse.y, pt-fcn.cc: + Change callers of symbol_table::lookup to use bool instead of int, + and to make use of default arguments. + + Fri Mar 28 15:33:11 1997 John W. Eaton + + * parse.y (Vwarn_comma_in_declaration): Delete. + (symbols_of_parse): Delete DEFVAR for warn_comma_in_declaration. + (decl1): Don't allow commas in declarations. + + * lsode.cc (struct LSODE_OPTIONS): Handle integer options. + (print_lsode_option_list, set_lsode_option, show_lsode_option): Ditto. + (lsode_option_table): Add element for step limit. + (lsode_user_jacobian): New function. + (Flsode): Allow function name arg to be a 2-element string array + specifying the function and jacobian function. + + * variables.cc (get_global_value, set_global_value): New functions. + + Wed Mar 26 17:08:27 1997 John W. Eaton + + Implement static variable declaration: + + * lex.l (is_keyword): Handle static. + * octave.gperf: Likewise. + * parse.y (Vwarn_comma_in_declaration): Rename from + Vwarn_comma_in_global_decl. + Handle new static command. + * pt-cmd.h, pt-cmd.cc (class tree_decl_command): New base class + for static and global declaration commands. + (class tree_global_command): Derive from tree_decl_command. + (class tree_static_command): New class, derived from tree_decl_command. + * pt-fvc.cc, pt-fvc.h (tree_identifier::mark_as_static): New function. + * pt-misc.h, pt-misc.h (class tree_decl_elt): Rename from tree_global. + (class tree_decl_init_list): Rename from tree_global_init_list. + * pt-pr-code.cc, pt-pr-code.h (tree_print_code::visit_decl_command): + Rename from visit_global_command. + (tree_print_code::visit_decl_elt): Rename from visit_global. + (tree_print_code::visit_decl_init_list): Rename from + visit_global_init_list. + * pt-walk.h (tree_walker::visit_decl_command): Rename from + visit_global_command. + (tree_walker::visit_decl_elt): Rename from visit_tree_global. + (tree_walker::visit_decl_init_list): Rename from + visit_global_init_list. + * variables.cc (link_to_global_variable): Trying to make a static + variable global is an error. + * SLList-misc.cc: Instantiate lists of pointers to tree_decl_elt + objects, not tree_global objects. + * symtab.h, symtab.cc (symbol_record::tagged_static): New field. + (symbol_record::mark_as_static, symbol_record::is_static): + New functions. + * symtab.cc (symbol_record::init_state): Initialize tagged_static. + (symbol_record::clear): Don't clear static variables. + * symtab.cc (push_context): Don't do anything for static variables. + + Tue Mar 25 17:17:17 1997 John W. Eaton + + * ov-bool-mat.cc, ov-bool-mat.h, ov-bool.cc, ov-bool.h: New files. + + * defaults.cc (symbols_of_defaults): DEFCONST OCTAVE_HOME. + + * toplev.cc (octave_config_info): Delete use of CXXLIBS. + * oct-conf.h.in: Ditto. + + * octave.cc (maximum_braindamage): Don't bind prefer_zero_one_indexing. + * ov.h: Don't declare Vprefer_zero_one_indexing. + * ov.cc: Don't define Vprefer_zero_one_indexing. + (prefer_zero_one_indexing): Delete. + (symbols_of_value): Delete DEFVAR for prefer_zero_one_indexing. + + * ov.h, ov.cc, ov-base.h, ov-base.cc: Add constructors and + extractors for bool and boolMatrix types. + + * ov.cc (install_types): Register octave_bool and + octave_bool_matrix types. + + * op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, op-cm-s.cc, op-cs-cm.cc, + op-cs-m.cc, op-m-cm.cc, op-m-cs.cc, op-m-m.cc, op-m-s.cc, + op-s-cm.cc, op-s-m.cc, op-s-s.cc, ov-re-mat.cc: + Return boolMatrix instead of Matrix object. + * ops.h (BOOL_OP3, MX_MX_BOOL_OP): Likewise. + + * op-b-b.h, op-b-b.cc, op-bm-bm.h, op-bm-bm.cc: New files. + * Makefile.in: Add them to the lists. + * ops.cc: Include header files here. + (install_ops): Call install_b_b_ops() and install_bm_bm_ops() here. + + * variables.cc (symbols_of_variables): Don't rely on default + conversion from int to double for value returned from + default_history_size(). + + * pr-output.cc: Include cstdio. + + * parse.y (param_list_end): Fix typo in last change. + + * quad.cc (quad): Cast integer return values to double. + * npsol.cc (show_npsol_option): Likewise. + * qpsol.cc (show_qpsol_option): Likewise. + * file-io.cc (Fsprintf, Ffwrite): Likewise. + + Mon Mar 24 13:11:47 1997 John W. Eaton + + * ov-typeinfo.cc (typeinfo): If invoked with an argument, return + the type of the argument as a string. Fix doc string. + + Thu Mar 20 14:47:49 1997 John W. Eaton + + * mk-oct-links (links_dir): Don't use -h option for grep. It's + not needed since we are working on one file at a time anyway. + + Mon Mar 17 10:53:29 1997 John W. Eaton + + * lex.l (handle_identifier): When handling indirect_ref, set + lexer_flags.quote_is_transpose to 1 so that a.b' to work as + expected. + + * parse.y (param_list_beg, param_list_end): New nonterminals. + (param_list, param_list1): Use them. + + Wed Mar 12 16:57:28 1997 John W. Eaton + + * Makefile.in (install-strip): New target. + + Mon Mar 10 22:38:16 1997 John W. Eaton + + * Makefile.in (clean): Delete .oct files too. + + * toplev.cc (Vdefault_eval_print_flag): New static variable. + (eval_string): New arg, print. + (Feval): Pass Vdefault_eval_print_flag to eval_string. + (default_eval_print_flag): New function. + (symbols_of_toplev): New function. + + * variables.cc (install_builtin_variables): Call it. + + * pt-exp.h, pt-exp.cc (class tree_boolean_expression): Rename enum + fields `and' and `or' to `bool_and' and `bool_or'. + (tree_unary_expression): Rename enum field `not' to `unot'. + (class tree_binary_expression): Rename enum fields `and' and `or' + to `el_and' and `el_or'. + * parse.y: Change all uses. + + * time.cc (extract_tm): Truncate field values instead of rounding. + (gmtime, localtime): Likewise, for timeval. + + * ov.h (class octave_value): Delete unused variable freeptr. + + * mappers.cc: Delete functions that are already in + liboctave/lo-mappers.cc. + + * oct-strstrm.cc (octave_base_strstream::tell): Use const_cast, + not static_cast. + + * help.cc (help_from_list): Add missing const qualifiers. + * help.h (struct help_list): Likewise. + * lex.l (match_any, plot_style_token): Likewise. + * load-save.cc (extract_keyword, ascii_save_type): Likewise. + * oct-hist.cc (mk_tmp_hist_file): Likewise. + * octave.cc (execute_startup_files): Likewise. + * octave.gperf (struct octave_kw): Likewise. + * pr-output.cc (pr_any_float): Likewise. + * pt-mvr.cc (tree_index_expression::eval_error): Likewise. + * pt-exp-base.h, pt-exp.h, pt-exp.cc: Likewise. + * parse.y: Likewise. + + Sun Mar 9 03:46:45 1997 John W. Eaton + + * pt-exp-base.h (tree_expression): Delete extra comma at end of list. + + * dirfns.cc error.cc file-io.cc fsolve.cc input.cc load-save.cc + npsol.cc pt-fcn.cc qpsol.cc quad.cc syscalls.cc toplev.cc + variables.cc: Eliminate embedded newlines in string constants. + + * Map.cc, data.cc, dirfns.cc, dynamic-ld.cc, file-io.cc, + fsolve.cc, getgrent.cc, getpwent.cc, getrusage.cc, help.cc, + input.cc, load-save.cc, mappers.cc, minmax.cc, npsol.cc, + oct-fstrm.cc, oct-procbuf.h, oct-stdstrm.cc, oct-stdstrm.h, + oct-stream.cc, oct-stream.h, oct-strstrm.cc, octave.cc, + ov-base.h, ov-range.cc, ov-typeinfo.cc, ov.cc, pr-output.cc, + pt-cmd.cc, pt-exp.cc, pt-fcn.cc, pt-fvc.cc, pt-mat.cc, + pt-misc.cc, pt-plot.cc, qpsol.cc, quad.cc, sort.cc, strfns.cc, + symtab.cc, syscalls.cc, sysdep.cc, time.cc, toplev.cc, + unwind-prot.cc, unwind-prot.h, variables.cc, xpow.cc: + Use `static_cast (val)' instead of old C-style `(T) val' casts. + + Sat Mar 8 02:35:13 1997 John W. Eaton + + * load-save.cc (save_ascii_data, save_three_d): Where appropriate, + use bool instead of int. + (save_binary_data, save_mat_binary_data, save_ascii_data): + Print warning instead of error for wrong type arg. + + * gripes.cc (gripe_wrong_type_arg): New arg, is_error. + + * pt-plot.cc (save_in_tmp_file): Call save_ascii_data with bool + arg, not int. + + Fri Mar 7 00:56:16 1997 John W. Eaton + + * dassl.cc (show_dassl_option): For values that are determined + automatically, return a string instead of a magic value (-1.0). + * fsolve.cc (show_fsolve_option): Likewise. + * lsode.cc (show_lsode_option): Likewise. + * npsol.cc (show_npsol_option): Likewise. + * qpsol.cc (show_qpsol_option): Likewise. + + * variables.cc (extract_function): New function. + * dassl.cc (Fdassl): Use it instead of is_valid_function. + * fsolve.cc (Ffsolve): Likewise. + * npsol.cc (Fnpsol): Likewise. + * qpsol.cc (Fqpsol): Likewise. + * quad.cc (Fquad): Likewise. + + Thu Mar 6 20:07:24 1997 John W. Eaton + + * sighandlers.cc (my_friendly_exit, octave_new_handler, + sigfpe_handler, sigpipe_handler): Don't all error() or warning(). + + * pager.cc (pager_death_handler): Don't try to clear pager, just + print message to cerr. + (do_sync): If the status of the pager is bad or it looks like it + is dead, restore the interrupt handler. + + * load-save.cc (extract_keyword (istream&, char*, int&)): + Move declaration of buf inside loop, to avoid deleting its guts + and then trying to reuse it. + (extract_keyword (istream&, char*)): Likewise. + + Tue Mar 4 20:36:53 1997 John W. Eaton + + * pt-fcn.cc (tree_function::eval): Protect function from being + redefined while it is being evaluated. + (unprotect_function): New function, for use with unwind_protect stuff. + * pt-fcn.h (tree_function::symtab_entry): New data member. + (tree_function::init): Initialize it to 0. + (tree_function::stash_symtab_ptr): New function. + * parse.y (frob_function_def): Stash pointer to function's + symbol_record in the function definition. + + * symtab.cc (symbol_record::read_only_error): New argument, + action. Change all callers. + (symbol_record::rename): Don't allow read-only symbols to be renamed. + + * variables.cc (Fexist): Don't let files with `.' in their names + confuse us. + + * symtab.cc (valid_identifier (const string&)): New function. + + Sat Mar 1 15:23:14 1997 John W. Eaton + + * Version 2.0.5 released. + + Sat Mar 1 01:34:08 1997 John W. Eaton + + * Makefile.in (stamp-oct-links): New target. Make links in build + directory too, so that the tests will work. + + * quad.cc: If quad is defined, undefine it. + + * octave.cc: If WITH_KPATHSEARCH is defined, don't define + program_invocation_name or program_invocation_short_name. + + * strftime.c: Update to current version from FSF. + * time.cc (Fstrftime): Call strftime with buf = 0 to get buffer + size, then call again to actually format the time struct. + + Fri Feb 28 01:49:48 1997 John W. Eaton + + Implement switch statement: + + * parse.y (Vwarn_variable_switch_label): New static variable. + (warn_variable_switch_label): New function. + (symbols_of_parse): Provide warn_variable_switch_label as Octave + variable here. + (make_switch_case, finish_switch_command): New functions. + (maybe_warn_variable_switch_label): New function. + (end_error): Handle endswitch. + (switch_command, case_list, case_list1, switch_case, default_case): + New nonterminals. + (command): Add switch_command here. + * lex.l (is_keyword): Handle switch, case, otherwise, and endswitch. + * octave_gperf: Recognize switch, case, otherwise, and endswitch. + * token.h (end_tok_type): New item, switch_end. + * pt-cmd.cc (tree_switch_command): New class. + * pt-misc.cc (tree_switch_case, tree_switch_case_list): New classes. + * pt-pr-code.cc (tree_print_code::visit_switch_case, + tree_print_code::visit_switch_case_list, + tree_print_code::visit_switch_command): New functions. + * pt-walk.h (tree_walker::visit_switch_case, + tree_walker::visit_switch_case_list, + tree_walker::visit_switch_command): New pure virtual declarations. + Implement new switch statement. + * SLList-misc.cc: Instantiate lists of pointers to + tree_switch_case objects too. + + * lex.h, lex.l, parse.y: Delete all references to lexer_flags::iffing. + + * syswait.h: Include sys/wait.h on NeXT systems, but don't use the + WIFEXTED, WEXITSTATUS, and WIFSIGNALLED macros defined there. + Also define waitpid in terms of wait4. From Rex A. Dieter + . + + Wed Feb 26 16:43:31 1997 John W. Eaton + + * oct-stream.cc (octave_base_stream::do_scanf): Don't report an + error if a conversion fails or we reach EOF. + + Tue Feb 25 22:21:05 1997 John W. Eaton + + * time.cc (strftime): increase initial buffer size. + + Mon Feb 24 17:49:21 1997 John W. Eaton + + * pt-fvc.cc (tree_builtin::eval): Enable checking for max number + of arguments. + + * error.cc (handle_message): Don't fail if args is empty. + + Sun Feb 23 22:42:52 1997 John W. Eaton + + * lex.h (lexical_feedback::looking_at_return_list): New field. + (lexical_feedback::looking_at_parameter_list): Ditto. + * lex.l (lexical_feedback::init): Initialize them. + (handle_identifier): Use them. + * parse.y: Likewise. + + Fri Feb 21 15:35:18 1997 John W. Eaton + + * lex.l: Require flex 2.5 or later (we really want 2.5.4 or later, + but there seems to be no good way to check the patchlevel). + + * oct-stream.cc (octave_base_stream::oscanf): Instead of returning + an error, just quit processing after a conversion fails. + + Thu Feb 20 02:58:05 1997 John W. Eaton + + * Version 2.0.4 released. + + Wed Feb 19 10:30:14 1997 John W. Eaton + + * sighandlers.cc (octave_ignore_interrupts, + octave_catch_interrupts, octave_set_interrupt_handler): + Return old value, not pointer to static data. Fix all uses. + + * sighandlers.h (octave_interrupt_handler): Move declaration here. + * sighandlers.cc: From here. + + * toplev.cc: Undo previous change. + + * lex.l (handle_identifier): Allow commands like ls, save, etc. to + also be used as simple variable names. Also make it possible to + use the normal function call syntax to invoke them. + + Tue Feb 18 09:22:04 1997 John W. Eaton + + * Makefile.in (%.oct:%.o, %.oct:pic/%.o): Use $(SH_LDFLAGS) here. + + * Version 2.0.3 released. + + Tue Feb 18 00:27:49 1997 John W. Eaton + + * toplev.cc (run_command_and_return_output): + Block SIGCHLD while running subprocess. + (cleanup_iprocstream): Unblock it here. + + * sighandlers.h (BLOCK_SIGNAL, BLOCK_CHILD, UNBLOCK_CHILD): Move here. + * sighandlers.cc: From here. + + * toplev.cc (system): Shift then mask exit status. + + * help.cc (try_info): Shift first, then mask exit status. + + * toplev.cc (octave_config_info): Handle option argument. + + Fri Feb 14 16:23:30 1997 John W. Eaton + + * oct-stream.cc (octave_base_stream::do_scanf): Don't forget to + check to see if the result matrix needs resizing! + + * Makefile.in (bin-dist): Don't write empty strings to LIBRARIES. + + Thu Feb 13 03:02:08 1997 John W. Eaton + + * Makefile.in (stamp-prereq): Depend on stamp-picdir. + (all): Don't depend on stamp-prereq or stamp-picdir. + (stamp-tinst, stamp-interp, libtinst.a, liboctinterp.a): + Do depend on stamp-prereq. + (stamp-picdir): Silence noise about making pic. + (stamp-tinst, stamp-interp): Use $(SH_LD) $(SH_LDFLAGS) instead of + $(CXX) -shared. + + * oct-conf.h.in: Reinstate RLD_FLAG. + * toplev.cc (octave_config_info): Likewise. + + * data.cc (map_d_m, map_m_d, map_m_m): Rename from map. + (Fatan2): Use new function names. + + * pt-fvc.cc (apply_mapper_fcn): Use member function map() instead + of friend function. + + * gripes.cc (gripe_wrong_type_arg (const char*, const string&)): + New function. + + Wed Feb 12 17:27:53 1997 John W. Eaton + + * syscalls.cc (symbols_of_syscalls): Add O_ASYNC and O_SYNC. + + Mon Feb 10 01:22:27 1997 John W. Eaton + + * dirfns.cc (Freaddir, Fmkdir, Frmdir, Frename): + Also return status and error message. + + * syscalls.cc (Fdup2, Fexec, Ffork, Ffcntl, Funlink, Fmkfifo, + Fpipe, Fwaitpid): Also return error message. + + Sat Feb 8 17:16:09 1997 John W. Eaton + + * pt-exp.cc (tree_simple_assignment_expression::eval): Return + value of RHS, but (if printing) print complete value of LHS. + + * pr-output.cc (octave_print_internal): Print a new line for empty + string matrices. + + Wed Feb 5 14:30:44 1997 John W. Eaton + + * oct-stream.cc (scanf_format_list::process_conversion): Accept + but don't actually use h, l, and L modifiers. Always insert l + modifier for floating point conversions. + + Fri Jan 31 13:55:10 1997 John W. Eaton + + * pager.cc (do_sync): Always flush the cout stream after writing. + + Wed Jan 29 08:25:29 1997 John W. Eaton + + * defaults.cc (exec_path): Don't include bin_dir in std_path. + + * pager.cc (do_sync): Flush the cout stream after writing if + running in interactive or forced_interactive mode. + + * mk-oct-links: Rename from mk-oct-links.in. + Don't use symbolic links. + * Makefile.in: Distribute mk-oct-links, not mk-oct-links.in + (mk-oct-links): Delete target. + (install-oct, bin-dist): Don't depend on mk-oct-links. + Run $(srcdir)/mk-oct-links, not ./mk-oct-links. + + * qr.cc (qr): Doc fix. + + Tue Jan 28 10:48:28 1997 John W. Eaton + + * Makefile.in (install-inc): Create a relative symbolic link. + (install-bin): Create a relative symbolic link. + + Mon Jan 27 12:12:03 1997 John W. Eaton + + * Version 2.0.2 released. + + * Makefile.in (CXXFLAGS_NO_PT_FLAGS): Rename from XALL_CXXFLAGS. + Substitute bsd_gcc_kluge_targets_frag. + + * sysdep.cc (Fsleep): New function. + (Fusleep): New function. + + * toplev.cc (octave_config_info): Don't include RLD_FLAG. + * oct-conf.h.in: Don't define RLD_FLAG + + Sun Jan 26 19:41:48 1997 John W. Eaton + + * sighandlers.cc (sigchld_handler): Block SIGCHLD while + sigchld_hander is running. + + Sat Jan 25 22:36:39 1997 John W. Eaton + + * Makefile.in (bin-dist): Update for 2.x. + + Fri Jan 24 10:05:00 1997 John W. Eaton + + * mk-oct-links.in: New arg, -p, to just print list of files to link. + + * lex.l (handle_number): Convert `D' or `d' exponents to `e' + before scanning. + + Thu Jan 23 10:00:00 1997 John W. Eaton + + * pt-pr-code.h, pt-pr-code.cc (tree_print_code::visit_no_op_command): + New function. + * pt-cmd.h, pt-cmd.cc (tree_no_op_command): New class. + * parse.y (make_break_command, make_continue_command, + make_return_command): Where they don't really make sense, turn + these commands into no-ops. Accept return and break if reading a + script file. + * toplev.cc (parse_and_execute): Handle return and break in script + files. Quit executing commands if an error occurs when reading a + script file. Set global_command to 0 after deleting it. + (main_loop): If not interactive or forced_interactive, handle + break and return, and quit executing commands if an error occurs. + Set global_command to 0 after deleting it. + * error.cc (Ferror): Doc fix. + * pt-walk.h (tree_walker): Add declaration for visit_no_op_command. + + Wed Jan 22 20:54:12 1997 John W. Eaton + + * input.cc (gnu_readline): If not using readline, flush + rl_outstream after printing prompt. + (octave_gets): Also call flush_octave_stdout() if + forced_interactive, not just if interactive. + (do_input_echo): If forced_interactive, only echo prompt and + command line if also reading a script file. + + Tue Jan 21 23:02:34 1997 John W. Eaton + + * SLList.h: Include "BaseSLList.h", not . + + Mon Jan 20 11:11:12 1997 John W. Eaton + + * lex.l (token_stack): Don't declare static. + * pt-plot.cc (tmp_files): Likewise. + * toplev.cc (octave_atexit_functions): Likewise. + * unwind-prot.cc (unwind_protect_list): Likewise. + + * ops.h (MX_MX_BOOL_OP): Correctly handle case of one or both + arguments being empty. Change all callers. + + * oct-stream.cc (printf_value_cache::looking_at_string): + Handle empty strings correctly now that they are 0x0. + + * file-io.cc: Don't include "syswait.h" here. + + Sun Jan 19 22:38:45 1997 John W. Eaton + + * oct-stream.h (octave_base_stream::seek): Declare offset arg as + streamoff, not streampos. + (octave_stream::seek): Likewise. + * oct-strstrm.h (octave_base_strstream::seek): Likewise. + * oct-stdstrm.h (octave_base_stdiostream::seek): Likewise. + * oct-iostrm.h (octave_base_iostream::seek): Likewise. + * oct-fstrm.h (octave_fstream::seek): Likewise. + + Fri Jan 17 18:13:10 1997 John W. Eaton + + * file-io.cc (Ffflush): Handle stdout as a special case. + + * oct-stream.cc (octave_stream_list::do_get_file_number): + Do the work for octave_stream::get_file_number. + (octave_stream_list::get_file_number): Convert to static function. + + Wed Jan 8 11:42:44 1997 John W. Eaton + + * log.cc (sqrtm): For complex arg case, compute sqrt, not log. + + Tue Jan 7 00:16:41 1997 John W. Eaton + + * Version 2.0.1 released. + + Mon Jan 6 00:00:07 1997 John W. Eaton + + * pt-mat.cc (tm_row_const_rep::all_mt): New variable. + (tm_row_const::all_empty): New function. + (tm_row_const::tm_row_const_rep::init): Set all_mt here. + (tm_const::all_mt): New variable. + (tm_const::all_emtpy): New function. + (tm_const::init): Set all_mt here. + (tree_matrix::eval): Return an empty matrix if the list contains + only empty elements. If it contains only empty strings, return an + empty string. + + Sun Jan 5 12:50:25 1997 John W. Eaton + + * ops.h (SC_MX_BOOL_OP, MX_SC_BOOL_OP): New arg, empty_result. + * op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, op-cm-s.cc, op-cs-cm.cc, + op-cs-m.cc, op-m-cm.cc, op-m-cs.cc, op-m-m.cc, op-m-s.cc, + op-s-cm.cc, op-s-m.cc, op-str-str.cc: Change all uses of + SC_MX_BOOL_OP and MX_SC_BOOL_OP macros. Return correct results + for empty matrix cases. + + * pt-fcn.cc (tree_function::eval): If Vdefine_all_return_values is + true, initialize return values before evaluating function, for + compatibility with Matlab. + + * oct-stream.cc (get_size): Correctly set size when arg is scalar. + + Thu Jan 2 12:40:10 1997 John W. Eaton + + * Makefile.in (install-oct): Quote $(OCT_FILES) in for loop to + avoid syntax error from ksh. + + * pr-output.cc (octave_print_internal): Avoid unused parameter + warning from gcc. + + Thu Dec 19 12:13:42 1996 John W. Eaton + + * oct-stream.cc (octave_base_stream::do_scanf): + Don't treat %l{e,f,g} differently from %{e,f,g}. + (octave_base_stream::do_oscanf): Likewise. + + * sighandlers.cc (sigchld_handler): Fix typos. + + Wed Dec 18 20:17:23 1996 John W. Eaton + + * file-io.cc (Ffgetl, Ffgets): Also return number of characters read. + + * ov-range.cc (octave_range::not): New function. + * ov-range.h (octave_range::uminus): New function. + + * BaseSLList.cc: Include error.h. + (BaseSLList::error): Call ::error() to process error message. + + Fri Dec 13 02:38:19 1996 John W. Eaton + + * ov.cc (octave_value::convert_and_assign): Preserve lhs value if + assignment fails. + + Wed Dec 11 12:33:16 1996 John W. Eaton + + * pt-plot.cc (GPLOT_CMD_END): Don't put semicolons at the end of + each plot command; it causes trouble with gnuplot 3.5. + + Tue Dec 10 00:31:13 1996 John W. Eaton + + * Version 2.0 released. + + * pr-output.cc (set_format_style): Don't try to access argv unless + argc > 1. + + * SLList-expr.cc SLList-misc.cc SLList-plot.cc SLList-str.cc + SLList-tc.cc SLList-tm.cc SLList.h SLStack-i.cc SLStack-pc.cc + SLStack-str.cc SLStack-sym.cc SLStack-tok.cc SLStack-ue.cc + SLStack-ui.cc, pt-mat.cc: Include Stack.h, Stack.cc, SLStack.cc, + and SLList.cc as necessary. + + * Stack.cc, SLStack.cc, SLList.cc: New files. + * Makefile.in (SOURCES): Add them to the list. + + Mon Dec 9 12:03:45 1996 John W. Eaton + + * Makefile.in (install-bin): Use $(EXE) suffix so install will + find the right file on cygwin32 systems. + + * ov.h: Declare proper form of do_binary_op as friend to + octave_value class. + + Sat Dec 7 22:00:10 1996 John W. Eaton + + * oct-stream.cc (do_printf_conv, do_scanf_conv, + do_oscanf_num_conv, do_oscanf_str_conv): Convert to real + functions instead of CPP macros, using templates where necessary. + (do_oscanf_num_conv, do_oscanf_str_conv): Correctly handle + discarded values. + + Fri Dec 6 00:20:25 1996 John W. Eaton + + * Version 1.94. + + * Map-*.cc, SLList-*.cc, SLStack-*.cc: Include config.h. + + * ov.h: Don't include SLList.h. + + * SLStack.cc: Delete. Move everything to SLStack.h. + + * BaseSLList.h, BaseSLList.cc: New files. Split out the + non-template base class parts of SLList. + + * Makefile.in (TEMPLATE_SRC): Delete. Move files to SOURCES. + * Map.h, Map.cc: Add #pragma interface/implementation. + * SLStack.h, SLStack.cc: Add #pragma interface/implementation. + + * SLList.h, SLList.cc: New files, from libg++, but with #pragma + interface/implementation. + * Makefile.in (SOURCES): Add SLList.cc. + (INCLUDES): Add SLList.h. + + Thu Dec 5 18:36:44 1996 John W. Eaton + + * octave.cc: Don't include sun-utils.h. + + Tue Dec 3 23:47:09 1996 John W. Eaton + + * op-str-str.cc (eq, ne): Handle operations with scalars. + + Thu Nov 21 12:30:36 1996 John W. Eaton + + * ov-str-mat.h (octave_char_matrix_str): Provide transpose and + hermitian operators. + * ov-ch-mat.h (octave_char_matrix): Likewise. + + Wed Nov 20 00:35:57 1996 John W. Eaton + + * sighandlers.h (struct octave_interrupt_handler): Provide + forward declaration here. + * sighandlers.cc (octave_interrupt_handler): New struct. + (octave_catch_interrupts): Rename from catch_interrupts. + (octave_ignore_interrupts, octave_set_interrupt_handler): + New functions. + * help.cc, oct-hist.cc, pager.cc, toplev.cc: Use new functions for + handling interrupts so that we can hide the details of whether or + not we have to deal with SIGBREAK. + + * pt-plot.cc [! HAVE_POSIX_SIGNALS] (open_plot_stream): + Simply ignore and restore the interrupt handler here. + + * sighandlers.cc (MAYBE_REINSTALL_SIGHANDLER): New macro. Use it + instead of always checking MUST_REINSTALL_SIGHANDLERS everywhere. + (sigchld_handler): If octave_child_list is empty, wait for any + child, but don't hang, and don't collect status info. + [__EMX__] (sigchld_handler): Save and restore handlers for SIGINT, + SIGBREAK, and SIGCHLD. Ignore them while waiting on children. + (install_signal_handlers): If SIGBREAK exists, handle it like SIGINT. + + * toplev.cc [USE_READLINE] (clean_up_and_exit): + Call rl_deprep_terminal() to restore terminal settings. + + * sysdep.cc [__EMX__ && OS2] (Fextproc): New command. + [__EMX__ && OS2] (FEXTPROC): Alias for Fextproc. + + * Version 1.93. + + * sysdep.cc (octave_chdir): [__EMX__]: Make copy of string before + converting to upper case. + + * getgrent.cc (mk_gr_map): Only set the passwd field if + HAVE_GR_PASSWD is defined. + + Tue Nov 19 12:01:13 1996 John W. Eaton + + * sysdep.cc (OS2_init): New function. + [__EMX__] (sysdep_init): Call it. + + * lex.l (plot_style_token): Add new plot styles for gnuplot 3.6. + * pt-plot.cc (subplot_style::columns_ok): Rename from + subplot_style::errorbars. Recognize more styles and do a better + job of diagnosing column number/style mismatches. + + * sighandlers.cc (my_friendly_exit): If we are called twice, try + to remove the signal handler for SIGABRT and the call abort (). + + * help.cc (Ftype): If a function is defined from a file and + transformed text has not been requested, just print the contents + of the file. + + * parse.y (fold): New functions for constant folding for binary + and unary expressions. Keep track of original text even when + transformations occur. + (make_binary_op, make_boolean_op, make_unary_op): Use them. + (finish_colon_expression, finish_matrix): Keep track of original + text even when transformations occur. + + * help.cc (Ftype): Don't mess with Vps4. + Handle new option `-transformed'. + + * pt-const.h, pt-const.cc (tree_constant::print): + New arg, pr_orig_text. + + * pt-exp.h, pt-exp.cc (tree_colon_expression::is_range_constant): + Delete. + + * pt-exp-base.h (tree_expression::original_text): New virtual function. + pt-exp-base.cc (tree_expression::original_text): Default version. + + * pt-pr-code.h (tree_print_code::print_original_text, + tree_print_code::prefix): New fields. + * pt-pr-code.cc (tree_print_code::visit_constant): Pass + print_original_text to tree_constant::print(). + (tree_print_code::indent): Use prefix instead of Vps4. + * pt-fcn.cc (tree_function::print_function_header, + tree_function::print_function_trailer): Pass Vps4 to + tree_print_code_constructor for prefix. + * pt-misc.cc (tree_statement::maybe_echo_code): Pass Vps4 to + tree_print_code_constructor for prefix. + + * pt-mat.h, pt-mat.cc (tree_matrix::all_elements_are_constant): + Rename from is_matrix_constant. + (tree_matrix_row::all_elements_are_constant): Likewise. + Change all callers. + + Mon Nov 18 14:13:32 1996 John W. Eaton + + * Makefile.in (install-inc): Try harder to create the link from + include/octave to include/octave-VERSION. + + Sun Nov 17 14:14:48 1996 John W. Eaton + + * Makefile.in (parse.cc): Expect 13 shift/reduce conflicts. + + * parse.y (set_stmt_print_flag): New function. + (sep_type): New member for bison %union declaration. + Simplify rules for statement lists keeping track of the type of + the first separator in the values associated with the + nonterminals for the separators. + + * lex.l (handle_identifier): Set lexer_flags.doing_set if the + token is "gset", not "set". + + Sat Nov 16 21:41:26 1996 John W. Eaton + + * Makefile.in (parse.cc, lex.cc): Add special rules for these files. + Delete pattern rules for .y and .l files. + + Fri Nov 15 13:48:02 1996 John W. Eaton + + * pt-plot.cc: Put semicolons at the ends of all plot commands. + + * defaults.cc (subst_octave_home): Start subsequent searchs from + the end of the replaced text. + + * pr-output.cc (pr_any_float): Kluge for SCO systems. + + * pr-output.cc (pr_any_float, pr_complex): Don't declare inline. + + * mappers.cc: Include lo-ieee.h, for isinf and isnan on SCO + systems. + + Thu Nov 14 00:06:19 1996 John W. Eaton + + * pt-plot.cc (Fgset, Fgshow): New commands. + (Fshow): Print warning and call gshow. + (Fset): Print warning and call gset. + + * variables.cc (parse_fcn_file): Add unwind-protect for file + pointer, so the file is always closed. + (get_help_from_file): Likewise. + * toplev.cc (parse_and_execute): Likewise. + + * Makefile.in (install-oct): Depend on mk-oct-links. + (mk-oct-links): New target. + + * Version 1.92. + + Wed Nov 13 11:13:22 1996 John W. Eaton + + * sighandlers.cc (sys_siglist): [__EMX__]: Add definitions. + + * octave.cc (execute_startup_files): Allow init file name ot be + specified by an environment variable. + + * dirfns.cc (make_absolute): [__EMX__]: Path is already absolute + if it begins with any character followed by a colon. + + * load-save.cc (read_mat_ascii_matrix, get_lines_and_columns, + get_complete_line): New functions, for reading headless text files. + (load_save_format): Add LS_MAT_ASCII, for headless text files. + (do_load): Handle LS_MAT_ASCII files. + Thanks to Mel Melchner for initial version + of this code. + + * sysdep.cc: Conditionally include ieeefp.h. + (BSD_init, SCO_init): New functions. + (sysdep_init): Conditionally call them here. + + Tue Nov 12 00:14:56 1996 John W. Eaton + + * pt-plot.cc (open_plot_stream): Don't block SIGCHLD. + + * load-save.cc (read_binary_data): When reading string arrays, be + sure to create an octave_char_matrix_str object, not just an + octave_char_matrix object. + (read_ascii_data): Likewise. + + Mon Nov 11 22:52:58 1996 John W. Eaton + + * load-save.cc (read_binary_data): Don't forget teminating NUL for + string that we plan to insert. + (read_ascii_data): Likewise. + + Sun Nov 10 16:58:07 1996 John W. Eaton + + * dirfns.cc (Ffnmatch): New function. + + * octave.cc (intern_argv): Use new string_vector constructor. + + * ov-str-mat.cc (octave_char_matrix_str::all_strings): Have + charMatrix::row_as_string() strip trailing whitespace. + + * dirfns.cc (Fglob): new function. + + * sysdep.cc (oct_tilde_expand): Provide version that works on + string vectors too. + (Ftilde_expand): Work on string vector args. + + * load-save.cc (save_binary_data): Call char_matrix_value() to + extract charMatrix from octave_value object, not all_strings(). + (save_ascii_data): Likewise. + * pt-mat.cc (tree_matrix::eval): Likewise. + + * ov.h (octave_value::all_strings): Return string_vector, not + charMatrix. + * ov-base.cc (octave_base_value::all_strings): Likewise. + * ov-str-mat.h, ov-str-mat.cc (octave_char_matrix_str::all_strings): + Likewise. + + Fri Nov 8 09:54:59 1996 John W. Eaton + + * defaults.cc, dynamic-ld.cc, fn-cache.cc, help.cc, oct-hist.cc, + octave.cc, pager.cc, pt-fcn.cc, toplev.cc, utils.cc, variables.cc, + lex.l: Change #include "" to #include <> for defaults.h, + oct-conf.h, oct-gperf.h, y.tab.h, and version.h, to avoid getting + them from $srcdir when we really want the version from the build + directory. (Maybe this should be done for all the include files, + not just those that are auto-generated? Hmm.) + + * defaults.h.in (CXXLIB_LIST, CXXLIB_PATH, FLIB_LIST, FLIB_PATH): + Delete. + + * Makefile.in (install-oct): Use $(INSTALL_PROGRAM) for .oct files. + + Thu Nov 7 07:59:07 1996 John W. Eaton + + * variables.cc (gobble_leading_white_space): New arg, update_pos. + * (is_function_file): Don't update file position information here. + + * Version 1.91. + + * pt-fvc.cc (tree_indirect_ref::reference): If the lhs object is + not a map, convert it to one. + + * ov-typeinfo.h (init_tab_sz): New static member. + + * ov-struct.cc, ov-struct.h: Add hooks for custom memory management. + * ov-scalar.cc, ov-scalar.h: Likewise. + * ov-re-mat.cc, ov-re-mat.h: Likewise. + * ov-range.cc, ov-range.h: Likewise. + * ov-cx-mat.cc, ov-cx-mat.h: Likewise. + * ov-complex.cc, ov-complex.h: Likewise. + * ov-ch-mat.cc, ov-ch-mat.h: Likewise. + + Wed Nov 6 12:32:48 1996 John W. Eaton + + * pager.cc (do_sync): Don't call clear_external_pager() here. + + * pt-const.h (tree_constant::allocator) New static member. + (tree_constant::operator new, tree_constant::operator delete): + Implement with custom allocator. + + * syscalls.cc (Fgetgid, Fgetegid): New functions. + + * sighandlers.cc (sigchld_handler): If necessary, reinstall + handler after call to waitpid(). + + * pager.cc (pager_death_handler): Don't use warning() to print + message. + + * getgrent.cc: New file. + * Makefile.in (DLD_SRC): Add it. + + * ov.cc (octave_value::print_with_name): Call is_map() instead of + print_as_structure(). + * ov-struct.cc (octave_struct::print): Likewise. + + * ov.h, ov.cc, pt-const.h: Delete force_numeric(), make_numeric(), + convert_to_matrix_type(), print_as_structure() member functions. + + * variables.cc (is_function_file): Call gobble_leading_whitespace + here to strip all leading whitespace and comments. + (parse_fcn_file): If reading a function file, call + gobble_leading_whitespace again after resetting parser state to + grab help text. + + Tue Nov 5 13:00:35 1996 John W. Eaton + + * syscalls.cc (Fgeteuid, Fgetuid): New functions. + + * getpwent.cc: Use gripe_not_supported from gripes.cc, instead of + local gripe_not_implemented function. + + * input.cc, sysdep.cc, variables.cc: Only include readline.h and + history.h if USE_READLINE is defined. + + * help.cc: Make it compile without warnings even if USE_GNU_INFO + is not defined. + + * sighandlers.h (octave_child_list): Don't define + HAVE_POSIX_SIGNALS HERE. + + * sighandlers.cc (SIGHANDLER_RETURN): New macro. + (generic_sig_handler, sigchld_handler, sigfpe_handler, + sigint_handler, sigpipe_handler): Use it. + (sigchld_handler, sigfpe_handler, sigint_handler, sigpipe_handler): + Only reinstall signal handler if MUST_REINSTALL_SIGHANDLER is defined. + + Sun Nov 3 00:45:30 1996 John W. Eaton + + * pt-const.cc (tree_constant::print): Just call val.print(). + * ov-base.cc, ov-ch-mat.cc, ov-colon.cc, ov-complex.cc, + ov-cx-mat.cc, ov-range.cc, ov-re-mat.cc, ov-scalar.cc, + ov-str-mat.cc, ov-struct.cc ov-va-args.cc, ov.cc (print): + Handle pr_as_read_syntax arg. + + * defaults.cc (subst_octave_home): Search for prefix repeatedly in + retval, not s. + + * gripes.h: Make declaration of gripes_not_supported match + definition. + + * mk-oct-links.in: In sed command, match "DEFUN_DLD *( *", not + "DEFUN_DLD_BUILTIN *( *". + + * chol.cc, colloc.cc, dassl.cc, det.cc, eig.cc, expm.cc, fft.cc, + fft2.cc, filter.cc, find.cc, fsolve.cc, fsqp.cc, getpwent.cc, + getrusage.cc, givens.cc, hess.cc, ifft.cc, ifft2.cc, inv.cc, + log.cc, lpsolve.cc, lsode.cc, lu.cc, minmax.cc, npsol.cc, pinv.cc, + qpsol.cc, qr.cc, quad.cc, qzval.cc, rand.cc, schur.cc, sort.cc, + svd.cc, syl.cc, time.cc: Change all uses of DEFUN_DLD_BUILTIN to + be just DEFUN_DLD. + + * defun-dld.h: Eliminate DEFUN_DLD_BUILTIN. + + * syswait.h: Use #ifdef HAVE_SYS_WAIT_H, not #if HAVE_SYS_WAIT_H + to decide whether to include sys/wait.h. + + * pt-exp-base.h (tree_expression): Declare oper() here as a + virtual member function. + + * pt-pr-code.cc (tree_print_code::visit_constant): Check for + string before checking for char_matrix. + + * ov-ch-mat.cc (octave_char_matrix::print): Supply correct number + of args to octave_print_internal(). + + Sat Nov 2 20:44:55 1996 John W. Eaton + + * file-io.cc (Ftmpnam): Rename from Foctave_temp_file_name. + + * Makefile.in (DLD_SRC): Move time.cc and getrusage.cc here from + SOURCES. Add getpwent.cc. + + * getrusage.cc: Rename from resource.cc. Make getrusage a + loadable function. + + * time.cc: Rename from timefns.cc. Make time functions loadable. + + * getpwent.cc: New file. + + Wed Oct 30 01:06:19 1996 John W. Eaton + + * Version 1.90. + + * Makefile.in (DISTFILES): Add ChangeLog. + + * ov-range.cc (octave_range::convert_to_str): New function. + + * ov-str-mat.h (octave_char_matrix_str::char_matrix_value): + Delete function. Already handled by octave_char_matrix class. + + * ov-ch-mat.h (octave_char_matrix::convert_to_str): New function. + + * pager.cc (Fmore): Set page_screen_output to 1.0 or 0.0, not + "true" or "false". + + * ov-ch-mat.cc, ov-struct.cc, ov-struct.h, pr-output.cc, + pt-cmd.cc, pt-const.cc, pt-const.h, pt-fcn.cc, pt-fvc-base.cc, + pt-fvc-base.h, pt-fvc.cc, pt-fvc.h, rand.cc, sighandlers.cc, + variables.cc, variables.h: Delete unused code. + + * octave.cc: Only include pwd.h if HAVE_PWD_H. + + * oct-strstrm.h: Include , not . + + * defaults.cc, dirfns.cc, file-io.cc, help.cc, input.cc, + oct-hist.cc, oct-procbuf.cc, oct-procbuf.h, octave.cc, pager.h, + procstream.h, pt-misc.cc, pt-plot.cc, sighandlers.cc, strftime.c, + syscalls.cc, sysdep.cc, syswait.h, toplev.cc, utils.cc, + variables.cc: Only include sys/types.h if HAVE_SYS_TYPES_H. + + * error.h (panic): Use GCC_ATTR_NORETURN macro, not NORETURN. + * toplev.h (clean_up_and_exit): Likewise. + * utils.h (jump_to_top_level): Likewise. + + * derfaults.h.in, defaults.cc (local_arch_lib_dir): New variable. + * defaults.cc (set_default_local_arch_lib_dir): New function. + (install_defaults): Call it. + (exec_path): Use Vlocal_arch_lib_dir here. + * toplev.cc (octave_config_info): Add localarchlibdir to structure. + + Tue Oct 29 15:54:27 1996 John W. Eaton + + * Makefile.in (install-oct): Don't do anything if $(OCT_FILES) is + empty. + + * ov-range.cc (octave_range::index): New Function. + (octave_range::all, octave_range::any, octave_range::is_true): + Make these functions work. + + * ov.cc (octave_value::try_assignment_with_conversion): Remove + left over debugging print statements. + + Mon Oct 28 10:49:03 1996 John W. Eaton + + * strftime.c: Add missing #endif for previous change. + + Sun Oct 27 14:06:44 1996 John W. Eaton + + * oct-hist.cc (do_history): Rewite option parsing to avoid + (probably bogus) errors from g++ on cygwin32 system. + + * strftime.c: Use autoconf macros TIME_WITH_SYS_TIME and + HAVE_SYS_TIME_H to decide which time.h files to include. + + * oct-stream.h, oct-stream.cc (octave_stream::error, + octave_base_stream::error): Rename errno => err_num. + + Sat Oct 26 10:40:05 1996 John W. Eaton + + * oct-hist.cc (do_history): Move declaration of file inside + conditional. + + * defun.h (DEFVAR_INT): Set eternal flag with (svc_fcn != 0) + instead of (sv_fcn ? 1 : 0) + + Fri Oct 25 01:10:51 1996 John W. Eaton + + * ov-ch-mat.h (octave_char_matrix::any): Return 0.0 instead of false. + (octave_char_matrix::all): Likewise. + + * input.cc (Fecho): When binding value of echo_executing_commands, + cast ECHO_* to double. + + * sighandlers.cc (octave_child_list::do_remove): Delete unused + variable `enlarge'. + + * pt-const.h (tree_constant::tree_constant (const tree_constant&)): + Don't pass arg to tree_fvc constructor. + + * resource.cc (getrusage): [HAVE_GETRUSAGE && RUSAGE_TIMES_ONLY]: + Only fill in time values. + + Thu Oct 24 20:37:28 1996 John W. Eaton + + * parse.y: Comment out the %expect declaration so byacc can + compile this file. + (if_cmd_list): Add missing semicolon. + Include for getenv if using byacc. + + * ov.h: Move typedefs outside of octave_value class scope to avoid + problem with cygwin32 beta16 compiler. + + Fri Oct 18 13:44:33 1996 John W. Eaton + + * ov.h (octave_value::index): Undo previous change. + * ov.cc (octave_value constructors): Call maybe_mutate() in most + cases. + + * ov-complex.cc (octave_complex::index): Avoid implicit type + conversion back to scalar type. + * ov-scalar.cc (octave_scalar::index): Likewise. + + * ov.h (octave_value::index): Call maybe_mutate() on retval before + returning it. + + Wed Oct 16 12:00:11 1996 John W. Eaton + + * ov.h (octave_value::struct_elt_val): New optional arg, silent. + * ov-base.h, ov-base.cc, ov-struct.h, ov-struct.cc: Likewise, but + for the derived classes the arg is required. + + * data.cc (Fstruct_contains): Require arguments to be struct and + string, respectively. Call octave_value::struct_elt_val with + silent flag set. + + * pt-mat.cc (tm_row_const::tm_row_const_rep::eval_error, + tm_row_const::tm_row_const_rep::eval_warning): New functions. + (tm_row_const::tm_row_const (const tree_matrix_row&): Use them to + give better error messages. + + * pt-fvc.cc (tree_identifier::eval): Avoid dereferencing null + object_to_eval. + + Tue Oct 15 11:35:51 1996 John W. Eaton + + * op-cs-cm.cc, op-cs-cs.cc, op-cs-m.cc, op-cs-s.cc + (complex_matrix_conv): New functions. + Install preferred assignment conversion and widening ops. + + * op-s-cm.cc, op-s-cs.cc (complex_matrix_conv): New functions. + Install preferred assignment conversion and widening ops. + + * op-s-m.cc, op-s-s.cc (matrix_conv): New functions. + Install preferred assignment conversion and widening ops. + + * ov.cc (octave_value::try_assignment_with_conversion, + octave_value::convert_and_assign, octave_value::try_assignment): + New functions. + (octave_value::assign): Use them to implement twisted logic for + type conversions in assigments. + + * pt-const.h (tree_constant::maybe_mutate): New function. + * ov.h (octave_value::maybe_mutate): New function. + (octave_value::try_narrowing_conversion): New function. + Use just one typedef for widening_op_fcn and numeric_conv_fcn. + Change all uses. + * ov-base.h, ov-complex.h, ov-complex.cc, ov-cx-mat.h, + ov-cx-mat.cc, ov-range.h, ov-range.cc, ov-re-mat.h, ov-re-mat.cc, + Provide derived class versions of try try_narrowing_conversion(). + + * pr-output.cc (octave_print_internal): Don't bother handing off + to scalar/real versions, even when it would seem appropriate. + + * symtab.cc (symbol_def::define (tree_constant *)): Call + maybe_mutate on constants here. + + Mon Oct 14 11:05:24 1996 John W. Eaton + + * pt-fvc.cc (tree_identifier::eval): If retval is undefined and + the object to eval is a constant, print error message. + + * Makefile (distclean): Remove *.oct too. + + * defun-int.h: Include variables.h here. + + Sun Oct 13 10:52:28 1996 John W. Eaton + + * variables.cc (print_symbol_info_line): Never print negative + diminsions. + + * symtab.h (octave_symbol_record_info): Store const_type as string. + (octave_symbol_record_info::init): Delete. Fix constructors. + (octave_symbol_record_info::type_name): Handle const_type as string. + + * octave.cc (maximum_braindamage): Replace "true" with 1.0 and + "false" with 0.0 in calls to bind_builtin_variable(). + Include sun-utils.h here. + (intern_argv): Also bind __argv__. + + Sat Oct 12 13:40:21 1996 John W. Eaton + + * Makefile.in (distclean): Also delete mk-oct-links. + + Fri Oct 11 13:13:13 1996 John W. Eaton + + Changes for Octave's new type system: + + * arith-ops.cc: Delete. + * pt-const.h, pt-const.cc: Massive changes. Most functionality + moved to ov.h, ov.cc, and derived classes. + + * variables.h, variables.cc (octave_variable_reference): New class + for getting references to variables and structure elements used in + assignments or value contexts. + + * symtab.h, symtab.cc (symbol_record::define (const octave_value&), + symbol_record::variable_value, symbol_record::variable_reference): + New functions. + (symbol_record_info::type_name): Rename from type_as_string. + + * pt-fvc-base.h, pt-fvc-base.cc (tree_fvc::increment, + tree_fvc::decrement): New functions to replace + tree_fvc::bump_value. + #if 0 assign and lookup_map_element functions. + + * pt-mvr.cc (tree_multi_assignment_expression::eval): + Generated RHS value is now a tree_constant. + + * pt-exp.h, pt-exp.cc (tree_boolean_expression): New class. + (tree_unary_expression, tree_binary_expression, + tree_boolean_expression): Move codes here from tree_expression. + (tree_simple_assignment_expression): Cope with changes to way of + doing assignments. + + * pt-exp-base.h, pt-exp-base.cc (enum type): Delete codes for + unary and binary ops. + (tree_expression::expression_type): Delete. + (tree_expression::is_logically_true): Hand off to + octave_value::is_true to do real work. + + * pr-output.h, pr-output.cc (any_element_is_inf_or_nan, + all_elements_are_ints): Delete. Call member new functions for + these operations. + (free_format, plus_format, bank_format, hex_format, + compact_format, print_e, print_big_e): Use bool, not int. + (octave_print_internal): Hand off to scalar/real versions when + appropriate. + + * octave.cc (main): Call initialize_types() and install_ops(). + (verbose_usage): Add WWW address to output. + + * parse.y (indirect_ref): Handle by making a tree instead of a + list using new version of tree_indirect_ref class. + + * parse.y (make_boolean_op): New function. Use it instead of + make_binary_op to create trees for && and || ops. + (make_binary_op): Codes come from tree_binary_expression now, + instead of tree_expression. + (make_unary_op): Codes come from tree_unary_expression now, + instead of tree_expression. + (make_boolean_op): Codes come from tree_boolean_expression. + + *parse.y (tree_constant_type): Change type to tree_constant* from + octave_value*, and rename from octave_value_type. Change uses. + + * defun.h (DEFVAR_INT): Pass octave_value not pointer to + octave_value for defn when creating builtin_variable. + + * gripes.h, gripes.cc (gripe_invalid_conversion): Args are + strings, not char*. + (gripe_implicit_conversion, gripe_divide_by_zero): New extern + gripe functions. + + * mkbuiltins: For each file, create a separate static function to + install builtins, then create another single extern function to + call all of them. + + * pt-fcn.cc (tree_function::bind_nargin_and_nargout): + Just pass doubles and let symbol_record::define handle creating + new value. + + * pt-pr-code.cc, pt-pr-code.h (visit_constant): Renamed from + visit_octave_value. + (visit_unary_expression): Use tree_expression::is_prefix_op() + instead of switch on op types. + + * pt-walk.h (visit_constant): Renamed from visit_octave_value. + + * pt-misc.cc (initialize_undefined_elements): Get reference to + tmp, then assign. + * pt-cmd.cc (do_for_loop_once): Likewise, for loop identifier. + + * input.cc (generate_struct_completions, looks_like_struct): Cast + tmp_fvc to tree_constant*, not octave_value*. + (get_user_input): Call print() on retval, not eval(1). + + * help.cc (Ftype): Cast defn to tree_constant*, not octave_value*. + + * balance.cc: Fix docstring. + + * dassl.cc, fsolve.cc, load-save.cc, lsode.cc, npsol.cc, qpsol.cc, + quad.cc: + Include pt-fvc.h. + + * data.cc (Fstruct_contains): call octave_value::struct_elt_val, + not octave_value::lookup_map_element. + + * dirfns.cc (Fcd): Pass directory name as string directly to + bind_builtin_variable instead of creating new octave_value. + + * toplev.cc: Include pt-fvc.h and lo-mappers.h + + * data.cc, error.cc, file-io.cc, load-save.cc, pager.cc, + pt-mat.cc, pt-plot.cc, syscalls.cc, toplev.cc: + Include variables.h. + + * Array-tc.cc, Map-tc.cc, SLList-misc.cc SLList-tc.cc, data.cc, + defaults.cc, dynamic-ld.cc, error.cc, gripes.cc, lex.l, octave.cc, + oct-map.h, oct-map.cc, oct-obj.h, pt-cmd.cc, pt-exp.cc, pt-fcn.cc, + pt-fvc-base.cc, pt-mat.cc, pt-misc.cc, pt-mvr-base.cc, pt-mvr.h, + resource.cc, strfns.cc, sysdep.cc, timefns.cc, toplev.cc: + Include ov.h instead of pt-const.h. + + * xpow.cc (any_element_is_negative): Delete. + (xpow and elem_xpow functions): Check conformance here. + + * xdiv.cc (mx_leftdiv_conform, mx_div_conform): + Now template-based, taking Matrices instead of dimensions as args. + Change all callers. + + * op-cm-cm.cc, op-cm-cm.h, op-cm-cs.cc, op-cm-cs.h, op-cm-m.cc, + op-cm-m.h, op-cm-s.cc, op-cm-s.h, op-cs-cm.cc, op-cs-cm.h, + op-cs-cs.cc, op-cs-cs.h, op-cs-m.cc, op-cs-m.h, op-cs-s.cc, + op-cs-s.h, op-m-cm.cc, op-m-cm.h, op-m-cs.cc, op-m-cs.h, op-m-m.cc, + op-m-m.h, op-m-s.cc, op-m-s.h, op-s-cm.cc, op-s-cm.h, op-s-cs.cc, + op-s-cs.h, op-s-m.cc, op-s-m.h, op-s-s.cc, op-s-s.h, + op-str-str.cc, op-str-str.h, ops.cc, ops.h, ov-base.cc, ov-base.h, + ov-ch-mat.cc, ov-ch-mat.h, ov-colon.cc, ov-colon.h, ov-complex.cc, + ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, ov-range.cc, ov-range.h, + ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, ov-scalar.h, ov-str-mat.cc, + ov-str-mat.h, ov-struct.cc, ov-struct.h, ov-typeinfo.cc, + ov-typeinfo.h, ov-va-args.cc, ov-va-args.h, ov.cc, ov.h: + New files for Octave's new type system. + * Makefile.in: Add them to the appropriate lists. + + Sat Sep 14 21:58:33 1996 John W. Eaton + + * mkbuiltins: Use .df instead of .def. + Write one function for each .df file, then call them + all in install_builtin_functions(). + * Makefile.in: Handle .df instead of .def. + + * balance.cc (balance): Fix typo in doc string. + + Wed Aug 28 21:01:49 1996 John W. Eaton + + * octave.cc (verbose_usage): Include WWW address and bug-octave + mailing list address. + + Tue Aug 20 17:41:19 1996 John W. Eaton + + * Makefile.in: Only define pattern rules for making .oct files if + OCTAVE_LITE is true. + Only add pic/ to $(TI_OBJ) if $(SHARED_LIBS) is true. + (stamp-picdir): Only create a pic subdirectory if SHARED_LIBS or + OCTAVE_LITE is true AND CPICFLAG or CXXPICFLAG is not empty. + + * minmax.cc (Fmin, Fmax): Deal with changes to Matrix class + min/max methods. + + Thu Jul 25 01:42:38 1996 John W. Eaton + + * input.cc (generate_possible_completions): Force the names to be + unique. + + * load-save.cc (read_mat_binary_data): Expect to read terminating + NUL character in the variable name. + (save_mat_binary_data): Likewise, save it here. + + Wed Jul 24 05:08:07 1996 John W. Eaton + + * lsode.cc (Flsode): Don't set the return value if an error + occurred during integration. + * dassl.cc (Fdassl): Likewise. + + * file-io.cc (symbols_of_file_io): Redefine values of SEEK_SET, + SEEK_CUR, and SEEK_END for Matlab compatibility. + * oct-stream.cc (seek): Check for compatible values of ORIGIN arg. + Also handle "bof", "cof", and "eof". + + Fri Jul 19 15:24:36 1996 John W. Eaton + + * pt-const.cc: When creating octave_value_reps from ComplexMatrix + values, check to see if all the elements are actually real. + + Tue Jul 16 10:53:42 1996 John W. Eaton + + * input.cc (decode_prompt_string): Swap meanings of \h and \H. + + Mon Jul 15 16:01:51 1996 John W. Eaton + + * toplev.cc (run_command_and_return_output): Renamed from do_system. + (Fsystem): Make `system ("emacs")' work as one would expect. + + Sun Jul 14 17:34:33 1996 John W. Eaton + + * file-io.cc (Ffopen, Ffread, Ffwrite): Update doc strings, + correctly handle default architecture and precision args. + + * load-save.cc (mopt_digit_to_float_format): Rename from + get_floating_point_format. + (float_format_to_mopt_digit): New function. + + * oct-stream.cc (octave_base_stream::read, octave_base_stream::write): + Simplify by calling Matrix::read and Matrix::write to do real work + of reading, writing, and format conversion. + + * oct-stream.h (octave_base_stream): Move data_type enum to + liboctave/data-conv.h. Use float_format from + liboctave/mach-info.h instead of arch_type enum. + + * sysdep.h, sysdep.cc (octave_words_big_endian, ten_little_endians): + Delete. Now part of oct_mach_info class in liboctave. + + Tue Jul 9 11:18:59 1996 John W. Eaton + + * arith-ops.cc, balance.cc, dassl.cc, data.cc, filter.cc, find.cc, + fsolve.cc, load-save.cc, log.cc, lsode.cc, minmax.cc, npsol.cc, + oct-obj.cc, oct-stream.cc, pr-output.cc, pt-cmd.cc, pt-const.cc, + pt-fvc.cc, pt-plot.cc, quad.cc, rand.cc, sighandlers.cc, sort.cc, + syscalls.cc, unwind-prot.cc, xdiv.cc, xpow.cc: + When indexing arrays, use operator() instead of elem() so that + bounds checking can be done consistently. + + Mon Jun 24 02:13:27 1996 John W. Eaton + + * Makefile.in (install-oct): Use INSTALL_PROGRAM, instead of + INSTALL_DATA for installing shared libraries. + + * lex.l (grab_help_text): Ignore all initial comment characters, + not just the first. + * variables.cc (gobble_leading_white_space): Likewise. + + Sat Jun 22 22:43:45 1996 John W. Eaton + + * input.h, input.cc (octave_completion_matches_called): New varaible. + (Fcompletion_matches): Set it to true on a successful call. + * toplev.cc (main_loop): If octave_completion_matches_called is + true, don't increment current_command_number. + + Thu Jun 13 03:52:19 1996 John W. Eaton + + * variables.cc (is_mapper_function_name, + is_builtin_function_name): New functions. + (Fdocument): Use them. + Define as regular function, not a text style function. + + Thu Jun 6 00:09:25 1996 John W. Eaton + + * pt-plot.cc: Handle new built-in variable `gnuplot_has_frames'. + + Wed Jun 5 14:45:04 1996 John W. Eaton + + * input.cc (decode_prompt_string): \h now means the whole host + name and \H is the host name up to the first `.'. + + Thu May 30 23:41:51 1996 John W. Eaton + + * fn-cache.cc (octave_fcn_file_name_cache::do_list): Always + recompute the lists of function files instead of trying to cache + them. + + Tue May 28 12:05:24 1996 John W. Eaton + + * utils.cc (warn_old_style_preference): New function. + (check_preference): Use it. + + * fn-cache.h: Include here. + + Fri May 24 00:57:14 1996 John W. Eaton + + * input.cc (completion_matches): Don't return empty string_vectors. + + * octave.cc (long_opts): Add braindead. + + Thu May 23 01:49:33 1996 John W. Eaton + + * input.cc (gnu_readline): New optional arg, force_readline. + (get_user_input): Use it. + + * pt-const.cc (OCT_VAL_REP::assign): If converting the rhs to a + numeric value, convert a copy, not the actual object. + (OCT_VAL_REP::do_index): Prevent s([]) from resulting in a string + with zero rows. + + * mappers.cc: Handle toascii here. + * strfns.cc: Not here. + + * mappers.cc: Handle tolower and toupper here. + * mappers.h: Rename can_return_complex_for_real to flag and + overload meaning for ch_mapper. + * pt-fvc.cc (apply_mapper_fcn): Handle overloaded meaning. + + * syscalls.cc (stat): Return 3 values instead of just 1. + (lstat): Likewise. + + Wed May 22 02:34:20 1996 John W. Eaton + + * pt-const.cc (OCT_VAL_REP::make_numeric): For string to number + conversions, correctly set type tag before calling force_numeric. + (do_binary_op): Force string to number conversion if both args are + strings and we are doing some sort of comparison operation. + + * Makefile.in (stamp-tinst, stamp-interp): Use SH_TERMLIBS and + SH_LIBS instead of TERMLIBS and LIBS. + + * pt-const.cc (do_unary_op): Add special case to handle + transposing strings. + + * pt-mat.cc (Vstring_fill_char): New variable. + (symbols_of_pt_mat): DEFVAR it. + + * input.cc (generate_struct_completions, + generate_possible_completions): Return string_vector, not char **. + Change all callers. + + * pt-const.cc (lookup_map_element): Use substr() correctly. + + Tue May 21 21:37:17 1996 John W. Eaton + + * oct.h: New file. + * Makefile.in (INCLUDES): Add it to the list. + + * octave.cc: New args --no-site-file and --no-init-file. Delete + --ignore-init-file. The flag --norc (-f) implies both + --no-site-file and --no-init-file. + + Fri May 17 01:54:51 1996 John W. Eaton + + * input.cc (Fcompletion_matches): New function. + + * utils.cc (get_fcn_file_names): Delete. + * help.cc (simple_help): Use new file name cache instead of + calling get_fcn_file_names. + * variables.cc (make_name_list): Likewise. + + * fn-cache.h, fn-cache.cc, Map-fnc.cc: New files. + * Makefile.in: Add them to the lists. + + * Makefile.in (uninstall): Install in octincludedir, not includedir. + + * pt-plot.h: Include here. + + Thu May 16 10:52:51 1996 John W. Eaton + + * oct-stream.cc (octave_stream::oscanf, octave_base_stream::oscanf, + octave_base_stream::do_oscanf): New functions for backward + compatibility with older versions of Octave. + (scanf_format_elt, scanf_format_list): Keep track of width specifier. + * file-io.cc (Fscanf): New function. + (Fscanf, Ffscanf, Fsscanf): Handle compatibility arg. + + Wed May 15 01:00:12 1996 John W. Eaton + + * oct-stream.cc (do_scanf): If doing '%c' conversion, unset + ios::skipws on input stream. + + * sighandlers.h, sighandlers.cc (octave_child, octave_child_list): + New classes for keeping track of the child processes we create. + (sigchld_handler): Check in octave_child_list to see if there is + anything we can do for the child that died. + * pager.cc: Register child pager process. + * pt-plot.cc: Likewise, for the plotter. + * Array-oc.cc: New file + * Makefile.in (TI_SRC): Add it to the list. + + * pager.cc (do_sync): Don't check error_state. + (flushing_output_to_pager): New static variable. + (flush_octave_stdout): Use it to avoid doing anything if already + flushing output. + + * sighandlers.cc (sigchld_handler): Call warning instead of + writing directly to cerr. + (sigpipe_handler): Call warning instead of message. + + * octave.cc (main): Call install_signal_handlers, + initialize_file_io, initialize_symbol_tables, and install_builtins + before parsing command line options. + + * user-prefs.h, user-prefs.cc: Delete. + + * utils.cc (check_preference): Move here. + * user-prefs.cc: From here. + + * defaults.cc: New file. Move initialization stuff from + variables.cc. Move DEFVARS for EDITOR, EXEC_PATH, LOADPATH, + IMAGEPATH, and OCTAVE_VERSION here. + + * user-prefs.h, user-prefs.cc: Delete all stuff related to + INFO_FILE and INFO_PROGRAM. + * help.cc: Move all of that here. + (symbols_of_help): Add DEFVARS for INFO_FILE and INFO_PROGRAM. + + Tue May 14 00:23:06 1996 John W. Eaton + + * pager.cc (do_sync): Be more defensive about sending stuff to the + external pager. + * sighandlers.cc (sigchld_handler): For now, only wait for + octave_pager_pid. Don't call error(). Do set octave_pager_pid to + -1 if the pager process no longer exists. + + * user-prefs.h, user-prefs.cc: Delete all stuff related to + PWD. + * dirfns.cc: Move all of that here. + (symbols_of_dirfns): New function. + * variables.cc (install_builtin_variables): Call it. + + * user-prefs.h, user-prefs.cc: Delete all stuff related to + default_save_format and save_precision. + * load-save.cc: Move all of that here. + (symbols_of_load_save): New function. + * variables.cc (install_builtin_variables): Call it. + + * user-prefs.h, user-prefs.cc: Delete all stuff related to + warn_divide_by_zero. + * arith-ops.cc: Move all of that here. + (symbols_of_arith_ops): New function. + * variables.cc (install_builtin_variables): Call it. + + * mappers.cc: Add wrappers for ctype is* functions so that they + will work on systems that only define them as macros. + + Mon May 13 00:27:08 1996 John W. Eaton + + * user-prefs.h, user-prefs.cc: Delete all stuff related to + suppress_verbose_help_message. + * help.cc: Move all of that here. + (symbols_of_help): New function. + * variables.cc (install_builtin_variables): Call it. + + * user-prefs.h, user-prefs.cc: Delete all stuff related to + treat_neg_dim_as_zero. + * pt-const.cc: Move all of that here. + + * pager.cc (octave_pager_stream::do_sync): Don't return early if + not interactive. + + * data.h: New file. + * Makefile.in (INCLUDES): Add it to the list. + * data.cc (symbols_of_data): New function. Move definition of I, + Inf, J, NaN, e, eps, i, inf, j, nan, pi, realmin, and realmax here. + * variables.cc: From here. + (install_builtin_variables): Call symbols_of_data. + + * file-io.cc (symbols_of_file_io): New function. Move definition + of SEEK_CUR, SEEK_END, SEEK_SET, stdin, stdout, stderr here. + * variables.cc: From here. + (install_builtin_variables): Call symbols_of_file_io. + + * user-prefs.h, user-prefs.cc: Delete all stuff related to + do_fortran_indexing, implicit_str_to_num_ok, + ok_to_lose_imaginary_part, prefer_column_vectors, + prefer_zero_one_indexing, print_answer_id_name, + propagate_empty_matrices, resize_on_range_error, and + struct_levels_to_print. + * pt-const.cc: Move all of that here. + (symbols_of_pt_const): New function. + * variables.cc (install_builtin_variables): Call it. + * pt-fvc.cc (tree_identifier::assign): Use Vresize_on_range_error + instead of user_pref.resize_on_range_error here. + * load-save.cc (save_mat_binary_data): Use Vimplicit_str_to_num_ok + instead of user_pref.implicit_str_to_num_ok here. + * utils.cc (empty_arg): Use Vpropagate_empty_matrices instead of + user_pref.propagate_empty_matrices here. + * pt-exp-base.cc (tree_expression::is_logically_true): Likewise.. + + * pt-fcn.cc (symbols_of_pt_fcn): Also move DEFVAR for + default_return_value here. + + * user-prefs.h, user-prefs.cc: Delete all stuff related to + ps1, ps2, ps4, and completion_append_char. + * input.cc: Move all of that here. + (symbols_of_input): New function. + * variables.cc (install_builtin_variables): Call it. + * pt-pr-code.cc (indent): Use Vps4 instead of user_pref.ps4 here. + * help.cc (Ftype): Also here. + + * user-prefs.h, user-prefs.cc: Delete all stuff related to + automatic_replot, gnuplot_binary, and gnuplot_has_multiplot. + * pt-plot.cc: Move all of that here. + (symbols_of_pt_plot): New function. + * variables.cc (install_builtin_variables): Call it. + + * user-prefs.h, user-prefs.cc: Delete all stuff related to + beep_on_error. + * error.cc: Move all of that here. + (symbols_of_error): New function. + * variables.cc (install_builtin_variables): Call it. + + * user-prefs.h, user-prefs.cc: Delete all stuff related to + empty_list_elements_ok. + * pt-mat.cc: Move all of that here. + (symbols_of_pt_mat): New function. + * variables.cc (install_builtin_variables): Call it. + + * user-prefs.h, user-prefs.cc: Delete all stuff related to + define_all_return_values, return_last_computed_value, and + silent_functions. + * pt-fcn.cc: Move all of that here. + (symbols_of_pt_fcn): New function. + * variables.cc (install_builtin_variables): Call it. + + * user-prefs.h, user-prefs.cc: Delete all stuff related to + whitespace_in_literal_matrix. + * lex.l: Move all of that here. + (symbols_of_lex): New function. + * variables.cc (install_builtin_variables): Call it. + + * user-prefs.h, user-prefs.cc: Delete all stuff related to + warn_assign_as_truth_value, warn_comma_in_global_decl, + warn_function_name_clash, and warn_missing_semicolon. + * parse.y: Move all of that here. + (symbols_of_parse): New function. + * variables.cc (install_builtin_variables): Call it. + + * user-prefs.h, user-prefs.cc: Delete all stuff related to + output_precision, output_max_field_width, print_empty_dimensions, + and split_long_rows. + * pr-output.cc: Move all of that here. + (symbols_of_pr_output): New function. + * variables.cc (install_builtin_variables): Call it. + + * user-prefs.h, user-prefs.cc: Delete all stuff related to + page_screen_output, page_output_immediately, and pager_binary. + * pager.cc: Move all of that here. + + * user-prefs.h (check_preference): Provide declaration. + * user-prefs.cc (check_preference): Make external. + + * toplev.cc (Foctave_config_info): New function. + + * oct-conf.h.in: New file + * Makefile.in (oct-conf.h): New target. + Add it to the appropriate lists. + + * sighandlers.cc (sigchld_handler): Don't complain about wait + returning a negative value. + + * file-io.cc (Fsscanf, Fsprintf): Pass true for second arg of + octave_stream constructor. + + * oct-stream.h (octave_stream): New field, preserve. + (octave_stream::~octave_stream): If preserve, don't delete rep. + + * pager.cc (symbols_of_pager): Set default for + page_output_immediately to 0. + + * toplev.cc (do_system): Correctly handle return_output. + Append ends to output_buf before calling str(). + + * variables.cc: If M_PI and M_E are available, use them. + + * mk-oct-links.in (links_dir): If old link exists, delete it first. + + Sun May 12 01:46:07 1996 John W. Eaton + + * Makefile.in (DISTFILES): List defaults.h.in and oct-gperf.h here. + (INCLUDES): Not here. + (install-inc): New target. + (uninstall): Also delete libraries and include files. + (install-inc): If linkdir is a directory, leave it alone. + (TERMLIBS, LIBPLPLOT, LIBDLFCN): Don't substitute here (now in + Makeconf). + + * oct-stream.cc (octave_base_stream::do_read): Provide initial + value for tmp var. + + * pt-walk.h, pt-pr-code.h, pt-pr-code.cc: New tree-walking classes. + * Makefile.in: Add them to the appropriate lists. + * pt-fvc-base.h, pt-exp-base.cc, pt-fvc-base.cc, pt-mvr-base.cc, + pt-base.cc, pt-mvr.cc, pt-mat.h, pt-mat.cc, pt-fvc.cc, + pt-const.cc, pt-cmd.cc, pt-const.h, pt-misc.cc, pt-plot.cc, + pt-fcn.cc, pt-plot.h, pt-mvr.h, pt-mvr-base.h, pt-misc.h, + pt-fcn.h, pt-exp.h, pt-exp.cc, pt-exp-base.h, pt-fvc.h, pt-cmd.h, + pt-base.h: + Replace print_code stuff with accept() functions. + Add member access functions where necessary. + * help.cc (Ftype): Update to use new method of walking trees to + print text representation of user-defined functions. + + * file-io.cc (Ffscanf): Update doc string. + (Fsscanf): Likewise. + + * oct-stream.cc (octave_base_stream::do_read): Correctly set max_size. + Pad mval with zeros on final resize. + (octave_base_stream::do_scanf): Likewise. + (do_scanf_conv): Correctly resize mval. + + Sat May 11 05:14:09 1996 John W. Eaton + + * pager.cc (octave_pager_buf::sync): Correctly set bypass_pager. + + * lex.l ({SNLCMT}*\]{S}*): Match SNLCMT, not just SNL. + + Fri May 3 11:05:30 1996 John W. Eaton + + * pt-const.cc (OCT_VAL_REP::set_index): Complain if type can't be + indexed. + + * input.cc (get_user_input): Don't increment input line number if + input is coming from eval string. + + * user-prefs.cc: Allow empty strings for prompts. + + Thu May 2 10:50:29 1996 John W. Eaton + + * pt-mvr.h (class tree_oct_obj): Declare values data member const. + + Sun Apr 28 03:16:52 1996 John W. Eaton + + * user-prefs.h (user_preferences): New field, + `page_output_immediately'. + * user-prefs.cc (init_user_prefs): Initialize it. + (page_output_immediately): New function. + * pager.cc (syms_of_pager): Add DEFVAR. + (really_flush_to_pager): New file-scope variable. + (flush_octave_stdout): Set and restore it. + (octave_pager_buf::sync): Check it, user_pref.page_screen_output, + and user_pref.page_output_immediately to decide when to really + flush output. + (more_than_a_screenful): New function. If paging but not + immediately, then check this too. + + * pager.cc (default_pager): Move here from variables.cc. If pager + is less and LESS is not in the environment, append useful flags. + (symbols_of_pager): New function. + * variables.cc (install_builtin_variables): Call it. + Delete pager-related DEFVARs. + + * syswait.h (WIFSIGNALLED): Define if sys/wait.h doesn't. + + * sighandlers.cc: Handle SIGCHLD. + + * pager.cc, pager.h: Rewrite. + * pt-mvr.cc, pt-misc.cc, pt-fcn.cc, pt-const.cc, oct-hist.cc, + file-io.cc, help.cc, variables.cc, qpsol.cc, dassl.cc, quad.cc, + npsol.cc, lsode.cc, fsolve.cc, load-save.cc, dirfns.cc, octave.cc, + toplev.cc, error.cc, input.cc: + Write to octave_stdout and octave_diary instead of calling + maybe_page_output() or maybe_write_to_diary_file(). + + * oct-procbuf.h, oct-procbuf.cc: New files. + * procstream.h (class procstreambase): Use octave_procbuf instead + of procbuf from libg++, so we can get pids of subprocesses. + + Fri Apr 26 01:21:29 1996 John W. Eaton + + * pt-const.cc (OCT_VAL_REP::do_index): Call maybe_mutate() before + returning. + + * mappers.h (struct Mapper_fcn): Delete. + (struct builtin_mapper_function): New field ch_mapper. + * pt-fvc.h (tree_builtin): Convert type of mapper_fcn from + Mapper_fcn to builtin_mapper_function. + * variables.cc (install_builtin_mapper): Likewise, for arg. + Simplify, since we don't have to do the copying ourselves now. + * pt-fvc.cc (apply_mapper_function): Handle ch_mapper case. + * defun.h (DEFUN_MAPPER): Likewise. + * mappers.cc (install_builtin_mappers): Likewise. + Add ctype is* functions here. + + Thu Apr 25 00:57:06 1996 John W. Eaton + + * arith-ops.h, defun-int.h, defun.h, dynamic-ld.h, gripes.h, + load-save.h, oct-map.h, oct-obj.h, oct-stream.h, pt-cmd.h, + pt-const.h, pt-exp-base.h, pt-exp.h, pt-fcn.h, pt-fvc-base.h, + pt-fvc.h, pt-mat.h, pt-misc.h, pt-mvr-base.h, pt-mvr.h, pt-plot.h, + symtab.h, toplev.h, utils.h, variables.h, xpow.h, Array-tc.cc, + Map-i.cc, Map-tc.cc, SLList-tc.cc, arith-ops.cc, balance.cc, + bogus.cc, chol.cc, colloc.cc, dassl.cc, data.cc, det.cc, + dirfns.cc, eig.cc, error.cc, expm.cc, fft.cc, fft2.cc, file-io.cc, + filter.cc, find.cc, fsolve.cc, fsqp.cc, givens.cc, gripes.cc, + help.cc, hess.cc, ifft.cc, ifft2.cc, input.cc, inv.cc, + load-save.cc, log.cc, lpsolve.cc, lsode.cc, lu.cc, minmax.cc, + npsol.cc, oct-hist.cc, oct-obj.cc, oct-stream.cc, pager.cc, + pinv.cc, pr-output.cc, pt-cmd.cc, pt-const.cc, pt-exp-base.cc, + pt-exp.cc, pt-fcn.cc, pt-fvc-base.cc, pt-fvc.cc, pt-mat.cc, + pt-misc.cc, pt-mvr-base.cc, pt-mvr.cc, pt-plot.cc, qpsol.cc, + qr.cc, quad.cc, qzval.cc, rand.cc, resource.cc, schur.cc, sort.cc, + strfns.cc, svd.cc, syl.cc, symtab.cc, syscalls.cc, sysdep.cc, + timefns.cc, toplev.cc, utils.cc, variables.cc, xpow.cc, parse.y: + Rename tree_constant -> octave_value. + Rename Octave_object -> octave_value_list. + + Wed Apr 24 22:15:34 1996 John W. Eaton + + * toplev.cc (Fsystem): Merge functionality of async_system and + sync_system. + + * oct-fstrm.h, oct-iostrm.h, oct-prcstrm.h, oct-stdstrm.h, + oct-stream.h, oct-strstrm.h, oct-fstrm.cc, oct-iostrm.cc, + oct-prcstrm.cc, oct-stdstrm.cc, oct-stream.cc, oct-strstrm.cc, + Array-os.cc: New files. + * Makefile.in: Add them to the appropriate lists. + * file-io.cc: Rewrite to use new stream classes. + + Tue Apr 23 18:59:25 1996 John W. Eaton + + * gripes.cc (gripe_not_supported): New function. + + * toplev.cc (do_octave_atexit, Fatexit): New functions. + (octave_atexit_functions): New file-scope variable. + * octave.cc (main): Register do_octave_atexit with atexit. + + * variables.cc (install_builtin_variables): Call + symbols_of_syscalls here. + + * syscalls.h, syscalls.cc: New files. + + Mon Apr 22 21:14:01 1996 John W. Eaton + + * syscalls.cc: New file. + (Flstat, Fmkfifo, Fstat, Funlink, Fwait, Fwaitpid): Move here. + * file-io.cc: From here. + * Makefile.in (SOURCES): Add syscalls.cc to the list. + + Wed Apr 17 18:34:10 1996 John W. Eaton + + * file-info.h, file-info.cc: Delete files. + * Makefile.in: Remove from lists. + + * toplev.cc (Fquit): Accept exit status argument. + (Fflops): Delete (now a function file). + + Thu Apr 11 16:20:20 1996 John W. Eaton + + * lex.l: Recognize `.'. + Update current_input_column even for unrecognized characters. + Return LEXICAL_ERROR for unrecognized characters. + + Mon Apr 8 19:59:01 1996 John W. Eaton + + * variables.cc (install_builtin_variables): Split into several + functions to make compiling with g++ go faster and consume less + memory. + + Sun Apr 7 16:25:35 1996 John W. Eaton + + * load-save.cc (Fsave): Print usage if i == argc. + (Fload): Likewise. + + Sat Apr 6 21:26:49 1996 John W. Eaton + + * Makefile.in (clean): Also delete pic/*.o + (maintainer-clean, distclean): Also remove stamp-picdir, + stamp-tinst, stamp-interp, and pic directory. + (stamp-prereq): New target. + + Wed Apr 3 11:19:30 1996 Rick Niles + + * resource.cc: Don't make including sys/resource.h and sys/times.h + mutually exclusive. + + Fri Mar 29 13:43:37 1996 John W. Eaton + + * Makefile.in (distclean): Delete so_locations, which is created + on DEC Alpha systems. + + Thu Mar 28 02:53:48 1996 John W. Eaton + + * utils.h (undo_string_escape): Provide extern declaration here. + + * lex.l (NL): Allow \r\n as new line character. + (.): Complain if invalid character is found on input + + Fri Mar 22 03:47:52 1996 John W. Eaton + + * resource.cc (getrusage): If getrusage is missing, try using + times to at least fill in the cpu time values. If neither one is + available, return 0 for cpu times instead of NaN. + + * sighandlers.cc (octave_signal_mask): New file-scope variable. + (octave_save_signal_mask, octave_restore_signal_mask): New functions. + * toplev.cc (main_loop): Use them. + + Wed Mar 20 01:21:28 1996 John W. Eaton + + * utils.cc (get_fcn_file_names (const string&, int)): Resize + retval to value of k, not i. + (get_fcn_file_names (int)): In loop for copying names to retval, + don't increment j twice. + + Mon Mar 18 22:27:19 1996 John W. Eaton + + * Makefile.in ($(MAKEDEPS)): Depend on oct-gperf.h. + + Fri Mar 1 18:15:52 1996 John W. Eaton + + * fsolve.cc (fsolve_options): Delete unused argument nargout. + + * filter.cc: Use MArray instead of Array so that automatic + conversions will work again. + + Tue Feb 27 04:49:51 1996 John W. Eaton + + * variables.cc (looks_like_octave_copyright): Make the strings + that we are trying to match both have length 29. + + * Makefile.in (install-bin): Use $(INSTALL_PROGRAM), not $(INSTALL). + + * load-save.cc (read_mat_binary_data): Make sure name is + NUL terminated. + + Mon Feb 26 18:18:45 1996 John W. Eaton + + * variables.cc (whos): Make argv from tmp_args, not args. + + * defun.h (DEFCONSTX): Don't stringify name. + + Sat Feb 24 01:12:59 1996 John W. Eaton + + * Makefile.in (install-oct): Make mk-oct-links executable. + * mk-oct-links.in (links_dir): Update to match new format of + DEFUN_DLD_BUILTIN macro. Use LN_S, not just LN. + (links_dir): + + * pr-output.cc (octave_print_internal): New arg, extra_indent, for + versions of this function that take matrices and ranges. + * pt-const.cc (TC_REP::print (ostream&)): Fix printing of structures. + Pass struct_indent to octave_print_internal as appropriate. + (print_with_name (ostream&, const string&, bool)): Handle spacing + around `=' differently for structures. + + Fri Feb 23 04:51:04 1996 John W. Eaton + + * token.cc (token (double, const string&, int, int)): Store orig_text. + + Tue Feb 20 20:36:01 1996 John W. Eaton + + * variables.cc (Fclear): Fix off-by-one error. + + Sat Feb 17 16:54:02 1996 John W. Eaton + + * oct-hist.cc (default_history_file): Append "/.octave_hist" to + return value, not to home_directory. + + Fri Feb 16 18:10:46 1996 John W. Eaton + + * utils.cc: (NINT, D_NINT): Move to liboctave. + + * sysdep.cc (octave_ieee_init): Move to liboctave. + + * procstream.h, procstream.cc: Rewrite. + + * pager.cc (cleanup_oprocstream): New static function. + * toplev.cc (cleanup_iprocstream): Likewise. + * dirfns.cc (cleanup_iprocstream): Likewise. + + * unwind-prot.cc (matrix_cleanup, complex_matrix_cleanup): Delete. + + Thu Feb 15 22:03:28 1996 John W. Eaton + + * oct-obj.cc, oct-obj.h: Move most code to the header. + + * oct-obj.cc (make_argv, all_strings): New member functions. + * utils.cc: Moved from here. + + * load-save.cc: Move byte swapping stuff to liboctave. + Move float format conversion stuff to liboctave. + (all_parts_int, too_large_for_float): Move to liboctave. + + * symtab.cc (valid_identifier): Move here. + * load-save.cc: From here. + + * sysdep.cc: Move floating-point format stuff to liboctave. + * pr-output.cc: Include float-fmt.h here. + + Wed Feb 14 01:49:20 1996 John W. Eaton + + * defun.h, defun-dld.h, defun-int.h: Simplify interface for DEFUN, + DEFUN_DLD, DEFVAR, and DEFCONST macros. Change all uses. + + * qzval.cc: Move guts to liboctave. + + Tue Feb 13 10:28:27 1996 John W. Eaton + + * variables.cc (parse_fcn_file): Also avoid saving history if + input is from a script file. + + * help.cc (Ftype): Call unwind_protect_str for user_pref.ps4. + + * npsol.cc (nonlinear_constraints_ok): Now static. + + * npsol.cc (linear_constraints_ok): Now static. + * qpsol.cc (linear_constraints_ok): Duplicate here. + + * data.cc (Flinspace): Don't print usage message if nargin == 2. + + Sun Feb 11 14:20:32 1996 John W. Eaton + + * mk-oct-links.in: Rename from mk-oct-links. + (LN_S): Use this variable instead of ln. + Set -e option for shell. + Exit with status of last command. + Print message when making link. + * Makefile.in (DISTFILES): Add mk-oct-links.in to the list. + (install-oct): Run ./mk-oct-links, not $(srcdir)/mk-oct-links. + + * variables.cc (install_builtin_variables): Restore accidentally + deleted DEFVAR for save_precision. + + Fri Feb 9 11:24:32 1996 John W. Eaton + + * Makefile.in (INCLUDES): Delete statdefs.h from the list (it's + now in the liboctave directory). + + * toplev.cc (toplevel): Define here. + * octave.cc (toplevel): Not here. + + * toplev.cc (main_loop): New function. + * octave.cc (main): Call it here instead of doing main loop + actions here. + + * user-prefs.cc (do_fortran_indexing): Also set liboctave_dfi_flag. + (prefer_column_vectors): Also set liboctave_pcv_flag. + (prefer_zero_one_indexing): Also set liboctave_pzo_flag. + (resize_on_range_error): Also set liboctave_rre_flag. + + * variables.cc (restore_command_history): New function. + (parse_fcn_file): Use it here in unwind_protect. + + * dynamic-ld.cc (load_octave_oct_file): Reverse sense of test. + (load_octave_builtin): Delete. + (mangle_octave_oct_file_name): Delete. + + * pt-fvc.cc (tree_builtin::eval): Don't try to dynamically load + functions here. + + * pr-output.cc (set_format_style): Decrement argc for first arg too. + + * input.cc (gnu_readline): If readline returns an empty string, + convert it to a string containing a single newline character. + + * octave.cc (octave_argv): Now a static string_vector. + (intern_argv): Use string_vector ops, not charMatrix ops. + * toplev.cc (octave_argv): Delete definition. + * toplev.h (octave_argv): Delete declaration. + + Thu Feb 8 10:58:24 1996 John W. Eaton + + * Makefile.in (conf-dist): New target. + + Tue Feb 6 10:59:45 1996 John W. Eaton + + * help.cc (Ftype): Correctly handle structure names. + + Sun Feb 4 02:02:20 1996 John W. Eaton + + * qpsol.cc (Fqpsol): Call set_options(), not copy() to set + options for QPSOL objects. + + * npsol.cc (Fnpsol): Call set_options(), not copy() to set + options for NPSOL objects. + + * quad.cc (Fquad): Call set_options(), not copy() to set + options for Quad objects. + + * dynamic-ld.cc (load_octave_builtin): Don't call destructor on string. + (load_octave_oct_file): Likewise. + Check oct_file.empty(), not just oct_file. + + * fsolve.cc (Ffsolve): Call set_options(), not copy() to set + options for NLEqn object. + + * variables.cc (do_who): Properly set match patterns from argument + vector for call to maybe_list. + + Sat Feb 3 03:29:33 1996 John W. Eaton + + * octave.cc (long_opts): Properly set second field using new enum. + + * lsode.cc: Change ODE to LSODE where appropriate. + Use LSODE_options, not ODE_options. + + * dassl.cc: Change DAE to DASSL where appropriate. + Use DASSL_options, not ODE_options. + + Fri Feb 2 01:41:37 1996 John W. Eaton + + * dirfns.cc: Include unistd.h. + + * parse.y, lex.l: Handle matrix lists without ml or mlnm stacks. + * pt-mat.h, pt-mat.cc (tree_matrix): + Rewrite to use SLList instead of home brew list. + * SLList-tm.cc: New file + * Makefile.in: Add it to the lists. + * SLStack-tm.cc: Delete. + * Makefile.in: Delete it from the lists. + + * All pt-* files: Use bool instead of int where appropriate. + + * Makefile.in (DEP_SOURCES_3): Add octave.cc. + + * pt-const.h (class tree_constant::tree_constant_rep): Make + everything in this class public, then it doesn't need to declare + the tree_constant class as a friend. + + Thu Feb 1 01:42:45 1996 John W. Eaton + + * lex.h, lex.l, parse.h, parse.y (class lexical_feedback): New + class for lexer flags. Replace lots of global vars with members + of this class. + + * lex.l (class brace_paren_nesting_level): New class to replace + nesting_level stack. nesting_level is now an instance of this + class. + + * lex.l (yum_yum): New typedef. + (ATE_NOTHING): New global var. + (ATE_SPACE_OR_TAB, ATE_NEWLINE): Don't #define these, declare them + as const yum_yum. + (eat_whitespace, eat_continuation): Return yum_yum, not int. + + * lex.l (SHORT_CIRCUIT_LOGICALS): Delete. Always do this for || + and && tokens. + (yy_flex_alloc, yy_flex_realloc, yy_flex_free, next_char_is_space): + Delete. + + * toplev.cc (verbose_flag): Delete definition. + * toplev.h (verbose_flag): And declaration. + * octave.cc (verbose_flag): Now static. + + * lex.l (lookup_identifier): Arg is now string, not char*. + (handle_identifier, is_plot_keyword, is_keyword): Likewise. + (strip_trailing_whitespace): Return value is now string, not char*. + (plot_style_token): Likewise, for both arg and return value. + + * input.cc (octave_gets_line): Delete. + (gnu_readline, octave_gets, octave_read): + Properly handle input when using_readline is either true or false. + Don't limit length of input lines to flex buffer size. + (get_user_input): New function. + + * octave.cc (main): Handle --no-line-editing. + * toplev.h (using_readline): Provide external declaration here. + * input.h: Not here. + * toplev.cc (using_readline): Define here. + * input.cc: Not here. + + * toplev.h (no_line_editing): Delete declaration. + * input.cc (no_line_editing): Delete definition. + + Wed Jan 31 05:28:45 1996 John W. Eaton + + * input.cc (DEFAULT_ARRAY_SIZE, PROMPT_GROWTH): Delete definitions + of unused macros. + (read_octal): Now static. + + * givens.cc (Fgivens): Use new functions from matrix classes + instead of calling Fortran functions directly. + * syl.cc (Fsyl): Likewise. + * expm.cc (Fexpm): Likewise. + + Mon Jan 29 00:00:48 1996 John W. Eaton + + * octave.cc: Use new prog_args class instead of calling getopt + directly. + + * getopt.h, getopt.c, getopt1.c: Move to liboctave directory. + * Makefile: Remove from lists. + + * utils.cc (strconcat, read_until, discard_until): Delete. + + * pager.cc (terminal_columns, terminal_rows): Move to + liboctave/oct-term.cc. + * pager.cc, pr-output.cc: Include oct-term.h. + + * utils.cc (list_in_columns): Moved to liboctave/str-vec.cc. + Change all callers to use new member function syntax. + + * dirfns.cc (absolute_program): Now static. + (absolute_pathname): Delete. + + * pt-plot.cc (save_in_tmp_file): Call oct_tempnam, not + octave_tmp_file_name. Include file-ops.h. + * file-io.cc (do_scanf, Foctave_tmp_file_name): Likewise. + * oct-hist.cc (mk_tmp_hist_file): Likewise. + + * file-io.cc (Foctave_tmp_file_name): Move here. + * utils.cc: From here. + + * utils.cc (octave_tmp_file_name): Move to liboctave/file-ops.cc. + + * tempname.c, tempnam.c: Move to liboctave directory. + * Makefile.in: Remove from lists. + + Sun Jan 28 19:00:52 1996 John W. Eaton + + * xdiv.cc (all xdiv functions): Return Matrix or ComplexMatrix, + not tree_constant. + + * oct-hist.h, oct-hist.cc, toplev.cc, octave.cc, input.cc, + file-io.cc, user-prefs.cc: Rewrite to use new command_history + class instead of calling readline history functions directly. + + * utils.cc (get_fcn_file_names): Delete num arg. + + Thu Jan 25 20:33:54 1996 John W. Eaton + + * load-save.cc (matches_patterns): Use new glob_match class + instead of calling fnmatch directly. + * symtab.cc (matches_patterns, symbol_table::glob): Likewise. + * variables.cc (Fclear): Likewise. + + Wed Jan 24 02:05:22 1996 John W. Eaton + + * fnmatch.h fnmatch.c: Delete. + * Makefile.in: Add glob stuff in the appropriate places, remove + fnmatch.h and fnmatch.c from lists. + + * octave.cc (program_invocation_name, program_invocation_short_name): + Maybe declare. + (initialize_globals): Maybe initialize them. + + * octave.cc (initialize_pathsearch): Define here, not in pathsearch.cc. + * pathsearch.h, pathsearch.cc: Remove files. + * Makefile.in: Remove them from the lists. + + * help.cc (simple_help): Ignore directories that don't have any .m + or .oct files. + + * utils.cc (search_path_for_file): Use new dir_path class instead + of calling kpathsea routines directly. + (get_fcn_file_names): Likewise. + * help.cc (simple_help): Likewise. + + * dirfns.cc (make_absolute): Don't convert empty arg to "./". + + * sysdir.h: Move to liboctave directory. + * Makefile.in: Remove from lists. + + * dirfns.cc (Freaddir): Use new dir_entry class instead of calling + readdir directly. Include dir-ops.h, not sysdir.h. + * utils.cc (get_fcn_file_names): Likewise. Delete unnecessary + first arg, change all callers. + + Tue Jan 23 00:43:12 1996 John W. Eaton + + * safe-xstat.hin, safe-xstat.cin, statdefs.h, file-ops.h, + file-ops.cc, filemode.c, mkdir.c, rmdir.c, rename.c: + Files moved to liboctave directory. + * Makefile.in: Remove them from lists. Move appropriate rules. + + * acosh.c, asinh.c, atanh.c, erf.c, erfc.c, gamma.c, lgamma.c: + Files moved to liboctave directory. + * Makefile.in: Remove them from lists. + * missing-math.h: Deleted. + * pr-output.cc, sysdep.cc, minmax.cc, mappers.cc, expm.cc, + arith-ops.cc: Include oct-math.h, not cmath or missing-math.h. + + Mon Jan 22 19:33:05 1996 John W. Eaton + + * variables.cc (Fexist): Use file_stat instead of calling stat + directly. Include file-ops.h, not statdefs.h. + * octave.cc (execute_startup_files): Likewise. + * file-io.cc (file_io_get_file, fopen_internal, popen_internal, Fstat): + Likewise. + (mk_stat_map): Likewise, use file_stat object, not struct stat. + * oct-hist.cc (do_history): Likewise. + + * file-ops.h, file-stat.cc: New files. + * Makefile.in: Include them. + * dirfns.cc: Delete is_newer. Don't include statdefs.h. + * toplev.cc: Don't include statdefs.h. + + Sun Jan 21 22:48:03 1996 John W. Eaton + + * pt-mvr.h, pt-fvc.h, Map.cc, Map.h, dynamic-ld.h, + pt-fvc-base.cc, SLList-str.cc, pt-fcn.h, pt-fvc-base.h, + SLStack-str.cc, pt-mvr.cc, pt-exp.cc, token.h, token.cc, + user-prefs.h, pt-base.cc, user-prefs.cc, dirfns.h, sysdep.h, + sysdep.cc, input.h, parse.h, lex.l, parse.y, defun.h, mappers.h, + pt-fvc.cc, pt-plot.h, load-save.h, octave.cc, defun-int.h, help.h, + variables.h, oct-map.h, oct-obj.h, oct-obj.cc, pt-const.cc, + oct-map.cc, input.cc, symtab.h, pt-const.h, pathsearch.cc, + pr-output.h, pr-output.cc, toplev.h, timefns.cc, schur.cc, + pt-plot.cc, pager.cc, load-save.cc, dynamic-ld.cc, dirfns.cc, + data.cc, file-info.h, file-info.cc, colloc.cc, utils.h, qpsol.cc, + quad.cc, npsol.cc, lsode.cc, fsolve.cc, dassl.cc, file-io.cc, + help.cc, utils.cc, oct-hist.h, oct-hist.cc, symtab.cc, toplev.cc, + pt-fcn.cc, unwind-prot.h, unwind-prot.cc, variables.cc: + Most functions in these files that deal with character strings + have been converted to use the string class insatead of char*. If + you want more detailed information, you'll have to figure it out + for yourself. + + Sat Jan 20 18:19:12 1996 John W. Eaton + + * dynamic-ld.cc [WITH_DL]: Define RTLD_LAZY to be 1 if it is not + already defined. + + Sun Jan 14 07:48:05 1996 John W. Eaton + + * pt-const.cc (print_as_scalar, print_as_structure): + Make these member functions. + (tree_constant::print_with_name): New function, moved here from + old tree-expr.cc file (where it was called print_constant) and + converted to member function. Change all callers. + + Fri Jan 12 01:54:49 1996 John W. Eaton + + * octave.cc (initialize_globals): Don't do kpathsearch stuff here. + (main): Call initialize_pathsearch() here. + + * pathsearch.cc: New file. + * Makefile.in (SOURCES): Add it to the list + + * oct-hist.h: Rename from octave-hist.h. + * oct-hist.cc: Rename from octave-hist.cc. + * Makefile.in, parse.y, other .cc files: Cope with it. + + * dynamic-ld.cc: Avoid warnings if !WITH_DYNAMIC_LINKING. + + * load-save.cc (save_ascii_data): string::data() returns const char*. + + * utils.h: Don't provide forward declaration for tree_constant. + + * oct-obj.h: Don't include mx-base.h or provide forward + declarations for Matrix and Range types. + + * file-info.h: Don't include oct-obj.h. Do include cstdio. + + * symtab.h: Don't provide forward declaration for ostream. + + * variables.h: Don't provide forward declarations for istream, + ostrstream, tree, builtin_function, or builtin_variable objects. + + * balance.cc, chol.cc, colloc.cc, dassl.cc, det.cc, eig.cc, + expm.cc, fft.cc, fft2.cc, filter.cc, find.cc, fsolve.cc, fsqp.cc, + givens.cc, hess.cc, ifft.cc, ifft2.cc, inv.cc, log.cc, lpsolve.cc, + lsode.cc, lu.cc, minmax.cc, npsol.cc, pinv.cc, qpsol.cc, qr.cc, + quad.cc, qzval.cc, rand.cc, schur.cc, sort.cc, svd.cc, syl.cc: + Clean up #include statements. + + * pt-const.h: Don't include oct-obj.h or tree-base.h. + Provide forward declaration of Octave_object here. + * pt-const.cc: Include oct-obj.h here. + + * pt-mat.h, pt-fcn.h, pt-const.h, pt-misc.h, pt-plot.h, + pt-exp-base.h, pt-cmd.h, pt-fvc-base.h, pt-mvr-base.h, pt-exp.h, + pt-mvr.h, pt-fvc.h: New files, split from tree-expr.h and/or + renamed from other tree-*.h files (pt == parse tree). + * pt-base.cc, pt-const.cc, pt-exp.cc, pt-fvc-base.cc, pt-mat.cc, + pt-mvr-base.cc, pt-plot.cc, pt-cmd.cc, pt-exp-base.cc, pt-fcn.cc, + pt-fvc.cc, pt-misc.cc, pt-mvr.cc: Likewse, split from tree-expr.cc + and/or other tree-*.cc files. + * Makefile.in: Include them in the appropriate lists. + * All: Fix #include statements to match. + + * Array-tc.cc: Don't instantiate ArrayRep objects. + + Thu Jan 11 02:35:19 1996 John W. Eaton + + * tree-const.cc (tree_constant::eval (int, int, const Octave_object&)): + Define here instead of in tree-const.h. + + Wed Jan 10 04:34:20 1996 John W. Eaton + + * tree-const.h (tree_constant::tree_constant (const string&): + * tree-const.cc (TC_REP::tree_constant_rep (const string&)): + New constructor. + + Tue Jan 9 04:10:29 1996 John W. Eaton + + * rand.cc (do_rand): Use string_value() result directly instead of + c_str() conversion. + * balance.cc (Fbalance): Likewise. + + * tree-const.cc (TC_REP::string_value()): + Handle new definition of charMatrix::row_as_string() + * load-save.cc (save_ascii_data): Ditto. + (save_binary_data): Ditto. + * pr-output.cc (octave_print_internal): Ditto. + + * balance.cc (Fbalance): + Handle new definition of TC_REP::string_value() + * colloc.cc (Fcolloc): Ditto. + * dassl.cc (Fdassl_options): Ditto. + * data.cc (Fstruct_contains): Ditto. + * dirfns.cc (Fmkdir): Ditto. + (Freaddir): Ditto. + (Frmdir): Ditto. + (Frename): Ditto. + * error.cc (handle_message): Ditto. + * file-io.cc (process_printf_format): Ditto. + (fopen_internal): Ditto. + (file_io_get_file): Ditto. + (return_valid_file): Ditto. + (Flstat): Ditto. + (Fstat): Ditto. + (unlink_internal): Ditto. + (mkfifo_internal): Ditto. + (async_system_internal): Ditto. + (sync_system_internal): Ditto. + (execute_internal): Ditto. + (popen_internal): Ditto. + (fwrite_internal): Ditto. + (fread_internal): Ditto. + (do_printf): Ditto. + (do_scanf): Ditto. + * input.cc (get_user_input): Ditto. + * lsode.cc (Flsode_options): Ditto. + * npsol.cc (Fnpsol_options):Ditto. + * qpsol.cc (Fqpsol_options):Ditto. + * quad.cc (Fquad_options): Ditto. + * rand.cc (do_rand): Ditto. + * schur.cc (Fschur): Ditto. + * sysdep.cc (Fputenv): Ditto. + (Fgetenv): Ditto. + * timefns.cc (extract_tm): Ditto. + (Fstrftime): Ditto. + * toplev.cc (Fsource): Ditto. + (eval_string): Ditto. + (Fsystem): Ditto. + * tree-plot.cc (subplot::handle_plot_data): Ditto. + * variables.cc (is_valid_function): Ditto. + (Fis_global): Ditto. + (Fexist): Ditto. + (builtin_string_variable): Ditto. + * utils.cc (make_argv): Ditto. + (Fundo_string_escapes): Ditto. + + Mon Jan 8 01:54:50 1996 John W. Eaton + + * Makefile.in (install-bin): Use $(LN_S), not just ln. + + * variables.cc (octave_fcn_file_dir): New function. + * tree-expr.cc (mark_as_system_fcn_file): Use it instead of + octave_lib_dir. + + * Makefile.in (clean): If $(SHARED_LIBS), also remove shared libs. + + * pr-output.cc (set_format (const ComplexMatrix&, int&, int&)): + Unconditionally call all_elements_are_int_or_inf_or_nan(). + (set_format (const Matrix&, int&, int&)): Likewise. + + Sun Jan 7 19:12:39 1996 John W. Eaton + + * utils.cc (oct_putenv): New function. + * sysdep.cc (Fputenv): Use oct_putenv. + * octave.cc (initialize_globals): Likewise. + + Sat Jan 6 23:22:37 1996 John W. Eaton + + * sysdep.cc (Fputenv): New function. + + * input.cc (initialize_readline): Call rl_initialize() here. + + * octave.cc: Conditionally define atexit to be on_exit here. + * toplev.cc: Not here. + + Fri Jan 5 14:01:02 1996 John W. Eaton + + * toplev.cc: Don't include here. + + * octave-hist.cc, tree-plot.cc, utils.cc: Do include "sysdep.h". + + * dirfns.cc, file-io.cc, help.cc, load-save.cc, octave.cc, + octave-hist.cc, tree-plot.cc, utils.cc: + Don't include . + * sysdep.h: Do include it here. + + * tree-const.cc (TC_REP::assign (tree_constant&, Octave_object&)): + If we have a matrix or range, call maybe_mutate before returning. + + Sun Dec 31 15:56:18 1995 John W. Eaton + + * npsol.cc (Fnpsol): Improve doc string. + * qpsol.cc (Fqpsol): Likewise. + + Fri Dec 29 21:46:58 1995 John W. Eaton + + * defun-dld.h: Make work again for OCTAVE_LITE and + WITH_DYNAMIC_LINKING. + + * Makefile.in: Handle shared libraries. + + Wed Dec 27 17:47:51 1995 John W. Eaton + + * mk-oct-links: New file. + * Makefile.in (install-oct): Use it. + * f-*.cc: Rename to *.cc. + + * Makefile.in (install-bin, install-lib, install-oct): New targets. + (install): Use them. + + Tue Dec 26 21:38:22 1995 John W. Eaton + + * toplev.cc (reading_startup_message_printed): Move initialization + here and make extern. + + * dirfns.cc, dynamic-ld.cc, help.cc, input.cc, octave-hist.cc, + octave.cc, sighandlers.cc, sysdep.cc, tree-expr.cc, tree-misc.cc, + utils.cc, variables.cc, parse.y, lex.l: Include toplev.h instead + of octave.h. + * toplev.h: rename from octave.h. + + * octave.cc (main): Delete unused variable saved_sigint_handler. + + Sun Dec 24 00:26:54 1995 John W. Eaton + + * dynamic-ld.cc: Massive re-write to handle dlopen/dlsym and + shl_load/shl_findsym methods of dynamic linking. + + * utils.cc (get_fcn_file_names): Check for .oct files if + WITH_DYNAMIC_LINKING, not WITH_DLD. + + * Makefile.in (LIB, TERMLIBS): Substitute values. + (octave): Add $(LIBS) to link command and use $(TERMLIBS) instead + of -ltermcap. + + Sat Dec 23 21:56:12 1995 John W. Eaton + + * dynamic-ld.h, dynamic-ld.cc: Remove old unused code. + + * variables.cc (load_fcn_from_file): + Always call load_octave_oct_file. + + Wed Dec 20 00:56:57 1995 John W. Eaton + + * pr-output.cc (set_real_format, set_real_matrix_format, + set_complex_format, set_complex_matrix_format, set_range_format): + New functions. Ensure the count of the digits to the right of the + decimal point is positive. + + * xpow.cc (xpow (const Matrix&, double)): Print warning if + inverting singular matrix (but return value anyway, in the name of + compatibility). + xpow (const ComplexMatrix&, double)): Likewise. + + * f-inv.cc (Finv): If matrix is singular, return result anyway, in + the name of compatibility. + + * symtab.cc (symbol_record::pop_context): + Don't assert (! context.empty ()). + + * tree-const.cc (TC_REP::char_matrix_value): Don't complain about + type conversion if object is an empty matrix.f + (TC_REP::assign): If rhs is a string, don't convert to numeric + type if rhs is empty or "". + Only widen if rhs is not empty. + Don't return 0x0 char_matrix if it is supposed to be a string. + + * arith-ops.h, mappers.h, pr-output.h, xdiv.h, xpow.h: Include + oct-cmplx.h in place of forward declaration for class Complex. + + * pr-output.cc, mappers.cc, arith-ops.cc, xdiv.cc, xpow.cc, + utils.cc: Include "oct-cmplx.h" instead of . + + * octave.cc (initialize_error_handlers): Don't call + set_Complex_error_handler(). + (octave_Complex_error_handler): Delete unused function. + Delete declaration for set_Complex_error_handler(). + + * sighandlers.cc (catch_interrupts): New function. + * octave.cc (main): Call catch_interrupts() instead of calling + octave_set_signal_handler() directly. + + Tue Dec 19 03:22:37 1995 John W. Eaton + + * variables.cc (looks_like_octave_copyright): Also recognize the + string " This program is free software". + + Thu Dec 14 01:54:06 1995 John W. Eaton + + * octave-hist.cc (clean_up_history): Only write history file if + user_pref.saving_history. + + * octave-hist.cc (initialize_history, clean_up_history, + do_history): Perform tilde expansion on history file name. + + * octave.cc (main): Check `defined (HAVE_ON_EXIT)' not just + `(HAVE_ON_EXIT)'. + + * user-prefs.h (user_preferences): New fields, `history_file' and + `history_size'. + * user-prefs.cc (init_user_prefs): Initialize them. + (sv_history_file, history_size): New functions. + * variables.cc (install_builtin_variables): Initialize user-level + variables history_file and history_size. + * octave-hist.cc (default_history_size): Now extern. + (default_history_file): Likewise. + (octave_hist_size, octave_hist_file): Use user preference + variables instead. + * octave.cc (main): Call initialize_history after + execute_startup_files. + + Fri Dec 8 15:53:59 1995 John W. Eaton + + * user-prefs.h (user_preferences): New field, `saving_history'. + * user-prefs.cc (init_user_prefs): Initialize it. + (saving_history): New function. + * variables.cc (install_builtin_variables): Initialize user-level + variable saving_history. + * octave.cc (parse_and_execute): Don't reset value of + saving_history here. + (main) Use user_pref.saving_history instead of saving_history. + * variables.cc (parse_fcn_file): Likewise. + * octave-hist.cc (maybe_save_history): Likewise. + Don't save history if input_from_startup_file. + + Mon Nov 27 23:05:52 1995 John W. Eaton + + * resource.cc: Include systime.h before . + + Tue Nov 14 14:09:40 1995 John Eaton + + * error.cc: Include cstring. + + * tree-expr.cc (print_code): Decrement indent level after printing + function body. + + * Makefile.in: Remove references to oct-str.cc, oct-str.h, and + Array-string.cc. + + * tree-const.h: Don't include oct-str.h. + + Mon Nov 6 11:16:49 1995 John Eaton + + * parse.y (make_plot_command, finish_colon_expression, + make_unwind_protect, make_try_command, make_for_command, + make_break_command, make_continue_command, make_return_command, + start_if_command, finish_if_command, make_elseif_clause, + make_simple_assignment, make_multi_val_ret, start_function_def, + frob_function_def, finish_function_def, start_matrix, + finish_matrix): New functions. Use them in the grammar to clean + things up a bit. Possibly convert matrix lists, colon + expressions, binary expressions, and unary expressions to constant + values. + (tree_matrix_type): Delete. + (simple_expr1): Handle all expression stuff here, including + assignments. + (simple_expr): Just check to see that simple_expr1 produced + something useful. + + * tree-plot.cc, tree-plot.h: Move most simple constructors to the + header file. + + * tree-expr.h (tree_expression::is_constant): Move virtual + function definition here. + (tree_fvc::is_constant): From here. + (tree_expression::is_matrix_constant): New virtual function. + (tree_expression::is_range_constant): New virtual function. + * tree-expr.cc (tree_matrix::is_matrix_constant): New function. + * tree-expr.cc (tree_colon_expression::is_range_constant): New + function. + + Fri Nov 3 03:42:04 1995 John Eaton + + * utils.cc, utils.h (jump_to_top_level): Declare as extern "C". + + * tree-const.h (tree_constant::eval ()): Only mutate if printing. + + * tree-const.cc (TC_REP::tree_constant_rep (const Complex&), + TC_REP::tree_constant_rep (const ComplexMatrix&), + TC_REP::tree_constant_rep (const ComplexDiagMatrix&), + TC_REP::tree_constant_rep (const ComplexRowVector&), + TC_REP::tree_constant_rep (const ComplexColumnVector&)): + Also check to see if we can convert to scalar_constant, not just + complex_scalar_constant. + + * user-prefs.h (user_preferences): New field, `exec_path'. + * user-prefs.cc (init_user_prefs): Initialize it. + (sv_exec_path): New function. + * variables.cc (install_builtin_variables): Add DEFUN for EXEC_PATH. + (default_exec_path): New function. + * octave.cc (exec_path): New global variable. + Don't set and putenv() exec path here. + (long_opts): Add --exec-path option. + (main): Handle it. + (initialize_globals): Set default value here. + + * user-prefs.h (user_preferences): New field, `info_prog'. + * user-prefs.cc (init_user_prefs): Initialize it. + (sv_info_prog): New function. + * variables.cc (install_builtin_variables): Add DEFUN for INFO_PROGRAM. + (default_info_prog): New function. + * octave.cc (info_prog): New global variable. + (initialize_globals): Set default value here. + (long_opts): Add --info-prog option. + (main): Handle it. + * help.cc (try_info): Use user_pref.info_prog here. + + * octave.cc (initialize_globals): Put arch_dir and bin_dir ahead + of shell_path when resetting PATH. + + Thu Nov 2 04:30:13 1995 John Eaton + + * f-rand.cc (Frandn): New function. + (do_initialization): New function. + (do_rand): New function for doing the real work. + (Frand): Use it. + + * octave.cc (parse_and_execute): New arg, warn_for. If given, + print message if file cannot be opened. + Set curr_fcn_file_full_name here. + (Fsource): Pass extra arg to parse_and_execute to get warning message. + + * tree-const.h: Handle line and column info for double, Complex, + and char* constants. + + * parse.y (maybe_convert_to_ans_assign): Pass along line and + column info from expression. + + * parse.y (make_constant): New function. + (simple_expr1, word_list): Use it. + + * input.cc, input.h (curr_fcn_file_full_name): New global. + * variables.cc (load_fcn_from_file): Set it here. + * parse.y (func_def2, yyerror, maybe_warn_missing_semi): Use it. + (func_def2): If !reading_fcn_file, don't call strcmp if + curr_fcn_file_name is 0. + + * octave.cc (Fsource): New function. + (parse_and_execute): Declare file name const char *. + * input.cc (get_input_from_file): Likewise. + + Wed Nov 1 13:54:34 1995 John Eaton + + * f-filter.cc: New file. + * Makefile.in (DLD_SRC): Add it to the list. + + * sysdep.h (gethostname): Change declaration to match definition + in sysdep.cc. + + * resource.cc: Include sysdep.h here, for octave_NaN. + + Tue Oct 31 02:12:18 1995 John Eaton + + * tree-const.cc (TC_REP::assign): After converting rhs to a + numeric type, use the converted value, not the original. + + * dirfns.cc (Fpwd): If nargout == 0, print the directory name + instead of returning it. + + * pager.cc (maybe_page_output): Call maybe_write_to_diary_file here. + (flush_output_to_pager): Not here. + + Mon Oct 30 23:39:43 1995 John Eaton + + * variables.cc (install_builtin_commands): Add DEFVAR for + echo_executing_commands. + + * octave-hist.cc (do_edit_history): Handle new echo stuff. + * variables.cc (parse_fcn_file): Likewise. + * octave.cc (parse_and_execute): Likewise. + (main): Likewise. + * input.cc (do_input_echo): + (Fecho): New function. + + * tree-expr.cc (tree_function::print_code_function_header, + tree_function::print_code_function_trailer): New functions. + (tree_function::print_code): Use them. + (tree_function::eval): Likewise, if echoing commands. + * tree-misc.cc (tree_statement::maybe_echo_code): New function. + + * user-prefs.h (user_preferences): New field, echo_executing_commands. + (echo_state): New enum, for various types of echoing we do. + * user-prefs.cc (echo_executing_commands): New function. + + * tree-base.cc (print_code_indent): Print PS4 as line prefix. + * help.cc (Ftype): Add unwind_protect for ps4 and set it to "" + before printing code. + + * tree-misc.h (tree_statement_list): New field, function_body. + (tree_statement_list::mark_as_function_body): New function. + * parse.y (func_def3): Mark function bodies. + + * pr-output.cc (octave_print_internal): Undo string escapes when + printing charMatrix as strings. + + Sat Oct 28 17:38:29 1995 John Eaton + + * utils.h (undo_string_escapes): Add missing const in declaration. + + Fri Oct 27 03:49:44 1995 John Eaton + + * file-io.cc (next_available_file_number): New stack for keeping + track of next available file number. + (get_next_avail_file_num): New function. + (fopen_file_for_user, fopen_internal, popen_internal, + execute_internal): Use it. + + Mon Oct 23 07:00:09 1995 John Eaton + + * tree-const.cc (TC_REP::convert_to_matrix_type, + tree_constant::convert_to_matrix_type): New arg, make_complex. + (TC_REP::set_index): New arg, rhs_is_complex. Pass it to + convert_to_matrix_type. + (TC_REP::assign): Pass rhs.is_complex_type() to set_index. + + Thu Oct 19 00:38:38 1995 John Eaton + + * xpow.cc: Include . + + * sysdep.cc (Fpause): Do pause even if not interactive. + + * tree-const.cc (TC_REP::assign): Don't make RHS numeric if both + RHS and LHS are strings. + + Wed Oct 18 22:19:16 1995 John Eaton + + * f-expm.cc (Fexpm): Avoid taking log of negative number. Also, + don't unnecessarily divide the input matrix by 1.0. + + * input.cc (decode_prompt_string): Recognize \[ and \] too. + (initialize_readline): Bind M-p to history-search-backward and M-n + to history-search-forward. + + Tue Oct 17 04:31:06 1995 John Eaton + + * xpow.cc (xpow): Handle integer powers better for complex^double. + (elem_xpow): Likewise. + + * lex.l ({CCHAR}): If nesting_level.top() is BRACE, return ';', + not '\n'. + + Mon Oct 16 19:03:45 1995 John Eaton + + * help.cc (Fwhich): Fix doc string. + + * variables.cc (Fexist): Update doc string. + + Sun Oct 15 22:19:16 1995 John Eaton + + * Another massive set of changes to support character matrices + with indexing. The Octave_str_object class is no longer used. + Anything having to do with Octave_str_object in the following + files has been changed to use charMatrix instead: octave.h, + load-save.cc, octave.cc, strfns.cc, data.cc, pr-output.h, + pr-output.cc, tree-const.h, dirfns.cc, tree-const.cc, + tree-expr.cc. + + Sat Oct 14 22:28:18 1995 John Eaton + + * f-sort.cc (mx_sort): Don't attempt to sort vectors that have + only one element, or matrices that have only one row. + + Thu Oct 12 02:16:58 1995 John Eaton + + * mappers.cc (install_mapper_functions): Add gammaln as an alias + for lgamma. + + * tree-const.h, tree-const.cc: Massive overhaul of indexing and + indexed assignment functions. + * tc-inlines.h, tc-rep.h: Remove files. + * Makefile.in: Remove mention of them here too. + + * Makefile.in: Include $(TI_SRC) in DEP_SOURCES_3, not + $(TI_SOURCES). + Include $(DLD_SRC) in DEP_SOURCES_3. + Include $(TI_SRC) in DEF_FILES_5. + + Wed Oct 11 01:26:18 1995 John Eaton + + * Makefile.in (INCLUDES): Remove tc-inlines.h and tc-rep.h from + the list. + + Mon Oct 9 08:31:04 1995 John Eaton + + * lex.l (next_token_is_bin_op): Do match `.+', `.*', etc. + + Sun Oct 8 18:19:56 1995 John Eaton + + * idx-vector.h, idx-vector.cc: Delete files. + * Makefile.in (SOURCES, INCLUDES): Remove them from lists. + + Fri Oct 6 00:52:06 1995 John Eaton + + * f-svd.cc (Fsvd): If nargout == 0 or nargout == 1, don't ask for + U and V. + + Wed Oct 4 00:04:57 1995 John Eaton + + * f-npsol.cc (Fnpsol, Fnpsol_options): Avoid unused variable + warnings if NPSOL_MISSING. + * f-qpsol.cc (Fqpsol, Fqpsol_options): Likewise for QPSOL_MISSING. + + * Makefile.in (DISTFILES): Add octave.gperf. + + * lex.l (next_token_is_bin_op): Don't ever return true for `.' + since that causes problems with things like [ .1 .1 ]. + + Tue Oct 3 05:30:24 1995 John Eaton + + * variables.cc (is_valid_function): Avoid setting error_state if + argument is not a string. + + * parse.y (maybe_warn_missing_semi): New function. + (list1, list): Call it if statement not terminated by semicolon. + * tree-misc.h (tree_statement::line, tree_statement::column): + New functions. + * octave.cc (input_from_command_line_file): New global variable. + (main): Set it. + (parse_and_execute): Unwind-protect it and set it to zero. + (eval_string): Likewise. + * variables.cc (parse_fcn_file): Likewise. + + * user-prefs.cc (warn_missing_semicolon): New function. + * user-prefs.h (user_preferences): New field, warn_missing_semicolon. + * variables.cc (install_builtin_variables): DEFVAR it. + + * tree-expr.cc (tree_expression::is_logically_true): Actually use + argument. + + Mon Oct 2 19:55:48 1995 John Eaton + + * variables.cc (install_builtin_variables): Reduce the default + value of save_precision to 15. + + * variables.cc (builtin_real_scalar_variable): Return 1 for + success, 0 for failure. + + * user-prefs.cc (struct_levels_to_print, set_save_precision, + set_output_max_field_width, set_output_precision): + Change sense of test for builtin_real_scalar_variable return value. + (check_preference): Rename from check_str_pref. Change all callers. + Accept value of 0 to be the same as "false" and nonzero to be the + same as "true". + Delete val to avoid memory leak. + * variables.cc (install_builtin_variables): Change initial values + from "true" to 1, "false" to 0. + + * variables.cc (install_builtin_variables): Add DEFVAR for + gnuplot_has_multiplot. + + * user-prefs.h (user_preferences): New field, + `gnuplot_has_multiplot'. + * user-prefs.cc (init_user_prefs): Initialize it. + (gnuplot_has_multiplot): New function. + + Sat Sep 30 16:52:57 1995 John Eaton + + * oct-gperf.h, octave.gperf: Newfiles. + * Makefile.in (DISTFILES): Add octave.gperf. + (INCLUDES): Add oct-gperf.h. + (oct-gperf.h): New rule. + (local-dist, dist): Depend on oct-gperf.h. + * lex.l (is_keyword): Use perfect hash function to lookup + keywords. + + Fri Sep 29 04:36:04 1995 John Eaton + + * version.h (OCTAVE_NAME_AND_VERSION): Add TARGET_HOST_TYPE to this. + + Thu Sep 28 00:03:51 1995 John Eaton + + * tree-expr.cc (tree_expression::is_logically_true): New function. + * tree-cmd.cc (tree_while_command::eval): Use it instead of + handling the test directly here. + * tree-misc.cc (tree_if_clause::eval): Likewise + + * tree-const.cc (TC_REP::force_numeric): Don't try to print value + of str_obj with %s. + + * error.cc (buffer_error_messages): Rename from + suppress_octave_error_messages. + (error_message_buffer): New global variable. + (verror): Handle buffering of messages. + (handle_message): New function. + (Ferror, Fwarning, Fusage): Use it instead of duplicating code. + + * octave.cc (Feval): Buffer error messages instead of supressing them. + + * lex.l (is_keyword): Recognize `try', `catch', and `end_try_catch'. + * parse.y (TRY, CATCH): New tokens. + (command): Recognize try-catch block. + (end_error): Add cases for unwind_protect_end and try_catch_end. + * token.h (end_tok_type): New field, try_catch_end. + * tree-cmd.h, tree-cmd.cc (tree_try_catch): New class. + * variables.cc (bind_global_error_variable): New Function. + (clear_global_error_variable): Likewise. + (install_builtin_variables): Add DEFCONST for __error_text__. + * help.cc (keywords): Add `try', `catch', and `end_try_catch'. + + * tree-cmd.cc (tree_unwind_protect::eval): Undo previous change. + + * dirfns.cc (Freaddir, Fmkdir, Frmdir): + Do tilde expansion on the argument. + + Tue Sep 26 00:10:29 1995 John Eaton + + * f-dassl.cc, f-fsolve.cc, f-lsode.cc, f-npsol.cc, f-quad.cc: + Don't try to figure out if the user-supplied functions take the + correct number of arguments. Simply let the call fail. + * variables.cc (takes_correct_nargs): Delete unused function. + * tree-expr.cc (tree_builtin::eval): Don't complain for too many + arguments to mapper functions. + * tree-expr.h, tree-expr.cc (tree_builtin, tree_function, tree_fvc): + Delete unused function max_expected_args. + + * defun.h (DEFUN): Delete unnecessary args nargin_min and nargout_max. + New arg unused_arg_flags. + (DEFUN_TEXT): Likewise. + * defun-dld.h (DEFUN_DLD_BUILTIN): Likewise. + * defun-int.h (DEFUN_INTERNAL, DECLARE_FUN, DEFINE_FUN_STRUCT): + Do the real work. + + * data.cc, dirfns.cc, dynamic-ld.cc, error.cc, f-balance.cc, + f-chol.cc, f-colloc.cc, f-dassl.cc, f-det.cc, f-eig.cc, f-expm.cc, + f-fft.cc, f-fft2.cc, f-find.cc, f-fsolve.cc, f-fsqp.cc, + f-givens.cc, f-hess.cc, f-ifft.cc, f-ifft2.cc, f-inv.cc, f-log.cc, + f-lpsolve.cc, f-lsode.cc, f-lu.cc, f-minmax.cc, f-npsol.cc, + f-pinv.cc, f-qpsol.cc, f-qr.cc, f-quad.cc, f-qzval.cc, f-rand.cc, + f-schur.cc, f-sort.cc, f-svd.cc, f-syl.cc, file-io.cc, help.cc, + input.cc, lex.l, load-save.cc, mappers.cc, octave-hist.cc, + octave.cc, octave.h, pager.cc, pr-output.cc, resource.cc, + sighandlers.cc, strfns.cc, sysdep.cc, timefns.cc, token.cc, + tree-const.cc, tree-expr.cc, tree-expr.h, tree-plot.cc, + unwind-prot.cc, unwind-prot.h, utils.cc, variables.cc, + variables.h, version.h, xdiv.cc: + Avoid unused variable warnings. + + * tree-expr.h (tree_oct_obj::print_value (ostream&)): + Delete name of unused arg. + (tree_fvc::save (ostream&, int, int): Likewise. + + * tree-const.h (tree_constant::tree_constant (magic_colon)): + Delete name of unused arg. + (tree_constant::tree_constant (all_va_args)): Likewise + (ColumnVector vector_value (int, int)): Likewise. + (ComplexColumnVector vector_value (int, int)): Likewise. + (Octave_object::eval (int, int, const Octave_object&): Likewise. + + * octave.cc (execute_startup_files): Look for octaverc first in + site/m, then in $(version)/m. + * variables.cc (get_local_site_defaults): New function. + * defaults.h.in (OCTAVE_LOCALFCNFILEDIR, OCTAVE_LOCALSTARTUPFILEDIR): + New macros. + * Makefile.in (defaults.h): Also substitute ${localfcndir}. + + Mon Sep 25 17:01:03 1995 John Eaton + + * variables.cc (install_builtin_variables): Add DEFCONST for "e". + + Fri Sep 22 02:18:45 1995 John Eaton + + * dirfns.cc (Fls): Delete ls_command after using it, not before. + + * input.h, input.cc (gnu_readline): Don't declare gnu_readline + `extern "C"'. + + * sysdep.h: Only declare gethostname if it is missing, then don't + declare it `extern "C"'. + + * dirfns.cc: Don't declare strerror(). + + * input.cc (command_generator): Use malloc, not xmalloc. Don't + declare xmalloc. + (gnu_readline): Don't declare this `extern "C"'. + + * octave-hist.cc: Don't declare history_get(). It is now in + readline/history.h. + + * input.cc: Don't declare history_get(). It is now in + readline/readline.h. + + * resource.cc: Don't surround include of sys/resource.h in + `extern "C" { }'. + + * fnmatch.h [__cplusplus]: Surround contents in `extern "C" { }'. + * load-save.cc, symtab.cc, variables.cc: Don't surround + fnmatch.h include in `extern "C" { }'. + + * help.cc: Don't #undef __FUNCTION_DEF before including + readline/tilde.h. + + * dirfuns.cc, file-io.cc, help.cc, load-save.cc, octave-hist.cc, + sysdep.cc, tree-plot.cc, utils.cc, variables.cc: + Don't surround readline includes in `extern "C" { }'. + + * sysdep.cc: Move all include statements to top of file. + + Tue Sep 19 01:58:21 1995 John Eaton + + * octave.cc (Fsystem): Use iprocstream *, and unwind_protect it. + * pager.cc (flush_output_to_pager): Likewise. + * dirfns.cc (Fls): Likewise. + * tree-plot.cc (plot_stream): Now a pointer. + (open_plot_stream): Deal with it. + (send_to_plot_stream, cleanup_tmp_files, do_external_plotter_cd): + Likewise. + + * procstream.cc (cleanup_iprocstream, cleanup_oprocstream): + New functions. + + * procstream.h, procstream.cc (class iprocstream, class oprocstream): + Keep track of pbuf. Initialize it to 0 in default constructors, + delete it in destructor. Don't call close in destructor. + + * sighandlers.cc (octave_set_signal_handler): New function. + Use this name instead of signal everywhere. + * help.cc (try_info): Likewise. + * pager.cc (flush_output_to_pager): Likewise. + * octave.cc (main): Likewise. + * octave-hist.cc (do_edit_history): Likewise. + + * input.cc (initialize_readline): Set rl_paren_string_delimiters + to avoid treating single quotes as string delimiters when doing + paren matching. + + * Makefile.in (SOURCES): Don't list Map.cc or SLStack.cc here. + + * tree-const.cc: Do include utils.h. + + * sysdep.cc: Don't surround terminal includes in extern "C". + Include them before readline.h. + + * Map.h: Don't include utils.h. + (CHNode::CHNode (const char*, const C&, CHNode *t): + Do strsave() inline. + + * input.cc (generate_possible_completions): Generate name list + even when text == 0. + (operate_and_get_next): Don't declare history_stifled, call + history_is_stifled () instead. + Don't declare history_length, or max_input_history either. + Check (where >= history_length - 1) too, as in recent versions of + bash. + + * user-prefs.h (user_prefs): New field, `completion_append_char'. + * user-prefs.cc (init_user_prefs): Initialize it. + (sv_completion_append_char): New function. + * variables.cc (install_builtin_variables): Install + completion_append_char. + * input.cc (command_generator): Use it. + + * SLList-expr.cc, SLList-misc.cc, SLList-plot.cc, SLList-tc.cc, + DLList-fi.cc: Include config.h. + * DLList-fi.cc: Include file-info.h, not file-io.h. + + Mon Sep 18 11:01:24 1995 John Eaton + + * octave.h (clean_up_and_exit): Tag with NORETURN instead of using + typedef trick. + * error.h (panic): Likewise. + * utils.h (jump_to_top_level): Likewise. + + * file-io.h: Protect from multiple includes with octave_file_io, + not octave_files. + + * file-info.h (class file_info): Convert to using std C++ string + class from char *. + * file-info.cc: Likewise. Don't include utils.h. + * file-io.cc (return_valid_file, fopen_file_for_user, + fflush_internal, do_scanf): Use operator ==, not strcmp. + (close_files): Call error with file.name ().data (), + not file.name (). + (freport_internal): Call form with file.mode ().data () and + file.name ().data (). + + * file-io.cc, file-io.h: Extract file_info class. + * file-info.cc, file-info.h: New files for file_info class. + + * user-prefs.h (user_prefs): New field, `beep_on_error'. + * user-prefs.cc (init_user_prefs): Initialize it. + (beep_on_error): New function. + * variables.cc (install_builtin_variables): Install beep_on_error. + * octave.cc (maximum_braindamage): Set beep_on_error to "true". + * error.cc (verror): Conditionally beep. + (error): Don't reset error_state until after verror is called. + + Sun Sep 17 16:41:25 1995 John Eaton + + * load-save.cc (read_mat_binary_data, read_ascii_data, + save_ascii_data, read_binary_data, save_binary_data): + Handle string arrays. + + Fri Sep 15 00:24:19 1995 John Eaton + + * user-prefs.cc (struct_levels_to_print, + set_output_max_field_width, set_output_precision, + set_save_precision): Eliminate unecessary kludge variable. + + * variables.cc (gobble_leading_white_space): New arg, + in_parts. Change all callers. + + * lex.l (HELP_FCN): Delete start state. The `help' command is now + handled the same as any other text-style function. + + * gripes.cc (gripe_invalid_value_specified): New function + * user-prefs.cc: Use it. + + * sysdep.cc (octave_words_big_endian): New global variable. + (ten_little_endians): New function. + (sysdep_init): Call it. + * load-save.cc (words_big_endian): Use this at run-time instead of + depending on WORDS_BIGENDIAN at compile-time. + + * symtab.h (SYMTAB_VARIABLES): New macro. + * variables.cc (Fclear): Use it instead of just + symbol_def::USER_VARIABLE when looking for variables. + + * octave.cc (main): If there is a file to execute, set + program_invocation_name and program_name to the name of the file + and argv to the remaining args. + (intern_argv): Only define argv if there are some remaining + arguments. + + * defun.h (DEFVAR_INT): New macro. + (DEFVAR): Define in terms of DEFVAR_INT. Delete args protect and + eternal. + (DEFCONST): New macro. + * variables.cc (install_builtin_variables): Use DEFCONST where + appropriate, change uses of DEFVAR to match new definition. + + * variables.cc (bind_builtin_variable): New variant that accepts + const tree_constant& value. + (install_builtin_variables): Properly alphabetize DEFVAR for this. + + * octave.cc (short_opts): Prefix with `+' to prevent argv + permutation. + (main): Don't use readline if forced_interactive. + (traditional): New file-scope variable. + (long_opts, usage_string, verbose_usage): Add `--traditional'. + (maximum_braindamage): New function. + (main): Call it if --traditional. + + * input.cc (do_input_echo): Print prompt correctly when + forced_interactive is either true or false. + + Thu Sep 14 00:54:06 1995 John Eaton + + * data.cc (Fstruct_elements): New function. + + * file-io.cc (Fumask): New function. + + * dirfns.cc (Fmkdir, Frmdir, Frename): New functions. + + * Makefile.in: Add rules and dependencies for building safe-stat.o + and safe-lstat.o. + + * mkdir.c, rename.c, rmdir.c: New files. + * Makefile.in (SOURCES): Include them in the list. + + * safe-xstat.hin, safe-xstat.cin: New files + * Makefile.in (DISTFILES): Include them in the list. + + * sighandlers.cc (octave_new_handler): Try to continue on memory + exhausted errors. + (sigfpe_handler): Improve error message. + + * Makefile.in: Use `ifndef omit_deps', not `ifndef $(omit_deps)'. + + * dirfns.cc (Freaddir): New function. + + * f-sort.cc: Complete rewrite. Now uses stable sort algorithm and + correctly handles complex matrices containing columns of all real + numbers. + + Wed Sep 13 03:16:40 1995 John Eaton + + * arith-ops.cc: Unconditionally #define DIVIDE_BY_ZERO_ERROR. + + * variables.cc (install_builtin_variables): Unconditionally + install NaN and nan. + + * mappers.cc (xisinf): Don't do bogus things if isinf, isnan, or + finite are missing. + (xfinite): Likewise. + + * sysdep.cc (octave_ieee_init): Don't set octave_NaN and + octave_Inf if values are not available. + + * resource.cc (mk_ru_map): Don't use ru_ or tv_ as prefixes to + Octave names for the structure members. + + Tue Sep 12 02:04:16 1995 John Eaton + + * procstream.h, procstream.cc: Rewrite. + + Mon Sep 11 18:42:05 1995 John Eaton + + * filemode.c: New file, from Emacs. + * Makefile.in (SOURCES): Add it to the list. + + * file-io.cc (Fstat, Flstat, mk_stat_map): New functions. + + * timefns.cc (mk_tm_map): Don't use tm_ as prefix to Octave names + for these structure members. + (extract_tm): Likewise. + (Flocaltime): Fix doc string to match. + + Thu Sep 7 02:04:27 1995 John Eaton + + * load-save.cc (save_user_variables): New function. + * sighandlers.cc (my_friendly_exit): Call it before exiting. + (sigfpe_handler): New function. + (install_signal_handlers) [__alpha__]: Install it. + + Wed Sep 6 14:35:10 1995 John Eaton + + * tree-cmd.cc (tree_unwind_protect::eval): Ignore errors and + suppress error messages while executing first block of + unwind_protect commands. + + * parse.y (end_error): Add missing case for unwind_protect_end. + + * tree-expr.cc (tree_builtin::eval): Complain if no arguments + given for mapper functions. + (tree_fvc::lookup_map_element): Print error message for invalid + structure reference. + + Tue Sep 5 02:04:12 1995 John Eaton + + * file-io.cc, input.cc, load-save.cc, octave.cc, sysdep.cc, + variables.cc, octave-hist.cc, utils.cc, f-schur.cc, f-rand.cc, + f-quad.cc, f-qpsol.cc, f-npsol.cc, f-lsode.cc, f-fsolve.cc, + f-dassl.cc, f-colloc.cc, f-balance.cc, error.cc, data.cc: + Add const qualifiers where appropriate. + + * dirfns.h: Include , for time_t. + + * tempname.c, file-io.cc, help.cc, input.cc, octave-hist.cc, + octave.cc, sighandlers.cc, sysdep.cc, tree-expr.cc, tree-misc.cc, + tree-plot.cc, utils.cc, variables.cc, sysdir.h: + Move #include inside #ifdef HAVE_UNISTD_H. + + * syswait.h: New file. + * Makefile.in (INCLUDES): Add it to the list. + * file-io.cc, sighandlers.cc: Use it instead of including + sys/wait.h directly. + + * octave.cc: Include statdefs.h, not sys/stat.h. + + * sysdir.h: New file. + * Makefile.in (INCLUDES): Add it to the list. + * dirfns.cc, utils.cc: Use it instead of including the headers + directly. + + * pathlen.h: New file. + * Makefile.in (INCLUDES): Add it to the list. + * dirfns.cc, input.cc: Use it instead of including sys/param.h + directly. + * utils.cc: Don't include sys/param.h + + Sun Sep 3 18:52:59 1995 John Eaton + + * tree-const.cc (TC_REP::string_value): Return const char*, not + char *. + + * All .cc, .y, .l, .y files: Include , not , and + so on for all new C++ versions of these standard C headers. + + Thu Aug 31 17:09:38 1995 John Eaton + + * pathsearch.h: Also hide `string'. + + * oct-str.cc, oct-str.h: New files. + * Makefile.in: Add to the appropriate lists. + * tc-rep.h: Change char* to Octave_string* in anonymous union. + * tree-expr.cc (tree_matrix::eval): Handle multiple element strings. + * strfns.cc (toascii): Likewise. + * tree-const.cc (print_as_string): Likewise. + (TC_REP::force_numeric, TC_REP::rows, TC_REP::columns, + TC_REP::double_value, TC_REP::complex_value, TC_REP::matrix_value, + TC_REP::complex_matrix_value, TC_REP::convert_to_str): Likewise. + (TC_REP::print): Call octave_print_internal for string case. + (all_strings): New function. + Fix constructors to use new data structure. + * pr-output.cc (octave_print_internal): Add version for strings. + * Array-string.cc: New file. + + * octave.cc (octave_argv): New global variable. + (intern_argv): New function. + (main): Fix argument parsing to do the right thing for arguments + to executable scripts. + * variables.cc: Add DEFUNs for argv, program_invocation_name, and + program_name. + + * defun.h (DEFVAR): Fix comment. + + Thu Aug 24 00:02:00 1995 John Eaton + + * file-io.cc (fgets_internal): Make second arg optional. Add + optional arg `strip_final_newline'. + (Ffgets): Change to match new definition of fgets_internal. + (Ffgetl): Implement using the new fgets_internal. + + * f-rand.cc (Frand): Update code for sizing return value to match + that used by ones, zeros, and eye. + + Wed Aug 23 19:52:45 1995 John Eaton + + * tree-const.cc (do_vector_assign): Don't crash for + A(range) = scalar, or A(matrix) = scalar. + + * f-dassl.cc (set_dassl_option): Rename from do_dassl_option. + (show_dassl_option): New function. + (Fdassl_options): Handle single arg. + * f-fsolve.cc (set_fsolve_option): Rename from do_fsolve_option. + (show_fsolve_option): New function. + (Ffsolve_options): Handle single arg. + * f-fsqp.cc (set_fsqp_option): Rename from do_fsqp_option. + (show_fsqp_option): New function. + (Ffsqp_options): Handle single arg. + * f-lpsolve.cc (set_lpsolve_option): Rename from do_lpsolve_option. + (show_lpsolve_option): New function. + (Flpsolve_options): Handle single arg. + * f-lsode.cc (set_lsode_option): Rename from do_lsode_option. + (show_lsode_option): New function. + (Flsode_options): Handle single arg. + * f-npsol.cc (set_npsol_option): Rename from do_npsol_option. + (show_npsol_option): New function. + (Fnpsol_options): Handle single arg. + * f-qpsol.cc (set_qpsol_option): Rename from do_qpsol_option. + (show_qpsol_option): New function. + (Fqpsol_options): Handle single arg. + * f-quad.cc: (set_quad_option): Rename from do_quad_option. + (show_quad_option): New function. + (Fquad_options): Handle single arg. + (Fquad): Doc fix. + + Tue Aug 22 00:38:05 1995 John Eaton + + * tree-plot.cc (do_external_plotter_cd): New function. + * dirfns.cc (octave_change_to_directory): New function. If cd is + successful, also call do_external_plotter_cd(). + (Fcd): Call octave_change_to_directory(), not change_to_directory(). + + * pr-output.cc (pr_any_float): Change declaration of counter to + size_t to avoid gcc warnings. + + * idx-vector.cc, octave-hist.cc, tree-const.cc, tree-expr.cc, + tree-misc.cc, utils.cc, xpow.cc, Map.cc: + Update for change in for loop variable scope for gcc 2.7.0. + + Mon Aug 21 19:34:53 1995 John Eaton + + * tree-const.cc (fortran_style_matrix_assignment): Properly handle + case of complex LHS, real RHS. + + * Makefile.in: Only include dependency files if $(omit_deps) is + not set. + + Wed Jul 5 00:03:58 1995 John Eaton + + * sysdep.cc: Explicitly include string.h. + + Sun Jun 25 00:18:10 1995 John Eaton + + * load-save.cc (too_large_for_float (const Matrix&)): + Extract elements as doubles, not Complex. + + Sat Jun 24 22:59:15 1995 John Eaton + + * pr-output.cc (any_element_is_inf_or_nan): Declare extern, not static. + * f-svd.cc (Fsvd): Call here to avoid trying to take SVD of matrix + containing Inf or NaN values. + + * pr-output.cc (bit_format): New file-scope variable. + (set_format, pr_any_float): Handle bit_format. + (octave_print_internal): Handle bit_format like bank_format. + (init_format_state): Initialize bit_format. + (set_format_style): Allow `format bit' and `format native-bit'. + + Thu Jun 8 15:20:26 1995 John Eaton + + * mappers.cc (arg, imag, signum): If arg is NaN, return NaN. + + Mon May 15 14:47:04 1995 John Eaton + + * pager.cc (Fdiary): Initialize diary_file here, not in the + file-scope declaration. + + * tree-expr.cc (tree_index_expression::eval): + Handle nargin == 0 the same as other cases. + + Tue May 2 10:02:23 1995 John Eaton + + * load-save.cc (do_double_format_conversion): Add missing breaks. + (do_float_format_conversion): Likewise. + + Mon May 1 13:50:24 1995 John Eaton + + * Makefile.in (OCTAVE_LIBS): Add @LIBPLPLOT@ to the list. + + * timefns.cc (Ftime): Handle GETTIMEOFDAY_NO_TZ. + + * Makefile.in (SOURCES): Delete tc-rep.cc, tc-rep-ass.cc, and + tc-rep-idx.cc from the list. + + * tree-const.h: Add #pragma interface. + * tree-const.cc: Add contents of tc-rep.cc, tc-rep-ass.cc, and + tc-idx.cc to this file. Add #pragma implementation. This makes + tree-const.cc large, but makes the final binary smaller. + + * unwind-prot.h unwind-prot.cc token.cc token.h procstream.cc + procstream.h idx-vector.cc idx-vector.h symtab.cc symtab.h + oct-map.cc oct-map.h oct-obj.cc oct-obj.h tree-plot.h tree-plot.cc + tree-misc.cc tree-misc.h tree-expr.cc tree-expr.h tree-cmd.cc + tree-cmd.h tree-base.cc tree-base.h: + Add #pragma interface/implementation. + + * Makefile.in (OCTAVE_LIBS): Delete @LIBINFO@ from list. + * help.cc: Don't include info headers or extern declarations for + functions from info. + (try_info): Call info as a subprocess. Delete second arg. + Handle SIGINT here, not in help_from_info(). + (help_from_info): Complain if info doesn't work. + + * defun-dld.h (DEFUN_DLD_BUILTIN) [OCTAVE_LITE && MAKE_BUILTINS]: + If ! WITH_DLD, simply emit a character string constant. + + Fri Apr 28 15:23:06 1995 John Eaton + + * lex.l ({IDENT}{S}*): Don't delete tok. That's handled by + strip_trailing_whitespace() now. + ([^ \t\n]*{S}*|[^ \t\n\;\,]*{S}*): Ditto. + + * pathsearch.h: Include kpathsea/progname.h. + * octave.cc (initialize_globals): Call kpse_set_progname(). + + * token.h: Declare copy constructor and operator = private. + * token.cc: Abort if copy constructor or operator = is used. + + Thu Apr 27 13:54:39 1995 John Eaton + + * tree-expr.cc (lookup_map_element): Don't list default argument + values here too. + + * pr-output.cc (hex_format): New file-scope variable. + (set_format, pr_any_float): Handle hex_format. + (octave_print_internal): Handle hex_format like bank_format. + (init_format_state): Initialize hex_format. + (set_format_style): Allow `format hex' and `format native-hex'. + + * variables.cc (bind_ans): Create ans_id each time with new and + ask tree_simple_assignment_expression to handle cleaning it up. + This apparently plugs a memory leak. + + * help.cc (Ftype): Don't try to print map constants. Handle + references to structure members. + + Wed Apr 26 12:40:59 1995 John Eaton + + * input.cc (generate_struct_completions): New function. + (generate_possible_completions): Likewise. + (looks_like_struct): Likewise. + (command_generator): Handle completion of struct variables. + + * tree-expr.h, tree-expr.cc (tree_fvc::lookup_map_element): + Add insert and silent args. + + * oct-map.cc: New file. + * Makefile.in (SOURCES): Add it to the list. + + Mon Apr 24 09:41:02 1995 John Eaton + + * variables.cc (Fexist): Handle structure references too. + + * tree-const.cc (lookup_map_element (const char*, int, int): + New function. + (lookup_map_element (SLList&, int, int): New arg, silent. + * tc-rep.cc (lookup_map_element): New arg, silent. If nonzero, + don't call error(). + + * tc-rep.h (is_empty): Define here. + * tree-const.h (is_empty): Hand off to TC_REP::is_empty(). + + * data.cc (Fstruct_contains): Call lookup_map_element on args(0) + instead of extracting the map and calling contains() on it. + + * parse.y (EPLUS, EMINUS): New tokens. + (simple_expr): Handle EPLUS, EMINUS the same as `+' and `-'. + * lex.l (".+", ".-"): New patterns. Match these separately to + disallow using them as unary operators. + + * lex.l (next_token_is_bin_op): Simplify by noting that spacing + only matters for those tokens that can also be unary ops. + + Fri Apr 21 14:34:45 1995 John Eaton + + * load-save.cc (read_ascii_data): Allow reading of empty + matrices. + + * tc-rep-ass.cc (vector_assignment): Only assert that we are not + doing fortran-style indexing and that nr <= 1 || nc <= 1. + (do_vector_assign): Handle assignment of [] when one dimension is + zero and the other is anything. + + Thu Apr 20 13:56:21 1995 John Eaton + + * tc-rep-ass.cc (delete_rows, delete_columns): Simply return if + num_to_delete is 0. + + * lex.l (handle_identifier): Don't match plot option keywords + inside parentheses or braces. + + * variables.cc (parse_fcn_file): Also delete tmp_help_txt if + running a script. + + * tree-cmd.h (tree_command): Add destructor. + + * tree-expr.h tree_simple_assignment_expression (lhs_idx_expr): + Hang on to idx_expr, not just its parts so it can be deleted. + (init): Initialize it. + * tree-expr.cc (~tree_simple_assignment_expression): Delete it. + + * tree-expr.h (tree_multi_val_ret, tree_oct_obj, tree_fvc, + tree_identifier, tree_builtin, tree_function): Add destructors. + * tree-expr.cc (tree_function::~tree_function): Delete some stuff. + + * tree-misc.h (tree_va_return_list): Add destructor. + + * octave.cc (__builtin_new, __builtin_delete): Provide our own, + for debugging. + + * utils.cc (strconcat): Don't depend on the return value from + strcat. + (file_in_path): Simplify logic. + + * parse.y (maybe_convert_to_ans_assign): Create ans_id each time + with new and ask tree_simple_assignment_expression to handle + cleaning it up. This apparently plugs a memory leak. + + * lex.l (strip_trailing_whitespace): Declare retval static. + Delete it before saving next string. + + * error.cc (Ferror): Do call error() for empty string args. + (error_1): Don't print anything if fmt is "" or "\n", but do set + the error state appropriately. + + * tree-cmd.cc (tree_unwind_protect::eval): Handle return and break + in the `try' part of the statement. + + Mon Apr 10 19:29:44 1995 John Eaton + + * f-expm.cc, f-givens.cc, f-qzval.cc, f-syl.cc, f-rand.cc: + Where appropriate, declare Fortran functions to take reference + instead of pointer args. Change callers. + + * mappers.cc: Declare Fortran functions to take reference instead + of pointer args. Change callers. + + * gamma.c, lgamma.c, erfc.c, erf.c, atanh.c, asinh.c, acosh.c: + Declare Fortran functions to take reference instead of pointer + args. + + Sun Apr 9 19:38:53 1995 John Eaton + + * file-io.cc (Fpopen, Fpclose, Fexecute, Fsync_system, + Fasync_system, Fwaitpid, Fmkfifo, Funlink): New functions. + + * sighandlers.cc (sigchld_handler): New function. + (install_signal_handlers): Add call to install + sigchld_handler. (This is #if 0'd out, waiting for code to help + determine which child exited and what to do about it). + + * tree-expr.h (tree_oct_obj): New class. + + * tree-expr.h (tree_multi_assignment_expression::preserve): New + data member. Add arg with default value to constructors. Change + callers as necessary. + * tree-expr.cc (~tree_multi_assignment_expression): Conditionally + delete lhs. + + * parse.y (make_multi_val_ret): Pass matrix instead of getting it + from the global matrix list. + (expression): Extract matrix from matrix list before calling + make_multi_val_ret(). + + * parse.y (command): Handle new for loop syntax for structures. + + * tree-plot.h (subplot_list): Include tree_print_code() in + initializer lists for constructors. + * tree-expr.h (tree_statement_list, tree_argument_list, + tree_parameter_list, tree_return_list, tree_global_init_list, + tree_if_command_list, ): Likewise. + + * tree-cmd.h (tree_for_command::id_list): New data member. + (tree_for_command (tree_return_list*, tree_expression*, + tree_statement_list*, int, int)): Likewise. + * tree-cmd.cc (tree_for_command::eval): Handle for loops with + structures. + (do_for_loop_once (tree_return_list*, Octave_object&, int&)): + New form for handling for loops with structures. + + * sysdep.cc (octave_ieee_init): Determine floating point format + here. + (native_float_format): New global variable. + (Fisieee): Compute return value from native_float_format, not by + using preprocessor macros. + * sysdep.h (enum floating_point_format): Move declaration here. + * load-save.cc: From here. + Always define all floating point format conversion routines. + (do_double_format_conversion, do_float_format_conversion): + Use native_float_format instead of preprocessor macros. + + Sat Apr 8 15:41:35 1995 John Eaton + + * Makefile (TEMPLATE_SRC): New variable. + (DISTFILES): Add $(TEMPLATE_SRC). + (SOURCES): Delete Map.cc and SLStack.cc from here. + + * variables.cc (install_builtin_variables): Use OCTAVE_VERSION + instead of version_string to initialize OCTAVE_VERSION. + * version.h (version_string): Delete. + + * getopt.c (_getopt_internal): Initialize indfound to avoid warning. + + Fri Apr 7 15:29:41 1995 John Eaton + + * tc-inlines.h (REP_RHS_MATRIX): Just check to see if tc is real + or complex. If conversion fails, return. + + Thu Apr 6 00:10:47 1995 John Eaton + + * data.cc (Fstruct_contains): New function. + + * tc-rep.cc (print_code): Add extra parens around while condition + to avoid warning. + * utils.cc (undo_string_escapes): Likewise. + * input.cc (decode_prompt_string): Likewise. Also rewrite if + statement to avoid warning. + + Tue Apr 4 22:54:17 1995 John Eaton + + * tree-expr.cc (tree_multi_assignment_expression::eval, + tree_simple_assignment_expression::eval): Call print_constant + even if user_pref.print_answer_id_name is false. + + Mon Apr 3 17:57:14 1995 John Eaton + + * tc-inlines.h (TC_REP): Avoid redefinition. + + * tree-const.h (do_binary_op, do_unary_op): Declare as friends of + tree_constant class too. + + * tree-plot.h (subplot_using::have_values): Delete data member. + * tree-plot.cc (subplot_using::eval): Always recompute values. + + Fri Mar 31 10:18:32 1995 John Eaton + + * tc-rep.cc (print): Print open brace for structures here. + * tree-expr.cc (print_constant): Not here. + + * symtab.cc (define): Don't delete arg if sv_fcn fails. + + * tree-const.cc (print): New function. Create ostrstream buffer + and pass it to rep->print(). + * tree-const.h (eval (int)): Call print(), not rep->print(). + * tc-rep.cc (structure_indent_level): New file-scope variable. + (print): New arg, output_buf, is stream to print to. + Print values of structure elements too. + + * user-prefs.h (user_preferences): New field, struct_levels_to_print. + * user-prefs.cc (struct_levels_to_print): New function. + * variables.cc (install_builtin_variables): Add DEFVAR for new + variable struct_levels_to_print. + + * tree-const.cc (print_as_scalar, print_as_structure): Move here + from tree-expr.cc and make extern. + + * tree-expr.cc (print_as_structure): New function. + (print_constant): Use it. + + * tree-expr.cc (print_constant): New arg, print_padding. + (tree_simple_assignment_expression::eval): Use print_constant + instead of duplicating code here. + (tree_multi_assignment_expression::eval): Likewise. + + Thu Mar 30 13:24:11 1995 John Eaton + + * Makefile.in (SOURCES): Add resource.cc. + * resource.cc: New file, extracted from timefns.cc. + (Fgetrusage): New function. + * timefns.cc (cputime): Delete (now implemented in a function file + using new getrusage function). + + Wed Mar 29 22:52:42 1995 John Eaton + + * Makefile.in (SOURCES): Add strftime.c. + * strftime.c: New file, from sh-utils distribution. + + * timefns.cc (mk_tm_map, extract_tm, Ftime, Fgmtime, Flocaltime, + Fmktime, Fstrftime): New basic time functions. + (Fclock, Fdate): Delete (now implemented in function files using new + time functions). + + Tue Mar 28 17:51:51 1995 John Eaton + + * file-io.cc (return_valid_file, do_printf, do_scanf, + fclose_internal, feof_internal, ferror_internal, fflush_internal, + fgets_internal, fopen_internal, fread_internal, freport_internal, + frewind_internal, fseek_internal, ftell_internal, + fwrite_internal): Declare static. + * file-io.h: Delete extern declarations for them. + + Fri Mar 24 09:52:50 1995 John Eaton + + * pr-output.cc (pr_col_num_header): New function. + (compact_format): New file-scope variable. + (set_format_style): Handle loose and compact formats. + (octave_print_internal (ostream&, const ComplexMatrix&, int)): + Replace duplicate code with call to pr_col_num_header(). + (octave_print_internal (ostream&, const Matrix&, int): Likewise. + (octave_print_internal (ostream&, const Range&, int): Likewise. + + Tue Mar 21 08:44:48 1995 John Eaton + + * mappers.cc (xgamma): Always use Slatec library function. + * (xlgamma): Likewise. + * Makefile.in (SOURCES): Don't include lgamma.c. + + Fri Mar 17 22:38:39 1995 John Eaton + + * tc-rep.cc (TC_REP::new): Don't try to keep track of newlist_tail. + Explicitly initialize newlist to zero. + * tree-const.cc (tree_constant::operator new): Likewise. + + Fri Mar 10 12:40:24 1995 John Eaton + + * tree-cmd.cc (quit_loop_now): Declare inline. + (tree_for_command::do_for_loop_once): Split into two versions, one + for the general case and one for when the loop variable is a + simple identifier. + (DO_LOOP): New macro. Move tests outside of loop. + (tree_for_command::eval): Speed up by checking to see if loop + variable is a simple identifier and by using DO_LOOP. + + * tree-const.h: New union of rep and freeptr. The freeptr element + is used for our custom memory management functions. + + * tc-rep.h: Add freeptr element to anonymous union (for our custom + memory management functions). + + * tree-const.cc (newlist, newlist_grow_size, newlist_tail): New + static variables. + (tree_constant::operator new): Always define to allow more + efficient allocation of single tree_constants. + (tree_constant::operator delete): Likewise, handle deletion of the + memory we allocate. + + * tc-rep.cc (newlist, newlist_grow_size, newlist_tail): New static + variables. + (tree_constant::operator new): Always define to allow more + efficient allocation of single tree_constants. + (tree_constant::operator delete): Likewise, handle deletion of the + memory we allocate. + + Fri Mar 3 14:00:08 1995 John Eaton + + * error.cc (verror): Terminate output_buf with ends. + + * statdefs.h: Use C-style comment in first line instead of + C++-style comment. + + Mon Feb 27 10:11:18 1995 John Eaton + + * parse.y (maybe_convert_to_ans_assign): Only lookup ans once. + * variables.cc (bind_ans): New function. + * tree-expr.cc (tree_identifier::eval (int)): Use it here. + (tree_identifier::eval (int, int, const Octave_object&): And here. + + * tree-expr.cc (install_nargin_and_nargout): New function. + * tree-expr.h (tree_function::tree_function (tree_statement_list *, + symbol_table *, int, int)): Call it. + + * tree-expr.cc (tree_function::bind_nargin_and_nargout): New function. + (tree_function::eval): Call it insead of the one from variables.cc. + + * variables.cc (bind_nargin_and_nargout): #if 0 out. + + Sun Feb 26 00:17:06 1995 John Eaton + + * load-save.cc (Fload, Fsave): Free fname returned by tilde_expand(). + * dirfns.cc (Fls): Likewise. + + * tree-expr.cc (tree_multi_assignment_expression::eval (int, int, + const Octave_object&)): Call tree_return_list::operator () (Pix) + explicitly. + + * octave.cc (initialize_globals): Put TEXMF in the environment for + kpthsea. + + * Makefile.in (OCTAVE_LIBS): Use @LIBINFO@ and @LIBREADLINE@, + substituted by configure. Use kpathsea.a, not libkpathsea, so we + don't have to modify the kpathsea Makefile. + + Sat Feb 25 18:59:26 1995 John Eaton + + * pathsearch.cc: New file. + * pathsearch.h: New file. + * Makefile.in (INCLUDES): Include it in the list. + * dynamic-ld.cc, help.cc, utils.cc: Use it instead of repeating + identical code multiple times. + + * variables.cc (install_builtin_variables): Only DEFVAR + suppress_verbose_help_message if USE_GNU_INFO. + + * help.cc (Fhelp): Only handle -i if USE_GNU_INFO. + (additional_help_message): Only print message if USE_GNU_INFO. + (builtin_help): New function. + (help_from_info): New function. Print warning if not USE_GNU_INFO. + + See ChangeLog.1 in the top level directory for earlier changes. diff -cNr octave-3.4.0/etc/OLD-ChangeLogs/test-ChangeLog octave-3.4.1/etc/OLD-ChangeLogs/test-ChangeLog *** octave-3.4.0/etc/OLD-ChangeLogs/test-ChangeLog 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/OLD-ChangeLogs/test-ChangeLog 2011-06-15 11:13:48.000000000 -0400 *************** *** 0 **** --- 1,848 ---- + 2011-04-03 Rik + + * test_diag_perm.m: Reverse previous changeset. Return 3-input form + of diag(). + + 2011-04-01 Rik + + * test_diag_perm.m: Update diag tests to reflect removal of archaic + 3-input form of diag(). + + 2011-03-18 Rik + + * test_parser.m: Add operatore precedence tests. + + 2011-03-01 Rik + + * test/test_index-wfi-t.m: Use modern warning function + rather than deprecated built-in variable to set warning state. + + 2011-02-22 Rik + + * fntests.m: Use single quotes around regexp patterns. + + 2011-02-19 Rik + + * fntests.m: Use PCRE regular expressions to simplify script. + + 2011-02-02 Rik + + * build_sparse_tests.sh: Use testif to only run some sparse tests when + necessary libraries are installed. + + 2011-01-14 John W. Eaton + + * Update copyright notices for 2011. + + 2010-12-13 Rik + + * test_switch.m : Add test for switch statement with otherwise clause, + but no cases. + + 2010-11-10 John W. Eaton + + * fntests.m: Set warning state off for Octave:deprecated-functions. + (run_test_script): Do run tests for deprecated functions. + + 2010-11-09 John W. Eaton + + * test_parser.m: New file. + * Makefile.am (FCN_FILES): Add it to the list. + + 2010-09-29 Rik + + * fntests.m: Break output text differently for better readability. + + 2010-09-28 Rik + + * test/@Gork/set.m, test/fntests.m, test/test_func.m, test/test_io.m: + Untabify scripts. + + 2010-09-27 Rik + + * fntests.m: Use single quotes for regex when possible. + + 2010-09-26 Rik + + * fntests.m (has_tests, has_functions): Recode to remove requirement + for PCRE. + + 2010-09-24 Rik + + * fntests.m: Rephrase output for clarity. + + 2010-08-17 Rik + + * fntests.m: Add extra newline for more readable output. + + 2010-07-30 Rik + + * Makefile.am: New clean-local target to remove directories + created automatically during testing. + + 2010-04-28 John W. Eaton + + * test_struct.m: Update expected error message text. + + 2010-03-19 Jaroslav Hajek + + * test_slice.m: Use ID check rather than message for invalid resizing. + + 2010-03-05 Jaroslav Hajek + + * test_logical-wfi-f.m: Update. + * test_logical-wfi-t.m: Update. + * test_struct.m Update. + + 2010-01-29 John W. Eaton + + * fntests.m (hasfunctions): Only check for DEFUN in .cc files. + Return true for all .m files. + + 2010-01-14 David Grundberg + + * fntests.m (run_test_script): Check all *.cc files for tests. + + 2010-01-13 Rik + + * build_bc_overload_tests.sh: Correct test syntax (= vs. ==) + + 2010-01-13 John W. Eaton + + * Makefile.am (test_bc_overloads.m): Accept expected results + file as argument. Style fixes. + + 2010-01-13 Jaroslav Hajek + + * build_bc_overload_tests.sh: New shell script. + * build_bc_overloads_expected.m: New source (not normally used). + * bc_overloads_expected: New text file. + * Makefile.am: Build test_bc_overloads.m. + + 2009-12-25 John W. Eaton + + * fntests.m (hastests): Use regexp instead of findstr and only + match tests that appear as the first thing on a line. + + 2009-12-19 Rik + + * build_sparse_tests.sh: Use lognrnd instead of deprecated lognormal_rnd + + 2009-12-19 Rik + + * Makefile.am: Eliminate TOPDIR variable in favor of built-in automake + variables of top_builddir and top_srcdir. + + 2009-12-17 Rik + + * config/unix.exp: Remove obsolete file from repository + + 2009-12-17 Rik + + * @Blork/module.mk, @Cork/module.mk, @Dork/module.mk, + @Gork/module.mk, @Pork/module.mk, @Sneetch/module.mk, + @Snork/module.mk, @Spork/module.mk, Makefile.am: Distribute private + function directories necessary for OOP tests to work in tarballs + + 2009-12-03 John W. Eaton + + * Makefile.am (CLEANFILES, DISTCLEANFILES): New variables. + + 2009-11-10 John W. Eaton + + * @Blork/module.mk, @Cork/module.mk, @Dork/module.mk, + @Gork/module.mk, @Pork/module.mk, @Sneetch/module.mk, + @Snork/module.mk, @Spork/module.mk, Makefile.am: New files. + * Makefile.in: Delete. + + 2009-10-19 Rik + + * fntests.m: .cc files are now included in the list of files requiring + tests only if they define a user function (DEFUN or DEFUN_DLD) + + 2009-10-19 Rik + + * fntests.m: Remove deprecated functions from list of functions + requiring new tests to be written. + + 2009-10-08 Rik + + * fntests.m: Fix typo of an extra space in instructions to user. + + 2009-10-05 Rik + + * fntests.m: Fix typo directing users to the wrong log file + + 2009-06-23 Robert T. Short + + * @Blork/Blork.m, @Blork/bleek.m, @Blork/display.m, @Blork/get.m, + @Blork/set.m, @Cork/Cork.m, @Cork/click.m, @Cork/display.m, + @Cork/get.m, @Cork/set.m, @Dork/Dork.m, @Dork/bling.m, + @Dork/display.m, @Dork/gack.m, @Dork/get.m, @Dork/getStash.m, + @Dork/private/myStash.m, @Dork/set.m, @Gork/Gork.m, @Gork/cork.m, + @Gork/display.m, @Gork/gark.m, @Gork/get.m, @Gork/set.m, + @Gork/subsasgn.m, @Gork/subsref.m, @Pork/Pork.m, @Pork/bling.m, + @Pork/display.m, @Pork/get.m, @Pork/gurk.m, + @Pork/private/myStash.m, @Pork/set.m, @Sneetch/Sneetch.m, + @Sneetch/display.m, @Snork/Snork.m, @Snork/cack.m, + @Snork/display.m, @Snork/end.m, @Snork/get.m, @Snork/getStash.m, + @Snork/gick.m, @Snork/loadobj.m, @Snork/private/myStash.m, + @Snork/saveobj.m, @Snork/set.m, @Snork/subsasgn.m, + @Snork/subsindex.m, @Snork/subsref.m, @Spork/Spork.m, + @Spork/cack.m, @Spork/display.m, @Spork/geek.m, @Spork/get.m, + @Spork/getStash.m, @Spork/loadobj.m, @Spork/private/myStash.m, + @Spork/saveobj.m, @Spork/set.m, test_classes.m: New files. + + 2009-06-22 Jaroslav Hajek + + * test_null_assign.m: Fix test. + + 2009-04-17 Thorsten Meyer + + * test_struct.m: Add tests to prevent regression of bug with + indexed assignment into empty struct array. + + 2009-04-15 Thorsten Meyer + + * test_struct.m: Add tests for lazy copying in nested assignments + of struct elements. + + 2009-04-12 Thorsten Meyer + + * test_contin.m, test_error.m, test_eval-catch.m, test_for.m, + test_global.m, test_if.m, test_index-wfi-f.m, + /test_index-wfi-t.m, test_io.m, test_logical-wfi-f.m, + test_logical-wfi-t.m, test_prefer.m, test_recursion.m, + test_return.m, test_string.m, test_struct.m, test_switch.m, + test_system.m, test_transpose.m, test_try.m, test_unwind.m, + test_while.m: Remove obsolete comments. + + 2009-04-07 Carlo de Falco + + * test_io.m: Add a test for saving and reading a matrix with the + "-ascii" format. + + 2009-03-10 Jason Riedy + + * test_diag_perm.m: Add tests for permuting sparse matrices and + for the correct types from interactions between + pseudo-scalars (1x1 matrices). + + 2009-03-10 Jason Riedy + + * build_sparse_tests.sh: Add LU tests to the rectangular tests. + + 2009-03-10 Jason Riedy + + * test_diag_perm.m: Add a test for conversion to sparse form. + + 2009-03-09 Jason Riedy + + * test_diag_perm.m: Add tests for diag + sparse. + + 2009-03-08 Jason Riedy + + * test_diag_perm.m: Add tests for inverse scaling and sparse structure. + + 2009-03-08 Jason Riedy + + * test_diag_perm.m: Add tests for preserving sparse structure + when scaling. + + 2009-02-25 John W. Eaton + + * build_sparse_tests.sh: Note that saving sparse matrices to MAT + files fails when using 64-bit indexing. + + 2009-02-22 John W. Eaton + + * build_sparse_tests.sh: Fix diag matrix divide by zero test. + + 2009-02-18 John W. Eaton + + * test_args.m: Don't use assert to test for function handles. + + 2009-02-15 John W. Eaton + + * test_io.m, test_prefer.m: Avoid command-style function call + syntax when assigning results. + + 2009-02-09 John W. Eaton + + * fntests.m (hastests): Error if fopen fails. + + 2009-01-29 John W. Eaton + + * test_system.m: Use isfield instead of struct_contains. + + 2009-01-25 Thorsten Meyer + + * test_struct.m: Add struct array tests. + + 2009-01-23 Søren Hauberg + + * test_prefer.m: Update to match new API of the 'type' function. + + 2008-12-24 John W. Eaton + + * fntests.m (hastests): Use fread instead of fscanf to preserve + whitespace. + + 2008-12-02 Jaroslav Hajek + + * build_sparse_tests.sh: Fix test. + + 2008-10-28 Jaroslav Hajek + + * test_logical-wfi-f.m: Fix error messages. + * test_logical-wfi-t.m: Fix error messages. + * test_slice.m: Fix error messages. + + 2008-09-26 Jaroslav Hajek + + * test_null_assign.m: More test for null assignments. + + 2008-09-18 Jaroslav Hajek + + * test_null_assign.m: New tests. + + 2008-06-11 John W. Eaton + + * test_error.m: Fix tests for usage. + * test_eval-catch.m, test_try.m: Fix expected output from lasterr. + + 2008-06-02 David Bateman + + * test_arith.m: Delete and move tests close to function + definitions. + * test_func.m: Also test for single precision return values. + + * test_infnan.m, test_linalg.m, test_matrix.m, test_number.m): + Delet and move tests close to function definitions. + * test_range.m: Also test single precision examples. + + 2008-05-19 Bill Denney + + * test_args.m: Update format to allow running "test test_args" + and add default argument tests. + + 2008-05-09 Rafael Laboissiere + + * test_io.m, test_system.m: Use ischar instead of deprecated isstr. + + 2008-05-06 John W. Eaton + + * fntests.m: Use puts instead of printf where appropriate. + Fix missing newline in message. + + 2008-03-26 David Bateman + + * test_index-wfi-f.m: Split large block of tests. New tests. + + 2008-03-26 John W. Eaton + + * fntests.m (report_files_with_no_tests): New function. + Use it to report number of .m and .cc files without tests separately. + + 2008-03-25 John W. Eaton + + * test_index-wfi-f.m: New tests. + + 2008-03-25 Jaroslav Hajek + + * test_io.m: Add test for save with -struct modifier. + + 2008-03-20 David Bateman + + * test_func.m: Modify to test for char, cell and structure arrays. + + * test_func.m: New test code that ensures that all operations + which work on dimensions alone (squeeze, triu, etc.) work for all + objects and preserve type. + + 2008-04-09 Michael Goffioul + + * test_string.m: Fix isprint test under Win32, where + isprint(setstr(9)) is true. + * test_system.m: Add condition for various syscall tests. Make cd test + able to deal with drive-letter-only pathnames (e.g. C:\) under Win32. + + 2008-03-07 John W. Eaton + + * test_logical-wfi-t.m, test_logical-wfi-f.m: Update tests for + logical indexing bug fix. + + 2008-03-06 John W. Eaton + + * test_eval.m, test_diffeq.m, test_quad.m, test_signal.m: + Delete files with no tests. + + 2008-02-25 Ben Abbott + + * test_eval-catch.m, test_io.m, test_try.m: Use cstrcat instead of + strcat. + + 2008-02-22 David Bateman + + * build_sparse_tests.sh: Replaced removed sparse functions like + spdiag with their generic names. Fix lu tests for modified + syntax. Test vector and scaling or LU and chol functions. + * test_linalg.m: Change error message of failing chol/lu test. + + 2008-02-19 David Bateman + + * build_sparse_tests.sh: Replaced removed spars functions like + spmin, with their generic names. + + 2008-01-22 John W. Eaton + + * test_poly.m, test_set.m, test_stats.m: Delete files with no tests. + + 2008-01-22 Thomas Weber + + * test_linalg.m, test_matrix.m, test_number.m, test_poly.m, + test_signal.m, test_stats.m, test_string.m, test_system.m: + Move tests to individual source files. + + 2008-01-15 Thomas Weber + + * test_arith.m: Move tests to source files. + + 2008-01-15 John W. Eaton + + * test_audio.m, test_control.m, test_image.m, test_optim.m, + test_plot.m, test_unix.m: Delete files with no tests. + + 2007-12-21 John W. Eaton + + Version 3.0.0 released. + + 2007-12-18 David Bateman + + * build_sparse_tests.sh: Add tests for indexing like a([1,1],:), + a(:,[1,1]) and sparse(42)([1,1]). + + 2007-12-11 David Bateman + + * build_sparse_tests.sh: Drop argument to Fsparse to force mutation. + * test_range.m: Ditto. + + 2007-12-10 John W. Eaton + + * test_nonlin.m: Delete. + + 2007-12-03 David Bateman + + * fntests.m: Also count the skipped tests. + * build_sparse_tests.sh: As appropriate make tests conditional on + HAVE_UMFPACK, HAVE_CHOLMOD and HAVE_CXSPARSE. + + 2007-11-26 David Bateman + + * build_sparse_tests.sh: More care with sparse return values. + + 2007-10-30 Kim Hansen + + * build_sparse_tests.sh: Fix typo. + + 2007-10-23 John W. Eaton + + * build_sparse_tests.sh (gen_sparsesparse_elementop_tests): + Use xtest for "assert(as./bs,sparse(af./bf,true),100*eps);" test. + + 2007-10-12 John W. Eaton + + * Change copyright notices in all files that are part of Octave to + GPLv3 or any later version. + + 2007-10-06 John W. Eaton + + * test_poly.m: Move residue test to residue.m. + + 2007-09-29 Kim Hansen + + * test_range.m: Test range data + + 2007-09-21 John W. Eaton + + * test_slice.m: Fix test for x = ones ([0, 2]); x(idx) = N case. + See change for liboctave/Array.cc. + + 2007-06-15 John W. Eaton + + * fntests.m: Also report expected failures in summary. + Improved wording from Thomas Weber . + + 2007-06-06 John W. Eaton + + * test_signal.m: Rename internal assert function to xassert. + + 2007-04-26 David Bateman + + * test_for.m: Add tests for multi-dimensional matrices and cell + arrays. + + 2007-04-04 Rafael Laboissiere + + * Makefile.in (clean): Also remove a.wav file created by + testing wavwrite.m. + + 2007-04-03 Kim Hansen + + * test_slice.m: New file. + + 2007-03-27 John W. Eaton + + * Makefile.in (dist): Use ln, not $(LN_S). + + 2007-02-26 From Michael Goffioul + + * Makefile.in: Use $(LN_S) instead of ln or ln -s. + + 2007-02-20 John W. Eaton + + * Makefile.in (check): Use --norc instead of --no-site-file. + From: Alex Zvoleff + + 2007-02-19 John W. Eaton + + * test_system.m: Handle confirm_recursive_rmdir as function + instead of built-in variable. + + 2007-02-07 John W. Eaton + + * fntests.m: Add plea for help writing tests. + + 2007-01-11 John W. Eaton + + * fntests.m: Also handle scripts directory in the build tree. + + * Makefile.in (OCTAVE_SCRIPT_PATH): Delete unused variable. + + 2006-11-14 Luis F. Ortiz + + * fntests.m: Include liboctave in the list of directories to test. + + 2006-08-25 John W. Eaton + + * test_io.m (testls): Allow for small variance in loaded values + for text data formats. Use persistent local variables instead of + resetting rand seed. + + 2006-08-22 David Bateman + + * build_sparse_tests.sh: Don't force conversion to sparse boolean + return type for string mapper functions. + + 2006-08-21 John W. Eaton + + * test_io.m: Use isequal (a, b) instead of a != b. Use isequal + for struct and cell tests instead of more complex constructs. + + 2006-06-27 John W. Eaton + + * Makefile.in (distclean): Also remove test_sparse.m. + + 2006-06-07 John W. Eaton + + * fntests.m: Keep track of files with tests and report total. + + 2006-06-01 John W. Eaton + + * fntests.m (print_test_file_name, print_pass_fail): New functions. + (runtestdir, runtestscript): Use them. Print info for each file + with tests. Print info about files without tests to log file. + (run_test_dir): Rename from runtestdir. Change all uses. + (run_test_script): Rename from runtestscript. Change all uses. + Handle page_screen_output as a function instead of a built-in + variable. + + 2006-05-04 John W. Eaton + + * test_prefer.m: Adjust tests for eliminated built-in variables. + + 2006-04-29 John W. Eaton + + * Makefile.in (check): Use run-octave script. + + 2006-04-28 John W. Eaton + + * test_prefer.m: Adjust tests for new way of handling warning state. + * build_sparse_tests.sh: Likewise. + + 2006-04-11 John W. Eaton + + * test_system.m, test_struct.m, test_string.m, test_quad.m, + test_number.m, test_nonlin.m, test_matrix.m, test_linalg.m, + test_io.m, test_diffeq.m, test_arith.m: Update for new usage + message format. + + 2006-04-03 David Bateman + + * test_number.m: Reverse sense of isscalar and isvector tests + for recent changes. + + 2006-03-21 John W. Eaton + + * test_system.m: Use cell arrays of character strings in fnmatch + tests. + + 2006-03-16 John W. Eaton + + * test_system.m: End all *pwent tests with a call to endpwent. + End all *grent tests with a call to endgrent. + + 2006-03-14 John W. Eaton + + * fntests.m: Prettier printing of output. + * test_eval.m: Disable chatty tests. + + 2006-03-08 David Bateman + + * test_system.m: Fix recursive rmdir test for recent change. + + 2006-02-20 David Bateman + + * build_spase_tests.sh: Add tests for ldiv tests for rectangular + diagonal, permuted diagonal, triangular and permuted triangular + matrices. + + 2006-02-09 David Bateman + + * build_sparse_tests.sh: Add tests for sparse QR solvers. + + 2006-01-21 David Bateman + + * build_sparsetest.sh: Add new un-ordered indexing, assignment and + deletion tests. + + 2006-01-13 Bill Denney + + * test_system.m: Use filesep instead of "/" where needed. + + 2005-12-14 David Bateman + + * build_sparse_tests.sh: New script to build sparse matrix tests. + * fntests.m: New script to run the octave test code, with "make check". + * Makefile.in (DISTDIRS): Delete. + (dist): Simplify. + (OCTAVE_SCRIPT_PATH): Include . and $(srcdir). + (check): Run tests with fntest.m instead of runtest. + (test_sparse.m): New target. + (clean): Remove fntests.log instead of octave.log and octave.sum. + + * tests/test_args.m, tests/test_infnan.m, tests/test_set.m, + tests/test_arith.m, tests/test_io.m, tests/test_signal.m, + tests/test_audio.m, tests/test_linalg.m, tests/test_sparse.m, + tests/test_contin.m, tests/test_logical-wfi-f.m, tests/test_stats.m, + tests/test_control.m, tests/test_logical-wfi-t.m, tests/test_string.m, + tests/test_diffeq.m, tests/test_matrix.m, tests/test_struct.m, + tests/test_error.m, tests/test_nonlin.m, tests/test_switch.m, + tests/test_eval-catch.m, tests/test_number.m, tests/test_system.m, + tests/test_eval.m, tests/test_optim.m, tests/test_transpose.m, + tests/test_for.m, tests/test_plot.m, tests/test_try.m, + tests/test_global.m, tests/test_poly.m, tests/test_unix.m, + tests/test_if.m, tests/test_prefer.m, tests/test_unwind.m, + tests/test_image.m, tests/test_quad.m, tests/test_while.m, + tests/test_index-wfi-f.m, tests/test_recursion.m, + tests/test_index-wfi-t.m, tests/test_return.m: Initial of conversion + of DejaGnu tests to test/assert infrastructure. + + 2005-05-11 John W. Eaton + + * config/unix.exp: Start Octave with -H. + + 2002-10-31 John W. Eaton + + * octave.test/arith/prod-4.m, octave.test/arith/sum-4.m: + Cover more cases for empty matrices. + + 2002-10-15 Paul Kienzle + + * Makefile.in: Use @library_path_var@ instead of LD_LIBRARY_PATH. + + 2002-09-27 Paul Kienzle + + * qr-7.m: Remove randomness from complex matrix generator. + Increase tolerance on rosser matrix test. + + 2002-09-26 Paul Kienzle + + * octave.test/linalg/qr-7.m: Replace large random matrix tests + of economy QR decomposition with small predictable tests. + Include numerically sensitive rosser matrix test. Don't + report the measured norms. + + 2002-04-24 Bill Lash + + * test/octave.test/signal/signal.exp: Add unwrap test. + * test/octave.test/signal/unwrap-1.m: New file. + + 2002-04-24 David Billinghurst + + * octave.test/signal/signal.exp: Add tests for fft, ifft + fft2, ifft2 and detrend. + * octave.test/signal/detrend-1.m: New test. + * octave.test/signal/detrend-2.m: New test. + * octave.test/signal/detrend-3.m: New test. + * octave.test/signal/fft-1.m: New test. + * octave.test/signal/ifft-1.m: New test. + * octave.test/signal/fft2-1.m: New test. + * octave.test/signal/ifft2-1.m: New test. + + 2002-04-22 John W. Eaton + + * octave.test/diffeq/dassl-1.m (tol): Use relative tolerance for test. + * octave.test/diffeq/dassl-2.m (tol): Likewise. + * octave.test/diffeq/lsode-1.m (tol): Likewise. + * octave.test/diffeq/lsode-2.m (tol): Likewise. + * octave.test/diffeq/lsode-3.m (tol): Likewise. + + 2002-04-12 Kienzle + + * config/unix.exp: Allow running of individual tests with + "runtest *.exp" from any of the directories under test/octave.test. + + 2002-04-02 John W. Eaton + + * octave.test/linalg/qr-7.m: New test. + From Paul Kienzle . + + 2001-04-24 Christoph Spiel + + * Makefile.in (check): Allow user to specify which .exp file to run. + * octave.test/try, octave.test/eval-catch: New directories and tests. + + 2000-06-07 Ben Sapp + + * octave.test/quad/quad-1.m: Use absolute value of difference + from expected value when comparing with sqrt (eps). Potential + problems like this were noticed by Przemek Klosowski + . + * octave.test/quad/quad-2.m: Likewise. + * octave.test/arith/exp-1.m: Likewise. + * octave.test/linalg/cond-1.m: Likewise. + * octave.test/linalg/eig-1.m: Likewise. + * octave.test/linalg/eig-2.m: Likewise. + * octave.test/linalg/inv-1.m: Likewise. + * octave.test/linalg/lu-2.m: Likewise. + * octave.test/linalg/svd-2.m: Likewise. + * octave.test/linalg/svd-10.m: Likewise. + + 1999-10-29 John W. Eaton + + * octave.test/system/mktime-1.m (t): Compare whole seconds only. + + Fri Dec 4 20:55:47 1998 John W. Eaton + + * octave.test/system/clock-1.m: Use standard format specifiers %d + and %H instead of %e and %k. + + Fri Oct 23 15:53:01 1998 John W. Eaton + + * octave.test/arith/exp-5.m: New test. + + * octave.test/stats/mean-3.m: New version of mean accepts a second + optional arg. + + * octave.test/system/date-1.m: Correct test for new Y2K-compliant + date function. + + Wed May 27 00:38:27 1998 John W. Eaton + + * octave.test/diffeq/dassl-1.m, octave.test/diffeq/dassl-2.m, + octave.test/diffeq/lsode-1.m: New tests, from David Billinghurst + . + + * octave.test/diffeq/lsode-2.m, octave.test/diffeq/lsode-3.m: + New tests, from Peter Hopfgartner . + + Thu Apr 23 01:45:16 1998 John W. Eaton + + * Makefile.in: If $(SHARED_LIBS), set LD_LIBRARY_PATH for running + Octave before installation is complete. + + Wed Apr 15 15:23:43 1998 John W. Eaton + + * octave.test/index/dfi-f/m-2.m, octave.test/index/dfi-f/index.exp: + Expect this test to succed now. + + Thu Mar 5 20:35:26 1998 John W. Eaton + + * octave.test/system/gmtime-1.m, octave.test/system/localtime-1.m: + Not all systems have time zone info in the struct. + + Mon Mar 2 14:36:50 1998 John W. Eaton + + * octave.test/io/binary-io-1.m (id): Use binary flag in fopen call. + + Wed Apr 2 21:59:15 1997 John W. Eaton + + * octave.test/prefer/prefer.exp: Delete prefer-36 and prefer-37. + * octave.test/prefer/prefer-36.m, octave.test/prefer/prefer-37.m: + Delete test files. + + Wed Mar 12 16:56:41 1997 John W. Eaton + + * Makefile.in (install-strip): New target. + + Sat Mar 1 15:23:14 1997 John W. Eaton + + * Version 2.0.5 released. + + Thu Feb 20 02:58:05 1997 John W. Eaton + + * Version 2.0.4 released. + + Tue Feb 18 09:22:04 1997 John W. Eaton + + * Version 2.0.3 released. + + Mon Jan 27 15:51:58 1997 John W. Eaton + + * Version 2.0.2 released. + + Thu Jan 23 13:48:19 1997 John W. Eaton + + * octave.test/unwind/unwind-2.m: Scripts now stop executing when + errors are encountered. + + * octave.test/return/return.exp: Return at top level is no longer + an error. + + Tue Jan 7 00:16:23 1997 John W. Eaton + + * Version 2.0.1 released. + + Tue Dec 10 01:43:05 1996 John W. Eaton + + * Version 2.0 released. + + Fri Dec 6 15:23:39 1996 John W. Eaton + + * Version 1.94. + + Wed Nov 20 01:00:02 1996 John W. Eaton + + * Version 1.93. + + Thu Nov 14 00:05:57 1996 John W. Eaton + + * Version 1.92 + + Thu Nov 7 12:43:03 1996 John W. Eaton + + * Version 1.91. + + Wed Oct 30 17:19:12 1996 John W. Eaton + + * Version 1.90. + + * Makefile.in (DISTFILES): Add ChangeLog. + + Fri Feb 9 21:40:49 1996 John W. Eaton + + * Makefile.in (OCTAVE_SCRIPT_PATH): Add ../src directory (for .oct + files) and current directory (why not?). + + See ChangeLog.1 in the top level directory for earlier changes. diff -cNr octave-3.4.0/etc/PROJECTS octave-3.4.1/etc/PROJECTS *** octave-3.4.0/etc/PROJECTS 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/PROJECTS 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,11 ---- + Octave PROJECTS + =============== + + A list of proposed projects is maintained at: + + http://wiki.octave.org/wiki.pl?Projects + + If you start working steadily on a project, please let + maintainers@octave.org know. We might have information that could help + you. You should also read the Contributing Guidelines chapter in the + Octave manual. diff -cNr octave-3.4.0/etc/README.Cygwin octave-3.4.1/etc/README.Cygwin *** octave-3.4.0/etc/README.Cygwin 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/README.Cygwin 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,51 ---- + Starting with version 3.0.1, Octave is once again part of the normal + net distribution of Cygwin, available from http://www.cygwin.com. + + It is possible to build Octave from source on Windows systems with Cygwin, + but with the old gcc-3.4.4-3 compiler there are some performance + problems related to the way C++ exception handling is implemented. + This is a known problem with a long history and it is STRONGLY + encouraged to use gcc-4.3.2-1 or later. + + Current binary versions are built with gcc-4.3.4-3 while + binary version 3.0.2-2 was built with gcc-4.3.2-1. + + The latest development Octave development sources (octave-3.3.54+) + are built with: + + configure --enable-shared \ + --enable-float-truncate \ + CC=gcc-4 F77=gfortran-4 CXX=g++-4 CPP=cpp-4 + lt_cv_deplibs_check_method=pass_all \ + LDFLAGS=-no-undefined + + "--enable-float-truncate" is needed for the following bug: + http://thread.gmane.org/gmane.comp.gnu.octave.bugs/12361/focus=12404 + Without it, one of the quadgk test will fail as + "a=a" could be false due to truncation problems with + complex numbers. + + "lt_cv_deplibs_check_method=pass_all" is needed to bypass + incorrect libtool detection of system capabilities and + to allow shared libs building. + + + Octave-3.2.4 was built using: + + configure --enable-shared \ + --without-fltk \ + --without-framework-opengl \ + CC=gcc-4 F77=gfortran-4 CXX=g++-4 CPP=cpp-4 + CFLAGS="-Dtimezone=_timezone" + + + Current Cygwin package maintainer for Octave: + + Marco Atzeri + http://matzeri.altervista.org + + Marco Atzeri + marco_atzeri@yahoo.it + Italy + + Last updated: Mon Jan 3 18:53:41 WEST 2011 diff -cNr octave-3.4.0/etc/README.gnuplot octave-3.4.1/etc/README.gnuplot *** octave-3.4.0/etc/README.gnuplot 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/README.gnuplot 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,12 ---- + Octave works best with gnuplot 4.4 or higher, which is available from + http://www.gnuplot.info. + + In versions prior to 4.2.6 it is not possible to use the mouse to zoom in + on plots. This is a limitation of earlier versions of gnuplot, which are + unable to zoom when the data it plots is not stored in a file. + + + John W. Eaton + jwe@octave.org + + Last updated: Tue Jan 4 18:55:56 PST 2011 diff -cNr octave-3.4.0/etc/README.kpathsea octave-3.4.1/etc/README.kpathsea *** octave-3.4.0/etc/README.kpathsea 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/README.kpathsea 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,171 ---- + The code in the files + + liboctave/kpse.cc + liboctave/kpse-xfns.h + liboctave/kpse-xfns.c + + was adapted from the kpathsearch library. We don't use kpathsearch + directly now because it has too many TeX-specific things that are not + necessary for Octave, and it also does not implement all the special + kinds of file searches that Octave needs (mainly for compatibility + with Matlab). + + Original authors of the kpathsearch library + ------------------------------------------- + + Karl Berry wrote all files not otherwise marked, with help from Kathryn + Hargreaves on some of the original versions. + + Thomas Esser originated most of the MakeTeX... scripts. + + The brace expansion code in expand.c was written by Brian Fox and Chet + Ramey for Bash, the GNU shell. + + The implementation of the link trick in pathsearch.c is taken from GNU + find, implemented by David MacKenzie from Matthew Farwell's suggestion. + + Debugging + --------- + + Kpathsea provides a number of runtime debugging options, detailed + below by their names and corresponding numeric values. When the files + you expect aren't being found, the thing to do is enable these options + and examine the output. + + You can set these with some runtime argument (e.g., `-d') to the + program; in that case, you should use the numeric values described in + the program's documentation (which, for Dvipsk and Xdvik, are different + than those below). It's best to give the `-d' (or whatever) option + first, for maximal output. Dvipsk and Xdvik have additional + program-specific debugging options as well. + + You can also set the environment variable `KPATHSEA_DEBUG'; in this + case, you should use the numbers below. If you run the program under a + debugger and set the variable `kpathsea_debug', also use the numbers + below. + + In any case, by far the simplest value to use is `-1', which will + turn on all debugging output. This is usually better than guessing + which particular values will yield the output you need. + + Debugging output always goes to standard error, so you can redirect it + easily. For example, in Bourne-compatible shells: + dvips -d -1 ... 2>/tmp/debug + + It is sometimes helpful to run the standalone Kpsewhich utility + (*note Invoking kpsewhich::.), instead of the original program. + + In any case, you can *not* use the *names* below; you must always use + somebody's numbers. (Sorry.) To set more than one option, just sum + the corresponding numbers. + + `KPSE_DEBUG_STAT (1)' + Report `stat'(2) calls. This is useful for verifying that your + directory structure is not forcing Kpathsea to do many additional + file tests (*note Slow path searching::., and *note Subdirectory + expansion::.). If you are using an up-to-date `ls-R' database + (*note Filename database::.), this should produce no output unless + a nonexistent file that must exist is searched for. + + `KPSE_DEBUG_HASH (2)' + Report lookups in all hash tables: `ls-R' and `aliases' (*note + Filename database::.); font aliases (*note Fontmap::.); and config + file values (*note Config files::.). Useful when expected values + are not being found, e.g.., file searches are looking at the disk + instead of using `ls-R'. + + `KPSE_DEBUG_FOPEN (4)' + Report file openings and closings. Especially useful when your + system's file table is full, for seeing which files have been + opened but never closed. In case you want to set breakpoints in a + debugger: this works by redefining `fopen' (`fclose') to be + `kpse_fopen_trace' (`kpse_fclose_trace'). + + `KPSE_DEBUG_PATHS (8)' + Report general path information for each file type Kpathsea is + asked to search. This is useful when you are trying to track down + how a particular path got defined--from `texmf.cnf', `config.ps', + an environment variable, the compile-time default, etc. This is + the contents of the `kpse_format_info_type' structure defined in + `tex-file.h'. + + `KPSE_DEBUG_EXPAND (16)' + Report the directory list corresponding to each path element + Kpathsea searches. This is only relevant when Kpathsea searches + the disk, since `ls-R' searches don't look through directory lists + in this way. + + `KPSE_DEBUG_SEARCH (32)' + Report on each file search: the name of the file searched for, the + path searched in, whether or not the file must exist (when drivers + search for `cmr10.vf', it need not exist), and whether or not we + are collecting all occurrences of the file in the path (as with, + e.g., `texmf.cnf' and `texfonts.map'), or just the first (as with + most lookups). This can help you correlate what Kpathsea is doing + with what is in your input file. + + `KPSE_DEBUG_VARS (64)' + Report the value of each variable Kpathsea looks up. This is + useful for verifying that variables do indeed obtain their correct + values. + + `GSFTOPK_DEBUG (128)' + Activates debugging printout specific to `gsftopk' program. + + `MAKETEX_DEBUG (512)' + If you use the optional `mktex' programs instead of the + traditional shell scripts, this will report the name of the site + file (`mktex.cnf' by default) which is read, directories created by + `mktexdir', the full path of the `ls-R' database built by + `mktexlsr', font map searches, `MT_FEATURES' in effect, parameters + from `mktexnam', filenames added by `mktexupd', and some + subsidiary commands run by the programs. + + `MAKETEX_FINE_DEBUG (1024)' + When the optional `mktex' programs are used, this will print + additional debugging info from functions internal to these + programs. + + Debugging output from Kpathsea is always written to standard error, + and begins with the string `kdebug:'. (Except for hash table buckets, + which just start with the number, but you can only get that output + running under a debugger. See comments at the `hash_summary_only' + variable in `kpathsea/db.c'.) + + Logging + ------- + + Kpathsea can record the time and filename found for each successful + search. This may be useful in finding good candidates for deletion when + your filesystem is full, or in discovering usage patterns at your site. + + To do this, define the environment or config file variable + `TEXMFLOG'. The value is the name of the file to append the + information to. The file is created if it doesn't exist, and appended + to if it does. + + Each successful search turns into one line in the log file: two words + separated by a space. The first word is the time of the search, as the + integer number of seconds since "the epoch", i.e., UTC midnight 1 + January 1970 (more precisely, the result of the `time' system call). + The second word is the filename. + + For example, after `setenv TEXMFLOG /tmp/log', running Dvips on + `story.dvi' appends the following lines: + + 774455887 /usr/local/share/texmf/dvips/config.ps + 774455887 /usr/local/share/texmf/dvips/psfonts.map + 774455888 /usr/local/share/texmf/dvips/texc.pro + 774455888 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmbx10.600pk + 774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmsl10.600pk + 774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmr10.600pk + 774455889 /usr/local/share/texmf/dvips/texc.pro + + Only filenames that are absolute are recorded, to preserve some + semblance of privacy. + + + John W. Eaton + jwe@octave.org + + Last updated: Wed, 31 Oct 2007 16:33:13 EDT diff -cNr octave-3.4.0/etc/README.Linux octave-3.4.1/etc/README.Linux *** octave-3.4.0/etc/README.Linux 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/README.Linux 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,10 ---- + There are binary packages for Debian, Fedora, and other GNU/Linux + distributions. + + Octave should build cleanly from source on most GNU/Linux systems. + + + John W. Eaton + jwe@octave.org + + Last updated: Wed, 31 Oct 2007 16:22:26 EDT diff -cNr octave-3.4.0/etc/README.MacOS octave-3.4.1/etc/README.MacOS *** octave-3.4.0/etc/README.MacOS 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/README.MacOS 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,406 ---- + 1. Easy to install Binary Releases + ================================== + + A MacOS bundle is available from sourceforge. + + http://octave.sourceforge.net/index.html + + There are also Octave packages available from both Fink and MacPorts. Each + of these package managers handle the details of compiling Octave from source. + + http://www.finkproject.com + http://www.macports.org/ + + + 2. Building from Source + ======================= + + Stable releases, development snapshots as well as the current developers + sources are available. The sources for stable releases are available from + the links below. + + ftp://ftp.gnu.org/pub/gnu/octave/ + http://ftp.gnu.org/pub/gnu/octave/ + + Development snapshots, intended for testing, are available from the link + below. + + ftp://alpha.gnu.org/gnu/octave + + Links to the stable releases, snap shots, and instructions for obtaining + the current development sources using mercurial can be found on Octave's + web-site below. + + http://www.gnu.org/software/octave/download.html + + Building on MacOS can vary significantly between versions. These + instructions document the procedure for MacOS 10.6.X. + + + 2.1 Developer's Tools + --------------------- + + Apple's Xcode Developer's Tools must be installed to build Octave on MacOS X. + + A fortran compiler is also required to build Octave. + + AT&T Research provides versions of gfortran which have been patched to work + with gcc tool set bundled with Xcode. + + http://r.research.att.com/tools/ + + Alternatively, the Fink and MacPorts package managers provide more recent + versions of gcc which include gfortan. Those may be used to build the sources + as well. However, care must be taken. + + * The same compiler must be used to build all all of Octave's sources. This + is necessary to avoid conflicts between the compiler libraries such as + libstdc++. For a successful build the first file in LDFLAGS must refer to + this library. For example, if building with gcc-4.5 obtained from MacPorts + LDFLAGS would begin as, + + export LDFLAGS="/opt/local/lib/gcc45/libstdc++.6.dylib [...]" + + * As of MacOS 10.6.6, the 64-bit BLAS routines that are part of Apple's vecLib + (framework accelerate) are not functioning correctly. As a work around, an + alternative BLAS/LAPACK library, such as ATLAS, must be used. A bug report + has been filed with Apple. + + http://bugreport.apple.com + Title: "64 bit ABI issue with libBLAS.dylib" + Problem ID: 7850167 + Date: April 11, 2010 at 12:04 AM + + + 2.2 Manual Package Management + ----------------------------- + + Instructions for building Octave are available on the web at the link below. + + http://wiki.octave.org/wiki.pl?BuildFromSource + + In addition, those wishing to build on MacOS X (10.6.x) should read section + 2.1 above. + + 2.2.1 Critical Dependencies + --------------------------- + + The minimal dependencies needed to build Octave's snap-shots are listed below. + + * Xcode + + * Xcode-compatible gfortran: Available from http://r.reseach.att.com/tools + + * gnu sed: Available from http://www.gnu.org/software/sed/ + + ./configure --prefix=/usr + make + sudo make install + + * gnu pcre: Available from ftp://ftp.gnu.org/ + The following build instructions will produce a universal binary, + allowing both 32- and 64-bit code to link to pcre. Whenever replacing + libraries which came with the OS, it is necessary to compile them as + universal binaries (even if you are only going to use one architecture) + to avoid disrupting unrelated code which might also link to the library. + + export CFLAGS="-arch i686 -arch x86_64" + export LDFLAGS="-arch i686 -arch x86_64" + ./configure --prefix=/usr --disable-dependency-tracking + make + sudo make install + + * flex: Available from http://flex.sourceforge.net/ + + ./configure --prefix=/usr + make + sudo make install + + * blas/lapack + + - The Apple/Intel-provided BLAS works out of the box in 32-bit as long as + the -ff2c flag is used. Alternatively, a wrapper for Apple's vecLib + framework may be used, enabling 64-bit. + + https://mailman.cae.wisc.edu/pipermail/octave-maintainers/2011-January/022541.html + + A fully functional Octave requires additional dependencies. Here is an example + of how to compile one of them as a universal binary: + + * fftw3: Available from http://www.fftw.org/download.html + + export F77="/usr/bin/gfortran" + export CFLAGS="-arch i686 -arch x86_64" + export FFLAGS="$CFLAGS" + export LDFLAGS="$CFLAGS" + ./configure --disable-dependency-tracking + make + sudo make install + make clean + ./configure --enable-float --disable-dependency-tracking + make + sudo make install + + See the link below for additional details about optional dependencies. + + http://wiki.octave.org/wiki.pl?BuildFromSource + + TODO - Modify the configure script to test for 64 bit vecLib bug. When the bug + is present, apply the wrapper solution. + + + 2.2.2 Building Octave as a 32-bit Application + -------------------------------------------- + + The commands below are sufficient to build a 32-bit Octave. + + export FC="/usr/bin/gfortran" + export CFLAGS="-m32" + export FFLAGS="$CFLAGS -ff2c" + export CPPFLAGS="$CFLAGS -D_REENTRANT -D__LISTS__" + export LDFLAGS="$CFLAGS" + ./configure --disable-readline --disable-docs + make + + Octave provides an integrated tests suite. + + make check + + Octave may be run without installing the application using the utility below. + + ./run-octave + + 2.2.3 Building Octave as a 64-bit Application + -------------------------------------------- + + The commands below are sufficient to build a 64-bit Octave. + + export FC="/usr/bin/gfortran" + export CFLAGS="-arch x86_64" + export FFLAGS="$CFLAGS" + export CPPFLAGS="$CFLAGS -D_REENTRANT -D__LISTS__" + export LDFLAGS="$CFLAGS" + ./configure --disable-readline --disable-docs + make + + Octave provides an integrated tests suite. + + make check + + Octave may be run without installing the application using the utility below. + + ./run-octave + + + 2.3 Building With Dependencies Satisfied by Fink + ------------------------------------------------ + + To install and setup the Fink package manager see the on line documentation. + + http://www.finkproject.org/ + + Currently, Fink does not have a package available for Octave versions above + 3.0.x. These instructions will allow the developers sources to be build and + run, but will not permit Octave to be installed in the usual Fink way. + + TODO - When a Fink package is developed for Octave 3.4.x, modify these + instructions to model the MacPorts section. + + + 2.3.1 Dependencies + ------------------ + + To build Octave's sources the list of Fink packages below need to be installed. + + aquaterm + arpack + autoconf (>= 2.6.0) + automake (>= 1.11) + fftw3 (>= 3.1.1) + fftw3-shlibs (>= 3.1.1) + flex >= 2.5.30 + fltk-aqua-shlibs + glpk-dev + glpk-shlibs + gnuplot (>= 4.2.6) + graphicsmagick (<= 1.3.7) + graphicsmagick-shlibs (<= 1.3.7) + hdf5 (>= 1.6.5) + hdf5-shlibs (>= 1.6.5) + libcurl4 + libcurl4-shlibs + libncurses5 + libncurses5-shlibs + libtool >= 2.2.2 + ncurses + pcre + pcre-shlibs + qhull + qrupdate [1] + readline5 + readline5-shlibs + sed + suitesparse (= 3.1.0-1 ) + + Some of Octave's dependencies are among the default packages for Fink. These + include the list below, and possibly others as well. + + tetex + texinfo + + For fully functional printing (graphics output), the following packages must + be installed. + + epstool + ghostscript + pstoedit + transfig [2] + + [1] Fink does not yet have a package for qrupdate. However, one is available + in the tracker at the link below. + + http://sourceforge.net/tracker/index.php?func=detail&aid=2861045&group_id=17203&atid=414256 + + [2] Optionally the "xfig" package may be installed. + + + 2.3.2 Building With Dependencies Satisfied by Fink + -------------------------------------------------- + + After installing each of the dependencies, the sources are compiled by + setting the proper environment variables and then following the standard build + sequence. The following is an example set of variables for a 32-bit build + using gcc-4.2. When building from the sources obtained from the mercurial + archive, ./autogen.sh must be run prior to ./configure. + + export FINK_PREFIX="/sw" + export PREFIX="/usr/local/bin" + + export OPTFLAGS="-O2 -g" + export LDFLAGS="-L$FINK_PREFIX/lib -L/usr/lib -m32" + export CFLAGS="-I$FINK_PREFIX/include $OPTFLAGS -m32" + export CXXFLAGS=$CFLAGS + export CPPFLAGS="$CXXFLAGS -D__LISTS__" + export ACLOCAL_FLAGS="-I$FINK_PREFIX/share/aclocal" + export PKG_CONFIG_PATH="$FINK_PREFIX/lib/pkgconfig" + export PATH="$FINK_PREFIX/var/lib/fink/path-prefix-10.6/:$PATH" + export MACOSX_DEPLOYMENT_TARGET=10.5 + export PATH="$FINK_PREFIX/lib/flex/bin:$PATH" + export CPPFLAGS="-I$FINK_PREFIX/lib/flex/include $CPPFLAGS" + export LDFLAGS="-L$FINK_PREFIX/lib/flex/lib $LDFLAGS" + export CC="gcc-4.2" + export CPP="cpp-4.2" + export CXX="g++-4.2" + export F77="/usr/bin/gfortran-4.2" + export FLIBS="-lgfortran -lgfortranbegin" + export FFLAGS="-ff2c $OPTFLAGS -m32" + export CPPFLAGS="$CPPFLAGS -I$FINK_PREFIX/include/freetype2 \ + -I$FINK_PREFIX/include/qhull \ + -I/usr/include" + export CXXFLAGS="$CXXFLAGS -D_THREAD_SAFE -D_REENTRANT" + + ./configure --prefix=$PREFIX \ + --libexecdir='${prefix}/lib' \ + --with-blas="-Wl,-framework -Wl,vecLib" + make + + Note: This approach to building Octave does not support "make install". + + TODO - Develop a Fink package for Octave 3.4.x. + + + 2.4 Building With Dependencies Satisfied by MacPorts + ---------------------------------------------------- + + To install and setup the MacPorts package manager see the online documentation + + http://guide.macports.org/ + + Using MacPorts, two approaches are described. The first describes how to build + and locally install Octave from a formal snapshot of the developer's sources or + from the developer's sources themselves. This is intended to the casual Octave + developer, or for users who want to live on the bleeding edge. + + The second describes an approach for building Octave which is intended for + active developers. In this case, MacPorts is used to satisfy Octave's + dependencies, but MacPorts does not build Octave. Further a direct install of + Octave is not possible (i.e., cannot "make install"). + + + 2.4.1 Building and Installing Octave + ------------------------------------ + + With MacPorts building the developer's sources is convenient. MacPorts + includes a port file for octave-devel. To build and run the most recent + development snapshots, enter the commands below. + + sudo port selfupdate + sudo port install octave-devel + + To build the developers sources in one's own way, or if MacPorts' version is + outdated, a custom port file can be added. This requires setting up a local + port file repository (link below). + + http://guide.macports.org/#development.local-repositories + + The octave-devel port file may be used as an initial starting point. The port + file is accessible from the web at the link below. + + http://trac.macports.org/browser/trunk/dports/math/octave-devel/Portfile + + It is also available locally at the location below. The parameter ${prefix} is + corresponds to where MacPorts is install, which by default is "/opt/local". + + ${prefix}/var/macports/sources/rsync.macports.org/release/ports/math/octave-devel/Portfile + + The local source tarball must be placed in the location below, where ${name} + and ${distname} are each specified in the port file. + + ${prefix}/var/macports/distfiles/${name}/${disname}.tar.gz + + + 2.4.2 Building for Active Development of Octave + ----------------------------------------------- + + To satisfy Octave's dependencies, first install the octave-devel port. + + sudo port selfupdate + sudo port install octave-devel + + Next run octave to determine the configure options needed to build Octave + using MacPorts. At Octave's prompt type the command below and make note of + the result, ${config_opts}. + + octave:1> octave_config_info.config_opts + + Now uninstall the Octave port. + + sudo port deactivate octave-devel + + This will remove Octave and leave its dependencies in place. Now Octave may + be built from the local mercurial archive by typing the commands below, where + the configure options mentioned above are substituted for the parameter + ${config_opts}. If the sources being built are from the mercurial archive, + then ./autogen.sh must be run prior to ./configure. + + ./configure ${config_opts} + make + + Octave's integrated tests may be run. + + make check + + However, "make install" should not be run as it may damage or corrupt the + MacPorts installation. To run Octave, type the command below from the root of + the mercurial archive. + + ./run-octave + + + John W. Eaton + jwe@octave.org + + Ben Abbott + bpabbott@mac.com + + Last updated: Sat Feb 19 14:15:04 PST 2011 diff -cNr octave-3.4.0/etc/README.MinGW octave-3.4.1/etc/README.MinGW *** octave-3.4.0/etc/README.MinGW 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/README.MinGW 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,108 ---- + 1. General Users + ================ + + A MInGW bundle is available from sourceforge. + + http://octave.sourceforge.net/index.html + + 2. Developers + ============= + + The process for building Octave from source is as follows. + + * Install development tools and compiler + * Install or compile dependencies of Octave + * Download Octave source + * Configure and compile source + + We strongly encourage experienced users to build Octave from the + testing and development snapshots to try the latest features of Octave. + + A good tutorial on building Octave for version 3.2 is available from + http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/admin/Windows/mingw32/HOWTO.txt + + Additional information beyond the tutorial is summarized below. + + 2.1 Development tools and compiler + ---------------------- + Msys + MinGW development Tools + + The Msys + MinGW development Tools are required to build Octave from source. + + The latest version of the Msys system is 1.0.16. For MinGW, search and use + the most recent version available. Note: The Howto.txt file describing + the development tools is rather old. + + The latest GCC (GNU Complier Collection) for MinGW is gcc-4.5.0. Earlier + versions are not recommended for building Octave 3.4.xx. + + The latest Msys, MinGW, and GCC tools can be downloaded from + http://sourceforge.net/projects/mingw/files/ + + (Compiling for 64-bit binaries requires mingw-64 toolkits. This has not been + tested.) + + 2.2 Dependencies + ---------------------- + + External program dependencies + + * gnuplot (you can build this with the shell script mentioned in Howto.txt) + * MikTeX + * ghostscript + * pstoedit (required for printing using FLTK (OpenGL) graphics) + * fig2dev (Optional; better quality for FLTK printing in some file formats) + * sed + * less + + The tools below are required for building the development sources from + the Mercurial archive, but not for simply building Octave from a snapshot + tar.gz file. + + * Mercurial + * git + * automake + * autoconf + + Library dependencies + + Please read Howto.txt carefully on how to build them. The Howto.txt is old + so some revisions will be required when using GCC-4.5.0 + + 2.3 Download Octave source + ---------------------- + + The source for testing snapshots can be downloaded from the official Octave + web site. http://www.gnu.org/software/octave/download.html + + The very latest development code is also available via anonymous access to a + read-only Mercurial archive. The method of download is described on the web + site. You will also need to install gnulib as another dependency. Please + visit http://www.gnu.org/software/gnulib/ and download sources using git. + + 2.4 Configure and compile source + ---------------------- + + Building from source can be carried out using the script described in + Howto.txt. + + When using GCC-4.5.0, remove flags for shared libstdc++ because a shared + build is already the default. + + When running './configure', you must add '--enable-float-truncate' option. + Please see the following thread for more information: + http://thread.gmane.org/gmane.comp.gnu.octave.bugs/12361/focus=12404 + + To build development sources from the Mercurial repository you must run + 'autogen.sh' (bootstrap) before running configure and make. This requires + that automake and autoconf tools be installed. + + + Tatsuro MATSUOKA + tmacchant@yahoo.co.jp + + Benjamin Lindner + bjmldn@gmail.com + + + Last updated: Sat Jan 22 17:29:12 PST 2011 diff -cNr octave-3.4.0/etc/README.Windows octave-3.4.1/etc/README.Windows *** octave-3.4.0/etc/README.Windows 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/etc/README.Windows 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,11 ---- + See the file README.Cygwin for information about installing the binary + package of Octave for Cygwin. + + See the file README.MinGW for information about Octave on the MinGW platform + including installation of binaries or compiling Octave from source. + + + John W. Eaton + jwe@octave.org + + Last updated: Sat Jan 22 16:56:05 PST 2011 diff -cNr octave-3.4.0/examples/COPYING octave-3.4.1/examples/COPYING *** octave-3.4.0/examples/COPYING 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/examples/COPYING 2011-06-15 11:11:27.000000000 -0400 *************** *** 1,3 **** ! Copyright notices are intentionlly omitted from the files in the examples directory. We don't want copyright notices cluttering the manual. --- 1,3 ---- ! Copyright notices are intentionally omitted from the files in the examples directory. We don't want copyright notices cluttering the manual. diff -cNr octave-3.4.0/examples/Makefile.am octave-3.4.1/examples/Makefile.am *** octave-3.4.0/examples/Makefile.am 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/examples/Makefile.am 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/common.mk EXTRA_DIST = --- 18,24 ---- # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/build-aux/common.mk EXTRA_DIST = diff -cNr octave-3.4.0/examples/Makefile.in octave-3.4.1/examples/Makefile.in *** octave-3.4.0/examples/Makefile.in 2011-02-08 05:03:35.000000000 -0500 --- octave-3.4.1/examples/Makefile.in 2011-06-15 11:31:26.000000000 -0400 *************** *** 54,64 **** host_triplet = @host@ DIST_COMMON = $(srcdir)/@FIRfilter/module.mk \ $(srcdir)/@polynomial/module.mk $(srcdir)/Makefile.am \ ! $(srcdir)/Makefile.in $(top_srcdir)/common.mk COPYING subdir = examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ --- 54,68 ---- host_triplet = @host@ DIST_COMMON = $(srcdir)/@FIRfilter/module.mk \ $(srcdir)/@polynomial/module.mk $(srcdir)/Makefile.am \ ! $(srcdir)/Makefile.in $(top_srcdir)/build-aux/common.mk \ ! COPYING subdir = examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/ax_pthread.m4 \ ! $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ *************** *** 66,81 **** $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ --- 70,89 ---- $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filemode.m4 \ ! $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpurge.m4 \ ! $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/fseek.m4 \ ! $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftell.m4 \ ! $(top_srcdir)/m4/ftello.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ *************** *** 89,114 **** $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ ! $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ! $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ! $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ ! $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ ! $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ ! $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \ ! $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memchr.m4 \ ! $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ ! $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkfifo.m4 \ ! $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \ ! $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ ! $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nanosleep.m4 \ ! $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ ! $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/printf.m4 \ ! $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ ! $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \ ! $(top_srcdir)/m4/round.m4 $(top_srcdir)/m4/roundf.m4 \ ! $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/select.m4 \ ! $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ --- 97,124 ---- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ ! $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ ! $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ! $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ ! $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/math_h.m4 \ ! $(top_srcdir)/m4/mathfunc.m4 $(top_srcdir)/m4/mbrtowc.m4 \ ! $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ ! $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/md5.m4 \ ! $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \ ! $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \ ! $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkstemp.m4 \ ! $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ ! $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/multiarch.m4 \ ! $(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/nocrash.m4 \ ! $(top_srcdir)/m4/nproc.m4 $(top_srcdir)/m4/open.m4 \ ! $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ ! $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/readlink.m4 \ ! $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ ! $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/round.m4 \ ! $(top_srcdir)/m4/roundf.m4 $(top_srcdir)/m4/save-cwd.m4 \ ! $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/sigaction.m4 \ ! $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ *************** *** 116,144 **** $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \ ! $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ ! $(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \ ! $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/tempname.m4 \ ! $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ ! $(top_srcdir)/m4/times.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ ! $(top_srcdir)/m4/trunc.m4 $(top_srcdir)/m4/truncf.m4 \ ! $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ ! $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/vasnprintf.m4 \ ! $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ ! $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ ! $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ ! $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/acinclude.m4 \ ! $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = --- 126,151 ---- $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strdup.m4 \ ! $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.m4 \ ! $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ ! $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \ ! $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/times.m4 \ ! $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/trunc.m4 \ ! $(top_srcdir)/m4/truncf.m4 $(top_srcdir)/m4/unistd-safer.m4 \ ! $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ ! $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vsnprintf.m4 \ ! $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ ! $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ ! $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = *************** *** 157,163 **** AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ - ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ --- 164,169 ---- *************** *** 309,314 **** --- 315,322 ---- GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ + GNULIB_FGETC = @GNULIB_FGETC@ + GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ *************** *** 318,326 **** --- 326,336 ---- GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ + GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPL = @GNULIB_FREXPL@ + GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ *************** *** 330,335 **** --- 340,347 ---- GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ + GNULIB_GETC = @GNULIB_GETC@ + GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ *************** *** 342,359 **** --- 354,375 ---- GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ + GNULIB_GETS = @GNULIB_GETS@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ + GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ + GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ + GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ *************** *** 384,389 **** --- 400,406 ---- GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ + GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ *************** *** 400,405 **** --- 417,423 ---- GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ + GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ *************** *** 419,424 **** --- 437,443 ---- GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ + GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ *************** *** 434,439 **** --- 453,459 ---- GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ + GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ *************** *** 451,456 **** --- 471,477 ---- GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ + GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ *************** *** 480,490 **** --- 501,513 ---- GNULIB_TIMES = @GNULIB_TIMES@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ + GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ + GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ *************** *** 496,503 **** --- 519,528 ---- GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ + GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ + GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ *************** *** 527,532 **** --- 552,560 ---- GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ + GNULIB_WCTOMB = @GNULIB_WCTOMB@ + GNULIB_WCTRANS = @GNULIB_WCTRANS@ + GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ *************** *** 593,599 **** HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ - HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ --- 621,626 ---- *************** *** 634,639 **** --- 661,667 ---- HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ + HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ *************** *** 668,673 **** --- 696,702 ---- HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ + HAVE_PCRE_CONFIG = @HAVE_PCRE_CONFIG@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ *************** *** 686,691 **** --- 715,721 ---- HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGACTION = @HAVE_SIGACTION@ + HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ *************** *** 697,703 **** HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ - HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ --- 727,732 ---- *************** *** 725,730 **** --- 754,760 ---- HAVE_SYS_TIMES_H = @HAVE_SYS_TIMES_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ + HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMES = @HAVE_TIMES@ *************** *** 765,771 **** --- 795,803 ---- HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ + HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ + HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ *************** *** 809,814 **** --- 841,847 ---- LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ + LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ *************** *** 819,824 **** --- 852,858 ---- MAGICK_LDFLAGS = @MAGICK_LDFLAGS@ MAGICK_LIBS = @MAGICK_LIBS@ MAKEINFO = @MAKEINFO@ + MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKOCTFILE_DL_LDFLAGS = @MKOCTFILE_DL_LDFLAGS@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ *************** *** 832,844 **** NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ - NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ --- 866,878 ---- NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ + NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ *************** *** 854,866 **** NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ - NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ --- 888,900 ---- NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ + NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ *************** *** 973,978 **** --- 1007,1013 ---- REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ + REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ *************** *** 993,998 **** --- 1028,1034 ---- REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ + REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ *************** *** 1011,1019 **** --- 1047,1057 ---- REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ + REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ + REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ *************** *** 1047,1052 **** --- 1085,1091 ---- REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ + REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RLD_FLAG = @RLD_FLAG@ *************** *** 1054,1060 **** ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = /bin/sh SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ --- 1093,1099 ---- ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = @SHELL@ SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ *************** *** 1111,1117 **** WARN_CXXFLAGS = @WARN_CXXFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ - WITH_PCRE_CONFIG = @WITH_PCRE_CONFIG@ X11_INCFLAGS = @X11_INCFLAGS@ X11_LIBS = @X11_LIBS@ XMKMF = @XMKMF@ --- 1150,1155 ---- *************** *** 1129,1134 **** --- 1167,1173 ---- abs_top_srcdir = @abs_top_srcdir@ ac_config_files = @ac_config_files@ ac_config_headers = @ac_config_headers@ + ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ *************** *** 1242,1248 **** localverarchlibdir = @localverarchlibdir@ localverfcnfiledir = @localverfcnfiledir@ localveroctfiledir = @localveroctfiledir@ - lt_ECHO = @lt_ECHO@ man1dir = @man1dir@ man1ext = @man1ext@ --- 1281,1286 ---- *************** *** 1379,1385 **** all: all-am .SUFFIXES: ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.mk $(srcdir)/@polynomial/module.mk $(srcdir)/@FIRfilter/module.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ --- 1417,1423 ---- all: all-am .SUFFIXES: ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build-aux/common.mk $(srcdir)/@polynomial/module.mk $(srcdir)/@FIRfilter/module.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ *************** *** 1570,1576 **** define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ --- 1608,1614 ---- define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/build-aux/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ *************** *** 1794,1800 **** endef define do_script_install ! $(top_srcdir)/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ --- 1832,1838 ---- endef define do_script_install ! $(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ diff -cNr octave-3.4.0/gdbinit octave-3.4.1/gdbinit *** octave-3.4.0/gdbinit 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/gdbinit 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,48 **** - ## Helpful macros for debugging Octave. - - ## Display a dim-vector object. - - define display-dims - echo ndims: \ - output $arg0.rep[-1] - echo \ndims: \ - output *$arg0.rep@$arg0.rep[-1] - echo \n - dont-repeat - end - - ## Display a dense array object. - - define display-dense-array - echo array object: \ - output $arg0 - echo \ndimensions:\n - display-dims $arg0.dimensions - echo \nrep = \ - output *$arg0.rep - echo \nrep.data = \ - output *$arg0.rep.data@$arg0.rep.len - echo \n - dont-repeat - end - - ## Display a sparse array object. - - define display-sparse-array - echo sparse object: \ - output $arg0 - echo \ndimensions.rep[0] = \ - display-dims $arg0.dimensions - echo \ndimensions.rep[1] = \ - output $arg0.dimensions.rep[1] - echo \nrep = \ - output *$arg0.rep - echo \nrep.d = \ - output *$arg0.rep.d@$arg0.rep.nzmx - echo \nrep.r = \ - output *$arg0.rep.r@$arg0.rep.nzmx - echo \nrep.c = \ - output *$arg0.rep.c@($arg0.rep.ncols+1) - echo \n - dont-repeat - end --- 0 ---- diff -cNr octave-3.4.0/INSTALL.OCTAVE octave-3.4.1/INSTALL.OCTAVE *** octave-3.4.0/INSTALL.OCTAVE 2011-02-08 05:13:03.000000000 -0500 --- octave-3.4.1/INSTALL.OCTAVE 2011-06-15 11:41:22.000000000 -0400 *************** *** 200,206 **** function plotting program. Gnuplot is copyrighted, but freely distributable. As of Octave release 3.4, gnuplot is the default option for plotting. But, the internal graphics engine is nearly ! 100% compatibile, certainly for most ordinary plots, and users are encouraged to test it. It is anticipated that the internal engine will become the default option at the next major release of Octave. --- 200,206 ---- function plotting program. Gnuplot is copyrighted, but freely distributable. As of Octave release 3.4, gnuplot is the default option for plotting. But, the internal graphics engine is nearly ! 100% compatible, certainly for most ordinary plots, and users are encouraged to test it. It is anticipated that the internal engine will become the default option at the next major release of Octave. *************** *** 462,468 **** dependencies. If you discover that something does need to be done, please submit a bug report. ! - pcre or regex - zlib --- 462,468 ---- dependencies. If you discover that something does need to be done, please submit a bug report. ! - pcre - zlib diff -cNr octave-3.4.0/libcruft/ChangeLog octave-3.4.1/libcruft/ChangeLog *** octave-3.4.0/libcruft/ChangeLog 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/libcruft/ChangeLog 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,1903 **** - 2011-01-31 Rik - - * arpack/src/dseupd.f, arpack/src/sseupd.f: Change GOTO target - to eliminate warning about landing on end if. - - 2011-01-31 John W. Eaton - - * arpack/module.mk (EXTRA_DIST): Include arpack/module.mk in the - list. Remove arpack/src/module.mk and arpacck/util/module.mk - from the list. - - 2011-01-31 John W. Eaton - - * arpack/LICENSE: Update to current version from - http://www.caam.rice.edu/software/ARPACK. - * arpack/ARPACK-license-question.email: Delete as it no longer - applies to the current license terms. - * arpack/RiceBSD.txt: Delete. - * arpack/module.mk: Update for license changes. - Add arpack/ prefix to doc files in list. - - 2011-01-28 David Bateman - - * arpack/src/cneupd.f (cneupd): Restore value of nconv if ctrsen - returns a smaller value. - * arpack/src/dneupd.f (dneupd): Likewise, for dtrsen. - * arpack/src/sneupd.f (sneupd): Likewise, for strsen. - * arpack/src/zneupd.f (zneupd): Likewise, for ztrsen. - - 2011-01-28 John W. Eaton - - * arpack/util/second.f (ARSCND): Declare ETIME INTRINSIC, not EXTERNAL. - - 2011-01-28 John W. Eaton - - * arpack: New directory. - * Makefile.am: Include arpack/module.mk. - - 2011-01-26 John W. Eaton - - * mkf77def.in: Strip trailing whitespace. - - 2011-01-20 John W. Eaton - - * misc/cquit.c, misc/f77-fcn.h, misc/quit.cc: Strip trailing - whitespace. - - 2011-01-14 John W. Eaton - - * Update copyright notices for 2011. - - 2010-09-07 Jaroslav Hajek - - * blas-xtra/cconv2.f, blas-xtra/csconv2.f, blas-xtra/dconv2.f, - blas-xtra/sconv2.f, blas-xtra/zconv2.f, blas-xtra/zdconv2.f: - Fix inner convolution formula. - - 2010-07-27 Jaroslav Hajek - - * lapack-xtra/zrsf2csf.f, lapack-xtra/crsf2csf.f: New sources. - * lapack-xtra/module.mk: Add them. - - 2010-05-04 John W. Eaton - - * villad/dfopr.f, villad/dif.f, villad/intrp.f, villad/jcobi.f, - villad/radau.f, villad/vilerr.f, villad/module.mk: Delete. - * Makefile.am: Don't include villad/module.mk. - - 2010-04-11 Jaroslav Hajek - - * blas-xtra/cmatm3.f, blas-xtra/zmatm3.f, - blas-xtra/dmatm3.f, blas-xtra/xsdot.f: Fix typos. Add missing - decls. - - 2010-03-21 John W. Eaton - - * Makefile.am (libcruft_la_LIBADD): Include ../libgnu/libgnu.la - in the list. From Marco Atzeri . - - 2010-03-15 John W. Eaton - - * Makefile.am (libcruft_la_CPPFLAGS): Append $(AM_CPPFLAGS). - - 2010-03-03 Jaroslav Hajek - - * blas-xtra/cconv2.f, blas-xtra/csconv2.f, blas-xtra/dconv2.f, - blas-xtra/sconv2.f, blas-xtra/zconv2.f, blas-xtra/zdconv2.f: - New sources. - * blas-xtra/module.mk: Add them here. - - 2010-03-02 John W. Eaton - - * misc/cquit.c (octave_restore_signal_mask): Assume we have - POSIX signal handling. - - 2010-02-28 Jaroslav Hajek - - * misc/lo-error.c (liboctave_fatal_with_id, - set_liboctave_error_with_id_handler): New functions. - (current_liboctave_error_with_id_handler): New variable. - * misc/lo-error.h: Declare them. - (liboctave_error_with_id_handler): New typedef. - - 2010-02-21 Michael Goffioul - - * misc/quit.h: Define WIN32_LEAN_AND_MEAN and don't #undef min/max. - - * Makefile.am: Add -bindir option to libcruft_la_LDFLAGS. - - 2010-02-17 John W. Eaton - - * Makefile.am (libcruft_la_LIBADD): Include libranlib.la in the list. - (noinst_LTLIBRARIES, libranlib_la_SOURCES, libranlib_la_DEPENDENCIES, - libcruft_la_FFLAGS): New variables. - (ranlib.def): New target. - (DISTCLEANFILES): Also remove ranlib.def. - * ranlib/module.mk (libranlib_la_SOURCES): Rename from - libcruft_la_SOURCES. - - 2010-01-20 John W. Eaton - - * misc/quit.cc: Untabify. - - 2010-01-20 John W. Eaton - - * Makefile.am (EXTRA_DIST): Remove STOP.patch from the list. - - 2010-01-20 Jaroslav Hajek - - * misc/quit.h: Define inline-function variant of OCTAVE_QUIT in C++ - mode. - - 2009-01-13 Rik - - * STOP.patch: Remove unmaintained patch for Fortran code - - 2009-01-13 Rik - - * ranlib/advnst.f ranlib/genbet.f ranlib/genchi.f ranlib/genexp.f - ranlib/genf.f ranlib/gengam.f ranlib/genmul.f ranlib/gennch.f - ranlib/gennf.f ranlib/gennor.f ranlib/genunf.f ranlib/getcgn.f - ranlib/getsd.f ranlib/ignbin.f ranlib/ignnbn.f ranlib/ignpoi.f - ranlib/ignuin.f ranlib/initgn.f ranlib/mltmod.f ranlib/setant.f - ranlib/setgmn.f ranlib/setsd.f: call XSTOPX instead of STOP so Octave's - error handler can intercept errors in Fortran code - - 2010-01-07 Jaroslav Hajek - - * misc/quit.cc (octave_rethrow_exception): Set octave_interrupt_state - to -1 when throwing octave_interrupt_exception. - - 2010-01-05 John W. Eaton - - * Makefile.am (AM_CPPFLAGS): New variable. - - 2009-12-31 Rik - - * Makefile.am: Reverse using simple_move_if_change_rule for cruft.def - which interferes with make timestamp algorithm. - - 2009-12-19 Rik - - * Makefile.am: Eliminate TOPDIR variable in favor of built-in automake - variables of top_builddir and top_srcdir. - - 2009-12-13 Rik - - * Makefile.am: Use simple_move_if_change_rule for cruft.def to eliminate - unnecessary compilations. - - 2009-12-07 John W. Eaton - - * misc/f77-fcn.h, misc/lo-error.h, misc/quit.h, - misc/f77-extern.cc, misc/quit.cc, misc/cquit.c, misc/f77-fcn.c, - misc/lo-error.c: Remove Emacs local variable list. - - 2009-12-07 John W. Eaton - - * misc/cquit.c, misc/f77-fcn.h, misc/quit.h: Untabify. - - 2009-12-03 John W. Eaton - - * Makefile.am (DISTCLEANFILES): New variable. - - 2009-11-26 Jaroslav Hajek - - * blas-xtra/sdot3.f: Use nested cache-aligned loop for general case. - * blas-xtra/ddot3.f: Ditto. - * blas-xtra/cdotc3.f: Ditto. - * blas-xtra/zdotc3.f: Ditto. - - 2009-11-26 Jaroslav Hajek - - * blas-xtra/sdot3.f: New source. - * blas-xtra/ddot3.f: New source. - * blas-xtra/cdotc3.f: New source. - * blas-xtra/zdotc3.f: New source. - * blas-xtra/smatm3.f: New source. - * blas-xtra/dmatm3.f: New source. - * blas-xtra/cmatm3.f: New source. - * blas-xtra/zmatm3.f: New source. - * blas-xtra/module.mk: Include them. - - 2009-11-17 John W. Eaton - - * mkf77def.in: Only process files with names that match *.f. - - 2009-11-13 John W. Eaton - - * Makefile.am: Restore rules for building cruft.def. - (libcruft_la_LDFLAGS): Also append @XTRA_CRUFT_SH_LDFLAGS@. - (libcruft_la_DEPENDENCIES): New variable. - * mkf77def.in: Use @VAR@ instead of %VAR% substitutions. - Process srcdir plus list of files instead of working as a filter. - - 2009-11-13 John W. Eaton - - * Makefile.am (libcruft_la_CPPFLAGS): Define. - - 2009-11-10 John W. Eaton - - * blas, lapack: Remove directories and all files. - * Makefile.am: Don't include blas/module.mk or lapack/module.mk. - - 2009-11-10 John W. Eaton - - * Makefile.am, amos/module.mk, blas-xtra/module.mk, - blas/module.mk, daspk/module.mk, dasrt/module.mk, dassl/module.mk, - fftpack/module.mk, lapack-xtra/module.mk, lapack/module.mk, - misc/module.mk, odepack/module.mk, ordered-qz/module.mk, - quadpack/module.mk, ranlib/module.mk, slatec-err/module.mk, - slatec-fn/module.mk, villad/module.mk: New files. - - * Makefile.in, Makerules.in, amos/Makefile.in, - blas-xtra/Makefile.in, blas/Makefile.in, daspk/Makefile.in, - dasrt/Makefile.in, dassl/Makefile.in, fftpack/Makefile.in, - lapack-xtra/Makefile.in, lapack/Makefile.in, misc/Makefile.in, - odepack/Makefile.in, ordered-qz/Makefile.in, quadpack/Makefile.in, - ranlib/Makefile.in, slatec-err/Makefile.in, slatec-fn/Makefile.in, - villad/Makefile.in: Delete. - - 2009-09-17 John W. Eaton - - * misc/oct-dlldefs.h: Delete. - * misc/Makefile.in (INCLUDES): Remove oct-dlldefs.h from the list. - - 2009-08-05 John W. Eaton - - * Makefile.in (LINK_DEPS): Omit $(FFTW_LIBS) from the list. - - 2009-06-22 John W. Eaton - - * Makefile.in (MISC_OBJ): Remove misc/machar.o and misc/smachar.o - from the list. - - * misc/i1mach.f, misc/r1mach.f, misc/d1mach.f: Rewite in terms of - LAPACK functions slamch and dlamch. - * misc/machar.c: Delete. - * misc/Makefile.in (CSRC): Remove machar.c from the list. - (CEXTRA, XCC, XALL_CFLAGS): Delete variables. - (machar.o, smachar.o, pic/machar.o, pic/smachar.o): Delete rules. - - 2009-05-07 Marco Atzeri - - * Makefile.in: (SHLPRE): Rename from SHLLIBPRE. - - 2009-03-07 John W. Eaton - - * misc/quit.h (octave_rethrow_exception): - Don't tag with GCC_ATTR_NORETURN. - - 2009-02-25 John W. Eaton - - * Makefile.in (maintainer-clean): Also remove libraries. - - * Makerules.in: Make maintainer-clean and distclean the same. - - 2009-02-23 Jaroslav Hajek - - * misc/quit.h (octave_signal_caught): Declare as volatile. - * misc/cquit.cc (octave_signal_caught): Likewise. - - 2009-02-06 Jaroslav Hajek - - * blas/ssymm.f, blas/dsymm.f, blas/chemm.f, blas/zhemm.f: New sources. - * blas/Makefile.in: Include them. - - 2009-01-28 John W. Eaton - - * Makefile.in (LIBRARIES, install, uninstall): use SHLLIBPRE and - SHLBINPRE library prefixes. - From Marco Atzeri . - - 2008-12-21 Jaroslav Hajek - - * lapack/chegs2.f lapack/chegst.f lapack/chegv.f lapack/dsygs2.f - lapack/dsygst.f lapack/dsygv.f lapack/ssygs2.f lapack/ssygst.f - lapack/ssygv.f lapack/zhegs2.f lapack/zhegst.f lapack/zhegv.f: - New sources. - * lapack/Makefile.in: Include them. - - 2008-12-15 Jaroslav Hajek - - * blas/zsyrk.f: New source. - * lapack/cggbak.f, lapack/cggev.f, lapack/cgghrd.f, lapack/chgeqz.f, - lapack/ctgevc.f, lapack/dggev.f, lapack/sggev.f, lapack/zggbak.f, - lapack/zggev.f, lapack/zgghrd.f, lapack/zhgeqz.f, lapack/ztgevc.f: - New sources. - * lapack/Makefile.in: Include them. - - 2008-08-12 Thomas Treichl - - * blas/icamax.f, blas/isamax.f: New files. - * blas/Makefile.in (FSRC): Add them to the list. - - * lapack/icmax1.f: New file. - * lapack/Makefile.in (FSRC): Add it to the list. - - 2008-06-16 David Bateman - - * slatec-fn/xacosh.f, slatec-fn/xasinh.f: Replace xsacosh with - xacosh, xdacosh with xacosh and xdasinh with xasinh. - - 2008-06-12 Jaroslav Hajek - - * misc/Makefile.in (MAKEDEPS): Remove CEXTRA. - - 2008-06-04 Michael Goffioul - - * misc/oct-dlldefs.h (OCTGRAPHICS_API): New macro for import/export - in graphics related libraries. - - 2008-06-02 David Bateman - - * slatec/xsgmainc.f: Replace DLGAMS with ALGAMS. - - 2008-05-30 Thomas Treichl - - * quadpack/qk15i.f: Delete extraneous semicolons. - - 2008-05-21 David Bateman - - * odepack/slsode.f, odepack/sintdy.f: Replace the use of xerrwv - with xerrwd and rumach with d1mach(4). - - * odepack/scfode.f, odepack/sewset.f, odepack/sintdy.f, - odepack/slsode.f, odepack/sprepj.f, odepack/ssolsy.f, - odepack/sstode.f, odepack/svnorm.f: New files. - * odepack/Makefile.in (FSRC): Add them. - - * ordered-qz/sexchqz.f, ordered-qz/ssubsp.f: New files. - * ordered-qz/Makefile.in (FSRC): Add them. - * quadpack/qagi.f, quadpack/qagie.f, quadpack/qagp.f, - quadpack/qagpe.f, quadpack/qelg.f, quadpack/qk15i.f, - quadpack/qk21.f, quadpack/qpsrt.f: New files. - * quadpack/Makefile.in (FSRC): Add them. - - 2008-05-20 Jaroslav Hajek - - * qrupdate/cch1dn.f, qrupdate/cchinx.f, qrupdate/cqhqr.f, - qrupdate/cqrinc.f, qrupdate/cqrinr.f, qrupdate/cqrqhu.f, - qrupdate/cqrqhv.f, qrupdate/sch1dn.f, qrupdate/schinx.f, - qrupdate/sqhqr.f, qrupdate/sqrinc.f, qrupdate/sqrinr.f, - qrupdate/sqrqhu.f: Convert DOUBLE PRECISION constants to REAL. - * qrupdate/cqrinr.f, qrupdate/sqrinr.f: Correct EXTERNAL - declarations. - * qrupdate/sqrinr.f: Convert DOUBLE PRECISION calls to - REAL counterparts. - - 2008-05-20 David Bateman - - * Makefile.in (MISC_OBJ): Add misc/smachar.o - * Makerules.in (CRUFT_CSRC, CRUFT_CPICOBJ): Add CEXTRA, allowing - objects files with no corresponding source file in the - distribution. - - * amos/cacai.f, amos/cacon.f, amos/cbesh.f, amos/cbesi.f, - amos/cbesj.f, amos/cbesk.f, amos/cbesy.f, amos/cbinu.f, - amos/cbuni.f, amos/cbunk.f, amos/cunk1.f amos/cunk2.f, - amos/crati.f, amos/cshch.f, amos/cuni1.f, amos/cuoik.f, - amos/cairy.f, amos/cbiry.f, amos/ckscl.f, amos/cs1s2.f, - amos/cuchk.f, amos/cuni2.f, amos/cwrsk.f, amos/casyi.f, - amos/cbknu.f, amos/cmlri.f, amos/cseri.f, amos/cunhj.f, - amos/cunik.f: New files. - * amos/Makefile.in (FSRC): Add them. - - * blas-xtra/xsdot.f, blas-xtra/xsnrm2.f, blas-xtra/xscnrm2.f, - blas-xtra/xcdotc.f, blas-xtra/xcdotu.f: New files - * blas-xtra/Makefile.in (FSRC): Add them. - - * blas/sasum.f, blas/saxpy.f, blas/scabs1.f, blas/scopy.f, - blas/sger.f, blas/smach.f, blas/snrm2.f, blas/srot.f, - blas/sswap.f, blas/ssymv.f, blas/ssyr.f, blas/ssyr2.f, - blas/ssyr2k.f, blas/stbsv.f, blas/strmm.f, blas/strmv.f, - blas/strsv.f, blas/scasum.f, blas/scnrm2.f, blas/caxpy.f, - blas/ccopy.f, blas/cdotc.f, blas/cdotu.f, blas/, blas/csrot.f, - blas/csscal.f, blas/cgemm.f, blas/cgemv.f, blas/cgerc.f, - blas/cgeru.f, blas/chemv.f, blas/cher.f, blas/cher2.f, - blas/cher2k.f, blas/cherk.f, blas/cscal.f, blas/cswap.f, - blas/ctbsv.f, blas/ctrmm.f, blas/ctrmv.f, blas/, blas/ctrsm.f, - blas/ctrsv.f: New files - * blas/Makefile.in (FSRC): Add them. - - * fftpack/zfftb.f, zfftb1.f, fftpack/zfftf.f, fftpack/zfftf1.f, - fftpack/zffti.f, fftpack/zffti1.f, fftpack/zpassb.f, - fftpack/zpassb2.f, fftpack/zpassb3.f, fftpack/zpassb4.f, - fftpack/zpassb5.f, fftpack/zpassf.f, fftpack/zpassf2.f, - fftpack/zpassf3.f, fftpack/zpassf4.f, fftpack/zpassf5.f: Rename - function (c -> z | add z). - * fftpack/cfftb.f, cfftb1.f, fftpack/cfftf.f, fftpack/cfftf1.f, - fftpack/cffti.f, fftpack/cffti1.f, fftpack/passb.f, - fftpack/passb2.f, fftpack/passb3.f, fftpack/passb4.f, - fftpack/passb5.f, fftpack/passf.f, fftpack/passf2.f, - fftpack/passf3.f, fftpack/passf4.f, fftpack/passf5.f: New files - for single precision. - * fftpack/Makefile.in (FSRC): Add new files. - - * lapack-xtra/xclange.f, lapack-xtra/xslamch.f, - lapack-xtra/xslange.f: New files. - * lapack-xtra/Makefile.in (FSRC): Add them. - - * lapack/cbdsqr.f, lapack/csrscl.f, lapack/cgbcon.f, - lapack/cgbtf2.f, lapack/cgbtrf.f, lapack/cgbtrs.f, - lapack/cgebak.f, lapack/cgebal.f, lapack/cgebd2.f, - lapack/cgebrd.f, lapack/cgecon.f, lapack/cgeesx.f, lapack/cgeev.f, - lapack/cgehd2.f, lapack/cgehrd.f, lapack/cgelq2.f, - lapack/cgelqf.f, lapack/cgelsd.f, lapack/cgelss.f, - lapack/cgelsy.f, lapack/cgeqp3.f, lapack/cgeqpf.f, - lapack/cgeqr2.f, lapack/cgeqrf.f, lapack/cgesv.f, lapack/cgesvd.f, - lapack/cgetf2.f, lapack/cgetrf.f, lapack/cgetri.f, - lapack/cgetrs.f, lapack/cggbal.f, lapack/cgtsv.f, lapack/cgttrf.f, - lapack/cgttrs.f, lapack/cgtts2.f, lapack/cheev.f, lapack/chetd2.f, - lapack/chetrd.f, lapack/chseqr.f, lapack/clabrd.f, - lapack/clacgv.f, lapack/clacn2.f, lapack/clacon.f, - lapack/clacpy.f, lapack/cladiv.f, lapack/clahqr.f, - lapack/clahr2.f, lapack/clahrd.f, lapack/claic1.f, - lapack/clals0.f, lapack/clalsa.f, lapack/clalsd.f, - lapack/clange.f, lapack/clanhe.f, lapack/clanhs.f, - lapack/clantr.f, lapack/claqp2.f, lapack/claqps.f, - lapack/claqr0.f, lapack/claqr1.f, lapack/claqr2.f, - lapack/claqr3.f, lapack/claqr4.f, lapack/claqr5.f, lapack/clarf.f, - lapack/clarfb.f, lapack/clarfg.f, lapack/clarft.f, - lapack/clarfx.f, lapack/clartg.f, lapack/clarz.f, lapack/clarzb.f, - lapack/clarzt.f, lapack/clascl.f, lapack/claset.f, lapack/clasr.f, - lapack/classq.f, lapack/claswp.f, lapack/clatbs.f, - lapack/clatrd.f, lapack/clatrs.f, lapack/clatrz.f, - lapack/clauu2.f, lapack/clauum.f, lapack/cpbcon.f, - lapack/cpbtf2.f, lapack/cpbtrf.f, lapack/cpbtrs.f, - lapack/cpocon.f, lapack/cpotf2.f, lapack/cpotrf.f, - lapack/cpotri.f, lapack/cpotrs.f, lapack/cptsv.f, lapack/cpttrf.f, - lapack/cpttrs.f, lapack/cptts2.f, lapack/crot.f, lapack/csteqr.f, - lapack/ctrcon.f, lapack/ctrevc.f, lapack/ctrexc.f, - lapack/ctrsen.f, lapack/ctrsyl.f, lapack/ctrti2.f, - lapack/ctrtri.f, lapack/ctrtrs.f, lapack/ctzrzf.f, - lapack/cung2l.f, lapack/cung2r.f, lapack/cungbr.f, - lapack/cunghr.f, lapack/cungl2.f, lapack/cunglq.f, - lapack/cungql.f, lapack/cungqr.f, lapack/cungtr.f, - lapack/cunm2r.f, lapack/cunmbr.f, lapack/cunml2.f, - lapack/cunmlq.f, lapack/cunmqr.f, lapack/cunmr3.f, - lapack/cunmrz.f, lapack/sbdsqr.f, lapack/sgbcon.f, - lapack/sgbtf2.f, lapack/sgbtrf.f, lapack/sgbtrs.f, - lapack/sgebak.f, lapack/sgebal.f, lapack/sgebd2.f, - lapack/sgebrd.f, lapack/sgecon.f, lapack/sgeesx.f, lapack/sgeev.f, - lapack/sgehd2.f, lapack/sgehrd.f, lapack/sgelq2.f, - lapack/sgelqf.f, lapack/sgelsd.f, lapack/sgelss.f, - lapack/sgelsy.f, lapack/sgeqp3.f, lapack/sgeqpf.f, - lapack/sgeqr2.f, lapack/sgeqrf.f, lapack/sgesv.f, lapack/sgesvd.f, - lapack/sgetf2.f, lapack/sgetrf.f, lapack/sgetri.f, - lapack/sgetrs.f, lapack/sggbak.f, lapack/sggbal.f, - lapack/sgghrd.f, lapack/sgtsv.f, lapack/sgttrf.f, lapack/sgttrs.f, - lapack/sgtts2.f, lapack/shgeqz.f, lapack/shseqr.f, - lapack/slabad.f, lapack/slabrd.f, lapack/slacn2.f, - lapack/slacon.f, lapack/slacpy.f, lapack/sladiv.f, lapack/slae2.f, - lapack/slaed6.f, lapack/slaev2.f, lapack/slaexc.f, lapack/slag2.f, - lapack/slahqr.f, lapack/slahr2.f, lapack/slahrd.f, - lapack/slaic1.f, lapack/slaln2.f, lapack/slals0.f, - lapack/slalsa.f, lapack/slalsd.f, lapack/slamc1.f, - lapack/slamc2.f, lapack/slamc3.f, lapack/slamc4.f, - lapack/slamc5.f, lapack/slamch.f, lapack/slamrg.f, - lapack/slange.f, lapack/slanhs.f, lapack/slanst.f, - lapack/slansy.f, lapack/slantr.f, lapack/slanv2.f, - lapack/slapy2.f, lapack/slapy3.f, lapack/slaqp2.f, - lapack/slaqps.f, lapack/slaqr0.f, lapack/slaqr1.f, - lapack/slaqr2.f, lapack/slaqr3.f, lapack/slaqr4.f, - lapack/slaqr5.f, lapack/slarf.f, lapack/slarfb.f, lapack/slarfg.f, - lapack/slarft.f, lapack/slarfx.f, lapack/slartg.f, lapack/slarz.f, - lapack/slarzb.f, lapack/slarzt.f, lapack/slas2.f, lapack/slascl.f, - lapack/slasd0.f, lapack/slasd1.f, lapack/slasd2.f, - lapack/slasd3.f, lapack/slasd4.f, lapack/slasd5.f, - lapack/slasd6.f, lapack/slasd7.f, lapack/slasd8.f, - lapack/slasda.f, lapack/slasdq.f, lapack/slasdt.f, - lapack/slaset.f, lapack/slasq1.f, lapack/slasq2.f, - lapack/slasq3.f, lapack/slasq4.f, lapack/slasq5.f, - lapack/slasq6.f, lapack/slasr.f, lapack/slasrt.f, lapack/slassq.f, - lapack/slasv2.f, lapack/slaswp.f, lapack/slasy2.f, - lapack/slatbs.f, lapack/slatrd.f, lapack/slatrs.f, - lapack/slatrz.f, lapack/slauu2.f, lapack/slauum.f, - lapack/slazq3.f, lapack/slazq4.f, lapack/sorg2l.f, - lapack/sorg2r.f, lapack/sorgbr.f, lapack/sorghr.f, - lapack/sorgl2.f, lapack/sorglq.f, lapack/sorgql.f, - lapack/sorgqr.f, lapack/sorgtr.f, lapack/sorm2r.f, - lapack/sormbr.f, lapack/sorml2.f, lapack/sormlq.f, - lapack/sormqr.f, lapack/sormr3.f, lapack/sormrz.f, - lapack/spbcon.f, lapack/spbtf2.f, lapack/spbtrf.f, - lapack/spbtrs.f, lapack/spocon.f, lapack/spotri.f, - lapack/spotrs.f, lapack/sptsv.f, lapack/spttrf.f, lapack/spttrs.f, - lapack/sptts2.f, lapack/srscl.f, lapack/ssteqr.f, lapack/ssterf.f, - lapack/ssyev.f, lapack/ssytd2.f, lapack/ssytrd.f, lapack/stgevc.f, - lapack/strcon.f, lapack/strevc.f, lapack/strexc.f, - lapack/strsen.f, lapack/strsyl.f, lapack/strti2.f, - lapack/strtri.f, lapack/strtrs.f, lapack/stzrzf.f, - lapack/scsum1.f: New files - * lapack/Makefile.in (FSRC): Add them. - - * misc/r1mach.f: New file - * misc/machar.cc: Modify to allow to be build twice, once for - double precision and once for single precision. - * misc/Makefile.in (FSRC): Add it. - (CEXTRA): Add smachar.c, and target for smachar.o - (MAKEDEPS): Include CEXTRA. - - * qrupdate/sch1up.f, qrupdate/cch1up.f, qrupdate/sqrinc.f, - qrupdate/cqrinc.f, qrupdate/sqrdec.f, qrupdate/cqrdec.f, - qrupdate/sqrinr.f, qrupdate/cqrinr.f, qrupdate/sqrder.f, - qrupdate/cqrder.f, qrupdate/sqrshc.f, qrupdate/cqrshc.f, - qrupdate/sqr1up.f, qrupdate/cqr1up.f, qrupdate/sch1dn.f, - qrupdate/cch1dn.f, qrupdate/schinx.f, qrupdate/cchinx.f, - qrupdate/schdex.f, qrupdate/cchdex.f, qrupdate/sqrqhu.f, - qrupdate/cqrqhu.f, qrupdate/sqrqhv.f, qrupdate/cqrqhv.f, - qrupdate/sqhqr.f, qrupdate/cqhqr.f: New files. - * qrupdate/Makefile.in (FSRC): Add them. - - * slatec-fn/acosh.f, slatec-fn/albeta.f, slatec-fn/algams.f, - slatec-fn/alngam.f, slatec-fn/alnrel.f, slatec-fn/asinh.f, - slatec-fn/atanh.f, slatec-fn/betai.f, slatec-fn/csevl.f, - slatec-fn/erf.f, slatec-fn/erfc.f, slatec-fn/gami.f, - slatec-fn/gamit.f, slatec-fn/gamlim.f, slatec-fn/gamma.f, - slatec-fn/gamr.f, slatec-fn/inits.f, slatec-fn/pchim.f, - slatec-fn/pchst.f, slatec-fn/r9gmit.f, slatec-fn/r9lgic.f, - slatec-fn/r9lgit.f, slatec-fn/r9lgmc.f, slatec-fn/xacosh.f, - slatec-fn/xasinh.f, slatec-fn/xatanh.f, slatec-fn/xbetai.f, - slatec-fn/xerf.f, slatec-fn/xerfc.f, slatec-fn/xgamma.f, - slatec-fn/xsgmainc.f: New files. - * slatec-fn/Makefile.in (FSRC): Add them. - - 2008-04-20 Jaroslav Hajek - - * qrupdate/dch1dn.f, qrupdate/dchdex.f, qrupdate/dchinx.f, - qrupdate/dqhqr.f, qrupdate/dqrdec.f, qrupdate/dqrinc.f, - qrupdate/dqrqhu.f, qrupdate/dqrqhv.f, qrupdate/dqrshc.f, - qrupdate/zch1dn.f, qrupdate/zchdex.f, qrupdate/zchinx.f, - qrupdate/zqhqr.f, qrupdate/zqrdec.f, qrupdate/zqrder.f, - qrupdate/zqrinc.f, qrupdate/zqrinr.f, qrupdate/zqrqhu.f, - qrupdate/zqrqhv.f, qrupdate/zqrshc.f: - Fix external declarations, XERBLA calls, and docs. - - 2008-04-07 Jaroslav Hajek - - * qrupdate/dqrqhu.f, qrupdate/zqrqhu.f, - * qrupdate/dqrshc.f, qrupdate/zqrshc.f, - * qrupdate/dchinx.f, qrupdate/zchinx.f, - * qrupdate/dchdex.f, qrupdate/zchdex.f: New files. - - 2008-04-02 Jaroslav Hajek - - * blas-xtra/xzdotu.f: Turn into simple wrapper for zdotu. - * blas-xtra/xzdotc.f: Turn into simple wrapper for zdotc. - * qrupdate/zqrqhv.f: Undo previous change. - - 2008-03-22 David Bateman - - * qrupdate/dch1up.f: Remove unused external reference to dlartv. - - 2008-03-18 John W. Eaton - - * qrupdate/zqrqhv.f (zqrqhv): Call xzdotc instead of zdotc. - * blas-xtra/xzdotu.f: Eliminate local zdotu variable. - * blas-xtra/xzdotc.f: New file. - * blas-xtra/Makefile.in (FSRC): Add it to the list. - - 2008-03-10 John W. Eaton - - * blas/zdrot.f, odepack/dlsode.f, odepack/ewset.f, - odepack/intdy.f, fftpack/cffti.f, fftpack/cfftb.f, - fftpack/cfftf.f: - Use (*) instead of (1) for assumed-size dimensions. - - 2008-03-06 Jaroslav Hajek - - * qrupdate/dqrinc.f: Declare DGEMV external. - * qrupdate/zqrinc.f: Declare ZGEMV external. - Fix complex constant args in call to ZGEMV. - - 2008-03-05 Jaroslav Hajek - - * qrupdate/dch1dn.f, qrupdate/zch1dn.f: add "quick return" checks. - - 2008-03-04 Jaroslav Hajek - - * qrupdate/dch1dn.f, qrupdate/dch1up.f, - qrupdate/zch1dn.f, qrupdate/zch1up.f: New files. - * qrupdate/Makefile.in (FSRC): Add them to the list. - - * qrupdate/Makefile.in, qrupdate/dqhqr.f, qrupdate/dqr1up.f, - qrupdate/dqrdec.f, qrupdate/dqrder.f, qrupdate/dqrinc.f, - qrupdate/dqrinr.f, qrupdate/dqrqhv.f, qrupdate/zqhqr.f, - qrupdate/zqr1up.f, qrupdate/zqrdec.f, qrupdate/zqrder.f, - qrupdate/zqrinc.f, qrupdate/zqrinr.f, qrupdate/zqrqhv.f: - New files. - * Makefile.in (CRUFT_DIRS): Add qrupdate to the list. - - 2008-02-14 John W. Eaton - - * misc/f77-fcn.h (F77_XFCN): Call octave_rethrow_exception here - instead of checking octave_allocation_error. - * misc/quit.cc (octave_execution_exception): New function. - (octave_rethrow_exception): New function. - (octave_handle_signal): Call octave_rethrow_exception instead of - octave_throw_interrupt_exception. - * misc/quit.h (octave_execution_error): New variable. - (END_INTERRUPT_WITH_EXCEPTIONS): Catch octave_execution_exception. - (octave_execution_exception): New class. - (octave_exception): New enum. - (octave_exception_state): Rename from octave_allocation_error. - Change all uses. - - 2008-02-12 John W. Eaton - - * lapack-xtra/xilaenv.f: New wrapper for Fortran function ilaenv. - * lapack-xtra/Makefile.in (FSRC): Add it to the list. - - 2008-02-06 John W. Eaton - - * Makerules.in (%.def : %.f): Use mv instead of move-if-change. - - 2008-02-05 John W. Eaton - - * misc/Makefile.in: Unconditionally include $(MAKEDEPS). - Mark $(MAKEDEPS) as .PHONY targets if omit_deps is true. - - 2007-12-21 John W. Eaton - - Version 3.0.0 released. - - 2007-11-01 John W. Eaton - - * lapack-xtra/xzlange.f: Include complete implementation of ZLANGE - function here. - - * blas-xtra/xzdotu.f: Include complete implementation of ZDOTU - function here. - - 2007-10-26 John W. Eaton - - * lapack/dlals0.f: New file. - * lapack/Makefile.in (FSRC): Add it to the list. - - 2007-10-26 David Bateman - - * lapack/dgelsd.f, lapack/dlalsd.f, lapack/dlalsa.f, - lapack/dlasda.f, lapack/dlasdt.f, lapack/dlasdq.f - lapack/dlamrg.f, lapack/dlasd0.f, lapack/dlasd1.f, - lapack/dlasd2.f, lapack/dlasd3.f, lapack/dlasd4.f, - lapack/dlasd5.f, lapack/dlasd6.f, lapack/dlasd7.f, - lapack/dlasd8.f, lapack/dlaed6.f, lapack/zgelsd.f, - lapack/zlalsd.f , lapack/zlalsa.f, lapack/zlals0.f: New files. - * lapack/Makefile.in (FSRC): Include them here. - - 2007-10-23 John W. Eaton - - * lapack/dgtts2.f, lapack/zgtts2.f: New files. - * lapack/Makefile.in (FSRC): Add them to the list. - - 2007-10-16 John W. Eaton - - * lapack/dlacn2.f, lapack/dlacn2.f, lapack/dlahr2.f, - lapack/dlahr2.f, lapack/dlaqr0.f, lapack/dlazq3.f, - lapack/dlazq3.f, lapack/dormr3.f, lapack/dormrz.f, - lapack/iparmq.f, lapack/iparmq.f, lapack/zlacn2.f, - lapack/zlahr2.f, lapack/zlaqr0.f: New files. - * lapack/Makefile.in (FSRC): Add them to the list. - - * lapack: Update all files to current versions from Lapack 3.1.1. - - 2007-10-12 John W. Eaton - - * Change copyright notices in all files that are part of Octave to - GPLv3 or any later version. - - 2007-10-03 John W. Eaton - - * mkf77def.in: Combine sed expressions. - - 2007-09-26 David Bateman - - * lapack/dgelsy.f, lapack/dlatrz.f, lapack/zlarz.f, - lapack/dgeqp3.f, lapack/dtzrzf.f, lapack/zlarzt.f, - lapack/dlaic1.f, lapack/zgelsy.f, lapack/zlatrz.f, - lapack/dlaqp2.f, lapack/zgeqp3.f, lapack/ztzrzf.f, - lapack/dlaqps.f, lapack/zlaic1.f, lapack/zunmr3.f, - lapack/dlarzb.f, lapack/zlaqp2.f, lapack/zunmrz.f, - lapack/dlarz.f, lapack/zlaqps.f, lapack/dlarzt.f, - lapack/zlarzb.f: New files - * lapack/Makefile.in (FSRC): Add the new files. - - 2007-07-25 David Bateman - - * Makefile.in, Makerules.in, fftpack/Makefile.in, - randlib/Makefile.in: Adjust DISTFILES to allow out of tree "make dist" - to work. - - 2007-04-23 John W. Eaton - - * ranlib/phrtsd.f (phrtsd): Store result of call to index - instrinsic in an INTEGER variable to ensure that the types of the - arguments passed to mod really are the same even on 64-bit systems. - - 2007-04-18 Michael Goffioul - - * blas-xtra/xdnrm2.f, blas-xtra/xdznrm2.f: - Delete spurious semicolons. - - 2007-04-06 John W. Eaton - - * blas-xtra/xdnrm2.f, blas-xtra/xdznrm2.f: New functions. - * blas-xtra/Makefile.in (FSRC): Add them to the list. - - * ranlib/phrtsd.f (phrtsd): Ensure that the types of the arguments - passed to mod are the same even on 64-bit systems. - - 2007-04-04 John W. Eaton - - * Makefules.in: Handle Fortran, C, and C++ sources with separate - variables. - * misc/Makefile.in: Use new variables for Fortran, C, and C++ files. - * Makefile.in (clean mostlyclean distclean): No need to remove - $(CRUFT_OBJ) here. - - 2007-04-04 Rafael Laboissiere - - * Makefile.in (clean): Remove mkf77def. - - 2007-03-27 John W. Eaton - - * Makerules.in, Makefile.in (dist): Use ln instead of $(LN_S). - - 2007-02-26 John W. Eaton - - * misc/Makefile.in (CPICDEP): Also set if CPICFLAG is not defined. - (CXXPICDEP): Also set if CXXPICFLAG is not defined. - - 2007-02-26 Michael Goffioul - - * Makefile.in, Makerules.in: Use $(LN_S) instead of ln or ln -s. - - 2007-02-07 John W. Eaton - - * Makerules.in: Don't use wildcard function to generate source - efile list. - * amos/Makefile.in, blas-xtra/Makefile.in, blas/Makefile.in, - daspk/Makefile.in, dasrt/Makefile.in, dassl/Makefile.in, - fftpack/Makefile.in, lapack-xtra/Makefile.in, lapack/Makefile.in, - minpack/Makefile.in, misc/Makefile.in, odepack/Makefile.in, - ordered-qz/Makefile.in, quadpack/Makefile.in, ranlib/Makefile.in, - slatec-err/Makefile.in, slatec-fn/Makefile.in, villad/Makefile.in: - Explicitly list source files. - - 2007-01-24 Alexander Barth - - * misc/f77-fcn.h (F77_CSTRING): Call OCTAVE_LOCAL_BUFFER with cs, - not F77_CHAR_ARG_USE (s). - - 2006-11-11 John W. Eaton - - * Makerules.in (%.def : %.f): Use $(simple-move-if-change-rule) here. - - 2006-11-03 John W. Eaton - - * Makefile.in (DLL_CXXDEFS): Rename from XTRA_CXXDEFS. - (DLL_CDEFS): Rename from XTRA_CDEFS. - Substitute CRUFT_DLL_DEFS, not XTRA_CRUFT_DEFS. - (XTRA_CRUFT_SH_LDFLAGS): Rename from XTRA_CRUFT_LINK_DEPS. - Add $(XTRA_CRUFT_SH_LDFLAGS) to SH_LDFLAGS instead of to LINK_DEPS. - - 2006-10-31 John W. Eaton - - * misc/Makefile.in (INCLUDES): Add oct-dlldefs.h to the list. - - 2006-10-29 John W. Eaton - - * misc/Makefile.in (SPECIAL_INCLUDE): Add oct-dlldefs.h to the list. - - 2006-10-28 Michael Goffioul - - * misc/quit.h: Undefine min and max after including windows.h. - - 2006-10-27 John W. Eaton - - * misc/oct-dlldefs.h: New file. - - * mkf77def.in: Downcase all input to simplify matching. - Match only lines beginning with whitespace. - Match function return types. - Use literal TAB characters instead of \t in sed patterns. - From Michael Goffioul . - - 2006-10-26 Michael Goffioul - - * Makefile.in (XTRA_CRUFT_LINK_DEPS): Substitute. - (CRUFT_DEFS): New variable. - (LINK_DEPS): Include $(XTRA_CRUFT_LINK_DEPS) in the list. - (clean, mostlyclean, distclean): Delete cruft.def. - (cruft.def): New target. - (libraries): Depend on cruft.def. - - * misc/f77-fcn.h (f77_exception_encountered, xstopx): - Tag with CRUFT_API. - * misc/lo-error.h (current_liboctave_error_handler, - current_liboctave_warning_handler, - current_liboctave_warning_with_id_handler, - set_liboctave_error_handler, set_liboctave_warning_handler, - set_liboctave_warning_with_id_handler): Likewise. - * misc/quit.h (w32_sigint_init, w32_raise_final, - w32_raise, w32_in_main_thread, current_context, - octave_save_current_context, octave_restore_current_context, - octave_jump_to_enclosing_context, octave_save_signal_mask, - octave_restore_signal_mask, octave_interrupt_immediately, - octave_interrupt_state, octave_allocation_error, - octave_signal_caught, octave_handle_signal, - octave_throw_interrupt_exception, octave_throw_bad_alloc, - octave_signal_hook, octave_interrupt_hook, octave_bad_alloc_hook): - Likewise. - - 2006-10-26 John W. Eaton - - * Makefile.in ($(CRUFT_DEFS)): Depend on $(SUBDIRS). - (cruft.def): Depend on $(CRUFT_DEFS). - (libraries): Depend on cruft.def only. - - * mk77def.in: New script template - * Makefile.in (DISTFILES): Include mk77def.in in the list. - ($(SUBDIRS)): Depend on mk77def. - (mk77def): New target. - (CRUFT_DEFS): New variable. - * Makerules.in (CRUFT_FSRC, CRUFT_CSRC, CRUFT_CXXSRC): New variables. - (CRUFT_SRC): Define using $(CRUFT_FSRC), $(CRUFT_CSRC), and - $(CRUFT_CXXSRC). - (CRUFT_DEFS): New variable. - ($(CRUFT_DEFS)): Depend on $(TOPDIR)/libcruft/mkf77def. - (%.def : %.f): New pattern rule. Use mkf77def script to do - Fortran name mangling. - (clean, mostlyclean, distclean): Delete $(CRUFT_DEFS). - (all): Depend on $(CRUFT_DEFS) - Partially from Michael Goffioul . - - 2006-10-25 John W. Eaton - - * Makerules.in (XTRA_CDEFS, XTRA_CXXDEFS): Substitute here. - - 2006-10-23 Paul Kienzle - - * misc/f77-fcn.h (F77_CHAR_ARG_DEF, F77_CONST_CHAR_ARG_DEF, - F77_CHAR_ARG_LEN_DEF, F77_CHAR_ARG_USE, F77_CHAR_ARG_LEN_USE, - F77_CSTRING): New macros to handle passing C character strings to - Fortran. - - 2006-10-17 Michael Goffioul - - * lapack-xtra/xdlamch.f: Begin lines with spaces, not tabs. - - * misc/Makefile.in (machar.o, pic/machar.o): Specify output file - name in compile command. - - 2006-10-13 Michael Goffioul - - * Makefile.in: Adapt rules to use $(LIBPRE). - - 2006-09-11 John W. Eaton - - * blas-xtra/xddot.f, blas-xtra/xzdotu.f: New files. - - 2006-06-01 David Bateman - - * slatec-fn/dpchim.f, slatec-fn/dpchst.f: New files. - - 2006-05-22 John W. Eaton - - * lapack/dlantr.f, lapack/zlantr.f: New files. - - 2006-05-03 David Bateman - - * lapack/dpocon.f, lapack/zpocon.f, lapack/dpotrs.f, - lapack/zpotrs.f, lapack/dtrcon.f, lapack/ztrcon.f, - lapack/dtrtrs.f, lapack/ztrtrs.f: New files. - - 2006-04-29 John W. Eaton - - * misc/lo-error.c (set_liboctave_warning_with_id_handler, - liboctave_warning_with_id): New functions. - (current_liboctave_warning_with_id_handler): New variable. - * misc/lo-error.h (liboctave_warning_with_id_handler): New typedef. - (current_liboctave_warning_with_id_handler, liboctave_warning_with_id - set_liboctave_warning_with_id_handler): Provide decls. - - 2006-04-18 John W. Eaton - - * misc/f77-fcn.h (F77_XFCN): Move decls to beginning of blocks for C. - - 2006-04-13 John W. Eaton - - * misc/quit.h BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_1, - END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE): Omit unnecessary casts. - * misc/f77-fcn.h (F77_XFCN, F77_CHAR_ARG_LEN): Likewise. - - 2006-04-03 David Bateman - - * ranlib/wrap.f (dgenexp, dgengam, dignpoi): New functions. - - 2006-03-21 John W. Eaton - - * misc/f77-fcn.h (F77_XFCN): Save octave_interrupt_immediately and - restore it if an exception occurs that causes a longjmp. - - 2005-11-01 John W. Eaton - - * ranlib/ignbin.f, ranlib/ignpoi.f: Avoid arithmetic IF statements. - - 2005-10-17 John W. Eaton - - * lapack/Makefile.in (dlamc1.o pic/dlamc1.o): - Add $(F77_FLOAT_STORE_FLAG) to FFLAGS. - - 2005-09-23 John W. Eaton - - * misc/machar.c: Restore test code. - - 2005-09-15 John W. Eaton - - * misc/quit.h Rename all win32_ symbols to w32. Change all uses. - - 2005-09-15 David Bateman - - * Makefile.in (LN_S): Change to DESTDIR before LN_S to avoid - lack of symlinks under mingw. - * misc/cquit.c (w32_thread_setjmp_mutex, win32_signal_context, - win32_signal_to_raise, win32_main_thread_id, win32_main_thread, - win32_restore_thread): New static variables. - (win32_in_main_thread): Returns 1 if in main thread for win32. - (win32_reset_context): Reset context (longjmp style) for win32. - (win32_raise_in_main): Raise signal in main thread for win32. - (win32_raise): Raise signal for win32. - (win32_raise_final): Clean up win32 signalling. - (win32_sigint_init): Initialize win32 signalling. - * quit.h (win32_sigint_init, win32_raise_final, win32_raise, - win32_in_main_thread): Declaration. - - 2005-09-14 Daniel - - * lapack/zbdsqr.f: Fix typo in docs. - From Jorge Barros de Abreu . - - 2005-05-06 John W. Eaton - - * lapack/dpotri.f, lapack/dlauum.f, lapack/dlauu2.f, - lapack/zpotri.f, lapack/zlauum.f, lapack/zlauu2.f: New files. - - 2005-04-08 John W. Eaton - - * Makefile.in, Makerules.in (clean, distclean, maintainer-clean): - Avoid duplication in rules. - - 2005-03-17 Andy Adler - - * Makerules.in (install-strip): Include double-colon target here too. - - 2005-03-09 John W. Eaton - - * Makefile.in (bin-dist): Delete target. - (BINDISTLIBS, BINDISTFILES): Delete variables. - - 2005-03-01 John W. Eaton - - * Makefile.in (CRUFT_DIRS): Remove it from the list. - * odessa: Delete directory. - - * misc/machar.c (rmachar): Declare local REAL variables volatile. - - 2005-02-25 John W. Eaton - - * blas/zher.f: New file. - - Sparse merge. - - 2005-01-13 David Bateman - - * lapack/dgttrf.f lapack/dgttrs.f lapacl/zgttrf.f lapack/zgttrs.f: - new files - - 2005-01-23 David Bateman - - * lapack/dgtsv.f lapack/dpbcon.f lapack/dpbtf2.f lapack/dpbtrf.f - lapack/dpbtrs.f lapack/dptsv.f lapack/dpttrf.f lapack/dpttrs.f - lapack/dptts2.f lapack/zgtsv.f lapack/zpbcon.f lapack/zpbtf2.f - lapack/zpbtrf.f lapack/zpbtrs.f lapack/zptsv.f lapack/zpttrf.f - lapack/zpttrs.f lapck/zptts2.f: New files. - - 2004-12-29 John W. Eaton - - * blas/zbtsv.f: New file. - * lapack/dgbcon.f, lapack/dgbtrf.f, lapack/dgbtrs.f, - lapack/dlatbs.f, lapack/zgbcon.f, lapack/zgbtf2.f, - lapack/zgbtrf.f, lapack/zgbtrs.f, lapack/zlatbs.f: New files. - - 2005-02-10 John W. Eaton - - * misc/cquit.c (octave_signal_caught): New global variable. - * misc/quit.cc (occtave_handle_signal): New function. - (octave_signal_hook): New global pointer. - * misc/quit.h: Provide decls. - (OCTAVE_QUIT): Check octave_signal_caught, not - octave_interrupt_state, and call octave_handle_signal, not - octave_throw_interrupt_exception. - - 2005-02-08 John W. Eaton - - * misc/quit.h: Use C-style comments. - - 2004-09-08 John W. Eaton - - * misc/machar.c (rmachar): Use modern C declaration. - - 2004-02-24 John W. Eaton - - * misc/f77-fcn.c: Handle Cray, CVF, and f2c calling conventions. - - * misc/f77-fcn.h (xstopx): Use F77_CHAR_ARG_DECL and - F77_CHAR_ARG_LEN_DECL in declaration. - - 2004-02-20 John W. Eaton - - * misc/quit.h (OCTAVE_QUIT): Set octave_interrupt_state to -1 - while we are handling interrupts. - - 2004-02-14 John W. Eaton - - * Makefile.in (LINK_DEPS): Always define. - - 2003-11-12 John Eaton - - * misc/machar.c (machar) [CRAY]: Kluge to make it work. - - 2003-10-31 John W. Eaton - - * odepack/dlsode.f: Rename from odepack/lsode.f. - * odepack/dlsode.f (DLSODE): Rename from LSODE to avoid name - conflict with LSODE class constructors on systems that upcase - Fortran names. - - * odessa/dodessa.f: Rename from odessa/odessa.f. - * odessa/dodessa.f (DODESSA): Rename from ODESSA to avoid name - conflict with ODESSA class constructors on systems that upcase - Fortran names. - - 2003-10-30 John W. Eaton - - * Makefile.in (MISC_OBJ): Add misc/cquit.o to the list. - - * misc/Makefile.in (SPECIAL_SRC): Add cquit.c to the list. - * misc/cquit.c: New file. - * misc/quit.cc: Move everything except octave_interrupt_hook, - octave_bad_alloc_hook, octave_throw_interrupt_exception, and - octave_throw_bad_alloc to cquit.c. - - 2003-10-28 John W. Eaton - - * misc/quit.h (octave_interrupt_hook, octave_bad_alloc_hook): - Move declarations outside of extern "C" block. - - 2003-10-27 John W. Eaton - - * misc/f77-fcn.h: Only use inline if this is C++. - - * misc/f77-fcn.c (xstopx): Return type is now F77_RET_T. - Use F77_RETURN. - * misc/machar.c (machar): Likewise. - - * misc/f77-fcn.h (F77_CHAR_ARG, F77_CONST_CHAR_ARG, F77_CHAR_ARG2, - F77_CONST_CHAR_ARG2, F77_CXX_STRING_ARG, F77_CHAR_ARG_LEN, - F77_CHAR_ARG_DECL, F77_CONST_CHAR_ARG_DECL, F77_CHAR_ARG_LEN_DECL, - F77_RET_T, F77_RETURN): New macros. - [F77_USES_CRAY_CALLING_CONVENTION]: New data conversion functions. - - * misc/quit.h (octave_interrupt_hook, octave_bad_alloc_hook): - Move function pointer declarations inside __cplusplus section. - - 2003-07-29 John W. Eaton - - * Makefile.in (install-lib): Use $(INSTALL), not - $(INSTALL_PROGRAM) for $(SHLLIB) files. - - 2003-07-02 John W. Eaton - - * Makefile.in (CLEAN_SUBDIRS): New variable. - (clean mostlyclean distclean maintainer-clean): Use it to ensure - cleaning in all subdirs, not just those we build in. - - * Makerules.in (maintainer-clean, distclean): Don't use - dependencies on double colon rules. - (distclean): Also remove *.d, *.a, *.o, pic/*.o, pic, and stmp-pic. - (maintainer-clean): Also remove *.d, *.a, *.o, pic/*.o, pic, and - stmp-pic, and Makefile. - - * Makefile.in (maintainer-clean, distclean): Also remove *.$(SHLEXT). - - 2003-06-16 John W. Eaton - - * dasrt/ddasrt.f (DDASRT): Print correct message for invalid MXSTP. - - * dassl/ddassl.f (DDASSL): Handle MXSTP as in DASRT. - - * dassl/ddajac.f (DDAJAC): LIPVT is now 22. - * dassl/ddassl.f (DDASSL): Likewise. - * dassl/ddaslv.f (DDASLV): Likewise. - - * misc/quit.h (octave_interrupt_hook, octave_bad_alloc_hook): - New function pointers. - * misc/quit.cc: Initialize them. - (octave_throw_interrupt_exception): If octave_interrupt_hook is - set, call it. - (octave_throw_bad_alloc): Likewise, for octave_bad_alloc_hook. - - * dasrt/ddasrt.f (DDASRT): Set LMXSTP to 21 and LIPVT to 22 to - avoid conflict with LLAST in DRCHECK. Change docs for INFO(12) - and LIW. - - 2003-05-14 John W. Eaton - - * Makefile.in, misc/Makefile.in: Handle DESTDIR. - - 2003-02-20 John W. Eaton - - * blas/sgemm.f, blas/strsm.f, blas/ssyrk.f, blas/sscal.f, - blas/sgemv.f, blas/sdot.f: New files. - - 2003-02-20 Paul Kienzle - - * dassl/ddaslv.f: Fortran doesn't use ; in statements. - - 2003-02-18 John W. Eaton - - * blas/dtbsv.f: New file. - * lapack/dlatrs.f, lapack/dtrti2.f, lapack/dtrtri.f, lapack/ztrti2.f, - lapack/ztrtri.f: New files. - - 2003-02-04 David Bateman - - * Makefile.in (CRUFT_DIRS): Remove linpack from list. - - * linpackdgbfa.f, linpackdgbsl.f, linpackdgeco.f, linpackdgedi.f, - linpackdgefa.f, linpackdgesl.f, linpackspofa.f, linpackzgeco.f, - linpackzgedi.f, linpackzgefa.f, linpackzgesl.f: Delete. - - * dassl/ddajac.f, dassl/ddaslv.f: Use DGxTRF and - DGxTRS instead of DGxFA and DGxSL. - * daspk/ddaspk.f, daspk/dmatd.f, daspk/dslvd.f: Likewise. - * odepack/lsode.f, odepack/prepj.f, odepack/solsy.f: Likewise. - * odessa/odessa.f, odessa/odessa_prepj.f, odessa/odessa_solsy.f: - Likewise. - * libcrudt/ranlib/setgmn.f: Use SPOTRF instead of SPOFA. - - * lapack/dgbtf2.f, lapack/dgbtrf.f, lapack/dgbtrs.f, - lapack/dgecon.f, lapack/dgetri.f, lapack/spotf2.f, - lapack/spotrf.f, lapack/zgecon.f, lapack/zgetri.f: New files. - - 2003-01-22 John W. Eaton - - * misc/quit.h (BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_1, - BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_2): New macros. - - 2003-01-03 John W. Eaton - - * odessa/odessa_rscom.f (ODESSA_RSCOM): Fix apparent typo (LODE2 - should probably be LIODE2). - - * Makerules.in (clean, mostlyclean): Also remove *.d. - - * misc/quit.cc: Add std:: qualifiers to memcpy calls. - - 2003-01-03 Paul Kienzle - - * misc/quit.h: Move #include outside extern "C" block. - * misc/f77-fcn.h: Move #include "quit.h" outside extern "C" block. - - 2002-11-20 John W. Eaton - - * misc/quit.h (BEGIN_INTERRUPT_WITH_EXCEPTIONS, - END_INTERRUPT_WITH_EXCEPTIONS): Only define for C++ source. - Include for C++ source. - - 2002-11-15 John W. Eaton - - * misc/quit.h, misc/quit.cc [! USE_EXCEPTIONS_FOR_INTERRUPTS]): - Always use exceptions for handling interrupts. - (BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE): - - * misc/quit.h (OCTAVE_TRY_WITH_INTERRUPTS, OCTAVE_THROW_BAD_ALLOC, - OCTAVE_CATCH_INTERRUPTS, SAVE_OCTAVE_INTERRUPT_IMMEDIATELY, - INCREMENT_OCTAVE_INTERRUPT_IMMEDIATELY, OCTAVE_THROW_TO_TOP_LEVEL, - DECREMENT_OCTAVE_INTERRUPT_IMMEDIATELY, OCTAVE_JUMP_TO_TOP_LEVEL, - SET_OCTAVE_INTERRUPT_IMMEDIATELY): Replace all uses with - definitions, delete macros. - - 2002-11-14 John W. Eaton - - * misc/quit.cc (octave_allocation_error): New variable. - (octave_throw_bad_alloc): New function. - * misc/quit.h: Provide decls. - (OCTAVE_THROW_BAD_ALLOC): New macro. - (END_INTERRUPT_WITH_EXCEPTIONS): Also catch bad_alloc. - * misc/f77-fcn.h (F77_XFCN): Handle allocation errors. - - * misc/quit.h (octave_jmp_buf): New typedef. - (current_context): Type is now octave_jmp_buf. - (octave_set_current_context): Use sigsetjmp if we have it. - (octave_interrupt_immediately, octave_interrupt_state): Type is - now sig_atomic_t. - (BEGIN_INTERRUPT_WITH_EXCEPTIONS, END_INTERRUPT_WITH_EXCEPTIONS): - New macros. - - * misc/quit.cc (octave_jump_to_enclosing_context): Use siglongjmp - if we have it. - (octave_save_current_context, octave_restore_current_context): Use - octave_jmp_buf type here. - - 2002-11-07 John W. Eaton - - * misc/Makefile.in: Handle automatic dependency generation for - C/C++ source files. - - * misc/quit.h (INCREMENT_OCTAVE_INTERRUPT_IMMEDIATELY, - DECREMENT_OCTAVE_INTERRUPT_IMMEDIATELY, - SET_OCTAVE_INTERRUPT_IMMEDIATELY): New macros. - (BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE, - BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE): Use them. - * f77-fcn.h (F77_XFCN): Likewise. - - * misc/quit.cc: Include for memcpy decl. - - 2002-11-06 John W. Eaton - - * misc/f77-fcn.h (F77_XFCN): Adapt to new signal/exception - handling scheme. - (f77_context): Delete decl. - (copy_f77_context): Likewise. - * misc/f77-fcn.cn (copy_f77_context): Delete. - (Fxstopx): Set f77_exception_encountered. - Use octave_jump_to_enclosing_context, not longjmp. - - * misc/f77-extern.cc (f77_context): Delete definition. - - * misc/quit.h, misc/quit.cc: New files. - * misc/Makefile: Add them to the appropriate lists. - - * Makefile (MISC_OBJ): Add misc/quit.o - - 2002-10-31 John W. Eaton - - * odessa/odessa.f (ODESSA): Second arg of xerrwd is string length. - * odessa/odessa_intdy.f (ODESSA_INTDY): Likewise. - - 2002-10-29 John W. Eaton - - * dasrt/ddasrt.f (DDASRT): Fix computation of LENRW. - - 2002-10-16 John W. Eaton - - * Makefile.in (install): Don't bother with versions for $(SHLBIN) - files. - - * slatec-err/xerrwd.f (XERRWD): Print msg(1:nmes), not just msg. - - 2002-10-14 John W. Eaton - - * Makefile.in (install): No need to use cd to create links. - - 2002-10-14 Paul Kienzle - - * Makefile.in: Use link dependencies for shared libs if - INCLUDE_LINK_DEPS. - (LIBRARIES): If doing shared libs, include versioned library in list. - (libcruft.$(SHLEXT), libcruft.$(SHLEXT_VER)): Reverse actions -- - build unversioned library, symbolic link adds version info. - (install, uninstall): Handle link and load forms of the library - separately. - - 2002-09-30 Paul Kienzle - - * slatec-fn/xdacosh.f: Mark external functions as external. - * slatec-fn/xdasinh.f: Ditto. - * slatec-fn/xdatanh.f: Ditto. - * slatec-fn/xdbetai.f: Ditto. - * slatec-fn/xderf.f: Ditto. - * slatec-fn/xderfc.f: Ditto. - * slatec-fn/xdgami.f: Ditto. - * slatec-fn/xdgamit.f: Ditto. - * slatec-fn/xdgamma.f: Ditto. - * slatec-fn/xgmainc.f: Ditto. - - 2002-08-14 John W. Eaton - - * odessa/odessa.f (ODESSA): Use XERRWD instead of XERR. - * odessa/intdy.f (ODESSA_INTDY): Likewise. - * odessa_rscom.f (ODESSA_RSCOM): Delete unused common block EH0001. - * odessa_svcom.f (ODESSA_SVCOM): Likewise. - - * dasrt/xerrwv.f, odepack/xerrwv.f: Delete. - * slatec-err/xerrwd.f (XERRWD): Call XSTOPX instead of using STOP. - - * quadpack/dqagi.f (DQAGI): Replace Hollerith constants with - character string constants. - * quadpack/dqagp.f (DQAGP): Likewise. - * odepack/lsode.f (LSODE): Likewise. - - * odepack/lsode.f (LSODE): Use XERRWD instead of XERRWV. - * odepack/intdy.f (INTDY): Likewise. - * dasrt/ddasrt.f (DDASRT): Likewise. - * quadpack/xerror.f (XERROR): Likewise. - - 2002-07-25 John W. Eaton - - * slatec-fn/xgmainc.f: New file. - - 2002-07-12 John W. Eaton - - * dasrt: New subdirectory. - * Makefile.in (CRUFT_DIRS): Add it to the list. - - 2002-07-10 John W. Eaton - - * odessa: New subdirectory. - * Makefile.in (CRUFT_DIRS): Add it to the list. - - 2002-06-27 John W. Eaton - - * slatec-err/xermsg.f (XERMSG): If MAXMES .LT. 0, messages may be - printed an unlimited number of times. - * slatec-err/j4save.f (J4SAVE) Default for MAXMES is now -1. - - * misc/f77-fcn.c (xstopx): Pass args in proper order. - - 2002-05-22 John W. Eaton - - * ordered-qz/dsubsp.f (DSUBSP): Delete decl for unused variable J. - - * misc/f77-fcn.c (xstopx): Return type is void, not volatile void. - * misc/f77-fcn.h (xstopx): Provide decl. Add special gcc noreturn - attribute here. - - 2002-05-16 John W. Eaton - - * misc/f77-fcn.h: Define F77_FCN for backward compatibility. - - 2002-04-27 John W. Eaton - - * slatec-err/ixsav.f, slatec-err/xerrwd.f: New files. - - * daspk: New directory. - * Makefile.in (CRUFT_DIRS): Add it to the list - - 2002-04-03 Steven G. Johnson - - * misc/machar.c: Use F77_FUNC instead of checking - F77_APPEND_UNDERSCORE. - * misc/f77-fcn.h: Don't define F77_FCN. - (xSTRINGIZE, STRINGIZE): New macros. - (F77_XFCN_ERROR): Simplify by using STRINGIZE and F77_FUNC. - (F77_XFCN): Use F77_FUNC instead of F77_FCN. - * misc/f77-fcn.c: Use F77_FUNC instead of F77_FCN. - - 2001-11-01 John W. Eaton - - * Makefile.in (DISTSUBDIRS): Add fftpack. - - 2001-08-13 John W. Eaton - - * lapack/dlasq3.f: Update from netlib. - * lapack/dlasq5.f: Ditto. - - 2001-05-02 Mumit Khan - - * Makefile.in (CRUFT_DIRS): Substitute @FFT_DIR@. - - 2001-04-25 John W. Eaton - - * Makefile.in (install): Don't use mk-libdir-link. - - 2001-04-19 John W. Eaton - - * misc/Makefile.in (CPICDEP): Remove pic/dostop.o from the list. - - 2001-03-27 John W. Eaton - - * misc/xstopx.f: Delete. - * misc/dostop.c: Delete. - * misc/Makefile.in (SPECIAL, SPECIAL_DEPEND): Delete dostop.c and - dostop.o from lists. - * Makefile.in (MISC_OBJ): Delete misc/dostop.o from the list. - - * misc/dostop.c (dostop): Use F77_FCN macro for function definition. - Specify length in error format to avoid need for copying string. - From Paul Kienzle . - - 2000-12-14 John W. Eaton - - * lapack/dgelss.f (DGELSS): Use correct leading dimension for - workspace array passed to dgemm and dlacpy. - (ZGELSS): Likewise, for calls to zgemm and zlacpy. - - 2000-07-18 John W. Eaton - - * Makefile.in (DISTSUBDIRS): New macro. - (dist): Use it instead of SUBDIRS. - - 2000-06-30 Steven G. Johnson - - * blas-xtra, lapack-xtra: New directories. - * Makefile.in (CRUFT_DIRS): Add them to the list. - Substitute @BLAS_DIR@ and @LAPACK_DIR@ here. - * blas-xtra/xerbla.f: Move here from blas subdirectory. - * blas-xtra/Makefile.in: New file. - * lapack-xtra/xdlamch.f, lapack-xtra/xdlange.f, - lapack-xtra/xzlange.f: Move here from lapack subdirectory. - * lapack-xtra/Makefile.in: New file. - - 2000-04-25 John W. Eaton - - * misc/Makefile.in (install, uninstall): Include files go in - $(octincludedir)/octave, not just $(octincludedir). - - 2000-03-25 John W. Eaton - - * Makefile.in (LIBRARIES): Conditionally define. - (libraries): Depend on $(SUBDIRS) only. - Make $(LIBRARIES) using a recursive invocation of make once - $(SUBDIRS) are up to date. - (.NOTPARALLEL): New target, for GNU Make 3.79. - - 2000-03-21 John W. Eaton - - * Makefile.in (libcruft.$(LIBEXT)): New target. - (all): Depend on `libraries', not `$(SUBDIRS) shared-lib'. - Conditionally construct `libraries' target. - (libcruft.$(SHLEXT_VER)): Delete target before rebuilding. - * Makerules.in (LIBCRUFT): Delete variable. - (LIBCRUFT_DEPEND): Conditionally define to $(LIBCRUFT_OBJS) only. - (all): Print warning if anything is done. - (stmp-pic): New target. - ($CRUFT_PICOBJ): Depend on stmp-pic. - (clean, mostlyclean): Remove pic and stmp-pic. - - 2000-02-10 John W. Eaton - - * lapack/dbdsqr.f, lapack/dgeesv.f, lapack/dgelss.f, - lapack/dgesvd.f, lapack/dlasq1.f, lapack/dlasq2.f, - lapack/dlasq3.f, lapack/dlasq3.f, lapack/dlasq4.f, - lapack/dlasq5.f, lapack/dlasq6.f, lapack/zbdsqr.f, - lapack/zgelss.f, lapack/zgesvd.f, lapack/zhetd2.f: - Update from netlib. - - 1999-11-03 John W. Eaton - - * Update to Lapack version 3.0. - * lapack/ieeeck.f, lapack/dlasq2.f, lapack/dlasq3.f, - lapack/dlasq5.f, lapack/dlasq6.f: New files. - - 1999-10-29 John W. Eaton - - * misc/lo-error.cc (current_liboctave_warning_handler): Define here. - (set_liboctave_warning_handler): New function. - (liboctave_warning): Ditto. - * misc/lo-error.h: Provide declararations for them here. - - 1999-10-19 John W. Eaton - - * Makefile.in (dist): Use `$(MAKE) -C dir' instead of `cd dir; - $(MAKE); cd ..'. - - 1999-10-01 John W. Eaton - - * dassl/dpotrf.f, dassl/dpotf2.f: Move to lapack subdirectory. - - Fri Mar 26 01:19:04 1999 John W. Eaton - - * Makerules.in (all): Don't try to use a special rule for making - the archive. The default rules may be slower, but they are also - correct. - - Wed Nov 11 17:27:35 1998 John W. Eaton - - * Makefile.in (CRUFT_DIRS): Add amos. Delete specfun. - * specfun: Delete directory. - * amos: New directory - - Thu Oct 15 00:43:13 1998 John W. Eaton - - * ranlib: Update to newer version of randlib. - * ranlib/Makefile.in (SPECIAL): Update list. - - Thu Sep 24 11:59:02 1998 John W. Eaton - - * balgen, eispack: Delete directories and unnecesary files. - * Makefile.in (CRUFT_DIRS): Delete eispack and balgen from the list. - - * lapack/xdlamch.f: New file. - - * ordered-qz: New directory. - * Makefile.in (CRUFT_DIRS): Add it to the list. - - * lapack/dggbak.f, lapack/dtgevc.f, lapack/zggbal.f: New files. - - Tue Jun 2 09:57:52 1998 John W. Eaton - - * specfun/rybesl.f (rybesl): Don't access by(2) unless nb .gt. 1. - - Mon May 11 12:33:42 1998 John W. Eaton - - * fftpack/passb3.f, fftpack/passb5.f, fftpack/passf3.f, - fftpack/passf5.f: Use double precision constants in data - statements. - - Tue Apr 14 14:01:22 1998 John W. Eaton - - * slatec-fn/xdgamit.f (xdgamit): New file. - - Mon Apr 6 00:26:35 1998 John W. Eaton - - * slatec-fn/xdgami.f (xdgami): Reorder args to match dgami. - - Thu Feb 19 21:00:00 1998 John W. Eaton - - * specfun/ribesl.f, specfun/rjbesl.f: Compute NSIG correctly. - Add missing comma in declaration statement. - - Sun Feb 1 12:39:10 1998 John W. Eaton - - * Makefile.in (install, uninstall): Use $(octlibdir), not $(libdir). - Use $(mk-libdir-link). - - * quadpack/dqagi.f, quadpack/dqagie.f, quadpack/dqagp.f, - quadpack/dqagpe.f, quadpack/dqk15i.f, quadpack/dqk21.f: - Make user-supplied code a subroutine instead of a function. - - Mon Jan 19 23:11:21 1998 John W. Eaton - - * lapack/xdlange.f, lapack/xzlange.f: New files. - - Mon Dec 1 00:51:03 1997 John W. Eaton - - * dassl/xerhlt.f, dassl/xermsg.f, dassl/xerprn.f, dassl/xgetua.f, - dassl/xsetua.f: Delete. - - * slatec-err: New directory. - * Makefile.in: Add it to the list. - - Sun Nov 30 17:55:20 1997 John W. Eaton - - * slatec-fn/xdgami.f, slatec-fn/xdbetai.f, slatec-fn/xderfc.f, - slatec-fn/xderf.f, slatec-fn/xdatanh.f, slatec-fn/xdasinh.f, - slatec-fn/xdacosh.f: New files. - - Sat Nov 29 13:02:14 1997 John W. Eaton - - * specfun/ribesl.f (ribesl): Use d1mach to get machine parameters. - SAVE static data between calls. Use PARAMETERS where possible. - * specfun/rjbesl.f (rjbesl): Likewise. - * specfun/rkbesl.f (rkbesl): Likewise. - * specfun/rybesl.f (rybesl): Likewise. - - Fri Nov 28 14:05:12 1997 John W. Eaton - - * specfun: New subdirectory. - * specfun/Makefile.in, specfun/ribesl.f, specfun/rjbesl.f, - specfun/rkbesl.f, specfun/rybesl.f: New files. - * Makefile.in (CRUFT_DIRS): Add specfun. - - Wed Nov 26 01:49:47 1997 John W. Eaton - - * slatec-fn/d9gmit.f, slatec-fn/d9lgic.f, slatec-fn/d9lgit.f, - slatec-fn/dbetai.f, slatec-fn/dgami.f, slatec-fn/dgamit.f, - slatec-fn/dgamr.f, slatec-fn/dlbeta.f, slatec-fn/dlnrel.f: - New files for incomplete beta and incomplete gamma functions. - - Thu Jul 17 13:18:57 1997 Klaus Gebhardt - - * blas/xerbla.f (xerbla): Call XSTOPX instead of using STOP. - - Fri Jun 6 16:49:22 1997 John W. Eaton - - * slatec-fn/xdgamma.f: New file. - - * fsqp, npsol, qpsol: Delete directories. - * Makefile.in (CRUFT_DIRS): Delete fsqp, npsol, and qpsol from list. - - Thu Jun 5 01:40:36 1997 John W. Eaton - - * Makefile.in, Makerules.in: Make building of static library optional. - (liboctave.$(SHLEXT_VER)): Add $(SONAME_FLAGS) to command. - - * Makerules.in (stamp-picdir): Delete. - (pic): New target. Don't worry so much about creating pic - directory only when it is really needed. - - * Makefile.in (stamp-shared): Delete. - (shared-lib): New target. Depend on shared libraries directly. - - Wed May 21 16:29:42 1997 John W. Eaton - - * misc/Makefile.in (install): Ensure include directory link is made. - (uninstall): Delete all installed files. - - Thu Mar 13 22:31:35 1997 John W. Eaton - - * blas, lapack: Add new files for symmetric eigenvalue - computation. - - Wed Mar 12 16:59:59 1997 John W. Eaton - - * misc/Makefile.in (install-strip): New target. - - * Makefile.in (install-strip): New target. - - Mon Mar 3 15:38:39 1997 John W. Eaton - - * ranlib/Makefile.in (EXTERNAL_DISTFILES): Add Basegen.doc. - - * fftpack/Makefile.in (EXTERNAL_DISTFILES): Add fftpack.doc. - - * Makefile.in (DISTFILES): Add configure.in. - - Sat Mar 1 15:23:14 1997 John W. Eaton - - * Version 2.0.5 released. - - Wed Feb 26 12:08:39 1997 John W. Eaton - - * Makefile.in (maintainer-clean): Also remove configure. - - Thu Feb 20 02:58:05 1997 John W. Eaton - - * Version 2.0.4 released. - - Tue Feb 18 09:22:04 1997 John W. Eaton - - * Version 2.0.3 released. - - Fri Feb 14 16:23:42 1997 John W. Eaton - - * Makefile.in (bin-dist): Don't write empty strings to LIBRARIES. - - Thu Feb 13 17:33:41 1997 John W. Eaton - - * Makefile.in (stamp-shared): Use $(SH_LD) $(SH_LDFLAGS) instead - of $(CXX) -shared. - - * Makerules.in (stamp-picdir): Silence noise about making pic. - - Mon Jan 27 15:52:29 1997 John W. Eaton - - * Version 2.0.2 released. - - Sat Jan 25 22:34:10 1997 John W. Eaton - - * Makefile.in, balgen/Makefile.in, blas/Makefile.in, - cfsqp/Makefile.in, dassl/Makefile.in, eispack/Makefile.in, - fftpack/Makefile.in, fsqp/Makefile.in, lapack/Makefile.in, - linpack/Makefile.in, minpack/Makefile.in, misc/Makefile.in, - npsol/Makefile.in, odepack/Makefile.in, qpsol/Makefile.in, - quadpack/Makefile.in, ranlib/Makefile.in, slatec-fn/Makefile.in, - villad/Makefile.in (bin-dist): New target. - - Wed Jan 22 15:03:33 1997 John W. Eaton - - * misc/Makefile.in (pic/machar.o): Add $(CPICFLAG) for this target. - - * misc/d1mach.f (d1mach): Move SAVE statement ahead of DATA statment. - - Wed Jan 15 21:04:29 1997 John W. Eaton - - * blas/*.f: Update to latest version from Netlib. - - Tue Jan 7 00:17:17 1997 John W. Eaton - - * Version 2.0.1 released. - - Tue Dec 17 11:02:02 1996 John W. Eaton - - * misc/lo-error.c: Convert C++-style comments to C-style comments. - - Wed Dec 11 01:50:31 1996 John W. Eaton - - * misc/Makefile.in (SPECIAL_DEPEND): Delete d1mach.o from the list. - - Tue Dec 10 01:43:10 1996 John W. Eaton - - * Version 2.0 released. - - Fri Dec 6 15:23:50 1996 John W. Eaton - - * Version 1.94. - - Wed Nov 20 01:00:43 1996 John W. Eaton - - * misc/Makefile.in (install): Also install lo-error.h. - - * Makefile.in (MISC_OBJ): Add misc/f77-fcn.o. - - * misc/lo-error.h: New file, moved here from liboctave. - * misc/lo-error.c: Rename from lo-error.cc. Make this a C-file - instead of C++. - - * Version 1.93. - - Tue Nov 19 23:04:24 1996 John W. Eaton - - * misc/Makefile.in: Add variables for installing things. - - * Makerules.in (install, uninstall): Make these double colon rules. - - * f77-fcn.c, f77-fcn.h: New files, from liboctave. - - * misc/Makefile.in (SPECIAL_DEPEND): Add f77-fcn.o. - (SPECIAL): Add f77-fcn.c and f77-fcn.h. - (CPICDEP): Add pic/f77-fcn.o. - (install): Install f77-fcn.h in $(octincludedir). - (uninstall): Delete f77-fcn.h from $(octincludedir). - - * Makerules.in (CRUFT_CSRC): Delete unsed variable. - - Thu Nov 14 00:07:00 1996 John W. Eaton - - * Version 1.92. - - Fri Nov 8 09:55:40 1996 John W. Eaton - - * Makefile.in (libcruft.a): Delete target. - * Makerules.in, Makefile.in: Use real archive rules to build - libcruft.a in parts. - - * Makefile.in (install): Use $(INSTALL_PROGRAM) for installing - shared library. - - Thu Nov 7 12:43:17 1996 John W. Eaton - - * Makefile.in: Add -lm when building shared library. - - * Version 1.91. - - Mon Nov 4 10:09:00 1996 John W. Eaton - - * lapack/dlag2.f, lapack/dggbal.f, lapack/dgghrd.f, lapack/dhgeqz.f: - New files. - - * Makefile.in (install): Use INSTALL_PROGRAM for shared version of - libcruft. - - Sun Nov 3 19:37:37 1996 John W. Eaton - - * misc/Makefile.in (distclean): Delete target, since there is - nothing special to do. - - Wed Oct 30 17:20:14 1996 John W. Eaton - - * Version 1.90. - - * Makefile.in (DISTFILES): Add ChangeLog. - - * misc/Makefile.in: Make pic/machar.o using special rule. - Use CPPFLAGS, not CPP_FLAGS. - - Thu Oct 24 20:22:47 1996 John W. Eaton - - * Makefile.in (CRUFT_OBJ): No special treatment for d1mach.o. - - * misc/machar.c, misc/d1mach.f: New files - * misc/Makefile.in: Fix to not generate d1mach.f. - - Mon Oct 14 11:07:25 1996 John W. Eaton - - * Makefile.in (distclean): Remove stamp-shared too. - - Sat Oct 12 00:20:41 1996 John W. Eaton - - * Makefile.in (maintainer-clean): Don't depend on distclean. - * Makerules.in (maintainer-clean): Ditto. - - Tue Aug 20 22:09:08 1996 John W. Eaton - - * Makerules.in (stamp-picdir): Only create a pic subdirectory if - SHARED_LIBS is true AND FPICFLAG is not empty. - - Wed May 22 15:07:00 1996 John W. Eaton - - * Makefile.in (stamp-shared): Use CC, not CXX to create shared - library. Also use SHARED_FLIBS here instead of FLIBS. - - Sat Apr 6 21:28:47 1996 John W. Eaton - - * Makerules.in (clean, mostlyclean): Also remove pic/*.o. - (maintainer-clean, distclean): Also remove stamp-picdir and pic - directory. - - Wed Apr 3 01:01:31 1996 John W. Eaton - - * misc/Makefile.in: Set SPECIAL_PICDEPEND after including Makeconf - and before including Makerules. - - Fri Mar 29 13:45:06 1996 John W. Eaton - - * Makefile.in (distclean): Delete so_locations, which is created - on DEC Alpha systems. - (distclean, maintainer-clean): Don't depend on clean. - - Wed Mar 27 05:59:02 1996 John W. Eaton - - * Makerules.in: Add rules for making PIC code here. - * Makefile.in (libcruft.a): Depend on $(CRUFT_PICOBJ) - * misc/Makefile.in: Add rules for making PIC code from C and C++ - files. - - Fri Feb 9 21:04:45 1996 John W. Eaton - - * misc/f77-extern.cc, misc/lo-error.cc: New files. - * misc/Makefile.in (SPECIAL, SPECIAL_DEPEND): Add them to the lists. - * Makefile.in (CRUFT_OBJ): Add it f77-extern.o and lo-error.o here - too. - - Sat Feb 3 07:57:39 1996 John W. Eaton - - * misc/dostop.c (dostop): Call error handler if we have a message. - Call longjmp on f77_context, not jump_to_top_level(). - * misc/xstopx.f (xstopx): Pass non-blank strings on to dostop. - - Mon Jan 8 22:55:26 1996 John W. Eaton - - * Makefile.in (clean): If $(SHARED_LIBS), remove shared libs. - (mostlyclean): Ditto. - - Fri Dec 29 21:43:24 1995 John W. Eaton - - * Makefile.in, Makerules.in: Handle creating position independent - code and shared libraries for Octave. - - Tue Dec 26 00:15:31 1995 John W. Eaton - - * Makerules.in (stamp-picdir): New target. - (all): Depend on it. - - * Makefile.in: Delete references to configure stuff. - * configure.in, mkinstalldirs: Delete. - - Sun Dec 24 02:42:29 1995 John W. Eaton - - * linpack/spofa.f: New file. - * blas/level-1/sdot.f: New file. - * blas/level-2/dsyr.f: New file. - - Thu Dec 14 02:34:19 1995 Rick Niles - - * fftpack/cfftb1.f, fftpack/cfftf1.f, fftpack/cffti1.f, - odepack/prepj.f, odepack/solsy.f, odepack/stode.f: - Avoid warnings for nonstandard dimension statements of the form - `real foo(1)' by using `real foo(*)' instead. - - Mon Nov 6 07:24:03 1995 John Eaton - - * misc/dostop.c: Only call jump_to_top_level() if OCTAVE_SOURCE. - - Fri Nov 3 11:08:31 1995 John Eaton - - * misc/dostop.c: Just call jump_to_top_level() directly here. - - Wed Sep 20 00:01:03 1995 John Eaton - - * mkinstalldirs: New file. - * Makefile.in (DISTFILES): Add it to the list. - - * Makerules.in: Fix cleaning rules. Use double colon so we can - add things in the makefiles in the subdirectories. - - * Makefile.in (DISTFILES): Distribute configure.in and configure. - (distclean): Also remove Makerules, config.log, and config.status. - (maintainer-clean): Depend on distclean. - - Mon Apr 10 09:55:13 1995 John Eaton - - * configure.in: New file. - - Fri Mar 10 10:38:29 1995 John Eaton - - * Makefile.in (install uninstall clean mostlyclean distclean - realclean): Use SUBDIR_FOR_COMMAND. Combine actions. - - See ChangeLog.1 in the top level directory for earlier changes. --- 0 ---- diff -cNr octave-3.4.0/libcruft/Makefile.am octave-3.4.1/libcruft/Makefile.am *** octave-3.4.0/libcruft/Makefile.am 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/libcruft/Makefile.am 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/common.mk AM_CPPFLAGS = @CPPFLAGS@ -I../libgnu -I$(top_srcdir)/libgnu --- 18,24 ---- # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/build-aux/common.mk AM_CPPFLAGS = @CPPFLAGS@ -I../libgnu -I$(top_srcdir)/libgnu *************** *** 34,41 **** @CRUFT_DLL_DEFS@ \ $(AM_CPPFLAGS) libcruft_la_LDFLAGS = \ ! -release $(version) $(NO_UNDEFINED_LDFLAG) @XTRA_CRUFT_SH_LDFLAGS@ \ -bindir $(bindir) libcruft_la_LIBADD = \ --- 34,51 ---- @CRUFT_DLL_DEFS@ \ $(AM_CPPFLAGS) + # Increment these as needed and according to the rules in the libtool + # manual: + libcruft_current = 0 + libcruft_revision = 0 + libcruft_age = 0 + + libcruft_version_info = $(libcruft_current):$(libcruft_revision):$(libcruft_age) + libcruft_la_LDFLAGS = \ ! -version-info $(libcruft_version_info) \ ! $(NO_UNDEFINED_LDFLAG) \ ! @XTRA_CRUFT_SH_LDFLAGS@ \ -bindir $(bindir) libcruft_la_LIBADD = \ *************** *** 82,88 **** ./mkf77def $(srcdir) $(libranlib_la_SOURCES) > $@-t mv $@-t $@ ! EXTRA_DIST += ChangeLog mkf77def.in DISTCLEANFILES = cruft.def ranlib.def --- 92,98 ---- ./mkf77def $(srcdir) $(libranlib_la_SOURCES) > $@-t mv $@-t $@ ! EXTRA_DIST += mkf77def.in DISTCLEANFILES = cruft.def ranlib.def diff -cNr octave-3.4.0/libcruft/Makefile.in octave-3.4.1/libcruft/Makefile.in *** octave-3.4.0/libcruft/Makefile.in 2011-02-08 05:03:36.000000000 -0500 --- octave-3.4.1/libcruft/Makefile.in 2011-06-15 11:31:27.000000000 -0400 *************** *** 63,76 **** $(srcdir)/mkf77def.in $(srcdir)/odepack/module.mk \ $(srcdir)/ordered-qz/module.mk $(srcdir)/quadpack/module.mk \ $(srcdir)/ranlib/module.mk $(srcdir)/slatec-err/module.mk \ ! $(srcdir)/slatec-fn/module.mk $(top_srcdir)/common.mk \ ! ChangeLog @AMCOND_HAVE_FFTW_TRUE@am__append_1 = $(FFTPACK_SRC) @AMCOND_HAVE_FFTW_FALSE@am__append_2 = $(FFTPACK_SRC) subdir = libcruft ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ --- 63,79 ---- $(srcdir)/mkf77def.in $(srcdir)/odepack/module.mk \ $(srcdir)/ordered-qz/module.mk $(srcdir)/quadpack/module.mk \ $(srcdir)/ranlib/module.mk $(srcdir)/slatec-err/module.mk \ ! $(srcdir)/slatec-fn/module.mk \ ! $(top_srcdir)/build-aux/common.mk @AMCOND_HAVE_FFTW_TRUE@am__append_1 = $(FFTPACK_SRC) @AMCOND_HAVE_FFTW_FALSE@am__append_2 = $(FFTPACK_SRC) subdir = libcruft ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/ax_pthread.m4 \ ! $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ *************** *** 78,93 **** $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ --- 81,100 ---- $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filemode.m4 \ ! $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpurge.m4 \ ! $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/fseek.m4 \ ! $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftell.m4 \ ! $(top_srcdir)/m4/ftello.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ *************** *** 101,126 **** $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ ! $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ! $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ! $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ ! $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ ! $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ ! $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \ ! $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memchr.m4 \ ! $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ ! $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkfifo.m4 \ ! $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \ ! $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ ! $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nanosleep.m4 \ ! $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ ! $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/printf.m4 \ ! $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ ! $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \ ! $(top_srcdir)/m4/round.m4 $(top_srcdir)/m4/roundf.m4 \ ! $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/select.m4 \ ! $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ --- 108,135 ---- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ ! $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ ! $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ! $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ ! $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/math_h.m4 \ ! $(top_srcdir)/m4/mathfunc.m4 $(top_srcdir)/m4/mbrtowc.m4 \ ! $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ ! $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/md5.m4 \ ! $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \ ! $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \ ! $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkstemp.m4 \ ! $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ ! $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/multiarch.m4 \ ! $(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/nocrash.m4 \ ! $(top_srcdir)/m4/nproc.m4 $(top_srcdir)/m4/open.m4 \ ! $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ ! $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/readlink.m4 \ ! $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ ! $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/round.m4 \ ! $(top_srcdir)/m4/roundf.m4 $(top_srcdir)/m4/save-cwd.m4 \ ! $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/sigaction.m4 \ ! $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ *************** *** 128,156 **** $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \ ! $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ ! $(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \ ! $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/tempname.m4 \ ! $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ ! $(top_srcdir)/m4/times.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ ! $(top_srcdir)/m4/trunc.m4 $(top_srcdir)/m4/truncf.m4 \ ! $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ ! $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/vasnprintf.m4 \ ! $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ ! $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ ! $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ ! $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/acinclude.m4 \ ! $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = mkf77def CONFIG_CLEAN_VPATH_FILES = --- 137,162 ---- $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strdup.m4 \ ! $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.m4 \ ! $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ ! $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \ ! $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/times.m4 \ ! $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/trunc.m4 \ ! $(top_srcdir)/m4/truncf.m4 $(top_srcdir)/m4/unistd-safer.m4 \ ! $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ ! $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vsnprintf.m4 \ ! $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ ! $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ ! $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = mkf77def CONFIG_CLEAN_VPATH_FILES = *************** *** 256,263 **** lapack-xtra/xdlange.f lapack-xtra/xilaenv.f \ lapack-xtra/xslamch.f lapack-xtra/xslange.f \ lapack-xtra/xzlange.f lapack-xtra/zrsf2csf.f \ ! lapack-xtra/crsf2csf.f misc/cquit.c misc/d1mach.f \ ! misc/f77-extern.cc misc/f77-fcn.c misc/i1mach.f \ misc/lo-error.c misc/quit.cc misc/r1mach.f odepack/cfode.f \ odepack/dlsode.f odepack/ewset.f odepack/intdy.f \ odepack/prepj.f odepack/solsy.f odepack/stode.f \ --- 262,269 ---- lapack-xtra/xdlange.f lapack-xtra/xilaenv.f \ lapack-xtra/xslamch.f lapack-xtra/xslange.f \ lapack-xtra/xzlange.f lapack-xtra/zrsf2csf.f \ ! lapack-xtra/crsf2csf.f misc/blaswrap.c misc/cquit.c \ ! misc/d1mach.f misc/f77-extern.cc misc/f77-fcn.c misc/i1mach.f \ misc/lo-error.c misc/quit.cc misc/r1mach.f odepack/cfode.f \ odepack/dlsode.f odepack/ewset.f odepack/intdy.f \ odepack/prepj.f odepack/solsy.f odepack/stode.f \ *************** *** 481,487 **** lapack-xtra/libcruft_la-xslange.lo \ lapack-xtra/libcruft_la-xzlange.lo \ lapack-xtra/libcruft_la-zrsf2csf.lo \ ! lapack-xtra/libcruft_la-crsf2csf.lo misc/libcruft_la-cquit.lo \ misc/libcruft_la-d1mach.lo misc/libcruft_la-f77-extern.lo \ misc/libcruft_la-f77-fcn.lo misc/libcruft_la-i1mach.lo \ misc/libcruft_la-lo-error.lo misc/libcruft_la-quit.lo \ --- 487,494 ---- lapack-xtra/libcruft_la-xslange.lo \ lapack-xtra/libcruft_la-xzlange.lo \ lapack-xtra/libcruft_la-zrsf2csf.lo \ ! lapack-xtra/libcruft_la-crsf2csf.lo \ ! misc/libcruft_la-blaswrap.lo misc/libcruft_la-cquit.lo \ misc/libcruft_la-d1mach.lo misc/libcruft_la-f77-extern.lo \ misc/libcruft_la-f77-fcn.lo misc/libcruft_la-i1mach.lo \ misc/libcruft_la-lo-error.lo misc/libcruft_la-quit.lo \ *************** *** 634,640 **** AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ - ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ --- 641,646 ---- *************** *** 786,791 **** --- 792,799 ---- GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ + GNULIB_FGETC = @GNULIB_FGETC@ + GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ *************** *** 795,803 **** --- 803,813 ---- GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ + GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPL = @GNULIB_FREXPL@ + GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ *************** *** 807,812 **** --- 817,824 ---- GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ + GNULIB_GETC = @GNULIB_GETC@ + GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ *************** *** 819,836 **** --- 831,852 ---- GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ + GNULIB_GETS = @GNULIB_GETS@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ + GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ + GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ + GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ *************** *** 861,866 **** --- 877,883 ---- GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ + GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ *************** *** 877,882 **** --- 894,900 ---- GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ + GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ *************** *** 896,901 **** --- 914,920 ---- GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ + GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ *************** *** 911,916 **** --- 930,936 ---- GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ + GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ *************** *** 928,933 **** --- 948,954 ---- GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ + GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ *************** *** 957,967 **** --- 978,990 ---- GNULIB_TIMES = @GNULIB_TIMES@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ + GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ + GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ *************** *** 973,980 **** --- 996,1005 ---- GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ + GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ + GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ *************** *** 1004,1009 **** --- 1029,1037 ---- GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ + GNULIB_WCTOMB = @GNULIB_WCTOMB@ + GNULIB_WCTRANS = @GNULIB_WCTRANS@ + GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ *************** *** 1070,1076 **** HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ - HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ --- 1098,1103 ---- *************** *** 1111,1116 **** --- 1138,1144 ---- HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ + HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ *************** *** 1145,1150 **** --- 1173,1179 ---- HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ + HAVE_PCRE_CONFIG = @HAVE_PCRE_CONFIG@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ *************** *** 1163,1168 **** --- 1192,1198 ---- HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGACTION = @HAVE_SIGACTION@ + HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ *************** *** 1174,1180 **** HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ - HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ --- 1204,1209 ---- *************** *** 1202,1207 **** --- 1231,1237 ---- HAVE_SYS_TIMES_H = @HAVE_SYS_TIMES_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ + HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMES = @HAVE_TIMES@ *************** *** 1242,1248 **** --- 1272,1280 ---- HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ + HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ + HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ *************** *** 1286,1291 **** --- 1318,1324 ---- LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ + LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ *************** *** 1296,1301 **** --- 1329,1335 ---- MAGICK_LDFLAGS = @MAGICK_LDFLAGS@ MAGICK_LIBS = @MAGICK_LIBS@ MAKEINFO = @MAKEINFO@ + MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKOCTFILE_DL_LDFLAGS = @MKOCTFILE_DL_LDFLAGS@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ *************** *** 1309,1321 **** NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ - NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ --- 1343,1355 ---- NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ + NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ *************** *** 1331,1343 **** NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ - NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ --- 1365,1377 ---- NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ + NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ *************** *** 1450,1455 **** --- 1484,1490 ---- REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ + REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ *************** *** 1470,1475 **** --- 1505,1511 ---- REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ + REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ *************** *** 1488,1496 **** --- 1524,1534 ---- REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ + REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ + REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ *************** *** 1524,1529 **** --- 1562,1568 ---- REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ + REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RLD_FLAG = @RLD_FLAG@ *************** *** 1531,1537 **** ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = /bin/sh SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ --- 1570,1576 ---- ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = @SHELL@ SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ *************** *** 1588,1594 **** WARN_CXXFLAGS = @WARN_CXXFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ - WITH_PCRE_CONFIG = @WITH_PCRE_CONFIG@ X11_INCFLAGS = @X11_INCFLAGS@ X11_LIBS = @X11_LIBS@ XMKMF = @XMKMF@ --- 1627,1632 ---- *************** *** 1606,1611 **** --- 1644,1650 ---- abs_top_srcdir = @abs_top_srcdir@ ac_config_files = @ac_config_files@ ac_config_headers = @ac_config_headers@ + ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ *************** *** 1719,1725 **** localverarchlibdir = @localverarchlibdir@ localverfcnfiledir = @localverfcnfiledir@ localveroctfiledir = @localveroctfiledir@ - lt_ECHO = @lt_ECHO@ man1dir = @man1dir@ man1ext = @man1ext@ --- 1758,1763 ---- *************** *** 1891,1898 **** lapack-xtra/xdlange.f lapack-xtra/xilaenv.f \ lapack-xtra/xslamch.f lapack-xtra/xslange.f \ lapack-xtra/xzlange.f lapack-xtra/zrsf2csf.f \ ! lapack-xtra/crsf2csf.f misc/cquit.c misc/d1mach.f \ ! misc/f77-extern.cc misc/f77-fcn.c misc/i1mach.f \ misc/lo-error.c misc/quit.cc misc/r1mach.f odepack/cfode.f \ odepack/dlsode.f odepack/ewset.f odepack/intdy.f \ odepack/prepj.f odepack/solsy.f odepack/stode.f \ --- 1929,1936 ---- lapack-xtra/xdlange.f lapack-xtra/xilaenv.f \ lapack-xtra/xslamch.f lapack-xtra/xslange.f \ lapack-xtra/xzlange.f lapack-xtra/zrsf2csf.f \ ! lapack-xtra/crsf2csf.f misc/blaswrap.c misc/cquit.c \ ! misc/d1mach.f misc/f77-extern.cc misc/f77-fcn.c misc/i1mach.f \ misc/lo-error.c misc/quit.cc misc/r1mach.f odepack/cfode.f \ odepack/dlsode.f odepack/ewset.f odepack/intdy.f \ odepack/prepj.f odepack/solsy.f odepack/stode.f \ *************** *** 1937,1944 **** @CRUFT_DLL_DEFS@ \ $(AM_CPPFLAGS) libcruft_la_LDFLAGS = \ ! -release $(version) $(NO_UNDEFINED_LDFLAG) @XTRA_CRUFT_SH_LDFLAGS@ \ -bindir $(bindir) libcruft_la_LIBADD = \ --- 1975,1991 ---- @CRUFT_DLL_DEFS@ \ $(AM_CPPFLAGS) + + # Increment these as needed and according to the rules in the libtool + # manual: + libcruft_current = 0 + libcruft_revision = 0 + libcruft_age = 0 + libcruft_version_info = $(libcruft_current):$(libcruft_revision):$(libcruft_age) libcruft_la_LDFLAGS = \ ! -version-info $(libcruft_version_info) \ ! $(NO_UNDEFINED_LDFLAG) \ ! @XTRA_CRUFT_SH_LDFLAGS@ \ -bindir $(bindir) libcruft_la_LIBADD = \ *************** *** 1974,1980 **** ranlib/HOWTOGET ranlib/README ranlib/randlib.chs \ ranlib/randlib.fdoc ranlib/tstbot.for ranlib/tstgmn.for \ ranlib/tstmid.for slatec-err/module.mk slatec-fn/module.mk \ ! ChangeLog mkf77def.in FFTPACK_SRC = \ fftpack/cfftb.f \ fftpack/cfftb1.f \ --- 2021,2027 ---- ranlib/HOWTOGET ranlib/README ranlib/randlib.chs \ ranlib/randlib.fdoc ranlib/tstbot.for ranlib/tstgmn.for \ ranlib/tstmid.for slatec-err/module.mk slatec-fn/module.mk \ ! mkf77def.in FFTPACK_SRC = \ fftpack/cfftb.f \ fftpack/cfftb1.f \ *************** *** 2014,2020 **** .SUFFIXES: .SUFFIXES: .c .cc .f .lo .o .obj ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.mk $(srcdir)/amos/module.mk $(srcdir)/arpack/module.mk $(srcdir)/blas-xtra/module.mk $(srcdir)/daspk/module.mk $(srcdir)/dasrt/module.mk $(srcdir)/dassl/module.mk $(srcdir)/fftpack/module.mk $(srcdir)/lapack-xtra/module.mk $(srcdir)/misc/module.mk $(srcdir)/odepack/module.mk $(srcdir)/ordered-qz/module.mk $(srcdir)/quadpack/module.mk $(srcdir)/ranlib/module.mk $(srcdir)/slatec-err/module.mk $(srcdir)/slatec-fn/module.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ --- 2061,2067 ---- .SUFFIXES: .SUFFIXES: .c .cc .f .lo .o .obj ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build-aux/common.mk $(srcdir)/amos/module.mk $(srcdir)/arpack/module.mk $(srcdir)/blas-xtra/module.mk $(srcdir)/daspk/module.mk $(srcdir)/dasrt/module.mk $(srcdir)/dassl/module.mk $(srcdir)/fftpack/module.mk $(srcdir)/lapack-xtra/module.mk $(srcdir)/misc/module.mk $(srcdir)/odepack/module.mk $(srcdir)/ordered-qz/module.mk $(srcdir)/quadpack/module.mk $(srcdir)/ranlib/module.mk $(srcdir)/slatec-err/module.mk $(srcdir)/slatec-fn/module.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ *************** *** 2656,2661 **** --- 2703,2710 ---- misc/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) misc/$(DEPDIR) @: > misc/$(DEPDIR)/$(am__dirstamp) + misc/libcruft_la-blaswrap.lo: misc/$(am__dirstamp) \ + misc/$(DEPDIR)/$(am__dirstamp) misc/libcruft_la-cquit.lo: misc/$(am__dirstamp) \ misc/$(DEPDIR)/$(am__dirstamp) misc/libcruft_la-d1mach.lo: misc/$(am__dirstamp) \ *************** *** 3525,3530 **** --- 3574,3581 ---- -rm -f lapack-xtra/libcruft_la-xzlange.lo -rm -f lapack-xtra/libcruft_la-zrsf2csf.$(OBJEXT) -rm -f lapack-xtra/libcruft_la-zrsf2csf.lo + -rm -f misc/libcruft_la-blaswrap.$(OBJEXT) + -rm -f misc/libcruft_la-blaswrap.lo -rm -f misc/libcruft_la-cquit.$(OBJEXT) -rm -f misc/libcruft_la-cquit.lo -rm -f misc/libcruft_la-d1mach.$(OBJEXT) *************** *** 3845,3850 **** --- 3896,3902 ---- distclean-compile: -rm -f *.tab.c + @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/libcruft_la-blaswrap.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/libcruft_la-cquit.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/libcruft_la-f77-extern.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/libcruft_la-f77-fcn.Plo@am__quote@ *************** *** 3875,3880 **** --- 3927,3939 ---- @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + misc/libcruft_la-blaswrap.lo: misc/blaswrap.c + @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcruft_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT misc/libcruft_la-blaswrap.lo -MD -MP -MF misc/$(DEPDIR)/libcruft_la-blaswrap.Tpo -c -o misc/libcruft_la-blaswrap.lo `test -f 'misc/blaswrap.c' || echo '$(srcdir)/'`misc/blaswrap.c + @am__fastdepCC_TRUE@ $(am__mv) misc/$(DEPDIR)/libcruft_la-blaswrap.Tpo misc/$(DEPDIR)/libcruft_la-blaswrap.Plo + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='misc/blaswrap.c' object='misc/libcruft_la-blaswrap.lo' libtool=yes @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcruft_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o misc/libcruft_la-blaswrap.lo `test -f 'misc/blaswrap.c' || echo '$(srcdir)/'`misc/blaswrap.c + misc/libcruft_la-cquit.lo: misc/cquit.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcruft_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT misc/libcruft_la-cquit.lo -MD -MP -MF misc/$(DEPDIR)/libcruft_la-cquit.Tpo -c -o misc/libcruft_la-cquit.lo `test -f 'misc/cquit.c' || echo '$(srcdir)/'`misc/cquit.c @am__fastdepCC_TRUE@ $(am__mv) misc/$(DEPDIR)/libcruft_la-cquit.Tpo misc/$(DEPDIR)/libcruft_la-cquit.Plo *************** *** 5350,5356 **** define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ --- 5409,5415 ---- define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/build-aux/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ *************** *** 5574,5580 **** endef define do_script_install ! $(top_srcdir)/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ --- 5633,5639 ---- endef define do_script_install ! $(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ diff -cNr octave-3.4.0/libcruft/misc/blaswrap.c octave-3.4.1/libcruft/misc/blaswrap.c *** octave-3.4.0/libcruft/misc/blaswrap.c 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libcruft/misc/blaswrap.c 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,290 ---- + /* + + Copyright (C) 2011 Jarno Rajahalme + + This file is part of Octave. + + Octave 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. + + Octave 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 Octave; see the file COPYING. If not, see + . + + */ + + /* + + Wrapper for Apple libBLAS.dylib and libLAPACK.dylib + + At least on the versions of OSX 10.6 so far (up and including 10.6.6) + these libraries are incompatible with 64 bit builds, as some functions + in libBLAS.dylib are not conforming to F2C calling conventions, as + they should. This breaks them in 64-bit builds on the x86_64 + architecture. + + Newer gfortran compoilers no longer default to the F2C calling + convention. These wrappers map the F2C conformant functions in + libBLAS and libLAPACK to the native gfortran calling convention, so + that the libraries can be used with software built for x86_64 + architecture. + + */ + + #ifdef HAVE_CONFIG_H + #include /* USE_BLASWRAP ? */ + #endif + + #ifdef USE_BLASWRAP + + /* + * vecLib is an Apple framework (collection of libraries) containing + * libBLAS and libLAPACK. The fortran stubs in these libraries are + * (mostly, but not completely) in the F2C calling convention. + * We access the libraries via the vecLib framework to make sure we + * get the Apple versions, rather than some other blas/lapack with the + * same name. + */ + #ifndef VECLIB_FILE + #define VECLIB_FILE "/System/Library/Frameworks/vecLib.framework/Versions/A/vecLib" + #endif + + /* + * Since this is a wrapper for fortran functions, we do not have prototypes for them. + */ + #pragma GCC diagnostic ignored "-Wmissing-prototypes" + + #include + #include + + /* + * Apple LAPACK follows F2C calling convention, + * Convert to normal gfortran calling convention + */ + + static void (*f2c_blas_func[])(void); /* forward declaration for the wrapper */ + static void (*f2c_lapack_func[])(void); /* forward declaration for the wrapper */ + + /* + * LAPACK Wrappers, only need to convert the return value from double to float + */ + + typedef double (*F2C_CALL_0)(void); + typedef double (*F2C_CALL_1)(void *a1); + typedef double (*F2C_CALL_2)(void *a1, void *a2); + typedef double (*F2C_CALL_3)(void *a1, void *a2, void *a3); + typedef double (*F2C_CALL_4)(void *a1, void *a2, void *a3, void *a4); + typedef double (*F2C_CALL_5)(void *a1, void *a2, void *a3, void *a4, void *a5); + typedef double (*F2C_CALL_6)(void *a1, void *a2, void *a3, void *a4, void *a5, void *a6); + typedef double (*F2C_CALL_7)(void *a1, void *a2, void *a3, void *a4, void *a5, void *a6, void *a7); + typedef double (*F2C_CALL_8)(void *a1, void *a2, void *a3, void *a4, void *a5, void *a6, void *a7, void *a8); + + #define F2C_LAPACK_CALL_8(name) \ + float name (void *a1, void *a2, void *a3, void *a4, void *a5, void *a6, void *a7, void *a8) \ + { \ + return ((F2C_CALL_8)f2c_lapack_func[f2c_ ## name]) (a1, a2, a3, a4, a5, a6, a7, a8); \ + } + + #define F2C_LAPACK_CALL_7(name) \ + float name (void *a1, void *a2, void *a3, void *a4, void *a5, void *a6, void *a7) \ + { \ + return ((F2C_CALL_7)f2c_lapack_func[f2c_ ## name]) (a1, a2, a3, a4, a5, a6, a7); \ + } + + #define F2C_LAPACK_CALL_6(name) \ + float name (void *a1, void *a2, void *a3, void *a4, void *a5, void *a6) \ + { \ + return ((F2C_CALL_6)f2c_lapack_func[f2c_ ## name]) (a1, a2, a3, a4, a5, a6); \ + } + + #define F2C_LAPACK_CALL_5(name) \ + float name (void *a1, void *a2, void *a3, void *a4, void *a5) \ + { \ + return ((F2C_CALL_5)f2c_lapack_func[f2c_ ## name]) (a1, a2, a3, a4, a5); \ + } + + #define F2C_LAPACK_CALL_4(name) \ + float name (void *a1, void *a2, void *a3, void *a4) \ + { \ + return ((F2C_CALL_4)f2c_lapack_func[f2c_ ## name]) (a1, a2, a3, a4); \ + } + + #define F2C_LAPACK_CALL_3(name) \ + float name (void *a1, void *a2, void *a3) \ + { \ + return ((F2C_CALL_3)f2c_lapack_func[f2c_ ## name]) (a1, a2, a3); \ + } + + #define F2C_LAPACK_CALL_2(name) \ + float name (void *a1, void *a2) \ + { \ + return ((F2C_CALL_2)f2c_lapack_func[f2c_ ## name]) (a1, a2); \ + } + + #define F2C_LAPACK_CALL_1(name) \ + float name (void *a1) \ + { \ + return ((F2C_CALL_1)f2c_lapack_func[f2c_ ## name]) (a1); \ + } + + #define F2C_LAPACK_CALL_0(name) \ + float name (void) \ + { \ + return ((F2C_CALL_0)f2c_lapack_func[f2c_ ## name]) (); \ + } + + #define F2C_LAPACK_CALL_NONE(name) + + #define F2C_LAPACK_CALL(name, args) F2C_LAPACK_CALL_ ## args (name) + + #define ENUM_ITEM(name, args) \ + f2c_ ## name, + + #define NAME_TO_STRING_CASE(name, args) \ + case f2c_ ## name: return #name; + + #define DEFINE_LAPACK_ENUM(name, list) \ + typedef enum { \ + list(ENUM_ITEM) \ + } name; \ + static const char* \ + f2c_ ## name ## _name (name n) { \ + switch (n) { \ + list(NAME_TO_STRING_CASE) \ + default: return ""; \ + } \ + } \ + list(F2C_LAPACK_CALL) + + #define DEFINE_BLAS_ENUM(name, list) \ + typedef enum { \ + list(ENUM_ITEM) \ + } name; \ + static const char* \ + f2c_ ## name ## _name(name n) { \ + switch (n) { \ + list(NAME_TO_STRING_CASE) \ + default: return ""; \ + } \ + } + + /* + * Lapack functions (with argument count) that need the return value + * converted from double to float + */ + #define LAPACK_LIST(_) \ + _(clangb_,7) \ + _(clange_,6) \ + _(clangt_,5) \ + _(clanhb_,7) \ + _(clanhe_,6) \ + _(clanhp_,5) \ + _(clanhs_,5) \ + _(clanht_,4) \ + _(clansb_,7) \ + _(clansp_,5) \ + _(clansy_,6) \ + _(clantb_,8) \ + _(clantp_,6) \ + _(clantr_,8) \ + _(scsum1_,3) \ + _(second_,0) \ + _(slamc3_,2) \ + _(slamch_,1) \ + _(slangb_,7) \ + _(slange_,6) \ + _(slangt_,5) \ + _(slanhs_,5) \ + _(slansb_,7) \ + _(slansp_,5) \ + _(slanst_,4) \ + _(slansy_,6) \ + _(slantb_,8) \ + _(slantp_,6) \ + _(slantr_,8) \ + _(slapy2_,2) \ + _(slapy3_,3) \ + _(LAPACK_COUNT,NONE) + + /* + * These need a bit more complex wrappers + */ + #define BLAS_LIST(_) \ + _(cdotu_,6) \ + _(zdotu_,6) \ + _(cdotc_,6) \ + _(zdotc_,6) \ + _(BLAS_COUNT,NONE) + + DEFINE_BLAS_ENUM(blas, BLAS_LIST) + + DEFINE_LAPACK_ENUM(lapack, LAPACK_LIST) + + /* + * BLAS wrappers, F2C convention passes retuned complex as an extra first + * argument + */ + typedef struct { float r, i; } complex; + typedef struct { double r, i; } doublecomplex; + + typedef void (*F2C_BLAS_CALL_6)(void *c, void *a1, void *a2, void *a3, void *a4, void *a5); + + #define F2C_BLAS_CALL(type, name) \ + type name (void *a1, void *a2, void *a3, void *a4, void *a5) \ + { \ + type cplx; \ + ((F2C_BLAS_CALL_6)f2c_blas_func[f2c_ ## name]) (&cplx, a1, a2, a3, a4, a5); \ + return cplx; \ + } + + F2C_BLAS_CALL(complex, cdotu_) + F2C_BLAS_CALL(doublecomplex, zdotu_) + F2C_BLAS_CALL(complex, cdotc_) + F2C_BLAS_CALL(doublecomplex, zdotc_) + + + /* + * Function pointer arrays, indexed by the enums + */ + static void (*f2c_blas_func[f2c_BLAS_COUNT])(void) = { 0 }; + static void (*f2c_lapack_func[f2c_LAPACK_COUNT])(void) = { 0 }; + + /* + * Initialization: This is called before main (). + * Get the function pointers to the wrapped functions in Apple vecLib + */ + + static void * apple_vecLib = 0; + + __attribute__((constructor)) + static void initVecLibWrappers (void) + { + apple_vecLib = dlopen (VECLIB_FILE, RTLD_LOCAL | RTLD_NOLOAD | RTLD_FIRST); + if (0 == apple_vecLib) + abort (); + + int i; + for (i = 0; i < f2c_LAPACK_COUNT; i++) + if (0 == (f2c_lapack_func[i] = dlsym(apple_vecLib, f2c_lapack_name(i)))) + abort (); + for (i = 0; i < f2c_BLAS_COUNT; i++) + if (0 == (f2c_blas_func[i] = dlsym(apple_vecLib, f2c_blas_name(i)))) + abort (); + } + + __attribute__((destructor)) + static void finiVecLibWrappers (void) + { + if (apple_vecLib) + dlclose (apple_vecLib); + apple_vecLib = 0; + } + + #endif /* USE_BLASWRAP */ diff -cNr octave-3.4.0/libcruft/misc/module.mk octave-3.4.1/libcruft/misc/module.mk *** octave-3.4.0/libcruft/misc/module.mk 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/libcruft/misc/module.mk 2011-06-15 11:11:27.000000000 -0400 *************** *** 3,8 **** --- 3,9 ---- misc/d1mach-tst.for libcruft_la_SOURCES += \ + misc/blaswrap.c \ misc/cquit.c \ misc/d1mach.f \ misc/f77-extern.cc \ diff -cNr octave-3.4.0/libgnu/alignof.h octave-3.4.1/libgnu/alignof.h *** octave-3.4.0/libgnu/alignof.h 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/libgnu/alignof.h 2011-06-15 11:31:05.000000000 -0400 *************** *** 33,39 **** # define alignof_slot(type) offsetof (struct { char __slot1; type __slot2; }, __slot2) #endif ! /* Determine the good alignment of a object of the given type at compile time. Note that this is not necessarily the same as alignof_slot(type). For example, with GNU C on x86 platforms: alignof_type(double) = 8, but - when -malign-double is not specified: alignof_slot(double) = 4, --- 33,39 ---- # define alignof_slot(type) offsetof (struct { char __slot1; type __slot2; }, __slot2) #endif ! /* Determine the good alignment of an object of the given type at compile time. Note that this is not necessarily the same as alignof_slot(type). For example, with GNU C on x86 platforms: alignof_type(double) = 8, but - when -malign-double is not specified: alignof_slot(double) = 4, diff -cNr octave-3.4.0/libgnu/at-func.c octave-3.4.1/libgnu/at-func.c *** octave-3.4.0/libgnu/at-func.c 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/libgnu/at-func.c 2011-06-15 11:31:05.000000000 -0400 *************** *** 18,24 **** /* written by Jim Meyering */ ! #include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */ #include "openat.h" #include "openat-priv.h" #include "save-cwd.h" --- 18,24 ---- /* written by Jim Meyering */ ! #include "dosname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */ #include "openat.h" #include "openat-priv.h" #include "save-cwd.h" diff -cNr octave-3.4.0/libgnu/canonicalize-lgpl.c octave-3.4.1/libgnu/canonicalize-lgpl.c *** octave-3.4.0/libgnu/canonicalize-lgpl.c 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/libgnu/canonicalize-lgpl.c 2011-06-15 11:31:05.000000000 -0400 *************** *** 18,23 **** --- 18,24 ---- along with this program. If not, see . */ #ifndef _LIBC + # define _GL_USE_STDLIB_ALLOC 1 # include #endif *************** *** 70,77 **** # endif # define __readlink readlink # define __set_errno(e) errno = (e) - /* Use the system functions, not the gnulib overrides in this file. */ - # undef malloc # ifndef MAXSYMLINKS # ifdef SYMLOOP_MAX # define MAXSYMLINKS SYMLOOP_MAX --- 71,76 ---- diff -cNr octave-3.4.0/libgnu/close.c octave-3.4.1/libgnu/close.c *** octave-3.4.0/libgnu/close.c 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/libgnu/close.c 2011-06-15 11:31:05.000000000 -0400 *************** *** 21,27 **** /* Specification. */ #include ! #include "close-hook.h" /* Override close() to call into other gnulib modules. */ --- 21,27 ---- /* Specification. */ #include ! #include "fd-hook.h" /* Override close() to call into other gnulib modules. */ *************** *** 30,36 **** #undef close { #if WINDOWS_SOCKETS ! int retval = execute_all_close_hooks (fd); #else int retval = close (fd); #endif --- 30,36 ---- #undef close { #if WINDOWS_SOCKETS ! int retval = execute_all_close_hooks (close, fd); #else int retval = close (fd); #endif diff -cNr octave-3.4.0/libgnu/close-hook.c octave-3.4.1/libgnu/close-hook.c *** octave-3.4.0/libgnu/close-hook.c 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/libgnu/close-hook.c 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,93 **** - /* -*- buffer-read-only: t -*- vi: set ro: */ - /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ - /* Hook for making the close() function extensible. - Copyright (C) 2009-2011 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - 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 - Lesser 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 . */ - - #include - - /* Specification. */ - #include "close-hook.h" - - #include - #include - - #undef close - - - /* Currently, this entire code is only needed for the handling of sockets - on native Windows platforms. */ - #if WINDOWS_SOCKETS - - /* The first and last link in the doubly linked list. - Initially the list is empty. */ - static struct close_hook anchor = { &anchor, &anchor, NULL }; - - int - execute_close_hooks (int fd, const struct close_hook *remaining_list) - { - if (remaining_list == &anchor) - /* End of list reached. */ - return close (fd); - else - return remaining_list->private_fn (fd, remaining_list->private_next); - } - - int - execute_all_close_hooks (int fd) - { - return execute_close_hooks (fd, anchor.private_next); - } - - void - register_close_hook (close_hook_fn hook, struct close_hook *link) - { - if (link->private_next == NULL && link->private_prev == NULL) - { - /* Add the link to the doubly linked list. */ - link->private_next = anchor.private_next; - link->private_prev = &anchor; - link->private_fn = hook; - anchor.private_next->private_prev = link; - anchor.private_next = link; - } - else - { - /* The link is already in use. */ - if (link->private_fn != hook) - abort (); - } - } - - void - unregister_close_hook (struct close_hook *link) - { - struct close_hook *next = link->private_next; - struct close_hook *prev = link->private_prev; - - if (next != NULL && prev != NULL) - { - /* The link is in use. Remove it from the doubly linked list. */ - prev->private_next = next; - next->private_prev = prev; - /* Clear the link, to mark it unused. */ - link->private_next = NULL; - link->private_prev = NULL; - link->private_fn = NULL; - } - } - - #endif --- 0 ---- diff -cNr octave-3.4.0/libgnu/close-hook.h octave-3.4.1/libgnu/close-hook.h *** octave-3.4.0/libgnu/close-hook.h 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/libgnu/close-hook.h 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,74 **** - /* -*- buffer-read-only: t -*- vi: set ro: */ - /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ - /* Hook for making the close() function extensible. - Copyright (C) 2009-2011 Free Software Foundation, Inc. - - 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 - Lesser 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 . */ - - - #ifndef CLOSE_HOOK_H - #define CLOSE_HOOK_H - - #ifdef __cplusplus - extern "C" { - #endif - - - /* Currently, this entire code is only needed for the handling of sockets - on native Windows platforms. */ - #if WINDOWS_SOCKETS - - - /* An element of the list of close hooks. - The fields of this structure are considered private. */ - struct close_hook - { - /* Doubly linked list. */ - struct close_hook *private_next; - struct close_hook *private_prev; - /* Function that treats the types of FD that it knows about and calls - execute_close_hooks (FD, REMAINING_LIST) as a fallback. */ - int (*private_fn) (int fd, const struct close_hook *remaining_list); - }; - - /* This type of function closes FD, applying special knowledge for the FD - types it knows about, and calls execute_close_hooks (FD, REMAINING_LIST) - for the other FD types. */ - typedef int (*close_hook_fn) (int fd, const struct close_hook *remaining_list); - - /* Execute the close hooks in REMAINING_LIST. - Return 0 or -1, like close() would do. */ - extern int execute_close_hooks (int fd, const struct close_hook *remaining_list); - - /* Execute all close hooks. - Return 0 or -1, like close() would do. */ - extern int execute_all_close_hooks (int fd); - - /* Add a function to the list of close hooks. - The LINK variable points to a piece of memory which is guaranteed to be - accessible until the corresponding call to unregister_close_hook. */ - extern void register_close_hook (close_hook_fn hook, struct close_hook *link); - - /* Removes a function from the list of close hooks. */ - extern void unregister_close_hook (struct close_hook *link); - - - #endif - - - #ifdef __cplusplus - } - #endif - - #endif /* CLOSE_HOOK_H */ --- 0 ---- diff -cNr octave-3.4.0/libgnu/dirent.in.h octave-3.4.1/libgnu/dirent.in.h *** octave-3.4.0/libgnu/dirent.in.h 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/libgnu/dirent.in.h 2011-06-15 11:31:05.000000000 -0400 *************** *** 16,22 **** You should have received a copy of the GNU General Public License along with this program. If not, see . */ ! #ifndef _GL_DIRENT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ --- 16,22 ---- You should have received a copy of the GNU General Public License along with this program. If not, see . */ ! #ifndef _@GUARD_PREFIX@_DIRENT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ *************** *** 26,33 **** /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_DIRENT_H@ ! #ifndef _GL_DIRENT_H ! #define _GL_DIRENT_H /* Get ino_t. Needed on some systems, including glibc 2.8. */ #include --- 26,33 ---- /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_DIRENT_H@ ! #ifndef _@GUARD_PREFIX@_DIRENT_H ! #define _@GUARD_PREFIX@_DIRENT_H /* Get ino_t. Needed on some systems, including glibc 2.8. */ #include *************** *** 170,174 **** #endif ! #endif /* _GL_DIRENT_H */ ! #endif /* _GL_DIRENT_H */ --- 170,174 ---- #endif ! #endif /* _@GUARD_PREFIX@_DIRENT_H */ ! #endif /* _@GUARD_PREFIX@_DIRENT_H */ diff -cNr octave-3.4.0/libgnu/dirname.h octave-3.4.1/libgnu/dirname.h *** octave-3.4.0/libgnu/dirname.h 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/libgnu/dirname.h 2011-06-15 11:31:05.000000000 -0400 *************** *** 23,66 **** # include # include # ifndef DIRECTORY_SEPARATOR # define DIRECTORY_SEPARATOR '/' # endif - # ifndef ISSLASH - # define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) - # endif - - # ifndef FILE_SYSTEM_PREFIX_LEN - # if FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX - /* This internal macro assumes ASCII, but all hosts that support drive - letters use ASCII. */ - # define _IS_DRIVE_LETTER(c) (((unsigned int) (c) | ('a' - 'A')) - 'a' \ - <= 'z' - 'a') - # define FILE_SYSTEM_PREFIX_LEN(Filename) \ - (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':' ? 2 : 0) - # else - # define FILE_SYSTEM_PREFIX_LEN(Filename) 0 - # endif - # endif - - # ifndef FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE - # define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 - # endif - # ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT # define DOUBLE_SLASH_IS_DISTINCT_ROOT 0 # endif - # if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE - # define IS_ABSOLUTE_FILE_NAME(F) ISSLASH ((F)[FILE_SYSTEM_PREFIX_LEN (F)]) - # else - # define IS_ABSOLUTE_FILE_NAME(F) \ - (ISSLASH ((F)[0]) || 0 < FILE_SYSTEM_PREFIX_LEN (F)) - # endif - # define IS_RELATIVE_FILE_NAME(F) (! IS_ABSOLUTE_FILE_NAME (F)) - # if GNULIB_DIRNAME char *base_name (char const *file); char *dir_name (char const *file); --- 23,38 ---- # include # include + # include "dosname.h" # ifndef DIRECTORY_SEPARATOR # define DIRECTORY_SEPARATOR '/' # endif # ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT # define DOUBLE_SLASH_IS_DISTINCT_ROOT 0 # endif # if GNULIB_DIRNAME char *base_name (char const *file); char *dir_name (char const *file); diff -cNr octave-3.4.0/libgnu/dosname.h octave-3.4.1/libgnu/dosname.h *** octave-3.4.0/libgnu/dosname.h 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/dosname.h 2011-06-15 11:31:05.000000000 -0400 *************** *** 0 **** --- 1,55 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* File names on MS-DOS/Windows systems. + + Copyright (C) 2000-2001, 2004-2006, 2009-2011 Free Software Foundation, Inc. + + 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 . + + From Paul Eggert and Jim Meyering. */ + + #ifndef _DOSNAME_H + #define _DOSNAME_H + + #if (defined _WIN32 || defined __WIN32__ || \ + defined __MSDOS__ || defined __CYGWIN__ || \ + defined __EMX__ || defined __DJGPP__) + /* This internal macro assumes ASCII, but all hosts that support drive + letters use ASCII. */ + # define _IS_DRIVE_LETTER(C) (((unsigned int) (C) | ('a' - 'A')) - 'a' \ + <= 'z' - 'a') + # define FILE_SYSTEM_PREFIX_LEN(Filename) \ + (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':' ? 2 : 0) + # ifndef __CYGWIN__ + # define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 1 + # endif + # define ISSLASH(C) ((C) == '/' || (C) == '\\') + #else + # define FILE_SYSTEM_PREFIX_LEN(Filename) 0 + # define ISSLASH(C) ((C) == '/') + #endif + + #ifndef FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE + # define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 + #endif + + #if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE + # define IS_ABSOLUTE_FILE_NAME(F) ISSLASH ((F)[FILE_SYSTEM_PREFIX_LEN (F)]) + # else + # define IS_ABSOLUTE_FILE_NAME(F) \ + (ISSLASH ((F)[0]) || FILE_SYSTEM_PREFIX_LEN (F) != 0) + #endif + #define IS_RELATIVE_FILE_NAME(F) (! IS_ABSOLUTE_FILE_NAME (F)) + + #endif /* DOSNAME_H_ */ diff -cNr octave-3.4.0/libgnu/errno.in.h octave-3.4.1/libgnu/errno.in.h *** octave-3.4.0/libgnu/errno.in.h 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/libgnu/errno.in.h 2011-06-15 11:31:06.000000000 -0400 *************** *** 18,24 **** along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ ! #ifndef _GL_ERRNO_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ --- 18,24 ---- along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ ! #ifndef _@GUARD_PREFIX@_ERRNO_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ *************** *** 28,35 **** /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_ERRNO_H@ ! #ifndef _GL_ERRNO_H ! #define _GL_ERRNO_H /* On native Windows platforms, many macros are not defined. */ --- 28,35 ---- /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_ERRNO_H@ ! #ifndef _@GUARD_PREFIX@_ERRNO_H ! #define _@GUARD_PREFIX@_ERRNO_H /* On native Windows platforms, many macros are not defined. */ *************** *** 165,169 **** # endif ! #endif /* _GL_ERRNO_H */ ! #endif /* _GL_ERRNO_H */ --- 165,169 ---- # endif ! #endif /* _@GUARD_PREFIX@_ERRNO_H */ ! #endif /* _@GUARD_PREFIX@_ERRNO_H */ diff -cNr octave-3.4.0/libgnu/error.c octave-3.4.1/libgnu/error.c *** octave-3.4.0/libgnu/error.c 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/libgnu/error.c 2011-06-15 11:31:06.000000000 -0400 *************** *** 99,109 **** /* The gnulib override of fcntl is not needed in this file. */ # undef fcntl ! # if !HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P # ifndef HAVE_DECL_STRERROR_R "this configure-time declaration test was not run" # endif char *strerror_r (); # endif /* The calling program should define program_name and set it to the --- 99,113 ---- /* The gnulib override of fcntl is not needed in this file. */ # undef fcntl ! # if !HAVE_DECL_STRERROR_R # ifndef HAVE_DECL_STRERROR_R "this configure-time declaration test was not run" # endif + # if STRERROR_R_CHAR_P char *strerror_r (); + # else + int strerror_r (); + # endif # endif /* The calling program should define program_name and set it to the diff -cNr octave-3.4.0/libgnu/error.h octave-3.4.1/libgnu/error.h *** octave-3.4.0/libgnu/error.h 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/libgnu/error.h 2011-06-15 11:31:06.000000000 -0400 *************** *** 21,36 **** #ifndef _ERROR_H #define _ERROR_H 1 - #ifndef __attribute__ /* The __attribute__ feature is available in gcc versions 2.5 and later. The __-protected variants of the attributes 'format' and 'printf' are accepted by gcc versions 2.6.4 (effectively 2.7) and later. ! We enable __attribute__ only if these are supported too, because gnulib and libintl do '#define printf __printf__' when they override the 'printf' function. */ ! # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) ! # define __attribute__(Spec) /* empty */ ! # endif #endif #ifdef __cplusplus --- 21,36 ---- #ifndef _ERROR_H #define _ERROR_H 1 /* The __attribute__ feature is available in gcc versions 2.5 and later. The __-protected variants of the attributes 'format' and 'printf' are accepted by gcc versions 2.6.4 (effectively 2.7) and later. ! We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because gnulib and libintl do '#define printf __printf__' when they override the 'printf' function. */ ! #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) ! # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) ! #else ! # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ #endif #ifdef __cplusplus *************** *** 42,52 **** If STATUS is nonzero, terminate the program with `exit (STATUS)'. */ extern void error (int __status, int __errnum, const char *__format, ...) ! __attribute__ ((__format__ (__printf__, 3, 4))); extern void error_at_line (int __status, int __errnum, const char *__fname, unsigned int __lineno, const char *__format, ...) ! __attribute__ ((__format__ (__printf__, 5, 6))); /* If NULL, error will flush stdout, then print on stderr the program name, a colon and a space. Otherwise, error will call this --- 42,52 ---- If STATUS is nonzero, terminate the program with `exit (STATUS)'. */ extern void error (int __status, int __errnum, const char *__format, ...) ! _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 4)); extern void error_at_line (int __status, int __errnum, const char *__fname, unsigned int __lineno, const char *__format, ...) ! _GL_ATTRIBUTE_FORMAT ((__printf__, 5, 6)); /* If NULL, error will flush stdout, then print on stderr the program name, a colon and a space. Otherwise, error will call this diff -cNr octave-3.4.0/libgnu/fchdir.c octave-3.4.1/libgnu/fchdir.c *** octave-3.4.0/libgnu/fchdir.c 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/libgnu/fchdir.c 2011-06-15 11:31:06.000000000 -0400 *************** *** 31,49 **** #include #include #ifndef REPLACE_OPEN_DIRECTORY # define REPLACE_OPEN_DIRECTORY 0 #endif - #ifndef HAVE_CANONICALIZE_FILE_NAME - # if GNULIB_CANONICALIZE || GNULIB_CANONICALIZE_LGPL - # define HAVE_CANONICALIZE_FILE_NAME 1 - # else - # define HAVE_CANONICALIZE_FILE_NAME 0 - # define canonicalize_file_name(name) NULL - # endif - #endif - /* This replacement assumes that a directory is not renamed while opened through a file descriptor. --- 31,43 ---- #include #include + #include "dosname.h" + #include "filenamecat.h" + #ifndef REPLACE_OPEN_DIRECTORY # define REPLACE_OPEN_DIRECTORY 0 #endif /* This replacement assumes that a directory is not renamed while opened through a file descriptor. *************** *** 92,127 **** return true; } ! /* Return the canonical name of DIR in malloc'd storage. */ static char * get_name (char const *dir) { char *result; ! if (REPLACE_OPEN_DIRECTORY || !HAVE_CANONICALIZE_FILE_NAME) ! { ! /* The function canonicalize_file_name has not yet been ported ! to mingw, with all its drive letter and backslash quirks. ! Fortunately, getcwd is reliable in this case, but we ensure ! we can get back to where we started before using it. Treat ! "." as a special case, as it is frequently encountered. */ ! char *cwd = getcwd (NULL, 0); ! int saved_errno; ! if (dir[0] == '.' && dir[1] == '\0') ! return cwd; ! if (chdir (cwd)) ! return NULL; ! result = chdir (dir) ? NULL : getcwd (NULL, 0); ! saved_errno = errno; ! if (chdir (cwd)) ! abort (); ! free (cwd); ! errno = saved_errno; ! } ! else ! { ! /* Avoid changing the directory. */ ! result = canonicalize_file_name (dir); ! } return result; } --- 86,111 ---- return true; } ! /* Return an absolute name of DIR in malloc'd storage. */ static char * get_name (char const *dir) { + char *cwd; char *result; ! int saved_errno; ! ! if (IS_ABSOLUTE_FILE_NAME (dir)) ! return strdup (dir); ! ! /* We often encounter "."; treat it as a special case. */ ! cwd = getcwd (NULL, 0); ! if (!cwd || (dir[0] == '.' && dir[1] == '\0')) ! return cwd; ! ! result = mfile_name_concat (cwd, dir, NULL); ! saved_errno = errno; ! free (cwd); ! errno = saved_errno; return result; } diff -cNr octave-3.4.0/libgnu/fchownat.c octave-3.4.1/libgnu/fchownat.c *** octave-3.4.0/libgnu/fchownat.c 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/libgnu/fchownat.c 2011-06-15 11:31:06.000000000 -0400 *************** *** 68,82 **** static int local_lchownat (int fd, char const *file, uid_t owner, gid_t group); ! # define AT_FUNC_NAME local_lchownat ! # define AT_FUNC_F1 lchown ! # define AT_FUNC_POST_FILE_PARAM_DECLS , uid_t owner, gid_t group ! # define AT_FUNC_POST_FILE_ARGS , owner, group ! # include "at-func.c" ! # undef AT_FUNC_NAME ! # undef AT_FUNC_F1 ! # undef AT_FUNC_POST_FILE_PARAM_DECLS ! # undef AT_FUNC_POST_FILE_ARGS # endif --- 68,82 ---- static int local_lchownat (int fd, char const *file, uid_t owner, gid_t group); ! # define AT_FUNC_NAME local_lchownat ! # define AT_FUNC_F1 lchown ! # define AT_FUNC_POST_FILE_PARAM_DECLS , uid_t owner, gid_t group ! # define AT_FUNC_POST_FILE_ARGS , owner, group ! # include "at-func.c" ! # undef AT_FUNC_NAME ! # undef AT_FUNC_F1 ! # undef AT_FUNC_POST_FILE_PARAM_DECLS ! # undef AT_FUNC_POST_FILE_ARGS # endif diff -cNr octave-3.4.0/libgnu/fclose.c octave-3.4.1/libgnu/fclose.c *** octave-3.4.0/libgnu/fclose.c 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/libgnu/fclose.c 2011-06-15 11:31:06.000000000 -0400 *************** *** 24,49 **** #include #include ! /* Override fclose() to call the overridden close(). */ int rpl_fclose (FILE *fp) #undef fclose { int saved_errno = 0; ! if (fflush (fp)) saved_errno = errno; ! if (close (fileno (fp)) < 0 && saved_errno == 0) saved_errno = errno; ! fclose (fp); /* will fail with errno = EBADF */ if (saved_errno != 0) { errno = saved_errno; ! return EOF; } ! return 0; } --- 24,86 ---- #include #include ! #include "freading.h" ! ! /* Override fclose() to call the overridden fflush() or close(). */ int rpl_fclose (FILE *fp) #undef fclose { int saved_errno = 0; + int fd; + int result = 0; ! /* Don't change behavior on memstreams. */ ! fd = fileno (fp); ! if (fd < 0) ! return fclose (fp); ! ! /* We only need to flush the file if it is not reading or if it is ! seekable. This only guarantees the file position of input files ! if the fflush module is also in use. */ ! if ((!freading (fp) || lseek (fileno (fp), 0, SEEK_CUR) != -1) ! && fflush (fp)) saved_errno = errno; ! /* fclose() calls close(), but we need to also invoke all hooks that our ! overridden close() function invokes. See lib/close.c. */ ! #if WINDOWS_SOCKETS ! /* Call the overridden close(), then the original fclose(). ! Note about multithread-safety: There is a race condition where some ! other thread could open fd between our close and fclose. */ ! if (close (fd) < 0 && saved_errno == 0) saved_errno = errno; ! fclose (fp); /* will fail with errno = EBADF, if we did not lose a race */ ! ! #else /* !WINDOWS_SOCKETS */ ! /* Call fclose() and invoke all hooks of the overridden close(). */ ! ! # if REPLACE_FCHDIR ! /* Note about multithread-safety: There is a race condition here as well. ! Some other thread could open fd between our calls to fclose and ! _gl_unregister_fd. */ ! result = fclose (fp); ! if (result == 0) ! _gl_unregister_fd (fd); ! # else ! /* No race condition here. */ ! result = fclose (fp); ! # endif ! ! #endif /* !WINDOWS_SOCKETS */ if (saved_errno != 0) { errno = saved_errno; ! result = EOF; } ! ! return result; } diff -cNr octave-3.4.0/libgnu/fcntl.in.h octave-3.4.1/libgnu/fcntl.in.h *** octave-3.4.0/libgnu/fcntl.in.h 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/libgnu/fcntl.in.h 2011-06-15 11:31:06.000000000 -0400 *************** *** 42,48 **** #else /* Normal invocation convention. */ ! #ifndef _GL_FCNTL_H #include /* On some systems other than glibc, is a prerequisite of --- 42,48 ---- #else /* Normal invocation convention. */ ! #ifndef _@GUARD_PREFIX@_FCNTL_H #include /* On some systems other than glibc, is a prerequisite of *************** *** 57,64 **** /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_FCNTL_H@ ! #ifndef _GL_FCNTL_H ! #define _GL_FCNTL_H #ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ # include --- 57,64 ---- /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_FCNTL_H@ ! #ifndef _@GUARD_PREFIX@_FCNTL_H ! #define _@GUARD_PREFIX@_FCNTL_H #ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ # include *************** *** 184,191 **** #endif #if !defined O_CLOEXEC && defined O_NOINHERIT ! /* Mingw spells it `O_NOINHERIT'. Intentionally leave it ! undefined if not available. */ # define O_CLOEXEC O_NOINHERIT #endif --- 184,190 ---- #endif #if !defined O_CLOEXEC && defined O_NOINHERIT ! /* Mingw spells it `O_NOINHERIT'. */ # define O_CLOEXEC O_NOINHERIT #endif *************** *** 221,226 **** --- 220,238 ---- # define O_NONBLOCK O_NDELAY #endif + /* If the gnulib module 'nonblocking' is in use, guarantee a working non-zero + value of O_NONBLOCK. Otherwise, O_NONBLOCK is defined (above) to O_NDELAY + or to 0 as fallback. */ + #if @GNULIB_NONBLOCKING@ + # if O_NONBLOCK + # define GNULIB_defined_O_NONBLOCK 0 + # else + # define GNULIB_defined_O_NONBLOCK 1 + # undef O_NONBLOCK + # define O_NONBLOCK 0x40000000 + # endif + #endif + #ifndef O_NOCTTY # define O_NOCTTY 0 #endif *************** *** 249,254 **** --- 261,271 ---- # define O_TTY_INIT 0 #endif + #if O_ACCMODE != (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) + # undef O_ACCMODE + # define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) + #endif + /* For systems that distinguish between text and binary I/O. O_BINARY is usually declared in fcntl.h */ #if !defined O_BINARY && defined _O_BINARY *************** *** 305,310 **** #endif ! #endif /* _GL_FCNTL_H */ ! #endif /* _GL_FCNTL_H */ #endif --- 322,327 ---- #endif ! #endif /* _@GUARD_PREFIX@_FCNTL_H */ ! #endif /* _@GUARD_PREFIX@_FCNTL_H */ #endif diff -cNr octave-3.4.0/libgnu/fd-hook.c octave-3.4.1/libgnu/fd-hook.c *** octave-3.4.0/libgnu/fd-hook.c 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/fd-hook.c 2011-06-15 11:31:06.000000000 -0400 *************** *** 0 **** --- 1,118 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* Hook for making making file descriptor functions close(), ioctl() extensible. + Copyright (C) 2009-2011 Free Software Foundation, Inc. + Written by Bruno Haible , 2009. + + 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 . */ + + #include + + /* Specification. */ + #include "fd-hook.h" + + #include + + /* Currently, this entire code is only needed for the handling of sockets + on native Windows platforms. */ + #if WINDOWS_SOCKETS + + /* The first and last link in the doubly linked list. + Initially the list is empty. */ + static struct fd_hook anchor = { &anchor, &anchor, NULL, NULL }; + + int + execute_close_hooks (const struct fd_hook *remaining_list, gl_close_fn primary, + int fd) + { + if (remaining_list == &anchor) + /* End of list reached. */ + return primary (fd); + else + return remaining_list->private_close_fn (remaining_list->private_next, + primary, fd); + } + + int + execute_all_close_hooks (gl_close_fn primary, int fd) + { + return execute_close_hooks (anchor.private_next, primary, fd); + } + + int + execute_ioctl_hooks (const struct fd_hook *remaining_list, gl_ioctl_fn primary, + int fd, int request, void *arg) + { + if (remaining_list == &anchor) + /* End of list reached. */ + return primary (fd, request, arg); + else + return remaining_list->private_ioctl_fn (remaining_list->private_next, + primary, fd, request, arg); + } + + int + execute_all_ioctl_hooks (gl_ioctl_fn primary, + int fd, int request, void *arg) + { + return execute_ioctl_hooks (anchor.private_next, primary, fd, request, arg); + } + + void + register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, struct fd_hook *link) + { + if (close_hook == NULL) + close_hook = execute_close_hooks; + if (ioctl_hook == NULL) + ioctl_hook = execute_ioctl_hooks; + + if (link->private_next == NULL && link->private_prev == NULL) + { + /* Add the link to the doubly linked list. */ + link->private_next = anchor.private_next; + link->private_prev = &anchor; + link->private_close_fn = close_hook; + link->private_ioctl_fn = ioctl_hook; + anchor.private_next->private_prev = link; + anchor.private_next = link; + } + else + { + /* The link is already in use. */ + if (link->private_close_fn != close_hook + || link->private_ioctl_fn != ioctl_hook) + abort (); + } + } + + void + unregister_fd_hook (struct fd_hook *link) + { + struct fd_hook *next = link->private_next; + struct fd_hook *prev = link->private_prev; + + if (next != NULL && prev != NULL) + { + /* The link is in use. Remove it from the doubly linked list. */ + prev->private_next = next; + next->private_prev = prev; + /* Clear the link, to mark it unused. */ + link->private_next = NULL; + link->private_prev = NULL; + link->private_close_fn = NULL; + link->private_ioctl_fn = NULL; + } + } + + #endif diff -cNr octave-3.4.0/libgnu/fd-hook.h octave-3.4.1/libgnu/fd-hook.h *** octave-3.4.0/libgnu/fd-hook.h 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/fd-hook.h 2011-06-15 11:31:06.000000000 -0400 *************** *** 0 **** --- 1,121 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* Hook for making making file descriptor functions close(), ioctl() extensible. + Copyright (C) 2009-2011 Free Software Foundation, Inc. + + 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 . */ + + + #ifndef FD_HOOK_H + #define FD_HOOK_H + + #ifdef __cplusplus + extern "C" { + #endif + + + /* Currently, this entire code is only needed for the handling of sockets + on native Windows platforms. */ + #if WINDOWS_SOCKETS + + + /* Type of function that closes FD. */ + typedef int (*gl_close_fn) (int fd); + + /* Type of function that applies a control request to FD. */ + typedef int (*gl_ioctl_fn) (int fd, int request, void *arg); + + /* An element of the list of file descriptor hooks. + In CLOS (Common Lisp Object System) speak, it consists of an "around" + method for the close() function and an "around" method for the ioctl() + function. + The fields of this structure are considered private. */ + struct fd_hook + { + /* Doubly linked list. */ + struct fd_hook *private_next; + struct fd_hook *private_prev; + /* Function that treats the types of FD that it knows about and calls + execute_close_hooks (REMAINING_LIST, PRIMARY, FD) as a fallback. */ + int (*private_close_fn) (const struct fd_hook *remaining_list, + gl_close_fn primary, + int fd); + /* Function that treats the types of FD that it knows about and calls + execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) as a + fallback. */ + int (*private_ioctl_fn) (const struct fd_hook *remaining_list, + gl_ioctl_fn primary, + int fd, int request, void *arg); + }; + + /* This type of function closes FD, applying special knowledge for the FD + types it knows about, and calls + execute_close_hooks (REMAINING_LIST, PRIMARY, FD) + for the other FD types. + In CLOS speak, REMAINING_LIST is the remaining list of "around" methods, + and PRIMARY is the "primary" method for close(). */ + typedef int (*close_hook_fn) (const struct fd_hook *remaining_list, + gl_close_fn primary, + int fd); + + /* Execute the close hooks in REMAINING_LIST, with PRIMARY as "primary" method. + Return 0 or -1, like close() would do. */ + extern int execute_close_hooks (const struct fd_hook *remaining_list, + gl_close_fn primary, + int fd); + + /* Execute all close hooks, with PRIMARY as "primary" method. + Return 0 or -1, like close() would do. */ + extern int execute_all_close_hooks (gl_close_fn primary, int fd); + + /* This type of function applies a control request to FD, applying special + knowledge for the FD types it knows about, and calls + execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) + for the other FD types. + In CLOS speak, REMAINING_LIST is the remaining list of "around" methods, + and PRIMARY is the "primary" method for ioctl(). */ + typedef int (*ioctl_hook_fn) (const struct fd_hook *remaining_list, + gl_ioctl_fn primary, + int fd, int request, void *arg); + + /* Execute the ioctl hooks in REMAINING_LIST, with PRIMARY as "primary" method. + Return 0 or -1, like ioctl() would do. */ + extern int execute_ioctl_hooks (const struct fd_hook *remaining_list, + gl_ioctl_fn primary, + int fd, int request, void *arg); + + /* Execute all ioctl hooks, with PRIMARY as "primary" method. + Return 0 or -1, like ioctl() would do. */ + extern int execute_all_ioctl_hooks (gl_ioctl_fn primary, + int fd, int request, void *arg); + + /* Add a function pair to the list of file descriptor hooks. + CLOSE_HOOK and IOCTL_HOOK may be NULL, indicating no change. + The LINK variable points to a piece of memory which is guaranteed to be + accessible until the corresponding call to unregister_fd_hook. */ + extern void register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, + struct fd_hook *link); + + /* Removes a hook from the list of file descriptor hooks. */ + extern void unregister_fd_hook (struct fd_hook *link); + + + #endif + + + #ifdef __cplusplus + } + #endif + + #endif /* FD_HOOK_H */ diff -cNr octave-3.4.0/libgnu/fflush.c octave-3.4.1/libgnu/fflush.c *** octave-3.4.0/libgnu/fflush.c 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/fflush.c 2011-06-15 11:31:06.000000000 -0400 *************** *** 0 **** --- 1,220 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* fflush.c -- allow flushing input streams + Copyright (C) 2007-2011 Free Software Foundation, Inc. + + 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 . */ + + /* Written by Eric Blake. */ + + #include + + /* Specification. */ + #include + + #include + #include + + #include "freading.h" + + #include "stdio-impl.h" + + #undef fflush + + + #if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ + + /* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */ + static inline void + clear_ungetc_buffer_preserving_position (FILE *fp) + { + if (fp->_flags & _IO_IN_BACKUP) + /* _IO_free_backup_area is a bit complicated. Simply call fseek. */ + fseeko (fp, 0, SEEK_CUR); + } + + #else + + /* Clear the stream's ungetc buffer. May modify the value of ftello (fp). */ + static inline void + clear_ungetc_buffer (FILE *fp) + { + # if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ + if (HASUB (fp)) + { + fp_->_p += fp_->_r; + fp_->_r = 0; + } + # elif defined __EMX__ /* emx+gcc */ + if (fp->_ungetc_count > 0) + { + fp->_ungetc_count = 0; + fp->_rcount = - fp->_rcount; + } + # elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */ + /* Nothing to do. */ + # else /* other implementations */ + fseeko (fp, 0, SEEK_CUR); + # endif + } + + #endif + + #if (defined __sferror || defined __DragonFly__) && defined __SNPT /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ + + static inline int + disable_seek_optimization (FILE *fp) + { + int saved_flags = fp_->_flags & (__SOPT | __SNPT); + fp_->_flags = (fp_->_flags & ~__SOPT) | __SNPT; + return saved_flags; + } + + static inline void + restore_seek_optimization (FILE *fp, int saved_flags) + { + fp_->_flags = (fp_->_flags & ~(__SOPT | __SNPT)) | saved_flags; + } + + #endif + + static inline void + update_fpos_cache (FILE *fp, off_t pos) + { + #if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ + # if defined __CYGWIN__ + /* fp_->_offset is typed as an integer. */ + fp_->_offset = pos; + # else + /* fp_->_offset is an fpos_t. */ + /* Use a union, since on NetBSD, the compilation flags determine + whether fpos_t is typedef'd to off_t or a struct containing a + single off_t member. */ + union + { + fpos_t f; + off_t o; + } u; + u.o = pos; + fp_->_offset = u.f; + # endif + fp_->_flags |= __SOFF; + #endif + } + + /* Flush all pending data on STREAM according to POSIX rules. Both + output and seekable input streams are supported. */ + int + rpl_fflush (FILE *stream) + { + /* When stream is NULL, POSIX and C99 only require flushing of "output + streams and update streams in which the most recent operation was not + input", and all implementations do this. + + When stream is "an output stream or an update stream in which the most + recent operation was not input", POSIX and C99 requires that fflush + writes out any buffered data, and all implementations do this. + + When stream is, however, an input stream or an update stream in + which the most recent operation was input, C99 specifies nothing, + and POSIX only specifies behavior if the stream is seekable. + mingw, in particular, drops the input buffer, leaving the file + descriptor positioned at the end of the input buffer. I.e. ftell + (stream) is lost. We don't want to call the implementation's + fflush in this case. + + We test ! freading (stream) here, rather than fwriting (stream), because + what we need to know is whether the stream holds a "read buffer", and on + mingw this is indicated by _IOREAD, regardless of _IOWRT. */ + if (stream == NULL || ! freading (stream)) + return fflush (stream); + + #if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ + + clear_ungetc_buffer_preserving_position (stream); + + return fflush (stream); + + #else + { + /* Notes about the file-position indicator: + 1) The file position indicator is incremented by fgetc() and decremented + by ungetc(): + + "... the fgetc() function shall ... advance the associated file + position indicator for the stream ..." + + "The file-position indicator is decremented by each successful + call to ungetc()..." + 2) says: + "The value of the file-position indicator for the stream after + reading or discarding all pushed-back bytes shall be the same + as it was before the bytes were pushed back." + Here we are discarding all pushed-back bytes. But more specifically, + 3) says: + "[After fflush(),] the file offset of the underlying open file + description shall be set to the file position of the stream, and + any characters pushed back onto the stream by ungetc() ... shall + be discarded." */ + + /* POSIX does not specify fflush behavior for non-seekable input + streams. Some implementations purge unread data, some return + EBADF, some do nothing. */ + off_t pos = ftello (stream); + if (pos == -1) + { + errno = EBADF; + return EOF; + } + + /* Clear the ungetc buffer. */ + clear_ungetc_buffer (stream); + + /* To get here, we must be flushing a seekable input stream, so the + semantics of fpurge are now appropriate to clear the buffer. To + avoid losing data, the lseek is also necessary. */ + { + int result = fpurge (stream); + if (result != 0) + return result; + } + + # if (defined __sferror || defined __DragonFly__) && defined __SNPT /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ + + { + /* Disable seek optimization for the next fseeko call. This tells the + following fseeko call to seek to the desired position directly, rather + than to seek to a block-aligned boundary. */ + int saved_flags = disable_seek_optimization (stream); + int result = fseeko (stream, pos, SEEK_SET); + + restore_seek_optimization (stream, saved_flags); + return result; + } + + # else + + pos = lseek (fileno (stream), pos, SEEK_SET); + if (pos == -1) + return EOF; + /* After a successful lseek, update the file descriptor's position cache + in the stream. */ + update_fpos_cache (stream, pos); + + return 0; + + # endif + } + #endif + } diff -cNr octave-3.4.0/libgnu/filenamecat.h octave-3.4.1/libgnu/filenamecat.h *** octave-3.4.0/libgnu/filenamecat.h 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/filenamecat.h 2011-06-15 11:31:06.000000000 -0400 *************** *** 0 **** --- 1,29 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* Concatenate two arbitrary file names. + + Copyright (C) 1996-1997, 2003, 2005, 2007, 2009-2011 Free Software + Foundation, Inc. + + 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 . */ + + /* Written by Jim Meyering. */ + + #if GNULIB_FILENAMECAT + char *file_name_concat (char const *dir, char const *base, + char **base_in_result); + #endif + + char *mfile_name_concat (char const *dir, char const *base, + char **base_in_result); diff -cNr octave-3.4.0/libgnu/filenamecat-lgpl.c octave-3.4.1/libgnu/filenamecat-lgpl.c *** octave-3.4.0/libgnu/filenamecat-lgpl.c 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/filenamecat-lgpl.c 2011-06-15 11:31:06.000000000 -0400 *************** *** 0 **** --- 1,90 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* Concatenate two arbitrary file names. + + Copyright (C) 1996-2007, 2009-2011 Free Software Foundation, Inc. + + 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 . */ + + /* Written by Jim Meyering. */ + + #include + + /* Specification. */ + #include "filenamecat.h" + + #include + #include + + #include "dirname.h" + + #if ! HAVE_MEMPCPY && ! defined mempcpy + # define mempcpy(D, S, N) ((void *) ((char *) memcpy (D, S, N) + (N))) + #endif + + /* Return the longest suffix of F that is a relative file name. + If it has no such suffix, return the empty string. */ + + static char const * + longest_relative_suffix (char const *f) + { + for (f += FILE_SYSTEM_PREFIX_LEN (f); ISSLASH (*f); f++) + continue; + return f; + } + + /* Concatenate two file name components, DIR and ABASE, in + newly-allocated storage and return the result. + The resulting file name F is such that the commands "ls F" and "(cd + DIR; ls BASE)" refer to the same file, where BASE is ABASE with any + file system prefixes and leading separators removed. + Arrange for a directory separator if necessary between DIR and BASE + in the result, removing any redundant separators. + In any case, if BASE_IN_RESULT is non-NULL, set + *BASE_IN_RESULT to point to the copy of ABASE in the returned + concatenation. However, if ABASE begins with more than one slash, + set *BASE_IN_RESULT to point to the sole corresponding slash that + is copied into the result buffer. + + Return NULL if malloc fails. */ + + char * + mfile_name_concat (char const *dir, char const *abase, char **base_in_result) + { + char const *dirbase = last_component (dir); + size_t dirbaselen = base_len (dirbase); + size_t dirlen = dirbase - dir + dirbaselen; + size_t needs_separator = (dirbaselen && ! ISSLASH (dirbase[dirbaselen - 1])); + + char const *base = longest_relative_suffix (abase); + size_t baselen = strlen (base); + + char *p_concat = malloc (dirlen + needs_separator + baselen + 1); + char *p; + + if (p_concat == NULL) + return NULL; + + p = mempcpy (p_concat, dir, dirlen); + *p = DIRECTORY_SEPARATOR; + p += needs_separator; + + if (base_in_result) + *base_in_result = p - IS_ABSOLUTE_FILE_NAME (abase); + + p = mempcpy (p, base, baselen); + *p = '\0'; + + return p_concat; + } diff -cNr octave-3.4.0/libgnu/float.in.h octave-3.4.1/libgnu/float.in.h *** octave-3.4.0/libgnu/float.in.h 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/float.in.h 2011-06-15 11:31:06.000000000 -0400 *************** *** 17,23 **** You should have received a copy of the GNU General Public License along with this program. If not, see . */ ! #ifndef _GL_FLOAT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ --- 17,23 ---- You should have received a copy of the GNU General Public License along with this program. If not, see . */ ! #ifndef _@GUARD_PREFIX@_FLOAT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ *************** *** 27,34 **** /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_FLOAT_H@ ! #ifndef _GL_FLOAT_H ! #define _GL_FLOAT_H /* 'long double' properties. */ #if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__) --- 27,34 ---- /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_FLOAT_H@ ! #ifndef _@GUARD_PREFIX@_FLOAT_H ! #define _@GUARD_PREFIX@_FLOAT_H /* 'long double' properties. */ #if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__) *************** *** 61,65 **** # define LDBL_MAX_10_EXP 4932 #endif ! #endif /* _GL_FLOAT_H */ ! #endif /* _GL_FLOAT_H */ --- 61,65 ---- # define LDBL_MAX_10_EXP 4932 #endif ! #endif /* _@GUARD_PREFIX@_FLOAT_H */ ! #endif /* _@GUARD_PREFIX@_FLOAT_H */ diff -cNr octave-3.4.0/libgnu/fnmatch_loop.c octave-3.4.1/libgnu/fnmatch_loop.c *** octave-3.4.0/libgnu/fnmatch_loop.c 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/fnmatch_loop.c 2011-06-15 11:31:06.000000000 -0400 *************** *** 202,207 **** --- 202,209 ---- case L_('['): { /* Nonzero if the sense of the character class is inverted. */ + const CHAR *p_init = p; + const CHAR *n_init = n; register bool not; CHAR cold; UCHAR fn; *************** *** 412,419 **** } #endif else if (c == L_('\0')) ! /* [ (unterminated) loses. */ ! return FNM_NOMATCH; else { bool is_range = false; --- 414,426 ---- } #endif else if (c == L_('\0')) ! { ! /* [ unterminated, treat as normal character. */ ! p = p_init; ! n = n_init; ! c = L_('['); ! goto normal_match; ! } else { bool is_range = false; diff -cNr octave-3.4.0/libgnu/fpurge.c octave-3.4.1/libgnu/fpurge.c *** octave-3.4.0/libgnu/fpurge.c 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/fpurge.c 2011-06-15 11:31:06.000000000 -0400 *************** *** 0 **** --- 1,139 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* Flushing buffers of a FILE stream. + Copyright (C) 2007-2011 Free Software Foundation, Inc. + + 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 . */ + + #include + + /* Specification. */ + #include + + #if HAVE___FPURGE /* glibc >= 2.2, Haiku, Solaris >= 7 */ + # include + #endif + #include + + #include "stdio-impl.h" + + int + fpurge (FILE *fp) + { + #if HAVE___FPURGE /* glibc >= 2.2, Haiku, Solaris >= 7 */ + + __fpurge (fp); + /* The __fpurge function does not have a return value. */ + return 0; + + #elif HAVE_FPURGE /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin 1.7 */ + + /* Call the system's fpurge function. */ + # undef fpurge + # if !HAVE_DECL_FPURGE + extern int fpurge (FILE *); + # endif + int result = fpurge (fp); + # if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ + if (result == 0) + /* Correct the invariants that fpurge broke. + on BSD systems says: + "The following always hold: if _flags & __SRD, _w is 0." + If this invariant is not fulfilled and the stream is read-write but + currently reading, subsequent putc or fputc calls will write directly + into the buffer, although they shouldn't be allowed to. */ + if ((fp_->_flags & __SRD) != 0) + fp_->_w = 0; + # endif + return result; + + #else + + /* Most systems provide FILE as a struct and the necessary bitmask in + , because they need it for implementing getc() and putc() as + fast macros. */ + # if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ + fp->_IO_read_end = fp->_IO_read_ptr; + fp->_IO_write_ptr = fp->_IO_write_base; + /* Avoid memory leak when there is an active ungetc buffer. */ + if (fp->_IO_save_base != NULL) + { + free (fp->_IO_save_base); + fp->_IO_save_base = NULL; + } + return 0; + # elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ + fp_->_p = fp_->_bf._base; + fp_->_r = 0; + fp_->_w = ((fp_->_flags & (__SLBF | __SNBF | __SRD)) == 0 /* fully buffered and not currently reading? */ + ? fp_->_bf._size + : 0); + /* Avoid memory leak when there is an active ungetc buffer. */ + if (fp_ub._base != NULL) + { + if (fp_ub._base != fp_->_ubuf) + free (fp_ub._base); + fp_ub._base = NULL; + } + return 0; + # elif defined __EMX__ /* emx+gcc */ + fp->_ptr = fp->_buffer; + fp->_rcount = 0; + fp->_wcount = 0; + fp->_ungetc_count = 0; + return 0; + # elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */ + fp->_ptr = fp->_base; + if (fp->_ptr != NULL) + fp->_cnt = 0; + return 0; + # elif defined __UCLIBC__ /* uClibc */ + # ifdef __STDIO_BUFFERS + if (fp->__modeflags & __FLAG_WRITING) + fp->__bufpos = fp->__bufstart; + else if (fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) + fp->__bufpos = fp->__bufread; + # endif + return 0; + # elif defined __QNX__ /* QNX */ + fp->_Rback = fp->_Back + sizeof (fp->_Back); + fp->_Rsave = NULL; + if (fp->_Mode & 0x2000 /* _MWRITE */) + /* fp->_Buf <= fp->_Next <= fp->_Wend */ + fp->_Next = fp->_Buf; + else + /* fp->_Buf <= fp->_Next <= fp->_Rend */ + fp->_Rend = fp->_Next; + return 0; + # elif defined __MINT__ /* Atari FreeMiNT */ + if (fp->__pushed_back) + { + fp->__bufp = fp->__pushback_bufp; + fp->__pushed_back = 0; + } + /* Preserve the current file position. */ + if (fp->__target != -1) + fp->__target += fp->__bufp - fp->__buffer; + fp->__bufp = fp->__buffer; + /* Nothing in the buffer, next getc is nontrivial. */ + fp->__get_limit = fp->__bufp; + /* Nothing in the buffer, next putc is nontrivial. */ + fp->__put_limit = fp->__buffer; + return 0; + # else + # error "Please port gnulib fpurge.c to your platform! Look at the definitions of fflush, setvbuf and ungetc on your system, then report this to bug-gnulib." + # endif + + #endif + } diff -cNr octave-3.4.0/libgnu/freading.c octave-3.4.1/libgnu/freading.c *** octave-3.4.0/libgnu/freading.c 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/freading.c 2011-06-15 11:31:06.000000000 -0400 *************** *** 0 **** --- 1,70 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* Retrieve information about a FILE stream. + Copyright (C) 2007-2011 Free Software Foundation, Inc. + + 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 . */ + + #include + + /* Specification. */ + #include "freading.h" + + #include "stdio-impl.h" + + /* Don't use glibc's __freading function in glibc < 2.7, see + */ + #if !(HAVE___FREADING && (!defined __GLIBC__ || defined __UCLIBC__ || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 7))) + + bool + freading (FILE *fp) + { + /* Most systems provide FILE as a struct and the necessary bitmask in + , because they need it for implementing getc() and putc() as + fast macros. */ + # if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ + return ((fp->_flags & _IO_NO_WRITES) != 0 + || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0 + && fp->_IO_read_base != NULL)); + # elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ + return (fp_->_flags & __SRD) != 0; + # elif defined __EMX__ /* emx+gcc */ + return (fp->_flags & _IOREAD) != 0; + # elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */ + # if defined __sun /* Solaris */ + return (fp->_flag & _IOREAD) != 0 && (fp->_flag & _IOWRT) == 0; + # else + return (fp->_flag & _IOREAD) != 0; + # endif + # elif defined __UCLIBC__ /* uClibc */ + return (fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) != 0; + # elif defined __QNX__ /* QNX */ + return ((fp->_Mode & 0x2 /* _MOPENW */) == 0 + || (fp->_Mode & 0x1000 /* _MREAD */) != 0); + # elif defined __MINT__ /* Atari FreeMiNT */ + if (!fp->__mode.__write) + return 1; + if (!fp->__mode.__read) + return 0; + # ifdef _IO_CURRENTLY_GETTING /* Flag added on 2009-02-28 */ + return (fp->__flags & _IO_CURRENTLY_GETTING) != 0; + # else + return (fp->__buffer < fp->__get_limit /*|| fp->__bufp == fp->__put_limit ??*/); + # endif + # else + # error "Please port gnulib freading.c to your platform!" + # endif + } + + #endif diff -cNr octave-3.4.0/libgnu/freading.h octave-3.4.1/libgnu/freading.h *** octave-3.4.0/libgnu/freading.h 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/freading.h 2011-06-15 11:31:06.000000000 -0400 *************** *** 0 **** --- 1,55 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* Retrieve information about a FILE stream. + Copyright (C) 2007-2011 Free Software Foundation, Inc. + + 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 . */ + + #include + #include + + /* Return true if the stream STREAM is opened read-only, or if the + last operation on the stream was a read operation. Return false if + the stream is opened write-only or append-only, or if it supports + writing and there is no current read operation (such as fgetc). + + freading and fwriting will never both be true. If STREAM supports + both reads and writes, then: + - both freading and fwriting might be false when the stream is first + opened, after read encounters EOF, or after fflush, + - freading might be false or true and fwriting might be false + after repositioning (such as fseek, fsetpos, or rewind), + depending on the underlying implementation. + + STREAM must not be wide-character oriented. */ + + #if HAVE___FREADING && (!defined __GLIBC__ || defined __UCLIBC__ || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 7)) + /* Solaris >= 7, not glibc >= 2.2, but glibc >= 2.7 */ + + # include + # define freading(stream) (__freading (stream) != 0) + + #else + + # ifdef __cplusplus + extern "C" { + # endif + + extern bool freading (FILE *stream); + + # ifdef __cplusplus + } + # endif + + #endif diff -cNr octave-3.4.0/libgnu/fseek.c octave-3.4.1/libgnu/fseek.c *** octave-3.4.0/libgnu/fseek.c 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/fseek.c 2011-06-15 11:31:06.000000000 -0400 *************** *** 0 **** --- 1,32 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* An fseek() function that, together with fflush(), is POSIX compliant. + Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc. + + 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 . */ + + #include + + /* Specification. */ + #include + + /* Get off_t. */ + #include + + int + fseek (FILE *fp, long offset, int whence) + { + /* Use the replacement fseeko function with all its workarounds. */ + return fseeko (fp, (off_t)offset, whence); + } diff -cNr octave-3.4.0/libgnu/fseeko.c octave-3.4.1/libgnu/fseeko.c *** octave-3.4.0/libgnu/fseeko.c 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/fseeko.c 2011-06-15 11:31:06.000000000 -0400 *************** *** 0 **** --- 1,148 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* An fseeko() function that, together with fflush(), is POSIX compliant. + Copyright (C) 2007-2011 Free Software Foundation, Inc. + + 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + + #include + + /* Specification. */ + #include + + /* Get off_t and lseek. */ + #include + + #include "stdio-impl.h" + + int + fseeko (FILE *fp, off_t offset, int whence) + #undef fseeko + #if !HAVE_FSEEKO + # undef fseek + # define fseeko fseek + #endif + { + #if LSEEK_PIPE_BROKEN + /* mingw gives bogus answers rather than failure on non-seekable files. */ + if (lseek (fileno (fp), 0, SEEK_CUR) == -1) + return EOF; + #endif + + /* These tests are based on fpurge.c. */ + #if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ + if (fp->_IO_read_end == fp->_IO_read_ptr + && fp->_IO_write_ptr == fp->_IO_write_base + && fp->_IO_save_base == NULL) + #elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ + # if defined __SL64 && defined __SCLE /* Cygwin */ + if ((fp->_flags & __SL64) == 0) + { + /* Cygwin 1.5.0 through 1.5.24 failed to open stdin in 64-bit + mode; but has an fseeko that requires 64-bit mode. */ + FILE *tmp = fopen ("/dev/null", "r"); + if (!tmp) + return -1; + fp->_flags |= __SL64; + fp->_seek64 = tmp->_seek64; + fclose (tmp); + } + # endif + if (fp_->_p == fp_->_bf._base + && fp_->_r == 0 + && fp_->_w == ((fp_->_flags & (__SLBF | __SNBF | __SRD)) == 0 /* fully buffered and not currently reading? */ + ? fp_->_bf._size + : 0) + && fp_ub._base == NULL) + #elif defined __EMX__ /* emx+gcc */ + if (fp->_ptr == fp->_buffer + && fp->_rcount == 0 + && fp->_wcount == 0 + && fp->_ungetc_count == 0) + #elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */ + if (fp_->_ptr == fp_->_base + && (fp_->_ptr == NULL || fp_->_cnt == 0)) + #elif defined __UCLIBC__ /* uClibc */ + if (((fp->__modeflags & __FLAG_WRITING) == 0 + || fp->__bufpos == fp->__bufstart) + && ((fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) == 0 + || fp->__bufpos == fp->__bufread)) + #elif defined __QNX__ /* QNX */ + if ((fp->_Mode & 0x2000 /* _MWRITE */ ? fp->_Next == fp->_Buf : fp->_Next == fp->_Rend) + && fp->_Rback == fp->_Back + sizeof (fp->_Back) + && fp->_Rsave == NULL) + #elif defined __MINT__ /* Atari FreeMiNT */ + if (fp->__bufp == fp->__buffer + && fp->__get_limit == fp->__bufp + && fp->__put_limit == fp->__bufp + && !fp->__pushed_back) + #else + #error "Please port gnulib fseeko.c to your platform! Look at the code in fpurge.c, then report this to bug-gnulib." + #endif + { + /* We get here when an fflush() call immediately preceded this one. We + know there are no buffers. + POSIX requires us to modify the file descriptor's position. + But we cannot position beyond end of file here. */ + off_t pos = + lseek (fileno (fp), + whence == SEEK_END && offset > 0 ? 0 : offset, + whence); + if (pos == -1) + { + #if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ + fp_->_flags &= ~__SOFF; + #endif + return -1; + } + + #if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ + fp->_flags &= ~_IO_EOF_SEEN; + #elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ + # if defined __CYGWIN__ + /* fp_->_offset is typed as an integer. */ + fp_->_offset = pos; + # else + /* fp_->_offset is an fpos_t. */ + { + /* Use a union, since on NetBSD, the compilation flags + determine whether fpos_t is typedef'd to off_t or a struct + containing a single off_t member. */ + union + { + fpos_t f; + off_t o; + } u; + u.o = pos; + fp_->_offset = u.f; + } + # endif + fp_->_flags |= __SOFF; + fp_->_flags &= ~__SEOF; + #elif defined __EMX__ /* emx+gcc */ + fp->_flags &= ~_IOEOF; + #elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */ + fp->_flag &= ~_IOEOF; + #elif defined __MINT__ /* Atari FreeMiNT */ + fp->__offset = pos; + fp->__eof = 0; + #endif + /* If we were not requested to position beyond end of file, we're + done. */ + if (!(whence == SEEK_END && offset > 0)) + return 0; + } + return fseeko (fp, offset, whence); + } diff -cNr octave-3.4.0/libgnu/ftell.c octave-3.4.1/libgnu/ftell.c *** octave-3.4.0/libgnu/ftell.c 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/ftell.c 2011-06-15 11:31:06.000000000 -0400 *************** *** 0 **** --- 1,40 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* An ftell() function that works around platform bugs. + Copyright (C) 2007-2011 Free Software Foundation, Inc. + + 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 . */ + + #include + + /* Specification. */ + #include + + #include + /* Get off_t. */ + #include + + long + ftell (FILE *fp) + { + /* Use the replacement ftello function with all its workarounds. */ + off_t offset = ftello (fp); + if (offset == (long)offset) + return (long)offset; + else + { + errno = EOVERFLOW; + return -1; + } + } diff -cNr octave-3.4.0/libgnu/ftello.c octave-3.4.1/libgnu/ftello.c *** octave-3.4.0/libgnu/ftello.c 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/ftello.c 2011-06-15 11:31:06.000000000 -0400 *************** *** 0 **** --- 1,79 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* An ftello() function that works around platform bugs. + Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc. + + 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 . */ + + #include + + /* Specification. */ + #include + + /* Get lseek. */ + #include + + #include "stdio-impl.h" + + off_t + ftello (FILE *fp) + #undef ftello + #if !HAVE_FTELLO + # undef ftell + # define ftello ftell + #endif + { + #if LSEEK_PIPE_BROKEN + /* mingw gives bogus answers rather than failure on non-seekable files. */ + if (lseek (fileno (fp), 0, SEEK_CUR) == -1) + return -1; + #endif + + #if FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE /* Solaris */ + /* The Solaris stdio leaves the _IOREAD flag set after reading from a file + reaches EOF and the program then starts writing to the file. ftello + gets confused by this. */ + if (fp_->_flag & _IOWRT) + { + off_t pos; + + /* Call ftello nevertheless, for the side effects that it does on fp. */ + ftello (fp); + + /* Compute the file position ourselves. */ + pos = lseek (fileno (fp), (off_t) 0, SEEK_CUR); + if (pos >= 0) + { + if ((fp_->_flag & _IONBF) == 0 && fp_->_base != NULL) + pos += fp_->_ptr - fp_->_base; + } + return pos; + } + #endif + + #if defined __SL64 && defined __SCLE /* Cygwin */ + if ((fp->_flags & __SL64) == 0) + { + /* Cygwin 1.5.0 through 1.5.24 failed to open stdin in 64-bit + mode; but has an ftello that requires 64-bit mode. */ + FILE *tmp = fopen ("/dev/null", "r"); + if (!tmp) + return -1; + fp->_flags |= __SL64; + fp->_seek64 = tmp->_seek64; + fclose (tmp); + } + #endif + return ftello (fp); + } diff -cNr octave-3.4.0/libgnu/getcwd-lgpl.c octave-3.4.1/libgnu/getcwd-lgpl.c *** octave-3.4.0/libgnu/getcwd-lgpl.c 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/getcwd-lgpl.c 2011-06-15 11:31:06.000000000 -0400 *************** *** 0 **** --- 1,127 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* Copyright (C) 2011 Free Software Foundation, Inc. + This file is part of gnulib. + + 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 . */ + + #include + + /* Specification */ + #include + + #include + #include + + #if GNULIB_GETCWD + /* Favor GPL getcwd.c if both getcwd and getcwd-lgpl modules are in use. */ + typedef int dummy; + #else + + /* Get the name of the current working directory, and put it in SIZE + bytes of BUF. Returns NULL if the directory couldn't be determined + (perhaps because the absolute name was longer than PATH_MAX, or + because of missing read/search permissions on parent directories) + or SIZE was too small. If successful, returns BUF. If BUF is + NULL, an array is allocated with `malloc'; the array is SIZE bytes + long, unless SIZE == 0, in which case it is as big as + necessary. */ + + # undef getcwd + char * + rpl_getcwd (char *buf, size_t size) + { + char *ptr; + char *result; + + /* Handle single size operations. */ + if (buf) + { + if (!size) + { + errno = EINVAL; + return NULL; + } + return getcwd (buf, size); + } + + if (size) + { + buf = malloc (size); + if (!buf) + { + errno = ENOMEM; + return NULL; + } + result = getcwd (buf, size); + if (!result) + { + int saved_errno = errno; + free (buf); + errno = saved_errno; + } + return result; + } + + /* Flexible sizing requested. Avoid over-allocation for the common + case of a name that fits within a 4k page, minus some space for + local variables, to be sure we don't skip over a guard page. */ + { + char tmp[4032]; + size = sizeof tmp; + ptr = getcwd (tmp, size); + if (ptr) + { + result = strdup (ptr); + if (!result) + errno = ENOMEM; + return result; + } + if (errno != ERANGE) + return NULL; + } + + /* My what a large directory name we have. */ + do + { + size <<= 1; + ptr = realloc (buf, size); + if (ptr == NULL) + { + free (buf); + errno = ENOMEM; + return NULL; + } + buf = ptr; + result = getcwd (buf, size); + } + while (!result && errno == ERANGE); + + if (!result) + { + int saved_errno = errno; + free (buf); + errno = saved_errno; + } + else + { + /* Trim to fit, if possible. */ + result = realloc (buf, strlen (buf) + 1); + if (!result) + result = buf; + } + return result; + } + + #endif diff -cNr octave-3.4.0/libgnu/getopt.c octave-3.4.1/libgnu/getopt.c *** octave-3.4.0/libgnu/getopt.c 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/getopt.c 2011-06-15 11:31:06.000000000 -0400 *************** *** 481,503 **** || !strchr (optstring, argv[d->optind][1]))))) { char *nameend; const struct option *p; const struct option *pfound = NULL; int exact = 0; - int ambig = 0; int indfound = -1; int option_index; for (nameend = d->__nextchar; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) ! if (!strncmp (p->name, d->__nextchar, nameend - d->__nextchar)) { ! if ((unsigned int) (nameend - d->__nextchar) ! == (unsigned int) strlen (p->name)) { /* Exact match found. */ pfound = p; --- 481,508 ---- || !strchr (optstring, argv[d->optind][1]))))) { char *nameend; + unsigned int namelen; const struct option *p; const struct option *pfound = NULL; + struct option_list + { + const struct option *p; + struct option_list *next; + } *ambig_list = NULL; int exact = 0; int indfound = -1; int option_index; for (nameend = d->__nextchar; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; + namelen = nameend - d->__nextchar; /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) ! if (!strncmp (p->name, d->__nextchar, namelen)) { ! if (namelen == (unsigned int) strlen (p->name)) { /* Exact match found. */ pfound = p; *************** *** 515,549 **** || pfound->has_arg != p->has_arg || pfound->flag != p->flag || pfound->val != p->val) ! /* Second or later nonexact match found. */ ! ambig = 1; } ! if (ambig && !exact) { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO ! char *buf; ! if (__asprintf (&buf, _("%s: option '%s' is ambiguous\n"), ! argv[0], argv[d->optind]) >= 0) { ! _IO_flockfile (stderr); ! int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ! ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; ! __fxprintf (NULL, "%s", buf); ! ((_IO_FILE *) stderr)->_flags2 = old_flags2; ! _IO_funlockfile (stderr); ! free (buf); } #else ! fprintf (stderr, _("%s: option '%s' is ambiguous\n"), argv[0], argv[d->optind]); #endif } d->__nextchar += strlen (d->__nextchar); --- 520,590 ---- || pfound->has_arg != p->has_arg || pfound->flag != p->flag || pfound->val != p->val) ! { ! /* Second or later nonexact match found. */ ! struct option_list *newp = malloc (sizeof (*newp)); ! newp->p = p; ! newp->next = ambig_list; ! ambig_list = newp; ! } } ! if (ambig_list != NULL && !exact) { if (print_errors) { + struct option_list first; + first.p = pfound; + first.next = ambig_list; + ambig_list = &first; + #if defined _LIBC && defined USE_IN_LIBIO ! char *buf = NULL; ! size_t buflen = 0; ! FILE *fp = open_memstream (&buf, &buflen); ! if (fp != NULL) { ! fprintf (fp, ! _("%s: option '%s' is ambiguous; possibilities:"), ! argv[0], argv[d->optind]); ! ! do ! { ! fprintf (fp, " '--%s'", ambig_list->p->name); ! ambig_list = ambig_list->next; ! } ! while (ambig_list != NULL); ! ! fputc_unlocked ('\n', fp); ! ! if (__builtin_expect (fclose (fp) != EOF, 1)) ! { ! _IO_flockfile (stderr); ! int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ! ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; ! __fxprintf (NULL, "%s", buf); ! ((_IO_FILE *) stderr)->_flags2 = old_flags2; ! _IO_funlockfile (stderr); ! free (buf); ! } } #else ! fprintf (stderr, ! _("%s: option '%s' is ambiguous; possibilities:"), argv[0], argv[d->optind]); + do + { + fprintf (stderr, " '--%s'", ambig_list->p->name); + ambig_list = ambig_list->next; + } + while (ambig_list != NULL); + + fputc ('\n', stderr); #endif } d->__nextchar += strlen (d->__nextchar); *************** *** 552,557 **** --- 593,605 ---- return '?'; } + while (ambig_list != NULL) + { + struct option_list *pn = ambig_list->next; + free (ambig_list); + ambig_list = pn; + } + if (pfound != NULL) { option_index = indfound; diff -cNr octave-3.4.0/libgnu/getopt.in.h octave-3.4.1/libgnu/getopt.in.h *** octave-3.4.0/libgnu/getopt.in.h 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/getopt.in.h 2011-06-15 11:31:06.000000000 -0400 *************** *** 18,24 **** You should have received a copy of the GNU General Public License along with this program. If not, see . */ ! #ifndef _GL_GETOPT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ --- 18,24 ---- You should have received a copy of the GNU General Public License along with this program. If not, see . */ ! #ifndef _@GUARD_PREFIX@_GETOPT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ *************** *** 34,43 **** # undef _GL_SYSTEM_GETOPT #endif ! #ifndef _GL_GETOPT_H #ifndef __need_getopt ! # define _GL_GETOPT_H 1 #endif /* Standalone applications should #define __GETOPT_PREFIX to an --- 34,43 ---- # undef _GL_SYSTEM_GETOPT #endif ! #ifndef _@GUARD_PREFIX@_GETOPT_H #ifndef __need_getopt ! # define _@GUARD_PREFIX@_GETOPT_H 1 #endif /* Standalone applications should #define __GETOPT_PREFIX to an *************** *** 251,255 **** /* Make sure we later can get all the definitions and declarations. */ #undef __need_getopt ! #endif /* getopt.h */ ! #endif /* getopt.h */ --- 251,255 ---- /* Make sure we later can get all the definitions and declarations. */ #undef __need_getopt ! #endif /* _@GUARD_PREFIX@_GETOPT_H */ ! #endif /* _@GUARD_PREFIX@_GETOPT_H */ diff -cNr octave-3.4.0/libgnu/getopt_int.h octave-3.4.1/libgnu/getopt_int.h *** octave-3.4.0/libgnu/getopt_int.h 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/getopt_int.h 2011-06-15 11:31:06.000000000 -0400 *************** *** 110,116 **** #if defined _LIBC && defined USE_NONOPTION_FLAGS int __nonoption_flags_max_len; int __nonoption_flags_len; ! # endif }; /* The initializer is necessary to set OPTIND and OPTERR to their --- 110,116 ---- #if defined _LIBC && defined USE_NONOPTION_FLAGS int __nonoption_flags_max_len; int __nonoption_flags_len; ! #endif }; /* The initializer is necessary to set OPTIND and OPTERR to their diff -cNr octave-3.4.0/libgnu/gettext.h octave-3.4.1/libgnu/gettext.h *** octave-3.4.0/libgnu/gettext.h 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/gettext.h 2011-06-15 11:31:06.000000000 -0400 *************** *** 95,100 **** --- 95,106 ---- #endif + /* Prefer gnulib's setlocale override over libintl's setlocale override. */ + #ifdef GNULIB_defined_setlocale + # undef setlocale + # define setlocale rpl_setlocale + #endif + /* A pseudo function call that serves as a marker for the automated extraction of messages, but does not call gettext(). The run-time translation is done at a different place in the code. diff -cNr octave-3.4.0/libgnu/gettimeofday.c octave-3.4.1/libgnu/gettimeofday.c *** octave-3.4.0/libgnu/gettimeofday.c 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/gettimeofday.c 2011-06-15 11:31:06.000000000 -0400 *************** *** 42,51 **** static struct tm tm_zero_buffer; static struct tm *localtime_buffer_addr = &tm_zero_buffer; ! #undef localtime extern struct tm *localtime (time_t const *); ! #undef gmtime extern struct tm *gmtime (time_t const *); /* This is a wrapper for localtime. It is used only on systems for which --- 42,51 ---- static struct tm tm_zero_buffer; static struct tm *localtime_buffer_addr = &tm_zero_buffer; ! # undef localtime extern struct tm *localtime (time_t const *); ! # undef gmtime extern struct tm *gmtime (time_t const *); /* This is a wrapper for localtime. It is used only on systems for which *************** *** 81,87 **** #if TZSET_CLOBBERS_LOCALTIME ! #undef tzset extern void tzset (void); /* This is a wrapper for tzset, for systems on which tzset may clobber --- 81,87 ---- #if TZSET_CLOBBERS_LOCALTIME ! # undef tzset extern void tzset (void); /* This is a wrapper for tzset, for systems on which tzset may clobber diff -cNr octave-3.4.0/libgnu/gnulib.mk octave-3.4.1/libgnu/gnulib.mk *** octave-3.4.0/libgnu/gnulib.mk 2011-02-08 05:03:17.000000000 -0500 --- octave-3.4.1/libgnu/gnulib.mk 2011-06-15 11:31:05.000000000 -0400 *************** *** 9,15 **** # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. ! # Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libgnu --source-base=libgnu --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --libtool --macro-prefix=gl c-strcase copysign crypto/md5 fcntl filemode fnmatch getcwd gethostname getopt-gnu gettimeofday glob link lstat mkdir mkfifo mkstemp mktime nanosleep pathmax progname readlink rename rmdir round roundf sigaction signal sigprocmask sleep stat stdint strftime strptime symlink sys_stat sys_time sys_times time times trunc truncf unistd unlink vsnprintf AUTOMAKE_OPTIONS = 1.5 gnits --- 9,15 ---- # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. ! # Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libgnu --source-base=libgnu --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --libtool --macro-prefix=gl c-strcase copysign crypto/md5 fcntl filemode fnmatch getcwd gethostname getopt-gnu gettimeofday glob link lstat mkdir mkfifo mkstemp mktime nanosleep nproc pathmax progname readlink rename rmdir round roundf sigaction signal sigprocmask sleep stat stdint strftime strptime symlink sys_stat sys_time sys_times time times trunc truncf unistd unlink vsnprintf AUTOMAKE_OPTIONS = 1.5 gnits *************** *** 58,69 **** ## begin gnulib module alloca EXTRA_DIST += alloca.c EXTRA_libgnu_la_SOURCES += alloca.c - libgnu_la_LIBADD += @LTALLOCA@ - libgnu_la_DEPENDENCIES += @LTALLOCA@ ## end gnulib module alloca ## begin gnulib module alloca-opt --- 58,69 ---- ## begin gnulib module alloca + libgnu_la_LIBADD += @LTALLOCA@ + libgnu_la_DEPENDENCIES += @LTALLOCA@ EXTRA_DIST += alloca.c EXTRA_libgnu_la_SOURCES += alloca.c ## end gnulib module alloca ## begin gnulib module alloca-opt *************** *** 72,83 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! alloca.h: alloca.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/alloca.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += alloca.h alloca.h-t EXTRA_DIST += alloca.in.h --- 72,88 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! if GL_GENERATE_ALLOCA_H ! alloca.h: alloca.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/alloca.in.h; \ } > $@-t && \ mv -f $@-t $@ + else + alloca.h: $(top_builddir)/config.status + rm -f $@ + endif MOSTLYCLEANFILES += alloca.h alloca.h-t EXTRA_DIST += alloca.in.h *************** *** 189,202 **** ## end gnulib module close - ## begin gnulib module close-hook - - libgnu_la_SOURCES += close-hook.c - - EXTRA_DIST += close-hook.h - - ## end gnulib module close-hook - ## begin gnulib module configmake # Listed in the same order as the GNU makefile conventions, and --- 194,199 ---- *************** *** 260,276 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! dirent.h: dirent.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_DIRENT_H''@|$(NEXT_DIRENT_H)|g' \ ! -e 's|@''GNULIB_DIRFD''@|$(GNULIB_DIRFD)|g' \ ! -e 's|@''GNULIB_FDOPENDIR''@|$(GNULIB_FDOPENDIR)|g' \ ! -e 's|@''GNULIB_SCANDIR''@|$(GNULIB_SCANDIR)|g' \ ! -e 's|@''GNULIB_ALPHASORT''@|$(GNULIB_ALPHASORT)|g' \ -e 's|@''HAVE_DECL_DIRFD''@|$(HAVE_DECL_DIRFD)|g' \ -e 's|@''HAVE_DECL_FDOPENDIR''@|$(HAVE_DECL_FDOPENDIR)|g' \ -e 's|@''HAVE_FDOPENDIR''@|$(HAVE_FDOPENDIR)|g' \ --- 257,274 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! dirent.h: dirent.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_DIRENT_H''@|$(NEXT_DIRENT_H)|g' \ ! -e 's/@''GNULIB_DIRFD''@/$(GNULIB_DIRFD)/g' \ ! -e 's/@''GNULIB_FDOPENDIR''@/$(GNULIB_FDOPENDIR)/g' \ ! -e 's/@''GNULIB_SCANDIR''@/$(GNULIB_SCANDIR)/g' \ ! -e 's/@''GNULIB_ALPHASORT''@/$(GNULIB_ALPHASORT)/g' \ -e 's|@''HAVE_DECL_DIRFD''@|$(HAVE_DECL_DIRFD)|g' \ -e 's|@''HAVE_DECL_FDOPENDIR''@|$(HAVE_DECL_FDOPENDIR)|g' \ -e 's|@''HAVE_FDOPENDIR''@|$(HAVE_FDOPENDIR)|g' \ *************** *** 310,315 **** --- 308,320 ---- ## end gnulib module dirname-lgpl + ## begin gnulib module dosname + + + EXTRA_DIST += dosname.h + + ## end gnulib module dosname + ## begin gnulib module dup2 *************** *** 325,334 **** # We need the following in order to create when the system # doesn't have one that is POSIX compliant. ! errno.h: errno.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ --- 330,341 ---- # We need the following in order to create when the system # doesn't have one that is POSIX compliant. ! if GL_GENERATE_ERRNO_H ! errno.h: errno.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ *************** *** 341,346 **** --- 348,357 ---- < $(srcdir)/errno.in.h; \ } > $@-t && \ mv $@-t $@ + else + errno.h: $(top_builddir)/config.status + rm -f $@ + endif MOSTLYCLEANFILES += errno.h errno.h-t EXTRA_DIST += errno.in.h *************** *** 397,412 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! fcntl.h: fcntl.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ ! -e 's|@''GNULIB_FCNTL''@|$(GNULIB_FCNTL)|g' \ ! -e 's|@''GNULIB_OPEN''@|$(GNULIB_OPEN)|g' \ ! -e 's|@''GNULIB_OPENAT''@|$(GNULIB_OPENAT)|g' \ -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ --- 408,425 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ ! -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \ ! -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/g' \ ! -e 's/@''GNULIB_OPEN''@/$(GNULIB_OPEN)/g' \ ! -e 's/@''GNULIB_OPENAT''@/$(GNULIB_OPENAT)/g' \ -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ *************** *** 424,429 **** --- 437,450 ---- ## end gnulib module fcntl-h + ## begin gnulib module fd-hook + + libgnu_la_SOURCES += fd-hook.c + + EXTRA_DIST += fd-hook.h + + ## end gnulib module fd-hook + ## begin gnulib module fdopendir *************** *** 433,438 **** --- 454,468 ---- ## end gnulib module fdopendir + ## begin gnulib module fflush + + + EXTRA_DIST += fflush.c stdio-impl.h + + EXTRA_libgnu_la_SOURCES += fflush.c + + ## end gnulib module fflush + ## begin gnulib module filemode *************** *** 442,463 **** ## end gnulib module filemode ## begin gnulib module float BUILT_SOURCES += $(FLOAT_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! float.h: float.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \ < $(srcdir)/float.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += float.h float.h-t EXTRA_DIST += float.in.h --- 472,508 ---- ## end gnulib module filemode + ## begin gnulib module filenamecat-lgpl + + + EXTRA_DIST += filenamecat-lgpl.c filenamecat.h + + EXTRA_libgnu_la_SOURCES += filenamecat-lgpl.c + + ## end gnulib module filenamecat-lgpl + ## begin gnulib module float BUILT_SOURCES += $(FLOAT_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! if GL_GENERATE_FLOAT_H ! float.h: float.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \ < $(srcdir)/float.in.h; \ } > $@-t && \ mv $@-t $@ + else + float.h: $(top_builddir)/config.status + rm -f $@ + endif MOSTLYCLEANFILES += float.h float.h-t EXTRA_DIST += float.in.h *************** *** 479,491 **** # We need the following in order to create when the system # doesn't have one that supports the required API. ! fnmatch.h: fnmatch.in.h $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ < $(srcdir)/fnmatch.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += fnmatch.h fnmatch.h-t EXTRA_DIST += fnmatch.c fnmatch.in.h fnmatch_loop.c --- 524,541 ---- # We need the following in order to create when the system # doesn't have one that supports the required API. ! if GL_GENERATE_FNMATCH_H ! fnmatch.h: fnmatch.in.h $(top_builddir)/config.status $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ < $(srcdir)/fnmatch.in.h; \ } > $@-t && \ mv -f $@-t $@ + else + fnmatch.h: $(top_builddir)/config.status + rm -f $@ + endif MOSTLYCLEANFILES += fnmatch.h fnmatch.h-t EXTRA_DIST += fnmatch.c fnmatch.in.h fnmatch_loop.c *************** *** 494,499 **** --- 544,602 ---- ## end gnulib module fnmatch + ## begin gnulib module fpurge + + + EXTRA_DIST += fpurge.c stdio-impl.h + + EXTRA_libgnu_la_SOURCES += fpurge.c + + ## end gnulib module fpurge + + ## begin gnulib module freading + + libgnu_la_SOURCES += freading.c + + EXTRA_DIST += freading.h stdio-impl.h + + ## end gnulib module freading + + ## begin gnulib module fseek + + + EXTRA_DIST += fseek.c + + EXTRA_libgnu_la_SOURCES += fseek.c + + ## end gnulib module fseek + + ## begin gnulib module fseeko + + + EXTRA_DIST += fseeko.c stdio-impl.h + + EXTRA_libgnu_la_SOURCES += fseeko.c + + ## end gnulib module fseeko + + ## begin gnulib module ftell + + + EXTRA_DIST += ftell.c + + EXTRA_libgnu_la_SOURCES += ftell.c + + ## end gnulib module ftell + + ## begin gnulib module ftello + + + EXTRA_DIST += ftello.c stdio-impl.h + + EXTRA_libgnu_la_SOURCES += ftello.c + + ## end gnulib module ftello + ## begin gnulib module getcwd *************** *** 503,508 **** --- 606,620 ---- ## end gnulib module getcwd + ## begin gnulib module getcwd-lgpl + + + EXTRA_DIST += getcwd-lgpl.c + + EXTRA_libgnu_la_SOURCES += getcwd-lgpl.c + + ## end gnulib module getcwd-lgpl + ## begin gnulib module getdtablesize *************** *** 536,545 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! getopt.h: getopt.in.h $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ --- 648,658 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ *************** *** 577,583 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! glob.h: glob.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''HAVE_SYS_CDEFS_H''@|$(HAVE_SYS_CDEFS_H)|g' \ --- 690,697 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! if GL_GENERATE_GLOB_H ! glob.h: glob.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''HAVE_SYS_CDEFS_H''@|$(HAVE_SYS_CDEFS_H)|g' \ *************** *** 587,592 **** --- 701,710 ---- < $(srcdir)/glob.in.h; \ } > $@-t && \ mv -f $@-t $@ + else + glob.h: $(top_builddir)/config.status + rm -f $@ + endif MOSTLYCLEANFILES += glob.h glob.h-t EXTRA_DIST += glob-libc.h glob.c glob.in.h *************** *** 694,699 **** --- 812,826 ---- ## end gnulib module localcharset + ## begin gnulib module lseek + + + EXTRA_DIST += lseek.c + + EXTRA_libgnu_la_SOURCES += lseek.c + + ## end gnulib module lseek + ## begin gnulib module lstat *************** *** 726,771 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! math.h: math.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_AS_FIRST_DIRECTIVE_MATH_H''@|$(NEXT_AS_FIRST_DIRECTIVE_MATH_H)|g' \ ! -e 's|@''GNULIB_ACOSL''@|$(GNULIB_ACOSL)|g' \ ! -e 's|@''GNULIB_ASINL''@|$(GNULIB_ASINL)|g' \ ! -e 's|@''GNULIB_ATANL''@|$(GNULIB_ATANL)|g' \ ! -e 's|@''GNULIB_CEIL''@|$(GNULIB_CEIL)|g' \ ! -e 's|@''GNULIB_CEILF''@|$(GNULIB_CEILF)|g' \ ! -e 's|@''GNULIB_CEILL''@|$(GNULIB_CEILL)|g' \ ! -e 's|@''GNULIB_COSL''@|$(GNULIB_COSL)|g' \ ! -e 's|@''GNULIB_EXPL''@|$(GNULIB_EXPL)|g' \ ! -e 's|@''GNULIB_FLOOR''@|$(GNULIB_FLOOR)|g' \ ! -e 's|@''GNULIB_FLOORF''@|$(GNULIB_FLOORF)|g' \ ! -e 's|@''GNULIB_FLOORL''@|$(GNULIB_FLOORL)|g' \ ! -e 's|@''GNULIB_FREXP''@|$(GNULIB_FREXP)|g' \ ! -e 's|@''GNULIB_FREXPL''@|$(GNULIB_FREXPL)|g' \ ! -e 's|@''GNULIB_ISFINITE''@|$(GNULIB_ISFINITE)|g' \ ! -e 's|@''GNULIB_ISINF''@|$(GNULIB_ISINF)|g' \ ! -e 's|@''GNULIB_ISNAN''@|$(GNULIB_ISNAN)|g' \ ! -e 's|@''GNULIB_ISNANF''@|$(GNULIB_ISNANF)|g' \ ! -e 's|@''GNULIB_ISNAND''@|$(GNULIB_ISNAND)|g' \ ! -e 's|@''GNULIB_ISNANL''@|$(GNULIB_ISNANL)|g' \ ! -e 's|@''GNULIB_LDEXPL''@|$(GNULIB_LDEXPL)|g' \ ! -e 's|@''GNULIB_LOGB''@|$(GNULIB_LOGB)|g' \ ! -e 's|@''GNULIB_LOGL''@|$(GNULIB_LOGL)|g' \ ! -e 's|@''GNULIB_ROUND''@|$(GNULIB_ROUND)|g' \ ! -e 's|@''GNULIB_ROUNDF''@|$(GNULIB_ROUNDF)|g' \ ! -e 's|@''GNULIB_ROUNDL''@|$(GNULIB_ROUNDL)|g' \ ! -e 's|@''GNULIB_SIGNBIT''@|$(GNULIB_SIGNBIT)|g' \ ! -e 's|@''GNULIB_SINL''@|$(GNULIB_SINL)|g' \ ! -e 's|@''GNULIB_SQRTL''@|$(GNULIB_SQRTL)|g' \ ! -e 's|@''GNULIB_TANL''@|$(GNULIB_TANL)|g' \ ! -e 's|@''GNULIB_TRUNC''@|$(GNULIB_TRUNC)|g' \ ! -e 's|@''GNULIB_TRUNCF''@|$(GNULIB_TRUNCF)|g' \ ! -e 's|@''GNULIB_TRUNCL''@|$(GNULIB_TRUNCL)|g' \ ! -e 's|@''HAVE_ACOSL''@|$(HAVE_ACOSL)|g' \ -e 's|@''HAVE_ASINL''@|$(HAVE_ASINL)|g' \ -e 's|@''HAVE_ATANL''@|$(HAVE_ATANL)|g' \ -e 's|@''HAVE_COSL''@|$(HAVE_COSL)|g' \ --- 853,900 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_AS_FIRST_DIRECTIVE_MATH_H''@|$(NEXT_AS_FIRST_DIRECTIVE_MATH_H)|g' \ ! -e 's/@''GNULIB_ACOSL''@/$(GNULIB_ACOSL)/g' \ ! -e 's/@''GNULIB_ASINL''@/$(GNULIB_ASINL)/g' \ ! -e 's/@''GNULIB_ATANL''@/$(GNULIB_ATANL)/g' \ ! -e 's/@''GNULIB_CEIL''@/$(GNULIB_CEIL)/g' \ ! -e 's/@''GNULIB_CEILF''@/$(GNULIB_CEILF)/g' \ ! -e 's/@''GNULIB_CEILL''@/$(GNULIB_CEILL)/g' \ ! -e 's/@''GNULIB_COSL''@/$(GNULIB_COSL)/g' \ ! -e 's/@''GNULIB_EXPL''@/$(GNULIB_EXPL)/g' \ ! -e 's/@''GNULIB_FLOOR''@/$(GNULIB_FLOOR)/g' \ ! -e 's/@''GNULIB_FLOORF''@/$(GNULIB_FLOORF)/g' \ ! -e 's/@''GNULIB_FLOORL''@/$(GNULIB_FLOORL)/g' \ ! -e 's/@''GNULIB_FREXP''@/$(GNULIB_FREXP)/g' \ ! -e 's/@''GNULIB_FREXPL''@/$(GNULIB_FREXPL)/g' \ ! -e 's/@''GNULIB_ISFINITE''@/$(GNULIB_ISFINITE)/g' \ ! -e 's/@''GNULIB_ISINF''@/$(GNULIB_ISINF)/g' \ ! -e 's/@''GNULIB_ISNAN''@/$(GNULIB_ISNAN)/g' \ ! -e 's/@''GNULIB_ISNANF''@/$(GNULIB_ISNANF)/g' \ ! -e 's/@''GNULIB_ISNAND''@/$(GNULIB_ISNAND)/g' \ ! -e 's/@''GNULIB_ISNANL''@/$(GNULIB_ISNANL)/g' \ ! -e 's/@''GNULIB_LDEXPL''@/$(GNULIB_LDEXPL)/g' \ ! -e 's/@''GNULIB_LOGB''@/$(GNULIB_LOGB)/g' \ ! -e 's/@''GNULIB_LOGL''@/$(GNULIB_LOGL)/g' \ ! -e 's/@''GNULIB_ROUND''@/$(GNULIB_ROUND)/g' \ ! -e 's/@''GNULIB_ROUNDF''@/$(GNULIB_ROUNDF)/g' \ ! -e 's/@''GNULIB_ROUNDL''@/$(GNULIB_ROUNDL)/g' \ ! -e 's/@''GNULIB_SIGNBIT''@/$(GNULIB_SIGNBIT)/g' \ ! -e 's/@''GNULIB_SINL''@/$(GNULIB_SINL)/g' \ ! -e 's/@''GNULIB_SQRTL''@/$(GNULIB_SQRTL)/g' \ ! -e 's/@''GNULIB_TANL''@/$(GNULIB_TANL)/g' \ ! -e 's/@''GNULIB_TRUNC''@/$(GNULIB_TRUNC)/g' \ ! -e 's/@''GNULIB_TRUNCF''@/$(GNULIB_TRUNCF)/g' \ ! -e 's/@''GNULIB_TRUNCL''@/$(GNULIB_TRUNCL)/g' \ ! < $(srcdir)/math.in.h | \ ! sed -e 's|@''HAVE_ACOSL''@|$(HAVE_ACOSL)|g' \ -e 's|@''HAVE_ASINL''@|$(HAVE_ASINL)|g' \ -e 's|@''HAVE_ATANL''@|$(HAVE_ATANL)|g' \ -e 's|@''HAVE_COSL''@|$(HAVE_COSL)|g' \ *************** *** 799,805 **** -e 's|@''HAVE_DECL_TRUNC''@|$(HAVE_DECL_TRUNC)|g' \ -e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \ -e 's|@''HAVE_DECL_TRUNCL''@|$(HAVE_DECL_TRUNCL)|g' \ ! -e 's|@''REPLACE_CEIL''@|$(REPLACE_CEIL)|g' \ -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \ -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \ -e 's|@''REPLACE_FLOOR''@|$(REPLACE_FLOOR)|g' \ --- 928,935 ---- -e 's|@''HAVE_DECL_TRUNC''@|$(HAVE_DECL_TRUNC)|g' \ -e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \ -e 's|@''HAVE_DECL_TRUNCL''@|$(HAVE_DECL_TRUNCL)|g' \ ! | \ ! sed -e 's|@''REPLACE_CEIL''@|$(REPLACE_CEIL)|g' \ -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \ -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \ -e 's|@''REPLACE_FLOOR''@|$(REPLACE_FLOOR)|g' \ *************** *** 823,830 **** -e 's|@''REPLACE_TRUNCL''@|$(REPLACE_TRUNCL)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ! -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ ! < $(srcdir)/math.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += math.h math.h-t --- 953,959 ---- -e 's|@''REPLACE_TRUNCL''@|$(REPLACE_TRUNCL)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ! -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += math.h math.h-t *************** *** 932,937 **** --- 1061,1074 ---- ## end gnulib module nanosleep + ## begin gnulib module nproc + + libgnu_la_SOURCES += nproc.c + + EXTRA_DIST += nproc.h + + ## end gnulib module nproc + ## begin gnulib module open *************** *** 1063,1084 **** # We need the following in order to create when the system # doesn't have a complete one. ! signal.h: signal.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \ ! -e 's|@''GNULIB_SIGNAL_H_SIGPIPE''@|$(GNULIB_SIGNAL_H_SIGPIPE)|g' \ ! -e 's|@''GNULIB_SIGPROCMASK''@|$(GNULIB_SIGPROCMASK)|g' \ ! -e 's|@''GNULIB_SIGACTION''@|$(GNULIB_SIGACTION)|g' \ -e 's|@''HAVE_POSIX_SIGNALBLOCKING''@|$(HAVE_POSIX_SIGNALBLOCKING)|g' \ -e 's|@''HAVE_SIGSET_T''@|$(HAVE_SIGSET_T)|g' \ -e 's|@''HAVE_SIGINFO_T''@|$(HAVE_SIGINFO_T)|g' \ -e 's|@''HAVE_SIGACTION''@|$(HAVE_SIGACTION)|g' \ -e 's|@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@|$(HAVE_STRUCT_SIGACTION_SA_SIGACTION)|g' \ -e 's|@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@|$(HAVE_TYPE_VOLATILE_SIG_ATOMIC_T)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ --- 1200,1223 ---- # We need the following in order to create when the system # doesn't have a complete one. ! signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \ ! -e 's/@''GNULIB_SIGNAL_H_SIGPIPE''@/$(GNULIB_SIGNAL_H_SIGPIPE)/g' \ ! -e 's/@''GNULIB_SIGPROCMASK''@/$(GNULIB_SIGPROCMASK)/g' \ ! -e 's/@''GNULIB_SIGACTION''@/$(GNULIB_SIGACTION)/g' \ -e 's|@''HAVE_POSIX_SIGNALBLOCKING''@|$(HAVE_POSIX_SIGNALBLOCKING)|g' \ -e 's|@''HAVE_SIGSET_T''@|$(HAVE_SIGSET_T)|g' \ -e 's|@''HAVE_SIGINFO_T''@|$(HAVE_SIGINFO_T)|g' \ -e 's|@''HAVE_SIGACTION''@|$(HAVE_SIGACTION)|g' \ -e 's|@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@|$(HAVE_STRUCT_SIGACTION_SA_SIGACTION)|g' \ -e 's|@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@|$(HAVE_TYPE_VOLATILE_SIG_ATOMIC_T)|g' \ + -e 's|@''HAVE_SIGHANDLER_T''@|$(HAVE_SIGHANDLER_T)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ *************** *** 1138,1149 **** # We need the following in order to create when the system # doesn't have one that works. ! stdbool.h: stdbool.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdbool.h stdbool.h-t EXTRA_DIST += stdbool.in.h --- 1277,1293 ---- # We need the following in order to create when the system # doesn't have one that works. ! if GL_GENERATE_STDBOOL_H ! stdbool.h: stdbool.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ } > $@-t && \ mv $@-t $@ + else + stdbool.h: $(top_builddir)/config.status + rm -f $@ + endif MOSTLYCLEANFILES += stdbool.h stdbool.h-t EXTRA_DIST += stdbool.in.h *************** *** 1156,1165 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! stddef.h: stddef.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ --- 1300,1311 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! if GL_GENERATE_STDDEF_H ! stddef.h: stddef.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ *************** *** 1168,1173 **** --- 1314,1323 ---- < $(srcdir)/stddef.in.h; \ } > $@-t && \ mv $@-t $@ + else + stddef.h: $(top_builddir)/config.status + rm -f $@ + endif MOSTLYCLEANFILES += stddef.h stddef.h-t EXTRA_DIST += stddef.in.h *************** *** 1180,1189 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! stdint.h: stdint.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ --- 1330,1341 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! if GL_GENERATE_STDINT_H ! stdint.h: stdint.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ *************** *** 1192,1197 **** --- 1344,1350 ---- -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ + -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ *************** *** 1211,1216 **** --- 1364,1373 ---- < $(srcdir)/stdint.in.h; \ } > $@-t && \ mv $@-t $@ + else + stdint.h: $(top_builddir)/config.status + rm -f $@ + endif MOSTLYCLEANFILES += stdint.h stdint.h-t EXTRA_DIST += stdint.in.h *************** *** 1223,1276 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! stdio.h: stdio.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ ! -e 's|@''GNULIB_DPRINTF''@|$(GNULIB_DPRINTF)|g' \ ! -e 's|@''GNULIB_FCLOSE''@|$(GNULIB_FCLOSE)|g' \ ! -e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \ ! -e 's|@''GNULIB_FOPEN''@|$(GNULIB_FOPEN)|g' \ ! -e 's|@''GNULIB_FPRINTF''@|$(GNULIB_FPRINTF)|g' \ ! -e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \ ! -e 's|@''GNULIB_FPURGE''@|$(GNULIB_FPURGE)|g' \ ! -e 's|@''GNULIB_FPUTC''@|$(GNULIB_FPUTC)|g' \ ! -e 's|@''GNULIB_FPUTS''@|$(GNULIB_FPUTS)|g' \ ! -e 's|@''GNULIB_FREOPEN''@|$(GNULIB_FREOPEN)|g' \ ! -e 's|@''GNULIB_FSEEK''@|$(GNULIB_FSEEK)|g' \ ! -e 's|@''GNULIB_FSEEKO''@|$(GNULIB_FSEEKO)|g' \ ! -e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \ ! -e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \ ! -e 's|@''GNULIB_FWRITE''@|$(GNULIB_FWRITE)|g' \ ! -e 's|@''GNULIB_GETDELIM''@|$(GNULIB_GETDELIM)|g' \ ! -e 's|@''GNULIB_GETLINE''@|$(GNULIB_GETLINE)|g' \ ! -e 's|@''GNULIB_OBSTACK_PRINTF''@|$(GNULIB_OBSTACK_PRINTF)|g' \ ! -e 's|@''GNULIB_OBSTACK_PRINTF_POSIX''@|$(GNULIB_OBSTACK_PRINTF_POSIX)|g' \ ! -e 's|@''GNULIB_PERROR''@|$(GNULIB_PERROR)|g' \ ! -e 's|@''GNULIB_POPEN''@|$(GNULIB_POPEN)|g' \ ! -e 's|@''GNULIB_PRINTF''@|$(GNULIB_PRINTF)|g' \ ! -e 's|@''GNULIB_PRINTF_POSIX''@|$(GNULIB_PRINTF_POSIX)|g' \ ! -e 's|@''GNULIB_PUTC''@|$(GNULIB_PUTC)|g' \ ! -e 's|@''GNULIB_PUTCHAR''@|$(GNULIB_PUTCHAR)|g' \ ! -e 's|@''GNULIB_PUTS''@|$(GNULIB_PUTS)|g' \ ! -e 's|@''GNULIB_REMOVE''@|$(GNULIB_REMOVE)|g' \ ! -e 's|@''GNULIB_RENAME''@|$(GNULIB_RENAME)|g' \ ! -e 's|@''GNULIB_RENAMEAT''@|$(GNULIB_RENAMEAT)|g' \ ! -e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \ ! -e 's|@''GNULIB_SPRINTF_POSIX''@|$(GNULIB_SPRINTF_POSIX)|g' \ ! -e 's|@''GNULIB_STDIO_H_SIGPIPE''@|$(GNULIB_STDIO_H_SIGPIPE)|g' \ ! -e 's|@''GNULIB_TMPFILE''@|$(GNULIB_TMPFILE)|g' \ ! -e 's|@''GNULIB_VASPRINTF''@|$(GNULIB_VASPRINTF)|g' \ ! -e 's|@''GNULIB_VDPRINTF''@|$(GNULIB_VDPRINTF)|g' \ ! -e 's|@''GNULIB_VFPRINTF''@|$(GNULIB_VFPRINTF)|g' \ ! -e 's|@''GNULIB_VFPRINTF_POSIX''@|$(GNULIB_VFPRINTF_POSIX)|g' \ ! -e 's|@''GNULIB_VPRINTF''@|$(GNULIB_VPRINTF)|g' \ ! -e 's|@''GNULIB_VPRINTF_POSIX''@|$(GNULIB_VPRINTF_POSIX)|g' \ ! -e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \ ! -e 's|@''GNULIB_VSPRINTF_POSIX''@|$(GNULIB_VSPRINTF_POSIX)|g' \ < $(srcdir)/stdio.in.h | \ sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ --- 1380,1445 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ ! -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \ ! -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \ ! -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \ ! -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \ ! -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \ ! -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \ ! -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \ ! -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \ ! -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \ ! -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \ ! -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \ ! -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \ ! -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \ ! -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \ ! -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \ ! -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \ ! -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \ ! -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \ ! -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \ ! -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \ ! -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \ ! -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \ ! -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \ ! -e 's/@''GNULIB_GETS''@/$(GNULIB_GETS)/g' \ ! -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \ ! -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \ ! -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \ ! -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \ ! -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \ ! -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \ ! -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \ ! -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \ ! -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \ ! -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \ ! -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \ ! -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \ ! -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \ ! -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \ ! -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \ ! -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \ ! -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \ ! -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \ ! -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \ ! -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \ ! -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \ ! -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \ ! -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \ ! -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \ ! -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \ ! -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \ ! -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \ ! -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \ < $(srcdir)/stdio.in.h | \ sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ *************** *** 1308,1313 **** --- 1477,1483 ---- -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ + -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \ -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \ -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ *************** *** 1324,1332 **** mv $@-t $@ MOSTLYCLEANFILES += stdio.h stdio.h-t ! EXTRA_DIST += stdio-write.c stdio.in.h ! ! EXTRA_libgnu_la_SOURCES += stdio-write.c ## end gnulib module stdio --- 1494,1500 ---- mv $@-t $@ MOSTLYCLEANFILES += stdio.h stdio.h-t ! EXTRA_DIST += stdio.in.h ## end gnulib module stdio *************** *** 1336,1375 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! stdlib.h: stdlib.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ ! -e 's|@''GNULIB__EXIT''@|$(GNULIB__EXIT)|g' \ ! -e 's|@''GNULIB_ATOLL''@|$(GNULIB_ATOLL)|g' \ ! -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \ ! -e 's|@''GNULIB_CANONICALIZE_FILE_NAME''@|$(GNULIB_CANONICALIZE_FILE_NAME)|g' \ ! -e 's|@''GNULIB_GETLOADAVG''@|$(GNULIB_GETLOADAVG)|g' \ ! -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \ ! -e 's|@''GNULIB_GRANTPT''@|$(GNULIB_GRANTPT)|g' \ ! -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \ ! -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \ ! -e 's|@''GNULIB_MKOSTEMP''@|$(GNULIB_MKOSTEMP)|g' \ ! -e 's|@''GNULIB_MKOSTEMPS''@|$(GNULIB_MKOSTEMPS)|g' \ ! -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \ ! -e 's|@''GNULIB_MKSTEMPS''@|$(GNULIB_MKSTEMPS)|g' \ ! -e 's|@''GNULIB_PTSNAME''@|$(GNULIB_PTSNAME)|g' \ ! -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \ ! -e 's|@''GNULIB_RANDOM_R''@|$(GNULIB_RANDOM_R)|g' \ ! -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \ ! -e 's|@''GNULIB_REALPATH''@|$(GNULIB_REALPATH)|g' \ ! -e 's|@''GNULIB_RPMATCH''@|$(GNULIB_RPMATCH)|g' \ ! -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \ ! -e 's|@''GNULIB_STRTOD''@|$(GNULIB_STRTOD)|g' \ ! -e 's|@''GNULIB_STRTOLL''@|$(GNULIB_STRTOLL)|g' \ ! -e 's|@''GNULIB_STRTOULL''@|$(GNULIB_STRTOULL)|g' \ ! -e 's|@''GNULIB_SYSTEM_POSIX''@|$(GNULIB_SYSTEM_POSIX)|g' \ ! -e 's|@''GNULIB_UNLOCKPT''@|$(GNULIB_UNLOCKPT)|g' \ ! -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \ ! -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ --- 1504,1547 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ ! -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \ ! -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \ ! -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \ ! -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \ ! -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \ ! -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \ ! -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \ ! -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \ ! -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \ ! -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \ ! -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \ ! -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \ ! -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \ ! -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \ ! -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ ! -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ ! -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ ! -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ ! -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \ ! -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \ ! -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ ! -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ ! -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ ! -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ ! -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ ! -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \ ! -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \ ! -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \ ! < $(srcdir)/stdlib.in.h | \ ! sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ *************** *** 1396,1401 **** --- 1568,1574 ---- -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ + -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ *************** *** 1403,1412 **** -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ! -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ ! < $(srcdir)/stdlib.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdlib.h stdlib.h-t --- 1576,1585 ---- -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ + -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ! -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdlib.h stdlib.h-t *************** *** 1415,1429 **** ## end gnulib module stdlib - ## begin gnulib module strcase - - - EXTRA_DIST += strcasecmp.c strncasecmp.c - - EXTRA_libgnu_la_SOURCES += strcasecmp.c strncasecmp.c - - ## end gnulib module strcase - ## begin gnulib module strdup-posix --- 1588,1593 ---- *************** *** 1449,1454 **** --- 1613,1627 ---- ## end gnulib module strerror + ## begin gnulib module strerror-override + + + EXTRA_DIST += strerror-override.c strerror-override.h + + EXTRA_libgnu_la_SOURCES += strerror-override.c + + ## end gnulib module strerror-override + ## begin gnulib module strftime *************** *** 1464,1511 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! string.h: string.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ ! -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \ ! -e 's|@''GNULIB_MBSNLEN''@|$(GNULIB_MBSNLEN)|g' \ ! -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \ ! -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \ ! -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \ ! -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \ ! -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \ ! -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \ ! -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \ ! -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \ ! -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \ ! -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \ ! -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \ ! -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \ ! -e 's|@''GNULIB_MEMCHR''@|$(GNULIB_MEMCHR)|g' \ ! -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \ ! -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \ ! -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \ ! -e 's|@''GNULIB_RAWMEMCHR''@|$(GNULIB_RAWMEMCHR)|g' \ ! -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \ ! -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \ ! -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \ ! -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \ ! -e 's|@''GNULIB_STRNCAT''@|$(GNULIB_STRNCAT)|g' \ ! -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \ ! -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \ ! -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \ ! -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \ ! -e 's|@''GNULIB_STRSTR''@|$(GNULIB_STRSTR)|g' \ ! -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \ ! -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \ ! -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \ ! -e 's|@''GNULIB_STRERROR_R''@|$(GNULIB_STRERROR_R)|g' \ ! -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \ ! -e 's|@''GNULIB_STRVERSCMP''@|$(GNULIB_STRVERSCMP)|g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \ --- 1637,1685 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ ! -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \ ! -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \ ! -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \ ! -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \ ! -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \ ! -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \ ! -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \ ! -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \ ! -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \ ! -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \ ! -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \ ! -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \ ! -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \ ! -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \ ! -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \ ! -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \ ! -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \ ! -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \ ! -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \ ! -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \ ! -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \ ! -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \ ! -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \ ! -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \ ! -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \ ! -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \ ! -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \ ! -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \ ! -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \ ! -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \ ! -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \ ! -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \ ! -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \ ! -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \ ! -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \ *************** *** 1530,1535 **** --- 1704,1710 ---- -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ + -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ *************** *** 1552,1583 **** ## end gnulib module string - ## begin gnulib module strings - - BUILT_SOURCES += strings.h - - # We need the following in order to create when the system - # doesn't have one that works with the given compiler. - strings.h: strings.in.h $(WARN_ON_USE_H) $(ARG_NONNULL_H) - $(AM_V_GEN)rm -f $@-t $@ && \ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ - sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ - -e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \ - -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \ - -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \ - -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - < $(srcdir)/strings.in.h; \ - } > $@-t && \ - mv $@-t $@ - MOSTLYCLEANFILES += strings.h strings.h-t - - EXTRA_DIST += strings.in.h - - ## end gnulib module strings - ## begin gnulib module strnlen1 libgnu_la_SOURCES += strnlen1.h strnlen1.c --- 1727,1732 ---- *************** *** 1608,1623 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! sys/select.h: sys_select.in.h $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_SELECT_H''@|$(NEXT_SYS_SELECT_H)|g' \ -e 's|@''HAVE_SYS_SELECT_H''@|$(HAVE_SYS_SELECT_H)|g' \ ! -e 's|@''GNULIB_SELECT''@|$(GNULIB_SELECT)|g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's|@''REPLACE_SELECT''@|$(REPLACE_SELECT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ --- 1757,1773 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! sys/select.h: sys_select.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_SELECT_H''@|$(NEXT_SYS_SELECT_H)|g' \ -e 's|@''HAVE_SYS_SELECT_H''@|$(HAVE_SYS_SELECT_H)|g' \ ! -e 's/@''GNULIB_SELECT''@/$(GNULIB_SELECT)/g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's|@''REPLACE_SELECT''@|$(REPLACE_SELECT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ *************** *** 1638,1668 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! sys/socket.h: sys_socket.in.h $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \ -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \ ! -e 's|@''GNULIB_CLOSE''@|$(GNULIB_CLOSE)|g' \ ! -e 's|@''GNULIB_SOCKET''@|$(GNULIB_SOCKET)|g' \ ! -e 's|@''GNULIB_CONNECT''@|$(GNULIB_CONNECT)|g' \ ! -e 's|@''GNULIB_ACCEPT''@|$(GNULIB_ACCEPT)|g' \ ! -e 's|@''GNULIB_BIND''@|$(GNULIB_BIND)|g' \ ! -e 's|@''GNULIB_GETPEERNAME''@|$(GNULIB_GETPEERNAME)|g' \ ! -e 's|@''GNULIB_GETSOCKNAME''@|$(GNULIB_GETSOCKNAME)|g' \ ! -e 's|@''GNULIB_GETSOCKOPT''@|$(GNULIB_GETSOCKOPT)|g' \ ! -e 's|@''GNULIB_LISTEN''@|$(GNULIB_LISTEN)|g' \ ! -e 's|@''GNULIB_RECV''@|$(GNULIB_RECV)|g' \ ! -e 's|@''GNULIB_SEND''@|$(GNULIB_SEND)|g' \ ! -e 's|@''GNULIB_RECVFROM''@|$(GNULIB_RECVFROM)|g' \ ! -e 's|@''GNULIB_SENDTO''@|$(GNULIB_SENDTO)|g' \ ! -e 's|@''GNULIB_SETSOCKOPT''@|$(GNULIB_SETSOCKOPT)|g' \ ! -e 's|@''GNULIB_SHUTDOWN''@|$(GNULIB_SHUTDOWN)|g' \ ! -e 's|@''GNULIB_ACCEPT4''@|$(GNULIB_ACCEPT4)|g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \ -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \ --- 1788,1819 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! sys/socket.h: sys_socket.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \ -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \ ! -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ ! -e 's/@''GNULIB_SOCKET''@/$(GNULIB_SOCKET)/g' \ ! -e 's/@''GNULIB_CONNECT''@/$(GNULIB_CONNECT)/g' \ ! -e 's/@''GNULIB_ACCEPT''@/$(GNULIB_ACCEPT)/g' \ ! -e 's/@''GNULIB_BIND''@/$(GNULIB_BIND)/g' \ ! -e 's/@''GNULIB_GETPEERNAME''@/$(GNULIB_GETPEERNAME)/g' \ ! -e 's/@''GNULIB_GETSOCKNAME''@/$(GNULIB_GETSOCKNAME)/g' \ ! -e 's/@''GNULIB_GETSOCKOPT''@/$(GNULIB_GETSOCKOPT)/g' \ ! -e 's/@''GNULIB_LISTEN''@/$(GNULIB_LISTEN)/g' \ ! -e 's/@''GNULIB_RECV''@/$(GNULIB_RECV)/g' \ ! -e 's/@''GNULIB_SEND''@/$(GNULIB_SEND)/g' \ ! -e 's/@''GNULIB_RECVFROM''@/$(GNULIB_RECVFROM)/g' \ ! -e 's/@''GNULIB_SENDTO''@/$(GNULIB_SENDTO)/g' \ ! -e 's/@''GNULIB_SETSOCKOPT''@/$(GNULIB_SETSOCKOPT)/g' \ ! -e 's/@''GNULIB_SHUTDOWN''@/$(GNULIB_SHUTDOWN)/g' \ ! -e 's/@''GNULIB_ACCEPT4''@/$(GNULIB_ACCEPT4)/g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \ -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \ *************** *** 1688,1713 **** # We need the following in order to create when the system # has one that is incomplete. ! sys/stat.h: sys_stat.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ ! -e 's|@''GNULIB_FCHMODAT''@|$(GNULIB_FCHMODAT)|g' \ ! -e 's|@''GNULIB_FSTATAT''@|$(GNULIB_FSTATAT)|g' \ ! -e 's|@''GNULIB_FUTIMENS''@|$(GNULIB_FUTIMENS)|g' \ ! -e 's|@''GNULIB_LCHMOD''@|$(GNULIB_LCHMOD)|g' \ ! -e 's|@''GNULIB_LSTAT''@|$(GNULIB_LSTAT)|g' \ ! -e 's|@''GNULIB_MKDIRAT''@|$(GNULIB_MKDIRAT)|g' \ ! -e 's|@''GNULIB_MKFIFO''@|$(GNULIB_MKFIFO)|g' \ ! -e 's|@''GNULIB_MKFIFOAT''@|$(GNULIB_MKFIFOAT)|g' \ ! -e 's|@''GNULIB_MKNOD''@|$(GNULIB_MKNOD)|g' \ ! -e 's|@''GNULIB_MKNODAT''@|$(GNULIB_MKNODAT)|g' \ ! -e 's|@''GNULIB_STAT''@|$(GNULIB_STAT)|g' \ ! -e 's|@''GNULIB_UTIMENSAT''@|$(GNULIB_UTIMENSAT)|g' \ -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ --- 1839,1865 ---- # We need the following in order to create when the system # has one that is incomplete. ! sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ ! -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \ ! -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \ ! -e 's/@''GNULIB_FUTIMENS''@/$(GNULIB_FUTIMENS)/g' \ ! -e 's/@''GNULIB_LCHMOD''@/$(GNULIB_LCHMOD)/g' \ ! -e 's/@''GNULIB_LSTAT''@/$(GNULIB_LSTAT)/g' \ ! -e 's/@''GNULIB_MKDIRAT''@/$(GNULIB_MKDIRAT)/g' \ ! -e 's/@''GNULIB_MKFIFO''@/$(GNULIB_MKFIFO)/g' \ ! -e 's/@''GNULIB_MKFIFOAT''@/$(GNULIB_MKFIFOAT)/g' \ ! -e 's/@''GNULIB_MKNOD''@/$(GNULIB_MKNOD)/g' \ ! -e 's/@''GNULIB_MKNODAT''@/$(GNULIB_MKNODAT)/g' \ ! -e 's/@''GNULIB_STAT''@/$(GNULIB_STAT)/g' \ ! -e 's/@''GNULIB_UTIMENSAT''@/$(GNULIB_UTIMENSAT)/g' \ -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ *************** *** 1747,1757 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! sys/time.h: sys_time.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ --- 1899,1910 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! sys/time.h: sys_time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ *************** *** 1778,1793 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! sys/times.h: sys_times.in.h $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's/@''HAVE_SYS_TIMES_H''@/$(HAVE_SYS_TIMES_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TIMES_H''@|$(NEXT_SYS_TIMES_H)|g' \ ! -e 's|@''GNULIB_TIMES''@|$(GNULIB_TIMES)|g' \ -e 's|@''HAVE_STRUCT_TMS''@|$(HAVE_STRUCT_TMS)|g' \ -e 's|@''HAVE_TIMES''@|$(HAVE_TIMES)|g' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ --- 1931,1947 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! sys/times.h: sys_times.in.h $(top_builddir)/config.status $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's/@''HAVE_SYS_TIMES_H''@/$(HAVE_SYS_TIMES_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TIMES_H''@|$(NEXT_SYS_TIMES_H)|g' \ ! -e 's/@''GNULIB_TIMES''@/$(GNULIB_TIMES)/g' \ -e 's|@''HAVE_STRUCT_TMS''@|$(HAVE_STRUCT_TMS)|g' \ -e 's|@''HAVE_TIMES''@|$(HAVE_TIMES)|g' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ *************** *** 1802,1807 **** --- 1956,1987 ---- ## end gnulib module sys_times + ## begin gnulib module sys_uio + + BUILT_SOURCES += sys/uio.h + + # We need the following in order to create when the system + # doesn't have one that works with the given compiler. + sys/uio.h: sys_uio.in.h $(top_builddir)/config.status + $(AM_V_at)$(MKDIR_P) sys + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_SYS_UIO_H''@|$(NEXT_SYS_UIO_H)|g' \ + -e 's|@''HAVE_SYS_UIO_H''@|$(HAVE_SYS_UIO_H)|g' \ + < $(srcdir)/sys_uio.in.h; \ + } > $@-t && \ + mv -f $@-t $@ + MOSTLYCLEANFILES += sys/uio.h sys/uio.h-t + MOSTLYCLEANDIRS += sys + + EXTRA_DIST += sys_uio.in.h + + ## end gnulib module sys_uio + ## begin gnulib module tempname *************** *** 1817,1834 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! time.h: time.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ ! -e 's|@''GNULIB_MKTIME''@|$(GNULIB_MKTIME)|g' \ ! -e 's|@''GNULIB_NANOSLEEP''@|$(GNULIB_NANOSLEEP)|g' \ ! -e 's|@''GNULIB_STRPTIME''@|$(GNULIB_STRPTIME)|g' \ ! -e 's|@''GNULIB_TIMEGM''@|$(GNULIB_TIMEGM)|g' \ ! -e 's|@''GNULIB_TIME_R''@|$(GNULIB_TIME_R)|g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ --- 1997,2015 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ ! -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \ ! -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \ ! -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \ ! -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \ ! -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ *************** *** 1894,1948 **** # We need the following in order to create an empty placeholder for # when the system doesn't have one. ! unistd.h: unistd.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ ! -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \ ! -e 's|@''GNULIB_CLOSE''@|$(GNULIB_CLOSE)|g' \ ! -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \ ! -e 's|@''GNULIB_DUP3''@|$(GNULIB_DUP3)|g' \ ! -e 's|@''GNULIB_ENVIRON''@|$(GNULIB_ENVIRON)|g' \ ! -e 's|@''GNULIB_EUIDACCESS''@|$(GNULIB_EUIDACCESS)|g' \ ! -e 's|@''GNULIB_FACCESSAT''@|$(GNULIB_FACCESSAT)|g' \ ! -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \ ! -e 's|@''GNULIB_FCHOWNAT''@|$(GNULIB_FCHOWNAT)|g' \ ! -e 's|@''GNULIB_FSYNC''@|$(GNULIB_FSYNC)|g' \ ! -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \ ! -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \ ! -e 's|@''GNULIB_GETDOMAINNAME''@|$(GNULIB_GETDOMAINNAME)|g' \ ! -e 's|@''GNULIB_GETDTABLESIZE''@|$(GNULIB_GETDTABLESIZE)|g' \ ! -e 's|@''GNULIB_GETGROUPS''@|$(GNULIB_GETGROUPS)|g' \ ! -e 's|@''GNULIB_GETHOSTNAME''@|$(GNULIB_GETHOSTNAME)|g' \ ! -e 's|@''GNULIB_GETLOGIN''@|$(GNULIB_GETLOGIN)|g' \ ! -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \ ! -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \ ! -e 's|@''GNULIB_GETUSERSHELL''@|$(GNULIB_GETUSERSHELL)|g' \ ! -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \ ! -e 's|@''GNULIB_LINK''@|$(GNULIB_LINK)|g' \ ! -e 's|@''GNULIB_LINKAT''@|$(GNULIB_LINKAT)|g' \ ! -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \ ! -e 's|@''GNULIB_PIPE''@|$(GNULIB_PIPE)|g' \ ! -e 's|@''GNULIB_PIPE2''@|$(GNULIB_PIPE2)|g' \ ! -e 's|@''GNULIB_PREAD''@|$(GNULIB_PREAD)|g' \ ! -e 's|@''GNULIB_PWRITE''@|$(GNULIB_PWRITE)|g' \ ! -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \ ! -e 's|@''GNULIB_READLINKAT''@|$(GNULIB_READLINKAT)|g' \ ! -e 's|@''GNULIB_RMDIR''@|$(GNULIB_RMDIR)|g' \ ! -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \ ! -e 's|@''GNULIB_SYMLINK''@|$(GNULIB_SYMLINK)|g' \ ! -e 's|@''GNULIB_SYMLINKAT''@|$(GNULIB_SYMLINKAT)|g' \ ! -e 's|@''GNULIB_TTYNAME_R''@|$(GNULIB_TTYNAME_R)|g' \ ! -e 's|@''GNULIB_UNISTD_H_GETOPT''@|$(GNULIB_UNISTD_H_GETOPT)|g' \ ! -e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \ ! -e 's|@''GNULIB_UNLINK''@|$(GNULIB_UNLINK)|g' \ ! -e 's|@''GNULIB_UNLINKAT''@|$(GNULIB_UNLINKAT)|g' \ ! -e 's|@''GNULIB_USLEEP''@|$(GNULIB_USLEEP)|g' \ ! -e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ --- 2075,2133 ---- # We need the following in order to create an empty placeholder for # when the system doesn't have one. ! unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ ! -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ ! -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ ! -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ ! -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ ! -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \ ! -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \ ! -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \ ! -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \ ! -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \ ! -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \ ! -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \ ! -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \ ! -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \ ! -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \ ! -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \ ! -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \ ! -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \ ! -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \ ! -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \ ! -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ ! -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ ! -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \ ! -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \ ! -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \ ! -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \ ! -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \ ! -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \ ! -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \ ! -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \ ! -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \ ! -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \ ! -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \ ! -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \ ! -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \ ! -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \ ! -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \ ! -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \ ! -e 's/@''GNULIB_UNISTD_H_GETOPT''@/$(GNULIB_UNISTD_H_GETOPT)/g' \ ! -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \ ! -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \ ! -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \ ! -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \ ! -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \ ! -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ *************** *** 1958,1963 **** --- 2143,2149 ---- -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ + -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ *************** *** 1981,1987 **** -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ ! -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ --- 2167,2174 ---- -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ ! | \ ! sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ *************** *** 1997,2002 **** --- 2184,2190 ---- -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ + -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ *************** *** 2048,2054 **** ## begin gnulib module verify ! libgnu_la_SOURCES += verify.h ## end gnulib module verify --- 2236,2243 ---- ## begin gnulib module verify ! ! EXTRA_DIST += verify.h ## end gnulib module verify *************** *** 2086,2140 **** # We need the following in order to create when the system # version does not work standalone. ! wchar.h: wchar.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ ! -e 's|@''GNULIB_BTOWC''@|$(GNULIB_BTOWC)|g' \ ! -e 's|@''GNULIB_WCTOB''@|$(GNULIB_WCTOB)|g' \ ! -e 's|@''GNULIB_MBSINIT''@|$(GNULIB_MBSINIT)|g' \ ! -e 's|@''GNULIB_MBRTOWC''@|$(GNULIB_MBRTOWC)|g' \ ! -e 's|@''GNULIB_MBRLEN''@|$(GNULIB_MBRLEN)|g' \ ! -e 's|@''GNULIB_MBSRTOWCS''@|$(GNULIB_MBSRTOWCS)|g' \ ! -e 's|@''GNULIB_MBSNRTOWCS''@|$(GNULIB_MBSNRTOWCS)|g' \ ! -e 's|@''GNULIB_WCRTOMB''@|$(GNULIB_WCRTOMB)|g' \ ! -e 's|@''GNULIB_WCSRTOMBS''@|$(GNULIB_WCSRTOMBS)|g' \ ! -e 's|@''GNULIB_WCSNRTOMBS''@|$(GNULIB_WCSNRTOMBS)|g' \ ! -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \ ! -e 's|@''GNULIB_WMEMCHR''@|$(GNULIB_WMEMCHR)|g' \ ! -e 's|@''GNULIB_WMEMCMP''@|$(GNULIB_WMEMCMP)|g' \ ! -e 's|@''GNULIB_WMEMCPY''@|$(GNULIB_WMEMCPY)|g' \ ! -e 's|@''GNULIB_WMEMMOVE''@|$(GNULIB_WMEMMOVE)|g' \ ! -e 's|@''GNULIB_WMEMSET''@|$(GNULIB_WMEMSET)|g' \ ! -e 's|@''GNULIB_WCSLEN''@|$(GNULIB_WCSLEN)|g' \ ! -e 's|@''GNULIB_WCSNLEN''@|$(GNULIB_WCSNLEN)|g' \ ! -e 's|@''GNULIB_WCSCPY''@|$(GNULIB_WCSCPY)|g' \ ! -e 's|@''GNULIB_WCPCPY''@|$(GNULIB_WCPCPY)|g' \ ! -e 's|@''GNULIB_WCSNCPY''@|$(GNULIB_WCSNCPY)|g' \ ! -e 's|@''GNULIB_WCPNCPY''@|$(GNULIB_WCPNCPY)|g' \ ! -e 's|@''GNULIB_WCSCAT''@|$(GNULIB_WCSCAT)|g' \ ! -e 's|@''GNULIB_WCSNCAT''@|$(GNULIB_WCSNCAT)|g' \ ! -e 's|@''GNULIB_WCSCMP''@|$(GNULIB_WCSCMP)|g' \ ! -e 's|@''GNULIB_WCSNCMP''@|$(GNULIB_WCSNCMP)|g' \ ! -e 's|@''GNULIB_WCSCASECMP''@|$(GNULIB_WCSCASECMP)|g' \ ! -e 's|@''GNULIB_WCSNCASECMP''@|$(GNULIB_WCSNCASECMP)|g' \ ! -e 's|@''GNULIB_WCSCOLL''@|$(GNULIB_WCSCOLL)|g' \ ! -e 's|@''GNULIB_WCSXFRM''@|$(GNULIB_WCSXFRM)|g' \ ! -e 's|@''GNULIB_WCSDUP''@|$(GNULIB_WCSDUP)|g' \ ! -e 's|@''GNULIB_WCSCHR''@|$(GNULIB_WCSCHR)|g' \ ! -e 's|@''GNULIB_WCSRCHR''@|$(GNULIB_WCSRCHR)|g' \ ! -e 's|@''GNULIB_WCSCSPN''@|$(GNULIB_WCSCSPN)|g' \ ! -e 's|@''GNULIB_WCSSPN''@|$(GNULIB_WCSSPN)|g' \ ! -e 's|@''GNULIB_WCSPBRK''@|$(GNULIB_WCSPBRK)|g' \ ! -e 's|@''GNULIB_WCSSTR''@|$(GNULIB_WCSSTR)|g' \ ! -e 's|@''GNULIB_WCSTOK''@|$(GNULIB_WCSTOK)|g' \ ! -e 's|@''GNULIB_WCSWIDTH''@|$(GNULIB_WCSWIDTH)|g' \ ! -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ --- 2275,2331 ---- # We need the following in order to create when the system # version does not work standalone. ! wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ ! -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \ ! -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \ ! -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \ ! -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \ ! -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \ ! -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \ ! -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \ ! -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \ ! -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \ ! -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \ ! -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \ ! -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \ ! -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \ ! -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \ ! -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \ ! -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \ ! -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \ ! -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \ ! -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \ ! -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \ ! -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \ ! -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \ ! -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \ ! -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \ ! -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \ ! -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \ ! -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \ ! -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \ ! -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \ ! -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \ ! -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \ ! -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \ ! -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \ ! -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \ ! -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \ ! -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \ ! -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \ ! -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \ ! -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \ ! < $(srcdir)/wchar.in.h | \ ! sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ *************** *** 2174,2180 **** -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ ! -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ --- 2365,2372 ---- -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ ! | \ ! sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ *************** *** 2189,2196 **** -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ! -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ ! < $(srcdir)/wchar.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += wchar.h wchar.h-t --- 2381,2387 ---- -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ! -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += wchar.h wchar.h-t *************** *** 2205,2220 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! wctype.h: wctype.in.h $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \ -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \ --- 2396,2419 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ + -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \ + -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \ + -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \ + -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \ + -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \ -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \ -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ + -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \ + -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \ *************** *** 2225,2233 **** mv $@-t $@ MOSTLYCLEANFILES += wctype.h wctype.h-t ! EXTRA_DIST += iswblank.c wctype.in.h ! ! EXTRA_libgnu_la_SOURCES += iswblank.c ## end gnulib module wctype-h --- 2424,2430 ---- mv $@-t $@ MOSTLYCLEANFILES += wctype.h wctype.h-t ! EXTRA_DIST += wctype.in.h ## end gnulib module wctype-h diff -cNr octave-3.4.0/libgnu/intprops.h octave-3.4.1/libgnu/intprops.h *** octave-3.4.0/libgnu/intprops.h 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/intprops.h 2011-06-15 11:31:06.000000000 -0400 *************** *** 19,88 **** /* Written by Paul Eggert. */ ! #ifndef GL_INTPROPS_H ! # define GL_INTPROPS_H ! # include /* The extra casts in the following macros work around compiler bugs, e.g., in Cray C 5.0.3.0. */ /* True if the arithmetic type T is an integer type. bool counts as an integer. */ ! # define TYPE_IS_INTEGER(t) ((t) 1.5 == 1) /* True if negative values of the signed integer type T use two's complement, ones' complement, or signed magnitude representation, respectively. Much GNU code assumes two's complement, but some people like to be portable to all possible C hosts. */ ! # define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1) ! # define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0) ! # define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1) /* True if the arithmetic type T is signed. */ ! # define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) ! /* The maximum and minimum values for the integer type T. These macros have undefined behavior if T is signed and has padding bits. If this is a problem for you, please let us know how to fix it for your host. */ ! # define TYPE_MINIMUM(t) \ ! ((t) (! TYPE_SIGNED (t) \ ! ? (t) 0 \ ! : TYPE_SIGNED_MAGNITUDE (t) \ ! ? ~ (t) 0 \ : ~ TYPE_MAXIMUM (t))) ! # define TYPE_MAXIMUM(t) \ ! ((t) (! TYPE_SIGNED (t) \ ! ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) ! /* Return zero if T can be determined to be an unsigned type. ! Otherwise, return 1. ! When compiling with GCC, INT_STRLEN_BOUND uses this macro to obtain a ! tighter bound. Otherwise, it overestimates the true bound by one byte ! when applied to unsigned types of size 2, 4, 16, ... bytes. ! The symbol signed_type_or_expr__ is private to this header file. */ ! # if __GNUC__ >= 2 ! # define signed_type_or_expr__(t) TYPE_SIGNED (__typeof__ (t)) ! # else ! # define signed_type_or_expr__(t) 1 ! # endif /* Bound on length of the string representing an unsigned integer value representable in B bits. log10 (2.0) < 146/485. The smallest value of B where this bound is not tight is 2621. */ ! # define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485) /* Bound on length of the string representing an integer type or expression T. Subtract 1 for the sign bit if T is signed, and then add 1 more for ! a minus sign if needed. */ ! # define INT_STRLEN_BOUND(t) \ ! (INT_BITS_STRLEN_BOUND (sizeof (t) * CHAR_BIT - signed_type_or_expr__ (t)) \ ! + signed_type_or_expr__ (t)) /* Bound on buffer size needed to represent an integer type or expression T, including the terminating null. */ ! # define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1) ! #endif /* GL_INTPROPS_H */ --- 19,321 ---- /* Written by Paul Eggert. */ ! #ifndef _GL_INTPROPS_H ! #define _GL_INTPROPS_H ! #include ! ! /* Return an integer value, converted to the same type as the integer ! expression E after integer type promotion. V is the unconverted value. */ ! #define _GL_INT_CONVERT(e, v) (0 * (e) + (v)) ! ! /* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see ! . */ ! #define _GL_INT_NEGATE_CONVERT(e, v) (0 * (e) - (v)) /* The extra casts in the following macros work around compiler bugs, e.g., in Cray C 5.0.3.0. */ /* True if the arithmetic type T is an integer type. bool counts as an integer. */ ! #define TYPE_IS_INTEGER(t) ((t) 1.5 == 1) /* True if negative values of the signed integer type T use two's complement, ones' complement, or signed magnitude representation, respectively. Much GNU code assumes two's complement, but some people like to be portable to all possible C hosts. */ ! #define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1) ! #define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0) ! #define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1) ! ! /* True if the signed integer expression E uses two's complement. */ ! #define _GL_INT_TWOS_COMPLEMENT(e) (~ _GL_INT_CONVERT (e, 0) == -1) /* True if the arithmetic type T is signed. */ ! #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) ! ! /* Return 1 if the integer expression E, after integer promotion, has ! a signed type. */ ! #define _GL_INT_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0) ! ! /* Minimum and maximum values for integer types and expressions. These macros have undefined behavior if T is signed and has padding bits. If this is a problem for you, please let us know how to fix it for your host. */ ! ! /* The maximum and minimum values for the integer type T. */ ! #define TYPE_MINIMUM(t) \ ! ((t) (! TYPE_SIGNED (t) \ ! ? (t) 0 \ ! : TYPE_SIGNED_MAGNITUDE (t) \ ! ? ~ (t) 0 \ : ~ TYPE_MAXIMUM (t))) ! #define TYPE_MAXIMUM(t) \ ! ((t) (! TYPE_SIGNED (t) \ ! ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) ! /* The maximum and minimum values for the type of the expression E, ! after integer promotion. E should not have side effects. */ ! #define _GL_INT_MINIMUM(e) \ ! (_GL_INT_SIGNED (e) \ ! ? - _GL_INT_TWOS_COMPLEMENT (e) - _GL_SIGNED_INT_MAXIMUM (e) \ ! : _GL_INT_CONVERT (e, 0)) ! #define _GL_INT_MAXIMUM(e) \ ! (_GL_INT_SIGNED (e) \ ! ? _GL_SIGNED_INT_MAXIMUM (e) \ ! : _GL_INT_NEGATE_CONVERT (e, 1)) ! #define _GL_SIGNED_INT_MAXIMUM(e) \ ! (((_GL_INT_CONVERT (e, 1) << (sizeof ((e) + 0) * CHAR_BIT - 2)) - 1) * 2 + 1) ! ! ! /* Return 1 if the __typeof__ keyword works. This could be done by ! 'configure', but for now it's easier to do it by hand. */ ! #if 2 <= __GNUC__ || 0x5110 <= __SUNPRO_C ! # define _GL_HAVE___TYPEOF__ 1 ! #else ! # define _GL_HAVE___TYPEOF__ 0 ! #endif ! ! /* Return 1 if the integer type or expression T might be signed. Return 0 ! if it is definitely unsigned. This macro does not evaluate its argument, ! and expands to an integer constant expression. */ ! #if _GL_HAVE___TYPEOF__ ! # define _GL_SIGNED_TYPE_OR_EXPR(t) TYPE_SIGNED (__typeof__ (t)) ! #else ! # define _GL_SIGNED_TYPE_OR_EXPR(t) 1 ! #endif /* Bound on length of the string representing an unsigned integer value representable in B bits. log10 (2.0) < 146/485. The smallest value of B where this bound is not tight is 2621. */ ! #define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485) /* Bound on length of the string representing an integer type or expression T. Subtract 1 for the sign bit if T is signed, and then add 1 more for ! a minus sign if needed. ! ! Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 0 when its argument is ! signed, this macro may overestimate the true bound by one byte when ! applied to unsigned types of size 2, 4, 16, ... bytes. */ ! #define INT_STRLEN_BOUND(t) \ ! (INT_BITS_STRLEN_BOUND (sizeof (t) * CHAR_BIT \ ! - _GL_SIGNED_TYPE_OR_EXPR (t)) \ ! + _GL_SIGNED_TYPE_OR_EXPR (t)) /* Bound on buffer size needed to represent an integer type or expression T, including the terminating null. */ ! #define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1) ! ! ! /* Range overflow checks. ! ! The INT__RANGE_OVERFLOW macros return 1 if the corresponding C ! operators might not yield numerically correct answers due to ! arithmetic overflow. They do not rely on undefined or ! implementation-defined behavior. Their implementations are simple ! and straightforward, but they are a bit harder to use than the ! INT__OVERFLOW macros described below. ! ! Example usage: ! ! long int i = ...; ! long int j = ...; ! if (INT_MULTIPLY_RANGE_OVERFLOW (i, j, LONG_MIN, LONG_MAX)) ! printf ("multiply would overflow"); ! else ! printf ("product is %ld", i * j); ! ! Restrictions on *_RANGE_OVERFLOW macros: ! ! These macros do not check for all possible numerical problems or ! undefined or unspecified behavior: they do not check for division ! by zero, for bad shift counts, or for shifting negative numbers. ! ! These macros may evaluate their arguments zero or multiple times, ! so the arguments should not have side effects. The arithmetic ! arguments (including the MIN and MAX arguments) must be of the same ! integer type after the usual arithmetic conversions, and the type ! must have minimum value MIN and maximum MAX. Unsigned types should ! use a zero MIN of the proper type. ! ! These macros are tuned for constant MIN and MAX. For commutative ! operations such as A + B, they are also tuned for constant B. */ ! ! /* Return 1 if A + B would overflow in [MIN,MAX] arithmetic. ! See above for restrictions. */ ! #define INT_ADD_RANGE_OVERFLOW(a, b, min, max) \ ! ((b) < 0 \ ! ? (a) < (min) - (b) \ ! : (max) - (b) < (a)) ! ! /* Return 1 if A - B would overflow in [MIN,MAX] arithmetic. ! See above for restrictions. */ ! #define INT_SUBTRACT_RANGE_OVERFLOW(a, b, min, max) \ ! ((b) < 0 \ ! ? (max) + (b) < (a) \ ! : (a) < (min) + (b)) ! ! /* Return 1 if - A would overflow in [MIN,MAX] arithmetic. ! See above for restrictions. */ ! #define INT_NEGATE_RANGE_OVERFLOW(a, min, max) \ ! ((min) < 0 \ ! ? (a) < - (max) \ ! : 0 < (a)) ! ! /* Return 1 if A * B would overflow in [MIN,MAX] arithmetic. ! See above for restrictions. Avoid && and || as they tickle ! bugs in Sun C 5.11 2010/08/13 and other compilers; see ! . */ ! #define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max) \ ! ((b) < 0 \ ! ? ((a) < 0 \ ! ? (a) < (max) / (b) \ ! : (b) == -1 \ ! ? 0 \ ! : (min) / (b) < (a)) \ ! : (b) == 0 \ ! ? 0 \ ! : ((a) < 0 \ ! ? (a) < (min) / (b) \ ! : (max) / (b) < (a))) ! ! /* Return 1 if A / B would overflow in [MIN,MAX] arithmetic. ! See above for restrictions. Do not check for division by zero. */ ! #define INT_DIVIDE_RANGE_OVERFLOW(a, b, min, max) \ ! ((min) < 0 && (b) == -1 && (a) < - (max)) ! ! /* Return 1 if A % B would overflow in [MIN,MAX] arithmetic. ! See above for restrictions. Do not check for division by zero. ! Mathematically, % should never overflow, but on x86-like hosts ! INT_MIN % -1 traps, and the C standard permits this, so treat this ! as an overflow too. */ ! #define INT_REMAINDER_RANGE_OVERFLOW(a, b, min, max) \ ! INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max) ! ! /* Return 1 if A << B would overflow in [MIN,MAX] arithmetic. ! See above for restrictions. Here, MIN and MAX are for A only, and B need ! not be of the same type as the other arguments. The C standard says that ! behavior is undefined for shifts unless 0 <= B < wordwidth, and that when ! A is negative then A << B has undefined behavior and A >> B has ! implementation-defined behavior, but do not check these other ! restrictions. */ ! #define INT_LEFT_SHIFT_RANGE_OVERFLOW(a, b, min, max) \ ! ((a) < 0 \ ! ? (a) < (min) >> (b) \ ! : (max) >> (b) < (a)) ! ! ! /* The _GL*_OVERFLOW macros have the same restrictions as the ! *_RANGE_OVERFLOW macros, except that they do not assume that operands ! (e.g., A and B) have the same type as MIN and MAX. Instead, they assume ! that the result (e.g., A + B) has that type. */ ! #define _GL_ADD_OVERFLOW(a, b, min, max) \ ! ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max) \ ! : (a) < 0 ? (b) <= (a) + (b) \ ! : (b) < 0 ? (a) <= (a) + (b) \ ! : (a) + (b) < (b)) ! #define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ ! ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max) \ ! : (a) < 0 ? 1 \ ! : (b) < 0 ? (a) - (b) <= (a) \ ! : (a) < (b)) ! #define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ ! (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a)))) \ ! || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max)) ! #define _GL_DIVIDE_OVERFLOW(a, b, min, max) \ ! ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ ! : (a) < 0 ? (b) <= (a) + (b) - 1 \ ! : (b) < 0 && (a) + (b) <= (a)) ! #define _GL_REMAINDER_OVERFLOW(a, b, min, max) \ ! ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ ! : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b) \ ! : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max)) ! ! /* Return a nonzero value if A is a mathematical multiple of B, where ! A is unsigned, B is negative, and MAX is the maximum value of A's ! type. A's type must be the same as (A % B)'s type. Normally (A % ! -B == 0) suffices, but things get tricky if -B would overflow. */ ! #define _GL_UNSIGNED_NEG_MULTIPLE(a, b, max) \ ! (((b) < -_GL_SIGNED_INT_MAXIMUM (b) \ ! ? (_GL_SIGNED_INT_MAXIMUM (b) == (max) \ ! ? (a) \ ! : (a) % (_GL_INT_CONVERT (a, _GL_SIGNED_INT_MAXIMUM (b)) + 1)) \ ! : (a) % - (b)) \ ! == 0) ! ! ! /* Integer overflow checks. ! ! The INT__OVERFLOW macros return 1 if the corresponding C operators ! might not yield numerically correct answers due to arithmetic overflow. ! They work correctly on all known practical hosts, and do not rely ! on undefined behavior due to signed arithmetic overflow. ! ! Example usage: ! ! long int i = ...; ! long int j = ...; ! if (INT_MULTIPLY_OVERFLOW (i, j)) ! printf ("multiply would overflow"); ! else ! printf ("product is %ld", i * j); ! ! These macros do not check for all possible numerical problems or ! undefined or unspecified behavior: they do not check for division ! by zero, for bad shift counts, or for shifting negative numbers. ! ! These macros may evaluate their arguments zero or multiple times, so the ! arguments should not have side effects. ! ! These macros are tuned for their last argument being a constant. ! ! Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B, ! A % B, and A << B would overflow, respectively. */ ! ! #define INT_ADD_OVERFLOW(a, b) \ ! _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW) ! #define INT_SUBTRACT_OVERFLOW(a, b) \ ! _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW) ! #define INT_NEGATE_OVERFLOW(a) \ ! INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) ! #define INT_MULTIPLY_OVERFLOW(a, b) \ ! _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW) ! #define INT_DIVIDE_OVERFLOW(a, b) \ ! _GL_BINARY_OP_OVERFLOW (a, b, _GL_DIVIDE_OVERFLOW) ! #define INT_REMAINDER_OVERFLOW(a, b) \ ! _GL_BINARY_OP_OVERFLOW (a, b, _GL_REMAINDER_OVERFLOW) ! #define INT_LEFT_SHIFT_OVERFLOW(a, b) \ ! INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, \ ! _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) ! ! /* Return 1 if the expression A B would overflow, ! where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test, ! assuming MIN and MAX are the minimum and maximum for the result type. ! Arguments should be free of side effects. */ ! #define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \ ! op_result_overflow (a, b, \ ! _GL_INT_MINIMUM (0 * (b) + (a)), \ ! _GL_INT_MAXIMUM (0 * (b) + (a))) ! #endif /* _GL_INTPROPS_H */ diff -cNr octave-3.4.0/libgnu/iswblank.c octave-3.4.1/libgnu/iswblank.c *** octave-3.4.0/libgnu/iswblank.c 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/iswblank.c 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,29 **** - /* -*- buffer-read-only: t -*- vi: set ro: */ - /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ - /* Test wide character for being blank. - Copyright (C) 2008-2011 Free Software Foundation, Inc. - - 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, 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - - #include - - /* Specification. */ - #include - - int - iswblank (wint_t wc) - { - return wc == ' ' || wc == '\t'; - } --- 0 ---- diff -cNr octave-3.4.0/libgnu/localcharset.c octave-3.4.1/libgnu/localcharset.c *** octave-3.4.0/libgnu/localcharset.c 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/localcharset.c 2011-06-15 11:31:06.000000000 -0400 *************** *** 230,237 **** { /* Out of memory. */ res_size = 0; ! if (old_res_ptr != NULL) ! free (old_res_ptr); break; } strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); --- 230,236 ---- { /* Out of memory. */ res_size = 0; ! free (old_res_ptr); break; } strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); diff -cNr octave-3.4.0/libgnu/lseek.c octave-3.4.1/libgnu/lseek.c *** octave-3.4.0/libgnu/lseek.c 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/lseek.c 2011-06-15 11:31:07.000000000 -0400 *************** *** 0 **** --- 1,64 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* An lseek() function that detects pipes. + Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc. + + 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + + #include + + /* Specification. */ + #include + + #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + /* Windows platforms. */ + /* Get GetFileType. */ + # include + #else + # include + #endif + #include + + #undef lseek + + off_t + rpl_lseek (int fd, off_t offset, int whence) + { + #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + /* mingw lseek mistakenly succeeds on pipes, sockets, and terminals. */ + HANDLE h = (HANDLE) _get_osfhandle (fd); + if (h == INVALID_HANDLE_VALUE) + { + errno = EBADF; + return -1; + } + if (GetFileType (h) != FILE_TYPE_DISK) + { + errno = ESPIPE; + return -1; + } + #else + /* BeOS lseek mistakenly succeeds on pipes... */ + struct stat statbuf; + if (fstat (fd, &statbuf) < 0) + return -1; + if (!S_ISREG (statbuf.st_mode)) + { + errno = ESPIPE; + return -1; + } + #endif + return lseek (fd, offset, whence); + } diff -cNr octave-3.4.0/libgnu/Makefile.in octave-3.4.1/libgnu/Makefile.in *** octave-3.4.0/libgnu/Makefile.in 2011-02-08 05:03:36.000000000 -0500 --- octave-3.4.1/libgnu/Makefile.in 2011-06-15 11:31:27.000000000 -0400 *************** *** 44,50 **** # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. ! # Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libgnu --source-base=libgnu --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --libtool --macro-prefix=gl c-strcase copysign crypto/md5 fcntl filemode fnmatch getcwd gethostname getopt-gnu gettimeofday glob link lstat mkdir mkfifo mkstemp mktime nanosleep pathmax progname readlink rename rmdir round roundf sigaction signal sigprocmask sleep stat stdint strftime strptime symlink sys_stat sys_time sys_times time times trunc truncf unistd unlink vsnprintf --- 44,50 ---- # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. ! # Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libgnu --source-base=libgnu --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --libtool --macro-prefix=gl c-strcase copysign crypto/md5 fcntl filemode fnmatch getcwd gethostname getopt-gnu gettimeofday glob link lstat mkdir mkfifo mkstemp mktime nanosleep nproc pathmax progname readlink rename rmdir round roundf sigaction signal sigprocmask sleep stat stdint strftime strptime symlink sys_stat sys_time sys_times time times trunc truncf unistd unlink vsnprintf *************** *** 71,77 **** subdir = libgnu ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ --- 71,80 ---- subdir = libgnu ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/ax_pthread.m4 \ ! $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ *************** *** 79,94 **** $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ --- 82,101 ---- $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filemode.m4 \ ! $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpurge.m4 \ ! $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/fseek.m4 \ ! $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftell.m4 \ ! $(top_srcdir)/m4/ftello.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ *************** *** 102,127 **** $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ ! $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ! $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ! $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ ! $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ ! $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ ! $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \ ! $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memchr.m4 \ ! $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ ! $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkfifo.m4 \ ! $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \ ! $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ ! $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nanosleep.m4 \ ! $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ ! $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/printf.m4 \ ! $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ ! $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \ ! $(top_srcdir)/m4/round.m4 $(top_srcdir)/m4/roundf.m4 \ ! $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/select.m4 \ ! $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ --- 109,136 ---- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ ! $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ ! $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ! $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ ! $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/math_h.m4 \ ! $(top_srcdir)/m4/mathfunc.m4 $(top_srcdir)/m4/mbrtowc.m4 \ ! $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ ! $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/md5.m4 \ ! $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \ ! $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \ ! $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkstemp.m4 \ ! $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ ! $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/multiarch.m4 \ ! $(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/nocrash.m4 \ ! $(top_srcdir)/m4/nproc.m4 $(top_srcdir)/m4/open.m4 \ ! $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ ! $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/readlink.m4 \ ! $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ ! $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/round.m4 \ ! $(top_srcdir)/m4/roundf.m4 $(top_srcdir)/m4/save-cwd.m4 \ ! $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/sigaction.m4 \ ! $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ *************** *** 129,157 **** $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \ ! $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ ! $(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \ ! $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/tempname.m4 \ ! $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ ! $(top_srcdir)/m4/times.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ ! $(top_srcdir)/m4/trunc.m4 $(top_srcdir)/m4/truncf.m4 \ ! $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ ! $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/vasnprintf.m4 \ ! $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ ! $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ ! $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ ! $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/acinclude.m4 \ ! $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = --- 138,163 ---- $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strdup.m4 \ ! $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.m4 \ ! $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ ! $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \ ! $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/times.m4 \ ! $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/trunc.m4 \ ! $(top_srcdir)/m4/truncf.m4 $(top_srcdir)/m4/unistd-safer.m4 \ ! $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ ! $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vsnprintf.m4 \ ! $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ ! $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ ! $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = *************** *** 159,166 **** LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = am_libgnu_la_OBJECTS = c-ctype.lo c-strcasecmp.lo c-strncasecmp.lo \ ! close-hook.lo exitfail.lo localcharset.lo malloca.lo \ ! openat-die.lo progname.lo sockets.lo strnlen1.lo libgnu_la_OBJECTS = $(am_libgnu_la_OBJECTS) libgnu_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ --- 165,172 ---- LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = am_libgnu_la_OBJECTS = c-ctype.lo c-strcasecmp.lo c-strncasecmp.lo \ ! exitfail.lo fd-hook.lo freading.lo localcharset.lo malloca.lo \ ! nproc.lo openat-die.lo progname.lo sockets.lo strnlen1.lo libgnu_la_OBJECTS = $(am_libgnu_la_OBJECTS) libgnu_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ *************** *** 234,240 **** AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ - ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ --- 240,245 ---- *************** *** 381,386 **** --- 386,393 ---- GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ + GNULIB_FGETC = @GNULIB_FGETC@ + GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ *************** *** 390,398 **** --- 397,407 ---- GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ + GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPL = @GNULIB_FREXPL@ + GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ *************** *** 402,407 **** --- 411,418 ---- GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ + GNULIB_GETC = @GNULIB_GETC@ + GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ *************** *** 414,431 **** --- 425,446 ---- GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ + GNULIB_GETS = @GNULIB_GETS@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ + GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ + GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ + GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ *************** *** 456,461 **** --- 471,477 ---- GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ + GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ *************** *** 472,477 **** --- 488,494 ---- GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ + GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ *************** *** 491,496 **** --- 508,514 ---- GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ + GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ *************** *** 506,511 **** --- 524,530 ---- GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ + GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ *************** *** 523,528 **** --- 542,548 ---- GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ + GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ *************** *** 552,562 **** --- 572,584 ---- GNULIB_TIMES = @GNULIB_TIMES@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ + GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ + GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ *************** *** 568,575 **** --- 590,599 ---- GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ + GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ + GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ *************** *** 599,604 **** --- 623,631 ---- GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ + GNULIB_WCTOMB = @GNULIB_WCTOMB@ + GNULIB_WCTRANS = @GNULIB_WCTRANS@ + GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ *************** *** 662,668 **** HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ - HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ --- 689,694 ---- *************** *** 703,708 **** --- 729,735 ---- HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ + HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ *************** *** 737,742 **** --- 764,770 ---- HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ + HAVE_PCRE_CONFIG = @HAVE_PCRE_CONFIG@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ *************** *** 755,760 **** --- 783,789 ---- HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGACTION = @HAVE_SIGACTION@ + HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ *************** *** 766,772 **** HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ - HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ --- 795,800 ---- *************** *** 794,799 **** --- 822,828 ---- HAVE_SYS_TIMES_H = @HAVE_SYS_TIMES_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ + HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMES = @HAVE_TIMES@ *************** *** 834,840 **** --- 863,871 ---- HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ + HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ + HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ *************** *** 878,883 **** --- 909,915 ---- LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ + LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ *************** *** 888,893 **** --- 920,926 ---- MAGICK_LDFLAGS = @MAGICK_LDFLAGS@ MAGICK_LIBS = @MAGICK_LIBS@ MAKEINFO = @MAKEINFO@ + MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKOCTFILE_DL_LDFLAGS = @MKOCTFILE_DL_LDFLAGS@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ *************** *** 901,913 **** NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ - NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ --- 934,946 ---- NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ + NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ *************** *** 923,935 **** NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ - NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ --- 956,968 ---- NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ + NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ *************** *** 1042,1047 **** --- 1075,1081 ---- REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ + REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ *************** *** 1062,1067 **** --- 1096,1102 ---- REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ + REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ *************** *** 1080,1088 **** --- 1115,1125 ---- REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ + REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ + REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ *************** *** 1116,1121 **** --- 1153,1159 ---- REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ + REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RLD_FLAG = @RLD_FLAG@ *************** *** 1180,1186 **** WARN_CXXFLAGS = @WARN_CXXFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ - WITH_PCRE_CONFIG = @WITH_PCRE_CONFIG@ X11_INCFLAGS = @X11_INCFLAGS@ X11_LIBS = @X11_LIBS@ XMKMF = @XMKMF@ --- 1218,1223 ---- *************** *** 1198,1203 **** --- 1235,1241 ---- abs_top_srcdir = @abs_top_srcdir@ ac_config_files = @ac_config_files@ ac_config_headers = @ac_config_headers@ + ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ *************** *** 1257,1263 **** localverarchlibdir = @localverarchlibdir@ localverfcnfiledir = @localverfcnfiledir@ localveroctfiledir = @localveroctfiledir@ - lt_ECHO = @lt_ECHO@ man1dir = @man1dir@ man1ext = @man1ext@ mandir = @mandir@ --- 1295,1300 ---- *************** *** 1289,1324 **** $(top_srcdir)/build-aux/arg-nonnull.h \ $(top_srcdir)/build-aux/c++defs.h canonicalize-lgpl.c \ chdir-long.c chdir-long.h chown.c fchown-stub.c cloexec.c \ ! cloexec.h close.c close-hook.h md5.c md5.h dirent.in.h dirfd.c \ ! basename-lgpl.c dirname-lgpl.c dirname.h stripslash.c dup2.c \ ! errno.in.h error.c error.h exitfail.h fchdir.c fclose.c \ ! fcntl.c fcntl.in.h fdopendir.c openat-priv.h openat-proc.c \ ! filemode.c filemode.h float.in.h floor.c fnmatch.c \ ! fnmatch.in.h fnmatch_loop.c getcwd.c getdtablesize.c \ gethostname.c w32sock.h getlogin_r.c getopt.c getopt.in.h \ getopt1.c getopt_int.h gettimeofday.c glob-libc.h glob.c \ glob.in.h intprops.h lchown.c link.c config.charset \ ! ref-add.sin ref-del.sin lstat.c malloc.c malloca.h \ malloca.valgrind math.in.h mbrtowc.c mbsinit.c \ mbsrtowcs-impl.h mbsrtowcs-state.c mbsrtowcs.c memchr.c \ memchr.valgrind mempcpy.c memrchr.c mkdir.c mkfifo.c mkstemp.c \ ! mktime-internal.h mktime.c nanosleep.c open.c at-func.c \ ! fchmodat.c fchownat.c fstatat.c mkdirat.c openat-priv.h \ ! openat-proc.c openat.c openat.h unlinkat.c pathmax.h \ ! readlink.c realloc.c rename.c rmdir.c round.c round.c roundf.c \ ! same-inode.h save-cwd.c save-cwd.h select.c sig-handler.h \ ! sigaction.c signal.in.h sigprocmask.c sleep.c w32sock.h stat.c \ ! stdbool.in.h stddef.in.h stdint.in.h stdio-write.c stdio.in.h \ ! stdlib.in.h strcasecmp.c strncasecmp.c strdup.c streq.h \ ! strerror.c strftime.c strftime.h string.in.h strings.in.h \ ! strptime.c symlink.c sys_select.in.h sys_socket.in.h \ ! sys_stat.in.h sys_time.in.h sys_times.in.h tempname.c \ ! tempname.h time.in.h time_r.c times.c trunc.c trunc.c truncf.c \ ! unistd.in.h dup-safer.c fd-safer.c pipe-safer.c unistd--.h \ ! unistd-safer.h unlink.c asnprintf.c float+.h printf-args.c \ ! printf-args.h printf-parse.c printf-parse.h vasnprintf.c \ ! vasnprintf.h vsnprintf.c $(top_srcdir)/build-aux/warn-on-use.h \ ! wchar.in.h iswblank.c wctype.in.h # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be --- 1326,1364 ---- $(top_srcdir)/build-aux/arg-nonnull.h \ $(top_srcdir)/build-aux/c++defs.h canonicalize-lgpl.c \ chdir-long.c chdir-long.h chown.c fchown-stub.c cloexec.c \ ! cloexec.h close.c md5.c md5.h dirent.in.h dirfd.c \ ! basename-lgpl.c dirname-lgpl.c dirname.h stripslash.c \ ! dosname.h dup2.c errno.in.h error.c error.h exitfail.h \ ! fchdir.c fclose.c fcntl.c fcntl.in.h fd-hook.h fdopendir.c \ ! openat-priv.h openat-proc.c fflush.c stdio-impl.h filemode.c \ ! filemode.h filenamecat-lgpl.c filenamecat.h float.in.h floor.c \ ! fnmatch.c fnmatch.in.h fnmatch_loop.c fpurge.c stdio-impl.h \ ! freading.h stdio-impl.h fseek.c fseeko.c stdio-impl.h ftell.c \ ! ftello.c stdio-impl.h getcwd.c getcwd-lgpl.c getdtablesize.c \ gethostname.c w32sock.h getlogin_r.c getopt.c getopt.in.h \ getopt1.c getopt_int.h gettimeofday.c glob-libc.h glob.c \ glob.in.h intprops.h lchown.c link.c config.charset \ ! ref-add.sin ref-del.sin lseek.c lstat.c malloc.c malloca.h \ malloca.valgrind math.in.h mbrtowc.c mbsinit.c \ mbsrtowcs-impl.h mbsrtowcs-state.c mbsrtowcs.c memchr.c \ memchr.valgrind mempcpy.c memrchr.c mkdir.c mkfifo.c mkstemp.c \ ! mktime-internal.h mktime.c nanosleep.c nproc.h open.c \ ! at-func.c fchmodat.c fchownat.c fstatat.c mkdirat.c \ ! openat-priv.h openat-proc.c openat.c openat.h unlinkat.c \ ! pathmax.h readlink.c realloc.c rename.c rmdir.c round.c \ ! round.c roundf.c same-inode.h save-cwd.c save-cwd.h select.c \ ! sig-handler.h sigaction.c signal.in.h sigprocmask.c sleep.c \ ! w32sock.h stat.c stdbool.in.h stddef.in.h stdint.in.h \ ! stdio.in.h stdlib.in.h strdup.c streq.h strerror.c \ ! strerror-override.c strerror-override.h strftime.c strftime.h \ ! string.in.h strptime.c symlink.c sys_select.in.h \ ! sys_socket.in.h sys_stat.in.h sys_time.in.h sys_times.in.h \ ! sys_uio.in.h tempname.c tempname.h time.in.h time_r.c times.c \ ! trunc.c trunc.c truncf.c unistd.in.h dup-safer.c fd-safer.c \ ! pipe-safer.c unistd--.h unistd-safer.h unlink.c asnprintf.c \ ! float+.h printf-args.c printf-args.h printf-parse.c \ ! printf-parse.h vasnprintf.c vasnprintf.h verify.h vsnprintf.c \ ! $(top_srcdir)/build-aux/warn-on-use.h wchar.in.h wctype.in.h # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be *************** *** 1332,1340 **** BUILT_SOURCES = $(ALLOCA_H) arg-nonnull.h c++defs.h configmake.h \ dirent.h $(ERRNO_H) fcntl.h $(FLOAT_H) $(FNMATCH_H) \ $(GETOPT_H) $(GLOB_H) math.h signal.h $(STDBOOL_H) $(STDDEF_H) \ ! $(STDINT_H) stdio.h stdlib.h string.h strings.h sys/select.h \ ! sys/socket.h sys/stat.h sys/time.h sys/times.h time.h unistd.h \ ! warn-on-use.h wchar.h wctype.h SUFFIXES = .sed .sin MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t arg-nonnull.h \ arg-nonnull.h-t c++defs.h c++defs.h-t dirent.h dirent.h-t \ --- 1372,1380 ---- BUILT_SOURCES = $(ALLOCA_H) arg-nonnull.h c++defs.h configmake.h \ dirent.h $(ERRNO_H) fcntl.h $(FLOAT_H) $(FNMATCH_H) \ $(GETOPT_H) $(GLOB_H) math.h signal.h $(STDBOOL_H) $(STDDEF_H) \ ! $(STDINT_H) stdio.h stdlib.h string.h sys/select.h \ ! sys/socket.h sys/stat.h sys/time.h sys/times.h sys/uio.h \ ! time.h unistd.h warn-on-use.h wchar.h wctype.h SUFFIXES = .sed .sin MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t arg-nonnull.h \ arg-nonnull.h-t c++defs.h c++defs.h-t dirent.h dirent.h-t \ *************** *** 1342,1354 **** fnmatch.h fnmatch.h-t getopt.h getopt.h-t glob.h glob.h-t \ math.h math.h-t signal.h signal.h-t stdbool.h stdbool.h-t \ stddef.h stddef.h-t stdint.h stdint.h-t stdio.h stdio.h-t \ ! stdlib.h stdlib.h-t string.h string.h-t strings.h strings.h-t \ ! sys/select.h sys/select.h-t sys/socket.h sys/socket.h-t \ ! sys/stat.h sys/stat.h-t sys/time.h sys/time.h-t sys/times.h \ ! sys/times.h-t time.h time.h-t unistd.h unistd.h-t \ warn-on-use.h warn-on-use.h-t wchar.h wchar.h-t wctype.h \ wctype.h-t ! MOSTLYCLEANDIRS = sys sys sys sys CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \ ref-del.sed DISTCLEANFILES = --- 1382,1394 ---- fnmatch.h fnmatch.h-t getopt.h getopt.h-t glob.h glob.h-t \ math.h math.h-t signal.h signal.h-t stdbool.h stdbool.h-t \ stddef.h stddef.h-t stdint.h stdint.h-t stdio.h stdio.h-t \ ! stdlib.h stdlib.h-t string.h string.h-t sys/select.h \ ! sys/select.h-t sys/socket.h sys/socket.h-t sys/stat.h \ ! sys/stat.h-t sys/time.h sys/time.h-t sys/times.h sys/times.h-t \ ! sys/uio.h sys/uio.h-t time.h time.h-t unistd.h unistd.h-t \ warn-on-use.h warn-on-use.h-t wchar.h wchar.h-t wctype.h \ wctype.h-t ! MOSTLYCLEANDIRS = sys sys sys sys sys CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \ ref-del.sed DISTCLEANFILES = *************** *** 1356,1385 **** AM_CPPFLAGS = AM_CFLAGS = libgnu_la_SOURCES = c-ctype.h c-ctype.c c-strcase.h c-strcasecmp.c \ ! c-strncasecmp.c close-hook.c exitfail.c gettext.h \ ! localcharset.h localcharset.c malloca.c openat-die.c \ progname.h progname.c size_max.h sockets.h sockets.c \ ! strnlen1.h strnlen1.c verify.h xsize.h libgnu_la_LIBADD = $(gl_LTLIBOBJS) @LTALLOCA@ libgnu_la_DEPENDENCIES = $(gl_LTLIBOBJS) @LTALLOCA@ EXTRA_libgnu_la_SOURCES = alloca.c canonicalize-lgpl.c chdir-long.c \ chown.c fchown-stub.c cloexec.c close.c md5.c dirfd.c \ basename-lgpl.c dirname-lgpl.c stripslash.c dup2.c error.c \ ! fchdir.c fclose.c fcntl.c fdopendir.c openat-proc.c filemode.c \ ! floor.c fnmatch.c fnmatch_loop.c getcwd.c getdtablesize.c \ ! gethostname.c getlogin_r.c getopt.c getopt1.c gettimeofday.c \ ! glob.c lchown.c link.c lstat.c malloc.c mbrtowc.c mbsinit.c \ ! mbsrtowcs-state.c mbsrtowcs.c memchr.c mempcpy.c memrchr.c \ ! mkdir.c mkfifo.c mkstemp.c mktime.c nanosleep.c open.c \ ! at-func.c fchmodat.c fchownat.c fstatat.c mkdirat.c \ ! openat-proc.c openat.c unlinkat.c readlink.c realloc.c \ ! rename.c rmdir.c round.c round.c roundf.c save-cwd.c select.c \ ! sigaction.c sigprocmask.c sleep.c stat.c stdio-write.c \ ! strcasecmp.c strncasecmp.c strdup.c strerror.c strftime.c \ ! strptime.c symlink.c tempname.c time_r.c times.c trunc.c \ ! trunc.c truncf.c dup-safer.c fd-safer.c pipe-safer.c unlink.c \ ! asnprintf.c printf-args.c printf-parse.c vasnprintf.c \ ! vsnprintf.c iswblank.c libgnu_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(COPYSIGN_LIBM) \ $(FLOOR_LIBM) $(GETHOSTNAME_LIB) $(LIBSOCKET) $(LIB_NANOSLEEP) \ $(LTLIBINTL) $(ROUNDF_LIBM) $(ROUND_LIBM) $(TRUNCF_LIBM) \ --- 1396,1426 ---- AM_CPPFLAGS = AM_CFLAGS = libgnu_la_SOURCES = c-ctype.h c-ctype.c c-strcase.h c-strcasecmp.c \ ! c-strncasecmp.c exitfail.c fd-hook.c freading.c gettext.h \ ! localcharset.h localcharset.c malloca.c nproc.c openat-die.c \ progname.h progname.c size_max.h sockets.h sockets.c \ ! strnlen1.h strnlen1.c xsize.h libgnu_la_LIBADD = $(gl_LTLIBOBJS) @LTALLOCA@ libgnu_la_DEPENDENCIES = $(gl_LTLIBOBJS) @LTALLOCA@ EXTRA_libgnu_la_SOURCES = alloca.c canonicalize-lgpl.c chdir-long.c \ chown.c fchown-stub.c cloexec.c close.c md5.c dirfd.c \ basename-lgpl.c dirname-lgpl.c stripslash.c dup2.c error.c \ ! fchdir.c fclose.c fcntl.c fdopendir.c openat-proc.c fflush.c \ ! filemode.c filenamecat-lgpl.c floor.c fnmatch.c fnmatch_loop.c \ ! fpurge.c fseek.c fseeko.c ftell.c ftello.c getcwd.c \ ! getcwd-lgpl.c getdtablesize.c gethostname.c getlogin_r.c \ ! getopt.c getopt1.c gettimeofday.c glob.c lchown.c link.c \ ! lseek.c lstat.c malloc.c mbrtowc.c mbsinit.c mbsrtowcs-state.c \ ! mbsrtowcs.c memchr.c mempcpy.c memrchr.c mkdir.c mkfifo.c \ ! mkstemp.c mktime.c nanosleep.c open.c at-func.c fchmodat.c \ ! fchownat.c fstatat.c mkdirat.c openat-proc.c openat.c \ ! unlinkat.c readlink.c realloc.c rename.c rmdir.c round.c \ ! round.c roundf.c save-cwd.c select.c sigaction.c sigprocmask.c \ ! sleep.c stat.c strdup.c strerror.c strerror-override.c \ ! strftime.c strptime.c symlink.c tempname.c time_r.c times.c \ ! trunc.c trunc.c truncf.c dup-safer.c fd-safer.c pipe-safer.c \ ! unlink.c asnprintf.c printf-args.c printf-parse.c vasnprintf.c \ ! vsnprintf.c libgnu_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(COPYSIGN_LIBM) \ $(FLOOR_LIBM) $(GETHOSTNAME_LIB) $(LIBSOCKET) $(LIB_NANOSLEEP) \ $(LTLIBINTL) $(ROUNDF_LIBM) $(ROUND_LIBM) $(TRUNCF_LIBM) \ *************** *** 1457,1463 **** @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chdir-long.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cloexec.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close-hook.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirfd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname-lgpl.Plo@am__quote@ --- 1498,1503 ---- *************** *** 1471,1483 **** --- 1511,1533 ---- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fclose.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-hook.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-safer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdopendir.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflush.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filemode.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filenamecat-lgpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/floor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fnmatch.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fnmatch_loop.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fpurge.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/freading.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fseek.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fseeko.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstatat.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftell.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftello.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcwd-lgpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcwd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdtablesize.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gethostname.Plo@am__quote@ *************** *** 1486,1495 **** @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettimeofday.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glob.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iswblank.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lchown.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloca.Plo@am__quote@ --- 1536,1545 ---- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettimeofday.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glob.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lchown.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lseek.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloca.Plo@am__quote@ *************** *** 1507,1512 **** --- 1557,1563 ---- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkstemp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mktime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nanosleep.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nproc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat-die.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat-proc.Plo@am__quote@ *************** *** 1528,1540 **** @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sockets.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stdio-write.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcasecmp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strdup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strftime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stripslash.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strncasecmp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen1.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strptime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symlink.Plo@am__quote@ --- 1579,1589 ---- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sockets.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strdup.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-override.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strftime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stripslash.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen1.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strptime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symlink.Plo@am__quote@ *************** *** 1899,1910 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! alloca.h: alloca.in.h ! $(AM_V_GEN)rm -f $@-t $@ && \ ! { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! cat $(srcdir)/alloca.in.h; \ ! } > $@-t && \ ! mv -f $@-t $@ # The arg-nonnull.h that gets inserted into generated .h files is the same as # build-aux/arg-nonnull.h, except that it has the copyright header cut off. arg-nonnull.h: $(top_srcdir)/build-aux/arg-nonnull.h --- 1948,1961 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! @GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status ! @GL_GENERATE_ALLOCA_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ ! @GL_GENERATE_ALLOCA_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! @GL_GENERATE_ALLOCA_H_TRUE@ cat $(srcdir)/alloca.in.h; \ ! @GL_GENERATE_ALLOCA_H_TRUE@ } > $@-t && \ ! @GL_GENERATE_ALLOCA_H_TRUE@ mv -f $@-t $@ ! @GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status ! @GL_GENERATE_ALLOCA_H_FALSE@ rm -f $@ # The arg-nonnull.h that gets inserted into generated .h files is the same as # build-aux/arg-nonnull.h, except that it has the copyright header cut off. arg-nonnull.h: $(top_srcdir)/build-aux/arg-nonnull.h *************** *** 1965,1981 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! dirent.h: dirent.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_DIRENT_H''@|$(NEXT_DIRENT_H)|g' \ ! -e 's|@''GNULIB_DIRFD''@|$(GNULIB_DIRFD)|g' \ ! -e 's|@''GNULIB_FDOPENDIR''@|$(GNULIB_FDOPENDIR)|g' \ ! -e 's|@''GNULIB_SCANDIR''@|$(GNULIB_SCANDIR)|g' \ ! -e 's|@''GNULIB_ALPHASORT''@|$(GNULIB_ALPHASORT)|g' \ -e 's|@''HAVE_DECL_DIRFD''@|$(HAVE_DECL_DIRFD)|g' \ -e 's|@''HAVE_DECL_FDOPENDIR''@|$(HAVE_DECL_FDOPENDIR)|g' \ -e 's|@''HAVE_FDOPENDIR''@|$(HAVE_FDOPENDIR)|g' \ --- 2016,2033 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! dirent.h: dirent.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_DIRENT_H''@|$(NEXT_DIRENT_H)|g' \ ! -e 's/@''GNULIB_DIRFD''@/$(GNULIB_DIRFD)/g' \ ! -e 's/@''GNULIB_FDOPENDIR''@/$(GNULIB_FDOPENDIR)/g' \ ! -e 's/@''GNULIB_SCANDIR''@/$(GNULIB_SCANDIR)/g' \ ! -e 's/@''GNULIB_ALPHASORT''@/$(GNULIB_ALPHASORT)/g' \ -e 's|@''HAVE_DECL_DIRFD''@|$(HAVE_DECL_DIRFD)|g' \ -e 's|@''HAVE_DECL_FDOPENDIR''@|$(HAVE_DECL_FDOPENDIR)|g' \ -e 's|@''HAVE_FDOPENDIR''@|$(HAVE_FDOPENDIR)|g' \ *************** *** 1994,2028 **** # We need the following in order to create when the system # doesn't have one that is POSIX compliant. ! errno.h: errno.in.h ! $(AM_V_GEN)rm -f $@-t $@ && \ ! { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ ! -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ ! -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ ! -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ ! -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ ! -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ ! -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ ! -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ ! -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ ! -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ ! < $(srcdir)/errno.in.h; \ ! } > $@-t && \ ! mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! fcntl.h: fcntl.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ ! -e 's|@''GNULIB_FCNTL''@|$(GNULIB_FCNTL)|g' \ ! -e 's|@''GNULIB_OPEN''@|$(GNULIB_OPEN)|g' \ ! -e 's|@''GNULIB_OPENAT''@|$(GNULIB_OPENAT)|g' \ -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ --- 2046,2085 ---- # We need the following in order to create when the system # doesn't have one that is POSIX compliant. ! @GL_GENERATE_ERRNO_H_TRUE@errno.h: errno.in.h $(top_builddir)/config.status ! @GL_GENERATE_ERRNO_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ ! @GL_GENERATE_ERRNO_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! @GL_GENERATE_ERRNO_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ ! @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ ! @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ ! @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ ! @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ ! @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ ! @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ ! @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ ! @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ ! @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ ! @GL_GENERATE_ERRNO_H_TRUE@ < $(srcdir)/errno.in.h; \ ! @GL_GENERATE_ERRNO_H_TRUE@ } > $@-t && \ ! @GL_GENERATE_ERRNO_H_TRUE@ mv $@-t $@ ! @GL_GENERATE_ERRNO_H_FALSE@errno.h: $(top_builddir)/config.status ! @GL_GENERATE_ERRNO_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ ! -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \ ! -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/g' \ ! -e 's/@''GNULIB_OPEN''@/$(GNULIB_OPEN)/g' \ ! -e 's/@''GNULIB_OPENAT''@/$(GNULIB_OPENAT)/g' \ -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ *************** *** 2037,2069 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! float.h: float.in.h ! $(AM_V_GEN)rm -f $@-t $@ && \ ! { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ ! -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ ! -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ ! -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \ ! < $(srcdir)/float.in.h; \ ! } > $@-t && \ ! mv $@-t $@ # We need the following in order to create when the system # doesn't have one that supports the required API. ! fnmatch.h: fnmatch.in.h $(ARG_NONNULL_H) ! $(AM_V_GEN)rm -f $@-t $@ && \ ! { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ! < $(srcdir)/fnmatch.in.h; \ ! } > $@-t && \ ! mv -f $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! getopt.h: getopt.in.h $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ --- 2094,2132 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! @GL_GENERATE_FLOAT_H_TRUE@float.h: float.in.h $(top_builddir)/config.status ! @GL_GENERATE_FLOAT_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ ! @GL_GENERATE_FLOAT_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! @GL_GENERATE_FLOAT_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ ! @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ ! @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ ! @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \ ! @GL_GENERATE_FLOAT_H_TRUE@ < $(srcdir)/float.in.h; \ ! @GL_GENERATE_FLOAT_H_TRUE@ } > $@-t && \ ! @GL_GENERATE_FLOAT_H_TRUE@ mv $@-t $@ ! @GL_GENERATE_FLOAT_H_FALSE@float.h: $(top_builddir)/config.status ! @GL_GENERATE_FLOAT_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that supports the required API. ! @GL_GENERATE_FNMATCH_H_TRUE@fnmatch.h: fnmatch.in.h $(top_builddir)/config.status $(ARG_NONNULL_H) ! @GL_GENERATE_FNMATCH_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ ! @GL_GENERATE_FNMATCH_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! @GL_GENERATE_FNMATCH_H_TRUE@ sed -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ! @GL_GENERATE_FNMATCH_H_TRUE@ < $(srcdir)/fnmatch.in.h; \ ! @GL_GENERATE_FNMATCH_H_TRUE@ } > $@-t && \ ! @GL_GENERATE_FNMATCH_H_TRUE@ mv -f $@-t $@ ! @GL_GENERATE_FNMATCH_H_FALSE@fnmatch.h: $(top_builddir)/config.status ! @GL_GENERATE_FNMATCH_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ *************** *** 2075,2090 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! glob.h: glob.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) ! $(AM_V_GEN)rm -f $@-t $@ && \ ! { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''HAVE_SYS_CDEFS_H''@|$(HAVE_SYS_CDEFS_H)|g' \ ! -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ ! -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ! -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ ! < $(srcdir)/glob.in.h; \ ! } > $@-t && \ ! mv -f $@-t $@ # We need the following in order to install a simple file in $(libdir) # which is shared with other installed packages. We use a list of referencing --- 2138,2155 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! @GL_GENERATE_GLOB_H_TRUE@glob.h: glob.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) ! @GL_GENERATE_GLOB_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ ! @GL_GENERATE_GLOB_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! @GL_GENERATE_GLOB_H_TRUE@ sed -e 's|@''HAVE_SYS_CDEFS_H''@|$(HAVE_SYS_CDEFS_H)|g' \ ! @GL_GENERATE_GLOB_H_TRUE@ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ ! @GL_GENERATE_GLOB_H_TRUE@ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ! @GL_GENERATE_GLOB_H_TRUE@ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ ! @GL_GENERATE_GLOB_H_TRUE@ < $(srcdir)/glob.in.h; \ ! @GL_GENERATE_GLOB_H_TRUE@ } > $@-t && \ ! @GL_GENERATE_GLOB_H_TRUE@ mv -f $@-t $@ ! @GL_GENERATE_GLOB_H_FALSE@glob.h: $(top_builddir)/config.status ! @GL_GENERATE_GLOB_H_FALSE@ rm -f $@ # We need the following in order to install a simple file in $(libdir) # which is shared with other installed packages. We use a list of referencing *************** *** 2147,2192 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! math.h: math.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_AS_FIRST_DIRECTIVE_MATH_H''@|$(NEXT_AS_FIRST_DIRECTIVE_MATH_H)|g' \ ! -e 's|@''GNULIB_ACOSL''@|$(GNULIB_ACOSL)|g' \ ! -e 's|@''GNULIB_ASINL''@|$(GNULIB_ASINL)|g' \ ! -e 's|@''GNULIB_ATANL''@|$(GNULIB_ATANL)|g' \ ! -e 's|@''GNULIB_CEIL''@|$(GNULIB_CEIL)|g' \ ! -e 's|@''GNULIB_CEILF''@|$(GNULIB_CEILF)|g' \ ! -e 's|@''GNULIB_CEILL''@|$(GNULIB_CEILL)|g' \ ! -e 's|@''GNULIB_COSL''@|$(GNULIB_COSL)|g' \ ! -e 's|@''GNULIB_EXPL''@|$(GNULIB_EXPL)|g' \ ! -e 's|@''GNULIB_FLOOR''@|$(GNULIB_FLOOR)|g' \ ! -e 's|@''GNULIB_FLOORF''@|$(GNULIB_FLOORF)|g' \ ! -e 's|@''GNULIB_FLOORL''@|$(GNULIB_FLOORL)|g' \ ! -e 's|@''GNULIB_FREXP''@|$(GNULIB_FREXP)|g' \ ! -e 's|@''GNULIB_FREXPL''@|$(GNULIB_FREXPL)|g' \ ! -e 's|@''GNULIB_ISFINITE''@|$(GNULIB_ISFINITE)|g' \ ! -e 's|@''GNULIB_ISINF''@|$(GNULIB_ISINF)|g' \ ! -e 's|@''GNULIB_ISNAN''@|$(GNULIB_ISNAN)|g' \ ! -e 's|@''GNULIB_ISNANF''@|$(GNULIB_ISNANF)|g' \ ! -e 's|@''GNULIB_ISNAND''@|$(GNULIB_ISNAND)|g' \ ! -e 's|@''GNULIB_ISNANL''@|$(GNULIB_ISNANL)|g' \ ! -e 's|@''GNULIB_LDEXPL''@|$(GNULIB_LDEXPL)|g' \ ! -e 's|@''GNULIB_LOGB''@|$(GNULIB_LOGB)|g' \ ! -e 's|@''GNULIB_LOGL''@|$(GNULIB_LOGL)|g' \ ! -e 's|@''GNULIB_ROUND''@|$(GNULIB_ROUND)|g' \ ! -e 's|@''GNULIB_ROUNDF''@|$(GNULIB_ROUNDF)|g' \ ! -e 's|@''GNULIB_ROUNDL''@|$(GNULIB_ROUNDL)|g' \ ! -e 's|@''GNULIB_SIGNBIT''@|$(GNULIB_SIGNBIT)|g' \ ! -e 's|@''GNULIB_SINL''@|$(GNULIB_SINL)|g' \ ! -e 's|@''GNULIB_SQRTL''@|$(GNULIB_SQRTL)|g' \ ! -e 's|@''GNULIB_TANL''@|$(GNULIB_TANL)|g' \ ! -e 's|@''GNULIB_TRUNC''@|$(GNULIB_TRUNC)|g' \ ! -e 's|@''GNULIB_TRUNCF''@|$(GNULIB_TRUNCF)|g' \ ! -e 's|@''GNULIB_TRUNCL''@|$(GNULIB_TRUNCL)|g' \ ! -e 's|@''HAVE_ACOSL''@|$(HAVE_ACOSL)|g' \ -e 's|@''HAVE_ASINL''@|$(HAVE_ASINL)|g' \ -e 's|@''HAVE_ATANL''@|$(HAVE_ATANL)|g' \ -e 's|@''HAVE_COSL''@|$(HAVE_COSL)|g' \ --- 2212,2259 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_AS_FIRST_DIRECTIVE_MATH_H''@|$(NEXT_AS_FIRST_DIRECTIVE_MATH_H)|g' \ ! -e 's/@''GNULIB_ACOSL''@/$(GNULIB_ACOSL)/g' \ ! -e 's/@''GNULIB_ASINL''@/$(GNULIB_ASINL)/g' \ ! -e 's/@''GNULIB_ATANL''@/$(GNULIB_ATANL)/g' \ ! -e 's/@''GNULIB_CEIL''@/$(GNULIB_CEIL)/g' \ ! -e 's/@''GNULIB_CEILF''@/$(GNULIB_CEILF)/g' \ ! -e 's/@''GNULIB_CEILL''@/$(GNULIB_CEILL)/g' \ ! -e 's/@''GNULIB_COSL''@/$(GNULIB_COSL)/g' \ ! -e 's/@''GNULIB_EXPL''@/$(GNULIB_EXPL)/g' \ ! -e 's/@''GNULIB_FLOOR''@/$(GNULIB_FLOOR)/g' \ ! -e 's/@''GNULIB_FLOORF''@/$(GNULIB_FLOORF)/g' \ ! -e 's/@''GNULIB_FLOORL''@/$(GNULIB_FLOORL)/g' \ ! -e 's/@''GNULIB_FREXP''@/$(GNULIB_FREXP)/g' \ ! -e 's/@''GNULIB_FREXPL''@/$(GNULIB_FREXPL)/g' \ ! -e 's/@''GNULIB_ISFINITE''@/$(GNULIB_ISFINITE)/g' \ ! -e 's/@''GNULIB_ISINF''@/$(GNULIB_ISINF)/g' \ ! -e 's/@''GNULIB_ISNAN''@/$(GNULIB_ISNAN)/g' \ ! -e 's/@''GNULIB_ISNANF''@/$(GNULIB_ISNANF)/g' \ ! -e 's/@''GNULIB_ISNAND''@/$(GNULIB_ISNAND)/g' \ ! -e 's/@''GNULIB_ISNANL''@/$(GNULIB_ISNANL)/g' \ ! -e 's/@''GNULIB_LDEXPL''@/$(GNULIB_LDEXPL)/g' \ ! -e 's/@''GNULIB_LOGB''@/$(GNULIB_LOGB)/g' \ ! -e 's/@''GNULIB_LOGL''@/$(GNULIB_LOGL)/g' \ ! -e 's/@''GNULIB_ROUND''@/$(GNULIB_ROUND)/g' \ ! -e 's/@''GNULIB_ROUNDF''@/$(GNULIB_ROUNDF)/g' \ ! -e 's/@''GNULIB_ROUNDL''@/$(GNULIB_ROUNDL)/g' \ ! -e 's/@''GNULIB_SIGNBIT''@/$(GNULIB_SIGNBIT)/g' \ ! -e 's/@''GNULIB_SINL''@/$(GNULIB_SINL)/g' \ ! -e 's/@''GNULIB_SQRTL''@/$(GNULIB_SQRTL)/g' \ ! -e 's/@''GNULIB_TANL''@/$(GNULIB_TANL)/g' \ ! -e 's/@''GNULIB_TRUNC''@/$(GNULIB_TRUNC)/g' \ ! -e 's/@''GNULIB_TRUNCF''@/$(GNULIB_TRUNCF)/g' \ ! -e 's/@''GNULIB_TRUNCL''@/$(GNULIB_TRUNCL)/g' \ ! < $(srcdir)/math.in.h | \ ! sed -e 's|@''HAVE_ACOSL''@|$(HAVE_ACOSL)|g' \ -e 's|@''HAVE_ASINL''@|$(HAVE_ASINL)|g' \ -e 's|@''HAVE_ATANL''@|$(HAVE_ATANL)|g' \ -e 's|@''HAVE_COSL''@|$(HAVE_COSL)|g' \ *************** *** 2220,2226 **** -e 's|@''HAVE_DECL_TRUNC''@|$(HAVE_DECL_TRUNC)|g' \ -e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \ -e 's|@''HAVE_DECL_TRUNCL''@|$(HAVE_DECL_TRUNCL)|g' \ ! -e 's|@''REPLACE_CEIL''@|$(REPLACE_CEIL)|g' \ -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \ -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \ -e 's|@''REPLACE_FLOOR''@|$(REPLACE_FLOOR)|g' \ --- 2287,2294 ---- -e 's|@''HAVE_DECL_TRUNC''@|$(HAVE_DECL_TRUNC)|g' \ -e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \ -e 's|@''HAVE_DECL_TRUNCL''@|$(HAVE_DECL_TRUNCL)|g' \ ! | \ ! sed -e 's|@''REPLACE_CEIL''@|$(REPLACE_CEIL)|g' \ -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \ -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \ -e 's|@''REPLACE_FLOOR''@|$(REPLACE_FLOOR)|g' \ *************** *** 2244,2272 **** -e 's|@''REPLACE_TRUNCL''@|$(REPLACE_TRUNCL)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ! -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ ! < $(srcdir)/math.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have a complete one. ! signal.h: signal.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \ ! -e 's|@''GNULIB_SIGNAL_H_SIGPIPE''@|$(GNULIB_SIGNAL_H_SIGPIPE)|g' \ ! -e 's|@''GNULIB_SIGPROCMASK''@|$(GNULIB_SIGPROCMASK)|g' \ ! -e 's|@''GNULIB_SIGACTION''@|$(GNULIB_SIGACTION)|g' \ -e 's|@''HAVE_POSIX_SIGNALBLOCKING''@|$(HAVE_POSIX_SIGNALBLOCKING)|g' \ -e 's|@''HAVE_SIGSET_T''@|$(HAVE_SIGSET_T)|g' \ -e 's|@''HAVE_SIGINFO_T''@|$(HAVE_SIGINFO_T)|g' \ -e 's|@''HAVE_SIGACTION''@|$(HAVE_SIGACTION)|g' \ -e 's|@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@|$(HAVE_STRUCT_SIGACTION_SA_SIGACTION)|g' \ -e 's|@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@|$(HAVE_TYPE_VOLATILE_SIG_ATOMIC_T)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ --- 2312,2341 ---- -e 's|@''REPLACE_TRUNCL''@|$(REPLACE_TRUNCL)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ! -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have a complete one. ! signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \ ! -e 's/@''GNULIB_SIGNAL_H_SIGPIPE''@/$(GNULIB_SIGNAL_H_SIGPIPE)/g' \ ! -e 's/@''GNULIB_SIGPROCMASK''@/$(GNULIB_SIGPROCMASK)/g' \ ! -e 's/@''GNULIB_SIGACTION''@/$(GNULIB_SIGACTION)/g' \ -e 's|@''HAVE_POSIX_SIGNALBLOCKING''@|$(HAVE_POSIX_SIGNALBLOCKING)|g' \ -e 's|@''HAVE_SIGSET_T''@|$(HAVE_SIGSET_T)|g' \ -e 's|@''HAVE_SIGINFO_T''@|$(HAVE_SIGINFO_T)|g' \ -e 's|@''HAVE_SIGACTION''@|$(HAVE_SIGACTION)|g' \ -e 's|@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@|$(HAVE_STRUCT_SIGACTION_SA_SIGACTION)|g' \ -e 's|@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@|$(HAVE_TYPE_VOLATILE_SIG_ATOMIC_T)|g' \ + -e 's|@''HAVE_SIGHANDLER_T''@|$(HAVE_SIGHANDLER_T)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ *************** *** 2276,2387 **** # We need the following in order to create when the system # doesn't have one that works. ! stdbool.h: stdbool.in.h ! $(AM_V_GEN)rm -f $@-t $@ && \ ! { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ ! } > $@-t && \ ! mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! stddef.h: stddef.in.h ! $(AM_V_GEN)rm -f $@-t $@ && \ ! { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ ! -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ ! -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ ! -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ ! -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ ! -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ ! < $(srcdir)/stddef.in.h; \ ! } > $@-t && \ ! mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! stdint.h: stdint.in.h ! $(AM_V_GEN)rm -f $@-t $@ && \ ! { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ ! -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ ! -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ ! -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ ! -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ ! -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ ! -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ ! -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ ! -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ ! -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ ! -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ ! -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ ! -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ ! -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ ! -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ ! -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ ! -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ ! -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ ! -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ ! -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ ! -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ ! -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ ! -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ ! -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ ! < $(srcdir)/stdint.in.h; \ ! } > $@-t && \ ! mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! stdio.h: stdio.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ ! -e 's|@''GNULIB_DPRINTF''@|$(GNULIB_DPRINTF)|g' \ ! -e 's|@''GNULIB_FCLOSE''@|$(GNULIB_FCLOSE)|g' \ ! -e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \ ! -e 's|@''GNULIB_FOPEN''@|$(GNULIB_FOPEN)|g' \ ! -e 's|@''GNULIB_FPRINTF''@|$(GNULIB_FPRINTF)|g' \ ! -e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \ ! -e 's|@''GNULIB_FPURGE''@|$(GNULIB_FPURGE)|g' \ ! -e 's|@''GNULIB_FPUTC''@|$(GNULIB_FPUTC)|g' \ ! -e 's|@''GNULIB_FPUTS''@|$(GNULIB_FPUTS)|g' \ ! -e 's|@''GNULIB_FREOPEN''@|$(GNULIB_FREOPEN)|g' \ ! -e 's|@''GNULIB_FSEEK''@|$(GNULIB_FSEEK)|g' \ ! -e 's|@''GNULIB_FSEEKO''@|$(GNULIB_FSEEKO)|g' \ ! -e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \ ! -e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \ ! -e 's|@''GNULIB_FWRITE''@|$(GNULIB_FWRITE)|g' \ ! -e 's|@''GNULIB_GETDELIM''@|$(GNULIB_GETDELIM)|g' \ ! -e 's|@''GNULIB_GETLINE''@|$(GNULIB_GETLINE)|g' \ ! -e 's|@''GNULIB_OBSTACK_PRINTF''@|$(GNULIB_OBSTACK_PRINTF)|g' \ ! -e 's|@''GNULIB_OBSTACK_PRINTF_POSIX''@|$(GNULIB_OBSTACK_PRINTF_POSIX)|g' \ ! -e 's|@''GNULIB_PERROR''@|$(GNULIB_PERROR)|g' \ ! -e 's|@''GNULIB_POPEN''@|$(GNULIB_POPEN)|g' \ ! -e 's|@''GNULIB_PRINTF''@|$(GNULIB_PRINTF)|g' \ ! -e 's|@''GNULIB_PRINTF_POSIX''@|$(GNULIB_PRINTF_POSIX)|g' \ ! -e 's|@''GNULIB_PUTC''@|$(GNULIB_PUTC)|g' \ ! -e 's|@''GNULIB_PUTCHAR''@|$(GNULIB_PUTCHAR)|g' \ ! -e 's|@''GNULIB_PUTS''@|$(GNULIB_PUTS)|g' \ ! -e 's|@''GNULIB_REMOVE''@|$(GNULIB_REMOVE)|g' \ ! -e 's|@''GNULIB_RENAME''@|$(GNULIB_RENAME)|g' \ ! -e 's|@''GNULIB_RENAMEAT''@|$(GNULIB_RENAMEAT)|g' \ ! -e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \ ! -e 's|@''GNULIB_SPRINTF_POSIX''@|$(GNULIB_SPRINTF_POSIX)|g' \ ! -e 's|@''GNULIB_STDIO_H_SIGPIPE''@|$(GNULIB_STDIO_H_SIGPIPE)|g' \ ! -e 's|@''GNULIB_TMPFILE''@|$(GNULIB_TMPFILE)|g' \ ! -e 's|@''GNULIB_VASPRINTF''@|$(GNULIB_VASPRINTF)|g' \ ! -e 's|@''GNULIB_VDPRINTF''@|$(GNULIB_VDPRINTF)|g' \ ! -e 's|@''GNULIB_VFPRINTF''@|$(GNULIB_VFPRINTF)|g' \ ! -e 's|@''GNULIB_VFPRINTF_POSIX''@|$(GNULIB_VFPRINTF_POSIX)|g' \ ! -e 's|@''GNULIB_VPRINTF''@|$(GNULIB_VPRINTF)|g' \ ! -e 's|@''GNULIB_VPRINTF_POSIX''@|$(GNULIB_VPRINTF_POSIX)|g' \ ! -e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \ ! -e 's|@''GNULIB_VSPRINTF_POSIX''@|$(GNULIB_VSPRINTF_POSIX)|g' \ < $(srcdir)/stdio.in.h | \ sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ --- 2345,2477 ---- # We need the following in order to create when the system # doesn't have one that works. ! @GL_GENERATE_STDBOOL_H_TRUE@stdbool.h: stdbool.in.h $(top_builddir)/config.status ! @GL_GENERATE_STDBOOL_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ ! @GL_GENERATE_STDBOOL_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! @GL_GENERATE_STDBOOL_H_TRUE@ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ ! @GL_GENERATE_STDBOOL_H_TRUE@ } > $@-t && \ ! @GL_GENERATE_STDBOOL_H_TRUE@ mv $@-t $@ ! @GL_GENERATE_STDBOOL_H_FALSE@stdbool.h: $(top_builddir)/config.status ! @GL_GENERATE_STDBOOL_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! @GL_GENERATE_STDDEF_H_TRUE@stddef.h: stddef.in.h $(top_builddir)/config.status ! @GL_GENERATE_STDDEF_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ ! @GL_GENERATE_STDDEF_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! @GL_GENERATE_STDDEF_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ ! @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ ! @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ ! @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ ! @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ ! @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ ! @GL_GENERATE_STDDEF_H_TRUE@ < $(srcdir)/stddef.in.h; \ ! @GL_GENERATE_STDDEF_H_TRUE@ } > $@-t && \ ! @GL_GENERATE_STDDEF_H_TRUE@ mv $@-t $@ ! @GL_GENERATE_STDDEF_H_FALSE@stddef.h: $(top_builddir)/config.status ! @GL_GENERATE_STDDEF_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! @GL_GENERATE_STDINT_H_TRUE@stdint.h: stdint.in.h $(top_builddir)/config.status ! @GL_GENERATE_STDINT_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ ! @GL_GENERATE_STDINT_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! @GL_GENERATE_STDINT_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ ! @GL_GENERATE_STDINT_H_TRUE@ < $(srcdir)/stdint.in.h; \ ! @GL_GENERATE_STDINT_H_TRUE@ } > $@-t && \ ! @GL_GENERATE_STDINT_H_TRUE@ mv $@-t $@ ! @GL_GENERATE_STDINT_H_FALSE@stdint.h: $(top_builddir)/config.status ! @GL_GENERATE_STDINT_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ ! -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \ ! -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \ ! -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \ ! -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \ ! -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \ ! -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \ ! -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \ ! -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \ ! -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \ ! -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \ ! -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \ ! -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \ ! -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \ ! -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \ ! -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \ ! -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \ ! -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \ ! -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \ ! -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \ ! -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \ ! -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \ ! -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \ ! -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \ ! -e 's/@''GNULIB_GETS''@/$(GNULIB_GETS)/g' \ ! -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \ ! -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \ ! -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \ ! -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \ ! -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \ ! -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \ ! -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \ ! -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \ ! -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \ ! -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \ ! -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \ ! -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \ ! -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \ ! -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \ ! -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \ ! -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \ ! -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \ ! -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \ ! -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \ ! -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \ ! -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \ ! -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \ ! -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \ ! -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \ ! -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \ ! -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \ ! -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \ ! -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \ < $(srcdir)/stdio.in.h | \ sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ *************** *** 2419,2424 **** --- 2509,2515 ---- -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ + -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \ -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \ -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ *************** *** 2436,2475 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! stdlib.h: stdlib.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ ! -e 's|@''GNULIB__EXIT''@|$(GNULIB__EXIT)|g' \ ! -e 's|@''GNULIB_ATOLL''@|$(GNULIB_ATOLL)|g' \ ! -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \ ! -e 's|@''GNULIB_CANONICALIZE_FILE_NAME''@|$(GNULIB_CANONICALIZE_FILE_NAME)|g' \ ! -e 's|@''GNULIB_GETLOADAVG''@|$(GNULIB_GETLOADAVG)|g' \ ! -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \ ! -e 's|@''GNULIB_GRANTPT''@|$(GNULIB_GRANTPT)|g' \ ! -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \ ! -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \ ! -e 's|@''GNULIB_MKOSTEMP''@|$(GNULIB_MKOSTEMP)|g' \ ! -e 's|@''GNULIB_MKOSTEMPS''@|$(GNULIB_MKOSTEMPS)|g' \ ! -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \ ! -e 's|@''GNULIB_MKSTEMPS''@|$(GNULIB_MKSTEMPS)|g' \ ! -e 's|@''GNULIB_PTSNAME''@|$(GNULIB_PTSNAME)|g' \ ! -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \ ! -e 's|@''GNULIB_RANDOM_R''@|$(GNULIB_RANDOM_R)|g' \ ! -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \ ! -e 's|@''GNULIB_REALPATH''@|$(GNULIB_REALPATH)|g' \ ! -e 's|@''GNULIB_RPMATCH''@|$(GNULIB_RPMATCH)|g' \ ! -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \ ! -e 's|@''GNULIB_STRTOD''@|$(GNULIB_STRTOD)|g' \ ! -e 's|@''GNULIB_STRTOLL''@|$(GNULIB_STRTOLL)|g' \ ! -e 's|@''GNULIB_STRTOULL''@|$(GNULIB_STRTOULL)|g' \ ! -e 's|@''GNULIB_SYSTEM_POSIX''@|$(GNULIB_SYSTEM_POSIX)|g' \ ! -e 's|@''GNULIB_UNLOCKPT''@|$(GNULIB_UNLOCKPT)|g' \ ! -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \ ! -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ --- 2527,2570 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ ! -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \ ! -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \ ! -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \ ! -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \ ! -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \ ! -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \ ! -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \ ! -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \ ! -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \ ! -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \ ! -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \ ! -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \ ! -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \ ! -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \ ! -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ ! -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ ! -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ ! -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ ! -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \ ! -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \ ! -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ ! -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ ! -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ ! -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ ! -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ ! -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \ ! -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \ ! -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \ ! < $(srcdir)/stdlib.in.h | \ ! sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ *************** *** 2496,2501 **** --- 2591,2597 ---- -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ + -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ *************** *** 2503,2559 **** -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ! -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ ! < $(srcdir)/stdlib.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! string.h: string.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ ! -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \ ! -e 's|@''GNULIB_MBSNLEN''@|$(GNULIB_MBSNLEN)|g' \ ! -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \ ! -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \ ! -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \ ! -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \ ! -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \ ! -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \ ! -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \ ! -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \ ! -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \ ! -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \ ! -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \ ! -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \ ! -e 's|@''GNULIB_MEMCHR''@|$(GNULIB_MEMCHR)|g' \ ! -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \ ! -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \ ! -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \ ! -e 's|@''GNULIB_RAWMEMCHR''@|$(GNULIB_RAWMEMCHR)|g' \ ! -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \ ! -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \ ! -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \ ! -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \ ! -e 's|@''GNULIB_STRNCAT''@|$(GNULIB_STRNCAT)|g' \ ! -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \ ! -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \ ! -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \ ! -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \ ! -e 's|@''GNULIB_STRSTR''@|$(GNULIB_STRSTR)|g' \ ! -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \ ! -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \ ! -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \ ! -e 's|@''GNULIB_STRERROR_R''@|$(GNULIB_STRERROR_R)|g' \ ! -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \ ! -e 's|@''GNULIB_STRVERSCMP''@|$(GNULIB_STRVERSCMP)|g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \ --- 2599,2656 ---- -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ + -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ! -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ ! -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \ ! -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \ ! -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \ ! -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \ ! -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \ ! -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \ ! -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \ ! -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \ ! -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \ ! -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \ ! -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \ ! -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \ ! -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \ ! -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \ ! -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \ ! -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \ ! -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \ ! -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \ ! -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \ ! -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \ ! -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \ ! -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \ ! -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \ ! -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \ ! -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \ ! -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \ ! -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \ ! -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \ ! -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \ ! -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \ ! -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \ ! -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \ ! -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \ ! -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \ ! -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \ *************** *** 2578,2583 **** --- 2675,2681 ---- -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ + -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ *************** *** 2595,2629 **** } > $@-t && \ mv $@-t $@ - # We need the following in order to create when the system - # doesn't have one that works with the given compiler. - strings.h: strings.in.h $(WARN_ON_USE_H) $(ARG_NONNULL_H) - $(AM_V_GEN)rm -f $@-t $@ && \ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ - sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ - -e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \ - -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \ - -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \ - -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - < $(srcdir)/strings.in.h; \ - } > $@-t && \ - mv $@-t $@ - # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! sys/select.h: sys_select.in.h $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_SELECT_H''@|$(NEXT_SYS_SELECT_H)|g' \ -e 's|@''HAVE_SYS_SELECT_H''@|$(HAVE_SYS_SELECT_H)|g' \ ! -e 's|@''GNULIB_SELECT''@|$(GNULIB_SELECT)|g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's|@''REPLACE_SELECT''@|$(REPLACE_SELECT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ --- 2693,2711 ---- } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! sys/select.h: sys_select.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_SELECT_H''@|$(NEXT_SYS_SELECT_H)|g' \ -e 's|@''HAVE_SYS_SELECT_H''@|$(HAVE_SYS_SELECT_H)|g' \ ! -e 's/@''GNULIB_SELECT''@/$(GNULIB_SELECT)/g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's|@''REPLACE_SELECT''@|$(REPLACE_SELECT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ *************** *** 2634,2664 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! sys/socket.h: sys_socket.in.h $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \ -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \ ! -e 's|@''GNULIB_CLOSE''@|$(GNULIB_CLOSE)|g' \ ! -e 's|@''GNULIB_SOCKET''@|$(GNULIB_SOCKET)|g' \ ! -e 's|@''GNULIB_CONNECT''@|$(GNULIB_CONNECT)|g' \ ! -e 's|@''GNULIB_ACCEPT''@|$(GNULIB_ACCEPT)|g' \ ! -e 's|@''GNULIB_BIND''@|$(GNULIB_BIND)|g' \ ! -e 's|@''GNULIB_GETPEERNAME''@|$(GNULIB_GETPEERNAME)|g' \ ! -e 's|@''GNULIB_GETSOCKNAME''@|$(GNULIB_GETSOCKNAME)|g' \ ! -e 's|@''GNULIB_GETSOCKOPT''@|$(GNULIB_GETSOCKOPT)|g' \ ! -e 's|@''GNULIB_LISTEN''@|$(GNULIB_LISTEN)|g' \ ! -e 's|@''GNULIB_RECV''@|$(GNULIB_RECV)|g' \ ! -e 's|@''GNULIB_SEND''@|$(GNULIB_SEND)|g' \ ! -e 's|@''GNULIB_RECVFROM''@|$(GNULIB_RECVFROM)|g' \ ! -e 's|@''GNULIB_SENDTO''@|$(GNULIB_SENDTO)|g' \ ! -e 's|@''GNULIB_SETSOCKOPT''@|$(GNULIB_SETSOCKOPT)|g' \ ! -e 's|@''GNULIB_SHUTDOWN''@|$(GNULIB_SHUTDOWN)|g' \ ! -e 's|@''GNULIB_ACCEPT4''@|$(GNULIB_ACCEPT4)|g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \ -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \ --- 2716,2747 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! sys/socket.h: sys_socket.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \ -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \ ! -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ ! -e 's/@''GNULIB_SOCKET''@/$(GNULIB_SOCKET)/g' \ ! -e 's/@''GNULIB_CONNECT''@/$(GNULIB_CONNECT)/g' \ ! -e 's/@''GNULIB_ACCEPT''@/$(GNULIB_ACCEPT)/g' \ ! -e 's/@''GNULIB_BIND''@/$(GNULIB_BIND)/g' \ ! -e 's/@''GNULIB_GETPEERNAME''@/$(GNULIB_GETPEERNAME)/g' \ ! -e 's/@''GNULIB_GETSOCKNAME''@/$(GNULIB_GETSOCKNAME)/g' \ ! -e 's/@''GNULIB_GETSOCKOPT''@/$(GNULIB_GETSOCKOPT)/g' \ ! -e 's/@''GNULIB_LISTEN''@/$(GNULIB_LISTEN)/g' \ ! -e 's/@''GNULIB_RECV''@/$(GNULIB_RECV)/g' \ ! -e 's/@''GNULIB_SEND''@/$(GNULIB_SEND)/g' \ ! -e 's/@''GNULIB_RECVFROM''@/$(GNULIB_RECVFROM)/g' \ ! -e 's/@''GNULIB_SENDTO''@/$(GNULIB_SENDTO)/g' \ ! -e 's/@''GNULIB_SETSOCKOPT''@/$(GNULIB_SETSOCKOPT)/g' \ ! -e 's/@''GNULIB_SHUTDOWN''@/$(GNULIB_SHUTDOWN)/g' \ ! -e 's/@''GNULIB_ACCEPT4''@/$(GNULIB_ACCEPT4)/g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \ -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \ *************** *** 2674,2699 **** # We need the following in order to create when the system # has one that is incomplete. ! sys/stat.h: sys_stat.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ ! -e 's|@''GNULIB_FCHMODAT''@|$(GNULIB_FCHMODAT)|g' \ ! -e 's|@''GNULIB_FSTATAT''@|$(GNULIB_FSTATAT)|g' \ ! -e 's|@''GNULIB_FUTIMENS''@|$(GNULIB_FUTIMENS)|g' \ ! -e 's|@''GNULIB_LCHMOD''@|$(GNULIB_LCHMOD)|g' \ ! -e 's|@''GNULIB_LSTAT''@|$(GNULIB_LSTAT)|g' \ ! -e 's|@''GNULIB_MKDIRAT''@|$(GNULIB_MKDIRAT)|g' \ ! -e 's|@''GNULIB_MKFIFO''@|$(GNULIB_MKFIFO)|g' \ ! -e 's|@''GNULIB_MKFIFOAT''@|$(GNULIB_MKFIFOAT)|g' \ ! -e 's|@''GNULIB_MKNOD''@|$(GNULIB_MKNOD)|g' \ ! -e 's|@''GNULIB_MKNODAT''@|$(GNULIB_MKNODAT)|g' \ ! -e 's|@''GNULIB_STAT''@|$(GNULIB_STAT)|g' \ ! -e 's|@''GNULIB_UTIMENSAT''@|$(GNULIB_UTIMENSAT)|g' \ -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ --- 2757,2783 ---- # We need the following in order to create when the system # has one that is incomplete. ! sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ ! -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \ ! -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \ ! -e 's/@''GNULIB_FUTIMENS''@/$(GNULIB_FUTIMENS)/g' \ ! -e 's/@''GNULIB_LCHMOD''@/$(GNULIB_LCHMOD)/g' \ ! -e 's/@''GNULIB_LSTAT''@/$(GNULIB_LSTAT)/g' \ ! -e 's/@''GNULIB_MKDIRAT''@/$(GNULIB_MKDIRAT)/g' \ ! -e 's/@''GNULIB_MKFIFO''@/$(GNULIB_MKFIFO)/g' \ ! -e 's/@''GNULIB_MKFIFOAT''@/$(GNULIB_MKFIFOAT)/g' \ ! -e 's/@''GNULIB_MKNOD''@/$(GNULIB_MKNOD)/g' \ ! -e 's/@''GNULIB_MKNODAT''@/$(GNULIB_MKNODAT)/g' \ ! -e 's/@''GNULIB_STAT''@/$(GNULIB_STAT)/g' \ ! -e 's/@''GNULIB_UTIMENSAT''@/$(GNULIB_UTIMENSAT)/g' \ -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ *************** *** 2723,2733 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! sys/time.h: sys_time.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ --- 2807,2818 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! sys/time.h: sys_time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ *************** *** 2745,2760 **** # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! sys/times.h: sys_times.in.h $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's/@''HAVE_SYS_TIMES_H''@/$(HAVE_SYS_TIMES_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TIMES_H''@|$(NEXT_SYS_TIMES_H)|g' \ ! -e 's|@''GNULIB_TIMES''@|$(GNULIB_TIMES)|g' \ -e 's|@''HAVE_STRUCT_TMS''@|$(HAVE_STRUCT_TMS)|g' \ -e 's|@''HAVE_TIMES''@|$(HAVE_TIMES)|g' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ --- 2830,2846 ---- # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! sys/times.h: sys_times.in.h $(top_builddir)/config.status $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's/@''HAVE_SYS_TIMES_H''@/$(HAVE_SYS_TIMES_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TIMES_H''@|$(NEXT_SYS_TIMES_H)|g' \ ! -e 's/@''GNULIB_TIMES''@/$(GNULIB_TIMES)/g' \ -e 's|@''HAVE_STRUCT_TMS''@|$(HAVE_STRUCT_TMS)|g' \ -e 's|@''HAVE_TIMES''@|$(HAVE_TIMES)|g' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ *************** *** 2763,2782 **** } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! time.h: time.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ ! -e 's|@''GNULIB_MKTIME''@|$(GNULIB_MKTIME)|g' \ ! -e 's|@''GNULIB_NANOSLEEP''@|$(GNULIB_NANOSLEEP)|g' \ ! -e 's|@''GNULIB_STRPTIME''@|$(GNULIB_STRPTIME)|g' \ ! -e 's|@''GNULIB_TIMEGM''@|$(GNULIB_TIMEGM)|g' \ ! -e 's|@''GNULIB_TIME_R''@|$(GNULIB_TIME_R)|g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ --- 2849,2885 ---- } > $@-t && \ mv $@-t $@ + # We need the following in order to create when the system + # doesn't have one that works with the given compiler. + sys/uio.h: sys_uio.in.h $(top_builddir)/config.status + $(AM_V_at)$(MKDIR_P) sys + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_SYS_UIO_H''@|$(NEXT_SYS_UIO_H)|g' \ + -e 's|@''HAVE_SYS_UIO_H''@|$(HAVE_SYS_UIO_H)|g' \ + < $(srcdir)/sys_uio.in.h; \ + } > $@-t && \ + mv -f $@-t $@ + # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ ! -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \ ! -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \ ! -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \ ! -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \ ! -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ *************** *** 2797,2851 **** # We need the following in order to create an empty placeholder for # when the system doesn't have one. ! unistd.h: unistd.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ ! -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \ ! -e 's|@''GNULIB_CLOSE''@|$(GNULIB_CLOSE)|g' \ ! -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \ ! -e 's|@''GNULIB_DUP3''@|$(GNULIB_DUP3)|g' \ ! -e 's|@''GNULIB_ENVIRON''@|$(GNULIB_ENVIRON)|g' \ ! -e 's|@''GNULIB_EUIDACCESS''@|$(GNULIB_EUIDACCESS)|g' \ ! -e 's|@''GNULIB_FACCESSAT''@|$(GNULIB_FACCESSAT)|g' \ ! -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \ ! -e 's|@''GNULIB_FCHOWNAT''@|$(GNULIB_FCHOWNAT)|g' \ ! -e 's|@''GNULIB_FSYNC''@|$(GNULIB_FSYNC)|g' \ ! -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \ ! -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \ ! -e 's|@''GNULIB_GETDOMAINNAME''@|$(GNULIB_GETDOMAINNAME)|g' \ ! -e 's|@''GNULIB_GETDTABLESIZE''@|$(GNULIB_GETDTABLESIZE)|g' \ ! -e 's|@''GNULIB_GETGROUPS''@|$(GNULIB_GETGROUPS)|g' \ ! -e 's|@''GNULIB_GETHOSTNAME''@|$(GNULIB_GETHOSTNAME)|g' \ ! -e 's|@''GNULIB_GETLOGIN''@|$(GNULIB_GETLOGIN)|g' \ ! -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \ ! -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \ ! -e 's|@''GNULIB_GETUSERSHELL''@|$(GNULIB_GETUSERSHELL)|g' \ ! -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \ ! -e 's|@''GNULIB_LINK''@|$(GNULIB_LINK)|g' \ ! -e 's|@''GNULIB_LINKAT''@|$(GNULIB_LINKAT)|g' \ ! -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \ ! -e 's|@''GNULIB_PIPE''@|$(GNULIB_PIPE)|g' \ ! -e 's|@''GNULIB_PIPE2''@|$(GNULIB_PIPE2)|g' \ ! -e 's|@''GNULIB_PREAD''@|$(GNULIB_PREAD)|g' \ ! -e 's|@''GNULIB_PWRITE''@|$(GNULIB_PWRITE)|g' \ ! -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \ ! -e 's|@''GNULIB_READLINKAT''@|$(GNULIB_READLINKAT)|g' \ ! -e 's|@''GNULIB_RMDIR''@|$(GNULIB_RMDIR)|g' \ ! -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \ ! -e 's|@''GNULIB_SYMLINK''@|$(GNULIB_SYMLINK)|g' \ ! -e 's|@''GNULIB_SYMLINKAT''@|$(GNULIB_SYMLINKAT)|g' \ ! -e 's|@''GNULIB_TTYNAME_R''@|$(GNULIB_TTYNAME_R)|g' \ ! -e 's|@''GNULIB_UNISTD_H_GETOPT''@|$(GNULIB_UNISTD_H_GETOPT)|g' \ ! -e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \ ! -e 's|@''GNULIB_UNLINK''@|$(GNULIB_UNLINK)|g' \ ! -e 's|@''GNULIB_UNLINKAT''@|$(GNULIB_UNLINKAT)|g' \ ! -e 's|@''GNULIB_USLEEP''@|$(GNULIB_USLEEP)|g' \ ! -e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ --- 2900,2958 ---- # We need the following in order to create an empty placeholder for # when the system doesn't have one. ! unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ ! -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ ! -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ ! -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ ! -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ ! -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \ ! -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \ ! -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \ ! -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \ ! -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \ ! -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \ ! -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \ ! -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \ ! -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \ ! -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \ ! -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \ ! -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \ ! -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \ ! -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \ ! -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \ ! -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ ! -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ ! -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \ ! -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \ ! -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \ ! -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \ ! -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \ ! -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \ ! -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \ ! -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \ ! -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \ ! -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \ ! -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \ ! -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \ ! -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \ ! -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \ ! -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \ ! -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \ ! -e 's/@''GNULIB_UNISTD_H_GETOPT''@/$(GNULIB_UNISTD_H_GETOPT)/g' \ ! -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \ ! -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \ ! -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \ ! -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \ ! -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \ ! -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ *************** *** 2861,2866 **** --- 2968,2974 ---- -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ + -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ *************** *** 2884,2890 **** -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ ! -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ --- 2992,2999 ---- -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ ! | \ ! sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ *************** *** 2900,2905 **** --- 3009,3015 ---- -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ + -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ *************** *** 2927,2981 **** # We need the following in order to create when the system # version does not work standalone. ! wchar.h: wchar.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ ! -e 's|@''GNULIB_BTOWC''@|$(GNULIB_BTOWC)|g' \ ! -e 's|@''GNULIB_WCTOB''@|$(GNULIB_WCTOB)|g' \ ! -e 's|@''GNULIB_MBSINIT''@|$(GNULIB_MBSINIT)|g' \ ! -e 's|@''GNULIB_MBRTOWC''@|$(GNULIB_MBRTOWC)|g' \ ! -e 's|@''GNULIB_MBRLEN''@|$(GNULIB_MBRLEN)|g' \ ! -e 's|@''GNULIB_MBSRTOWCS''@|$(GNULIB_MBSRTOWCS)|g' \ ! -e 's|@''GNULIB_MBSNRTOWCS''@|$(GNULIB_MBSNRTOWCS)|g' \ ! -e 's|@''GNULIB_WCRTOMB''@|$(GNULIB_WCRTOMB)|g' \ ! -e 's|@''GNULIB_WCSRTOMBS''@|$(GNULIB_WCSRTOMBS)|g' \ ! -e 's|@''GNULIB_WCSNRTOMBS''@|$(GNULIB_WCSNRTOMBS)|g' \ ! -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \ ! -e 's|@''GNULIB_WMEMCHR''@|$(GNULIB_WMEMCHR)|g' \ ! -e 's|@''GNULIB_WMEMCMP''@|$(GNULIB_WMEMCMP)|g' \ ! -e 's|@''GNULIB_WMEMCPY''@|$(GNULIB_WMEMCPY)|g' \ ! -e 's|@''GNULIB_WMEMMOVE''@|$(GNULIB_WMEMMOVE)|g' \ ! -e 's|@''GNULIB_WMEMSET''@|$(GNULIB_WMEMSET)|g' \ ! -e 's|@''GNULIB_WCSLEN''@|$(GNULIB_WCSLEN)|g' \ ! -e 's|@''GNULIB_WCSNLEN''@|$(GNULIB_WCSNLEN)|g' \ ! -e 's|@''GNULIB_WCSCPY''@|$(GNULIB_WCSCPY)|g' \ ! -e 's|@''GNULIB_WCPCPY''@|$(GNULIB_WCPCPY)|g' \ ! -e 's|@''GNULIB_WCSNCPY''@|$(GNULIB_WCSNCPY)|g' \ ! -e 's|@''GNULIB_WCPNCPY''@|$(GNULIB_WCPNCPY)|g' \ ! -e 's|@''GNULIB_WCSCAT''@|$(GNULIB_WCSCAT)|g' \ ! -e 's|@''GNULIB_WCSNCAT''@|$(GNULIB_WCSNCAT)|g' \ ! -e 's|@''GNULIB_WCSCMP''@|$(GNULIB_WCSCMP)|g' \ ! -e 's|@''GNULIB_WCSNCMP''@|$(GNULIB_WCSNCMP)|g' \ ! -e 's|@''GNULIB_WCSCASECMP''@|$(GNULIB_WCSCASECMP)|g' \ ! -e 's|@''GNULIB_WCSNCASECMP''@|$(GNULIB_WCSNCASECMP)|g' \ ! -e 's|@''GNULIB_WCSCOLL''@|$(GNULIB_WCSCOLL)|g' \ ! -e 's|@''GNULIB_WCSXFRM''@|$(GNULIB_WCSXFRM)|g' \ ! -e 's|@''GNULIB_WCSDUP''@|$(GNULIB_WCSDUP)|g' \ ! -e 's|@''GNULIB_WCSCHR''@|$(GNULIB_WCSCHR)|g' \ ! -e 's|@''GNULIB_WCSRCHR''@|$(GNULIB_WCSRCHR)|g' \ ! -e 's|@''GNULIB_WCSCSPN''@|$(GNULIB_WCSCSPN)|g' \ ! -e 's|@''GNULIB_WCSSPN''@|$(GNULIB_WCSSPN)|g' \ ! -e 's|@''GNULIB_WCSPBRK''@|$(GNULIB_WCSPBRK)|g' \ ! -e 's|@''GNULIB_WCSSTR''@|$(GNULIB_WCSSTR)|g' \ ! -e 's|@''GNULIB_WCSTOK''@|$(GNULIB_WCSTOK)|g' \ ! -e 's|@''GNULIB_WCSWIDTH''@|$(GNULIB_WCSWIDTH)|g' \ ! -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ --- 3037,3093 ---- # We need the following in order to create when the system # version does not work standalone. ! wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ ! -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \ ! -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \ ! -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \ ! -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \ ! -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \ ! -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \ ! -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \ ! -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \ ! -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \ ! -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \ ! -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \ ! -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \ ! -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \ ! -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \ ! -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \ ! -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \ ! -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \ ! -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \ ! -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \ ! -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \ ! -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \ ! -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \ ! -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \ ! -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \ ! -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \ ! -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \ ! -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \ ! -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \ ! -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \ ! -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \ ! -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \ ! -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \ ! -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \ ! -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \ ! -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \ ! -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \ ! -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \ ! -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \ ! -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \ ! < $(srcdir)/wchar.in.h | \ ! sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ *************** *** 3015,3021 **** -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ ! -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ --- 3127,3134 ---- -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ ! | \ ! sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ *************** *** 3030,3052 **** -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ! -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ ! < $(srcdir)/wchar.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! wctype.h: wctype.in.h $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \ -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \ --- 3143,3172 ---- -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ! -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. ! wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ! sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ! -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ + -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \ + -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \ + -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \ + -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \ + -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \ -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \ -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ + -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \ + -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \ diff -cNr octave-3.4.0/libgnu/malloca.c octave-3.4.1/libgnu/malloca.c *** octave-3.4.0/libgnu/malloca.c 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/malloca.c 2011-06-15 11:31:07.000000000 -0400 *************** *** 18,23 **** --- 18,24 ---- along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + #define _GL_USE_STDLIB_ALLOC 1 #include /* Specification. */ *************** *** 25,33 **** #include "verify.h" - /* Use the system functions, not the gnulib overrides in this file. */ - #undef malloc - /* The speed critical point in this file is freea() applied to an alloca() result: it must be fast, to match the speed of alloca(). The speed of mmalloca() and freea() in the other case are not critical, because they --- 26,31 ---- diff -cNr octave-3.4.0/libgnu/malloc.c octave-3.4.1/libgnu/malloc.c *** octave-3.4.0/libgnu/malloc.c 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/malloc.c 2011-06-15 11:31:07.000000000 -0400 *************** *** 20,25 **** --- 20,26 ---- /* written by Jim Meyering and Bruno Haible */ + #define _GL_USE_STDLIB_ALLOC 1 #include /* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h. */ #ifdef malloc *************** *** 30,43 **** # define NEED_MALLOC_GNU 1 #endif - /* Specification. */ #include #include - /* Call the system's malloc below. */ - #undef malloc - /* Allocate an N-byte block of memory from the heap. If N is zero, allocate a 1-byte block. */ --- 31,40 ---- diff -cNr octave-3.4.0/libgnu/math.in.h octave-3.4.1/libgnu/math.in.h *** octave-3.4.0/libgnu/math.in.h 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/math.in.h 2011-06-15 11:31:07.000000000 -0400 *************** *** 17,23 **** You should have received a copy of the GNU General Public License along with this program. If not, see . */ ! #ifndef _GL_MATH_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ --- 17,23 ---- You should have received a copy of the GNU General Public License along with this program. If not, see . */ ! #ifndef _@GUARD_PREFIX@_MATH_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ *************** *** 27,34 **** /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ ! #ifndef _GL_MATH_H ! #define _GL_MATH_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ --- 27,34 ---- /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ ! #ifndef _@GUARD_PREFIX@_MATH_H ! #define _@GUARD_PREFIX@_MATH_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ *************** *** 808,812 **** #endif ! #endif /* _GL_MATH_H */ ! #endif /* _GL_MATH_H */ --- 808,812 ---- #endif ! #endif /* _@GUARD_PREFIX@_MATH_H */ ! #endif /* _@GUARD_PREFIX@_MATH_H */ diff -cNr octave-3.4.0/libgnu/mbrtowc.c octave-3.4.1/libgnu/mbrtowc.c *** octave-3.4.0/libgnu/mbrtowc.c 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/mbrtowc.c 2011-06-15 11:31:07.000000000 -0400 *************** *** 42,50 **** { char *pstate = (char *)ps; - if (pstate == NULL) - pstate = internal_state; - if (s == NULL) { pwc = NULL; --- 42,47 ---- *************** *** 56,61 **** --- 53,62 ---- return (size_t)(-2); /* Here n > 0. */ + + if (pstate == NULL) + pstate = internal_state; + { size_t nstate = pstate[0]; char buf[4]; *************** *** 336,342 **** { static mbstate_t internal_state; ! /* Override mbrtowc's internal state. We can not call mbsinit() on the hidden internal state, but we can call it on our variable. */ if (ps == NULL) ps = &internal_state; --- 337,343 ---- { static mbstate_t internal_state; ! /* Override mbrtowc's internal state. We cannot call mbsinit() on the hidden internal state, but we can call it on our variable. */ if (ps == NULL) ps = &internal_state; diff -cNr octave-3.4.0/libgnu/mbsinit.c octave-3.4.1/libgnu/mbsinit.c *** octave-3.4.0/libgnu/mbsinit.c 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/mbsinit.c 2011-06-15 11:31:07.000000000 -0400 *************** *** 24,29 **** --- 24,41 ---- #include "verify.h" + #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ + + /* On native Windows, 'mbstate_t' is defined as 'int'. */ + + int + mbsinit (const mbstate_t *ps) + { + return ps == NULL || *ps == 0; + } + + #else + /* Platforms that lack mbsinit() also lack mbrlen(), mbrtowc(), mbsrtowcs() and wcrtomb(), wcsrtombs(). We assume that *************** *** 45,49 **** { const char *pstate = (const char *)ps; ! return pstate[0] == 0; } --- 57,63 ---- { const char *pstate = (const char *)ps; ! return pstate == NULL || pstate[0] == 0; } + + #endif diff -cNr octave-3.4.0/libgnu/mkstemp.c octave-3.4.1/libgnu/mkstemp.c *** octave-3.4.0/libgnu/mkstemp.c 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/mkstemp.c 2011-06-15 11:31:07.000000000 -0400 *************** *** 40,46 **** /* Generate a unique temporary file name from XTEMPLATE. The last six characters of XTEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. ! Then open the file and return a fd. */ int mkstemp (char *xtemplate) { --- 40,50 ---- /* Generate a unique temporary file name from XTEMPLATE. The last six characters of XTEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. ! Then open the file and return a fd. ! ! If you are creating temporary files which will later be removed, ! consider using the clean-temp module, which avoids several pitfalls ! of using mkstemp directly. */ int mkstemp (char *xtemplate) { diff -cNr octave-3.4.0/libgnu/nanosleep.c octave-3.4.1/libgnu/nanosleep.c *** octave-3.4.0/libgnu/nanosleep.c 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/nanosleep.c 2011-06-15 11:31:07.000000000 -0400 *************** *** 47,53 **** int nanosleep (const struct timespec *requested_delay, struct timespec *remaining_delay) ! #undef nanosleep { /* nanosleep mishandles large sleeps due to internal overflow problems. The worst known case of this is Linux 2.6.9 with glibc 2.3.4, which --- 47,53 ---- int nanosleep (const struct timespec *requested_delay, struct timespec *remaining_delay) ! # undef nanosleep { /* nanosleep mishandles large sleeps due to internal overflow problems. The worst known case of this is Linux 2.6.9 with glibc 2.3.4, which diff -cNr octave-3.4.0/libgnu/nproc.c octave-3.4.1/libgnu/nproc.c *** octave-3.4.0/libgnu/nproc.c 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/nproc.c 2011-06-15 11:31:07.000000000 -0400 *************** *** 0 **** --- 1,360 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* Detect the number of processors. + + Copyright (C) 2009-2011 Free Software Foundation, Inc. + + 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + + /* Written by Glen Lenker and Bruno Haible. */ + + #include + #include "nproc.h" + + #include + #include + + #if HAVE_PTHREAD_GETAFFINITY_NP && 0 + # include + # include + #endif + #if HAVE_SCHED_GETAFFINITY_LIKE_GLIBC || HAVE_SCHED_GETAFFINITY_NP + # include + #endif + + #include + + #if HAVE_SYS_PSTAT_H + # include + #endif + + #if HAVE_SYS_SYSMP_H + # include + #endif + + #if HAVE_SYS_PARAM_H + # include + #endif + + #if HAVE_SYS_SYSCTL_H + # include + #endif + + #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + # define WIN32_LEAN_AND_MEAN + # include + #endif + + #include "c-ctype.h" + + #define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0])) + + /* Return the number of processors available to the current process, based + on a modern system call that returns the "affinity" between the current + process and each CPU. Return 0 if unknown or if such a system call does + not exist. */ + static unsigned long + num_processors_via_affinity_mask (void) + { + /* glibc >= 2.3.3 with NPTL and NetBSD 5 have pthread_getaffinity_np, + but with different APIs. Also it requires linking with -lpthread. + Therefore this code is not enabled. + glibc >= 2.3.4 has sched_getaffinity whereas NetBSD 5 has + sched_getaffinity_np. */ + #if HAVE_PTHREAD_GETAFFINITY_NP && defined __GLIBC__ && 0 + { + cpu_set_t set; + + if (pthread_getaffinity_np (pthread_self (), sizeof (set), &set) == 0) + { + unsigned long count; + + # ifdef CPU_COUNT + /* glibc >= 2.6 has the CPU_COUNT macro. */ + count = CPU_COUNT (&set); + # else + size_t i; + + count = 0; + for (i = 0; i < CPU_SETSIZE; i++) + if (CPU_ISSET (i, &set)) + count++; + # endif + if (count > 0) + return count; + } + } + #elif HAVE_PTHREAD_GETAFFINITY_NP && defined __NetBSD__ && 0 + { + cpuset_t *set; + + set = cpuset_create (); + if (set != NULL) + { + unsigned long count = 0; + + if (pthread_getaffinity_np (pthread_self (), cpuset_size (set), set) + == 0) + { + cpuid_t i; + + for (i = 0;; i++) + { + int ret = cpuset_isset (i, set); + if (ret < 0) + break; + if (ret > 0) + count++; + } + } + cpuset_destroy (set); + if (count > 0) + return count; + } + } + #elif HAVE_SCHED_GETAFFINITY_LIKE_GLIBC /* glibc >= 2.3.4 */ + { + cpu_set_t set; + + if (sched_getaffinity (0, sizeof (set), &set) == 0) + { + unsigned long count; + + # ifdef CPU_COUNT + /* glibc >= 2.6 has the CPU_COUNT macro. */ + count = CPU_COUNT (&set); + # else + size_t i; + + count = 0; + for (i = 0; i < CPU_SETSIZE; i++) + if (CPU_ISSET (i, &set)) + count++; + # endif + if (count > 0) + return count; + } + } + #elif HAVE_SCHED_GETAFFINITY_NP /* NetBSD >= 5 */ + { + cpuset_t *set; + + set = cpuset_create (); + if (set != NULL) + { + unsigned long count = 0; + + if (sched_getaffinity_np (getpid (), cpuset_size (set), set) == 0) + { + cpuid_t i; + + for (i = 0;; i++) + { + int ret = cpuset_isset (i, set); + if (ret < 0) + break; + if (ret > 0) + count++; + } + } + cpuset_destroy (set); + if (count > 0) + return count; + } + } + #endif + + #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + { /* This works on native Windows platforms. */ + DWORD_PTR process_mask; + DWORD_PTR system_mask; + + if (GetProcessAffinityMask (GetCurrentProcess (), + &process_mask, &system_mask)) + { + DWORD_PTR mask = process_mask; + unsigned long count = 0; + + for (; mask != 0; mask = mask >> 1) + if (mask & 1) + count++; + if (count > 0) + return count; + } + } + #endif + + return 0; + } + + unsigned long int + num_processors (enum nproc_query query) + { + if (query == NPROC_CURRENT_OVERRIDABLE) + { + /* Test the environment variable OMP_NUM_THREADS, recognized also by all + programs that are based on OpenMP. The OpenMP spec says that the + value assigned to the environment variable "may have leading and + trailing white space". */ + const char *envvalue = getenv ("OMP_NUM_THREADS"); + + if (envvalue != NULL) + { + while (*envvalue != '\0' && c_isspace (*envvalue)) + envvalue++; + /* Convert it from decimal to 'unsigned long'. */ + if (c_isdigit (*envvalue)) + { + char *endptr = NULL; + unsigned long int value = strtoul (envvalue, &endptr, 10); + + if (endptr != NULL) + { + while (*endptr != '\0' && c_isspace (*endptr)) + endptr++; + if (*endptr == '\0') + return (value > 0 ? value : 1); + } + } + } + + query = NPROC_CURRENT; + } + /* Here query is one of NPROC_ALL, NPROC_CURRENT. */ + + /* On systems with a modern affinity mask system call, we have + sysconf (_SC_NPROCESSORS_CONF) + >= sysconf (_SC_NPROCESSORS_ONLN) + >= num_processors_via_affinity_mask () + The first number is the number of CPUs configured in the system. + The second number is the number of CPUs available to the scheduler. + The third number is the number of CPUs available to the current process. + + Note! On Linux systems with glibc, the first and second number come from + the /sys and /proc file systems (see + glibc/sysdeps/unix/sysv/linux/getsysstats.c). + In some situations these file systems are not mounted, and the sysconf + call returns 1, which does not reflect the reality. */ + + if (query == NPROC_CURRENT) + { + /* Try the modern affinity mask system call. */ + { + unsigned long nprocs = num_processors_via_affinity_mask (); + + if (nprocs > 0) + return nprocs; + } + + #if defined _SC_NPROCESSORS_ONLN + { /* This works on glibc, MacOS X 10.5, FreeBSD, AIX, OSF/1, Solaris, + Cygwin, Haiku. */ + long int nprocs = sysconf (_SC_NPROCESSORS_ONLN); + if (nprocs > 0) + return nprocs; + } + #endif + } + else /* query == NPROC_ALL */ + { + #if defined _SC_NPROCESSORS_CONF + { /* This works on glibc, MacOS X 10.5, FreeBSD, AIX, OSF/1, Solaris, + Cygwin, Haiku. */ + long int nprocs = sysconf (_SC_NPROCESSORS_CONF); + + # if __GLIBC__ >= 2 && defined __linux__ + /* On Linux systems with glibc, this information comes from the /sys and + /proc file systems (see glibc/sysdeps/unix/sysv/linux/getsysstats.c). + In some situations these file systems are not mounted, and the + sysconf call returns 1. But we wish to guarantee that + num_processors (NPROC_ALL) >= num_processors (NPROC_CURRENT). */ + if (nprocs == 1) + { + unsigned long nprocs_current = num_processors_via_affinity_mask (); + + if (nprocs_current > 0) + nprocs = nprocs_current; + } + # endif + + if (nprocs > 0) + return nprocs; + } + #endif + } + + #if HAVE_PSTAT_GETDYNAMIC + { /* This works on HP-UX. */ + struct pst_dynamic psd; + if (pstat_getdynamic (&psd, sizeof psd, 1, 0) >= 0) + { + /* The field psd_proc_cnt contains the number of active processors. + In newer releases of HP-UX 11, the field psd_max_proc_cnt includes + deactivated processors. */ + if (query == NPROC_CURRENT) + { + if (psd.psd_proc_cnt > 0) + return psd.psd_proc_cnt; + } + else + { + if (psd.psd_max_proc_cnt > 0) + return psd.psd_max_proc_cnt; + } + } + } + #endif + + #if HAVE_SYSMP && defined MP_NAPROCS && defined MP_NPROCS + { /* This works on IRIX. */ + /* MP_NPROCS yields the number of installed processors. + MP_NAPROCS yields the number of processors available to unprivileged + processes. */ + int nprocs = + sysmp (query == NPROC_CURRENT && getpid () != 0 + ? MP_NAPROCS + : MP_NPROCS); + if (nprocs > 0) + return nprocs; + } + #endif + + /* Finally, as fallback, use the APIs that don't distinguish between + NPROC_CURRENT and NPROC_ALL. */ + + #if HAVE_SYSCTL && defined HW_NCPU + { /* This works on MacOS X, FreeBSD, NetBSD, OpenBSD. */ + int nprocs; + size_t len = sizeof (nprocs); + static int mib[2] = { CTL_HW, HW_NCPU }; + + if (sysctl (mib, ARRAY_SIZE (mib), &nprocs, &len, NULL, 0) == 0 + && len == sizeof (nprocs) + && 0 < nprocs) + return nprocs; + } + #endif + + #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + { /* This works on native Windows platforms. */ + SYSTEM_INFO system_info; + GetSystemInfo (&system_info); + if (0 < system_info.dwNumberOfProcessors) + return system_info.dwNumberOfProcessors; + } + #endif + + return 1; + } diff -cNr octave-3.4.0/libgnu/nproc.h octave-3.4.1/libgnu/nproc.h *** octave-3.4.0/libgnu/nproc.h 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/nproc.h 2011-06-15 11:31:07.000000000 -0400 *************** *** 0 **** --- 1,49 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* Detect the number of processors. + + Copyright (C) 2009-2011 Free Software Foundation, Inc. + + 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + + /* Written by Glen Lenker and Bruno Haible. */ + + /* Allow the use in C++ code. */ + #ifdef __cplusplus + extern "C" { + #endif + + /* A "processor" in this context means a thread execution unit, that is either + - an execution core in a (possibly multi-core) chip, in a (possibly multi- + chip) module, in a single computer, or + - a thread execution unit inside a core + (hyper-threading, see ). + Which of the two definitions is used, is unspecified. */ + + enum nproc_query + { + NPROC_ALL, /* total number of processors */ + NPROC_CURRENT, /* processors available to the current process */ + NPROC_CURRENT_OVERRIDABLE /* likewise, but overridable through the + OMP_NUM_THREADS environment variable */ + }; + + /* Return the total number of processors. The result is guaranteed to + be at least 1. */ + extern unsigned long int num_processors (enum nproc_query query); + + #ifdef __cplusplus + } + #endif /* C++ */ diff -cNr octave-3.4.0/libgnu/openat.c octave-3.4.1/libgnu/openat.c *** octave-3.4.0/libgnu/openat.c 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/openat.c 2011-06-15 11:31:07.000000000 -0400 *************** *** 27,33 **** #include #include ! #include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */ #include "openat-priv.h" #include "save-cwd.h" --- 27,33 ---- #include #include ! #include "dosname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */ #include "openat-priv.h" #include "save-cwd.h" *************** *** 55,61 **** va_end (arg); } ! #if OPEN_TRAILING_SLASH_BUG /* If the filename ends in a slash and one of O_CREAT, O_WRONLY, O_RDWR is specified, then fail. Rationale: POSIX --- 55,61 ---- va_end (arg); } ! # if OPEN_TRAILING_SLASH_BUG /* If the filename ends in a slash and one of O_CREAT, O_WRONLY, O_RDWR is specified, then fail. Rationale: POSIX *************** *** 86,96 **** return -1; } } ! #endif fd = openat (dfd, filename, flags, mode); ! #if OPEN_TRAILING_SLASH_BUG /* If the filename ends in a slash and fd does not refer to a directory, then fail. Rationale: POSIX --- 86,96 ---- return -1; } } ! # endif fd = openat (dfd, filename, flags, mode); ! # if OPEN_TRAILING_SLASH_BUG /* If the filename ends in a slash and fd does not refer to a directory, then fail. Rationale: POSIX *************** *** 119,125 **** } } } ! #endif return fd; } --- 119,125 ---- } } } ! # endif return fd; } diff -cNr octave-3.4.0/libgnu/openat-die.c octave-3.4.1/libgnu/openat-die.c *** octave-3.4.0/libgnu/openat-die.c 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/openat-die.c 2011-06-15 11:31:07.000000000 -0400 *************** *** 24,30 **** #include #ifndef GNULIB_LIBPOSIX ! #include "error.h" #endif #include "exitfail.h" --- 24,30 ---- #include #ifndef GNULIB_LIBPOSIX ! # include "error.h" #endif #include "exitfail.h" diff -cNr octave-3.4.0/libgnu/openat.h octave-3.4.1/libgnu/openat.h *** octave-3.4.0/libgnu/openat.h 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/openat.h 2011-06-15 11:31:07.000000000 -0400 *************** *** 29,42 **** #include #include ! #ifndef __attribute__ ! # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) ! # define __attribute__(x) /* empty */ ! # endif ! #endif ! ! #ifndef ATTRIBUTE_NORETURN ! # define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__)) #endif #if !HAVE_OPENAT --- 29,38 ---- #include #include ! #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8) ! # define _GL_ATTRIBUTE_NORETURN __attribute__ ((__noreturn__)) ! #else ! # define _GL_ATTRIBUTE_NORETURN /* empty */ #endif #if !HAVE_OPENAT *************** *** 53,60 **** #endif ! void openat_restore_fail (int) ATTRIBUTE_NORETURN; ! void openat_save_fail (int) ATTRIBUTE_NORETURN; /* Using these function names makes application code slightly more readable than it would be with --- 49,56 ---- #endif ! void openat_restore_fail (int) _GL_ATTRIBUTE_NORETURN; ! void openat_save_fail (int) _GL_ATTRIBUTE_NORETURN; /* Using these function names makes application code slightly more readable than it would be with diff -cNr octave-3.4.0/libgnu/openat-proc.c octave-3.4.1/libgnu/openat-proc.c *** octave-3.4.0/libgnu/openat-proc.c 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/openat-proc.c 2011-06-15 11:31:07.000000000 -0400 *************** *** 32,40 **** #include #include - #include "dirname.h" #include "intprops.h" - #include "same-inode.h" /* The results of open() in this file are not used with fchdir, and we do not leak fds to any single-threaded code that could use stdio, --- 32,38 ---- *************** *** 78,97 **** problem is exhibited on code that built on Solaris 8 and running on Solaris 10. */ ! int proc_self_fd = open ("/proc/self/fd", O_SEARCH); if (proc_self_fd < 0) proc_status = -1; else { ! struct stat proc_self_fd_dotdot_st; ! struct stat proc_self_st; ! char dotdot_buf[PROC_SELF_FD_NAME_SIZE_BOUND (sizeof ".." - 1)]; ! sprintf (dotdot_buf, PROC_SELF_FD_FORMAT, proc_self_fd, ".."); ! proc_status = ! ((stat (dotdot_buf, &proc_self_fd_dotdot_st) == 0 ! && stat ("/proc/self", &proc_self_st) == 0 ! && SAME_INODE (proc_self_fd_dotdot_st, proc_self_st)) ! ? 1 : -1); close (proc_self_fd); } } --- 76,95 ---- problem is exhibited on code that built on Solaris 8 and running on Solaris 10. */ ! int proc_self_fd = open ("/proc/self/fd", ! O_SEARCH | O_DIRECTORY | O_NOCTTY | O_NONBLOCK); if (proc_self_fd < 0) proc_status = -1; else { ! /* Detect whether /proc/self/fd/%i/../fd exists, where %i is the ! number of a file descriptor open on /proc/self/fd. On Linux, ! that name resolves to /proc/self/fd, which was opened above. ! However, on Solaris, it may resolve to /proc/self/fd/fd, which ! cannot exist, since all names in /proc/self/fd are numeric. */ ! char dotdot_buf[PROC_SELF_FD_NAME_SIZE_BOUND (sizeof "../fd" - 1)]; ! sprintf (dotdot_buf, PROC_SELF_FD_FORMAT, proc_self_fd, "../fd"); ! proc_status = access (dotdot_buf, F_OK) ? -1 : 1; close (proc_self_fd); } } diff -cNr octave-3.4.0/libgnu/open.c octave-3.4.1/libgnu/open.c *** octave-3.4.0/libgnu/open.c 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/open.c 2011-06-15 11:31:07.000000000 -0400 *************** *** 65,70 **** --- 65,79 ---- va_end (arg); } + #if GNULIB_defined_O_NONBLOCK + /* The only known platform that lacks O_NONBLOCK is mingw, but it + also lacks named pipes and Unix sockets, which are the only two + file types that require non-blocking handling in open(). + Therefore, it is safe to ignore O_NONBLOCK here. It is handy + that mingw also lacks openat(), so that is also covered here. */ + flags &= ~O_NONBLOCK; + #endif + #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ if (strcmp (filename, "/dev/null") == 0) filename = "NUL"; diff -cNr octave-3.4.0/libgnu/realloc.c octave-3.4.1/libgnu/realloc.c *** octave-3.4.0/libgnu/realloc.c 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/realloc.c 2011-06-15 11:31:07.000000000 -0400 *************** *** 20,25 **** --- 20,26 ---- /* written by Jim Meyering and Bruno Haible */ + #define _GL_USE_STDLIB_ALLOC 1 #include /* Only the AC_FUNC_REALLOC macro defines 'realloc' already in config.h. */ *************** *** 36,58 **** # define SYSTEM_MALLOC_GLIBC_COMPATIBLE 1 #endif - /* Below we want to call the system's malloc and realloc. - Undefine the symbols here so that including provides a - declaration of malloc(), not of rpl_malloc(), and likewise for realloc. */ - #undef malloc - #undef realloc - - /* Specification. */ #include #include - /* Below we want to call the system's malloc and realloc. - Undefine the symbols, if they were defined by gnulib's - replacement. */ - #undef malloc - #undef realloc - /* Change the size of an allocated block of memory P to N bytes, with error checking. If N is zero, change it to 1. If P is NULL, use malloc. */ --- 37,46 ---- diff -cNr octave-3.4.0/libgnu/rmdir.c octave-3.4.1/libgnu/rmdir.c *** octave-3.4.0/libgnu/rmdir.c 2011-02-08 05:03:18.000000000 -0500 --- octave-3.4.1/libgnu/rmdir.c 2011-06-15 11:31:07.000000000 -0400 *************** *** 25,30 **** --- 25,32 ---- #include #include + #include "dosname.h" + #undef rmdir /* Remove directory DIR. diff -cNr octave-3.4.0/libgnu/save-cwd.c octave-3.4.1/libgnu/save-cwd.c *** octave-3.4.0/libgnu/save-cwd.c 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/save-cwd.c 2011-06-15 11:31:07.000000000 -0400 *************** *** 52,58 **** The `raison d'etre' for this interface is that the working directory is sometimes inaccessible, and getcwd is not robust or as efficient. So, we prefer to use the open/fchdir approach, but fall back on ! getcwd if necessary. Some systems lack fchdir altogether: e.g., OS/2, pre-2001 Cygwin, SCO Xenix. Also, SunOS 4 and Irix 5.3 provide the function, yet it --- 52,59 ---- The `raison d'etre' for this interface is that the working directory is sometimes inaccessible, and getcwd is not robust or as efficient. So, we prefer to use the open/fchdir approach, but fall back on ! getcwd if necessary. This module works for most cases with just ! the getcwd-lgpl module, but to be truly robust, use the getcwd module. Some systems lack fchdir altogether: e.g., OS/2, pre-2001 Cygwin, SCO Xenix. Also, SunOS 4 and Irix 5.3 provide the function, yet it diff -cNr octave-3.4.0/libgnu/sigaction.c octave-3.4.1/libgnu/sigaction.c *** octave-3.4.0/libgnu/sigaction.c 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/sigaction.c 2011-06-15 11:31:08.000000000 -0400 *************** *** 144,153 **** return -1; } ! #ifdef SIGABRT_COMPAT if (sig == SIGABRT_COMPAT) sig = SIGABRT; ! #endif /* POSIX requires sigaction() to be async-signal-safe. In other words, if an asynchronous signal can occur while we are anywhere --- 144,153 ---- return -1; } ! #ifdef SIGABRT_COMPAT if (sig == SIGABRT_COMPAT) sig = SIGABRT; ! #endif /* POSIX requires sigaction() to be async-signal-safe. In other words, if an asynchronous signal can occur while we are anywhere diff -cNr octave-3.4.0/libgnu/signal.in.h octave-3.4.1/libgnu/signal.in.h *** octave-3.4.0/libgnu/signal.in.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/signal.in.h 2011-06-15 11:31:08.000000000 -0400 *************** *** 30,42 **** #else /* Normal invocation convention. */ ! #ifndef _GL_SIGNAL_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_SIGNAL_H@ ! #ifndef _GL_SIGNAL_H ! #define _GL_SIGNAL_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ --- 30,42 ---- #else /* Normal invocation convention. */ ! #ifndef _@GUARD_PREFIX@_SIGNAL_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_SIGNAL_H@ ! #ifndef _@GUARD_PREFIX@_SIGNAL_H ! #define _@GUARD_PREFIX@_SIGNAL_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ *************** *** 68,73 **** --- 68,87 ---- # endif #endif + /* Define sighandler_t, the type of signal handlers. A GNU extension. */ + #if !@HAVE_SIGHANDLER_T@ + # ifdef __cplusplus + extern "C" { + # endif + # if !GNULIB_defined_sighandler_t + typedef void (*sighandler_t) (int); + # define GNULIB_defined_sighandler_t 1 + # endif + # ifdef __cplusplus + } + # endif + #endif + #if @GNULIB_SIGNAL_H_SIGPIPE@ # ifndef SIGPIPE *************** *** 359,364 **** #endif ! #endif /* _GL_SIGNAL_H */ ! #endif /* _GL_SIGNAL_H */ #endif --- 373,378 ---- #endif ! #endif /* _@GUARD_PREFIX@_SIGNAL_H */ ! #endif /* _@GUARD_PREFIX@_SIGNAL_H */ #endif diff -cNr octave-3.4.0/libgnu/sockets.c octave-3.4.1/libgnu/sockets.c *** octave-3.4.0/libgnu/sockets.c 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/sockets.c 2011-06-15 11:31:08.000000000 -0400 *************** *** 29,42 **** /* This includes winsock2.h on MinGW. */ # include ! # include "close-hook.h" /* Get set_winsock_errno, FD_TO_SOCKET etc. */ # include "w32sock.h" static int ! close_fd_maybe_socket (int fd, const struct close_hook *remaining_list) { SOCKET sock; WSANETWORKEVENTS ev; --- 29,48 ---- /* This includes winsock2.h on MinGW. */ # include ! # include "fd-hook.h" /* Get set_winsock_errno, FD_TO_SOCKET etc. */ # include "w32sock.h" static int ! close_fd_maybe_socket (const struct fd_hook *remaining_list, ! gl_close_fn primary, ! int fd) { + /* Note about multithread-safety: There is a race condition where, between + our calls to closesocket() and the primary close(), some other thread + could make system calls that allocate precisely the same HANDLE value + as sock; then the primary close() would call CloseHandle() on it. */ SOCKET sock; WSANETWORKEVENTS ev; *************** *** 66,75 **** } else /* Some other type of file descriptor. */ ! return execute_close_hooks (fd, remaining_list); } ! static struct close_hook close_sockets_hook; static int initialized_sockets_version /* = 0 */; --- 72,109 ---- } else /* Some other type of file descriptor. */ ! return execute_close_hooks (remaining_list, primary, fd); } ! static int ! ioctl_fd_maybe_socket (const struct fd_hook *remaining_list, ! gl_ioctl_fn primary, ! int fd, int request, void *arg) ! { ! SOCKET sock; ! WSANETWORKEVENTS ev; ! ! /* Test whether fd refers to a socket. */ ! sock = FD_TO_SOCKET (fd); ! ev.lNetworkEvents = 0xDEADBEEF; ! WSAEnumNetworkEvents (sock, NULL, &ev); ! if (ev.lNetworkEvents != 0xDEADBEEF) ! { ! /* fd refers to a socket. */ ! if (ioctlsocket (sock, request, arg) < 0) ! { ! set_winsock_errno (); ! return -1; ! } ! else ! return 0; ! } ! else ! /* Some other type of file descriptor. */ ! return execute_ioctl_hooks (remaining_list, primary, fd, request, arg); ! } ! ! static struct fd_hook fd_sockets_hook; static int initialized_sockets_version /* = 0 */; *************** *** 92,98 **** return 2; if (initialized_sockets_version == 0) ! register_close_hook (close_fd_maybe_socket, &close_sockets_hook); initialized_sockets_version = version; } --- 126,133 ---- return 2; if (initialized_sockets_version == 0) ! register_fd_hook (close_fd_maybe_socket, ioctl_fd_maybe_socket, ! &fd_sockets_hook); initialized_sockets_version = version; } *************** *** 109,115 **** initialized_sockets_version = 0; ! unregister_close_hook (&close_sockets_hook); err = WSACleanup (); if (err != 0) --- 144,150 ---- initialized_sockets_version = 0; ! unregister_fd_hook (&fd_sockets_hook); err = WSACleanup (); if (err != 0) diff -cNr octave-3.4.0/libgnu/stat.c octave-3.4.1/libgnu/stat.c *** octave-3.4.0/libgnu/stat.c 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/stat.c 2011-06-15 11:31:08.000000000 -0400 *************** *** 39,44 **** --- 39,45 ---- #include #include #include + #include "dosname.h" /* Store information about NAME into ST. Work around bugs with trailing slashes. Mingw has other bugs (such as st_ino always diff -cNr octave-3.4.0/libgnu/stddef.in.h octave-3.4.1/libgnu/stddef.in.h *** octave-3.4.0/libgnu/stddef.in.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/stddef.in.h 2011-06-15 11:31:08.000000000 -0400 *************** *** 40,48 **** remember if special invocation has ever been used to obtain wint_t, in which case we need to clean up NULL yet again. */ ! # if !(defined _GL_STDDEF_H && defined _GL_STDDEF_WINT_T) # ifdef __need_wint_t ! # undef _GL_STDDEF_H # define _GL_STDDEF_WINT_T # endif # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ --- 40,48 ---- remember if special invocation has ever been used to obtain wint_t, in which case we need to clean up NULL yet again. */ ! # if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T) # ifdef __need_wint_t ! # undef _@GUARD_PREFIX@_STDDEF_H # define _GL_STDDEF_WINT_T # endif # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ *************** *** 51,64 **** #else /* Normal invocation convention. */ ! # ifndef _GL_STDDEF_H /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ ! # ifndef _GL_STDDEF_H ! # define _GL_STDDEF_H /* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ #if @REPLACE_NULL@ --- 51,64 ---- #else /* Normal invocation convention. */ ! # ifndef _@GUARD_PREFIX@_STDDEF_H /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ ! # ifndef _@GUARD_PREFIX@_STDDEF_H ! # define _@GUARD_PREFIX@_STDDEF_H /* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ #if @REPLACE_NULL@ *************** *** 84,89 **** # define wchar_t int #endif ! # endif /* _GL_STDDEF_H */ ! # endif /* _GL_STDDEF_H */ #endif /* __need_XXX */ --- 84,89 ---- # define wchar_t int #endif ! # endif /* _@GUARD_PREFIX@_STDDEF_H */ ! # endif /* _@GUARD_PREFIX@_STDDEF_H */ #endif /* __need_XXX */ diff -cNr octave-3.4.0/libgnu/stdint.in.h octave-3.4.1/libgnu/stdint.in.h *** octave-3.4.0/libgnu/stdint.in.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/stdint.in.h 2011-06-15 11:31:08.000000000 -0400 *************** *** 23,29 **** * */ ! #ifndef _GL_STDINT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ --- 23,29 ---- * */ ! #ifndef _@GUARD_PREFIX@_STDINT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ *************** *** 54,66 **** /* Other systems may have an incomplete or buggy . Include it before , since any "#include " in would reinclude us, skipping our contents because ! _GL_STDINT_H is defined. The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #endif ! #if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H ! #define _GL_STDINT_H /* defines some of the stdint.h types as well, on glibc, IRIX 6.5, and OpenBSD 3.8 (via ). --- 54,66 ---- /* Other systems may have an incomplete or buggy . Include it before , since any "#include " in would reinclude us, skipping our contents because ! _@GUARD_PREFIX@_STDINT_H is defined. The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #endif ! #if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H ! #define _@GUARD_PREFIX@_STDINT_H /* defines some of the stdint.h types as well, on glibc, IRIX 6.5, and OpenBSD 3.8 (via ). *************** *** 95,101 **** #undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H ! /* Minimum and maximum values for a integer type under the usual assumption. Return an unspecified value if BITS == 0, adding a check to pacify picky compilers. */ --- 95,101 ---- #undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H ! /* Minimum and maximum values for an integer type under the usual assumption. Return an unspecified value if BITS == 0, adding a check to pacify picky compilers. */ *************** *** 499,505 **** sequence of nested includes -> -> -> , and the latter includes and assumes its types are already defined. */ ! #if ! (defined WCHAR_MIN && defined WCHAR_MAX) # define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H # include # undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H --- 499,510 ---- sequence of nested includes -> -> -> , and the latter includes and assumes its types are already defined. */ ! #if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX) ! /* BSD/OS 4.0.1 has a bug: , and must be ! included before . */ ! # include ! # include ! # include # define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H # include # undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H *************** *** 585,589 **** #endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */ ! #endif /* _GL_STDINT_H */ ! #endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ --- 590,594 ---- #endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */ ! #endif /* _@GUARD_PREFIX@_STDINT_H */ ! #endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ diff -cNr octave-3.4.0/libgnu/stdio-impl.h octave-3.4.1/libgnu/stdio-impl.h *** octave-3.4.0/libgnu/stdio-impl.h 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/stdio-impl.h 2011-06-15 11:31:08.000000000 -0400 *************** *** 0 **** --- 1,112 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* Implementation details of FILE streams. + Copyright (C) 2007-2008, 2010-2011 Free Software Foundation, Inc. + + 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 . */ + + /* Many stdio implementations have the same logic and therefore can share + the same implementation of stdio extension API, except that some fields + have different naming conventions, or their access requires some casts. */ + + + /* BSD stdio derived implementations. */ + + #if defined __NetBSD__ /* NetBSD */ + /* Get __NetBSD_Version__. */ + # include + #endif + + #if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ + + # if defined __DragonFly__ /* DragonFly */ + /* See . */ + # define fp_ ((struct { struct __FILE_public pub; \ + struct { unsigned char *_base; int _size; } _bf; \ + void *cookie; \ + void *_close; \ + void *_read; \ + void *_seek; \ + void *_write; \ + struct { unsigned char *_base; int _size; } _ub; \ + int _ur; \ + unsigned char _ubuf[3]; \ + unsigned char _nbuf[1]; \ + struct { unsigned char *_base; int _size; } _lb; \ + int _blksize; \ + fpos_t _offset; \ + /* More fields, not relevant here. */ \ + } *) fp) + /* See . */ + # define _p pub._p + # define _flags pub._flags + # define _r pub._r + # define _w pub._w + # else + # define fp_ fp + # endif + + # if (defined __NetBSD__ && __NetBSD_Version__ >= 105270000) || defined __OpenBSD__ /* NetBSD >= 1.5ZA, OpenBSD */ + /* See + and */ + struct __sfileext + { + struct __sbuf _ub; /* ungetc buffer */ + /* More fields, not relevant here. */ + }; + # define fp_ub ((struct __sfileext *) fp->_ext._base)->_ub + # else /* FreeBSD, NetBSD <= 1.5Z, DragonFly, MacOS X, Cygwin */ + # define fp_ub fp_->_ub + # endif + + # define HASUB(fp) (fp_ub._base != NULL) + + #endif + + + /* SystemV derived implementations. */ + + #ifdef __TANDEM /* NonStop Kernel */ + # ifndef _IOERR + /* These values were determined by the program 'stdioext-flags' at + . */ + # define _IOERR 0x40 + # define _IOREAD 0x80 + # define _IOWRT 0x4 + # define _IORW 0x100 + # endif + #endif + + #if defined _IOERR + + # if defined __sun && defined _LP64 /* Solaris/{SPARC,AMD64} 64-bit */ + # define fp_ ((struct { unsigned char *_ptr; \ + unsigned char *_base; \ + unsigned char *_end; \ + long _cnt; \ + int _file; \ + unsigned int _flag; \ + } *) fp) + # else + # define fp_ fp + # endif + + # if defined _SCO_DS /* OpenServer */ + # define _cnt __cnt + # define _ptr __ptr + # define _base __base + # define _flag __flag + # endif + + #endif diff -cNr octave-3.4.0/libgnu/stdio.in.h octave-3.4.1/libgnu/stdio.in.h *** octave-3.4.0/libgnu/stdio.in.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/stdio.in.h 2011-06-15 11:31:08.000000000 -0400 *************** *** 37,43 **** #else /* Normal invocation convention. */ ! #ifndef _GL_STDIO_H #define _GL_ALREADY_INCLUDING_STDIO_H --- 37,43 ---- #else /* Normal invocation convention. */ ! #ifndef _@GUARD_PREFIX@_STDIO_H #define _GL_ALREADY_INCLUDING_STDIO_H *************** *** 46,53 **** #undef _GL_ALREADY_INCLUDING_STDIO_H ! #ifndef _GL_STDIO_H ! #define _GL_STDIO_H /* Get va_list. Needed on many systems, including glibc 2.8. */ #include --- 46,53 ---- #undef _GL_ALREADY_INCLUDING_STDIO_H ! #ifndef _@GUARD_PREFIX@_STDIO_H ! #define _@GUARD_PREFIX@_STDIO_H /* Get va_list. Needed on many systems, including glibc 2.8. */ #include *************** *** 58,75 **** and eglibc 2.11.2. */ #include - #ifndef __attribute__ /* The __attribute__ feature is available in gcc versions 2.5 and later. The __-protected variants of the attributes 'format' and 'printf' are accepted by gcc versions 2.6.4 (effectively 2.7) and later. ! We enable __attribute__ only if these are supported too, because gnulib and libintl do '#define printf __printf__' when they override the 'printf' function. */ ! # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) ! # define __attribute__(Spec) /* empty */ ! # endif #endif /* Solaris 10 declares renameat in , not in . */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __sun \ --- 58,113 ---- and eglibc 2.11.2. */ #include /* The __attribute__ feature is available in gcc versions 2.5 and later. The __-protected variants of the attributes 'format' and 'printf' are accepted by gcc versions 2.6.4 (effectively 2.7) and later. ! We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because gnulib and libintl do '#define printf __printf__' when they override the 'printf' function. */ ! #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) ! # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) ! #else ! # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ ! #endif ! ! /* _GL_ATTRIBUTE_FORMAT_PRINTF ! indicates to GCC that the function takes a format string and arguments, ! where the format string directives are the ones standardized by ISO C99 ! and POSIX. */ ! #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) ! # define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \ ! _GL_ATTRIBUTE_FORMAT ((__gnu_printf__, formatstring_parameter, first_argument)) ! #else ! # define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \ ! _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument)) #endif + /* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF, + except that it indicates to GCC that the supported format string directives + are the ones of the system printf(), rather than the ones standardized by + ISO C99 and POSIX. */ + #define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ + _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument)) + + /* _GL_ATTRIBUTE_FORMAT_SCANF + indicates to GCC that the function takes a format string and arguments, + where the format string directives are the ones standardized by ISO C99 + and POSIX. */ + #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) + # define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ + _GL_ATTRIBUTE_FORMAT ((__gnu_scanf__, formatstring_parameter, first_argument)) + #else + # define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ + _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) + #endif + + /* _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_SCANF, + except that it indicates to GCC that the supported format string directives + are the ones of the system scanf(), rather than the ones standardized by + ISO C99 and POSIX. */ + #define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \ + _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) + /* Solaris 10 declares renameat in , not in . */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __sun \ *************** *** 95,107 **** # define dprintf rpl_dprintf # endif _GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *format, ...) ! __attribute__ ((__format__ (__printf__, 2, 3))) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *format, ...)); # else # if !@HAVE_DPRINTF@ _GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *format, ...) ! __attribute__ ((__format__ (__printf__, 2, 3))) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *format, ...)); --- 133,145 ---- # define dprintf rpl_dprintf # endif _GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *format, ...) ! _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *format, ...)); # else # if !@HAVE_DPRINTF@ _GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *format, ...) ! _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *format, ...)); *************** *** 158,168 **** "use gnulib module fflush for portable POSIX compliance"); #endif ! /* It is very rare that the developer ever has full control of stdin, ! so any use of gets warrants an unconditional warning. Assume it is ! always declared, since it is required by C89. */ ! #undef gets ! _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); #if @GNULIB_FOPEN@ # if @REPLACE_FOPEN@ --- 196,229 ---- "use gnulib module fflush for portable POSIX compliance"); #endif ! #if @GNULIB_FGETC@ ! # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ ! # if !(defined __cplusplus && defined GNULIB_NAMESPACE) ! # undef fgetc ! # define fgetc rpl_fgetc ! # endif ! _GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1))); ! _GL_CXXALIAS_RPL (fgetc, int, (FILE *stream)); ! # else ! _GL_CXXALIAS_SYS (fgetc, int, (FILE *stream)); ! # endif ! _GL_CXXALIASWARN (fgetc); ! #endif ! ! #if @GNULIB_FGETS@ ! # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ ! # if !(defined __cplusplus && defined GNULIB_NAMESPACE) ! # undef fgets ! # define fgets rpl_fgets ! # endif ! _GL_FUNCDECL_RPL (fgets, char *, (char *s, int n, FILE *stream) ! _GL_ARG_NONNULL ((1, 3))); ! _GL_CXXALIAS_RPL (fgets, char *, (char *s, int n, FILE *stream)); ! # else ! _GL_CXXALIAS_SYS (fgets, char *, (char *s, int n, FILE *stream)); ! # endif ! _GL_CXXALIASWARN (fgets); ! #endif #if @GNULIB_FOPEN@ # if @REPLACE_FOPEN@ *************** *** 186,199 **** #if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@ # if (@GNULIB_FPRINTF_POSIX@ && @REPLACE_FPRINTF@) \ ! || (@GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fprintf rpl_fprintf # endif # define GNULIB_overrides_fprintf 1 _GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...) ! __attribute__ ((__format__ (__printf__, 2, 3))) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (fprintf, int, (FILE *fp, const char *format, ...)); # else _GL_CXXALIAS_SYS (fprintf, int, (FILE *fp, const char *format, ...)); --- 247,266 ---- #if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@ # if (@GNULIB_FPRINTF_POSIX@ && @REPLACE_FPRINTF@) \ ! || (@GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fprintf rpl_fprintf # endif # define GNULIB_overrides_fprintf 1 + # if @GNULIB_FPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ + _GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) + _GL_ARG_NONNULL ((1, 2))); + # else _GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...) ! _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3) _GL_ARG_NONNULL ((1, 2))); + # endif _GL_CXXALIAS_RPL (fprintf, int, (FILE *fp, const char *format, ...)); # else _GL_CXXALIAS_SYS (fprintf, int, (FILE *fp, const char *format, ...)); *************** *** 239,245 **** #endif #if @GNULIB_FPUTC@ ! # if @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fputc # define fputc rpl_fputc --- 306,312 ---- #endif #if @GNULIB_FPUTC@ ! # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fputc # define fputc rpl_fputc *************** *** 253,259 **** #endif #if @GNULIB_FPUTS@ ! # if @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fputs # define fputs rpl_fputs --- 320,326 ---- #endif #if @GNULIB_FPUTS@ ! # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fputs # define fputs rpl_fputs *************** *** 267,272 **** --- 334,354 ---- _GL_CXXALIASWARN (fputs); #endif + #if @GNULIB_FREAD@ + # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef fread + # define fread rpl_fread + # endif + _GL_FUNCDECL_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream) + _GL_ARG_NONNULL ((4))); + _GL_CXXALIAS_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)); + # else + _GL_CXXALIAS_SYS (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)); + # endif + _GL_CXXALIASWARN (fread); + #endif + #if @GNULIB_FREOPEN@ # if @REPLACE_FREOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) *************** *** 291,296 **** --- 373,394 ---- "use gnulib module freopen for portability"); #endif + #if @GNULIB_FSCANF@ + # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef fscanf + # define fscanf rpl_fscanf + # endif + _GL_FUNCDECL_RPL (fscanf, int, (FILE *stream, const char *format, ...) + _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3) + _GL_ARG_NONNULL ((1, 2))); + _GL_CXXALIAS_RPL (fscanf, int, (FILE *stream, const char *format, ...)); + # else + _GL_CXXALIAS_SYS (fscanf, int, (FILE *stream, const char *format, ...)); + # endif + _GL_CXXALIASWARN (fscanf); + #endif + /* Set up the following warnings, based on which modules are in use. GNU Coding Standards discourage the use of fseek, since it imposes *************** *** 365,389 **** _GL_CXXALIAS_SYS (fseeko, int, (FILE *fp, off_t offset, int whence)); # endif _GL_CXXALIASWARN (fseeko); - # if (@REPLACE_FSEEKO@ || !@HAVE_FSEEKO@) && !@GNULIB_FSEEK@ - /* Provide an fseek function that is consistent with fseeko. */ - /* In order to avoid that fseek gets defined as a macro here, the - developer can request the 'fseek' module. */ - # if !GNULIB_defined_fseek_function - # undef fseek - # define fseek rpl_fseek - static inline int _GL_ARG_NONNULL ((1)) - rpl_fseek (FILE *fp, long offset, int whence) - { - # if @REPLACE_FSEEKO@ - return rpl_fseeko (fp, offset, whence); - # else - return fseeko (fp, offset, whence); - # endif - } - # define GNULIB_defined_fseek_function 1 - # endif - # endif #elif defined GNULIB_POSIXCHECK # define _GL_FSEEK_WARN /* Category 1, above. */ # undef fseek --- 463,468 ---- *************** *** 443,467 **** _GL_CXXALIAS_SYS (ftello, off_t, (FILE *fp)); # endif _GL_CXXALIASWARN (ftello); - # if (@REPLACE_FTELLO@ || !@HAVE_FTELLO@) && !@GNULIB_FTELL@ - /* Provide an ftell function that is consistent with ftello. */ - /* In order to avoid that ftell gets defined as a macro here, the - developer can request the 'ftell' module. */ - # if !GNULIB_defined_ftell_function - # undef ftell - # define ftell rpl_ftell - static inline long _GL_ARG_NONNULL ((1)) - rpl_ftell (FILE *f) - { - # if @REPLACE_FTELLO@ - return rpl_ftello (f); - # else - return ftello (f); - # endif - } - # define GNULIB_defined_ftell_function 1 - # endif - # endif #elif defined GNULIB_POSIXCHECK # define _GL_FTELL_WARN /* Category 1, above. */ # undef ftell --- 522,527 ---- *************** *** 483,489 **** #if @GNULIB_FWRITE@ ! # if @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fwrite # define fwrite rpl_fwrite --- 543,549 ---- #if @GNULIB_FWRITE@ ! # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fwrite # define fwrite rpl_fwrite *************** *** 496,505 **** --- 556,610 ---- # else _GL_CXXALIAS_SYS (fwrite, size_t, (const void *ptr, size_t s, size_t n, FILE *stream)); + + /* Work around glibc bug 11959 + , + which sometimes causes an unwanted diagnostic for fwrite calls. + This affects only function declaration attributes, so it's not + needed for C++. */ + # if !defined __cplusplus && 0 < __USE_FORTIFY_LEVEL + static inline size_t _GL_ARG_NONNULL ((1, 4)) + rpl_fwrite (const void *ptr, size_t s, size_t n, FILE *stream) + { + size_t r = fwrite (ptr, s, n, stream); + (void) r; + return r; + } + # undef fwrite + # define fwrite rpl_fwrite + # endif # endif _GL_CXXALIASWARN (fwrite); #endif + #if @GNULIB_GETC@ + # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef getc + # define getc rpl_fgetc + # endif + _GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1))); + _GL_CXXALIAS_RPL_1 (getc, rpl_fgetc, int, (FILE *stream)); + # else + _GL_CXXALIAS_SYS (getc, int, (FILE *stream)); + # endif + _GL_CXXALIASWARN (getc); + #endif + + #if @GNULIB_GETCHAR@ + # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef getchar + # define getchar rpl_getchar + # endif + _GL_FUNCDECL_RPL (getchar, int, (void)); + _GL_CXXALIAS_RPL (getchar, int, (void)); + # else + _GL_CXXALIAS_SYS (getchar, int, (void)); + # endif + _GL_CXXALIASWARN (getchar); + #endif + #if @GNULIB_GETDELIM@ /* Read input, up to (and including) the next occurrence of DELIMITER, from STREAM, store it in *LINEPTR (and NUL-terminate it). *************** *** 576,581 **** --- 681,706 ---- # endif #endif + #if @GNULIB_GETS@ + # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef gets + # define gets rpl_gets + # endif + _GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1))); + _GL_CXXALIAS_RPL (gets, char *, (char *s)); + # else + _GL_CXXALIAS_SYS (gets, char *, (char *s)); + # undef gets + # endif + _GL_CXXALIASWARN (gets); + /* It is very rare that the developer ever has full control of stdin, + so any use of gets warrants an unconditional warning. Assume it is + always declared, since it is required by C89. */ + _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); + #endif + + #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@ struct obstack; /* Grow an obstack with formatted output. Return the number of *************** *** 589,595 **** # endif _GL_FUNCDECL_RPL (obstack_printf, int, (struct obstack *obs, const char *format, ...) ! __attribute__ ((__format__ (__printf__, 2, 3))) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (obstack_printf, int, (struct obstack *obs, const char *format, ...)); --- 714,720 ---- # endif _GL_FUNCDECL_RPL (obstack_printf, int, (struct obstack *obs, const char *format, ...) ! _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (obstack_printf, int, (struct obstack *obs, const char *format, ...)); *************** *** 597,603 **** # if !@HAVE_DECL_OBSTACK_PRINTF@ _GL_FUNCDECL_SYS (obstack_printf, int, (struct obstack *obs, const char *format, ...) ! __attribute__ ((__format__ (__printf__, 2, 3))) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (obstack_printf, int, --- 722,728 ---- # if !@HAVE_DECL_OBSTACK_PRINTF@ _GL_FUNCDECL_SYS (obstack_printf, int, (struct obstack *obs, const char *format, ...) ! _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (obstack_printf, int, *************** *** 610,616 **** # endif _GL_FUNCDECL_RPL (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args) ! __attribute__ ((__format__ (__printf__, 2, 0))) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args)); --- 735,741 ---- # endif _GL_FUNCDECL_RPL (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args) ! _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args)); *************** *** 618,624 **** # if !@HAVE_DECL_OBSTACK_PRINTF@ _GL_FUNCDECL_SYS (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args) ! __attribute__ ((__format__ (__printf__, 2, 0))) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (obstack_vprintf, int, --- 743,749 ---- # if !@HAVE_DECL_OBSTACK_PRINTF@ _GL_FUNCDECL_SYS (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args) ! _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (obstack_vprintf, int, *************** *** 671,688 **** #if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@ # if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \ ! || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@) # if defined __GNUC__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) /* Don't break __attribute__((format(printf,M,N))). */ # define printf __printf__ # endif _GL_FUNCDECL_RPL_1 (__printf__, int, (const char *format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) ! __attribute__ ((__format__ (__printf__, 1, 2))) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...)); # else # if !(defined __cplusplus && defined GNULIB_NAMESPACE) --- 796,822 ---- #if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@ # if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \ ! || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if defined __GNUC__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) /* Don't break __attribute__((format(printf,M,N))). */ # define printf __printf__ # endif + # if @GNULIB_PRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ + _GL_FUNCDECL_RPL_1 (__printf__, int, + (const char *format, ...) + __asm__ (@ASM_SYMBOL_PREFIX@ + _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) + _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2) + _GL_ARG_NONNULL ((1))); + # else _GL_FUNCDECL_RPL_1 (__printf__, int, (const char *format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) ! _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); + # endif _GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...)); # else # if !(defined __cplusplus && defined GNULIB_NAMESPACE) *************** *** 690,696 **** # endif _GL_FUNCDECL_RPL (printf, int, (const char *format, ...) ! __attribute__ ((__format__ (__printf__, 1, 2))) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (printf, int, (const char *format, ...)); # endif --- 824,830 ---- # endif _GL_FUNCDECL_RPL (printf, int, (const char *format, ...) ! _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (printf, int, (const char *format, ...)); # endif *************** *** 711,717 **** #endif #if @GNULIB_PUTC@ ! # if @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putc # define putc rpl_fputc --- 845,851 ---- #endif #if @GNULIB_PUTC@ ! # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putc # define putc rpl_fputc *************** *** 725,731 **** #endif #if @GNULIB_PUTCHAR@ ! # if @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putchar # define putchar rpl_putchar --- 859,865 ---- #endif #if @GNULIB_PUTCHAR@ ! # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putchar # define putchar rpl_putchar *************** *** 739,745 **** #endif #if @GNULIB_PUTS@ ! # if @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef puts # define puts rpl_puts --- 873,879 ---- #endif #if @GNULIB_PUTS@ ! # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef puts # define puts rpl_puts *************** *** 823,828 **** --- 957,993 ---- # endif #endif + #if @GNULIB_SCANF@ + # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ + # if defined __GNUC__ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef scanf + /* Don't break __attribute__((format(scanf,M,N))). */ + # define scanf __scanf__ + # endif + _GL_FUNCDECL_RPL_1 (__scanf__, int, + (const char *format, ...) + __asm__ (@ASM_SYMBOL_PREFIX@ + _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf)) + _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) + _GL_ARG_NONNULL ((1))); + _GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *format, ...)); + # else + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef scanf + # define scanf rpl_scanf + # endif + _GL_FUNCDECL_RPL (scanf, int, (const char *format, ...) + _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) + _GL_ARG_NONNULL ((1))); + _GL_CXXALIAS_RPL (scanf, int, (const char *format, ...)); + # endif + # else + _GL_CXXALIAS_SYS (scanf, int, (const char *format, ...)); + # endif + _GL_CXXALIASWARN (scanf); + #endif + #if @GNULIB_SNPRINTF@ # if @REPLACE_SNPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) *************** *** 830,836 **** # endif _GL_FUNCDECL_RPL (snprintf, int, (char *str, size_t size, const char *format, ...) ! __attribute__ ((__format__ (__printf__, 3, 4))) _GL_ARG_NONNULL ((3))); _GL_CXXALIAS_RPL (snprintf, int, (char *str, size_t size, const char *format, ...)); --- 995,1001 ---- # endif _GL_FUNCDECL_RPL (snprintf, int, (char *str, size_t size, const char *format, ...) ! _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4) _GL_ARG_NONNULL ((3))); _GL_CXXALIAS_RPL (snprintf, int, (char *str, size_t size, const char *format, ...)); *************** *** 838,844 **** # if !@HAVE_DECL_SNPRINTF@ _GL_FUNCDECL_SYS (snprintf, int, (char *str, size_t size, const char *format, ...) ! __attribute__ ((__format__ (__printf__, 3, 4))) _GL_ARG_NONNULL ((3))); # endif _GL_CXXALIAS_SYS (snprintf, int, --- 1003,1009 ---- # if !@HAVE_DECL_SNPRINTF@ _GL_FUNCDECL_SYS (snprintf, int, (char *str, size_t size, const char *format, ...) ! _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4) _GL_ARG_NONNULL ((3))); # endif _GL_CXXALIAS_SYS (snprintf, int, *************** *** 868,874 **** # define sprintf rpl_sprintf # endif _GL_FUNCDECL_RPL (sprintf, int, (char *str, const char *format, ...) ! __attribute__ ((__format__ (__printf__, 2, 3))) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (sprintf, int, (char *str, const char *format, ...)); # else --- 1033,1039 ---- # define sprintf rpl_sprintf # endif _GL_FUNCDECL_RPL (sprintf, int, (char *str, const char *format, ...) ! _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (sprintf, int, (char *str, const char *format, ...)); # else *************** *** 913,919 **** # endif _GL_FUNCDECL_RPL (asprintf, int, (char **result, const char *format, ...) ! __attribute__ ((__format__ (__printf__, 2, 3))) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (asprintf, int, (char **result, const char *format, ...)); --- 1078,1084 ---- # endif _GL_FUNCDECL_RPL (asprintf, int, (char **result, const char *format, ...) ! _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (asprintf, int, (char **result, const char *format, ...)); *************** *** 921,927 **** # if !@HAVE_VASPRINTF@ _GL_FUNCDECL_SYS (asprintf, int, (char **result, const char *format, ...) ! __attribute__ ((__format__ (__printf__, 2, 3))) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (asprintf, int, --- 1086,1092 ---- # if !@HAVE_VASPRINTF@ _GL_FUNCDECL_SYS (asprintf, int, (char **result, const char *format, ...) ! _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (asprintf, int, *************** *** 934,940 **** # endif _GL_FUNCDECL_RPL (vasprintf, int, (char **result, const char *format, va_list args) ! __attribute__ ((__format__ (__printf__, 2, 0))) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vasprintf, int, (char **result, const char *format, va_list args)); --- 1099,1105 ---- # endif _GL_FUNCDECL_RPL (vasprintf, int, (char **result, const char *format, va_list args) ! _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vasprintf, int, (char **result, const char *format, va_list args)); *************** *** 942,948 **** # if !@HAVE_VASPRINTF@ _GL_FUNCDECL_SYS (vasprintf, int, (char **result, const char *format, va_list args) ! __attribute__ ((__format__ (__printf__, 2, 0))) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (vasprintf, int, --- 1107,1113 ---- # if !@HAVE_VASPRINTF@ _GL_FUNCDECL_SYS (vasprintf, int, (char **result, const char *format, va_list args) ! _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (vasprintf, int, *************** *** 957,969 **** # define vdprintf rpl_vdprintf # endif _GL_FUNCDECL_RPL (vdprintf, int, (int fd, const char *format, va_list args) ! __attribute__ ((__format__ (__printf__, 2, 0))) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (vdprintf, int, (int fd, const char *format, va_list args)); # else # if !@HAVE_VDPRINTF@ _GL_FUNCDECL_SYS (vdprintf, int, (int fd, const char *format, va_list args) ! __attribute__ ((__format__ (__printf__, 2, 0))) _GL_ARG_NONNULL ((2))); # endif /* Need to cast, because on Solaris, the third parameter will likely be --- 1122,1134 ---- # define vdprintf rpl_vdprintf # endif _GL_FUNCDECL_RPL (vdprintf, int, (int fd, const char *format, va_list args) ! _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (vdprintf, int, (int fd, const char *format, va_list args)); # else # if !@HAVE_VDPRINTF@ _GL_FUNCDECL_SYS (vdprintf, int, (int fd, const char *format, va_list args) ! _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((2))); # endif /* Need to cast, because on Solaris, the third parameter will likely be *************** *** 982,995 **** #if @GNULIB_VFPRINTF_POSIX@ || @GNULIB_VFPRINTF@ # if (@GNULIB_VFPRINTF_POSIX@ && @REPLACE_VFPRINTF@) \ ! || (@GNULIB_VFPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vfprintf rpl_vfprintf # endif # define GNULIB_overrides_vfprintf 1 _GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args) ! __attribute__ ((__format__ (__printf__, 2, 0))) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)); # else /* Need to cast, because on Solaris, the third parameter is --- 1147,1166 ---- #if @GNULIB_VFPRINTF_POSIX@ || @GNULIB_VFPRINTF@ # if (@GNULIB_VFPRINTF_POSIX@ && @REPLACE_VFPRINTF@) \ ! || (@GNULIB_VFPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vfprintf rpl_vfprintf # endif # define GNULIB_overrides_vfprintf 1 + # if @GNULIB_VFPRINTF_POSIX@ + _GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) + _GL_ARG_NONNULL ((1, 2))); + # else _GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args) ! _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0) _GL_ARG_NONNULL ((1, 2))); + # endif _GL_CXXALIAS_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)); # else /* Need to cast, because on Solaris, the third parameter is *************** *** 1010,1025 **** "POSIX compliance"); #endif #if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VPRINTF@ # if (@GNULIB_VPRINTF_POSIX@ && @REPLACE_VPRINTF@) \ ! || (@GNULIB_VPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vprintf rpl_vprintf # endif # define GNULIB_overrides_vprintf 1 _GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args) ! __attribute__ ((__format__ (__printf__, 1, 0))) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (vprintf, int, (const char *format, va_list args)); # else /* Need to cast, because on Solaris, the second parameter is --- 1181,1221 ---- "POSIX compliance"); #endif + #if @GNULIB_VFSCANF@ + # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef vfscanf + # define vfscanf rpl_vfscanf + # endif + _GL_FUNCDECL_RPL (vfscanf, int, + (FILE *stream, const char *format, va_list args) + _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0) + _GL_ARG_NONNULL ((1, 2))); + _GL_CXXALIAS_RPL (vfscanf, int, + (FILE *stream, const char *format, va_list args)); + # else + _GL_CXXALIAS_SYS (vfscanf, int, + (FILE *stream, const char *format, va_list args)); + # endif + _GL_CXXALIASWARN (vfscanf); + #endif + #if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VPRINTF@ # if (@GNULIB_VPRINTF_POSIX@ && @REPLACE_VPRINTF@) \ ! || (@GNULIB_VPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vprintf rpl_vprintf # endif # define GNULIB_overrides_vprintf 1 + # if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ + _GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF (1, 0) + _GL_ARG_NONNULL ((1))); + # else _GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args) ! _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0) _GL_ARG_NONNULL ((1))); + # endif _GL_CXXALIAS_RPL (vprintf, int, (const char *format, va_list args)); # else /* Need to cast, because on Solaris, the second parameter is *************** *** 1039,1044 **** --- 1235,1256 ---- "POSIX compliance"); #endif + #if @GNULIB_VSCANF@ + # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef vscanf + # define vscanf rpl_vscanf + # endif + _GL_FUNCDECL_RPL (vscanf, int, (const char *format, va_list args) + _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0) + _GL_ARG_NONNULL ((1))); + _GL_CXXALIAS_RPL (vscanf, int, (const char *format, va_list args)); + # else + _GL_CXXALIAS_SYS (vscanf, int, (const char *format, va_list args)); + # endif + _GL_CXXALIASWARN (vscanf); + #endif + #if @GNULIB_VSNPRINTF@ # if @REPLACE_VSNPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) *************** *** 1046,1052 **** # endif _GL_FUNCDECL_RPL (vsnprintf, int, (char *str, size_t size, const char *format, va_list args) ! __attribute__ ((__format__ (__printf__, 3, 0))) _GL_ARG_NONNULL ((3))); _GL_CXXALIAS_RPL (vsnprintf, int, (char *str, size_t size, const char *format, va_list args)); --- 1258,1264 ---- # endif _GL_FUNCDECL_RPL (vsnprintf, int, (char *str, size_t size, const char *format, va_list args) ! _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) _GL_ARG_NONNULL ((3))); _GL_CXXALIAS_RPL (vsnprintf, int, (char *str, size_t size, const char *format, va_list args)); *************** *** 1054,1060 **** # if !@HAVE_DECL_VSNPRINTF@ _GL_FUNCDECL_SYS (vsnprintf, int, (char *str, size_t size, const char *format, va_list args) ! __attribute__ ((__format__ (__printf__, 3, 0))) _GL_ARG_NONNULL ((3))); # endif _GL_CXXALIAS_SYS (vsnprintf, int, --- 1266,1272 ---- # if !@HAVE_DECL_VSNPRINTF@ _GL_FUNCDECL_SYS (vsnprintf, int, (char *str, size_t size, const char *format, va_list args) ! _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) _GL_ARG_NONNULL ((3))); # endif _GL_CXXALIAS_SYS (vsnprintf, int, *************** *** 1076,1082 **** # endif _GL_FUNCDECL_RPL (vsprintf, int, (char *str, const char *format, va_list args) ! __attribute__ ((__format__ (__printf__, 2, 0))) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vsprintf, int, (char *str, const char *format, va_list args)); --- 1288,1294 ---- # endif _GL_FUNCDECL_RPL (vsprintf, int, (char *str, const char *format, va_list args) ! _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vsprintf, int, (char *str, const char *format, va_list args)); *************** *** 1097,1102 **** #endif ! #endif /* _GL_STDIO_H */ ! #endif /* _GL_STDIO_H */ #endif --- 1309,1314 ---- #endif ! #endif /* _@GUARD_PREFIX@_STDIO_H */ ! #endif /* _@GUARD_PREFIX@_STDIO_H */ #endif diff -cNr octave-3.4.0/libgnu/stdio-write.c octave-3.4.1/libgnu/stdio-write.c *** octave-3.4.0/libgnu/stdio-write.c 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/stdio-write.c 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,150 **** - /* -*- buffer-read-only: t -*- vi: set ro: */ - /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ - /* POSIX compatible FILE stream write function. - Copyright (C) 2008-2011 Free Software Foundation, Inc. - Written by Bruno Haible , 2008. - - 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 . */ - - #include - - /* Specification. */ - #include - - /* Replace these functions only if module 'sigpipe' is requested. */ - #if GNULIB_SIGPIPE - - /* On native Windows platforms, SIGPIPE does not exist. When write() is - called on a pipe with no readers, WriteFile() fails with error - GetLastError() = ERROR_NO_DATA, and write() in consequence fails with - error EINVAL. This write() function is at the basis of the function - which flushes the buffer of a FILE stream. */ - - # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ - - # include - # include - # include - - # define WIN32_LEAN_AND_MEAN /* avoid including junk */ - # include - - # define CALL_WITH_SIGPIPE_EMULATION(RETTYPE, EXPRESSION, FAILED) \ - if (ferror (stream)) \ - return (EXPRESSION); \ - else \ - { \ - RETTYPE ret; \ - SetLastError (0); \ - ret = (EXPRESSION); \ - if (FAILED && GetLastError () == ERROR_NO_DATA && ferror (stream)) \ - { \ - int fd = fileno (stream); \ - if (fd >= 0 \ - && GetFileType ((HANDLE) _get_osfhandle (fd)) == FILE_TYPE_PIPE)\ - { \ - /* Try to raise signal SIGPIPE. */ \ - raise (SIGPIPE); \ - /* If it is currently blocked or ignored, change errno from \ - EINVAL to EPIPE. */ \ - errno = EPIPE; \ - } \ - } \ - return ret; \ - } - - # if !REPLACE_PRINTF_POSIX /* avoid collision with printf.c */ - int - printf (const char *format, ...) - { - int retval; - va_list args; - - va_start (args, format); - retval = vfprintf (stdout, format, args); - va_end (args); - - return retval; - } - # endif - - # if !REPLACE_FPRINTF_POSIX /* avoid collision with fprintf.c */ - int - fprintf (FILE *stream, const char *format, ...) - { - int retval; - va_list args; - - va_start (args, format); - retval = vfprintf (stream, format, args); - va_end (args); - - return retval; - } - # endif - - # if !REPLACE_VPRINTF_POSIX /* avoid collision with vprintf.c */ - int - vprintf (const char *format, va_list args) - { - return vfprintf (stdout, format, args); - } - # endif - - # if !REPLACE_VFPRINTF_POSIX /* avoid collision with vfprintf.c */ - int - vfprintf (FILE *stream, const char *format, va_list args) - #undef vfprintf - { - CALL_WITH_SIGPIPE_EMULATION (int, vfprintf (stream, format, args), ret == EOF) - } - # endif - - int - putchar (int c) - { - return fputc (c, stdout); - } - - int - fputc (int c, FILE *stream) - #undef fputc - { - CALL_WITH_SIGPIPE_EMULATION (int, fputc (c, stream), ret == EOF) - } - - int - fputs (const char *string, FILE *stream) - #undef fputs - { - CALL_WITH_SIGPIPE_EMULATION (int, fputs (string, stream), ret == EOF) - } - - int - puts (const char *string) - #undef puts - { - FILE *stream = stdout; - CALL_WITH_SIGPIPE_EMULATION (int, puts (string), ret == EOF) - } - - size_t - fwrite (const void *ptr, size_t s, size_t n, FILE *stream) - #undef fwrite - { - CALL_WITH_SIGPIPE_EMULATION (size_t, fwrite (ptr, s, n, stream), ret < n) - } - - # endif - #endif --- 0 ---- diff -cNr octave-3.4.0/libgnu/stdlib.in.h octave-3.4.1/libgnu/stdlib.in.h *** octave-3.4.0/libgnu/stdlib.in.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/stdlib.in.h 2011-06-15 11:31:08.000000000 -0400 *************** *** 30,42 **** #else /* Normal invocation convention. */ ! #ifndef _GL_STDLIB_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STDLIB_H@ ! #ifndef _GL_STDLIB_H ! #define _GL_STDLIB_H /* NetBSD 5.0 mis-defines NULL. */ #include --- 30,42 ---- #else /* Normal invocation convention. */ ! #ifndef _@GUARD_PREFIX@_STDLIB_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STDLIB_H@ ! #ifndef _@GUARD_PREFIX@_STDLIB_H ! #define _@GUARD_PREFIX@_STDLIB_H /* NetBSD 5.0 mis-defines NULL. */ #include *************** *** 51,71 **** # include #endif /* OSF/1 5.1 declares 'struct random_data' in , which is included ! from if _REENTRANT is defined. Include it always. */ ! #if @HAVE_RANDOM_H@ ! # include ! #endif ! #if !@HAVE_STRUCT_RANDOM_DATA@ || (@GNULIB_RANDOM_R@ && !@HAVE_RANDOM_R@) \ ! || defined GNULIB_POSIXCHECK ! # include ! #endif ! #if !@HAVE_STRUCT_RANDOM_DATA@ /* Define 'struct random_data'. But allow multiple gnulib generated replacements to coexist. */ ! # if !GNULIB_defined_struct_random_data struct random_data { int32_t *fptr; /* Front pointer. */ --- 51,73 ---- # include #endif + #if @GNULIB_RANDOM_R@ + /* OSF/1 5.1 declares 'struct random_data' in , which is included ! from if _REENTRANT is defined. Include it whenever we need ! 'struct random_data'. */ ! # if @HAVE_RANDOM_H@ ! # include ! # endif ! # if !@HAVE_STRUCT_RANDOM_DATA@ || !@HAVE_RANDOM_R@ ! # include ! # endif ! # if !@HAVE_STRUCT_RANDOM_DATA@ /* Define 'struct random_data'. But allow multiple gnulib generated replacements to coexist. */ ! # if !GNULIB_defined_struct_random_data struct random_data { int32_t *fptr; /* Front pointer. */ *************** *** 76,96 **** int rand_sep; /* Distance between front and rear. */ int32_t *end_ptr; /* Pointer behind state table. */ }; ! # define GNULIB_defined_struct_random_data 1 # endif #endif ! #if (@GNULIB_MKSTEMP@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) /* On MacOS X 10.3, only declares mkstemp. */ /* On Cygwin 1.7.1, only declares getsubopt. */ /* But avoid namespace pollution on glibc systems and native Windows. */ # include #endif ! #ifndef __attribute__ ! # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) ! # define __attribute__(Spec) /* empty */ ! # endif #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ --- 78,100 ---- int rand_sep; /* Distance between front and rear. */ int32_t *end_ptr; /* Pointer behind state table. */ }; ! # define GNULIB_defined_struct_random_data 1 ! # endif # endif #endif ! #if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) /* On MacOS X 10.3, only declares mkstemp. */ + /* On MacOS X 10.5, only declares mkstemps. */ /* On Cygwin 1.7.1, only declares getsubopt. */ /* But avoid namespace pollution on glibc systems and native Windows. */ # include #endif ! #if 3 <= __GNUC__ || __GNUC__ == 2 && 8 <= __GNUC_MINOR__ ! # define _GL_ATTRIBUTE_NORETURN __attribute__ ((__noreturn__)) ! #else ! # define _GL_ATTRIBUTE_NORETURN #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ *************** *** 118,124 **** /* Terminate the current process with the given return code, without running the 'atexit' handlers. */ # if !@HAVE__EXIT@ ! _GL_FUNCDECL_SYS (_Exit, void, (int status) __attribute__ ((__noreturn__))); # endif _GL_CXXALIAS_SYS (_Exit, void, (int status)); _GL_CXXALIASWARN (_Exit); --- 122,128 ---- /* Terminate the current process with the given return code, without running the 'atexit' handlers. */ # if !@HAVE__EXIT@ ! _GL_FUNCDECL_SYS (_Exit, void, (int status) _GL_ATTRIBUTE_NORETURN); # endif _GL_CXXALIAS_SYS (_Exit, void, (int status)); _GL_CXXALIASWARN (_Exit); *************** *** 254,262 **** # endif #endif #if @GNULIB_MALLOC_POSIX@ # if @REPLACE_MALLOC@ ! # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef malloc # define malloc rpl_malloc # endif --- 258,271 ---- # endif #endif + /* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not + rely on GNU or POSIX semantics for malloc and realloc (for example, + by never specifying a zero size), so it does not need malloc or + realloc to be redefined. */ #if @GNULIB_MALLOC_POSIX@ # if @REPLACE_MALLOC@ ! # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ ! || _GL_USE_STDLIB_ALLOC) # undef malloc # define malloc rpl_malloc # endif *************** *** 266,278 **** _GL_CXXALIAS_SYS (malloc, void *, (size_t size)); # endif _GL_CXXALIASWARN (malloc); ! #elif defined GNULIB_POSIXCHECK # undef malloc /* Assume malloc is always declared. */ _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - " "use gnulib module malloc-posix for portability"); #endif #if @GNULIB_MKDTEMP@ /* Create a unique temporary directory from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; --- 275,302 ---- _GL_CXXALIAS_SYS (malloc, void *, (size_t size)); # endif _GL_CXXALIASWARN (malloc); ! #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC # undef malloc /* Assume malloc is always declared. */ _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - " "use gnulib module malloc-posix for portability"); #endif + /* Convert a multibyte character to a wide character. */ + #if @GNULIB_MBTOWC@ + # if @REPLACE_MBTOWC@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef mbtowc + # define mbtowc rpl_mbtowc + # endif + _GL_FUNCDECL_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); + _GL_CXXALIAS_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); + # else + _GL_CXXALIAS_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); + # endif + _GL_CXXALIASWARN (mbtowc); + #endif + #if @GNULIB_MKDTEMP@ /* Create a unique temporary directory from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; *************** *** 515,521 **** #if @GNULIB_REALLOC_POSIX@ # if @REPLACE_REALLOC@ ! # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef realloc # define realloc rpl_realloc # endif --- 539,546 ---- #if @GNULIB_REALLOC_POSIX@ # if @REPLACE_REALLOC@ ! # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ ! || _GL_USE_STDLIB_ALLOC) # undef realloc # define realloc rpl_realloc # endif *************** *** 525,531 **** _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size)); # endif _GL_CXXALIASWARN (realloc); ! #elif defined GNULIB_POSIXCHECK # undef realloc /* Assume realloc is always declared. */ _GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - " --- 550,556 ---- _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size)); # endif _GL_CXXALIASWARN (realloc); ! #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC # undef realloc /* Assume realloc is always declared. */ _GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - " *************** *** 722,728 **** # endif #endif ! #endif /* _GL_STDLIB_H */ ! #endif /* _GL_STDLIB_H */ #endif --- 747,768 ---- # endif #endif + /* Convert a wide character to a multibyte character. */ + #if @GNULIB_WCTOMB@ + # if @REPLACE_WCTOMB@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef wctomb + # define wctomb rpl_wctomb + # endif + _GL_FUNCDECL_RPL (wctomb, int, (char *s, wchar_t wc)); + _GL_CXXALIAS_RPL (wctomb, int, (char *s, wchar_t wc)); + # else + _GL_CXXALIAS_SYS (wctomb, int, (char *s, wchar_t wc)); + # endif + _GL_CXXALIASWARN (wctomb); + #endif + ! #endif /* _@GUARD_PREFIX@_STDLIB_H */ ! #endif /* _@GUARD_PREFIX@_STDLIB_H */ #endif diff -cNr octave-3.4.0/libgnu/strcasecmp.c octave-3.4.1/libgnu/strcasecmp.c *** octave-3.4.0/libgnu/strcasecmp.c 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/strcasecmp.c 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,65 **** - /* -*- buffer-read-only: t -*- vi: set ro: */ - /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ - /* Case-insensitive string comparison function. - Copyright (C) 1998-1999, 2005-2007, 2009-2011 Free Software Foundation, Inc. - - 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, 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - - #include - - /* Specification. */ - #include - - #include - #include - - #define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch)) - - /* Compare strings S1 and S2, ignoring case, returning less than, equal to or - greater than zero if S1 is lexicographically less than, equal to or greater - than S2. - Note: This function does not work with multibyte strings! */ - - int - strcasecmp (const char *s1, const char *s2) - { - const unsigned char *p1 = (const unsigned char *) s1; - const unsigned char *p2 = (const unsigned char *) s2; - unsigned char c1, c2; - - if (p1 == p2) - return 0; - - do - { - c1 = TOLOWER (*p1); - c2 = TOLOWER (*p2); - - if (c1 == '\0') - break; - - ++p1; - ++p2; - } - while (c1 == c2); - - if (UCHAR_MAX <= INT_MAX) - return c1 - c2; - else - /* On machines where 'char' and 'int' are types of the same size, the - difference of two 'unsigned char' values - including the sign bit - - doesn't fit in an 'int'. */ - return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); - } --- 0 ---- diff -cNr octave-3.4.0/libgnu/streq.h octave-3.4.1/libgnu/streq.h *** octave-3.4.0/libgnu/streq.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/streq.h 2011-06-15 11:31:08.000000000 -0400 *************** *** 11,17 **** 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 ! Lesser 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 . */ --- 11,17 ---- 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 . */ diff -cNr octave-3.4.0/libgnu/strerror.c octave-3.4.1/libgnu/strerror.c *** octave-3.4.0/libgnu/strerror.c 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/strerror.c 2011-06-15 11:31:08.000000000 -0400 *************** *** 19,358 **** #include #include ! #if REPLACE_STRERROR ! ! # include ! # include ! ! # if GNULIB_defined_ESOCK /* native Windows platforms */ ! # if HAVE_WINSOCK2_H ! # include ! # endif ! # endif ! # include "intprops.h" /* Use the system functions, not the gnulib overrides in this file. */ ! # undef sprintf ! ! # undef strerror ! # if ! HAVE_DECL_STRERROR ! # define strerror(n) NULL ! # endif char * ! rpl_strerror (int n) { ! char const *msg = NULL; ! /* These error messages are taken from glibc/sysdeps/gnu/errlist.c. */ ! switch (n) ! { ! # if GNULIB_defined_ETXTBSY ! case ETXTBSY: ! msg = "Text file busy"; ! break; ! # endif ! ! # if GNULIB_defined_ESOCK /* native Windows platforms */ ! /* EWOULDBLOCK is the same as EAGAIN. */ ! case EINPROGRESS: ! msg = "Operation now in progress"; ! break; ! case EALREADY: ! msg = "Operation already in progress"; ! break; ! case ENOTSOCK: ! msg = "Socket operation on non-socket"; ! break; ! case EDESTADDRREQ: ! msg = "Destination address required"; ! break; ! case EMSGSIZE: ! msg = "Message too long"; ! break; ! case EPROTOTYPE: ! msg = "Protocol wrong type for socket"; ! break; ! case ENOPROTOOPT: ! msg = "Protocol not available"; ! break; ! case EPROTONOSUPPORT: ! msg = "Protocol not supported"; ! break; ! case ESOCKTNOSUPPORT: ! msg = "Socket type not supported"; ! break; ! case EOPNOTSUPP: ! msg = "Operation not supported"; ! break; ! case EPFNOSUPPORT: ! msg = "Protocol family not supported"; ! break; ! case EAFNOSUPPORT: ! msg = "Address family not supported by protocol"; ! break; ! case EADDRINUSE: ! msg = "Address already in use"; ! break; ! case EADDRNOTAVAIL: ! msg = "Cannot assign requested address"; ! break; ! case ENETDOWN: ! msg = "Network is down"; ! break; ! case ENETUNREACH: ! msg = "Network is unreachable"; ! break; ! case ENETRESET: ! msg = "Network dropped connection on reset"; ! break; ! case ECONNABORTED: ! msg = "Software caused connection abort"; ! break; ! case ECONNRESET: ! msg = "Connection reset by peer"; ! break; ! case ENOBUFS: ! msg = "No buffer space available"; ! break; ! case EISCONN: ! msg = "Transport endpoint is already connected"; ! break; ! case ENOTCONN: ! msg = "Transport endpoint is not connected"; ! break; ! case ESHUTDOWN: ! msg = "Cannot send after transport endpoint shutdown"; ! break; ! case ETOOMANYREFS: ! msg = "Too many references: cannot splice"; ! break; ! case ETIMEDOUT: ! msg = "Connection timed out"; ! break; ! case ECONNREFUSED: ! msg = "Connection refused"; ! break; ! case ELOOP: ! msg = "Too many levels of symbolic links"; ! break; ! case EHOSTDOWN: ! msg = "Host is down"; ! break; ! case EHOSTUNREACH: ! msg = "No route to host"; ! break; ! case EPROCLIM: ! msg = "Too many processes"; ! break; ! case EUSERS: ! msg = "Too many users"; ! break; ! case EDQUOT: ! msg = "Disk quota exceeded"; ! break; ! case ESTALE: ! msg = "Stale NFS file handle"; ! break; ! case EREMOTE: ! msg = "Object is remote"; ! break; ! # if HAVE_WINSOCK2_H ! /* WSA_INVALID_HANDLE maps to EBADF */ ! /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */ ! /* WSA_INVALID_PARAMETER maps to EINVAL */ ! case WSA_OPERATION_ABORTED: ! msg = "Overlapped operation aborted"; ! break; ! case WSA_IO_INCOMPLETE: ! msg = "Overlapped I/O event object not in signaled state"; ! break; ! case WSA_IO_PENDING: ! msg = "Overlapped operations will complete later"; ! break; ! /* WSAEINTR maps to EINTR */ ! /* WSAEBADF maps to EBADF */ ! /* WSAEACCES maps to EACCES */ ! /* WSAEFAULT maps to EFAULT */ ! /* WSAEINVAL maps to EINVAL */ ! /* WSAEMFILE maps to EMFILE */ ! /* WSAEWOULDBLOCK maps to EWOULDBLOCK */ ! /* WSAEINPROGRESS is EINPROGRESS */ ! /* WSAEALREADY is EALREADY */ ! /* WSAENOTSOCK is ENOTSOCK */ ! /* WSAEDESTADDRREQ is EDESTADDRREQ */ ! /* WSAEMSGSIZE is EMSGSIZE */ ! /* WSAEPROTOTYPE is EPROTOTYPE */ ! /* WSAENOPROTOOPT is ENOPROTOOPT */ ! /* WSAEPROTONOSUPPORT is EPROTONOSUPPORT */ ! /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */ ! /* WSAEOPNOTSUPP is EOPNOTSUPP */ ! /* WSAEPFNOSUPPORT is EPFNOSUPPORT */ ! /* WSAEAFNOSUPPORT is EAFNOSUPPORT */ ! /* WSAEADDRINUSE is EADDRINUSE */ ! /* WSAEADDRNOTAVAIL is EADDRNOTAVAIL */ ! /* WSAENETDOWN is ENETDOWN */ ! /* WSAENETUNREACH is ENETUNREACH */ ! /* WSAENETRESET is ENETRESET */ ! /* WSAECONNABORTED is ECONNABORTED */ ! /* WSAECONNRESET is ECONNRESET */ ! /* WSAENOBUFS is ENOBUFS */ ! /* WSAEISCONN is EISCONN */ ! /* WSAENOTCONN is ENOTCONN */ ! /* WSAESHUTDOWN is ESHUTDOWN */ ! /* WSAETOOMANYREFS is ETOOMANYREFS */ ! /* WSAETIMEDOUT is ETIMEDOUT */ ! /* WSAECONNREFUSED is ECONNREFUSED */ ! /* WSAELOOP is ELOOP */ ! /* WSAENAMETOOLONG maps to ENAMETOOLONG */ ! /* WSAEHOSTDOWN is EHOSTDOWN */ ! /* WSAEHOSTUNREACH is EHOSTUNREACH */ ! /* WSAENOTEMPTY maps to ENOTEMPTY */ ! /* WSAEPROCLIM is EPROCLIM */ ! /* WSAEUSERS is EUSERS */ ! /* WSAEDQUOT is EDQUOT */ ! /* WSAESTALE is ESTALE */ ! /* WSAEREMOTE is EREMOTE */ ! case WSASYSNOTREADY: ! msg = "Network subsystem is unavailable"; ! break; ! case WSAVERNOTSUPPORTED: ! msg = "Winsock.dll version out of range"; ! break; ! case WSANOTINITIALISED: ! msg = "Successful WSAStartup not yet performed"; ! break; ! case WSAEDISCON: ! msg = "Graceful shutdown in progress"; ! break; ! case WSAENOMORE: case WSA_E_NO_MORE: ! msg = "No more results"; ! break; ! case WSAECANCELLED: case WSA_E_CANCELLED: ! msg = "Call was canceled"; ! break; ! case WSAEINVALIDPROCTABLE: ! msg = "Procedure call table is invalid"; ! break; ! case WSAEINVALIDPROVIDER: ! msg = "Service provider is invalid"; ! break; ! case WSAEPROVIDERFAILEDINIT: ! msg = "Service provider failed to initialize"; ! break; ! case WSASYSCALLFAILURE: ! msg = "System call failure"; ! break; ! case WSASERVICE_NOT_FOUND: ! msg = "Service not found"; ! break; ! case WSATYPE_NOT_FOUND: ! msg = "Class type not found"; ! break; ! case WSAEREFUSED: ! msg = "Database query was refused"; ! break; ! case WSAHOST_NOT_FOUND: ! msg = "Host not found"; ! break; ! case WSATRY_AGAIN: ! msg = "Nonauthoritative host not found"; ! break; ! case WSANO_RECOVERY: ! msg = "Nonrecoverable error"; ! break; ! case WSANO_DATA: ! msg = "Valid name, no data record of requested type"; ! break; ! /* WSA_QOS_* omitted */ ! # endif ! # endif ! ! # if GNULIB_defined_ENOMSG ! case ENOMSG: ! msg = "No message of desired type"; ! break; ! # endif ! ! # if GNULIB_defined_EIDRM ! case EIDRM: ! msg = "Identifier removed"; ! break; ! # endif ! ! # if GNULIB_defined_ENOLINK ! case ENOLINK: ! msg = "Link has been severed"; ! break; ! # endif ! ! # if GNULIB_defined_EPROTO ! case EPROTO: ! msg = "Protocol error"; ! break; ! # endif ! ! # if GNULIB_defined_EMULTIHOP ! case EMULTIHOP: ! msg = "Multihop attempted"; ! break; ! # endif ! ! # if GNULIB_defined_EBADMSG ! case EBADMSG: ! msg = "Bad message"; ! break; ! # endif ! ! # if GNULIB_defined_EOVERFLOW ! case EOVERFLOW: ! msg = "Value too large for defined data type"; ! break; ! # endif ! ! # if GNULIB_defined_ENOTSUP ! case ENOTSUP: ! msg = "Not supported"; ! break; ! # endif ! ! # if GNULIB_defined_ESTALE ! case ESTALE: ! msg = "Stale NFS file handle"; ! break; ! # endif ! ! # if GNULIB_defined_EDQUOT ! case EDQUOT: ! msg = "Disk quota exceeded"; ! break; ! # endif ! ! # if GNULIB_defined_ECANCELED ! case ECANCELED: ! msg = "Operation canceled"; ! break; ! # endif ! } if (msg) return (char *) msg; ! { ! char *result = strerror (n); ! if (result == NULL || result[0] == '\0') ! { ! static char const fmt[] = "Unknown error (%d)"; ! static char msg_buf[sizeof fmt + INT_STRLEN_BOUND (n)]; ! sprintf (msg_buf, fmt, n); ! return msg_buf; ! } ! return result; ! } } - - #endif --- 19,85 ---- #include + /* Specification. */ #include ! #include ! #include ! #include ! #include ! #include "intprops.h" ! #include "strerror-override.h" ! #include "verify.h" /* Use the system functions, not the gnulib overrides in this file. */ ! #undef sprintf char * ! strerror (int n) ! #undef strerror { ! static char buf[STACKBUF_LEN]; ! size_t len; + /* Cast away const, due to the historical signature of strerror; + callers should not be modifying the string. */ + const char *msg = strerror_override (n); if (msg) return (char *) msg; ! /* FreeBSD rejects 0; see http://austingroupbugs.net/view.php?id=382. ! MacOS X 10.5 does not distinguish 0 from -1. */ ! if (n) ! msg = strerror (n); ! else ! { ! int saved_errno = errno; ! errno = 0; ! msg = strerror (n); ! if (errno || (msg && ! (strstr (msg, "nknown") || strstr (msg, "ndefined")))) ! msg = "Success"; ! errno = saved_errno; ! } ! ! /* Our strerror_r implementation might use the system's strerror ! buffer, so all other clients of strerror have to see the error ! copied into a buffer that we manage. This is not thread-safe, ! even if the system strerror is, but portable programs shouldn't ! be using strerror if they care about thread-safety. */ ! if (!msg || !*msg) ! { ! static char const fmt[] = "Unknown error %d"; ! verify (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n)); ! sprintf (buf, fmt, n); ! errno = EINVAL; ! return buf; ! } ! /* Fix STACKBUF_LEN if this ever aborts. */ ! len = strlen (msg); ! if (sizeof buf <= len) ! abort (); ! return memcpy (buf, msg, len + 1); } diff -cNr octave-3.4.0/libgnu/strerror-override.c octave-3.4.1/libgnu/strerror-override.c *** octave-3.4.0/libgnu/strerror-override.c 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/strerror-override.c 2011-06-15 11:31:08.000000000 -0400 *************** *** 0 **** --- 1,347 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* strerror-override.c --- POSIX compatible system error routine + + Copyright (C) 2010-2011 Free Software Foundation, Inc. + + 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 . */ + + /* Written by Bruno Haible , 2010. */ + + #include + + #include "strerror-override.h" + + #include + + #if GNULIB_defined_ESOCK /* native Windows platforms */ + # if HAVE_WINSOCK2_H + # include + # endif + #endif + + /* If ERRNUM maps to an errno value defined by gnulib, return a string + describing the error. Otherwise return NULL. */ + const char * + strerror_override (int errnum) + { + const char *msg = NULL; + + #if GNULIB_defined_ETXTBSY \ + || GNULIB_defined_ESOCK \ + || GNULIB_defined_ENOMSG \ + || GNULIB_defined_EIDRM \ + || GNULIB_defined_ENOLINK \ + || GNULIB_defined_EPROTO \ + || GNULIB_defined_EMULTIHOP \ + || GNULIB_defined_EBADMSG \ + || GNULIB_defined_EOVERFLOW \ + || GNULIB_defined_ENOTSUP \ + || GNULIB_defined_ESTALE \ + || GNULIB_defined_EDQUOT \ + || GNULIB_defined_ECANCELED + /* These error messages are taken from glibc/sysdeps/gnu/errlist.c. */ + switch (errnum) + { + # if GNULIB_defined_ETXTBSY + case ETXTBSY: + msg = "Text file busy"; + break; + # endif + + # if GNULIB_defined_ESOCK /* native Windows platforms */ + /* EWOULDBLOCK is the same as EAGAIN. */ + case EINPROGRESS: + msg = "Operation now in progress"; + break; + case EALREADY: + msg = "Operation already in progress"; + break; + case ENOTSOCK: + msg = "Socket operation on non-socket"; + break; + case EDESTADDRREQ: + msg = "Destination address required"; + break; + case EMSGSIZE: + msg = "Message too long"; + break; + case EPROTOTYPE: + msg = "Protocol wrong type for socket"; + break; + case ENOPROTOOPT: + msg = "Protocol not available"; + break; + case EPROTONOSUPPORT: + msg = "Protocol not supported"; + break; + case ESOCKTNOSUPPORT: + msg = "Socket type not supported"; + break; + case EOPNOTSUPP: + msg = "Operation not supported"; + break; + case EPFNOSUPPORT: + msg = "Protocol family not supported"; + break; + case EAFNOSUPPORT: + msg = "Address family not supported by protocol"; + break; + case EADDRINUSE: + msg = "Address already in use"; + break; + case EADDRNOTAVAIL: + msg = "Cannot assign requested address"; + break; + case ENETDOWN: + msg = "Network is down"; + break; + case ENETUNREACH: + msg = "Network is unreachable"; + break; + case ENETRESET: + msg = "Network dropped connection on reset"; + break; + case ECONNABORTED: + msg = "Software caused connection abort"; + break; + case ECONNRESET: + msg = "Connection reset by peer"; + break; + case ENOBUFS: + msg = "No buffer space available"; + break; + case EISCONN: + msg = "Transport endpoint is already connected"; + break; + case ENOTCONN: + msg = "Transport endpoint is not connected"; + break; + case ESHUTDOWN: + msg = "Cannot send after transport endpoint shutdown"; + break; + case ETOOMANYREFS: + msg = "Too many references: cannot splice"; + break; + case ETIMEDOUT: + msg = "Connection timed out"; + break; + case ECONNREFUSED: + msg = "Connection refused"; + break; + case ELOOP: + msg = "Too many levels of symbolic links"; + break; + case EHOSTDOWN: + msg = "Host is down"; + break; + case EHOSTUNREACH: + msg = "No route to host"; + break; + case EPROCLIM: + msg = "Too many processes"; + break; + case EUSERS: + msg = "Too many users"; + break; + case EDQUOT: + msg = "Disk quota exceeded"; + break; + case ESTALE: + msg = "Stale NFS file handle"; + break; + case EREMOTE: + msg = "Object is remote"; + break; + # if HAVE_WINSOCK2_H + /* WSA_INVALID_HANDLE maps to EBADF */ + /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */ + /* WSA_INVALID_PARAMETER maps to EINVAL */ + case WSA_OPERATION_ABORTED: + msg = "Overlapped operation aborted"; + break; + case WSA_IO_INCOMPLETE: + msg = "Overlapped I/O event object not in signaled state"; + break; + case WSA_IO_PENDING: + msg = "Overlapped operations will complete later"; + break; + /* WSAEINTR maps to EINTR */ + /* WSAEBADF maps to EBADF */ + /* WSAEACCES maps to EACCES */ + /* WSAEFAULT maps to EFAULT */ + /* WSAEINVAL maps to EINVAL */ + /* WSAEMFILE maps to EMFILE */ + /* WSAEWOULDBLOCK maps to EWOULDBLOCK */ + /* WSAEINPROGRESS is EINPROGRESS */ + /* WSAEALREADY is EALREADY */ + /* WSAENOTSOCK is ENOTSOCK */ + /* WSAEDESTADDRREQ is EDESTADDRREQ */ + /* WSAEMSGSIZE is EMSGSIZE */ + /* WSAEPROTOTYPE is EPROTOTYPE */ + /* WSAENOPROTOOPT is ENOPROTOOPT */ + /* WSAEPROTONOSUPPORT is EPROTONOSUPPORT */ + /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */ + /* WSAEOPNOTSUPP is EOPNOTSUPP */ + /* WSAEPFNOSUPPORT is EPFNOSUPPORT */ + /* WSAEAFNOSUPPORT is EAFNOSUPPORT */ + /* WSAEADDRINUSE is EADDRINUSE */ + /* WSAEADDRNOTAVAIL is EADDRNOTAVAIL */ + /* WSAENETDOWN is ENETDOWN */ + /* WSAENETUNREACH is ENETUNREACH */ + /* WSAENETRESET is ENETRESET */ + /* WSAECONNABORTED is ECONNABORTED */ + /* WSAECONNRESET is ECONNRESET */ + /* WSAENOBUFS is ENOBUFS */ + /* WSAEISCONN is EISCONN */ + /* WSAENOTCONN is ENOTCONN */ + /* WSAESHUTDOWN is ESHUTDOWN */ + /* WSAETOOMANYREFS is ETOOMANYREFS */ + /* WSAETIMEDOUT is ETIMEDOUT */ + /* WSAECONNREFUSED is ECONNREFUSED */ + /* WSAELOOP is ELOOP */ + /* WSAENAMETOOLONG maps to ENAMETOOLONG */ + /* WSAEHOSTDOWN is EHOSTDOWN */ + /* WSAEHOSTUNREACH is EHOSTUNREACH */ + /* WSAENOTEMPTY maps to ENOTEMPTY */ + /* WSAEPROCLIM is EPROCLIM */ + /* WSAEUSERS is EUSERS */ + /* WSAEDQUOT is EDQUOT */ + /* WSAESTALE is ESTALE */ + /* WSAEREMOTE is EREMOTE */ + case WSASYSNOTREADY: + msg = "Network subsystem is unavailable"; + break; + case WSAVERNOTSUPPORTED: + msg = "Winsock.dll version out of range"; + break; + case WSANOTINITIALISED: + msg = "Successful WSAStartup not yet performed"; + break; + case WSAEDISCON: + msg = "Graceful shutdown in progress"; + break; + case WSAENOMORE: case WSA_E_NO_MORE: + msg = "No more results"; + break; + case WSAECANCELLED: case WSA_E_CANCELLED: + msg = "Call was canceled"; + break; + case WSAEINVALIDPROCTABLE: + msg = "Procedure call table is invalid"; + break; + case WSAEINVALIDPROVIDER: + msg = "Service provider is invalid"; + break; + case WSAEPROVIDERFAILEDINIT: + msg = "Service provider failed to initialize"; + break; + case WSASYSCALLFAILURE: + msg = "System call failure"; + break; + case WSASERVICE_NOT_FOUND: + msg = "Service not found"; + break; + case WSATYPE_NOT_FOUND: + msg = "Class type not found"; + break; + case WSAEREFUSED: + msg = "Database query was refused"; + break; + case WSAHOST_NOT_FOUND: + msg = "Host not found"; + break; + case WSATRY_AGAIN: + msg = "Nonauthoritative host not found"; + break; + case WSANO_RECOVERY: + msg = "Nonrecoverable error"; + break; + case WSANO_DATA: + msg = "Valid name, no data record of requested type"; + break; + /* WSA_QOS_* omitted */ + # endif + # endif + + # if GNULIB_defined_ENOMSG + case ENOMSG: + msg = "No message of desired type"; + break; + # endif + + # if GNULIB_defined_EIDRM + case EIDRM: + msg = "Identifier removed"; + break; + # endif + + # if GNULIB_defined_ENOLINK + case ENOLINK: + msg = "Link has been severed"; + break; + # endif + + # if GNULIB_defined_EPROTO + case EPROTO: + msg = "Protocol error"; + break; + # endif + + # if GNULIB_defined_EMULTIHOP + case EMULTIHOP: + msg = "Multihop attempted"; + break; + # endif + + # if GNULIB_defined_EBADMSG + case EBADMSG: + msg = "Bad message"; + break; + # endif + + # if GNULIB_defined_EOVERFLOW + case EOVERFLOW: + msg = "Value too large for defined data type"; + break; + # endif + + # if GNULIB_defined_ENOTSUP + case ENOTSUP: + msg = "Not supported"; + break; + # endif + + # if GNULIB_defined_ESTALE + case ESTALE: + msg = "Stale NFS file handle"; + break; + # endif + + # if GNULIB_defined_EDQUOT + case EDQUOT: + msg = "Disk quota exceeded"; + break; + # endif + + # if GNULIB_defined_ECANCELED + case ECANCELED: + msg = "Operation canceled"; + break; + # endif + } + #endif + + return msg; + } diff -cNr octave-3.4.0/libgnu/strerror-override.h octave-3.4.1/libgnu/strerror-override.h *** octave-3.4.0/libgnu/strerror-override.h 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/strerror-override.h 2011-06-15 11:31:08.000000000 -0400 *************** *** 0 **** --- 1,51 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* strerror-override.h --- POSIX compatible system error routine + + Copyright (C) 2010-2011 Free Software Foundation, Inc. + + 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 . */ + + #ifndef _GL_STRERROR_OVERRIDE_H + # define _GL_STRERROR_OVERRIDE_H + + # include + # include + + /* Reasonable buffer size that should never trigger ERANGE; if this + proves too small, we intentionally abort(), to remind us to fix + this value. */ + # define STACKBUF_LEN 256 + + /* If ERRNUM maps to an errno value defined by gnulib, return a string + describing the error. Otherwise return NULL. */ + # if GNULIB_defined_ETXTBSY \ + || GNULIB_defined_ESOCK \ + || GNULIB_defined_ENOMSG \ + || GNULIB_defined_EIDRM \ + || GNULIB_defined_ENOLINK \ + || GNULIB_defined_EPROTO \ + || GNULIB_defined_EMULTIHOP \ + || GNULIB_defined_EBADMSG \ + || GNULIB_defined_EOVERFLOW \ + || GNULIB_defined_ENOTSUP \ + || GNULIB_defined_ESTALE \ + || GNULIB_defined_EDQUOT \ + || GNULIB_defined_ECANCELED + extern const char *strerror_override (int errnum); + # else + # define strerror_override(ignored) NULL + # endif + + #endif /* _GL_STRERROR_OVERRIDE_H */ diff -cNr octave-3.4.0/libgnu/strftime.c octave-3.4.1/libgnu/strftime.c *** octave-3.4.0/libgnu/strftime.c 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/strftime.c 2011-06-15 11:31:08.000000000 -0400 *************** *** 174,188 **** #define add(n, f) \ do \ { \ ! int _n = (n); \ ! int _delta = width - _n; \ ! int _incr = _n + (_delta > 0 ? _delta : 0); \ ! if ((size_t) _incr >= maxsize - i) \ return 0; \ if (p) \ { \ ! if (digits == 0 && _delta > 0) \ { \ if (pad == L_('0')) \ memset_zero (p, _delta); \ else \ --- 174,189 ---- #define add(n, f) \ do \ { \ ! size_t _n = (n); \ ! size_t _w = (width < 0 ? 0 : width); \ ! size_t _incr = _n < _w ? _w : _n; \ ! if (_incr >= maxsize - i) \ return 0; \ if (p) \ { \ ! if (digits == 0 && _n < _w) \ { \ + size_t _delta = width - _n; \ if (pad == L_('0')) \ memset_zero (p, _delta); \ else \ diff -cNr octave-3.4.0/libgnu/string.in.h octave-3.4.1/libgnu/string.in.h *** octave-3.4.0/libgnu/string.in.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/string.in.h 2011-06-15 11:31:08.000000000 -0400 *************** *** 18,24 **** along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ ! #ifndef _GL_STRING_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ --- 18,24 ---- along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ ! #ifndef _@GUARD_PREFIX@_STRING_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ *************** *** 28,35 **** /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STRING_H@ ! #ifndef _GL_STRING_H ! #define _GL_STRING_H /* NetBSD 5.0 mis-defines NULL. */ #include --- 28,35 ---- /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STRING_H@ ! #ifndef _@GUARD_PREFIX@_STRING_H ! #define _@GUARD_PREFIX@_STRING_H /* NetBSD 5.0 mis-defines NULL. */ #include *************** *** 39,51 **** # include #endif ! #ifndef __attribute__ ! /* This feature is available in gcc versions 2.5 and later. */ ! # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) ! # define __attribute__(Spec) /* empty */ ! # endif ! #endif ! /* The attribute __pure__ was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else --- 39,46 ---- # include #endif ! /* The __attribute__ feature is available in gcc versions 2.5 and later. ! The attribute __pure__ was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else *************** *** 284,300 **** /* Find the first occurrence of C in S or the final NUL byte. */ #if @GNULIB_STRCHRNUL@ ! # if ! @HAVE_STRCHRNUL@ _GL_FUNCDECL_SYS (strchrnul, char *, (char const *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); ! # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * std::strchrnul (const char *, int); } extern "C++" { char * std::strchrnul (char *, int); } */ _GL_CXXALIAS_SYS_CAST2 (strchrnul, char *, (char const *__s, int __c_in), char const *, (char const *__s, int __c_in)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in)); --- 279,306 ---- /* Find the first occurrence of C in S or the final NUL byte. */ #if @GNULIB_STRCHRNUL@ ! # if @REPLACE_STRCHRNUL@ ! # if !(defined __cplusplus && defined GNULIB_NAMESPACE) ! # define strchrnul rpl_strchrnul ! # endif ! _GL_FUNCDECL_RPL (strchrnul, char *, (const char *__s, int __c_in) ! _GL_ATTRIBUTE_PURE ! _GL_ARG_NONNULL ((1))); ! _GL_CXXALIAS_RPL (strchrnul, char *, ! (const char *str, int ch)); ! # else ! # if ! @HAVE_STRCHRNUL@ _GL_FUNCDECL_SYS (strchrnul, char *, (char const *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); ! # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * std::strchrnul (const char *, int); } extern "C++" { char * std::strchrnul (char *, int); } */ _GL_CXXALIAS_SYS_CAST2 (strchrnul, char *, (char const *__s, int __c_in), char const *, (char const *__s, int __c_in)); + # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in)); *************** *** 732,740 **** and return a pointer to it. Return NULL if C is not found in STRING. Unlike strrchr(), this function works correctly in multibyte locales with encodings such as GB18030. */ ! # if defined __hpux # if !(defined __cplusplus && defined GNULIB_NAMESPACE) ! # define mbsrchr rpl_mbsrchr /* avoid collision with HP-UX function */ # endif _GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c) _GL_ARG_NONNULL ((1))); --- 738,746 ---- and return a pointer to it. Return NULL if C is not found in STRING. Unlike strrchr(), this function works correctly in multibyte locales with encodings such as GB18030. */ ! # if defined __hpux || defined __INTERIX # if !(defined __cplusplus && defined GNULIB_NAMESPACE) ! # define mbsrchr rpl_mbsrchr /* avoid collision with system function */ # endif _GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c) _GL_ARG_NONNULL ((1))); *************** *** 973,977 **** #endif ! #endif /* _GL_STRING_H */ ! #endif /* _GL_STRING_H */ --- 979,983 ---- #endif ! #endif /* _@GUARD_PREFIX@_STRING_H */ ! #endif /* _@GUARD_PREFIX@_STRING_H */ diff -cNr octave-3.4.0/libgnu/strings.in.h octave-3.4.1/libgnu/strings.in.h *** octave-3.4.0/libgnu/strings.in.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/strings.in.h 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,96 **** - /* -*- buffer-read-only: t -*- vi: set ro: */ - /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ - /* A substitute . - - Copyright (C) 2007-2011 Free Software Foundation, Inc. - - 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, 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - - #ifndef _GL_STRINGS_H - - #if __GNUC__ >= 3 - @PRAGMA_SYSTEM_HEADER@ - #endif - @PRAGMA_COLUMNS@ - - /* The include_next requires a split double-inclusion guard. */ - #@INCLUDE_NEXT@ @NEXT_STRINGS_H@ - - #ifndef _GL_STRINGS_H - #define _GL_STRINGS_H - - - /* The definition of _GL_ARG_NONNULL is copied here. */ - - /* The definition of _GL_WARN_ON_USE is copied here. */ - - #ifdef __cplusplus - extern "C" { - #endif - - - /* Compare strings S1 and S2, ignoring case, returning less than, equal to or - greater than zero if S1 is lexicographically less than, equal to or greater - than S2. - Note: This function does not work in multibyte locales. */ - #if ! @HAVE_STRCASECMP@ - extern int strcasecmp (char const *s1, char const *s2) - _GL_ARG_NONNULL ((1, 2)); - #endif - #if defined GNULIB_POSIXCHECK - /* strcasecmp() does not work with multibyte strings: - POSIX says that it operates on "strings", and "string" in POSIX is defined - as a sequence of bytes, not of characters. */ - # undef strcasecmp - # if HAVE_RAW_DECL_STRCASECMP - _GL_WARN_ON_USE (strcasecmp, "strcasecmp cannot work correctly on character " - "strings in multibyte locales - " - "use mbscasecmp if you care about " - "internationalization, or use c_strcasecmp , " - "gnulib module c-strcase) if you want a locale " - "independent function"); - # endif - #endif - - /* Compare no more than N bytes of strings S1 and S2, ignoring case, - returning less than, equal to or greater than zero if S1 is - lexicographically less than, equal to or greater than S2. - Note: This function cannot work correctly in multibyte locales. */ - #if ! @HAVE_DECL_STRNCASECMP@ - extern int strncasecmp (char const *s1, char const *s2, size_t n) - _GL_ARG_NONNULL ((1, 2)); - #endif - #if defined GNULIB_POSIXCHECK - /* strncasecmp() does not work with multibyte strings: - POSIX says that it operates on "strings", and "string" in POSIX is defined - as a sequence of bytes, not of characters. */ - # undef strncasecmp - # if HAVE_RAW_DECL_STRNCASECMP - _GL_WARN_ON_USE (strncasecmp, "strncasecmp cannot work correctly on character " - "strings in multibyte locales - " - "use mbsncasecmp or mbspcasecmp if you care about " - "internationalization, or use c_strncasecmp , " - "gnulib module c-strcase) if you want a locale " - "independent function"); - # endif - #endif - - - #ifdef __cplusplus - } - #endif - - #endif /* _GL_STRING_H */ - #endif /* _GL_STRING_H */ --- 0 ---- diff -cNr octave-3.4.0/libgnu/strncasecmp.c octave-3.4.1/libgnu/strncasecmp.c *** octave-3.4.0/libgnu/strncasecmp.c 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/strncasecmp.c 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,65 **** - /* -*- buffer-read-only: t -*- vi: set ro: */ - /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ - /* strncasecmp.c -- case insensitive string comparator - Copyright (C) 1998-1999, 2005-2007, 2009-2011 Free Software Foundation, Inc. - - 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, 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - - #include - - /* Specification. */ - #include - - #include - #include - - #define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch)) - - /* Compare no more than N bytes of strings S1 and S2, ignoring case, - returning less than, equal to or greater than zero if S1 is - lexicographically less than, equal to or greater than S2. - Note: This function cannot work correctly in multibyte locales. */ - - int - strncasecmp (const char *s1, const char *s2, size_t n) - { - register const unsigned char *p1 = (const unsigned char *) s1; - register const unsigned char *p2 = (const unsigned char *) s2; - unsigned char c1, c2; - - if (p1 == p2 || n == 0) - return 0; - - do - { - c1 = TOLOWER (*p1); - c2 = TOLOWER (*p2); - - if (--n == 0 || c1 == '\0') - break; - - ++p1; - ++p2; - } - while (c1 == c2); - - if (UCHAR_MAX <= INT_MAX) - return c1 - c2; - else - /* On machines where 'char' and 'int' are types of the same size, the - difference of two 'unsigned char' values - including the sign bit - - doesn't fit in an 'int'. */ - return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); - } --- 0 ---- diff -cNr octave-3.4.0/libgnu/strptime.c octave-3.4.1/libgnu/strptime.c *** octave-3.4.0/libgnu/strptime.c 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/strptime.c 2011-06-15 11:31:08.000000000 -0400 *************** *** 202,208 **** day_of_the_week (struct tm *tm) { /* We know that January 1st 1970 was a Thursday (= 4). Compute the ! the difference between this data in the one on TM and so determine the weekday. */ int corr_year = 1900 + tm->tm_year - (tm->tm_mon < 2); int wday = (-473 --- 202,208 ---- day_of_the_week (struct tm *tm) { /* We know that January 1st 1970 was a Thursday (= 4). Compute the ! difference between this data in the one on TM and so determine the weekday. */ int corr_year = 1900 + tm->tm_year - (tm->tm_mon < 2); int wday = (-473 *************** *** 253,259 **** --- 253,261 ---- int have_mon, have_mday; int have_uweek, have_wweek; int week_no; + #ifdef _NL_CURRENT size_t num_eras; + #endif struct era_entry *era; have_I = is_pm = 0; *************** *** 410,416 **** --- 412,420 ---- break; case 'C': /* Match century number. */ + #ifdef _NL_CURRENT match_century: + #endif get_number (0, 99, 2); century = val; want_xday = 1; *************** *** 646,652 **** --- 650,658 ---- have_wday = 1; break; case 'y': + #ifdef _NL_CURRENT match_year_in_century: + #endif /* Match year within century. */ get_number (0, 99, 2); /* The "Year 2000: The Millennium Rollover" paper suggests that diff -cNr octave-3.4.0/libgnu/sys_select.in.h octave-3.4.1/libgnu/sys_select.in.h *** octave-3.4.0/libgnu/sys_select.in.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/sys_select.in.h 2011-06-15 11:31:08.000000000 -0400 *************** *** 36,42 **** #else ! #ifndef _GL_SYS_SELECT_H #if @HAVE_SYS_SELECT_H@ --- 36,42 ---- #else ! #ifndef _@GUARD_PREFIX@_SYS_SELECT_H #if @HAVE_SYS_SELECT_H@ *************** *** 53,62 **** # include # endif ! /* On Solaris 10, provides an FD_ZERO implementation that relies on memset(), but without including . But in any case avoid namespace pollution on glibc systems. */ ! # if (defined __OpenBSD__ || defined __sun || defined __osf__ || defined __BEOS__) \ && ! defined __GLIBC__ # include # endif --- 53,62 ---- # include # endif ! /* On AIX 7 and Solaris 10, provides an FD_ZERO implementation that relies on memset(), but without including . But in any case avoid namespace pollution on glibc systems. */ ! # if (defined __OpenBSD__ || defined _AIX || defined __sun || defined __osf__ || defined __BEOS__) \ && ! defined __GLIBC__ # include # endif *************** *** 66,73 **** #endif ! #ifndef _GL_SYS_SELECT_H ! #define _GL_SYS_SELECT_H #if !@HAVE_SYS_SELECT_H@ /* A platform that lacks . */ --- 66,73 ---- #endif ! #ifndef _@GUARD_PREFIX@_SYS_SELECT_H ! #define _@GUARD_PREFIX@_SYS_SELECT_H #if !@HAVE_SYS_SELECT_H@ /* A platform that lacks . */ *************** *** 91,97 **** #if @GNULIB_SELECT@ ! # if @HAVE_WINSOCK2_H@ || @REPLACE_SELECT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef select # define select rpl_select --- 91,97 ---- #if @GNULIB_SELECT@ ! # if @REPLACE_SELECT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef select # define select rpl_select *************** *** 117,122 **** #endif ! #endif /* _GL_SYS_SELECT_H */ ! #endif /* _GL_SYS_SELECT_H */ #endif /* OSF/1 */ --- 117,122 ---- #endif ! #endif /* _@GUARD_PREFIX@_SYS_SELECT_H */ ! #endif /* _@GUARD_PREFIX@_SYS_SELECT_H */ #endif /* OSF/1 */ diff -cNr octave-3.4.0/libgnu/sys_socket.in.h octave-3.4.1/libgnu/sys_socket.in.h *** octave-3.4.0/libgnu/sys_socket.in.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/sys_socket.in.h 2011-06-15 11:31:08.000000000 -0400 *************** *** 42,48 **** #else /* Normal invocation convention. */ ! #ifndef _GL_SYS_SOCKET_H #if @HAVE_SYS_SOCKET_H@ --- 42,48 ---- #else /* Normal invocation convention. */ ! #ifndef _@GUARD_PREFIX@_SYS_SOCKET_H #if @HAVE_SYS_SOCKET_H@ *************** *** 52,57 **** --- 52,61 ---- . */ # include + /* On FreeBSD 6.4, defines some macros that assume that NULL + is defined. */ + # include + /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_SYS_SOCKET_H@ *************** *** 59,66 **** #endif ! #ifndef _GL_SYS_SOCKET_H ! #define _GL_SYS_SOCKET_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ --- 63,70 ---- #endif ! #ifndef _@GUARD_PREFIX@_SYS_SOCKET_H ! #define _@GUARD_PREFIX@_SYS_SOCKET_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ *************** *** 106,111 **** --- 110,121 ---- #endif + /* Get struct iovec. */ + /* But avoid namespace pollution on glibc systems. */ + #if ! defined __GLIBC__ + # include + #endif + #if @HAVE_SYS_SOCKET_H@ /* A platform that has . */ *************** *** 144,150 **** suggests that getaddrinfo should be available on all Windows releases. */ - # if @HAVE_WINSOCK2_H@ # include # endif --- 154,159 ---- *************** *** 175,180 **** --- 184,199 ---- # endif + /* Rudimentary 'struct msghdr'; this works as long as you don't try to + access msg_control or msg_controllen. */ + struct msghdr { + void *msg_name; + socklen_t msg_namelen; + struct iovec *msg_iov; + int msg_iovlen; + int msg_flags; + }; + #endif #if @HAVE_WINSOCK2_H@ *************** *** 207,213 **** /* Wrap everything else to use libc file descriptors for sockets. */ ! #if @HAVE_WINSOCK2_H@ && !defined _GL_UNISTD_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef close # define close close_used_without_including_unistd_h --- 226,232 ---- /* Wrap everything else to use libc file descriptors for sockets. */ ! #if @HAVE_WINSOCK2_H@ && !defined _@GUARD_PREFIX@_UNISTD_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef close # define close close_used_without_including_unistd_h *************** *** 217,223 **** # endif #endif ! #if @HAVE_WINSOCK2_H@ && !defined _GL_UNISTD_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gethostname # define gethostname gethostname_used_without_including_unistd_h --- 236,242 ---- # endif #endif ! #if @HAVE_WINSOCK2_H@ && !defined _@GUARD_PREFIX@_UNISTD_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gethostname # define gethostname gethostname_used_without_including_unistd_h *************** *** 659,664 **** # endif #endif ! #endif /* _GL_SYS_SOCKET_H */ ! #endif /* _GL_SYS_SOCKET_H */ #endif --- 678,683 ---- # endif #endif ! #endif /* _@GUARD_PREFIX@_SYS_SOCKET_H */ ! #endif /* _@GUARD_PREFIX@_SYS_SOCKET_H */ #endif diff -cNr octave-3.4.0/libgnu/sys_stat.in.h octave-3.4.1/libgnu/sys_stat.in.h *** octave-3.4.0/libgnu/sys_stat.in.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/sys_stat.in.h 2011-06-15 11:31:08.000000000 -0400 *************** *** 36,42 **** #else /* Normal invocation convention. */ ! #ifndef _GL_SYS_STAT_H /* Get nlink_t. */ #include --- 36,42 ---- #else /* Normal invocation convention. */ ! #ifndef _@GUARD_PREFIX@_SYS_STAT_H /* Get nlink_t. */ #include *************** *** 47,54 **** /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ ! #ifndef _GL_SYS_STAT_H ! #define _GL_SYS_STAT_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ --- 47,54 ---- /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ ! #ifndef _@GUARD_PREFIX@_SYS_STAT_H ! #define _@GUARD_PREFIX@_SYS_STAT_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ *************** *** 357,363 **** #if @GNULIB_FUTIMENS@ ! # if @REPLACE_FUTIMENS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef futimens # define futimens rpl_futimens --- 357,367 ---- #if @GNULIB_FUTIMENS@ ! /* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our futimens ! implementation relies on futimesat, which on Solaris 10 makes an invocation ! to futimens that is meant to invoke the libc's futimens(), not gnulib's ! futimens(). */ ! # if @REPLACE_FUTIMENS@ || (!@HAVE_FUTIMENS@ && defined __sun) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef futimens # define futimens rpl_futimens *************** *** 370,376 **** --- 374,382 ---- # endif _GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2])); # endif + # if @HAVE_FUTIMENS@ _GL_CXXALIASWARN (futimens); + # endif #elif defined GNULIB_POSIXCHECK # undef futimens # if HAVE_RAW_DECL_FUTIMENS *************** *** 614,620 **** #if @GNULIB_UTIMENSAT@ ! # if @REPLACE_UTIMENSAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef utimensat # define utimensat rpl_utimensat --- 620,630 ---- #if @GNULIB_UTIMENSAT@ ! /* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our utimensat ! implementation relies on futimesat, which on Solaris 10 makes an invocation ! to utimensat that is meant to invoke the libc's utimensat(), not gnulib's ! utimensat(). */ ! # if @REPLACE_UTIMENSAT@ || (!@HAVE_UTIMENSAT@ && defined __sun) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef utimensat # define utimensat rpl_utimensat *************** *** 633,639 **** --- 643,651 ---- _GL_CXXALIAS_SYS (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag)); # endif + # if @HAVE_UTIMENSAT@ _GL_CXXALIASWARN (utimensat); + # endif #elif defined GNULIB_POSIXCHECK # undef utimensat # if HAVE_RAW_DECL_UTIMENSAT *************** *** 643,648 **** #endif ! #endif /* _GL_SYS_STAT_H */ ! #endif /* _GL_SYS_STAT_H */ #endif --- 655,660 ---- #endif ! #endif /* _@GUARD_PREFIX@_SYS_STAT_H */ ! #endif /* _@GUARD_PREFIX@_SYS_STAT_H */ #endif diff -cNr octave-3.4.0/libgnu/sys_time.in.h octave-3.4.1/libgnu/sys_time.in.h *** octave-3.4.0/libgnu/sys_time.in.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/sys_time.in.h 2011-06-15 11:31:08.000000000 -0400 *************** *** 25,31 **** #endif @PRAGMA_COLUMNS@ ! #if defined _GL_SYS_TIME_H /* Simply delegate to the system's header, without adding anything. */ # if @HAVE_SYS_TIME_H@ --- 25,31 ---- #endif @PRAGMA_COLUMNS@ ! #if defined _@GUARD_PREFIX@_SYS_TIME_H /* Simply delegate to the system's header, without adding anything. */ # if @HAVE_SYS_TIME_H@ *************** *** 34,40 **** #else ! # define _GL_SYS_TIME_H # if @HAVE_SYS_TIME_H@ # @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@ --- 34,40 ---- #else ! # define _@GUARD_PREFIX@_SYS_TIME_H # if @HAVE_SYS_TIME_H@ # @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@ *************** *** 100,103 **** # endif # endif ! #endif /* _GL_SYS_TIME_H */ --- 100,103 ---- # endif # endif ! #endif /* _@GUARD_PREFIX@_SYS_TIME_H */ diff -cNr octave-3.4.0/libgnu/sys_times.in.h octave-3.4.1/libgnu/sys_times.in.h *** octave-3.4.0/libgnu/sys_times.in.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/sys_times.in.h 2011-06-15 11:31:08.000000000 -0400 *************** *** 22,28 **** /* This file is supposed to be used on platforms where is missing. */ ! #ifndef _GL_SYS_TIMES_H # if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ --- 22,28 ---- /* This file is supposed to be used on platforms where is missing. */ ! #ifndef _@GUARD_PREFIX@_SYS_TIMES_H # if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ *************** *** 33,39 **** # @INCLUDE_NEXT@ @NEXT_SYS_TIMES_H@ # endif ! # define _GL_SYS_TIMES_H /* Get clock_t. But avoid namespace pollution on glibc systems. */ --- 33,39 ---- # @INCLUDE_NEXT@ @NEXT_SYS_TIMES_H@ # endif ! # define _@GUARD_PREFIX@_SYS_TIMES_H /* Get clock_t. But avoid namespace pollution on glibc systems. */ *************** *** 80,83 **** } # endif ! #endif /* _GL_SYS_TIMES_H */ --- 80,83 ---- } # endif ! #endif /* _@GUARD_PREFIX@_SYS_TIMES_H */ diff -cNr octave-3.4.0/libgnu/sys_uio.in.h octave-3.4.1/libgnu/sys_uio.in.h *** octave-3.4.0/libgnu/sys_uio.in.h 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/libgnu/sys_uio.in.h 2011-06-15 11:31:08.000000000 -0400 *************** *** 0 **** --- 1,66 ---- + /* -*- buffer-read-only: t -*- vi: set ro: */ + /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ + /* Substitute for . + Copyright (C) 2011 Free Software Foundation, Inc. + + 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + + # if __GNUC__ >= 3 + @PRAGMA_SYSTEM_HEADER@ + # endif + @PRAGMA_COLUMNS@ + + #ifndef _@GUARD_PREFIX@_SYS_UIO_H + + #if @HAVE_SYS_UIO_H@ + + /* On OpenBSD 4.4, assumes prior inclusion of . */ + # include + + /* The include_next requires a split double-inclusion guard. */ + # @INCLUDE_NEXT@ @NEXT_SYS_UIO_H@ + + #endif + + #ifndef _@GUARD_PREFIX@_SYS_UIO_H + #define _@GUARD_PREFIX@_SYS_UIO_H + + #if !@HAVE_SYS_UIO_H@ + /* A platform that lacks . */ + /* Get 'ssize_t'. */ + # include + + # ifdef __cplusplus + extern "C" { + # endif + + # if !GNULIB_defined_struct_iovec + /* All known platforms that lack also lack any declaration + of struct iovec in any other header. */ + struct iovec { + void *iov_base; + size_t iov_len; + }; + # define GNULIB_defined_struct_iovec 1 + # endif + + # ifdef __cplusplus + } + # endif + + #endif + + #endif /* _@GUARD_PREFIX@_SYS_UIO_H */ + #endif /* _@GUARD_PREFIX@_SYS_UIO_H */ diff -cNr octave-3.4.0/libgnu/time.in.h octave-3.4.1/libgnu/time.in.h *** octave-3.4.0/libgnu/time.in.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/time.in.h 2011-06-15 11:31:08.000000000 -0400 *************** *** 30,42 **** without adding our own declarations. */ #if (defined __need_time_t || defined __need_clock_t \ || defined __need_timespec \ ! || defined _GL_TIME_H) # @INCLUDE_NEXT@ @NEXT_TIME_H@ #else ! # define _GL_TIME_H # @INCLUDE_NEXT@ @NEXT_TIME_H@ --- 30,42 ---- without adding our own declarations. */ #if (defined __need_time_t || defined __need_clock_t \ || defined __need_timespec \ ! || defined _@GUARD_PREFIX@_TIME_H) # @INCLUDE_NEXT@ @NEXT_TIME_H@ #else ! # define _@GUARD_PREFIX@_TIME_H # @INCLUDE_NEXT@ @NEXT_TIME_H@ diff -cNr octave-3.4.0/libgnu/unistd.in.h octave-3.4.1/libgnu/unistd.in.h *** octave-3.4.0/libgnu/unistd.in.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/unistd.in.h 2011-06-15 11:31:08.000000000 -0400 *************** *** 38,44 **** # define _GL_WINSOCK2_H_WITNESS /* Normal invocation. */ ! #elif !defined _GL_UNISTD_H /* The include_next requires a split double-inclusion guard. */ #if @HAVE_UNISTD_H@ --- 38,44 ---- # define _GL_WINSOCK2_H_WITNESS /* Normal invocation. */ ! #elif !defined _@GUARD_PREFIX@_UNISTD_H /* The include_next requires a split double-inclusion guard. */ #if @HAVE_UNISTD_H@ *************** *** 53,60 **** # undef _GL_INCLUDING_WINSOCK2_H #endif ! #if !defined _GL_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H ! #define _GL_UNISTD_H /* NetBSD 5.0 mis-defines NULL. Also get size_t. */ #include --- 53,60 ---- # undef _GL_INCLUDING_WINSOCK2_H #endif ! #if !defined _@GUARD_PREFIX@_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H ! #define _@GUARD_PREFIX@_UNISTD_H /* NetBSD 5.0 mis-defines NULL. Also get size_t. */ #include *************** *** 99,105 **** # include #endif ! #if (@GNULIB_WRITE@ || @GNULIB_READLINK@ || @GNULIB_READLINKAT@ \ || @GNULIB_PREAD@ || @GNULIB_PWRITE@ || defined GNULIB_POSIXCHECK) /* Get ssize_t. */ # include --- 99,106 ---- # include #endif ! #if (@GNULIB_READ@ || @GNULIB_WRITE@ \ ! || @GNULIB_READLINK@ || @GNULIB_READLINKAT@ \ || @GNULIB_PREAD@ || @GNULIB_PWRITE@ || defined GNULIB_POSIXCHECK) /* Get ssize_t. */ # include *************** *** 121,127 **** #if @GNULIB_GETHOSTNAME@ /* Get all possible declarations of gethostname(). */ # if @UNISTD_H_HAVE_WINSOCK2_H@ ! # if !defined _GL_SYS_SOCKET_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef socket # define socket socket_used_without_including_sys_socket_h --- 122,128 ---- #if @GNULIB_GETHOSTNAME@ /* Get all possible declarations of gethostname(). */ # if @UNISTD_H_HAVE_WINSOCK2_H@ ! # if !defined _@GUARD_PREFIX@_SYS_SOCKET_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef socket # define socket socket_used_without_including_sys_socket_h *************** *** 182,188 **** "shutdown() used without including "); # endif # endif ! # if !defined _GL_SYS_SELECT_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef select # define select select_used_without_including_sys_select_h --- 183,189 ---- "shutdown() used without including "); # endif # endif ! # if !defined _@GUARD_PREFIX@_SYS_SELECT_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef select # define select select_used_without_including_sys_select_h *************** *** 872,877 **** --- 873,894 ---- #endif + #if @GNULIB_GROUP_MEMBER@ + /* Determine whether group id is in calling user's group list. */ + # if !@HAVE_GROUP_MEMBER@ + _GL_FUNCDECL_SYS (group_member, int, (gid_t gid)); + # endif + _GL_CXXALIAS_SYS (group_member, int, (gid_t gid)); + _GL_CXXALIASWARN (group_member); + #elif defined GNULIB_POSIXCHECK + # undef group_member + # if HAVE_RAW_DECL_GROUP_MEMBER + _GL_WARN_ON_USE (group_member, "group_member is unportable - " + "use gnulib module group-member for portability"); + # endif + #endif + + #if @GNULIB_LCHOWN@ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE to GID (if GID is not -1). Do not follow symbolic links. *************** *** 1107,1112 **** --- 1124,1151 ---- #endif + #if @GNULIB_READ@ + /* Read up to COUNT bytes from file descriptor FD into the buffer starting + at BUF. See the POSIX:2001 specification + . */ + # if @REPLACE_READ@ && @GNULIB_UNISTD_H_NONBLOCKING@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef read + # define read rpl_read + # endif + _GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count) + _GL_ARG_NONNULL ((2))); + _GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count)); + # else + /* Need to cast, because on mingw, the third parameter is + unsigned int count + and the return type is 'int'. */ + _GL_CXXALIAS_SYS_CAST (read, ssize_t, (int fd, void *buf, size_t count)); + # endif + _GL_CXXALIASWARN (read); + #endif + + #if @GNULIB_READLINK@ /* Read the contents of the symbolic link FILE and place the first BUFSIZE bytes of it into BUF. Return the number of bytes placed into BUF if *************** *** 1361,1367 **** /* Write up to COUNT bytes starting at BUF to file descriptor FD. See the POSIX:2001 specification . */ ! # if @REPLACE_WRITE@ && @GNULIB_UNISTD_H_SIGPIPE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write # define write rpl_write --- 1400,1406 ---- /* Write up to COUNT bytes starting at BUF to file descriptor FD. See the POSIX:2001 specification . */ ! # if @REPLACE_WRITE@ && (@GNULIB_UNISTD_H_NONBLOCKING@ || @GNULIB_UNISTD_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write # define write rpl_write *************** *** 1379,1383 **** #endif ! #endif /* _GL_UNISTD_H */ ! #endif /* _GL_UNISTD_H */ --- 1418,1422 ---- #endif ! #endif /* _@GUARD_PREFIX@_UNISTD_H */ ! #endif /* _@GUARD_PREFIX@_UNISTD_H */ diff -cNr octave-3.4.0/libgnu/unlinkat.c octave-3.4.1/libgnu/unlinkat.c *** octave-3.4.0/libgnu/unlinkat.c 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/unlinkat.c 2011-06-15 11:31:08.000000000 -0400 *************** *** 28,33 **** --- 28,34 ---- #include #include + #include "dosname.h" #include "openat.h" #if HAVE_UNLINKAT diff -cNr octave-3.4.0/libgnu/unlink.c octave-3.4.1/libgnu/unlink.c *** octave-3.4.0/libgnu/unlink.c 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/unlink.c 2011-06-15 11:31:08.000000000 -0400 *************** *** 26,31 **** --- 26,33 ---- #include #include + #include "dosname.h" + #undef unlink /* Remove file NAME. diff -cNr octave-3.4.0/libgnu/vasnprintf.c octave-3.4.1/libgnu/vasnprintf.c *** octave-3.4.0/libgnu/vasnprintf.c 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/vasnprintf.c 2011-06-15 11:31:08.000000000 -0400 *************** *** 937,947 **** abort (); m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo; } ! #if 0 /* On FreeBSD 6.1/x86, 'long double' numbers sometimes have excess ! precision. */ if (!(y == 0.0L)) abort (); ! #endif /* Normalise. */ while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0) m.nlimbs--; --- 937,947 ---- abort (); m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo; } ! # if 0 /* On FreeBSD 6.1/x86, 'long double' numbers sometimes have excess ! precision. */ if (!(y == 0.0L)) abort (); ! # endif /* Normalise. */ while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0) m.nlimbs--; diff -cNr octave-3.4.0/libgnu/vasnprintf.h octave-3.4.1/libgnu/vasnprintf.h *** octave-3.4.0/libgnu/vasnprintf.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/vasnprintf.h 2011-06-15 11:31:08.000000000 -0400 *************** *** 26,41 **** /* Get size_t. */ #include - #ifndef __attribute__ /* The __attribute__ feature is available in gcc versions 2.5 and later. The __-protected variants of the attributes 'format' and 'printf' are accepted by gcc versions 2.6.4 (effectively 2.7) and later. ! We enable __attribute__ only if these are supported too, because gnulib and libintl do '#define printf __printf__' when they override the 'printf' function. */ ! # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) ! # define __attribute__(Spec) /* empty */ ! # endif #endif #ifdef __cplusplus --- 26,41 ---- /* Get size_t. */ #include /* The __attribute__ feature is available in gcc versions 2.5 and later. The __-protected variants of the attributes 'format' and 'printf' are accepted by gcc versions 2.6.4 (effectively 2.7) and later. ! We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because gnulib and libintl do '#define printf __printf__' when they override the 'printf' function. */ ! #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) ! # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) ! #else ! # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ #endif #ifdef __cplusplus *************** *** 71,79 **** # define vasnprintf rpl_vasnprintf #endif extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...) ! __attribute__ ((__format__ (__printf__, 3, 4))); extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args) ! __attribute__ ((__format__ (__printf__, 3, 0))); #ifdef __cplusplus } --- 71,79 ---- # define vasnprintf rpl_vasnprintf #endif extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...) ! _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 4)); extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args) ! _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 0)); #ifdef __cplusplus } diff -cNr octave-3.4.0/libgnu/verify.h octave-3.4.1/libgnu/verify.h *** octave-3.4.0/libgnu/verify.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/verify.h 2011-06-15 11:31:09.000000000 -0400 *************** *** 19,39 **** /* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ ! #ifndef VERIFY_H ! # define VERIFY_H 1 /* Each of these macros verifies that its argument R is nonzero. To be portable, R should be an integer constant expression. Unlike assert (R), there is no run-time overhead. ! There are two macros, since no single macro can be used in all ! contexts in C. verify_true (R) is for scalar contexts, including ! integer constant expression contexts. verify (R) is for declaration ! contexts, e.g., the top level. ! Symbols ending in "__" are private to this header. ! ! The code below uses several ideas. * The first step is ((R) ? 1 : -1). Given an expression R, of integral or boolean or floating-point type, this yields an --- 19,59 ---- /* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ ! #ifndef _GL_VERIFY_H ! # define _GL_VERIFY_H ! ! ! /* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert works as per the ! C1X draft N1548 section 6.7.10. This is supported by GCC 4.6.0 and ! later, in C mode, and its use here generates easier-to-read diagnostics ! when verify (R) fails. ! ! Define _GL_HAVE_STATIC_ASSERT to 1 if static_assert works as per the ! C++0X draft N3242 section 7.(4). ! This will likely be supported by future GCC versions, in C++ mode. ! ! Use this only with GCC. If we were willing to slow 'configure' ! down we could also use it with other compilers, but since this ! affects only the quality of diagnostics, why bother? */ ! # if (4 < __GNUC__ || (__GNUC__ == 4 && 6 <= __GNUC_MINOR__)) && !defined __cplusplus ! # define _GL_HAVE__STATIC_ASSERT 1 ! # endif ! /* The condition (99 < __GNUC__) is temporary, until we know about the ! first G++ release that supports static_assert. */ ! # if (99 < __GNUC__) && defined __cplusplus ! # define _GL_HAVE_STATIC_ASSERT 1 ! # endif /* Each of these macros verifies that its argument R is nonzero. To be portable, R should be an integer constant expression. Unlike assert (R), there is no run-time overhead. ! If _Static_assert works, verify (R) uses it directly. Similarly, ! _GL_VERIFY_TRUE works by packaging a _Static_assert inside a struct ! that is an operand of sizeof. ! The code below uses several ideas for C++ compilers, and for C ! compilers that do not support _Static_assert: * The first step is ((R) ? 1 : -1). Given an expression R, of integral or boolean or floating-point type, this yields an *************** *** 41,47 **** constant and nonnegative. * Next this expression W is wrapped in a type ! struct verify_type__ { unsigned int verify_error_if_negative_size__: W; }. If W is negative, this yields a compile-time error. No compiler can deal with a bit-field of negative size. --- 61,69 ---- constant and nonnegative. * Next this expression W is wrapped in a type ! struct _gl_verify_type { ! unsigned int _gl_verify_error_if_negative: W; ! }. If W is negative, this yields a compile-time error. No compiler can deal with a bit-field of negative size. *************** *** 55,61 **** void function (int n) { verify (n < 0); } ! * For the verify macro, the struct verify_type__ will need to somehow be embedded into a declaration. To be portable, this declaration must declare an object, a constant, a function, or a typedef name. If the declared entity uses the type directly, --- 77,83 ---- void function (int n) { verify (n < 0); } ! * For the verify macro, the struct _gl_verify_type will need to somehow be embedded into a declaration. To be portable, this declaration must declare an object, a constant, a function, or a typedef name. If the declared entity uses the type directly, *************** *** 93,103 **** Which of the following alternatives can be used? extern int dummy [sizeof (struct {...})]; ! extern int dummy [sizeof (struct verify_type__ {...})]; extern void dummy (int [sizeof (struct {...})]); ! extern void dummy (int [sizeof (struct verify_type__ {...})]); extern int (*dummy (void)) [sizeof (struct {...})]; ! extern int (*dummy (void)) [sizeof (struct verify_type__ {...})]; In the second and sixth case, the struct type is exported to the outer scope; two such declarations therefore collide. GCC warns --- 115,125 ---- Which of the following alternatives can be used? extern int dummy [sizeof (struct {...})]; ! extern int dummy [sizeof (struct _gl_verify_type {...})]; extern void dummy (int [sizeof (struct {...})]); ! extern void dummy (int [sizeof (struct _gl_verify_type {...})]); extern int (*dummy (void)) [sizeof (struct {...})]; ! extern int (*dummy (void)) [sizeof (struct _gl_verify_type {...})]; In the second and sixth case, the struct type is exported to the outer scope; two such declarations therefore collide. GCC warns *************** *** 111,125 **** __COUNTER__ macro that can let us generate unique identifiers for each dummy function, to suppress this warning. ! * This implementation exploits the fact that GCC does not warn about ! the last declaration mentioned above. If a future version of GCC ! introduces a warning for this, the problem could be worked around ! by using code specialized to GCC, just as __COUNTER__ is already ! being used if available. ! ! #if 4 <= __GNUC__ ! # define verify(R) [another version to keep GCC happy] ! #endif * In C++, any struct definition inside sizeof is invalid. Use a template type to work around the problem. */ --- 133,141 ---- __COUNTER__ macro that can let us generate unique identifiers for each dummy function, to suppress this warning. ! * This implementation exploits the fact that older versions of GCC, ! which do not support _Static_assert, also do not warn about the ! last declaration mentioned above. * In C++, any struct definition inside sizeof is invalid. Use a template type to work around the problem. */ *************** *** 142,165 **** possible. */ # define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER) ! /* Verify requirement R at compile-time, as an integer constant expression. ! Return 1. */ # ifdef __cplusplus template ! struct verify_type__ { unsigned int verify_error_if_negative_size__: w; }; ! # define verify_true(R) \ ! (!!sizeof (verify_type__<(R) ? 1 : -1>)) # else ! # define verify_true(R) \ ! (!!sizeof \ ! (struct { unsigned int verify_error_if_negative_size__: (R) ? 1 : -1; })) # endif /* Verify requirement R at compile-time, as a declaration without a trailing ';'. */ ! # define verify(R) \ ! extern int (* _GL_GENSYM (verify_function) (void)) [verify_true (R)] #endif --- 158,237 ---- possible. */ # define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER) ! /* Verify requirement R at compile-time, as an integer constant expression ! that returns 1. If R is false, fail at compile-time, preferably ! with a diagnostic that includes the string-literal DIAGNOSTIC. */ ! ! # define _GL_VERIFY_TRUE(R, DIAGNOSTIC) \ ! (!!sizeof (_GL_VERIFY_TYPE (R, DIAGNOSTIC))) # ifdef __cplusplus + # if !GNULIB_defined_struct__gl_verify_type template ! struct _gl_verify_type { ! unsigned int _gl_verify_error_if_negative: w; ! }; ! # define GNULIB_defined_struct__gl_verify_type 1 ! # endif ! # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ ! _gl_verify_type<(R) ? 1 : -1> ! # elif defined _GL_HAVE__STATIC_ASSERT ! # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ ! struct { \ ! _Static_assert (R, DIAGNOSTIC); \ ! int _gl_dummy; \ ! } # else ! # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ ! struct { unsigned int _gl_verify_error_if_negative: (R) ? 1 : -1; } # endif /* Verify requirement R at compile-time, as a declaration without a + trailing ';'. If R is false, fail at compile-time, preferably + with a diagnostic that includes the string-literal DIAGNOSTIC. + + Unfortunately, unlike C1X, this implementation must appear as an + ordinary declaration, and cannot appear inside struct { ... }. */ + + # ifdef _GL_HAVE__STATIC_ASSERT + # define _GL_VERIFY _Static_assert + # else + # define _GL_VERIFY(R, DIAGNOSTIC) \ + extern int (*_GL_GENSYM (_gl_verify_function) (void)) \ + [_GL_VERIFY_TRUE (R, DIAGNOSTIC)] + # endif + + /* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */ + # ifdef _GL_STATIC_ASSERT_H + # if !defined _GL_HAVE__STATIC_ASSERT && !defined _Static_assert + # define _Static_assert(R, DIAGNOSTIC) _GL_VERIFY (R, DIAGNOSTIC) + # endif + # if !defined _GL_HAVE_STATIC_ASSERT && !defined static_assert + # define static_assert _Static_assert /* Draft C1X requires this #define. */ + # endif + # endif + + /* @assert.h omit start@ */ + + /* Each of these macros verifies that its argument R is nonzero. To + be portable, R should be an integer constant expression. Unlike + assert (R), there is no run-time overhead. + + There are two macros, since no single macro can be used in all + contexts in C. verify_true (R) is for scalar contexts, including + integer constant expression contexts. verify (R) is for declaration + contexts, e.g., the top level. */ + + /* Verify requirement R at compile-time, as an integer constant expression. + Return 1. */ + + # define verify_true(R) _GL_VERIFY_TRUE (R, "verify_true (" #R ")") + + /* Verify requirement R at compile-time, as a declaration without a trailing ';'. */ ! # define verify(R) _GL_VERIFY (R, "verify (" #R ")") ! ! /* @assert.h omit end@ */ #endif diff -cNr octave-3.4.0/libgnu/wchar.in.h octave-3.4.1/libgnu/wchar.in.h *** octave-3.4.0/libgnu/wchar.in.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/wchar.in.h 2011-06-15 11:31:09.000000000 -0400 *************** *** 51,57 **** #else /* Normal invocation convention. */ ! #ifndef _GL_WCHAR_H #define _GL_ALREADY_INCLUDING_WCHAR_H --- 51,57 ---- #else /* Normal invocation convention. */ ! #ifndef _@GUARD_PREFIX@_WCHAR_H #define _GL_ALREADY_INCLUDING_WCHAR_H *************** *** 63,71 **** . BSD/OS 4.0.1 has a bug: , and must be included before . But avoid namespace pollution on glibc systems. */ ! #ifndef __GLIBC__ # include # include # include #endif --- 63,75 ---- . BSD/OS 4.0.1 has a bug: , and must be included before . + In some builds of uClibc, is nonexistent and wchar_t is defined + by . But avoid namespace pollution on glibc systems. */ ! #if !(defined __GLIBC__ && !defined __UCLIBC__) # include + #endif + #ifndef __GLIBC__ # include # include #endif *************** *** 79,86 **** #undef _GL_ALREADY_INCLUDING_WCHAR_H ! #ifndef _GL_WCHAR_H ! #define _GL_WCHAR_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ --- 83,90 ---- #undef _GL_ALREADY_INCLUDING_WCHAR_H ! #ifndef _@GUARD_PREFIX@_WCHAR_H ! #define _@GUARD_PREFIX@_WCHAR_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ *************** *** 437,444 **** # if !@HAVE_WMEMCHR@ _GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n)); # endif ! _GL_CXXALIAS_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n)); _GL_CXXALIASWARN (wmemchr); #elif defined GNULIB_POSIXCHECK # undef wmemchr # if HAVE_RAW_DECL_WMEMCHR --- 441,462 ---- # if !@HAVE_WMEMCHR@ _GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n)); # endif ! /* On some systems, this function is defined as an overloaded function: ! extern "C++" { ! const wchar_t * std::wmemchr (const wchar_t *, wchar_t, size_t); ! wchar_t * std::wmemchr (wchar_t *, wchar_t, size_t); ! } */ ! _GL_CXXALIAS_SYS_CAST2 (wmemchr, ! wchar_t *, (const wchar_t *, wchar_t, size_t), ! const wchar_t *, (const wchar_t *, wchar_t, size_t)); ! # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ ! && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) ! _GL_CXXALIASWARN1 (wmemchr, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); ! _GL_CXXALIASWARN1 (wmemchr, const wchar_t *, ! (const wchar_t *s, wchar_t c, size_t n)); ! # else _GL_CXXALIASWARN (wmemchr); + # endif #elif defined GNULIB_POSIXCHECK # undef wmemchr # if HAVE_RAW_DECL_WMEMCHR *************** *** 778,785 **** # if !@HAVE_WCSCHR@ _GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc)); # endif ! _GL_CXXALIAS_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc)); _GL_CXXALIASWARN (wcschr); #elif defined GNULIB_POSIXCHECK # undef wcschr # if HAVE_RAW_DECL_WCSCHR --- 796,816 ---- # if !@HAVE_WCSCHR@ _GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc)); # endif ! /* On some systems, this function is defined as an overloaded function: ! extern "C++" { ! const wchar_t * std::wcschr (const wchar_t *, wchar_t); ! wchar_t * std::wcschr (wchar_t *, wchar_t); ! } */ ! _GL_CXXALIAS_SYS_CAST2 (wcschr, ! wchar_t *, (const wchar_t *, wchar_t), ! const wchar_t *, (const wchar_t *, wchar_t)); ! # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ ! && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) ! _GL_CXXALIASWARN1 (wcschr, wchar_t *, (wchar_t *wcs, wchar_t wc)); ! _GL_CXXALIASWARN1 (wcschr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); ! # else _GL_CXXALIASWARN (wcschr); + # endif #elif defined GNULIB_POSIXCHECK # undef wcschr # if HAVE_RAW_DECL_WCSCHR *************** *** 794,801 **** # if !@HAVE_WCSRCHR@ _GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc)); # endif ! _GL_CXXALIAS_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc)); _GL_CXXALIASWARN (wcsrchr); #elif defined GNULIB_POSIXCHECK # undef wcsrchr # if HAVE_RAW_DECL_WCSRCHR --- 825,845 ---- # if !@HAVE_WCSRCHR@ _GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc)); # endif ! /* On some systems, this function is defined as an overloaded function: ! extern "C++" { ! const wchar_t * std::wcsrchr (const wchar_t *, wchar_t); ! wchar_t * std::wcsrchr (wchar_t *, wchar_t); ! } */ ! _GL_CXXALIAS_SYS_CAST2 (wcsrchr, ! wchar_t *, (const wchar_t *, wchar_t), ! const wchar_t *, (const wchar_t *, wchar_t)); ! # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ ! && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) ! _GL_CXXALIASWARN1 (wcsrchr, wchar_t *, (wchar_t *wcs, wchar_t wc)); ! _GL_CXXALIASWARN1 (wcsrchr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); ! # else _GL_CXXALIASWARN (wcsrchr); + # endif #elif defined GNULIB_POSIXCHECK # undef wcsrchr # if HAVE_RAW_DECL_WCSRCHR *************** *** 845,853 **** _GL_FUNCDECL_SYS (wcspbrk, wchar_t *, (const wchar_t *wcs, const wchar_t *accept)); # endif ! _GL_CXXALIAS_SYS (wcspbrk, wchar_t *, ! (const wchar_t *wcs, const wchar_t *accept)); _GL_CXXALIASWARN (wcspbrk); #elif defined GNULIB_POSIXCHECK # undef wcspbrk # if HAVE_RAW_DECL_WCSPBRK --- 889,911 ---- _GL_FUNCDECL_SYS (wcspbrk, wchar_t *, (const wchar_t *wcs, const wchar_t *accept)); # endif ! /* On some systems, this function is defined as an overloaded function: ! extern "C++" { ! const wchar_t * std::wcspbrk (const wchar_t *, const wchar_t *); ! wchar_t * std::wcspbrk (wchar_t *, const wchar_t *); ! } */ ! _GL_CXXALIAS_SYS_CAST2 (wcspbrk, ! wchar_t *, (const wchar_t *, const wchar_t *), ! const wchar_t *, (const wchar_t *, const wchar_t *)); ! # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ ! && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) ! _GL_CXXALIASWARN1 (wcspbrk, wchar_t *, ! (wchar_t *wcs, const wchar_t *accept)); ! _GL_CXXALIASWARN1 (wcspbrk, const wchar_t *, ! (const wchar_t *wcs, const wchar_t *accept)); ! # else _GL_CXXALIASWARN (wcspbrk); + # endif #elif defined GNULIB_POSIXCHECK # undef wcspbrk # if HAVE_RAW_DECL_WCSPBRK *************** *** 863,871 **** _GL_FUNCDECL_SYS (wcsstr, wchar_t *, (const wchar_t *haystack, const wchar_t *needle)); # endif ! _GL_CXXALIAS_SYS (wcsstr, wchar_t *, ! (const wchar_t *haystack, const wchar_t *needle)); _GL_CXXALIASWARN (wcsstr); #elif defined GNULIB_POSIXCHECK # undef wcsstr # if HAVE_RAW_DECL_WCSSTR --- 921,943 ---- _GL_FUNCDECL_SYS (wcsstr, wchar_t *, (const wchar_t *haystack, const wchar_t *needle)); # endif ! /* On some systems, this function is defined as an overloaded function: ! extern "C++" { ! const wchar_t * std::wcsstr (const wchar_t *, const wchar_t *); ! wchar_t * std::wcsstr (wchar_t *, const wchar_t *); ! } */ ! _GL_CXXALIAS_SYS_CAST2 (wcsstr, ! wchar_t *, (const wchar_t *, const wchar_t *), ! const wchar_t *, (const wchar_t *, const wchar_t *)); ! # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ ! && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) ! _GL_CXXALIASWARN1 (wcsstr, wchar_t *, ! (wchar_t *haystack, const wchar_t *needle)); ! _GL_CXXALIASWARN1 (wcsstr, const wchar_t *, ! (const wchar_t *haystack, const wchar_t *needle)); ! # else _GL_CXXALIASWARN (wcsstr); + # endif #elif defined GNULIB_POSIXCHECK # undef wcsstr # if HAVE_RAW_DECL_WCSSTR *************** *** 919,924 **** #endif ! #endif /* _GL_WCHAR_H */ ! #endif /* _GL_WCHAR_H */ #endif --- 991,996 ---- #endif ! #endif /* _@GUARD_PREFIX@_WCHAR_H */ ! #endif /* _@GUARD_PREFIX@_WCHAR_H */ #endif diff -cNr octave-3.4.0/libgnu/wctype.in.h octave-3.4.1/libgnu/wctype.in.h *** octave-3.4.0/libgnu/wctype.in.h 2011-02-08 05:03:19.000000000 -0500 --- octave-3.4.1/libgnu/wctype.in.h 2011-06-15 11:31:09.000000000 -0400 *************** *** 28,34 **** * wctrans_t, and wctype_t are not yet implemented. */ ! #ifndef _GL_WCTYPE_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ --- 28,34 ---- * wctrans_t, and wctype_t are not yet implemented. */ ! #ifndef _@GUARD_PREFIX@_WCTYPE_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ *************** *** 54,66 **** # @INCLUDE_NEXT@ @NEXT_WCTYPE_H@ #endif ! #ifndef _GL_WCTYPE_H ! #define _GL_WCTYPE_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Define wint_t and WEOF. (Also done in wchar.in.h.) */ #if !@HAVE_WINT_T@ && !defined wint_t # define wint_t int --- 54,79 ---- # @INCLUDE_NEXT@ @NEXT_WCTYPE_H@ #endif ! #ifndef _@GUARD_PREFIX@_WCTYPE_H ! #define _@GUARD_PREFIX@_WCTYPE_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ + /* Solaris 2.6 includes which includes which + #defines a number of identifiers in the application namespace. Revert + these #defines. */ + #ifdef __sun + # undef multibyte + # undef eucw1 + # undef eucw2 + # undef eucw3 + # undef scrw1 + # undef scrw2 + # undef scrw3 + #endif + /* Define wint_t and WEOF. (Also done in wchar.in.h.) */ #if !@HAVE_WINT_T@ && !defined wint_t # define wint_t int *************** *** 281,287 **** return (wc >= 'a' && wc <= 'z' ? wc - 'a' + 'A' : wc); } ! # elif ! @HAVE_ISWBLANK@ || @REPLACE_ISWBLANK@ /* Only the iswblank function is missing. */ # if @REPLACE_ISWBLANK@ --- 294,300 ---- return (wc >= 'a' && wc <= 'z' ? wc - 'a' + 'A' : wc); } ! # elif @GNULIB_ISWBLANK@ && (! @HAVE_ISWBLANK@ || @REPLACE_ISWBLANK@) /* Only the iswblank function is missing. */ # if @REPLACE_ISWBLANK@ *************** *** 336,342 **** #if @REPLACE_ISWCNTRL@ _GL_CXXALIAS_RPL (iswalnum, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswalpha, int, (wint_t wc)); - _GL_CXXALIAS_RPL (iswblank, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswcntrl, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswdigit, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswgraph, int, (wint_t wc)); --- 349,354 ---- *************** *** 349,359 **** #else _GL_CXXALIAS_SYS (iswalnum, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswalpha, int, (wint_t wc)); - # if @REPLACE_ISWBLANK@ - _GL_CXXALIAS_RPL (iswblank, int, (wint_t wc)); - # else - _GL_CXXALIAS_SYS (iswblank, int, (wint_t wc)); - # endif _GL_CXXALIAS_SYS (iswcntrl, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswdigit, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswgraph, int, (wint_t wc)); --- 361,366 ---- *************** *** 366,372 **** #endif _GL_CXXALIASWARN (iswalnum); _GL_CXXALIASWARN (iswalpha); - _GL_CXXALIASWARN (iswblank); _GL_CXXALIASWARN (iswcntrl); _GL_CXXALIASWARN (iswdigit); _GL_CXXALIASWARN (iswgraph); --- 373,378 ---- *************** *** 377,382 **** --- 383,436 ---- _GL_CXXALIASWARN (iswupper); _GL_CXXALIASWARN (iswxdigit); + #if @GNULIB_ISWBLANK@ + # if @REPLACE_ISWCNTRL@ || @REPLACE_ISWBLANK@ + _GL_CXXALIAS_RPL (iswblank, int, (wint_t wc)); + # else + _GL_CXXALIAS_SYS (iswblank, int, (wint_t wc)); + # endif + _GL_CXXALIASWARN (iswblank); + #endif + + #if !@HAVE_WCTYPE_T@ + # if !GNULIB_defined_wctype_t + typedef void * wctype_t; + # define GNULIB_defined_wctype_t 1 + # endif + #endif + + /* Get a descriptor for a wide character property. */ + #if @GNULIB_WCTYPE@ + # if !@HAVE_WCTYPE_T@ + _GL_FUNCDECL_SYS (wctype, wctype_t, (const char *name)); + # endif + _GL_CXXALIAS_SYS (wctype, wctype_t, (const char *name)); + _GL_CXXALIASWARN (wctype); + #elif defined GNULIB_POSIXCHECK + # undef wctype + # if HAVE_RAW_DECL_WCTYPE + _GL_WARN_ON_USE (wctype, "wctype is unportable - " + "use gnulib module wctype for portability"); + # endif + #endif + + /* Test whether a wide character has a given property. + The argument WC must be either a wchar_t value or WEOF. + The argument DESC must have been returned by the wctype() function. */ + #if @GNULIB_ISWCTYPE@ + # if !@HAVE_WCTYPE_T@ + _GL_FUNCDECL_SYS (iswctype, int, (wint_t wc, wctype_t desc)); + # endif + _GL_CXXALIAS_SYS (iswctype, int, (wint_t wc, wctype_t desc)); + _GL_CXXALIASWARN (iswctype); + #elif defined GNULIB_POSIXCHECK + # undef iswctype + # if HAVE_RAW_DECL_ISWCTYPE + _GL_WARN_ON_USE (iswctype, "iswctype is unportable - " + "use gnulib module iswctype for portability"); + # endif + #endif + #if @REPLACE_ISWCNTRL@ || defined __MINGW32__ _GL_CXXALIAS_RPL (towlower, wint_t, (wint_t wc)); _GL_CXXALIAS_RPL (towupper, wint_t, (wint_t wc)); *************** *** 387,392 **** _GL_CXXALIASWARN (towlower); _GL_CXXALIASWARN (towupper); ! #endif /* _GL_WCTYPE_H */ ! #endif /* _GL_WCTYPE_H */ --- 441,485 ---- _GL_CXXALIASWARN (towlower); _GL_CXXALIASWARN (towupper); + #if !@HAVE_WCTRANS_T@ + # if !GNULIB_defined_wctrans_t + typedef void * wctrans_t; + # define GNULIB_defined_wctrans_t 1 + # endif + #endif + + /* Get a descriptor for a wide character case conversion. */ + #if @GNULIB_WCTRANS@ + # if !@HAVE_WCTRANS_T@ + _GL_FUNCDECL_SYS (wctrans, wctrans_t, (const char *name)); + # endif + _GL_CXXALIAS_SYS (wctrans, wctrans_t, (const char *name)); + _GL_CXXALIASWARN (wctrans); + #elif defined GNULIB_POSIXCHECK + # undef wctrans + # if HAVE_RAW_DECL_WCTRANS + _GL_WARN_ON_USE (wctrans, "wctrans is unportable - " + "use gnulib module wctrans for portability"); + # endif + #endif + + /* Perform a given case conversion on a wide character. + The argument WC must be either a wchar_t value or WEOF. + The argument DESC must have been returned by the wctrans() function. */ + #if @GNULIB_TOWCTRANS@ + # if !@HAVE_WCTRANS_T@ + _GL_FUNCDECL_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc)); + # endif + _GL_CXXALIAS_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc)); + _GL_CXXALIASWARN (towctrans); + #elif defined GNULIB_POSIXCHECK + # undef towctrans + # if HAVE_RAW_DECL_TOWCTRANS + _GL_WARN_ON_USE (towctrans, "towctrans is unportable - " + "use gnulib module towctrans for portability"); + # endif + #endif + ! #endif /* _@GUARD_PREFIX@_WCTYPE_H */ ! #endif /* _@GUARD_PREFIX@_WCTYPE_H */ diff -cNr octave-3.4.0/liboctave/Array.cc octave-3.4.1/liboctave/Array.cc *** octave-3.4.0/liboctave/Array.cc 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/liboctave/Array.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 2447,2456 **** octave_idx_type nnr = dv (0); octave_idx_type nnc = dv (1); ! if (nnr == 0 || nnc == 0) ! ; // do nothing else if (nnr != 1 && nnc != 1) { if (k > 0) nnc -= k; else if (k < 0) --- 2447,2457 ---- octave_idx_type nnr = dv (0); octave_idx_type nnc = dv (1); ! if (nnr == 0 && nnc == 0) ! ; // do nothing for empty matrix else if (nnr != 1 && nnc != 1) { + // Extract diag from matrix if (k > 0) nnc -= k; else if (k < 0) *************** *** 2482,2489 **** (*current_liboctave_error_handler) ("diag: requested diagonal out of range"); } ! else if (nnr != 0 && nnc != 0) { octave_idx_type roff = 0; octave_idx_type coff = 0; if (k > 0) --- 2483,2491 ---- (*current_liboctave_error_handler) ("diag: requested diagonal out of range"); } ! else { + // Create diag matrix from vector octave_idx_type roff = 0; octave_idx_type coff = 0; if (k > 0) diff -cNr octave-3.4.0/liboctave/caseless-str.h octave-3.4.1/liboctave/caseless-str.h *** octave-3.4.0/liboctave/caseless-str.h 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/liboctave/caseless-str.h 2011-06-15 11:11:27.000000000 -0400 *************** *** 46,51 **** --- 46,75 ---- operator std::string (void) const { return *this; } + bool operator < (const std::string& s) const + { + const_iterator p1 = begin (); + const_iterator p2 = s.begin (); + + while (p1 != end () && p2 != s.end ()) + { + char lp1 = std::tolower (*p1), lp2 = std::tolower (*p2); + + if ( lp1 > lp2 ) + return false; + if ( lp1 < lp2) + return true; + + p1++; + p2++; + } + + if ( length () >= s.length ()) + return false; + else + return true; + } + // Case-insensitive comparison. bool compare (const std::string& s, size_t limit = std::string::npos) const { *************** *** 59,66 **** if (std::tolower (*p1) != std::tolower (*p2)) return false; ! *p1++; ! *p2++; } return (limit == std::string::npos) ? size () == s.size () : k == limit; --- 83,90 ---- if (std::tolower (*p1) != std::tolower (*p2)) return false; ! p1++; ! p2++; } return (limit == std::string::npos) ? size () == s.size () : k == limit; diff -cNr octave-3.4.0/liboctave/ChangeLog octave-3.4.1/liboctave/ChangeLog *** octave-3.4.0/liboctave/ChangeLog 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/liboctave/ChangeLog 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,14957 **** - 2011-02-06 John W. Eaton - - * PermMatrix.cc (operator*): Fix mixed row/column permutation - case. Bug #32346. - - 2010-02-04 Rik - - * Makefile.am: Undo accidental checkin - - 2011-02-03 John W. Eaton - - * cmd-hist.cc (gnu_history::do_process_histcontrol): - Rename from command_history::do_process_histcontrol. - (gnu_history::do_histcontrol): Rename from - command_history::do_histcontrol. - * cmd-hist.h (command_history::do_histcontrol): Provide dummy version. - * cmd-hist.cc (command_history::do_process_histcontrol): Likewise. - Bug #32325. - - 2011-02-02 John W. Eaton - - * Range.cc (Range::Range (double, double, octave_idx_type)): - Correctly compute limit from base, increment and number of - elements. Bug #32321. - - 2011-01-31 John W. Eaton - - * Sparse.cc (Sparse::assign (const idx_vector&, const idx_vector&, - const Sparse&)): Handle case of LHS originally empty, and - with non-colon indices. Fix typo in previous change. Bug #32263. - - 2011-01-30 Pascal Dupuis - - * lo-sysdep.cc (opendir): On error, free allocated DIR object - before returning. - - 2011-01-28 John W. Eaton - - * eigs-base.cc: Remove #endif corresponding to "#ifdef HAVE_ARPACK", - not the one that matched "#if !defined (CXX_NEW_FRIEND_TEMPLATE_DECL)". - - 2011-01-28 John W. Eaton - - * eigs-base.cc (EigsRealNonSymmetricFunc, - EigsRealNonSymmetricMatrix, EigsRealNonSymmetricMatrixShift): - Initialize eig_vec2 to 0 before calling dneupd. - - 2011-01-28 John W. Eaton - - * eigs-base.cc: Assume we have ARPACK. - - 2011-01-27 John W. Eaton - - * Sparse.cc (Sparse::assign (const idx_vector&, const idx_vector&, - const Sparse&)): Allow 0x0 LHS with colon dimensions to - inherit dimensions from RHS. Fix tests. Bug #32263. - - 2011-01-26 John W. Eaton - - * oct-refcount.h: Strip trailing whitespace. - - 2011-01-24 Pascal Dupuis - - * SparseQR.h (class SparseQR::SparseQR_reps): Disallow copying. - * Array.cc (class rec_permute_helper, class rec_index_helper, - class rec_resize_helper): Likewise. - * cmd-edit.cc (class default_command_editor): Likewise. - - 2011-01-22 Jaroslav Hajek - - * oct-refcount.h: New source. - * Makefile.am: Add it here. - - * Array.h: Use octave_refcount for refcounting. - * Sparse.h: Ditto. - * SparseCmplxQR.h: Ditto. - * SparseQR.h: Ditto. - * idx-vector.h: Ditto. - * oct-shlib.h: Ditto. - * sparse-base-chol.h: Ditto. - - 2011-01-21 Pascal Dupuis - - * oct-fftw.h (class octave_fftw_planner): Disallow copying - (class octave_float_fftw_planner): Likewise. - * oct-sort.h (class octave_sort): Likewise. - (struct oct_sort::MergeState): Likewise. - * SparseCmplxQR.h (class SparseComplexQR::SparseComplexQR_rep): - Likewise. - * sparse-base-chol.h (class sparse_base_cho::sparse_base_chol_rep): - Likewise. - - 2011-01-21 John W. Eaton - - * CMatrix.cc (xgemm): Initialize output matrix for call to ZHERK. - * fCMatrix.cc (xgemm): Initialize output matrix for call to CHERK. - - 2011-01-20 John W. Eaton - - * Array-b.cc, Array-d.cc, Array-f.cc, Array-util.cc, - Array-util.h, Array.cc, Array.h, Array3.h, CColVector.cc, - CColVector.h, CDiagMatrix.cc, CDiagMatrix.h, CMatrix.cc, - CMatrix.h, CNDArray.cc, CNDArray.h, CSparse.cc, CSparse.h, - CmplxAEPBAL.cc, CmplxAEPBAL.h, CmplxCHOL.cc, CmplxGEPBAL.cc, - CmplxGEPBAL.h, CmplxHESS.cc, CmplxLU.h, CmplxQR.cc, CmplxQR.h, - CmplxSCHUR.cc, CmplxSVD.h, CollocWt.cc, CollocWt.h, DASPK.cc, - DASPK.h, DASRT.cc, DASRT.h, DASSL.cc, DASSL.h, DET.h, - DiagArray2.h, EIG.cc, LSODE.cc, MArray.cc, MArray.h, - MDiagArray2.cc, MDiagArray2.h, MSparse.cc, MSparse.h, - MatrixType.cc, MatrixType.h, ODESFunc.h, PermMatrix.cc, - PermMatrix.h, Quad.cc, Range.cc, Sparse.cc, Sparse.h, - SparseCmplxCHOL.cc, SparseCmplxCHOL.h, SparseCmplxLU.cc, - SparseCmplxLU.h, SparseCmplxQR.cc, SparseCmplxQR.h, SparseQR.cc, - SparseQR.h, SparsedbleCHOL.cc, SparsedbleCHOL.h, - SparsedbleLU.cc, SparsedbleLU.h, base-aepbal.h, base-de.h, - base-lu.cc, base-lu.h, boolNDArray.cc, boolNDArray.h, - boolSparse.cc, boolSparse.h, bsxfun-defs.cc, chMatrix.cc, - chNDArray.cc, chNDArray.h, cmd-edit.cc, cmd-edit.h, cmd-hist.cc, - dColVector.h, dDiagMatrix.cc, dDiagMatrix.h, dMatrix.cc, - dMatrix.h, dNDArray.cc, dNDArray.h, dSparse.cc, dSparse.h, - dbleAEPBAL.h, dbleCHOL.cc, dbleCHOL.h, dbleGEPBAL.cc, - dbleGEPBAL.h, dbleQR.cc, dbleQR.h, dbleSCHUR.h, dbleSVD.h, - dim-vector.cc, dim-vector.h, dir-ops.cc, eigs-base.cc, - f2c-main.c, fCColVector.cc, fCColVector.h, fCDiagMatrix.cc, - fCDiagMatrix.h, fCMatrix.cc, fCMatrix.h, fCNDArray.cc, - fCNDArray.h, fCRowVector.cc, fCRowVector.h, fCmplxAEPBAL.cc, - fCmplxAEPBAL.h, fCmplxCHOL.cc, fCmplxGEPBAL.cc, fCmplxGEPBAL.h, - fCmplxHESS.cc, fCmplxLU.h, fCmplxQR.cc, fCmplxQR.h, - fCmplxQRP.cc, fCmplxSCHUR.cc, fCmplxSVD.h, fColVector.h, - fDiagMatrix.cc, fDiagMatrix.h, fEIG.cc, fMatrix.cc, fMatrix.h, - fNDArray.cc, fNDArray.h, file-ops.cc, file-stat.cc, - floatAEPBAL.cc, floatAEPBAL.h, floatCHOL.cc, floatCHOL.h, - floatGEPBAL.cc, floatGEPBAL.h, floatLU.h, floatQR.cc, floatQR.h, - floatQRP.cc, floatSCHUR.h, floatSVD.h, idx-vector.cc, - idx-vector.h, intNDArray.cc, intNDArray.h, kpse.cc, - lo-array-gripes.cc, lo-array-gripes.h, lo-cieee.c, lo-ieee.h, - lo-mappers.cc, lo-mappers.h, lo-specfun.cc, mx-defs.h, - mx-inlines.cc, oct-binmap.h, oct-convn.cc, oct-env.cc, - oct-fftw.cc, oct-fftw.h, oct-glob.cc, oct-group.h, - oct-inttypes.cc, oct-inttypes.h, oct-locbuf.cc, oct-locbuf.h, - oct-md5.cc, oct-mem.h, oct-norm.cc, oct-norm.h, oct-rand.cc, - oct-rand.h, oct-rl-hist.c, oct-shlib.cc, oct-shlib.h, - oct-sort.cc, oct-sort.h, oct-spparms.cc, oct-spparms.h, - oct-syscalls.cc, oct-time.cc, randgamma.c, randmtzig.c, - randmtzig.h, randpoisson.c, regex-match.cc, regex-match.h, - sparse-base-chol.cc, sparse-base-chol.h, sparse-base-lu.cc, - sparse-base-lu.h, sparse-dmsolve.cc, sparse-sort.cc, - sparse-sort.h, sparse-util.h, tempname.c: - Strip trailing whitespace. - - 2011-01-20 John W. Eaton - - * Array.h, Array.cc - (Array::resize2 (octave_idx_type, octave_idx_type, const T&)): - New private function. - (Array::resize (octave_idx_type, octave_idx_type, const T&)): - Deprecate. Call resize2 to do the work. Remove all uses from - Octave. - - * CMatrix.h (ComplexMatrix::resize (octave_idx_type, - octave_idx_type, const Complex&)): New function. - * dMatrix.h (Matrix::resize (octave_idx_type, - octave_idx_type, double)): New function. - * fCMatrix.h (FloatComplexMatrix::resize (octave_idx_type, - octave_idx_type, const FloatComplex&)): New function. - * fMatrix.h (FloatMatrix::resize (octave_idx_type, - octave_idx_type, const float)): New function. - - 2011-01-20 David Bateman - - * Sparce.cc (template Sparse::Sparse (const Array&, - const idx_vector&, const idx_vector&, octave_idx_type, - octave_idx_type, bool, octave_idx_type): Fix off by one error in the - construction of sparse column vectors. Fix indexing issue in - construction of sparse row vectors. - * boolSparse.cc (SparseBoolMatrix SparseBoolMatrix::any (int) const): - Fully initialize cidx for any called on the first dimension. - - 2011-01-19 John W. Eaton - - * Array.h (explicit Array (octave_idx_type, const T&)): - Restore constructor, but mark as deprecated. - (explicit Array (octave_idx_type, octave_idx_type)): Delete. - (Array (const Array&, octave_idx_type, octave_idx_type)): Delete. - Fix all uses in Octave. - * Array3.h: Deprecate header file. Remove all uses from Octave. - - 2011-01-19 John W. Eaton - - * file-stat.cc (mode_as_string): Declare buffer as an array of - 12 characters, not 11. Don't set buf[10] to '\0'; strmode - NUL-terminates the array. - - 2011-01-14 David Grundberg - - * SparseQR.cc (SparseQR_rep::SparseQR_rep) [HAVE_CXSPARSE]: - Make initialization list depend on macro. Fixes compile error when - macro isn't defined. - * SparseCmplxQR.cc (SparseComplexQR_rep::SparseComplexQR_rep) - [HAVE_CXSPARSE]: Ditto. - - 2011-01-14 John W. Eaton - - * lo-mappers.cc (xfloor): Move function body here from - lo-mappers.h to avoid exposing gnulib:: in a header file. - - 2011-01-14 John W. Eaton - - * file-stat.cc (mode_as_string): Call strmode instead of mode_string. - - * filemode.h, filemode.c: Delete. - * Makefile.am (INCS): Remove filemode.h from the list. - (LIBOCTAVE_C_SOURCES): Remove filemode.c from the list. - - 2011-01-14 John W. Eaton - - * Update copyright notices for 2011. - - 2011-01-13 John W. Eaton - - * CColVector.cc, CMatrix.cc, CRowVector.cc, CSparse.cc, - CmplxAEPBAL.cc, CmplxCHOL.cc, CmplxLU.cc, CmplxQR.cc, - CmplxQRP.cc, EIG.cc, Quad.cc, dColVector.cc, dMatrix.cc, - dRowVector.cc, dSparse.cc, dbleAEPBAL.cc, dbleCHOL.cc, - dbleLU.cc, dbleQR.cc, dbleQRP.cc, eigs-base.cc, fCColVector.cc, - fCMatrix.cc, fCNDArray.cc, fCRowVector.cc, fCmplxAEPBAL.cc, - fCmplxCHOL.cc, fCmplxLU.cc, fCmplxQR.cc, fCmplxQRP.cc, - fCmplxSVD.cc, fColVector.cc, fEIG.cc, fMatrix.cc, fNDArray.cc, - fRowVector.cc, floatAEPBAL.cc, floatCHOL.cc, floatLU.cc, - floatQR.cc, floatQRP.cc, lo-specfun.cc, oct-convn.cc: - Style fixes. - - 2011-01-13 John W. Eaton - - * CMatrix.cc (get_blas_trans_arg): Return char, not char *. - Change all uses. - * dMatrix.cc (get_blas_trans_arg): Likewise. - * fCMatrix.cc (get_blas_trans_arg): Likewise. - * fMatrix.cc (get_blas_trans_arg): Likewise. - Suggested by Pascal Dupuis . - - 2011-01-13 John W. Eaton - - * filemode.c: Use prototypes for function definitions. Reorder - functions to eliminate need for forward declarations. - * filemode.h: New file. - * file-stat.cc: Include filemode.h instead of using local extern - declarations. - * Makefile.am (INCS): Add filemode.h to the list. - - * lo-cutils.h: New file. - (octave_qsort, octave_strcasecmp, octave_strncasecmp, - octave_w32_library_search, octave_waitpid): Move decls here from - lo-utils.h. - * Makefile.am (INCS): Add lo-cutils.h to the list. - * lo-utils.h: Include cutils.h. - * lo-cutils.c: Include cutils.h. - - 2011-01-13 John W. Eaton - - * SparseCmplxQR.cc - (SparseComplexQR::SparseComplexQR_rep::SparseComplexQR_rep): - Correct order of member initialization. - * SparseQR.cc (SparseQR::SparseQR_rep::SparseQR_rep): Likewise. - - 2011-01-13 John W. Eaton - - * oct-fftw.cc (octave_fftw_planner::octave_fftw_planner, - octave_float_fftw_planner::octave_float_fftw_planner): - Avoid duplicate initializations. Correctly initialize RN to - empty dim_vector. - - 2011-01-13 John W. Eaton - - * Sparse.cc (Sparse::Sparse): Initialize all data members in - initialization lists. - - 2011-01-13 John W. Eaton - - * Array.cc (rec_permute_helper::rec_permute_helper, - rec_index_helper::rec_index_helper, - rec_resize_helper::rec_resize_helper): Initialize all data - members in initialization lists. - - * Array.h, Array.cc (Array::Array): Initialize slice_data and - slice_len in memeber initialization lists. - (Array::~Array): Now virtual. - - 2011-01-13 John W. Eaton - - * oct-locbuf.h (octave_chunk_buffer::~octave_chunk_buffer): - Now virtual. - (class octave_local_buffer, class octave_chunk_buffer): - Don't allow copying or assignment. - - * file-stat.h (base_file_stat::~base_file_stat): - Now protected and virtual. - - 2011-01-13 John W. Eaton - - * base-lu.h (base_lu::base_lu): Initialize all data members in - initialization lists. - * base-qr.h (base_qr::base_qr): Likewise. - * DET.h (base_det::base_det): Likewise. - * sparse-base-lu.h (sparse_base_lu::sparse_base_lu): Likewise. - * sparse-base-chol.h (sparse_base_chol::sparse_base_chol): Likewise. - - * base-lu.h (base_lu::~base_lu): Explicitly define virtual destrutor. - * base-qr.h (base_qr::~base_qr): Likewise. - * base-aepbal.h (base_aepbal::~base_aepval): Likewise. - * sparse-base-lu.h (sparse_base_lu::~sparse_base_lu): Likewise. - * sparse-base-chol.h (sparse_base_chol::~sparse_base_chol): Likewise. - - 2011-01-13 John W. Eaton - - * DAE.h (DAE::~DAE): Now virtual. - * DAERT.h (DAERT::~DAERT): Likewise. - * ODE.h (ODE::~ODE): Likewise. - * DAEFunc.h (DAEFunc::~DAEFunc): Likewise. - * DAERTFunc.h (DAEFunc::~DAEFunc): Likewise. - * ODEFunc.h (ODE::~ODE): Likewise. - * ODESFunc.h (ODESFunc::~ODESFunc): Likewise. - - 2011-01-13 John W. Eaton - - * idx-vector.h (idx_vector_rep::idx_vector_rep, - idx_vector::idx_mask_rep::idx_mask_rep): - Initialize all data members in initialization lists. - - * idx-vector.cc (idx_vector::idx_scalar_rep::idx_scalar_rep): - Initialize data in member initialization list. - (class idx_base_rep, class idx_colon_rep, class idx_range_rep, - class idx_scalar_rep, class idx_vector_rep, class idx_mask_rep): - Don't allow assignment. - - 2011-01-13 John W. Eaton - - * LSODE.h (class LSODE): Delete pointer data members. - (LSODE::LSODE): Initialize all data members in initialization lists. - * LSODE.cc (LSODE::integrate): Extract pointers to data from - array data members at each call. - - * DASPK.h (class DASPK): Delete pointer data members. - (DASPK::DASPK): Initialize all data members in initialization lists. - * DASPK.cc (DASPK::integrate): Extract pointers to data from - array data members at each call. - - * DASSL.h (class DASSL): Delete pointer data members. - (DASSL::DASSL): Initialize all data members in initialization lists. - * DASSL.cc (DASSL::integrate): Extract pointers to data from - array data members at each call. - - * DASRT.h (class DASRT): Delete pointer data members. - (DASRT::DASRT): Initialize all data members in initialization lists. - * DASRT.cc (DASRT::integrate): Extract pointers to data from - array data members at each call. - - 2011-01-13 John W. Eaton - - * kpse.cc (struct str_llist_elt, struct cache_entry): - Explicitly define constructor and destructor. - - * Quad.h (Quad::Quad, IndefQuad::IndefQuad, - FloatIndefQuad::FloatIndefQuad): Initialize all data members in - initialization lists. - * CollocWt.h (CollocWt::CollocWt): Likewise. - * oct-time.h (octave_strptime::octave_strptime): Likewise. - * oct-time.cc (octave_time::octave_time): Likewise. - * pathsearch.h (dir_path::dir_path): Likewise. - * regex-match.h (regex_match::regex_match): Likewise. - * oct-sort.h (octave_sort::MergeState::MergeState): Likewise. - * oct-shlib.h, oct-shlib.cc (octave_shlib::shlib_rep::shlib_rep, - octave_shlib::octave_shlib): Likewise. - * oct-mutex.h, oct-mutex.cc (octave_mutex::octave_mutex): Likewise. - * MatrixType.cc (MatrixType::MatrixType): Likewise. - * oct-fftw.cc (octave_fftw_planner::octave_fftw_planner, - octave_float_fftw_planner::octave_float_fftw_planner): Likewise. - - * mach-info.h, mach-info.cc (oct_mach_info::oct_mach_info): - Initialize all data members in initialization lists. - (ten_little_endians): Rename from oct_mach_info::ten_little_endians. - Now static instead of private member function - (get_float_format): Rename from oct_mach_info::init_float_format. - Now static instead of private member function. - - * dir-ops.h, dir-ops.cc (dir_entry::copy): Delete. - (dir_entry::dir_entry): Initialize all data members in - initialization lists. - (dir_entry::operator =): Copy elements directly here instead of - calling copy. - - 2011-01-13 John W. Eaton - - * cmd-hist.h, cmd-hist.cc: Sprinkle with const. - - 2011-01-13 John W. Eaton - - * CmplxCHOL.h (ComplexCHOL::ComplexCHOL): Initialize all data - members in constructor initialization lists. - * CmplxGEPBAL.h (ComplexGEPBALANCE::ComplexGEPBALANCE): Likewise. - * CmplxHESS.h (ComplexHESS::ComplexHESS): Likewise. - * CmplxSCHUR.h, CmplxSCHUR.cc (ComplexSCHUR::ComplexSCHUR): Likewise. - * CmplxSVD.h (ComplexSVD::ComplexSVD): Likewise. - * DET.h (base_det::base_det): Likewise. - * EIG.h (EIG::EIG): Likewise. - * SparseCmplxQR.cc - (SparseComplexQR::SparseComplexQR_rep::SparseComplexQR_rep): - Likewise. - * SparseQR.cc (SparseQR::SparseQR_rep::SparseQR_rep): Likewise. - * dbleCHOL.h (CHOL::CHOL): Likewise. - * dbleGEPBAL.h (GEPBALANCE::GEPBALANCE): Likewise. - * dbleHESS.h (HESS::HESS): Likewise. - * dbleSCHUR.h, dbleSCHUR.cc (SCHUR::SCHUR): Likewise. - * dbleSVD.h (SVD::SVD): Likewise. - * fCmplxCHOL.h (FloatComplexCHOL::FloatComplexCHOL): Likewise. - * fCmplxGEPBAL.h - (FloatComplexGEPBALANCE::FloatComplexGEPBALANCE): Likewise. - * fCmplxHESS.h (FloatComplexHESS::FloatComplexHESS): Likewise. - * fCmplxSCHUR.h, fCmplxSCHUR.cc - (FloatComplexSCHUR::FloatComplexSCHUR): Likewise. - * fCmplxSVD.h (FloatComplexSVD::FloatComplexSVD): - Likewise. - * fEIG.h (FloatEIG::FloatEIG): Likewise. - * floatCHOL.h (FloatCHOL::FloatCHOL): Likewise. - * floatGEPBAL.h (FloatGEPBALANCE::FloatGEPBALANCE): Likewise. - * floatHESS.h (FloatHESS::FloatHESS): Likewise. - * floatSCHUR.h, floatSCHUR.cc (FloatSCHUR::FloatSCHUR): Likewise. - * floatSVD.h (FloatSVD::FloatSVD): Likewise. - - 2011-01-13 John W. Eaton - - * LSODE.cc, DASSL.cc, DASRT.cc, DASPK.cc, CmplxSVD.cc, - CmplxSCHUR.cc, CmplxHESS.cc, CmplxGEPBAL.cc, CmplxCHOL.cc, - EIG.cc, dbleCHOL.cc, dbleGEPBAL.cc, dbleHESS.cc, dbleSCHUR.cc, - dbleSVD.cc, fCmplxCHOL.cc, fCmplxGEPBAL.cc, fCmplxHESS.cc, - fCmplxSCHUR.cc, fCmplxSVD.cc, fEIG.cc, floatCHOL.cc, - floatGEPBAL.cc, floatHESS.cc, floatSCHUR.cc, floatSVD.cc: - Style fixes. - - 2011-01-12 John W. Eaton - - * oct-rl-hist.c (hc_erasedups): Avoid GCC warning. - - 2011-01-12 Jordi Gutiérrez Hermoso - - * oct-rl-hist.h: Replace macros with an enum - - 2011-01-12 Pascal Dupuis - John W. Eaton - - * cmd-hist.cc (command_history::process_histcontrol, - command_history::hist_control, command_history::process_histcontrol, - command_history::hist_control): New functions. - (command_history::initialize, command_history::do_initialize): - New arg, control_arg. - * cmd-hist.cc (gnu_history::do_add): Pass history_control to - octave_add_history. - * cmd-hist.h (command_history::process_histcontrol, - command_history::hist_control, command_history::process_histcontrol, - command_history::hist_control): Provide decls. - (command_history::history_control): New data member. - - * oct-rl-hist.c (octave_add_history): New arg, history_control. - Return int, not void. - (check_history_control, hc_erasedups): New static functions - borrowed from Bash. - * oct-rl-hist.h (octave_add_history): Fix decl. - (HC_IGNSPACE, HC_IGNDUPS, HC_ERASEDUPS): New #defined constants. - - 2011-01-06 John W. Eaton - - * oct-md5.cc (oct_md5_file): Tag call to fclose with gnulib::. - * Range.cc (tfloor): Tag calls to floor with gnulib::. - * lo-mappers.h (xfloor): Tag call to floor with gnulib:: - - 2010-12-20 John W. Eaton - - * lo-mappers.h (xrem, xmod): Declare temporary result from - multiplication volatile. - - 2010-12-15 John W. Eaton - - Bug #31883. - - * cmd-hist.cc (command_history::do_clean_up_and_save, - command_history::do_truncate_file, - command_history::do_append, command_history::do_write, - gnu_history::do_clean_up_and_save, gnu_history::do_truncate_file, - gnu_history::do_append, gnu_history::do_write, - gnu_history::do_read_range): - Don't do anything if not initialized. - - * cmd-hist.cc, cmd-hist.h (command_history::initialize, - command_history::is_initialized): New static functions. - (command_history::do_initialize, - command_history::do_is_initialized): New member functions. - - * cmd-hist.h (command_history::initialized): New data member. - (comand_history::command_history): Initialize it. - - 2010-12-14 John W. Eaton - - * lo-mappers.h (xcopysign (double)): Call copysign, not copysignf. - (xmod): Call X_NINT, not D_NINT. Call xfloor, not floor. - Bug #31872. - - 2010-12-13 John W. Eaton - - * CMatrix.cc (operator * (const Matrix& m, const ComplexMatrix& a)): - Fix cut and paste error. Bug #31869. - - 2010-12-09 Marco Atzeri - - * lo-specfun.cc (xgamma): Also handle negative integer values as - special cases when using tgamma. Bug #31772. - - 2010-11-25 John W. Eaton - - * Sparse.cc (Sparse::assign): Use correct endpoint for - destination range when making room for new elements. - Bug #31734. - - 2010-11-23 John W. Eaton - - * oct-md5.cc (oct_md5_result_to_str): Avoid buffer overrun in - call to sprintf. Replace loop with a single call to sprintf. - Bug #31689. - - 2010-11-23 John W. Eaton - - * oct-md5.cc (oct_md5_file): Close file after reading. - - 2010-11-22 John W. Eaton - - * boolSparse.cc (SparseBoolMatrix::sum, SparseBoolMatrix::any): - Cast integer idx_vector argument to octave_idx_type. - - 2010-11-18 John W. Eaton - - * chMatrix.cc (charMatrix::row_as_string): Never strip trailing - nul characters. Bug #31689. - - 2010-11-12 John W. Eaton - - * Makefile.am (LIBOCTAVE_SOURCES): Delete variable. - (liboctave_la_SOURCES): Include $(LIBOCTAVE_CXX_SOURCES) and - $(LIBOCTAVE_C_SOURCES) in this list instead of - $(LIBOCTAVE_SOURCES). - (nodist_liboctave_la_SOURCES): New variable. - (octinclude_HEADERS): Don't include $(BUILT_INCS) in the list. - (noinst_octinclude_HEADERS): New variable. - (PRIVATE_INCS): Delete variable. - (INCS): Include oct-glob.h in the list. - (liboctave_la_SOURCES): Don't include $(PRIVATE_INCS) in the - list. - (LIBOCT_PATHSEARCH_CXX_SOURCES, LIBOCT_PATHSEARCH_C_SOURCES, - LIBOCT_PATHSEARCH_SOURCES): Delete variables. - (LIBOCTAVE_CXX_SOURCES): Include pathsearch.cc in the list. - - 2010-11-12 John W. Eaton - - * Array.cc (Array::cat): Simplify previous change. - - 2010-11-11 John W. Eaton - - * Array.cc (Array::cat): New special case for concatenating - empty matrices. Bug #31615. - - 2010-11-11 John W. Eaton - - * lo-mappers.cc (xtrunc, xround): Move definitions here from - lo-mappers.h. - - 2010-11-10 John W. Eaton - - * kpse-xfns.c: Delete. - * kpse-xfns.h: Delete. Move defintions to kpse.cc. - * Makefile.am (INCS): Remove kpse-xfns.h from the list. - (LIBOCT_PATHSEARCH_SOURCES): Define to pathsearch.cc. - (LIBOCT_PATHSEARCH_CXX_SOURCES, LIBOCT_PATHSEARCH_C_SOURCES): - Delete variables. - - 2010-11-10 John W. Eaton - - * lo-cieee.c Eliminate special cases for SCO. - - 2010-11-10 John W. Eaton - - * lo-ieee.cc (octave_ieee_init): Don't initialize octave_Inf, - octave_NaN, and octave_NA to DBL_MAX. Don't initialize - octave_Float_Inf, octave_Float_NaN, and octave_Float_NA to FLT_MAX. - (octave_ieee_init): Simplify using std::numeric_limits template. - - 2010-11-10 John W. Eaton - - * syswait.h: Delete special cases for NeXT systems. - - 2010-11-10 John W. Eaton - - * lo-sysdep.cc (octave_chdir): Delete special case for __EMX__. - * oct-env.cc (octave_env::do_make_absolute): Likewise. - - 2010-11-10 John W. Eaton - - * lo-ieee.h: Eliminate special cases for SCO. - * lo-ieee.cc (octave_ieee_init): Eliminate special cases for SCO. - - 2010-11-09 John W. Eaton - - * lo-mappers.h (xmod, xrem): Don't copy sign if result is zero. - - 2010-11-09 John W. Eaton - - * lo-mappers.cc, lo-mappers.h (xisnan, xisinf, xfinite, xmod, - xrem, floor, ceil, xround, xroundb, signum): Move definitions - from lo-mappers.cc to lo-mappers.h and convert to templates. - (xtrunc): Move definitions from lo-mappers.cc to lo-mappers.h. - * lo-mappers.cc (fix): Use xtrunc. Move definitions to - lo-mappers.cc from lo-mappers.h. - (real, imag, conj) Move definitions to lo-mappers.h and declare inline. - (round): Move definitions to lo-mappers.h and declare inline. - Use roundf for float version. - (arg): Move definitions to lo-mappers.h and declare inline. - Use atan2f for float version. - * lo-mappers.h (xceil): New functions. - (X_NINT): New template function. - (D_NINT, F_NINT): Define in terms of X_NINT. - * lo-utils.h, lo-utils.cc (D_NINT, F_NINT): Delete. - * lo-mappers.h, lo-mappers.cc (NINTbig, NINT): Move from - lo-utils.cc and lo-utils.h. - - 2010-11-09 John W. Eaton - - * Array.cc (Array::sort, Array::is_sorted, - Array::is_sorted_rows): Use comparisons to sortmode values - instead of testing mode directly. - - 2010-11-09 John W. Eaton - - * lo-mappers.cc (xmod, xrem): New functions. - (mod): Delete. - * lo-mappers.h (xmod, xrem): Provide decls. - - 2010-10-31 Michael Goffioul - - * dim-vector.h (class dim_vector): tag with OCTAVE_API. - - 2010-10-21 John W. Eaton - - * Makefile.am (INCS): Include lo-array-gripes.h in the list. - (LIBOCTAVE_CXX_SOURCES): Include lo-array-gripes.cc in the list. - - * lo-array-gripes.h: New file. Move gripe function decls here - from Array-util.h. - * lo-array-gripes.c: New file. Move gripe function definitions - here from Array-util.cc. - - * CMatrix.cc (ComplexMatrix::operator !): Gripe if any element is NaN. - * CNDArray.cc (ComplexNDArray::operator !): Likewise. - * CSparse.cc (SparseComplexMatrix::operator !): Likewise. - * dMatrix.cc (Matrix::operator !): Likewise. - * dNDArray.cc (NDArray::operator !): Likewise. - * dSparse.cc (SparseMatrix::operator !): Likewise. - * fCMatrix.cc (FloatComplexMatrix::operator !): Likewise. - * fCNDArray.cc (FloatComplexNDArray::operator !): Likewise. - * fMatrix.cc (FloatMatrix::operator !): Likewise. - * fNDArray.cc (FloatNDArray::operator !): Likewise. - - 2010-10-21 John W. Eaton - - * Array-util.cc (gripe_nan_to_character_conversion): New function. - * Array-util.h: Provide decl. - - 2010-10-19 John W. Eaton - - * Makefile.am (INCS): Add caseless-str.h to the list. - - 2010-10-01 John W. Eaton - - * caseless-str.h: New file, extracted from src/graphics.h.in. - - 2010-09-22 Jaroslav Hajek - - * lo-utils.cc (xis_int_or_inf_or_nan): Fix typos. - - 2010-09-21 Jaroslav Hajek - - * Array.h (Array::test, Array::test_all, Array::test_any): New - overloaded template methods. - * lo-mappers.h (xisinteger, xnegative_sign): New bool mappers. - * dNDArray.cc (NDArray::any_element_is_negative, - NDArray::all_integers): Simplify. - * fNDArray.cc (FloatNDArray::any_element_is_negative, - FloatNDArray::all_integers): Simplify. - - * lo-utils.cc (xis_int_or_inf_or_nan, xis_one_or_zero, - xis_zero, xtoo_large_for_float): New utility functions. - - * dNDArray.cc (NDArray::any_element_is_negative, - NDArray::all_integers, NDArray::all_elements_are_zero, - NDArray::all_elements_are_int_or_inf_or_nan, - NDArray::any_element_not_one_or_zero, - NDArray::too_large_for_float): Simplify. - - * fNDArray.cc (FloatNDArray::any_element_is_negative, - FloatNDArray::all_integers, FloatNDArray::all_elements_are_zero, - FloatNDArray::all_elements_are_int_or_inf_or_nan, - FloatNDArray::any_element_not_one_or_zero, - FloatNDArray::too_large_for_float): Simplify. - - 2010-09-21 Jaroslav Hajek - - * dNDArray.cc (NDArray::any_element_is_negative, - NDArray::any_element_is_nan, - NDArray::any_element_is_inf_or_nan): Simplify. - * fNDArray.cc (FloatNDArray::any_element_is_negative, - FloatNDArray::any_element_is_nan, - FloatNDArray::any_element_is_inf_or_nan): Simplify. - * dMatrix.cc (Matrix::any_element_is_negative, - Matrix::any_element_is_nan, - Matrix::any_element_is_inf_or_nan): Simplify. - * fMatrix.cc (FloatMatrix::any_element_is_negative, - FloatMatrix::any_element_is_nan, - FloatMatrix::any_element_is_inf_or_nan): Simplify. - * CNDArray.cc (ComplexNDArray::any_element_is_negative, - ComplexNDArray::any_element_is_nan, - ComplexNDArray::any_element_is_inf_or_nan): Simplify. - * fCNDArray.cc (FloatComplexNDArray::any_element_is_negative, - FloatComplexNDArray::any_element_is_nan, - FloatComplexNDArray::any_element_is_inf_or_nan): Simplify. - * CMatrix.cc (ComplexMatrix::any_element_is_negative, - ComplexMatrix::any_element_is_nan, - ComplexMatrix::any_element_is_inf_or_nan): Simplify. - * fCMatrix.cc (FloatComplexMatrix::any_element_is_negative, - FloatComplexMatrix::any_element_is_nan, - FloatComplexMatrix::any_element_is_inf_or_nan): Simplify. - - 2010-09-21 John W. Eaton - - * oct-env.cc (do_get_host_name): Call gnulib::gethostname - instead of octave_gethostname. - - * lo-utils.h, lo-cutils.c (octave_gethostname): Delete. - - 2010-09-20 John W. Eaton - - * oct-time.cc (octave_time::octave_time, octave_strptime::init): - Call gnulib::mktime instead of mktime (may fix bug #31079). - - 2010-09-15 Jaroslav Hajek - - * dSparse.h (SparseMatrix::SparseMatrix (const Sparse&)): - New ctor. - * CSparse.h (SparseComplexMatrix::SparseComplexMatrix - (const Sparse&)): New ctor. - * boolSparse.cc (SparseBoolMatrix::sum): New method. - * boolSparse.h: Declare it. - - 2010-09-15 Jaroslav Hajek - - * boolSparse.cc (SparseBoolMatrix::any): Optimize. - - 2010-08-24 Jaroslav Hajek - - * Array-ch.cc: Inline basic sorts. - - 2010-08-21 Rik - - * CmplxQRP.cc, CmplxQRP.h, dbleQRP.cc, dbleQRP.h, fCmplxQRP.cc, - fCmplxQRP.h, floatQRP.cc, floatQRP.h: Declare Pvec as RowVector, - not ColumnVector. Bug #30832. - - 2010-08-18 Jaroslav Hajek - - * mx-inlines.cc (mx_inline_all_finite): New check. - * Sparse-op-defs.h (SPARSE_SMS_BIN_OP_1, SPARSE_SMS_BIN_OP_2, - SPARSE_SSM_BIN_OP_1, SPARSE_SSM_BIN_OP_2): Use unchecked access where - appropriate. - (SPARSE_SMM_BIN_OP_1, SPARSE_MSM_BIN_OP_1): Simplify. - (SPARSE_SMM_BIN_OP_2, SPARSE_MSM_BIN_OP_2): Use optimized code path - if all values are finite. - (SPARSE_MSM_BIN_OPS): Use SPARSE_MSM_BIN_OP_1 for division. - - 2010-07-31 Rik - - * DASPK-opts.in, DASRT-opts.in, DASSL-opts.in, LSODE-opts.in, - Quad-opts.in: Grammarcheck .cc files - - 2010-07-29 Jaroslav Hajek - - * dim-vector.cc (dim_vector::dim_max (void)): Turn it into a function. - (dim_vector::safe_numel): Update usage. - * dim-vector.h: Update declaration. - - 2010-07-27 Jaroslav Hajek - - * dbleSCHUR.cc (SCHUR::SCHUR (const Matrix&, const Matrix&)): - New ctor. - * dbleSCHUR.h: Declare it. - * floatSCHUR.cc (FloatSCHUR::FloatSCHUR (const FloatMatrix&, const - FloatMatrix&)): New ctor. - * floatSCHUR.h: Declare it. - * CmplxSCHUR.cc (ComplexSCHUR::ComplexSCHUR (const ComplexMatrix&, - const ComplexMatrix&), - ComplexSCHUR::ComplexSCHUR (const SCHUR&)): New ctors. - * CmplxSCHUR.h: Declare them. - * fCmplxSCHUR.cc (FloatComplexSCHUR::FloatComplexSCHUR - (const FloatComplexMatrix&, const FloatComplexMatrix&), - FloatComplexSCHUR::FloatComplexSCHUR (const FloatSCHUR&)): New ctors. - * fCmplxSCHUR.h: Declare them. - - 2010-07-22 Jaroslav Hajek - - * dMatrix.cc (Matrix::lssolve): Fix decision test for workaround. - * fMatrix.cc (FloatMatrix::lssolve): Ditto. - * CMatrix.cc (ComplexMatrix::lssolve): Ditto. - * fCMatrix.cc (FloatComplexMatrix::lssolve): Ditto. - - 2010-07-20 Jaroslav Hajek - - * dim-vector.cc (dim_vector::dim_max): New static const member. - * dim-vector.h: Declare it. - - 2010-07-20 Jaroslav Hajek - - * dMatrix.cc (Matrix::extract, Matrix::extract_n): Reimplement using - index. - * fMatrix.cc (FloatMatrix::extract, FloatMatrix::extract_n): Ditto. - * CMatrix.cc (ComplexMatrix::extract, ComplexMatrix::extract_n): Ditto. - * fCMatrix.cc (FloatComplexMatrix::extract, FloatComplexMatrix::extract_n): Ditto. - - 2010-07-13 Jaroslav Hajek - - * MSparse.h (MSparse::index): Remove overloads. - * dSparse.h (SparseMatrix::index): Likewise. - * dSparse.cc (SparseMatrix::index): Likewise. - * CSparse.h (SparseComplexMatrix::index): Likewise. - * CSparse.cc (SparseComplexMatrix::index): Likewise. - - 2010-07-09 Jaroslav Hajek - - * CMatrix.cc (ComplexMatrix::lssolve (const ComplexMatrix&)): - Undo 10708:2786b7ae3f80, implement proper correction. - * fCMatrix.cc (FloatComplexMatrix::lssolve (const FloatComplexMatrix&)): - Ditto. - - 2010-06-28 Jaroslav Hajek - - * dim-vector.h (dim_vector::scalar_1x1): New method. - * lo-traits.h (equal_types): Fix. - - 2010-06-21 Jaroslav Hajek - - * Array.cc (Array::cat): Implement the loose horzcat/vertcat rules - under dim=-1/-2. - * Sparse.cc (Array::cat): Implement the loose horzcat/vertcat rules - under dim=-1/-2. - * Array.h, Sparse.h: Document it. - - 2010-06-17 Jaroslav Hajek - - * dim-vector.cc (dim_vector::hvcat): New method. - * dim-vector.h (dim_vector::hvcat, dim_vector::cat): Update decls. - (dim_vector::empty_2d): New method. - - 2010-06-17 Jaroslav Hajek - - * MatrixType.cc (matrix_real_probe): Use OCTAVE_LOCAL_BUFFER for - temporary array. - (matrix_complex_probe): Parametrize by real type. Use - OCTAVE_LOCAL_BUFFER for temporary array. - - 2010-06-16 Rik - - * DASSL-opts.in: Periodic grammar check on documentation. - - 2010-06-16 David Bateman - - * oct-rand.cc (void octave_rand:do_reset (void), - void octave_rand:do_reset (const std::string&)): New functions - * oct-rand.h (void octave_rand:do_reset (void), - void octave_rand:do_reset (const std::string&)): Declare them - (void octave_rand:reset (void), - void octave_rand:reset (const std::string&)): New functions. - - 2010-06-16 Jaroslav Hajek - - * CMatrix.cc (ComplexMatrix::lssolve (const ComplexMatrix&)): - Workaround LAPACK bug. - * fCMatrix.cc (FloatComplexMatrix::lssolve (const FloatComplexMatrix&)): - Ditto. - - 2010-06-14 Jaroslav Hajek - - * Array.cc (Array::sort, Array::nth_element): Fix behavior when - trailing singleton dim is specified. - * Sparse.cc (Sparse::sort): Ditto. - - 2010-06-14 Jaroslav Hajek - - * idx-vector.cc (idx_vector::copy_data): Handle class_mask case. - (idx_vector::increment): Fix class_colon and add class_mask. - - 2010-06-06 Michael Goffioul - - * mx-op-defs.h (MNANCHK): Add matrix element type argument and use it - to specify template argument for mx_inline_any_nan. - (MS_BOOL_OP, SM_BOOL_OP, MM_BOOL_OP, NDS_BOOL_OP, SND_BOOL_OP, - NDND_BOOL_OP): Specify new MNANCHK argument. - - 2010-06-04 Jaroslav Hajek - - * dim-vector.cc: New source. - * Makefile.am: Add it. - * dim-vector.h (dim_vector::chop_all_singletons, - dim_vector::str, dim_vector::num_ones, dim_vector::safe_numel, - dim_vector::squeeze, dim_vector::concat, dim_vector::redim): - Move bodies to dim_vector.cc. - (dim_vector::concat): Rewrite. - * Array.cc (Array::cat): Fix dim_vector concatenation. Don't use 0x0 - as neutral element, because it isn't with dim > 1. - - 2010-06-01 Jaroslav Hajek - - * Array.cc (Array::optimize_dimensions): New method. - * Array.h: Declare it. - - 2010-06-01 Jaroslav Hajek - - * Array.cc (Array::maybe_delete_dims): Remove method (makes no - longer sense). - * Array.h: Update decls. - - 2010-05-20 Jaroslav Hajek - - * dim-vector.h (dim_vector::compute_index (const octave_idx_type *, - int)): New method overload. - (dim_vector::compute_index, dim_vector::cum_compute_index, - dim_vector::increment_index): Add missing const qualifiers. - - * Array-util.cc (compute_index (..., const dim_vector&)): Rewrite, - add new overloads. Move code from Array::checkelem here. - * Array-util.h: Update decls. - * Array.h (Array::compute_index): Forward to the above. - (Array::compute_index_unchecked): New method. - (Array::elem, Array::xelem): Call it here. - - * Array.cc (Array::checkelem): Use compute_index where suitable. - - 2010-05-19 Jaroslav Hajek - - * mx-inlines.cc (mx_inline_cumcount): Fix 2D version instantiation. - - 2010-05-14 Jaroslav Hajek - - * Array.cc (Array::linearize): Remove. - * Array.h (Array::linearize): Remove decl. - - 2010-05-13 Jaroslav Hajek - - * dMatrix.cc (Matrix::lssolve): Remove warnings about rank. - * fMatrix.cc (FloatMatrix::lssolve): Ditto. - * CMatrix.cc (ComplexMatrix::lssolve): Ditto. - * fCMatrix.cc (FloatComplexMatrix::lssolve): Ditto. - - 2010-05-11 Jaroslav Hajek - - * idx-vector.cc (idx_vector::unmask): Fix off-by-1 bug. Add tests. - - 2010-05-06 Jaroslav Hajek - - * Array.cc (Array::delete_elements (const idx_vector&)): Only call - resize1 when deleting the last element of a vector. - - 2010-05-06 Jaroslav Hajek - - * oct-norm.h: Fix include guard. - - 2010-05-06 Jaroslav Hajek - - * dbleSCHUR.cc (SCHUR::init): Handle empty matrix case. - Use clear rather than resize to realloc matrix. - * floatSCHUR.cc (FloatSCHUR::init): Ditto. - * CmplxSCHUR.cc (ComplexSCHUR::init): Ditto. - * fCmplxSCHUR.cc (FloatComplexSCHUR::init): Ditto. - - 2010-05-04 John W. Eaton - - * CollocWt.cc (diff, jcobi, dfopr): New functions, based on - Fortran functions in libcruft/villad. - (jcobi): Handle iteration failure at large N. - (CollocWt::init): Call them instead of Fortran code. - * CollocWt.h (CollocWt::initialized): Declare as bool, not int. - Change all uses. - Addresses bug #29473. - - 2010-05-03 Jaroslav Hajek - - * dbleSVD.h (SVD::driver): New enum. - (SVD::SVD, SVD::init): Add driver option. - * floatSVD.h (FloatSVD::FloatSVD, FloatSVD::init): Add driver option. - * CmplxSVD.h (ComplexSVD::ComplexSVD, ComplexSVD::init): - Add driver option. - * fCmplxSVD.h (FloatComplexSVD::FloatComplexSVD, - FloatComplexSVD::init): Add driver option. - * dbleSVD.cc (SVD::init): Optionally use xGESDD driver. - * floatSVD.cc (FloatSVD::init): Ditto. - * CmplxSVD.cc (ComplexSVD::init): Ditto. - * fCmplxSVD.cc (FloatComplexSVD::init): Ditto. - - 2010-04-28 John W. Eaton - - * dim-vector.h (dim_vector (const octave_idx_type *, size_t)): Delete. - * Sparse.cc (Sparse::assign): Cast 0 to octave_idx_type in - call to Sparse constructor. - Addresses bug #29692. - - 2010-04-27 John W. Eaton - - * intNDArray.cc (intNDArray::abs, intNDArray::signum): - Create new vector for return values. Fixes bug #29685. - - 2010-04-23 Jaroslav Hajek - - * Sparse.cc (Sparse::assign): Fix typos. - - 2010-04-20 Jaroslav Hajek - - * Sparse.h (::assign, ::assign1): Remove declarations. - - 2010-04-19 Jaroslav Hajek - - * Array.cc (Array::cat): Fast return for single array case. - * Sparse.cc (Sparse::cat): Ditto. - - 2010-04-19 Jaroslav Hajek - - * Array.cc (Array::cat): Miscellaneous fixes. - * Sparse.cc (Sparse::cat): Ditto. - - 2010-04-18 Jaroslav Hajek - - * Array.cc (Array::cat): New method. - * Array.h: Declare it. - * Sparse.cc (Sparse::cat): New method. - * Sparse.h: Declare it. - - 2010-04-16 David Bateman - - * Sparse.cc (template Sparse::Sparse (const Array&, - const idx_vector&, const idx_vector&, octave_idx_type, - octave_idx_type, bool, octave_idx_type)): Add argument defining the - minimum storage to allocate for the sparse matrix. - * Sparse.h (template Sparse (const Array&, - const idx_vector&, const idx_vector&, octave_idx_type, - octave_idx_type, bool, octave_idx_type)): ditto. - * MSparse.h : ditto - * CSparse.h : ditto - * dSparse.h : ditto - * boolSparse.h : ditto - - 2010-04-14 Jaroslav Hajek - - * Sparse.cc: Update failing tests. - - 2010-04-13 Jaroslav Hajek - - * Sparse.cc (Sparse::index): If S is a sparse column vector, - forward S(I,1) and S(I,:) to 1D indexing. Handle permutation indexing - in the 1D case. - (Sparse::assign): If S is a sparse column vector, - forward S(I,1) = X and S(I,:) =X to 1D indexed assignment. - * idx-vector.cc (idx_vector::inverse_permutation): Add missing break. - - 2010-04-13 Jaroslav Hajek - - * Array-util.cc (gripe_invalid_assignment_size, - gripe_assignment_dimension_mismatch): Move funcs here from Array.cc - * Array-util.h: Declare them. - * Array.cc: Remove them. - - * Sparse.cc (Sparse::assign): New overloaded method. - (Sparse::operator =): Update. - (Sparse::resize1): Rewrite to match sparse assignment specifics. - (Sparse::set_index, Sparse::clear_index, Sparse::index_count, - Sparse::value): Remove methods. - (::assign1, ::assign): Remove funcs. - - (INSTANTIATE_SPARSE): Move here from Sparse.h. - - * Sparse.h (Sparse::idx, Sparse::idx_count): Remove member - fields. Remove initializations from all ctors. - (Sparse::get_idx): Remove. - (Sparse::assign): Add decls. - (INSTANTIATE_SPARSE_ASSIGN, INSTANTIATE_SPARSE_AND_ASSIGN): Remove. - (INSTANTIATE_SPARSE): Move to Sparse.cc - - * Sparse-C.cc, Sparse-d.cc, Sparse-b.cc: Only call INSTANTIATE_SPARSE. - - * idx-vector.cc (idx_vector::inverse_permutation): New method. - * idx-vector.h: Declare it. - - 2010-04-12 Jaroslav Hajek - - * Sparse.cc (Sparse::Sparse (const Array&, const idx_vector&, - const idx_vector&, ...)): Call maybe_compress after matrix is created. - - 2010-04-09 Jaroslav Hajek - - * Sparse.cc (Sparse::diag): Change nzmax to nnz where appropriate. - * MatrixType.cc (MatrixType::MatrixType): Ditto. - * SparseQR.cc: Ditto. - * SparseCmplxQR.cc: Ditto. - * boolSparse.cc: Ditto. - - 2010-04-08 Jaroslav Hajek - - * Sparse.cc (Sparse::resize (octave_idx_type, octave_idx_type)): - Rewrite. Be smarter esp. when resizing to more columns. - - 2010-04-08 Jaroslav Hajek - - * dim-vector.h (dim_vector::concat): Ignore zero_by_zero, but not - all_zero arrays in concatenation (like Matlab). - - 2010-04-07 Jaroslav Hajek - - * Sparse.cc (Sparse::index (const idx_vector&, bool)): Use shallow - copy when column is indexed by colon. - - 2010-04-07 Jaroslav Hajek - - * Sparse.cc (lblookup): Move in front of Sparse::delete_elements. - - 2010-04-07 Jaroslav Hajek - - * str-vec.h (string_vector::string_vector (const Array)): - New constructor. - - 2010-04-06 Jaroslav Hajek - - * idx-vector.cc (idx_vector::complement): Rewrite. - - 2010-04-06 Jaroslav Hajek - - * Sparse.cc (Sparse::maybe_delete_elements): Rename to - delete_elements. Use const reference arguments. - (Sparse::delete_elements (const idx_vector&, const idx_vector&)): - Rewrite. - (Sparse::maybe_delete_elements (int dim, const idx_vector&)): New - overload. - (Sparse::maybe_delete_elements (Array&)): Remove - overload. - - 2010-04-06 Jaroslav Hajek - - * idx-vector.cc, Array-util.h, Array-util.cc: Reverse effects of - 4e64fbbd5c58. - - 2010-04-02 John W. Eaton - - * Array-util.cc, idx-vector.cc, idx-vector.h: Style fixes. - - 2010-04-02 John W. Eaton - - * idx-vector.cc (idx_vector::idx_vector (const Range&)): - Move here from idx-vector.h. Allow non-integer values in ranges, - but warn by default (for Matlab compatibility). - * Array-util.h, Array-util.cc (gripe_invalid_index): New arg, ERR. - If ERR is false, generate warning instead of error. - - 2010-04-02 Jaroslav Hajek - - * Sparse.cc (Sparse::maybe_delete_elements): Rewrite. Optimize for - sparse column vectors. - - 2010-04-01 Jaroslav Hajek - - * mx-inlines.cc: Declare all loops as throw (). Ditto for - corresponding applier arguments. - (do_mx_check): New applier. - (logical_value): Do not throw exceptions. - * mx-op-defs.h (SNANCHK, MNANCHK): New helper macros. - (MS_BOOL_OP, SM_BOOL_OP, MM_BOOL_OP, NDS_BOOL_OP, SND_BOOL_OP, - NDND_BOOL_OP): Use them here. - - 2010-03-31 Jaroslav Hajek - - * Sparse.cc (Sparse::Sparse (const Array&, - const Array&, ...), Sparse::Sparse (const Array&, - const Array&, ...)): - Remove old constructors. - * Sparse.h: Ditto. - * MSparse.h: Ditto. - * dSparse.h: Ditto. - * CSparse.h: Ditto. - * boolSparse.h: Ditto. - - 2010-03-31 Jaroslav Hajek - - * idx-vector.cc (idx_vector::idx_range_rep::as_array): Fix typo. - (idx_vector::raw): Use unchecked constructor. - * Sparse.cc (Sparse::Sparse (const Array&, const idx_vector&, - const idx_vector&, ...)): New ctor. - * Sparse.h: Declare it. - - 2010-03-30 John W. Eaton - - * str-vec.cc (string_vector::string_vector (const char * const *)): - Create empty string_vector object if arg is NULL. - Fixes bug #29386. - - 2010-03-29 Jaroslav Hajek - - * idx-vector.cc (idx_vector::raw): New method. - * idx-vector.h: Declare it. - - 2010-03-27 David Bateman - - * oct-openmp.h: New file. - * Makefile.am (INCS): Add it here. - - 2010-03-26 Jaroslav Hajek - - * Sparse.cc (Sparse::index (const idx_vector&, const idx_vector&, - bool)): Specialize for contiguous row range, row permutation, - and implement general case through double index-transpose. - - 2010-03-25 John W. Eaton - - * eigs-base.cc (EigsComplexNonSymmetricFunc): Avoid warning - about deprecated Array constructor. - - 2010-03-25 John W. Eaton - - * cmd-edit.cc, file-ops.cc, lo-math.h, lo-utils.cc, oct-env.cc, - dir-ops.cc, file-stat.cc, cmd-hist.cc, oct-time.cc, oct-time.h, - oct-uname.cc: Revert changes from 2010-03-24 and 2010-03-25. - - 2010-03-25 Jaroslav Hajek - - * lo-mappers.cc (fix (double)): Forward to gnulib::trunc. - (fix (float)): Forward to gnulib::truncf. - (xround (double)): Forward to gnulib::round. - (xround (float)): Forward to gnulib::roundf. - (xtrunc (double)): Forward to gnulib::trunc. - (xtrunc (float)): Forward to gnulib::truncf. - - 2010-03-25 David Grundberg - - * oct-time.h (octave_time): Revert ::modf to std::modf again now - that cmath is included again. - - 2010-03-25 Jaroslav Hajek - - * lo-math.h: Include both "math.h" and "cmath". - - 2010-03-24 David Grundberg - - * cmd-edit.cc: Include gnulib stdlib.h/string.h instead of C++ - headers. - * file-ops.cc: Include gnulib stdlib.h/stdio.h/string.h instead of - C++ headers. - * lo-math.h: Include gnulib math.h instead of C++ headers. - * lo-utils.cc: Include gnulib stdlib.h instead of C++ headers. - * oct-env.cc, dir-ops.cc, file-stat.cc, cmd-hist.cc: Include - gnulib string.h instead of C++ headers. - * oct-time.cc: Include gnulib time.h instead of C++ headers. - * oct-time.h (octave_time): Use default namespace ::modf instead - of std::modf. - * oct-uname.cc: Include gnulib string.h instead of C++ headers. - - 2010-03-24 Jaroslav Hajek - - * Sparse.cc (lblookup): New helper func. - (Sparse::index (const idx_vector&, bool)): Use it here for lookups. - (Sparse::index (const idx_vector&, const idx_vector&, bool)): - Specialize for scalar row index. - - 2010-03-23 John W. Eaton - - * config-ops.sh: Work properly for "all" cases. - - 2010-03-23 Jaroslav Hajek - - * oct-inttypes.h (octave_int_arith_base::rem, octave_int_base::mod): - New methods. - (rem, mod): New template functions. - * lo-mappers.cc (rem, mod): New overloaded functions. - * lo-mappers.h: Declare them. - - 2010-03-23 Jaroslav Hajek - - * oct-binmap.h: New source. - * Makefile.am: Include it here. - - 2010-03-22 John W. Eaton - - * config-ops.sh: Accept additional arguments. - * Makefile.am ($(srcdir)/vx-op-inc.mk, $(srcdir)/mx-op-inc.mk - $(srcdir)/smx-op-inc.mk, $(srcdir)/vx-op-src.mk, $(srcdir)/mx-op-src.mk - $(srcdir)/smx-op-src.mk): Pass additional arguments to config-ops.sh. - - 2010-03-22 Jaroslav Hajek - - * Sparse.cc (Sparse::index (const idx_vector&, const idx_vector&, - bool)): Handle resize_ok in advance. Optimize colon as the first index. - (Sparse::index (const idx_vector&, bool)): Small fixes. - - 2010-03-22 Jaroslav Hajek - - * dSparse.cc (SparseMatrix::matrix_value): Simplify. - * CSparse.cc (SparseComplexMatrix::matrix_value): Simplify. - - 2010-03-19 Jaroslav Hajek - - * Array-util.cc (gripe_invalid_resize): Move here from Array.cc. - * Array-util.h: Declare it. - * Array.cc: Use it. - - * idx-vector.cc (idx_vector::idx_mask_rep::unconvert): Fix non-owned - case. - (idx_vector::idx_mask_rep::as_array): New method. - * idx-vector.h: Declare it. - - * Sparse.cc (Sparse::index (const idx_vector&, bool)): Rewrite. - (Sparse::array_value): New method. - (Sparse::resize1): New method. - (Sparse::resize): Move resize_no_fill bodies in here. - (Sparse::resize_no_fill): Remove. - * Sparse.h: Update decls. - - 2010-03-18 Jaroslav Hajek - - * Sparse.h (Sparse::index): Use const references. Use bool for - resize_ok. Remove Array overload. - * MSparse.h (MSparse::index): Ditto. - * dSparse.h, dSparse.cc (SparseMatrix::index): Ditto. - * CSparse.h, CSparse.cc (SparseComplexMatrix::index): Ditto. - * boolSparse.h, boolSparse.cc (SparseBoolMatrix::index): Ditto. - * Sparse.cc (Sparse::index): Ditto. Redim index to 2 dimensions. - Don't use non-const methods. Use gripe_index_out_of_range. - - 2010-03-17 John W. Eaton - - * dim-vector.h (dim_vector): Also use DIM_VECTOR macro for 2 and - 3 dimensions. - - 2010-03-17 Jaroslav Hajek - - * lo-macros.h: New source. - * dim-vector.h: Use the macro magic to define constructors - generically. - - 2010-03-17 Jaroslav Hajek - - * dim-vector.h: Provide constructors up to order 7. - - 2010-03-16 Jaroslav Hajek - - * lo-specfun.cc: Substitute cbrt and cbrtf if needed. - * lo-specfun.h: Declare cbrt and cbrtf if needed. - * configure.ac: Check for cbrt and cbrtf. - - 2010-03-15 John W. Eaton - - * oct-glob.cc (octave_glob): Tag calls to glob and globfree with - gnulib::. - - * kpse.cc (DEBUG_START, DEBUGF, FATAL_PERROR, FATAL, KPSE_DEBUG, - log_search, find_first_of): Tag calls to - fputs with gnulib::. - (DEBUGF1, DEBUGF2, DEBUGF3, DEBUGF4, log_search, find_first_of, - kpse_element_dirs): Tag calls to fprintf with gnulib::. - (hash_lookup, search, find_first_of, kpse_element_dirs): - Tag calls to putc with gnulib::. - (do_subdir): Tag call to opendir with gnulib::. - (xclosedir): Tag call to closedir with gnulib::. Assume closedir - returns int value. - - * cmd-hist.cc (gnu_history::do_append): Tag calls to open and - close with gnulib::. - (command_history::error): Tag call to strerror with gnulib::. - - * cmd-edit.cc (gnu_readline::command_generator, - gnu_readline::command_quoter, gnu_readline::command_dequoter): - Tag call to malloc with gnulib::. - (default_command_editor::do_readline): Tag call to fputs with gnulib::. - (command_editor::error): Tag call to strerror with gnulib::. - - * sparse-util.cc (SparseCholPrint): Tag call to vfprintf with gnulib::. - - * oct-uname.cc (octave_uname::init): Tag call to strerror with gnulib::. - - * oct-time.cc (octave_time::stamp): Tag call to gettimeofday - with gnulib::. - (octave_strptime::init): Tag call to strptime with gnulib::. - - * oct-syscalls.cc (octave_syscalls::dup2, - octave_syscalls::execvp, octave_syscalls::fork, - octave_syscalls::vfork, octave_syscalls::getpgrp, - octave_syscalls::pipe, octave_syscalls::waitpid, - octave_syscalls::kill, octave_fcntl): - Tag call to strerror with gnulib::. - (octave_syscalls::dup2): Tag call to dup2 with gnulib::. - (octave_syscalls::popen2): Tag calls to close with gnulib::. - (octave_fcntl): Tag call to fcntl with gnulib::. - - * oct-env.cc (octave_env::error): Tag call to strerror with gnulib::. - - * lo-utils.cc (octave_putenv): Tag call to malloc with gnulib::. - (octave_fgets): Tag calls to malloc and realloc with gnulib::. - - * lo-sysdep.cc (octave_getcwd): Tag call to getcwd with gnulib::. - - * lo-mappers.cc (xround): Tag call to round with gnulib::. - - * file-stat.cc (file_stat::update_internal): Tag calls to lstat - and strerror with gnulib::. - (file_fstat::update_internal): Tag calls to fstat and strerror - with gnulib::. - - * file-ops.cc (octave_mkdir): Tag call to mkdir with gnulib::. - (octave_mkfifo): Tag call to mkfifo with gnulib::. - (octave_link): Tag call to link with gnulib::. - (octave_symlink): Tag call to symlink with gnulib::. - (octave_readlink): Tag call to readlink with gnulib::. - (octave_rename): Tag call to rename with gnulib::. - (octave_rmdir): Tag call to rmdir with gnulib::. - (octave_unlink): Tag call to unlink with gnulib::. - (octave_canonicalize_file_name): Tag call to - canonicalize_file_name with gnulib::. - (octave_mkdir, octave_mkfifo, octave_link, octave_symlink, - octave_readlink, octave_rename, octave_rmdir, octave_unlink, - octave_tempnam, octave_canonicalize_file_name): Tag calls to - strerror with gnulib::. - - * dir-ops.cc (dir_entry::close): Tag closedir call with gnulib::. - (dir_entry::open): Tag opendir and strerror calls with gnulib::. - - 2010-03-09 Jaroslav Hajek - - * oct-inttypes.h (octave_int_base::ftrunc, octave_int_base::fnon_int, - octave_int_base::fnan, octave_int_base::get_trunc_flag, - octave_int_base::get_nan_flag, - octave_int_base::get_non_int_flag, - octave_int_base::get_math_trunc_flag, - octave_int_base::clear_conv_flags): Remove. - Remove occurences of ftrunc, fnon_int and fnan eveywhere. - * oct-inttypes.cc: Ditto last sentence. Remove warning tests. - - 2010-03-07 Soren Hauberg - - * dim-vector.h: New constructor accepting a C array of dimensions. - - 2010-03-05 Jaroslav Hajek - - * MArray.cc (MArray::idx_add_nd): New method. - * MArray.h: Declare it. - - 2010-03-04 Jaroslav Hajek - - * lo-specfun.cc (erfcx, erfcx_impl): New functions. - * lo-specfun.h: Declare erfcx. - - 2010-03-03 John W. Eaton - - * oct-convn.cc (convolve): Cast int constant to octave_idx_type in - call to std::max. - - 2010-03-03 Jaroslav Hajek - - * oct-convn.cc (convolve_2d_axpy_kernel, convolve_2d_axpy): Remove. - (convolve_2d): Forward to Fortran implementations, add inner flag. - (convolve_nd): Handle inner-convolution case. - (convolve): Ditto. - - 2010-03-02 Jaroslav Hajek - - * oct-convn.h, oct-convn.cc: New sources. - * Makefile.am: Include them. - - 2010-03-01 David Bateman - - * Sparse.cc (Sparse::maybe_delete_elements (idxx_vector&)): - Special case the deletion of elements in sparse vectors. - (Sparse::index (idx_vector&, int) const): Special case indexing - of sparse matrices with ranges with a step of 1. - * Sparse.h: Include oct-mem.h for the copy_or_memcpy declaration. - - 2010-02-28 John W. Eaton - - * Makefile.am ($(srcdir)/vx-op-inc.mk, $(srcdir)/mx-op-inc.mk, - $(srcdir)/smx-op-inc.mk, $(srcdir)/vx-op-src.mk, - $(srcdir)/mx-op-src.mk, $(srcdir)/smx-op-src.mk): New targets. - - * config-ops.sh: Accept top_srcdir argument. Work from build - directory too, not just source tree. - - 2010-02-28 Michael Goffioul - - * Array-C.cc (DiagArray2::Proxy): Remove explicit - instantiation under MSVC. - Array-d.cc (DiagArray2::Proxy): Ditto. - Array-f.cc (DiagArray2::Proxy): Ditto. - Array-fC.cc (DiagArray2 - - * Array-util.cc (gripe_index_out_of_range): Throw errors with id. - (gripe_nonconformant): Likewise. - (error_id_index_out_of_bounds, error_id_invalid_index, - error_id_nonconformant_args): New variables. - (gripe_invalid_index): New function. - * Array-util.h: Declare them. - * Array.cc (Array::checkelem): Throw invalid-index when negative - indices are encountered. - - 2010-02-27 John W. Eaton - - * Sparse.cc (Sparse::diag): Handle case of diag (szv) when szv - is a sparse vector with nnz = 0. - - 2010-02-27 Jaroslav Hajek - - * Array-util.cc (gripe_index_out_of_range): New function. - * Array.cc (Array::range_error): Remove. - (Array::checkelem): Rewrite. - (Array::index, Array::delete_elements): Simplify. - * DiagArray2.cc (DiagArray2::checkelem): Use gripe_index_out_of_range. - * Range.cc (Range::checkelem, Range::index): Ditto. - - 2010-02-26 Jaroslav Hajek - - * mx-inlines.cc (OP_DUP_FCN): Remove. - (mx_inline_dup): Remove. - (mx_inline_not): Remove. - (mx_inline_make_complex): Remove. - (mx_inline_change_sign): Remove. - (mx_inline_fabs_dup): Remove. - (mx_inline_cabs_dup): Remove. - (mx_inline_imag_dup): Remove. - (mx_inline_real_dup): Remove. - (mx_inline_conj_dup): Remove. - (mx_inline_change_sign): Remove. - - 2010-02-26 Jaroslav Hajek - - * Array.h (Array::ArrayRep): Simplify copy constructor. Add - conversion constructor. - (Array): Remove pointer acquiring ctors. - (Array::maybe_economize): Update. - (Array::make_unique): Update. - * Array.cc (Array::fill): Update. - - * MArray.h (MArray::MArray (T *, ...)): Remove. - * DiagArray2.h (DiagArray2::DiagArray2 (T *, ...)): Remove. - * MDiagArray2.h (MDiagArray2::MDiagArray2 (T *, ...)): Remove. - * Array3.h (Array3::Array3 (T *, ...)): Remove. - - * dColVector.h (ColumnVector::ColumnVector (T *, ...)): Remove. - * fColVector.h (FloatColumnVector::FloatColumnVector (T *, ...)): Remove. - * CColVector.h (ComplexColumnVector::ComplexColumnVector (T *, ...)): Remove. - * fCColVector.h (FloatComplexColumnVector::FloatComplexColumnVector (T *, ...)): Remove. - - * dRowVector.h (RowVector::RowVector (T *, ...)): Remove. - * fRowVector.h (FloatRowVector::FloatRowVector (T *, ...)): Remove. - * CRowVector.h (ComplexRowVector::ComplexRowVector (T *, ...)): Remove. - * fCRowVector.h (FloatComplexRowVector::FloatComplexRowVector (T *, ...)): Remove. - - * dMatrix.h (Matrix::Matrix (T *, ...)): Remove. - * fMatrix.h (FloatMatrix::FloatMatrix (T *, ...)): Remove. - * CMatrix.h (ComplexMatrix::ComplexMatrix (T *, ...)): Remove. - * fCMatrix.h (FloatComplexMatrix::FloatComplexMatrix (T *, ...)): Remove. - * boolMatrix.h (boolMatrix::boolMatrix (T *, ...)): Remove. - * chMatrix.h (charMatrix::charMatrix (T *, ...)): Remove. - - * dNDArray.h (NDArray::NDArray (T *, ...)): Remove. - * fNDArray.h (FloatNDArray::FloatNDArray (T *, ...)): Remove. - * CNDArray.h (ComplexNDArray::ComplexNDArray (T *, ...)): Remove. - * fCNDArray.h (FloatComplexNDArray::FloatComplexNDArray (T *, ...)): Remove. - * boolNDArray.h (boolNDArray::boolNDArray (T *, ...)): Remove. - * chNDArray.h (charNDArray::charNDArray (T *, ...)): Remove. - - 2010-02-26 Jaroslav Hajek - - * DiagArray2.h (DiagArray2): Clean up ctors. Remove Proxy class. - Remove non-const two-index elem methods. - * DiagArray2.cc: Update. - * MDiagArray2.h: Update. - - * dDiagArray2.h: Update. - * dDiagArray2.cc: Update. - * fDiagArray2.h: Update. - * fDiagArray2.cc: Update. - * CDiagArray2.h: Update. - * CDiagArray2.cc: Update. - * fCDiagArray2.h: Update. - * fCDiagArray2.cc: Update. - - * dMatrix.cc: Update. - * fMatrix.cc: Update. - * CMatrix.cc: Update. - * fCMatrix.cc: Update. - - * dRowVector.cc: Update. - * fRowVector.cc: Update. - * CRowVector.cc: Update. - * fCRowVector.cc: Update. - - * dColVector.cc: Update. - * fColVector.cc: Update. - * CColVector.cc: Update. - * fCColVector.cc: Update. - - * dColVector.cc (ColumnVector::abs): New method. - * dColVector.h: Declare it. - * fColVector.cc (FloatColumnVector::abs): New method. - * fColVector.h: Declare it. - * CColVector.cc (ComplexColumnVector::abs): New method. - * CColVector.h: Declare it. - * fCColVector.cc (FloatComplexColumnVector::abs): New method. - * fCColVector.h: Declare it. - - 2010-02-26 Jaroslav Hajek - - * mx-inlines.cc: Parameterize all appliers by value types rather than - Array types. Return & accept Array instances. - * mx-op-defs.h: Update references. - * CMatrix.cc: Ditto. - * CNDArray.cc: Ditto. - * DiagArray2.h: Ditto. - * MArray.cc: Ditto. - * boolMatrix.cc: Ditto. - * boolNDArray.cc: Ditto. - * bsxfun-defs.cc: Ditto. - * chMatrix.cc: Ditto. - * chNDArray.cc: Ditto. - * dMatrix.cc: Ditto. - * dNDArray.cc: Ditto. - * fCMatrix.cc: Ditto. - * fCNDArray.cc: Ditto. - * fMatrix.cc: Ditto. - * fNDArray.cc: Ditto. - * intNDArray.cc: Ditto. - * MDiagArray2.cc: Remove computed assignment operators, adapt - operators to new mechanism. - * MDiagArray2.h: Declare operators as friends. - * MArray-decl.h (MDIAGARRAY2_OPS_FRIEND_DECLS): Don't expand - MARRAY_OP_ASSIGN_FRIENDS here. - - 2010-02-25 John W. Eaton - - * eigs-base.cc: Use octave_idx_type for Fortran LOGICAL values - in function prototypes. - (EigsRealSymmetricMatrix, EigsRealSymmetricMatrixShift, - EigsRealSymmetricFunc, EigsRealNonSymmetricMatrix, - EigsRealNonSymmetricMatrixShift, EigsRealNonSymmetricFunc, - EigsComplexNonSymmetricMatrix, EigsComplexNonSymmetricMatrixShift, - EigsComplexNonSymmetricFunc): Declare rvec argument as bool, not int. - Fix explicit instantiations to match. - - 2010-02-25 Jaroslav Hajek - - * oct-mem.h (safe_size_comp): New helper func. - (no_ctor_new): Call it here. - - 2010-02-25 Jaroslav Hajek - - * oct-mem.h (copy_or_memcpy, fill_or_memset, no_ctor_new): Accept - size_t rather than octave_idx_type. - * Array.h (Array::byte_size): Correct calculation. - * DiagArray2.h (DiagArray2::byte_size): Call inherited byte_size. - * PermMatrix.h (PermMatrix::byte_size): Ditto. - - 2010-02-25 Jaroslav Hajek - - * str-vec.h (string_vector::string_vector): Use (n, 1). - (string_vector::resize): Ditto. - * str-vec.cc (string_vector::string_vector): Ditto. - - 2010-02-24 Jaroslav Hajek - - * Array.cc (Array::Array (const Array&, octave_idx_type, - octave_idx_type): New ctor. - (Array::reshape (octave_idx_type, octave_idx_type): New method. - * Array.h: Declare them. - * Array2.h: Deprecate Array2, make it a #define for Array. - - * Array-C.cc: Remove Array2 instantiation. - * Array-b.cc: Ditto. - * Array-ch.cc: Ditto. - * Array-d.cc: Ditto. - * Array-f.cc: Ditto. - * Array-fC.cc: Ditto. - * Array-i.cc: Ditto. - * Array-s.cc: Ditto. - * Array-voidp.cc: Ditto. - - * CMatrix.cc: Use Array instead of Array2 everywhere. - * CMatrix.h: Ditto. - * CNDArray.cc: Ditto. - * DiagArray2.cc: Ditto. - * DiagArray2.h: Ditto. - * MDiagArray2.h: Ditto. - * Sparse.cc: Ditto. - * Sparse.h: Ditto. - * boolMatrix.h: Ditto. - * boolNDArray.cc: Ditto. - * chMatrix.h: Ditto. - * chNDArray.cc: Ditto. - * dMatrix.cc: Ditto. - * dMatrix.h: Ditto. - * dNDArray.cc: Ditto. - * fCMatrix.cc: Ditto. - * fCMatrix.h: Ditto. - * fCNDArray.cc: Ditto. - * fMatrix.cc: Ditto. - * fMatrix.h: Ditto. - * fNDArray.cc: Ditto. - * lo-specfun.cc: Ditto. - * lo-specfun.h: Ditto. - - 2010-02-23 Jaroslav Hajek - - * chMatrix.h (charMatrix): Base on Array. - * chMatrix.cc (charMatrix): Update. - * boolMatrix.h (boolMatrix): Ditto. - * boolMatrix.h (boolMatrix): Update. - - 2010-02-23 Jaroslav Hajek - - * Array.h (Array): Define 2D constructors. Remove conflicting 1D - initialized constructor. Deprecate 1D constructor. Deprecate 1D resize. - Add 2D resize, resize1. Remove resize_fill. Make resize_fill_value - return a reference. Remove 1D clear. - - * MArray.h (MArray): Merge with MArrayN. Define 2D constructors, sync - with Array changes. - - * MArrayN.h, MArray2.h: Deprecate headers, use compatibility #defines. - * MArrayN.cc, MArray2.cc: Remove sources. - * Makefile.am: Update. - - * fCMatrix.h (FloatComplexMatrix): Rebase on MArray. - * fMatrix.h (FloatMatrix): Ditto. - * dMatrix.h (Matrix): Ditto. - * CMatrix.h (ComplexMatrix): Ditto. - * fCNDArray.h (FloatComplexNDArray): Rebase on MArray. - * fNDArray.h (FloatNDArray): Ditto. - * dNDArray.h (NDArray): Ditto. - * CNDArray.h (ComplexNDArray): Ditto. - - * Array-util.cc: Update. - * Array.cc: Ditto. - * Array2.h: Ditto. - * Array3.h: Ditto. - * CColVector.cc: Ditto. - * CColVector.h: Ditto. - * CMatrix.cc: Ditto. - * CNDArray.cc: Ditto. - * CRowVector.cc: Ditto. - * CSparse.cc: Ditto. - * ChangeLog: Ditto. - * CmplxCHOL.cc: Ditto. - * CmplxHESS.cc: Ditto. - * CmplxLU.cc: Ditto. - * CmplxQRP.cc: Ditto. - * CmplxSCHUR.cc: Ditto. - * CmplxSVD.cc: Ditto. - * CollocWt.cc: Ditto. - * DASPK-opts.in: Ditto. - * DASPK.cc: Ditto. - * DASRT-opts.in: Ditto. - * DASRT.cc: Ditto. - * DASSL-opts.in: Ditto. - * DASSL.cc: Ditto. - * DiagArray2.cc: Ditto. - * DiagArray2.h: Ditto. - * EIG.cc: Ditto. - * LSODE-opts.in: Ditto. - * LSODE.cc: Ditto. - * MArray-C.cc: Ditto. - * MArray-d.cc: Ditto. - * MArray-defs.h: Ditto. - * MArray-f.cc: Ditto. - * MArray-fC.cc: Ditto. - * MArray-i.cc: Ditto. - * MArray-s.cc: Ditto. - * MArray.cc: Ditto. - * MDiagArray2.h: Ditto. - * MSparse-defs.h: Ditto. - * MSparse.cc: Ditto. - * MSparse.h: Ditto. - * Makefile.am: Ditto. - * MatrixType.cc: Ditto. - * PermMatrix.cc: Ditto. - * Quad.cc: Ditto. - * SparseCmplxLU.cc: Ditto. - * SparseCmplxQR.cc: Ditto. - * SparseCmplxQR.h: Ditto. - * SparseQR.cc: Ditto. - * SparseQR.h: Ditto. - * SparsedbleLU.cc: Ditto. - * base-lu.cc: Ditto. - * dColVector.h: Ditto. - * dMatrix.cc: Ditto. - * dNDArray.cc: Ditto. - * dRowVector.h: Ditto. - * dSparse.cc: Ditto. - * dbleCHOL.cc: Ditto. - * dbleHESS.cc: Ditto. - * dbleLU.cc: Ditto. - * dbleQRP.cc: Ditto. - * dbleSCHUR.cc: Ditto. - * dbleSVD.cc: Ditto. - * dim-vector.h: Ditto. - * eigs-base.cc: Ditto. - * fCColVector.cc: Ditto. - * fCColVector.h: Ditto. - * fCMatrix.cc: Ditto. - * fCNDArray.cc: Ditto. - * fCRowVector.cc: Ditto. - * fCRowVector.h: Ditto. - * fCmplxCHOL.cc: Ditto. - * fCmplxHESS.cc: Ditto. - * fCmplxLU.cc: Ditto. - * fCmplxQRP.cc: Ditto. - * fCmplxSCHUR.cc: Ditto. - * fCmplxSVD.cc: Ditto. - * fColVector.h: Ditto. - * fEIG.cc: Ditto. - * fMatrix.cc: Ditto. - * fNDArray.cc: Ditto. - * fRowVector.h: Ditto. - * floatCHOL.cc: Ditto. - * floatHESS.cc: Ditto. - * floatLU.cc: Ditto. - * floatQRP.cc: Ditto. - * floatSCHUR.cc: Ditto. - * floatSVD.cc: Ditto. - * glob-match.h: Ditto. - * int16NDArray.h: Ditto. - * int32NDArray.h: Ditto. - * int64NDArray.h: Ditto. - * int8NDArray.h: Ditto. - * intNDArray.cc: Ditto. - * intNDArray.h: Ditto. - * oct-fftw.cc: Ditto. - * oct-norm.cc: Ditto. - * oct-rand.cc: Ditto. - * regex-match.cc: Ditto. - * sparse-dmsolve.cc: Ditto. - * str-vec.cc: Ditto. - * str-vec.h: Ditto. - * uint16NDArray.h: Ditto. - * uint32NDArray.h: Ditto. - * uint64NDArray.h: Ditto. - * uint8NDArray.h: Ditto. - - 2010-02-22 John W. Eaton - - * data-conv.cc, data-conv.h (read_floats, read_doubles, - do_float_format_conversion, do_double_format_conversion): - Declare len arg and loop counter as octave_idx_type, not int. - (strip_spaces): Use size_t for string dimension and index, not int. - (LS_DO_READ, LS_DO_WRITE): Declare loop counter as - octave_idx_type, not int. - (write_floats, write_doubles): - Declare len arg as octave_idx_type, not int. - (IEEE_big_double_to_IEEE_little_double, - VAX_D_double_to_IEEE_little_double, - VAX_G_double_to_IEEE_little_double, - Cray_to_IEEE_little_double, - IEEE_big_float_to_IEEE_little_float, - VAX_D_float_to_IEEE_little_float, - VAX_G_float_to_IEEE_little_float, Cray_to_IEEE_little_float, - IEEE_little_double_to_IEEE_big_double, - VAX_D_double_to_IEEE_big_double, - VAX_G_double_to_IEEE_big_double, Cray_to_IEEE_big_double, - IEEE_little_float_to_IEEE_big_float, - VAX_D_float_to_IEEE_big_float, VAX_G_float_to_IEEE_big_float, - Cray_to_IEEE_big_float, IEEE_little_double_to_VAX_D_double, - IEEE_big_double_to_VAX_D_double, - VAX_G_double_to_VAX_D_double, Cray_to_VAX_D_double, - IEEE_little_float_to_VAX_D_float, - IEEE_big_float_to_VAX_D_float, VAX_G_float_to_VAX_D_float, - Cray_to_VAX_D_float, IEEE_little_double_to_VAX_G_double, - IEEE_big_double_to_VAX_G_double, - VAX_D_double_to_VAX_G_double, Cray_to_VAX_G_double, - IEEE_little_float_to_VAX_G_float, - IEEE_big_float_to_VAX_G_float, VAX_D_float_to_VAX_G_float, - Cray_to_VAX_G_float, read_doubles): - Declare len arg as octave_idx_type, not int. - - 2010-02-21 Michael Goffioul - - * lo-sysdep.cc, lo-utils.h, oct-shlib.h: Define WIN32_LEAN_AND_MEAN - and don't #undef min/max. - * oct-inttypes.h: Don't #undef min/max. - - * oct-glob.cc (octave_glob): Convert backslashes to forward slashes - automatically before calling glob, and convert back after the call - (implementation from jwe). - - * Makefile.am: Add -bindir flag to liboctave_la_LDFLAGS. - - 2010-02-19 Jaroslav Hajek - - * idx-vector.cc (idx_vector::as_array, - idx_vector::idx_range_rep::as_array, - idx_vector::idx_scalar_rep::as_array, - idx_vector::idx_vector_rep::as_array): New methods. - * idx-vector.h: Declare them. - - 2010-02-17 John W. Eaton - - * oct-rand.cc: Include . Change declarations of ranlib - functions to take int32_t instead of octave_idx_type values. - Change all uses. - (octave_rand::do_seed): Use int32_t in union, not octave_idx_type. - (force_to_fit_range): Args are now int32_t, not octave_idx_type. - (octave_rand::initialize_ranlib_generators): Use int32_t in seed - calculation. - - 2010-02-17 Jaroslav Hajek - - * mx-op-defs.h (MINMAX_FCNS): Generalize. - * mx-op-decl.h (MINMAX_DECLS): Likewise. - - * int16NDArray.h, int32NDArray.h, int64NDArray.h, int8NDArray.h, - uint16NDArray.h, uint32NDArray.h, uint64NDArray.h, uint8NDArray.h: - Update. - * int16NDArray.cc, int32NDArray.cc, int64NDArray.cc, int8NDArray.cc, - uint16NDArray.cc, uint32NDArray.cc, uint64NDArray.cc, uint8NDArray.cc: - Update. - - * CNDArray.h, dNDArray.h, fCNDArray.h, fNDArray.h: Replace explicit - decls. - - * CNDArray.cc, dNDArray.cc, fCNDArray.cc, fNDArray.cc: Replace explicit - definitions. - - - 2010-02-11 John W. Eaton - - * sparse-mk-ops.awk, mk-ops.awk, filemode.c, lo-cieee.c, - oct-rl-hist.c, randgamma.c, randmtzig.c, randpoisson.c, - tempnam.c, tempname.c: Untabify. - - 2010-02-11 John W. Eaton - - * Array-C.cc, Array-fC.cc, Array-util.cc, Array.cc, - CColVector.cc, CDiagMatrix.cc, CMatrix.cc, CNDArray.cc, - CRowVector.cc, CSparse.cc, CmplxAEPBAL.cc, CmplxCHOL.cc, - CmplxGEPBAL.cc, CmplxHESS.cc, CmplxLU.cc, CmplxQR.cc, - CmplxQRP.cc, CmplxSCHUR.cc, CmplxSVD.cc, CollocWt.cc, DASPK.cc, - DASRT.cc, DASSL.cc, EIG.cc, LSODE.cc, MSparse.cc, MatrixType.cc, - ODES.cc, Quad.cc, Range.cc, Sparse-C.cc, Sparse.cc, - SparseCmplxCHOL.cc, SparseCmplxLU.cc, SparseCmplxQR.cc, - SparseQR.cc, SparsedbleCHOL.cc, SparsedbleLU.cc, boolNDArray.cc, - boolSparse.cc, chMatrix.cc, chNDArray.cc, cmd-edit.cc, - cmd-hist.cc, dColVector.cc, dDiagMatrix.cc, dMatrix.cc, - dNDArray.cc, dRowVector.cc, dSparse.cc, data-conv.cc, - dbleAEPBAL.cc, dbleCHOL.cc, dbleGEPBAL.cc, dbleHESS.cc, - dbleLU.cc, dbleQR.cc, dbleQRP.cc, dbleSCHUR.cc, dbleSVD.cc, - dir-ops.cc, eigs-base.cc, fCColVector.cc, fCDiagMatrix.cc, - fCMatrix.cc, fCNDArray.cc, fCRowVector.cc, fCmplxAEPBAL.cc, - fCmplxCHOL.cc, fCmplxGEPBAL.cc, fCmplxHESS.cc, fCmplxLU.cc, - fCmplxQR.cc, fCmplxQRP.cc, fCmplxSCHUR.cc, fCmplxSVD.cc, - fColVector.cc, fDiagMatrix.cc, fEIG.cc, fMatrix.cc, fNDArray.cc, - fRowVector.cc, file-stat.cc, floatAEPBAL.cc, floatCHOL.cc, - floatGEPBAL.cc, floatHESS.cc, floatLU.cc, floatQR.cc, - floatQRP.cc, floatSCHUR.cc, floatSVD.cc, idx-vector.cc, - intNDArray.cc, kpse.cc, lo-ieee.cc, lo-mappers.cc, - lo-specfun.cc, lo-sysdep.cc, lo-utils.cc, mach-info.cc, - mx-inlines.cc, oct-alloc.cc, oct-env.cc, oct-fftw.cc, - oct-glob.cc, oct-group.cc, oct-inttypes.cc, oct-md5.cc, - oct-rand.cc, oct-shlib.cc, oct-sort.cc, oct-spparms.cc, - oct-syscalls.cc, oct-time.cc, pathsearch.cc, regex-match.cc, - sparse-base-chol.cc, sparse-base-lu.cc, sparse-dmsolve.cc, - sparse-sort.cc, sparse-util.cc, str-vec.cc: Untabify. - - 2010-02-11 John W. Eaton - - * Array-util.h, Array.h, Array2.h, Array3.h, CColVector.h, - CMatrix.h, CNDArray.h, CRowVector.h, CSparse.h, CmplxCHOL.h, - CmplxGEPBAL.h, CmplxHESS.h, CmplxLU.h, CmplxQRP.h, CmplxSCHUR.h, - CmplxSVD.h, CollocWt.h, DAE.h, DAEFunc.h, DAERT.h, DAERTFunc.h, - DASPK.h, DASRT.h, DASSL.h, DiagArray2.h, EIG.h, MArrayN.h, - MDiagArray2.h, MSparse-defs.h, MSparse.h, MatrixType.h, ODE.h, - ODEFunc.h, ODES.h, ODESFunc.h, Quad.h, Range.h, - Sparse-diag-op-defs.h, Sparse-op-defs.h, Sparse-perm-op-defs.h, - Sparse.h, SparseCmplxCHOL.h, SparseCmplxLU.h, SparseCmplxQR.h, - SparseQR.h, SparsedbleCHOL.h, SparsedbleLU.h, base-dae.h, - base-de.h, base-lu.h, base-min.h, base-qr.h, boolNDArray.h, - boolSparse.h, chNDArray.h, cmd-hist.h, dMatrix.h, dNDArray.h, - dSparse.h, data-conv.h, dbleCHOL.h, dbleGEPBAL.h, dbleHESS.h, - dbleLU.h, dbleQRP.h, dbleSCHUR.h, dbleSVD.h, dir-ops.h, - fCColVector.h, fCMatrix.h, fCNDArray.h, fCRowVector.h, - fCmplxCHOL.h, fCmplxGEPBAL.h, fCmplxHESS.h, fCmplxLU.h, - fCmplxQRP.h, fCmplxSCHUR.h, fCmplxSVD.h, fEIG.h, fMatrix.h, - fNDArray.h, file-stat.h, floatCHOL.h, floatGEPBAL.h, - floatHESS.h, floatLU.h, floatQRP.h, floatSCHUR.h, floatSVD.h, - glob-match.h, idx-vector.h, intNDArray.h, lo-ieee.h, - lo-specfun.h, mx-op-decl.h, mx-op-defs.h, oct-env.h, oct-fftw.h, - oct-group.h, oct-inttypes.h, oct-mutex.h, oct-passwd.h, - oct-rand.h, oct-shlib.h, oct-sort.h, oct-spparms.h, oct-time.h, - oct-uname.h, pathsearch.h, sparse-base-chol.h, sparse-base-lu.h, - sparse-sort.h, sparse-util.h, statdefs.h, str-vec.h: Untabify. - - 2010-02-10 John W. Eaton - - * dMatrix.h (template Matrix (const Array&)): - New constructor. - * CMatrix.h (template ComplexMatrix (const Array&)): - New constructor. - * fMatrix.h (template FloatMatrix (const Array&)): - New constructor. - * fCMatrix.h (template FloatComplexMatrix (const Array&)): - New constructor. - - 2010-02-09 Jaroslav Hajek - - * idx-vector.cc (idx_vector::idx_vector_rep::idx_vector_rep (const - Array&, octave_idx_type, direct)): New constructor. - * idx-vector.h: Declare it. - (idx_vector::idx_vector (const Array&, - octave_idx_type)): New constructor. - - 2010-02-08 John W. Eaton - - * oct-time.cc: Include "strftime.h", not . - * file-ops.cc: Include "pathmax.h", not . - - 2010-02-08 John W. Eaton - - * oct-env.cc (octave_env::prog_invocation_name): Rename from - program_invocation_name. Change all uses. - (octave_env::prog_name): Rename from program_name. Change all uses. - (octave_env::do_set_program_name): Call ::set_program_name - function from gnulib. - - 2010-02-08 Jaroslav Hajek - - * idx-vector.h (idx_vector::idx_base_rep::sort_idx): New pure virtual - function. - (idx_vector::idx_colon_rep::sort_idx, - idx_vector::idx_range_rep::sort_idx, - idx_vector::idx_scalar_rep::sort_idx, - idx_vector::idx_vector_rep::sort_idx, - idx_vector::idx_mask_rep::sort_idx): New override decls. - idx_vector::sort (Array&): New method. - * idx-vector.cc (idx_vector::idx_range_rep::sort_idx, - idx_vector::idx_vector_rep::sort_idx): New methods. - (idx_vector::idx_vector_rep::sort_uniq_clone): Rewrite - to use bucket sort under plausible circumstances. - - 2010-02-08 Jaroslav Hajek - - * Array.cc (Array::permute): Fix result dimensions when inv=true. - - 2010-02-05 Jaroslav Hajek - - * MArrayN.cc (MArrayN::idx_min, MArrayN::idx_max): New methods. - * MArrayN.h: Declare them. - * lo-mappers.h (xmin, xmax): Define for general arguments. - - 2010-02-04 Jaroslav Hajek - - * chMatrix.h (charMatrix): Rebase directly on Array. - * chNDArray.h (charNDArray): Ditto. - * chMatrix.cc: Update. - * chNDArray.cc: Update. - * MArray-ch.cc: Remove. - * Makefile.am: Update. - - 2010-02-04 John W. Eaton - - * lo-cutils.c (gethostname): Delete function. - * lo-sysdep.h (gethostname): Delete declaration. - - 2010-02-03 John W. Eaton - - * oct-syscalls.h, oct-syscalls.cc (octave_fcntl): Assume fcntl exists. - Rename from octave_syscalls::fcntl. - (octave_syscalls::popen2): Call octave_fcntl, not fcntl. - * cmd-hist.cc, lo-sysdep.cc, oct-syscalls.cc: - Include unconditionally. - - 2010-02-03 John W. Eaton - - * dbleSVD.cc (SVD::init): Ensure args to std::max are the same type. - * CmplxSVD.cc (ComplexSVD::init): Likewise. - * floatSVD.cc (FloatSVD::init): Likewise. - * fCmplxSVD.cc (FloatComplexSVD::init): Likewise. - * idx-vector.cc (idx_range_rep): Likewise. - * Array.cc (Array::nth_element): Likewise. - - * lo-specfun.cc (null_dims): Delete unused static variable. - (betainc): Call dim_vector (0, 0), not dim_vector (0). - - 2010-02-03 John W. Eaton - - * file-ops.h (octave_canonicalize_file_name): Rename from - file_ops::canonicalize_file_name. - - 2010-02-03 John W. Eaton - - * file-ops.cc (canonicalize_file_name): - Don't pass current directory to octave_env::make_absolute. - * cmd-edit.cc (do_decode_prompt_string): Likewise. - - * oct-env.h (octave_env::get_current_directory): - Rename from octave_env::getcwd. - (octave_env::make_absolute): Provide default value for second arg. - - * lo-sysdep.cc (octave_getcwd): Assume we are using gnulib - getcwd module. - - 2010-02-02 John W. Eaton - - * oct-time.h: Include , not "systime.h". - * oct-time.cc: Include , not "strftime.h". - Don't include . - - * systime.h: Delete. - * Makefile.am (INCS): Remove it from the list. - - 2010-02-02 John W. Eaton - - * lo-utils.h, lo-cutils.c (oct_strptime): Delete. - * oct-time.cc (octave_strptime::init): Call strptime, not oct_strptime. - - 2010-01-28 Jaroslav Hajek - - * dMatrix.cc (Matrix::determinant): Treat matrices marked as singular - normally. - * fMatrix.cc (FloatMatrix::determinant): Ditto. - * CMatrix.cc (ComplexMatrix::determinant): Ditto. - * fCMatrix.cc (FloatComplexMatrix::determinant): Ditto. - - 2010-01-26 John W. Eaton - - * file-ops.cc: Don't tag functions with OCTAVE_API in source file. - - 2010-01-26 John W. Eaton - - * lo-cutils.c, lo-utils.h (octave_link, octave_symlink, - octave_readlink, octave_mkdir, octave_mkfifo, octave_rmdir, - octave_rename, octave_tempnam, octave_umask, octave_unlink): - Delete. - * file-io.h, file-io.cc (octave_mkdir, octave_mkfifo, - octave_link, octave_symlink, octave_readlink, octave_rename, - octave_rmdir, octave_recursive_rmdir, octave_umask, - octave_unlink, octave_tempnam): Rename from file_ops::X to - octave_X. Change all uses. - (file_ops::static_members): Incorporate directly into file_ops class. - - 2010-01-23 John W. Eaton - - * Makefile.am (LIBOCTAVE_C_SOURCES): Remove oct-getopt.c from the list. - (LIBOCTAVE_CXX_SOURCES): Remove prog-args.c from the list. - (INCS): Remove prog-args.h and oct-getopt.h from the list. - * prog-args.cc, prog-args.h, oct-getopt.c, oct-getopt.h: Delete. - - 2010-01-22 John W. Eaton - - * prog-args.h, prog-args.cc (prog_args::get_option, - prog_args::option_argument, prog_args::option_index): - Don't declare const. - - 2010-01-22 John W. Eaton - - * prog-args.h, prog-args.cc (prog_args::get_option): - Rename from getopt. Now const. - (prog_args::option_argument): Rename from optarg. Now const. - (prog_args::option_index): Rename from optind. Now const. - - 2010-01-22 John W. Eaton - - * file-ops.cc: Don't include statdefs.h. - - 2010-01-22 Jaroslav Hajek - - * dbleSVD.cc (SVD::init): Ensure LD* arguments >= 1. - * floatSVD.cc (FloatSVD::init): Likewise. - * CmplxSVD.cc (ComplexSVD::init): Likewise. - * fCmplxSVD.cc (FloatComplexSVD::init): Likewise. - - 2010-01-21 John W. Eaton - - * CMatrix.cc, fCMatrix.cc, cmd-edit.cc, cmd-hist.cc, - file-ops.cc, file-ops.h, file-stat.cc, file-stat.h, filemode.c, - kpse.cc, lo-cutils.c, lo-sysdep.cc, lo-utils.cc, oct-env.cc, - oct-group.cc, oct-group.h, oct-passwd.cc, oct-passwd.h, - oct-time.cc, oct-syscalls.cc, oct-syscalls.h, statdefs.h, - sysdir.h, syswait.h, tempname.c, regex-match.h: - Assume sys/types.h and unistd.h are present (gnulib provides them). - - 2010-01-21 John W. Eaton - - * file-ops.h, file-ops.cc, lo-utils.h, lo-cutils.c: Untabify. - - * file-ops.cc: Don't include unistd.h. - (NOT_SUPPORTED): Delete unused macro. - - 2010-01-21 John W. Eaton - - * lo-cutils.c (octave_tempnam): New funtion. - * lo-utils.h: Provide decl. - * file-ops.cc (file_ops::tempnam): Call octave_tempnam. - - 2010-01-21 John W. Eaton - - * lo-cutils.c (octave_readlink): New funtion. - * lo-utils.h: Provide decl. - * file-ops.cc (file_ops::readlink): Call octave_readlink. - - 2010-01-21 John W. Eaton - - * lo-cutils.c (octave_symlink): New funtion. - * lo-utils.h: Provide decl. - * file-ops.cc (file_ops::symlink): Call octave_symlink. - - 2010-01-21 John W. Eaton - - * lo-cutils.c (octave_link): New funtion. - * lo-utils.h: Provide decl. - * file-ops.cc (file_ops::link): Call octave_link. - - 2010-01-21 John W. Eaton - - * lo-cutils.c (octave_unlink): New funtion. - * lo-utils.h: Provide decl. - * file-ops.cc (file_ops::unlink): Call octave_unlink. - - 2010-01-21 John W. Eaton - - * lo-cutils.c (octave_umask): New funtion. - * lo-utils.h: Provide decl. - * file-ops.cc (file_ops::umask): Call octave_umask. - - 2010-01-21 John W. Eaton - - * file-ops.h (file_ops::mkdir): Move definitions to file-ops.cc. - (file_ops::mkfifo): Move definitions to file-ops.cc. - (file_ops::mkdir_internal, file_ops::mkfifo_internal): Delete decls. - * file-ops.cc (file_ops::mkdir): Call octave_mkdir. - (file_ops::mkfifo): Call octave_mkfifo. - * lo-cutils.c (octave_mkdir, octave_mkfifo): New functions. - * lo-utils.h: Provide decls. - - 2010-01-21 John W. Eaton - - * Makefile.am (LIBOCTAVE_C_SOURCES): Remove strptime.c from the list. - * strptime.c: Delete. - - 2010-01-21 John W. Eaton - - * lo-cutils.c (octave_rename): New funtion. - * lo-utils.h: Provide decl. - * file-ops.cc (file_ops::rename): Call octave_rename. - * Makefile.am (LIBOCTAVE_C_SOURCES): Remove rename.c from the list. - * rename.c: Delete. - - 2010-01-21 John W. Eaton - - * lo-cutils.c (octave_rmdir): New function. - * lo-utils.h: Provide decl. - * file-ops.cc (file_ops::rmdir): Call octave_rmdir. - * Makefile.am (LIBOCTAVE_C_SOURCES): Remove rmdir.c from the list. - * rmdir.c: Delete. - - 2010-01-21 John W. Eaton - - * Makefile.am (LIBOCTAVE_C_SOURCES): Remove strcasecmp.c and - strncase.c from the list. - * strcasecmp.c, strncase.c: Delete. - - 2010-01-21 John W. Eaton - - * Makefile.am (INCS): Remove getopt.h from the list. - (LIBOCTAVE_C_SOURCES): Remove getopt.c and getopt1.c from the list. - * getopt.c, getopt1.c, getopt.h: Delete. - - 2010-01-20 John W. Eaton - - * Array-C.cc, Array-b.cc, Array-ch.cc, Array-d.cc, Array-f.cc, - Array-fC.cc, Array-i.cc, Array-idx-vec.cc, Array-s.cc, - Array-str.cc, Array-util.cc, Array-voidp.cc, Array.cc, - CColVector.cc, CDiagMatrix.cc, CMatrix.cc, CNDArray.cc, - CRowVector.cc, CSparse.cc, CmplxAEPBAL.cc, CmplxCHOL.cc, - CmplxGEPBAL.cc, CmplxHESS.cc, CmplxLU.cc, CmplxQR.cc, - CmplxQRP.cc, CmplxSCHUR.cc, CmplxSVD.cc, CollocWt.cc, DASPK.cc, - DASRT.cc, DASSL.cc, DiagArray2.cc, EIG.cc, LSODE.cc, - MArray-C.cc, MArray-ch.cc, MArray-d.cc, MArray-f.cc, - MArray-fC.cc, MArray-i.cc, MArray-s.cc, MArray.cc, MArray2.cc, - MArrayN.cc, MDiagArray2.cc, MSparse-C.cc, MSparse-d.cc, - MSparse.cc, MatrixType.cc, ODES.cc, Quad.cc, Range.cc, - Sparse-C.cc, Sparse-b.cc, Sparse-d.cc, Sparse.cc, - SparseCmplxCHOL.cc, SparseCmplxLU.cc, SparseCmplxQR.cc, - SparseQR.cc, SparsedbleCHOL.cc, SparsedbleLU.cc, base-lu.cc, - boolMatrix.cc, boolNDArray.cc, boolSparse.cc, chMatrix.cc, - chNDArray.cc, cmd-edit.cc, cmd-hist.cc, dColVector.cc, - dDiagMatrix.cc, dMatrix.cc, dNDArray.cc, dRowVector.cc, - dSparse.cc, data-conv.cc, dbleAEPBAL.cc, dbleCHOL.cc, - dbleGEPBAL.cc, dbleHESS.cc, dbleLU.cc, dbleQR.cc, dbleQRP.cc, - dbleSCHUR.cc, dbleSVD.cc, dir-ops.cc, eigs-base.cc, - fCColVector.cc, fCDiagMatrix.cc, fCMatrix.cc, fCNDArray.cc, - fCRowVector.cc, fCmplxAEPBAL.cc, fCmplxCHOL.cc, fCmplxGEPBAL.cc, - fCmplxHESS.cc, fCmplxLU.cc, fCmplxQR.cc, fCmplxQRP.cc, - fCmplxSCHUR.cc, fCmplxSVD.cc, fColVector.cc, fDiagMatrix.cc, - fEIG.cc, fMatrix.cc, fNDArray.cc, fRowVector.cc, file-ops.cc, - file-stat.cc, floatAEPBAL.cc, floatCHOL.cc, floatGEPBAL.cc, - floatHESS.cc, floatLU.cc, floatQR.cc, floatQRP.cc, - floatSCHUR.cc, floatSVD.cc, glob-match.cc, idx-vector.cc, - int16NDArray.cc, int32NDArray.cc, int64NDArray.cc, - int8NDArray.cc, intNDArray.cc, kpse.cc, lo-ieee.cc, - lo-mappers.cc, lo-specfun.cc, lo-sysdep.cc, lo-utils.cc, - mach-info.cc, mx-inlines.cc, oct-alloc.cc, oct-env.cc, - oct-fftw.cc, oct-group.cc, oct-inttypes.cc, oct-md5.cc, - oct-passwd.cc, oct-rand.cc, oct-shlib.cc, oct-sort.cc, - oct-spparms.cc, oct-syscalls.cc, oct-time.cc, oct-uname.cc, - pathsearch.cc, prog-args.cc, regex-match.cc, - sparse-base-chol.cc, sparse-base-lu.cc, sparse-dmsolve.cc, - sparse-sort.cc, sparse-util.cc, str-vec.cc, uint16NDArray.cc, - uint32NDArray.cc, uint64NDArray.cc, uint8NDArray.cc, - f2c-main.c, lo-cieee.c, lo-cutils.c, oct-getopt.c, - oct-rl-edit.c, oct-rl-hist.c, randgamma.c, randmtzig.c, - randpoisson.c, Array-util.h, Array.h, Array2.h, Array3.h, - ArrayN.h, CColVector.h, CDiagMatrix.h, CMatrix.h, CNDArray.h, - CRowVector.h, CSparse.h, CmplxAEPBAL.h, CmplxCHOL.h, - CmplxGEPBAL.h, CmplxHESS.h, CmplxLU.h, CmplxQR.h, CmplxQRP.h, - CmplxSCHUR.h, CmplxSVD.h, CollocWt.h, DAE.h, DAEFunc.h, DAERT.h, - DAERTFunc.h, DASPK.h, DASRT.h, DASSL.h, DiagArray2.h, EIG.h, - LSODE.h, MArray.h, MArray2.h, MArrayN.h, MDiagArray2.h, - MSparse-defs.h, MSparse.h, Matrix.h, MatrixType.h, ODE.h, - ODEFunc.h, ODES.h, ODESFunc.h, Quad.h, Range.h, - Sparse-op-defs.h, Sparse.h, SparseCmplxCHOL.h, SparseCmplxLU.h, - SparseCmplxQR.h, SparseQR.h, SparsedbleCHOL.h, SparsedbleLU.h, - base-dae.h, base-de.h, base-lu.h, base-min.h, boolMatrix.h, - boolNDArray.h, boolSparse.h, byte-swap.h, chMatrix.h, - chNDArray.h, cmd-edit.h, cmd-hist.h, dColVector.h, - dDiagMatrix.h, dMatrix.h, dNDArray.h, dRowVector.h, dSparse.h, - data-conv.h, dbleAEPBAL.h, dbleCHOL.h, dbleGEPBAL.h, dbleHESS.h, - dbleLU.h, dbleQR.h, dbleQRP.h, dbleSCHUR.h, dbleSVD.h, - dir-ops.h, fCColVector.h, fCDiagMatrix.h, fCMatrix.h, - fCNDArray.h, fCRowVector.h, fCmplxAEPBAL.h, fCmplxCHOL.h, - fCmplxGEPBAL.h, fCmplxHESS.h, fCmplxLU.h, fCmplxQR.h, - fCmplxQRP.h, fCmplxSCHUR.h, fCmplxSVD.h, fColVector.h, - fDiagMatrix.h, fEIG.h, fMatrix.h, fNDArray.h, fRowVector.h, - file-ops.h, file-stat.h, floatAEPBAL.h, floatCHOL.h, - floatGEPBAL.h, floatHESS.h, floatLU.h, floatQR.h, floatQRP.h, - floatSCHUR.h, floatSVD.h, functor.h, glob-match.h, idx-vector.h, - int16NDArray.h, int32NDArray.h, int64NDArray.h, int8NDArray.h, - intNDArray.h, kpse-xfns.h, lo-ieee.h, lo-mappers.h, lo-math.h, - lo-specfun.h, lo-sysdep.h, lo-traits.h, lo-utils.h, mach-info.h, - mx-base.h, mx-defs.h, mx-ext.h, mx-op-defs.h, oct-alloc.h, - oct-cmplx.h, oct-env.h, oct-fftw.h, oct-getopt.h, oct-group.h, - oct-inttypes.h, oct-md5.h, oct-passwd.h, oct-rand.h, - oct-rl-edit.h, oct-rl-hist.h, oct-shlib.h, oct-sort.h, - oct-spparms.h, oct-syscalls.h, oct-time.h, oct-uname.h, - pathlen.h, pathsearch.h, prog-args.h, randgamma.h, randmtzig.h, - randpoisson.h, regex-match.h, sparse-base-chol.h, - sparse-base-lu.h, sparse-sort.h, sparse-util.h, statdefs.h, - str-vec.h, sun-utils.h, sysdir.h, systime.h, syswait.h, - uint16NDArray.h, uint32NDArray.h, uint64NDArray.h, - uint8NDArray.h: Remove Emacs local-variables settings. - - 2010-01-20 Jaroslav Hajek - - * boolNDArray.cc (boolNDArray::cumsum): Sum directly in double to - avoid a copy. - - 2010-01-20 John W. Eaton - - * dim-vector.h: Style fixes. Remove Emacs local variables block. - Untabify. - - 2010-01-20 John W. Eaton - - * Makefile.am (PRIVATE_INCS): New variable. List oct-glob.h - here instead of in INCS. - (liboctave_la_SOURCES): Include $(PRIVATE_INCS) in the list. - - * glob-match.cc (glob_match::match, glob_match::glob): Now const. - Move definitions here from glob-match.h. - - 2010-01-20 Jaroslav Hajek - - * mx-inlines.cc (mx_inline_any_r, mx_inline_all_r): New helper - reductors. - (mx_inline_any, mx_inline_all): Call the here in row-wise reduction - with few enough columns. - - 2010-01-20 Jaroslav Hajek - - * lo-mappers.h (xmin (double, double), xmax (double, double), - xmin (float, float), xmax (float, float)): Inline definitions. - * lo-mappers.cc (xmin (double, double), xmax (double, double), - xmin (float, float), xmax (float, float)): Remove from here. - * mx-inlines.cc (mx_inline_xmin, mx_inline_xmax): Provide - specializations for real array-scalar and scalar-array cases. - - 2010-01-20 Jaroslav Hajek - - * oct-norm.cc (norm_accumulator_p::accum, norm_accumulator_mp::accum): - Call octave_quit here. - (higham_subp): Also here. - - 2010-01-20 Jaroslav Hajek - - * mx-op-defs.h (SND_MINMAX_FCN, NDS_MINMAX_FCN, NDND_MINMAX_FCN): - Simplify using mx_inlines machinery. - * dNDArray (min, max): Simplify. - * fNDArray (min, max): Simplify. - * CNDArray (min, max): Simplify. - * fCNDArray (min, max): Simplify. - - 2010-01-20 Jaroslav Hajek - - * Array.h: Substitute OCTAVE_QUIT -> octave_quit (). - * CMatrix.cc: Ditto. - * CNDArray.cc: Ditto. - * CSparse.cc: Ditto. - * CmplxGEPBAL.cc: Ditto. - * MArrayN.cc: Ditto. - * MSparse.cc: Ditto. - * Sparse-diag-op-defs.h: Ditto. - * Sparse-op-defs.h: Ditto. - * Sparse-perm-op-defs.h: Ditto. - * Sparse.cc: Ditto. - * Sparse.h: Ditto. - * SparseCmplxQR.cc: Ditto. - * SparseQR.cc: Ditto. - * boolSparse.cc: Ditto. - * bsxfun-defs.cc: Ditto. - * dMatrix.cc: Ditto. - * dNDArray.cc: Ditto. - * dSparse.cc: Ditto. - * dbleGEPBAL.cc: Ditto. - * fCMatrix.cc: Ditto. - * fCNDArray.cc: Ditto. - * fCmplxGEPBAL.cc: Ditto. - * fMatrix.cc: Ditto. - * fNDArray.cc: Ditto. - * file-ops.cc: Ditto. - * floatGEPBAL.cc: Ditto. - * lo-utils.cc: Ditto. - * mx-op-defs.h: Ditto. - * oct-fftw.cc: Ditto. - * oct-norm.cc: Ditto. - * oct-rand.cc: Ditto. - * sparse-dmsolve.cc: Ditto. - - 2010-01-20 Jaroslav Hajek - - * bsxfun-defs.cc (BSXFUN_STDOP_DEFS_MXLOOP): Fix reversed min/max - defs. - - 2010-01-20 John W. Eaton - - * glob-match.h: Update copyright. - - 2010-01-20 John W. Eaton - - * Makefile.am (INCS): Include oct-glob.h in the list. - (LIBOCTAVE_CXX_SOURCES): Include oct-glob.cc in the list. - * oct-glob.h, oct-glob.cc: New files. - * glob-match.cc: (glob_match::match): Move internals to oct-glob.cc. - (glob_match::glob_internal): Move internals to oct-glob.cc. - (single_match_exists): Move to oct-glob.cc. - (glob_match::opts_to_fnmatch_flags): New function. - * glob-match.h Include oct-glob.h. - (glob_match::glob): Call octave_glob to do the real work. - (glob_match::glob_internal): Delete decl. - (glob_match::match (const string_vector&)): Move here from - glob-match.cc. - (glob_match::match (const std::string&)): Call octave_fnmatch to - do the real work. - (glob_match::fnmatch_flags): Rename from flags. - (glob_match::opts_to_fnmatch_flags): New function. - (glob_match::glob_match): Use it. - - 2010-01-17 Jaroslav Hajek - - * CMatrix.cc (xgemm): Use octave_idx_type rather than int. - * fCMatrix.cc (xgemm): Ditto. - - 2010-01-16 Michael Goffioul - - * oct-time.cc: Avoid to include nonneeded headers from Win32 API, - especially winsock.h. Include unconditionally, as it is - now provided by gnulib, in order to get gettimeofday defined. - - 2010-01-15 Jaroslav Hajek - - * Array.cc (Array::insert): Rewrite using assign. - (Array::insert2, Array::insertN): Remove. - * Array.h: Update declarations. Add brief documentation. - - 2010-01-15 Jaroslav Hajek - - * Array-b.cc: Inline ascending and descending sort. - (do_bool_partition): New helper template function. - (octave_sort::sort): Provide specializations. - - 2010-01-14 Jaroslav Hajek - - * Array.cc (Array::insert (const Array&, const - Array&): Allow less dimensions than indices. - - 2010-01-14 Jaroslav Hajek - - * chNDArray.h: Declare relational bsxfun ops. - * chNDArray.cc: Define them. - - 2010-01-14 John W. Eaton - - * CMatrix.cc: Fix prototype for zherk. - * fCMatrix.cc: Fix prototype for cherk. - - 2010-01-14 John W. Eaton - - * oct-rl-edit.c (octave_rl_set_name): Save arg before setting - rl_terminal_name. - - 2010-01-13 John W. Eaton - - * idx-vector.cc (idx_vector::idx_scalar_rep::idx_scalar_rep (T x)): - Initialize dummy variable. - - 2010-01-13 Jaroslav Hajek - - * Array.cc (Array::compute_index): Generalize to the case of - unequal lengths. - - 2010-01-13 Jaroslav Hajek - - * dim-vector.h (dim_vector::chop_trailing_singletons): Only uniquify - if really needed. - * Array.h (Array::Array (T*, const dim_vector&)): Call - chop_trailing_singletons. - (Array::Array (const Array&, const dim_vector&, - octave_idx_type...)): Ditto. - (Array::Array (const dim_vector&)): Ditto. - (Array::Array (const dim_vector&, const T&)): Ditto. - (Array::chop_trailing_singletons): Deprecate. - * Array.cc (Array::Array(const Array&, const dim_vector&)): Ditto. - (Array::index (const Array&, ...)): Ditto. - (Array::permute): Don't call deprecate method here. - (Array::assign): Neither here. - - 2010-01-11 Rik - - * Makefile.am: Remove unnecessary use of - simple_move_if_change_rule to allow Make to update timestamps. - - 2010-01-08 Jaroslav Hajek - - * Array.h (Array::crefT): New helper typedef. - (Array::elem const, Array::xelem const, - Array::checkelem const, Array::operator () const): Return crefT. - (Array::range_error const): Remove overloads. - * Array.cc (Array::range_error const): Remove overloads. - - 2010-01-07 John W. Eaton - - * oct-time.cc (octave_time::stamp): Assume gettimeofday is - available and that it takes two arguments. - - 2010-01-07 Jaroslav Hajek - - * lo-utils.cc (octave_fgets (FILE *, bool&)): Add OCTAVE_QUIT at the - end. - - 2010-01-05 John W. Eaton - - * Makefile.am (AM_CPPFLAGS): Include @CPPFLAGS@ and -I../libgnu - in the list. - - 2009-12-30 Jaroslav Hajek - - * idx-vector.cc (idx_vector::maybe_reduce): Implement reduction rule - for subsequent ones () indices. - - 2009-12-28 John W. Eaton - - * file-ops.cc (fle_ops::mkdir_internal, - file_ops::mkfifo_internal): New private static functions. - * file-ops.h (file_ops::mkdir, file_ops::mkdir): Move - definitions here from file-ops.cc. Forward to X_internal functions. - - 2009-12-26 John W. Eaton - - * file-stat.cc (lstat): Delete replacement function. - (file_fstat::update_internal): Assume fstat is available. - - 2009-12-25 John W. Eaton - - * file-ops.cc (file_ops::mkdir): Assume we have an mkdir - function that takes two arguments. - * mkdir.c: Delete. - * Makefile.am (LIBOCTAVE_C_SOURCES): Remove mkdir.c from the list. - - 2009-12-25 John W. Eaton - - * oct-md5.cc (oct_md5_result_to_str): New function. - (oct_md5, oct_md5_file): Simplify using gnulib md5 functions and - oct_md5_result_to_str. - - * Makefile.am (INCS): Remove md5.h from the list. - (LIBOCTAVE_C_SOURCES): Remove md5.c from the list. - * md5.c, md5.h: Delete. - - 2009-12-19 Rik - - * Makefile.am: Eliminate TOPDIR variable in favor of built-in - automake variables of top_builddir and top_srcdir. - - 2009-12-17 John W. Eaton - - * glob-match.h, glob-match.cc (glob_match::glob_internal): - Rename from glob_match::glob and make private. - * glob-match.h (glob_match::glob): Forward to glob_internal. - - 2009-12-15 Jaroslav Hajek - - * Array.cc (Array::index (const idx_vector&)): Fix determining of - result dimensions. - - 2009-12-15 Jaroslav Hajek - - * Range.cc (Range::elem, Range::checkelem, Range::index): - New methods. - * Range.h: Declare them. - - 2009-12-15 Jaroslav Hajek - - * idx-vector.h (idx_vector::loop, idx_vector::bloop): Fix behavior for - masks. - - 2009-12-13 Rik - - * Makefile.am: Use DISTCLEANFILES rather than distclean-local rule. - Use PERL variable defined by autoconf rather than direct call. - Use simple_move_if_change rule to reduce useless compiles if - OPTS_INC have not changed. - - 2009-12-12 Jaroslav Hajek - - * oct-shlib.h: Remove stray declarations. - - 2009-12-11 John W. Eaton - - * oct-shlib.cc (octave_dlopen_shlib::octave_dlopen_shlib): - Print filename along with message from dlerror. - Reverse sense of test. - - 2009-12-09 Jaroslav Hajek - - * oct-shlib.h (octave_shlib): Rewrite. - * oct-shlib.cc (octave_shlib): Rewrite. - - 2009-12-09 John W. Eaton - - * oct-time.cc (octave_base_tm::strftime): Call nstrftime instead - of my_strftime. - - 2009-12-09 John W. Eaton - - * oct-time.cc: Include strftime.h. Don't provide decl for strftime. - (octave_base_tm::strftime): Call my_strftime instead of ::strftime. - * Makefile.am (AM_CPPFLAGS): Add -I$(top_srcdir)/libgnu to the list. - (LINK_DEPS): Add ../libgnu/libgnu.la to the list. - (LIBOCTAVE_C_SOURCES): Remove strftime.c from the list. - * strftime.c: Delete. - - 2009-12-08 Michael Goffioul - - * Array-d.cc (Array::is_sorted): Declare as OCTAVE_API. - * Array-f.cc (Array::is_sorted): Ditto. - * lo-sysdep.cc: Undef min and max after including windows.h - - 2009-12-05 Jaroslav Hajek - - * Array-d.cc (Array::is_sorted): Optimized specialization. - * Array-f.cc (Array::is_sorted): Ditto. - - 2009-12-05 Jaroslav Hajek - - * oct-sort.cc (lookup_binary): Remove. - (octave_sort::lookup (const T*, octave_idx_type, const T&, comp)): - Move code here. - (octave_sort::lookup (const T*, octave_idx_type, const T*, - octave_idx_type, octave_idx_type *, comp)): Remove offset parameter. - Use a simple sequence of lookups. - (octave_sort::lookup (const T*, octave_idx_type, const T*, - octave_idx_type, octave_idx_type *)): Update. - (octave_sort::lookupm, octave_sort::lookupb): Remove. - (octave_sort::lookup_sorted): New overloaded method. - - * Array.cc (Array::lookup (const Array&, sortmode)): Remove - linf & rinf params. Rewrite using is_sorted to check for sortedness, - call octave_sort::lookup_sorted to do the sorted merge. - (Array::lookupm, Array::lookupb): Remove. - (NO_INSTANTIATE_ARRAY_SORT): Update. - - 2009-12-05 Jaroslav Hajek - - * Array.cc (sortrows_comparator): Rename to safe_comparator. - (Array::is_sorted): Use it here. - * Array-d.cc: Update. - * Array-f.cc: Update. - * Array-C.cc: Update. - * Array-fC.cc: Update. - - 2009-12-03 John W. Eaton - - * Makefile.am (BUILT_NODISTFILES): New variable. - - 2009-12-01 Jaroslav Hajek - - * idx-vector.cc (idx_vector::idx_range_rep::unconvert, - idx_vector::idx_scalar_rep::unconvert, - idx_vector::idx_vector_rep::unconvert, - idx_vector::idx_mask_rep::unconvert): New methods. - (idx_vector::unconvert): Use them here. Add mask output. - * idx-vector.h: Update decls. - - 2009-11-28 Jaroslav Hajek - - * dim-vector.h (dim_vector::zero_by_zero): New method. - * idx-vector.h (idx_vector::idx_mask_rep::is_colon_equiv): Fix. - * Array.cc (Array::assign): Minor tweaks. Optimize - A = []; A(1:m,1:n,1:k) = X for all cases. Use a shallow copy - for all colon-equivalent indices. - - 2009-11-27 Jaroslav Hajek - - * idx-vector.h (idx_vector::index_class): New member: class_mask. - (idx_vector::idx_mask_rep): New class. - (idx_vector::idx_vector (bool)): Construct idx_mask_rep. - (idx_vector::unmask): New method decl. - * idx-vector.cc (idx_vector::idx_vector (const boolNDArray&)): - Construct idx_mask_rep conditionally. - (idx_vector::unmask): New method. - (idx_vector::unconvert): Make non-const. unmask when called on a mask - vector. - (idx_vector::is_cont_range): Check also for idx_mask_rep. - - 2009-11-27 Jaroslav Hajek - - * Array.cc (Array::nnz): New method. - * Array.h: Declare it. - * MArray.h (MArray::nnz): Remove. - * MArrayN.h (MArrayN::nnz): Remove. - * boolNDArray.h (boolNDArray::nnz): Remove. - - 2009-11-25 Jaroslav Hajek - - * dbleCHOL.cc (CHOL::init): Output LAPACK's info. Resize matrix if - nonzero. Use smarter copying. - * floatCHOL.cc (FloatCHOL::init): Ditto. - * CmplxCHOL.cc (ComplexCHOL::init): Ditto. - * fCmplxCHOL.cc (FloatComplexCHOL::init): Ditto. - - 2009-11-24 Jaroslav Hajek - - * MArrayN.cc (MArrayN::idx_add): New methods. - * MArrayN.h: Declare them. - * MArray.cc, MArray.h: Remove from here. - - 2009-11-19 Jaroslav Hajek - - * dim-vector.h (dim_vector::safe_numel): New method. - * Array.h (Array::Array (const dim_vector&), - Array::Array (const dim_vector&, const T&), - Array::Array (T *, const dim_vector&)): Use it here. - * Array.cc (Array::clear (const dim_vector&)): Also here. - (Array::get_size): Remove. - * Array2.h (Array2::get_size): Remove. - * Array3.h (Array3::get_size): Remove. - - 2009-11-19 Jaroslav Hajek - - * Array.cc (Array::clear (const dim_vector&)): Use get_size. - - 2009-11-19 Jaroslav Hajek - - * lo-mappers.cc (do_erfinv): New static function. - (erfinv (double), erfinv (float)): New mappers. - * lo-mappers.h: Declare them. - - 2009-11-18 David Grundberg - - * str-vec.cc (string_vector::list_in_columns): Avoid crash on - empty arguments from list_in_columns. - - 2009-11-18 Jaroslav Hajek - - * Sparse.h (read_sparse_matrix): Fix order of tests and reads. - - 2009-11-18 Jaroslav Hajek - - * mx-inlines.cc (mx_inline_any_negative, mx_inline_pow): New loops. - (DEFMXMAPPER2X): New macro. - * bsxfun-decl.h (BSXFUN_OP2_DECL): New macro. - * bsxfun-defs.cc (BSXFUN_OP2_DEF, BSXFUN_OP2_DEF_MXLOOP): New macros. - (do_bsxfun_op): Use OCTAVE_QUIT. - * dNDArray.cc (NDArray::all_integers (void)): New method. - (NDArray::any_element_is_negative): Use mx_inline_any_negative. - (bsxfun_pow (const NDArray&, const NDArray&), - bsxfun_pow (const ComplexNDArray&, const NDArray&)): New functions. - * dNDArray.h: Update. - * fNDArray.cc (FloatNDArray::all_integers (void)): New method. - (FloatNDArray::any_element_is_negative): Use mx_inline_any_negative. - (bsxfun_pow (const FloatNDArray&, const FloatNDArray&), - bsxfun_pow (const FloatComplexNDArray&, const FloatNDArray&)): - New functions. - * fNDArray.h: Update. - * CNDArray.cc (bsxfun_pow (const ComplexNDArray&, const - ComplexNDArray&)): New function. - * CNDArray.h: Update. - * fCNDArray.cc (bsxfun_pow (const FloatComplexNDArray&, const - FloatComplexNDArray&)): New function. - * fCNDArray.h: Update. - - 2009-11-13 Jaroslav Hajek - - * CNDArray.cc (ComplexNDArray::all_elements_are_real): - Use mx_inline_all_real. - * CMatrix.cc (ComplexMatrix::all_elements_are_real): Ditto. - * fCNDArray.cc (FloatComplexNDArray::all_elements_are_real): - Use mx_inline_all_real. - * fCMatrix.cc (FloatComplexMatrix::all_elements_are_real): Ditto. - * CDiagMatrix.cc (ComplexDiagMatrix::all_elements_are_real): Ditto. - * fCDiagMatrix.cc (FloatComplexDiagMatrix::all_elements_are_real): - Ditto. - * CSparse.cc (SparseComplexMatrix::all_elements_are_real): Ditto. - - 2009-11-17 Jaroslav Hajek - - * base-aepbal.h (permuting_vector): Fix lower part swapping. - - 2009-11-13 John W. Eaton - - * Makefile.am (liboctave_la_CPPFLAGS): Add @OCTAVE_DLL_DEFS@ to - the list of flags. - - 2009-11-13 Jaroslav Hajek - - * mx-inlines.cc (mx_inline_any_nan): Rewrite. - (mx_inline_all_real): New reduction loop. - - 2009-11-12 Jaroslav Hajek - - * lo-mappers.cc ( rc_acos, rc_acos, rc_acosh, rc_acosh, rc_asin, - rc_asin, rc_atanh, rc_atanh, rc_log, rc_log, rc_xlog2, rc_log2, - rc_log10, rc_log10, rc_sqrt, rc_sqrt): New mappers. - * lo-mappers.h: Declare them. - - * lo-specfun.cc (rc_lgamma, rc_lgamma, rc_log1p, rc_log1p): New - mappers. - * lo-specfun.h: Declare them. - * Array.h (Array::map): Unroll loop to reduce OCTAVE_QUIT checking. - Provide function-reference overloads. - - * MArray.h (MArray::map): Provide function-reference overloads. - * Array2.h (Array2::map): Ditto. - * MArray2.h (MArray2::map): Ditto. - - * Sparse.h (Sparse::map): Ditto. - * MSparse.h (MSparse::map): Ditto. - - * dNDArray.h (NDArray::map): Remove. - * dNDArray.cc (NDArray::map): Remove. - * fNDArray.h (FloatNDArray::map): Remove. - * fNDArray.cc (FloatNDArray::map): Remove. - * CNDArray.h (ComplexNDArray::map): Remove. - * CNDArray.cc (ComplexNDArray::map): Remove. - * fCNDArray.h (FloatComplexNDArray::map): Remove. - * fCNDArray.cc (FloatComplexNDArray::map): Remove. - - * dMatrix.h (Matrix::map): Remove. - * dMatrix.cc (Matrix::map): Remove. - * fMatrix.h (FloatMatrix::map): Remove. - * fMatrix.cc (FloatMatrix::map): Remove. - * CMatrix.h (ComplexMatrix::map): Remove. - * CMatrix.cc (ComplexMatrix::map): Remove. - * fCMatrix.h (FloatComplexMatrix::map): Remove. - * fCMatrix.cc (FloatComplexMatrix::map): Remove. - - * dRowVector.h (RowVector::map): Remove. - * dRowVector.cc (RowVector::map): Remove. - * fRowVector.h (FloatRowVector::map): Remove. - * fRowVector.cc (FloatRowVector::map): Remove. - * CRowVector.h (ComplexRowVector::map): Remove. - * CRowVector.cc (ComplexRowVector::map): Remove. - * fCRowVector.h (FloatComplexRowVector::map): Remove. - * fCRowVector.cc (FloatComplexRowVector::map): Remove. - - * dColVector.h (ColumnVector::map): Remove. - * dColVector.cc (ColumnVector::map): Remove. - * fColVector.h (FloatColumnVector::map): Remove. - * fColVector.cc (FloatColumnVector::map): Remove. - * CColVector.h (ComplexColumnVector::map): Remove. - * CColVector.cc (ComplexColumnVector::map): Remove. - * fCColVector.h (FloatComplexColumnVector::map): Remove. - * fCColVector.cc (FloatComplexColumnVector::map): Remove. - - * dSparse.h (SparseMatrix::map): Remove. - * dSparse.cc (SparseMatrix::map): Remove. - * CSparse.h (SparseComplexMatrix::map): Remove. - * CSparse.cc (SparseComplexMatrix::map): Remove. - - 2009-11-11 John W. Eaton - - * lo-ieee.cc (octave_ieee_init): Improve comment about systems - without IEEE floating point format. - - 2009-11-11 Jaroslav Hajek - - * mx-inlines.cc (mx_inline_map): New template loop. - (DEFMXMAPPER): New macro. - (DEFMXMAPPER2): Rename from DEFMXMAPPER. - (do_mx_unary_map): New applier. - (mx_inline_real, mx_inline_complex): New loops. - * dNDArray.cc (NDArray::abs, NDArray::isnan, NDArray::isinf, - NDArray::isfinite, real, imag): Use new constructs. - * fNDArray.cc (FloatNDArray::abs, FloatNDArray::isnan, - FloatNDArray::isinf, FloatNDArray::isfinite, real, imag): Ditto. - * CNDArray.cc (ComplexNDArray::abs, ComplexNDArray::isnan, - ComplexNDArray::isinf, ComplexNDArray::isfinite, conj): Use new - constructs. - * fCNDArray.cc (FloatComplexNDArray::abs, FloatComplexNDArray::isnan, - FloatComplexNDArray::isinf, FloatComplexNDArray::isfinite, conj): Use - new constructs. - - 2009-11-10 John W. Eaton - - * mx-ops, sparse-mx-ops, vx-ops, vx-ops: - Add comment about updating. - * Makefile.am, config-ops.sh: New files. - * Makefile.in: Delete. - - 2009-11-09 Jaroslav Hajek - - * dSparse.h (Sparse::max): Use Array. - * dSparse.cc: Update. - * CSparse.h (Sparse::max): Use Array. - * CSparse.cc: Update. - * dNDArray.h (NDArray::max, NDArray::min, NDArray::cummax, - NDArray::cummin, NDArray::diff): Use dim = -1 as default. - * fNDArray.h (FloatNDArray::max, FloatNDArray::min, FloatNDArray::cummax, - FloatNDArray::cummin, FloatNDArray::diff): Use dim = -1 as default. - * CNDArray.h (ComplexNDArray::max, ComplexNDArray::min, - ComplexNDArray::cummax, ComplexNDArray::cummin, ComplexNDArray::diff): - Use dim = -1 as default. - * fCNDArray.h (FloatComplexNDArray::max, FloatComplexNDArray::min, - FloatComplexNDArray::cummax, FloatComplexNDArray::cummin, - FloatComplexNDArray::diff): Use dim = -1 as default. - * intNDArray.h (intNDArray::max, intNDArray::min, intNDArray::cummax, - intNDArray::cummin, intNDArray::diff): Use dim = -1 as default. - - 2009-11-03 Jaroslav Hajek - - * oct-mem.h: Rename octave_ucopy -> copy_or_memcpy, - octave_fill -> fill_or_memset, octave_new -> no_ctor_new, - octave_delete -> no_ctor_delete. - * Array.h: Update. - * Array.cc: Update. - * idx-vector.h: Update. - * idx-vector.cc: Update. - - 2009-11-03 Jaroslav Hajek - - * oct-mem.h: New source. - * Makefile.in: Include it. - * Array.h (Array::ArrayRep::ArrayRep (...)): Use octave_new, - octave_ucopy and octave_fill. - (Array::ArrayRep::~ArrayRep): Use octave_delete. - (Array::coerce): Use octave_new. - * Array.cc (Array::fill, rec_resize_helper::do_resize_fill, - Array::resize_fill, rec_permute_helper::do_permute, - Array::delete_elements): Use octave_ucopy and octave_fill. - * idx-vector.h (index_vector::index, index_vector::assign): Use - octave_ucopy. - * idx-vector.cc (index_vector::copy_data): Ditto. - - 2009-11-03 Jaroslav Hajek - - * idx-vector.cc (idx_vector::maybe_reduce): Implement (i:k:end, :) - and (i:k:end, p:q) reductions. - - 2009-11-02 Jaroslav Hajek - - * mx-inlines.cc (twosum_accum): Remove FLOAT_TRUNCATE. - - 2009-10-28 John W. Eaton - - * PermMatrix.cc: Don't include error.h. - - 2009-10-27 David Bateman - - * SparsedbleLU.cc (SparseLU::SparseLU (const SparseMatrix&, - const Matrix&, bool), SparseLU::SparseLU (const SparseMatrix&, - const ColumnVector&, const Matrix&, boo, bool, double, bool, - bool)): Fix test for valid pivot tolerance. - * SparseCmplxLU.cc (SparseComplexLU::SparseComplexLU - (const SparseComplexMatrix&, const Matrix&, bool), - SparseComplexLU::SparseComplexLU (const SparseComplexMatrix&, - const ColumnVector&, const Matrix&, boo, bool, double, bool, - bool)): Ditto. - - 2009-10-23 Jaroslav Hajek - - * idx-vector.cc (idx_vector::idx_range_rep::idx_range_rep - (octave_idx_type, octave_idx_type, octave_idx_type)): - Improve checking. - - 2009-10-21 John W. Eaton - - * oct-time.h (octave_time::octave_time (time_t t, int us)): - New constructor. - (operator + (const octave_time&, const octave_time&)): New function. - - * file-stat.h (base_file_stat::time_resolution): New function. - - 2009-10-20 Jaroslav Hajek - - * bsxfun-decl.h, bsxfun-defs.cc: New sources. - * Makefile.in: Add them. - * dim-vector.h (dim_vector::compute_index, - dim_vector::increment_index): Fix. - * mx-inlines.cc (DEFMXMAPPER, DEFMXLOCALMAPPER): New macros. - (mx_inline_xmin, mx_inline_xmax): New loops. - (mx_inline_fun): Remove. - * oct-inttypes.h (xmin (const octave_int&, const octave_int&), - xmax (const octave_int&, const octave_int&)): - New inline functions. - - * CNDArray.cc: Define bsxfun operations. - * boolNDArray.cc: Ditto. - * dNDArray.cc: Ditto. - * fCNDArray.cc: Ditto. - * fNDArray.cc: Ditto. - * int16NDArray.cc: Ditto. - * int32NDArray.cc: Ditto. - * int64NDArray.cc: Ditto. - * int8NDArray.cc: Ditto. - * uint16NDArray.cc: Ditto. - * uint32NDArray.cc: Ditto. - * uint64NDArray.cc: Ditto. - * uint8NDArray.cc: Ditto. - - * CNDArray.h: Declare bsxfun operations. - * boolNDArray.h: Ditto. - * dNDArray.h: Ditto. - * fCNDArray.h: Ditto. - * fNDArray.h: Ditto. - * int16NDArray.h: Ditto. - * int32NDArray.h: Ditto. - * int64NDArray.h: Ditto. - * int8NDArray.h: Ditto. - * uint16NDArray.h: Ditto. - * uint32NDArray.h: Ditto. - * uint64NDArray.h: Ditto. - * uint8NDArray.h: Ditto. - - 2009-10-19 Jaroslav Hajek - - * dim-vector.h (dim_vector::compute_index, - dim_vector::increment_index, dim_vector::cumulative, - dim_vector::cum_compute_index): New methods. - - 2009-10-18 Carsten Clark - - * Makefile.in: Remove ArrayN.cc. - - 2009-10-18 Jaroslav Hajek - - * Makefile.in: Include base-qr.h and base-qr.cc. - - 2009-10-17 Jaroslav Hajek - - * dbleQR.cc: Initialize QR::raw, QR::economy and QR::std. - - 2009-10-16 Jaroslav Hajek - - * ArrayN.h: Remove everything, just #define ArrayN Array. - Warn if under gcc. - * ArrayN.cc: Remove. - * Array.cc (operator >>): New operator. - * Array.h: Declare it. - - * Array-C.cc: Remove traces of ArrayN. - * Array-b.cc: Ditto. - * Array-ch.cc: Ditto. - * Array-d.cc: Ditto. - * Array-f.cc: Ditto. - * Array-fC.cc: Ditto. - * CNDArray.cc: Ditto. - * CNDArray.h: Ditto. - * MArrayN.h: Ditto. - * boolNDArray.cc: Ditto. - * boolNDArray.h: Ditto. - * chNDArray.h: Ditto. - * dNDArray.cc: Ditto. - * dNDArray.h: Ditto. - * fCNDArray.cc: Ditto. - * fCNDArray.h: Ditto. - * fNDArray.cc: Ditto. - * fNDArray.h: Ditto. - * intNDArray.cc: Ditto. - * intNDArray.h: Ditto. - * lo-specfun.cc: Ditto. - * lo-specfun.h: Ditto. - - * mx-op-defs.h (DMS_BIN_OP, SDM_BIN_OP): Rewrite. - (DMS_BIN_OPS, SDM_BIN_OPS): Define dm*s and dm/s rather than dm+s and - dm-s which are rather useless. - * mx-ops: Update. - - 2009-10-16 Jaroslav Hajek - - * Array.cc (Array::column, Array::page, Array::linearize, - Array::linear_slice): New methods. - * Array.h: Declare them - * ArrayN.h: Forward them. - - 2009-10-14 Jaroslav Hajek - - * oct-sort.cc (octave_sort::nth_element): New overloaded method. - * oct-sort.h: Declare it. - * Array.cc (Array::nth_element): New method. - * Array.h: Declare it. - (Array::sort): Use int for dim argument. - * ArrayN.h (ArrayN::nth_element): Wrap. - (ArrayN::sort): Use int for dim argument. - - 2009-10-13 Jaroslav Hajek - - * lo-traits.h (equal_types, is_instance, subst_template_param): New - traits classes. - * mx-inlines.cc (op_dble_sum, twosum_accum): New helper funcs. - (mx_inline_dsum, mx_inline_xsum): New reduction loops. - * fNDArray.cc (FloatNDArray::dsum): New method. - * fNDArray.h: Declare it. - * fCNDArray.cc (FloatComplexNDArray::dsum): New method. - * fCNDArray.h: Declare it. - * dNDArray.cc (NDArray::xsum): New method. - * dNDArray.h: Declare it. - * CNDArray.cc (ComplexNDArray::xsum): New method. - * CNDArray.h: Declare it. - * intNDArray.cc (intNDArray::dsum): New method. - * intNDArray.h: Declare it. - - 2009-10-12 Jaroslav Hajek - - * base-qr.cc (base_qr::regular): New method. - * base-qr.h: Declare it. - * base-lu.cc (base_lu::regular): New method. - * base-lu.h: Declare it. - - 2009-10-12 Jaroslav Hajek - - * base-qr.h: New source. - * base-qr.cc: New source. - * dbleQR.h (QR): Rebase on base_qr. - * dbleQR.cc: Ditto. - * floatQR.h (QR): Rebase on base_qr. - * floatQR.cc: Ditto. - * CmplxQR.h (QR): Rebase on base_qr. - * CmplxQR.cc: Ditto. - * fCmplxQR.h (QR): Rebase on base_qr. - * fCmplxQR.cc: Ditto. - * dbleQRP.h (QR): Update. - * dbleQRP.cc: Ditto. - * floatQRP.h (QR): Update. - * floatQRP.cc: Ditto. - * CmplxQRP.h (QR): Update. - * CmplxQRP.cc: Ditto. - * fCmplxQRP.h (QR): Update. - * fCmplxQRP.cc: Ditto. - - 2009-10-08 Jaroslav Hajek - - * PermMatrix.cc (PermMatrix::eye): New method. - * PermMatrix.h: Declare it. - * dbleLU.cc (LU::update, LU::update_piv): New overloaded methods. - * dbleLU.h: Declare them. - * floatLU.cc (FloatLU::update, FloatLU::update_piv): New overloaded - methods. - * floatLU.h: Declare them. - * CmplxLU.cc (ComplexLU::update, ComplexLU::update_piv): New - overloaded methods. - * CmplxLU.h: Declare them. - * fCmplxLU.cc (FloatComplexLU::update, FloatComplexLU::update_piv): - New overloaded methods. - * fCmplxLU.h: Declare them. - - 2009-10-07 John W. Eaton - - * mx-inlines.cc (mx_inline_diff): Avoid uninitialized variable warning. - - 2009-10-06 Jaroslav Hajek - - * dDiagMatrix.cc (operator *(const DiagMatrix&, const DiagMatrix&)): - Rewrite. - * fDiagMatrix.cc (operator *(const FloatDiagMatrix&, const FloatDiagMatrix&)): - Rewrite. - * CDiagMatrix.cc (operator *(const ComplexDiagMatrix&, const ComplexDiagMatrix&)): - Rewrite. - * fCDiagMatrix.cc (operator *(const FloatComplexDiagMatrix&, const - FloatComplexDiagMatrix&)): - Rewrite. - * DiagArray2.h (DiagArray2::diag_length): New method. - * PermMatrix.h (PermMatrix::length): Make consistent with - DiagArray2::length. - - 2009-10-05 Jaroslav Hajek - - * base-lu.cc (base_lu::unpack): Unpack getp as well. - - 2009-10-05 Jaroslav Hajek - - * PermMatrix.cc (PermMatrix::determinant): Implement a (hopefully) - working algorithm. - - 2009-10-05 Jaroslav Hajek - - * dim-vector.h (operator ==): Include fast case. - * base-lu.cc (base_lu::packed, base_lu::unpack): New methods. - (base_lu::L, base_lu::U, base_lu::Y, base_lu::getp): Distinguish - packed vs. unpacked case. - * base-lu.h: Update decls. - (base_lu::l_fact): New member field. - - 2009-10-02 Jaroslav Hajek - - * lo-traits.h (strip_template_param): New trait class. - - 2009-10-01 Jaroslav Hajek - - * Array.cc (Array::permute): Fast case identity permutation. - - 2009-09-27 Jaroslav Hajek - - * oct-cmplx.h: Fix complex-real orderings. - - 2009-09-27 Jaroslav Hajek - - * dim-vector.h (dim_vector::redim): Rewrite. - * Array-util.cc (sub2ind): Allow single index case. - - 2009-09-26 Jaroslav Hajek - - * dMatrix.cc (xgemm): Use blas_trans_type to indicate transposes. - (operator *(const Matrix&, const Matrix&)): Update. - * fMatrix.cc (xgemm): Use blas_trans_type to indicate transposes. - (operator *(const FloatMatrix&, const FloatMatrix&)): Update. - * CMatrix.cc (xgemm): Use blas_trans_type to indicate transposes. - (operator *(const ComplexMatrix&, const ComplexMatrix&)): Update. - * fCMatrix.cc (xgemm): Use blas_trans_type to indicate transposes. - (operator *(const FloatComplexMatrix&, const FloatComplexMatrix&)): Update. - * dMatrix.h: Update decl. - * fMatrix.h: Update decl. - * CMatrix.h: Update decl. - * fCMatrix.h: Update decl. - - 2009-09-23 Jaroslav Hajek - - * CMatrix.cc (ComplexMatrix::ComplexMatrix (const Matrix&, const - Matrix&)): New constructor. - (operator * (Matrix, ComplexMatrix), operator * (ComplexMatrix, - Matrix)): Optimize. - * fCMatrix.cc (FloatComplexMatrix::FloatComplexMatrix (const FloatMatrix&, const - FloatMatrix&)): New constructor. - (operator * (FloatMatrix, FloatComplexMatrix), operator * (FloatComplexMatrix, - FloatMatrix)): Optimize. - - 2009-09-23 Jaroslav Hajek - - * dMatrix.cc (stack_complex_matrix, unstack_complex_matrix): New - static funcs. - (Matrix::solve (..., const ComplexMatrix&, ...)): Use the above funcs. - Improve forwarding. - * fMatrix.cc (stack_complex_matrix, unstack_complex_matrix): New - static funcs. - (FloatMatrix::solve (..., const FloatComplexMatrix&, ...)): Use the - above funcs. Improve forwarding. - - 2009-09-23 Jaroslav Hajek - - * mx-defs.h (blas_trans_type): New enum. - (get_blas_char): New inline func. - * dMatrix.cc (Matrix::utsolve, Matrix::ltsolve, Matrix::solve): - Support transt parameter. - * fMatrix.cc (FloatMatrix::utsolve, FloatMatrix::ltsolve, - FloatMatrix::solve): Ditto. - * CMatrix.cc (ComplexMatrix::utsolve, ComplexMatrix::ltsolve, - ComplexMatrix::solve): Ditto. - * fCMatrix.cc (FloatComplexMatrix::utsolve, - FloatComplexMatrix::ltsolve, FloatComplexMatrix::solve): Ditto. - * dMatrix.h, fMatrix.h, CMatrix.h, fCMatrix.h: Update. - - 2009-09-21 Jaroslav Hajek - - * mx-op-defs.h (VS_BIN_OP, SV_BIN_OP, VV_BIN_OP): Simplify. - - 2009-09-19 Jaroslav Hajek - - * dNDArray.h (NDArray::matrix_type): New typedef. - * fNDArray.h (FloatNDArray::matrix_type): New typedef. - * CNDArray.h (ComplexNDArray::matrix_type): New typedef. - * fCNDArray.h (FloatComplexNDArray::matrix_type): New typedef. - * boolNDArray.h (boolNDArray::matrix_type): New typedef. - * charNDArray.h (charNDArray::matrix_type): New typedef. - - * dMatrix.h (Matrix::column_vector_type, - Matrix::row_vector_type): New typedefs. - * fMatrix.h (FloatMatrix::column_vector_type, - FloatMatrix::row_vector_type): New typedefs. - * CMatrix.h (ComplexMatrix::column_vector_type, - ComplexMatrix::row_vector_type): New typedefs. - * fCMatrix.h (FloatComplexMatrix::column_vector_type, - FloatComplexMatrix::row_vector_type): New typedefs. - - 2009-09-18 John W. Eaton - - * mach-info.cc: Don't include oct-types.h. - - 2009-09-18 Jaroslav Hajek - - * Array.h (NoAlias): New template class. - * dRowVector.cc (linspace): Rewrite. - * fRowVector.cc (linspace): Rewrite. - * CRowVector.cc (linspace): Rewrite. - * fCRowVector.cc (linspace): Rewrite. - * dMatrix.cc (linspace): New method. - * dMatrix.h (linspace): Declare it. - * fMatrix.cc (linspace): New method. - * fMatrix.h (linspace): Declare it. - * CMatrix.cc (linspace): New method. - * CMatrix.h (linspace): Declare it. - * fCMatrix.cc (linspace): New method. - * fCMatrix.h (linspace): Declare it. - - 2009-09-17 John W. Eaton - - * oct-types.h.in: Delete. - * Makefile.in (BUILT_INCLUDES, DISTFILES): Remove oct-types.h.in - from the list. - (distclean, maintainer-clean): Don't remove oct-types.h - * DAEFunc.h, MatrixType.h, base-aepbal.h, dim-vector.h, - lo-specfun.h, lo-utils.h, mx-op-decl.h, oct-inttypes.h, - randgamma.h, randmtzig.h, randpoisson.h: - Don't include oct-types.h. - - 2009-09-16 Jaroslav Hajek - - * oct-rand.cc (octave_rand::do_matrix, do_nd_array, do_vector): - Use Array::clear rather than Array::resize. - - 2009-09-06 Jaroslav Hajek - - * dColVector.h (operator *(const Matrix&, const ColumnVector)): - Optimize. - * fColVector.h (operator *(const FloatMatrix&, const - FloatColumnVector)): Optimize. - * CColVector.h (operator *(const ComplexMatrix&, const - ComplexColumnVector)): Optimize. - * fCColVector.h (operator *(const FloatComplexMatrix&, const - FloatComplexColumnVector)): Optimize. - - 2009-09-04 Jaroslav Hajek - - * Array.cc (Array::clear (const dim_vector&)): new method. - * Array.h: Declare it. - (Array::clear (octave_idx_type)): New method. - (Array::clear (octave_idx_type, octave_idx_type)): New method. - - 2009-09-04 Jaroslav Hajek - - * mx-inlines.cc (DEFMXBOOLOPEQ): New macro. - (mx_inline_and2, mx_inline_or2): New loops. - - * MArray.h (MArray::MArray (const dim_vector&)): New constructor. - (MArray::MArray (const Array&)): Ensure column vector. - (MArray::resize): New method. - * DiagArray2.h (DiagArray2::DiagArray2 (const dim_vector&)): New - constructor. - * MDiagArray2.h (MDiagArray2::MDiagArray2 (const dim_vector&)): New - constructor. - * dColVector.h (ColumnVector::ColumnVector (const dim_vector&)): New - constructor. - * fColVector.h (FloatColumnVector::FloatColumnVector (const - dim_vector&)): New constructor. - * CColVector.h (ComplexColumnVector::ComplexColumnVector (const - dim_vector&)): New constructor. - * fCColVector.h (FloatComplexColumnVector::FloatComplexColumnVector - (const dim_vector&)): New constructor. - * dRowVector.h (RowVector::RowVector (const dim_vector&)): New - constructor. - * fRowVector.h (FloatRowVector::FloatRowVector (const dim_vector&)): - New constructor. - * CRowVector.h (ComplexRowVector::ComplexRowVector (const - dim_vector&)): New constructor. - * fCRowVector.h (FloatComplexRowVector::FloatComplexRowVector (const - dim_vector&)): New constructor. - - * CNDArray.cc (operator *= (const ComplexNDArray, double)): Simplify. - * fCNDArray.cc (operator *= (const FloatComplexNDArray, float)): Simplify. - - * MArray.cc - (operator += (MArray&, const T&)): Simplify. - (operator -= (MArray&, const T&)): Simplify. - (operator *= (MArray&, const T&)): Simplify. - (operator /= (MArray&, const T&)): Simplify. - (operator += (MArray&, const MArray&)): Simplify. - (operator -= (MArray&, const MArray&)): Simplify. - (product (MArray&, const MArray&)): Simplify. - (quotient (MArray&, const MArray&)): Simplify. - (MARRAY_AS_OP): Simplify. - (MARRAY_SA_OP): Simplify. - (MARRAY_AA_OP): Simplify. - (operator - (const MArray&)): Simplify. - - * MArray2.cc - (operator += (MArray2&, const T&)): Simplify. - (operator -= (MArray2&, const T&)): Simplify. - (operator *= (MArray2&, const T&)): Simplify. - (operator /= (MArray2&, const T&)): Simplify. - (operator += (MArray2&, const MArray&)): Simplify. - (operator -= (MArray2&, const MArray&)): Simplify. - (product (MArray2&, const MArray&)): Simplify. - (quotient (MArray2&, const MArray&)): Simplify. - (MARRAY_A2S_OP): Simplify. - (MARRAY_SA2_OP): Simplify. - (MARRAY_A2A2_OP): Simplify. - (operator - (const MArray2&)): Simplify. - - * MArrayN.cc - (operator += (MArrayN&, const T&)): Simplify. - (operator -= (MArrayN&, const T&)): Simplify. - (operator *= (MArrayN&, const T&)): Simplify. - (operator /= (MArrayN&, const T&)): Simplify. - (operator += (MArrayN&, const MArray&)): Simplify. - (operator -= (MArrayN&, const MArray&)): Simplify. - (product (MArrayN&, const MArray&)): Simplify. - (quotient (MArrayN&, const MArray&)): Simplify. - (MARRAY_NDS_OP): Simplify. - (MARRAY_SND_OP): Simplify. - (MARRAY_NDND_OP): Simplify. - (operator - (const MArrayN&)): Simplify. - - * MDiagArray2.cc - (operator += (MDiagArray2&, const MDiagArray2&)): Simplify. - (operator -= (MDiagArray2&, const MDiagArray2&)): Simplify. - (operator *= (MDiagArray2&, T)): Simplify. - (operator /= (MDiagArray2&, T)): Simplify. - (MARRAY_DAS_OP, MARRAY_SDA_OP, MARRAY_DADA_OP): Simplify. - * boolNDArray.cc (mx_el_and_assign, mx_el_or_assign): Simplify. - - * MArray-defs.h (DO_VS_OP, DO_SV_OP, DO_VV_OP, - DO_VS_OP2, DO_VV_OP2, NEGV): Remove. - - 2009-09-03 Jaroslav Hajek - - * mx-inlines.cc (DEFMXUNOPEQ): New macro. - (mx_inline_not2, mx_inline_uminus2): New loops. - * boolNDArray.cc (boolNDArray::invert): New method. - * boolNDArray.h: Declare it. - * MArrayN.cc (MArrayN::changesign): New method. - * MArrayN.h: Declare it. - * dNDArray.cc (NDArray::changesign): New method. - * dNDArray.h: Declare it. - * fNDArray.cc (FloatNDArray::changesign): New method. - * fNDArray.h: Declare it. - * CNDArray.cc (ComplexNDArray::changesign): New method. - * CNDArray.h: Declare it. - * fCNDArray.cc (FloatComplexNDArray::changesign): New method. - * fCNDArray.h: Declare it. - * intNDArray.cc (intNDArray::changesign): New method. - * intNDArray.h: Declare it. - - 2009-09-02 Jaroslav Hajek - - * oct-cmplx.h: Rewrite the comaprison ops. Use FLOAT_TRUNCATE. - - 2009-09-01 Jaroslav Hajek - - * oct-cmplx.h: Correct strict operators in macros. - - 2009-08-31 John W. Eaton - - * lo-ieee.cc (octave_ieee_init): Abort if floating point format - is not recognized as IEEE. - - 2009-08-27 John W. Eaton - - * str-vec.cc, str-vec.h (string_vector::string_vector (const - std::set&)): New constructor. - - 2009-08-27 Jaroslav Hajek - - * mx-inlines.cc (DEFCMPLXCMOP): Remove. - * oct-cmplx.h (operator <, operator >): Remove definitions. - (DEF_COMPLEXR_COMP): New macro. Instantiate for <, >, <=, >=. - * mx-op-defs.h (MM_CMP_OP, MS_CMP_OP, SM_CMP_OP, - NDND_CMP_OP, NDS_CMP_OP, SND_CMP_OP): Replace by one-liners. Remove - unused parameters. - (MM_CMP_OPS, MS_CMP_OPS, SM_CMP_OPS, NDND_CMP_OPS, NDS_CMP_OPS, - SND_CMP_OPS): Update. - (NDS_CMP_OP1, NDS_CMP_OPS1, NDS_CMP_OP2, NDS_CMP_OPS2, - SND_CMP_OP1, SND_CMP_OPS1, SND_CMP_OP2, SND_CMP_OPS2): Remove. - * mk-ops.awk: Simplify CMP_OPS branch. - * Sparse-op-defs.h (SPARSE_SMSM_CMP_OPS, SPARSE_SMS_CMP_OPS, - SPARSE_SSM_CMP_OPS, SPARSE_MSM_CMP_OPS, SPARSE_SMM_CMP_OPS): - Update. - - * CNDArray.cc: Update syntax. - * boolNDArray.cc: Ditto. - * chNDArray.cc: Ditto. - * dNDArray.cc: Ditto. - * fCNDArray.cc: Ditto. - * fNDArray.cc: Ditto. - - * int16NDArray.cc: Ditto. - * int32NDArray.cc: Ditto. - * int64NDArray.cc: Ditto. - * int8NDArray.cc: Ditto. - * uint16NDArray.cc: Ditto. - * uint32NDArray.cc: Ditto. - * uint64NDArray.cc: Ditto. - * uint8NDArray.cc: Ditto. - - * CMatrix.cc: Ditto. - * boolMatrix.cc: Ditto. - * chMatrix.cc: Ditto. - * dMatrix.cc: Ditto. - * fCMatrix.cc: Ditto. - * fMatrix.cc: Ditto. - - 2009-08-24 Jaroslav Hajek - - * MArray.cc (MArray::product_eq, MArray::quotient_eq): New - methods. - * MArray2.cc (MArray2::product_eq, MArray2::quotient_eq): Ditto. - * MArrayN.cc (MArrayN::product_eq, MArrayN::quotient_eq): Ditto. - * MArray-decl.h (MARRAY_OP_ASSIGN_DECLX): New macro. - (MARRAY_OP_ASSIGN_DECLS, MARRAY_OP_ASSIGN_FWD_DEFS): Include - product_eq and quotient_eq. - (MARRAY_FORWARD_DEFS): Use MARRAY_OP_ASSIGN_FWD_DEFS1. - (MDIAGARRAY2_OPS_FORWARD_DECLS): Don't instantiate - OP= operators for diag matrices. - (MDIAGARRAY2_FORWARD_DEFS): Ditto. - * MArray-defs.h (INSTANTIATE_MDIAGARRAY2_FRIENDS): Ditto. - - 2009-08-23 Jaroslav Hajek - - * Array.h (Array::make_unique, Array::~Array, Array::operator =): - Move here to allow inlining. - * Array.cc: Remove from here. - - 2009-08-20 Jaroslav Hajek - - * mx-inlines.cc (logical_value): New overloaded template. - (DEFMXBOOL_OP): Use it in definitions. - (mx_inline_not): Also use logical_value. - * mx-op-defs.h (ND_LOGICAL_NAN_CHECK, SC_LOGICAL_NAN_CHECK): Remove - (also from all macros). - - * CMatrix.cc (operator !): Simply call mx_inline_not. - * CNDArray.cc: Ditto. - * dMatrix.cc: Ditto. - * dNDArray.cc: Ditto. - * fCMatrix.cc: Ditto. - * fCNDArray.cc: Ditto. - * fMatrix.cc: Ditto. - * fNDArray.cc: Ditto. - - 2009-08-20 Jaroslav Hajek - - * dMatrix.cc (Matrix::operator!): Simplify & check for NaNs. - * fMatrix.cc (FloatMatrix::operator!): Ditto. - * CMatrix.cc (ComplexMatrix::operator!): Ditto. - * fCMatrix.cc (FloatComplexMatrix::operator!): Ditto. - * dNDArray.cc (NDArray::operator!): Ditto. - * fNDArray.cc (FloatNDArray::operator!): Ditto. - * CNDArray.cc (ComplexNDArray::operator!): Ditto. - * fCNDArray.cc (FloatComplexNDArray::operator!): Ditto. - - 2009-08-20 Jaroslav Hajek - - * mx-inlines.cc (mx_inline_add, mx_inline_sub, mx_inline_mul, - mx_inline_div, mx_inline_uminus, mx_inline_not, mx_inline_add2, - mx_inline_sub2, mx_inline_mul2, mx_inline_div2, mx_inline_iszero, - mx_inline_notzero, mx_inline_and, mx_inline_or, mx_inline_not_and, - mx_inline_not_or, mx_inline_and_not, mx_inline_or_not, - mx_inline_lt, mx_inline_le, mx_inline_gt, mx_inline_ge, - mx_inline_eq, mx_inline_ne): New templates. - (do_mx_unary_op, do_mm_binary_op, do_sm_binary_op, - do_ms_binary_op, do_mm_inplace_op,do_ms_inplace_op): - New templates. - - * mx-op-defs.h (ND_LOGICAL_NAN_CHECK, SC_LOGICAL_NAN_CHECK): - New macros. - (NDND_BIN_OP, NDS_BIN_OP, SND_BIN_OP): Simplify. - (MM_BIN_OP, MS_BIN_OP, MM_BIN_OP): Simplify. - (NDND_BOOL_OP, NDS_BOOL_OP, SND_BOOL_OP): Simplify. - (MM_BOOL_OP, MS_BOOL_OP, MM_BOOL_OP): Simplify. - (NDND_BOOL_OPS2, NDS_BOOL_OPS2, SND_BOOL_OPS2, - MM_BOOL_OPS2, MS_BOOL_OPS2, SM_BOOL_OPS2): Remove. - * mx-op-decl.h (NDND_BOOL_OPX_DECLS, NDS_BOOL_OPX_DECLS, - SND_BOOL_OPX_DECLS): New macros. - * mk-ops.awk: use _BOOL_OPS rather than _BOOL_OPS2. - - * boolMatrix.cc: Add missing bool op defs. - * boolMatrix.h: Add missing bool op decls. - - - * boolNDArray.cc: Remove unused arg to BOOL_OPS. - * CMatrix.cc: Ditto. - * CNDArray.cc: Ditto. - * ChangeLog: Ditto. - * chMatrix.cc: Ditto. - * chNDArray.cc: Ditto. - * dMatrix.cc: Ditto. - * dNDArray.cc: Ditto. - * fCMatrix.cc: Ditto. - * fCNDArray.cc: Ditto. - * fMatrix.cc: Ditto. - * fNDArray.cc: Ditto. - * int16NDArray.cc: Ditto. - * int32NDArray.cc: Ditto. - * int64NDArray.cc: Ditto. - * int8NDArray.cc: Ditto. - * uint16NDArray.cc: Ditto. - * uint32NDArray.cc: Ditto. - * uint64NDArray.cc: Ditto. - * uint8NDArray.cc: Ditto. - - * CColVector.cc: Update syntax where needed. - * CDiagMatrix.cc: Ditto. - * CMatrix.cc: Ditto. - * CRowVector.cc: Ditto. - * chMatrix.cc: Ditto. - * dColVector.cc: Ditto. - * dDiagMatrix.cc: Ditto. - * dMatrix.cc: Ditto. - * dRowVector.cc: Ditto. - * fCColVector.cc: Ditto. - * fCDiagMatrix.cc: Ditto. - * fCMatrix.cc: Ditto. - * fCRowVector.cc: Ditto. - * fColVector.cc: Ditto. - * fDiagMatrix.cc: Ditto. - * fMatrix.cc: Ditto. - * fRowVector.cc: Ditto. - - 2009-08-19 Jaroslav Hajek - - * Array-util.cc (zero_dims_inquire): Add matching ndims case. - - 2009-08-19 Jaroslav Hajek - - * MArrayN.cc (operator+=, operator-=): Test matching dimensions first. - * boolNDArray.cc (mx_el_and_assign, mx_el_or_assign): New functions. - * boolNDArray.h: Declare them. - - 2009-08-19 Jaroslav Hajek - - * Array.cc (Array::clear): New method. - * Array.h: Declare it. - * MArray-decl.h (MARRAY_OP_ASSIGN_DECLS1, MARRAY_OP_ASSIGN_FWD_DECLS1, - MARRAY_OP_ASSIGN_FRIENDS1, MARRAY_OP_ASSIGN_FWD_DEFS1): New macros. - (MARRAY_OPS_FORWARD_DECLS, MARRAY_OPS_FRIEND_DECLS): Use them. - * MArray-defs.h (MARRAY_OP_ASSIGN_DEFS1): New macro. - (INSTANTIATE_MARRAY_FRIENDS): Use it. - (INSTANTIATE_MARRAY2_FRIENDS): Use it. - (INSTANTIATE_MARRAYN_FRIENDS): Use it. - * MArray.cc (operator+=, operator-=): - Operate out-of-place when this is shared copy. - (operator*=, operator/=): New operator overloads. - * MArray2.cc: Ditto. - * MArrayN.cc: Ditto. - * CNDArray.cc (operator *= (ComplexNDArray&, double), - operator /= (ComplexNDArray&, double)): New operators. - * CNDArray.h: Declare them. - * fCNDArray.cc (operator *= (FloatComplexNDArray&, double), - operator /= (FloatComplexNDArray&, double)): New operators. - * fCNDArray.h: Declare them. - - 2009-08-17 John W. Eaton - - * Makefile.in (LINK_DEPS): List LIBS last. - - 2009-08-16 Jaroslav Hajek - - * dMatrix.cc, fMatrix.cc, CMatrix.cc, fCMatrix.cc: Add more tests. - * CMatrix.cc (xgemm): Fix vector * matrix case. - * fCMatrix.cc (xgemm): Ditto. - - 2009-08-16 Jaroslav Hajek - - * fMatrix.cc, fCMatrix.cc: Make tests use single precision. - - 2009-08-16 Jaroslav Hajek - - * CMatrix.cc (xgemm): Fix typo. Add test. - * fCMatrix.cc (xgemm): Ditto. - - 2009-08-14 John W. Eaton - - * Makefile.in (LINK_DEPS): Include BLAS_LIBS in the list. - - 2009-08-13 John W. Eaton - - * CMatrix.cc, CNDArray.cc, dMatrix.cc, dNDArray.cc, fCMatrix.cc, - fCNDArray.cc, fMatrix.cc, fNDARray.cc, oct-fftw.cc, oct-fftw.h: - Update for new FFTW defines. - - * Makefile.in: Add library-specific CPPFLAGS and LDFLAGS variables - to CPPFLAGS and LDFLAGS for files that use sparse matrices or fftw. - - 2009-08-12 Jaroslav Hajek - - * Makefile.in: Include LDFLAGS when linking shared executable. - - 2009-08-11 John W. Eaton - - * oct-fftw.h, oct-fftw.cc (octave_fftw_planner): Convert to singleton. - (octave_float_fft_planner): Likewise. - - 2009-08-11 John W. Eaton - - * Makefile.in (LINK_DEPS): Use READLINE_LIBS instead of - LIBREADLINE. Also link with TERM_LIBS and DL_LIBS. - - 2009-08-11 Jaroslav Hajek - - * mx-inlines.cc (mx_inline_diff): New overloaded template - function. - (get_extent_triplet): Use dim_vector::first_non_singleton. - (do_mx_diff_op): New template function. - * dNDArray.cc (NDArray::diff): New method. - * dNDArray.h: Declare it. - * fNDArray.cc (FloatNDArray::diff): New method. - * fNDArray.h: Declare it. - * CNDArray.cc (ComplexNDArray::diff): New method. - * CNDArray.h: Declare it. - * fCNDArray.cc (FloatComplexNDArray::diff): New method. - * fCNDArray.h: Declare it. - * intNDArray.cc (intNDArray::diff): New method. - * intNDArray.h: Declare it. - - 2009-08-10 Jaroslav Hajek - - * dim-vector.h (dim_vector::first_non_singleton): New method. - - 2009-08-06 Jaroslav Hajek - - * dim-vector.h (dim_vector): Rewrite. Use single-alloc implementation - aka GCC's basic_string class. - * Array.cc: Use dim_vector::alloc where fitting. - * Array-util.cc: Ditto. - - 2009-08-05 John W. Eaton - - * oct-shlib.cc (octave_shl_load_shlib::open): Pass BIND_IMMEDIATE, - not BIND_DEFERRED to shl_load. - (octave_dlopen_shlib::open): Don't pass RTLD_GLOBAL to dlopen. - - 2009-08-05 John W. Eaton - - * Makefile.in (LINK_DEPS): Omit $(BLAS_LIBS) from the list. - Include $(RLD_FLAG) in the list. - - 2009-08-05 John W. Eaton - - * Makefile.in (LINK_DEPS): Include $(PTHREAD_LIBS) in the list. - - 2009-08-04 Kristian Rumberg - - * cmd-edit.cc (gnu_readline::do_get_line_buffer, - default_command_editor::do_get_line_buffer): New functions. - (command_editor::get_line_buffer): New function. - * cmd-edit.h (command_editor::get_line_buffer): Provide decls. - (command_editor::do_get_line_buffer): New pure virtual function. - - 2009-07-31 Jaroslav Hajek - - * idx-vector.h (idx_vector::is_range): New method. - (idx_vector::copy_data, idx_vector::unconvert): New method decls. - * idx-vector.cc (idx_vector::copy_data, idx_vector::unconvert): New - methods. - * Array-utils.cc (sub2ind, ind2sub): New functions. - - 2009-07-29 John W. Eaton - - * fMatrix.cc (operator >>): Use template function to read value. - * fNDArray.cc (operator >>): Likeise. - * fCMatrix.cc (operator >>): Use template function to read value. - * fCNDArray.cc (operator >>): Likeise. - * dMatrix.cc (operator >>): Use template function to read value. - * dNDArray.cc (operator >>): Likeise. - * CMatrix.cc (operator >>): Use template function to read value. - * CNDArray.cc (operator >>): Likeise. - - * lo-utils.cc, lo-utils.h (octave_read_value): New template - (octave_read_value, octave_read_value): - Provide specializations. - (octave_read_double, octave_read_complex, octave_read_float, - octave_rread_float_complex): Define in terms of template functions. - * Sparse.h (read_sparse_matrix): New template function. - * dSparse.cc (operator >>): Call read_sparse_matrix. - * CSparse.cc (operator >>): Likewise. - * boolSparse.cc (operator >>): Likewise. - * sparse-util.cc, sparse-util.h (sparse_indices_ok): New function. - * Sparse.cc (Sparse::indices_ok, Sparse::SparseRep::indices_ok): - New member functions. - - 2009-07-20 John W. Eaton - - * lo-ieee.cc (octave_ieee_init) [__NetBSD__]: Call nan to - initialize Octave_NaN and nanf, to initialize Octave_Float_NaN. - - 2009-07-11 John W. Eaton - - * file-ops.cc (file_ops::symlink, file_ops::readlink): - Don't use incorrectly sized OCTAVE_LOCAL_BUFFER. - - 2009-07-08 John W. Eaton - - * dim-vector.h (dim_vector::dim_vector_rep::dim_vector_rep - (octave_idx_type, const dim_vector_rep *, int)): - Enforce 2-d objects here. - (dim_vector::dim_vector_rep::dim_vector_rep): Simply copy object. - (dim_vector::resize): Allow N < 2. - - 2009-07-03 Jaroslav Hajek - - * Sparse-op-defs.h (SPARSE_ALL_OP): Fix typo. - * dSparse.cc (SparseMatrix::prod): Ditto. - * CSparse.cc (ComplexSparseMatrix::prod): Ditto. - - 2009-07-02 Jaroslav Hajek - - * Sparse-diag-op-defs.h (inner_do_add_sm_dm): Rewrite to ensure - ordering of row indices. - - 2009-06-30 Jaroslav Hajek - - * oct-sort.cc (octave_sort::lookupb): Fix typo. - - 2009-06-29 Jaroslav Hajek - - * oct-sort.cc (octave_sort::lookup_merge): Delete. - (octave_sort::lookup, - octave_sort::lookupm, - octave_sort::lookupb): Rewrite. - - 2009-06-26 Michael Goffioul - - * pathsearch.h (class dir_path::static_members): Decorate with - OCTAVE_API. - - 2009-06-26 Jaroslav Hajek - - * oct-sort.cc (octave_sort::lookup_merge): Slightly speed-up - the merge case. - - 2009-06-26 Jaroslav Hajek - - * oct-sort.cc (octave_sort::lookup_merge): Fix lower-part - recursion. - - 2009-06-24 Alexander Barth - - * eigs-base.cc (EigsRealSymmetricMatrix, - EigsRealSymmetricMatrixShift, EigsRealSymmetricFunc, - EigsRealNonSymmetricMatrix, EigsRealNonSymmetricMatrixShift, - EigsRealNonSymmetricFunc, EigsComplexNonSymmetricMatrix, - EigsComplexNonSymmetricMatrixShift, EigsComplexNonSymmetricFunc): - Use octave_idx_type for parameters of type LOGICAL in ARPACK. - - 2009-06-22 Jaroslav Hajek - - * chMatrix.cc (charMatrix::charMatrix (const string_vector&)): - Optimize w.r.t. COW of std::string. - - 2009-06-18 Jaroslav Hajek - - * oct-sort.cc (lookup_impl): New helper inline function. - (octave_sort::lookup_merge): New private template method. - (octave_sort::lookup): Rewrite. - (octave_sort::lookupm): use lookup_impl. - (octave_sort::lookupb): use lookup_impl. - (out_of_range_pred, out_of_range): Remove. - - 2009-06-18 Jaroslav Hajek - - * dMatrix.cc (xgemm): Replace resize() with uninitialized allocations - where appropriate. - * fMatrix.cc (xgemm): Ditto. - * CMatrix.cc (xgemm): Ditto. - * fCMatrix.cc (xgemm): Ditto. - - 2009-06-12 Jaroslav Hajek - - * oct-sort.cc (octave_sort::lookupm, octave_sort::lookupb): New - overloaded methods. - * oct-sort.h: Declare them. - * Array.cc (Array::lookupm, Array::lookupb): New methods. - * Array.h: Declare them. - - 2009-06-09 Jaroslav Hajek - - * cmd-edit.cc (command_editor::force_default_editor): New static - method. - * cmd-edit.h: Declare it. - - 2009-06-09 Jaroslav Hajek - - * lo-mappers.cc (xlog2 (const Complex&, int&), xlog2 (const - FloatComplex&, int&)): Use more robust expression. - - 2009-06-07 Jaroslav Hajek - - * Array.cc (Array::find): Avoid allocating excessive memory. Fix - order for backward searches. - - 2009-06-02 Jaroslav Hajek - - * Array-C.cc (class DiagArray2::Proxy): Only explicitly - instantiate DiagArray2::Proxy on MSVC. - * Array-d.cc (class DiagArray2::Proxy): Ditto. - * Array-f.cc (class DiagArray2::Proxy): Ditto. - * Array-fC.cc (class DiagArray2::Proxy): Ditto. - - 2009-05-26 John W. Eaton - - * pathsearch.h (dir_path::path_sep_char (char), - dir_path::static_members::path_sep_char (char)): New functions. - - 2009-05-21 Michael Goffioul - - * Array-C.cc (class DiagArray2::Proxy): Tag with OCTAVE_API. - * Array-d.cc (class DiagArray2::Proxy): Ditto. - * Array-f.cc (class DiagArray2::Proxy): Ditto. - * Array-fC.cc (class DiagArray2::Proxy): Ditto. - * Array.cc (class octave_sort): Ditto. - * CColVector.h (conj, operator*, operator>>, operator<<): Ditto. - * CDiagMatrix.h (class ComplexDiagMatrix, conj, operator*): Ditto. - * CMatrix.h (conj): Ditto. - * CNDArray.h (conj): Ditto. - * PermMatrix.h (class PermMatrix, operator*): Ditto. - * dDiagMatrix.h (class DiagMatrix): Ditto. - * fCColVector.h (conj, operator*, operator>>, operator<<): Ditto. - * fCDiagMatrix.h (class FloatComplexDiagMatrix, conj, operator*): - Ditto. - * fCMatrix.h (conj): Ditto. - * fCNDArray.h (conj): Ditto. - * fDiagMatrix.h (operator*): Ditto. - * oct-locbuf.h (octave_chunk_buffer::octave_chunk_buffer, - octave_chunk_buffer::~octave_chunk_buffer): Ditto. - * oct-inttypes.cc (octave_int_cmp_op::emulate_op): Ditto. - * DET.h (class base_det): Remove OCTAVE_API (cannot be applied on - templates). - * oct-inttypes.cc (octave_int_cmp_op::emulate_op): Ditto. - - * CmplxQR.cc (ComplexQR::insert_col, ComplexQR::delete_col): Copy - volatile variable to avoid MSVC compilation error (cannot pass - volatile variable as const& argument). - * dbleQR.cc (QR::insert_col, QR::delete_col): Ditto. - * fCmplxQR.cc (FloatComplexQR::insert_col, - FloatComplexQR::delete_col): Ditto. - * floatQR.cc (FloatQR::insert_col, FloatQR::delete_col): Ditto. - - * oct-mutex.cc: Exclude pthread.h inclusion under Win32. - - * base-aepbal.h (base_aepbal::operator=): Add missing return - statement. - - 2009-05-20 Jaroslav Hajek - - * eigs-base.cc ( - EigsRealSymmetricMatrix, - EigsRealSymmetricMatrixShift, - EigsRealSymmetricFunc, - EigsRealNonSymmetricMatrix, - EigsRealNonSymmetricMatrixShift, - EigsRealNonSymmetricFunc, - EigsComplexNonSymmetricMatrix, - EigsComplexNonSymmetricMatrixShift, - EigsComplexNonSymmetricFunc): Update tests. - - 2009-05-21 Jaroslav Hajek - - * CMatrix.cc - (ComplexMatrix::all, ComplexMatrix::any, ComplexMatrix::cumprod, - ComplexMatrix::cumsum, ComplexMatrix::prod, ComplexMatrix::sum, - ComplexMatrix::sumsq): Use explicit template qualifications - to workaround bugs in Intel C++ and MSVC++ compilers. - * CNDArray.cc - (ComplexNDArray::all, ComplexNDArray::any, ComplexNDArray::cumprod, - ComplexNDArray::cumsum, ComplexNDArray::prod, ComplexNDArray::sum, - ComplexNDArray::sumsq): Ditto. - * boolMatrix.cc - (boolMatrix::all, boolMatrix::any): Ditto. - * boolNDArray.cc - (boolNDArray::all, boolNDArray::any): Ditto. - * chMatrix.cc - (charMatrix::all, charMatrix::any): Ditto. - * chNDArray.cc - (charNDArray::all, charNDArray::any): Ditto. - * dMatrix.cc - (Matrix::all, Matrix::any, Matrix::cumprod, - Matrix::cumsum, Matrix::prod, Matrix::sum, - Matrix::sumsq): Ditto. - * dNDArray.cc - (NDArray::all, NDArray::any, NDArray::cumprod, - NDArray::cumsum, NDArray::prod, NDArray::sum, - NDArray::sumsq): Ditto. - * fCMatrix.cc - (FloatComplexMatrix::all, FloatComplexMatrix::any, FloatComplexMatrix::cumprod, - FloatComplexMatrix::cumsum, FloatComplexMatrix::prod, FloatComplexMatrix::sum, - FloatComplexMatrix::sumsq): Ditto. - * fCNDArray.cc - (FloatComplexNDArray::all, FloatComplexNDArray::any, FloatComplexNDArray::cumprod, - FloatComplexNDArray::cumsum, FloatComplexNDArray::prod, FloatComplexNDArray::sum, - FloatComplexNDArray::sumsq): Ditto. - * fMatrix.cc - (FloatMatrix::all, FloatMatrix::any, FloatMatrix::cumprod, - FloatMatrix::cumsum, FloatMatrix::prod, FloatMatrix::sum, - FloatMatrix::sumsq): Ditto. - * fNDArray.cc - (FloatNDArray::all, FloatNDArray::any, FloatNDArray::cumprod, - FloatNDArray::cumsum, FloatNDArray::prod, FloatNDArray::sum, - FloatNDArray::sumsq): Ditto. - * intNDArray.cc - (intNDArray::all, intNDArray::any, - intNDArray::cumsum, intNDArray::sum): Ditto. - - 2009-05-20 Jaroslav Hajek - - * Makefile.in: Remove reference to ArrayN-idx.h. - - 2009-05-20 Jaroslav Hajek - - * Array-voidp.cc: New source. - * Array.cc (NO_INSTANTIATE_ARRAY_SORT): const T& -> T const & - * Makefile.in: Include it. - - 2009-05-15 Jaroslav Hajek - - * Array.cc (Array::instantiation_guard): New function - (INSTANTIATE_ARRAY): Always override it here. - * Array.h: Declare it. - - 2009-05-15 Jaroslav Hajek - - * ArrayN-idx.h: Remove file. - * ArrayN.cc: Don't include it. - * MArrayN.cc: Dtto. - - 2009-05-09 Jaroslav Hajek - - * Array-util.cc (zero_dims_inquire): Move j++ out of branch. - - 2009-05-07 Marco Atzeri - - * Makefile.in: (SHLPRE): Rename from SHLLIBPRE. - - 2009-05-05 Robert T. Short - - * file-ops.h (file_ops::tail) New function. - - 2009-05-05 Carsten Clark - - * Quad.cc (user_function): Use access_double and assign_double on - SPARC only, not on all Sun systems. - * sun-utils.h: Likewise, define these functions on SPARC only. - - 2009-05-05 Jaroslav Hajek - - * Sparse.cc (assign1): Fix an old indexing bug. - - 2009-05-04 Carsten Clark - - * Quad.cc (float_user_function): Remove Sun/GCC special case. - - 2009-04-16 Jaroslav Hajek - - * idx-vector.cc (idx_vector::idx_range_rep::idx_range_rep (const - Range&)): Check for positive integer indices. Unify gripes. - - 2009-04-15 Jaroslav Hajek - - * Array.cc (rec_permute_helper::blk_trans): Declare as static. - (Array::transpose): Reuse it. - - 2009-04-04 Jaroslav Hajek - - * Array.cc (Array::make_unique): Don't economize when unique. - (Array::resize_fill (octave_idx_type, const T&)): Optimize push & - pop operations. - (Array::delete_elements (const idx_vector&)): Do pop operation - using resize. - - 2009-03-29 Jaroslav Hajek - - * Array.cc (Array::assign): Remove redundant checks after invalid - resize. - - 2009-03-26 Jaroslav Hajek - - * Array.cc (Array::find): Reshape result for Matlab compatibility. - * Array.h (Array): Add friend template declaration. - - 2009-03-27 Jaroslav Hajek - - * idx-vector.cc (idx_vector::idx_vector_rep::idx_vector_rep (const - Array&): Use more M*b-compatible behaviour. - - 2009-03-26 Jaroslav Hajek - - * dim-vector.h (dim_vector::numel): Add optional argument, simplify. - - 2009-03-26 Jaroslav Hajek - - * Array.h (Array::dims): Return a const reference. - (Array::is_vector): New method. - - 2009-03-26 Jaroslav Hajek - - * Array.cc (Array::find): New method. - * Array.h: Declare it. - - 2009-03-25 John W. Eaton - - * EIG.cc (EIG::init (const Matrix&, bool), - EIG::init (const Matrix&, const Matrix&, bool)): - Avoid volatile declaration for tmp variable. - - * Makefile.in (MATRIX_INC): Add Sparse-diag-op-defs.h and - Sparse-perm-op-defs.h to the list. - - 2009-03-25 Jaroslav Hajek - - * oct-inttypes.cc (INT_DOUBLE_BINOP_DECL (*, uint64), - INT_DOUBLE_BINOP_DECL (*, int64)): x -> y where appropriate. - - 2009-03-25 Jaroslav Hajek - - * Array.cc (rec_permute_helper::use_blk): New field. - (rec_permute_helper::blk_trans): New method. - (rec_permute_helper::rec_permute_helper): Use smart reductions, - detect possibility of using blocked transpose. - (rec_permute_helper::do_permute): Use blocked transpose if possible. - - 2009-03-23 Jaroslav Hajek - - * idx-vector.cc (convert_index(double,...)): Simplify. - - 2009-03-21 Jaroslav Hajek - - * Array-d.cc: lo_ieee_isnan -> xisnan. - * Array-f.cc: Ditto. - * oct-inttypes.cc: Ditto. - * oct-inttypes.h: Ditto. - * CDiagMatrix.cc: Add missing include. - * fCDiagMatrix.cc: Ditto. - - 2009-03-20 Jaroslav Hajek - - * CColVector.cc, CMatrix.cc, CNDArray.cc, CRowVector.cc, CSparse.cc, - boolSparse.cc, dColVector.cc, dMatrix.cc, dNDArray.cc, dRowVector.cc, - dSparse.cc, fCColVector.cc, fCMatrix.cc, fCNDArray.cc, fCRowVector.cc, - fColVector.cc, fMatrix.cc, fNDArray.cc, fRowVector.cc, intNDArray.cc: - Allow empty arrays in stream input operators. - - 2009-03-20 Jaroslav Hajek - - * Array.h (Array::fastmap): New method. - * dNDArray.cc (NDArray::isnan, NDArray::isinf, NDArray::isfinite): - New methods. - * dNDArray.h: Declare them. - * fNDArray.cc (FloatNDArray::isnan, FloatNDArray::isinf, - FloatNDArray::isfinite): New methods. - * fNDArray.h: Declare them. - * CNDArray.cc (ComplexNDArray::isnan, ComplexNDArray::isinf, - ComplexNDArray::isfinite): New methods. - * CNDArray.h: Declare them. - * fCNDArray.cc (FloatComplexNDArray::isnan, FloatComplexNDArray::isinf, - FloatComplexNDArray::isfinite): New methods. - * fCNDArray.h: Declare them. - * lo-mappers.h (xisnan, xisinf, xfinite): If possible, use definitions - from . - - 2009-03-18 Jaroslav Hajek - - * oct-norm.cc (get_eps): Remove that hack. - (higham): Use std::numeric_limits instead. - Include OCTAVE_QUIT. - - 2009-03-16 Jason Riedy - - * Sparse.cc (transpose): Eliminate the workspace by computing in - retval.xcidx. - * CSparse.cc (hermitian): Eliminate the workspace by computing in - retval.xcidx. - - 2009-03-14 Jaroslav Hajek - - * mx-op-decl.h (NDS_BOOL_OP_DECLS, SND_BOOL_OP_DECLS, NDND_BOOL_OP_DECLS): Support compound binary ops. - * mx-op-defs.h (NDS_BOOL_OPS, SND_BOOL_OPS, NDND_BOOL_OPS): Ditto. Optimize. - * mx-op-defs.h (NDS_CMP_OP, SND_CMP_OP, NDND_CMP_OP): Optimize. - - 2009-03-14 Jaroslav Hajek - - * fNDArray.h (FloatMatrix::matrix_value): Fix return type. - * dNDArray.cc (Matrix::matrix_value): Simplify. - * fNDArray.cc (FloatMatrix::matrix_value): Simplify. - * CNDArray.cc (ComplexMatrix::matrix_value): Simplify. - * fCNDArray.cc (FloatComplexMatrix::matrix_value): Simplify. - - 2009-03-13 Jaroslav Hajek - - * Range.h (Range::Range (double, double, octave_idx_type)): Remove - constructor body. - * Range.cc: Move it here. Check for invalid range op results. - (all operators): Validate cache for invalid range op results. - * idx-vector.h (idx_vector::index): Optimize zero-step range case. - * idx-vector.cc (idx_vector::maybe_reduce): Always reduce colon in - singleton dimension. - - 2009-03-10 Jason Riedy - - * sparse-base-lu.cc (Pr_mat): New member function. Return the row - permutation as a PermMatrix. - (Pc_mat): New member function. Return the col permutation as a - PermMatrix. - - * sparse-base-lu.h (sparse_base_lu): Declare Pc_mat and Pr_mat - member functions. - - 2009-03-09 Jason Riedy - - * Sparse-diag-op-defs.h (octave_impl::inner_do_add_sm_dm): New - template function. Implementation for adding sparse and diagonal - matrices. Takes two functional arguments, opa and opd, to - generate both subtraction variants. - (octave_impl::do_commutative_add_dm_sm): New template function. - Ensure A+D and D+A use the same generated code. - (octave_impl::do_add_dm_sm): New template function. Check - arguments for diag + sparse and call inner routine. - (octave_impl::do_sub_dm_sm): New template function. Check - arguments for diag - sparse and call inner routine. - (octave_impl::do_add_sm_dm): New template function. Check - arguments for sparse + diag and call inner routine. - (octave_impl::do_sub_sm_dm): New template function. Check - arguments for sparse - diag and call inner routine. - - * dSparse.h (operator +): Declare overrides for real diag + - sparse. - (operator -): Declare overrides for real diag - sparse, sparse - - diag. - - * dSparse.cc (operator +): Define overrides for real diag + - sparse. - (operator -): Define overrides for real diag - sparse, sparse - - diag. - - * CSparse.h (operator +): Declare overrides for complex and real - combinations of diag + sparse. - (operator -): Declare overrides for complex and real combinations - of diag - sparse, sparse - diag. - - * CSparse.cc (operator +): Define overrides for complex and real - combinations of diag + sparse. - (operator -): Define overrides for complex and real combinations - of diag - sparse, sparse - diag. - - 2009-03-08 Jason Riedy - - * Sparse-diag-op-defs.h (octave_impl::do_mul_dm_sm) - (octave_impl::do_mul_sm_dm): New template - functions. Implementations for sparse * diag and diag * sparse. - - * CSparse.h (operator *, trans_mul, herm_mul): Add overloads for - DiagMatrix and ComplexDiagMatrix. - * CSparse.cc (operator *, trans_mul, herm_mul): Implement - operations by calling approprate functions in - Sparse-diag-op-defs.h. - * dSparse.h (operator *, trans_mul): Add overloads for DiagMatrix. - * dSparse.cc (operator *, trans_mul): Implement operations by - calling approprate functions in Sparse-diag-op-defs.h. - - 2009-03-12 John W. Eaton - - * oct-inttypes.h (bitshift): Apply mask even if not shifting. - From Seb Astien . - - 2009-03-11 Jaroslav Hajek - - * PermMatrix.cc (PermMatrix::power): New method. - * PermMatrix.h: Declare it. - - 2009-03-11 Jaroslav Hajek - - * dNDArray.cc (NDArray::NDArray (const charNDArray&)): New - constructor. - * fNDArray.cc (FloatNDArray::FloatNDArray (const charNDArray&)): - Ditto. - * CNDArray.cc (ComplexNDArray::ComplexNDArray (const charNDArray&)): - Ditto. - * fCNDArray.cc (FloatComplexNDArray::FloatComplexNDArray - (const charNDArray&)): Ditto. - - * dNDArray.h (NDArray::NDArray (const charNDArray&)): Declare. - * fNDArray.h (FloatNDArray::FloatNDArray (const charNDArray&)): - Ditto. - * CNDArray.h (ComplexNDArray::ComplexNDArray (const charNDArray&)): - Ditto. - * fCNDArray.h (FloatComplexNDArray::FloatComplexNDArray - (const charNDArray&)): Ditto. - - * dMatrix.cc (Matrix::Matrix (const charMatrix&)): Cast to unsigned - chars. - * fMatrix.cc (FloatMatrix::FloatMatrix (const charMatrix&)): Likewise. - * CMatrix.cc (ComplexMatrix::ComplexMatrix (const charMatrix&)): - Likewise. - * fCMatrix.cc (FloatComplexMatrix::FloatComplexMatrix - (const charMatrix&)): Likewise. - - 2009-03-10 Jason Riedy - - * Sparse-perm-op-defs.h (octinternal_do_mul_colpm_sm): New - template function. Logic for the column permutation * sparse - matrix operator. - (octinternal_do_mul_pm_sm): New template function. Logic for the - permutation matrix * sparse matrix operator. Note that there is - no special row perm * sparse routine; the permutation is inverted - and the col perm routine is called. - (octinternal_do_mul_sm_rowpm): New template function. Logic for - the sparse matrix * row permutation operator. - (octinternal_do_mul_sm_colpm): New template function. Logic for - the sparse matrix * column permutation operator. - (octinternal_do_mul_sm_pm): New template function. Logic for the - sparse matrix * permutation matrix operator. - - * dSparse.h (operator *): Declare sparse * permutation and - permutation * sparse. - * dSparse.cc (operator *): Define sparse * permutation and - permutation * sparse. - - * CSparse.h (operator *): Declare sparse * permutation and - permutation * sparse. - * CSparse.cc (operator *): Define sparse * permutation and - permutation * sparse. - - 2009-03-10 Jason Riedy - - * sparse-base-lu.cc (Pc_vec): The column permutation should be - Ufact.cols ()-long, not Lfact.rows ()-long. - - 2009-03-10 Jason Riedy - - * dSparse.cc (SparseMatrix::SparseMatrix (const PermMatrix&)): - Fix conversion to add values to the matrix as well as getting - structure correct. - - 2009-03-10 John W. Eaton - - * Array.h, ArrayN.h, Bounds.h, CmplxAEPBAL.h, CmplxCHOL.h, - CmplxGEPBAL.h, CmplxHESS.h, CmplxQR.h, CmplxQRP.h, CmplxSCHUR.h, - CmplxSVD.h, CollocWt.h, EIG.h, FEGrid.h, LinConst.h, Range.h, - Sparse.h, SparseCmplxQR.h, SparseQR.h, dbleAEPBAL.h, dbleCHOL.h, - dbleGEPBAL.h, dbleHESS.h, dbleQR.h, dbleQRP.h, dbleSCHUR.h, - dbleSVD.h, dim-vector.h, fCmplxAEPBAL.h, fCmplxCHOL.h, - fCmplxGEPBAL.h, fCmplxHESS.h, fCmplxQR.h, fCmplxQRP.h, - fCmplxSCHUR.h, fCmplxSVD.h, fEIG.h, floatAEPBAL.h, floatCHOL.h, - floatGEPBAL.h, floatHESS.h, floatQR.h, floatQRP.h, floatSCHUR.h, - floatSVD.h, idx-vector.h, lo-utils.h, oct-inttypes.h, - oct-spparms.h, str-vec.h: Include instead of . - - 2009-03-10 Jaroslav Hajek - - * mx-inlines.cc (OP_CUMMINMAX_FCN2): r -> r0 where appropriate. - - 2009-03-08 Jaroslav Hajek - - * idx-vector.h (idx_vector::bloop): loop --> bloop. - (idx_vector::loop): New method. - * MArray.cc (MArray::idx_add (cons idx_vector&, T)) - (MArray::idx_add (cons idx_vector&, const MArray&)): New methods. - * MArray.h: Declare them. - - 2009-03-05 Jason Riedy - - * Sparse.h (Sparse::elt_type): Remove typedef, replace with: - * Sparse.h (Sparse::element_type): Add typedef to be consistent - with Array.h - * DiagArray2.h (DiagArray2::elt_type): Likewise, removed. - * DiagArray2.h (DiagArray2::element_type): Define by using - Array::element_type. - * intNDArray.h (intNDArray::element_type): Remove, inherited - from MArrayN. - - 2009-03-05 Jaroslav Hajek - - * dSparse.h (SparseMatrix::SparseMatrix(const PermMatrix&)): New - constructor. - (SparseMatrix::SparseMatrix(const DiagMatrix&)): Fix implementation. - * CSparse.h (SparseComplexMatrix::SparseComplexMatrix(const ComplexDiagMatrix&)): - Fix implementation. - - 2009-03-04 Jaroslav Hajek - - * PermMatrix.h (PermMatrix::elem): Fix comparisons. - - 2009-03-03 Jaroslav Hajek - - * lo-mappers.cc (xmin (float, float), xmax (float, float)): Simplify. - - 2009-03-02 Jaroslav Hajek - - * mx-inlines.cc: Add missing #include. - - 2009-02-25 John W. Eaton - - * Makefile.in: Make maintainer-clean and distclean the same. - - 2009-02-25 Jaroslav Hajek - - * oct-inttypes.cc (pow (const octave_int&, const octave_int&)): - Simplify. - - 2009-02-23 Jaroslav Hajek - - * oct-inttypes.h (octave_int_cmp_op::mop): Implement as simple - forwarders when OCTAVE_INT_USE_LONG_DOUBLE is not defined. - (octave_int_cmp_op::emulate_mop): New static overloaded template - member function. - * oct-inttypes.cc: Turn the octave_int_cmp_op::mop definitions into - defs for octave_int_cmp_op::emulate_mop. - (INSTANTIATE_INT64_DOUBLE_CMP_OP0): Instantiate - octave_int_cmp_op::emulate_op instead. - - 2009-02-23 Jaroslav Hajek - - * dDiagMatrix.cc (DiagMatrix::pseudo_inverse): New method. - * dDiagMatrix.h: Declare it. - * fDiagMatrix.cc (FloatDiagMatrix::pseudo_inverse): New method. - * fDiagMatrix.h: Declare it. - * CDiagMatrix.cc (ComplexDiagMatrix::pseudo_inverse): New method. - * CDiagMatrix.h: Declare it. - * fCDiagMatrix.cc (FloatComplexDiagMatrix::pseudo_inverse): New method. - * fCDiagMatrix.h: Declare it. - - 2009-02-20 Jaroslav Hajek - - * oct-sort.h (octave_sort::MergeState::MergeState): New - constructor. - (octave_sort::MergeState::~MergeState): New destructor. - (octave_sort::MergeState::reset, - octave_sort::MergeState::getmem, - octave_sort::MergeState::getmemi): New methods. - (octave_sort::sort, - octave_sort::merge_lo, octave_sort::merge_hi - octave_sort::merge_at): Reflect change. - - 2009-02-19 Jaroslav Hajek - - * oct-types.h (sortmode): Move enum here. - * oct-sort.h (octave_sort::ms): Declare as pointer. - (octave_sort::lookup): New overloaded method. - * oct-sort.cc: Reflect change to ms. - (octave_sort::lookup): New overloaded method. - (out_of_range_pred): New helper class. - (out_of_range): New helper function. - * oct-lookup.h: Remove file. - * Array.cc (Array::lookup): New overloaded method. - * Array.h: Declare it. - - 2009-02-18 John W. Eaton - - * dbleQR.cc (QR::init, QR::form): Cast int to octave_idx_type in - call to std::max. - * floatQR.cc (FloatQR::init, FloatQR::form): Ditto. - * CmplxQR.cc (ComplexQR::init, ComplexQR::form): Ditto. - * fCmplxQR.cc (FloatComplexQR::init, FloatComplexQR::form): Ditto. - - * dbleQRP.cc (QRP::init): Cast int to octave_idx_type in call to - std::max and as operand to -= operator. - * CmplxQRP.cc (ComplexQRP::init): Ditto. - * floatQRP.cc (FloatQRP::init): Ditto. - * fCmplxQRP.cc (FloatComplexQRP::init): Ditto. - - * CDiagMatrix.cc, CDiagMatrix.h (ComplexDiagMatrix::inverse): - Declare info as octave_idx_type, not int. - * dDiagMatrix.cc, dDiagMatrix.h (DiagMatrix::inverse): Ditto. - * fDiagMatrix.cc, fCDiagMatrix.h (FloatDiagMatrix::inverse): Ditto. - * fCDiagMatrix.cc, fCDiagMatrix.h (FloatComplexDiagMatrix::inverse): - Ditto. - - * dMatrix.cc (Matrix::determinant): - Declare local variables volatile as needed to avoid "maybe - clobbered by vfork" warning from GCC. - * fMatrix.cc (FloatMatrix::determinant): Likewise. - * CMatrix.cc (ComplexMatrix::determinant): Likewise. - * fCMatrix.cc (FloatComplexMatrix::determinant): Likewise. - * dbleQR.cc (QR::update, QR::insert_col, QR::delete_col): Likewise. - * floatQR.cc (FloatQR::update, FloatQR::insert_col, - FloatQR::delete_col): Likewise. - * CmplxQR.cc (ComplexQR::update, ComplexQR::insert_col, - ComplexQR::delete_col): Likewise. - * fCmplxQR.cc (FloatComplexQR::update, FloatComplexQR::insert_col, - FloatComplexQR::delete_col): Likewise. - - * dMatrix.cc (padec, solve_singularity_warning): Delete unused - static variable and function. - * CMatrix.cc (padec, solve_singularity_warning): Ditto. - * fMatrix.cc (padec, solve_singularity_warning): Ditto. - * fCMatrix.cc (padec, solve_singularity_warning): Ditto. - - 2009-02-18 Jaroslav Hajek - - * Array.cc (Array::resize (const dim_vector&)): Check for negative - dimensions. - - 2009-02-18 Jaroslav Hajek - - * oct-inttypes.cc (pow (const octave_int&, const octave_int&)): - Use octave_int comparisons to avoid warning for unsigned types. - - 2009-02-17 Jaroslav Hajek - - * Array.cc (Array::resize (const dim_vector&)): Remove dead branch. - - 2009-02-17 Jaroslav Hajek - - * mx-inlines.cc (OP_CUM_FCN, OP_CUM_FCN2, OP_CUM_FCNN): - Add TSRC/TRES parameters. - (mx_inline_cumcount): New function. - * intNDArray.cc (intNDArray::cumsum): New method. - * intNDArray.h: Declare it. - * boolNDArray.cc (boolNDArray::cumsum): New method. - * boolNDArray.h: Declare it. - - 2009-02-17 Jaroslav Hajek - - * mx-inlines.cc (OP_CUMMINMAX_FCN, OP_CUMMINMAX_FCN2, - OP_CUMMINMAX_FCNN): New macros. - (mx_inline_cummax, mx_inline_cummin, do_mx_cumminmax_op): - New overloaded template functions. - - * dNDArray.cc (NDArray::cummin, NDArray::cummax): New methods. - * dNDArray.h: Declare them. - - * fNDArray.cc (FloatNDArray::cummin, FloatNDArray::cummax): New - methods. - * fNDArray.h: Declare them. - - * CNDArray.cc (ComplexNDArray::cummin, ComplexNDArray::cummax): New - methods. - * CNDArray.h: Declare them. - - * fCNDArray.cc (FloatComplexNDArray::cummin, - FloatComplexNDArray::cummax): New methods. - * fCNDArray.h: Declare them. - - * intNDArray.cc (intNDArray::cummin, intNDArray::cummax): New methods. - * intNDArray.h: Declare them. - - 2009-02-17 Jaroslav Hajek - - * mx-inlines.cc (OP_MINMAX_FCN): Correct behaviour with NaNs. - - 2009-02-17 Jaroslav Hajek - - * MArray-defs.h: Move declarative part to MArray-decl.h - * MArray-decl.h: New source. - - * mx-op-defs.h: Move declarative part to mx-op-decl.h. - * mx-op-decl.h: New source. - - * Makefile.in: Include new sources in build. - * mk-ops.awk: Include mx-op-decl.h in headers, mx-op-defs in .cc - files. - - * CMatrix.cc, CMatrix.h, CNDArray.cc, CNDArray.h, MArray.h, MArray2.h, - MArrayN.h, MDiagArray2.h, boolMatrix.cc, boolMatrix.h, boolNDArray.cc, - boolNDArray.h, chMatrix.cc, chMatrix.h, chNDArray.cc, chNDArray.h, - dMatrix.cc, dMatrix.h, dNDArray.cc, dNDArray.h, fCMatrix.cc, - fCMatrix.h, fCNDArray.cc, fCNDArray.h, fMatrix.cc, fMatrix.h, - fNDArray.cc, fNDArray.h, int16NDArray.cc, int16NDArray.h, - int32NDArray.cc, int32NDArray.h, int64NDArray.cc, int64NDArray.h, - int8NDArray.cc, int8NDArray.h, uint16NDArray.cc, uint16NDArray.h, - uint32NDArray.cc, uint32NDArray.h, uint64NDArray.cc, uint64NDArray.h, - uint8NDArray.cc, uint8NDArray.h: Ditto. - - 2009-02-16 Jaroslav Hajek - - * Array.cc (Array::assign (const idx_vector& i, - const idx_vector& j,...)): Fix invalid dimension inquiry. - - 2009-02-16 Jaroslav Hajek - - * mx-inlines.cc (OP_ROW_SHORT_CIRCUIT): New macro. - (mx_inline_any, mx_inline_all): Override row-reduction case. - (MX_CUMULATIVE_OP, MX_BASE_REDUCTION_OP, MX_REDUCTION_OP, - MX_ANY_OP, MX_ALL_OP, MX_ND_ANY_ALL, MX_ND_REDUCTION, - MX_ND_COMPLEX_OP_REDUCTION, MX_ND_CUMULATIVE_OP, - MX_ND_ANY_EVAL, MX_ND_ALL_EVAL, MX_ND_REAL_OP_REDUCTION): - Remove unused macros. - - 2009-02-16 Jaroslav Hajek - - * mx-inlines.cc (OP_RED_FCNN): Use explicit type qualification. - (mx_inline_count): New overloaded template function. - * boolNDArray.h (boolNDArray::sum): Return NDArray. - * boolNDArray.cc (boolNDArray::sum): Return NDArray, use do_mx-red_op. - - 2009-02-16 Jaroslav Hajek - - * Array-C.cc, Array-fC.cc: Don't redefine complex comparison. - * Sparse.cc (Sparse::sort): Don't use vec_index. - * Sparse-C.cc, Sparse-d.cc, Sparse-b.cc: Don't reinstantiate - octave_sort, reflect changes. - * sparse-sort.cc: Explicitly instantiate octave_sort for requested - pointer types. - - 2009-02-16 Jaroslav Hajek - - * oct-cmplx.h (operator <, operator >): New operators. - * mx-inlines.cc (OP_MINMAX_FCN, OP_MINMAX_FCN2, OP_MINMAX_FCNN): - New macros. - (mx_inline_min, mx_inline_max, do_mx_minmax_op): New overloaded - template functions. - * dNDArray (NDArray::min, NDArray::max): Use do_mx_minmax_op. - * fNDArray (FloatNDArray::min, FloatNDArray::max): Ditto. - * CNDArray (ComplexNDArray::min, ComplexNDArray::max): Ditto. - * fCNDArray (FloatComplexNDArray::min, FloatComplexNDArray::max): - Ditto. - - 2009-02-16 Jaroslav Hajek - - * chMatrix.cc (charMatrix::all, charMatrix::any): Use do_mx_red_op. - * chNDArray.cc (charNDArray::all, charNDArray::any): Ditto. - - 2009-02-16 John W. Eaton - - * cmd-edit.cc (default_command_editor::do_readline): - Use fputs instead of fprintf. - - 2009-02-14 Jaroslav Hajek - - * mx-inlines.cc (OP_RED_FCN, OP_RED_FCN2, OP_RED_FCNN, OP_CUM_FCN, - OP_CUM_FCN2, OP_CUM_FCNN): Include TRET parameter. - (OP_RED_ANYC, OP_RED_ANYR, OP_RED_ALLC, OP_RED_ALLR): New macros. - (is_true, is_false): New template functions. - (mx_inline_any, mx_inline_all): New template functions. - - * dMatrix.cc (Matrix::any, Matrix::all): Use do_mx_red_op and - do_mx_cum_op. - * fMatrix.cc (FloatMatrix::any, FloatMatrix::all): Use do_mx_red_op - and do_mx_cum_op. - * CMatrix.cc (ComplexMatrix::any, ComplexMatrix::all): Use - do_mx_red_op and do_mx_cum_op. - * fCMatrix.cc (FloatComplexMatrix::any, FloatComplexMatrix::all): Use - do_mx_red_op and do_mx_cum_op. - - * dNDArray.cc (NDArray::any, NDArray::all): Use do_mx_red_op and - do_mx_cum_op. - * fNDArray.cc (FloatNDArray::any, FloatNDArray::all): Use do_mx_red_op - and do_mx_cum_op. - * CNDArray.cc (ComplexNDArray::any, ComplexNDArray::all): Use - do_mx_red_op and do_mx_cum_op. - * fCNDArray.cc (FloatComplexNDArray::any, FloatComplexNDArray::all): - Use do_mx_red_op and do_mx_cum_op. - - * intNDArray.cc (intNDArray::any, intNDArray::all): Use do_mx_red_op and - do_mx_cum_op. - - * boolNDArray.cc (boolNDArray::any, boolNDArray::all): Use do_mx_red_op and - do_mx_cum_op. - - * boolMatrix.cc (boolMatrix::any, boolMatrix::all): Use do_mx_red_op and - do_mx_cum_op. - - 2009-02-14 Jaroslav Hajek - - * intNDArray.cc: include mx-inlines.cc. - (intNDArray::sum): Use mx_do_red_op (..., mx_inline_sum). - * Range.cc (Range::is_sorted): Add missing return statement. - - 2009-02-13 Jaroslav Hajek - - * mx-inlines.cc (OP_RED_SUM, OP_RED_PROD, OP_RED_SUMSQ, OP_RED_SUMSQC, - OP_RED_FCN, OP_RED_FCN2, OP_RED_FCNN, OP_CUM_FCN, OP_CUM_FCN2, - OP_CUM_FCNN): New macros. - (mx_inline_sum, mx_inline_prod, mx_inline_sumsq, mx_inline_cumsum, - mx_inline_cumprod, get_extent_triplet, do_mx_red_op, do_mx_cum_op): - New template functions. - * dMatrix.cc (Matrix::cumprod, Matrix::cumsum, Matrix::prod, - Matrix::sum, Matrix::sumsq): Use do_mx_red_op and do_mx_cum_op. - * fMatrix.cc (FloatMatrix::cumprod, FloatMatrix::cumsum, - FloatMatrix::prod, FloatMatrix::sum, FloatMatrix::sumsq): Use - do_mx_red_op and do_mx_cum_op. - * CMatrix.cc (ComplexMatrix::cumprod, ComplexMatrix::cumsum, - ComplexMatrix::prod, ComplexMatrix::sum, ComplexMatrix::sumsq): Use - do_mx_red_op and do_mx_cum_op. - * fCMatrix.cc (FloatComplexMatrix::cumprod, - FloatComplexMatrix::cumsum, FloatComplexMatrix::prod, - FloatComplexMatrix::sum, FloatComplexMatrix::sumsq): Use do_mx_red_op - and do_mx_cum_op. - - 2009-02-12 Jaroslav Hajek - - * oct-inttypes.h (if_else_type): Remove - (octave_int_base::truncate_int): Use if_then_else. - - 2009-02-12 John W. Eaton - - * lo-traits.h: New file. - * Makefile.in (INCLUDES): Add it to the list. - - * Array.h (compare_fcn_type): New typedef. - * oct-sort.h (compare_fcn_type): Ditto. - - * oct-sort.h, oct-sort.cc (octave_sort::octave_sort, - octave_sort::set_compare, octave_sort::compare): - Use typedef to simplify decl. - (octave_sort::ascending_compare, - octave_sort::descending_compare): - Use ref_param::type for parameter decl. - - * Array.cc (sort_isnan): Use ref_param::type for parameter decl. - (Array::sort): Use explicit template parameter for sort_isnan calls. - - * Array.cc, Array-C.cc, Array-fC.cc, Array-d.cc, Array-f.cc - (sortrows_comparator): Rename from _sortrows_comparator. Change - all uses. Use typedef for return value to simplify decl. - (sort_isnan): Rename from _sort_isnan. Change all uses. - (NO_INSTANTIATE_ARRAY_SORT): Use typedef to simplify instantiation - of sortrows_comparator. - - * Array-C.cc, Array-fC.cc (sort_isnan, ascending_compare, - descending_compare, nan_ascending_compare, - nan_descending_compare): - - 2009-02-11 Jaroslav Hajek - - * oct-sort.cc (octave_sort::is_sorted, octave_sort::sort_rows, - octave_sort::is_sorted_rows): New methods. - * oct-sort.h: Declare them. - - * Array.cc (Array::is_sorted): New method. - (INSTANTIATE_ARRAY_SORT, NO_INSTANTIATE_ARRAY_SORT, - INSTANTIATE_ARRAY_AND_ASSIGN, INSTANTIATE_ARRAY): Move macros here. - * Array.h: Reflect changes. - - * dim-vector.h (dim_vector::is_vector): New method. - * Array-C.cc, Array-fC.cc: Override _sort_isnan, don't check for - NaN in default comparators. Provide NaN-safe comparators, override - _sortrows_comparator. - * Array-d.cc, Array-f.cc: Provide NaN-safe comparators, override - _sortrows_comparator. - * Range.cc (Range::is_sorted): New method. - * Range.h: Declare it. - - 2009-02-09 Jaroslav Hajek - - * oct-sort.cc (octave_sort): Rewrite for optimizations. Allow - inlined comparison functor and by-the-way indexed sorting. - * oct-sort.h (octave_sort): Update interface. - * Array.cc (Array::sort): Reflect changes. Use copy & partition - mechanism. - * Array-d.cc, Array-f.cc, Array-C.cc, Array-fC.cc, Array-s.cc, - Array-i.cc: Reflect changes. - - 2009-02-05 John W. Eaton - - * file-stat.cc (base_file_stat::is_sock): - Use EXISTS instead of OK in previous change. - - * file-stat.cc (base_file_stat::is_blk, base_file_stat::is_chr, - base_file_stat::is_dir, base_file_stat::is_fifo, - base_file_stat::is_lnk, base_file_stat::is_reg, - base_file_stat::is_sock): Return false if object is not initialized. - From Rafael Laboissiere . - - 2009-02-05 Jaroslav Hajek - - * idx-vector.h (idx_vector::idx_colon_rep, - idx_vector::idx_scalar_rep, idx_vector::idx_range_rep, - idx_vector::idx_vector_rep): Declare allocators. - * idx-vector.cc: Define them. - - 2009-02-05 Jaroslav Hajek - - * str-vec.h (string_vector::sort): Remove implementation. - * str-vec.cc (string_vector::sort): Move here. Use in-place sorting. - * Array-str.cc: Fix order of header files. - * oct-sort.cc (octave_sort::merge_hi): std::copy -> - std::copy_backward where appropriate. - - 2009-02-05 John W. Eaton - - * Array-util.cc (zero_dims_inquire): Eliminate unused variable MATCH. - - * Sparse.cc (assign (Sparse& lhs, const Sparse& rhs)): - Eliminate unused variable N. - - * MArray-f.cc (MArray::norm (float p) const, - MArray::norm (float p) const): Pass P to xnorm. - - * eigs-base.cc (EigsRealNonSymmetricFunc, EigsRealSymmetricFunc) - (EigsComplexNonSymmetricFunc): Avoid unused parameter warning. - * idx-vector.cc (idx_vector::freeze): Likewise. - - 2009-02-04 Jaroslav Hajek - - * oct-locbuf.h: Specialize OCTAVE_LOCAL_BUFFER to use chunked - allocation for pointers and const pointers. - - 2009-02-03 Benjamin Lindner - - * Makefile.in: Add missing library reference. - - 2009-02-03 Jaroslav Hajek - - * Array.cc (Array::sort (octave_idx_type, sortmode)): - Copy array on-the-fly. - (Array::sort (Array &, octave_idx_type, sortmode)): - Copy array on-the-fly, use bare pointers rather than vec_index. - - * Array-d.cc (Array::sort (octave_idx_type, sortmode)): - Copy array on-the-fly. - (Array::sort (Array &, octave_idx_type, sortmode)): - Copy array on-the-fly, use bare pointers rather than vec_index. - - * Array-f.cc (Array::sort (octave_idx_type, sortmode)): - Copy array on-the-fly. - (Array::sort (Array &, octave_idx_type, sortmode)): - Copy array on-the-fly, use bare pointers rather than vec_index. - - 2009-02-02 Jaroslav Hajek - - * mx-inlines.cc (mx_inline_fabs_dup, mx_inline_cabs_dup): New funcs. - - * dMatrix.cc (real, imag, Matrix::abs): Simplify. - * fMatrix.cc (real, imag, FloatMatrix::abs): Simplify. - * CMatrix.cc (ComplexMatrix::abs, ComplexMatrix::conj): Simplify. - * fCMatrix.cc (FloatComplexMatrix::abs, FloatComplexMatrix::conj): Simplify. - - * CMatrix.h, fCMatrix.h (conj): Add missing decl. - - * dNDArray.cc (real, imag, NDArray::abs): Simplify. - * fNDArray.cc (real, imag, FloatNDArray::abs): Simplify. - * CNDArray.cc (ComplexNDArray::abs, ComplexNDArray::conj): Simplify. - * fCNDArray.cc (FloatComplexNDArray::abs, FloatComplexNDArray::conj): Simplify. - - * CMatrix.h, fCMatrix.h (conj): New decl. - - 2009-01-29 John W. Eaton - - * intNDArray.h (intNDArray:any_element_is_nan): New function. - * boolNDArrah.h (boolNDArray::any_element_is_nan): New function. - * chNDArray.h (charNDArray::any_element_is_nan): New function. - - 2009-01-28 John W. Eaton - - * Makefile.in (LIBRARIES, install, uninstall): Use SHLLIBPRE - and SHLBINPRE library prefixes. - From Marco Atzeri . - - 2009-01-28 Jaroslav Hajek - - * dMatrix.cc (Matrix::Matrix (const RowVector&)): Use shallow copy. - (Matrix::Matrix (const ColumnVector&)): Ditto. - (Matrix::row): Ditto. - (Matrix::column): Ditto. - - * fMatrix.cc (FloatMatrix::FloatMatrix (const FloatRowVector&)): Use - shallow copy. - (FloatMatrix::FloatMatrix (const FloatColumnVector&)): Ditto. - (FloatMatrix::row): Ditto. - (FloatMatrix::column): Ditto. - - * CMatrix.cc (ComplexMatrix::ComplexMatrix (const ComplexRowVector&)): - Use shallow copy. - (ComplexMatrix::ComplexMatrix (const ComplexColumnVector&)): Ditto. - (ComplexMatrix::row): Ditto. - (ComplexMatrix::column): Ditto. - - * fCMatrix.cc (FloatComplexMatrix::FloatComplexMatrix (const FloatComplexRowVector&)): - Use shallow copy. - (FloatComplexMatrix::FloatComplexMatrix (const FloatComplexColumnVector&)): Ditto. - (FloatComplexMatrix::row): Ditto. - (FloatComplexMatrix::column): Ditto. - - 2009-01-27 Benjamin Lindner - - * Makefile.in (LINK_DEPS): Include ARPACK_LIBS and REGEX_LIBS in - the list. - - 2009-01-27 Jaroslav Hajek - - * dbleQR.cc (QR::init): Use form. Use local buffers. - Query for optimal block size. - (QR::form): New function. - * dbleQR.h: Declare it. - * dbleQRP.cc (QRP::init):Use form. Use local buffers. - Query for optimal block size. - - * floatQR.cc (FloatQR::init): Use form. Use local buffers. - Query for optimal block size. - (FloatQR::form): New function. - * floatQR.h: Declare it. - * floatQRP.cc (FloatQRP::init):Use form. Use local buffers. - Query for optimal block size. - - * CmplxQR.cc (ComplexQR::init): Use form. Use local buffers. - Query for optimal block size. - (ComplexQR::form): New function. - * CmplxQR.h: Declare it. - * CmplxQRP.cc (ComplexQRP::init):Use form. Use local buffers. - Query for optimal block size. - - * fCmplxQR.cc (FloatComplexQR::init): Use form. Use local buffers. - Query for optimal block size. - (FloatComplexQR::form): New function. - * fCmplxQR.h: Declare it. - * fCmplxQRP.cc (FloatComplexQRP::init):Use form. Use local buffers. - Query for optimal block size. - - 2009-01-23 Jaroslav Hajek - - * Array.cc (Array::assign (const idx_vector&, const Array&)): - Optimize assignment to an empty array. - (Array::assign (const idx_vector&, const idx_vector&, const Array&)): - Optimize assignment to an empty array. - - 2009-01-22 Jaroslav Hajek - - * Array2.h (Array2::index): Declare resize_ok as bool. - * ArrayN.h (ArrayN::index): Ditto. Declare index vectors as const - refs. - - 2009-01-22 Jaroslav Hajek - - * Range.cc (sort_internal): Add missing test. - - 2009-01-22 Jaroslav Hajek - - * Array.cc (Array::index (..., bool resize_ok)): - Optimize the all-scalar-indices cases. - - 2009-01-22 Jaroslav Hajek - - * dbleQR.h: Optionally declare warn_qrupdate_once. - * dbleQR.cc: Define it. - * (CmplxQR.h, dbleQR.h, fCmplxQR.h, floatQR.h): Declare replacement - methods unconditionally. - * (CmplxQR.cc, dbleQR.cc, fCmplxQR.cc, floatQR.cc): Define - updating replacement methods. - * (CmplxCHOL.h, dbleCHOL.h, fCmplxCHOL.h, floatCHOL.h): Declare - replacement methods unconditionally. - * (CmplxCHOL.cc, dbleCHOL.cc, fCmplxCHOL.cc, floatCHOL.cc): Define - updating replacement methods. - - 2009-01-21 Jaroslav Hajek - - * Range.cc ( operator + (double x, const Range& r), - operator + (const Range& r, double x), - operator - (double x, const Range& r), - operator - (const Range& r, double x), - operator * (double x, const Range& r), - operator * (const Range& r, double x)): New operators. - * Range.h: Declare them. - - 2009-01-20 John W. Eaton - - * file-stat.h, file-stat.cc (class base_file_stat): New base class. - (class file_stat): Derive from base_file_stat. - (class file_fstat): New class, derived from base_file_stat. - - 2009-01-17 Jaroslav Hajek - - * floatQR.h (FloatQR::update, FloatQR::insert_col, - FloatQR::insert_row, FloatQR::delete_col, FloatQR::delete_row, - FloatQR::shift_col): Update interfaces. - - * floatQR.cc: Update external decls for qrupdate routines. - (FloatQR::update, FloatQR::insert_col, FloatQR::insert_row, - FloatQR::delete_col, FloatQR::delete_row, FloatQR::shift_col): Reflect - changes in qrupdate interfaces, implement batch updates. - - * dbleQR.h (QR::update, QR::insert_col, QR::insert_row, - QR::delete_col, QR::delete_row, QR::shift_col): Update interfaces. - - * dbleQR.cc: Update external decls for qrupdate routines. - (QR::update, QR::insert_col, QR::insert_row, QR::delete_col, - QR::delete_row, QR::shift_col): Reflect changes in qrupdate - interfaces, implement batch updates. - - * fCmplxQR.h (FloatComplexQR::update, FloatComplexQR::insert_col, - FloatComplexQR::insert_row, FloatComplexQR::delete_col, - FloatComplexQR::delete_row, FloatComplexQR::shift_col): Update - interfaces. - - * fCmplxQR.cc: Update external decls for qrupdate routines. - (FloatComplexQR::update, FloatComplexQR::insert_col, - FloatComplexQR::insert_row, FloatComplexQR::delete_col, - FloatComplexQR::delete_row, FloatComplexQR::shift_col): Reflect - changes in qrupdate interfaces, - implement batch updates. - - * CmplxQR.h (ComplexQR::update, ComplexQR::insert_col, - ComplexQR::insert_row, ComplexQR::delete_col, ComplexQR::delete_row, - ComplexQR::shift_col): Update interfaces. - - * CmplxQR.cc: Update external decls for qrupdate routines. - (ComplexQR::update, ComplexQR::insert_col, - ComplexQR::insert_row, ComplexQR::delete_col, ComplexQR::delete_row, - ComplexQR::shift_col): Reflect changes in qrupdate interfaces, - implement batch updates. - - * floatCHOL.h (FloatCHOL::update, FloatCHOL::downdate, - FloatCHOL::insert_sym): Update interfaces. - * floatCHOL.cc: Update external decls for qrupdate routines. - (FloatCHOL::update, FloatCHOL::downdate, FloatCHOL::insert_sym, - FloatCHOL::delete_sym, FloatCHOL::shift_sym): Reflect changes in - qrupdate interfaces, - - * CHOL.h (CHOL::update, CHOL::downdate, CHOL::insert_sym): Update - interfaces. - * CHOL.cc: Update external decls for qrupdate routines. - (CHOL::update, CHOL::downdate, CHOL::insert_sym, CHOL::delete_sym, - CHOL::shift_sym): Reflect changes in qrupdate interfaces, - - * fCmplxCHOL.h (FloatComplexCHOL::update, FloatComplexCHOL::downdate, - FloatComplexCHOL::insert_sym): Update interfaces. - * fCmplxCHOL.cc: Update external decls for qrupdate routines. - (FloatComplexCHOL::update, FloatComplexCHOL::downdate, - FloatComplexCHOL::insert_sym, FloatComplexCHOL::delete_sym, - FloatComplexCHOL::shift_sym): Reflect changes in qrupdate interfaces, - - * CmplxCHOL.h (ComplexCHOL::update, ComplexCHOL::downdate, - ComplexCHOL::insert_sym): Update interfaces. - * CmplxCHOL.cc: Update external decls for qrupdate routines. - (ComplexCHOL::update, ComplexCHOL::downdate, ComplexCHOL::insert_sym, - ComplexCHOL::delete_sym, ComplexCHOL::shift_sym): Reflect changes in - qrupdate interfaces, - - 2009-01-17 Jaroslav Hajek - - * Array.h (Array): Document internal use of slice_data and - slice_len. - - 2009-01-15 John W. Eaton - - * Sparse.cc (Sparse::reshape): Include mismatched dimensions in - error message. - * Array.cc (Array::reshape): Likewise. - From Robert Millan . - - 2009-01-14 Jaroslav Hajek - - * Array.h (Array::rep, Array::dimensions): Make protected. - * Array.cc (Array::make_unique): Move implementation here. - (Array::fill): Ditto. - * DiagArray2.h (DiagArray2): Reimplement without abusing - Array internals. - (DiagArray2::operator Array2): New method. - * DiagArray2.cc (DiagArray2): Update methods. - * MDiagArray2.h (MDiagArray2::operator Array2): Simplify. - * PermMatrix.h (PermMatrix): Reimplement without abusing - Array internals. - * PermMatrix.cc (PermMatrix): Update methods. - - 2009-01-14 Jaroslav Hajek - - * Array.cc, Array.h (all Array constructors): Handle slice_data and - slice_len. - (Array::Array (const Array&, const dim_vector&, - octave_idx_type, octave_idx_type)): New constructor. - (Array::index): Use shallow copy when index reduces to a contiguous - range. - (Array::make_unique): Rewrite. - (Array::ArrayRep): Delete redundant methods. - (rec_index_helper::is_cont_range): New method. - (Array::maybe_economize): New method. - * DiagArray2.cc (DiagArray2::resize): Fix the mess. - - 2008-01-15 Rafael Laboissiere - - * oct-md5.cc: Include . - - 2009-01-13 Jaroslav Hajek - - * Array.h (Array::ArrayRep::qsort): Remove. - (Array::qsort): Remove. - * glob-match.cc (glob_match::glob): qsort -> sort. - * str-vec.cc (string_vector::compare): Remove. - * str-vec.h (string_vector::compare): Remove decl. - (string_vector::qsort): Rename to sort, call Array::sort. - - 2008-12-23 David Bateman - - * eigs-base.cc: New file with template wrapper for ARPACK. - * Makefile.in (TEMPLATE_SRC): Add it here. - - 2008-12-16 Jaroslav Hajek - - * Array.cc (rec_permute_helper): New class. - (Array::permute): Rewrite using the recursive algorithm. - - 2008-12-12 David Bateman - - * sparse-base-chol.cc (inverse): Fix inversion based on cholesky - factorization. - - 2008-12-12 Jaroslav Hajek - - * oct-locbuf.cc: New source. - * oct-locbuf.h (octave_chunk_buffer): New class. - (octave_local_buffer): Subclass from octave_chunk_buffer for selected - POD types. - - 2008-12-11 Jaroslav Hajek - - * mx-op-defs.h (DMDM_BIN_OP): Fix invalid buffer length. - - 2008-12-10 Jaroslav Hajek - - * dMatrix.h, dMatrix.cc (Matrix::expm): Remove. - * fMatrix.h, fMatrix.cc (FloatMatrix::expm): Remove. - * CMatrix.h, CMatrix.cc (ComplexMatrix::expm): Remove. - * fCMatrix.h, fCMatrix.cc (FloatComplexMatrix::expm): Remove. - - 2008-12-09 Jaroslav Hajek - - * base-aepbal.h: New source. - * dbleAEPBAL.h, dbleAEPBAL.cc: Rebase AEPBAL on base_aepbal. - * floatAEPBAL.h, floatAEPBAL.cc: Rebase FloatAEPBAL on base_aepbal. - * CmplxAEPBAL.h, CmplxAEPBAL.cc: Rebase ComplexAEPBAL on base_aepbal. - * fCmplxAEPBAL.h, fCmplxAEPBAL.cc: Rebase FloatComplexAEPBAL on base_aepbal. - - 2008-12-08 Jaroslav Hajek - - * idx-vector.cc (idx_vector::idx_vector_rep::idx_vector_rep (const - Sparse&)): New constructor. - * idx_vector.h: Declare it. - (idx_vector::idx_vector (const Sparse&)): New constructor. - * idx-vector.cc (idx_vector::idx_vector_rep::idx_vector_rep (const - Array&)): Fix extent calculation. - - 2008-12-09 David Bateman - - * Makefile.in (INCLUDES): Add oct-locbuf.h - - 2008-12-07 Jaroslav Hajek - - * mx-inlines.cc (mx_inline_fill_vs): New template function. - * mx-op-defs.h (everywhere): Replace int by octave_idx_type. - (MDM_MULTIPLY_OP): Use mx_inline_mul_vs and mx_inline_fill_vs. - (DMM_MULTIPLY_OP): Ditto. - * fDiagMatrix.cc (operator *): Remove redundant ifs. - * fCDiagMatrix.cc (operator *): Remove redundant ifs. - - 2008-12-06 Jaroslav Hajek - - * oct-locbuf.h (OCTAVE_LOCAL_BUFFER_INIT): New macro. - - 2008-10-29 Jaroslav Hajek - - * oct-locbuf.h: New header file. - * Array-d.cc, Array-f.cc, Array.cc, CMatrix.cc, CNDArray.cc, - CSparse.cc, CmplxCHOL.cc, CmplxGEPBAL.cc, MatrixType.cc, - Sparse-op-defs.h, Sparse.cc, SparseCmplxLU.cc, SparseCmplxQR.cc, - SparseQR.cc, SparsedbleLU.cc, dMatrix.cc, dNDArray.cc, dSparse.cc, - data-conv.cc, dbleCHOL.cc, dbleGEPBAL.cc, fCMatrix.cc, fCNDArray.cc, - fCmplxCHOL.cc, fCmplxGEPBAL.cc, fMatrix.cc, fNDArray.cc, file-ops.cc, - floatCHOL.cc, floatGEPBAL.cc, lo-sysdep.cc, oct-fftw.cc, oct-md5.cc, - oct-rand.cc, regex-match.cc, sparse-dmsolve.cc: Include oct-locbuf.h. - - 2008-12-04 Jaroslav Hajek - - * DiagArray2.h (DiagArray2): Inherit Array privately. - (DiagArray2::dim1, dim2, rows, columns, cols, length, - nelem, numel, byte_size, dims): New methods. - (DiagArray2::diag): New method decl. - * DiagArray2.cc (DiagArray2::diag): New method. - * MDiagArray2.h (MDiagArray2::diag): New method. - * dDiagMatrix.cc (DiagMatrix::diag): Remove. - * fDiagMatrix.cc (FloatDiagMatrix::diag): Remove. - * CDiagMatrix.cc (ComplexDiagMatrix::diag): Remove. - * fCDiagMatrix.cc (FloatComplexDiagMatrix::diag): Remove. - - * PermMatrix.h (PermMatrix): Inherit Array privately. - (PermMatrix::dim1, dim2, rows, columns, cols, length, - nelem, numel, byte_size, dims): New methods. - - - 2008-12-04 Jaroslav Hajek - - * dDiagMatrix.cc (DiagMatrix::determinant, DiagMatrix::rcond): New - method. - * dDiagMatrix.h: Declare them. - * fDiagMatrix.cc (FloatDiagMatrix::determinant, - FloatDiagMatrix::rcond): New methods. - * fDiagMatrix.h: Declare them. - * CDiagMatrix.cc (ComplexDiagMatrix::determinant, - ComplexDiagMatrix::rcond): New methods. - * CDiagMatrix.h: Declare them. - * fCDiagMatrix.cc (FloatComplexDiagMatrix::determinant, - FloatComplexDiagMatrix::rcond): New methods. - * fCDiagMatrix.h: Declare them. - - 2008-12-04 Jaroslav Hajek - - * idx-vector.cc (idx-vector::complement): Add missing delete. - - 2008-12-04 Jaroslav Hajek - - * dbleQRP.cc (QRP::QRP): Call DGEQP3 rather than DGEQPF. - * floatQRP.cc (FloatQRP::FloatQRP): Call SGEQP3 rather than SGEQPF. - * CmplxQRP.cc (ComplexQRP::ComplexQRP): Call ZGEQP3 rather than ZGEQPF. - * fCmplxQRP.cc (FloatComplexQRP::FloatComplexQRP): Call CGEQP3 rather than CGEQPF. - - 2008-12-03 Jaroslav Hajek - - * PermMatrix.h, PermMatrix.cc: New sources. - * MDiagArray2.cc (MDiagArray2::is_multiple_of_identity): New method. - * MDiagArray2.h (MDiagArray2::is_multiple_of_identity): Declare it. - * idx-vector.cc (idx_vector::is_permutation): New method. - * idx-vector.h (idx_vector::is_permutation): Declare it. - * base-lu.cc (base_lu::getp): New method. - (base_lu::P): Call getp. - (base_lu::Pvec): Call getp. - * base-lu.h (base_lu): Delcare P as PermMatrix. Remove unused template - params. - * dbleQRP.cc (dbleQRP::dbleQRP): Construct a permutation matrix. - (dbleQRP::Pvec): New method. - * dbleQRP.h: Declare new method. Declare P as PermMatrix. - * CmplxQRP.cc (ComplexQRP): Likewise. - * CmplxQRP.h (ComplexQRP): Likewise. - * floatQRP.cc (FloatQRP): Likewise. - * floatQRP.h (FloatQRP): Likewise. - * fCmplxQRP.cc (FloatComplexQRP): Likewise. - * fCmplxQRP.h (FloatComplexQRP): Likewise. - - 2008-12-01 Jaroslav Hajek - - * DiagArray2.h (DiagArray2::DiagArray2 (const DiagArray2&)): New template - constructor. - (DiagArray2::elem, xelem, operator ()): Move to header file to - enable inlining. - * DiagArray2.cc (DiagArray2::elem, xelem, operator ()): Remove - implementations. - * MDiagArray2.h (MDiagArray2::MDiagArray2 (const DiagArray2&)): New template - constructor. - (MDiagArray2::nnz): New method. - * MDiagArray2.cc (MDiagArray2::nnz): Implement it. - - * dDiagMatrix.h (DiagMatrix::DiagMatrix (const DiagArray2&)): New template - constructor. - (DiagMatrix::abs): New method decl. - (real (const ComplexDiagMatrix&), imag (const ComplexDiagMatrix&)): - New decls. - * dDiagMatrix.cc (DiagMatrix::abs): New method. - (operator *(const DiagMatrix&, const DiagMatrix&)): Optimize. - (real (const ComplexDiagMatrix&), imag (const ComplexDiagMatrix&)): - New functions. - - * fDiagMatrix.h (FloatDiagMatrix::FloatDiagMatrix (const DiagArray2&)): New template - constructor. - (FloatDiagMatrix::abs): New method decl. - (real (const FloatComplexDiagMatrix&), imag (const FloatComplexDiagMatrix&)): - New decls. - * fDiagMatrix.cc (FloatDiagMatrix::abs): New method. - (operator *(const FloatDiagMatrix&, const FloatDiagMatrix&)): Optimize. - (real (const FloatComplexDiagMatrix&), imag (const FloatComplexDiagMatrix&)): - New functions. - - * CDiagMatrix.h (ComplexDiagMatrix::ComplexDiagMatrix (const DiagArray2&)): New template - constructor. - (ComplexDiagMatrix::abs): New method decl. - (conj (const ComplexDiagMatrix&)): Add missing decl. - (ComplexDiagMatrix::all_elements_are_real): New method decl. - - * CDiagMatrix.cc (CDiagMatrix::abs): New method. - (operator *(const DiagMatrix&, const ComplexDiagMatrix&)): Optimize. - (operator *(const ComplexDiagMatrix&, const DiagMatrix&)): Optimize. - (operator *(const ComplexDiagMatrix&, const ComplexDiagMatrix&)): Optimize. - (ComplexDiagMatrix::all_elements_are_real): New method. - - * fCDiagMatrix.h (FloatComplexDiagMatrix::FloatComplexDiagMatrix (const DiagArray2&)): New template - constructor. - (FloatComplexDiagMatrix::abs): New method decl. - (conj (const FloatComplexDiagMatrix&)): Add missing decl. - (FloatComplexDiagMatrix::all_elements_are_real): New method decl. - - * fCDiagMatrix.cc (CDiagMatrix::abs): New method. - (operator *(const FloatDiagMatrix&, const FloatComplexDiagMatrix&)): Optimize. - (operator *(const FloatComplexDiagMatrix&, const FloatDiagMatrix&)): Optimize. - (operator *(const ComplexDiagMatrix&, const ComplexDiagMatrix&)): Optimize. - (FloatComplexDiagMatrix::all_elements_are_real): New method. - - * dSparse.cc (SparseMatrix::SparseMatrix (const DiagMatrix&)): New - constructor. - * dSparse.h (SparseMatrix::SparseMatrix (const DiagMatrix&)): Declare - it. - - * CSparse.cc (SparseComplexMatrix::SparseComplexMatrix (const ComplexDiagMatrix&)): - New constructor. - * CSparse.h (SparseComplexMatrix::SparseComplexMatrix (const ComplexDiagMatrix&)): - Declare it. - * mx-op-defs.h (DMM_MULTIPLY_OP, MDM_MULTIPLY_OP): Optimize. - - 2008-11-21 Jarkko Kaleva - - * EIG.h (EIG::EIG (const Matrix& a, const Matrix& b, - bool calc_eigenvectors = true)): New constructor. - (EIG::EIG (const Matrix& a, const Matrix& b, octave_idx_type& info, - bool calc_eigenvectors = true)): New constructor. - (EIG::EIG (const ComplexMatrix& a, const ComplexMatrix& b, - bool calc_eigenvectors = true)): New constructor. - (EIG::EIG (const ComplexMatrix& a, const ComplexMatrix& b, - octave_idx_type& info, bool calc_eigenvectors = true)): New - constructor. - * EIG.cc (EIG::init (const Matrix& a, const Matrix& b, - bool calc_eigenvectors)): New function. - (EIG::init (const ComplexMatrix& a, const ComplexMatrix& b, - bool calc_eigenvectors)): New function. - (EIG::symmetric_init (const Matrix& a, const Matrix& b, - bool calc_eigenvectors)): New function. - (EIG::hermitian_init (const ComplexMatrix& a, const ComplexMatrix& b, - bool calc_eigenvectors)): New function. - * fEIG.h (fEIG::fEIG (const FloatMatrix& a, const FloatMatrix& b, - bool calc_eigenvectors = true)): New constructor. - (fEIG::fEIG (const FloatMatrix& a, const FloatMatrix& b, - octave_idx_type& info, bool calc_eigenvectors = true)): New - constructor. - (fEIG::fEIG (const FloatComplexMatrix& a, const FloatComplexMatrix& b, - bool calc_eigenvectors = true)): New constructor. - (fEIG::fEIG (const FloatComplexMatrix& a, const FloatComplexMatrix& b, - octave_idx_type& info, bool calc_eigenvectors = true)): New - constructor. - (fEIG::init (const FloatMatrix& a, const FloatMatrix& b, - bool calc_eigenvectors)): New function. - (fEIG::init (const FloatComplexMatrix& a, const FloatComplexMatrix& b, - bool calc_eigenvectors)): New function. - (fEIG::symmetric_init (const FloatMatrix& a, const FloatMatrix& b, - bool calc_eigenvectors)): New function. - (fEIG::hermitian_init (const FloatComplexMatrix& a, - const FloatComplexMatrix& b, bool calc_eigenvectors)): New function. - - 2008-11-19 Jaroslav Hajek - - * dMatrix.cc (Matrix::determinant), - fMatrix.cc (FloatMatrix::determinant), - CMatrix.cc (ComplexMatrix::determinant), - fCMatrix.cc (FloatComplexMatrix::determinant): - Use atmp(i,i) instead of elem(i,i). - - 2008-11-19 Jaroslav Hajek - - * DET.h (base_det::square): New member function. - * dMatrix.cc (Matrix::determinant), - fMatrix.cc (FloatMatrix::determinant), - CMatrix.cc (ComplexMatrix::determinant), - fCMatrix.cc (FloatComplexMatrix::determinant): - Allow taking MatrixType argument. - * dMatrix.h, fMatrix.h, CMatrix.h, fCMatrix.h: Update decls. - - 2008-11-19 Jaroslav Hajek - - * DET.h: New source. - * CmplxDET.cc, CmplxDET.h, dbleDET.cc, dbleDET.h, fCmplxDET.cc, - fCmplxDET.h, floatDET.cc, floatDET.h: Remove. - * Makefile.in: Reflect changes. - * mx-defs.h: Remove DET decls. - * mx-ext.h, dMatrix.h, fMatrix.h, CMatrix.h, fCMatrix.h, - dSparse.h, CSparse.h: Include only DET.h. - * dMatrix.cc (Matrix::determinant), - fMatrix.cc (FloatMatrix::determinant), - CMatrix.cc (ComplexMatrix::determinant), - fCMatrix.cc (FloatComplexMatrix::determinant), - dSparse.cc (SparseMatrix::determinant), - CSparse.cc (SparseComplexMatrix::determinant): Use new class. - - 2008-11-18 David Bateman - - * file-ops.cc (std::string file_ops::tilde_expand (const - std::string&)): Check if the string contains a tilde and fast - return if not. - - 2008-11-17 John W. Eaton - - * dir-ops.cc (dir_entry::read): Use std::list to - cache names before converting to string_vector. - - 2008-11-14 David Bateman - - * Array2.h (Array2 Array2::index): Correct use of - resize_fill_value. - - 2008-11-12 Michael Goffioul - - * MArray-C.cc, MArray-d.cc, MArray-f.cc, MArray-fC.cc: Declare - MArray::norm specialization before implicit MArray implicit - instantiation. - * idx-vector.h (class idx_vector::idx_base_rep, class - idx_vector::idx_range_rep, class idx_vector::idx_colon_rep, class - idx_vector::idx_scalar_rep, class idx_vector::idx_vector_rep): Add - OCTAVE_API tag. - * idx-vector.cc (idx_vector::idx_scalar_rep::idx_scalar_rep(T), - idx_vector::idx_vector_rep::idx_vector_rep(const Array&)): Ditto. - * oct-inttypes.cc (octave_int::type_name): Ditto. - * oct-inttypes.cc (powf(const octave_int&,const float&)): Cast 'b' - to double. - * oct-inttypes.h: Undefine min/max. - * oct-norm.h (xnorm, xfrobnorm, xcolnorms, xrownorms): Add OCTAVE_API - tag. - * oct-norm.cc (xnorm, xfrobnorm, xcolnorms, xrownorms): Ditto. - - 2008-11-12 Jaroslav Hajek - - * DiagArray2.h (DiagArray2::maybe_delete_elements): Remove - declaration. - - 2008-11-09 Jaroslav Hajek - - * oct-norm.cc: Don't include Array.cc. - (column_norms (const MArray2&, ...)): Use std::vector instead of Array for - accumulator containers. Use empty constructor instead of - Array::resize. - (row_norms (const MArray2&, ...)): Ditto. - (column_norms (const MSparse2&, ...)): Ditto. - (row_norms (const MSparse2&, ...)): Ditto. - - 2008-10-31 Jaroslav Hajek - - * oct-norm.h: New header file. - * oct-norm.cc: New source. - * CSparse.cc (SparseComplexMatrix::row, SparseComplexMatrix::column): - New member functions. - * CSparse.h (SparseComplexMatrix): Declare them. - * dSparse.cc (SparseMatrix::row, SparseMatrix::column): - New member functions. - * dSparse.h (SparseMatrix): Declare them. - * MArray-C.cc (MArray::norm), - MArray-d.cc (MArray::norm), - MArray-fC.cc (MArray::norm), - MArray-f.cc (MArray::norm): Wrap a call to xnorm. - - * MArray-defs.h (MARRAY_NORM_BODY): Remove. - - 2008-11-02 Jaroslav Hajek - - * idx-vector.cc (idx_vector::is_complement): Set resulting extent - correctly. - * Array.cc (Array::delete_elements (int, const idx_vector&)): - Fix check for invalid dim. - - 2008-10-31 Jaroslav Hajek - - * idx-vector.h (idx_vector::idx_range_rep::extent): Don't change - extent when len is zero. - * idx-vector.h (idx_vector::idx_range_rep::idx_range_rep (void)): - Create empty range by default. - - 2008-10-30 Jaroslav Hajek - - * oct-inttypes.h (octave_int_abs): New function. - (octave_int_arith_base::div): Use octave_int_abs instead of - std::abs. - * oct-inttypes.cc (octave_int_arith_base): Ditto. - - 2008-10-28 Jaroslav Hajek - - * Array-C.cc Array-d.cc Array-f.cc Array-fC.cc Array-i.cc Array-s.cc: - Don't use semicolon after INSTANTIATE_ARRAY_ASSIGN. - * Array-util.h (zero_dims_inquire): New declarations. - (is_in, how_many_lgt, short_freeze): Remove declarations. - * Array-util.cc (zero_dims_inquire): New functions. - (is_in, how_many_lgt, short_freeze): Remove functions. - * Array.cc (Array::index, Array::resize_fill, Array::resize, - Array::assign, Array::delete_elements): - Rewrite. - * Array.h (Array::index, Array::resize_fill, Array::resize, - Array::assign, Array::delete_elements): - Rewrite interfaces. - * Array2.h (Array2::resize): Call Array::resize_fill. - * Array3.h (Array3::resize): Call Array::resize_fill. - * ArrayN.h (ArrayN::resize): Remove declarations. - (ArrayN::index): Fix call to resize_fill_value. - * Sparse.cc (assign, assign1): Use zero-based indices. - * chMatrix.h: Include mx-op-defs.h - * dim-vector.h (dim_vector::any_neg, dim_vector::chop_all_singletons, - dim_vector::redim): New member functions. - * idx-vector.cc: Mostly rewrite. - * idx-vector.h: Mostly rewrite. - - 2008-10-29 Michael Goffioul - - * lo-specfun.cc (cbesj, cbesy, cbesi, cbesk, cbesh1, cbesh2): Do not - use std::complex::real() and std::complex::imag() as l-value, this is - not supported under MSVC. - - 2008-10-28 John W. Eaton - - * lo-specfun.cc: Fix prototypes for the Fortran subroutines cbesh, - cbesi, cbesj, cbesk, and cbesy. - (cbesh, cbesi, cbesj, cbesk, cbesy): Fix calls to Fortran - subroutines. - - 2008-10-28 Brian Gough - - * lo-specfun.cc (zbesi): Fix scaling factor for negative alpha. - (cbesi): Likewise. - - 2008-10-23 John Swensen - - * oct-shlib.cc (octave_dyld_shlib::open): Call NSLinkEditError to - get better diagnostic if NSLinkModule fails. - - 2008-10-23 John W. Eaton - - * oct-shlib.cc (octave_dlopen_shlib::open): Use RTLD_NOW instead - of RTLD_LAZY. - - 2008-10-12 Jaroslav Hajek - - * CSparse.cc (ComplexMatrix::expm): Improve inverse preconditioning - according to Marco Caliari. - * dSparse.cc (Matrix::expm): Likewise. - * fCSparse.cc (FloatComplexMatrix::expm): Likewise. - * fSparse.cc (FloatMatrix::expm): Likewise. - - 2008-10-10 Jaroslav Hajek - - * sparse-util.h (SparseCholPrint): Change char * argument to const - char *. - * sparse-util.cc (SparseCholPrint): Likewise. - - 2008-10-09 Jaroslav Hajek - - * oct-sort.cc (octave_sort::merge_getmem, - octave_sort::merge_freemem): Replace malloc -> new [], free -> - delete []. - (octave_sort::merge_lo, octave_sort::merge_hi): Replace - std::memcpy and std::memmove with std::copy. - - 2008-10-08 John W. Eaton - - * Sparse-op-defs.h (SPARSE_SMSM_BOOL_OPS): Duplicate code for scalar - sparse arguments rather than rely on extern function. - - 2008-10-08 Jaroslav Hajek - - * oct-inttypes.h (octave_base_int::compute_threshold): Return - exclusive bounds rather than inclusive, be resistant to compiler - optimizations. - (octave_base_int::convert_real): Use exclusive bounds. - - 2008-10-07 Jaroslav Hajek - - * oct-inttypes.h (OCTAVE_INT_DOUBLE_BIN_OP): Change octave_int64 to - octave_uint64 where appropriate. - - 2008-10-06 David Bateman - - * Sparse-op-defs.h (SPARSE_SMSM_CMP_OPS): Duplicate code for scalar - sparse arguments rather than rely on extern function. - - 2008-10-06 John W. Eaton - - * Spasre-op-defs.h: Undo previous change. - - 2008-10-01 Jaroslav Hajek - - * oct-inttypes.h (octave_int::one, octave_int::zero): Declare - constants. - * oct-inttypes.cc: Define them. - * oct-inttypes.h: Define mixed operations via long double if possible. - * oct-inttypes.cc: Define alternative implementations for 64-bit - multiplication and mixed operations. - * mx-ops: Instantiate all 64-bit integer operations. - - 2008-10-06 Jaroslav Hajek - - * oct-lookup.h: Mark functions inline. Add missing std:: qualifiers. - - 2008-10-06 John W. Eaton - - * Sparse.h (Sparse::elt_type): New typedef. - * Sparse-op-defs.h (SPARSE_SMSM_BOOL_OP, SPARSE_MSM_CMP_OP): - Use it to call sparse-matrix/scalar operator instead of attempting - to instantiate mixed-type sparse-matrix/scalar operators. - - 2008-10-03 Jaroslav Hajek - - * Array.h (Array::maybe_delete_elements): Remove rfv argument from - declaration. - * Array.cc (Array::maybe_delete_elements): Remove all usages of - rfv. - - 2008-10-03 Jaroslav Hajek - - * Array.cc (assignN): Do not call maybe_delete_elements when - for empty matrix. - - 2008-09-30 Jaroslav Hajek - - * oct-inttypes.h: Mostly rewrite. - * oct-inttypes.cc: Modstly rewrite. - - 2008-09-29 Jaroslav Hajek - - * Array.cc (Array::maybe_delete_elements_2(idx_vector&)): Return on - empty index vector. - - 2008-09-26 Jaroslav Hajek - - * Array.cc (assign1, assign2, assignN): Do not call - maybe_delete_elements. - (maybe_delete_elements (Array&)): Call the 1D and 2D - special handlers if possible. - * Sparse.cc (assign1, assign2, assignN): Do not call - maybe_delete_elements. - - 2008-09-22 Brian Gough - - * oct-rand.cc (initialize_mersenne_twister): Use separate - initializations for each generator to avoid correlation. - - 2008-09-12 Jaroslav Hajek - - * oct-inttypes.h (pow (const octave_int&, const octave_int&)): - - 2008-09-19 John W. Eaton - - * Array.cc (assign1, assign2, assignN): - Clear lhs index before throwing error. - (Array::value): Clear index before throwing error. - - 2008-09-18 Jaroslav Hajek - - * Array.cc (maybe_delete_elements_2 (idx_vector&)): Fix tests to get - better Matlab compatibility. - (maybe_delete_elements (idx_vector&, idx_vector&)): Fix tests to get - better Matlab compatibility, simplify, gripe on invalid 2-D deletion. - - 2008-09-18 Jaroslav Hajek - - * Array.h (Array::coerce): Use octave_idx_type instead of int. - - 2008-09-12 Jaroslav Hajek - - * oct-inttypes.h (pow (const octave_int&, const octave_int&)): - Handle negative exponent correctly. - - 2008-08-19 David Bateman - - * oct-inttypes.h (template inline T2 - octave_int_fit_to_range (const T1&, const T2&, const T2&), - template inline T octave_int_fit_to_range (const - double&, const T&, const T&), template <> inline T2 - octave_int_fit_to_range (const T1&, const T2&, const T2&), - OCTAVE_S_US_FTR): Check and flag integer trunctation. - (OCTAVE_INT_FIT_TO_RANGE, OCTAVE_INT_FIT_TO_RANGE2): Adapt for the - above change. - (OCTAVE_INT_CONV_FIT_TO_RANGE): New macro for conversion to - integer types. - (octave_int::conv_error_type): New enum to flag conversion and - math warnings. - (octave_int::octave_int (U i), octave_int::octave_int - (double i), octave_int<>::octave_int (const octave_int& i)): - Flag conversion and math errors other than integer truncation. - (octave_int octave_int::operator - (void)): Flag truncation - error. - (static bool get_trunc_flag (void), static bool clear_trunc_flag - (void, static bool trunc_flag)): Delete. - (static int get_conv_flag (void), static bool get_trunc_flag (void), - static bool get_nan_flag (void), static bool get_non_int_flag (void), - static bool get_math_trunc_flag (void), static void - clear_conv_flag (void)): New functions to query and reset - conversion and mathw arning state. - (static int cov_flag): New parameter holding current conversion - and math warning state. Set it to zero. - (template octave_int powf (float, const - octave_int&), template octave_int powf (const - octave_int&, float)): New functions. - - 2008-08-12 Jaroslav Hajek - - * lo-ieee.cc (octave_ieee_init): Try to ensure that octave_NaN is - classified as positive by lo_ieee_signbit. - - 2008-08-11 Jaroslav Hajek - - * Array.cc (no_op_fcn): New static function. - (Array::hermitian): If fcn is null, set to no_op_fcn. - - 2008-08-07 John W. Eaton - - * sprse-base-chol.h, oct-sparse.h: Don't include config.h. - - * cmd-edit.cc, file-ops.h, kpse.cc, oct-env.cc, pathsearch.cc: - Replace all uses of NPOS with std::string::npos. - - * fCmplxLU.h, CmplxLU.h: Fix typo in definition of - multiple-inclusion guard macro. - - 2008-08-05 John W. Eaton - - * file-ops.h, file-ops.cc (file_ops::static_members): - New singleton class for static members of file_ops. - - * pathsearch.h, pathsearch.cc (class dir_path::static_members): - New singleton class for static members of dir_path. - - * pathsearch.cc (dir_path::init): Move octave_kpathsea_initialized - here from file scope. - - 2008-08-04 John W. Eaton - - * oct-env.cc (octave_env::do_set_program_name, - octave_env::do_base_pathname): Fix usage of - file_ops::dir_sep_chars. - (octave_env::do_make_absolute): Fix usage of - file_ops::dir_sep_chars and file_ops::dir_sep_str. - (octave_env::do_get_home_directory): Fix usage of - file_ops::dir_sep_str. - - * file-ops.h (file_ops::do_is_dir_sep): New function. - (file_ops_::is_dir_sep): Call it. - * file-ops.cc (class file_ops): Make it a proper singleton object. - (file_ops::file_ops): New constructor. - (file_ops::instance_ok): New function. - (file_ops::xdir_sep_char): Now private. No longer static. Rename - from dir_sep_char. - (file_ops::xdir_sep_str): Likewise, from dir_sep_str. - (file_ops::xdir_sep_chars): Likewise, from dir_sep_chars. - (file_ops::dir_sep_char, file_ops::dir_sep_str, - file_ops::dir_sep_chars): New functions. - (file_ops::recursive_rmdir): Fix usage of file_ops::dir_sep_str. - (file_ops::concat): Fix usage of file_ops::dir_sep_char. - - * oct-env.cc (octave_env::instance_ok): Fix typo in error message. - - 2008-07-30 John W. Eaton - - * oct-inttypes.h: Style fixes. - - 2008-07-30 Jaroslav Hajek - - * oct-inttypes.h (octave_int::trunc_flag): New member static field. - (octave_int::get_trunc_flag, octave_int::clear_trunc_flag): New - member functions. - (octave_int::octave_int (const octave_int&)): set trunc_flag - on truncation. - (SPECIALIZE_WIDENING_CONVERSION): New macro. - (DECLARE_OCTAVE_INT_TYPENAME): New macro. - - 2008-07-29 David Bateman - - * lo-ieee.h (LO_IEEE_NA_HW, LO_IEEE_NA_LW, LO_IEEE_NA_FLOAT): - Change definition so cast from single to double and visa versa - maintains NA value. - (LO_IEEE_NA_HW_OLD, LO_IEEE_NA_LW_OLD): Keep old values. - (extern OCTAVE_API int __lo_ieee_is_old_NA (double)): Function to - detect old NA value. - (extern OCTAVE_API double __lo_ieee_replace_old_NA (double)): - Function to replace old NA value with new new. - * lo-cieee.c (int __lo_ieee_is_old_NA (double)): Function to - detect old NA value. - (double __lo_ieee_replace_old_NA (double)): Function to replace - old NA value with new new. - * data-conv.cc (void read_doubles(std::istream&, double *, - save_type, int, bool, octave_mach_info::float_format)): Test if - loaded NA values is the old representation and replace it. - - 2008-07-28 Jaroslav Hajek - - * lo-math.h: Ensure log2 is undefined from cmath in C++ mode. - - 2008-07-21 Michael Goffioul - - * oct-mutex.h (octave_base_mutex::octave_base_mutex): Initialize - count to 1, not -1. - - * oct-mutex.cc (octave_base_mutex::lock, octave_base_mutex::unlock): - Replace error calls with (*current_liboctave_error_handler). - - 2008-07-21 John W. Eaton - - * regex-match.cc (regex_match::init): Initialize err to 0. - - 2008-07-19 John W. Eaton - - * oct-mutex.h (class octave_base_mutex): New class. - (class octave_mutex): Don't use union for rep and count. - (octave_mutex::rep): Declare as octave_base_mutex. - (octave_mutex::count): Delete. - (octave_mutex::lock, octave_mutex::unlock): No longer virtual. - (octave_mutex::~octave_mutex): No need to check that rep is - valid or set rep to zero after deleting. - (octave_mutex::operator =): No need to check that rep is valid. - * oct-mutex.cc (octave_w32_mutex, octave_pthread_mutex): Derive - from octave_base_mutex, not octave_mutex. - - 2008-07-18 John W. Eaton - - * oct-mutex.h (octave_mutex::octave_mutex (int)): Initialize rep - to 0, not count. - * oct-mutex.cc (octave_mutex::octave_mutex (void)): Set rep->count - to 1 instead of incrementing it. - - 2008-07-17 Michael Goffioul - - * dNDArray.cc: Do not include ctor NDArray(Array, - bool, bool) into conditional HAVE_FFTW3 preprocessor statement. - - 2008-07-16 John W. Eaton - - * oct-mutex.h (octave_autolock::octave_autolock (void), - octave_autolock (const octave_autolock&), - octave_autolock::operator = (const octave_autolock&)): - Delete definitions. - - 2008-07-16 Michael Goffioul - - * cmd-edit.cc (event_hook_lock): New static mutex variable. - (command_editor::event_handler): Lock and copy event_hook_set before - executing handlers. - (command_editor::add_event_hook, command_editor::remove_event_hook): - Autolock event_hook_lock. - - 2008-07-15 Michael Goffioul - - * oct-mutex.h, oct-mutex.cc: New files. - * Makefile.in: Add them to appropriate lists. - - 2008-07-15 John W. Eaton - - * oct-sort.cc, oct-sort.h (octave_sort::count_run): Declare - descending arg as bool&. - (octave_sort::sort): Pass bool to count_run for descending arg. - - 2008-07-11 John W. Eaton - - * dDiagMatrix.cc (DiagMatrix::diag): Return empty ColumnVector if - number of rows or columns is 0. - * fDiagMatrix.cc (FloatDiagMatrix::diag): Likewise. - - * Array-util.cc (is_vector): Avoid GCC warning. - * Array-f.cc (Array::sort): Likewise. - * Array-d.cc (Array::sort): Likewise. - * dbleQR.cc (QR::QR (const Matrix&, const Matrix&)): Likewise. - * CmplxQR.cc (ComplexQR::ComplexQR (const ComplexMatrix&, const - ComplexMatrix&)): Likewise. - * floatQR.cc (FloatQR::FloatQR (const FloatMatrix&, const - FloatMatrix&)): Likewise. - * fCmplxQR.cc (FloatComplexQR::FloatComplexQR (const - FloatComplexMatrix&, const FloatComplexMatrix&)): Likewise. - * Quad.cc (IndefQuad::do_integrate (octave_idx_type&, - octave_idx_type&, float&), FloatIndefQuad::do_integrate, - DefQuad::do_integrate octave_idx_type&, octave_idx_type&, float&, - FloatIndefQuad::do_integrate): Likewise. - - * mx-op-defs.h (MS_BOOL_OP, SM_BOOL_OP, MM_BOOL_OP, NDS_BOOL_OP, - SND_BOOL_OP, NDND_BOOL_OP): Detect NaN values. - * Array-util.cc (gripe_nan_to_logical_conversion): New function. - * Array-util.h: Provide decl. - * oct-inttypes.h (xisnan (octave_int)): New function. - * lo-mappers.h (xisnan (bool), xisnan (char)): New inline functions. - - * CMatrix.cc, CNDArray.cc, CSparse.cc, dMatrix.cc, dNDArray.cc, - dSparse.cc, fCMatrix.cc, fCNDArray.cc, fMatrix.cc, fNDArray.cc: - New member function, any_element_is_nan. - * CMatrix.h, CNDArray.h, CSparse.h, dMatrix.h, dNDArray.h, - dSparse.h, fCMatrix.h, fCNDArray.h, fMatrix.h, fNDArray.h: - Provide decl. - - 2008-07-10 David Bateman - - * dNDArray.cc (NDArray::NDArray (const Array&, - bool, bool)): New constructor. - * dNDArray.h: Provide decl. - - 2008-07-10 Michael Goffioul - - * lo-specfun.h: Fix typo in erff/erfcf declaration. - * lo-specfun.cc: Ditto. Add atanhf implementation. - - 2008-06-20 Jaroslav Hajek - - * MatrixType.h: Add missing include statement. - - 2008-06-13 Michael Goffioul - - * lo-mappers.cc (arg): Remove ambiguity about atan2(float,float) usage. - * fCmplxDET.cc (FloatComplexDET::initialize10): Likewise, for pow. - - 2008-06-11 John W. Eaton - - * so-array.h, so-array.cc, Array-so.cc: Delete. - * Makefile.in: Remove them from the lists. - - 2008-06-05 John W. Eaton - - * oct-shlib.cc (octave_base_shlib::remove): Only dereference - counter if iterator is valid. - - 2008-06-02 David Bateman - - * fCmplxDET.cc (FloatComplexDET::value_will_overflow, - FloatComplexDET:value_will_underflow): Replace DBL_MIN and DBL_MAX - with FLT_MIN and FLT_MAX. - * floatDET.cc ((FloatDET::value_will_overflow, - FloatDET:value_will_underflow): Ditto. - * lo-cieee.c (__lo_ieee_float_is_NA): Check only a sngle word for - float NA value. - (lo_ieee_float_inf_value): Return correct float Infinity value. - (lo_ieee_float_NA_value): Return correct float NA value. - (lo_ieee_float_NaN_value): Return correct float NaN value. - * lo-ieee.cc (octave_ieee_init): Set float NA value correctly. - * lo-ieee.h (lo_ieee_float): value of union is of type float. - (LO_IEEE_NA_FLOAT): Make NA value a valid float NaN. - (LO_IEEE_NA_FLOAT_LW): Delete. - - 2008-06-02 David Bateman - - * fCmplxLU.cc (class FloatComplexLU): Correct error in instantiation. - * floatLU.cc (class FloatLU): ditto. - * floatLU.h (class FloatLU): ditto. - - * floatAEPBAL.cc (octave_idx_type FloatAEPBALANCE::init (const - FloatMatrix&, const std::string&)): Use FloatMatrix to initialize - balancing_mat. - - * Makefile.in (MATRIX_INC): Add fCmplxAEPBAL.h and floatAEPBAL.h. - (MATRIX_SRC): Add fCmplxAEPBAL.cc and floatAEPBAL.cc. - - 2008-05-21 David Bateman - - * Quad-opts.in: Handle single precision tolerances. - * Quad.cc (float_user_fcn): New static variable. - (quad_float_fcn_ptr): New typedef. - (qagp, quagi): New QUADPACK decls. - (float_user_function): New function. - (DefQuad::do_integrate, IndefQuad::do_integrate): Float versions. - (FloatDefQuad::do_integrate, FloatIndefQuad::do_integrate): - New functions. - * Quad.h (class Quad): Handle float type. - (class FloatDefQuad, class FloatIndefQuad): New classes. - - 2008-05-21 Jaroslav Hajek - - * fCMatrix.h (xgemm): Provide decl. - (xcdotc, csyrk, cherk): New F77 decls. - * fMatrix.cc (xgemm): New function. - (operator * (const FloatMatrix&, const FloatMatrix&)): Simplify. - (get_blas_trans_arg): New function. - * fCMatrix.h (xgemm): Provide decl. - (ssyrk): New F77 decl. - * fCMatrix.cc (xgemm): New function. - (operator * (const FloatComplexMatrix&, const - FloatComplexMatrix&)): Simplify. - (get_blas_trans_arg): New function. - - * dMatrix.cc, CMatrix.cc, Sparse-op-defs.h: Add missing copyright. - - * Sparse-op-defs.h (SPARSE_FULL_MUL): Simplify scalar*matrix case. - Correct indenting. - (SPARSE_FULL_TRANS_MUL): New macro. - (FULL_SPARSE_MUL): Simplify scalar*matrix case. Correct indenting. - Move OCTAVE_QUIT one level up. - (FULL_SPARSE_MUL_TRANS): New macro. - * dSparse.h (mul_trans, trans_mul): Provide decl. - * dSparse.cc (mul_trans, trans_mul): New functions. - * CSparse.h (mul_trans, trans_mul, mul_herm, herm_mul): Provide decl. - * CSparse.cc (mul_trans, trans_mul, mul_herm, herm_mul): New functions. - - * dMatrix.h (xgemm): Provide decl. - * dMatrix.cc (xgemm): New function. - (operator * (const Matrix&, const Matrix&)): Simplify. - (get_blas_trans_arg): New function. - * CMatrix.h (xgemm): Provide decl. - * CMatrix.cc (xgemm): New function. - (operator * (const ComplexMatrix&, const ComplexMatrix&)): Simplify. - (get_blas_trans_arg): New function. - - * MatrixType.cc (matrix_real_probe, matrix_complex_probe): - New template functions. - (MatrixType::MatrixType (const Matrix&), - MatrixType::MatrixType (const FloatMatrix&)): - just call matrix_real_probe. - (MatrixType::MatrixType (const ComplexMatrix&), - MatrixType::MatrixType (const FloatComplexMatrix&)): - just call matrix_complex_probe. - - * MatrixType.cc (MatrixType::MatrixType (matrix_type, bool)): - add missing test for Unknown. - - 2008-05-21 David Bateman - - * fCMatrix.cc (float rcond): Replace with float rcon everywhere - to avoid shadowed variable warning - (float ComplexMatrix::rcond (void) const): New method for - reciprocal condition number calculation. - (float ComplexMatrix::rcond (MatrixType &mattype) const): ditto. - * fCMatrix.h (float rcond): Replace with float rcon everywhere - to avoid shadowed variable warning - (float ComplexMatrix::rcond (void) const): New method for - reciprocal condition number calculation. - (float ComplexMatrix::rcond (MatrixType &mattype) const): ditto. - * fMatrix.cc (float rcond): Replace with float rcon everywhere - to avoid shadowed variable warning - (float Matrix::rcond (void) const): New method for - reciprocal condition number calculation. - (float Matrix::rcond (MatrixType &mattype) const): ditto. - * fMatrix.h (float rcond): Replace with float rcon everywhere - to avoid shadowed variable warning - (float Matrix::rcond (void) const): New method for - reciprocal condition number calculation. - (float Matrix::rcond (MatrixType &mattype) const): ditto. - - * Array.cc: Fix transpose tests. - - * CmplxGEBAL.cc (ComplexGEPBALANCE), dbleGEPBAL.cc (GEPBALANCE), - fCmplxGEPBAL.cc (FloatComplexGEPBALANCE), floatGEPBAL.cc - (FloatGEPBALANCE): New class for generalized eigenvalue balancing. - * CmplxGEBAL.h (ComplexGEPBALANCE), dbleGEPBAL.h (GEPBALANCE), - fCmplxGEPBAL.h (FloatComplexGEPBALANCE), floatGEPBAL.h - (FloatGEPBALANCE): Declare them. - * Makefile.in (MATRIX_INC): Include them here. - (MATRIX_SRC): and here. - - * floatAEPBAL.cc (FloatAEPBALANCE), fCmplxAEPBAL.cc - (FloatComplexAEPBALANCE): New classes for single precision - Algebraic eignvalue balancing. - * floatAEPBAL.h (FloatAEPBALANCE), fCmplxAEPBAL.h - (FloatComplexAEPBALANCE): Declare them. - * Makefile.in (MATRIX_INC): Include them here. - (MATRIX_SRC): and here. - - * floatHESS.cc (FloatHESS), fCmplxHESS.cc (FloatComplexHESS): New - classes for single precision Hessenberg decomposition. - * floatHESS.h (FloatHESS), fCmplxHESS.h (FloatComplexHESS): - Declare them. - * Makefile.in (MATRIX_INC): Include them here. - (MATRIX_SRC): and here. - - * floatQR.cc (FloatQR), fCmplxQR.cc (FloatComplexQR): New - classes for single precision QR decomposition. - * floatQR.h (FloatQR), fCmplxQR.h (FloatComplexQR): - Declare them. - * Makefile.in (MATRIX_INC): Include them here. - (MATRIX_SRC): and here. - - * floatQRP.cc (FloatQRP), fCmplxQRP.cc (FloatComplexQRP): New - classes for single precision permuted QR decomposition. - * floatQRP.h (FloatQRP), fCmplxQRP.h (FloatComplexQRP): - Declare them. - * Makefile.in (MATRIX_INC): Include them here. - (MATRIX_SRC): and here. - - * mx-defs (FloatAEPBALANCE, FloatComplexAEPBALANCE, - ComplexGEPBALANCE, FloatGEPBALANCE,FloatComplexGEPBALANCE, - FloatHESS, FloatComplexHESS, FloatQR, FloatComplexQR, QRP, - ComplexQRP, FloatQRP, FloatComplexQRP): Declare classes. - - 2008-05-20 David Bateman - - * Array.cc (Array Array::transpose () const): Modify for tiled - transpose to limit the number of cache misses. - (Array Array::hermitian (T (*)(const&)) const): New method - for matrix conjugate transpose. - * Array.h (Array hermitian (T (*)(const&)) const): Declare it. - - * DiagArray2.cc (DiagArray2 DiagArray2::transpose () const): - Specialization for diagonal arrays. - (DiagArray2 DiagArray2::transpose (T (*) (const&)) const): - Ditto. - - * MArray.h (MArray hermitian transpose () const): Ditto. - * MArray2.h (MArray2 hermitian hermitian hermitian transpose () const): Ditto. - (MDiagArray hermitian - - * CMatrix.cc (double rcond): Replace with double rcon everywhere - to avoid shadowed variable warning - (double ComplexMatrix::rcond (void) const): New method for - reciprocal condition number calculation. - (double ComplexMatrix::rcond (MatrixType &mattype) const): ditto. - * CMatrix.h (double rcond): Replace with double rcon everywhere - to avoid shadowed variable warning - (double ComplexMatrix::rcond (void) const): New method for - reciprocal condition number calculation. - (double ComplexMatrix::rcond (MatrixType &mattype) const): ditto. - * dMatrix.cc (double rcond): Replace with double rcon everywhere - to avoid shadowed variable warning - (double Matrix::rcond (void) const): New method for - reciprocal condition number calculation. - (double Matrix::rcond (MatrixType &mattype) const): ditto. - * dMatrix.h (double rcond): Replace with double rcon everywhere - to avoid shadowed variable warning - (double Matrix::rcond (void) const): New method for - reciprocal condition number calculation. - (double Matrix::rcond (MatrixType &mattype) const): ditto. - - * regex-match.cc, regex-match.h: New class for simple regular - expression matching - * Makefile.in (INCLUDES): Add regex-match.h here, and - (LIBOCTAVE_CXX_SOURCES): regex-match.cc here. - - 2008-05-19 David Bateman - - * dSparse.cc: Replace some DGBCON with GPBCON where they are - incorrectly used. - - 2008-05-13 David Bateman - - * idx-vector.cc (IDX_VEC_REP::idx_vector_rep (const boolNDArray&)): - If len is zero size the index vector in the same manner as if len - is not zero. - - 2008-05-05 John W. Eaton - - * cmd-edit.cc (command_editor::re_read_init_file, - gnu_readline::do_re_read_init_file): New functions. - * cmd-edit.h (command_editor::re_read_init_file): Provide decl. - (command_editor::do_re_read_init_file): New function. - * oct-rl-edit.c (octave_rl_re_read_init_file): New function. - * oct-rl-edit.h: Provide decl. - - 2008-05-05 Rafael Laboissiere - - * oct-rl-edit.c (octave_read_init_file): Simply call rl_read_init_file. - - 2008-05-01 John W. Eaton - - * oct-shlib.h (octave_shlib::number_of_functions_loaded): - Return size_t instead of int value. - * oct-shlib.cc (octave_base_shlib::number_of_functions_loaded): - Likewise. - (octave_base_shlib::fcn_names): Now a std::map object. - Adjust all uses. - (octave_base_shlib::fcn_names_iterator, - octave_base_shlib::fcn_names_const_iterator): New typedefs. - (octave_base_shlib::add_to_fcn_names, octave_base_shlib::remove): - Perform reference counting for functions accessed. - - 2008-04-30 Jaroslav Hajek - - * lo-mappers.cc (xlog2 (double)): Compute log (2), not log2 (2). - (xlog2 (Complex), xlog2 (double, int&), xlog2 (Complex, int&)): - New functions. - * lo-mappers.h: Provide decls. - - 2008-04-25 Michael Goffioul - - * oct-lookup.h (seq_lookup): Do not use output value of fill_n (MSVC - does not support it). - - 2008-04-24 Michael Goffioul - - * lo-sysdep.cc (octave_popen2): Don't set PIPE_NOWAIT for parentWrite. - - 2008-04-21 John W. Eaton - - * idx-vector.cc (IDX_VEC_REP::idx_vector_rep (const boolNDArray&)): - Fix for-loop condition. - - 2008-04-19 Jaroslav Hajek - - * CmplxCHOL.cc, CmplxQR.cc, dbleCHOL.cc, dbleQR.cc: Fix calls to error() - - 2008-04-16 David Bateman - - * Sparse.h (Sparse& operator = (Sparse&)): Move definition - of the operator for here - * Sparse.cc (Sparse& Sparse::operator = (Sparse&)): To - here. Also delete idx. - * Array.h (Array& operator = (Array&)): Move definition - of the operator for here - * Array.cc (Array& Array::operator = (Array&)): To - here. Also delete idx. - - 2008-04-09 Michael Goffioul - - * lo-mappers.cc (xround): Avoid floating-point overflow when input - value is equal to bitmax implementation taken from gnulib). - - * file-stat.cc (file_stat::update_internal): Do not strip trailing - file separator when path length is equal to 1 (handle case '\') under - __WIN32__ platforms. - - 2008-04-07 Jaroslav Hajek - - * dbleQR.h, dbleQR.cc (QR::shift_cols): New method. - * CmplxQR.h, CmplxQR.cc (ComplexQR::shift_cols): New method. - * dbleCHOL.h, dbleCHOL.cc (CHOL::insert_sym, CHOL::delete_sym, - CHOL::shift_sym): New methods. - * CmplxCHOL.h, CmplxCHOL.cc (ComplexCHOL::insert_sym, - ComplexCHOL::delete_sym, ComplexCHOL::shift_sym): New methods. - - 2008-04-03 John W. Eaton - - * lo-sysdep.cc [__WIN32__ && ! __CYGWIN__]: Include windows.h. - - 2008-03-27 Jaroslav Hajek - - * oct-lookup.h: New file. - - 2008-03-26 David Bateman - - * Array.cc (assignN): Additional fix for vector assignments. - - 2008-03-25 David Bateman - - * Array.cc (assignN): refactor calculation of new dimensions when - original matrix is empty. - * Array-util.cc (bool is_vector (const dim_vector&)): New - function. - * Array-util.h (bool is_vector (const dim_vector&)): declare it. - - 2008-03-25 David Bateman - - * sparse-base-chol.h (sparse_base_chol_rep::~sparse_base_chol_rep - (void)): Only free the factorization if it was created - * spase-base-chol.cc (sparse_base_chol_rep::init): Don't attempt - to factorize a matrix that has been flagged as not being positive - definite. - - 2008-03-25 John W. Eaton - - * lo-mappers.cc (xtrunc): New function. - * lo-mappers.h: Provide decl. - - 2008-03-25 Jaroslav Hajek - - * lo-specfun.cc (expm1, log1p): New functions. - * lo-specfun.h: Provide decls. - - * lo-mappers.cc (xroundb): New function. - * lo-mappers.h: Provide decl. - - 2008-03-23 David Bateman - - * mx-ops: Definite binary operators for mixed integer array + - array case, except for 64bit cases. - - 2008-03-21 David Bateman - - * oct-sparse.h: Add headers for amd.h. - - 2008-03-20 David Bateman - - * Array.cc (Array Array::diag (octave_idx_type) const): New - method for diag function. - * Array.h (Array diag (octave_idx_type) const): Declare it. - * Array2.h (Array2 diag (octave_idx_type) const): New method. - * MArray2.h (MArray2 diag (octave_idx_type) const): ditto. - * ArrayN.h (ArrayN diag (octave_idx_type) const): ditto. - * MArrayN.h (MArrayN diag (octave_idx_type) const): ditto. - - * Sparse.cc (Sparse Sparse::diag (octave_idx_type) const): - New method for the diag function. - * Sparse.h (Sparse diag (octave_idx_type) const): Declare it. - * MSparse.h (MSparse diag (octave_idx_type) const): New method. - - * Range.cc (Matrix Range::diag (octave_idx_type) const): - New method for the diag function. - * Range.h (Matrix diag (octave_idx_type) const): Declare it. - - * CDiagMatrix.cc (ComplexColumnVector ComplexDiagMatrix::diag - (void) const): delete. - * dDiagMatrix.cc (ColumnVector DiagMatrix::diag (void) const): delete. - * dDiagMatrix.h (ColumnVector diag (void) const): ditto. - * CMatrix.cc (ComplexColumnVector ComplexMatrix::diag (void) const): - delete. - * CMatrix.h (ComplexColumnVector diag (void) const): ditto. - * dMatrix.cc (ColumnVector Matrix::diag (void) const): ditto. - * dMatrix.h (ColumnVector diag (void) const): ditto. - * boolMatrix.cc (boolMatrix boolMatrix::diag (void) const): ditto. - * boolMatrix.h (boolMatrix diag (void) const): ditto. - * chMatrix.cc (charMatrix charMatrix::diag (void) const): ditto. - * chMatrix.h (charMatrix diag (void) const): ditto. - * intNDArray.cc (intNDArray intNDArray::diag (void) const): ditto. - * intNDArray.h (intNDArray diag (void) const): ditto. - - * CMatrix.cc (ComplexMatrix ComplexMatrix::diag (octave_idx_type) - const): Rewrite in terms of template classes function. - * CMatrix.h (ComplexMatrix diag (octave_idx_type)const ): Change - return type. - * dMatrix.cc (Matrix Matrix::diag (octave_idx_type) const): Rewrite in - terms of template classes function. - * dMatrix.h (Matrix diag (octave_idx_type) const): Change return type. - * boolMatrix.cc (boolMatrix boolMatrix::diag (octave_idx_type) const): - Rewrite in terms of template classes function. - * boolMatrix.h (boolMatrix diag (octave_idx_type) const): Change - return type. - * chMatrix.cc (charMatrix charMatrix::diag (octave_idx_type) - const): Rewrite in terms of template classes function. - - * dSparse.cc (SparseMatrix SparseMatrix::diag (octave_idx_type) const): - Rewrite in terms of template classes function. - * CSparse.cc (SparseComplexMatrix SparseComplexMatrix::diag - (octave_idx_type) const): ditto. - * boolSparse.cc (SparseBoolMatrix SparseBoolMatrix::diag - (octave_idx_type) const): ditto. - * intNDArray.cc (intNDArray intNDArray::diag - (octave_idx_type) const): ditto. - - * CNDArray.cc (ComplexNDArray ComplexNDArray::diag - (octave_idx_type) const): New method. - * CNDArray.h (ComplexNDArray diag (octave_idx_type) const): - Declare it. - * dNDArray.cc (NDArray NDArray::diag (octave_idx_type) const): New - method. - * dNDArray.h (NDArray diag (octave_idx_type) const): Declare it. - * chNDArray.cc (charNDArray charNDArray::diag - (octave_idx_type) const): New method. - * chNDArray.h (charNDArray diag (octave_idx_type) const): - Declare it. - - - 2008-03-19 John W. Eaton - - * oct-env.cc (octave_env::do_base_pathname): Also handle rooted - relative filenames. - - 2008-03-19 David Bateman - - * Array.cc (assignN): If orig_empty allow assignment like - a(1:10,1)=1:10 - - * Sparse.h (template Sparse map (F fcn) - const): New template function. - * MSparse.h (template MSparse map (F fcn) - const): ditto. - * dSparse.cc (SparseMatrix SparseMatrix::map (dmapper) const, - SparseComplexMatrix SparseMatrix::map (cmapper) const, - SparseBoolMatrix SparseMatrix::map (bmapper) const): Rewrite in - terms of the new template functor. - * CSparse.cc (SparseMatrix SparseComplexMatrix::map (dmapper) const, - SparseComplexMatrix SparseComplexMatrix::map (cmapper) const, - SparseBoolMatrix SparseComplexMatrix::map (bmapper) const): ditto. - - 2008-03-18 David Bateman - - * lo-specfun.cc (Complex xlgamma (const Complex&)): New function. - * lo-specfun.h (Complex xlgamma (const Complex&)): Declare it. - * randpoison.c (xlgamma): Use lgamma if HAVE_LGAMMA is defined. - - * dNDArray.cc (NDArray::min, NDArraymax): chop trailing singletons. - * CNDarray.cc (ComplexNDArray::min, CompelxNDArray::max): ditto. - * intNDarray.cc (intNDArray::min, intNDArray::max): ditto. - - * Array.cc (Array::index): Don't short_freeze on index with - fewer dimensions than the array only if the last dimension is empty. - - 2008-03-18 John W. Eaton - - * oct-inttypes.h (octave_int_fit_to_range): - Use partial specialization for double values. - - 2008-03-08 John W. Eaton - - * Sparse.cc (Sparse::index, assign): Likewise. - * Array.cc (Array::index1, Array::index2, Array::indexN, - assign2): Eliminate use of idx_vector::is_one_zero method. - * idx-vector.cc, idx-vector.h - (idx_vector::maybe_convert_one_zero_to_idx, - IDX_VEC_REP::maybe_convert_one_zero_to_idx): Delete unused function. - (IDX_VEC_REP::one_zero): Delete data member. - (IDX_VEC_REP::is_colon_equiv): Delete one_zero check. - (idx_vector::is_one_zero, IDX_VEC_REP::is_one_zero): Delete function. - - 2008-03-07 John W. Eaton - - * idx-vector.cc (IDX_VEC_REP::idx_vector_rep (bool), - IDX_VEC_REP::idx_vector_rep (const boolNDArray&)): - Simply perform the equivalent of "find" on the bool argument here, - set one_zero to 0 and orig_dims to size of resulting index vector. - (IDX_VEC_REP::freeze): Don't call maybe_convert_one_zero_to_idx here. - - 2008-03-05 Jaroslav Hajek - - * dbleQR.cc (QR::insert_col, QR::insert_row, - QR::delete_col, QR::delete_row): Use 0-based indexing. - * CmplxQR.cc (ComplexQR::insert_col, ComplexQR::insert_row, - ComplexQR::delete_col, ComplexQR::delete_row): Likewise. - - * dbleCHOL.cc: Small doc and declaration fixes. - * CmplxHOL.cc: Small doc and declaration fixes. - * CmplxQR.cc (ComplexQR::ComplexQR): Adjust code to match dbleQR.cc. - * dbleQR.cc (QR::delete_row): Fix incorrect test. - * CmplxQR.cc (ComplexQR::delete_row): Fix incorrect test. - - 2008-03-04 Jaroslav Hajek - - * dbleCHOL.cc (CHOL::set, CHOL::update, CHOL::downdate): - New functions. - * dbleCHOL.h: Provide decls. - * CmplxCHOL.cc (ComplexCHOL::set, ComplexCHOL::update, - ComplexCHOL::downdate): New functions. - * CmplxCHOL.h: Provide decls. - - * dbleQR.cc (QR::update, QR::insert_col, QR::delete_col, - QR::insert_row, QR::delete_row): New methods. - (QR::QR (const Matrix&, const MAtrix&)): New constructor. - * dbleQR.h: Provide decls. - * CmplxQR.cc (ComplexQR::update, ComplexQR::insert_col, - ComplexQR::delete_col, ComplexQR::insert_row, - ComplexQR::delete_row): New methods. - (ComplexQR::ComplexQR (const ComplexMatrix&, const ComplexMAtrix&)): - New constructor. - * CmplxQR.h: Provide decls. - - 2008-03-04 Jaroslav Hajek - - * Array-C.cc, Sparse-C.cc: Include oct-sort.cc after definitions - of < and > operators. - - 2008-03-03 David Bateman - - * Sparse.cc (assign1, assign1): Take care of repeated index - values. Adapt the test code to check for these cases. - - 2008-03-03 Jaroslav Hajek - - * dMatrix.cc (Matrix::lssolve): Also avoid dgelsd lwork query bug - in lssolve method that accepts column vector argument. Correct - calculation of nlvl. - * CMatrix.cc (ComplexMatrix::lssolve): Likewise, for zgelsd. - - 2008-02-27 John W. Eaton - - * oct-rand.cc (class octave_rand): Make it a proper singleton class. - - 2008-02-26 John W. Eaton - - * oct-rand.cc (get_dist_id): Fix typo. - (get_dist_id, octave_rand::distribution, octave_rand::scalar, - fill_rand): Improve error messages. - - * oct-rand.cc (unknown_dist): New dist type. - (uniform_dist, normal_dist, expon_dist, poisson_dist, gamma_dist): - Use static const int instead of #define. - (get_dist_id): Default retval is unknown_dist. - - * oct-rand.cc (rand_states): New static variable. - (initialize_rand_states, get_dist_id, get_internal_state, - set_internal_state, switch_to_generator, save_state): New functions. - (octave_rand::state): New arg to specify distribution. - Save state in rand_states instead of setting internal state. - Return named state. Use set_internal_state to generate proper - state vector from user supplied state. Save and restore current - state if specified and current distributions are different. - (octave_rand::distribution (void)): Use switch rather than if/else. - (octave_rand::distribution (const std::string&)): Likewise. - (octave_rand::uniform_distribution, - octave_rand::normal_distribution, - octave_rand::exponential_distribution, - octave_rand::poisson_distribution, - octave_rand::gamma_distribution): Call switch_to_generator. - (octave_rand::state, maybe_initialize): For new_generators, just - call initialize_rand_states if not already initialized. - (octave_rand::scalar, fill_rand): Save state after generating value. - - * dMatrix.cc (Matrix::lssolve): Avoid another dgelsd lwork query bug. - * CMatrix.cc (ComplexMatrix::lssolve): Likewise, for zgelsd - - 2008-02-24 John W. Eaton - - * oct-inttypes.h (octave_int_helper): New class. Provide - specializations for signed and unsigned types. - (octave_int::operator >>=, octave_int::abs, - octave_int::signum): Use static functions from - octave_int_helper class. - - * oct-inttypes.h, oct-inttypes.cc (OCTAVE_US_TYPE1_CMP_OP, - OCTAVE_US_TYPE2_CMP_OP): Tag function declarations and definitions - with "template <>". - - 2008-02-22 John W. Eaton - - * CSparse.cc, SparseCmplxLU.cc, SparsedbleLU.cc, dSparse.cc, - file-ops.cc, oct-group.cc, oct-shlib.cc, sparse-base-chol.h, - sparse-dmsolve.cc: Use 0 instead of NULL. - - 2008-02-22 David Bateman - - * boolSparse.cc (SparseBoolMatrix SparseBoolMatrix::diag - (octave_idx_type) const): New method. - * boolSparse.h (SparseBoolMatrix SparseBoolMatrix::diag - (octave_idx_type) const): Declare it. - - * base-lu.h (lu_type Y (void) const): New method to return - factorization of xGETRF directly. - * sparse-base-lu.cc (template lu_type sparse_base_lu :: Y (void) const): New method - to simulate the retirn of xGETRF. - * sparse-base-lu.h (template lu_type sparse_base_lu :: Y (void) const): Declare it - (SparseMatrix R (void) const): Method to return scaling factors. - * SparsedbleLU.cc: Allow two element pivot thresholding and - scaling. - * SparseCmplxLU.cc: ditto. - * SparsedbleLU.h: Modify constructors to allow passing of two - element pivoting thresholds and flag for scaling - * SparseCmplxLU.h: ditto. - - * base-lu.cc (ColumnVector P_vec (void) const): New method to - return permutations as a vector. - * base-lu.h (ColumnVector P_vec (void) const): Declare it. - * sparse-base-lu.cc (ColumnVector Pr_vec (void) const): New method - return row permutations as a vector. - (ColumnVector Pc_vec (void) const): New method return column - permutations as a vector. - * sparse-base-lu.h (ColumnVector Pr_vec (void) const): Declare it. - (ColumnVector Pc_vec (void) const): Declare it. - - * oct-spparms.cc: Add sym_tol field. - - 2008-02-20 David Bateman - - * SparseComplexQR.cc (ComplexMatrix - SparseComplexQR::SparseComplexQR_rep::Q - (void) const): New method. - * SparseComplexQR.h (ComplexMatrix - SparseComplexQR::SparseComplexQR_rep::Q - (void) const): Declare it. - * SparseQR.cc (Matrix SparseQR::SparseQR_rep::Q (void) const): ditto. - * SparseQR.h (Matrix SparseQR::SparseQR_rep::Q (void) const): ditto. - - 2008-02-20 John W. Eaton - - * boolNDArray.h (boolNDArray (const Array2&)): Delete. - - * Marray2.h (MArray2 (const Array2&), - MArray2 (const MArray2&)): New templated constructors. - - * Array2.h (Array2 (const Array&), - Array2 (const Array&, const dim_vector&)): - New templated constructors. - - * CColVector.cc (ComplexColumnVector::map): Forward to MArray::map. - * dColVector.cc (ColumnVector::map): ditto. - * CRowVector.cc (ComplexRowVector::map): ditto. - * dRowVector.cc (RowVector::map): ditto. - * CMatrix.cc (ComplexMatrix::map): Forward to MArray2::map. - * dMatrix.cc (Matrix::map): ditto. - - * dNDArray.cc (NDArray::map): New functions. - * dNDArray.h: Provide decls. - - * CNDArray.cc (ComplexNDArray::map): New functions. - * CNDArray.h: Provide decls. - - * MArray2.h (MArray2::map): New function. - * Array2.h (Array2::map): New function. - * MArrayN.h (MArrayN::map): New function. - * ArrayN.h (ArrayN::map): New function. - * Array.h (Array::map): New function. - - * functor.h: New file. - * Makefile.in (INCLUDES): Add it to the list. - - 2008-02-20 David Bateman - - * CColVector.h, CColVector.cc (ComplexColumnVector::apply): Remove. - * dColVector.h, dColVector.cc (ColumnVector::apply): ditto. - * CRowVector.h, CRowVector.cc (ComplexRowVector::apply): ditto. - * dRowVector.h, dRowVector.cc (RowVector::apply): ditto. - * CMatrix.h, CMatrix.cc (ComplexMatrix::apply): ditto. - * dMatrix.h, dMatrix.cc (Matrix::apply): ditto. - - * CSparse.cc (apply): Remove. - (map): Replace old mapper code with code taken from ov-mapepr.cc - * CSparse.h (map): Reeclare them. - (dmapper, cmapper, bmapper): typedefs for mapper functions. - * dSparse.cc (apply): Remove. - (map): Replace old mapper code with code taken from ov-mapepr.cc - * dSparse.h (map): Reeclare them. - (dmapper, cmapper, bmapper): typedefs for mapper functions. - - * intNDArray.cc (abs, signum): Two new mapper functions. - * intNDArray.h (abs, signum): Declare them. - * oct-inttypes.h (abs, signum): Mapper functions on scalar integer - base type. - - 2008-02-15 John W. Eaton - - * dMatrix.cc (Matrix::lssolve): Check n > mnthr, not n > m when - deciding whether to calculate workspace size, with mnthr from ILAENV. - * CMatrix.cc (ComplexMatrix::lssolve): Likewise. - - 2008-02-14 John W. Eaton - - * CColVector.cc, CMatrix.cc, CRowVector.cc, CSparse.cc, - CmplxAEPBAL.cc, CmplxCHOL.cc, CmplxHESS.cc, CmplxLU.cc, - CmplxQR.cc, CmplxQRP.cc, CmplxSCHUR.cc, CmplxSVD.cc, DASPK.cc, - DASRT.cc, DASSL.cc, EIG.cc, LSODE.cc, NLEqn.cc, Quad.cc, - dColVector.cc, dMatrix.cc, dRowVector.cc, dSparse.cc, - dbleAEPBAL.cc, dbleCHOL.cc, dbleHESS.cc, dbleLU.cc, dbleQR.cc, - dbleQRP.cc, dbleSCHUR.cc, dbleSVD.cc: - Don't check f77_exception_encountered. - - 2008-02-12 John W. Eaton - - * CMatrix.cc: Declare xilaenv instead of ilaenv. - (ComplexMatrix::lssolve): Call xilaenv instead of ilaenv. - - 2008-02-12 Jason Riedy - - * Array.cc (ascending_compare, descending_compare): Remove - non-standard extern in the instantiations. - - * oct-sort.cc: Include and sprinkle with std:: as needed. - - * dMatrix.cc (ILAENV): Declare LAPACK Fortran function. - (Matrix::lssolve): Use ILAENV to query smlsiz. And add an ugly - workaround for DGELSD's broken lwork query. The formula is from - LAPACK's dgelsd.f source and allocates enough workspace to use an - efficient algorithm in the short-and-fat case (n > m). - * CMatrix.cc (ILAENV): Declare LAPACK Fortran function. - (ComplexMatrix::lssolve): Use ILAENV to query smlsiz. And add an - ugly workaround for DGELSD's broken lwork query, as with double. - - 2008-02-12 John W. Eaton - - * sparse-sort.cc: Don't explicitly instantiate - class octave_sort, - class octave_sort, or - class octave_sort. - - * Sparse.h (INSTANTIATE_SPARSE_SORT): Delete macro. - * Sparse-C.cc, Sparse-b.cc, Sparse-d.cc: Don't use it. - - * Range.cc (Range::sort_internal): Avoid shadow warning from gcc. - - 2008-02-11 John W. Eaton - - * Makefile.in ($(MAKEDEPS)): Skip dependencies if omit_deps is defined. - - 2008-02-08 John W. Eaton - - * oct-sort.h (enum sortmode): Eliminate UNDEFINED. Change all - uses of UNDEFINED to ASCENDING. - - 2008-02-07 John W. Eaton - - * Range.cc (Range::sort_internal): Rename from sort. New arg, - ASCENDING, with default value of true. - (Range::sort_internal (Array&, bool)): New function. - (Range::sort (octave_idx_type, sortmode) const): New function. - (Range::sort (Array&, octave_idx_type, sortmode) - const): New function. - * Range.h: Fix/provide decls. - - * intNDArray.cc (intNDArray::any (int)): Use != for comparison. - - 2008-02-06 John W. Eaton - - * Makefile.in ($(OPTS_INC)): Use mv instead of move-if-change. - (stamp-prereq): Eliminate. - (clean): Don't remove stamp-prereq. - (libraries): Don't depend on stamp-prereq. - (PREREQ): New macro. - ($(MAKEDEPS)): Depend on $(PREREQ), not stamp-prereq. - (distclean): Simplify with $(PREREQ). - (OPT_BASE): New macro. - (OPT_IN): Rename from OPTS_INC_DATA. Define in terms of OPT_BASE. - (OPT_INC): Rename from OPTS_INC. Define in terms of OPT_BASE. - - 2008-02-05 John W. Eaton - - * Makefile.in: Unconditionally include $(MAKEDEPS). - Mark $(MAKEDEPS) as .PHONY targets if omit_deps is true. - - 2008-02-03 Michael Goffioul - - * Array.cc (ascending_compare, descending_compare, - Array::sort): Declare explicit specialization for T=double to - avoid symbol duplication error at link time. - * Array-d.cc (ascending_compare, descending_compare): Declare and - define as nonmember functions, not member functions of Array. - - 2008-02-03 John W. Eaton - - * Array-i.cc: Also instantiate Arrays for long long type if it exists. - - 2008-02-03 Michael Goffioul - - * Array.cc: Don't include Range.h. - - 2008-01-31 David Bateman - - * oct-sort.cc: conversion of int to octave_idx_type where needed - for 64-bit builds. - (IFLT): Allow IFLT macro to be overridden. - * oct-sort.h: conversion of int to octave_idx_type where needed - for 64-bit builds. - (enum sortmode): Type of sort to perform. - (vec_index): Simple class to aid in indexed sorts. - - * Array.h ( Array sort (octave_idx_type, sortmode) const, - Array sort (Array &, octave_idx_type, - sortmode) const): Array sorting methods. - (INSTANTIATE_ARRAY_SORT, NO_INSTANTIATE_ARRAY_SORT): Macros to - instantiate the array sorting methods. - * Array.cc (ascending_compare, descending_compare): New template - functions for generic sort comparison. - ( Array Array::sort (octave_idx_type, sortmode) const, - Array Array::sort (Array &, octave_idx_type, - sortmode) const): Array sorting functions based of octave_sort - class. - * Array-C.cc: Instantiate the complex array sort methods. - (IFLT): New macro to override the one in the - octave_sort class to avoid need for Complex < and > operators. - (static double xabs (const Complex&)): Complex abs function - avoiding std::abs(Inf) returning NaN with some compilers. - (ascending_compare, descending compare): override template - functions for complex comparison. - * Array-d.cc: Instantiate the double array sort methods. - (Array Array::sort (octave_idx_type, - sortmode) const, Array Array::sort - (Array &, octave_idx_type, sortmode) const): - Array sorting functions based of octave_sort using uint64 sorting - on IEE754 doubles, for speed and correct sorting of Inf and NaN. - (ascending_compare, descending compare): override template - functions for double and uint64 comparison. - * Array-b.cc, Array-ch.cc, Array-i.cc, Array-s.cc, Array-str.cc: - Instantiate the array sort methods. - * Array-idx-vec.cc: Null instantiation of array sort methods. - * Array2.h, Array3.h, ArrayN.h (sort): 2, 3 and N-dimensional - versions of the sort methods based on Array::sort. - - * CSparse.cc, dSparse.cc: Remove inclusion of octa-sort.h. - * Sparse.h ( Sparse sort (octave_idx_type, sortmode) const, - Sparse sort (Array &, octave_idx_type, - sortmode) const): Sparse sorting methods. - (INSTANTIATE_ARRAY_SORT): Macro to instantiate the sparse sorting - methods. - * Sparse.cc: replace sort with lsort throughout to avoid shadowing - of new sort method. - (sparse_ascending_compare, sparse_descending_compare): New template - functions for generic sort comparison. - ( Sparse Sparse::sort (octave_idx_type, sortmode) const, - Sparse Sparse::sort (Sparse &, octave_idx_type, - sortmode) const): Sparse sorting functions based of octave_sort - class. - * Sparse-C.cc: Instantiate the complex sparse sort methods. - (IFLT): New macro to override the one in the - octave_sort class to avoid need for Complex < and > operators. - (static double xabs (const Complex&)): Complex abs function - avoiding std::abs(Inf) returning NaN with some compilers. - (sparse_ascending_compare, sparse_descending compare): override - template functions for complex comparison. - * Sparse-d.cc: Instantiate the cdouble sparse sort methods. - (sparse_ascending_compare, sparse_descending compare): override - template functions for double comparison. - * Array-b.cc: Instantiate the sparse sort methods. - - 2008-01-25 Jaroslav Hajek - - * idx-vector.h (idx_vector::idx_vector_rep::range_base, - idx_vector::idx_vector_rep::range_step, - idx_vector::idx_vector_rep::range_step): New data members. - (idx_vector::idx_vector_rep::idx_vector_rep): Initialize them. - * idx-vector.cc (IDX_VEC_REP::sort, IDX_VEC_REP::is_colon_equiv, - IDX_VEC_REP::init_state, IDX_VEC_REP::operator =, - IDX_VECTOR_REP::idx_vector_rep): Handle range. - - 2008-01-18 Marco Caliari - - * dMatrix.cc (Matrix::expm): Correctly perform reverse permutation. - * CMatrix.cc (ComplexMatrix::expm): Likewise. - - 2008-01-22 Michael Goffioul - - * oct-time.cc (octave_base_tim::init): Validate pointer argument; - this fixes the "localtime(-1)" crash under Windows. - - 2008-01-18 John W. Eaton - - * dMatrix.cc (solve_singularity_warning): New function. - (Matrix::expm): Pass pointer to solve_singularity_warning to - Matrix::solve method. Exit early if Matrix::solve fails. - Limit sqpow value to avoid overflowing scale factor. - * CMatrix.cc (solve_singularity_warning): New function. - (ComplexMatrix::expm): Pass pointer to solve_singularity_warning to - ComplexMatrix::solve method. Exit early if ComplexMatrix::solve fails. - Limit sqpow value to avoid overflowing scale factor. - From Marco Caliari . - - 2008-01-10 Kim Hansen - - * Sparse.cc: New tests for slicing of sparse matrices. - - 2008-01-07 David Bateman - - * Sparse-op-defs.h (SPARSE_ANY_ALL_OP_ROW_CODE): Don't break from - loop if this test succeeds. - - 2008-01-03 David Bateman - - * MSparse.cc (SPARSE_A2A2_OP): If first arg is scalar zero, then - need unary operator on remaining argument - * Sparse-op-defs.h (SPARSE_SMSM_BIN_OP_1): ditto. - - 2007-12-21 John W. Eaton - - Version 3.0.0 released. - - 2007-12-18 David Bateman - - * Sparse.cc (template Sparse Sparse::index - (idx_vector&, int) const): Fix case indexing of non zero scalar - stored as a sparse matrix. - (template Sparse Sparse::index (idx_vector&, - idx_vector&, int) const): For the non permutated indexing case, - fix link list calculation and use. - - 2007-12-17 John W. Eaton - - * Array.cc (Array::indexN): Correctly handle scalar indexed by - N-d array. - - 2007-12-17 David Bateman - - * Sparse-op-defs.h (SPARSE_ANY_ALL_OP_ROW_CODE): Use ridx for row - index. - - 2007-12-11 John W. Eaton - - * Sparse.cc (Sparse::index (idx_vector&, int) const): - If indexing scalar with empty matrix, return empty array with same - size as index. - - 2007-12-10 John W. Eaton - - * NLEqn.h (NLEqn::fval): New data member. Adjust constructors - and assignment operator. - (NLEqn::function_value): New function. - * NLEqn.cc (NLEqn::solve): If solution is successful, compute - function value. - - * file-ops.cc (file_ops::concat): New function. - * file-ops.h: Provide decl. - - 2007-12-07 John W. Eaton - - * oct-time.cc (octave_base_tm::init): Only assign t->tm_zone if it - is not 0. - - 2007-12-07 David Bateman - - * Sparse-op-defs.h (SPARSE_SMS_CMP_OP, SPARSE_SMS_BOOL_OP, - SPARSE_SSM_CMP_OP, SPARSE_SSM_BOOL_OP, SPARSE_SMSM_CMP_OP, - SPARSE_SMSM_BOOL_OP, SPARSE_BASE_REDUCTION_OP): Use sparse - indexing where possible rather than the elem method. - (SPARSE_REDUCTION_OP_ROW_EXPR, SPARSE_REDUCTION_OP_COL_EXPR, - SPARSE_ANY_ALL_OP_ROW_CODE, SPARSE_ANY_ALL_OP_COL_CODE): - Replace for new version of SPARSE_BASE_REDUCTION_OP. - (SPARSE_ALL_OP): Specialize the initial value, and only treat dim - = 0 directly. - * CSparse.cc (SparseComplexMatrix SparseComplexMatrix::sumsq (int) - const): Replace ROW_EXPR and COL_EXPR functions for new version of - SPARSE_BASE_REDUCTION_OP. - (SparseComplexMatrix SparseComplexMatrix::prod (int) const): - Specialize the initial value, and only treat dim = 0 directly. - * dSparse.cc (SparseMatrix SparseMatrix::sumsq (int) const): - ditto. - (SparseMatrix SparseMatrix::prod (int) const): ditto. - - 2007-12-06 John W. Eaton - - * CMatrix.cc (ComplexMatrix::expm): Update pointers to internal - data for npp and dpp after assignments. - * dMatrix.cc (Matrix::expm): Use same method as ComplexMatrix::expm. - - 2007-12-04 John W. Eaton - - * Sparse.cc (assign (Sparse&, const Sparse&)): - Do nothing if one index is empty. - - 2007-12-04 David Bateman - - * Sparse.cc (assign (Sparse&, const Sparse&)): - Resize matrix as well if one dimension of lhs is zero and the rhs - index exceeds the lhs index. - * Sparse.cc (assign1 (Sparse&, const Sparse&)): - Don't resize to a smaller matrix for empty matrices with a max rhs - index smaller than the non zero lhs index. - - 2007-12-04 Michael Goffioul - - * Array-util.h: Tag permute_vector_compare with OCTAVE_API. - - 2007-12-03 Moritz Borgmann - - * Array-util.cc (permute_vector_compare): Move here from Array.cc. - * Array-util.h (permute_vector, permute_vector_compare): Provide decls. - * Array.cc (permute_vector, permute_vector_compare): Delete. - - 2007-12-03 David Bateman - - * Sparse.cc (template int assign - (Sparse&, const Sparse&)): Only set return matrix size to - rhs values if both no. rows and columns are zero. - - 2007-11-30 John W. Eaton - - * oct-sort.cc, oct-sort.h: Style fixes. - - * lo-math.h: New file. - * Makefile.in (INCLUDES): Add it to the list. - * Array2.h, ArrayN.h, CmplxDET.cc, DASPK.cc, DASPK.h, DASRT.cc, - DASRT.h, DASSL.cc, DASSL.h, LSODE.cc, LSODE.h, NLEqn.h, Quad.h, - Range.cc, dbleDET.cc, lo-cieee.c, lo-ieee.cc, lo-mappers.cc, - oct-time.cc, oct-time.h, randgamma.c, randmtzig.c, - randpoisson.c: Include lo-math.h instead of cmath or math.h. - * lo-mappers.h: Don't include sunmath.h here. - - 2007-11-26 John W. Eaton - - * idx-vector.h (idx_vector::idx_vector_rep (const intNDArray&)): - Eliminate unnecessary second arg from call to tree_to_mat_idx. - - * oct-inttypes.h (operator bool, operator char): Delete. - (bool_value, char_value, double_value, float_value): New functions. - - 2007-11-26 David Bateman - - * intNDArray.cc (template intNDArray - intNDArray::max (int) const, template intNDArray - intNDArray::max (ArrayN&, int) const, - template intNDArray intNDArray::min (int) const, - template intNDArray intNDArray::min - (ArrayN&, int) const): New methods for integer - classes. - * intNDArray.h (class intNDArray): Add min/max methods - * mx-op-defs.h (MIXMAX_DECLS, MINMAX_FCNS, SND_MINMAX_FCN, - NDS_MINMAX_FCN, NDND_MINMAX_FCN): New macro for instantiation of - min/max functions. - * int8NDArray.h, int16NDArray.h, int32NDArray.h, int64NDArray.h, - uint8NDArray.h, uint16NDArray.h, uint32NDArray.h, uint64NDArray.h - (MINMAX_DECLS(T)): Declare the min/max functions for integer - types. - * int8NDArray.cc, int16NDArray.cc, int32NDArray.cc, int64NDArray.cc, - uint8NDArray.cc, uint16NDArray.cc, uint32NDArray.cc, uint64NDArray.cc - (MINMAX_FCNS(T)): Instantiate the min/max functions for integer - types. - - * Arrayc.cc (Array::index (idx_vector&, idx_vector&, int, - const T& rfv) const): If ndims != 2 call ND version of index. - - 2007-11-14 John W. Eaton - - * oct-inttypes.h (opeator T (void) const): New conversion operator. - - * lo-specfun.cc (zbesi): When alpha is negative, don't limit - correction to half-integer values. From Eric Chassande-Mottin - . - - 2007-11-07 Michael Goffioul - - * dMatrix.cc, CMatrix.cc: Help MSVC compiler to resolve - ambiguities related to math functions (in C++ mode). - - 2007-11-06 David Bateman - - * intNDArray.cc (intNDArray intNDArray::sum (int) const): - New method. - * intNDarray.h (intNDArray sum (int) const): Declare it. - * boolNDArray.cc (boolNDArray boolNDArray::sum (int) const): - New method. - * boolNDarray.cc (boolNDArray sum (int) const): Declare it. - * MArray-def.h (MARRAY_NORM_BODY): Scale frobenius norm by infinity - norm to avoid issues of over- and underflow. From Rolf Fabian - . - - 2007-10-30 David Bateman - - * DASRT-opts.in, LSODE-opts.in: Doc fixes for small book format. - - 2007-10-30 John W. Eaton - - * CMatrix.cc (lssolve): Compute size of rwork and iwork arrays. - * dMatrix.cc (lssolve): Compute size of iwork array. - - 2007-10-29 David Bateman - - * CMatrix.h (lssolve (const Matrix&, octave_idx_type&, - octave_idx_type&, double&) const, lssolve (const ComplexMatrix&, - octave_idx_type&, octave_idx_type&, double&) const, lssolve - (const ColumnVector&, octave_idx_type&, octave_idx_type&, - double& rcond) const, lssolve (const ComplexColumnVector&, - octave_idx_type&, octave_idx_type&, double& rcond) const): New - declarations. - * CMatrix.cc (lssolve (const Matrix&, octave_idx_type&, - octave_idx_type&, double&) const, lssolve (const ComplexMatrix&, - octave_idx_type&, octave_idx_type&, double&) const, lssolve - (const ColumnVector&, octave_idx_type&, octave_idx_type&, - double& rcond) const, lssolve (const ComplexColumnVector&, - octave_idx_type&, octave_idx_type&, double& rcond) const): New - methods. - (lssolve (const Matrix&, octave_idx_type&, octave_idx_type&, - double&) const, lssolve (const ComplexMatrix&, octave_idx_type&, - octave_idx_type&, double&) const): Also return rcond from the - singular values returned by XGELSD. - * dMatrix.h (lssolve (const Matrix&, octave_idx_type&, - octave_idx_type&, double&) const, lssolve (const ComplexMatrix&, - octave_idx_type&, octave_idx_type&, double&) const, lssolve - (const ColumnVector&, octave_idx_type&, octave_idx_type&, - double& rcond) const, lssolve (const ComplexColumnVector&, - octave_idx_type&, octave_idx_type&, double& rcond) const): New - declarations. - * dMatrix.cc (lssolve (const Matrix&, octave_idx_type&, - octave_idx_type&, double&) const, lssolve (const ComplexMatrix&, - octave_idx_type&, octave_idx_type&, double&) const, lssolve - (const ColumnVector&, octave_idx_type&, octave_idx_type&, - double& rcond) const, lssolve (const ComplexColumnVector&, - octave_idx_type&, octave_idx_type&, double& rcond) const): New - methods. - (lssolve (const Matrix&, octave_idx_type&, octave_idx_type&, - double&) const, lssolve (const ComplexMatrix&, octave_idx_type&, - octave_idx_type&, double&) const): Also return rcond from the - singular values returned by XGELSD. - - 2007-10-26 David Bateman - - * dMatrix.cc (Matrix::lssolve): Use xGELSD for rank deficient - matrices to avoid reliability issues with xGELSY. - * CMatrix.cc (ComplexMatrix::lssolve): Likewise. - - 2007-10-25 John W. Eaton - - * oct-time.cc (octave_gmtime::init, octave_localtime::init): - Call unix_time on arg instead of relying on conversion operator. - - * oct-time.h (octave_time::double_value): New function. - (octave_time::operator double () const): Delete. - (octave_time::operator time_t () const): Delete. - - 2007-10-24 John W. Eaton - - * strptime.c: Also compile if OCTAVE_HAVE_BROKEN_STRPTIME is defined. - - 2007-10-23 John W. Eaton - - * CRowVector.cc (operator * const ComplexRowVector&, const - ComplexColumnVector&)): Delete spurious code left from patch. - - 2007-10-22 Kim Hansen - - * chMatrix.cc, lo-utils.cc, oct-env.cc, oct-uname.cc, - sparse-sort.cc: Include . - - 2007-10-17 John W. Eaton - - * oct-sparse.h: Don't include metis.h. - - * dSparse.cc (SparseMatrix::fsolve): Delete special code for METIS. - * CSparse.cc (SparseComplexMatrix::fsolve): Likewise. - * sparse-base-chol.cc (sparse_base_chol::sparse_base_chol_rep::init): Likewise. - - 2007-10-16 John W. Eaton - - * dMatrix.cc (Matrix::inverse): Only check rcond == 0 if the - matrix is hermitian or calc_cond is true. - * CMatrix.cc (ComplexMatrix::inverse): Likewise. - - 2007-10-12 John W. Eaton - - * Change copyright notices in all files that are part of Octave to - GPLv3 or any later version. - - 2007-10-11 Brian Gough - - * DASSL-opts.in, LSODE-opts.in: Spelling fixes. - - 2007-10-10 Olli Saarela - - * DASPK-opts.in, DASRT-opts.in, DASSL-opts.in: Spelling fixes. - - 2007-10-10 John W. Eaton - - * LPsolve.h, LPsolve.cc: Delete. - * Makefile.in: Remove them from the INCLUDES and - LIBOCTAVE_CXX_SOURCES lists. - - 2007-10-09 John W. Eaton - - * oct-time.cc (octave_strptime::init): Initialize t.tm_mon to -1 - and t.tm_year to INT_MIN before call to oct_strptime. Adjust - values to zero after call if they remain unchanged. - - * dSparse.cc (SparseMatrix::all_elements_are_zero): New function. - * dNDArray.cc (NDArray::all_elements_are_zero): New function. - - 2007-10-09 David Bateman - - * oct-time.cc (octave_strptime::init): Only call mktime if mday is - valud and mon and year are also filled in. - - * Array2.h (Array2::Array2(const dim_vector&), - Array2::Array(const dim_vector&, const T&)): Check that - dim_vector is 2 dimensional. - - * Sparse.cc (Sparse Sparse::index (idx_vector&, idx_vector&, - int)): Remove a for loop in the random indexing case at the - expense of maintaining a set of linked lists of indices that point - to the same column in the original matrix. - (int assign (Sparse&, Sparse)): Take a const copy of lhs - and use it on the RHS of expressions to avoid unnecessary calls to - make_unique. - - 2007-10-08 David Bateman - - * oct-rl-edit. (typedef rl_quoting_fcn_ptr, rl_dequoting_fcn_ptr, - rl_char_is_quoted_fcn_ptr, rl_command_fcn_ptr): New typedefs - for readline compatible functions. - (octave_rl_redisplay): Redisplay the current line of text. - (octave_rl_newline): Change interface to the same - as used by the equivalent readline function itself. - (octave_rl_filename_quoting_desired, - octave_rl_set_filename_quote_characters, - octave_rl_set_completer_quote_characters, - octave_rl_qet_quoting_function, octave_rl_qet_dequoting_function, - octave_rl_set_char_is_quoted_function): New functions to control - readline filename quoting and line acceptace. - * oct-rl-edit.c (octave_rl_newline): Change interface to the same - as used by the equivalent readline function itself. - (octave_rl_redisplay): Redisplay the current line of text. - (octave_rl_filename_quoting_desired, - octave_rl_set_filename_quote_characters, - octave_rl_set_completer_quote_characters, - octave_rl_qet_quoting_function, octave_rl_qet_dequoting_function, - octave_rl_set_char_is_quoted_function): New functions to control - readline filename quoting and line acceptace. - * cmd-edit.h (typedef quoting_fcn, typedef dequoting_fcn, - typedef char_is_quoted_fcn, user_accept_line_fcn): New typedefs - to map C++ function to readline compatible functions. - (set_filename_quote_characters): New function to set the - characters to if they appear in a filename that force the filename - to be quoted. - (set_completer_quote_characters): The characters that the readline - completion function considers as quotation characters. - (set_quoting_function, set_dequoting_function, - set_char_is_quoted_function, set_user_accept_line_function): - Functions to set the Octave functions to perform quoting and the - acceptance of a line of text by readline. - (get_quoting_function, get_dequoting_function, - get_char_is_quoted_function, get_user_accept_line_function): - Functions to get the above functions. - (accept_line): New method for the command_editor to accept a line - of text. - (file_quoting_desired): Function to set whether readline should - attempt to quote filenames. - (do_set_filename_quoting_characters, - do_set_completer_quote_characters, do_set_quoting_function, - do_set_dequoting_function, do_set_char_is_quoted_function, - do_set_user_accept_line_function, do_get_quoting_function, - do_get_dequoting_function, do_get_char_is_quoted_function, - do_get_user_accept_line_function, do_filename_quoting_desired): - Virtual functions to control the behavior of readline quoting and - acceptance of lines. - (do_accept_line): Virtual function for the accept line function. - * cmd-edit.cc (class gnu_readline do_set_filename_quote_characters, - do_completer_quote_characters, do_set_quoting_function, - do_set_dequoting_function, do_set_char_is_quoted_function, - do_set_user_accept_line_function, do_get_quoting_function, - do_get_dequoting_function, do_get_user_accept_line_function, - do_accept_line, do_filename_quoting_desired, command_quoter, - command_dequoter, command_char_is_quoted, command_accept_line): - New functions in gnu_readline class to control filename quoting - and line acceptance. - (quoting_function, dequoting_function, char_is_quoted_function, - user_accept_line_function): private variable to store functions - supplied for readline quoting and line acceptance. - (gnu_readline::gnu_readline): Also set the new function pointers - to zero. - (gnu_readline::do_newline): Adapt to new octave_rl_newline - interface. - (gnu_readeline::operate_and_get_next): Use new accept_line - function rather than newline. - (default_ommand_editor::do_accept_line): New method. - (class command_editor set_filename_quote_characters, - set_completer_quote_characters, set_quoting_function, - set_dequoting_function, set_char_is_quoted_function, - set_user_accept_line_function, get_quoting_function, - get_dequoting_function, get_user_accept_line_function, - accept_line, filename_quoting_desired): New functions checking - instance before calling virtual function. - - * CMatrix.h, dMatrix.h, boolMatrix.h, chMatrix.h, MArray2.h, - Array2.h: Add dim_vector constructors. - * charNDArray.h (charNDArray (const dim_vector&)): Add missing - const to dim_vector constructors. - * boolMatrix.cc, chMatrix.cc, intNDArray.cc (diag (void), diag - (octave_idx_type)): New methods to constructor diagonal matrices. - * boolMatrix.h, chMatrix.h, intNDArray.h (diag (void), diag - (octave_idx_type)): Declare them. - - 2007-10-06 John W. Eaton - - * lo-specfun.cc: (zlgamma): Delete. - (xgamma): Use C library gamma function if available. - (xlgamma): Use C library lgamma function if available. - (xlgamma) [! HAVE_LGAMMA]: Allow calculation for any value of X - other than NaN or Inf. - - 2007-10-05 John W. Eaton - - * lo-specfun.cc (zlgamma): New function. - - 2007-10-04 John W. Eaton - - * oct-sort.cc (octave_sort::binarysort): Remove register - qualifiers on local variables. - - 2007-10-04 Marco Caliari - - * CMatrix.cc (ComplexMatrix::expm): Limit shift to values less - than log(realmax) to avoid issues with NaN. - - 2007-10-01 John W. Eaton - - * oct-time.cc (octave_strptime::init): Call mktime to propertly - initialize wday and yday. - From Matthias Drochner . - - * cmd-edit.cc (command_editor::do_decode_prompt_string): Don't - insert extra '\001' when decoding \[ and \]. - - 2007-09-26 David Bateman - - * dMatrix.cc (lssolve): Replace the use of xGELSS with xGELSY with - is much faster and no less accurate. - * CMatrix.cc (lssolve): ditto. - - 2007-09-25 David Bateman - - * dMatrix.cc (utsolve, ltsolve, fsolve, lssolve): Allow - zero dimensioned matrices. - * CMatrix.cc (utsolve, ltsolve, fsolve, lssolve): ditto. - * dSparse.cc (dsolve, utsolve, ltsolve, bsolve, trisolve, fsolve): - ditto. - * CSparse.cc (dsolve, utsolve, ltsolve, bsolve, trisolve, fsolve): - ditto. - * SparseQR.cc (SparseQR::SparseQR_rep::C, qrsolve): ditto. - * SparseCmplxQR.cc (SparseComplexQR::SparseComplexQR_rep::C, - qrsolve): ditto. - * sparse-dmsolve.cc (dmsolve): ditto. - - 2007-09-21 John W. Eaton - - * Array.cc (assign1 (Array&, const Array&, const LT&)): - Also allow resizing empty LHS if it is 1x0 or 0xN. - - 2007-09-19 John W. Eaton - - * cmd-edit.cc (command_editor::remove_startup_hook): - Fix cut-and-paste error. - (gnu_readline::set_startup_hook): Only set hook function if new - function is different from the current one. - - 2007-09-18 John W. Eaton - - * cmd-edit.h, cmd-edit.cc (command_editor::startup_hook_set, - command_editor::event_hook_set): New static data. - (default_command_editor::set_startup_hook, - gnu_readline::set_startup_hook, - default_command_editor::restore_startup_hook, - gnu_readline_restore_event_hook): - Rename from do_set_startup_hook and do_set_event_hook. - (gnu_readline::operate_and_get_next): Call - command_editor::add_startup_hook, not - command_editor::set_startup_hook. - (command_editor::startup_handler, command_editor::event_handler): - New functions. - (command_editor::add_startup_hook, command_editor::add_event_hook, - command_editor::remove_startup_hook, - command_editor::remove_event_hook): Rename from set_startup_hook - and restore_startup_hook. Handle hook sets here. - * cmd-edit.cc (gnu_history::do_goto_mark): - Call remove_startup_hook instead of restore_startup_hook. - - 2007-09-17 John W. Eaton - - * lo-utils.cc (octave_read_complex, octave_read_double): Skip - leading whitespace. - - 2007-09-13 John W. Eaton - - * lo-utils.cc (read_inf_nan_na, octave_read_double, - octave_read_complex): Use istream::get instead of >> to read - individual characters. - - 2007-09-10 John W. Eaton - - * Array.cc (assign1): Don't call make_unique for invalid assignment. - - 2007-09-10 David Bateman - - * Array.h (Array::make_unique): Make public so that the - ::assign functions can access it directly. - * Array.cc (Array::maybe_delete_elements_1(idx_vector&), - Array::maybe_delete_elements_1(idx_vector&), - Array::maybe_delete_elements(idx_vector&, idx_vector&), - Array::maybe_delete_elements(Array&, const T&)): - Use xelem for non const RHS to avoid call to make_unique. - (int assign1 (Array&, const Array&, const LT&)): Use - xelem for LHS and call lhs.make_unique() only once. Special case - the is_colon index case and use Array::xelem(octave_idx_type) - rather than Array::xelem(octave_idx_type,octave_idx_type) and - bring the additional multiplication out of the inner loop. - (int assign2 (Array&, const Array&, const LT&)): ditto. - (int assignN (Array&, const Array&, const LT&)): ditto. - * idx-vector.h (idx_vector::idx_vector_rep::idx_vector_rep - (const Range& r)): Don't use init_state() method but special case - as with a Range can avoid exhaustive search. - - 2007-09-07 John W. Eaton - - * Array.cc (Array::fortran_vec): Call make_unique instead of - manipulating rep directly. - - * Array.h (idx, idx_count): Declare mutable. - (Array::set_index, Array::clear_index, Array::value): - Now const. - - 2007-09-06 David Bateman - - * Array-util.cc (increment_index): dimensions can have singleton - trailing dimensions. - * Array.h (range_error, xelem, checkelem, elem, operator ()): - Modify use of Array to Array and adjust - where necessary. - * Array.cc (range_error): ditto. - * MArrayN.h (permute, ipermute): ditto. - * ArrayN.h (permute, ipermute): ditto. - * so-array.cc (streamoff_array::compute_index): ditto. - * so-array.h (compute_index): ditto. - * CMattrix.cc (ComplexMatrix::exmpm): ditto. - - 2007-08-29 David Bateman - - * dSparse.cc (SparseMatrix SparseMatrix::inverse (MatrixType &, - octave_idx_type&, double&, int, int)): Calculate with LU even for - matrices marked as singular. - * CSparse.cc (SparseComplexMatrix SparseComplexMatrix::inverse ( - MatrixType &, octave_idx_type&, double&, int, int)): ditto. - * dMatrix.cc (Matrix Matrix::inverse (MatrixType &, octave_idx_type&, - double&, int, int)): ditto. If rcond==0 force matrix of infinities. - * dMatrix.cc (ComplexMatrix ComplexMatrix::inverse (MatrixType &, - octave_idx_type&, double&, int, int)): ditto. - - 2007-08-27 John W. Eaton - - * oct-env.cc (octave_env::rooted_relative_pathname, - octave_env::do_rooted_relative_pathname): New functions. - * oct-env.h: Provide decls. - - 2007-08-24 David Bateman - - * MSparse.h (MSparse& insert (const Sparse&, - const Array&)): New method. - (MSparse (const dim_vector&, octave_idx_type)): Ditto. - * dSparse.h (SparseMatrix& SparseMatrix::insert (const - SparseMatrix&, const Array&)): ditto. - (SparseMatrix (const dim_vector&, octave_idx_type)): ditto. - * dSparse.cc (SparseMatrix& SparseMatrix::insert (const - SparseMatrix&, const Array&)): ditto. - * boolSparse.h (SparseBoolMatrix& SparseBoolMatrix::insert (const - SparseBoolMatrix&, const Array&)): ditto. - * boolSparse.cc (SparseBoolMatrix& SparseBoolMatrix::insert (const - SparseBoolMatrix&, const Array&)): ditto. - * CSparse.h (SparseComplexMatrix& SparseComplexMatrix::insert (const - SparseMatrix&, const Array&), - SparseComplexMatrix& SparseComplexMatrix::insert (const - SparseComplexMatrix&, const Array&)): ditto. - (SparseComplexMatrix (const dim_vector&, octave_idx_type)): ditto. - * CSparse.cc (SparseComplexMatrix& SparseComplexMatrix::insert (const - SparseMatrix&, const Array&), - SparseComplexMatrix& SparseComplexMatrix::insert (const - SparseComplexMatrix&, const Array&)): ditto. - - 2007-08-19 David Bateman - - * Sparse.cc (Sparse::permute): Avoid shadowing warning. - - 2007-08-14 John W. Eaton - - * Sparse.cc (Sparse::permute): permutation vector is zero based. - Simplify. - (Sparse::reshape): Warn about reshaping to N-d array. - - 2007-08-10 Michael Goffioul - - * file-stat.cc (file_stat::update_internal) [__WIN32__]: - Remove trailing dir separator when stat'ing directory except for - root directory. - - 2007-07-25 David Bateman - - * Makefile.in: Adjust DISTFILES to allow out of tree "make dist" - to work. - - 2007-06-04 David Bateman - - * oct-inttypes.h (octave_int& operator <<= (const T2&), - octave_int& operator >>= (const T2&)): Make shift operators - perform a twos complement arithmetic shift for both signed and - unsigned integers regardless of compiler implementations. - - 2007-06-13 Michael Goffioul - - * SparseCmplxQR.cc (OCTAVE_C99_ZERO): For CXSparse 2.2 and greater - use cs_complex_t(0,0) for the complex zero. - - * MArray-ch.cc, MArray-d.cc, MArray-i.cc, MArray-s.cc: - Sprinkle class instantiations with OCTAVE_API as needed. - - * Array.h (INSTANTIATE_ARRAY_ASSIGN, INSTANTIATE_ARRAY, - INSTANTIATE_ARRAY_AND_ASSIGN): New arg, API. Change all uses. - * MArray-defs.h (MARRAY_OP_ASSIGN_DECL, MARRAY_OP_ASSIGN_DECLS, - MARRAY_OP_ASSIGN_FWD_DECLS, MARRAY_OP_ASSIGN_FRIENDS, - MARRAY_OP_ASSIGN_DEFS, MARRAY_UNOP, MARRAY_UNOP_DECLS, - MARRAY_UNOP_FWD_DECLS, MARRAY_UNOP_FRIENDS, MARRAY_UNOP_DEFS, - MARRAY_BINOP_DECL, MARRAY_BINOP_DECLS, MARRAY_AA_BINOP_DECLS, - MDIAGARRAY2_DAS_BINOP_DECLS, MDIAGARRAY2_SDA_BINOP_DECLS, - MDIAGARRAY2_DADA_BINOP_DECLS, MARRAY_BINOP_FWD_DECLS, - MDIAGARRAY2_BINOP_FWD_DECLS, MARRAY_BINOP_FRIENDS, - MDIAGARRAY2_BINOP_FRIENDS, MARRAY_BINOP_DEFS, - MDIAGARRAY2_BINOP_DEFS, MARRAY_OPS_FORWARD_DECLS, - MDIAGARRAY2_OPS_FORWARD_DECLS, MARRAY_OPS_FRIEND_DECLS, - MDIAGARRAY2_OPS_FRIEND_DECLS, INSTANTIATE_MARRAY_FRIENDS, - INSTANTIATE_MARRAY2_FRIENDS, INSTANTIATE_MARRAYN_FRIENDS, - INSTANTIATE_MDIAGARRAY2_FRIENDS): Ditto. - * MSparse-defs.h (SPARSE_OP_ASSIGN_DECL, SPARSE_OP_ASSIGN_DECLS, - SPARSE_OP_ASSIGN_FWD_DECLS, SPARSE_OP_ASSIGN_FRIENDS, - SPARSE_OP_ASSIGN_DEFS, SPARSE_UNOP, SPARSE_UNOP_DECLS, - SPARSE_UNOP_FWD_DECLS, SPARSE_UNOP_FRIENDS, SPARSE_UNOP_DEFS, - SPARSE_BINOP_DECL, SPARSE_BINOP_DECLS, SPARSE_AA_BINOP_DECLS, - SPARSE_BINOP_FWD_DECLS, SPARSE_BINOP_FRIENDS, SPARSE_BINOP_DEFS, - SPARSE_OPS_FORWARD_DECLS, SPARSE_OPS_FRIEND_DECLS, - INSTANTIATE_SPARSE_FRIENDS): Ditto. - * Sparse-op-defs.h (SPARSE_BIN_OP_DECL, SPARSE_CMP_OP_DECL, - SPARSE_BOOL_OP_DECL, SPARSE_SMS_BIN_OP_DECLS, - SPARSE_SMS_CMP_OP_DECLS, SPARSE_SMS_EQNE_OP_DECLS, - SPARSE_SMS_BOOL_OP_DECLS, SPARSE_SSM_BIN_OP_DECLS, - SPARSE_SMS_OP_DECLS, SPARSE_SSM_BIN_OP_DECLS, - SPARSE_SSM_CMP_OP_DECLS, SPARSE_SSM_EQNE_OP_DECLS, - SPARSE_SSM_BOOL_OP_DECLS, SPARSE_SSM_OP_DECLS, - SPARSE_SMSM_BIN_OP_DECLS, SPARSE_SMSM_CMP_OP_DECLS, - SPARSE_SMSM_EQNE_OP_DECLS, SPARSE_SMSM_BOOL_OP_DECLS, - SPARSE_SMSM_OP_DECLS, SPARSE_MSM_BIN_OP_DECLS, - SPARSE_MSM_CMP_OP_DECLS, SPARSE_MSM_EQNE_OP_DECLS, - SPARSE_MSM_BOOL_OP_DECLS, SPARSE_MSM_OP_DECLS, - SPARSE_SMM_BIN_OP_DECLS, SPARSE_SMM_CMP_OP_DECLS, - SPARSE_SMM_EQNE_OP_DECLS, SPARSE_SMM_BOOL_OP_DECLS, - SPARSE_SMM_OP_DECLS): Ditto. - * Sparse.h (INSTANTIATE_SPARSE_ASSIGN, INSTANTIATE_SPARSE, - INSTANTIATE_SPARSE_AND_ASSIGN): Ditto. - * mx-op-defs.h (BIN_OP_DECL, CMP_OP_DECL, NDCMP_OP_DECL, - BOOL_OP_DECL, NDBOOL_OP_DECL, VS_BIN_OP_DECLS, VS_OP_DECLS, - SV_BIN_OP_DECLS, SV_OP_DECLS, VV_BIN_OP_DECLS, VV_OP_DECLS, - MS_BIN_OP_DECLS, MS_CMP_OP_DECLS, MS_BOOL_OP_DECLS, MS_OP_DECLS, - SM_BIN_OP_DECLS, SM_CMP_OP_DECLS, SM_BOOL_OP_DECLS, SM_OP_DECLS, - MM_BIN_OP_DECLS, MM_CMP_OP_DECLS, MM_BOOL_OP_DECLS, MM_OP_DECLS, - NDS_BIN_OP_DECLS, NDS_CMP_OP_DECLS, NDS_BOOL_OP_DECLS, - NDS_OP_DECLS, SND_BIN_OP_DECLS, SND_CMP_OP_DECLS, - SND_BOOL_OP_DECLS, SND_OP_DECLS, NDND_BIN_OP_DECLS, - NDND_CMP_OP_DECLS, NDND_BOOL_OP_DECLS, NDND_OP_DECLS, - SDM_BIN_OP_DECLS, SDM_OP_DECLS, DMS_BIN_OP_DECLS, DMS_OP_DECLS, - MDM_BIN_OP_DECLS, MDM_OP_DECLS, DMM_BIN_OP_DECLS, DMM_OP_DECLS, - DMDM_BIN_OP_DECLS, DMDM_OP_DECLS): Ditto. - - 2007-06-12 John W. Eaton - - * dMatrix.cc (Matrix::expm): Special case for scalar arg. - * CMatrix.cc (ComplexMatrix::expm): Likewise. - - 2007-06-06 Michael Goffioul - - * file-ops.cc (tilde_find_suffix, isolate_tilde_prefix, - tilde_expand_word): Use file_ops::is_dir_sep instead of comparing - with file_ops::dir_sep_char. - - * MArray-C.cc: Sprinkle with OCTINTERP_API as needed. - - 2007-06-04 David Bateman - - * file-ops.cc: Typo. - - * Sparse.cc (Sparse Sparse::reshape): If length of new - dimensions is greater than 2, collapse to 2-D. - - 2007-06-02 David Bateman - - * SparseCmplxQR.cc: Changes to support CXSparse 2.2.0. - - 2007-05-31 John W. Eaton - - * Array.cc (Array::get_size): Throw std::bad_alloc exception if - the computed size is too large for the size of Octave's index type. - - 2007-05-23 John W. Eaton - - * oct-sparse.h: Don't surround included files with extern "C" { ... }. - - 2007-05-16 David Bateman - - * dRowVector.cc (linspace): Return second argument if fewer than - two values are requested. - * CRowVector.cc (linspace): Likewise. - - 2007-04-27 John W. Eaton - - * lo-mappers.cc (signum (const Complex&)): Special case for (0, 0). - - 2007-04-25 John W. Eaton - - * oct-fftw.h (octave_fftw): Tag with OCTAVE_API. - - 2007-04-20 John W. Eaton - - * Array.cc (assign1): For x(:) = RHS, require rhs_len == lhs_len, - not rhs_len == 1. - - 2007-04-18 Michael Goffioul - - * oct-md5.h (oct_md5, oct_md5_file): Tag decls with OCTAVE_API. - - 2007-04-13 John W. Eaton - - * Array.cc (Array::maybe_delete_elements_2): Don't return early - for empty matrix. Only check for colon index equivalence if not empty. - - 2007-04-10 John W. Eaton - - * SparseCmplxQR.cc - (SparseComplexQR::SparseComplexQR_rep::SparseComplexQR_rep): - Move GCC_ATTR_UNUSED before the parameter decl. - From Luis Ortiz . - - 2007-04-06 John W. Eaton - - * MArray-defs.h (MARRAY_NORM_BODY): New macro. - * MArray.h (MArray::norm): New function. - * MArray.cc: Provide decl. - * MArray-d.cc (MArray::norm): Define double specialization. - * MArray-C.cc (MArray::norm): Define Complex specialization. - - 2007-04-04 John W. Eaton - - * Range.cc (Range::nelem_internal): Likewise. - * lo-utils.cc (NINT): Use numeric_limits instead of INT_MAX. - (NINTbig): Use numeric_limits instead of INT_MAX. - From Scott Pakin . - - 2007-04-04 David Bateman - - * dMatrix.cc (Matrix::inverse): If calc_cond is true, calculate - the condition number for positive definite matrices. - * CMatrix.cc (ComplexMatrix::inverse): Ditto. - * dbleChol.h (CHOL(const Matrix&, bool)): New arg, calc_cond. - (CHOL(const Matrix&, octave_idx_type&, bool): Ditto. - (octave_idx_type init (const Matrix&, bool)): Ditto. - (CHOL(const CHOL&)): Copy xrcond. - (CHOL& operator = (const CHOL&)): Copy xrcond. - (xrcond): New private data member. - * CmplxCHOL.h (ComplexCHOL(const ComplexMatrix&, bool)): New arg, - calc_cond. - (ComplexCHOL(const ComplexMatrix&, octave_idx_type&, bool): Ditto - (octave_idx_type init (const ComplexMatrix&, bool)): Ditto. - (ComplexCHOL(const ComplexCHOL&)): Copy xrcond. - (ComplexCHOL& operator = (const ComplexCHOL&)): Copy xrcond. - (xrcond): New private data member. - * dbleCHOL.cc (CHOL::init(const Matrix&, bool)): If calc_cond is - true, calculate the condition number with dpocon. - * CmplxCHOL.cc (ComplexCHOL::init(const ComplexMatrix&, bool)): If - calc_cond is true, calculate the condition number with zpocon. - - 2007-04-03 John W. Eaton - - * intNDArray.cc (intNDArray): Delete spurious semicolon. - - * CMatrix.cc (ComplexMatrix::tinverse): Use Array and - fortran_vec method instead of OCTAVE_LOCAL_BUFFER to avoid - "maybe clobbered by vfork" warning. - - * Sparse-op-defs.h (SPARSE_CUMSUM): Add braces to avoid ambiguous - if/else. - - * oct-spparms.h (octave_sparse_params): Define copy constructor - and destructor. - - * Array.cc (assignN): Don't resize dimension if corresponding - index is empty. - - 2007-04-02 John W. Eaton - - * dMatrix.h (Matrix::inverse): Reinstate versions without - MatrixType argument. - * CMatrix.h (ComplexMatrix::inverse): Likewise. - - 2007-03-27 John W. Eaton - - * Makefile.in (DISTDIRS): Delete variable. - (dist): Delete action for DISTDIRS. Use ln instead of $(LN_S). - - 2007-03-26 David Bateman - - * MatrixType.cc: Replace all uses of the method - octave_sparse_params::get_key ("bandden") with - octave_sparse_params::get_bandden (void). - (MatrixType::MatrixType (void)): Undo previous change but use - octave_sparse_params::get_bandden (void). - * oct-spparms.cc (get_bandden(void), do_get_bandden(void)): New - methods. - * oct-spparms.h (get_bandden(void), do_get_bandden(void)): - Declare them. - - 2007-03-26 Luis Ortiz - David Bateman - - * idx-vector.h.cc (IDX_VEC_REP::idx_vector_rep (const Range&)): - Check that all elements are ints before doing anything. Simplify - calculation of index values. - - 2007-03-26 David Bateman - - * Range.cc (Range::all_elements_are_ints): Improve check. - - 2007-03-26 John W. Eaton - - * chNDArray.cc, chMatrix.cc: Also generate comparison and bool ops. - * chNDArray.h, chMatrix.h: Provide decls. - - 2007-03-24 Luis Ortiz - - * MatrixType.cc (MatrixType::MatrixType (void)): Initialize - sp_bandden to zero for performance reasons as it's not used. - - 2007-03-23 David Bateman - - * oct-rand.cc (octave_rand::seed): Seed differently for big and - little endian. - - 2007-03-15 John W. Eaton - - * lo-mappers.cc (acos): Use formula similar to what we use for asin. - From Alexander Barth . - - 2007-03-12 John W. Eaton - - * oct-inttypes.h (octave_int::octave_int (double)): - New Specialization. Round arg. - (operator / (const octave_int&, const octave_int&)): - Round result before converting type. - - 2007-03-07 John W. Eaton - - * Array.cc (assign1): Avoid resizing if there is an error. - - * dMatrix.cc, CMatrix.cc (operator *): Only check - f77_exception_encountered immediately after calls that use F77_XFCN. - - * Array.cc (assign1 (Array&, const Array&, const LT&)): - Only allow resizing empty LHS if it is 0x0. - - * Array.cc (Array::maybe_delete_elements (Array&, - const T&)): Handle case of more indices than dimensions. - (assign (Array&, const Array&, const LT&)): Allow more - cases to be handled by assignN. - (assignN (Array&, const Array&, const LT&)): - Special cases for 2-d array assignments for speed. - Improve handling of scalar RHS and empty indices. - - 2007-03-05 David Bateman - - * oct-md5.c (oct_md5_file (const std::string&)): New function. - * oct-md5.h (oct_md5_file (const std::string&)): Declare it. - - 2007-03-02 John W. Eaton - - * str-vec.h (string_vector::empty): Return bool, not int. - - 2007-03-01 David Bateman - - * md5.h, md5.c: New files from libmd5-rfc sourceforge project for - an independent implementation of RFC1321. - * oct-md5.h, oct-md5: New files for treating std::string class - with MD5. - * Makefile.in (INCLUDES): Add md5.h and oct-md5.h - (LIBOCTAVE_CXX_SOURCES): Add oct-md5.cc - (LIBOCTAVE_C_SOURCES): Add md5.c - - 2007-02-27 John W. Eaton - - * Makefile.in (uninstall): Delete files listed in - $(INCLUDES_FOR_INSTALL), instead of $(INCLUDES). - From Thomas Treichl . - - 2007-02-27 Michael Goffioul - - * file-ops.cc (file_ops::recursive_rmdir): - Close dir_entry object before calling rmdir. - - 2007-02-26 Michael Goffioul - - * Makefile.in: Use $(LN_S) instead of ln or ln -s. - - * sparse-util.h (SparseCholPrint, SparseCholError): - Tag with OCTAVE_API. - - 2007-02-18 David Bateman - - * oct-rand.cc (do_old_initialization()): call setcgn(1) prior to - calling setall and reset to the current generator after. - - 2007-02-16 John W. Eaton - - * oct-shlib.h (octave_shlib::relative): New data member. - (octave_shlib::mark_relative, octave_shlib::is_relative): - New functions. - - 2007-02-16 Michael Goffioul - - * lo-sysdep.cc (octave_popen2): New function to simulate popen2 on - windows platform. - * lo-sysdep.h (octave_popen2): Declare it. - * oct-syscalls.cc (octave_syscalls::popen2): New function. - * oct-syscalls.h (octave_syscalls::popen2): Declare it. - - 2007-02-14 John W. Eaton - - * kpse.cc (expand_elt): Omit special treatment for //. - - 2007-02-06 John W. Eaton - - * file-ops.cc (file_ops::canonicalize_file_name) [HAVE_REALPATH]: - Don't delete value returned from realpath. - - 2007-02-05 Thomas Treichl - - * file-ops.cc (file_ops::canonicalize_file_name): - Provide implementation if realpath function is available. - - 2007-01-29 Michael Goffioul - - * oct-fftw.h: Sprinkle with OCTAVE_API as needed. - - 2007-01-17 Michael Goffioul - - * lo-sysdep.cc (octave_chdir): Handle directory names like "C:" on - Windows systems. - - 2007-01-16 John W. Eaton - - * dSparse.cc: Fix dgbtrf decl for --enable-64. - (SparseMatrix::bsolve): Fix call to dgbtrf for --enable-64 - - * oct-fftw.h (fftw_planner): Provide decl. - - 2007-01-11 Michael Goffioul - - * Makefile.in (LINK_DEPS): Include $(CAMD_LIBS) in the list. - - 2007-01-10 John W. Eaton - - * oct-sparse.h: Use HAVE_CHOLMOD_CHOLMOD_H, not - HAVE_UMFPACK_CHOLMOD_H for case of "cholmod/cholmod.h". - - 2007-01-08 David Bateman - - * oct-sparse.h: Replace sparsesuite with suitesparse and - SPARSESUITE with SUITESPARSE to match upstream name. - - 2007-01-05 David Bateman - - * oct-fftw.cc: (octave_fftw_planner::method (void), - octave_fftw_planner (FftwMethod)): New methods to interrogate and - set the FFTW wisdom method used. - (octave_fftw_planner::create_plan) Modify to allow different - methods to be used. - (octave_fftw_planner): Move class definition from here. - * oct-fftw.h (octave_fftw_planner): To here. Add method methods - and FftwMethod enum. - - 2007-01-03 David Bateman - - * MSparse.cc (SPARSE_A2A2_OP, SPARSE_A2A2_FCN_1, - SPARSE_A2A2_FCN_1): Modify macros so that scalars stored as - sparse matrices are special cased. - - * Sparse-op-defs.h: Include mx-ops.h to have access to mixed - matrix, sparse matrix operations. - (SPARSE_SMSM_BIN_OP_1, SPARSE_SMSM_BIN_OP_2, SPARSE_SMSM_BIN_OP_3, - SPARSE_SMSM_CMP_OP, SPARSE_SMSM_BOOL_OP, SPARSE_MSM_BIN_OP_1, - SPARSE_MSM_BIN_OP_2, SPARSE_MSM_CMP_OP, SPARSE_MSM_BOOL_OP, - SPARSE_SMM_BIN_OP_1, SPARSE_SMM_BIN_OP_2, SPARSE_SMM_CMP_OP, - SPARSE_SMM_BOOL_OP, SPARSE_SPARSE_MUL, SPARSE_FULL_MUL, - FULL_SPARSE_MUL): Modify macros so that scalars stored as - sparse matrices are special cased. - - 2006-12-22 David Bateman - - * boolSparse.cc (SparseBoolMatrix::operator !): Fix off-by-one error. - - 2006-12-22 John W. Eaton - - * dim-vector.h (dim_vector::dim_vector): Always start with at - least 2 dimensions. - (dim_vector::resize): Don't allow resizing to fewer than 2 dimensions. - - 2006-12-06 Michael Goffioul - - * lo-sysdep.cc (opendir): Avoid passing \\* to FindFirstFile. - - * file-ops.cc (ops::canonicalize_file_name): Provide partial - implementation for Windows. - - 2006-12-06 David Bateman - - * dSparse.cc (SparseMatrix::is_symmetric): Faster implementation. - * CSparse.cc (SparseComplexMatrix::is_symmetric): Ditto. - - * dMatrrix.cc (finverse): Old inverse method renamed inverse. - (tinverse): New method for triangular matrices. - (inverse): New function with matrix type probing. - * dMatrix.h (finverse, tinverse, inverse): New and modified - declarations. - * CMatrix.cc: Ditto. - * CMatrix.h: Ditto. - - 2006-12-06 John W. Eaton - - * strptime.c (day_of_the_week): Use code from current glibc sources. - - 2006-12-05 John W. Eaton - - * lo-utils.cc (octave_read_double): If we see '+' or '-' but not - followed by 'I' or 'i', try reading number after putting - characters back on input stream. - - 2006-12-05 Paul Kienzle - - * randpoisson.c (oct_fill_randp): For lambda > 1e8, upper limit of - loop is n, not L. - - 2006-11-30 John W. Eaton - - * lo-utils.cc (octave_read_double, read_inf_nan_na): - Also recognize [+-][Ii]nf. - - 2006-11-28 David Bateman - - * oct-sparse.h: Allow sparse headers to also be in a sparsesuite - sub-directory. - - * dSparse.cc (SparseMatrix::inverse): Transpose the matrix type as - well when calling tinverse for lower triangular matrices. - * CSparse.cc (SparseComplexMatrix::inverse): - Ditto. - - 2006-11-21 John W. Eaton - - * oct-env.cc (do_absolute_pathname): Undo previous change. - - 2006-11-20 John W. Eaton - - * oct-env.cc (octave_env::do_absolute_pathname): Also return true - for ".", and names beginning with "./" or "../". - - 2006-11-14 Luis F. Ortiz - - * CMatrix.cc, dMatrix.cc: New tests. - - 2006-11-13 Michael Goffioul - - * Array-d.cc, dDiagMatrix.h: Sprinkle with OCTAVE_API as needed. - - 2006-11-11 John W. Eaton - - * Makefile.in ($(OPTS_INC), mx-ops.h): - Use $(simple-move-if-change-rule) here. - - 2006-11-09 David Bateman - - * sparse-base-chol.cc (sparse_base_chol_rep::Q): Cast perms(i) to - octave_idx_type, not int. - - 2006-11-08 John W. Eaton - - * dir-ops.cc (dir_entry::read): Avoid rewinddir. - - 2006-11-06 John W. Eaton - - * Array.cc (assignN): Exit early if invalid indices are found. - - 2006-11-03 Michael Goffioul - - * strftime.c [HAVE_TZNAME]: Tag tzname with OCTAVE_IMPORT. - - 2006-11-03 John W. Eaton - - * Makefile.in (DLL_CXXDEFS): Rename from XTRA_CXXDEFS. - (DLL_CDEFS): Rename from XTRA_CDEFS. - Substitute OCTAVE_DLL_DEFS, not XTRA_OCTAVE_DEFS. - - 2006-10-28 Michael Goffioul - - * oct-shlib.cc: Undefine min and max after including windows.h. - * oct-syscalls.cc (syscalls::pipe (int *)): Avoid infinite recursion. - * lo-sysdep.h: Move opendir, readdir, etc. decls here from - lo-sysdep.cc. - - 2006-10-27 John W. Eaton - - * oct-time.cc [! HAVE_STRFTIME]: Declare strftime. - - 2006-10-26 Michael Goffioul - - * mx-op-defs.h (NDS_CMP_OP1, NDS_CMP_OPS1, NDS_CMP_OP2, - NDS_CMP_OPS2): New macros. - - 2006-10-26 John W. Eaton - - * mx-ops (core-type): New field for integer types. - * mk-ops.awk: Handle core-type for integer comparison ops. - - * lo-cutils.c (octave_strcasecmp, octave-strncasecmp): - Move here from src/cutils.c. - * lo-utils.h: Provide decls. - * strcasecmp.c: Move here from src/strcasecmp.c. - * strncase.c: Move here from src/strncase.c. - * Makefile.in (LIBOCTAVE_C_SOURCES): Add them to the list. - - 2006-10-26 Michael Goffioul - - * kpse.cc [! MSVC]: Don't include win32lib.h. - - * Array-C.cc, Array-b.cc, Array-ch.cc, Array-i.cc, Array-util.h, - Array.h, CColVector.h, CMatrix.h, CNDArray.h, CRowVector.h, - CSparse.h, CmplxAEPBAL.h, CmplxCHOL.h, CmplxDET.h, CmplxHESS.h, - CmplxLU.h, CmplxQR.h, CmplxQRP.h, CmplxSCHUR.h, CmplxSVD.h, - CollocWt.h, DAE.h, DASPK.h, DASRT.h, DASSL.h, EIG.h, LSODE.h, - MArray-C.cc, MArray-defs.h, MSparse-C.cc, MSparse-d.cc, - MSparse-defs.h, MatrixType.h, NLEqn.h, Quad.h, Range.h, - Sparse-op-defs.h, Sparse.h, SparseCmplxCHOL.h, SparseCmplxLU.h, - SparseCmplxQR.h, SparseQR.h, SparsedbleCHOL.h, SparsedbleLU.h, - boolMatrix.h, boolNDArray.h, boolSparse.h, chMatrix.h, - chNDArray.h, cmd-edit.h, cmd-hist.h, dColVector.h, dDiagMatrix.h, - dMatrix.h, dNDArray.h, dRowVector.h, dSparse.h, data-conv.h, - dbleAEPBAL.h, dbleCHOL.h, dbleDET.h, dbleHESS.h, dbleLU.h, - dbleQR.h, dbleQRP.h, dbleSCHUR.h, dbleSVD.h, dir-ops.h, - file-ops.h, file-stat.h, glob-match.h, idx-vector.h, - int16NDArray.cc, int32NDArray.cc, int64NDArray.cc, int8NDArray.cc, - lo-cutils.c, lo-ieee.h, lo-mappers.h, lo-specfun.h, lo-utils.h, - mach-info.h, mx-op-defs.h, oct-alloc.h, oct-env.h, oct-group.h, - oct-inttypes.cc, oct-inttypes.h, oct-passwd.h, oct-rand.h, - oct-shlib.h, oct-spparms.h, oct-syscalls.h, oct-time.h, - oct-uname.h, pathsearch.h, prog-args.h, so-array.h, str-vec.h, - uint16NDArray.cc, uint32NDArray.cc, uint64NDArray.cc, - uint8NDArray.cc: Sprinkle with OCTAVE_API as needed. - - 2006-10-26 John W. Eaton - - * oct-inttypes.cc (INSTANTIATE_INTTYPE_BIN_OP): Provide explicit - type qualification for OP. - - 2006-10-26 David Bateman - - * Sparse.cc (Sparse::resize_no_fill (octave_idx_type, - octave_idx_type)): Be more careful with the size of the input - matrix, and therefore don't create or read non existent data. - - 2006-10-25 John W. Eaton - - * Sparse.cc (assign): Clear lhs index after error. - - 2006-10-25 David Bateman - - * Sparse.cc (assign (Sparse&, const Sparse&)): - Fix previous patch so it works. - - 2006-10-25 Michael Goffioul - - * glob-match.h (glob_match::glob_match (const std::string&, - unsigned int)): Delete initializer for first arg. - - * lo-sysdep.cc (opendir, readdir, rewinddir, closedir): - New functions. - - * Makefile.in (XTRA_CDEFS, XTRA_CXXDEFS): Substitute here. - - * oct-env.cc (octave_env::do_get_home_directory) [_MSC_VER]: Use - same code as __MINGW32__. - * syswait.h [_MSC_VER]: Define HAVE_WAITPID, WAITPID, and WNOHANG - the same as for __MINGW32__. - - * randpoisson.c: Undefine INFINITE before redefining. - - 2006-10-24 David Bateman - - * Sparse.cc (assign (Sparse&, const Sparse&)): Resize the - lhs at the point we know the assignment can succeed if the lhs is - empty. - - 2006-10-23 John W. Eaton - - * Array.cc (assign2): Don't require vector assignments to be oriented. - - 2006-10-17 John W. Eaton - - * lo-cieee.c: If isnan is not available but _isnan is, then define - isnan to be _isnan, and define HAVE_ISNAN. Likewise for _finite - and _copysign. - - 2006-10-17 Michael Goffioul - - * oct-syscalls.cc (syscalls::waitpid): Always declare and define retval. - - * CMatrix.cc (ComplexMatrix::solve): Avoid infinite recursion. - * CSparse.cc (SparseComplexMatrix::insert): Likewise. - - * oct-types.h.in: Include limits.h, for CHAR_BIT. - - 2006-10-13 Michael Goffioul - - * Makefile.in: Adapt rules to use $(LIBPRE). - - 2006-10-03 David Bateman - - * MatrixType.cc (MatrixType::MatrixType): Avoid crash if np == 0 - or p == 0. - - 2006-10-02 John W. Eaton - - * dbleDET.cc (DET::initialize2): Ensure arg to log10 is double. - * CmplxDET.cc (ComplexDET::initialize2): Likewise. - - 2006-09-22 David Bateman - - * MatrixType.h (MatrixType::MatrixType(const SparseComplexMatrix&)): - Remove spurious warning. - - 2006-09-15 John W. Eaton - - * Array.cc (Array::index (Array&, int, const T&) const): - Handle resizing. - - * intNDArray.h (intNDArray:elt_type): New typedef. - - 2006-09-11 John W. Eaton - - * dMatrix.cc (operator * (const Matrix&, const Matrix&))): - Handle M*v and rv*cv special cases. - * CMatrix.cc (operator * (const ComplexMatrix&, const - ComplexMatrix&))): Likewise. - From Luis F. Ortiz . - - * dRowVector.cc (operator * (const RowVector&, const - ColumnVector&)): Call xddot here instead of using a Fortran - function directly. - * CRowVector.cc (operator * (const ComplexRowVector&, const - ComplexColumnVector&)): Call xzdotu here. - - 2006-09-05 John W. Eaton - - * chNDArray.cc (charNDArray::any, charNDArray::all): Compare - elements to '\0', not ' '. - - 2006-08-25 John W. Eaton - - * mx-inlines.cc (MX_ND_REDUCTION): Special case for 0x0 arrays. - - 2006-08-23 John W. Eaton - - * dMatrix.cc, dMatrix.h (Matrix::save_ascii): Delete function and decl. - * CMatrix.cc, CMatrix.h (ComplexMatrix::save_ascii): Likewise. - - 2006-08-22 John W. Eaton - - * CMatrix.cc (ComplexMatrix::save_ascii): New function. - * dMatrix.cc (Matrix::save_ascii): New function. - - * mx-inlines.cc (MX_ND_CUMULATIVE_OP): Correctly detect empty arrays. - If array is empty, return value is same size as array. - (MX_ND_REDUCTION): Correctly detect empty arrays. - If array is empty, produce correctly sized return value. - - 2006-08-18 John W. Eaton - - * dMatrix.cc (Matrix::any_element_not_one_or_zero): New function. - * dMatrix.h: Provide decl. - * dNDArray.cc (NDArray::any_element_not_one_or_zero): New function. - * dNDArray.h: Provide decl. - * intNDArray.cc (intNDArray::any_element_not_one_or_zero): - New function. - * intNDArray.h: Provide decl. - - * Array.cc (Array::permute): Only rearrange values if array is - not empty. - - 2006-07-26 John W. Eaton - - * dbleDET.cc (DET::initialize10, DET::value_will_underflow, - DET::value_will_overflow): Use xlog2 instead of log2. - (DET::initialize2, DET::initialize10): Use xround instead of round. - (DET::initialize2, DET::value): Use xexp2 instead of exp2. - * CmplxDET.cc (ComplexDET::initialize10, - ComplexDET::value_will_underflow, - ComplexDET::value_will_overflow): Use xlog2 instead of log2. - (ComplexDET::initialize2, ComplexDET::initialize10): - Use xround instead of round. - (ComplexDET::initialize2, ComplexDET::value): - Use xexp2 instead of exp2. - - * lo-mappers.cc (M_LOG10E): Delete unused macro. - (xlog2, xexp2): New functions. - * lo-mappers.h: Provide decls. - - 2006-07-22 John W. Eaton - - * Sparse.h (Sparse::mex_get_data, Sparse::mex_get_ir, - Sparse::mex_get_jc): New functions. - - 2006-07-21 John W. Eaton - - * oct-inttypes.h (octave_int::mex_get_data): New function. - * Array.h (Array::mex_get_data): New function. - - 2006-07-19 John W. Eaton - - * oct-inttypes.h (octave_int::operator bool (void)): New function. - - 2006-07-16 John W. Eaton - - * oct-spparms.h, oct-spparms.cc (class octave_sparse_params): - Rename from SparseParams. Use same implementation method as other - singleton classes in Octave. Change all uses of - Voctave_sparse_controls to use static functions from - octave_sparse_params class instead. - - * oct-spparms.h, oct-spparms.cc (SparseParams::set_key, - SparseParams::get_key): Pass std::string arg by const reference, - not const value. - - 2006-07-15 John W. Eaton - - * data-conv.cc: Instantiante swap_bytes templates here. - - * MatrixType.cc (MatrixType::MatrixType): - Use complete initializer lists in constructors. - - 2006-07-06 John W. Eaton - - * str-vec.cc (string_vector::string_vector (std::list&)): - New constructor. - * str-vec.h: Provide decl. - - 2006-07-01 David Bateman - - * dSparse.cc (tinverse): Check for rows with no elements and zero - elements on the diagonal. Allow both Upper and Lower triangular - matrices to be treated. - * CSparse.cc (tinverse): ditto. - * Sparse-op-defs.h (SPARSE_SPARSE_MUL): Take into account 64-bit - constant assignment. - - 2006-06-30 John W. Eaton - - * lo-sysdep.cc (octave_chdir): Perform tilde expansion here. - * cmd-edit.cc (editor::read_init_file): Ditto. - * dir-ops.cc (dir_entry::open): Ditto. - * file-stat.cc (stat::update_internal): Ditto. - * cmd-hist.cc (command_history::set_file): Ditto. - - * data-conv.cc (data_conv::string_to_data_type): - Correctly handle leading "*". - - 2006-06-29 Atsushi Kajita - - * Sparse.cc (Sparse::SparseRep::elem): Avoid out of bounds - array access. - - 2006-06-27 John W. Eaton - - * Makefile.in: Finish renaming of OBJECTS -> LIBOCTAVE_OBJECTS. - - 2006-06-21 John W. Eaton - - * oct-shlib.cc (octave_dlopen_shlib::close, - octave_shl_load_shlib::close, octave_w32_shlib::close): - Skip do_close_hook if cl_hook is 0. - - 2006-06-16 John W. Eaton - - * oct-sort.h: Don't include config.h, lo-mappers.h, or quit.h. - * randmtzig.h: Don't inlcude config.h. - - 2006-05-31 David Bateman - - * Array.cc (assignN): Maybe reshape LHS before doing assignment. - - 2006-05-23 John W. Eaton - - * oct-types.h.in: Include stdint.h or inttypes.h for integer - typedefs, or define them if those files are not available. - * oct-inttypes.h (octave_int8_t, octave_int16_t, octave_int32_t, - octave_int64_t, octave_uint8_t, octave_uint16_t, octave_uint32_t, - octave_uint64_t): Delete typedefs. Replace all uses of these - types with int8_t, int16_t, etc. - * data-conv.h (TWO_BYTE_INT, FOUR_BYTE_INT, EIGHT_BYTE_INT): - Delete definitions. Replace all uses of these macros with int8_t, - int16_t, etc. - * randmtzig.h: Delete integer typedefs. - - 2006-05-18 John W. Eaton - - * EIG.cc (EIG::init): Trap Inf and NaN values here. - From Keith Goodman . - - 2006-05-08 David Bateman - - * Sparse-op-defs.h (SPARSE_SPARSE_MUL): fix bug in previous - modification. - - 2006-05-09 David Bateman - - * sparse-dmsolve.cc: Remove reference to ov-re-sparse.h, - ov-cx-sparse. and error_state. - * SparseQR.cc, SparseCmplxQR.cc (qrsolve): Return info = -1 on error. - - 2006-05-08 David Bateman - - * Sparse-op-defs.h (SPARSE_SPARSE_MUL): Set column pointers in - first pass and use to determine which algorithm to use on a - column-by-column basis. - - 2006-05-04 David Bateman - - * SparseQR.cc, SparseQR.h, SparseCmplxQR.cc, SparseCmplxQR.h, - sparse-dmsolve.cc : Allow compilation with versions v2.0.0 of - CXSparse or later - - 2006-05-03 David Bateman - - * CMatrix.cc (zpotrf, zpocon, zpotrs, ztrcon, ztrtrs): - External declaration of lapack triangular and Cholesky codes. - (ComplexMatrix::utsolve, ComplexMatrix::ltsolve, - ComplexMatrix::fsolve): New private solver codes for - upper, lower and LU/Cholesky solvers. - (ComplexMatrix::solve): New versions for cached matrix - type. Adapt old versions to call new versions - * CMatrix.h (utsolve, ltsolve, fsolve): Declaration of - new solvers. - (solve): New versions for cached matrix type. - * dMatrix.cc (dpotrf, dpocon, dpotrs, dtrcon, dtrtrs): - External declaration of lapack triangular and Cholesky codes. - (Matrix::utsolve, Matrix::ltsolve, - Matrix::fsolve): New private solver codes for - upper, lower and LU/Cholesky solvers. - (Matrix::solve): New versions for cached matrix - type. Adapt old versions to call new versions - * dMatrix.h (utsolve, ltsolve, fsolve): Declaration of - new solvers. - (solve): New versions for cached matrix type. - * CSparse.cc: Replace all uses of SparseType with MatrixType. - * CSparse.h: ditto. - * dSparse.cc: ditto. - * dSparse.h: ditto. - * SparseCmplxCHOL.cc: ditto. - * SparsedbleCHOL.cc: ditto. - * sparse-dmsolve.cc: ditto. - * SparseType.cc, SparseType.h: delete. - * MatrixType.cc: New file for class to cache matrix type, based on - old SparseType class but caching matrix and sparse types. - * MatrixType.h: ditto. - * Makefile.in (MATRIX_INC, MATRIX_SRC): Add MatrixType.h and - MatrixType.cc respectively. Delete SparseType.h and SparseType.cc - respectively. - * mx-base.h: Include MatrixTye.h as header file. - - 2006-05-01 John W. Eaton - - * oct-shlib.h (octave_shlib::octave_shlib, octave_shlib::open): - Delete WARN_FUTURE arg. Change all uses. - * oct-shlib.cc (octave_base_shlib::stamp_time): Delete arg. - Change all uses. Use current_liboctave_warning_with_id_handler. - (octave_base_shlib::open): Delete arg. Change all derived classes - and uses. - - 2006-04-29 John W. Eaton - - * Array-flags.cc, Array-flags.h: Delete. - * Makefile.in (MATRIX_SRC): Remove Array-flags.cc from the list. - (MATRIX_INC): Remove Array-flags.h from the list. - - * idx-vector.cc (IDX_VEC_REP::freeze): Delete warn_resize arg. - Use current_liboctave_warning_with_id_handler - with warning ID Octave:resize-on-range-error. - * idx-vector.h: Fix decl. - * Array.cc, Sparse.cc: Change all callers. - - * Array.cc (Array::maybe_delete_elements, Array::index2, - assign2, assignN): Use current_liboctave_warning_with_id_handler - with warning ID Octave:fortran-indexing instead of - liboctave_wfi_flag. - * Sparse.cc (assign, Sparse::index): Likewise. - - 2006-04-26 John W. Eaton - - * pathsearch.cc (dir_path::path_sep_char, dir_path::path_sep_str): - New static data. - * pathsearch.h: Provide decls. - (dir_path::is_path_sep): New function. - - 2006-04-18 John W. Eaton - - * randmtzig.c (randmt, randi53, randi54, randi64, randu32, randu53): - Omit inline from decl. - - * Sparse.cc (Sparse::index): Use std::vector to avoid - local array with variable dimension. - - 2006-04-16 John W. Eaton - - * lo-sstream.h: Delete. - * Makefile.in (INCLUDES): Remove it from the list. - - * dim-vector.h (dim_vector::str): Use std::ostringstream directly. - * Sparse.cc (Sparse::range_error): Likewise. - * DASSL.cc (DASSL::error_message): Likewise. - * LSODE.cc (LSODE::error_message): Likewise. - * DASRT.cc (DASRT::error_message): Likewise. - * DASPK.cc (DASPK::error_message): Likewise. - * Array.cc (Array::range_error): Likewise. - - * kpse.cc (kpse_hash): Rename from hash. - (hash_lookup): Call kpse_hash instead of hash. - - * SparseType.cc (SparseType::SparseType): Use std::vector - to avoid local array with variable dimension. - - 2006-04-13 David Bateman - - * Sparse.cc (assign (Sparse&, const Sparse&)): - Optimize assignment. - - 2006-04-13 John W. Eaton - - * Sparse.cc (assign (Sparse&, const Sparse&)): - Eliminate unnecessary casts. - * SparsedbleLU.cc (SparseLU::SparseLU): Likewise. - - * kpse.cc (fopen): Use reinterpret_cast instead of C-style cast. - (log_search, dir_links): Use static_cast instead of C-style cast. - - * prog-args.cc (args::getopt): Use reinterpret_cast instead of X_CAST. - * oct-alloc.cc (allocator::grow): Likewise. - * CSparse.cc (SparseComplexMatrix::determinant, - SparseComplexMatrix::factorize, SparseComplexMatrix::fsolve): - Likewise. - * SparseCmplxLU.cc (SparseComplexLU::SparseComplexLU): Likewise. - - * oct-sort.cc (roundupsize, octave_sort::merge_getmem): - Use static_cast instead of C-style cast. - * CSparse.cc (SparseComplexMatrix::fsolve): Likewise. - * dSparse.cc (SparseMatrix::fsolve): Likewise. - - * data-conv.cc (LS_DO_WRITE): Use static_cast for value conversion. - Use OCTAVE_LOCAL_BUFFER instead of new/delete. - (LS_DO_READ): Allocate local buffer to avoid pointer tricks. - (write_doubles, read_doubles, LS_DO_WRITE, LS_DO_READ): - Use reinterpret_cast instead of X_CAST. - - * DiagArray2.h (DiagArray2::Proxy::operator&): No need to cast - return value here. - - 2006-04-12 Rafael Laboissiere - - * ArrayN.h (ArrayN::ArrayN): Qualify fill with Array base class. - * DiagArray2.h (DiagArray2::DiagArray2): Likewise. - - 2006-04-03 David Bateman - - * Sparse.cc (Sparse::resize): Use xcidx rather than cdix, etc - to avoid copy of original matrix. - - * Makefile.in (INCLUDES): Add randgamma.h, randpoisson.h and - randmtzig.h to the list. - (LIBOCTAVE_C_SOURCES): Add randgamma.c, randpoisson.c and - randmtzig.c to the list. - * oct-rand.cc (do_old_initialization): Rename from do_initialization. - (use_old_generators): New variable. - (old_initialized): Rename from initialized. - (new_initialized): New variable. - (oct_init_by_entropy): New function. - (maybe_initialize): Initialize new or old generator depending on - value of use_old_generators. - (octave_rand::state): New functions. - (octave_rand::distribution): Add gamma, exponential and poisson - distributions. - (octave_rand::exponential_distribution, - octave_rand::poisson_distribution, - octave_rand::gamma_distribution): New methods to select - exponential, poisson or gamma distribution. - (octave_rand::scalar, octave_rand::matrix, octave_rand::nd_array, - octave_rand::vector): Add new distributions. - * oct-rand.h: Provide decls for new functions. - (octave_rand::matrix, octave_rand::scalar, octave_rand:: - (octave_rand::scalar, octave_rand::matrix, octave_rand::nd_array, - octave_rand::vector): New arg A, for gamma and poisson distributions. - * randpoisson.c, randpoisson.h, randgamma.c, randmtzig.c, - randmtzig.h: New files. - - 2006-03-24 John W. Eaton - - * dSparse.cc (SparseMatrix::bsolve): Integer work vector is - Array, so fortran_vec returns pointer to - octave_idx_type, not pointer to int. - - * CMatrix.cc, CMatrix.h (ComplexMatrix::row (char*), - ComplexMatrix::column (char*)): Delete. - * dMatrix.cc, dMatrix.h (Matrix::row (char*), - Matrix::column (char*)): Delete. - - 2006-03-21 David Bateman - - * SparseQR.h: Publish externally used friends. - * SparseCmplxQR.h: ditto. - - 2006-03-21 John W. Eaton - - * lo-specfun.cc (betainc): Use F77_XFCN instead of F77_FUNC for - call to xdbetai. - - 2006-03-21 David Bateman - - * lo-specfun.cc (xlgamma, xgamma): Trap special values. - (xlgamma): Use F77_XFCN instead of F77_FUNC for call to dlgams. - - * dSparse.cc (solve): Add argument singular_fallback, to allow - fallback to QR solvers to be optional. - * CSparse.cc (solve): Ditto. - * dSparse.h (solve): update declaration for new argument. - * CSparse.h (solve): Ditto. - * sparse-dmsolve.cc (dmsolve): Use singular_fallback argument - to bypass QR solvers when solving the well determined part of - the problem. - - 2006-03-17 John W. Eaton - - * str-vec.cc (vector::list_in_columns): New optional arg, width. - - 2006-03-16 David Bateman - - * CSparse.cc: Change use of nzmax to nnz to allow automatic - reduction of matrix size, except for a couple of cases where nzmax - is needed. - (zpbcon): Correct declaration of lapack zpbcon function. - (dsolve, utsolve, ltsolve, trisolve, bsolve, factorize, fsolve): Add - an argument to allow the calculation of condition number to be - optional. - (bsolve): Add code for the calculation of the condition number - using zpbcon and zgbcon. - (dsolve): Bug fix for rectangular matrices with sparse RHS. - (utsolve, ltsolve, trisolve, bsolve, fsolve): Mark matrix type as - singular if singularity is detected. - (solve): Use optional argument to disable calculation of - condition number for all but fsolve, for speed. Add code to - allow rectnagular matrices or matrices identified as singular - to be treated. - (lssolve): delete. - (operator *): Don't recast real matrices as complex, but - rather use the macro directly on the real data. - * dSparse.cc: ditto. - * CSparse.h (dsolve, utsolve, ltsolve, trisolve, bsolve, - fsolve, factorize): Update declaration for new argument to - calculate the condition number. - (lssolve): delete. - * dSparse.h: ditto. - * Msparse.h: Change use of nxmax to nnz to allow automatic - reduction of matrix size, except for a couple of cases where - nzmax is needed. - * Sparse.cc: Change use of nxmax to nnz to allow automatic - reduction of matrix size, except for a couple of cases where - nzmax is needed. - (Sparse::index (idx_vector&, idx_vector&, int) const): - Special case strict permutations for speed. - * Sparse-op-defs.h: Change use of nxmax to nnz to allow automatic - reduction of matrix size, except for a couple of cases where - nzmax is needed. - (SPARSE_SPARSE_MUL, SPARSE_FULL_MUL, FULL_SPARSE_MUL): Update - macros to allow mixed complex/real arguments. - * SparseCmplxQR.cc (OCTAVE_C99_ZERO): New macro for C99 zero - value. - (qrsolve): Use it to zero temporary buffers used bt CXSPARSE. - * SparseType.cc (SparseType::SparseType ()): Correct detection - of permutated triangular matrices to avoid seg-faults. Disable - detection of underdetermined lower and over-determined upper - matrix due to problems with non minimum norm solutions. - * sparse-dmsolve.cc: New file for Dulmage-Mendelsohn solver. - * Makefile.in: add sparse-dmsolve.cc to targets. - - 2006-03-15 William Poetra Yoga Hadisoeseno - - * oct-time.cc (octave_strptime::init): Return useful character count. - - 2006-03-08 David Bateman - - * SparseCmplxQR.cc: Updates for new upstream CXSPARSE release. Fix for - g++ 4.x stl_vector.h issue with C99 double _Complex type. - * SparseCmplxQR.h: Updates for new upstream CXSPARSE release. - * SparseQR.cc: ditto. - * SparseQR.h: ditto. - * oct-sparse.h: ditto. - * sparse-base-chol.cc (sparse_base_chol<>::sparse_base_chol_rep::init): - Declare info variable as volatile. - - * Sparse.cc (Sparse::transpose (void) const): Accelerate algorithm. - * CSparse.cc (SparseComplexMatrix::transpose (void) const): ditto. - - 2006-03-01 John W. Eaton - - * CMatrix.cc (ComplexMatrix::determinant): - Scale result by factors of 2, not 10. - * dMatrix.cc (Matrix::determinant): Likewise. - - * dbleDET.h (DET::DET): Use initializer list. - (DET::coefficient2, DET::coefficient10, DET::exponent2, - DET::exponent10): New functions. - (DET::det): Delete. - (DET::c2, DET::c10, DET::e2, DET::e10, DET::base2): New data members. - Store value internally with double and int instead of 2-element - double vector. - (DET::initialize2, DET::initialize10): Provide decls. - * dbleDET.cc (DET::value_will_overflow, DET::value_will_underflow): - Return bool value, not int. - (DET::initialize2, DET::initialize10): New functions. - - * CmplxDET.h (ComplexDET::ComplexDET): Use initializer list. - (ComplexDET::coefficient2, ComplexDET::coefficient10, - ComplexDET::exponent2, ComplexDET::exponent10): New functions. - (ComplexDET::det): Delete. - (ComplexDET::c2, ComplexDET::c10, ComplexDET::e2, ComplexDET::e10, - ComplexDET::base2): New data members. - Store value internally with Complex and int instead of 2-element - Complex vector. - (ComplexDET::initialize2, ComplexDET::initialize10): Provide decls. - * dbleComplexDET.cc (ComplexDET::value_will_overflow, - ComplexDET::value_will_underflow): Return bool value, not int. - (ComplexDET::initialize2, ComplexDET::initialize10): New functions. - - 2006-02-24 John W. Eaton - - * Array.cc (assignN): Clear index before reshaping. - - * Array.h (Array::operator =): Don't set idx to 0 if copying self. - - 2006-02-20 David Bateman - - * dSparse.cc (dsolve, utsolve, ltsolve): Remove restriction that - matrix must be square in diagonal, permuted diagonal, triangular - and permuted triangular back/forward substitution code. Change - ambiguous use of no. rows and columns. - * CSParse.cc (dsolve, utsolve, ltsolve): ditto. - * SparseType.cc (SparseType::SparseType(const SparseMatrix&), - SparseType::SparseType(const SparseComplexMatrix&)): Recognize - rectangular diagonal, permuted diagonal, triangular and permuted - triangular matrices. - * Sparse.cc (Sparse::Sparse (octave_idx_type, octave_idx_type, T)): - Treat case where third argument is zero. - - 2006-02-15 John W. Eaton - - * kpse.cc: Do define ST_NLINK_TRICK for Cygwin systems. - (do_subdir) [ST_NLINK_TRICK]: Check links != 2 instead of links > 2. - - * getopt.c: Use __CYGWIN__ instead of __CYGWIN32__. - - 2006-02-13 David Bateman - - * Makefile.in (LINK_DEPS): Add missing dependencies on colamd, - ccolamd and cxsparse - - 2006-02-13 John W. Eaton - - * kpse.cc (kpse_path_iterator::next): Reverse order of tests in - while loop condition. - (kpse_path_iterator::operator =): Declare as private function but - don't define to prevent attempts to use assignment operator. - Don't define ST_NLINK_TRICK for Cygwin systems. - - 2006-02-10 John W. Eaton - - * mx-inlines.cc (MX_ND_REDUCTION): Store in cummulative - product of all dimensions in CP_SZ. - - 2006-02-09 John W. Eaton - - * mx-inlines.cc (MX_ND_CUMULATIVE_OP): Store in cummulative - product of all dimensions in CP_SZ. - - 2006-02-09 David Bateman - - * SparseQR.cc: new file for real sparse QR class. - * SparseQR.h: declaration. - * SparseCmplxQR.cc: new file for complex sparse QR class. - * SparseCmplxQR.h: declaration. - * dSparse.cc (dinverse,tinverse,inverse): Remove unused input args. - (factorize, fsolve): Enable code code lssolve. - (lssolve): disable unused args, write based in above sparse QR class. - * CSparse.cc (dinverse,tinverse,inverse): Remove unused input args. - (factorize, fsolve): Enable code code lssolve. - (lssolve): disable unused args, write based in above sparse QR class. - * oct-sparse.h: fix location of colamd, ccolamd and metis headers. - Include CXSparse headers. - * Makefile.in (MATRIX_INC): Include SparseQR.h and SparseCmplxQR.h. - (MATRIX_SRC): Include SparseQR.cc and SparseCmplxQR.cc. - - 2006-02-08 John W. Eaton - - * Array-util.h (calc_permutated_idx): Delete. - * Array.cc (permute_vector): New data structure. - (permute_vector_compare): New function. - (Array::permute): Rewrite to avoid calc_permutated_index for - improved performance. - - 2006-02-04 David Bateman - - * COLAMD: Remove all files, as now unused. - - 2006-01-31 John W. Eaton - - * Sparse.h (Sparse::nzmax): New function. - (Sparse::nnz): Rename from nonzero. - Change all uses of old nnz function to be nzmax. Change all uses - of nonzero to be nnz. - (Sparse::nzmx): Rename from nnz (data member). Change all uses. - - 2006-01-21 David Bateman - - * sparse-sort.cc (bool octave_sparse_sidxl_comp): 64-bit fix. - (bool octave_idx_vector_comp): New function. - (template class octave_sort): Instantiate - indexed idx_vector sorting function. - * sparse-sort.h (class octave_sparse_sort_idxl): 64-bit fix. - (class octave_idx_vector_sort): New class for indexed idx_vector - sorting. - (bool octave_idx_vector_comp): Declaration. - * Sparse.cc (int assign1(Sparse&, Sparse&)): Treat cases of - unordered LHS indexes in assignment using new octave_idx_vector_sort - class. - (int assign(Sparse&, Sparse&)): ditto. - - 2006-01-30 John W. Eaton - - * so-array.h (streamoff_array::nnz): New funtion. - * boolNDArray.h (boolNDArray::nnz): New function. - * MArrayN.h (MArrayN::nnz): New function. - * MArray.h (MArray::nnz): New function. - - 2006-01-04 David Bateman - - * Spars-op-defs.h (SPARSE_SPARSE_MUL): Previous change resulted in - elements not being sorted in return matrix. Sort them, and make - solver select between two algorithms to further improve the - performance. - * dSparse.cc: include oct-sort.h. - * CSparse.cc: ditto. - * sparse-sort.cc: Instantiate octave_sort. - - 2005-12-28 David Bateman - - * Sparse-op-defs.h (SPARSE_SPARSE_MUL): Improved algorithm that is - faster in all cases, and significantly so for low density or small - order problems. - - 2005-11-30 John W. Eaton - - * LSODE.cc (LSODE::do_integrate (double)): Resize iwork and rwork - before setting any values in either array. - - 2005-11-29 John W. Eaton - - * oct-uname.h, oct-uname.cc: New files. - * Makefile.in: Add them to the appropriate lists. - - 2005-11-11 John W. Eaton - - * Array.cc (Array::indexN): Simplify. - - 2005-11-09 John W. Eaton - - * oct-inttypes.h (octave_int::operator char (void) const): - New conversion op. - - 2005-11-01 John W. Eaton - - * Makefile.in (distclean): Also remove oct-types.h. - From Quentin Spencer . - - 2005-10-31 David Bateman - - * dSparse.cc, CSparse.cc: Use C++ true/false instead of - preprocessor defined TRUE/FALSE. - - 2005-10-30 John W. Eaton - - * mx-inlines.cc (MX_ND_REDUCTION): Iterate in direction of DIM. - (MX_ND_CUMULATIVE_OP): Likewise. - - 2005-10-29 John W. Eaton - - * mx-inlines.cc (MX_ND_REDUCTION): Avoid increment_index to speed - things up. Simplify. - - * Array.cc (Array::indexN): Simplify. Delete separate special - case for "vector_equivalent". - - * Array-util.cc (vector_equivalent): Arg is now dim_vector. - - 2005-10-28 John W. Eaton - - * oct-sparse.h: Fix typo in HAVE_UFSPARSE_UMFPACK_H. - From Quentin Spencer . - - * sparse-base-chol.cc: Use C++ true/false instead of - preprocessor defined TRUE/FALSE. Use 0 instead of NULL. - - 2005-10-27 John W. Eaton - - * Array.cc (assignN): Reshape to final size instead of resizing. - - 2005-10-26 John W. Eaton - - * oct-sparse.h: New file. - * oct-sparse.h.in: Delete. - - 2005-10-26 David Bateman - - * sparse-base-chol.h: Include cholmod specific code in HAVE_CHOLMOD - * sparse-base-chol.cc: ditto. - - 2005-10-26 John W. Eaton - - Changes for GCC 4.1, tip from Arno J. Klaassen - : - - * dSparse.h (real (const SparseComplexMatrix&)): - Publish externally used friend function. - (imag (const SparseComplexMatrix&)): Likewise. - - * dColVector.h (real (const ComplexColumnVector&)): - Publish externally used friend function. - (imag (const ComplexColumnVector&)): Likewise. - - * dNDArray.h (real (const ComplexNDArray&)): - Publish externally used friend function. - (imag (const ComplexNDArray&)): Likewise. - - * dMatrix.h (operator * (const ComplexMatrix&)): - Move decl outside class. No need to be friend. - (real (const ComplexMatrix&)): Publish externally used friend function. - (imag (const ComplexMatrix&)): Likewise. - - * CMatrix.h: (operator * (const ColumnVector&, const - ComplexRowVector&)): Move decl outside class. No need to be friend. - (operator * (const ComplexColumnVector&, const RowVector&)): Likewise. - (operator * (const ComplexColumnVector&, const ComplexRowVector& b)): - Likewise. - - 2005-10-23 David Bateman - - * Sparse-op-defs.h (SPARSE_SPARSE_MUL): Check whether trailing zero - elements need to be removed. - - * oct-sparse.h.in: Include metis headers and some macros for long/int - versions of cholmod. - - * CSparse.cc (tinverse): New private function for the inversion of - an upper triangular matrix. - (dinverse): ditto for diagonal matrices. - (inverse): Add SparseType as an argument. Implement matrix inverse - using tinverse and dinverse. - (fsolve): Use cholmod to implement Cholesky solver. - * CSparse.h (tinverse, dinverse): Declarations - (inverse): Alter declaration to include SparseType. - - * dSparse.cc (tinverse, dinverse, inverse, fsolve): ditto. - * dSparse.h (tinverse, dinverse, inverse): ditto. - - * SparseType.cc: Fix complex constructor for hermitian matrices. - - * sparse-util.cc: New file for sparse utility functions. - * sparse-util.h: New file with declarations of sparse utility - functions. - - * sparse-base-chol.cc: New file with sparse cholesky class based - on cholmod. - * sparse-base-chol.h: New file with declaration of sparse cholesky - class based on cholmod. - - * SparseCmplxCHOL.cc: Instantiate sparse cholesky class for Complex. - * SparseCmplxCHOL.h: Declaration of sparse cholesky class. - - * SparsedbleCHOL.cc: ditto. - * SparsedbleCHOL.h: ditto. - - * Makefile.in (MATRIX_INC): Include sparse-base-chol.h. - (INCLUDES): Include sparse-util.h - (TEMPLATE_SRC): Include sparse-base-chol.cc - (MATRIX_SRC): Include SparseCmplxCHOL.cc and SparsedbleCHOL.cc - - 2005-10-12 John W. Eaton - - * oct-env.cc (octave_env::have_x11_display): New function. - * oct-env.h: Provide decl. - - 2005-09-29 John W. Eaton - - * file-stat.h (file_stat::mode): New function. - - * file-stat.cc (file_stat::is_blk, file_stat::is_chr, - file_stat::is_dir, file_stat::is_fifo, file_stat::is_lnk, - file_stat::is_reg, file_stat::is_sock): New static functions. - * file-stat.h: Provide decls. - - 2005-09-28 John W. Eaton - - * file-ops.cc (file_ops::recursive_rmdir): New function. - * file-ops.h: Provide decl. - - 2005-09-19 David Bateman - - * oct-env.cc (octave_env::do_get_home_directory): - Also check HOMEDRIVE under mingw. - - * Makefile.in (LINK_DEPS): Include UFsparse libraries. - - 2005-09-16 John W. Eaton - - * oct-syscalls.cc: Include lo-utils.h here. - (octave_syscalls::waitpid): Call octave_waitpid here. - - * lo-cutils.c (octave_waitpid): New function. - * lo-utils.h: Provide decl. Include syswait.h here, not in - oct-syscalls.cc - - - * syswait.h [__MINGW32__]: Define WAITPID here instead of defining - waitpid in src/sysdep.h. Make this header C-compatible. - - * oct-syscalls.cc (octave_syscalls::waitpid): New arg, status. - Change all uses. - - 2005-09-15 John W. Eaton - - * Makefile.in (MAKEDEPS_2): Omit unnecessary variable. - - * oct-sparse.h.in: New file. - * Makefile.in (DISTFILES): Include it in the list. - (INCLUDES): Add oct-sparse.h to the list. - - 2005-09-15 David Bateman - - * dSparse.cc : Include oct-sparse.h for probed umfpack, colamd etc - headers. Remove include of umfpack.h. - * CSparse.cc : ditto. - * SparsedbleLU.cc : ditto. - * SparseCmplxLU.cc : ditto. - - * COLAMD : Remove colamd files from octave. - * COLAMD.files : delete. - * COLAMD.README : delete. - * Makefile.in: Remove COLAMD. Add LIBGLOB. - (LN_S): Change to DESTDIR before LN_S to avoid lack of symlinks - under mingw. - - * kpse.cc (ENV_SEP, ENV_SEP_STRING): Use SEPCHAR and SEPCHAR_STR - in definition. - * lo-cutils.c (octave_w32_library_search): Call GetProcAddress with - change of cast not allowed under g++ 3.x. - * lo-utils.h (octave_w32_library_search): Declaration. - * oct-env.cc (do_get_home_directory): Also check HOMEPATH under mingw. - * oct-shlib.cc (octave_w32_shlib::search): Use octave_w32_library_search. - - 2005-09-07 John W. Eaton - - * cmd-edit.cc (command_editor::do_decode_prompt_string): Update - based on current code in Bash. Handle a few more escape - sequences. Do a better job of decoding \W. - - 2005-09-04 David Bateman - - * COLAMD: Update version of colamd to v2.4. - * COLAMD.files: Add colamd_global.c to COLAMD_SRC and second build of - colamd.c for long version. - - 2005-08-25 David Bateman - - * Sparse-op-defs.h (FULL_SPARSE_MUL, SPARSE_FULL_MUL): Macro for - mixed sparse/full multiply. - * dSparse.cc (operator *), CSparse.cc (operator *): New operators for - mixed sparse/full multiply. - * dSparse.h (operator *), CSparse.h (operator *): Declaration of - mixed sparse/full multiply operators. - - 2005-07-25 Erik de Castro Lopo - - * oct-inttypes.h (OCTAVE_S_US_FTR): Compare <= 0 instead of < 0 to - avoid warnings for unsigned types. - - 2005-07-07 John W. Eaton - - * dSparse.cc (SparseMatrix::factorize): Initialize Numeric to 0. - * CSparse.cc (SparseComplexMatrix::factorize:) Likewise. - - 2005-06-15 John W. Eaton - - * oct-rl-edit.c (flush_stdout): Rename from no_redisplay. - Flush stdout here. - (octave_rl_clear_screen): Set rl_redisplay_function to flush_stdout. - - * Array.h (Array::resize): Change int args to octave_idx_type. - - 2005-06-14 John W. Eaton - - * CMatrix.cc, CNDArray.cc, CSparse.cc, dMatrix.cc, dNDArray.cc, - dSparse.cc, lo-cieee.c, lo-mappers.cc: Change all uses of - octave_is_NaN_or_NA to xisnan. - - * lo-mappers.h (octave_is_NaN_or_NA): Mark with GCC_ATTR_DEPRECATED. - * lo-ieee.h (lo_ieee_is_NaN_or_NA): Likewise. - - * lo-cieee.c (lo_ieee_is_NaN_or_NA): Now just a wrapper for - lo_ieee_isnan. - - * dMatrix.cc (Matrix::too_large_for_float): Only check if abs - value is greater than FLT_MAX. - * CMatrix.cc (ComplexMatrix::too_large_for_float): Ditto. - * dNDArray.cc (NDArray::too_large_for_float): Ditto. - * CNDArray.cc (ComplexNDArray::too_large_for_float): Ditto. - - * dMatrix.cc (Matrix::too_large_for_float): Special case Inf - values too. - * CMatrix.cc (ComplexMatrix::too_large_for_float): Ditto. - - * dNDArray.cc (NDArray::too_large_for_float): Likewise for NaN, - NA, Inf values. - * CNDArray.cc (ComplexNDArray::too_large_for_float): Ditto. - - 2005-06-14 David Bateman - - * dMatrix.cc (Matrix::too_large_for_float): Special case NaN and - NA values. - * CMatrix.cc (ComplexMatrix::too_large_for_float): Ditto. - - 2005-06-02 John W. Eaton - - * Array.cc (assignN): Try harder to correctly resize previously - empty LHS. - - 2005-05-16 David Bateman - - * dSparse.h: Change UMFPACK_LONG_IDX to IDX_TYPE_LONG. - * CSparse.h: ditto. - - 2005-05-10 David Bateman - - * dSparse.cc (determinant): Free numeric factorization after - sucessful calculation. - * CSparse.cc (determinant): ditto. - - 2005-05-06 John W. Eaton - - * dbleCHOL.cc (CHOL::init): Use xelem instead of elem for indexing - chol_mat. - (chol2mat_internal, chol2mat, CHOL::inverse): New functions. - * dbleCHOL.h (chol2mat_internal, chol2mat, CHOL::inverse): - Provide decls. - - * CmplxChol.cc (ComplexCHOL::init): Use xelem instead of elem for - indexing chol_mat. - (chol2mat_internal, chol2mat, ComplexCHOL::inverse): New functions. - * CmplxCHOL.h (chol2mat_internal, chol2mat, CmplxCHOL::inverse): - Provide decls. - - 2005-05-05 John W. Eaton - - * Array.cc (Array::permute): Call chop_trailing_singletons on - retval before return. - - 2005-05-04 John W. Eaton - - * cmd-edit.cc (gnu_readline::do_readline): Extract const char* - from prompt outside of INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE block. - - 2005-05-02 John W. Eaton - - * Makefile.in (LINK_DEPS): List $(UMFPACK_LIBS) ahead of $(BLAS_LIBS). - From Dmitri A. Sergatskov . - - 2005-04-29 David Bateman - - * dSparse.cc (trisolve): Diagonal passed to lapack zptsv is type - double. Correct indexing for upper diagonal elements for sparse - tridiagonal. - * CSparse.cc (trisolve): ditto. - - * CSparse.h (UMFPACK_ZNAME): Define macro to pick version of - UMFPACK for 64-bit. - * CSparse.cc (UMFPACK_ZNAME): Replace all umfpack_zi_* with - UMFPACK_ZNAME(*). - * SparseCmplxLU.cc (UMFPACK_ZNAME): ditto - - * dSparse.h (UMFPACK_DNAME): Define macro to pick version of - UMFPACK for 64-bit. - * dSparse.cc (UMFPACK_DNAME): Replace all umfpack_di_* with - UMFPACK_DNAME(*). - * SparsedbleLU.cc (UMFPACK_DNAME): ditto - - * dSparse.cc (ltsolve, utsolve): Correct permuted upper/lower - triangular back/forward substitution code. - * CSparse.cc (ltsolve, utsolve): ditto. - - * dSparse.cc (solve): Use mattype.type (false) to force messaging - from spparms("spumoni",1). - * CSparse.cc (solve): ditto - - * SparseType.cc (SparseType(void)): Print info for - spparms("spumoni",1). - (SparseType(const matrix_type), SparseType(const matrix_type, const - octave_idx_type, const octave_idx_type*), SparseType(const matrix_type, - const octave_idx_type, const octave_idx_type)): New constructors. - (SparseType (const SparseMatrix&), SparseType (SparseComplexMatrix&)): - Detect row permuted lower triangular and column permuted upper - triangular matrices. Remove one of the permutation vectors.. - - * SparseType.h: Simplify the permutation code. - (SparseType(const matrix_type), SparseType - (const matrix_type, const octave_idx_type, const octave_idx_type*), - SparseType(const matrix_type, const octave_idx_type, - const octave_idx_type)): Declarations. - - 2005-04-25 John W. Eaton - - * str-vec.cc (string_vector::delete_c_str_vec): Correctly free - array and its contents. - - 2005-04-22 John W. Eaton - - * oct-rl-edit.c (octave_rl_set_terminal_name): Don't cast away - const here now that rl_terminal_name is declared const char*. - - 2005-04-21 John W. Eaton - - * Makefile.in (DISTFILES): Include oct-types.h.in in the list. - - 2005-04-19 John W. Eaton - - * Array.cc (assignN): Don't crash if the index list is empty. - - 2005-04-14 David Bateman - - * SparseCmplxLU.cc: Add flags for incomplete factorization. - * SparsedbleLU.cc: Ditto. - * SparseCmplxLU.h: Definition. - * SparsedbleLU.h: ditto. - - * SparseType.cc (transpose): New function. - * SparseType.h (transpose): Definition. - - 2005-04-11 John W. Eaton - - * lo-specfun.cc: Use F77_XFCN instead of F77_FUNC for calls to - fortran code that could end up calling XSTOPX. - - 2005-04-10 David Bateman - - * Makefile.in: include oct-types in INCLUDES so that it is - installed - - 2005-04-08 John W. Eaton - - * Makefile.in (clean): Use exact filenames instead of *.xxx. - - * Initial merge of 64-bit changes from Clinton Chee: - - 2005-04-07 John W. Eaton - - * MArray-i.cc, Array-i.cc: Instantiate Array and MArray. - - * CSparse.cc, CSparse.h, MSparse.cc, MSparse.h, Sparse-op-defs.h, - Sparse.cc, Sparse.h, SparseCmplxLU.cc, SparseType.cc, - SparseType.h, SparsedbleLU.cc, boolSparse.cc, boolSparse.h, - dSparse.cc, dSparse.h, sparse-base-lu.cc: - Use octave_idx_type instead of int where needed. - - 2005-03-31 Clinton Chee - - * Array-util.cc, Array-util.h, Array.cc,Array.h, Array2.h, - Array3.h, ArrayN.cc, ArrayN.h, Bounds.cc, Bounds.h, CColVector.cc, - CColVector.h, CDiagMatrix.cc, CDiagMatrix.h, CMatrix.cc, - CMatrix.h, CNDArray.cc, CNDArray.h, CRowVector.cc, CRowVector.h, - CmplxAEPBAL.cc, CmplxAEPBAL.h, CmplxCHOL.cc, CmplxCHOL.h, - CmplxHESS.cc, CmplxHESS.h, CmplxLU.cc, CmplxQR.cc, CmplxQRP.cc, - CmplxSCHUR.cc, CmplxSCHUR.h, CmplxSVD.cc, CmplxSVD.h, CollocWt.cc, - CollocWt.h, DAEFunc.h, DASPK-opts.in,DASPK.cc,DASPK.h, - DASRT-opts.in, DASRT.cc, DASRT.h, DASSL-opts.in, DASSL.cc, - DASSL.h, DiagArray2.cc, DiagArray2.h, EIG.cc, EIG.h, FEGrid.cc, - FEGrid.h, LPsolve.cc, LPsolve.h, LSODE-opts.in, LSODE.cc, LSODE.h, - MArray-defs.h, MArray.cc, MArray.h, MArray2.cc, MArray2.h, - MArrayN.cc, MDiagArray2.cc, MDiagArray2.h, NLConst.h, NLEqn.cc, - NLEqn.h, Quad.cc, Quad.h, Range.cc,Range.cc, Range.h, base-de.h, - base-lu.cc, base-lu.h, base-min.h, boolMatrix.cc, boolMatrix.h, - boolNDArray.cc, boolNDArray.h, chMatrix.cc, chMatrix.h, - chNDArray.cc, chNDArray.h, dColVector.cc, dColVector.h, - dDiagMatrix.cc, dDiagMatrix.h, dMatrix.cc, dMatrix.h, - dNDArray.cc,dNDArray.cc, dNDArray.h, dRowVector.cc, dRowVector.h, - dbleAEPBAL.cc, dbleAEPBAL.h, dbleCHOL.cc, dbleCHOL.h, dbleHESS.cc, - dbleHESS.h, dbleLU.cc, dbleQR.cc, dbleQRP.cc, dbleSCHUR.cc, - dbleSCHUR.h, dbleSVD.cc, dbleSVD.h, dim-vector.h, idx-vector.cc, - idx-vector.h, intNDArray.cc, intNDArray.h, lo-specfun.cc, - lo-specfun.h, mach-info.cc, mx-inlines.cc, oct-fftw.cc, - oct-fftw.h, oct-rand.cc, oct-rand.h, so-array.cc, so-array.h, - str-vec.cc, str-vec.h: - Use octave_idx_type instead of int where needed. - - 2005-04-01 John W. Eaton - - * dim-vector.h, lo-utils.h: Include oct-types.h. - - * oct-types.h.in: New file. - - 2005-03-31 Clinton Chee - - * lo-utils.cc (NINTbig): New function. - * lo-utils.h: Provide decl. - - 2005-04-06 David Bateman - - * Makefile.in: Link to UMFPACK_LIBS. - - 2005-04-05 John W. Eaton - - * Array.cc (assignN): Avoid shadowed declaration in previous change. - - 2005-04-01 John W. Eaton - - * Array.cc (assignN): For A(IDX-LIST) = RHS with A previously - undefined, correctly match colons in IDX-LIST with RHS dimensions - when resizing A. When performing the assignment, just check that - the number of elements in RHS matches the number of elements - indexed by IDX-LIST. - - 2005-03-30 John W. Eaton - - * lo-mappers.cc (log10, tan, tanh): Delete functions. - * lo-mappers.h (log10, tan, tanh): Delete decls. - - * CColVector.cc, CNDArray.cc, CRowVector.cc, CSparse.cc, - dSparse.cc: Use std:: for Complex functions instead of relying on - wrappers from oct-cmplx.h. - - * oct-cmplx.h: Provide typedef only. - - * DiagArray2.cc (xelem): Don't use initializer for static data. - * DiagArray2.h (DiagArray::Proxy::operator T ()): - Likewise. - - 2005-03-26 John W. Eaton - - * cmd-edit.cc (do_readline): Wrap call to ::octave_rl_readline - with {BEGIN,END}_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE. - - 2005-03-15 John W. Eaton - - * Makefile.in (MATRIX_INC): Remove oct-spparms.h from the list. - - 2005-03-14 John W. Eaton - - * Makefile.in (DISTFILES): Don't include $(UMFPACK_EXTRAS). - (DISTDIRS): Don't include UMFPACK. - (LIBOCTAVE_OBJECTS): Don't include $(UMFPACK_OBJ). - (UMFPACK_SPECIAL_1, UMFPACK_SPECIAL): No need for special include - flags for these files. - Don't include include $(srcdir)/UMFPACK.files. - Don't include include $(srcdir)/UMFPACK.rules. - - * UMFPACK.README, UMFPACK.files, UMFPACK.patch, UMFPACK.rules: - Delete files. - * UMFPACK: Delete directory tree. - - * dSparse.cc: Include instead of just "umfpack.h". - * CSparse.cc: Likewise. - * SparsedbleLU.cc: Likewise. - * SparseCmplxLU.cc: Likewise. - - 2005-03-14 David Bateman - - * CSParse.cc, SparseCmplxLU.cc, SparsedbleLU.cc, dSparse.cc: - Allow compilation to succeed if UMFPACK is not available. - - 2005-03-09 John W. Eaton - - * Makefile.in (bin-dist): Delete target. - (BINDISTLIBS, BINDISTFILES): Delete variables. - - 2005-03-01 John W. Eaton - - * ODESSA.h, ODESSA.cc, ODESSA-opts.in: Delete. - * Makefile.in: Remove them from the lists. - - 2005-02-28 John W. Eaton - - * Makefile.in (LINK_DEPS): Remove -lglob from the list. - - 2005-02-27 David Bateman - - * Sparse.cc (Sparse::reshape): Set cidx for the N last elements - in the sparse matrix. - - 2005-02-25 John W. Eaton - - Sparse merge. - - 2005-02-13 David Bateman - - * CSparse.cc (SparseComplexMatrix:dsolve, SparseComplexMatrix:utsolve, - SparseComplexMatrix::ltsolve, SparseComplexMatrix::trisolve, - SparseComplexMatrix::bsolve, SparseComplexMatrix:fsolve): Split sparse - solver into separate functions for the diagonal, upper, lower - triangular, tridiagonal, banded and full cases. - (SparseComplexMatrix::solve): rewrite to call the above function. One - version that probes the matrix type and another that assumes the type - is passed. - - * dSparse.cc (SparseMatrix:dsolve, SparseMatrix:utsolve, - SparseMatrix::ltsolve, SparseMatrix::trisolve, - SparseMatrix::bsolve, SparseMatrix:fsolve): Likewise - (SparseMatrix::solve): Likewise - - * CSparse.h (dsolve, utsolve, ltsolve, trisolve, bsolve, fsolve): - Declaration of new functions - * dSparse.h (dsolve, utsolve, ltsolve, trisolve, bsolve, fsolve): - Likewise - - * CSparse.cc (operator !): Reverse the sense of the test. - * dSpase.cc (operator !): Likewise - - * dSparse.h (type, band_size, is_dense, triangular_row_perm, - triangular_col_perm, sparse_info): Remove matrix type code - * CSparse.h (type, band_size, is_dense, triangular_row_perm, - triangular_col_perm, sparse_info): Likewise - * boolSparse.h (type, band_size, is_dense, triangular_row_perm, - triangular_col_perm, sparse_info): Likewise - * MSparse.h (type, band_size, is_dense, triangular_row_perm, - triangular_col_perm, sparse_info): Likewise - * Sparse.h (type, band_size, is_dense, triangular_row_perm, - triangular_col_perm, sparse_info, matrix_type): Likewise - - * Sparse.cc (type, sparse_info, band_size): Remove type code - - * SparseType.h: New class for the matrix type used in solvers - * SparseType.cc: methods of sparse matrix type class - - * Makefile.in: Add SparseType.cc - - 2005-02-01 David Bateman - - * UMFPACK: Update to version 4.4 - * UMFPACK.patch: Version 4.4 contains most of the previous patch. Only - keep octave specific test files - - 2005-01-23 David Bateman - - * dSparse.cc (SparseMatrix::solve): Include tridiagonal, cholesky - tridiagonal and banded cholesky solvers. Remove calculation of - condition number for banded solvers. - * CSparse.cc (SparseComplexMatrix::solve): ditto. - - * Sparse.h (int type (int) const, bool is_dense (void) const): - new functions. - * MSparse.h (int type (int) const, bool is_dense (void) const): ditto - * dSparse.h (int type (int) const, bool is_dense (void) const): ditto - * CSparse.h (int type (int) const, bool is_dense (void) const): ditto - * boolSparse.h (int type (int) const, bool is_dense (void) const): - ditto - - * Sparse.cc (int Sparse::type (int) const, - bool Sparse::is_dense (void) const): New functions definition - - * Sparse.h (matrix_type typ): Move caching of matrix type to SparseRep, - so it actually is cached, but disable - - * oct-spparms.cc (SparseParams::init_keys): Change spmoni to spumoni - for compatiability - - 2005-01-18 David Bateman - - * Array.cc (Array::insert (const Array&, const Array&)): - Modify calculation of number elements to skip between copied blocks. - - 2005-01-07 David Bateman - - * Sparse.h : Reverse definitions of numel and nelem. - * Sparse.cc (assign1): Use numel and not nelem - * Sparse-op-def.h: Replace all uses of nelem with numel - - 2005-01-07 David Bateman - - * dbleDET.h: Make SparseMatrix a friend of the class DET - * CmplexDET.h: Make SparseComplexMatrix a friend of the class - ComplexDET - * dSparse.cc (SparseMatrix::determinant): Replace use of SparseDET - by DET - * dSparse.h (determinant): ditto - * CSparse.cc (SparseComplexMatrix::determinant): Replace use of - SparseComplexDET by ComplexDET - * CSparse.h (determinant): ditto - * SparsedbleDET.h, SparsedbleDET.cc, SparseCmplxDET.h, - SparseCmplxDET.cc: delete files - * Makefile.in: Delete reference to SparsedbleDET.h, SparsedbleDET.cc, - SparseCmplxDET.h andSparseCmplxDET.cc. - - * CSparse.cc (SparseComplexMatrix::solve): Store matrix type in - local variable to avoid variable shadowing. - * dSparse.cc (SparseMatrix::solve): ditto. - - * boolSparse.cc boolSparse.h CSparse.cc CSparse.h dSparse.cc - dSparse.h MSparse.cc MSparse-C.cc MSparse-d.cc MSparse-defs.h - MSparse.h oct-spparms.cc oct-spparms.h Sparse-b.cc Sparse.cc - Sparse-C.cc SparseCmplxLU.cc SparseCmplxLU.h SparsedbleLU.cc - SparsedbleLU.h Sparse-d.cc Sparse.h Sparse-op-defs.h sparse-sort.cc - sparse-sort.h: Remove additional licensing clause with authors - permission. - - 2004-12-30 John W. Eaton - - * MSparse.cc (SPARSE_A2S_OP_2, SPARSE_SA2_OP_2): - Loop counter is int, not size_t. - - * oct-spparms.cc (SparseParams::operator =): Return *this. - - * Sparse-op-defs.h (SPARSE_SPARSE_MUL): Delete unused variable tmpval. - - * dSparse.cc (operator << (ostream&, const SparseMatrix&), atan2): - Delete unused variables. - (SparseMatrix::solve): Avoid warnings about uninitialized - variables and variables that might be clobbered by longjmp. - - * CSparse.cc (operator << (ostream&, const SparseComplexMatrix&), - min, max): Delete unused variables. - (SparseComplexMatrix::solve): Avoid warnings about uninitialized - variables and variables that might be clobbered by longjmp. - - * Makefile.in (UMFPACK_SPECIAL): Include .d files in the list. - - * Sparse-op-defs.h (SPARSE_SMS_BIN_OP_2, SPARSE_SSM_BIN_OP_2): - Loop counter is int, not size_t. - - * CSparse.cc (SparseComplexMatrix::hermitian): Avoid shadow warnings. - * Sparse.cc (Sparse::Sparse, Sparse::type, assign): Likewise. - - * Sparse.h (Sparse::SparseRep): Order data members and initializer - lists consistently. - - * mx-base.h: Include boolSparse.h, dSparse.h, and CSparse.h. - - 2004-12-29 John W. Eaton - - * COLAMD.files (COLAMD_EXTRAS): New variable. - * UMFPACK.files (UMFPACK_EXTRAS): New variable. - * Makefile.in (DISTFILES): Add $(COLAMD_EXTRAS) and - $(UMFPACK_EXTRAS) to the list. - (DISTDIRS): New variable. - (dist): Handle $(DISTDIRS). - - Merge of sparse code from David Bateman and - Andy Adler . - - * Makefile.in (VPATH): ADD @srcdir@/COLAMD to the list. - - * Makefile.in (MAKEDEPS): Include $(COLAMD_SRC) and $(UMFPACK_SRC) - without directory prefix. - - * Makefile.in (LIBOCTAVE_OBJECTS): Add $(COLAMD_OBJ) and - $(UMFPACK_OBJ) to the list. - - * COLAMD: New directory. - * COLAMD.files: New file. - * Makefile.in: Include COLAMD.files. - (SOURCES): Add $(COLAMD_SOURCES) to the list. - (LIBOCTAVE_OBJECTS): Add $(COLAMD_OBJECTS) to the list. - (INCLUDES): Add $(COLAMD_INCLUDES) to the list. - - * UMFPACK: New directory. - * UMFPACK.patch, UMFPACK.README, UMFPACK.files, UMFPACK.rules: - New files. - * Makefile.in: Include UMFPACK.files and UMFPACK.rules. - (SOURCES): Add $(UMFPACK_SOURCES) to the list. - (LIBOCTAVE_OBJECTS): Add $(UMFPACK_OBJECTS) to the list. - (INCLUDES): Add $(UMFPACK_INCLUDES) to the list. - - * Makefile.in (SPARSE_MX_OP_INC): New variable. - (INCLUDES): Add it to the list. - (SPARSE_MX_OP_SRC): New variable. - (LIBOCTAVE_CXX_SOURCES): Add it to the list. - (distclean): Remove $(SPARSE_MX_OP_INC) and $(SPARSE_MX_OP_SRC). - (stamp-prereq): Depend on $(SPARSE_MX_OP_INC) and $(SPARSE_MX_OP_SRC). - - * sparse-mk-ops.awk, sparse-mx-ops: New files. - * Makefile.in (DISTFILES): Add them to the lists. - - * oct-spparms.h, sparse-sort.h: New files. - * Makefile.in (INCLUDES): Add them to the list. - - * oct-spparms.cc, sparse-sort.cc: New files. - * Makefile.in (LIBOCTAVE_CXX_SOURCES): Add them to the list. - - * sparse-base-lu.cc: New file. - * Makefile.in (TEMPLATE_SRC): Add it to the list. - - * boolSparse.cc, CSparse.cc, dSparse.cc, MSparse.cc, Sparse.cc, - SparseCmplxDET.cc, SparseCmplxLU.cc, SparsedbleDET.cc, - SparsedbleLU.cc: New files. - * Makefile.in (MATRIX_SRC): Add them to the list. - - * boolSparse.h, CSparse.h, dSparse.h, MSparse-defs.h, MSparse.h, - Sparse.h, oct-spparms.h, sparse-base-lu.h, SparseCmplxDET.h, - SparseCmplxLU.h, SparsedbleDET.h, SparsedbleLU.h, - Sparse-op-defs.h: New files. - * Makefile.in (MATRIX_INC): Add them to the appropriate lists. - - * MSparse-d.cc, MSparse-C.cc, Sparse-b.cc, Sparse-d.cc, - Sparse-C.cc: New files. - * Makefile.in (TI_SRC): Add them to the list. - - 2005-02-18 John W. Eaton - - * file-ops.cc (file_ops::canonicalize_file_name) [HAVE_RESOLVEPATH]: - Pass current directory to octave_env::make_absolute. - Save value returned from octave_env::make_absolute in local var. - Pass const char*, not std::string as first arg of resolvepath. - Provide decl for resolved_len. - - 2005-02-18 John W. Eaton - - * Array.cc (Array::permute): Allow permutation vector longer - than number of dimenensions of permuted matrix. - - * Array.cc (Array::permute): Use zero-based indexing for perm_vec. - * Array-util.cc (calc_permutated_idx): Likewise. - - 2005-02-10 David Bateman - - * CNDArray.cc (ComplexNDarray::operator !): Change sense of test. - * CMatrix.cc (ComplexMatrix::operator !): Likewise. - - 2005-02-09 John W. Eaton - - * file-ops.cc (file_ops::canonicalize_file_name): New functions. - * file-ops.h: Provide decls. - - * kpse.cc (kpse_tilde_expand): Simply return NAME if it is empty. - - 2005-02-08 John W. Eaton - - * Array-util.cc (freeze): Improve error message. - - 2005-01-26 David Bateman - - * Array.cc (Array::insert): Handle generic case, not just - special case for fast concatenation. - - 2005-01-18 John W. Eaton - - * mx-inlines.cc (MX_ND_REDUCTION): Delete RET_ELT_TYPE arg. - Change all uses. Use VAL instead of RET_ELT_TYPE when resizing. - - * dNDArray.cc (NDArray::any): NaN does not count as a nonzero value. - * CNDArray.cc (ComplexNDArray::any): Likewise. - - 2005-01-18 David Bateman - - * Array.cc (Array::insert (const Array&, const Array&)): - Modify calculation of number elements to skip between copied blocks. - - 2005-01-18 John W. Eaton - - * idx-vector.cc (IDX_VEC_REP::freeze): Call warning handler, not - error handler, to warn about resizing. - - 2004-12-27 Martin Dalecki - - * Array.cc, ArrayN.cc, base-lu.cc, boolMatrix.cc, boolNDArray.cc, - Bounds.cc, CColVector.cc, CDiagMatrix.cc, chMatrix.cc, - chNDArray.cc, CMatrix.cc, CmplxAEPBAL.cc, CmplxCHOL.cc, - CmplxDET.cc, CmplxHESS.cc, CmplxLU.cc, CmplxQR.cc, CmplxQRP.cc, - CmplxSCHUR.cc, CmplxSVD.cc, CNDArray.cc, CollocWt.cc, - CRowVector.cc, DASPK.cc, DASRT.cc, DASSL.cc, dbleAEPBAL.cc, - dbleCHOL.cc, dbleDET.cc, dbleHESS.cc, dbleLU.cc, dbleQR.cc, - dbleQRP.cc, dbleSCHUR.cc, dbleSVD.cc, dColVector.cc, - dDiagMatrix.cc, DiagArray2.cc, dMatrix.cc, dNDArray.cc, - dRowVector.cc, EIG.cc, FEGrid.cc, idx-vector.cc, int16NDArray.cc, - int32NDArray.cc, int64NDArray.cc, int8NDArray.cc, intNDArray.cc, - LinConst.cc, LPsolve.cc, LSODE.cc, MArray2.cc, MArray.cc, - MArrayN.cc, MDiagArray2.cc, NLEqn.cc, oct-alloc.cc, ODES.cc, - ODESSA.cc, Quad.cc, Range.cc, so-array.cc, uint16NDArray.cc, - uint32NDArray.cc, uint64NDArray.cc, uint8NDArray.cc: - Delete #pragma implementation. - - * Array2.h, Array3.h, Array.h, ArrayN.h, base-lu.h, boolMatrix.h, - boolNDArray.h, Bounds.h, CColVector.h, CDiagMatrix.h, chMatrix.h, - chNDArray.h, CMatrix.h, CmplxAEPBAL.h, CmplxCHOL.h, CmplxDET.h, - CmplxHESS.h, CmplxLU.h, CmplxQR.h, CmplxQRP.h, CmplxSCHUR.h, - CmplxSVD.h, CNDArray.h, CollocWt.h, CRowVector.h, DASPK.h, - DASRT.h, DASSL.h, dbleAEPBAL.h, dbleCHOL.h, dbleDET.h, dbleHESS.h, - dbleLU.h, dbleQR.h, dbleQRP.h, dbleSCHUR.h, dbleSVD.h, - dColVector.h, dDiagMatrix.h, DiagArray2.h, dim-vector.h, - dMatrix.h, dNDArray.h, dRowVector.h, EIG.h, FEGrid.h, - idx-vector.h, int16NDArray.h, int32NDArray.h, int64NDArray.h, - int8NDArray.h, intNDArray.h, LinConst.h, LPsolve.h, LSODE.h, - MArray2.h, MArray.h, MArrayN.h, MDiagArray2.h, NLConst.h, NLEqn.h, - ODES.h, ODESSA.h, Quad.h, Range.h, so-array.h, uint16NDArray.h, - uint32NDArray.h, uint64NDArray.h, uint8NDArray.h: - Delete #pragma interface. - - 2004-12-17 John W. Eaton - - * lo-cieee.c (lo_ieee_signbit): New function. - * lo-ieee.h: Provide decl. - Don't define lo_ieee_signbit as a macro here. - From Orion Poplawski . - - 2004-11-18 John W. Eaton - - * int32NDArray.cc (pow): Delete instantiation. - * int16NDArray.cc (pow): Likewise. - * int8NDArray.cc (pow): Likewise. - * uint32NDArray.cc (pow): Likewise. - * uint16NDArray.cc (pow): Likewise. - * uint8NDArray.cc (pow): Likewise. - - 2004-11-17 John W. Eaton - - * kpse.cc (str_llist_float, str_llist_add, kpse_var_expand): - Now static. - (DB_ENVS, DB_HASH_SIZE, DB_NAME, ALIAS_NAME, ALIAS_HASH_SIZE, - DEFAULT_TEXMFDBS): Delete unused macros. - - * Array.cc (Array::index): Call generic N-d indexing function - if idx_arg is N-d. - - 2004-11-09 David Bateman - - * dNDArray.cc (concat): Delete. - (NDArray::concat): New methods. - * dNDArray.h: Provide decls. - - * CNDArray.cc (concat): Delete. - (ComplexNDArray::concat): New methods. - * CNDArray.h: Provide decls. - - * boolNDArray.cc (concat): Delete. - (boolNDArray::concat): New methods. - * boolNDArray.h: Provide decls. - - * chNDArray.cc (concat): Delete. - (charNDArray::concat): New methods. - * chNDArray.h: Provide decls. - - * oct-inttypes.h (OCTAVE_INT_CONCAT_FN, OCTAVE_INT_CONCAT_DECL): - Delete macros. - - * int8NDArray.h, int16NDArray.h, int32NDArray.h, int64NDArray.h, - uint8NDArray.h, uint16NDArray.h, uint32NDArray.h, uint64NDArray.h - (OCTAVE_INT_CONCAT_DECL): Delete use of macro. - - * int8NDArray.cc, int16NDArray.cc, int32NDArray.cc, int64NDArray.cc, - uint8NDArray.cc, uint16NDArray.cc, uint32NDArray.cc, uint64NDArray.cc - (OCTAVE_INT_CONCAT_FN): Delete use of macro. - - * intNDArray.cc (intNDArray::concat): New method. - * intNDArray.h: Provide decl. - - 2004-11-08 John W. Eaton - - * oct-inttypes.cc: New file. - * Makefile.in (TI_SRC): Add it to the list. - * oct-inttypes.h (OCTAVE_US_TYPE1_CMP_OP, OCTAVE_US_TYPE1_CMP_OPS, - OCTAVE_SU_TYPE1_CMP_OP, OCTAVE_SU_TYPE1_CMP_OPS, - OCTAVE_TYPE1_CMP_OPS, OCTAVE_US_TYPE2_CMP_OP, - OCTAVE_US_TYPE2_CMP_OPS, OCTAVE_SU_TYPE2_CMP_OP, - OCTAVE_SU_TYPE2_CMP_OPS, OCTAVE_TYPE2_CMP_OPS): - New macros for comparison operations. Avoid potential - problems with default conversions when comparing signed and - unsigned values. - - 2004-11-03 John W. Eaton - - * dMatrix.cc (Matrix::inverse): Return info == -1 for any failure. - * CMatrix.cc (ComplexMatrix::inverse): Likewise. - - 2004-10-19 John W. Eaton - - * Array.cc (assignN): Avoid resizing if assignment will fail. - - 2004-10-18 John W. Eaton - - * Array.cc (assign2): Save result of squeeze operation. - Squeeze if ndims is > 2, not if length of RHS vector is > 2. - - 2004-10-11 David Bateman - - * oct-fftw.cc (class octave_fftw_planner): Add inplace[2] to - flag whether transform in- or out-of-place. - (octave_fftw_planner::octave_fftw_planner): Initialize it. - (octave_fftw_planner::create_plan): Use it. - - 2004-09-24 John W. Eaton - - * Array.cc (assign2, assignN): If index is empty, allow RHS to be - any empty matrix, not just []. - - 2004-09-23 John W. Eaton - - * mx-ops: Include scalar zero value in type definitions. - Delete zero information from ops section. - * mk-ops.awk: Use type-specific zero info. - - * mx-op-defs.h (MS_BOOL_OP, SM_BOOL_OP, MM_BOOL_OP, NDS_BOOL_OP, - SND_BOOL_OP, NDND_BOOL_OP): Args now include zero values for both - LHS and RHS. - (MS_BOOL_OPS2, SM_BOOL_OPS2, MM_BOOL_OPS2, NDS_BOOL_OPS2, - SND_BOOL_OPS2, NDND_BOOL_OPS2): New macros. - (MS_BOOL_OPS, SM_BOOL_OPS, MM_BOOL_OPS, NDS_BOOL_OPS, - SND_BOOL_OPS, NDND_BOOL_OPS): Define in terms of 2-zero versions. - - * idx-vector.h (idx_vector::idx_vector_rep::idx_vector_rep (const - intNDArray&)): Use explicit as_double () conversion in call to - tree_to_mat_idx. - - * oct-inttypes.h (octave_int::operator float): New conversion. - (pow): Instead of "if (b_val)", use "if (b_val != zero)". - Likewise for the "if (b_val & one)" test. - (operator <<, operator >>): Type of retval is octave_int, not T1. - - 2004-09-23 David Bateman - - * oct-inttypes.h (OCTAVE_INT_DOUBLE_CMP_OP, OCTAVE_DOUBLE_INT_CMP_OP): - New macros. Use them to define mixed intX-double and double-intX ops. - - 2004-09-22 Federico Zenith - - * DASPK-opts.in, DASRT-opts.in, ODESSA-opts.in: - Fix doc string layout to avoid overfull hbox in printed output. - - 2004-09-21 John W. Eaton - - * mach-info.h (octave_mach_info::flt_fmt_native): Delete. - * mach-info.cc (octave_mach_info::string_to_float_format): - For "native", set actual native format. - (octave_mach_info::float_format_as_string): Delete flt_fmt_native case. - - 2004-09-17 David Bateman - - * CmplxSCHUR.cc (CmplxSCHUR::init): New arg, calc_unitary to make the - calculation of the unitary matrix optional. - * dbleSCHUR.cc (SCHUR::init): Ditto. - * CmplxSCHUR.h, dbleSCHUR.h: Update decls. - - 2004-09-15 David Bateman - - * oct-sort.h (octave_sort::set_compare (bool (*comp) (T, T))): - New function to set the comparison function for the sort. - - 2004-09-10 John W. Eaton - - * lo-mappers.cc (xround): Fix typo. - - 2004-09-08 John W. Eaton - - * Array.h (Array::~Array): Declare virtual. - - * idx-vector.h (idx_vector::idx_vector): Initialize rep in member - initializaion list. Don't set rep->count since the rep - constructor does that. - - 2004-09-07 John W. Eaton - - * data-conv.cc (oct_data_conv::string_to_data_type): Handle dt_logical. - (oct_data_conv::data_type_as_string): Likewise. - - * data-conv.h (oct_data_conv::data_type): Add dt_logical to list. - - * Range.cc (round): Delete unused function. - - * lo-mappers.cc (xround): Rename from round. Change all uses. - If HAVE_ROUND, call round, otherwise fake with floor and ceil. - - * oct-inttypes.h: Include here. - - 2004-09-03 David Bateman - - * boolNDArray.cc (boolNDArray::concat, boolNDArray::insert): - New functions for boolean matrix concatenation. - * boolNDArray.h: Provide decls. - - 2004-09-03 John W. Eaton - - * oct-inttpes.h (OCTAVE_INT_CMP_OP): Convert operarands to double - to avoid signed/unsigned int comparison problems. - - * mx-ops: Generate CMP and BOOL ops for mixed integer types and - for mixed integer and double types. - - * mk-ops.awk: Output BIN_OP_DECLS, CMP_OP_DECLS, and BOOL_OP_DECLS - separately, and only if needed. - - * oct-inttypes.h (octave_fit_to_range): Use constructor instead of - static_cast for type conversion. - - 2004-09-01 John W. Eaton - - * oct-inttypes.h (pow, operator +, operator -, operator *, - operator /): Handle mixed integer/double ops. If op generates a - NaN, set result to 0. - (octave_int::operator - (void)): Convert to double, then negate, - then fit to range. - - * mx-ops: Define integer types. Include declarations for mixed - integer/double ops. - - 2004-08-31 John W. Eaton - - * oct-inttypes.h (pow): Args now const reference. - (octave_int::operator *=, octave_int::operator /=, - octave_int::operator <<=, octave_int::operator >>=): - New member functions. - (OCTAVE_INT_BITSHIFT_OP): Delete macro. - (operator >> (const octave_int& x, const T2& y)): - Define in terms of >>=. - (operator << (const octave_int& x, const T2& y)): - Define in terms of <<=. - (bitshift): Operate on octave_int objects, not the values, so - we get proper saturation properties. - - 2004-08-31 David Bateman - - * oct-inttypes.h (pow (constT, T)): New template. - - * int8NDArray.cc, int16NDArray.cc, int32NDArray.cc, uint8NDArray.cc, - uint16NDArray.cc, uint32NDArray.cc: Instantiate power function. - - 2004-08-31 John W. Eaton - - * oct-inttypes.h (octave_int::byte_size): New function. - - 2004-08-31 John W. Eaton - - * Makefile.in (EXTRAS): Add intNDArray.cc to the list. - - * data-conv.h (oct_data_conv::data_type): Include sized types. - Explicitly number enum elements. - - * data-conv.cc (oct_data_conv::string_to_data_type (const - std::string&, int&, oct_data_conv::data_type&, - oct_data_conv::data_type&)): New function. - (oct_data_conv::string_to_data_type (const std::string&, int&, - oct_data_conv::data_type&)): New function. - (oct_data_conv::data_type_as_string): New function. - - * dMatrix.cc (read_int, do_read, Matrix::read): Delete. - (write_int, do_write, Matrix::write): Delete. - * dMatrix.h (Matrix::read, Matrix::write): Delete decls. - - * byte-swap.h: Use template functions and specialization. - Change all uses. - (swap_2_bytes, swap_4_bytes, swap_8_bytes): Delete. - - 2004-08-30 John W. Eaton - - * oct-inttypes.h (octave_int_fit_to_range): Use template - specializations to avoid warnings about signed/unsigned comparisons. - - 2004-08-28 John W. Eaton - - * data-conv.cc (do_float_format_conversion (unsigned char *, - size_t, int, oct_mach_info::float_format)): New function. - (GET_SIZED_INT_TYPE): New macro. - (string_to_data_type): Use it to return sized types corresponding - to Octave array data types. - (strip_spaces): New function. - (do_double_format_conversion, do_float_format_conversion): Pass - from_fmt and to_fmt. Don't always assume the to_fmt is the native - float format. - (do_double_format_conversion, - IEEE_big_double_to_IEEE_little_double, - VAX_D_double_to_IEEE_little_double, - VAX_G_double_to_IEEE_little_double, Cray_to_IEEE_little_double, - IEEE_little_double_to_IEEE_big_double, - VAX_D_double_to_IEEE_big_double, VAX_G_double_to_IEEE_big_double, - Cray_to_IEEE_big_double, IEEE_little_double_to_VAX_D_double, - IEEE_big_double_to_VAX_D_double, VAX_G_double_to_VAX_D_double, - Cray_to_VAX_D_double, IEEE_little_double_to_VAX_G_double, - IEEE_big_double_to_VAX_G_double, VAX_D_double_to_VAX_G_double, - Cray_to_VAX_G_double): - Pass data as void*, not double*. - (do_float_format_conversion, IEEE_big_float_to_IEEE_little_float, - VAX_D_float_to_IEEE_little_float, - VAX_G_float_to_IEEE_little_float, Cray_to_IEEE_little_float, - IEEE_little_float_to_IEEE_big_float, - VAX_D_float_to_IEEE_big_float, VAX_G_float_to_IEEE_big_float, - Cray_to_IEEE_big_float, IEEE_little_float_to_VAX_D_float, - IEEE_big_float_to_VAX_D_float, VAX_G_float_to_VAX_D_float, - Cray_to_VAX_D_float, IEEE_little_float_to_VAX_G_float, - IEEE_big_float_to_VAX_G_float, VAX_D_float_to_VAX_G_float, - Cray_to_VAX_G_float): - Pass data as void*, not float*. - - 2004-08-27 John W. Eaton - - * byte-swap.h (swap_bytes): New template versions, with - specializations. - (swap_2_bytes, swap_4_bytes, swap_8_bytes): Delete. - Change all uses. - - 2004-08-24 David Bateman - - * chNDArray.cc (concat): Check whether matrix to be inserted is - empty instead of checking final matrix. - * dNDArray.cc (concat): Likewise. - * CNDArray.cc (concat): Likewise. - - 2004-08-23 David Bateman - - * dim-vector.h (dim_vector::concat): Correct incrementation for - non-existent dimensions. - - 2004-08-09 John W. Eaton - - * idx-vector.h (idx_vector::idx_vector_rep::tree_to_mat_idx - (const octave_int&)): New member function. - (idx_vector::idx_vector_rep::tree_to_mat_idx (double, bool&), - idx_vector::idx_vector_rep::tree_to_mat_idx (int)): - Now member functions instead of static in idx-vector.cc. - (idx_vector::idx_vector_rep::idx_vector_rep (const octave_int&), - idx_vector::idx_vector_rep::idx_vector_rep (const intNDArray&)): - New template constructors. - - 2004-08-05 John W. Eaton - - * EIG.cc (EIG::init): Add volatile qualifier to nvr decl. - - * intNDArray.cc (intNDArray::operator !, intNDArray::all, - intNDArray::any): Sprinkle with this-> as needed. - * mx-inlines.cc (MX_ND_REDUCTION, MX_ND_CUMULATIVE_OP): Likewise. - - 2004-08-03 John W. Eaton - - * Array.cc (Array::squeeze): Do nothing for 2-d arrays. For - arrays with more than two dimensions and only one non-singleton - dimension, return a column vector. - - 2004-07-28 John W. Eaton - - * oct-cmplx.h (pow (const Complex&, const double&): - Convert second arg to complex to avoid libstdc++ bug. - - 2004-07-27 John W. Eaton - - * oct-inttypes.h (bitshift): New arg, MASK. - (OCTAVE_INT_BITSHIFT_OP): Bitshift does not saturate. - - 2004-07-23 John W. Eaton - - * Array.cc (Array::reshape): Return *this if no change in size. - - 2004-07-23 David Bateman - - * Array.cc, Array.h (cat_ra): Delete. - * Array.h, Array-C.cc, Array-d.cc, Array-ch.cc, Array-i.cc - (INSTANTIATE_ARRAY_CAT): Delete. - - * dNDArray.cc, dNDArray.h, CNDArray.cc, CNDArray.h, chNDArray.cc, - chNDArray.h, intNDArray.cc, intNDArray.h (cat): Delete. - - * Array.cc (Array::insert): Copy data in NDArray version. - - * dNDArray.cc, dNDArray.h, CNDArray.cc, CNDArray.h, chNDArray.cc, - chNDArray.h (concat): New function used for concatenation that does - an indexed copy of one array into another. - - * dim-vector.h (concat): New function to concatenate dim_vectors. - - * dNDArray.cc, dNDArray.h, CNDArray.cc, CNDArray.h, chNDArray.cc, - chNDArray.h, intNDArray.cc, intNDArray.h (insert): New function for - insertion of one NDArray into another. - - * oct-inttype.cc (OCTAVE_INT_CONCAT_FN, OCTAVE_INT_CONCAT_DECL): New - macros to define the int/uint concatenation functions. - - * uint8NDArray.cc, uint16NDArray.cc, uint32NDArray.cc, uint64NDArray.cc - int8NDArray.cc, int16NDArray.cc, int32NDArray.cc, int64NDArray.cc - (OCTAVE_INT_CONCAT_FN): Instantiate the concatenation function . - - * uint8NDArray.h, uint16NDArray.h, uint32NDArray.h, uint64NDArray.h - int8NDArray.h, int16NDArray.h, int32NDArray.h, int64NDArray.h - (OCTAVE_INT_CONCAT_DECL): Declare the int/uint concatentaion - functions. - - 2004-07-22 David Bateman - - * oct-sort.h: Don't include oct-obj.h. - - * lo-specfun.cc (is_integer_value): New function. - (zbesj, zbesi, zbesy): Special case negative integer or half - integer orders that cause overflow for small arguments. - - 2004-07-12 John W. Eaton - - * oct-inttypes.h (octave_int::nbits): New function. - (bitshift (const octave_int&, int)): New function. - - 2004-06-14 John W. Eaton - - * mx-base.h: Include headers for new int types. - - * dNDArray.h, dNDArray.cc (NDArray::NDArray (const boolNDArray&), - NDArray::NDArray (const charNDArray&)): Delete. - (template explicit NDArray (const intNDArray&)): New - constructor. - (NDArray::squeze): Call MArrayN::squeeze, not ArrayN::squeeze. - - * chMatrix.h (CharMatrix::transpose): New forwarding functions for - return type conversion. - - * ComplexNDArray.h, ComplexNDArray.cc - (ComplexNDArray::ComplexNDArray (const ArrayN&), - (ComplexNDArray::ComplexNDArray (const NDArray&), - (ComplexNDArray::ComplexNDArray (const boolNDArray&), - (ComplexNDArray::ComplexNDArray (const charNDArray&)): Delete. - - (ComplexNDArray::squeze): Call MArrayN::squeeze, not ArrayN::squeeze. - - * MArrayN.h: - (template explicit MArrayN::MArrayN (const Array2&), - (template MArrayN::MArrayN (const ArrayN&), - (template explicit MArrayN::MArrayN (const MArray&)): - New constructors. - (ArrayN::reshape, ArrayN::permute, ArrayN::ipermute, - ArrayN::squeeze): - New forwarding functions for return type conversion. - - * ArrayN.h: - (template explicit ArrayN::ArrayN (const Array2&), - (template explicit ArrayN::ArrayN (const ArrayN&), - (template explicit ArrayN::ArrayN (const Array&), - (template explicit ArrayN::ArrayN (const Array&, - const dim_vector&)): New constructors. - (ArrayN::reshape, ArrayN::permute, ArrayN::ipermute, - ArrayN::transpose): - New forwarding functions for return type conversion. - - * Array.h (template Array::Array (const Array&)): - New constructor. - (Array::coerce, Array::byte_size): New functions. - - * Array-i.cc, MArray-i.cc: Instantiate new integer types. - - * oct-inttypes.h, int16NDArray.h, int32NDArray.h, int64NDArray.h, - int8NDArray.h , intNDArray.h, uint16NDArray.h, uint32NDArray.h, - uint64NDArray.h, uint8NDArray.h, int16NDArray.cc, int32NDArray.cc, - int64NDArray.cc, int8NDArray.cc, intNDArray.cc, uint16NDArray.cc, - uint32NDArray.cc, uint64NDArray.cc, uint8NDArray.cc: New files. - * Makefile.in: Add them to the appropriate lists. - - 2004-06-04 John W. Eaton - - * mx-inlines.cc (MX_ND_REDUCTION): New arg, RET_ELT_TYPE. Use - "RET_ELT_TYPE ()" rather than "false" as fill value for retval - resize op. Change all uses. - - 2004-06-03 David Bateman - - * Array.cc (assignN): Allow magic colon for dimensions lvalue - greater than the existing number of dimensions in lvalue. - - 2004-04-30 David Bateman - - * dim_vector.h (dim_vector::dim_vector_rep::dim_vector_rep): - New arg, fill_value. - (dim_vector::resize): Allow optional fill_value argument. - - * Array.cc (Array::index (Array&, int, const T&)): - Don't chop trailing dimensions of Array if there is - more than one element in idx_vector. Resize the return value to - the size of Array. - - * Array-util.cc (short_freeze): Better freeze of last dimension of - idx_vector that is shorter than a dim_vector. - - 2004-04-23 John W. Eaton - - * oct-sort.cc: Don't include oct-obj.h. - - 2004-04-22 John W. Eaton - - * Array.cc (Array::index2, Array::indexN): - Don't set invalid dimensions on return value. - - 2004-04-21 John W. Eaton - - * mx-inlines.cc (MX_ND_REDUCTION): Chop trailing singletons. - - 2004-04-06 David Bateman - - * Array.cc (Array::resize_no_fill (const dim_vector& dv), - Array::resize_and_fill (const dim_vector& dv, const T& val)): - Make their behavior equivalent except for filling vs. not filling. - - * oct-sort.cc: New template class for arbitrary sorting. - * oct-sort.h: Declaration of sort class. - * Makefile: Add them to the appropriate lists. - - 2004-04-02 John W. Eaton - - * mx-inlines.cc (MX_ND_CUMULATIVE_OP): Fix off-by-one error. - - 2004-04-02 David Bateman - - * lo-specfun.cc (besselj, bessely, besseli, besselk, besselh1, - besselh2, airy, biry, betainc, gammainc, do_bessel): - New N-d array versions. - (SN_BESSEL, NS_BESSEL, NN_BESSEL): New macros. - * lo-specfun.h (besselj, bessely, besseli, besselk, besselh1, - besselh2, airy, biry, betainc, gammainc): Provide decls. - - * dNDArray.cc (NDArray::min, NDArray::max, min, max): - New functions. - * dNDArray.h (NDArray::min, NDArray::max, min, max): Provide decls. - - * CNDArray.cc (ComplexNDArray::min, ComplexNDArray::max, min, max): - New functions. - * CNDArray.h (ComplexNDArray::min, ComplexNDArray::max, min, max): - Provide decls. - - 2004-03-17 David Hoover - - * DASPK.cc (DASPK::do_integrate): Always add n*n elements to the - work vector, not just when using a numerical Jacobian. - - 2004-03-11 John W. Eaton - - * so-array.cc (SND_CMP_OP, NDS_CMP_OP, NDND_CMP_OP): - Omit empty result args. - - * Array.cc (Array::Array (const Array&, const dim_vector&)): - Move here from Array.h, check that size of array arg is not - smaller than the size defined by the new dimensions. - - 2004-03-10 John W. Eaton - - * Array.cc (Array::index2): Allow result to be N-d if indexing - a scalar or vector with an N-d array. - - 2004-03-09 John W. Eaton - - * Array.cc (Array::index2): If scalar or vector is indexed by - matrix, return object that is the same size as the index. - - * mx-op-defs.h (NDND_CMP_OP, MM_CMP_OP): Require dimensions to agree. - Eliminate MT_RESULT args. Return value is always size of args. - (MS_CMP_OP, SM_CMP_OP, NDS_CMP_OP, SND_CMP_OP): - Eliminate EMPTY_RESULT arg. - Return value is always size of matrix or N-d array arg. - (TBM, FBM, NBM): Delete unused macros. - - 2004-03-05 John W. Eaton - - * Array.cc (Array::maybe_delete_elements): Return immediately - if all LHS dimensions are zero. For one index case, freeze and - sort idx_vec before checking length, and do nothing if - num_to_delete is zero. - (Array::maybe_delete_elements_2): Omit Fortran-indexing warning. - - 2004-03-04 David Bateman - - * dNDArray.cc (NDArray::ifourier): Arg is int, not const int. - * CNDArray.cc (ComplexNDArray::ifourier): Likewise. - - 2004-03-03 Hans Ekkehard Plesser - - * base-lu.cc (base_lu<>::L): Check bounds before setting diagonal - element. - - 2004-03-03 John W. Eaton - - * Range.h (Range::Range): Add cache to member initialization list. - (Range::clear_cache): New private function. - - * Range.h (Range::set_base, Range::set_limit, Range::set_inc): - Use clear cache. Don't do anything if range does not change. - * Range.cc (Range::sort): Likewise. - - 2004-03-02 Paul Kienzle - - * Range.cc (Range::matrix_value): Cache result. - (Range::sort): Clear cache. - * Range.h (Range::cache): New data member. - (Range::set_base, Range::set_limit, Range::set_inc): Clear cache. - (Range::print_range): Delete. - - 2004-03-02 David Bateman - - * oct-fftw.cc: Only two versions of plan, and avoid endless - changes between them. Faster for small fft's. - (octave_fftw_planner::simd_align, octave_fftw_planner::rsimd_align): - New member variables. - (octave_fftw_planner::ialign, octave_fftw_planner::oalign, - octave_fftw_planner::rialign, octave_fftw_planner::roalign): Delete. - Change all uses. - (CHECK_SIMD_ALIGNMENT): New macro. - (octave_fftw_planner::create_plan): Use it. - - 2004-03-01 Petter Risholm - - * Array.cc (Array::insertN): Eliminate N-d indexing. - - * mx-inlines.cc (MX_ND_CAT): Delete macro. - - * dNDArray.h, chNDArray.h, CNDArray.h (cat): Change declaration. - * dNDArray.cc (NDArray::cat): Call new form of cat function. - * chNDArray.cc (charNDArray::cat): Ditto. - * CNDArray.cc (ComplexNDArray::cat): Ditto. - - * Array.h (cat_ra): Return int. Accept idx and move args, not add_dim. - * Array.cc (cat_ra): Speed up implementation by avoiding N-d indexing. - - 2004-02-24 John W. Eaton - - * oct-rl-edit.c (octave_rl_set_startup_hook, - octave_rl_get_startup_hook, octave_rl_set_event_hook, - octave_rl_get_event_hook): Omit casts. - * oct-rl-edit.h (rl_startup_hook_fcn_ptr, rl_event_hook_fcn_ptr): - Return value for function pointer typedef is now int. - * cmd-edit.h (command_editor::startup_hook_fcn, - command_editor::event_hook_fcn): Likewise. - * cmd-hist.cc, cmd-hist.h (command_history::goto_mark, - command_history::do_goto_mark, gnu_history::do_goto_mark): - Return type is now int. Return 0. - - * EIG.cc (EIG::init, EIG::symmetric_init): - Query Lapack for workspace size. - - 2004-02-23 John W. Eaton - - * Array.cc (Array::resize_and_fill (const dim_vector&, const T&)): - Fix thinko in extending dimensions. - - 2004-02-20 John W. Eaton - - * Range.cc (Range::matrix_value, Range::min, Range::max): - Don't compute values beyond the limits of the range. - (operator << (std::ostream&, const Range&)): Likewise. - - 2004-02-18 John W. Eaton - - * oct-fftw.cc (octave_fftw_planner::create_plan): - Cast IN and OUT args to ptrdiff_t instead of long before masking. - From Paul Kienzle . - - * Array.cc (Array::insertN (const Array&, int, int)): - Rename from Array::insert. - (Array::insert2 (const Array&, int, int)): - Reinstate old Array::insert function under this name. - (Array::insert (const Array&, int, int)): - New function. Dispatch to insert2 or insertN as appropriate. - - 2004-02-17 John W. Eaton - - * oct-fftw.cc (convert_packcomplex_1d, convert_packcomplex_Nd): - Sprinkle with OCTAVE_QUIT. - - 2004-02-16 David Bateman - - * oct-fftw.cc (octave_fftw_planner::create_plan, octave_fftw::fftNd): - Add support for FFTW 3.x. Include the ability to - use the real to complex transform for fft's of real matrices - (octave_fftw_planner::create_plan2d): Delete. - (octave_fftw::fft2d): Delete. - (convert_packcomplex_1d, convert_packcomplex_Nd): - New static functions. - * oct-fftw.h: Update decls. - - * dMatrix.cc (Matrix::fourier, Matrix::ifourier, - Matrix::fourier2d, Matrix::ifourier2d): FFT's use real to complex - transforms. 1D FFT of a matrix done as single call rather than - loop. Update for FFTW 3.x - * CMatrix.cc (ComplexMatrix::fourier, ComplexMatrix::ifourier, - ComplexMatrix::fourier2d, ComplexMatrix::ifourier2d): 1D fft of a - matrix done as single call rather than loop. Update for FFTW 3.x. - - * dNDArray.cc (NDArray::fourier, NDArray::ifourier, - NDArray::fourierNd, NDArray::ifouriourNd): New fourier transform - functions for Nd arrays. - * dNArray.h Provide decls. - * CNDArray.cc (ComplexNDArray::fourier, ComplexNDArray::ifourier, - ComplexNDArray::fourierNd, ComplexNDArray::ifouriourNd): New - fourier transform functions for complex Nd arrays. - * CNArray.h: Provide decls. - - 2004-02-15 Petter Risholm - - * Array.cc (Array::insert (const Array&, int, int)): - Make it work for N-d arrays. - - * ArrayN.h (ArrayN::insert (const ArrayN& a, int, int)): - New function. - - * CNDArray.cc (ComplexNDArray::insert (const NDArray&, int, int), - ComplexNDArray::insert (const ComplexNDArray&, int, int)): - New functions. - * CNDArray.h: Provide decls. - - 2004-02-14 John W. Eaton - - * Makefile.in (LINK_DEPS): Always define. - - * Array.cc (Array::squeeze): Always return an array with at - least two dimensions. - - 2004-02-13 Petter Risholm - - * mx-inlines.cc (MX_ND_CAT): New macro. - * dNDArray.cc (NDArray::cat): New function. - * dNDArray.h: Provide decls. - * CNDArray.cc (complexNDArray::cat): New function. - * CNDArray.h: Provide decls. - * chNDArray.cc (charNDArray::cat): New function. - * chNDArray.h: Provide decls. - - 2004-02-13 John W. Eaton - - * Array.cc (maybe_delete_elements_2): Allow X(n) = [] for 2-d X. - (Arrayassign2): Also call maybe_delete_elements for single - index when rows and columns or LHS are both greater than 1. - - 2004-02-13 Petter Risholm - - * Array.cc (Array::maybe_delete_elements): - Check for index out of bounds. Handle one index. - - * Array.cc (Array::indexN): Use dim_vector (0, 0) instead of - dim_vector (0) to create empty return vector. - - 2004-02-07 John W. Eaton - - * Array.cc (Array::assignN): Don't crash if trying to resize a - non-empty LHS when the number of lhs dimensions is less than the - number of indices. Detect error if attempting to resize non-empty - LHS with colon indices. - - 2004-02-06 John W. Eaton - - * Array.cc (Array::resize_and_fill): Don't bother to assign any - values unless the length of the new array is greater than 0. - (Array::resize_no_fill): Likewise. - - * Array-util.cc (index_in_bounds): Also return false if ra_idx(i) - is equal to dimensions(i). - - * Array-util.h, Array-util.cc (equal_arrays, any_zero_len, - get_zero_len_size, number_of_elements): - Delete unused functions. - - * Array-util.cc (get_ra_idx): Use dim_vector::numel instead of - number_of_elements function. - * Array.cc (Array::indexN): Likewise. - - * Array.cc (Array::indexN): Use dim_vector::operator == instead - of equal_arrays function. - (Array::index, Array::indexN, Array::assignN) Use - dim_vector::any_zero instead of any_zero_len function. - - * Array.cc (Array::assignN): Eliminate special case for empty index. - Don't skip reshaping and resizing if RHS is empty. - - * Array.cc (Array::assignN): Simplify loop for array assignment. - Move body of MAYBE_RESIZE_ND_DIMS here since it is only used once. - Delete unused variables is_colon and is_colon_equiv. - Correctly resize for expressions like x(:,:,2) = ones(3,3) when - LHS is not yet defined. - Error for resizing if number of indices is less than number of LHS - dimensions. - - * Array.cc (Array::maybe_delete_elements): Maybe warn about - Fortran-style indexing. - - 2004-02-05 John W. Eaton - - * Array.cc (Array::assignN): Simplify. - Allow assignments to succeed if number if indices is less than the - number of RHS dimensions. - - 2004-02-05 Petter Risholm - - * Array.cc (Array::maybe_delete_elements): Reshape LHS - when number of indices is less than number of dimensions. - - * Array.cc (Array::assignN, Array::maybe_delete_elements): - Remove unsued variable lhs_inc. - - * Array.cc (Array::maybe_delete_elements): Declare idx_is_colon - and idx_is_colon_equiv Array instead of dim_vector. - - * Array.cc (Array::assignN): Compute new dims in a cleaner way. - - * Array.cc (Array::index): Check for frozen_lengths.length () - == n_dims before checking to see if all indices are colon_equiv. - - 2004-02-05 John W. Eaton - - * Array.cc (Array::assignN): Require RHS == 0x0 matrix for - deleting elements. - (Array::index): Remove trailing singletons in ra_idx, but leave - at least ndims elements. - - 2004-02-05 Petter Risholm - - * Array.cc (Array::assignN): Accept assignment of a vector - oriented differently from the index. - - * dim-vector.h (dim_vector::squeeze): Return value always has at - least two dimensions. - - 2004-02-04 John W. Eaton - - * dim-vector.h (dim_vector::squeeze): New function. - (Array::assignN): Use it instead of chop_trailing_singltons for - deciding whether the assignment conforms. - - * Array.cc (Array::assignN): Simplify dimension check by - comparing rhs_dims and frozen_len sans trailing singletons. - - 2004-02-03 John W. Eaton - - * idx-vector.cc (tree_to_mat_idx): New arg, conversion_error. - Call error handler and return conversion_error == true if arg is - not integer. - (IDX_VEC_REP::idx_vector_rep): Exit early if conversion_error. - - 2004-02-02 John W. Eaton - - * boolNDArray.h (boolNDArray::boolNDArray): Declare dim_vector - reference arg const. - - 2004-01-30 John W. Eaton - - * Array-flags.cc: Include Array-flags.h, not Array.h. Doh. - - 2004-01-30 Jakub Bogusz - - * Array-flags.h (liboctave_wfi_flag, liboctave_wrore_flag): - Now bool, to match definition in Array-flags.cc. - - 2004-01-23 John W. Eaton - - * file-ops.cc: Include instead of for new - definition of OCTAVE_LOCAL_BUFFER. - - * EIG.cc, EIG.h (EIG::init, EIG::symmetric_init, EIG::hermitian_init): - New arg, calc_eigenvectors. - * EIG.h (EIG:EIG): New optional arg, calc_eigenvectors. - Based on patch from David Bateman . - - 2004-01-22 John W. Eaton - - * Array.cc (Array::assign2, Array::assignN): - For X(I) = RHS, don't restrict I to fewer elements than X. - - * Array.cc (Array::assign2): Simplify indexing for X(I) = RHS case. - - 2004-01-22 Petter Risholm - - * mx-inlines.cc (MX_ND_REDUCTION, MX_ND_CUMULATIVE_OP): - Simplify calculation of number of elements in retval. - - * Array.cc (Array::assignN): Eliminate unnecessray code for - filling when RHS is scalar and dimension lengths agree. - - 2004-01-22 John W. Eaton - - * Makefile.in (distclean): Remove mx-ops.h, $(MX_OP_INC), - $(VX_OP_INC), $(MX_OP_SRC), $(VX_OP_SRC), and $(OPTS_INC). - - 2004-01-22 Petter Risholm - - * Array.cc (Array::resize_and_fill): Correctly copy old elements. - (Array::assign2): Check for RHS dimensions larger than 2. - - 2004-01-21 Petter Risholm - - * Array.h (Array::chop_trailing_singletons): New function. - * Array.cc (Array::assignN): Use it on LHS. - - * Array.cc (Array::assignN): Fix incorrectly nested if statement. - Retrieve scalar element by passin 0 instead of an index array. - Check for singleton dimensions where RHS is matrix or higher dimension. - Make sure index is in bounds. - - 2004-01-19 John W. Eaton - - * lo-ieee.cc (octave_ieee_init): Ensure that octave_Inf, - octave_NaN, and octav_NA values are always initialized. Check - floating point format, not HAVE_ISINF, HAVE_FINITE, or HAVE_ISNAN - to decide whether to do IEEE initialization. - - 2004-01-06 David Bateman - - * CNDArray.cc (ComplexNDArray::any_element_is_inf_or_nan, - ComplexNDArray::all_elements_are_real, ComplexNDArray::all_integers, - ComplexNDArray::too_large_for_float): New functions - - * CNDArray.cc (operator <<, operator >>): New IO operators. - * CNDArray.h: Provide decls. - * dNDArray.cc (operator <<, operator >>): New IO operators. - * dNDArray.h: Provide decls. - - 2003-12-10 John W. Eaton - - * mx-ops: Delete bnda x bnda, b x bnda, and bnda x b ops since - they are already defined in boolNDArray.cc. - - * Array-util.cc (get_zero_len_size): Delete. - * Array.cc (Array::index (Array&, int, const T&)): - Handle zero-length result dimensions the same as empty original - indices. - - 2003-12-09 John W. Eaton - - * dim-vector.h (dim_vector::chop_trailing_singleton_dims, - dim_vector::dim_vector_rep::chop_trailing_singleton_dims): - New functions. - * Array.cc (ArrayN::indexN): Use it. - (ArrayN::index (Array&, int, const T&)): Likewise. - - 2003-11-26 John W. Eaton - - * boolNDArray.cc: Define BOOL ops. Define mixed CMP ops. - * boolNDArray.h: Declare BOOL ops. Declare mixed CMP ops. - - 2003-11-25 John W. Eaton - - * mk-ops.awk: Also emit #include "Array-util.h". - - * mx-ops: Add bool, boolMatrix, and boolNDarray types. - Add bnda x bnda, b x bnda, and bnda x b ops. - - * MArray-misc.cc: Delete. - * Makefile.in (MATRIX_SRC): Remove it from the list. - - * Array-util.h, Array-util.cc (gripe_nonconformant): Move here from - MArray.h, MArray2.h, MArrayN.h, and MArray-misc.cc. - - 2003-11-24 John W. Eaton - - * dbleQR.cc (QR::init): Use separate pwork pointers. - * CmplxQR.cc (ComplexQR::init): Likewise. - - * oct-group.cc (octave_group::getgrnam): Pass correct args to - two-arg getgrnam version. - - * Array.cc (assignN): Allow single indexing to work. - (Array::range_error (const char*, const Array&)): - Report index values. - - * Array.cc (Array::index): Delete unused arg names. - * ODESSA.cc (odessa_j): Likewise. - * DASRT.cc (ddasrt_f, ddasrt_g): Likewise. - * DASPK.cc (ddaspk_psol): Likewise. - * lo-mappers.cc (imag): Likewise. - * Array-util.cc (get_zero_len_size): Likewise. - * kpse.cc (path_search, path_find_first_of): Likewise. - * cmd-edit.cc (do_generate_filename_completions): Likewise. - - * dim-vector.h (dim_vector::all_ones): New function. - - 2003-11-23 John W. Eaton - - * idx-vector.h (idx_vector::orig_empty): Check orig_dims for - zeros, not orig_rows or orig_columns. - (idx_vector::idx_vector_rep::orig_rows): Define using orig_dims. - (idx_vector::idx_vector_rep::orig_columns): Likewise. - - * idx-vector.cc (idx_vector::idx_vector_rep::orig_nr, - (idx_vector::idx_vector_rep::orig_nc): Delete. - - * idx-vector.cc (idx_vector::idx_vector_rep): - Use initialization lists for constructors. - - * Array.cc (Array::indexN): Correctly handle single colon index. - Omit special case for ra_idx.capacity () == 1. - Always allow single index for matrix args with optional warning. - - * idx-vector.h, idx-vector.cc: Convert boolMatrix functions to use - boolNDArray. Likewise, convert Matrix functions to use NDArray. - - * Array-so.cc: New file. Move instantiations here from so-array.h. - * Makefile.in (TI_SRC): Add it to the list. - - * MArray-defs.h (DO_VS_OP2, DO_VV_OP2): Accept args for element - type and the names of the left and right operands. Change all uses. - - * so-array.cc, so-array.h: New files. Move streamoff_array here - from src/ov-streamoff.h and src/ov-streamoff.cc. - - 2003-11-20 John W. Eaton - - * MArrayN.cc (operator -=, operator +=): Check dimensions, not - just length. - - * Array2.h, Array3.h, DiagArray2.h, DiagArray2.cc, MDiagArray2.h, - ArrayN.h: Add this-> or Base:: qualifiers for references to - non-dependent member functions and data as needed. - - * DiagArray2.h, DiagArray2.cc: Delete unused code. - - * Array2.h (Array2::operator =): Don't copy dimensions here. - * Array3.h (Array3::operator =): Likewise. - * DiagArray2.h (DiagArray2::operator =): Likewise. - Include Array.h, not Array2.h. - - 2003-11-19 John W. Eaton - - * str-vec.cc (list_in_columns): Fix previous change. - - * dim-vector.h (dim_vector::num_ones): New function. - * Array.cc (maybe_delete_elements): Use it instead of - num_ones (const Array&). - - * Array.cc (assignN): Omit dubious check of singleton dimensions. - - * dNDArray.cc (NDArray::all_elements_are_int_or_inf_or_nan, - NDArray::any_element_is_inf_or_nan, NDArray::too_large_for_float): - New functions. - * dNDArray.h: Provide decls. - - * dMatrix.h (Matrix::any_element_is_negative, - Matrix::any_element_is_inf_or_nan, Matrix::too_large_for_float, - Matrix::all_elements_are_int_or_inf_or_nan, Matrix::all_integers): - Simplify. - - * dNDArray.cc (NDArray::abs): Make it work for N-d arrays. - * CNDArray.cc (ComplexNDArray::abs): Likewise. - - * dNDArray.cc (real, imag): New functions. - * dNDArray.h: Provide decls. - - 2003-11-18 John W. Eaton - - * Makefile.in (TEMPLATE_SRC): Move MArrayN.cc here from MATRIX_SRC. - - 2003-11-15 John W. Eaton - - * Array.h (Array::resize (int, const T&)): Reinstate. - * MArray.h (resize): Delete. - * MArray2.h (resize): Delete. - * DASRT.cc (DASRT::integrate): Use resize, not resize_and_fill. - * ODESSA (ODESSA::integrate): Likewise. - - 2003-11-14 John W. Eaton - - * Makefile.in (dist): Depend on stamp-prereq. - - 2003-11-12 John Eaton - - * mach-info.c (oct_mach_info::init_float_format) [CRAY]: - Kluge to make it work. - - * lo-ieee.cc (octave_ieee_init): Set octave_Inf, octave_NaN, and - octave_NA to DBL_MAX if native float format is vaxd, vaxg, or cray. - - * cmd-edit.cc (gnu_readline::do_generate_filename_completions, - default_command_editor::do_generate_filename_completions, - command_editor::generate_filename_completions): New functions. - * cmd-edit.h: Provide decls. - * oct-rl-edit.c (octave_rl_filename_completion_function): New - function. - * oct-rl-edit.h: Provide decl. - - 2003-11-11 John W. Eaton - - * Array.h (INSTANTIATE_ARRAY_ASSIGN, INSTANTIATE_ARRAY_AND_ASSIGN, - INSTANTIATE_ARRAY): New macros. - * Array-C.cc, Array-b.cc, Array-ch.cc, Array-d.cc, Array-i.cc, - Array-idx-vec.cc, Array-s.cc, Array-str.cc, ODESSA.cc: Use them. - - * Array.h (Array::ipermute): New function. - - 2003-11-11 Petter Risholm - - * Array.cc (Array::permute): New function. - * Array.h: Provide decl. - - * Array-util.cc (calc_permutated_idx): New function. - * Array-util.h: Provide decl. - - 2003-11-10 John W. Eaton - - * Array.cc (Array::index2): Return value has orientation of - indexed value if indexing a vector with a bool matrix. - - * ArrayN.h (ArrayN::get_size): Delete. - - * Array.cc, ArrayN.cc, dNDArray.cc, CNDArray.cc, boolNDArray.cc, - chNDArray.cc: Include Array-util.h instead of ArrayN-inline.h. - - * ArrayN-inline.h: Delete. - * Array-util.h, Array-util.cc: New files, from ArrayN-inline.h. - * Makefile.in: Fix the appropriate lists. - - * Array.cc, Array.h, ArrayN.h, CMatrix.cc, CNDArray.h, - CRowVector.cc, CmplxQR.cc, CollocWt.h, DASPK.h, DASRT.h, DASSL.h, - FEGrid.cc, LP.h, LSODE.h, MArrayN.h, ODE.h, ODES.h, ODESSA.cc, - boolNDArray.h, chNDArray.h, dMatrix.cc, dNDArray.h, dRowVector.cc, - dbleQR.cc, kpse.cc, oct-rl-hist.c, str-vec.cc, str-vec.h: - Avoid -Wshadow warnings. - - 2003-11-08 John Eaton - - * Array.h (Array::nil_rep): Qualify return type with typename. - - * mk-ops.awk: Delete elements of bool_headers array individually. - - 2003-11-07 John W. Eaton - - * Array.cc (maybe_delete_elements): Rename arg idx to ra_idx. - - 2003-10-31 Petter Risholm - - * mx-inlines.cc (MX_ND_CUMULATIVE_OP): New macro. - - * CNDArray.cc, CNDArray.h (ComplexNDArray::cumsum, - ComplexNDArray::cumprod): Return ComplexNDArray. Handle N-d arrays. - * dNDArray.cc, dNDArray.h (NDArray::cumsum, NDArray::cumprod): - Return NDArray. Handle N-d arrays. - - 2003-10-31 John W. Eaton - - * LSODE.cc (LSODE::do_integrate): Avoid name conflict on systems - that upcase Fortran names by calling dlsode instead of lsode. - - * ODESSA.cc (ODESSA::do_integrate): Avoid name conflict on systems - that upcase Fortran names by calling dodessa instead of odessa. - - * file-ops.cc (file_ops::symlink): Cope with systems that expect - non-const args for symlink system call. - (file_ops::readlink): Likewise, for readlink. - - * DASRT.cc (DASRT::integrate): Fix typo in Fortran function name. - - 2003-10-30 John W. Eaton - - * mach-info.h (oct_mach_info): Prefix enum elements with flt_fmt_. - Change all uses. - - 2003-10-29 Petter Risholm - - * dNDArray.cc (NDArray::cumprod, NDArray::cumsum, NDArray::prod, - NDArray::sum, NDArray::sumsq, NDArray::abs): New functions. - * dNDArray.h: Provide decls. - * CNDArray.cc (ComplexNDArray::cumprod, ComplexNDArray::cumsum, - ComplexNDArray::prod, ComplexNDArray::sum, ComplexNDArray::sumsq, - ComplexNDArray::abs): New functions. - * CNDArray.h: Provide decls. - - * mx-inlines.cc (MX_ND_REDUCTION): Rename from MX_ND_ANY_ALL. - Generalize to handle other reduction operations. - (MX_ND_REAL_OP_REDUCTION, MX_ND_COMPLEX_OP_REDUCTION, - MX_ND_ALL_ANY_REDUCTION): New macros. - - 2003-10-29 John W. Eaton - - * Array.cc (Array::reshape): New function. - * Array.h: Provide decl. - - * dim-vector.h (dim_vector::numel): New function. - - * dim-vector.h (dim_vector_rep::dim_vector_rep (int, const - dim_vector&)): Correctly handle case of n < dv->ndims. - - 2003-10-28 John W. Eaton - - * dim-vector.h (dim_vector::any_zero): New function. - (dim_vector::str): New default arg, sep. - - * Array.h (Array::numel): New function. - - 2003-10-27 Petter Risholm - - * mx-inlines.cc (MX_ND_ALL_EXPR, MX_ND_ANY_EXPR, - MX_ND_ALL_EVAL, MX_ND_ANY_EVAL, MX_ND_ALL_ANY): New macros. - * dNDArray.h (NDArray::all, NDArray::any): Return type now boolNDArray. - * CNDArray.h (ComplexNDArray::all, ComplexNDArray::any): Likewise. - * boolNDArray.h (boolNDArray::all, boolNDArray::any): Likewise. - * chNDArray.h (charNDArray::all, charNDArray::any): Likewise. - * dNDArray.cc (NDArray::all, NDArray::any): Make them work. - * CNDArray.cc (ComplexNDArray::all, ComplexNDArray::any): Likewise. - * boolNDArray.cc (boolNDArray::all, boolNDArray::any): Likewise. - * chNDArray.cc (charNDArray::all, charNDArray::any): Likewise. - - 2003-10-27 John W. Eaton - - * Array.cc (Array::resize_and_fill): Allow number of dimensions - to change. From Petter Risholm . - - * oct-rand.cc, CColVector.cc, CMatrix.cc, CRowVector.cc, - CmplxAEPBAL.cc CmplxCHOL.cc, CmplxHESS.cc, CmplxLU.cc, CmplxQR.cc, - CmplxQRP.cc, CmplxSCHUR.cc, CmplxSVD.cc, CollocWt.cc, DASPK.cc, - DASRT.cc, DASSL.cc, EIG.cc, LSODE.cc, NLEqn.cc, ODESSA.cc, - Quad.cc, dColVector.cc, dMatrix.cc, dRowVector.cc, dbleAEPBAL.cc, - dbleCHOL.cc, dbleHESS.cc, dbleLU.cc, dbleQR.cc, dbleQRP.cc, - dbleSCHUR.cc, dbleSVD.cc, lo-specfun.cc: - Use new F77 arg macros in declarations of external Fortran - subroutines and for calling them. - - 2003-10-25 John W. Eaton - - * Array.cc (Array::resize_no_fill (const dim_vector&)): - Allow number of dimensions to change. - (Array::resize_no_fill (int, int)): Require ndims to be 0 or 2. - (Array::resize_and_fill (int, int, const T&)): Likewise. - (Array::resize_no_fill (int, int, int)): Require ndims to be 0 or 3. - (Array::resize_and_fill (int, int, int, const T&)): Likewise. - (Array::transpose): Require ndims to be 2. - (Array::index2): Likewise. - (Array::index (idx_vector&, idx_vector&, int, const T&)): Likewise. - (Array::maybe_delete_elements_2): Likewise. - (Array::maybe_delete_elements (idx_vector&, idx_vector&)): Likewise. - (Array::index1): Use resize_and_fill. - (MAYBE_RESIZE_ND_DIMS): Likewise. - - * ODESSA.cc (ODESSA::integrate): Use resize_and_fill for x_s_out. - - * MArray2.h (MArray2::resize (int, int)): New function. - (MArray2::resize (int, int, const T&)): New function. - - * MArray.h (MArray::resize (int)): New function. - (MArray::resize (int, const T&)): New function. - - * DASRT.cc (DASRT::integrate): Use resize_and_fill for jroot. - - * DASPK-opts.in: Use single-arg resize for initial condition - heuristics. - - * dim-vector.h (class dim_vector): Now reference counted. - (dim_vector_rep::elem): Use assert to check that index is in bounds. - - 2003-10-23 John W. Eaton - - * Array.cc (Array::squeeze): Delete redundant retval decl. - - * mx-cdm-cm.cc, mx-cdm-cm.h, mx-cdm-cs.cc, mx-cdm-cs.h, - mx-cdm-dm.cc, mx-cdm-dm.h, mx-cdm-m.cc, mx-cdm-m.h, mx-cdm-s.cc, - mx-cdm-s.h, mx-cm-cdm.cc, mx-cm-cdm.h, mx-cm-dm.cc, mx-cm-dm.h, - mx-cm-m.cc, mx-cm-m.h, mx-cm-s.cc, mx-cm-s.h, mx-cs-cdm.cc, - mx-cs-cdm.h, mx-cs-dm.cc, mx-cs-dm.h, mx-cs-m.cc, mx-cs-m.h, - mx-dm-cdm.cc, mx-dm-cdm.h, mx-dm-cm.cc, mx-dm-cm.h, mx-dm-cs.cc, - mx-dm-cs.h, mx-dm-m.cc, mx-dm-m.h, mx-dm-s.cc, mx-dm-s.h, - mx-m-cdm.cc, mx-m-cdm.h, mx-m-cm.cc, mx-m-cm.h, mx-m-cs.cc, - mx-m-cs.h, mx-m-dm.cc, mx-m-dm.h, mx-ops.h, mx-s-cdm.cc, - mx-s-cdm.h, mx-s-cm.cc, mx-s-cm.h, mx-s-dm.cc, mx-s-dm.h, - vx-ccv-cv.cc, vx-ccv-cv.h, vx-ccv-s.cc, vx-ccv-s.h, vx-crv-rv.cc, - vx-crv-rv.h, vx-crv-s.cc, vx-crv-s.h, vx-cs-cv.cc, vx-cs-cv.h, - vx-cs-rv.cc, vx-cs-rv.h, vx-cv-ccv.cc, vx-cv-ccv.h, vx-cv-cs.cc, - vx-cv-cs.h, vx-rv-crv.cc, vx-rv-crv.h, vx-rv-cs.cc, vx-rv-cs.h, - vx-s-ccv.cc, vx-s-ccv.h, vx-s-crv.cc, vx-s-crv.h: Delete. These - files are now automatically generated. - - * Makefile.in ($(VX_OP_INC), $(VX_OP_SRC), $(MX_OP_INC), - $(MX_OP_SRC)): Generate lists with new mk-ops.awk script. - Add rules to generate these files and mx-ops.h. - (stamp-prereq): Depend on these files. - - * mx-ops, vx-ops, mk-ops.awk: New files. - * Makefile.in (DISTFILES): Add them to the list. - - 2003-10-17 John W. Eaton - - * NDArray.cc (NDArray::NDArray (const boolNDArray), - NDArray::NDArray (const charNDArray)): New constructors. - (NDArray::operator !): New function. - Provide NDS_CMP_OPS, NDS_BOOL_OPS, SND_CMP_OPS, SND_BOOL_OPS, - NDND_CMP_OPS, NDND_BOOL_OPS. - - * CNDArray.cc (ComplexNDArray::ComplexNDArray (const NDArray&), - ComplexNDArray::ComplexNDArray (const boolNDArray&), - ComplexNDArray::ComplexNDArray (const charNDArray&)): - New constructors. - (ComplexNDArray::operator !): New function. - Provide NDS_CMP_OPS, NDS_BOOL_OPS, SND_CMP_OPS, SND_BOOL_OPS, - NDND_CMP_OPS, NDND_BOOL_OPS. - - * ArrayN.h (resize (const dim_vector&)): Fix typo. - - * boolNDArray.cc (boolNDArray::operator !): New function. - Provide NDND_CMP_OPS. - - * MArrayN.cc (operator +=, operator -=): New functions. - Provide product and quotient functions. - - * MArray-misc.cc (gripe_nonconformant (const char *, dim_vector&, - dim_vector&)): New function. - - * dim-vector.h (dim_vector::str, dim_vector::all_zero, - operator ==, operator !=): New functions. - * ArrayN.cc (operator <<): Use dim_vector::str here. - - * Array.cc (Array::resize_no_fill, Array::resize_and_fill): - No need to save old dimensions. - - * oct-rand.cc (MAKE_RAND_ND_ARRAY): New macro. - (octave_rand::nd_array): New function. - * oct-rand.h (octave_rand::nd_array): Provide decl. - - * mx-op-defs.h (NDCMP_OP_DECL, NDBOOL_OP_DECL, NDS_BIN_OP_DECLS, - NDS_BIN_OP, NDS_BIN_OPS, NDS_CMP_OP_DECLS, NDS_CMP_OP, - NDS_CMP_OPS, NDS_BOOL_OP_DECLS, NDS_BOOL_OP, NDS_BOOL_OPS, - NDS_OP_DECLS, SND_BIN_OP_DECLS, SND_BIN_OP, SND_BIN_OPS, - SND_CMP_OP_DECLS, SND_CMP_OP, SND_CMP_OPS, SND_BOOL_OP_DECLS, - SND_BOOL_OP, SND_BOOL_OPS, SND_OP_DECLS, NDND_BIN_OP_DECLS, - NDND_BIN_OP, NDND_BIN_OPS, NDND_CMP_OP_DECLS, NDND_CMP_OP, - NDND_CMP_OPS, NDND_BOOL_OP_DECLS, NDND_BOOL_OP, NDND_BOOL_OPS, - NDND_OP_DECLS): New macros. - * mx-cm-m.h, mx-cm-s.h, mx-cs-m.h, mx-m-cm.h, mx-m-cs.h, - mx-s-cm.h, mx-cm-m.cc, mx-cm-s.cc, mx-cs-m.cc, mx-m-cm.cc, - mx-m-cs.cc, mx-s-cm.cc: Use them. - - * mx-defs.h (class NDArray, class ComplexNDArray, class - boolNDArray, class charNDArray): New forward decls. - - 2003-10-15 John W. Eaton - - * Array.cc (assign2): No error (but don't do anything either) for - expressions like x([],j) = scalar. - - 2003-10-09 John W. Eaton - - * Array.cc (assignN): Allow lhs(:) = scalar. - - * CNDArray.cc (ComplexNDArray::increment_index): New function. - * dNDArray.cc (NDArray::increment_index): Likewise. - * boolNDArray.cc (boolNDArray::increment_index): Likewise. - * chNDArray.cc (charNDArray::increment_index): Likewise. - - * dim-vector.h (rows, cols): Delete unused data members. - - * Array.cc (Array::get_size): Fix thinko. - - 2003-10-08 John W. Eaton - - * Array.cc (Array::squeeze): New function. - * CNDArray.h (ComplexNDArray::squeeze): Likewise. - * dNDArray.h (NDArray::squeeze): Likewise. - * boolNDArray.h (boolNDArray::squeeze): Likewise. - * chNDArray.h (charNDArray::squeeze): Likewise. - - 2003-10-06 Petter Risholm - - * Array.cc (ArrayN::indexN): New definition. - * Array.h (Array::indexN): Provide decl. - * Array.cc (ArrayN::index (idx_vector&, int, const T&): - Call indexN if more than 2 indices. - (ArrayN::index (Array&, int, const T&)): - Make it (mostly) work. - * ArrayN-inline.h (number_of_elements, get_ra_idx, short_freeze): - New functions. - - 2003-10-02 John W. Eaton - - * cmd-edit.cc (do_readline): Pass eof to octave_fgetl. - * lo-utils.cc (octave_fgets, octave_fgetl): New overloaded - versions with eof arg. - - 2003-09-20 John W. Eaton - - * Array.h (dimensions): Now public. - template - (assign (Array&, const Array&, const LT&), - assign1 (Array&, const Array&, const LT&), - assign2 (Array&, const Array&, const LT&), - assignN (Array&, const Array&, const LT&), - resize_no_fill (int), - resize_no_fill (int, int), - resize_no_fill (int, int, int), - resize_no_fill (const dim_vector&), - resize_and_fill (int, const T&), - resize_and_fill (int, int, const T&), - resize_and_fill (int, int, int, const T&), - resize_and_fill (const dim_vector&, const T&)): Now public. - - * Array.cc: Include . - - 2003-09-19 John W. Eaton - - * Array.cc: Merge Array-idx.h. - * Array-idx.h: Delete. - - * chNDArray.h, chNDArray.cc, boolNDArray.h, boolNDArray.cc: New files. - - * Array.h, Array-idx.h, Array.cc: Fold all N-d functionality here. - Turn inheritance hierarchy upside down (2-d and 3-d arrays are now - just special cases of the general purpose N-d Array object). - - * dim-vector.h: New file. Use dim_vector objects instead of - ints or Array objects to represent the size of Array - objects. - - * MArray-defs.h (INSTANTIATE_MARRAYN_FRIENDS): New macro. - - * Array2-idx.h, Array3-idx.h, Array2.cc, Array3.cc: Delete. - - * mx-base.h: Include NDArray header files. - - * MArray-C.cc, MArray-d.cc: Also instantiate ArrayN objects. - - * Array-C.cc, Array-b.cc, Array-ch.cc, Array-d.cc, Array-i.cc, - Array-s.cc: Also instantiate ArrayN objects. - Don't instantiate assign funcitons for Array2 objects. - - * CDiagMatrix.cc (ComplexDiagMatrix::diag): Signal error with - liboctave_error_handler, not cerr. - * CMatrix.cc (ComplexMatrix::diag): Likewise. - * dDiagMatrix.cc (DiagMatrix::diag): Likewise. - * dMatrix.cc (Matrix::diag): Likewise. - - * Array-flags.cc, Array.cc, Array.h, Array2.h, Array3.h, ArrayN.h: - Omit checks for HEAVYWEIGHT_INDEXING. - - 2003-09-12 John W. Eaton - - * mx-base.h: Include CNDarray.h. Include dNDArray.h, not NDArray.h. - - * CNDARray.h, CNDArray.cc: New files. - * Makefile.in: Add them to the appropriate lists. - - * dNDArray.h: Rename from NDArray.h. - * dNDArray.cc: Rename from NDArray.cc. - * Makefile.in: Rename them here too. - - 2003-09-10 Petter Risholm - - * mx-base.h: Include NDArray.h, not ArrayN.h. - - * MArrayN.cc, MArrayN.h, NDArray.h, NDArray.cc: New files. - * Makefile.in: Add them to the appropriate lists. - - 2003-09-09 David Bateman - - * lo-specfun.cc (zbesj, zbesy, zbesi, zbesk, zbesh1, zbesh2, airy, - biry): Always request scaled results from AMOS functions and - perform reverse scaling on results if scaled result not requested - by user. - - 2003-09-04 John W. Eaton - - * lo-specfun.cc (xlgamma): Require nonnegative argument. - - 2003-09-09 John W. Eaton - - * Array-d.cc: Instantiate assign functions. - - 2003-09-09 Petter Risholm - - * ArrayN-idx.h (vector_equivalent, equal_arrays): New functions. - (get_elt_idx): Index ra_idx correctly. - - * ArrayN-inline.h (index_in_bounds): Index is also condidered in - bounds if it is exactly on the bound. - - * ArrayN.cc (ArrayN::maybe_delete_dims): New function. - * ArrayN.h: Provide decl. - - * ArrayN.h (ArrayN::ArrayN (const Matrix&)): New constructor. - - * idx-vector.h (idx_vector::orig_dims): New member variable. - (idx_vector::idx_vector_rep::orig_dimensions): New function. - (idx_vector::orig_dimensions): New function. - - 2003-09-04 John W. Eaton - - * lo-specfun.cc (xlgamma): Require nonnegative argument. - - 2003-09-04 Petter Risholm - - * ArrayN-idx.h (maybe_delete_elements): Implement function. - (is_in, how_many_lgt, all_ones): New functions. - - 2003-09-03 John W. Eaton - - * Makefile.in (MATRIX_INC): Add ArrayN-inlines.h to the list. - - 2003-09-03 Petter Risholm - - * ArrayN-inline.h: New file. - (index_in_bounds, increment_index): Move here. - * ArrayN.cc: From here. - - * ArrayN.h (maybe_delete_elements): New arg, resize_fill_value. - * ArrayN-idx.h (assign): New function. - - 2003-08-28 John W. Eaton - - * lo-specfun.cc (zbesj, zbesy, zbesi, zbesk, airy, biry): - Also zero imaginary part of result if real part of input value is - zero. - - 2003-07-30 Heine Kolltveit - - * mx-base.h: Include ArrayN.h. - - 2003-30-07 Heine Kolltveit - - * ArrayN.cc (operator <<): Corrected output. - - 2003-07-30 John W. Eaton - - * ArrayN.cc (increment_index): New arg, start_dimension. - - 2003-07-29 Heine Kolltveit - - * ArrayN.cc (operator <<): Improve output readability. - - 2003-07-29 Petter Risholm - - * ArrayN.cc (ArrayN::resize (const Array&, const T&)): - * ArrayN.cc (ArrayN::resize (const Array&)): - Initialize old_len before changing size. - - 2003-07-29 John W. Eaton - - * Makefile.in (install-lib): Use $(INSTALL), not - $(INSTALL_PROGRAM) for $(SHLLIB) files. - - 2003-07-25 John W. Eaton - - * lo-mappers.cc (xmin, xmax): Handle NaN in a Matlab-compatible - way. Handle NA in an R-compatible way. - - * lo-cieee.c (lo_ieee_is_NaN_or_NA): Also check for lo_ieee_is_NA. - (lo_ieee_is_NA): Don't call isnan unless HAVE_ISNAN is defined. - - * lo-mappers.h (octave_is_NA (const Complex&)): Provide decl. - (octave_is_NaN_or_NA (const Complex&)): Likewise. - - * dMatrix.cc (Matrix::row_min, Matrix::row_max, - Matrix::column_min, Matrix::column_max): Ignore NaNs. - * CMatrix.cc (ComplexMatrix::row_min, ComplexMatrix::row_max, - ComplexMatrix::column_min, ComplexMatrix::column_max): Likewise. - - 2003-07-11 John W. Eaton - - * Array2-idx.h (assign (Array2&, const Array2&, const LT&)): - Pass true for resize_ok arg to freeze. - * Array-idx.h (assign (Array&, const Array&, const LT&)): - Likewise. - - * idx-vector.cc (IDX_VEC_REP::freeze): New arg, warn_resize; - resize_ok arg is now bool. - * idx-vector.h (idx_vector::freeze): Likewise. - - * Array-flags.cc, Array-flags.h (liboctave_wrore_flag): - Rename from liboctave_rre_flag. Now bool. - (liboctave_wfi_flag): Now bool. - - * Array2-idx.h (MAYBE_RESIZE_LHS): Don't check liboctave_rre_flag. - - 2003-07-11 Russell Standish - - * Array.h (resize_fill_value): Now a top-level template function. - Accept object as argument. Change all uses. - - 2003-07-09 John W. Eaton - - * Array-flags.cc, Array-flags.h (liboctave_pcv_flag): Delete. - - * Array2-idx.h (Array2::index): Use liboctave_wfi_flag, not - liboctave_dfi_flag. - (assign): Likewise. For indexed assignments like X(I) = RHS with - X undefined or empty, always create a row vector. - - * Array-flags.cc (liboctave_wfi_flag): Rename from liboctave_dfi_flag. - * Array-flags.h (liboctave_wfi_flag): Ditto. - - 2003-06-24 John W. Eaton - - * Array2-idx.h (Array2::index (idx_vector&, int, const T&)): - Magic colon indexing always produces an object with one column. - - 2003-06-21 Paul Kienzle - - * kpse-xfns.h (NAME_BEGINS_WITH_DEVICE): Arg is std::string, not char*. - - * lo-ieee.h (signbit): Eliminate redundant extern "C" decl. - - 2003-06-18 John W. Eaton - - * dMatrix.cc (any_element_is_negative): If new optional arg - neg_zero is true, also return true for negative zero. - - 2003-06-16 John W. Eaton - - * DASSL.cc (DASSL::do_integrate): Set liw to 21 + n, not 20 + n. - Handle step limit. - * DASSL-opts.in: New option for step limit. - - 2003-06-16 Per Persson - - * oct-shlib.cc: Include mach-o/dyld.h, not Mach-O/dyld.h. - - 2003-06-16 John W. Eaton - - * DASRT.cc (DASRT::integrate): Set liw to 21 + n, not 20 + n. - Store step limit in iwork(20), not iwork(18). - - 2003-05-16 Paul Kienzle - - * oct-rand.cc: Use liboctave's clock layer instead of the system clock. - - 2003-05-14 John W. Eaton - - * Makefile.in: Handle DESTDIR. - - * kpse.cc (kpse_path_iterator::next): Skip consecutive colons here. - (kpse_path_iterator::set_end): Don't miss last element when not - followed by a colon. - - 2003-05-11 John W. Eaton - - * Array-idx.h (Array::index): Fix off-by-one error. - - 2003-05-07 John W. Eaton - - * kpse.cc (kpse_absolute_p): Fix typo in translation. - (find_first_of): Also do an absolute search on each - name before looking in the path. - - 2003-05-04 John W. Eaton - - * kpse.cc (dir_list_add): Ensure that directory ends with a - directory separator. - - 2003-04-30 John W. Eaton - - * pathsearch.cc: Include kpse.cc here. - - * kpse.cc: All functions are now static. Massive surgery to - condense kpathsearch library to a single file of just the - essentials for Octave and convert to using C++ strings (no more - calls to malloc, very few calls to new, so there should be much - less potential for introducing memory leaks now). - - * Makefile.in (EXTRAS): Move kpse.cc here from - LIBOCT_PATHSEARCH_CXX_SOURCES. - - * kpse.h, kpse-config.h: Delete. - * Makefile.in (INCLUDES): Delete them from the list. - - 2003-04-26 John W. Eaton - - * str-vec.cc (string_vector::append (const std::string&), - string_vector::append (const string_vector&)): New methods. - - 2003-04-24 John W. Eaton - - * kpse.cc, kpse.h: Replace fn_type with std::string. - - * lo-ieee.h (lo_ieee_signbit): Provide signbit decl for MinGW systems. - - * kpse.cc (xclosedir): Don't define or declare for Windows. - (READABLE): Now a static function to avoid warnings from MinGW - compiler. - - 2003-04-23 John W. Eaton - - * kpse.cc: Move most functions from kpse-xfns.c here and make - static. Include most of kpse-xfns.h directly, removing - unnecessary bits. - - * dMatrix.cc (Matrix::pseudo_inverse): Now const. - * CMatrix.cc (ComplexMatrix::pseudo_inverse): Likewise. - - 2003-04-18 John W. Eaton - - * getopt.c, getopt1.c, getopt.h: Move here from kpathsea. - * Makefile.in: Add them to the appropriates lists. - - * oct-getopt.c: Include "getopt.h", not . - - * Makefile.in (liboctave.$(LIBEXT), liboctave.$(SHLEXT)): Adjust - for new locations of kpathsea objects. - Delete kpathsea targets. - - * pathsearch.cc (dir_path::set_program_name): Delete. - - * kpse.cc: New file. - * Makefile.in (LIBOCT_PATHSEARCH_CXX_SOURCES): Add it to the list. - - * kpse.c: New file. - * Makefile.in (LIBOCT_PATHSEARCH_C_SOURCES): Add it to the list. - - * kpse.h, kpse-config.h, kpse-xfns.h: New files. - * Makefile.in (INCLUDES): Add them to the list. - - * oct-kpse.h: Delete. - * Makefile.in (INCLUDES): Delete it from the list. - - 2003-04-07 John W. Eaton - - * dbleSVD.h (SVD::SVD, SVD::operator =): Also copy type_computed. - * CmplxSVD.h (ComplexSVD::ComplexSVD, ComplexSVD::operator =): - Likewise. - From Quentin H. Spencer . - - 2003-03-03 John W. Eaton - - * oct-getopt.c: Include , not "getopt.h". - - 2003-02-21 John W. Eaton - - * oct-alloc.h (DECLARE_OCTAVE_ALLOCATOR): Handle systems with or - without placement delete. - - * CMatrix.cc (ComplexMatrix::all_elements_are_real): Don't lose -0 - imaginary parts. - - * lo-ieee.h (lo_ieee_signbit): New macro. - - 2003-02-18 David Bateman - - * dMatrix.cc (Matrix::inverse, Matrix::determinant, Matrix::solve): - Use Lapack instead of Linpack. - * CMatrix.cc (ComplexMatrix::inverse, ComplexMatrix::determinant, - ComplexMatrix::solve): Likewise. - - * dMatrix.cc (Matrix::determinant, Matrix::inverse): New arg, - calc_cond. If 0, skip condition number calculation. - * CMatrix.cc (ComplexMatrix::determinant, ComplexMatrix::inverse): - Likewise. - - * CmplxLU.cc (ComplexLU::ComplexLU): Allow non-square matrices. - * dbleLU.cc (LU::LU): Likewise. - * base-lu.cc (base_lu::L), base_lu::U, base_lu::P): Likewise. - - 2002-10-31 John W. Eaton - - * octave.test/arith/prod-4.m, octave.test/arith/sum-4.m: - - 2003-02-14 John W. Eaton - - * Array2-idx.h (Array2::index): Fix thinko. - Additional compatibility fix. - - 2003-02-13 Arno Klaassen - - * Array2-idx.h, Array2.cc, Array2.h, Array3.cc, Array3.h, - ArrayN.cc, ArrayN.h, DiagArray2.cc, DiagArray2.h, MDiagArray2.h: - Sprinkle with Array:: as necessary for gcc 3.4. - - 2003-02-13 John W. Eaton - - * Array2-idx.h (Array2::index (idx_vector&, int, const T&)): - Compatibility fix. - - 2003-02-10 John W. Eaton - - * CColVector.cc (ComplexColumnVector::extract_n): New function. - * CRowVector.cc (ComplexRowVector::extract_n): Likewise. - * CMatrix.cc (ComplexMatrix::extract_n): Likewise. - * dColVector.cc (ColumnVector::extract_n): Likewise. - * dRowVector.cc (RowVector::extract_n): Likewise. - * dMatrix.cc (Matrix::extract_n): Likewise. - - * CColVector.cc (ComplexColumnVector::insert): Improve efficiency - with make_unique and xelem. - * CRowVector.cc (ComplexRowVector::insert): Likewise. - * CMatrix.cc (ComplexMatrix::insert, ComplexMatrix::fill, - ComplexMatrix::extract, ComplexMatrix::row, - ComplexMatrix::column): Likewise. - * dColVector.cc (ColumnVector::insert): Likewise. - * dRowVector.cc (RowVector::insert): Likewise. - * dMatrix.cc (Matrix::insert, Matrix::fill, Matrix::extract, - Matrix::row, Matrix::column): Likewise. - - 2003-01-30 John W. Eaton - - * lo-mappers.cc (imag (double)): Return 0.0 for all args, even NaN. - - 2003-01-28 John W. Eaton - - * CMatrix.cc, dMatrix.cc: Move min and max functions here, from - src/DLD-FUNCTIONS/minmax.cc, and make them extern. - * CMatrix.h, dMatrix.h: Provide decls. - - 2003-01-24 John W. Eaton - - * oct-rand.h, oct-rand.cc: New files. - * Makefile.in: Add them to the appropriate lists. - - 2003-01-23 John W. Eaton - - * Array2-idx.h (Array2::index): Fix off-by-one error. - - 2003-01-16 Mumit Khan - - * oct-syscalls.cc: Include signal.h. - - 2003-01-10 John W. Eaton - - * oct-syscalls.cc (octave_syscalls::kill): New function. - * oct-syscalls.h: Provide decl. - - - 2003-01-06 John W. Eaton - - * dMatrix.cc (Matrix::read): Set size and return immediately if - there is nothing to read. - - 2003-01-05 John W. Eaton - - * lo-cutils.c: Define _XOPEN_SOURCE. - - 2003-01-04 John W. Eaton - - * getopt.h: Update to version from kpathsearch, so we will install - the version that we are using. - - * getopt.c, getopt1.c: Delete. - (INCLUDES): Delete them from the list. We'll get these files from - kpathsearch. - - * Makefile.in (liboctave.$(LIBEXT)): Link directly to - ../kpathsea/STATIC/*.o. - (liboctave.$(SHLEXT)): Link directly to ../kpathsea/SHARED/*.o. - - 2003-01-03 John W. Eaton - - * dMatrix.cc (read_int, write_int): Avoid warnings about - unreachable code. - - * oct-alloc.h (DECLARE_OCTAVE_ALLOCATOR): Define operator delete - to correspond to placement new operator. - - * dbleDET.cc (DET::value_will_overflow): We want det[1], not det[2]. - (DET::value_will_underflow): Likewise. - * CmplxDET.cc (ComplexDET::value_will_overflow): Likewise. - (ComplexDET::value_will_underflow): Likewise. - - * Makefile.in (distclean): Also remove stamp-prereq. - - * Array2-idx.h (Array2::assign): If assignment conforms but the - RHS and index are empty matrices, don't do anything. - - 2002-12-26 John W. Eaton - - * pathsearch.cc (make_retval, free_c_array, make_c_names, - delete_c_names): New helper functions. - (dir_path::find_first_of): New function. - (dir_path::find_all_first_of): Likewise. - * pathsearch.h: Provide decls. - - * oct-kpse.c (octave_kpse_path_find_first_of): New function. - (octave_kpse_all_path_find_first_of): Likewise. - * oct-kpse.h: Provide decls. - - 2002-12-19 John W. Eaton - - * ODESSA.cc (ODESSA::integrate): Handle maxord. - * ODESSA-opts.in: Likewise. - - * LSODE.cc (ODESSA::integrate): Handle maxord. - * LSODE-opts.in: Likewise. - - 2002-12-18 John W. Eaton - - * ODESSA.cc (ODESSA::ODESSA): Initialize "initialized" data member - in all constructors. - - * Makefile.in (liboctave.$(SHLEXT)): Include $(LIBKPATHSEA) here. - (LINK_DEPS): Not here. - - 2002-12-06 John W. Eaton - - * str-vec.cc (string_vector::compare): New static member function. - * str-vec.h: Provide decl. - (string_vector::sort): Use it. - (str_vec_compare): Delete static function. - - * oct-alloc.h (DECLARE_OCTAVE_ALLOCATOR): Also declare and define - a placement operator new. - - 2002-12-03 John W. Eaton - - * Matrix.h: Include mx-ops.h too. - * mx-ops.h: New file. - - 2002-11-20 John W. Eaton - - * DASRT.cc, DASRT.h, Array.cc, ArrayN.h, Array.h, Array2.cc, - Array2.h, Array3.cc, Array3.h, Bounds.cc, Bounds.h, CRowVector.h, - CDiagMatrix.cc, CDiagMatrix.h, CMatrix.cc, CMatrix.h, - CRowVector.cc, CColVector.h, ChangeLog, CmplxAEPBAL.cc, - CmplxAEPBAL.h, CmplxCHOL.cc, CmplxCHOL.h, CmplxDET.cc, CmplxDET.h, - CmplxHESS.cc, CmplxHESS.h, CmplxLU.cc, CmplxLU.h, CmplxQR.cc, - CmplxQR.h, CmplxQRP.cc, ArrayN.cc, CmplxQRP.h, CmplxSCHUR.cc, - CmplxSCHUR.h, CmplxSVD.cc, CmplxSVD.h, CollocWt.cc, dMatrix.cc, - CollocWt.h, EIG.h, DASSL.cc, FEGrid.h, DASSL.h, DiagArray2.cc, - DiagArray2.h, EIG.cc, FEGrid.cc, LSODE.cc, LPsolve.cc, LPsolve.h, - LSODE.h, LinConst.cc, LinConst.h, MArray.h, MArray.cc, MArray2.cc, - MArray2.h, MDiagArray2.cc, MDiagArray2.h, Range.cc, NLConst.h, - NLEqn.cc, Range.h, NLEqn.h, Quad.cc, dbleQR.h, Quad.h, base-lu.cc, - base-lu.h, boolMatrix.cc, boolMatrix.h, dColVector.cc, - dColVector.h, dDiagMatrix.cc, dDiagMatrix.h, dMatrix.h, - dRowVector.cc, dRowVector.h, dbleAEPBAL.cc, dbleAEPBAL.h, - dbleCHOL.cc, dbleCHOL.h, dbleDET.cc, dbleDET.h, dbleHESS.cc, - dbleHESS.h, dbleLU.cc, dbleLU.h, dbleQR.cc, dbleQRP.cc, dbleQRP.h, - dbleSCHUR.cc, dbleSCHUR.h, dbleSVD.cc, dbleSVD.h, idx-vector.cc, - idx-vector.h, oct-alloc.cc, CColVector.cc, DASPK.h, DASPK.cc, - ODESSA.h, ODES.h, ODESSA.cc, ODES.cc, chMatrix.h, chMatrix.cc: - Use "defined (USE_PRAGMA_INTERFACE_IMPLEMENTATION)" instead of - "! defined (NO_PRAGMA_INTERFACE_IMPLEMENTATION)". - - 2002-11-15 John W. Eaton - - * oct-shlib.cc (octave_dlopen_shlib::open): Use RTLD_GLOBAL too. - From Remy Bruno - - 2002-11-14 John W. Eaton - - * lo-specfun.cc: Use F77_FUNC instead of F77_XFCN for calls to - fortran code that should run fast enough that it is not worth all - the setup costs of F77_XFCN. - - * Quad.cc (user_function): Surround body of function with - BEGIN_INTERRUPT_WITH_EXCEPTIONS, END_INTERRUPT_WITH_EXCEPTIONS. - * ODESSA.cc (odessa_f, odessa_j, odessa_b): Likewise. - * NLEqn.cc (hybrd1_fcn, hybrj1_fcn): Likewise. - * LSODE.cc (lsode_f, lsode_j): Likewise. - * DASSL.cc (ddassl_f, ddassl_j): Likewise. - * DASRT.cc (ddasrt_f, ddasrt_j, ddasrt_g): Likewise. - * DASPK.cc (ddaspk_f, ddaspk_psol, ddaspk_j): Likewise. - - 2002-11-11 John W. Eaton - - * lo-ieee.cc (octave_ieee_init): Check defined (__osf__) instead - of ! defined (linux). - - 2002-11-09 Per Persson - - * oct-shlib.cc (octave_dyld_shlib): New class. - (make_shlib): Instantiate octave_dyld_shlib. - - 2002-11-06 John W. Eaton - - * CMatrix.cc, dMatrix.cc: Sprinkle with OCTAVE_QUIT. - - * ODESSA.cc (odessa_f, odessa_j, odessa_b): Abort on error. - - * Array.h: Include here. - - 2002-11-01 John W. Eaton - - * DASPK.cc (DASPK::do_integrate): Resize rwork and iwork before - using them. Accept inequality contraint option of 0. Assign - pabs_tol and prel_tol before calling DASPK. Don't redeclare - abs_tol and rel_tol. - - * cmd-edit.h (command_editor::filename_completion_desired): New - static function. - (command_editor::do_filename_completion_desired): New virtual function. - * oct-rl-edit.c (octave_rl_filename_completion_desired): New function. - * oct-rl-edit.h: Provide decl. - - * Array2.cc (Array2::get_size): #define MALLOC_OVERHEAD to - avoid OS X linker bug. - * ArrayN.cc (ArrayN::get_size): Likewise. - - 2002-10-31 John W. Eaton - - * ODESFunc.h (ODESFunc::ODES_fsub, ODESFunc::ODES_bsub, - ODESFunc::ODES_jsub): Reorder args for consistency with other - solvers. - * ODESSA.cc: Fix all callers. - - * mx-inlines.cc (MX_BASE_REDUCTION_OP): Also return scalar - MT_RESULT if nr == 1 && nc == 0 && dim == -1 (i.e., - sum(zeros(1,0)) returns 0, not [](1x0)). - - 2002-10-30 John W. Eaton - - * Makefile.in (LINK_DEPS): Include $(FLIBS) here too. - - 2002-10-29 John W. Eaton - - * DASRT.cc (DASRT::integrate): Fix computation of lrw - (ddasrt_f): Combine loops. - - * NLEqn.cc (NLEqn::solve): Return current estimate of solution - instead of empty vector if user termninates iteration. - - 2002-10-28 John W. Eaton - - * lo-utils.cc (read_inf_nan_na, octave_read_double, - octave_read_complex, octave_write_double, octave_write_complex): - New functions. - * CMatrix.cc (operator << (std::ostream&, const ComplexMatrix&)): - Use octave_write_complex. - (operator >> (std::istream&, const ComplexMatrix&)): - Use octave_read_complex. - * dMatrix.cc (operator << (std::ostream&, double)): - Use octave_write_double. - (operator >> (std::istream&, double)): Use octave_read_double. - - 2002-10-25 John W. Eaton - - * oct-kpse.c (octave_kpse_clear_dir_cache): Delete. - * oct-kpse.h: Delete decl. - * pathsearch.cc (dir_path::init): Delete unnecessary call to - ::octave_kpse_clear_dir_cache. - - 2002-10-24 John W. Eaton - - * lo-sstream.h: Undef HAVE_SSTREAM if using a version of g++ - earlier than 3.0. - - * Makefile.in (LINK_DEPS): Include $(LIBKPATHSEA) here. - (liboctave.$(SHLEXT)): Not here. - - 2002-10-17 Paul Kienzle - - * oct-shlib.cc (octave_w32_shlib): New class to support Windows. - - 2002-10-16 John W. Eaton - - * Makefile.in (install-lib): Don't bother with versions for - $(SHLBIN) files. - - 2002-10-16 Paul Kienzle - - * Makefile.in (LIB_DEPS): Include $(LIBS). - - 2002-10-14 John W. Eaton - - * lo-cieee.c: Move everything but lo_ieee_init here. - (lo_ieee_Inf_value, lo_ieee_NA_value, lo_ieee_NaN_value): - New functions. - - * Makefile.in (install): No need to use cd to create links. - (LINK_DEPS): Include $(LIBOCTAVE_LFLAGS) before list of libraries. - - 2002-10-14 Paul Kienzle - - * Makefile.in: Merge liboctave with liboct-readline and - liboct-pathsearch. - Use link dependencies for shared libs if INCLUDE_LINK_DEPS. - (libraries): Depend on versioned library. - (liboctave.$(SHLEXT), liboctave.$(SHLEXT_VER)): Reverse actions -- - build unversioned library, symbolic link adds version info. - (install, uninstall): Handle link and load forms of the library - separately. - - 2002-10-11 John W. Eaton - - * oct-time.cc: Use OCTAVE_USE_WINDOWS_API instead of __WIN32__ and - __CYGWIN__. - - * file-ops.cc (file_ops::dir_sep_char, file_ops::dir_sep_str, - file_ops::dir_sep_chars): New static functions to replace - OCTAVE_DIR_SEP_CHAR, OCTAVE_DIR_SEP_STR, OCTAVE_DIR_SEP_CHARS. - - * oct-env.cc (octave_env::do_set_program_name): - Use file_ops::dir_sep_chars instead of OCTAVE_DIR_SEP_CHARS. - (octave_env::do_base_pathname): Likewise. - (octave_env::do_make_absolute): Likewise. - - * oct-env.cc (octave_env::do_make_absolute): - Use file_ops::dir_sep_str instead of OCTAVE_DIR_SEP_STR. - (octave_env::do_get_home_directory): Likewise. - - * file-ops.cc (is_dir_sep): Use dir_sep_chars instead of embedding - that information here too. - (tilde_find_suffix, isolate_tilde_prefix, tilde_expand_word): - Use file_ops::dir_sep_char instead of OCTAVE_DIR_SEP_CHAR. - - * file-ops.h: Use OCTAVE_HAVE_WINDOWS_FILESYSTEM and - OCTAVE_HAVE_POSIX_FILESYSTEM instead of __WIN32__ and __CYGWIN__. - - 2002-10-09 John W. Eaton - - * oct-env.h (octave_env::current_directory): Now mutable. - (octave_env:do_getcwd): Now const. - - * file-ops.h, file-ops.cc (file_ops::is_dir_sep): New function. - (OCTAVE_DIR_SEP_CHAR, OCTAVE_DIR_SEP_STR, OCTAVE_DIR_SEP_CHARS, - OCTAVE_CURRENT_DIR_STR): New macros. - * oct-env.cc (is_dir_sep): Delete. - (octave_env::do_base_pathname): Look for OCTAVE_DIR_SEP_CHARS, not '/'. - (octave_env::do_set_program_name): Likewise. - (octave_env::do_polite_directory_format): Use file_ops::is_dir_sep - instead of checking for '/'. - (octave_env::pathname_backup): Likewise. - (octave_env::do_absolute_pathname): Likewise. - (octave_env::do_make_absolute): Likewise. - If dot_path is empty, use getcwd to set current_dir. - (octave_env::do_get_home_directory): Use OCTAVE_DIR_SEP_STR - instead of "/". - - 2002-10-07 Paul Kienzle - - * lo-cutils.c: On non-Posix Windows systems, include winsock.h. - - 2002-10-07 Paul Kienzle - - * oct-env.cc (octave_env::do_absolute_pathname): Recognize - absolute path names under MinGW as well. - - 2002-10-07 John W. Eaton - - * oct-env.cc: Include too. - - 2002-10-04 John W. Eaton - - * oct-env.cc (octave_env::do_absolute_pathname): Handle Windows - filenames. - (octave_env::do_make_absolute): Check for absolute name with - do_absolute_path. - (octave_env::do_chdir): Likewise. - (is_dir_sep): New function. - - 2002-10-03 Paul Kienzle - - * oct-time.cc (octave_time::stamp): Better resolution for Windows - systems. - - 2002-10-02 John W. Eaton - - * dMatrix.cc (Matrix::read): Clean up error handling logic. - - 2002-09-30 John W. Eaton - - * file-ops.cc (file_ops::mkdir): Handle one-arg mkdir here. - - * lo-specfun.cc (acosh): Call xdacosh, not dacosh. - - 2002-09-27 Per Persson - - * oct-group.cc (octave_group::octave_group): Dont' forget to set - gr_gid too. - - 2002-09-27 John W. Eaton - - * lo-mappers.cc (xisnan, xfinite, xisinf): Simply forward to - lo_ieee_* functions. - * Makefile.in (LIBOCTAVE_C_SOURCES): Add lo-cieee.c to the list. - * lo-ieee.cc (lo_ieee_double): Rename from ieee_double. - (LO_IEEE_NA_HW, LO_IEEE_NA_LW): Rename from NA_HW and NA_LW. - * lo-cieee.c: New file. - [SCO] (isinf, isnan): Move here from lo-ieee.cc. - * lo-ieee.h: Now all extern "C". - (lo_ieee_isnan, lo_ieee_finite, lo_ieee_isinf): Move here from - lo-mappers.cc and rename from xisnan, xfinite, xisinf. - - * lo-ieee.cc (lo_ieee_hw, lo_ieee_low): Rename from hw and lw. - Now extern. - - 2002-09-26 John W. Eaton - - * Array.cc, Array.h, Array2.cc, Array2.h, Array3.cc, Array3.h, - ArrayN.cc, ArrayN.h, Bounds.cc, Bounds.h, CColVector.cc, - CColVector.h, CDiagMatrix.cc, CDiagMatrix.h, CMatrix.cc, - CMatrix.h, CRowVector.cc, CRowVector.h, CmplxAEPBAL.cc, - CmplxAEPBAL.h, CmplxCHOL.cc, CmplxCHOL.h, CmplxDET.cc, CmplxDET.h, - CmplxHESS.cc, CmplxHESS.h, CmplxLU.cc, CmplxLU.h, CmplxQR.cc, - CmplxQR.h, CmplxQRP.cc, CmplxQRP.h, CmplxSCHUR.cc, CmplxSCHUR.h, - CmplxSVD.cc, CmplxSVD.h, CollocWt.cc, CollocWt.h, DAE.cc, - DASPK.cc, DASPK.h, DASRT.cc, DASRT.h, DASSL.cc, DASSL.h, - DiagArray2.cc, DiagArray2.h, EIG.cc, EIG.h, FEGrid.cc, FEGrid.h, - LPsolve.cc, LPsolve.h, LSODE.cc, LSODE.h, LinConst.cc, LinConst.h, - MArray.cc, MArray.h, MArray2.cc, MArray2.h, MDiagArray2.cc, - MDiagArray2.h, NLConst.h, NLEqn.cc, NLEqn.h, ODES.cc, ODES.h, - ODESSA.cc, ODESSA.h, Quad.cc, Quad.h, Range.cc, Range.h, - base-lu.cc, base-lu.h, boolMatrix.cc, boolMatrix.h, chMatrix.cc, - chMatrix.h, dColVector.cc, dColVector.h, dDiagMatrix.cc, - dDiagMatrix.h, dMatrix.cc, dMatrix.h, dRowVector.cc, dRowVector.h, - dbleAEPBAL.cc, dbleAEPBAL.h, dbleCHOL.cc, dbleCHOL.h, dbleDET.cc, - dbleDET.h, dbleHESS.cc, dbleHESS.h, dbleLU.cc, dbleLU.h, - dbleQR.cc, dbleQR.h, dbleQRP.cc, dbleQRP.h, dbleSCHUR.cc, - dbleSCHUR.h, dbleSVD.cc, dbleSVD.h, idx-vector.cc, idx-vector.h, - oct-alloc.cc: - If __GNUG__, use pragma interface/implementation. Allow this to - be turned off by defining NO_PRAGMA_INTERFACE_IMPLEMENTATION. - - 2002-09-26 Paul Kienzle - - * file-ops.cc (file_ops::readlink): Don't declare buffer if - system readlink function is not available. - - * lo-mappers.cc (xerf, xerfc): Delete. - * lo-mappers.h (xerf, xerfc): Delete decls. - - * lo-mappers.cc: Remove unused #define M_PI. - * lo-specfun.cc: Add #define M_PI if needed. - - 2002-09-23 John W. Eaton - - * cmd-edit.cc (do_decode_prompt_string): Cope with possibility - that geteuid doesn't exist. - - * LP.h: Rename LP class to octave_LP. - LPsolve.h: Change all uses. - - * file-ops.cc, oct-passwd.cc oct-syscalls.cc oct-group.cc: Remove - incorrect token-pasting op. - - * statdefs.h [! S_ISLNK]: undef HAVE_LSTAT instead of trying to - define lstat. - - 2002-09-19 John W. Eaton - - * Array.cc, Array.h, Array2.cc, Array2.h, Array3.cc, Array3.h, - ArrayN.cc, ArrayN.h, Bounds.cc, Bounds.h, CColVector.cc, - CColVector.h, CDiagMatrix.cc, CDiagMatrix.h, CMatrix.cc, - CMatrix.h, CRowVector.cc, CRowVector.h, CmplxAEPBAL.cc, - CmplxAEPBAL.h, CmplxCHOL.cc, CmplxCHOL.h, CmplxDET.cc, CmplxDET.h, - CmplxHESS.cc, CmplxHESS.h, CmplxLU.cc, CmplxLU.h, CmplxQR.cc, - CmplxQR.h, CmplxQRP.cc, CmplxQRP.h, CmplxSCHUR.cc, CmplxSCHUR.h, - CmplxSVD.cc, CmplxSVD.h, CollocWt.cc, CollocWt.h, DAE.cc, - DASPK.cc, DASPK.h, DASRT.cc, DASRT.h, DASSL.cc, DASSL.h, - DiagArray2.cc, DiagArray2.h, EIG.cc, EIG.h, FEGrid.cc, FEGrid.h, - LPsolve.cc, LPsolve.h, LSODE.cc, LSODE.h, LinConst.cc, LinConst.h, - MArray.cc, MArray.h, MArray2.cc, MArray2.h, MDiagArray2.cc, - MDiagArray2.h, NLConst.h, NLEqn.cc, NLEqn.h, ODES.cc, ODES.h, - ODESSA.cc, ODESSA.h, Quad.cc, Quad.h, Range.cc, Range.h, - base-lu.cc, base-lu.h, boolMatrix.cc, boolMatrix.h, chMatrix.cc, - chMatrix.h, dColVector.cc, dColVector.h, dDiagMatrix.cc, - dDiagMatrix.h, dMatrix.cc, dMatrix.h, dRowVector.cc, dRowVector.h, - dbleAEPBAL.cc, dbleAEPBAL.h, dbleCHOL.cc, dbleCHOL.h, dbleDET.cc, - dbleDET.h, dbleHESS.cc, dbleHESS.h, dbleLU.cc, dbleLU.h, - dbleQR.cc, dbleQR.h, dbleQRP.cc, dbleQRP.h, dbleSCHUR.cc, - dbleSCHUR.h, dbleSVD.cc, dbleSVD.h, idx-vector.cc, idx-vector.h, - oct-alloc.cc: - Use USE_PRAGMA_INTERFACE_IMPLEMENTATION instead of __GNUG__ - to decide whether to use the interface/implementation pragmas. - - 2002-09-08 John W. Eaton - - * Makefile.in (INCLUDES): Add lo-sstream.h to the list. - - 2002-08-17 Mumit Khan - - * CmplxCHOL.h, CollocWt.h, cmd-edit.h, oct-shlib.h: Don't use - qualified names. - - 2002-08-17 John W. Eaton - - * Array.h, Array2-idx.h, DiagArray2.cc, Array2.cc, Array3.cc, - ArrayN.cc: Add typename where needed. - - * DASPK.cc: Include lo-sstream.h and use macros instead of using - strstream classes directly. - * DASRT.cc: Likewise. - * DASSL.cc: Likewise. - * LSODE.cc: Likewise. - * ODESSA.cc: Likewise. - - * cmd-hist.cc: Don't include . - * oct-shlib.cc: Likewise. - - * lo-sstream.h: New file. - - 2002-08-16 John W. Eaton - - * LSODE.h (rel_tol, abs_tol, px, pabs_tol, piwork, prwork, itol): - New data members. - (LSODE::sanity_checked): Delete unused data member. - - * DASPKL.h (initialized, abs_tol, rel_tol, px, pxdot, pabs_tol, - prel_tol, pinfo, piwork, prwork): New data members. - * DASSL.h (DASSL): Likewise. - - * DASRT.h (DASRT::sanity_checked): Delete unused data member. - - * DASRT.cc (DASRT::integrate (double)): Better handling of - initialization, changes in options, etc. - * DASPK.cc (DASPK::do_integrate): Likewise. - * DASSL.cc (DASSL::do_integrate): Likewise. - * LSODE.cc (LSODE::do_integrate): Likewise. - - 2002-08-15 John W. Eaton - - * DAEFunc.h (DAEFunc::reset): New data member. - * DAERTFunc.h (DAERTFunc::reset): Likewise. - - * base-de.h (base_diff_eqn::set_stop_time): Force restart here. - (base_diff_eqn::clear_stop_time): Likewise. - - * DASSL.cc (DASSL::do_integrate (double)): Handle more optoins. - * DASPK.cc (DASPK::do_integrate (double)): Likewise. - - 2002-08-15 Paul Kienzle - - * DASPK-opts.in, DASPK.h: Move include to .in file. - * DASRT-opts.in, DASRT.h: Likewise. - * DASSL-opts.in, DASSL.h: Likewise. - * LSODE-opts.in, LSODE.h: Likewise. - * NLEqn-opts.in, NLEqn.h: Likewise. - * ODESSA-opts.in, ODESSA.h: Likewise. - - 2002-08-14 John W. Eaton - - * LSODE.cc (LSODE::error_message): Also return current T on - failures when that makes sense. - * DASSL.cc (DASSL::error_message): Likewise. - * DASRT.cc (DASRT::error_message): Likewise. - * DASPK.cc (DASPK::error_message): Likewise. - * ODESSA.cc (ODESSA:error_message): Likewise. - - * Makefile.in (liboct-pathsearch.$(SHLEXT_VER)): Link to - $(LIBKPATHSEA) here. - - 2002-08-08 John W. Eaton - - * lo-ieee.cc (lo_ieee_is_NA): New function. - (lo_ieee_is_NaN_or_NA): New function. - (octave_NA): New global value. - (octave_ieee_init): Initialize it. - * lo-mappers.cc (octave_is_NA): New function. - (octave_is_NaN_or_NA): New function. - (xisnan): Return false if NaN looks like a missing value. - (xisnan (const Complex&)): Use xisnan here. - - 2002-08-02 John W. Eaton - - * CMatrix.h (ComplexMatrix::all, ComplexMatrix::any, - ComplexMatrix::cumprod, ComplexMatrix::cumsum, - ComplexMatrix::prod, ComplexMatrix::sum, ComplexMatrix::sumsq): - Default value for dim is -1, not 0. - * dMatrix.h (Matrix::all, Matrix::any, Matrix::cumprod, - Matrix::cumsum, Matrix::prod, Matrix::sum, Matrix::sumsq): Likewise. - * boolMatrix.h (boolMatrix:all, boolMatrix::any): Likewise. - * chMatrix.h (charMatrix::all, charMatrix::any): Likewise. - - * mx-inlines.cc (MX_ANY_ALL_OP_ROW_CODE, MX_ANY_ALL_OP_COL_CODE): - New macros. - (MX_ANY_ALL_OP): Define MX_ANY_ALL_OP using them and - MX_BASE_REDUCTION_OP. - (MX_CUMULATIVE_OP): Fix spelling. Change all uses. - - 2002-08-01 John W. Eaton - - * chMatrix.h, chMatrix.cc (charMatrix::any, charMatrix::all): - Return boolMatrix, not Matrix. - - * mx-inlines.cc (MX_ANY_ALL_OP, MX_ALL_OP, MX_ANY_OP): New macros. - * dMatrix.cc (Matrix::any): Replace guts with MX_ANY_OP. - (Matrix::all): Replace guts with MX_ALL_OP. - * CMatrix.cc (ComplexMatrix::any): Replace guts with MX_ANY_OP. - (ComplexMatrix::all): Replace guts with MX_ALL_OP. - * boolMatrix.cc (boolMatrix::any): Replace guts with MX_ANY_OP. - (boolMatrix::all): Replace guts with MX_ALL_OP. - * chMatrix.cc (charMatrix::any): Replace guts with MX_ANY_OP. - (charMatrix::all): Replace guts with MX_ALL_OP. - - * dMatrix.h (Matrix::any): New arg, dim. - (Matrix::all): Likewise. - * CMatrix.h (ComplexMatrix::any): Likewise. - (ComplexMatrix::all): Likewise. - * boolMatrix.h (boolMatrix::any): Likewise. - (boolMatrix::all): Likewise. - * chMatrix.h (charMatrix::any): Likewise. - (charMatrix::all): Likewise. - - * Makefile.in: Use $@-t instead of $@.t. - - 2002-07-25 John W. Eaton - - * lo-specfun.cc (gammainc): New arg, err, for scalar version. - Use it in matrix versions to avoid spewing multiple errors. - Call xgammainc instead of dgamit. - - 2002-07-22 John W. Eaton - - * CMatrix.cc (ComplexMatrix::ComplexMatrix (const boolMatrix&)): - Get rows and columns right in loop. - (ComplexMatrix::ComplexMatrix (const charMatrix&)): Likewise. - - 2002-07-19 John W. Eaton - - * DASPK.cc (DASPK::do_integrate): Allow array tolerances. - * DASRT.cc (DASRT::integrate): Likewise. - * DASSL.cc (DASSL::do_integrate): Likewise. - - * Quad.cc: Don't pass tolerances in constructors. - - * DASPK-opts.in, DASRT-opts.in, DASSL-opts.in, LSODE-opts.in, - NLeqn-opts.in, ODESSA-opts.in, Quad-opts.in: New files. - * DASPK-opts.h, DASRT-opts.h, DASSL-opts.h, LSODE-opts.h, - NLeqn-opts.h, ODESSA-opts.h, Quad-opts.h: Generate automatically - from corresponding .in files. - * LSODE.h, Quad.h: Replace options class definitions with included - file. - * Makefile.in (OPTS_INC_SRC, OPTS_INC): New variables, new rule to - create OPTS_INC files from OPTS_INC_SRC files. - (stamp-prereq): New target. - (libraries): Depend on stamp-prereq. - Include stamp-prereq along with $(MAKEDEPS). - - 2002-07-17 John W. Eaton - - * base-de.h (base_diff_eqn::istate): New data member. - (base_diff_eqn::integration_state): New member function. - * LSODE.h, LSODE.cc, ODESSA.h, ODESSA.cc: Delete corresponding - data members and functions. - * DASPK.h, DASRT.h, DASSL.h: Delete idid data member. - * DASPK.cc, DASRT.cc, DASSL.cc: Use istate instead of idid. - - 2002-07-16 John W. Eaton - - * base-de.h (base_diff_eqn::stop_time, - base_diff_eqn::stop_time_set, base_diff_eqn::restart, - base_diff_eqn::integration_error): New data members. - (base_diff_eqn::set_stop_time, base_diff_eqn::clear_stop_time, - base_diff_eqn::force_restart, base_diff_eqn::integration_ok, - base_diff_eqn::error_message): New member functions. - * LSODE.h, LSODE.cc, DASSL.h, DASSL.cc, DASPK.h, DASPK.cc, - DASRT.h, DASRT.cc, ODESSA.h, ODESSA.cc: Delete corresponding data - members and functions. - - * DASRT.h (DASRT::set_ng, DASRT::get_ng): Delete - * DASRT.cc (DASRT::DASRT): Set ng here. - (DASRT::integrate): Don't forget to set nn. - - * DAEFunc.h (DAEFunc): Jacobian function now follows format of DASSL. - * DASSL.cc (ddassl_j): Make it work. - * DASPK.cc (ddaspk_j): Likewise. - - * DAE.cc: Delete. - - * DAERT.h, DAERTFunc.h, DASRT.h, DASRT.cc: New files for DAE - solving with root finding. - * Makefile.in: Add them to the appropriate lists. - - * base-dae.h: New file. - * Makefile.in (INCLUDES): Add it to the list. - * DAE.h (DAE): Derive from base_diff_alg_eqn, not base_diff_eqn. - - 2002-07-10 John W. Eaton - - * ODE.h: Move integrate and do_integrate method declarations and - definitions here. - * base-de.h: From here. - - * ODES.h, ODES.cc, ODESFunc.h, ODESSA.h, ODESSA.cc: New files. - * Makefile.in: Add them to the appropriate lists. - (LIBOCTAVE_CXX_SOURCES): - - 2002-07-02 John W. Eaton - - * NLEqn.cc (NLEqn::error_message): New function. - * NLEqn.h (NLEqn::solution_state, NLEqn::solution_ok): New functions. - - 2002-07-01 John W. Eaton - - * lo-utils.cc (octave_fgetl): New function. - * cmd-edit.cc (do_readline): Use it instead of octave_fgets. - - 2002-05-24 John W. Eaton - - * LSODE.cc (LSODE::error_message): New function. - * LSODE.h: Provide decl. - (LSODE::integration_state): New function. - (LSODE::integration_ok): New function. - - 2002-05-23 John W. Eaton - - * LSODE.cc (LSODE_options::x_integration_method): New data member. - (LSODE_options::set_integration_method, - LSODE_options::integration_method): New functions. - - * LSODE.h (LSODE_options::x_absolute_tolerance): Now Array. - Change all uses. - (LSODE_OPTIONS::absolute_tolerance): Return Array, not double. - (LSODE_OPTIONS::set_absolute_tolerance (const Array&)): - New function. - - * Array.h (Array::fortran_vec): New const version. - - 2002-05-22 John W. Eaton - - * cmd-edit.cc (gnu_readline::history_search_backward): New function. - (gnu_readline::history_search_forward): Likewise. - (gnu_readline::gnu_readline): Use them instead of passing pointers - to extern "C" functions to octave_rl_ad_defun. - - 2002-05-22 Mumit Khan - - * DASPK.cc (ddaspk_psol): Return value. - * oct-rl-edit.c: Use /* ... */ to comment. - - 2002-05-20 John W. Eaton - - * DASSL.h (DASSL_options::init): Undo previous change. - (DASSL_options::set_absolute_tolerance): Likewise. - * LSODE.h (LSODE_options::init): Likewise. - (LSODE_options::set_absolute_tolerance): Likewise. - - * DASPK.h (DASPK_options::init): Use default absolute tolerance of - sqrt(eps), not eps^2. - DASPK_options::set_absolute_tolerance): Likewise. - - 2002-05-17 Mumit Khan - - * Array.h (Array::resize_fill_value): Return default initialized - object. - - 2002-05-14 John W. Eaton - - * oct-rl-edit.c (OCTAVE_RL_SAVE_STRING): New macro. - (octave_rl_set_name, octave_rl_set_basic_quote_characters): Use it. - (octave_rl_set_basic_word_break_characters, - octave_rl_set_completer_word_break_characters): New functions. - * oct-rl-edit.h: Provide decls. - * cmd-edit.cc (gnu_readline::do_set_basic_word_break_characters, - gnu_readline::do_set_completer_word_break_characters): New functions. - (command_editor::set_basic_quote_characters, - command_editor::set_completion_append_character): New static functions. - * cmd-edit.h: Provide decls. - (command_editor::do_set_basic_word_break_characters, - command_editor::do_set_completer_word_break_characters): - New virtual functions. - - * CMatrix.h, boolMatrix.h, chMatrix.h, dMatrix.h - (resize_fill_value): New static function. - - * Array-idx.h (Array::index): New args, resize_ok and - resize_fill_value. - * Array2-idx.h (Array2::index): Likewise. - * ArrayN-idx.h (ArrayN::index): Likewise. - - * Array2.cc (Array::print_info): New function. - * Array2.h: Provide decl. - - * Array.cc (Array::print_info): New function. - * Array.h: Provide decl. - - 2002-05-03 John W. Eaton - - * idx-vector.h (idx_vector::idx_vector (int)): New function. - (idx_vector_rep::idx_vector_rep (int)): New decl. - * idx-vector.cc (idx_vector_rep::idx_vector_rep (int)): New function. - - * Array.h (Array::resize_fill_value (void)): New static function. - (assign (Array&, const Array&)): Use it. - * Array2.h (assign (Array2&, const Array2&)): Use it. - * ArrayN.h (assign (ArrayN&, const ArrayN&)): Use it. - - 2002-05-02 Cai Jianming - - * Array3.h (Array3::checkelem): Improve error message. - * ArrayN.h (ArrayN::range_error): Likewise. - * DiagArray2.cc (DiagArray2::checkelem): Likewise. - * DiagArray2.cc (DiagArray2::operator ()): Likewise. - - 2002-04-30 John W. Eaton - - * DASSL.h (DASSL_options::init): Undo previous change. - (DASSL_options::set_absolute_tolerance): Likewise. - - 2002-04-27 John W. Eaton - - * DASPK.h, DASPK.cc: New files. - * Makefile.in: Add them to the appropriate lists. - - 2002-04-23 John W. Eaton - - * Array2-idx.h (Array2::index (idx_vector&, idx_vector&) const): - Simplify indexing when one or both of the indices are empty. - - 2002-04-11 John W. Eaton - - * DASSL.h (DASSL_options::init): Set absolute tolerance to eps ^ 2. - (DASSL_options::set_absolute_tolerance): Likewise. - * LSODE.h (LSODE_options::init): Likewise. - (LSODE_options::set_absolute_tolerance): Likewise. - - 2002-04-03 Steven G. Johnson - - * f2c-main.c (MAIN_, MAIN__): Delete. Use F77_DUMMY_MAIN instead. - * file-stat.cc (file_stat::update_internal, file_stat::copy): - Use HAVE_STRUCT_STAT_ST_RDEV instead of HAVE_ST_RDEV. - Use HAVE_STRUCT_STAT_ST_BLKSIZE instead of HAVE_ST_BLKSIZE. - Use HAVE_STRUCT_STAT_ST_BLOCKS instead of HAVE_ST_BLOCKS. - * file-stat.h: Likewise. - * oct-time.cc (octave_time::octave_time, octave_base_tm::strftime, - octave_base_tm::init, octave_strptime::init): Use HAVE_TM_ZONE - instead of HAVE_STRUCT_TM_TM_ZONE. - * strftime.c: Likewise. - * lo-specfun.cc, mach-info.cc, CColVector.cc, CMatrix.cc, - CRowVector.cc, CmplxAEPBAL.cc, CmplxCHOL.cc, CmplxHESS.cc, - CmplxLU.cc, CmplxQR.cc, CmplxQRP.cc, CmplxSCHUR.cc, CmplxSVD.cc, - CollocWt.cc, DASSL.cc, EIG.cc, LSODE.cc, NLEqn.cc, Quad.cc, - dColVector.cc, dMatrix.cc, dRowVector.cc, dbleAEPBAL.cc, - dbleCHOL.cc, dbleHESS.cc, dbleLU.cc, dbleQR.cc, dbleQRP.cc, - dbleSCHUR.cc, dbleSVD.cc: Use F77_FUNC instead of F77_FCN. - - 2002-04-02 Paul Kienzle - - * CmplxQR.cc (ComplexQR::init): Use economy QR decomposition - internally when the user requests it. - * CmplxQRP.cc (ComplexQRP::init): Ditto. - * dbleQR.cc (QR::init): Ditto. - * dbleQRP.cc (QRP::init): Ditto. - - 2002-02-22 John W. Eaton - - * oct-fftw.cc (octave_fftw::fft2d): Avoid having to find a - definition for NULL by passing 0 as the last arg to fftwnd_one. - (octave_fftw::ifft2d): Likewise. - - 2002-02-22 Paul Kienzle - - * lo-mappers.cc (arg): Simply call atan2 (0.0, x). - - 2001-12-17 John W. Eaton - - * data-conv.cc (LS_DO_READ): Don't do anything unless len > 0. - (LS_DO_WRITE): Likewise. - - 2001-11-16 John W. Eaton - - * mx-inlines.cc (MX_CUMMULATIVE_OP): New macro. - * CMatrix.cc (ComplexMatrix::cumprod, ComplexMatrix::cumsum): Use it. - * dMatrix.cc (Matrix::cumprod, Matrix::cumsum): Likewise. - - * mx-inlines.cc (MX_REDUCTION_OP, MX_REDUCTION_OP_COL_EXPR, - MX_REDUCTION_OP_ROW_EXPR): New macros. - * dMatrix.cc (Matrix::prod, Matrix::sum): Use MX_REDUCTION_OP. - * CMatrix.cc (ComplexMatrix::prod, ComplexMatrix::sum): Likewise. - - * mx-inlines.cc (MX_BASE_REDUCTION_OP): New macro. - DIM == -1 now means no orientation for vector sums. - * dMatrix.cc (ComplexMatrix::sumsq): Use it. - * CMatrix.cc (ComplexMatrix::sumsq): Likewise. - - 2001-11-08 John W. Eaton - - * Range.cc (Range::nelem_internal): Special case ranges that must - have zero elements. - - 2001-11-06 John W. Eaton - - * Makefile.in: Split out readline and pathsearch functionality - into separate liboct-readline and liboct-pathsearch libraries. - - * oct-rl-edit.c (octave_rl_clear_screen): Call rl_clear_screen, - not _rl_clear_screen. Temporarily redefine rl_redisplay_function - to do nothing for this call to rl_clear_screen. - - 2001-10-08 John W. Eaton - - * DASSL.cc (ddassl_f): Handle IRES returned from user supplied - function. - * DAEFunc.h (DAERHSFunc): Add IRES to prototype. - - 2001-06-07 John W. Eaton - - * dMatrix.cc (Matrix::inverse, Matrix::solve, Matrix::determinant, - Matrix::inverse): Handle the case of rcond being a NaN the same as - a signular matrix. From "Jianming" . - * CMatrix.cc (ComplexMatrix::inverse, ComplexMatrix::solve, - ComplexMatrix::determinant, ComplexMatrix::inverse): Likewise. - - 2001-05-31 John W. Eaton - - * chMatrix.cc (charMatrix::row_as_string): New parameter, raw. - - * Array-i.cc, Array-s.cc, Array-d.cc, Array-ch.cc, Array-C.cc, - Array-b.cc: Instantiate three arg assign functions. - - * ArrayN.cc (assign (ArrayN&, const ArrayN&, const LT&)): - New arg, resize_fill_value. - * ArrayN.h: Provide declaration. - (assign (ArrayN&, const ArrayN&): Define here by calling - three arg version. - - * Array3.cc (assign (Array3&, const Array3&, const LT&)): - New arg, resize_fill_value. - * Array3.h: Provide declaration. - (assign (Array3&, const Array3&): Define here by calling - three arg version. - - * Array2.cc (assign (Array2&, const Array2&, const LT&)): - New arg, resize_fill_value. - * Array2.h: Provide declaration. - (assign (Array2&, const Array2&): Define here by calling - three arg version. - - * Array.cc (assign (Array&, const Array&, const LT&)): - New arg, resize_fill_value. - * Array.h: Provide declaration. - (assign (Array&, const Array&): Define here by calling - three arg version. - - 2001-05-17 John W. Eaton - - * pathsearch.cc (dir_path::set_program_name): Set the environment - variables SELFAUTOLOC, SELFAUTODIR, SELFAUTOPARENT, and TEXMFDBS - to the empty string. - - 2001-05-15 John W. Eaton - - * Array2.h (Array2::operator = (const Array2&)): - Don't check for rep != a.rep. - - 2001-05-02 Mumit Khan - - * oct-fftw.h, oct-fftw.cc: New files. - * Makefile.in (INCLUDES, SOURCES): Add new files. - * CMatrix.cc (ComplexMatrix::{fourier, ifourier, fourier2d, - ifourier2d}): Use fftw if available. - * dMatrix.cc (Matrix::{fourier, ifourier, fourier2d, ifourier2d}): - Likewise. - - 2001-04-25 John W. Eaton - - * Makefile.in (install-lib): Don't use mk-libdir-link. - (install-inc): Don't use mk-includedir-link. - - 2001-02-28 John W. Eaton - - * lo-cutils.c (octave_gethostname): New function. - * lo-utils.h: Provide declaration. - * oct-env.cc (octave_env::do_get_host_name): - Call octave_gethostname, instead of gethostname. - - * lo-cutils.c (gethostname): Define here. - * lo-sysdep.cc: Not here. - - 2001-02-07 John W. Eaton - - * lo-cutils.c: Don't declare strptime. - (oct_strptime): Cast return type of strptime to char*. - - 2001-02-06 John W. Eaton - - * oct-rl-edit.c (octave_rl_newline): Call rl_newline with two args. - (octave_rl_set_name): call rl_re_read_init_file with two args. - (octave_rl_read_init_file): Ditto. - (octave_rl_clear_undo_list): Call rl_free_undo_list, not - free_undo_list. - (octave_rl_completion_matches): Call rl_completion_matches, not - completion_matches. - (octave_rl_enable_paren_matching): New function. - (octave_rl_set_blink_matching_paren_flag): Delete. - (octave_rl_get_blink_matching_paren_flag): Delete. - - * lo-mappers.h, lo-mappers.cc (log10 (const Complex&), - tanh (const Complex&)): Declare and define if not - CXX_ISO_COMPLIANT_LIBRARY. - - 2001-02-05 John W. Eaton - - * lo-mappers.h (tanh (const Complex&)): Only declare if not - CXX_ISO_COMPLIANT_LIBRARY. - - 2001-02-05 Mumit Khan - - * lo-mappers.cc (tanh (const Complex&)): Only define if not - CXX_ISO_COMPLIANT_LIBRARY. - - * Makefile.in (TEMPLATE_AR, TEMPLATE_ARFLAGS): Use to create - archive libraries containing templates. - - * ArrayN-idx.h (freeze, all_ok, any_orig_empty, any_zero_len, - get_zero_len_size, all_colon_equiv): Inline. - (ArrayN::index): Rename idx to arr_idx. - * ArrayN.cc (ArrayN::index, ArrayN::compute_index, - ArrayN::get_size, ArrayN::range_error, ArrayN::range_error, - increment_index, ArrayN::resize, ArrayN::insert): Likewise. - - 2001-02-05 John W. Eaton - - * lo-mappers.h, lo-mappers.cc (tan (const Complex&), - log10 (const Complex&)): Delete. - - * oct-cmplx.h: Define forwarding functions for real, imag, abs, - arg, norm, conj, polar, cos, cosh, exp, log, log10, pow, sin, - sinh, sqrt, tan, and tanh. - - 2001-01-31 John W. Eaton - - * file-ops.cc, help.cc, load-save.cc, pr-output.cc, utils.cc: - Add std:: namespace qualifier as needed. - - * mx-inlines.cc: Rename all functions with mx_inline_ prefix. - Change all uses to match. - - 2001-01-29 John W. Eaton - - * lo-cutils.c: Don't delcare strptime. - - 2001-01-02 John W. Eaton - - * CMatrix.cc (operator * (const ComplexMatrix&, const ComplexMatrix&): - Return correct size result for empty matrix case. - - 2000-12-15 John W. Eaton - - * lo-mappers.cc (xmin (const Complex&, const Complex& y): - If args are equal in magnitude, return first arg instead of - second. - - 2000-12-13 John W. Eaton - - * Range.cc (Range::nelem_internal): Call tfloor, not round, but - then try harder to compute correct number of elements. - - * dMatrix.cc (Matrix::lssolve): Ask DGELSS for size of work vector. - * CMatrix.cc (ComplexMatrix::lssolve): Likewise, for ZGELSS. - - 2000-12-09 John W. Eaton - - * Range.cc (Range::nelem_internal): Call round here, not tfloor. - Rename n_intervals to be n_elt. - - * strptime.c: Surround everything after including config.h in - #ifndef HAVE_STRPTIME ... #endif. - - 2000-11-29 John W. Eaton - - * Array-idx.h (assign): When resizing, cast fill value to LT. - * Array2-idx.h (MAYBE_RESIZE_LHS): Likewise. - - 2000-11-28 John W. Eaton - - * MArray-defs.h: Protect against multiple inclusion. - - 2000-11-20 John W. Eaton - - * data-conv.h (enum save_type): Move LS_U_LONG and LS_LONG to the - end of the list, to be compatible with previous versions of Octave. - - 2000-11-16 Paul Kienzle - - * oct-time.cc (DEFINE_SET_INT_FIELD_FCN): Don't check limits here, - since mktime is supposed to `normalize' the results for us. - - 2000-10-31 Paul Kienzle - - * Array2.cc (Array2::transpose): Avoid copy for empty matrices - and vectors. Use xelem for faster access to elements when copying. - - 2000-10-18 John W. Eaton - - * CMatrix.cc (ComplexMatrix::cumsum, ComplexMatrix::cumprod): - Correct indexing for operation across rows. - * dMatrix.cc (Matrix::cumsum, Matrix::cumprod): Likewise. - - 2000-10-12 Paul Kienzle - - * Array2-idx.h (Array2::index (idx_vector&)): Avoid copying - elements if arg is a colon. - - 2000-10-12 Cai Jianming - - * dMatrix.cc (Matrix::cumprod (int) const): New arg, DIM. - (Matrix::cumsum (int) const): Likewise. - (Matrix::prod (int) const): Likewise. - (Matrix::sum (int) const): Likewise. - (Matrix::sumsq (int) const): Likewise. - * CMatrix.cc (ComplexMatrix::cumprod (int dim) const): Likewise. - (ComplexMatrix::cumsum (int) const): Likewise. - (ComplexMatrix::prod (int) const): Likewise. - (ComplexMatrix::sum (int) const): Likewise. - (ComplexMatrix::sumsq (int) const): Likewise. - - 2000-10-10 John W. Eaton - - * Array2-idx.h (Array2::index (idx_vector&)): Correctly set - size if Array::index returns an empty array. - - 2000-08-02 John W. Eaton - - * file-ops.cc (file_ops::link, file_ops::symlink, - file_ops::readlink): New functions. - - 2000-08-01 John W. Eaton - - * Array2-idx.h (Array2::index (idx_vector&)): If a scalar is - indexed, always return an object the same size as the index arg. - - * oct-time.cc (octave_base_tm::strftime): Return empty string for - empty format. - - 2000-07-25 John W. Eaton - - * lo-cutils.c (oct_strptime): New function. - * oct-time.cc (octave_strptime::init): Call it instead of strptime. - Don't declare strptime. Don't define _XOPEN_SOURCE or _BSD_SOURCE. - - 2000-07-18 John W. Eaton - - * oct-time.cc: Comment out _BSD_SOURCE and _XOPEN_SOURCE definitions. - - * Makefile.in (MATRIX_INC): Add ArrayN-idx.h to the list. - - 2000-06-29 John W. Eaton - - * dMatrix.h (read_int): Provide declaration. - - 2000-06-29 James R. Van Zandt - - * data-conv.cc (read_doubles): Handle EIGHT_BYTE_INT cases. - (write_doubles): Ditto. - * data-conv.h: Ditto. - (enum save_type): New values, LS_U_LONG and LS_LONG. - - 2000-06-27 John W. Eaton - - * boolMatrix.h: Declare MM_CMP_OPS here. - * boolMatrix.cc: Define them here. - - 2000-06-08 John W. Eaton - - * Array2-idx.h (assign): Allow x(bool) = RHS to succeed if x is - previously undefined and set size of x to size of bool index. - * idx-vector.cc (IDX_VEC_REP::maybe_convert_one_zero_to_idx): - Allow z_len to be zero. - (IDX_VEC_REP::freeze): If z_len is zero, set frozen_at_z_len to len. - If frozen, don't assert that frozen_at_z_len == z_len. - - 2000-05-20 John W. Eaton - - * oct-rl-edit.c (octave_rl_clear_screen): Call _rl_clear_screen - instead of rl_clear_screen. - - 2000-05-11 John W. Eaton - - * Array-d.cc: Instantiate ArrayN here too. - * Array-idx-vec.cc, ArrayN-idx.h, ArrayN.cc, ArrayN.h: New files. - * Makefile.in: Add them to the appropriate lists. - - 2000-04-06 John W. Eaton - - * Array.cc (Array::operator =): Don't set max_indices to 1 here. - - 2000-03-23 John W. Eaton - - * lo-sysdep.h: octave_chdir returns int, not bool. - - 2000-03-21 John W. Eaton - - * Makefile.in (liboctave.$(SHLEXT)): Delete target - before rebuilding. - - 2000-03-21 Ben Sapp : - - * Makefile.in (liboctave.$(LIBEXT)): New target. - (libraries): Depend only on library targets, not archive members. - - 2000-03-17 John W. Eaton - - * Makefile.in: (objects): New target. - - * lo-cutils.c: New file. - * Makefile.in (SOURCES): Add it to the list. - * lo-utils.h: Declare octave_qsort here. - * Array.h (Array::qsort): Use it here. - - 2000-03-08 John W. Eaton - - * oct-time.cc: Include and , if available. - - 2000-02-18 John W. Eaton - - * oct-rl-hist.c (octave_history_list): Do something when not - printing line numbers. Fix reallocation of retval. - - 2000-02-11 John W. Eaton - - * Makefile.in (install-inc): Install files in - $(octincludedir)/octave. - (uninstall): Remove them from the correct directory too. - - * oct-time.cc: Temporarily define _BSD_SOURCE and _XOPEN_SOURCE if - they are not already defined. - - 2000-02-08 John W. Eaton - - * CRowVector.cc, CRowVector.h, CColVector.cc, CColVector.h: - Delete declarations and definitions of mixed-type vector-vector ops. - - 2000-02-07 John W. Eaton - - * CMatrix.h, CMatrix.cc: Add lssolve methods for real-valued RHS - matrix and vector objects. - - * mx-op-defs.h (DMM_BIN_OP): Explicitly request conversion to - return type from second arg type. - (MDM_BIN_OP): Likewise, for first arg type. - - * dMatrix.cc (Matrix::fourier, Matrix::ifourier, - Matrix::fourier2d, Matrix::ifourier2d): Likewise. - - * EIG.cc (EIG::symmetric_init, EIG::hermitian_init): Explicitly - request ColumnVector to ComplexColumnVector, and Matrix to - ComplexMatrix conversions. - - * CmplxAEPBAL.cc (ComplexAEPBALANCE::init): Give balancing_mat its - initial value using ComplexMatrix constructor. - - * CColVector.cc (product, quotient, - operator * (const DiagMatrix&, const ComplexColumnVetor&)): - Fix type of returned value. - * CDiagMatrix.cc (ComplexDiagMatrix::row, - ComplexDiagMatrix::column, ComplexDiagMatrix::inverse): Likewise. - - * Array.h, CColVector.h, CDiagMatrix.h, CMatrix.h, CRowVector.h, - MArray.h, MDiagArray2.h, dColVector.h, dDiagMatrix.h, dMatrix.h, - dRowVector.h: Declare some constructors explicit, to disallow - potentially problematic automatic type conversions. - - 2000-02-05 John W. Eaton - - * vx-rv-crv.h, vx-cv-ccv.h, vx-crv-rv.h, vx-ccv-cv.h, - vx-rv-crv.cc, vx-cv-ccv.cc, vx-crv-rv.cc, vx-ccv-cv.cc: - More new files. - * Makefile.in: Add them to the appropriate lists. - - * vx-ccv-s.h, vx-crv-s.h, vx-cs-cv.h, vx-cs-rv.h, vx-cv-cs.h, - vx-rv-cs.h, vx-s-ccv.h, vx-s-crv.h, vx-ccv-s.cc, vx-crv-s.cc, - vx-cs-cv.cc, vx-cs-rv.cc, vx-cv-cs.cc, vx-rv-cs.cc, vx-s-ccv.cc, - vx-s-crv.cc:, New files. - * Makefile.in: Add them to the appropriate lists. - - * CRowVector.h, CRowVector.cc, CColVector.h, CColVector.cc: - Delete scalar by vector and vector by scalar binary ops. - - * MArray-defs.h: More new macros to handle MDiagArray operators. - * dDiagMatrix.h, CDiagMatrix.h: Use the op-forwarding macros. - - 2000-02-04 John W. Eaton - - * oct-rl-edit.c (octave_rl_set_event_hook): Take address of - rl_event_hook before casting to void **. - (octave_rl_set_startup_hook): Likewise, for rl_startup_hook. - - * MArray-defs.h: Many new macros to make declaration and - definition of operators more consistent. - - * MArray.h, MArray2.h, dColVector.h, dRowVector.h, CColVector.h, - CRowVector.h, dMatrix.h, CMatrix.h: Use them. - - 2000-02-03 John W. Eaton - - * dMatrix.cc (Matrix::ifourier): Cast divisor to double. - (Matrix::ifourier2d): Likewise. - * CMatrix.cc (ComplexMatrix::ifourier): Likewise. - (ComplexMatrix::ifourier2d): Likewise. - - * Array.h (Array::ArrayRep::qsort): Cast len to size_t. - - 2000-02-01 John W. Eaton - - * oct-rl-edit.c, oct-rl-edit.h: New files for interface to GNU - readline library. - * Makefile.in: Add them to the appropriate lists. - - * oct-rl-hist.c, oct-rl-hist.h: New files for interface to GNU - readline history library. - * Makefile.in: Add them to the appropriate lists. - - * data-conv.cc (LS_DO_WRITE): Cast arg to ostream::write to char*. - (LS_DO_READ): Likewise, for istream::read. - (write_doubles): Likewise. - (read_doubles): Likewise. - - * oct-env.cc (octave_env::do_polite_directory_format): - Use operator== and substr method to do limited-length string - comparison. - - * Array2-idx.h, Array-idx.h: Avoid shadowing warnings for idx. - - * Quad.h: Use do_integrate as name of pure virtual function. - - * base-de.h: Use tt instead of t as arg names. - Add method with tcrit arg. - - * DAE.h, DAE.cc: Likewise, also xx for x. - - * DASSL.cc (dassl_fcn_ptr, dassl_jac_ptr): New typedefs. - * LSODE.cc: lsode_fcn_ptr, lsode_jac_ptr): Ditto. - * Quad.cc (quad_fcn_ptr): Ditto. - * NLEqn.cc (hybrd1_fcn_ptr, hybrj1_fcn_ptr): Ditto. - - * oct-getopt.h, oct-getopt.c: New files for interface to getopt. - * Makefile.in: Add them to the appropriate lists. - - * oct-kpse.h, oct-kpse.c: New files for interface to kpathsearch. - * Makefile.in: Add them to the appropriate lists. - - * dMatrix.cc (write_int, read_int): No longer declared static. - - * CDiagMatrix.h: Delete decls for friend operators that are - handled by MDiagArray2 class. Move others outside class decl and - strip friend status. - * dDiagMatrix.h: Likewise. - - * MArray.h: Delete decls for friend operators inside class decl. - * MArray2.h: Ditto. - * MDiagArray2.h: Ditto. - - * MArray-defs.h (DO_VS_OP,, DO_SV_OP, DO_VV_OP, NEGV): Pass all - necessary parameters. Don't allocate memory in the macro. Change - all uses. - - * dMatrix.h (class Matrix): Delete `friend class' decls. - * CMatrix.h (class ComplexMatrix): Ditto. - - * mx-op-defs (MS_BOOL_OP, MS_BOOL_OPS, SM_BOOL_OP, SM_BOOL_OPS, - MM_BOOL_OP, MM_BOOL_OPS, MDM_MULTIPLY_OP, MDM_BIN_OPS, - DMM_MULTIPLY_OP, DMM_BIN_OPS): Pass zero constant as final arg, to - avoid type conflicts. Change all uses. - - * strptime.c (__mon_yday): Fix size of array decl. - - * mx-inlines.cc: Use `xnot' instead of `not' for function name. - - * chMatrix.cc (charMatrix::row_as_string): Delete extraneous - default value for second arg. - - * Array2.cc (Array2::resize): Add Array:: qulaifier to - references to ArrayRep. - - 2000-01-31 John W. Eaton - - * Array.h (Array::ArrayRep): Now protected, not private. - - * All source files: Include iostream, fstream, strstream, - etc. as needed instead of using forward declarations for these - classes. Add std:: qualifier as needed. - - 2000-01-30 John W. Eaton - - * oct-time.cc: Declare strptime extern "C". - - 2000-01-29 John W. Eaton - - * oct-time.cc [! HAVE_STRPTIME]: Provide declaration. - - 2000-01-28 John W. Eaton - - * Array2.h (Array2::get_size): Now protected instead of private. - * Array3.h, Array3.cc: Use it in constructors and resize methods - to get total size to be allocated. - - * DASSL.cc (DASSL::integrate): Declare do_restart and save_output - as bool, not int. - - 2000-01-26 John W. Eaton - - * Array2-idx.h (assign (Array2& lhs, const Array2& rhs)): - Allow A(idx) = RHS if idx is a boolean index with the same shape - as A, even when do_fortran_indexing is not enabled. - (Array2::index (idx_vector& idx) const): Likewise, for A(idx). - - 2000-01-25 John W. Eaton - - * dMatrix.cc (Matrix::solve (...)): Add new variant with - function pointer as final arg. Passed function (if any) will be - called for singularity errors. - * CMatrix.cc (ComplexMatrix::solve (...)): Likewise. - - * dMatrix.cc (Matrix::pseudo_inverse): Use economy SVD. - * CMatrix.cc (ComplexMatrix::pseudo_inverse): Likewise. - - * lo-ieee.cc (octave_ieee_init): Don't include sunmath.h. - No longer bother with infinity or quiet_nan. - - * Array2.cc (Array2::get_size): New function. - (Array2::Array2, Array2::resize): Use it. - - 2000-01-23 John W. Eaton - - * Array2-idx.h (Array2::maybe_delete_elements (idx_vector&)): - New function. - (assign (Array2& lhs, const Array2& rhs)): - Use it when indexing with one arg instead of faking a second one. - (Array2::maybe_delete_elements (idx_vector&, idx_vector&)): - Return empty matrices with the correct dimensions for A(:,:) = [] - and also A(:,idx) = [], and A(idx,:) = [] when idx enumerates all - rows or columns. - - * idx-vector.cc (IDX_VEC_REP::is_colon_equiv): Recognize a bool - vector that is all true values with a length equal to n as colon - equivalent. - - 2000-01-22 John W. Eaton - - * strptime.c: Only include langinfo.h if _LIBC is defined. - - 2000-01-21 A. Scottedward Hodel - - * CMatrix.cc (ComplexMatrix::expm): Apply permutation and scaling - operations directly in step 2 and reverse step 2. - * dMatrix.cc (Matrix::expm): Apply permutation and scaling - operations directly in step 2 and reverse step 2. - - 2000-01-20 John W. Eaton - - * oct-time.h, oct-time.cc (octave_strptime): New class. - - * strptime.c: New file, from glibc 2.1.2. - * Makefile.in (SOURCES): Add strptime.c to the list. - - 2000-01-11 John W. Eaton - - * MArray.h (MArray &)): New constructor. - - 2000-01-10 John W. Eaton - - * pathsearch.cc (dir_path::all_directories): Avoid dereferencing - NULL directory list returned from kpse_element_dirs - - 1999-12-08 John W. Eaton - - * dbleLU.cc (LU::LU): Call DGETRF directly instead of calling DGESV. - * CmplxLU.cc (ComplexLU::ComplexLU): Likewise, call ZGETRF - directly, instead of calling ZGESV. - - 1999-11-18 John W. Eaton - - * data-conv.cc (init_sized_type_lookup_table): New function. - (string_to_data_type): Use it to improve lookup of data types. - - 1999-11-16 John W. Eaton - - * dMatrix.cc (is_symmetric): Move here from Array2.cc. - * Array2.h (is_symmetric): Delete declaration. - - 1999-11-10 John W. Eaton - - * oct-env.cc (do_get_user_name): Reverse sense of test. - - 1999-11-07 John W. Eaton - - * oct-time.cc (Fstrftime): Undo previous change. - (octave_time::octave_time (const octave_base_tm&)): Likewise. - - 1999-11-03 John W. Eaton - - * dbleSVD.cc (SVD::init): Let DGESVD determine work space requirement. - * CmplxSVD.cc (ComplexSVD::init): Likewise, for complex version. - - * dbleSCHUR.cc (SCHUR::init): IWORK is always referenced by dgeesx. - Don't forget to pass length of third string argument to dgeesx. - - * CmplxSCHUR.cc (ComplexSCHUR::init): Don't forget to pass length - of third string argument to zgeesx. - - 1999-11-02 John W. Eaton - - * DiagArray2.cc (DiagArray2::operator () (int, int)): - On errors, simply return `T ()'. - (DiagArray2::checkelem (int, int)): Likewise. - - 1999-11-02 A. Scottedward Hodel - - * dMatrix.cc (Matrix::expm): Do balancing here instead of using - AEPBALANCE class. - * CMatrix.cc (ComplexMatrix::expm): Likewise. - - 1999-10-29 John W. Eaton - - * oct-shlib.cc, oct-shlib.h: New files. - * Makefile.in (INCLUDES, SOURCES): Add them to the lists. - - 1999-10-26 John W. Eaton - - * CRowVector.cc (linspace): Allow npoints == 1 if x1 == x2. - * dRowVector.cc (linspace): Ditto. - - * oct-time.cc (Fstrftime): Don't save or delete tm_zone. - (octave_time::octave_time (const octave_base_tm&)): Likewise. - - 1999-10-21 John W. Eaton - - * DASSL.cc (DASSL::do_integrate (double)): If we have a function - to evaluate the Jacobian, set info(4), not iwork(4). - Set rwork(1) to the maximum step size, not rwork(2). - - 1999-10-14 John W. Eaton - - * oct-time.cc: Include . - - 1999-10-13 John W. Eaton - - * cmd-edit.h (command_editor::do_resize_terminal): New function. - * cmd-edit.cc (command_editor::resize_terminal): New function. - (gnu_readline::do_resize_terminal): New function. - - Fri Sep 3 12:39:17 1999 John W. Eaton - - * lo-mappers.cc: Include ieeefp.h and sunmath.h if we have them. - * lo-ieee.c: Likewise. - Delete extern "C" declarations for infinity and quiet_nan. - - Fri Aug 20 07:58:00 1999 John W. Eaton - - * mx-inlines.cc (VS_OP, SV_OP, VV_OP): Delete `extern template' decls. - (VS_OP_FCN, SV_OP_FCN, VV_OP_FCN): Declare template functions - `inline', not `static inline'. - - * idx-vector.cc (intcmp): Declare args as const void *, not int *, - then cast to const int * to compare. - - Fri Jul 16 11:23:51 1999 John W. Eaton - - * DAEFunc.h: Remove useless preprocessor conditional. - - Thu Jul 15 14:10:33 1999 John W. Eaton - - * cmd-edit.cc (command_editor::do_decode_prompt_string): - Use octave_time object instead of time_t. - - * file-stat.h (file_stat::fs_atime, file_stat::fs_mtime, - file_stat::fs_ctime): Now octave_time objects. - (file_stat::atime, file_stat::mtime, file_stat::ctime): - Return octave_time objects. - (file_stat::is_newer): Args are now octave_time objects instead of - time_t. - - * oct-time.h (octave_time::as_double): Delete. - (octave_time::operator double ()): New function. - (octave_time::operator time_t ()): New function. - (octave_time::ctime): New function. - (octave_base_tm::strftime): Renamed from format_as_string. - (octave_base_tm::asctime): New function. - (operator == (const octave_time&, const octave_time&), - operator != (const octave_time&, const octave_time&), - operator < (const octave_time&, const octave_time&), - operator <= (const octave_time&, const octave_time&), - operator > (const octave_time&, const octave_time&), - operator >= (const octave_time&, const octave_time&)): - New comparison functions. - - * strftime.c: Move here from src directory. - * Makefile.in (SOURCES): Add it to the list. - - * oct-time.h (octave_time::octave_time (time_t)): New constructor. - - Wed Jul 14 17:38:07 1999 John W. Eaton - - * oct-time.h, oct-time.cc: New files. - * Makefile.in (INCLUDES, SOURCES): Add them to the lists. - - * systime.h: Move here from src directory. - * Makefile.in (INCLUDES): Add it to the list. - - Mon Jul 12 22:34:34 1999 John W. Eaton - - * mx-defs.h (b_d_Mapper, b_c_Mapper): New typedefs. - * dMatrix.cc (Matrix::map (b_d_Mapper)): New function. - * CMatrix.cc (ComplexMatrix::map (b_c_Mapper)): New function. - * lo-mappers.cc (xisinf, xisnan, xfinite): Return bool, not double. - - * lo-mappers.cc (xmin, xmax): New functions to correctly handle NaNs. - - Mon May 10 07:45:11 1999 John W. Eaton - - * MArray-defs.h (DO_VV_OP2): Fix macro definition to use arg. - - Wed May 5 20:06:10 1999 John W. Eaton - - * Array2-idx.h (Array2index (idx_vector& idx)): Always return a - column vector for A(:), for compatibility with Matlab. - - Fri Apr 23 11:52:23 1999 John W. Eaton - - * LSODE.cc (LSODE::do_integrate (double)): Don't forget to set - iopt when there are optional inputs in rwork or iwork. - - Fri Mar 26 11:26:32 1999 John W. Eaton - - * Makefile.in (libraries): Use the libfoo.a(objects) method of - creating static libs. - - Thu Mar 4 02:17:04 1999 James Macnicol - - * data-conv.cc (oct_data_conv::string_to_data_type): Handle uint16 - and uint32 data types. - - Thu Mar 4 01:51:37 1999 John W. Eaton - - * lo-ieee.cc (octave_ieee_init): Don't use __alpha__-specific code - for Linux. Remove old Linux-specific code. - - Tue Jan 19 09:34:55 1999 John W. Eaton - - * dMatrix.cc (operator * (const ColumnVector& v, const RowVector& a)): - Don't require lengths to be equal. - * CMatrix.cc (operator * (const ComplexColumnVector& v, const - ComplexRowVector& a)): Likewise - - Tue Nov 24 23:38:19 1998 Eric Norum - - * statdefs.h: Only define mode_t if not already defined. - - Tue Nov 24 17:24:52 1998 john - - * lo-specfun.cc (airy, biry): Set imaginary part of result to zero - when appropriate. - - Mon Nov 23 09:57:05 1998 John W. Eaton - - * cmd-edit.cc (gnu_readline::gnu_readline): Set terminal name - before calling rl_initialize. - - Tue Nov 17 23:47:24 1998 John W. Eaton - - * lo-specfun.cc (besselh, airy, biry): New functions. - Update Bessel function support to use library by D. E. Amos. - - Thu Nov 12 17:44:15 1998 John W. Eaton - - * cmd-edit.h (command_editor::readline): Add new variation that - allows EOF information to be passed back to caller. - - * dMatrix.cc (Matrix::read): Do the right thing for EOF when - amount of data to read is unspecified. - - Tue Nov 10 07:53:15 1998 John W. Eaton - - * oct-alloc.h (DECLARE_OCTAVE_ALLOCATOR): New macro. - (DEFINE_OCTAVE_ALLOCATOR): Ditto. - - * byte-swap.h (swap_bytes, swap_2_bytes, swap_4_bytes, swap_8_bytes): - Add volatile qualifier to void* arg. - Cast volatile void* arg to volatile char*. - - Mon Nov 9 08:28:31 1998 John W. Eaton - - * cmd-edit.h (command_editor::do_set_event_hook): New function. - (command_editor::do_restore_event_hook): Ditto. - * cmd-edit.cc (command_editor::set_event_hook): Ditto. - (command_editor::restore_event_hook): Ditto. - (gnu_readline::do_set_event_hook): Ditto. - (gnu_readline::do_restore_event_hook): Ditto. - (gnu_readline::previous_event_hook): New data member. - (gnu_readline::gnu_readline): Initialize previous_event_hook. - - Mon Nov 2 13:36:04 1998 John W. Eaton - - * Makefile.in (BINDISTLIBS): Don't include .$(SHLEXT_VER) in name. - - * Makefile.in (stmp-pic): New target. - ($(PICOBJ)): Depend on stmp-pic, not pic. - (clean): Remove stmp-pic - - * Makefile.in: Undo previous change to avoid optmization when - compiling lo-ieee.cc. - - Sun Nov 1 10:10:40 1998 John W. Eaton - - * lo-mappers.cc (xfinite): Define in terms of xfinite for real and - imaginary parts. - (xisinf): Define in terms of xisinf for real and imaginary parts. - - Thu Oct 29 18:57:50 1998 John W. Eaton - - * boolMatrix.cc (boolMatrix::operator !): New function. - - Fri Oct 23 21:46:20 1998 John W. Eaton - - * pathsearch.h (dir_path::default_path): New data member. - * pathsearch.cc (dir_path::init): Use it. - - * Makefile.in: Avoid optmization when compiling lo-ieee.cc. - - Fri Oct 16 01:08:30 1998 John W. Eaton - - * chMatrix.cc (charMatrix::extract): New function. - (charMatrix::charMatrix (char c)): New constructor. - - Tue Oct 13 22:11:08 1998 John W. Eaton - - * cmd-edit.h: (command_editor::do_read_init_file): New function. - * cmd-edit.cc (command_editor::read_init_file): New function. - (gnu_readline::do_read_init_file): Likewise. - - Fri Sep 25 14:26:44 1998 John W. Eaton - - * oct-env.cc (octave_env::do_get_home_directory): - If HOME can't be found, set it to "/". - (octave_env::do_get_user_name) - If user name can't be found, set it to "unknown". - (octave_env::do_get_host_name) - If host name can't be found, set it to "unknown". - - * pathsearch.h (dir_path::rehash): New function. - * pathsearch.cc (dir_path::init): Clear kpathsea's internal - diretcory cache before doing initialization. - - Thu Sep 24 13:23:25 1998 John W. Eaton - - * dMatrix.cc (Qzval): Delete. - (qzhes, qzit, qzval): Delete F77_FCN declarations. - * dMatrix.h (Qzval): Delete declaration. - - * dbleGEPBAL.h, dbleGEPBAL.cc: Delete. - * Makefile.in (MATRIX_INC, MATRIX_SRC): Delete them from the lists. - * mx-ext.h: Don't include dbleGEPBAL. - - * lo-ieee.cc (octave_ieee_init): For now, use X_CAST instead of - static_cast. - - Fri Sep 4 10:58:22 1998 John W. Eaton - - * dMatrix.cc (Matrix::read): Skip after reading, not before. - From: Dr.-Ing. Torsten Finke . - - Wed Sep 2 09:50:21 1998 John W. Eaton - - * lo-ieee.cc (octave_ieee_init): For Linux on arm, don't rely on - HUGE_VAL and NAN. - - Wed Aug 26 15:04:57 1998 John W. Eaton - - * Array2-idx.h (assign (Array2& lhs, const Array2& rhs)): - Handle x(i) = scalar for do_fortran_indexing == 1. - - Thu Jul 30 00:34:10 1998 John W. Eaton - - * CMatrix.cc (ComplexMatrix::ComplexMatrix (const charMatrix&)): - Alloctate space before attempting to use it. - (ComplexMatrix::ComplexMatrix (const boolMatrix&)): Likewise. - - Mon Jun 22 17:04:27 1998 Tomislav Goles - - * EIG.cc (EIG::init): Move invariant code outside loop. - - Thu Jun 18 11:08:23 1998 John W. Eaton - - * MArray2.cc (MARRAY_A2A2_OP): If operands are empty, make result - have the same size as the operands. - - Thu May 28 10:41:04 1998 John W. Eaton - - * DASSL.cc (DASSL::do_integrate): If an exception occurs in the - call to ddassl, set integration_error to 1 before calling the - error handler and returning. - * LSODE.cc (LSODE::do_integrate): Likewise. - - Wed May 27 13:46:30 1998 John W. Eaton - - * Array2-idx.h (assign): Allow A([],[]) = scalar and, if - do_fortran_indexing is set, A([]) = scalar. - * Array-idx.h (assign): Allow A([]) = scalar. - - Thu May 14 11:50:24 1998 John W. Eaton - - * mx-op-defs.h (MDM_MULTIPLY_OP): Compute result if dm_nc > 0, not - if dm_nc == 0. - - Thu Apr 23 16:15:37 1998 John W. Eaton - - * pathsearch.h (dir_path::p_orig): New field. - * pathsearch.cc (dir_path::init): Perform variable and tilde - expansion on the original path here. - (dir_path::find_all): Don't do anything if not initialized. - - Tue Apr 14 14:41:30 1998 John W. Eaton - - * Array2-idx.h (index): Allow x(:) even when do_fortran_indexing - is not set. - (index): Allow x = zeros (2, 0); x(1,:) to work. - - * lo-specfun.cc (gammainc): Use dgamit to compute - (\int_0^x exp(-t) t^(a-1) dt)/gamma(a), not just - \int_0^x exp(-t) t^(a-1) dt. - - Wed Apr 8 22:50:44 1998 John W. Eaton - - * Array-C.cc, Array-b.cc, Array-ch.cc, Array-i.cc, Array-d.cc, - Array-s.cc: Change return types of all `assign' explicit - instantiations to be int, not void, to match the template decl in - Array.h. - - Mon Apr 6 00:27:06 1998 John W. Eaton - - * lo-specfun.cc (gammainc): Reorder args in call to xdgami. - - Thu Feb 19 01:16:38 1998 John W. Eaton - - * lo-specfun.cc (xgamma, xlgamma): Define here. - * lo-mappers.cc: Not here. - - * lo-specfun.h: Declare xgamma and xlgamma here. - * lo-mappers.h: Not here. - - * lo-specfun.h: Never declare gamma or lgamma. - - Tue Feb 10 16:14:36 1998 John W. Eaton - - * Array-idx.h (assign): Allow A([]) = X to succeed if X is an - empty matrix of any dimension. - - Thu Feb 5 02:12:38 1998 John W. Eaton - - * oct-syscalls.cc (octave_syscalls::vfork): New function. - - * lo-specfun.cc: Don't include dbleBessel.h. - - * Makefile.in (INCLUDES): Delete oct-math.h from the list. - - * dir-ops.h (dir_entry::operator bool ()): Return bool, not void*. - * file-stat.h (file_stat::operator bool ()): Likewise. - * idx-vector.h (idx_vector::operator bool ()): Likewise. - * oct-group.h (octave_group::operator bool ()): Likewise. - * oct-passwd.h (octave_passwd::operator bool ()): Likewise. - - * data-conv.cc (IEEE_little_double_to_IEEE_big_double): - Don't cast arg in call to swap_8_bytes. - (IEEE_big_double_to_IEEE_little_double): Ditto - (IEEE_big_float_to_IEEE_little_float): Don't cast arg in call to - swap_4_bytes. - (IEEE_little_float_to_IEEE_big_float): Ditto - - * oct-alloc.cc (grow): Use X_CAST, not static_cast. - * prog-args.cc (prog_args::getopt): Likewise. - * dMatrix.cc (read_int, do_read, write_int, do_write): Likewise. - * cmd-edit.cc (gnu_readline::do_set_completion_function): Likewise. - * data-conv.cc (LS_DO_READ, LS_DO_WRITE, read_doubles, write_doubles): - Likewise. - - * byte-swap.h (swap_bytes, swap_2_bytes, swap_4_bytes, - swap_8_bytes): Declare ptr arg as void*, then use cast. - - Mon Feb 2 01:42:56 1998 John W. Eaton - - * Makefile.in (install, uninstall): Use $(octlibdir), not $(libdir). - Use $(mk-libdir-link). - - * file-stat.cc (file_stat::update_internal): Use stat and lstat, - not SAFE_STAT and SAFE_LSTAT. - (lstat): New function, defined if HAVE_LSTAT is not defined. - * safe-xstat.hin, safe-xstat.cin: Delete. - * Makefile.in: Delete rules for safe-stat.h, safe-stat.c, - safe-lstat.h, and safe-lstat.cc. - - Fri Jan 30 23:48:43 1998 John W. Eaton - - * chMatrix.cc (charMatrix::all, charMatrix::any): New functions. - - Tue Jan 20 16:30:00 1998 John W. Eaton - - * dMatrix.cc (Matrix::expm): Skip trace normalization step if the - trace is negative. - * CMatrix.cc (ComplexMatrix::expm): Skip trace normalization if - the real part of the trace is negative. - - Mon Jan 19 16:01:59 1998 John W. Eaton - - * dMatrix.cc (Matrix::expm): Call xdlange instead of dlange. - * CMatrix.cc (ComplexMatrix::expm): Call xzlange instead of zlange. - - * Array2-idx.h (assign): Allow operations like a = 1; a(2:3) = [1;2] - to succeed. - - Thu Dec 18 14:53:45 1997 John W. Eaton - - * idx-vector.cc (IDX_VEC_REP::sort): Don't do anything unless len > 1. - (make_uniq): Likewise. - - Fri Dec 12 10:58:33 1997 John W. Eaton - - * lo-ieee.cc (octave_ieee_init): Check for linux before __alpha__. - - Sun Nov 30 14:59:12 1997 John W. Eaton - - * lo-mappers.cc: Include cmath and lo-specfun.h, not oct-math.h. - - * lo-specfun.h, lo-specfun.cc: New files. - * Makefile.in (INCLUDES, SOURCES): Add them to the lists. - - * acosh.c, asinh.c, atanh.c, erf.c, erfc.c, gamma.c, lgamma.c, - oct-math.h: Delete. - * Makefile.in (SOURCES): Delete them from the list. - - Wed Nov 26 20:02:13 1997 John W. Eaton - - * lo-sysdep.cc (octave_getcwd): Prefer getcwd over getwd. - - Wed Nov 19 02:30:04 1997 Mumit Khan - - Changes to make support egcs snapshots that implement explicit - specification of template functions according to CD2. - - * MArray.h: If NEED_TEMPLATE_FCN_SPECS is defined, add explicit - template function specs for template friends. - * MArray2.h: Likewise. - * MDiagArray2.h: Likewise. - - Thu Nov 13 21:57:16 1997 John W. Eaton - - * CMatrix.cc (sumsq): Compute equivalent of sum (x .* conj (x)) - - Thu Oct 2 17:13:02 1997 Mumit Khan - - * CRowVector.cc (linspace): Removed attempt for implicit conversion - to complex(int) instead of complex(double). - - * lo-mappers.cc (atanh): Ditto. - - Thu Jul 31 22:13:54 1997 John W. Eaton - - * idx-vector.cc (IDX_VEC_REP::sort): New function. - * idx-vector.h (idx_vector::sort): Ditto. - * Array2-idx.h (Array2::maybe_delete_elements): Use it before - trying to delete elements specified by the index vectors. - - Fri Jul 25 17:31:26 1997 John W. Eaton - - * dMatrix.cc (Matrix::lssolve): Increase lwork by factor of 16. - * CMatrix.cc (ComplexMatrix::lssolve): Ditto. - - Thu Jul 24 14:32:48 1997 John W. Eaton - - * file-ops.cc (tilde_expand_word): Fix off-by-one error. - - Wed Jul 9 19:40:23 1997 John W. Eaton - - * lo-sysdep.cc (octave_getcwd): If getwd is available, use it. - Call error handler if we can't find the current directory. - - Mon Jul 7 21:14:41 1997 John W. Eaton - - * lo-mappers.cc (xisnan (double)): Return only 1 or 0. - (xfinite (double)): Ditto. - - * dbleQR.cc (QR::init): Don't forget to initialize Q when type is raw. - * CmplxQR.cc (ComplexQR::init): Ditto. - - Sun Jun 15 21:06:37 1997 John W. Eaton - - * lo-mappers.cc (acos (const Complex&)): Select branch that is - compatible with Matlab. - - Tue Jun 10 10:58:05 1997 John W. Eaton - - * Array2-idx.h: Correctly handle empty matrices indexed by a - single colon. - - Fri Jun 6 04:27:40 1997 John W. Eaton - - * lo-mappers.cc (xlgamma): Use F77_XFCN function to call dlgams. - (xgamma): Likewise, for calling xdgamma. - - * FSQP.h, NPSOL.h, QPSOL.h, FSQP.cc, NPSOL.cc, QPSOL.cc: Delete - * Makefile.in (INCLUDES, SOURCES): Remove them from the lists. - - * file-ops.cc (file_ops::tilde_expand): Steal more code from bash - to do better job expanding tildes. - - * str-vec.cc (string_vector::string_vector (const char * const *): - Use temporary variable to compute length. - - Thu Jun 5 01:44:43 1997 John W. Eaton - - * Makefile.in: Make building of static library optional. - (liboctave.$(SHLEXT_VER)): Add $(SONAME_FLAGS) to command. - - * Makefile.in (stamp-picdir): Delete. - (pic): New target. Don't worry so much about creating pic - directory only when it is really needed. - (stamp-interp): Delete. - (libraries): New target. Depend on shared library directly. - - Wed Jun 4 00:08:55 1997 John W. Eaton - - * pathsearch.h, pathsearch.cc (dir_pat::set_program_name): - New static function. - - Mon Jun 2 12:44:14 1997 John W. Eaton - - * lo-mappers.cc (fix): Use floor and ceil instead of casting to int. - - Thu May 22 16:20:43 1997 John W. Eaton - - * cmd-edit.h, cmd-edit.cc: Rename set_paren_string_delimiters to - set_basic_quote_characters, to match new version of readline. - - * cmd-edit.cc (do_restore_terminal_state): Call readline function - for restoring terminal state through rl_deprep_term_function, now - declared in readline.h - (rl_deprep_terminal): Delete declaration. - - Wed May 21 16:30:25 1997 John W. Eaton - - * Makefile.in (install-in): Use new mk-includedir-link macro. - (install-lib): Install in $octlibdir. Use new mk-libdir-link macro. - - Thu May 15 11:46:42 1997 John W. Eaton - - * cmd-edit.cc (command_editor::increment_current_command_number): - New static function. - - Mon May 12 02:14:13 1997 John W. Eaton - - * idx-vector.cc (IDX_VEC_REP::is_colon_equiv): Make it work when - the vector is not sorted. - - * CMatrix.cc (ComplexMatrix::operator !): Return boolMatrix. - * dMatrix.cc (Matrix::operator !): Likewise - - Wed May 7 21:14:06 1997 John W. Eaton - - * oct-syscalls.h, oct-syscalls.cc: New files. - - * cmd-edit.h, cmd-edit.cc: Handle completion function. - - * str-vec.h, str-vec.cc (string_vector::uniq): New function. - - Tue May 6 00:52:02 1997 John W. Eaton - - * Makefile.in (INCLUDES_FOR_INSTALL): New variable. - (install-inc): Use it. - - * file-ops.h, file-ops.cc (tempnam): Add DIR and PREFIX args. - Handle errors and missing functions consistently. - - * oct-group.h, oct-group.cc: New files. - - * oct-passwd.cc: Handle errors and missing functions consistently. - - * str-vec.h, str-vec.cc (c_str_vec, delete_c_str_vec): New functions. - - Mon May 5 17:53:01 1997 John W. Eaton - - * file-ops.cc: (file_ops::tilde_expand): Use new octave_passwd class. - * oct-env.cc (octave_env::do_get_user_name): Likewise. - - * oct-passwd.h, oct-passwd.cc: New files. - - Sun May 4 22:17:08 1997 John W. Eaton - - * statdefs.h: Only include sys/types.h if HAVE_SYS_STAT_H is defined. - - * mach-info.h, mach-info.cc: Add missing const qualifiers. - (instance_ok ()): New function. - - * glob-match.h, glob-match.cc: Rename from oct-glob.h, oct-glob.cc. - - * cmd-hist.h, cmd-hist.cc: Make it work without GNU readline. - - * lo-utils.h, lo-utils.cc (strsave, octave_putenv): Move here from - src/utils.h and src/utils.cc. - (octave_fgets): New function, extracted from src/input.cc. - - * cmd-edit.h, cmd-edit.cc: New files. Provide wrapper class for - GNU readline, and allow Octave to work without GNU readline. - - * lo-sysdep.h, lo-sysdep.cc: New files for miscellaneous - system-dependent functions. - - * oct-env.h, oct-env.cc: New files for process environment stuff. - - * file-stat.h, file-stat.cc: New files. Extract file_stat class - from file-ops.h and file-ops.cc and move here. - - * file-ops.h, file-ops.cc: Wrap functions in struct. Move - tilde_expand functions here from src/dirfns.cc. - - Fri May 2 19:50:12 1997 John W. Eaton - - * pathlen.h: New file, from ../src. - - Tue Apr 29 04:39:01 1997 John W. Eaton - - * Array2-idx.h (Array2::maybe_delete_elements): Prevent - out-of-bounds indexing of the index array. - * Array-idx.h (Array::maybe_delete_elements): Likewise. - - Fri Mar 28 15:37:09 1997 John W. Eaton - - * LSODE.h (x_step_limit): New field. - (LSODE_options::init): Initialize it. - (LSODE_options::copy): Copy it. - (LSODE_options::set_step_limit, LSODE_options::step_limit): - New functions. - (LSODE::working_too_hard): Delete. - * LSODE.cc (LSODE::do_integrate): Handle step limit. - - Wed Mar 26 15:31:57 1997 John W. Eaton - - * MArray-b.cc: Delete. - * Makefile.in: Delete it from the lists. - - * boolMatrix.h (class bboolMatrix): Derive from Array2, not - MArray2, since most of the numeric ops don't really make sense. - - Tue Mar 25 17:37:25 1997 John W. Eaton - - * boolMatrix.cc (boolMatrix::all, boolMatrix::any): New functions. - - * dMatrix.cc (Matrix::all, Matrix::any): Return boolMatrix. - * CMatrix.cc (ComplexMatrix::all, ComplexMatrix::any): Likewise. - - * idx-vector.h (idx_vector::idx_vector_rep::freeze, - idx_vector::freeze): Delete prefer_zero_one arg. - * Array-idx.h, Array2-idx.h: Change all callers. - - * Array-flags.h, Array-flags.cc (liboctave_pzo_flag): Delete. - - * mx-op-defs.h: New file for operator definitions. - * mx-cdm-cm.h, mx-cdm-cs.h, mx-cdm-dm.h, mx-cdm-m.h, mx-cdm-s.h, - mx-cm-cdm.h, mx-cm-dm.h, mx-cm-m.h, mx-cm-s.h, mx-cs-cdm.h, - mx-cs-dm.h, mx-cs-m.h, mx-dm-cdm.h, mx-dm-cm.h, mx-dm-cs.h, - mx-dm-m.h, mx-dm-s.h, mx-m-cdm.h, mx-m-cm.h, mx-m-cs.h, mx-m-dm.h, - mx-s-cdm.h, mx-s-cm.h, mx-s-dm.h, mx-cdm-cm.cc, mx-cdm-cs.cc, - mx-cdm-dm.cc, mx-cdm-m.cc, mx-cdm-s.cc, mx-cm-cdm.cc, mx-cm-dm.cc, - mx-cm-m.cc, mx-cm-s.cc, mx-cs-cdm.cc, mx-cs-dm.cc, mx-cs-m.cc, - mx-dm-cdm.cc, mx-dm-cm.cc, mx-dm-cs.cc, mx-dm-m.cc, mx-dm-s.cc, - mx-m-cdm.cc, mx-m-cm.cc, mx-m-cs.cc, mx-m-dm.cc, mx-s-cdm.cc, - mx-s-cm.cc, mx-s-dm.cc: - New files for mixed-type operations. - * Makefiles.in: Add them to the appropriate lists. - - * mx-inlines.cc: Add bool by bool EQ ops. - - * idx-vector.h, idx-vector.cc: Add constructors for bool and - boolMatrix types. - (idx_vector::maybe_convert_one_zero_to_idx, - idx_vector::idx_vector_rep::maybe_convert_one_zero_to_idx): - Delete second arg, prefer_zero_one. Change all callers. - - * boolMatrix.h, boolMatrix.cc: New files. - * mx-base.h: Include boolMatrix.h here. - * mx-defs.h: Provide forward declaration for boolMatrix here. - - * chMatrix.h, chMatrix.cc: Delete unused junk. - - * dMatrix.h, CMatrix.h: Delete friend declarations for operator+, - operator-, operator*, product, and quotient functions. - Add constructor for boolMatrix type. - * dMatrix.cc, CMatrix.cc: Delete operator+, operator-, operator*, - product, and quotient functions. - - * CDiagMatrix.h: Delete friend declarations for operator+, - operator-, and product functions. - * CDiagMatrix.h: Delete operator+, operator-, and product functions. - - * Array-b.cc: Also instantiate 2d and 2d diagonal arrays. - - Fri Mar 14 00:29:46 1997 John W. Eaton - - * EIG.cc (EIG::hermitian_init (const ComplexMatrix&)): New function. - (EIG::init (const ComplexMatrix&)): Call it if arg is hermitian. - (EIG::symmetric_init (const Matrix&)): New function. - (EIG::init (const Matrix&)): Call it if arg is symmetric. - - * CMatrix.cc (ComplexMatrix::is_hermitian): New function. - - Thu Mar 13 17:04:26 1997 John W. Eaton - - * Array2.cc (is_symmetric): New function. - * Array2.h (is_square): New function. - - Wed Mar 12 16:59:49 1997 John W. Eaton - - * Makefile.in (install-strip): New target. - - Mon Mar 10 22:34:22 1997 John W. Eaton - - * CmplxCHOL.cc, CmplxHESS.cc, CmplxLU.cc, CmplxQR.cc, - CmplxQRP.cc, CmplxSCHUR.cc, CmplxSVD.cc, EIG.cc, dbleCHOL.cc, - dbleHESS.cc, dbleLU.cc, dbleQR.cc, dbleQRP.cc, dbleSCHUR.cc, - dbleSVD.cc: Don't include mx-inlines.cc. - - * mx-inlines.cc: Abuse the preprocessor to eliminate lots of - duplicate code. - - Sun Mar 9 03:44:52 1997 John W. Eaton - - * dbleQR.h (QR): Delete extra comma at end of list. - - * prog-args.cc (prog_args::getopt): Add missing const in cast. - - * dbleSVD.h (SVD::type): Delete extra comma at end of list. - - * idx-vector.h (idx_vector): Delete unnecessary idx_vector:: and - idx_vecotr_rep:: qualifiers. - - * Array.h (class Array): Delete unnecessary Array:: qualifiers. - - * data-conv.h (save_type): Delete extra comma at end of list. - - * CMatrix.cc, FEGrid.cc, Range.cc, dMatrix.cc, data-conv.cc, - dir-ops.cc, file-ops.h, idx-vector.cc, idx-vector.h, lo-ieee.cc, - lo-mappers.cc, oct-alloc.cc: Use `static_cast (val)' instead of - old C-style `(T) val' casts. - - Thu Mar 6 20:20:01 1997 John W. Eaton - - * dMatrix.cc (operator >>): Return if an error occurs instead of - just breaking out of the innermost loop. - * CMatrix.cc (operator >>): Likewise. - - Sat Mar 1 15:23:14 1997 John W. Eaton - - * Version 2.0.5 released. - - Fri Feb 28 20:11:23 1997 John W. Eaton - - * CmplxQR.cc (ComplexQR::init): New function. - (ComplexQR::ComplexQR): Use it. Use initializer list too. - * CmplxQRP.cc (ComplexQRP::init): New function. - Get sizes right in all cases. - (ComplexQR::ComplexQRP): Use it. Use initializer list too. - - * dbleQR.cc (QR::init): New function. - (QR::QR): Use it. Use initializer list too. - * dbleQRP.cc (QRP::init): New function. - Get sizes right in all cases. - (QR::QRP): Use it. Use initializer list too. - - Wed Feb 26 15:46:28 1997 John W. Eaton - - * mach-info.cc (oct_mach_info::string_to_float_format): - Recognize "vaxg", not "vax_g". - - Fri Feb 21 16:07:56 1997 John W. Eaton - - * Array2-idx.h (Array2::maybe_delete_elements): Use correct - dimension in check for colon equivalent index. - * idx-vector.cc (IDX_VEC_REP::is_colon_equiv): A single-element - index whose value is 0 is also colon eqivalent for n == 1. - - * lo-ieee.cc (octave_ieee_init): Reorder #ifdef stuff to put - system-specific tests first. - - Thu Feb 20 02:58:05 1997 John W. Eaton - - * Version 2.0.4 released. - - Wed Feb 19 09:42:30 1997 John W. Eaton - - * lo-ieee.cc: D'oh, it's `extern "C"', not `#extern "C"'. - - Tue Feb 18 09:22:04 1997 John W. Eaton - - * Version 2.0.3 released. - - Fri Feb 14 16:23:47 1997 John W. Eaton - - * Makefile.in (bin-dist): Don't write empty strings to LIBRARIES. - - Thu Feb 13 14:35:19 1997 John W. Eaton - - * Makefile.in (stamp-prereq): Depend on stamp-picdir. - (all): Don't depend on stamp-prereq or stamp-picdir. - (liboctave.a, stamp-shared): Do depend on stamp-prereq. - (stamp-picdir): Silence noise about making pic. - (stamp-shared): Use $(SH_LD) $(SH_LDFLAGS) instead of $(CXX) -shared. - - * Array2-idx.h (Array2::index (idx_vector&, idx_vector&)): - Fix typo in last change. - - * CColVector.cc (ComplexColumnVector::map (d_c_mapper)): - Convert from friend (moved from dColVector.cc). - * CMatrix.cc (ComplexMatrix::map (d_c_mapper)): - Likewise (moved from dMatrix.cc). - * CRowVector.cc (ComplexRowVector::map (d_c_mapper)): - Likewise (moved from dRowVector.cc). - - * dColVector.cc (ColumnVector::map (d_d_mapper)): Convert from friend. - * dMatrix.cc (Matrix::map (d_d_mapper)): Likewise. - * dRowVector.cc (RowVector::map (d_d_mapper)): Likewise. - * CColVector.cc (ComplexColumnVector::map (c_c_mapper)): Likewise. - * CMatrix.cc (ComplexMatrix::map (c_c_mapper)): Likewise. - * CRowVector.cc (ComplexRowVector::map (c_c_mapper)): Likewise. - - * dColVector.cc (ColumnVector::apply): Rename from map, return *this. - * dMatrix.cc (Matrix::apply): Likewise. - * dRowVector.cc (RowVector::apply): Likewise. - * CColVector.cc (ComplexColumnVector::apply): Likewise. - * CMatrix.cc (ComplexMatrix::apply): Likewise. - * CRowVector.cc (ComplexRowVector::apply): Likewise. - - Tue Feb 11 19:44:28 1997 John W. Eaton - - * lo-ieee.cc: Declare quiet_nan() and infinity(). - - Mon Feb 10 01:17:45 1997 John W. Eaton - - * file-ops.cc (oct_unlink (const string&, string&)): - New two-arg version. - (oct_rmdir (const string&, string&)): New two-arg version. - (oct_mkdir (const string&, mode_t, string&)): New three-arg version. - (oct_mkfifo (const string&, mode_t, string&)): New three-arg version. - (oct_rename (const string&, const string&, string&)): - New three-arg version. - - Fri Feb 7 13:15:55 1997 John W. Eaton - - * idx-vector.h (idx_vector::orig_empty): New function. - - * Array2-idx.h (Array2::index (idx_vector&, idx_vector&)): - Don't always resize to [](0x0) if one of the indices is empty or - zero. - - Sun Feb 2 22:33:44 1997 John W. Eaton - - * cmd-hist.cc (command_history::read): New arg, must_exist. - Set line_in_file here too. - (command_history::read_range): New arg, must_exist. - - Fri Jan 31 09:21:57 1997 John W. Eaton - - * f2c-main.c: Change C++-style comments to C-style comments. - - Tue Jan 28 10:46:02 1997 John W. Eaton - - * Makefile.in (install-inc): Create a relative symbolic link. - - Mon Jan 27 15:52:27 1997 John W. Eaton - - * Version 2.0.2 released. - - Sat Jan 25 22:36:21 1997 John W. Eaton - - * Makefile.in (bin-dist): New target. - - Wed Jan 22 16:18:53 1997 John W. Eaton - - * dbleSVD.cc (SVD::init): Work around apparent dgesvd() bug. - * CmplxSVD.cc (ComplexSVD::init): Work around apparent zgesvd() bug. - - Mon Jan 20 18:44:11 1997 John W. Eaton - - * chMatrix.cc (charMatrix::charMatrix (const string&)): - If the number of columns is zero, also set the number of rows to zero. - (charMatrix::charMatrix (const char *)): Likewise. - - Tue Jan 7 00:16:57 1997 John W. Eaton - - * Version 2.0.1 released. - - Sun Jan 5 12:07:45 1997 John W. Eaton - - * dMatrix.cc (Matrix::read): Correctly compute the number of - columns for resizing when the number of rows is specified but the - number of columns is not. - - Wed Dec 18 16:18:58 1996 John W. Eaton - - * Range.cc (operator -): New function. - - * lo-ieee.cc: Include on all systems that have it. - - Fri Dec 13 02:01:32 1996 John W. Eaton - - * Array2-idx.h (assign): Delay resizing left hand side until we - know if the assignment conforms. - - Tue Dec 10 01:43:09 1996 John W. Eaton - - * Version 2.0 released. - - Fri Dec 6 14:41:15 1996 John W. Eaton - - * Array2-idx.h (assign): If index is a colon, set number of - elements to the lhs dimension if the lhs dimension is greater than - zero. Otherwise, set it to the rhs dimension. - - * Version 1.94. - - * Array2-idx.h (assign): Test for rhs scalar case first. - If index is colon, set number of elements to lhs dimension, not - rhs dimension. - - Thu Dec 5 13:05:18 1996 John W. Eaton - - * sun-utils.h: Don't declare MAIN_ or MAIN__ here. - * sun-utils.cc: Delete. - * f2c-main.c: New file - - * Makefile.in: Fix file name lists. - - * CMatrix.cc (lssolve): Don't redeclare retval, resize it. - - Wed Dec 4 12:24:24 1996 John W. Eaton - - * dMatrix.cc (Qzval): Don't try to use same memory three times. - Create result using Complex constructor, not multiplication. - Order elements as they are returned from Eispack. - - Mon Dec 2 00:26:41 1996 John W. Eaton - - * lo-ieee.cc (octave_ieee_init): Kluge for octave_Inf on SCO. - Only include nan.h if SCO is defined. Define _IEEE before - including it and undefine it afterward. - [SCO] (isnan): Don't mistake Inf as NaN. - - * Array-idx.h (assign): Only resize if assignment conforms. - - Wed Nov 20 01:00:40 1996 John W. Eaton - - * Makefile.in (INCLUDES): Delete lo-error.h. - * lo-error.h: Delete (moved to libcruft/misc). - - * Version 1.93. - - Tue Nov 19 23:07:45 1996 John W. Eaton - - * oct-glob.cc (glob_match::match): Don't expect our flag values to - be the same as they are in fnmatch.h. - - * f77-fcn.c, f77-fcn.h: Move to libcruft/misc directory. - - * Makefile.in (INCLUDES): Delete f77-fcn.h. - (SOURCES): Delete f77-fcn.c. - - Fri Nov 15 13:47:34 1996 John W. Eaton - - * lo-ieee.h: [SCO]: Declare isinf and isnan. - - Thu Nov 14 00:06:53 1996 John W. Eaton - - * Version 1.92. - - Wed Nov 13 11:19:22 1996 John W. Eaton - - * cmd-hist.cc (command_history::add): Ignore empty input lines, or - lines that have only carriage return or newline. - - * lo-ieee.cc (isnan, isinf): Provide functions for SCO. - - Tue Nov 12 11:11:21 1996 John W. Eaton - - * idx-vector.cc (idx_is_inf_or_nan): New function. - (IDX_VEC_REP::idx_vector_rep): Use it. - - Sun Nov 10 17:09:24 1996 John W. Eaton - - * str-vec.h, str-vec.cc: Add constructors to make string vectors - from vectors of C strings. - - * oct-glob.h, oct-glob.cc (glob_match): Allow pat to be a string - vector. - (glob_match::match): Allow match string to be a string vector. - (glob_match::glob): New function. - - * chMatrix.cc (charMatrix::row_as_string): New arg, strip_ws. - - * Array-b.cc: New file. - * Makefile.in (TI_SRC): Add it to the list. - - Fri Nov 8 18:09:12 1996 John W. Eaton - - * file-ops.cc: Change #include "" to #include <> for safe-lstat.h - and safe-stat.h, to avoid getting them from $srcdir when we really - want the version from the build directory. (Maybe this should be - done for all the include files, not just those that are - auto-generated? Hmm.) - - Thu Nov 7 10:45:11 1996 John W. Eaton - - * Version 1.91. - - * Array3.cc (Array3::resize): Make it work. - - Wed Nov 6 22:44:33 1996 John W. Eaton - - * oct-alloc.h, oct-alloc.cc: New files. - * Makefile.in: Add them to the lists. - - Mon Nov 4 21:49:51 1996 John W. Eaton - - * dbleQRP.cc (QRP::QRP): Don't pass tmp data to unsafe constructor. - * CmplxQRP.cc (ComplexQRP::ComplexQRP): Ditto. - - Sun Nov 3 15:45:37 1996 John W. Eaton - - * file-ops.cc (file_stat::is_blk, file_stat::is_chr, - file_stat::is_dir, file_stat::is_fifo, file_stat::is_lnk, - file_stat::is_reg, file_stat::is_sock): Just return false if the - underlying macro is not defined. - - * oct-math.h (lgamma, gamma): Delete declarations. - (asinh, acosh, atanh, erf, erfc): Declare arg types too. - Protect declarations with #ifdef HAVE_*. - - Wed Oct 30 11:42:58 1996 John W. Eaton - - * Version 1.90. - - * Makefile.in (DISTFILES): Add ChangeLog. - - * cmd-hist.cc: Only include fcntl.h if HAVE_FCNTL_H. - - * Matrix-ext.cc: Include , not . - - * CMatrix.cc, cmd-hist.cc, file-ops.cc, file-ops.h, filemode.c, - mkdir.c, rename.c, rmdir.c, safe-xstat.cin, statdefs.h, sysdir.h, - tempname.c, utils.cc: Only include sys/types.h if HAVE_SYS_TYPES_H. - - * Array3.h (T Array3::checkelem): Return T() for bogus value, - since that is now accepatble syntax, even for built-in types. - * Array2.h (T Array2::checkelem): Likewise - - Sat Oct 26 23:37:34 1996 John W. Eaton - - * file-ops.cc (mkfifo) [! HAVE_MKFIFO]: Just print an error - message and return -1. - - Fri Oct 25 01:24:51 1996 John W. Eaton - - * str-vec.h (str_vec_compare): Declare args as const void *, then - cast them to const string * in the body of the function. - - * file-ops.cc (file_stat::mode_as_string): Explicitly construct - string from buf. - - * Array3.h (Array3::checkelem): Tag bogus return value with - GCC_ATTRIBUTE_UNUSED. - * Array2.h (Array2::checkelem): Likewise. - - Thu Oct 24 19:40:36 1996 John W. Eaton - - * Quad.h (Quad): Define virtual destructor. - - Tue Oct 15 11:34:48 1996 John W. Eaton - - * CMatrix.cc (ComplexMatrix::all_elements_are_real): new function. - - Sun Oct 13 11:19:00 1996 John W. Eaton - - * sun-utils.h: Conditionally declare MAIN__ too. Declare MAIN_ - and MAIN__ extern "C". - * sun-utils.cc: Include sun-utils.h here. Delete extern "C" stuff. - - Sat Oct 12 12:40:00 1996 John W. Eaton - - * MArray-misc.cc: New file. - * Makefile.in (MATRIX_SRC): Add it to the list. - - * mx-inlines.cc (equal): Return bool, not int. - - * idx-vector.h (idx_vector (double)): New constructor. - - * chMatrix.h, chMatrix.cc, CMatrix.h, CMatrix.cc, dMatrix.h, - dMatrix.cc, dDiagMatrix.h, dDiagMatrix.cc, dRowVector.h, - dRowVector.cc, dColVector.h, dColVector.cc, CColVector.h, - CColVector.cc, CDiagMatrix.h, CDiagMatrix.cc, CRowVector.h, - CRowVector.cc: Logical operators return bool, not int. - - * CMatrix.h, CMatrix.cc (ComplexMatrix::any_element_is_inf_or_nan): - New function. - - * dMatrix.h, dMatrix.cc (Matrix::any_element_is_negative, - Matrix::any_element_is_inf_or_nan, Matrix::abs, - Matrix::all_elements_are_inf_or_nan): New functions. - - * Range.h, Range.cc (Range::all_elements_are_ints): New function. - - * MArray.cc, MArray2.cc, MDiagArray2.cc: Call gripe_nonconformant - for errors. Simplify macros by converting FCN to string for error - messages. - - * Array-idx.h (Array::index): New function. Don't call - clear_index() here. - (Array::value): Call it, do call clear_index() here. - * Array2-idx.h (Array::value, Array::index): Likewise, for - one and two arg index functions. - - Tue Sep 17 21:21:16 1996 John W. Eaton - - * DAEFunc.h: Delete #pragma interface since there is no longer a - separate implementation file. - - Tue Aug 20 17:38:46 1996 John W. Eaton - - * Makefile.in (stamp-picdir): Only create a pic subdirectory if - SHARED_LIBS is true AND CPICFLAG or CXXPICFLAG is not empty. - - * idx-vector.cc (IDX_VEC_REP::is_colon_equiv): Rename arg sort to - sort_uniq. If sort_uniq is nonzero, sort the elements and make - them uniq. - - * CMatrix.cc (ComplexMatrix::row_max, ComplexMatrix::row_min, - ComplexMatrix::column_max, ComplexMatrix::column_min): - Rewrite. Also return index as a reference arg. - (ComplexMatrix::row_max_loc, ComplexMatrix::row_min_loc, - ComplexMatrix::column_max_loc, ComplexMatrix::column_min_loc): - Delete. - - * dMatrix.cc (Matrix::row_max, Matrix::row_min, - Matrix::column_max, Matrix::column_min): - Rewrite. Also return index as a reference arg. - (Matrix::row_max_loc, Matrix::row_min_loc, - Matrix::column_max_loc, Matrix::column_min_loc): Delete. - - Fri Aug 9 05:01:04 1996 John W. Eaton - - * dMatrix.cc (Matrix::row_min, Matrix::row_min_loc, - Matrix::row_max, Matrix::row_max_loc, Matrix::column_min, - Matrix::column_min_loc, Matrix::column_max, - Matrix::column_max_loc): Ignore leading NaNs. - * CMatrix.cc (ComplexMatrix::row_min, ComplexMatrix::row_min_loc, - ComplexMatrix::row_max, ComplexMatrix::row_max_loc, - ComplexMatrix::column_min, ComplexMatrix::column_min_loc, - ComplexMatrix::column_max, ComplexMatrix::column_max_loc): Ignore - leading NaNs. - - Thu Aug 8 16:04:17 1996 John W. Eaton - - * QPSOL.cc (QPSOL::do_minimize): Insert linear constraint bounds - starting at n, not 0. - - Sat Jul 27 02:54:44 1996 John W. Eaton - - * dMatrix.cc (Matrix::Matrix (const RowVector&), - Matrix::Matrix (const ColumnVector&)): New constructors. - - * CMatrix.cc (ComplexMatrix::ComplexMatrix (const RowVector&), - ComplexMatrix::ComplexMatrix (const ColumnVector&), - ComplexMatrix::ComplexMatrix (const ComplexRowVector&), - ComplexMatrix::ComplexMatrix (const ComplexColumnVector&)): - New constructors. - - * chMatrix.cc (charMatrix::charMatrix (const string_vector&)): - New constructor. - - Wed Jul 24 16:39:16 1996 John W. Eaton - - * LSODE.cc (do_integrate): Check to make sure that the state and - derivative vectors are the same size. - * DASSL.cc (do_integrate): Likewise. - - Sun Jul 14 17:30:37 1996 John W. Eaton - - * dMatrix.cc (Matrix::read, Matrix::write): Convert to use - iostreams and handler data format conversions. Delete old methods - that used stdio. - - * data-conv.h, data-conv.cc (oct_data_conv): New class. - - Fri Jul 12 13:52:44 1996 John W. Eaton - - * mach-info.h: Rename from float-fmt.h. - * mach-info.cc: Rename from float-fmt.cc. - Handle machine information using a singlton class. - * Makefile.in: Update appropriate lists. - - Tue Jul 9 11:49:10 1996 John W. Eaton - - * Array-flags.cc: Provide definitions for the flags even if - OCTAVE_SOURCE is not defined. - - * Array.h, Array2.h, Array3.h: BOUNDS_CHECKING now affects - operator(), not elem(). - * Array3.h: Move indexing methods here from Array3.cc. - - Mon Jun 24 02:30:05 1996 John W. Eaton - - * Array3.cc (checkelem): Fix typo in call to Array2::elem(). - - * Makefile.in (install-lib): Use INSTALL_PROGRAM instead of - INSTALL_DATA for shared libs. - - Thu Jun 6 09:59:06 1996 John W. Eaton - - * Quad.cc: Include lo-error.h here too. - - Mon May 27 12:41:07 1996 John W. Eaton - - * file-ops.h: Include sys/types.h here. - - Wed May 22 00:20:24 1996 John W. Eaton - - * chMatrix.cc (charMatrix::transpose): Provide definition. - - * Array-idx.h (maybe_delete_elements): Correctly compute number of - elements in result. - * Array2-idx.h (maybe_delete_elements): Likewise for number of - rows and columns in result. - - Tue May 21 23:46:09 1996 John W. Eaton - - * dbleQR.cc (QR::QR): Don't create result from to-be-deleted data. - * CmplxQR.cc (ComplexQR::ComplexQR): Likewise. - - Fri May 17 03:06:02 1996 John W. Eaton - - * Makefile.in (install-inc): Install in octincludedir, not includedir. - - Sun May 12 03:40:01 1996 John W. Eaton - - * Makefile.in (uninstall): Also delete shared library. - Split install into install-libs and install-includes. - (install-inc): If linkdir is a directory, leave it alone. - - * sun-utils.cc (MAIN__): Define for Linux/ELF systems. - - Thu May 2 20:19:01 1996 John W. Eaton - - * Array-idx.h (assign): Handle A(:) = X for A undefined or empty. - * Array2-idx.h (assign): Likewise. - - Tue Apr 30 05:43:06 1996 John W. Eaton - - * Array2.cc (Array2::range_error): New functions. - - * Array.h (class Array): elem() and operator() are now - equivalent, and do bounds checking by default. - * Array2.cc (class Array2): Likewise. - - Sat Apr 6 21:26:11 1996 John W. Eaton - - * Makefile.in (maintainer-clean, distclean): Also delete - stamp-picdir, stamp-shared, and pic directory. - (stamp-prereq): New target. - - Fri Mar 29 13:44:13 1996 John W. Eaton - - * NPSOL.h (NPSOL_options::set_option (const char *, int)): - New function. - - * Array.h, Array.cc (Array::range_error ()): New functions. - * Array.h (Array::checkelem): Use them. - - * base-lu.h, base-lu.cc: Parameterize based on types of matrix - elements too. - * dbleLU.h, dbleLU.cc, CmplxLU.h, CmplxLU.cc: Change to match. - - * MDiagArray2.h (MDiagArray2 (const MArray& a)): Delete. - - * Makefile.in (distclean): Delete so_locations, which is created - on DEC Alpha systems. - - Sat Mar 23 04:02:53 1996 John W. Eaton - - * Array.h (HEAVYWEIGHT_INDEXING): Do define this here if it is not - already defined. - - Fri Mar 22 23:53:58 1996 John W. Eaton - - * pathsearch.cc: Include config.h. - - Wed Mar 20 04:54:03 1996 John W. Eaton - - * Array2-idx.h (assign (Array2&, const Array2&)): Don't - allow M(I, J) = scalar if I or J is empty. - - * Array-idx.h: Delete Array2 and Array3 code (now in Array2-idx.h - and Array3-idx.h). - - Thu Mar 7 10:20:12 1996 John W. Eaton - - * lo-error.h: Make comments C friendly. - - Sun Mar 3 14:04:32 1996 John W. Eaton - - * Array2.h (make_unique): Move all indexing functions here. - * Array2.cc: From here. - - * Array.h, Array2.h (NO_BOUNDS_CHECKING): New macro to control - whether operator() calls elem or checkelem. - - * Array.h (make_unique): New private function. - Move all indexing functions here. - * Array.cc: From here. - - * pathsearch.cc (dir_path::find_all): Index tmp, don't dereference - it too. - - * Array-d.cc, Array-ch.cc, Array-C.cc, Array-s.cc, Array-str.cc, - Array-i.cc, MArray-i.cc, MArray-s.cc, MArray-d.cc, MArray-ch.cc, - MArray-C.cc: Include config.h. - - * Array.h, Array2.h, DiagArray2.h, Array3.h: - Don't define HEAVYWEIGHT_INDEXING here. - - Sat Mar 2 18:39:35 1996 John W. Eaton - - * base-lu.h, base-lu.cc: New files. - * Makefile.in: Add them to the appropriate lists. - * dbleLU.h, dbleLU.cc, CmplxLU.h, Cmplx.cc: Derive from base_lu. - - Fri Mar 1 08:30:58 1996 John W. Eaton - - * Array2.h, Array3.h, DiagArray2.h: New files, extracted from Array.h - * Array2-idx.h, Array3-idx.h: New files, extracted from Array-idx.h - * Array2.cc, Array3.cc, DiagArray2.cc: New files, from Array.cc. - * MArray2.h, MDiagArray2.h: New files, extracted from MArray.h. - * MArray2.cc, MDiagArray2.cc, MArray-defs.h: New files, from MArray.cc. - - * MArray.h (INSTANTIATE_MARRAY_FRIENDS): New macro. - (INSTANTIATE_MARRAY2_FRIENDS): Likewise. - (INSTANTIATE_MDIAGARRAY_FRIENDS): Likewise. - * MArray-C.cc, MArray-ch.cc, MArray-c.cc, MArray-i.cc, MArray-s.cc: - Simplify using new macros. - - Mon Feb 26 03:04:29 1996 John W. Eaton - - * Makefile.in (install): If $(includedir) ends in version string, - make link to name that does not include version info. - - * lo-ieee.cc: Include here. - - Fri Feb 16 20:52:34 1996 John W. Eaton - - * lo-ieee.cc, lo-ieee.h: New files. - * lo-mappers.cc, lo-mappers.h: New files. - * lo-utils.cc, lo-utils.h: New files. - * Makefile.in: Add them to the appropriate lists. - - Thu Feb 15 22:02:17 1996 John W. Eaton - - * dMatrix.cc (all_integers, too_large_for_float): New functions. - * CMatrix.cc (all_integers, too_large_for_float): New functions. - - * byte-swap.h, data-conv.h, data-conv.cc, float-fmt.h, - float-fmt.cc: New files. - * Makefile.in: Include them in the appropriate lists. - - Wed Feb 14 01:49:47 1996 John W. Eaton - - * dMatrix.cc (Qzval): New function. - - Tue Feb 13 12:41:54 1996 John W. Eaton - - * NPSOL.cc (NPSOL_options::set_option): Arg key is now string, not - char*. - - * DASSL.h, DASSL.cc: Do better management of temporary workspace. - Use F77_XFCN to call Fortran subroutine. - * dColVector.cc, CColVector.cc: Likewise. - * dRowVector.cc, CRowVector.cc: Likewise. - * NPSOL.h, NPSOL.cc: Likewise. - * CmplxCHOL.cc: Likewise. - * dbleCHOL.cc: Likewise. - * CMatrix.cc: Likewise. - * dMatrix.cc: Likewise. - * QPSOL.cc: Likewise. - * LSODE.cc: Likewise. - - Sun Feb 11 14:14:26 1996 John W. Eaton - - * dbleHESS.cc (HESS::init): Dimension of tau is n-1, not n+1. - - * dbleSCHUR.h, dbleSCHUR.cc: Do better management of temporary - workspace. Use F77_XFCN to call Fortran subroutine. - * CmplxAEPBAL.h, CmplxAEPBAL.cc: Likewise. - * CmplxSCHUR.h, CmplxSCHUR.cc: Likewise. - * dbleGEPBAL.h, dbleGEPBAL.cc: Likewise. - * dbleAEPBAL.h, dbleAEPBAL.cc: Likewise. - * CmplxHESS.h, CmplxHESS.cc: Likewise. - * CmplxSVD.h, CmplxSVD.cc: Likewise. - * dbleHESS.h, dbleHESS.cc: Likewise. - * dbleSVD.h, dbleSVD.cc: Likewise. - * EIG.h, EIG.cc; Likewise. - * CollocWt.cc: Likewise. - * NLEqn.cc: Likewise. - * Quad.cc: Likewise. - - Sat Feb 10 12:14:59 1996 John W. Eaton - - * dbleLU.h, dbleLU.cc: Do better management of temporary workspace. - Use F77_XFCN to call Fortran subroutine. - * CmplxLU.h, CmplxLU.cc: Ditto. - * dbleQR.h, dbleQR.cc: Ditto. - * CmplxQR.h, CmplxQR.cc: Ditto. - * dbleQRP.h, dbleQRP.cc: Ditto. - * CmplxQRP.h, CmplxQRP.cc: Ditto. - - * dir-ops.h (dir_entry::dir): Declare as void*, not DIR*. - (struct DIR): delete forward declaration. - (dir_entry::operator = (const dir_entry$)): Protect against - copying same object. - * dir-ops.cc: Cast dir appropriately. - - Fri Feb 9 16:12:44 1996 John W. Eaton - - * lo-error.cc: Moved to libcruft/misc. - * Makefile.in: Delete it from the list. - - * f77-fcn.c (f77_context, f77_exception_encountered): Delete - definitions (they have been moved to libcruft/misc/f77-extern.cc). - - * Array-flags.h: New file. - * Array-idx.h: Include it here. - * Makefile.in (MATRIX_INC): Add it to the list. - - * Array-flags.cc: Renamed from Array-ext.cc. - (liboctave_dfi_flag): Renamed from dfi_flag. - (liboctave_pcv_flag): Renamed from pcv_flag. - (liboctave_pzo_flag): Renamed from pzo_flag. - (liboctave_rre_flag): Renamed from rre_flag. - * Array-idx.h: Change all uses of dfi_flag, etc. - * Makefile.in (MATRIX_SRC): Change file name here too. - - * Makefile.in (LIBOCTAVE_LFLAGS, LIBOCTAVE_LIBS): New variables. - (stamp-shared): Use them here. - - Tue Feb 6 09:53:41 1996 John W. Eaton - - * cmd-hist.cc (command_history::ignore_entries): Delete default - argument value. - - Mon Feb 5 12:07:50 1996 John W. Eaton - - * CmplxAEPBAL.h, CmplxCHOL.h, CmplxDET.h, CmplxHESS.h, CmplxLU.h, - CmplxQR.h, CmplxQRP.h, CmplxSCHUR.h, CmplxSVD.h, dbleAEPBAL.h, - dbleCHOL.h, dbleDET.h, dbleGEPBAL.h, dbleHESS.h, dbleLU.h, - dbleQR.h, dbleQRP.h, dbleSCHUR.h, dbleSVD.h: - Clean up constructors, assigment operator. - - Sun Feb 4 03:12:04 1996 John W. Eaton - - * NPSOL.cc (do_minimize): Use F77_XFCN to call npsol. - Check f77_exception_encountered on return. - - * f77-fcn.c (f77_exception_encountered): New variable. - (F77_XFCN): Set it. - * f77-fcn.h: Provide declaration. - - * QPSOL.h (QPSOL_options::set_options): Renamed from copy(). - - * NPSOL.h (NPSOL_options::set_options): Renamed from copy(). - - * NLEqn.h (NLEqn_options::set_options): New function. - * Quad.h (Quad_options::set_options): Likewise. - - * LP.h (class LP): Add accessors for LP data. - - * NLEqn.h (NLEqn::n): Delete. - - * NLEqn.h (class NLEqn::n): Likewise. - - * NLP.h (class NLP): Add accessors for NLP data. - - * NPSOL.h (class NPSOL_options): Move constructors, set, and - access functions here. - * NPSOL.cc.cc: From here. - - * QLD.h (class QLD): Add destructor definition. - * Objective.h (class Objective): Likewise. - * ODEFunc.h (class ODEFunc): Likewise. - * NLFunc.h (class NLFunc): Likewise. - * NLEqn.h (class NLEqn): Likewise. - * NLConst.h (class NLConst): Likewise. - * LinConst.h (class LinConst): Likewise. - * LSODE.h (class LSODE_options): Likewise. - * CollocWt.h (class CollocWt): Likewise. - * Bounds.h (class Bounds): Likewise. - - * QLD.cc (QLD::set_default_options): Delete. - - * QP.h (QP): Add accessors for QP data. - Add copy constructor, operator =, and destructor definitions. - - * Range.h, Quad.h, QP.h, QLD.h, Objective.h, NLP.h, NLFunc.h, - NLConst.h, LinConst.h, LSODE.h, LP.h, FEGrid.h, EIG.h, DASSL.h, - DAEFunc.h, CollocWt.h, Bounds.h: - Clean up constructors, assigment operator. - - * dRowVector.cc (RowVector::transpose): Use magic of reference - counting to avoid duplicating the data immediately. - * dColVector.cc (ColumnVector::transpose): Likewise. - * CRowVector.cc (ComplexrowVector::transpose): Likewise. - * CColVector.cc (ComplexColumnVector::transpose): Likewise. - - Sat Feb 3 01:02:36 1996 John W. Eaton - - * prog-args.h (prog_args::option_argument): New enum. - - * f77-fcn.h: Rename from f77-uscore.h. - (F77_XFCN_ERROR, F77_XFCN): New macros. - * f77-fcn.c: New file. - * Makefile.in (SOURCES): Add it to the list. - - * ODEFunc.h: Clean up. - - * DASSL.cc, DASSL.h: New files. - * Makefile.in: Add them to the appropriate lists. - - * LSODE.cc, LSODE.h: New files. - * Makefile.in: Add them to the appropriate lists. - - * ODE.cc: Delete. - * Makefile.in (SOURCES): Remove from list. - - * base-de.h, DAE.cc: New files. - * Makefile.in: Add them to the appropriate lists. - * ODE.h: Only define interface for ODE classes. - * DAE.h: Only define interface for ODE classes. - - * LPsolve.cc (do_minimize): Print sorry not implemented message. - (LPsolve::set_default_options)): Delete - * LPsolve.h (class LPsolve): Add operator =, copy constructor, and - destructor. - - * LP.h (class LP): Add operator =, copy constructor, and destructor. - - * QPSOL.h (QPSOL::QPSOL (const QPSOL&)): New constructor. - (QPSOL::operator =): Call base class operator = instead of assuming - we know what to copy. - - * base-min.h (size): New function. - - * NLP.h (NLP::size): Delete. - (NLP::NLP (const NLP&)): New constructor. - (NLP::operator =): Call base class operator = instead of assuming - we know what to copy. - - * NPSOL.h, NPSOL.cc (NPSOL::option): Delete. - (class NPSOL): Add operator = and destructor. - - * NPSOL.h: Add NPSOL_options() to list of constructor initalizers. - - Fri Feb 2 22:52:55 1996 John W. Eaton - - * Makefile.in (liboctave.a): Depend on $(PICOBJ). - - Wed Jan 31 05:29:25 1996 John W. Eaton - - * dMatrix.cc (Givens, Sylvester, Matrix::expm): New functions. - * CMatrix.cc (Givens, Sylvester, ComplexMatrix::expm): Ditto. - - Mon Jan 29 00:00:12 1996 John W. Eaton - - * prog-args.h, prog-args.cc: New files. - * Makefile.in: Add them to lists. - - * getopt.h, getopt.c, getopt1.c: New files. - * Makefile.in: Add them to the lists. - - * oct-term.h, oct-term.cc: New files. - * Makefile.in: Add them to the lists. - - * str-vec.cc: New file. - * Makefile.in (SOURCES): Add it to the list. - - * file-ops.cc (oct_tmpnam): Move here from src/utils.cc. - - * tempname.c, tempnam.c: Move here from src directory. - * Makefile.in: Add to lists. - - Sun Jan 28 23:06:19 1996 John W. Eaton - - * cmd-hist.h, cmd-hist.cc: New files. - * Makefile.in: Add them to lists. - - Thu Jan 25 20:36:05 1996 John W. Eaton - - * oct-glob.h, oct-glob.cc: New files. - * Makefile.in: Add them to lists. - - Wed Jan 24 01:55:08 1996 John W. Eaton - - * pathsearch.h, pathsearch.cc: New files. - * Makefile.in: Add them to lists. - - * dir-ops.h, dir-ops.cc: New files. - * sysdir.h: Move here from src directory. - * Makefile.in: Add them to lists. - - * Array.h (Array::qsort): Return *this, not void. - * str-vec.h (string_vector::qsort): Likewise. - - * chMatrix.cc (row_as_string): Resize result to eliminate - unnecessary NULs. - - Tue Jan 23 00:40:58 1996 John W. Eaton - - * safe-xstat.hin, safe-xstat.cin, statdefs.h, file-ops.h, - file-ops.cc, filemode.c, mkdir.c, rmdir.c, rename.c: - Files moved here from src directory. - * Makefile.in: Add them to lists. Include appropriate rules. - - * acosh.c, asinh.c, atanh.c, erf.c, erfc.c, gamma.c, lgamma.c: - Use pointers, not references (this is C code!). - - * oct-math.h: New file. - * acosh.c, asinh.c, atanh.c, erf.c, erfc.c, gamma.c, lgamma.c: - Files moved here from src directory. - * Makefile.in: Add them to lists. - - Sun Jan 21 22:53:37 1996 John W. Eaton - - * idx-vector.cc (make_uniq): Fix major brain-o. - - * CmplxSCHUR.h, CmplxSCHUR.cc, dbleSCHUR.h, dbleSCHUR.cc: - Convert to use string class instead of char*. - - * str-vec.h, Array-str.cc: New files. - - * Array.h (Array::qsort): New function. - - Fri Jan 12 01:45:10 1996 John W. Eaton - - * Array.h: Nest ArrayRep class inside Array class. - Refer to ArrayRep, not ArrayRep. - Move all ArrayRep functions inline. - Don't declare other Array classes as friends of ArrayRep. - * Array.cc: Delete ArrayRep functions. - * Array-idx.h: Refer to ArrayRep, not ArrayRep. - - * Array-C.cc, Array-ch.cc, Array-d.cc, Array-i.cc, Array-s.cc: - Don't instantiate ArrayRep objects. - - Wed Jan 10 04:40:21 1996 John W. Eaton - - * chMatrix.cc (charMatrix::charMatrix (const string&)): - New constructor. - - Tue Jan 9 04:44:56 1996 John W. Eaton - - * dbleGEPBAL.cc (GEPBALANCE::init): Use string instead of char* - for balance_job arg. - * dbleAEPBAL.cc (AEPBALANCE::init): Likewise. - * CmplxAEPBAL.cc (ComplexAEPBALANCE::init): Likewise. - - * chMatrix.cc (row_as_string): Return string, not const char*. - - Mon Jan 8 03:20:01 1996 John W. Eaton - - * Makefile.in (clean): If $(SHARED_LIBS), also remove shared libs. - - * chMatrix.cc (row_as_string): Undo previous change. - - Sun Jan 7 19:50:16 1996 John W. Eaton - - * chMatrix.cc (row_as_string): Do memory management here. Caller - is expected to save string if necessary. - - Sat Jan 6 19:28:20 1996 John W. Eaton - - * Array.h (class DiagArray): Enable nested Proxy class for all - platforms. - - * Array.cc (Array::operator = (const Array&)): If rep == - a.rep, don't mess with count. - * Array.h (Array2& operator = (const Array2&)): Likewise, - don't do anything if reps are the same. - (Array3& operator = (const Array3&) - - * Array.h (ArrayRep::operator = (const ArrayRep&)): - Declare private with no definition to prevent misuse. - - * Array.cc (Array2::insert (const Array2&, int, int)): - Get range check right. - * dMatrix.cc (Matrix::insert (const RowVector&, int, int)): Ditto. - (Matrix::insert (const ColumnVector&, int, int)): Ditto. - (Matrix::insert (const DiagMatrix&, int, int)): Ditto. - * CMatrix.cc (ComplexMatrix::insert (const Matrix&, int, int)): Ditto. - (ComplexMatrix::insert (const RowVector&, int, int)): Ditto. - (ComplexMatrix::insert (const ColumnVector&, int, int)): Ditto. - (ComplexMatrix::insert (const DiagMatrix&, int, int)): Ditto. - (ComplexMatrix::insert (const ComplexRowVector&, int, int)): Ditto. - (ComplexMatrix::insert (const ComplexColumnVector&, int, int)): Ditto. - (ComplexMatrix::insert (const ComplexDiagMatrix&, int, int)): Ditto. - * dRowVector.cc (RowVector::insert (const RowVector&, int)): Ditto. - * dColVector.cc - (ColumnVector::insert (const ColumnVector&, int)): Ditto. - * CRowVector.cc - (ComplexRowVector::insert (const RowVector&, int)): Ditto. - (ComplexRowVector::insert (const ComplexRowVector&, int)): Ditto. - * CColVector.cc - (ComplexColumnVector::insert (const ColumnVector&, int)): Ditto. - (ComplexColumnVector::insert (const ComplexColumnVector&, int)): Ditto. - - * dMatrix.cc (Matrix::insert (const DiagMatrix&, int, int)): - Also fill in zeros, not just the diagonal. - - * CDiagMatrix.cc (ComplexDiagMatrix::fill (double, int, int)): - Use END parameter properly. - (ComplexDiagMatrix::fill (const Complex&, int, int)): Ditto. - * dDiagMatrix.cc (DiagMatrix::fill (double, int, int)): Ditto. - - * Array.h (ArrayRep::ArrayRep (void)): Set count to 1 here. - (ArrayRep::ArrayRep (T *, int)): Likewise. - * Array.cc (ArrayRep::ArrayRep (const ArrayRep&)): - Don't copy count. Set it to 1. - (ArrayRep::ArrayRep (int)): Set count to 1 here. - - * Array.h (Array::Array (T *, int)): After constructing rep, - don't set rep->count to 1 here (now handled by ArrayRep - constructors). - (Array::Array (void)): Ditto. - (Array::Array (int)): Ditto. - (Array::T& elem (int)): Ditto. - * Array-idx.h (Array::maybe_delete_elements (idx_vector&)): Ditto. - (Array2::maybe_delete_elements (idx_vector&, idx_vector&)): Ditto. - * Array.cc: (Array::Array (int, const T&)): Ditto. - (Array::resize (int)): Ditto. - (Array::resize (int, const T&)) :Ditto. - (Array::fortran_vec (void)): Ditto. - (Array2::resize (int, int)): Ditto. - (Array2::resize (int, int, const T&)): Ditto. - (DiagArray::resize (int, int)): Ditto. - (DiagArray::resize (int, int, const T&)): Ditto. - - Sun Dec 31 21:23:26 1995 John W. Eaton - - * Array-ch.cc: Rename from Array-c.cc. - * MArray-ch.cc: Rename from MArray-c.cc. - * chMatrix.cc: Rename from cMatrix.cc. - * chMatrix.h: Rename from cMatrix.h. - * Makefile.in (TI_SRC): Use new names here. - * mx-base.h: Likewise. - - Fri Dec 29 21:45:00 1995 John W. Eaton - - * Makefile.in: Handle shared libraries. - - Thu Dec 28 14:18:34 1995 John W. Eaton - - * CRowVector.cc (operator * (ComplexRowVector, ComplexMatrix)): - Correctly compute length of return value. Correct rows and - columns in zgemv call. - * dRowVector.cc (operator * (RowVector, Matrix)): Likewise. - - Tue Dec 26 00:37:57 1995 John W. Eaton - - * Makefile.in (stamp-picdir): New target. - (all): Depend on it. - - Sun Dec 24 03:10:41 1995 John W. Eaton - - * Makefile.in (INCLUDES): Remove QLD.h. - (SOURCES): Remove QLD.cc. - - Wed Dec 20 00:43:46 1995 John W. Eaton - - * dMatrix.cc (Matrix::inverse): New arg, force. - If force is nonzero, invert even if matrix is singular. - (ComplexMatrix::inverse): Likewise. - - * dRowVector.cc, mx-inlines.cc, dMatrix.cc, dDiagMatrix.cc, - dColVector.cc,MArray-C.cc, CmplxDET.cc, CRowVector.cc, CMatrix.cc, - CDiagMatrix.cc, CColVector.cc, Array-C.cc, CmplxDET.h, CMatrix.h: - Include "oct-cmplx.h" instead of . - - * mx-defs.h: Include oct-cmplx.h in place of forward declaration - for class Complex. - - * oct-cmplx.h: New file. - * Makefile.in (INCLUDES): Add it to the list. - - * idx-vector.cc (IDX_VEC_REP::idx_vector_rep): Don't redeclare len. - (IDX_VEC_REP::maybe_convert_one_zero_to_idx): Don't redeclare count. - (IDX_VEC_REP::freeze): Don't redeclare max_val and min_val. - (intcmp, sort_data, make_uniq, copy_data, IDX_VEC_REP::print): - Avoid g++ bugs. - - Tue Nov 14 14:24:16 1995 John Eaton - - * Array-idx.h (maybe_delete_elements): Give useful error message. - - * dbleSCHUR.cc, dbleSVD.cc: Include iostream.h. - - Mon Nov 13 08:35:07 1995 John Eaton - - * CDiagMatrix.cc (inverse): Return retval, not *this. - * dDiagMatrix.cc (inverse): Use same method as for Complex case. - - Sat Nov 4 05:06:12 1995 John Eaton - - * Array.h, Array.cc, Array-idx.h [HEAVYWEIGHT_INDEXING]: Keep - index vector object with Array, not ArrayRep. - - Fri Nov 3 06:52:38 1995 John Eaton - - * Array-idx.h (assign (Array2&, const Array2&): Don't fail - if index is a colon and resizing is maybe needed. - - Tue Oct 31 17:40:01 1995 John Eaton - - * idx-vector.cc (IDX_VEC_REP::is_colon_equiv): Don't return true - if we have a vector of 1's. - - * Array-idx.h (assign (Array2&, Array2&): If lhs has no - current orientation, require index and rhs to conform unless - do_fortran_indexing flag is set. - - Sun Oct 15 23:32:08 1995 John Eaton - - * Array-d.cc, Array-C.cc, mx-base.h, mx-inlines.cc, dDiagMatrix.h, - CDiagMatrix.h, CMatrix.cc, CMatrix.h, dMatrix.h, mx-defs.h, - cMatrix.h, MArray.cc, MArray.h, MArray-i.cc, MArray-c.cc, - MArray-s.cc, Array.h, Array.cc, Array-c.cc, Array-i.cc, - Array-s.cc, cMatrix.cc, Array-idx.h, dMatrix.cc: - Massive changes to support additional data types. Only charMatrix - is currently used in Octave. - - Thu Oct 12 02:22:36 1995 John Eaton - - * Array.cc (Array2::insert (Array2&, int, int): New function. - * CMatrix.cc (ComplexMatrix::insert (ComplexMatrix&, int, int): - Simply call Array2 version. - * dMatrix.cc (Matrix::insert (Matrix&, int, int): Similarly, just - call Array2 version. - - * Array-C.cc, Array-d.cc: Instantiate new assign functions too. - - * Array.h, Array.cc: Massive overhaul to support new way of - handling indexing. - * idx-vector.h, idx-vector.cc: Likewise. - * Array-ext.cc, Array-idx.h: New files. - * Makefile.in: Add them to the appropriate lists. - - Wed Oct 11 00:49:58 1995 John Eaton - - * Range.cc (nelem_internal): Use tfloor here, not round. - - Sun Oct 8 18:21:02 1995 John Eaton - - * idx-vector.h, idx-vector.cc: New files, moved from ../src. - * Makefile.in (SOURCES, INCLUDES): Include them in the lists. - - Sat Oct 7 19:07:02 1995 John Eaton - - * CMatrix.cc (pseudo_inverse): Avoid bogus g++ warning. - - * Array.h: Move simple member functions here. - * Array.cc: From here. - - Fri Oct 6 00:36:04 1995 John Eaton - - * Range.cc (tfloor, tceil, round): New static functions. - (Range::nelem_internal): Rewrite to use better method. - - * dbleSVD.h (SVD::type): New item, sigma_only. - (type_computed): New var. - * dbleSVD.cc (left_singular_matrix, right_singular_matrix): - Handle possible error condition. - (init): Allow for SVD::sigma_only, save type computed. - * CmplxSVD.cc (left_singular_matrix, right_singular_matrix): - Handle possible error condition. - (init): Allow for SVD::sigma_only, save type computed. - - Wed Oct 4 15:33:35 1995 John Eaton - - * Nearly all non-matrix .h and .cc files: - Move short function bodies into class declarations for inlining. - Generally clean up. - - * base-min.h: New file. - * LP.h (class LP): Derive from base_minimizer. - * QLP.h (class QLP): Derive from base_minimizer. - * NLP.h (class NLP): Derive from base_minimizer. - * Makefile.in (INCLUDES): Add base-min.h to the list. - - * Makefile.in (SOURCES): Delete DAEFunc.cc, LP.cc, NLConst.cc, - NLFunc.cc, Objective.cc and QP.cc from list. - - Tue Sep 26 04:14:23 1995 John Eaton - - * dbleSCHUR.cc (select_ana): Remove name of unused parameter. - (SCHUR::SCHUR): Delete unused parameter ord. - * CmplxSCHUR.h (ComplexSCHUR::CmplxSCHUR): Likewise. - - * CRowVector.cc - (ComplexRowVector::operator+ (const Complex&, const RowVector&), - (ComplexRowVector::operator- (const Complex&, const RowVector&), - (ComplexRowVector::operator* (const Complex&, const RowVector&), - (ComplexRowVector::operator/ (const Complex&, const RowVector&)): - Actually do something. - - * dMatrix.cc (Matrix::lssolve (ComplexMatrix&)): Use dummy vars. - (Matrix::lssolve (ComplexMatrix&, int&)): Likewise. - (Matrix::lssolve (ComplexMatrix&, int&, int&)): Likewise. - - * Quad.cc (Quad_options::Quad_options (double, double)): New function. - * (Quad::Quad (integrand_fcn, double, double): Properly initialize - tolerances. - - * DAE.cc (ddassl_f, ddassl_j): Remove names of unused parameters. - * LPsolve.cc (LPsolve::minimize): Likewise. - * NPSOL.cc (NPSOL::option, npsol_confun, npsol_objfun): Likewise. - * ODE.cc (lsode_f, lsode_j): Likewise. - * QPSOL.cc (qphess): Likewise. - - Fri Sep 22 04:14:51 1995 John Eaton - - * dMatrix.cc: Include . - - * Array.cc: Try harder to avoid warnings from gcc in functions - that return bogus values after calling the error handler. - - Thu Sep 14 00:56:00 1995 John Eaton - - * Makefile.in: Use `ifndef omit_deps', not `ifndef $(omit_deps)'. - - * Makefile.in (TEMPLATE_SRC): Add Array-i.cc to the list. - - Tue Aug 22 00:41:06 1995 John Eaton - - * DAE.cc (dassl_f): Add UNUSED attribute for unused parameters. - (dassl_j): Likewise. - - * DAE.cc, NLEqn.cc, NPSOL.cc, ODE.cc, CColVector.cc, CMatrix.cc, - dColVector.cc, dMatrix.cc, CmplxLU.cc, dbleLU.cc, QPSOL.cc, - Array.cc, CollocWt.cc, FEGrid.h, LinConst.h: - Update for change in for loop variable scope for gcc 2.7.0. - - Mon Aug 21 19:34:53 1995 John Eaton - - * Makefile.in: Only include dependency files if $(omit_deps) is - not set. - - Mon May 1 13:26:00 1995 John Eaton (jwe@bullwinkle.che.utexas.edu) - - * dbleSCHUR.h dbleSVD.h dbleQRP.h dbleQR.h dbleHESS.h dbleLU.h - dbleCHOL.h dbleGEPBAL.h dbleAEPBAL.h dbleDET.h dDiagMatrix.h - dColVector.h dMatrix.h dRowVector.h Quad.h Range.h QPSOL.h QLD.h - ODEFunc.h QP.h Objective.h NPSOL.h ODE.h NLEqn.h NLFunc.h - NLConst.h LinConst.h LPsolve.h LP.h FSQP.h FEGrid.h EIG.h - DAEFunc.h CollocWt.h DAE.h CmplxSVD.h CmplxQRP.h CmplxSCHUR.h - CmplxHESS.h CmplxDET.h CmplxLU.h CmplxQR.h CmplxCHOL.h - CmplxAEPBAL.h CRowVector.h CDiagMatrix.h Bounds.h CColVector.h - CMatrix.h dbleSCHUR.cc dbleSVD.cc dbleQRP.cc dbleQR.cc - dbleGEPBAL.cc dbleLU.cc dbleHESS.cc dbleDET.cc dbleCHOL.cc - dbleAEPBAL.cc dColVector.cc dRowVector.cc dMatrix.cc - dDiagMatrix.cc QPSOL.cc Range.cc Quad.cc QP.cc ODEFunc.cc QLD.cc - Objective.cc NLEqn.cc ODE.cc NPSOL.cc NLFunc.cc LPsolve.cc - NLConst.cc LinConst.cc FSQP.cc FEGrid.cc LP.cc DAE.cc EIG.cc - CollocWt.cc DAEFunc.cc CmplxSVD.cc CmplxSCHUR.cc CmplxQRP.cc - CmplxLU.cc CmplxQR.cc CmplxHESS.cc CmplxDET.cc CmplxCHOL.cc - CmplxAEPBAL.cc CRowVector.cc CColVector.cc CMatrix.cc - CDiagMatrix.cc Bounds.cc MArray.h MArray.cc Array.cc Array.h - NLP.h: Use pragma interface/implementation. Don't surround - contents in extern "C++". - * lo-error.h sun-utils.h: Don't surround contents in extern "C++". - - Tue Apr 11 10:59:24 1995 John Eaton - - * f77-uscore.h (F77_FCN): Allow for possibility of uppercase - identifiers. - * utils.cc dbleSVD.cc dbleSCHUR.cc dbleQRP.cc dbleQR.cc dbleLU.cc - dbleHESS.cc dbleGEPBAL.cc dbleAEPBAL.cc dRowVector.cc - dColVector.cc QLD.cc CmplxSVD.cc CmplxCHOL.cc CmplxHESS.cc - CmplxQR.cc CmplxQRP.cc QPSOL.cc CmplxAEPBAL.cc CmplxLU.cc - CmplxSCHUR.cc dMatrix.cc CColVector.cc CRowVector.cc dbleCHOL.cc - CollocWt.cc NLEqn.cc EIG.cc DAE.cc ODE.cc CMatrix.cc NPSOL.cc - Quad.cc: Change usage of F77_FCN to match new definition - - * utils.cc dbleSVD.cc dbleSCHUR.cc dbleQRP.cc dbleQR.cc dbleLU.cc - dbleHESS.cc dbleGEPBAL.cc dbleAEPBAL.cc dRowVector.cc - dColVector.cc QLD.cc CmplxSVD.cc CmplxCHOL.cc CmplxHESS.cc - CmplxQR.cc CmplxQRP.cc QPSOL.cc CmplxAEPBAL.cc CmplxLU.cc - CmplxSCHUR.cc dMatrix.cc CColVector.cc CRowVector.cc dbleCHOL.cc - CollocWt.cc NLEqn.cc EIG.cc DAE.cc ODE.cc CMatrix.cc NPSOL.cc - Quad.cc: Where appropriate, declare Fortran subroutines to take - args by reference instead of pointer. Change all callers. - - Sun Apr 9 20:11:56 1995 John Eaton - - * MArray.h (MArray2::~MArray2, MDiagArray::~MDiagArray): New - functions. Make += and -= operators friend functions. - - * Array.h (Array2::~Array2, Array3::~Array3, - DiagArray::~DiagArray): New functions. - - Wed Apr 5 21:21:13 1995 John Eaton - - * Makefile.in (EXTRAS): Don't distribute mx-kludge.cc. - (MATRIX_INC): Don't distribute mx-kludge.h. - - * CColVector.h CColVector.cc CDiagMatrix.h CDiagMatrix.cc - CMatrix.h CMatrix.cc CRowVector.h CRowVector.cc dColVector.h - dColVector.cc dDiagMatrix.h dDiagMatrix.cc dMatrix.h dMatrix.cc - dRowVector.h dRowVector.cc: - Derive classes from MArray, MArray2, and MDiagArray, not Array, - Array2, and DiagArray2. - Don't use functions defined in mx-kludge.cc for arithmetic - like-type operations on arrays. - - * MArray.cc: Use the classes defined here like-type mathematical - operations on Array objects. Abuse CPP more. - * Makefile.in (TEMPLATE_SRC): Add it to the list. - (EXTRAS): Delete it from this list. - - * MArray-C.cc, MArray-d.cc: New files. - * Makefile.in (TI_SRC): Add them to the list. - - Tue Apr 4 14:13:46 1995 John Eaton - - * mx-kludge.cc: Abuse CPP even more. - - Mon Apr 3 21:05:30 1995 John Eaton - - * Objective.h (objective_function): Add missing const. - (gradient_function): Likewise. - - * CColVector.h CColVector.cc CDiagMatrix.h CDiagMatrix.cc - CMatrix.h CMatrix.cc CRowVector.h CRowVector.cc dColVector.h - dColVector.cc dDiagMatrix.h dDiagMatrix.cc dMatrix.h dMatrix.cc - dRowVector.h dRowVector.cc: - Reorganize to declare and define friends where they should be, - based on the use of private constructors. - - Fri Mar 31 10:09:40 1995 John Eaton - - * CRowVector.h (linspace): Add declaration. - * dRowVector.h (linspace): Likewise. - - * dMatrix.cc (Matrix::inverse, Matrix::determinant, Matrix::solve): - Force result of rcond + 1.0 to be stored. - * CMatrix.cc (ComplexMatrix::inverse, ComplexMatrix::determinant, - ComplexMatrix::solve): Likewise. - - See ChangeLog.1 in the top level directory for earlier changes. --- 0 ---- diff -cNr octave-3.4.0/liboctave/config-ops.sh octave-3.4.1/liboctave/config-ops.sh *** octave-3.4.0/liboctave/config-ops.sh 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/liboctave/config-ops.sh 2011-06-15 11:11:27.000000000 -0400 *************** *** 22,27 **** --- 22,29 ---- top_srcdir="$1" fi + move_if_change="$top_srcdir/build-aux/move-if-change" + liboctave_dir="$top_srcdir/liboctave" mk_ops="$liboctave_dir/mk-ops.awk" *************** *** 33,39 **** inc | all) VX_INC=$($AWK -f $mk_ops prefix=vx list_h_files=1 $liboctave_dir/vx-ops) echo "VX_OP_INC = $(echo $VX_INC)" > $liboctave_dir/vx-op-inc.mk-t ! $top_srcdir/move-if-change $liboctave_dir/vx-op-inc.mk-t $liboctave_dir/vx-op-inc.mk ;; esac ;; --- 35,41 ---- inc | all) VX_INC=$($AWK -f $mk_ops prefix=vx list_h_files=1 $liboctave_dir/vx-ops) echo "VX_OP_INC = $(echo $VX_INC)" > $liboctave_dir/vx-op-inc.mk-t ! $move_if_change $liboctave_dir/vx-op-inc.mk-t $liboctave_dir/vx-op-inc.mk ;; esac ;; *************** *** 45,51 **** src | all) VX_SRC=$($AWK -f $mk_ops prefix=vx list_cc_files=1 $liboctave_dir/vx-ops) echo "VX_OP_SRC = $(echo $VX_SRC)" > $liboctave_dir/vx-op-src.mk-t ! $top_srcdir/move-if-change $liboctave_dir/vx-op-src.mk-t $liboctave_dir/vx-op-src.mk ;; esac ;; --- 47,53 ---- src | all) VX_SRC=$($AWK -f $mk_ops prefix=vx list_cc_files=1 $liboctave_dir/vx-ops) echo "VX_OP_SRC = $(echo $VX_SRC)" > $liboctave_dir/vx-op-src.mk-t ! $move_if_change $liboctave_dir/vx-op-src.mk-t $liboctave_dir/vx-op-src.mk ;; esac ;; *************** *** 57,63 **** inc | all) MX_INC=$($AWK -f $mk_ops prefix=mx list_h_files=1 $liboctave_dir/mx-ops) echo "MX_OP_INC = $(echo $MX_INC)" > $liboctave_dir/mx-op-inc.mk-t ! $top_srcdir/move-if-change $liboctave_dir/mx-op-inc.mk-t $liboctave_dir/mx-op-inc.mk ;; esac ;; --- 59,65 ---- inc | all) MX_INC=$($AWK -f $mk_ops prefix=mx list_h_files=1 $liboctave_dir/mx-ops) echo "MX_OP_INC = $(echo $MX_INC)" > $liboctave_dir/mx-op-inc.mk-t ! $move_if_change $liboctave_dir/mx-op-inc.mk-t $liboctave_dir/mx-op-inc.mk ;; esac ;; *************** *** 69,75 **** src | all) MX_SRC=$($AWK -f $mk_ops prefix=mx list_cc_files=1 $liboctave_dir/mx-ops) echo "MX_OP_SRC = $(echo $MX_SRC)" > $liboctave_dir/mx-op-src.mk-t ! $top_srcdir/move-if-change $liboctave_dir/mx-op-src.mk-t $liboctave_dir/mx-op-src.mk ;; esac ;; --- 71,77 ---- src | all) MX_SRC=$($AWK -f $mk_ops prefix=mx list_cc_files=1 $liboctave_dir/mx-ops) echo "MX_OP_SRC = $(echo $MX_SRC)" > $liboctave_dir/mx-op-src.mk-t ! $move_if_change $liboctave_dir/mx-op-src.mk-t $liboctave_dir/mx-op-src.mk ;; esac ;; *************** *** 81,87 **** inc | all) SMX_INC=$($AWK -f $sparse_mk_ops prefix=smx list_h_files=1 $liboctave_dir/sparse-mx-ops) echo "SMX_OP_INC = $(echo $SMX_INC)" > $liboctave_dir/smx-op-inc.mk-t ! $top_srcdir/move-if-change $liboctave_dir/smx-op-inc.mk-t $liboctave_dir/smx-op-inc.mk ;; esac ;; --- 83,89 ---- inc | all) SMX_INC=$($AWK -f $sparse_mk_ops prefix=smx list_h_files=1 $liboctave_dir/sparse-mx-ops) echo "SMX_OP_INC = $(echo $SMX_INC)" > $liboctave_dir/smx-op-inc.mk-t ! $move_if_change $liboctave_dir/smx-op-inc.mk-t $liboctave_dir/smx-op-inc.mk ;; esac ;; *************** *** 93,99 **** src | all) SMX_SRC=$($AWK -f $sparse_mk_ops prefix=smx list_cc_files=1 $liboctave_dir/sparse-mx-ops) echo "SMX_OP_SRC = $(echo $SMX_SRC)" > $liboctave_dir/smx-op-src.mk-t ! $top_srcdir/move-if-change $liboctave_dir/smx-op-src.mk-t $liboctave_dir/smx-op-src.mk ;; esac ;; --- 95,101 ---- src | all) SMX_SRC=$($AWK -f $sparse_mk_ops prefix=smx list_cc_files=1 $liboctave_dir/sparse-mx-ops) echo "SMX_OP_SRC = $(echo $SMX_SRC)" > $liboctave_dir/smx-op-src.mk-t ! $move_if_change $liboctave_dir/smx-op-src.mk-t $liboctave_dir/smx-op-src.mk ;; esac ;; diff -cNr octave-3.4.0/liboctave/Makefile.am octave-3.4.1/liboctave/Makefile.am *** octave-3.4.0/liboctave/Makefile.am 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/liboctave/Makefile.am 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,31 **** # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/common.mk AM_CPPFLAGS = \ @CPPFLAGS@ -I../libgnu -I$(top_srcdir)/libgnu \ -I$(top_srcdir)/libcruft/misc EXTRA_DIST = \ - ChangeLog \ config-ops.sh \ mk-ops.awk \ mx-op-inc.mk \ --- 18,30 ---- # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/build-aux/common.mk AM_CPPFLAGS = \ @CPPFLAGS@ -I../libgnu -I$(top_srcdir)/libgnu \ -I$(top_srcdir)/libcruft/misc EXTRA_DIST = \ config-ops.sh \ mk-ops.awk \ mx-op-inc.mk \ *************** *** 526,532 **** $(ARPACK_CPPFLAGS) \ $(AM_CPPFLAGS) ! liboctave_la_LDFLAGS = -release $(version) $(NO_UNDEFINED_LDFLAG) \ -bindir $(bindir) \ $(SPARSE_XLDFLAGS) \ $(ARPACK_LDFLAGS) \ --- 525,541 ---- $(ARPACK_CPPFLAGS) \ $(AM_CPPFLAGS) ! # Increment these as needed and according to the rules in the libtool ! # manual: ! liboctave_current = 0 ! liboctave_revision = 0 ! liboctave_age = 0 ! ! liboctave_version_info = $(liboctave_current):$(liboctave_revision):$(liboctave_age) ! ! liboctave_la_LDFLAGS = \ ! -version-info $(liboctave_version_info) \ ! $(NO_UNDEFINED_LDFLAG) \ -bindir $(bindir) \ $(SPARSE_XLDFLAGS) \ $(ARPACK_LDFLAGS) \ *************** *** 542,550 **** nodist_octinclude_HEADERS = \ $(BUILT_INCS) ! $(OPT_INC) : %.h : %.in $(top_srcdir)/mk-opts.pl @echo making $@ from $< ! @$(PERL) $(top_srcdir)/mk-opts.pl --opt-class-header $< > $@-t mv $@-t $@ $(VX_OP_INC) $(VX_OP_SRC) : $(srcdir)/mk-ops.awk vx-ops --- 551,559 ---- nodist_octinclude_HEADERS = \ $(BUILT_INCS) ! $(OPT_INC) : %.h : %.in $(top_srcdir)/build-aux/mk-opts.pl @echo making $@ from $< ! @$(PERL) $(top_srcdir)/build-aux/mk-opts.pl --opt-class-header $< > $@-t mv $@-t $@ $(VX_OP_INC) $(VX_OP_SRC) : $(srcdir)/mk-ops.awk vx-ops diff -cNr octave-3.4.0/liboctave/Makefile.in octave-3.4.1/liboctave/Makefile.in *** octave-3.4.0/liboctave/Makefile.in 2011-02-08 05:03:37.000000000 -0500 --- octave-3.4.1/liboctave/Makefile.in 2011-06-15 11:31:29.000000000 -0400 *************** *** 58,68 **** $(srcdir)/Makefile.in $(srcdir)/mx-op-inc.mk \ $(srcdir)/mx-op-src.mk $(srcdir)/smx-op-inc.mk \ $(srcdir)/smx-op-src.mk $(srcdir)/vx-op-inc.mk \ ! $(srcdir)/vx-op-src.mk $(top_srcdir)/common.mk ChangeLog subdir = liboctave ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ --- 58,71 ---- $(srcdir)/Makefile.in $(srcdir)/mx-op-inc.mk \ $(srcdir)/mx-op-src.mk $(srcdir)/smx-op-inc.mk \ $(srcdir)/smx-op-src.mk $(srcdir)/vx-op-inc.mk \ ! $(srcdir)/vx-op-src.mk $(top_srcdir)/build-aux/common.mk subdir = liboctave ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/ax_pthread.m4 \ ! $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ *************** *** 70,85 **** $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ --- 73,92 ---- $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filemode.m4 \ ! $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpurge.m4 \ ! $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/fseek.m4 \ ! $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftell.m4 \ ! $(top_srcdir)/m4/ftello.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ *************** *** 93,118 **** $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ ! $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ! $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ! $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ ! $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ ! $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ ! $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \ ! $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memchr.m4 \ ! $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ ! $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkfifo.m4 \ ! $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \ ! $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ ! $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nanosleep.m4 \ ! $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ ! $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/printf.m4 \ ! $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ ! $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \ ! $(top_srcdir)/m4/round.m4 $(top_srcdir)/m4/roundf.m4 \ ! $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/select.m4 \ ! $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ --- 100,127 ---- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ ! $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ ! $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ! $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ ! $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/math_h.m4 \ ! $(top_srcdir)/m4/mathfunc.m4 $(top_srcdir)/m4/mbrtowc.m4 \ ! $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ ! $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/md5.m4 \ ! $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \ ! $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \ ! $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkstemp.m4 \ ! $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ ! $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/multiarch.m4 \ ! $(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/nocrash.m4 \ ! $(top_srcdir)/m4/nproc.m4 $(top_srcdir)/m4/open.m4 \ ! $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ ! $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/readlink.m4 \ ! $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ ! $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/round.m4 \ ! $(top_srcdir)/m4/roundf.m4 $(top_srcdir)/m4/save-cwd.m4 \ ! $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/sigaction.m4 \ ! $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ *************** *** 120,148 **** $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \ ! $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ ! $(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \ ! $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/tempname.m4 \ ! $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ ! $(top_srcdir)/m4/times.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ ! $(top_srcdir)/m4/trunc.m4 $(top_srcdir)/m4/truncf.m4 \ ! $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ ! $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/vasnprintf.m4 \ ! $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ ! $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ ! $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ ! $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/acinclude.m4 \ ! $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = --- 129,154 ---- $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strdup.m4 \ ! $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.m4 \ ! $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ ! $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \ ! $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/times.m4 \ ! $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/trunc.m4 \ ! $(top_srcdir)/m4/truncf.m4 $(top_srcdir)/m4/unistd-safer.m4 \ ! $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ ! $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vsnprintf.m4 \ ! $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ ! $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ ! $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = *************** *** 529,535 **** AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ - ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ --- 535,540 ---- *************** *** 681,686 **** --- 686,693 ---- GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ + GNULIB_FGETC = @GNULIB_FGETC@ + GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ *************** *** 690,698 **** --- 697,707 ---- GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ + GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPL = @GNULIB_FREXPL@ + GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ *************** *** 702,707 **** --- 711,718 ---- GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ + GNULIB_GETC = @GNULIB_GETC@ + GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ *************** *** 714,731 **** --- 725,746 ---- GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ + GNULIB_GETS = @GNULIB_GETS@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ + GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ + GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ + GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ *************** *** 756,761 **** --- 771,777 ---- GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ + GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ *************** *** 772,777 **** --- 788,794 ---- GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ + GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ *************** *** 791,796 **** --- 808,814 ---- GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ + GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ *************** *** 806,811 **** --- 824,830 ---- GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ + GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ *************** *** 823,828 **** --- 842,848 ---- GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ + GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ *************** *** 852,862 **** --- 872,884 ---- GNULIB_TIMES = @GNULIB_TIMES@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ + GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ + GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ *************** *** 868,875 **** --- 890,899 ---- GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ + GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ + GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ *************** *** 899,904 **** --- 923,931 ---- GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ + GNULIB_WCTOMB = @GNULIB_WCTOMB@ + GNULIB_WCTRANS = @GNULIB_WCTRANS@ + GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ *************** *** 965,971 **** HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ - HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ --- 992,997 ---- *************** *** 1006,1011 **** --- 1032,1038 ---- HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ + HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ *************** *** 1040,1045 **** --- 1067,1073 ---- HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ + HAVE_PCRE_CONFIG = @HAVE_PCRE_CONFIG@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ *************** *** 1058,1063 **** --- 1086,1092 ---- HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGACTION = @HAVE_SIGACTION@ + HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ *************** *** 1069,1075 **** HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ - HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ --- 1098,1103 ---- *************** *** 1097,1102 **** --- 1125,1131 ---- HAVE_SYS_TIMES_H = @HAVE_SYS_TIMES_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ + HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMES = @HAVE_TIMES@ *************** *** 1137,1143 **** --- 1166,1174 ---- HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ + HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ + HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ *************** *** 1181,1186 **** --- 1212,1218 ---- LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ + LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ *************** *** 1191,1196 **** --- 1223,1229 ---- MAGICK_LDFLAGS = @MAGICK_LDFLAGS@ MAGICK_LIBS = @MAGICK_LIBS@ MAKEINFO = @MAKEINFO@ + MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKOCTFILE_DL_LDFLAGS = @MKOCTFILE_DL_LDFLAGS@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ *************** *** 1204,1216 **** NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ - NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ --- 1237,1249 ---- NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ + NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ *************** *** 1226,1238 **** NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ - NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ --- 1259,1271 ---- NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ + NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ *************** *** 1345,1350 **** --- 1378,1384 ---- REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ + REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ *************** *** 1365,1370 **** --- 1399,1405 ---- REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ + REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ *************** *** 1383,1391 **** --- 1418,1428 ---- REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ + REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ + REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ *************** *** 1419,1424 **** --- 1456,1462 ---- REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ + REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RLD_FLAG = @RLD_FLAG@ *************** *** 1426,1432 **** ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = /bin/sh SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ --- 1464,1470 ---- ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = @SHELL@ SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ *************** *** 1483,1489 **** WARN_CXXFLAGS = @WARN_CXXFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ - WITH_PCRE_CONFIG = @WITH_PCRE_CONFIG@ X11_INCFLAGS = @X11_INCFLAGS@ X11_LIBS = @X11_LIBS@ XMKMF = @XMKMF@ --- 1521,1526 ---- *************** *** 1501,1506 **** --- 1538,1544 ---- abs_top_srcdir = @abs_top_srcdir@ ac_config_files = @ac_config_files@ ac_config_headers = @ac_config_headers@ + ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ *************** *** 1614,1620 **** localverarchlibdir = @localverarchlibdir@ localverfcnfiledir = @localverfcnfiledir@ localveroctfiledir = @localveroctfiledir@ - lt_ECHO = @lt_ECHO@ man1dir = @man1dir@ man1ext = @man1ext@ --- 1652,1657 ---- *************** *** 1721,1727 **** -I$(top_srcdir)/libcruft/misc EXTRA_DIST = \ - ChangeLog \ config-ops.sh \ mk-ops.awk \ mx-op-inc.mk \ --- 1758,1763 ---- *************** *** 2388,2394 **** $(ARPACK_CPPFLAGS) \ $(AM_CPPFLAGS) ! liboctave_la_LDFLAGS = -release $(version) $(NO_UNDEFINED_LDFLAG) \ -bindir $(bindir) \ $(SPARSE_XLDFLAGS) \ $(ARPACK_LDFLAGS) \ --- 2424,2439 ---- $(ARPACK_CPPFLAGS) \ $(AM_CPPFLAGS) ! ! # Increment these as needed and according to the rules in the libtool ! # manual: ! liboctave_current = 0 ! liboctave_revision = 0 ! liboctave_age = 0 ! liboctave_version_info = $(liboctave_current):$(liboctave_revision):$(liboctave_age) ! liboctave_la_LDFLAGS = \ ! -version-info $(liboctave_version_info) \ ! $(NO_UNDEFINED_LDFLAG) \ -bindir $(bindir) \ $(SPARSE_XLDFLAGS) \ $(ARPACK_LDFLAGS) \ *************** *** 2410,2416 **** .SUFFIXES: .SUFFIXES: .c .cc .lo .o .obj ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.mk $(srcdir)/vx-op-inc.mk $(srcdir)/mx-op-inc.mk $(srcdir)/smx-op-inc.mk $(srcdir)/vx-op-src.mk $(srcdir)/mx-op-src.mk $(srcdir)/smx-op-src.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ --- 2455,2461 ---- .SUFFIXES: .SUFFIXES: .c .cc .lo .o .obj ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build-aux/common.mk $(srcdir)/vx-op-inc.mk $(srcdir)/mx-op-inc.mk $(srcdir)/smx-op-inc.mk $(srcdir)/vx-op-src.mk $(srcdir)/mx-op-src.mk $(srcdir)/smx-op-src.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ *************** *** 7004,7010 **** define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ --- 7049,7055 ---- define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/build-aux/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ *************** *** 7228,7234 **** endef define do_script_install ! $(top_srcdir)/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ --- 7273,7279 ---- endef define do_script_install ! $(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ *************** *** 7268,7276 **** $(srcdir)/smx-op-src.mk: $(srcdir)/config-ops.sh $(srcdir)/sparse-mk-ops.awk $(srcdir)/sparse-mx-ops $(srcdir)/config-ops.sh $(top_srcdir) smx src ! $(OPT_INC) : %.h : %.in $(top_srcdir)/mk-opts.pl @echo making $@ from $< ! @$(PERL) $(top_srcdir)/mk-opts.pl --opt-class-header $< > $@-t mv $@-t $@ $(VX_OP_INC) $(VX_OP_SRC) : $(srcdir)/mk-ops.awk vx-ops --- 7313,7321 ---- $(srcdir)/smx-op-src.mk: $(srcdir)/config-ops.sh $(srcdir)/sparse-mk-ops.awk $(srcdir)/sparse-mx-ops $(srcdir)/config-ops.sh $(top_srcdir) smx src ! $(OPT_INC) : %.h : %.in $(top_srcdir)/build-aux/mk-opts.pl @echo making $@ from $< ! @$(PERL) $(top_srcdir)/build-aux/mk-opts.pl --opt-class-header $< > $@-t mv $@-t $@ $(VX_OP_INC) $(VX_OP_SRC) : $(srcdir)/mk-ops.awk vx-ops diff -cNr octave-3.4.0/liboctave/MatrixType.cc octave-3.4.1/liboctave/MatrixType.cc *** octave-3.4.0/liboctave/MatrixType.cc 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/liboctave/MatrixType.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 921,934 **** lower_band = a.lower_band; dense = a.dense; full = a.full; - nperm = a.nperm; ! if (nperm != 0) { ! perm = new octave_idx_type [nperm]; ! for (octave_idx_type i = 0; i < nperm; i++) perm[i] = a.perm[i]; } } return *this; --- 921,940 ---- lower_band = a.lower_band; dense = a.dense; full = a.full; ! if (nperm) ! { ! delete[] perm; ! } ! ! if (a.nperm != 0) { ! perm = new octave_idx_type [a.nperm]; ! for (octave_idx_type i = 0; i < a.nperm; i++) perm[i] = a.perm[i]; } + + nperm = a.nperm; } return *this; diff -cNr octave-3.4.0/liboctave/oct-alloc.h octave-3.4.1/liboctave/oct-alloc.h *** octave-3.4.0/liboctave/oct-alloc.h 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/liboctave/oct-alloc.h 2011-06-15 11:11:27.000000000 -0400 *************** *** 23,28 **** --- 23,30 ---- #if !defined (octave_oct_alloc_h) #define octave_oct_alloc_h 1 + #include + class OCTAVE_API octave_allocator diff -cNr octave-3.4.0/liboctave/Quad-opts.in octave-3.4.1/liboctave/Quad-opts.in *** octave-3.4.0/liboctave/Quad-opts.in 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/liboctave/Quad-opts.in 2011-06-15 11:11:27.000000000 -0400 *************** *** 34,40 **** DOC_ITEM Non-negative relative tolerance. If the absolute tolerance is zero, the relative tolerance must be greater than or equal to ! @code{max (50*eps, 0.5e-28)}. END_DOC_ITEM TYPE = "double" --- 34,40 ---- DOC_ITEM Non-negative relative tolerance. If the absolute tolerance is zero, the relative tolerance must be greater than or equal to ! @w{@code{max (50*eps, 0.5e-28)}}. END_DOC_ITEM TYPE = "double" *************** *** 59,65 **** DOC_ITEM Non-negative relative tolerance for single precision. If the absolute tolerance is zero, the relative tolerance must be greater than or equal to ! @code{max (50*eps, 0.5e-28)}. END_DOC_ITEM TYPE = "float" INIT_VALUE = "::sqrt (FLT_EPSILON)" --- 59,65 ---- DOC_ITEM Non-negative relative tolerance for single precision. If the absolute tolerance is zero, the relative tolerance must be greater than or equal to ! @w{@code{max (50*eps, 0.5e-28)}}. END_DOC_ITEM TYPE = "float" INIT_VALUE = "::sqrt (FLT_EPSILON)" diff -cNr octave-3.4.0/liboctave/Sparse.cc octave-3.4.1/liboctave/Sparse.cc *** octave-3.4.0/liboctave/Sparse.cc 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/liboctave/Sparse.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 1928,1935 **** if (new_nz > nz) { // Make room first. ! std::copy_backward (data () + ui, data () + nz, data () + li + rnz); ! std::copy_backward (ridx () + ui, ridx () + nz, ridx () + li + rnz); mx_inline_add2 (nc - ub, cidx () + ub + 1, new_nz - nz); } --- 1928,1937 ---- if (new_nz > nz) { // Make room first. ! std::copy (data () + ui, data () + nz, ! data () + li + rnz); ! std::copy (ridx () + ui, ridx () + nz, ! ridx () + li + rnz); mx_inline_add2 (nc - ub, cidx () + ub + 1, new_nz - nz); } diff -cNr octave-3.4.0/liboctave/Sparse-perm-op-defs.h octave-3.4.1/liboctave/Sparse-perm-op-defs.h *** octave-3.4.0/liboctave/Sparse-perm-op-defs.h 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/liboctave/Sparse-perm-op-defs.h 2011-06-15 11:11:27.000000000 -0400 *************** *** 34,49 **** const octave_idx_type nent = a.nnz (); SM r (nr, nc, nent); ! for (octave_idx_type k = 0; k < nent; ++k) { octave_quit (); ! r.xridx (k) = pcol[a.ridx (k)]; ! r.xdata (k) = a.data (k); } - for (octave_idx_type j = 0; j <= nc; ++j) - r.xcidx (j) = a.cidx (j); - r.maybe_compress (false); return r; } --- 34,59 ---- const octave_idx_type nent = a.nnz (); SM r (nr, nc, nent); ! octave_sort sort; ! ! for (octave_idx_type j = 0; j <= nc; ++j) ! r.xcidx (j) = a.cidx (j); ! ! for (octave_idx_type j = 0; j < nc; j++) { octave_quit (); ! ! OCTAVE_LOCAL_BUFFER (octave_idx_type, sidx, r.xcidx(j+1) - r.xcidx(j)); ! for (octave_idx_type i = r.xcidx(j), ii = 0; i < r.xcidx(j+1); i++) ! { ! sidx[ii++]=i; ! r.xridx (i) = pcol[a.ridx (i)]; ! } ! sort.sort (r.xridx() + r.xcidx(j), sidx, r.xcidx(j+1) - r.xcidx(j)); ! for (octave_idx_type i = r.xcidx(j), ii = 0; i < r.xcidx(j+1); i++) ! r.xdata(i) = a.data (sidx[ii++]); } return r; } *************** *** 105,111 **** } assert (k_src == nent); - r.maybe_compress (false); return r; } --- 115,120 ---- *************** *** 141,147 **** } assert (k == nent); - r.maybe_compress (false); return r; } --- 150,155 ---- diff -cNr octave-3.4.0/m4/acinclude.m4 octave-3.4.1/m4/acinclude.m4 *** octave-3.4.0/m4/acinclude.m4 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/m4/acinclude.m4 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,1597 ---- + dnl aclocal.m4 -- extra macros for configuring Octave + dnl + dnl Copyright (C) 1995-2011 John W. Eaton + dnl + dnl This file is part of Octave. + dnl + dnl Octave is free software; you can redistribute it and/or modify it + dnl under the terms of the GNU General Public License as published by the + dnl Free Software Foundation; either version 3 of the License, or (at + dnl your option) any later version. + dnl + dnl Octave is distributed in the hope that it will be useful, but WITHOUT + dnl ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + dnl FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + dnl for more details. + dnl + dnl You should have received a copy of the GNU General Public License + dnl along with Octave; see the file COPYING. If not, see + dnl . + dnl + dnl + dnl Copyright (C) 2008 - 2009 Free Software Foundation, Inc. + dnl + dnl If needed, define the m4_ifblank and m4_ifnblank macros from autoconf 2.64 + dnl This allows us to run with earlier Autoconfs as well. + dnl FIXME: these should go away once Autoconf 2.64 is required or ubiquitous. + dnl + ifdef([m4_ifblank],[],[ + m4_define([m4_ifblank], + [m4_if(m4_translit([[$1]], [ ][ ][ + ]), [], [$2], [$3])])]) + dnl + ifdef([m4_ifnblank],[],[ + m4_define([m4_ifnblank], + [m4_if(m4_translit([[$1]], [ ][ ][ + ]), [], [$3], [$2])])]) + dnl + dnl ---------------------------------------------------------------------- + dnl + dnl Figure out the hardware-vendor-os info. + dnl + dnl OCTAVE_HOST_TYPE + AC_DEFUN([OCTAVE_HOST_TYPE], + [AC_CANONICAL_HOST + if test -z "$host"; then + host=unknown + fi + canonical_host_type=$host + if test "$host" = unknown; then + AC_MSG_WARN([configuring Octave for unknown system type + ]) + fi + AC_SUBST(canonical_host_type)]) + dnl + dnl Set default value for a variable and substitute it. + dnl + dnl OCTAVE_SET_DEFAULT + AC_DEFUN([OCTAVE_SET_DEFAULT], + [ifelse($#, 2, [: ${$1=$2} + ])dnl + AC_MSG_RESULT([defining $1 to be $$1]) + AC_SUBST($1)]) + dnl + dnl Check for ar. + dnl + AC_DEFUN([OCTAVE_PROG_AR], + [if test -z "$AR"; then + AR=ar + fi + AC_SUBST(AR) + + if test -z "$ARFLAGS"; then + ARFLAGS="rc" + fi + AC_SUBST(ARFLAGS) + ]) + dnl + dnl See if the compiler supports placement delete + dnl + AC_DEFUN([OCTAVE_PLACEMENT_DELETE], + [AC_CACHE_CHECK([whether defines placement delete operator], + octave_cv_placement_delete, + [AC_LANG_PUSH(C++) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[operator delete((void *)0, (void *)0);]])], + octave_cv_placement_delete=yes, octave_cv_placement_delete=no)]) + if test $octave_cv_placement_delete = yes; then + AC_DEFINE(HAVE_PLACEMENT_DELETE,1,[Define if C++ supports operator delete(void *, void *)]) + fi + AC_LANG_POP(C++) + ]) + dnl + dnl See if the compiler dynamic auto arrays + dnl + AC_DEFUN([OCTAVE_DYNAMIC_AUTO_ARRAYS], + [AC_CACHE_CHECK([whether C++ supports dynamic auto arrays], + octave_cv_dynamic_auto_arrays, + [AC_LANG_PUSH(C++) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], + [[void test(char *); int length(); char x[length()]; test(x);]])], + octave_cv_dynamic_auto_arrays=yes, octave_cv_dynamic_auto_arrays=no)]) + if test $octave_cv_dynamic_auto_arrays = yes; then + AC_DEFINE(HAVE_DYNAMIC_AUTO_ARRAYS,1,[Define if C++ supports dynamic auto arrays]) + fi + AC_LANG_POP(C++) + ]) + dnl + dnl See if the C++ library has functions to set real and imaginary + dnl parts of complex numbers independently. + dnl + AC_DEFUN([OCTAVE_CXX_COMPLEX_SETTERS], + [AC_CACHE_CHECK([whether complex class can set components independently], + octave_cv_cxx_complex_setters, + [AC_LANG_PUSH(C++) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[std::complex x; x.real (1.0); x.imag (2.0);]])], + octave_cv_cxx_complex_setters=yes, octave_cv_cxx_complex_setters=no)]) + if test $octave_cv_cxx_complex_setters = yes; then + AC_DEFINE(HAVE_CXX_COMPLEX_SETTERS,1,[Define if C++ complex class has void real (T) and void imag (T) methods]) + fi + AC_LANG_POP(C++) + ]) + dnl + dnl See if the C++ library has functions to access real and imaginary + dnl parts of complex numbers independently via references. + dnl + AC_DEFUN([OCTAVE_CXX_COMPLEX_REFERENCE_ACCESSORS], + [AC_CACHE_CHECK([whether complex class can reference components independently], + octave_cv_cxx_complex_reference_accessors, + [AC_LANG_PUSH(C++) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[std::complex x; x.real () = 1.0; x.imag () = 1.0;]])], + octave_cv_cxx_complex_reference_accessors=yes, octave_cv_cxx_complex_reference_accessors=no)]) + if test $octave_cv_cxx_complex_reference_accessors = yes; then + AC_DEFINE(HAVE_CXX_COMPLEX_REFERENCE_ACCESSORS,1,[Define if C++ complex class has T& real (void) and T& imag (void) methods]) + fi + AC_LANG_POP(C++) + ]) + dnl + dnl The following test is from Karl Berry's Kpathseach library. I'm + dnl including it here in case we someday want to make the use of + dnl kpathsea optional. + dnl + dnl Some BSD putenv's, e.g., FreeBSD, do malloc/free's on the environment. + dnl This test program is due to Mike Hibler . + dnl We don't actually need to run this if we don't have putenv, but it + dnl doesn't hurt. + AC_DEFUN([OCTAVE_SMART_PUTENV], + [AC_MSG_CHECKING([whether putenv uses malloc]) + AC_CACHE_VAL(octave_cv_func_putenv_malloc, + [AC_RUN_IFELSE([AC_LANG_SOURCE([[ + #define VAR "YOW_VAR" + #define STRING1 "GabbaGabbaHey" + #define STRING2 "Yow!!" /* should be shorter than STRING1 */ + extern char *getenv (); /* in case char* and int don't mix gracefully */ + main () + { + char *str1, *rstr1, *str2, *rstr2; + str1 = getenv (VAR); + if (str1) + exit (1); + str1 = malloc (strlen (VAR) + 1 + strlen (STRING1) + 1); + if (str1 == 0) + exit (2); + strcpy (str1, VAR); + strcat (str1, "="); + strcat (str1, STRING1); + if (putenv (str1) < 0) + exit (3); + rstr1 = getenv (VAR); + if (rstr1 == 0) + exit (4); + rstr1 -= strlen (VAR) + 1; + if (strncmp (rstr1, VAR, strlen (VAR))) + exit (5); + str2 = malloc (strlen (VAR) + 1 + strlen (STRING2) + 1); + if (str2 == 0 || str1 == str2) + exit (6); + strcpy (str2, VAR); + strcat (str2, "="); + strcat (str2, STRING2); + if (putenv (str2) < 0) + exit (7); + rstr2 = getenv (VAR); + if (rstr2 == 0) + exit (8); + rstr2 -= strlen (VAR) + 1; + #if 0 + printf ("rstr1=0x%x, rstr2=0x%x\n", rstr1, rstr2); + /* + * If string from first call was reused for the second call, + * you had better not do a free on the first string! + */ + if (rstr1 == rstr2) + printf ("#define SMART_PUTENV\n"); + else + printf ("#undef SMART_PUTENV\n"); + #endif + exit (rstr1 == rstr2 ? 0 : 1); + }]])], octave_cv_func_putenv_malloc=yes, octave_cv_func_putenv_malloc=no, + octave_cv_func_putenv_malloc=no)])dnl + AC_MSG_RESULT([$octave_cv_func_putenv_malloc]) + if test $octave_cv_func_putenv_malloc = yes; then + AC_DEFINE(SMART_PUTENV,1,[To quiet autoheader.]) + fi]) + dnl + dnl Check to see if C++ compiler needs the new friend template declaration + dnl syntax. + dnl + dnl OCTAVE_CXX_NEW_FRIEND_TEMPLATE_DECL + AC_DEFUN([OCTAVE_CXX_NEW_FRIEND_TEMPLATE_DECL], [ + AC_REQUIRE([AC_PROG_CXX]) + AC_MSG_CHECKING([for C++ support for new friend template declaration]) + AC_CACHE_VAL(octave_cv_cxx_new_friend_template_decl, [ + AC_LANG_PUSH(C++) + rm -f conftest.h + cat > conftest.h < int + operator== (const T&, const T&) + { + return 0; + } + EOB + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "conftest.h"]], + [[A a (1); + return a == A(1);]])], + [octave_cv_cxx_new_friend_template_decl=no], + [octave_cv_cxx_new_friend_template_decl=yes]) + AC_LANG_POP(C++) + ]) + AC_MSG_RESULT([$octave_cv_cxx_new_friend_template_decl]) + if test $octave_cv_cxx_new_friend_template_decl = yes; then + AC_DEFINE(CXX_NEW_FRIEND_TEMPLATE_DECL,1,[Define if your compiler supports `<>' stuff for template friends.]) + fi + ]) + dnl + dnl Check to see if C compiler handles FLAG command line option. If + dnl two arguments are specified, execute the second arg as shell + dnl commands. Otherwise, add FLAG to CFLAGS if the compiler accepts + dnl the flag. + dnl + dnl OCTAVE_CC_FLAG + AC_DEFUN([OCTAVE_CC_FLAG], [ + ac_safe=`echo "$1" | sed 'y%./+-:=%__p___%'` + AC_MSG_CHECKING([whether ${CC-cc} accepts $1]) + AC_CACHE_VAL(octave_cv_cc_flag_$ac_safe, [ + AC_LANG_PUSH(C) + XCFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $1" + AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], + eval "octave_cv_cc_flag_$ac_safe=yes", + eval "octave_cv_cc_flag_$ac_safe=no") + CFLAGS="$XCFLAGS" + AC_LANG_POP(C) + ]) + if eval "test \"`echo '$octave_cv_cc_flag_'$ac_safe`\" = yes"; then + AC_MSG_RESULT(yes) + ifelse([$2], , [ + CFLAGS="$CFLAGS $1" + AC_MSG_RESULT([adding $1 to CFLAGS])], [$2]) + else + AC_MSG_RESULT(no) + ifelse([$3], , , [$3]) + fi + ]) + dnl + dnl Check to see if C++ compiler handles FLAG command line option. If + dnl two arguments are specified, execute the second arg as shell + dnl commands. Otherwise, add FLAG to CXXFLAGS if the compiler accepts + dnl the flag. + dnl + dnl OCTAVE_CXX_FLAG + AC_DEFUN([OCTAVE_CXX_FLAG], [ + ac_safe=`echo "$1" | sed 'y%./+-:=%__p___%'` + AC_MSG_CHECKING([whether ${CXX-g++} accepts $1]) + AC_CACHE_VAL(octave_cv_cxx_flag_$ac_safe, [ + AC_LANG_PUSH(C++) + XCXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS $1" + AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], + eval "octave_cv_cxx_flag_$ac_safe=yes", + eval "octave_cv_cxx_flag_$ac_safe=no") + CXXFLAGS="$XCXXFLAGS" + AC_LANG_POP(C++) + ]) + if eval "test \"`echo '$octave_cv_cxx_flag_'$ac_safe`\" = yes"; then + AC_MSG_RESULT(yes) + ifelse([$2], , [ + CXXFLAGS="$CXXFLAGS $1" + AC_MSG_RESULT([adding $1 to CXXFLAGS])], [$2]) + else + AC_MSG_RESULT(no) + ifelse([$3], , , [$3]) + fi + ]) + dnl + dnl Check to see if Fortran compiler handles FLAG command line option. If + dnl two arguments are specified, execute the second arg as shell + dnl commands. Otherwise, add FLAG to FFLAGS if the compiler accepts + dnl the flag. + dnl + dnl OCTAVE_F77_FLAG + AC_DEFUN([OCTAVE_F77_FLAG], [ + ac_safe=`echo "$1" | sed 'y%./+-:=%__p___%'` + AC_MSG_CHECKING([whether ${F77-g77} accepts $1]) + AC_CACHE_VAL(octave_cv_f77_flag_$ac_safe, [ + AC_LANG_PUSH(Fortran 77) + XFFLAGS="$FFLAGS" + FFLAGS="$FFLAGS $1" + AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], + eval "octave_cv_f77_flag_$ac_safe=yes", + eval "octave_cv_f77_flag_$ac_safe=no") + FFLAGS="$XFFLAGS" + AC_LANG_POP(Fortran 77) + ]) + if eval "test \"`echo '$octave_cv_f77_flag_'$ac_safe`\" = yes"; then + AC_MSG_RESULT(yes) + ifelse([$2], , [ + FFLAGS="$FFLAGS $1" + AC_MSG_RESULT([adding $1 to FFLAGS])], [$2]) + else + AC_MSG_RESULT(no) + ifelse([$3], , , [$3]) + fi + ]) + dnl + dnl Check to see whether the default Fortran INTEGER is 64 bits wide. + dnl + AC_DEFUN([OCTAVE_CHECK_FORTRAN_INTEGER_SIZE], [ + octave_fintsize_save_FFLAGS="$FFLAGS" + FFLAGS="$FFLAGS $F77_INTEGER_8_FLAG" + AC_LANG_PUSH(Fortran 77) + AC_CACHE_CHECK([whether $F77 generates correct size integers], + [octave_cv_fortran_integer_size], + [AC_COMPILE_IFELSE( + [ subroutine foo(n, in, out) + integer n, in(n), out(n) + integer i + do 10 i = 1, n + out(i) = in(i) + 10 continue + return + end], + [mv conftest.$ac_objext fintsize.$ac_objext + + octave_fintsize_save_LIBS="$LIBS" + LIBS="fintsize.$ac_objext $[]_AC_LANG_PREFIX[]LIBS" + AC_LANG_PUSH(C)dnl + AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ + #ifdef USE_64_BIT_IDX_T + #if IDX_TYPE_LONG + typedef long octave_idx_type; + #else + typedef int octave_idx_type; + #endif + #else + typedef int octave_idx_type; + #endif + octave_idx_type n = 2; + octave_idx_type in[2]; + octave_idx_type out[2]; + in[0] = 13; + in[0] = 42; + F77_FUNC(foo,FOO) (&n, &in, &out); + assert (in[0] == out[0] && in[1] == out[1]); + ]])], + [octave_cv_fortran_integer_size=yes], + [octave_cv_fortran_integer_size=no]) + AC_LANG_POP(C)dnl + LIBS="$octave_fintsize_save_LIBS" + rm -f conftest.$ac_objext fintsize.$ac_objext + ], [ + rm -f conftest.$ac_objext + AC_MSG_FAILURE([cannot compile a simple Fortran program]) + octave_cv_fortran_integer_size=no])]) + AC_LANG_POP(Fortran 77) + FFLAGS="$octave_fintsize_save_FFLAGS" + ]) + dnl + dnl + dnl + dnl OCTAVE_CHECK_LIBRARY(LIBRARY, DOC-NAME, WARN-MSG, HEADER, FUNC, + dnl LANG, DOC-STRING, EXTRA-CHECK) + AC_DEFUN([OCTAVE_CHECK_LIBRARY], [ + AC_ARG_WITH([$1-includedir], + [AS_HELP_STRING([--with-$1-includedir=DIR], + [look for $2 include files in DIR])], + [m4_toupper([$1])_CPPFLAGS="-I$withval"]) + AC_SUBST(m4_toupper([$1])_CPPFLAGS) + + AC_ARG_WITH([$1-libdir], + [AS_HELP_STRING([--with-$1-libdir=DIR], + [look for $2 libraries in DIR])], + [m4_toupper([$1])_LDFLAGS="-L$withval"]) + AC_SUBST(m4_toupper([$1])_LDFLAGS) + + AC_ARG_WITH([$1], + [m4_ifblank([$7], + [AS_HELP_STRING([--without-$1], [don't use $2 library])], + [AS_HELP_STRING([--without-$1], [$7])])], + with_$1=$withval, with_$1=yes) + + m4_toupper([$1])_LIBS= + case $with_$1 in + no) + m4_toupper([$1])_LIBS= + ;; + yes | "") + m4_toupper([$1])_LIBS="-l$1" + ;; + -* | */* | *.a | *.so | *.so.* | *.o) + m4_toupper([$1])_LIBS="$with_$1" + ;; + *) + m4_toupper([$1])_LIBS="-l$with_$1" + ;; + esac + + [TEXINFO_]m4_toupper([$1])= + warn_$1="$3" + if test -n "$m4_toupper([$1])_LIBS"; then + octave_check_library_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$m4_toupper([$1])_CPPFLAGS $CPPFLAGS" + m4_ifnblank([$6], [AC_LANG_PUSH($6)]) + octave_$1_check_for_lib=false + m4_ifblank([$4], [octave_$1_check_for_lib=true], + [AC_CHECK_HEADERS($4, [octave_$1_check_for_lib=true; break])]) + if $octave_$1_check_for_lib; then + octave_check_library_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$m4_toupper([$1])_LDFLAGS $LDFLAGS" + octave_check_library_save_LIBS="$LIBS" + LIBS="$m4_toupper([$1])_LIBS $LIBS" + octave_$1_ok=no + AC_MSG_CHECKING([for $5 in $m4_toupper([$1])_LIBS]) + AC_LINK_IFELSE([AC_LANG_CALL([], [$5])], + [octave_$1_ok=yes]) + AC_MSG_RESULT([$octave_$1_ok]) + if test $octave_$1_ok = yes; then + m4_ifblank([$8], [ + warn_$1= + AC_DEFINE([HAVE_]m4_toupper([$1]), 1, + [Define if $2 is available.]) + [TEXINFO_]m4_toupper([$1])="@set [HAVE_]m4_toupper([$1])"], [$8]) + fi + LIBS="$octave_check_library_save_LIBS" + LDFLAGS="$octave_check_library_save_LDFLAGS" + fi + m4_ifnblank([$6], [AC_LANG_POP($6)]) + CPPFLAGS="$octave_check_library_save_CPPFLAGS" + fi + AC_SUBST(m4_toupper([$1])_LIBS) + AC_SUBST([TEXINFO_]m4_toupper([$1])) + if test -n "$warn_$1"; then + AC_MSG_WARN([$warn_$1]) + m4_toupper([$1])_LIBS= + fi + ]) + dnl + dnl Check for flex + dnl + AC_DEFUN([OCTAVE_PROG_FLEX], [ + ### For now, don't define LEXLIB to be -lfl -- we don't use anything in + ### it, and it might not be installed. + ### + ### Also make sure that we generate an interactive scanner if we are + ### using flex. + AC_PROG_LEX + case "$LEX" in + flex*) + LFLAGS="-I" + AC_MSG_RESULT([defining LFLAGS to be $LFLAGS]) + LEXLIB= + ;; + *) + LEX='$(top_srcdir)/missing flex' + warn_flex="I didn't find flex, but it's only a problem if you need to reconstruct lex.cc" + AC_MSG_WARN([$warn_flex]) + ;; + esac + AC_SUBST(LFLAGS) + ]) + dnl + dnl Check for bison + dnl + AC_DEFUN([OCTAVE_PROG_BISON], [ + AC_PROG_YACC + case "$YACC" in + bison*) + ;; + *) + YACC='$(top_srcdir)/missing bison' + warn_bison="I didn't find bison, but it's only a problem if you need to reconstruct parse.cc" + AC_MSG_WARN([$warn_bison]) + ;; + esac + ]) + dnl + dnl What pager should we use? + dnl + AC_DEFUN([OCTAVE_PROG_PAGER], + [if test "$cross_compiling" = yes; then + DEFAULT_PAGER=less + AC_MSG_RESULT([assuming $DEFAULT_PAGER exists on $canonical_host_type host]) + AC_SUBST(DEFAULT_PAGER) + else + octave_possible_pagers="less more page pg" + case "$canonical_host_type" in + *-*-cygwin* | *-*-mingw32* | *-*-msdosmsvc) + octave_possible_pagers="$octave_possible_pagers more.com" + ;; + esac + + AC_CHECK_PROGS(DEFAULT_PAGER, $octave_possible_pagers, []) + if test -z "$DEFAULT_PAGER"; then + warn_less="I couldn't find \`less', \`more', \`page', or \`pg'" + AC_MSG_WARN([$warn_less]) + fi + fi + ]) + dnl + dnl Does gnuplot exist? + dnl + AC_DEFUN([OCTAVE_PROG_GNUPLOT], [ + gp_names="gnuplot" + gp_default="gnuplot" + if test "$cross_compiling" = yes; then + GNUPLOT="$gp_default" + AC_MSG_RESULT([assuming $GNUPLOT exists on $canonical_host_type host]) + else + AC_CHECK_PROGS(GNUPLOT, [$gp_names]) + if test -z "$GNUPLOT"; then + warn_gnuplot=yes + + GNUPLOT="$gp_default" + + AC_MSG_WARN([gnuplot not found. It isn't necessary to have gnuplot]) + AC_MSG_WARN([installed, but without native graphics or gnuplot]) + AC_MSG_WARN([you won't be able to use any of Octave's plotting commands.]) + fi + fi + AC_SUBST(GNUPLOT) + ]) + dnl + dnl Is gperf installed? + dnl + dnl OCTAVE_PROG_GPERF + AC_DEFUN([OCTAVE_PROG_GPERF], [ + AC_CHECK_PROG(GPERF, gperf, gperf, []) + if test -z "$GPERF"; then + GPERF='$(top_srcdir)/missing gperf' + warn_gperf="I didn't find gperf, but it's only a problem if you need to reconstruct oct-gperf.h" + AC_MSG_WARN([$warn_gperf]) + fi + AC_SUBST(GPERF) + ]) + dnl + dnl Is ghostscript installed? + dnl + dnl OCTAVE_PROG_GHOSTSCRIPT + AC_DEFUN([OCTAVE_PROG_GHOSTSCRIPT], [ + case "$canonical_host_type" in + *-*-mingw* | *-*-msdosmsvc) + gs_names="gswin32c gs" + ;; + *) + gs_names="gs" + ;; + esac + AC_CHECK_PROGS(GHOSTSCRIPT, [$gs_names]) + if test -z "$GHOSTSCRIPT"; then + GHOSTSCRIPT='$(top_srcdir)/missing gs' + warn_ghostscript="I didn't find ghostscript, so reconstructing figures for the manual will fail, and saving graphics in some output formats will fail when using Octave" + AC_MSG_WARN([$warn_ghostscript]) + fi + AC_SUBST(GHOSTSCRIPT) + ]) + dnl + dnl Is texi2dvi installed? + dnl + dnl OCTAVE_PROG_TEXI2DVI + AC_DEFUN([OCTAVE_PROG_TEXI2DVI], [ + AC_CHECK_PROG(TEXI2DVI, texi2dvi, texi2dvi, []) + if test -z "$TEXI2DVI"; then + TEXI2DVI='$(top_srcdir)/missing texi2dvi' + warn_texi2dvi="I didn't find texi2dvi, but it's only a problem if you need to reconstruct the DVI version of the manual" + AC_MSG_WARN([$warn_texi2dvi]) + fi + AC_SUBST(TEXI2DVI) + ]) + dnl + dnl Is texi2pdf installed? + dnl + dnl OCTAVE_PROG_TEXI2PDF + AC_DEFUN([OCTAVE_PROG_TEXI2PDF], [ + AC_REQUIRE([OCTAVE_PROG_TEXI2DVI]) + AC_CHECK_PROG(TEXI2PDF, texi2pdf, texi2pdf, []) + if test -z "$TEXI2PDF"; then + missing=true; + if test -n "$TEXI2DVI"; then + TEXI2PDF="$TEXI2DVI --pdf" + missing=false; + fi + else + missing=false; + fi + if $missing; then + TEXI2PDF='$(top_srcdir)/missing texi2pdf' + warn_texi2pdf="I didn't find texi2pdf, but it's only a problem if you need to reconstruct the PDF version of the manual" + AC_MSG_WARN([$warn_texi2pdf]) + fi + AC_SUBST(TEXI2PDF) + ]) + dnl + dnl See if the C++ library is ISO compliant. + dnl FIXME: This is obviously very simplistic, and trivially fooled. + dnl + dnl OCTAVE_CXX_ISO_COMPLIANT_LIBRARY + AC_DEFUN([OCTAVE_CXX_ISO_COMPLIANT_LIBRARY], [ + AC_REQUIRE([AC_PROG_CXX]) + AC_MSG_CHECKING([if C++ library is ISO compliant]) + AC_CACHE_VAL(octave_cv_cxx_iso_compliant_library, [ + AC_LANG_PUSH(C++) + rm -f conftest.h + ### Omitting cwctype for now, since it is broken with gcc-3.0.x and + ### possibly other versions... + for inc in algorithm bitset cassert cctype cerrno cfloat ciso646 \ + climits clocale cmath complex csetjmp csignal cstdarg cstddef \ + cstdio cstdlib cstring ctime cwchar deque exception \ + fstream functional iomanip ios iosfwd iostream istream iterator \ + limits list locale map memory new numeric ostream queue set \ + sstream stack stdexcept streambuf string strstream typeinfo \ + utility valarray vector; do + echo "#include <$inc>" >> conftest.h + done + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "conftest.h"]], + [[std::bitset<50> flags; + flags.set(); + int digits = std::numeric_limits::digits; + digits = 0;]])], + [octave_cv_cxx_iso_compliant_library=yes], + [octave_cv_cxx_iso_compliant_library=no]) + AC_LANG_POP(C++) + ]) + AC_MSG_RESULT([$octave_cv_cxx_iso_compliant_library]) + if test $octave_cv_cxx_iso_compliant_library = yes; then + AC_DEFINE(CXX_ISO_COMPLIANT_LIBRARY, 1, [Define if your C++ runtime library is ISO compliant.]) + fi + ]) + dnl + dnl Allow the user disable support for command line editing using GNU + dnl readline. + dnl + dnl OCTAVE_ENABLE_READLINE + AC_DEFUN([OCTAVE_ENABLE_READLINE], [ + USE_READLINE=true + READLINE_LIBS= + AC_ARG_ENABLE(readline, + [ --enable-readline use readline library (default is yes)], + [if test "$enableval" = no; then + USE_READLINE=false + warn_readline="command editing and history features require GNU Readline" + fi]) + if $USE_READLINE; then + save_LIBS="$LIBS" + LIBS="$TERM_LIBS" + AC_CHECK_LIB(readline, rl_set_keyboard_input_timeout, [ + READLINE_LIBS="-lreadline" + AC_DEFINE(USE_READLINE, 1, [Define to use the readline library.]) + ], [ + AC_MSG_WARN([I need GNU Readline 4.2 or later]) + AC_MSG_ERROR([this is fatal unless you specify --disable-readline]) + ]) + LIBS="$save_LIBS" + fi + AC_SUBST(READLINE_LIBS) + ]) + dnl + dnl Check to see if C++ reintrepret cast works for function pointers. + dnl + dnl OCTAVE_CXX_BROKEN_REINTERPRET_CAST + dnl + AC_DEFUN([OCTAVE_CXX_BROKEN_REINTERPRET_CAST], [ + AC_REQUIRE([AC_PROG_CXX]) + AC_LANG_PUSH(C++) + AC_CACHE_CHECK([for broken C++ reinterpret_cast], + octave_cv_cxx_broken_reinterpret_cast, [ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ + typedef double (*fptr) (double); + fptr psin = sin; + void *vptr = reinterpret_cast (psin); + psin = reinterpret_cast (vptr);]])], + octave_cv_cxx_broken_reinterpret_cast=no, + octave_cv_cxx_broken_reinterpret_cast=yes)]) + if test $octave_cv_cxx_broken_reinterpret_cast = yes ; then + AC_DEFINE(CXX_BROKEN_REINTERPRET_CAST, 1, [Define if C++ reinterpret_cast fails for function pointers.]) + fi + AC_LANG_POP(C++)]) + dnl + dnl Find find. + dnl + # Prefer GNU find if found. + AN_MAKEVAR([FIND], [OCTAVE_PROG_FIND]) + AN_PROGRAM([gfind], [OCTAVE_PROG_FIND]) + AN_PROGRAM([find], [OCTAVE_PROG_FIND]) + AC_DEFUN([OCTAVE_PROG_FIND], + [AC_CHECK_PROGS(FIND, gfind find, )]) + dnl + dnl Find sed. + dnl + # Check for a fully-functional sed program, that truncates + # as few characters as possible and that supports "\(X\|Y\)" + # style regular expression alternation. Prefer GNU sed if found. + AC_DEFUN([OCTAVE_PROG_SED], + [AC_MSG_CHECKING([for a usable sed]) + if test -z "$SED"; then + AC_CACHE_VAL(ac_cv_path_sed, [ + # Loop through the user's path and test for sed and gsed. + # Then use that list of sed's as ones to test for truncation. + _AS_PATH_WALK([$PATH], + [for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if AS_EXECUTABLE_P(["$as_dir/$ac_prog$ac_exec_ext"]); then + _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" + fi + done + done + ]) + AS_TMPDIR(sed) + _max=0 + _count=0 + # Add /usr/xpg4/bin/sed as it is typically found on Solaris + # along with /bin/sed that truncates output. + for _sed in $_sed_list /usr/xpg4/bin/sed; do + test ! -f ${_sed} && break + cat /dev/null > "$tmp/sed.in" + _count=0 + echo $ECHO_N "0123456789$ECHO_C" >"$tmp/sed.in" + # Check for GNU sed and select it if it is found. + if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then + octave_cv_path_sed=${_sed} + break; + fi + # Reject if RE alternation is not handled. + if test "`echo 'this and that' | ${_sed} -n 's/\(this\|that\).*$/\1/p'`" != "this"; then + continue; + fi + while true; do + cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" + mv "$tmp/sed.tmp" "$tmp/sed.in" + cp "$tmp/sed.in" "$tmp/sed.nl" + echo >>"$tmp/sed.nl" + ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break + cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break + # 10000 chars as input seems more than enough + test $_count -gt 10 && break + _count=`expr $_count + 1` + if test $_count -gt $_max; then + _max=$_count + octave_cv_path_sed=$_sed + fi + done + done + rm -rf "$tmp" + ]) + SED=$octave_cv_path_sed + if test -z "$SED"; then + AC_MSG_ERROR([no usable version of sed found]) + fi + fi + AC_SUBST(SED) + AC_MSG_RESULT([$SED]) + ]) + dnl + dnl Find Perl. + dnl + dnl OCTAVE_PROG_PERL + AC_DEFUN([OCTAVE_PROG_PERL], + [AC_CHECK_PROG(PERL, perl, perl, []) + AC_SUBST(PERL) + ]) + dnl + dnl Find Python. + dnl + dnl OCTAVE_PROG_PYTHON + AC_DEFUN([OCTAVE_PROG_PYTHON], + [AC_CHECK_PROG(PYTHON, python, python, []) + AC_SUBST(PYTHON) + ]) + dnl + dnl Find desktop-file-install. + dnl + dnl OCTAVE_PROG_DESKTOP_FILE_INSTALL + AC_DEFUN([OCTAVE_PROG_DESKTOP_FILE_INSTALL], + [AC_CHECK_PROG(DESKTOP_FILE_INSTALL, desktop-file-install, desktop-file-install, []) + AC_SUBST(DESKTOP_FILE_INSTALL) + ]) + dnl + dnl Check for IEEE 754 data format. + dnl + AC_DEFUN([OCTAVE_IEEE754_DATA_FORMAT], + [AC_MSG_CHECKING([for IEEE 754 data format]) + AC_CACHE_VAL(octave_cv_ieee754_data_format, + [AC_RUN_IFELSE([AC_LANG_SOURCE([[ + int + main (void) + { + typedef union { unsigned char c[8]; double d; } ieeebytes; + + ieeebytes l = {0x1c, 0xbc, 0x6e, 0xf2, 0x54, 0x8b, 0x11, 0x43}; + ieeebytes b = {0x43, 0x11, 0x8b, 0x54, 0xf2, 0x6e, 0xbc, 0x1c}; + + return l.d != 1234567891234567.0 && b.d != 1234567891234567.0; + }]])], + octave_cv_ieee754_data_format=yes, + octave_cv_ieee754_data_format=no, + octave_cv_ieee754_data_format=no)]) + if test "$cross_compiling" = yes; then + AC_MSG_RESULT([$octave_cv_ieee754_data_format assumed for cross compilation]) + else + AC_MSG_RESULT([$octave_cv_ieee754_data_format]) + fi + if test "$octave_cv_ieee754_data_format" = yes; then + AC_DEFINE(HAVE_IEEE754_DATA_FORMAT, 1, [Define if your system uses IEEE 754 data format.]) + else + ## If the format is unknown, then you will probably not have a + ## useful system, so we will abort here. Anyone wishing to + ## experiment with building Octave on a system without IEEE + ## floating point should be capable of removing this check and + ## the one in the octave_ieee_init function in liboctave/lo-ieee.cc. + AC_MSG_ERROR([IEEE 754 data format required for building Octave]) + fi + ]) + dnl + dnl Check for UMFPACK seperately split complex matrix and RHS. Note + dnl that as umfpack.h can be in three different places, rather than + dnl include it, just declare the functions needed. + dnl + dnl Assumes that the check for umfpack has already been performed. + dnl + AC_DEFUN([OCTAVE_UMFPACK_SEPERATE_SPLIT], + [AC_MSG_CHECKING([for UMFPACK seperate complex matrix and rhs split]) + AC_CACHE_VAL(octave_cv_umfpack_seperate_split, + [AC_RUN_IFELSE([AC_LANG_SOURCE([[ + #include + #if defined (HAVE_UFSPARSE_UMFPACK_h) + #include + #elif defined (HAVE_UMFPACK_UMFPACK_H) + #include + #elif defined (HAVE_UMFPACK_H) + #include + #endif + int n = 5; + int Ap[] = {0, 2, 5, 9, 10, 12}; + int Ai[] = {0, 1, 0, 2, 4, 1, 2, 3, 4, 2, 1, 4}; + double Ax[] = {2., 0., 3., 0., 3., 0., -1., 0., 4., 0., 4., 0., + -3., 0., 1., 0., 2., 0., 2., 0., 6., 0., 1., 0.}; + double br[] = {8., 45., -3., 3., 19.}; + double bi[] = {0., 0., 0., 0., 0.}; + int main (void) + { + double *null = (double *) NULL ; + double *x = (double *)malloc (2 * n * sizeof(double)); + int i ; + void *Symbolic, *Numeric ; + (void) umfpack_zi_symbolic (n, n, Ap, Ai, Ax, null, &Symbolic, null, null) ; + (void) umfpack_zi_numeric (Ap, Ai, Ax, null, Symbolic, &Numeric, null, null) ; + umfpack_zi_free_symbolic (&Symbolic) ; + (void) umfpack_zi_solve (0, Ap, Ai, Ax, null, x, null, br, bi, + Numeric, null, null) ; + umfpack_zi_free_numeric (&Numeric) ; + for (i = 0; i < n; i++, x+=2) + if (fabs(*x - i - 1.) > 1.e-13) + return (1); + return (0) ; + } + ]])], + octave_cv_umfpack_seperate_split=yes, + octave_cv_umfpack_seperate_split=no, + octave_cv_umfpack_seperate_split=no)]) + if test "$cross_compiling" = yes; then + AC_MSG_RESULT([$octave_cv_umfpack_seperate_split assumed for cross compilation]) + else + AC_MSG_RESULT([$octave_cv_umfpack_seperate_split]) + fi + if test "$octave_cv_umfpack_seperate_split" = yes; then + AC_DEFINE(UMFPACK_SEPARATE_SPLIT, 1, [Define if the UMFPACK Complex solver allow matrix and RHS to be split independently]) + fi + ]) + dnl + dnl Check whether using HDF5 DLL under Windows. This is done by + dnl testing for a data symbol in the HDF5 library, which would + dnl requires the definition of _HDF5USEDL_ under MSVC compiler. + dnl + AC_DEFUN([OCTAVE_HDF5_DLL], [ + AC_CACHE_CHECK([if _HDF5USEDLL_ needs to be defined],octave_cv_hdf5_dll, [ + AC_TRY_LINK([#include ], [hid_t x = H5T_NATIVE_DOUBLE; return x], + octave_cv_hdf5_dll=no, [ + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -DWIN32 -D_HDF5USEDLL_" + save_LIBS="$LIBS" + LIBS="$HDF5_LIBS $LIBS" + AC_TRY_LINK([#include ], [hid_t x = H5T_NATIVE_DOUBLE; return x], + octave_cv_hdf5_dll=yes, + octave_cv_hdf5_dll=no) + CFLAGS="$save_CFLAGS" + LIBS="$save_LIBS"])]) + if test "$octave_cv_hdf5_dll" = yes; then + AC_DEFINE(_HDF5USEDLL_, 1, [Define if using HDF5 dll (Win32)]) + fi]) + dnl + dnl Check whether HDF5 library has version 1.6 API functions. + dnl + AC_DEFUN([OCTAVE_HDF5_HAS_ENFORCED_16_API], [ + AC_CACHE_CHECK([whether HDF5 library has enforced version 1.6 API], + octave_cv_hdf5_has_enforced_16_api, [ + AC_TRY_LINK([ + #include + ], [ + H5Eset_auto (0, 0);], [ + octave_cv_hdf5_has_enforced_16_api=yes], [ + octave_cv_hdf5_has_enforced_16_api=no])]) + if test "$octave_cv_hdf5_has_enforced_16_api" != "yes"; then + AC_DEFINE(HAVE_HDF5_18, 1, [Define if >=HDF5-1.8 is available.]) + fi + ]) + dnl + dnl Check for the QHull version. + dnl + AC_DEFUN([OCTAVE_CHECK_QHULL_VERSION], + [AC_CACHE_CHECK([for qh_version in $QHULL_LIBS], + octave_cv_lib_qhull_version, [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + #include + ]], [[ + const char *tmp = qh_version; + ]])], [octave_cv_lib_qhull_version=yes], [octave_cv_lib_qhull_version=no])]) + if test "$octave_cv_lib_qhull_version" = no; then + AC_DEFINE(NEED_QHULL_VERSION, 1, + [Define if the QHull library needs a qh_version variable defined.]) + fi + ]) + dnl + dnl Check whether QHull works (does not crash) + dnl + AC_DEFUN([OCTAVE_CHECK_QHULL_OK], + [AC_CACHE_CHECK([whether the qhull library works], + octave_cv_lib_qhull_ok, [ + AC_RUN_IFELSE([AC_LANG_PROGRAM([[ + #include + #include + #ifdef NEED_QHULL_VERSION + char *qh_version = "version"; + #endif + ]], [[ + int dim = 2; + int n = 4; + coordT points[8] = { -0.5, -0.5, -0.5, 0.5, 0.5, -0.5, 0.5, 0.5 }; + boolT ismalloc = 0; + return qh_new_qhull (dim, n, points, ismalloc, "qhull ", 0, stderr); + ]])], [octave_cv_lib_qhull_ok=yes], [octave_cv_lib_qhull_ok=no])]) + if test "$octave_cv_lib_qhull_ok" = "yes"; then + $1 + else + $2 + fi + ]) + dnl + dnl Check for OpenGL. If found, define OPENGL_LIBS + dnl + dnl FIXME -- the following tests should probably check for the + dnl libraries separately. + dnl + dnl FIXME -- should we allow a way to specify a directory for OpenGL + dnl libraries and header files? + dnl + AC_DEFUN([OCTAVE_OPENGL], [ + OPENGL_LIBS= + + ### On MacOSX systems the OpenGL framework can be used + OCTAVE_HAVE_FRAMEWORK(OpenGL, [ + #include + #include ], [GLint par; glGetIntegerv (GL_VIEWPORT, &par);], + [have_framework_opengl="yes"], [have_framework_opengl="no"]) + + if test $have_framework_opengl = "yes"; then + AC_DEFINE(HAVE_FRAMEWORK_OPENGL, 1, [Define if framework OPENGL is available.]) + OPENGL_LIBS="-Wl,-framework -Wl,OpenGL" + AC_MSG_NOTICE([adding -Wl,-framework -Wl,OpenGL to OPENGL_LIBS]) + OCTAVE_GLUTESSCALLBACK_THREEDOTS + else + case $canonical_host_type in + *-*-mingw32* | *-*-msdosmsvc) + AC_CHECK_HEADERS(windows.h) + ;; + esac + have_opengl_incs=no + AC_CHECK_HEADERS([GL/gl.h OpenGL/gl.h], [ + AC_CHECK_HEADERS([GL/glu.h OpenGL/glu.h], [ + have_opengl_incs=yes; break], [], [ + #ifdef HAVE_WINDOWS_H + #include + #endif + ]) + break + ], [], [ + #ifdef HAVE_WINDOWS_H + #include + #endif + ]) + + if test "$have_opengl_incs" = "yes"; then + case $canonical_host_type in + *-*-mingw32* | *-*-msdosmsvc) + save_LIBS="$LIBS" + LIBS="$LIBS -lopengl32" + AC_MSG_CHECKING([for glEnable in -lopengl32]) + AC_TRY_LINK([ + #if HAVE_WINDOWS_H + #include + #endif + #if defined (HAVE_GL_GL_H) + #include + #elif defined (HAVE_OPENGL_GL_H) + #include + #endif + ], [glEnable(GL_SMOOTH);], OPENGL_LIBS="-lopengl32 -lglu32") + LIBS="$save_LIBS" + if test "x$OPENGL_LIBS" != "x"; then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + fi + ;; + *) + AC_CHECK_LIB(GL, glEnable, OPENGL_LIBS="-lGL -lGLU") + ;; + esac + fi + fi + AC_SUBST(OPENGL_LIBS) + ]) + dnl + dnl See if function gluTessCallback is called with "(...)" + dnl + dnl OCTAVE_GLUTESSCALLBACK_THREEDOTS + AC_DEFUN([OCTAVE_GLUTESSCALLBACK_THREEDOTS], + [AC_CACHE_CHECK([whether gluTessCallback is called with "(...)"], + octave_cv_glutesscallback_threedots, + [AC_LANG_PUSH(C++) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #ifdef HAVE_GL_GLU_H + #include + #elif defined HAVE_OPENGL_GLU_H || defined HAVE_FRAMEWORK_OPENGL + #include + #endif]], + [[GLvoid (*func)(...); gluTessCallback(0, 0, func);]])], + octave_cv_glutesscallback_threedots="yes", octave_cv_glutesscallback_threedots="no")]) + AC_LANG_POP(C++) + if test $octave_cv_glutesscallback_threedots = "yes"; then + AC_DEFINE(HAVE_GLUTESSCALLBACK_THREEDOTS, 1, + [Define if gluTessCallback is called with (...)]) + fi + ]) + dnl + dnl Check for support of OpenMP with a given compiler flag. If + dnl found define HAVE_OPENMP and add the compile flag to CFLAGS + dnl and CXXFLAGS. + dnl + AC_DEFUN([OCTAVE_CHECK_OPENMP], + [AC_MSG_CHECKING([for support of OpenMP]) + XCFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $1" + AC_CACHE_VAL(octave_cv_check_openmp,[ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #include + #include + ]], [[ + int main(int argc, char* argv[]) + { + _Pragma("omp parallel") + printf("Hello, world.\n"); + return 0; + } + ]])],octave_cv_openmp=yes, octave_cv_openmmp=no, octave_cv_openmp=no)]) + AC_MSG_RESULT($octave_cv_openmp) + if test "$octave_cv_openmp" = yes; then + AC_DEFINE(HAVE_OPENMP,1,[Define if compiler supports OpenMP]) + CXXFLAGS="$CXXFLAGS $1" + else + CFLAGS="$XCFLAGS" + fi + ]) + dnl + dnl Configure paths for FreeType2 + dnl Marcelo Magallon 2001-10-26, based on gtk.m4 by Owen Taylor + dnl + dnl Copyright 2001, 2003 by + dnl David Turner, Robert Wilhelm, and Werner Lemberg. + dnl + dnl This file is part of the FreeType project, and may only be used, modified, + dnl and distributed under the terms of the FreeType project license, + dnl LICENSE.TXT. By continuing to use, modify, or distribute this file you + dnl indicate that you have read the license and understand and accept it + dnl fully. + dnl + dnl As a special exception to the FreeType project license, this file may be + dnl distributed as part of a program that contains a configuration script + dnl generated by Autoconf, under the same distribution terms as the rest of + dnl that program. + dnl + dnl serial 2 + dnl + dnl AC_CHECK_FT2([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) + dnl Test for FreeType 2, and define FT2_CFLAGS and FT2_LIBS. + dnl MINIMUM-VERSION is what libtool reports; the default is `7.0.1' (this is + dnl FreeType 2.0.4). + dnl + AC_DEFUN([AC_CHECK_FT2], + [dnl Get the cflags and libraries from the freetype-config script + dnl + AC_ARG_WITH([ft-prefix], + dnl don't quote AS_HELP_STRING! + AS_HELP_STRING([--with-ft-prefix=PREFIX], + [Prefix where FreeType is installed (optional)]), + [ft_config_prefix="$withval"], + [ft_config_prefix=""]) + + AC_ARG_WITH([ft-exec-prefix], + dnl don't quote AS_HELP_STRING! + AS_HELP_STRING([--with-ft-exec-prefix=PREFIX], + [Exec prefix where FreeType is installed (optional)]), + [ft_config_exec_prefix="$withval"], + [ft_config_exec_prefix=""]) + + AC_ARG_ENABLE([freetypetest], + dnl don't quote AS_HELP_STRING! + AS_HELP_STRING([--disable-freetypetest], + [Do not try to compile and run a test FreeType program]), + [], + [enable_fttest=yes]) + + if test x$ft_config_exec_prefix != x ; then + ft_config_args="$ft_config_args --exec-prefix=$ft_config_exec_prefix" + if test x${FT2_CONFIG+set} != xset ; then + FT2_CONFIG=$ft_config_exec_prefix/bin/freetype-config + fi + fi + + if test x$ft_config_prefix != x ; then + ft_config_args="$ft_config_args --prefix=$ft_config_prefix" + if test x${FT2_CONFIG+set} != xset ; then + FT2_CONFIG=$ft_config_prefix/bin/freetype-config + fi + fi + + AC_PATH_PROG([FT2_CONFIG], [freetype-config], [no]) + + min_ft_version=m4_if([$1], [], [7.0.1], [$1]) + AC_MSG_CHECKING([for FreeType -- version >= $min_ft_version]) + no_ft="" + if test "$FT2_CONFIG" = "no" ; then + no_ft=yes + else + FT2_CFLAGS=`$FT2_CONFIG $ft_config_args --cflags` + FT2_LIBS=`$FT2_CONFIG $ft_config_args --libs` + ft_config_major_version=`$FT2_CONFIG $ft_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + ft_config_minor_version=`$FT2_CONFIG $ft_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + ft_config_micro_version=`$FT2_CONFIG $ft_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + ft_min_major_version=`echo $min_ft_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + ft_min_minor_version=`echo $min_ft_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + ft_min_micro_version=`echo $min_ft_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test x$enable_fttest = xyes ; then + ft_config_is_lt="" + if test $ft_config_major_version -lt $ft_min_major_version ; then + ft_config_is_lt=yes + else + if test $ft_config_major_version -eq $ft_min_major_version ; then + if test $ft_config_minor_version -lt $ft_min_minor_version ; then + ft_config_is_lt=yes + else + if test $ft_config_minor_version -eq $ft_min_minor_version ; then + if test $ft_config_micro_version -lt $ft_min_micro_version ; then + ft_config_is_lt=yes + fi + fi + fi + fi + fi + if test x$ft_config_is_lt = xyes ; then + no_ft=yes + else + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $FT2_CFLAGS" + LIBS="$FT2_LIBS $LIBS" + + dnl + dnl Sanity checks for the results of freetype-config to some extent. + dnl + AC_RUN_IFELSE([ + AC_LANG_SOURCE([[ + + #include + #include FT_FREETYPE_H + #include + #include + + int + main() + { + FT_Library library; + FT_Error error; + + error = FT_Init_FreeType(&library); + + if (error) + return 1; + else + { + FT_Done_FreeType(library); + return 0; + } + } + + ]]) + ], + [], + [no_ft=yes], + [echo $ECHO_N "cross compiling; assuming OK... $ECHO_C"]) + + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi dnl test $ft_config_version -lt $ft_min_version + fi dnl test x$enable_fttest = xyes + fi dnl test "$FT2_CONFIG" = "no" + + if test x$no_ft = x ; then + AC_MSG_RESULT([yes]) + m4_if([$2], [], [:], [$2]) + else + AC_MSG_RESULT([no]) + if test "$FT2_CONFIG" = "no" ; then + AC_MSG_WARN([ + + The freetype-config script installed by FreeType 2 could not be found. + If FreeType 2 was installed in PREFIX, make sure PREFIX/bin is in + your path, or set the FT2_CONFIG environment variable to the + full path to freetype-config. + ]) + else + if test x$ft_config_is_lt = xyes ; then + AC_MSG_WARN([ + + Your installed version of the FreeType 2 library is too old. + If you have different versions of FreeType 2, make sure that + correct values for --with-ft-prefix or --with-ft-exec-prefix + are used, or set the FT2_CONFIG environment variable to the + full path to freetype-config. + ]) + else + AC_MSG_WARN([ + + The FreeType test program failed to run. If your system uses + shared libraries and they are installed outside the normal + system library path, make sure the variable LD_LIBRARY_PATH + (or whatever is appropiate for your system) is correctly set. + ]) + fi + fi + + FT2_CFLAGS="" + FT2_LIBS="" + m4_if([$3], [], [:], [$3]) + fi + + AC_SUBST([FT2_CFLAGS]) + AC_SUBST([FT2_LIBS])]) + dnl end of freetype2.m4 + + dnl Check whether a math mapper function is available in . + dnl Will define HAVE_CMATH_FUNC if there is a double variant and + dnl HAVE_CMATH_FUNCF if there is a float variant. + dnl Currently capable of checking for functions with single + dnl argument and returning bool/int/real. + AC_DEFUN([OCTAVE_CMATH_FUNC],[ + AC_MSG_CHECKING([for std::$1 in ]) + AC_LANG_PUSH(C++) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #include + void take_func (bool (*func) (double x)); + void take_func (int (*func) (double x)); + void take_func (double (*func) (double x)); + ]], + [[ + take_func(std::$1); + ]])], + [AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_CMATH_[]AS_TR_CPP($1),1,[Define if provides $1])], + [AC_MSG_RESULT([no])]) + AC_MSG_CHECKING([for std::$1 (float variant) in ]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #include + void take_func (bool (*func) (float x)); + void take_func (int (*func) (float x)); + void take_func (float (*func) (float x)); + ]], + [[ + take_func(std::$1); + ]])], + [AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_CMATH_[]AS_TR_CPP($1)F,1,[Define if provides float variant of $1])], + [AC_MSG_RESULT([no])]) + AC_LANG_POP(C++) + ]) + + dnl Check whether fast signed integer arithmetics using bit tricks + dnl can be used in oct-inttypes.h. Defines HAVE_FAST_INT_OPS if + dnl the following conditions hold: + dnl 1. Signed numbers are represented by twos complement + dnl (see ) + dnl 2. static_cast to unsigned int counterpart works like interpreting + dnl the signed bit pattern as unsigned (and is thus zero-cost). + dnl 3. Signed addition and subtraction yield the same bit results as unsigned. + dnl (We use casts to prevent optimization interference, so there is no + dnl need for things like -ftrapv). + dnl 4. Bit operations on signed integers work like on unsigned integers, + dnl except for the shifts. Shifts are arithmetic. + dnl + AC_DEFUN([OCTAVE_FAST_INT_OPS],[ + AC_MSG_CHECKING([whether fast integer arithmetics is usable]) + AC_LANG_PUSH(C++) + AC_RUN_IFELSE([AC_LANG_PROGRAM([[ + #include + template + static bool + do_test (UT, ST) + { + volatile ST s = std::numeric_limits::min () / 3; + volatile UT u = static_cast (s); + if (*(reinterpret_cast (&u)) != s) return true; + + u = 0; u = ~u; + if (*(reinterpret_cast (&u)) != -1) return true; + + ST sx, sy; + sx = std::numeric_limits::max () / 2 + 1; + sy = std::numeric_limits::max () / 2 + 2; + if (static_cast (static_cast (sx) + static_cast (sy)) + != std::numeric_limits::min () + 1) return true; + if (static_cast (static_cast (sx) - static_cast (sy)) + != -1) return true; + + if ((sx & sy) != (static_cast (sx) & static_cast (sy))) + return true; + if ((sx | sy) != (static_cast (sx) | static_cast (sy))) + return true; + if ((sx ^ sy) != (static_cast (sx) ^ static_cast (sy))) + return true; + if ((-1 >> 1) != -1) return true; + return false; + } + + #define DO_TEST(T) \ + if (do_test (static_cast (0), static_cast (0))) \ + return sizeof (T); + ]],[[ + DO_TEST(char) + DO_TEST(short) + DO_TEST(int) + DO_TEST(long) + #if (defined(HAVE_LONG_LONG_INT) && defined(HAVE_UNSIGNED_LONG_LONG_INT)) + DO_TEST(long long) + #endif + ]])], + [AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_FAST_INT_OPS,1,[Define if signed integers use two's complement])], + [AC_MSG_RESULT([no])]) + AC_LANG_POP(C++)]) + dnl + dnl Check to see if the compiler and the linker can handle the flags + dnl "-framework $1" for the given prologue $2 and the given body $3 of + dnl a source file. Arguments 2 and 3 optionally can also be empty. + dnl Add options (lower case letters $1) "--with-framework-$1" and + dnl "--without-framework-$1". If this test is successful then perform + dnl $4, otherwise do $5. + dnl + dnl OCTAVE_HAVE_FRAMEWORK + AC_DEFUN([OCTAVE_HAVE_FRAMEWORK], [ + AC_MSG_CHECKING([whether ${LD-ld} accepts -framework $1]) + AC_CACHE_VAL(octave_cv_framework_$1, [ + XLDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -framework $1" + AC_LANG_PUSH(C++) + AC_LINK_IFELSE([AC_LANG_PROGRAM([$2], [$3])], + eval "octave_cv_framework_$1=yes", + eval "octave_cv_framework_$1=no") + AC_LANG_POP(C++) + LDFLAGS="$XLDFLAGS" + ]) + if test "$octave_cv_framework_$1" = "yes"; then + AC_MSG_RESULT(yes) + AC_ARG_WITH(framework-m4_tolower($1), + [AS_HELP_STRING([--without-framework-m4_tolower($1)], + [don't use framework $1])], + with_have_framework=$withval, with_have_framework="yes") + if test "$with_have_framework" = "yes"; then + [$4] + else + AC_MSG_NOTICE([framework rejected by --without-framework-m4_tolower($1)]) + [$5] + fi + else + AC_MSG_RESULT(no) + [$5] + fi + ]) + + ############################################################################## + ############################################################################## + + # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- + # + # Copyright © 2004 Scott James Remnant . + # + # 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 2 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, write to the Free Software + # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under + # the same distribution terms that you use for the rest of that program. + + # PKG_PROG_PKG_CONFIG([MIN-VERSION]) + # ---------------------------------- + AC_DEFUN([PKG_PROG_PKG_CONFIG], + [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) + m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) + AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl + if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) + fi + if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi + + fi[]dnl + ])# PKG_PROG_PKG_CONFIG + + # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) + # + # Check to see whether a particular set of modules exists. Similar + # to PKG_CHECK_MODULES(), but does not set variables or print errors. + # + # + # Similar to PKG_CHECK_MODULES, make sure that the first instance of + # this or PKG_CHECK_MODULES is called, or make sure to call + # PKG_CHECK_EXISTS manually + # -------------------------------------------------------------- + AC_DEFUN([PKG_CHECK_EXISTS], + [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl + if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_ifval([$2], [$2], [:]) + m4_ifvaln([$3], [else + $3])dnl + fi]) + + + # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) + # --------------------------------------------- + m4_define([_PKG_CONFIG], + [if test -n "$PKG_CONFIG"; then + if test -n "$$1"; then + pkg_cv_[]$1="$$1" + else + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], + [pkg_failed=yes]) + fi + else + pkg_failed=untried + fi[]dnl + ])# _PKG_CONFIG + + # _PKG_SHORT_ERRORS_SUPPORTED + # ----------------------------- + AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], + [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) + if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes + else + _pkg_short_errors_supported=no + fi[]dnl + ])# _PKG_SHORT_ERRORS_SUPPORTED + + + # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], + # [ACTION-IF-NOT-FOUND]) + # + # + # Note that if there is a possibility the first call to + # PKG_CHECK_MODULES might not happen, you should be sure to include an + # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac + # + # + # -------------------------------------------------------------- + AC_DEFUN([PKG_CHECK_MODULES], + [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl + AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl + AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + + pkg_failed=no + AC_MSG_CHECKING([for $1]) + + _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) + _PKG_CONFIG([$1][_LIBS], [libs], [$2]) + + m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS + and $1[]_LIBS to avoid the need to call pkg-config. + See the pkg-config man page for more details.]) + + if test $pkg_failed = yes; then + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + ifelse([$4], , [AC_MSG_ERROR(dnl + [Package requirements ($2) were not met: + + $$1_PKG_ERRORS + + Consider adjusting the PKG_CONFIG_PATH environment variable if you + installed software in a non-standard prefix. + + _PKG_TEXT + ])], + [AC_MSG_RESULT([no]) + $4]) + elif test $pkg_failed = untried; then + ifelse([$4], , [AC_MSG_FAILURE(dnl + [The pkg-config script could not be found or is too old. Make sure it + is in your PATH or set the PKG_CONFIG environment variable to the full + path to pkg-config. + + _PKG_TEXT + + To get pkg-config, see .])], + [$4]) + else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + ifelse([$3], , :, [$3]) + fi[]dnl + ])# PKG_CHECK_MODULES + + dnl + dnl External macros. + dnl + + m4_include([m4/ax_pthread.m4]) + m4_include([m4/ax_blas.m4]) + m4_include([m4/ax_blas_f77_func.m4]) + m4_include([m4/ax_lapack.m4]) diff -cNr octave-3.4.0/m4/alloca.m4 octave-3.4.1/m4/alloca.m4 *** octave-3.4.0/m4/alloca.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/alloca.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # alloca.m4 serial 10 dnl Copyright (C) 2002-2004, 2006-2007, 2009-2011 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation --- 1,4 ---- ! # alloca.m4 serial 11 dnl Copyright (C) 2002-2004, 2006-2007, 2009-2011 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation *************** *** 36,41 **** --- 36,42 ---- ALLOCA_H=alloca.h fi AC_SUBST([ALLOCA_H]) + AM_CONDITIONAL([GL_GENERATE_ALLOCA_H], [test -n "$ALLOCA_H"]) ]) # Prerequisites of lib/alloca.c. diff -cNr octave-3.4.0/m4/asm-underscore.m4 octave-3.4.1/m4/asm-underscore.m4 *** octave-3.4.0/m4/asm-underscore.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/asm-underscore.m4 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,48 **** - # asm-underscore.m4 serial 1 - dnl Copyright (C) 2010-2011 Free Software Foundation, Inc. - dnl This file is free software; the Free Software Foundation - dnl gives unlimited permission to copy and/or distribute it, - dnl with or without modifications, as long as this notice is preserved. - - dnl From Bruno Haible. Based on as-underscore.m4 in GNU clisp. - - # gl_ASM_SYMBOL_PREFIX - # Tests for the prefix of C symbols at the assembly language level and the - # linker level. This prefix is either an underscore or empty. Defines the - # C macro USER_LABEL_PREFIX to this prefix, and sets ASM_SYMBOL_PREFIX to - # a stringified variant of this prefix. - - AC_DEFUN([gl_ASM_SYMBOL_PREFIX], - [ - dnl We don't use GCC's __USER_LABEL_PREFIX__ here, because - dnl 1. It works only for GCC. - dnl 2. It is incorrectly defined on some platforms, in some GCC versions. - AC_CACHE_CHECK( - [whether C symbols are prefixed with underscore at the linker level], - [gl_cv_prog_as_underscore], - [cat > conftest.c </dev/null 2>&1 - if grep _foo conftest.s >/dev/null ; then - gl_cv_prog_as_underscore=yes - else - gl_cv_prog_as_underscore=no - fi - rm -f conftest* - ]) - if test $gl_cv_prog_as_underscore = yes; then - USER_LABEL_PREFIX=_ - else - USER_LABEL_PREFIX= - fi - AC_DEFINE_UNQUOTED([USER_LABEL_PREFIX], [$USER_LABEL_PREFIX], - [Define to the prefix of C symbols at the assembler and linker level, - either an underscore or empty.]) - ASM_SYMBOL_PREFIX='"'${USER_LABEL_PREFIX}'"' - AC_SUBST([ASM_SYMBOL_PREFIX]) - ]) --- 0 ---- diff -cNr octave-3.4.0/m4/canonicalize.m4 octave-3.4.1/m4/canonicalize.m4 *** octave-3.4.0/m4/canonicalize.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/canonicalize.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # canonicalize.m4 serial 17 dnl Copyright (C) 2003-2007, 2009-2011 Free Software Foundation, Inc. --- 1,4 ---- ! # canonicalize.m4 serial 21 dnl Copyright (C) 2003-2007, 2009-2011 Free Software Foundation, Inc. *************** *** 26,31 **** --- 26,32 ---- # Provides canonicalize_file_name and realpath. AC_DEFUN([gl_CANONICALIZE_LGPL], [ + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([gl_CANONICALIZE_LGPL_SEPARATE]) if test $ac_cv_func_canonicalize_file_name = no; then HAVE_CANONICALIZE_FILE_NAME=0 *************** *** 43,49 **** ]) # Like gl_CANONICALIZE_LGPL, except prepare for separate compilation ! # (no AC_LIBOBJ). AC_DEFUN([gl_CANONICALIZE_LGPL_SEPARATE], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) --- 44,50 ---- ]) # Like gl_CANONICALIZE_LGPL, except prepare for separate compilation ! # (no REPLACE_CANONICALIZE_FILE_NAME, no REPLACE_REALPATH, no AC_LIBOBJ). AC_DEFUN([gl_CANONICALIZE_LGPL_SEPARATE], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) *************** *** 61,69 **** --- 62,73 ---- AC_CHECK_FUNCS_ONCE([realpath]) AC_CACHE_CHECK([whether realpath works], [gl_cv_func_realpath_works], [ touch conftest.a + mkdir conftest.d AC_RUN_IFELSE([ AC_LANG_PROGRAM([[ + ]GL_NOCRASH[ #include + #include ]], [[ int result = 0; { *************** *** 81,90 **** --- 85,101 ---- if (name != NULL) result |= 4; } + { + char *name1 = realpath (".", NULL); + char *name2 = realpath ("conftest.d//./..", NULL); + if (strcmp (name1, name2) != 0) + result |= 8; + } return result; ]]) ], [gl_cv_func_realpath_works=yes], [gl_cv_func_realpath_works=no], [gl_cv_func_realpath_works="guessing no"]) + rm -rf conftest.a conftest.d ]) if test "$gl_cv_func_realpath_works" = yes; then AC_DEFINE([FUNC_REALPATH_WORKS], [1], [Define to 1 if realpath() diff -cNr octave-3.4.0/m4/dirent_h.m4 octave-3.4.1/m4/dirent_h.m4 *** octave-3.4.0/m4/dirent_h.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/dirent_h.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # dirent_h.m4 serial 13 dnl Copyright (C) 2008-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # dirent_h.m4 serial 14 dnl Copyright (C) 2008-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 21,33 **** ]], [alphasort dirfd fdopendir scandir]) ]) - dnl Unconditionally enables the replacement of . - AC_DEFUN([gl_REPLACE_DIRENT_H], - [ - dnl This is a no-op, because is always overridden. - : - ]) - AC_DEFUN([gl_DIRENT_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. --- 21,26 ---- diff -cNr octave-3.4.0/m4/dirfd.m4 octave-3.4.1/m4/dirfd.m4 *** octave-3.4.0/m4/dirfd.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/dirfd.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # serial 19 -*- Autoconf -*- dnl Find out how to get the file descriptor associated with an open DIR*. --- 1,4 ---- ! # serial 20 -*- Autoconf -*- dnl Find out how to get the file descriptor associated with an open DIR*. *************** *** 12,18 **** AC_DEFUN([gl_FUNC_DIRFD], [ AC_REQUIRE([gl_DIRENT_H_DEFAULTS]) - gl_REPLACE_DIRENT_H dnl Persuade glibc to declare dirfd(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) --- 12,17 ---- diff -cNr octave-3.4.0/m4/dirname.m4 octave-3.4.1/m4/dirname.m4 *** octave-3.4.0/m4/dirname.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/dirname.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! #serial 8 -*- autoconf -*- dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! #serial 9 -*- autoconf -*- dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 18,24 **** AC_LIBOBJ([stripslash]) dnl Prerequisites of lib/dirname.h. - AC_REQUIRE([gl_AC_DOS]) AC_REQUIRE([gl_DOUBLE_SLASH_ROOT]) dnl No prerequisites of lib/basename-lgpl.c, lib/dirname-lgpl.c, --- 18,23 ---- diff -cNr octave-3.4.0/m4/dos.m4 octave-3.4.1/m4/dos.m4 *** octave-3.4.0/m4/dos.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/dos.m4 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,71 **** - #serial 11 -*- autoconf -*- - - # Define some macros required for proper operation of code in lib/*.c - # on MSDOS/Windows systems. - - # Copyright (C) 2000-2001, 2004-2006, 2009-2011 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. - - # From Jim Meyering. - - AC_DEFUN([gl_AC_DOS], - [ - AC_CACHE_CHECK([whether system is Windows or MSDOS], [ac_cv_win_or_dos], - [ - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ - #if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __CYGWIN__ - neither MSDOS nor Windows - #endif]])], - [ac_cv_win_or_dos=yes], - [ac_cv_win_or_dos=no]) - ]) - - if test x"$ac_cv_win_or_dos" = xyes; then - ac_fs_accepts_drive_letter_prefix=1 - ac_fs_backslash_is_file_name_separator=1 - AC_CACHE_CHECK([whether drive letter can start relative path], - [ac_cv_drive_letter_can_be_relative], - [ - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ - #if defined __CYGWIN__ - drive letters are always absolute - #endif]])], - [ac_cv_drive_letter_can_be_relative=yes], - [ac_cv_drive_letter_can_be_relative=no]) - ]) - if test x"$ac_cv_drive_letter_can_be_relative" = xyes; then - ac_fs_drive_letter_can_be_relative=1 - else - ac_fs_drive_letter_can_be_relative=0 - fi - else - ac_fs_accepts_drive_letter_prefix=0 - ac_fs_backslash_is_file_name_separator=0 - ac_fs_drive_letter_can_be_relative=0 - fi - - AC_DEFINE_UNQUOTED([FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX], - $ac_fs_accepts_drive_letter_prefix, - [Define on systems for which file names may have a so-called - `drive letter' prefix, define this to compute the length of that - prefix, including the colon.]) - - AH_VERBATIM(ISSLASH, - [#if FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR - # define ISSLASH(C) ((C) == '/' || (C) == '\\') - #else - # define ISSLASH(C) ((C) == '/') - #endif]) - - AC_DEFINE_UNQUOTED([FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR], - $ac_fs_backslash_is_file_name_separator, - [Define if the backslash character may also serve as a file name - component separator.]) - - AC_DEFINE_UNQUOTED([FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE], - $ac_fs_drive_letter_can_be_relative, - [Define if a drive letter prefix denotes a relative path if it is - not followed by a file name component separator.]) - ]) --- 0 ---- diff -cNr octave-3.4.0/m4/dup2.m4 octave-3.4.1/m4/dup2.m4 *** octave-3.4.0/m4/dup2.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/dup2.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 8,18 **** [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) ! AC_CHECK_FUNCS_ONCE([dup2 fcntl]) ! if test $ac_cv_func_dup2 = no; then ! HAVE_DUP2=0 ! AC_LIBOBJ([dup2]) ! else AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works], [AC_RUN_IFELSE([ AC_LANG_PROGRAM([[#include --- 8,24 ---- [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) ! m4_ifdef([gl_FUNC_DUP2_OBSOLETE], [ ! AC_CHECK_FUNCS_ONCE([dup2]) ! if test $ac_cv_func_dup2 = no; then ! HAVE_DUP2=0 ! AC_LIBOBJ([dup2]) ! fi ! ], [ ! AC_DEFINE([HAVE_DUP2], [1], [Define to 1 if you have the 'dup2' function.]) ! ]) ! AC_CHECK_FUNCS_ONCE([fcntl]) ! if test $HAVE_DUP2 = 1; then AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works], [AC_RUN_IFELSE([ AC_LANG_PROGRAM([[#include *************** *** 63,68 **** --- 69,75 ---- AC_DEFUN([gl_REPLACE_DUP2], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + AC_CHECK_FUNCS_ONCE([dup2]) if test $ac_cv_func_dup2 = yes; then REPLACE_DUP2=1 fi diff -cNr octave-3.4.0/m4/errno_h.m4 octave-3.4.1/m4/errno_h.m4 *** octave-3.4.0/m4/errno_h.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/errno_h.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # errno_h.m4 serial 8 dnl Copyright (C) 2004, 2006, 2008-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # errno_h.m4 serial 9 dnl Copyright (C) 2004, 2006, 2008-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 54,59 **** --- 54,60 ---- ERRNO_H='errno.h' fi AC_SUBST([ERRNO_H]) + AM_CONDITIONAL([GL_GENERATE_ERRNO_H], [test -n "$ERRNO_H"]) gl_REPLACE_ERRNO_VALUE([EMULTIHOP]) gl_REPLACE_ERRNO_VALUE([ENOLINK]) gl_REPLACE_ERRNO_VALUE([EOVERFLOW]) diff -cNr octave-3.4.0/m4/fchdir.m4 octave-3.4.1/m4/fchdir.m4 *** octave-3.4.0/m4/fchdir.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/fchdir.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # fchdir.m4 serial 15 dnl Copyright (C) 2006-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # fchdir.m4 serial 16 dnl Copyright (C) 2006-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 33,39 **** gl_REPLACE_DUP2 dnl dup3 is already unconditionally replaced gl_REPLACE_FCNTL - gl_REPLACE_DIRENT_H AC_CACHE_CHECK([whether open can visit directories], [gl_cv_func_open_directory_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include --- 33,38 ---- diff -cNr octave-3.4.0/m4/fclose.m4 octave-3.4.1/m4/fclose.m4 *** octave-3.4.0/m4/fclose.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/fclose.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # fclose.m4 serial 2 dnl Copyright (C) 2008-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # fclose.m4 serial 4 dnl Copyright (C) 2008-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 6,11 **** --- 6,15 ---- AC_DEFUN([gl_FUNC_FCLOSE], [ + gl_FUNC_FFLUSH_STDIN + if test $gl_cv_func_fflush_stdin = no; then + gl_REPLACE_FCLOSE + fi ]) AC_DEFUN([gl_REPLACE_FCLOSE], diff -cNr octave-3.4.0/m4/fcntl_h.m4 octave-3.4.1/m4/fcntl_h.m4 *** octave-3.4.0/m4/fcntl_h.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/fcntl_h.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 31,43 **** AC_DEFUN([gl_FCNTL_H_DEFAULTS], [ ! GNULIB_FCNTL=0; AC_SUBST([GNULIB_FCNTL]) ! GNULIB_OPEN=0; AC_SUBST([GNULIB_OPEN]) ! GNULIB_OPENAT=0; AC_SUBST([GNULIB_OPENAT]) dnl Assume proper GNU behavior unless another module says otherwise. ! HAVE_FCNTL=1; AC_SUBST([HAVE_FCNTL]) ! HAVE_OPENAT=1; AC_SUBST([HAVE_OPENAT]) ! REPLACE_FCNTL=0; AC_SUBST([REPLACE_FCNTL]) ! REPLACE_OPEN=0; AC_SUBST([REPLACE_OPEN]) ! REPLACE_OPENAT=0; AC_SUBST([REPLACE_OPENAT]) ]) --- 31,44 ---- AC_DEFUN([gl_FCNTL_H_DEFAULTS], [ ! GNULIB_FCNTL=0; AC_SUBST([GNULIB_FCNTL]) ! GNULIB_NONBLOCKING=0; AC_SUBST([GNULIB_NONBLOCKING]) ! GNULIB_OPEN=0; AC_SUBST([GNULIB_OPEN]) ! GNULIB_OPENAT=0; AC_SUBST([GNULIB_OPENAT]) dnl Assume proper GNU behavior unless another module says otherwise. ! HAVE_FCNTL=1; AC_SUBST([HAVE_FCNTL]) ! HAVE_OPENAT=1; AC_SUBST([HAVE_OPENAT]) ! REPLACE_FCNTL=0; AC_SUBST([REPLACE_FCNTL]) ! REPLACE_OPEN=0; AC_SUBST([REPLACE_OPEN]) ! REPLACE_OPENAT=0; AC_SUBST([REPLACE_OPENAT]) ]) diff -cNr octave-3.4.0/m4/fdopendir.m4 octave-3.4.1/m4/fdopendir.m4 *** octave-3.4.0/m4/fdopendir.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/fdopendir.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # serial 5 # See if we need to provide fdopendir. dnl Copyright (C) 2009-2011 Free Software Foundation, Inc. --- 1,4 ---- ! # serial 6 # See if we need to provide fdopendir. dnl Copyright (C) 2009-2011 Free Software Foundation, Inc. *************** *** 19,25 **** if test $ac_cv_func_fdopendir = no; then AC_LIBOBJ([openat-proc]) AC_LIBOBJ([fdopendir]) - gl_REPLACE_DIRENT_H HAVE_FDOPENDIR=0 else AC_CACHE_CHECK([whether fdopendir works], --- 19,24 ---- *************** *** 42,48 **** [gl_cv_func_fdopendir_works="guessing no"])]) if test "$gl_cv_func_fdopendir_works" != yes; then REPLACE_FDOPENDIR=1 - gl_REPLACE_DIRENT_H AC_LIBOBJ([fdopendir]) fi fi --- 41,46 ---- diff -cNr octave-3.4.0/m4/fflush.m4 octave-3.4.1/m4/fflush.m4 *** octave-3.4.0/m4/fflush.m4 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/m4/fflush.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 0 **** --- 1,88 ---- + # fflush.m4 serial 11 + + # Copyright (C) 2007-2011 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. + + dnl From Eric Blake + + dnl Find out how to obey POSIX semantics of fflush(stdin) discarding + dnl unread input on seekable streams, rather than C99 undefined semantics. + + AC_DEFUN([gl_FUNC_FFLUSH], + [ + gl_FUNC_FFLUSH_STDIN + if test $gl_cv_func_fflush_stdin = no; then + gl_REPLACE_FFLUSH + fi + ]) + + dnl Determine whether fflush works on input streams. + dnl Sets gl_cv_func_fflush_stdin. + + AC_DEFUN([gl_FUNC_FFLUSH_STDIN], + [ + AC_CACHE_CHECK([whether fflush works on input streams], + [gl_cv_func_fflush_stdin], + [echo hello world > conftest.txt + AC_RUN_IFELSE([AC_LANG_PROGRAM( + [[ + #include + #include + ]], [[FILE *f = fopen ("conftest.txt", "r"); + char buffer[10]; + int fd; + int c; + if (f == NULL) + return 1; + fd = fileno (f); + if (fd < 0 || fread (buffer, 1, 5, f) != 5) + return 2; + /* For deterministic results, ensure f read a bigger buffer. */ + if (lseek (fd, 0, SEEK_CUR) == 5) + return 3; + /* POSIX requires fflush-fseek to set file offset of fd. This fails + on BSD systems and on mingw. */ + if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) + return 4; + if (lseek (fd, 0, SEEK_CUR) != 5) + return 5; + /* Verify behaviour of fflush after ungetc. See + */ + /* Verify behaviour of fflush after a backup ungetc. This fails on + mingw. */ + c = fgetc (f); + ungetc (c, f); + fflush (f); + if (fgetc (f) != c) + return 6; + /* Verify behaviour of fflush after a non-backup ungetc. This fails + on glibc 2.8 and on BSD systems. */ + c = fgetc (f); + ungetc ('@', f); + fflush (f); + if (fgetc (f) != c) + return 7; + return 0; + ]])], [gl_cv_func_fflush_stdin=yes], [gl_cv_func_fflush_stdin=no], + [dnl Pessimistically assume fflush is broken. + gl_cv_func_fflush_stdin=no]) + rm conftest.txt + ]) + ]) + + AC_DEFUN([gl_REPLACE_FFLUSH], + [ + AC_LIBOBJ([fflush]) + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + REPLACE_FFLUSH=1 + gl_PREREQ_FFLUSH + ]) + + # Prerequisites of lib/fflush.c. + AC_DEFUN([gl_PREREQ_FFLUSH], + [ + AC_REQUIRE([AC_C_INLINE]) + : + ]) diff -cNr octave-3.4.0/m4/filenamecat.m4 octave-3.4.1/m4/filenamecat.m4 *** octave-3.4.0/m4/filenamecat.m4 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/m4/filenamecat.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 0 **** --- 1,19 ---- + # filenamecat.m4 serial 10 + dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. + + AC_DEFUN([gl_FILE_NAME_CONCAT], + [ + AC_REQUIRE([gl_FILE_NAME_CONCAT_LGPL]) + AC_LIBOBJ([filenamecat]) + ]) + + AC_DEFUN([gl_FILE_NAME_CONCAT_LGPL], + [ + AC_LIBOBJ([filenamecat-lgpl]) + + dnl Prerequisites of lib/filenamecat-lgpl.c. + AC_CHECK_FUNCS_ONCE([mempcpy]) + ]) diff -cNr octave-3.4.0/m4/float_h.m4 octave-3.4.1/m4/float_h.m4 *** octave-3.4.0/m4/float_h.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/float_h.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # float_h.m4 serial 5 dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # float_h.m4 serial 6 dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 16,19 **** --- 16,20 ---- ;; esac AC_SUBST([FLOAT_H]) + AM_CONDITIONAL([GL_GENERATE_FLOAT_H], [test -n "$FLOAT_H"]) ]) diff -cNr octave-3.4.0/m4/fnmatch.m4 octave-3.4.1/m4/fnmatch.m4 *** octave-3.4.0/m4/fnmatch.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/fnmatch.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # Check for fnmatch - serial 5. # Copyright (C) 2000-2007, 2009-2011 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation --- 1,4 ---- ! # Check for fnmatch - serial 6. # Copyright (C) 2000-2007, 2009-2011 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation *************** *** 65,70 **** --- 65,72 ---- return 1; if (!y ("a*", "abc", 0)) return 1; + if (!y ("[/b", "[/b", 0)) /*"]]"*/ /* glibc Bugzilla bug 12378 */ + return 1; if (!n ("d*/*1", "d/s/1", FNM_PATHNAME)) return 2; if (!y ("a\\\\bc", "abc", 0)) *************** *** 139,144 **** --- 141,147 ---- AC_CHECK_HEADERS_ONCE([wctype.h]) fi AC_SUBST([FNMATCH_H]) + AM_CONDITIONAL([GL_GENERATE_FNMATCH_H], [test -n "$FNMATCH_H"]) ]) # Request a POSIX compliant fnmatch function with GNU extensions. diff -cNr octave-3.4.0/m4/fpurge.m4 octave-3.4.1/m4/fpurge.m4 *** octave-3.4.0/m4/fpurge.m4 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/m4/fpurge.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 0 **** --- 1,45 ---- + # fpurge.m4 serial 6 + dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. + + AC_DEFUN([gl_FUNC_FPURGE], + [ + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + AC_CHECK_FUNCS_ONCE([fpurge]) + AC_CHECK_FUNCS_ONCE([__fpurge]) + AC_CHECK_DECLS([fpurge], , , [[#include ]]) + if test "x$ac_cv_func_fpurge" = xyes; then + # Detect BSD bug. Only cygwin 1.7 is known to be immune. + AC_CACHE_CHECK([whether fpurge works], [gl_cv_func_fpurge_works], + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include + ]], [FILE *f = fopen ("conftest.txt", "w+"); + if (!f) return 1; + if (fputc ('a', f) != 'a') return 2; + rewind (f); + if (fgetc (f) != 'a') return 3; + if (fgetc (f) != EOF) return 4; + if (fpurge (f) != 0) return 5; + if (putc ('b', f) != 'b') return 6; + if (fclose (f) != 0) return 7; + if ((f = fopen ("conftest.txt", "r")) == NULL) return 8; + if (fgetc (f) != 'a') return 9; + if (fgetc (f) != 'b') return 10; + if (fgetc (f) != EOF) return 11; + if (fclose (f) != 0) return 12; + if (remove ("conftest.txt") != 0) return 13; + return 0;])], + [gl_cv_func_fpurge_works=yes], [gl_cv_func_fpurge_works=no], + [gl_cv_func_fpurge_works='guessing no'])]) + if test "x$gl_cv_func_fpurge_works" != xyes; then + REPLACE_FPURGE=1 + AC_LIBOBJ([fpurge]) + fi + else + AC_LIBOBJ([fpurge]) + fi + if test "x$ac_cv_have_decl_fpurge" = xno; then + HAVE_DECL_FPURGE=0 + fi + ]) diff -cNr octave-3.4.0/m4/freading.m4 octave-3.4.1/m4/freading.m4 *** octave-3.4.0/m4/freading.m4 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/m4/freading.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 0 **** --- 1,10 ---- + # freading.m4 serial 1 + dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. + + AC_DEFUN([gl_FUNC_FREADING], + [ + AC_CHECK_FUNCS_ONCE([__freading]) + ]) diff -cNr octave-3.4.0/m4/fseek.m4 octave-3.4.1/m4/fseek.m4 *** octave-3.4.0/m4/fseek.m4 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/m4/fseek.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 0 **** --- 1,15 ---- + # fseek.m4 serial 4 + dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. + + AC_DEFUN([gl_FUNC_FSEEK], + [ + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + AC_REQUIRE([gl_FUNC_FSEEKO]) + dnl When fseeko needs fixes, fseek needs them too. + if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then + REPLACE_FSEEK=1 + fi + ]) diff -cNr octave-3.4.0/m4/fseeko.m4 octave-3.4.1/m4/fseeko.m4 *** octave-3.4.0/m4/fseeko.m4 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/m4/fseeko.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 0 **** --- 1,61 ---- + # fseeko.m4 serial 15 + dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. + + AC_DEFUN([gl_FUNC_FSEEKO], + [ + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + AC_REQUIRE([gl_STDIN_LARGE_OFFSET]) + AC_REQUIRE([AC_PROG_CC]) + + dnl Persuade glibc to declare fseeko(). + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + AC_CACHE_CHECK([for fseeko], [gl_cv_func_fseeko], + [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include + ]], [fseeko (stdin, 0, 0);])], + [gl_cv_func_fseeko=yes], [gl_cv_func_fseeko=no]) + ]) + + AC_CHECK_DECLS_ONCE([fseeko]) + if test $ac_cv_have_decl_fseeko = no; then + HAVE_DECL_FSEEKO=0 + fi + + if test $gl_cv_func_fseeko = no; then + HAVE_FSEEKO=0 + else + if test $gl_cv_var_stdin_large_offset = no; then + REPLACE_FSEEKO=1 + fi + m4_ifdef([gl_FUNC_FFLUSH_STDIN], [ + gl_FUNC_FFLUSH_STDIN + if test $gl_cv_func_fflush_stdin = no; then + REPLACE_FSEEKO=1 + fi + ]) + fi + ]) + + dnl Code shared by fseeko and ftello. Determine if large files are supported, + dnl but stdin does not start as a large file by default. + AC_DEFUN([gl_STDIN_LARGE_OFFSET], + [ + AC_CACHE_CHECK([whether stdin defaults to large file offsets], + [gl_cv_var_stdin_large_offset], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[#if defined __SL64 && defined __SCLE /* cygwin */ + /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making + fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and + it is easier to do a version check than building a runtime test. */ + # include + # if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25) + choke me + # endif + #endif]])], + [gl_cv_var_stdin_large_offset=yes], + [gl_cv_var_stdin_large_offset=no])]) + ]) diff -cNr octave-3.4.0/m4/ftell.m4 octave-3.4.1/m4/ftell.m4 *** octave-3.4.0/m4/ftell.m4 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/m4/ftell.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 0 **** --- 1,15 ---- + # ftell.m4 serial 3 + dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. + + AC_DEFUN([gl_FUNC_FTELL], + [ + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + AC_REQUIRE([gl_FUNC_FTELLO]) + dnl When ftello needs fixes, ftell needs them too. + if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then + REPLACE_FTELL=1 + fi + ]) diff -cNr octave-3.4.0/m4/ftello.m4 octave-3.4.1/m4/ftello.m4 *** octave-3.4.0/m4/ftello.m4 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/m4/ftello.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 0 **** --- 1,127 ---- + # ftello.m4 serial 10 + dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. + + AC_DEFUN([gl_FUNC_FTELLO], + [ + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([gl_STDIN_LARGE_OFFSET]) + + dnl Persuade glibc to declare ftello(). + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + AC_CHECK_DECLS_ONCE([ftello]) + if test $ac_cv_have_decl_ftello = no; then + HAVE_DECL_FTELLO=0 + fi + + AC_CACHE_CHECK([for ftello], [gl_cv_func_ftello], + [ + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[ftello (stdin);]])], + [gl_cv_func_ftello=yes], + [gl_cv_func_ftello=no]) + ]) + if test $gl_cv_func_ftello = no; then + HAVE_FTELLO=0 + else + if test $gl_cv_var_stdin_large_offset = no; then + REPLACE_FTELLO=1 + else + dnl Detect bug on Solaris. + dnl ftell and ftello produce incorrect results after putc that followed a + dnl getc call that reached EOF on Solaris. This is because the _IOREAD + dnl flag does not get cleared in this case, even though _IOWRT gets set, + dnl and ftell and ftello look whether the _IOREAD flag is set. + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_CACHE_CHECK([whether ftello works], + [gl_cv_func_ftello_works], + [ + dnl Initial guess, used when cross-compiling or when /dev/tty cannot + dnl be opened. + changequote(,)dnl + case "$host_os" in + # Guess no on Solaris. + solaris*) gl_cv_func_ftello_works="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_ftello_works="guessing yes" ;; + esac + changequote([,])dnl + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ + #include + #include + #include + #define TESTFILE "conftest.tmp" + int + main (void) + { + FILE *fp; + + /* Create a file with some contents. */ + fp = fopen (TESTFILE, "w"); + if (fp == NULL) + return 70; + if (fwrite ("foogarsh", 1, 8, fp) < 8) + return 71; + if (fclose (fp)) + return 72; + + /* The file's contents is now "foogarsh". */ + + /* Try writing after reading to EOF. */ + fp = fopen (TESTFILE, "r+"); + if (fp == NULL) + return 73; + if (fseek (fp, -1, SEEK_END)) + return 74; + if (!(getc (fp) == 'h')) + return 1; + if (!(getc (fp) == EOF)) + return 2; + if (!(ftell (fp) == 8)) + return 3; + if (!(ftell (fp) == 8)) + return 4; + if (!(putc ('!', fp) == '!')) + return 5; + if (!(ftell (fp) == 9)) + return 6; + if (!(fclose (fp) == 0)) + return 7; + fp = fopen (TESTFILE, "r"); + if (fp == NULL) + return 75; + { + char buf[10]; + if (!(fread (buf, 1, 10, fp) == 9)) + return 10; + if (!(memcmp (buf, "foogarsh!", 9) == 0)) + return 11; + } + if (!(fclose (fp) == 0)) + return 12; + + /* The file's contents is now "foogarsh!". */ + + return 0; + }]])], + [gl_cv_func_ftello_works=yes], + [gl_cv_func_ftello_works=no], [:]) + ]) + case "$gl_cv_func_ftello_works" in + *yes) ;; + *) + REPLACE_FTELLO=1 + AC_DEFINE([FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE], [1], + [Define to 1 if the system's ftello function has the Solaris bug.]) + ;; + esac + fi + fi + ]) diff -cNr octave-3.4.0/m4/getcwd-abort-bug.m4 octave-3.4.1/m4/getcwd-abort-bug.m4 *** octave-3.4.0/m4/getcwd-abort-bug.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/getcwd-abort-bug.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # serial 2 # Determine whether getcwd aborts when the length of the working directory # name is unusually large. Any length between 4k and 16k trigger the bug # when using glibc-2.4.90-9 or older. --- 1,4 ---- ! # serial 4 # Determine whether getcwd aborts when the length of the working directory # name is unusually large. Any length between 4k and 16k trigger the bug # when using glibc-2.4.90-9 or older. *************** *** 21,26 **** --- 21,27 ---- rm -rf confdir-14B--- # Arrange for deletion of the temporary directory this test creates. ac_clean_files="$ac_clean_files confdir-14B---" + dnl Please keep this in sync with tests/test-getcwd.c. AC_RUN_IFELSE( [AC_LANG_SOURCE( [[ *************** *** 58,70 **** size_t d; /* The bug is triggered when PATH_MAX < getpagesize (), so skip ! this relative expensive and invasive test if that's not true. */ if (getpagesize () <= PATH_MAX) return 0; cwd = getcwd (NULL, 0); if (cwd == NULL) ! return 0; initial_cwd_len = strlen (cwd); free (cwd); --- 59,71 ---- size_t d; /* The bug is triggered when PATH_MAX < getpagesize (), so skip ! this relatively expensive and invasive test if that's not true. */ if (getpagesize () <= PATH_MAX) return 0; cwd = getcwd (NULL, 0); if (cwd == NULL) ! return 2; initial_cwd_len = strlen (cwd); free (cwd); *************** *** 91,105 **** while (0 < d--) { if (chdir ("..") < 0) ! break; rmdir (dir_name); } ! return 0; } ]])], [gl_cv_func_getcwd_abort_bug=no], ! [gl_cv_func_getcwd_abort_bug=yes], [gl_cv_func_getcwd_abort_bug=yes]) ]) AS_IF([test $gl_cv_func_getcwd_abort_bug = yes], [$1], [$2]) --- 92,113 ---- while (0 < d--) { if (chdir ("..") < 0) ! { ! fail = 5; ! break; ! } rmdir (dir_name); } ! return fail; } ]])], [gl_cv_func_getcwd_abort_bug=no], ! dnl A "regular" nonzero return does not indicate this bug. ! dnl An abort will provoke an exit code of something like 134 (128 + 6). ! [test $? -gt 128 \ ! && gl_cv_func_getcwd_abort_bug=yes \ ! || gl_cv_func_getcwd_abort_bug=no], [gl_cv_func_getcwd_abort_bug=yes]) ]) AS_IF([test $gl_cv_func_getcwd_abort_bug = yes], [$1], [$2]) diff -cNr octave-3.4.0/m4/getcwd.m4 octave-3.4.1/m4/getcwd.m4 *** octave-3.4.0/m4/getcwd.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/getcwd.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 6,15 **** # with or without modifications, as long as this notice is preserved. # Written by Paul Eggert. ! # serial 3 AC_DEFUN([gl_FUNC_GETCWD_NULL], [ AC_CACHE_CHECK([whether getcwd (NULL, 0) allocates memory for result], [gl_cv_func_getcwd_null], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ --- 6,16 ---- # with or without modifications, as long as this notice is preserved. # Written by Paul Eggert. ! # serial 6 AC_DEFUN([gl_FUNC_GETCWD_NULL], [ + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether getcwd (NULL, 0) allocates memory for result], [gl_cv_func_getcwd_null], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ *************** *** 19,25 **** # endif ]], [[ #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ ! /* mingw cwd does not start with '/', but getcwd does allocate. */ #else if (chdir ("/") != 0) return 1; --- 20,27 ---- # endif ]], [[ #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ ! /* mingw cwd does not start with '/', but getcwd does allocate. ! However, mingw fails to honor non-zero size. */ #else if (chdir ("/") != 0) return 1; *************** *** 35,40 **** --- 37,45 ---- return 0; } #endif + /* If size is non-zero, allocation must fail if size is too small */ + if (getcwd (NULL, 1)) + return 5; ]])], [gl_cv_func_getcwd_null=yes], [gl_cv_func_getcwd_null=no], *************** *** 44,57 **** *-gnu*) gl_cv_func_getcwd_null="guessing yes";; # Guess yes on Cygwin. cygwin*) gl_cv_func_getcwd_null="guessing yes";; - # Guess yes on mingw. - mingw*) gl_cv_func_getcwd_null="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_getcwd_null="guessing no";; esac ]])]) ]) AC_DEFUN([gl_FUNC_GETCWD], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) --- 49,85 ---- *-gnu*) gl_cv_func_getcwd_null="guessing yes";; # Guess yes on Cygwin. cygwin*) gl_cv_func_getcwd_null="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_getcwd_null="guessing no";; esac ]])]) ]) + + dnl Guarantee that getcwd will malloc with a NULL first argument. Assumes + dnl that either the system getcwd is robust, or that calling code is okay + dnl with spurious failures when run from a directory with an absolute name + dnl larger than 4k bytes. + dnl + dnl Assumes that getcwd exists; if you are worried about obsolete + dnl platforms that lacked getcwd(), then you need to use the GPL module. + AC_DEFUN([gl_FUNC_GETCWD_LGPL], + [ + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + AC_REQUIRE([gl_FUNC_GETCWD_NULL]) + + case $gl_cv_func_getcwd_null in + *yes) ;; + *) + dnl Minimal replacement + REPLACE_GETCWD=1 + AC_LIBOBJ([getcwd-lgpl]) + ;; + esac + ]) + + dnl Check for all known getcwd bugs; useful for a program likely to be + dnl executed from an arbitrary location. AC_DEFUN([gl_FUNC_GETCWD], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) *************** *** 70,82 **** case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_path_max,$gl_abort_bug in *yes,yes,no) ;; *) REPLACE_GETCWD=1 AC_LIBOBJ([getcwd]) gl_PREREQ_GETCWD;; esac ]) ! # Prerequisites of lib/getcwd.c. AC_DEFUN([gl_PREREQ_GETCWD], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) --- 98,111 ---- case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_path_max,$gl_abort_bug in *yes,yes,no) ;; *) + dnl Full replacement, overrides LGPL replacement. REPLACE_GETCWD=1 AC_LIBOBJ([getcwd]) gl_PREREQ_GETCWD;; esac ]) ! # Prerequisites of lib/getcwd.c, when full replacement is in effect. AC_DEFUN([gl_PREREQ_GETCWD], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) diff -cNr octave-3.4.0/m4/getcwd-path-max.m4 octave-3.4.1/m4/getcwd-path-max.m4 *** octave-3.4.0/m4/getcwd-path-max.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/getcwd-path-max.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,10 **** ! # serial 15 # Check for several getcwd bugs with long file names. # If so, arrange to compile the wrapper function. # This is necessary for at least GNU libc on linux-2.4.19 and 2.4.20. # I've heard that this is due to a Linux kernel bug, and that it has ! # been fixed between 2.4.21-pre3 and 2.4.21-pre4. */ # Copyright (C) 2003-2007, 2009-2011 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation --- 1,10 ---- ! # serial 16 # Check for several getcwd bugs with long file names. # If so, arrange to compile the wrapper function. # This is necessary for at least GNU libc on linux-2.4.19 and 2.4.20. # I've heard that this is due to a Linux kernel bug, and that it has ! # been fixed between 2.4.21-pre3 and 2.4.21-pre4. # Copyright (C) 2003-2007, 2009-2011 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation *************** *** 21,26 **** --- 21,27 ---- gl_cv_func_getcwd_path_max, [# Arrange for deletion of the temporary directory this test creates. ac_clean_files="$ac_clean_files confdir3" + dnl Please keep this in sync with tests/test-getcwd.c. AC_RUN_IFELSE( [AC_LANG_SOURCE( [[ diff -cNr octave-3.4.0/m4/gethostname.m4 octave-3.4.1/m4/gethostname.m4 *** octave-3.4.0/m4/gethostname.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/gethostname.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # gethostname.m4 serial 10 dnl Copyright (C) 2002, 2008-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # gethostname.m4 serial 11 dnl Copyright (C) 2002, 2008-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 14,20 **** dnl Where is gethostname() defined? dnl - On native Windows, it is in ws2_32.dll. ! dnl - Otherwise is is in libc. GETHOSTNAME_LIB= AC_CHECK_FUNCS([gethostname], , [ AC_CACHE_CHECK([for gethostname in winsock2.h and -lws2_32], --- 14,20 ---- dnl Where is gethostname() defined? dnl - On native Windows, it is in ws2_32.dll. ! dnl - Otherwise it is in libc. GETHOSTNAME_LIB= AC_CHECK_FUNCS([gethostname], , [ AC_CACHE_CHECK([for gethostname in winsock2.h and -lws2_32], diff -cNr octave-3.4.0/m4/glob.m4 octave-3.4.1/m4/glob.m4 *** octave-3.4.0/m4/glob.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/glob.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # glob.m4 serial 11 dnl Copyright (C) 2005-2007, 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # glob.m4 serial 13 dnl Copyright (C) 2005-2007, 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 8,22 **** # rather than vanilla POSIX glob. This means your code should # always include for the glob prototypes. - AC_DEFUN([gl_GLOB_SUBSTITUTE], - [ - gl_PREREQ_GLOB - - GLOB_H=glob.h - AC_LIBOBJ([glob]) - AC_SUBST([GLOB_H]) - ]) - AC_DEFUN([gl_GLOB], [ GLOB_H= AC_CHECK_HEADERS([glob.h], [], [GLOB_H=glob.h]) --- 8,13 ---- *************** *** 65,72 **** rm -f conf$$-globtest if test -n "$GLOB_H"; then ! gl_GLOB_SUBSTITUTE fi ]) # Prerequisites of lib/glob.*. --- 56,66 ---- rm -f conf$$-globtest if test -n "$GLOB_H"; then ! AC_LIBOBJ([glob]) ! gl_PREREQ_GLOB fi + AC_SUBST([GLOB_H]) + AM_CONDITIONAL([GL_GENERATE_GLOB_H], [test -n "$GLOB_H"]) ]) # Prerequisites of lib/glob.*. diff -cNr octave-3.4.0/m4/gnulib-cache.m4 octave-3.4.1/m4/gnulib-cache.m4 *** octave-3.4.0/m4/gnulib-cache.m4 2011-02-08 05:03:20.000000000 -0500 --- octave-3.4.1/m4/gnulib-cache.m4 2011-06-15 11:31:09.000000000 -0400 *************** *** 17,23 **** # Specification in the form of a command-line invocation: ! # gnulib-tool --import --dir=. --local-dir=gl --lib=libgnu --source-base=libgnu --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --libtool --macro-prefix=gl c-strcase copysign crypto/md5 fcntl filemode fnmatch getcwd gethostname getopt-gnu gettimeofday glob link lstat mkdir mkfifo mkstemp mktime nanosleep pathmax progname readlink rename rmdir round roundf sigaction signal sigprocmask sleep stat stdint strftime strptime symlink sys_stat sys_time sys_times time times trunc truncf unistd unlink vsnprintf # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([gl]) --- 17,23 ---- # Specification in the form of a command-line invocation: ! # gnulib-tool --import --dir=. --local-dir=gl --lib=libgnu --source-base=libgnu --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --libtool --macro-prefix=gl c-strcase copysign crypto/md5 fcntl filemode fnmatch getcwd gethostname getopt-gnu gettimeofday glob link lstat mkdir mkfifo mkstemp mktime nanosleep nproc pathmax progname readlink rename rmdir round roundf sigaction signal sigprocmask sleep stat stdint strftime strptime symlink sys_stat sys_time sys_times time times trunc truncf unistd unlink vsnprintf # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([gl]) *************** *** 40,45 **** --- 40,46 ---- mkstemp mktime nanosleep + nproc pathmax progname readlink *************** *** 78,80 **** --- 79,82 ---- gl_LIBTOOL gl_MACRO_PREFIX([gl]) gl_PO_DOMAIN([]) + gl_WITNESS_C_DOMAIN([]) diff -cNr octave-3.4.0/m4/gnulib-common.m4 octave-3.4.1/m4/gnulib-common.m4 *** octave-3.4.0/m4/gnulib-common.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/gnulib-common.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # gnulib-common.m4 serial 23 dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # gnulib-common.m4 serial 26 dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 34,39 **** --- 34,53 ---- /* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name is a misnomer outside of parameter lists. */ #define _UNUSED_PARAMETER_ _GL_UNUSED + + /* The __pure__ attribute was added in gcc 2.96. */ + #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) + #else + # define _GL_ATTRIBUTE_PURE /* empty */ + #endif + + /* The __const__ attribute was added in gcc 2.95. */ + #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) + # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) + #else + # define _GL_ATTRIBUTE_CONST /* empty */ + #endif ]) dnl Preparation for running test programs: dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not *************** *** 47,62 **** # expands to a C preprocessor expression that evaluates to 1 or 0, depending # whether a gnulib module that has been requested shall be considered present # or not. ! AC_DEFUN([gl_MODULE_INDICATOR_CONDITION], [1]) # gl_MODULE_INDICATOR_SET_VARIABLE([modulename]) # sets the shell variable that indicates the presence of the given module to # a C preprocessor expression that will evaluate to 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE], [ ! GNULIB_[]m4_translit([[$1]], ! [abcdefghijklmnopqrstuvwxyz./-], ! [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=gl_MODULE_INDICATOR_CONDITION ]) # gl_MODULE_INDICATOR([modulename]) --- 61,109 ---- # expands to a C preprocessor expression that evaluates to 1 or 0, depending # whether a gnulib module that has been requested shall be considered present # or not. ! m4_define([gl_MODULE_INDICATOR_CONDITION], [1]) # gl_MODULE_INDICATOR_SET_VARIABLE([modulename]) # sets the shell variable that indicates the presence of the given module to # a C preprocessor expression that will evaluate to 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE], [ ! gl_MODULE_INDICATOR_SET_VARIABLE_AUX( ! [GNULIB_[]m4_translit([[$1]], ! [abcdefghijklmnopqrstuvwxyz./-], ! [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], ! [gl_MODULE_INDICATOR_CONDITION]) ! ]) ! ! # gl_MODULE_INDICATOR_SET_VARIABLE_AUX([variable]) ! # modifies the shell variable to include the gl_MODULE_INDICATOR_CONDITION. ! # The shell variable's value is a C preprocessor expression that evaluates ! # to 0 or 1. ! AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX], ! [ ! m4_if(m4_defn([gl_MODULE_INDICATOR_CONDITION]), [1], ! [ ! dnl Simplify the expression VALUE || 1 to 1. ! $1=1 ! ], ! [gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([$1], ! [gl_MODULE_INDICATOR_CONDITION])]) ! ]) ! ! # gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([variable], [condition]) ! # modifies the shell variable to include the given condition. The shell ! # variable's value is a C preprocessor expression that evaluates to 0 or 1. ! AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR], ! [ ! dnl Simplify the expression 1 || CONDITION to 1. ! if test "$[]$1" != 1; then ! dnl Simplify the expression 0 || CONDITION to CONDITION. ! if test "$[]$1" = 0; then ! $1=$2 ! else ! $1="($[]$1 || $2)" ! fi ! fi ]) # gl_MODULE_INDICATOR([modulename]) *************** *** 109,115 **** AC_DEFUN([gl_ASSERT_NO_GNULIB_POSIXCHECK], [ dnl Override gl_WARN_ON_USE_PREPARE. ! AC_DEFUN([gl_WARN_ON_USE_PREPARE], []) ]) # gl_ASSERT_NO_GNULIB_TESTS --- 156,163 ---- AC_DEFUN([gl_ASSERT_NO_GNULIB_POSIXCHECK], [ dnl Override gl_WARN_ON_USE_PREPARE. ! dnl But hide this definition from 'aclocal'. ! AC_DEFUN([gl_W][ARN_ON_USE_PREPARE], []) ]) # gl_ASSERT_NO_GNULIB_TESTS diff -cNr octave-3.4.0/m4/gnulib-comp.m4 octave-3.4.1/m4/gnulib-comp.m4 *** octave-3.4.0/m4/gnulib-comp.m4 2011-02-08 05:03:20.000000000 -0500 --- octave-3.4.1/m4/gnulib-comp.m4 2011-06-15 11:31:09.000000000 -0400 *************** *** 40,46 **** # Code from module chown: # Code from module cloexec: # Code from module close: - # Code from module close-hook: # Code from module configmake: # Code from module copysign: # Code from module crypto/md5: --- 40,45 ---- *************** *** 49,54 **** --- 48,54 ---- # Code from module dirent: # Code from module dirfd: # Code from module dirname-lgpl: + # Code from module dosname: # Code from module double-slash-root: # Code from module dup2: # Code from module errno: *************** *** 60,71 **** --- 60,84 ---- # Code from module fclose: # Code from module fcntl: # Code from module fcntl-h: + # Code from module fd-hook: # Code from module fdopendir: + # Code from module fflush: + AC_REQUIRE([AC_FUNC_FSEEKO]) # Code from module filemode: + # Code from module filenamecat-lgpl: # Code from module float: # Code from module floor: # Code from module fnmatch: + # Code from module fpurge: + # Code from module freading: + # Code from module fseek: + # Code from module fseeko: + AC_REQUIRE([AC_FUNC_FSEEKO]) + # Code from module ftell: + # Code from module ftello: + AC_REQUIRE([AC_FUNC_FSEEKO]) # Code from module getcwd: + # Code from module getcwd-lgpl: # Code from module getdtablesize: # Code from module gethostname: # Code from module getlogin_r: *************** *** 79,84 **** --- 92,98 ---- # Code from module lchown: # Code from module link: # Code from module localcharset: + # Code from module lseek: # Code from module lstat: # Code from module malloc-posix: # Code from module malloca: *************** *** 95,100 **** --- 109,116 ---- # Code from module mktime: # Code from module multiarch: # Code from module nanosleep: + # Code from module nocrash: + # Code from module nproc: # Code from module open: # Code from module openat: # Code from module openat-die: *************** *** 123,135 **** # Code from module stdint: # Code from module stdio: # Code from module stdlib: - # Code from module strcase: # Code from module strdup-posix: # Code from module streq: # Code from module strerror: # Code from module strftime: # Code from module string: - # Code from module strings: # Code from module strnlen1: # Code from module strptime: # Code from module symlink: --- 139,150 ---- # Code from module stdint: # Code from module stdio: # Code from module stdlib: # Code from module strdup-posix: # Code from module streq: # Code from module strerror: + # Code from module strerror-override: # Code from module strftime: # Code from module string: # Code from module strnlen1: # Code from module strptime: # Code from module symlink: *************** *** 138,143 **** --- 153,159 ---- # Code from module sys_stat: # Code from module sys_time: # Code from module sys_times: + # Code from module sys_uio: # Code from module tempname: # Code from module time: # Code from module time_r: *************** *** 170,480 **** m4_pushdef([gl_LIBSOURCES_DIR], []) gl_COMMON gl_source_base='libgnu' - # Code from module alignof: - # Code from module alloca: changequote(,)dnl LTALLOCA=`echo "$ALLOCA" | sed -e 's/\.[^.]* /.lo /g;s/\.[^.]*$/.lo/'` changequote([, ])dnl AC_SUBST([LTALLOCA]) ! # Code from module alloca-opt: ! gl_FUNC_ALLOCA ! # Code from module arg-nonnull: ! # Code from module c++defs: ! # Code from module c-ctype: ! # Code from module c-strcase: ! # Code from module canonicalize-lgpl: ! gl_CANONICALIZE_LGPL ! gl_MODULE_INDICATOR([canonicalize-lgpl]) ! gl_STDLIB_MODULE_INDICATOR([canonicalize_file_name]) ! gl_STDLIB_MODULE_INDICATOR([realpath]) ! # Code from module chdir-long: ! gl_FUNC_CHDIR_LONG ! # Code from module chown: ! gl_FUNC_CHOWN ! gl_UNISTD_MODULE_INDICATOR([chown]) ! # Code from module cloexec: ! gl_CLOEXEC ! gl_MODULE_INDICATOR_FOR_TESTS([cloexec]) ! # Code from module close: ! gl_FUNC_CLOSE ! gl_UNISTD_MODULE_INDICATOR([close]) ! # Code from module close-hook: ! # Code from module configmake: ! gl_CONFIGMAKE_PREP ! # Code from module copysign: ! gl_MATHFUNC([copysign], [double], [(double, double)]) ! # Code from module crypto/md5: ! gl_MD5 ! # Code from module d-ino: ! gl_CHECK_TYPE_STRUCT_DIRENT_D_INO ! # Code from module d-type: ! gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE ! # Code from module dirent: ! gl_DIRENT_H ! # Code from module dirfd: ! gl_FUNC_DIRFD ! gl_DIRENT_MODULE_INDICATOR([dirfd]) ! # Code from module dirname-lgpl: ! gl_DIRNAME_LGPL ! # Code from module double-slash-root: ! gl_DOUBLE_SLASH_ROOT ! # Code from module dup2: ! gl_FUNC_DUP2 ! gl_UNISTD_MODULE_INDICATOR([dup2]) ! # Code from module errno: ! gl_HEADER_ERRNO_H ! # Code from module error: ! gl_ERROR ! m4_ifdef([AM_XGETTEXT_OPTION], ! [AM_][XGETTEXT_OPTION([--flag=error:3:c-format]) ! AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])]) ! # Code from module exitfail: ! # Code from module extensions: ! # Code from module fchdir: ! gl_FUNC_FCHDIR ! gl_UNISTD_MODULE_INDICATOR([fchdir]) ! # Code from module fclose: ! gl_FUNC_FCLOSE ! gl_STDIO_MODULE_INDICATOR([fclose]) ! # Code from module fcntl: ! gl_FUNC_FCNTL ! gl_FCNTL_MODULE_INDICATOR([fcntl]) ! # Code from module fcntl-h: ! gl_FCNTL_H ! # Code from module fdopendir: ! gl_FUNC_FDOPENDIR ! gl_DIRENT_MODULE_INDICATOR([fdopendir]) ! gl_MODULE_INDICATOR([fdopendir]) ! # Code from module filemode: ! gl_FILEMODE ! # Code from module float: ! gl_FLOAT_H ! # Code from module floor: ! gl_FUNC_FLOOR ! gl_MATH_MODULE_INDICATOR([floor]) ! # Code from module fnmatch: ! gl_FUNC_FNMATCH_POSIX ! # Code from module getcwd: ! gl_FUNC_GETCWD ! gl_UNISTD_MODULE_INDICATOR([getcwd]) ! # Code from module getdtablesize: ! gl_FUNC_GETDTABLESIZE ! gl_UNISTD_MODULE_INDICATOR([getdtablesize]) ! # Code from module gethostname: ! gl_FUNC_GETHOSTNAME ! gl_UNISTD_MODULE_INDICATOR([gethostname]) ! # Code from module getlogin_r: ! gl_FUNC_GETLOGIN_R ! gl_UNISTD_MODULE_INDICATOR([getlogin_r]) ! # Code from module getopt-gnu: ! gl_FUNC_GETOPT_GNU ! gl_MODULE_INDICATOR_FOR_TESTS([getopt-gnu]) ! # Code from module getopt-posix: ! gl_FUNC_GETOPT_POSIX ! # Code from module gettext-h: ! AC_SUBST([LIBINTL]) ! AC_SUBST([LTLIBINTL]) ! # Code from module gettimeofday: ! gl_FUNC_GETTIMEOFDAY ! gl_SYS_TIME_MODULE_INDICATOR([gettimeofday]) ! # Code from module glob: ! gl_GLOB ! # Code from module include_next: ! # Code from module intprops: ! # Code from module lchown: ! gl_FUNC_LCHOWN ! gl_UNISTD_MODULE_INDICATOR([lchown]) ! # Code from module link: ! gl_FUNC_LINK ! gl_UNISTD_MODULE_INDICATOR([link]) ! # Code from module localcharset: ! gl_LOCALCHARSET ! LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(top_builddir)/$gl_source_base\"" ! AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT]) ! # Code from module lstat: ! gl_FUNC_LSTAT ! gl_SYS_STAT_MODULE_INDICATOR([lstat]) ! # Code from module malloc-posix: ! gl_FUNC_MALLOC_POSIX ! gl_STDLIB_MODULE_INDICATOR([malloc-posix]) ! # Code from module malloca: ! gl_MALLOCA ! # Code from module math: ! gl_MATH_H ! # Code from module mbrtowc: ! gl_FUNC_MBRTOWC ! gl_WCHAR_MODULE_INDICATOR([mbrtowc]) ! # Code from module mbsinit: ! gl_FUNC_MBSINIT ! gl_WCHAR_MODULE_INDICATOR([mbsinit]) ! # Code from module mbsrtowcs: ! gl_FUNC_MBSRTOWCS ! gl_WCHAR_MODULE_INDICATOR([mbsrtowcs]) ! # Code from module memchr: ! gl_FUNC_MEMCHR ! gl_STRING_MODULE_INDICATOR([memchr]) ! # Code from module mempcpy: ! gl_FUNC_MEMPCPY ! gl_STRING_MODULE_INDICATOR([mempcpy]) ! # Code from module memrchr: ! gl_FUNC_MEMRCHR ! gl_STRING_MODULE_INDICATOR([memrchr]) ! # Code from module mkdir: ! gl_FUNC_MKDIR ! # Code from module mkfifo: ! gl_FUNC_MKFIFO ! gl_UNISTD_MODULE_INDICATOR([mkfifo]) ! # Code from module mkstemp: ! gl_FUNC_MKSTEMP ! gl_STDLIB_MODULE_INDICATOR([mkstemp]) ! # Code from module mktime: ! gl_FUNC_MKTIME ! gl_TIME_MODULE_INDICATOR([mktime]) ! # Code from module multiarch: ! gl_MULTIARCH ! # Code from module nanosleep: ! gl_FUNC_NANOSLEEP ! gl_TIME_MODULE_INDICATOR([nanosleep]) ! # Code from module open: ! gl_FUNC_OPEN ! gl_FCNTL_MODULE_INDICATOR([open]) ! # Code from module openat: ! gl_FUNC_OPENAT ! # Code from module openat-die: ! # Code from module pathmax: ! gl_PATHMAX ! # Code from module progname: ! AC_CHECK_DECLS([program_invocation_name], [], [], [#include ]) ! AC_CHECK_DECLS([program_invocation_short_name], [], [], [#include ]) ! # Code from module readlink: ! gl_FUNC_READLINK ! gl_UNISTD_MODULE_INDICATOR([readlink]) ! # Code from module realloc-posix: ! gl_FUNC_REALLOC_POSIX ! gl_STDLIB_MODULE_INDICATOR([realloc-posix]) ! # Code from module rename: ! gl_FUNC_RENAME ! gl_STDIO_MODULE_INDICATOR([rename]) ! # Code from module rmdir: ! gl_FUNC_RMDIR ! gl_UNISTD_MODULE_INDICATOR([rmdir]) ! # Code from module round: ! gl_FUNC_ROUND ! gl_MATH_MODULE_INDICATOR([round]) ! # Code from module roundf: ! gl_FUNC_ROUNDF ! gl_MATH_MODULE_INDICATOR([roundf]) ! # Code from module same-inode: ! # Code from module save-cwd: ! gl_SAVE_CWD ! # Code from module select: ! gl_FUNC_SELECT ! gl_SYS_SELECT_MODULE_INDICATOR([select]) ! # Code from module sigaction: ! gl_SIGACTION ! gl_SIGNAL_MODULE_INDICATOR([sigaction]) ! # Code from module signal: ! gl_SIGNAL_H ! # Code from module sigprocmask: ! gl_SIGNALBLOCKING ! gl_SIGNAL_MODULE_INDICATOR([sigprocmask]) ! # Code from module size_max: ! gl_SIZE_MAX ! # Code from module sleep: ! gl_FUNC_SLEEP ! gl_UNISTD_MODULE_INDICATOR([sleep]) ! # Code from module socketlib: ! gl_SOCKETLIB ! # Code from module sockets: ! gl_SOCKETS ! # Code from module socklen: ! gl_TYPE_SOCKLEN_T ! # Code from module stat: ! gl_FUNC_STAT ! gl_SYS_STAT_MODULE_INDICATOR([stat]) ! # Code from module stdbool: ! AM_STDBOOL_H ! # Code from module stddef: ! gl_STDDEF_H ! # Code from module stdint: ! gl_STDINT_H ! # Code from module stdio: ! gl_STDIO_H ! # Code from module stdlib: ! gl_STDLIB_H ! # Code from module strcase: ! gl_STRCASE ! # Code from module strdup-posix: ! gl_FUNC_STRDUP_POSIX ! gl_STRING_MODULE_INDICATOR([strdup]) ! # Code from module streq: ! # Code from module strerror: ! gl_FUNC_STRERROR ! gl_STRING_MODULE_INDICATOR([strerror]) ! # Code from module strftime: ! gl_FUNC_GNU_STRFTIME ! # Code from module string: ! gl_HEADER_STRING_H ! # Code from module strings: ! gl_HEADER_STRINGS_H ! # Code from module strnlen1: ! # Code from module strptime: ! gl_FUNC_STRPTIME ! gl_TIME_MODULE_INDICATOR([strptime]) ! # Code from module symlink: ! gl_FUNC_SYMLINK ! gl_UNISTD_MODULE_INDICATOR([symlink]) ! # Code from module sys_select: ! gl_HEADER_SYS_SELECT ! AC_PROG_MKDIR_P ! # Code from module sys_socket: ! gl_HEADER_SYS_SOCKET ! AC_PROG_MKDIR_P ! # Code from module sys_stat: ! gl_HEADER_SYS_STAT_H ! AC_PROG_MKDIR_P ! # Code from module sys_time: ! gl_HEADER_SYS_TIME_H ! AC_PROG_MKDIR_P ! # Code from module sys_times: ! gl_SYS_TIMES_H ! AC_PROG_MKDIR_P ! # Code from module tempname: ! gl_FUNC_GEN_TEMPNAME ! # Code from module time: ! gl_HEADER_TIME_H ! # Code from module time_r: ! gl_TIME_R ! gl_TIME_MODULE_INDICATOR([time_r]) ! # Code from module times: ! gl_FUNC_TIMES ! gl_SYS_TIMES_MODULE_INDICATOR([times]) ! # Code from module trunc: ! gl_FUNC_TRUNC ! gl_MATH_MODULE_INDICATOR([trunc]) ! # Code from module truncf: ! gl_FUNC_TRUNCF ! gl_MATH_MODULE_INDICATOR([truncf]) ! # Code from module unistd: ! gl_UNISTD_H ! # Code from module unistd-safer: ! gl_UNISTD_SAFER ! # Code from module unlink: ! gl_FUNC_UNLINK ! gl_UNISTD_MODULE_INDICATOR([unlink]) ! # Code from module vasnprintf: ! gl_FUNC_VASNPRINTF ! # Code from module verify: ! # Code from module vsnprintf: ! gl_FUNC_VSNPRINTF ! gl_STDIO_MODULE_INDICATOR([vsnprintf]) ! # Code from module warn-on-use: ! # Code from module wchar: ! gl_WCHAR_H ! # Code from module wctype-h: ! gl_WCTYPE_H ! # Code from module xsize: ! gl_XSIZE # End of code from modules m4_ifval(gl_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ || --- 186,413 ---- m4_pushdef([gl_LIBSOURCES_DIR], []) gl_COMMON gl_source_base='libgnu' changequote(,)dnl LTALLOCA=`echo "$ALLOCA" | sed -e 's/\.[^.]* /.lo /g;s/\.[^.]*$/.lo/'` changequote([, ])dnl AC_SUBST([LTALLOCA]) ! gl_FUNC_ALLOCA ! gl_CANONICALIZE_LGPL ! gl_MODULE_INDICATOR([canonicalize-lgpl]) ! gl_STDLIB_MODULE_INDICATOR([canonicalize_file_name]) ! gl_STDLIB_MODULE_INDICATOR([realpath]) ! gl_FUNC_CHDIR_LONG ! gl_FUNC_CHOWN ! gl_UNISTD_MODULE_INDICATOR([chown]) ! gl_CLOEXEC ! gl_MODULE_INDICATOR_FOR_TESTS([cloexec]) ! gl_FUNC_CLOSE ! gl_UNISTD_MODULE_INDICATOR([close]) ! gl_CONFIGMAKE_PREP ! gl_MATHFUNC([copysign], [double], [(double, double)]) ! gl_MD5 ! gl_CHECK_TYPE_STRUCT_DIRENT_D_INO ! gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE ! gl_DIRENT_H ! gl_FUNC_DIRFD ! gl_DIRENT_MODULE_INDICATOR([dirfd]) ! gl_DIRNAME_LGPL ! gl_DOUBLE_SLASH_ROOT ! gl_FUNC_DUP2 ! gl_UNISTD_MODULE_INDICATOR([dup2]) ! gl_HEADER_ERRNO_H ! gl_ERROR ! m4_ifdef([AM_XGETTEXT_OPTION], ! [AM_][XGETTEXT_OPTION([--flag=error:3:c-format]) ! AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])]) ! gl_FUNC_FCHDIR ! gl_UNISTD_MODULE_INDICATOR([fchdir]) ! gl_FUNC_FCLOSE ! gl_STDIO_MODULE_INDICATOR([fclose]) ! gl_FUNC_FCNTL ! gl_FCNTL_MODULE_INDICATOR([fcntl]) ! gl_FCNTL_H ! gl_FUNC_FDOPENDIR ! gl_DIRENT_MODULE_INDICATOR([fdopendir]) ! gl_MODULE_INDICATOR([fdopendir]) ! gl_FUNC_FFLUSH ! gl_MODULE_INDICATOR([fflush]) ! gl_STDIO_MODULE_INDICATOR([fflush]) ! gl_FILEMODE ! gl_FILE_NAME_CONCAT_LGPL ! gl_FLOAT_H ! gl_FUNC_FLOOR ! gl_MATH_MODULE_INDICATOR([floor]) ! gl_FUNC_FNMATCH_POSIX ! gl_FUNC_FPURGE ! gl_STDIO_MODULE_INDICATOR([fpurge]) ! gl_FUNC_FREADING ! gl_FUNC_FSEEK ! if test $REPLACE_FSEEK = 1; then ! AC_LIBOBJ([fseek]) ! fi ! gl_STDIO_MODULE_INDICATOR([fseek]) ! gl_FUNC_FSEEKO ! if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then ! AC_LIBOBJ([fseeko]) ! fi ! gl_STDIO_MODULE_INDICATOR([fseeko]) ! gl_FUNC_FTELL ! if test $REPLACE_FTELL = 1; then ! AC_LIBOBJ([ftell]) ! fi ! gl_STDIO_MODULE_INDICATOR([ftell]) ! gl_FUNC_FTELLO ! if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then ! AC_LIBOBJ([ftello]) ! fi ! gl_STDIO_MODULE_INDICATOR([ftello]) ! gl_FUNC_GETCWD ! gl_MODULE_INDICATOR([getcwd]) ! gl_UNISTD_MODULE_INDICATOR([getcwd]) ! gl_FUNC_GETCWD_LGPL ! gl_UNISTD_MODULE_INDICATOR([getcwd]) ! gl_FUNC_GETDTABLESIZE ! gl_UNISTD_MODULE_INDICATOR([getdtablesize]) ! gl_FUNC_GETHOSTNAME ! gl_UNISTD_MODULE_INDICATOR([gethostname]) ! gl_FUNC_GETLOGIN_R ! gl_UNISTD_MODULE_INDICATOR([getlogin_r]) ! gl_FUNC_GETOPT_GNU ! gl_MODULE_INDICATOR_FOR_TESTS([getopt-gnu]) ! gl_FUNC_GETOPT_POSIX ! AC_SUBST([LIBINTL]) ! AC_SUBST([LTLIBINTL]) ! gl_FUNC_GETTIMEOFDAY ! gl_SYS_TIME_MODULE_INDICATOR([gettimeofday]) ! gl_GLOB ! gl_FUNC_LCHOWN ! gl_UNISTD_MODULE_INDICATOR([lchown]) ! gl_FUNC_LINK ! gl_UNISTD_MODULE_INDICATOR([link]) ! gl_LOCALCHARSET ! LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(top_builddir)/$gl_source_base\"" ! AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT]) ! gl_FUNC_LSEEK ! gl_UNISTD_MODULE_INDICATOR([lseek]) ! gl_FUNC_LSTAT ! gl_SYS_STAT_MODULE_INDICATOR([lstat]) ! gl_FUNC_MALLOC_POSIX ! gl_STDLIB_MODULE_INDICATOR([malloc-posix]) ! gl_MALLOCA ! gl_MATH_H ! gl_FUNC_MBRTOWC ! gl_WCHAR_MODULE_INDICATOR([mbrtowc]) ! gl_FUNC_MBSINIT ! gl_WCHAR_MODULE_INDICATOR([mbsinit]) ! gl_FUNC_MBSRTOWCS ! gl_WCHAR_MODULE_INDICATOR([mbsrtowcs]) ! gl_FUNC_MEMCHR ! gl_STRING_MODULE_INDICATOR([memchr]) ! gl_FUNC_MEMPCPY ! gl_STRING_MODULE_INDICATOR([mempcpy]) ! gl_FUNC_MEMRCHR ! gl_STRING_MODULE_INDICATOR([memrchr]) ! gl_FUNC_MKDIR ! gl_FUNC_MKFIFO ! gl_UNISTD_MODULE_INDICATOR([mkfifo]) ! gl_FUNC_MKSTEMP ! gl_STDLIB_MODULE_INDICATOR([mkstemp]) ! gl_FUNC_MKTIME ! gl_TIME_MODULE_INDICATOR([mktime]) ! gl_MULTIARCH ! gl_FUNC_NANOSLEEP ! gl_TIME_MODULE_INDICATOR([nanosleep]) ! gl_NPROC ! gl_FUNC_OPEN ! gl_FCNTL_MODULE_INDICATOR([open]) ! gl_FUNC_OPENAT ! gl_PATHMAX ! AC_CHECK_DECLS([program_invocation_name], [], [], [#include ]) ! AC_CHECK_DECLS([program_invocation_short_name], [], [], [#include ]) ! gl_FUNC_READLINK ! gl_UNISTD_MODULE_INDICATOR([readlink]) ! gl_FUNC_REALLOC_POSIX ! gl_STDLIB_MODULE_INDICATOR([realloc-posix]) ! gl_FUNC_RENAME ! gl_STDIO_MODULE_INDICATOR([rename]) ! gl_FUNC_RMDIR ! gl_UNISTD_MODULE_INDICATOR([rmdir]) ! gl_FUNC_ROUND ! gl_MATH_MODULE_INDICATOR([round]) ! gl_FUNC_ROUNDF ! gl_MATH_MODULE_INDICATOR([roundf]) ! gl_SAVE_CWD ! gl_FUNC_SELECT ! gl_SYS_SELECT_MODULE_INDICATOR([select]) ! gl_SIGACTION ! gl_SIGNAL_MODULE_INDICATOR([sigaction]) ! gl_SIGNAL_H ! gl_SIGNALBLOCKING ! gl_SIGNAL_MODULE_INDICATOR([sigprocmask]) ! gl_SIZE_MAX ! gl_FUNC_SLEEP ! gl_UNISTD_MODULE_INDICATOR([sleep]) ! gl_SOCKETLIB ! gl_SOCKETS ! gl_TYPE_SOCKLEN_T ! gl_FUNC_STAT ! gl_SYS_STAT_MODULE_INDICATOR([stat]) ! AM_STDBOOL_H ! gl_STDDEF_H ! gl_STDINT_H ! gl_STDIO_H ! gl_STDLIB_H ! gl_FUNC_STRDUP_POSIX ! gl_STRING_MODULE_INDICATOR([strdup]) ! gl_FUNC_STRERROR ! if test $REPLACE_STRERROR = 1; then ! AC_LIBOBJ([strerror]) ! fi ! gl_MODULE_INDICATOR([strerror]) ! gl_STRING_MODULE_INDICATOR([strerror]) ! AC_REQUIRE([gl_HEADER_ERRNO_H]) ! if test -n "$ERRNO_H"; then ! AC_LIBOBJ([strerror-override]) ! gl_PREREQ_SYS_H_WINSOCK2 ! fi ! gl_FUNC_GNU_STRFTIME ! gl_HEADER_STRING_H ! gl_FUNC_STRPTIME ! gl_TIME_MODULE_INDICATOR([strptime]) ! gl_FUNC_SYMLINK ! gl_UNISTD_MODULE_INDICATOR([symlink]) ! gl_HEADER_SYS_SELECT ! AC_PROG_MKDIR_P ! gl_HEADER_SYS_SOCKET ! AC_PROG_MKDIR_P ! gl_HEADER_SYS_STAT_H ! AC_PROG_MKDIR_P ! gl_HEADER_SYS_TIME_H ! AC_PROG_MKDIR_P ! gl_SYS_TIMES_H ! AC_PROG_MKDIR_P ! gl_HEADER_SYS_UIO ! AC_PROG_MKDIR_P ! gl_FUNC_GEN_TEMPNAME ! gl_HEADER_TIME_H ! gl_TIME_R ! gl_TIME_MODULE_INDICATOR([time_r]) ! gl_FUNC_TIMES ! gl_SYS_TIMES_MODULE_INDICATOR([times]) ! gl_FUNC_TRUNC ! gl_MATH_MODULE_INDICATOR([trunc]) ! gl_FUNC_TRUNCF ! gl_MATH_MODULE_INDICATOR([truncf]) ! gl_UNISTD_H ! gl_UNISTD_SAFER ! gl_FUNC_UNLINK ! gl_UNISTD_MODULE_INDICATOR([unlink]) ! gl_FUNC_VASNPRINTF ! gl_FUNC_VSNPRINTF ! gl_STDIO_MODULE_INDICATOR([vsnprintf]) ! gl_WCHAR_H ! gl_WCTYPE_H ! gl_XSIZE # End of code from modules m4_ifval(gl_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ || *************** *** 631,644 **** lib/chown.c lib/cloexec.c lib/cloexec.h - lib/close-hook.c - lib/close-hook.h lib/close.c lib/config.charset lib/dirent.in.h lib/dirfd.c lib/dirname-lgpl.c lib/dirname.h lib/dup-safer.c lib/dup2.c lib/errno.in.h --- 564,576 ---- lib/chown.c lib/cloexec.c lib/cloexec.h lib/close.c lib/config.charset lib/dirent.in.h lib/dirfd.c lib/dirname-lgpl.c lib/dirname.h + lib/dosname.h lib/dup-safer.c lib/dup2.c lib/errno.in.h *************** *** 653,669 **** --- 585,614 ---- lib/fclose.c lib/fcntl.c lib/fcntl.in.h + lib/fd-hook.c + lib/fd-hook.h lib/fd-safer.c lib/fdopendir.c + lib/fflush.c lib/filemode.c lib/filemode.h + lib/filenamecat-lgpl.c + lib/filenamecat.h lib/float+.h lib/float.in.h lib/floor.c lib/fnmatch.c lib/fnmatch.in.h lib/fnmatch_loop.c + lib/fpurge.c + lib/freading.c + lib/freading.h + lib/fseek.c + lib/fseeko.c lib/fstatat.c + lib/ftell.c + lib/ftello.c + lib/getcwd-lgpl.c lib/getcwd.c lib/getdtablesize.c lib/gethostname.c *************** *** 678,688 **** lib/glob.c lib/glob.in.h lib/intprops.h - lib/iswblank.c lib/lchown.c lib/link.c lib/localcharset.c lib/localcharset.h lib/lstat.c lib/malloc.c lib/malloca.c --- 623,633 ---- lib/glob.c lib/glob.in.h lib/intprops.h lib/lchown.c lib/link.c lib/localcharset.c lib/localcharset.h + lib/lseek.c lib/lstat.c lib/malloc.c lib/malloca.c *************** *** 707,712 **** --- 652,659 ---- lib/mktime-internal.h lib/mktime.c lib/nanosleep.c + lib/nproc.c + lib/nproc.h lib/open.c lib/openat-die.c lib/openat-priv.h *************** *** 745,763 **** lib/stdbool.in.h lib/stddef.in.h lib/stdint.in.h ! lib/stdio-write.c lib/stdio.in.h lib/stdlib.in.h - lib/strcasecmp.c lib/strdup.c lib/streq.h lib/strerror.c lib/strftime.c lib/strftime.h lib/string.in.h - lib/strings.in.h lib/stripslash.c - lib/strncasecmp.c lib/strnlen1.c lib/strnlen1.h lib/strptime.c --- 692,709 ---- lib/stdbool.in.h lib/stddef.in.h lib/stdint.in.h ! lib/stdio-impl.h lib/stdio.in.h lib/stdlib.in.h lib/strdup.c lib/streq.h + lib/strerror-override.c + lib/strerror-override.h lib/strerror.c lib/strftime.c lib/strftime.h lib/string.in.h lib/stripslash.c lib/strnlen1.c lib/strnlen1.h lib/strptime.c *************** *** 767,772 **** --- 713,719 ---- lib/sys_stat.in.h lib/sys_time.in.h lib/sys_times.in.h + lib/sys_uio.in.h lib/tempname.c lib/tempname.h lib/time.in.h *************** *** 789,795 **** lib/xsize.h m4/00gnulib.m4 m4/alloca.m4 - m4/asm-underscore.m4 m4/canonicalize.m4 m4/ceil.m4 m4/ceilf.m4 --- 736,741 ---- *************** *** 805,811 **** m4/dirent_h.m4 m4/dirfd.m4 m4/dirname.m4 - m4/dos.m4 m4/double-slash-root.m4 m4/dup2.m4 m4/eealloc.m4 --- 751,756 ---- *************** *** 818,828 **** --- 763,781 ---- m4/fcntl.m4 m4/fcntl_h.m4 m4/fdopendir.m4 + m4/fflush.m4 m4/filemode.m4 + m4/filenamecat.m4 m4/float_h.m4 m4/floor.m4 m4/floorf.m4 m4/fnmatch.m4 + m4/fpurge.m4 + m4/freading.m4 + m4/fseek.m4 + m4/fseeko.m4 + m4/ftell.m4 + m4/ftello.m4 m4/getcwd-abort-bug.m4 m4/getcwd-path-max.m4 m4/getcwd.m4 *************** *** 844,849 **** --- 797,803 ---- m4/locale-ja.m4 m4/locale-zh.m4 m4/longlong.m4 + m4/lseek.m4 m4/lstat.m4 m4/malloc.m4 m4/malloca.m4 *************** *** 865,870 **** --- 819,826 ---- m4/mode_t.m4 m4/multiarch.m4 m4/nanosleep.m4 + m4/nocrash.m4 + m4/nproc.m4 m4/open.m4 m4/openat.m4 m4/pathmax.m4 *************** *** 894,905 **** m4/stdint_h.m4 m4/stdio_h.m4 m4/stdlib_h.m4 - m4/strcase.m4 m4/strdup.m4 m4/strerror.m4 m4/strftime.m4 m4/string_h.m4 - m4/strings_h.m4 m4/strptime.m4 m4/symlink.m4 m4/sys_select_h.m4 --- 850,859 ---- *************** *** 907,912 **** --- 861,867 ---- m4/sys_stat_h.m4 m4/sys_time_h.m4 m4/sys_times_h.m4 + m4/sys_uio_h.m4 m4/tempname.m4 m4/time_h.m4 m4/time_r.m4 diff -cNr octave-3.4.0/m4/libtool.m4 octave-3.4.1/m4/libtool.m4 *** octave-3.4.0/m4/libtool.m4 2011-02-08 05:03:20.000000000 -0500 --- octave-3.4.1/m4/libtool.m4 2011-06-15 11:31:10.000000000 -0400 *************** *** 1,7 **** # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, ! # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives --- 1,8 ---- # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, ! # 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ! # Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives *************** *** 10,16 **** m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, ! # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. --- 11,18 ---- m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, ! # 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ! # Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. *************** *** 37,43 **** # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) ! # serial 56 LT_INIT # LT_PREREQ(VERSION) --- 39,45 ---- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) ! # serial 57 LT_INIT # LT_PREREQ(VERSION) *************** *** 66,71 **** --- 68,74 ---- # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT + AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl *************** *** 82,87 **** --- 85,92 ---- AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl + _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) *************** *** 118,124 **** *) break;; esac done ! cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ]) --- 123,129 ---- *) break;; esac done ! cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) *************** *** 138,143 **** --- 143,151 ---- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl + AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl + AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl *************** *** 160,169 **** --- 168,180 ---- dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl + m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl + m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl + m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our *************** *** 179,185 **** _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl - _LT_PROG_ECHO_BACKSLASH case $host_os in aix3*) --- 190,195 ---- *************** *** 193,215 **** ;; esac - # Sed substitution that helps us do robust quoting. It backslashifies - # metacharacters that are still active within double-quoted strings. - sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' - - # Same as above, but do not quote variable references. - double_quote_subst='s/\([["`\\]]\)/\\\1/g' - - # Sed substitution to delay expansion of an escaped shell variable in a - # double_quote_subst'ed string. - delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - - # Sed substitution to delay expansion of an escaped single quote. - delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - - # Sed substitution to avoid accidental globbing in evaled expressions - no_glob_subst='s/\*/\\\*/g' - # Global variables: ofile=libtool can_build_shared=yes --- 203,208 ---- *************** *** 250,255 **** --- 243,270 ---- ])# _LT_SETUP + # _LT_PREPARE_SED_QUOTE_VARS + # -------------------------- + # Define a few sed substitution that help us do robust quoting. + m4_defun([_LT_PREPARE_SED_QUOTE_VARS], + [# Backslashify metacharacters that are still active within + # double-quoted strings. + sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + + # Same as above, but do not quote variable references. + double_quote_subst='s/\([["`\\]]\)/\\\1/g' + + # Sed substitution to delay expansion of an escaped shell variable in a + # double_quote_subst'ed string. + delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + + # Sed substitution to delay expansion of an escaped single quote. + delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + + # Sed substitution to avoid accidental globbing in evaled expressions + no_glob_subst='s/\*/\\\*/g' + ]) + # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' *************** *** 408,414 **** # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], ! [$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS --- 423,429 ---- # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], ! [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS *************** *** 418,424 **** # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # ! # ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) --- 433,439 ---- # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # ! # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) *************** *** 517,528 **** LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do ! case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) ! eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" --- 532,551 ---- LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' + # A function that is used when there is no print builtin or printf. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF + \$[]1 + _LTECHO_EOF' + } + # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do ! case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) ! eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" *************** *** 533,541 **** # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do ! case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) ! eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" --- 556,564 ---- # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do ! case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) ! eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" *************** *** 543,558 **** esac done - # Fix-up fallback echo if it was mangled by the above quoting rules. - case \$lt_ECHO in - *'\\\[$]0 --fallback-echo"')dnl " - lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` - ;; - esac - _LT_OUTPUT_LIBTOOL_INIT ]) # LT_OUTPUT # --------- --- 566,603 ---- esac done _LT_OUTPUT_LIBTOOL_INIT ]) + # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) + # ------------------------------------ + # Generate a child script FILE with all initialization necessary to + # reuse the environment learned by the parent script, and make the + # file executable. If COMMENT is supplied, it is inserted after the + # `#!' sequence but before initialization text begins. After this + # macro, additional text can be appended to FILE to form the body of + # the child script. The macro ends with non-zero status if the + # file could not be fully written (such as if the disk is full). + m4_ifdef([AS_INIT_GENERATED], + [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], + [m4_defun([_LT_GENERATED_FILE_INIT], + [m4_require([AS_PREPARE])]dnl + [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl + [lt_write_fail=0 + cat >$1 <<_ASEOF || lt_write_fail=1 + #! $SHELL + # Generated by $as_me. + $2 + SHELL=\${CONFIG_SHELL-$SHELL} + export SHELL + _ASEOF + cat >>$1 <<\_ASEOF || lt_write_fail=1 + AS_SHELL_SANITIZE + _AS_PREPARE + exec AS_MESSAGE_FD>&1 + _ASEOF + test $lt_write_fail = 0 && chmod +x $1[]dnl + m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- *************** *** 562,581 **** AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) ! cat >"$CONFIG_LT" <<_LTEOF ! #! $SHELL ! # Generated by $as_me. ! # Run this file to recreate a libtool stub with the current configuration. ! ! lt_cl_silent=false ! SHELL=\${CONFIG_SHELL-$SHELL} ! _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF ! AS_SHELL_SANITIZE ! _AS_PREPARE ! ! exec AS_MESSAGE_FD>&1 exec AS_MESSAGE_LOG_FD>>config.log { echo --- 607,617 ---- AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) ! _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], ! [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF ! lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo *************** *** 601,607 **** m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. ! Copyright (C) 2008 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." --- 637,643 ---- m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. ! Copyright (C) 2010 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." *************** *** 646,660 **** # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. ! if test "$no_create" != yes; then ! lt_cl_success=: ! test "$silent" = yes && ! lt_config_lt_args="$lt_config_lt_args --quiet" ! exec AS_MESSAGE_LOG_FD>/dev/null ! $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false ! exec AS_MESSAGE_LOG_FD>>config.log ! $lt_cl_success || AS_EXIT(1) ! fi ])# LT_OUTPUT --- 682,694 ---- # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. ! lt_cl_success=: ! test "$silent" = yes && ! lt_config_lt_args="$lt_config_lt_args --quiet" ! exec AS_MESSAGE_LOG_FD>/dev/null ! $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false ! exec AS_MESSAGE_LOG_FD>>config.log ! $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT *************** *** 717,731 **** # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? ! sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ ! || (rm -f "$cfgfile"; exit 1) ! _LT_PROG_XSI_SHELLFNS ! sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ ! || (rm -f "$cfgfile"; exit 1) ! ! mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], --- 751,762 ---- # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? ! sed '$q' "$ltmain" >> "$cfgfile" \ ! || (rm -f "$cfgfile"; exit 1) ! _LT_PROG_REPLACE_SHELLFNS ! mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], *************** *** 831,841 **** --- 862,874 ---- AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) + AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) + dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER *************** *** 940,945 **** --- 973,1003 ---- [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF + int forced_loaded() { return 2;} + _LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF + int main() { return 0;} + _LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; *************** *** 967,973 **** else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi ! if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= --- 1025,1031 ---- else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi ! if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= *************** *** 987,993 **** _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported ! _LT_TAGVAR(whole_archive_flag_spec, $1)='' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in --- 1045,1055 ---- _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported ! if test "$lt_cv_ld_force_load" = "yes"; then ! _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' ! else ! _LT_TAGVAR(whole_archive_flag_spec, $1)='' ! fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in *************** *** 995,1001 **** *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then ! output_verbose_link_cmd=echo _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" --- 1057,1063 ---- *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then ! output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" *************** *** 1011,1213 **** fi ]) ! # _LT_SYS_MODULE_PATH_AIX ! # ----------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl ! AC_LINK_IFELSE(AC_LANG_PROGRAM,[ ! lt_aix_libpath_sed=' ! /Import File Strings/,/^$/ { ! /^0/ { ! s/^0 *\(.*\)$/\1/ ! p ! } ! }' ! aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! # Check for a 64-bit object if we didn't find anything. ! if test -z "$aix_libpath"; then ! aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! fi],[]) ! if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], ! [ifdef([AC_DIVERSION_NOTICE], ! [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], ! [AC_DIVERT_PUSH(NOTICE)]) ! $1 ! AC_DIVERT_POP ! ])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- ! # Add some code to the start of the generated configure script which ! # will find an echo command which doesn't interpret backslashes. m4_defun([_LT_PROG_ECHO_BACKSLASH], ! [_LT_SHELL_INIT([ ! # Check that we are running under the correct shell. ! SHELL=${CONFIG_SHELL-/bin/sh} ! ! case X$lt_ECHO in ! X*--fallback-echo) ! # Remove one level of quotation (which was required for Make). ! ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ! ;; ! esac ! ! ECHO=${lt_ECHO-echo} ! if test "X[$]1" = X--no-reexec; then ! # Discard the --no-reexec flag, and continue. ! shift ! elif test "X[$]1" = X--fallback-echo; then ! # Avoid inline document here, it may be left over ! : ! elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then ! # Yippee, $ECHO works! ! : else ! # Restart under the correct shell. ! exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} ! fi ! ! if test "X[$]1" = X--fallback-echo; then ! # used as fallback echo ! shift ! cat <<_LT_EOF ! [$]* ! _LT_EOF ! exit 0 fi ! # The HP-UX ksh and POSIX shell print the target directory to stdout ! # if CDPATH is set. ! (unset CDPATH) >/dev/null 2>&1 && unset CDPATH ! ! if test -z "$lt_ECHO"; then ! if test "X${echo_test_string+set}" != Xset; then ! # find a string as large as possible, as long as the shell can cope with it ! for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do ! # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... ! if { echo_test_string=`eval $cmd`; } 2>/dev/null && ! { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null ! then ! break ! fi ! done ! fi ! ! if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && ! echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && ! test "X$echo_testing_string" = "X$echo_test_string"; then ! : ! else ! # The Solaris, AIX, and Digital Unix default echo programs unquote ! # backslashes. This makes it impossible to quote backslashes using ! # echo "$something" | sed 's/\\/\\\\/g' ! # ! # So, first we look for a working echo in the user's PATH. ! ! lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ! for dir in $PATH /usr/ucb; do ! IFS="$lt_save_ifs" ! if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && ! test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && ! echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && ! test "X$echo_testing_string" = "X$echo_test_string"; then ! ECHO="$dir/echo" ! break ! fi ! done ! IFS="$lt_save_ifs" ! ! if test "X$ECHO" = Xecho; then ! # We didn't find a better echo, so look for alternatives. ! if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && ! echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && ! test "X$echo_testing_string" = "X$echo_test_string"; then ! # This shell has a builtin print -r that does the trick. ! ECHO='print -r' ! elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && ! test "X$CONFIG_SHELL" != X/bin/ksh; then ! # If we have ksh, try running configure again with it. ! ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} ! export ORIGINAL_CONFIG_SHELL ! CONFIG_SHELL=/bin/ksh ! export CONFIG_SHELL ! exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} ! else ! # Try using printf. ! ECHO='printf %s\n' ! if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && ! echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && ! test "X$echo_testing_string" = "X$echo_test_string"; then ! # Cool, printf works ! : ! elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && ! test "X$echo_testing_string" = 'X\t' && ! echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && ! test "X$echo_testing_string" = "X$echo_test_string"; then ! CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL ! export CONFIG_SHELL ! SHELL="$CONFIG_SHELL" ! export SHELL ! ECHO="$CONFIG_SHELL [$]0 --fallback-echo" ! elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && ! test "X$echo_testing_string" = 'X\t' && ! echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && ! test "X$echo_testing_string" = "X$echo_test_string"; then ! ECHO="$CONFIG_SHELL [$]0 --fallback-echo" ! else ! # maybe with a smaller string... ! prev=: ! ! for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do ! if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null ! then ! break ! fi ! prev="$cmd" ! done ! if test "$prev" != 'sed 50q "[$]0"'; then ! echo_test_string=`eval $prev` ! export echo_test_string ! exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} ! else ! # Oops. We lost completely, so just stick with echo. ! ECHO=echo ! fi ! fi ! fi ! fi ! fi ! fi ! # Copy echo and quote the copy suitably for passing to libtool from ! # the Makefile, instead of quoting the original, which is used later. ! lt_ECHO=$ECHO ! if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then ! lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" ! fi - AC_SUBST(lt_ECHO) - ]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) ! _LT_DECL([], [ECHO], [1], ! [An echo program that does not interpret backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], --- 1073,1214 ---- fi ]) ! # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) ! # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. + # Store the results from the different compilers for each TAGNAME. + # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl ! if test "${lt_cv_aix_libpath+set}" = set; then ! aix_libpath=$lt_cv_aix_libpath ! else ! AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], ! [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ ! lt_aix_libpath_sed='[ ! /Import File Strings/,/^$/ { ! /^0/ { ! s/^0 *\([^ ]*\) *$/\1/ ! p ! } ! }]' ! _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! # Check for a 64-bit object if we didn't find anything. ! if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then ! _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ! fi],[]) ! if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then ! _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" ! fi ! ]) ! aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) ! fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], ! [m4_divert_text([M4SH-INIT], [$1 ! ])])# _LT_SHELL_INIT ! # _LT_PROG_ECHO_BACKSLASH # ----------------------- ! # Find how we can fake an echo command that does not interpret backslash. ! # In particular, with Autoconf 2.60 or later we add some code to the start ! # of the generated configure script which will find a shell with a builtin ! # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], ! [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ! ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ! ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO ! ! AC_MSG_CHECKING([how to print strings]) ! # Test print first, because it will be a builtin if present. ! if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ ! test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ! ECHO='print -r --' ! elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ! ECHO='printf %s\n' else ! # Use this function as a fallback that always works. ! func_fallback_echo () ! { ! eval 'cat <<_LTECHO_EOF ! $[]1 ! _LTECHO_EOF' ! } ! ECHO='func_fallback_echo' fi ! # func_echo_all arg... ! # Invoke $ECHO with all args, space-separated. ! func_echo_all () ! { ! $ECHO "$*" ! } ! case "$ECHO" in ! printf*) AC_MSG_RESULT([printf]) ;; ! print*) AC_MSG_RESULT([print -r]) ;; ! *) AC_MSG_RESULT([cat]) ;; ! esac ! m4_ifdef([_AS_DETECT_SUGGESTED], ! [_AS_DETECT_SUGGESTED([ ! test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ! ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ! ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ! ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO ! PATH=/empty FPATH=/empty; export PATH FPATH ! test "X`printf %s $ECHO`" = "X$ECHO" \ ! || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) ! _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH + # _LT_WITH_SYSROOT + # ---------------- + AC_DEFUN([_LT_WITH_SYSROOT], + [AC_MSG_CHECKING([for sysroot]) + AC_ARG_WITH([sysroot], + [ --with-sysroot[=DIR] Search for dependent libraries within DIR + (or the compiler's sysroot if not specified).], + [], [with_sysroot=no]) + + dnl lt_sysroot will always be passed unquoted. We quote it here + dnl in case the user passed a directory name. + lt_sysroot= + case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; + esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) + _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl + [dependent libraries, and in which our libraries should be installed.])]) + # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], *************** *** 1236,1242 **** ;; *-*-irix6*) # Find out which ABI we are using. ! echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in --- 1237,1243 ---- ;; *-*-irix6*) # Find out which ABI we are using. ! echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *************** *** 1354,1367 **** ])# _LT_ENABLE_LOCK # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], ! [AC_CHECK_TOOL(AR, ar, false) ! test -z "$AR" && AR=ar ! test -z "$AR_FLAGS" && AR_FLAGS=cru ! _LT_DECL([], [AR], [1], [The archiver]) ! _LT_DECL([], [AR_FLAGS], [1]) AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: --- 1355,1401 ---- ])# _LT_ENABLE_LOCK + # _LT_PROG_AR + # ----------- + m4_defun([_LT_PROG_AR], + [AC_CHECK_TOOLS(AR, [ar], false) + : ${AR=ar} + : ${AR_FLAGS=cru} + _LT_DECL([], [AR], [1], [The archiver]) + _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + + AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + + if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= + else + archiver_list_spec=$lt_cv_ar_at_file + fi + _LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) + ])# _LT_PROG_AR + + # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], ! [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: *************** *** 1388,1397 **** --- 1422,1440 ---- esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi + + case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; + esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) + _LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE *************** *** 1416,1430 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD ! echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. ! $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes --- 1459,1473 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD ! echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. ! $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes *************** *** 1464,1470 **** if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD ! $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes --- 1507,1513 ---- if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD ! $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes *************** *** 1527,1532 **** --- 1570,1580 ---- lt_cv_sys_max_cmd_len=8192; ;; + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. *************** *** 1591,1598 **** # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. ! while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ ! = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` --- 1639,1646 ---- # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. ! while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ ! = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` *************** *** 1643,1649 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! [#line __oline__ "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 1691,1697 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** *** 1684,1690 **** # endif #endif ! void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); --- 1732,1744 ---- # endif #endif ! /* When -fvisbility=hidden is used, assume the code has been annotated ! correspondingly for the symbols needed. */ ! #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) ! int fnord () __attribute__((visibility("default"))); ! #endif ! ! int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); *************** *** 1693,1699 **** if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ! else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else --- 1747,1757 ---- if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ! else ! { ! if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ! else puts (dlerror ()); ! } /* dlclose (self); */ } else *************** *** 1869,1884 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD ! echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings ! $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes --- 1927,1942 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD ! echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings ! $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes *************** *** 2037,2042 **** --- 2095,2101 ---- m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl + m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ *************** *** 2045,2060 **** darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac ! lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` ! if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. ! lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` ! else ! lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ! fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= --- 2104,2126 ---- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac ! case $host_os in ! mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; ! *) lt_sed_strip_eq="s,=/,/,g" ;; ! esac ! lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` ! case $lt_search_path_spec in ! *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. ! lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ! ;; ! *) ! lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ! ;; ! esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= *************** *** 2067,2073 **** lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done ! lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; --- 2133,2139 ---- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done ! lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; *************** *** 2087,2093 **** if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` ! sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) --- 2153,2165 ---- if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` ! # AWK program above erroneously prepends '/' to C:/dos/paths ! # for these hosts. ! case $host_os in ! mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ ! $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; ! esac ! sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) *************** *** 2175,2181 **** m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. ! finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; --- 2247,2253 ---- m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. ! finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; *************** *** 2206,2213 **** need_version=no need_lib_prefix=no ! case $GCC,$host_os in ! yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ --- 2278,2286 ---- need_version=no need_lib_prefix=no ! case $GCC,$cc_basename in ! yes,*) ! # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ *************** *** 2228,2263 **** cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ! sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac - dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; --- 2301,2383 ---- cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ! m4_if([$1], [],[ ! sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' ;; *) + # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; *************** *** 2341,2346 **** --- 2461,2480 ---- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + + haiku*) + version_type=linux + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; *************** *** 2386,2393 **** soname_spec='${libname}${release}${shared_ext}$major' ;; esac ! # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[[3-9]]*) --- 2520,2529 ---- soname_spec='${libname}${release}${shared_ext}$major' ;; esac ! # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 ;; interix[[3-9]]*) *************** *** 2454,2469 **** finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH ! save_LDFLAGS=$LDFLAGS ! save_libdir=$libdir ! eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ ! LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" ! AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], ! [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], ! [shlibpath_overrides_runpath=yes])]) ! LDFLAGS=$save_LDFLAGS ! libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install --- 2590,2610 ---- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH ! AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], ! [lt_cv_shlibpath_overrides_runpath=no ! save_LDFLAGS=$LDFLAGS ! save_libdir=$libdir ! eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ ! LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" ! AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], ! [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], ! [lt_cv_shlibpath_overrides_runpath=yes])]) ! LDFLAGS=$save_LDFLAGS ! libdir=$save_libdir ! ]) ! shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install *************** *** 2472,2478 **** # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then ! lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi --- 2613,2619 ---- # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then ! lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi *************** *** 2717,2722 **** --- 2858,2865 ---- The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) + _LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], *************** *** 2829,2834 **** --- 2972,2978 ---- AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl + m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], *************** *** 2950,2955 **** --- 3094,3104 ---- esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' *************** *** 2958,2965 **** fi ;; esac ! _LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl ! _LT_DECL([], [reload_cmds], [2])dnl ])# _LT_CMD_RELOAD --- 3107,3114 ---- fi ;; esac ! _LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl ! _LT_TAGDECL([], [reload_cmds], [2])dnl ])# _LT_CMD_RELOAD *************** *** 3011,3026 **** # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. ! if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else ! lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; ! cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' --- 3160,3177 ---- # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. ! # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. ! if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else ! # Keep this pattern in sync with the one in func_win32_libid. ! lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; ! cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' *************** *** 3050,3055 **** --- 3201,3210 ---- lt_cv_deplibs_check_method=pass_all ;; + haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in *************** *** 3058,3068 **** lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) ! [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) ! lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac --- 3213,3223 ---- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) ! [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) ! lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac *************** *** 3162,3167 **** --- 3317,3337 ---- ;; esac ]) + + file_magic_glob= + want_nocaseglob=no + if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac + fi + file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown *************** *** 3169,3175 **** _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], ! [Command to use when deplibs_check_method == "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD --- 3339,3349 ---- _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], ! [Command to use when deplibs_check_method = "file_magic"]) ! _LT_DECL([], [file_magic_glob], [1], ! [How to find potential files when deplibs_check_method = "file_magic"]) ! _LT_DECL([], [want_nocaseglob], [1], ! [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD *************** *** 3226,3232 **** NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. ! AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" --- 3400,3418 ---- NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. ! if test -n "$DUMPBIN"; then : ! # Let the user override the test. ! else ! AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) ! case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in ! *COFF*) ! DUMPBIN="$DUMPBIN -symbols" ! ;; ! *) ! DUMPBIN=: ! ;; ! esac ! fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" *************** *** 3239,3251 **** AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext ! (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD ! (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD ! (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" --- 3425,3437 ---- AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext ! (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD ! (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD ! (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" *************** *** 3260,3265 **** --- 3446,3512 ---- dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) + # _LT_CHECK_SHAREDLIB_FROM_LINKLIB + # -------------------------------- + # how to determine the name of the shared library + # associated with a specific link library. + # -- PORTME fill in with the dynamic library characteristics + m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], + [m4_require([_LT_DECL_EGREP]) + m4_require([_LT_DECL_OBJDUMP]) + m4_require([_LT_DECL_DLLTOOL]) + AC_CACHE_CHECK([how to associate runtime and link libraries], + lt_cv_sharedlib_from_linklib_cmd, + [lt_cv_sharedlib_from_linklib_cmd='unknown' + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; + *) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; + esac + ]) + sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd + test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + _LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) + ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + + # _LT_PATH_MANIFEST_TOOL + # ---------------------- + # locate the manifest tool + m4_defun([_LT_PATH_MANIFEST_TOOL], + [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) + test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt + AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) + if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: + fi + _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl + ])# _LT_PATH_MANIFEST_TOOL + # LT_LIB_M # -------- *************** *** 3268,3274 **** [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in ! *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) --- 3515,3521 ---- [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in ! *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) *************** *** 3296,3302 **** _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then ! _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, --- 3543,3554 ---- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then ! case $cc_basename in ! nvcc*) ! _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; ! *) ! _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; ! esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, *************** *** 3313,3318 **** --- 3565,3571 ---- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl *************** *** 3380,3387 **** lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address ! lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" ! lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= --- 3633,3640 ---- lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address ! lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" ! lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= *************** *** 3417,3422 **** --- 3670,3676 ---- else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no *************** *** 3438,3444 **** if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm ! if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" --- 3692,3698 ---- if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm ! if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" *************** *** 3450,3455 **** --- 3704,3721 ---- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext + /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ + #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) + /* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ + # define LT@&t@_DLSYM_CONST + #elif defined(__osf__) + /* This system does not cope well with relocations in const data. */ + # define LT@&t@_DLSYM_CONST + #else + # define LT@&t@_DLSYM_CONST const + #endif + #ifdef __cplusplus extern "C" { #endif *************** *** 3461,3467 **** cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ ! const struct { const char *name; void *address; } --- 3727,3733 ---- cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ ! LT@&t@_DLSYM_CONST struct { const char *name; void *address; } *************** *** 3487,3501 **** _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext ! lt_save_LIBS="$LIBS" ! lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi ! LIBS="$lt_save_LIBS" ! CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi --- 3753,3767 ---- _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext ! lt_globsym_save_LIBS=$LIBS ! lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi ! LIBS=$lt_globsym_save_LIBS ! CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi *************** *** 3528,3533 **** --- 3794,3806 ---- AC_MSG_RESULT(ok) fi + # Response file support. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' + elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' + fi + _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], *************** *** 3538,3543 **** --- 3811,3818 ---- _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) + _LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS *************** *** 3549,3555 **** _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= - AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then --- 3824,3829 ---- *************** *** 3600,3605 **** --- 3874,3884 ---- # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. *************** *** 3649,3654 **** --- 3928,3939 ---- ;; esac ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; dgux*) case $cc_basename in ec++*) *************** *** 3738,3745 **** _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; ! xlc* | xlC*) ! # IBM XL 8.0 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' --- 4023,4030 ---- _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; ! xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) ! # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' *************** *** 3801,3807 **** ;; solaris*) case $cc_basename in ! CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' --- 4086,4092 ---- ;; solaris*) case $cc_basename in ! CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' *************** *** 3905,3910 **** --- 4190,4201 ---- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag *************** *** 3947,3952 **** --- 4238,4250 ---- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC' + ;; + esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in *************** *** 4010,4016 **** _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; ! pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' --- 4308,4320 ---- _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; ! nagfor*) ! # NAG Fortran compiler ! _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' ! _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ! _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ! ;; ! pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' *************** *** 4022,4046 **** # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; ! xl*) ! # IBM XL C 8.0/Fortran 10.1 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in ! *Sun\ C*) ! # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ! _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; ! *Sun\ F*) ! # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ! _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; --- 4326,4350 ---- # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; ! xl* | bgxl* | bgf* | mpixl*) ! # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in ! *Sun\ F* | *Sun*Fortran*) ! # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ! _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; ! *Sun\ C*) ! # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ! _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; esac ;; *************** *** 4072,4078 **** _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in ! f77* | f90* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; --- 4376,4382 ---- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in ! f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; *************** *** 4129,4137 **** _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac ! AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) ! _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], ! [How to pass a linker flag through the compiler]) # # Check to make sure the PIC flag actually works. --- 4433,4443 ---- _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac ! ! AC_CACHE_CHECK([for $compiler option to produce PIC], ! [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], ! [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) ! _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. *************** *** 4150,4155 **** --- 4456,4463 ---- _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) + _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # *************** *** 4170,4175 **** --- 4478,4484 ---- m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl + m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl *************** *** 4178,4207 **** AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then ! _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ! ;; cygwin* | mingw* | cegcc*) ! _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ! ;; ! linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ! ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ! ;; esac - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= --- 4487,4524 ---- AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then ! _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ! ;; cygwin* | mingw* | cegcc*) ! case $cc_basename in ! cl*) ;; ! *) ! _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ! _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ! ;; ! esac ! ;; ! linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ! ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ! ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= *************** *** 4261,4273 **** openbsd*) with_gnu_ld=no ;; ! linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' --- 4578,4616 ---- openbsd*) with_gnu_ld=no ;; ! linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' *************** *** 4301,4311 **** _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 ! *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you ! *** really care for shared libraries, you may want to modify your PATH ! *** so that a non-GNU linker is found, and then restart. _LT_EOF fi --- 4644,4655 ---- _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 ! *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you ! *** really care for shared libraries, you may want to install binutils ! *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. ! *** You will then need to restart the configuration process. _LT_EOF fi *************** *** 4341,4350 **** # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ! _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' --- 4685,4696 ---- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ! _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ! _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' *************** *** 4362,4367 **** --- 4708,4718 ---- fi ;; + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no *************** *** 4387,4401 **** if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then ! tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler ! _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; ! pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers ! _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; --- 4738,4753 ---- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then ! tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler ! _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; ! pgf77* | pgf90* | pgf95* | pgfortran*) ! # Portland Group f77 and f90 compilers ! _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; *************** *** 4406,4418 **** lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; ! xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 ! _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 --- 4758,4774 ---- lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; ! xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 ! _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 *************** *** 4428,4444 **** fi case $cc_basename in ! xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' ! _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ ! $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac --- 4784,4800 ---- fi case $cc_basename in ! xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' ! _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ ! $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac *************** *** 4452,4459 **** _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; --- 4808,4815 ---- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; *************** *** 4471,4478 **** _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi --- 4827,4834 ---- _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi *************** *** 4518,4525 **** *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi --- 4874,4881 ---- *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi *************** *** 4559,4566 **** else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then ! _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi --- 4915,4924 ---- else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then ! _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi *************** *** 4648,4656 **** _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. ! _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" ! _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' --- 5006,5014 ---- _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. ! _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" ! _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' *************** *** 4659,4672 **** else # Determine the default libpath from the value encoded in an # empty executable. ! _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' ! # Exported symbols can be pulled into shared objects from archives ! _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' --- 5017,5035 ---- else # Determine the default libpath from the value encoded in an # empty executable. ! _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' ! if test "$with_gnu_ld" = yes; then ! # We only use this code for GNU lds that support --whole-archive. ! _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ! else ! # Exported symbols can be pulled into shared objects from archives ! _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' ! fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' *************** *** 4698,4717 **** # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. ! _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' ! _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ! # Tell ltmain to make .lib files, not .a files. ! libext=lib ! # Tell ltmain to make .dll files, not .so files. ! shrext_cmds=".dll" ! # FIXME: Setting linknames here is a bad hack. ! _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' ! # The linker will automatically build a .lib file if we build a DLL. ! _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' ! # FIXME: Should let the user specify the lib program. ! _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' ! _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' ! _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) --- 5061,5123 ---- # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. ! case $cc_basename in ! cl*) ! # Native MSVC ! _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' ! _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ! _LT_TAGVAR(always_export_symbols, $1)=yes ! _LT_TAGVAR(file_list_spec, $1)='@' ! # Tell ltmain to make .lib files, not .a files. ! libext=lib ! # Tell ltmain to make .dll files, not .so files. ! shrext_cmds=".dll" ! # FIXME: Setting linknames here is a bad hack. ! _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ! _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ! sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ! else ! sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ! fi~ ! $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ! linknames=' ! # The linker will not automatically build a static lib if we build a DLL. ! # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' ! _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ! _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' ! # Don't use ranlib ! _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' ! _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ ! lt_tool_outputfile="@TOOL_OUTPUT@"~ ! case $lt_outputfile in ! *.exe|*.EXE) ;; ! *) ! lt_outputfile="$lt_outputfile.exe" ! lt_tool_outputfile="$lt_tool_outputfile.exe" ! ;; ! esac~ ! if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ! $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ! $RM "$lt_outputfile.manifest"; ! fi' ! ;; ! *) ! # Assume MSVC wrapper ! _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' ! _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ! # Tell ltmain to make .lib files, not .a files. ! libext=lib ! # Tell ltmain to make .dll files, not .so files. ! shrext_cmds=".dll" ! # FIXME: Setting linknames here is a bad hack. ! _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ! # The linker will automatically build a .lib file if we build a DLL. ! _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' ! # FIXME: Should let the user specify the lib program. ! _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' ! _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ! ;; ! esac ;; darwin* | rhapsody*) *************** *** 4749,4755 **** # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no --- 5155,5161 ---- # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no *************** *** 4757,4763 **** hpux9*) if test "$GCC" = yes; then ! _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi --- 5163,5169 ---- hpux9*) if test "$GCC" = yes; then ! _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi *************** *** 4772,4779 **** ;; hpux10*) ! if test "$GCC" = yes -a "$with_gnu_ld" = no; then ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi --- 5178,5185 ---- ;; hpux10*) ! if test "$GCC" = yes && test "$with_gnu_ld" = no; then ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi *************** *** 4791,4806 **** ;; hpux11*) ! if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else --- 5197,5212 ---- ;; hpux11*) ! if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else *************** *** 4812,4818 **** _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) ! _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi --- 5218,5231 ---- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) ! m4_if($1, [], [ ! # Older versions of the 11.00 compiler do not understand -b yet ! # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) ! _LT_LINKER_OPTION([if $CC understands -b], ! _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], ! [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], ! [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], ! [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi *************** *** 4840,4858 **** irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. ! save_LDFLAGS="$LDFLAGS" ! LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ! AC_LINK_IFELSE(int foo(void) {}, ! _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ! ) ! LDFLAGS="$save_LDFLAGS" else ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ! _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' --- 5253,5286 ---- irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. ! # This should be the same for all languages, so no per-tag cache variable. ! AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], ! [lt_cv_irix_exported_symbol], ! [save_LDFLAGS="$LDFLAGS" ! LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ! AC_LINK_IFELSE( ! [AC_LANG_SOURCE( ! [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], ! [C++], [[int foo (void) { return 0; }]], ! [Fortran 77], [[ ! subroutine foo ! end]], ! [Fortran], [[ ! subroutine foo ! end]])])], ! [lt_cv_irix_exported_symbol=yes], ! [lt_cv_irix_exported_symbol=no]) ! LDFLAGS="$save_LDFLAGS"]) ! if test "$lt_cv_irix_exported_symbol" = yes; then ! _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ! fi else ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' ! _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' *************** *** 4914,4930 **** _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ! _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' --- 5342,5358 ---- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ! _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' *************** *** 4934,4946 **** osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ ! $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' --- 5362,5374 ---- osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ ! $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' *************** *** 4953,4961 **** _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ! $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) --- 5381,5389 ---- _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ! $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) *************** *** 5131,5166 **** # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. ! AC_MSG_CHECKING([whether -lc should be explicitly linked in]) ! $RM conftest* ! echo "$lt_simple_compile_test_code" > conftest.$ac_ext ! ! if AC_TRY_EVAL(ac_compile) 2>conftest.err; then ! soname=conftest ! lib=conftest ! libobjs=conftest.$ac_objext ! deplibs= ! wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) ! pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) ! compiler_flags=-v ! linker_flags=-v ! verstring= ! output_objdir=. ! libname=conftest ! lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) ! _LT_TAGVAR(allow_undefined_flag, $1)= ! if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) ! then ! _LT_TAGVAR(archive_cmds_need_lc, $1)=no ! else ! _LT_TAGVAR(archive_cmds_need_lc, $1)=yes ! fi ! _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag ! else ! cat conftest.err 1>&5 ! fi ! $RM conftest* ! AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi --- 5559,5596 ---- # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. ! AC_CACHE_CHECK([whether -lc should be explicitly linked in], ! [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), ! [$RM conftest* ! echo "$lt_simple_compile_test_code" > conftest.$ac_ext ! ! if AC_TRY_EVAL(ac_compile) 2>conftest.err; then ! soname=conftest ! lib=conftest ! libobjs=conftest.$ac_objext ! deplibs= ! wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) ! pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) ! compiler_flags=-v ! linker_flags=-v ! verstring= ! output_objdir=. ! libname=conftest ! lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) ! _LT_TAGVAR(allow_undefined_flag, $1)= ! if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) ! then ! lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no ! else ! lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes ! fi ! _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag ! else ! cat conftest.err 1>&5 ! fi ! $RM conftest* ! ]) ! _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi *************** *** 5225,5232 **** to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) - _LT_TAGDECL([], [fix_srcfile_path], [1], - [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], --- 5655,5660 ---- *************** *** 5237,5242 **** --- 5665,5672 ---- [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) + _LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented *************** *** 5330,5366 **** ])# _LT_LANG_C_CONFIG - # _LT_PROG_CXX - # ------------ - # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ - # compiler, we have our own version here. - m4_defun([_LT_PROG_CXX], - [ - pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) - AC_PROG_CXX - if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - AC_PROG_CXXCPP - else - _lt_caught_CXX_error=yes - fi - popdef([AC_MSG_ERROR]) - ])# _LT_PROG_CXX - - dnl aclocal-1.4 backwards compatibility: - dnl AC_DEFUN([_LT_PROG_CXX], []) - - # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], ! [AC_REQUIRE([_LT_PROG_CXX])dnl ! m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no --- 5760,5781 ---- ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], ! [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl + m4_require([_LT_PATH_MANIFEST_TOOL])dnl + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP + else + _lt_caught_CXX_error=yes + fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no *************** *** 5382,5387 **** --- 5797,5804 ---- _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds + _LT_TAGVAR(reload_flag, $1)=$reload_flag + _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no *************** *** 5413,5418 **** --- 5830,5836 ---- # Allow CC to be a program name with arguments. lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX *************** *** 5430,5435 **** --- 5848,5854 ---- fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) *************** *** 5451,5458 **** # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' ! _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' --- 5870,5877 ---- # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then ! _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' ! _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' *************** *** 5484,5490 **** # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. ! output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no --- 5903,5909 ---- # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. ! output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no *************** *** 5593,5602 **** _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. ! _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" ! _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' --- 6012,6021 ---- _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. ! _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" ! _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' *************** *** 5605,5618 **** else # Determine the default libpath from the value encoded in an # empty executable. ! _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' ! # Exported symbols can be pulled into shared objects from archives ! _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. --- 6024,6042 ---- else # Determine the default libpath from the value encoded in an # empty executable. ! _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' ! if test "$with_gnu_ld" = yes; then ! # We only use this code for GNU lds that support --whole-archive. ! _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ! else ! # Exported symbols can be pulled into shared objects from archives ! _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' ! fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. *************** *** 5642,5669 **** ;; cygwin* | mingw* | pw32* | cegcc*) ! # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, ! # as there is no search path for DLLs. ! _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ! _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ! _LT_TAGVAR(always_export_symbols, $1)=no ! _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ! ! if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ! # If the export-symbols file already is a .def file (1st line ! # is EXPORTS), use it as is; otherwise, prepend... ! _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ! cp $export_symbols $output_objdir/$soname.def; ! else ! echo EXPORTS > $output_objdir/$soname.def; ! cat $export_symbols >> $output_objdir/$soname.def; ! fi~ ! $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ! else ! _LT_TAGVAR(ld_shlibs, $1)=no ! fi ! ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; --- 6066,6140 ---- ;; cygwin* | mingw* | pw32* | cegcc*) ! case $GXX,$cc_basename in ! ,cl* | no,cl*) ! # Native MSVC ! # hardcode_libdir_flag_spec is actually meaningless, as there is ! # no search path for DLLs. ! _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' ! _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ! _LT_TAGVAR(always_export_symbols, $1)=yes ! _LT_TAGVAR(file_list_spec, $1)='@' ! # Tell ltmain to make .lib files, not .a files. ! libext=lib ! # Tell ltmain to make .dll files, not .so files. ! shrext_cmds=".dll" ! # FIXME: Setting linknames here is a bad hack. ! _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ! _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ! $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ! else ! $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ! fi~ ! $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ! linknames=' ! # The linker will not automatically build a static lib if we build a DLL. ! # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' ! _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ! # Don't use ranlib ! _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' ! _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ ! lt_tool_outputfile="@TOOL_OUTPUT@"~ ! case $lt_outputfile in ! *.exe|*.EXE) ;; ! *) ! lt_outputfile="$lt_outputfile.exe" ! lt_tool_outputfile="$lt_tool_outputfile.exe" ! ;; ! esac~ ! func_to_tool_file "$lt_outputfile"~ ! if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ! $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ! $RM "$lt_outputfile.manifest"; ! fi' ! ;; ! *) ! # g++ ! # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, ! # as there is no search path for DLLs. ! _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ! _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' ! _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ! _LT_TAGVAR(always_export_symbols, $1)=no ! _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ! ! if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ! # If the export-symbols file already is a .def file (1st line ! # is EXPORTS), use it as is; otherwise, prepend... ! _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ! cp $export_symbols $output_objdir/$soname.def; ! else ! echo EXPORTS > $output_objdir/$soname.def; ! cat $export_symbols >> $output_objdir/$soname.def; ! fi~ ! $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ! else ! _LT_TAGVAR(ld_shlibs, $1)=no ! fi ! ;; ! esac ! ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; *************** *** 5705,5710 **** --- 6176,6186 ---- gnu*) ;; + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: *************** *** 5729,5739 **** # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then ! _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no --- 6205,6215 ---- # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then ! _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no *************** *** 5794,5800 **** # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then --- 6270,6276 ---- # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then *************** *** 5804,5813 **** _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi --- 6280,6289 ---- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi *************** *** 5837,5843 **** case $cc_basename in CC*) # SGI C++ ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is --- 6313,6319 ---- case $cc_basename in CC*) # SGI C++ ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is *************** *** 5848,5856 **** *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes --- 6324,6332 ---- *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes *************** *** 5879,5885 **** # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' --- 6355,6361 ---- # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' *************** *** 5916,5941 **** pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in ! *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ ! compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ ! $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ ! $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ ! $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; ! *) # Version 6 will use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; --- 6392,6417 ---- pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in ! *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ ! compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ ! $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ ! $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ ! $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; ! *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *************** *** 5943,5949 **** _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' ! _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ --- 6419,6425 ---- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' ! _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ *************** *** 5962,5970 **** # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; ! xl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' --- 6438,6446 ---- # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; ! xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' *************** *** 5984,5996 **** _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ! _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. ! output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is --- 6460,6472 ---- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ! _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. ! output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is *************** *** 6059,6065 **** _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi ! output_verbose_link_cmd=echo else _LT_TAGVAR(ld_shlibs, $1)=no fi --- 6535,6541 ---- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi ! output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi *************** *** 6094,6108 **** case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ ! $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; --- 6570,6584 ---- case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ ! $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; *************** *** 6118,6134 **** # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac --- 6594,6610 ---- # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. ! output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac *************** *** 6138,6144 **** # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. ! output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support --- 6614,6620 ---- # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. ! output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support *************** *** 6174,6180 **** solaris*) case $cc_basename in ! CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' --- 6650,6656 ---- solaris*) case $cc_basename in ! CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' *************** *** 6195,6201 **** esac _LT_TAGVAR(link_all_deplibs, $1)=yes ! output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is --- 6671,6677 ---- esac _LT_TAGVAR(link_all_deplibs, $1)=yes ! output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is *************** *** 6215,6228 **** if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ! $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. ! output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. --- 6691,6704 ---- if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then ! _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ! $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. ! output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. *************** *** 6233,6239 **** # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. ! output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' --- 6709,6715 ---- # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. ! output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' *************** *** 6287,6292 **** --- 6763,6772 ---- CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' *************** *** 6342,6347 **** --- 6822,6828 ---- fi # test -n "$compiler" CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC *************** *** 6356,6361 **** --- 6837,6865 ---- ])# _LT_LANG_CXX_CONFIG + # _LT_FUNC_STRIPNAME_CNF + # ---------------------- + # func_stripname_cnf prefix suffix name + # strip PREFIX and SUFFIX off of NAME. + # PREFIX and SUFFIX must not contain globbing or regex special + # characters, hashes, percent signs, but SUFFIX may contain a leading + # dot (in which case that matches only a dot). + # + # This function is identical to the (non-XSI) version of func_stripname, + # except this one can be used by m4 code that may be executed by configure, + # rather than the libtool script. + m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl + AC_REQUIRE([_LT_DECL_SED]) + AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) + func_stripname_cnf () + { + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac + } # func_stripname_cnf + ])# _LT_FUNC_STRIPNAME_CNF + # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose *************** *** 6364,6369 **** --- 6868,6874 ---- # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl + AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= *************** *** 6414,6419 **** --- 6919,6931 ---- }; _LT_EOF ]) + + _lt_libdeps_save_CFLAGS=$CFLAGS + case "$CC $CFLAGS " in #( + *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; + *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; + esac + dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then *************** *** 6425,6431 **** pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do ! case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. --- 6937,6943 ---- pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do ! case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. *************** *** 6434,6446 **** test $p = "-R"; then prev=$p continue - else - prev= fi if test "$pre_test_object_deps_done" = no; then ! case $p in ! -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. --- 6946,6967 ---- test $p = "-R"; then prev=$p continue fi + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac if test "$pre_test_object_deps_done" = no; then ! case ${prev} in ! -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. *************** *** 6460,6467 **** --- 6981,6990 ---- _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi + prev= ;; + *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. *************** *** 6497,6502 **** --- 7020,7026 ---- fi $RM -f confest.$objext + CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], *************** *** 6533,6539 **** solaris*) case $cc_basename in ! CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as --- 7057,7063 ---- solaris*) case $cc_basename in ! CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as *************** *** 6577,6608 **** ])# _LT_SYS_HIDDEN_LIBDEPS - # _LT_PROG_F77 - # ------------ - # Since AC_PROG_F77 is broken, in that it returns the empty string - # if there is no fortran compiler, we have our own version here. - m4_defun([_LT_PROG_F77], - [ - pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) - AC_PROG_F77 - if test -z "$F77" || test "X$F77" = "Xno"; then - _lt_disable_F77=yes - fi - popdef([AC_MSG_ERROR]) - ])# _LT_PROG_F77 - - dnl aclocal-1.4 backwards compatibility: - dnl AC_DEFUN([_LT_PROG_F77], []) - - # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], ! [AC_REQUIRE([_LT_PROG_F77])dnl ! AC_LANG_PUSH(Fortran 77) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= --- 7101,7116 ---- ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], ! [AC_LANG_PUSH(Fortran 77) ! if test -z "$F77" || test "X$F77" = "Xno"; then ! _lt_disable_F77=yes ! fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= *************** *** 6621,6626 **** --- 7129,7136 ---- _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds + _LT_TAGVAR(reload_flag, $1)=$reload_flag + _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no *************** *** 6660,6666 **** --- 7170,7178 ---- # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} + CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) *************** *** 6714,6751 **** GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG - # _LT_PROG_FC - # ----------- - # Since AC_PROG_FC is broken, in that it returns the empty string - # if there is no fortran compiler, we have our own version here. - m4_defun([_LT_PROG_FC], - [ - pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) - AC_PROG_FC - if test -z "$FC" || test "X$FC" = "Xno"; then - _lt_disable_FC=yes - fi - popdef([AC_MSG_ERROR]) - ])# _LT_PROG_FC - - dnl aclocal-1.4 backwards compatibility: - dnl AC_DEFUN([_LT_PROG_FC], []) - - # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], ! [AC_REQUIRE([_LT_PROG_FC])dnl ! AC_LANG_PUSH(Fortran) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= --- 7226,7249 ---- GCC=$lt_save_GCC CC="$lt_save_CC" + CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], ! [AC_LANG_PUSH(Fortran) ! ! if test -z "$FC" || test "X$FC" = "Xno"; then ! _lt_disable_FC=yes ! fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= *************** *** 6764,6769 **** --- 7262,7269 ---- _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds + _LT_TAGVAR(reload_flag, $1)=$reload_flag + _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no *************** *** 6803,6809 **** --- 7303,7311 ---- # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} + CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu *************** *** 6859,6865 **** fi # test -n "$compiler" GCC=$lt_save_GCC ! CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes AC_LANG_POP --- 7361,7368 ---- fi # test -n "$compiler" GCC=$lt_save_GCC ! CC=$lt_save_CC ! CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP *************** *** 6896,6905 **** _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. ! lt_save_CC="$CC" lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" --- 7399,7410 ---- _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. ! lt_save_CC=$CC ! lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} + CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" *************** *** 6909,6914 **** --- 7414,7421 ---- _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds + _LT_TAGVAR(reload_flag, $1)=$reload_flag + _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change *************** *** 6928,6934 **** AC_LANG_RESTORE GCC=$lt_save_GCC ! CC="$lt_save_CC" ])# _LT_LANG_GCJ_CONFIG --- 7435,7442 ---- AC_LANG_RESTORE GCC=$lt_save_GCC ! CC=$lt_save_CC ! CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG *************** *** 6963,6971 **** --- 7471,7481 ---- # Allow CC to be a program name with arguments. lt_save_CC="$CC" + lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} + CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) *************** *** 6978,6984 **** GCC=$lt_save_GCC AC_LANG_RESTORE ! CC="$lt_save_CC" ])# _LT_LANG_RC_CONFIG --- 7488,7495 ---- GCC=$lt_save_GCC AC_LANG_RESTORE ! CC=$lt_save_CC ! CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG *************** *** 7037,7042 **** --- 7548,7562 ---- AC_SUBST([OBJDUMP]) ]) + # _LT_DECL_DLLTOOL + # ---------------- + # Ensure DLLTOOL variable is set. + m4_defun([_LT_DECL_DLLTOOL], + [AC_CHECK_TOOL(DLLTOOL, dlltool, false) + test -z "$DLLTOOL" && DLLTOOL=dlltool + _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) + AC_SUBST([DLLTOOL]) + ]) # _LT_DECL_SED # ------------ *************** *** 7130,7137 **** # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" ! test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ ! = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes --- 7650,7657 ---- # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" ! test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ ! = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes *************** *** 7170,7377 **** ])# _LT_CHECK_SHELL_FEATURES ! # _LT_PROG_XSI_SHELLFNS ! # --------------------- ! # Bourne and XSI compatible variants of some useful shell functions. ! m4_defun([_LT_PROG_XSI_SHELLFNS], ! [case $xsi_shell in ! yes) ! cat << \_LT_EOF >> "$cfgfile" ! ! # func_dirname file append nondir_replacement ! # Compute the dirname of FILE. If nonempty, add APPEND to the result, ! # otherwise set result to NONDIR_REPLACEMENT. ! func_dirname () ! { ! case ${1} in ! */*) func_dirname_result="${1%/*}${2}" ;; ! * ) func_dirname_result="${3}" ;; ! esac ! } ! ! # func_basename file ! func_basename () ! { ! func_basename_result="${1##*/}" ! } ! ! # func_dirname_and_basename file append nondir_replacement ! # perform func_basename and func_dirname in a single function ! # call: ! # dirname: Compute the dirname of FILE. If nonempty, ! # add APPEND to the result, otherwise set result ! # to NONDIR_REPLACEMENT. ! # value returned in "$func_dirname_result" ! # basename: Compute filename of FILE. ! # value retuned in "$func_basename_result" ! # Implementation must be kept synchronized with func_dirname ! # and func_basename. For efficiency, we do not delegate to ! # those functions but instead duplicate the functionality here. ! func_dirname_and_basename () ! { ! case ${1} in ! */*) func_dirname_result="${1%/*}${2}" ;; ! * ) func_dirname_result="${3}" ;; ! esac ! func_basename_result="${1##*/}" ! } ! ! # func_stripname prefix suffix name ! # strip PREFIX and SUFFIX off of NAME. ! # PREFIX and SUFFIX must not contain globbing or regex special ! # characters, hashes, percent signs, but SUFFIX may contain a leading ! # dot (in which case that matches only a dot). ! func_stripname () ! { ! # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are ! # positional parameters, so assign one to ordinary parameter first. ! func_stripname_result=${3} ! func_stripname_result=${func_stripname_result#"${1}"} ! func_stripname_result=${func_stripname_result%"${2}"} ! } ! ! # func_opt_split ! func_opt_split () ! { ! func_opt_split_opt=${1%%=*} ! func_opt_split_arg=${1#*=} ! } ! ! # func_lo2o object ! func_lo2o () ! { ! case ${1} in ! *.lo) func_lo2o_result=${1%.lo}.${objext} ;; ! *) func_lo2o_result=${1} ;; ! esac ! } ! ! # func_xform libobj-or-source ! func_xform () ! { ! func_xform_result=${1%.*}.lo ! } - # func_arith arithmetic-term... - func_arith () - { - func_arith_result=$(( $[*] )) - } ! # func_len string ! # STRING may not start with a hyphen. ! func_len () ! { ! func_len_result=${#1} ! } ! _LT_EOF ! ;; ! *) # Bourne compatible functions. ! cat << \_LT_EOF >> "$cfgfile" ! # func_dirname file append nondir_replacement ! # Compute the dirname of FILE. If nonempty, add APPEND to the result, ! # otherwise set result to NONDIR_REPLACEMENT. ! func_dirname () ! { ! # Extract subdirectory from the argument. ! func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` ! if test "X$func_dirname_result" = "X${1}"; then ! func_dirname_result="${3}" ! else ! func_dirname_result="$func_dirname_result${2}" ! fi ! } ! # func_basename file ! func_basename () ! { ! func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` ! } ! dnl func_dirname_and_basename ! dnl A portable version of this function is already defined in general.m4sh ! dnl so there is no need for it here. ! # func_stripname prefix suffix name ! # strip PREFIX and SUFFIX off of NAME. ! # PREFIX and SUFFIX must not contain globbing or regex special ! # characters, hashes, percent signs, but SUFFIX may contain a leading ! # dot (in which case that matches only a dot). ! # func_strip_suffix prefix name ! func_stripname () ! { ! case ${2} in ! .*) func_stripname_result=`$ECHO "X${3}" \ ! | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; ! *) func_stripname_result=`$ECHO "X${3}" \ ! | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; ! esac ! } ! # sed scripts: ! my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' ! my_sed_long_arg='1s/^-[[^=]]*=//' ! # func_opt_split ! func_opt_split () ! { ! func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` ! func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` ! } ! ! # func_lo2o object ! func_lo2o () ! { ! func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` ! } ! # func_xform libobj-or-source ! func_xform () ! { ! func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` ! } ! # func_arith arithmetic-term... ! func_arith () ! { ! func_arith_result=`expr "$[@]"` ! } ! # func_len string ! # STRING may not start with a hyphen. ! func_len () ! { ! func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` ! } ! _LT_EOF ! esac ! case $lt_shell_append in ! yes) ! cat << \_LT_EOF >> "$cfgfile" ! ! # func_append var value ! # Append VALUE to the end of shell variable VAR. ! func_append () ! { ! eval "$[1]+=\$[2]" ! } ! _LT_EOF ;; ! *) ! cat << \_LT_EOF >> "$cfgfile" ! ! # func_append var value ! # Append VALUE to the end of shell variable VAR. ! func_append () ! { ! eval "$[1]=\$$[1]\$[2]" ! } ! ! _LT_EOF ;; ! esac ]) --- 7690,7851 ---- ])# _LT_CHECK_SHELL_FEATURES ! # _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) ! # ------------------------------------------------------ ! # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and ! # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. ! m4_defun([_LT_PROG_FUNCTION_REPLACE], ! [dnl { ! sed -e '/^$1 ()$/,/^} # $1 /c\ ! $1 ()\ ! {\ ! m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) ! } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ ! && mv -f "$cfgfile.tmp" "$cfgfile" \ ! || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ! test 0 -eq $? || _lt_function_replace_fail=: ! ]) ! # _LT_PROG_REPLACE_SHELLFNS ! # ------------------------- ! # Replace existing portable implementations of several shell functions with ! # equivalent extended shell implementations where those features are available.. ! m4_defun([_LT_PROG_REPLACE_SHELLFNS], ! [if test x"$xsi_shell" = xyes; then ! _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl ! case ${1} in ! */*) func_dirname_result="${1%/*}${2}" ;; ! * ) func_dirname_result="${3}" ;; ! esac]) ! ! _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl ! func_basename_result="${1##*/}"]) ! ! _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl ! case ${1} in ! */*) func_dirname_result="${1%/*}${2}" ;; ! * ) func_dirname_result="${3}" ;; ! esac ! func_basename_result="${1##*/}"]) ! _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl ! # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are ! # positional parameters, so assign one to ordinary parameter first. ! func_stripname_result=${3} ! func_stripname_result=${func_stripname_result#"${1}"} ! func_stripname_result=${func_stripname_result%"${2}"}]) ! _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl ! func_split_long_opt_name=${1%%=*} ! func_split_long_opt_arg=${1#*=}]) ! _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl ! func_split_short_opt_arg=${1#??} ! func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) ! _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl ! case ${1} in ! *.lo) func_lo2o_result=${1%.lo}.${objext} ;; ! *) func_lo2o_result=${1} ;; ! esac]) ! _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) ! _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) ! _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) ! fi ! if test x"$lt_shell_append" = xyes; then ! _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) ! _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl ! func_quote_for_eval "${2}" ! dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ ! eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) ! # Save a `func_append' function call where possible by direct use of '+=' ! sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ ! && mv -f "$cfgfile.tmp" "$cfgfile" \ ! || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ! test 0 -eq $? || _lt_function_replace_fail=: ! else ! # Save a `func_append' function call even when '+=' is not available ! sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ ! && mv -f "$cfgfile.tmp" "$cfgfile" \ ! || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ! test 0 -eq $? || _lt_function_replace_fail=: ! fi ! if test x"$_lt_function_replace_fail" = x":"; then ! AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) ! fi ! ]) ! # _LT_PATH_CONVERSION_FUNCTIONS ! # ----------------------------- ! # Determine which file name conversion functions should be used by ! # func_to_host_file (and, implicitly, by func_to_host_path). These are needed ! # for certain cross-compile configurations and native mingw. ! m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], ! [AC_REQUIRE([AC_CANONICAL_HOST])dnl ! AC_REQUIRE([AC_CANONICAL_BUILD])dnl ! AC_MSG_CHECKING([how to convert $build file names to $host format]) ! AC_CACHE_VAL(lt_cv_to_host_file_cmd, ! [case $host in ! *-*-mingw* ) ! case $build in ! *-*-mingw* ) # actually msys ! lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ! ;; ! *-*-cygwin* ) ! lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ! ;; ! * ) # otherwise, assume *nix ! lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ! ;; ! esac ;; ! *-*-cygwin* ) ! case $build in ! *-*-mingw* ) # actually msys ! lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ! ;; ! *-*-cygwin* ) ! lt_cv_to_host_file_cmd=func_convert_file_noop ! ;; ! * ) # otherwise, assume *nix ! lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ! ;; ! esac ;; ! * ) # unhandled hosts (and "normal" native builds) ! lt_cv_to_host_file_cmd=func_convert_file_noop ! ;; ! esac ! ]) ! to_host_file_cmd=$lt_cv_to_host_file_cmd ! AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) ! _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], ! [0], [convert $build file names to $host format])dnl ! ! AC_MSG_CHECKING([how to convert $build file names to toolchain format]) ! AC_CACHE_VAL(lt_cv_to_tool_file_cmd, ! [#assume ordinary cross tools, or native build. ! lt_cv_to_tool_file_cmd=func_convert_file_noop ! case $host in ! *-*-mingw* ) ! case $build in ! *-*-mingw* ) # actually msys ! lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ! ;; ! esac ! ;; ! esac ]) + to_tool_file_cmd=$lt_cv_to_tool_file_cmd + AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) + _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl + ])# _LT_PATH_CONVERSION_FUNCTIONS diff -cNr octave-3.4.0/m4/locale-fr.m4 octave-3.4.1/m4/locale-fr.m4 *** octave-3.4.0/m4/locale-fr.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/locale-fr.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # locale-fr.m4 serial 12 dnl Copyright (C) 2003, 2005-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # locale-fr.m4 serial 13 dnl Copyright (C) 2003, 2005-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 25,31 **** --- 25,41 ---- char buf[16]; int main () { /* Check whether the given locale name is recognized by the system. */ + #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ + /* On native Win32, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; + #else if (setlocale (LC_ALL, "") == NULL) return 1; + #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. *************** *** 62,98 **** changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the usual locale name. ! if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr_FR ! else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr_FR.ISO-8859-1 ! else ! # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. ! if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr_FR.ISO8859-1 else ! # Test for the HP-UX locale name. ! if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr_FR.iso88591 else ! # Test for the Solaris 7 locale name. ! if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr else ! # None found. ! gt_cv_locale_fr=none fi fi fi ! fi ! fi fi rm -fr conftest* ]) --- 72,127 ---- changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then ! case "$host_os" in ! # Handle native Windows specially, because there setlocale() interprets ! # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", ! # "fr" or "fra" as "French" or "French_France.1252", ! # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", ! # "ja" as "Japanese" or "Japanese_Japan.932", ! # and similar. ! mingw*) ! # Test for the native Win32 locale name. ! if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=French_France.1252 ! else ! # None found. ! gt_cv_locale_fr=none ! fi ! ;; ! *) ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the usual locale name. ! if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr_FR else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr_FR.ISO-8859-1 else ! # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. ! if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr_FR.ISO8859-1 else ! # Test for the HP-UX locale name. ! if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr_FR.iso88591 ! else ! # Test for the Solaris 7 locale name. ! if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr ! else ! # None found. ! gt_cv_locale_fr=none ! fi ! fi fi fi fi ! ;; ! esac fi rm -fr conftest* ]) *************** *** 122,128 **** --- 151,167 ---- variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ + # if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ + /* On native Win32, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; + # else if (setlocale (LC_ALL, "") == NULL) return 1; + # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. *************** *** 159,185 **** changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the usual locale name. ! if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr_utf8=fr_FR ! else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr_utf8=fr_FR.UTF-8 ! else ! # Test for the Solaris 7 locale name. ! if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr_utf8=fr.UTF-8 else # None found. gt_cv_locale_fr_utf8=none fi ! fi ! fi fi rm -fr conftest* ]) --- 198,243 ---- changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then ! case "$host_os" in ! # Handle native Windows specially, because there setlocale() interprets ! # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", ! # "fr" or "fra" as "French" or "French_France.1252", ! # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", ! # "ja" as "Japanese" or "Japanese_Japan.932", ! # and similar. ! mingw*) ! # Test for the hypothetical native Win32 locale name. ! if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr_utf8=French_France.65001 else # None found. gt_cv_locale_fr_utf8=none fi ! ;; ! *) ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the usual locale name. ! if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr_utf8=fr_FR ! else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr_utf8=fr_FR.UTF-8 ! else ! # Test for the Solaris 7 locale name. ! if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr_utf8=fr.UTF-8 ! else ! # None found. ! gt_cv_locale_fr_utf8=none ! fi ! fi ! fi ! ;; ! esac fi rm -fr conftest* ]) diff -cNr octave-3.4.0/m4/locale-ja.m4 octave-3.4.1/m4/locale-ja.m4 *** octave-3.4.0/m4/locale-ja.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/locale-ja.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # locale-ja.m4 serial 8 dnl Copyright (C) 2003, 2005-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # locale-ja.m4 serial 9 dnl Copyright (C) 2003, 2005-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 27,33 **** --- 27,43 ---- { const char *p; /* Check whether the given locale name is recognized by the system. */ + #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ + /* On native Win32, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; + #else if (setlocale (LC_ALL, "") == NULL) return 1; + #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. *************** *** 66,107 **** changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the AIX locale name. ! if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP ! else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP.EUC-JP ! else ! # Test for the HP-UX, OSF/1, NetBSD locale name. ! if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP.eucJP else ! # Test for the IRIX, FreeBSD locale name. ! if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP.EUC else ! # Test for the Solaris 7 locale name. ! if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja else ! # Special test for NetBSD 1.6. ! if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then ! gt_cv_locale_ja=ja_JP.eucJP else ! # None found. ! gt_cv_locale_ja=none fi fi fi fi ! fi ! fi fi rm -fr conftest* ]) --- 76,132 ---- changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then ! case "$host_os" in ! # Handle native Windows specially, because there setlocale() interprets ! # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", ! # "fr" or "fra" as "French" or "French_France.1252", ! # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", ! # "ja" as "Japanese" or "Japanese_Japan.932", ! # and similar. ! mingw*) ! # Note that on native Win32, the Japanese locale is Japanese_Japan.932, ! # and CP932 is very different from EUC-JP, so we cannot use it here. ! gt_cv_locale_ja=none ! ;; ! *) ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the AIX locale name. ! if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP.EUC-JP else ! # Test for the HP-UX, OSF/1, NetBSD locale name. ! if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP.eucJP else ! # Test for the IRIX, FreeBSD locale name. ! if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP.EUC else ! # Test for the Solaris 7 locale name. ! if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja ! else ! # Special test for NetBSD 1.6. ! if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then ! gt_cv_locale_ja=ja_JP.eucJP ! else ! # None found. ! gt_cv_locale_ja=none ! fi ! fi fi fi fi fi ! ;; ! esac fi rm -fr conftest* ]) diff -cNr octave-3.4.0/m4/locale-zh.m4 octave-3.4.1/m4/locale-zh.m4 *** octave-3.4.0/m4/locale-zh.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/locale-zh.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # locale-zh.m4 serial 7 dnl Copyright (C) 2003, 2005-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # locale-zh.m4 serial 9 dnl Copyright (C) 2003, 2005-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 28,34 **** --- 28,44 ---- { const char *p; /* Check whether the given locale name is recognized by the system. */ + #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ + /* On native Win32, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; + #else if (setlocale (LC_ALL, "") == NULL) return 1; + #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. *************** *** 67,88 **** changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the locale name without encoding suffix. ! if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_zh_CN=zh_CN ! else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_zh_CN=zh_CN.GB18030 ! else ! # None found. gt_cv_locale_zh_CN=none ! fi ! fi else # If there was a link error, due to mblen(), the system is so old that # it certainly doesn't have a chinese locale. --- 77,123 ---- changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then ! case "$host_os" in ! # Handle native Windows specially, because there setlocale() interprets ! # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", ! # "fr" or "fra" as "French" or "French_France.1252", ! # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", ! # "ja" as "Japanese" or "Japanese_Japan.932", ! # and similar. ! mingw*) ! # Test for the hypothetical native Win32 locale name. ! if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_zh_CN=Chinese_China.54936 ! else ! # None found. ! gt_cv_locale_zh_CN=none ! fi ! ;; ! solaris2.8) ! # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are ! # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. ! # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. gt_cv_locale_zh_CN=none ! ;; ! *) ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the locale name without encoding suffix. ! if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_zh_CN=zh_CN ! else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_zh_CN=zh_CN.GB18030 ! else ! # None found. ! gt_cv_locale_zh_CN=none ! fi ! fi ! ;; ! esac else # If there was a link error, due to mblen(), the system is so old that # it certainly doesn't have a chinese locale. diff -cNr octave-3.4.0/m4/longlong.m4 octave-3.4.1/m4/longlong.m4 *** octave-3.4.0/m4/longlong.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/longlong.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # longlong.m4 serial 14 dnl Copyright (C) 1999-2007, 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # longlong.m4 serial 16 dnl Copyright (C) 1999-2007, 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 7,14 **** dnl From Paul Eggert. # Define HAVE_LONG_LONG_INT if 'long long int' works. ! # This fixes a bug in Autoconf 2.61, but can be removed once we ! # assume 2.62 everywhere. # Note: If the type 'long long int' exists but is only 32 bits large # (as on some very old compilers), HAVE_LONG_LONG_INT will not be --- 7,14 ---- dnl From Paul Eggert. # Define HAVE_LONG_LONG_INT if 'long long int' works. ! # This fixes a bug in Autoconf 2.61, and can be faster ! # than what's in Autoconf 2.62 through 2.68. # Note: If the type 'long long int' exists but is only 32 bits large # (as on some very old compilers), HAVE_LONG_LONG_INT will not be *************** *** 16,50 **** AC_DEFUN([AC_TYPE_LONG_LONG_INT], [ AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], ! [AC_LINK_IFELSE( ! [_AC_TYPE_LONG_LONG_SNIPPET], ! [dnl This catches a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004. ! dnl If cross compiling, assume the bug isn't important, since ! dnl nobody cross compiles for this platform as far as we know. ! AC_RUN_IFELSE( ! [AC_LANG_PROGRAM( ! [[@%:@include ! @%:@ifndef LLONG_MAX ! @%:@ define HALF \ ! (1LL << (sizeof (long long int) * CHAR_BIT - 2)) ! @%:@ define LLONG_MAX (HALF - 1 + HALF) ! @%:@endif]], ! [[long long int n = 1; ! int i; ! for (i = 0; ; i++) ! { ! long long int m = n << i; ! if (m >> i != n) ! return 1; ! if (LLONG_MAX / 2 < m) ! break; ! } ! return 0;]])], ! [ac_cv_type_long_long_int=yes], ! [ac_cv_type_long_long_int=no], ! [ac_cv_type_long_long_int=yes])], ! [ac_cv_type_long_long_int=no])]) if test $ac_cv_type_long_long_int = yes; then AC_DEFINE([HAVE_LONG_LONG_INT], [1], [Define to 1 if the system has the type `long long int'.]) --- 16,54 ---- AC_DEFUN([AC_TYPE_LONG_LONG_INT], [ + AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], ! [ac_cv_type_long_long_int=yes ! if test "x${ac_cv_prog_cc_c99-no}" = xno; then ! ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int ! if test $ac_cv_type_long_long_int = yes; then ! dnl Catch a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004. ! dnl If cross compiling, assume the bug is not important, since ! dnl nobody cross compiles for this platform as far as we know. ! AC_RUN_IFELSE( ! [AC_LANG_PROGRAM( ! [[@%:@include ! @%:@ifndef LLONG_MAX ! @%:@ define HALF \ ! (1LL << (sizeof (long long int) * CHAR_BIT - 2)) ! @%:@ define LLONG_MAX (HALF - 1 + HALF) ! @%:@endif]], ! [[long long int n = 1; ! int i; ! for (i = 0; ; i++) ! { ! long long int m = n << i; ! if (m >> i != n) ! return 1; ! if (LLONG_MAX / 2 < m) ! break; ! } ! return 0;]])], ! [], ! [ac_cv_type_long_long_int=no], ! [:]) ! fi ! fi]) if test $ac_cv_type_long_long_int = yes; then AC_DEFINE([HAVE_LONG_LONG_INT], [1], [Define to 1 if the system has the type `long long int'.]) *************** *** 52,59 **** ]) # Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. ! # This fixes a bug in Autoconf 2.61, but can be removed once we ! # assume 2.62 everywhere. # Note: If the type 'unsigned long long int' exists but is only 32 bits # large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT --- 56,63 ---- ]) # Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. ! # This fixes a bug in Autoconf 2.61, and can be faster ! # than what's in Autoconf 2.62 through 2.68. # Note: If the type 'unsigned long long int' exists but is only 32 bits # large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT *************** *** 64,73 **** [ AC_CACHE_CHECK([for unsigned long long int], [ac_cv_type_unsigned_long_long_int], ! [AC_LINK_IFELSE( ! [_AC_TYPE_LONG_LONG_SNIPPET], ! [ac_cv_type_unsigned_long_long_int=yes], ! [ac_cv_type_unsigned_long_long_int=no])]) if test $ac_cv_type_unsigned_long_long_int = yes; then AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1], [Define to 1 if the system has the type `unsigned long long int'.]) --- 68,80 ---- [ AC_CACHE_CHECK([for unsigned long long int], [ac_cv_type_unsigned_long_long_int], ! [ac_cv_type_unsigned_long_long_int=yes ! if test "x${ac_cv_prog_cc_c99-no}" = xno; then ! AC_LINK_IFELSE( ! [_AC_TYPE_LONG_LONG_SNIPPET], ! [], ! [ac_cv_type_unsigned_long_long_int=no]) ! fi]) if test $ac_cv_type_unsigned_long_long_int = yes; then AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1], [Define to 1 if the system has the type `unsigned long long int'.]) diff -cNr octave-3.4.0/m4/lseek.m4 octave-3.4.1/m4/lseek.m4 *** octave-3.4.0/m4/lseek.m4 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/m4/lseek.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 0 **** --- 1,49 ---- + # lseek.m4 serial 6 + dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. + + AC_DEFUN([gl_FUNC_LSEEK], + [ + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + AC_REQUIRE([AC_PROG_CC]) + AC_CACHE_CHECK([whether lseek detects pipes], [gl_cv_func_lseek_pipe], + [if test $cross_compiling = no; then + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + #include /* for off_t */ + #include /* for SEEK_CUR */ + #include ]], [[ + /* Exit with success only if stdin is seekable. */ + return lseek (0, (off_t)0, SEEK_CUR) < 0; + ]])], + [if test -s conftest$ac_exeext \ + && ./conftest$ac_exeext < conftest.$ac_ext \ + && test 1 = "`echo hi \ + | { ./conftest$ac_exeext; echo $?; cat >/dev/null; }`"; then + gl_cv_func_lseek_pipe=yes + else + gl_cv_func_lseek_pipe=no + fi], + [gl_cv_func_lseek_pipe=no]) + else + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + #if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) || defined __BEOS__ + /* mingw and BeOS mistakenly return 0 when trying to seek on pipes. */ + Choke me. + #endif]])], + [gl_cv_func_lseek_pipe=yes], [gl_cv_func_lseek_pipe=no]) + fi]) + if test $gl_cv_func_lseek_pipe = no; then + gl_REPLACE_LSEEK + fi + ]) + + AC_DEFUN([gl_REPLACE_LSEEK], + [ + AC_LIBOBJ([lseek]) + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + REPLACE_LSEEK=1 + AC_DEFINE([LSEEK_PIPE_BROKEN], [1], + [Define to 1 if lseek does not detect pipes.]) + ]) diff -cNr octave-3.4.0/m4/lt~obsolete.m4 octave-3.4.1/m4/lt~obsolete.m4 *** octave-3.4.0/m4/lt~obsolete.m4 2011-02-08 05:03:21.000000000 -0500 --- octave-3.4.1/m4/lt~obsolete.m4 2011-06-15 11:31:10.000000000 -0400 *************** *** 1,13 **** # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # ! # Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # 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. ! # serial 4 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # --- 1,13 ---- # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # ! # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # 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. ! # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # *************** *** 77,83 **** m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) - m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) --- 77,82 ---- *************** *** 90,92 **** --- 89,98 ---- m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) + m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) + m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) + m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) + m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) + m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) + m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) + m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff -cNr octave-3.4.0/m4/ltoptions.m4 octave-3.4.1/m4/ltoptions.m4 *** octave-3.4.0/m4/ltoptions.m4 2011-02-08 05:03:20.000000000 -0500 --- octave-3.4.1/m4/ltoptions.m4 2011-06-15 11:31:10.000000000 -0400 *************** *** 1,13 **** # Helper functions for option handling. -*- Autoconf -*- # ! # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # 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. ! # serial 6 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) --- 1,14 ---- # Helper functions for option handling. -*- Autoconf -*- # ! # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, ! # Inc. # Written by Gary V. Vaughan, 2004 # # 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. ! # serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) *************** *** 125,131 **** [enable_win32_dll=yes case $host in ! *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) --- 126,132 ---- [enable_win32_dll=yes case $host in ! *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) *************** *** 133,145 **** esac test -z "$AS" && AS=as ! _LT_DECL([], [AS], [0], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool ! _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump ! _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], --- 134,146 ---- esac test -z "$AS" && AS=as ! _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool ! _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump ! _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], diff -cNr octave-3.4.0/m4/ltversion.m4 octave-3.4.1/m4/ltversion.m4 *** octave-3.4.0/m4/ltversion.m4 2011-02-08 05:03:21.000000000 -0500 --- octave-3.4.1/m4/ltversion.m4 2011-06-15 11:31:10.000000000 -0400 *************** *** 7,23 **** # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. ! # Generated from ltversion.in. ! # serial 3017 ltversion.m4 # This file is part of GNU Libtool ! m4_define([LT_PACKAGE_VERSION], [2.2.6b]) ! m4_define([LT_PACKAGE_REVISION], [1.3017]) AC_DEFUN([LTVERSION_VERSION], ! [macro_version='2.2.6b' ! macro_revision='1.3017' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) --- 7,23 ---- # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. ! # @configure_input@ ! # serial 3293 ltversion.m4 # This file is part of GNU Libtool ! m4_define([LT_PACKAGE_VERSION], [2.4]) ! m4_define([LT_PACKAGE_REVISION], [1.3293]) AC_DEFUN([LTVERSION_VERSION], ! [macro_version='2.4' ! macro_revision='1.3293' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff -cNr octave-3.4.0/m4/mbrtowc.m4 octave-3.4.1/m4/mbrtowc.m4 *** octave-3.4.0/m4/mbrtowc.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/mbrtowc.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # mbrtowc.m4 serial 21 dnl Copyright (C) 2001-2002, 2004-2005, 2008-2011 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation --- 1,4 ---- ! # mbrtowc.m4 serial 23 dnl Copyright (C) 2001-2002, 2004-2005, 2008-2011 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation *************** *** 54,60 **** fi fi if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then - gl_REPLACE_WCHAR_H AC_LIBOBJ([mbrtowc]) gl_PREREQ_MBRTOWC fi --- 54,59 ---- *************** *** 88,96 **** else REPLACE_MBSTATE_T=1 fi - if test $REPLACE_MBSTATE_T = 1; then - gl_REPLACE_WCHAR_H - fi ]) dnl Test whether mbrtowc puts the state into non-initial state when parsing an --- 87,92 ---- *************** *** 348,354 **** AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([gt_LOCALE_JA]) ! AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc has a correct return value], [gl_cv_func_mbrtowc_retval], [ --- 344,350 ---- AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([gt_LOCALE_JA]) ! AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether mbrtowc has a correct return value], [gl_cv_func_mbrtowc_retval], [ *************** *** 356,368 **** dnl is present. changequote(,)dnl case "$host_os" in ! # Guess no on HP-UX and Solaris. ! hpux* | solaris*) gl_cv_func_mbrtowc_retval="guessing no" ;; ! # Guess yes otherwise. ! *) gl_cv_func_mbrtowc_retval="guessing yes" ;; esac changequote([,])dnl ! if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include --- 352,365 ---- dnl is present. changequote(,)dnl case "$host_os" in ! # Guess no on HP-UX, Solaris, native Windows. ! hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;; ! # Guess yes otherwise. ! *) gl_cv_func_mbrtowc_retval="guessing yes" ;; esac changequote([,])dnl ! if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \ ! || { case "$host_os" in mingw*) true;; *) false;; esac; }; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include *************** *** 378,383 **** --- 375,381 ---- int main () { int result = 0; + int found_some_locale = 0; /* This fails on Solaris. */ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { *************** *** 392,397 **** --- 390,396 ---- if (mbrtowc (&wc, input + 2, 5, &state) != 1) result |= 1; } + found_some_locale = 1; } /* This fails on HP-UX 11.11. */ if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) *************** *** 407,417 **** if (mbrtowc (&wc, input + 2, 5, &state) != 2) result |= 2; } } ! return result; }]])], [gl_cv_func_mbrtowc_retval=yes], ! [gl_cv_func_mbrtowc_retval=no], [:]) fi ]) --- 406,466 ---- if (mbrtowc (&wc, input + 2, 5, &state) != 2) result |= 2; } + found_some_locale = 1; } ! /* This fails on native Windows. */ ! if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) ! { ! char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */ ! mbstate_t state; ! wchar_t wc; ! ! memset (&state, '\0', sizeof (mbstate_t)); ! if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) ! { ! input[3] = '\0'; ! if (mbrtowc (&wc, input + 4, 4, &state) != 1) ! result |= 4; ! } ! found_some_locale = 1; ! } ! if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) ! { ! char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */ ! mbstate_t state; ! wchar_t wc; ! ! memset (&state, '\0', sizeof (mbstate_t)); ! if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) ! { ! input[3] = '\0'; ! if (mbrtowc (&wc, input + 4, 4, &state) != 1) ! result |= 8; ! } ! found_some_locale = 1; ! } ! if (setlocale (LC_ALL, "Chinese_China.936") != NULL) ! { ! char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */ ! mbstate_t state; ! wchar_t wc; ! ! memset (&state, '\0', sizeof (mbstate_t)); ! if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) ! { ! input[3] = '\0'; ! if (mbrtowc (&wc, input + 4, 4, &state) != 1) ! result |= 16; ! } ! found_some_locale = 1; ! } ! return (found_some_locale ? result : 77); }]])], [gl_cv_func_mbrtowc_retval=yes], ! [if test $? != 77; then ! gl_cv_func_mbrtowc_retval=no ! fi ! ], [:]) fi ]) diff -cNr octave-3.4.0/m4/mbsinit.m4 octave-3.4.1/m4/mbsinit.m4 *** octave-3.4.0/m4/mbsinit.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/mbsinit.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # mbsinit.m4 serial 4 dnl Copyright (C) 2008, 2010-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # mbsinit.m4 serial 6 dnl Copyright (C) 2008, 2010-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 7,12 **** --- 7,13 ---- AC_DEFUN([gl_FUNC_MBSINIT], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) gl_MBSTATE_T_BROKEN *************** *** 17,26 **** else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBSINIT=1 fi fi if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then - gl_REPLACE_WCHAR_H AC_LIBOBJ([mbsinit]) gl_PREREQ_MBSINIT fi --- 18,33 ---- else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBSINIT=1 + else + dnl On mingw, mbsinit() always returns 1, which is inappropriate for + dnl states produced by mbrtowc() for an incomplete multibyte character + dnl in multibyte locales. + case "$host_os" in + mingw*) REPLACE_MBSINIT=1 ;; + esac fi fi if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then AC_LIBOBJ([mbsinit]) gl_PREREQ_MBSINIT fi diff -cNr octave-3.4.0/m4/mbsrtowcs.m4 octave-3.4.1/m4/mbsrtowcs.m4 *** octave-3.4.0/m4/mbsrtowcs.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/mbsrtowcs.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # mbsrtowcs.m4 serial 9 dnl Copyright (C) 2008-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # mbsrtowcs.m4 serial 11 dnl Copyright (C) 2008-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 26,32 **** fi fi if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then - gl_REPLACE_WCHAR_H AC_LIBOBJ([mbsrtowcs]) AC_LIBOBJ([mbsrtowcs-state]) gl_PREREQ_MBSRTOWCS --- 26,31 ---- *************** *** 39,44 **** --- 38,44 ---- AC_DEFUN([gl_MBSRTOWCS_WORKS], [ AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([gt_LOCALE_FR]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([gt_LOCALE_JA]) AC_REQUIRE([gt_LOCALE_ZH_CN]) *************** *** 50,62 **** dnl is present. changequote(,)dnl case "$host_os" in ! # Guess no on HP-UX and Solaris. ! hpux* | solaris*) gl_cv_func_mbsrtowcs_works="guessing no" ;; ! # Guess yes otherwise. ! *) gl_cv_func_mbsrtowcs_works="guessing yes" ;; esac changequote([,])dnl ! if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include --- 50,62 ---- dnl is present. changequote(,)dnl case "$host_os" in ! # Guess no on HP-UX, Solaris, mingw. ! hpux* | solaris* | mingw*) gl_cv_func_mbsrtowcs_works="guessing no" ;; ! # Guess yes otherwise. ! *) gl_cv_func_mbsrtowcs_works="guessing yes" ;; esac changequote([,])dnl ! if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include *************** *** 72,77 **** --- 72,90 ---- int main () { int result = 0; + /* Test whether the function supports a NULL destination argument. + This fails on native Windows. */ + if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) + { + const char input[] = "\337er"; + const char *src = input; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbsrtowcs (NULL, &src, 1, &state) != 3 + || src != input) + result |= 1; + } /* Test whether the function works when started with a conversion state in non-initial state. This fails on HP-UX 11.11 and Solaris 10. */ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) *************** *** 85,91 **** { const char *src = input + 2; if (mbsrtowcs (NULL, &src, 10, &state) != 4) ! result |= 1; } } if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) --- 98,104 ---- { const char *src = input + 2; if (mbsrtowcs (NULL, &src, 10, &state) != 4) ! result |= 2; } } if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) *************** *** 99,105 **** { const char *src = input + 4; if (mbsrtowcs (NULL, &src, 10, &state) != 3) ! result |= 2; } } if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) --- 112,118 ---- { const char *src = input + 4; if (mbsrtowcs (NULL, &src, 10, &state) != 3) ! result |= 4; } } if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) *************** *** 113,119 **** { const char *src = input + 2; if (mbsrtowcs (NULL, &src, 10, &state) != 4) ! result |= 4; } } return result; --- 126,132 ---- { const char *src = input + 2; if (mbsrtowcs (NULL, &src, 10, &state) != 4) ! result |= 8; } } return result; diff -cNr octave-3.4.0/m4/memchr.m4 octave-3.4.1/m4/memchr.m4 *** octave-3.4.0/m4/memchr.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/memchr.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # memchr.m4 serial 10 dnl Copyright (C) 2002-2004, 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # memchr.m4 serial 11 dnl Copyright (C) 2002-2004, 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 11,20 **** AC_CHECK_HEADERS_ONCE([sys/mman.h]) AC_CHECK_FUNCS_ONCE([mprotect]) - dnl These days, we assume memchr is present. But just in case... AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) ! AC_CHECK_FUNCS_ONCE([memchr]) ! if test $ac_cv_func_memchr = yes; then # Detect platform-specific bugs in some versions of glibc: # memchr should not dereference anything with length 0 # http://bugzilla.redhat.com/499689 --- 11,26 ---- AC_CHECK_HEADERS_ONCE([sys/mman.h]) AC_CHECK_FUNCS_ONCE([mprotect]) AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) ! m4_ifdef([gl_FUNC_MEMCHR_OBSOLETE], [ ! dnl These days, we assume memchr is present. But if support for old ! dnl platforms is desired: ! AC_CHECK_FUNCS_ONCE([memchr]) ! if test $ac_cv_func_memchr = no; then ! HAVE_MEMCHR=0 ! fi ! ]) ! if test $HAVE_MEMCHR = 1; then # Detect platform-specific bugs in some versions of glibc: # memchr should not dereference anything with length 0 # http://bugzilla.redhat.com/499689 *************** *** 73,80 **** if test "$gl_cv_func_memchr_works" != yes; then REPLACE_MEMCHR=1 fi - else - HAVE_MEMCHR=0 fi if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then AC_LIBOBJ([memchr]) --- 79,84 ---- diff -cNr octave-3.4.0/m4/mkstemp.m4 octave-3.4.1/m4/mkstemp.m4 *** octave-3.4.0/m4/mkstemp.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/mkstemp.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! #serial 19 # Copyright (C) 2001, 2003-2007, 2009-2011 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation --- 1,4 ---- ! #serial 20 # Copyright (C) 2001, 2003-2007, 2009-2011 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation *************** *** 10,15 **** --- 10,17 ---- # Other systems lack mkstemp altogether. # On OSF1/Tru64 V4.0F, the system-provided mkstemp function can create # only 32 files per process. + # On some hosts, mkstemp creates files with mode 0666, which is a security + # problem and a violation of POSIX 2008. # On systems like the above, arrange to use the replacement function. AC_DEFUN([gl_FUNC_MKSTEMP], [ *************** *** 30,35 **** --- 32,38 ---- off_t large = (off_t) 4294967295u; if (large < 0) large = 2147483647; + umask (0); for (i = 0; i < 70; i++) { char templ[] = "conftest.mkstemp/coXXXXXX"; *************** *** 39,56 **** result |= 1; else { if (lseek (fd, large, SEEK_SET) != large) result |= 2; ! close (fd); } } return result;]])], [gl_cv_func_working_mkstemp=yes], [gl_cv_func_working_mkstemp=no], ! [gl_cv_func_working_mkstemp=no]) rm -rf conftest.mkstemp ]) ! if test $gl_cv_func_working_mkstemp != yes; then REPLACE_MKSTEMP=1 AC_LIBOBJ([mkstemp]) gl_PREREQ_MKSTEMP --- 42,65 ---- result |= 1; else { + struct stat st; if (lseek (fd, large, SEEK_SET) != large) result |= 2; ! if (fstat (fd, &st) < 0) ! result |= 4; ! else if (st.st_mode & 0077) ! result |= 8; ! if (close (fd)) ! result |= 16; } } return result;]])], [gl_cv_func_working_mkstemp=yes], [gl_cv_func_working_mkstemp=no], ! [gl_cv_func_working_mkstemp="guessing no"]) rm -rf conftest.mkstemp ]) ! if test "$gl_cv_func_working_mkstemp" != yes; then REPLACE_MKSTEMP=1 AC_LIBOBJ([mkstemp]) gl_PREREQ_MKSTEMP diff -cNr octave-3.4.0/m4/mktime.m4 octave-3.4.1/m4/mktime.m4 *** octave-3.4.0/m4/mktime.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/mktime.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # serial 19 dnl Copyright (C) 2002-2003, 2005-2007, 2009-2011 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation --- 1,4 ---- ! # serial 20 dnl Copyright (C) 2002-2003, 2005-2007, 2009-2011 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation *************** *** 234,239 **** --- 234,256 ---- fi ]) + AC_DEFUN([gl_FUNC_MKTIME_INTERNAL], [ + AC_REQUIRE([gl_FUNC_MKTIME]) + if test $REPLACE_MKTIME = 0; then + dnl BeOS has __mktime_internal in libc, but other platforms don't. + AC_CHECK_FUNC([__mktime_internal], + [AC_DEFINE([mktime_internal], [__mktime_internal], + [Define to the real name of the mktime_internal function.]) + ], + [dnl mktime works but it doesn't export __mktime_internal, + dnl so we need to substitute our own mktime implementation. + REPLACE_MKTIME=1 + AC_LIBOBJ([mktime]) + gl_PREREQ_MKTIME + ]) + fi + ]) + # Prerequisites of lib/mktime.c. AC_DEFUN([gl_PREREQ_MKTIME], [ diff -cNr octave-3.4.0/m4/nocrash.m4 octave-3.4.1/m4/nocrash.m4 *** octave-3.4.0/m4/nocrash.m4 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/m4/nocrash.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 0 **** --- 1,102 ---- + # nocrash.m4 serial 2 + dnl Copyright (C) 2005, 2009-2011 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. + + dnl Based on libsigsegv, from Bruno Haible and Paolo Bonzini. + + AC_PREREQ([2.13]) + + dnl Expands to some code for use in .c programs that will cause the configure + dnl test to exit instead of crashing. This is useful to avoid triggering + dnl action from a background debugger and to avoid core dumps. + dnl Usage: ... + dnl ]GL_NOCRASH[ + dnl ... + dnl int main() { nocrash_init(); ... } + AC_DEFUN([GL_NOCRASH],[[ + #include + #if defined __MACH__ && defined __APPLE__ + /* Avoid a crash on MacOS X. */ + #include + #include + #include + #include + #include + #include + /* The exception port on which our thread listens. */ + static mach_port_t our_exception_port; + /* The main function of the thread listening for exceptions of type + EXC_BAD_ACCESS. */ + static void * + mach_exception_thread (void *arg) + { + /* Buffer for a message to be received. */ + struct { + mach_msg_header_t head; + mach_msg_body_t msgh_body; + char data[1024]; + } msg; + mach_msg_return_t retval; + /* Wait for a message on the exception port. */ + retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), + our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); + if (retval != MACH_MSG_SUCCESS) + abort (); + exit (1); + } + static void + nocrash_init (void) + { + mach_port_t self = mach_task_self (); + /* Allocate a port on which the thread shall listen for exceptions. */ + if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) + == KERN_SUCCESS) { + /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ + if (mach_port_insert_right (self, our_exception_port, our_exception_port, + MACH_MSG_TYPE_MAKE_SEND) + == KERN_SUCCESS) { + /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting + for us. */ + exception_mask_t mask = EXC_MASK_BAD_ACCESS; + /* Create the thread listening on the exception port. */ + pthread_attr_t attr; + pthread_t thread; + if (pthread_attr_init (&attr) == 0 + && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 + && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { + pthread_attr_destroy (&attr); + /* Replace the exception port info for these exceptions with our own. + Note that we replace the exception port for the entire task, not only + for a particular thread. This has the effect that when our exception + port gets the message, the thread specific exception port has already + been asked, and we don't need to bother about it. + See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ + task_set_exception_ports (self, mask, our_exception_port, + EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); + } + } + } + } + #else + /* Avoid a crash on POSIX systems. */ + #include + /* A POSIX signal handler. */ + static void + exception_handler (int sig) + { + exit (1); + } + static void + nocrash_init (void) + { + #ifdef SIGSEGV + signal (SIGSEGV, exception_handler); + #endif + #ifdef SIGBUS + signal (SIGBUS, exception_handler); + #endif + } + #endif + ]]) diff -cNr octave-3.4.0/m4/nproc.m4 octave-3.4.1/m4/nproc.m4 *** octave-3.4.0/m4/nproc.m4 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/m4/nproc.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 0 **** --- 1,53 ---- + # nproc.m4 serial 4 + dnl Copyright (C) 2009-2011 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. + + AC_DEFUN([gl_NPROC], + [ + gl_PREREQ_NPROC + ]) + + # Prerequisites of lib/nproc.c. + AC_DEFUN([gl_PREREQ_NPROC], + [ + dnl Persuade glibc to declare CPU_SETSIZE, CPU_ISSET etc. + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + AC_CHECK_HEADERS([sys/pstat.h sys/sysmp.h sys/param.h],,, + [AC_INCLUDES_DEFAULT]) + dnl requires on OpenBSD 4.0. + AC_CHECK_HEADERS([sys/sysctl.h],,, + [AC_INCLUDES_DEFAULT + #if HAVE_SYS_PARAM_H + # include + #endif + ]) + + AC_CHECK_FUNCS([sched_getaffinity sched_getaffinity_np \ + pstat_getdynamic sysmp sysctl]) + + dnl Test whether sched_getaffinity has the expected declaration. + dnl glibc 2.3.[0-2]: + dnl int sched_getaffinity (pid_t, unsigned int, unsigned long int *); + dnl glibc 2.3.3: + dnl int sched_getaffinity (pid_t, cpu_set_t *); + dnl glibc >= 2.3.4: + dnl int sched_getaffinity (pid_t, size_t, cpu_set_t *); + if test $ac_cv_func_sched_getaffinity = yes; then + AC_CACHE_CHECK([for glibc compatible sched_getaffinity], + [gl_cv_func_sched_getaffinity3], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[sched_getaffinity (0, 0, (cpu_set_t *) 0);]])], + [gl_cv_func_sched_getaffinity3=yes], + [gl_cv_func_sched_getaffinity3=no]) + ]) + if test $gl_cv_func_sched_getaffinity3 = yes; then + AC_DEFINE([HAVE_SCHED_GETAFFINITY_LIKE_GLIBC], [1], + [Define to 1 if sched_getaffinity has a glibc compatible declaration.]) + fi + fi + ]) diff -cNr octave-3.4.0/m4/open.m4 octave-3.4.1/m4/open.m4 *** octave-3.4.0/m4/open.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/open.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # open.m4 serial 11 dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # open.m4 serial 12 dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 62,67 **** --- 62,76 ---- esac ;; esac + dnl Replace open() for supporting the gnulib-defined O_NONBLOCK flag. + m4_ifdef([gl_NONBLOCKING_IO], [ + if test $REPLACE_OPEN = 0; then + gl_NONBLOCKING_IO + if test $gl_cv_have_open_O_NONBLOCK != yes; then + gl_REPLACE_OPEN + fi + fi + ]) ]) AC_DEFUN([gl_REPLACE_OPEN], diff -cNr octave-3.4.0/m4/readlink.m4 octave-3.4.1/m4/readlink.m4 *** octave-3.4.0/m4/readlink.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/readlink.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # readlink.m4 serial 9 dnl Copyright (C) 2003, 2007, 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # readlink.m4 serial 10 dnl Copyright (C) 2003, 2007, 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 48,54 **** fi ]) ! # Like gl_FUNC_READLINK, except prepare for separate compilation (no AC_LIBOBJ). AC_DEFUN([gl_FUNC_READLINK_SEPARATE], [ AC_CHECK_FUNCS_ONCE([readlink]) --- 48,55 ---- fi ]) ! # Like gl_FUNC_READLINK, except prepare for separate compilation ! # (no REPLACE_READLINK, no AC_LIBOBJ). AC_DEFUN([gl_FUNC_READLINK_SEPARATE], [ AC_CHECK_FUNCS_ONCE([readlink]) diff -cNr octave-3.4.0/m4/rmdir.m4 octave-3.4.1/m4/rmdir.m4 *** octave-3.4.0/m4/rmdir.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/rmdir.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # rmdir.m4 serial 9 dnl Copyright (C) 2002, 2005, 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # rmdir.m4 serial 10 dnl Copyright (C) 2002, 2005, 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 6,12 **** AC_DEFUN([gl_FUNC_RMDIR], [ - AC_REQUIRE([gl_AC_DOS]) AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl Detect cygwin 1.5.x bug. AC_CACHE_CHECK([whether rmdir works], [gl_cv_func_rmdir_works], --- 6,11 ---- diff -cNr octave-3.4.0/m4/select.m4 octave-3.4.1/m4/select.m4 *** octave-3.4.0/m4/select.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/select.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # select.m4 serial 3 dnl Copyright (C) 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # select.m4 serial 4 dnl Copyright (C) 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 10,15 **** --- 10,16 ---- AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_SOCKETS]) if test "$ac_cv_header_winsock2_h" = yes; then + REPLACE_SELECT=1 AC_LIBOBJ([select]) else dnl On Interix 3.5, select(0, NULL, NULL, NULL, timeout) fails with error diff -cNr octave-3.4.0/m4/signal_h.m4 octave-3.4.1/m4/signal_h.m4 *** octave-3.4.0/m4/signal_h.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/signal_h.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # signal_h.m4 serial 11 dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # signal_h.m4 serial 12 dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 8,21 **** --- 8,29 ---- [ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) gl_NEXT_HEADERS([signal.h]) + # AIX declares sig_atomic_t to already include volatile, and C89 compilers # then choke on 'volatile sig_atomic_t'. C99 requires that it compile. AC_CHECK_TYPE([volatile sig_atomic_t], [], [HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0], [[ #include ]]) + AC_REQUIRE([AC_TYPE_UID_T]) + dnl Persuade glibc to define sighandler_t. + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + AC_CHECK_TYPE([sighandler_t], [], [HAVE_SIGHANDLER_T=0], [[ + #include + ]]) + dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include *************** *** 46,49 **** --- 54,58 ---- AC_SUBST([HAVE_STRUCT_SIGACTION_SA_SIGACTION]) HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1; AC_SUBST([HAVE_TYPE_VOLATILE_SIG_ATOMIC_T]) + HAVE_SIGHANDLER_T=1; AC_SUBST([HAVE_SIGHANDLER_T]) ]) diff -cNr octave-3.4.0/m4/socklen.m4 octave-3.4.1/m4/socklen.m4 *** octave-3.4.0/m4/socklen.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/socklen.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # socklen.m4 serial 8 dnl Copyright (C) 2005-2007, 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # socklen.m4 serial 10 dnl Copyright (C) 2005-2007, 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 9,23 **** dnl Check for socklen_t: historically on BSD it is an int, and in dnl POSIX 1g it is a type of its own, but some platforms use different dnl types for the argument to getsockopt, getpeername, etc.: ! dnl HP-UX 10.20, IRIX 6.5, Interix 3.5, BeOS. dnl So we have to test to find something that will work. - dnl On mingw32, socklen_t is in ws2tcpip.h ('int'), so we try to find - dnl it there first. That file is included by gnulib's sys_socket.in.h, which - dnl all users of this module should include. Cygwin must not include - dnl ws2tcpip.h. AC_DEFUN([gl_TYPE_SOCKLEN_T], ! [AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl AC_CHECK_TYPE([socklen_t], , [AC_MSG_CHECKING([for socklen_t equivalent]) AC_CACHE_VAL([gl_cv_socklen_t_equiv], --- 9,19 ---- dnl Check for socklen_t: historically on BSD it is an int, and in dnl POSIX 1g it is a type of its own, but some platforms use different dnl types for the argument to getsockopt, getpeername, etc.: ! dnl HP-UX 10.20, IRIX 6.5, OSF/1 4.0, Interix 3.5, BeOS. dnl So we have to test to find something that will work. AC_DEFUN([gl_TYPE_SOCKLEN_T], ! [AC_REQUIRE([gl_CHECK_SOCKET_HEADERS])dnl AC_CHECK_TYPE([socklen_t], , [AC_MSG_CHECKING([for socklen_t equivalent]) AC_CACHE_VAL([gl_cv_socklen_t_equiv], *************** *** 45,53 **** AC_MSG_RESULT([$gl_cv_socklen_t_equiv]) AC_DEFINE_UNQUOTED([socklen_t], [$gl_cv_socklen_t_equiv], [type to use in place of socklen_t if not defined])], ! [#include ! #if HAVE_SYS_SOCKET_H ! # include ! #elif HAVE_WS2TCPIP_H ! # include ! #endif])]) --- 41,77 ---- AC_MSG_RESULT([$gl_cv_socklen_t_equiv]) AC_DEFINE_UNQUOTED([socklen_t], [$gl_cv_socklen_t_equiv], [type to use in place of socklen_t if not defined])], ! [gl_SOCKET_HEADERS])]) ! ! dnl On mingw32, socklen_t is in ws2tcpip.h ('int'), so we try to find ! dnl it there too. But on Cygwin, wc2tcpip.h must not be included. Users ! dnl of this module should use the same include pattern as gl_SOCKET_HEADERS. ! dnl When you change this macro, keep also in sync: ! dnl - gl_CHECK_SOCKET_HEADERS, ! dnl - the Include section of modules/socklen. ! AC_DEFUN([gl_SOCKET_HEADERS], ! [ ! /* is not needed according to POSIX, but the ! in i386-unknown-freebsd4.10 and ! powerpc-apple-darwin5.5 required it. */ ! #include ! #if HAVE_SYS_SOCKET_H ! # include ! #elif HAVE_WS2TCPIP_H ! # include ! #endif ! ]) ! ! dnl Tests for the existence of the header for socket facilities. ! dnl Defines the C macros HAVE_SYS_SOCKET_H, HAVE_WS2TCPIP_H. ! dnl This macro must match gl_SOCKET_HEADERS. ! AC_DEFUN([gl_CHECK_SOCKET_HEADERS], ! [AC_CHECK_HEADERS_ONCE([sys/socket.h]) ! if test $ac_cv_header_sys_socket_h = no; then ! dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make ! dnl the check for those headers unconditional; yet cygwin reports ! dnl that the headers are present but cannot be compiled (since on ! dnl cygwin, all socket information should come from sys/socket.h). ! AC_CHECK_HEADERS([ws2tcpip.h]) ! fi ! ]) diff -cNr octave-3.4.0/m4/stat.m4 octave-3.4.1/m4/stat.m4 *** octave-3.4.0/m4/stat.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/stat.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # serial 6 # Copyright (C) 2009-2011 Free Software Foundation, Inc. # --- 1,4 ---- ! # serial 7 # Copyright (C) 2009-2011 Free Software Foundation, Inc. # *************** *** 9,15 **** AC_DEFUN([gl_FUNC_STAT], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - AC_REQUIRE([gl_AC_DOS]) AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([lstat]) dnl mingw is the only known platform where stat(".") and stat("./") differ --- 9,14 ---- diff -cNr octave-3.4.0/m4/stdbool.m4 octave-3.4.1/m4/stdbool.m4 *** octave-3.4.0/m4/stdbool.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/stdbool.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 5,11 **** dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. ! #serial 4 # Prepare for substituting if it is not supported. --- 5,11 ---- dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. ! #serial 5 # Prepare for substituting if it is not supported. *************** *** 21,26 **** --- 21,27 ---- STDBOOL_H='stdbool.h' fi AC_SUBST([STDBOOL_H]) + AM_CONDITIONAL([GL_GENERATE_STDBOOL_H], [test -n "$STDBOOL_H"]) if test "$ac_cv_type__Bool" = yes; then HAVE__BOOL=1 diff -cNr octave-3.4.0/m4/stddef_h.m4 octave-3.4.1/m4/stddef_h.m4 *** octave-3.4.0/m4/stddef_h.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/stddef_h.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,5 **** dnl A placeholder for POSIX 2008 , for platforms that have issues. ! # stddef_h.m4 serial 3 dnl Copyright (C) 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,5 ---- dnl A placeholder for POSIX 2008 , for platforms that have issues. ! # stddef_h.m4 serial 4 dnl Copyright (C) 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 9,14 **** --- 9,15 ---- [ AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) AC_REQUIRE([gt_TYPE_WCHAR_T]) + STDDEF_H= if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h *************** *** 24,29 **** --- 25,32 ---- REPLACE_NULL=1 STDDEF_H=stddef.h fi + AC_SUBST([STDDEF_H]) + AM_CONDITIONAL([GL_GENERATE_STDDEF_H], [test -n "$STDDEF_H"]) if test -n "$STDDEF_H"; then gl_NEXT_HEADERS([stddef.h]) fi *************** *** 41,45 **** dnl Assume proper GNU behavior unless another module says otherwise. REPLACE_NULL=0; AC_SUBST([REPLACE_NULL]) HAVE_WCHAR_T=1; AC_SUBST([HAVE_WCHAR_T]) - STDDEF_H=''; AC_SUBST([STDDEF_H]) ]) --- 44,47 ---- diff -cNr octave-3.4.0/m4/stdint.m4 octave-3.4.1/m4/stdint.m4 *** octave-3.4.0/m4/stdint.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/stdint.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # stdint.m4 serial 37 dnl Copyright (C) 2001-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # stdint.m4 serial 41 dnl Copyright (C) 2001-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 7,13 **** dnl From Paul Eggert and Bruno Haible. dnl Test whether is supported or must be substituted. ! AC_DEFUN([gl_STDINT_H], [ AC_PREREQ([2.59])dnl --- 7,13 ---- dnl From Paul Eggert and Bruno Haible. dnl Test whether is supported or must be substituted. ! AC_DEFUN_ONCE([gl_STDINT_H], [ AC_PREREQ([2.59])dnl *************** *** 27,32 **** --- 27,41 ---- fi AC_SUBST([HAVE_UNSIGNED_LONG_LONG_INT]) + dnl Check for , in the same way as gl_WCHAR_H does. + AC_CHECK_HEADERS_ONCE([wchar.h]) + if test $ac_cv_header_wchar_h = yes; then + HAVE_WCHAR_H=1 + else + HAVE_WCHAR_H=0 + fi + AC_SUBST([HAVE_WCHAR_H]) + dnl Check for . dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_inttypes_h. if test $ac_cv_header_inttypes_h = yes; then *************** *** 292,305 **** fi AC_SUBST([HAVE_SYS_BITYPES_H]) - dnl Check for (missing in Linux uClibc when built without wide - dnl character support). - AC_CHECK_HEADERS_ONCE([wchar.h]) - gl_STDINT_TYPE_PROPERTIES STDINT_H=stdint.h fi AC_SUBST([STDINT_H]) ]) dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES) --- 301,311 ---- fi AC_SUBST([HAVE_SYS_BITYPES_H]) gl_STDINT_TYPE_PROPERTIES STDINT_H=stdint.h fi AC_SUBST([STDINT_H]) + AM_CONDITIONAL([GL_GENERATE_STDINT_H], [test -n "$STDINT_H"]) ]) dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES) diff -cNr octave-3.4.0/m4/stdio_h.m4 octave-3.4.1/m4/stdio_h.m4 *** octave-3.4.0/m4/stdio_h.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/stdio_h.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # stdio_h.m4 serial 32 dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # stdio_h.m4 serial 37 dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 8,15 **** [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([AC_C_INLINE]) - AC_REQUIRE([gl_ASM_SYMBOL_PREFIX]) gl_NEXT_HEADERS([stdio.h]) dnl No need to create extra modules for these functions. Everyone who uses dnl likely needs them. GNULIB_FPRINTF=1 --- 8,38 ---- [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([AC_C_INLINE]) gl_NEXT_HEADERS([stdio.h]) + + dnl No need to create extra modules for these functions. Everyone who uses + dnl likely needs them. + GNULIB_FSCANF=1 + GNULIB_SCANF=1 + GNULIB_FGETC=1 + GNULIB_GETC=1 + GNULIB_GETCHAR=1 + GNULIB_FGETS=1 + GNULIB_GETS=1 + GNULIB_FREAD=1 + dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c" + dnl "expected source file, required through AC_LIBSOURCES, not found". It is + dnl also an optimization, to avoid performing a configure check whose result + dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING + dnl or GNULIB_NONBLOCKING redundant. + m4_ifdef([gl_NONBLOCKING_IO], [ + gl_NONBLOCKING_IO + if test $gl_cv_have_nonblocking != yes; then + REPLACE_STDIO_READ_FUNCS=1 + AC_LIBOBJ([stdio-read]) + fi + ]) + dnl No need to create extra modules for these functions. Everyone who uses dnl likely needs them. GNULIB_FPRINTF=1 *************** *** 22,30 **** GNULIB_FPUTS=1 GNULIB_PUTS=1 GNULIB_FWRITE=1 ! dnl This ifdef is just an optimization, to avoid performing a configure ! dnl check whose result is not used. It does not make the test of ! dnl GNULIB_STDIO_H_SIGPIPE or GNULIB_SIGPIPE redundant. m4_ifdef([gl_SIGNAL_SIGPIPE], [ gl_SIGNAL_SIGPIPE if test $gl_cv_header_signal_h_SIGPIPE != yes; then --- 45,55 ---- GNULIB_FPUTS=1 GNULIB_PUTS=1 GNULIB_FWRITE=1 ! dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c" ! dnl "expected source file, required through AC_LIBSOURCES, not found". It is ! dnl also an optimization, to avoid performing a configure check whose result ! dnl is not used. But it does not make the test of GNULIB_STDIO_H_SIGPIPE or ! dnl GNULIB_SIGPIPE redundant. m4_ifdef([gl_SIGNAL_SIGPIPE], [ gl_SIGNAL_SIGPIPE if test $gl_cv_header_signal_h_SIGPIPE != yes; then *************** *** 32,37 **** --- 57,74 ---- AC_LIBOBJ([stdio-write]) fi ]) + dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c" + dnl "expected source file, required through AC_LIBSOURCES, not found". It is + dnl also an optimization, to avoid performing a configure check whose result + dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING + dnl or GNULIB_NONBLOCKING redundant. + m4_ifdef([gl_NONBLOCKING_IO], [ + gl_NONBLOCKING_IO + if test $gl_cv_have_nonblocking != yes; then + REPLACE_STDIO_WRITE_FUNCS=1 + AC_LIBOBJ([stdio-write]) + fi + ]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not *************** *** 55,74 **** --- 92,118 ---- GNULIB_DPRINTF=0; AC_SUBST([GNULIB_DPRINTF]) GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE]) GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH]) + GNULIB_FGETC=0; AC_SUBST([GNULIB_FGETC]) + GNULIB_FGETS=0; AC_SUBST([GNULIB_FGETS]) GNULIB_FOPEN=0; AC_SUBST([GNULIB_FOPEN]) GNULIB_FPRINTF=0; AC_SUBST([GNULIB_FPRINTF]) GNULIB_FPRINTF_POSIX=0; AC_SUBST([GNULIB_FPRINTF_POSIX]) GNULIB_FPURGE=0; AC_SUBST([GNULIB_FPURGE]) GNULIB_FPUTC=0; AC_SUBST([GNULIB_FPUTC]) GNULIB_FPUTS=0; AC_SUBST([GNULIB_FPUTS]) + GNULIB_FREAD=0; AC_SUBST([GNULIB_FREAD]) GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN]) + GNULIB_FSCANF=0; AC_SUBST([GNULIB_FSCANF]) GNULIB_FSEEK=0; AC_SUBST([GNULIB_FSEEK]) GNULIB_FSEEKO=0; AC_SUBST([GNULIB_FSEEKO]) GNULIB_FTELL=0; AC_SUBST([GNULIB_FTELL]) GNULIB_FTELLO=0; AC_SUBST([GNULIB_FTELLO]) GNULIB_FWRITE=0; AC_SUBST([GNULIB_FWRITE]) + GNULIB_GETC=0; AC_SUBST([GNULIB_GETC]) + GNULIB_GETCHAR=0; AC_SUBST([GNULIB_GETCHAR]) GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM]) GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE]) + GNULIB_GETS=0; AC_SUBST([GNULIB_GETS]) GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF]) GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX]) GNULIB_PERROR=0; AC_SUBST([GNULIB_PERROR]) *************** *** 81,91 **** --- 125,139 ---- GNULIB_REMOVE=0; AC_SUBST([GNULIB_REMOVE]) GNULIB_RENAME=0; AC_SUBST([GNULIB_RENAME]) GNULIB_RENAMEAT=0; AC_SUBST([GNULIB_RENAMEAT]) + GNULIB_SCANF=0; AC_SUBST([GNULIB_SCANF]) GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF]) GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX]) + GNULIB_STDIO_H_NONBLOCKING=0; AC_SUBST([GNULIB_STDIO_H_NONBLOCKING]) GNULIB_STDIO_H_SIGPIPE=0; AC_SUBST([GNULIB_STDIO_H_SIGPIPE]) GNULIB_TMPFILE=0; AC_SUBST([GNULIB_TMPFILE]) GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF]) + GNULIB_VFSCANF=0; AC_SUBST([GNULIB_VFSCANF]) + GNULIB_VSCANF=0; AC_SUBST([GNULIB_VSCANF]) GNULIB_VDPRINTF=0; AC_SUBST([GNULIB_VDPRINTF]) GNULIB_VFPRINTF=0; AC_SUBST([GNULIB_VFPRINTF]) GNULIB_VFPRINTF_POSIX=0; AC_SUBST([GNULIB_VFPRINTF_POSIX]) *************** *** 130,135 **** --- 178,184 ---- REPLACE_RENAMEAT=0; AC_SUBST([REPLACE_RENAMEAT]) REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF]) REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF]) + REPLACE_STDIO_READ_FUNCS=0; AC_SUBST([REPLACE_STDIO_READ_FUNCS]) REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS]) REPLACE_TMPFILE=0; AC_SUBST([REPLACE_TMPFILE]) REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF]) *************** *** 139,161 **** REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF]) REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF]) ]) - - dnl Code shared by fseeko and ftello. Determine if large files are supported, - dnl but stdin does not start as a large file by default. - AC_DEFUN([gl_STDIN_LARGE_OFFSET], - [ - AC_CACHE_CHECK([whether stdin defaults to large file offsets], - [gl_cv_var_stdin_large_offset], - [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], - [[#if defined __SL64 && defined __SCLE /* cygwin */ - /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making - fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and - it is easier to do a version check than building a runtime test. */ - # include - # if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25) - choke me - # endif - #endif]])], - [gl_cv_var_stdin_large_offset=yes], - [gl_cv_var_stdin_large_offset=no])]) - ]) --- 188,190 ---- diff -cNr octave-3.4.0/m4/stdlib_h.m4 octave-3.4.1/m4/stdlib_h.m4 *** octave-3.4.0/m4/stdlib_h.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/stdlib_h.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # stdlib_h.m4 serial 34 dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # stdlib_h.m4 serial 37 dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 8,27 **** [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) gl_NEXT_HEADERS([stdlib.h]) - AC_CHECK_HEADERS([random.h], [], [], [AC_INCLUDES_DEFAULT]) - if test $ac_cv_header_random_h = yes; then - HAVE_RANDOM_H=1 - else - HAVE_RANDOM_H=0 - fi - AC_SUBST([HAVE_RANDOM_H]) - AC_CHECK_TYPES([struct random_data], - [], [HAVE_STRUCT_RANDOM_DATA=0], - [[#include - #if HAVE_RANDOM_H - # include - #endif - ]]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not --- 8,13 ---- *************** *** 58,63 **** --- 44,50 ---- GNULIB_GETSUBOPT=0; AC_SUBST([GNULIB_GETSUBOPT]) GNULIB_GRANTPT=0; AC_SUBST([GNULIB_GRANTPT]) GNULIB_MALLOC_POSIX=0; AC_SUBST([GNULIB_MALLOC_POSIX]) + GNULIB_MBTOWC=0; AC_SUBST([GNULIB_MBTOWC]) GNULIB_MKDTEMP=0; AC_SUBST([GNULIB_MKDTEMP]) GNULIB_MKOSTEMP=0; AC_SUBST([GNULIB_MKOSTEMP]) GNULIB_MKOSTEMPS=0; AC_SUBST([GNULIB_MKOSTEMPS]) *************** *** 76,81 **** --- 63,69 ---- GNULIB_SYSTEM_POSIX=0; AC_SUBST([GNULIB_SYSTEM_POSIX]) GNULIB_UNLOCKPT=0; AC_SUBST([GNULIB_UNLOCKPT]) GNULIB_UNSETENV=0; AC_SUBST([GNULIB_UNSETENV]) + GNULIB_WCTOMB=0; AC_SUBST([GNULIB_WCTOMB]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE__EXIT=1; AC_SUBST([HAVE__EXIT]) HAVE_ATOLL=1; AC_SUBST([HAVE_ATOLL]) *************** *** 89,94 **** --- 77,83 ---- HAVE_MKSTEMP=1; AC_SUBST([HAVE_MKSTEMP]) HAVE_MKSTEMPS=1; AC_SUBST([HAVE_MKSTEMPS]) HAVE_PTSNAME=1; AC_SUBST([HAVE_PTSNAME]) + HAVE_RANDOM_H=1; AC_SUBST([HAVE_RANDOM_H]) HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R]) HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH]) HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH]) *************** *** 104,109 **** --- 93,99 ---- REPLACE_CALLOC=0; AC_SUBST([REPLACE_CALLOC]) REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME]) REPLACE_MALLOC=0; AC_SUBST([REPLACE_MALLOC]) + REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC]) REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP]) REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV]) REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC]) *************** *** 111,114 **** --- 101,105 ---- REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV]) REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD]) REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV]) + REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB]) ]) diff -cNr octave-3.4.0/m4/strcase.m4 octave-3.4.1/m4/strcase.m4 *** octave-3.4.0/m4/strcase.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/strcase.m4 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,44 **** - # strcase.m4 serial 10 - dnl Copyright (C) 2002, 2005-2011 Free Software Foundation, Inc. - dnl This file is free software; the Free Software Foundation - dnl gives unlimited permission to copy and/or distribute it, - dnl with or without modifications, as long as this notice is preserved. - - AC_DEFUN([gl_STRCASE], - [ - gl_FUNC_STRCASECMP - gl_FUNC_STRNCASECMP - ]) - - AC_DEFUN([gl_FUNC_STRCASECMP], - [ - AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) - AC_REPLACE_FUNCS([strcasecmp]) - if test $ac_cv_func_strcasecmp = no; then - HAVE_STRCASECMP=0 - gl_PREREQ_STRCASECMP - fi - ]) - - AC_DEFUN([gl_FUNC_STRNCASECMP], - [ - AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) - AC_REPLACE_FUNCS([strncasecmp]) - if test $ac_cv_func_strncasecmp = no; then - gl_PREREQ_STRNCASECMP - fi - AC_CHECK_DECLS([strncasecmp]) - if test $ac_cv_have_decl_strncasecmp = no; then - HAVE_DECL_STRNCASECMP=0 - fi - ]) - - # Prerequisites of lib/strcasecmp.c. - AC_DEFUN([gl_PREREQ_STRCASECMP], [ - : - ]) - - # Prerequisites of lib/strncasecmp.c. - AC_DEFUN([gl_PREREQ_STRNCASECMP], [ - : - ]) --- 0 ---- diff -cNr octave-3.4.0/m4/strerror.m4 octave-3.4.1/m4/strerror.m4 *** octave-3.4.0/m4/strerror.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/strerror.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # strerror.m4 serial 9 dnl Copyright (C) 2002, 2007-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # strerror.m4 serial 15 dnl Copyright (C) 2002, 2007-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 6,68 **** AC_DEFUN([gl_FUNC_STRERROR], [ - AC_REQUIRE([gl_FUNC_STRERROR_SEPARATE]) - if test $REPLACE_STRERROR = 1; then - AC_LIBOBJ([strerror]) - AC_DEFINE_UNQUOTED([REPLACE_STRERROR], [$REPLACE_STRERROR], - [Define this to 1 if strerror is broken.]) - fi - ]) - - # Like gl_FUNC_STRERROR, except prepare for separate compilation (no AC_LIBOBJ). - AC_DEFUN([gl_FUNC_STRERROR_SEPARATE], - [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_REQUIRE([gl_HEADER_ERRNO_H]) if test -z "$ERRNO_H"; then AC_CACHE_CHECK([for working strerror function], [gl_cv_func_working_strerror], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include ]], ! [[return !*strerror (-2);]])], [gl_cv_func_working_strerror=yes], [gl_cv_func_working_strerror=no], ! [dnl Assume crossbuild works if it compiles. ! AC_COMPILE_IFELSE( ! [AC_LANG_PROGRAM( ! [[#include ! ]], ! [[return !*strerror (-2);]])], ! [gl_cv_func_working_strerror=yes], ! [gl_cv_func_working_strerror=no]) ! ]) ]) if test $gl_cv_func_working_strerror = no; then dnl The system's strerror() fails to return a string for out-of-range dnl integers. Replace it. REPLACE_STRERROR=1 fi else dnl The system's strerror() cannot know about the new errno values we add dnl to . Replace it. REPLACE_STRERROR=1 fi - if test $REPLACE_STRERROR = 1; then - gl_PREREQ_STRERROR - fi - ]) - - # Prerequisites of lib/strerror.c. - AC_DEFUN([gl_PREREQ_STRERROR], [ - AC_CHECK_DECLS([strerror]) - AC_CHECK_HEADERS_ONCE([sys/socket.h]) - if test $ac_cv_header_sys_socket_h != yes; then - dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make - dnl the check for those headers unconditional; yet cygwin reports - dnl that the headers are present but cannot be compiled (since on - dnl cygwin, all socket information should come from sys/socket.h). - AC_CHECK_HEADERS([winsock2.h]) - fi ]) --- 6,54 ---- AC_DEFUN([gl_FUNC_STRERROR], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_REQUIRE([gl_HEADER_ERRNO_H]) + m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [ + AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS]) + ]) if test -z "$ERRNO_H"; then AC_CACHE_CHECK([for working strerror function], [gl_cv_func_working_strerror], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include + #include ]], ! [[int result = 0; ! char *str; ! if (!*strerror (-2)) result |= 1; ! errno = 0; ! str = strerror (0); ! if (!*str) result |= 2; ! if (errno) result |= 4; ! if (strstr (str, "nknown") || strstr (str, "ndefined")) ! result |= 8; ! return result;]])], [gl_cv_func_working_strerror=yes], [gl_cv_func_working_strerror=no], ! [dnl Be pessimistic on cross-compiles for now. ! gl_cv_func_working_strerror=no]) ]) if test $gl_cv_func_working_strerror = no; then dnl The system's strerror() fails to return a string for out-of-range dnl integers. Replace it. REPLACE_STRERROR=1 fi + m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [ + dnl If the system's strerror_r or __xpg_strerror_r clobbers strerror's + dnl buffer, we must replace strerror. + case "$gl_cv_func_strerror_r_works" in + *no) REPLACE_STRERROR=1 ;; + esac + ]) else dnl The system's strerror() cannot know about the new errno values we add dnl to . Replace it. REPLACE_STRERROR=1 fi ]) diff -cNr octave-3.4.0/m4/string_h.m4 octave-3.4.1/m4/string_h.m4 *** octave-3.4.0/m4/string_h.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/string_h.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 5,11 **** # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. ! # serial 19 # Written by Paul Eggert. --- 5,11 ---- # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. ! # serial 20 # Written by Paul Eggert. *************** *** 104,109 **** --- 104,110 ---- REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP]) REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR]) + REPLACE_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL]) REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR]) REPLACE_STRERROR_R=0; AC_SUBST([REPLACE_STRERROR_R]) REPLACE_STRNCAT=0; AC_SUBST([REPLACE_STRNCAT]) diff -cNr octave-3.4.0/m4/strings_h.m4 octave-3.4.1/m4/strings_h.m4 *** octave-3.4.0/m4/strings_h.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/strings_h.m4 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,39 **** - # Configure a replacement for . - # serial 3 - - # Copyright (C) 2007, 2009-2011 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. - - AC_DEFUN([gl_HEADER_STRINGS_H], - [ - dnl Use AC_REQUIRE here, so that the default behavior below is expanded - dnl once only, before all statements that occur in other macros. - AC_REQUIRE([gl_HEADER_STRINGS_H_BODY]) - ]) - - AC_DEFUN([gl_HEADER_STRINGS_H_BODY], - [ - AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) - gl_CHECK_NEXT_HEADERS([strings.h]) - - dnl Check for declarations of anything we want to poison if the - dnl corresponding gnulib module is not in use. - gl_WARN_ON_USE_PREPARE([[#include - ]], [strcasecmp strncasecmp]) - ]) - - AC_DEFUN([gl_STRINGS_MODULE_INDICATOR], - [ - dnl Use AC_REQUIRE here, so that the default settings are expanded once only. - AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) - gl_MODULE_INDICATOR_SET_VARIABLE([$1]) - ]) - - AC_DEFUN([gl_HEADER_STRINGS_H_DEFAULTS], - [ - dnl Assume proper GNU behavior unless another module says otherwise. - HAVE_STRCASECMP=1; AC_SUBST([HAVE_STRCASECMP]) - HAVE_DECL_STRNCASECMP=1; AC_SUBST([HAVE_DECL_STRNCASECMP]) - ]) --- 0 ---- diff -cNr octave-3.4.0/m4/sys_socket_h.m4 octave-3.4.1/m4/sys_socket_h.m4 *** octave-3.4.0/m4/sys_socket_h.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/sys_socket_h.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # sys_socket_h.m4 serial 21 dnl Copyright (C) 2005-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # sys_socket_h.m4 serial 22 dnl Copyright (C) 2005-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 101,117 **** AC_DEFUN([gl_PREREQ_SYS_H_SOCKET], [ dnl Check prerequisites of the replacement. gl_CHECK_NEXT_HEADERS([sys/socket.h]) if test $ac_cv_header_sys_socket_h = yes; then HAVE_SYS_SOCKET_H=1 HAVE_WS2TCPIP_H=0 else HAVE_SYS_SOCKET_H=0 - dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make - dnl the check for those headers unconditional; yet cygwin reports - dnl that the headers are present but cannot be compiled (since on - dnl cygwin, all socket information should come from sys/socket.h). - AC_CHECK_HEADERS([ws2tcpip.h]) if test $ac_cv_header_ws2tcpip_h = yes; then HAVE_WS2TCPIP_H=1 else --- 101,113 ---- AC_DEFUN([gl_PREREQ_SYS_H_SOCKET], [ dnl Check prerequisites of the replacement. + AC_REQUIRE([gl_CHECK_SOCKET_HEADERS]) gl_CHECK_NEXT_HEADERS([sys/socket.h]) if test $ac_cv_header_sys_socket_h = yes; then HAVE_SYS_SOCKET_H=1 HAVE_WS2TCPIP_H=0 else HAVE_SYS_SOCKET_H=0 if test $ac_cv_header_ws2tcpip_h = yes; then HAVE_WS2TCPIP_H=1 else diff -cNr octave-3.4.0/m4/sys_uio_h.m4 octave-3.4.1/m4/sys_uio_h.m4 *** octave-3.4.0/m4/sys_uio_h.m4 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/m4/sys_uio_h.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 0 **** --- 1,31 ---- + # sys_uio_h.m4 serial 1 + dnl Copyright (C) 2011 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. + + AC_DEFUN([gl_HEADER_SYS_UIO], + [ + AC_REQUIRE([gl_SYS_UIO_H_DEFAULTS]) + dnl is always overridden, because of GNULIB_POSIXCHECK. + gl_CHECK_NEXT_HEADERS([sys/uio.h]) + if test $ac_cv_header_sys_uio_h = yes; then + HAVE_SYS_UIO_H=1 + else + HAVE_SYS_UIO_H=0 + fi + AC_SUBST([HAVE_SYS_UIO_H]) + ]) + + AC_DEFUN([gl_SYS_UIO_MODULE_INDICATOR], + [ + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_SYS_UIO_H_DEFAULTS]) + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) + ]) + + AC_DEFUN([gl_SYS_UIO_H_DEFAULTS], + [ + ]) diff -cNr octave-3.4.0/m4/unistd_h.m4 octave-3.4.1/m4/unistd_h.m4 *** octave-3.4.0/m4/unistd_h.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/unistd_h.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # unistd_h.m4 serial 53 dnl Copyright (C) 2006-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # unistd_h.m4 serial 56 dnl Copyright (C) 2006-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 36,43 **** ]], [chown dup2 dup3 environ euidaccess faccessat fchdir fchownat fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getusershell setusershell ! endusershell lchown link linkat lseek pipe pipe2 pread pwrite readlink ! readlinkat rmdir sleep symlink symlinkat ttyname_r unlink unlinkat usleep]) ]) --- 36,43 ---- ]], [chown dup2 dup3 environ euidaccess faccessat fchdir fchownat fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getusershell setusershell ! endusershell group_member lchown link linkat lseek pipe pipe2 pread pwrite ! readlink readlinkat rmdir sleep symlink symlinkat ttyname_r unlink unlinkat usleep]) ]) *************** *** 52,98 **** AC_DEFUN([gl_UNISTD_H_DEFAULTS], [ ! GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN]) ! GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE]) ! GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2]) ! GNULIB_DUP3=0; AC_SUBST([GNULIB_DUP3]) ! GNULIB_ENVIRON=0; AC_SUBST([GNULIB_ENVIRON]) ! GNULIB_EUIDACCESS=0; AC_SUBST([GNULIB_EUIDACCESS]) ! GNULIB_FACCESSAT=0; AC_SUBST([GNULIB_FACCESSAT]) ! GNULIB_FCHDIR=0; AC_SUBST([GNULIB_FCHDIR]) ! GNULIB_FCHOWNAT=0; AC_SUBST([GNULIB_FCHOWNAT]) ! GNULIB_FSYNC=0; AC_SUBST([GNULIB_FSYNC]) ! GNULIB_FTRUNCATE=0; AC_SUBST([GNULIB_FTRUNCATE]) ! GNULIB_GETCWD=0; AC_SUBST([GNULIB_GETCWD]) ! GNULIB_GETDOMAINNAME=0; AC_SUBST([GNULIB_GETDOMAINNAME]) ! GNULIB_GETDTABLESIZE=0; AC_SUBST([GNULIB_GETDTABLESIZE]) ! GNULIB_GETGROUPS=0; AC_SUBST([GNULIB_GETGROUPS]) ! GNULIB_GETHOSTNAME=0; AC_SUBST([GNULIB_GETHOSTNAME]) ! GNULIB_GETLOGIN=0; AC_SUBST([GNULIB_GETLOGIN]) ! GNULIB_GETLOGIN_R=0; AC_SUBST([GNULIB_GETLOGIN_R]) ! GNULIB_GETPAGESIZE=0; AC_SUBST([GNULIB_GETPAGESIZE]) ! GNULIB_GETUSERSHELL=0; AC_SUBST([GNULIB_GETUSERSHELL]) ! GNULIB_LCHOWN=0; AC_SUBST([GNULIB_LCHOWN]) ! GNULIB_LINK=0; AC_SUBST([GNULIB_LINK]) ! GNULIB_LINKAT=0; AC_SUBST([GNULIB_LINKAT]) ! GNULIB_LSEEK=0; AC_SUBST([GNULIB_LSEEK]) ! GNULIB_PIPE=0; AC_SUBST([GNULIB_PIPE]) ! GNULIB_PIPE2=0; AC_SUBST([GNULIB_PIPE2]) ! GNULIB_PREAD=0; AC_SUBST([GNULIB_PREAD]) ! GNULIB_PWRITE=0; AC_SUBST([GNULIB_PWRITE]) ! GNULIB_READLINK=0; AC_SUBST([GNULIB_READLINK]) ! GNULIB_READLINKAT=0; AC_SUBST([GNULIB_READLINKAT]) ! GNULIB_RMDIR=0; AC_SUBST([GNULIB_RMDIR]) ! GNULIB_SLEEP=0; AC_SUBST([GNULIB_SLEEP]) ! GNULIB_SYMLINK=0; AC_SUBST([GNULIB_SYMLINK]) ! GNULIB_SYMLINKAT=0; AC_SUBST([GNULIB_SYMLINKAT]) ! GNULIB_TTYNAME_R=0; AC_SUBST([GNULIB_TTYNAME_R]) ! GNULIB_UNISTD_H_GETOPT=0; AC_SUBST([GNULIB_UNISTD_H_GETOPT]) ! GNULIB_UNISTD_H_SIGPIPE=0; AC_SUBST([GNULIB_UNISTD_H_SIGPIPE]) ! GNULIB_UNLINK=0; AC_SUBST([GNULIB_UNLINK]) ! GNULIB_UNLINKAT=0; AC_SUBST([GNULIB_UNLINKAT]) ! GNULIB_USLEEP=0; AC_SUBST([GNULIB_USLEEP]) ! GNULIB_WRITE=0; AC_SUBST([GNULIB_WRITE]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN]) HAVE_DUP2=1; AC_SUBST([HAVE_DUP2]) --- 52,101 ---- AC_DEFUN([gl_UNISTD_H_DEFAULTS], [ ! GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN]) ! GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE]) ! GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2]) ! GNULIB_DUP3=0; AC_SUBST([GNULIB_DUP3]) ! GNULIB_ENVIRON=0; AC_SUBST([GNULIB_ENVIRON]) ! GNULIB_EUIDACCESS=0; AC_SUBST([GNULIB_EUIDACCESS]) ! GNULIB_FACCESSAT=0; AC_SUBST([GNULIB_FACCESSAT]) ! GNULIB_FCHDIR=0; AC_SUBST([GNULIB_FCHDIR]) ! GNULIB_FCHOWNAT=0; AC_SUBST([GNULIB_FCHOWNAT]) ! GNULIB_FSYNC=0; AC_SUBST([GNULIB_FSYNC]) ! GNULIB_FTRUNCATE=0; AC_SUBST([GNULIB_FTRUNCATE]) ! GNULIB_GETCWD=0; AC_SUBST([GNULIB_GETCWD]) ! GNULIB_GETDOMAINNAME=0; AC_SUBST([GNULIB_GETDOMAINNAME]) ! GNULIB_GETDTABLESIZE=0; AC_SUBST([GNULIB_GETDTABLESIZE]) ! GNULIB_GETGROUPS=0; AC_SUBST([GNULIB_GETGROUPS]) ! GNULIB_GETHOSTNAME=0; AC_SUBST([GNULIB_GETHOSTNAME]) ! GNULIB_GETLOGIN=0; AC_SUBST([GNULIB_GETLOGIN]) ! GNULIB_GETLOGIN_R=0; AC_SUBST([GNULIB_GETLOGIN_R]) ! GNULIB_GETPAGESIZE=0; AC_SUBST([GNULIB_GETPAGESIZE]) ! GNULIB_GETUSERSHELL=0; AC_SUBST([GNULIB_GETUSERSHELL]) ! GNULIB_GROUP_MEMBER=0; AC_SUBST([GNULIB_GROUP_MEMBER]) ! GNULIB_LCHOWN=0; AC_SUBST([GNULIB_LCHOWN]) ! GNULIB_LINK=0; AC_SUBST([GNULIB_LINK]) ! GNULIB_LINKAT=0; AC_SUBST([GNULIB_LINKAT]) ! GNULIB_LSEEK=0; AC_SUBST([GNULIB_LSEEK]) ! GNULIB_PIPE=0; AC_SUBST([GNULIB_PIPE]) ! GNULIB_PIPE2=0; AC_SUBST([GNULIB_PIPE2]) ! GNULIB_PREAD=0; AC_SUBST([GNULIB_PREAD]) ! GNULIB_PWRITE=0; AC_SUBST([GNULIB_PWRITE]) ! GNULIB_READ=0; AC_SUBST([GNULIB_READ]) ! GNULIB_READLINK=0; AC_SUBST([GNULIB_READLINK]) ! GNULIB_READLINKAT=0; AC_SUBST([GNULIB_READLINKAT]) ! GNULIB_RMDIR=0; AC_SUBST([GNULIB_RMDIR]) ! GNULIB_SLEEP=0; AC_SUBST([GNULIB_SLEEP]) ! GNULIB_SYMLINK=0; AC_SUBST([GNULIB_SYMLINK]) ! GNULIB_SYMLINKAT=0; AC_SUBST([GNULIB_SYMLINKAT]) ! GNULIB_TTYNAME_R=0; AC_SUBST([GNULIB_TTYNAME_R]) ! GNULIB_UNISTD_H_GETOPT=0; AC_SUBST([GNULIB_UNISTD_H_GETOPT]) ! GNULIB_UNISTD_H_NONBLOCKING=0; AC_SUBST([GNULIB_UNISTD_H_NONBLOCKING]) ! GNULIB_UNISTD_H_SIGPIPE=0; AC_SUBST([GNULIB_UNISTD_H_SIGPIPE]) ! GNULIB_UNLINK=0; AC_SUBST([GNULIB_UNLINK]) ! GNULIB_UNLINKAT=0; AC_SUBST([GNULIB_UNLINKAT]) ! GNULIB_USLEEP=0; AC_SUBST([GNULIB_USLEEP]) ! GNULIB_WRITE=0; AC_SUBST([GNULIB_WRITE]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN]) HAVE_DUP2=1; AC_SUBST([HAVE_DUP2]) *************** *** 108,113 **** --- 111,117 ---- HAVE_GETHOSTNAME=1; AC_SUBST([HAVE_GETHOSTNAME]) HAVE_GETLOGIN=1; AC_SUBST([HAVE_GETLOGIN]) HAVE_GETPAGESIZE=1; AC_SUBST([HAVE_GETPAGESIZE]) + HAVE_GROUP_MEMBER=1; AC_SUBST([HAVE_GROUP_MEMBER]) HAVE_LCHOWN=1; AC_SUBST([HAVE_LCHOWN]) HAVE_LINK=1; AC_SUBST([HAVE_LINK]) HAVE_LINKAT=1; AC_SUBST([HAVE_LINKAT]) *************** *** 147,152 **** --- 151,157 ---- REPLACE_LSEEK=0; AC_SUBST([REPLACE_LSEEK]) REPLACE_PREAD=0; AC_SUBST([REPLACE_PREAD]) REPLACE_PWRITE=0; AC_SUBST([REPLACE_PWRITE]) + REPLACE_READ=0; AC_SUBST([REPLACE_READ]) REPLACE_READLINK=0; AC_SUBST([REPLACE_READLINK]) REPLACE_RMDIR=0; AC_SUBST([REPLACE_RMDIR]) REPLACE_SLEEP=0; AC_SUBST([REPLACE_SLEEP]) diff -cNr octave-3.4.0/m4/unlink.m4 octave-3.4.1/m4/unlink.m4 *** octave-3.4.0/m4/unlink.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/unlink.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # unlink.m4 serial 6 dnl Copyright (C) 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # unlink.m4 serial 7 dnl Copyright (C) 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 6,12 **** AC_DEFUN([gl_FUNC_UNLINK], [ - AC_REQUIRE([gl_AC_DOS]) AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl Detect FreeBSD 7.2, AIX 7.1, Solaris 9 bug. --- 6,11 ---- diff -cNr octave-3.4.0/m4/wchar_h.m4 octave-3.4.1/m4/wchar_h.m4 *** octave-3.4.0/m4/wchar_h.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/wchar_h.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 7,13 **** dnl Written by Eric Blake. ! # wchar_h.m4 serial 38 AC_DEFUN([gl_WCHAR_H], [ --- 7,13 ---- dnl Written by Eric Blake. ! # wchar_h.m4 serial 39 AC_DEFUN([gl_WCHAR_H], [ *************** *** 119,131 **** fi ]) - dnl Unconditionally enables the replacement of . - AC_DEFUN([gl_REPLACE_WCHAR_H], - [ - dnl This is a no-op, because is always overridden. - : - ]) - AC_DEFUN([gl_WCHAR_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. --- 119,124 ---- diff -cNr octave-3.4.0/m4/wctype_h.m4 octave-3.4.1/m4/wctype_h.m4 *** octave-3.4.0/m4/wctype_h.m4 2011-02-08 05:02:34.000000000 -0500 --- octave-3.4.1/m4/wctype_h.m4 2011-06-15 11:13:47.000000000 -0400 *************** *** 1,4 **** ! # wctype_h.m4 serial 12 dnl A placeholder for ISO C99 , for platforms that lack it. --- 1,4 ---- ! # wctype_h.m4 serial 14 dnl A placeholder for ISO C99 , for platforms that lack it. *************** *** 11,16 **** --- 11,17 ---- AC_DEFUN([gl_WCTYPE_H], [ + AC_REQUIRE([gl_WCTYPE_H_DEFAULTS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS_ONCE([iswcntrl]) *************** *** 20,40 **** HAVE_ISWCNTRL=0 fi AC_SUBST([HAVE_ISWCNTRL]) - AC_CHECK_FUNCS_ONCE([iswblank]) - AC_CHECK_DECLS_ONCE([iswblank]) - if test $ac_cv_func_iswblank = yes; then - HAVE_ISWBLANK=1 - REPLACE_ISWBLANK=0 - else - HAVE_ISWBLANK=0 - if test $ac_cv_have_decl_iswblank = yes; then - REPLACE_ISWBLANK=1 - else - REPLACE_ISWBLANK=0 - fi - fi - AC_SUBST([HAVE_ISWBLANK]) - AC_SUBST([REPLACE_ISWBLANK]) AC_REQUIRE([AC_C_INLINE]) --- 21,26 ---- *************** *** 91,100 **** if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then dnl Redefine all of iswcntrl, ..., towupper in . : - else - if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then - dnl Redefine only iswblank. - AC_LIBOBJ([iswblank]) - fi fi ]) --- 77,174 ---- if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then dnl Redefine all of iswcntrl, ..., towupper in . : fi + + dnl We assume that the wctype() and iswctype() functions exist if and only + dnl if the type wctype_t is defined in or in if that + dnl exists. + dnl HP-UX 11.00 declares all these in and lacks . + AC_CACHE_CHECK([for wctype_t], [gl_cv_type_wctype_t], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[/* Tru64 with Desktop Toolkit C has a bug: must be + included before . + BSD/OS 4.0.1 has a bug: , and + must be included before . */ + #include + #include + #include + #include + #if HAVE_WCTYPE_H + # include + #endif + wctype_t a; + ]], + [[]])], + [gl_cv_type_wctype_t=yes], + [gl_cv_type_wctype_t=no]) + ]) + if test $gl_cv_type_wctype_t = no; then + HAVE_WCTYPE_T=0 + fi + + dnl We assume that the wctrans() and towctrans() functions exist if and only + dnl if the type wctrans_t is defined in . + AC_CACHE_CHECK([for wctrans_t], [gl_cv_type_wctrans_t], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[/* Tru64 with Desktop Toolkit C has a bug: must be + included before . + BSD/OS 4.0.1 has a bug: , and + must be included before . */ + #include + #include + #include + #include + #include + wctrans_t a; + ]], + [[]])], + [gl_cv_type_wctrans_t=yes], + [gl_cv_type_wctrans_t=no]) + ]) + if test $gl_cv_type_wctrans_t = no; then + HAVE_WCTRANS_T=0 + fi + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use. + gl_WARN_ON_USE_PREPARE([[ + /* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ + #if !(defined __GLIBC__ && !defined __UCLIBC__) + # include + # include + # include + # include + #endif + #include + ]], + [wctype iswctype wctrans towctrans + ]) + ]) + + AC_DEFUN([gl_WCTYPE_MODULE_INDICATOR], + [ + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_WCTYPE_H_DEFAULTS]) + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) + ]) + + AC_DEFUN([gl_WCTYPE_H_DEFAULTS], + [ + GNULIB_ISWBLANK=0; AC_SUBST([GNULIB_ISWBLANK]) + GNULIB_WCTYPE=0; AC_SUBST([GNULIB_WCTYPE]) + GNULIB_ISWCTYPE=0; AC_SUBST([GNULIB_ISWCTYPE]) + GNULIB_WCTRANS=0; AC_SUBST([GNULIB_WCTRANS]) + GNULIB_TOWCTRANS=0; AC_SUBST([GNULIB_TOWCTRANS]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_ISWBLANK=1; AC_SUBST([HAVE_ISWBLANK]) + HAVE_WCTYPE_T=1; AC_SUBST([HAVE_WCTYPE_T]) + HAVE_WCTRANS_T=1; AC_SUBST([HAVE_WCTRANS_T]) + REPLACE_ISWBLANK=0; AC_SUBST([REPLACE_ISWBLANK]) ]) diff -cNr octave-3.4.0/Makefile.am octave-3.4.1/Makefile.am *** octave-3.4.0/Makefile.am 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/Makefile.am 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** # along with Octave; see the file COPYING. If not, see # . ! include common.mk ## Avoid making multiple subdirs in parallel which can lead ## to a confusing error message stream --- 18,24 ---- # along with Octave; see the file COPYING. If not, see # . ! include build-aux/common.mk ## Avoid making multiple subdirs in parallel which can lead ## to a confusing error message stream *************** *** 26,65 **** ACLOCAL_AMFLAGS = -I m4 ! BUILT_DISTFILES = AUTHORS BUGS INSTALL.OCTAVE EXTRA_DIST = \ AUTHORS \ BUGS \ COPYING \ ChangeLog \ - ChangeLog.1 \ INSTALL \ INSTALL.OCTAVE \ NEWS \ - NEWS.1 \ - NEWS.2 \ - NEWS.3 \ - PROJECTS \ README \ - README.Cygwin \ - README.Linux \ - README.MacOS \ - README.Windows \ - README.kpathsea \ autogen.sh \ ! bootstrap \ ! bootstrap.conf \ ! gdbinit \ ! missing \ ! mk-opts.pl \ ! mkinstalldirs \ ! mkoctfile.cc.in \ ! mkoctfile.in \ ! move-if-change \ ! octave-config.cc.in \ ! octave-config.in \ ! octave-sh \ run-octave.in include m4/module.mk --- 26,68 ---- ACLOCAL_AMFLAGS = -I m4 ! BUILT_DISTFILES = AUTHORS BUGS ChangeLog INSTALL.OCTAVE EXTRA_DIST = \ AUTHORS \ BUGS \ COPYING \ ChangeLog \ INSTALL \ INSTALL.OCTAVE \ NEWS \ README \ autogen.sh \ ! build-aux/bootstrap \ ! build-aux/bootstrap.conf \ ! build-aux/mk-opts.pl \ ! build-aux/mkinstalldirs \ ! build-aux/move-if-change \ ! etc/NEWS.1 \ ! etc/NEWS.2 \ ! etc/NEWS.3 \ ! etc/OLD-ChangeLogs/ChangeLog \ ! etc/OLD-ChangeLogs/ChangeLog.1 \ ! etc/OLD-ChangeLogs/doc-ChangeLog \ ! etc/OLD-ChangeLogs/libcruft-ChangeLog \ ! etc/OLD-ChangeLogs/liboctave-ChangeLog \ ! etc/OLD-ChangeLogs/scripts-ChangeLog \ ! etc/OLD-ChangeLogs/src-ChangeLog \ ! etc/OLD-ChangeLogs/test-ChangeLog \ ! etc/PROJECTS \ ! etc/README.Cygwin \ ! etc/README.Linux \ ! etc/README.MacOS \ ! etc/README.MinGW \ ! etc/README.Windows \ ! etc/README.gnuplot \ ! etc/README.kpathsea \ ! etc/gdbinit \ run-octave.in include m4/module.mk *************** *** 73,102 **** echo "Documentation disabled. Cannot package distribution!" ; exit 1; endif ! if AMCOND_BUILD_COMPILED_AUX_PROGRAMS ! bin_PROGRAMS = \ ! mkoctfile \ ! octave-config ! ! mkoctfile_SOURCES = ! nodist_mkoctfile_SOURCES = mkoctfile.cc ! ! octave_config_SOURCES = ! nodist_octave_config_SOURCES = octave-config.cc ! ! BUILT_SOURCES = \ ! mkoctfile.cc \ ! octave-config.cc \ ! run-octave ! ! else ! bin_SCRIPTS = \ ! mkoctfile \ ! octave-config ! ! BUILT_SOURCES = \ ! run-octave ! endif noinst_SCRIPTS = run-octave --- 76,82 ---- echo "Documentation disabled. Cannot package distribution!" ; exit 1; endif ! BUILT_SOURCES = run-octave noinst_SCRIPTS = run-octave *************** *** 107,113 **** CLEANFILES = $(bin_PROGRAMS) $(bin_SCRIPTS) $(BUILT_SOURCES) ! DISTCLEANFILES = $(INFO_FILES) .gdbinit CONFIG_FILES = @ac_config_headers@ @ac_config_files@ --- 87,95 ---- CLEANFILES = $(bin_PROGRAMS) $(bin_SCRIPTS) $(BUILT_SOURCES) ! DISTCLEANFILES = .gdbinit ! ! MAINTAINERCLEANFILES = $(BUILT_DISTFILES) CONFIG_FILES = @ac_config_headers@ @ac_config_files@ *************** *** 122,151 **** @echo " make install - to install (PREFIX=$(prefix))" @echo "" ! if AMCOND_BUILD_COMPILED_AUX_PROGRAMS ! octave-config.cc: octave-config.cc.in Makefile ! @$(do_subst_default_vals) ! ! mkoctfile.cc: mkoctfile.cc.in Makefile ! @$(do_subst_config_vals) ! else ! octave-config: octave-config.in Makefile ! @$(do_subst_default_vals) ! chmod a+rx $@ ! ! mkoctfile: mkoctfile.in Makefile ! @$(do_subst_config_vals) ! chmod a+rx $@ ! endif run-octave: run-octave.in Makefile @$(do_subst_script_vals) chmod a+rx "$@" ! .gdbinit: gdbinit ! if [ -f .gdbinit ]; then \ echo "refusing to overwrite .gdbinit with newer version from $<" 1>&2; \ else \ cp $< $@; \ fi --- 104,121 ---- @echo " make install - to install (PREFIX=$(prefix))" @echo "" ! check: all ! $(MAKE) -C test check run-octave: run-octave.in Makefile @$(do_subst_script_vals) chmod a+rx "$@" ! .gdbinit: etc/gdbinit ! @if [ -f .gdbinit ]; then \ echo "refusing to overwrite .gdbinit with newer version from $<" 1>&2; \ else \ + echo "Installing .gdbinit from version at $<" ; \ cp $< $@; \ fi *************** *** 153,158 **** --- 123,133 ---- $(MAKE) -C doc/interpreter ../../$@ .PHONY: AUTHORS BUGS INSTALL.OCTAVE + ChangeLog: + (cd $(srcdir); hg log --style=build-aux/changelog.tmpl --prune=b0e60ad4ae26 --only-branch=`hg branch`; echo ""; echo "See the files in the directory etc/OLD-ChangeLogs for changes before 2011-04-19") > $@.t + mv $@.t $@ + .PHONY: ChangeLog + octetc_DATA = NEWS DIRS_TO_MAKE = \ diff -cNr octave-3.4.0/Makefile.in octave-3.4.1/Makefile.in *** octave-3.4.0/Makefile.in 2011-02-08 05:03:39.000000000 -0500 --- octave-3.4.1/Makefile.in 2011-06-15 11:31:31.000000000 -0400 *************** *** 37,43 **** - VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ --- 37,42 ---- *************** *** 57,76 **** build_triplet = @build@ host_triplet = @host@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ ! $(srcdir)/Makefile.in $(srcdir)/common.mk \ $(srcdir)/config.h.in $(srcdir)/m4/module.mk \ $(top_srcdir)/configure COPYING ChangeLog NEWS \ build-aux/config.guess build-aux/config.sub build-aux/depcomp \ build-aux/install-sh build-aux/ltmain.sh build-aux/mdate-sh \ ! build-aux/missing build-aux/ylwrap config.guess config.sub \ ! missing mkinstalldirs ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@bin_PROGRAMS = \ ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ mkoctfile$(EXEEXT) \ ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ octave-config$(EXEEXT) subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ --- 56,74 ---- build_triplet = @build@ host_triplet = @host@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ ! $(srcdir)/Makefile.in $(srcdir)/build-aux/common.mk \ $(srcdir)/config.h.in $(srcdir)/m4/module.mk \ $(top_srcdir)/configure COPYING ChangeLog NEWS \ build-aux/config.guess build-aux/config.sub build-aux/depcomp \ build-aux/install-sh build-aux/ltmain.sh build-aux/mdate-sh \ ! build-aux/missing build-aux/mkinstalldirs build-aux/ylwrap subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/ax_pthread.m4 \ ! $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ *************** *** 78,93 **** $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ --- 76,95 ---- $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filemode.m4 \ ! $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpurge.m4 \ ! $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/fseek.m4 \ ! $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftell.m4 \ ! $(top_srcdir)/m4/ftello.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ *************** *** 101,126 **** $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ ! $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ! $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ! $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ ! $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ ! $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ ! $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \ ! $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memchr.m4 \ ! $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ ! $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkfifo.m4 \ ! $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \ ! $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ ! $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nanosleep.m4 \ ! $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ ! $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/printf.m4 \ ! $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ ! $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \ ! $(top_srcdir)/m4/round.m4 $(top_srcdir)/m4/roundf.m4 \ ! $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/select.m4 \ ! $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ --- 103,130 ---- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ ! $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ ! $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ! $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ ! $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/math_h.m4 \ ! $(top_srcdir)/m4/mathfunc.m4 $(top_srcdir)/m4/mbrtowc.m4 \ ! $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ ! $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/md5.m4 \ ! $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \ ! $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \ ! $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkstemp.m4 \ ! $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ ! $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/multiarch.m4 \ ! $(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/nocrash.m4 \ ! $(top_srcdir)/m4/nproc.m4 $(top_srcdir)/m4/open.m4 \ ! $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ ! $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/readlink.m4 \ ! $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ ! $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/round.m4 \ ! $(top_srcdir)/m4/roundf.m4 $(top_srcdir)/m4/save-cwd.m4 \ ! $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/sigaction.m4 \ ! $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ *************** *** 128,175 **** $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \ ! $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ ! $(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \ ! $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/tempname.m4 \ ! $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ ! $(top_srcdir)/m4/times.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ ! $(top_srcdir)/m4/trunc.m4 $(top_srcdir)/m4/truncf.m4 \ ! $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ ! $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/vasnprintf.m4 \ ! $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ ! $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ ! $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ ! $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/acinclude.m4 \ ! $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno ! mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = ! am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" \ ! "$(DESTDIR)$(octetcdir)" "$(DESTDIR)$(octincludedir)" ! PROGRAMS = $(bin_PROGRAMS) ! am_mkoctfile_OBJECTS = ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@nodist_mkoctfile_OBJECTS = \ ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ mkoctfile.$(OBJEXT) ! mkoctfile_OBJECTS = $(am_mkoctfile_OBJECTS) \ ! $(nodist_mkoctfile_OBJECTS) ! mkoctfile_LDADD = $(LDADD) ! am_octave_config_OBJECTS = ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@nodist_octave_config_OBJECTS = octave-config.$(OBJEXT) ! octave_config_OBJECTS = $(am_octave_config_OBJECTS) \ ! $(nodist_octave_config_OBJECTS) ! octave_config_LDADD = $(LDADD) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ --- 132,172 ---- $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strdup.m4 \ ! $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.m4 \ ! $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ ! $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \ ! $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/times.m4 \ ! $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/trunc.m4 \ ! $(top_srcdir)/m4/truncf.m4 $(top_srcdir)/m4/unistd-safer.m4 \ ! $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ ! $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vsnprintf.m4 \ ! $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ ! $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ ! $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno ! mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = ! SCRIPTS = $(noinst_SCRIPTS) ! SOURCES = ! DIST_SOURCES = ! RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ ! html-recursive info-recursive install-data-recursive \ ! install-dvi-recursive install-exec-recursive \ ! install-html-recursive install-info-recursive \ ! install-pdf-recursive install-ps-recursive install-recursive \ ! installcheck-recursive installdirs-recursive pdf-recursive \ ! ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *************** *** 191,220 **** am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' ! SCRIPTS = $(bin_SCRIPTS) $(noinst_SCRIPTS) ! DEFAULT_INCLUDES = -I.@am__isrc@ ! depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp ! am__depfiles_maybe = depfiles ! am__mv = mv -f ! CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ ! $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) ! LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ! --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ ! $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) ! CXXLD = $(CXX) ! CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ! --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ ! $(LDFLAGS) -o $@ ! SOURCES = $(mkoctfile_SOURCES) $(nodist_mkoctfile_SOURCES) \ ! $(octave_config_SOURCES) $(nodist_octave_config_SOURCES) ! DIST_SOURCES = $(mkoctfile_SOURCES) $(octave_config_SOURCES) ! RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ ! html-recursive info-recursive install-data-recursive \ ! install-dvi-recursive install-exec-recursive \ ! install-html-recursive install-info-recursive \ ! install-pdf-recursive install-ps-recursive install-recursive \ ! installcheck-recursive installdirs-recursive pdf-recursive \ ! ps-recursive uninstall-recursive DATA = $(octetc_DATA) HEADERS = $(nodist_octinclude_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ --- 188,195 ---- am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' ! am__installdirs = "$(DESTDIR)$(octetcdir)" \ ! "$(DESTDIR)$(octincludedir)" DATA = $(octetc_DATA) HEADERS = $(nodist_octinclude_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ *************** *** 273,279 **** AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ - ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ --- 248,253 ---- *************** *** 425,430 **** --- 399,406 ---- GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ + GNULIB_FGETC = @GNULIB_FGETC@ + GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ *************** *** 434,442 **** --- 410,420 ---- GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ + GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPL = @GNULIB_FREXPL@ + GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ *************** *** 446,451 **** --- 424,431 ---- GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ + GNULIB_GETC = @GNULIB_GETC@ + GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ *************** *** 458,475 **** --- 438,459 ---- GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ + GNULIB_GETS = @GNULIB_GETS@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ + GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ + GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ + GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ *************** *** 500,505 **** --- 484,490 ---- GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ + GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ *************** *** 516,521 **** --- 501,507 ---- GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ + GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ *************** *** 535,540 **** --- 521,527 ---- GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ + GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ *************** *** 550,555 **** --- 537,543 ---- GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ + GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ *************** *** 567,572 **** --- 555,561 ---- GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ + GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ *************** *** 596,606 **** --- 585,597 ---- GNULIB_TIMES = @GNULIB_TIMES@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ + GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ + GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ *************** *** 612,619 **** --- 603,612 ---- GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ + GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ + GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ *************** *** 643,648 **** --- 636,644 ---- GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ + GNULIB_WCTOMB = @GNULIB_WCTOMB@ + GNULIB_WCTRANS = @GNULIB_WCTRANS@ + GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ *************** *** 709,715 **** HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ - HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ --- 705,710 ---- *************** *** 750,755 **** --- 745,751 ---- HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ + HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ *************** *** 784,789 **** --- 780,786 ---- HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ + HAVE_PCRE_CONFIG = @HAVE_PCRE_CONFIG@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ *************** *** 802,807 **** --- 799,805 ---- HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGACTION = @HAVE_SIGACTION@ + HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ *************** *** 813,819 **** HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ - HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ --- 811,816 ---- *************** *** 841,846 **** --- 838,844 ---- HAVE_SYS_TIMES_H = @HAVE_SYS_TIMES_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ + HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMES = @HAVE_TIMES@ *************** *** 881,887 **** --- 879,887 ---- HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ + HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ + HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ *************** *** 925,930 **** --- 925,931 ---- LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ + LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ *************** *** 935,940 **** --- 936,942 ---- MAGICK_LDFLAGS = @MAGICK_LDFLAGS@ MAGICK_LIBS = @MAGICK_LIBS@ MAKEINFO = @MAKEINFO@ + MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKOCTFILE_DL_LDFLAGS = @MKOCTFILE_DL_LDFLAGS@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ *************** *** 948,960 **** NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ - NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ --- 950,962 ---- NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ + NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ *************** *** 970,982 **** NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ - NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ --- 972,984 ---- NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ + NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ *************** *** 1089,1094 **** --- 1091,1097 ---- REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ + REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ *************** *** 1109,1114 **** --- 1112,1118 ---- REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ + REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ *************** *** 1127,1135 **** --- 1131,1141 ---- REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ + REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ + REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ *************** *** 1163,1168 **** --- 1169,1175 ---- REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ + REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RLD_FLAG = @RLD_FLAG@ *************** *** 1170,1176 **** ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = /bin/sh SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ --- 1177,1183 ---- ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = @SHELL@ SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ *************** *** 1227,1233 **** WARN_CXXFLAGS = @WARN_CXXFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ - WITH_PCRE_CONFIG = @WITH_PCRE_CONFIG@ X11_INCFLAGS = @X11_INCFLAGS@ X11_LIBS = @X11_LIBS@ XMKMF = @XMKMF@ --- 1234,1239 ---- *************** *** 1245,1250 **** --- 1251,1257 ---- abs_top_srcdir = @abs_top_srcdir@ ac_config_files = @ac_config_files@ ac_config_headers = @ac_config_headers@ + ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ *************** *** 1358,1364 **** localverarchlibdir = @localverarchlibdir@ localverfcnfiledir = @localverfcnfiledir@ localveroctfiledir = @localveroctfiledir@ - lt_ECHO = @lt_ECHO@ man1dir = @man1dir@ man1ext = @man1ext@ --- 1365,1370 ---- *************** *** 1461,1496 **** # a space, so protect with $(null)) null = ACLOCAL_AMFLAGS = -I m4 ! BUILT_DISTFILES = AUTHORS BUGS INSTALL.OCTAVE ! EXTRA_DIST = AUTHORS BUGS COPYING ChangeLog ChangeLog.1 INSTALL \ ! INSTALL.OCTAVE NEWS NEWS.1 NEWS.2 NEWS.3 PROJECTS README \ ! README.Cygwin README.Linux README.MacOS README.Windows \ ! README.kpathsea autogen.sh bootstrap bootstrap.conf gdbinit \ ! missing mk-opts.pl mkinstalldirs mkoctfile.cc.in mkoctfile.in \ ! move-if-change octave-config.cc.in octave-config.in octave-sh \ ! run-octave.in m4/module.mk m4/ax_blas.m4 \ ! m4/ax_blas_f77_func.m4 m4/ax_lapack.m4 m4/ax_pthread.m4 \ ! m4/gnulib-cache.m4 m4/libtool.m4 m4/ltoptions.m4 m4/ltsugar.m4 \ ! m4/ltversion.m4 m4/lt~obsolete.m4 # Subdirectories in which to run `make all'. SUBDIRS = libgnu libcruft liboctave src scripts @DOCDIR@ examples test ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@mkoctfile_SOURCES = ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@nodist_mkoctfile_SOURCES = mkoctfile.cc ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@octave_config_SOURCES = ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@nodist_octave_config_SOURCES = octave-config.cc ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@BUILT_SOURCES = \ ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@ run-octave ! ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@BUILT_SOURCES = \ ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ mkoctfile.cc \ ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ octave-config.cc \ ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ run-octave ! ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@bin_SCRIPTS = \ ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@ mkoctfile \ ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@ octave-config ! noinst_SCRIPTS = run-octave INFO_FILES = \ AUTHORS \ --- 1467,1496 ---- # a space, so protect with $(null)) null = ACLOCAL_AMFLAGS = -I m4 ! BUILT_DISTFILES = AUTHORS BUGS ChangeLog INSTALL.OCTAVE ! EXTRA_DIST = AUTHORS BUGS COPYING ChangeLog INSTALL INSTALL.OCTAVE \ ! NEWS README autogen.sh build-aux/bootstrap \ ! build-aux/bootstrap.conf build-aux/mk-opts.pl \ ! build-aux/mkinstalldirs build-aux/move-if-change etc/NEWS.1 \ ! etc/NEWS.2 etc/NEWS.3 etc/OLD-ChangeLogs/ChangeLog \ ! etc/OLD-ChangeLogs/ChangeLog.1 \ ! etc/OLD-ChangeLogs/doc-ChangeLog \ ! etc/OLD-ChangeLogs/libcruft-ChangeLog \ ! etc/OLD-ChangeLogs/liboctave-ChangeLog \ ! etc/OLD-ChangeLogs/scripts-ChangeLog \ ! etc/OLD-ChangeLogs/src-ChangeLog \ ! etc/OLD-ChangeLogs/test-ChangeLog etc/PROJECTS \ ! etc/README.Cygwin etc/README.Linux etc/README.MacOS \ ! etc/README.MinGW etc/README.Windows etc/README.gnuplot \ ! etc/README.kpathsea etc/gdbinit run-octave.in m4/module.mk \ ! m4/ax_blas.m4 m4/ax_blas_f77_func.m4 m4/ax_lapack.m4 \ ! m4/ax_pthread.m4 m4/gnulib-cache.m4 m4/libtool.m4 \ ! m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 \ ! m4/lt~obsolete.m4 # Subdirectories in which to run `make all'. SUBDIRS = libgnu libcruft liboctave src scripts @DOCDIR@ examples test ! BUILT_SOURCES = run-octave noinst_SCRIPTS = run-octave INFO_FILES = \ AUTHORS \ *************** *** 1498,1504 **** INSTALL.OCTAVE CLEANFILES = $(bin_PROGRAMS) $(bin_SCRIPTS) $(BUILT_SOURCES) ! DISTCLEANFILES = $(INFO_FILES) .gdbinit CONFIG_FILES = @ac_config_headers@ @ac_config_files@ nodist_octinclude_HEADERS = config.h octetc_DATA = NEWS --- 1498,1505 ---- INSTALL.OCTAVE CLEANFILES = $(bin_PROGRAMS) $(bin_SCRIPTS) $(BUILT_SOURCES) ! DISTCLEANFILES = .gdbinit ! MAINTAINERCLEANFILES = $(BUILT_DISTFILES) CONFIG_FILES = @ac_config_headers@ @ac_config_files@ nodist_octinclude_HEADERS = config.h octetc_DATA = NEWS *************** *** 1517,1526 **** $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: - .SUFFIXES: .cc .lo .o .obj am--refresh: @: ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/common.mk $(srcdir)/m4/module.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ --- 1518,1526 ---- $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: @: ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/build-aux/common.mk $(srcdir)/m4/module.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ *************** *** 1569,1687 **** distclean-hdr: -rm -f config.h stamp-h1 - install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p || test -f $$p1; \ - then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - - uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - - clean-binPROGRAMS: - @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@mkoctfile$(EXEEXT): $(mkoctfile_OBJECTS) $(mkoctfile_DEPENDENCIES) - @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ @rm -f mkoctfile$(EXEEXT) - @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ $(CXXLINK) $(mkoctfile_OBJECTS) $(mkoctfile_LDADD) $(LIBS) - @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@octave-config$(EXEEXT): $(octave_config_OBJECTS) $(octave_config_DEPENDENCIES) - @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ @rm -f octave-config$(EXEEXT) - @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ $(CXXLINK) $(octave_config_OBJECTS) $(octave_config_LDADD) $(LIBS) - install-binSCRIPTS: $(bin_SCRIPTS) - @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" - @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n' \ - -e 'h;s|.*|.|' \ - -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) { files[d] = files[d] " " $$1; \ - if (++n[d] == $(am__install_max)) { \ - print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ - else { print "f", d "/" $$4, $$1 } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - - uninstall-binSCRIPTS: - @$(NORMAL_UNINSTALL) - @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 's,.*/,,;$(transform)'`; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - - mostlyclean-compile: - -rm -f *.$(OBJEXT) - - distclean-compile: - -rm -f *.tab.c - - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkoctfile.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/octave-config.Po@am__quote@ - - .cc.o: - @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< - @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po - @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< - - .cc.obj: - @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` - @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po - @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - - .cc.lo: - @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< - @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo - @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo --- 1569,1574 ---- *************** *** 2049,2059 **** check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive ! all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(DATA) $(HEADERS) config.h \ ! all-local installdirs: installdirs-recursive installdirs-am: installdirs-local ! for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(octetcdir)" "$(DESTDIR)$(octincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) --- 1936,1945 ---- check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive ! all-am: Makefile $(SCRIPTS) $(DATA) $(HEADERS) config.h all-local installdirs: installdirs-recursive installdirs-am: installdirs-local ! for dir in "$(DESTDIR)$(octetcdir)" "$(DESTDIR)$(octincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) *************** *** 2085,2100 **** @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-recursive ! clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf ./$(DEPDIR) -rm -f Makefile ! distclean-am: clean-am distclean-compile distclean-generic \ ! distclean-hdr distclean-libtool distclean-tags dvi: dvi-recursive --- 1971,1986 ---- @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive ! clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile ! distclean-am: clean-am distclean-generic distclean-hdr \ ! distclean-libtool distclean-tags dvi: dvi-recursive *************** *** 2115,2121 **** install-dvi-am: ! install-exec-am: install-binPROGRAMS install-binSCRIPTS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-exec-hook install-html: install-html-recursive --- 2001,2007 ---- install-dvi-am: ! install-exec-am: @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-exec-hook install-html: install-html-recursive *************** *** 2141,2154 **** maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache - -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive ! mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ! mostlyclean-libtool pdf: pdf-recursive --- 2027,2038 ---- maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive ! mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive *************** *** 2158,2165 **** ps-am: ! uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \ ! uninstall-local uninstall-nodist_octincludeHEADERS \ uninstall-octetcDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ --- 2042,2048 ---- ps-am: ! uninstall-am: uninstall-local uninstall-nodist_octincludeHEADERS \ uninstall-octetcDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ *************** *** 2168,2180 **** .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am all-local am--refresh check check-am clean \ ! clean-binPROGRAMS clean-generic clean-libtool ctags \ ! ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-hook \ ! dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \ ! distclean distclean-compile distclean-generic distclean-hdr \ ! distclean-libtool distclean-tags distcleancheck distdir \ ! distuninstallcheck dvi dvi-am html html-am info info-am \ ! install install-am install-binPROGRAMS install-binSCRIPTS \ install-data install-data-am install-data-local install-dvi \ install-dvi-am install-exec install-exec-am install-exec-hook \ install-html install-html-am install-info install-info-am \ --- 2051,2062 ---- .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am all-local am--refresh check check-am clean \ ! clean-generic clean-libtool ctags ctags-recursive dist \ ! dist-all dist-bzip2 dist-gzip dist-hook dist-lzma dist-shar \ ! dist-tarZ dist-xz dist-zip distcheck distclean \ ! distclean-generic distclean-hdr distclean-libtool \ ! distclean-tags distcleancheck distdir distuninstallcheck dvi \ ! dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-local install-dvi \ install-dvi-am install-exec install-exec-am install-exec-hook \ install-html install-html-am install-info install-info-am \ *************** *** 2182,2191 **** install-octetcDATA install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-local maintainer-clean \ ! maintainer-clean-generic mostlyclean mostlyclean-compile \ ! mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ! tags tags-recursive uninstall uninstall-am \ ! uninstall-binPROGRAMS uninstall-binSCRIPTS uninstall-local \ uninstall-nodist_octincludeHEADERS uninstall-octetcDATA export AWK --- 2064,2072 ---- install-octetcDATA install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-local maintainer-clean \ ! maintainer-clean-generic mostlyclean mostlyclean-generic \ ! mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ ! uninstall uninstall-am uninstall-local \ uninstall-nodist_octincludeHEADERS uninstall-octetcDATA export AWK *************** *** 2198,2204 **** define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ --- 2079,2085 ---- define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/build-aux/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ *************** *** 2422,2428 **** endef define do_script_install ! $(top_srcdir)/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ --- 2303,2309 ---- endef define do_script_install ! $(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ *************** *** 2458,2484 **** @echo " make install - to install (PREFIX=$(prefix))" @echo "" ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@octave-config.cc: octave-config.cc.in Makefile ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ @$(do_subst_default_vals) ! ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@mkoctfile.cc: mkoctfile.cc.in Makefile ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ @$(do_subst_config_vals) ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@octave-config: octave-config.in Makefile ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@ @$(do_subst_default_vals) ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@ chmod a+rx $@ ! ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@mkoctfile: mkoctfile.in Makefile ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@ @$(do_subst_config_vals) ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@ chmod a+rx $@ run-octave: run-octave.in Makefile @$(do_subst_script_vals) chmod a+rx "$@" ! .gdbinit: gdbinit ! if [ -f .gdbinit ]; then \ echo "refusing to overwrite .gdbinit with newer version from $<" 1>&2; \ else \ cp $< $@; \ fi --- 2339,2356 ---- @echo " make install - to install (PREFIX=$(prefix))" @echo "" ! check: all ! $(MAKE) -C test check run-octave: run-octave.in Makefile @$(do_subst_script_vals) chmod a+rx "$@" ! .gdbinit: etc/gdbinit ! @if [ -f .gdbinit ]; then \ echo "refusing to overwrite .gdbinit with newer version from $<" 1>&2; \ else \ + echo "Installing .gdbinit from version at $<" ; \ cp $< $@; \ fi *************** *** 2486,2491 **** --- 2358,2368 ---- $(MAKE) -C doc/interpreter ../../$@ .PHONY: AUTHORS BUGS INSTALL.OCTAVE + ChangeLog: + (cd $(srcdir); hg log --style=build-aux/changelog.tmpl --prune=b0e60ad4ae26 --only-branch=`hg branch`; echo ""; echo "See the files in the directory etc/OLD-ChangeLogs for changes before 2011-04-19") > $@.t + mv $@.t $@ + .PHONY: ChangeLog + installdirs-local: $(MKDIR_P) $(addprefix $(DESTDIR), $(DIRS_TO_MAKE)) diff -cNr octave-3.4.0/missing octave-3.4.1/missing *** octave-3.4.0/missing 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/missing 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,367 **** - #! /bin/sh - # Common stub for a few missing GNU programs while installing. - - scriptversion=2006-05-10.23 - - # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 - # Free Software Foundation, Inc. - # Originally by Fran,cois Pinard , 1996. - - # 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 2, 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, write to the Free Software - # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - # 02110-1301, USA. - - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - - if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - fi - - run=: - sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' - sed_minuso='s/.* -o \([^ ]*\).*/\1/p' - - # In the cases where this matters, `missing' is being run in the - # srcdir already. - if test -f configure.ac; then - configure_ac=configure.ac - else - configure_ac=configure.in - fi - - msg="missing on your system" - - case $1 in - --run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - # Exit code 63 means version mismatch. This often happens - # when the user try to use an ancient version of a tool on - # a file that requires a minimum version. In this case we - # we should proceed has if the program had been absent, or - # if --run hadn't been passed. - if test $? = 63; then - run=: - msg="probably too old" - fi - ;; - - -h|--h|--he|--hel|--help) - echo "\ - $0 [OPTION]... PROGRAM [ARGUMENT]... - - Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an - error status if there is no known handling for PROGRAM. - - Options: - -h, --help display this help and exit - -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails - - Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - autom4te touch the output file, or create a stub one - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch] - - Send bug reports to ." - exit $? - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" - exit $? - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - - esac - - # Now exit if we have it, but it failed. Also exit now if we - # don't have it and --version was passed (most likely to detect - # the program). - case $1 in - lex|yacc) - # Not GNU programs, they don't have --version. - ;; - - tar) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; - - *) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - # Could not run --version or --help. This is probably someone - # running `$TOOL --version' or `$TOOL --help' to check whether - # $TOOL exists and not knowing $TOOL uses missing. - exit 1 - fi - ;; - esac - - # If it does not exist, or fails to run (possibly an outdated version), - # try to emulate it. - case $1 in - aclocal*) - echo 1>&2 "\ - WARNING: \`$1' is $msg. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - echo 1>&2 "\ - WARNING: \`$1' is $msg. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - echo 1>&2 "\ - WARNING: \`$1' is $msg. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case $f in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - echo 1>&2 "\ - WARNING: \`$1' is $msg. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te) - echo 1>&2 "\ - WARNING: \`$1' is needed, but is $msg. - You might have modified some files without having the - proper tools for further handling them. - You can get \`$1' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison|yacc) - echo 1>&2 "\ - WARNING: \`$1' $msg. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if test ! -f y.tab.h; then - echo >y.tab.h - fi - if test ! -f y.tab.c; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex|flex) - echo 1>&2 "\ - WARNING: \`$1' is $msg. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if test ! -f lex.yy.c; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man) - echo 1>&2 "\ - WARNING: \`$1' is $msg. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit 1 - fi - ;; - - makeinfo) - echo 1>&2 "\ - WARNING: \`$1' is $msg. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -z "$file"; then - # ... or it is the one specified with @setfilename ... - infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n ' - /^@setfilename/{ - s/.* \([^ ]*\) *$/\1/ - p - q - }' $infile` - # ... or it is derived from the source name (dir/f.texi becomes f.info) - test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info - fi - # If the file does not exist, the user really needs makeinfo; - # let's fail without touching anything. - test -f $file || exit 1 - touch $file - ;; - - tar) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case $firstarg in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case $firstarg in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ - WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - - *) - echo 1>&2 "\ - WARNING: \`$1' is needed, and is $msg. - You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequisites for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; - esac - - exit 0 - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) - # time-stamp-start: "scriptversion=" - # time-stamp-format: "%:y-%02m-%02d.%02H" - # time-stamp-end: "$" - # End: --- 0 ---- diff -cNr octave-3.4.0/mkinstalldirs octave-3.4.1/mkinstalldirs *** octave-3.4.0/mkinstalldirs 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/mkinstalldirs 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,36 **** - #!/bin/sh - # mkinstalldirs --- make directory hierarchy - # Author: Noah Friedman - # Created: 1993-05-16 - # Last modified: Wed Jan 25 09:35:21 1995 - # Public domain - - errstatus=0 - - dirmode=0755 - - for file in ${1+"$@"} ; do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift - - pathcomp= - for d in ${1+"$@"} ; do - pathcomp="$pathcomp$d" - case "$pathcomp" in - -* ) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" 1>&2 - mkdir "$pathcomp" || errstatus=$? - echo "chmod $dirmode $pathcomp" 1>&2 - chmod $dirmode "$pathcomp" || errstatus=$? - fi - - pathcomp="$pathcomp/" - done - done - - exit $errstatus - - # mkinstalldirs ends here --- 0 ---- diff -cNr octave-3.4.0/mkoctfile.cc.in octave-3.4.1/mkoctfile.cc.in *** octave-3.4.0/mkoctfile.cc.in 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/mkoctfile.cc.in 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,778 **** - /* - - Copyright (C) 2008-2011 Michael Goffioul - - This file is part of Octave. - - Octave 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. - - Octave 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 Octave; see the file COPYING. If not, see - . - - */ - - #if defined (HAVE_CONFIG_H) - #include - #endif - - #include - #include - #include - #include - #include - #include - #include - #include - - #if defined (__WIN32__) && ! defined (_POSIX_VERSION) - #include - #ifdef _MSC_VER - #define popen _popen - #define pclose _pclose - #endif - #endif - - using namespace std; - - static bool initialized = false; - static map vars; - - static string OCTAVE_VERSION = %OCTAVE_CONF_VERSION%; - - static std::string - substitute_prefix (const std::string& s, const std::string& prefix, - const std::string& new_prefix) - { - std::string retval = s; - - if (!prefix.empty () && new_prefix != prefix) - { - int len = prefix.length (); - if (retval.find (prefix) == 0) - retval.replace (0, len, new_prefix); - } - - #if defined (__WIN32__) && ! defined (_POSIX_VERSION) - std::replace (retval.begin (), retval.end (), '/', '\\'); - #endif - - return retval; - } - - static string - get_line (FILE *fp) - { - static vector buf (100); - int idx = 0; - char c; - - while (true) - { - c = static_cast (fgetc (fp)); - if (c == '\n' || c == EOF) - break; - if (buf.size () <= idx) - buf.resize (buf.size () + 100); - buf[idx++] = c; - } - if (idx == 0) - return string (""); - else - return string (&buf[0], idx); - } - - - static string - get_variable (const char *name, const string& defval) - { - const char *val = getenv (name); - if (val == NULL || val[0] == '\0') - return defval; - else - return string (val); - } - - static string - quote_path (const string& s) - { - if (s.find (' ') != string::npos && s[0] != '"') - return "\"" + s + "\""; - else - return s; - } - - static void - initialize (void) - { - if (initialized) - return; - - initialized = true; - - vars["OCTAVE_HOME"] = get_variable ("OCTAVE_HOME", ""); - - #if defined (__WIN32__) && ! defined (_POSIX_VERSION) - int n = 1024; - - std::string bin_dir (n, '\0'); - - while (true) - { - int status = GetModuleFileName (0, &bin_dir[0], n); - - if (status < n) - { - bin_dir.resize (status); - break; - } - else - { - n *= 2; - bin_dir.resize (n); - } - } - - if (! bin_dir.empty ()) - { - size_t pos = bin_dir.rfind ("\\bin\\"); - - if (pos != string::npos) - vars["OCTAVE_HOME"] = bin_dir.substr (0, pos); - } - #endif - - vars["SED"] = get_variable ("SED", %OCTAVE_CONF_SED%); - - vars["OCTAVE_PREFIX"] = %OCTAVE_CONF_PREFIX%; - - std::string DEFAULT_OCTINCLUDEDIR = %OCTAVE_CONF_OCTINCLUDEDIR%; - std::string DEFAULT_INCLUDEDIR = %OCTAVE_CONF_INCLUDEDIR%; - std::string DEFAULT_LIBDIR = %OCTAVE_CONF_LIBDIR%; - std::string DEFAULT_OCTLIBDIR = %OCTAVE_CONF_OCTLIBDIR%; - - if (! vars["OCTAVE_HOME"].empty ()) - { - DEFAULT_OCTINCLUDEDIR - = substitute_prefix (DEFAULT_OCTINCLUDEDIR, vars["OCTAVE_PREFIX"], - vars["OCTAVE_HOME"]); - - DEFAULT_INCLUDEDIR - = substitute_prefix (DEFAULT_INCLUDEDIR, vars["OCTAVE_PREFIX"], - vars["OCTAVE_HOME"]); - - DEFAULT_LIBDIR - = substitute_prefix (DEFAULT_LIBDIR, vars["OCTAVE_PREFIX"], - vars["OCTAVE_HOME"]); - - DEFAULT_OCTLIBDIR - = substitute_prefix (DEFAULT_OCTLIBDIR, vars["OCTAVE_PREFIX"], - vars["OCTAVE_HOME"]); - } - - vars["OCTINCLUDEDIR"] = get_variable ("OCTINCLUDEDIR", DEFAULT_OCTINCLUDEDIR); - vars["INCLUDEDIR"] = get_variable ("INCLUDEDIR", DEFAULT_INCLUDEDIR); - vars["LIBDIR"] = get_variable ("LIBDIR", DEFAULT_LIBDIR); - vars["OCTLIBDIR"] = get_variable ("OCTLIBDIR", DEFAULT_OCTLIBDIR); - - #if defined (__WIN32__) && ! defined (_POSIX_VERSION) - std::string DEFAULT_INCFLAGS - = "-I" + quote_path (vars["OCTINCLUDEDIR"] + "\\..") - + " -I" + quote_path (vars["OCTINCLUDEDIR"]); - #else - std::string DEFAULT_INCFLAGS - = "-I" + quote_path (vars["OCTINCLUDEDIR"] + "/..") - + " -I" + quote_path (vars["OCTINCLUDEDIR"]); - #endif - if (vars["INCLUDEDIR"] != "/usr/include") - DEFAULT_INCFLAGS += " -I" + quote_path (vars["INCLUDEDIR"]); - - std::string DEFAULT_LFLAGS = "-L" + quote_path (vars["OCTLIBDIR"]); - if (vars["LIBDIR"] != "/usr/lib") - DEFAULT_LFLAGS += " -L" + quote_path (vars["LIBDIR"]); - - vars["CPPFLAGS"] = get_variable ("CPPFLAGS", %OCTAVE_CONF_CPPFLAGS%); - vars["INCFLAGS"] = get_variable ("INCFLAGS", DEFAULT_INCFLAGS); - vars["F77"] = get_variable ("F77", %OCTAVE_CONF_F77%); - vars["FFLAGS"] = get_variable ("FFLAGS", %OCTAVE_CONF_FFLAGS%); - vars["FPICFLAG"] = get_variable ("FPICFLAG", %OCTAVE_CONF_FPICFLAG%); - vars["CC"] = get_variable ("CC", %OCTAVE_CONF_CC%); - vars["CFLAGS"] = get_variable ("CFLAGS", %OCTAVE_CONF_CFLAGS%); - vars["CPICFLAG"] = get_variable ("CPICFLAG", %OCTAVE_CONF_CPICFLAG%); - vars["CXX"] = get_variable ("CXX", %OCTAVE_CONF_CXX%); - vars["CXXFLAGS"] = get_variable ("CXXFLAGS", %OCTAVE_CONF_CXXFLAGS%); - vars["CXXPICFLAG"] = get_variable ("CXXPICFLAG", %OCTAVE_CONF_CXXPICFLAG%); - vars["XTRA_CFLAGS"] = get_variable ("XTRA_CFLAGS", %OCTAVE_CONF_XTRA_CFLAGS%); - vars["XTRA_CXXFLAGS"] = get_variable ("XTRA_CXXFLAGS", %OCTAVE_CONF_XTRA_CXXFLAGS%); - - vars["DEPEND_FLAGS"] = get_variable ("DEPEND_FLAGS", %OCTAVE_CONF_DEPEND_FLAGS%); - vars["DEPEND_EXTRA_SED_PATTERN"] = get_variable ("DEPEND_EXTRA_SED_PATTERN", %OCTAVE_CONF_DEPEND_EXTRA_SED_PATTERN%); - - vars["DL_LD"] = get_variable ("DL_LD", %OCTAVE_CONF_DL_LD%); - vars["DL_LDFLAGS"] = get_variable ("DL_LDFLAGS", %OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS%); - - vars["RLD_FLAG"] = get_variable ("RLD_FLAG", %OCTAVE_CONF_RLD_FLAG%); - vars["RDYNAMIC_FLAG"] = get_variable ("RDYNAMIC_FLAG", %OCTAVE_CONF_RDYNAMIC_FLAG%); - vars["LIBOCTAVE"] = "-loctave"; - vars["LIBOCTINTERP"] = "-loctinterp"; - vars["READLINE_LIBS"] = "-lreadline"; - vars["LIBCRUFT"] = "-lcruft"; - vars["LAPACK_LIBS"] = get_variable ("LAPACK_LIBS", %OCTAVE_CONF_LAPACK_LIBS%); - vars["BLAS_LIBS"] = get_variable ("BLAS_LIBS", %OCTAVE_CONF_BLAS_LIBS%); - vars["FFTW3_LDFLAGS"] = get_variable ("FFTW3_LDFLAGS", %OCTAVE_CONF_FFTW3_LDFLAGS%); - vars["FFTW3_LIBS"] = get_variable ("FFTW3_LIBS", %OCTAVE_CONF_FFTW3_LIBS%); - vars["FFTW3F_LDFLAGS"] = get_variable ("FFTW3F_LDFLAGS", %OCTAVE_CONF_FFTW3F_LDFLAGS%); - vars["FFTW3F_LIBS"] = get_variable ("FFTW3F_LIBS", %OCTAVE_CONF_FFTW3F_LIBS%); - vars["LIBS"] = get_variable ("LIBS", %OCTAVE_CONF_LIBS%); - vars["FLIBS"] = get_variable ("FLIBS", %OCTAVE_CONF_FLIBS%); - vars["LD_CXX"] = get_variable ("LD_CXX", %OCTAVE_CONF_LD_CXX%); - vars["LDFLAGS"] = get_variable ("LDFLAGS", %OCTAVE_CONF_LDFLAGS%); - vars["LD_STATIC_FLAG"] = get_variable ("LD_STATIC_FLAG", %OCTAVE_CONF_LD_STATIC_FLAG%); - vars["LFLAGS"] = get_variable ("LFLAGS", DEFAULT_LFLAGS); - vars["F77_INTEGER8_FLAG"] = get_variable ("F77_INTEGER8_FLAG", %OCTAVE_CONF_F77_INTEGER_8_FLAG%); - - vars["ALL_FFLAGS"] = vars["FFLAGS"] + " " + vars["F77_INTEGER8_FLAG"]; - - vars["ALL_CFLAGS"] = vars["INCFLAGS"] + " " + vars["XTRA_CFLAGS"] - + " " + vars["CFLAGS"]; - - vars["ALL_CXXFLAGS"] = vars["INCFLAGS"] + " " + vars["XTRA_CXXFLAGS"] - + " " + vars["CXXFLAGS"]; - - vars["ALL_LDFLAGS"] = vars["LD_STATIC_FLAG"] + " " + vars["CPICFLAG"] - + " " + vars["LDFLAGS"]; - - vars["OCTAVE_LIBS"] = vars["LIBOCTINTERP"] + " " + vars["LIBOCTAVE"] - + " " + vars["SPECIAL_MATH_LIB"] + " " + vars["LIBCRUFT"]; - - vars["FFTW_LIBS"] = vars["FFTW3_LDFLAGS"] + " " + vars["FFTW3_LIBS"] - + " " + vars["FFTW3F_LDFLAGS"] + " " + vars["FFTW3F_LIBS"]; - } - - static string usage_msg = "usage: mkoctfile [options] file ..."; - static string version_msg = "mkoctfile, version " + OCTAVE_VERSION; - static bool debug = false; - static string help_msg = - "\n" - "Options:\n" - "\n" - " -h, -?, --help Print this message.\n" - "\n" - " -IDIR Add -IDIR to compile commands.\n" - "\n" - " -idirafter DIR Add -idirafter DIR to compile commands.\n" - "\n" - " -DDEF Add -DDEF to compile commands.\n" - "\n" - " -lLIB Add library LIB to link command.\n" - "\n" - " -LDIR Add -LDIR to link command.\n" - "\n" - " -M, --depend Generate dependency files (.d) for C and C++\n" - " source files.\n" - "\n" - " -RDIR Add -RDIR to link command.\n" - "\n" - " -Wl,... Pass flags though the linker like -Wl,-rpath=...\n" - "\n" - " -W... Pass flags though the compiler like -Wa,OPTION.\n" - "\n" - " -c, --compile Compile, but do not link.\n" - "\n" - " -o FILE, --output FILE Output file name. Default extension is .oct\n" - " (or .mex if --mex is specified) unless linking\n" - " a stand-alone executable.\n" - "\n" - " -g Enable debugging options for compilers.\n" - "\n" - " -p VAR, --print VAR Print configuration variable VAR. Recognized\n" - " variables are:\n" - "\n" - " ALL_CFLAGS FLIBS\n" - " ALL_CXXFLAGS FPICFLAG\n" - " ALL_FFLAGS INCFLAGS\n" - " ALL_LDFLAGS LAPACK_LIBS\n" - " BLAS_LIBS LDFLAGS\n" - " CC LD_CXX\n" - " CFLAGS LD_STATIC_FLAG\n" - " CPICFLAG LFLAGS\n" - " CPPFLAGS LIBCRUFT\n" - " CXX LIBOCTAVE\n" - " CXXFLAGS LIBOCTINTERP\n" - " CXXPICFLAG LIBS\n" - " DEPEND_EXTRA_SED_PATTERN OCTAVE_LIBS\n" - " DEPEND_FLAGS RDYNAMIC_FLAG\n" - " DL_LD READLINE_LIBS\n" - " DL_LDFLAGS RLD_FLAG\n" - " F77 SED\n" - " FFLAGS XTRA_CFLAGS\n" - " FFTW_LIBS XTRA_CXXFLAGS\n" - "\n" - " --link-stand-alone Link a stand-alone executable file.\n" - "\n" - " --mex Assume we are creating a MEX file. Set the\n" - " default output extension to \".mex\".\n" - "\n" - " -s, --strip Strip output file.\n" - "\n" - " -v, --verbose Echo commands as they are executed.\n" - "\n" - " FILE Compile or link FILE. Recognized file types are:\n" - "\n" - " .c C source\n" - " .cc C++ source\n" - " .C C++ source\n" - " .cpp C++ source\n" - " .f Fortran source (fixed form)\n" - " .F Fortran source (fixed form)\n" - " .f90 Fortran source (free form)\n" - " .F90 Fortran source (free form)\n" - " .o object file\n" - " .a library file\n" - #ifdef _MSC_VER - " .lib library file\n" - #endif - "\n"; - - static string - basename (const string& s, bool strip_path = false) - { - size_t pos = s.rfind ('.'); - string retval; - - if (pos == string::npos) - retval = s; - else - retval = s.substr (0, pos); - if (strip_path) - { - size_t p1 = retval.rfind ('/'), p2 = retval.rfind ('\\'); - pos = (p1 != string::npos && p2 != string::npos - ? max (p1, p2) : (p2 != string::npos ? p2 : p1)); - if (pos != string::npos) - retval = retval.substr (0, pos); - } - return retval; - } - - inline bool - starts_with (const string& s, const string& prefix) - { - return (s.length () >= prefix.length () && s.find (prefix) == 0); - } - - inline bool - ends_with (const string& s, const string& suffix) - { - return (s.length () >= suffix.length () - && s.rfind (suffix) == s.length () - suffix.length ()); - } - - static int - run_command (const string& cmd) - { - if (debug) - cout << cmd << endl; - return system (cmd.c_str ()); - } - - int - main (int argc, char **argv) - { - initialize (); - - string file, output_option; - list cfiles, ccfiles, f77files; - int result = 0; - - string objfiles = ""; - string libfiles = ""; - string octfile = ""; - string outputfile = ""; - string incflags = ""; - string defs = ""; - string ldflags = ""; - string pass_on_options = ""; - bool strip = false; - bool no_oct_file_strip_on_this_platform = %NO_OCT_FILE_STRIP%; - bool link = true; - bool link_stand_alone = false; - string output_ext = ".oct"; - bool depend = false; - bool compile = true; - - if (argc == 1) - { - cout << usage_msg << endl; - return 1; - } - - if (argc == 2 && (!strcmp (argv[1], "-v") - || !strcmp (argv[1], "-version") - || !strcmp (argv[1], "--version"))) - { - cout << version_msg << endl; - return 0; - } - - for (int i = 1; i < argc; i++) - { - string arg = argv[i]; - size_t len = arg.length (); - - if (ends_with (arg, ".c")) - { - file = arg; - cfiles.push_back (file); - } - else if (ends_with (arg, ".cc") || ends_with (arg, ".C") - || ends_with (arg, ".cpp")) - { - file = arg; - ccfiles.push_back (file); - } - else if (ends_with (arg, ".f") || ends_with (arg, ".F") - || ends_with (arg, "f90") || ends_with (arg, ".F90")) - { - file = arg; - f77files.push_back (file); - } - else if (ends_with (arg, ".o") || ends_with (arg, ".obj")) - { - file = arg; - objfiles += (" " + quote_path (arg)); - } - else if (ends_with (arg, ".lib") || ends_with (arg, ".a")) - { - file = arg; - libfiles += (" " + quote_path (arg)); - } - else if (arg == "-d" || arg == "-debug" || arg == "--debug" - || arg == "-v" || arg == "-verbose" || arg == "--verbose") - { - debug = true; - if (vars["CC"] == "cc-msvc") - vars["CC"] += " -d"; - if (vars["CXX"] == "cc-msvc") - vars["CXX"] += " -d"; - if (vars["DL_LD"] == "cc-msvc") - vars["DL_LD"] += " -d"; - } - else if (arg == "-h" || arg == "-?" || arg == "-help" || arg == "--help") - { - cout << usage_msg << endl; - cout << help_msg << endl; - return 0; - } - else if (starts_with (arg, "-I")) - { - incflags += (" " + quote_path (arg)); - } - else if (arg == "-idirafter") - { - if (i < argc-1) - { - arg = argv[++i]; - incflags += (" -idirafter " + arg); - } - else - cerr << "mkoctfile: include directory name missing" << endl; - } - else if (starts_with (arg, "-D")) - { - defs += (" " + arg); - } - else if (starts_with (arg, "-Wl,") || starts_with (arg, "-l") - || starts_with (arg, "-L") || starts_with (arg, "-R")) - { - ldflags += (" " + arg); - } - else if (arg == "-M" || arg == "-depend" || arg == "--depend") - { - depend = true; - compile = false; - } - else if (arg == "-o" || arg == "-output" || arg == "--output") - { - if (i < argc-1) - { - arg = argv[++i]; - outputfile = arg; - } - else - cerr << "mkoctfile: output file name missing" << endl; - } - else if (arg == "-p" || arg == "-print" || arg == "--print") - { - if (i < argc-1) - { - arg = argv[++i]; - cout << vars[arg] << endl; - return 0; - } - else - cerr << "mkoctfile: --print requires argument" << endl; - } - else if (arg == "-s" || arg == "-strip" || arg == "--strip") - { - if (no_oct_file_strip_on_this_platform) - cerr << "mkoctfile: stripping disabled on this platform" << endl; - else - strip = true; - } - else if (arg == "-c" || arg == "-compile" || arg == "--compile") - { - link = false; - } - else if (arg == "-g") - { - vars["ALL_CFLAGS"] += " -g"; - vars["ALL_CXXFLAGS"] += " -g"; - vars["ALL_FFLAGS"] += " -g"; - } - else if (arg == "-link-stand-alone" || arg == "--link-stand-alone") - { - link_stand_alone = true; - } - else if (arg == "-mex" || arg == "--mex") - { - incflags += " -I."; - #ifdef _MSC_VER - ldflags += " -Wl,-export:mexFunction"; - #endif - output_ext = ".mex"; - } - else if (starts_with (arg, "-W")) - { - pass_on_options += (" " + arg); - } - else - { - cerr << "mkoctfile: unrecognized argument " << arg; - return 1; - } - - if (!file.empty () && octfile.empty ()) - octfile = file; - } - - if (link_stand_alone) - { - if (!outputfile.empty ()) - output_option = "-o " + outputfile; - } - else - { - if (!outputfile.empty ()) - { - octfile = outputfile; - size_t len = octfile.length (); - size_t len_ext = output_ext.length (); - if (octfile.substr (len-len_ext) != output_ext) - octfile += output_ext; - } - else - octfile = basename (octfile, true) + output_ext; - } - - list::const_iterator it; - - if (depend) - { - for (it = cfiles.begin (); it != cfiles.end (); ++it) - { - string f = *it, dfile = basename (f, true) + ".d", line; - - unlink (dfile.c_str ()); - string cmd = vars["CC"] + " " + vars["DEPEND_FLAGS"] + " " - + vars["CPPFLAGS"] + " " + vars["ALL_CFLAGS"] + " " - + incflags + " " + defs + " " + quote_path (f); - - FILE *fd = popen (cmd.c_str (), "r"); - ofstream fo (dfile.c_str ()); - int pos; - while (!feof (fd)) - { - line = get_line (fd); - if ((pos = line.rfind (".o:")) != string::npos) - { - int spos = line.rfind ('/', pos); - string ofile = (spos == string::npos ? line.substr (0, pos+2) : line.substr (spos+1, pos-spos+1)); - fo << "pic/" << ofile << " " << ofile << " " << dfile << line.substr (pos) << endl; - } - else - fo << line << endl; - } - pclose (fd); - fo.close (); - } - - for (it = ccfiles.begin (); it != ccfiles.end (); ++it) - { - string f = *it, dfile = basename (f, true) + ".d", line; - - unlink (dfile.c_str ()); - string cmd = vars["CC"] + " " + vars["DEPEND_FLAGS"] + " " - + vars["CPPFLAGS"] + " " + vars["ALL_CXXFLAGS"] + " " - + incflags + " " + defs + " " + quote_path (f); - - FILE *fd = popen (cmd.c_str (), "r"); - ofstream fo (dfile.c_str ()); - int pos; - while (!feof (fd)) - { - line = get_line (fd); - if ((pos = line.rfind (".o:")) != string::npos) - { - int spos = line.rfind ('/', pos); - string ofile = (spos == string::npos ? line.substr (0, pos+2) : line.substr (spos+1, pos-spos+1)); - fo << "pic/" << ofile << " " << ofile << " " << dfile << line.substr (pos+2) << endl; - } - else - fo << line << endl; - } - pclose (fd); - fo.close (); - } - - return 0; - } - - for (it = f77files.begin (); it != f77files.end (); ++it) - { - string f = *it, b = basename (f, true); - if (!vars["F77"].empty ()) - { - string o; - if (!outputfile.empty ()) - { - if (link) - o = b + ".o"; - else - o = outputfile; - } - else - o = b + ".o"; - objfiles += (" " + o); - string cmd = vars["F77"] + " -c " + vars["FPICFLAG"] + " " - + vars["ALL_FFLAGS"] + " " + incflags + " " + defs + " " - + pass_on_options + " " + f + " -o " + o; - result = run_command (cmd); - } - else - { - cerr << "mkoctfile: no way to compile Fortran file " << f << endl; - return 1; - } - } - - for (it = cfiles.begin (); it != cfiles.end (); ++it) - { - string f = *it; - if (!vars["CC"].empty ()) - { - string b = basename (f, true), o; - if (!outputfile.empty ()) - { - if (link) - o = b + ".o"; - else - o = outputfile; - } - else - o = b + ".o"; - objfiles += (" " + o); - string cmd = vars["CC"] + " -c " + vars["CPPFLAGS"] + " " - + vars["CPICFLAG"] + " " + vars["ALL_CFLAGS"] + " " - + pass_on_options + " " + incflags + " " + defs + " " - + quote_path (f) + " -o " + quote_path (o); - result = run_command (cmd); - } - else - { - cerr << "mkoctfile: no way to compile C file " << f << endl; - return 1; - } - } - - for (it = ccfiles.begin (); it != ccfiles.end (); ++it) - { - string f = *it; - if (!vars["CXX"].empty ()) - { - string b = basename (f, true), o; - if (!outputfile.empty ()) - { - if (link) - o = b + ".o"; - else - o = outputfile; - } - else - o = b + ".o"; - objfiles += (" " + o); - string cmd = vars["CXX"] + " -c " + vars["CPPFLAGS"] + " " - + vars["CXXPICFLAG"] + " " + vars["ALL_CXXFLAGS"] + " " - + pass_on_options + " " + incflags + " " + defs + " " - + quote_path (f) + " -o " + quote_path (o); - result = run_command (cmd); - } - else - { - cerr << "mkoctfile: no way to compile C++ file " << f << endl; - return 1; - } - } - - if (link && !objfiles.empty ()) - { - if (link_stand_alone) - { - if (!vars["LD_CXX"].empty ()) - { - string cmd = vars["LD_CXX"] + " " + vars["CPPFLAGS"] + " " - + vars["ALL_CXXFLAGS"] + " " + vars["RDYNAMIC_FLAG"] - + " " + vars["ALL_LDFLAGS"] + " " + pass_on_options - + " " + output_option + " " + objfiles + " " + libfiles - + " " + ldflags + " " + vars["LFLAGS"] + " " - + vars["RLD_FLAG"] + " " + vars["OCTAVE_LIBS"] + " " - + vars["LAPACK_LIBS"] + " " + vars["BLAS_LIBS"] + " " - + vars["FFTW_LIBS"] + " " + vars["READLINE_LIBS"] + " " - + vars["LIBS"] + " " + vars["FLIBS"]; - result = run_command (cmd); - } - else - { - cerr << "mkoctfile: no way to link stand-alone executable file" - << endl; - return 1; - } - } - else - { - string LINK_DEPS = vars["LFLAGS"] + " " + vars["OCTAVE_LIBS"] - + " " + vars["LDFLAGS"] + " " + vars["BLAS_LIBS"] + " " - + vars["FFTW_LIBS"] + " " + vars["LIBS"] + " " + vars["FLIBS"]; - string cmd = vars["DL_LD"] + " " + vars["DL_LDFLAGS"] + " " - + pass_on_options + " -o " + octfile + " " + objfiles + " " - + libfiles + " " + ldflags + " " + LINK_DEPS; - result = run_command (cmd); - } - - if (strip) - { - string cmd = "strip " + octfile; - result = run_command (cmd); - } - } - - return result; - } --- 0 ---- diff -cNr octave-3.4.0/mkoctfile.in octave-3.4.1/mkoctfile.in *** octave-3.4.0/mkoctfile.in 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/mkoctfile.in 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,555 **** - #! /bin/sh - ## - ## mkoctfile -- create a .oct file suitable for dynamic linking by - ## Octave. - ## - ## Copyright (C) 1996-2011 John W. Eaton - ## - ## This file is part of Octave. - ## - ## Octave 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. - ## - ## Octave 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 Octave; see the file COPYING. If not, see - ## . - - # Exit immediately on any error. - - set -e - - : ${SED=%OCTAVE_CONF_SED%} - - OCTAVE_VERSION=%OCTAVE_CONF_VERSION% - OCTAVE_PREFIX=%OCTAVE_CONF_PREFIX% - - DEFAULT_BINDIR=%OCTAVE_BINDIR% - DEFAULT_INCLUDEDIR=%OCTAVE_CONF_INCLUDEDIR% - DEFAULT_LIBDIR=%OCTAVE_CONF_LIBDIR% - DEFAULT_OCTINCLUDEDIR=%OCTAVE_CONF_OCTINCLUDEDIR% - DEFAULT_OCTLIBDIR=%OCTAVE_CONF_OCTLIBDIR% - - if [ -n "$OCTAVE_HOME" ]; then - DEFAULT_BINDIR="`echo $DEFAULT_BINDIR | $SED "s,^$OCTAVE_PREFIX,$OCTAVE_HOME,"`" - DEFAULT_INCLUDEDIR="`echo $DEFAULT_INCLUDEDIR | $SED "s,^$OCTAVE_PREFIX,$OCTAVE_HOME,"`" - DEFAULT_LIBDIR="`echo $DEFAULT_LIBDIR | $SED "s,^$OCTAVE_PREFIX,$OCTAVE_HOME,"`" - DEFAULT_OCTINCLUDEDIR="`echo $DEFAULT_OCTINCLUDEDIR | $SED "s,^$OCTAVE_PREFIX,$OCTAVE_HOME,"`" - DEFAULT_OCTLIBDIR="`echo $DEFAULT_OCTLIBDIR | $SED "s,^$OCTAVE_PREFIX,$OCTAVE_HOME,"`" - fi - - : ${BINDIR=$DEFAULT_BINDIR} - : ${INCLUDEDIR=$DEFAULT_INCLUDEDIR} - : ${LIBDIR=$DEFAULT_LIBDIR} - : ${OCTINCLUDEDIR=$DEFAULT_OCTINCLUDEDIR} - : ${OCTLIBDIR=$DEFAULT_OCTLIBDIR} - - DEFAULT_INCFLAGS="-I$OCTINCLUDEDIR/.. -I$OCTINCLUDEDIR" - if [ "$INCLUDEDIR" != /usr/include ]; then - DEFAULT_INCFLAGS="$DEFAULT_INCFLAGS -I$INCLUDEDIR" - fi - - DEFAULT_LFLAGS="-L$OCTLIBDIR" - if [ "$LIBDIR" != /usr/lib ]; then - DEFAULT_LFLAGS="$DEFAULT_LFLAGS -L$LIBDIR" - fi - - # Default values for these variables are filled in when Octave is - # compiled. - - : ${EXEEXT=%OCTAVE_CONF_EXEEXT%} - - : ${CPPFLAGS=%OCTAVE_CONF_CPPFLAGS%} - : ${INCFLAGS=$DEFAULT_INCFLAGS} - : ${F77=%OCTAVE_CONF_F77%} - : ${FFLAGS=%OCTAVE_CONF_FFLAGS%} - : ${FPICFLAG=%OCTAVE_CONF_FPICFLAG%} - : ${CC=%OCTAVE_CONF_CC%} - : ${CFLAGS=%OCTAVE_CONF_CFLAGS%} - : ${CPICFLAG=%OCTAVE_CONF_CPICFLAG%} - : ${CXX=%OCTAVE_CONF_CXX%} - : ${CXXFLAGS=%OCTAVE_CONF_CXXFLAGS%} - : ${CXXPICFLAG=%OCTAVE_CONF_CXXPICFLAG%} - : ${XTRA_CFLAGS=%OCTAVE_CONF_XTRA_CFLAGS%} - : ${XTRA_CXXFLAGS=%OCTAVE_CONF_XTRA_CXXFLAGS%} - - : ${DEPEND_FLAGS=%OCTAVE_CONF_DEPEND_FLAGS%} - : ${DEPEND_EXTRA_SED_PATTERN=%OCTAVE_CONF_DEPEND_EXTRA_SED_PATTERN%} - - : ${DL_LD=%OCTAVE_CONF_DL_LD%} - : ${DL_LDFLAGS=%OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS%} - - : ${RLD_FLAG=%OCTAVE_CONF_RLD_FLAG%} - : ${RDYNAMIC_FLAG=%OCTAVE_CONF_RDYNAMIC_FLAG%} - : ${LIBOCTAVE=-loctave} - : ${LIBOCTINTERP=-loctinterp} - : ${READLINE_LIBS=-lreadline} - : ${LIBCRUFT=-lcruft} - : ${LAPACK_LIBS=%OCTAVE_CONF_LAPACK_LIBS%} - : ${BLAS_LIBS=%OCTAVE_CONF_BLAS_LIBS%} - : ${FFTW3_LDFLAGS=%OCTAVE_CONF_FFTW3_LDFLAGS%} - : ${FFTW3_LIBS=%OCTAVE_CONF_FFTW3_LIBS%} - : ${FFTW3F_LDFLAGS=%OCTAVE_CONF_FFTW3F_LDFLAGS%} - : ${FFTW3F_LIBS=%OCTAVE_CONF_FFTW3F_LIBS%} - : ${LIBS=%OCTAVE_CONF_LIBS%} - : ${FLIBS=%OCTAVE_CONF_FLIBS%} - : ${LD_CXX=%OCTAVE_CONF_LD_CXX%} - : ${LDFLAGS=%OCTAVE_CONF_LDFLAGS%} - : ${LD_STATIC_FLAG=%OCTAVE_CONF_LD_STATIC_FLAG%} - : ${LFLAGS=$DEFAULT_LFLAGS} - : ${F77_INTEGER_8_FLAG=%OCTAVE_CONF_F77_INTEGER_8_FLAG%} - - : ${ALL_FFLAGS="$FFLAGS $F77_INTEGER_8_FLAG"} - - : ${ALL_CFLAGS="$INCFLAGS $XTRA_CFLAGS $CFLAGS"} - - : ${ALL_CXXFLAGS="$INCFLAGS $XTRA_CXXFLAGS $CXXFLAGS"} - - : ${ALL_LDFLAGS="$LD_STATIC_FLAG $CPICFLAG $LDFLAGS"} - - : ${OCTAVE_LIBS="$LIBOCTINTERP $LIBOCTAVE $SPECIAL_MATH_LIB $LIBCRUFT"} - - # Local variables. - - FFTW_LIBS="$FFTW3_LDFLAGS $FFTW3_LIBS $FFTW3F_LDFLAGS $FFTW3F_LIBS" - - usage_msg="usage: mkoctfile [options] file ..." - - version_msg="mkoctfile, version $OCTAVE_VERSION" - - cfiles= - ccfiles= - f77files= - objfiles= - libfiles= - octfiles= - octfile= - outputfile= - incflags= - defs= - ldflags= - dbg=: - pass_on_options= - strip=false - no_oct_file_strip_on_this_platform=%NO_OCT_FILE_STRIP% - link=true - link_stand_alone=false - output_ext=".oct" - depend=false - compile=true - - if [ $# -eq 0 ]; then - echo $usage_msg 1>&2 - exit 1 - fi - - if [ $# -eq 1 ]; then - case "$1" in - -v | -version | --version) - echo $version_msg 1>&2 - exit 0 - ;; - esac - fi - - while [ $# -gt 0 ]; do - file= - case "$1" in - *.c) - file=$1 - cfiles="$cfiles $file" - ;; - *.cc | *.C | *.cpp) - file=$1 - ccfiles="$ccfiles $file" - ;; - *.f | *.F | *.f90 | *.F90) - file=$1 - f77files="$f77files $file" - ;; - *.o) - file=$1 - objfiles="$objfiles $file" - ;; - *.a) - file=$1 - libfiles="$libfiles $file" - ;; - -d | -debug | --debug | -v | -verbose | --verbose) - dbg=echo - ;; - -h | -\? | -help | --help) - echo $usage_msg 1>&2 - cat << EOF - - Options: - - -h, -?, --help Print this message. - - -IDIR Add -IDIR to compile commands. - - -idirafter DIR Add -idirafter DIR to compile commands. - - -DDEF Add -DDEF to compile commands. - - -lLIB Add -lLIB to link command. - - -LDIR Add -LDIR to link command. - - -RDIR Add -RDIR to link command. - - -g Enable debugging option for all compilers. - - -pthread Add -pthread to link command. - - -W... Pass flags to the compiler such as -Wa,OPTION. - - -Wl,... Pass flags to the linker such as -Wl,-rpath=... - - -M, --depend Generate dependency files (.d) for C and C++ - source files. - - -c, --compile Compile, but do not link. - - --link-stand-alone Link a stand-alone executable file. - - -s, --strip Strip output file. - - --mex Create a MEX file. - Set the default output extension to ".mex". - - -o FILE, --output FILE Output file name. Default extension is .oct - (or .mex if --mex is specified) unless linking - a stand-alone executable. - - -p VAR, --print VAR Print configuration variable VAR. Recognized - variables are: - - ALL_CFLAGS FFTW3F_LDFLAGS - ALL_CXXFLAGS FFTW3F_LIBS - ALL_FFLAGS FLIBS - ALL_LDFLAGS FPICFLAG - BLAS_LIBS INCFLAGS - CC LAPACK_LIBS - CFLAGS LDFLAGS - CPICFLAG LD_CXX - CPPFLAGS LD_STATIC_FLAG - CXX LFLAGS - CXXFLAGS LIBCRUFT - CXXPICFLAG LIBOCTAVE - DEPEND_EXTRA_SED_PATTERN LIBOCTINTERP - DEPEND_FLAGS LIBS - DL_LD OCTAVE_LIBS - DL_LDFLAGS RDYNAMIC_FLAG - EXEEXT READLINE_LIBS - F77 RLD_FLAG - F77_INTEGER_8_FLAG SED - FFLAGS XTRA_CFLAGS - FFTW3_LDFLAGS XTRA_CXXFLAGS - FFTW3_LIBS - - -v, --verbose Echo commands as they are executed. - - FILE Compile or link FILE. Recognized file types are: - - .c C source - .cc C++ source - .C C++ source - .cpp C++ source - .f Fortran source (fixed form) - .F Fortran source (fixed form) - .f90 Fortran source (free form) - .F90 Fortran source (free form) - .o object file - .a library file - - EOF - exit 0 - ;; - -I*) - incflags="$incflags $1" - ;; - -idirafter) - shift - if [ $# -gt 0 ]; then - incflags="$incflags -idirafter $1" - else - echo "mkoctfile: include directory name missing" 1>&2 - fi - ;; - -D*) - defs="$defs $1" - ;; - -[lLR]* | -Wl,*) - ldflags="$ldflags $1" - ;; - -pthread) - ldflags="$ldflags $1" - ;; - -M | -depend | --depend) - depend=true - compile=false - ;; - -o | -ouput | --output) - shift - if [ $# -gt 0 ]; then - outputfile="$1" - else - echo "mkoctfile: output file name missing" 1>&2 - fi - ;; - -p | -print | --print) - shift - if [ $# -gt 0 ]; then - eval echo \${$1} - exit 0 - else - echo "mkoctfile: --print requires argument" 1>&2 - exit 1 - fi - ;; - -s | -strip | --strip) - if $no_oct_file_strip_on_this_platform; then - echo "mkoctfile: stripping disabled on this platform" 1>&2 - else - strip=true - fi - ;; - -c | -compile | --compile) - link=false - ;; - -g) - ALL_CFLAGS="$ALL_CFLAGS -g" - ALL_CXXFLAGS="$ALL_CXXFLAGS -g" - ALL_FFLAGS="$ALL_FFLAGS -g" - ;; - -link-stand-alone | --link-stand-alone) - link_stand_alone=true - ;; - -mex | --mex) - incflags="$incflags -I." - output_ext=".mex" - ;; - -W*) - pass_on_options="$pass_on_options $1" - ;; - *) - echo "mkoctfile: unrecognized argument $1" 1>&2 - exit 1 - ;; - esac - if [ -n "$file" ]; then - if [ -z "$octfile" ]; then - octfile="$file" - fi - fi - shift - done - - if $link_stand_alone; then - if [ -n "$outputfile" ]; then - output_option="-o $outputfile" - fi - else - if [ -n "$outputfile" ]; then - octfile="$outputfile" - case "$octfile" in - *$output_ext) - ;; - *) - octfile="$octfile$output_ext" - ;; - esac - else - octfile=`basename $octfile` - octfile=`echo $octfile | $SED 's,\.[^.]*$,,'`$output_ext - fi - fi - - # Generate dependency files for C and C++ files. - - if $depend; then - if [ -n "$cfiles" ]; then - for f in $cfiles; do - b=`echo $f | $SED 's,\.c$,,'` - d=$b.d - cmd="rm -f $d" - $dbg $cmd - eval $cmd - cmd="$CC $DEPEND_FLAGS $CPPFLAGS $ALL_CFLAGS $incflags $def $f | $SED $DEPEND_EXTRA_SED_PATTERN -e 's,^[^:]*/\(.*\.o\):,\1:,' -e 's,$b\.o,pic/& & $d,g' > $d-t && mv $d-t $d" - $dbg $cmd - eval $cmd - done - fi - - if [ -n "$ccfiles" ]; then - for f in $ccfiles; do - case $f in - *.cc) - b=`echo $f | $SED 's,\.cc$,,'` - ;; - *.C) - b=`echo $f | $SED 's,\.C$,,'` - ;; - *.cpp) - b=`echo $f | $SED 's,\.cpp$,,'` - ;; - esac - d=$b.d - cmd="rm -f $d" - $dbg $cmd - eval $cmd - cmd="$CXX $DEPEND_FLAGS $CPPFLAGS $ALL_CXXFLAGS $incflags $defs $f | $SED $DEPEND_EXTRA_SED_PATTERN -e 's,^[^:]*/\(.*\.o\):,\1:,' -e 's,$b\.o,pic/& & $d,g' > $d-t && mv $d-t $d" - $dbg $cmd - eval $cmd - done - fi - # If generating dependencies, that's all we do. - exit 0 - fi - - # Compile Fortran, C, and C++ files. Add the name of each object file - # that is produced to the overall list of object files. - - if [ -n "$f77files" ]; then - for f in $f77files; do - case $f in - *.f) - b=`echo $f | $SED 's,.*/,,; s,\.f$,,'` - ;; - *.F) - b=`echo $f | $SED 's,.*/,,; s,\.F$,,'` - ;; - *.f90) - b=`echo $f | $SED 's,.*/,,; s,\.f90$,,'` - ;; - *.F90) - b=`echo $f | $SED 's,.*/,,; s,\.F90$,,'` - ;; - esac - if [ -n "$F77" ]; then - if [ -n "$outputfile" ]; then - if $link; then - o=$b.o - else - o=$outputfile - fi - else - o=$b.o - fi - objfiles="$objfiles $o" - cmd="$F77 -c $FPICFLAG $ALL_FFLAGS $incflags $defs $pass_on_options $f -o $o" - $dbg $cmd - eval $cmd - else - echo "mkoctfile: no way to compile Fortran file $f" 1>&2 - fi - done - fi - - if [ -n "$cfiles" ]; then - for f in $cfiles; do - if [ -n "$CC" ]; then - b=`echo $f | $SED 's,.*/,,; s,\.c$,,'` - if [ -n "$outputfile" ]; then - if $link; then - o=$b.o - else - o=$outputfile - fi - else - o=$b.o - fi - objfiles="$objfiles $o" - cmd="$CC -c $CPPFLAGS $CPICFLAG $ALL_CFLAGS $pass_on_options $incflags $defs $f -o $o" - $dbg $cmd - eval $cmd - else - echo "mkoctfile: no way to compile C++ file $f" 1>&2 - fi - done - fi - - if [ -n "$ccfiles" ]; then - for f in $ccfiles; do - if [ -n "$CXX" ]; then - case $f in - *.cc) - b=`echo $f | $SED 's,.*/,,; s,\.cc$,,'` - ;; - *.C) - b=`echo $f | $SED 's,.*/,,; s,\.C$,,'` - ;; - *.cpp) - b=`echo $f | $SED 's,.*/,,; s,\.cpp$,,'` - ;; - esac - if [ -n "$outputfile" ]; then - if $link; then - o=$b.o - else - o=$outputfile - fi - else - o=$b.o - fi - objfiles="$objfiles $o" - cmd="$CXX -c $CPPFLAGS $CXXPICFLAG $ALL_CXXFLAGS $pass_on_options $incflags $defs $f -o $o" - $dbg $cmd - eval $cmd - else - echo "mkoctfile: no way to compile C++ file $f" 1>&2 - fi - done - fi - - ## Uncomment the following group of lines if you get `Text file busy' - ## errors from ld. This may happen if the .oct file is currently - ## running while you are trying to recompile it. We try moving first, - ## since on some systems (HP-UX, maybe others) it is possible to - ## rename running programs but not remove them. - - ## if [ -f "$octfile" ]; then - ## cmd="mv $octfile $octfile.bak" - ## $dbg $cmd - ## eval $cmd - ## cmd="rm -f $octfile.bak" - ## $dbg $cmd - ## eval $cmd - ## fi - - # Link all the object files. - - if $link && [ -n "$objfiles" ]; then - if $link_stand_alone; then - if [ -n "$LD_CXX" ]; then - cmd="$LD_CXX $CPPFLAGS $ALL_CXXFLAGS $RDYNAMIC_FLAG $ALL_LDFLAGS $pass_on_options $output_option $objfiles $libfiles $ldflags $LFLAGS $RLD_FLAG $OCTAVE_LIBS $LAPACK_LIBS $BLAS_LIBS $FFTW_LIBS $READLINE_LIBS $LIBS $FLIBS" - $dbg $cmd - eval $cmd - else - echo "mkoctfile: no way to link stand-alone executable file" 1>&2 - exit 1 - fi - else - LINK_DEPS="$LFLAGS $OCTAVE_LIBS $LDFLAGS $LAPACK_LIBS $BLAS_LIBS $FFTW_LIBS $LIBS $FLIBS" - cmd="$DL_LD $DL_LDFLAGS $pass_on_options -o $octfile $objfiles $libfiles $ldflags $LINK_DEPS" - $dbg $cmd - eval $cmd - fi - - # Maybe strip it. - - if $strip; then - cmd="strip $octfile" - $dbg $cmd - eval $cmd - fi - fi - - exit 0 --- 0 ---- diff -cNr octave-3.4.0/mk-opts.pl octave-3.4.1/mk-opts.pl *** octave-3.4.0/mk-opts.pl 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/mk-opts.pl 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,1097 **** - #! /usr/bin/perl - # - # Copyright (C) 2002-2011 John W. Eaton - # - # This file is part of Octave. - # - # Octave 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. - # - # Octave 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 Octave; see the file COPYING. If not, see - # . - - # Generate option handling code from a simpler input files for - # Octave's functions like lsode, dassl, etc. - - # FIXME: - # - # * Improve default documentation and/or individual documentation - # in data files. - # - # * Fix print/show code to display/return something more informative - # for special values (for example, -1 ==> infinite in some cases). - # Probably need more information in the data files for this. - - # Input file format: - # - # CLASS = string - # FCN_NAME = string - # INCLUDE = file - # DOC_STRING doc END_DOC_STRING - # OPTION - # NAME = string - # DOC_ITEM doc END_DOC_ITEM - # TYPE = string - # SET_ARG_TYPE = string (optional, defaults to TYPE) - # INIT_VALUE = string | INIT_BODY code END_INIT_BODY - # SET_EXPR = string | SET_BODY code END_SET_BODY | SET_CODE code END_SET_CODE - # END_OPTION - # - # END_* must appear at beginning of line (whitespace ignored). - - use Getopt::Long; - - $opt_emit_opt_class_header = 0; - $opt_emit_opt_handler_fcns = 0; - $opt_debug = 0; - - GetOptions ("opt-class-header" => \$opt_emit_opt_class_header, - "opt-handler-fcns" => \$opt_emit_opt_handler_fcns, - "debug" => \$opt_debug); - - if (@ARGV == 1) - { - $INFILE = shift @ARGV; - open (INFILE) || die "unable to open input file $INFILE"; - } - else - { - die "usage: mk-opts.pl [options] FILE"; - } - - $opt_num = 0; - - &parse_input; - - &process_data; - - FOO: - { - $opt_emit_opt_class_header && do { &emit_opt_class_header; last FOO; }; - - $opt_emit_opt_handler_fcns && do { &emit_opt_handler_fcns; last FOO; }; - - $opt_debug && do { &emit_options_debug; last FOO; }; - } - - sub parse_input - { - local ($have_doc_string); - - while () - { - next if (/^\s*$/); - next if (/^\s*#.*$/); - - if (/^\s*OPTION\s*$/) - { - &parse_option_block; - } - elsif (/^\s*CLASS\s*=\s*"(\w+)"\s*$/) - { - die "duplicate CLASS" if ($class ne ""); - $CLASS = $1; - $class_name = "${CLASS}_options"; - $struct_name = "${class_name}_struct"; - $static_table_name = "${class_name}_table"; - } - elsif (/^\s*FCN_NAME\s*=\s*"(\w+)"\s*$/) - { - die "duplicate FCN_NAME" if ($fcn_name ne ""); - $fcn_name = $1; - } - elsif (/^\s*INCLUDE\s*=\s*"(\S+)"\s*$/) - { - $include = "${include}#include <$1>\n"; - } - elsif (/^\s*DOC_STRING\s*$/) - { - die "duplicate DOC_STRING" if ($have_doc_string); - &parse_doc_string; - $have_doc_string = 1; - } - else - { - die "mk-opts.pl: unknown command: $_\n" - } - } - } - - sub parse_option_block - { - local ($have_doc_item, $have_init_body, $have_set_body, $have_set_code); - - while () - { - next if (/^\s*$/); - - die "missing END_OPTION" if (/^\s*OPTION\s*$/); - - last if (/^\s*END_OPTION\s*$/); - - if (/^\s*NAME\s*=\s*"(.*)"\s*$/) - { - die "duplicate NAME" if ($name[$opt_num] ne ""); - $name[$opt_num] = $1; - ($opt[$opt_num] = $name[$opt_num]) =~ s/\s+/_/g; - $optvar[$opt_num] = "x_$opt[$opt_num]"; - $kw_tok[$opt_num] = [ split (/\s+/, $name[$opt_num]) ]; - $n_toks[$opt_num] = @{$kw_tok[$opt_num]}; - } - elsif (/^\s*DOC_ITEM\s*$/) - { - die "duplicate DOC_ITEM" if ($have_doc_item); - &parse_doc_item; - $have_doc_item = 1; - } - elsif (/^\s*TYPE\s*=\s*"(.*)"\s*$/) - { - die "duplicate TYPE" if ($type[$opt_num] ne ""); - $type[$opt_num] = $1; - } - elsif (/^\s*SET_ARG_TYPE\s*=\s*"(.*)"\s*$/) - { - die "duplicate SET_ARG_TYPE" if ($set_arg_type[$opt_num] ne ""); - $set_arg_type[$opt_num] = $1; - } - elsif (/^\s*INIT_VALUE\s*=\s*"(.*)"\s*$/) - { - die "duplicate INIT_VALUE" if ($init_value[$opt_num] ne ""); - $init_value[$opt_num] = $1; - } - elsif (/^\s*SET_EXPR\s*=\s*"(.*)"\s*$/) - { - die "duplicate SET_EXPR" if ($set_expr[$opt_num] ne ""); - $set_expr[$opt_num] = $1; - } - elsif (/^\s*INIT_BODY\s*$/) - { - die "duplicate INIT_BODY" if ($have_init_body); - &parse_init_body; - $have_init_body = 1; - } - elsif (/^\s*SET_BODY\s*$/) - { - die "duplicate SET_BODY" if ($have_set_body); - &parse_set_body; - $have_set_body = 1; - } - elsif (/^\s*SET_CODE\s*$/) - { - die "duplicate SET_CODE" if ($have_set_code); - &parse_set_code; - $have_set_code = 1; - } - } - - if ($set_arg_type[$opt_num] eq "") - { - $set_arg_type[$opt_num] = $type[$opt_num] - } - else - { - $set_arg_type[$opt_num] - = &substopt ($set_arg_type[$opt_num], $optvar[$opt_num], - $opt[$opt_num], $type[$opt_num]); - } - - $opt_num++; - } - - sub process_data - { - $max_tokens = &max (@n_toks); - - &get_min_match_len_info ($max_tokens); - - $fcn_name = lc ($CLASS) if ($fcn_name eq ""); - - $opt_fcn_name = "${fcn_name}_options" if ($opt_fcn_name eq ""); - - $static_object_name = "${fcn_name}_opts"; - - if ($doc_string eq "") - { - $doc_string = "When called with two arguments, this function\\n\\ - allows you set options parameters for the function \@code{$fcn_name}.\\n\\ - Given one argument, \@code{$opt_fcn_name} returns the value of the\\n\\ - corresponding option. If no arguments are supplied, the names of all\\n\\ - the available options and their current values are displayed.\\n\\\n"; - } - } - - sub get_min_match_len_info - { - local ($max_tokens) = @_; - - local ($i, $j, $k); - - for ($i = 0; $i < $opt_num; $i++) - { - for ($j = 0; $j < $max_tokens; $j++) - { - $min_tok_len_to_match[$i][$j] = 0; - } - - $min_toks_to_match[$i] = 1; - - L1: for ($k = 0; $k < $opt_num; $k++) - { - local ($duplicate) = 1; - - if ($i != $k) - { - L2: for ($j = 0; $j < $max_tokens; $j++) - { - if ($j < $n_toks[$i]) - { - if ($kw_tok[$i][$j] eq $kw_tok[$k][$j]) - { - if ($min_tok_len_to_match[$i][$j] == 0) - { - $min_tok_len_to_match[$i][$j] = 1; - } - - $min_toks_to_match[$i]++; - } - else - { - $duplicate = 0; - - if ($min_tok_len_to_match[$i][$j] == 0) - { - $min_tok_len_to_match[$i][$j] = 1; - } - - local (@s) = split (//, $kw_tok[$i][$j]); - local (@t) = split (//, $kw_tok[$k][$j]); - - local ($n, $ii); - $n = scalar (@s); - $n = scalar (@t) if (@t < $n); - - for ($ii = 0; $ii < $n; $ii++) - { - if ("$s[$ii]" eq "$t[$ii]") - { - if ($ii + 2 > $min_tok_len_to_match[$i][$j]) - { - $min_tok_len_to_match[$i][$j]++; - } - } - else - { - last L2; - } - } - - last L1; - } - } - else - { - die "ambiguous options \"$name[$i]\" and \"$name[$k]\"" if ($duplicate); - } - } - } - } - } - } - - sub parse_doc_string - { - while () - { - last if (/^\s*END_DOC_STRING\s*$/); - - $doc_string .= $_; - } - - $doc_string =~ s/\n/\\n\\\n/g; - } - - sub parse_doc_item - { - while () - { - last if (/^\s*END_DOC_ITEM\s*$/); - - $doc_item[$opt_num] .= $_; - } - - $doc_item[$opt_num] =~ s/\n/\\n\\\n/g; - } - - sub parse_init_body - { - while () - { - last if (/^\s*END_INIT_BODY\s*$/); - - $init_body[$opt_num] .= $_; - } - } - - sub parse_set_body - { - while () - { - last if (/^\s*END_SET_BODY\s*$/); - - $set_body[$opt_num] .= $_; - } - } - - sub parse_set_code - { - while () - { - last if (/^\s*END_SET_CODE\s*$/); - - $set_code[$opt_num] .= $_; - } - } - - sub emit_copy_body - { - local ($pfx, $var) = @_; - - for ($i = 0; $i < $opt_num; $i++) - { - print "${pfx}$optvar[$i] = ${var}.$optvar[$i];\n"; - } - - print "${pfx}reset = ${var}.reset;\n"; - } - - ## To silence GCC warnings, we create an initialization list even - ## though the init function actually does the work of initialization. - - sub emit_default_init_list - { - local ($prefix) = @_; - - for ($i = 0; $i < $opt_num; $i++) - { - if ($i == 0) - { - $pfx = ""; - } - else - { - $pfx = $prefix; - } - - print "${pfx}$optvar[$i] (),\n"; - } - - print "${prefix}reset ()\n"; - } - - sub emit_copy_ctor_init_list - { - local ($prefix, $var) = @_; - - for ($i = 0; $i < $opt_num; $i++) - { - if ($i == 0) - { - $pfx = ""; - } - else - { - $pfx = $prefix; - } - - print "${pfx}$optvar[$i] ($var.$optvar[$i]),\n"; - } - - print "${prefix}reset ($var.reset)\n"; - } - - sub emit_opt_class_header - { - local ($i, $s); - - print "// DO NOT EDIT! - // Generated automatically from $INFILE. - - #if !defined (octave_${class_name}_h) - #define octave_${class_name}_h 1 - - #include - #include - - ${include} - - class - ${class_name} - { - public: - - ${class_name} (void) - : "; - - &emit_default_init_list (" "); - - print " { - init (); - } - - ${class_name} (const ${class_name}& opt) - : "; - - &emit_copy_ctor_init_list (" ", "opt"); - - print " { } - - ${class_name}& operator = (const ${class_name}& opt) - { - if (this != &opt) - {\n"; - - &emit_copy_body (" ", "opt"); - - print " } - - return *this; - } - - ~${class_name} (void) { }\n"; - - print "\n void init (void)\n {\n"; - - for ($i = 0; $i < $opt_num; $i++) - { - if ($init_value[$i]) - { - print " $optvar[$i] = $init_value[$i];\n"; - } - elsif ($init_body[$i]) - { - $s = &substopt ($init_body[$i], $optvar[$i], $opt[$i], $type[$i]); - chop ($s); - $s =~ s/^\s*/ /g; - $s =~ s/\n\s*/\n /g; - print "$s\n"; - } - } - - print " reset = true; - }\n"; - - ## For backward compatibility and because set_options is probably - ## a better name in some contexts: - - print "\n void set_options (const ${class_name}& opt) - {\n"; - - &emit_copy_body (" ", "opt"); - - print " }\n\n void set_default_options (void) { init (); }\n"; - - for ($i = 0; $i < $opt_num; $i++) - { - if ($set_expr[$i]) - { - &emit_set_decl ($i); - - print "\n { $optvar[$i] = $set_expr[$i]; reset = true; }\n"; - } - elsif ($set_body[$i]) - { - &emit_set_decl ($i); - - $s = &substopt ($set_body[$i], $optvar[$i], $opt[$i], $type[$i]); - chop ($s); - $s =~ s/^/ /g; - $s =~ s/\n/\n /g; - print "\n {\n$s\n reset = true;\n }\n"; - } - elsif ($set_code[$i]) - { - $s = &substopt ($set_code[$i], $optvar[$i], $opt[$i], $type[$i]); - chop ($s); - $s =~ s/^ //g; - $s =~ s/\n /\n/g; - print "\n$s\n"; - } - } - - for ($i = 0; $i < $opt_num; $i++) - { - print " $type[$i] $opt[$i] (void) const\n { return $optvar[$i]; }\n\n"; - } - - print "private:\n\n"; - - for ($i = 0; $i < $opt_num; $i++) - { - print " $type[$i] $optvar[$i];\n"; - } - - print "\nprotected:\n\n bool reset;\n};\n\n#endif\n"; - } - - sub emit_set_decl - { - local ($i) = @_; - - print " - void set_$opt[$i] ($set_arg_type[$i] val)"; - } - - sub emit_opt_handler_fcns - { - local ($i); - my $header = $INFILE; - $header =~ s/[.]\w*$/.h/; # replace .in with .h - $header =~ s|^.*/([^/]*)$|$1|; # strip directory part - - print "// DO NOT EDIT!\n// Generated automatically from $INFILE.\n\n"; - - print "#ifdef HAVE_CONFIG_H - #include - #endif - - #include - #include - - #include \"$header\" - - #include \"defun-dld.h\" - #include \"pr-output.h\" - - #include \"oct-obj.h\" - #include \"utils.h\" - #include \"pager.h\" - - static ${class_name} ${static_object_name};\n\n"; - - &emit_struct_decl; - - &emit_struct_def; - - &emit_print_function; - - &emit_set_functions; - - &emit_show_function; - - &emit_options_function; - } - - sub emit_struct_decl - { - local ($i); - - print "#define MAX_TOKENS $max_tokens\n\n"; - - print "struct ${struct_name}\n{\n"; - - print " const char *keyword;\n"; - print " const char *kw_tok[MAX_TOKENS + 1];\n"; - print " int min_len[MAX_TOKENS + 1];\n"; - print " int min_toks_to_match;\n"; - - print "};\n\n"; - } - - sub emit_struct_def - { - local ($i); - - print "#define NUM_OPTIONS $opt_num\n\n"; - - print "static ${struct_name} ${static_table_name} [] =\n{\n"; - - for ($i = 0; $i < $opt_num; $i++) - { - &emit_option_table_entry ($i, 0); - - if ($i < $opt_num - 1) - { - print "\n"; - } - } - - print "};\n\n"; - } - - sub emit_option_table_entry - { - local ($i, $empty) = @_; - - local ($k); - - if ($empty) - { - print " { 0,\n"; - } - else - { - print " { \"$name[$i]\",\n"; - } - - local ($n) = scalar $#{$kw_tok[$i]}; - print " {"; - for $k (0 .. $max_tokens) - { - if ($empty || $k > $n) - { - print " 0,"; - } - else - { - print " \"$kw_tok[$i][$k]\","; - } - } - print " },\n"; - - print " {"; - for $k (0 .. $max_tokens) - { - if ($empty || $k > $n) - { - print " 0,"; - } - else - { - print " $min_tok_len_to_match[$i][$k],"; - } - } - print " }, $min_toks_to_match[$i], "; - - print "},\n"; - } - - sub emit_print_function - { - local ($i); - - ## FIXME -- determine the width of the table automatically. - - print "static void - print_${class_name} (std::ostream& os) - { - std::ostringstream buf; - - os << \"\\n\" - << \"Options for $CLASS include:\\n\\n\" - << \" keyword value\\n\" - << \" ------- -----\\n\"; - - $struct_name *list = $static_table_name;\n\n"; - - for ($i = 0; $i < $opt_num; $i++) - { - print " {\n os << \" \" - << std::setiosflags (std::ios::left) << std::setw (50) - << list[$i].keyword - << std::resetiosflags (std::ios::left) - << \" \";\n\n"; - - if ($type[$i] eq "double") - { - print " double val = $static_object_name.$opt[$i] ();\n\n"; - print " os << val << \"\\n\";\n"; - } - elsif ($type[$i] eq "float") - { - print " float val = $static_object_name.$opt[$i] ();\n\n"; - print " os << val << \"\\n\";\n"; - } - elsif ($type[$i] eq "int" || $type[$i] eq "octave_idx_type") - { - print " int val = $static_object_name.$opt[$i] ();\n\n"; - print " os << val << \"\\n\";\n"; - } - elsif ($type[$i] eq "std::string") - { - print " os << $static_object_name.$opt[$i] () << \"\\n\";\n"; - } - elsif ($type[$i] eq "Array" || $type[$i] eq "Array") - { - if ($type[$i] eq "Array") - { - $elt_type = "int"; - } - else - { - $elt_type = "octave_idx_type"; - } - print " Array<$elt_type> val = $static_object_name.$opt[$i] ();\n\n"; - print " if (val.length () == 1) - { - os << val(0) << \"\\n\"; - } - else - { - os << \"\\n\\n\"; - octave_idx_type len = val.length (); - Matrix tmp (len, 1); - for (octave_idx_type i = 0; i < len; i++) - tmp(i,0) = val(i); - octave_print_internal (os, tmp, false, 2); - os << \"\\n\\n\"; - }\n"; - } - elsif ($type[$i] eq "Array") - { - print " Array val = $static_object_name.$opt[$i] ();\n\n"; - print " if (val.length () == 1) - { - os << val(0) << \"\\n\"; - } - else - { - os << \"\\n\\n\"; - Matrix tmp = Matrix (ColumnVector (val)); - octave_print_internal (os, tmp, false, 2); - os << \"\\n\\n\"; - }\n"; - } - elsif ($type[$i] eq "Array") - { - print " Array val = $static_object_name.$opt[$i] ();\n\n"; - print " if (val.length () == 1) - { - os << val(0) << \"\\n\"; - } - else - { - os << \"\\n\\n\"; - FloatMatrix tmp = FloatMatrix (FloatColumnVector (val)); - octave_print_internal (os, tmp, false, 2); - os << \"\\n\\n\"; - }\n"; - } - else - { - die ("unknown type $type[$i]"); - } - - print " }\n\n"; - } - - print " os << \"\\n\";\n}\n\n"; - } - - sub emit_set_functions - { - print "static void - set_${class_name} (const std::string& keyword, const octave_value& val) - { - $struct_name *list = $static_table_name;\n\n"; - - $iftok = "if"; - - for ($i = 0; $i < $opt_num; $i++) - { - $iftok = "else if" if ($i > 0); - - print " $iftok (keyword_almost_match (list[$i].kw_tok, list[$i].min_len, - keyword, list[$i].min_toks_to_match, MAX_TOKENS)) - {\n"; - - if ($type[$i] eq "double") - { - print " double tmp = val.double_value ();\n\n"; - print " if (! error_state) - $static_object_name.set_$opt[$i] (tmp);\n"; - } - elsif ($type[$i] eq "float") - { - print " float tmp = val.float_value ();\n\n"; - print " if (! error_state) - $static_object_name.set_$opt[$i] (tmp);\n"; - } - elsif ($type[$i] eq "int" || $type[$i] eq "octave_idx_type") - { - print " int tmp = val.int_value ();\n\n"; - print " if (! error_state) - $static_object_name.set_$opt[$i] (tmp);\n"; - } - elsif ($type[$i] eq "std::string") - { - print " std::string tmp = val.string_value ();\n\n"; - print " if (! error_state) - $static_object_name.set_$opt[$i] (tmp);\n"; - } - elsif ($type[$i] eq "Array" || $type[$i] eq "Array") - { - print " Array tmp = val.int_vector_value ();\n\n"; - print " if (! error_state) - $static_object_name.set_$opt[$i] (tmp);\n"; - } - elsif ($type[$i] eq "Array") - { - print " Array tmp = val.vector_value ();\n\n"; - print " if (! error_state) - $static_object_name.set_$opt[$i] (tmp);\n"; - } - elsif ($type[$i] eq "Array") - { - print " Array tmp = val.float_vector_value ();\n\n"; - print " if (! error_state) - $static_object_name.set_$opt[$i] (tmp);\n"; - } - else - { - die ("unknown type $type[$i]"); - } - - print " }\n"; - } - - print " else - { - warning (\"$opt_fcn_name: no match for `%s'\", keyword.c_str ()); - } - }\n\n"; - } - - sub emit_show_function - { - local ($i, $iftok); - - print "static octave_value_list - show_${class_name} (const std::string& keyword) - { - octave_value retval; - - $struct_name *list = $static_table_name;\n\n"; - - $iftok = "if"; - - for ($i = 0; $i < $opt_num; $i++) - { - $iftok = "else if" if ($i > 0); - - print " $iftok (keyword_almost_match (list[$i].kw_tok, list[$i].min_len, - keyword, list[$i].min_toks_to_match, MAX_TOKENS)) - {\n"; - - if ($type[$i] eq "double") - { - print " double val = $static_object_name.$opt[$i] ();\n\n"; - print " retval = val;\n"; - } - elsif ($type[$i] eq "float") - { - print " float val = $static_object_name.$opt[$i] ();\n\n"; - print " retval = val;\n"; - } - elsif ($type[$i] eq "int" || $type[$i] eq "octave_idx_type") - { - print " int val = $static_object_name.$opt[$i] ();\n\n"; - print " retval = static_cast (val);\n"; - } - elsif ($type[$i] eq "std::string") - { - print " retval = $static_object_name.$opt[$i] ();\n"; - } - elsif ($type[$i] eq "Array" || $type[$i] eq "Array") - { - if ($type[$i] eq "Array") - { - $elt_type = "int"; - } - else - { - $elt_type = "octave_idx_type"; - } - print " Array<$elt_type> val = $static_object_name.$opt[$i] ();\n\n"; - print " if (val.length () == 1) - { - retval = static_cast (val(0)); - } - else - { - octave_idx_type len = val.length (); - ColumnVector tmp (len); - for (octave_idx_type i = 0; i < len; i++) - tmp(i) = val(i); - retval = tmp; - }\n"; - } - elsif ($type[$i] eq "Array") - { - print " Array val = $static_object_name.$opt[$i] ();\n\n"; - print " if (val.length () == 1) - { - retval = val(0); - } - else - { - retval = ColumnVector (val); - }\n"; - } - elsif ($type[$i] eq "Array") - { - print " Array val = $static_object_name.$opt[$i] ();\n\n"; - print " if (val.length () == 1) - { - retval = val(0); - } - else - { - retval = FloatColumnVector (val); - }\n"; - } - else - { - die ("unknown type $type[$i]"); - } - - print " }\n"; - } - - print " else - { - warning (\"$opt_fcn_name: no match for `%s'\", keyword.c_str ()); - } - - return retval;\n}\n\n"; - } - - sub emit_options_function - { - print "DEFUN_DLD ($opt_fcn_name, args, , - \"-*- texinfo -*-\\n\\ - \@deftypefn {Loadable Function} {} $opt_fcn_name (\@var{opt}, \@var{val})\\n\\ - $doc_string\\n\\ - Options include\\n\\ - \\n\\ - \@table \@code\\n\\\n"; - - for ($i = 0; $i < $opt_num; $i++) - { - print "\@item \\\"$name[$i]\\\"\\n\\\n"; - if ($doc_item[$i] ne "") - { - print "$doc_item[$i]"; - } - } - - print "\@end table\\n\\\n\@end deftypefn\") - { - octave_value_list retval; - - int nargin = args.length (); - - if (nargin == 0) - { - print_${class_name} (octave_stdout); - } - else if (nargin == 1 || nargin == 2) - { - std::string keyword = args(0).string_value (); - - if (! error_state) - { - if (nargin == 1) - retval = show_${class_name} (keyword); - else - set_${class_name} (keyword, args(1)); - } - else - error (\"$opt_fcn_name: expecting keyword as first argument\"); - } - else - print_usage (); - - return retval; - }\n"; - } - - sub emit_options_debug - { - print "CLASS = \"$class\"\n"; - - for ($i = 0; $i < $opt_num; $i++) - { - $NAME = $name[$i]; - ($OPT = $NAME) =~ s/\s+/_/g; - $OPTVAR = "x_$OPT"; - $TYPE = $type[$i]; - print "\n"; - print "OPTION\n"; - print " NAME = \"$NAME\"\n"; - print " TYPE = \"$TYPE\"\n"; - if ($set_arg_type[$i]) - { - print eval ("\" SET_ARG_TYPE = \\\"$set_arg_type[$i]\\\"\"") . "\n"; - } - if ($init_value[$i]) - { - print " INIT_VALUE = \"$init_value[$i]\"\n"; - } - if ($init_body[$i]) - { - print " INIT_BODY\n"; - print &substopt ($init_body[$i]); - print " END_INIT_BODY\n"; - } - if ($set_expr[$i]) - { - print " SET_EXPR = \"$set_expr[$i]\"\n"; - } - if ($set_body[$i]) - { - print " SET_BODY\n"; - print &substopt ($set_body[$i]); - print " END_SET_BODY\n"; - } - if ($set_code[$i]) - { - print " SET_CODE\n"; - print &substopt ($set_code[$i]); - print " END_SET_CODE\n"; - } - print "END_OPTION\n"; - } - } - - sub substopt - { - local ($string, $OPTVAR, $OPT, $TYPE) = @_; - - $string =~ s/\$OPTVAR/$OPTVAR/g; - $string =~ s/\$OPT/$OPT/g; - $string =~ s/\$TYPE/$TYPE/g; - - $string; - } - - sub print_assoc_array - { - local (%t) = @_; - - local ($k); - - foreach $k (keys (%t)) - { - print "$k: $t{$k}\n"; - } - } - - sub max - { - local ($max) = shift; - - foreach (@_) - { - $max = $_ if $max < $_; - } - - $max; - } --- 0 ---- diff -cNr octave-3.4.0/move-if-change octave-3.4.1/move-if-change *** octave-3.4.0/move-if-change 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/move-if-change 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,15 **** - #!/bin/sh - # - # Like mv $1 $2, but if the files are the same, just delete $1. - # Status is 0 if $2 is changed, 1 otherwise. - - if test -r $2; then - if cmp $1 $2 > /dev/null; then - echo $2 is unchanged - rm -f $1 - else - mv -f $1 $2 - fi - else - mv -f $1 $2 - fi --- 0 ---- diff -cNr octave-3.4.0/NEWS octave-3.4.1/NEWS *** octave-3.4.0/NEWS 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/NEWS 2011-06-15 11:13:48.000000000 -0400 *************** *** 1,9 **** --- 1,64 ---- + Summary of important user-visible changes for version 3.4.1: + ----------------------------------------------------------- + + ** Octave 3.4.1 is primarily a bug fixing release. + + ** IMPORTANT note about binary incompatibility in this release: + + Binary compatibility for all 3.4.x releases was originally planned, + but this is impossible for the 3.4.1 release due to a bug in the way + shared libraries were built in Octave 3.4.0. Because of this bug, + .oct files built for Octave 3.4.0 must be recompiled before they + will work with Octave 3.4.1. + + Given that there would be binary incompatibilities with shared + libraries going from Octave 3.4.0 to 3.4.1, the following + incompatible changes were also made in this release: + + * The Perl Compatible Regular Expression (PCRE) library is now + required to build Octave. + + * Octave's libraries and .oct files are now installed in + subdirectories of $libdir instead of $libexecdir. + + Any future Octave 3.4.x release versions should remain binary + compatible with Octave 3.4.1 as proper library versioning is now + being used as recommended by the libtool manual. + + ** The following functions have been deprecated in Octave 3.4.1 and will + be removed from Octave 3.8 (or whatever version is the second major + release after 3.4): + + cquad is_duplicate_entry perror strerror + + ** The following functions are new in 3.4.1: + + colstyle gmres iscolumn isrow mgorth nproc rectangle + + ** The get_forge_pkg function is now private. + + ** The rectangle_lw, rectangle_sw, triangle_lw, and triangle_sw + functions are now private. + + ** The logistic_regression_derivatives and logistic_regression_likelihood + functions are now private. + + ** ChangeLog files in the Octave sources are no longer maintained + by hand. Instead, there is a single ChangeLog file generated from + the Mercurial version control commit messages. Older ChangeLog + information can be found in the etc/OLD-ChangeLogs directory in the + source distribution. + Summary of important user-visible changes for version 3.4: --------------------------------------------------------- ** BLAS and LAPACK libraries are now required to build Octave. The subset of the reference BLAS and LAPACK libraries has been removed from the Octave sources. + + ** The ARPACK library is now distributed with Octave so it no longer + needs to be available as an external dependency when building + Octave. ** The `lookup' function was extended to be more useful for general-purpose binary searching. Using this improvement, the *************** *** 124,130 **** Moreover, when unary operators occur in expressions, Octave will also try to do the operation in-place if it's argument is a ! temporary expresssion. ** The effect of comparison operators (<, >, <=, and >=) applied to complex numbers has changed to be consistent with the strict --- 179,185 ---- Moreover, when unary operators occur in expressions, Octave will also try to do the operation in-place if it's argument is a ! temporary expression. ** The effect of comparison operators (<, >, <=, and >=) applied to complex numbers has changed to be consistent with the strict *************** *** 152,160 **** ** More efficient matrix division handling. Octave is now able to handle the expressions ! M' \ V ! M.' \ V ! V / M (M is a matrix and V is a vector) more efficiently in certain cases. In particular, if M is triangular, all three expressions will be --- 207,215 ---- ** More efficient matrix division handling. Octave is now able to handle the expressions ! M' \ V ! M.' \ V ! V / M (M is a matrix and V is a vector) more efficiently in certain cases. In particular, if M is triangular, all three expressions will be *************** *** 213,218 **** --- 268,278 ---- of `strcat' has been vectorized and is now much more efficient when many strings are concatenated. The `strcmpi' and `strncmpi' functions are now built-in functions, providing better performance. + + ** 'str2double' now has a compiled implementation and the API conforms + to Matlab. The additional Octave-specific features of returning a + boolean matrix indicating which elements were successfully converted + has been removed. ** Matlab-style ignoring input and output function arguments using tilde (~) is now supported. Ignored output arguments may be *************** *** 291,358 **** can be used to list all available packages. ! ** The internal data representation of structs has been completely ! rewritten to make certain optimizations feasible. The field data ! can now be shared between structs with equal keys but different ! dimensions or values, making operations that preserve the fields ! faster. Economized storage is now used for scalar structs (just ! like most other scalars), making their usage more ! memory-efficient. Certain array-like operations on structs ! (concatenation, uniform cellfun, num2cell) have gained a ! significant speed-up. Additionally, the octave_scalar_map class ! now provides a simpler interface to work with scalar structs within ! a C++ DLD function. ! ! ** Two new formats are available for displaying numbers: ! ! format short eng ! format long eng ! ! Both display numbers in engineering notation, i.e., mantissa + ! exponent where the exponent is a multiple of 3. ! ! ** The following functions are new in Octave 3.4: ! ! accumdim erfcx nfields pqpnonneg uigetdir ! bitpack fileread nth_element quadcc uigetfile ! bitunpack fminbnd onCleanup randi uiputfile ! blkmm fskipl pbaspect repelems uimenu ! cbrt ifelse pie3 reset whitebg ! curl ishermitian powerset rsf2csf ! chop isindex ppder saveas ! daspect luupdate ppint strread ! divergence merge ppjumps textread ! ! ** Using the image function to view images with external programs such ! as display, xv, and xloadimage is no longer supported. The ! image_viewer function has also been removed. ! ! ** The behavior of struct assignments to non-struct values has been ! changed. Previously, it was possible to overwrite an arbitrary ! value: ! ! a = 1; ! a.x = 2; ! This is no longer possible unless a is an empty matrix or cell ! array. ! ! ** The dlmread function has been extended to allow specifying a custom ! value for empty fields. ! ** The dlmread and dlmwrite functions have been modified to accept ! file IDs (as returned by fopen) in addition to file names. ! ** Octave can now optimize away the interpreter overhead of an ! anonymous function handle, if the function simply calls another ! function or handle with some of its parameters bound to certain ! values. Example: ! ! f = @(x) sum (x, 1); ! ! When f is called, the call is forwarded to @sum with the constant 1 ! appended, and the anonymous function call does not occur on the ! call stack. ** Deprecated functions. --- 351,431 ---- can be used to list all available packages. ! ** The internal data representation of structs has been completely ! rewritten to make certain optimizations feasible. The field data ! can now be shared between structs with equal keys but different ! dimensions or values, making operations that preserve the fields ! faster. Economized storage is now used for scalar structs (just ! like most other scalars), making their usage more ! memory-efficient. Certain array-like operations on structs ! (concatenation, uniform cellfun, num2cell) have gained a ! significant speed-up. Additionally, the octave_scalar_map class ! now provides a simpler interface to work with scalar structs within ! a C++ DLD function. ! ! ** Two new formats are available for displaying numbers: ! ! format short eng ! format long eng ! ! Both display numbers in engineering notation, i.e., mantissa + ! exponent where the exponent is a multiple of 3. ! ! ** The following functions are new in Octave 3.4: ! accumdim erfcx nfields pqpnonneg uigetdir ! bitpack fileread nth_element quadcc uigetfile ! bitunpack fminbnd onCleanup randi uiputfile ! blkmm fskipl pbaspect repelems uimenu ! cbrt ifelse pie3 reset whitebg ! curl ishermitian powerset rsf2csf ! chop isindex ppder saveas ! daspect luupdate ppint strread ! divergence merge ppjumps textread ! ! ** Using the image function to view images with external programs such ! as display, xv, and xloadimage is no longer supported. The ! image_viewer function has also been removed. ! ! ** The behavior of struct assignments to non-struct values has been ! changed. Previously, it was possible to overwrite an arbitrary ! value: ! a = 1; ! a.x = 2; ! ! This is no longer possible unless a is an empty matrix or cell ! array. ! ! ** The dlmread function has been extended to allow specifying a custom ! value for empty fields. ! ! ** The dlmread and dlmwrite functions have been modified to accept ! file IDs (as returned by fopen) in addition to file names. ! ** Octave can now optimize away the interpreter overhead of an ! anonymous function handle, if the function simply calls another ! function or handle with some of its parameters bound to certain ! values. Example: ! ! f = @(x) sum (x, 1); ! When f is called, the call is forwarded to @sum with the constant 1 ! appended, and the anonymous function call does not occur on the ! call stack. ! ! ** For compatibility with Matlab, mu2lin (x) is now equivalent to ! mu2lin (x, 0). ! ! ** The new function `history_control' may be used to control the way ! command lines are added to the history list when Octave is using ! readline for command-line editing. For example ! ! history_control ("ignoredups") ! ! tells Octave to avoid adding duplicate lines to the history list. ! ! ** Octave now uses the gnulib library for improved portability and to ! avoid bugs in operating system functions. ** Deprecated functions. *************** *** 409,424 **** be removed from Octave 3.8 (or whatever version is the second major release after 3.4): ! autocor cellidx gammai krylovb values ! autocov dispatch glpkmex replot ! betai fstat is_global saveimage ! ! * For compatibility with Matlab, mu2lin (x) is now equivalent to ! mu2lin (x, 0). ! ! * The ARPACK library is now distributed with Octave so it no longer ! needs to be available as an external dependency when building ! Octave. Summary of important user-visible changes for version 3.2: --------------------------------------------------------- --- 482,490 ---- be removed from Octave 3.8 (or whatever version is the second major release after 3.4): ! autocor cellidx gammai krylovb saveimage ! autocov dispatch glpkmex perror strerror ! betai fstat is_global replot values Summary of important user-visible changes for version 3.2: --------------------------------------------------------- *************** *** 642,648 **** The performance of sort has been improved, especially when sorting indices are requested. An efficient built-in issorted implementation was added. The sortrows function now uses a more ! efficient algorithm, especially in the homegeneous case. The lookup function is now a built-in function performing a binary search, optimized for long runs of close elements. Lookup also works with cell arrays of strings. --- 708,714 ---- The performance of sort has been improved, especially when sorting indices are requested. An efficient built-in issorted implementation was added. The sortrows function now uses a more ! efficient algorithm, especially in the homogeneous case. The lookup function is now a built-in function performing a binary search, optimized for long runs of close elements. Lookup also works with cell arrays of strings. diff -cNr octave-3.4.0/NEWS.1 octave-3.4.1/NEWS.1 *** octave-3.4.0/NEWS.1 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/NEWS.1 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,1602 **** - Summary of changes for version 1.1.1: - ------------------------------------ - - * New built-in variables, default_return_value and - define_all_return_values. - - If define_all_return_values is set to "false", Octave does not do - anything special for return values that are left undefined, and - you will get an error message if you try to use them. For - example, if the function - - function [x, y] = f () - y = 1; - endfunction - - is called as - - octave:13> [a, b] = f () - - Octave will print an error message for the attempt to assign an - undefined value to `a'. - - This is incompatible with Matlab, which will define the return - variable `x' to be the empty matrix. To get the Matlab-like - behavior, you can set the variable define_all_return_values to - "true" (the default is "false") and default_return_value to `[]' - (the default). Then, any return values that remain undefined when - the function returns will be initialized to `[]'. - - If the function is called without explicitly asking for an output, - it will succeed. This behavior is compatible and unchanged from - previous versions of Octave. - - * New built-in variable suppress_verbose_help_message. If set to - "true", Octave will not add additional help information to the end - of the output from the help command and usage messages for - built-in commands. The default value is "false". - - * New built-in variable PS4 is used as the prefix of echoed input - (enabled with the --echo-input (-x) option). - - * The function size() now accepts an optional second argument. - - * Output from `save - ...' now goes through the pager. - - * The break statement may also be used to exit a function, for - compatibility with Matlab. - - * The directory tree for installing Octave is now closer to - conforming with the current GNU standards. - - * More bug fixes. - - Summary of changes for version 1.1.0: - ------------------------------------ - - * Octave now requires g++ 2.6.3 or later. This change is necessary - to make template instantiations cleaner, and to avoid having to - have special cases in the code for earlier versions of gcc. - - * A new data structure type has been added. The implementation uses - an associative array with indices limited to strings, but the - syntax is more like C-style structures. here are some examples of - using it. - - Elements of structures can be of any type, including structures: - - octave:1> x.a = 1; - octave:2> x.b = [1, 2; 3, 4]; - octave:3> x.c = "string"; - octave:4> x - x = - - - - octave:5> x.a - x.a = 1 - octave:6> x.b - x.b = - - 1 2 - 3 4 - - octave:7> x.c - x.c = string - octave:8> x.b.d = 3 - x.b.d = 3 - octave:9> x.b - x.b = - - - - octave:10> x.b.d - x.b.d = 3 - - Functions can return structures: - - octave:1> a = rand (3) + rand (3) * I; - octave:2> function y = f (x) - > y.re = real (x); - > y.im = imag (x); - > endfunction - octave:3> f (a) - ans = - - - - octave:4> ans.im - ans.im = - - 0.093411 0.229690 0.627585 - 0.415128 0.221706 0.850341 - 0.894990 0.343265 0.384018 - - octave:5> ans.re - ans.re = - - 0.56234 0.14797 0.26416 - 0.72120 0.62691 0.20910 - 0.89211 0.25175 0.21081 - - Return lists can include structure elements: - - octave:1> [x.u, x.s, x.v] = svd ([1, 2; 3, 4]) - x.u = - - -0.40455 -0.91451 - -0.91451 0.40455 - - x.s = - - 5.46499 0.00000 - 0.00000 0.36597 - - x.v = - - -0.57605 0.81742 - -0.81742 -0.57605 - - octave:8> x - x = - - - - This feature should be considered experimental, but it seems to - work ok. Suggestions for ways to improve it are welcome. - - * Octave now supports a limited form of exception handling modelled - after the unwind-protect form of Lisp: - - unwind_protect - BODY - unwind_protect_cleanup - CLEANUP - end_unwind_protect - - Where BODY and CLEANUP are both optional and may contain any - Octave expressions or commands. The statements in CLEANUP are - guaranteed to be executed regardless of how control exits BODY. - - This is useful to protect temporary changes to global variables - from possible errors. For example, the following code will always - restore the original value of the built-in variable - do_fortran_indexing even if an error occurs while performing the - indexing operation. - - save_do_fortran_indexing = do_fortran_indexing; - unwind_protect - do_fortran_indexing = "true"; - elt = a (idx) - unwind_protect_cleanup - do_fortran_indexing = save_do_fortran_indexing; - end_unwind_protect - - Without unwind_protect, the value of do_fortran_indexing would not - be restored if an error occurs while performing the indexing - operation because evaluation would stop at the point of the error - and the statement to restore the value would not be executed. - - * Recursive directory searching has been implemented using Karl - Berry's kpathsea library. Directories below path elements that - end in // are searched recursively for .m files. - - * Octave now waits for additional input when a pair of parentheses - is `open' instead of giving an error. This allows one to write - statements like this - - if (big_long_variable_name == other_long_variable_name - || not_so_short_variable_name > 4 - && y > x) - some (code, here); - - without having to clutter up the if statement with continuation - characters. - - * Continuation lines are now allowed in string constants and are - handled correctly inside matrix constants. - - * Both `...{whitespace}\n' and `\{whitespace}\n' can be used to - introduce continuation lines, where {whitespace} may include - spaces, tabs and comemnts. - - * The script directory has been split up by topic. - - * Dynamic linking mostly works with dld. The following limitations - are known problems: - - -- Clearing dynamically linked functions doesn't work. - - -- Dynamic linking only works with dld, which has not been ported - to very many systems yet. - - -- Configuring with --enable-lite-kernel seems to mostly work to - make nonessential built-in functions dynamically loaded, but - there also seem to be some problems. For example, fsolve seems - to always return info == 3. This is difficult to debug since - gdb won't seem to allow breakpoints to be set inside - dynamically loaded functions. - - -- Octave uses a lot of memory if the dynamically linked functions - are compiled with -g. This appears to be a limitation with - dld, and can be avoided by not using -g to compile functions - that will be linked dynamically. - - * fft2 and ifft2 are now built-in functions. - - * The `&&' and `||' logical operators are now evaluated in a - short-circuit fashion and work differently than the element by - element operators `&' and `|'. See the Octave manual for more - details. - - * Expressions like 1./m are now parsed as 1 ./ m, not 1. / m. - - * The replot command now takes the same arguments as gplot or - gsplot (except ranges, which cannot be respecified with replot - (yet)) so you can add additional lines to existing plots. - - * The hold command has been implemented. - - * New function `clearplot' clears the plot window. The name `clg' - is aliased to `clearplot' for compatibility with Matlab. - - * The commands `gplot clear' and `gsplot clear' are equivalent to - `clearplot'. (Previously, `gplot clear' would evaluate `clear' as - an ordinary expression and clear all the visible variables.) - - * The Matlab-style plotting commands have been improved. They now - accept line-style arguments, multiple x-y pairs, and other plot - option flags. For example, - - plot (x, y, "@12", x, y2, x, y3, "4", x, y4, "+") - - results in a plot with - - y plotted with points of type 2 ("+") and color 1 (red). - y2 plotted with lines. - y3 plotted with lines of color 4. - y4 plotted with points which are "+"s. - - the help message for `plot' and `plot_opt' provide full - descriptions of the options. - - * NaN is now dropped from plot data, and Inf is converted to a - very large value before calling gnuplot. - - * Improved load and save commands: - - -- The save and load commands can now read and write a new binary - file format. Conversion to and from IEEE big and little endian - formats is handled automatically. Conversion for other formats - has not yet been implemented. - - -- The load command can now read Matlab .mat files, though it is - not yet able to read sparse matrices or handle conversion for - all data formats. - - -- The save command can write Matlab .mat files. - - -- The load command automatically determines the save format - (binary, ascii, or Matlab binary). - - -- The default format for the save command is taken from the - built-in variable `default_save_format'. - - -- The save and load commands now both accept a list of globbing - patterns so you can easily load a list of variables from a - file. - - -- The load command now accepts the option -list, for listing the - variable names without actually loading the data. With - -verbose, it prints a long listing. - - -- The load command now accepts the option -float-binary, for - saving floating point data in binary files in single precision. - - * who and whos now accept a list of globbing patterns so you can - limit the lists of variables and functions to those that match a - given set of patterns. - - * New functions for manipulating polynomials - - compan -- companion matrix corresponding to polynomial coefficients - conv -- convolve two vectors - deconv -- deconvolve two vectors - roots -- find the roots of a polynomial - poly -- characteristic polynomial of a matrix - polyderiv -- differentiate a polynomial - polyinteg -- integrate a polynomial - polyreduce -- reduce a polynomial to minimum number of terms - polyval -- evaluate a polynomial at a point - polyvalm -- evaluate a polynomial in the matrix sense - residue -- partial fraction expansion corresponding to the ratio - of two polynomials - - * New functions for manipulating sets - - create_set -- create a set of unique values - complement -- find the complement of two sets - intersection -- find the intersection of two sets - union -- find the union of two sets - - * New elementary functions: - - acot acoth acsc acsch - asec asech cot coth - csc csch log2 sec - sech - - * New special functions: - - beta -- beta function - betai -- incomplete beta function - gammai -- incomplete gamma function - - * New image processing functions: - - colormap -- set and return current colormap - gray -- set a gray colormap - gray2ind -- image format conversion - image -- display an image - imagesc -- scale and display an image - imshow -- display images - ind2gray -- image format conversion - ind2rgb -- image format conversion - loadimage -- load an image from a file - ntsc2rgb -- image format conversion - ocean -- set a color colormap - rgb2ind -- image format conversion - rgb2ntsc -- image format conversion - saveimage -- save an image to a file - - * New time and date funcitons: - - tic -- set wall-clock timer - toc -- get elapsed wall-clock time, since timer last set - etime -- another way to get elapsed wall-clock time - cputime -- get CPU time used since Octave started - is_leap_year -- is the given year a leap year? - - * Other new functions: - - bug_report -- submit a bug report to the bug-octave mailing list - - toascii -- convert a string to a matrix of ASCII character codes - - octave_tmp_file -- generate a unique temporary file name - - undo_string_escapes -- replace special characters in a string by - their backslash forms - - is_struct -- determine whether something is a structure data type - - feof -- check EOF condition for a specified file - ferror -- check error state for a specified file - fread -- read binary data from a file - fwrite -- write binary data to a file - - file_in_path -- check to see if named file exists in given path - - kbhit -- get a single character from the terminal - - axis -- change plot ranges - hist -- plot histograms - - diary -- save commands and output to a file - - type -- show the definition of a function - which -- print the type of an identifier or the location of a - function file - - isieee -- Returns 1 if host uses IEEE floating point - realmax -- Returns largest floating point number - realmin -- Returns smallest floating point number - - gcd -- greatest common divisor - lcm -- least common multiple - - null -- orthonormal basis of the null space of a matrix - orth -- orthonormal basis of the range space of a matrix - - fft2 -- two-dimensional fast fourier transform - ifft2 -- two-dimensional inverse fast fourier transform - filter -- digital filter - fftfilt -- filter using fft - fftconv -- convolve to vectors using fft - sinc -- returns sin(pi*x)/(pi*x) - freqz -- compute the frequency response of a filter - - * The meaning of nargin (== args.length ()) in built-in functions - has been changed to match the meaning of nargin in user-defined - functions. - - * Variable return lists. Octave now has a real mechanism for - handling functions that return an unspecified number of values, - so it is no longer necessary to place an upper bound on the number - of outputs that a function can produce. - - Here is an example of a function that uses the new syntax to - produce n values: - - function [...] = foo (n) - for i = 1:n - vr_val (i * x); - endfor - endfunction - - * New keyword, all_va_args, that allows the entire list of va_args - to be passed to another function. For example, given the functions - - function f (...) - while (nargin--) - disp (va_arg ()) - endwhile - endfunction - function g (...) - f ("begin", all_va_args, "end") - endfunction - - the statement - - g (1, 2, 3) - - prints - - begin - 1 - 2 - 3 - end - - all_va_args may be used more than once, but can only be used - within functions that take a variable number of arguments. - - * If given a second argument, svd now returns an economy-sized - decomposition, eliminating the unecessary rows or columns of U or - V. - - * The max and min functions correctly handle complex matrices in - which some columns contain real values only. - - * The find function now handles 2 and 3 output arguments. - - * The qr function now allows computation of QR with pivoting. - - * hilb() is much faster for large matrices. - - * computer() is now a built-in function. - - * pinv() is now a built-in function. - - * The output from the history command now goes through the pager. - - * If a function is called without assigning the result, nargout is - now correctly set to 0. - - * It is now possible to write functions that only set some return - values. For example, calling the function - - function [x, y, z] = f () x = 1; z = 2; endfunction - - as - - [a, b, c] = f () - - produces: - - a = 1 - - b = [](0x0) - - c = 2 - - * The shell_cmd function has been renamed to system (the name - shell_cmd remains for compatibility). It now returns [output, status]. - - * New built-in variable `OCTAVE_VERSION'. Also a new function, - version, for compatibility with Matlab. - - * New built-in variable `automatic_replot'. If it is "true", Octave - will automatically send a replot command to gnuplot each time the - plot changes. Since this is fairly inefficient, the default value - is "false". - - * New built-in variable `whitespace_in_literal_matrix' allows some - control over how Octave decides to convert spaces to commas in - matrix expressions like `[m (1)]'. - - If the value of `whitespace_in_literal_matrix' is "ignore", Octave - will never insert a comma or a semicolon in a literal matrix list. - For example, the expression `[1 2]' will result in an error - instead of being treated the same as `[1, 2]', and the expression - - [ 1, 2, - 3, 4 ] - - will result in the vector [1 2 3 4] instead of a matrix. - - If the value of `whitespace_in_literal_matrix' is "traditional", - Octave will convert spaces to a comma between identifiers and `('. - For example, given the matrix - - m = [3 2] - - the expression - - [m (1)] - - will be parsed as - - [m, (1)] - - and will result in - - [3 2 1] - - and the expression - - [ 1, 2, - 3, 4 ] - - will result in a matrix because the newline character is converted - to a semicolon (row separator) even though there is a comma at the - end of the first line (trailing commas or semicolons are ignored). - This is apparently how Matlab behaves. - - Any other value for `whitespace_in_literal_matrix' results in - behavior that is the same as traditional, except that Octave does - not convert spaces to a comma between identifiers and `('. - For example, the expression - - [m (1)] - - will produce 3. This is the way Octave has always behaved. - - * Line numbers in error messages for functions defined in files and - for script files now correspond to the file line number, not the - number of lines after the function keyword appeared. - - * Octave now extracts help from script files. The comments must - come before any other statements in the file. - - * In function files, the first block of comments in the file will - now be interpreted as the help text if it doesn't look like the - Octave copyright notice. Otherwise, Octave extracts the first set - of comments after the function keyword. - - * The function clock is more accurate on systems that have the - gettimeofday() function. - - * The standard output stream is now automatically flushed before - reading from stdin with any of the *scanf() functions. - - * Expanded reference card. - - * The Octave distribution now includes a frequently asked questions - file, with answers. Better answers and more questions (with - answers!) are welcome. - - * New option --verbose. If Octave is invoked with --verbose and not - --silent, a message is printed if an octaverc file is read while - Octave is starting. - - * An improved configure script generated by Autoconf 2.0. - - * Lots of bug fixes. - - Summary of changes for version 1.0: - ---------------------------------- - - * C-style I/O functions now handle files referenced by name or by - number more consistently. - - Summary of changes for version 0.83: - ----------------------------------- - - * Loading global symbols should work now. - - * Clearing the screen doesn't reprint the prompt unnecessarily. - - * The operations OP for OP == +, -, - *, or ./ no longer crash Octave. - - * More portability and configuration fixes. - - Summary of changes for version 0.82: - ----------------------------------- - - * Octave now comes with a reference card. - - * The manual has been improved, but more work remains to be done. - - * The atanh function now works for complex arguments. - - * The asin, acos, acosh, and atanh functions now work properly when - given real-valued arguments that produce complex results. - - * SEEK_SET, SEEK_CUR, and SEEK_END are now constants. - - * The `using' qualifier now works with gplot and gsplot when the - data to plot is coming directly from a file. - - * The strcmp function now works correctly for empty strings. - - * Eliminated bogus parse error for M-files that don't end with `end' - or `endfunction'. - - * For empty matrices with one nonzero dimension, the +, -, .*, and - ./ operators now correctly preserve the dimension. - - * Octave no longer crashes if you type ^D at the beginning of a line - in the middle of defining a loop or if statement. - - * On AIX systems, Back off on indexing DiagArray via Proxy class to - avoid gcc (or possibly AIX assembler?) bug. - - * Various other bug and portability fixes. - - Summary of changes for version 0.81: - ----------------------------------- - - * Octave no longer dumps core if you try to define a function in - your .octaverc file. - - * Fixed bug in Array class that resulted in bogus off-diagonal - elements when computing eigenvalue and singular value - decompositions. - - * Fixed bug that prevented lsode from working on the SPARCstation, - at least with some versions of Sun's f77. This bug was introduced - in 0.80, when I changed LSODE to allow the user to abort the - integration from within the RHS function. - - * Fixed bug that prevented global attribute of variables from being - saved with save(), and another that prevented load() from working - at all. - - Summary of changes for version 0.80: - ----------------------------------- - - * I have started working on a manual for the C++ classes. At this - point, it is little more than a list of function names. If you - would like to volunteer to help work on this, please contact - maintainers@octave.org. - - * The patterns accepted by the save and clear commands now work like - file name globbing patterns instead of regular expressions. I - apologize for any inconvenience this change may cause, but file - name globbing seems like a more reasonable style of pattern - matching for this purpose. - - * It is now possible to specify tolerances and other optional inputs - for dassl, fsolve, lsode, npsol, qpsol, and quad. For each of - these functions, there is a corresponding function X_options, - which takes a keyword and value arguments. If invoked without any - arguments, the X_options functions print a list of possible - keywords and current values. For example, - - npsol_options () - - prints a list of possible options with values, and - - npsol_options ("major print level", 10) - - sets the major print level to 10. - - The keyword match is not case sensitive, and the keywords may be - abbreviated to the shortest unique match. For example, - - npsol_options ("ma p", 10) - - is equivalent to the statement shown above. - - * The new built-in variable save_precision can be used to set the - number of digits preserved by the ASCII save command. - - * Assignment of [] now works in most cases to allow you to delete - rows or columns of matrices and vectors. For example, given a - 4x5 matrix A, the assignment - - A (3, :) = [] - - deletes the third row of A, and the assignment - - A (:, 1:2:5) = [] - - deletes the first, third, and fifth columns. - - * Variable argument lists. Octave now has a real mechanism for - handling functions that take an unspecified number of arguments, - so it is no longer necessary to place an upper bound on the number - of optional arguments that a function can accept. - - Here is an example of a function that uses the new syntax to print - a header followed by an unspecified number of values: - - function foo (heading, ...) - disp (heading); - va_start (); - while (--nargin) - disp (va_arg ()); - endwhile - endfunction - - Note that the argument list must contain at least one named - argument (this restriction may eventually be removed), and the - ellipsis must appear as the last element of the argument list. - - Calling va_start() positions an internal pointer to the first - unnamed argument and allows you to cycle through the arguments - more than once. It is not necessary to call va_start() if you - do not plan to cycle through the arguments more than once. - - * Recursive functions should work now. - - * The environment variable OCTAVE_PATH is now handled in the same - way as TeX handles TEXINPUTS. If the path starts with `:', the - standard path is prepended to the value obtained from the - environment. If it ends with `:' the standard path is appended to - the value obtained from the environment. - - * New functions, from Kurt Hornik (hornik@neuro.tuwien.ac.at) and - the Department of Probability Theory and Statistics TU Wien, - Austria: - - corrcoef -- corrcoef (X, Y) is the correlation between the i-th - variable in X and the j-th variable in Y - corrcoef (X) is corrcoef (X, X) - cov -- cov (X, Y) is the covariance between the i-th - variable in X and the j-th variable in Y - cov (X) is cov (X, X) - gls -- generalized least squares estimation - kurtosis -- kurtosis(x) = N^(-1) std(x)^(-4) SUM_i (x(i)-mean(x))^4 - 3 - If x is a matrix, return the row vector containing - the kurtosis of each column - mahalanobis -- returns Mahalanobis' D-square distance between the - multivariate samples X and Y, which must have the - same number of components (columns), but may have - a different number of observations (rows) - ols -- ordinary least squares estimation - pinv -- returns the pseudoinverse of X; singular values - less than tol are ignored - skewness -- skewness (x) = N^(-1) std(x)^(-3) SUM_i (x(i)-mean(x))^3 - if x is a matrix, return the row vector containing - the skewness of each column - - * Errors in user-supplied functions called from dassl, fsolve, - lsode, npsol, and quad are handled more gracefully. - - * Programming errors in the use of the C++ classes within Octave - should no longer cause Octave to abort. Instead, Octave's error - handler function is called and execution continues as best as is - possible. This should result in eventually returning control to - the top-level Octave prompt. (It would be nice to have a real - exception handling mechanism...) - - * A number of memory leaks have been eliminated. Thanks to - Fong Kin Fui for reporting them. - - * The C++ matrix classes are now derived from a generic - template-based array class. - - * The readline function operate-and-get-next (from bash) is now - available and bound to C-O by default. - - * Octave now uses the version of readline currently distributed with - bash-1.13. On some systems, interactive invocations of Octave - will now blink the cursor to show matching parens. - - * By default, include files are now installed in - $prefix/include/octave instead of $prefix/include. - - * Octave now uses a config.h file instead of putting all defines on - the compiler command line. - - Summary of changes for version 0.79: - ----------------------------------- - - * New control systems functions: - - dgram -- Returns the discrete controllability and observability gramian. - dlqr -- Discrete linear quadratic regulator design. - dlqe -- Discrete linear quadratic estimator (Kalman Filter) design. - c2d -- Convert continuous system description to discrete time - description assuming zero-order hold and given sample time. - - * The max (min) functions can now return the index of the max (min) - value as a second return value. - - Summary of changes for version 0.78: - ----------------------------------- - - * Octave's handling of global variables has been completely - rewritten. To access global variables inside a function, you must - now declare them to be global within the function body. Likewise, - if you do not declare a variable as global at the command line, - you will not have access to it within a function, even if it is - declared global there. For example, given the function - - function f () - global x = 1; - y = 2; - endfunction - - the global variable `x' is not visible at the top level until the - command - - octave:13> global x - - has been evaluated, and the variable `y' remains local to the - function f() even if it is declared global at the top level. - - Clearing a global variable at the top level will remove its global - scope and leave it undefined. For example, - - octave:1> function f () # Define a function that accesses - > global x; # the global variable `x'. - > x - > endfunction - octave:2> global x = 1 # Give the variable `x' a value. - octave:3> f () # Evaluating the function accesses the - x = 1 # global `x'. - octave:4> clear x # Remove `x' from global scope, clear value. - octave:5> x = 2 # Define new local `x' at the top level - x = 2 - octave:6> f # The global `x' is no longer defined. - error: `x' undefined near line 1 column 25 - error: evaluating expression near line 1, column 25 - error: called from `f' - octave:7> x # But the local one is. - x = 2 - - * The new function, `is_global (string)' returns 1 if the variable - named by string is globally visible. Otherwise, returns 0. - - * The implementation of `who' has changed. It now accepts the - following options: - - -b -builtins -- display info for built-in variables and functions - -f -functions -- display info for currently compiled functions - -v -variables -- display info for user variables - -l -long -- display long info - - The long output looks like this: - - octave:5> who -l - - *** currently compiled functions: - - prot type rows cols name - ==== ==== ==== ==== ==== - wd user function - - f - - *** local user variables: - - prot type rows cols name - ==== ==== ==== ==== ==== - wd real scalar 1 1 y - - *** globally visible user variables: - - prot type rows cols name - ==== ==== ==== ==== ==== - wd complex matrix 13 13 x - - where the first character of the `protection' field is `w' if the - symbol can be redefined, and `-' if it has read-only access. The - second character may be `d' if the symbol can be deleted, or `-' - if the symbol cannot be cleared. - - * The new built-in variable ignore_function_time_stamp can be used - to prevent Octave from calling stat() each time it looks up - functions defined in M-files. If set to "system", Octave will not - automatically recompile M-files in subdirectories of - $OCTAVE_HOME/lib/VERSION if they have changed since they were last - compiled, but will recompile other M-files in the LOADPATH if they - change. If set to "all", Octave will not recompile any M-files - unless their definitions are removed with clear. For any other - value of ignore_function_time_stamp, Octave will always check to - see if functions defined in M-files need to recompiled. The - default value of ignore_function_time_stamp is "system". - - * The new built-in variable EDITOR can be used to specify the editor - for the edit_history command. It is set to the value of the - environment variable EDITOR, or `vi' if EDITOR is not set, or is - empty. - - * There is a new built-in variable, INFO_FILE, which is used as the - location of the info file. Its initial value is - $OCTAVE_HOME/info/octave.info, so `help -i' should now work - provided that OCTAVE_HOME is set correctly, even if Octave is - installed in a directory different from that specified at compile - time. - - * There is a new command line option, --info-file FILE, that may be - used to set Octave's idea of the location of the info file. It - will override any value of OCTAVE_INFO_FILE found in the - environment, but not any INFO_FILE="filename" commands found in - the system or user startup files. - - * Octave's Info reader will now recognize gzipped files that have - names ending in `.gz'. - - * The save command now accepts regular expressions as arguments. - Note that these patterns are regular expressions, and do not work - like filename globbing. For example, given the variables `a', - `aa', and `a1', the command `save a*' saves `a' and `aa' but not - `a1'. To match all variables beginning with `a', you must use an - expression like `a.*' (match all sequences beginning with `a' - followed by zero or more characters). - - * Line and column information is included in more error messages. - - Summary of changes for version 0.77: - ----------------------------------- - - * Improved help. The command `help -i topic' now uses the GNU Info - browser to display help for the given topic directly from the - Texinfo documenation. - - * New function: chol -- Cholesky factorization. - - Summary of changes for version 0.76: - ----------------------------------- - - * Better run-time error messages. Many now include line and column - information indicating where the error occurred. Octave will also - print a traceback for errors occurring inside functions. If you - find error messages that could use improvement, or errors that - Octave fails to catch, please send a bug report to - bug@octave.org. - - * If gplot (or gsplot) is given a string to plot, and the string - does not name a file, Octave will pass the string along to gnuplot - directly. This allows commands like - - gplot "sin (x)" w l, data w p - - to work (assuming that data is a variable containing a matrix of - values). - - * Long options (--help, --version, etc.) are supported. - - Summary of changes for version 0.75: - ----------------------------------- - - * The documentation is much more complete, but still could use a lot - of work. - - * The history function now prints line numbers by default. The - command `history -q' will omit them. - - * The clear function now accepts regular expressions. - - * If gplot (or gsplot) is given a string to plot, and the string - names a file, Octave attempts to plot the contents of the file. - - * New functions: - - history: - - run_history -- run commands from the history list. - edit_history -- edit commands from the history list with your - favorite editor. - - linear algebra: - - balance -- Balancing for algebraic and generalized - eigenvalue problems. - givens -- Givens rotation. - is_square -- Check to see if a matrix is square. - qzhess -- QZ decomposition of the matrix pencil (a - lambda b). - qzval -- Generalized eigenvalues for real matrices. - syl -- Sylvester equation solver. - - control systems: - - is_symmetric -- Check to see if a matrix is symmetric. - abcddim -- Check dimensions of linear dynamic system [A,B,C,D]. - is_controllable -- Check to see if [A,B,C,D] is controllable. - is_observable -- Check to see if [A,B,C,D] is observable. - are -- Solve algebraic Ricatti equation. - dare -- Solve discrete-time algebraic Ricatti equation. - lqe -- Kalman filter design for continuous linear system. - lqr -- Linear Quadratic Regulator design. - lyap -- Solve Lyapunov equation. - dlyap -- Solve discrete Lyapunov equation. - tzero -- Compute the transmission zeros of [A,B,C,D]. - - Summary of changes for version 0.74: - ----------------------------------- - - * Formal parameters to functions are now always considered to be - local variables, so things like - - global x = 0 - global y = 0 - function y = f (x) x = 1; y = x; end - f (x) - - result in the function returning 1, with the global values of x - and y unchanged. - - * Multiple assignment expressions are now allowed to take indices, - so things like - - octave:13> [a([1,2],[3,4]), b([5,6],[7,8])] = lu ([1,2;3,4]) - - will work correctly. - - Summary of changes for version 0.73: - ----------------------------------- - - * Saving and loading global variables works correctly now. - - * The save command no longer saves built-in variables. - - * Global variables are more reliable. - - * Matrices may now have one or both dimensions zero, so that - operations on empty matrices are now handled more consistently. - - By default, dimensions of the empty matrix are now printed along - with the empty matrix symbol, `[]'. For example: - - octave:13> zeros (3, 0) - ans = - - [](3x0) - - The new variable `print_empty_dimensions' controls this behavior. - - See also Carl de Boor, An Empty Exercise, SIGNUM, Volume 25, - pages 2--6, 1990, or C. N. Nett and W. M. Haddad, A - System-Theoretic Appropriate Realization of the Empty Matrix - Concept, IEEE Transactions on Automatic Control, Volume 38, - Number 5, May 1993. - - * The right and left division operators `/' and `\' will now find a - minimum norm solution if the system is not square, or if the - coefficient matrix is singular. - - * New functions: - - hess -- Hessenberg decomposition - schur -- Ordered Schur factorization - perror -- print error messages corresponding to error codes - returned from the functions fsolve, npsol, and qpsol - (with others to possibly be added later). - - * Octave now prints a warning if it finds anything other than - whitespace or comments after the final `end' or `endfunction' - statement. - - * The bodies of functions, and the for, while, and if commands are - now allowed to be empty. - - * Support for Gill and Murray's QPSOL has been added. Like NPSOL, - QPSOL is not freely redistributable either, so you must obtain - your own copy to be able to use this feature. More information - about where to find QPSOL and NPSOL are in the file README.NLP. - - Summary of changes for version 0.72: - ----------------------------------- - - * For numeric output, columns are now lined up on the decimal point. - (This requires libg++-2.3.1 or later to work correctly). - - * If octave is running interactively and the output intended for the - screen is longer than one page and a pager is available, it is - sent to the pager through a pipe. You may specify the program to - use as the pager by setting the variable PAGER. PAGER may also - specify a command pipeline. - - * Spaces are not always significant inside square brackets now, so - commands like - - [ linspace (1, 2) ] - - will work. However, some possible sources of confusion remain - because Octave tries (possibly too hard) to determine exactly what - operation is intended from the context surrounding an operator. - For example: - - -- In the command - - [ 1 - 1 ] - - the `-' is treated as a binary operator and the result is the - scalar 0, but in the command - - [ 1 -1 ] - - the `-' is treated as a unary operator and the result is the - vector [ 1 -1 ]. - - -- In the command - - a = 1; [ 1 a' ] - - the single quote character `'' is treated as a transpose operator - and the result is the vector [ 1 1 ], but in the command - - a = 1; [ 1 a ' ] - - an error message indicating an unterminated string constant is - printed. - - * Assignments are just expressions now, so they are valid anywhere - other expressions are. This means that things like - - if (a = n < m) ... endif - - are valid. This is parsed as: compare `n < m', assign the result - to the variable `a', and use it as the test expression in the if - statement. - - To help avoid errors where `=' has been used but `==' was - intended, Octave issues a warning suggesting parenthesis around - assignments used as truth values. You can suppress this warning - by adding parenthesis, or by setting the value of the new built-in - variable `warn_assign_as_truth_value' to 'false' (the default - value is 'true'). - - This is also true for multiple assignments, so expressions like - - [a, b, c] = [u, s, v] = expression - - are now possible. If the expression is a function, nargout is set - to the number of arguments for the right-most assignment. The - other assignments need not contain the same number of elements. - Extra left hand side variables in an assignment become undefined. - - * The default line style for plots is now `lines' instead of - `points'. To change it, use the `set data style STYLE' command. - - * New file handling and I/O functions: - - fopen -- open a file for reading or writing - fclose -- close a file - fflush -- flush output to a file - fgets -- read characters from a file - frewind -- set file position to the beginning of a file - fseek -- set file position - ftell -- tell file position - freport -- print a report for all open files - fscanf -- read from a file - sscanf -- read from a string - scanf -- read from the standard input - - * New built-in variables for file and I/O functions: - - stdin -- file number corresponding to the standard input stream. - stdout -- file number corresponding to the standard output stream. - stderr -- file number corresponding to the standard error stream. - - The following may be used as the final (optional) argument for - fseek: - - SEEK_SET -- set position relative to the beginning of the file. - SEEK_CUR -- set position relative to the current position. - SEEK_END -- set position relative to the end of the file. - - * New function: setstr -- convert vectors or scalars to strings - (doesn't work for matrices yet). - - * If possible, computer now prints the system type instead of - always printing `Hi Dave, I'm a HAL-9000'. - - * Octave now properly saves and restores its internal state - correctly in more places. Interrupting Octave while it is - executing a script file no longer causes it to exit. - - * Octave now does tilde expansion on each element of the LOADPATH. - - * A number of memory leaks have been plugged. - - * Dependencies for C++ source files are now generated automatically - by g++. - - * There is a new command line option, -p PATH, that may be used to - set Octave's loadpath from the command line. It will override any - value of OCTAVE_PATH found in the environment, but not any - LOADPATH="path" commands found in the system or user startup files. - - * It is now possible to override Octave's default idea of the - location of the system-wide startup file (usually stored in - $(prefix)/lib/octave/octaverc) using the environment variable - OCTAVE_HOME. If OCTAVE_HOME has a value, Octave will look for - octaverc and its M-files in the directory $OCTAVE_HOME/lib/octave. - - This allows people who are using binary distributions (as is - common with systems like Linux) to install the real octave binary - in any directory (using a name like octave.bin) and then install - a simple script like this - - #!/bin/sh - OCTAVE_HOME=/foo/bar/baz - export OCTAVE_HOME - exec octave.bin - - to be invoked as octave. - - - Summary of changes for version 0.71: - ----------------------------------- - - * Much improved plotting facility. With this release, Octave does - not require a specially modified version of gnuplot, so gnuplot - sources are no longer distributed with Octave. For a more - detailed description of the new plotting features, see the file - PLOTTING. - - * New plotting commands: - - plot -- 2D plots - semilogx -- 2D semilog plot with logscale on the x axis - semilogy -- 2D semilog plot with logscale on the y axis - loglog -- 2D log-log plot - mesh -- 3D mesh plot - meshdom -- create matrices for 3D plotting from two vectors - contour -- contour plots of 3D data - bar -- create bar graphs - stairs -- create stairstep plots - polar -- 2D plots from theta-R data - grid -- turn plot grid lines on or off - xlabel, ylabel -- place labels on the x and y axes of 2D plots - sombrero -- demonstrate 3D plotting - gplot -- 2D plot command with gnuplot-like syntax - gsplot -- 3D plot command with gnuplot-like syntax - set -- set plot options with gnuplot syntax - show -- show plot options with gnuplot syntax - closeplot -- close stream to gnuplot process - purge_tmp_files -- delete temporary files created by plot command - - * Other new commands: - - ls, dir -- print a directory listing - shell_cmd -- execute shell commands - keyboard -- get input from keyboard, useful for debugging - menu -- display a menu of options and ask for input - fft -- fast fourier transform - ifft -- inverse fast fourier transform - - * Strings may be enclosed in either single or double quote - characters. Double quote characters are not special within single - quote strings, and single quotes are not special within double - quote strings. - - * Command name completion now works for M-file names too. - - * Better help and usage messages for many functions. - - * Help is now available for functions defined in M-files. The first - block of comments is taken as the text of the help message. - - * Numerous changes in preparation to support dynamic loading of - object files with dld. - - * Bug fixes to make solving DAEs with dassl actually work. - - * The command `save file' now saves all variables in the named file. - - * If do_fortran_indexing is 'true', indexing a scalar with - [1,1,1,...] (n times) replicates its value n times. The - orientation of the resulting vector depends on the value of - prefer_column_vectors. - - * Things like [[1,2][3,4]] no longer cause core dumps, and invalid - input like [1,2;3,4,[5,6]] now produces a diagnositic message. - - * The cd, save, and load commands now do tilde expansion. - - * It's now possible to clear global variables and functions by name. - - * Use of clear inside functions is now a parse error. - - Summary of changes for version 0.70: - ----------------------------------- - - * Better parse error diagnostics. For interactive input, you get - messages like - - octave:1> a = 3 + * 4; - - parse error: - - a = 3 + * 4; - ^ - - and for script files, the message includes the file name and input - line number: - - octave:1> foo - - parse error near line 4 of file foo.m: - - a = 3 + * 4; - ^ - - * New built-in variable PS2 which is used as the secondary prompt. - The default value is '> '. - - * New file, octave-mode.el, for editing Octave code with GNU Emacs. - This is a modified version of Matthew R. Wette's matlab-mode.el. - - * Better support for missing math functions. - - * User preferences are now cached in a global struct so we don't - have to do a symbol table lookup each time we need to know what - they are. This should mean slightly improved performance for - evaluating expressions. - - Summary of changes for version 0.69: - ----------------------------------- - - * Multiple assignments are now possible, so statements like - - a = b = c = 3; - a = b = c = [1,2;3,4]; - - or - - c = (a = (b = 2) * 3 + 4) * 5 - - are legal, as are things that have even more bizarre effects, like - - a(4:6,4:6) = b(2:3,2:3) = [1,2;3,4]; - - (try it). - - * Improved parsing of strings (but they still don't work as matrix - elements). - - * An M-file may now either define a function or be a list of - commands to execute. - - * Better detection and conditional compilation of IEEE functions - isinf, finite, and isnan. - - * Replacements for acosh, asinh, atanh, and gamma from the BSD math - library for those systems that don't have them. - - Summary of changes for version 0.68: - ----------------------------------- - - * New functions: - - eval -- evaluate a string as a sequence of Octave commands. - input -- print a prompt and get user input. - - Summary of changes for version 0.67: - ----------------------------------- - - * New functions: - - find -- return the indices of nonzero elements. - - * Zero-one style indexing now works. For example, - - a = [1,2,3,4]; - b = a([1,0,0,1]) - - sets b to the first and fourth elememnts of a. - - Zero-one style indexing also works for indexing the left hand side - of an assignment. For example, - - a = rand (1,2;3,4); - a([0,1],:) = [-1,-2] - - sets the second row of a to [-1 -2] - - The behavior for the ambiguous case - - a = [1,2,3,4]; - b = a([1,1,1,1]); - - is controlled by the new global variable `prefer_zero_one_indexing'. - If this variable is equal to 'true', b will be set to [1 2 3 4]. - If it is false, b will be set to [1 1 1 1]. The default value is - 'false'. - - * Using the new global variable `propagate_empty_matrices', it is - possible to have unary andy binary operations on empty matrices - return an empty matrix. The default value of this variable is - 'warn', so that empty matrices are propagated but you get a - warning. Some functions, like eig and svd have also been changed - to handle this. - - * Empty matrices can be used in conditionals, but they always - evaluate to `false'. With propagate_empty_matrices = 'true', both - of the following expressions print 0: - - if [], 1, else 0, end - if ~[], 1, else 0, end - - * Octave no longer converts input like `3.2 i' or `3 I' to complex - constants directly because that causes problems inside square - brackets, where spaces are important. This abbreviated notation - *does* work if there isn't a space between the number and the i, - I, j, or J. - - Summary of changes for version 0.66: - ----------------------------------- - - * Logical unary not operator (~ or !) now works for complex. - - * Left division works. - - * Right and left element by element division should work correctly - now. - - * Numbers like .3e+2 are no longer errors. - - * Indexing a matrix with a complex value doesn't cause a core dump. - - * The min and max functions should work correctly for two arguments. - - * Improved (I hope!) configuration checks. - - * Octave is now installed as octave-M.N, where M and N are version - numbers, and octave is a link to that file. This makes it - possible to have more than one version of the interpreter installed. - - Summary of changes for version 0.63: - ----------------------------------- - - * The reshape function works again. - - * Octave now converts input like `3.2i' or `3 I' or `2.3e5 j' to be - complex constants directly, rather than requiring an expression - like `3.3 * i' to be evaluated. - - Summary of changes for version 0.61: - ----------------------------------- - - * Octave has been successfully compiled using gcc 2.3.3 and libg++ 2.3. - on a 486 system running Linux. - - * The win_texas_lotto function is now called texas_lotto (it's a - script file, and win_texas_lotto.m is too long for some Linux and - System V systems). - - Summary of changes for version 0.57: - ------------------------------------ - - * The C-like formatted print functions printf, fprintf, and sprintf - finally work. - - Summary of changes for version 0.56: - ------------------------------------ - - * By default, octave prints a short disclaimer when it starts. - (You can suppress it by invoking octave with -q). - - * You can keep octave from reading your ~/.octaverc and .octaverc - files by invoking it with -f. - - * When returning two values, eig now returns [v, d] instead of - [lambda, v], where d is a diagonal matrix made from lambda. - - * The win_texas_lotto function now produces a sorted list. - - * New functions: - - expm -- matrix exponential. - logm -- matrix logarithm. - - Summary of changes for version 0.55: - ------------------------------------ - - * The following (C-style) backslash escape sequences work in quoted - strings (useful(?) with printf()): - - \a bell \r carriage return - \b backspace \t horizontal tab - \f formfeed \v vertical tab - \n newline \\ backslash - - * Use of `...' at the end of a line will allow a statement to - continue over more than one line. - - * The names `inf' and `nan' are now aliases for `Inf' and `NaN', - respectively. - - * New functions: - - casesen -- print a warning if the luser tries to turn off case - sensitivity. - median -- find median value. - norm -- compute the norm of a matrix. - sort -- sort columns. - - * New variable, `silent_functions'. If silent_functions == 'true', - the results of expressions are not printed even if they are not - followed by a semicolon. The disp() and printf() functions still - result in output. The default value for this variable is 'false'. - - * New variable `return_last_value_computed'. If it is 'true', - functions defined in script files return the last value computed - if a return value has not been explicitly declared. The default - value for this variable is 'false'. - - Summary of changes for version 0.52: - ------------------------------------ - - * Name completion works for function and variable names currently in - the symbol tables. Coming soon: completion for names of functions - defined in script files but not yet compiled. - - * The initial value of do_fortran_indexing is now false, and the - initial value of prefer_column_vectors is now true. Swap the - values of these variables if you want behavior that is more like - Matlab. - - * All script files check the number of input arguments before doing - much real work. - - * The identifiers `i' and `j' are now also names for sqrt(-1). - These symbols may be used for other purposes, but their original - definition will reappear if they are cleared. - - * The symbol tables are now implemented with hash tables for faster - searching. - - * A small amount of help is now available for most built-in - operators, keywords and functions. Coming soon: help for script - files. - - * Without any arguments, the help command now lists all known - built-in operators, keywords and functions. - - * Generic parse errors are now signalled by `Eh, what's up doc?', - which is closer to what Bugs actually says. - - * The who command now only prints variable names by default. - Use the -fcn (or -fcns, or -functions) switch to print the names of - built-in or currently compiled functions. - - Summary of changes for version 0.51: - ------------------------------------ - - * Major overhaul of array indexing. - - * The colloc function actually works now. - - Summary of changes for version 0.50: - ------------------------------------ - - * The lsode and dassl functions now return the states only, - instead of the time and the states, so you must keep track of - the corresponding times (this is easy though, because you have - to specify a vector of desired output times anyway). - - * Solution of NLPs with NPSOL now works on the SPARC. - - * New keywords `endif', `endfor', `endfunction', `endif', and - `endwhile', which allow for better diagnostics. The `end' keyword - is still recognized. All script files have been changed to use - these new keywords in place of `end'. - - * It is now possible to uninstall Octave by doing a `make uninstall' - in the top level directory. - - * The Makefiles are much closer to conforming with GNU coding standards. - - * New functions: - - win_texas_lotto -- produce six unique random numbers between 1 and 50. - quad -- numerical integration. - lu -- LU factorization - qr -- QR factorization - dassl -- Solution of DAEs using DASSL. - - * New files: - - THANKS -- A list of people and organazations who have supported - the development of Octave. - - NEWS -- This file, listing recent changes. - - * Help is now available at the gnuplot prompt. --- 0 ---- diff -cNr octave-3.4.0/NEWS.2 octave-3.4.1/NEWS.2 *** octave-3.4.0/NEWS.2 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/NEWS.2 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,1036 **** - Summary of changes for version 2.1.x: - ------------------------------------ - - * Given a matrix, X, and a boolean index, idx, of the same shape as - X, X(idx) and X(idx) = RHS now work no matter what the value of - do_fortran_indexing is. - - * If you are using GNU Emacs 19.34 or earlier, you will need to add - the following code to your ~/.emacs file in order to use Emacs - Octave mode: - - ;; Set up the custom library. - ;; taken from http://www.dina.kvl.dk/~abraham/custom/ - (eval-and-compile - (condition-case () - (require 'custom) - (error nil)) - (if (and (featurep 'custom) (fboundp 'custom-declare-variable)) - nil ;; We've got what we needed - ;; We have the old custom-library, hack around it! - (defmacro defgroup (&rest args) - nil) - (defmacro defcustom (var value doc &rest args) - (` (defvar (, var) (, value) (, doc)))))) - - * When `format +' is in effect, Octave uses the following symbols to - provide more information about the values in a matrix: - - + postive real - - negative real - i pure imaginary - c complex - blank zero - - * The ++ and -- operators now work for indexed matrices, and the - following operators now work: - - +=, -=, *=, /=, \=, <<=, >>=, .*=, ./=, .\=, &=, |= - - These operators are currently implemented using a relatively - inefficient brute-force method but hey, they work. - - * The built-in variable argv is now a list of strings instead of a - string vector. - - * The value of LOADPATH set by the environment variable - OCTAVE_PATH, the -p or --path command line options, or on the - command line is no longer modified to include the default path. - Instead it is left as specified. Its default value is now ":", - which tells Octave to search the default path, and the new - built-in variable DEFAULT_LOADPATH contains the default list of - directories to search. - - * The function file_in_path no longer does any special processing of - its PATH argument. To search LOADPATH for files, it is now - generally better to use the new function file_in_loadpath. - - * If fread is given a skip parameter, the skip is performed after - the read instead of before (for compatibility with Matlab). - - * The new built-in variable `crash_dumps_octave_core' controls - whether Octave writes user variables to the file `octave-core' - when it crashes or is killed by a signal. The default value is 1 - (0 if you use --traditional). - - * If LOADPATH contains a doubled colon, the default path is inserted - in its place. This is similar to the substitution that also takes - place for leading or trailing colons in the LOADPATH. - - * Loops of the form `for i = STRING ... endfor' are now allowed. - - * It is now possible to set the iteration limit for lsode using - lsode_options ("step limit", N). - - * New functions: - - is_complex -- tell whether a variable is complex - rehash -- re-initialize the cache of directories in LOADPATH - graw -- send a string to the gnuplot subprocess - - * New functions from Kurt Hornik's Octave-ci package: - - In finance (new directory): - - fv -- future value of an investment - fvl -- future value of an initial lump sum investment - irr -- internal rate of return of an investment - nper -- number of payments needed for amortizing a loan - npv -- net present value of a series of payments - pmt -- amount of periodic payment needed to amortize a loan - pv -- present value of an investment - pvl -- present value of an investment that pays off at the end - rate -- rate of return of an investment - vol -- volatility of financial time series data - - In linear-algebra: - - dmult -- rescale the rows of a matrix - - In signal: - - arch_fit -- fit an ARCH regression model - arch_rnd -- simulate an ARCH process - arch_test -- test for conditional heteroscedascity - arma_rnd -- simulate an ARMA process - autocor -- compute autocorrelations - autocov -- compute autocovariances - autoreg_matrix -- design matrix for autoregressions - bartlett -- coefficients of the Bartlett (triangular) window - blackman -- coefficients of the Blackman window - diffpara -- estimate the fractional differencing parameter - durbinlevinson -- perform one step of the Durbin-Levinson algorithm - fractdiff -- compute fractional differences - hamming -- coefficients of the Hamming window - hanning -- coefficients of the Hanning window - hurst -- estimate the Hurst parameter - periodogram -- compute the periodogram - rectangle_lw -- rectangular lag window - rectangle_sw -- rectangular spectral window - sinetone -- compute a sine tone - sinewave -- compute a sine wave - spectral_adf -- spectral density estimation - spectral_xdf -- spectral density estimation - spencer -- apply Spencer's 15-point MA filter - stft -- short-term Fourier transform - synthesis -- recover a signal from its short-term Fourier transform - triangle_lw -- triangular lag window - triangle_sw -- triangular spectral window - yulewalker -- fit AR model by Yule-Walker method - - In statistics/base (new directory): - - center -- center by subtracting means - cloglog -- complementary log-log function - cor -- compute correlations - cov -- compute covariances - cut -- cut data into intervals - iqr -- interquartile range - kendall -- kendall's rank correlation tau - logit -- logit transformation - mean -- compute arithmetic, geometric, and harmonic mean - meansq -- compute mean square - moment -- compute moments - ppplot -- perform a PP-plot (probability plot) - probit -- probit transformation - qqplot -- perform a QQ-plot (quantile plot) - range -- compute range - ranks -- compute ranks - run_count -- count upward runs - spearman -- spearman's rank correlation rho - statistics -- compute basic statistics - studentize -- subtract mean and divide by standard deviation - table -- cross tabulation - values -- extract unique elements - var -- compute variance - - In statistics/distributions (new directory): - - beta_cdf -- CDF of the Beta distribution - beta_inv -- Quantile function of the Beta distribution - beta_pdf -- PDF of the Beta distribution - beta_rnd -- Random deviates from the Beta distribution - - binomial_cdf -- CDF of the binomial distribution - binomial_inv -- Quantile function of the binomial distribution - binomial_pdf -- PDF of the binomial distribution - binomial_rnd -- Random deviates from the binomial distribution - - cauchy_cdf -- CDF of the Cauchy distribution - cauchy_inv -- Quantile function of the Cauchy distribution - cauchy_pdf -- PDF of the Cauchy distribution - cauchy_rnd -- Random deviates from the Cauchy distribution - - chisquare_cdf -- CDF of the chi-square distribution - chisquare_inv -- Quantile function of the chi-square distribution - chisquare_pdf -- PDF of the chi-sqaure distribution - chisquare_rnd -- Random deviates from the chi-square distribution - - discrete_cdf -- CDF of a discrete distribution - discrete_inv -- Quantile function of a discrete distribution - discrete_pdf -- PDF of a discrete distribution - discrete_rnd -- Random deviates from a discrete distribution - - empirical_cdf -- CDF of the empirical distribution - empirical_inv -- Quantile function of the empirical distribution - empirical_pdf -- PDF of the empirical distribution - empirical_rnd -- Bootstrap samples from the empirical distribution - - exponential_cdf -- CDF of the exponential distribution - exponential_inv -- Quantile function of the exponential distribution - exponential_pdf -- PDF of the exponential distribution - exponential_rnd -- Random deviates from the exponential distribution - - f_cdf -- CDF of the F distribution - f_inv -- Quantile function of the F distribution - f_pdf -- PDF of the F distribution - f_rnd -- Random deviates from the F distribution - - gamma_cdf -- CDF of the Gamma distribution - gamma_inv -- Quantile function of the Gamma distribution - gamma_pdf -- PDF of the Gamma distribution - gamma_rnd -- Random deviates from the Gamma distribution - - geometric_cdf -- CDF of the geometric distribution - geometric_inv -- Quantile function of the geometric distribution - geometric_pdf -- PDF of the geometric distribution - geometric_rnd -- Random deviates from the geometric distribution - - hypergeometric_cdf -- CDF of the hypergeometric distribution - hypergeometric_inv -- Random deviates from hypergeometric distribution - hypergeometric_pdf -- PDF of the hypergeometric distribution - hypergeometric_rnd -- Random deviates from hypergeometric distribution - - kolmogorov_smirnov_cdf -- CDF of the Kolmogorov-Smirnov distribution - - laplace_cdf -- CDF of the Laplace distribution - laplace_inv -- Quantile function of the Laplace distribution - laplace_pdf -- PDF of the Laplace distribution - laplace_rnd -- Random deviates from the Laplace distribution - - logistic_cdf -- CDF of the logistic distribution - logistic_inv -- Quantile function of the logistic distribution - logistic_pdf -- PDF of the logistic distribution - logistic_rnd -- Random deviates from the logistic distribution - - lognormal_cdf -- CDF of the log normal distribution - lognormal_inv -- Quantile function of the log normal distribution - lognormal_pdf -- PDF of the log normal distribution - lognormal_rnd -- Random deviates from the log normal distribution - - normal_cdf -- CDF of the normal distribution - normal_inv -- Quantile function of the normal distribution - normal_pdf -- PDF of the normal distribution - normal_rnd -- Random deviates from the normal distribution - - pascal_cdf -- CDF of the Pascal (negative binomial) distribution - pascal_inv -- Quantile function of the Pascal distribution - pascal_pdf -- PDF of the Pascal (negative binomial) distribution - pascal_rnd -- Random deviates from the Pascal distribution - - poisson_cdf -- CDF of the Poisson distribution - poisson_inv -- Quantile function of the Poisson distribution - poisson_pdf -- PDF of the Poisson distribution - poisson_rnd -- Random deviates from the Poisson distribution - - stdnormal_cdf -- CDF of the standard normal distribution - stdnormal_inv -- Quantile function of standard normal distribution - stdnormal_pdf -- PDF of the standard normal distribution - stdnormal_rnd -- Random deviates from standard normal distribution - - t_cdf -- CDF of the t distribution - t_inv -- Quantile function of the t distribution - t_pdf -- PDF of the t distribution - t_rnd -- Random deviates from the t distribution - - uniform_cdf -- CDF of the uniform distribution - uniform_inv -- Quantile function of the uniform distribution - uniform_pdf -- PDF of the uniform distribution - uniform_rnd -- Random deviates from the uniform distribution - - weibull_cdf -- CDF of the Weibull distribution - weibull_inv -- Quantile function of the Weibull distribution - weibull_pdf -- PDF of the Weibull distribution - weibull_rnd -- Random deviates from the Weibull distribution - - wiener_rnd -- Simulate a Wiener process - - In statistics/models (new directory): - - logistic_regression -- ordinal logistic regression - logistic_regression_derivatives -- derivates of log-likelihood - in logistic regression - logistic_regression_likelihood -- likelihood in logistic regression - - In statistics/tests (new directory): - - anova -- one-way analysis of variance - bartlett_test -- bartlett test for homogeneity of variances - chisquare_test_homogeneity -- chi-square test for homogeneity - chisquare_test_independence -- chi-square test for independence - cor_test -- test for zero correlation - f_test_regression -- test linear hypotheses in linear - regression model - hotelling_test -- test for mean of a multivariate normal - hotelling_test_2 -- compare means of two multivariate normals - kolmogorov_smirnov_test -- one-sample Kolmogorov-Smirnov test - kolmogorov_smirnov_test_2 -- two-sample Kolmogorov-Smirnov test - kruskal_wallis_test -- kruskal-Wallis test - manova -- one-way multivariate analysis of variance - mcnemar_test -- mcnemar's test for symmetry - prop_test_2 -- compare two proportions - run_test -- run test for independence - sign_test -- sign test - t_test -- student's one-sample t test - t_test_2 -- student's two-sample t test - t_test_regression -- test one linear hypothesis in linear - regression model - u_test -- mann-Whitney U-test - var_test -- f test to compare two variances - welch_test -- welch two-sample t test - wilcoxon_test -- wilcoxon signed-rank test - z_test -- test for mean of a normal sample with - known variance - z_test_2 -- compare means of two normal samples with - known variances - - * The save command now accepts the option -append to save the - variables at the end of the file, leaving the existing contents. - - * New command-line option --no-history (also available using the - single character option -H) inhibits saving command history. - - * The mkoctfile script now accepts -DDEF options and passes them on - to the C and C++ compilers. - - * Running `make check' should work now before you run `make install', - even if you build a copy of Octave that depends on shared versions - of the Octave libraries. - - * For matrices, x(:) now works and returns a column vector no matter - what the value of do_fortran_indexing is. - - * New keywords __FILE__ and __LINE__ expand to the name of the file - that is being read and the current input line number, respectively. - - * Octave's expression parser is more general and consistent. It is - now possible to access structure elements and index arbitrary - values. For example, expressions like - - my_home_dir = getpwuid (getuid ()) . dir; - - and - - svd (x) (1:5) - - now work. - - * New built-in variable `print_rhs_assign_val' controls what is - printed when an assignment expression is evaluated. If it is - zero, the value of the variable on the left hand side (after the - assignment) is printed. If it is nonzero, the value of the right - hand side (i.e., the result of the expression) is printed. The - default value of is zero, so the behavior is the same as in - previous versions of Octave. - - * tmpnam now takes two optional arguments, DIR, and PREFIX. For - example, tmpnam ("/foo", "bar-") returns a file name like - "/foo/bar-10773baa". If DIR is omitted or empty, the value of the - environment variable TMPDIR, or /tmp is used. If PREFIX is - omitted, "oct-" is used. - - * The built-in variable `PWD' has been removed. If you need to get - the value of the current working directory, use the pwd() function - instead. - - * New operators. Octave's parser now recognizes the following - operators: << >> += -= *= /= .+= .-= .*= ./= &= |= <<= >>=. So - far, there are only a few operations defined that actually use - them (this should change before 2.1 is released). - - * New built-in data types: - - logical: - - A true value is represented by 1, and false value by 0. - Comparison operations like <, <=, ==, >, >=, and != now return - logical values. Indexing operations that use zero-one style - indexing must now use logical values. You can use the new - function logical() to convert a numeric value to a logical - value. This avoids the need for the built-in variable - `prefer_zero_one_indexing', so it has been removed. Logical - values are automatically converted to numeric values where - appropriate. - - file: - - A file object represents an open Octave stream object. The - fopen function now returns a file object instead of an integer. - File objects can be converted to integers automatically, and the - other functions that work with file ids still work with - integers, so this change should be backward compatible. - - The binary left-shift operator `<<' has been defined to work as - in C++ for file objects and built-in types. For example, - - my_stream = fopen ("foo", "w"); - my_stream << "x = " << pi << " marks the spot\n"; - - writes `x = 3.1416 marks the spot' in the file foo. - - The built-in variables stdin, stdout, and stderr are now also - file objects instead of integers. - - list: - - A list is an array of Octave objects. It can be indexed using - the normal indexing operator. For example, - - x = list ([1,2;3,4], 1, "foo"); - stdout << x(2) << "\n" - 1 - stdout << x; - ( - [1] = - - 1 2 - 3 4 - - [2] = 1 - [3] = foo - ) - - There is currently no special syntax for creating lists; you - must use the list function. - - * Commas in global statements are no longer special. They are now - treated as command separators. This removes a conflict in the - grammar and is consistent with the way Matlab behaves. The - variable `warn_comma_in_global_decl' has been eliminated. - - * It is now possible to declare static variables that retain their - values across function calls. For example, - - function ncall = f () static n = 0; ncall = ++n; endfunction - - defines a function that returns the number of times that it has - been called. - - * Within user-defined functions, the new automatic variable `argn' - contains the names of the arguments that were passed to the - function. For example, - - function f (...) - for i = 1:nargin - stdout << "argn(" << i << ") = `" << deblank (argn(i,:)) \ - << "' and its value is " << va_arg () << "\n"; - endfor - endfunction - f (1+2, "foo", sin (pi/2)) - - prints - - argn(1) = `1 + 2' and its value is 3 - argn(2) = `"foo"' and its value is foo - argn(3) = `sin (pi)' and its value is 1 - - on the standard output stream. If nargin is zero, argn is not defined. - * Functions like quad, fsolve, and lsode can take either a function - name or a simple function body as a string. For example, - - quad ("sqrt (x)", 0, 1) - - is equivalent to - - function y = f (x) y = sqrt (x); endfunction - quad ("f", 0, 1) - - * If the argument to eig() is symmetric, Octave uses the specialized - Lapack subroutine for symmetric matrices for a significant - increase in performance. - - * If the argument to lsode that names the user-supplied function is - a 2-element string array, the second element is taken as the name - of the Jacobian function. The named function should have the - following form: - - JAC = f (X, T) - - where JAC is the Jacobian matrix of partial derivatives of the - right-hand-side functions that define the set of differential - equations with respect to the state vector X. - - * Global variables are now initialized to the empty matrix, for - compatibility with Matlab. - - * Explicit initialization of global variables only happens once. - For example, after the following statements are evaluated, g still - has the value 1. - - global g = 1 - global g = 2 - - This is useful for initializing global variables that are used to - maintain state information that is shared among several functions. - - * Structure elements completion on the command line actually works - now. - - * The new built-in variable `fixed_point_format' controls whether - Octave uses a scaled fixed-point format for displaying matrices. - The default value is 0 unless you use --traditional. - - * The function sumsq now computes sum (x .* conj (x)) for complex values. - - * The new built-in variable max_recursion_depth allows you to - prevent Octave from attempting infinite recursion. The default - value is 256. - - * Octave now uses kpathsea 3.2. - - * New configure option, --enable-readline. - - * New configure option, --enable-static. - - Summary of changes for version 2.0.7: - ------------------------------------ - - This is a bug-fixing release. There are no new user-visible features. - - Summary of changes for version 2.0.6: - ------------------------------------ - - This is primarily a bug-fixing release. There are only a few new - user-visible features. - - * The new built-in variable default_eval_print_flag controls whether - Octave prints the results of commands executed by eval() that do - not end with semicolons. The default is 1. - - * The new built-in constant OCTAVE_HOME specifies the top-level - directory where Octave is installed. - - * Octave no longer includes functions to work with NPSOL or QPSOL, - because they are not free software. - - * The new built-in variable called kluge_procbuf_delay specifies the - number of microseconds to delay in the parent process after - forking. By default on gnu-win32 systems, it's set to 500000 (1/2 - second). On other systems, the default value is 0. Delaying for - a short time in the parent after forking seems to avoid problems - in which communicating with subprocesses via pipes would sometimes - cause Octave to hang. I doubt that the delay is really the right - solution. If anyone has a better idea, I'd love to hear it. - - Summary of changes for version 2.0.5: - ------------------------------------ - - * A `switch' statement is now available. See the Statements chapter - in the manual for details. - - * Commands like ls, save, and cd may now also be used as formal - parameters for functions. - - * More tests. - - Summary of changes for version 2.0.4: - ------------------------------------ - - * It is now possible to use commands like ls, save, and cd as simple - variable names. They still cannot be used as formal parameters - for functions, or as the names of structure variables. Failed - assignments leave them undefined (you can recover the orginal - function definition using clear). - - * Is is now possible to invoke commands like ls, save, and cd as - normal functions (for example, load ("foo", "x", "y", "z")). - - Summary of changes for version 2.0.3: - ------------------------------------ - - * The manual has been completely revised and now corresponds much - more closely to the features of the current version. - - * The return value for assignment expressions is now the RHS since - that is more consistent with the way other programming languages - work. However, Octave still prints the entire LHS value so that - - x = zeros (1, 2); - x(2) = 1 - - still prints - - x = - - 0 1 - - but an assignment like - - z = x(2) = 1 - - sets z to 1 (not [ 0, 1 ] as in previous versions of Octave). - - * It is now much easier to make binary distributions. See the - Binary Distributions section of the manual for more details. - - Summary of changes for version 2.0.2: - ------------------------------------ - - * Octave now stops executing commands from a script file if an error - is encountered. - - * The return, and break commands now cause Octave to quit executing - commands from script files. When used in invalid contexts, the - break, continue, and return commands are now simply ignored - instead of producing parse errors. - - * size ("") is now [0, 0]. - - * New functions: - - sleep -- pause execution for a specified number of seconds - usleep -- pause execution for a specified number of microseconds - - Summary of changes for version 2.0: - ---------------------------------- - - * The set and show commands for setting and displaying gnuplot - parameters have been replaced by gset and gshow. This change will - probably break lots of things, but it is necessary to allow for - compatibility with the Matlab graphics and GUI commands in a - future version of Octave. (For now, the old set and show commands - do work, but they print an annoying warning message to try to get - people to switch to using gset.) - - * Octave has been mostly ported to Windows NT and Windows 95 using - the beta 17 release of the Cygnus GNU-WIN32 tools. Not everything - works, but it is usable. See the file README.WINDOWS for more - information. - - * Dynamic linking works on more systems using dlopen() and friends - (most modern Unix systems) or shl_load() and friends (HP/UX - systems). A simple example is provided in examples/hello.cc. - For this feature to work, you must configure Octave with - --enable-shared. You may also need to have a shared-library - version of libg++ and libstdc++. - - * New data types can be added to Octave by writing a C++ class. On - systems that support dynamic linking, new data types can be added - to an already running Octave binary. A simple example appears in - the file examples/make_int.cc. Other examples are the standard - Octave data types defined in the files src/ov*.{h,cc} and - src/op-*.cc. - - * The configure option --enable-bounds-check turns on bounds - checking on element references for Octave's internal array and - matrix classes. It's enabled by default. To disable this - feature, configure Octave with --disable-bounds-check. - - * The C-style I/O functions (fopen, fprintf, etc.) have been - rewritten to be more compatible with Matlab. The fputs function - has also been added. Usage of the *printf functions that was - allowed in previous versions of Octave should still work. - However, there is no way to make the new versions of the *scanf - functions compatible with Matlab *and* previous versions of - Octave. An optional argument to the *scanf functions is now - available to make them behave in a way that is compatible with - previous versions of Octave. - - * Octave can now read files that contain columns of numbers only, - with no header information. The name of the loaded variable is - constructed from the file name. Each line in the file must have - the same number of elements. - - * The interface to the pager has changed. The new built-in variable - `page_output_immediately' controls when Octave sends output to the - pager. If it is nonzero, Octave sends output to the pager as soon - as it is available. Otherwise, Octave buffers its output and - waits until just before the prompt is printed to flush it to the - pager. - - * Expressions of the form - - A(i,j) = x - - where X is a scalar and the indices i and j define a matrix of - elements now work as you would expect rather than giving an error. - I am told that this is how Matlab 5.0 will behave when it is - released. - - * Indexing of character strings now works. - - * The echo command has been implemented. - - * The document command is now a regular function. - - * New method for handling errors: - - try - BODY - catch - CLEANUP - end_try_catch - - Where BODY and CLEANUP are both optional and may contain any - Octave expressions or commands. The statements in CLEANUP are - only executed if an error occurs in BODY. - - No warnings or error messages are printed while BODY is - executing. If an error does occur during the execution of BODY, - CLEANUP can access the text of the message that would have been - printed in the builtin constant __error_text__. This is the same - as eval (TRY, CATCH) (which may now also use __error_text__) but - it is more efficient since the commands do not need to be parsed - each time the TRY and CATCH statements are evaluated. - - * Octave no longer parses the help command by grabbing everything - after the keyword `help' until a newline character is read. To - get help for `;' or `,', now, you need to use the command - `help semicolon' or `help comma'. - - * Octave's parser now does some simple constant folding. This means - that expressions like 3*i are now evaluated only once, when a - function is compiled, and the right hand side of expressions like - a = [1,2;3,4] are treated as true matrix constants rather than - lists of elements which must be evaluated each time they are - needed. - - * Built-in variables that can take values of "true" and "false" can - now also be set to any nonzero scalar value to indicate "true", - and 0 to indicate "false". - - * New built-in variables `history_file', `history_size', and - `saving_history'. - - * New built-in variable `string_fill_char' specifies the character - to fill with when creating arrays of strings. - - * If the new built-in variable `gnuplot_has_frames' is nonzero, - Octave assumes that your copy of gnuplot includes support for - multiple plot windows when using X11. - - If the new built-in variable `gnuplot_has_multiplot' is nonzero, - Octave assumes that your copy of gnuplot has the multiplot support - that is included in recent 3.6beta releases. - - The initial values of these variables are determined by configure, - but can be changed in your startup script or at the command line - in case configure got it wrong, or if you upgrade your gnuplot - installation. - - * The new plot function `figure' allows multiple plot windows when - using newer versions of gnuplot with X11. - - * Octave now notices when the plotter has exited unexpectedly. - - * New built-in variable `warn_missing_semicolon'. If nonzero, Octave - will warn when statements in function definitions don't end in - semicolons. The default value is 0. - - * Octave now attempts to continue after floating point exceptions - or out-of-memory errors. - - * If Octave crashes, it now attempts to save all user-defined - variables in a file named `octave-core' in the current directory - before exiting. - - * It is now possible to get the values of individual option settings - for the dassl, fsolve, lsode, npsol, qpsol, and quad functions - using commands like - - dassl_reltol = dassl_options ("relative tolerance"); - - * The svd() function no longer computes the left and right singular - matrices unnecessarily. This can significantly improve - performance for large matrices if you are just looking for the - singular values. - - * The filter() function is now a built-in function. - - * New function randn() returns a pseudo-random number from a normal - distribution. The rand() and randn() functions have separate - seeds and generators. - - * Octave's command-line arguments are now available in the built-in - variable `argv'. The program name is also available in the - variables `program_invocation_name' and `program_name'. If - executing a script from the command line (e.g., octave foo.m) or - using the `#! /bin/octave' hack, the program name is set to the - name of the script. - - * New built-in variable `completion_append_char' used as the - character to append to successful command-line completion - attempts. The default is " " (a single space). - - * Octave now uses a modified copy of the readline library from - version 1.14.5 of GNU bash. - - * In prompt strings, `\H' expands to the whole host name. - - * New built-in variable `beep_on_error'. If nonzero, Octave will try - to ring your terminal's bell before printing an error message. - The default value is 0. - - * For functions defined from files, the type command now prints the - text of the file. You can still get the text reconstructed from - the parse tree by using the new option -t (-transformed). - - * New command-line argument --traditional sets the following - preference variables for compatibility with Matlab: - - PS1 = ">> " - PS2 = "" - beep_on_error = 1 - default_save_format = "mat-binary" - define_all_return_values = 1 - do_fortran_indexing = 1 - empty_list_elements_ok = 1 - implicit_str_to_num_ok = 1 - ok_to_lose_imaginary_part = 1 - page_screen_output = 0 - prefer_column_vectors = 0 - prefer_zero_one_indexing = 1 - print_empty_dimensions = 0 - treat_neg_dim_as_zero = 1 - warn_function_name_clash = 0 - whitespace_in_literal_matrix = "traditional" - - * New functions: - - readdir -- returns names of files in directory as array of strings - mkdir -- create a directory - rmdir -- remove a directory - rename -- rename a file - unlink -- delete a file - umask -- set permission mask for file creation - stat -- get information about a file - lstat -- get information about a symbolic link - glob -- perform filename globbing - fnmatch -- match strings with filename globbing patterns - more -- turn the pager on or off - gammaln -- alias for lgamma - - * New audio functions from Andreas Weingessel - . - - lin2mu -- linear to mu-law encoding - loadaudio -- load an audio file to a vector - mu2lin -- mu-law to linear encoding - playaudio -- play an audio file - record -- record sound and store in vector - saveaudio -- save a vector as an audio file - setaudio -- executes mixer shell command - - * New plotting functions from Vinayak Dutt. Ones dealing with - multiple plots on one page require features from gnuplot 3.6beta - (or later). - - bottom_title -- put title at the bottom of the plot - mplot -- multiplot version of plot - multiplot -- switch multiple-plot mode on or off - oneplot -- return to one plot per page - plot_border -- put a border around plots - subplot -- position multiple plots on a single page - subwindow -- set subwindow position for next plot - top_title -- put title at the top of the plot - zlabel -- put a label on the z-axis - - * New string functions - - bin2dec -- convert a string of ones and zeros to an integer - blanks -- create a string of blanks - deblank -- delete trailing blanks - dec2bin -- convert an integer to a string of ones and zeros - dec2hex -- convert an integer to a hexadecimal string - findstr -- locate occurrences of one string in another - hex2dec -- convert a hexadecimal string to an integer - index -- return position of first occurrence a string in another - rindex -- return position of last occurrence a string in another - split -- divide one string into pieces separated by another - str2mat -- create a string matrix from a list of strings - strrep -- replace substrings in a string - substr -- extract a substring - - The following functions return a matrix of ones and zeros. - Elements that are nonzero indicate that the condition was true for - the corresponding character in the string array. - - isalnum -- letter or a digit - isalpha -- letter - isascii -- ascii - iscntrl -- control character - isdigit -- digit - isgraph -- printable (but not space character) - islower -- lower case - isprint -- printable (including space character) - ispunct -- punctuation - isspace -- whitespace - isupper -- upper case - isxdigit -- hexadecimal digit - - These functions return new strings. - - tolower -- convert to lower case - toupper -- convert to upper case - - * New function, fgetl. Both fgetl and fgets accept an optional - second argument that specifies a maximum number of characters to - read, and the function fgets is now compatible with Matlab. - - * Printing in hexadecimal format now works (format hex). It is also - possible to print the internal bit representation of a value - (format bit). Note that these formats are only implemented for - numeric values. - - * Additional structure features: - - -- Name completion now works for structures. - - -- Values and names of structure elements are now printed by - default. The new built-in variable `struct_levels_to_print' - controls the depth of nested structures to print. The default - value is 2. - - -- New functions: - - struct_contains (S, NAME) -- returns 1 if S is a structure with - element NAME; otherwise returns 0. - - struct_elements (S) -- returns the names of all elements - of structure S in an array of strings. - - * New io/subprocess functions: - - fputs -- write a string to a file with no formatting - popen2 -- start a subprocess with 2-way communication - mkfifo -- create a FIFO special file - popen -- open a pipe to a subprocess - pclose -- close a pipe from a subprocess - waitpid -- check the status of or wait for subprocesses - - * New time functions: - - asctime -- format time structure according to local format - ctime -- equivalent to `asctime (localtime (TMSTRUCT))' - gmtime -- return time structure corresponding to UTC - localtime -- return time structure corresponding to local time zone - strftime -- print given time structure using specified format - time -- return current time - - The `clock' and `date' functions are now implemented in M-files - using these basic functions. - - * Access to additional Unix system calls: - - dup2 -- duplicate a file descriptor - exec -- replace current process with a new process - fcntl -- control open file descriptors - fork -- create a copy of the current process - getpgrp -- return the process group id of the current process - getpid -- return the process id of the current process - getppid -- return the process id of the parent process - getuid -- return the real user id of the current process - getgid -- return the real group id of the current process - geteuid -- return the effective user id of the current process - getegid -- return the effective group id of the current process - pipe -- create an interprocess channel - - * Other new functions: - - commutation_matrix -- compute special matrix form - duplication_matrix -- compute special matrix form - common_size.m -- bring arguments to a common size - completion_matches -- perform command completion on string - tilde_expand -- perform tilde expansion on string - - meshgrid -- compatible with Matlab's meshgrid function - tmpnam -- replaces octave_tmp_file_name - atexit -- register functions to be called when Octave exits - putenv -- define an environment variable - bincoeff -- compute binomial coefficients - nextpow2 -- compute the next power of 2 greater than a number - detrend -- remove a best fit polynomial from data - erfinv -- inverse error function - shift -- perform a circular shift on the elements of a matrix - pow2 -- compute 2 .^ x - log2 -- compute base 2 logarithms - diff -- compute differences of matrix elements - vech -- stack columns of a matrix below the diagonal - vec -- stack columns of a matrix to form a vector - xor -- compute exclusive or - - * Functions for getting info from the password database on Unix systems: - - getpwent -- read entry from password-file stream, opening if necessary - getpwuid -- search for password entry with matching user ID - getpwnam -- search for password entry with matching username - setpwent -- rewind the password-file stream - endpwent -- close the password-file stream - - * Functions for getting info from the group database on Unix systems: - - getgrent -- read entry from group-file stream, opening if necessary - getgrgid -- search for group entry with matching group ID - getgrnam -- search for group entry with matching group name - setgrent -- rewind the pgroup-file stream - endgrent -- close the group-file stream - - * The New function octave_config_info returns a structure containing - information about how Octave was configured and compiled. - - * New function getrusage returns a structure containing system - resource usage statistics. The `cputime' function is now defined - in an M-file using getrusage. - - * The info reader is now a separate binary that runs as a - subprocess. You still need the info reader distributed with - Octave though, because there are some new command-line arguments - that are not yet available in the public release of Info. - - * There is a new built-in variable, INFO_PROGRAM, which is used as - the name of the info program to run. Its initial value is - $OCTAVE_HOME/lib/octave/VERSION/exec/ARCH/info, but that value can - be overridden by the environment variable OCTAVE_INFO_PROGRAM, or - the command line argument --info-program NAME, or by setting the - value of INFO_PROGRAM in a startup script. - - * There is a new built-in variable, EXEC_PATH, which is used as - the list of directories to search when executing subprograms. Its - initial value is taken from the environment variable - OCTAVE_EXEC_PATH (if it exists) or PATH, but that value can be - overridden by the command line argument --exec-path PATH, or - by setting the value of EXEC_PATH in a startup script. If the - EXEC_PATH begins (ends) with a colon, the directories - $OCTAVE_HOME/lib/octave/VERSION/exec/ARCH and $OCTAVE_HOME/bin are - prepended (appended) to EXEC_PATH (if you don't specify a value - for EXEC_PATH explicitly, these special directories are prepended - to your PATH). - - * If it is present, Octave will now use an `ls-R' database file to - speed up recursive path searching. Octave looks for a file called - ls-R in the directory specified by the environment variable - OCTAVE_DB_DIR. If that is not set but the environment variable - OCTAVE_HOME is set, Octave looks in $OCTAVE_HOME/lib/octave. - Otherwise, Octave looks in the directory $datadir/octave (normally - /usr/local/lib/octave). - - * New examples directory. - - * There is a new script, mkoctfile, that can be used to create .oct - files suitable for dynamic linking. - - * Many more bug fixes. - - * ChangeLogs are now kept in each subdirectory. - - See NEWS.1 for old news. --- 0 ---- diff -cNr octave-3.4.0/NEWS.3 octave-3.4.1/NEWS.3 *** octave-3.4.0/NEWS.3 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/NEWS.3 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,200 **** - Summary of important user-visible changes for version 3.0: - --------------------------------------------------------- - - ** Compatibility with Matlab graphics is much better now. We now - have some graphics features that work like Matlab's Handle - Graphics (tm): - - + You can make a subplot and then use the print function to - generate a file with the plot. - - + RGB line colors are supported if you use gnuplot 4.2. Octave - can still use gnuplot 4.0, but there is no way to set arbitrary - line colors with it when using the Matlab-style plot functions. - There never was any way to do this reliably with older versions - of gnuplot (whether run from Octave or not) since it only - provided a limited set to choose from, and they were terminal - dependent, so choosing color 1 with the X11 terminal would be - different from color 1 with the PostScript terminal. Valid RGB - colors for gnuplot 4.0 are the eight possible combinations of 0 - and 1 for the R, G and B values. Invalid values are all mapped - to the same color. - - This also affects patch objects used in the bar, countour, meshc - and surfc functions, where the bars and contours will be - monochrome. A workaround for this is to type "colormap gmap40" - that loads a colormap that in many cases will be adequate for - simple bar and contour plots. - - + You can control the width of lines using (for example): - - line (x, y, "linewidth", 4, "color", [1, 0, 0.5]); - - (this also shows the color feature). - - + With gnuplot 4.2, image data is plotted with gnuplot and may be - combined with other 2-d plot data. - - + Lines for contour plots are generated with an Octave function, so - contour plots are now 2-d plots instead of special 3-d plots, and - this allows you to plot additional 2-d data on top of a contour - plot. - - + With the gnuplot "extended" terminals the TeX interpreter is - emulated. However, this means that the TeX interpreter is only - supported on the postscript terminals with gnuplot 4.0. Under - gnuplot 4.2 the terminals aqua, dumb, png, jpeg, gif, pm, windows, - wxt, svg and x11 are supported as well. - - + The following plot commands are now considered obsolete and will - be removed from a future version of Octave: - - __gnuplot_set__ - __gnuplot_show__ - __gnuplot_plot__ - __gnuplot_splot__ - __gnuplot_replot__ - - Additionally, these functions no longer have any effect on plots - created with the Matlab-style plot commands (plot, line, mesh, - semilogx, etc.). - - + Plot property values are not extensively checked. Specifying - invalid property values may produce unpredictible results. - - + Octave now sends data over the same pipe that is used to send - commands to gnuplot. While this avoids the problem of - cluttering /tmp with data files, it is no longer possible to use - the mouse to zoom in on plots. This is a limitation of gnuplot, - which is unable to zoom when the data it plots is not stored in - a file. Some work has been done to fix this problem in newer - versions of gnuplot (> 4.2.2). See for example, this thread - - http://www.nabble.com/zooming-of-inline-data-tf4357017.html#a12416496 - - on the gnuplot development list. - - - ** The way Octave handles search paths has changed. Instead of - setting the built-in variable LOADPATH, you must use addpath, - rmpath, or path to manipulate the function search path. These - functions will maintain "." at the head of the path, for - compatibility with Matlab. - - Leading, trailing or doubled colons are no longer special. - Now, all elements of the search path are explicitly included in - the path when Octave starts. To display the path, use the path - function. - - Path elements that end in // are no longer searched recursively. - Instead, you may use addpath and the genpath function to add an - entire directory tree to the path. For example, - - addpath (genpath ("~/octave")); - - will add ~/octave and all directories below it to the head of the - path. - - - ** Previous versions of Octave had a number of built-in variables to - control warnings (for example, warn_divide_by_zero). These - variables have been replaced by warning identifiers that are used - with the warning function to control the state of warnings. - - For example, instead of writing - - warn_divide_by_zero = false; - - to disable divide-by-zero warnings, you should write - - warning ("off", "Octave:divide-by-zero"); - - You may use the same technique in your own code to control - warnings. For example, you can use - - warning ("My-package:phase-of-the-moon", - "the phase of the moon could cause trouble today"); - - to allow users to control this warning using the - "My-package:phase-of-the-moon" warning identifier. - - You may also enable or disable all warnings, or turn them into - errors: - - warning ("on", "all"); - warning ("off", "all"); - warning ("error", "Octave:divide-by-zero"); - warning ("error", "all"); - - You can query the state of current warnings using - - warning ("query", ID) - warning ("query") - - (only those warning IDs which have been explicitly set are - returned). - - A partial list and description of warning identifiers is available - using - - help warning_ids - - - ** All built-in variables have been converted to functions. This - change simplifies the interpreter and allows a consistent - interface to internal variables for user-defined packages and the - core functions distributed with Octave. In most cases, code that - simply accesses internal variables does not need to change. Code - that sets internal variables will change. For example, instead of - writing - - PS1 = ">> "; - - you will need to write - - PS1 (">> "); - - If you need write code that will run in both old and new versions - of Octave, you can use something like - - if (exist ("OCTAVE_VERSION") == 5) - ## New: - PS1 (">> "); - else - ## Old: - PS1 = ">> "; - endif - - - ** For compatibility with Matlab, the output order of Octave's - "system" function has changed from - - [output, status] = system (cmd); - - to - - [status, output] = system (cmd); - - - ** For compatibility with Matlab, the output of Octave's fsolve - function has been changed from - - [x, info, msg] = fsolve (...); - - to - - [x, fval, info] = fsolve (...); - - - ** For compatibility with Matlab, normcdf, norminv, normpdf, and - normrnd have been modified to compute distributions using the - standard deviation instead of the variance. - - - ** For compatibility with Matlab, gamcdf, gaminv, gampdf, gamrnd, - expcdf, expinv, exppdf and exprnd have been modified to compute - the distributions using the standard scale factor rather than - one over the scale factor. - - - See NEWS.2 for old news. --- 0 ---- diff -cNr octave-3.4.0/octave-config.cc.in octave-3.4.1/octave-config.cc.in *** octave-3.4.0/octave-config.cc.in 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/octave-config.cc.in 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,224 **** - /* - - Copyright (C) 2008-2011 Michael Goffioul - - This file is part of Octave. - - Octave 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. - - Octave 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 Octave; see the file COPYING. If not, see - . - - */ - - #if defined (HAVE_CONFIG_H) - #include - #endif - - #include - #include - #include - #include - #include - - #if defined (__WIN32__) && ! defined (_POSIX_VERSION) - #include - #endif - - static bool initialized = false; - static std::map vars; - static std::string OCTAVE_HOME, PREFIX; - static std::string usage_msg = "usage: octave-config [options]"; - static std::string help_msg = - "\n" - "Options:\n" - "\n" - " -h, -?, --help Print this message.\n" - "\n" - " --m-site-dir Print the name of the directory where Octave\n" - " expects to find locally installed .m files.\n" - "\n" - " --oct-site-dir Print the name of the directory where Octave\n" - " expects to find locally installed .oct files.\n" - "\n" - " -p VAR, --print VAR Print the value of the given configuration\n" - " variable VAR. Recognized variables are:\n" - "\n" - " API_VERSION LOCALAPIARCHLIBDIR\n" - " CANONICAL_HOST_TYPE LOCALAPIFCNFILEDIR\n" - " DEFAULT_PAGER LOCALAPIOCTFILEDIR\n" - " ARCHLIBDIR LOCALARCHLIBDIR\n" - " BINDIR LOCALFCNFILEDIR\n" - " DATADIR LOCALOCTFILEDIR\n" - " DATAROOTDIR LOCALSTARTUPFILEDIR\n" - " EXEC_PREFIX LOCALVERARCHLIBDIR\n" - " FCNFILEDIR LOCALVERFCNFILEDIR\n" - " LOCALVEROCTFILEDIR MAN1DIR\n" - " IMAGEDIR MANDIR\n" - " MAN1EXT OCTFILEDIR\n" - " INCLUDEDIR OCTINCLUDEDIR\n" - " INFODIR OCTLIBDIR\n" - " INFOFILE PREFIX\n" - " LIBDIR STARTUPFILEDIR\n" - " LIBEXECDIR VERSION\n" - "\n" - " -v, --version Print the Octave version number.\n" - "\n"; - - static std::string - substitute_prefix (const std::string& s, const std::string& prefix, - const std::string new_prefix) - { - std::string retval = s; - - if (!prefix.empty () && new_prefix != prefix) - { - int len = prefix.length (); - if (retval.find (prefix) == 0) - retval.replace (0, len, new_prefix); - } - - #if defined (__WIN32__) && ! defined (_POSIX_VERSION) - std::replace (retval.begin (), retval.end (), '/', '\\'); - #endif - - return retval; - } - - static void - initialize (void) - { - if (initialized) - return; - - initialized = true; - - const char *homestr = getenv ("OCTAVE_HOME"); - OCTAVE_HOME = (homestr ? homestr : ""); - PREFIX = %OCTAVE_PREFIX%; - - #if defined (__WIN32__) && ! defined (_POSIX_VERSION) - int n = 1024; - - std::string bin_dir (n, '\0'); - - while (true) - { - int status = GetModuleFileName (0, &bin_dir[0], n); - - if (status < n) - { - bin_dir.resize (status); - break; - } - else - { - n *= 2; - bin_dir.resize (n); - } - } - - if (! bin_dir.empty ()) - { - size_t pos = bin_dir.rfind ("\\bin\\"); - - if (pos != std::string::npos) - OCTAVE_HOME = bin_dir.substr (0, pos); - } - #endif - - vars["API_VERSION"] = %OCTAVE_API_VERSION%; - vars["CANONICAL_HOST_TYPE"] = %OCTAVE_CANONICAL_HOST_TYPE%; - vars["DEFAULT_PAGER"] = %OCTAVE_DEFAULT_PAGER%; - vars["ARCHLIBDIR"] = substitute_prefix (%OCTAVE_ARCHLIBDIR%, PREFIX, OCTAVE_HOME); - vars["BINDIR"] = substitute_prefix (%OCTAVE_BINDIR%, PREFIX, OCTAVE_HOME); - vars["DATADIR"] =substitute_prefix (%OCTAVE_DATADIR%, PREFIX, OCTAVE_HOME); - vars["DATAROOTDIR"] =substitute_prefix (%OCTAVE_DATAROOTDIR%, PREFIX, OCTAVE_HOME); - vars["EXEC_PREFIX"] =substitute_prefix (%OCTAVE_EXEC_PREFIX%, PREFIX, OCTAVE_HOME); - vars["FCNFILEDIR"] =substitute_prefix (%OCTAVE_FCNFILEDIR%, PREFIX, OCTAVE_HOME); - vars["IMAGEDIR"] =substitute_prefix (%OCTAVE_IMAGEDIR%, PREFIX, OCTAVE_HOME); - vars["INCLUDEDIR"] =substitute_prefix (%OCTAVE_INCLUDEDIR%, PREFIX, OCTAVE_HOME); - vars["INFODIR"] =substitute_prefix (%OCTAVE_INFODIR%, PREFIX, OCTAVE_HOME); - vars["INFOFILE"] =substitute_prefix (%OCTAVE_INFOFILE%, PREFIX, OCTAVE_HOME); - vars["LIBDIR"] =substitute_prefix (%OCTAVE_LIBDIR%, PREFIX, OCTAVE_HOME); - vars["LIBEXECDIR"] =substitute_prefix (%OCTAVE_LIBEXECDIR%, PREFIX, OCTAVE_HOME); - vars["LOCALAPIARCHLIBDIR"] =substitute_prefix (%OCTAVE_LOCALAPIARCHLIBDIR%, PREFIX, OCTAVE_HOME); - vars["LOCALAPIFCNFILEDIR"] =substitute_prefix (%OCTAVE_LOCALAPIFCNFILEDIR%, PREFIX, OCTAVE_HOME); - vars["LOCALAPIOCTFILEDIR"] =substitute_prefix (%OCTAVE_LOCALAPIOCTFILEDIR%, PREFIX, OCTAVE_HOME); - vars["LOCALARCHLIBDIR"] =substitute_prefix (%OCTAVE_LOCALARCHLIBDIR%, PREFIX, OCTAVE_HOME); - vars["LOCALFCNFILEDIR"] =substitute_prefix (%OCTAVE_LOCALFCNFILEDIR%, PREFIX, OCTAVE_HOME); - vars["LOCALOCTFILEDIR"] =substitute_prefix (%OCTAVE_LOCALOCTFILEDIR%, PREFIX, OCTAVE_HOME); - vars["LOCALSTARTUPFILEDIR"] =substitute_prefix (%OCTAVE_LOCALSTARTUPFILEDIR%, PREFIX, OCTAVE_HOME); - vars["LOCALVERARCHLIBDIR"] =substitute_prefix (%OCTAVE_LOCALVERARCHLIBDIR%, PREFIX, OCTAVE_HOME); - vars["LOCALVERFCNFILEDIR"] =substitute_prefix (%OCTAVE_LOCALVERFCNFILEDIR%, PREFIX, OCTAVE_HOME); - vars["LOCALVEROCTFILEDIR"] =substitute_prefix (%OCTAVE_LOCALVEROCTFILEDIR%, PREFIX, OCTAVE_HOME); - vars["MAN1DIR"] =substitute_prefix (%OCTAVE_MAN1DIR%, PREFIX, OCTAVE_HOME); - vars["MAN1EXT"] = %OCTAVE_MAN1EXT%; - vars["MANDIR"] =substitute_prefix (%OCTAVE_MANDIR%, PREFIX, OCTAVE_HOME); - vars["OCTFILEDIR"] =substitute_prefix (%OCTAVE_OCTFILEDIR%, PREFIX, OCTAVE_HOME); - vars["OCTINCLUDEDIR"] =substitute_prefix (%OCTAVE_OCTINCLUDEDIR%, PREFIX, OCTAVE_HOME); - vars["OCTLIBDIR"] =substitute_prefix (%OCTAVE_OCTLIBDIR%, PREFIX, OCTAVE_HOME); - vars["PREFIX"] = (OCTAVE_HOME.empty() ? PREFIX : OCTAVE_HOME); - vars["STARTUPFILEDIR"] =substitute_prefix (%OCTAVE_STARTUPFILEDIR%, PREFIX, OCTAVE_HOME); - vars["VERSION"] = %OCTAVE_VERSION%; - } - - int - main (int argc, char **argv) - { - initialize (); - - if (argc == 1) - { - std::cout << usage_msg << std::endl; - return 1; - } - - for (int i = 1; i < argc; i++) - { - std::string arg (argv[i]); - - if (arg == "-h" || arg == "-?" || arg == "--help") - { - std::cout << usage_msg << std::endl; - std::cout << help_msg; - return 0; - } - else if (arg == "--m-site-dir") - std::cout << vars["LOCALVERFCNFILEDIR"] << std::endl; - else if (arg == "--oct-site-dir") - std::cout << vars["LOCALVEROCTFILEDIR"] << std::endl; - else if (arg == "-v" || arg == "--version") - std::cout << vars["VERSION"] << std::endl; - else if (arg == "-p" || arg == "--print") - { - if (i < argc-1) - { - arg = argv[++i]; - std::cout << vars[arg] << std::endl; - } - else - { - std::cerr << "octave-config: " << arg - << " options requires argument" << std::endl; - return 1; - } - } - else - { - std::cerr << "octave-config: unrecognized argument " << arg << std::endl; - return 1; - } - } - - return 0; - } --- 0 ---- diff -cNr octave-3.4.0/octave-config.in octave-3.4.1/octave-config.in *** octave-3.4.0/octave-config.in 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/octave-config.in 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,168 **** - #! /bin/sh - - ## - ## octave-config - reports some configuration values for Octave - ## - ## Copyright (C) 2001-2011 John W. Eaton - ## - ## This file is part of Octave. - ## - ## Octave 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. - ## - ## Octave 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 Octave; see the file COPYING. If not, see - ## . - ## - ## Original version by Rafael Laboissiere - ## distributed as free software in the public domain. - - API_VERSION=%OCTAVE_API_VERSION% - CANONICAL_HOST_TYPE=%OCTAVE_CANONICAL_HOST_TYPE% - DEFAULT_PAGER=%OCTAVE_DEFAULT_PAGER% - ARCHLIBDIR=%OCTAVE_ARCHLIBDIR% - BINDIR=%OCTAVE_BINDIR% - DATADIR=%OCTAVE_DATADIR% - DATAROOTDIR=%OCTAVE_DATAROOTDIR% - EXEC_PREFIX=%OCTAVE_EXEC_PREFIX% - FCNFILEDIR=%OCTAVE_FCNFILEDIR% - IMAGEDIR=%OCTAVE_IMAGEDIR% - INCLUDEDIR=%OCTAVE_INCLUDEDIR% - INFODIR=%OCTAVE_INFODIR% - INFOFILE=%OCTAVE_INFOFILE% - LIBDIR=%OCTAVE_LIBDIR% - LIBEXECDIR=%OCTAVE_LIBEXECDIR% - LOCALAPIARCHLIBDIR=%OCTAVE_LOCALAPIARCHLIBDIR% - LOCALAPIFCNFILEDIR=%OCTAVE_LOCALAPIFCNFILEDIR% - LOCALAPIOCTFILEDIR=%OCTAVE_LOCALAPIOCTFILEDIR% - LOCALARCHLIBDIR=%OCTAVE_LOCALARCHLIBDIR% - LOCALFCNFILEDIR=%OCTAVE_LOCALFCNFILEDIR% - LOCALOCTFILEDIR=%OCTAVE_LOCALOCTFILEDIR% - LOCALSTARTUPFILEDIR=%OCTAVE_LOCALSTARTUPFILEDIR% - LOCALVERARCHLIBDIR=%OCTAVE_LOCALVERARCHLIBDIR% - LOCALVERFCNFILEDIR=%OCTAVE_LOCALVERFCNFILEDIR% - LOCALVEROCTFILEDIR=%OCTAVE_LOCALVEROCTFILEDIR% - MAN1DIR=%OCTAVE_MAN1DIR% - MAN1EXT=%OCTAVE_MAN1EXT% - MANDIR=%OCTAVE_MANDIR% - OCTFILEDIR=%OCTAVE_OCTFILEDIR% - OCTINCLUDEDIR=%OCTAVE_OCTINCLUDEDIR% - OCTLIBDIR=%OCTAVE_OCTLIBDIR% - PREFIX=%OCTAVE_PREFIX% - STARTUPFILEDIR=%OCTAVE_STARTUPFILEDIR% - VERSION=%OCTAVE_VERSION% - - if [ -n "$OCTAVE_HOME" ]; then - ARCHLIBDIR="`echo $ARCHLIBDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - BINDIR="`echo $BINDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - DATADIR="`echo $DATADIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - DATAROOTDIR="`echo $DATAROOTDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - EXEC_PREFIX="`echo $EXEC_PREFIX | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - FCNFILEDIR="`echo $FCNFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - IMAGEDIR="`echo $IMAGEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - INCLUDEDIR="`echo $INCLUDEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - INFODIR="`echo $INFODIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - INFOFILE="`echo $INFOFILE | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - LIBDIR="`echo $LIBDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - LIBEXECDIR="`echo $LIBEXECDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - LOCALAPIARCHLIBDIR="`echo $LOCALAPIARCHLIBDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - LOCALAPIFCNFILEDIR="`echo $LOCALAPIFCNFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - LOCALAPIOCTFILEDIR="`echo $LOCALAPIOCTFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - LOCALARCHLIBDIR="`echo $LOCALARCHLIBDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - LOCALFCNFILEDIR="`echo $LOCALFCNFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - LOCALOCTFILEDIR="`echo $LOCALOCTFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - LOCALSTARTUPFILEDIR="`echo $LOCALSTARTUPFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - LOCALVERARCHLIBDIR="`echo $LOCALVERARCHLIBDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - LOCALVERFCNFILEDIR="`echo $LOCALVERFCNFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - LOCALVEROCTFILEDIR="`echo $LOCALVEROCTFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - MAN1DIR="`echo $MAN1DIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - MANDIR="`echo $MANDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - OCTFILEDIR="`echo $OCTFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - OCTINCLUDEDIR="`echo $OCTINCLUDEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - OCTLIBDIR="`echo $OCTLIBDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - STARTUPFILEDIR="`echo $STARTUPFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" - - PREFIX="$OCTAVE_HOME" - fi - - usage_msg="usage: octave-config [options]" - - if [ $# -eq 0 ]; then - echo "$usage_msg" 1>&2 - exit 1 - fi - - while [ $# -gt 0 ] - do - case "$1" in - -h | -\? | --help) - echo "$usage_msg" - cat << EOF - - Options: - - -h, -?, --help Print this message. - - --m-site-dir Print the name of the directory where Octave - expects to find locally installed .m files. - - --oct-site-dir Print the name of the directory where Octave - expects to find locally installed .oct files. - - -p VAR, --print VAR Print the value of the given configuration - variable VAR. Recognized variables are: - - API_VERSION LOCALAPIOCTFILEDIR - ARCHLIBDIR LOCALARCHLIBDIR - BINDIR LOCALFCNFILEDIR - CANONICAL_HOST_TYPE LOCALOCTFILEDIR - DATADIR LOCALSTARTUPFILEDIR - DATAROOTDIR LOCALVERARCHLIBDIR - DEFAULT_PAGER LOCALVERFCNFILEDIR - EXEC_PREFIX LOCALVEROCTFILEDIR - FCNFILEDIR MAN1DIR - IMAGEDIR MAN1EXT - INCLUDEDIR MANDIR - INFODIR OCTFILEDIR - INFOFILE OCTINCLUDEDIR - LIBDIR OCTLIBDIR - LIBEXECDIR PREFIX - LOCALAPIARCHLIBDIR STARTUPFILEDIR - LOCALAPIFCNFILEDIR VERSION - - -v, --version Print the Octave version number. - - EOF - exit 0 - ;; - --m-site-dir) - echo $LOCALVERFCNFILEDIR - ;; - --oct-site-dir) - echo $LOCALVEROCTFILEDIR - ;; - -v | --version) - echo $VERSION - ;; - -p | --print) - opt="$1" - shift - if [ $# -eq 0 ]; then - echo "octave-config: $opt option requires argument" 1>&2 - exit 1 - fi - eval echo \${$1} - ;; - *) - echo "octave-config: unrecognized argument $1" 2>&1 - exit 1 - ;; - esac - shift - done --- 0 ---- diff -cNr octave-3.4.0/octave-sh octave-3.4.1/octave-sh *** octave-3.4.0/octave-sh 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/octave-sh 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,19 **** - #!/bin/sh - # - # Wrapper for octave for binary installations that can't install - # octave in /usr/local/bin. - # - # The real binary should be installed in as octave.bin, and this file - # should be installed in the same directory as octave. - - if test -n "$LD_LIBRARY_PATH"; then - LD_LIBRARY_PATH="@LD_LIBRARY_PATH@:$LD_LIBRARY_PATH" - else - LD_LIBRARY_PATH="@LD_LIBRARY_PATH@" - fi - export LD_LIBRARY_PATH - - OCTAVE_HOME=@OCTAVE_HOME@ - export OCTAVE_HOME - - exec $OCTAVE_HOME/bin/octave.bin $* --- 0 ---- diff -cNr octave-3.4.0/PROJECTS octave-3.4.1/PROJECTS *** octave-3.4.0/PROJECTS 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/PROJECTS 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,11 **** - Octave PROJECTS - =============== - - A list of proposed projects is maintained at: - - http://wiki.octave.org/wiki.pl?Projects - - If you start working steadily on a project, please let - maintainers@octave.org know. We might have information that could help - you. You should also read the Contributing Guidelines chapter in the - Octave manual. --- 0 ---- diff -cNr octave-3.4.0/README octave-3.4.1/README *** octave-3.4.0/README 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/README 2011-06-15 11:11:27.000000000 -0400 *************** *** 49,57 **** features of GNU Make that are not present in other versions of make. GNU Make is very portable and easy to install. ! See the notes in the files INSTALL and INSTALL.OCTAVE for more ! specific installation instructions, including directions for ! installing Octave from a binary distribution. Bugs and Patches ---------------- --- 49,57 ---- features of GNU Make that are not present in other versions of make. GNU Make is very portable and easy to install. ! See the notes in the files INSTALL and the system-specific README files ! in the etc directory of the Octave source distribution for more specific ! installation instructions. Bugs and Patches ---------------- *************** *** 78,81 **** maintainers mailing lists. ! Last updated: Sat, 07 Mar 2009 11:18:14 EST --- 78,81 ---- maintainers mailing lists. ! Last updated: Fri, 10 Jun 2011 14:02:32 EDT diff -cNr octave-3.4.0/README.Cygwin octave-3.4.1/README.Cygwin *** octave-3.4.0/README.Cygwin 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/README.Cygwin 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,51 **** - Starting with version 3.0.1, Octave is once again part of the normal - net distribution of Cygwin, available from http://www.cygwin.com. - - It is possible to build Octave from source on Windows systems with Cygwin, - but with the old gcc-3.4.4-3 compiler there are some performance - problems related to the way C++ exception handling is implemented. - This is a known problem with a long history and it is STRONGLY - encouraged to use gcc-4.3.2-1 or later. - - Current binary versions are built with gcc-4.3.4-3 while - binary version 3.0.2-2 was built with gcc-4.3.2-1. - - The latest development Octave development sources (octave-3.3.54+) - are built with: - - configure --enable-shared \ - --enable-float-truncate \ - CC=gcc-4 F77=gfortran-4 CXX=g++-4 CPP=cpp-4 - lt_cv_deplibs_check_method=pass_all \ - LDFLAGS=-no-undefined - - "--enable-float-truncate" is needed for the following bug: - http://thread.gmane.org/gmane.comp.gnu.octave.bugs/12361/focus=12404 - Without it, one of the quadgk test will fail as - "a=a" could be false due to truncation problems with - complex numbers. - - "lt_cv_deplibs_check_method=pass_all" is needed to bypass - incorrect libtool detection of system capabilities and - to allow shared libs building. - - - Octave-3.2.4 was built using: - - configure --enable-shared \ - --without-fltk \ - --without-framework-opengl \ - CC=gcc-4 F77=gfortran-4 CXX=g++-4 CPP=cpp-4 - CFLAGS="-Dtimezone=_timezone" - - - Current Cygwin package maintainer for Octave: - - Marco Atzeri - http://matzeri.altervista.org - - Marco Atzeri - marco_atzeri@yahoo.it - Italy - - Last updated: Mon Jan 3 18:53:41 WEST 2011 --- 0 ---- diff -cNr octave-3.4.0/README.kpathsea octave-3.4.1/README.kpathsea *** octave-3.4.0/README.kpathsea 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/README.kpathsea 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,171 **** - The code in the files - - liboctave/kpse.cc - liboctave/kpse-xfns.h - liboctave/kpse-xfns.c - - was adapted from the kpathsearch library. We don't use kpathsearch - directly now because it has too many TeX-specific things that are not - necessary for Octave, and it also does not implement all the special - kinds of file searches that Octave needs (mainly for compatibility - with Matlab). - - Original authors of the kpathsearch library - ------------------------------------------- - - Karl Berry wrote all files not otherwise marked, with help from Kathryn - Hargreaves on some of the original versions. - - Thomas Esser originated most of the MakeTeX... scripts. - - The brace expansion code in expand.c was written by Brian Fox and Chet - Ramey for Bash, the GNU shell. - - The implementation of the link trick in pathsearch.c is taken from GNU - find, implemented by David MacKenzie from Matthew Farwell's suggestion. - - Debugging - --------- - - Kpathsea provides a number of runtime debugging options, detailed - below by their names and corresponding numeric values. When the files - you expect aren't being found, the thing to do is enable these options - and examine the output. - - You can set these with some runtime argument (e.g., `-d') to the - program; in that case, you should use the numeric values described in - the program's documentation (which, for Dvipsk and Xdvik, are different - than those below). It's best to give the `-d' (or whatever) option - first, for maximal output. Dvipsk and Xdvik have additional - program-specific debugging options as well. - - You can also set the environment variable `KPATHSEA_DEBUG'; in this - case, you should use the numbers below. If you run the program under a - debugger and set the variable `kpathsea_debug', also use the numbers - below. - - In any case, by far the simplest value to use is `-1', which will - turn on all debugging output. This is usually better than guessing - which particular values will yield the output you need. - - Debugging output always goes to standard error, so you can redirect it - easily. For example, in Bourne-compatible shells: - dvips -d -1 ... 2>/tmp/debug - - It is sometimes helpful to run the standalone Kpsewhich utility - (*note Invoking kpsewhich::.), instead of the original program. - - In any case, you can *not* use the *names* below; you must always use - somebody's numbers. (Sorry.) To set more than one option, just sum - the corresponding numbers. - - `KPSE_DEBUG_STAT (1)' - Report `stat'(2) calls. This is useful for verifying that your - directory structure is not forcing Kpathsea to do many additional - file tests (*note Slow path searching::., and *note Subdirectory - expansion::.). If you are using an up-to-date `ls-R' database - (*note Filename database::.), this should produce no output unless - a nonexistent file that must exist is searched for. - - `KPSE_DEBUG_HASH (2)' - Report lookups in all hash tables: `ls-R' and `aliases' (*note - Filename database::.); font aliases (*note Fontmap::.); and config - file values (*note Config files::.). Useful when expected values - are not being found, e.g.., file searches are looking at the disk - instead of using `ls-R'. - - `KPSE_DEBUG_FOPEN (4)' - Report file openings and closings. Especially useful when your - system's file table is full, for seeing which files have been - opened but never closed. In case you want to set breakpoints in a - debugger: this works by redefining `fopen' (`fclose') to be - `kpse_fopen_trace' (`kpse_fclose_trace'). - - `KPSE_DEBUG_PATHS (8)' - Report general path information for each file type Kpathsea is - asked to search. This is useful when you are trying to track down - how a particular path got defined--from `texmf.cnf', `config.ps', - an environment variable, the compile-time default, etc. This is - the contents of the `kpse_format_info_type' structure defined in - `tex-file.h'. - - `KPSE_DEBUG_EXPAND (16)' - Report the directory list corresponding to each path element - Kpathsea searches. This is only relevant when Kpathsea searches - the disk, since `ls-R' searches don't look through directory lists - in this way. - - `KPSE_DEBUG_SEARCH (32)' - Report on each file search: the name of the file searched for, the - path searched in, whether or not the file must exist (when drivers - search for `cmr10.vf', it need not exist), and whether or not we - are collecting all occurrences of the file in the path (as with, - e.g., `texmf.cnf' and `texfonts.map'), or just the first (as with - most lookups). This can help you correlate what Kpathsea is doing - with what is in your input file. - - `KPSE_DEBUG_VARS (64)' - Report the value of each variable Kpathsea looks up. This is - useful for verifying that variables do indeed obtain their correct - values. - - `GSFTOPK_DEBUG (128)' - Activates debugging printout specific to `gsftopk' program. - - `MAKETEX_DEBUG (512)' - If you use the optional `mktex' programs instead of the - traditional shell scripts, this will report the name of the site - file (`mktex.cnf' by default) which is read, directories created by - `mktexdir', the full path of the `ls-R' database built by - `mktexlsr', font map searches, `MT_FEATURES' in effect, parameters - from `mktexnam', filenames added by `mktexupd', and some - subsidiary commands run by the programs. - - `MAKETEX_FINE_DEBUG (1024)' - When the optional `mktex' programs are used, this will print - additional debugging info from functions internal to these - programs. - - Debugging output from Kpathsea is always written to standard error, - and begins with the string `kdebug:'. (Except for hash table buckets, - which just start with the number, but you can only get that output - running under a debugger. See comments at the `hash_summary_only' - variable in `kpathsea/db.c'.) - - Logging - ------- - - Kpathsea can record the time and filename found for each successful - search. This may be useful in finding good candidates for deletion when - your filesystem is full, or in discovering usage patterns at your site. - - To do this, define the environment or config file variable - `TEXMFLOG'. The value is the name of the file to append the - information to. The file is created if it doesn't exist, and appended - to if it does. - - Each successful search turns into one line in the log file: two words - separated by a space. The first word is the time of the search, as the - integer number of seconds since "the epoch", i.e., UTC midnight 1 - January 1970 (more precisely, the result of the `time' system call). - The second word is the filename. - - For example, after `setenv TEXMFLOG /tmp/log', running Dvips on - `story.dvi' appends the following lines: - - 774455887 /usr/local/share/texmf/dvips/config.ps - 774455887 /usr/local/share/texmf/dvips/psfonts.map - 774455888 /usr/local/share/texmf/dvips/texc.pro - 774455888 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmbx10.600pk - 774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmsl10.600pk - 774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmr10.600pk - 774455889 /usr/local/share/texmf/dvips/texc.pro - - Only filenames that are absolute are recorded, to preserve some - semblance of privacy. - - - John W. Eaton - jwe@octave.org - - Last updated: Wed, 31 Oct 2007 16:33:13 EDT --- 0 ---- diff -cNr octave-3.4.0/README.Linux octave-3.4.1/README.Linux *** octave-3.4.0/README.Linux 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/README.Linux 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,10 **** - There are binary packages for Debian, Fedora, and other GNU/Linux - distributions. - - Octave should build cleanly from source on most GNU/Linux systems. - - - John W. Eaton - jwe@octave.org - - Last updated: Wed, 31 Oct 2007 16:22:26 EDT --- 0 ---- diff -cNr octave-3.4.0/README.MacOS octave-3.4.1/README.MacOS *** octave-3.4.0/README.MacOS 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/README.MacOS 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,334 **** - 1. Easy to install Binary Releases - ================================== - - A MacOS bundle is available from sourceforge. - - http://octave.sourceforge.net/index.html - - There are also Octave packages available from both Fink and MacPorts. Each - of these package managers handle the details of compiling Octave from source. - - http://www.finkproject.com - http://www.macports.org/ - - - 2. Building from Source - ======================= - - Stable releases, development snapshots as well as the current developers - sources are available. The sources for stable releases are available from - the links below. - - ftp://ftp.gnu.org/pub/gnu/octave/ - http://ftp.gnu.org/pub/gnu/octave/ - - Development snapshots, intended for testing, are available from the link - below. - - ftp://alpha.gnu.org/gnu/octave - - Links to the stable releases, snap shots, and instructions for obtaining - the current development sources using mercurial can be found on Octave's - web-site below. - - http://www.gnu.org/software/octave/download.html - - Building on MacOS can vary significantly between versions. These - instructions document the procedure for MacOS 10.6.X. - - - 2.1 Developer's Tools - --------------------- - - Apple's Xcode Developer's Tools must be installed to build Octave on MacOS X. - - A fortran compilar is also required to build Octave. - - AT&T Research provides versions of gfortran which have been patched to work - with gcc tool set bundled with Xcode. - - http://r.research.att.com/tools/ - - Alternatively, the Fink and MacPorts package managers provide more recent - versions of gcc which include gfortan. Those may be used to build the sources - as well. However, care must be taken. - - * The same compiler must be used to build all the dependencies. This is - necessary to to avoid conflicts between the compiler libraries such as - libstdc++. For a successful build the first file in LDFLAGS must refer to - this library. For example, if building with gcc-4.5 obtained from MacPorts - LDFLAGS would begin as, - - export LDFLAGS="/opt/local/lib/gcc45/libstdc++.6.dylib [...]" - - * As of MacOS 10.6.6, the 64bit BLAS routines that are part of Apple's vecLib - (framework accelerate) are not functioning correctly. As a work around, an - alternative BLAS/LAPACK library, such as ATLAS, must be used. - - - 2.2 Manual Package Management - ----------------------------- - - Instructions for building Octave are available on the web at the link below. - - http://wiki.octave.org/wiki.pl?BuildFromSource - - In additionn, those wishing to build on MacOS X (10.6.x) should read section - 2.1 above. - - 2.2.1 Critical Dependencies - --------------------------- - - The minimal dependencies needed to build Octave's snap-shots are listed below. - - * Xcode - - * gfortran: Available from http://r.reseach.att.com/tools - - * gnu sed: Availabel from http://www.gnu.org/software/sed/ - - ./configure --prefix=/usr - make - make install - - * fftw3: Available from http://www.fftw.org/download.html - - export F77="/usr/bin/gfortran" - export CFLAGS="-arch i686 -arch x86_64" - export FFLAGS="$CFLAGS" - export LDLAGS="$CFLAGS" - ./configure --disable-dependency-tracking - make - sudo make install - make clean - ./configure --enable-float --disable-dependency-tracking - make - sudo make install - - A fully functional Octave requires additional dependencies. See the link below - for the details. - - http://wiki.octave.org/wiki.pl?BuildFromSource - - 2.2.2 Building Octave as a 32bit Application - -------------------------------------------- - - The commands below are sufficient to build a 32bit Octave. - - export CFLAGS="-m32" - export FFLAGS="-m32 -ff2c" - export CPPFLAGS="-m32 -D_REENTRANT" - export LDFLAGS="-m32" - ./configure --disable-readline --disable-docs - make - - Octave provides an interegrated tests suite. - - make check - - Octave may be run withou installing the application using the utility below. - - ./run-octave - - - 2.3 Building With Dependencies Satisfied by Fink - ------------------------------------------------ - - To install and setup the Fink package manager see the on line documentation. - - http://www.finkproject.org/ - - Currently, Fink does not have a package available for Octave versions above - 3.0.x. These instructions will allow the developers sources to be build and - run, but will not permit Octave to be installed in the usual Fink way. - - TODO - when a Fink package is developed for Octave 3.4.x, modify these - instructions to model the MacPorts secion. - - - 2.3.1 Dependencies - ------------------ - - To build Octave's sources the list of Fink packages below need to be installed. - - aquaterm - autoconf (>= 2.6.0) - automake (>= 1.11) - fftw3 (>= 3.1.1) - fftw3-shlibs (>= 3.1.1) - flex >= 2.5.30 - fltk-aqua-shlibs - glpk-dev - glpk-shlibs - gnuplot (>= 4.2.6) - graphicsmagick (<= 1.3.7) - graphicsmagick-shlibs (<= 1.3.7) - hdf5 (>= 1.6.5) - hdf5-shlibs (>= 1.6.5) - libcurl4 - libcurl4-shlibs - libncurses5 - libncurses5-shlibs - libtool >= 2.2.2 - ncurses - pcre - pcre-shlibs - qhull - qrupdate (**) - readline5 - readline5-shlibs - sed - suitesparse (= 3.1.0-1 ) - - Some of Octave's dependencies are among the default packages for Fink. These - include the list below, and possibly others as well. - - tetex - texinfo - - (**) Fink does not yet have a package for qrupdate. However, one is - available in the tracker at the link below. - - http://sourceforge.net/tracker/index.php?func=detail&aid=2861045&group_id=17203&atid=414256 - - - 2.3.2 Building With Dependencies Satisfied by Fink - -------------------------------------------------- - - After installing each of the dependencies, the sources are compiled by - setting the proper environment variables and then following the standard build - sequence. The following is an example set of variables to for a 32-bit build - using gcc-4.2. When building from the sources obtained from the mercurial - archive, ./autogen.sh must be run prior to ./configure. - - export FINK_PREFIX="/sw" - export PREFIX="/usr/local/bin" - - export OPTFLAGS="-O2 -g" - export LDFLAGS="-L$FINK_PREFIX/lib -L/usr/lib -m32" - export CFLAGS="-I$FINK_PREFIX/include $OPTFLAGS -m32" - export CXXFLAGS=$CFLAGS - export CPPFLAGS=$CXXFLAGS - export ACLOCAL_FLAGS="-I$FINK_PREFIX/share/aclocal" - export PKG_CONFIG_PATH="$FINK_PREFIX/lib/pkgconfig" - export PATH="$FINK_PREFIX/var/lib/fink/path-prefix-10.6/:$PATH" - export MACOSX_DEPLOYMENT_TARGET=10.5 - export PATH="$FINK_PREFIX/lib/flex/bin:$PATH" - export CPPFLAGS="-I$FINK_PREFIX/lib/flex/include $CPPFLAGS" - export LDFLAGS="-L$FINK_PREFIX/lib/flex/lib $LDFLAGS" - export CC="gcc-4.2" - export CPP="cpp-4.2" - export CXX="g++-4.2" - export F77="/usr/bin/gfortran-4.2" - export FLIBS="-lgfortran -lgfortranbegin" - export FFLAGS="-ff2c $OPTFLAGS -m32" - export CPPFLAGS="$CPPFLAGS -I$FINK_PREFIX/include/freetype2 \ - -I$FINK_PREFIX/include/qhull \ - -I/usr/include" - export CXXFLAGS="$CXXFLAGS -D_THREAD_SAFE -D_REENTRANT" - - ./configure --prefix=$PREFIX \ - --libexecdir='${prefix}/lib' \ - --with-blas="-Wl,-framework -Wl,vecLib" - make - - Note: This approach to building Octave does not support "make install". - - TODO - develop a Fink package for Octave 3.4.x. - - - 2.4 Building With Dependencies Satisfied by MacPorts - ---------------------------------------------------- - - To install and setup the MacPorts package manager see the online documentation - - http://guide.macports.org/ - - Using MacPorts, two approaches are described. The first describes how to build - and locally install Octave from a formal snapshot of the developer's sources or - from the developer's sources themselves. This is intended to the causual Octave - developer, or for users who want to live on the bleeding edge. - - The second describes an approach for building Octave which is intended for - active developers. In this case, MacPorts is used to satisfy Octave's - dependencies, but MacPorts does not build Octave. Futher a direct install of - Octave is not possible (i.e. cannot "make install"). - - - 2.4.1 Building and Installing Octave - ------------------------------------ - - With MacPorts building the developer's sources is convenient. MacPorts includes - a port file for octave-devel. To build and run the most recent development - snapshots, enter the commands below. - - sudo port selfupdate - sudo port install octave-devel - - To build the developers sources in one's own way, or if MacPorts' version is - outdated, a custom port file can be added. This requires setting up a local - port file repository (link below). - - http://guide.macports.org/#development.local-repositories - - The octave-devel port file may be used as an initial starting point. The port - file is accessible from the web at the link below. - - http://trac.macports.org/browser/trunk/dports/math/octave-devel/Portfile - - It is also available locally at the location below. The parametere ${prefix} is - corresponds to where MacPorts is install, which by default is "/opt/local". - - ${prefix}/var/macports/sources/rsync.macports.org/release/ports/math/octave-devel/Portfile - - The local source tarball must be placed in the location below, where ${name} - and ${distname} are each specified in the port file. - - ${prefix}/var/macports/distfiles/${name}/${disname}.tar.gz - - - 2.4.2 Building for Active Development of Octave - ----------------------------------------------- - - To satisfy Octave's dependencies, first install the octave-devel port. - - sudo port selfupdate - sudo port install octave-devel - - Next run octave to determine the configure options needed to build Octave using - MacPorts. At Octave's prompt type the command below and make note of the result, - ${config_opts}. - - octave:1> octave_config_info.config_opts - - Now uninstall the Octave port. - - sudo port deactivate octave-devel - - This will remove Octave and leave its dependencies in place. Now Octave may be - built from the local mercurial archive by typing the commands below, where the - configure options mentioned above are substituted for the parameter - ${config_opts}. If the sources being built are from the mercurial archive, then - ./autogen.sh must be run prior to ./configure. - - ./configure ${config_opts} - make - - Octave's intergrated tests may be run. - - make check - - However, "make install" should not be run as it may damage or corrupt the - MacPorts installation. To run Octave, type the command below from the root of - the mercurial archive. - - ./run-octave - - - John W. Eaton - jwe@octave.org - - Ben Abbott - bpabbott@mac.com - - Last updated: Sat, 28 Oct 2010 16:06:00 EDT --- 0 ---- diff -cNr octave-3.4.0/README.Windows octave-3.4.1/README.Windows *** octave-3.4.0/README.Windows 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/README.Windows 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,11 **** - See the file README.Cygwin for information about installing the binary - package of Octave for Cygwin. - - See the file README.MinGW for information about Octave on the MinGW platform - including installation of binaries or compiling Octave frome source. - - - John W. Eaton - jwe@octave.org - - Last updated: Sat Jan 22 16:56:05 PST 2011 --- 0 ---- diff -cNr octave-3.4.0/scripts/audio/loadaudio.m octave-3.4.1/scripts/audio/loadaudio.m *** octave-3.4.0/scripts/audio/loadaudio.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/audio/loadaudio.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} loadaudio (@var{name}, @var{ext}, @var{bps}) ! ## Loads audio data from the file @file{@var{name}.@var{ext}} into the ## vector @var{x}. ## ## The extension @var{ext} determines how the data in the audio file is --- 18,24 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} loadaudio (@var{name}, @var{ext}, @var{bps}) ! ## Load audio data from the file @file{@var{name}.@var{ext}} into the ## vector @var{x}. ## ## The extension @var{ext} determines how the data in the audio file is diff -cNr octave-3.4.0/scripts/audio/playaudio.m octave-3.4.1/scripts/audio/playaudio.m *** octave-3.4.0/scripts/audio/playaudio.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/audio/playaudio.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 19,25 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} playaudio (@var{name}, @var{ext}) ## @deftypefnx {Function File} {} playaudio (@var{x}) ! ## Plays the audio file @file{@var{name}.@var{ext}} or the audio data ## stored in the vector @var{x}. ## @seealso{lin2mu, mu2lin, loadaudio, saveaudio, setaudio, record} ## @end deftypefn --- 19,25 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} playaudio (@var{name}, @var{ext}) ## @deftypefnx {Function File} {} playaudio (@var{x}) ! ## Play the audio file @file{@var{name}.@var{ext}} or the audio data ## stored in the vector @var{x}. ## @seealso{lin2mu, mu2lin, loadaudio, saveaudio, setaudio, record} ## @end deftypefn diff -cNr octave-3.4.0/scripts/audio/record.m octave-3.4.1/scripts/audio/record.m *** octave-3.4.0/scripts/audio/record.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/audio/record.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} record (@var{sec}, @var{sampling_rate}) ! ## Records @var{sec} seconds of audio input into the vector @var{x}. The ## default value for @var{sampling_rate} is 8000 samples per second, or ## 8kHz. The program waits until the user types @key{RET} and then ## immediately starts to record. --- 18,24 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} record (@var{sec}, @var{sampling_rate}) ! ## Record @var{sec} seconds of audio input into the vector @var{x}. The ## default value for @var{sampling_rate} is 8000 samples per second, or ## 8kHz. The program waits until the user types @key{RET} and then ## immediately starts to record. diff -cNr octave-3.4.0/scripts/audio/saveaudio.m octave-3.4.1/scripts/audio/saveaudio.m *** octave-3.4.0/scripts/audio/saveaudio.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/audio/saveaudio.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} saveaudio (@var{name}, @var{x}, @var{ext}, @var{bps}) ! ## Saves a vector @var{x} of audio data to the file ## @file{@var{name}.@var{ext}}. The optional parameters @var{ext} and ## @var{bps} determine the encoding and the number of bits per sample used ## in the audio file (see @code{loadaudio}); defaults are @file{lin} and --- 18,24 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} saveaudio (@var{name}, @var{x}, @var{ext}, @var{bps}) ! ## Save a vector @var{x} of audio data to the file ## @file{@var{name}.@var{ext}}. The optional parameters @var{ext} and ## @var{bps} determine the encoding and the number of bits per sample used ## in the audio file (see @code{loadaudio}); defaults are @file{lin} and diff -cNr octave-3.4.0/scripts/audio/wavread.m octave-3.4.1/scripts/audio/wavread.m *** octave-3.4.0/scripts/audio/wavread.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/audio/wavread.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 22,30 **** ## in vector @var{y}. If the file contains multichannel data, then ## @var{y} is a matrix with the channels represented as columns. ## ! ## @deftypefnx {Function File} {[@var{y}, @var{Fs}, @var{bits}] =} wavread (@var{filename}) ## Additionally return the sample rate (@var{fs}) in Hz and the number of bits ! ## per sample (@var{bits}). ## ## @deftypefnx {Function File} {[@dots{}] =} wavread (@var{filename}, @var{n}) ## Read only the first @var{n} samples from each channel. --- 22,30 ---- ## in vector @var{y}. If the file contains multichannel data, then ## @var{y} is a matrix with the channels represented as columns. ## ! ## @deftypefnx {Function File} {[@var{y}, @var{Fs}, @var{bps}] =} wavread (@var{filename}) ## Additionally return the sample rate (@var{fs}) in Hz and the number of bits ! ## per sample (@var{bps}). ## ## @deftypefnx {Function File} {[@dots{}] =} wavread (@var{filename}, @var{n}) ## Read only the first @var{n} samples from each channel. *************** *** 75,81 **** endif riff_type = char (fread (fid, 4))'; ! if(! strcmp (riff_type, "WAVE")) fclose (fid); error ("wavread: file contains no WAVE signature"); endif --- 75,81 ---- endif riff_type = char (fread (fid, 4))'; ! if (! strcmp (riff_type, "WAVE")) fclose (fid); error ("wavread: file contains no WAVE signature"); endif *************** *** 157,163 **** if (nargin == 1) length = 8 * data_size / bits_per_sample; else ! nparams = size (param, 2); if (nparams == 1) ## Number of samples is given. length = param * channels; --- 157,163 ---- if (nargin == 1) length = 8 * data_size / bits_per_sample; else ! nparams = numel (param); if (nparams == 1) ## Number of samples is given. length = param * channels; *************** *** 174,180 **** return; else fclose (fid); ! error ("wavread: invalid argument 2"); endif endif --- 174,180 ---- return; else fclose (fid); ! error ("wavread: invalid PARAM argument"); endif endif *************** *** 201,213 **** ## Normalize samples. switch (bits_per_sample) case 8 ! yi = (yi - 128)/127; case 16 ! yi /= 32767; case 24 ! yi /= 8388607; case 32 ! yi /= 2147483647; endswitch endif --- 201,213 ---- ## Normalize samples. switch (bits_per_sample) case 8 ! yi = (yi - 128)/128; case 16 ! yi /= 32768; case 24 ! yi /= 8388608; case 32 ! yi /= 2147483648; endswitch endif *************** *** 239,241 **** --- 239,246 ---- chunk_size = -1; endif endfunction + + + %% Tests for wavread/wavwrite pair are in wavrite.m + %!assert(1) # stop fntests.m from reporting no tests for wavread + diff -cNr octave-3.4.0/scripts/audio/wavwrite.m octave-3.4.1/scripts/audio/wavwrite.m *** octave-3.4.0/scripts/audio/wavwrite.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/audio/wavwrite.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,27 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} wavwrite (@var{y}, @var{filename}) ! ## @deftypefnx {Function File} {} wavwrite (@var{y}, @var{fs}, @var{filename}) ! ## @deftypefnx {Function File} {} wavwrite (@var{y}, @var{fs}, @var{bits}, @var{filename}) ## Write @var{y} to the canonical RIFF/WAVE sound file @var{filename} ! ## with sample rate @var{fs} and bits per sample @var{bits}. The ## default sample rate is 8000 Hz with 16-bits per sample. Each column ## of the data represents a separate channel. ## @seealso{wavread} --- 18,27 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} wavwrite (@var{y}, @var{filename}) ! ## @deftypefnx {Function File} {} wavwrite (@var{y}, @var{Fs}, @var{filename}) ! ## @deftypefnx {Function File} {} wavwrite (@var{y}, @var{Fs}, @var{bps}, @var{filename}) ## Write @var{y} to the canonical RIFF/WAVE sound file @var{filename} ! ## with sample rate @var{Fs} and bits per sample @var{bps}. The ## default sample rate is 8000 Hz with 16-bits per sample. Each column ## of the data represents a separate channel. ## @seealso{wavread} *************** *** 34,46 **** BYTEORDER = "ieee-le"; - ## For backward compatibility with previous versions of Octave, also - ## accept the inputs - ## - ## wavwrite (filename, y) - ## wavwrite (filename, y, fs) - ## wavwrite (filename, y, fs, bits) - if (nargin < 2 || nargin > 4) print_usage (); endif --- 34,39 ---- *************** *** 49,70 **** samples_per_sec = 8000; bits_per_sample = 16; ! if (ischar (y)) ! filename = y; ! y = varargin{1}; ! if (nargin > 2) ! samples_per_sec = varargin{2}; ! if (nargin > 3) ! bits_per_sample = varargin{3}; ! endif ! endif ! else ! filename = varargin{end}; ! if (nargin > 2) ! samples_per_sec = varargin{1}; ! if (nargin > 3) ! bits_per_sample = varargin{2}; ! endif endif endif --- 42,52 ---- samples_per_sec = 8000; bits_per_sample = 16; ! filename = varargin{end}; ! if (nargin > 2) ! samples_per_sec = varargin{1}; ! if (nargin > 3) ! bits_per_sample = varargin{2}; endif endif *************** *** 72,78 **** if (columns (y) < 1) error ("wavwrite: Y must have at least one column"); endif ! if (columns (y) > 2^15-1) error ("wavwrite: Y has more than 32767 columns (too many for a WAV-file)"); endif --- 54,60 ---- if (columns (y) < 1) error ("wavwrite: Y must have at least one column"); endif ! if (columns (y) > 0x7FFF) error ("wavwrite: Y has more than 32767 columns (too many for a WAV-file)"); endif *************** *** 89,105 **** endswitch ## calculate filesize ! [n, channels] = size(y); ## size of data chunk ck_size = n*channels*(bits_per_sample/8); - ## open file for writing binary - if (! ischar (filename)) error ("wavwrite: expecting FILENAME to be a character string"); endif [fid, msg] = fopen (filename, "wb"); if (fid < 0) error ("wavwrite: %s", msg); --- 71,86 ---- endswitch ## calculate filesize ! [n, channels] = size (y); ## size of data chunk ck_size = n*channels*(bits_per_sample/8); if (! ischar (filename)) error ("wavwrite: expecting FILENAME to be a character string"); endif + ## open file for writing binary [fid, msg] = fopen (filename, "wb"); if (fid < 0) error ("wavwrite: %s", msg); *************** *** 126,133 **** c += fwrite (fid, samples_per_sec, "uint32", 0, BYTEORDER); ## bytes per second ! bps = samples_per_sec*channels*bits_per_sample/8; ! c += fwrite (fid, bps, "uint32", 0, BYTEORDER); ## block align c += fwrite (fid, channels*bits_per_sample/8, "uint16", 0, BYTEORDER); --- 107,114 ---- c += fwrite (fid, samples_per_sec, "uint32", 0, BYTEORDER); ## bytes per second ! byteps = samples_per_sec*channels*bits_per_sample/8; ! c += fwrite (fid, byteps, "uint32", 0, BYTEORDER); ## block align c += fwrite (fid, channels*bits_per_sample/8, "uint16", 0, BYTEORDER); *************** *** 147,157 **** ## scale samples switch (bits_per_sample) case 8 ! yi = round (yi*127 + 128); case 16 ! yi = round (yi*32767); case 32 ! yi = round (yi*2147483647); endswitch ## write to file --- 128,138 ---- ## scale samples switch (bits_per_sample) case 8 ! yi = round (yi*128 + 128); case 16 ! yi = round (yi*32768); case 32 ! yi = round (yi*2147483648); endswitch ## write to file *************** *** 161,189 **** endfunction %!test ! %! A = [1:10; 1:10]/10; ! %! wavwrite("a.wav", A); ! %! [B, samples_per_sec, bits_per_sample] = wavread("a.wav"); ! %! assert(A,B, 10^(-4)); %! assert(samples_per_sec, 8000); %! assert(bits_per_sample, 16); %! delete ("a.wav"); % %!test ! %! A=[1:10; 1:10] / 10; ! %! wavwrite("a.wav", A, 4000); ! %! [B, samples_per_sec, bits_per_sample] = wavread("a.wav"); ! %! assert(A,B, 10^(-4)); %! assert(samples_per_sec, 4000); %! assert(bits_per_sample, 16); %! delete ("a.wav"); % %!test ! %! A=[1:10; 1:10] / 10; ! %! wavwrite("a.wav", A, 4000, 8); ! %! [B, samples_per_sec, bits_per_sample] = wavread("a.wav"); ! %! assert(A,B, 10^(-2)); %! assert(samples_per_sec, 4000); %! assert(bits_per_sample, 8); %! delete ("a.wav"); --- 142,180 ---- endfunction + %!test ! %! A = [-1:0.1:1; -1:0.1:1]; ! %! wavwrite (A, "a.wav"); ! %! [B, samples_per_sec, bits_per_sample] = wavread ("a.wav"); ! %! assert(A,B, 1/2^15); %! assert(samples_per_sec, 8000); %! assert(bits_per_sample, 16); %! delete ("a.wav"); % %!test ! %! A = [-1:0.1:1; -1:0.1:1]; ! %! wavwrite (A, 4000, "a.wav"); ! %! [B, samples_per_sec, bits_per_sample] = wavread ("a.wav"); ! %! assert(A,B, 1/2^15); %! assert(samples_per_sec, 4000); %! assert(bits_per_sample, 16); %! delete ("a.wav"); % %!test ! %! A = [-1:0.1:1; -1:0.1:1]; ! %! wavwrite (A, 4000, 8, "a.wav"); ! %! [B, samples_per_sec, bits_per_sample] = wavread ("a.wav"); ! %! assert(A,B, 1/128); %! assert(samples_per_sec, 4000); %! assert(bits_per_sample, 8); %! delete ("a.wav"); + % + %!test + %! A = [-2:2]; + %! wavwrite (A, "a.wav"); + %! B = wavread ("a.wav"); + %! B *= 32768; + %! assert(B, [-32768 -32768 0 32767 32767]); + %! delete ("a.wav"); + diff -cNr octave-3.4.0/scripts/ChangeLog octave-3.4.1/scripts/ChangeLog *** octave-3.4.0/scripts/ChangeLog 2011-02-08 05:01:12.000000000 -0500 --- octave-3.4.1/scripts/ChangeLog 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,17064 **** - 2011-02-05 David Bateman - - * plot/legend.m: Allow the location and orientation to be set without - modifiying the legend keys. - * plot/legend.m: Add padding to legend positions. Fix for outerposition - for southeastoutside and southwestoutside. - - 2011-02-06 Ben Abbott - - * plot/legend.m: Align legends to plot box, add demo. Bug 32373. - * plot/legend.m: "legend off" should delete the legend object. - - 2011-02-06 David Bateman - * plot/legend.m : Delete old legend before probing the position and - outerposition. Reshape lpos correct if the legend locqtion is - "southeast". - - 2011-02-06 Ben Abbott - - * plot/legend.m: Add demo for replacing existing legend. - - 2011-02-06 John W. Eaton - - * general/circshift.m: New tests. - - 2010-02-05 Rik - - * miscellaneous/version.m, path/matlabroot.m: Correct spelling. - - 2010-02-05 Rik - - * help/help.m, linear-algebra/onenormest.m, plot/graphics_toolkit.m, - plot/pie3.m, plot/view.m, signal/periodogram.m: Grammarcheck docstrings. - - 2011-02-05 Ben Abbott - - * plot/legend.m: Add demo for inline keys created by two plot commands. - - 2011-02-05 David Bateman - - Bug #32022 and #32343. - - * plot/legend.m (updatelegend): Don't flip plots when resetting the - legend. Use unwind_protect to ensure that the resursive flag is reset - in case of an error. - (getlegenddata): Remove this function and replace its use with the - function __getlegenddata__. - * plot/privata/__getlegenddata__.m: New function - * plot/module.mk (plot_PRIVATE_FCN_FILES): Add it here. - * plot/private/__plt__.m: Set initial values of hlgnd and tlgnd - if a legend exists already. - - 2010-02-02 Rik - - * sparse/svds.m: Use testif to only run some sparse tests when - necessary libraries are installed. - - 2011-02-01 Ben Abbott - - * plot/__gnuplot_has_feature__.m: Don't throw an error if gnuplot - isn't installed. - - 2011-02-01 John W. Eaton - - * plot/scatter3.m: Pass h to set, not ax. - - 2011-01-31 John W. Eaton - - * plot/private/__axis_label__.m: Don't call __fltk_redraw__. - - 2011-01-31 John W. Eaton - - * plot/__fltk_ginput__.m: Remove line that should have been - removed in previous change. - - 2010-01-31 Rik - - * plot/private/__gnuplot_has_terminal__.m: Simplify regular expression - to eliminate word-boundary assertion. - - 2010-01-30 Rik - - * deprecated/module.mk, optimization/module.mk: Deprecate glpkmex - function. - - 2011-01-30 John W. Eaton - - * plot/__gnuplot_drawnow__.m: Rename from gnuplot_drawnow.m - Update doc string and error message with new name. - * plot/module.mk (plot_FCN_FILES): Update list. - - 2011-01-30 Petr Mikulik - - * plot/__fltk_ginput__.m (ginput_aggregator): New arg, button. - Change all uses. - (ginput_keypressfcn): Save keypress info. - - 2010-01-29 Rik - - * plot/gnuplot_binary.in: Improve docstring - - 2010-01-29 Rik - - * general/accumarray.m: Add seealso reference to accumdim. - - 2010-01-29 Rik - - * set/powerset.m: Improve docstring. - - 2010-01-29 Rik - - * miscellaneous/copyfile.m, miscellaneous/movefile.m, - miscellaneous/tempname.m: Improve docstrings - - 2010-01-29 Rik - - * deprecated/module.mk, image/module.mk: Deprecate saveimage.m. - - 2011-01-29 Rik - - * optimization/glpkmex.m: Add seealso reference to glpk. - - 2011-01-29 Rik - - * miscellaneous/compare_versions.m: Allow only "==" equality operator. - Add input validation tests. Improve docstring. - - * miscellaneous/ver.m, miscellaneous/version.m, path/matlabroot.m: - Improve docstring. - - 2011-01-29 Ben Abbott - - * miscellaneous/edit.m: As most editors open their own window, change - mode to "async". - - 2011-01-28 Ben Abbott - - * plot/__fltk_print__.m, plot/print.m: Fix {eps,ps,pdf}latexstandalone - printing for fltk, bug 32262. - - 2011-01-28 John W. Eaton - - * sparse/svds.m: Use "test" instead of "testif HAVE_ARPACK". - - 2011-01-27 Rik - - * plot/whitebg.m: Improve docstring. - - 2011-01-27 Rik - - * geometry/trimesh.m, geometry/triplot.m, geometry/trisurf.m: Add - undocumented function trisurf to documentation. Update seealso - strings. - - 2011-01-27 John W. Eaton - - * general/rat.m: Move @seealso inside @deftypefn in docstring. - - 2011-01-27 Kai Habel - - * plot/uigetfile.m, plot/uiputfile.m, plot/uigetdir.m: Check - for __fltk_uigetfile__. - - 2011-01-27 John W. Eaton - - * Makefile.am (check-missing-semicolon): New rule. - - 2011-01-26 Rik - - * scripts/general/interp1.m, scripts/general/interp2.m, - scripts/general/interp3.m, scripts/general/interpn.m: Use em-dash - rather than en-dash. - * scripts/miscellaneous/mkoctfile.m: Use @code to prevent option - turning to en-dash. - - 2011-01-26 John W. Eaton - - * mkdoc: Untabify. - - * mkdoc, gethelp.cc: Strip trailing whitespace. - - 2011-01-26 John W. Eaton - - * general/curl.m: Simplify processing of outptut values. - - 2011-01-26 Olaf Till - - * pkg/pkg.m: Export environment variables MKOCTFILE and - OCTAVE_CONFIG for configure and make, to configure also OCTAVE. - - 2011-01-24 John W. Eaton - - * audio/lin2mu: Doc fix. - - * audio/mu2lin.m: Doc fix. - For compatibility with Matlab, change default for N to be 8. - - 2011-01-22 Rik - - * miscellaneous/info.m: Use reference to bug tracker rather than - octave-dev mailing list. - - 2011-01-22 Ben Abbott - - * plot/meshc.m: Add note: gnuplot does not support filled 3D patches, - or mixing non-filled contours with filled surfaces. - * plot/subplot.m: Set "box" to "on" by default (same as Matlab). - * plot/cylinder.m: Remove console output from demo. - - 2011-01-22 Konstantinos Poulios - - * plot/plotyy.m: Set box property to off to allow both y-axes colors - to be visible for OpenGL backends. - - 2011-01-22 John W. Eaton - - * plot/private/__scatter__.m: Don't accept "filled" as a color. - * plot/scatter.m: Doc fix. - Bug #32204. - - 2011-01-21 Konstantinos Poulios - - * plot/xlabel.m, plot/ylabel.m, plot/zlabel.m: Setting axis label - color from axis color. - - 2011-01-20 Jordi Gutiérrez Hermoso - - * image/imshow.m: Fix handling of clim and display_range so that - images are more faithfully reproduced. - - 2011-01-20 Rik - - * scripts/image/imshow.m, scripts/image/saveimage.m, - scripts/io/dlmwrite.m, scripts/io/strread.m, - scripts/miscellaneous/license.m, scripts/optimization/glpk.m, - scripts/plot/refreshdata.m, scripts/plot/shading.m, - scripts/plot/slice.m, scripts/plot/surfl.m, scripts/plot/uimenu.m, - scripts/statistics/base/mean.m, scripts/statistics/base/moment.m, - scripts/strings/isstrprop.m: Prevent doubled quotes around @table - items in Info. - - 2011-01-20 Rik - - * mkdoc: Mark all scripts as coming from 'scripts/' directory - in Texinfo '@c func location' comments. - - 2011-01-20 Rik - - * scripts/linear-algebra/condest.m, - scripts/linear-algebra/onenormest.m, scripts/linear-algebra/qzhess.m, - scripts/polynomial/polyfit.m, scripts/special-matrix/pascal.m: Use - non-breaking spaces between certain adjectives and their linked nouns - in docstrings - - 2011-01-20 Rik - - * image/imread.m, image/imwrite.m, signal/periodogram.m, - strings/isstrprop.m: Use @nospell macro on certain words in docstring. - - 2011-01-20 John W. Eaton - - * @ftp/loadobj.m, @ftp/saveobj.m, audio/record.m, - general/accumarray.m, general/accumdim.m, general/arrayfun.m, - general/bicubic.m, general/curl.m, general/divergence.m, - general/gradient.m, general/interp2.m, general/rat.m, - image/imagesc.m, io/strread.m, io/textscan.m, - linear-algebra/krylov.m, miscellaneous/getappdata.m, - miscellaneous/isappdata.m, miscellaneous/rmappdata.m, - miscellaneous/setappdata.m, miscellaneous/what.m, - optimization/qp.m, path/savepath.m, pkg/pkg.m, - plot/__fltk_print__.m, plot/__gnuplot_print__.m, - plot/__go_draw_axes__.m, plot/__print_parse_opts__.m, - plot/axis.m, plot/caxis.m, plot/cla.m, plot/clabel.m, - plot/clf.m, plot/colorbar.m, plot/cylinder.m, plot/daspect.m, - plot/gnuplot_drawnow.m, plot/meshc.m, plot/newplot.m, - plot/orient.m, plot/pbaspect.m, plot/plotyy.m, plot/print.m, - plot/private/__actual_axis_position__.m, - plot/private/__axis_label__.m, plot/private/__bar__.m, - plot/private/__clabel__.m, plot/private/__errplot__.m, - plot/private/__ezplot__.m, plot/private/__ghostscript__.m, - plot/private/__patch__.m, plot/private/__pie__.m, - plot/private/__quiver__.m, plot/private/__scatter__.m, - plot/private/__stem__.m, plot/private/__tight_eps_bbox__.m, - plot/refresh.m, plot/spinmap.m, plot/subplot.m, plot/surfc.m, - plot/uigetfile.m, polynomial/polyout.m, sparse/spaugment.m, - sparse/svds.m, sparse/treeplot.m, statistics/base/histc.m, - statistics/distributions/hygecdf.m, - statistics/distributions/hygeinv.m, statistics/tests/manova.m, - strings/deblank.m, testfun/runtests.m: Add missing semicolons. - - 2011-01-20 John W. Eaton - - * deprecated/cellidx.m, deprecated/dmult.m, - deprecated/intwarning.m, deprecated/str2mat.m, general/curl.m, - general/divergence.m, general/gradient.m, geometry/griddata.m, - help/gen_doc_cache.m, io/dlmwrite.m, miscellaneous/getappdata.m, - miscellaneous/isappdata.m, miscellaneous/rmappdata.m, - miscellaneous/setappdata.m, miscellaneous/unpack.m, - optimization/lsqnonneg.m, optimization/pqpnonneg.m, - pkg/get_forge_pkg.m, pkg/pkg.m, plot/__fltk_print__.m, - plot/__gnuplot_get_var__.m, plot/__gnuplot_open_stream__.m, - plot/__gnuplot_print__.m, plot/daspect.m, - plot/gnuplot_drawnow.m, plot/pbaspect.m, - plot/private/__errplot__.m, plot/private/__fltk_file_filter__.m, - plot/private/__ghostscript__.m, plot/uigetfile.m, - plot/uiputfile.m, polynomial/polyaffine.m, sparse/pcg.m: - Style fixes for error and warning messages. - - 2011-01-20 John W. Eaton - - * @ftp/dir.m, @ftp/mget.m, @ftp/mput.m, ChangeLog, - audio/lin2mu.m, audio/setaudio.m, audio/wavread.m, - audio/wavwrite.m, deprecated/autocor.m, deprecated/autocov.m, - deprecated/betai.m, deprecated/create_set.m, - deprecated/dispatch.m, deprecated/gammai.m, - deprecated/intwarning.m, deprecated/replot.m, elfun/cosd.m, - elfun/sind.m, elfun/tand.m, general/accumarray.m, - general/accumdim.m, general/arrayfun.m, general/bicubic.m, - general/bitcmp.m, general/bitget.m, general/bitset.m, - general/cart2pol.m, general/cart2sph.m, general/cell2mat.m, - general/celldisp.m, general/circshift.m, general/cplxpair.m, - general/cumtrapz.m, general/curl.m, general/dblquad.m, - general/deal.m, general/del2.m, general/divergence.m, - general/flipud.m, general/gradient.m, general/idivide.m, - general/int2str.m, general/interp1.m, general/interp2.m, - general/interp3.m, general/interpft.m, general/interpn.m, - general/isdir.m, general/loadobj.m, general/logspace.m, - general/num2str.m, general/pol2cart.m, general/polyarea.m, - general/quadgk.m, general/quadl.m, general/quadv.m, - general/randi.m, general/rat.m, general/repmat.m, - general/rot90.m, general/rotdim.m, general/saveobj.m, - general/shift.m, general/sortrows.m, general/sph2cart.m, - general/structfun.m, general/subsindex.m, general/trapz.m, - general/triplequad.m, geometry/convhull.m, geometry/delaunay.m, - geometry/delaunay3.m, geometry/delaunayn.m, geometry/dsearch.m, - geometry/dsearchn.m, geometry/griddata3.m, geometry/griddatan.m, - geometry/inpolygon.m, geometry/rectint.m, geometry/trimesh.m, - geometry/trisurf.m, geometry/tsearchn.m, geometry/voronoi.m, - help/__makeinfo__.m, help/__strip_html_tags__.m, help/doc.m, - help/gen_doc_cache.m, help/get_first_help_sentence.m, - help/help.m, help/lookfor.m, help/print_usage.m, help/type.m, - image/autumn.m, image/bone.m, image/brighten.m, image/cool.m, - image/copper.m, image/flag.m, image/gmap40.m, image/gray.m, - image/hot.m, image/hsv.m, image/hsv2rgb.m, image/image.m, - image/imread.m, image/imshow.m, image/imwrite.m, - image/ind2rgb.m, image/jet.m, image/ntsc2rgb.m, image/ocean.m, - image/pink.m, image/prism.m, image/rainbow.m, image/rgb2hsv.m, - image/rgb2ind.m, image/rgb2ntsc.m, image/spring.m, - image/summer.m, image/winter.m, io/dlmwrite.m, io/fileread.m, - io/strread.m, io/textread.m, linear-algebra/cond.m, - linear-algebra/condest.m, linear-algebra/cross.m, - linear-algebra/expm.m, linear-algebra/isdefinite.m, - linear-algebra/krylov.m, linear-algebra/logm.m, - linear-algebra/normest.m, linear-algebra/onenormest.m, - linear-algebra/rref.m, linear-algebra/subspace.m, - miscellaneous/ans.m, miscellaneous/bincoeff.m, - miscellaneous/bunzip2.m, miscellaneous/bzip2.m, - miscellaneous/computer.m, miscellaneous/copyfile.m, - miscellaneous/debug.m, miscellaneous/edit.m, - miscellaneous/getappdata.m, miscellaneous/getfield.m, - miscellaneous/gunzip.m, miscellaneous/gzip.m, - miscellaneous/isappdata.m, miscellaneous/ls.m, - miscellaneous/mkoctfile.m, miscellaneous/movefile.m, - miscellaneous/namelengthmax.m, miscellaneous/orderfields.m, - miscellaneous/private/__xzip__.m, miscellaneous/rmappdata.m, - miscellaneous/setappdata.m, miscellaneous/substruct.m, - miscellaneous/swapbytes.m, miscellaneous/tar.m, - miscellaneous/unimplemented.m, miscellaneous/unpack.m, - miscellaneous/untar.m, miscellaneous/unzip.m, - miscellaneous/ver.m, miscellaneous/warning_ids.m, - miscellaneous/what.m, miscellaneous/zip.m, - optimization/__all_opts__.m, optimization/fminbnd.m, - optimization/fminunc.m, optimization/fsolve.m, - optimization/fzero.m, optimization/glpk.m, - optimization/lsqnonneg.m, optimization/optimget.m, - optimization/pqpnonneg.m, optimization/qp.m, optimization/sqp.m, - path/pathdef.m, path/savepath.m, pkg/pkg.m, - plot/__fltk_ginput__.m, plot/__gnuplot_ginput__.m, - plot/__gnuplot_has_feature__.m, plot/__gnuplot_open_stream__.m, - plot/__gnuplot_print__.m, plot/__go_draw_axes__.m, - plot/__go_draw_figure__.m, plot/__marching_cube__.m, - plot/__next_line_color__.m, plot/__next_line_style__.m, - plot/__plt_get_axis_arg__.m, plot/__print_parse_opts__.m, - plot/area.m, plot/axis.m, plot/bar.m, plot/barh.m, plot/caxis.m, - plot/cla.m, plot/clabel.m, plot/colorbar.m, plot/comet.m, - plot/comet3.m, plot/compass.m, plot/contour.m, plot/contour3.m, - plot/contourc.m, plot/cylinder.m, plot/daspect.m, - plot/diffuse.m, plot/ellipsoid.m, plot/errorbar.m, - plot/ezcontour.m, plot/ezcontourf.m, plot/ezmesh.m, - plot/ezmeshc.m, plot/ezplot.m, plot/ezplot3.m, plot/ezpolar.m, - plot/ezsurf.m, plot/ezsurfc.m, plot/feather.m, plot/findobj.m, - plot/fplot.m, plot/gnuplot_drawnow.m, plot/gtext.m, plot/hist.m, - plot/hold.m, plot/ishghandle.m, plot/isocolors.m, - plot/isonormals.m, plot/isosurface.m, plot/isprop.m, - plot/legend.m, plot/loglog.m, plot/loglogerr.m, plot/meshc.m, - plot/meshz.m, plot/ndgrid.m, plot/orient.m, plot/pareto.m, - plot/patch.m, plot/pbaspect.m, plot/pcolor.m, plot/peaks.m, - plot/pie.m, plot/pie3.m, plot/plot.m, plot/plot3.m, - plot/plotmatrix.m, plot/plotyy.m, plot/polar.m, plot/print.m, - plot/private/__actual_axis_position__.m, - plot/private/__axis_label__.m, plot/private/__bar__.m, - plot/private/__clabel__.m, plot/private/__contour__.m, - plot/private/__errplot__.m, plot/private/__ezplot__.m, - plot/private/__fltk_file_filter__.m, - plot/private/__ghostscript__.m, - plot/private/__gnuplot_has_terminal__.m, - plot/private/__patch__.m, plot/private/__pie__.m, - plot/private/__pltopt__.m, plot/private/__quiver__.m, - plot/private/__scatter__.m, plot/private/__stem__.m, - plot/private/__tight_eps_bbox__.m, plot/quiver.m, - plot/quiver3.m, plot/refreshdata.m, plot/rose.m, plot/saveas.m, - plot/scatter.m, plot/scatter3.m, plot/semilogx.m, - plot/semilogxerr.m, plot/semilogy.m, plot/semilogyerr.m, - plot/shading.m, plot/slice.m, plot/specular.m, plot/sphere.m, - plot/stairs.m, plot/stem.m, plot/stem3.m, plot/subplot.m, - plot/surface.m, plot/surfc.m, plot/surfl.m, plot/surfnorm.m, - plot/uigetdir.m, plot/uigetfile.m, plot/uimenu.m, - plot/uiputfile.m, plot/view.m, plot/waitforbuttonpress.m, - plot/whitebg.m, plot/xlim.m, plot/ylim.m, plot/zlim.m, - polynomial/mkpp.m, polynomial/mpoles.m, polynomial/pchip.m, - polynomial/poly.m, polynomial/polyaffine.m, - polynomial/polyderiv.m, polynomial/polyfit.m, - polynomial/polyreduce.m, polynomial/polyval.m, - polynomial/ppder.m, polynomial/ppint.m, polynomial/ppjumps.m, - polynomial/ppval.m, polynomial/residue.m, polynomial/roots.m, - polynomial/spline.m, polynomial/unmkpp.m, set/ismember.m, - set/private/validargs.m, set/setdiff.m, set/setxor.m, - set/union.m, set/unique.m, signal/arma_rnd.m, signal/fftconv.m, - signal/fftshift.m, signal/filter2.m, signal/freqz.m, - signal/ifftshift.m, signal/unwrap.m, sparse/bicgstab.m, - sparse/cgs.m, sparse/gplot.m, sparse/pcg.m, sparse/pcr.m, - sparse/spaugment.m, sparse/spdiags.m, sparse/speye.m, - sparse/spfun.m, sparse/sprand.m, sparse/sprandn.m, - sparse/sprandsym.m, sparse/spstats.m, sparse/spy.m, - sparse/svds.m, sparse/treelayout.m, sparse/treeplot.m, - specfun/bessel.m, specfun/betaln.m, specfun/factor.m, - specfun/legendre.m, specfun/nchoosek.m, specfun/nthroot.m, - specfun/primes.m, specfun/reallog.m, specfun/realpow.m, - specfun/realsqrt.m, special-matrix/hadamard.m, - special-matrix/invhilb.m, special-matrix/magic.m, - special-matrix/pascal.m, special-matrix/toeplitz.m, - startup/__finish__.m, statistics/base/cov.m, - statistics/base/histc.m, statistics/base/iqr.m, - statistics/base/kendall.m, statistics/base/kurtosis.m, - statistics/base/mean.m, statistics/base/meansq.m, - statistics/base/median.m, statistics/base/mode.m, - statistics/base/moment.m, statistics/base/ols.m, - statistics/base/prctile.m, statistics/base/qqplot.m, - statistics/base/quantile.m, statistics/base/ranks.m, - statistics/base/run_count.m, statistics/base/skewness.m, - statistics/base/statistics.m, statistics/base/std.m, - statistics/base/studentize.m, statistics/base/var.m, - statistics/distributions/betainv.m, - statistics/distributions/betapdf.m, - statistics/distributions/betarnd.m, - statistics/distributions/binoinv.m, - statistics/distributions/binornd.m, - statistics/distributions/cauchy_cdf.m, - statistics/distributions/cauchy_inv.m, - statistics/distributions/cauchy_pdf.m, - statistics/distributions/cauchy_rnd.m, - statistics/distributions/chi2rnd.m, - statistics/distributions/discrete_rnd.m, - statistics/distributions/exprnd.m, - statistics/distributions/fcdf.m, - statistics/distributions/frnd.m, - statistics/distributions/gamrnd.m, - statistics/distributions/lognrnd.m, - statistics/distributions/nbincdf.m, - statistics/distributions/nbininv.m, - statistics/distributions/nbinpdf.m, - statistics/distributions/nbinrnd.m, - statistics/distributions/normrnd.m, - statistics/distributions/poissrnd.m, - statistics/distributions/stdnormal_rnd.m, - statistics/distributions/tpdf.m, - statistics/distributions/trnd.m, - statistics/distributions/unifcdf.m, - statistics/distributions/unifrnd.m, - statistics/distributions/wblrnd.m, - statistics/tests/bartlett_test.m, - statistics/tests/kolmogorov_smirnov_test_2.m, - statistics/tests/kruskal_wallis_test.m, - statistics/tests/t_test_regression.m, strings/blanks.m, - strings/dec2base.m, strings/dec2hex.m, strings/findstr.m, - strings/index.m, strings/isstrprop.m, strings/mat2str.m, - strings/regexptranslate.m, strings/str2num.m, strings/strchr.m, - strings/strjust.m, strings/strmatch.m, strings/strsplit.m, - strings/strtok.m, strings/untabify.m, testfun/assert.m, - testfun/demo.m, testfun/example.m, testfun/fail.m, - testfun/speed.m, testfun/test.m, time/datenum.m, time/datestr.m, - time/datetick.m, time/datevec.m, time/etime.m: - Strip trailing whitespace. - - * statistics/distributions/betapdf.m: Untabify. - - 2010-01-20 Petr Mikulik - - * plot/uigetdir.m: Use correct variable name for argument check. - Remove unneeded white spaces. - * plot/uigetfile.m, plot/uiputfile.m: Remove unneeded white spaces. - Bug #32190. - - 2011-01-20 John W. Eaton - - * plot/ginput.m, plot/gnuplot_drawnow.m, plot/uiputfile.m, - plot/subplot.m, plot/axis.m, plot/colorbar.m, - plot/__print_parse_opts__.m, plot/uigetdir.m, - plot/__fltk_print__.m, plot/print.m, plot/__gnuplot_print__.m, - plot/uigetfile.m, plot/private/__actual_axis_position__.m: - Update for backend -> graphics_toolkit change. - - * plot/graphics_toolkit.m: Rename from backend.m. - * plot/module.mk (plot_FCN_FILES): Update list. - - 2011-01-19 Rik - - * general/curl.m, general/divergence.m, io/strread.m, - miscellaneous/mkoctfile.m, plot/bar.m, plot/errorbar.m, plot/hist.m, - plot/mesh.m, plot/surf.m, polynomial/polyaffine.m: Correct spelling - in docstrings. - - 2011-01-19 John W. Eaton - - * help/help.m: New option --list. Bug #31905. - - 2011-01-19 John W. Eaton - - * io/strread.m: Avoid PCRE-ism in regexp. Bug #32066. - - 2011-01-17 Rik - - * audio/wavread.m, deprecated/spqr.m, elfun/lcm.m, general/bitget.m, - general/curl.m, general/divergence.m, general/interp3.m, - general/quadv.m, geometry/delaunayn.m, geometry/griddata.m, - help/help.m, io/textread.m, io/textscan.m, linear-algebra/cond.m, - miscellaneous/mkoctfile.m, miscellaneous/orderfields.m, - miscellaneous/run.m, miscellaneous/setappdata.m, plot/axis.m, - plot/caxis.m, plot/daspect.m, plot/ellipsoid.m, plot/errorbar.m, - plot/gnuplot_binary.in, plot/hist.m, plot/hold.m, plot/ishold.m, - plot/legend.m, plot/mesh.m, plot/pbaspect.m, plot/pie3.m, plot/print.m, - plot/private/__add_default_menu__.m, plot/scatter.m, plot/scatter3.m, - plot/shg.m, plot/slice.m, plot/surf.m, plot/surfl.m, plot/uigetdir.m, - plot/uigetfile.m, plot/uimenu.m, plot/uiputfile.m, plot/view.m, - set/unique.m, signal/periodogram.m, sparse/pcg.m, sparse/pcr.m, - sparse/spfun.m, specfun/legendre.m, - statistics/distributions/poisspdf.m, statistics/distributions/wblpdf.m, - strings/strjust.m, strings/untabify.m, testfun/assert.m, - testfun/demo.m, testfun/example.m, testfun/fail.m, testfun/test.m: - Grammarcheck m-files for 3.4 release. - - 2011-01-17 Rik - - * general/dblquad.m, general/quadgk.m, general/quadl.m, - general/quadv.m, general/triplequad.m: Improve docstring with seealso - links to quadcc. - - 2011-01-17 John W. Eaton - - * miscellaneous/isdeployed.m: New function. - * miscellaneous/module.mk (miscellaneous_FCN_FILES): Add it to - the list. Bug #32151. - - 2011-01-17 John W. Eaton - - * miscellaneous/inputname.m: Use __varval__ to lookup ".argn." - instead of "argn". - - 2011-01-16 Ben Abbott - - * plot/print.m: For DOS, connect the pipe to ghostscript (bug 31967), - and redirect to NUL instead of /dev/null. - - 2011-01-16 John W. Eaton - - * gethelp.cc (main): Write function name along with file name in - comment. - - 2011-01-16 David Bateman - - * plot/__go_draw_axes__.m: Use "{}" as the default font. - - 2011-01-15 Rik - - * scripts/help/doc.m, scripts/help/which.m, - scripts/miscellaneous/comma.m, scripts/miscellaneous/ls.m, - scripts/miscellaneous/paren.m, scripts/miscellaneous/semicolon.m, - scripts/pkg/pkg.m: Eliminate @deffn macros. - - 2011-01-15 John W. Eaton - - * deprecated/krylovb: Move here from linear-algebra. - * deprecated/module.mk (deprecated_FCN_FILES): - Include krylovb.m in the list. - * linear-algebra/module.mk (linear_algebra_FCN_FILES): - Remove krylovb.m from the list. - - 2011-01-14 Rik - - * general/postpad.m, general/prepad.m: Improve docstring. - - 2011-01-14 Rik - - * ploynomial/polyaffine.m: Improve docstring. - - 2011-01-14 Rik - - * general/interp1.m, general/interp2.m, polynomial/mkpp.m, - polynomial/pchip.m, polynomial/ppder.m, polynomial/ppint.m, - polynomial/ppjumps.m, polynomial/ppval.m, polynomial/spline.m, - polynomial/unmkpp.m: Improve docstrings - - 2011-01-14 Rik - - * miscellaneous/flops.m: Delete function which was unimplemented - in Octave and has been removed from Matlab since version 5. - - 2011-01-14 Rik - - * specfun/nthroot.m: Add Seealso references to docstring. - - 2011-01-14 Rik - - * miscellaneous/module.mk: Remove texas_lotto.m from build system. - - 2011-01-14 Rik - - * miscellaneous/texas_lotto.m: Remove Easter Egg function. - - 2011-01-14 John W. Eaton - - * Update copyright notices for 2011. - - 2011-01-13 Michael Godfrey - - * plot/contourc.m: Correct one argument case. - - 2011-01-12 John W. Eaton - - * strings/mat2str.m: Handle logical arguments. New tests. - Bug #32102. - - 2011-01-10 John W. Eaton - - * linear-algebra/expm.m: Validate nargin. New tests. - - 2011-01-10 John W. Eaton - - * linear-algebra/logm.m: Handle scalar and diagonal matrix - arguments specially. Call logm_pade_pf only if m > 1. New tests. - Special case suggested by Marco Caliari . - - 2011-01-10 John W. Eaton - - * general/private/__isequal__.m: Use builtin ("struct", ...) to - convert objects to a structs to avoid possible overloading of - the struct function. Bug #32071. - - 2011-01-09 Rik - - * plot/orient.m, statistics/tests/kolmogorov_smirnov_test.m, - strings/strtrunc.m: Correct failing tests due to change in - capitalization of error strings from previous changeset. - - 2011-01-09 Rik - - * audio/lin2mu.m, audio/loadaudio.m, audio/mu2lin.m, audio/saveaudio.m, - audio/wavwrite.m, deprecated/split.m, deprecated/values.m, - general/accumarray.m, general/bitcmp.m, general/cell2mat.m, - general/circshift.m, general/curl.m, general/divergence.m, - general/genvarname.m, general/interpft.m, general/interpn.m, - general/nextpow2.m, general/polyarea.m, general/repmat.m, - general/rot90.m, general/rotdim.m, general/shiftdim.m, - general/strerror.m, general/trapz.m, geometry/griddata.m, - geometry/griddata3.m, geometry/griddatan.m, geometry/rectint.m, - image/brighten.m, image/colormap.m, image/contrast.m, image/imagesc.m, - image/imfinfo.m, image/imread.m, linear-algebra/commutation_matrix.m, - linear-algebra/condest.m, linear-algebra/cross.m, - linear-algebra/duplication_matrix.m, linear-algebra/isdefinite.m, - linear-algebra/vech.m, miscellaneous/bincoeff.m, miscellaneous/cast.m, - miscellaneous/compare_versions.m, miscellaneous/fileparts.m, - miscellaneous/license.m, miscellaneous/private/__xzip__.m, - miscellaneous/substruct.m, miscellaneous/unpack.m, miscellaneous/xor.m, - optimization/sqp.m, pkg/get_forge_pkg.m, plot/backend.m, - plot/contourc.m, plot/cylinder.m, plot/hidden.m, plot/hold.m, - plot/orient.m, plot/private/__interp_cube__.m, plot/refreshdata.m, - plot/subplot.m, plot/surface.m, plot/surfnorm.m, plot/text.m, - plot/uimenu.m, polynomial/mkpp.m, polynomial/pchip.m, - polynomial/polyfit.m, polynomial/ppval.m, signal/arch_fit.m, - signal/arch_rnd.m, signal/arch_test.m, signal/arma_rnd.m, - signal/autoreg_matrix.m, signal/bartlett.m, signal/blackman.m, - signal/diffpara.m, signal/durbinlevinson.m, signal/fftfilt.m, - signal/fractdiff.m, signal/hamming.m, signal/hanning.m, signal/hurst.m, - signal/sinetone.m, signal/synthesis.m, signal/unwrap.m, - sparse/spaugment.m, specfun/factor.m, specfun/factorial.m, - specfun/legendre.m, specfun/nthroot.m, specfun/primes.m, - special-matrix/hadamard.m, special-matrix/magic.m, - statistics/distributions/betacdf.m, statistics/distributions/betainv.m, - statistics/distributions/betapdf.m, statistics/distributions/betarnd.m, - statistics/distributions/binocdf.m, statistics/distributions/binoinv.m, - statistics/distributions/binopdf.m, statistics/distributions/binornd.m, - statistics/distributions/cauchy_cdf.m, - statistics/distributions/cauchy_inv.m, - statistics/distributions/cauchy_pdf.m, - statistics/distributions/cauchy_rnd.m, - statistics/distributions/chi2cdf.m, statistics/distributions/chi2inv.m, - statistics/distributions/chi2pdf.m, statistics/distributions/chi2rnd.m, - statistics/distributions/discrete_cdf.m, - statistics/distributions/discrete_inv.m, - statistics/distributions/discrete_pdf.m, - statistics/distributions/discrete_rnd.m, - statistics/distributions/empirical_cdf.m, - statistics/distributions/empirical_inv.m, - statistics/distributions/empirical_pdf.m, - statistics/distributions/empirical_rnd.m, - statistics/distributions/expcdf.m, statistics/distributions/expinv.m, - statistics/distributions/exppdf.m, statistics/distributions/exprnd.m, - statistics/distributions/fcdf.m, statistics/distributions/finv.m, - statistics/distributions/fpdf.m, statistics/distributions/frnd.m, - statistics/distributions/gamcdf.m, statistics/distributions/gaminv.m, - statistics/distributions/gampdf.m, statistics/distributions/gamrnd.m, - statistics/distributions/geocdf.m, statistics/distributions/geoinv.m, - statistics/distributions/geopdf.m, statistics/distributions/geornd.m, - statistics/distributions/hygecdf.m, statistics/distributions/hygeinv.m, - statistics/distributions/hygepdf.m, statistics/distributions/hygernd.m, - statistics/distributions/kolmogorov_smirnov_cdf.m, - statistics/distributions/laplace_rnd.m, - statistics/distributions/logistic_rnd.m, - statistics/distributions/logncdf.m, statistics/distributions/logninv.m, - statistics/distributions/lognpdf.m, statistics/distributions/lognrnd.m, - statistics/distributions/nbincdf.m, statistics/distributions/nbininv.m, - statistics/distributions/nbinpdf.m, statistics/distributions/nbinrnd.m, - statistics/distributions/normcdf.m, statistics/distributions/norminv.m, - statistics/distributions/normpdf.m, statistics/distributions/normrnd.m, - statistics/distributions/poisscdf.m, - statistics/distributions/poissinv.m, - statistics/distributions/poisspdf.m, - statistics/distributions/poissrnd.m, - statistics/distributions/stdnormal_cdf.m, - statistics/distributions/stdnormal_rnd.m, - statistics/distributions/tcdf.m, statistics/distributions/tinv.m, - statistics/distributions/tpdf.m, statistics/distributions/trnd.m, - statistics/distributions/unidrnd.m, statistics/distributions/unifcdf.m, - statistics/distributions/unifinv.m, statistics/distributions/unifpdf.m, - statistics/distributions/unifrnd.m, statistics/distributions/wblcdf.m, - statistics/distributions/wblinv.m, statistics/distributions/wblpdf.m, - statistics/distributions/wblrnd.m, statistics/distributions/wienrnd.m, - statistics/models/logistic_regression.m, statistics/tests/anova.m, - statistics/tests/chisquare_test_homogeneity.m, - statistics/tests/cor_test.m, statistics/tests/f_test_regression.m, - statistics/tests/hotelling_test.m, statistics/tests/hotelling_test_2.m, - statistics/tests/kolmogorov_smirnov_test.m, - statistics/tests/kolmogorov_smirnov_test_2.m, - statistics/tests/manova.m, statistics/tests/mcnemar_test.m, - statistics/tests/prop_test_2.m, statistics/tests/sign_test.m, - statistics/tests/t_test.m, statistics/tests/t_test_2.m, - statistics/tests/t_test_regression.m, statistics/tests/u_test.m, - statistics/tests/var_test.m, statistics/tests/welch_test.m, - statistics/tests/wilcoxon_test.m, statistics/tests/z_test.m, - statistics/tests/z_test_2.m, strings/blanks.m, strings/index.m, - strings/strtrunc.m, strings/validatestring.m, time/addtodate.m, - time/datenum.m, time/datetick.m, time/datevec.m: Use uppercase for - variable names in error() strings to match Info documentation. - - * general/interp2.m, image/imshow.m, image/ind2rgb.m, - image/saveimage.m, io/dlmwrite.m, io/strread.m, io/textscan.m, - linear-algebra/expm.m, linear-algebra/krylov.m, linear-algebra/logm.m, - miscellaneous/delete.m, miscellaneous/run.m, plot/__marching_cube__.m, - sparse/bicgstab.m, sparse/cgs.m, strings/strmatch.m, - testfun/rundemos.m, testfun/runtests.m: Rewrite error string - - * @ftp/ftp.m, help/gen_doc_cache.m, miscellaneous/unix.m, - plot/__gnuplot_open_stream__.m, plot/private/__add_default_menu__.m, - polynomial/ppder.m, polynomial/ppint.m, polynomial/ppjumps.m, - signal/periodogram.m: Correct use of @deftypefn macro - - * miscellaneous/paren.m: Space @deffnx macro for readability - - 2011-01-09 Rik - - * general/arrayfun.m, general/blkdiag.m, general/structfun.m, - image/imagesc.m, linear-algebra/cond.m, linear-algebra/condest.m, - linear-algebra/expm.m, linear-algebra/logm.m, - linear-algebra/onenormest.m, linear-algebra/qzhess.m, - optimization/glpk.m, optimization/glpkmex.m, polynomial/poly.m, - sparse/gplot.m, sparse/pcg.m, sparse/pcr.m, sparse/spaugment.m, - sparse/spdiags.m, sparse/svds.m: Use uppercase 'A' to refer to matrix - argument. - - * io/dlmwrite.m: Use uppercase 'M' to refer to matrix argument. - - * io/textscan.m: Use uppercase 'C' to refer to Cell Array output. - Improve docstring. - - * signal/unwrap.m: Use 'x' instead of 'a' for vector input argument. - - 2011-01-09 Rik - - * general/bicubic.m, general/nargchk.m, general/nargoutchk.m, - linear-algebra/krylov.m, linear-algebra/krylovb.m, - linear-algebra/normest.m, linear-algebra/null.m, linear-algebra/orth.m, - linear-algebra/rank.m: Use common names for variables in documentation - and code. - - 2011-01-09 Rik - - * audio/loadaudio.m, audio/mu2lin.m, audio/saveaudio.m, - general/accumdim.m, general/bitget.m, general/bitset.m, general/del2.m, - general/isequal.m, general/isequalwithequalnans.m, general/logspace.m, - general/repmat.m, general/strerror.m, general/structfun.m, - geometry/delaunayn.m, geometry/dsearchn.m, image/ind2gray.m, - image/ind2rgb.m, image/rgb2ind.m, io/csvread.m, io/csvwrite.m, - linear-algebra/rref.m, linear-algebra/subspace.m, - linear-algebra/trace.m, miscellaneous/dir.m, miscellaneous/dos.m, - miscellaneous/menu.m, miscellaneous/perl.m, miscellaneous/unix.m, - path/savepath.m, plot/allchild.m, plot/diffuse.m, plot/fplot.m, - plot/refreshdata.m, plot/specular.m, plot/subplot.m, - polynomial/polyreduce.m, set/ismember.m, signal/arch_fit.m, - signal/arch_rnd.m, signal/arch_test.m, signal/diffpara.m, - signal/fftfilt.m, signal/filter2.m, signal/sinetone.m, - signal/spectral_xdf.m, signal/stft.m, signal/synthesis.m, - sparse/spfun.m, sparse/spones.m, sparse/spstats.m, sparse/treelayout.m, - sparse/treeplot.m, specfun/isprime.m, - statistics/distributions/expcdf.m, statistics/distributions/expinv.m, - statistics/distributions/exppdf.m, statistics/distributions/exprnd.m, - statistics/distributions/poisscdf.m, - statistics/distributions/poissinv.m, - statistics/distributions/poisspdf.m, - statistics/distributions/poissrnd.m, - statistics/tests/chisquare_test_independence.m, - statistics/tests/cor_test.m, statistics/tests/f_test_regression.m, - statistics/tests/t_test_regression.m, strings/base2dec.m, - strings/dec2base.m, strings/regexptranslate.m, strings/strjust.m, - strings/strmatch.m, time/asctime.m, time/datenum.m: - Use common names for variables in documentation and code. - - * @ftp/ascii.m, @ftp/binary.m, @ftp/cd.m, @ftp/close.m, @ftp/delete.m, - @ftp/dir.m, @ftp/ftp.m, @ftp/mget.m, @ftp/mkdir.m, @ftp/mput.m, - @ftp/rename.m, @ftp/rmdir.m, general/chop.m, geometry/dsearch.m, - signal/spencer.m, specfun/primes.m, time/etime.m: Use common names for - variables in documentation and code. Improve docstring - - * elfun/acot.m, elfun/acoth.m, elfun/acsc.m, elfun/acsch.m, - elfun/asec.m, elfun/asech.m, elfun/cot.m, elfun/coth.m, elfun/csc.m, - elfun/csch.m, elfun/sec.m, elfun/sech.m: Use common names for variables - in documentation and code. Change output variable to 'y' rather than - 'w'. - - * miscellaneous/bunzip2.m, miscellaneous/gunzip.m, - miscellaneous/unpack.m, miscellaneous/untar.m, miscellaneous/unzip.m: - Use common names for variables in documentation and code. Use default - on input argument to simplify input validation. - - * general/accumarray.m: Use common names for variables in - documentation, code and tests. - - * geometry/inpolygon.m: Use common names for variables in - documentation, code and tests. Improve docstring. - - * general/bitcmp.m: Use common names for variables in documentation and - code. Switch tests to %!test blocks rather than %!shared variables and - %!asserts for clarity. - - * general/int2str.m: Switch to input variable name 'n' rather than 'x'. - - * general/isdir.m: Switch to input variable name 'f' rather than 'x'. - Switch output variable to 'retval' rather than 'y'. - - * general/perror.m: Switch to input variable name 'funcname' rather - than 'name'. Use common names for variables in documentation and - code. - - * general/rot90.m: Switch to input variable name 'A' rather than 'x'. - Break very long %!assert line into multiple asserts for readability. - - * general/sortrows.m: Use common names for variables in documentation - and code. Break very long %!assert line into multiple asserts for - readability. - - * geometry/voronoin.m: Switch to input variable name 'options' rather - than 'opt'. - - * help/lookfor.m: Switch to input variable name 'arg2' rather than - 'extra'. - - * image/brighten.m: Switch to input variable name 'arg1' rather than - 'm'. Eliminate CamelCase in output variable 'Rmap'. - - * image/rgb2hsv.m: Switch to variable name 'hsv_map' rather than - 'hsval'. - - * image/saveimage.m: Switch to input variable name 'fname', rather than - 'file'. Use common names for variables in documentation and code. - - * io/strread.m, io/textread.m, io/textscan.m: Switch to input variable - name 'format' rather than 'formatstr' - - * miscellaneous/run.m: Switch to input variable 'script' rather than - 's'. - - * miscellaneous/ver.m: Switch to input variable 'package' rather than - 'pack'. Use default on input argument to simplify input validation. - - * plot/saveas.m: Switch to input variable 'fmt' rather than 'ext'. - Improve docstring. - - * plot/title.m: : Switch to input variable 'string' rather than 'title'. - - * plot/uigetdir.m: Improve docstring. Re-order input validation. - Eliminate unnecessary use of cellfun to compare strings. - - * polynomial/polyder.m, polynomial/polyderiv.m: Switch ouput variable - name 'r' to 'd'. Improve docstring. - - * polynomial/polyint.m: Switch input variable name 'c' to 'p'. - - * signal/fftconv.m: Switch input variable names to 'x','y' instead of - 'a','b' for vectors. - - * signal/fftshift.m, signal/ifftshift.m: Switch input variable name to - 'x' instead of 'v'. - - * sparse/etreeplot.m: Switch input variable name to 'A' rather than - 'tree' for matrix. - - * specfun/factor.m: Use common names for variables in documentation and - code. Uncomment and re-instate test code. - - * statistics/distributions/cauchy_cdf.m, - statistics/distributions/cauchy_inv.m, - statistics/distributions/cauchy_pdf.m, - statistics/distributions/cauchy_rnd.m: Switch to input variables - 'location','scale' rather than 'lambda','sigma'. - - * statistics/tests/manova.m: Switch to input variable 'x' rather than - 'y'. - - * strings/untabify.m: Switch to input variable 'dblank' rather than - 'db'. - - * time/datestr.m: Improve docstring - - * time/weekday.m: Switch to input variable name 'format' rather than - 'form'. Improve docstring. - - 2011-01-08 John Hunt - - * plot/legend.m, plot/private/__plt__.m: legend with more than two - inline keys (bug 31991). Add/modifyy demos. - - 2011-01-07 John W. Eaton - - * general/private/__isequal__.m: Compare objects as if they are - structures. Bug #32071. - - 2011-01-07 John W. Eaton - - * linear-algebra/logm.m: Style fixes. - - 2011-01-06 John W. Eaton - - * optimization/optimset.m: Remove "i" option from call to - lookup. Bug #31392. - - 2011-01-05 Rik - - * general/isa.m: Add tests against logical values. - - 2011-01-04 Rik - - * testfun/demo.m: Add newline to error output for better formatting. - - 2011-01-03 Rik - - * statistics/base/center.m, statistics/base/corrcoef.m, - statistics/base/kendall.m, statistics/base/mean.m, - statistics/base/meansq.m, statistics/base/skewness.m, - statistics/base/studentize.m, statistics/base/var.m, - statistics/base/run_count.m, statistics/base/ranks.m: Improve input - validation. Add function tests. Improve docstring. - - * statistics/base/moment.m, statistics/base/prctile.m, - statistics/base/spearman.m, statistics/base/std.m : Improve input - validation. Add input validation tests. Improve docstring. - - * statistics/base/cloglog.m: Add function tests. - - * statistics/base/cor.m: Replace with call to corrcoef, now only an - alias. - - * statistics/base/cov.m: Add normalization option. Improve input - validation. Add function tests. Improve docstring. - - * statistics/base/cut.m: Use lowercase variable names. Improve - docstring. - - * statistics/base/histc.m, statistics/base/median.m: Use same variable - name in documentation and in function. Add input validation tests. - Improve docstring. - - * statistics/base/iqr.m, statistics/base/mode.m: Add input validation - tests. Improve docstring. - - * statistics/base/kurtosis.m: Return same class as input variable. Add - input validation tests. Improve docstring. - - - * statistics/base/logit.m, statistics/base/range.m: Add function tests. - Improve docstring. - - * statistics/base/mahalanobis.m: Use lower case variable names. - Improve input validation. Add input validation tests. - - * statistics/base/ols.m, statistics/base/gls.m: Use isargout to only - calculate necessary outputs. Use lowercase variable names. Add - functional tests. Improve docstring. - - * statistics/base/ppplot.m: Add input validation tests. - - * statistics/base/qqplot.m: Add ability to call "XXXinv" or "XXX_inv" - functions. Improve input validation. Improve docstring. - - * statistics/base/quantile.m: Use defaults for input arguments to - simplify code. Improve input validation. Add input validation tests. - Improve docstring. - - * statistics/base/statistics.m: Use lowercase variable names. Improve - input validation. Add input validation tests. Improve docstring. - - * statistics/base/table.m: Switch from deprecated function 'values' to - 'unique'. Add input validation tests. Improve docstring. - - 2011-01-02 Ben Abbott - - * plot/legend.m: Only one legend per axes (bug 32022). Add / modify - demos to test addional features. - - 2010-12-31 Rik - - * general/is_duplicate_entry.m , general/isdir.m, general/isscalar.m, - general/issquare.m, general/isvector.m, linear-algebra/isdefinite.m, - linear-algebra/ishermitian.m, linear-algebra/issymmetric.m, - miscellaneous/isappdata.m, miscellaneous/ismac.m, miscellaneous/ispc.m, - miscellaneous/isunix.m, plot/isfigure.m, plot/ishold.m, plot/isprop.m, - set/ismember.m, specfun/isprime.m, strings/isletter.m, - time/is_leap_year.m : Improve docstring - * general/isa.m: Improve docstring. Change function variable name to - match documentation variable name. - * strings/isstrprop.m: Improve docstring. Change function variable - name to match documentation variable name. Add new test cases. - - 2010-12-31 Rik - - * plot/module.mk: Add isprop.m to list of function files for Automake. - - 2010-12-31 Kai Habel - - * general/curl.m, general/divergence.m: New functions. - * general/module.mk: Add new file to list. - * miscellaneous/unimplemented.m: Remove curl and divergence from list. - - 2010-12-31 Ben Abbott - - * plot/scatter3.m: Grid on by default for 3D plots. - - 2010-12-30 Ben Abbott - - * plot/contour3.m, plot/mesh.m, plot/meshc.m, plot/surfc.m: Grid on - by default for 3D plots. - * plot/surfc.m, plot/meshc.m: Place contour for meshc/surfc at - zlim(1). - * plot/__go_draw_axes__.m: Tweak vertical alignment of text objects - for gnuplot to favor eps/ps output. - - 2010-12-29 Ben Abbott - - * plot/text.m: New demo for 3D plot and text with verticalalignment. - * plot/__go_draw_axes__.m: Enable vertical alignment of text objects - for gnuplot. - - 2010-12-28 Ben Abbott - - * plot/private/__plt__.m: Fix to allow inline legend keys. Bug 31991. - - 2010-12-28 Rik - - * image/autumn.m, image/bone.m, image/cool.m, image/copper.m, - image/flag.m, image/gray.m, image/hot.m, image/hsv.m, image/jet.m, - image/ocean.m, image/pink.m, image/prism.m, image/rainbow.m, - image/spring.m, image/summer.m, image/white.m, image/winter.m: Use - same variable name for documentation and function call. Change demo - code to explicitly use colormap size. Update docstring. - - * image/gmap40.m: Use same variable name for documentation and function - call. Change demo code to use colormap size of 6 rather than 64. - Update docstring. - - 2010-12-28 Ben Abbott - - * plot/legend.m: Add demo to legend for inline key. - - 2010-12-27 Ben Abbott - - * plot/text.m: Add demo for text rotation and alignment. - - 2010-12-26 Michael Godfrey - - * specfun/legendre.m: Add @tex blocks to docstring. - - 2010-12-24 Rik - - * testfun/test.m: Use 'Command' for deftype in docstring. - - 2010-12-24 Rik - - * audio/setaudio.m: Re-write docstring. - - 2010-12-23 Soren Hauberg - - * signal/detrend.m: Also accept polynomial order as a string - ("constant" or "linear") for compatibility with Matlab. - - 2010-12-22 Konstantinos Poulios - - * plot/private/__axis_label__.m: Trigger fltk graphics redraw - immediately after setting an axis label. - - 2010-12-22 John W. Eaton - - * optimization/optimset.m, optimization/optimget.m, - optimization/__all_opts__.m: Consistently use lower case for - storing and searching option names. - - 2010-12-22 John W. Eaton - - * statistics/base/skewness.m: Make returned value have the same - class as the input. - - 2010-12-21 John W. Eaton - - * time/datevec.m: Style fixes. - - 2010-12-20 Ben Abbott - - * plot/__fltk_print__.m: Update figure for FLTK printing. Bug #31884. - - 2010-12-19 John W. Eaton - - * miscellaneous/run.m: Use source to execute script. - - 2010-12-18 Ben Abbott - - * plot/view.m: Return azimuth and elevation for nargin == 0. - - 2010-10-28 Rik - - * deprecated/module.mk, sparse/module.mk, deprecated/sphcat.m, - deprecated/spvcat.m: Deprecate sphcat and spvcat functions. - - 2010-12-17 John W. Eaton - - * plot/comet3.m: New function. - * plot/module.mk: Add comet3.m to the list - * miscellaneous/unimplemented.m: Remove comet3 from the list. - - 2010-12-17 John W. Eaton - - * plot/comet.m: Use __plt_get_axis_arg__ to extract axis - argument. Only switch to specified axis temporarily. - - 2010-12-16 Ben Abbott - - * miscellaneous/unimplemented.m: Remove isprop() from list of - unimplemented functions. - * plot/isprop.m: New function. - - 2010-12-16 Olaf Till - - * optimization/sqp.m: Fix indexing error in sqp bounds selection. - - 2010-12-14 Doug Stewart - - * plot/bar.m: Improve the docstring. - - 2010-12-14 John W. Eaton - - * plot/private/__quiver__.m: Use high contrast color black for arrows - in quiver3 plots. Bug #31802. - - 2010-12-14 Rik - - * plot/compass.m, plot/errorbar.m, plot/legend.m, plot/rose.m, - plot/scatter.m, plot/scatter3.m, plot/stairs.m: Assign data used in - demo plots for reproducibility between runs. - - 2010-12-13 Rik - - * statistics/median.m: Add NaN test case from bug #29930. - - 2010-12-13 Rik - - * general/isequalwithequalnans.m: Add test case from bug #31239. - - 2010-12-13 Ben Abbott - - * plot/__print_parse_opts__.m: Fix indexing bug for varargin. - Bug #31862. - - 2010-12-13 Rik - - * statistics/distributions/betapdf.m: Add test for large values of - alpha and beta. - - 2010-12-13 Rik - - * strings/strmatch.m: Add test with null search pattern. - - 2010-12-13 Doug Stewart - - * plot/hist.m: Improved the help section. - - 2010-12-13 Kai Habel - - * plot/private/__add_default_menu__.m: New function. - * plot/figure.m: Call __add_default_menu__ function. - * plot/module.mk: Add new file to list. - - 2010-12-13 Rik - - * optimization/sqp.m: Change docstring to refer to x0 as the initial - seed vector. - - 2010-12-13 Olaf Till - - * optimization/sqp.m: Remove never violated Inf bounds from - computation in function for inequality constraints (bug - #31742). Remove non-functional check for inequality constraints - being +Inf in each iteration. - - 2010-12-12 Jaroslav Hajek - - * optimization/optimget.m: Use explicit toupper conversion rather than - lookup(..., "i"). - * optimization/optimset.m: Ditto. - * miscellaneous/parseparams.m: Ditto. - - 2010-12-12 Kai Habel - - * plot/view.m: Fix bugs with respect to number if inputs and argument - handling. - - 2010-12-12 Kai Habel - - * plot/view.m: Make view more compatible. Allow cartesian - coordinates and axes handle arguments. - - 2010-12-10 Ben Abbott - - * io/strread.m: Don't require space between format specifiers. - - 2010-12-10 Rik - - * testfun/speed.m: Eliminate line continuation in function definition. - - 2010-12-10 Kai Habel - - * plot/private/__pie__.m: Add missing slice option to pie and - pie3 function. - * plot/pie.m, plot/pie3.m: Add new demo. - - 2010-12-10 Thorsten Meyer - - * statistics/tests/kolmogorov_smirnov_test.m: Add tests. - - 2010-12-09 John W. Eaton - - * plot/private/__pie__.m: Provide diagnositc for invalid - optional arguments. Use caller name instead of __pie__ in error - messages. - - 2010-12-09 John W. Eaton - - * statistics/tests/kolmogorov_smirnov_test.m: Try both DIST_cdf - and DISTcdf functions. Always use feval to call CDF function. - Bug #31838. - - 2010-12-09 John W. Eaton - - * plot/__go_draw_axes__.m: Set major and grid linewidths from - axis linewidth property. Bug #31755. - - 2010-12-09 Rik - - * plot/__print_parse_opts__.m: Convert print resolution from char to - double. Fixes Bug #31834. - - 2010-12-09 Rik - - * plot/private/__pie__.m: Allow logical indices for 'explode' variable. - - 2010-12-09 Kai Habel - - * plot/pie3.m, plot/private/__pie__.m: New functions. - * plot/pie.m: Move __pie__ function to plot/private, in order to - be used by pie and pie3. - * miscellaneous/unimplemented.m: Remove pie3.m from list of - unimplemented functions. - - 2010-12-09 John W. Eaton - - * time/datestr.m: Don't call localtime (mktime (tm)) to fill in - missing elements of time strcture. Bug #31079. - - 2010-12-08 Ben Abbott - - * plot/fill.m: Fix bug that implies nextplot = "add". - * image/imshow.m: Flip y-axis. - - 2010-12-08 John W. Eaton - - * strings/strmatch.m: Avoid passing length of zero to strncmp. - Bug #31774. - - 2010-12-07 John W. Eaton - - * general/repmat.m: Handle special case of replicating scalar - using an index vector containing zeros. Bug #31775. - - 2010-12-06 Rik - - * plot/plot.m: Eliminate present tense in first sentence of docstring. - - 2010-12-06 Rik - - * plot/xlabel.m, plot/ylabel.m, plot/zlabel.m: Add additional calling - form to docstring which returns handle (h) - - 2010-12-06 Rik - - * scripts/testfun/speed.m: Overhaul documentation string. - - 2010-12-03 Ben Abbott - - * plot/private/__stem__.m: Create a baseline for each stem hggroup. - * plot/__go_draw_axes__.m: If not set, then unset the gnuplot - {tblr}margins. Needed when using subplots with differing - activepositionproperty. - - 2010-12-03 Konstantinos Poulios - - * plot/pbaspect.m, plot/daspect.m: Fix handling of input array of - length 2. - - 2010-12-02 Ben Abbott - - * image/image.m: Only flip y-axis if nextplot property equal - "replace". Fixes bug 31745. - * plot/contour3.m: Modify demo to avoid clipping mesh. Fixes bug - 31744. - * plot/fill.m: Allow multiple filled polygons. Fixes bug 31750. - * plot/subplot.m: Add suppport for "align" and "replace" options. - Partial fix for bug 31610. - - 2010-11-26 John W. Eaton - - * pkg/pkg.m: Append directories to EXEC_PATH instead of - prepending them. Use pathsep instead of ":". - - * miscellaneous/copyfile.m, miscellaneous/movefile.m, - miscellaneous/ls_command.m, plot/__print_parse_opts__.m: - Search PATH for programs, not EXEC_PATH. - - * plot/print.m: Refer to PATH, not EXEC_PATH in error messages. - * plot/__print_parse_opts__.m: Likewise. - - 2010-11-25 Kai Habel - - * (plot/uimenu.m): Simplify code, add further check. - * (plot/uigetdir.m, plot/uigetfile.m, plot/uiputfile.m): - Fix error messages. - - 2010-11-25 John W. Eaton - - * time/datetick.m: Add missing semicolon. - - 2010-11-21 Rik - - * optimization/sqp.m: Use correct stopping tolerance in documentation. - - 2010-11-21 Kai Habel - - * (plot/uigetdir.m, plot/private/__fltk_file_filter__.m:): Check if - file argument is a valid path, don't use fileparts in this case. - - 2010-11-21 Ben Abbott - - * plot/__go_draw_axes__.m: Fix plot titles so they are visible for - gnuplot 4.4.x (31711). - * general/cell2mat.m: Return empty matrix for empty cell. - - 2010-11-21 Kai Habel - - * (plot/uigetfile.m, plot/uiputfile.m): Set default directory to pwd. - - 2010-11-21 Kai Habel - - * plot/uigetdir.m, plot/uigetfile.m, plot/uiputfile.m, - plot/private/__fltk_file_filter__.m: New files. - * plot/module.mk: Add new files. - * miscellaneous/unimplemented.m: Remove uigetdir.m, uigetfile.m, - and uiputfile.m from list of unimplemented functions. - - 2010-11-20 Rik - - * plot/gnuplot_drawnow.m: Remove spurious line causing 'ans=1' to be - returned when printing plots. - - 2010-11-19 Ben Abbott - - * plot/__gnuplot_has_feature__.m: Since there is not gnuplot 4.3.x - release, replace reference to version 4.3 with 4.4. - - 2010-11-18 Ben Abbott - - * plot/text.m: Ensure text position property is set after units - property. - * plot/__go_draw_axes__.m: Fix bug setting zscale to yscale (31693). - - 2010-11-18 Christos Dimitrakakis - - * statistics/distributions/betapdf.m: Use lgamma to compute - normalising constant in log space in order to handle large - parameters a and b. Ensure correct values at x == 0 or x == 1. - - 2010-11-18 Ben Abbott - - * plot/__print_parse_opts__.m: For tests, allow __print_parse_opts__ - to run with no inputs. - - 2010-11-17 Ben Abbott - - * general/subsindex.m: Fix typo in doc-string. - - 2010-11-17 John W. Eaton - - * strings/strchr.m: Style fixes. - - 2010-11-17 Kim Hansen - - * strings/strchr.m: New tests. - - 2010-11-16 Ben Abbott - - * miscellaneous/unimplemented.m: Update unimplemented functions list. - - 2010-11-15 Rik - - * plot/saveas.m: Add function name to error messages. Use semicolons - to prevent unnecessary output. Use common terms 'ext' for extension - and 'filename' for filename in docstring. - - 2010-11-15 Kai Habel - - * plot/saveas.m: New file. - * plot/module.mk: Add saveas.m - * plot/__print_parse_opts__.m: Parse arguments correctly when first - argument is a figure handle. - * plot/print.m: Add saveas to seealso entry. - - 2010-11-14 Michael Goffioul - - * plot/print.m: Use "del" instead of "delete" in DOS shell, and - replace forward slashes with backslashes. - * plot/__gnuplot_print__.m: Likewise. - - 2010-11-14 Jaroslav Hajek - - * optimization/__all_opts__.m: Ensure that the array is always - case-insensitively sorted. - - 2010-11-13 John W. Eaton - - * plot/gnuplot_drawnow.m (have_non_legend_axes): New function. - Use it to avoid errors if there are no axes. - * plot/legend.m: Avoid indexing beyond end of varargin array. - - 2010-11-10 John W. Eaton - - * gethelp.cc: Eliminate special case for __DECCXX. - - 2010-11-10 John W. Eaton - - * scripts/deprecated/dispatch.m: Don't set warning state in tests. - - 2010-11-10 John W. Eaton - - * deprecated/dispatch.m: Deprecate dispatch function. - * deprecated/module.mk (deprecated_FCN_FILES): Add it to the list. - - 2010-11-09 John W. Eaton - - * help/help.m: Call missing_function_hook with output argument - and print message here. - * miscellaneous/unimplemented.m: Return message if nargout > 0. - Fixes bug #31597. - - 2010-11-08 Ben Abbott - - * plot/__go_draw_axes__.m: Check for z/y/zdata before converting - negative values to NaNs. Bug fix for changeset 11201. - * plot/daspect.m: Fix demo using both daspect and pbaspect. - - 2010-11-08 David Bateman - - * plot/__go_draw_axes__.m: Remove foreground color earlier. - * plot/__go_draw_figure__.m: Don't set the foreground color here. - - 2010-11-08 Rik - - * sparse/sprand.m: Add input validation to function. - - 2010-11-08 Ben Abbott - - * plot/private/__bar__.m: Permit bar() to be called with scalar inputs. - * plot/__go_draw_axes__.m, plot/axis.m: Set proper tight axis limits - for log scale. - - 2010-11-07 David Bateman - - * plot/legend.m: Remove call to drawnow. - - * plot/__go_draw_axes__.m: Pass the legend axes as a structure. - Test whether the legend axis has any children before using it. - * plot/__go_draw_figure.m: Setup a fake axis to handle multi-parent - legend axes and delete this fake axiss when we're done with it. - * plot/gnuplot_drawnow.m: Don't cound legend axes when decidong if - multiplot should be used or not. - * plot/legend.m: Handle correctly plotyy as a multi-parented axis. - Reuse existing legend axis if possible. Setup listeners to propagate - changes in the lines to the legend. Setup listeners that handle the - properties that need to legend to be recreated. - * plot/plotyy.m: Cross-references the axes of the plotyy in the userdata - of the axes. - - 2010-11-07 Konstantinos Poulios - - * plot/colorbar.m: Make colorbar function aware of dataaspect settings. - - 2010-11-06 Marco Caliari - - * polynomial/spline.m: Fit a parabola for input with 3 - elements (bug #31098). - - 2010-11-04 Rik - - * plot/__fltk_ginput__.m: Use semicolons to prevent internal - function evaluations being output to screen. - - 2010-11-04 Rik - - * plot/module.mk: Add __fltk_ginput__.m to list of scripts - - 2010-11-04 Rik - - * Makefile.am: Update check-m-sources target to include generated - function files. - - 2010-11-04 Rik - - * general/accumarray.m, general/accumdim.m, general/blkdiag.m, - general/cell2mat.m, general/common_size.m, - general/private/__isequal__.m, general/private/__splinen__.m, - geometry/voronoi.m, io/textscan.m, miscellaneous/private/__xzip__.m, - pkg/pkg.m, plot/axis.m, plot/pareto.m, plot/private/__patch__.m, - statistics/base/mode.m, strings/deblank.m, strings/strcat.m, - strings/strmatch.m, strings/strtrim.m, strings/untabify.m: - Reverse previous changeset. Use all lower case for "uniformoutput" - option. - - 2010-11-03 Rik - - * general/accumdim.m, general/cell2mat.m, general/common_size.m, - general/structfun.m, pkg/pkg.m, strings/untabify.m: Use CamelCase - for 'UniformOutput' option to cellfun. - - 2010-11-03 Rik - - * scripts/plot/plotyy.m, scripts/plot/xlim.m, scripts/plot/ylim.m, - scripts/plot/zlim.m: Fix typos in docstring and demo string. - - 2010-11-03 Rik - - * general/common_size.m, miscellaneous/private/__xzip__.m, - miscellaneous/what.m, plot/pareto.m, plot/private/__patch__.m: - Use function handle as input to cellfun rather than quoted function - name or anonymous function wrapper. - - 2010-11-03 Konstantinos Poulios - - * plot/axis.m: Making 'axis equal' equivalent to 'daspect([1,1,1])'. - - 2010-11-03 Konstantinos Poulios - - * plot/private/__actual_axis_position__.m: Remove temporary - calculation of plotboxratio for the gnuplot backend when - dataaspectratiomode, xlimmode and ylimmode are all set to manual. - Now this case is handled in src/graphics.cc . - - 2010-11-03 Konstantinos Poulios - - * plot/axis.m: Leave zlim unchanged during "axis tight" on 2D plots - - 2010-11-03 Ben Abbott - - * plot/private/__patch__.m: Don't index an empty array; bug introduced - by changeset 11175. - - 2010-11-03 Ben Abbott - - * miscellaneous/getappdata.m, miscellaneous/isappdata.m, - miscellaneous/rmappdata.m, miscellaneous/setappdata.m: - Add new appdata function. - - 2010-11-01 David Bateman - - * plot/__private__/__contour__.m: Use __go_patch__ rather than patch - to avoid the cost of the patch callback functions. Ensure that the - properties that are normally set by patch are correctly set in the - call to __go_patch__. - - 2010-11-01 Ben Abbott - - * plot/axis.m: Exclude hggroup {x,y,z}data properties when determing - tight axis limits. - - 2010-10-31 Rik - - * strings/base2dec.m, strings/bin2dec.m, strings/dec2base.m, - strings/dec2bin.m, strings/dec2hex.m, strings/hex2dec.m: - Improve docstrings, use more descriptive variable names, - add more tests for functions used to convert between bases. - - 2010-10-31 Konstantinos Poulios - - * plot/__go_draw_axes__.m: Removing deprecated code handling the case - of both plotboxaspectratiomode and dataaspectratiomode set to manual - for the gnuplot backend. Now this case is handled already in - src/graphics.cc where xlim, ylim, zlim are recalculated if necessary. - - 2010-10-30 Gunnar FarnebÀck - - * strings/dec2base.m: Update algorithm to handle numbers up to 2^64-1. - - 2010-10-28 Rik - - * deprecated/module.mk, signal/module.mk, deprecated/autocov.m, - deprecated/autocor.m: Deprecate autocov and autocor functions. - - 2010-10-27 David Bateman - - * plot/__go_draw_axes__.m: Don't attempt to plot patch outlines if - the marker property is set to none. - - 2010-10-28 Ben Abbott - - * plot/daspect.m, plot/pbaspect.m: Add demos setting both data and - plotbox aspect ratios. - - 2010-10-27 David Bateman - - * plot/private/__patch__.m (setdata, setvertexdata): If argments are - repeated, take the last argument only into account. Set cdata and - facevertexcdata properties always. - - 2010-10-26 Kai Habel - - * plot/uimenu.m: Add simple demo - - 2010-10-25 David Bateman - - * statistics/distributions/discrete_pdf.m: Sort values before calling - the lookup function. - - 2010-10-25 Kai Habel - - * plot/uimenu.m: New function - * plot/__go_draw_figure__.m: Ignore uimenu objects for gnuplot - backend - * plot/module.mk (plot_FCN_FILES): Add it to the list. - - 2010-10-24 Rik - - * miscellaneous/compare_versions.m, plot/ylabel.m, plot/ylim.m, - plot/zlabel.m, plot/zlim.m: Docstring improvements. - - 2010-10-24 Rik - - * specfun/module.mk, deprecated/module.mk, deprecated/betai.m, - deprecated/gammai.m, deprecated/is_global.m: Deprecate betai, - gammai, and is_global functions. - - 2010-10-23 John W. Eaton - - * strings/untabify.m, strings/strjust.m, io/strread.m: - Docstring fixes. - - 2010-10-23 John W. Eaton - - * statistics/distributions/nbinrnd.m: Use | instead of || in - argument to find. - - * deprecated/intwarning.m, general/bicubic.m, general/postpad.m, - general/prepad.m, general/private/__splinen__.m, - general/shift.m, miscellaneous/swapbytes.m, pkg/pkg.m, - plot/clabel.m, plot/colorbar.m, plot/fill.m, plot/legend.m, - plot/plotmatrix.m, plot/plotyy.m, plot/private/__clabel__.m, - plot/private/__ezplot__.m, plot/private/__quiver__.m, - plot/subplot.m, signal/unwrap.m, statistics/base/histc.m, - statistics/base/iqr.m, statistics/base/kurtosis.m, - statistics/base/mode.m, statistics/base/ranks.m, - statistics/base/run_count.m, statistics/base/skewness.m, - statistics/base/statistics.m, statistics/base/studentize.m, - statistics/distributions/exprnd.m, - statistics/distributions/frnd.m, - statistics/distributions/geornd.m, - statistics/distributions/lognrnd.m, - statistics/distributions/nbinrnd.m, - statistics/distributions/poissrnd.m, - statistics/distributions/trnd.m, - statistics/distributions/wblrnd.m, strings/strcat.m, - time/datestr.m, time/datetick.m: Break lines before && and ||, - not before. - - 2010-10-23 John W. Eaton - - * io/strread.m: Docstring fixes. - - 2010-10-23 John W. Eaton - - * io/is_valid_file_id.m: Ensure that FID is a scalar before - calling fopen to get info. New tests. - - 2010-10-23 John W. Eaton - - * io/is_valid_file_id.m: New function. - * io/module.mk (io_FCN_FILES): Add it to the list. - - 2010-10-23 Ben Abbott - - * io/textscan.m, miscellaneous/unimplemented.m, io/module.mk: - New function. - - 2010-10-22 Ben Abbott - - * plot/legend.m: Trivial fix to allow legend handle to be returned. - - 2010-10-21 John W. Eaton - - * statistics/base/quantile.m: Fix typo in previous change. - - 2010-10-21 Rik - - * statistics/distributions/wblcdf.m, statistics/distributions/wblinv.m, - statistics/distributions/wblpdf.m, statistics/distributions/wblrnd.m: - Fix reversed documentation for shape and scale parameters. - - 2010-10-21 Ben Abbott - - * io/strread.m: Improve compatibility with Matlab. - - 2010-10-21 John W. Eaton - - * general/private/__isequal__.m: Style fixes. - - 2010-10-20 Iain Murray - - * general/private/__isequal__.m: Fix bug #31239 where - isequalwithequalnans is incorrect. - - 2010-10-20 Rik - - * polynomial/conv.m: Remove redundant test. - * signal/fftconv.m: Add tests used by conv.m code. - - 2010-10-20 Olaf Till - - * optimization/optimset.m: Use cell2struct instead of struct to - handle cell arrays as options. - - 2010-10-20 John W. Eaton - - * io/strread.m, optimization/sqp.m, plot/daspect.m, - plot/pbaspect.m, plot/gnuplot_drawnow.m, plot/isocolors.m, - plot/isonormals.m, plot/legend.m, plot/print.m, - plot/private/__interp_cube__.m, plot/__fltk_print__.m, - plot/__gnuplot_print__.m, plot/__print_parse_opts__.m, - statistics/base/quantile.m: Style fixes. - - 2010-10-19 John W. Eaton - - * strings/module.mk (strings_FCN_FILES): Include - strings/untabify.m in the list. - * strings/untabify.m: Escape { and } characters in docstring. - - 2010-10-19 Ben Abbott - - * strings/strjust.m: Add "untabify" and "strrep" to @seealso{} in the - doc-string. - - 2010-10-18 Thorsten Meyer - - * general/gradient.m, linear-algebra/normest.m, - plot/__gnuplot_print__.m, plot/__print_parse_opts__.m, - plot/daspect.m, plot/gnuplot_drawnow.m, plot/pbaspect.m, - plot/print.m, signal/periodogram.m: - Style fix, replace end by endfor. - - 2010-10-18 Marco Caliari - - * polynomial/polyval.m: Use Horner's method. - - 2010-10-18 John W. Eaton - - * plot/__go_draw_axes__.m: Always use gnuplot to display images. - * image/image.m: Delete references to image_viewer. - * image/image_viewer.m: Delete obsolete function. - * image/module.mk (image_FCN_FILES): Remove image/image_viewer.m - from the list. - - 2010-10-18 Gunnar Farneback - - * general/interp2.m: Fix input checks for cubic - interpolation (bug #31352, part 1). - - 2010-10-18 Ben Abbott - - * plot/print.m: Add examples to the docstring. - - 2010-10-18 John W. Eaton - - * plot/private/__errplot__.m: Remove debugging statement from - previous change. - - 2010-10-17 John W. Eaton - - * miscellaneous/edit.m: Use version 3 in GPL notice. - - * @ftp/ascii.m, @ftp/binary.m, @ftp/cd.m, @ftp/close.m, - @ftp/delete.m, @ftp/dir.m, @ftp/display.m, @ftp/ftp.m, - @ftp/loadobj.m, @ftp/mget.m, @ftp/mkdir.m, @ftp/mput.m, - @ftp/rename.m, @ftp/rmdir.m, @ftp/saveobj.m, - help/__makeinfo__.m, help/__strip_html_tags__.m, - help/gen_doc_cache.m, help/get_first_help_sentence.m, - help/help.m, help/lookfor.m, help/print_usage.m, - help/private/__additional_help_message__.m, help/type.m, - help/which.m, io/fileread.m, io/strread.m, io/textread.m, - pkg/get_forge_pkg.m, plot/__gnuplot_has_feature__.m, - plot/__gnuplot_open_stream__.m, plot/__marching_cube__.m, - plot/cla.m, plot/comet.m, plot/daspect.m, plot/isocolors.m, - plot/isonormals.m, plot/isosurface.m, plot/pbaspect.m, - plot/private/__interp_cube__.m, plot/private/__ghostscript__.m, - plot/private/__tight_eps_bbox__.m, - plot/private/__gnuplot_has_terminal__.m, - polynomial/polyaffine.m, sparse/svds.m, strings/strsplit.m: - Use Octave copyright notice instead of generic "This program is - free software" notice. - - 2010-10-18 Ben Abbott - - * strings/untabify.m: New function to untabify text. - - 2010-10-17 Ben Abbott - - * plot/mesh.m, plot/surf.m: Include the 4th input (color) in the - docstring. - - 2010-10-16 Ben Abbott - - * plot/private/__errplot__.m, plot/errorbar.m: Allow line and marker - types to be set. - - 2010-10-14 John W. Eaton - - * special-matrix/rosser.m: New tests. - * special-matrix/wilkinson.m: Fix error message. New tests. - * special-matrix/pascal.m: Error if T is out of range. - New tests. - - 2010-10-14 John W. Eaton - - * set/unique.m: Remove check for issparse existence since it is - now a built-in function. - - 2010-10-14 Ben Abbott - - * strings/strjust.m: Clarify that justification applies to spaces and - null characters. - - 2010-10-09 Ben Abbott - - * plot/__go_draw_axes__.m: Enable linetypes for gnuplot. - - 2010-10-09 John W. Eaton - - * statistics/distributions/geornd.m, - * statistics/distributions/hygecdf.m, - * statistics/distributions/hygeinv.m, - * statistics/distributions/poissrnd.m, - * statistics/distributions/wblrnd.m: - Use || instead of | and && instead of & in IF conditions - involving scalars. - - 2010-10-09 John W. Eaton - - * plot/__fltk_ginput__.m: Use || instead of | in IF condition. - - 2010-10-08 Ben Abbott - - * image/image.m, plot/__go_draw_axes__.m: Do not store flipped image - property values when x/ydata descends. - - 2010-10-07 John W. Eaton - - * signal/periodogram.m: Fix parse errors. - - 2010-10-07 John W. Eaton - - * time/datevec.m: Use endfunction to mark end of primary - function and subfunctions. - - 2010-10-07 Rik - - * polynomial/conv.m: Improve docstring. - * signal/fftconv.m: Improve docstring and error messages. - - 2010-10-07 John W. Eaton - - * polynomial/conv.m: Handle optional third argument. New - tests. Update doc string. - - 2010-10-06 Ben Abbott - - * image/image.m: Allow x/ydata to imply a flip of the image. - Modify demos. - - 2010-10-05 Carlo de Falco - - * general/quadv.m: Fix help string and add a test for vector - valued functions. - - 2010-10-04 Shai Ayal - - * image/image.m (__img__): Use __image_pixel_size__ to calculate - limits - - 2010-09-28 John P. Swensen - - * image/imwrite.m: Call __magick_format_list__ to get list of - accepted formats. - - 2010-09-28 Rik - - * linear-algebra/logm.m, plot/legend.m, signal/periodogram.m: - Untabify scripts. - - 2010-09-27 Rik - - * io/dlmwrite.m: Replace non-POSIX '\d' regex pattern. - - * miscellaneous/edit.m, path/savepath.m, - plot/__gnuplot_get_var__.m, - plot/private/__gnuplot_has_terminal__.m, plot/refreshdata.m, - plot/whitebg.m, testfun/runtests.m, time/datestr.m: - Use single quotes for regular expression patterns when possible. - - * miscellaneous/ls.m, plot/__gnuplot_ginput__.m, - plot/__go_draw_axes__.m, plot/private/__ezplot__.m, - testfun/test.m: Remove uses of shorthand character classes - within list operators which is unsupported by POSIX regex. - - * pkg/get_forge_pkg.m: Select desired output from regexp - rather than ignoring most outputs. - - 2010-09-28 Ben Abbott - - * plot/__print_parse_opts__.m: Fix test. - - 2010-09-27 Jaroslav Hajek - - * elfun/lcm.m: Simplify. - - 2010-09-27 Ben Abbott - - * plot/__print_parse_opts__.m: Properly crop eps image and fix tests. - - * plot/__go_draw_axes__.m, plot/private/__ezplot__.m, - testfun/test.m: Remove uses of shorthand character classes - within list operators which is unsupported by POSIX regex. - - * pkg/get_forge_pkg.m: Select desired output from regexp - rather than ignoring most outputs. - - 2010-09-26 Rik - - * testfun/runtests.m (has_tests): Recode to remove requirement for PCRE. - Bug #31025. - - 2010-09-25 Ben Abbott - - * plot/__print_parse_opts__.m: Recongize gs devices {eps/pdf/ps}write. - - 2010-09-23 John W. Eaton - - * miscellaneous/bug_report.m: Display information about how to - submit bug reports instead of creating and mailing a bug report. - - 2010-09-22 Ben Abbott - - * plot/private/__ghostscript__.m, plot/print.m: When appending, delete - temporay files at the end of the ghostscript pipeline. - - 2010-09-21 Ben Abbott - - * plot/__fltk_print__.m, plot/private/__ghostscript__.m, - plot/__gnuplot_print__.m, plot/__print_parse_opts__.m, - plot/print.m: Print via a pipeline. - - 2010-09-20 Ben Abbott - - * plot/legend.m: Index location cellstr to obtain a string. - - 2010-09-19 Ben Abbott - - * plot/colorbar.m, plot/axis.m, - plot/private/__actual_axis_position__.m, plot/__go_draw_axes__.m: - Special treatment activepositionproperty = outerposition for the - gnuplot backend. This allows the gnuplot key to be placed outside - the plotbox. - * plot/private/__plt__.m: Trivial fix for recent legend changeset. - * plot/legend.m: Treat line, patch, and surface objects differetly. - * plot/__go_draw_axes__.m: Remove left over debug code. - * miscellaneous/mkoctfile.m: Change help text to be consistent with - the shell version. - - 2010-09-18 David Bateman - - * plot/__go_draw_axes__.m: Modify legend code to use data from legend - axes. - * plot/__go_draw_figure__.m: Draw draw figure axes, but pass their - data to the axis they are associated with. - * plot/__get_plt_axes_arg__.m: Ignores axes tagged with "legend". - * plot/legend.m: Rewrite to use line and text primitives in a seperate - axis. - * plot/plot3.m: Support old legend format (eg "-;title'") with new - legend code. - * plot/private/__plt__.m: Ditto. - - 2010-09-16 Ben Abbott - - * plot/__go_draw_axes__.m: Ensure text objects have units of "data". - - 2010-09-16 John Swensen - - * imwrite.m: Accept more image formats. - - 2010-09-16 Jaroslav Hajek - - * signal/periodogram.m: Support additional inputs: - win, nfft, Fs, range. Thanks to Alois Schlögl. - - 2010-09-13 Ben Abbott - - * plot/gnuplot_drawnow.m: Use new function __gnuplot_has_terminal__(). - * plot/private/__gnuplot_has_terminal__.m: New function. - - 2010-09-13 Jaroslav Hajek - - * general/common_size.m: Partially rewrite using cellindexmat. - - 2010-09-13 Jaroslav Hajek - - * general/accumarray.m: Use @vec instead of @(x) x(:) for faster call. - - 2010-09-11 Jaroslav Hajek - - * pkg/get_forge_pkg.m: Allow underscores in pkg names. - - 2010-09-08 Ben Abbott - - * plot/__fltk_print__.m, plot/private/__ghostscript__.m, - plot/__gnuplot_print__.m, plot/__print_parse_opts__.m, - plot/print.m: Consolidate gs code into print.m. - * plot/colorbar.m, plot/axis.m, - plot/private/__actual_axis_position__.m, plot/__go_draw_axes__.m: - Revert treatment of activepositionproperty from the gnuplot backend. - * image/image.m: Fix axis limits for single dimension images, add - demo. - - 2010-09-07 David Bateman - - * plot/plotyy.m: Don't add the __plotyy_axes__ property to the - axes handles if iit already exists. - - 2010-09-06 Petr Mikulik - - * geometry/griddata.m: Allow x, y to be vectors, and z a matrix. - - 2010-09-03 David Bateman - - * geometry/delaunay.m: Allow the delaunay function to treat - matrices of the same size for compatibility. - - 2010-09-03 Ben Abbott - - * image/image.m: Matlab compatible axis limits, add demo. - - 2010-09-01 Jaroslav Hajek - - * io/dlmwrite.m: Don't fclose if file ID is supplied. - - 2010-09-01 Jaroslav Hajek - - * io/dlmwrite.m: Support file IDs. - - 2010-07-07 David Bateman - - * miscellaneous/what.m: Off by one error. - - * plot/__go_draw_axes__.m: Improve matlab compatibility for "." - marker. - - 2010-08-31 Ben Abbott - - * plot/private/__actual_axis_position__.m, plot/__go_draw_axes__.m, - plot/axis.m, plot/colorbar.m, plot/daspect.m, plot/plotyy.m, - plot/subplot.m: Treatment of activepositionproperty for gnuplot. - * plot/__go_draw_axes__.m: Missing part of last changeset. - * plot/__go_draw_axes__.m: Fix specification of pointtype for patches - (bug introduced in rev 2f9de135e7f9). - - 2010-08-30 Ben Abbott - - * plot/__go_draw_axes__.m: Use gnuplot's pentagon for marker == 'p'. - - 2010-08-27 Ben Abbott - - * plot/colorbar.m, * plot/__go_draw_axes__.m, - plot/private/__actual_axis_position__.m: Don't pass figure handle to - __calc_dimensions__. - * plot/private/__ghostscript__.m: Don't set anti-aliasing options for - vector formats. - * plot/__print_parse_opts__.m: Fix tests. - - 2010-08-27 Jordi Gutiérrez Hermoso - - * plot/__go_draw_axes__.m (__calc_dimensions__): Delete. - * plot/__actual_axis_position__.m (__calc_dimensions__): Delete. - - 2010-08-27 Pascal A. Dupuis - - * plot/hold.m: If arg is axis handle, get corresponding figure - handle from axis parent property. - - 2010-08-27 Ben Abbott - - * plot/__gnuplot_print__.m: Properly restore fontsize after eps output. - * plot/plotyy.m: Modified demo for changeset 10912 9abc67b4bd4f. - * plot/__fltk_print__.m, plot/__go_draw_axes__.m, - plot/__go_draw_figure__.m, plot/__gnuplot_print__.m, - plot/gnuplot_drawnow.m, plot/print.m, plot/private/__ghostscript__.m, - plot/private/__tight_eps_bbox__.m: Unify gnuplot printing with the - the fltk backend. Turn figure background color off when printing. - Improve the axes font spacing for most gnuplot terminals. - - 2010-08-26 Ben Abbott - - * plot/__go_draw_axes__.m: For yaxislocation == 'right' associate text - position with 'second' coordinate system. - - 2010-08-25 Ben Abbott - - * plot/__go_draw_axes__.m: Revert erroneous portion of changeset - 10910 40cf7cc4ea62. - - 2010-08-24 Ben Abbott - - * plot/private/__actual_axis_position__.m, plot/__go_draw_axes__.m: - Properly interpret plotboxaspectratio when 3D objects are viewed as 2D. - * plot/colorbar.m: Add demo. - - 2010-08-23 Jaroslav Hajek - - * general/interp2.m: Don't use bicubic for consistency (can't handle - non-grid interpolation). - - 2010-08-17 Rik - - * general/randi.m: Add IMAX check for class "single" numbers. - - 2010-08-15 Rik - - * general/randi.m: Add new script for random integers. - * general/module.mk: Add randi to build file list. - * miscellaneous/unimplemented.m: Remove randi from unimplemented list. - - 2010-08-15 Rik - - * image/imwrite.m: Allow writing of 1-bit (B&W) images. - Improve documentation string. Add input validation tests. - - 2010-08-13 Ben Abbott - - * plot/__print_parse_opts__.m: Double quote paths with spaces. - - 2010-08-11 Rik - - * set/unique.m: Handle corner case where sparse matrix is actually full. - - 2010-08-10 Rik - - * set/unique.m: Check whether outputs are used before calculating. - - 2010-08-10 Rik - - * statistics/base/module.mk, deprecated/module.mk, - statistics/base/values.m, deprecated/values.m: Deprecate values.m - - 2010-08-08 Rik - - * miscellaneous/unimplemented.m: Add newlines to format output for - easier reading. Format all lines < 80 characters. Remove - 'whitebg' function from unimplemented list. - - 2010-08-08 Rik - - * @ftp/PKG_ADD: Remove temporary build file from hg version control. - - 2010-08-09 Ben Abbott - - * plot/__print_parse_opts__.m: Default pstex suffix should be '.ps'. - - 2010-08-08 Rik - - * Makefile.am: Create .DOCSTRINGS quietly and avoid screen clutter - during build. - - 2010-08-08 Rik - - * Makefile.am: Run do_subst macro quietly without cluttering screen - during build. - - 2010-08-08 Ben Abbott - - * plot/print.m: Include 'colormap' when converting RGB to mono. - - 2010-08-07 Ben Abbott - - * plot/__fltk_print__.m: When running pstoedit, crop eps file after it - is created. Correctly check error status. - - 2010-08-06 Jaroslav Hajek - - * general/cell2mat.m: Allow cells of struct arrays. - - 2010-08-05 Ben Abbott - - * plot/__print_parse_opts__.m, plot/__fltk_print__.m: Don't warn on - absence of fig2dev or pstoedit until they are needed. - * plot/__print_parse_opts__.m, plot/__fltk_print__.m: Add epslatex, - pslatex, and pdflatex output for fltk backend. Use the gs png16m device - instead of png256. - * plot/print.m: Modify texinfo. Add unwind_protect block. - - 2010-08-01 Marco Caliari - - * general/bicubic.m: Fix bug #30400 when bicubic called with small - numbers of arguments. - - 2010-08-04 Jaroslav Hajek - - * general/sortrows.m: Don't actually permute the rows if not - requested. - - 2010-08-04 Ben Abbott - - * plot/print.m, plot/__print_parse_opts__.m, plot/__gnuplot_print__.m, - plot/private/__ghostscript__.m: plot/__fltk_print__.m: Add ps and pdf - output for fltk backend, improved use of ghostscript, and minor - improvements. - - 2010-08-01 Rik - - * deprecated/intwarning.m, general/arrayfun.m, general/cplxpair.m, - general/interp1.m, general/interpn.m, general/quadgk.m, - general/structfun.m, image/image_viewer.m, io/strread.m, - miscellaneous/warning_ids.m, optimization/lsqnonneg.m, pkg/pkg.m, - plot/__marching_cube__.m, plot/bar.m, plot/contourc.m, plot/errorbar.m, - plot/ezplot.m, plot/isocolors.m, plot/isonormals.m, plot/isosurface.m, - plot/stem.m, plot/stem3.m, polynomial/compan.m, polynomial/ppval.m, - signal/arch_rnd.m, sparse/pcg.m, sparse/svds.m, - special-matrix/invhilb.m, statistics/distributions/wblcdf.m, - testfun/assert.m, testfun/demo.m, testfun/speed.m: - Grammarcheck documentation. Add @noindent lines and ensure line - length is less than 80. - - 2010-08-01 Martin Helm - - * plot/isosurface.m: Swap rows and columns of matrix in call to - meshgrid. - - 2010-08-01 Rik - - * plot/print.m: Update documentation string. Change to active voice. - - 2010-07-30 Rik - - * Makefile.am: add .DOCSTRINGS to the DISTCLEANFILES list - - 2010-07-29 Ben Abbott - - * plot/print.m, plot/__print_parse_opts__.m, plot/__fltk_print__.m, - plot/__gnuplot_print__.m: Improved printing for the fltk backend. - * plot/private/__ghostscript__.m, plot/private/__tight_eps_bbox__.m: - New files to support printing. - - 2010-07-29 Jaroslav Hajek - - * linear-algebra/expm.m: Special-case scalars and diagonal matrices. - Suggested by M. Caliari. - - 2010-07-26 Rik - - * linear-algebra/logm.m: Improve documentation string. Add GPL header. - Add additional test block. - - 2010-07-28 Jaroslav Hajek - - * linear-algebra/logm.m: Rewrite. Thanks to M. Caliari and R. T. Guy. - - 2010-07-26 Rik - - * deprecated/complement.m, deprecated/intwarning.m, general/arrayfun.m, - general/circshift.m, general/colon.m, general/common_size.m, - general/del2.m, general/flipdim.m, general/fliplr.m, general/flipud.m, - general/idivide.m, general/interp1.m, general/interp2.m, - general/interp3.m, general/interpn.m, general/loadobj.m, - general/quadgk.m, general/rat.m, general/saveobj.m, general/shiftdim.m, - geometry/delaunayn.m, image/image_viewer.m, image/imfinfo.m, - io/csvread.m, io/csvwrite.m, io/strread.m, linear-algebra/condest.m, - linear-algebra/housh.m, linear-algebra/onenormest.m, - linear-algebra/qzhess.m, miscellaneous/bincoeff.m, - miscellaneous/compare_versions.m, miscellaneous/computer.m, - miscellaneous/edit.m, miscellaneous/fileattrib.m, - miscellaneous/getfield.m, miscellaneous/license.m, miscellaneous/ls.m, - miscellaneous/parseparams.m, miscellaneous/swapbytes.m, - miscellaneous/ver.m, miscellaneous/warning_ids.m, - optimization/fminbnd.m, optimization/fminunc.m, optimization/fsolve.m, - optimization/fzero.m, optimization/glpk.m, optimization/lsqnonneg.m, - optimization/pqpnonneg.m, optimization/qp.m, optimization/sqp.m, - path/pathdef.m, pkg/pkg.m, plot/__marching_cube__.m, plot/axis.m, - plot/colorbar.m, plot/contourc.m, plot/contourf.m, plot/cylinder.m, - plot/ezplot.m, plot/isocolors.m, plot/isonormals.m, plot/legend.m, - plot/print.m, plot/refreshdata.m, plot/slice.m, plot/subplot.m, - plot/surfl.m, polynomial/compan.m, polynomial/mpoles.m, - polynomial/poly.m, polynomial/polyaffine.m, polynomial/polyfit.m, - polynomial/polygcd.m, polynomial/polyout.m, polynomial/residue.m, - polynomial/roots.m, polynomial/unmkpp.m, set/union.m, signal/filter2.m, - signal/stft.m, sparse/spdiags.m, specfun/bessel.m, specfun/beta.m, - specfun/betaln.m, specfun/nchoosek.m, specfun/nthroot.m, - specfun/perms.m, special-matrix/hadamard.m, special-matrix/hankel.m, - special-matrix/hilb.m, special-matrix/invhilb.m, - special-matrix/toeplitz.m, special-matrix/vander.m, - statistics/base/cloglog.m, statistics/base/cor.m, - statistics/base/corrcoef.m, statistics/base/kendall.m, - statistics/base/kurtosis.m, statistics/base/logit.m, - statistics/base/mean.m, statistics/base/median.m, - statistics/base/quantile.m, statistics/base/skewness.m, - statistics/base/std.m, statistics/base/var.m, - statistics/distributions/kolmogorov_smirnov_cdf.m, - statistics/distributions/wblcdf.m, statistics/tests/cor_test.m, - statistics/tests/hotelling_test_2.m, strings/bin2dec.m, - strings/cstrcat.m, strings/dec2bin.m, strings/dec2hex.m, - strings/findstr.m, strings/hex2dec.m, strings/index.m, - strings/isstrprop.m, strings/regexptranslate.m, strings/rindex.m, - strings/strcat.m, strings/substr.m, testfun/demo.m, time/asctime.m, - time/clock.m, time/ctime.m, time/date.m, time/datenum.m, - time/is_leap_year.m: Grammarcheck documentation of m-files. - Add newlines between @items for readability. - - 2010-07-26 Ben Abbott - - * general/interp1.m: When absent set X equal to the inices of Y. - * general/interpn.m: Convert interpolation vectors of non-equal - length to nd-arrays. - - 2010-07-26 Soren Hauberg - - * image/image.m: Replace parenthesis with curly bracket in Texinfo. - - 2010-07-25 Rik - - * image/image.m: Always reverse 'ydir' property when displaying images. - - 2010-07-19 Rik - - * help/__makeinfo__.m: Add support to process @nopsell macro. - Fix bug when more than one @seealso block exists. - - 2010-07-19 Rik - - * general/repmat.m: Add seealso to new repelems function. - - 2010-07-19 Jaroslav Hajek - - * specfun/nchoosek.m: Optimize. - - 2010-07-18 Rik - - * @ftp/ftp.m, @ftp/mget.m, audio/lin2mu.m, audio/loadaudio.m, - audio/mu2lin.m, audio/playaudio.m, audio/saveaudio.m, - audio/wavwrite.m, deprecated/create_set.m, - deprecated/intwarning.m, deprecated/lchol.m, - deprecated/spchol.m, deprecated/spdiag.m, deprecated/spfind.m, - deprecated/splchol.m, deprecated/splu.m, deprecated/spmax.m, - deprecated/spmin.m, deprecated/spqr.m, deprecated/weibcdf.m, - deprecated/weibrnd.m, general/accumarray.m, general/bitset.m, - general/colon.m, general/deal.m, general/del2.m, - general/genvarname.m, general/gradient.m, general/interp1.m, - general/interp2.m, general/interp3.m, general/interpft.m, - general/interpn.m, general/nargchk.m, general/nargoutchk.m, - general/nextpow2.m, general/num2str.m, general/pol2cart.m, - general/polyarea.m, general/prepad.m, general/quadgk.m, - general/quadl.m, general/quadv.m, general/rat.m, - general/repmat.m, general/shiftdim.m, general/structfun.m, - general/trapz.m, geometry/convhull.m, geometry/delaunay.m, - geometry/delaunay3.m, geometry/delaunayn.m, geometry/dsearch.m, - geometry/dsearchn.m, geometry/griddata.m, geometry/trimesh.m, - geometry/triplot.m, geometry/trisurf.m, geometry/voronoi.m, - geometry/voronoin.m, help/__makeinfo__.m, help/gen_doc_cache.m, - help/get_first_help_sentence.m, help/print_usage.m, help/type.m, - image/brighten.m, image/colormap.m, image/image.m, - image/imagesc.m, image/imfinfo.m, image/imshow.m, - image/imwrite.m, image/ind2rgb.m, io/dlmwrite.m, io/fileread.m, - io/strread.m, io/textread.m, linear-algebra/cond.m, - linear-algebra/condest.m, linear-algebra/ishermitian.m, - linear-algebra/onenormest.m, miscellaneous/bzip2.m, - miscellaneous/dir.m, miscellaneous/dos.m, miscellaneous/edit.m, - miscellaneous/gzip.m, miscellaneous/mkoctfile.m, - miscellaneous/orderfields.m, miscellaneous/parseparams.m, - miscellaneous/perl.m, miscellaneous/unix.m, - miscellaneous/unpack.m, miscellaneous/version.m, - miscellaneous/zip.m, optimization/fminbnd.m, - optimization/fminunc.m, optimization/fsolve.m, - optimization/glpk.m, optimization/glpkmex.m, - optimization/lsqnonneg.m, optimization/optimget.m, - optimization/optimset.m, optimization/pqpnonneg.m, - optimization/private/__fdjac__.m, optimization/qp.m, - pkg/get_forge_pkg.m, pkg/pkg.m, plot/__fltk_print__.m, - plot/__gnuplot_print__.m, plot/ancestor.m, plot/area.m, - plot/axes.m, plot/axis.m, plot/bar.m, plot/barh.m, plot/box.m, - plot/caxis.m, plot/cla.m, plot/clabel.m, plot/close.m, - plot/colorbar.m, plot/comet.m, plot/compass.m, plot/contour.m, - plot/contour3.m, plot/contourc.m, plot/contourf.m, - plot/cylinder.m, plot/ellipsoid.m, plot/ezcontour.m, - plot/ezcontourf.m, plot/ezmesh.m, plot/ezmeshc.m, plot/ezplot.m, - plot/ezplot3.m, plot/ezpolar.m, plot/ezsurf.m, plot/ezsurfc.m, - plot/feather.m, plot/figure.m, plot/fill.m, plot/findall.m, - plot/findobj.m, plot/fplot.m, plot/gcbo.m, plot/grid.m, - plot/hggroup.m, plot/hidden.m, plot/line.m, plot/meshgrid.m, - plot/ndgrid.m, plot/pareto.m, plot/patch.m, plot/pcolor.m, - plot/peaks.m, plot/pie.m, plot/plotmatrix.m, plot/plotyy.m, - plot/print.m, plot/private/__actual_axis_position__.m, - plot/quiver.m, plot/quiver3.m, plot/refresh.m, plot/rose.m, - plot/scatter.m, plot/scatter3.m, plot/shading.m, plot/slice.m, - plot/specular.m, plot/sphere.m, plot/subplot.m, plot/surfl.m, - plot/surfnorm.m, plot/text.m, plot/title.m, plot/view.m, - plot/whitebg.m, plot/xlabel.m, plot/xlim.m, plot/ylabel.m, - plot/ylim.m, plot/zlabel.m, plot/zlim.m, polynomial/compan.m, - polynomial/mkpp.m, polynomial/mpoles.m, polynomial/pchip.m, - polynomial/ppder.m, polynomial/ppint.m, polynomial/ppjumps.m, - polynomial/ppval.m, polynomial/spline.m, set/intersect.m, - set/powerset.m, set/setdiff.m, set/setxor.m, set/union.m, - set/unique.m, signal/fftshift.m, signal/filter2.m, - signal/ifftshift.m, sparse/bicgstab.m, sparse/cgs.m, - sparse/etreeplot.m, sparse/gplot.m, sparse/pcg.m, sparse/pcr.m, - sparse/spdiags.m, sparse/speye.m, sparse/sprand.m, - sparse/sprandn.m, sparse/sprandsym.m, sparse/spstats.m, - sparse/spy.m, sparse/treelayout.m, sparse/treeplot.m, - specfun/bessel.m, specfun/legendre.m, specfun/pow2.m, - statistics/base/center.m, statistics/base/histc.m, - statistics/base/kendall.m, statistics/base/meansq.m, - statistics/base/prctile.m, statistics/base/quantile.m, - statistics/base/range.m, statistics/base/std.m, - statistics/base/table.m, statistics/distributions/betacdf.m, - statistics/distributions/betarnd.m, - statistics/distributions/binornd.m, - statistics/distributions/cauchy_rnd.m, - statistics/distributions/chi2rnd.m, - statistics/distributions/discrete_rnd.m, - statistics/distributions/empirical_rnd.m, - statistics/distributions/exprnd.m, - statistics/distributions/fcdf.m, - statistics/distributions/frnd.m, - statistics/distributions/gamrnd.m, - statistics/distributions/geornd.m, - statistics/distributions/hygernd.m, - statistics/distributions/kolmogorov_smirnov_cdf.m, - statistics/distributions/laplace_rnd.m, - statistics/distributions/logistic_rnd.m, - statistics/distributions/lognrnd.m, - statistics/distributions/nbinrnd.m, - statistics/distributions/normrnd.m, - statistics/distributions/stdnormal_rnd.m, - statistics/distributions/tcdf.m, - statistics/distributions/trnd.m, - statistics/distributions/unidrnd.m, - statistics/distributions/unifcdf.m, - statistics/distributions/unifrnd.m, - statistics/distributions/wblcdf.m, - statistics/distributions/wblrnd.m, - statistics/tests/kolmogorov_smirnov_test.m, - statistics/tests/kolmogorov_smirnov_test_2.m, - statistics/tests/wilcoxon_test.m, strings/base2dec.m, - strings/index.m, strings/mat2str.m, strings/strchr.m, - strings/substr.m, strings/validatestring.m, testfun/assert.m, - testfun/example.m, testfun/fail.m, testfun/speed.m, - testfun/test.m, time/calendar.m, time/date.m, time/datenum.m, - time/datetick.m, time/datevec.m: - Grammarcheck documentation of m-files. - - 2010-07-17 Rik - - * audio/lin2mu.m, general/common_size.m, general/interp1.m, - general/interp2.m, general/interpn.m, general/quadl.m, - geometry/dsearchn.m, geometry/voronoi.m, geometry/voronoin.m, - image/hsv2rgb.m, image/imread.m, image/rgb2hsv.m, - linear-algebra/commutation_matrix.m, linear-algebra/condest.m, - linear-algebra/expm.m, linear-algebra/krylov.m, - linear-algebra/onenormest.m, miscellaneous/perl.m, - plot/linkprop.m, plot/plot.m, plot/print.m, plot/stem3.m, - signal/diffpara.m, signal/stft.m, sparse/pcg.m, sparse/pcr.m, - specfun/primes.m, special-matrix/hadamard.m, special-matrix/hankel.m, - special-matrix/invhilb.m, special-matrix/pascal.m, - special-matrix/rosser.m, special-matrix/toeplitz.m, - special-matrix/vander.m, special-matrix/wilkinson.m, - testfun/speed.m: Spellcheck documentation. - - 2010-07-15 Jaroslav Hajek - - * general/flipdim.m: Suuport flipping about trailing singleton - dimension. - - 2010-07-14 Ben Abbott - - * plot/__gnuplot_print__.m: Fix broken options "-orientation", - "-special_flag", "-debug_file", "-tight_flag", and "-printer". - - 2010-07-14 Rik - - * linear-algebra/normest.m: Improve documentation. Add better input - validation. Use same variable names in code as in documentation. - - 2010-07-14 Marco Caliari - - * linear-algebra/normest.m: Set the "state" of the random number - generator to trace(A). - - 2010-07-12 Jaroslav Hajek - - * general/cell2mat.m: Optimize so as to minimize the number of - concats. - - 2010-07-12 John W. Eaton - - * general/display.m: Print usage message if nargin != 1. - Bug #30421. - - 2010-07-09 Thorsten Meyer - - * general/interp2.m: improve input argument handling and - allow not equally spaced griddata (bug #29601) - - 2010-07-08 Jaroslav Hajek - - * general/accumarray.m: Fix incorrect handling of nondefault fill - values in min/max reductions of integers. - - 2010-07-07 David Bateman - - * __next_line_color__.m: Allow conditional initialisation of the - color_rotation variable. - * __next_line_style__.m: Allow conditional initialisation of the - style_rotation variable. - * hold.m: Support "hold all". - * newplot.m: Conditionally initialisation the line style and color - based on the __hold_all__ axes property. - - 2010-07-04 Soren Hauberg - - * polynomial/deconv.m: ensure that the orientation of the third - input to 'filter' matches the orientation of 'y'. - - 2010-07-02 Rik - - * audio/wavread.m: Correctly handle non-word aligned data chunks. - (bug #30309). - - 2010-06-16 Rik - - * plot/stairs.m: Add additional calling forms to documentation. - - 2010-06-24 John W. Eaton - - * plot/private/__plt__.m: Replace usage message with error. - * plot/loglog.m, plot/plot.m, plot/polar.m, plot/semilogx.m, - plot/semilogy.m: Call print_usage if no args are supplied. - Add additional calling forms to documentation. - - 2010-06-24 Shai Ayal - - * plot/print.m: convert to wrapper for backend specific print functions - * plot/__gnuplot_print__.m: New gnuplot specific print function, - largely based on the former print.m - * plot/__fltk_print__.m: New fltk specific print function - * plot/__print_parse_opts__.m: New option parser for print - functions, largely based on the former print.m - * plot/module.mk: Add new m-files here - - 2010-06-23 David Bateman - - * whitebg.m: New function. - * module.mk (plot_FCN_FILES): Add it here. - * __go_draw_figure__.m: Set the border color to the inverse of the - background color. - - 2010-06-17 Brad Froehle - - * sparse/spy.m: Fix typo. - - 2010-06-16 Rik - - * set/union.m: Remove seealso reference to deprecated function. - - 2010-06-16 Rik - - * @ftp/dir.m, @ftp/ftp.m, @ftp/mget.m, @ftp/mput.m, @ftp/rename.m, - deprecated/fstat.m, general/accumdim.m, general/interp1.m, - linear-algebra/ishermitian.m, linear-algebra/issymmetric.m, - miscellaneous/substruct.m, optimization/fminbnd.m, - optimization/fsolve.m, plot/bar.m, plot/daspect.m, plot/pbaspect.m, - plot/print.m, polynomial/mkpp.m, polynomial/ppval.m, set/union.m, - signal/unwrap.m, specfun/nthroot.m: Periodic grammar check of - documentation to ensure a common format. - - 2010-06-14 Rik - - * plot/image.m: Flip data, rather than y-axis, for images. (bug #30033) - - 2010-06-12 Ben Abbott - - * plot/scatter.m: New demo. - * plot/private/__scatter__.m: Properly set default value markersize - and marker type. - - 2010-06-12 Rik - - * plot/scatter.m: Add new calling forms of function to documentation. - - 2010-06-10 Ben Abbott - - * plot/private/__scatter__.m, plot/scatter.m: Honor Matlab color - settings. - * general/prepad.m: Fix typo 'dimm' -> 'dim'. - - 2010-06-10 Jaroslav Hajek - - * linear-algebra/vec.m: Remove (make built-in). - * linear-algebra/module.mk: Update. - - 2010-06-09 Rik - - * general/flipdim.m, general/accumdim.m: Use > 1 test to find - first non-singleton dimension rather than != 1. - - 2010-06-08 Rik - - * general/cumtrapz.m, general/postpad.m, general/prepad.m, - general/shift.m, general/trapz.m, signal/unwrap.m: Use common - method to find first non-singleton dimension. - - 2010-06-08 Rik - - * general/rotdim.m: Modify function to use same variable names - as documentation. - - 2010-06-08 Rik - - * general/cart2pol.m, general/cart2sph.m, general/pol2cart.m, - general/sph2cart.m: Add option to operate on column matrix of - coordinates. - - 2010-06-08 Rik - - * general/arrayfun.m, general/cart2pol.m, general/cart2sph.m, - general/idivide.m, general/logspace.m, general/sph2cart.m, - general/structfun.m, image/imagesc.m, io/csvread.m, io/csvwrite.m, - linear-algebra/cond.m, linear-algebra/condest.m, - linear-algebra/isdefinite.m, linear-algebra/null.m, - linear-algebra/orth.m, miscellaneous/list_primes.m, - optimization/fminunc.m, optimization/fzero.m, path/matlabroot.m, - plot/axis.m, plot/plot.m, plot/semilogx.m, plot/semilogxerr.m, - plot/semilogy.m, plot/semilogyerr.m, plot/stem.m, polynomial/poly.m, - polynomial/polyder.m, polynomial/polyderiv.m, polynomial/polyfit.m, - polynomial/polyout.m, polynomial/polyval.m, set/ismember.m, - sparse/spfun.m, specfun/betaln.m, statistics/base/mean.m, - statistics/base/median.m, statistics/base/mode.m, statistics/base/ols.m, - statistics/base/ranks.m, - statistics/distributions/kolmogorov_smirnov_cdf.m, - statistics/distributions/wblpdf.m: Improve documentation strings - - 2010-06-07 Jaroslav Hajek - - * pkg/pkg.m: Support pkg list -forge. - - 2010-06-07 Jaroslav Hajek - - * pkg/get_forge_pkg.m: New function. - * pkg/module.mk: Add it here. - * pkg/pkg.m: Support -forge switch for auto-downloading OctaveForge - packages. - - 2010-06-03 Alois Schlögl - - * signal/arch_test.m, statistics/tests/bartlett_test.m, - statistics/tests/chisquare_test_homogeneity.m, - statistics/tests/chisquare_test_independence.m, - statistics/tests/manova.m, statistics/tests/mcnemar_test.m, - statistics/tests/run_test.m, statistics/distributions/chi2pdf.m: - Replace calls to obsolete chisquare_cdf with chi2cdf. - - 2010-06-03 Rik - - * plot/private/__plt__.m: Add newline to usage message. - - 2010-06-02 Rik - - * optimization/sqp.m: Overhaul sqp code. - Guarantee equivalent results if sqp called with or wihout bounds - (bug #29989). Simplify input option handling and add %tests - to check validation code. Rewrite documentation string. - - 2010-06-01 Rik - - * optimization/fminbnd.m: Remove unused persistent variable. - - 2010-06-01 Rik - - * plot/private/__contour__.m: Correctly size X and Y when only Z - specified (bug #30002). - - 2010-05-31 Rik - - * specfun/legendre.m: Orient row vector correctly (bug #29997). - Add input validation for negative values and %tests to check - validation routines. - - 2010-05-30 Rik - - * sparse/svds.m: Overhaul code. - Return smallest singular values if sigma == 0 (Bug #29721). - Avoid calculating U and V matrices unless requested. - Correctly handle zero matrix input. - Improve documentation string. - - 2010-05-26 Rik - - * statistics/base/histc.m, statistics/base/iqr.m, - statistics/base/kurtosis.m, statistics/base/mode.m, - statistics/base/ranks.m, statistics/base/run_count.m, - statistics/base/skewness.m, statistics/base/statistics.m, - statistics/base/studentize.m: Improve validation of input arguments. - - 2010-05-26 Jaroslav Hajek - - * specfun/isprime.m: Fix and further optimize. - - 2010-05-26 Rik - - * plot/legend.m: Improve documentation string. - - 2010-05-26 Rik - - * sparse/svds.m: Check struct input arguments. Overhaul documentation. - - 2010-05-26 Ben Abbott - - * plot/legend.m: Key labels for specified objects. - * plot/ancestor.m: Support vectors of handles. - - 2010-05-26 Rik - - * sparse/svds.m: Initialize ARPACK starting vector in svds test code. - Bug #29721. - - 2010-05-25 Ben Abbott - - * polynomial/spline.m: Ignore NaNs within input vectors. - - 2010-05-25 Jaroslav Hajek - - * specfun/primes.m: Use logical masks rather than numeric. - * specfun/isprime.m: Rewrite using isprime. - - 2010-05-25 Jaroslav Hajek - - * miscellaneous/unimplemented.m: Don't mention onCleanup (supported). - - 2010-05-25 Jaroslav Hajek - - * statistics/base/median.m: Ensure NaNs where needed. Simplify first - non-singleton dimension computation. - - 2010-05-24 Rik - - * general/private/__isequal__.m, image/image.m, - statistics/base/ranks.m: Replace calls to deprecated functions. - - 2010-05-23 Rik - - * image/imshow.m: Scale image point color according to colormap. - Bug #29926. - - 2010-05-16 Rik - - * plot/semilogx.m, plot/semilogy.m: Plot minor ticks for semilog plots. - - 2010-05-16 Rik - - * audio/loadaudio.m, audio/playaudio.m, audio/saveaudio.m, - audio/wavread.m, general/bicubic.m, general/bitcmp.m, general/bitget.m, - general/bitset.m, general/cplxpair.m, general/del2.m, - general/gradient.m, general/interp2.m, general/interp3.m, - general/interpn.m, general/postpad.m, general/prepad.m, - general/private/__splinen__.m, image/image_viewer.m, image/imagesc.m, - image/saveimage.m, linear-algebra/expm.m, linear-algebra/krylov.m, - miscellaneous/edit.m, miscellaneous/private/__xzip__.m, - miscellaneous/what.m, optimization/glpk.m, optimization/optimset.m, - optimization/pqpnonneg.m, path/pathdef.m, plot/__go_draw_axes__.m, - plot/__marching_cube__.m, plot/gnuplot_drawnow.m, plot/ishold.m, - plot/isocolors.m, plot/isonormals.m, plot/print.m, - plot/private/__add_datasource__.m, plot/private/__color_str_rgb__.m, - plot/private/__errplot__.m, plot/private/__interp_cube__.m, - plot/shading.m, plot/specular.m, polynomial/deconv.m, - polynomial/polyint.m, polynomial/ppint.m, set/powerset.m, - signal/arch_fit.m, signal/arch_test.m, signal/durbinlevinson.m, - special-matrix/hadamard.m, statistics/distributions/unidrnd.m, - statistics/distributions/unifinv.m, - statistics/models/logistic_regression.m, strings/strjust.m, - testfun/rundemos.m, testfun/runtests.m, testfun/test.m, time/datenum.m: - Print name of function in error() string messages. - - 2010-05-16 Rik - - * plot/contourc.m, plot/private/__contour__.m, - plot/surface.m, plot/surfnorm.m: Check input - arguments for size and type (bug #29861). - - 2010-05-13 John W. Eaton - - * help/help.m: Avoid unnecessary use of varargout. - - 2010-05-13 Qianqian Fang - - * miscellaneous/tempdir.m: Add filesep to end of tempdir (bug #29864). - - 2010-05-11 Jaroslav Hajek - - * io/textread.m: Fix typo. - - 2010-05-08 David Gesswein - - * io/dlmwrite.m: Correctly set output precision (#29870). - - 2010-05-12 Jordi Gutiérrez Hermoso - - * help/help.m: Allow docstring to be returned as output, and - correct docstring. - - 2010-05-08 Rik - - * testfun/test.m: Don't abort testing when skipping a testif block - - 2010-05-05 Rik - - * statistics/tests/cor_test.m, statistics/tests/t_test.m, - statistics/tests/t_test_2.m, statistics/tests/t_test_regression.m, - statistics/tests/welch_test.m: Replace deprecated function calls. - Patch provided by Alois Schlögl. - - 2010-05-02 Rik - - * linear-algebra/cond.m: Add TeX equation to documentation - - 2010-05-02 Peter van den Biggelaar - - * plot/close.m: No error on "close([])". - - 2010-05-01 Ben Abbott - - * plot/__go_draw_axes__.m: Remove gnuplot errorbar code. - - 2010-04-30 Ben Abbott - - * plot/loglogerr.m, plot/semilogxerr.m, plot/semilogyerr.m: - Add demos. - * plot/private/__errplot__.m: Fix bug parsing errorbar style. - * plot/private/__errplot__.m: Implement errorbars in the Matlab style. - - 2010-04-29 Ben Abbott - - * plot/errorbar.m: Modify demo. - * plot/private/__errplot__.m: Fix bug for boxxy errorbar. - * plot/errorbar.m: Add demos. - - 2010-04-27 David Bateman - - * plot/private/__errplot__.m: Update the marker in a seperate - listener function. - - 2010-04-27 Rik - - * plot/private/__go_draw_axes__.m: Use "." for marker when plotting - with errorbars. (bug #29057) - - 2010-04-27 Ben Abbott - - * plot/private/__errplot__.m: Add missing semicolon line terminations. - - 2010-04-27 David Bateman - - * plot/private/__default_plot_options_.m: New option errorstyle. - * plot/private/__pltopt__.m: Use errorstyle here seperately from - the linestyle so that both can be set. - * plot/private/__errcomm__.m: Allow for the fact that matrices - to __errplot__ with return a vector of handles. - * plot/private/__errplot__.m: Allow for default linestyles. - - * plot/private/__errplot__.m: Set the errorbar marker to "none". - - 2010-04-26 David Bateman - - * plot/bar.m: Document the use of the colormap for the color of - the bars. - - * plot/private/__errplot__.m: Allow x, box and xy errorbars with - different syntax. - - * plot/private/__errplot__.m: Allow matlab style linestyles, and - support setting the markers. - - 2010-04-24 David Bateman - - * plot/private/__patch__.m: Correct order of calling setdata and - setvertexdata. - - 2010-04-25 Ben Abbott - - * plot/__go_draw_figure__.m: Hidden axes may have visible children. - - 2010-04-24 Ben Abbott - - * plot/print.m: Set figure color property to 'none' when printing. - - 2010-04-24 David Bateman - - * plot/__go_draw_axes__.m: Correct fill of diamond markers - - 2010-04-24 Ben Abbott - - * plot/__go_draw_axes__.m: Consistent placement of axes for ps vs - other gnuplot terminals. - - 2010-04-23 Ben Abbott - - * plot/colorbar.m: Fix colorbar() bugs for manual plotboxaspectratio. - * plot/axis.m: For 'axis normal' restore plotboxaspectratio. - - 2010-04-23 John W. Eaton - - * gethelp.cc (extract_help_text): Use C++ static_cast instead of - C-style cast. - - 2010-04-23 Rik - - * audio/loadaudio.m, audio/mu2lin.m, audio/playaudio.m, - audio/saveaudio.m, audio/wavread.m, audio/wavwrite.m, - deprecated/cellidx.m, deprecated/intwarning.m, - deprecated/lchol.m, deprecated/spatan2.m, deprecated/spchol.m, - deprecated/spchol2inv.m, deprecated/spcholinv.m, - deprecated/spcumprod.m, deprecated/spcumsum.m, - deprecated/spdet.m, deprecated/spdiag.m, deprecated/spfind.m, - deprecated/spinv.m, deprecated/spkron.m, deprecated/splchol.m, - deprecated/split.m, deprecated/splu.m, deprecated/spmax.m, - deprecated/spmin.m, deprecated/spprod.m, deprecated/spqr.m, - deprecated/spsum.m, deprecated/spsumsq.m, elfun/lcm.m, - general/bicubic.m, general/cell2mat.m, general/circshift.m, - general/cplxpair.m, general/cumtrapz.m, general/dblquad.m, - general/del2.m, general/gradient.m, general/idivide.m, - general/int2str.m, general/interp1.m, general/interp2.m, - general/interp3.m, general/interpn.m, general/isa.m, - general/num2str.m, general/postpad.m, general/prepad.m, - general/private/__isequal__.m, general/quadgk.m, - general/quadl.m, general/quadv.m, general/rat.m, - general/rotdim.m, general/shift.m, general/sortrows.m, - general/structfun.m, general/trapz.m, geometry/griddata.m, - geometry/griddata3.m, geometry/inpolygon.m, geometry/rectint.m, - geometry/trimesh.m, geometry/triplot.m, geometry/trisurf.m, - geometry/voronoi.m, help/doc.m, help/help.m, help/which.m, - io/dlmwrite.m, io/strread.m, linear-algebra/condest.m, - linear-algebra/cross.m, linear-algebra/krylov.m, - linear-algebra/null.m, linear-algebra/onenormest.m, - linear-algebra/orth.m, linear-algebra/rank.m, - linear-algebra/rref.m, miscellaneous/bincoeff.m, - miscellaneous/cast.m, miscellaneous/compare_versions.m, - miscellaneous/copyfile.m, miscellaneous/dir.m, - miscellaneous/dump_prefs.m, miscellaneous/edit.m, - miscellaneous/fileattrib.m, miscellaneous/fileparts.m, - miscellaneous/fullfile.m, miscellaneous/license.m, - miscellaneous/ls.m, miscellaneous/ls_command.m, - miscellaneous/mkoctfile.m, miscellaneous/movefile.m, - miscellaneous/orderfields.m, miscellaneous/perl.m, - miscellaneous/run.m, miscellaneous/substruct.m, - miscellaneous/swapbytes.m, miscellaneous/tar.m, - miscellaneous/unpack.m, miscellaneous/what.m, - miscellaneous/zip.m, optimization/fminunc.m, - optimization/fsolve.m, optimization/glpk.m, optimization/qp.m, - optimization/sqp.m, path/pathdef.m, path/savepath.m, pkg/pkg.m, - plot/__gnuplot_get_var__.m, plot/__gnuplot_ginput__.m, - plot/__go_draw_axes__.m, plot/__next_line_color__.m, - plot/__next_line_style__.m, plot/__plt_get_axis_arg__.m, - plot/ancestor.m, plot/area.m, plot/axes.m, plot/axis.m, - plot/box.m, plot/cla.m, plot/clabel.m, plot/clf.m, plot/close.m, - plot/colorbar.m, plot/comet.m, plot/compass.m, plot/contourf.m, - plot/cylinder.m, plot/ellipsoid.m, plot/feather.m, plot/fill.m, - plot/findobj.m, plot/fplot.m, plot/gnuplot_drawnow.m, - plot/grid.m, plot/gtext.m, plot/hidden.m, plot/hist.m, - plot/hold.m, plot/ishold.m, plot/isonormals.m, - plot/isosurface.m, plot/legend.m, plot/linkprop.m, plot/meshz.m, - plot/newplot.m, plot/pareto.m, plot/pie.m, plot/plot3.m, - plot/plotmatrix.m, plot/plotyy.m, plot/polar.m, - plot/private/__actual_axis_position__.m, - plot/private/__add_datasource__.m, - plot/private/__axes_limits__.m, plot/private/__axis_label__.m, - plot/private/__bar__.m, plot/private/__clabel__.m, - plot/private/__contour__.m, plot/private/__errcomm__.m, - plot/private/__errplot__.m, plot/private/__ezplot__.m, - plot/private/__patch__.m, plot/private/__plt__.m, - plot/private/__pltopt__.m, plot/private/__quiver__.m, - plot/private/__scatter__.m, plot/private/__stem__.m, - plot/refreshdata.m, plot/ribbon.m, plot/rose.m, plot/slice.m, - plot/sombrero.m, plot/sphere.m, plot/stairs.m, plot/subplot.m, - plot/surf.m, plot/surface.m, plot/surfl.m, plot/surfnorm.m, - plot/text.m, plot/view.m, polynomial/polyderiv.m, - polynomial/polygcd.m, polynomial/polyout.m, polynomial/spline.m, - set/intersect.m, set/setdiff.m, set/setxor.m, signal/unwrap.m, - sparse/pcg.m, sparse/pcr.m, sparse/spaugment.m, - sparse/spconvert.m, sparse/sprand.m, sparse/sprandsym.m, - sparse/svds.m, sparse/treelayout.m, sparse/treeplot.m, - specfun/nchoosek.m, specfun/primes.m, special-matrix/toeplitz.m, - statistics/base/iqr.m, statistics/base/kurtosis.m, - statistics/base/qqplot.m, statistics/base/quantile.m, - statistics/base/ranks.m, statistics/base/run_count.m, - statistics/base/skewness.m, statistics/base/statistics.m, - statistics/base/studentize.m, statistics/base/var.m, - statistics/distributions/betapdf.m, - statistics/distributions/betarnd.m, - statistics/distributions/binocdf.m, - statistics/distributions/binoinv.m, - statistics/distributions/binornd.m, - statistics/distributions/cauchy_pdf.m, - statistics/distributions/cauchy_rnd.m, - statistics/distributions/chi2rnd.m, - statistics/distributions/discrete_rnd.m, - statistics/distributions/exprnd.m, - statistics/distributions/fcdf.m, - statistics/distributions/finv.m, - statistics/distributions/fpdf.m, - statistics/distributions/frnd.m, - statistics/distributions/gampdf.m, - statistics/distributions/gamrnd.m, - statistics/distributions/geornd.m, - statistics/distributions/hygepdf.m, - statistics/distributions/laplace_inv.m, - statistics/distributions/lognrnd.m, - statistics/distributions/nbincdf.m, - statistics/distributions/nbininv.m, - statistics/distributions/nbinpdf.m, - statistics/distributions/nbinrnd.m, - statistics/distributions/normrnd.m, - statistics/distributions/poissinv.m, - statistics/distributions/poissrnd.m, - statistics/distributions/tinv.m, - statistics/distributions/tpdf.m, - statistics/distributions/trnd.m, - statistics/distributions/unidrnd.m, - statistics/distributions/unifrnd.m, - statistics/distributions/wblpdf.m, - statistics/distributions/wblrnd.m, strings/cstrcat.m, - strings/deblank.m, strings/findstr.m, strings/isstrprop.m, - strings/regexptranslate.m, strings/strtok.m, testfun/assert.m, - testfun/example.m, testfun/fail.m, testfun/rundemos.m, - testfun/runtests.m, testfun/speed.m, testfun/test.m, - time/datestr.m, time/weekday.m: Untabify. - - 2010-04-23 Rik - - * geometry/griddata.m, geometry/griddatan.m, geometry/tsearchn.m: - Replace nan with NaN for nice visual cue. - - 2010-04-23 Rik - - * optimization/gplot.m: Eliminate parsing error for NaN inside - of matrix declaration. - - 2010-04-22 Rik - - * optimization/sqp.m: Return correct value (101) on succes. - Fixes bug #29577. - - 2010-04-22 Rik - - * optimization/glpk.m: Eliminate repmat (Inf, x , y) and just - use Inf (x,y). - - 2010-04-22 Rik - - * general/rat.m, sparse/gplot.m, strings/base2dec.m, - geometry/triplot.m, optimization/sqp.m, optimization/qp.m, - statistics/base/run_count.m, statistics/base/ranks.m: - Eliminate NaN*ones and Inf*ones constructs and just use Nan() - and Inf(). - - 2010-04-19 Ben Abbott - - * plot/colorbar.m: Allow 'peer' option to be specified. - * plot/colorbar.m: Consistent treatment of plotboxaspectratio, and - add listener for plotboxaspectratiomode. - * plot/axis.m: Consistent treatment of plotboxaspectratio. - * plot/__go_draw_axes__.m: Consistently determine axes position. - - 2010-04-17 Ben Abbott - - * plot/private/__actual_axis_position__.m: Fix bug when restoring - figure position property to its original value. - - 2010-04-16 David Bateman - - * plot/__go_draw_figure__.m: Pass bg_is_set to __go_draw_axes__. Don't - unset the background figure color. - * plot/__go_draw_axes__.m: Unset the background figure color here. - - * statistics/distributions/*: Replace constructs like "NaN * one()" - with "NaN()" and "Inf * ones ()" with "Inf()". - - 2010-04-15 David Bateman - - * statistics/distributions/discrete_pdf.m: Reimplement using lookup. - * statistics/distributions/discrete_inv.m: Reimplement using lookup. - * statistics/distributions/discrete_cdf.m: typo in last patch. - - 2010-04-15 Jaroslav Hajek - - * statistics/distributions/stdnormal_cdf.m: Calculate using erfc. - - 2010-04-13 David Bateman - - * statistics/discrete_cdf.m: Reimplement using lookup. - - 2010-04-13 Shai Ayal - - * plot/__fltk_ginput__.m: New functions, implement ginput for - fltk backend. - - 2010-04-13 Jaroslav Hajek - - * sparse/spalloc.m: Remove. - * sparse/module.mk: Update. - - 2010-04-16 Ben Abbott - - * plot/plotyy.m: Add listener for dataaspectratiomode. - - 2010-04-12 Ben Abbott - - * plot/loglog.m: Minor ticks on by default for loglog plots. - * plot/__plt_get_axis_arg__.m, plot/newplot.m: Respect the nextplot - property value of 'new' for axes and 'replacechildren' for axes and - figures. - - 2010-04-10 Ben Abbott - - * plot/__go_draw_figure__.m: Don't set background for non-visible axes. - - 2010-04-07 John W. Eaton - - * testfun/runtests.m: New function. - * testfun/module.mk (testfun_FCN_FILES): Add it to the list. - - 2010-02-19 Rik - - * statistics/cut.m: Modify cut to use the same decision criteria - as histc when deciding whether a data point is inside or outside - interval. - - 2010-04-02 Marc Vinyals - - * signal/arma_rnd.m: fix typo in test. - - 2010-04-02 Marc Vinyals - - * signal/arma_rnd.m: fix typo in test. - - 2010-03-30 Jaroslav Hajek - - * specfun/factor.m: Use rem to check divisibility. - - 2010-03-27 Ben Abbott - - * plot/__go_draw_figure__.m: Untabify. - * plot/print.m: Provide default suffixes & validate hardcopy format. - - 2010-03-27 Jaroslav Hajek - - * optimization/fzero.m: Handle the breakdown if initial bracketing - contains an exact root. Improve docstring. - - 2010-03-26 Jaroslav Hajek - - * miscellaneous/module.mk: Add unimplemented.m here. - - 2010-03-25 Ben Abbott - - * general/cell2mat.m: Add test for cells of cells. - - 2010-03-24 Petr Mikulik - - * plot/__go_draw_axes__.m: Unset logscale also for unused gnuplot - axis locations. - - 2010-03-24 Jaroslav Hajek - - * help/help.m: Maybe warn about unimplemented Matlab functions. - - 2010-03-24 Jaroslav Hajek - - * miscellaneous/unimplemented.m: New function. - - 2010-03-24 Jaroslav Hajek - - * general/cell2mat.m: Support cells of cells. - - 2010-03-23 John W. Eaton - - * plot/refreshdata.m: Don't use cell2mat on cell array of cell arrays. - - 2010-03-22 Soren Hauberg - - * image/gmap40.m, image/hot.m, image/hsv2rgb.m, image/image.m, - image/image_viewer.m, image/imfinfo.m, image/imread.m, image/imshow.m, - image/saveimage: Detabify. - - 2010-03-21 Soren Hauberg - - * general/quadv.m: Replace 'quadl' with 'quadv' in help text. - - 2010-03-20 Soren Hauberg - - * general/interp2.m: For nearest neighbour interpolation ceil - (instead of floor) at the center of the data intervals to be - compatible with Matlab. Add test. - * general/interpn.m: Ditto. - - 2010-03-19 Jaroslav Hajek - - * strings/strmatch.m (strtrimr): Rewrite for correct behavior. - Add test. - - 2010-03-18 Petr Mikulik - - * plot/print.m: Add '-append' option. - - 2010-03-18 Ben Abbott - - * plot/print.m: print.m: Detabify. - - 2010-03-16 Jaroslav Hajek - - * general/nthroot.m: Remove. - * general/module.mk: Update. - * specfun/nthroot.m: New source. - * specfun/module.mk: Update. - - 2010-03-16 Jaroslav Hajek - - * miscellaneous/intwarning.m: Deprecate. - - 2010-03-11 Jaroslav Hajek - - * strings/index.m: Make it a wrapper for strfind. - - 2010-03-11 Jaroslav Hajek - - * strings/strchr.m: Optimize. - - 2010-03-05 Soren Hauberg - - * pkg/pkg.m (write_index): include classes in autogenerated - INDEX files. - - 2010-03-05 Soren Hauberg - - * plot/fplot.m: Ensure that 'limits' is a 2 or 4 vector, and - that 'fn' is a function. - - 2010-03-05 Jaroslav Hajek - - * testfun/test.m: Support catching warnings and errors by IDs. - - 2010-03-05 Jaroslav Hajek - - * general/accumdim.m: Optimize the summation case. - - 2010-03-05 Jaroslav Hajek - - * general/accumdim.m: New function. - - 2010-03-05 Jaroslav Hajek - - * optimization/fzero.m: Avoid division by zero. - - 2010-03-04 Jaroslav Hajek - - * optimization/fminbnd.m: Fix tests. - - 2010-03-04 Jaroslav Hajek - - * optimization/fminbnd.m: Fix termination tolerances. - - 2010-03-02 Jaroslav Hajek - - * polynomial/convn.m: Remove. - * polynomial/module.mk: Update. - - 2010-02-28 John W. Eaton - - * set/unique.m: If the argument is sparse and we are not - operating on rows and we don't need indices, convert nonzero - elements to a full matrix and work on that instead, converting - back to sparse when done. - - 2010-02-28 John W. Eaton - - * set/unique.m: Return 0x1 arrays for empty arrays with some - nonzero dimensions. Return object with the same class as the - argument. New tests. - - 2010-02-27 Liam Groener - - * time/datetick.m: Fix 'keepticks' bug, and untabify. - - 2010-02-25 Jaroslav Hajek - - * strings/str2double.m: Remove. - - 2010-02-24 John W. Eaton - - * plot/private/__contour__.m (get_lvl_eps): New function. - Handle case of single level value. Use sqrt (eps) instead of 1e-6. - (update_text, add_patch_children): Use it. - - 2010-02-19 Rik - - * optimization/fzero.m: Add test for discontinuity at the end. - - 2010-02-18 John W. Eaton - - * image/imfinfo.m: Don't handle file time stamp here. - - 2010-02-17 Jaroslav Hajek - - * statistics/base/center.m: Convert integer inputs to doubles. - - 2010-02-17 Jaroslav Hajek - - * general/interp2: Slightly optimize linear interpolation. - - 2010-02-12 Jaroslav Hajek - - * general/interp2: Remove debug stub. - - 2010-02-12 Jaroslav Hajek - - * optimization/optimget.m: Simplify. - - 2010-02-11 Jaroslav Hajek - - * miscellaneous/parseparams.m: Extend to allow direct parsing of - options. - - 2010-02-10 Jaroslav Hajek - - * optimization/fminbnd.m: Undocument impossible info values. - * optimization/fzero.m: Ditto. - - * optimization/fzero.m: Make default TolX consistent with fminbnd. - 2010-02-10 Jaroslav Hajek - - * optimization/fminbnd.m: New function. - * optimization/module.mk: Add it here. - * optimization/fzero.m: Make default TolX consistent with fminbnd. - - 2010-02-10 Jaroslav Hajek - - * general/private/__isequal__.m: Remove list-related stub. - - 2010-02-09 John W. Eaton - - * image/imshow.m: Allow logical values for images. - - 2010-02-09 Jaroslav Hajek - - * general/accumarray.m: Use != instead of diff to compare indices in - dense case. Set explicit mode in sparse case to aid optimization. - - 2010-02-09 Jaroslav Hajek - - * miscellaneous/menu.m: Use sscanf rather than eval. - - 2010-02-09 Jaroslav Hajek - - * miscellaneous/substruct.m: Vectorize. - - 2010-02-08 Jaroslav Hajek - - * general/accumarray.m: Document complexity. - - 2010-02-08 Jaroslav Hajek - - * general/accumarray.m: Add new test that also forces index cache - generation for faster sorting. - - 2010-02-08 Jaroslav Hajek - - * general/accumarray.m: 1 more small fix. - - 2010-02-06 Jaroslav Hajek - - * general/accumarray.m: Small fixes. - - 2010-02-05 Jaroslav Hajek - - * general/accumarray.m: Rewrite. Split sparse and dense case. Treat - cell-valued subs efficiently. Optimize dense case for @sum, @max and - @min. Optimize the @(x){x} reduction. Add tests. - - 2010-02-04 Jaroslav Hajek - - * miscellaneous/dir.m: Fix month passed to datenum. - - 2010-02-03 Jaroslav Hajek - - * general/private/__isequal__.m: Handle function handles. - - 2010-02-01 David Bateman - - * plot/__go_draw_axes__.m (get_old_gnuplot_color): Remove as - no longer used (for gnuplot 4.0). - - * plot/private/__scatter__.m: Treat "flat" colored patches as - a single patch. - * plot/__go_draw_axes__.m: If a patch object is flat, treat its - outline with the gnuplot "palette". - - 2010-01-30 Thorsten Meyer - - * statistics/tests/kruskal_wallis_test.m: Replace chisquare_cdf - by chi2cdf. - - 2010-01-29 Ben Abbott - - * plot/axis.m, plot/__go_draw_axes__.m, plot/colorbar.m, - plot/isocolors.m, plot/isonormals.m, plot/isosurface.m, - plot/plotyy.m, plot/polar.m, plot/surfl.m, - plot/private/__actual_axis_position.m: - Replace dataaspectratio and dataaspectratiomode properties with - plotboxaspectratio and plotboxaspectratio properties. - - 2010-01-29 John W. Eaton - - * polynomial/compan.m, polynomial/conv.m, polynomial/deconv.m, - polynomial/mpoles.m, polynomial/polyderiv.m, - polynomial/polygcd.m, polynomial/polyout.m, - polynomial/polyreduce.m, polynomial/polyval.m, - polynomial/polyvalm.m, polynomial/residue.m: - Point to polyint in @seealso, not polyinteg. - - * deprecated/module.mk (deprecated_FCN_FILES): - Remove delete files from the list. - - * deprecated/beta_cdf.m, deprecated/beta_inv.m, - deprecated/beta_pdf.m, deprecated/beta_rnd.m, - deprecated/binomial_cdf.m, deprecated/binomial_inv.m, - deprecated/binomial_pdf.m, deprecated/binomial_rnd.m, - deprecated/chisquare_cdf.m, deprecated/chisquare_inv.m, - deprecated/chisquare_pdf.m, deprecated/chisquare_rnd.m, - deprecated/clearplot.m, deprecated/com2str.m, - deprecated/exponential_cdf.m, deprecated/exponential_inv.m, - deprecated/exponential_pdf.m, deprecated/exponential_rnd.m, - deprecated/f_cdf.m, deprecated/f_inv.m, deprecated/f_pdf.m, - deprecated/f_rnd.m, deprecated/gamma_cdf.m, - deprecated/gamma_inv.m, deprecated/gamma_pdf.m, - deprecated/gamma_rnd.m, deprecated/geometric_cdf.m, - deprecated/geometric_inv.m, deprecated/geometric_pdf.m, - deprecated/geometric_rnd.m, deprecated/hypergeometric_cdf.m, - deprecated/hypergeometric_inv.m, - deprecated/hypergeometric_pdf.m, - deprecated/hypergeometric_rnd.m, deprecated/intersection.m, - deprecated/is_bool.m, deprecated/is_complex.m, - deprecated/is_list.m, deprecated/is_matrix.m, - deprecated/is_scalar.m, deprecated/is_square.m, - deprecated/is_stream.m, deprecated/is_struct.m, - deprecated/is_symmetric.m, deprecated/is_vector.m, - deprecated/lognormal_cdf.m, deprecated/lognormal_inv.m, - deprecated/lognormal_pdf.m, deprecated/lognormal_rnd.m, - deprecated/meshdom.m, deprecated/normal_cdf.m, - deprecated/normal_inv.m, deprecated/normal_pdf.m, - deprecated/normal_rnd.m, deprecated/pascal_cdf.m, - deprecated/pascal_inv.m, deprecated/pascal_pdf.m, - deprecated/pascal_rnd.m, deprecated/poisson_cdf.m, - deprecated/poisson_inv.m, deprecated/poisson_pdf.m, - deprecated/poisson_rnd.m, deprecated/polyinteg.m, - deprecated/struct_contains.m, deprecated/struct_elements.m, - deprecated/t_cdf.m, deprecated/t_inv.m, deprecated/t_pdf.m, - deprecated/t_rnd.m, deprecated/uniform_cdf.m, - deprecated/uniform_inv.m, deprecated/uniform_pdf.m, - deprecated/uniform_rnd.m, deprecated/weibull_cdf.m, - deprecated/weibull_inv.m, deprecated/weibull_pdf.m, - deprecated/weibull_rnd.m, deprecated/wiener_rnd.m: - Delete functions deprecated in version 3.0.0. - - * deprecated/weibcdf.m, deprecated/weibinv.m, - deprecated/weibpdf.m, deprecated/weibrnd.m: - Note that Matlab still has these functions, so they probabl - should not be removed with other functions deprecated in 3.0.0. - - 2010-01-28 Ben Abbott - - * plot/daspect.m, plot/pbaspect.m: New functions. - - 2010-01-28 John W. Eaton - - * general/Makefile.am (general_FCN_FILES): Add chop.m to the list. - - 2010-01-28 John W. Eaton - - * deprecated/isstr.m, deprecated/clg.m, deprecated/setstr.m: - Note that Matlab still has these functions, so they probabl - should not be removed with other functions deprecated in 3.0.0. - - 2010-01-27 Thorsten Meyer - - * plot/gnuplot_drawnow.m: Add "emf" to the list of enhanced - terminals for the gnuplot backend. - - 2010-01-26 John W. Eaton - - * general/chop.m: New function. - - 2010-01-26 Jaroslav Hajek - - * optimization/fsolve.m: Support TypicalX, autoscale only if - AutoScaling is on, off by default. Fix default tolerances. - * optimization/fminunc.m: Support TypicalX, autoscale only if - AutoScaling is on, off by default Fix default tolerances.. - * optimization/private/__fdjac__.m: Accept typicalx as a parameter. - - 2010-01-26 Jaroslav Hajek - - * optimization/pqpnonneg.m: If Cholesky update failed, switch off - updating but continue. - - 2010-01-26 Jaroslav Hajek - - * pkg/pkg.m: More complement -> setdiff changes. - - 2010-01-23 Jaroslav Hajek - - * pkg/pkg.m: Use setdiff rather than complement. - - 2010-01-20 John W. Eaton - - * gethelp.cc: Untabfy. - - 2010-01-20 Ben Abbott - - * plot/__go_draw_figure__.m: Reverse order axes are drawn. - - 2010-01-20 David Bateman - - * plot/private/__contour__.m: Set default linestyle if pltopt returns - an empty style. - - 2010-01-20 John W. Eaton - - * time/datetick.m: Make form arg optional. - From Philip Nienhuis . - - 2010-01-20 David Bateman - - * plot/__go_draw_axes__.m: Correct an error in drawing of patch - objects where unrequested markers were drawn. - - * plot/__go_draw_figure__.m: Also plot white foreground and - background colors. - * plot/plotyy.m: Set axes colors to "none". - - * plot/__go_draw_axes__.m (next_marker): Remove and all uses of - this function. - Partially respect the markeredgecolor and markerfacecolor properties. - * plot/private/__color__str_rgb__.m: New function - * plot/module.mk: Add it here. - * plot/__next_line_style__.m: New function selected next line style - using the axes linestyleorder property. - * plot/__next_line_color.m: Increment next line style here. - * plot/newplot.m: Reset next line style here. - * plot/module.mk: Add __next_line_style__.m here. - * plot/plot3.m: Use __next_line_style__ here. - * plot/private/plt.m: And here. - * plot/private/stem.m: And here. - * plot/private/scatter.m: And here. Correctly handle nargin == 3. Use - matlab compatible edgecolor, markeredgecolor and markerfacecolor - property values. - * plot/private/pltopt.m: Remove "@" marker as an option. - * plot/private/__default_plot_options__.m: Default plot options - are empty signalling that __next_line_color__ and - __next_line_style should be used. - - 2010-01-19 Jaroslav Hajek - - * general/structfun.m: Error when invalid options are specified. - - 2010-01-19 Jaroslav Hajek , Thorsten Meyer - - * general/structfun.m: Correctly support multiple arguments with - non-uniform output. Correct test for non-uniform output. - - 2010-01-19 Jaroslav Hajek - - * help/print_usage.m: Try determining whether called from top level. - If not, don't print additional help and enable backtrace instead. - - 2010-01-18 John W. Eaton - - * testfun/test.m: Undo previous change. - - 2010-01-18 David Grundberg - - * testfun/test.m: Append endfunction to function test blocks. - - 2010-01-17 Thorsten Meyer - - * general/celldisp.m: Add example, add demo. - - * general/structfun.m, miscellaneous/getfield.m, - miscellaneous/orderfields.m, miscellaneous/setfield.m, - miscellaneous/substruct.m: Update documentation string. - - 2010-01-16 David Bateman - - * plot/__go_draw_axes__.m (next_marker): New function to find a - new marker. Use it to support the "@" marker. - * plot/private/__pltopt__.m: Don't convert "@" marker ro "+"; - - 2010-01-15 David Bateman - - plot/__go_draw_figure__.m: Respect the figure and axes color - properties. - - 2010-01-14 David Bateman - - * plot/__go_draw_axes__.m: Fix for markerfacecolor and - markeredgecolor for unfillable points like '+'. - - 2010-01-14 Jaroslav Hajek - - * io/fileread.m: Add missing semicolon. - - 2010-01-14 Jaroslav Hajek - - * strings/strcmpi.m: Remove. - * strings/strncmpi.m: Remove. - * strings/module.mk: Update. - - 2010-01-13 John W. Eaton - - * miscellaneous/inputname.m: Use isvarname instead of regexp. - - 2010-01-13 John W. Eaton - - * miscellaneous/inputname.m: Return "" if argument name is not a - valid identifier. Update docstring. - - 2010-01-12 David Bateman - - * plot/__go_draw_axes_.m: Allow patch markerfacecolor and - markeredgecolor properties to be used and set the marker colors - appropriately. - - 2010-01-12 Jaroslav Hajek - Ben Barrowes - - * set/private/validargs.m: New function. - * set/module.mk: Add it here. - * set/ismember.m: Use it here. - * set/intersect.m: Ditto. - * set/union.m: Ditto. - * set/setdiff.m: Ditto. - * set/setxor.m: Ditto. - - 2010-01-11 Rik - - * Makefile.am: Update DOCSTRINGS rules to avoid - simple_move_if_change_rule and allow Make to update timestamps. - - 2010-01-11 Jaroslav Hajek - - * plot/private/__scatter__.m: Use patch objects instead of lines, - switch at 100 points. - - 2010-01-11 Jaroslav Hajek - - * plot/private/__scatter__.m: Fix typos. - - 2010-01-11 Jaroslav Hajek - - * io/fileread.m: New source. - - 2010-01-10 Jaroslav Hajek - - * plot/private/__scatter__.m: Use alternative strategy for larger - point sets. - - 2010-01-06 Ben Abbott - - * optimization/qp.m: Add missing semicolon. - - 2010-01-11 Ben Barrowes - - * set/: allow set scripts to handle cell inputs - - 2010-01-05 Jaroslav Hajek - - * optimization/qp.m: Supply default values on request and register - options. - - 2010-01-05 John W. Eaton - - * qp.m: Allow linear term and constraint arguments to be - optional. - - 2010-01-05 Joshua Redstone - - * qp.m: Handle optimset options struct argument. - - 2010-01-04 Jaroslav Hajek - - * strings/strmatch.m: Optimize. - - 2010-01-04 Jaroslav Hajek - - * strings/strrep.m: Remove. - * strings/module.mk: Update. - - 2010-01-02 Jaroslav Hajek - - * optimization/fsolve.m: Support old style jacobian passing. - - 2010-01-01 Jaroslav Hajek - - * set/powerset.m: New function. - * set/module.mk: Include it. - - 2009-12-30 Jaroslav Hajek - - * general/common_size.m: Use named function rather than a handle. - - 2009-12-29 Jaroslav Hajek - - * set/complement.m: Deprecate. - - 2009-12-28 Jaroslav Hajek - - * strings/strcat.m: Further simplify. - - 2009-12-27 Jaroslav Hajek - - * general/common_size.m: Optimize. - - 2009-12-27 Jaroslav Hajek - - * strings/strcat.m: Vectorize. - - 2009-12-26 Jaroslav Hajek - - * miscellaneous/xor.m: Optimize. - - 2009-12-25 Jaroslav Hajek - - * general/issquare.m: Do not check type. - * linear-algebra/issymmetric.m: Strengthen test. - * linear-algebra/ishermitian.m: Strengthen test. - - 2009-12-25 Jaroslav Hajek - - * strings/strfind.m: Remove. - * strings/module.mk: Update. - - 2009-12-24 Jaroslav Hajek - - * strings/strjust.m: Rewrite. - - 2009-12-23 Jaroslav Hajek - - * strings/strjust.m: Special-case string and empty argument. - - 2009-12-19 Rik - - * Makefile.am: Eliminate TOPDIR variable in favor of built-in automake - variables of top_builddir and top_srcdir. - - 2009-12-18 Rik - - * Makefile.am: Use Automake syntax to build helper program gethelp - - 2009-12-17 Rik - - * testfun/test.m: Add newline to message output. - - 2009-12-14 John W. Eaton - - * specfun/isprime.m: Produce logical result. Error if nargin > 1. - New tests. - - 2009-12-14 John W. Eaton - - * help/__makeinfo__.m: Use fullfile to concatenate file name - components. Use hyphens instead of underscores in tmp file name. - - 2009-12-14 Jaroslav Hajek - - * help/__makeinfo__.m: Use P_tmpdir to create temporary file. - - 2009-12-09 Rik - - * polynomial/module.mk: Correct typo and distribute newly - created ppder.m. - - 2009-12-13 Jaroslav Hajek - - * ppder.m: New function. - * ppint.m: New function. - * ppjumps.m: New function. - - 2009-12-09 Rik - - * Makefile.am: remove install-images target and use automake - syntax to distribute image data. - - 2009-12-11 John W. Eaton - - * Makefile.am (DOCSTRINGS): Use $(cp_update_rule) instead of - cp -a --update. - - 2009-12-09 Rik - - * Makefile.am: Copy DOCSTRINGS from srcdir to builddir if it does not - exist. Enables VPATH builds. - - 2009-12-08 Petr Mikulik - - * plot/gnuplot_drawnow.m: Prune prompt lines from dumb terminal output. - * plot/__go_draw_figure__.m: Add missing 'unset multiplot' to restore - hotkey and mouse functionality for 2D plots. - - 2009-12-09 Rik - - * Makefile.am: Distribute DOCSTRINGS in tar.gz file. - * mkdoc: Pass current directory, "./", when running mkdoc on - local files. - - 2009-12-07 Jaroslav Hajek - - * general/interp1q.m: Use more optimal code. - - 2009-12-08 John W. Eaton - - * Makefile.am (DOCSTRINGS): Depend on $(GEN_FCN_FILES) instead - of $(FCN_FILES_IN). Pass $(GEN_FCN_FILES) to mkdoc instead of - $(FCN_FILES_IN). Use mv instead of $(simple_move_if_change_rule). - (EXTRA_DIST): Include $(GEN_FCN_FILES) in the list. - - 2009-12-07 Jaroslav Hajek - - * general/interp1.m: Allow discontinuities (jumps) for the - "nearest" and "linear" methods. Document the feature and add a - few tests. - - 2009-12-06 Rik - - * Makefile.am: Distribute DOCSTRINGS so that documentation will - not require rebuild after merely untarring a distribution. - * mkdoc: Change output to refer to mfiles as "scripts/..." rather than - "$srcdir/...". Otherwise, distributed DOCSTRINGS file will not match - DOCSTRINGS created under a VPATH build and documentation will be - unnecessarily rebuilt. - - 2009-12-05 Jaroslav Hajek - - * set/ismember.m: Simplify. - - 2009-12-03 John W. Eaton - - * audio/wavwrite.m: Delete generated a.wav file after each test. - - * Makefile.am (DIRSTAMP_FILES, DISTCLEANFILES): New variables. - (DOCSTRINGS): Also depend on $(FCN_FILES_IN). Pass - $(FCN_FILES_IN) to mkdoc instead of $(GEN_FCN_FILES). Tell mkdoc - to look for $(FCN_FILES_IN) files in $(srcdir), not build - directory. - (DISTCLEANFILES): New variable. - Don't silence dirstamp, DOCSTRINGS, $(GEN_FCN_FILES), and PKG_ADD - rules. - - * audio/module.mk, deprecated/module.mk, elfun/module.mk, - help/module.mk, general/module.mk, geometry/module.mk, - image/module.mk, io/module.mk, linear-algebra/module.mk, - miscellaneous/module.mk, @ftp/module.mk, optimization/module.mk, - path/module.mk, pkg/module.mk, plot/module.mk, - polynomial/module.mk, set/module.mk, signal/module.mk, - sparse/module.mk, specfun/module.mk, special-matrix/module.mk, - startup/module.mk, statistics/base/module.mk, - statistics/distributions/module.mk, statistics/models/module.mk, - statistics/tests/module.mk, strings/module.mk, testfun/module.mk, - time/module.mk: Append to DIRSTAMP_FILES. - - 2009-12-02 Rik - - * image/imread.m: Run test case only if underlying GraphicMagick - library exists. - - 2009-12-02 John W. Eaton - - * help/module.mk: Fix typo in previous change. - - 2009-12-01 John W. Eaton - - * help/module.mk (help_PRIVATE_FCN_FILES): New list. - (help_FCN_FILES): Remove new private functions from the list. - Include $(help_PRIVATE_FCN_FILES) in the list. - * help/private/__additional_help_message__.m: Rename from - help/__additional_help_message__.m. - - * statistics/base/module.mk (statistics_base_FCN_FILES): - Remove statistics/base/__quantile__.m from the list. - * statistics/base/__quantile__.m: Now a subfunction of - statistics/base/quantile.m. - * statistics/base/quantile.m: Remove redundant tests. - - * miscellaneous/__xzip__.m: Comment out tests until we have a way - to test private functions directly. - - * general/isequal.m, general/isequalwithequalnans.m: - Convert tests from __isequal__. - - * optimization/module.mk (optimization_PRIVATE_FCN_FILES): New list. - (optimization_FCN_FILES): Remove new private functions and new - subfunctions from the list. Include - $(optimization_PRIVATE_FCN_FILES) in the list. - - * optimization/private/__fdjac__.m: Rename from - optimization/__fdjac__.m. - - * optimization/__dogleg__.m: Now a subfunction of path/fsolve.m. - * optimization/__doglegm__.m: Now a subfunction of path/fminunc.m. - - * general/module.mk (general_PRIVATE_FCN_FILES): New list. - (general_FCN_FILES): Remove new private functions from the list. - Include $(general_PRIVATE_FCN_FILES) in the list. - - * general/private/__isequal__.m: Rename from general/__isequal__.m. - * general/private/__splinen__.m: Rename from general/__splinen__.m. - - * image/module.mk (image_FCN_FILES): Remove image/__img__.m and - image/__img_via_file__.m from the list. - - * image/__img__.m: Now a subfunction of image/image.m. - * image/__img_via_file__.m: Now a subfunction of image_viewer.m. - - * path/module.mk (path_FCN_FILES): Remove path/__extractpath__.m - from the list. - - * path/__extractpath__.m: Now a subfunction of path/pathdef.m. - - * miscellaneous/module.mk (miscellaneous_PRIVATE_FCN_FILES): New list. - (miscellaneous_FCN_FILES): Remove __xzip__.m from the list. - Include $(miscellaneous_PRIVATE_FCN_FILES) in the list. - - * miscellaneous/private/__xzip__.m: Rename from - miscellaneous/__xzip__.m. - - 2009-12-01 David Bateman - - * @ftp/ftp.m: Treat empty constructor and construction from - another FTP object. - * @ftp/loadobj.m: Allow and remove the matlab specific fields - of FTP objects allowing matlab FTP objects to be loaded in Octave. - * @ftp/display.m: user -> username. - - 2009-12-01 John W. Eaton - - * plot/module.mk (plot_PRIVATE_FCN_FILES): New list. - (plot_FCN_FILES): Include $(plot_PRIVATE_FCN_FILES) in the list. - Remove new private functions and new subfunctions from the list. - - * plot/private/__actual_axis_position__.m: Rename from - plot/__actual_axis_position__.m. - * plot/private/__add_datasource__.m: Rename from - plot/__add_datasource__.m. - * plot/private/__axes_limits__.m: Rename from plot/__axes_limits__.m. - * plot/private/__axis_label__.m: Rename from plot/__axis_label__.m. - * plot/private/__bar__.m: Rename from plot/__bar__.m. - * plot/private/__clabel__.m: Rename from plot/__clabel__.m. - * plot/private/__contour__.m: Rename from plot/__contour__.m. - * plot/private/__default_plot_options__.m: Rename from - plot/__default_plot_options__.m. - * plot/private/__errcomm__.m: Rename from plot/__errcomm__.m. - * plot/private/__errplot__.m: Rename from plot/__errplot__.m. - * plot/private/__ezplot__.m: Rename from plot/__ezplot__.m. - * plot/private/__interp_cube__.m: Rename from plot/__interp_cube__.m. - * plot/private/__line__.m: Rename from plot/__line__.m. - * plot/private/__patch__.m: Rename from plot/__patch__.m. - * plot/private/__plt__.m: Rename from plot/__plt__.m. - * plot/private/__pltopt__.m: Rename from plot/__pltopt__.m. - * plot/private/__quiver__.m: Rename from plot/__quiver__.m - * plot/private/__scatter__.m: Rename from plot/__scatter__.m. - * plot/private/__stem__.m: Rename from plot/__stem__.m. - - * plot/__pltopt1__.m: Now a subfunction of plot/__pltopt__.m. - - * plot/__bars__.m: Now a subfunction of plot/__bar__.m. - * plot/__bar__.m (bars): Rename from __bars__. - (__bar__): Call bars insteaad of __bars__. - - * plot/__area__.m: Now a subfunction of plot/area.m. - - * plot/__plr1__.m, plot/__plr2__.m: Now subfunctions of polar.m. - - * plot/__plt1__.m, plot/__plt2__.m, plot/__plt2mm__.m, - plot/__plt2mv__.m, plot/__plt2ss__.m, plot/__plt2sv__.m, - plot/__plt2vm__.m, plot/__plt2vs__.m, plot/__plt2vv__.m: - Now subfunctions of __plt__.m. - - 2009-11-30 John W. Eaton - - * mkdoc: Handle classes in function names. - - 2009-11-27 David Bateman - - * @ftp/ascii.m, @ftp/binary.m, @ftp/cd.m, @ftp/close.m, - @ftp/delete.m, @ftp/dir.m, @ftp/display.m, @ftp/ftp.m, - @ftp/loadobj.m, @ftp/mget.m, @ftp/mkdir.m, @ftp/module.mk, - @ftp/mput.m, @ftp/rename.m, @ftp/rmdir.m, @ftp/saveobj.m: New files - * Makefile.am: Add the @ftp to the build. - - 2009-11-26 Jaroslav Hajek - - * linear-algebra/cross.m: Avoid doing indexing twice. - - 2009-11-26 Jaroslav Hajek - - * linear-algebra/normest.m: Randomize initial vector. - - 2009-11-26 Jaroslav Hajek - - * linear-algebra/dot.m: Remove. - * linear-algebra/module.mk: Update. - - 2009-11-26 Jaroslav Hajek - - * optimization/qp.m: Fix matrix tests. - * optimization/condest.m: Ditto. - * optimization/krylov.m: Ditto. - - 2009-11-26 Jaroslav Hajek - - * sparse/normest.m: Move to linear-algebra. - * linear-algebra/normest.m: Simplify. Don't form A'*A explicitly. - - 2009-11-25 Jaroslav Hajek - - * linear-algebra/isdefinite.m: Use Cholesky factorization. - - 2009-11-24 Jaroslav Hajek - - * general/issymmetric.m: Move to linear-algebra. - * general/isdefinite.m: Ditto. - * linear-algebra/issymmetric.m: Use 0 as default tolerance. Optimize - this case. Check for symmetry, not hermitianness. - * linear-algebra/ishermitian.m: New function. - * linear-algebra/isdefinite.m: Use ishermitian instead of issymmetric. - - 2009-11-24 Jaroslav Hajek - - * general/cellidx.m: Deprecate. - - 2009-11-24 Jaroslav Hajek - - * general/issquare.m: Change to return consistent result for empty - matrices. - - 2009-11-24 Jaroslav Hajek - - * general/cell2mat.m: Check type of all elements. Slightly optimize. - Add tests. - - 2009-11-24 Jaroslav Hajek - - * general/accumarray.m: Use num2cell instead of mat2cell. Use repmat. - - 2009-11-20 Jaroslav Hajek - - * script/miscellaneous/getfield: Deblank field names, gripe on invalid - index. - * script/miscellaneous/setfield: Rewrite using subsasgn. - - 2009-11-22 Michael Goffioul - - * plot/print.m: Properly set the default ghostscript_binary - under Windows. Modify the search for the ghostscript binary - so that it works for Win32, mingw, Cygwin, and Unix systems. - - 2009-11-20 Jaroslav Hajek - - * strings/dec2base.m: Fix division. - - 2009-11-20 Lukas Reichlin - - * linear-algebra/krylov.m: Add missing swap routine. - - 2009-11-20 Jaroslav Hajek - - * general/__isequal__.m: Check for isnumeric|islogical. - * testfun/assert.m: Ditto. - - 2009-11-19 Jaroslav Hajek - - * specfun/perms.m: Avoid recursion. Simplify assignments. Allow empty - vectors. - - 2009-11-19 Jaroslav Hajek - - * specfun/erfinv.m: Remove. - * specfun/module.mk: Update. - - 2009-11-18 Ben Abbott - - * plot/orient.m: Flip papersize and paperposition when orientation - changes. Add support for 'tall' option. Add tests. - - 2009-11-18 Jaroslav Hajek - - * io/textread.m: strncmp->strcmpi. - - 2009-11-14 Jaroslav Hajek - - * linear-algebra/expm.m: Fix typo. - - 2009-11-11 John W. Eaton - - * miscellaneous/intwarning.m: Doc fix. - - 2009-11-11 John W. Eaton - - * plot/stairs.m (__stairs__): Correct nargin check. New demos. - From Jakub Kasse . - - 2009-11-11 John W. Eaton - - * help/help.m (help): Return immediately after calling do_contents. - (do_contents): Find all matching directories, not just the first. - Call get_help_text_from_file to avoid looking in path. - Handle printing here. - - 2009-11-10 John W. Eaton - - * Makefile.am, audio/module.mk, deprecated/module.mk, - elfun/module.mk, general/module.mk, geometry/module.mk, - help/module.mk, image/module.mk, io/module.mk, - linear-algebra/module.mk, miscellaneous/module.mk, - optimization/module.mk, path/module.mk, pkg/module.mk, - plot/module.mk, polynomial/module.mk, set/module.mk, - signal/module.mk, sparse/Makefile.in, specfun/Makefile.in, - special-matrix/Makefile.in, startup/Makefile.in, - statistics/Makefile.in, statistics/base/module.mk, - statistics/distributions/module.mk, statistics/models/module.mk, - statistics/tests/module.mk, strings/module.mk, testfun/module.mk, - time/module.mk: New files. - * Makefile.in, move-if-change, configure.ac, audio/Makefile.in, - deprecated/Makefile.in, elfun/Makefile.in, general/Makefile.in, - geometry/Makefile.in, help/Makefile.in, image/Makefile.in, - io/Makefile.in, linear-algebra/Makefile.in, - miscellaneous/Makefile.in, optimization/Makefile.in, - path/Makefile.in, pkg/Makefile.in, plot/Makefile.in, - polynomial/Makefile.in, set/Makefile.in, signal/Makefile.in, - skip-autoheader, sparse/module.mk, specfun/module.mk, - special-matrix/module.mk, startup/module.mk, - statistics/base/Makefile.in, statistics/distributions/Makefile.in, - statistics/models/Makefile.in, statistics/tests/Makefile.in, - strings/Makefile.in, testfun/Makefile.in, time/Makefile.in: - Delete. - * mk-pkg-add: Rename from mkpkgadd. - * mkdoc, mk-pkg-addd: Operate on explicit lists of files instead - of directory names. - * mkdoc: Skip files not ending in .m. - - 2009-11-10 Ben Abbott - - * plot/__go_draw_axes__.m: No 'with linestyle' when linestyle == 'none'. - - 2009-11-09 Jaroslav Hajek - - * general/arrayfun.m: Fix nargout=0 case. - - 2009-11-08 Petr Mikulik - - * plot/gnuplot_drawnow.m: Support gnuplot's dumb terminal. - - 2009-11-02 Stefan Hepp - - * plot/gnuplot_drawnow.m (gnuplot_default_term): Don't set term to - x11 unless DISPLAY is set. - - 2009-11-02 Jaroslav Hajek - - * general/interp1.m: Simplify. - - 2009-11-02 Jaroslav Hajek - - * polynomial/mkpp.m: Improve Matlab compatibility. - * polynomial/ppval.m: Ditto. - * polynomial/unmkpp: Update. - * polynomial/pchip.m: Update and optimize. - * polynomial/spline.m: Update. - * general/__splinen__.m: Update. - - 2009-10-23 Jaroslav Hajek - - * general/tril.m, general/triu.m: Remove sources. - * general/Makefile.in: Update. - - 2009-10-20 Soren Hauberg - - * general/interp2.m: improved error checking and support for bicubic - interpolation when X and Y are meshgrid format. - - 2009-10-22 Jaroslav Hajek - - * general/interp1.m: Perform optimizations, improve code (use switch - instead of multiple ifs). - * polynomial/pchip.m: Employ more optimized formulas (from SLATEC). - - 2009-10-22 Soren Hauberg - - * image/autumn.m, image/bone.m, image/cool.m, image/copper.m, - image/flag.m, image/gmap40.m, image/gray.m, image/hot.m, - image/hsv.m, image/jet.m, image/ocean.m, image/pink.m, - image/prism.m, image/rainbow.m, image/spring.m, image/summer.m, - image/white.m, image/winter.m: Add demos. - - 2009-10-20 Soren Hauberg - - * general/interp2.m: improved error checking and support for bicubic - - 2009-10-19 Soren Hauberg - - * io/strread.m, io/textread.m: New functions. - - 2009-10-20 Jaroslav Hajek - - * statistics/base/center.m: Rewrite using bsxfun. - - 2009-10-15 David Bateman - - * plot/__go_draw_axes__.m: Allow line and surface markerfacecolor - and markeredgecolor properties to be used and set the marker colors - appropriately. - - 2009-10-14 Jaroslav Hajek - - * statistics/base/median.m: Rewrite using nth_element. - - 2009-10-01 John W. Eaton - - * image/__img__.m: Adjust xlim and ylim correctly. - - 2009-10-01 John W. Eaton - - * Makefile.in (plot/gnuplot_binary.m): New rule. - (DOCSTRINGS): Depend on plot/gnuplot_binary.m. - (ALL_M_FILES): Define with =, not :=. - - 2009-10-01 Jaroslav Hajek - - * geometry/griddata.m: Fix handling vector xi, yi. - - 2009-09-30 Jaroslav Hajek - - * general/arrayfun.m: Simplify. - - 2009-09-30 John W. Eaton - - * mkdoc: Work on list of file names instead of a directory. - * Makefile.in (ALL_M_FILES): Don't strip directories. - Also search build directory if it is different from $(srcdir). - Pass $(ALL_M_FILES) to mkdoc. - - 2009-09-30 Michael D. Godfrey - - * plot/clabel.m: Spelling fix. - * plot/newplot.m: Update docstring. - - 2009-09-28 John W. Eaton - - * general/sortrows.m: Also use old algorithm for sparse matrices. - - 2009-09-21 Jaroslav Hajek - - * set/union.m: Fix docstring. - * set/setxor.m: Fix docstring. - - 2009-09-16 Jaroslav Hajek - - * general/randperm.m: Remove. - * general/Makefile.in: Update. - - 2009-09-15 John W. Eaton - - * confiugre.ac: Rename from configure.in - * Makefile.in: Rename all instances of configure.in to - configure.ac. - - 2009-09-11 Jaroslav Hajek - - * optimization/Makefile.in: Include __doglegm__.m. - - 2009-09-11 Jaroslav Hajek - - * optimization/fminunc.m: Simplify damped BFGS calculation. - - 2009-09-09 Tatsuro Matsuoka - - * plot/gnuplot_drawnow.m: Avoid flickering windows by avoding - 'set multiplot' / 'unset multiplot' for gnuplot's windows and - wxt terminals. - - 2009-09-06 Jaroslav Hajek - - * optimization/__dogleg__.m: Revert to revision 22c8272af34b. - * optimization/__doglegm__.m: New source. - * optimization/fminunc.m: Use it. - - 2009-09-08 John W. Eaton - - * io/dlmwrite.m: Fix typo. - - 2009-09-06 Jaroslav Hajek - - * optimization/fsolve.m: Change initial TR step strategy. - * optimization/fminunc.m: Change initial TR step strategy. - - 2009-09-08 Jaroslav Hajek - - * optimization/fminunc.m: Correct extra output params handling. - - 2009-09-06 Jaroslav Hajek - - * optimization/fsolve.m: Update initial factor. - * optimization/fminunc.m: Update initial factor. - - 2009-09-06 Jaroslav Hajek - - * general/arrayfun.m: Fix test. - - 2009-09-05 John W. Eaton - - * plot/hold.m: Correctly toggle hold state. Set both figure and - axes "nextplot" property when turning hold state on. - * plot/ishold.m: Check figure and axes nextplot properties. - Accept axes or figure handle argument. - - 2009-09-01 Christophe Tournery - - * audio/wavread.m: Rename data_size from obsolete ck_size. - - 2009-08-31 David Bateman - - * general/quadgk.m: More care with the interval length and - convergence of contour integrals. - - 2009-08-29 John W. Eaton - - * time/datestr.m: Add missing semicolon. - - 2009-08-17 Jaroslav Hajek - - * general/int2str.m: Convert to double before calling log10. - - 2009-08-26 E. Joshua Rigler - - * time/datestr.m: Set tm.isdst to -1 before calling mktime. - - 2009-08-25 John W. Eaton - - * plot/__gnuplot_open_stream__.m: Save pid in __plot_stream__ property. - * plot/gnuplot_drawnow.m: Wait for gnuplot subprocess when printing. - From Ben Abbott , Rob Mahurin , and - Dmitri Sergatskov . - - 2009-08-22 David Bateman - - * plot/__add_datasource__.m: Correct test for "datasource" argument - * plot/__countour__.m: Add edgecolor properties and make it an alias - for linecolor with the value "auto" being "flat" for the edgecolor. - - 2009-08-17 John W. Eaton - - * help/print_usage.m: Make it work again if an argument is given. - - 2009-08-17 Jaroslav Hajek - - * help/print_usage: Allow calling from methods. - - 2009-08-11 Jaroslav Hajek - - * general/diff.m: Remove. - * general/Makefile.in: Update. - - 2009-08-07 Jaroslav Hajek - - * general/flipdim.m: Fix omitted check. - - 2009-08-07 Jaroslav Hajek - - * general/flipdim.m: Simplify. - - 2009-08-07 Olli Saarela - - * plot/__gnuplot_ginput__.m: If read fails to return data, sleep - before trying again. - - 2009-08-06 John W. Eaton - - * plot/compass.m, plot/feather.m: Simplify argument processing. - - 2009-08-06 John W. Eaton - - * statistics/base/std.m: Correctly work along singleton dimension. - From Christoph Ellenberger . - - 2009-08-06 Jaroslav Hajek - - * geometry/griddata.m: Optimize. - - 2009-08-06 Olaf Till - - * geometry/griddata.m: Linearize arrays. - - 2009-08-04 Pieter Eendebak - - * set/setxor.m: Added test for cell arrays of strings. - - 2009-08-05 Olli Saarela - - * plot/__gnuplot_get_var__.m: If read fails to return data, sleep - before trying again. - - 2009-08-04 Pieter Eendebak - - * set/setxor.m: Support cell arrays of strings. - - 2009-08-03 Jaroslav Hajek - - * general/sub2ind.m: Remove source. - * general/ind2sub.m: Remove source. - * general/Makefile.in: Update. - - 2009-08-02 Ben Abbott - - * plot/gnuplot_drawnow.m: Avoid the flickering x11 window seen with - rapid replots by avoidng setting multiplot mode. This fix only - functions for a single axes with no image objects. - * plot/__go_draw_figure__.m: Move 'set multiplot' to gnuplot_drawnow. - - 2009-07-31 Jaroslav Hajek - - * general/common_size: Optimize. - - 2009-07-29 Ben Abbott - - * plot/__go_draw_axes__.m: Fix ticklabels specified as 2D character - array. - * plot/__go_draw_axes__.m: Ignore fontnames for the Lua-TikZ terminal. - * plot/gnuplot_drawnow.m: Support the gnuplot terminal Lua-TikZ. - * plot/print.m: Support the gnuplot terminal Lua-TikZ. - - 2009-07-29 Jaroslav Hajek - - * plot/gnuplot_binary.m: Fix typo. - - 2009-07-27 Jaroslav Hajek - - * optimization/fzero.m: Use "global" parameter in str2func. - * optimization/fsolve.m: Ditto. - * optimization/fminunc.m: Ditto. - - 2009-07-24 John W. Eaton - - * plot/gnuplot_binary.in: Accept arguments in addition to program name. - * plot/__gnuplot_open_stream__.m: Pass additional args to gnuplot. - - 2009-07-23 Ben Abbott - - * plot/legend.m: Add an hggroup demo using bar(). Include clf() - in each demo. - - 2009-07-23 John W. Eaton - - * image/imread.m: Fix test. - - * plot/legend.m: Process arguments in order, child objects in - reverse. Remove special case for single label. New demos. - - 2009-07-23 Thorsten Meyer - - * testfun/assert.m: Fix string comparison bug. - - 2009-07-20 Jaroslav Hajek - - * testfun/assert.m: Use less strict checking for exact matches. - - 2009-07-17 John W. Eaton - - * plot/__go_draw_axes__.m: Use "layer" property to decide whether - to send "set border front" or "set border layerdefault" to plot - stream. Don't send "set border front" to plot stream for image data. - - 2009-07-15 Robert T. Short - - * polynomial/conv.m: Fix Matlab incompatibility. New tests. - - 2009-07-09 John W. Eaton - - * plot/axis.m: Return 4-element vector for 2-d view. - From David Woodburn . - - * sparse/nonzeros.m: Always return a column vector. New tests. - - 2009-06-25 Ben Abbott - - * plot/gnuplot_drawnow.m: Apply feature 'wxt_has_size'. - * plot/__gnuplot_has_feature__.m: Add feature 'wxt_has_size' for - gnuplot >= 4.3.0. - - 2009-06-24 Ben Abbott - - * plot/__go_draw_figure__.m: Modify the implicit margin when gnuplot's - output is landscape. - * plot/gnuplot_drawnow.m: Simplify handling of the figure's paper - properties, and rely upon listeners for units conversion. Minor code - improvements. - * plot/print.m: Reimplement -landscape and -portrait to modify the - properties papersize and paperposition. Produce compatible results - when paperpositionmode=='auto'. Simplfy units conversion and - restoration of initial figure properties. - - 2009-06-24 Marco Caliari - - * general/repmat.m: Call kron, not spkron. - - 2009-06-24 Alexander Mamonov - - * plot/plot3.m: Correctly compute offsets for property/value pairs. - - 2009-06-23 Alexander Mamonov - - * image/imread.m: New test. - - 2009-06-22 Ben Abbott - - * plot/grid.m: Add missing semi-colon. Allow grid to be toggled - on/off for each axis independently. Gnuplot requires that minor - ticks accompany minor ticks. Add demo. - * plot/__go_draw_axes__.m: For {x,y,z}scale == 'log' use 10 minor - ticks. - - 2009-06-22 John W. Eaton - - * statistics/base/var.m: Return zero for scalar case. Handle - empty arguments in a Matlab compatible way. New tests. - - 2009-06-19 Jaroslav Hajek - - * set/ismember.m: Properly handle NaNs. Fix test. - - 2009-06-18 Ben Abbott - - * plot/__go_draw_axes__.m: Change the default x11 fontspec from '*,0' - to ',0' to avoid delays searching the fontpath for a font named '*'. - - 2009-06-18 Daniel Gualberto - - * polynomial/mpoles.m: Fix infinite loop for a multiplicity of - poles at zero. Test added. - - 2009-06-17 Bertrand Roessli - - * plot/axis.m: Fix bug for 'axis tight' with multiple surface plots, - add demo. - - 2009-06-15 Ben Abbott - - * plot/quiver.m: Add 'clf' to demos. - * plot/plotyy.m: Consider dataaspectratiomode before changing - dataaspectratio. - - 2009-06-14 Ben Abbott - - * plot/plotyy.m: Fix compatibility with subplot, add listeners for - dataaspectratio, and add a demo. - - 2009-06-14 Eric Chassande-Mottin - - * plot/plotyy.m: Correct behavior when there is no currentfigure. - - 2009-06-14 Jaroslav Hajek - - * set/ismember.m: Reimplement using lookup & unique. - - 2009-06-11 Ben Abbott - - * plot/print.m: Fix logic associated with 'have_ghostscript'. - * plot/gnuplot_drawnow.m: Add support for pdfcairo and pngcairo - terminals. Minor code improvements. - * plot/print.m: Associate '-mono' with devices ps, ps2, eps, & eps2. - Have '-mono' render all objects in monochrome. - For pdf or png output, favor gnuplot's cairo terminals. - - 2009-06-10 Marco Caliari - - * plot/hold.m: Add demo including a hggroup. - * plot/__go_draw_axes__.m: Fix order when pushing group children onto - the axes kid list. - * general/quadgk.m: Better waypoint transform. - - 2009-06-09 David Bateman - - * general/quadgk.m: Add test case and fixed doubly infinite - waypoint transform for x = 0 case. - - 2009-06-09 Marco Caliari - - * general/quadgk.m: Fix doubly infinite transformation to the finite - interval. - - 2009-06-08 Ben Abbott - - * plot/axis.m: Fix bug for 'axis tight' with multiple lines, modify - demo. - - 2009-06-07 Thorsten Meyer - - * testfun/assert.m: Fix texinfo bug. - - 2009-06-04 Ben Abbott - - * plot/__go_draw_axes__.m: Change strncmpi(scale,'lo') to - strcmp(scale,'log'). - * plot/__go_draw_axes__.m: For log-scale axes use format '10^{%T}'. - - 2009-06-03 Ben Abbott - - * plot/colorbar.m: Colorbar 'handlevisibility' should be 'on'. - Add additional demos which illustrate problems with the present - implementation. - * plot/__gnuplot_has_feature__.m: Change version for - "x11_figure_position" from ">=4.3.0" to ">=4.2.5". - * plot/__scatter__.m: If the color spec is empty, set using - __next_line_color__. - * plot/scatter3.m: Add demos. - - 2009-06-03 Jaroslav Hajek - - * polynomial/polyfit.m: Fix test. - - 2009-06-02 Rafael Laboissiere - - * help/doc.m: In test, look also for the gzipped version of the - info_file - - 2009-05-29 John W. Eaton - - * plot/__gnuplot_get_var__.m: Insert missing semicolon. - - 2009-05-28 Ben Abbott - - * plot/__go_draw_axes__.m: Set x2range when xaxislocation=='top' - and set y2range when yaxislocation=='right'. Simplify support - for ticklabel separator '|'. - * plot/__go_draw_figure__.m: Change 'autoscale fix' to - 'autoscale keepfix'. - * plot/colorbar.m: Add demos. - - 2009-05-28 Ben Abbott - - * plot/__go_draw_axes__.m: Add support for ticklabel separator '|'. - - 2009-05-28 Jaroslav Hajek - - * sparse/bicgstab.m: Improve preconditioning; avoid explicit inverse. - * sparse/cgs.m: Improve preconditioning; avoid explicit inverse. - - 2009-05-28 Radek Salac - - * sparse/bicgstab.m: New output when calling without arguments. - Time optimization - remove certain checks linked to - preconditioner which are unacceptably slow. - * sparse/cgs.m: New output when calling without arguments. - Time optimization - remove certain checks linked to - preconditioner which are unacceptably slow. Rename internal - variable to match bicgstab. - - 2009-05-27 Rik Wehbring - - * plot/axis.m: Update documentation to reflect addition of - "tight" option. - - 2009-05-27 Rik Wehbring - - * ismember.m: Update examples to remove incorrect reference to - residue function. - - 2009-05-27 John W. Eaton - - * image/imwrite.m: Convert indexed images to RGB before calling - __magick_write__. - - * image/imshow.m: In demo, convert image to rgb before scaling - components. Use imread instead of loadimage. - - 2009-05-26 Ben Abbott - - * plot/__go_draw_axes__.m: Fix rendering of overlaping images and - line objects. Add demos as well. - - 2009-05-27 Sᅵren Hauberg - - * geometry/delaunay.m: Support cellstr's as options. - - 2009-05-27 Jaroslav Hajek - - * plot/imshow.m: Fix handling of indexed images. - - 2009-05-26 Sᅵren Hauberg - - * help/__makeinfo__.m: Support several @seealso's in one text. - - 2009-05-26 John W. Eaton - - * plot/colorbar.m: Downcase location argument. - - 2009-05-26 Carlo de Falco - - * pkg/pkg.m: Add "version" field to the structure returned by "pkg - describe". - - 2009-05-25 Ben Abbott - - * plot/__go_draw_axes__.m: Properly render TeX symbols for x11, when - using the anonymous fontname="*". - - 2009-05-24 Benjamin Lindner - - * plot/gnuplot_drawnow.m: single-quote output name to allow backslash - characters as filesep under windows - * plot/print.m: Support ps->pdf using ghostscript under windows, check - for %GSC% environment variable. - - 2009-05-24 Benjamin Lindner - - * plot/__gnuplot_version__.m: quote gnuplot_binary to allow spaces - in file name - - 2009-05-22 John W. Eaton - - * general/interp3.m: Don't require interpolation grid to have same - size as data. From Kris Thielemans . - - 2009-05-19 Carlo de Falco - - * pkg/pkg.m: Fix a bug when quering only one non installed package - with "pkg describe". - - 2009-05-14 Jaroslav Hajek - - * optimization/__fdjac__.m: Support central differences. - * optimization/fsolve.m: Support central differences. Add FinDiffType - option. - * optimization/fminunc.m: Ditto. - - 2009-05-17 Rik Wehbring - - * *.m: Simplify Texinfo documentation in .m scripts by removing - redundant @iftex calls - - 2009-05-17 Jaroslav Hajek - - * optimization/fminunc.m: Improve TR updating strategy. - * optimization/fsolve.m: Ditto. - - 2009-05-15 John W. Eaton - - v * general/nargchk.m: Don't generate error if output is struct. - Uncomment some additional tests. - From Alois Schloegl - - 2009-05-14 Jaroslav Hajek - - * optimization/fminunc.m: Import the step adaptation strategy - improvements from fsolve. - - 2009-05-08 Ben Abbott - - * plot/__gnuplot_has_feature__.m: Add feature "key_has_font_properties". - * plot/__go_draw_axes__.m: Have legend inherit the axis font-name/size. - - 2009-05-04 Peter O'Gorman - - * miscellaneous/tar.m, miscellaneous/unpack.m: - Pass "xvf" to tar instead of "-x -v -f". - - 2009-04-30 Ben Abbott - - * plot/__gnuplot_has_feature__.m: Change version for - "x11_figure_position", >4.2.4 to >=4.3.0. - - 2009-04-30 Ben Abbott - - * plot/gnuplot_drawnow.m: For figure position, treat 'wxt' as 'x11'. - - 2009-04-30 Jaroslav Hajek - - * statistics/base/range.m: Fix behavior when dim is specified. - - 2009-04-28 Ben Abbott - - * plot/print.m: Fix typo: 'gswin23c' -> 'gswin32c'. Suppress stderr - when printing. New sub-function: fix_eps_bbox(). Add option, "-tight", - to replace the gnuplot bbox with a tight bbox for eps-files. - - 2009-04-23 Ben Abbott - - * plot/print.m: Use Ghostscript rather than ImageMagick's 'convert'. - Support printing to non-postscript printers. Do not change the output - filename when using Ghostscript. When using lpr to print the output, - send it without filtering (unix), or as if it were binary (pc). - - 2009-04-22 Robert T. Short - - * general/isa.m: Correctly report multiple layers of class hierarchy. - - 2009-04-20 John W. Eaton - - * special-matrix/vander.m: Update tests. - - 2009-04-20 Jaroslav Hajek - - * special-matrix/vander.m: Allow second argument. - * special-matrix/polyfit.m: Simplify. - - 2009-04-17 Rik - - * plot/__marching_cube__.m: Correct help Texinfo so manual will compile - - 2009-04-16 Marco Caliari - - * toeplitz.m: Treat separately the sparse case. - - 2009-04-14 Thomas Treichl - - * plot/__marching_cube__.m: Add help text. - * plot/isonormals.m: Add help text and tests. - - 2009-04-14 David Bateman - - * plot/__patch__.m: Set default facecolor to [0,1,0]. - - 2009-04-12 Aravindh Krishnamoorthy - - * special-matrix/hadamard.m: Fix a documentation mistake. - - 2009-04-14 Jaroslav Hajek - - * polynomial/polyaffine.m: New function. - * polynomial/polyscale.m: Remove. - * polynomial/polytrans.m: Remove. - - 2009-04-12 Ben Abbott - - * plot/__gnuplot_open_stream__.m: New function. - * plot/__gnuplot_get_var__.m: If not open, open the gnuplot plot stream. - * plot/gnuplot_drawnow.m: Replace internal function open_gnuplot_stream - with new __gnuplot_open_stream__. - - 2009-04-11 David Bateman - - * geometry/trisurf.m: New file. - * geometry/Makefile.in (SOURCES): Add it here. - * geometry/trimesh.m: Convert to using 3D patches. - * plot/__go_draw_axes__.m: Allow 3D filled triangular patches. - * plot/__patch__.m: Rewrite to allow update of dependent variables - with listener functions amongst themselves. - * plot/patch.m: Add 3D demo. Update the documentation. - - 2009-04-11 Martin Helm - - * plot/__interp_cube__.m, plot/__marching_cube__.m, isocolors.m, - isonnormals.m, isosurface.m: New files. - * plot/Makefile.in (SOURCES): Add them here. - - 2009-04-11 Jaroslav Hajek - - * set/intersect.m: Add missing branch. - - 2009-04-10 Ben Abbott - - * plot/print.m: If no pdf support in gnuplot, then "convert" from - postscript to pdf. For gnuplot 4.2.x use "convert", if it is present, - to produce pdf output. Only render a full page for ps/pdf output. - Rename variable, "size" to "canvas_size". Reformat help text to - eliminate unintended spaces. Minor improvements to the code. - * plot/gnuplot_drawnow.m: Place canvas size at the end of the terminal - spec, and remove trailing semicolon. Minor improvments to the code. - * plot/__gnuplot_get_var__.m: If fifo fails to open, try 2nd time. - - 2009-04-08 Jaroslav Hajek - - * special-matrix/vander.m: Optimize. - - 2009-04-07 Ben Abbott - - * plot/Makefile.in: Remove __gnuplot_default_font__.m from SOURCES. - - 2009-04-06 Ben Abbott - - * plot/__gnuplot_get_var__.m: Correct misleading error messages, and - remove dangling/commented code. - * plot/__gnuplot_default_font__.m: Remove file from archive. - * plot/__go_draw_axes__.m, plot/__go_draw_figure__.m: Allow - fontsize to be specified for all terminals with fontname == "*". - - 2009-04-06 Jaroslav Hajek - - * polynomial/polyscale.m: New function. - * polynomial/polytrans.m: New function. - - 2009-04-06 Jaroslav Hajek - - * special-matrix/pascal.m: Fix, optimize & extend. - - 2009-04-06 Jaroslav Hajek - - * linear-algebra/vech.m: Optimize. - - 2009-04-06 Jaroslav Hajek - - * special-matrix/toeplitz.m: Optimize. - - 2008-04-03 David Bateman - - * plot/__scatter__.m: correct indexing of cdata.x - - 2009-04-03 Jaroslav Hajek - - * optimization/fminunc.m: New function. - * optimization/Makefile.in: Update. - * optimization/__dogleg__: Allow general quadratics. - - 2009-04-02 Ben Abbott - - * plot/__go_draw_axes__.m: Include gnuplot command termination when - plotting image. - - 2009-04-02 Ben Abbott - - * plot/__go_draw_axes__.m: Fix title placement for gnuplot 4.2.x. - - 2009-04-02 Jaroslav Hajek - - * optimization/fsolve.m: Fix test. - - 2009-03-30 Ben Abbott - - * plot/__go_draw_axes__.m: New subfunction create_fontspec(). Allow - fontsize to be specified when the fontname is anonymous. - - 2009-03-30 Ben Abbott - - * plot/__gnuplot_default_font__.m: New function: determine gnuplot's - terminal dependent default font. - * plot/__go_draw_figure__.m: Substitute gnuplot default font when - "fontname" = "*". - - 2009-03-29 John W. Eaton - - * testfun/Makefile.in (SOURCES): Add rundemos.m to the list. - - 2009-03-29 Ben Abbott - - * plot/print.m: For eps output the bounding box should represent the - figure's position. - - 2009-03-28 Ben Abbott - - * plot/gnuplot_drawnow.m: Always set figure property "__plot_stream__" - to the active gnuplot steam. Permits __gnuplot_get_var__ to return to - proper result for all gnuplot streams. - - 2009-03-27 Ben Abbott - - * plot/__go_draw_axes__.m: Properly position the title for 3D plots - when using the gnuplot (v4.3+) backend. - - 2009-03-27 Jaroslav Hajek - - * linear-algebra/expm.m: Fix order of outputs from balance. - - 2009-03-25 Kai Habel - - * general/gradient.m: Fix calculation for more than two - dimensions. Change interpretation of vector arguments from - spacing to coordinates. New tests. - - 2009-03-25 John W. Eaton - - * mkdoc: Pass full file name to gethelp. - * gethelp.cc (main): Handle second argument. Write comment with - full file name to output. - - 2009-03-24 Ben Abbott - - * plot/gnuplot_drawnow.m: When printing, pass scalar plot_stream - to __gnuplot_draw_figure__, and close all plot streams when done. - - 2009-03-24 John W. Eaton - - * general/isa.m: Handle parent classes. - - 2009-03-23 Ben Abbott - - * plot/gnuplot_drawnow.m: Check that gnuplot has internal variable - "GPVAL_TERMINALS". - * plot/__gnuplot_has_feature__.m: Add "variable_GPVAL_TERMINALS". - - 2009-03-21 Ben Abbott - - * plot/gnuplot_drawnow.m: Verify the gnuplot terminal is supported. - * plot/__gnuplot_get_var__.m: Add function to get gnuplot variables. - * plot/print.m: Restore the behavior for option -S,. - - 2009-03-19 Jaroslav Hajek - - * optimization/fsolve.m (guarded_eval): Simplify & fix missing - semicolon. - - 2009-03-17 Jaroslav Hajek - - * optimization/__fdjac__.m: Pass in fvec to save one evaluation. - * optimization/fsolve.m: Avoid redundant reevaluation when using - FD jacobians. Document how it can be done with user jacobians. Make - first iteration special and call outputfcn after it. Skip updates - unless two successful iterations have occured. - * optimization/__dogleg__.m: Add missing alpha in the zero-gradient - case. - * optimization/fsolve.m: Remove autodg (not used), simplify. - - 2009-03-14 Jaroslav Hajek - - * statistics/base/var.m: a -> x. - - 2009-03-13 Jaroslav Hajek - - * statistics/base/mean.m: Simplify. - * statistics/base/meansq.m: Optimize. - * statistics/base/center.m: Fix behvaior with vectors, simplify. - * statistics/base/std.m: Simplify using `center'. - * statistics/base/var.m: Ditto. - * statistics/base/cov.m: Ditto. - - 2009-03-13 Jaroslav Hajek - - * general/repmat.m: Use subscript pairs rather than forming Kronecker - products. - - 2009-03-11 Ben Abbott - - * plot/__go_draw_axes__.m: Unset the {x,y,z}ticks when initializing - each axis. Set ticklabels when the ticklabels are empty and when - ticklabelmode=="manual". - - 2009-03-11 Marco Caliari - - * plot/axis.m: Implement "square" and "equal" options, conditional - on how octave positions gnuplot axes. Place the "title()" and - "axis()" commands after "plot()" in the demos. - - 2009-03-09 Ben Abbott - - * plot/__go_draw_axes__.m (do_tics): Fix typo (xaxislocation -> - yaxislocation). - - 2009-03-09 John W. Eaton - - * help/lookfor.m (search_cache): Also match function names. - - * pkg/pkg.m, help/gen_doc_cache.m, help/lookfor.m: - Use doc-cache instead of DOC for doc cache file. - - 2009-03-09 Jaroslav Hajek - - * general/accumarray.m: Reorder tests. Call either "sparse" or - __accumarray_sum__ for the default summation case. - * statistics/base/histc.m: Reimplement using lookup & accumarray. - - 2009-03-08 Sᅵren Hauberg - - * statistics/base/histc.m: New function. - - 2009-03-06 Ben Abbott - - * plot/__go_draw_axes__.m: Preserve the order of axes' children - when pruning the handles for the {x,y,z}labels and title. - * plot/legend.m: Change demo to add colors to lines. This change - reveals the problem (above) with the ordering of the axes' children. - - 2009-03-05 Jaroslav Hajek - - * linear-algebra/condest.m: Use lu rather than splu. Use relative tols - for tests. - - 2009-03-05 John W. Eaton - - * deprecated/spdiag.m: Ensure sparse result. - - 2009-03-05 Ben Abbott - - * plot/__go_draw_axes__.m: Preserve column vector orientation for - the axes children while removing the axis label & title handles. - - 2009-03-03 Jaroslav Hajek - - * polynomial/polyval.m: Implement using Horner scheme. - - 2009-03-03 Ben Abbott - - * plot/gnuplot_drawnow.m: Fix unintended shift of plot image for - the gnuplot postscript+eps terminal. - - 2009-03-02 Jaroslav Hajek - - * pkg/pkg.m (fix_depends): Fix & simplify splitting the string. - - 2009-03-02 Thorsten Meyer - - * set/complement.m, set/union.m: Remove reference to deprecated - function create_set. - - 2009-03-01 Ben Abbott - - * plot/__go_draw_axes__.m: Do not render axis labels twice when - their handles are visible, but do render objects with hidden - handles. - - 2009-03-01 Ben Abbott - - * general/num2str.m: Trivial bug fix. Recent switch from split() - to strsplit() produced cells rather than character data. - - 2009-03-01 Ben Abbott - - * plot/colorbar.m: Bug fix. Allow hidden colorbars to be deleted, - and replace existing colorbar when a new one is created. Additional - demos are included to verify these behaviors. - - 2009-02-28 Ben Abbott - - * plot/__actual_axis_position__.m: Include file missed in prior - changeset. - - 2009-02-28 Ben Abbott - - * plot/print.m, plot/gnuplot_drawnow.m: Add compatible support for - specificying resolution of bitmap terminals, "-r". - - * plot/gnuplot_drawnow.m: Check that canvas size is only specified - one time. - - * plot/gnuplot_drawnow.m, plot/__go_draw_figure__.m: Support papersize, - paperposition properties. Accommodate gnuplot's implicit margins for - postscript terminals. Remove internal function get_canvassize(). - - * plot/gnuplot_drawnow.m: - Terminate gnuplot "set term ..." with semicolon. - Specify vector terminals sizes in floating point. - Rename internal function isbackend() to output_to_screen(). - Rename internal function gnuplot_term() to gnuplot_default_term(). - Rename internal function isbitmap() to term_units_are_pixels(). - Minor changes for coding conventions. - - * plot/__actual_axis_position__.m, Makefile.in: New function to - determine position of rendered axes, including the effect of the - aspect ratio. - * plot/__gnuplot_has_feature__.m: Add new feature - "screen_coordinates_for_{lrtb}margin". - * plot/__go_draw_axes__.m, plot/colorbar.m: Enable axes to be - positioned using {lrtb}margins. - * plot/colorbar.m: Add to, and modify, demos. - - * plot/print.m: Remove non-functional/commented code. - * plot/__go_draw_figure__.m: Remove non-functional code. - * plot/__gnuplot_has_feature__.m: Remove non-functional code. - - * plot/quiver3.m: Add "clf" and "colormap(jet(64))" to demo. - - 2009-02-27 John W. Eaton - - * set/complement.m: Call unique, not create_set. - * set/unique.m: Style fix for docstring. - * deprecated/create_set.m: Move here from set/create_set.m. - Always return a row vector, as documented. - - * set/Makefile.in (SOURCES): Remove create_set.m from the list. - * deprecated/Makefile.in (SOURCES): Add create_set.m to the list. - - * general/num2str.m: Call strsplit instead of split. - - * strings/strsplit.m: Style fixes. - - 2009-02-27 Jaroslav Hajek - - * strings/strsplit.m: Check also nargin. - - 2009-02-26 John W. Eaton - - * deprecated/split.m: Add warning, not about version. - - 2009-02-26 Jaroslav Hajek - - * strings/strsplit.m: New function. - * strings/split.m: Move to deprecated/. - * strings/Makefile.in: Update. - * deprecated/Makefile.in: Update. - - * general/int2str.m: Use strsplit instead of split. - * general/num2str.m: Ditto. - * help/__makeinfo__.m: Ditto. - * help/lookfor.m: Ditto. - * miscellaneous/compare_versions.m: Ditto. - * miscellaneous/tar.m: Ditto. - * miscellaneous/unpack.m: Ditto. - * miscellaneous/what.m: Ditto. - * miscellaneous/zip.m: Ditto. - * pkg/pkg.m: Ditto. - * strings/strtok.m: Ditto. - * testfun/rundemos.m: Ditto. - - 2009-02-25 John W. Eaton - - * Makefile.in (distclean maintainer-clean): Remove tags and TAGS - in distclean target. - - 2009-02-25 Jaroslav Hajek - - * help/lookfor.m: Vectorize the path splitting using mat2cell. - Extract new path elements using setdiff. - - 2009-02-25 John W. Eaton - - * plot/pie.m: Use numel to check sizes of X and LABELS instead of - using size_equal. From Andy Buckle . - - * help/lookfor.m: Split original path into cell array and compare - elements with strcmp. Suppress warnings and errors when getting - help text from function files. - - 2009-02-24 John W. Eaton - - * help/gen_doc_cache.m: Don't compress output file. By default, - write to DOC, not DOC.gz. Don't save empty cache. - - * help/lookfor.m: Use doc_cache_file to get location of DOC file. - - 2009-02-24 Jason Riedy - - * pkg/pkg.m (generate_lookfor_cache): Generate a DOC file for each - directory. - - * help/gen_doc_cache.m: Call __makeinfo__, not makeinfo. - - 2009-02-24 Jaroslav Hajek - - * optimization/fsolve.m: Update niter after each iteration, not just - a succesful one. - - 2009-02-08 Thorsten Meyer - - * configure.in: AC_SUBST ac_config_files - - * Makefile.in: Add make targets for configuration files - and config.status. - - 2009-02-23 John W. Eaton - - * plot/fplot.m: Fix nargin check. - From Joel Parker . - - 2009-02-20 Steffen Groot - - * plot/__patch__.m: Correct indexing of varargin. - - 2009-02-20 Jaroslav Hajek - - * linear-algebra/dmult.m: Remove. - * linear-algebra/Makefile.in: Update. - * deprecated/dmult.m: Move here; revert to the 3.0.x version. - * deprecated/Makefile.in: Update. - * statistics/models/logistic_regression_derivatives.m: Replace dmult - by diagonal matrices. - - 2009-02-19 Ben Abbott - - * plot/gnuplot_drawnow.m: Only send figure position info to gnuplot - when the plot stream is first opened. Revert usage of hidden axes - to store prior figure "position" property. - - 2009-02-19 John W. Eaton - - * general/__isequal__.m, general/__splinen__.m, image/__img__.m, - image/__img_via_file__.m, miscellaneous/__xzip__.m, - optimization/__all_opts__.m, optimization/__dogleg__.m, - optimization/__fdjac__.m, path/__extractpath__.m, - plot/__add_datasource__.m, plot/__area__.m, - plot/__axes_limits__.m, plot/__axis_label__.m, plot/__bar__.m, - plot/__bars__.m, plot/__clabel__.m, plot/__contour__.m, - plot/__default_plot_options__.m, plot/__errcomm__.m, - plot/__errplot__.m, plot/__ezplot__.m, - plot/__gnuplot_has_feature__.m, plot/__gnuplot_version__.m, - plot/__go_close_all__.m, plot/__go_draw_axes__.m, - plot/__go_draw_figure__.m, plot/__line__.m, - plot/__next_line_color__.m, plot/__patch__.m, plot/__plr1__.m, - plot/__plr2__.m, plot/__plt1__.m, plot/__plt2__.m, - plot/__plt2mm__.m, plot/__plt2mv__.m, plot/__plt2ss__.m, - plot/__plt2sv__.m, plot/__plt2vm__.m, plot/__plt2vs__.m, - plot/__plt2vv__.m, plot/__plt__.m, plot/__plt_get_axis_arg__.m, - plot/__pltopt1__.m, plot/__pltopt__.m, plot/__quiver__.m, - plot/__scatter__.m, plot/__stem__.m, startup/__finish__.m, - statistics/base/__quantile__.m: Consistent doc strings for - internal fucntions. - - 2009-02-18 Ben Abbott - - * plot/subplot.m: Fix unintended deletion of axes. - - 2009-02-18 Frederick Umminger - - * audio/wavread.m: Improve search for data chunks. - - 2009-02-18 Ivan Sutoris - - * miscellaneous/edit.m: Expand documentation about editor mode. - - 2009-02-18 John W. Eaton - - * plot/__gnuplot_version__.m: Don't use regexp to extract version - number. - - 2009-02-18 John W. Eaton - - * plot/gnuplot_drawnow.m (gnuplot_set_term): - Adjust nargin checks for new signature. - - 2009-02-17 Ben Abbott - - * plot/contourc.m: Convert demo to test. - * plot/surfnorm.m: Add another demo. - * plot/surfnorm.m, plot/pareto.m: Add "colormap(jet)" to 1st demo. - * plot/plotyy.m, plot/patch.m, plot/pareto.m, plot/legend.m, - plot/fill.m, plot/comet.m, plot/colorbar.m, plot/clabel.m: - Replace "close all" with "clf" in demo. - - 2009-02-17 Ben Abbott - - * plot/gnuplot_drawnow.m: Only close the gnuplot window and send - position/size info when the figure's position property has changed. - (gnuplot_set_term): New arg, NEW_STREAM. Change all uses. - (open_gnuplot_stream): Delete unused output ENHANCED. - - 2009-02-17 John W. Eaton - - * plot/plotyy.m: Handle case of existing figure with no axes. - - 2009-02-16 John W. Eaton - - * help/__makeinfo__.m: Rename from help/makeinfo.m. Delete tmp file. - * help/Makefile.in (SOURCES): Add __makeinfo__.m, delete makeinfo.m. - * help/get_first_help_sentence.m, help/help.m, help/lookfor.m, - help/print_usage.m: Call __makeinfo__ instead of makeinfo. - * help/__strip_html_tags__.m, help/__additional_help_message__.m: - Doc fix. - - 2009-02-16 Ben Abbott - - * plot/shading.m: No new figure windows for the demos. - * plot/surfl.m: Clear figure before running demos. - - 2009-02-16 Jaroslav Hajek - - * linear-algebra/expm.m: Fix invalid unscaling. - * help/which.m: Do not add "function" here. - * optimization/fsolve.m: Update comments. - - 2009-02-16 John W. Eaton - - * help/help.m: Shorten default help text. - - 2009-02-15 John W. Eaton - - * help/doc.m, help/help.m, help/lookfor.m, help/type.m, - help/which.m, image/colormap.m, miscellaneous/delete.m, - miscellaneous/dir.m, miscellaneous/edit.m, - miscellaneous/intwarning.m, miscellaneous/ls.m, - miscellaneous/mex.m, miscellaneous/mkoctfile.m, - miscellaneous/run.m, miscellaneous/what.m, path/savepath.m, - pkg/pkg.m, plot/axis.m, plot/box.m, plot/caxis.m, plot/cla.m, - plot/close.m, plot/colorbar.m, plot/grid.m, plot/hidden.m, - plot/hold.m, plot/legend.m, plot/orient.m, plot/print.m, - plot/shading.m, plot/title.m, plot/xlabel.m, plot/ylabel.m, - plot/zlabel.m, testfun/demo.m, testfun/example.m, testfun/fail.m, - testfun/rundemos.m, testfun/test.m: - Delete "PKG_ADD: mark_as_command" directive. - - * edit.m: Avoid command-style function call syntax when - assigning results in tests. - - * deprecated/mark_as_rawcommand.m, deprecated/unmark_rawcommand.m, - deprecated/israwcommand.m, deprecated/mark_as_command.m, - deprecated/unmark_command.m, deprecated/iscommand.m: - New functions. - * deprecated/Makefile.in (SOURCES): Add them to the list. - - 2009-02-15 Ben Abbott - - * plot/subplot.m: Compatible placement of subplots. - - 2009-02-13 Ben Abbott - - * plot/__go_draw_axes__.m: Respect axes ticklength property. - - 2009-02-12 John W. Eaton - - * general/sortrows.m: Call __sort_rows_idx__, not __sortrows_idx__. - - 2009-02-12 Soren Hauberg - - * help/gen_doc_cache.m: Change API so we only handle one directory per - call to this function. - - 2009-02-12 Soren Hauberg - - * help/lookfor.m: Adapt to new cache scheme. - - 2009-02-11 Jaroslav Hajek - - * general/sortrows.m: Employ __sortrows_idx__ when applicable, - gripe for sparse matrices. - - 2009-02-11 John W. Eaton - - * miscellaneous/news.m: Look in octetcdir for NEWS file. - - 2009-02-09 Jaroslav Hajek - - * general/interp2.m: Added support for pchip bicubic interpolation. - Also simplified code and added support for natural extrapolation via - "extrap". - - 2009-02-09 John W. Eaton - - * miscellaneous/Makefile.in (SOURCES): Include __xzip__.m in the list. - - * testfun/rundemos.m: Error if fopen fails. - - 2009-02-08 John W. Eaton - - * Makefile.in (install install-strip): Don't install ls-R file. - (uninstall): Don't uninstall ls-R file. - - 2009-02-06 Jaroslav Hajek - - * optimization/fsolve.m: Document support for complex holomorphic - systems. Improve guarded evaluation. - - 2009-02-05 John W. Eaton - - * miscellaneous/news.m: Use puts instead of printf. - - 2009-02-05 Thomas D. Dean - - * polynomial/polyout.m: Replace com2str with num2str, and minor - style changes. - - 2009-02-04 John W. Eaton - - * help/which.m: Still print something sensible if type is empty. - - 2009-02-04 Soren Hauberg - Thomas Treichl - - * miscellaneous/Makefile.in (SOURCES): Add bzip2.m to the list. - - 2009-02-04 Frederick Umminger - - * signal/freqz.m: Ensure causal phase response. - Handle long input correctly. - - 2009-02-04 Petr Mikulik - - * plot/__go_draw_axes__.m: Pass "interpolate 0, 0" to gnuplot - instead of "interpolate 4, 4". - - 2009-02-04 John W. Eaton - - * audio/wavwrite.m, deprecated/splu.m, general/bitcmp.m, - general/fliplr.m, general/flipud.m, general/genvarname.m, - general/nargchk.m, general/nargoutchk.m, general/quadgk.m, - general/rot90.m, geometry/griddata.m, geometry/rectint.m, - geometry/voronoi.m, geometry/voronoin.m, - help/__strip_html_tags__.m, image/brighten.m, image/imfinfo.m, - image/imread.m, linear-algebra/cond.m, linear-algebra/condest.m, - linear-algebra/dmult.m, linear-algebra/dot.m, - linear-algebra/expm.m, linear-algebra/housh.m, - linear-algebra/onenormest.m, linear-algebra/subspace.m, - miscellaneous/compare_versions.m, optimization/__all_opts__.m, - optimization/optimget.m, pkg/pkg.m, plot/__bar__.m, - plot/__plr2__.m, plot/ribbon.m, plot/slice.m, polynomial/pchip.m, - polynomial/roots.m, set/unique.m, signal/fractdiff.m, - signal/hurst.m, specfun/beta.m, specfun/legendre.m, - statistics/base/__quantile__.m, statistics/base/quantile.m, - statistics/tests/cor_test.m, - statistics/tests/kolmogorov_smirnov_test_2.m, strings/base2dec.m, - strings/dec2base.m, strings/strcat.m, strings/validatestring.m, - time/addtodate.m: Style fixes. - - 2009-02-04 Jaroslav Hajek - - * optimization/fsolve.m: remove redundant line. - - 2009-02-03 Jaroslav Hajek - - * optimization/Makefile.in: Add missing source. - - 2009-02-02 Rob Mahurin - - * general/interpft.m: Increase tolerance in tests, for FFTPACK. - - 2009-02-03 Jaroslav Hajek - - * optimization/__all_opts__.m: Yield empty list in recursive calls. - mlock to avoid unloading. - - 2009-01-30 John W. Eaton - - * optimization/PKG_ADD: Delete. - * optimization/fsolve.m, optimization/fzero.m, - optimization/lsqnonneg.m: Use PKG_ADD: comment to call __all_opts__. - - 2009-01-30 Jaroslav Hajek - - * optimization/__all_opts__.m: New source. - * optimization/optimset.m: Implement checking for registered options. - * optimization/optimget.m: Ditto. - * optimization/fsolve.m: Fix misspelled option. - * optimization/PKG_ADD: New startup file. - - 2009-01-30 Kai Habel - - * plot/__go_draw_axes__.m: Add support for transparent surfaces. - * plot/__gnuplot_has_feature__.m: Add feature 'transparent_surface', - Require gnuplot 4.3 for transparent patches and surfaces. - - 2009-01-30 Benjamin Lindner - - * time/datestr.m: Convert YYYY to %Y instead of %C%y. - Convert [Dd][Dd] to %d instead of %e. - - 2009-01-30 Ben Abbott - - * plot/print.m: Use __gnuplot_has_feature__ instead of - compare_versions. - - * plot/gnuplot_drawnow.m: Respect x11 figure position property. - - 2009-01-29 John W. Eaton - - * miscellaneous/fileparts.m: Match all possible file separators. - - 2009-01-29 Kai Habel - - * plot/__go_draw_axes__.m: Add support for transparent patches. - - 2009-01-29 Sᅵren Hauberg - - * help/help.m, help/print_usage.m, help/get_first_help_sentence.m: - print sensible error message when function is found but not documented. - - * help/help.m: Allow displaying 'Contents.m' files. - - 2009-01-29 Kai Habel - - * plot/Makefile.in (SOURCES): Include diffuse.m, specular.m, and - surfl.m in the list. - - 2009-01-28 Ben Abbott - - * plot/gnuplot_drawnow.m: Style fixes. - - * plot/__gnuplot_has_feature__.m: New file, checks for supported - feature. - - 2009-01-28 Jaroslav Hajek - - * optimization/fsolve.m: Don't use pivoting at all (for the time - being). - - 2009-01-28 Jaroslav Hajek - - * optimization/fsolve.m: Use more adaptive rescaling. - Put back the default tolerances based on machine eps respecting - the used precision. Partially reflect this in the default optimset - values. - - 2009-01-28 Jaroslav Hajek - - * miscellaneous/ordefields.m: Use indexed assignment instead of a - loop. Fix for multidimensional cases. - - 2009-01-27 John W. Eaton - - * general/arrayfun.m, image/imwrite.m, plot/axis.m, plot/clf.m, - plot/ribbon.m, plot/gnuplot_drawnow.m, plot/cla.m, set/unique.m: - Use endif or endfor instead of "end". - - * path/savepath.m: Call command_line_path instead of commandlinepath. - - 2009-01-27 Jason Riedy - - * miscellaneous/orderfields.m: Really fix the indexing for struct - arrays. - - 2009-01-27 Carlo de Falco - - * polynomial/spline.m: Doc fix. - - 2009-01-27 Sᅵren Hauberg - - * general/gradient.m: Handle computing the gradient of a function - handle. - - 2009-01-27 Jaroslav Hajek - - * optimization/lsqnonneg.m: Reimplement using QR updating for - square and overdetermined systems. - - 2009-01-27 Jaroslav Hajek - - * optimization/fsolve.m: Provide default values on request. - Adjust some defaults. - * optimization/fzero.m: Ditto. - * optimization/optimset.m: Query optimal values via the M*b way. - - 2009-01-26 Jason Riedy - - * miscellaneous/orderfields.m: Also avoid loop for non-empty structs. - - 2009-01-17 Jaroslav Hajek - - * optimization/fsolve.m: Disable Broyden updates for sparse jacobians. - - 2009-01-17 Jaroslav Hajek - - * optimization/__fsolve_defopts__.m: Remove. - * optimization/Makefile.in: Reflect change. - - 2009-01-17 Jaroslav Hajek - - * optimization/__fdjac__.m: Fix setting up h. - * optimization/fsolve.m: Allow underdetermined systems. Use QR for - large enough square and overdetermined systems, with pivoting in the - first step. Simplify options. Adjust defaults - make TR radius - tolerance less stringent. Support DisplayFcn. - - 2008-12-24 Ben Abbott - - * path/savepath.m: Respect cmd-line and env paths. - - 2009-01-24 Ben Abbott - - * sparse/svds.m: svds.m: skip tests if ARPACK is missing. - - 2009-01-23 Sᅵren Hauberg - - * help/type.m: Make 'type X' work, when X is the name of a variable. - - 2009-01-22 John W. Eaton - - * help/which.m: New function. - * help/Makefile.in (SOURCES): Add it to the list. - - * help/help.m: Also display location of the file before the help text. - * help/print_usage: Also display additional help text. - * help/__additional_help_message__.m: Return message instead of - displaying it. - - 2009-01-22 Sᅵren Hauberg - - * help: New directory. - * configure.in (AC_CONFIG_FILES): Add help/Makefile to the list. - * Makefile.in (SUBDIRS): Add it to the list. - * help/__additional_help_message__.m, help/__strip_html_tags__.m, - help/gen_doc_cache.m, help/get_first_help_sentence.m, help/help.m, - help/lookfor.m, help/makeinfo.m, help/print_usage.m, help/type.m: - New functions. - * help/Makefile.in (SOURCES): Add them to the list. - * help/doc.m: Move here from miscellaneous/doc.m. - * miscellaneous/Makefile.in (SOURCES): Remove doc.m from the list. - * miscellaneous/pkg.m: Generate documentation cache during install. - - 2009-01-22 Jaroslav Hajek - - * optimization/fsolve.m: Undo the last change. - - 2009-01-18 Thorsten Meyer - - * miscellaneous/doc.m: Add test for existence of info file. - - 2009-01-21 John W. Eaton - - * plot/__axis_label__.m: Set properties in existing axis label - object instead of creating a new text object. - * plot/ylabel.m: Don't set rotation property here. - * plot/title.m: Don't set horizontalalignment property here. - - * plot/ylabel.m: Insert rotation property in varargin before - passing it on to __axis_label__. - * plot/__axis_label__.m: Don't set rotation for ylabel here. - - * plot/title.m: Insert horizontalalignment property in varargin - before passing it on to __axis_label__. - - 2009-01-21 Jaroslav Hajek - - * strings/strchr.m: New function. - * strings/Makefile.in: Add it. - - 2009-01-20 Jaroslav Hajek - - * optimization/fsolve.m: Only use qrupdate if available. - - 2009-01-20 John W. Eaton - - * general/postpad.m: Doc fix. - * general/prepad.m: Doc fix. - * image/pink.m: Spelling fix. - * image/hsv.m: Doc fix. - From Francesco Potorti` . - - * testfun/assert.m: Use isfield instead of struct_contains. - - 2009-01-17 Ben Abbott - - * general/cart2sph.m, cart2pol.m, sph2cart.m pol2cart.m: - Permit scalars when transforming coordinates. - - 2009-01-17 Steven Verstoep - - * plot/__quiver__.m: __quiver__.m: Fix auto-size of (x,y) coord. - - 2009-01-16 Daniel J Sebald - - * plot/gnuplot_drawnow.m: Fix for handling options. - - 2009-01-16 Daniel J Sebald - - * plot/legend.m: Fix legend order for both horizontal and - vertical string cell. - - 2008-01-15 Ben Abbott - - * plot/grid.m: Document handle argument. - - 2009-01-15 Peter L. Sᅵndergaard - - * general/nargoutchk.m: Doc fix. - * general/nargchk.m: Improve compatibility. New tests. - - 2008-01-15 Rafael Laboissiere - - * gethelp.cc: Include . - - 2009-01-14 Ben Abbott - - * plot/__go_draw_axes__.m (ticklabel_to_cell): New function. - Use it to handle non-cell ticklabels. - - 2009-01-14 Sᅵren Hauberg - - * general/diff.m, general/logspace.m, general/nextpow2.m, - linear-algebra/commutation_matrix.m, - linear-algebra/duplication_matrix.m, linear-algebra/expm.m, - miscellaneous/bincoeff.m, miscellaneous/list_primes.m, - optimization/fsolve.m, plot/subplot.m, polynomial/pchip.m, - polynomial/polyout.m, polynomial/residue.m, polynomial/spline.m, - signal/freqz.m, signal/sinc.m, specfun/beta.m, specfun/betaln.m, - specfun/nchoosek.m, specfun/pow2.m, special-matrix/hankel.m, - special-matrix/hilb.m, special-matrix/invhilb.m - special-matrix/sylvester_matrix.m, special-matrix/toeplitz.m, - special-matrix/vander.m, statistics/base/gls.m, - statistics/base/kendall.m, statistics/base/kurtosis.m, - statistics/base/mean.m, statistics/base/median.m, - statistics/base/ols.m, statistics/base/skewness.m, - statistics/distributions/kolmogorov_smirnov_cdf.m: - Use ifnottex instead of ifinfo. - - 2009-01-14 John W. Eaton - - * linear-algebra/expm.m: - - * optimization/fsolve.m: Doc fix. - - * plot/__go_draw_axes__.m: Scale markersize by 1/3, not 1/6. - - * io/dlmwrite.m: Use '%c' format for character data. - - 2009-01-13 John W. Eaton - - * general/repmat.m: Handle negative row or column dimension. - - * elfun/lcm.m, general/accumarray.m, general/bicubic.m, - general/cellidx.m, general/cplxpair.m, general/dblquad.m, - general/gradient.m, general/interp1.m , general/pol2cart.m, - general/quadgk.m, general/quadv.m, general/repmat.m, - general/structfun.m, geometry/griddata.m, geometry/inpolygon.m, - image/brighten.m, image/hsv2rgb.m, image/imread.m, - image/imwrite.m, linear-algebra/dmult.m, - linear-algebra/onenormest.m, miscellaneous/getfield.m, - miscellaneous/setfield.m, miscellaneous/what.m, - optimization/fsolve.m, optimization/fzero.m, - optimization/lsqnonneg.m, optimization/qp.m, pkg/pkg.m, - plot/__area__.m, plot/__clabel__.m, plot/__stem__.m, plot/axis.m, - plot/colorbar.m, plot/contour3.m, plot/findall.m, plot/findobj.m, - plot/fplot.m, plot/grid.m, plot/hist.m, polynomial/convn.m, - polynomial/polyreduce.m, set/intersect.m, set/setxor.m, - set/union.m, signal/arch_fit.m, signal/durbinlevinson.m, - signal/fftshift.m, signal/freqz_plot.m, signal/ifftshift.m, - signal/spectral_adf.m, sparse/bicgstab.m, sparse/cgs.m, - sparse/gplot.m, sparse/normest.m, sparse/pcg.m, sparse/pcr.m, - sparse/spy.m, sparse/svds.m, sparse/treelayout.m, - sparse/treeplot.m, specfun/primes.m, special-matrix/hadamard.m, - statistics/base/center.m, statistics/base/quantile.m, - statistics/base/ranks.m, statistics/base/std.m, - statistics/distributions/hygepdf.m, - statistics/tests/kruskal_wallis_test.m, strings/index.m, - strings/mat2str.m, strings/str2double.m, strings/strrep.m, - testfun/assert.m, testfun/example.m, testfun/fail.m, - testfun/speed.m, testfun/test.m: Style fixes. - - * audio/wavread.m, general/__splinen__.m, general/bicubic.m, - general/rat.m, linear-algebra/expm.m, linear-algebra/krylov.m, - linear-algebra/onenormest.m, miscellaneous/edit.m, - optimization/__dogleg__.m, pkg/pkg.m, plot/__errplot__.m, - plot/__go_draw_axes__.m, plot/__stem__.m, plot/findobj.m, - set/ismember.m, signal/arma_rnd.m, signal/freqz.m, signal/stft.m, - sparse/pcg.m, sparse/sprandsym.m, sparse/treelayout.m, - specfun/factor.m, specfun/nchoosek.m, specfun/primes.m, - statistics/base/quantile.m, statistics/base/values.m, - strings/findstr.m, strings/str2double.m, strings/strrep.m, - testfun/assert.m, testfun/fail.m, testfun/speed.m, testfun/test.m, - time/datestr.m, time/datevec.m: Comment style fixes. - - 2009-01-13 Daniel J Sebald - - * set/unique.m: Fix for vertical array inputs. - - 2009-01-12 John W. Eaton - - * optimization/fzero.m, optimization/fsolve.m: Style fixes. - Use strcmpi to compare options. - - 2009-01-12 Thorsten Meyer - - * strings/strvcat.m: Remove. - * strings/Makefile.in (SOURCES): Remove strvcat.m. - - 2009-01-12 John W. Eaton - - * plot/diffuse.m, plot/surfl.m, plot/specular.m: Style fixes. - - 2009-01-11 Jaroslav Hajek - - * general/sortrows.m: Fix invalid `{x:y} = z' assignment. - * miscellaneous/orderfields.m: Ditto. - * miscellaneous/what.m: Ditto. - * pkg/pkg.m: Ditto. - * plot/ndgrid.m: Ditto. - * strings/strcat.m: Ditto. - - 2009-01-09 Kai Habel - - * plot/surfl.m: New function - * plot/diffuse.m: Ditto. - * plot/specular.m: Ditto. - - 2009-01-05 John W. Eaton - - * mkdoc: Set defaults for FIND and PERL. Check usage. - - 2009-01-01 Thorsten Meyer - - * miscellaneous/__xzip__.m: Fix error messages, add tests. - - 2008-12-26 Thorsten Meyer - - * general/int2str.m, general/num2str.m, strings/base2dec.m, - strings/blanks.m, strings/cstrcat.m, strings/findstr.m, - strings/isstrprop.m, strings/mat2str.m, strings/regexptranslate.m, - strings/split.m, strings/str2double.m, strings/str2num.m, - strings/strcat.m, strings/strcmpi.m, strings/strfind.m, - strings/strjust.m, strings/strmatch.m, strings/strncmpi.m, - strings/strrep.m, strings/strtok.m, strings/strtrim.m, - strings/strtrunc.m, strings/strvcat.m, strings/substr.m: - Fix documentation strings, add examples, references and tests. - * general/int2str.m: Add missing semicolon. - * strings/regexptranslate.m: add nargin check. - * strings/str2double.m: fix nargin check. - - 2008-12-29 David Bateman - - * goemetry/voronoi.m: Speed up and handle dense grids. - - 2008-12-28 Jaroslav Hajek - - * miscellaneous/delete.m: Allow filename globs. Display warnings if - operation fails. - - 2008-12-26 Francesco Potortì - - * general/prepad.m: Add reference to postpad. - - * miscellaneous/bincoeff.m: Make reference to nchoosek. - - * general/postpad.m: Use @seealso. Add reference to resize. - - * statistics/base/statistics.m: Correct help string. - - * plot/hist.m: Doc string now mentions matrix input argument. - Correct error message. - - 2008-12-30 Ben Abbott - - * plot/__contour__.m: __contour__.m: correct order of patches - - 2008-12-30 Ben Abbott - - * plot/__contour__.m: __contour__.m: correct order of patches - - 2008-12-24 Doug Stewart - - * plot/grid.m: Handle "minor" option. - - 2008-12-24 John W. Eaton - - * testfun/test.m: Print "has no tests" message if there are demos - but no tests instead of printing PASSES 0 out of 0 tests. - - 2008-12-23 David Bateman - - * sparse/svds.m: New function. - * sparse/Makefile.in (SOURCES): Add it here. - - 2008-11-21 Radek Salac - - * sparse/bicgstab.m: New function. - * sparse/Makefile.in (SOURCES): Add it here. - - 2008-12-18 Daniel J Sebald - - * time/datevec.m (__date_vfmt2sfmt__): New helper function. - (datevec): Avoid repeated parsing of the format string. - * set/unique.m: Only check for options if nargin > 1. - - 2008-12-15 Jaroslav Hajek - - * optimization/lsqnonneg.m: Preprocess using QR for over-determined - systems. Simplify & fix indexing. Use left division for step problem. - Fix output args. - - 2008-12-13 Francesco Potortᅵ - - * specfun/nchoosek.m: Check for input arguments, signal loss of - precision, correctly handle k==0 and k==n cases, add proper tests. - - 2008-12-11 Jaroslav Hajek - - * optimization/fsolve.m: Optionally allow pivoted qr factorization. - - 2008-12-10 Jaroslav Hajek - - * linear-algebra/expm.m: New source. - - 2008-12-09 Jaroslav Hajek - - * specfun/nchoosek.m: Use a recursionless approach. - - 2008-12-09 Jaroslav Hajek - - * general/repmat.m: Optimize & simplify the scalar & 2d matrix case. - - 2008-12-07 Thorsten Meyer - - * strings/lower.m: Remove. - * strings/upper.m: Remove. - * strings/Makefile.in: Remove lower.m, upper.m. - - 2008-12-02 Thorsten Meyer - - * strings/str2mat.m: Make it a simple wrapper around - char() and move it to deprecated/str2mat.m, remove - obsolete tests, move remaining test to src/strfns.cc (Fchar). - * strings/Makefile.in: Remove str2mat.m. - * deprecated/Makefile.in: Add str2mat.m. - * strings/strvcat.m: Remove reference to str2mat. - - 2008-11-28 David Bateman - - * plot/__go_draw_axes__.m: Set two point clipping mode to be on. - - 2008-11-26 Francesco Potortì - - * specfun/nchoosek.m: Set max_recursion_depth and use a subfunction. - - 2008-11-29 Thorsten Meyer - - * miscellaneous/gzip.m: Remove @seealso reference to __xzip__, - improve tests. - * miscellaneous/bzip2.m: Remove @seealso reference to __xzip__, - fix handling of output argument, add test. - * miscellaneous/__xzip__.m: Improve error messages, fix cleanup - of temporary directories, remove tab characters - - 2008-11-24 Ben Abbott - - * plot/legend.m: Correct ording of legend labels. - - 2008-11-24 Ben Abbott - - * plot/__go_draw_axes__.m: Correct order for rendering children. - - 2008-11-21 Radek Salac - - * sparse/cgs.m, sparse/treelayout.m: New functions. - * sparse/Makefile.in (SOURCES): Add them here. - - 2008-11-14 David Bateman - - * plot/__go_draw_axes__.m (do_tics_1): Support the minorick properties - of the axis object. - - 2008-11-14 Ben Abbott - - * plot/gnuplot_drawnow.m: Add support of properites to gp backend. - - 2008-11-13 John W. Eaton - - * statistics/distributions/chi2rnd.m: Fix another missing semicolon. - From sven.mattisson@insatnet.nu. - - 2008-11-12 David Bateman - - * plot/__quiver__.m: Only autoscale if more than one element to - plot. Modify callbacks for change in order of children. - * plot/__stem__.m: Modify callbacks for change in order of children. - - 2008-11-10 John W. Eaton - - * polynomial/spline.m: Delete debugging statements. From - Sebastian Schᅵps . - - 2008-11-07 Thorsten Meyer - - * mkdoc: do not remove white space before @ within @example - environment - - 2008-11-05 Thorsten Meyer - - * plot/subplot.m: fix texi bug - - 2008-11-04 Thorsten Meyer - - * miscellaneous/unpack.m: return directly after recursive handling - of cell-strings - - 2008-11-03 Ben Abbott - - * plot/__go_draw_axes__.m: xticklabel should accept a numeric vector. - - 2008-09-28 Jaroslav Hajek - - * optimization/__fdjac__.m: New function file. - * optimization/__dogleg__.m: New function file. - * optimization/fsolve.m: New function file. - * optimization/Makefile.in: Include the new sources. - - 2008-09-28 Jaroslav Hajek - - * optimization/fzero.m: Replace tabs by spaces. - - 2008-09-28 Jaroslav Hajek - - * optimization/fzero.m: Simplify exception handling. - - 2008-10-31 Jaroslav Hajek - - * optimization/fzero.m: New function file. - * optimization/Makefile.in: Add it. - - 2008-10-31 Jaroslav Hajek - - * optimization/optimset.m: Don't include empty options in option - structure. - * optimization/optimget.m: New function file. - * optimization/Makefile.in: Add it. - * optimization/lsqnonneg.m: Query options using optimget. - - 2008-10-31 Jaroslav Hajek - - * linear-algebra/__norm__.m: Remove. - - 2008-10-25 Thorsten Meyer - - * miscellaneous/bzip2.m, miscellaneous/__xzip__.m: new commands. - * miscellaneous/gzip.m: change to use __xzip__ for actual compression, - add tests. - - 2008-10-31 David Bateman - - * plot/__contour__.m: Exclude infinite values when calculating contour - levels. - * plot/clabel.m: Close previous plots in demos to avoid pollution - between other plot demos. - * plot/plotyy.m: Ditto. - - 2008-10-30 David Bateman - - * plot/legend.m: Add support for the "left" and "right" options. - * plot/__go_draw_axes__.m: If the axes property keyreverse is set, - reverse the key and labelling text. - - * plot/__clabel__.m, plot/clabel.m: New functions. - * plot/Makefile.in (SOURCES): Add them here. - * plot/__contour__.m: Rewrite to use contour groups. - * plot/contourf.m: Call __contour__ instead of using specific code. - * plot/contour.m, plot/contour3.m: Minor modification to allow for - new interface to __contour__. - - 2008-10-29 Thorsten Meyer - - * set/create_set.m, set/ismember.m, set/union.m, set/complement.m: - Fix @seealso references to deprecated function intersection. - * polynomial/polyvalm.m, polynomial/polyout.m, - polynomial/polyint.m, polynomial/polygcd.m, - deprecated/polyinteg.m: Remove "and" from @seealso string. - * specfun/betaln.m: Change @seealso reference from deprecated - betai to betainc. - * plot/plot.m, plot/xlabel.m, plot/ylabel.m, plot/zlabel.m, - plot/plot3.m: Fix @seealso references to ylabel and zlabel. - * general/issymmetric.m, image/imagesc.m, specfun/realpow.m, - polynomial/polyfit.m, time/eomday.m: Remove @seealso references to - non-existent functions. - - 2008-10-29 John W. Eaton - - * plot/cla.m: In test, set visible off when creating figure. - - 2008-10-28 Gabriele Pannocchia - - * optimization/qp.m: Convert bounds of the form b <= x <= b and - constraints of the form b <= A*x <= b to equality constraints. - - 2008-10-27 Sᅵren Hauberg - - * plot/ellipsoid.m: Check nargin == 6, not nargin == 5. - - 2008-10-22 Ben Abbott - - * plot/cla.m: Fix error when no children to clear. - - * plot/findobj.m: Allow handle to be empty. - - 2008-10-22 John W. Eaton - - * plot/allchild.m: Move call to get showhiddenhandles outside of - unwind_protect block. - - 2008-10-22 David Bateman - - * plot/refreshdata.m: Modify demo so that "y" is evaluated in the - "caller" workspace. - - * plot/__errplot__.m: Add errorbar series objects. - * plot/errbar.m: Add some demos. - - * plot/__add_line_series__.m: Remove - * plot/Makefile.in (SOURCES): Remove it here too. - * plot/__add_datasource__.m: Allow for more than one character in - source name. - * plot/refreshdata.m: Ditto. - * plot/__plt2mm__.m, plot/__plt2mv__.m, plot/__plt2ss__.m, - plot/__plt2sv__.m, plot/__plt2vm__.m, plot/__plt2vv__.m, - plot/__plt2vs__.m, plot3.m: Remove previous line series changes. - * plot/__scatter__.m: Add scatter series objects and data sources. - * plot/legend.m: Update type in loop and remove debugging messages. - - 2008-10-21 Ben Abbott - - * specfun/legendre.m: Warn once on under/overflow. - - * plot/clf.m: Improve Matlab compatibility. - - 2008-10-21 John W. Eaton - - * plot/quiver3.m: Turn hold off after demo. - - * plot/newplot.m: Delete stray debugging code. - - * plot/gnuplot_drawnow.m: Pass handle to __go_draw_figure__, not - struct. Use get instead of examining struct fields directly. - * plot/__go_draw_figure__.m: First arg is now handle, not figure - object struct. Use get instead of examining struct elements - directly. Use allhild instead of looking at children field of - figure object struct. - - 2008-10-20 Ben Abbott - - * plot/orient.m: Fix syntax error. - - 2008-10-20 David Bateman - - * testfun/rundemos.m: Pause between files, as demo itself doesn't. - - * plot/fill.m, plot/quiver.m: Quiet the demos. - * plot/stair.m: Treat a line style argument correctly. - - 2008-10-20 John W. Eaton - - * plot/surfnorm.m: Save and restore hold state. - From Daniel J. Sebald and - Ben Abbott . - - 2008-10-20 Ben Abbott - - * plot/closereq.m: Respect property tag. - - * plot/__stem__.m: Respect new ordering of children when setting - baseline. - - * plot/orient.m, plot/print.m: Properly validate figure handle. - - * plot/hold.m, plot/comet.m: Properly validate axes handle. - - * plot/__go_draw_axes__.m: Fix for binary xfer of suface plots. - - 2008-10-20 David Bateman - - * plot/plotyy.m: Test that an axes handle actually is one before - setting it. - - 2008-10-17 David Bateman - - * plot/__plt_get_axis_arg__.m: Exclude non-numeric and root figure - from potential axis handles. - * plot/colorbar.m: Remove debug output. - * plot/comet.m: Close plot before demo - * plot/contourc.m: No output if nargout == 0. - - 2008-10-16 David Bateman - - * plot/subplot.m: Allow for column vector of children for figure. - - 2008-10-16 John W. Eaton - - * testfun/rundemos.m: New function. - - 2008-10-16 Ben Abbott - - * plot/contourf.m: Correct order of patch object handles. - - 2008-10-16 David Bateman - - * plot/colorbar.m (colorbar:resetaxis): Uncomment the reseting of - the axes. - - * plot/newplot.m: Don't preserve axes properties here, but rather - do it in the graphics handle code so that the preservation can be - done after callbacks are executed. - - * plot/__go_draw_axes__.m: If current plot is an image, don't flag - the plot as binary, as the binary specification is already in the - "usingclause". - - * plot/__go_draw_figure__.m: Always use multiplot and create an - enclosing axis to ensure bounding box of postscript is correct. - - 2008-10-16 Ben Abbott - - * plot/__go_draw_axes__.m (do_tics_1): New arg, interpreter. - (do_tics): Pass interpreter to do_tics_1. - - 2008-10-15 David Bateman - - * general/colon.m: Small typo. - * general/loadobj.m: Ditto. - - 2008-10-14 Ben Abbott - - * plot/__go_draw_axes__.m (do_tics_1): New args, fontname and fontsize. - Pass fontspec for tic marks to gnuplot. - (do_tics): Pass axes fontname and fontsize to do_tics_1. - - * plot/newplot.m: Perserve fontangle, fontname, fontsize, - fontunits, fontweight, position, outerposition, and - activepositionproperty axes properties when replacing plot. - - 2008-10-15 Daniel J. Sebald - - * plot/__go_draw_axes__.m: Make previous change work for surface - plots. - - 2008-10-14 Daniel J. Sebald - - * plot/__go_draw_axes__.m: Send binary data to gnuplot. - - 2008-10-13 Ben Abbott - - * plot/__go_draw_axes__.m: Fix concatenation of handles. - - 2008-10-12 David Bateman - - * general/colon..m: New function. - * general/Makefile.in (SOURCES): Add it here. - - 2008-10-10 David Bateman - - * image/__img__.m: Manually set the limits of th eimage - * plot/__go_draw_axes__.m: Base window position in the axis - position property and not the outerposition property. Remove - colorbar code based on the gnuplot colorbox. Allow images to be a - vector to support image based colorbars. Also check labelmode for - manual tics. - * plot/__go_draw_figure__.m: Remove gnuplot colorbox based - colorbar code. - * plot/colorbar.m: Rewrite to use an image and callbacks to link - it to the principal axis. - * plot/legend.m: Support an axis handle as the first - argument. Support hggroups. - * plot/pareto.m: Don't support an axis handle as the first - argument as the plotyy command in fact needs two axis handles. - * plot/plotyy.m: Rewrite to use listeners and callbacks to - synchronize the two axes. - * plot/subplot.m: Also skip axes that are tagged as being a - colorbar. Don't break in search of overlapping axes to delete. Set - both the position and the outerposition. - - 2008-10-09 Ben Abbott - - * plot/__axis_label__.m: Inherit font properties from axes. - - 2008-10-09 David Bateman - - * general/loadobj.m, general/saveobj.m, general/display: New functions - * general/Makefile.in (SOURCES): Add then here. - - 2008-10-08 John W. Eaton - - * miscellaneous/fileparts.m: Handle "/file" properly. - Improve compatibility. - - 2008-10-07 Ben Abbott - - * plot/cla.m: New function. - * plot/Makefile.in (SOURCES): Add it to the list. - - 2008-10-07 John W. Eaton - - * miscellaneous/delete.m: Pass array of handles to __go_delete__. - - 2008-10-06 John W. Eaton - - * plot/__add_datasource__.m, plot/__axes_limits__.m, - plot/__bar__.m, plot/__bars__.m, plot/__contour__.m, - plot/__go_draw_axes__.m, plot/__go_draw_figure__.m, - plot/__patch__.m, plot/__quiver__.m, plot/__scatter__.m, - plot/__stem__.m, plot/ancestor.m, plot/axis.m, plot/box.m, - plot/caxis.m, plot/close.m, plot/colorbar.m, plot/fill.m, - plot/findobj.m, plot/grid.m, plot/hidden.m, plot/hold.m, - plot/ishold.m, plot/legend.m, plot/linkprop.m, plot/orient.m, - plot/plotmatrix.m, plot/shading.m: Use case-insensitive comparison - for properties. Misc style fixes. - - 2008-10-06 Ben Abbott - - * plot/orient.m: Figure handle must be scalar. - * plot/hold.m: Axis handle must be scalar. - * plot/axes.m: Axis handle must be scalar. - * plot/__plt_get_axis_arg__.m: Handle must be scalar. - - * miscellaneous/delete.m: Permit a vector of handles to be deleted. - - 2008-10-02 John W. Eaton - - * pkg/pkg.m (configure_make): Handle filenames with spaces. - - 2008-10-02 Benjamin Lindner - - * pkg.m (configure_make): Enclose building directory in quotes. - - 2008-10-02 Ben Abbott - - * plot/__go_draw_axes__.m: Remove depdenence on gnuplot version. - - 2008-09-30 Jaroslav Hajek - - * string/split.m: New tests. - - 2008-09-30 Ben Abbott - - * plot/__go_draw_axes__.m: Fix interpolation of facecolors. - - * plot/shading.m: New demo. - - 2008-09-29 John W. Eaton - - * plot/__go_draw_axes__.m: Eliminate have_newer_gnuplot variable. - - * plot/__gnuplot_version__.m: Also include patchlevel. - - 2008-09-29 Ben Abbott - - * polynomial/deconv.m: Fix row/col orientation & length of output. - - * polynomial/conv.m: Correct row/col orientation of output. - - 2008-09-27 Ivan Sutoris - - * optimization/sqp.m: Document additional parameters. - - 2008-09-26 David Bateman - - * general/subsindex.m: Dummy subsindex function for help string - and to throw error for use outside of a class - * general/Makefile.in (SOURCES): Include it here. - - 2008-09-26 John W. Eaton - - * image/imfinfo.m: Delete temporary file. - - 2008-09-25 Sᅵren Hauberg - - * image/imread.m, image/imwrite.m: Doc fix. - - 2008-09-24 John W. Eaton - - * plot/fplot.m: Call axis after calling plot. - - 2008-09-24 Sᅵren Hauberg - - * image/imfinfo.m: New function. - * image/Makefile.in (SOURCES): Add it to the list. - - 2008-09-24 Ben Abbott - - * strings/strcat.m: Improve Matlab compatibility for non-character - data. - - 2008-09-24 John W. Eaton - - * general/interpft.m: Increase tolerance in tests. - - 2008-09-23 Francesco Potorti` - - * plot/pcolor.m: Improve doc string. - - 2008-09-22 Ben Abbott - - * plot/comet.m: New file. - * plot/Makefile.in (SOURCES): Add it here. - - 2008-09-22 David Bateman - - * plot/plotmatrix.m: New function. - * plot/Makefile.in (SOURCES): Add it here. - - * general/quadgk.m: No function count in quadgk and so don't try and - print it when given trace argument. - - 2008-09-18 Jaroslav Hajek - - * general/blkdiag.m: Skip assignment if rhs is empty. - - 2008-09-18 Kris Thielemans - - * image/imshow.m: Fix for display_range. - - * general/interpn.m: Fixe for extrapval and documentation of - extrapval. - - 2008-09-17 David Bateman - - * time/datetick.m: New function. - * time/Makefile.in (SOURCES): Add it here. - * time/datestr.m: More careful check for datevec format with 6 - column arguments. - * plot/__go_draw_axes__ (do_tics_1): Use %.15g format rather than - %g format. Also use manual mode if xlabelmode is manual. - - * general/cell2mat.m: Backout previous change. Special case 2D - case for speed. - - 2008-09-11 David Bateman - - * general/cell2mat.m: Improve the speed. - - 2008-09-09 John W. Eaton - - * time/datestr.m: Convert format and use strftime to do most of - the actual conversion. - - 2008-09-08 Tatsuro MATSUOKA - - * plot/plot.m: Doc fix. - - 2008-09-08 Mark van Rossum - - * statistics/distributions/binornd.m: Handle zero values of n - correctly. - - 2008-09-08 Kai Habel - - * plot/contourf.m: Fix case for equal-sized matrices - of X and Y. - - 2008-09-02 David Bateman - - * plot/__add_datasource__.m: Fix indexing of varargin. - - * plot/__line__.m: Remove empty clause fof if/then/else test - * plot/plot3.m: Correctly plot matrices. - - 2008-08-31 Michael Goffioul - - * plot/__plt2mm__.m, plot/__plt2mv__.m, plot/__plt2ss__.m, - plot/__plt2sv__.m, plot/__plt2vm__.m, plot/__plt2vs__.m, - plot/__plt2vv__.m: Do not call "set" with empty arguments. - - 2008-08-29 David Bateman - - * plot/__plt2mm__.m, plot/__plt2mv__.m, plot/__plt2ss__.m, - plot/__plt2sv__.m, plot/__plt2vm__.m, plot/__plt2vs__.m, - plot/__plt2vv__.m, plot/plot3.m, plot/__area__.m, plot/__bars__.m, - plot/__quiver__.m, plot/__stem__.m, plot/stairs.m : - Pass additional prop/val pairs to hggroup rather than underlying - objects. If a baseline existings specifically associate it with - the parent of the created hggroup to allow things like "stem(..., - 'parent', hg)" to work correctly. - * plot/hold.m: If currentaxes if figure doesn't exist, create it. - - * plot/plot3.m: Pass hline to __add_line_series__. - * plot/__add_datasource__.m: Fix off by one error. - - 2008-08-28 David Bateman - - * plot/__add_line_series__.m, plot/ishghandle.m, plot/linkprop.m, - plot/refresh.m, plot/refreshdata.m: New functions - * Makefile.in (SOURCES): Add them here. - - * plot/__area__.m, plot/__bars__.m, plot/__quiver__.m, - plot/__stem__.m, plot/stairs.m, plot/stem.m: Add data sources. - - * plot/__plt2mm__.m, plot/__plt2mv__.m, plot/__plt2ss__.m, - plot/__plt2sv__.m, plot/__plt2vm__.m, plot/__plt2vs__.m, - plot/__plt2vv__.m, plot/plot3.m: Add line series and data sources. - - 2008-08-28 Martin Weiser - - * plot/scatter3.m: Doc fix. - - 2008-08-26 John W. Eaton - - * plot/hold.m: If hold is applied to a figure, set state for all - child axes objects. - - 2008-08-26 Michael Goffioul - - * plot/backend.m: New function to handle backend switch. - * plot/Makefile.in: Add it. - - 2008-08-26 David Bateman - - * plot/__area__.m: Use __next_line_color__ rather than fixed set - of colors. Convert to use area series objects. - * plot/area.m: Update documentation to correspond to - the area series usage. - * plot/__bar.m: Pass the original rather than scaled width to - __bars__. - * plot/__bars__.m: Convert to use bar series objects. - * plot/bar.m, plor/barh.m: Update documentation to correspond to - the bar series usage. - * plot/__quiver__.m: Convert to use quiver series objects. Change - the default scaling and arrowsize for compatibility. - * plot/quiver.m: Update documentation to correspond to - the quiver series usage. - * plot/stairs.m: Convert to use stair series objects. - * plot/stem.m: Don't include baseline in xlim calculation. Correct - test of whether baseline xdata needs updating in the update_xlim - callback. - - 2008-08-25 Thomas L. Scofield - - * image/imwrite.m: Add ras and tiff to the list of accepted formats. - Handle parameter-value options. Untabify. - - 2008-08-25 David Bateman - - * plot/__stem__.m: Use property inheritance and don't explicitly - call drawnow. - - * plot/__go_draw_axes__.m: Respect the "visible" property of object and - don't draw them if the object is not visible. - - * plot/__stem__.m: Convert to use stem series object. - * plot/stem.m, plot/stem3.m: Update documentation to correspond to - the stem series usage. - - 2008-08-22 John W. Eaton - - * statistics/distributions/chi2rnd.m: Fix missing semicolon. - - 2008-08-21 John W. Eaton - - * plot/__go_draw_axes__.m: Fix test for have_data. - (__gnuplot_write_data__): Write "Inf Inf\n" if all data pairs - contain NaN values. - - 2008-08-21 Thomas Treichl - - * optimization/sqp.m: Increase test script tolerance. - - 2008-08-21 David Bateman - - * plot/ezplot.m : New function. - * plot/Makefile.in (SOURCES): Add ezplot.m to the list. - * plot/__ezplot__.m: Adapt to allow for use with the ezplot function. - - 2008-08-20 Jaroslav Hajek - - * pkg/pkg.m (configure_make): Pass handle to is_architecture_dependent - directly. - - 2008-08-20 David Bateman - - * plot/__go_draw_axes__.m: Don't set pm3d implicit if the plot - contains a surface. Fixes things like meshc(peaks()). - - 2008-08-19 Jaroslav Hajek - - * optimization/glpk.m: Fix invalid call to zeros. - - 2008-08-19 David Bateman - - * miscellaneous/intwarning.m: New function. - * miscellaneous/Makefile.in (SOURCES): Add it here. - - * statistics/base/ranks.m: Doc fix. - - 2008-08-08 John W. Eaton - - * general/Makefile.in (SOURCES): Add cellidx.m to the list. - - 2008-08-07 John W. Eaton - - * gethelp.cc: Delete definition of NPOS. - - 2008-08-04 John W. Eaton - - * strings/strtok.m: Include TAB, LF, VT, FF, and CR in default - list of delim characters. Update tests. - - 2008-07-29 Thomas Treichl - - * general/arrayfun.m: Minor bug fixes, update help text and tests - - 2008-07-29 John W. Eaton - - * plot/axis.m (__get_tight_lims__): Use strcat instead of []. - Don't fail if data is not a vector. - - 2008-07-29 David Bateman - - * general/cellidx.m: reinclude from control toolbox, as used by - print command. Replace is_signal_list with iscellstr. - * general/quadqk.m, linear-algebra/planeror.m, - miscellaneous/namelengthmax.m, specfun/realpow.m: Miscellaneous - documentation fixes. - - * control, finance, quaternion: Remove directories and all of the - files they contain. - * Makefile.in: Remove all references to the above directories. - * configure.in: ditto. - - 2008-07-28 Ben Abbott - - * plot/hold.m: Clarify help text. - - * specfun/reallog.m: Fix help string. - - 2008-07-28 David Bateman - - * strings/regexptranslate.m: Add real documentation. - - * plot/contourf.m: Allow X,Y to be unequal vectors. - - * plot/shading.m: Clarify help string. - - * general/genvarname.m: Trivial documentation fix. - - 2008-07-28 John W. Eaton - - * image/imwrite.m: New function. - * image/Makefile.in (SOURCES): Add it to the list. - - 2008-07-24 Ben Abbott - - * time/datestr.m: New xtest. - - 2008-07-21 Michael Goffioul - - * plot/closereq.m: Use first gcbf to get the handle of the figure to - be closed. - * plot/close.m: Call __go_execute_callback__. - - 2008-07-17 John W. Eaton - - * general/fliplr.m: Fix usage test. - * testfun/test.m: Fix usage tests. - - 2008-07-17 Jaroslav Hajek - - * statistics/base/cov.m: Fix test that should no longer work. - - 2008-07-16 Michael Goffioul - - * plot/gcbo.m, plot/gcbf.m: New functions. - * plot/Makefile.in (SOURCES): Add them to the list. - - 2008-07-16 John W. Eaton - - * deprecated/loadimage.m: New file. - * deprecated/Makefile.in (SOURCES): Add it to the list. - * image/loadimage.m: Delete. - * image/Makefile.in (SOURCES): Remove it from the list. - * image/imread.m: Incorporate loadimage functionality here. - Simplify. - * image/imshow.m: Call imread, not loadimage. - - * image/__img__.m: Set clim for true-color integer data. - - * image/imshow.m: Don't convert integer true-color data to double. - - * plot/__go_draw_axes__.m: Recognize 3-d cdata as a true-color image. - - 2008-07-14 John W. Eaton - - * image/Makefile.in (SOURCES): Add imread.m to the list. - - 2008-07-14 Thomas L. Scofield - - * image/imread.m: New file from Octave Forge. - - 2008-07-10 Jaroslav Hajek - - * set/unique.m: Implement 'first' and 'last', some simplifications. - * set/union.m: Implement output indices. - * set/intersect.m: Implement 'rows'. - * set/setdiff.m: Implement output indices. - * set/setxor.m: Implement 'rows' and output indices. - Add tests and adjust docs in all of the above. - - 2008-06-11 John W. Eaton - - * set/ismember.m: Fix fail tests. - - * general/rat.m: Properly initialize steps when all elements of - input array are integers. Append spaces as necessary when - building character array. - - 2008-06-05 Jaroslav Hajek - - * plot/__go_draw_axes__.m: Use fprintf for formatted output. - - 2008-06-04 Michael Goffioul - - * plot/__go_draw_axes__.m: Support hggroup objects. - * plot/hggroup.m: New file. - * plot/Makefile.in: Handle it. - - 2008-06-02 David Bateman - - * miscellaneous/debug.m: New file.. - * Makefile.in (SOURCES): Add it to the list. - - * general/interp1q.m: Remove spaces between functions and args in - []. Fix test code to actually test interp1q. - - 2008-06-02 Jaroslav Hajek - - * strings/strcat.m: Add tests. - - 2008-06-02 Kim Hansen - - * strings/mat2str.m: Change is_complex to iscomplex, add tests, add - missing ; - - 2008-05-20 David Bateman - - * miscellaneous/single.m: Remove. - * Makefile.in (SOURCES): Remove it here as well. - - 2008-05-20 David Bateman - - * general/interp1q.m: New function. - * general/Makefile.in (SOURCES): Add it here. - - 2008-05-20 Bill Denney - - * time/datenum.m: Allow mixed scalar and vector/matrix input. - New tests. - - 2008-05-19 John W. Eaton - - * general/isa.m: Fix tests. - - 2008-05-13 Bill Denney - - * general/isa.m: Use persistent cell arrays to hold class names - instead of multiple strcmp calls. - - 2008-05-12 David Bateman - - * control/base/__stepimp__.m, control/base/bode_bounds.m, - control/base/damp.m, control/base/dlqr.m, control/base/lsim.m, - control/base/tzero.m, control/hinf/hinfsyn.m, - control/hinf/is_dgkf.m, control/system/d2c.m, - control/system/is_controllable.m, control/system/is_detectable.m, - control/system/is_stabilizable.m, control/system/is_stable.m, - control/system/sysconnect.m, general/bicubic.m, - general/cplxpair.m, general/isdefinite.m, general/issymmetric.m, - general/quadgk.m, general/quadl.m, general/quadv.m, - geometry/delaunayn.m, linear-algebra/krylov.m, - linear-algebra/null.m, linear-algebra/onenormest.m, - linear-algebra/orth.m, linear-algebra/rank.m, - linear-algebra/rref.m, optimization/qp.m, optimization/sqp.m, - polynomial/polygcd.m, polynomial/residue.m, sparse/normest.m, - specfun/erfinv.m, statistics/distributions/betainv.m, - statistics/distributions/gaminv.m, - statistics/distributions/kolmogorov_smirnov_cdf.m, - statistics/tests/manova.m: Modify calls to eps to allow for single - precision types. - - * general/isa.m: Also treat "float: and "numeric" as the class - argument. - - * general/dblquad.m, general/quadgk.m, general/quadv.m, - general/triplequad.m: New functions. - - * testfun/assert.m: Allow assert(cond, errmsg, ...) and - assert(cond, msgid, errmsg, ...) syntax for compatibility. - - 2008-05-09 Thomas Weber - - * miscellaneous/news.m: Replace deprecated isstr call. - - 2008-05-06 David Bateman - - * miscellaneous/symvar.m: New function. - * miscellaneous/Makefile.in (SOURCES): Add it to the list. - - 2008-05-04 John W. Eaton - - * miscellaneous/dbstack.m: Delete. - * miscellaneous/Makefile.in (SOURCES): Remove it from the list. - - 2008-05-03 Rafael Laboissiere - - * linear-algebra/cond.m, miscellaneous/version.m, - miscellaneous/version.m, plot/feather.m, plot/__bar__.m, - plot/compass.m, plot/__quiver__.m, plot/__scatter__.m: Use ischar - instead of deprecated isstr. - - 2008-05-01 David Bateman - - * plot/plot.m: Remove documentation of 'L' option. - * plot/stairs.m: Allow axis handles, properties and linespecs to - be passed. - - 2008-04-30 John W. Eaton - - * elfun/acot.m, elfun/acsc.m, elfun/acsch.m, elfun/asec.m, - elfun/asech.m, specfun/pow2.m: Fix tests. - - 2008-04-30 Jaroslav Hajek - - * specfun/log2.m: Delete. - * specfun/Makefile.in (SOURCES): Delete it from the list. - - 2008-04-29 David Bateman - - pkg/pkg.m: Also set archprefix with the -local and -global options. - - 2008-04-29 Jonathan Stickel - - * statistics/distributions/tcdf.m, statistics/distributions/tinv.m: - Doc fix. - - 2008-04-25 John W. Eaton - - * miscellaneous/dbstack.m: New function. - * miscellaneous/Makefile.in (SOURCES): Add it to the list. - - 2008-04-21 David Bateman - - * plot/__go_draw_axes__.m (gnuplot_position_colorbox): New arg, obj. - Change caller. Improve sizing and position of colorbox for subplots. - * plot/colorbar.m: New demos. - - 2008-04-16 Sᅵren Hauberg - - * plot/__gnuplot_version__.m: Display error if gnuplot is not found. - - 2008-04-15 John W. Eaton - - * plot/view.m: Get values from current axes if nargin == 0. - - 2008-04-15 David Bateman - - * plot/__patch__.m: Fix for NaN values in faces of patches. - - 2008-04-14 David Bateman - - * plot/rose.m: Add missing comment mark that causes issues with - octave-forge function referencing. - * deprecated/lchol.m, deprecated/splchol.m: Fix texinfo errors. - - 2008-04-09 John W. Eaton - - * deprecated/beta_cdf.m, deprecated/beta_inv.m, - deprecated/beta_pdf.m, deprecated/beta_rnd.m, - deprecated/binomial_cdf.m, deprecated/binomial_inv.m, - deprecated/binomial_pdf.m, deprecated/binomial_rnd.m, - deprecated/chisquare_cdf.m, deprecated/chisquare_inv.m, - deprecated/chisquare_pdf.m, deprecated/chisquare_rnd.m, - deprecated/clearplot.m, deprecated/clg.m, deprecated/com2str.m, - deprecated/exponential_cdf.m, deprecated/exponential_inv.m, - deprecated/exponential_pdf.m, deprecated/exponential_rnd.m, - deprecated/f_cdf.m, deprecated/f_inv.m, deprecated/f_pdf.m, - deprecated/f_rnd.m, deprecated/gamma_cdf.m, - deprecated/gamma_inv.m, deprecated/gamma_pdf.m, - deprecated/gamma_rnd.m, deprecated/geometric_cdf.m, - deprecated/geometric_inv.m, deprecated/geometric_pdf.m, - deprecated/geometric_rnd.m, deprecated/hypergeometric_cdf.m, - deprecated/hypergeometric_inv.m, deprecated/hypergeometric_pdf.m, - deprecated/hypergeometric_rnd.m, deprecated/intersection.m, - deprecated/is_bool.m, deprecated/is_complex.m, - deprecated/is_list.m, deprecated/is_matrix.m, - deprecated/is_scalar.m, deprecated/is_square.m, - deprecated/is_stream.m, deprecated/is_struct.m, - deprecated/is_symmetric.m, deprecated/is_vector.m, - deprecated/isstr.m, deprecated/lchol.m, - deprecated/lognormal_cdf.m, deprecated/lognormal_inv.m, - deprecated/lognormal_pdf.m, deprecated/lognormal_rnd.m, - deprecated/meshdom.m, deprecated/normal_cdf.m, - deprecated/normal_inv.m, deprecated/normal_pdf.m, - deprecated/normal_rnd.m, deprecated/pascal_cdf.m, - deprecated/pascal_inv.m, deprecated/pascal_pdf.m, - deprecated/pascal_rnd.m, deprecated/poisson_cdf.m, - deprecated/poisson_inv.m, deprecated/poisson_pdf.m, - deprecated/poisson_rnd.m, deprecated/polyinteg.m, - deprecated/setstr.m, deprecated/spatan2.m, deprecated/spchol.m, - deprecated/spchol2inv.m, deprecated/spcholinv.m, - deprecated/spcumprod.m, deprecated/spcumsum.m, deprecated/spdet.m, - deprecated/spdiag.m, deprecated/spfind.m, deprecated/spinv.m, - deprecated/spkron.m, deprecated/splchol.m, deprecated/splu.m, - deprecated/spmax.m, deprecated/spmin.m, deprecated/spprod.m, - deprecated/spqr.m, deprecated/spsum.m, deprecated/spsumsq.m, - deprecated/struct_contains.m, deprecated/struct_elements.m, - deprecated/t_cdf.m, deprecated/t_inv.m, deprecated/t_pdf.m, - deprecated/t_rnd.m, deprecated/uniform_cdf.m, - deprecated/uniform_inv.m, deprecated/uniform_pdf.m, - deprecated/uniform_rnd.m, deprecated/weibcdf.m, - deprecated/weibinv.m, deprecated/weibpdf.m, deprecated/weibrnd.m, - deprecated/weibull_cdf.m, deprecated/weibull_inv.m, - deprecated/weibull_pdf.m, deprecated/weibull_rnd.m, - deprecated/wiener_rnd.m: Don't embed newline in warning message. - - 2008-04-09 David Bateman - - * testfun/assert.m: Don't allow cond and expected to be lists. - - 2008-04-04 John W. Eaton - - * strings/Makefile.in (SOURCES): Add isstrprop.m to the list. - - * Makefile.in, audio/Makefile.in, control/Makefile.in, - * Makefile.incontrol/base/Makefile.in, control/hinf/Makefile.in, - * Makefile.incontrol/obsolete/Makefile.in, - * Makefile.incontrol/system/Makefile.in, control/util/Makefile.in, - * Makefile.indeprecated/Makefile.in, elfun/Makefile.in, - * Makefile.infinance/Makefile.in, general/Makefile.in, - * Makefile.ingeometry/Makefile.in, image/Makefile.in, - * Makefile.inio/Makefile.in, linear-algebra/Makefile.in, - * Makefile.inmiscellaneous/Makefile.in, optimization/Makefile.in, - * Makefile.inpath/Makefile.in, pkg/Makefile.in, plot/Makefile.in, - * Makefile.inpolynomial/Makefile.in, quaternion/Makefile.in, - * Makefile.inset/Makefile.in, signal/Makefile.in, - * Makefile.insparse/Makefile.in, specfun/Makefile.in, - * Makefile.inspecial-matrix/Makefile.in, startup/Makefile.in, - * Makefile.instatistics/Makefile.in, statistics/base/Makefile.in, - * Makefile.instatistics/distributions/Makefile.in, - * Makefile.instatistics/models/Makefile.in, - * Makefile.instatistics/tests/Makefile.in, strings/Makefile.in, - * Makefile.intestfun/Makefile.in, time/Makefile.in - * Makefile.in(check-m-sources): New target. - - 2008-04-04 Bill Denney - - * optimization/lsqnonneg.m: Use optimset, correctly index - Z and P in main loop. - - 2008-04-04 David Bateman - - * deprecated/beta_cdf.m deprecated/beta_inv.m - deprecated/beta_pdf.m deprecated/beta_rnd.m - deprecated/binomial_cdf.m deprecated/binomial_inv.m - deprecated/binomial_pdf.m deprecated/binomial_rnd.m - deprecated/chisquare_cdf.m deprecated/chisquare_inv.m - deprecated/chisquare_pdf.m deprecated/chisquare_rnd.m - deprecated/clearplot.m deprecated/clg.m deprecated/com2str.m - deprecated/exponential_cdf.m deprecated/exponential_inv.m - deprecated/exponential_pdf.m deprecated/exponential_rnd.m - deprecated/f_cdf.m deprecated/f_inv.m deprecated/f_pdf.m - deprecated/f_rnd.m deprecated/gamma_cdf.m deprecated/gamma_inv.m - deprecated/gamma_pdf.m deprecated/gamma_rnd.m - deprecated/geometric_cdf.m deprecated/geometric_inv.m - deprecated/geometric_pdf.m deprecated/geometric_rnd.m - deprecated/hypergeometric_cdf.m deprecated/hypergeometric_inv.m - deprecated/hypergeometric_pdf.m deprecated/hypergeometric_rnd.m - deprecated/intersection.m deprecated/is_bool.m - deprecated/is_complex.m deprecated/is_list.m - deprecated/is_matrix.m deprecated/is_scalar.m - deprecated/is_square.m deprecated/is_stream.m deprecated/isstr.m - deprecated/is_struct.m deprecated/is_symmetric.m - deprecated/is_vector.m deprecated/lognormal_cdf.m - deprecated/lognormal_inv.m deprecated/lognormal_pdf.m - deprecated/lognormal_rnd.m deprecated/meshdom.m - deprecated/normal_cdf.m deprecated/normal_inv.m - deprecated/normal_pdf.m deprecated/normal_rnd.m - deprecated/pascal_cdf.m deprecated/pascal_inv.m - deprecated/pascal_pdf.m deprecated/pascal_rnd.m - deprecated/poisson_cdf.m deprecated/poisson_inv.m - deprecated/poisson_pdf.m deprecated/poisson_rnd.m - deprecated/polyinteg.m deprecated/setstr.m - deprecated/struct_contains.m deprecated/struct_elements.m - deprecated/t_cdf.m deprecated/t_inv.m deprecated/t_pdf.m - deprecated/t_rnd.m deprecated/uniform_cdf.m - deprecated/uniform_inv.m deprecated/uniform_pdf.m - deprecated/uniform_rnd.m deprecated/weibcdf.m deprecated/weibinv.m - deprecated/weibpdf.m deprecated/weibrnd.m deprecated/weibull_cdf.m - deprecated/weibull_inv.m deprecated/weibull_pdf.m - deprecated/weibull_rnd.m deprecated/wiener_rnd.m: Add warning that - function will be removed in a future version. - - 2008-04-03 John W. Eaton - - * deprecated/beta_cdf.m, deprecated/beta_inv.m, - deprecated/beta_pdf.m, deprecated/beta_rnd.m, - deprecated/binomial_cdf.m, deprecated/binomial_inv.m, - deprecated/binomial_pdf.m, deprecated/binomial_rnd.m, - deprecated/chisquare_cdf.m, deprecated/chisquare_inv.m, - deprecated/chisquare_pdf.m, deprecated/chisquare_rnd.m, - deprecated/clearplot.m, deprecated/clg.m, deprecated/com2str.m, - deprecated/exponential_cdf.m, deprecated/exponential_inv.m, - deprecated/exponential_pdf.m, deprecated/exponential_rnd.m, - deprecated/f_cdf.m, deprecated/f_inv.m, deprecated/f_pdf.m, - deprecated/f_rnd.m, deprecated/gamma_cdf.m, - deprecated/gamma_inv.m, deprecated/gamma_pdf.m, - deprecated/gamma_rnd.m, deprecated/geometric_cdf.m, - deprecated/geometric_inv.m, deprecated/geometric_pdf.m, - deprecated/geometric_rnd.m, deprecated/hypergeometric_cdf.m, - deprecated/hypergeometric_inv.m, deprecated/hypergeometric_pdf.m, - deprecated/hypergeometric_rnd.m, deprecated/intersection.m, - deprecated/is_bool.m, deprecated/is_complex.m, - deprecated/is_list.m, deprecated/is_matrix.m, - deprecated/is_scalar.m, deprecated/is_square.m, - deprecated/is_stream.m, deprecated/is_struct.m, - deprecated/is_symmetric.m, deprecated/is_vector.m, - deprecated/isstr.m, deprecated/lchol.m, - deprecated/lognormal_cdf.m, deprecated/lognormal_inv.m, - deprecated/lognormal_pdf.m, deprecated/lognormal_rnd.m, - deprecated/meshdom.m, deprecated/normal_cdf.m, - deprecated/normal_inv.m, deprecated/normal_pdf.m, - deprecated/normal_rnd.m, deprecated/pascal_cdf.m, - deprecated/pascal_inv.m, deprecated/pascal_pdf.m, - deprecated/pascal_rnd.m, deprecated/poisson_cdf.m, - deprecated/poisson_inv.m, deprecated/poisson_pdf.m, - deprecated/poisson_rnd.m, deprecated/polyinteg.m, - deprecated/setstr.m, deprecated/spatan2.m, deprecated/spchol.m, - deprecated/spchol2inv.m, deprecated/spcholinv.m, - deprecated/spcumprod.m, deprecated/spcumsum.m, deprecated/spdet.m, - deprecated/spdiag.m, deprecated/spfind.m, deprecated/spinv.m, - deprecated/spkron.m, deprecated/splchol.m, deprecated/splu.m, - deprecated/spmax.m, deprecated/spmin.m, deprecated/spprod.m, - deprecated/spqr.m, deprecated/spsum.m, deprecated/spsumsq.m, - deprecated/struct_contains.m, deprecated/struct_elements.m, - deprecated/t_cdf.m, deprecated/t_inv.m, deprecated/t_pdf.m, - deprecated/t_rnd.m, deprecated/uniform_cdf.m, - deprecated/uniform_inv.m, deprecated/uniform_pdf.m, - deprecated/uniform_rnd.m, deprecated/weibcdf.m, - deprecated/weibinv.m, deprecated/weibpdf.m, deprecated/weibrnd.m, - deprecated/weibull_cdf.m, deprecated/weibull_inv.m, - deprecated/weibull_pdf.m, deprecated/weibull_rnd.m, - deprecated/wiener_rnd.m: - Note version when function was deprecated. - - 2008-04-03 David Bateman - - * plot/__go_draw_axes__.m: Conditionally "set pm3d implict" for 2D - plot or 3D plots with more than one line. - - * deprecated/splchol.m deprecated/lchol.m deprecated/spfind.m - deprecated/spchol.m deprecated/spmin.m deprecated/spmax.m - deprecated/spdet.m deprecated/splu.m deprecated/spqr.m - deprecated/spatan2.m deprecated/spchol2inv.m - deprecated/spcholinv.m deprecated/spcumprod.m deprecated/spdiag.m - deprecated/spinv.m deprecated/spcumsum.m deprecated/spprod.m - deprecated/spsum.m deprecated/spsumsq.m: New files - * deprecated/Makefile.in (SOURCES): Add them here. - - 2008-04-03 Ben Abbott - - * sparse/spaugment.m: Increase test script tolerance. - - 2008-04-02 John W. Eaton - - * deprecated/Makefile.in (SOURCES): Add spkron.m to the list. - - * general/Makefile.in (SOURCES): Add runlength.m to the list. - - 2008-04-02 Bill Denney - - * optimization/lsqnonneg.m: New function. - * optimization/Makefile.in (SOURCES): Add it to the list. - - 2008-04-02 David Bateman - - * sparse/spaugment.m: New function - * sparse/Makefile.in (SOURCES): Add it here. - - * plot/__gnuplot_ginput__.m: Use the gnuplot stream itself for - communication rather than a chat file if mkfifo is not available. - * plot/gnuplot_drawnow.m: Open stream with popen2 to allow two way - communication with the gnuplot process. - - 2008-04-01 Richard Bovey - - * general/sortrows.m: Handle negative column arguments. - - 2008-04-01 Julian Schnidder - - * miscellaneous/perl.m: New function. - * miscellaneous/Makefile.in (SOURCES): Add it to the list. - - 2008-03-31 David Bateman - - * plot/__go_draw_axes__.m: Set the tick direction in the main call - the set tics rather than separately to avoid issues with multiple - ticks in plotyy. - - * plot/gtext.m: New function to place text on a plot. - * plot/waitforbuttonpress.m: New function. - * plot/Makefile.in (SOURCES): Add them to the list. - * plot/__gnuplot_ginput__.m: Bug fix for nargin==1. Workaround for - missing mkfifo under Windows. - * plot/ginput.m: Eliminate setting of n. - - * plot/ginput.m: New function. - * plot/__gnuplot_ginput__.m: New function based on a version of - ginput.m from Petr Mikulik . - * plot/Makefile.in (SOURCES): Add them to the list. - - 2008-03-31 Dmitri A. Sergatskov - - * miscellaneous/run.m: Fix check for existence of file. - - 2008-03-27 Jaroslav Hajek - - * general/lookup.m: Remove (lookup moved to DLD-FUNCTIONS). - * general/Makefile.in (SOURCES): Delete lookup.m from the list. - * general/interp1.m, general/interp2.m, general/interpn.m, - polynomial/ppval.m: Fix buggy lookup calls. - * general/interp1.m: New test. - - 2008-03-28 Thomas Weber - - * miscellaneous/tempdir.m: Use correct function name in texinfo - documentation. - - 2008-03-28 Jaroslav Hajek - - * general/del2.m: Missing semicolon. - - 2008-03-28 Julian Schnidder - - * miscellaneous/info.m: New function. - * miscellaneous/Makefile.in (SOURCES): Add it to the list. - - 2008-03-27 Sᅵren Hauberg - - * plot/xlim.m, plot/ylim.m, plot/zlim.m, strings/strtrim.m: - Doc fixes. - - 2008-03-27 David Bateman - - * plot/__plt2__.m: Test if args are empty first so that - plot(zeros(1,0),zeros(1,0)) works as expected. - - * plot/plotyy.m: The axis handle is a two element vector and - so needs special treatment. Call newplot for the second axis. - - 2008-03-27 Bill Denney - - * time/datenum.m: Allow vector inputs in any orientation. - - * strings/validatestring.m: New function. - * strings/Makefile.in (SOURCES): Add it to the list. - - * general/nargoutchk.m: New function. - * general/Makefile.in (SOURCES): Add it to the list. - - * general/genvarname.m: New function. - * general/Makefile.in (SOURCES): Add it to the list. - - * time/addtodate.m: New function. - * time/Makefile.in (SOURCES): Add it to the list. - - * geometry/rectint.m: Vectorize and add more tests. - - 2008-03-27 John W. Eaton - - * plot/__axis_label__.m: Use name of caller in error message. - - 2008-03-27 David Bateman - - * linear-algebra/planerot.m: Givens rotation function. - - 2008-03-26 John W. Eaton - - * set/ismember.m: Set size of idx output correctly for empty args. - New tests. - - * general/logical.m: Correctly handle empty args. New tests. - - * control/hinf/h2syn.m, general/__splinen__.m, general/gradient.m, - geometry/inpolygon.m, geometry/trimesh.m, geometry/triplot.m, - image/imagesc.m, io/csvread.m, io/csvwrite.m, - miscellaneous/edit.m, miscellaneous/tempname.m, plot/fill.m, - plot/patch.m, plot/ribbon.m, plot/surface.m, polynomial/mkpp.m, - polynomial/pchip.m, polynomial/spline.m, set/unique.m: - Texinfo fixes. - - 2008-03-26 Jaroslav Hajek - - * linear-algebra/dmult.m: Handle scaling along arbitrary dimension. - - 2008-03-26 Sᅵren Hauberg - - * polynomial/convn.m: New tests. - - 2008-03-20 Ben Abbott - - * statistics/base/statistics.m: Calculate median and quantiles in - a manner consistent with method #7 used by GNU R. - * statistics/base/__quantile__.m, statistics/base/quantile.m, - statistics/base/prctile.m: New functions. - * statistics/base/Makefile.in (SOURCES): Add them to the list. - - 2008-03-25 Sᅵren Hauberg - - * polynomial/convn.m: New function. - * polynomial/Makefile.in (SOURCES): Add it to the list. - - 2008-03-25 David Bateman - - * image/contrast.m: New function. - * image/Makefile.in (SOURCES): Add it to the list. - - 2008-03-24 Thomas Weber - - * pkg/pkg.m: Allow installation of already extracted packages. - - 2008-03-24 David Bateman - - * general/idivide.m: New function. - * general/Makefile.in (SOURCES): Add it to the list. - - * miscellaneous/namelengthmax.m: New function. - * miscellaneous/Makefile.in (SOURCES): Add it to the list. - - * strings/regexptranslate.m: New function. - * strings/Makefile.in (SOURCES): Add it to the list. - - 2008-03-21 David Bateman - - * specfun/reallog.m, specfun/realpow.m, specfun/realsqrt.m: - New functions. - * specfun/Makefile.in (SOURCES): Add them to the list. - - 2008-03-20 David Bateman - - * general/tril.m, general/triu.m: Fail if input is a structure. - - * miscellaneous/cast.m: Also allow cast to "char". - - * general/rotdim.m: Ensure k is an integer scale. - - * general/circshift.m: If matrix is empty fast return. - - 2008-03-20 Jaroslav Hajek - - * linear-algebra/subspace.m: Check number of arguments, number - of dimensions of arguments and matching dimensions. - - 2008-03-19 Jaroslav Hajek - - * linear-algebra/subspace.m: New function. - * linear-algebra/subspace.m: New function. - - 2008-03-19 Emil Lucretiu - - * signal/sinetone.m: Ensure integral number of samples. - - 2008-03-19 Michael D. Godfrey - - * plot/__go_draw_axes__.m: Additional correction for symbol codes. - - 2008-03-19 Ben Abbott - - * statistics/base/mode.m: Add NDArray tests. - - 2008-03-19 Jaroslav Hajek - - * statistics/distributions/exppdf.m, - statistics/distributions/expcdf.m, - statistics/distributions/expinv.m, - statistics/distributions/exprnd.m: Doc fix. - - 2008-03-19 David Bateman - - * statistics/base/mode.m: Fix for row vectors. - - * plot/__scatter__.m: Modify for change of markersize in - __go_draw_axes__.m and for compatibility. - * plot/__go_draw_axes__.m: Don't divide the marker size by 6 - twice. - * plot/scatter3.m: Doc fix. - - 2008-03-18 Ben Abbott - - * specfun/beta.m: Fix for negative inputs. - - 2008-03-18 Michael D. Godfrey - - * plot/__go_draw_axes__.m: Use correct symbol codes. - - 2008-03-14 Kai Habel - - * plot/__go_draw_axes__.m: Expicitly set gnuplot user - style to default to avoid wrong mesh color in some cases. - - 2008-03-12 David Bateman - - * geometry/griddata3.m: Use griddatan and not griddata - internally. Return vi and not yi. Add test code. - - 2008-03-11 John W. Eaton - - * plot/__go_draw_axes__.m: Use get to access hidden properties. - Use strcmpi when comparing string properties. - - * io/csread.m, io/csvwrite.m, io/dlmwrite.m: Style fixes. - - 2008-03-11 Kai Habel - - * plot/__go_draw_axes__.m: Plot surfaces in front of axes. - Allow plotting of uniform colored mesh plots with and - w/o hidden line removal. - - 2008-03-11 David Bateman - - * io/dlmwrite.m, io/csvread.m, io/csvwrite.m: Files ported from - octave-forge. - * io/Makefile.in (SOURCES): Add them here. - - 2008-03-07 John W. Eaton - - * plot/contourf.m: Set axes layer property to "top". - - * plot/__go_draw_axes__.m: Handle tickdir property. - - 2008-03-06 John W. Eaton - - * plot/hist.m: Avoid temporaries. - Allow matrix arguments when number of bins > 30. - From Robert S. Mahurin . - - * plot/ChangeLog: Handle axes linewidth property. - - * plot/__go_draw_axes__.m: Adjust markersize by a factor of 1/6. - - * general/interpn.m: New test. - - 2008-03-05 Ben Abbott - - * polynomial/roots.m: Catch Infs and/or NaNs. - - 2008-03-05 Sebastien Loisel - - * polynomial/roots.m: Apply a scaling factor to the removal of the - leading zeros. - - 2008-03-04 John W. Eaton - - * plot/print.m: Fix oops in applying last change. - - 2008-03-04 Bill Denney - - * plot/allchild.m, plot/findall.m: New functions. - * plot/Makefile.in (SOURCES): Add them to the list. - - * geometry/rectint.m: New function. - * geometry/Makefile.in (SOURCES): Add it to the list. - - 2008-03-04 Michael Goffioul - - * pkg/pkg.m (pkg:configure_make): Make it work with recent changes in - isspace handling with cell arrays of strings. - - 2008-03-04 Ben Abbott - - * polynomial/polyfit.m: Modified tests to respect a relative tolerance. - - * plot/print.m: Accept a figure handle as an optional input. - - 2008-02-29 John W. Eaton - - * plot/print.m: Handle gif and jpg devices. - - 2008-02-28 John W. Eaton - - * plot/__go_draw_axes__.m (get_old_gnuplot_color): New subfunction. - Use it to replace repeated if/elseif blocks. - - 2008-02-28 Kai Habel - - * plot/__go_draw_axes__.m: If facecolor property of a surface is - "none", don't use pm3d mode and set linestyle correctly. - - 2008-02-25 Ben Abbott - - * control/system/zpout.m, finance/irr.m, general/int2str.m, - general/num2str.m, miscellaneous/bug_report.m, - miscellaneous/copyfile.m, miscellaneous/dir.m, - miscellaneous/edit.m, miscellaneous/fullfile.m, - miscellaneous/mkoctfile.m, miscellaneous/movefile.m, - miscellaneous/tempdir.m, miscellaneous/unpack.m, - path/__extractpath__.m, pkg/pkg.m, plot/__ezplot__.m, - plot/__go_draw_axes__.m, plot/legend.m, plot/print.m, - signal/spectral_adf.m, signal/spectral_xdf.m, - statistics/tests/z_test.m, statistics/tests/z_test_2.m, - strings/Makefile.in, strings/strcat.m, strings/strvcat.m, - testfun/assert.m, testfun/demo.m, testfun/speed.m, - testfun/test.m: Use cstrcat instead of strcat. - - * strings/strcat.m: New compatible version. - - * strings/cstrcat.m: Rename from strings/strcat.m. - - 2008-02-25 John W. Eaton - - * strings/isstrprop.m: New file. - - 2008-02-25 Ryan Hinton - - * miscellaneous/unpack.m: Use "-f -" args for tar. - - 2008-02-24 John W. Eaton - - * specfun/log2.m: Ensure returned value of F strictly less than 1. - From Dave Hawthorne . - - 2008-02-22 Ben Abbott - - * specfun/legendre.m: Doc fix. - - 2008-02-22 David Bateman - - * sparse/pcg.m, sparse/spdiags, spstats.m: Remove references to - spdiag. - - 2008-02-22 John W. Eaton - - * miscellaneous/fullfile.m: Improve handling of empty args and - args ending with filesep. - - * control/base/__stepimp__.m: Don't use subplot for just one plot. - - 2008-02-21 John W. Eaton - - * image/imshow.m: Call axis ("image"). - From Michael G. Ross . - - * plot/errorbar.m: If nargout > 0, return vector of handles to - line objects. - * plot/__go_draw_axes__.m: Improve handling of line style for - errorbar plots. - - 2008-02-20 Marco Caliari - - * specfun/legendre.m: Accept normalization options ("sch", "norm"), - and improve stability for higher orders. - - 2008-02-20 John W. Eaton - - * strings/strcat.m: Detect cellstr args. - - 2008-02-20 David Bateman - - * sparse/colperm.m, sparse/nonzero.m, sparse/spdiags.m, - sparse/spfun.m, sparse/spones.m, sparse/sprand.m, - sparse/sprandn.m, sparse/sprandsym.m, sparse/spy.m: Use generic - version of find rather than spfind. - - 2008-02-19 Ben Abbott - - * miscellaneous/edit.m: New option EDITINPLACE. Prefer file list - rather than path list. Return option structure with "get all". - - * polynomial/polyfit.m: Use QR decomposition. Handle - normalization option. - * polynomial/polyval.m: Normalize dependent variable. Optionally - generate 50% prediction intervals. - - * miscellaneous/ver.m: Include package version information in - output. Improve consistency with Matlab. - - 2008-02-19 John W. Eaton - - * pkg/pkg.m: Style fixes. - - 2008-02-19 Carlo de Falco - - * pkg/pkg.m: Handle 'describe' command. - (parse_pkg_idx, print_package_description): New subfunctions. - - 2008-02-19 Bill Denney - - * time/datestr.m: Avoid confusion for datenum vectors that are 6 - elements wide. - - 2008-02-18 David Bateman - - * general/rem.m, general/mod.m: Treat integer types correctly. - - 2008-02-15 Timo Lindfors - - * statistics/tests/kruskal_wallis_test.m: Handle ties. - * general/runlength.m: New function from Paul Kienzle. - - 2008-02-15 Rolf Fabian - - * linear-algebra/cond.m: New optional second argument to - specify 1-norm, inf-norm, or frobenius-norm. - - 2008-02-12 Kostas Poulios - - * plot/__quiver__.m: make arrow head be in z-plane of the arrow - body. Allow the linespec to specify the arrow color. - - 2008-02-12 David Bateman - - * miscellaneous/cast.m: Also treat the logical type. - - * plot/__go_draw_axes__.m: Set pm3d implict to fix colorbars on - contour plots. - - * plot/__go_draw_axes__.m: Use the cdatamapping property to set - the cbrange. - * plot/__img__.m: Set cdatamapping to "direct". - * plot/imagesc.m: Set cdatamapping to "scaled". - - 2008-02-08 Julien Pommier - - * audio/wavread.m: Limit data read to end of data chunk. - - 2008-02-08 David Bateman - - * plot/__contour__.m: Respect the graphic handle options that are - passed. - * plot/__go_draw_axes__.m: Respect the linewidth for patch objects. - - 2008-02-01 Dave Goel - - * signal/arch_rnd.m: Correctly index E and Y vectors. - - 2008-02-01 Bill Denney - - * time/weekday.m: Allow vector inputs and speed up. - * time/eomday.m: Return column vector for column vector inputs. - - 2008-01-30 John W. Eaton - - * miscellaneous/edit.m: Use "## Created: DATE" instead of "initial - revision". - - * plot/Makefile.in (SOURCES): Include __plt2sv__.m and - __plt2vs__.m in the list. - - * miscellaneous/tempdir.m: Append filesep to name for - compatibility. Warn if not a directory or directory does not - exist. - - * strings/deblank.m: Improve compatibility. - - 2008-01-29 John W. Eaton - - * strings/str2double.m: Delete unused variable FLAG_OCTAVE. - - 2008-01-28 Michael Goffioul - - * plot/xlabel.m, plot/ylabel.m, plot/zlabel.m: - Return the label handle, not the current axis handle. - - 2008-01-25 Alexander Barth - - * general/interpn.m: Compatibility fix. Don't ndgrid vector - abscissa. - - 2008-01-25 David Bateman - - * general/__splinen__.m: Treat mixed orientation vectors. - * plot/__scatter__.m: Remove NaN values from data. - * plot/__patch__.m: Vectorize treatment of trailing NaN values. - - 2008-01-25 Thomas Weber - - * linear-algebra/trace.m: Test cases for non 2-d args. - - 2008-01-25 James Packer - - * geometry/griddata3.m: Call griddata, not gridata. - - 2008-01-24 Schloegl Alois - - * linear-algebra/trace.m: Require 2-d args. Handle vectors properly. - - 2008-01-22 Thomas Weber - - * linear-algebra/cond.m, linear-algebra/trace.m: - Move tests here from test/test_linalg.m. - - * general/diff.m, general/fliplr.m, general/flipud.m, - general/logspace.m, general/rot90.m, general/shift.m, general/tril.m, - general/triu.m, linear-algebra/vec.m, linear-algebra/vech.m, - special-matrix/hankel.m, special-matrix/hilb.m, - special-matrix/invhilb.m, special-matrix/sylvester_matrix.m, - special-matrix/toeplitz.m, special-matrix/vander.m: - Move tests here from test/test_matrix.m. - - * general/isscalar.m, general/issquare.m, general/isvector.m: - Move tests here from test/test_number.m. - - * deprecated/polyinteg.m, polynomial/compan.m, polynomial/conv.m, - polynomial/deconv.m, polynomial/poly.m, polynomial/polyderiv.m, - polynomial/polyfit.m, polynomial/polyreduce.m, polynomial/polyval.m, - polynomial/polyvalm.m, polynomial/roots.m: - Move tests here from test/test_poly.m. - - * signal/unwrap.m: - Move tests here from test/test_signal.m. - - * statistics/base/corrcoef.m, statistics/base/cov.m, - statistics/base/kurtosis.m, statistics/base/mahalanobis.m, - statistics/base/mean.m, statistics/base/median.m, - statistics/base/skewness.m, statistics/base/std.m: - Move tests here from test/test_stats.m. - - * general/int2str.m, general/num2str.m, strings/bin2dec.m, - strings/blanks.m, strings/deblank.m, strings/dec2bin.m, - strings/dec2hex.m, strings/findstr.m, strings/hex2dec.m, - strings/index.m, strings/rindex.m, strings/split.m, strings/str2mat.m, - strings/str2num.m, strings/strcat.m, strings/strrep.m, - strings/substr.m: - Move tests here from test/test_string.m. - - * miscellaneous/computer.m, miscellaneous/ls.m, - miscellaneous/version.m, time/asctime.m, time/clock.m, time/ctime.m, - time/date.m, time/etime.m, time/is_leap_year.m: - Move tests here from test/test_system.m. - - 2008-01-22 Schloegl Alois - - * specfun/erfinv.m: Replace z_old and z_new by a single variable z. - Simplify initial checks on argument values. - - 2008-01-22 Michael Goffioul - - * plot/gnuplot_drawnow.m: New function corresponding to the - implementation of the gnuplot-based graphics backend (derived from - drawnow.m). - * plot/drawnow.m: Deleted (converted to C++). - - 2008-01-15 Rolf Fabian - - * linear-algebra/__norm__.m: Only scale if inf norm is finite. - New tests. - - 2008-01-18 John W. Eaton - - * optimization/sqp.m: End each function with endfunction. - - 2008-01-18 Ben Abbott - - * polynomial/residue.m: For each group of pole multiplicity, set - the poles of the group to the value of the group's average. - - 2008-01-17 Tetsuro KURITA - - * plot/print.m: Handle PDF output. - * plot/drawnow.m: Add "PDF" in a list of enhanced_terminals. - - 2008-01-17 John W. Eaton - - * path/savepath.m: Print newline before initial comment line. - Double up single quote characters. - * path/__extractpath__.m: Return just the path as a string. - Undo single quote character doubling. - - * path/pathdef.m: Avoid eval. Simplify. - - * path/pathdef.m: Use fullfile instead of concatenating with filesep. - * path/__extractpath__.m, path/savepath.m: Use unwind_protect to - avoid possible file descriptor leak. - - 2008-01-17 Ben Abbott - - * path/savepath.m: Warn if modified file is not explicitly specified. - * startup/main-rcfile: Call atexit ("__finish__"). - - 2008-01-16 John W. Eaton - - * plot/__go_draw_axes__.m (__do_enhanced_option__): New subfunction. - Use it to disable enhanced mode for individual labels and titles. - - * startup/Makefile.in (SOURCES): Add __finish__.m to the list. - (install install-strip, uninstall): Handle function files. - - 2008-01-16 Ben Abbott - - * startup/__finish__.m: New file. - * path/__extractpath__.m, path/matlabroot.m, - path/pathdef.m: New files. - * path/Makefile.in (SOURCES): Add them to the list. - - 2008-01-15 Thomas Weber - - * special-matrix/vander.m: Vectorize. New test. - - * elfun/acot.m, elfun/acoth.m, elfun/acsc.m, elfun/acsch.m, - elfun/asec.m, elfun/asech.m, elfun/cot.m, elfun/coth.m, - elfun/csc.m,elfun/csch.m, elfun/lcm.m, elfun/sec.m, elfun/sech.m, - general/rem.m, miscellaneous/bincoeff.m, miscellaneous/xor.m, - specfun/beta.m, specfun/log2.m, specfun/pow2.m: - Move tests here from test/test_arith.m. - - 2008-01-15 John W. Eaton - - * linear-algebra/__norm__.m: Use sum(abs(x),2), not sum(abs(x.')). - - 2008-01-15 Michael Goffioul - - * plot/drawnow.m, plot/__go_draw_figure__.m, plot/__go_draw_axes__.m: - Call __get__ instead of get. - - 2008-01-15 Ben Abbott - - * linear-algebra/__norm__.m: Avoid divide by zero error for - Frobenius norm if matrix is all zeros. Use transpose instead of - hermitian operator. - - 2008-01-14 Bill Denney - - * plot/axis.m: Correctly handle "tight" and "image" options. - - 2008-01-14 Sᅵren Hauberg - - * image/hsv2rgb.m, image/ntsc2rgb.m, image/rgb2hsv.m, - image/rgb2ntsc.m: Also accept images as input. - - * image/gray2ind.m: Handle image type other than double. - Improve error checking and documentation. - - 2008-01-14 John W. Eaton - - * plot/__go_draw_axes__.m (get_fontname_and_size): Use strcmpi - instead of calling tolower on first arg. Default font name is - Helvetica, not helvetica. Don't downcase user-specified font name. - (__maybe_munge_text__): Fix typo. - - * optimization/sqp.m: Fix function definitions in test code. - - 2008-01-12 John W. Eaton - - * plot/gnuplot_binary.in: New file. - * plot/gnuplot_binary.m: Delete. - * plot/Makefile.in (SOURCES): Remove gnuplot_binary.m from the list. - (SOURCES_IN, GEN_M): New macros. - (DISTFILES): Include $(SOURCES_IN) in the list. - (FCN_FILES): Include $(GEN_M) in the list. - (all): Depend on $(GEN_M). - ($(GEN_M): %.m : $(TOPDIR)/Makeconf): New pattern rule. - (distclean): Also remove $(GEN_M). - - 2008-01-11 John W. Eaton - - * optimization/sqp.m: New test from example in doc string. - - 2008-01-10 Ben Abbott - - * polynomial/mpoles.m: Avoid cases where poles could be assigned - to more than one multiplicity group. - - 2008-01-10 John W. Eaton - - * plot/gnuplot_binary.m: New file. - * plot/Makefile.in (SOURCES): Add it to the list. - - 2008-01-09 John W. Eaton - - * plot/drawnow.m: Fail if filename includes a directory part that - does not exist. - - 2008-01-07 John W. Eaton - - * miscellaneous/copyfile.m, miscellaneous/movefile.m: - Error if glob call fails to match any files. - - 2008-01-04 Thomas Treichl - - * strings/strtrim.m: Doc fix. - - 2008-01-04 Muthiah Annamalai - - * general/sub2ind.m, general/ind2sub.m: Doc fix. - - 2008-01-04 Sᅵren Hauberg - - * set/create_set.m, set/union.m: Accept "rows" argument. - - 2008-01-02 John W. Eaton - - * plot/print.m: Correctly handle pbm terminal. - - 2007-12-28 John W. Eaton - - * miscellaneous/edit.m: Use strcat instead of fullfile to add file - extensions. - - 2007-12-28 David Bateman - - * ezcontourf.m, ezcontour.m, ezmeshc.m, ezmesh.m, ezplot3.m, - __ezplot__.m, ezpolar.m, ezsurfc.m, ezsurf.m: New functions. - * Makefile.in (SOURCES): Add to the sources. - - 2007-12-28 Kai Habel - - * plot/pcolor.m: Swap 1st and 2nd argument in call to meshgrid. - Remove unnecessary call of size function. - - 2007-12-21 John W. Eaton - - Version 3.0.0 released. - - 2007-12-21 Sᅵren Hauberg - - * image/imshow.m: Accept empty value for display_range. - - 2007-12-20 Michael Goffioul - - * pkg/pkg.m: Add .lib as architecture-dependent suffix. - - 2007-12-19 Sᅵren Hauberg - - * image/imshow.m: Store uint8 images as doubles. Handle default - display ranges correctly. - - 2007-12-19 Alexander Barth - Peter A. Gustafson - - * plot/contourc.m: Allow usage of irregular spaced x, y data. - - 2007-12-19 John W. Eaton - - * miscellaneous/edit.m: New function. - * miscellaneous/Makefile.in (SOURCES): Add it to the list. - - 2007-12-19 Michael Goffioul - - * plot/__bar__.m: Handle "basevalue" option. - * plot/__bars__.m: New arg, base_value. - - 2007-12-17 David Bateman - - * plot/rose.m, plot/feather.m, plot/compass.m: New functions - * plot/Makefiles (SOURCES): Add them to the sources - * plot/polar.m: Set the x and y limits to the maximum polar - radius. Set the axes to be square. - * plot/__go_draw_axes__.m: Allow {x|y}axislocation to be "zero" - and print axis at zero if this is used. - - * plot/__go_draw_axes__.m: Use "set pm3d explicit" so that - contours can overlay pcolor plots. Priveldge no hidden line - removal when there are multiple objects in the plot. - - 2007-12-17 Peter A. Gustafson - - * plot/__go_draw_axes__.m: Fix mirrored tics and borders for - set (gca (), "[xy]axislocation", "{right|top}", "box", "off"). - - 2007-12-17 Ben Abbott - - * miscellaneous/run.m: Replace script with f when looking for - file to run. - - 2007-12-14 David Bateman - - * plot/contour3.m, plot/__contour__.m: Handle linespec. - * plot/contour.m: Doc fix. - * plot/__go_draw_axes__.m (case "patch"): Include "lt" in lt string. - Include linetype in withclause. - - * plot/__go_draw_axes__.m (__calc_dimensions__): New function. - Use it to determine dimensions. Consolidate all 3-d settings. - - 2007-12-13 John W. Eaton - - * image/imshow.m: Turn axis visibility off. - Don't scale true color images. - * image/image.m: Set axis layer property to "top". - - 2007-12-12 John W. Eaton - - * image/loadimage.m: Avoid calling eval. Avoid calling exist. - - * plot/pie.m: Avoid calling "exist". - - * linear-algebra/condest.m: Use nargin instead of size(varargin,2). - Condense argument processing logic. Allow 6 arguments. - Use issquare. Avoid calling "exist". - - * plot/__go_draw_axes__.m: Handle the axes layer property. - - 2007-12-12 David Bateman - - * plot/ellipsoid.m: Port from octave-forge, editing for style. - * plot/Makefile.in (SOURCES): Add to the sources. - - 2007-12-11 John W. Eaton - - * plot/surf.m: Set xgrid, ygrid, and zgrid on here. - * plot/surface.m: Not here. - - * plot/__go_draw_axes__.m: Always use "set grid front". Send a - subsequent "unset grid" if there is no grid. - - * plot/__go_draw_axes__.m: Include "front" in "set label" options. - - * plot/surface.m: Don't set facecolor property in call to - __go_surface__. - - * plot/__plt2vs__.m, plot/__plt2sv__.m: New functions. - * plot/__plt2__.m: Handle scalar-vector and vector-scalar cases. - - 2007-12-11 Kai Habel - - * plot/__patch__.m: Fix typo. Improve argument checking, so that a - color string is not taken as z value. - - * plot/slice.m: Remove unused variable, set xgrid, ygrid, and - zgrid to "on" and box to "off" for used axes. - - * plot/__go_draw_axes__.m, plot/plot3.m, plot/ribbon.m, - plot/slice.m: Use size_equal(var1,var2,...) when possible. - - 2007-12-11 David Bateman - - * miscelleaneous/fullfile.m: Ignore empty arguments. - - * sparse/spstats.m: Drop argument to Fsparse to force mutation. - * statistics/base/mode.m: Ditto. - - * plot/__plt_get_axis_arg__.m: Ignore integer valued handles as - object handles are all now non integer. - - 2007-12-10 John W. Eaton - - * plot/sombrero.m, plot/peaks.m: Use surf instead of mesh. - - * general/issymmetric.m: Use ' instead of .' for compatibility - with previous versions of Octave. - * general/ishermitian.m: Delete. - * general/Makefile.in (SOURCES): Remove ishermitian.m from the list. - - * plot/fplot.m: In N is not specified, increase initial number of - points from 3 and 5 to 5 and 8. - - * signal/detrend.m: Move tests here from test/test_signal.m. - Loosen tolerance on first test from 10*eps to 20*eps. - - * finance/rate.m: Don't request info from fsolve. - - 2007-12-10 Michael Goffioul - - * plot/__line__.m: Pass initial property/value pairs to __go_line__. - * plot/surface.m: Pass initial property/value pairs to __go_surface__. - - 2007-12-10 David Bateman - - * image/image.m: Rewritten to allow trailing properties to be - passed to underlying image object. - * image/__img__.m: Pass additional arguments to __go_image__. - * plot/__patch__.m: Don't set clim, rely on autoscaling. - - 2007-12-10 John W. Eaton - - * plot/__go_draw_axes__.m: If we have a grid, send "set grid - front" to gnuplot. - - 2007-12-10 David Bateman - - * plot/__go_draw_axes__.m: Issue "set view map" for pcolor, and "set - border front" from images. - * plot/__go_draw_figure__.m: Issue "set autoscale fix" for gnuplot. - * plot/pcolor.m: Set axis "box" property. - * plot/title.m, plot/xlabel.m, plot/ylabel.m, plot/xlabel.m: - Mark as commands. - - 2007-12-07 David Bateman - - * plot/surf.m: Don't set facecolor property. - - 2007-12-06 John W. Eaton - - * plot/print.m: Pass mono to drawnow. - * plot/drawnow.m: New arg, mono. Pass it to __go_draw_figure__. - * plot/__go_draw_figure__.m: New arg, mono. Pass it to __go_draw_axes. - * plot/__go_draw_axes__.m: New arg, mono. If mono is true, - disable color specifications. - - * general/issymmetric.m: Move tests here from test/test_number.m - - 2007-12-06 Jason Riedy - - * general/issymmetric.m: To keep its argument sparse and the - function quick, use the infinity norm rather than the 2-norm. - Also measure the symmetric part rather than the Hermitian part. - * general/ishermitian.m: New file. Measure the Hermitian part. - * general/Makefile.in: Add ishermitian.m to SOURCES. - - 2007-12-04 John W. Eaton - - * plot/__go_draw_axes__.m: Omit "font \"NAME,SIZE\"" in gnuplot - text and label commands if font is "*". - - * linear-algebra/krylov.m: Doc fixes. - From Marco Caliari . - - 2007-12-04 Kai Habel - - * plot/shading.m: Use __plt_get_axis_arg__ for optional axes argument. - Add "## PKG_ADD: mark_as_command axis" line. - - 2007-12-03 John W. Eaton - - * contour.m, contour3.m, contourc.m, contourf.m, cylinder.m, - fplot.m, plot3.m, plotyy.m, quiver3.m, scatter.m, scatter3.m, - slice.m, sombrero.m, stairs.m, stem.m, stem3.m: - Generate demos from examples. - - 2007-12-03 David Bateman - - * testfun/test.m: Disable "testif" test block to avoid spurious - skipped test for "make check". Avoid printing variables for - skipped tests. - - * testfun/test.m: Add "testif" type to allow for conditional tests. - - * plot/plotyy.m: Use activepositionproperty property of axes - object. Set second axis color to "none". - * plot/__go_draw_axes__.m: Respect the activepositionproperty - property of the axis objects. - - 2007-12-03 Thomas Treichl - - * linear-algebra/condest.m: Loosen tolerance in test. - - 2007-12-02 John W. Eaton - - * plot/__go_draw_axes__.m: Remove unnecessary call to - get_data_limits. - - 2007-11-30 John W. Eaton - - * plot/__go_draw_axes__.m: Don't compute data or axis limits. - (get_data_limits, get_axis_limits): Delete. - - 2007-11-30 David Bateman - - * plot/__scatter__.m: Avoid out of bounds varargin element access. - - * plot/__go_draw_axes__.m (do_tics_1): regexprep the cell array of - tick labels rather than one by one on the labels themselves. - * plot/pareto.m: Bug in numerical labels fixed. Bug in search for - 95% crossing fixed. - - 2007-11-29 David Bateman - - * plot/pareto.m: New file. - * plot/Makefile.in (SOURCES): Add it to the sources. - * plot/__go_draw_axes__.m (do_tics1): Replace "%" with "%%" in tic - marks to avoid gnuplot error about formating. More colorspec to - after the tics. - * plot/plotyy.m: More generic check for appropriate axis color. - - * plot/__stem__.m: New file based on old stem.m expanded to treat - 2- and 3-D. - * plot/stem3.m: New function. - * plot/Makefile.in (SOURCES): Add them to the sources. - * plot/stem.m: Adapt to use __stem__. - - 2007-11-29 John W. Eaton - - * plot/contour.m, plot/contour3.m, plot/fill.m, plot/patch.m, - plot/surf.m, plot/surface.m: Don't return handle value unless - requested. - - * plot/patch.m: Omit isnan check on handle returned from - __plt_get_axis_arg__. - - * plot/__plt_get_axis_arg__.m: Don't fail if current figure exists - but has no axes. - - 2007-11-28 David Bateman - - * __plt_get_axis_handle__.m: Also allow hggroup and return axes - ancestor. If leading argument is logical set variable nogca to see - if gca() should be called if there is no active handle found. - * __bar__.m, caxis.m, scatter.m, contourf.m, __axes_limits__.m, - fill.m, surf.m, meshz.m, axis.m, pie.m, contour.m, - quiver.m, area.m, grid.m, cylinder.m, contour3.m, surface.m, - patch.m, scatter3.m, plot.m, sphere.m, quiver3.m, plotyy.m, - xlabel.m, ylabel.m, surfnorm.m, zlabel.m: Adapt to use - __plt__get_axis_arg__ to find axis handle. - * polar.m: Typo. - - 2007-11-28 John W. Eaton - - * plot/__go_draw_axes__.m (get_data_limits): Delete unused arg TX. - - 2007-11-28 Michael Goffioul - - * plot/drawnow.m: Fix typo. - - 2007-11-27 David Bateman - - * plot/errorbar.m, plot/loglog.m, plot/loglogerr.m, plot/polar.m, - plot/semilogx.m, plot/semilogxerr.m, plot/semilogy.m, - plot/semilogyerr.m: Treat an axis handle as the first argument. - - * plot/meshz.m: New function. - * plot/Makefile.in (SOURCES): Add it to the list. - * plot/surface.m: Allow surface to accept an axis handle as the - first argument. - * plot/meshc.m: Extract z from the the surface object rather than - varargin so that we can rely on code in surface to treat leading - axis handles. - - * plot/__go_draw_axes__.m: Add nomirror to "set ytics" and "set - y2tics" in the case of a plotyy plot. - * plot/plotyy.m: ensure the position property is set correct for - the second axis, by setting it after the plot itself. In the case - of a plot that returns multiple handles, base the color selection - on the first. - - 2007-11-27 Kai Habel - - * plot/__go_draw_axes__.m: Set quadrilateral color according to - z-value of vertex 'c3'. - - 2007-11-27 John W. Eaton - - * image/image.m: Allow nargin == 0 case to work again. - - 2007-11-27 David Bateman - - * plot/__go_draw_figure__.m: Force a multiplot mode with a - colorbar, to ensure that the colorbar is on the canvas for png and - postscipt outputs. - - 2007-11-26 David Bateman - - * sparse/spstats.m, statistics/base/mode.m: More care with sparse - return values. - - * plot/plotyy.m: New function - * plot/Makefile.in (SOURCES): Add it here. - * plot/__go_draw_axes__.m: Force axis margins for plotyy. Set text - color for {x|y|z}label and {x|y|z}tics. Also force the label of - {x|y}label to respect the axis position. - * plot/xlabel.m, plot/ylabel.m, plot/zlabel.m: Accept an axis - handle as the first argument. - - * pkg/pkg.m (pkg:install): When loading the installed packages - index into installed_pkgs_lst and not descriptions.. - - * plot/quiver3.m, plot/surfnorm.m, plot/__quiver__.m: New functions. - * plot/Makefile.in (SOURCES): Add them to the sources. - * plot/quiver.m: Modify to use __quiver__.m. - - * plot/hist.m: Avoid saturation when the x values are in an - inetger type. - - 2007-11-26 Jason Riedy - - * linear-algebra/condest.m, linear-algebra/onenormest.m: New - functions. - * linear-algebra/Makefile.in (SOURCES): Add them to the sources. - - 2007-11-26 David Bateman - - * plot/__go_draw_axes__.m: Prevent the cbrange from being of zero - extent. - - * plot/colorbar.m: New function. - * plot/Makefile.in (SOURCES): Add it to the sources. - * plot/__go_draw_axes__.m: Calculate the colorbar position, - precalculate the clim, set pm3d except for mesh. - * plot/__contour__.m: Don't scale the contours to clim, but rather - save the real values so that colorbar corresponds to the contour - levels. - - * plot/stem.m: Set marker color the same as the line color. Draw - a single discontinous line object for the stems. - - * plot/sphere.m: New function ported from JHandles. - * plot/Makefile.in (SOURCES): Add it to the sources. - - * plot/__go_draw_axes__.m: Pass the have_newer_gnuplot arg to - __maybe_munge_text__. Use it to reforce fontname for gnuplot 4.0 - to get enhanced mode to work correctly for the X11 terminal. - - * plot/imagesc.m, plot/image.m: Scale colormap to image and not - the reverse. Allow an axes handle to be passed and/or returned. - * plot/__go_draw_axes__.m: Autoscale colormap for images. - - * plot/__go_draw_axes__.m: Add depthorder flag to "set pm3d" to - sort surface patches by their depth and not the order they are - rendered in. - - * plot/__patch__.m: Set clim correctly. - * plot__go_draw_axes__.m: Allow patch objects to have markers, and - the marker color is determined by the cmap. - * plot/scatter.m: New function to 2D scatter plots. - * plot/scatter3.m: New function to 3D scatter plots. - * plot/__scatter__.m: Support function for scatter plots - * Makefile.in (SOURCES): Ad dnew functions here. - - * plot/drawnow.m (open_gnuplot_stream, init_gnuplot_stream): - Return whether the terminal supports enhanced text or not. - (drawnow:enhanced_term): New sub-function to determine if terminal - supports enhanced mode. - * plot/__go_draw_figure__.m: Accept enhanced flag and pass to - __go_draw_axes__. - * plot/__go_draw_axes__.m: Accept enhanced flag and munge text if - needed to support the enhanced mode. - * plot/print.m: Remove "enhanced" option as this is now treated in - drawnow.m. - - * plot/caxis.m: New function to control the color axis limits. - * plot/Makefile.in (SOURCES): Include it. - * plot/axis.m: Allow the first argument to be an axes handle. - * plot/__go_draw_axes__.m: Move the setting of the caxis, also - autoscale caxis for patches. If any(isinf(clim)) don't set the - caxis limits. - - * image/gmap40.m: New gnuplot 4.0 specific colormap fucntion. - * image/Makefile.in (SOURCES): Include it. - * plot/__bar__.h: Allow axis handles to be passed. Set the color - of the bars for the colormap. - * plot/bar.m, plot/barh.m: Document that axis handles can be - passed. - * plot/__contour.m: Avoid possible divide by zero error. - * plot/contour.m: Missing semicolon. - * plot/surface.m: Don't attempt to set additional arguments if - there are none. - * plot/Makefile.in (SOURCES): Include __bars__.m - - 2007-11-19 Michael Goffioul - - * plot/__bar__.m: put bar creation code into separate function - to allow easy hook up from other graphic backends - - * plot/__bars__.m: new function containing bar creation code - - 2007-11-26 Alexander Barth - - * general/accumarray.m: Correct dimension check. - - 2007-11-26 John W. Eaton - - * polynomial/residue.m: Prepad along second dimension. - From Doug Stewart . - - 2007-11-26 Kai Habel - - * plot/cylinder.m, plot/slice.m: New functions. - * plot/Makefile.in (SOURCES): Add them to the list. - - 2007-11-14 Michael Goffioul - - * plot/patch.m: Handle arg may also be hggroup object. - Use ancestor to find parent axes object. - - 2007-11-14 David Bateman - - * plot/__contour__.m: Treat unclosed contours by adding NaN to - flag to patch that it is not closed. Allow z to take string - arguments and use it to flag that the contours are placed at the - z level of the contour itself. - * plot/__go_draw_axes__.m: Treat hidden line removal in patch - objects as well. Let hidden removal take precedence in case of a - conflict. - * plot/surface.m: Allow surface to treat handles being passed or - returned. Any additional arguments arr used to set the surface - handle. - * plot/contour3.m: New function - * plot/Makefile.in (SOURCES): Add it to the sources. - - 2007-11-14 John W. Eaton - - * specfun/bessel.m: Update doc string from - src/DLD-FUNCTIONS/besselj.cc. - - 2007-11-12 David Bateman - - * plot/contour.m: Allow handles to be passed and returned. Split - the countour function itself into __contour__.m to be shared with - surfc and meshc. - * plot/__contour__.m: New file - * plot/Makefile.in (SOURCES): Add it to the sources. - * plot/__go_draw_axes.m: For patch objects don't attempt to patch - the face or edge if the facecolor or edge color are marked as - "none". Allow the edgecolor to be determined by the cdata in the - same manner as the facecolor. Fail if facecolor is not "none" and - a 3-D plot is desired, rather than ignoring zdata. Make the - storage of 3D/4D data consistent between line, surface and patch - objects. - * plot/meshc.m: Use new __contour__.m to plot the contours. - * plot/surfc.m: Use new __contour__.m to plot the contours. - - * plot/__go_draw_axes__.m (get_fontname_and_size): - Handle fontweight and fontangle properties. - - 2007-11-12 Kai Habel - - * plot/spinmap.m, plot/ribbon.m: New functions. - * plot/Makefile.in (SOURCES): Add them to the list. - - 2007-11-12 John W. Eaton - - * plot/__go_draw_axes__.m (get_fontname_and_size): New subfunction. - Use it to avoid duplicated code. - - 2007-11-12 David Bateman - - * plot/title.m: Fix return value for nargout > 0. - - * plot/__go_draw_axes.m: Allow the font and fontsize to be - specified for the title, xlabel, ylabel and text objects. - - * plot/__go_draw_axes.m: Allow arbitrary colormaps with gnuplot - 4.0 and surface plots. - - 2007-11-12 Michael Goffioul - - * plot/__patch__.m: Fix computation of faces when patch is defined - with X/Y/Z data. - - 2007-11-09 John W. Eaton - - * plot/__go_draw_axes__.m: Correct test for have_data. - Correct logic in setting palette data. - - * audio/wavread.m, control/base/__bodquist__.m, - control/base/dare.m, control/base/dlqr.m, control/hinf/h2norm.m, - control/system/c2d.m, control/system/is_detectable.m, - control/system/is_signal_list.m, control/system/is_stabilizable.m, - control/system/tfout.m, general/isdefinite.m, - linear-algebra/krylov.m, miscellaneous/compare_versions.m, - optimization/glpk.m, path/savepath.m, plot/findobj.m, - plot/shading.m, polynomial/mpoles.m, polynomial/polyint.m, - signal/freqz.m, signal/hurst.m, sparse/spfun.m, sparse/spones.m, - sparse/spstats.m, testfun/assert.m, testfun/fail.m, - testfun/test.m: Use specific end keywords. - - * plot/surfc.m, plot/meshc.m: Don't change view if hold is on. - - 2007-11-09 Kai Habel - - * plot/mesh.m, plot/pcolor.m, plot/surf.m, plot/surface.m: - Don't change view if hold is on. - - 2007-11-09 David Bateman - - * plot/hidden.m: New function. - * plot/Makefile.in (SOURCES): Add it here. - * plot/meshc.m, plot/mesh.m: Set facecolor to White for hidden - line removal. - * plot/__go_draw_axes__.m: If facecolor is white flag hidden line - removal and if it is "none" don't do hidden line removal. - - * plot/legend.m: Also allow labels for surface and patch types. - * plot/__bar__.m: Split into separate patch pbjects to allow - setting of the legend. - * plot/__go_draw_axes__.m: Set titlespec from keylabel for patch - objects as well. - - * plot/area.m, plot/__area__.m: New functions - * plot/Makefile.in (SOURCES): Add them to the list of files. - - * plot/patch.m: Correctly handle case of axis handle as first arg. - - 2007-11-09 Joseph P. Skudlarek - - * sparse/spdiags.m: Tweak documentation entries to match other uses. - - 2007-11-08 John W. Eaton - - * control/base/dcgain.m, control/base/dre.m, - control/base/impulse.m, control/base/step.m, - control/system/dmr2d.m, control/system/ord2.m, - control/system/sys2ss.m, control/system/sysdimensions.m, - control/system/sysgetsignals.m, control/system/sysout.m, - control/system/tfout.m, control/system/ugain.m, - control/system/zpout.m, control/util/strappend.m: - Don't fail with usage message if nargout is too large. - - * control/hinf/h2syn.m, control/hinf/hinf_ctr.m, - control/hinf/hinfnorm.m, control/hinf/hinfsyn.m, - control/hinf/hinfsyn_chk.m, control/hinf/is_dgkf.m, - control/hinf/wgt1o.m, control/obsolete/dezero.m, - control/obsolete/dlqg.m, control/obsolete/minfo.m, - control/obsolete/packsys.m, control/obsolete/qzval.m, - control/obsolete/rotg.m, control/obsolete/series.m, - control/obsolete/swapcols.m, control/obsolete/swaprows.m, - control/obsolete/syschnames.m, control/obsolete/unpacksys.m, - control/system/__syschnamesl__.m, - control/system/__syscont_disc__.m, - control/system/__sysdefioname__.m, control/system/__sysgroupn__.m, - control/system/__tf2sysl__.m, control/system/__zp2ssg2__.m, - control/system/abcddim.m, control/system/buildssic.m, - control/system/c2d.m, control/system/cellidx.m, - control/system/d2c.m, control/system/dmr2d.m, - control/system/fir2sys.m, control/system/is_abcd.m, - control/system/is_controllable.m, control/system/is_detectable.m, - control/system/is_digital.m, control/system/is_observable.m, - control/system/is_stabilizable.m, control/system/is_stable.m, - control/system/jet707.m, control/system/listidx.m, - control/system/parallel.m, control/system/ss.m, - control/system/ss2sys.m, control/system/ss2zp.m, - control/system/starp.m, control/system/sys2ss.m, - control/system/sys2tf.m, control/system/sys2zp.m, - control/system/sysadd.m, control/system/sysappend.m, - control/system/sysconnect.m, control/system/syscont.m, - control/system/sysdimensions.m, control/system/sysdisc.m, - control/system/sysdup.m, control/system/sysgetsignals.m, - control/system/sysgroup.m, control/system/sysmin.m, - control/system/sysmult.m, control/system/sysout.m, - control/system/sysprune.m, control/system/sysreorder.m, - control/system/sysscale.m, control/system/syssetsignals.m, - control/system/syssub.m, control/system/sysupdate.m, - control/system/tf.m, control/system/tf2ss.m, - control/system/tf2sys.m, control/system/tfout.m, - control/system/zp.m, control/system/zp2ss.m, - control/system/zp2sys.m, control/system/zp2tf.m, - control/system/zpout.m, control/util/__outlist__.m, - control/util/__zgpbal__.m, control/util/axis2dlim.m, - control/util/prompt.m, control/util/sortcom.m, - control/util/zgfmul.m, control/util/zgfslv.m, - control/util/zginit.m, control/util/zgreduce.m, - control/util/zgrownorm.m, control/util/zgscal.m: Style fixes. - - 2007-11-08 David Bateman - - * plot/quiver.m: Fix arrowheads. - - 2007-11-07 Ben Abbott - - * set/ismember.m: Call cell_ismember to handle cellstr args. - Handle "rows" argument. New tests. - (cell_ismember): New function. - - 2007-11-07 John W. Eaton - - * control/base/__bodquist__.m, control/base/__freqresp__.m, - control/base/__stepimp__.m, control/base/are.m, - control/base/ctrb.m, control/base/damp.m, control/base/dare.m, - control/base/dcgain.m, control/base/dgram.m, control/base/dlqr.m, - control/base/dre.m, control/base/impulse.m, control/base/lqe.m, - control/base/lqg.m, control/base/lqr.m, control/base/lsim.m, - control/base/ltifr.m, control/base/nichols.m, - control/base/nyquist.m, control/base/obsv.m, control/base/place.m, - control/base/rlocus.m, control/base/step.m, control/base/tzero.m: - Style fixes. - - 2007-11-07 Muthiah Annamalai - - * control/base/bode_bounds.m, control/base/dgram.m, - control/base/dlyap.m, control/base/freqchkw.m, - control/base/gram.m, control/base/place.m, - control/hinf/hinf_ctr.m, control/hinf/hinfsyn_chk.m, - control/hinf/hinfsyn_ric.m, control/system/is_sample.m, - control/system/is_signal_list.m, control/system/ss2tf.m, - control/system/sys2fir.m, control/system/sysgettsam.m, - control/system/sysgettype.m, control/system/sysreorder.m, - control/system/tf2sys.m, control/system/zp2tf.m, - control/util/axis2dlim.m, control/util/swap.m, - control/util/zgfmul.m, control/util/zgfslv.m, - control/util/zginit.m, control/util/zgreduce.m, - control/util/zgrownorm.m, control/util/zgscal.m, - control/util/zgsgiv.m, control/util/zgshsr.m, general/isa.m, - geometry/inpolygon.m, linear-algebra/housh.m, - miscellaneous/compare_versions.m, miscellaneous/inputname.m, - miscellaneous/run.m, quaternion/qconj.m, - quaternion/qcoordinate_plot.m, quaternion/qderiv.m, - quaternion/qderivmat.m, quaternion/qinv.m, quaternion/qmult.m, - quaternion/qtrans.m, quaternion/qtransvmat.m, signal/fractdiff.m, - signal/freqz_plot.m, signal/periodogram.m, signal/rectangle_lw.m, - signal/rectangle_sw.m, signal/sinc.m, signal/triangle_lw.m, - signal/triangle_sw.m, signal/yulewalker.m, sparse/colperm.m, - sparse/etreeplot.m, sparse/nonzeros.m, sparse/spalloc.m, - sparse/spones.m, sparse/spy.m, specfun/isprime.m, - statistics/distributions/empirical_cdf.m, - statistics/distributions/empirical_inv.m, - statistics/distributions/empirical_pdf.m, - statistics/models/logistic_regression_derivatives.m, - statistics/models/logistic_regression_likelihood.m: Check nargin. - - 2007-11-07 David Bateman - - * general/gradient.m: Correctly convert deltax and deltay scalar - values are scalars to vectors. - - * plot/__go_draw_axes__.m: Fix surfaces for gnuplot 4.0 and for - the meshc.m function. - * plot/meshc.m: Also use the surface function. - - * plot/meshc.m, plot/quiver.m, plot/surfc.m, : New files. - * plot/Makefile.in (SOURCES): Add them to the list. - Also add pcolor.m, shading.m, surf.m, and surface.m to the list. - - 2007-11-07 Michael Zeising - - * audio/wavwrite.m, audio/wavwrite.m: Correct sample scaling. - - 2007-11-07 John W. Eaton - - * plot/__go_draw_axes__.m: Also set have_data to false if any of - the data limits are infinite. - (get_data_limits): Don't do anything if xdat or tx are empty. - (get_axis_limits): Don't do anything if min_val or max_val are - infinite. - - 2007-11-06 David Bateman - - * plot/hist.m: Pass any additional arguments to bar for - treatment. Create a default x value that is always a vector. - - 2007-11-06 Thomas Treichl - - * pkg/pkg.m.m: Check for environment variables CC, CXX, AR, RANLIB - when calling ./configure and add quotes to preserve spaces. - - 2007-11-06 Kai Habel - - * plot/pcolor.m, plot/shading.m, plot/surf.m, plot/surface.m: - New files. - * plot/mesh.m: Call surface to do the real work. - * plot/__go_draw_axes__.m: Use pm3d mode to handle new surface - properties. - - * image/colormap.m: Also return current colormap if nargout and - nargin are both 0. - - 2007-11-05 Michael Goffioul - - * startup/inputrc: Delete key bindings starting with \340 code. - - 2007-11-05 David Bateman - - * linear-algebra/__norm__.m: Scale frobenius norm by infinity norm - to avoid issues of over- and underflow. From Rolf Fabian - . - - 2007-11-02 Olli Saarela - - * time/asctime.m, general/structfun.m: Fix broken @examples in - help texts. - - 2007-11-02 Kai Habel - - * plot/bar.m, plot/barh.m: Doc fix. - - 2007-10-31 John W. Eaton - - * plot/__go_draw_axes__.m: Call undo_string_escapes on obj.keylabel. - - 2007-10-31 Michael goffioul - - * plot/subplot.m: Ignore legend objects when parsing existing axes - objects and legend objects are implemented with a separate axes - object. - - 2007-10-30 David Bateman - - * control/base/DEMOcontrol.m: Doc fixes for small book format. - - * plot/__go_draw_axes__.m (do_linestyle_command): - Use point type 0 for ".". - - 2007-10-26 John W. Eaton - - * image/imshow.m: Improve compatibility. - * image/image.m: Return handle if nargou > 0. - - * pkg/pkg.m: Delete PKG_ADD directive for autoloading packes. - - 2007-10-25 John W. Eaton - - * miscellaneous/compare_versions.m: Style fixes. - - 2007-10-24 John W. Eaton - - * image/saveimage.m: Use functional form of save instead of eval. - Use -text instead of -ascii. - - * plot/__go_draw_axes__.m: Handle visible = "off" for axes objects. - - 2007-10-23 Peter A. Gustafson - - * plot/legend.m: Also extract location string from varargin (lost - when 2007-10-08 patch was applied). - - 2007-10-23 David Bateman - - * plot/xlim.m, plot/ylim.m, plot/zlim.m, plot/__axes_limits__.m, - miscellaneous/what.m: New functions - * plot/Makefile.in, miscellaneous/Makefile.in (SOURCES): Add new - functions. - - 2007-10-22 David Bateman - - * miscellaneous/cputime.m, time/tic.m, time/toc.m: Delete. - * miscellaneous/Makefile.in (SOURCES): remove cputim.m - * time/Makefile.in (SOURCES): Remov tic.m and toc.m - - 2007-10-19 Kai Habel - - * plot/contourf.m: New function. - * plot/Makefile.in (SOURCES): Add it to the list. - - 2007-10-19 John W. Eaton - - * plot/subplot.m: Doc fix. - - 2007-10-19 David Bateman - - * plot/__bar__.m, plot/fill.m: Call newplot as needed. - - 2007-10-17 Carlo de Falco - - * plot/print.m: Handle -textspecial and -textnormal flags for fig - output. - - 2007-10-15 Sᅵren Hauberg - - * general/rat.m, sparse/pcg.m, sparse/pcr.m, optimization/sqp.m, - statistics/models/logistic_regression.m, polynomial/polygcd.m, - control/system/ss.m, signal/arch_rnd.m, control/system/ss2sys.m, - control/system/syssetsignals.m, control/base/lqg.m, - strings/str2double.m, control/system/sysscale.m, - control/hinf/hinfdemo.m, general/cplxpair.m: - Make help text fit on pages when using smallbook. - - 2007-10-15 David Bateman - - * plot/print.m: Call drawnow before printing to ensure the plot is - on the screen. - - * testfun/test.m: In error/warning blocks test for an error before - a warning to avoid unexpected failures. - - 2007-10-15 Kim Hansen i - - * testfun/assert.m: Correct documentation of absolution versus - relative error tolerance and add tests. - - 2007-10-14 David Bateman - - * pkg/pkg.m (pkg:configure_make): Treat case of no files to install in - src directory. - * plot/Makefile.in (SOURCES): Add fill.m. - - 2007-10-13 David Bateman - - * plot/__patch__.m: Allow multiple patches to be defined and - return a single patch object. Allow Faces/Vertices form of - patch. Flag failure so the patch can call print_usage. - * plot/patch.m: Update help string for Faces/Vertices - call. Respect the fail flag returned by __patch__. Add demo code - that tests the functionality of patch. - * plot/__go_draw_axes__.m: Treat an array of patches in a single - patch object. - * plot/fill.m: New function. - - 2007-10-12 John W. Eaton - - * Change copyright notices in all files that are part of Octave to - GPLv3 or any later version. - - 2007-10-11 John W. Eaton - - * plot/__go_draw_axes__.m (get_axis_limits): - Return lim = [] if logscale and no positive values. - (__go_draw_axes__): Skip plotting if computed axis limits are empty. - Set initial min and min positive values to Inf, max values to -Inf. - (get_data_limits): Correctly handle xminp when no positive values - are found. - - 2007-10-11 Ben Abbott - - * polynomial/residue.m: New optional input for pole multiplicity. - Doc fix. Fix tests. - - 2007-10-11 Thomas Treichl - - * toplev.cc (Foctave_config_info): Add field "mac". - - * miscellaneous/ismac.m: New function. - * miscellaneous/Makefile.in (SOURCES): Add it to the list. - * miscellaneous/ispc.m, miscellaneous/isunix.m: Doc fix. - - 2007-10-11 Arno Onken - - * statistics/distributions/hygernd.m: Allow size to be specified - as a scalar. Handle three argument case. Allow T, M, and N to be - scalars or matrices of a common size. - - 2007-10-11 Brian Gough - - * control/csrefcard.lt, control/system/is_detectable.m, - control/system/sysgroup.m, geometry/voronoin.m, - miscellaneous/dir.m, sparse/pcg.m, sparse/treeplot.m, - statistics/base/mode.m, statistics/distributions/betarnd.m, - statistics/distributions/binornd.m, - statistics/distributions/cauchy_rnd.m, - statistics/distributions/chi2rnd.m, - statistics/distributions/discrete_rnd.m, - statistics/distributions/exprnd.m, - statistics/distributions/frnd.m, - statistics/distributions/gamrnd.m, - statistics/distributions/geornd.m, - statistics/distributions/laplace_rnd.m, - statistics/distributions/logistic_rnd.m, - statistics/distributions/lognrnd.m, - statistics/distributions/nbinrnd.m, - statistics/distributions/normrnd.m, - statistics/distributions/poissrnd.m, - statistics/distributions/stdnormal_rnd.m, - statistics/distributions/trnd.m, - statistics/distributions/unifrnd.m, - statistics/distributions/wblrnd.m: Spelling fixes. - - 2007-10-10 Thomas Treichl - - * time/tic.m: New optional output value. - - * general/int2str.m: Doc fix. - - 2007-10-10 Arno Onken - - * statistics/distributions/hygecdf.m, - statistics/distributions/hygeinv.m, - statistics/distributions/hygepdf.m, - statistics/distributions/hygernd.m: - Swap order of T and M args for compatibility. - - 2007-10-10 Olli Saarela - - * control/hinf/hinfsyn.m, control/hinf/wgt1o.m, - control/system/buildssic.m, control/system/c2d.m, - control/system/d2c.m, control/system/ord2.m, control/system/ss.m, - control/system/ss2sys.m, control/system/ss2tf.m, - control/system/syscont.m, control/system/sysdimensions.m, - control/system/sysdisc.m, control/system/sysmult.m, - control/system/sysrepdemo.m, control/system/tf2ss.m, elfun/lcm.m, - finance/fv.m, general/cumtrapz.m, general/gradient.m, - general/interp1.m, general/interp2.m, general/interp3.m, - general/interpft.m, general/interpn.m, general/polyarea.m, - general/rat.m, general/structfun.m, general/trapz.m, - geometry/tsearchn.m, image/rgb2hsv.m, linear-algebra/krylov.m, - miscellaneous/ans.m, miscellaneous/gzip.m, optimization/glpk.m, - optimization/sqp.m, plot/findobj.m, plot/legend.m, plot/peaks.m, - plot/plot3.m, plot/stem.m, polynomial/deconv.m, - polynomial/pchip.m, polynomial/spline.m, polynomial/unmkpp.m, - sparse/pcr.m, sparse/spalloc.m, sparse/spconvert.m, - specfun/factor.m, specfun/legendre.m, statistics/base/mean.m, - statistics/base/meansq.m, statistics/base/var.m, - statistics/tests/chisquare_test_independence.m, - statistics/tests/t_test.m, statistics/tests/u_test.m, - strings/dec2base.m, strings/mat2str.m, testfun/speed.m, - testfun/test.m: Spelling fixes. - - 2007-10-10 Ben Abbott - - * polynomial/mpoles.m: Return indx = ordr(indx), not indx(ordr). - - 2007-10-10 John W. Eaton - - * general/num2str.m: Always allow for sign for automatically - computed format widths. - - 2007-10-09 David Bateman - - * plot/patch.m: Accept a handle as the first argument. - - 2007-10-09: Kim Hansen - - * general/repmat.m: Handle sparse input. Add tests. - - 2007-10-09 John W. Eaton - - * audio/wavwrite.m: Accept arguments in compatible order. - - 2007-10-08 David Bateman - - * general/interp2.m: Relax test for values outside the grid to - allow monotonically decreasing abscissa as well. - - 2007-10-08 Ben Abbott - - * polynomial/residue.m: Doc fix. Add tests. Restore multiplicity - as output parameter. - - 2007-10-08 Peter A. Gustafson - - * plot/__go_draw_axes__.m, plot/legend.m: - Handle compatible position specifiers as strings. - - 2007-10-08 John Swensen - - * general/num2str.m: Eliminate extra whitespace in output. - * strings/strtrim.m: New function. - * strings/Makefile.in (SOURCES): Add it to the list. - - 2007-10-06 John W. Eaton - - * polynomial/residue.m: New test from test/test_poly.m. - - 2007-10-06 Sᅵren Hauberg - - * image/saveimage.m: Handle saving color images without a colormap. - * image/__img_via_file__.m: Add missing semicolon. - - 2007-10-06 Bill Denney - - * general/__splinen__.m, general/isscalar.m, general/rat.m, - strings/dec2base.m: Use numel(x) instead of prod(size(x)). - - 2007-10-06 Francesco Potorti` - - * plot/print.m: Handle svg output type. Accept new -S option to - specify size for PNG and SVG output types. - - 2007-10-05 Ben Abbott - - * polynomial/mpoles.m: New function. - * polynomial/residue.m: Modified to behave in reciprocal - manner. No longer compute 4th output, "e". No longer accept - tolerance input. Explicitly set tolerance parameter to 0.001. - Respect maximum relative difference in poles when determining - their multiplicity. Use mpoles to determine the multiplicity of - poles. - - 2007-10-05 Peter A. Gustafson - - * plot/__go_draw_axes__.m: Add cbrange to the plot stream - for surface plots. - - 2007-10-05 John W. Eaton - - * plot/__next_line_color__.m: Get color_rotation from axes - colororder property. - - 2007-10-03 John W. Eaton - - * miscellaneous/dir.m: Handle symbolic links in compatible way. - Use S_ISDIR (st.mode) instead of checking st.modestr(1) == "d". - - * linear-algebra/Makefile.in (SOURCES): Rename norm.m to __norm__.m. - * linear-algebra/__norm__.m: Rename from norm.m. Eliminate - special for __vnorm__. - - 2007-10-03 Quentin Spencer - - * linear-algebra/norm.m: Special case vector 1-norm and 2-norm. - - 2007-10-03 David Bateman - - * pkg/pkg.m (is_architecture_dependent): New function to identify - if a file is architecture dependent based on a list of file - extensions. - (configure_make): Simplify the search for architecture dependent - files based on this function. - (load_pakages_and_dependencies): Also look for bin directory in - the architecture dependent directory. - - 2007-10-03 John W. Eaton - - * miscellaneous/dir.m: Create empty struct with field names. - Include datenum in struct. - - 2007-10-02 David Bateman - - * miscellaneous/ls.m: If nargout return string array of files - returned by ls. - - 2007-10-01 John W. Eaton - - * plot/__go_draw_axes__.m: Use %.15e instead of %.15g when setting - range values. - - 2007-10-01 David Bateman - - * linear-algebra/norm.m: Inline the isvector(x) calculation for - speed with small vectors. - * pkg/pkg.m (archprefix): Set using octave_config_info("libexecdir") - rather than OCTAVE_HOME(). - - 2007-09-30 Ben Abbott - - * plot/findobj.m: New function. - * plot/Makefile.m (SOURCES): Add it to SOURCES. - - 2007-09-26 David Bateman - - * pkg/pkg.m: Add second argument to setting for prefix for - architecture dependent files. Use throughout. - (pkg:issuperuser): New function, use through to check for - root user. - (pkg:getarchprefix): function to give the archiecture dependent - prefix for a package. - (pkg:getarchdir): New function giving location of architetcure - dependent directory. Use through out. - (pkg:install): Treat architecture dependent directory separately - as in might not be a sub-directory of the package directory. - (pkg:uninstall): ditto. - (pkg:create_pkgadddel): Check for global or local install for - architecture dependent directory. - (pkg:finish_installation): ditto. - (pkg:write_INDEX): ditto. - (pkg:load_packages_and_dependencies): ditto. - (pkg:copy_files): ditto. Add step to copy architecture dependent - files to a new location if user is root. - (pkg:rm_rf): Check if file or directory exists before removing. - (pkg:dirempty): Check if directory exists before checking. - - * plot/___patch__.m: Allow face colors to be passed as strings - - * plot/__plt_get_axis_arg__.m: Treat case of empty "varargin" - needed for calls to "hold" without an argument. - - 2007-09-21 John W. Eaton - - * optimization/sqp.m: Fix typo. - - * plot/__go_draw_axes__.m (do_tics_1): Use %g, not %.15g here. - - 2007-09-21 Luther Tychonievich - - * control/hinf/h2norm: Compute d*d', not d'*d. - - 2007-09-21 Thomas Weber - - * statistics/distributions/Makefile.in (SOURCES): Add unidcdf.m, - unidpdf.m and unidinv.m - - 2007-09-18 John W. Eaton - - * plot/__go_draw_axes__.m: Use %.15g throughout. - (do_tics_1): Set numeric axes formats to "%.15g". - - 2007-09-18 David Bateman - - * plot/__go_draw_axes__.m (__gnuplot_write_data__): Use %e instead - of %g when writing data. - - 2007-09-17 John W. Eaton - - * plot/__go_draw_axes__.m: Omit linestyle clause for errorbar plots. - - 2007-09-14 Ulrich Tipp - - * miscellaneous/bincoeff.m: Fix calculation of bincoeff (n, k) for - noninteger N with N-K < 1. - - 2007-08-04 Jean-Francois Cardoso - - * strings/index.m: Correct for strings differing after the third - position (bug reported by Maude Martin). - - 2007-09-13 John W. Eaton - - * plot/__default_colormap__.m: Delete. - * plot/Makefile (SOURCES): Remove from the list. - - 2007-09-13 Christof Zeile - - * pol2cart.m: Make it work with mixed scalar/nonscalar arguments. - - 2007-09-10 David Bateman - - * plot/__go_draw_axes__.m: Allow gnuplot 4.0 with patches, but - limit the selection of colors in the same way as for lines. - * plot/__patch__.m: Allow matrix arguments with one patch per - column. - * plot/__bar__.m: Adapt to use "patch". - - 2007-09-06 John W. Eaton - - * plot/drawnow.m (drawnow): New arg, debug_file. - (init_plot_stream): Split from open_plot_stream. - * plot/print.m: Accept -debug=FILE argument. - - 2007-09-06 David Bateman - - * general/celldisp.m: New function. - * general/Makefile.in (SOURCES): Add celldisp.m. - * miscellaneous/swapbytes.m: New function. - * miscellaneous/gzip.m: New function. - * miscellaneous/Makefile.in (SOURCES): Add swapbytes.m and gzip.m. - - 2007-09-05 David Bateman - - * general/structfun.m: New function. - * general/Makefile.in (SOURCES): Add it to sources. - * miscellaneous/run.m: New function. - * miscellaneous/Makefile.in (SOURCES): Add it to sources. - * statistics/base/mode.m: New function. - * statistics/base//Makefile.in (SOURCES): Add it to sources. - - 2007-09-05 John W. Eaton - - * miscellaneous/orderfields.m: Use numel instead of length. - - 2007-09-05 Michael goffioul - - * miscellaneous/orderfields.m: Handle empty structs. - - 2007-09-05 John W. Eaton - - * plot/__go_draw_axes__.m: Consistently index PARAMETRIC with - DATA_IDX. - - 2007-09-04 David Bateman - - * general/isdir.m: Return a logical value. - - 2007-09-04 David Bateman - - * statistics/distributions/chi2pdf.m, - statistics/distributions/chi2cdf.m, - statistics/distributions/chi2inv.m: Modifiy the call to the gamma - distribution functions to account for inverse of scale factor in - gamma functions. - - 2007-09-01 John W. Eaton - - * plot/Makefile.in (SOURCES): Add ancestor.m to the list. - - 2007-09-01 David Bateman - - * polynomial/polyint.m: New function like polyinteg but with - explicit integration constant. - * polynomial/polyinteg.m: Remove. - * polynomial/Makefile.in (SOURCES): Add polyint.m and remove - polyinteg.m. - * deprecated/polyinteg.m: Move version here. - * deprecated/Makefile.in (SOURCES): Add polyinteg.m. - - * geometry/voronoi.m: Add large box around data to get a good - approximation of the rays to infinity. - - 2007-08-31 Michael goffioul - - * plot/axes.m: Allow parent to be specified when creating axes - objects. Support non-figure parents. - - 2007-08-31 John W. Eaton - - * plot/ancestor.m: New function, adapted from Octave Forge. - - 2007-08-31 Sᅵren Hauberg - - * polynomial/polygcd.m: Better layout of example. - * polynomial/compan.m: Remove unnecessary check. - * polynomial/roots.m: Added example to help text. - * polynomial/polyderiv.m: Change 'polyder' to 'polyderiv' in help text. - * polynomial/poly.m: Added example to help text. - - 2007-08-30 John W. Eaton - - * optimization/qp.m: Increase maxit to 200. - - 2007-08-30 David Bateman - - * geometry/inpolygon.m: New file. - * geometry/Makefile.in (SOURCES): Add inpolygon.m. - - 2007-08-29 Peter A. Gustafson - - * plot/__go_draw_axes__.m: Disable linetype in do_linestyle_command. - - 2007-08-24 David Bateman - - * plot/__go_draw_axes__.m: Treat text color property. - - 2007-08-24 John W. Eaton - - * plot/subplot.m, plot/plot.m, plot/grid.m: - Use p = get (h, "prop") instead of obj = get (h); p = obj.prop. - - * miscellaneous/movefile.m: Separate second and third args and - use p1 and p2, not f1 and f2 when constructing arguments for - calls to system. From Michael Goffioul . - - 2007-08-24 Michael Goffioul - - * set/intersect.m: Make it work with cell arrays of strings. - - 2007-08-24 David Bateman - - * geometry/convhull.m, geometry/delaunay.m, geometry/delaunay3.m, - geometry/griddata.m, geometry/voronoi.m, geometry/voronoin.m: New - functions ported from octave-forge. - * geometry/delaunayn.m, geometry/dsearch.m, geometry/dsearchn.m, - geometry/griddata3.m, geometry/griddatan.m, geometry/trimesh.m, - geometry/triplot.m, geometry/tsearchn.m: - New functions. - * geometry/voronoi.m: Remove duplicate edges from Voronoi diagram. - * geometry/Makefile.in (SOURCES): Add functions above. - * configure.in (AC_CONFIG_FILES): Add new file geometry/Makefile. - - 2007-08-23 John W. Eaton - - * pkg/pkg.m: Avoid using installed_packages for both function and - variable name. - - 2007-08-23 David Bateman - - * plot/plot.m: Allow first arg to be axes handle. - - 2007-08-22 David Bateman - - * control/base/nichols.m: Correct for misnamed variable, and ensure - outputs are returned only if requested. - - 2007-08-22 Donald Parsons - - * control/base/nichols.m: Fix typo. - - 2007-08-13 John W. Eaton - - * plot/meshgrid.m: Use repmat instead of multiplication. - - 2007-08-10 Peter A. Gustafson - - * plot/__go_draw_axes__.m: Add axes position to the usingclause, - use axes position in each appropriate gnuplot set statement. - - 2007-08-10 John W. Eaton - - * image/Makefile.in (DISTFILES): Also include $(IMAGES) in the list. - (install install-strip): Use $(IMAGES), not $(IMAGE_FILES_NO_DIR). - (uninstall): Use $(IMAGES), not $(IMAGE_FILES_NO_DIR). - (IMAGE_FILES, IMAGE_FILES_NO_DIR): Delete obsolete variables. - - 2007-08-10 Kai Habel - - * plot/patch.m, plot/__patch__.m: New files. - * plot/Makefile.in (SOURCES): Add them to the list. - - 2007-08-07 John W. Eaton - - * path/savepath.m: Use single quotes for argument to PATH command - that is inserted in file. - - 2007-07-27 John W. Eaton - - * plot/drawnow.m: Only set default value for term if GNUTERM is - not set in the environment. - - 2007-07-25 David Bateman - - * Makefile.in, audio/Makefile.in, control/Makefile.in, - control/base/Makefile.in, control/hinf/Makefile.in, - control/obsolete/Makefile.in, control/system/Makefile.in, - control/util/Makefile.in, deprecated/Makefile.in, - elfun/Makefile.in, finance/Makefile.in, general/Makefile.in, - image/Makefile.in, io/Makefile.in, linear-algebra/Makefile.in, - miscellaneous/Makefile.in, optimizaton/Makefile.in, - path/Makefile.in, pkg/Makefile.in, plot/Makefile.in, - polynomial/Makefile.in, quaternion/Makefile.in, - set/Makefile.in, signal/Makefile.in, sparse/Makefile.in, - specfun/Makefile.in, special-matrix/Makefile.in, - startup/Makefile.in, statistics/Makefile.in, - statistics/base/Makefile.in, statistics/distributions/Makefile.in, - statistics/models/Makefile.in, statistics/tests/Makefile.in, - strings/Makefile.in, testfun/Makefile.in, time/Makefile.in: - Adjust DISTFILES to allow out of tree "make dist" to work. - - 2007-07-25 John W. Eaton - - * plot/__plt2__.m: Return [](0x1) if both X and Y are empty. - - 2007-07-24 David Bateman - - * image/flag.m: New colormap function. - * images/Makefile.in: Include it in SOURCES. - - * image/autumn.m image/bone.m image/cool.m image/copper.m - image/hot.m image/hsv.m image/jet.m image/pink.m image/prism.m - image/rainbow.m image/spring.m image/summer.m image/white.m - image/winter.m, image/brighten.m: Use isscalar and not is_scalar. - * image/gray.m, image/ocean.m: Use the same means of finding the - number of colormap elements as the other colormap functions. - - 2007-07-24 Kai Habel - - * plot/__go_draw_axes__.m: Handle patch. - - 2007-07-23 David Bateman - - * general/rat.m: New function for ration approximation imported - from octave-forge. - * general/del2.m: New function for discrete laplacian operator. - * general/Makefile.in: Include rat.m and del2.m in SOURCES. - - * image/autumn.m image/bone.m image/cool.m image/copper.m - image/hot.m image/hsv.m image/jet.m image/pink.m image/prism.m - image/rainbow.m image/spring.m image/summer.m image/white.m - image/winter.m, image/brighten.m: Port image functions from - octave-forge. - * image/Makefile.in: Add ported functions to SOURCES. - * image/gray.m, image/ocean.m: Don't set the colormap for - compatibility with matlab. - - * plot/meshc.m, plot/peaks.m: Port plotting function from - octave-forge - * plot/Makefile.in: Add ported functions to SOURCES. - * plot/__go_draw_axes__.m: Set the palette for the surfaces if - using gnuplot 4.2 or greater. - - 2007-07-23 Claudio Belotti - - * general/cart2sph.m: Fix unbalanced paranthesis. - - 2007-07-19 David Bateman - - * plot/fplot.m: More compatible version. - - 2007-07-18 Michael Goffioul - - * plot/clf.m: Check for valid handle before deleting. - - * plot/figure.m: Pass "figure" property/value pairs directly to - __go_figure__ instead of using regular "set" call. - - 2007-07-18 Paul Kienzle - - * plot/drawnow.m: Prefer GNUTERM to DISPLAY when choosing terminal - type for gnuplot. - - 2007-07-18 John W. Eaton - - * plot/__go_draw_axes__.m: Unconditionally send "unset label" to - gnuplot for each set of axes. - - 2007-07-18 David Bateman - - * statistics/distributions/gamcdf.m, statistics/distributions/gaminv.m, - statistics/distributions/gampdf.m, statistics/distributions/gamrnd.m, - statistics/distributions/expcdf.m, statistics/distributions/expinv.m, - statistics/distributions/exppdf.m, statistics/distributions/exprnd.m: - Use standard scale factor rather than one on the scale factor for - compatibility. - - * deprecated/gamma_cdf.m, deprecated/gamma_inv.m, - deprecated/gamma_pdf.m, deprecated/gamma_rnd.m, - deprecated/exponential_cdf.m, deprecated/exponential_inv.m, - deprecated/exponential_pdf.m, deprecated/exponential_rnd.m: - Preserve backward compatibility. - - 2007-07-17 Michael Goffioul - - * pkg/pkg.m (pkg:installed_packages): Use findstr rather than regexp - to avoid issues with regexp special characters in the path strings. - - 2007-07-06 David Bateman - - * general/accumarray.m: New function to create an array by - accumulating the elements. - - 2007-06-29 Marcus W. Reble - - * optimization/sqp.m (sqp): New args, lb, ub, maxiter, and tolerance. - (fdjac): Set nx outside of if block. - (cf_ub_lb, cigrad_ub_lb): New subfunctons. - - 2007-06-28 Michael Goffioul - - * plot/subplot.m: Add 'ishandle' check when parsing the existing axes. - - * plot/axis.m: Also set "visible" property when setting axes to - on/off. - - 2007-06-27 Michael Goffioul - - * image/colormap.m: Only return colormap if nargout > 0. - Mark as command. - - 2007-06-25 John W. Eaton - - * plot/drawnow.m, plot/__go_draw_axes__.m: Use strcmpi instead of - strcmp for selected property comparisons. - - 2007-06-25 Sᅵren Hauberg - - * image/imshow.m: Fix check for colormap arguments. - - 2007-06-25 Joel Keay - - * plot/drawnow.m: Handle GNUTERM=aqua if DISPLAY is not set. - - 2007-06-25 Sᅵren Hauberg - - * statistics/base/median.m: Update help text to mention 'dim' - argument, and note that the data should be sorted for the - definition of the median to be correct. - - * statistics/base/std.m: Add missing square to definition of - standard deviation. - - * statistics/base/cov.m: Add definition of covariance to the help text. - - * statistics/base/kurtosis.m, statistics/base/skewness.m, - statistics/base/std.m: - Note that \bar{x} is the mean value of x in the help text. - - * specfun/nchoosek.m: Add alternative definition of the binomial - coefficient to the help text. - - * specfun/perms.m, statistics/base/values.m: Add example in help text. - - * statistics/base/var.m: Put N in @math in help text. - - * statistics/base/qqplot.m, statistics/base/ppplot.m, - statistics/tests/kolmogorov_smirnov_test.m: - Write about possible values of 'dist' in help text. - - * statistics/base/corrcoef.m, statistics/base/cor.m: - Add definition of correlation to the help text. - - * statistics/base/logit.m, statistics/base/kendall.m, - statistics/base/cloglog.m, statistics/tests/hotelling_test_2.m, - statistics/distributions/wblcdf.m, statistics/distributions/wblpdf.m: - TeXification of help text. - - * statistics/tests/hotelling_test.m: Write T^2 in @math in help text. - - * statistics/tests/var_test.m, statistics/tests/welch_test.m: - Add missing @var's to help text. - - * statistics/models/logistic_regression.m: Fix typos in help text. - - * statistics/distributions/kolmogorov_smirnov_cdf.m: Fix TeX part - of help text. - - * statistics/distributions/unidinv.m: Add a missing 'discrete' to - help text. - - * statistics/distributions/unidpdf.m, - statistics/distributions/discrete_pdf.m: - Replace 'pDF' with 'PDF' in help text. - - 2007-06-25 John W. Eaton - - * strings/substr.m: Use offset consistently in code and doc string. - From Rafael Laboissiere . - - 2007-06-25 Pete Gustafson - - * plot/__go_draw_axes__.m: Handle units for text objects. - - 2007-06-25 John W. Eaton - - * plot/__go_draw_axes__.m: Handle char arrays for tic labels. - Recycle tic labels if necessary. From Juhani Saastamoinen - . - - 2007-06-20 John W. Eaton - - * strings/index.m: Allow strings to be empty. - From Hartmut Wziontek - - * plot/__go_draw_axes__.m (do_tics_1): Fix typo (xtic -> tics). - - 2007-06-19 Vittoria Rezzonico - - * sparse/pcg.m: Allow the preconditioner to be passed as two - separate matrices. - - 2007-06-19 David Bateman - - * plot/axis.m: Prefer to use legend rather than the older Octave - only ";;" legend syntax. - * polynomial/mkpp.m: ditto. - * polynomial/pchip.m: ditto. - * signal/freqz_plot.m: ditto. - * sparse/gplot.m: ditto. - * sparse/treeplot.m: ditto. - - 2007-06-19 John W. Eaton - - * plot/__go_draw_axes__.m (do_tics, do_tics_1): New functions. - (__go_draw_axes__): Call do_tics to handle tic marks. - - 2007-06-18 Sᅵren Hauberg - - * general/interp1.m, general/interp2.m, general/interp3.m, - general/interpn.m: Replace, NaN with NA. Use isna instead of == - to check for NA. - - 2007-06-18 Sᅵren Hauberg - - * optimization/glpk.m: TeXified the help text. - * optimization/qp.m: TeXified the help text. - * optimization/sqp.m: TeXified the help text. - - 2007-06-16 Sᅵren Hauberg - - * plot/legend.m: Replace 'vargin' with 'varargin'. - - 2007-06-15 John W. Eaton - - * plot/__go_draw_axes__.m: Only attempt label rotation if - have_newer_gnuplot is true. - - 2007-06-15 Pete Gustafson - - * plot/__go_draw_axes__.m Handle rotation arg for axis labels. - * plot/__axis_label__.m Assign ylabel default rotation property - to 90, all others 0. - - * plot/__errplot__.m: Set ifmt from fmt.linestyle. - * plot/__go_draw_axes__.m: Removed undefined tx from call to - get_data_limits. - * plot/__plotopt1__.m: Intercept and strip format string when - called by __errplot__. - - 2007-06-15 John W. Eaton - - * testfun/test.m: Also return number of expected failures. - - 2007-06-14 John W. Eaton - - * set/ismember.m: Mark two tests known to fail with xtest. - - * plot/__go_draw_axes__.m: Handle text rotation property. - - 2007-06-14 Paul Kienzle - - * testfun/test.m: Add xtest support for tests known to fail. - - 2007-06-14 Sebastian Schubert - - * plot/print.m: Handle pstex, pslatex, epslatex, and - epslatexstandalone terminals. - - 2007-06-14 David Bateman - - * general/__splinen__.m: Check also for ND vectors. Fix for N > 2, - as permutation of results was incorrect. - * general/interp1.m: Add demo on second derivative - * general/interpn.m: Convert "y" to vectors for __splinen__ - call. Add 3D demo. Fix typos - * general/interp3.m: Fix typos. Correct permutation for use of - interpn. - * polynomial/mkpp.m: Correction for matrices of 3 or more dimensions. - - 2007-06-13 John W. Eaton - - * miscellaneous/mkoctfile.m: Quote args too. - - 2007-06-13 Michael Goffioul - - * miscellaneous/mkoctfile.m: Quote script name for call to system. - - 2007-06-12 Michael Goffioul - - * plot/__pltopt1__.m: Set linestyle to "none" instead of "". - Set have_linestyle to true if two character linestyle is found. - - 2007-06-12 David Bateman - - * general/Makefile.in (SOURCES): Include __spline__.m, interp3.m - and interpn.m. - - * pkg/pkg.m (pkg:load_package_dirs): Check for field "loaded" in - structure before using it. - - 2007-06-12 David Bateman - - * general/interp1.m: Change examples to use new graphics interface. - * general/__splinen__.m: New support function for N-dimensional - spline interpolation. - * general/bicubic.m: Allow definition of extrapolation - value. Adapt tests to use new graphics interface - * general/interp2.m: Call __splinen__ for 2-D spline - interpolation. Make the lookup table code only be called for - linear and nearest methods. - * general/interpn.m: New function for N-dimensional, linear, nearest - and spline interpolation. - * general/interp3.m: New function for 3-dimensional, linear, nearest - and spline interpolation. - * polynomial/spline.m: Change examples to use new graphics interface. - - 2007-06-12 Steve M. Robbins - - * statistics/tests/wilcoxon_test.m: Error if N <= 25. - - 2007-06-12 Sᅵren Hauberg - - * plot/fplot.m: If function is inline, vectorize it. - - 2007-06-10 David Bateman - - * pkg/pkg.m (pkg:installed_packages): truncate start of package - directory if need to, so that it fits on a line. - - 2007-06-07 David Bateman - - * pkg/pkg.m (pkg): For rebuild target, force package order in - saved file so that dependent packages are loaded first, and if - nargout==0 don't return any arguments. - (pkg:install): Only load packages that are marked autoload after - install. Various fixes. Save in order. - (pkg:uninstall): Save in order - (pkg:load_packages): Use load_package_and_dependencies to load - packages. - (pkg:save_order): New function to sort package list with dependent - packages first. - (pkg:load_packages_and_dependencies): New function to load both a - list of packages and their dependencies. - (pkg:load_package_dirs): New function that returns a vector of the - indexes into the installed package list indicating the packages to - load and the order to load them in to respect the dependencies. - - 2007-06-03 Sᅵren Hauberg - - * plot/axes.m: Eliminate redundant else clause. - - 2007-06-03 David Bateman - - * polynomial/spline.m: Add a small tolerance to spline tests. - * pkg/pkg.m: Protect against multiple actions being define. - - 2007-06-01 David Bateman - - * pkg.m (pkg:is_superuser): Remove function used in one place and - incorporate into main pkg function. - (pkg:install): Check for existence of files to install before - globbing and warn the user if they don't exist. - - 2007-05-31 David Bateman - - * miscellaneous/copyfile.m: Split copying of multiple files to a - directory over several copy command to limit the line length. - * miscellaneous/movefile.m: Ditto. - - * pkg.m: Add build option to allow binary Octave packages to be - built from source packages. Probe absolute path of prefix, global - and local lists. Use strcat, rather that [] for strings. - (pkg:build): New function to binary binary package. - (pkg:absolute_pathname): Use fileattrib to probe absolute path. - (pkg:repackage): Package binary Octave package from installation. - (pkg:create_pkgadddel): Extract PKG_ADD and PKG_DEL directives - from m-files into main installation directory. - (pkg:shell): Suppress verbose messages from shell and only display - them with the verbose flag. - (pkg:installed_packages): Also include the loaded flag in the - local and global packages. - (pkg:uninstall): On uninstall, only rmpath the package if it is - flagged as loaded. - - 2007-05-31 Michael Goffioul - - * pkg.m (pkg:load_packages): Correctly load a mix of packages - with and without architecture dependent directories. - (pkg:installed_packages): Probe the global_list file even if it is - the same as the local_list. - - 2007-05-29 John W. Eaton - - * sparse/spy.m: Set axis to "ij" mode. - - 2007-05-24 John W. Eaton - - * set/ismember.m: Quote first arg of "fail" tests. - - 2007-05-24 David Bateman - - * pkg/pkg.m (pkg:rebuild): Thinko in rebuild logic. - - 2007-05-22 David Bateman - - * pkg/pkg.m: Use rethrow(lasterror()) throughout rather than - error(lasterr()(8:end)). - (pkg:install): Warning for empty packages being removed. Suppress - spurious output. Warning rather than error for uninstalling a - package that is not installed to avoid RPM issue. - (pkg:configure_make): Fix for parsing of src/FILES. Don't create - inst or architecture dependent directory if it exists. - - 2007-05-22 Thomas Weber - - * ChangeLog, control/system/is_stabilizable.m, general/bicubic.m, - image/ind2gray.m, image/saveimage.m, plot/box.m, plot/grid.m, - signal/freqz.m: Fix typos. - - 2007-05-21 David Bateman - - * pkg/pkg.m: Add rebuild target, and -local, -global option to - force installation location. - (rebuild): New subfunction to rebuild package database from - installed packages. Also allows changing of autoload status - (install): Warn use if attempting to install from non existent - file. - (issuperuser): Use 'geteuid() == 0' instead of 'strcmp (getenv( - "USER", "root"))' for root test. - - 2007-05-21 Michael Goffioul - - * miscellaneous/copyfile.m: check for cp.exe on Windows platforms - and replace "\" characters with "/". - * pkg/pkg.m: Use shell rather than system throughout. Replace "\" - characters with "/" throughout. - (shell): New subfunction that wraps system and is careful with the - shell on windows platforms. - (configure_make): Explictly pass complier etc to configure - process. - (issuperuser): Force default to global install for Windows machines. - - 2007-05-19 Kristan Onu - - * plot/Makefile.in (SOURCES): Remove hbar.m and add barh.m. - - 2007-05-18 David Bateman - - * pkg/pkg.m (install): More verbosity. - (configure_make): Ditto. - (create_pkgadddel): Install in architecture dependent directory if - it exists to address issues with autoload/mfilename. - (write_INDEX): Check in archiecture dependent directories as well. - - 2007-05-17 David Bateman - - * plot/hbar.m: Remove. - * plot/barh.m: and move it here. - - 2007-05-16 Sᅵren Hauberg - - * general/sub2ind.m, general/ind2sub.m: Doc fix. - - 2007-05-16 John W. Eaton - - * general/logspace.m: Return second arg if fewer than two values - are requested. - - 2007-05-14 John W. Eaton - - * plot/__go_draw_figure__.m: Ensure that a reset commands starts - on a new line. - - 2007-05-14 Tarmigan Casebolt - - * statistics/distributions/norminv.m, - statistics/distributions/norminv.m, - statistics/distributions/normpdf.m, - statistics/distributions/normrnd.m: - Use standard deviation, not variance. - * statistics/distributions/lognpdf.m: Adapt to change in norminv. - * statistics/distributions/logninv.m: Refer to norminv, not normal_inv. - * deprecated/normal_cdf.m, deprecated/normal_inv.m, - deprecated/normal_pdf.m, deprecated/normal_rnd.m: Preserve - backward compatibility. - - 2007-05-14 David Bateman - - * pkg/pkg.m: Mark loaded packages with "*". - - 2007-05-13 Sᅵren Hauberg - - * miscellaneous/single.m: Doc fix. - Convert to double instead of returning argument unchanged. - - * miscellaneous/doc.m: Doc fix. - - * miscellaneous/ver.m: Doc fix. - Don't display information about Octave Forge. - - 2007-05-12 David Bateman - - * pkg/pkg.m: Add a "-verbose" option that allows all output of an - install to be printed. An error in the on_uninstall script causes - a failure to uninstall. Place oct- and mex-files in an - architecture dependent directory. - - 2007-05-09 John W. Eaton - - * plot/__go_draw_axes__.m: Break plot command over multiple lines. - - 2007-05-09 G. D. McBain - - * statistics/distributions/normcdf.m: Use standard deviation - instead of variance for compatibility. - - 2007-05-08 John W. Eaton - - * set/unique.m, set/ismember.m: Use numel(x) instead of prod(size(x)). - - * set/ismember.m: Always return logical values. - - * set/ismember.m: Return early if no matches are found. New tests. - From David Grohmann . - - * general/__isequal__.m: Allow numeric values of different classes - to compare equal. - - 2007-05-07 David Bateman - - * sparse/spy.m: Reverse Y axis for new graphics code. Make more - compatiable, accepting LineSpec and markersize arguments. - - 2007-05-02 John W. Eaton - - * plot/__go_draw_axes__.m: Convert NA to NaN before writing. - - 2007-05-02 G. D. McBain - - * contour.m: Rewrite help string. - - 2007-04-28 John W. Eaton - - * miscellaneous/unzip.m, miscellaneous/untar.m, - miscellaneous/bunzip2.m, miscellaneous/gunzip.m: - Special case nargout == 0. - - 2007-04-27 Kim Hansen - - * general/sub2ind.m: Handle empty input, add tests. - - 2007-04-27 G. D. McBain - - * plot/contourc.m: Doc fix. - - 2007-04-26 David Bateman - - * plot/hist.m: Partially remove previous patch. - - 2007-04-26 David Bateman - - * plot/hist.m: Support returning of handle - * plot/__bar__.m: __pltopt__ should only be called on strings or - cells. - - 2007-04-25 John W. Eaton - - * plot/__go_draw_axes__.m: For images, set titlespec{data_idx} to - "title \"\"", not "". - - * plot/legend.m: Initialize WARNED to false. - - 2007-04-24 John W. Eaton - - * io/beep.m: Fix cut and paste error. - From Sᅵren Hauberg . - - 2007-04-23 John W. Eaton - - * plot/box.m: Delete extra endfunction keyword. - - 2007-04-23 David Bateman - - * plot/plot3.m: Call newplot. - - 2007-04-20 John W. Eaton - - * plot/Makefile.in (SOURCES): Fix typo in adding __bar__.m to the list. - - 2007-04-19 John W. Eaton - - * miscellaneous/unpack.m: Use gzip -d and bzip2 -d instead of - gunzip and bunzip. From Michael Goffioul . - - 2007-04-19 A. S. Hodel - - * control/util/axis2dlim.m: Delete extraneous line. - - 2007-04-18 John W. Eaton - - * specfun/factorial.m: Increase tolerance in large value test. - - 2007-04-18 David Bateman - - * __bar__.m: New support function for bar/hbar to support graphic - handles, and additional arguments. - * bar.m: Convert to use __bar__. - * hbar.m: New function - * hist.m: Explicitly set the width of the bar plot. - - 2007-04-17 John W. Eaton - - * plot/stem.m (stem_line_spec): Pass false as third arg to __pltopt__. - - * set/ismember.m: New tests. - From David Grohmann - - 2007-04-17 Paul Kienzle - - * specfun/factorial.m: Use gamma function instead of cumprod. - Add tests. - - 2007-04-16 John W. Eaton - - * gethelp.cc (looks_like_octave_copyright): Use same logic as in - looks_like_copyright in src/help.cc. - From Sᅵren Hauberg . - - * plot/__go_draw_axes__.m: For log plots, omit zero values too. - - 2007-04-13 John W. Eaton - - * optimization/sqp.m: Initialize info to 0. - - * optimization/qp.m: Undo previous change. - - 2007-04-13 Geordie McBain - - * spdiags.m: Fixed the four-argument case to work for columns of - length one. - - 2007-04-12 John W. Eaton - - * optimization/qp.m: Avoid Octave indexing bug. - - 2007-04-12 Carlo de Falco - - * miscellaneous/menu.m, control/base/bddemo.m, - control/hinf/dgkfdemo.m, control/system/packedform.m, - control/system/sysrepdemo.m: - Adapt to page_screen_output as a function. - - 2007-04-11 John W. Eaton - - * miscellaneous/not.m: Delete. - * miscellaneous/Makefile.in (SOURCES): Delete it from the list. - - 2007-04-11 A. S. Hodel - - * control/util/axis2dlim.m: Try harder to handle min and max vals - that are close but not exactly equal. - - 2007-04-11 David Bateman - - * general/bitcmp.m: Make it work again. - - 2007-04-10 John W. Eaton - - * plot/__go_draw_axes__.m: Try harder to handle min and max vals - that are close but not exactly equal. - - 2007-04-09 Daniel J. Sebald - - * plot/stem.m: Add back the baseline line and let it be not adjustable - in response to a change in x limits for now. - - 2007-04-09 John W. Eaton - - * plot/__go_draw_axes__.m (__gnuplot_write_data__): New function. - (__go_draw_axes__): Use it to write data to plot stream. - - 2007-04-09 Daniel J Sebald - - * plot/stem.m: Fix typos in doc string. Fix typo in call to - zeros. Set markerfacecolor property in call to plot. - - 2007-04-06 John W. Eaton - - * linear-algebra/norm.m: Use new __vnorm__ function for vector args. - - 2007-04-06 Daniel J Sebald - - * plot/stem.m: Use plot instead of a series of calls to line. - - 2007-04-05 John W. Eaton - - * sparse/nonzeros.m, sparse/normest.m, sparse/spconvert.m, - sparse/spdiags.m, sparse/speye.m, sparse/spfun.m, sparse/spones.m, - sparse/sprand.m, sparse/sprandn.m, sparse/sprandsym.m, - sparse/spstats.m, sparse/treeplot.m: Style fixes. - - * pkg/pkg.m: Use "strcat (...)" instead of "[...]". - Use strcmpi instead of strcmp+tolower. - Style fixes. - - * testfun/speed.m: Use "strcat (...)" instead of "[...]". - Plotting fixes. Style fixes. - - * testfun/test.m: Use "strcat (...)" instead of "[...]". - Style fixes. - - * testfun/fail.m: No need to check for evalin and lastwarn. - Style fixes. - - * testfun/demo.m, testfun/example.m: Style fixes. - Use "strcat (...)" instead of "[...]". - Use format specifiers in calls to warning. - - * testfun/assert.m: Use "numel (x)" instead of "prod (size (x))". - Use "strcat (...)" instead of "[...]". - Use "x(end)" instead of "x(length (x))". - Check NA before NaN. - Style fixes. - - 2007-03-29 John W. Eaton - - * plot/stem.m (stem, set_default_values): Use RGB triple for color. - - 2007-03-27 John W. Eaton - - * Makefile.in, audio/Makefile.in, control/Makefile.in, - control/base/Makefile.in, control/hinf/Makefile.in, - control/obsolete/Makefile.in, control/system/Makefile.in, - control/util/Makefile.in, deprecated/Makefile.in, - elfun/Makefile.in, finance/Makefile.in, general/Makefile.in, - image/Makefile.in, io/Makefile.in, linear-algebra/Makefile.in, - miscellaneous/Makefile.in, optimization/Makefile.in, - path/Makefile.in, pkg/Makefile.in, plot/Makefile.in, - polynomial/Makefile.in, quaternion/Makefile.in, set/Makefile.in, - signal/Makefile.in, sparse/Makefile.in, specfun/Makefile.in, - special-matrix/Makefile.in, startup/Makefile.in, - statistics/Makefile.in, statistics/base/Makefile.in, - statistics/distributions/Makefile.in, - statistics/models/Makefile.in, statistics/tests/Makefile.in, - strings/Makefile.in, testfun/Makefile.in, time/Makefile.in: - Use ln instead of $(LN_S) in dist target. - - 2007-03-27 David Bateman - - * plot/__go_draw_axes__.m: Allow linewidth settings to work with - gnuplot 4.0. - - 2007-03-26 John W. Eaton - - * plot/__go_draw_axes__.m: Send image data to gnuplot via plot stream. - - 2007-03-26 Daniel J Sebald - - * plot/__go_draw_axes__.m: Always end palette data to gnuplot via - plot stream and using binary data. - - 2007-03-26 John W. Eaton - - * plot/__plt1__.m, plot/__plt2__.m, plot/__plt2mm__.m, - lot/__plt2mv__.m, plot/__plt2ss__.m, plot/__plt2vm__.m, - plot/__plt2vv__.m: Accept properties in addtition to options struct. - - 2007-03-26 David Bateman - - * plot/__go_draw_axes__.m: Send "set ticslevel 0" to plot stream. - - * plot/plot3.m: Handle line properties. - * plot/plot.m: Update docstring. - * plot/__plotopt__.m, plot/__pltopt1__.m: New arg, err_on_invalid. - * plot/__plt__.m: Also gather properties. - - 2007-03-26 Kim Hansen - - * testfun/assert.m: Delete special check for empty objects. - Add test. - - 2007-03-26 John W. Eaton - - * plot/drawnow.m: Exit early if call is recursive. - - * plot/__go_draw_axes__.m (get_data_limits): New function. - Check for Inf too. - (__go_draw_axes__): Use get_data_limits. - - 2007-03-24 John W. Eaton - - * plot/drawnow.m: If GNUTERM is set to wxt in the environment, - send terminal setting command with title option to plot stream. - - * plot/legend.m: Correctly increment index into list of children.. - - 2007-03-23 John W. Eaton - - * general/interp2.m, general/bicubic.m, control/base/rldemo.m, - control/hinf/hinfdemo.m, control/hinf/dhinfdemo.m, - control/base/nyquist.m, control/base/nichols.m, - control/base/frdemo.m, signal/freqz_plot.m, - control/base/__stepimp__.m, control/base/bode.m, - quaternion/demoquat.m, quaternion/qcoordinate_plot.m, - statistics/base/qqplot.m, statistics/base/ppplot.m, sparse/spy.m: - Update plotting code. - - * control/base/bode.m: Unwrap phase angle. - - * miscellaneous/dump_prefs.m: Remove automatic_replot from the list. - - * plot/axis.m: Don't check automatic_replot, or call replot. - - * quaternion/demoquat.m: Delete comments with obsolete plotting - commands. - - * plot/__pltopt1__.m: Handle "@" marker same as "+". - Handle numeric color specs. - * plot/plot.m: Remove "-@" and "@" from docstring. - - * plot/orient.m: Fix tests to avoid creating a plot window. - - * elfun/acosd.m, elfun/acotd.m, elfun/acscd.m, elfun/asecd.m, - elfun/asind.m, elfun/atand.m, elfun/cosd.m, elfun/cotd.m, - elfun/cscd.m, elfun/secd.m, elfun/sind.m, elfun/tand.m, - general/arrayfun.m, miscellaneous/compare_versions.m, - path/savepath.m, pkg/pkg.m, plot/__gnuplot_version__.m, - plot/contour.m, plot/contourc.m, plot/legend.m, plot/stem.m, - polynomial/pchip.m: Fix copyright notice, correct FSF address. - - * plot/__go_draw_figure__.m: Send reset to gnuplot before every - plot, not just multiplots. - - * plot/__go_draw_axes__.m: Use %g for label coordinates, not %d. - - * plot/contour.m: Don't call drawnow. - - 2007-03-22 John W. Eaton - - * plot/drawnow.m: Check and optionally, set, the __modified__ - property of each figure. - - * plot/__go_draw_axes__.m: If no real data, plot a point at Inf, - Inf to show axes. From Daniel J Sebald . - - 2007-03-21 John W. Eaton - - * linear-algebra/null.m: Set elements of retval with magnitudes - less than eps to 0. - - 2007-03-21 David Bateman - - * plot/__go_draw_axes__.m: Handle some colors with older gnuplot. - * testfun/speed.m: Documentation and example fix. - - 2007-03-21 John W. Eaton - - * plot/subplot.m: If we find an existing subplot region, set - it to be the "currentaxes" property for the current figure. - Delete old axes objects if the new axes object overlaps the old. - - 2007-03-20 David Bateman - - * general/Makefile.in: Include arrayfun.m in SOURCES. - - 2007-03-20 Bill Denney - - * general/arrayfun.m: New function. - - 2007-03-20 John W. Eaton - - * plot/newplot.m: Call __request_drawnow__ after initializing axes. - * plot/text.m: Call __request_drawnow__ after creating text objects. - - * plot/clf.m: Don't call drawnow. - - 2007-03-20 Daniel J Sebald - - * image/__img__.m: Maybe set yaxis to reverse for images. - * plot/__go_draw_axes__.m: Don't add flipy to gnuplot command for - images. - - * plot/drawnow.m: Make __go_close_all_registered__ persistent - instead of global. Only register __go_close_all__ with atexit if - the plot stream is successfully opened. - - 2007-03-15 John W. Eaton - - * plot/__go_draw_axes__.m: Make have_newer_gnuplot persistent. - From Daniel J Sebald . - - 2007-03-15 Daniel J Sebald - - * plot/__go_draw_axes__.m (do_linestyle_command): Fix marker types. - Use numeric line types. - - * control/base/rlocus.m: Add asymptotes to the plot. Use wider - lines and larger markers. Remove key titles from line type - properties. - - 2007-03-14 John W. Eaton - - * plot/__axis_label__.m: Accept additional property-value pairs - and pass them to __go_text__. Simply return the handle obtained - from __go_text__ instead of calling get on the current axis. - * plot/xlabel.m, plot/zlabel.m, plot/zlabel.m: Check args here. - Allow for extra property value pairs to be passed along. - * plot/title.m: Implement with __axis_label__ since it does all - that title needs to do. - - * plot/clf.m: Set currentaxes property for current figure to []. - - * plot/__axis_label__.m: Convert arg to text handle before calling set. - - * plot/__plt__.m: Return line handles from all calls to __plt1__ - and __plt2__, not just the last. - - * plot/Makefile.in (SOURCES): Rename from SOURCES_M. - (SOURCES_IN, GEN_M): Delete. - (FCN_FILES): Don't include $(GEN_M). - (all): Don't depend on $(GEN_M). - ($(GEN_M) : %.m : %.in): Delete pattern rule. - - * plot/text.m: Use __go_text__ instead of __uiboject_text_ctor__. - - * plot/newplot.m: Call __go_axes_init__ instead of - __uiobject_axes_init__. - - * plot/mesh.m: Use __go_surface__ instead of - __uiobject_surface_ctor__. Don't access object fields directly. - - * plot/line.m: Use __line__ to do actual work. - * plot/__line__.m: New function. - - * plot/axes.m: Use __go_axes__ to create axes graphics handle. - Use get and set instead of accessing object fields directly. - - * plot/figure.m: Use __go_figure__ to create figure graphics - handle. - - * plot/drawnow.m: Register __go_close_all__ with atexit instead of - __uiobject_close_all. Call __go_draw_figure__ instead of - __uiobject_draw_figure__. - - * plot/clf.m: Use get instead of accessing object fields - directly. Simply delete children. Don't set currentaxes. - - * plot/close.m (close_all_figures): New subfunction. - Use it instead of getting list of figures to close from - __uiobject_figures__. - - * plot/closereq.m: Simply delete the current figure. Don't set - currentfigure. - - * plot/__errplot__.m: Call __line__ instead of - __uiobject_line_ctor__. Use set instead of accesing object fields - directly. Don't call __uiobject_adopt__. - - * plot/__uiobject_adopt__.m, plot/__uiobject_alloc__.in, - plot/__uiobject_axes_ctor__.m, plot/__uiobject_axes_dtor__.m, - plot/__uiobject_axes_init__.in, plot/__uiobject_axes_setr__.m, - plot/__uiobject_delete__.m, plot/__uiobject_figure_ctor__.m, - plot/__uiobject_figures__.in, plot/__uiobject_free__.in, - plot/__uiobject_get_handle__.in, plot/__uiobject_globals__.m, - plot/__uiobject_grow_list__.in, plot/__uiobject_handle2idx__.in, - plot/__uiobject_image_ctor__.m, plot/__uiobject_init_figure__.in, - plot/__uiobject_init_root_figure__.in, - plot/__uiobject_line_ctor__.m, plot/__uiobject_make_handle__.in, - plot/__uiobject_root_figure_ctor__.m, - plot/__uiobject_surface_ctor__.m, plot/__uiobject_text_ctor__.m: - plot/get.in, plot/include-globals.awk, plot/ishandle.m, - plot/set.in: Delete. - * plot/Makefile.in (SOURCES_M, SOURCES_IN): Remove from lists. - - * plot/__go_close_all__.m: Rename from __uiobject_close_all.m. - Pass "hidden" as second arg to close. - * plot/__go_draw_axes__.m: Rename from __uiobject_draw_axes.m. - * plot/__go_draw_figure__.m: Rename from __uiobject_draw_figure.m. - * plot/Makefile.in (SOURCES_M): Rename in list. - - * image/__img__.m: Use __go_image__ to create image graphics - handle. - - * miscellaneous/delete.m: Call __go_delete__, not - __uiobject_delete__. Check that arg is a graphics handle before - calling __go_delete__. - - 2007-03-13 John W. Eaton - - * miscellaneous/cast.m: Use feval and strcmp with cell to check - arg instead of switch statement. - From Sᅵren Hauberg . - - 2007-03-12 John W. Eaton - - * miscellaneous/cast.m: New function. - - * miscellaneous/delete.m: Call __go_delete__, not __uiobject_delete__. - - 2007-03-08 John W. Eaton - - * miscellaneous/copyfile.m, miscellaneous/movefile.m: Perform - tilde expansion on target filename before passing it to the shell. - - * statistics/base/Makefile.in (SOURCES): Remove unidrnd.m from list. - * statistics/distributions/Makefile.in (SOURCES): Add it here. - - 2007-03-08 David Bateman - - * statistics/base/unidrnd.m: Move to statistics/distributions - replacing slower version based on dicrete_rnd. - - 2007-03-07 John W. Eaton - - * control/base/rlocus.m: Update for current plotting functions. - - 2007-03-07 A. S. Hodel - - * control/base/rlocus.m: Improve display. - - 2007-03-07 John W. Eaton - - * plot/legend.m: Only handle positions -1:4. - * plot/__pltopt1__.m: Don't set linestyle if only marker style is - found in option string - * plot/__uiobject_draw_axes__.m: Handle key position. - - * plot/newplot.m: Always reset next line color. - - * testfun/assert.m: Check that number of dimensions match before - checking dimensions. - - 2007-03-07 Muthiah Annamalai - - * specfun/perms.m, specfun/factorial.m: Check args. - - 2007-03-07 John W. Eaton - - * plot/mesh.m: Call newplot before doing anything. - - * plot/__uiobject_draw_axes__.m: Send "e\n" at end of data, not - just "e". Only flush plot stream once. - From Daniel J Sebald . - - * strings/blanks.m: Omit first index in assignment. - - 2007-03-07 Paul Kienzle - - * set/setdiff.m: Some code cleanup and a fix for setdiff on rows. - - 2007-03-06 David Bateman - John W. Eaton - - * set/setdiff.m: Ignore "rows" for cell array args. - Handle cellstr args. - - 2007-03-05 John W. Eaton - - * optimization/sqp.m: Defer first call to obj_hess until after - calling obj_fun. - - 2007-03-02 Bob Weigel - - * specfun/nchoosek.m: Fix nargin check. - - 2007-03-01 Daniel J Sebald - - * image/__img__.m: Don't set xlim and ylim properties. - - 2007-03-01 Paul Kienzle - - * general/interp1.m: Fix *style cases for decreasing x. - - 2007-03-01 Muthiah Annamalai - - * polynomial/roots.m: Check nargin before accessing arg. - - 2007-02-28 John W. Eaton - - * plot/__uiobject_draw_axes__.m: If looking at image data, Don't - increment data_idx unless using gnuplot for display. - - 2007-02-28 Daniel J Sebald - - * plot/__uiobject_draw_axes__.m: Improve calculation of limits for - plots with images. - * image/image.m, image/imagesc.m, image/imshow.m: - Deprecate zoom argument. - - 2007-02-28 John W. Eaton - - * plot/__uiobject_draw_axes__.m: Use fullfile to generate - temporary file names. Keep image and colormap file ids separate. - - * general/interp1.m: Correctly compute min and max values when - values are decreasing and not evenly spaced. - From Ricardo Marranita . - - 2007-02-27 John W. Eaton - - * testfun/test.m (test): Handle possibility of file_in_loadpath - returning an empty cell array. - - 2007-02-27 Michael Goffioul - - * pkg/pkg.m: Use fullfile to create filenames from parts. - - 2007-02-26 Michael Goffioul - - * Makefile.in, audio/Makefile.in, control/Makefile.in, - control/base/Makefile.in, control/hinf/Makefile.in, - control/obsolete/Makefile.in, control/system/Makefile.in, - control/util/Makefile.in, deprecated/Makefile.in, - elfun/Makefile.in, finance/Makefile.in, general/Makefile.in, - image/Makefile.in, io/Makefile.in, linear-algebra/Makefile.in, - miscellaneous/Makefile.in, optimization/Makefile.in, - path/Makefile.in, pkg/Makefile.in, plot/Makefile.in, - polynomial/Makefile.in, quaternion/Makefile.in, set/Makefile.in, - signal/Makefile.in, sparse/Makefile.in, specfun/Makefile.in, - special-matrix/Makefile.in, startup/Makefile.in, - statistics/Makefile.in, statistics/base/Makefile.in, - statistics/distributions/Makefile.in, - statistics/models/Makefile.in, statistics/tests/Makefile.in, - strings/Makefile.in, testfun/Makefile.in, time/Makefile.in: - Use $(LN_S) instead of ln or ln -s. - - 2007-02-24 David Bateman - - * pkg/pkg.m (configure_make): Ignore blank lines and trailing - '\n' in FILES file. - (configure_make): Also install any mex files. - - 2007-02-24 David Bateman - - * statistics/distributions (SOURCES): Add nbincdf.m, - nbininv.m, nbinpdf.m and nbinrnd.m. - - 2007-02-23 John W. Eaton - - * statistics/distributions/Makefile.in (SOURCES): Remove - pascal_cdf.m pascal_inv.m pascal_pdf.m pascal_rnd.m from the list. - - * deprecated/Makefile.in (SOURCES): Add pascal_cdf.m, - pascal_inv.m, pascal_pdf.m, and pascal_rnd.m to the list. - - 2007-02-23 David Bateman - - * statistics/distributions/discrete_rnd.m, - statistics/distributions/geornd.m, - statistics/distributions/lognnd.m, - statistics/distributions/nbinrnd.m, - statistics/distributions/wblrnd.m: Accelerate distributions. - - * statistics/distributions/unidcdf.m, - statistics/distributions/unidinv.m, - statistics/distributions/unidpdf.m, - statistics/distributions/unidrnd.m: New functions based on - discrete_cdf, etc. - - * statistics/distributions/pascal_cdf.m, - statistics/distributions/pascal_inv.m, - statistics/distributions/pascal_pdf.m, - statistics/distributions/pascal_rnd.m: Remove. - * statistics/distributions/nbincdf.m, - statistics/distributions/nbininv.m, - statistics/distributions/nbinpdf.m, - statistics/distributions/nbinrnd.m: Replace with matlab - compatible functions. - * deprecated/pascal_cdf.m, deprecated/pascal_inv.m, - deprecated/pascal_pdf.m, deprecated/pascal_rnd.m: Use the new - nbincdf, etc functions to implement these. - - 2007-02-22 Daniel J Sebald - - * plot/__uiobject_draw_axes__.m: Insert newline between plot - command and data. - - 2007-02-22 John W. Eaton - - * miscellaneous/doc.m: If index search fails, try again without - the index search option. - - 2007-02-22 David Bateman - - * miscellaneous/doc.m: Find doc.info file correctly in user directories. - - * statistics/distributions/frnd.m, statistics/distributions/exprnd.m, - statistics/distributions/gamrnd.m, statistics/distributions/trnd.m, - statistics/distributions/poissrnd.m, statistics/distributions/chi2rnd.m, - statistics/distributions/betarnd.m: Convert to use randg, rande - and randp to accelerate. - - * pkg/pkg.m (fix_depends): Support > and < operators as well. - - 2007-02-22 John W. Eaton - - * plot/__uiobject_draw_axes__.m: If not using gnuplot for images, - cache data and display after xlim and ylim have been determined. - - 2007-02-22 Daniel J Sebald - - * plot/__uiobject_draw_axes__.m: - Allow multiple images to be displayed with gnuplot. - - 2007-02-20 Rafael Laboissiere - - * optimization/glpk.m: Document the fact that extra.mem does not work - for versions of GLPK 4.15 and later. - - 2007-02-19 John W. Eaton - - * plot/__uiobject_alloc__.in: If next available element in - __uiobject_list__ is 0, grow list before doing anything else. - * plot/__uiobject_grow_list__.in: Only set __uiobject_head__ on - first call when size of __uiobject_list__ is 0. - - 2007-02-16 John W. Eaton - - * miscellaneous/Makefile.in (SOURCES): Remove popen2.m from the list. - - 2007-02-16 Michael Goffioul - - * miscellaneous/popen2.m: Remove as replaced with builtin. - - 2007-02-16 Muthiah Annamalai - - * specfun/nchoosek.m: Check nargin. - - 2007-02-15 John W. Eaton - - * path/addpath.m, path/rmpath.m: Delete - * path/Makefile.in (SOURCES): Remove them from the list. - - * plot/__uiobject_axes_init__.in, plot/__uiobject_axes_setr__.m: - Delete title, xlabel, ylabel, and zlabel properties before - reassigning. - * plot/__uiobject_axes_init__.in: New arg, mode. - Don't init outerposition if "mode" is "replace". - * plot/newplot.m: Check both figure and axes nextplot properties. - If axes nextplot property is replace, pass "replace" as mode arg - to __uiobject_axes_init__. - - 2007-02-15 Daniel J Sebald - - * image/imshow.m: Don't restore old colormap. - - * plot/__uiobject_image_ctor__.m: Set xdata and ydata properties. - * image/__img__.m: New file containing common parts of image.m and - imshow.m. - * image/Makefile.in (SOURCES): Add __img__.m to the list. - * image/image.m, image/imshow.m: Call __img__. - * plot/__uiobject_draw_axes__.m: - Handle rgb imaged data stored in 3-d arrays. - - * plot/figure.m: Doc fix. - - 2007-02-14 Thomas Weber - - * audio/wavread.m, audio/wavwrite.m: Use types with specific sizes - for reading and writing data. New tests. Improve rounding. - - 2007-02-13 John W. Eaton - - * plot/stem.m: New file, adapted from OctPlot. - * plot/Makefile.in (SOURCES_M): Add it to the list. - - * plot/__errcomm__.m, plot/__plr1__.m, plot/__plr2__.m, - plot/__plt1__.m, plot/__plt2__.m, plot/__plt2mm__.m, - plot/__plt2mv__.m, plot/__plt2ss__.m, plot/__plt2vm__.m, - plot/__plt2vv__.m, plot/__plt__.m, plot/loglog.m, - plot/loglogerr.m, plot/plot.m, plot/plot3.m, plot/polar.m, - plot/semilogx.m, plot/semilogxerr.m, plot/semilogy.m, - plot/semilogyerr.m: Return handles to line objects. - - 2007-02-11 John W. Eaton - - * plot/__uiobject_close_all.m: New file. - * plot/Makefile.in (SOURCES_M): Add it to the list. - - 2007-02-10 John W. Eaton - - * plot/drawnow.m: Arrange for plot streams to be close on exit. - * plot/__uiobject_globals__.m: Don't call mlock. - - * plot/drawnow.m: Only check for DISPLAY if isunix returns true. - * plot/__uiobject_delete__.m: Send quit command and flush stream - before calling pclose. - - 2007-02-09 John W. Eaton - - * plot/subplot.m: Delete spurious call to axes. - - * plot/figure.m: Call drawnow for current figure before creating - or switching to a new figure. - * plot/__uiobject_init_figure__.in: Handle empty arg the same as - nargin == 0 case. - - * testfun/assert.m: Try to avoid problems when comparisons involve - strange values like Inf+NaNi. - - 2007-02-08 John W. Eaton - - * plot/drawnow.m: Use gnuplot_binary() instead of just "gnuplot" - and check gnuplot_use_title_option instead of just assuming -title - works. From Michael Goffioul . - - * Makefile.in (DISTFILES): Add move-if-change to the list. - - * audio/Makefile.in, control/base/Makefile.in, - control/hinf/Makefile.in, control/obsolete/Makefile.in, - control/system/Makefile.in, control/util/Makefile.in, - deprecated/Makefile.in, elfun/Makefile.in, finance/Makefile.in, - general/Makefile.in, image/Makefile.in, io/Makefile.in, - linear-algebra/Makefile.in, miscellaneous/Makefile.in, - optimization/Makefile.in, plot/Makefile.in, - polynomial/Makefile.in, quaternion/Makefile.in, set/Makefile.in, - signal/Makefile.in, sparse/Makefile.in, specfun/Makefile.in, - special-matrix/Makefile.in, startup/Makefile.in, - statistics/base/Makefile.in, statistics/distributions/Makefile.in, - statistics/models/Makefile.in, statistics/tests/Makefile.in, - strings/Makefile.in, testfun/Makefile.in, time/Makefile.in, - path/Makefile.in, pkg/Makefile.in: Explicitly list source files. - - * plot/figure.m: Don't call drawnow. Correctly init figure when - only given property list. - - 2007-02-07 John W. Eaton - - * plot/__uiobject_draw_axes__.m: Handle xdir, ydir, and zdir axis - properties. - - * plot/sombrero.m: Call box ("off") after mesh. - - * plot/__uiobject_draw_axes__.m: Avoid rgb colors and "set style - line default" commands with older versions of gnuplot. - - * plot/close.m: Use get (0, "currentifgure") instead of gcf. - - 2007-02-06 John W. Eaton - - * plot/__uiobject_draw_axes__.m: Set pt to 0 if marker is ".". - * sparse/gplot.m: Use line style - instead of 1. - - 2007-02-05 Rafael Laboissiere - - * plot/print.m: Avoid error message from cellidx. - - 2007-02-05 John W. Eaton - - * plot/legend.m: Fix check for data. - - 2007-02-05 Thomas Treichl - - * plot/__uiobject_draw_axes__.m (do_linestyle_command): - Always set lt and pt. - - 2007-02-05 Shai Ayal - - * plot/contourc.m: Correctly compute X and Y. - - 2007-02-05 John W. Eaton - - * plot/__uiobject_draw_axes__.m: Use title "" if no explicit title. - When setting {x,y,z}lim, also set {x,y,z}limmode to "auto. - - 2007-02-01 John W. Eaton - - * plot/__uiobject_draw_axes__.m: - Don't try to set axis limits unless we have data. - - * plot/__plt1__.m, plot/__plt2__.m, plot/__plt2mm__.m, - plot/__plt2mv__.m, plot/__plt2ss__.m, plot/__plt2vm__.m, - plot/__plt2vv__.m, plot/__plt__.m, plot/__pltopt1__.m, - plot/__pltopt__.m, plot/plot3.m: Set and use options struct - instead of of key and fmt strings. - - * plot/__pltopt1__.m: Greatly simplify. - - * plot/__next_line_color__.m: New file. - * plot/Makefile.in (SOURCES_M): Add it to the list. - * plot/newplot.m: Call __next_line_color__ here to reset rotation. - - * plot/__default_plot_options__.m: New file. - * plot/Makefile.in (SOURCES_M): Add it to the list. - - * plot/__plt3__.m: Delete. - * plot/Makefile.in (SOURCES_M): Remove it from the list. - - 2007-01-31 John W. Eaton - - * plot/__uiobject_draw_axes__.m: Set defaults for color, - linestyle, linewidth, marker, and markersize properties. - * plot/__uiobject_draw_axes__.m: Attempt to handle line and marker - colors and widths, and line styles. - - * plot/__plt__.m, image/image.m: Don't call drawnow. - - * plot/__gnuplot_version__.m: Restore from CVS Attic. - * plot/Makefile.in (SOURCES_M): Add it to the list. - - * plot/__uiobject_draw_axes__.m: Delete useless call to - __gnuplot_save_data__. - - * image/image.m: Accept 2 args, but ignore the second for now. - - 2007-01-30 David Bateman - - * pkg/pkg.m (pkg, isautoload, install, load_packages): Add ability - to flag a package as to be autoloaded. Add install flags -noauto, - -auto to force autoload behavior. - (installed_packages): Make list of installed packages unique. - - 2007-01-30 John W. Eaton - - * Merge of changes from graphics-branch: - - 2007-01-29 John W. Eaton - - * plot/subplot.m: Set nextplot property of current figure to "add". - - * plot/__uiobject_draw_axes__.m: Only handle outerposition - property if it exists. - - 2007-01-26 John W. Eaton - - * plot/__uiobject_draw_axes__.m: Move initialization of max and - min values outside of loop over child objects. - - * plot/contour.m, plot/contourc.m: New files. - * plot/Makefile.in (SOURCES_M): Add them to the list. - - * image/image_viewer.m: Set view_fcn to "gnuplot_internal" if we - find a gnuplot version newer than 4.0. - * image/__img_gnuplot__.m: Delete. - * image/image.m: Create image graphics object. - Call newplot to setup and drawnow to finish. - Eliminate ZOOM arg. - - * plot/__uiobject_draw_axes__.m: Handle image data. - - * plot/legend.m: Eliminate useless variable "warned". - - * plot/__uiobject_image_ctor__.m: New file. - * plot/Makefile.in (SOURCES_M): Add it to the list. - - * plot/gcf.m: Also create new figure if currentfigure is 0. - * plot/drawnow.m: Use get (0, "currentfigure") instead of gcf. - - * plot/__uiobject_root_figure_ctor__.m: Set visible property. - - * plot/__default_colormap__.m: New file. - * plot/Makefile.in (SOURCES_M): Add it to the list. - * plot/__uiobject_figure_ctor__.m: Use it to set default colormap - property. - * image/colormap.m: Use colormap property of current figure - to store colormap instead of using persistent variable. - Call __default_colormap__ to get default map value. - * image/ocean.m, image/gray.m: Set colormap for current figure. - - * plot/__uiobject_draw_axes__.m: Handle aspect ratio property. - Handle some tick mark options. - - * plot/__uiobject_axes_setr__.m: If we see xtick, ytick, or ztick, - set corresponding *mode to "manual". If we set dataaspectratio, - set dataaspectratiomode to "manual". - - * plot/__uiobject_axes_init__.m: Include *tick, *tickmode, - *ticklabelmode, dataaspectratio, dataaspectratiomode properties. - - * plot/axis.m: New file. - * plot/Makefile.in (SOURCES_M): Include it in the list. - - * plot/__uiobject_axes_setr__.m: If we see xlim, ylim, or zlim, - set corresponding *limmode to "manual". - * plot/__uiobject_draw_axes__.m (get_axis_limits): New subfunction. - Use it to compute autosclaled limits. - Arg is now handle, not object. Change all callers. - Compute data limits. - - 2007-01-25 John W. Eaton - - * plot/drawnow: Fix visibility check for zero args. - - * plot/text.m: New file. - * plot/Makefile.in (SOURCES_M): Add it to the list. - * plot/__uiobject_draw_axes__.m: Handle text objects. - * plot/__uiobject_text_ctor__.m: Include units, position, and - horizontalalignment properties. - - * plot/figure.m: Set options for f we just constructed or were - given as an argument, not gcf. Only return handle if nargout > 0. - - * plot/drawnow.m: Handle visible field for figure here. - * plot/__uiobject_figure_ctor__.m: Set default visible field. - - * plot/__uiobject_draw_axes__.m: Call undo_string_escapes on - title and axis labels. - - * plot/plot3.m, plot/mesh.m: Set default 3-d view here. - * plot/__uiobject_draw_axes__.m: Handle view for 3-d plots. - * plot/__uiobject_axes_init__.in: Set default view field for object. - * plot/view.m: New file. - * plot/Makefile.in (SOURCES_M): Add it to the list. - - * plot/__uiobject_make_handle__.in, plot/set.m, plot/drawnow.m: - Call __request_drawnow__. - - * plot/newplot.m: For "replace" action, call __uiobject_axes_init__. - - * plot/__uiobject_axes_ctor__.m, plot/__uiobject_text_ctor__.m: - Call set to set properties. Return handle instead of structure. - Change all callers. - - * plot/__uiobject_axes_setr__.m: New file. - * plot/set.in: Check for __setter__ field. - - * plot/__uiobject_axes_init__.in: - Rename from plot/__uiobject_axes_init__.m. - Include __uiobject_globals__. - Accept handle as arg instead of structure - * plot/Makefile.in (SOURCES_M): Remove __uiobject_axes_init__.m - from the list. - (SOURCES_IN): Add __uiobject_axes_init__.in to the list. - - 2007-01-24 John W. Eaton - - * plot/Makefile.in ($(GEN_M)): Depend on __uiobject_globals__.m. - - * plot/__uiobject_globals__.m: Call __lock_global__ when - initializing each global variable. - - 2007-01-18 John W. Eaton - - * plot/__uiobject_globals__.m (__uiobject_handles_free_list__, - __uiobject_figure_handles_free_list__): New global variables. - * plot/__uiobject_get_handle__.m, plot/__uiobject_free__.m: - Place unused handles on the free list. - - * plot/__uiobject_get_figure_handle__.in: Delete. - * plot/Makefile.in: Delete it from the SOURCES_IN list. - - * plot/__uiobject_init_figure__.in: Perform allocation of figure - handles here. Return figure handle. - * plot/figure.m: Call __uiobject_init_figure__ to allocate handle. - - 2007-01-11 John W. Eaton - - * plot/__uiobject_draw_axes__.m: Use "%g", not "%.4g" when writing - data for gnuplot. - - * plot/Makefile.in (SOURCES_M, SOURCES_IN, GEN_M): New lists of - files. - (SOURCES): Include $(SOURCES_M) and $(SOURCES_M) in the list. - (DISTFILES): Include include-globals.awk in the list. - (FCN_FILES): Define using $(SOURCES_M) and $(GEN_M). - ($(GEN_M) : %.m : %.in): New rule. - - * include-globals.awk: New file. - - * plot/__uiobject_alloc__.in, plot/__uiobject_figures__.in, - plot/__uiobject_free__.in, plot/__uiobject_get_figure_handle__.in, - plot/__uiobject_get_handle__.in, plot/__uiobject_grow_list__.in, - plot/__uiobject_handle2idx__.in, plot/__uiobject_init_figure__.in, - plot/__uiobject_init_root_figure__.in, - plot/__uiobject_make_handle__.in, plot/get.in, plot/set.in: - Rename from corresponding .m files. - - * move-if-change: New file. - - * plot/__uiobject_delete__.m: New file. - * plot/delete.m, plot/__uiobject_delete_children__.m, - plot/__uiobject_delete_child__.m: Delete. - * miscellaneous/delete.m: Forward to __uiobject_delete__ if arg is - not a character string. - * plot/__plt2mm__.m, plot/__plt2mv__.m, plot/__plt2vm__.m: - Fix assignment to tmp key value in loop. - * plot/__uiobject_axes_dtor__.m: No need to Call __uiobject_free__ - for obj.title, obj.xlabel, obj.ylabel, obj.zlabel. - * plot/__uiobject_axes_dtor__.m, plot/__uiobject_axis_init__.m: - Inline code to delete children. - * plot/__uiobject_free__.m: Arg is now handle, not index into - __uiobject_list__. - * plot/clf.m, plot/closereq.m, plot/newplot.m: No need to remove - and free child. - - 2006-12-08 John W. Eaton - - * plot/gcf.m: Check if the root figure object's currentfigure - handle is empty, not 0. - * plot/__uiobject_root_figure_ctor__.m: - Set currentfigure to [], not 0. - - * plot/stairs.m: Handle matrix arguments. Improve compatibility. - - 2006-12-07 John W. Eaton - - * plot/__plt_get_axis_arg__.m, plot/__uiobject_adopt__.m, - plot/__uiobject_alloc__.m, plot/__uiobject_axes_ctor__.m, - plot/__uiobject_axes_dtor__.m, plot/__uiobject_axes_init__.m, - plot/__uiobject_delete_children__.m, - plot/__uiobject_draw_axes__.m, plot/__uiobject_draw_figure__.m, - plot/__uiobject_figure_ctor__.m, plot/__uiobject_figures__.m, - plot/__uiobject_free__.m, plot/__uiobject_get_figure_handle__.m, - plot/__uiobject_get_handle__.m, plot/__uiobject_globals__.m, - plot/__uiobject_grow_list__.m, plot/__uiobject_handle2idx__.m, - plot/__uiobject_init_figure__.m, - plot/__uiobject_init_root_figure__.m, - plot/__uiobject_line_ctor__.m, plot/__uiobject_make_handle__.m, - plot/__uiobject_remove_child__.m, - plot/__uiobject_root_figure_ctor__.m, - plot/__uiobject_surface_ctor__.m, plot/__uiobject_text_ctor__.m, - plot/axes.m, plot/box.m, plot/closereq.m, plot/delete.m, - plot/drawnow.m, plot/gca.m, plot/gcf.m, plot/get.m, - plot/isfigure.m, plot/ishandle.m, plot/line.m, plot/newplot.m, - plot/set.m: New files. - - * plot/__plt3__.m, plot/errorbar.m, plot/__axis_label__.m, - plot/__plr1__.m, plot/__errcomm__.m, plot/print.m, plot/zlabel.m, - plot/__plt1__.m, plot/__plt2__.m, plot/sombrero.m, plot/shg.m, - plot/fplot.m, plot/ndgrid.m, plot/clf.m, plot/hold.m, - plot/ishold.m, plot/meshdom.m, plot/ylabel.m, plot/__plt2ss__.m, - plot/__plt2vv__.m, plot/__plr2__.m, plot/__plt2mm__.m, - plot/__pltopt1__.m, plot/meshgrid.m, plot/__plt2mv__.m, - plot/figure.m, plot/xlabel.m, plot/stairs.m, plot/__plt2vm__.m, - plot/bar.m, plot/__errplot__.m, plot/semilogx.m, plot/semilogy.m, - plot/loglog.m, plot/polar.m, plot/legend.m, plot/orient.m, - plot/title.m, plot/__pltopt__.m, plot/grid.m, plot/hist.m, - plot/subplot.m, plot/plot.m, plot/mesh.m, plot/__plt__.m, - plot/close.m, plot/loglogerr.m, plot/plot3.m, plot/semilogxerr.m, - plot/semilogyerr.m, plot/replot.m: - Adapt to new graphics data structure. - - * plot/__do_legend__.m, plot/__gnuplot_version__.m, - plot/__init_plot_vars__.m, plot/__make_using_clause__.m, - plot/__plot_globals__.m, plot/__plr__.m, plot/__render_plot1__.m, - plot/__render_plot__.m, plot/__setup_plot__.m, plot/axis.m, - plot/contour.m, plot/mplot.m, plot/multiplot.m, plot/oneplot.m, - plot/plot_border.m, plot/subwindow.m: Delete. - - 2007-01-24 David Bateman - - * pkg/pkg.m: Install ChangeLog file if it exists. - Delete bare newline in string passed to write_INDEX. - - * sparse/sprandsym.m: Make work for even values of N. - - 2007-01-24 John W. Eaton - - * miscellaneous/news.m: New file. - - 2007-01-23 Luis F. Ortiz - - * strings/strncmpi.m: Use strncmp instead of calling strtrunc on args. - - * strings/strncmp.m: Delete (we now have a built-in version). - - 2007-01-22 Bob Weigel - - * testfun/test.m: Check for all files in path, use first found. - - 2007-01-22 David Bateman - - * polynomial/spline.m: Make DG a column instead of a row vector. - - 2007-01-18 Sᅵren Hauberg - - * pkg/pkg.m (copy_files): Call write_INDEX with correct target - file name. - - * image/ind2rgb.m: Better input checking. Return 3-d array if - nargout is 1. Handle colormaps that have too few colors. - - * pkg/pkg.m (create_pkgadddel): Call fullfile with nm, not "nm". - (configure_make): Use fullfile instead of concatenating with "/". - - 2007-01-10 Baylis Shanks - - * set/ismember.m: Handle N-d arrays. - - 2007-01-10 David Bateman - - * elfun/acosd.m, elfun/acotd.m, elfun/acscd.m, elfun/asecd.m, - elfun/asind.m, elfun/atand.m, elfun/cosd.m, elfun/cotd.m, - elfun/cscd.m, elfun/secd.m, elfun/sind.m, elfun/tand.m: - New files. - - 2007-01-09 Sᅵren Hauberg - - * pkg/pkg.m: Allow filenames to contain glob patterns. - - 2007-01-08 Sᅵren Hauberg - - * pkg/pkg.m: Use copyfile instead of calling system. Use fullfile - instead of concatenating with "/". Use mlock to ensure that - persistent variables are not clobbered if user types clear all. - - 2007-01-08 John W. Eaton - - * miscellaneous/copyfile.m, miscellaneous/movefile.m: - Improve handling of file names containing globbing characters. - From Sᅵren Hauberg . - - 2007-01-05 John W. Eaton - - * optimization/optimset.m, optimization/__fsolve_defopts__.m: - New files. - - 2006-12-30 John W. Eaton - - * sparse/spfun.m: Check for "function_handle" not "function handle". - * plot/fplot.m: Likewise. Use isa instead of strcmp + class. - - 2006-12-27 Sᅵren Hauberg - - * image/imshow.m: Strip NaNs from image. - - 2006-12-08 David Bateman - - * sparse/normest.m: New file. - - 2006-12-06 Michael Goffioul - - * miscellaneous/copyfile.m, miscellaneous/movefile.m: - Work on Windows systems without cp or mv. - - * startup/inputrc: Include sequences for Windows. - - 2006-12-06 Sᅵren Hauberg - - * pkg/pkg.m (unload_packages): New function. - (pkg): Handle unload action. - - * __errplot__.m: Add missing semicolon. - - 2006-11-30 John W. Eaton - - * miscellaneous/mexext.m: New file. - - 2006-11-29 David Bateman - - * pkg/pkg.m: Add local_list and global_list options that allow the - location of package lists to be probed and set. - - 2006-11-17 John W. Eaton - - * plot/__render_plot1__.m: Reverse y axis for images. - - * plot/__render_plot__.m: New args, terminal and output. - * plot/print.m: Don't set output and term here. Instead, call - __render_plot__ with terminal and output. - - 2006-11-16 John W. Eaton - - * plot/__render_plot1__.m: New file. - * plot/__render_plot__.m: Use it. Loop over multiplots. - * plot/print.m, plot/subplot.m: Don't send "set multiplot" to - gnuplot. Let __render_plot__ do that. - - 2006-11-16 Francesco Potorti` - - * plot/plot.m: Fix doc string. - - 2006-11-16 John W. Eaton - - * plot/__render_plot__.m: Check for mix of 2-d and 3-d plots - before sending anything to the plotter. - - 2006-11-15 John W. Eaton - - * image/__img_gnuplot__.m: Store more info in global plot - structures and use __render_plot__ to build plot command to - display image. - - * plot/__plt3__.m: New arg, parametric. Change all callers. - - * plot/__plot_globals__.m (__plot_line_offset__, __plot_command__, - __plot_command_sep__): Delete. - (__plot_data_type__, __plot_data_parametric__, - __plot_image_colormap__, __plot_image_dims__, __plot_fmtstr__, - __plot_usingstr__, __plot_withstr__): New variables. - * plot/__init_plot_vars__.m: Initialize them. - - * plot/__init_plot_vars__.m, plot/__setup_plot__.m: - Don't handle sep or cmd. - - * plot/__render_plot__.m: New function. - * plot/__plt__.m, plot/__plt3__.m, plot/__errplot__.m: - Store more info in global plot structures and use __render_plot__ - to build plot command. - * plot/replot.m: Simply call __render_plot__. - - * plot/contour.m, plot/mesh.m, plot/plot3.m: - Set __plot_data_parametric__ here. - - 2006-11-14 John W. Eaton - - * plot/bottom_title.m, plot/top_title.m: Delete. - - * image/image_viewer.m: Set default values here. - * image/image.m: Not here. - - * image/image_viewer.m: Always return old values. Check arguments. - * image/__img_gnuplot__.m: Rename from __img__m. - - 2006-11-14 Sᅵren Hauberg - - * image/image_viewer.m: New function. - * image/__img_via_file__.m: New function. - * image/image.m: Use image_viewer to determine which program to - use for image viewing. - * image/__img__.m: Silently accept more than 3 args. - - 2006-11-14 John W. Eaton - - * plot/__do_legend__.m, plot/__errplot__.m, - plot/__init_plot_vars__.m, plot/__plot_globals__.m, - plot/__plt3__.m, plot/__plt__.m, plot/__setup_plot__.m, - plot/legend.m, plot/mplot.m, plot/multiplot.m, plot/oneplot.m, - plot/replot.m, plot/subplot.m, plot/subwindow.m: - Use __plot_globals__ for multiplot variables. Keep track of - multiplot info for each figure. Eliminate __multiplot_xscale__. - - 2006-11-13 John W. Eaton - - * plot/mesh.m: Use proper dimensions for y in call to repmat. - - * miscellaneous/substruct.m: New function. - - * testfun/assert.m: Force orientation to match when comparing - struct elements. - - * general/__isequal__.m: Avoid assignment of comma-separated lists - when comparing structs. - - 2006-11-13 Sᅵren Hauberg - - * general/bicubic.m, general/cart2pol.m, general/cart2sph.m, - plot/contour.m, linear-algebra/cross.m, general/cumtrapz.m, - linear-algebra/dot.m, image/imshow.m, general/interp2.m, - general/mod.m, plot/plot3.m, plot/__plr2__.m, plot/__plr__.m, - general/pol2cart.m, general/polyarea.m, polynomial/polyfit.m, - general/rem.m, image/rgb2ind.m, general/sph2cart.m, - general/trapz.m, miscellaneous/xor.m: Use size_equal. - - 2006-11-13 John W. Eaton - - * plot/mesh.m: Use size_equal to compare dimensions. - - 2006-11-13 Sᅵren Hauberg - - * plot/mesh.m: Simplify. Set hidden3d for the plot. - - 2006-11-11 Sᅵren Hauberg - - * miscellaneous/copyfile.m: Fix docs to match function. - - 2006-11-08 John W. Eaton - - * plot/legend.m: New function, adapted from Octave Forge. - - * plot/__do_legend__.m: New function. - * plot/__errplot__.m, plot/__plt3__.m, plot/__plt__.m, - plot/replot.m: Call it before plotting. - - * plot/plot3.m, plot/mesh.m, plot/contour.m: Don't send "set - noparametric" to gnuplot.. - - * plot/__plotopt__.m, plot/__pltopt1__.m, plot/__plt1__.m, - plot/__plt2__.m, plot/__plt2mm__.m, plot/__plt2mv__.m, - plot/__plt2ss__.m, plot/__plt2vm__.m, plot/__plt2vv__.m: Accept - and return key title separate from line format. Accept format and - key as cellstr. Always return data as cell array. Return format - and key title as cellstr. - * plot/__errplot__.m, plot/__plt3__.m, plot/__plt__.m: - Handle line format and key titles separately. - * plot/__plt3__.m, plot/__plt__.m: Handle data as cell array only. - - * plot/__plot_globals__.m (__plot_line_offset__, - __plot_key_labels__, __plot_key_properties__): New global - variables. Initialize them. - * plot/__init_plot_vars__.m (__plot_line_offset__, - __plot_key_labels__, __plot_key_properties__): Initialize. - * plot/__errplot__.m, plot/__plt3__.m, plot/__plt__.m - (__plot_line_offset__, __plot_key_labels__, - __plot_key_properties__): Store information about plot key titles. - - * plot/__errplot__.m, plot/__init_plot_vars__.m, plot/__plt3__.m, - plot/__plt__.m: Use cf, mxi, and myi as shorthand for - __current_figure__, __multiplot_xi__, and __multiplot_yi__, - respectively. - - * plot/__errcomm__.m: Allow fmt to be cellstr. - - * strings/strcat.m: Disable Octave:empty-list-elements warning - whle concatenating args. - - 2006-11-07 John W. Eaton - - * startup/main-rcfile: Conditionally set PAGER_FLAGS. - - 2006-11-06 Sᅵren Hauberg - - * pkg/pkg.m (extract_pkg): No need to pass "dotexceptnewline" - option to regexp. - - * image/__img__.m: Send "set size ratio -1" before plotting. - - 2006-11-03 Bill Denney - - * strings/index.m: New arg, direction. Simplify and speed up. - * strings/rindex.m: Implement using index (..., "last"); - - * blanks.m, strcat.m: Simplify. Add tests. - - 2006-11-01 Bill Denney - - * general/__isequal__.m: Test size and class more consistently. - - 2006-10-27 John W. Eaton - - * miscellaneous/ls_command.m: Use /D instead of /w. - From Michael Goffioul . - - * miscellaneous/ls.m, miscellaneous/ls_command.m: New files. - * miscellaneous/dir.m: Mark as a command. - - 2006-10-27 William Poetra Yoga Hadisoeseno - - * miscellaneous/unpack.m: Fix missing comma in strcat call. - - 2006-10-25 John W. Eaton - - * image/image.m: Set x = y = [] when nargin == 0; - - 2006-10-25 Quentin Spencer - - * image/image.m: Call __img__ if gnuplot version is > 4.0. - * image/__img__.m: New file, originally from - Daniel J Sebald . - - 2006-10-25 John W. Eaton - - * plot/__gnuplot_version__.m: New function, originally from - Daniel J Sebald by way of - Quentin Spencer . - - 2006-10-25 Sᅵren Hauberg - - * plot/__pltopt__.m: Update symbol marker id numbers for gnuplot 4. - - 2006-10-24 Bill Denney - - * miscellaneous/unpack.m, miscellaneous/bunzip2.m, - miscellaneous/gunzip.m: New files. - * miscellaneous/untar.m, miscellaneous/unzip.m: - Call unpack to do the real work. - - 2006-10-24 John W. Eaton - - * plot/plot3.m: If we have a format string, then also pass using - string to __plt3__. - - * plot/sombrero.m: Don't return anything if nargout == 0. - - * plot/__plt3__.m: Create using clause if none is supplied. - * plot/mesh.m: Always pass empty using string to __plt3__. - - 2006-10-20 Bill Denney - - * movefile.m, copyfile.m: Handle cellstr lists of files. - Quote filenames in shell commands. - - 2006-10-17 David Bateman - - * pkg/pkg.m (uninstall): Allow the uninstall to proceed even if - the package directory is missing. - - 2006-10-13 John W. Eaton - - * plot/box.m: New function. - - 2006-10-13 Etienne Grossmann - - * general/ind2sub.m, general/sub2ind.m: Handle empty indices. - - 2006-10-12 Quentin Spencer - - * plot/sombrero.m: Only plot if nargout == 0. Otherwise, return data. - - 2006-10-10 John W. Eaton - - * miscellaneous/copyfile.m, miscellaneous/movefile.m: New functions. - - 2006-10-10 Bill Denney - - * audio/lin2mu.m, audio/loadaudio.m, audio/mu2lin.m, - audio/playaudio.m, audio/record.m, audio/saveaudio.m, - audio/setaudio.m, audio/wavread.m, audio/wavwrite.m, - control/base/__bodquist__.m, control/base/__freqresp__.m, - control/base/are.m, control/base/bode.m, control/base/ctrb.m, - control/base/damp.m, control/base/dare.m, control/base/dcgain.m, - control/base/dre.m, control/base/impulse.m, control/base/lqg.m, - control/base/lsim.m, control/base/lyap.m, control/base/nichols.m, - control/base/nyquist.m, control/base/obsv.m, control/base/pzmap.m, - control/base/rlocus.m, control/base/step.m, control/base/tzero.m, - control/hinf/h2norm.m, control/hinf/h2syn.m, - control/hinf/hinfnorm.m, control/hinf/hinfsyn.m, - control/hinf/is_dgkf.m, control/hinf/wgt1o.m, - control/obsolete/dezero.m, control/system/__sysdefioname__.m, - control/system/buildssic.m, control/system/c2d.m, - control/system/cellidx.m, control/system/d2c.m, - control/system/dmr2d.m, control/system/fir2sys.m, - control/system/is_abcd.m, control/system/is_controllable.m, - control/system/is_detectable.m, control/system/is_digital.m, - control/system/is_observable.m, control/system/is_siso.m, - control/system/is_stabilizable.m, control/system/is_stable.m, - control/system/jet707.m, control/system/listidx.m, - control/system/ord2.m, control/system/parallel.m, - control/system/ss.m, control/system/ss2zp.m, - control/system/starp.m, control/system/sys2ss.m, - control/system/sys2tf.m, control/system/sys2zp.m, - control/system/sysadd.m, control/system/sysappend.m, - control/system/syschtsam.m, control/system/sysconnect.m, - control/system/syscont.m, control/system/sysdimensions.m, - control/system/sysdisc.m, control/system/sysdup.m, - control/system/sysgetsignals.m, control/system/sysgettsam.m, - control/system/sysgroup.m, control/system/sysidx.m, - control/system/sysmin.m, control/system/sysmult.m, - control/system/sysout.m, control/system/sysprune.m, - control/system/sysscale.m, control/system/syssetsignals.m, - control/system/syssub.m, control/system/sysupdate.m, - control/system/tf.m, control/system/tfout.m, - control/system/ugain.m, control/system/zp.m, - control/system/zpout.m, control/util/__outlist__.m, - control/util/__zgpbal__.m, control/util/prompt.m, - control/util/sortcom.m, control/util/strappend.m, - deprecated/com2str.m, elfun/acot.m, elfun/acoth.m, elfun/acsc.m, - elfun/acsch.m, elfun/asec.m, elfun/asech.m, elfun/cot.m, - elfun/coth.m, elfun/csc.m, elfun/csch.m, elfun/lcm.m, elfun/sec.m, - elfun/sech.m, finance/fv.m, finance/fvl.m, finance/irr.m, - finance/nper.m, finance/npv.m, finance/pmt.m, finance/pv.m, - finance/pvl.m, finance/rate.m, finance/vol.m, - general/__isequal__.m, general/bitcmp.m, general/bitget.m, - general/bitset.m, general/blkdiag.m, general/cart2sph.m, - general/cell2mat.m, general/circshift.m, general/cplxpair.m, - general/cumtrapz.m, general/deal.m, general/diff.m, - general/flipdim.m, general/fliplr.m, general/flipud.m, - general/ind2sub.m, general/int2str.m, - general/is_duplicate_entry.m, general/isdefinite.m, - general/isequal.m, general/isequalwithequalnans.m, - general/isscalar.m, general/issquare.m, general/issymmetric.m, - general/isvector.m, general/logical.m, general/logspace.m, - general/mod.m, general/nargchk.m, general/nextpow2.m, - general/perror.m, general/postpad.m, general/prepad.m, - general/randperm.m, general/rem.m, general/repmat.m, - general/rot90.m, general/rotdim.m, general/shift.m, - general/shiftdim.m, general/sph2cart.m, general/strerror.m, - general/sub2ind.m, general/trapz.m, general/tril.m, - general/triu.m, image/gray.m, image/gray2ind.m, image/hsv2rgb.m, - image/image.m, image/imagesc.m, image/ind2gray.m, image/ind2rgb.m, - image/loadimage.m, image/ntsc2rgb.m, image/ocean.m, - image/rgb2hsv.m, image/rgb2ntsc.m, image/saveimage.m, io/beep.m, - linear-algebra/commutation_matrix.m, linear-algebra/cond.m, - linear-algebra/cross.m, linear-algebra/dmult.m, - linear-algebra/dot.m, linear-algebra/duplication_matrix.m, - linear-algebra/krylov.m, linear-algebra/krylovb.m, - linear-algebra/logm.m, linear-algebra/norm.m, - linear-algebra/null.m, linear-algebra/orth.m, - linear-algebra/qzhess.m, linear-algebra/rank.m, - linear-algebra/trace.m, linear-algebra/vec.m, - linear-algebra/vech.m, miscellaneous/bincoeff.m, - miscellaneous/delete.m, miscellaneous/dir.m, miscellaneous/dos.m, - miscellaneous/fileattrib.m, miscellaneous/fileparts.m, - miscellaneous/flops.m, miscellaneous/fullfile.m, - miscellaneous/ispc.m, miscellaneous/isunix.m, - miscellaneous/menu.m, miscellaneous/not.m, miscellaneous/popen2.m, - miscellaneous/single.m, miscellaneous/unix.m, miscellaneous/ver.m, - miscellaneous/xor.m, optimization/glpk.m, optimization/glpkmex.m, - optimization/qp.m, optimization/sqp.m, plot/__axis_label__.m, - plot/__errplot__.m, plot/__plr1__.m, plot/__plr2__.m, - plot/__plr__.m, plot/__plt1__.m, plot/__plt2__.m, - plot/__plt2mm__.m, plot/__plt2mv__.m, plot/__plt2ss__.m, - plot/__plt2vm__.m, plot/__plt2vv__.m, plot/__pltopt1__.m, - plot/__pltopt__.m, plot/bar.m, plot/bottom_title.m, plot/close.m, - plot/contour.m, plot/errorbar.m, plot/figure.m, plot/fplot.m, - plot/grid.m, plot/hist.m, plot/hold.m, plot/ishold.m, - plot/loglogerr.m, plot/mesh.m, plot/meshdom.m, plot/meshgrid.m, - plot/multiplot.m, plot/orient.m, plot/polar.m, plot/replot.m, - plot/semilogxerr.m, plot/semilogyerr.m, plot/sombrero.m, - plot/stairs.m, plot/subplot.m, plot/subwindow.m, plot/title.m, - plot/top_title.m, polynomial/compan.m, polynomial/conv.m, - polynomial/deconv.m, polynomial/mkpp.m, polynomial/poly.m, - polynomial/polyder.m, polynomial/polyderiv.m, - polynomial/polyfit.m, polynomial/polygcd.m, - polynomial/polyinteg.m, polynomial/polyout.m, - polynomial/polyreduce.m, polynomial/polyval.m, - polynomial/polyvalm.m, polynomial/ppval.m, polynomial/residue.m, - polynomial/roots.m, polynomial/unmkpp.m, quaternion/quaternion.m, - set/complement.m, set/create_set.m, set/intersect.m, - set/ismember.m, set/setdiff.m, set/setxor.m, set/union.m, - set/unique.m, signal/arch_fit.m, signal/arch_rnd.m, - signal/arma_rnd.m, signal/autocor.m, signal/autoreg_matrix.m, - signal/bartlett.m, signal/blackman.m, signal/detrend.m, - signal/diffpara.m, signal/durbinlevinson.m, signal/fftconv.m, - signal/fftfilt.m, signal/fftshift.m, signal/filter2.m, - signal/freqz.m, signal/hamming.m, signal/hanning.m, - signal/hurst.m, signal/ifftshift.m, signal/sinetone.m, - signal/sinewave.m, signal/spencer.m, signal/stft.m, - signal/synthesis.m, signal/unwrap.m, sparse/gplot.m, - sparse/spfun.m, sparse/sprand.m, sparse/sprandn.m, - sparse/sprandsym.m, sparse/spstats.m, specfun/beta.m, - specfun/betai.m, specfun/betaln.m, specfun/erfinv.m, - specfun/gammai.m, specfun/log2.m, specfun/pow2.m, - special-matrix/hankel.m, special-matrix/hilb.m, - special-matrix/invhilb.m, special-matrix/sylvester_matrix.m, - special-matrix/toeplitz.m, special-matrix/vander.m, - statistics/base/center.m, statistics/base/cloglog.m, - statistics/base/cor.m, statistics/base/corrcoef.m, - statistics/base/cov.m, statistics/base/cut.m, - statistics/base/gls.m, statistics/base/iqr.m, - statistics/base/kendall.m, statistics/base/kurtosis.m, - statistics/base/logit.m, statistics/base/mahalanobis.m, - statistics/base/mean.m, statistics/base/meansq.m, - statistics/base/median.m, statistics/base/moment.m, - statistics/base/ols.m, statistics/base/ppplot.m, - statistics/base/probit.m, statistics/base/qqplot.m, - statistics/base/range.m, statistics/base/ranks.m, - statistics/base/run_count.m, statistics/base/skewness.m, - statistics/base/spearman.m, statistics/base/statistics.m, - statistics/base/std.m, statistics/base/studentize.m, - statistics/base/table.m, statistics/base/values.m, - statistics/base/var.m, statistics/distributions/betacdf.m, - statistics/distributions/betainv.m, - statistics/distributions/betapdf.m, - statistics/distributions/betarnd.m, - statistics/distributions/binocdf.m, - statistics/distributions/binoinv.m, - statistics/distributions/binopdf.m, - statistics/distributions/binornd.m, - statistics/distributions/cauchy_cdf.m, - statistics/distributions/cauchy_inv.m, - statistics/distributions/cauchy_pdf.m, - statistics/distributions/cauchy_rnd.m, - statistics/distributions/chi2cdf.m, - statistics/distributions/chi2inv.m, - statistics/distributions/chi2pdf.m, - statistics/distributions/chi2rnd.m, - statistics/distributions/discrete_cdf.m, - statistics/distributions/discrete_inv.m, - statistics/distributions/discrete_pdf.m, - statistics/distributions/discrete_rnd.m, - statistics/distributions/empirical_rnd.m, - statistics/distributions/expcdf.m, - statistics/distributions/expinv.m, - statistics/distributions/exppdf.m, - statistics/distributions/exprnd.m, - statistics/distributions/fcdf.m, statistics/distributions/finv.m, - statistics/distributions/fpdf.m, statistics/distributions/frnd.m, - statistics/distributions/gamcdf.m, - statistics/distributions/gaminv.m, - statistics/distributions/gampdf.m, - statistics/distributions/gamrnd.m, - statistics/distributions/geocdf.m, - statistics/distributions/geoinv.m, - statistics/distributions/geopdf.m, - statistics/distributions/geornd.m, - statistics/distributions/hygecdf.m, - statistics/distributions/hygeinv.m, - statistics/distributions/hygepdf.m, - statistics/distributions/hygernd.m, - statistics/distributions/kolmogorov_smirnov_cdf.m, - statistics/distributions/laplace_cdf.m, - statistics/distributions/laplace_inv.m, - statistics/distributions/laplace_pdf.m, - statistics/distributions/laplace_rnd.m, - statistics/distributions/logistic_cdf.m, - statistics/distributions/logistic_inv.m, - statistics/distributions/logistic_pdf.m, - statistics/distributions/logistic_rnd.m, - statistics/distributions/logncdf.m, - statistics/distributions/logninv.m, - statistics/distributions/lognpdf.m, - statistics/distributions/lognrnd.m, - statistics/distributions/normcdf.m, - statistics/distributions/norminv.m, - statistics/distributions/normpdf.m, - statistics/distributions/normrnd.m, - statistics/distributions/pascal_cdf.m, - statistics/distributions/pascal_inv.m, - statistics/distributions/pascal_pdf.m, - statistics/distributions/pascal_rnd.m, - statistics/distributions/poisscdf.m, - statistics/distributions/poissinv.m, - statistics/distributions/poisspdf.m, - statistics/distributions/poissrnd.m, - statistics/distributions/stdnormal_cdf.m, - statistics/distributions/stdnormal_inv.m, - statistics/distributions/stdnormal_pdf.m, - statistics/distributions/stdnormal_rnd.m, - statistics/distributions/tcdf.m, statistics/distributions/tinv.m, - statistics/distributions/tpdf.m, statistics/distributions/trnd.m, - statistics/distributions/unifcdf.m, - statistics/distributions/unifinv.m, - statistics/distributions/unifpdf.m, - statistics/distributions/unifrnd.m, - statistics/distributions/wblcdf.m, - statistics/distributions/wblinv.m, - statistics/distributions/wblpdf.m, - statistics/distributions/wblrnd.m, - statistics/distributions/wienrnd.m, statistics/tests/anova.m, - statistics/tests/bartlett_test.m, - statistics/tests/chisquare_test_homogeneity.m, - statistics/tests/chisquare_test_independence.m, - statistics/tests/cor_test.m, statistics/tests/f_test_regression.m, - statistics/tests/hotelling_test.m, - statistics/tests/hotelling_test_2.m, - statistics/tests/kolmogorov_smirnov_test.m, - statistics/tests/kolmogorov_smirnov_test_2.m, - statistics/tests/kruskal_wallis_test.m, statistics/tests/manova.m, - statistics/tests/mcnemar_test.m, statistics/tests/prop_test_2.m, - statistics/tests/run_test.m, statistics/tests/sign_test.m, - statistics/tests/t_test.m, statistics/tests/t_test_2.m, - statistics/tests/t_test_regression.m, statistics/tests/u_test.m, - statistics/tests/var_test.m, statistics/tests/welch_test.m, - statistics/tests/wilcoxon_test.m, statistics/tests/z_test.m, - statistics/tests/z_test_2.m, strings/base2dec.m, strings/blanks.m, - strings/deblank.m, strings/dec2base.m, strings/dec2bin.m, - strings/dec2hex.m, strings/findstr.m, strings/hex2dec.m, - strings/index.m, strings/isletter.m, strings/lower.m, - strings/rindex.m, strings/split.m, strings/str2mat.m, - strings/str2num.m, strings/strcat.m, strings/strcmpi.m, - strings/strfind.m, strings/strjust.m, strings/strmatch.m, - strings/strncmp.m, strings/strncmpi.m, strings/strrep.m, - strings/strtrunc.m, strings/strvcat.m, strings/substr.m, - strings/upper.m, testfun/assert.m, testfun/demo.m, - testfun/example.m, testfun/fail.m, testfun/speed.m, - testfun/test.m, time/asctime.m, time/calendar.m, time/ctime.m, - time/datenum.m, time/datestr.m, time/datevec.m, time/eomday.m, - time/etime.m, time/is_leap_year.m: - Use print_usage instead of usage. - - 2006-10-09 David Bateman - - * time/datevec.m: Add additional compatible default parsing strings. - - 2006-10-09 Bill Denney - - * pkg/pkg.m: Remove trailing "\n" from error messages. - Remove compare_versions subfunction. - - * miscellaneous/compare_versions.m: New function to compare - version numbers as strings with any boolean operators. - - * miscellaneous/untar.m: Check more rigorously to see if the tar - file exists. - - 2006-10-04 John W. Eaton - - * pkg/pkg.m: Use fullfile to concatenate directory and file names. - - 2006-10-04 Sᅵren Hauberg - - * pkg/pkg.m: Update docs. Handle prefix option. - Handle dependencies for load option. - - 2006-10-04 John W. Eaton - - * deprecated/clearplot.m, deprecated/clg.m: New functions. - - * plot/clg.m: Delete. - * plot/__init_plot_vars__.m: New function. - * plot/__setup_plot__.m: Use __init_plot_vars__. - - 2006-10-03 Sᅵren Hauberg - - * pkg/pkg.m: Avoid calling addpath with no args. - - 2006-10-03 Bill Denney - - * audio/loadaudio.m, control/base/nyquist.m, - control/system/__zp2ssg2__.m, linear-algebra/cross.m, - linear-algebra/krylov.m, statistics/base/center.m, - statistics/base/median.m, statistics/base/std.m, - statistics/base/var.m, testfun/test.m: Use the new find syntax to - find first or last element matching a condition. - - 2006-10-02 Bill Denney - - * strings/deblank.m, strings/upper.m, strings/lower.m, - general/__isequal__.m: Minimize looping using cellfun. - - 2006-10-02 David Bateman - - * pkg/pkg.m (copy_files): always create installation directory. - - 2006-10-02 Thomas Weber - - * miscellaneous/doc.m: Swap file and directory args to info. - - 2006-10-01 Arno Onken - - * statistics/distributions/exprnd.m: Fix typo. - - 2006-09-30 Benjamin Lindner - - * polynomial/ppval.m: Use .' instead of '. - * polynomial/spline.m: Likewise. New tests. - - 2006-09-26 David Bateman - - * __plt3__.m: Using global variables __plot_data__, - __plot_data_offset__ and __plot_command__ to store plots and - correctly handle multiplots, and hold state. Only accept a single - data parameter plus, using, format and with strings. Remove - setting of gnuplot parameters. - * __make_using_clause__.m: New function extracted from __plt__.m. - * __setup_plot__.m: Convert to a function and pass the plotting - command to use. - * __plt__.m: Change call to __setup_plot__ and __make_using_clause__. - * contour.m: Use unwind protect on the parametric state of plot - and __plt3__ instead of calling __gnuplot_splot__ directly. - * mesh.m: ditto. - * plot3.m: Error checking, setting of parametric state and - formation of matrix to plot moved from old __plt3__. - - 2006-09-22 Michael Creel - - * deprecated/chisquare_pdf.m: Typo in documentation. - - 2006-09-22 Sᅵren Hauberg - - * signal/filter2.m: Correct texinfo doc. - - 2006-09-22 David Bateman - - * miscellaneous/parseparams.m: Correct texinfo doc. - - 2006-09-15 David Bateman - - * pkg/pkg.m (prepare_installation): Don't create package - installation directory here. - (copy_files): Create it here instead, to avoid issues with - upgrades. Also install the COPYING file in packinfo. - - 2006-09-13 John W. Eaton - - * general/blkdiag.m: Adjust to new cellfun rules. - - 2006-08-30 David Bateman - - * pkg/pkg.m (install): Disallow bundles of packages. More verbose - error message for archive name not matching package name. - (installed_packages): Size header of printed results to - arguments. Sort the list of installed packages before printing - them. - - 2006-09-11 Paul Kienzle - - * signal/freqz.m: Update tests. - - 2006-09-11 Ken Kouno - - * signal/freqz.m: Corretly postpad arrays. - Don't call fliplr on a column vector. - - 2006-09-11 Luis F. Ortiz - - * general/shiftdim.m: Use permute instead of reshape. - - 2006-09-05 Alexander Barth - - * miscellaneous/parseparams.m: New function. - - 2006-09-05 Rafael Laboissiere - - * miscellaneous/doc.m: Swap order of --file and --directory - options for info program invocation. - - 2006-08-30 David Bateman - - * pkg/pkg.m (create_pkgadddel): Resolve variable name-clash from - previous change. - - 2006-08-26 David Bateman - - * pkg/pkg.m (install, uninstall, installed_packages): Allow for - absence of trailing "/" in OCTAVE_HOME. - - 2006-08-25 Alexander Barth - - * time/datenum.m: Allow arg to be character string. - - 2006-08-25 David Bateman - - * pkg/pkg.m (install): Verify that package name correponds to the - archive name. Treat both PKG_ADD and PKG_DEL and remove them if - they are empty. If package directory is empty, remove it to fail - gracefully for system specific packages. - (extract_pkgadd, create_pkgadd): delete. - (extract_pkg, create_pkg): Generalized versions of deleted functions - (copy_files): Install both bin/ and doc/ directories, adding the - bin/ to the EXEC_PATH when the package is loaded. - - 2006-08-24 John W. Eaton - - * image/saveimage.m: Use logical indexing instead of - indices computed by calling find on the logical index. - - 2006-08-24 Sᅵren Hauberg - - * miscellaneous/bincoeff.m, specfun/factorial.m: - Use logical indexing instead of indices computed by calling find - on the logical index. - - * linear-algebra/krylov.m: Delete unused local var nzidx. - - 2006-08-23 Quentin Spencer - - * control/system/tf2zp.m: Simplify gain calculation. - - 2006-08-23 John W. Eaton - - * plot/__plt__.m: Insert using clauses for all plots. - - 2006-08-23 A S Hodel - - * control/system/sysscale.m: Call tf and zp with correct number of - args. - - 2006-08-22 David Bateman - - * pkg/pkg.m (extract_pkgadd, create_pkgadd): New functions to - Search inst/*.m and src/*.m files in the package for - PKG_ADD directives and append user supplied PKG_ADD. - (pkg): Call create_pkgadd after copying files. - - 2006-08-21 Sᅵren Hauberg - - * pkg/pkg.m: Handle multiple packages in a single file. - Insert directory separator between OCTAVE_HOME and rest of package - installation directory. - - 2006-08-21 John W. Eaton - - * general/num2str.m: Early return if arg is empty. - From Thomas Treichl . - - 2006-08-21 David Bateman - - * strings/mat2str.m: Compute NC before using. - - 2006-08-17 John W. Eaton - - * audio/wavread.m: Fix calculation of sample count. - - 2006-08-14 Sᅵren Hauberg - - * image/imshow.m: New Matlab-compatible version. - - 2006-08-15 John W. Eaton - - * deprecated/is_global.m: Delete. - - 2006-08-14 John W. Eaton - - * pkg/Makefile.in (script_sub_dir): Change from plot to pkg. - - 2006-08-14 Dmitri A. Sergatskov - - * sparse/spy.m, control/base/bode.m, control/base/__stepimp__.m, - signal/freqz_plot.m: Adapt to new automatic_replot definition. - - 2006-08-14 Sᅵren Hauberg - - * pkg/pkg.m: Don't pass function name to print_usage. - Use addpath and rmpath instead of manipulating LOADPATH. - Handle changes to system function. - (rm_rf): New subfunction. Use it to avoid confirmation dialog for - recursive directory removal. - - * strings/bin2dec.m: Ignore spaces in input for compatibility. - - * colormap.m: Change global variable to persistent. - - * rgb2ind.m: Handle single 3-d array as rgb image. - - 2006-08-14 John W. Eaton - - * strings/str2double.m: Fix missing semicolon. - - 2006-07-27 Jim Peterson - - * plot/plot3.m: Accept one complex or one real and one complex - argument and plot real and imaginary components for y and z. - - 2006-07-27 John W. Eaton - - * testfun/test.m: Call fflush after each block of calls to - fprintf, fputs, or fdisp. - - 2006-07-26 John W. Eaton - - * miscellaneous/mex.m: New function. - - 2006-07-22 John W. Eaton - - * special-matrix/hadamard.m: Coerce bool matrix to double. - - 2006-07-07 John W. Eaton - - * miscellaneous/orderfields.m: New file. - - 2006-06-30 John W. Eaton - - * time/datevec.m: Make another attempt to account for precision of - datenum format. - - 2006-06-29 John W. Eaton - - * miscellaneous/dump_prefs.m: Remove obsolete symbols from the list. - Use feval instead of "type -q" to get values now that all the - symbols are functions. - - 2006-06-16 John W. Eaton - - * time/datevec.m: Avoid computing log of non-positive values. - - 2006-06-14 John W. Eaton - - * time/datevec.m: Attempt to account for precision of datenum format. - - 2006-06-01 Quentin H. Spencer - - * audio/wavread.m: Fix file range error and add read support for - 24-bit WAV files. - - 2006-06-01 David Bateman - - * general/interpft.m, general/quadl.m, general/polyarea.m, - general/interp1.m, general/gradient.m, general/interp2.m, - general/bicubic.m, miscellaneous/inputname.m, plot/__plt3__.m, - plot/ndgrid.m, plot/plot3.m, polynomial/pchip.m, sparse/pcg.m, - sparse/pcr.m, strings/mat2str.m: New files from Octave Forge. - - 2006-05-31 Bill Denney - - * miscellaneous/fileparts.m, miscellaneous/fullfile.m: Add seealso. - * miscellaneous/texas_lotto.m: Fix warning message. - - 2006-05-26 John W. Eaton - - * miscellaneous/doc.m: Also handle nargin == 0. - - 2006-05-23 John W. Eaton - - * plot/mesh.m: Use __gnupot_raw__ except where __gnuplot_set__ is - really needed. - - 2006-05-22 John W. Eaton - - * general/lookup.m: New file from Octave Forge. - - 2006-05-22 David Bateman - - * general/nthroot.m, linear-algebra/rref.m, specfun/isprime.m, - specfun/primes.m, specfun/factor.m, specfun/nchoosek.m, - specfun/legendre.m, specfun/perms.m, special-matrix/rosser.m, - special-matrix/wilkinson.m, special-matrix/pascal.m, - special-matrix/magic.m, special-matrix/hadamard.m, - strings/strtok.m: New files from Octave Forge. - - 2006-05-19 David Bateman - - * polynomial/unmkpp.m, polynomial/mkpp.m, polynomial/spline.m, - polynomial/ppval.m, set/setxor.m: New files from Octave Forge. - - 2006-05-17 John W. Eaton - - * set/intersection.m: Delete - * deprecated/intersection.m: New file. - - 2006-05-17 David Bateman - - * general/cplxpair.m, general/trapz.m, general/cumtrapz.m, - general/isdir.m, miscellaneous/dos.m, miscellaneous/getfield.m, - miscellaneous/setfield.m, plot/fplot.m, set/intersect.m, - signal/ifftshift.m, signal/filter2.m, specfun/betaln.m, - specfun/factorial.m, strings/strvcat.m: New files from Octave - Forge. - - 2006-05-11 John W. Eaton - - * path/path.m: Delete (now a built-in function). - - * pkg/Makefile.in: New file. - * configure.in (AC_CONFIG_FILES): Add pkg/Makefile to the list. - * Makefile.in (SUBDIRS): Add pkg to the list. - - 2006-05-10 John W. Eaton - - * tar.m, untar.m, unzip.m: Adapt to Octave coding style. - * tar.m, untar.m: Only tar; don't compress or uncompress. - - 2006-05-10 Sᅵren Hauberg - - * tar.m, untar.m, unzip.m: New files. - - 2006-05-10 John W. Eaton - - * path/addpath.m, path/rmpath.m: Improve compatibility. - * path/setpath.m: Delete. - - * pkg/pkg.m: New file. - - 2006-05-09 Keith Goodman - - * plot/plot.m: Doc string fix. - - 2006-05-09 Paul Kienzle - - * testfun/speeed.m: Use new interface to unique and assert. - Improve documentation. Approximate time complexity from log-log - plot. Return time complexity and raw times if requested. The - mean ratio is no longer returned. Provide complete control over - which n are computed. - - 2006-05-09 John W. Eaton - - * path/path.m: Move here from miscellaneous. - Adapt to new LOADPATH definition. - - 2006-05-03 David Bateman - - * path/rmpath.m, path/addpath.m, miscellaneous/path.m: Replace all - explicit uses of a path seperation character with pathsep(). - - 2006-05-03 Bob Weigel - - * set/setdiff.m: New arg, byrows. New tests. - - 2006-04-29 John W. Eaton - - * startup/main-rcfile: Disable some warnings. - - 2006-04-14 Bill Denney - - * strings/strcmpi.m: Return false instead of error if args are not - char or cellstr. - - 2006-04-10 John W. Eaton - - * miscellaneous/dir.m: Ensure that returned structure array is - Nx1, not 1xN. - - 2006-04-06 Olli Saarela - - * plot/hist.m: Ignore NaN in inputs. - - 2006-04-06 Keith Goodman - - * miscellaneous/mkoctfile.m: Doc string fix. - - 2006-04-05 John W. Eaton - - * plot/__plt2__.m: Return data = [] and fmtstr = "" if x1 and x2 - are both empty. - * plot/__plt__.m: Ignore empty data and format strings returned - from __plt1__ or __plt2__. - - 2006-04-04 Bob Weigel - - * set/unique.m: Properly handle single column input when - "rows" is specified. - - 2006-04-04 John W. Eaton - - * path/setpath.m: New file. - * path/savepath.m: Use setpath to set path instead of assigning - directly to LOADPATH. - - * path/Makefile.in, path/addpath.m, path/rmpath.m, path/savepath.m: - New files, adapted from Octave Forge by Keith Goodman - . - * path: New directory. - * Makefile.in (SUBDIRS): Add it to the list. - * configure.in (AC_CONFIG_FILES): Include path/Makefile here. - - 2006-04-02 David Bateman - - * general/tril.m, general.triu.m: - Use resize (resize (x, 0), nr, nc) rather than zeros (nr, nc) - to allow user types to work correctly. - * special-matrix/hankel.m, special-matrix/toeplitz.m: Ditto. - - 2006-04-03 David Bateman - - * plot/grid.m: Cache the state of the grid to allow toggling. - Accept keyword "minor" for minor grid. - - 2006-03-28 John W. Eaton - - * general/isscalar.m: Only require that all dimensions are 1 for - compatiblity. - - 2006-03-28 Bill Denney - - * general/isvector.m: Allow non-numeric objects to be vectors for - compatibility. - - 2006-03-28 Keith Goodman - - * plot/__errplot__.m: Doc string fix. - - * miscellaneous/doc.m: Mark as command. - - * general/isequal.m, general/__isequal__.m, general/cell2mat.m, - general/isequalwithequalnans.m, general/blkdiag.m, - strings/strfind.m, miscellaneous/doc.m: Update FSF address. - - 2006-03-27 Don Bindner - - * plot/meshgrid.m: If nargout == 3 and vectors are supplied, - return 3d matrices. - - 2006-03-27 Keith Goodman - - * time/toc.m: Don't print "Elapsed time..." if tic has not been set. - - 2006-03-22 John W. Eaton - - * plot/print.m: Don't replot after popping terminal setting. - - 2006-03-20 John W. Eaton - - * miscellaneous/mkoctfile.m: Use version-specific name of - mkoctfile. Use fullfile to construct file name. - - 2006-03-20 Keith Goodman - - * miscellaneous/mkoctfile.m: Make it possible to call mkoctfile - shell script from Octave prompt. - - 2006-03-17 John W. Eaton - - * deprecated/weibcdf.m, deprecated/weibinv.m, - deprecated/weibpdf.m, deprecated/weibrnd.m: New functions. - - * deprecated/weibull_cdf.m, deprecated/weibull_inv.m, - deprecated/weibull_pdf.m, deprecated/weibull_rnd.m: - Call new wbl functions to do the real work. - Swap args and provide default values as necessary to preserve - compatibility with old version of Octave. - - * statistics/distributions/wblcdf.m: Rename from weibcdf.m. - statistics/distributions/wblinv.m: Rename from weibinv.m. - statistics/distributions/wblpdf.m: Rename from weibpdf.m. - statistics/distributions/wblrnd.m: Rename from weibrnd.m. - Swap scale and shape args for compatibility. - - * deprecated/lognormal_cdf.m, deprecated/lognormal_inv.m, - deprecated/lognormal_pdf.m, deprecated/lognormal_rnd.m: - Preserve compatibility with old versions of Octave given new - definitions of logncdf, logninv, lognpdf, and lognrnd. - - * statistics/distributions/logncdf.m, - statistics/distributions/logninv.m, - statistics/distributions/lognpdf.m, - statistics/distributions/lognrnd.m: Compatibility fixes. - From Ben Barrowes - - * deprecated/hypergeometric_rnd.m: Update interface to match - current 2.1.x version. - - * deprecated/t_rnd.m: Call trnd, not t_rnd. - - * miscellaneous/dir.m: Use readdir instead of glob. - Special case for "." to avoid globbing. Use list_in_columns. - Eliminate unused variables len and finfo. - - 2006-03-16 Bill Denney - - * miscellaneous/dir.m: Improve compatibility. - - 2006-03-15 William Poetra Yoga Hadisoeseno - - * time/calendar.m, time/datestr.m, time/datevec.m, time/eomday.m, - time/now.m, time/weekday.m: New functions from Octave Forge. - - 2006-03-16 John W. Eaton - - * control/base/bode_bounds.m: Check for iip and iiz empty instead - of looking at sum of max dimensions. - - 2006-03-16 David Bateman - - * testfun/test.m: Clear last warning before warning test to avoid - issues with previously set warnings. - * build_sparse_test.sh: Tests for multiple RHS for rectanguar - sparse matrices. Force matrix type from spqr solution to be - singular to force QR solvers to be used for assert. - - 2006-03-16 William Poetra Yoga Hadisoeseno - - * strings/strfind.m: New file. - - 2006-03-16 John W. Eaton - - * general/rows.m, general/columns.m: Delete. - - 2006-03-15 William Poetra Yoga Hadisoeseno - - * strings/strcmpi.m: Simplify. - * strings/strncmpi.m: Import from octave-forge, simplify. - * strings/strtrunc.m: New file. - - * strings/lower.m, strings/upper.m: Handle cellstr arguments. - - 2006-03-15 John W. Eaton - - * miscellaneous/doc.m: New file. - From Sᅵren Hauberg . - - 2006-03-15 Keith Goodman - - * miscellaneous/mkoctfile.m: New file. - - 2006-03-15 John W. Eaton - - * polynomial/residue.m: Use & instead of && to generate arg for find. - - 2006-03-14 Keith Goodman - - * strings/bin2dec.m: Doc fix. - - 2006-03-10 Paul Kienzle - - * time/etime.m: Use datenum to support times spanning year boundaries. - * time/datenum.m: New function to compute day number from time. - - 2006-03-09 John W. Eaton - - * miscellaneous/unix.m, plot/print.m: - Swap order of outputs from system. - - 2006-03-06 Keith Goodman - - * audio/lin2mu.m, audio/loadaudio.m, audio/mu2lin.m, - audio/playaudio.m, audio/record.m, audio/saveaudio.m, - audio/wavread.m, audio/wavwrite.m, control/base/DEMOcontrol.m, - control/base/__stepimp__.m, control/base/are.m, - control/base/controldemo.m, control/base/damp.m, - control/base/dare.m, control/base/impulse.m, control/base/lqg.m, - control/base/step.m, control/system/abcddim.m, - control/system/is_abcd.m, control/system/is_controllable.m, - control/system/is_detectable.m, control/system/is_observable.m, - control/system/is_stabilizable.m, control/system/is_stable.m, - control/system/jet707.m, control/system/sys2fir.m, - control/system/sysdimensions.m, control/system/sysupdate.m, - control/system/tfout.m, control/system/ugain.m, - control/system/zpout.m, elfun/lcm.m, finance/irr.m, - finance/nper.m, finance/npv.m, finance/pmt.m, finance/pv.m, - finance/rate.m, general/__isequal__.m, general/bitcmp.m, - general/bitget.m, general/bitset.m, general/blkdiag.m, - general/cart2pol.m, general/cart2sph.m, general/cell2mat.m, - general/circshift.m, general/columns.m, general/flipdim.m, - general/fliplr.m, general/flipud.m, general/ind2sub.m, - general/int2str.m, general/isdefinite.m, general/isequal.m, - general/isequalwithequalnans.m, general/isscalar.m, - general/issquare.m, general/issymmetric.m, general/isvector.m, - general/logspace.m, general/mod.m, general/nextpow2.m, - general/num2str.m, general/perror.m, general/pol2cart.m, - general/rem.m, general/rot90.m, general/rotdim.m, general/rows.m, - general/shiftdim.m, general/sph2cart.m, general/sub2ind.m, - general/tril.m, image/hsv2rgb.m, image/image.m, image/imagesc.m, - image/imshow.m, image/ind2gray.m, image/ind2rgb.m, - image/loadimage.m, image/rgb2hsv.m, image/rgb2ind.m, - image/saveimage.m, io/beep.m, linear-algebra/cond.m, - linear-algebra/norm.m, miscellaneous/comma.m, miscellaneous/dir.m, - miscellaneous/license.m, miscellaneous/menu.m, - miscellaneous/semicolon.m, miscellaneous/texas_lotto.m, - miscellaneous/unix.m, miscellaneous/ver.m, optimization/sqp.m, - plot/__errcomm__.m, plot/__errplot__.m, plot/__pltopt1__.m, - plot/__pltopt__.m, plot/bar.m, plot/contour.m, plot/errorbar.m, - plot/grid.m, plot/hist.m, plot/loglog.m, plot/loglogerr.m, - plot/mesh.m, plot/meshgrid.m, plot/plot.m, plot/polar.m, - plot/semilogx.m, plot/semilogxerr.m, plot/semilogy.m, - plot/semilogyerr.m, plot/shg.m, plot/stairs.m, plot/title.m, - plot/xlabel.m, polynomial/compan.m, polynomial/conv.m, - polynomial/deconv.m, polynomial/polyderiv.m, polynomial/polygcd.m, - polynomial/polyinteg.m, polynomial/polyout.m, - polynomial/polyreduce.m, polynomial/polyval.m, - polynomial/polyvalm.m, polynomial/residue.m, set/complement.m, - set/create_set.m, set/intersection.m, set/ismember.m, - set/setdiff.m, set/union.m, set/unique.m, sparse/etreeplot.m, - sparse/gplot.m, sparse/spalloc.m, sparse/sphcat.m, - sparse/sprand.m, sparse/sprandn.m, sparse/sprandsym.m, - sparse/spvcat.m, sparse/treeplot.m, specfun/erfinv.m, - specfun/log2.m, specfun/pow2.m, special-matrix/hankel.m, - special-matrix/hilb.m, special-matrix/invhilb.m, - special-matrix/sylvester_matrix.m, special-matrix/toeplitz.m, - special-matrix/vander.m, statistics/base/median.m, - statistics/base/std.m, statistics/distributions/gamcdf.m, - statistics/distributions/gaminv.m, - statistics/distributions/gampdf.m, - statistics/distributions/gamrnd.m, strings/base2dec.m, - strings/bin2dec.m, strings/dec2base.m, strings/dec2bin.m, - strings/dec2hex.m, strings/hex2dec.m, strings/isletter.m, - strings/lower.m, strings/upper.m, testfun/assert.m, - testfun/demo.m, testfun/example.m, testfun/test.m, time/etime.m: - Move @seealso inside @defXXX macro. Remove "and" from @seealso. - - 2006-02-27 John W. Eaton - - * time/tic.m: Move here from miscellaneous/tic.m. - * time/toc.m: Move here from miscellaneous/toc.m. - - 2006-02-26 Keith Goodman - - * miscellaneous/toc.m: Display "Elapsed time is X seconds" if user - does not assign output of toc to a variable. - - 2006-02-16 Bill Denney - - * axis.m: Catch limits that are the same and return an error. - - 2006-02-15 Dmitri A. Sergatskov - - * plot/print.m: Accept emf device option to support Enhanced - Metafile format. - - 2006-02-15 A S Hodel - - * control/base/lqe.m: Doc fix. - - 2006-02-15 Keith Goodman - - * statistics/distributions/gamcdf.m: Doc fix. - * statistics/distributions/gaminv.m: Doc fix. - * statistics/distributions/gampdf.m: Doc fix. - * statistics/distributions/gamrnd.m: Doc fix. - - 2006-02-09 David Bateman - - * general/triu.m: Minimum change to allow sparse matrix. More needed - for arbitrary user type. - * general/tril.m: ditto. - * sparse/sprand.m: Doc fix. - * sparse/sprandn.m: Ditto. - * sparse/sprandsym.m: New function. - * audio/setaudio.m, general/cart2pol.m, general/cart2sph.m, - general/pol2cart.m, general/sph2cart.m, signal/freqz_plot.m: - Update for syntax error for latest texinfo.tex file. - - 2006-02-02 John W. Eaton - - * plot/grid.m: Append ";\n" to "set grid" command. - - 2006-02-02 A S Hodel - - * control/base/rlocus.m: Don't atttempt to plot rlzer if it is empty. - - 2006-01-13 John W. Eaton - - * audio/Makefile.in, control/base/Makefile.in, - control/hinf/Makefile.in, control/obsolete/Makefile.in, - control/system/Makefile.in, control/util/Makefile.in, - deprecated/Makefile.in, elfun/Makefile.in, finance/Makefile.in, - general/Makefile.in, image/Makefile.in, io/Makefile.in, - linear-algebra/Makefile.in, miscellaneous/Makefile.in, - optimization/Makefile.in, plot/Makefile.in, - polynomial/Makefile.in, quaternion/Makefile.in, set/Makefile.in, - signal/Makefile.in, sparse/Makefile.in, specfun/Makefile.in, - special-matrix/Makefile.in, startup/Makefile.in, - statistics/base/Makefile.in, statistics/distributions/Makefile.in, - statistics/models/Makefile.in, statistics/tests/Makefile.in, - strings/Makefile.in, time/Makefile.in, testfun/Makefile.in: - (all): Depend on PKG_ADD. - (PKG_ADD): New target. - - 2006-01-13 Bill Denney - - * miscellaneous/dir.m: Add @seealso{} to docstring. - - 2006-01-13 John W. Eaton - - * time/etime.m: Move here from miscellaneous/etime.m. - * time/is_leap_year.m: Move here from miscellaneous/is_leap_year.m. - - 2006-01-13 Bill Denney - - * miscellaneous/dir.m: Use filesep instead of "/" where needed. - * miscellaneous/fullfile.m: Likewise. - - 2006-01-12 David Bateman - - * general/blkdiag.m: Compatible behavior for empty matrices - * statistics/base/unidrnd.m: Documentation buglet. - - 2005-12-14 David Bateman - - * testfun/assert.m, testfun/fail.m, testfun/test.m, testfun/demo.m, - testfun/speed.m, testfun/example.m, Makefile.in: New files. - - * Makefile.in (SUBDIRS): Include testfun. - * configure.in (AC_CONFIG_FILES): Include testfun/Makefile. - - * miscellaneous/dir.m: Transpose sub-assignment for cleanness. - - * general/__isequal__.m: Remove reference to getfield. - - * plot/hist.m: Update test code for row/column discrepencies. - * signal/freqz.m: Alter output row/column for matlab compatibility. - Update the test code for this. - * sparse/spstats.m: Fix small bug in the dimension of output. - - 2005-12-13 William Poetra Yoga Hadisoeseno - - * cell/cell2mat.m: New file, from octave-forge. - - 2005-12-13 Ivana Varekova - - * sparse/treeplot.m, sparse/etreeplot.m, sparse/gplot.m: - New graph theory functions. - - 2005-12-13 John W. Eaton - - * general/blkdiag.m: Use "isempty" instead of @isempty. - - * control/system/ss.m: Doc fix. - From Jorge Barros de Abreu . - - 2005-12-12 Michael Zeising - - * audio/wavread.m, audio/wavwrite.m: - Correct scaling for 8-bit linear pcm samples. - Improve scaling for all other linear pcm resolutions. - - 2005-12-07 John W. Eaton - - * statistics/base/moment.m: Don't save and restore warn_str_to_num. - - * sparse/spdiags.m: Don't save and restore warn_fortran_indexing. - * strings/strjust.m: Likewise. - - * general/shift.m: Don't save and restore warn_empty_list_elements. - * signal/arma_rnd.m: Likewise. - * strings/strcat.m: Likewise. - * control/base/__freqresp__.m: Likewise. - * control/base/place.m: Likewise. - * control/base/pzmap.m: Likewise. - * control/base/pzmap.m: Likewise. - * control/system/sysappend.m: Likewise. - * control/system/syscont.m: Likewise. - * control/system/sysdisc.m: Likewise. - * control/system/sysgroup.m: Likewise. - * control/system/tfout.m: Likewise. - * control/system/zpout.m: Likewise. - * control/util/__outlist__.m: Likewise. - - 2005-12-06 John W. Eaton - - * audio/wavread.m, audio/wavwrite.m: Adapt to Octave coding style. - Avoid for loop in interleave/deinterleave steps. - - 2005-12-06 Michael Zeising - - * audio/wavread.m, audio/wavwrite.m: New files. - - 2005-12-06 John W. Eaton - - * miscellaneous/dir.m: Return Nx1 instead of 1xN struct array. - - 2005-12-05 John W. Eaton - - * plot/axis.m: Add "## PKG_ADD: mark_as_command axis" line. - - 2005-12-02 John W. Eaton - - * miscellaneous/fileattrib.m: New function. - - 2005-12-01 John W. Eaton - - * general/columns.m: Use size (x, 2) instead of [nr, nc] = size (x). - * general/rows.m: Use size (x, 1) instead of [nr, nc] = size (x). - From William Poetra Yoga Hadisoeseno . - - 2005-11-30 John W. Eaton - - * linear-algebra/krylov.m: Format doc string. - From Jorge Barros de Abreu . - - 2005-11-23 William Poetra Yoga Hadisoeseno - - * general/blkdiag.m: Import from octave-forge. - Ignore empty matrices in the input. Add tests. - - * general/isequal.m, general/isequalwithequalnans.m: - New wrapper scripts for general/__isequal__.m. - * general/__isequal__.m: Rename from general/isequal.m. - New arg, nans_compare_equal. - - 2005-11-29 John W. Eaton - - * miscellaneous/ver.m: Use new uname built-in function instead of - calling system. Only append octave_forge_string if - OCTAVE_FORGE_VERSION exists. Use puts instead of disp. - Call license instead of hard-coding license info here. - - * miscellaneous/license.m: Use persistent instead of global for - __octave_licenses__. Use puts instead of disp. - Use getuid and getpwuid instead of calling unix ("id -un"). - If nargout = 1, return license info instead of printing usage message. - - 2005-11-29 William Poetra Yoga Hadisoeseno - - * miscellaneous/ver.m: New file. - * miscellaneous/license.m: New file. - - 2005-11-22 John W. Eaton - - * plot/axis.m: Use %.16g instead of just %g to format ranges for - gnuplot set command. - - 2005-11-15 John W. Eaton - - * general/shiftdim.m: Doc fix. - - 2005-11-07 Keith Goodman - - * set/unique.m: Doc string fix. - - 2005-11-01 John W. Eaton - - * Makefile.in (distclean, maintainer-clean): - Also remove autom4te.cache directory. - From Quentin Spencer . - - 2005-10-28 John W. Eaton - - * general/shiftdim.m: Compatibility fix for row vectors. - Correct check for non-scalar non-integer shift. For positive - N, shift is remainder of N and number of dims. Always return NS. - Simplify. - - 2005-10-18 Keith Goodman - - * general/randperm.m: Improve compatibility by allowing input - value of zero. - - 2005-10-13 John W. Eaton - - * plot/__plt__.m, plot/__errplot__.m, plot/replot.m: - If in multiplot mode, clear plot before issuing new plot command. - - * plot/__setup_plot__.m: New function. - * plot/__plt__.m, plot__errplot__.m: Use it. - Handle multiplot data and offsets here. - - * plot/__plot_globals__.m: Also keep track of multiplot options. - Move initialization to __setup_plot__.m. - - * plot/subplot.m: Multiplot globals now in __plot_globals__.m. - Don't reset gnuplot_command_replot. - - * plot/replot.m: Handle multiplot data and offsets here. - * plot__axis_label__.m, plot/axis.m, plot/grid.m, - plot/plot_border.m, plot/plot.m, plot/plot_title.m, - plot/top_title.m: Call replot, not __gnuplot_replot__. - - 2005-10-12 John W. Eaton - - * plot/figure.m: Handle __current_figure__, not gnuplot details. - - 2005-10-04 Rafael Laboissiere - - * binoinv.m, chi2pdf.m, frnd.m, poissinv.m, tinv.m, trnd.m, - weibrnd.m: Removed calls and references to deprecated _pdf and - _inv functions. - * chi2pdf.m: Fixed typos in the documentation. - - 2005-09-28 John W. Eaton - - * miscellaneous/single.m: New function. - - * statistics/base/unidrnd.m: New function. - - 2005-09-27 John W. Eaton - - * miscellaneous/dir.m: Filename never includes directory part. - - 2005-09-22 John W. Eaton - - * polynomial/residue.m: Use logical indexing instead of find.. - - 2005-09-22 Julius Smith - - * polynomial/residue.m: Avoid division by zero for pure imaginary - and zero poles. - - 2005-09-22 Bill Denney - - * strings/deblank.m: Handle cell arrays. - * strings/split.m: New argument, N, to limit number of splits. - - 2005-09-22 Miroslaw Kwasniak - - * plot/__pltopt1__.m: Handle plot colors "w" and "k" separately. - - 2005-09-20 "Orestes Mas" - - * control/base/rlocus.m: Doc fix. - - 2005-09-20 John W. Eaton - - * general/isvector.m: Improve compatibility. - - * general/postpad.m: Allow first argument to be a scalar. - Allow padding to extend dimensionality. - * general/prepad.m: Likewise. - - 2005-09-14 Daniel - - * statistics/tests/bartlett_test.m, linear-algebra/cross.m, - statistics/distributions/discrete_cdf.m, general/fliplr.m, - /control/base/dgram.m: Doc string fixes. - From Jorge Barros de Abreu . - - 2005-09-12 Stefan van der Walt - - * saveimage.m: Do not ignore most significant bit when writing - black and white images to file. - - 2005-09-07 Bill Denney - - * audio/playaudio.m, control/base/__bodquist__.m, - control/base/lqg.m, control/obsolete/dezero.m, - control/system/__syschnamesl__.m, control/system/__sysconcat__.m, - control/system/c2d.m, control/system/cellidx.m, - control/system/d2c.m, control/system/dmr2d.m, - control/system/is_signal_list.m, control/system/listidx.m, - control/system/ss.m, control/system/sysappend.m, - control/system/sysconnect.m, control/system/sysdup.m, - control/system/sysgetsignals.m, control/system/sysidx.m, - control/system/sysprune.m, control/system/syssetsignals.m, - control/system/tfout.m, control/system/zpout.m, - control/util/prompt.m, control/util/sortcom.m, - control/util/strappend.m, finance/fv.m, finance/nper.m, - finance/pmt.m, finance/pv.m, finance/rate.m, general/diff.m, - general/num2str.m, general/repmat.m, general/sortrows.m, - general/strerror.m, image/colormap.m, image/imshow.m, - image/loadimage.m, image/saveimage.m, linear-algebra/norm.m, - miscellaneous/fileparts.m, miscellaneous/popen2.m, - plot/__axis_label__.m, plot/__errcomm__.m, plot/__plt1__.m, - plot/__plt2__.m, plot/__plt__.m, plot/__pltopt1__.m, - plot/__pltopt__.m, plot/axis.m, plot/bottom_title.m, plot/close.m, - plot/grid.m, plot/hist.m, plot/plot_border.m, plot/polar.m, - plot/print.m, plot/title.m, plot/top_title.m, - polynomial/polyout.m, set/unique.m, signal/freqz.m, signal/stft.m, - statistics/base/mean.m, statistics/base/moment.m, - statistics/tests/cor_test.m, - statistics/tests/kolmogorov_smirnov_test.m, - statistics/tests/kolmogorov_smirnov_test_2.m, - statistics/tests/prop_test_2.m, statistics/tests/sign_test.m, - statistics/tests/t_test.m, statistics/tests/t_test_2.m, - statistics/tests/t_test_regression.m, statistics/tests/u_test.m, - statistics/tests/var_test.m, statistics/tests/welch_test.m, - statistics/tests/wilcoxon_test.m, statistics/tests/z_test.m, - statistics/tests/z_test_2.m, strings/base2dec.m, strings/blanks.m, - strings/deblank.m, strings/dec2base.m, strings/index.m, - strings/rindex.m, strings/split.m, strings/str2mat.m, - strings/str2num.m, strings/strcat.m, strings/strcmpi.m, - strings/strncmp.m, strings/strrep.m, strings/substr.m: - Avoid deprecated functions. Use ischar instead of isstr. Use - isvector instead of is_vector. Use isstruct instead of - is_struct. Use char instead of setstr. - - 2005-08-31 Daniel - - * special-matrix/invhilb.m, statistics/base/iqr.m, - control/system/is_controllable.m, set/ismember.m: Doc fixes. - From Jorge Barros de Abreu . - - 2005-08-29 Bill Denney - - * image/saveimage.m: Open output file in binary mode. - - * miscellaneous/bug_report.m: Open prefs file in text mode. - - 2005-08-16 John W. Eaton - - * miscellaneous/computer.m: Handle optional maxsize and endian - outputs. - - 2005-08-15 John W. Eaton - - * strings/strcat.m: Allow single argument. - - 2005-07-18 John W. Eaton - - * strings/strcmp.m: Delete. - - 2005-07-13 John W. Eaton - - * deprecated/hypergeometric_rnd.m: Preserve compatibility with old - versions of Octave. - - 2005-07-13 Ben Barrowes - - * statistics/distributions/betacdf.m: Rename from beta_cdf.m. - * statistics/distributions/betainv.m: Rename from beta_inv.m. - * statistics/distributions/betapdf.m: Rename from beta_pdf.m. - * statistics/distributions/betarnd.m: Rename from beta_rnd.m. - * statistics/distributions/binocdf.m: Rename from binomial_cdf.m. - * statistics/distributions/binoinv.m: Rename from binomial_inv.m. - * statistics/distributions/binopdf.m: Rename from binomial_pdf.m. - * statistics/distributions/binornd.m: Rename from binomial_rnd.m. - * statistics/distributions/chi2cdf.m: Rename from chisquare_cdf.m. - * statistics/distributions/chi2inv.m: Rename from chisquare_inv.m. - * statistics/distributions/chi2pdf.m: Rename from chisquare_pdf.m. - * statistics/distributions/chi2rnd.m: Rename from chisquare_rnd.m. - * statistics/distributions/expcdf.m: Rename from exponential_cdf.m. - * statistics/distributions/expinv.m: Rename from exponential_inv.m. - * statistics/distributions/exppdf.m: Rename from exponential_pdf.m. - * statistics/distributions/exprnd.m: Rename from exponential_rnd.m. - * statistics/distributions/fcdf.m: Rename from f_cdf.m. - * statistics/distributions/finv.m: Rename from f_inv.m. - * statistics/distributions/fpdf.m: Rename from f_pdf.m. - * statistics/distributions/frnd.m: Rename from f_rnd.m. - * statistics/distributions/gamcdf.m: Rename from gamma_cdf.m. - * statistics/distributions/gaminv.m: Rename from gamma_inv.m. - * statistics/distributions/gampdf.m: Rename from gamma_pdf.m. - * statistics/distributions/gamrnd.m: Rename from gamma_rnd.m. - * statistics/distributions/geocdf.m: Rename from geometric_cdf.m. - * statistics/distributions/geoinv.m: Rename from geometric_inv.m. - * statistics/distributions/geopdf.m: Rename from geometric_pdf.m. - * statistics/distributions/geornd.m: Rename from geometric_rnd.m. - * statistics/distributions/hygecdf.m: Rename from hypergeometric_cdf.m. - * statistics/distributions/hygeinv.m: Rename from hypergeometric_inv.m. - * statistics/distributions/hygepdf.m: Rename from hypergeometric_pdf.m. - * statistics/distributions/hygernd.m: Rename from hypergeometric_rnd.m. - * statistics/distributions/logncdf.m: Rename from lognormal_cdf.m. - * statistics/distributions/logninv.m: Rename from lognormal_inv.m. - * statistics/distributions/lognpdf.m: Rename from lognormal_pdf.m. - * statistics/distributions/lognrnd.m: Rename from lognormal_rnd.m. - * statistics/distributions/normcdf.m: Rename from normal_cdf.m. - * statistics/distributions/norminv.m: Rename from normal_inv.m. - * statistics/distributions/normpdf.m: Rename from normal_pdf.m. - * statistics/distributions/normrnd.m: Rename from normal_rnd.m. - * statistics/distributions/poisscdf.m: Rename from poisson_cdf.m. - * statistics/distributions/poissinv.m: Rename from poisson_inv.m. - * statistics/distributions/poisspdf.m: Rename from poisson_pdf.m. - * statistics/distributions/poissrnd.m: Rename from poisson_rnd.m. - * statistics/distributions/tcdf.m: Rename from t_cdf.m. - * statistics/distributions/tinv.m: Rename from t_inv.m. - * statistics/distributions/tpdf.m: Rename from t_pdf.m. - * statistics/distributions/trnd.m: Rename from t_rnd.m. - * statistics/distributions/unifcdf.m: Rename from unifoxorm_cdf.m. - * statistics/distributions/unifinv.m: Rename from uniform_inv.m. - * statistics/distributions/unifpdf.m: Rename from uniform_pdf.m. - * statistics/distributions/unifrnd.m: Rename from uniform_rnd.m. - * statistics/distributions/weibcdf.m: Rename from weibull_cdf.m. - * statistics/distributions/weibinv.m: Rename from weibull_inv.m. - * statistics/distributions/weibpdf.m: Rename from weibull_pdf.m. - * statistics/distributions/wienrnd.m: Rename from wiener_rnd.m. - - * deprecated/beta_cdf.m, deprecated/beta_inv.m, - deprecated/beta_pdf.m, deprecated/beta_rnd.m, - deprecated/binomial_cdf.m, deprecated/binomial_inv.m, - deprecated/binomial_pdf.m, deprecated/binomial_rnd.m, - deprecated/chisquare_cdf.m, deprecated/chisquare_inv.m, - deprecated/chisquare_pdf.m, deprecated/chisquare_rnd.m, - deprecated/exponential_cdf.m, deprecated/exponential_inv.m, - deprecated/exponential_pdf.m, deprecated/exponential_rnd.m, - deprecated/f_cdf.m, deprecated/f_inv.m, deprecated/f_pdf.m, - deprecated/f_rnd.m, deprecated/gamma_cdf.m, - deprecated/gamma_inv.m, deprecated/gamma_pdf.m, - deprecated/gamma_rnd.m, deprecated/geometric_cdf.m, - deprecated/geometric_inv.m, deprecated/geometric_pdf.m, - deprecated/geometric_rnd.m, deprecated/hypergeometric_cdf.m, - deprecated/hypergeometric_inv.m, deprecated/hypergeometric_pdf.m, - deprecated/hypergeometric_rnd.m, deprecated/lognormal_cdf.m, - deprecated/lognormal_inv.m, deprecated/lognormal_pdf.m, - deprecated/lognormal_rnd.m, deprecated/normal_cdf.m, - deprecated/normal_inv.m, deprecated/normal_pdf.m, - deprecated/normal_rnd.m, deprecated/poisson_cdf.m, - deprecated/poisson_inv.m, deprecated/poisson_pdf.m, - deprecated/poisson_rnd.m, deprecated/t_cdf.m, deprecated/t_inv.m, - deprecated/t_pdf.m, deprecated/t_rnd.m, deprecated/uniform_cdf.m, - deprecated/uniform_inv.m, deprecated/uniform_pdf.m, - deprecated/uniform_rnd.m, deprecated/weibull_cdf.m, - deprecated/weibull_inv.m, deprecated/weibull_pdf.m, - deprecated/wiener_rnd.m: New files. - - 2005-07-08 John W. Eaton - - * statistics/distributions/weibrnd.m: Rename from weibull_rnd.m. - * deprecated/weibull_rnd.m: New file. - - 2005-07-08 cctsim - - * strings/dec2base.m: Allow matrix arguments. - - 2005-07-08 John W. Eaton - - * plot/__errplot__.m: Use __plot_globals__. - * plot/__plt__.m: Likewise. - * plot/figure.m: Likewise. - - * plot/hold.m: New file. - * plot/ishold.m: New file. - * plot/__plot_globals__.m: New file. - - 2005-07-05 cctsim - - * strings/dec2base.m: Don't remove all leading zeros if result is zero. - - 2005-07-05 John W. Eaton - - * strings/findstr.m: Return [] for no matches. - - 2005-06-17 Keith Goodman - - * miscellaneous/tic.m: Fix doc string. - - 2005-06-15 John W. Eaton - - * polynomial/polyfit.m: Force return value to be a row vector. - - 2005-06-15 Tom Holroyd - - * general/isequal.m: Correct nargin check. - - 2005-06-14 John W. Eaton - - * general/isvector.m: Handle N-d arrays. - From Bill Denney . - - 2005-06-02 Ben Barrowes - - * plot/meshgrid.m: Handle 3 input arguments. - - 2005-06-02 Paul Kienzle - - * signal/freqz.m: Use correct calculations when given a vector of - frequencies. Improve accuracy of returned frequency vector. - Improve speed for medium length filters (at a slight cost for slow - filters). Add test cases. - - 2005-05-27 "Dmitri A. Sergatskov" - - * plot/loglog.m: Fix set commands. - - 2005-05-25 John W. Eaton - - * plot/sombrero.m: Default n to 41 if nargin == 0. - - 2005-05-24 John W. Eaton - - * statistics/tests/anova.m: Use mean (y(:)) to compute total_mean. - - * strings/strncmp.m: New file, from Tom Holroyd - . - - * strings/strcmp.m: Return logical values in all cases. - - 2005-05-23 John W. Eaton - - * plot/orient.m: New file. Adapt to Octave coding style. - Texinfoize doc string. - - * plot/print.m: New file. Adapt to Octave coding style. Include - PKG_ADD command. Use set terminal consistently throughout. Use - set terminal push/pop and unconditionally set output to screen - when done to avoid requiring gget. Use a cell array for dev_list - and cellidx to search for items in the list. Delete local - variable endl. Don't set and restore automatic_replot. Use {} - instead of nth to index varargin. Delete local variable - va_arg_cnt. - - 2005-05-18 John W. Eaton - - * general/num2str.m: Return early if X is a character string. - - 2005-05-11 John W. Eaton - - * strings/findstr.m: Allow non-string arguments for compatiblity. - From Tom Holroyd . - - * plot/polar.m: Don't call __pltopt__ here. - - 2005-05-02 John W. Eaton - - * mkdoc: Print header message. - - 2005-04-28 John W. Eaton - - * configure.in (AC_CONFIG_SRCDIR): Look for startup/inputrc, not - startup/octaverc. - - 2005-04-28 Stefan van der Walt - - * image/imshow.m: Handle various image depths and 3d RGB images. - (__im_numeric_limits__): New internal function. - - 2005-04-28 toni saarela - - * statistics/tests/anova.m: Compute total_mean as mean of all - data, not mean of group_mean. - - 2005-04-28 John W. Eaton - - * startup/local-rcfile: New file. - * startup/main-rcfile: Rename from startup/octaverc. - * startup/Makefile.in (SOURCES): Add inputrc to the list. - (install install-strip): Install main-rcfile in $(fcnfiledir)/startup. - Install local-rcfile in $(localfcnfiledir)/startup. - - 2005-04-28 Keith Goodman - - * startup/inputrc: New file. - * startup/octaverc: Configure readline using inputrc from - startupfiledir. - * startup/Makefile.in (install, install-strip): Install octaverc - in $(fcnfiledir)/startup. - - 2005-04-27 John W. Eaton - - * optimization/qp.m: Define n_in after removing -Inf bounds from Ain. - - 2005-04-21 John W. Eaton - - * optimization/glpk.m: Handle SENSE argument. - - * optimization/qp.m, optimization/sqp.m: New files. - - 2005-04-08 John W. Eaton - - * Makefile.in (clean, distclean, maintainer-clean): - Avoid duplication in rules. - - 2005-03-28 John W. Eaton - - * plot/contour.m, plot/mesh.m: Continue to use __gnuplot_raw__ for - setting {no,}parametric. - * plot/figure.m: Likewise, for setting terminal type. - - * __axis_label__.m:, plot/axis.m, plot/bottom_title.m, - plot/contour.m, plot/figure.m, plot/multiplot.m, plot/mplot.m, - plot/plot_border.m, plot/subplot.m, plot/subwindow.m, - plot/title.m, plot/top_title.m: Avoid eval. - - 2005-03-28 Dmitri A. Sergatskov - - * plot/__axis_label__.m, plot/axis.m, plot/grid.m, - plot/plot_border.m, plot/replot.m, plot/title.m, plot/top_title.m: - Use __gnuplot_replot__ instead of replot. - - * plot/__axis_label__.m, plot/axis.m, plot/bottom_title.m, - plot/contour.m, plot/errorbar.m, plot/figure.m, plot/grid.m, - plot/loglogerr.m, plot/loglog.m, plot/mesh.m, plot/mplot.m, - plot/multiplot.m, plot/oneplot.m, plot/plot_border.m, plot/plot.m, - plot/polar.m, plot/semilogxerr.m, plot/semilogx.m, - plot/semilogyerr.m, plot/semilogy.m, plot/shg.m, plot/subplot.m, - plot/subwindow.m, plot/title.m, plot/top_title.m: - Use __gnuplot_raw__ instead of __gnuplot_set__. - - * plot/replot.m: Use __gnuplot_replot__, not __greplot__. - - 2005-03-24 John W. Eaton - - * optimization/glpkmex.m: Texinfoize Doc string. - * optimization/glpk.m: Likewise. - Allow VARTYPE and CTYPE to be row or column vectors of characters - (row vectors are orginary character strings). - * optimization/glpkparam.m: Delete. - - 2005-03-24 Quentin Spencer - - * statistics/base/mean.m: Allow DIMS arg greater than the number - of dimensions of X. - - 2005-03-23 John W. Eaton - - * general/tril.m, general/triu.m: Return value of same class as - argument. - - * optimization/glpk.m: Simplify interface. By default, solve - standard LP min C'*x s.t. A*x = b, x >= 0. - * optimization/glpkmex.m: New file. - - 2005-03-22 John W. Eaton - - * configure.in (AC_CONFIG_FILES): Add optimization/Makefile to the - list. - - * optimization/glpk.m: Adapt to Octave coding style. - No need for varargout or varargin. - Print usage message if nargin > 11. - Allow any value of nargout. - Use repmat (C, nr, nc) instead of char (C * ones (nr, nc)). - Avoid looping when checking character classes. - - * optimization: New directory. - * Makefile.in (SUBDIRS): Add it to the list. - * optimization/Makefile.in: New file. - * optimization/glpk.m, optimization/glpkparams.m, - optimization/glpktest1, optimization/glpktest2: New files. - - 2005-03-16 Sᅵren Hauberg - - * strings/split.m: Quick return for empty second arg. - Improve warning for multi-line strings. - Speed up by avoiding sprintf in loop and eval. - - 2005-03-16 Paul Kienzle - - * polynomial/polyderiv.m : Accept a*b, a/b. Auto-reduce common terms. - * polynomial/polyder.m: Ditto. - * polynomial/polygcd.m: New function. - - 2005-03-16 John W. Eaton - - * control/base/__stepimp__.m, control/base/bode.m, - control/base/frdemo.m, control/base/nichols.m, - control/base/nyquist.m, control/base/pzmap.m, - control/base/rldemo.m, control/base/rlocus.m, - control/hinf/dhinfdemo.m, control/hinf/hinfdemo.m, - plot/__axis_label__.m, plot/__errplot__.m, plot/__plt__.m, - plot/axis.m, plot/bar.m, plot/bottom_title.m, plot/contour.m, - plot/errorbar.m, plot/figure.m, plot/grid.m, plot/loglog.m, - plot/loglogerr.m, plot/mesh.m, plot/meshgrid.m, plot/mplot.m, - plot/multiplot.m, plot/oneplot.m, plot/plot.m, plot/plot_border.m, - plot/polar.m, plot/semilogx.m, plot/semilogxerr.m, - plot/semilogy.m, plot/semilogyerr.m, plot/shg.m, plot/stairs.m, - plot/subplot.m, plot/subwindow.m, plot/title.m, plot/top_title.m, - plot/xlabel.m, quaternion/demoquat.m, - quaternion/qcoordinate_plot.m, signal/freqz_plot.m, sparse/spy.m, - statistics/base/ppplot.m, statistics/base/qqplot.m: - Use __gnuplot_plot__ instead of gplot, __gnuplot_splot__ instead - of gsplot, and __gnuplot_set__ instead of gset. Remove gplot, - gsplot from @seealso docs. - - * plot/replot.m: New file. - - 2005-03-15 David Bateman - - * set/unique.m, set/ismember.m: Handle cell arrays. - - 2005-03-09 John W. Eaton - - * statistics/Makefile.in (bin-dist): Delete target. - (BINDISTSUBDIRS): Delete variable. - * control/Makefile.in: Likewise. - - * audio/Makefile.in (bin-dist): Delete target. - (BINDISTFILES): Delete variable. - * control/base/Makefile.in: Likewise. - * control/hinf/Makefile.in: Likewise. - * control/obsolete/Makefile.in: Likewise. - * control/system/Makefile.in: Likewise. - * control/util/Makefile.in: Likewise. - * deprecated/Makefile.in: Likewise. - * elfun/Makefile.in: Likewise. - * finance/Makefile.in: Likewise. - * general/Makefile.in: Likewise. - * image/Makefile.in: Likewise. - * sparse/Makefile.in: Likewise. - * io/Makefile.in: Likewise. - * plot/Makefile.in: Likewise. - * Makefile.in: Likewise. - * miscellaneous/Makefile.in: Likewise. - * linear-algebra/Makefile.in: Likewise. - * polynomial/Makefile.in: Likewise. - * quaternion/Makefile.in: Likewise. - * set/Makefile.in: Likewise. - * signal/Makefile.in: Likewise. - * specfun/Makefile.in: Likewise. - * special-matrix/Makefile.in: Likewise. - * startup/Makefile.in: Likewise. - * statistics/base/Makefile.in: Likewise. - * statistics/distributions/Makefile.in: Likewise. - * statistics/models/Makefile.in: Likewise. - * statistics/tests/Makefile.in: Likewise. - * strings/Makefile.in: Likewise. - * time/Makefile.in: Likewise. - - 2005-03-08 John W. Eaton - - * general/repmat.m: Correctly diagnose 3-argument non-scalar - dimensions case. From Matthew A Swabey . - - 2005-03-04 John W. Eaton - - * plot/clg.m: New file. - - 2005-03-03 John W. Eaton - - * general/isequal.m, general/sortrows.m, set/ismember.m, - set/setdiff.m, strings/str2double.m, strings/strmatch.m, - strings/strcmpi.m: - New files from Octave-forge. Adapt to Octave coding standards. - - 2005-03-03 Paul Kienzle - - * statistics/distributions/binomial_pdf.m: Extend the feasible - computation range. - - 2005-02-25 John W. Eaton - - Sparse merge. - - 2005-01-23 David Bateman - - * sparse/randperm.m: Delete duplicate randperm.m. - - 2005-01-10 John W. Eaton - - * sparse/Makefile.in: New file. - * configure.in (AC_CONFIG_FILES): Add sparse/Makefile to the list. - - 2005-01-07 David Bateman - - * set/unique.m: import file from octave-forge. - - 2005-01-05 David Bateman - - * Makefile.in: include sparse directory in SUBDIRS. - - 2004-12-30 John W. Eaton - - * sparse/nzmax.m: Delete (there is an nzmax function in - src/DLD-FUNCTIONS/sparse.cc). - - 2004-12-28 John W. Eaton - - Merge of sparse code from David Bateman and - Andy Adler . - - * sparse/colperm.m, sparse/nonzeros.m, sparse/nzmax.m, - sparse/randperm.m, sparse/spalloc.m, sparse/spconvert.m, - sparse/spdiags.m, sparse/speye.m, sparse/spfun.m, sparse/sphcat.m, - sparse/spones.m, sparse/sprand.m, sparse/sprandn.m, - sparse/spstats.m, sparse/spvcat.m, sparse/spy.m: New files. - - * sparse: New directory. - - 2005-02-22 John W. Eaton - - * polynomial/residue.m: Force prepad to always create row vectors. - - * polynomial/poly.m: Quick return if m is 0. - From Carmen Navarrete . - - 2005-02-21 David Bateman - - * statistics/distributions/poisson_rnd.m: fix for lambda of zero. - From Mark van Rossum . - Fix for row vectors with at least one element of lambda not in - (0, Inf). - - 2005-02-21 John W. Eaton - - * statistics/base/qqplot.m: Use feval instead of eval. - - * plot/grid.m, plot/plot_border.m, plot/title.m, plot/top_title.m, - plot/__axis_label__.m: Issue replot command. - - 2005-02-09 John W. Eaton - - * polynomial/polyderiv.m: Force P to be a row vector. - - 2005-02-08 John W. Eaton - - * strings/dec2base.m: Don't delete leading zero if third arg is - provided and len <= computed max_len. - - 2005-01-27 David Bateman - - * strings/dec2base.m: Be even more careful about handling all digits. - - 2005-01-27 Paul Kienzle - - * strings/dec2base.m: Use integer arithmetic to count number of digits. - - 2005-01-27 Benjamin Hall - - * statistics/base/median.m: Make it work for the scalar case too. - - 2005-01-25 Daniel J Sebald - - * plot/__plt__.m: Initialize fmt and sep outside of loop. - Simplify logic for decoding args. - - 2005-01-24 John W. Eaton - - * plot/__plr__.m, plot/__plr2__.m: Pass name of caller to __plt__. - - * plot/__plt__.m: No need to save and reset hold state now. - (first_plot): Delete unused variable. - - * plot/__plr2__.m, plot/__plt2__.m: Improve diagnostics. - - * plot/__plr__.m: Use __plt__, not specific __pltXX__ functions. - * plot/__plt1__.m, plot/__plt2__.m, plot/__plt2mm__.m, - plot/__plt2mv__.m, plot/__plt2ss__.m, plot/__plt2vm__.m, - plot/__plt2vv__.m: - Return data and gnuplot commands instead of evaluating them. - * plot/__plt__.m: Handle evaluation of all gnuplot commands here. - Based on changes from Daniel J Sebald . - - 2005-01-18 John W. Eaton - - * linear-algebra/cross.m: Allocate idx1 before use. - - 2004-12-08 Heikki Junes - - * statistics/base/range.m: Fix varargin usage. - - 2004-12-02 Pascal A. Dupuis - - * strings/deblank.m: Remove all trailing whitespace (check with - isspace), not just SPC. - - 2004-12-02 Balint Reczey - - * statistics/base/moment.m: Fix argument parsing for N-d arrays. - - 2004-11-09 John W. Eaton - - * miscellaneous/fileparts.m: Allow filenames with no extension. - From Julius Smith . - - 2004-11-08 John W. Eaton - - * plot/__plt2vm__.m: Delete debugging statement. - From Dmitri A. Sergatskov . - - 2004-11-04 John W. Eaton - - * plot/hist.m: Always return row vectors for vector args. - - 2004-09-23 John W. Eaton - - * strings/strcmp.m: If args are not strings or cell arrays of - strings, return zero instead of reporting an error. - - 2004-09-22 Federico Zenith - - * control/base/analdemo.m, control/base/are.m, control/base/bddemo.m, - control/base/controldemo.m, control/base/damp.m, control/base/dare.m, - control/base/dcgain.m, control/base/dgram.m, control/base/dlyap.m, - control/base/dre.m, control/base/frdemo.m, control/base/gram.m, - control/base/impulse.m, control/base/lqp.m, control/base/obsv.m, - control/base/pzmap.m, control/base/rldemo.m, control/hinf/h2norm.m, - control/hinf/hinfsyn.m, control/hinf/hinfsyn_ric.m, - control/hinf/is_dgkf.m, control/system/c2d.m, - control/system/is_detectable.m, control/system/is_sample.m, - control/system/is_siso.m, control/system/is_stable.m, - control/system/ss2sys.m, control/system/ss.m, control/system/sys2ss.m, - control/system/sys2tf.m, control/system/sys2zp.m, - control/system/sysappend.m, control/system/sysconnect.m, - control/system/sysdisc.m, control/system/sysdup.m, - control/system/sysgetsignals.m, control/system/sysmult.m, - control/system/syssetsignals.m, control/system/syssub.m, - control/system/tf2sys.m, control/system/ugain.m, - control/system/zp2ss.m, control/system/zp2sys.m, - control/system/zp2tf.m, control/util/axis2dlim.m, polynomial/roots.m, - special-matrix/toeplitz.m: Fix typos in doc strings. - - * control/base/are.m, control/base/dare.m, control/base/lsim.m, - control/base/ltifr.m, control/base/place.m,control/base/tzero2.m, - control/base/tzero.m, control/hinf/hinf_ctr.m, control/hinf/wgt1o.m, - ontrol/system/is_abcd.m, control/system/parallel.m, - control/system/ss2tf.m, control/system/ss2zp.m, control/system/ss.m, - control/system/sysappend.m, control/system/sysconnect.m, - control/system/sysdup.m, control/system/sysgroup.m, - control/system/sysprune.m, control/system/sysreorder.m, - control/system/sysscale.m, control/system/syssub.m, - control/system/tf2ss.m, control/system/tf2zp.m, control/util/zgfmul.m, - control/util/zginit.m, control/util/zgscal.m, elfun/acoth.m, - polynomial/polyout.m, specfun/log2.m: - Add output arguments in doc strings. - - * control/base/are.m, control/base/bode_bounds, control/base/bode.m, - control/base/__bodquist__.m, control/base/ctrb.m, control/base/dare.m, - control/base/DEMOcontrol.m, control/base/dlyap.m, control/base/dre.m, - control/base/freqchkw.m, control/base/__freqresp__.m, - control/base/__freqresp__.m, control/base/lqp.m, control/base/lqr.m, - contol/base/lsim.m, control/base/lyap.m, control/base/nyquist.m, - control/base/obsv.m, control/base/place.m, control/base/pzmap.m, - control/base/__stepimp__.m, control/base/step.m, control/base/tzero2.m - control/base/tzero.m, control/hinf/dhinfdemo.m, control/hinf/h2norm.m, - control/hinf/h2syn.m, control/hinf/hinfdemo.m, - control/hinf/hinfnorm.m, control/hinf/hinfsyn_chk.m, - control/hinf/hinfsyn.m, control/hinf/is_dgkf.m, - control/obsolete/syschnames.m, control/obsolete/syschnames.m, - control/system/c2d.m, control/system/is_abcd.m, - control/system/is_controllable.m, control/system/is_detectable.m, - control/system/is_observable.m, control/system/is_stable.m, - control/system/jet707.m, control/system/ord2.m, - control/system/starp.m, control/system/sys2fir.m, - control/system/sys2ss.m, control/system/sys2tf.m, - control/system/sys2zp.m, control/system/syscont.m, - control/system/sysdisc.m, control/system/sysdup.m, - control/system/sysgettype.m, control/system/sysgroup.m, - control/system/sysmult.m, control/system/sysprune.m, - control/system/sysreorder.m, control/system/sysscale.m, - control/system/syssetsignals.m, control/system/sysupdate.m, - control/system/tf2ss.m, control/system/tf2sys.m, - control/system/zp2ss.m, control/system/zp2sys.m, - control/util/axis2dlim.m, control/util/prompt.m, - control/util/zgfmul.m, control/util/zginit.m, - control/util/__zgpbal__.m, control/util/zgscal.m: - Use @var, @strong, @command, @math, @acronym, @table and @cite - in doc strings. - - * control/base/bode_bounds.m, control/base/ctrb.m, control/base/dre.m, - control/base/dgram.m, control/base/dlyap.m, control/base/ltifr.m, - control/base/nyquist.m, control/base/obsv.m, control/base/tzero.m, - control/hinf/dgkfdemo.m, control/hinf/dhinfdemo.m, - control/hinf/h2norm.m, control/hinf/h2syn.m, control/hinf/hinf_ctr.m, - control/hinf/hinfdemo.m, control/hinf/hinfnorm.m, - control/hinf/hinfsyn_chk.m, control/hinf/hinfsyn.m, - control/hinf/wgt1o.m, control/obsolete/syschnames.m, - control/system/c2d.m, control/system/fir2sys.m, - control/system/is_stabilizable.m, control/system/jet707.m, - control/system/ord2.m, control/system/ss2tf.m, control/system/tf2ss.m, - control/util/zgshsr.m, polynomial/polyout.m: - New @tex section(s) in doc strings for better formating of printed - output. - - * control/base/__freqresp__.m, control/base/nyquist.m, - control/base/__stepimp__.m, control/hinf/hinfdemo.m, - control/obsolete/syschnames.m, control/system/sysprune.m: - Use proper double quote marks for TeX. - - * control/base/DEMOcontrol.m: Add missing ; - - * control/base/nichols.m, control/base/rlocus.m, - control/obsolete/minfo.m, control/system/is_digital.m, - control/system/ss2zp.m, control/system/sysmin.m, - control/system/tf2zp.m, control/util/sortcom.m: - Convert documentation to use or more completely use Texinfo. - - * control/base/rlocus.m, control/hinf/dhinfdemo.m, - control/hinf/hinfdemo.m, control/system/ord2.m, - control/system/parallel.m, control/system/ss2tf.m, - control/system/starp.m: Use "@group ... @end group" to avoid ascii - art splitting over a page boundary. - - * control/hinf/dgkfdemo.m, control/hinf/dhinfdemo.m, - control/hinf/h2norm.m, control/hinf/h2syn.m, control/hinf/hinf_ctr.m, - control/hinf/hinfdemo.m, control/hinf/hinfnorm.m, - control/hinf/hinfsyn_chk.m, control/hinf/hinfsyn.m, - control/hinf/wgt1o.m, control/system/buildssic.m: - Use {\cal H}_\infty for H-infinity and likewise for H-2 to - the TeX documentation. - - * control/system/is_stabilizable.m: - Add Copyright so that help is displayed correctly. - - * special-matrix/vander.m: Octave indexes start at 1. - - 2004-09-21 David Bateman - - * general/rotdim.m: New function for rotation of an N-d array in an - arbitrary plane. - - * general/flipdim.m: New function to flip an N-d array about an - arbitrary axis. - - 2004-09-15 David Bateman - - * general/bitget.m: Replace Bmax, which is undefined with bitmax - - 2004-09-15 John W. Eaton - - * strings/strcmp.m: Fix typo in cell/string array case. - Use iscellstr to check for cells rather than iscell. - Improve diagnostics for invalid args. - - 2004-09-10 David Bateman - - * statistics/distributions/binomial_rnd.m: Fix error for scalar n - and p with n > 1, and fix for matrix n and p with n == 1. - - * statistics/distributions/poisson_rnd.m: Fix for matrix length, - due to row vs. column vector operations. - - 2004-09-03 David Bateman - - * general/repmat.m: Fix to allow logical classes. - - 2004-08-31 John W. Eaton - - * general/isa.m: New function, from Octave-forge. - - 2004-08-31 David Bateman - - * general/bitcmp.m, general/bitget.m, general/bitset.m: Remove - limitation on the use of int64 and uint64 types, and the use - of the eval. - - * general/bitset.m: Remove superfluous cast to return type, as bug - in .^ with integer types is fixed. - - * general/repmat.m: Adapt to allow integer types. - - 2004-08-31 Paul Kienzle - - * plot/axis.m: Don't reset axes when querying them. - - 2004-08-27 David Bateman - - * statistics/base/ranks.m: Handle non-consecutive ties. - Eliminate loop. - - 2004-07-27 David Bateman - - * general/num2str.m: Also insert spaces in output when precision - argument is supplied. - - 2004-07-23 David Bateman - - * general/bitcmp.m, general/bitget.m, general/bitset.m: New functions. - - 2004-07-22 Etienne Grossmann - - * general/sub2ind.m: Make reshaping index list unnecessary. - - 2004-07-22 Paul Kienzle - - * miscellaneous/unix.m: Fix doc string. - - 2004-07-22 Stefan van der Walt - - * plot/figure.m: Clarification of documentation. - - * image/imshow.m: Warn for complex images. - Only estimate colourmap for images in [0, 65536]. - - 2004-07-22 David Bateman - - * general/num2str.m: Fix the case of an all zero input. - - 2004-06-22 Etienne Grossmann - - * general/ind2sub.m: Doc fix. - - 2004-06-08 John W. Eaton - - * statistics/tests/kolmogorov_smirnov_test.m: Use func2str to - convert function handle to string for eval. - - 2004-06-04 Paul Kienzle - - * plot/errorbar.m: Remove debugging output. - - 2004-06-03 Stefan van der Walt - - * plot/__pltopt__.m: Properly escape @ symbols in doc string. - - 2004-06-03 Paul Kienzle - - * deprecated/com2str.m: Include 'i' suffix for pure imaginary numbers. - - * polynomial/polyout.m: Use parenthesis if necessary around - complex polynomial coefficient. - - * plot/__errcomm__.m, plot/__errplot__.m: Simplify code and fix - the bug which causes __errplot__ to ignore the last argument. - - 2004-06-03 David Bateman - - * general/shiftdim.m: New function based on JWE code snippet. - - * general/circdim.m: New function. - - 2004-05-06 David Bateman - - * general/issquare.m: Fail if ndim(x) > 2. - - * linear-algebra/norm.m, linear-algebra/norm.m: Fail if ndim(x) > 2. - - * linear-alegbra/cross.m, linear-algebra/dot.m: Allow matrix and - N-d array arguments. Add optional dim argument to define - dimension along which to operate. - - * linear-algebra/dmult.m: Allow N-d arrays. - - * linear-algebra/vec.m: Use v(:) and not reshape. - - 2004-04-29 David Bateman - - * statistics/base/ranks.m, statistics/base/run_count.m, - statistics/base/studentize.m, statistics/base/kurtosis.m - statistics/base/statistics.m, statistics/base/skewness.m - statistics/base/iqr.m: - Make N-d array aware. Allow optional argument to define the - dimension along which to operate. Update the documentation. - - * statistics/base/ranks.m: Change algorithm to use sort, - and adjust for the ties after. - - * statistics/base/run_counts.m: Change algorithm to use - the a combination of diff and find, rather than a for-loop. - - 2004-04-23 Paul Kienzle - - * plot/hist.m: Correctly determine cutoffs. New tests. - - 2004-04-23 David Bateman - - * general/int2str.m: Treat only real part of argument, and treat - NDArrays by stacking the slices through the matrix vertically. - - * general/num2str.m: Improve format of integer matrices, and the - conversion of complex matrices added. Treat NDArrays by stacking - the slices through the matrix vertically. - - * deprecated/com2str.m: Moved here from general subdirectory. - - 2004-04-22 John W. Eaton - - * quaternion/qtransvmat.m: Use continuation characters to make - sure result is a matrix instead of a vector. From . - - 2004-04-21 David Bateman - - * elfun/lcm.m: Make N-d aware. - - * general/diff.m: Make the code N-d array aware. Allow an - optional argument to define the dimension along which to perform - the differences and allow the order of the differences to be larger - than the dimension itself. - - * general/rot90.m, general/fliplr.m, general/flipud.m: Limit the - use of these functions to 1- and 2-d arrays. - - 2004-04-16 John W. Eaton - - * elfun/gcd.m: Delete. - - 2004-04-15 David Bateman - - * set/create_set.m, general/is_duplicate_entry.m: Make N-d array aware. - - * general/shift.m, general/prepad.m, general/postpad.m: Make N-d - array aware and and optional argument for the dimension along - which to operate. - - * signal/unwrap.m: Make N-d array aware and fix optional - argument for the dimension to be consistent with other N-d array - functions. - - 2004-04-08 David Bateman - - * statistics/distributions/discrete_cdf.m, - statistics/distributions/discrete_inv.m, - statistics/distributions/discrete_pdf.m, - statistics/distributions/discrete_rnd.m, - statistics/distributions/exponential_cdf.m, - statistics/distributions/exponential_inv.m, - statistics/distributions/exponential_pdf.m, - statistics/distributions/exponential_rnd.m, - statistics/distributions/f_cdf.m, - statistics/distributions/f_inv.m, - statistics/distributions/f_pdf.m, - statistics/distributions/f_rnd.m, - statistics/distributions/geometric_cdf.m, - statistics/distributions/geometric_inv.m, - statistics/distributions/geometric_pdf.m, - statistics/distributions/geometric_rnd.m, - statistics/distributions/hypergeometric_rnd.m, - statistics/distributions/kolmogorov_smirnov_cdf.m, - statistics/distributions/laplace_cdf.m, - statistics/distributions/laplace_inv.m, - statistics/distributions/laplace_pdf.m, - statistics/distributions/laplace_rnd.m, - statistics/distributions/logistic_inv.m, - statistics/distributions/logistic_rnd.m, - statistics/distributions/lognormal_cdf.m, - statistics/distributions/lognormal_inv.m, - statistics/distributions/lognormal_pdf.m, - statistics/distributions/lognormal_rnd.m, - statistics/distributions/pascal_cdf.m, - statistics/distributions/pascal_inv.m, - statistics/distributions/pascal_pdf.m, - statistics/distributions/pascal_rnd.m, - statistics/distributions/poisson_cdf.m, - statistics/distributions/poisson_inv.m, - statistics/distributions/poisson_pdf.m, - statistics/distributions/poisson_rnd.m, - statistics/distributions/t_cdf.m, - statistics/distributions/t_inv.m, - statistics/distributions/t_pdf.m, - statistics/distributions/t_rnd.m, - statistics/distributions/weibull_cdf.m, - statistics/distributions/weibull_inv.m, - statistics/distributions/weibull_pdf.m, - statistics/distributions/weibull_rnd.m: - Allow N-d arrays. - - * statistics/distributions/discrete_inv.m: Fix bug in indexing, - that results in NaN in places where it should not have had. - - * statistics/distributions/discrete_rnd.m: New argument formats to - allow creating arbitrary matrices, compatiable with the other - *_rnd.m functions. Maintain compatibility with previous format. - - * statistics/distributions/empirical_rnd.m: New argument formats - to allow creating arbitrary matrices, compatiable with the other - *_rnd.m functions. Maintain compatibility with previous - format. Allow N-d arrays. - - * statistics/distributions/hypergeometric_cdf.m, - statistics/distributions/hypergeometric_inv.m, - statistics/distributions/hypergeometric_pdf.m, - statistics/distributions/wiener_rnd.m: - Error for non-scalar arguments. - - * statistics/distributions/pascal_rnd.m: - Correct for n = 1 bug, where all elements were equal. - - 2004-04-06 David Bateman - - * general/common_size.m, miscellaneous/bincoeff.m, - statistics/distributions/beta_cdf.m, - statistics/distributions/beta_inv.m, - statistics/distributions/beta_pdf.m, - statistics/distributions/beta_rnd.m, - statistics/distributions/binomial_cdf.m, - statistics/distributions/binomial_inv.m, - statistics/distributions/binomial_pdf.m, - statistics/distributions/binomial_rnd.m, - statistics/distributions/cauchy_cdf.m, - statistics/distributions/cauchy_inv.m, - statistics/distributions/cauchy_pdf.m, - statistics/distributions/cauchy_rnd.m, - statistics/distributions/chisquare_cdf.m, - statistics/distributions/chisquare_inv.m, - statistics/distributions/chisquare_pdf.m, - statistics/distributions/chisquare_rnd.m, - statistics/distributions/gamma_cdf.m, - statistics/distributions/gamma_inv.m, - statistics/distributions/gamma_pdf.m, - statistics/distributions/gamma_rnd.m, - statistics/distributions/normal_cdf.m, - statistics/distributions/normal_inv.m, - statistics/distributions/normal_pdf.m, - statistics/distributions/normal_rnd.m, - statistics/distributions/stdnormal_cdf.m, - statistics/distributions/stdnormal_pdf.m, - statistics/distributions/stdnormal_rnd.m, - statistics/distributions/uniform_cdf.m, - statistics/distributions/uniform_inv.m, - statistics/distributions/uniform_pdf.m, - statistics/distributions/uniform_rnd.m: - Allow the inputs to be N-d arrays. - - * statistics/base/var.m: Update for N-d arrays. Allow dimension arg. - * statistics/base/median.m: Likewise. - - 2004-04-02 David Bateman - - * statistics/base/std.m: Allow optional args for type and dim. - * statistics/base/center.m, statistics/base/meansq.m, - statistics/base/moment.m, statistics/base/range.m: - Update for N-d arrays. - * signal/fftshift.m: Fix dimensioning error. - - * statistics/base/std.m: Use repmat not ones(nr,1)*mean to allow - N-d arrays. - - * general/mod.m, general/mod.m: Allow N-d arrays with one scalar arg. - - * signal/fftshift.m: Update for N-d arrays, allow optional dim arg. - - * specfun/erfinv.m, general/repmat.m: Update for N-d arrays. - - * control/base/bode.m, control/base/lqg.m, control/system/ss2sys.m, - control/system/cellidx.m, control/system/dmr2d.m control/system/ss.m, - control/system/sysprune.m: Doc update for usage of cell arrays. - - * control/system/sysidx.m: Use cellidx and not listidx. - - 2004-03-12 John W. Eaton - - * plot/__pltopt1__.m: Always add title clause to plot command with - default of "" (so it is off unless explicitly set by the user). - - 2004-03-12 Stefan van der Walt - - * image/imshow.m: Accept "truesize" argument. - Ignore current colormap. New tests and demos. - - 2004-03-10 Volker Kuhlmann - - * signal/sinewave.m: Allow N to default to M. - - 2004-03-09 John W. Eaton - - * signal/unwrap.m: Use "isempty (tol)" instead of "tol == []". - - 2004-03-04 John W. Eaton - - * general/deal.m: New function. - Add tests from Paul Kienzle. - - 2004-03-03 Stefan van der Walt - - * plot/hist.m: Compute histogram correctly for n>=30. - - 2004-03-02 Paul Kienzle - - * signal/sinc.m: Use i(:) instead of i when checking for any nonzeros. - - 2004-03-01 John W. Eaton - - * miscellaneous/horzcat.m: Delete. - * miscellaneous/vertcat.m: Delete. - - 2004-02-19 John W. Eaton - - * plot/figure.m: Also look for GNUTERM in the environment and use - that if it is set (for OS X). From Per Persson . - - 2004-02-18 John W. Eaton - - * control/base/__stepimp__.m: Only call clearplot if we will be - doing multiple plots in the same gnuplot frame. - - 2004-02-16 John W. Eaton - - * control/system/__sysconcat__.m, control/system/__tfl__.m, - control/system/cellidx.m, control/system/ss.m, - control/system/tf.m, control/system/zp.m: New functions. - - 2004-02-16 Glenn Golden - - * statistics/distributions/discrete_inv.m: - Reduce memory requirements. - - 2004-02-16 John W. Eaton - - * plot/__errcomm__.m: Fix thinko in previous change. - From Teemu Ikonen . - - 2004-02-16 A S Hodel - - * control/base/__bodquist__.m, control/base/__stepimp__.m, - control/base/analdemo.m, control/base/bddemo.m, - control/base/bode.m, control/base/dre.m, control/base/frdemo.m, - control/base/lqg.m, control/base/nyquist.m, control/base/place.m, - control/base/rldemo.m, control/base/rlocus.m, - control/base/tzero.m, control/hinf/dgkfdemo.m, - control/hinf/dhinfdemo.m, control/hinf/h2syn.m, - control/hinf/hinf_ctr.m, control/hinf/hinfsyn.m, - control/hinf/wgt1o.m, control/obsolete/dlqg.m, - control/obsolete/packsys.m, control/obsolete/series.m, - control/system/__sysdefioname__.m, - control/system/__sysdefstname__.m, control/system/__sysgroupn__.m, - control/system/__tf2sysl__.m, control/system/buildssic.m, - control/system/c2d.m, control/system/d2c.m, - control/system/dmr2d.m, control/system/fir2sys.m, - control/system/is_signal_list.m, control/system/is_siso.m, - control/system/jet707.m, control/system/listidx.m, - control/system/moddemo.m, control/system/ord2.m, - control/system/packedform.m, control/system/parallel.m, - control/system/ss2sys.m, control/system/sys2tf.m, - control/system/sys2zp.m, control/system/sysadd.m, - control/system/sysappend.m, control/system/sysconnect.m, - control/system/syscont.m, control/system/sysdimensions.m, - control/system/sysdisc.m, control/system/sysdup.m, - control/system/sysgetsignals.m, control/system/sysgettype.m, - control/system/sysgroup.m, control/system/sysmin.m, - control/system/sysmult.m, control/system/sysprune.m, - control/system/sysrepdemo.m, control/system/sysscale.m, - control/system/syssetsignals.m, control/system/syssub.m, - control/system/sysupdate.m, control/system/tf2sys.m, - control/system/ugain.m, control/system/zp2ss.m, - control/system/zp2sys.m, control/util/__outlist__.m, - control/util/__zgpbal__.m, control/util/strappend.m: - Use cell arrays instead of lists. - - 2004-01-23 Stefan van der Walt - - * plot/bar.m: Increase size of cutoff vector from xlen-1 to xlen - so that bar (1, 1) will work. - - 2004-01-22 John W. Eaton - - * plot/__errcomm__.m: Cope with nargin now being a function. - * plot/__errplot__.m: Likewise. - * plot/__plt__.m: Likewise. - * plot/plot_border.m: Likewise. - - * Makefile.in (distclean, maintainer-clean): Remove DOCSTRINGS, - not $(DOCSTRINGS). - - 2004-01-21 Quentin Spencer - - * linear-algebra/rank.m: Allow rank ([]) to return 0, same as - rank ([], tol). - - 2004-01-10 John W. Eaton - - * elfun/acot.m: Return atan (1./z). - From Gregory Vanuxem . - - * miscellaneous/dir.m: New file. - - * general/num2str.m: Use "%d" as format if values are ints with - magnitude less than 1e10. - - 2004-01-09 John W. Eaton - - * general/num2str.m: If single arg is string, return it. - - * miscellaneous/not.m: New file. - - * miscellaneous/unix.m: New file. - - * miscellaneous/isunix.m: New file. - * miscellaneous/ispc.m: New file. - - * miscellaneous/computer.m: New file. - - * miscellaneous/delete.m: New file. - - 2004-01-08 John W. Eaton - - * statistics/tests/kolmogorov_smirnov_test_2.m: Fix test for ties. - - 2004-01-07 John W. Eaton - - * miscellaneous/path.m: Handle DEFAULT_LOADPATH substitution. - Always return substituted version of LOADPATH if nargout != 0. - - 2003-12-21 Schloegl Alois - - * miscellaneous/fullfile.m: If filename is empty, set it to "." - before continuing. - - * miscellaneous/fileparts.m: Allow name to start with ".". - - 2003-12-16 John W. Eaton - - * general/ind2sub.m: New file. - * general/sub2ind.m: New file. - - 2003-12-15 John W. Eaton - - * control/system/zp2ss.m: Don't save and restore - warn_empty_list_elements. - - 2003-12-15 Gabriele Pannocchia - - * control/system/zp2ss.m: Correct definition of pure gain system. - - 2003-12-10 Quentin Spencer - - * statistics/base/mean.m: Remove special case for row vectors. - - 2003-11-19 Quentin Spencer - - * signal/freqz_plot.m: Save and restore automatic_replot too. - - 2003-11-18 Danilo Piazzalunga - - * statistics/base/iqr.m: Handle matrices. - - 2003-11-18 John W. Eaton - - * general/issymmetric.m: Don't fail if norm (x) == 0. - - 2003-11-17 John W. Eaton - - * miscellaneous/path.m: Fix thinko in previous change. - - 2003-11-14 Gabriele Pannocchia - - * control/base/dare.m: Check positive (semi)definiteness and - dimensions of r (and q). - * control/base/dlqr.m: Check stabilizability of (A,B), - detectability of (A,Q), and whether (A,Q) has non minimal modes - near unit circle. - - * control/system/is_detectable.m: Use Hautus Lemma. - Correct the behavior for discrete-time systems. - * control/system/is_stabilizable.m: Likewise. - - * linear-algebra/krylov.m: Return H = [] in Vnrm == 0 case. - - * linear-algebra/krylovb.m: Fix typo in usage message. - - * general/isdefinite.m: New function. - - 2003-10-29 John W. Eaton - - * general/reshape: Delete. - - 2003-10-28 John W. Eaton - - * general/numel.m: Delete. - - 2003-10-15 John W. Eaton - - * miscellaneous/horzcat.m, miscellaneous/vartcat.m: New files. - - * deprecated/isstr.m: New file. - - 2003-10-04 John W. Eaton - - * plot/__axis_label__.m, plot/xlabel.m, plot/ylabel.m, - plot/zlabel.m, plot/title.m: Return a value if nargout > 0. - - 2003-10-02 Quentin Spencer - - * statistics/base/mean.m: Fix missing semicolon problem. - - 2003-09-08 Al Niessner - - * plot/subplot.m: New global variable, __multiplot_scale__. - - 2003-08-29 David Castelow - - * strings/dec2base.m, strings/dec2bin.m, strings/dec2hex.m: - Allow optional length argument. - - 2003-08-28 John W. Eaton - - * polynomial/polyfit.m: Avoid calling flipud. - From Pascal A. Dupuis . - Return structure as second output value for improved Matlab - compatibility. - - 2003-07-30 John W. Eaton - - * linear-algebra/cond.m: Behave as though old built-in variable - propagate_empty_matrices is always 1. Also handle empty matrices - with one non-zero dimension. - - * miscellaneous/dump_prefs.m: Add warn_separator_insert and - warn_single_quote_string to the list. - Delete whitespace_in_literal_matrix and propagate_empty_matrices - from the list. - - 2003-07-25 Paul Kienzle - - * signal/autocov.m: Transpose result of conj because diag returns - a column vector, not a row vector. - - * audio/playaudio.m, audio/record.m, image/image.m, - miscellaneous/bug_report.m: Protect spaces in filenames - with quotes. - - 2003-07-15 John W. Eaton - - * io/printf.m, io/puts.m: Delete. - - * miscellaneous/dump_prefs.m: Delete define_all_return_values and - default_return_value from the list. - Add warn_undefined_return_values to the list. - - - 2003-07-13 John W. Eaton - - * miscellaneous/dump_prefs.m: Delete default_global_variable_value - and initialize_global_variables from the list. - - 2003-07-11 John W. Eaton - - * image/colormap.m: Don't save and restore default_eval_print_flag. - - * miscellaneous/dump_prefs.m: Delete default_eval_print_flag. - - * control/util/zgshsr.m: Use x OP= y instead of x = x OP y. - * control/system/sys2fir.m: Likewise. - - * control/system/is_siso.m: Use && instead of & where appropriate. - * control/system/__tf2sysl__.m: Likewise. - - * control/system/__tf2sysl__.m: Use end instead of length(X). - - * control/freqchkw.m: Use %-escapes for error instead of num2str - and [] concatenation. - * control/system/sys2fir.m: Likewise. - - * control/base/dgram.m, control/base/freqchkw.m, - control/base/gram.m, control/system/__abcddims__.m, - control/system/__sysdefstname__.m, control/system/__tf2sysl__.m, - control/system/is_sample.m, control/system/is_signal_list.m, - control/system/is_siso.m, control/system/sys2fir.m, - control/system/syschtsam.m, control/system/sysgettsam.m, - control/system/sysgettype.m, control/system/tf2zp.m, - control/system/ugain.m, control/util/prompt.m, - control/util/run_cmd.m, control/util/zgrownorm.m, - control/util/zgshsr.m: - Improve conformance to Octave coding style. - - * miscellaneous/dump_prefs.m: Add warn_resize_on_reange_error to - the list. - Delete resize_on_range_error from the list. - - * control/base/pzmap.m, control/base/place.m, - control/base/__freqresp__.m, control/system/sysappend.m, - control/system/syscont.m, control/system/sysdisc.m, - control/system/sysgroup.m, control/system/tfout.m, - control/system/zp2ss.m, control/system/zpout.m, - control/util/__outlist__.m, signal/arma_rnd.m, general/shift.m, - strings/strcat.m: Save and restore warn_empty_list_elements, not - empty_list_elements_ok. - - * miscellaneous/dump_prefs.m: Add warn_empty_list_elements to the list. - Delete empty_list_elements_ok from the list. - - 2003-07-10 John W. Eaton - - * miscellaneous/dump_prefs.m: Include warn_neg_dim_as_zero in the - list. - Delete treat_neg_dim_as_zero from the list. - - * strings/blanks.m: Don't check treat_neg_dim_as_zero. - - 2003-07-09 John W. Eaton - - * general/reshape.m: Omit do_fortran_indexing from doc string (it - was not used in the code in any case). - - * strings/strjust.m: Temporarily set warn_fortran_indexing, not - do_fortran_indexing. - - * statistics/base/moment.m: Temporarily set warn_str_to_num, not - implict_str_to_num_ok. Use unwind_protect block to do it. - - * miscellaneous/dump_prefs.m: Include DEFAULT_EXEC_PATH, - DEFAULT_LOAD_PATH, crash_dumps_octave_core, - sighup_dumps_octave_core, sigterm_dumps_octave_core, - warn_imag_to_real, warn_num_to_str, warn_str_to_num, and - warn_fortran_indexing in the list. - Delete ok_to_lose_imaginary_part, implicit_num_to_str_ok, - implicit_str_to_num_ok, do_fortran_indexing, and - prefer_column_vectors from list. - - 2003-07-02 John W. Eaton - - * Makefile.in (distclean, maintainer-clean): Also remove - gethelp$(BUILD_EXEEXT), $(DOCSTRINGS), and autom4te.cache - directory. - - 2003-06-17 Aaron A. King - - * plot/hist.m: Don't forget to define n if x is a vector. - - 2003-06-13 Alois Schloegl - - * miscellaneous/fileparts.m: For compatibility with Matlab, - return "." with extension. - - 2003-06-04 John W. Eaton - - * control/base/__stepimp__.m, control/base/nichols.m, - control/base/nyquist.m, miscellaneous/dump_prefs.m, - plot/bottom_title.m, plot/mplot.m, plot/multiplot.m, - plot/oneplot.m, plot/plot_border.m, plot/subplot.m, - plot/subwindow.m, plot/top_title.m, signal/freqz_plot.m: - Eliminate gnuplot_has_multiplot (assume it is always true). - - 2003-05-14 John W. Eaton - - * Makefile.in, image/Makefile.in, startup/Makefile.in: Handle DESTDIR. - - 2003-05-05 Andy Adler - - * plot/hist.m: Improve performance by using different algorithms - depending on number of bins. - - 2003-05-01 John W. Eaton - - * control/system/sysadd.m: If systems are not "tf", convert before - adding. - - 2003-05-01 Paul Kienzle - - * image/imagesc.m: Accept data limits parameter for colormap. - - 2003-04-11 Doug Stewart - - * control/base/__stepimp__.m: If digital impulse, reduce gain of - the impulse by t_step. - - 2003-04-07 John W. Eaton - - * control/base/__bodquist__.m: Don't convert pdbig and fdbig to - column vectors. - - 2003-03-24 Quentin Spencer - - * linear-algebra/null.m: Handle empty matrix arg. - - 2003-03-18 John W. Eaton - - * general/shift.m: Force empty_list_elements_ok to 1. - - 2003-02-22 John W. Eaton - - * deprecated/struct_contains.m, deprecated/struct_elements.m: - New files. - - 2003-02-20 John W. Eaton - - * statistics/tests/kolmogorov_smirnov_test.m: Use str2func to make - function handle to pass to feval. - * statistics/base/qqplot.m: Likewise. - * statistics/base/ppplot.m: Likewise. - * signal/spectral_xdf.m: Likewise. - * signal/spectral_adf.m: Likewise. - - 2003-02-19 John W. Eaton - - * plot/axis.m: Avoid whitespace in literal matrix problem. - - 2003-02-18 John W. Eaton - - * linear-algebra/logm.m: New file. - - 2003-02-18 David Bateman - - * mkpkgadd: Scan C++ files as well - - 2003-02-13 Alois Schloegl - - * strings/findstr.m: Return empty set for zero-length target. - - 2003-02-11 Paul Kienzle - - * set/union.m: Preserve the orientation of inputs. - - 2003-01-23 John W. Eaton - - * general/int2str.m: Eliminate leading spaces. - - 2003-01-22 John W. Eaton - - * general/int2str.m: Do a better job with 0, Inf, and NaN, - - 2003-01-11 Paul Kienzle - - * Makefile.in (gethelp$(BUILD_EXEEXT)): Pass $(BUILD_CXXFLAGS) and - $(BUILD_LDFLAGS) to compiler. - - 2003-01-10 John W. Eaton - - * general/num2str.m: Don't specify field width for scalars. - - 2003-01-05 John W. Eaton - - * Makefile.in (DISTFILES): Don't forget mkpkgadd. - - 2003-01-03 John W. Eaton - - * gethelp.cc: Define __USE_STD_IOSTREAM if using Compaq C++. - - * miscellaneous/tempname.m: New file. - - * miscellaneous/tempdir.m: New file. - - * miscellaneous/fullfile.m: New file. - - 2003-01-02 John W. Eaton - - * miscellaneous/fileparts.m: New file. - - * io/beep.m: New file. - - * plot/__pltopt1__.m: Call undo_string_escapes for title part of - format only. - - 2003-01-01 John W. Eaton - - * strings/strcmp.m: Handle cell arrays of strings. - - 2002-12-18 John W. Eaton - - * general/int2str.m: Handle matrices. - * general/num2str.m: Likewise. - Also handle optional precision, and format args. - - 2002-12-17 John W. Eaton - - * audio/Makefile.in, control/base/Makefile.in, - control/hinf/Makefile.in, control/obsolete/Makefile.in, - control/system/Makefile.in, elfun/Makefile.in, - finance/Makefile.in, general/Makefile.in, image/Makefile.in, - io/Makefile.in, linear-algebra/Makefile.in, - miscellaneous/Makefile.in, polynomial/Makefile.in, - quaternion/Makefile.in, set/Makefile.in, signal/Makefile.in, - specfun/Makefile.in, special-matrix/Makefile.in, - statistics/base/Makefile.in, statistics/distributions/Makefile.in, - statistics/models/Makefile.in, statistics/tests/Makefile.in, - strings/Makefile.in, time/Makefile.in, plot/Makefile.in, - deprecated/Makefile.in: Use new do-script-install and - do-script-uninstall macros. - - * mkpkgadd: New script. - - * plot/close.m: New file. - - 2002-11-15 John W. Eaton - - * image/image.m: Use -raw option for xv. - From Remy Bruno - - 2002-11-12 John W. Eaton - - * control/base/lsim.m: Use approximate test for step size change. - - * signal/bartlett.m: Avoid row/column mismatch error. - - 2002-11-12 Paul Kienzle - - * statistics/base/var.m: Use better formula for improved accuracy. - - 2002-11-04 Nicholas Piper - - * control/base/lsim.m: Correct doc string. - - 2002-11-04 A S Hodel - - * control/system/syssub.m: Call tf2sys with Gnum-Hnum, not Gnum+Hnum. - - 2002-11-01 John W. Eaton - - * plot/contour.m: Handle x and y as matrices too. - - 2002-11-01 Joseph P. Skudlarek - - * plot/contour.m: Fix error and usage messages. - - 2002-11-01 John W. Eaton - - * plot/contour.m: Correct orientation of plot. - - 2002-10-31 John W. Eaton - - * control/base/analdemo.m: Fix typo. - - 2002-10-31 Francesco Potorti` - - * statistics/distributions/discrete_pdf.m: Fix typo. - - 2002-10-09 John W. Eaton - - * mkdoc: Exit immediately on errors. - Exit with error if gethelp does not exist. - - * Makefile.in: Use $(BUILD_EXEEXT) as appropriate. - - 2002-10-08 John W. Eaton - - * Makefile.in (gethelp): Use $(BUILD_CXX), not $(CXX). - - 2002-09-27 Paul Kienzle - - * statistics/distributions/normal_cdf.m: Handle variance == 0. - * statistics/distributions/normal_pdf.m: Likewise. - * statistics/distributions/normal_inv.m: Likewise. - - 2002-09-27 Paul Kienzle - - * specfun/erfinv.m: Return NaN for NaN inputs. - - 2002-09-26 Jeff Cunningham - - * statistics/base/var.m: Handle complex values. - - 2002-08-09 John W. Eaton - - * configure.in (AC_CONFIG_FILES): Add deprecated/Makefile to the - list. - * deprecated/Makefile.in: New file. - - 2002-08-09 Paul Kienzle - - * statistics/distributions/beta_cdf.m: Replace betai with betainc. - * statistics/distributions/binomial_cdf.m: Likewise. - * statistics/distributions/f_cdf.m: Likewise. - * statistics/distributions/t_cdf.m: Likewise. - - * miscellaneous/bincoeff.m: Replace lgamma with gammaln. - * specfun/beta.m: Likewise. - * special-matrix/invhilb.m: Likewise (but it is only in a comment). - * statistics/distributions/gamma_pdf.m: Likewise. - * statistics/distributions/poisson_pdf.m: Likewise. - - * statistics/distributions/gamma_cdf.m: replace gammai with gammainc - * statistics/distributions/poisson_cdf.m: Likewise. - - 2002-08-09 John W. Eaton - - * deprecated/is_bool.m: New file. - * deprecated/is_complex.m: New file. - * deprecated/is_global.m: New file. - * deprecated/is_list.m: New file. - * deprecated/is_matrix.m: New file. - * deprecated/is_scalar.m: New file. - * deprecated/is_square.m: New file. - * deprecated/is_stream.m: New file. - * deprecated/is_struct.m: New file. - * deprecated/is_symmetric.m: New file. - * deprecated/is_vector.m: New file. - * Change all callers of these functions to use the new names. - - * deprecated: New directory. - * Makefile.in (SUBDIRS): Add it to the list. - - * general/isscalar.m: Rename from is_scalar.m. - * general/issquare.m: Rename from is_square.m. - * general/issymmetric.m: Rename from is_symmetric.m. - * general/isvector.m: Rename from is_vector.m. - - 2002-08-05 John W. Eaton - - * statistics/base/mean.m: Allow empty matrices. - Handle DIM arg. - - 2002-08-05 Teemu Ikonen - - * plot/__errcomm__.m: If format is not specified, default to error - bar format. - - 2002-08-01 John W. Eaton - - * miscellaneous/popen2.m: Use F_SETFL and O_NONBLOCK, not - __F_SETFL__ and __O_NONBLOCK__. - - * image/saveimage.m: Use OCTAVE_VERSION, not __OCTAVE_VERSION__. - * miscellaneous/bug_report.m: Likewise. - - 2002-07-25 John W. Eaton - - * general/mod.m: Use isreal (x), not any (any (imag (x))). - * general/rem.m: Likewise. - - * plot/loglogerr.m: Use varargin instead of old style varargs. - * plot/semilogxerr.m: Likewise. - * plot/semilogyerr.m: Likewise. - - 2002-07-25 Teemu Ikonen - - * plot/__errcomm__.m: New file. Common functionality for error plots. - * plot/loglogerr.m: New file. Double logarithm plots with errorbars. - * plot/semilogxerr.m: New file. Semilogarithm plots with errorbars. - * plot/semilogyerr.m: New file. Semilogarithm plots with errorbars - - * plot/errorbar.m: Use __errcomm__.m. - * plot/__errplot__.m: Minor cleanups. - * plot/__pltopt__.m: Handle boxxyerrorbars plot style. - * plot/__pltopt1__.m: Likewise. - - 2002-07-10 John W. Eaton - - * general/rem.m: Delete redundant call to usage. - - * general/mod.m: Additional error checks, Texinfoize doc string. - - 2002-04-29 Paul Kienzle - - * general/mod.m: New function. - - 2002-07-10 John W. Eaton - - * control/system/sysmult.m: Use varargin instead of old style varargs. - * control/system/sysadd.m: Likewise. - * control/system/sysgroup.m: Likewise. - * control/system/syssub.m: Likewise. - * elfun/gcd.m: Likewise. - * elfun/lcm.m: Likewise. - * general/common_size.m: Likewise. - * io/printf.m: Likewise. - * miscellaneous/menu.m: Likewise. - * miscellaneous/path.m: Likewise. - * plot/__errplot__.m: Likewise. - * plot/__plt__.m: Likewise. - * plot/axis.m: Likewise. - * plot/errorbar.m: Likewise. - * plot/mplot.m: Likewise. - * plot/loglog.m: Likewise. - * plot/plot.m: Likewise. - * plot/plot_border.m: Likewise. - * plot/semilogx.m: Likewise. - * plot/semilogy.m: Likewise. - * plot/xlabel.m: Likewise. - * plot/ylabel.m: Likewise. - * plot/zlabel.m: Likewise. - * statistics/base/ppplot.m: Likewise. - * statistics/base/qqplot.m: Likewise. - * statistics/tests/bartlett_test.m: Likewise. - * statistics/tests/kolmogorov_smirnov_test.m: Likewise. - * statistics/tests/kruskal_wallis_test.m: Likewise. - * strings/str2mat.m: Likewise. - * strings/strcat.m: Likewise. - - 2002-06-27 Paul Kienzle - - * statistics/distributions/gamma_pdf.m: Avoid overflow in more cases. - - 2002-05-01 John W. Eaton - - * skip-autoheader: New file, for autogen.sh. - * Makefile.in (DISTFILES): Add it to the list. - - 2002-04-29 Paul Kienzle - - * general/repmat.m: New function. - - 2002-04-25 Paul Kienzle - - * audio/lin2mu.m: Accept matrices and [-1,1] normalized audio. - Use optional parameter to specify the number of bits in the input. - * audio/mu2lin.m: Accept matrices, return n-bit integers or - floats in the range [-1,1], 2x speedup. - - * strings/index.m, strings/rindex.m: Vectorize for speed. - - 2002-04-25 John W. Eaton - - * linear-algebra/kron.m: Delete. - - 2002-04-24 Paul Kienzle - - * signal/freqz.m: If nargout is zero, plot results instead of - returning them. - * signal/freqz_plot.m: New file. - - 2002-04-24 Bill Lash - - * signal/unwrap.m: New file. - - 2002-04-23 Paul Kienzle - - * image/rgb2hsv.m: Faster, more accurate, remove the - divide by zero warning. - - 2002-04-09 Paul Kienzle - - * strings/deblank.m: Trim \0 as well as blank. - - * freqz.m: Evaluate a specific range of frequencies - expressed in radians or Hz relative to a supplied sample rate. - - 2002-04-04 Paul Kienzle - - * signal/fftfilt.m: Filter columns if called with a matrix. - - * strings/findstr.m: Vectorize as much as possible. - - 2002-04-04 Dirk Laurie - - * special-matrix/invhilb.m: New version that is faster and more - accurate. - - 2002-04-03 Steven G. Johnson - - * configure.in: Update for autoconf 2.5x. - - 2002-04-03 Paul Kienzle - - * special-matrix/vander.m: Code tidy and vectorize. - - 2002-04-02 Paul Kienzle - - * linear-algebra/cross.m: Accept nx3 and 3xn matrices, in addition - to vectors. Issue a warning in the case x matches y' but return a - column vector as Octave currently does. - - * plot/contour.m: Set default number of levels for contour(x,y,z). - - * control/system/starp.m: Leave more of the documentation - processing to texinfo and less to the @format block. - - * image/imagesc.m: Only display image if no output is requested. - Code tidying. - - 2002-03-07 Paul Kienzle - - * statistics/base/center.m: Accept and return empty matrix. - - 2002-02-22 John W. Eaton - - * specfun/erfinv.m: Fix usage message. - - 2002-02-08 John W. Eaton - - * elfun/coth.m: Use 1 ./ tanh(z) instead of cosh(z) ./ sinh(z). - From "Michael O'Brien" . - - 2001-06-06 John W. Eaton - - * statistics/distributions/discrete_cdf.m: Downcase incorrectly - capitalized variable names. - - 2001-05-30 Jean-Francois Cardoso - - * m/image/saveimage.m: fix saving an image to Postscript format. - - 2001-04-18 A. Scottedward Hodel - - * control/system/is_stabilizable.m: Pass a to sys2ss, not sys. - - 2001-02-28 Kai Habel - - * general/cart2pol.m: New file. - * general/pol2cart.m: New file. - * general/cart2sph.m: New file. - * general/sph2cart.m: New file. - * image/rgb2hsv.m: New file. - * image/hsv2rgb.m: New file. - - 2001-02-26 Paul Kienzle - - * plot/meshgrid.m: Avoid for loops. - * plot/meshdom.m: Likewise. - - 2001-02-22 John W. Eaton - - * linear-algebra/norm.m: Use sqrt instead of ^0.5. - - 2001-02-22 Heinz Bauschke - - * linear-algebra/norm.m: Use more efficient method for Frobenius - norm. - - 2001-02-09 David Livings - - * statistics/tests/welch_test.m: Fix typo. - - * statistics/distributions/chisquare_cdf.m: - Don't restrict inputs to be only positive integers. - * statistics/distributions/chisquare_inv.m: Likewise. - * statistics/distributions/chisquare_pdf.m: Likewise. - * statistics/distributions/chisquare_rnd.m: Likewise. - * statistics/distributions/f_cdf.m: Likewise. - * statistics/distributions/f_inv.m: Likewise. - * statistics/distributions/f_pdf.m: Likewise. - * statistics/distributions/f_rnd.m: Likewise. - * statistics/distributions/t_cdf.m: Likewise. - * statistics/distributions/t_inv.m: Likewise. - * statistics/distributions/t_pdf.m: Likewise. - * statistics/distributions/t_rnd.m: Likewise. - - 2001-02-08 Paul Kienzle - - * strings/dec2base.m: New file. - * strings/base2dec.m: New file. - * strings/strjust.m: New file. - * strings/dec2hex.m: Replace with version that just calls 2dec2base. - * strings/dec2bin.m: Likewise. - * strings/hex2dec.m: Replace with version that just calls base2dec. - * strings/bin2dec.m: Likewise. - - 2001-02-07 David Livings - - * statistics/base/ppplot.m: Use gset, not set. - * statistics/base/qqplot.m: Likewise. - - 2001-02-05 Ondrej Popp - - * control/system/c2d.m: Add missing endif. - - 2000-12-15 Teemu Ikonen - - * strings/index.m: Return 0 if either string is empty. - - 2000-12-15 Ben Sapp - - * control/system/c2d.m: Allow option of matched pole/zero - equivalent for conversion. - - 2000-12-15 Matthew W. Roberts - - * strings/findstr.m: Return empty matrix if search string is empty. - - 2000-12-15 Kai Habel - - * saveimage.m: Do create rawbit image for black and white images, - but do it correctly. - - 2000-12-13 Teemu Ikonen - - * polynomial/deconv.m: For compatibility with Matlab, don't reduce - result polynomials. - - 2000-12-07 John W. Eaton - - * image/saveimage.m: Don't try to create rawbit image. - - 2000-11-21 John W. Eaton - - * Makefile.in (bin-dist): Pass -C to $(MAKE), not -c. - - 2000-11-16 Paul Kienzle - - * plot/contour.m: Reorder args for Matlab compatibility. - - 2000-10-27 Mats Jansson - - * set/create_set.m: Avoid empty matrix in matrix list warning. - - 2000-09-08 Teemu Ikonen - - * plot/errorbar.m, plot/__errplot__.m: New functions. - - * plot/mesh.m: Also set nologscale before plotting. - * plot/__pltopt1__.m: Handle xerrorbars, yerrorbars, and - xyerrorbars instead of just errorbars. - - 2000-08-25 Thomas Walter - - * image/image.m: Try display (from ImageMagick) first. - - 2000-08-01 Rolf Fabian - - * plot/meshgrid.m: Use transpose to reorient vectors, not complex - conjugate transpose. - - 2000-07-21 John W. Eaton - - * strings/str2mat.m: Apply setstr to each argument. - - 2000-07-17 Gabriele Pannocchia - - * control/base/dkalman.m: New file. - * control/base/dlqe.m: Handle singular A matrix. - * control/base/dlqr.m: Likewise. - - 2000-07-14 John W. Eaton - - * strings/strcmp.m: Return 0 instead of an error if row and column - dimensions don't match. - - 2000-06-30 Kai Habel - - * plot/hist.m: Allow 3 argument form to work. - - 2000-06-27 Matthew W. Roberts - - * plot/plot.m: Add examples in doc string. - - 2000-06-08 Ben Sapp - - * control/base/__stepimp__.m: Reset multiplot state when done. - Do the right thing even if automatic_replot is not zero. - Avoid failure if system has pure imaginary poles. - - 2000-06-06 John W. Eaton - - * general/logical.m: Return arg if it is empty. Better error - message for non-numeric types. - - 2000-05-31 A. Scottedward Hodel - - * control/base/dlqe.m: Update documentation. Fix typo. Warn - about difference with Matlab dlqe function. - - * control/system/sysmult.m: Fix typo in argument dimensions checking. - - 2000-05-24 Ben Sapp - - * strings/strrep.m: Fix typo. - - 2000-05-13 John W. Eaton - - * strings/strrep.m: Don't transpose result for case of jump > 0. - - 2000-05-13 Paul Kienzle - - * strings/strrep.m: Avoid for loop for speed. - * plot/axis.m: Handle string options for Matlab compatibility. - - 2000-04-04 John Smith - - * statistics/distributions/beta_inv.m: Provide better(?) initial - guess for iteration. - - 2000-03-31 Paul Kienzle - - * image/image.m: Allow image (A) or image (x, y, A). - * image/imagesc.m: Likewise. - - * image/image.m: If zoom is not supplied, or if it is an empty - matrix, autoscale the image. - - 2000-03-22 John W. Eaton - - * plot/title.m, plot/bottom_title.m, plot/top_title.m: - Undo string escapes in text twice(!) before sending to gnuplot. - - * image/saveimage.m: Add comment to file saying who created it and - when it was created. Suggested by Stephen Eglen - . - - 2000-03-21 Paul Kienzle - - * polynomial/polyreduce.m: Simplify by looking for the first - non-zero element rather than the last of the first set of zero - elements. - - * plot/__pltopt1__.m: Accept "--", "-.", and ":" line styles. - - 2000-03-21 Kai Habel - - * image/saveimage.m: Swap black and white colormaps so zero is - displayed as black and 1 is displayed as white. - Fix indexing bug in ppm case. - - 2000-03-06 Stephen Eglen - - * statistics/tests/kolmogorov_smirnov_test_2.m: Account for ties - between the two distributions (took same approach as ks.test() in R.) - - 2000-02-29 John W. Eaton - - * control/base/bode.m: Temporarily disable automatic_replot. - - 2000-02-23 John W. Eaton - - * Makefile.in (clean): Also remove gethelp. - - * specfun/erfinv.m: Use z_new in convergence test, not z_old. - - 2000-02-11 Georg Thimm - - * set/create_set.m: Use find to avoid while loop. - - 2000-02-11 Stephen Eglen - - * plot/hist.m: New optional third argument. - - 2000-02-10 John W. Eaton - - * miscellaneous/bug_report.m: Use octave-bug script with version - number appended. - - 2000-02-04 John W. Eaton - - * gethelp.cc: Sprinkle with std:: qualifier. - - 2000-01-30 John W. Eaton - - * image/saveimage.m: Delete some debugging code. - - 2000-01-27 John W. Eaton - - * signal/sinc.m: Avoid reshaping. - - * image/rgb2ind.m: No longer needs to reset do_fortran_indexing. - * image/ind2rgb.m: Ditto. - * image/ind2gray.m: Ditto. - * general/reshape.m: Ditto. Also no longer needs to reset - implicit_str_to_num_ok. - - 2000-01-26 John W. Eaton - - * miscellaneous/popen2.m: Deal with the fact that pipe now returns - a list of file structures, not a vector of numeric file ids. - - 2000-01-25 John W. Eaton - - * plot/__axis_label__.m: New function. - Undo string escapes in text twice(!) before sending to gnuplot. - * plot/xlabel.m: Use it. - * plot/ylabel.m: Ditto. - * plot/zlabel.m: Ditto. - - * plot/mesh.m: Fix error message to reflect reality. - - 2000-01-24 Cyril Humbert - - * statistics/distributions/weibull_pdf.m: Use correct formula. - - 2000-01-22 Michael Reifenberger - - * audio/saveaudio.m: Also accept files with .ul extension. - * audio/loadaudio.m: Ditto. - * audio/playaudio.m: Ditto. - - 2000-01-19 John W. Eaton - - * statistics/distributions/beta_cdf.m: Texinfoize doc string. - * statistics/distributions/beta_inv.m: Ditto. - * statistics/distributions/beta_pdf.m: Ditto. - * statistics/distributions/beta_rnd.m: Ditto. - * statistics/distributions/binomial_cdf.m: Ditto. - * statistics/distributions/binomial_inv.m: Ditto. - * statistics/distributions/binomial_pdf.m: Ditto. - * statistics/distributions/binomial_rnd.m: Ditto. - * statistics/distributions/cauchy_cdf.m: Ditto. - * statistics/distributions/cauchy_inv.m: Ditto. - * statistics/distributions/cauchy_pdf.m: Ditto. - * statistics/distributions/cauchy_rnd.m: Ditto. - * statistics/distributions/chisquare_cdf.m: Ditto. - * statistics/distributions/chisquare_inv.m: Ditto. - * statistics/distributions/chisquare_pdf.m: Ditto. - * statistics/distributions/chisquare_rnd.m: Ditto. - * statistics/distributions/discrete_cdf.m: Ditto. - * statistics/distributions/discrete_inv.m: Ditto. - * statistics/distributions/discrete_pdf.m: Ditto. - * statistics/distributions/discrete_rnd.m: Ditto. - * statistics/distributions/empirical_cdf.m: Ditto. - * statistics/distributions/empirical_inv.m: Ditto. - * statistics/distributions/empirical_pdf.m: Ditto. - * statistics/distributions/empirical_rnd.m: Ditto. - * statistics/distributions/exponential_cdf.m: Ditto. - * statistics/distributions/exponential_inv.m: Ditto. - * statistics/distributions/exponential_pdf.m: Ditto. - * statistics/distributions/exponential_rnd.m: Ditto. - * statistics/distributions/f_cdf.m: Ditto. - * statistics/distributions/f_inv.m: Ditto. - * statistics/distributions/f_pdf.m: Ditto. - * statistics/distributions/f_rnd.m: Ditto. - * statistics/distributions/gamma_cdf.m: Ditto. - * statistics/distributions/gamma_inv.m: Ditto. - * statistics/distributions/gamma_pdf.m: Ditto. - * statistics/distributions/gamma_rnd.m: Ditto. - * statistics/distributions/geometric_cdf.m: Ditto. - * statistics/distributions/geometric_inv.m: Ditto. - * statistics/distributions/geometric_pdf.m: Ditto. - * statistics/distributions/geometric_rnd.m: Ditto. - * statistics/distributions/hypergeometric_cdf.m: Ditto. - * statistics/distributions/hypergeometric_inv.m: Ditto. - * statistics/distributions/hypergeometric_pdf.m: Ditto. - * statistics/distributions/hypergeometric_rnd.m: Ditto. - * statistics/distributions/kolmogorov_smirnov_cdf.m: Ditto. - * statistics/distributions/laplace_cdf.m: Ditto. - * statistics/distributions/laplace_inv.m: Ditto. - * statistics/distributions/laplace_pdf.m: Ditto. - * statistics/distributions/laplace_rnd.m: Ditto. - * statistics/distributions/logistic_cdf.m: Ditto. - * statistics/distributions/logistic_inv.m: Ditto. - * statistics/distributions/logistic_pdf.m: Ditto. - * statistics/distributions/logistic_rnd.m: Ditto. - * statistics/distributions/lognormal_cdf.m: Ditto. - * statistics/distributions/lognormal_inv.m: Ditto. - * statistics/distributions/lognormal_pdf.m: Ditto. - * statistics/distributions/lognormal_rnd.m: Ditto. - * statistics/distributions/normal_cdf.m: Ditto. - * statistics/distributions/normal_inv.m: Ditto. - * statistics/distributions/normal_pdf.m: Ditto. - * statistics/distributions/normal_rnd.m: Ditto. - * statistics/distributions/pascal_cdf.m: Ditto. - * statistics/distributions/pascal_inv.m: Ditto. - * statistics/distributions/pascal_pdf.m: Ditto. - * statistics/distributions/pascal_rnd.m: Ditto. - * statistics/distributions/poisson_cdf.m: Ditto. - * statistics/distributions/poisson_inv.m: Ditto. - * statistics/distributions/poisson_pdf.m: Ditto. - * statistics/distributions/poisson_rnd.m: Ditto. - * statistics/distributions/stdnormal_cdf.m: Ditto. - * statistics/distributions/stdnormal_inv.m: Ditto. - * statistics/distributions/stdnormal_pdf.m: Ditto. - * statistics/distributions/stdnormal_rnd.m: Ditto. - * statistics/distributions/t_cdf.m: Ditto. - * statistics/distributions/t_inv.m: Ditto. - * statistics/distributions/t_pdf.m: Ditto. - * statistics/distributions/t_rnd.m: Ditto. - * statistics/distributions/uniform_cdf.m: Ditto. - * statistics/distributions/uniform_inv.m: Ditto. - * statistics/distributions/uniform_pdf.m: Ditto. - * statistics/distributions/uniform_rnd.m: Ditto. - * statistics/distributions/weibull_cdf.m: Ditto. - * statistics/distributions/weibull_inv.m: Ditto. - * statistics/distributions/weibull_pdf.m: Ditto. - * statistics/distributions/weibull_rnd.m: Ditto. - * statistics/distributions/wiener_rnd.m: Ditto. - - 2000-01-18 John W. Eaton - - * statistics/base/values.m: Texinfoize doc string. - * statistics/base/var.m: Ditto. - * statistics/base/table.m: Ditto. - * statistics/base/studentize.m: Ditto. - * statistics/base/statistics.m: Ditto. - * statistics/base/spearman.m: Ditto. - * statistics/base/run_count.m: Ditto. - * statistics/base/ranks.m: Ditto. - * statistics/base/range.m: Ditto. - * statistics/base/qqplot.m: Ditto. - * statistics/base/probit.m: Ditto. - * statistics/base/ppplot.m: Ditto. - * statistics/base/moment.m: Ditto. - * statistics/base/meansq.m: Ditto. - * statistics/base/logit.m: Ditto. - * statistics/base/kendall.m: Ditto. - * statistics/base/iqr.m: Ditto. - * statistics/base/cut.m: Ditto. - * statistics/base/cor.m: Ditto. - * statistics/base/cloglog.m: Ditto. - * statistics/base/center.m: Ditto. - * statistics/models/logistic_regression.m: Ditto. - * statistics/models/logistic_regression_derivative.m: Ditto. - * statistics/models/logistic_regression_likelihood.m: Ditto. - * statistics/tests/anova.m: Ditto. - * statistics/tests/bartlett_test.m: Ditto. - * statistics/tests/chisquare_test_homogeneity.m: Ditto. - * statistics/tests/chisquare_test_independence.m: Ditto. - * statistics/tests/cor_test.m: Ditto. - * statistics/tests/f_test_regression.m: Ditto. - * statistics/tests/hotelling_test.m: Ditto. - * statistics/tests/hotelling_test_2.m: Ditto. - * statistics/tests/kolmogorov_smirnov_test.m: Ditto. - * statistics/tests/kolmogorov_smirnov_test_2.m: Ditto. - * statistics/tests/kruskal_wallis_test.m: Ditto. - * statistics/tests/manova.m: Ditto. - * statistics/tests/mcnemar_test.m: Ditto. - * statistics/tests/prop_test_2.m: Ditto. - * statistics/tests/run_test.m: Ditto. - * statistics/tests/sign_test.m: Ditto. - * statistics/tests/t_test.m: Ditto. - * statistics/tests/t_test_2.m: Ditto. - * statistics/tests/t_test_regression.m: Ditto. - * statistics/tests/u_test.m: Ditto. - * statistics/tests/var_test.m: Ditto. - * statistics/tests/welch_test.m: Ditto. - * statistics/tests/wilcoxon_test.m: Ditto. - * statistics/tests/z_test.m: Ditto. - * statistics/tests/z_test_2.m: Ditto. - - 2000-01-17 John W. Eaton - - * strings/bin2dec.m: Texinfoize doc string. - * plot/__plr1__.m: Ditto. - * plot/__pltopt__.m: Ditto. - * plot/__plt__.m: Ditto. - * plot/__plt2vv__.m: Ditto. - * plot/__plr2__.m: Ditto. - * plot/__plr__.m: Ditto. - * plot/__plt1__.m: Ditto. - * plot/__plt2__.m: Ditto. - * plot/__plt2mm__.m: Ditto. - * plot/__plt2mv__.m: Ditto. - * plot/__plt2ss__.m: Ditto. - * miscellaneous/paren.m: Ditto. - * miscellaneous/comma.m: Ditto. - * miscellaneous/semicolon.m: Ditto. - * miscellaneous/path.m: Ditto. - * miscellaneous/list_primes.m: Ditto. - * miscellaneous/flops.m: Ditto. - * miscellaneous/dump_prefs.m: Ditto. - * miscellaneous/bug_report.m: Ditto. - * linear-algebra/dot.m: Ditto - * linear-algebra/dmult.m: Ditto. - * general/randperm.m: Ditto. - * general/logical.m: Ditto. - * general/is_duplicate_entry.m: Ditto. - * signal/arch_fit.m: Ditto. - * signal/arch_rnd.m: Ditto. - * signal/arch_test.m: Ditto. - * signal/arma_rnd.m: Ditto. - * signal/autocor.m: Ditto. - * signal/autocov.m: Ditto. - * signal/autoreg_matrix.m: Ditto. - * signal/bartlett.m: Ditto. - * signal/blackman.m: Ditto. - * signal/detrend.m: Ditto. - * signal/diffpara.m: Ditto. - * signal/durbinlevinson.m: Ditto. - * signal/fftconv.m: Ditto. - * signal/fftfilt.m: Ditto. - * signal/fftshift.m: Ditto. - * signal/fractdiff.m: Ditto. - * signal/freqz.m: Ditto. - * signal/hamming.m: Ditto. - * signal/hanning.m: Ditto. - * signal/hurst.m: Ditto. - * signal/periodogram.m: Ditto. - * signal/rectangle_lw.m: Ditto. - * signal/rectangle_sw.m: Ditto. - * signal/sinc.m: Ditto. - * signal/sinetone.m: Ditto. - * signal/sinewave.m: Ditto. - * signal/spectral_adf.m: Ditto. - * signal/spectral_xdf.m: Ditto. - * signal/spencer.m: Ditto. - * signal/stft.m: Ditto. - * signal/synthesis.m: Ditto. - * signal/triangle_lw.m: Ditto. - * signal/triangle_sw.m: Ditto. - * signal/yulewalker.m: Ditto. - * control/util/strappend.m: Ditto. - * control/base/nichols.m: Ditto. - * control/system/is_signal_list.m: Ditto. - * control/system/listidx.m: Ditto. - * control/system/sysgettsam.m: Ditto. - * control/system/sysidx.m: Ditto. - - 2000-01-14 John W. Eaton - - * control/system/__abcddims__.m: Rename from - control/system/abcddims.m, change all callers. - * control/base/__bodquist__.m: Likewise. - * control/base/__freqresp__.m: Likewise. - * control/util/__outlist__.m: Likewise. - * control/base/__stepimp__.m: Likewise. - * control/system/__syschnamesl__.m: Likewise. - * control/system/__syscont_disc__.m: Likewise. - * control/system/__sysdefioname__.m: Likewise. - * control/system/__sysdefstname__.m: Likewise. - * control/system/__sysgroupn__.m: Likewise. - * control/system/__tf2sysl__.m: Likewise. - * control/util/__zgpbal__.m: Likewise. - * control/system/__zp2ssg2__.m: Likewise. - - * quaternion/demoquat.m: Add copyright notice, Texinfoize doc string. - * quaternion/qconj.m: Ditto. - * quaternion/qcoordinate_plot.m: Ditto. - * quaternion/qderiv.m: Ditto. - * quaternion/qderivmat.m: Ditto. - * quaternion/qinv.m: Ditto. - * quaternion/qmult.m: Ditto. - * quaternion/qtrans.m: Ditto. - * quaternion/qtransv.m: Ditto. - * quaternion/qtransvmat.m: Ditto. - * quaternion/quaternion.m: Ditto. - - 2000-01-13 John W. Eaton - - * control/base/Makefile.in: Ditto. - * control/hinf/Makefile.in: New file. - * control/marsyas/Makefile.in: Ditto. - * control/obsolete/Makefile.in: Ditto. - * control/system/Makefile.in: Ditto. - * control/util/Makefile.in: Ditto. - - * strings/com2str.m: Move here from control directory. - - * control/base: New directory. - * control/base/DEMOcontrol.m: Move here from control directory. - * control/base/analdemo.m: Ditto. - * control/base/are.m: Ditto. - * control/base/bddemo.m: Ditto. - * control/base/bode.m: Ditto. - * control/base/bode_bounds.m: Ditto. - * control/base/bodquist.m: Ditto. - * control/base/controldemo.m: Ditto. - * control/base/ctrb.m: Ditto. - * control/base/damp.m: Ditto. - * control/base/dare.m: Ditto. - * control/base/dcgain.m: Ditto. - * control/base/dgram.m: Ditto. - * control/base/dlqe.m: Ditto. - * control/base/dlqr.m: Ditto. - * control/base/dlyap.m: Ditto. - * control/base/dre.m: Ditto. - * control/base/frdemo.m: Ditto. - * control/base/freqchkw.m: Ditto. - * control/base/freqresp.m: Ditto. - * control/base/gram.m: Ditto. - * control/base/impulse.m: Ditto. - * control/base/lqe.m: Ditto. - * control/base/lqg.m: Ditto. - * control/base/lqr.m: Ditto. - * control/base/lsim.m: Ditto. - * control/base/ltifr.m: Ditto. - * control/base/lyap.m: Ditto. - * control/base/nichols.m: Ditto. - * control/base/nyquist.m: Ditto. - * control/base/obsv.m: Ditto. - * control/base/place.m: Ditto. - * control/base/pzmap.m: Ditto. - * control/base/rldemo.m: Ditto. - * control/base/rlocus.m: Ditto. - * control/base/step.m: Ditto. - * control/base/stepimp.m: Ditto. - * control/base/tzero.m: Ditto. - * control/base/tzero2.m: Ditto. - - * control/hinf: New directory. - * control/hinf/dhinfdemo.m: Move here from control directory. - * control/hinf/h2norm.m: Ditto. - * control/hinf/h2syn.m: Ditto. - * control/hinf/hinf_ctr.m: Ditto. - * control/hinf/hinfdemo.m: Ditto. - * control/hinf/hinfnorm.m: Ditto. - * control/hinf/hinfsyn.m: Ditto. - * control/hinf/hinfsyn_chk.m: Ditto. - * control/hinf/hinfsyn_ric.m: Ditto. - * control/hinf/wgt1o.m: Ditto. - * control/hinf/dgkfdemo.m: Ditto. - * control/hinf/is_dgkf.m: Ditto. - - * control/marsyas: New directory. - * control/marsyas/demomarsyas.m: Move here from control directory. - * control/marsyas/susball.m: Ditto. - - * control/obsolete/dezero.m: Move here from control directory. - * control/obsolete/rotg.m: Ditto. - - * control/system: New directory. - * control/system/abcddim.m: Move here from control directory. - * control/system/abcddims.m: Ditto. - * control/system/buildssic.m: Ditto. - * control/system/c2d.m: Ditto. - * control/system/d2c.m: Ditto. - * control/system/dmr2d.m: Ditto. - * control/system/fir2sys.m: Ditto. - * control/system/is_abcd.m: Ditto. - * control/system/is_digital.m: Ditto. - * control/system/is_sample.m: Ditto. - * control/system/is_signal_list.m: Ditto. - * control/system/is_siso.m: Ditto. - * control/system/is_controllable.m: Ditto. - * control/system/is_detectable.m: Ditto. - * control/system/is_observable.m: Ditto. - * control/system/is_stabilizable.m: Ditto. - * control/system/is_stable.m: Ditto. - * control/system/jet707.m: Ditto. - * control/system/listidx.m: Ditto. - * control/system/moddemo.m: Ditto. - * control/system/ord2.m: Ditto. - * control/system/packedform.m: Ditto. - * control/system/parallel.m: Ditto. - * control/system/ss2sys.m: Ditto. - * control/system/ss2tf.m: Ditto. - * control/system/ss2zp.m: Ditto. - * control/system/starp.m: Ditto. - * control/system/sys2fir.m: Ditto. - * control/system/sys2ss.m: Ditto. - * control/system/sys2tf.m: Ditto. - * control/system/sys2zp.m: Ditto. - * control/system/sysadd.m: Ditto. - * control/system/sysappend.m: Ditto. - * control/system/syschnamesl.m: Ditto. - * control/system/syschtsam.m: Ditto. - * control/system/sysconnect.m: Ditto. - * control/system/syscont.m: Ditto. - * control/system/syscont_disc.m: Ditto. - * control/system/sysdefioname.m: Ditto. - * control/system/sysdefstname.m: Ditto. - * control/system/sysdimensions.m: Ditto. - * control/system/sysdisc.m: Ditto. - * control/system/sysdup.m: Ditto. - * control/system/sysgetsignals.m: Ditto. - * control/system/sysgettsam.m: Ditto. - * control/system/sysgettype.m: Ditto. - * control/system/sysgroup.m: Ditto. - * control/system/sysgroupn.m: Ditto. - * control/system/sysidx.m: Ditto. - * control/system/sysmin.m: Ditto. - * control/system/sysmult.m: Ditto. - * control/system/sysout.m: Ditto. - * control/system/sysprune.m: Ditto. - * control/system/sysreorder.m: Ditto. - * control/system/sysrepdemo.m: Ditto. - * control/system/sysscale.m: Ditto. - * control/system/syssetsignals.m: Ditto. - * control/system/syssub.m: Ditto. - * control/system/sysupdate.m: Ditto. - * control/system/tf2ss.m: Ditto. - * control/system/tf2sys.m: Ditto. - * control/system/tf2sysl.m: Ditto. - * control/system/tf2zp.m: Ditto. - * control/system/tfout.m: Ditto. - * control/system/ugain.m: Ditto. - * control/system/zp2ss.m: Ditto. - * control/system/zp2ssg2.m: Ditto. - * control/system/zp2sys.m: Ditto. - * control/system/zp2tf.m: Ditto. - * control/system/zpout.m: Ditto. - - * control/util: New directory. - * control/util/axis2dlim.m: Move here from control directory. - * control/util/outlist.m: Ditto. - * control/util/prompt.m: Ditto. - * control/util/run_cmd.m: Ditto. - * control/util/sortcom.m: Ditto. - * control/util/strappend.m: Ditto. - * control/util/swap.m: Ditto. - * control/util/zgfmul.m: Ditto. - * control/util/zgfslv.m: Ditto. - * control/util/zginit.m: Ditto. - * control/util/zgpbal.m: Ditto. - * control/util/zgreduce.m: Ditto. - * control/util/zgrownorm.m: Ditto. - * control/util/zgscal.m: Ditto. - * control/util/zgsgiv.m: Ditto. - * control/util/zgshsr.m: Ditto. - - 2000-01-13 John W. Eaton - - * gethelp.cc (extract_help_text): Discard first space character - after consecutive comment characters. - - Thu Jan 13 00:56:57 2000 John W. Eaton - - * control/obsolete: New directory - * control/obsolete/swaprows.m: Move here from control directory. - * control/obsolete/swapcols.m: Ditto. - * control/obsolete/dlqg.m: Ditto. - * control/obsolete/minfo.m: Ditto. - * control/obsolete/packsys.m: Ditto. - * control/obsolete/qzval.m: Ditto. - * control/obsolete/unpacksys.m: Ditto. - * control/obsolete/series.m: Ditto. - * control/obsolete/syschnames.m: Ditto. - * polynomial/polyout.m: Ditto. - - 2000-01-13 John W. Eaton - - * general/fliplr.m: Eliminate useless copy of arg. - * general/flipud.m: Ditto. - - 2000-01-11 John W. Eaton - - * linear-algebra/cross.m: Only return a row vector if both args - are row vectors. - * polynomial/polyfit.m: Likewise. - - * signal/autocov.m: Don't reset prefer_column_vectors. - - * statistics/distributions/discrete_rnd.m: - Always generate a row vector. - * statistics/distributions/hypergeometric_rnd.m: Likewise. - - 2000-01-11 Ben Sapp - - * strings/upper.m: Add missing `-*- texinfo -*-' tag to doc string. - - * audio/setaudio.m: Texinfoize doc string. - * control/com2str.m: Likewise. - * control/controldemo.m: Likewise. - * control/DEMOcontrol.m: Likewise. - * control/dezero.m: Likewise. - * control/dre.m: Likewise. - * control/hinfsyn_ric.m: Likewise. - - 2000-01-05 Ben Sapp - - * io/printf.m: Add @seealso{...} to doc string. - * io/puts.m: Likewise. - * plot/semilogx.m: Likewise. - * plot/semilogy.m: Likewise. - * plot/__pltopt__.m: Likewise. - * plot/bar.m: Likewise. - * plot/xlabel.m: Likewise. - * plot/grid.m: Likewise. - * plot/shg.m: Likewise. - * plot/title.m: Likewise. - * plot/mesh.m: Likewise. - * plot/__pltopt1__.m: Likewise. - * plot/contour.m: Likewise. - * plot/hist.m: Likewise. - * plot/stairs.m: Likewise. - * plot/meshgrid.m: Likewise. - * plot/polar.m: Likewise. - * plot/loglog.m: Likewise. - * plot/plot.m: Likewise. - * miscellaneous/semicolon.m: Likewise. - * miscellaneous/menu.m: Likewise. - * miscellaneous/etime.m: Likewise. - * miscellaneous/texas_lotto.m: Likewise. - * miscellaneous/comma.m: Likewise. - * audio/lin2mu.m: Likewise. - * audio/playaudio.m: Likewise. - * audio/loadaudio.m: Likewise. - * audio/saveaudio.m: Likewise. - * audio/mu2lin.m: Likewise. - * audio/record.m: Likewise. - * strings/isletter.m: Likewise. - * strings/lower.m: Likewise. - * strings/lower.m: Likewise. - * strings/upper.m: Likewise. - * specfun/erfinv.m: Likewise. - * specfun/gammai.m: Likewise. - * specfun/log2.m: Likewise. - * specfun/pow2.m: Likewise. - * elfun/gcd.m: Likewise. - * elfun/lcm.m: Likewise. - * special-matrix/vander.m: Likewise. - * special-matrix/sylvester_matrix.m: Likewise. - * special-matrix/hilb.m: Likewise. - * special-matrix/hankel.m: Likewise. - * special-matrix/toeplitz.m: Likewise. - * special-matrix/invhilb.m: Likewise. - * statistics/base/std.m: Likewise. - * statistics/base/median.m: Likewise. - * linear-algebra/cond.m: Likewise. - * linear-algebra/norm.m: Likewise. - * finance/nper.m: Likewise. - * finance/pmt.m: Likewise. - * finance/pv.m: Likewise. - * finance/rate.m: Likewise. - * finance/npv.m: Likewise. - * general/fliplr.m: Likewise. - * general/flipud.m: Likewise. - * general/is_scalar.m: Likewise. - * general/rem.m: Likewise. - * general/perror.m: Likewise. - * general/tril.m: Likewise. - * general/rot90.m: Likewise. - * general/num2str.m: Likewise. - * general/int2str.m: Likewise. - * general/reshape.m: Likewise. - * general/logspace.m: Likewise. - * general/is_symmetric.m: Likewise. - * general/is_vector.m: Likewise. - * general/nextpow2.m: Likewise. - * general/columns.m: Likewise. - * general/is_square.m: Likewise. - * general/rows.m: Likewise. - * control/ugain.m: Likewise. - * control/damp.m: Likewise. - * control/dare.m: Likewise. - * control/are.m: Likewise. - * control/sys2fir.m: Likewise. - * control/abcddim.m: Likewise. - * control/is_abcd.m: Likewise. - * control/step.m: Likewise. - * control/is_observable.m: Likewise. - * control/is_controllable.m: Likewise. - * control/jet707.m: Likewise. - * control/polyout.m: Likewise. - * control/impulse.m: Likewise. - * control/lqg.m: Likewise. - * control/is_detectable.m: Likewise. - * control/sysdimensions.m: Likewise. - * control/sysupdate.m: Likewise. - * control/stepimp.m: Likewise. - * control/is_stable.m: Likewise. - * control/tfout.m: Likewise. - * control/zpout.m: Likewise. - - 2000-01-05 John W. Eaton - - * set/complement.m: Add @seealso{} stuff. - * set/create_set.m: Likewise. - * set/intersection.m: Likewise. - * set/union.m: Likewise. - - 1999-12-22 John W. Eaton - - * control/d2c.m: Use double quotes instead of single quotes for - string constants. - * control/dgkfdemo.m: Likewise. - * control/fir2sys.m: Likewise. - * control/frdemo.m: Likewise. - * control/moddemo.m: Likewise. - * control/minfo.m: Likewise. - * control/is_stabilizable.m: Likewise. - * control/is_dgkf.m: Likewise. - * control/polyout.m: Likewise. - * control/sysconnect.m: Likewise. - * control/sysrepdemo.m: Likewise. - * control/tf2sys.m: Likewise. - * control/tfout.m: Likewise. - * control/zp2sys.m: Likewise. - * control/zpout.m: Likewise. - * control/tzero.m: Likewise. - - * control/DEMOcontrol.m: Handle moddemo case too. - - * image/loadimage.m: Use double quotes instead of single quotes - for string constants. Use sprintf instead of square brackets to - construct string. - - * control/DEMOcontrol.m: Formatting tweaks. - * control/fir2sys.m: Likewise. - - 1999-12-17 John W. Eaton - - * mkdoc: Only delete spaces before @ characters at the beginning - of a line. - - 1999-12-15 John W. Eaton - - * control/bddemo.m: Make it more likely to work with any value of - whitespace_in_literal_matrix. - * control/analdemo.m: Ditto. - * control/dgkfdemo.m: Ditto. - * control/frdemo.m: Ditto. - * control/sysrepdemo.m: Ditto. - * control/moddemo.m: Ditto. - * control/zp2ss.m: Ditto. - * control/zp2tf.m: Ditto. - * control/syssub.m: Ditto. - * finance/npv.m: Ditto. - * statistics/base/studentize.m: Ditto. - * statistics/base/values.m: Ditto. - * statistics/distributions/exponential_cdf.m: Ditto. - * statistics/distributions/poisson_cdf.m: Ditto. - - * control/dezero.m: Use toascii to convert string to ASCII value - instead of multiplying it by 1. - - * control/zp2sys.m: Don't save and restore implicit_str_to_num_ok. - * control/zpout.m: Ditto. - * control/tfout.m: Ditto. - * control/tf2sys.m: Ditto. - * control/syssub.m: Ditto. - * control/syssetsignals.m: Ditto. - * control/sysout.m: Ditto. - * control/sysmult.m: Ditto. - * control/sysgroup.m: Ditto. - * control/sysdup.m: Ditto. - * control/sysdisc.m: Ditto. - * control/syscont.m: Ditto. - * control/sysconnect.m: Ditto. - * control/sysappend.m: Ditto. - * control/sysadd.m: Ditto. - * control/ss2sys.m: Ditto. - * control/nyquist.m: Ditto. - * control/lqg.m: Ditto. - * control/fir2sys.m: Ditto. - * control/dmr2d.m: Ditto. - * control/dezero.m: Ditto. - * control/d2c.m: Ditto. - * control/c2d.m: Ditto. - * control/bddemo.m: Ditto. - * control/pzmap.m: Ditto. - - 1999-12-08 Daniel Calvelo - - * signal/spectral_adf.m: Fix typo. - - 1999-11-23 John W. Eaton - - * linear-algebra/cond.m: Texinfoize doc string. - * linear-algebra/kron.m: Ditto. - * linear-algebra/norm.m: Ditto. - * linear-algebra/null.m: Ditto. - * linear-algebra/orth.m: Ditto. - * linear-algebra/rank.m: Ditto. - * linear-algebra/trace.m: Ditto. - * linear-algebra/qzhess.m: Ditto. - * miscellaneous/menu.m: Ditto. - * general/perror.m: Ditto. - * general/strerror.m: Ditto. - * general/columns.m: Ditto. - * general/rows.m: Ditto. - * image/colormap.m: Ditto. - * image/gray.m: Ditto. - * image/gray2ind.m: Ditto. - * image/image.m: Ditto. - * image/imagesc.m: Ditto. - * image/imshow.m: Ditto. - * image/ind2gray.m: Ditto. - * image/ind2rgb.m: Ditto. - * image/loadimage.m: Ditto. - * image/rgb2ntsc.m: Ditto. - * image/ntsc2rgb.m: Ditto. - * image/ocean.m: Ditto. - * image/rgb2ind.m: Ditto. - * image/saveimage.m: Ditto. - * io/printf.m: Ditto. - * io/puts.m: Ditto. - - 1999-11-21 John W. Eaton - - * special-matrix/hankel.m: Texinfoize doc string. - * special-matrix/hilb.m: Ditto. - * special-matrix/invhilb.m: Ditto. - * special-matrix/sylvester_matrix.m: Ditto. - * special-matrix/toeplitz.m: Ditto. - * special-matrix/vander.m: Ditto. - * linear-algebra/vec.m: Ditto. - * linear-algebra/vech.m: Ditto. - * general/common_size.m: Ditto. - * general/diff.m: Ditto. - * general/fliplr.m: Ditto. - * general/flipud.m: Ditto. - * general/rot90.m: Ditto. - * general/reshape.m: Ditto. - * general/shift.m: Ditto. - * general/tril.m: Ditto. - * general/triu.m: Ditto. - * general/logspace.m: Ditto. - * general/nargchk.m: Ditto. - - 1999-11-20 John W. Eaton - - * statistics/base/mean: Texinfoize doc string. - * statistics/base/median: Ditto. - * statistics/base/std: Ditto. - * statistics/base/cov: Ditto. - * statistics/base/corrcoef: Ditto. - * statistics/base/kurtosis: Ditto. - * statistics/base/mahalanobis: Ditto. - * statistics/base/skewness: Ditto. - * statistics/base/gls.m: Ditto. - * statistics/base/ols.m: Ditto. - * signal/detrend.m: Ditto. - * signal/freqz.m: Ditto. - * signal/sinc.m: Ditto. - * signal/fftconv.m: Ditto. - * signal/fftfilt.m: Ditto. - * set/create_set.m: Ditto. - * set/union.m: Ditto. - * set/intersection.m: Ditto. - * set/complement.m: Ditto. - * poly/compan.m: Ditto. - * poly/conv: Ditto. - * poly/deconv: Ditto. - * poly/poly: Ditto. - * poly/polyderiv: Ditto. - * poly/polyfit: Ditto. - * poly/polyinteg: Ditto. - * poly/polyreduce: Ditto. - * poly/polyval: Ditto. - * poly/polyvalm: Ditto. - * poly/residue: Ditto. - * poly/roots: Ditto. - * plot/top_title.m: Ditto - * plot/subwindow.m: Ditto - * plot/subplot.m: Ditto - * plot/plot_border.m: Ditto - * plot/oneplot.m: Ditto - * plot/multiplot.m: Ditto - * plot/mplot.m: Ditto - * plot/xlabel.m: Ditto - * plot/figure.m: Ditto - * plot/meshdom.m: Ditto - * plot/mesh.m: Ditto - * plot/stairs.m: Ditto - * plot/polar.m: Ditto - * plot/loglog.m: Ditto - * plot/hist.m: Ditto - * plot/contour.m: Ditto - * plot/bar.m: Ditto - * plot/axis.m: Ditto - * plot/plot.m: Ditto. - - 1999-11-19 John W. Eaton - - * control/pinv.m: Delete. - - * Makefile.in (DOCSTRINGS): Don't echo $(ALL_M_FILES). - - * strings/blanks.m: Texinfoize doc string. - * strings/strcat.m: Ditto. - * strings/str2mat.m: Ditto. - * strings/deblank.m: Ditto. - * strings/findstr.m: Ditto. - * strings/index.m: Ditto. - * strings/rindex.m: Ditto. - * strings/split.m: Ditto. - * strings/strcmp.m: Ditto. - * strings/strrep.m: Ditto. - * strings/substr.m: Ditto. - * general/int2str.m: Ditto. - * general/num2str.m: Ditto. - * strings/dec2bin.m: Ditto. - * strings/bin2dec: Ditto. - * strings/dec2bin: Ditto. - * strings/dec2hex: Ditto. - * strings/hex2dec: Ditto. - * strings/str2num: Ditto. - - 1999-11-10 John W. Eaton - - * Makefile.in (DISTFILES): Include DOCSTRINGS. - - 1999-11-09 Ben Sapp - - * control/DEMOcontrol.m: Texinfoize doc string. - * control/abcddim.m: Ditto. - * control/abcddims.m: Ditto. - * control/analdemo.m: Ditto. - * control/are.m: Ditto. - * control/axis2dlim.m: Ditto. - * control/bddemo.m: Ditto. - * control/bode.m: Ditto. - * control/bode_bounds.m: Ditto. - * control/bodquist.m: Ditto. - * control/buildssic.m: Ditto. - * control/c2d.m: Ditto. - * control/ctrb.m: Ditto. - * control/d2c.m: Ditto. - * control/damp.m: Ditto. - * control/dare.m: Ditto. - * control/dcgain.m: Ditto. - * control/dgkfdemo.m: Ditto. - * control/dgram.m: Ditto. - * control/dlqe.m: Ditto. - * control/dlqr.m: Ditto. - * control/dlyap.m: Ditto. - * control/dmr2d.m: Ditto. - * control/fir2sys.m: Ditto. - * control/frdemo.m: Ditto. - * control/freqchkw.m: Ditto. - * control/freqresp.m: Ditto. - * control/gram.m: Ditto. - * control/h2norm.m: Ditto. - * control/h2syn.m: Ditto. - * control/hinf_ctr.m: Ditto. - * control/hinfdemo.m: Ditto. - * control/hinfnorm.m: Ditto. - * control/hinfsyn.m: Ditto. - * control/hinfsyn_chk.m: Ditto. - * control/impulse.m: Ditto. - * control/is_abcd.m: Ditto. - * control/is_controllable.m: Ditto. - * control/is_detectable.m: Ditto. - * control/is_dgkf.m: Ditto. - * control/is_digital.m: Ditto. - * control/is_observable.m: Ditto. - * control/is_sample.m: Ditto. - * control/is_signal_list.m: Ditto. - * control/is_siso.m: Ditto. - * control/is_stabilizable.m: Ditto. - * control/is_stable.m: Ditto. - * control/jet707.m: Ditto. - * control/lqe.m: Ditto. - * control/lqg.m: Ditto. - * control/lqr.m: Ditto. - * control/lsim.m: Ditto. - * control/ltifr.m: Ditto. - * control/lyap.m: Ditto. - * control/moddemo.m: Ditto. - * control/nyquist.m: Ditto. - * control/obsv.m: Ditto. - * control/ord2.m: Ditto. - * control/outlist.m: Ditto. - * control/pinv.m: Ditto. - * control/place.m: Ditto. - * control/polyout.m: Ditto. - * control/prompt.m: Ditto. - * control/pzmap.m: Ditto. - * control/qzval.m: Ditto. - * control/rldemo.m: Ditto. - * control/rlocus.m: Ditto. - * control/sortcom.m: Ditto. - * control/ss2sys.m: Ditto. - * control/ss2tf.m: Ditto. - * control/ss2zp.m: Ditto. - * control/starp.m: Ditto. - * control/step.m: Ditto. - * control/stepimp.m: Ditto. - * control/susball.m: Ditto. - * control/sys2fir.m: Ditto. - * control/sys2ss.m: Ditto. - * control/sys2tf.m: Ditto. - * control/sys2zp.m: Ditto. - * control/sysadd.m: Ditto. - * control/sysappend.m: Ditto. - * control/syschnames.m: Ditto. - * control/syschnamesl.m: Ditto. - * control/syschtsam.m: Ditto. - * control/sysconnect.m: Ditto. - * control/syscont.m: Ditto. - * control/syscont_disc.m: Ditto. - * control/sysdefioname.m: Ditto. - * control/sysdefstname.m: Ditto. - * control/sysdimensions.m: Ditto. - * control/sysdisc.m: Ditto. - * control/sysdup.m: Ditto. - * control/sysgetsignals.m: Ditto. - * control/sysgettype.m: Ditto. - * control/sysgroup.m: Ditto. - * control/sysgroupn.m: Ditto. - * control/sysmult.m: Ditto. - * control/sysout.m: Ditto. - * control/sysprune.m: Ditto. - * control/sysreorder.m: Ditto. - * control/sysrepdemo.m: Ditto. - * control/sysscale.m: Ditto. - * control/syssetsignals.m: Ditto. - * control/syssub.m: Ditto. - * control/sysupdate.m: Ditto. - * control/tf2ss.m: Ditto. - * control/tf2sys.m: Ditto. - * control/tf2sysl.m: Ditto. - * control/tf2zp.m: Ditto. - * control/tfout.m: Ditto. - * control/tzero.m: Ditto. - * control/tzero2.m: Ditto. - * control/ugain.m: Ditto. - * control/wgt1o.m: Ditto. - * control/zgfmul.m: Ditto. - * control/zgfslv.m: Ditto. - * control/zginit.m: Ditto. - * control/zgpbal.m: Ditto. - * control/zgreduce.m: Ditto. - * control/zgrownorm.m: Ditto. - * control/zgscal.m: Ditto. - * control/zgsgiv.m: Ditto. - * control/zgshsr.m: Ditto. - * control/zp2ss.m: Ditto. - * control/zp2ssg2.m: Ditto. - * control/zp2sys.m: Ditto. - * control/zp2tf.m: Ditto. - * control/zpout.m: Ditto. - - 1999-11-02 Ben Sapp - - * audio/lin2mu.m: Texinfoize doc string. - * audio/loadaudio.m: Ditto. - * audio/mu2lin.m: Ditto. - * audio/playaudio.m: Ditto. - * audio/record.m: Ditto. - * audio/saveaudio.m: Ditto. - - 1999-10-26 Ben Sapp - - * elfun/acot.m: Texinfoize doc string. - * elfun/acsc.m: Ditto. - * elfun/acsch.m: Ditto. - * elfun/asec.m: Ditto. - * elfun/asech.m: Ditto. - * elfun/cot.m: Ditto. - * elfun/coth.m: Ditto. - * elfun/csc.m: Ditto. - * elfun/csch.m: Ditto. - * elfun/gcd.m: Ditto. - * elfun/lcm.m: Ditto. - * elfun/sec.m: Ditto. - * elfun/sech.m: Ditto. - * general/nextpow2.m: Ditto. - * general/rem.m: Ditto. - * linear-algebra/commutation_matrix.m: Ditto. - * linear-algebra/cross.m: Ditto. - * linear-algebra/duplication_matrix.m: Ditto. - * miscellaneous/bincoeff.m: Ditto. - * miscellaneous/xor.m: Ditto. - * specfun/bessel.m: Ditto. - * specfun/beta.m: Ditto. - * specfun/betai.m: Ditto. - * specfun/erfinv.m: Ditto. - * specfun/gammai.m: Ditto. - * specfun/log2.m: Ditto. - * specfun/pow2.m: Ditto. - - 1999-10-23 Ben Sapp - - * general/is_scalar.m: Texinfoize help text. - * general/is_square.m: Ditto. - * general/is_symmetric.m: Ditto. - - 1999-10-22 John W. Eaton - - * strings/split.m: If the string to be split is empty, just return - an empty string. - - 1999-10-21 John W. Eaton - - * Makefile.in (ALL_M_FILES): New macro. - (DOCSTRINGS): No longer .PHONY; depend on $(ALL_M_FILES). - - 1999-10-20 John W. Eaton - - * control/bode.m: Don't return anything if nargout == 0. - - 1999-10-20 James B. Rawlings - - * control/bode.m: Don't do axis scaling for magnitude plots. - - 1999-10-20 John W. Eaton - - * Makefile.in (DISTFILES): Add move-if-change, mkdoc, and - gethelp.cc to the list. - - 1999-10-19 John W. Eaton - - * time/asctime.m: Texinfoize help text. - * time/clock.m: Ditto. - * time/date.m: Ditto. - * miscellaneous/cputime.m: Ditto. - * miscellaneous/etime.m: Ditto. - * miscellaneous/is_leap_year.m: Ditto. - * miscellaneous/popen2.m: Ditto. - * miscellaneous/version.m: Ditto. - * miscellaneous/tic.m: Ditto. - * miscellaneous/toc.m: Just refer to tic.m. - - * Makefile.in (dist, bin-dist): Use `$(MAKE) -C dir' instead of - `cd dir; $(MAKE); cd ..'. - ($(SUBDIRS)): Likewise. - - * statistics/Makefile.in ($(SUBDIRS)): Likewise. - - * statistics/Makefile.in (bin-dist): Use `$(MAKE) -C dir' instead - of `cd dir; $(MAKE)'. - - * gethelp.cc, mkdoc: New files. - * Makefile.in: Use them to create DOCSTRINGS file from .m file - sources. - - 1999-10-14 John W. Eaton - - * linear-algebra/kron.m: Fix typo in previous change - - 1999-10-13 John W. Eaton - - * control/bode.m: Allow optional 5th arg to specify plot style. - - Wed Sep 22 22:12:03 1999 A. Scottedward Hodel - - * linear-algebra/krylov.m: Correctly handle case of V having full - rank when V has more columns than rows. - - Mon Sep 20 23:04:57 1999 John W. Eaton - - * general/linspace.m, linear-algebra/pinv.m: Delete. - - * statistics/tests/manova.m: Avoid problems if - whitespace_in_literal_matrix is set to "traditional". - * statistics/tests/t_test_regression.m: Likewise. - * statistics/tests/u_test.m: Likewise. - * statistics/tests/chisquare_test_homogeneity.m: Likewise. - * statistics/tests/anova.m: Likewise. - * statistics/tests/kruskal_wallis_test.m: Likewise. - * statistics/base/statistics.m: Likewise. - * image/saveimage.m: Likewise. - * signal/arch_fit.m: Likewise. - * signal/autoreg_matrix.m: Likewise. - * signal/triangle_lw.m: Likewise. - * strings/dec2hex.m: Likewise. - - Thu Sep 9 19:31:58 1999 John W. Eaton - - * image/saveimage.m: Initialize scale. - - Sun Sep 5 22:13:47 1999 John W. Eaton - - * general/reshape.m: Allow reshape (a, size (b)). - - Fri Sep 3 00:01:38 1999 John W. Eaton - - * specfun/erfinv.m: Improve stopping criterion. - Add iteration count as second return value. - - Mon Aug 30 12:07:00 1999 John W. Eaton - - * statistics/base/mean.m: Use .', not ' to reorient row vectors. - - Tue Aug 17 11:11:27 1999 John W. Eaton - - * miscellaneous/pack.m: New function. - - Mon Aug 16 07:46:57 1999 John W. Eaton - - * plot/figure.m: Always return figure number. With no args, - figure now creates a new figure window and returns its number. - Accept figure (property, value) syntax, but do nothing. - - Thu Aug 12 09:28:01 PDT 1999 Tom Poage - - * general/shift.m: Avoid printing temporary value for backward shift. - - Mon Aug 2 16:39:04 1999 John W. Eaton - - * plot/bar.m: Compute bar widths correctly when x-values are not - evenly spaced. - - Mon Jul 12 22:48:34 1999 John W. Eaton - - * linear-algebra/cond.m: Avoid returning NaN for matrices that - contain only zeros. - - Sun Jun 20 22:24:27 1999 Eduardo Gallestey - - * linear-algebra/kron.m: Create result matrix and insert blocks - instead of appending them. - - Sat Jun 19 01:52:18 1999 John W. Eaton - - * control/bodquist.m, control/buildssic.m, control/is_digital.m, - control/stepimp.m, control/sysmin.m, control/syssetsignals.m: - Update from A. S. Hodel. - - Fri Jun 18 12:19:22 1999 John W. Eaton - - * polynomial/polyfit.m: Correct previous change. - - Wed Apr 7 13:57:26 1999 John W. Eaton - - * linear-algebra/qrhouse.m, linear-algebra/krygetq.m: Delete. - - Wed Apr 7 13:22:43 1999 A. S. Hodel - - * control/is_controllable.m, control/zgscal.m: Accomodate new - version of krylov and krylovb. - - * control/outlist.m, control/sysout.m: Fix typos. - - * control/sysdimensions.m: Add option for total number of states. - - * linear-algebra/krylov.m: Improve robustness by row-pivoting. - * linear-algebra/krylovb.m: Just call krylov with appropriate - arguments. - - Tue Mar 30 00:43:09 1999 John W. Eaton - - * strings/index.m: Fail with meaningful error message if either - arg is a string array. - - Wed Mar 24 20:34:48 1999 John W. Eaton - - * linear-algebra/norm.m: Do the right thing for 1- and - infinity-norms of complex matrices. From Sven Khatri - . - - Tue Mar 16 13:36:36 1999 A. Scottedward Hodel" - - * linear-algebra/qrhouse.m: Handle default args correctly. - - Thu Mar 11 12:52:34 1999 John W. Eaton - - * strings/split.m: Avoid problems when splitting strings that have - \ in them. - - Thu Mar 11 12:36:13 1999 Massimo Lorenzin - - * image/colormap.m: Do better arg checking, handle string args - that name the colormap function to call (e.g., colormap ("ocean")). - - Mon Mar 8 22:23:24 1999 Rolf Fabian - - * polynomial/polyfit.m: Use .' transpose operator, not '. - * linear-algebra/dot.m: Likewise. - * linear-algebra/cross.m: Likewise. - * general/rot90.m: Likewise. - - Sat Mar 6 01:45:00 1999 A Scott Hodel - - * linear-algebra/qrhouse.m: Permute columns at each iteration so - that the leading column is not all zeros. - - Fri Mar 5 00:37:47 1999 John W. Eaton - - * general/shift.m: Fix potential problems with - whitespace_in_literal_matrix. - * signal/arch_rnd.m: Ditto. - * signal/autocov.m: Ditto. - * signal/diffpara.m: Ditto. - * signal/hurst.m: Ditto. - * signal/periodogram.m: Ditto. - * signal/spectral_adf.m: Ditto. - * signal/spectral_xdf.m: Ditto. - * signal/spencer.m: Ditto. - * signal/synthesis.m: Ditto. - * statistics/distributions/wiener_rnd.m: Ditto. - * statistics/models/logistic_regression_likelihood.m: Ditto. - * statistics/models/logistic_regression.m: Ditto. - * statistics/models/logistic_regression_derivatives.m: Ditto. - * statistics/tests/run_test.m: Ditto. - * statistics/tests/chisquare_test_independence.m: Ditto. - - Wed Mar 3 02:25:00 1999 Joao Cardoso - - * plot/__plr2__.m: Fix typo. - - Tue Jan 12 10:31:15 1999 John W. Eaton - - * plot/__pltopt1__.m: Accept "k" to mean black. - - Fri Dec 11 10:43:19 1998 A Scott Hodel - - * linear-algebra/krylov.m: Force empty_list_elements_ok for this - function. - - Thu Dec 10 11:07:00 1998 A Scott Hodel - - * control/ss2sys.m: Fix typo. - - Wed Dec 9 12:42:19 1998 John W. Eaton - - * plot/subplot.m, plot/oneplot.m: Don't call clearplot. - - * control: Update from A. S. Hodel for - signal names as lists of strings instead of string arrays. - - Fri Dec 4 16:08:42 1998 John W. Eaton - - * quaternion: New directory of functions from A. S. Hodel - . - * Makefile.in (SUBDIRS): Add it to the list. - * quaternion/Makefile.in: New file. - * configure.in (AC_OUTPUT): Add quaternion/Makefile. - - Tue Nov 24 21:41:31 1998 John W. Eaton - - * image/saveimage.m: Make it work again for black and white colormaps. - - * image/imagesc.m: Use rows (colormap), not length (colormap), - since there can be fewer rows than columns. Round values to - nearest position in colormap instead of truncating. Correct usage - message. - - Tue Nov 24 14:50:52 1998 A Scott Hodel - - * linear-algebra/krylov.m: New arg pflg. If nonzero, avoid using - zero rows of [A,v] as householder pivots; this avoids spurious - non-zero entries in returned orthogonal matrix U, but destroys the - Householder matrix structure of H. - - Fri Nov 20 12:46:46 1998 John W. Eaton - - * general/logical.m: Just copy input to output if argument is - already a logical object. - - Fri Nov 6 10:17:00 1998 John W. Eaton - - * New files from OCST, in control subdiretory: - - DEMOcontrol.m is_siso.m syschnames.m - abcddim.m is_stabilizable.m syschnamesl.m - abcddims.m is_stable.m syschtsam.m - analdemo.m jet707.m sysconnect.m - are.m lqe.m syscont.m - axis2dlim.m lqg.m syscont_disc.m - bddemo.m lqr.m sysdefioname.m - bode.m lsim.m sysdefstname.m - bode_bounds.m ltifr.m sysdimensions.m - bodquist.m lyap.m sysdisc.m - buildssic.m mb.m sysdup.m - c2d.m minfo.m sysgetsignals.m - com2str.m moddemo.m sysgettsam.m - controldemo.m nichols.m sysgettype.m - ctrb.m nyquist.m sysgroup.m - d2c.m obsv.m sysgroupn.m - damp.m ord2.m sysmult.m - dare.m outlist.m sysout.m - dcgain.m packedform.m sysprune.m - demomarsyas.m packsys.m sysreorder.m - dezero.m; parallel.m sysrepdemo.m - dgkfdemo.m place.m sysscale.m - dgram.m polyout.m syssub.m - dhinfdemo.m prompt.m sysupdate.m - dlqe.m pzmap.m tf2ss.m - dlqg.m qzval.m tf2sys.m - dlqr.m rldemo.m tf2sysl.m - dlyap.m rlocus.m tf2zp.m - dmr2d.m rotg.m tfout.m - fir2sys.m run_cmd.m; tzero.m - frdemo.m series.m tzero2.m - freqchkw.m sortcom.m ugain.m - freqresp.m ss2sys.m unpacksys.m - gram.m ss2tf.m wgt1o.m - h2norm.m ss2zp.m zgfmul.m - h2syn.m starp.m zgfslv.m - hinf_ctr.m step.m zginit.m - hinfdemo.m stepimp.m zgpbal.m - hinfnorm.m strappend.m; zgreduce.m - hinfsyn.m susball.m zgrownorm.m - hinfsyn_chk.m swap.m zgscal.m - impulse.m swapcols.m zgsgiv.m - is_abcd.m swaprows.m zgshsr.m - is_controllable.m sys2fir.m zp2ss.m - is_detectable.m sys2ss.m zp2ssg2.m - is_dgkf.m sys2tf.m zp2sys.m - is_digital.m sys2zp.m zp2tf.m - is_observable.m sysadd.m zpout.m - is_sample.m sysappend.m - - Thu Nov 5 13:28:40 1998 John W. Eaton - - * configure.in (AC_OUTPUT): Escape newlinew in macro call with \. - - * strings/deblank.m: Make it work for string arrays too. - - Wed Nov 4 21:51:13 1998 John W. Eaton - - * linear-algebra/housh.m: New file from the OCST. - * linear-algebra/krygetq.m: Ditto. - * linear-algebra/krylov.m: Ditto. - * linear-algebra/krylovb.m: Ditto. - * linear-algebra/qrhouse.m: Ditto. - * general/is_duplicate_entry.m: Ditto. - - * general/is_symmetric.m: Call is_square instead of doing that - check in line. - - Wed Oct 28 11:51:14 1998 John W. Eaton - - * general/is_square.m: - - * general/isempty.m, general/is_matrix.m: Delete. - - * general/is_symmetric: Delete special case for strings. Whether - the conversion is valid should depend on implicit_str_to_num_ok. - - * general/is_square.m: If arg is not a matrix, don't check size, - just return 0. - * general/is_symmetric: Likewise. - * general/is_vector.m: Likewise. - * general/is_scalar.m: Likewise. - - * general/length.m: Delete. - - Fri Oct 23 00:21:55 1998 John W. Eaton - - * configure.in: Add finance/Makefile, statistics/base/Makefile, - statistics/distributions/Makefile, statistics/models/Makefile, - and statistics/tests/Makefile to the list of files to create. - - * finance/Makefile.in, statistics/base/Makefile.in, - statistics/distributions/Makefile.in, statistics/models/Makefile.in, - statistics/tests/Makefile.in: New files. - * statistics/Makefile.in: Delete file lists. Now only handle - subdirectories. - * Makefile.in (SUBDIRS): Add finance. - - * Move the following files from statistics to statistics/base: - - corrcoef.m - kurtosis.m - mahalanobis.m - median.m - ols.m - skewness.m - std.m - - New files, from Kurt Hornik's octave-ci package: - - * finance (new directory): - - fv.m - fvl.m - irr.m - nper.m - npv.m - pmt.m - pv.m - pvl.m - rate.m - vol.m - - * linear-algebra/dmult.m - - * signal: - - arch_fit.m - arch_rnd.m - arch_test.m - arma_rnd.m - autocor.m - autocov.m - autoreg_matrix.m - bartlett.m - blackman.m - diffpara.m - durbinlevinson.m - fractdiff.m - hamming.m - hanning.m - hurst.m - periodogram.m - rectangle_lw.m - rectangle_sw.m - sinetone.m - sinewave.m - spectral_adf.m - spectral_xdf.m - spencer.m - stft.m - synthesis.m - triangle_lw.m - triangle_sw.m - yulewalker.m - - * statistics/base (new directory): - - center.m - cloglog.m - cor.m - cov.m - cut.m - iqr.m - kendall.m - logit.m - mean.m - meansq.m - moment.m - ppplot.m - probit.m - qqplot.m - range.m - ranks.m - run_count.m - spearman.m - statistics.m - studentize.m - table.m - values.m - var.m - - (Replaces cov.m and mean.m with new versions.) - - * statistics/distributions (new directory): - - beta_cdf.m - beta_inv.m - beta_pdf.m - beta_rnd.m - binomial_cdf.m - binomial_inv.m - binomial_pdf.m - binomial_rnd.m - cauchy_cdf.m - cauchy_inv.m - cauchy_pdf.m - cauchy_rnd.m - chisquare_cdf.m - chisquare_inv.m - chisquare_pdf.m - chisquare_rnd.m - discrete_cdf.m - discrete_inv.m - discrete_pdf.m - discrete_rnd.m - empirical_cdf.m - empirical_inv.m - empirical_pdf.m - empirical_rnd.m - exponential_cdf.m - exponential_inv.m - exponential_pdf.m - exponential_rnd.m - f_cdf.m - f_inv.m - f_pdf.m - f_rnd.m - gamma_cdf.m - gamma_inv.m - gamma_pdf.m - gamma_rnd.m - geometric_cdf.m - geometric_inv.m - geometric_pdf.m - geometric_rnd.m - hypergeometric_cdf.m - hypergeometric_inv.m - hypergeometric_pdf.m - hypergeometric_rnd.m - kolmogorov_smirnov_cdf.m - laplace_cdf.m - laplace_inv.m - laplace_pdf.m - laplace_rnd.m - logistic_cdf.m - logistic_inv.m - logistic_pdf.m - logistic_rnd.m - lognormal_cdf.m - lognormal_inv.m - lognormal_pdf.m - lognormal_rnd.m - normal_cdf.m - normal_inv.m - normal_pdf.m - normal_rnd.m - pascal_cdf.m - pascal_inv.m - pascal_pdf.m - pascal_rnd.m - poisson_cdf.m - poisson_inv.m - poisson_pdf.m - poisson_rnd.m - stdnormal_cdf.m - stdnormal_inv.m - stdnormal_pdf.m - stdnormal_rnd.m - t_cdf.m - t_inv.m - t_pdf.m - t_rnd.m - uniform_cdf.m - uniform_inv.m - uniform_pdf.m - uniform_rnd.m - weibull_cdf.m - weibull_inv.m - weibull_pdf.m - weibull_rnd.m - wiener_rnd.m - - * statistics/models (new directory): - - logistic_regression.m - logistic_regression_derivatives.m - logistic_regression_likelihood.m - - * statistics/tests (new directory): - - anova.m - bartlett_test.m - chisquare_test_homogeneity.m - chisquare_test_independence.m - cor_test.m - f_test_regression.m - hotelling_test.m - hotelling_test_2.m - kolmogorov_smirnov_test.m - kolmogorov_smirnov_test_2.m - kruskal_wallis_test.m - manova.m - mcnemar_test.m - prop_test_2.m - run_test.m - sign_test.m - t_test.m - t_test_2.m - t_test_regression.m - u_test.m - var_test.m - welch_test.m - wilcoxon_test.m - z_test.m - z_test_2.m - - Thu Oct 22 12:25:55 1998 John W. Eaton - - * time/date.m: Use %Y, not %y in format string, for Matlab 5 - compatibility and to avoid Y2K problems. - - Mon Oct 19 17:26:35 1998 John W. Eaton - - * polynomial/polyfit.m: Just use the \ operator to handle the - least-squares solution. - - Thu Sep 3 12:40:47 1998 John W. Eaton - - * strings/str2num.m: If eval returns a string, return an empty matrix. - - * strings/strrep.m: Don't convert args to numeric values. - Prevent warnings for empty string args. - From Georg Thimm . - - * strings/strcat.m: Prevent warnings for empty string args. - - Wed Sep 2 17:20:24 1998 John W. Eaton - - * miscellaneous/menu.m: Remove special case for empty string - returned from input(). Add second arg to eval() to catch errors. - - Thu Jun 18 16:32:15 1998 John W. Eaton - - * plot/__plt__.m: Don't call usleep. - - Mon May 18 11:42:36 1998 John W. Eaton - - * linear-algebra/dot.m: New function. - - * strings/lower.m, strings/upper.m: New functions, for Matlab - compatibility. - - Fri May 15 01:16:53 1998 John W. Eaton - - * plot/hist.m: Also allow just one output argument. - - Sun May 10 23:00:45 1998 John W. Eaton - - * strings/deblank.m: Make it work if the string is only blanks. - - Tue May 5 00:53:36 1998 John W. Eaton - - * plot/__plt2mv__.m: Delete calls to keyboard. - - Mon May 4 11:43:31 1998 John W. Eaton - - * plot/oneplot.m: Fix typo. - - Wed Apr 22 12:11:27 1998 John W. Eaton - - * miscellaneous/flops.m: Allow a single argument too. - - Tue Apr 21 10:18:20 1998 John W. Eaton - - * strings/str2mat.m: Also handle case when there are no empty - strings correctly. - - Mon Apr 20 22:14:15 1998 John W. Eaton - - * strings/isletter.m: New function, for Matlab compatibility. - - Fri Apr 17 10:53:39 1998 John W. Eaton - - * strings/str2mat.m: Handle string matrices too. - - Wed Apr 15 11:16:01 1998 John W. Eaton - - * audio/loadaudio.m: Accept "pcm" as another file extension for - linear encoding. - - * audio/saveaudio.m, audio/loadaudio.m, audio/playaudio.m, - audio/record.m: Open files in binary mode. - - Fri Apr 10 10:46:21 1998 John W. Eaton - - * miscellaneous/dump_prefs.m: Use string array for list of values. - Move functionality of dump_1_pref here, but use built-in function - type to extract value, and put it inside try/catch block. - * miscellaneous/dump_1_pref.m: Delete unused function. - - Wed Apr 8 13:17:58 1998 John W. Eaton - - * plot/__pltopt1.m__: New file. - * plot/__pltopt.m__: Handle opt as a string array by calling - __pltopt1__ multiple times and returning a string array with rows - corresponding to the rows of opt. - * plot/__plt2ss__.m, plot/__plt2vv__.m, plot/__plt2vm__.m, - plot/__plt2mv__.m, plot/__plt2mm__.m: Handle fmt as a string - array. - - Fri Mar 27 03:00:40 1998 John W. Eaton - - * plot/mplot.m: Fix misspellings of global variables. - Don't call clearplot. - - Tue Mar 17 17:45:25 1998 John W. Eaton - - * plot/subplot.m, plot/multiplot.m: Set gnuplot_command_replot to - "cle;rep" when going in ot multiplot mode. - * plot/oneplot.m: Reset gnuplot_command_replot to "rep" when - switching out of multiplot mode. - - Fri Feb 20 01:31:32 1998 John W. Eaton - - * plot/mplot.m, plot/subplot.m, plot/oneplot.m, plot/multiplot.m, - plot/subwindow.m: Call clearplot after setting up multiplot mode. - - Tue Feb 3 00:18:40 1998 John W. Eaton - - * special-matrix/sylvester_matrix.m: Rename from hadamard.m - - * miscellaneous/bug_report.m: Don't try to get smart with - OCTAVE_HOME. Assume octave-bug can be found in EXEC_PATH. - - * Makefile.in (install): Create separate ls-R files for - $(datadir) and $(libexecdir). - (uninstall): Remove both ls-R files. - - Sat Jan 31 01:09:32 1998 John W. Eaton - - * signal/fftshift.m: New file. - - * plot/contour.m: Fix for non-square case. - - * general/randperm.m: New file. - - Fri Jan 30 15:20:39 1998 John W. Eaton - - * specfun/betai.m: Restore file for compatibility with previous - versions. Call betainc with reordered args. - * specfun/gammai.m: Likewise, call gammainc with reordered args. - - Wed Jan 28 22:44:59 1998 John W. Eaton - - * plot/contour.m: Handle discrete contour levels. - - Tue Jan 27 04:31:22 1998 John W. Eaton - - * control/lyap.m: For compatibility with Matlab, solve - A*X + X*A' + C = 0 instead of A'*X + X*A + C = 0. - - Wed Dec 10 00:14:29 1997 John W. Eaton - - * specfun/bessel.m: New file. - - * specfun/betai.m, specfun/betainc.m, specfun/gammai.m, - specfun/gammainc.m: Delete. - - Wed Nov 19 00:19:18 1997 John W. Eaton - - * image/colormap.m: Initialize __current_color_map__ in global - statement. - * miscellaneous/toc.m: Initialize __tic_toc_timestamp__ in global - statement. - * plot/axis.m: Initialize __current_axis__ in global statement. - * plot/mplot.m, plot/multiplot.m, plot/oneplot.m, plot/subplot.m, - plot/subwindow.m: Initialize __multiplot_mode__ in global statement. - - Tue Nov 18 01:35:50 1997 John W. Eaton - - * time/tic.m: Rename _time_tic_called to __tic_toc_timestamp__. - * time/toc.m: Likewise. - - * image/colormap.m: Rename CURRENT_COLOR_MAP to __current_color_map__. - - * plot/mplot.m, plot/multiplot.m, plot/subplot.m: Don't do - anything special for automatic_replot when in multiplot mode -- - recent 3.6beta releases handle this correctly. - - * plot/figure.m: Ensure that we are not in multiplot mode before - setting the terminal type. - - * plot/mplot.m, plot/multiplot.m, plot/oneplot.m, plot/subplot.m, - plot/subwindow.m: Use leading and trailing underscores for - `private' globals. - - * plot/oneplot.m: Don't do anything if gnuplot_has_multiplot is false. - - Fri Nov 14 10:53:11 1997 John W. Eaton - - * plot/__pltopt__.m: Use sprintf instead of strcat when adding TITLE. - - Fri Oct 10 11:18:10 1997 John W. Eaton - - * specfun/gammai.m: Avoid problems with whitespace when - constructing matrices. - - * polynomial/polyfit.m: Compute yf correctly. From Seung Lee - . Also return yf in the same orientation as the - original y vector. - - Fri Sep 19 17:04:40 1997 John W. Eaton - - * linear-algebra/cross.m: Use direct formula instead of calling - det three times in a loop. If both args are column (row) vectors, - return a column (row) vector. If they don't match, pay attention - to the value of prefer_column_vectors. - - Thu Aug 28 15:31:20 1997 Rolf Fabian - - * polynomial/polyvalm.m: Don't assume orthogonal eigenvectors for - nonsymmetric matrices. - - * general/tril.m: Fix usage message. - - * polynomial/polyvalm.m: Fix error messages. - * polynomial/polyderiv.m: Likewise. - * polynomial/polyval.m: Likewise. - - Wed Aug 13 14:14:16 1997 John W. Eaton - - * strings/blanks.m: Allow blanks(0) to return empty string. - Allow negative arguments if treat_neg_dim_as_zero is true. - - Wed Jun 25 21:26:24 1997 John W. Eaton - - * plot/mesh.m: Set noparametric plot mode after plotting. - - Wed Jun 25 21:06:10 1997 Rick Niles - - * plot/__pltopt__.m: Handle key/legend names. - Correctly set colors, line styles, and point styles. - - Wed Jun 25 13:34:06 1997 John W. Eaton - - * polynomial/polyfit.m: Return fit y values as second output. - Don't use QR factorization to solve least squares problem. - - Wed Jun 18 10:24:00 1997 John W. Eaton - - * control/dlqr.m: Use ao, not a, to compute k. - - Tue Jun 3 12:16:00 1997 John W. Eaton - - * miscellaneous/path.m: New file. - - Wed May 21 11:45:31 1997 John W. Eaton - - * miscellaneous/bug_report.m: Pass file id to dump_prefs, not file - name. - - Mon May 12 02:04:01 1997 John W. Eaton - - * specfun/erfinv.m: Add missing semicolon. - - Wed Apr 2 22:04:03 1997 John W. Eaton - - * miscellaneous/xor.m: Make type of return value logical. - - Fri Mar 28 16:19:53 1997 John W. Eaton - - * miscellaneous/dump_prefs.m: Delete call to dump_1_pref for - warn_comma_in_global_decl. - - Tue Mar 25 22:00:49 1997 John W. Eaton - - * miscellaneous/bug_report.m: Use __OCTAVE_HOME__ to find - octave-bug script. - - Mon Mar 24 16:49:47 1997 John W. Eaton - - * miscellaneous/dump_prefs.m: Delete call to dump_1_pref for - prefer_zero_one_indexing. - - * general/logical.m: New file. - - Sat Mar 15 15:07:30 1997 John W. Eaton - - * general/nextpow2.m: Correctly handle new meaning of is_scalar() - and is_vector(). - - Thu Mar 13 16:36:35 1997 Kurt Hornik - - * specfun/erfinv.m: Scale update by sqrt (pi) / 2. - Use tolerance of 2 * eps. - - Wed Mar 12 16:57:45 1997 John W. Eaton - - * Makefile.in (install-strip): New target. - * audio/Makefile.in: Ditto. - * control/Makefile.in: Ditto. - * elfun/Makefile.in: Ditto. - * general/Makefile.in: Ditto. - * image/Makefile.in: Ditto. - * io/Makefile.in: Ditto. - * linear-algebra/Makefile.in: Ditto. - * miscellaneous/Makefile.in: Ditto. - * plot/Makefile.in: Ditto. - * polynomial/Makefile.in: Ditto. - * set/Makefile.in: Ditto. - * signal/Makefile.in: Ditto. - * specfun/Makefile.in: Ditto. - * special-matrix/Makefile.in: Ditto. - * startup/Makefile.in: Ditto. - * statistics/Makefile.in: Ditto. - * strings/Makefile.in: Ditto. - - Tue Mar 11 10:14:26 1997 John W. Eaton - - * elfun/coth.m: Write as cosh(x) ./ sinh(x) instead of 1 ./ tanh(x). - - Fri Mar 7 23:06:48 1997 John W. Eaton - - * statistics/corrcoef.m: Make it actually work. - - Thu Mar 6 12:36:30 1997 John W. Eaton - - * statistics/corrcoef.m: Don't fail if single argument is a matrix. - - Sat Mar 1 15:23:14 1997 John W. Eaton - - * Version 2.0.5 released. - - Wed Feb 26 01:48:28 1997 John W. Eaton - - * Makefile.in (maintainer-clean): Also remove configure. - - * signal/fftconv.m: Check inputs with is_vector(), not is_matrix(). - - * general/is_matrix.m: Return zero for empty matrices. - - Tue Feb 25 15:16:04 1997 John W. Eaton - - * linear-algebra/vech.m: Size result just once. - - Sun Feb 23 00:15:57 1997 John W. Eaton - - * general/is_square.m: Handle empty matrices correctly. - * general/is_symmetric.m: Handle empty matrices and strings. - - Sat Feb 22 01:06:22 1997 John W. Eaton - - * polynomial/conv.m: Check inputs with is_vector(), not is_matrix(). - * polynomial/deconv.m: Likewise. - * polynomial/polyderiv.m: Likewise. - * polynomial/polyinteg.m: Likewise. - * polynomial/polyreduce.m: Likewise. - * polynomial/polyval.m: Likewise. - * polynomial/polyvalm.m: Likewise. - * general/postpad.m: Likewise. - * general/prepad.m: Likewise. - - * polynomial/compan.m: Check input with is_vector(), not - is_matrix(). Handle scalar case. - - Fri Feb 21 13:36:58 1997 John W. Eaton - - * plot/contour.m: Order data so that it is consistent with - meshgrid and mesh. - - * plot/meshdom.m, plot/meshgrid.m: Change help message. - * plot/sombrero.m: Use meshgrid, not meshdom. - - Thu Feb 20 02:58:05 1997 John W. Eaton - - * Version 2.0.4 released. - - Wed Feb 19 10:30:14 1997 John W. Eaton - - * miscellaneous/paren.m: New file. - - Tue Feb 18 09:22:04 1997 John W. Eaton - - * Version 2.0.3 released. - - Thu Feb 13 19:06:42 1997 John W. Eaton - - * image/saveimage.m: Only clip image data that is actually out of - range. - - Sun Feb 9 19:52:08 1997 John W. Eaton - - * general/is_matrix.m: Scalars, vectors, and empty matrices may - also be considered to be matrices. - - * general/is_vector.m: Scalars may also be considered to be vectors. - - * general/isempty.m: Use size(), not rows() and columns(). - - * plot/contour.m: Convert set to gset. - Set view to 0, 0, 1, 1, not 0, 0, 1.9, 1. - - Fri Feb 7 12:55:55 1997 John W. Eaton - - * specfun/erfinv.m: Fix typo in last change. - - Fri Jan 31 09:30:16 1997 John W. Eaton - - * image/loadimage.m: Make it possible to load files with image - data named X or img. - - * image/default.img: Change name of image from X to img to match - what saveimage does now. - - * image/loadimage.m: Rename X to be img, to match what saveimage - does now. - - Mon Jan 27 13:48:31 1997 John W. Eaton - - * Version 2.0.2 released. - - * plot/__plt__.m: Use usleep() instead of replot to try to avoid - weird missing-lines bug without creating extra plots unecessarily. - - Sat Jan 25 22:37:07 1997 John W. Eaton - - * Makefile.in, audio/Makefile.in, control/Makefile.in, - elfun/Makefile.in, general/Makefile.in, image/Makefile.in, - io/Makefile.in, linear-algebra/Makefile.in, - miscellaneous/Makefile.in, plot/Makefile.in, - polynomial/Makefile.in, set/Makefile.in, signal/Makefile.in, - specfun/Makefile.in, special-matrix/Makefile.in, - startup/Makefile.in, statistics/Makefile.in, strings/Makefile.in, - time/Makefile.in (bin-dist): New target. - - Wed Jan 22 11:28:30 1997 John W. Eaton - - * specfun/erfinv.m: Avoid A([]) = X, X != [] error. - - Tue Jan 21 11:16:40 1997 John W. Eaton - - * miscellaneous/xor.m: Make it work. - - Mon Jan 20 12:28:34 1997 John W. Eaton - - * plot/sombrero.m: Doc fix. - - Tue Jan 7 00:16:52 1997 John W. Eaton - - * Version 2.0.1 released. - - Thu Dec 19 22:16:46 1996 John W. Eaton - - * elfun/lcm.m: Replace missing if statement. - - * elfun/gcd.m: Report error if no input args. - * elfun/lcm.m: Likewise. - - Mon Dec 16 15:23:04 1996 John W. Eaton - - * Makefile.in (install): Use ls -LR to create ls-R database. - Also list contents of $libexecdir/octave in ls-R database. - - Tue Dec 10 01:43:07 1996 John W. Eaton - - * Version 2.0 released. - - Fri Dec 6 15:23:46 1996 John W. Eaton - - * Version 1.94. - - Sun Dec 1 20:55:34 1996 John W. Eaton - - * strings/str2num.m: New file. - - Wed Nov 20 01:00:24 1996 John W. Eaton - - * Version 1.93. - - Tue Nov 19 15:13:35 1996 John W. Eaton - - * linear-algebra/commutation_matrix.m, linear-algebra/cross.m, - linear-algebra/duplication_matrix.m, linear-algebra/vec.m, - linear-algebra/vech.m: New files from Kurt Hornik. - - * general/nextpow2.m, general/shift.m, general/diff.m, - general/common_size.m: New files from Kurt Hornik. - - * miscellaneous/bincoeff.m, miscellaneous/xor.m: - New files from Kurt Hornik. - - * signal/detrend.m: New file from Kurt Hornik. - - * specfun/betai.m, specfun/gammai.m, specfun/erfinv.m, - specfun/pow2.m, specfun/log2.m: - New files and updates from Kurt Hornik. - - Fri Nov 15 18:13:00 1996 John W. Eaton - - * plot/__plt__.m: Add explicit replot after last command is - issued, to force all lines to be displayed. Hmm. - - Thu Nov 14 00:06:34 1996 John W. Eaton - - * plot/axis.m, plot/bottom_title.m, plot/contour.m, - plot/figure.m, plot/grid.m, plot/loglog.m, plot/mesh.m, - plot/mplot.m, plot/multiplot.m, plot/oneplot.m, plot/plot.m, - plot/plot_border.m, plot/polar.m, plot/semilogx.m, - plot/semilogy.m, plot/subplot.m, plot/subwindow.m, plot/title.m, - plot/top_title.m, plot/xlabel.m, plot/ylabel.m, plot/zlabel.m: - Uset gset, not set. - - * Version 1.92. - - Thu Nov 7 12:43:12 1996 John W. Eaton - - * image/saveimage.m: When writing PostScript, name Octave as the - almighty Creator. Use single call to fprintf instead of looping. - - * image/Makefile.in: Delete references to octtopnm. - - * general/logspace.m: Doc fix. - - * Version 1.91. - - Sat Nov 2 21:06:29 1996 John W. Eaton - - * image/image.m: Use tmpnam() instead of home-brew scheme. - - * audio/record.m, audio/playaudio.m: Use tmpnam() instead of - octave_tmp_file_name(). Use unwind_protect to ensure tmp file is - deleted. - * miscellaneous/bug_report.m: Likewise. Also use unlink() instead - of a system() command to delete the tmp file. - - Wed Oct 30 17:19:45 1996 John W. Eaton - - * Version 1.90. - - * Makefile.in (DISTFILES): Add ChangeLog. - - Thu Oct 10 17:31:01 1996 John W. Eaton - - * plot/subplot.m, plot/multiplot.m, plot/mplot.m: - Don't check for string value of automatic_replot. - - * image/ind2ind.m, image/ind2rgb.m, image/ind2gray.m: - Temporarily set do_fortran_indexing to 1, not "true". - - * miscellaneous/menu.m: Temporarily set page_screen_output to 0, - not "false". - - * linear-algebra/cond.m: Don't compare propagate_empty_matrices to - "false". - - Tue Aug 20 18:27:36 1996 Kurt Hornik - - * strings/substr.m: Allow negative OFFSET. LEN is now optional. - - Mon Jul 15 16:15:22 1996 John W. Eaton - - * miscellaneous/bug_report.m: Don't redirect output to /dev/tty in - system command. - - Fri Jul 12 12:24:29 1996 John W. Eaton - - * __plr1__.m: Renamed from polar_int_1.m. - * __plr2__.m: Renamed from polar_int_2.m. - * __plr__.m: Renamed from polar_int.m. - * __plt1__.m: Renamed from plot_int_1.m. - * __plt2__.m: Renamed from plot_int_2.m. - * __plt2mm__.m: Renamed from plot_2_m_m_.m. - * __plt2mv__.m: Renamed from plot_2_m_v_.m. - * __plt2ss__.m: Renamed from plot_2_s_s_.m. - * __plt2vm__.m: Renamed from plot_2_v_m_.m. - * __plt2vv__.m: Renamed from plot_2_v_v_.m. - * __plt__.m: Renamed from plot_int.m. - * __pltopt__.m: Renamed from plot_opt.m. - Change all callers. - - Thu Jul 11 17:24:29 1996 John W. Eaton - - * All .m files: Add regular Author:, Created:, and Adapted-By: - comments like those found in Emacs lisp files. - - Mon Jun 24 04:16:41 1996 John W. Eaton - - * All .m files: Change comment style. - - Fri Jun 14 01:42:21 1996 John W. Eaton - - * bottom_title.m, mplot.m, multiplot.m, oneplot.m, plot_border.m, - subplot.m, subwindow.m, top_title.m: - Print error message if gnuplot_has_multiplot is not true. - - Thu Jun 6 00:18:54 1996 John W. Eaton - - * plot/figure.m: New function. - - Wed Jun 5 18:19:00 1996 John W. Eaton - - * strings/strrep.m: New function. - - Thu May 23 15:04:22 1996 John W. Eaton - - * strings/bin2dec.m, strings/blanks.m, strings/deblank.m, - strings/dec2bin.m, strings/dec2hex.m, strings/findstr.m, - strings/hex2dec.m, strings/index.m, strings/rindex.m, - strings/split.m, strings/str2mat.m, strings/substr.m: - New functions from Kurt Hornik, heavily modified by jwe. - - * general/reshape.m: Allow strings to be reshaped too. - - * strings/strcmp.m: No longer need to set implicit_str_to_num_ok. - Always return a scalar. - - Wed May 22 19:52:11 1996 John W. Eaton - - * polynomial/polyfit.m: Make orientation of result compatible with - Matlab. - - Sat May 18 17:32:15 1996 John W. Eaton - - * polynomial/polyfit.m: Add missing close paren. - - Thu May 16 10:23:11 1996 John W. Eaton - - * plot/plot_opt.m: Set compatibility arg in call to sscanf. - - * io/scanf.m: Delete. - - Mon May 13 09:37:38 1996 John W. Eaton - - * statistics/median.m: Fix typo in usage message. - - Wed Apr 24 02:45:52 1996 John W. Eaton - - * miscellaneous/popen2.m: New file. - - Wed Apr 17 18:34:04 1996 John W. Eaton - - * configure.in (AC_OUTPUT): Add io/Makefile. - - * io: New directory. - * Makefile.in (SUBDIRS): Add it to the list. - - * miscellaneous/flops.m: New file. - - Fri Mar 22 04:40:48 1996 John W. Eaton - - * miscellaneous/cputime.m: Return three arguments instead of a - vector, for compatibility with previous versions and with Matlab - (which only returns one scalar value). - - Wed Mar 20 05:09:48 1996 Kurt Hornik - - * general/triu.m: Compute lower bound on loop index correctly. - * general/tril.m: Likewise, for upper bound. - - Tue Feb 6 09:29:43 1996 John W. Eaton - - * image/saveimage.m: For color images, make sure indices into - temporary colormap and result matrix have proper orientation. - Set grey flag correctly. - - Tue Jan 9 00:12:14 1996 John W. Eaton - - * statistics/std.m: Use better formula (from Jim Van Zandt - jrv@vanzandt.mv.com). - - Sun Jan 7 20:12:14 1996 John W. Eaton - - * meshgrid.m: New file (from Jim Van Zandt jrv@vanzandt.mv.com). - * mesh.m: Transpose Z if only one arg. - Handle case of all three args being matrices (from Jim Van Zandt - jrv@vanzandt.mv.com). - * meshdom.m: Undo previous change. - - Wed Dec 20 13:48:12 1995 John W. Eaton - - * configure.in (AC_OUTPUT): Add audio/Makefile - - Thu Nov 16 13:07:07 1995 John Eaton - - * audio: New directory of files from Kurt Hornik and Andreas - Weingessel. - * audio/Makefile.in: New file. - * Makefile.in (SUBDIRS): Add audio to the list. - - Mon Nov 6 07:29:35 1995 John Eaton - - * polynomial/polyfit.m: Use `economy-stle' QR factorization. - - Fri Nov 3 00:38:46 1995 John Eaton - - * plot/mesh.m: Require, length (y) == rows (z) and length (x) == - columns (z), not the other way around. - * plot/meshdom.m: Don't reverse order of elements in y. - - Thu Nov 2 23:56:53 1995 John Eaton - - * plot/axis.m: Return current axis if nargin == 0. - - Tue Oct 31 04:11:28 1995 John Eaton - - * polynomial/roots.m: Updates from Kurt Hornik. - - * polynomial/polyder.m: New file. - - * polynomial/polyderiv.m: Give return value and arg different names. - - Mon Oct 30 23:27:02 1995 John Eaton - - * specfun/betainc.m: New file. - * specfun/gammainc.m: New file. - - Wed Oct 18 23:45:52 1995 John Eaton - - * general/strerror.m: New file. - * general/perror.m: Implement using strerror(). - - Thu Oct 5 03:21:36 1995 John Eaton - - * plot/bottom_title.m plot/mplot.m plot/multiplot.m plot/oneplot.m - plot/plot_border.m plot/subplot.m plot/subwindow.m - plot/top_title.m plot/zlabel.m: New files, from Vinayak Dutt. - - * image/saveimage.m: Round img values first. - - Tue Oct 3 03:55:18 1995 John Eaton - - * control/abcddim.m control/are.m general/tril.m general/triu.m - image/saveimage.m linear-algebra/kron.m linear-algebra/norm.m - linear-algebra/null.m miscellaneous/etime.m plot/contour.m - plot/mesh.m plot/plot_int.m plot/polar_int.m - special-matrix/hankel.m special-matrix/toeplitz.m - tuwien/strfun/split.m: Add missing semicolons. - - * plot/polar_int.m: Use .', not ' to make vectors conform. - - * image/Makefile.in: Don't build or install octtoppm. - - * image/saveimage.m: Rewrite to avoid using octoppm and pbm - routines so that people who don't have the pbm stuff installed - can still use this function. - - Mon Oct 2 05:10:44 1995 John Eaton - - * image/saveimage.m: Better error checking, clean up a bit. - - Tue Sep 26 00:04:56 1995 John Eaton - - * plot/plot_opt.m: Change more to more_opts as a temporary fix to - avoid conflict with new built-in text-style function more. - - * linear-algebra/norm.m: Also allow 2nd arg == "inf". - - * startup/Makefile.in (install): Also install octaverc in - $localfcnfiledir/startup/octavrc. - - Wed Sep 20 00:01:30 1995 John Eaton - - * mkinstalldirs: New file. - * Makefile.in (DISTFILES): Add it to the list. - - * Makefile.in (DISTFILES): Distribute configure.in and configure. - - Thu Sep 14 03:56:19 1995 John Eaton - - * special-matrix/hankel.m: Compatibility fix. Complain if - r(1) != c(nr), not if r(1) != c(1). - - * signal/filter.m: Doc fix. - - Wed Sep 13 03:19:05 1995 John Eaton - - * miscellaneous/cputime.m: Use new resource structure names (no - ru_ or tv_ prefixes). - - Tue Sep 12 02:20:44 1995 John Eaton - - * time/ctime.m: Fix doc string and usage message. - - Mon Sep 11 18:43:46 1995 John Eaton - - * time/clock.m: Use new time structure names (no tm_ prefix). - - Thu Aug 24 20:53:08 1995 John Eaton - - * control/c2d.m: Make function work for any value of - whitespace_in_literal_matrix. - * control/dare.m: Likewise. - * control/tzero.m: Likewise. - * elfun/gcd.m: Likewise. - * elfun/lcm.m: Likewise. - * general/postpad.m: Likewise. - * general/prepad.m: Likewise. - * linear-algebra/kron.m: Likewise. - * miscellaneous/etime.m: Likewise. - * polynomial/conv.m: Likewise. - * polynomial/deconv.m: Likewise. - * polynomial/poly.m: Likewise. - * polynomial/roots.m: Likewise. - * signal/filter.m: Likewise. - * signal/freqz.m: Likewise. - * signal/fftfilt.m: Likewise. - - Tue Jun 6 22:34:04 1995 John Eaton - - * miscellaneous/is_leap_year.m: Make work for vector args. - - Tue May 2 16:18:33 1995 John Eaton - - * plot/polar_int_2.m: Add missing semicolons. - Set theta = theta', not rho'. - - Sun Apr 30 11:19:11 1995 John Eaton - - * polynomial/roots.m: Make it work for any value of - whitespace_in_literal_matrix. - - Mon Apr 10 09:37:17 1995 John Eaton - - * configure.in: New file. - - Thu Mar 30 13:29:35 1995 John Eaton - - * control/lyap.m: Add missing semicolon. - - * miscellaneous/cputime.m: New function file. - - Wed Mar 29 22:50:49 1995 John Eaton - - * time: New directory. - * time/asctime.m, time/clock.m, time/ctime.m, time/date.m: - New function files. - * time/Makefile.in: New file. - * Makefile.in (SUBDIRS): Add time. - - Thu Mar 23 15:42:26 1995 John Eaton - - * polynomial/polyreduce.m: Make sure initial index is not empty. - - Tue Mar 14 23:38:24 1995 John Eaton - - * plot/plot_int_1.m: Transpose data with .', not '. - - Fri Mar 10 10:40:13 1995 John Eaton - - * Makefile.in (install uninstall clean mostlyclean distclean - realclean): Use SUBDIR_FOR_COMMAND. Combine actions. - - Sun Feb 26 22:18:22 1995 John Eaton - - * Makefile.in (install): Create ls-R database file. - (uninstall): Delete it. - - Fri Feb 24 10:36:01 1995 John Eaton - - * image/saveimage.m: Fix typo. - - See ChangeLog.1 in the top level directory for earlier changes. --- 0 ---- diff -cNr octave-3.4.0/scripts/deprecated/cquad.m octave-3.4.1/scripts/deprecated/cquad.m *** octave-3.4.0/scripts/deprecated/cquad.m 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/scripts/deprecated/cquad.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,39 ---- + ## Copyright (C) 2011 John W. Eaton + ## + ## This file is part of Octave. + ## + ## Octave 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. + ## + ## Octave 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 Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {[@var{int}, @var{err}, @var{nr_points}] =} cquad (@var{f}, @var{a}, @var{b}, @var{tol}) + ## @deftypefnx {Function File} {[@var{int}, @var{err}, @var{nr_points}] =} cquad (@var{f}, @var{a}, @var{b}, @var{tol}, @var{sing}) + ## This function is an alias for compatibility with older versions of + ## Octave. New programs should use @code{quadcc} instead. + ## @seealso{quadcc} + ## @end deftypefn + + ## Deprecated in version 3.4 + + function retval = cquad (varargin) + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "cquad has been renamed to quadcc and this alias will be removed from a future version of Octave; please use quadcc instead"); + endif + + retval = quadcc (varargin{:}); + + endfunction diff -cNr octave-3.4.0/scripts/deprecated/is_duplicate_entry.m octave-3.4.1/scripts/deprecated/is_duplicate_entry.m *** octave-3.4.0/scripts/deprecated/is_duplicate_entry.m 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/scripts/deprecated/is_duplicate_entry.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,53 ---- + ## Copyright (C) 1996-2011 A. S. Hodel + ## + ## This file is part of Octave. + ## + ## Octave 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. + ## + ## Octave 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 Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {} is_duplicate_entry (@var{x}) + ## Return non-zero if any entries in @var{x} are duplicates of one + ## another. + ## @seealso{unique} + ## @end deftypefn + + ## Author: A. S. Hodel + + function retval = is_duplicate_entry (x) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "is_duplicate_entry is obsolete and will be removed from a future version of Octave; see the function unique for equivalent functionality"); + endif + + + if (nargin == 1) + if (ismatrix (x)) + lx = numel (x); + lx1 = lx-1; + x = sort (reshape (x, 1, lx)); + dx = x(1:lx1) - x(2:lx); + retval = sum (dx == 0); + else + error ("is_duplicate_entry: expecting matrix argument"); + endif + else + print_usage (); + endif + + endfunction + diff -cNr octave-3.4.0/scripts/deprecated/module.mk octave-3.4.1/scripts/deprecated/module.mk *** octave-3.4.0/scripts/deprecated/module.mk 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/deprecated/module.mk 2011-06-15 11:13:48.000000000 -0400 *************** *** 8,13 **** --- 8,14 ---- deprecated/clg.m \ deprecated/complement.m \ deprecated/create_set.m \ + deprecated/cquad.m \ deprecated/dispatch.m \ deprecated/dmult.m \ deprecated/fstat.m \ *************** *** 15,20 **** --- 16,22 ---- deprecated/glpkmex.m \ deprecated/intwarning.m \ deprecated/iscommand.m \ + deprecated/is_duplicate_entry.m \ deprecated/is_global.m \ deprecated/israwcommand.m \ deprecated/isstr.m \ *************** *** 23,28 **** --- 25,31 ---- deprecated/krylovb.m \ deprecated/mark_as_command.m \ deprecated/mark_as_rawcommand.m \ + deprecated/perror.m \ deprecated/replot.m \ deprecated/saveimage.m \ deprecated/setstr.m \ *************** *** 49,54 **** --- 52,58 ---- deprecated/spsumsq.m \ deprecated/spvcat.m \ deprecated/str2mat.m \ + deprecated/strerror.m \ deprecated/unmark_command.m \ deprecated/unmark_rawcommand.m \ deprecated/values.m \ diff -cNr octave-3.4.0/scripts/deprecated/perror.m octave-3.4.1/scripts/deprecated/perror.m *** octave-3.4.0/scripts/deprecated/perror.m 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/scripts/deprecated/perror.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,45 ---- + ## Copyright (C) 1993-2011 John W. Eaton + ## + ## This file is part of Octave. + ## + ## Octave 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. + ## + ## Octave 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 Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {} perror (@var{funcname}, @var{num}) + ## Print the error message for function @var{funcname} corresponding to the + ## error number @var{num}. This function is intended to be used to print + ## useful error messages for those functions that return numeric error + ## codes. + ## @seealso{strerror} + ## @end deftypefn + + ## Author: jwe + + function perror (funcname, num) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "perror is obsolete and will be removed from a future version of Octave."); + endif + + if (nargin != 2) + print_usage (); + else + printf (strerror (funcname, num)); + endif + + endfunction diff -cNr octave-3.4.0/scripts/deprecated/strerror.m octave-3.4.1/scripts/deprecated/strerror.m *** octave-3.4.0/scripts/deprecated/strerror.m 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/scripts/deprecated/strerror.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,72 ---- + ## Copyright (C) 1995-2011 John W. Eaton + ## + ## This file is part of Octave. + ## + ## Octave 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. + ## + ## Octave 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 Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {} strerror (@var{name}, @var{num}) + ## Return the text of an error message for function @var{name} + ## corresponding to the error number @var{num}. This function is intended + ## to be used to print useful error messages for those functions that + ## return numeric error codes. + ## @end deftypefn + + ## Author: jwe + + function msg = strerror (name, num) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "strerror is obsolete and will be removed from a future version of Octave."); + endif + + if (nargin != 2) + print_usage (); + endif + + if (! ischar (name)) + error ("strerror: first argument must be a string"); + endif + + if (! isscalar (num)) + error ("strerror: second argument must be a scalar"); + endif + + if (strcmp (name, "fsolve")) + + if (num == -2) + msg = "input error\n"; + elseif (num == -1) + msg = "error encountered in user-supplied function\n"; + elseif (num == 1) + msg = "solution converged to requested tolerance\n"; + elseif (num == 3) + msg = "iteration is not making good progress\n"; + elseif (num == 4) + msg = "iteration limit exceeded\n"; + else + error ("strerror: unrecognized error code for fsolve"); + endif + + else + + error ("strerror: unrecognized function NAME"); + + endif + + endfunction diff -cNr octave-3.4.0/scripts/DOCSTRINGS octave-3.4.1/scripts/DOCSTRINGS *** octave-3.4.0/scripts/DOCSTRINGS 2011-02-08 05:11:25.000000000 -0500 --- octave-3.4.1/scripts/DOCSTRINGS 2011-06-15 11:39:05.000000000 -0400 *************** *** 61,67 **** @deftypefn {Function File} {} mget (@var{f}, @var{file}) @deftypefnx {Function File} {} mget (@var{f}, @var{dir}) @deftypefnx {Function File} {} mget (@dots{}, @var{target}) ! Downloads a remote file @var{file} or directory @var{dir} to the local directory on the FTP connection @var{f}. @var{f} is an FTP object returned by the @code{ftp} function. --- 61,67 ---- @deftypefn {Function File} {} mget (@var{f}, @var{file}) @deftypefnx {Function File} {} mget (@var{f}, @var{dir}) @deftypefnx {Function File} {} mget (@dots{}, @var{target}) ! Download a remote file @var{file} or directory @var{dir} to the local directory on the FTP connection @var{f}. @var{f} is an FTP object returned by the @code{ftp} function. *************** *** 122,128 **** @c loadaudio scripts/audio/loadaudio.m -*- texinfo -*- @deftypefn {Function File} {} loadaudio (@var{name}, @var{ext}, @var{bps}) ! Loads audio data from the file @file{@var{name}.@var{ext}} into the vector @var{x}. The extension @var{ext} determines how the data in the audio file is --- 122,128 ---- @c loadaudio scripts/audio/loadaudio.m -*- texinfo -*- @deftypefn {Function File} {} loadaudio (@var{name}, @var{ext}, @var{bps}) ! Load audio data from the file @file{@var{name}.@var{ext}} into the vector @var{x}. The extension @var{ext} determines how the data in the audio file is *************** *** 151,157 **** -*- texinfo -*- @deftypefn {Function File} {} playaudio (@var{name}, @var{ext}) @deftypefnx {Function File} {} playaudio (@var{x}) ! Plays the audio file @file{@var{name}.@var{ext}} or the audio data stored in the vector @var{x}. @seealso{lin2mu, mu2lin, loadaudio, saveaudio, setaudio, record} @end deftypefn --- 151,157 ---- -*- texinfo -*- @deftypefn {Function File} {} playaudio (@var{name}, @var{ext}) @deftypefnx {Function File} {} playaudio (@var{x}) ! Play the audio file @file{@var{name}.@var{ext}} or the audio data stored in the vector @var{x}. @seealso{lin2mu, mu2lin, loadaudio, saveaudio, setaudio, record} @end deftypefn *************** *** 159,165 **** @c record scripts/audio/record.m -*- texinfo -*- @deftypefn {Function File} {} record (@var{sec}, @var{sampling_rate}) ! Records @var{sec} seconds of audio input into the vector @var{x}. The default value for @var{sampling_rate} is 8000 samples per second, or 8kHz. The program waits until the user types @key{RET} and then immediately starts to record. --- 159,165 ---- @c record scripts/audio/record.m -*- texinfo -*- @deftypefn {Function File} {} record (@var{sec}, @var{sampling_rate}) ! Record @var{sec} seconds of audio input into the vector @var{x}. The default value for @var{sampling_rate} is 8000 samples per second, or 8kHz. The program waits until the user types @key{RET} and then immediately starts to record. *************** *** 169,175 **** @c saveaudio scripts/audio/saveaudio.m -*- texinfo -*- @deftypefn {Function File} {} saveaudio (@var{name}, @var{x}, @var{ext}, @var{bps}) ! Saves a vector @var{x} of audio data to the file @file{@var{name}.@var{ext}}. The optional parameters @var{ext} and @var{bps} determine the encoding and the number of bits per sample used in the audio file (see @code{loadaudio}); defaults are @file{lin} and --- 169,175 ---- @c saveaudio scripts/audio/saveaudio.m -*- texinfo -*- @deftypefn {Function File} {} saveaudio (@var{name}, @var{x}, @var{ext}, @var{bps}) ! Save a vector @var{x} of audio data to the file @file{@var{name}.@var{ext}}. The optional parameters @var{ext} and @var{bps} determine the encoding and the number of bits per sample used in the audio file (see @code{loadaudio}); defaults are @file{lin} and *************** *** 193,201 **** in vector @var{y}. If the file contains multichannel data, then @var{y} is a matrix with the channels represented as columns. ! @deftypefnx {Function File} {[@var{y}, @var{Fs}, @var{bits}] =} wavread (@var{filename}) Additionally return the sample rate (@var{fs}) in Hz and the number of bits ! per sample (@var{bits}). @deftypefnx {Function File} {[@dots{}] =} wavread (@var{filename}, @var{n}) Read only the first @var{n} samples from each channel. --- 193,201 ---- in vector @var{y}. If the file contains multichannel data, then @var{y} is a matrix with the channels represented as columns. ! @deftypefnx {Function File} {[@var{y}, @var{Fs}, @var{bps}] =} wavread (@var{filename}) Additionally return the sample rate (@var{fs}) in Hz and the number of bits ! per sample (@var{bps}). @deftypefnx {Function File} {[@dots{}] =} wavread (@var{filename}, @var{n}) Read only the first @var{n} samples from each channel. *************** *** 212,221 **** @c wavwrite scripts/audio/wavwrite.m -*- texinfo -*- @deftypefn {Function File} {} wavwrite (@var{y}, @var{filename}) ! @deftypefnx {Function File} {} wavwrite (@var{y}, @var{fs}, @var{filename}) ! @deftypefnx {Function File} {} wavwrite (@var{y}, @var{fs}, @var{bits}, @var{filename}) Write @var{y} to the canonical RIFF/WAVE sound file @var{filename} ! with sample rate @var{fs} and bits per sample @var{bits}. The default sample rate is 8000 Hz with 16-bits per sample. Each column of the data represents a separate channel. @seealso{wavread} --- 212,221 ---- @c wavwrite scripts/audio/wavwrite.m -*- texinfo -*- @deftypefn {Function File} {} wavwrite (@var{y}, @var{filename}) ! @deftypefnx {Function File} {} wavwrite (@var{y}, @var{Fs}, @var{filename}) ! @deftypefnx {Function File} {} wavwrite (@var{y}, @var{Fs}, @var{bps}, @var{filename}) Write @var{y} to the canonical RIFF/WAVE sound file @var{filename} ! with sample rate @var{Fs} and bits per sample @var{bps}. The default sample rate is 8000 Hz with 16-bits per sample. Each column of the data represents a separate channel. @seealso{wavread} *************** *** 298,303 **** --- 298,312 ---- @deftypefnx {Function File} {} create_set (@var{x}, "rows") This function has been deprecated. Use unique instead. @end deftypefn + cquad + @c cquad scripts/deprecated/cquad.m + -*- texinfo -*- + @deftypefn {Function File} {[@var{int}, @var{err}, @var{nr_points}] =} cquad (@var{f}, @var{a}, @var{b}, @var{tol}) + @deftypefnx {Function File} {[@var{int}, @var{err}, @var{nr_points}] =} cquad (@var{f}, @var{a}, @var{b}, @var{tol}, @var{sing}) + This function is an alias for compatibility with older versions of + Octave. New programs should use @code{quadcc} instead. + @seealso{quadcc} + @end deftypefn dispatch @c dispatch scripts/deprecated/dispatch.m -*- texinfo -*- *************** *** 401,406 **** --- 410,423 ---- This function is obsolete and will be removed from a future version of Octave. @end deftypefn + is_duplicate_entry + @c is_duplicate_entry scripts/deprecated/is_duplicate_entry.m + -*- texinfo -*- + @deftypefn {Function File} {} is_duplicate_entry (@var{x}) + Return non-zero if any entries in @var{x} are duplicates of one + another. + @seealso{unique} + @end deftypefn is_global @c is_global scripts/deprecated/is_global.m -*- texinfo -*- *************** *** 457,462 **** --- 474,489 ---- This function is obsolete and will be removed from a future version of Octave. @end deftypefn + perror + @c perror scripts/deprecated/perror.m + -*- texinfo -*- + @deftypefn {Function File} {} perror (@var{funcname}, @var{num}) + Print the error message for function @var{funcname} corresponding to the + error number @var{num}. This function is intended to be used to print + useful error messages for those functions that return numeric error + codes. + @seealso{strerror} + @end deftypefn replot @c replot scripts/deprecated/replot.m -*- texinfo -*- *************** *** 666,671 **** --- 693,707 ---- a matrix of strings by @code{[@var{s_1}; @dots{}; @var{s_n}]} even if the strings are not all the same length. @end deftypefn + strerror + @c strerror scripts/deprecated/strerror.m + -*- texinfo -*- + @deftypefn {Function File} {} strerror (@var{name}, @var{num}) + Return the text of an error message for function @var{name} + corresponding to the error number @var{num}. This function is intended + to be used to print useful error messages for those functions that + return numeric error codes. + @end deftypefn unmark_command @c unmark_command scripts/deprecated/unmark_command.m -*- texinfo -*- *************** *** 1024,1032 **** accept array arguments it is better to call the function directly. The first input argument @var{func} can be a string, a function ! handle, an inline function or an anonymous function. The input argument @var{A} can be a logic array, a numeric array, a string ! array, a structure array or a cell array. By a call of the function @command{arrayfun} all elements of @var{A} are passed on to the named function @var{func} individually. --- 1060,1068 ---- accept array arguments it is better to call the function directly. The first input argument @var{func} can be a string, a function ! handle, an inline function, or an anonymous function. The input argument @var{A} can be a logic array, a numeric array, a string ! array, a structure array, or a cell array. By a call of the function @command{arrayfun} all elements of @var{A} are passed on to the named function @var{func} individually. *************** *** 1090,1096 **** If the parameter @var{errfunc} after a further string input argument "ErrorHandler" is another string, a function handle, an inline ! function or an anonymous function, then @var{errfunc} defines a function to call in the case that @var{func} generates an error. The definition of the function must be of the form --- 1126,1132 ---- If the parameter @var{errfunc} after a further string input argument "ErrorHandler" is another string, a function handle, an inline ! function, or an anonymous function, then @var{errfunc} defines a function to call in the case that @var{func} generates an error. The definition of the function must be of the form *************** *** 1101,1108 **** @noindent where there is an additional input argument to @var{errfunc} relative to @var{func}, given by @var{s}. This is a structure with ! the elements "identifier", "message" and "index", giving ! respectively the error identifier, the error message and the index of the array elements that caused the error. The size of the output argument of @var{errfunc} must have the same size as the output argument of @var{func}, otherwise a real error is thrown. For --- 1137,1144 ---- @noindent where there is an additional input argument to @var{errfunc} relative to @var{func}, given by @var{s}. This is a structure with ! the elements "identifier", "message", and "index" giving, ! respectively, the error identifier, the error message, and the index of the array elements that caused the error. The size of the output argument of @var{errfunc} must have the same size as the output argument of @var{func}, otherwise a real error is thrown. For *************** *** 1191,1197 **** @c blkdiag scripts/general/blkdiag.m -*- texinfo -*- @deftypefn {Function File} {} blkdiag (@var{A}, @var{B}, @var{C}, @dots{}) ! Build a block diagonal matrix from @var{A}, @var{B}, @var{C}, @dots{}. All the arguments must be numeric and are two-dimensional matrices or scalars. @seealso{diag, horzcat, vertcat} --- 1227,1233 ---- @c blkdiag scripts/general/blkdiag.m -*- texinfo -*- @deftypefn {Function File} {} blkdiag (@var{A}, @var{B}, @var{C}, @dots{}) ! Build a block diagonal matrix from @var{A}, @var{B}, @var{C}, @dots{} All the arguments must be numeric and are two-dimensional matrices or scalars. @seealso{diag, horzcat, vertcat} *************** *** 1295,1301 **** @c circshift scripts/general/circshift.m -*- texinfo -*- @deftypefn {Function File} {@var{y} =} circshift (@var{x}, @var{n}) ! Circularly shifts the values of the array @var{x}. @var{n} must be a vector of integers no longer than the number of dimensions in @var{x}. The values of @var{n} can be either positive or negative, which determines the direction in which the values or @var{x} are --- 1331,1337 ---- @c circshift scripts/general/circshift.m -*- texinfo -*- @deftypefn {Function File} {@var{y} =} circshift (@var{x}, @var{n}) ! Circularly shift the values of the array @var{x}. @var{n} must be a vector of integers no longer than the number of dimensions in @var{x}. The values of @var{n} can be either positive or negative, which determines the direction in which the values or @var{x} are *************** *** 1393,1410 **** cumtrapz @c cumtrapz scripts/general/cumtrapz.m -*- texinfo -*- ! @deftypefn {Function File} {@var{z} =} cumtrapz (@var{y}) ! @deftypefnx {Function File} {@var{z} =} cumtrapz (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{z} =} cumtrapz (@dots{}, @var{dim}) ! ! Cumulative numerical integration using trapezoidal method. ! @code{cumtrapz (@var{y})} computes the cumulative integral of the ! @var{y} along the first non-singleton dimension. If the argument ! @var{x} is omitted an equally spaced vector is assumed. @code{cumtrapz ! (@var{x}, @var{y})} evaluates the cumulative integral with respect ! to @var{x}. ! @seealso{trapz,cumsum} @end deftypefn curl @c curl scripts/general/curl.m --- 1429,1454 ---- cumtrapz @c cumtrapz scripts/general/cumtrapz.m -*- texinfo -*- ! @deftypefn {Function File} {@var{q} =} cumtrapz (@var{y}) ! @deftypefnx {Function File} {@var{q} =} cumtrapz (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{q} =} cumtrapz (@dots{}, @var{dim}) ! ! Cumulative numerical integration of points @var{y} using the trapezoidal ! method. ! @w{@code{cumtrapz (@var{y})}} computes the cumulative integral of @var{y} ! along the first non-singleton dimension. Where @code{trapz} reports ! only the overall integral sum, @code{cumtrapz} reports the current partial ! sum value at each point of @var{y}. When the argument @var{x} is omitted ! an equally spaced @var{x} vector with unit spacing (1) is assumed. ! @code{cumtrapz (@var{x}, @var{y})} evaluates the integral with respect to ! the spacing in @var{x} and the values in @var{y}. This is useful if the ! points in @var{y} have been sampled unevenly. If the optional @var{dim} ! argument is given, operate along this dimension. ! If @var{x} is not specified then unit spacing will be used. To scale ! the integral to the correct value you must multiply by the actual spacing ! value (deltaX). ! @seealso{trapz, cumsum} @end deftypefn curl @c curl scripts/general/curl.m *************** *** 1436,1459 **** for two-dimensional input. For three-dimensional input the scalar rotation is calculated at each grid point in direction of the vector field at that point. ! @seealso{divergence, gradient, del2, cross, dot} @end deftypefn dblquad @c dblquad scripts/general/dblquad.m -*- texinfo -*- ! @deftypefn {Function File} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{tol}, @var{quadf}, @dots{}) ! Numerically evaluate a double integral. The function over with to ! integrate is defined by @code{@var{f}}, and the interval for the ! integration is defined by @code{[@var{xa}, @var{xb}, @var{ya}, ! @var{yb}]}. The function @var{f} must accept a vector @var{x} and a ! scalar @var{y}, and return a vector of the same length as @var{x}. ! If defined, @var{tol} defines the absolute tolerance to which to ! which to integrate each sub-integral. Additional arguments, are passed directly to @var{f}. To use the default ! value for @var{tol} one may pass an empty matrix. ! @seealso{triplequad,quad,quadv,quadl,quadgk,quadcc,trapz} @end deftypefn deal @c deal scripts/general/deal.m --- 1480,1515 ---- for two-dimensional input. For three-dimensional input the scalar rotation is calculated at each grid point in direction of the vector field at that point. ! @seealso{divergence, gradient, del2, cross} @end deftypefn dblquad @c dblquad scripts/general/dblquad.m -*- texinfo -*- ! @deftypefn {Function File} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}) ! @deftypefnx {Function File} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{tol}) ! @deftypefnx {Function File} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{tol}, @var{quadf}) ! @deftypefnx {Function File} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{tol}, @var{quadf}, @dots{}) ! Numerically evaluate the double integral of @var{f}. ! @var{f} is a function handle, inline function, or string ! containing the name of the function to evaluate. The function @var{f} must ! have the form @math{z = f(x,y)} where @var{x} is a vector and @var{y} is a ! scalar. It should return a vector of the same length and orientation as ! @var{x}. ! @var{xa}, @var{ya} and @var{xb}, @var{yb} are the lower and upper limits of ! integration for x and y respectively. The underlying integrator determines ! whether infinite bounds are accepted. ! ! The optional argument @var{tol} defines the absolute tolerance used to ! integrate each sub-integral. The default value is @math{1e^{-6}}. ! ! The optional argument @var{quadf} specifies which underlying integrator ! function to use. Any choice but @code{quad} is available and the default ! is @code{quadgk}. Additional arguments, are passed directly to @var{f}. To use the default ! value for @var{tol} or @var{quadf} one may pass an empty matrix ([]). ! @seealso{triplequad, quad, quadv, quadl, quadgk, quadcc, trapz} @end deftypefn deal @c deal scripts/general/deal.m *************** *** 1586,1592 **** The coordinates of the vector field can be given by the arguments @var{x}, @var{y}, @var{z} or @var{x}, @var{y} respectively. ! @seealso{curl, gradient, del2, cross, dot} @end deftypefn flipdim @c flipdim scripts/general/flipdim.m --- 1642,1648 ---- The coordinates of the vector field can be given by the arguments @var{x}, @var{y}, @var{z} or @var{x}, @var{y} respectively. ! @seealso{curl, gradient, del2, dot} @end deftypefn flipdim @c flipdim scripts/general/flipdim.m *************** *** 1610,1616 **** @c fliplr scripts/general/fliplr.m -*- texinfo -*- @deftypefn {Function File} {} fliplr (@var{x}) ! Return a copy of @var{x} with the order of the columns reversed. For example: @example --- 1666,1673 ---- @c fliplr scripts/general/fliplr.m -*- texinfo -*- @deftypefn {Function File} {} fliplr (@var{x}) ! Return a copy of @var{x} with the order of the columns reversed. In ! other words, @var{x} is flipped left-to-right about a vertical axis. For example: @example *************** *** 1621,1627 **** @end group @end example ! Note that @code{fliplr} only work with 2-D arrays. To flip N-d arrays use @code{flipdim} instead. @seealso{flipud, flipdim, rot90, rotdim} @end deftypefn --- 1678,1684 ---- @end group @end example ! Note that @code{fliplr} only works with 2-D arrays. To flip N-D arrays use @code{flipdim} instead. @seealso{flipud, flipdim, rot90, rotdim} @end deftypefn *************** *** 1629,1635 **** @c flipud scripts/general/flipud.m -*- texinfo -*- @deftypefn {Function File} {} flipud (@var{x}) ! Return a copy of @var{x} with the order of the rows reversed. For example: @example --- 1686,1693 ---- @c flipud scripts/general/flipud.m -*- texinfo -*- @deftypefn {Function File} {} flipud (@var{x}) ! Return a copy of @var{x} with the order of the rows reversed. In ! other words, @var{x} is flipped upside-down about a horizontal axis. For example: @example *************** *** 1640,1647 **** @end group @end example ! Due to the difficulty of defining which axis about which to flip the ! matrix @code{flipud} only work with 2-d arrays. To flip N-d arrays use @code{flipdim} instead. @seealso{fliplr, flipdim, rot90, rotdim} @end deftypefn --- 1698,1704 ---- @end group @end example ! Note that @code{flipud} only works with 2-D arrays. To flip N-D arrays use @code{flipdim} instead. @seealso{fliplr, flipdim, rot90, rotdim} @end deftypefn *************** *** 2124,2137 **** @seealso{interp1} @end deftypefn - is_duplicate_entry - @c is_duplicate_entry scripts/general/is_duplicate_entry.m - -*- texinfo -*- - @deftypefn {Function File} {} is_duplicate_entry (@var{x}) - Return non-zero if any entries in @var{x} are duplicates of one - another. - @seealso{unique} - @end deftypefn isa @c isa scripts/general/isa.m -*- texinfo -*- --- 2181,2186 ---- *************** *** 2139,2144 **** --- 2188,2200 ---- Return true if @var{obj} is an object from the class @var{class}. @seealso{class, typeinfo} @end deftypefn + iscolumn + @c iscolumn scripts/general/iscolumn.m + -*- texinfo -*- + @deftypefn {Function File} {} iscolumn (@var{x}) + Return true if @var{x} is a column vector. + @seealso{isrow, isscalar, isvector, ismatrix} + @end deftypefn isdir @c isdir scripts/general/isdir.m -*- texinfo -*- *************** *** 2161,2166 **** --- 2217,2229 ---- are equal. @seealso{isequal} @end deftypefn + isrow + @c isrow scripts/general/isrow.m + -*- texinfo -*- + @deftypefn {Function File} {} isrow (@var{x}) + Return true if @var{x} is a row vector. + @seealso{iscolumn, isscalar, isvector, ismatrix} + @end deftypefn isscalar @c isscalar scripts/general/isscalar.m -*- texinfo -*- *************** *** 2208,2225 **** logspace @c logspace scripts/general/logspace.m -*- texinfo -*- ! @deftypefn {Function File} {} logspace (@var{base}, @var{limit}) ! @deftypefnx {Function File} {} logspace (@var{base}, @var{limit}, @var{n}) ! Similar to @code{linspace} except that the values are logarithmically ! spaced from @tex ! $10^{base}$ to $10^{limit}$. @end tex @ifnottex ! 10^base to 10^limit. @end ifnottex ! If @var{limit} is equal to @tex $\pi$, @end tex --- 2271,2289 ---- logspace @c logspace scripts/general/logspace.m -*- texinfo -*- ! @deftypefn {Function File} {} logspace (@var{a}, @var{b}) ! @deftypefnx {Function File} {} logspace (@var{b}, @var{b}, @var{n}) ! @deftypefnx {Function File} {} logspace (@var{a}, pi, @var{n}) ! Return a row vector with @var{n} elements logarithmically spaced from @tex ! $10^{a}$ to $10^{b}$. @end tex @ifnottex ! 10^@var{a} to 10^@var{b}. @end ifnottex + If @var{n} is unspecified it defaults to 50. ! If @var{b} is equal to @tex $\pi$, @end tex *************** *** 2228,2251 **** @end ifnottex the points are between @tex ! $10^{base}$ and $\pi$, @end tex @ifnottex ! 10^base and pi, @end ifnottex @emph{not} @tex ! $10^{base}$ and $10^{\pi}$, @end tex @ifnottex ! 10^base and 10^pi, @end ifnottex ! in order to be compatible with the corresponding @sc{matlab} ! function. ! If @var{n} is unspecified it defaults to 50. ! Also for compatibility with @sc{matlab}, return the second argument if ! fewer than two values are requested. @seealso{linspace} @end deftypefn nargchk --- 2292,2313 ---- @end ifnottex the points are between @tex ! $10^{a}$ and $\pi$, @end tex @ifnottex ! 10^@var{a} and pi, @end ifnottex @emph{not} @tex ! $10^{a}$ and $10^{\pi}$, @end tex @ifnottex ! 10^@var{a} and 10^pi, @end ifnottex ! in order to be compatible with the corresponding @sc{matlab} function. ! Also for compatibility with @sc{matlab}, return the second argument @var{b} ! if fewer than two values are requested. @seealso{linspace} @end deftypefn nargchk *************** *** 2332,2347 **** will get unpredictable results. @seealso{sprintf, int2str, mat2str} @end deftypefn - perror - @c perror scripts/general/perror.m - -*- texinfo -*- - @deftypefn {Function File} {} perror (@var{funcname}, @var{num}) - Print the error message for function @var{funcname} corresponding to the - error number @var{num}. This function is intended to be used to print - useful error messages for those functions that return numeric error - codes. - @seealso{strerror} - @end deftypefn pol2cart @c pol2cart scripts/general/pol2cart.m -*- texinfo -*- --- 2394,2399 ---- *************** *** 2385,2393 **** @deftypefn {Function File} {} postpad (@var{x}, @var{l}) @deftypefnx {Function File} {} postpad (@var{x}, @var{l}, @var{c}) @deftypefnx {Function File} {} postpad (@var{x}, @var{l}, @var{c}, @var{dim}) ! Append the scalar value @var{c} to the vector @var{x} ! until it is of length @var{l}. If the third argument is not ! supplied, a value of 0 is used. If @code{length (@var{x}) > @var{l}}, elements from the end of @var{x} are removed until a vector of length @var{l} is obtained. --- 2437,2444 ---- @deftypefn {Function File} {} postpad (@var{x}, @var{l}) @deftypefnx {Function File} {} postpad (@var{x}, @var{l}, @var{c}) @deftypefnx {Function File} {} postpad (@var{x}, @var{l}, @var{c}, @var{dim}) ! Append the scalar value @var{c} to the vector @var{x} until it is of length ! @var{l}. If @var{c} is not given, a value of 0 is used. If @code{length (@var{x}) > @var{l}}, elements from the end of @var{x} are removed until a vector of length @var{l} is obtained. *************** *** 2404,2412 **** @deftypefn {Function File} {} prepad (@var{x}, @var{l}) @deftypefnx {Function File} {} prepad (@var{x}, @var{l}, @var{c}) @deftypefnx {Function File} {} prepad (@var{x}, @var{l}, @var{c}, @var{dim}) ! Prepend the scalar value @var{c} to the vector @var{x} ! until it is of length @var{l}. If the third argument is not ! supplied, a value of 0 is used. If @code{length (@var{x}) > @var{l}}, elements from the beginning of @var{x} are removed until a vector of length @var{l} is obtained. --- 2455,2462 ---- @deftypefn {Function File} {} prepad (@var{x}, @var{l}) @deftypefnx {Function File} {} prepad (@var{x}, @var{l}, @var{c}) @deftypefnx {Function File} {} prepad (@var{x}, @var{l}, @var{c}, @var{dim}) ! Prepend the scalar value @var{c} to the vector @var{x} until it is of length ! @var{l}. If @var{c} is not given, a value of 0 is used. If @code{length (@var{x}) > @var{l}}, elements from the beginning of @var{x} are removed until a vector of length @var{l} is obtained. *************** *** 2420,2444 **** quadgk @c quadgk scripts/general/quadgk.m -*- texinfo -*- ! @deftypefn {Function File} {} quadgk (@var{f}, @var{a}, @var{b}, @var{abstol}, @var{trace}) ! @deftypefnx {Function File} {} quadgk (@var{f}, @var{a}, @var{b}, @var{prop}, @var{val}, @dots{}) @deftypefnx {Function File} {[@var{q}, @var{err}] =} quadgk (@dots{}) ! Numerically evaluate integral using adaptive Gauss-Konrod quadrature. The formulation is based on a proposal by L.F. Shampine, @cite{"Vectorized adaptive quadrature in @sc{matlab}", Journal of Computational and Applied Mathematics, pp131-140, Vol 211, Issue 2, Feb 2008} where all function evaluations at an iteration are ! calculated with a single call to @var{f}. Therefore the function ! @var{f} must be of the form @code{@var{f} (@var{x})} and accept ! vector values of @var{x} and return a vector of the same length ! representing the function evaluations at the given values of @var{x}. ! The function @var{f} can be defined in terms of a function handle, ! inline function or string. ! ! The bounds of the quadrature @code{[@var{a}, @var{b}]} can be finite ! or infinite and contain weak end singularities. Variable ! transformation will be used to treat infinite intervals and weaken ! the singularities. For example: @example quadgk(@@(x) 1 ./ (sqrt (x) .* (x + 1)), 0, Inf) --- 2470,2498 ---- quadgk @c quadgk scripts/general/quadgk.m -*- texinfo -*- ! @deftypefn {Function File} {@var{q} =} quadgk (@var{f}, @var{a}, @var{b}) ! @deftypefnx {Function File} {@var{q} =} quadgk (@var{f}, @var{a}, @var{b}, @var{abstol}) ! @deftypefnx {Function File} {@var{q} =} quadgk (@var{f}, @var{a}, @var{b}, @var{abstol}, @var{trace}) ! @deftypefnx {Function File} {@var{q} =} quadgk (@var{f}, @var{a}, @var{b}, @var{prop}, @var{val}, @dots{}) @deftypefnx {Function File} {[@var{q}, @var{err}] =} quadgk (@dots{}) ! ! Numerically evaluate the integral of @var{f} from @var{a} to @var{b} ! using adaptive Gauss-Konrod quadrature. ! @var{f} is a function handle, inline function, or string ! containing the name of the function to evaluate. The formulation is based on a proposal by L.F. Shampine, @cite{"Vectorized adaptive quadrature in @sc{matlab}", Journal of Computational and Applied Mathematics, pp131-140, Vol 211, Issue 2, Feb 2008} where all function evaluations at an iteration are ! calculated with a single call to @var{f}. Therefore, the function ! @var{f} must be vectorized and must accept a vector of input values @var{x} ! and return an output vector representing the function evaluations at the ! given values of @var{x}. ! ! @var{a} and @var{b} are the lower and upper limits of integration. Either ! or both limits may be infinite or contain weak end singularities. ! Variable transformation will be used to treat any infinite intervals and ! weaken the singularities. For example: @example quadgk(@@(x) 1 ./ (sqrt (x) .* (x + 1)), 0, Inf) *************** *** 2449,2501 **** element-by-element operator @code{./} and all user functions to @code{quadgk} should do the same. ! The absolute tolerance can be passed as a fourth argument in a manner ! compatible with @code{quadv}. Equally the user can request that ! information on the convergence can be printed is the fifth argument ! is logically true. ! Alternatively, certain properties of @code{quadgk} can be passed as ! pairs @code{@var{prop}, @var{val}}. Valid properties are @table @code @item AbsTol ! Defines the absolute error tolerance for the quadrature. The default absolute tolerance is 1e-10. @item RelTol ! Defines the relative error tolerance for the quadrature. The default relative tolerance is 1e-5. @item MaxIntervalCount @code{quadgk} initially subdivides the interval on which to perform ! the quadrature into 10 intervals. Sub-intervals that have an ! unacceptable error are sub-divided and re-evaluated. If the number of ! sub-intervals exceeds at any point 650 sub-intervals then a poor convergence is signaled and the current estimate of the integral is returned. The property 'MaxIntervalCount' can be used to alter the ! number of sub-intervals that can exist before exiting. @item WayPoints ! If there exists discontinuities in the first derivative of the ! function to integrate, then these can be flagged with the ! @code{"WayPoints"} property. This forces the ends of a sub-interval ! to fall on the breakpoints of the function and can result in significantly improved estimation of the error in the integral, faster ! computation or both. For example, @example ! quadgk (@@(x) abs (1 - x .^ 2), 0, 2, 'Waypoints', 1) @end example @noindent signals the breakpoint in the integrand at @code{@var{x} = 1}. @item Trace ! If logically true, then @code{quadgk} prints information on the convergence of the quadrature at each iteration. @end table ! If any of @var{a}, @var{b} or @var{waypoints} is complex, then the quadrature is treated as a contour integral along a piecewise continuous path defined by the above. In this case the integral is assumed to have no edge singularities. For example, --- 2503,2559 ---- element-by-element operator @code{./} and all user functions to @code{quadgk} should do the same. ! The optional argument @var{tol} defines the absolute tolerance used to stop ! the integration procedure. The default value is @math{1e^{-10}}. ! The algorithm used by @code{quadgk} involves subdividing the ! integration interval and evaluating each subinterval. ! If @var{trace} is true then after computing each of these partial ! integrals display: (1) the number of subintervals at this step, ! (2) the current estimate of the error @var{err}, (3) the current estimate ! for the integral @var{q}. ! ! Alternatively, properties of @code{quadgk} can be passed to the function as ! pairs @code{"@var{prop}", @var{val}}. Valid properties are @table @code @item AbsTol ! Define the absolute error tolerance for the quadrature. The default absolute tolerance is 1e-10. @item RelTol ! Define the relative error tolerance for the quadrature. The default relative tolerance is 1e-5. @item MaxIntervalCount @code{quadgk} initially subdivides the interval on which to perform ! the quadrature into 10 intervals. Subintervals that have an ! unacceptable error are subdivided and re-evaluated. If the number of ! subintervals exceeds 650 subintervals at any point then a poor convergence is signaled and the current estimate of the integral is returned. The property 'MaxIntervalCount' can be used to alter the ! number of subintervals that can exist before exiting. @item WayPoints ! Discontinuities in the first derivative of the function to integrate can be ! flagged with the @code{"WayPoints"} property. This forces the ends of ! a subinterval to fall on the breakpoints of the function and can result in significantly improved estimation of the error in the integral, faster ! computation, or both. For example, @example ! quadgk (@@(x) abs (1 - x.^2), 0, 2, 'Waypoints', 1) @end example @noindent signals the breakpoint in the integrand at @code{@var{x} = 1}. @item Trace ! If logically true @code{quadgk} prints information on the convergence of the quadrature at each iteration. @end table ! If any of @var{a}, @var{b}, or @var{waypoints} is complex then the quadrature is treated as a contour integral along a piecewise continuous path defined by the above. In this case the integral is assumed to have no edge singularities. For example, *************** *** 2511,2521 **** integrates @code{log (z)} along the square defined by @code{[1+1i, 1-1i, -1-1i, -1+1i]} ! If two output arguments are requested, then @var{err} returns the ! approximate bounds on the error in the integral @code{abs (@var{q} - ! @var{i})}, where @var{i} is the exact value of the integral. ! @seealso{quad,quadv,quadl,quadcc,trapz,dblquad,triplequad} @end deftypefn quadl @c quadl scripts/general/quadl.m --- 2569,2580 ---- integrates @code{log (z)} along the square defined by @code{[1+1i, 1-1i, -1-1i, -1+1i]} ! The result of the integration is returned in @var{q}. ! @var{err} is an approximate bound on the error in the integral ! @code{abs (@var{q} - @var{I})}, where @var{I} is the exact value of the ! integral. ! @seealso{quad, quadv, quadl, quadcc, trapz, dblquad, triplequad} @end deftypefn quadl @c quadl scripts/general/quadl.m *************** *** 2525,2550 **** @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}) @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}, @var{p1}, @var{p2}, @dots{}) ! Numerically evaluate integral using adaptive Lobatto rule. ! @code{quadl (@var{f}, @var{a}, @var{b})} approximates the integral of ! @code{@var{f}(@var{x})} to machine precision. @var{f} is either a ! function handle, inline function or string containing the name of ! the function to evaluate. The function @var{f} must return a vector ! of output values if given a vector of input values. ! ! If defined, @var{tol} defines the relative tolerance to which to ! which to integrate @code{@var{f}(@var{x})}. While if @var{trace} is ! defined, displays the left end point of the current interval, the ! interval length, and the partial integral. ! ! Additional arguments @var{p1}, etc., are passed directly to @var{f}. ! To use default values for @var{tol} and @var{trace}, one may pass ! empty matrices. Reference: W. Gander and W. Gautschi, @cite{Adaptive Quadrature - Revisited}, BIT Vol. 40, No. 1, March 2000, pp. 84--101. @url{http://www.inf.ethz.ch/personal/gander/} ! @seealso{quad,quadv,quadgk,quadcc,trapz,dblquad,triplequad} @end deftypefn quadv @c quadv scripts/general/quadv.m --- 2584,2616 ---- @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}) @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}, @var{p1}, @var{p2}, @dots{}) ! Numerically evaluate the integral of @var{f} from @var{a} to @var{b} ! using an adaptive Lobatto rule. ! @var{f} is a function handle, inline function, or string ! containing the name of the function to evaluate. ! The function @var{f} must be vectorized and return a vector of output values ! if given a vector of input values. ! ! @var{a} and @var{b} are the lower and upper limits of integration. Both ! limits must be finite. ! ! The optional argument @var{tol} defines the relative tolerance with which ! to perform the integration. The default value is @code{eps}. ! ! The algorithm used by @code{quadl} involves recursively subdividing the ! integration interval. ! If @var{trace} is defined then for each subinterval display: (1) the left ! end of the subinterval, (2) the length of the subinterval, (3) the ! approximation of the integral over the subinterval. ! ! Additional arguments @var{p1}, etc., are passed directly to the function ! @var{f}. To use default values for @var{tol} and @var{trace}, one may pass ! empty matrices ([]). Reference: W. Gander and W. Gautschi, @cite{Adaptive Quadrature - Revisited}, BIT Vol. 40, No. 1, March 2000, pp. 84--101. @url{http://www.inf.ethz.ch/personal/gander/} ! @seealso{quad, quadv, quadgk, quadcc, trapz, dblquad, triplequad} @end deftypefn quadv @c quadv scripts/general/quadv.m *************** *** 2553,2580 **** @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}) @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}) @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}, @var{p1}, @var{p2}, @dots{}) ! @deftypefnx {Function File} {[@var{q}, @var{fcnt}] =} quadv (@dots{}) Numerically evaluate the integral of @var{f} from @var{a} to @var{b} ! using adaptive Simpson's rule. ! @var{f} is either a function handle, inline function or string containing the name of the function to evaluate. ! The function defined by @var{f} may be a scalar, vector or array-valued. ! ! If a value for @var{tol} is given, it defines the tolerance used to stop ! the adaptation procedure, otherwise the default value of 1e-6 is used. ! ! The algorithm used by @code{quadv}, involves recursively subdividing the ! integration interval and applying Simpson's rule on each sub-interval. ! If @var{trace} is @var{true}, after computing each of these partial ! integrals, display the total number of function evaluations, the left end ! of the sub-interval, the length of the sub-interval and the approximation ! of the integral over the sub-interval. ! ! Additional arguments @var{p1}, etc., are passed directly to @var{f}. ! To use default values for @var{tol} and @var{trace}, one may pass ! empty matrices. ! @seealso{quad, quadl, quadgk, quadcc, trapz, dblquad, triplequad} @end deftypefn randi --- 2619,2657 ---- @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}) @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}) @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}, @var{p1}, @var{p2}, @dots{}) ! @deftypefnx {Function File} {[@var{q}, @var{nfun}] =} quadv (@dots{}) Numerically evaluate the integral of @var{f} from @var{a} to @var{b} ! using an adaptive Simpson's rule. ! @var{f} is a function handle, inline function, or string containing the name of the function to evaluate. ! @code{quadv} is a vectorized version of @code{quad} and the function ! defined by @var{f} must accept a scalar or vector as input and return a ! scalar, vector, or array as output. ! ! @var{a} and @var{b} are the lower and upper limits of integration. Both ! limits must be finite. ! ! The optional argument @var{tol} defines the tolerance used to stop ! the adaptation procedure. The default value is @math{1e^{-6}}. ! ! The algorithm used by @code{quadv} involves recursively subdividing the ! integration interval and applying Simpson's rule on each subinterval. ! If @var{trace} is true then after computing each of these partial ! integrals display: (1) the total number of function evaluations, ! (2) the left end of the subinterval, (3) the length of the subinterval, ! (4) the approximation of the integral over the subinterval. ! ! Additional arguments @var{p1}, etc., are passed directly to the function ! @var{f}. To use default values for @var{tol} and @var{trace}, one may pass ! empty matrices ([]). ! ! The result of the integration is returned in @var{q}. @var{nfun} indicates ! the number of function evaluations that were made. ! ! Note: @code{quadv} is written in Octave's scripting language and can be ! used recursively in @code{dblquad} and @code{triplequad}, unlike the ! similar @code{quad} function. @seealso{quad, quadl, quadgk, quadcc, trapz, dblquad, triplequad} @end deftypefn randi *************** *** 2583,2589 **** @deftypefn {Function File} {} randi (@var{imax}) @deftypefnx {Function File} {} randi (@var{imax}, @var{n}) @deftypefnx {Function File} {} randi (@var{imax}, @var{m}, @var{n}, @dots{}) ! @deftypefnx {Function File} {} randi ([@var{imin}, @var{imax}], @dots{}) @deftypefnx {Function File} {} randi (@dots{}, "@var{class}") Return random integers in the range 1:@var{imax}. --- 2660,2666 ---- @deftypefn {Function File} {} randi (@var{imax}) @deftypefnx {Function File} {} randi (@var{imax}, @var{n}) @deftypefnx {Function File} {} randi (@var{imax}, @var{m}, @var{n}, @dots{}) ! @deftypefnx {Function File} {} randi ([@var{imin} @var{imax}], @dots{}) @deftypefnx {Function File} {} randi (@dots{}, "@var{class}") Return random integers in the range 1:@var{imax}. *************** *** 2610,2616 **** uses class "double" to represent numbers. This limits the maximum integer (@var{imax}) and range (@var{imax} - @var{imin}) to the value returned by the @code{bitmax} function. For IEEE floating point numbers ! this value is @w{@code{2^53 - 1}}. @seealso{rand} @end deftypefn --- 2687,2693 ---- uses class "double" to represent numbers. This limits the maximum integer (@var{imax}) and range (@var{imax} - @var{imin}) to the value returned by the @code{bitmax} function. For IEEE floating point numbers ! this value is @w{@math{2^{53} - 1}}. @seealso{rand} @end deftypefn *************** *** 2638,2644 **** repmat @c repmat scripts/general/repmat.m -*- texinfo -*- ! @deftypefn {Function File} {} repmat (@var{A}, @var{m}, @var{n}) @deftypefnx {Function File} {} repmat (@var{A}, [@var{m} @var{n}]) @deftypefnx {Function File} {} repmat (@var{A}, [@var{m} @var{n} @var{p} @dots{}]) Form a block matrix of size @var{m} by @var{n}, with a copy of matrix --- 2715,2723 ---- repmat @c repmat scripts/general/repmat.m -*- texinfo -*- ! @deftypefn {Function File} {} repmat (@var{A}, @var{m}) ! @deftypefnx {Function File} {} repmat (@var{A}, @var{m}, @var{n}) ! @deftypefnx {Function File} {} repmat (@var{A}, @var{m}, @var{n}, @var{p}, @dots{}) @deftypefnx {Function File} {} repmat (@var{A}, [@var{m} @var{n}]) @deftypefnx {Function File} {} repmat (@var{A}, [@var{m} @var{n} @var{p} @dots{}]) Form a block matrix of size @var{m} by @var{n}, with a copy of matrix *************** *** 2649,2655 **** rot90 @c rot90 scripts/general/rot90.m -*- texinfo -*- ! @deftypefn {Function File} {} rot90 (@var{A}, @var{k}) Return a copy of @var{A} with the elements rotated counterclockwise in 90-degree increments. The second argument is optional, and specifies how many 90-degree rotations are to be applied (the default value is 1). --- 2728,2735 ---- rot90 @c rot90 scripts/general/rot90.m -*- texinfo -*- ! @deftypefn {Function File} {} rot90 (@var{A}) ! @deftypefnx {Function File} {} rot90 (@var{A}, @var{k}) Return a copy of @var{A} with the elements rotated counterclockwise in 90-degree increments. The second argument is optional, and specifies how many 90-degree rotations are to be applied (the default value is 1). *************** *** 2676,2697 **** @end group @end example ! Due to the difficulty of defining an axis about which to rotate the ! matrix @code{rot90} only work with 2-D arrays. To rotate N-d arrays use @code{rotdim} instead. @seealso{rotdim, flipud, fliplr, flipdim} @end deftypefn rotdim @c rotdim scripts/general/rotdim.m -*- texinfo -*- ! @deftypefn {Function File} {} rotdim (@var{x}, @var{n}, @var{plane}) Return a copy of @var{x} with the elements rotated counterclockwise in ! 90-degree increments. The second argument is optional, and specifies ! how many 90-degree rotations are to be applied (the default value is 1). The third argument is also optional and defines the plane of the ! rotation. As such @var{plane} is a two element vector containing two ! different valid dimensions of the matrix. If @var{plane} is not given ! Then the first two non-singleton dimensions are used. Negative values of @var{n} rotate the matrix in a clockwise direction. For example, --- 2756,2779 ---- @end group @end example ! Note that @code{rot90} only works with 2-D arrays. To rotate N-D arrays use @code{rotdim} instead. @seealso{rotdim, flipud, fliplr, flipdim} @end deftypefn rotdim @c rotdim scripts/general/rotdim.m -*- texinfo -*- ! @deftypefn {Function File} {} rotdim (@var{x}) ! @deftypefnx {Function File} {} rotdim (@var{x}, @var{n}) ! @deftypefnx {Function File} {} rotdim (@var{x}, @var{n}, @var{plane}) Return a copy of @var{x} with the elements rotated counterclockwise in ! 90-degree increments. ! The second argument @var{n} is optional, and specifies how many 90-degree ! rotations are to be applied (the default value is 1). The third argument is also optional and defines the plane of the ! rotation. If present, @var{plane} is a two element vector containing two ! different valid dimensions of the matrix. When @var{plane} is not given ! the first two non-singleton dimensions are used. Negative values of @var{n} rotate the matrix in a clockwise direction. For example, *************** *** 2717,2736 **** @end example @seealso{rot90, flipud, fliplr, flipdim} @end deftypefn - runlength - @c runlength scripts/general/runlength.m - -*- texinfo -*- - @deftypefn {Function File} {} runlength (@var{x}) - Find the lengths of all sequences of common values. Return the - vector of lengths and the value that was repeated. - - @example - @group - runlength ([2, 2, 0, 4, 4, 4, 0, 1, 1, 1, 1]) - @result{} [2, 1, 3, 1, 4] - @end group - @end example - @end deftypefn saveobj @c saveobj scripts/general/saveobj.m -*- texinfo -*- --- 2799,2804 ---- *************** *** 2772,2778 **** -*- texinfo -*- @deftypefn {Function File} {@var{y} =} shiftdim (@var{x}, @var{n}) @deftypefnx {Function File} {[@var{y}, @var{ns}] =} shiftdim (@var{x}) ! Shifts the dimension of @var{x} by @var{n}, where @var{n} must be an integer scalar. When @var{n} is positive, the dimensions of @var{x} are shifted to the left, with the leading dimensions circulated to the end. If @var{n} is negative, then the dimensions --- 2840,2846 ---- -*- texinfo -*- @deftypefn {Function File} {@var{y} =} shiftdim (@var{x}, @var{n}) @deftypefnx {Function File} {[@var{y}, @var{ns}] =} shiftdim (@var{x}) ! Shift the dimensions of @var{x} by @var{n}, where @var{n} must be an integer scalar. When @var{n} is positive, the dimensions of @var{x} are shifted to the left, with the leading dimensions circulated to the end. If @var{n} is negative, then the dimensions *************** *** 2802,2808 **** sortrows @c sortrows scripts/general/sortrows.m -*- texinfo -*- ! @deftypefn {Function File} {} sortrows (@var{A}, @var{c}) Sort the rows of the matrix @var{A} according to the order of the columns specified in @var{c}. If @var{c} is omitted, a lexicographical sort is used. By default ascending order is used --- 2870,2877 ---- sortrows @c sortrows scripts/general/sortrows.m -*- texinfo -*- ! @deftypefn {Function File} {[@var{s}, @var{i}] =} sortrows (@var{A}) ! @deftypefnx {Function File} {[@var{s}, @var{i}] =} sortrows (@var{A}, @var{c}) Sort the rows of the matrix @var{A} according to the order of the columns specified in @var{c}. If @var{c} is omitted, a lexicographical sort is used. By default ascending order is used *************** *** 2829,2843 **** (@var{x}, @var{y}, @var{z}). @seealso{cart2sph, pol2cart, cart2pol} @end deftypefn - strerror - @c strerror scripts/general/strerror.m - -*- texinfo -*- - @deftypefn {Function File} {} strerror (@var{name}, @var{num}) - Return the text of an error message for function @var{name} - corresponding to the error number @var{num}. This function is intended - to be used to print useful error messages for those functions that - return numeric error codes. - @end deftypefn structfun @c structfun scripts/general/structfun.m -*- texinfo -*- --- 2898,2903 ---- *************** *** 2942,2974 **** triplequad @c triplequad scripts/general/triplequad.m -*- texinfo -*- ! @deftypefn {Function File} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}, @var{tol}, @var{quadf}, @dots{}) ! Numerically evaluate a triple integral. The function over which to ! integrate is defined by @code{@var{f}}, and the interval for the ! integration is defined by @code{[@var{xa}, @var{xb}, @var{ya}, ! @var{yb}, @var{za}, @var{zb}]}. The function @var{f} must accept a ! vector @var{x} and a scalar @var{y}, and return a vector of the same ! length as @var{x}. ! ! If defined, @var{tol} defines the absolute tolerance to which to ! which to integrate each sub-integral. Additional arguments, are passed directly to @var{f}. To use the default ! value for @var{tol} one may pass an empty matrix. ! @seealso{dblquad,quad,quadv,quadl,quadgk,quadcc,trapz} @end deftypefn trapz @c trapz scripts/general/trapz.m -*- texinfo -*- ! @deftypefn {Function File} {@var{z} =} trapz (@var{y}) ! @deftypefnx {Function File} {@var{z} =} trapz (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{z} =} trapz (@dots{}, @var{dim}) ! ! Numerical integration using trapezoidal method. @code{trapz ! (@var{y})} computes the integral of the @var{y} along the first ! non-singleton dimension. If the argument @var{x} is omitted a ! equally spaced vector is assumed. @code{trapz (@var{x}, @var{y})} ! evaluates the integral with respect to @var{x}. @seealso{cumtrapz} @end deftypefn --- 3002,3068 ---- triplequad @c triplequad scripts/general/triplequad.m -*- texinfo -*- ! @deftypefn {Function File} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}) ! @deftypefnx {Function File} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}, @var{tol}) ! @deftypefnx {Function File} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}, @var{tol}, @var{quadf}) ! @deftypefnx {Function File} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}, @var{tol}, @var{quadf}, @dots{}) ! Numerically evaluate the triple integral of @var{f}. ! @var{f} is a function handle, inline function, or string ! containing the name of the function to evaluate. The function @var{f} must ! have the form @math{w = f(x,y,z)} where either @var{x} or @var{y} is a ! vector and the remaining inputs are scalars. It should return a vector of ! the same length and orientation as @var{x} or @var{y}. ! ! @var{xa}, @var{ya}, @var{za} and @var{xb}, @var{yb}, @var{zb} are the lower ! and upper limits of integration for x, y, and z respectively. The ! underlying integrator determines whether infinite bounds are accepted. ! ! The optional argument @var{tol} defines the absolute tolerance used to ! integrate each sub-integral. The default value is @math{1e^{-6}}. ! ! The optional argument @var{quadf} specifies which underlying integrator ! function to use. Any choice but @code{quad} is available and the default ! is @code{quadgk}. Additional arguments, are passed directly to @var{f}. To use the default ! value for @var{tol} or @var{quadf} one may pass an empty matrix ([]). ! @seealso{dblquad, quad, quadv, quadl, quadgk, quadcc, trapz} @end deftypefn trapz @c trapz scripts/general/trapz.m -*- texinfo -*- ! @deftypefn {Function File} {@var{q} =} trapz (@var{y}) ! @deftypefnx {Function File} {@var{q} =} trapz (@var{x}, @var{y}) ! @deftypefnx {Function File} {@var{q} =} trapz (@dots{}, @var{dim}) ! ! Numerically evaluate the integral of points @var{y} using the trapezoidal ! method. ! @w{@code{trapz (@var{y})}} computes the integral of @var{y} along the first ! non-singleton dimension. When the argument @var{x} is omitted an ! equally spaced @var{x} vector with unit spacing (1) is assumed. ! @code{trapz (@var{x}, @var{y})} evaluates the integral with respect ! to the spacing in @var{x} and the values in @var{y}. This is useful if ! the points in @var{y} have been sampled unevenly. ! If the optional @var{dim} argument is given, operate along this dimension. ! ! If @var{x} is not specified then unit spacing will be used. To scale ! the integral to the correct value you must multiply by the actual spacing ! value (deltaX). As an example, the integral of @math{x^3} over the range ! [0, 1] is @math{x^4/4} or 0.25. The following code uses @code{trapz} to ! calculate the integral in three different ways. ! ! @example ! @group ! x = 0:0.1:1; ! y = x.^3; ! q = trapz (y) ! @result{} q = 2.525 # No scaling ! q * 0.1 ! @result{} q = 0.2525 # Approximation to integral by scaling ! trapz (x, y) ! @result{} q = 0.2525 # Same result by specifying @var{x} ! @end group ! @end example @seealso{cumtrapz} @end deftypefn *************** *** 2983,2989 **** -*- texinfo -*- @deftypefn {Function File} {@var{H} =} convhull (@var{x}, @var{y}) @deftypefnx {Function File} {@var{H} =} convhull (@var{x}, @var{y}, @var{opt}) ! Returns the index vector to the points of the enclosing convex hull. The data points are defined by the x and y vectors. A third optional argument, which must be a string, contains extra options --- 3077,3083 ---- -*- texinfo -*- @deftypefn {Function File} {@var{H} =} convhull (@var{x}, @var{y}) @deftypefnx {Function File} {@var{H} =} convhull (@var{x}, @var{y}, @var{opt}) ! Return the index vector to the points of the enclosing convex hull. The data points are defined by the x and y vectors. A third optional argument, which must be a string, contains extra options *************** *** 3004,3010 **** A fourth optional argument, which must be a string or cell array of strings, contains extra options passed to the underlying qhull command. See the documentation for the Qhull library for details. ! @seealso{delaunay,delaunayn} @end deftypefn delaunayn @c delaunayn scripts/geometry/delaunayn.m --- 3098,3104 ---- A fourth optional argument, which must be a string or cell array of strings, contains extra options passed to the underlying qhull command. See the documentation for the Qhull library for details. ! @seealso{delaunay, delaunayn} @end deftypefn delaunayn @c delaunayn scripts/geometry/delaunayn.m *************** *** 3071,3077 **** -*- texinfo -*- @deftypefn {Function File} {@var{idx} =} dsearch (@var{x}, @var{y}, @var{tri}, @var{xi}, @var{yi}) @deftypefnx {Function File} {@var{idx} =} dsearch (@var{x}, @var{y}, @var{tri}, @var{xi}, @var{yi}, @var{s}) ! Returns the index @var{idx} or the closest point in @code{@var{x}, @var{y}} to the elements @code{[@var{xi}(:), @var{yi}(:)]}. The variable @var{s} is accepted for compatibility but is ignored. @seealso{dsearchn, tsearch} --- 3165,3171 ---- -*- texinfo -*- @deftypefn {Function File} {@var{idx} =} dsearch (@var{x}, @var{y}, @var{tri}, @var{xi}, @var{yi}) @deftypefnx {Function File} {@var{idx} =} dsearch (@var{x}, @var{y}, @var{tri}, @var{xi}, @var{yi}, @var{s}) ! Return the index @var{idx} or the closest point in @code{@var{x}, @var{y}} to the elements @code{[@var{xi}(:), @var{yi}(:)]}. The variable @var{s} is accepted for compatibility but is ignored. @seealso{dsearchn, tsearch} *************** *** 3083,3089 **** @deftypefnx {Function File} {@var{idx} =} dsearchn (@var{x}, @var{tri}, @var{xi}, @var{outval}) @deftypefnx {Function File} {@var{idx} =} dsearchn (@var{x}, @var{xi}) @deftypefnx {Function File} {[@var{idx}, @var{d}] =} dsearchn (@dots{}) ! Returns the index @var{idx} or the closest point in @var{x} to the elements @var{xi}. If @var{outval} is supplied, then the values of @var{xi} that are not contained within one of the simplices @var{tri} are set to @var{outval}. Generally, @var{tri} is returned from @code{delaunayn --- 3177,3183 ---- @deftypefnx {Function File} {@var{idx} =} dsearchn (@var{x}, @var{tri}, @var{xi}, @var{outval}) @deftypefnx {Function File} {@var{idx} =} dsearchn (@var{x}, @var{xi}) @deftypefnx {Function File} {[@var{idx}, @var{d}] =} dsearchn (@dots{}) ! Return the index @var{idx} or the closest point in @var{x} to the elements @var{xi}. If @var{outval} is supplied, then the values of @var{xi} that are not contained within one of the simplices @var{tri} are set to @var{outval}. Generally, @var{tri} is returned from @code{delaunayn *************** *** 3202,3208 **** @c tsearchn scripts/geometry/tsearchn.m -*- texinfo -*- @deftypefn {Function File} {[@var{idx}, @var{p}] =} tsearchn (@var{x}, @var{t}, @var{xi}) ! Searches for the enclosing Delaunay convex hull. For @code{@var{t} = delaunayn (@var{x})}, finds the index in @var{t} containing the points @var{xi}. For points outside the convex hull, @var{idx} is NaN. If requested @code{tsearchn} also returns the Barycentric coordinates @var{p} --- 3296,3302 ---- @c tsearchn scripts/geometry/tsearchn.m -*- texinfo -*- @deftypefn {Function File} {[@var{idx}, @var{p}] =} tsearchn (@var{x}, @var{t}, @var{xi}) ! Search for the enclosing Delaunay convex hull. For @code{@var{t} = delaunayn (@var{x})}, finds the index in @var{t} containing the points @var{xi}. For points outside the convex hull, @var{idx} is NaN. If requested @code{tsearchn} also returns the Barycentric coordinates @var{p} *************** *** 3216,3222 **** @deftypefnx {Function File} {} voronoi (@var{x}, @var{y}, "plotstyle") @deftypefnx {Function File} {} voronoi (@var{x}, @var{y}, "plotstyle", @var{options}) @deftypefnx {Function File} {[@var{vx}, @var{vy}] =} voronoi (@dots{}) ! plots Voronoi diagram of points @code{(@var{x}, @var{y})}. The Voronoi facets with points at infinity are not drawn. [@var{vx}, @var{vy}] = voronoi(@dots{}) returns the vertices instead of plotting the --- 3310,3316 ---- @deftypefnx {Function File} {} voronoi (@var{x}, @var{y}, "plotstyle") @deftypefnx {Function File} {} voronoi (@var{x}, @var{y}, "plotstyle", @var{options}) @deftypefnx {Function File} {[@var{vx}, @var{vy}] =} voronoi (@dots{}) ! Plot Voronoi diagram of points @code{(@var{x}, @var{y})}. The Voronoi facets with points at infinity are not drawn. [@var{vx}, @var{vy}] = voronoi(@dots{}) returns the vertices instead of plotting the *************** *** 3302,3316 **** get_first_help_sentence @c get_first_help_sentence scripts/help/get_first_help_sentence.m -*- texinfo -*- ! @deftypefn {Function File} {[@var{retval}, @var{status}] =} get_first_help_sentence (@var{name}, @var{max_len}) ! Return the first sentence of a function help text. ! The function reads the first sentence of the help text of the function ! @var{name}. The first sentence is defined as the text after the function declaration until either the first period (".") or the first appearance of ! two consecutive end-lines ("\n\n"). The text is truncated to a maximum ! length ! of @var{max_len}, which defaults to 80. The optional output argument @var{status} returns the status reported by @code{makeinfo}. If only one output argument is requested, and @var{status} --- 3396,3409 ---- get_first_help_sentence @c get_first_help_sentence scripts/help/get_first_help_sentence.m -*- texinfo -*- ! @deftypefn {Function File} {[@var{text}, @var{status}] =} get_first_help_sentence (@var{name}) ! @deftypefnx {Function File} {[@var{text}, @var{status}] =} get_first_help_sentence (@var{name}, @var{max_len}) ! Return the first sentence of a function's help text. ! The first sentence is defined as the text after the function declaration until either the first period (".") or the first appearance of ! two consecutive newlines ("\n\n"). The text is truncated to a maximum ! length of @var{max_len}, which defaults to 80. The optional output argument @var{status} returns the status reported by @code{makeinfo}. If only one output argument is requested, and @var{status} *************** *** 3321,3327 **** @example @group get_first_help_sentence ("get_first_help_sentence") ! @print{} ans = Return the first sentence of a function help text. @end group @end example @end deftypefn --- 3414,3420 ---- @example @group get_first_help_sentence ("get_first_help_sentence") ! @print{} ans = Return the first sentence of a function's help text. @end group @end example @end deftypefn *************** *** 3439,3445 **** @deftypefn {Function File} {@var{map_out} =} brighten (@var{map}, @var{beta}) @deftypefnx {Function File} {@var{map_out} =} brighten (@var{h}, @var{beta}) @deftypefnx {Function File} {@var{map_out} =} brighten (@var{beta}) ! Darkens or brightens the given colormap. If the @var{map} argument is omitted, the function is applied to the current colormap. The first argument can also be a valid graphics handle @var{h}, in which case @code{brighten} is applied to the colormap associated with this handle. --- 3532,3538 ---- @deftypefn {Function File} {@var{map_out} =} brighten (@var{map}, @var{beta}) @deftypefnx {Function File} {@var{map_out} =} brighten (@var{h}, @var{beta}) @deftypefnx {Function File} {@var{map_out} =} brighten (@var{beta}) ! Darken or brighten the given colormap. If the @var{map} argument is omitted, the function is applied to the current colormap. The first argument can also be a valid graphics handle @var{h}, in which case @code{brighten} is applied to the colormap associated with this handle. *************** *** 4058,4065 **** @c fileread scripts/io/fileread.m -*- texinfo -*- @deftypefn {Function File} {@var{str} =} fileread (@var{filename}) ! Read the contents of a file and return it as a string. ! @seealso{fread, textread} @end deftypefn is_valid_file_id @c is_valid_file_id scripts/io/is_valid_file_id.m --- 4151,4158 ---- @c fileread scripts/io/fileread.m -*- texinfo -*- @deftypefn {Function File} {@var{str} =} fileread (@var{filename}) ! Read the contents of @var{filename} and return it as a string. ! @seealso{fread, textread, sscanf} @end deftypefn is_valid_file_id @c is_valid_file_id scripts/io/is_valid_file_id.m *************** *** 4156,4167 **** @c textscan scripts/io/textscan.m -*- texinfo -*- @deftypefn {Function File} {@var{C} =} textscan (@var{fid}, @var{format}) ! @deftypefnx {Function File} {@var{C} =} textscan (@var{fid}, @var{format}, @ ! @var{n}) ! @deftypefnx {Function File} {@var{C} =} textscan (@var{fid}, @var{format}, @ ! @var{param}, @var{value}, @dots{}) ! @deftypefnx {Function File} {@var{C} =} textscan (@var{fid}, @var{format}, @ ! @var{n}, @var{param}, @var{value}, @dots{}) @deftypefnx {Function File} {@var{C} =} textscan (@var{str}, @dots{}) @deftypefnx {Function File} {[@var{C}, @var{position}] =} textscan (@dots{}) Read data from a text file. --- 4249,4257 ---- @c textscan scripts/io/textscan.m -*- texinfo -*- @deftypefn {Function File} {@var{C} =} textscan (@var{fid}, @var{format}) ! @deftypefnx {Function File} {@var{C} =} textscan (@var{fid}, @var{format}, @var{n}) ! @deftypefnx {Function File} {@var{C} =} textscan (@var{fid}, @var{format}, @var{param}, @var{value}, @dots{}) ! @deftypefnx {Function File} {@var{C} =} textscan (@var{fid}, @var{format}, @var{n}, @var{param}, @var{value}, @dots{}) @deftypefnx {Function File} {@var{C} =} textscan (@var{str}, @dots{}) @deftypefnx {Function File} {[@var{C}, @var{position}] =} textscan (@dots{}) Read data from a text file. *************** *** 4264,4272 **** -*- texinfo -*- @deftypefn {Function File} {} cond (@var{A}) @deftypefnx {Function File} {} cond (@var{A}, @var{p}) ! Compute the @var{p}-norm condition number of a matrix. @code{cond ! (@var{A})} is ! defined as @tex $ {\parallel A \parallel_p * \parallel A^{-1} \parallel_p .} $ @end tex --- 4354,4362 ---- -*- texinfo -*- @deftypefn {Function File} {} cond (@var{A}) @deftypefnx {Function File} {} cond (@var{A}, @var{p}) ! Compute the @var{p}-norm condition number of a matrix. ! ! @code{cond (@var{A})} is ## defined as @tex $ {\parallel A \parallel_p * \parallel A^{-1} \parallel_p .} $ @end tex *************** *** 4356,4362 **** along the first dimension with 3 elements. The optional argument @var{dim} forces the cross product to be calculated along the specified dimension. ! @seealso{dot} @end deftypefn duplication_matrix @c duplication_matrix scripts/linear-algebra/duplication_matrix.m --- 4446,4452 ---- along the first dimension with 3 elements. The optional argument @var{dim} forces the cross product to be calculated along the specified dimension. ! @seealso{dot, curl, divergence} @end deftypefn duplication_matrix @c duplication_matrix scripts/linear-algebra/duplication_matrix.m *************** *** 4455,4460 **** --- 4545,4551 ---- @code{Dq(A)} @end ifnottex is ill-conditioned. + @seealso{logm, sqrtm} @end deftypefn housh @c housh scripts/linear-algebra/housh.m *************** *** 4585,4591 **** The optional argument @var{opt_iters} is the maximum number of square roots to compute and defaults to 100. The optional output @var{iters} is the number of square roots actually computed. ! @end deftypefn normest @c normest scripts/linear-algebra/normest.m --- 4676,4682 ---- The optional argument @var{opt_iters} is the maximum number of square roots to compute and defaults to 100. The optional output @var{iters} is the number of square roots actually computed. ! @seealso{expm, sqrtm} @end deftypefn normest @c normest scripts/linear-algebra/normest.m *************** *** 4605,4611 **** null @c null scripts/linear-algebra/null.m -*- texinfo -*- ! @deftypefn {Function File} {} null (@var{A}, @var{tol}) Return an orthonormal basis of the null space of @var{A}. The dimension of the null space is taken as the number of singular --- 4696,4703 ---- null @c null scripts/linear-algebra/null.m -*- texinfo -*- ! @deftypefn {Function File} {} null (@var{A}) ! @deftypefnx {Function File} {} null (@var{A}, @var{tol}) Return an orthonormal basis of the null space of @var{A}. The dimension of the null space is taken as the number of singular *************** *** 4659,4665 **** orth @c orth scripts/linear-algebra/orth.m -*- texinfo -*- ! @deftypefn {Function File} {} orth (@var{A}, @var{tol}) Return an orthonormal basis of the range space of @var{A}. The dimension of the range space is taken as the number of singular --- 4751,4758 ---- orth @c orth scripts/linear-algebra/orth.m -*- texinfo -*- ! @deftypefn {Function File} {} orth (@var{A}) ! @deftypefnx {Function File} {} orth (@var{A}, @var{tol}) Return an orthonormal basis of the range space of @var{A}. The dimension of the range space is taken as the number of singular *************** *** 4715,4721 **** rank @c rank scripts/linear-algebra/rank.m -*- texinfo -*- ! @deftypefn {Function File} {} rank (@var{A}, @var{tol}) Compute the rank of @var{A}, using the singular value decomposition. The rank is taken to be the number of singular values of @var{A} that are greater than the specified tolerance @var{tol}. If the second --- 4808,4815 ---- rank @c rank scripts/linear-algebra/rank.m -*- texinfo -*- ! @deftypefn {Function File} {} rank (@var{A}) ! @deftypefnx {Function File} {} rank (@var{A}, @var{tol}) Compute the rank of @var{A}, using the singular value decomposition. The rank is taken to be the number of singular values of @var{A} that are greater than the specified tolerance @var{tol}. If the second *************** *** 4732,4740 **** rref @c rref scripts/linear-algebra/rref.m -*- texinfo -*- ! @deftypefn {Function File} {[@var{r}, @var{k}] =} rref (@var{A}, @var{tol}) ! ! Returns the reduced row echelon form of @var{A}. @var{tol} defaults to @code{eps * max (size (@var{A})) * norm (@var{A}, inf)}. Called with two return arguments, @var{k} returns the vector of --- 4826,4835 ---- rref @c rref scripts/linear-algebra/rref.m -*- texinfo -*- ! @deftypefn {Function File} {} rref (@var{A}) ! @deftypefnx {Function File} {} rref (@var{A}, @var{tol}) ! @deftypefnx {Function File} {[@var{r}, @var{k}] =} rref (@dots{}) ! Return the reduced row echelon form of @var{A}. @var{tol} defaults to @code{eps * max (size (@var{A})) * norm (@var{A}, inf)}. Called with two return arguments, @var{k} returns the vector of *************** *** 4761,4767 **** @deftypefn {Function File} {} vech (@var{x}) Return the vector obtained by eliminating all supradiagonal elements of the square matrix @var{x} and stacking the result one column above the ! other. @end deftypefn ans @c ans scripts/miscellaneous/ans.m --- 4856,4865 ---- @deftypefn {Function File} {} vech (@var{x}) Return the vector obtained by eliminating all supradiagonal elements of the square matrix @var{x} and stacking the result one column above the ! other. This has uses in matrix calculus where the underlying matrix ! is symmetric and it would be pointless to keep values above the main ! diagonal. ! @seealso{vec} @end deftypefn ans @c ans scripts/miscellaneous/ans.m *************** *** 4824,4833 **** bunzip2 @c bunzip2 scripts/miscellaneous/bunzip2.m -*- texinfo -*- ! @deftypefn {Function File} {} bunzip2 (@var{bzfile}, @var{dir}) Unpack the bzip2 archive @var{bzfile} to the directory @var{dir}. If @var{dir} is not specified, it defaults to the current directory. ! @seealso{unpack, bzip2, tar, untar, gzip, gunzip, zip, unzip} @end deftypefn bzip2 @c bzip2 scripts/miscellaneous/bzip2.m --- 4922,4932 ---- bunzip2 @c bunzip2 scripts/miscellaneous/bunzip2.m -*- texinfo -*- ! @deftypefn {Function File} {} bunzip2 (@var{bzfile}) ! @deftypefnx {Function File} {} bunzip2 (@var{bzfile}, @var{dir}) Unpack the bzip2 archive @var{bzfile} to the directory @var{dir}. If @var{dir} is not specified, it defaults to the current directory. ! @seealso{bzip2, unpack, gunzip, unzip, untar} @end deftypefn bzip2 @c bzip2 scripts/miscellaneous/bzip2.m *************** *** 4836,4844 **** @deftypefnx {Function File} {@var{entries} =} bzip2 (@var{files}, @var{outdir}) Compress the list of files specified in @var{files}. Each file is compressed separately and a new file with a '.bz2' extension ! is created. The original files are not touched. Existing compressed files ! are silently overwritten.If @var{outdir} is defined the compressed versions ! of the files are placed in this directory. @seealso{bunzip2, gzip, zip, tar} @end deftypefn cast --- 4935,4943 ---- @deftypefnx {Function File} {@var{entries} =} bzip2 (@var{files}, @var{outdir}) Compress the list of files specified in @var{files}. Each file is compressed separately and a new file with a '.bz2' extension ! is created. The original files are not modified. Existing compressed files ! are silently overwritten. If @var{outdir} is defined the compressed ! files are placed in this directory. @seealso{bunzip2, gzip, zip, tar} @end deftypefn cast *************** *** 4907,4913 **** Note that version "1.1-test2" will compare as greater than "1.1-test10". Also, since the numeric part is compared first, "a" compares less than "1a" because the second string starts with a ! numeric part even though @code{double("a")} is greater than @code{double("1").} @end deftypefn computer --- 5006,5012 ---- Note that version "1.1-test2" will compare as greater than "1.1-test10". Also, since the numeric part is compared first, "a" compares less than "1a" because the second string starts with a ! numeric part even though @code{double("a")} is greater than @code{double("1").} @end deftypefn computer *************** *** 5073,5082 **** dump_prefs @c dump_prefs scripts/miscellaneous/dump_prefs.m -*- texinfo -*- ! @deftypefn {Function File} {} dump_prefs (@var{file}) ! Have Octave dump all the current user preference variables to ! @var{file} in a format that can be parsed by Octave later. If ! @var{file} is omitted, the listing is printed to stdout. @end deftypefn edit @c edit scripts/miscellaneous/edit.m --- 5172,5182 ---- dump_prefs @c dump_prefs scripts/miscellaneous/dump_prefs.m -*- texinfo -*- ! @deftypefn {Function File} {} dump_prefs () ! @deftypefnx {Function File} {} dump_prefs (@var{fid}) ! Dump all of the current user preference variables in a format that can be ! parsed by Octave later. @var{fid} is a file descriptor as returned by ! @code{fopen}. If @var{file} is omitted, the listing is printed to stdout. @end deftypefn edit @c edit scripts/miscellaneous/edit.m *************** *** 5140,5146 **** In place of the function name. For example, @table @samp @item [EDITOR, " %s"] ! Use the editor which Octave uses for @code{bug_report}. @item "xedit %s &" pop up simple X11 editor in a separate window --- 5240,5246 ---- In place of the function name. For example, @table @samp @item [EDITOR, " %s"] ! Use the editor which Octave uses for @code{edit_history}. @item "xedit %s &" pop up simple X11 editor in a separate window *************** *** 5274,5281 **** @c getappdata scripts/miscellaneous/getappdata.m -*- texinfo -*- @deftypefn {Function File} {@var{value} =} getappdata (@var{h}, @var{name}) ! Returns the @var{value} for named application data for the object(s) with handle(s) @var{h}. @end deftypefn getfield @c getfield scripts/miscellaneous/getfield.m --- 5374,5384 ---- @c getappdata scripts/miscellaneous/getappdata.m -*- texinfo -*- @deftypefn {Function File} {@var{value} =} getappdata (@var{h}, @var{name}) ! Return the @var{value} for named application data for the object(s) with handle(s) @var{h}. + @deftypefnx {Function File} {@var{appdata} =} getappdata (@var{h}) + Return a structure, @var{appdata}, whose fields correspond to the appdata + properties. @end deftypefn getfield @c getfield scripts/miscellaneous/getfield.m *************** *** 5310,5318 **** @deftypefn {Function File} {} gunzip (@var{gzfile}, @var{dir}) Unpack the gzip archive @var{gzfile} to the directory @var{dir}. If @var{dir} is not specified, it defaults to the current directory. If ! the @var{gzfile} is a directory, all gzfile in the directory will be recursively gunzipped. ! @seealso{unpack, bunzip2, tar, untar, gzip, gunzip, zip, unzip} @end deftypefn gzip @c gzip scripts/miscellaneous/gzip.m --- 5413,5421 ---- @deftypefn {Function File} {} gunzip (@var{gzfile}, @var{dir}) Unpack the gzip archive @var{gzfile} to the directory @var{dir}. If @var{dir} is not specified, it defaults to the current directory. If ! @var{gzfile} is a directory, all gzfiles in the directory will be recursively gunzipped. ! @seealso{gzip, unpack, bunzip2, unzip, untar} @end deftypefn gzip @c gzip scripts/miscellaneous/gzip.m *************** *** 5321,5329 **** @deftypefnx {Function File} {@var{entries} =} gzip (@var{files}, @var{outdir}) Compress the list of files and/or directories specified in @var{files}. Each file is compressed separately and a new file with a '.gz' extension ! is created. The original files are not touched. Existing compressed files are silently overwritten. If @var{outdir} is defined the compressed ! versions of the files are placed in this directory. @seealso{gunzip, bzip2, zip, tar} @end deftypefn info --- 5424,5432 ---- @deftypefnx {Function File} {@var{entries} =} gzip (@var{files}, @var{outdir}) Compress the list of files and/or directories specified in @var{files}. Each file is compressed separately and a new file with a '.gz' extension ! is created. The original files are not modified. Existing compressed files are silently overwritten. If @var{outdir} is defined the compressed ! files are placed in this directory. @seealso{gunzip, bzip2, zip, tar} @end deftypefn info *************** *** 5448,5457 **** ls_command @c ls_command scripts/miscellaneous/ls_command.m -*- texinfo -*- ! @deftypefn {Function File} {[@var{old_cmd} =} ls_command (@var{cmd}) ! Set or return the shell command used by Octave's @code{ls} command. ! The value of @var{cmd} must be a character string. ! With no arguments, simply return the previous value. @seealso{ls} @end deftypefn menu --- 5551,5559 ---- ls_command @c ls_command scripts/miscellaneous/ls_command.m -*- texinfo -*- ! @deftypefn {Function File} {@var{val} =} ls_command () ! @deftypefnx {Function File} {@var{old_val} =} ls_command (@var{new_val}) ! Query or set the shell command used by Octave's @code{ls} command. @seealso{ls} @end deftypefn menu *************** *** 5517,5528 **** Add the run-time path to the link command. @item -Wl,@dots{} ! Pass flags though the linker like "-Wl,-rpath=@dots{}". The quotes are needed since commas are interpreted as command separators. ! @item -W@dots{} ! Pass flags though the compiler like "-Wa,OPTION". @item -c Compile but do not link. --- 5619,5631 ---- Add the run-time path to the link command. @item -Wl,@dots{} ! Pass flags through the linker e.g. "-Wl,-rpath=@dots{}". The quotes are needed since commas are interpreted as command separators. ! @item -W,@dots{} ! Pass flags through the compiler, e.g. "-W,-O2". The quotes are needed ! since commas are interpreted as command separators. @item -c Compile but do not link. *************** *** 5618,5624 **** @c namelengthmax scripts/miscellaneous/namelengthmax.m -*- texinfo -*- @deftypefn {Function File} {} namelengthmax () ! Returns the @sc{matlab} compatible maximum variable name length. Octave is capable of storing strings up to @tex $2^{31} - 1$ --- 5721,5727 ---- @c namelengthmax scripts/miscellaneous/namelengthmax.m -*- texinfo -*- @deftypefn {Function File} {} namelengthmax () ! Return the @sc{matlab} compatible maximum variable name length. Octave is capable of storing strings up to @tex $2^{31} - 1$ *************** *** 5713,5720 **** @c pack scripts/miscellaneous/pack.m -*- texinfo -*- @deftypefn {Function File} {} pack () ! This function is provided for compatibility with @sc{matlab}, but it ! doesn't actually do anything. @end deftypefn paren @c paren scripts/miscellaneous/paren.m --- 5816,5823 ---- @c pack scripts/miscellaneous/pack.m -*- texinfo -*- @deftypefn {Function File} {} pack () ! Consolidate workspace memory in @sc{matlab}. This function is provided for ! compatibility, but does nothing in Octave. @end deftypefn paren @c paren scripts/miscellaneous/paren.m *************** *** 5777,5783 **** @c rmappdata scripts/miscellaneous/rmappdata.m -*- texinfo -*- @deftypefn {Function File} {} rmappdata (@var{h}, @var{name}) ! Deletes the named application data for the object(s) with handle(s) @var{h}. @end deftypefn run --- 5880,5886 ---- @c rmappdata scripts/miscellaneous/rmappdata.m -*- texinfo -*- @deftypefn {Function File} {} rmappdata (@var{h}, @var{name}) ! Delete the named application data for the object(s) with handle(s) @var{h}. @end deftypefn run *************** *** 5803,5809 **** @c setappdata scripts/miscellaneous/setappdata.m -*- texinfo -*- @deftypefn {Function File} {} setappdata (@var{h}, @var{name}, @var{value}) ! Sets the named application data to @var{value} for the object(s) with handle(s) @var{h}. If the application data with the specified name does not exist, it is created. @end deftypefn --- 5906,5912 ---- @c setappdata scripts/miscellaneous/setappdata.m -*- texinfo -*- @deftypefn {Function File} {} setappdata (@var{h}, @var{name}, @var{value}) ! Set the named application data to @var{value} for the object(s) with handle(s) @var{h}. If the application data with the specified name does not exist, it is created. @end deftypefn *************** *** 5865,5871 **** @c swapbytes scripts/miscellaneous/swapbytes.m -*- texinfo -*- @deftypefn {Function File} {} swapbytes (@var{x}) ! Swaps the byte order on values, converting from little endian to big endian and vice versa. For example: @example --- 5968,5974 ---- @c swapbytes scripts/miscellaneous/swapbytes.m -*- texinfo -*- @deftypefn {Function File} {} swapbytes (@var{x}) ! Swap the byte order on values, converting from little endian to big endian and vice versa. For example: @example *************** *** 5881,5887 **** @c symvar scripts/miscellaneous/symvar.m -*- texinfo -*- @deftypefn {Function File} {} symvar (@var{s}) ! Identifies the argument names in the function defined by a string. Common constant names such as @code{pi}, @code{NaN}, @code{Inf}, @code{eps}, @code{i} or @code{j} are ignored. The arguments that are found are returned in a cell array of strings. If no variables are --- 5984,5990 ---- @c symvar scripts/miscellaneous/symvar.m -*- texinfo -*- @deftypefn {Function File} {} symvar (@var{s}) ! Identify the argument names in the function defined by a string. Common constant names such as @code{pi}, @code{NaN}, @code{Inf}, @code{eps}, @code{i} or @code{j} are ignored. The arguments that are found are returned in a cell array of strings. If no variables are *************** *** 5890,5896 **** tar @c tar scripts/miscellaneous/tar.m -*- texinfo -*- ! @deftypefn {Function File} {@var{entries} =} tar (@var{tarfile}, @var{files}, @var{root}) Pack @var{files} @var{files} into the TAR archive @var{tarfile}. The list of files must be a string or a cell array of strings. --- 5993,6000 ---- tar @c tar scripts/miscellaneous/tar.m -*- texinfo -*- ! @deftypefn {Function File} {@var{entries} =} tar (@var{tarfile}, @var{files}) ! @deftypefnx {Function File} {@var{entries} =} tar (@var{tarfile}, @var{files}, @var{root}) Pack @var{files} @var{files} into the TAR archive @var{tarfile}. The list of files must be a string or a cell array of strings. *************** *** 5899,5905 **** If an output argument is requested the entries in the archive are returned in a cell array. ! @seealso{untar, gzip, gunzip, zip, unzip} @end deftypefn tempdir @c tempdir scripts/miscellaneous/tempdir.m --- 6003,6009 ---- If an output argument is requested the entries in the archive are returned in a cell array. ! @seealso{untar, bzip2, gzip, zip} @end deftypefn tempdir @c tempdir scripts/miscellaneous/tempdir.m *************** *** 5941,5962 **** @deftypefnx {Function File} {@var{files} =} unpack (@var{file}, @var{dir}) @deftypefnx {Function File} {@var{files} =} unpack (@var{file}, @var{dir}, @var{filetype}) Unpack the archive @var{file} based on its extension to the directory ! @var{dir}. If @var{file} is a cellstr, then all files will be ! handled individually. If @var{dir} is not specified, it defaults to ! the current directory. It returns a list of @var{files} ! unpacked. If a directory is in the file list, then the ! @var{filetype} to unpack must also be specified. ! The @var{files} includes the entire path to the output files. ! @seealso{bunzip2, tar, untar, gzip, gunzip, zip, unzip} @end deftypefn untar @c untar scripts/miscellaneous/untar.m -*- texinfo -*- ! @deftypefn {Function File} {} untar (@var{tarfile}, @var{dir}) Unpack the TAR archive @var{tarfile} to the directory @var{dir}. If @var{dir} is not specified, it defaults to the current directory. ! @seealso{unpack, bunzip2, tar, gzip, gunzip, zip, unzip} @end deftypefn unzip @c unzip scripts/miscellaneous/unzip.m --- 6045,6066 ---- @deftypefnx {Function File} {@var{files} =} unpack (@var{file}, @var{dir}) @deftypefnx {Function File} {@var{files} =} unpack (@var{file}, @var{dir}, @var{filetype}) Unpack the archive @var{file} based on its extension to the directory ! @var{dir}. If @var{file} is a list of strings, then each file is ! unpacked individually. If @var{dir} is not specified, it defaults to ! the current directory. If a directory is in the file list, then the ! @var{filetype} must also be specified. ! The optional return value is a list of @var{files} unpacked. ! @seealso{bzip2, gzip, zip, tar} @end deftypefn untar @c untar scripts/miscellaneous/untar.m -*- texinfo -*- ! @deftypefn {Function File} {} untar (@var{tarfile}) ! @deftypefnx {Function File} {} untar (@var{tarfile}, @var{dir}) Unpack the TAR archive @var{tarfile} to the directory @var{dir}. If @var{dir} is not specified, it defaults to the current directory. ! @seealso{tar, unpack, bunzip2, gunzip, unzip} @end deftypefn unzip @c unzip scripts/miscellaneous/unzip.m *************** *** 5965,5971 **** @deftypefnx {Function File} {} unzip (@var{zipfile}, @var{dir}) Unpack the ZIP archive @var{zipfile} to the directory @var{dir}. If @var{dir} is not specified, it defaults to the current directory. ! @seealso{unpack, bunzip2, tar, untar, gzip, gunzip, zip} @end deftypefn ver @c ver scripts/miscellaneous/ver.m --- 6069,6075 ---- @deftypefnx {Function File} {} unzip (@var{zipfile}, @var{dir}) Unpack the ZIP archive @var{zipfile} to the directory @var{dir}. If @var{dir} is not specified, it defaults to the current directory. ! @seealso{zip, unpack, bunzip2, gunzip, untar} @end deftypefn ver @c ver scripts/miscellaneous/ver.m *************** *** 5993,5999 **** Date respecting the version/revision. @end table ! @deftypefnx {Function File} {v =} ver (@code{"Octave"}) Return version information for Octave only. @deftypefnx {Function File} {v =} ver (@var{package}) --- 6097,6103 ---- Date respecting the version/revision. @end table ! @deftypefnx {Function File} {v =} ver ("Octave") Return version information for Octave only. @deftypefnx {Function File} {v =} ver (@var{package}) *************** *** 6106,6111 **** --- 6210,6224 ---- compatibility. By default, the @code{Octave:associativity-change} warning is enabled. + @item Octave:autoload-relative-file-name + If the @code{Octave:autoload-relative-file-name} is enabled, + Octave will warn when parsing autoload() function calls with relative + paths to function files. This usually happens when using autoload() + calls in PKG_ADD files, when the PKG_ADD file is not in the same + directory as the .oct file referred to by the autoload() command. + By default, the @code{Octave:autoload-relative-file-name} + warning is enabled. + @item Octave:divide-by-zero If the @code{Octave:divide-by-zero} warning is enabled, a warning is issued when Octave encounters a division by zero. By *************** *** 6185,6190 **** --- 6298,6324 ---- elicits a warning if the @code{Octave:num-to-str} warning is enabled. By default, the @code{Octave:num-to-str} warning is enabled. + @item Octave:possible-matlab-short-circuit-operator + If the @code{Octave:possible-matlab-short-circuit-operator} warning + is enabled, Octave will warn about using the not short circuiting + operators @code{&} and @code{|} inside @code{if} or @code{while} + conditions. They normally never short circuit, but @sc{matlab} always + short circuits if any logical operators are used in a condition. You + can turn on the option + + @example + @group + do_braindead_shortcircuit_evaluation(1) + @end group + @end example + + @noindent + if you would like to enable this short-circuit evaluation in + Octave. Note that the @code{&&} and @code{||} operators always short + circuit in both Octave and @sc{matlab}, so it's only necessary to + enable @sc{matlab}-style short-circuiting it's too arduous to modify + existing code that relies on this behavior. + @item Octave:precedence-change If the @code{Octave:precedence-change} warning is enabled, Octave will warn about possible changes in the meaning of some code due to *************** *** 6253,6272 **** @deftypefn {Command} {} what @deftypefnx {Command} {} what @var{dir} @deftypefnx {Function File} {w =} what (@var{dir}) ! List the Octave specific files in a directory. If the variable @var{dir} ! is given then check that directory rather than the current directory. If ! a return argument is requested, the files found are returned in the ! structure @var{w}. @seealso{which} @end deftypefn xor @c xor scripts/miscellaneous/xor.m -*- texinfo -*- ! @deftypefn {Mapping Function} {} xor (@var{x}, @var{y}) Return the `exclusive or' of the entries of @var{x} and @var{y}. For boolean expressions @var{x} and @var{y}, ! @code{xor (@var{x}, @var{y})} is true if and only if @var{x} or @var{y} ! is true, but not if both @var{x} and @var{y} are true. @end deftypefn zip @c zip scripts/miscellaneous/zip.m --- 6387,6418 ---- @deftypefn {Command} {} what @deftypefnx {Command} {} what @var{dir} @deftypefnx {Function File} {w =} what (@var{dir}) ! List the Octave specific files in directory @var{dir}. If @var{dir} is ! not specified then the current directory is used. If a return argument is ! requested, the files found are returned in the structure @var{w}. @seealso{which} @end deftypefn xor @c xor scripts/miscellaneous/xor.m -*- texinfo -*- ! @deftypefn {Mapping Function} {@var{z} =} xor (@var{x}, @var{y}) Return the `exclusive or' of the entries of @var{x} and @var{y}. For boolean expressions @var{x} and @var{y}, ! @code{xor (@var{x}, @var{y})} is true if and only if one of @var{x} or ! @var{y} is true. Otherwise, for @var{x} and @var{y} both true or both ! false, @code{xor} returns false. ! ! The truth table for the xor operation is ! ! @multitable @columnfractions 0.44 .03 .05 .03 0.44 ! @item @tab @var{x} @tab @var{y} @tab @var{z} @tab ! @item @tab 0 @tab 0 @tab 0 @tab ! @item @tab 1 @tab 0 @tab 1 @tab ! @item @tab 0 @tab 1 @tab 1 @tab ! @item @tab 1 @tab 1 @tab 0 @tab ! @end multitable ! ! @seealso{and, or, not} @end deftypefn zip @c zip scripts/miscellaneous/zip.m *************** *** 6274,6283 **** @deftypefn {Function File} {@var{entries} =} zip (@var{zipfile}, @var{files}) @deftypefnx {Function File} {@var{entries} =} zip (@var{zipfile}, @var{files}, @var{rootdir}) Compress the list of files and/or directories specified in @var{files} ! into the archive @var{zipfiles} in the same directory. If @var{rootdir} ! is defined the @var{files} is located relative to @var{rootdir} rather ! than the current directory ! @seealso{unzip,tar} @end deftypefn __xzip__ @c __xzip__ scripts/miscellaneous/private/__xzip__.m --- 6420,6429 ---- @deftypefn {Function File} {@var{entries} =} zip (@var{zipfile}, @var{files}) @deftypefnx {Function File} {@var{entries} =} zip (@var{zipfile}, @var{files}, @var{rootdir}) Compress the list of files and/or directories specified in @var{files} ! into the archive @var{zipfile} in the same directory. If @var{rootdir} ! is defined the @var{files} are located relative to @var{rootdir} rather ! than the current directory. ! @seealso{unzip, bzip2, gzip, tar} @end deftypefn __xzip__ @c __xzip__ scripts/miscellaneous/private/__xzip__.m *************** *** 6325,6331 **** -*- texinfo -*- @deftypefn {Function File} {} fminunc (@var{fcn}, @var{x0}) @deftypefnx {Function File} {} fminunc (@var{fcn}, @var{x0}, @var{options}) ! @deftypefnx {Function File} {[@var{x}, @var{fvec}, @var{info}, @var{output}, @var{grad}, @var{hess}]} = fminunc (@var{fcn}, @dots{}) Solve an unconstrained optimization problem defined by the function @var{fcn}. @var{fcn} should accepts a vector (array) defining the unknown variables, --- 6471,6477 ---- -*- texinfo -*- @deftypefn {Function File} {} fminunc (@var{fcn}, @var{x0}) @deftypefnx {Function File} {} fminunc (@var{fcn}, @var{x0}, @var{options}) ! @deftypefnx {Function File} {[@var{x}, @var{fvec}, @var{info}, @var{output}, @var{grad}, @var{hess}] =} fminunc (@var{fcn}, @dots{}) Solve an unconstrained optimization problem defined by the function @var{fcn}. @var{fcn} should accepts a vector (array) defining the unknown variables, *************** *** 6363,6369 **** Last relative step size was less that TolX. @item 3 ! Last relative decrease in func value was less than TolF. @item 0 Iteration limit exceeded. --- 6509,6515 ---- Last relative step size was less that TolX. @item 3 ! Last relative decrease in function value was less than TolF. @item 0 Iteration limit exceeded. *************** *** 6498,6507 **** @deftypefnx {Function File} {[@var{x}, @var{fval}, @var{info}, @var{output}] =} fzero (@dots{}) Find a zero of a univariate function. ! @var{fun} should be a function handle or name. @var{x0} should be a ! two-element vector specifying two points which bracket a zero. In ! other words, there must be a change in sign of the function between ! @var{x0}(1) and @var{x0}(2). More mathematically, the following must hold @example sign (@var{fun}(@var{x0}(1))) * sign (@var{fun}(@var{x0}(2))) <= 0 --- 6644,6655 ---- @deftypefnx {Function File} {[@var{x}, @var{fval}, @var{info}, @var{output}] =} fzero (@dots{}) Find a zero of a univariate function. ! @var{fun} is a function handle, inline function, or string ! containing the name of the function to evaluate. ! @var{x0} should be a two-element vector specifying two points which ! bracket a zero. In other words, there must be a change in sign of the ! function between @var{x0}(1) and @var{x0}(2). More mathematically, the ! following must hold @example sign (@var{fun}(@var{x0}(1))) * sign (@var{fun}(@var{x0}(2))) <= 0 *************** *** 6880,6893 **** --- 7028,7046 ---- @table @asis @item 180 (@w{@code{LPX_OPT}}) Solution is optimal. + @item 181 (@w{@code{LPX_FEAS}}) Solution is feasible. + @item 182 (@w{@code{LPX_INFEAS}}) Solution is infeasible. + @item 183 (@w{@code{LPX_NOFEAS}}) Problem has no feasible solution. + @item 184 (@w{@code{LPX_UNBND}}) Problem has no unbounded solution. + @item 185 (@w{@code{LPX_UNDEF}}) Solution status is undefined. @end table *************** *** 6895,6900 **** --- 7048,7054 ---- @table @asis @item 150 (@w{@code{LPX_T_UNDEF}}) The interior point method is undefined. + @item 151 (@w{@code{LPX_T_OPT}}) The interior point method is optimal. @end table *************** *** 6902,6911 **** --- 7056,7068 ---- @table @asis @item 170 (@w{@code{LPX_I_UNDEF}}) The status is undefined. + @item 171 (@w{@code{LPX_I_OPT}}) The solution is integer optimal. + @item 172 (@w{@code{LPX_I_FEAS}}) Solution integer feasible but its optimality has not been proven + @item 173 (@w{@code{LPX_I_NOFEAS}}) No integer feasible solution. @end table *************** *** 6916,6939 **** --- 7073,7106 ---- @table @asis @item 204 (@w{@code{LPX_E_FAULT}}) Unable to start the search. + @item 205 (@w{@code{LPX_E_OBJLL}}) Objective function lower limit reached. + @item 206 (@w{@code{LPX_E_OBJUL}}) Objective function upper limit reached. + @item 207 (@w{@code{LPX_E_ITLIM}}) Iterations limit exhausted. + @item 208 (@w{@code{LPX_E_TMLIM}}) Time limit exhausted. + @item 209 (@w{@code{LPX_E_NOFEAS}}) No feasible solution. + @item 210 (@w{@code{LPX_E_INSTAB}}) Numerical instability. + @item 211 (@w{@code{LPX_E_SING}}) Problems with basis matrix. + @item 212 (@w{@code{LPX_E_NOCONV}}) No convergence (interior). + @item 213 (@w{@code{LPX_E_NOPFS}}) No primal feasible solution (LP presolver). + @item 214 (@w{@code{LPX_E_NODFS}}) No dual feasible solution (LP presolver). @end table *************** *** 7461,7466 **** --- 7628,7637 ---- A global installation is forced, even if the user doesn't normally have system privileges + @item -forge + Install a package directly from the Octave-Forge repository. This + requires an internet connection and the cURL library. + @item -verbose The package manager will print the output of all of the commands that are performed. *************** *** 7520,7525 **** --- 7691,7699 ---- splits the list of installed packages into those who are installed by the current user, and those installed by the system administrator. + The option '-forge' lists packages available at the Octave-Forge repository. + This requires an internet connection and the cURL library. + @item describe Show a short description of the named installed packages, with the option '-verbose' also list functions provided by the package, e.g.: *************** *** 7635,7647 **** @end table @end deftypefn get_forge_pkg ! @c get_forge_pkg scripts/pkg/get_forge_pkg.m -*- texinfo -*- @deftypefn {Function File} {[@var{ver}, @var{url}] =} get_forge_pkg (@var{name}) ! Tries to discover the current version of an OctaveForge package from the web, using a working internet connection and the urlread function. ! If two output arguments are requested, returns also an address to download ! the file. @end deftypefn __fltk_ginput__ @c __fltk_ginput__ scripts/plot/__fltk_ginput__.m --- 7809,7821 ---- @end table @end deftypefn get_forge_pkg ! @c get_forge_pkg scripts/pkg/private/get_forge_pkg.m -*- texinfo -*- @deftypefn {Function File} {[@var{ver}, @var{url}] =} get_forge_pkg (@var{name}) ! Try to discover the current version of an OctaveForge package from the web, using a working internet connection and the urlread function. ! If two output arguments are requested, also return an address from which ! to download the file. @end deftypefn __fltk_ginput__ @c __fltk_ginput__ scripts/plot/__fltk_ginput__.m *************** *** 7814,7822 **** @c axis scripts/plot/axis.m -*- texinfo -*- @deftypefn {Function File} {} axis () ! @deftypefnx {Function File} {} axis ([@var{x}_lo, @var{x}_hi]) ! @deftypefnx {Function File} {} axis ([@var{x}_lo, @var{x}_hi, @var{y}_lo, @var{y}_hi]) ! @deftypefnx {Function File} {} axis ([@var{x}_lo, @var{x}_hi, @var{y}_lo, @var{y}_hi, @var{z}_lo, @var{z}_hi]) @deftypefnx {Function File} {} axis (@var{option}) @deftypefnx {Function File} {} axis (@dots{}, @var{option}) @deftypefnx {Function File} {} axis (@var{h}, @dots{}) --- 7988,7996 ---- @c axis scripts/plot/axis.m -*- texinfo -*- @deftypefn {Function File} {} axis () ! @deftypefnx {Function File} {} axis ([@var{x}_lo @var{x}_hi]) ! @deftypefnx {Function File} {} axis ([@var{x}_lo @var{x}_hi @var{y}_lo @var{y}_hi]) ! @deftypefnx {Function File} {} axis ([@var{x}_lo @var{x}_hi @var{y}_lo @var{y}_hi @var{z}_lo @var{z}_hi]) @deftypefnx {Function File} {} axis (@var{option}) @deftypefnx {Function File} {} axis (@dots{}, @var{option}) @deftypefnx {Function File} {} axis (@var{h}, @dots{}) *************** *** 8078,8084 **** @deftypefnx {Function File} {} clabel (@var{c}, @var{h}) @deftypefnx {Function File} {} clabel (@dots{}, @var{prop}, @var{val}, @dots{}) @deftypefnx {Function File} {@var{h} =} clabel (@dots{}) ! Adds labels to the contours of a contour plot. The contour plot is specified by the contour matrix @var{c} and optionally the contourgroup object @var{h} that are returned by @code{contour}, @code{contourf} and @code{contour3}. The contour labels are rotated and placed in the contour itself. --- 8252,8258 ---- @deftypefnx {Function File} {} clabel (@var{c}, @var{h}) @deftypefnx {Function File} {} clabel (@dots{}, @var{prop}, @var{val}, @dots{}) @deftypefnx {Function File} {@var{h} =} clabel (@dots{}) ! Add labels to the contours of a contour plot. The contour plot is specified by the contour matrix @var{c} and optionally the contourgroup object @var{h} that are returned by @code{contour}, @code{contourf} and @code{contour3}. The contour labels are rotated and placed in the contour itself. *************** *** 8147,8153 **** -*- texinfo -*- @deftypefn {Function File} {} colorbar (@var{s}) @deftypefnx {Function File} {} colorbar ("peer", @var{h}, @dots{}) ! Adds a colorbar to the current axes. Valid values for @var{s} are @table @asis @item "EastOutside" --- 8321,8327 ---- -*- texinfo -*- @deftypefn {Function File} {} colorbar (@var{s}) @deftypefnx {Function File} {} colorbar ("peer", @var{h}, @dots{}) ! Add a colorbar to the current axes. Valid values for @var{s} are @table @asis @item "EastOutside" *************** *** 8181,8186 **** --- 8355,8368 ---- If the argument "peer" is given, then the following argument is treated as the axes handle on which to add the colorbar. @end deftypefn + colstyle + @c colstyle scripts/plot/colstyle.m + -*- texinfo -*- + @deftypefn {Function File} {[@var{style}, @var{color}, @var{marker}, @var{msg}] =} colstyle (@var{linespec}) + Parse @var{linespec} and return the line style, color, and markers given. + In the case of an error, the string @var{msg} will return the text of the + error. + @end deftypefn comet @c comet scripts/plot/comet.m -*- texinfo -*- *************** *** 8404,8410 **** @deftypefnx {Function File} {} cylinder (@var{r}, @var{n}) @deftypefnx {Function File} {[@var{x}, @var{y}, @var{z}] =} cylinder (@dots{}) @deftypefnx {Function File} {} cylinder (@var{ax}, @dots{}) ! Generates three matrices in @code{meshgrid} format, such that @code{surf (@var{x}, @var{y}, @var{z})} generates a unit cylinder. The matrices are of size @code{@var{n}+1}-by-@code{@var{n}+1}. @var{r} is a vector containing the radius along the z-axis. --- 8586,8592 ---- @deftypefnx {Function File} {} cylinder (@var{r}, @var{n}) @deftypefnx {Function File} {[@var{x}, @var{y}, @var{z}] =} cylinder (@dots{}) @deftypefnx {Function File} {} cylinder (@var{ax}, @dots{}) ! Generate three matrices in @code{meshgrid} format, such that @code{surf (@var{x}, @var{y}, @var{z})} generates a unit cylinder. The matrices are of size @code{@var{n}+1}-by-@code{@var{n}+1}. @var{r} is a vector containing the radius along the z-axis. *************** *** 8434,8447 **** Set the data aspect ratio of the current axes. The aspect ratio is a normalized 3-element vector representing the span of the x, y, and z-axes limits. @deftypefnx {Function File} {@var{data_aspect_ratio} =} daspect ( ) Return the data aspect ratio of the current axes. @deftypefnx {Function File} {} daspect (@var{mode}) Set the data aspect ratio mode of the current axes. @deftypefnx {Function File} {@var{data_aspect_ratio_mode} =} daspect ("mode") Return the data aspect ratio mode of the current axes. @deftypefnx {Function File} {} daspect (@var{hax}, @dots{}) ! Uses the axes, with handle @var{hax}, instead of the current axes. @seealso{axis, pbaspect, xlim, ylim, zlim} @end deftypefn --- 8616,8633 ---- Set the data aspect ratio of the current axes. The aspect ratio is a normalized 3-element vector representing the span of the x, y, and z-axes limits. + @deftypefnx {Function File} {@var{data_aspect_ratio} =} daspect ( ) Return the data aspect ratio of the current axes. + @deftypefnx {Function File} {} daspect (@var{mode}) Set the data aspect ratio mode of the current axes. + @deftypefnx {Function File} {@var{data_aspect_ratio_mode} =} daspect ("mode") Return the data aspect ratio mode of the current axes. + @deftypefnx {Function File} {} daspect (@var{hax}, @dots{}) ! Use the axes, with handle @var{hax}, instead of the current axes. @seealso{axis, pbaspect, xlim, ylim, zlim} @end deftypefn *************** *** 9048,9055 **** @deftypefnx {Function File} {} fplot (@var{fn}, @var{limits}, @var{tol}) @deftypefnx {Function File} {} fplot (@var{fn}, @var{limits}, @var{n}) @deftypefnx {Function File} {} fplot (@dots{}, @var{fmt}) ! Plot a function @var{fn}, within the defined limits. @var{fn} ! an be either a string, a function handle or an inline function. The limits of the plot are given by @var{limits} of the form @code{[@var{xlo}, @var{xhi}]} or @code{[@var{xlo}, @var{xhi}, @var{ylo}, @var{yhi}]}. @var{tol} is the default tolerance to use for the --- 9234,9242 ---- @deftypefnx {Function File} {} fplot (@var{fn}, @var{limits}, @var{tol}) @deftypefnx {Function File} {} fplot (@var{fn}, @var{limits}, @var{n}) @deftypefnx {Function File} {} fplot (@dots{}, @var{fmt}) ! Plot a function @var{fn} within defined limits. ! @var{fn} is a function handle, inline function, or string ! containing the name of the function to evaluate. The limits of the plot are given by @var{limits} of the form @code{[@var{xlo}, @var{xhi}]} or @code{[@var{xlo}, @var{xhi}, @var{ylo}, @var{yhi}]}. @var{tol} is the default tolerance to use for the *************** *** 9314,9322 **** ishold @c ishold scripts/plot/ishold.m -*- texinfo -*- ! @deftypefn {Command} {} ishold Return true if the next plot will be added to the current plot, or false if the plot device will be cleared before drawing the next plot. @seealso{hold} @end deftypefn isocolors --- 9501,9513 ---- ishold @c ishold scripts/plot/ishold.m -*- texinfo -*- ! @deftypefn {Command} {} ishold ! @deftypefnx {Function File} {} ishold (@var{h}) Return true if the next plot will be added to the current plot, or false if the plot device will be cleared before drawing the next plot. + + Optionally, operate on the graphics handle @var{h} rather than the current + plot. @seealso{hold} @end deftypefn isocolors *************** *** 9327,9336 **** @deftypefnx {Function File} {[@var{cd}] =} isocolors (@var{x}, @var{y}, @var{z}, @var{r}, @var{g}, @var{b}, @var{v}) @deftypefnx {Function File} {[@var{cd}] =} isocolors (@var{r}, @var{g}, @var{b}, @var{v}) @deftypefnx {Function File} {[@var{cd}] =} isocolors (@dots{}, @var{p}) ! @deftypefnx {Function File} isocolors (@dots{}) If called with one output argument and the first input argument ! @var{c} is a three--dimensional array that contains color values and the second input argument @var{v} keeps the vertices of a geometry then return a matrix @var{cd} with color data information for the geometry at computed points --- 9518,9527 ---- @deftypefnx {Function File} {[@var{cd}] =} isocolors (@var{x}, @var{y}, @var{z}, @var{r}, @var{g}, @var{b}, @var{v}) @deftypefnx {Function File} {[@var{cd}] =} isocolors (@var{r}, @var{g}, @var{b}, @var{v}) @deftypefnx {Function File} {[@var{cd}] =} isocolors (@dots{}, @var{p}) ! @deftypefnx {Function File} {} isocolors (@dots{}) If called with one output argument and the first input argument ! @var{c} is a three-dimensional array that contains color values and the second input argument @var{v} keeps the vertices of a geometry then return a matrix @var{cd} with color data information for the geometry at computed points *************** *** 9397,9403 **** isofinish (p); @end example ! @seealso{isosurface, isonormals, isocaps} @end deftypefn isonormals --- 9588,9594 ---- isofinish (p); @end example ! @seealso{isosurface, isonormals} @end deftypefn isonormals *************** *** 9408,9417 **** @deftypefnx {Function File} {[@var{n}] =} isonormals (@var{x}, @var{y}, @var{z}, @var{val}, @var{v}) @deftypefnx {Function File} {[@var{n}] =} isonormals (@var{x}, @var{y}, @var{z}, @var{val}, @var{p}) @deftypefnx {Function File} {[@var{n}] =} isonormals (@dots{}, "negate") ! @deftypefnx {Function File} isonormals (@dots{}, @var{p}) If called with one output argument and the first input argument ! @var{val} is a three--dimensional array that contains the data for an isosurface geometry and the second input argument @var{v} keeps the vertices of an isosurface then return the normals @var{n} in form of a matrix with the same size than @var{v} at computed points --- 9599,9608 ---- @deftypefnx {Function File} {[@var{n}] =} isonormals (@var{x}, @var{y}, @var{z}, @var{val}, @var{v}) @deftypefnx {Function File} {[@var{n}] =} isonormals (@var{x}, @var{y}, @var{z}, @var{val}, @var{p}) @deftypefnx {Function File} {[@var{n}] =} isonormals (@dots{}, "negate") ! @deftypefnx {Function File} {} isonormals (@dots{}, @var{p}) If called with one output argument and the first input argument ! @var{val} is a three-dimensional array that contains the data for an isosurface geometry and the second input argument @var{v} keeps the vertices of an isosurface then return the normals @var{n} in form of a matrix with the same size than @var{v} at computed points *************** *** 9474,9481 **** isofinish (p); @end example ! @seealso {isosurface, isocolors, isocaps, marching_cube} ! @end deftypefn isosurface @c isosurface scripts/plot/isosurface.m --- 9665,9671 ---- isofinish (p); @end example ! @seealso{isosurface, isocolors} @end deftypefn isosurface @c isosurface scripts/plot/isosurface.m *************** *** 9489,9495 **** @deftypefnx {Function File} {} isosurface (@var{x}, @var{y}, @var{z}, @var{val}, @var{iso}, @var{col}, @var{opt}) If called with one output argument and the first input argument ! @var{val} is a three--dimensional array that contains the data of an isosurface geometry and the second input argument @var{iso} keeps the isovalue as a scalar value then return a structure array @var{fv} that contains the fields @var{Faces} and @var{Vertices} at computed --- 9679,9685 ---- @deftypefnx {Function File} {} isosurface (@var{x}, @var{y}, @var{z}, @var{val}, @var{iso}, @var{col}, @var{opt}) If called with one output argument and the first input argument ! @var{val} is a three-dimensional array that contains the data of an isosurface geometry and the second input argument @var{iso} keeps the isovalue as a scalar value then return a structure array @var{fv} that contains the fields @var{Faces} and @var{Vertices} at computed *************** *** 9571,9578 **** light ("Position", [1 1 5]); @end example ! @seealso{isocolors, isonormals, isocaps} ! @end deftypefn isprop @c isprop scripts/plot/isprop.m --- 9761,9767 ---- light ("Position", [1 1 5]); @end example ! @seealso{isonormals, isocolors} @end deftypefn isprop @c isprop scripts/plot/isprop.m *************** *** 9687,9693 **** @c linkprop scripts/plot/linkprop.m -*- texinfo -*- @deftypefn {Function File} {@var{hlink} =} linkprop (@var{h}, @var{prop}) ! Links graphics object properties, such that a change in one is propagated to the others. The properties to link are given as a string of cell string array by @var{prop} and the objects containing these properties by the handle array @var{h}. --- 9876,9882 ---- @c linkprop scripts/plot/linkprop.m -*- texinfo -*- @deftypefn {Function File} {@var{hlink} =} linkprop (@var{h}, @var{prop}) ! Link graphics object properties, such that a change in one is propagated to the others. The properties to link are given as a string of cell string array by @var{prop} and the objects containing these properties by the handle array @var{h}. *************** *** 9903,9916 **** Set the plot box aspect ratio of the current axes. The aspect ratio is a normalized 3-element vector representing the rendered lengths of the x, y, and z-axes. @deftypefnx {Function File} {@var{plot_box_aspect_ratio} =} pbaspect ( ) Return the plot box aspect ratio of the current axes. @deftypefnx {Function File} {} pbaspect (@var{mode}) Set the plot box aspect ratio mode of the current axes. @deftypefnx {Function File} {@var{plot_box_aspect_ratio_mode} =} pbaspect ("mode") Return the plot box aspect ratio mode of the current axes. @deftypefnx {Function File} {} pbaspect (@var{hax}, @dots{}) ! Uses the axes, with handle @var{hax}, instead of the current axes. @seealso{axis, daspect, xlim, ylim, zlim} @end deftypefn --- 10092,10109 ---- Set the plot box aspect ratio of the current axes. The aspect ratio is a normalized 3-element vector representing the rendered lengths of the x, y, and z-axes. + @deftypefnx {Function File} {@var{plot_box_aspect_ratio} =} pbaspect ( ) Return the plot box aspect ratio of the current axes. + @deftypefnx {Function File} {} pbaspect (@var{mode}) Set the plot box aspect ratio mode of the current axes. + @deftypefnx {Function File} {@var{plot_box_aspect_ratio_mode} =} pbaspect ("mode") Return the plot box aspect ratio mode of the current axes. + @deftypefnx {Function File} {} pbaspect (@var{hax}, @dots{}) ! Use the axes, with handle @var{hax}, instead of the current axes. @seealso{axis, daspect, xlim, ylim, zlim} @end deftypefn *************** *** 10310,10316 **** @deftypefnx {Function File} {} plotyy (@dots{}, @var{fun1}, @var{fun2}) @deftypefnx {Function File} {} plotyy (@var{h}, @dots{}) @deftypefnx {Function File} {[@var{ax}, @var{h1}, @var{h2}] =} plotyy (@dots{}) ! Plots two sets of data with independent y-axes. The arguments @var{x1} and @var{y1} define the arguments for the first plot and @var{x1} and @var{y2} for the second. --- 10503,10509 ---- @deftypefnx {Function File} {} plotyy (@dots{}, @var{fun1}, @var{fun2}) @deftypefnx {Function File} {} plotyy (@var{h}, @dots{}) @deftypefnx {Function File} {[@var{ax}, @var{h1}, @var{h2}] =} plotyy (@dots{}) ! Plot two sets of data with independent y-axes. The arguments @var{x1} and @var{y1} define the arguments for the first plot and @var{x1} and @var{y2} for the second. *************** *** 10682,10687 **** --- 10875,10915 ---- @seealso{plot} @end deftypefn + rectangle + @c rectangle scripts/plot/rectangle.m + -*- texinfo -*- + @deftypefn {Function File} {} rectangle () + @deftypefnx {Function File} {} rectangle (@dots{}, "Position", @var{pos}) + @deftypefnx {Function File} {} rectangle (@dots{}, "Curvature", @var{curv}) + @deftypefnx {Function File} {} rectangle (@dots{}, "EdgeColor", @var{ec}) + @deftypefnx {Function File} {} rectangle (@dots{}, "FaceColor", @var{fc}) + @deftypefnx {Function File} {@var{h} =} rectangle (@dots{}) + + Draw rectangular patch defined by @var{pos} and @var{curv}. The variable + @code{@var{pos}(1 : 2)} defines the lower left-hand corner of the patch + and @code{@var{pos}(3 : 4)} its width and height. By default the value of + @var{pos} is @var{[0, 0, 1, 1]}. + + The variable @var{curv} defines the curvature of the sides of the rectangle + and it can be a scalar or two-element vector with values between 0 and 1. + A value of 0 represents no curvature of the side, where as a value of 1 + means that the rectangular side is entirely curved into an arc of a circle. + If curvature is a two-element vector, then the first element is the + curvature along the x-axis of the patch and the second along y-axis. + + If @var{curv} is a scalar, it represents the curvature of the shorter of the + two sides of the rectangle and the curvature of the other side is defined + by + + @example + min (pos (1: 2)) / max (pos (1:2)) * curv + @end example + + Other properties are passed to the underlying patch command. If called + with an output argument, @code{rectangle} returns the handle to the + rectangle. + @end deftypefn + @seealso{patch} refresh @c refresh scripts/plot/refresh.m -*- texinfo -*- *************** *** 10929,10935 **** with errors in the @var{y}-scale defined by @var{ey} and the plot format defined by @var{fmt}. See @code{errorbar} for available formats and additional information. ! @seealso{errorbar, loglogerr semilogyerr} @end deftypefn semilogy @c semilogy scripts/plot/semilogy.m --- 11157,11163 ---- with errors in the @var{y}-scale defined by @var{ey} and the plot format defined by @var{fmt}. See @code{errorbar} for available formats and additional information. ! @seealso{errorbar, loglogerr, semilogyerr} @end deftypefn semilogy @c semilogy scripts/plot/semilogy.m *************** *** 10962,10968 **** with errors in the @var{y}-scale defined by @var{ey} and the plot format defined by @var{fmt}. See @code{errorbar} for available formats and additional information. ! @seealso{errorbar, loglogerr semilogxerr} @end deftypefn shading @c shading scripts/plot/shading.m --- 11190,11196 ---- with errors in the @var{y}-scale defined by @var{ey} and the plot format defined by @var{fmt}. See @code{errorbar} for available formats and additional information. ! @seealso{errorbar, loglogerr, semilogxerr} @end deftypefn shading @c shading scripts/plot/shading.m *************** *** 11087,11093 **** -*- texinfo -*- @deftypefn {Function File} {[@var{x}, @var{y}, @var{z}] =} sphere (@var{n}) @deftypefnx {Function File} {} sphere (@var{h}, @dots{}) ! Generates three matrices in @code{meshgrid} format, such that @code{surf (@var{x}, @var{y}, @var{z})} generates a unit sphere. The matrices of @code{@var{n}+1}-by-@code{@var{n}+1}. If @var{n} is omitted then a default value of 20 is assumed. --- 11315,11321 ---- -*- texinfo -*- @deftypefn {Function File} {[@var{x}, @var{y}, @var{z}] =} sphere (@var{n}) @deftypefnx {Function File} {} sphere (@var{h}, @dots{}) ! Generate three matrices in @code{meshgrid} format, such that @code{surf (@var{x}, @var{y}, @var{z})} generates a unit sphere. The matrices of @code{@var{n}+1}-by-@code{@var{n}+1}. If @var{n} is omitted then a default value of 20 is assumed. *************** *** 11262,11269 **** @end group @end example @end ifnottex ! @seealso{plot} @end deftypefn surf @c surf scripts/plot/surf.m --- 11490,11504 ---- @end group @end example + @var{index} may be a vector. In which case, the new axis will enclose + the grid locations specified. The first demo illustrates an example: + + @example + @code{demo ("subplot", 1)} + @end example + @end ifnottex ! @seealso{axes, plot} @end deftypefn surf @c surf scripts/plot/surf.m *************** *** 11429,11464 **** @deftypefn {Function File} {@var{dirname} =} uigetdir () @deftypefnx {Function File} {@var{dirname} =} uigetdir (@var{init_path}) @deftypefnx {Function File} {@var{dirname} =} uigetdir (@var{init_path}, @var{dialog_name}) ! Open a GUI dialog to select a directory. If @var{init_path} is not given ! the current working directory is used. @var{dialog_name} optionally be used to customize the dialog title. @end deftypefn uigetfile @c uigetfile scripts/plot/uigetfile.m -*- texinfo -*- ! @deftypefn {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uigetfile (@var{flt}) ! @deftypefnx {Function File} {[@dots{}] =} uigetfile (@var{flt}, @var{dialog_name}, @var{default_file}) @deftypefnx {Function File} {[@dots{}] =} uigetfile (@var{flt}, @var{dialog_name}) ! @deftypefnx {Function File} {[@dots{}] =} uigetfile (@dots{}, "Position", [@var{px}, @var{py}]) ! @deftypefnx {Function File} {[@dots{}] =} uigetfile (@dots{}, "Multiselect", @var{mode}) ! Open a GUI dialog to select a file. It returns the filename @var{fname}, the path to this file @var{fpath}, and the filter index @var{fltidx}. @var{flt} contains a (list of) file filter string(s) in one of the following formats: @table @asis @item "/path/to/filename.ext" ! If a filename is given the file extension is extracted and used as filter. ! In addtion the path is selected as current path and the filname is selected ! as default file. ! Example: @code{uigetfile ("myfun.m")} @item A single file extension "*.ext" Example: @code{uigetfile ("*.ext")} @item A 2-column cell array ! containing the file extension in the first column and a brief description in the second column. Example: @code{uigetfile (@{"*.ext", "My Description";"*.xyz", "XYZ-Format"@})} --- 11664,11700 ---- @deftypefn {Function File} {@var{dirname} =} uigetdir () @deftypefnx {Function File} {@var{dirname} =} uigetdir (@var{init_path}) @deftypefnx {Function File} {@var{dirname} =} uigetdir (@var{init_path}, @var{dialog_name}) ! Open a GUI dialog for selecting a directory. If @var{init_path} is not ! given the current working directory is used. @var{dialog_name} may be used to customize the dialog title. + @seealso{uigetfile} @end deftypefn uigetfile @c uigetfile scripts/plot/uigetfile.m -*- texinfo -*- ! @deftypefn {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uigetfile () ! @deftypefnx {Function File} {[@dots{}] =} uigetfile (@var{flt}) @deftypefnx {Function File} {[@dots{}] =} uigetfile (@var{flt}, @var{dialog_name}) ! @deftypefnx {Function File} {[@dots{}] =} uigetfile (@var{flt}, @var{dialog_name}, @var{default_file}) ! @deftypefnx {Function File} {[@dots{}] =} uigetfile (@dots{}, "Position", [@var{px} @var{py}]) ! @deftypefnx {Function File} {[@dots{}] =} uigetfile (@dots{}, "MultiSelect", @var{mode}) ! Open a GUI dialog for selecting a file. It returns the filename @var{fname}, the path to this file @var{fpath}, and the filter index @var{fltidx}. @var{flt} contains a (list of) file filter string(s) in one of the following formats: @table @asis @item "/path/to/filename.ext" ! If a filename is given then the file extension is extracted and used as ! filter. In addition, the path is selected as current path and the filename ! is selected as default file. Example: @code{uigetfile ("myfun.m")} @item A single file extension "*.ext" Example: @code{uigetfile ("*.ext")} @item A 2-column cell array ! containing a file extension in the first column and a brief description in the second column. Example: @code{uigetfile (@{"*.ext", "My Description";"*.xyz", "XYZ-Format"@})} *************** *** 11470,11481 **** @end table @var{dialog_name} can be used to customize the dialog title. ! If @var{default_file} is given it is selected in the GUI dialog. ! If in addtion a path is given it is also used as current path. The screen position of the GUI dialog can be set using the "Position" key and a 2-element vector containing the pixel coordinates. ! Two or more files can be selected when setting the "Multiselect" key to "on". In that case @var{fname} is a cell array containing the files. @end deftypefn uimenu --- 11706,11717 ---- @end table @var{dialog_name} can be used to customize the dialog title. ! If @var{default_file} is given then it will be selected in the GUI dialog. ! If, in addition, a path is given it is also used as current path. The screen position of the GUI dialog can be set using the "Position" key and a 2-element vector containing the pixel coordinates. ! Two or more files can be selected when setting the "MultiSelect" key to "on". In that case @var{fname} is a cell array containing the files. @end deftypefn uimenu *************** *** 11483,11497 **** -*- texinfo -*- @deftypefn {Function File} {} uimenu (@var{property}, @var{value}, @dots{}) @deftypefnx {Function File} {} uimenu (@var{h}, @var{property}, @var{value}, @dots{}) ! Create an uimenu object and return a handle to it. If @var{h} is ommited ! then a top level menu entry for the current figure is created. If @var{h} is given then a submenu relative to @var{h} is created. ! Uimenu objects have the following specific properties: @table @asis @item "accelerator" ! A string containg the key combination together with CTRL to execute this menu entry (e.g., "x" for CTRL+x). @item "callback" --- 11719,11733 ---- -*- texinfo -*- @deftypefn {Function File} {} uimenu (@var{property}, @var{value}, @dots{}) @deftypefnx {Function File} {} uimenu (@var{h}, @var{property}, @var{value}, @dots{}) ! Create a uimenu object and return a handle to it. If @var{h} is ommited ! then a top-level menu for the current figure is created. If @var{h} is given then a submenu relative to @var{h} is created. ! uimenu objects have the following specific properties: @table @asis @item "accelerator" ! A string containing the key combination together with CTRL to execute this menu entry (e.g., "x" for CTRL+x). @item "callback" *************** *** 11512,11518 **** @item "label" A string containing the label for this menu entry. A "&"-symbol can be ! used to mark the "accelerator" character (e.g., "E&xit") @item "position" An scalar value containing the relative menu position. The entry with the --- 11748,11754 ---- @item "label" A string containing the label for this menu entry. A "&"-symbol can be ! used to mark the "accelerator" character (e.g., @nospell{"E&xit"}) @item "position" An scalar value containing the relative menu position. The entry with the *************** *** 11522,11528 **** Can be set "on" or "off". If enabled it draws a separator line above the current position. It is ignored for top level entries. - @end table Examples: --- 11758,11763 ---- *************** *** 11540,11557 **** uiputfile @c uiputfile scripts/plot/uiputfile.m -*- texinfo -*- ! @deftypefn {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile (@var{flt}, @var{dialog_name}, @var{default_file}) ! @deftypefnx {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile (@var{flt}, @var{dialog_name}) @deftypefnx {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile (@var{flt}) ! @deftypefnx {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile ()) ! Open a GUI dialog to select a file. @var{flt} contains a (list of) file filter string(s) in one of the following formats: @table @code @item "/path/to/filename.ext" If a filename is given the file extension is extracted and used as filter. ! In addtion the path is selected as current path and the filname is selected as default file. Example: uiputfile("myfun.m"); --- 11775,11792 ---- uiputfile @c uiputfile scripts/plot/uiputfile.m -*- texinfo -*- ! @deftypefn {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile () @deftypefnx {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile (@var{flt}) ! @deftypefnx {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile (@var{flt}, @var{dialog_name}) ! @deftypefnx {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile (@var{flt}, @var{dialog_name}, @var{default_file}) ! Open a GUI dialog for selecting a file. @var{flt} contains a (list of) file filter string(s) in one of the following formats: @table @code @item "/path/to/filename.ext" If a filename is given the file extension is extracted and used as filter. ! In addition the path is selected as current path and the filename is selected as default file. Example: uiputfile("myfun.m"); *************** *** 11571,11585 **** @var{dialog_name} can be used to customize the dialog title. If @var{default_file} is given it is preselected in the GUI dialog. ! If in addtion a path is given it is also used as current path. @end deftypefn view @c view scripts/plot/view.m -*- texinfo -*- @deftypefn {Function File} {[@var{azimuth}, @var{elevation}] =} view () ! @deftypefnx {Function File} {} view (@var{azimuth}, @var{elevation}) ! @deftypefnx {Function File} {} view ([@var{azimuth}, @var{elevation}]) ! @deftypefnx {Function File} {} view ([@var{x}, @var{y}, @var{z}]) @deftypefnx {Function File} {} view (@var{dims}) @deftypefnx {Function File} {} view (@var{ax}, @dots{}) Query or set the viewpoint for the current axes. The parameters --- 11806,11820 ---- @var{dialog_name} can be used to customize the dialog title. If @var{default_file} is given it is preselected in the GUI dialog. ! If, in addition, a path is given it is also used as current path. @end deftypefn view @c view scripts/plot/view.m -*- texinfo -*- @deftypefn {Function File} {[@var{azimuth}, @var{elevation}] =} view () ! @deftypefnx {Function File} {} view (@var{azimuth}, @var{elevation}) ! @deftypefnx {Function File} {} view ([@var{azimuth} @var{elevation}]) ! @deftypefnx {Function File} {} view ([@var{x} @var{y} @var{z}]) @deftypefnx {Function File} {} view (@var{dims}) @deftypefnx {Function File} {} view (@var{ax}, @dots{}) Query or set the viewpoint for the current axes. The parameters *************** *** 11737,11743 **** @c __add_default_menu__ scripts/plot/private/__add_default_menu__.m -*- texinfo -*- @deftypefn {Function File} {} __add_default_menu__ (@var{fig}) ! Adds default menu to figure. All uimenu handles have set their property "handlevisibility" to "off". @end deftypefn __axes_limits__ --- 11972,11978 ---- @c __add_default_menu__ scripts/plot/private/__add_default_menu__.m -*- texinfo -*- @deftypefn {Function File} {} __add_default_menu__ (@var{fig}) ! Add default menu to figure. All uimenu handles have set their property "handlevisibility" to "off". @end deftypefn __axes_limits__ *************** *** 12234,12240 **** @c polyreduce scripts/polynomial/polyreduce.m -*- texinfo -*- @deftypefn {Function File} {} polyreduce (@var{c}) ! Reduces a polynomial coefficient vector to a minimum number of terms by stripping off any leading zeros. @seealso{poly, roots, conv, deconv, residue, filter, polyval, polyvalm, polyderiv, polyint} --- 12469,12475 ---- @c polyreduce scripts/polynomial/polyreduce.m -*- texinfo -*- @deftypefn {Function File} {} polyreduce (@var{c}) ! Reduce a polynomial coefficient vector to a minimum number of terms by stripping off any leading zeros. @seealso{poly, roots, conv, deconv, residue, filter, polyval, polyvalm, polyderiv, polyint} *************** *** 12293,12299 **** -*- texinfo -*- @deftypefn {Function File} {@var{ppd} =} ppder (@var{pp}) Compute the piecewise derivative of the piecewise polynomial struct @var{pp}. ! @seealso{mkpp,ppval,ppint} @end deftypefn ppint @c ppint scripts/polynomial/ppint.m --- 12528,12534 ---- -*- texinfo -*- @deftypefn {Function File} {@var{ppd} =} ppder (@var{pp}) Compute the piecewise derivative of the piecewise polynomial struct @var{pp}. ! @seealso{mkpp, ppval, ppint} @end deftypefn ppint @c ppint scripts/polynomial/ppint.m *************** *** 12302,12308 **** @deftypefnx {Function File} {@var{ppi} =} ppint (@var{pp}, @var{c}) Compute the integral of the piecewise polynomial struct @var{pp}. @var{c}, if given, is the constant of integration. ! @seealso{mkpp,ppval,ppder} @end deftypefn ppjumps @c ppjumps scripts/polynomial/ppjumps.m --- 12537,12543 ---- @deftypefnx {Function File} {@var{ppi} =} ppint (@var{pp}, @var{c}) Compute the integral of the piecewise polynomial struct @var{pp}. @var{c}, if given, is the constant of integration. ! @seealso{mkpp, ppval, ppder} @end deftypefn ppjumps @c ppjumps scripts/polynomial/ppjumps.m *************** *** 12986,12991 **** --- 13221,13227 ---- overlap-add method to filter @var{x} with @var{b} using an N-point FFT. If @var{x} is a matrix, filter each column of the matrix. + @seealso{filter, filter2} @end deftypefn fftshift @c fftshift scripts/signal/fftshift.m *************** *** 13161,13167 **** @item range: "@nospell{onesided}" computes spectrum from [0..nfft/2+1]. "@nospell{twosided}" computes spectrum from [0..nfft-1]. These strings ! can appear at any position in the list input arguments after window. @item Pxx: one-, or two-sided power spectrum. --- 13397,13403 ---- @item range: "@nospell{onesided}" computes spectrum from [0..nfft/2+1]. "@nospell{twosided}" computes spectrum from [0..nfft-1]. These strings ! can appear at any position in the list input arguments after window. @item Pxx: one-, or two-sided power spectrum. *************** *** 13170,13189 **** @item f: frequency [0..Fs) (two-sided) or [0..Fs/2] one-sided. @end itemize @end deftypefn - rectangle_lw - @c rectangle_lw scripts/signal/rectangle_lw.m - -*- texinfo -*- - @deftypefn {Function File} {} rectangle_lw (@var{n}, @var{b}) - Rectangular lag window. Subfunction used for spectral density - estimation. - @end deftypefn - rectangle_sw - @c rectangle_sw scripts/signal/rectangle_sw.m - -*- texinfo -*- - @deftypefn {Function File} {} rectangle_sw (@var{n}, @var{b}) - Rectangular spectral window. Subfunction used for spectral density - estimation. - @end deftypefn sinc @c sinc scripts/signal/sinc.m -*- texinfo -*- --- 13406,13411 ---- *************** *** 13301,13320 **** [@var{y}, @var{c}] = stft (@var{x} , @dots{}) @end example @end deftypefn - triangle_lw - @c triangle_lw scripts/signal/triangle_lw.m - -*- texinfo -*- - @deftypefn {Function File} {} triangle_lw (@var{n}, @var{b}) - Triangular lag window. Subfunction used for spectral density - estimation. - @end deftypefn - triangle_sw - @c triangle_sw scripts/signal/triangle_sw.m - -*- texinfo -*- - @deftypefn {Function File} {} triangle_sw (@var{n}, @var{b}) - Triangular spectral window. Subfunction used for spectral density - estimation. - @end deftypefn unwrap @c unwrap scripts/signal/unwrap.m -*- texinfo -*- --- 13523,13528 ---- *************** *** 13338,13343 **** --- 13546,13579 ---- Returns the AR coefficients, @var{a}, and the variance of white noise, @var{v}. @end deftypefn + rectangle_lw + @c rectangle_lw scripts/signal/private/rectangle_lw.m + -*- texinfo -*- + @deftypefn {Function File} {} rectangle_lw (@var{n}, @var{b}) + Rectangular lag window. Subfunction used for spectral density + estimation. + @end deftypefn + rectangle_sw + @c rectangle_sw scripts/signal/private/rectangle_sw.m + -*- texinfo -*- + @deftypefn {Function File} {} rectangle_sw (@var{n}, @var{b}) + Rectangular spectral window. Subfunction used for spectral density + estimation. + @end deftypefn + triangle_lw + @c triangle_lw scripts/signal/private/triangle_lw.m + -*- texinfo -*- + @deftypefn {Function File} {} triangle_lw (@var{n}, @var{b}) + Triangular lag window. Subfunction used for spectral density + estimation. + @end deftypefn + triangle_sw + @c triangle_sw scripts/signal/private/triangle_sw.m + -*- texinfo -*- + @deftypefn {Function File} {} triangle_sw (@var{n}, @var{b}) + Triangular spectral window. Subfunction used for spectral density + estimation. + @end deftypefn bicgstab @c bicgstab scripts/sparse/bicgstab.m -*- texinfo -*- *************** *** 13388,13394 **** @c colperm scripts/sparse/colperm.m -*- texinfo -*- @deftypefn {Function File} {@var{p} =} colperm (@var{s}) ! Returns the column permutations such that the columns of @code{@var{s} (:, @var{p})} are ordered in terms of increase number of non-zero elements. If @var{s} is symmetric, then @var{p} is chosen such that @code{@var{s} (@var{p}, @var{p})} orders the rows and --- 13624,13630 ---- @c colperm scripts/sparse/colperm.m -*- texinfo -*- @deftypefn {Function File} {@var{p} =} colperm (@var{s}) ! Return the column permutations such that the columns of @code{@var{s} (:, @var{p})} are ordered in terms of increase number of non-zero elements. If @var{s} is symmetric, then @var{p} is chosen such that @code{@var{s} (@var{p}, @var{p})} orders the rows and *************** *** 13426,13432 **** @c nonzeros scripts/sparse/nonzeros.m -*- texinfo -*- @deftypefn {Function File} {} nonzeros (@var{s}) ! Returns a vector of the non-zero values of the sparse matrix @var{s}. @end deftypefn pcg @c pcg scripts/sparse/pcg.m --- 13662,13668 ---- @c nonzeros scripts/sparse/nonzeros.m -*- texinfo -*- @deftypefn {Function File} {} nonzeros (@var{s}) ! Return a vector of the non-zero values of the sparse matrix @var{s}. @end deftypefn pcg @c pcg scripts/sparse/pcg.m *************** *** 13783,13789 **** @c spaugment scripts/sparse/spaugment.m -*- texinfo -*- @deftypefn {Function File} {@var{s} =} spaugment (@var{A}, @var{c}) ! Creates the augmented matrix of @var{A}. This is given by @example @group --- 14019,14025 ---- @c spaugment scripts/sparse/spaugment.m -*- texinfo -*- @deftypefn {Function File} {@var{s} =} spaugment (@var{A}, @var{c}) ! Create the augmented matrix of @var{A}. This is given by @example @group *************** *** 13890,13896 **** @deftypefn {Function File} {@var{y} =} speye (@var{m}) @deftypefnx {Function File} {@var{y} =} speye (@var{m}, @var{n}) @deftypefnx {Function File} {@var{y} =} speye (@var{sz}) ! Returns a sparse identity matrix. This is significantly more efficient than @code{sparse (eye (@var{m}))} as the full matrix is not constructed. --- 14126,14132 ---- @deftypefn {Function File} {@var{y} =} speye (@var{m}) @deftypefnx {Function File} {@var{y} =} speye (@var{m}, @var{n}) @deftypefnx {Function File} {@var{y} =} speye (@var{sz}) ! Return a sparse identity matrix. This is significantly more efficient than @code{sparse (eye (@var{m}))} as the full matrix is not constructed. *************** *** 14081,14094 **** permutation. The complexity of the algorithm is O(n) in terms of time and memory requirements. ! @seealso{etreeplot, gplot,treeplot} @end deftypefn treeplot @c treeplot scripts/sparse/treeplot.m -*- texinfo -*- @deftypefn {Function File} {} treeplot (@var{tree}) @deftypefnx {Function File} {} treeplot (@var{tree}, @var{node_style}, @var{edge_style}) ! Produces a graph of tree or forest. The first argument is vector of predecessors, optional parameters @var{node_style} and @var{edge_style} define the output style. The complexity of the algorithm is O(n) in terms of is time and memory requirements. --- 14317,14330 ---- permutation. The complexity of the algorithm is O(n) in terms of time and memory requirements. ! @seealso{etreeplot, gplot, treeplot} @end deftypefn treeplot @c treeplot scripts/sparse/treeplot.m -*- texinfo -*- @deftypefn {Function File} {} treeplot (@var{tree}) @deftypefnx {Function File} {} treeplot (@var{tree}, @var{node_style}, @var{edge_style}) ! Produce a graph of tree or forest. The first argument is vector of predecessors, optional parameters @var{node_style} and @var{edge_style} define the output style. The complexity of the algorithm is O(n) in terms of is time and memory requirements. *************** *** 14191,14206 **** Return the natural logarithm of the Beta function, @tex $$ ! B (a, b) = \log {\Gamma (a) \Gamma (b) \over \Gamma (a + b)}. $$ @end tex @ifnottex @example ! betaln (a, b) = gammaln (a) + gammaln (b) - gammaln (a + b) @end example @end ifnottex @seealso{beta, betainc, gammaln} @end deftypefn factor --- 14427,14443 ---- Return the natural logarithm of the Beta function, @tex $$ ! {\rm betaln} (a, b) = \ln (B (a,b)) \equiv \ln ({\Gamma (a) \Gamma (b) \over \Gamma (a + b)}). $$ @end tex @ifnottex @example ! betaln (a, b) = log (beta (a, b)) @end example @end ifnottex + calculated in a way to reduce the occurrence of underflow. @seealso{beta, betainc, gammaln} @end deftypefn factor *************** *** 14538,14576 **** @c hadamard scripts/special-matrix/hadamard.m -*- texinfo -*- @deftypefn {Function File} {} hadamard (@var{n}) ! Construct a Hadamard matrix @var{Hn} of size @var{n}-by-@var{n}. The ! size @var{n} must be of the form @code{2 ^ @var{k} * @var{p}} in which ! @var{p} is one of 1, 12, 20 or 28. The returned matrix is normalized, ! meaning @code{Hn(:,1) == 1} and @code{Hn(1,:) == 1}. Some of the properties of Hadamard matrices are: @itemize @bullet @item ! @code{kron (@var{Hm}, @var{Hn})} is a Hadamard matrix of size ! @var{m}-by-@var{n}. @item ! @code{Hn * Hn' == @var{n} * eye (@var{n})}. @item ! The rows of @var{Hn} are orthogonal. @item ! @code{det (@var{A}) <= abs(det (@var{Hn}))} for all @var{A} with ! @code{abs (@var{A} (@var{i}, @var{j})) <= 1}. @item ! Multiply any row or column by -1 and still have a Hadamard matrix. @end itemize ! @end deftypefn hankel @c hankel scripts/special-matrix/hankel.m -*- texinfo -*- @deftypefn {Function File} {} hankel (@var{c}) @deftypefnx {Function File} {} hankel (@var{c}, @var{r}) ! Return the Hankel matrix constructed given the first column @var{c}, and (optionally) the last row @var{r}. If the last element of @var{c} is not the same as the first element of @var{r}, the last element of @var{c} is used. If the second argument is omitted, it is assumed to --- 14775,14813 ---- @c hadamard scripts/special-matrix/hadamard.m -*- texinfo -*- @deftypefn {Function File} {} hadamard (@var{n}) ! Construct a Hadamard matrix (@nospell{Hn}) of size @var{n}-by-@var{n}. The ! size @var{n} must be of the form @math{2^k * p} in which ! p is one of 1, 12, 20 or 28. The returned matrix is normalized, ! meaning @w{@code{Hn(:,1) == 1}} and @w{@code{Hn(1,:) == 1}}. Some of the properties of Hadamard matrices are: @itemize @bullet @item ! @code{kron (Hm, Hn)} is a Hadamard matrix of size @var{m}-by-@var{n}. @item ! @code{Hn * Hn' = @var{n} * eye (@var{n})}. @item ! The rows of @nospell{Hn} are orthogonal. @item ! @code{det (@var{A}) <= abs (det (Hn))} for all @var{A} with ! @w{@code{abs (@var{A}(i, j)) <= 1}}. @item ! Multiplying any row or column by -1 and the matrix will remain a Hadamard ! matrix. @end itemize ! @seealso{compan, hankel, toeplitz} @end deftypefn hankel @c hankel scripts/special-matrix/hankel.m -*- texinfo -*- @deftypefn {Function File} {} hankel (@var{c}) @deftypefnx {Function File} {} hankel (@var{c}, @var{r}) ! Return the Hankel matrix constructed from the first column @var{c}, and (optionally) the last row @var{r}. If the last element of @var{c} is not the same as the first element of @var{r}, the last element of @var{c} is used. If the second argument is omitted, it is assumed to *************** *** 14593,14612 **** @end example @end ifnottex ! @seealso{vander, sylvester_matrix, hilb, invhilb, toeplitz} @end deftypefn hilb @c hilb scripts/special-matrix/hilb.m -*- texinfo -*- @deftypefn {Function File} {} hilb (@var{n}) ! Return the Hilbert matrix of order @var{n}. The ! @tex ! $i,\,j$ ! @end tex ! @ifnottex ! i, j ! @end ifnottex ! element of a Hilbert matrix is defined as @tex $$ H (i, j) = {1 \over (i + j - 1)} --- 14830,14843 ---- @end example @end ifnottex ! @seealso{hadamard, toeplitz} @end deftypefn hilb @c hilb scripts/special-matrix/hilb.m -*- texinfo -*- @deftypefn {Function File} {} hilb (@var{n}) ! Return the Hilbert matrix of order @var{n}. The @math{i,j} element ! of a Hilbert matrix is defined as @tex $$ H (i, j) = {1 \over (i + j - 1)} *************** *** 14619,14625 **** @end example @end ifnottex ! @seealso{hankel, vander, sylvester_matrix, invhilb, toeplitz} @end deftypefn invhilb @c invhilb scripts/special-matrix/invhilb.m --- 14850,14871 ---- @end example @end ifnottex ! ! Hilbert matrices are close to being singular which make them difficult to ! invert with numerical routines. ! Comparing the condition number of a random matrix 5x5 matrix with that of ! a Hilbert matrix of order 5 reveals just how difficult the problem is. ! ! @example ! @group ! cond (rand (5)) ! @result{} 14.392 ! cond (hilb (5)) ! @result{} 4.7661e+05 ! @end group ! @end example ! ! @seealso{invhilb} @end deftypefn invhilb @c invhilb scripts/special-matrix/invhilb.m *************** *** 14675,14708 **** Compare this with the numerical calculation of @code{inverse (hilb (n))}, which suffers from the ill-conditioning of the Hilbert matrix, and the finite precision of your computer's floating point arithmetic. ! @seealso{hilb, hankel, vander, sylvester_matrix, toeplitz} @end deftypefn magic @c magic scripts/special-matrix/magic.m -*- texinfo -*- @deftypefn {Function File} {} magic (@var{n}) ! Create an @var{n}-by-@var{n} magic square. Note that @code{magic ! (@var{2})} is undefined since there is no 2-by-2 magic square. @end deftypefn pascal @c pascal scripts/special-matrix/pascal.m -*- texinfo -*- @deftypefn {Function File} {} pascal (@var{n}) @deftypefnx {Function File} {} pascal (@var{n}, @var{t}) ! Return the Pascal matrix of order @var{n} if @code{@var{t} = 0}. ! @var{t} defaults to 0. Return lower triangular Cholesky@tie{}factor of ! the Pascal matrix if @code{@var{t} = 1}. This matrix is its own ! inverse, that is @code{pascal (@var{n}, 1) ^ 2 == eye (@var{n})}. ! If @code{@var{t} = -1}, return its absolute value. This is the ! standard Pascal triangle as a lower-triangular matrix. ! If @code{@var{t} = 2}, return a transposed and permuted version of ! @code{pascal (@var{n}, 1)}, which is the cube-root of the identity ! matrix. That is @code{pascal (@var{n}, 2) ^ 3 == eye (@var{n})}. ! @seealso{hankel, vander, sylvester_matrix, hilb, invhilb, toeplitz ! hadamard, wilkinson, compan, rosser} @end deftypefn rosser @c rosser scripts/special-matrix/rosser.m --- 14921,14955 ---- Compare this with the numerical calculation of @code{inverse (hilb (n))}, which suffers from the ill-conditioning of the Hilbert matrix, and the finite precision of your computer's floating point arithmetic. ! @seealso{hilb} @end deftypefn magic @c magic scripts/special-matrix/magic.m -*- texinfo -*- @deftypefn {Function File} {} magic (@var{n}) ! Create an @var{n}-by-@var{n} magic square. A magic square is an arrangement ! of the integers @code{1:n^2} such that the row sums, column sums, and ! diagonal sums are all equal to the same value. + Note: @var{n} must be greater than 2 for the magic square to exist. @end deftypefn pascal @c pascal scripts/special-matrix/pascal.m -*- texinfo -*- @deftypefn {Function File} {} pascal (@var{n}) @deftypefnx {Function File} {} pascal (@var{n}, @var{t}) ! Return the Pascal matrix of order @var{n} if @code{@var{t} = 0}. @var{t} ! defaults to 0. Return the pseudo-lower triangular Cholesky@tie{}factor of ! the Pascal matrix if @code{@var{t} = 1} (The sign of some columns may be ! negative). This matrix is its own inverse, that is @code{pascal (@var{n}, ! 1) ^ 2 == eye (@var{n})}. If @code{@var{t} = -1}, return the true ! Cholesky@tie{}factor with strictly positive values on the diagonal. If ! @code{@var{t} = 2}, return a transposed and permuted version of @code{pascal ! (@var{n}, 1)}, which is the cube root of the identity matrix. That is, ! @code{pascal (@var{n}, 2) ^ 3 == eye (@var{n})}. ! @seealso{chol} @end deftypefn rosser @c rosser scripts/special-matrix/rosser.m *************** *** 14711,14718 **** Return the Rosser matrix. This is a difficult test case used to evaluate eigenvalue algorithms. ! @seealso{hankel, vander, sylvester_matrix, hilb, invhilb, toeplitz ! hadamard, wilkinson, compan, pascal} @end deftypefn sylvester_matrix @c sylvester_matrix scripts/special-matrix/sylvester_matrix.m --- 14958,14964 ---- Return the Rosser matrix. This is a difficult test case used to evaluate eigenvalue algorithms. ! @seealso{wilkinson, eig} @end deftypefn sylvester_matrix @c sylvester_matrix scripts/special-matrix/sylvester_matrix.m *************** *** 14723,14740 **** $n = 2^k$. @end tex @ifnottex ! n = 2^k. @end ifnottex ! @seealso{hankel, vander, hilb, invhilb, toeplitz} @end deftypefn toeplitz @c toeplitz scripts/special-matrix/toeplitz.m -*- texinfo -*- @deftypefn {Function File} {} toeplitz (@var{c}) @deftypefnx {Function File} {} toeplitz (@var{c}, @var{r}) ! Return the Toeplitz matrix constructed given the first column @var{c}, ! and (optionally) the first row @var{r}. If the first element of @var{c} ! is not the same as the first element of @var{r}, the first element of @var{c} is used. If the second argument is omitted, the first row is taken to be the same as the first column. --- 14969,14987 ---- $n = 2^k$. @end tex @ifnottex ! n = 2^@var{k}. @end ifnottex ! ! @seealso{toeplitz, hankel} @end deftypefn toeplitz @c toeplitz scripts/special-matrix/toeplitz.m -*- texinfo -*- @deftypefn {Function File} {} toeplitz (@var{c}) @deftypefnx {Function File} {} toeplitz (@var{c}, @var{r}) ! Return the Toeplitz matrix constructed from the first column @var{c}, ! and (optionally) the first row @var{r}. If the first element of @var{r} ! is not the same as the first element of @var{c}, the first element of @var{c} is used. If the second argument is omitted, the first row is taken to be the same as the first column. *************** *** 14763,14769 **** @end example @end ifnottex ! @seealso{hankel, vander, sylvester_matrix, hilb, invhilb} @end deftypefn vander @c vander scripts/special-matrix/vander.m --- 15010,15016 ---- @end example @end ifnottex ! @seealso{hankel} @end deftypefn vander @c vander scripts/special-matrix/vander.m *************** *** 14797,14803 **** @end example @end ifnottex ! @seealso{hankel, sylvester_matrix, hilb, invhilb, toeplitz} @end deftypefn wilkinson @c wilkinson scripts/special-matrix/wilkinson.m --- 15044,15050 ---- @end example @end ifnottex ! @seealso{polyfit} @end deftypefn wilkinson @c wilkinson scripts/special-matrix/wilkinson.m *************** *** 14805,14814 **** @deftypefn {Function File} {} wilkinson (@var{n}) Return the Wilkinson matrix of order @var{n}. Wilkinson matrices are symmetric and tridiagonal with pairs of nearly, but not exactly, equal ! eigenvalues. ! @seealso{hankel, vander, sylvester_matrix, hilb, invhilb, toeplitz ! hadamard, rosser, compan, pascal} @end deftypefn __finish__ @c __finish__ scripts/startup/__finish__.m --- 15052,15061 ---- @deftypefn {Function File} {} wilkinson (@var{n}) Return the Wilkinson matrix of order @var{n}. Wilkinson matrices are symmetric and tridiagonal with pairs of nearly, but not exactly, equal ! eigenvalues. They are useful in testing the behavior and performance ! of eigenvalue solvers. ! @seealso{rosser, eig} @end deftypefn __finish__ @c __finish__ scripts/startup/__finish__.m *************** *** 15102,15108 **** stdnormal distribution and is sometimes referred to as "excess kurtosis". To calculate kurtosis without the normalization factor of @math{-3} use @code{moment (@var{x}, 4, 'c') / std (@var{x})^4}. ! @seealso{var,skewness,moment} @end deftypefn logit @c logit scripts/statistics/base/logit.m --- 15349,15355 ---- stdnormal distribution and is sometimes referred to as "excess kurtosis". To calculate kurtosis without the normalization factor of @math{-3} use @code{moment (@var{x}, 4, 'c') / std (@var{x})^4}. ! @seealso{var, skewness, moment} @end deftypefn logit @c logit scripts/statistics/base/logit.m *************** *** 15171,15177 **** Both @var{dim} and @var{opt} are optional. If both are supplied, either may appear first. ! @seealso{median,mode} @end deftypefn meansq @c meansq scripts/statistics/base/meansq.m --- 15418,15424 ---- Both @var{dim} and @var{opt} are optional. If both are supplied, either may appear first. ! @seealso{median, mode} @end deftypefn meansq @c meansq scripts/statistics/base/meansq.m *************** *** 15198,15204 **** of each column. If the optional argument @var{dim} is given, operate along this dimension. ! @seealso{var,std,moment} @end deftypefn median @c median scripts/statistics/base/median.m --- 15445,15451 ---- of each column. If the optional argument @var{dim} is given, operate along this dimension. ! @seealso{var, std, moment} @end deftypefn median @c median scripts/statistics/base/median.m *************** *** 15229,15235 **** If @var{x} is a matrix, compute the median value for each column and return them in a row vector. If the optional @var{dim} argument is given, operate along this dimension. ! @seealso{mean,mode} @end deftypefn mode @c mode scripts/statistics/base/mode.m --- 15476,15482 ---- If @var{x} is a matrix, compute the median value for each column and return them in a row vector. If the optional @var{dim} argument is given, operate along this dimension. ! @seealso{mean, mode} @end deftypefn mode @c mode scripts/statistics/base/mode.m *************** *** 15247,15253 **** The return variable @var{f} is the number of occurrences of the mode in in the dataset. The cell array @var{c} contains all of the elements with the maximum frequency. ! @seealso{mean,median} @end deftypefn moment @c moment scripts/statistics/base/moment.m --- 15494,15500 ---- The return variable @var{f} is the number of occurrences of the mode in in the dataset. The cell array @var{c} contains all of the elements with the maximum frequency. ! @seealso{mean, median} @end deftypefn moment @c moment scripts/statistics/base/moment.m *************** *** 15334,15340 **** If the optional argument @var{dim} is given, operate along this dimension. If both @var{type} and @var{dim} are given they may appear in any order. ! @seealso{var,skewness,kurtosis} @end deftypefn ols @c ols scripts/statistics/base/ols.m --- 15581,15587 ---- If the optional argument @var{dim} is given, operate along this dimension. If both @var{type} and @var{dim} are given they may appear in any order. ! @seealso{var, skewness, kurtosis} @end deftypefn ols @c ols scripts/statistics/base/ols.m *************** *** 15428,15436 **** prctile @c prctile scripts/statistics/base/prctile.m -*- texinfo -*- ! @deftypefn {Function File} {@var{y} =} prctile (@var{x}, @var{p}) @deftypefnx {Function File} {@var{q} =} prctile (@var{x}, @var{p}, @var{dim}) ! For a sample @var{x}, compute the quantiles, @var{y}, corresponding to the cumulative probability values, @var{p}, in percent. All non-numeric values (NaNs) of @var{x} are ignored. --- 15675,15684 ---- prctile @c prctile scripts/statistics/base/prctile.m -*- texinfo -*- ! @deftypefn {Function File} {@var{q} =} prctile (@var{x}) ! @deftypefnx {Function File} {@var{q} =} prctile (@var{x}, @var{p}) @deftypefnx {Function File} {@var{q} =} prctile (@var{x}, @var{p}, @var{dim}) ! For a sample @var{x}, compute the quantiles, @var{q}, corresponding to the cumulative probability values, @var{p}, in percent. All non-numeric values (NaNs) of @var{x} are ignored. *************** *** 15438,15447 **** return them in a matrix, such that the i-th row of @var{y} contains the @var{p}(i)th percentiles of each column of @var{x}. The optional argument @var{dim} determines the dimension along which the percentiles are calculated. If @var{dim} is omitted, and @var{x} is a vector or matrix, it defaults to 1 (column-wise quantiles). When ! @var{x} is an N-d array, @var{dim} defaults to the first non-singleton dimension. @seealso{quantile} @end deftypefn --- 15686,15696 ---- return them in a matrix, such that the i-th row of @var{y} contains the @var{p}(i)th percentiles of each column of @var{x}. + If @var{p} is unspecified, return the quantiles for @code{[0 25 50 75 100]}. The optional argument @var{dim} determines the dimension along which the percentiles are calculated. If @var{dim} is omitted, and @var{x} is a vector or matrix, it defaults to 1 (column-wise quantiles). When ! @var{x} is an N-D array, @var{dim} defaults to the first non-singleton dimension. @seealso{quantile} @end deftypefn *************** *** 15458,15463 **** --- 15707,15713 ---- @deftypefn {Function File} {[@var{q}, @var{s}] =} qqplot (@var{x}) @deftypefnx {Function File} {[@var{q}, @var{s}] =} qqplot (@var{x}, @var{dist}) @deftypefnx {Function File} {[@var{q}, @var{s}] =} qqplot (@var{x}, @var{dist}, @var{params}) + @deftypefnx {Function File} {} qqplot (@dots{}) Perform a QQ-plot (quantile plot). If F is the CDF of the distribution @var{dist} with parameters *************** *** 15475,15481 **** distribution on [2,4] and @var{x}, use @example ! qqplot (x, "uniform", 2, 4) @end example @noindent --- 15725,15731 ---- distribution on [2,4] and @var{x}, use @example ! qqplot (x, "unif", 2, 4) @end example @noindent *************** *** 15502,15508 **** The optional argument @var{dim} determines the dimension along which the quantiles are calculated. If @var{dim} is omitted, and @var{x} is a vector or matrix, it defaults to 1 (column-wise quantiles). If ! @var{x} is an N-d array, @var{dim} defaults to the first non-singleton dimension. The methods available to calculate sample quantiles are the nine methods --- 15752,15758 ---- The optional argument @var{dim} determines the dimension along which the quantiles are calculated. If @var{dim} is omitted, and @var{x} is a vector or matrix, it defaults to 1 (column-wise quantiles). If ! @var{x} is an N-D array, @var{dim} defaults to the first non-singleton dimension. The methods available to calculate sample quantiles are the nine methods *************** *** 15558,15563 **** --- 15808,15823 ---- @item R: A Language and Environment for Statistical Computing; @url{http://cran.r-project.org/doc/manuals/fullrefman.pdf}. @end itemize + + Examples: + + @example + @group + x = randi (1000, [10, 1]); # Create random empirical data in range 1-1000 + q = quantile (x, [0, 1]); # Return minimum, maximum of empirical distribution + q = quantile (x, [0.25 0.5 0.75]); # Return quartiles of empirical distribution + @end group + @end example @seealso{prctile} @end deftypefn range *************** *** 15583,15589 **** Return the ranks of @var{x} along the first non-singleton dimension adjusted for ties. If the optional argument @var{dim} is given, operate along this dimension. ! @seealso{spearman,kendall} @end deftypefn run_count @c run_count scripts/statistics/base/run_count.m --- 15843,15849 ---- Return the ranks of @var{x} along the first non-singleton dimension adjusted for ties. If the optional argument @var{dim} is given, operate along this dimension. ! @seealso{spearman, kendall} @end deftypefn run_count @c run_count scripts/statistics/base/run_count.m *************** *** 15597,15602 **** --- 15857,15876 ---- If the optional argument @var{dim} is given then operate along this dimension. @end deftypefn + runlength + @c runlength scripts/statistics/base/runlength.m + -*- texinfo -*- + @deftypefn {Function File} {[count, value] =} runlength (@var{x}) + Find the lengths of all sequences of common values. Return the + vector of lengths and the value that was repeated. + + @example + @group + runlength ([2, 2, 0, 4, 4, 4, 0, 1, 1, 1, 1]) + @result{} [2, 1, 3, 1, 4] + @end group + @end example + @end deftypefn skewness @c skewness scripts/statistics/base/skewness.m -*- texinfo -*- *************** *** 15621,15627 **** If @var{x} is a matrix, return the skewness along the first non-singleton dimension of the matrix. If the optional @var{dim} argument is given, operate along this dimension. ! @seealso{var,kurtosis,moment} @end deftypefn spearman @c spearman scripts/statistics/base/spearman.m --- 15895,15901 ---- If @var{x} is a matrix, return the skewness along the first non-singleton dimension of the matrix. If the optional @var{dim} argument is given, operate along this dimension. ! @seealso{var, kurtosis, moment} @end deftypefn spearman @c spearman scripts/statistics/base/spearman.m *************** *** 15654,15660 **** If @var{x} is a matrix, calculate statistics over the first non-singleton dimension. If the optional argument @var{dim} is given, operate along this dimension. ! @seealso{min,max,median,mean,std,skewness,kurtosis} @end deftypefn std @c std scripts/statistics/base/std.m --- 15928,15934 ---- If @var{x} is a matrix, calculate statistics over the first non-singleton dimension. If the optional argument @var{dim} is given, operate along this dimension. ! @seealso{min, max, median, mean, std, skewness, kurtosis} @end deftypefn std @c std scripts/statistics/base/std.m *************** *** 15761,15767 **** @end table If the optional argument @var{dim} is given, operate along this dimension. ! @seealso{cov,std,skewness,kurtosis,moment} @end deftypefn betacdf @c betacdf scripts/statistics/distributions/betacdf.m --- 16035,16041 ---- @end table If the optional argument @var{dim} is given, operate along this dimension. ! @seealso{cov, std, skewness, kurtosis, moment} @end deftypefn betacdf @c betacdf scripts/statistics/distributions/betacdf.m *************** *** 16522,16530 **** @deftypefn {Function File} {} unidrnd (@var{mx}); @deftypefnx {Function File} {} unidrnd (@var{mx}, @var{v}); @deftypefnx {Function File} {} unidrnd (@var{mx}, @var{m}, @var{n}, @dots{}); ! Return random values from discrete uniform distribution, with maximum ! value(s) given by the integer @var{mx}, which may be a scalar or ! multi-dimensional array. If @var{mx} is a scalar, the size of the result is specified by the vector @var{v}, or by the optional arguments @var{m}, @var{n}, --- 16796,16804 ---- @deftypefn {Function File} {} unidrnd (@var{mx}); @deftypefnx {Function File} {} unidrnd (@var{mx}, @var{v}); @deftypefnx {Function File} {} unidrnd (@var{mx}, @var{m}, @var{n}, @dots{}); ! Return random values from a discrete uniform distribution with maximum ! value(s) given by the integer @var{mx} (which may be a scalar or ! multi-dimensional array). If @var{mx} is a scalar, the size of the result is specified by the vector @var{v}, or by the optional arguments @var{m}, @var{n}, *************** *** 16536,16559 **** -*- texinfo -*- @deftypefn {Function File} {} unidcdf (@var{x}, @var{v}) For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of a univariate discrete distribution which assumes the values in @var{v} with equal probability. @end deftypefn unidinv @c unidinv scripts/statistics/distributions/unidinv.m -*- texinfo -*- @deftypefn {Function File} {} unidinv (@var{x}, @var{v}) For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the univariate discrete distribution which assumes the ! values in @var{v} with equal probability @end deftypefn unidpdf @c unidpdf scripts/statistics/distributions/unidpdf.m -*- texinfo -*- @deftypefn {Function File} {} unidpdf (@var{x}, @var{v}) For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of a univariate discrete distribution which assumes the values in @var{v} with equal probability. @end deftypefn unifrnd @c unifrnd scripts/statistics/distributions/unifrnd.m --- 16810,16839 ---- -*- texinfo -*- @deftypefn {Function File} {} unidcdf (@var{x}, @var{v}) For each element of @var{x}, compute the cumulative distribution ! function (CDF) at @var{x} of a discrete uniform distribution which assumes the values in @var{v} with equal probability. + If @var{v} is a scalar then @code{1/@var{v}} is the probability of a + single element. @end deftypefn unidinv @c unidinv scripts/statistics/distributions/unidinv.m -*- texinfo -*- @deftypefn {Function File} {} unidinv (@var{x}, @var{v}) For each component of @var{x}, compute the quantile (the inverse of ! the CDF) at @var{x} of the discrete uniform distribution which assumes the ! values in @var{v} with equal probability. ! If @var{v} is a scalar then @code{1/@var{v}} is the probability of a ! single element. @end deftypefn unidpdf @c unidpdf scripts/statistics/distributions/unidpdf.m -*- texinfo -*- @deftypefn {Function File} {} unidpdf (@var{x}, @var{v}) For each element of @var{x}, compute the probability density function ! (PDF) at @var{x} of a discrete uniform distribution which assumes the values in @var{v} with equal probability. + If @var{v} is a scalar then @code{1/@var{v}} is the probability of a + single element. @end deftypefn unifrnd @c unifrnd scripts/statistics/distributions/unifrnd.m *************** *** 16728,16745 **** given @var{x}. @end deftypefn logistic_regression_derivatives ! @c logistic_regression_derivatives scripts/statistics/models/logistic_regression_derivatives.m -*- texinfo -*- @deftypefn {Function File} {[@var{dl}, @var{d2l}] =} logistic_regression_derivatives (@var{x}, @var{z}, @var{z1}, @var{g}, @var{g1}, @var{p}) ! Called by logistic_regression. Calculates derivates of the ! log-likelihood for ordinal logistic regression model. @end deftypefn logistic_regression_likelihood ! @c logistic_regression_likelihood scripts/statistics/models/logistic_regression_likelihood.m -*- texinfo -*- @deftypefn {Function File} {[@var{g}, @var{g1}, @var{p}, @var{dev}] =} logistic_regression_likelihood (@var{y}, @var{x}, @var{beta}, @var{z}, @var{z1}) ! Calculates likelihood for the ordinal logistic regression model. ! Called by logistic_regression. @end deftypefn anova @c anova scripts/statistics/tests/anova.m --- 17008,17028 ---- given @var{x}. @end deftypefn logistic_regression_derivatives ! @c logistic_regression_derivatives scripts/statistics/models/private/logistic_regression_derivatives.m -*- texinfo -*- @deftypefn {Function File} {[@var{dl}, @var{d2l}] =} logistic_regression_derivatives (@var{x}, @var{z}, @var{z1}, @var{g}, @var{g1}, @var{p}) ! Calculate derivatives of the log-likelihood for ordinal logistic regression ! model. ! Private function called by @code{logistic_regression}. ! @seealso{logistic_regression} @end deftypefn logistic_regression_likelihood ! @c logistic_regression_likelihood scripts/statistics/models/private/logistic_regression_likelihood.m -*- texinfo -*- @deftypefn {Function File} {[@var{g}, @var{g1}, @var{p}, @var{dev}] =} logistic_regression_likelihood (@var{y}, @var{x}, @var{beta}, @var{z}, @var{z1}) ! Calculate the likelihood for the ordinal logistic regression model. ! Private function called by @code{logistic_regression}. ! @seealso{logistic_regression} @end deftypefn anova @c anova scripts/statistics/tests/anova.m *************** *** 17568,17577 **** True for characters that are alphabetic or digits. @item "lower" ! True for lower-case letters. @item "upper" ! True for upper-case letters. @item "digit" True for decimal digits (0-9). --- 17851,17860 ---- True for characters that are alphabetic or digits. @item "lower" ! True for lowercase letters. @item "upper" ! True for uppercase letters. @item "digit" True for decimal digits (0-9). *************** *** 18022,18033 **** @var{expected})}. If @var{expected} is zero @var{tol} will always be used as an absolute tolerance. @end table ! @seealso{test} @end deftypefn demo @c demo scripts/testfun/demo.m -*- texinfo -*- ! @deftypefn {Function File} {} demo ('@var{name}', @var{n}) Runs any examples associated with the function '@var{name}'. Examples are stored in the script file, or in a file with the same --- 18305,18317 ---- @var{expected})}. If @var{expected} is zero @var{tol} will always be used as an absolute tolerance. @end table ! @seealso{test, fail} @end deftypefn demo @c demo scripts/testfun/demo.m -*- texinfo -*- ! @deftypefn {Command} {} demo @var{name} @var{n} ! @deftypefnx {Function File} {} demo ('@var{name}', @var{n}) Runs any examples associated with the function '@var{name}'. Examples are stored in the script file, or in a file with the same *************** *** 18087,18093 **** example @c example scripts/testfun/example.m -*- texinfo -*- ! @deftypefn {Function File} {} example ('@var{name}', @var{n}) @deftypefnx {Function File} {[@var{x}, @var{idx}] =} example ('@var{name}', @var{n}) Display the code for example @var{n} associated with the function --- 18371,18378 ---- example @c example scripts/testfun/example.m -*- texinfo -*- ! @deftypefn {Command} {} example @var{name} @var{n} ! @deftypefnx {Function File} {} example ('@var{name}', @var{n}) @deftypefnx {Function File} {[@var{x}, @var{idx}] =} example ('@var{name}', @var{n}) Display the code for example @var{n} associated with the function *************** *** 18104,18110 **** fail @c fail scripts/testfun/fail.m -*- texinfo -*- ! @deftypefn {Function File} {} fail (@var{code}, @var{pattern}) @deftypefnx {Function File} {} fail (@var{code}, 'warning', @var{pattern}) Return true if @var{code} fails with an error message matching --- 18389,18396 ---- fail @c fail scripts/testfun/fail.m -*- texinfo -*- ! @deftypefn {Function File} {} fail (@var{code}) ! @deftypefnx {Function File} {} fail (@var{code}, @var{pattern}) @deftypefnx {Function File} {} fail (@var{code}, 'warning', @var{pattern}) Return true if @var{code} fails with an error message matching *************** *** 18129,18146 **** Called with three arguments, the behavior is similar to @code{fail(@var{code}, @var{pattern})}, but produces an error if no warning is given during code execution or if the code fails. ! @end deftypefn rundemos @c rundemos scripts/testfun/rundemos.m -*- texinfo -*- ! @deftypefn {Function File} {} rundemos (@var{directory}) @end deftypefn runtests @c runtests scripts/testfun/runtests.m -*- texinfo -*- ! @deftypefn {Function File} {} runtests (@var{directory}) Execute built-in tests for all function files in the specified directory. @end deftypefn speed @c speed scripts/testfun/speed.m --- 18415,18441 ---- Called with three arguments, the behavior is similar to @code{fail(@var{code}, @var{pattern})}, but produces an error if no warning is given during code execution or if the code fails. ! @seealso{assert} @end deftypefn rundemos @c rundemos scripts/testfun/rundemos.m -*- texinfo -*- ! @deftypefn {Function File} {} rundemos () ! @deftypefnx {Function File} {} rundemos (@var{directory}) ! Execute built-in demos for all function files in the specified directory. ! If no directory is specified, operate on all directories in Octave's ! search path for functions. ! @seealso{runtests, path} @end deftypefn runtests @c runtests scripts/testfun/runtests.m -*- texinfo -*- ! @deftypefn {Function File} {} runtests () ! @deftypefnx {Function File} {} runtests (@var{directory}) Execute built-in tests for all function files in the specified directory. + If no directory is specified, operate on all directories in Octave's + search path for functions. + @seealso{rundemos, path} @end deftypefn speed @c speed scripts/testfun/speed.m *************** *** 18427,18435 **** @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}) @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}, @var{minute}) @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}, @var{minute}, @var{second}) ! @deftypefnx {Function File} {} datenum (@code{"date"}) ! @deftypefnx {Function File} {} datenum (@code{"date"}, @var{p}) ! Returns the specified local time as a day number, with Jan 1, 0000 being day 1. By this reckoning, Jan 1, 1970 is day number 719529. The fractional portion, @var{p}, corresponds to the portion of the specified day. --- 18722,18730 ---- @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}) @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}, @var{minute}) @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}, @var{minute}, @var{second}) ! @deftypefnx {Function File} {} datenum ("date") ! @deftypefnx {Function File} {} datenum ("date", @var{p}) ! Return the specified local time as a day number, with Jan 1, 0000 being day 1. By this reckoning, Jan 1, 1970 is day number 719529. The fractional portion, @var{p}, corresponds to the portion of the specified day. *************** *** 18565,18571 **** @deftypefnx {Function File} {} datetick (@dots{}, "keeplimits") @deftypefnx {Function File} {} datetick (@dots{}, "keepticks") @deftypefnx {Function File} {} datetick (@dots{ax}, @dots{}) ! Adds date formatted tick labels to an axis. The axis the apply the ticks to is determined by @var{axis} that can take the values "x", "y" or "z". The default value is "x". The formatting of the labels is determined by the variable @var{form}, that can either be a string in --- 18860,18866 ---- @deftypefnx {Function File} {} datetick (@dots{}, "keeplimits") @deftypefnx {Function File} {} datetick (@dots{}, "keepticks") @deftypefnx {Function File} {} datetick (@dots{ax}, @dots{}) ! Add date formatted tick labels to an axis. The axis the apply the ticks to is determined by @var{axis} that can take the values "x", "y" or "z". The default value is "x". The formatting of the labels is determined by the variable @var{form}, that can either be a string in *************** *** 18642,18648 **** @c now scripts/time/now.m -*- texinfo -*- @deftypefn {Function File} {t =} now () ! Returns the current local time as the number of days since Jan 1, 0000. By this reckoning, Jan 1, 1970 is day number 719529. The integral part, @code{floor (now)} corresponds to 00:00:00 today. --- 18937,18943 ---- @c now scripts/time/now.m -*- texinfo -*- @deftypefn {Function File} {t =} now () ! Return the current local time as the number of days since Jan 1, 0000. By this reckoning, Jan 1, 1970 is day number 719529. The integral part, @code{floor (now)} corresponds to 00:00:00 today. diff -cNr octave-3.4.0/scripts/@ftp/mget.m octave-3.4.1/scripts/@ftp/mget.m *** octave-3.4.0/scripts/@ftp/mget.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/@ftp/mget.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 20,26 **** ## @deftypefn {Function File} {} mget (@var{f}, @var{file}) ## @deftypefnx {Function File} {} mget (@var{f}, @var{dir}) ## @deftypefnx {Function File} {} mget (@dots{}, @var{target}) ! ## Downloads a remote file @var{file} or directory @var{dir} to the local ## directory on the FTP connection @var{f}. @var{f} is an FTP object ## returned by the @code{ftp} function. ## --- 20,26 ---- ## @deftypefn {Function File} {} mget (@var{f}, @var{file}) ## @deftypefnx {Function File} {} mget (@var{f}, @var{dir}) ## @deftypefnx {Function File} {} mget (@dots{}, @var{target}) ! ## Download a remote file @var{file} or directory @var{dir} to the local ## directory on the FTP connection @var{f}. @var{f} is an FTP object ## returned by the @code{ftp} function. ## diff -cNr octave-3.4.0/scripts/general/arrayfun.m octave-3.4.1/scripts/general/arrayfun.m *** octave-3.4.0/scripts/general/arrayfun.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/arrayfun.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 30,38 **** ## accept array arguments it is better to call the function directly. ## ## The first input argument @var{func} can be a string, a function ! ## handle, an inline function or an anonymous function. The input ## argument @var{A} can be a logic array, a numeric array, a string ! ## array, a structure array or a cell array. By a call of the function ## @command{arrayfun} all elements of @var{A} are passed on to the named ## function @var{func} individually. ## --- 30,38 ---- ## accept array arguments it is better to call the function directly. ## ## The first input argument @var{func} can be a string, a function ! ## handle, an inline function, or an anonymous function. The input ## argument @var{A} can be a logic array, a numeric array, a string ! ## array, a structure array, or a cell array. By a call of the function ## @command{arrayfun} all elements of @var{A} are passed on to the named ## function @var{func} individually. ## *************** *** 96,102 **** ## ## If the parameter @var{errfunc} after a further string input argument ## "ErrorHandler" is another string, a function handle, an inline ! ## function or an anonymous function, then @var{errfunc} defines a ## function to call in the case that @var{func} generates an error. ## The definition of the function must be of the form ## --- 96,102 ---- ## ## If the parameter @var{errfunc} after a further string input argument ## "ErrorHandler" is another string, a function handle, an inline ! ## function, or an anonymous function, then @var{errfunc} defines a ## function to call in the case that @var{func} generates an error. ## The definition of the function must be of the form ## *************** *** 107,114 **** ## @noindent ## where there is an additional input argument to @var{errfunc} ## relative to @var{func}, given by @var{s}. This is a structure with ! ## the elements "identifier", "message" and "index", giving ! ## respectively the error identifier, the error message and the index of ## the array elements that caused the error. The size of the output ## argument of @var{errfunc} must have the same size as the output ## argument of @var{func}, otherwise a real error is thrown. For --- 107,114 ---- ## @noindent ## where there is an additional input argument to @var{errfunc} ## relative to @var{func}, given by @var{s}. This is a structure with ! ## the elements "identifier", "message", and "index" giving, ! ## respectively, the error identifier, the error message, and the index of ## the array elements that caused the error. The size of the output ## argument of @var{errfunc} must have the same size as the output ## argument of @var{func}, otherwise a real error is thrown. For diff -cNr octave-3.4.0/scripts/general/bitcmp.m octave-3.4.1/scripts/general/bitcmp.m *** octave-3.4.0/scripts/general/bitcmp.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/bitcmp.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 77,83 **** else m = double (k); if (any (m < 1) || any (m > amax)) ! error ("bitcmp: k must be in the range [1,%d]", amax); endif mask = bitshift (bmax, k - amax); C = bitxor (bitand (A, mask), mask); --- 77,83 ---- else m = double (k); if (any (m < 1) || any (m > amax)) ! error ("bitcmp: K must be in the range [1,%d]", amax); endif mask = bitshift (bmax, k - amax); C = bitxor (bitand (A, mask), mask); diff -cNr octave-3.4.0/scripts/general/bitget.m octave-3.4.1/scripts/general/bitget.m *** octave-3.4.0/scripts/general/bitget.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/bitget.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 73,79 **** m = double (n(:)); if (any (m < 1) || any (m > Amax)) ! error ("bitget: n must be in the range [1,%d]", Amax); endif C = bitand (A, bitshift (_conv (1), uint8 (n) - uint8 (1))) != _conv (0); --- 73,79 ---- m = double (n(:)); if (any (m < 1) || any (m > Amax)) ! error ("bitget: N must be in the range [1,%d]", Amax); endif C = bitand (A, bitshift (_conv (1), uint8 (n) - uint8 (1))) != _conv (0); diff -cNr octave-3.4.0/scripts/general/bitset.m octave-3.4.1/scripts/general/bitset.m *** octave-3.4.0/scripts/general/bitset.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/bitset.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 81,87 **** m = double (n(:)); if (any (m < 1) || any (m > Amax)) ! error ("bitset: n must be in the range [1,%d]", Amax); endif mask = bitshift (_conv (1), uint8 (n) - uint8 (1)); --- 81,87 ---- m = double (n(:)); if (any (m < 1) || any (m > Amax)) ! error ("bitset: N must be in the range [1,%d]", Amax); endif mask = bitshift (_conv (1), uint8 (n) - uint8 (1)); diff -cNr octave-3.4.0/scripts/general/blkdiag.m octave-3.4.1/scripts/general/blkdiag.m *** octave-3.4.0/scripts/general/blkdiag.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/blkdiag.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} blkdiag (@var{A}, @var{B}, @var{C}, @dots{}) ! ## Build a block diagonal matrix from @var{A}, @var{B}, @var{C}, @dots{}. ## All the arguments must be numeric and are two-dimensional matrices or ## scalars. ## @seealso{diag, horzcat, vertcat} --- 18,24 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} blkdiag (@var{A}, @var{B}, @var{C}, @dots{}) ! ## Build a block diagonal matrix from @var{A}, @var{B}, @var{C}, @dots{} ## All the arguments must be numeric and are two-dimensional matrices or ## scalars. ## @seealso{diag, horzcat, vertcat} diff -cNr octave-3.4.0/scripts/general/circshift.m octave-3.4.1/scripts/general/circshift.m *** octave-3.4.0/scripts/general/circshift.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/circshift.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {@var{y} =} circshift (@var{x}, @var{n}) ! ## Circularly shifts the values of the array @var{x}. @var{n} must be ## a vector of integers no longer than the number of dimensions in ## @var{x}. The values of @var{n} can be either positive or negative, ## which determines the direction in which the values or @var{x} are --- 18,24 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {@var{y} =} circshift (@var{x}, @var{n}) ! ## Circularly shift the values of the array @var{x}. @var{n} must be ## a vector of integers no longer than the number of dimensions in ## @var{x}. The values of @var{n} can be either positive or negative, ## which determines the direction in which the values or @var{x} are diff -cNr octave-3.4.0/scripts/general/colon.m octave-3.4.1/scripts/general/colon.m *** octave-3.4.0/scripts/general/colon.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/colon.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 34,38 **** ## @end deftypefn function r = colon (varargin) ! error ("colon: not defined for class \"%s\"", class(varargin{1})); endfunction --- 34,40 ---- ## @end deftypefn function r = colon (varargin) ! if (nargin != 0) ! error ("colon: not defined for class \"%s\"", class(varargin{1})); ! endif endfunction diff -cNr octave-3.4.0/scripts/general/cumtrapz.m octave-3.4.1/scripts/general/cumtrapz.m *** octave-3.4.0/scripts/general/cumtrapz.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/cumtrapz.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,34 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {@var{z} =} cumtrapz (@var{y}) ! ## @deftypefnx {Function File} {@var{z} =} cumtrapz (@var{x}, @var{y}) ! ## @deftypefnx {Function File} {@var{z} =} cumtrapz (@dots{}, @var{dim}) ## ! ## Cumulative numerical integration using trapezoidal method. ! ## @code{cumtrapz (@var{y})} computes the cumulative integral of the ! ## @var{y} along the first non-singleton dimension. If the argument ! ## @var{x} is omitted an equally spaced vector is assumed. @code{cumtrapz ! ## (@var{x}, @var{y})} evaluates the cumulative integral with respect ! ## to @var{x}. ## ! ## @seealso{trapz,cumsum} ## @end deftypefn ## Author: Kai Habel --- 17,42 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {@var{q} =} cumtrapz (@var{y}) ! ## @deftypefnx {Function File} {@var{q} =} cumtrapz (@var{x}, @var{y}) ! ## @deftypefnx {Function File} {@var{q} =} cumtrapz (@dots{}, @var{dim}) ## ! ## Cumulative numerical integration of points @var{y} using the trapezoidal ! ## method. ! ## @w{@code{cumtrapz (@var{y})}} computes the cumulative integral of @var{y} ! ## along the first non-singleton dimension. Where @code{trapz} reports ! ## only the overall integral sum, @code{cumtrapz} reports the current partial ! ## sum value at each point of @var{y}. When the argument @var{x} is omitted ! ## an equally spaced @var{x} vector with unit spacing (1) is assumed. ! ## @code{cumtrapz (@var{x}, @var{y})} evaluates the integral with respect to ! ## the spacing in @var{x} and the values in @var{y}. This is useful if the ! ## points in @var{y} have been sampled unevenly. If the optional @var{dim} ! ## argument is given, operate along this dimension. ## ! ## If @var{x} is not specified then unit spacing will be used. To scale ! ## the integral to the correct value you must multiply by the actual spacing ! ## value (deltaX). ! ## @seealso{trapz, cumsum} ## @end deftypefn ## Author: Kai Habel *************** *** 42,94 **** print_usage (); endif ! nd = ndims (x); ! sz = size (x); - have_x = false; - have_dim = false; if (nargin == 3) ! have_x = true; have_dim = true; elseif (nargin == 2) if (! size_equal (x, y) && isscalar (y)) dim = y; have_dim = true; else ! have_x = true; endif endif if (! have_dim) ## Find the first non-singleton dimension. ! dim = find (sz > 1, 1); ! if (isempty (dim)) ! dim = 1; ! endif else ! dim = floor (dim); ! if (! (isscalar (dim) && 1 <= dim && dim <= nd)) ! error ("cumtrapz: invalid dimension DIM"); endif endif n = sz(dim); ! idx1 = cell (); ! for i = 1:nd ! idx1{i} = 1:sz(i); ! endfor ! idx2 = idx1; idx1{dim} = 2 : n; idx2{dim} = 1 : (n - 1); ! if (! have_x) z = 0.5 * cumsum (x(idx1{:}) + x(idx2{:}), dim); else ! if (! size_equal (x, y)) ! error ("cumtrapz: X and Y must have the same shape"); endif - z = 0.5 * cumsum ((x(idx1{:}) - x(idx2{:})) .* - (y(idx1{:}) + y(idx2{:})), dim); endif sz(dim) = 1; --- 50,110 ---- print_usage (); endif ! have_xy = have_dim = false; if (nargin == 3) ! have_xy = true; have_dim = true; elseif (nargin == 2) if (! size_equal (x, y) && isscalar (y)) dim = y; have_dim = true; else ! have_xy = true; endif endif + if (have_xy) + nd = ndims (y); + sz = size (y); + else + nd = ndims (x); + sz = size (x); + endif + if (! have_dim) ## Find the first non-singleton dimension. ! (dim = find (sz > 1, 1)) || (dim = 1); else ! if (!(isscalar (dim) && dim == fix (dim)) ! || !(1 <= dim && dim <= nd)) ! error ("trapz: DIM must be an integer and a valid dimension"); endif endif n = sz(dim); ! idx1 = idx2 = repmat ({':'}, [nd, 1]); idx1{dim} = 2 : n; idx2{dim} = 1 : (n - 1); ! if (! have_xy) z = 0.5 * cumsum (x(idx1{:}) + x(idx2{:}), dim); else ! if (isvector (x) && !isvector (y)) ! if (length (x) != sz(dim)) ! error ("cumtrapz: length of X and length of Y along DIM must match"); ! endif ! ## Reshape vector to point along dimension DIM ! shape = ones (nd, 1); ! shape(dim) = sz(dim); ! x = reshape (x, shape); ! z = 0.5 * cumsum (bsxfun (@times, diff (x), y(idx1{:}) + y(idx2{:})), dim); ! else ! if (! size_equal (x, y)) ! error ("cumtrapz: X and Y must have same shape"); ! endif ! z = 0.5 * cumsum (diff (x, 1, dim) .* (y(idx1{:}) + y(idx2{:})), dim); endif endif sz(dim) = 1; *************** *** 96,108 **** endfunction %!shared x1,x2,y %! x1 = [0,0,0;2,2,2]; %! x2 = [0,2,4;0,2,4]; %! y = [1,2,3;4,5,6]; ! %!assert (cumtrapz(y),[0,0,0;2.5,3.5,4.5]) ! %!assert (cumtrapz(x1,y),[0,0,0;5,7,9]) ! %!assert (cumtrapz(y,1),[0,0,0;2.5,3.5,4.5]) ! %!assert (cumtrapz(x1,y,1),[0,0,0;5,7,9]) ! %!assert (cumtrapz(y,2),[0,1.5,4;0,4.5,10]) ! %!assert (cumtrapz(x2,y,2),[0,3,8;0,9,20]) --- 112,134 ---- endfunction + %!shared x1,x2,y %! x1 = [0,0,0;2,2,2]; %! x2 = [0,2,4;0,2,4]; %! y = [1,2,3;4,5,6]; ! %!assert (cumtrapz(y), [0,0,0;2.5,3.5,4.5]) ! %!assert (cumtrapz(x1,y), [0,0,0;5,7,9]) ! %!assert (cumtrapz(y,1), [0,0,0;2.5,3.5,4.5]) ! %!assert (cumtrapz(x1,y,1), [0,0,0;5,7,9]) ! %!assert (cumtrapz(y,2), [0,1.5,4;0,4.5,10]) ! %!assert (cumtrapz(x2,y,2), [0,3,8;0,9,20]) ! %% Test ND-array implementation ! %!shared x1,x2,y ! %! x1 = 1:3; ! %! x2 = reshape ([0,2,4;0,2,4], [1 2 3]); ! %! y = reshape ([1,2,3;4,5,6], [1 2 3]); ! %!assert (cumtrapz(y,3), reshape([0,1.5,4;0,4.5,10],[1 2 3])) ! %!assert (cumtrapz(x1,y,3), reshape([0,1.5,4;0,4.5,10],[1 2 3])) ! %!assert (cumtrapz(x2,y,3), reshape([0,3,8;0,9,20],[1 2 3])) ! diff -cNr octave-3.4.0/scripts/general/curl.m octave-3.4.1/scripts/general/curl.m *** octave-3.4.0/scripts/general/curl.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/curl.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 44,50 **** ## for two-dimensional input. For three-dimensional input the scalar ## rotation is calculated at each grid point in direction of the vector field ## at that point. ! ## @seealso{divergence, gradient, del2, cross, dot} ## @end deftypefn ## Author: Kai Habel --- 44,50 ---- ## for two-dimensional input. For three-dimensional input the scalar ## rotation is calculated at each grid point in direction of the vector field ## at that point. ! ## @seealso{divergence, gradient, del2, cross} ## @end deftypefn ## Author: Kai Habel diff -cNr octave-3.4.0/scripts/general/dblquad.m octave-3.4.1/scripts/general/dblquad.m *** octave-3.4.0/scripts/general/dblquad.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/dblquad.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 17,35 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{tol}, @var{quadf}, @dots{}) ! ## Numerically evaluate a double integral. The function over with to ! ## integrate is defined by @code{@var{f}}, and the interval for the ! ## integration is defined by @code{[@var{xa}, @var{xb}, @var{ya}, ! ## @var{yb}]}. The function @var{f} must accept a vector @var{x} and a ! ## scalar @var{y}, and return a vector of the same length as @var{x}. ## ! ## If defined, @var{tol} defines the absolute tolerance to which to ! ## which to integrate each sub-integral. ## ## Additional arguments, are passed directly to @var{f}. To use the default ! ## value for @var{tol} one may pass an empty matrix. ! ## @seealso{triplequad,quad,quadv,quadl,quadgk,quadcc,trapz} ## @end deftypefn function q = dblquad(f, xa, xb, ya, yb, tol, quadf, varargin) --- 17,47 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}) ! ## @deftypefnx {Function File} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{tol}) ! ## @deftypefnx {Function File} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{tol}, @var{quadf}) ! ## @deftypefnx {Function File} {} dblquad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{tol}, @var{quadf}, @dots{}) ! ## Numerically evaluate the double integral of @var{f}. ! ## @var{f} is a function handle, inline function, or string ! ## containing the name of the function to evaluate. The function @var{f} must ! ## have the form @math{z = f(x,y)} where @var{x} is a vector and @var{y} is a ! ## scalar. It should return a vector of the same length and orientation as ! ## @var{x}. ## ! ## @var{xa}, @var{ya} and @var{xb}, @var{yb} are the lower and upper limits of ! ## integration for x and y respectively. The underlying integrator determines ! ## whether infinite bounds are accepted. ! ## ! ## The optional argument @var{tol} defines the absolute tolerance used to ! ## integrate each sub-integral. The default value is @math{1e^{-6}}. ! ## ! ## The optional argument @var{quadf} specifies which underlying integrator ! ## function to use. Any choice but @code{quad} is available and the default ! ## is @code{quadgk}. ## ## Additional arguments, are passed directly to @var{f}. To use the default ! ## value for @var{tol} or @var{quadf} one may pass an empty matrix ([]). ! ## @seealso{triplequad, quad, quadv, quadl, quadgk, quadcc, trapz} ## @end deftypefn function q = dblquad(f, xa, xb, ya, yb, tol, quadf, varargin) *************** *** 66,68 **** --- 78,81 ---- %!assert (dblquad (@(x,y) exp(-x.^2 - y.^2) , -1, 1, -1, 1, [], @quadgk), pi * erf(1).^2, 1e-6) %!assert (dblquad (@(x,y) exp(-x.^2 - y.^2) , -1, 1, -1, 1, [], @quadl), pi * erf(1).^2, 1e-6) %!assert (dblquad (@(x,y) exp(-x.^2 - y.^2) , -1, 1, -1, 1, [], @quadv), pi * erf(1).^2, 1e-6) + diff -cNr octave-3.4.0/scripts/general/divergence.m octave-3.4.1/scripts/general/divergence.m *** octave-3.4.0/scripts/general/divergence.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/divergence.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 42,48 **** ## The coordinates of the vector field can be given by the arguments @var{x}, ## @var{y}, @var{z} or @var{x}, @var{y} respectively. ## ! ## @seealso{curl, gradient, del2, cross, dot} ## @end deftypefn ## Author: Kai Habel --- 42,48 ---- ## The coordinates of the vector field can be given by the arguments @var{x}, ## @var{y}, @var{z} or @var{x}, @var{y} respectively. ## ! ## @seealso{curl, gradient, del2, dot} ## @end deftypefn ## Author: Kai Habel diff -cNr octave-3.4.0/scripts/general/fliplr.m octave-3.4.1/scripts/general/fliplr.m *** octave-3.4.0/scripts/general/fliplr.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/fliplr.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} fliplr (@var{x}) ! ## Return a copy of @var{x} with the order of the columns reversed. For ## example: ## ## @example --- 18,25 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} fliplr (@var{x}) ! ## Return a copy of @var{x} with the order of the columns reversed. In ! ## other words, @var{x} is flipped left-to-right about a vertical axis. For ## example: ## ## @example *************** *** 29,35 **** ## @end group ## @end example ## ! ## Note that @code{fliplr} only work with 2-D arrays. To flip N-d arrays ## use @code{flipdim} instead. ## @seealso{flipud, flipdim, rot90, rotdim} ## @end deftypefn --- 30,36 ---- ## @end group ## @end example ## ! ## Note that @code{fliplr} only works with 2-D arrays. To flip N-D arrays ## use @code{flipdim} instead. ## @seealso{flipud, flipdim, rot90, rotdim} ## @end deftypefn diff -cNr octave-3.4.0/scripts/general/flipud.m octave-3.4.1/scripts/general/flipud.m *** octave-3.4.0/scripts/general/flipud.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/flipud.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} flipud (@var{x}) ! ## Return a copy of @var{x} with the order of the rows reversed. For ## example: ## ## @example --- 18,25 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} flipud (@var{x}) ! ## Return a copy of @var{x} with the order of the rows reversed. In ! ## other words, @var{x} is flipped upside-down about a horizontal axis. For ## example: ## ## @example *************** *** 29,36 **** ## @end group ## @end example ## ! ## Due to the difficulty of defining which axis about which to flip the ! ## matrix @code{flipud} only work with 2-d arrays. To flip N-d arrays ## use @code{flipdim} instead. ## @seealso{fliplr, flipdim, rot90, rotdim} ## @end deftypefn --- 30,36 ---- ## @end group ## @end example ## ! ## Note that @code{flipud} only works with 2-D arrays. To flip N-D arrays ## use @code{flipdim} instead. ## @seealso{fliplr, flipdim, rot90, rotdim} ## @end deftypefn diff -cNr octave-3.4.0/scripts/general/interp1.m octave-3.4.1/scripts/general/interp1.m *** octave-3.4.0/scripts/general/interp1.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/interp1.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 597,603 **** %!assert (interp1(1:2,1:2,1.4,"linear"),1.4); %!error interp1(1:3,1:3,1, "cubic"); %!assert (interp1(1:4,1:4,1.4,"cubic"),1.4); ! %!error interp1(1:2,1:2,1, "spline"); %!assert (interp1(1:3,1:3,1.4,"spline"),1.4); %!error interp1(1,1,1, "*nearest"); --- 597,603 ---- %!assert (interp1(1:2,1:2,1.4,"linear"),1.4); %!error interp1(1:3,1:3,1, "cubic"); %!assert (interp1(1:4,1:4,1.4,"cubic"),1.4); ! %!assert (interp1(1:2,1:2,1.1, "spline"), 1.1); %!assert (interp1(1:3,1:3,1.4,"spline"),1.4); %!error interp1(1,1,1, "*nearest"); *************** *** 606,612 **** %!assert (interp1(1:2:4,1:2:4,[0,1,1.4,3,4],"*linear"),[NA,1,1.4,3,NA]); %!error interp1(1:3,1:3,1, "*cubic"); %!assert (interp1(1:2:8,1:2:8,1.4,"*cubic"),1.4); ! %!error interp1(1:2,1:2,1, "*spline"); %!assert (interp1(1:2:6,1:2:6,1.4,"*spline"),1.4); %!assert (interp1([3,2,1],[3,2,2],2.5),2.5) --- 606,612 ---- %!assert (interp1(1:2:4,1:2:4,[0,1,1.4,3,4],"*linear"),[NA,1,1.4,3,NA]); %!error interp1(1:3,1:3,1, "*cubic"); %!assert (interp1(1:2:8,1:2:8,1.4,"*cubic"),1.4); ! %!assert (interp1(1:2,1:2,1.3, "*spline"), 1.3); %!assert (interp1(1:2:6,1:2:6,1.4,"*spline"),1.4); %!assert (interp1([3,2,1],[3,2,2],2.5),2.5) diff -cNr octave-3.4.0/scripts/general/iscolumn.m octave-3.4.1/scripts/general/iscolumn.m *** octave-3.4.0/scripts/general/iscolumn.m 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/scripts/general/iscolumn.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 0 **** --- 1,62 ---- + ## Copyright (C) 2011 John W. Eaton + ## + ## This file is part of Octave. + ## + ## Octave 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. + ## + ## Octave 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 Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {} iscolumn (@var{x}) + ## Return true if @var{x} is a column vector. + ## @seealso{isrow, isscalar, isvector, ismatrix} + ## @end deftypefn + + ## Author: Rik Wehbring + + function retval = iscolumn (x) + + retval = false; + + if (nargin != 1) + print_usage (); + endif + + sz = size (x); + retval = (ndims (x) == 2 && (sz(2) == 1)); + + endfunction + + %!assert(iscolumn ([1, 2, 3]), false); + %!assert(iscolumn ([1; 2; 3])); + %!assert(iscolumn (1)); + %!assert(iscolumn ([]), false); + %!assert(iscolumn ([1, 2; 3, 4]), false); + + %!test + %! warning ("off", "Octave:str-to-num"); + %! assert((iscolumn ("t"))); + %!test + %! warning ("off", "Octave:str-to-num"); + %! assert(!(iscolumn ("test"))); + + %!assert(!(iscolumn (["test"; "ing"]))); + + %!test + %! s.a = 1; + %! assert((iscolumn (s))); + + %% Test input validation + %!error iscolumn (); + %!error iscolumn ([1, 2], 2); + diff -cNr octave-3.4.0/scripts/general/is_duplicate_entry.m octave-3.4.1/scripts/general/is_duplicate_entry.m *** octave-3.4.0/scripts/general/is_duplicate_entry.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/is_duplicate_entry.m 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,45 **** - ## Copyright (C) 1996-2011 A. S. Hodel - ## - ## This file is part of Octave. - ## - ## Octave 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. - ## - ## Octave 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 Octave; see the file COPYING. If not, see - ## . - - ## -*- texinfo -*- - ## @deftypefn {Function File} {} is_duplicate_entry (@var{x}) - ## Return non-zero if any entries in @var{x} are duplicates of one - ## another. - ## @seealso{unique} - ## @end deftypefn - - ## Author: A. S. Hodel - - function retval = is_duplicate_entry (x) - - if (nargin == 1) - if (ismatrix (x)) - lx = numel (x); - lx1 = lx-1; - x = sort (reshape (x, 1, lx)); - dx = x(1:lx1) - x(2:lx); - retval = sum (dx == 0); - else - error ("is_duplicate_entry: expecting matrix argument"); - endif - else - print_usage (); - endif - - endfunction - --- 0 ---- diff -cNr octave-3.4.0/scripts/general/isrow.m octave-3.4.1/scripts/general/isrow.m *** octave-3.4.0/scripts/general/isrow.m 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/scripts/general/isrow.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 0 **** --- 1,62 ---- + ## Copyright (C) 2011 John W. Eaton + ## + ## This file is part of Octave. + ## + ## Octave 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. + ## + ## Octave 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 Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {} isrow (@var{x}) + ## Return true if @var{x} is a row vector. + ## @seealso{iscolumn, isscalar, isvector, ismatrix} + ## @end deftypefn + + ## Author: Rik Wehbring + + function retval = isrow (x) + + retval = false; + + if (nargin != 1) + print_usage (); + endif + + sz = size (x); + retval = (ndims (x) == 2 && (sz(1) == 1)); + + endfunction + + %!assert(isrow ([1, 2, 3])); + %!assert(isrow ([1; 2; 3]), false); + %!assert(isrow (1)); + %!assert(isrow ([]), false); + %!assert(isrow ([1, 2; 3, 4]), false); + + %!test + %! warning ("off", "Octave:str-to-num"); + %! assert((isrow ("t"))); + %!test + %! warning ("off", "Octave:str-to-num"); + %! assert((isrow ("test"))); + + %!assert(!(isrow (["test"; "ing"]))); + + %!test + %! s.a = 1; + %! assert((isrow (s))); + + %% Test input validation + %!error isrow (); + %!error isrow ([1, 2], 2); + diff -cNr octave-3.4.0/scripts/general/isscalar.m octave-3.4.1/scripts/general/isscalar.m *** octave-3.4.0/scripts/general/isscalar.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/isscalar.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 35,60 **** endfunction %!assert(isscalar (1)); - %!assert(!(isscalar ([1, 2]))); - %!assert(!(isscalar ([]))); - %!assert(!(isscalar ([1, 2; 3, 4]))); %!test ! %! warn_str_to_num = 0; %! assert((isscalar ("t"))); %!assert(!(isscalar ("test"))); - %!assert(!(isscalar (["test"; "ing"]))); %!test %! s.a = 1; %! assert((isscalar (s))); %!error isscalar (); - %!error isscalar (1, 2); --- 35,56 ---- endfunction %!assert(isscalar (1)); %!assert(!(isscalar ([1, 2]))); %!assert(!(isscalar ([]))); %!assert(!(isscalar ([1, 2; 3, 4]))); %!test ! %! warning ("off", "Octave:str-to-num"); %! assert((isscalar ("t"))); %!assert(!(isscalar ("test"))); %!assert(!(isscalar (["test"; "ing"]))); %!test %! s.a = 1; %! assert((isscalar (s))); + %% Test input validation %!error isscalar (); %!error isscalar (1, 2); diff -cNr octave-3.4.0/scripts/general/isvector.m octave-3.4.1/scripts/general/isvector.m *** octave-3.4.0/scripts/general/isvector.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/isvector.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 40,58 **** endfunction %!assert(isvector (1)); - %!assert(isvector ([1; 2; 3])); - %!assert(!(isvector ([]))); - %!assert(!(isvector ([1, 2; 3, 4]))); %!test ! %! warn_str_to_num = 0; %! assert((isvector ("t"))); %!test ! %! warn_str_to_num = 0; %! assert((isvector ("test"))); %!assert(!(isvector (["test"; "ing"]))); --- 40,55 ---- endfunction %!assert(isvector (1)); %!assert(isvector ([1; 2; 3])); %!assert(!(isvector ([]))); %!assert(!(isvector ([1, 2; 3, 4]))); %!test ! %! warning ("off", "Octave:str-to-num"); %! assert((isvector ("t"))); %!test ! %! warning ("off", "Octave:str-to-num"); %! assert((isvector ("test"))); %!assert(!(isvector (["test"; "ing"]))); *************** *** 61,67 **** %! s.a = 1; %! assert((isvector (s))); %!error isvector (); - %!error isvector ([1, 2], 2); --- 58,64 ---- %! s.a = 1; %! assert((isvector (s))); + %% Test input validation %!error isvector (); %!error isvector ([1, 2], 2); diff -cNr octave-3.4.0/scripts/general/logspace.m octave-3.4.1/scripts/general/logspace.m *** octave-3.4.0/scripts/general/logspace.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/logspace.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,34 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} logspace (@var{base}, @var{limit}) ! ## @deftypefnx {Function File} {} logspace (@var{base}, @var{limit}, @var{n}) ! ## Similar to @code{linspace} except that the values are logarithmically ! ## spaced from ## @tex ! ## $10^{base}$ to $10^{limit}$. ## @end tex ## @ifnottex ! ## 10^base to 10^limit. ## @end ifnottex ## ! ## If @var{limit} is equal to ## @tex ## $\pi$, ## @end tex --- 17,35 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} logspace (@var{a}, @var{b}) ! ## @deftypefnx {Function File} {} logspace (@var{b}, @var{b}, @var{n}) ! ## @deftypefnx {Function File} {} logspace (@var{a}, pi, @var{n}) ! ## Return a row vector with @var{n} elements logarithmically spaced from ## @tex ! ## $10^{a}$ to $10^{b}$. ## @end tex ## @ifnottex ! ## 10^@var{a} to 10^@var{b}. ## @end ifnottex + ## If @var{n} is unspecified it defaults to 50. ## ! ## If @var{b} is equal to ## @tex ## $\pi$, ## @end tex *************** *** 37,60 **** ## @end ifnottex ## the points are between ## @tex ! ## $10^{base}$ and $\pi$, ## @end tex ## @ifnottex ! ## 10^base and pi, ## @end ifnottex ## @emph{not} ## @tex ! ## $10^{base}$ and $10^{\pi}$, ## @end tex ## @ifnottex ! ## 10^base and 10^pi, ## @end ifnottex ! ## in order to be compatible with the corresponding @sc{matlab} ! ## function. ! ## If @var{n} is unspecified it defaults to 50. ## ! ## Also for compatibility with @sc{matlab}, return the second argument if ! ## fewer than two values are requested. ## @seealso{linspace} ## @end deftypefn --- 38,59 ---- ## @end ifnottex ## the points are between ## @tex ! ## $10^{a}$ and $\pi$, ## @end tex ## @ifnottex ! ## 10^@var{a} and pi, ## @end ifnottex ## @emph{not} ## @tex ! ## $10^{a}$ and $10^{\pi}$, ## @end tex ## @ifnottex ! ## 10^@var{a} and 10^pi, ## @end ifnottex ! ## in order to be compatible with the corresponding @sc{matlab} function. ## ! ## Also for compatibility with @sc{matlab}, return the second argument @var{b} ! ## if fewer than two values are requested. ## @seealso{linspace} ## @end deftypefn diff -cNr octave-3.4.0/scripts/general/module.mk octave-3.4.1/scripts/general/module.mk *** octave-3.4.0/scripts/general/module.mk 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/module.mk 2011-06-15 11:11:27.000000000 -0400 *************** *** 42,52 **** general/interp3.m \ general/interpn.m \ general/interpft.m \ - general/is_duplicate_entry.m \ general/isa.m \ general/isdir.m \ general/isequal.m \ general/isequalwithequalnans.m \ general/isscalar.m \ general/issquare.m \ general/isvector.m \ --- 42,53 ---- general/interp3.m \ general/interpn.m \ general/interpft.m \ general/isa.m \ + general/iscolumn.m \ general/isdir.m \ general/isequal.m \ general/isequalwithequalnans.m \ + general/isrow.m \ general/isscalar.m \ general/issquare.m \ general/isvector.m \ *************** *** 56,62 **** general/nargoutchk.m \ general/nextpow2.m \ general/num2str.m \ - general/perror.m \ general/pol2cart.m \ general/polyarea.m \ general/postpad.m \ --- 57,62 ---- *************** *** 69,81 **** general/repmat.m \ general/rot90.m \ general/rotdim.m \ - general/runlength.m \ general/saveobj.m \ general/shift.m \ general/shiftdim.m \ general/sortrows.m \ general/sph2cart.m \ - general/strerror.m \ general/structfun.m \ general/subsindex.m \ general/triplequad.m \ --- 69,79 ---- diff -cNr octave-3.4.0/scripts/general/perror.m octave-3.4.1/scripts/general/perror.m *** octave-3.4.0/scripts/general/perror.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/perror.m 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,38 **** - ## Copyright (C) 1993-2011 John W. Eaton - ## - ## This file is part of Octave. - ## - ## Octave 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. - ## - ## Octave 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 Octave; see the file COPYING. If not, see - ## . - - ## -*- texinfo -*- - ## @deftypefn {Function File} {} perror (@var{funcname}, @var{num}) - ## Print the error message for function @var{funcname} corresponding to the - ## error number @var{num}. This function is intended to be used to print - ## useful error messages for those functions that return numeric error - ## codes. - ## @seealso{strerror} - ## @end deftypefn - - ## Author: jwe - - function perror (funcname, num) - - if (nargin != 2) - print_usage (); - else - printf (strerror (funcname, num)); - endif - - endfunction --- 0 ---- diff -cNr octave-3.4.0/scripts/general/postpad.m octave-3.4.1/scripts/general/postpad.m *** octave-3.4.0/scripts/general/postpad.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/postpad.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 20,28 **** ## @deftypefn {Function File} {} postpad (@var{x}, @var{l}) ## @deftypefnx {Function File} {} postpad (@var{x}, @var{l}, @var{c}) ## @deftypefnx {Function File} {} postpad (@var{x}, @var{l}, @var{c}, @var{dim}) ! ## Append the scalar value @var{c} to the vector @var{x} ! ## until it is of length @var{l}. If the third argument is not ! ## supplied, a value of 0 is used. ## ## If @code{length (@var{x}) > @var{l}}, elements from the end of ## @var{x} are removed until a vector of length @var{l} is obtained. --- 20,27 ---- ## @deftypefn {Function File} {} postpad (@var{x}, @var{l}) ## @deftypefnx {Function File} {} postpad (@var{x}, @var{l}, @var{c}) ## @deftypefnx {Function File} {} postpad (@var{x}, @var{l}, @var{c}, @var{dim}) ! ## Append the scalar value @var{c} to the vector @var{x} until it is of length ! ## @var{l}. If @var{c} is not given, a value of 0 is used. ## ## If @code{length (@var{x}) > @var{l}}, elements from the end of ## @var{x} are removed until a vector of length @var{l} is obtained. diff -cNr octave-3.4.0/scripts/general/prepad.m octave-3.4.1/scripts/general/prepad.m *** octave-3.4.0/scripts/general/prepad.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/prepad.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 20,28 **** ## @deftypefn {Function File} {} prepad (@var{x}, @var{l}) ## @deftypefnx {Function File} {} prepad (@var{x}, @var{l}, @var{c}) ## @deftypefnx {Function File} {} prepad (@var{x}, @var{l}, @var{c}, @var{dim}) ! ## Prepend the scalar value @var{c} to the vector @var{x} ! ## until it is of length @var{l}. If the third argument is not ! ## supplied, a value of 0 is used. ## ## If @code{length (@var{x}) > @var{l}}, elements from the beginning of ## @var{x} are removed until a vector of length @var{l} is obtained. --- 20,27 ---- ## @deftypefn {Function File} {} prepad (@var{x}, @var{l}) ## @deftypefnx {Function File} {} prepad (@var{x}, @var{l}, @var{c}) ## @deftypefnx {Function File} {} prepad (@var{x}, @var{l}, @var{c}, @var{dim}) ! ## Prepend the scalar value @var{c} to the vector @var{x} until it is of length ! ## @var{l}. If @var{c} is not given, a value of 0 is used. ## ## If @code{length (@var{x}) > @var{l}}, elements from the beginning of ## @var{x} are removed until a vector of length @var{l} is obtained. diff -cNr octave-3.4.0/scripts/general/quadgk.m octave-3.4.1/scripts/general/quadgk.m *** octave-3.4.0/scripts/general/quadgk.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/quadgk.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,41 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} quadgk (@var{f}, @var{a}, @var{b}, @var{abstol}, @var{trace}) ! ## @deftypefnx {Function File} {} quadgk (@var{f}, @var{a}, @var{b}, @var{prop}, @var{val}, @dots{}) ## @deftypefnx {Function File} {[@var{q}, @var{err}] =} quadgk (@dots{}) ! ## Numerically evaluate integral using adaptive Gauss-Konrod quadrature. ## The formulation is based on a proposal by L.F. Shampine, ## @cite{"Vectorized adaptive quadrature in @sc{matlab}", Journal of ## Computational and Applied Mathematics, pp131-140, Vol 211, Issue 2, ## Feb 2008} where all function evaluations at an iteration are ! ## calculated with a single call to @var{f}. Therefore the function ! ## @var{f} must be of the form @code{@var{f} (@var{x})} and accept ! ## vector values of @var{x} and return a vector of the same length ! ## representing the function evaluations at the given values of @var{x}. ! ## The function @var{f} can be defined in terms of a function handle, ! ## inline function or string. ! ## ! ## The bounds of the quadrature @code{[@var{a}, @var{b}]} can be finite ! ## or infinite and contain weak end singularities. Variable ! ## transformation will be used to treat infinite intervals and weaken ! ## the singularities. For example: ## ## @example ## quadgk(@@(x) 1 ./ (sqrt (x) .* (x + 1)), 0, Inf) --- 17,45 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {@var{q} =} quadgk (@var{f}, @var{a}, @var{b}) ! ## @deftypefnx {Function File} {@var{q} =} quadgk (@var{f}, @var{a}, @var{b}, @var{abstol}) ! ## @deftypefnx {Function File} {@var{q} =} quadgk (@var{f}, @var{a}, @var{b}, @var{abstol}, @var{trace}) ! ## @deftypefnx {Function File} {@var{q} =} quadgk (@var{f}, @var{a}, @var{b}, @var{prop}, @var{val}, @dots{}) ## @deftypefnx {Function File} {[@var{q}, @var{err}] =} quadgk (@dots{}) ! ## ! ## Numerically evaluate the integral of @var{f} from @var{a} to @var{b} ! ## using adaptive Gauss-Konrod quadrature. ! ## @var{f} is a function handle, inline function, or string ! ## containing the name of the function to evaluate. ## The formulation is based on a proposal by L.F. Shampine, ## @cite{"Vectorized adaptive quadrature in @sc{matlab}", Journal of ## Computational and Applied Mathematics, pp131-140, Vol 211, Issue 2, ## Feb 2008} where all function evaluations at an iteration are ! ## calculated with a single call to @var{f}. Therefore, the function ! ## @var{f} must be vectorized and must accept a vector of input values @var{x} ! ## and return an output vector representing the function evaluations at the ! ## given values of @var{x}. ! ## ! ## @var{a} and @var{b} are the lower and upper limits of integration. Either ! ## or both limits may be infinite or contain weak end singularities. ! ## Variable transformation will be used to treat any infinite intervals and ! ## weaken the singularities. For example: ## ## @example ## quadgk(@@(x) 1 ./ (sqrt (x) .* (x + 1)), 0, Inf) *************** *** 46,98 **** ## element-by-element operator @code{./} and all user functions to ## @code{quadgk} should do the same. ## ! ## The absolute tolerance can be passed as a fourth argument in a manner ! ## compatible with @code{quadv}. Equally the user can request that ! ## information on the convergence can be printed is the fifth argument ! ## is logically true. ## ! ## Alternatively, certain properties of @code{quadgk} can be passed as ! ## pairs @code{@var{prop}, @var{val}}. Valid properties are ## ## @table @code ## @item AbsTol ! ## Defines the absolute error tolerance for the quadrature. The default ## absolute tolerance is 1e-10. ## ## @item RelTol ! ## Defines the relative error tolerance for the quadrature. The default ## relative tolerance is 1e-5. ## ## @item MaxIntervalCount ## @code{quadgk} initially subdivides the interval on which to perform ! ## the quadrature into 10 intervals. Sub-intervals that have an ! ## unacceptable error are sub-divided and re-evaluated. If the number of ! ## sub-intervals exceeds at any point 650 sub-intervals then a poor ## convergence is signaled and the current estimate of the integral is ## returned. The property 'MaxIntervalCount' can be used to alter the ! ## number of sub-intervals that can exist before exiting. ## ## @item WayPoints ! ## If there exists discontinuities in the first derivative of the ! ## function to integrate, then these can be flagged with the ! ## @code{"WayPoints"} property. This forces the ends of a sub-interval ! ## to fall on the breakpoints of the function and can result in ## significantly improved estimation of the error in the integral, faster ! ## computation or both. For example, ## ## @example ! ## quadgk (@@(x) abs (1 - x .^ 2), 0, 2, 'Waypoints', 1) ## @end example ## ## @noindent ## signals the breakpoint in the integrand at @code{@var{x} = 1}. ## ## @item Trace ! ## If logically true, then @code{quadgk} prints information on the ## convergence of the quadrature at each iteration. ! ##@end table ## ! ## If any of @var{a}, @var{b} or @var{waypoints} is complex, then the ## quadrature is treated as a contour integral along a piecewise ## continuous path defined by the above. In this case the integral is ## assumed to have no edge singularities. For example, --- 50,106 ---- ## element-by-element operator @code{./} and all user functions to ## @code{quadgk} should do the same. ## ! ## The optional argument @var{tol} defines the absolute tolerance used to stop ! ## the integration procedure. The default value is @math{1e^{-10}}. ! ## ! ## The algorithm used by @code{quadgk} involves subdividing the ! ## integration interval and evaluating each subinterval. ! ## If @var{trace} is true then after computing each of these partial ! ## integrals display: (1) the number of subintervals at this step, ! ## (2) the current estimate of the error @var{err}, (3) the current estimate ! ## for the integral @var{q}. ## ! ## Alternatively, properties of @code{quadgk} can be passed to the function as ! ## pairs @code{"@var{prop}", @var{val}}. Valid properties are ## ## @table @code ## @item AbsTol ! ## Define the absolute error tolerance for the quadrature. The default ## absolute tolerance is 1e-10. ## ## @item RelTol ! ## Define the relative error tolerance for the quadrature. The default ## relative tolerance is 1e-5. ## ## @item MaxIntervalCount ## @code{quadgk} initially subdivides the interval on which to perform ! ## the quadrature into 10 intervals. Subintervals that have an ! ## unacceptable error are subdivided and re-evaluated. If the number of ! ## subintervals exceeds 650 subintervals at any point then a poor ## convergence is signaled and the current estimate of the integral is ## returned. The property 'MaxIntervalCount' can be used to alter the ! ## number of subintervals that can exist before exiting. ## ## @item WayPoints ! ## Discontinuities in the first derivative of the function to integrate can be ! ## flagged with the @code{"WayPoints"} property. This forces the ends of ! ## a subinterval to fall on the breakpoints of the function and can result in ## significantly improved estimation of the error in the integral, faster ! ## computation, or both. For example, ## ## @example ! ## quadgk (@@(x) abs (1 - x.^2), 0, 2, 'Waypoints', 1) ## @end example ## ## @noindent ## signals the breakpoint in the integrand at @code{@var{x} = 1}. ## ## @item Trace ! ## If logically true @code{quadgk} prints information on the ## convergence of the quadrature at each iteration. ! ## @end table ## ! ## If any of @var{a}, @var{b}, or @var{waypoints} is complex then the ## quadrature is treated as a contour integral along a piecewise ## continuous path defined by the above. In this case the integral is ## assumed to have no edge singularities. For example, *************** *** 108,118 **** ## integrates @code{log (z)} along the square defined by @code{[1+1i, ## 1-1i, -1-1i, -1+1i]} ## ! ## If two output arguments are requested, then @var{err} returns the ! ## approximate bounds on the error in the integral @code{abs (@var{q} - ! ## @var{i})}, where @var{i} is the exact value of the integral. ## ! ## @seealso{quad,quadv,quadl,quadcc,trapz,dblquad,triplequad} ## @end deftypefn function [q, err] = quadgk (f, a, b, varargin) --- 116,127 ---- ## integrates @code{log (z)} along the square defined by @code{[1+1i, ## 1-1i, -1-1i, -1+1i]} ## ! ## The result of the integration is returned in @var{q}. ! ## @var{err} is an approximate bound on the error in the integral ! ## @code{abs (@var{q} - @var{I})}, where @var{I} is the exact value of the ! ## integral. ## ! ## @seealso{quad, quadv, quadl, quadcc, trapz, dblquad, triplequad} ## @end deftypefn function [q, err] = quadgk (f, a, b, varargin) *************** *** 223,231 **** if (!isempty (waypoints)) tmp = sqrt (b - waypoints); trans = @(x) - x ./ (x + 1); ! subs = [0; trans(tmp); 1]; else ! subs = linspace (0, 1, 11)'; endif h = 1; h0 = b - a; --- 232,240 ---- if (!isempty (waypoints)) tmp = sqrt (b - waypoints); trans = @(x) - x ./ (x + 1); ! subs = [-1; trans(tmp); 0]; else ! subs = linspace (-1, 0, 11)'; endif h = 1; h0 = b - a; *************** *** 281,287 **** 3 .* (b - a) ./ 4 .* (1 - t.^2); endif ! ## Split interval into at least 10 sub-interval with a 15 point ## Gauss-Kronrod rule giving a minimum of 150 function evaluations while (length (subs) < 11) subs = [subs' ; subs(1:end-1)' + diff(subs') ./ 2, NaN](:)(1 : end - 1); --- 290,296 ---- 3 .* (b - a) ./ 4 .* (1 - t.^2); endif ! ## Split interval into at least 10 subinterval with a 15 point ## Gauss-Kronrod rule giving a minimum of 150 function evaluations while (length (subs) < 11) subs = [subs' ; subs(1:end-1)' + diff(subs') ./ 2, NaN](:)(1 : end - 1); *************** *** 294,300 **** ## Singularity will cause divide by zero warnings warning ("off", "Octave:divide-by-zero"); ! ## Initial evaluation of the integrand on the sub-intervals [q_subs, q_errs] = __quadgk_eval__ (f, subs); q0 = sum (q_subs); err0 = sum (q_errs); --- 303,309 ---- ## Singularity will cause divide by zero warnings warning ("off", "Octave:divide-by-zero"); ! ## Initial evaluation of the integrand on the subintervals [q_subs, q_errs] = __quadgk_eval__ (f, subs); q0 = sum (q_subs); err0 = sum (q_errs); *************** *** 307,314 **** first = true; while (true) ! ## Check for sub-intervals that are too small. Test must be ! ## performed in untransformed sub-intervals. What is a good ## value for this test. Shampine suggests 100*eps if (any (abs (diff (trans (subs), [], 2) / h0) < 100 * myeps)) q = q0; --- 316,323 ---- first = true; while (true) ! ## Check for subintervals that are too small. Test must be ! ## performed in untransformed subintervals. What is a good ## value for this test. Shampine suggests 100*eps if (any (abs (diff (trans (subs), [], 2) / h0) < 100 * myeps)) q = q0; *************** *** 333,339 **** break; endif ! ## Accept the sub-intervals that meet the convergence criteria idx = find (abs (q_errs) < tol .* abs(diff (subs, [], 2)) ./ h); if (first) q = sum (q_subs (idx)); --- 342,348 ---- break; endif ! ## Accept the subintervals that meet the convergence criteria idx = find (abs (q_errs) < tol .* abs(diff (subs, [], 2)) ./ h); if (first) q = sum (q_subs (idx)); *************** *** 347,353 **** endif subs(idx,:) = []; ! ## If no remaining sub-intervals exit if (rows (subs) == 0) break; endif --- 356,362 ---- endif subs(idx,:) = []; ! ## If no remaining subintervals exit if (rows (subs) == 0) break; endif *************** *** 356,367 **** disp([rows(subs), err, q0]); endif ! ## Split remaining sub-intervals in two mid = (subs(:,2) + subs(:,1)) ./ 2; subs = [subs(:,1), mid; mid, subs(:,2)]; ! ## If the maximum sub-interval count is met accept remaining ! ## sub-interval and exit if (rows (subs) > maxint) warning ("quadgk: maximum interval count (%d) met", maxint); q += sum (q_subs); --- 365,376 ---- disp([rows(subs), err, q0]); endif ! ## Split remaining subintervals in two mid = (subs(:,2) + subs(:,1)) ./ 2; subs = [subs(:,1), mid; mid, subs(:,2)]; ! ## If the maximum subinterval count is met accept remaining ! ## subinterval and exit if (rows (subs) > maxint) warning ("quadgk: maximum interval count (%d) met", maxint); q += sum (q_subs); *************** *** 369,375 **** break; endif ! ## Evaluation of the integrand on the remaining sub-intervals [q_subs, q_errs] = __quadgk_eval__ (f, subs); endwhile --- 378,384 ---- break; endif ! ## Evaluation of the integrand on the remaining subintervals [q_subs, q_errs] = __quadgk_eval__ (f, subs); endwhile *************** *** 449,451 **** --- 458,461 ---- %!assert (quadgk (@(z) log (z), 1+1i, 1+1i, 'WayPoints', [1-1i, -1,-1i, -1+1i]), -pi * 1i, 1e-6) %!assert (quadgk (@(x) exp(-x .^ 2), -Inf, Inf), sqrt(pi), 1e-6) + %!assert (quadgk (@(x) exp(-x .^ 2), -Inf, 0), sqrt(pi)/2, 1e-6) diff -cNr octave-3.4.0/scripts/general/quadl.m octave-3.4.1/scripts/general/quadl.m *** octave-3.4.0/scripts/general/quadl.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/quadl.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 22,47 **** ## @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}) ## @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}, @var{p1}, @var{p2}, @dots{}) ## ! ## Numerically evaluate integral using adaptive Lobatto rule. ! ## @code{quadl (@var{f}, @var{a}, @var{b})} approximates the integral of ! ## @code{@var{f}(@var{x})} to machine precision. @var{f} is either a ! ## function handle, inline function or string containing the name of ! ## the function to evaluate. The function @var{f} must return a vector ! ## of output values if given a vector of input values. ! ## ! ## If defined, @var{tol} defines the relative tolerance to which to ! ## which to integrate @code{@var{f}(@var{x})}. While if @var{trace} is ! ## defined, displays the left end point of the current interval, the ! ## interval length, and the partial integral. ! ## ! ## Additional arguments @var{p1}, etc., are passed directly to @var{f}. ! ## To use default values for @var{tol} and @var{trace}, one may pass ! ## empty matrices. ## ## Reference: W. Gander and W. Gautschi, @cite{Adaptive Quadrature - ## Revisited}, BIT Vol. 40, No. 1, March 2000, pp. 84--101. ## @url{http://www.inf.ethz.ch/personal/gander/} ! ## @seealso{quad,quadv,quadgk,quadcc,trapz,dblquad,triplequad} ## @end deftypefn ## Author: Walter Gautschi --- 22,54 ---- ## @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}) ## @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}, @var{p1}, @var{p2}, @dots{}) ## ! ## Numerically evaluate the integral of @var{f} from @var{a} to @var{b} ! ## using an adaptive Lobatto rule. ! ## @var{f} is a function handle, inline function, or string ! ## containing the name of the function to evaluate. ! ## The function @var{f} must be vectorized and return a vector of output values ! ## if given a vector of input values. ! ## ! ## @var{a} and @var{b} are the lower and upper limits of integration. Both ! ## limits must be finite. ! ## ! ## The optional argument @var{tol} defines the relative tolerance with which ! ## to perform the integration. The default value is @code{eps}. ! ## ! ## The algorithm used by @code{quadl} involves recursively subdividing the ! ## integration interval. ! ## If @var{trace} is defined then for each subinterval display: (1) the left ! ## end of the subinterval, (2) the length of the subinterval, (3) the ! ## approximation of the integral over the subinterval. ! ## ! ## Additional arguments @var{p1}, etc., are passed directly to the function ! ## @var{f}. To use default values for @var{tol} and @var{trace}, one may pass ! ## empty matrices ([]). ## ## Reference: W. Gander and W. Gautschi, @cite{Adaptive Quadrature - ## Revisited}, BIT Vol. 40, No. 1, March 2000, pp. 84--101. ## @url{http://www.inf.ethz.ch/personal/gander/} ! ## @seealso{quad, quadv, quadgk, quadcc, trapz, dblquad, triplequad} ## @end deftypefn ## Author: Walter Gautschi *************** *** 55,61 **** ## * replace global variable terminate2 with local function need_warning ## * add paper ref to docs ! function Q = quadl (f, a, b, tol, trace, varargin) need_warning (1); if (nargin < 4) tol = []; --- 62,68 ---- ## * replace global variable terminate2 with local function need_warning ## * add paper ref to docs ! function q = quadl (f, a, b, tol, trace, varargin) need_warning (1); if (nargin < 4) tol = []; *************** *** 128,134 **** if (is == 0) is = b-a; endif ! Q = adaptlobstp (f, a, b, fa, fb, is, trace, varargin{:}); endfunction ## ADAPTLOBSTP Recursive function used by QUADL. --- 135,141 ---- if (is == 0) is = b-a; endif ! q = adaptlobstp (f, a, b, fa, fb, is, trace, varargin{:}); endfunction ## ADAPTLOBSTP Recursive function used by QUADL. *************** *** 141,147 **** ## ## Walter Gautschi, 08/03/98 ! function Q = adaptlobstp (f, a, b, fa, fb, is, trace, varargin) h = (b-a)/2; m = (a+b)/2; alpha = sqrt(2/3); --- 148,154 ---- ## ## Walter Gautschi, 08/03/98 ! function q = adaptlobstp (f, a, b, fa, fb, is, trace, varargin) h = (b-a)/2; m = (a+b)/2; alpha = sqrt(2/3); *************** *** 165,176 **** warning ("quadl: required tolerance may not be met"); need_warning (0); endif ! Q = i1; if (trace) ! disp ([a, b-a, Q]); endif else ! Q = (adaptlobstp (f, a, mll, fa, fmll, is, trace, varargin{:}) + adaptlobstp (f, mll, ml, fmll, fml, is, trace, varargin{:}) + adaptlobstp (f, ml, m, fml, fm, is, trace, varargin{:}) + adaptlobstp (f, m, mr, fm, fmr, is, trace, varargin{:}) --- 172,183 ---- warning ("quadl: required tolerance may not be met"); need_warning (0); endif ! q = i1; if (trace) ! disp ([a, b-a, q]); endif else ! q = (adaptlobstp (f, a, mll, fa, fmll, is, trace, varargin{:}) + adaptlobstp (f, mll, ml, fmll, fml, is, trace, varargin{:}) + adaptlobstp (f, ml, m, fml, fm, is, trace, varargin{:}) + adaptlobstp (f, m, mr, fm, fmr, is, trace, varargin{:}) diff -cNr octave-3.4.0/scripts/general/quadv.m octave-3.4.1/scripts/general/quadv.m *** octave-3.4.0/scripts/general/quadv.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/quadv.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 21,52 **** ## @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}) ## @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}) ## @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}, @var{p1}, @var{p2}, @dots{}) ! ## @deftypefnx {Function File} {[@var{q}, @var{fcnt}] =} quadv (@dots{}) ## ## Numerically evaluate the integral of @var{f} from @var{a} to @var{b} ! ## using adaptive Simpson's rule. ! ## @var{f} is either a function handle, inline function or string ## containing the name of the function to evaluate. ! ## The function defined by @var{f} may be a scalar, vector or array-valued. ## ! ## If a value for @var{tol} is given, it defines the tolerance used to stop ! ## the adaptation procedure, otherwise the default value of 1e-6 is used. ## ! ## The algorithm used by @code{quadv}, involves recursively subdividing the ! ## integration interval and applying Simpson's rule on each sub-interval. ! ## If @var{trace} is @var{true}, after computing each of these partial ! ## integrals, display the total number of function evaluations, the left end ! ## of the sub-interval, the length of the sub-interval and the approximation ! ## of the integral over the sub-interval. ! ## ! ## Additional arguments @var{p1}, etc., are passed directly to @var{f}. ! ## To use default values for @var{tol} and @var{trace}, one may pass ! ## empty matrices. ## ! ##@seealso{quad, quadl, quadgk, quadcc, trapz, dblquad, triplequad} ## @end deftypefn ! function [q, fcnt] = quadv (f, a, b, tol, trace, varargin) if (nargin < 3) print_usage (); endif --- 21,63 ---- ## @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}) ## @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}) ## @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}, @var{p1}, @var{p2}, @dots{}) ! ## @deftypefnx {Function File} {[@var{q}, @var{nfun}] =} quadv (@dots{}) ## ## Numerically evaluate the integral of @var{f} from @var{a} to @var{b} ! ## using an adaptive Simpson's rule. ! ## @var{f} is a function handle, inline function, or string ## containing the name of the function to evaluate. ! ## @code{quadv} is a vectorized version of @code{quad} and the function ! ## defined by @var{f} must accept a scalar or vector as input and return a ! ## scalar, vector, or array as output. ## ! ## @var{a} and @var{b} are the lower and upper limits of integration. Both ! ## limits must be finite. ## ! ## The optional argument @var{tol} defines the tolerance used to stop ! ## the adaptation procedure. The default value is @math{1e^{-6}}. ## ! ## The algorithm used by @code{quadv} involves recursively subdividing the ! ## integration interval and applying Simpson's rule on each subinterval. ! ## If @var{trace} is true then after computing each of these partial ! ## integrals display: (1) the total number of function evaluations, ! ## (2) the left end of the subinterval, (3) the length of the subinterval, ! ## (4) the approximation of the integral over the subinterval. ! ## ! ## Additional arguments @var{p1}, etc., are passed directly to the function ! ## @var{f}. To use default values for @var{tol} and @var{trace}, one may pass ! ## empty matrices ([]). ! ## ! ## The result of the integration is returned in @var{q}. @var{nfun} indicates ! ## the number of function evaluations that were made. ! ## ! ## Note: @code{quadv} is written in Octave's scripting language and can be ! ## used recursively in @code{dblquad} and @code{triplequad}, unlike the ! ## similar @code{quad} function. ! ## @seealso{quad, quadl, quadgk, quadcc, trapz, dblquad, triplequad} ## @end deftypefn ! function [q, nfun] = quadv (f, a, b, tol, trace, varargin) if (nargin < 3) print_usage (); endif *************** *** 73,79 **** fa = feval (f, a, varargin{:}); fc = feval (f, c, varargin{:}); fb = feval (f, b, varargin{:}); ! fcnt = 3; ## If have edge singularities, move edge point by eps*(b-a) as ## discussed in Shampine paper used to implement quadgk --- 84,90 ---- fa = feval (f, a, varargin{:}); fc = feval (f, c, varargin{:}); fb = feval (f, b, varargin{:}); ! nfun = 3; ## If have edge singularities, move edge point by eps*(b-a) as ## discussed in Shampine paper used to implement quadgk *************** *** 87,96 **** h = (b - a); q = (b - a) / 6 * (fa + 4 * fc + fb); ! [q, fcnt, hmin] = simpsonstp (f, a, b, c, fa, fb, fc, q, fcnt, abs (h), tol, trace, varargin{:}); ! if (fcnt > 10000) warning ("maximum iteration count reached"); elseif (isnan (q) || isinf (q)) warning ("infinite or NaN function evaluations were returned"); --- 98,107 ---- h = (b - a); q = (b - a) / 6 * (fa + 4 * fc + fb); ! [q, nfun, hmin] = simpsonstp (f, a, b, c, fa, fb, fc, q, nfun, abs (h), tol, trace, varargin{:}); ! if (nfun > 10000) warning ("maximum iteration count reached"); elseif (isnan (q) || isinf (q)) warning ("infinite or NaN function evaluations were returned"); *************** *** 99,114 **** endif endfunction ! function [q, fcnt, hmin] = simpsonstp (f, a, b, c, fa, fb, fc, q0, ! fcnt, hmin, tol, trace, varargin) ! if (fcnt > 10000) q = q0; else d = (a + c) / 2; e = (c + b) / 2; fd = feval (f, d, varargin{:}); fe = feval (f, e, varargin{:}); ! fcnt += 2; q1 = (c - a) / 6 * (fa + 4 * fd + fc); q2 = (b - c) / 6 * (fc + 4 * fe + fb); q = q1 + q2; --- 110,125 ---- endif endfunction ! function [q, nfun, hmin] = simpsonstp (f, a, b, c, fa, fb, fc, q0, ! nfun, hmin, tol, trace, varargin) ! if (nfun > 10000) q = q0; else d = (a + c) / 2; e = (c + b) / 2; fd = feval (f, d, varargin{:}); fe = feval (f, e, varargin{:}); ! nfun += 2; q1 = (c - a) / 6 * (fa + 4 * fd + fc); q2 = (b - c) / 6 * (fc + 4 * fe + fb); q = q1 + q2; *************** *** 118,131 **** endif if (trace) ! disp ([fcnt, a, b-a, q]); endif ## Force at least one adpative step. ! if (fcnt == 5 || abs (q - q0) > tol) ! [q1, fcnt, hmin] = simpsonstp (f, a, c, d, fa, fc, fd, q1, fcnt, hmin, tol, trace, varargin{:}); ! [q2, fcnt, hmin] = simpsonstp (f, c, b, e, fc, fb, fe, q2, fcnt, hmin, tol, trace, varargin{:}); q = q1 + q2; endif --- 129,142 ---- endif if (trace) ! disp ([nfun, a, b-a, q]); endif ## Force at least one adpative step. ! if (nfun == 5 || abs (q - q0) > tol) ! [q1, nfun, hmin] = simpsonstp (f, a, c, d, fa, fc, fd, q1, nfun, hmin, tol, trace, varargin{:}); ! [q2, nfun, hmin] = simpsonstp (f, c, b, e, fc, fb, fe, q2, nfun, hmin, tol, trace, varargin{:}); q = q1 + q2; endif diff -cNr octave-3.4.0/scripts/general/randi.m octave-3.4.1/scripts/general/randi.m *** octave-3.4.0/scripts/general/randi.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/randi.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 20,26 **** ## @deftypefn {Function File} {} randi (@var{imax}) ## @deftypefnx {Function File} {} randi (@var{imax}, @var{n}) ## @deftypefnx {Function File} {} randi (@var{imax}, @var{m}, @var{n}, @dots{}) ! ## @deftypefnx {Function File} {} randi ([@var{imin}, @var{imax}], @dots{}) ## @deftypefnx {Function File} {} randi (@dots{}, "@var{class}") ## Return random integers in the range 1:@var{imax}. ## --- 20,26 ---- ## @deftypefn {Function File} {} randi (@var{imax}) ## @deftypefnx {Function File} {} randi (@var{imax}, @var{n}) ## @deftypefnx {Function File} {} randi (@var{imax}, @var{m}, @var{n}, @dots{}) ! ## @deftypefnx {Function File} {} randi ([@var{imin} @var{imax}], @dots{}) ## @deftypefnx {Function File} {} randi (@dots{}, "@var{class}") ## Return random integers in the range 1:@var{imax}. ## *************** *** 47,53 **** ## uses class "double" to represent numbers. This limits the maximum ## integer (@var{imax}) and range (@var{imax} - @var{imin}) to the value ## returned by the @code{bitmax} function. For IEEE floating point numbers ! ## this value is @w{@code{2^53 - 1}}. ## ## @seealso{rand} ## @end deftypefn --- 47,53 ---- ## uses class "double" to represent numbers. This limits the maximum ## integer (@var{imax}) and range (@var{imax} - @var{imin}) to the value ## returned by the @code{bitmax} function. For IEEE floating point numbers ! ## this value is @w{@math{2^{53} - 1}}. ## ## @seealso{rand} ## @end deftypefn diff -cNr octave-3.4.0/scripts/general/repmat.m octave-3.4.1/scripts/general/repmat.m *** octave-3.4.0/scripts/general/repmat.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/repmat.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} repmat (@var{A}, @var{m}, @var{n}) ## @deftypefnx {Function File} {} repmat (@var{A}, [@var{m} @var{n}]) ## @deftypefnx {Function File} {} repmat (@var{A}, [@var{m} @var{n} @var{p} @dots{}]) ## Form a block matrix of size @var{m} by @var{n}, with a copy of matrix --- 18,26 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} repmat (@var{A}, @var{m}) ! ## @deftypefnx {Function File} {} repmat (@var{A}, @var{m}, @var{n}) ! ## @deftypefnx {Function File} {} repmat (@var{A}, @var{m}, @var{n}, @var{p}, @dots{}) ## @deftypefnx {Function File} {} repmat (@var{A}, [@var{m} @var{n}]) ## @deftypefnx {Function File} {} repmat (@var{A}, [@var{m} @var{n} @var{p} @dots{}]) ## Form a block matrix of size @var{m} by @var{n}, with a copy of matrix diff -cNr octave-3.4.0/scripts/general/rot90.m octave-3.4.1/scripts/general/rot90.m *** octave-3.4.0/scripts/general/rot90.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/rot90.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,23 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} rot90 (@var{A}, @var{k}) ## Return a copy of @var{A} with the elements rotated counterclockwise in ## 90-degree increments. The second argument is optional, and specifies ## how many 90-degree rotations are to be applied (the default value is 1). --- 17,24 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} rot90 (@var{A}) ! ## @deftypefnx {Function File} {} rot90 (@var{A}, @var{k}) ## Return a copy of @var{A} with the elements rotated counterclockwise in ## 90-degree increments. The second argument is optional, and specifies ## how many 90-degree rotations are to be applied (the default value is 1). *************** *** 44,51 **** ## @end group ## @end example ## ! ## Due to the difficulty of defining an axis about which to rotate the ! ## matrix @code{rot90} only work with 2-D arrays. To rotate N-d arrays ## use @code{rotdim} instead. ## @seealso{rotdim, flipud, fliplr, flipdim} ## @end deftypefn --- 45,51 ---- ## @end group ## @end example ## ! ## Note that @code{rot90} only works with 2-D arrays. To rotate N-D arrays ## use @code{rotdim} instead. ## @seealso{rotdim, flipud, fliplr, flipdim} ## @end deftypefn diff -cNr octave-3.4.0/scripts/general/rotdim.m octave-3.4.1/scripts/general/rotdim.m *** octave-3.4.0/scripts/general/rotdim.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/rotdim.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,30 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} rotdim (@var{x}, @var{n}, @var{plane}) ## Return a copy of @var{x} with the elements rotated counterclockwise in ! ## 90-degree increments. The second argument is optional, and specifies ! ## how many 90-degree rotations are to be applied (the default value is 1). ## The third argument is also optional and defines the plane of the ! ## rotation. As such @var{plane} is a two element vector containing two ! ## different valid dimensions of the matrix. If @var{plane} is not given ! ## Then the first two non-singleton dimensions are used. ## ## Negative values of @var{n} rotate the matrix in a clockwise direction. ## For example, --- 17,33 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} rotdim (@var{x}) ! ## @deftypefnx {Function File} {} rotdim (@var{x}, @var{n}) ! ## @deftypefnx {Function File} {} rotdim (@var{x}, @var{n}, @var{plane}) ## Return a copy of @var{x} with the elements rotated counterclockwise in ! ## 90-degree increments. ! ## The second argument @var{n} is optional, and specifies how many 90-degree ! ## rotations are to be applied (the default value is 1). ## The third argument is also optional and defines the plane of the ! ## rotation. If present, @var{plane} is a two element vector containing two ! ## different valid dimensions of the matrix. When @var{plane} is not given ! ## the first two non-singleton dimensions are used. ## ## Negative values of @var{n} rotate the matrix in a clockwise direction. ## For example, diff -cNr octave-3.4.0/scripts/general/runlength.m octave-3.4.1/scripts/general/runlength.m *** octave-3.4.0/scripts/general/runlength.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/runlength.m 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,38 **** - ## Copyright (C) 2005-2011 Paul Kienzle - ## - ## This file is part of Octave. - ## - ## Octave 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. - ## - ## Octave 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 Octave; see the file COPYING. If not, see - ## . - - ## -*- texinfo -*- - ## @deftypefn {Function File} {} runlength (@var{x}) - ## Find the lengths of all sequences of common values. Return the - ## vector of lengths and the value that was repeated. - ## - ## @example - ## @group - ## runlength ([2, 2, 0, 4, 4, 4, 0, 1, 1, 1, 1]) - ## @result{} [2, 1, 3, 1, 4] - ## @end group - ## @end example - ## @end deftypefn - - function [count, value] = runlength (x) - idx = [find(x(1:end-1) != x(2:end)), length(x)]; - value = x(idx); - count = diff ([0 idx]); - endfunction - - %!assert (runlength([2 2 0 4 4 4 0 1 1 1 1]), [2 1 3 1 4]); --- 0 ---- diff -cNr octave-3.4.0/scripts/general/shiftdim.m octave-3.4.1/scripts/general/shiftdim.m *** octave-3.4.0/scripts/general/shiftdim.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/shiftdim.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 19,25 **** ## -*- texinfo -*- ## @deftypefn {Function File} {@var{y} =} shiftdim (@var{x}, @var{n}) ## @deftypefnx {Function File} {[@var{y}, @var{ns}] =} shiftdim (@var{x}) ! ## Shifts the dimension of @var{x} by @var{n}, where @var{n} must be ## an integer scalar. When @var{n} is positive, the dimensions of ## @var{x} are shifted to the left, with the leading dimensions ## circulated to the end. If @var{n} is negative, then the dimensions --- 19,25 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {@var{y} =} shiftdim (@var{x}, @var{n}) ## @deftypefnx {Function File} {[@var{y}, @var{ns}] =} shiftdim (@var{x}) ! ## Shift the dimensions of @var{x} by @var{n}, where @var{n} must be ## an integer scalar. When @var{n} is positive, the dimensions of ## @var{x} are shifted to the left, with the leading dimensions ## circulated to the end. If @var{n} is negative, then the dimensions diff -cNr octave-3.4.0/scripts/general/sortrows.m octave-3.4.1/scripts/general/sortrows.m *** octave-3.4.0/scripts/general/sortrows.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/sortrows.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} sortrows (@var{A}, @var{c}) ## Sort the rows of the matrix @var{A} according to the order of the ## columns specified in @var{c}. If @var{c} is omitted, a ## lexicographical sort is used. By default ascending order is used --- 18,25 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {[@var{s}, @var{i}] =} sortrows (@var{A}) ! ## @deftypefnx {Function File} {[@var{s}, @var{i}] =} sortrows (@var{A}, @var{c}) ## Sort the rows of the matrix @var{A} according to the order of the ## columns specified in @var{c}. If @var{c} is omitted, a ## lexicographical sort is used. By default ascending order is used *************** *** 101,103 **** --- 102,115 ---- %! assert (issparse (sx)); %! assert (x, full (sx)); %! assert (idx, sidx); + + %!test + %! m = [1, 0, 0, 4]; + %! c = 1; + %! [x, idx] = sortrows (m, c); + %! [sx, sidx] = sortrows (sparse (m), c); + %! assert (x, m); + %! assert (idx, 1); + %! assert (issparse (sx)); + %! assert (x, full (sx)); + %! assert (idx, sidx); diff -cNr octave-3.4.0/scripts/general/strerror.m octave-3.4.1/scripts/general/strerror.m *** octave-3.4.0/scripts/general/strerror.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/strerror.m 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,65 **** - ## Copyright (C) 1995-2011 John W. Eaton - ## - ## This file is part of Octave. - ## - ## Octave 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. - ## - ## Octave 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 Octave; see the file COPYING. If not, see - ## . - - ## -*- texinfo -*- - ## @deftypefn {Function File} {} strerror (@var{name}, @var{num}) - ## Return the text of an error message for function @var{name} - ## corresponding to the error number @var{num}. This function is intended - ## to be used to print useful error messages for those functions that - ## return numeric error codes. - ## @end deftypefn - - ## Author: jwe - - function msg = strerror (name, num) - - if (nargin != 2) - print_usage (); - endif - - if (! ischar (name)) - error ("strerror: first argument must be a string"); - endif - - if (! isscalar (num)) - error ("strerror: second argument must be a scalar"); - endif - - if (strcmp (name, "fsolve")) - - if (num == -2) - msg = "input error\n"; - elseif (num == -1) - msg = "error encountered in user-supplied function\n"; - elseif (num == 1) - msg = "solution converged to requested tolerance\n"; - elseif (num == 3) - msg = "iteration is not making good progress\n"; - elseif (num == 4) - msg = "iteration limit exceeded\n"; - else - error ("strerror: unrecognized error code for fsolve"); - endif - - else - - error ("strerror: unrecognized function NAME"); - - endif - - endfunction --- 0 ---- diff -cNr octave-3.4.0/scripts/general/trapz.m octave-3.4.1/scripts/general/trapz.m *** octave-3.4.0/scripts/general/trapz.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/trapz.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,31 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {@var{z} =} trapz (@var{y}) ! ## @deftypefnx {Function File} {@var{z} =} trapz (@var{x}, @var{y}) ! ## @deftypefnx {Function File} {@var{z} =} trapz (@dots{}, @var{dim}) ## ! ## Numerical integration using trapezoidal method. @code{trapz ! ## (@var{y})} computes the integral of the @var{y} along the first ! ## non-singleton dimension. If the argument @var{x} is omitted a ! ## equally spaced vector is assumed. @code{trapz (@var{x}, @var{y})} ! ## evaluates the integral with respect to @var{x}. ## ## @seealso{cumtrapz} ## @end deftypefn --- 17,54 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {@var{q} =} trapz (@var{y}) ! ## @deftypefnx {Function File} {@var{q} =} trapz (@var{x}, @var{y}) ! ## @deftypefnx {Function File} {@var{q} =} trapz (@dots{}, @var{dim}) ## ! ## Numerically evaluate the integral of points @var{y} using the trapezoidal ! ## method. ! ## @w{@code{trapz (@var{y})}} computes the integral of @var{y} along the first ! ## non-singleton dimension. When the argument @var{x} is omitted an ! ## equally spaced @var{x} vector with unit spacing (1) is assumed. ! ## @code{trapz (@var{x}, @var{y})} evaluates the integral with respect ! ## to the spacing in @var{x} and the values in @var{y}. This is useful if ! ## the points in @var{y} have been sampled unevenly. ! ## If the optional @var{dim} argument is given, operate along this dimension. ! ## ! ## If @var{x} is not specified then unit spacing will be used. To scale ! ## the integral to the correct value you must multiply by the actual spacing ! ## value (deltaX). As an example, the integral of @math{x^3} over the range ! ## [0, 1] is @math{x^4/4} or 0.25. The following code uses @code{trapz} to ! ## calculate the integral in three different ways. ! ## ! ## @example ! ## @group ! ## x = 0:0.1:1; ! ## y = x.^3; ! ## q = trapz (y) ! ## @result{} q = 2.525 # No scaling ! ## q * 0.1 ! ## @result{} q = 0.2525 # Approximation to integral by scaling ! ## trapz (x, y) ! ## @result{} q = 0.2525 # Same result by specifying @var{x} ! ## @end group ! ## @end example ## ## @seealso{cumtrapz} ## @end deftypefn *************** *** 41,100 **** print_usage (); endif ! nd = ndims (x); ! sz = size (x); - have_x = false; - have_dim = false; if (nargin == 3) ! have_x = true; have_dim = true; ! endif ! if (nargin == 2) if (! size_equal (x, y) && isscalar (y)) dim = y; have_dim = true; else ! have_x = true; endif endif if (! have_dim) ## Find the first non-singleton dimension. ! dim = find (sz > 1, 1); ! if (isempty (dim)) ! dim = 1; ! endif else ! dim = floor (dim); ! if (dim < 1 || dim > nd) ! error ("trapz: invalid dimension DIM along which to sort"); endif endif n = sz(dim); ! idx1 = cell (); ! for i = 1:nd ! idx1{i} = 1:sz(i); ! endfor ! idx2 = idx1; idx1{dim} = 2 : n; idx2{dim} = 1 : (n - 1); ! if (! have_x) z = 0.5 * sum (x(idx1{:}) + x(idx2{:}), dim); else ! if (! size_equal (x, y)) ! error ("trapz: X and Y must have same shape"); endif - z = 0.5 * sum ((x(idx1{:}) - x(idx2{:})) .* - (y(idx1{:}) + y(idx2{:})), dim); endif endfunction %!assert (trapz(1:5), 12) %!assert (trapz(0:0.5:2,1:5), 6) ! %!assert (trapz([1:5;1:5],2),[12;12]) ! %!assert (trapz([1:5;1:5].',1),[12,12]) ! %!assert (trapz([0:0.5:2;0:0.5:2],[1:5;1:5],2),[6;6]) ! %!assert (trapz([0:0.5:2;0:0.5:2].',[1:5;1:5].',1),[6,6]) --- 64,138 ---- print_usage (); endif ! have_xy = have_dim = false; if (nargin == 3) ! have_xy = true; have_dim = true; ! elseif (nargin == 2) if (! size_equal (x, y) && isscalar (y)) dim = y; have_dim = true; else ! have_xy = true; endif endif + if (have_xy) + nd = ndims (y); + sz = size (y); + else + nd = ndims (x); + sz = size (x); + endif + if (! have_dim) ## Find the first non-singleton dimension. ! (dim = find (sz > 1, 1)) || (dim = 1); else ! if (!(isscalar (dim) && dim == fix (dim)) ! || !(1 <= dim && dim <= nd)) ! error ("trapz: DIM must be an integer and a valid dimension"); endif endif n = sz(dim); ! idx1 = idx2 = repmat ({':'}, [nd, 1]); idx1{dim} = 2 : n; idx2{dim} = 1 : (n - 1); ! if (! have_xy) z = 0.5 * sum (x(idx1{:}) + x(idx2{:}), dim); else ! if (isvector (x) && !isvector (y)) ! if (length (x) != sz(dim)) ! error ("trapz: length of X and length of Y along DIM must match"); ! endif ! ## Reshape vector to point along dimension DIM ! shape = ones (nd, 1); ! shape(dim) = sz(dim); ! x = reshape (x, shape); ! z = 0.5 * sum (bsxfun (@times, diff (x), y(idx1{:}) + y(idx2{:})), dim); ! else ! if (! size_equal (x, y)) ! error ("trapz: X and Y must have same shape"); ! endif ! z = 0.5 * sum (diff (x, 1, dim) .* (y(idx1{:}) + y(idx2{:})), dim); endif endif endfunction + %!assert (trapz(1:5), 12) %!assert (trapz(0:0.5:2,1:5), 6) ! %!assert (trapz([1:5;1:5].',1), [12,12]) ! %!assert (trapz([1:5;1:5],2), [12;12]) ! %!assert (trapz(repmat(reshape(1:5,1,1,5),2,2), 3), [12 12; 12 12]) ! %!assert (trapz([0:0.5:2;0:0.5:2].',[1:5;1:5].',1), [6, 6]) ! %!assert (trapz([0:0.5:2;0:0.5:2],[1:5;1:5],2), [6; 6]) ! %!assert (trapz(repmat(reshape([0:0.5:2],1,1,5),2,2), ... ! %! repmat(reshape(1:5,1,1,5),2,2), 3), [6 6; 6 6]) ! %!assert (trapz(0:0.5:2,[(1:5)',(1:5)']), [6, 6]) ! %!assert (trapz(0:0.5:2,[(1:5);(1:5)],2), [6; 6]) ! %!assert (trapz(0:0.5:2,repmat(reshape(1:5,1,1,5),2,2),3), [6 6; 6 6]) ! diff -cNr octave-3.4.0/scripts/general/triplequad.m octave-3.4.1/scripts/general/triplequad.m *** octave-3.4.0/scripts/general/triplequad.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/general/triplequad.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 17,39 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}, @var{tol}, @var{quadf}, @dots{}) ! ## Numerically evaluate a triple integral. The function over which to ! ## integrate is defined by @code{@var{f}}, and the interval for the ! ## integration is defined by @code{[@var{xa}, @var{xb}, @var{ya}, ! ## @var{yb}, @var{za}, @var{zb}]}. The function @var{f} must accept a ! ## vector @var{x} and a scalar @var{y}, and return a vector of the same ! ## length as @var{x}. ## ! ## If defined, @var{tol} defines the absolute tolerance to which to ! ## which to integrate each sub-integral. ## ## Additional arguments, are passed directly to @var{f}. To use the default ! ## value for @var{tol} one may pass an empty matrix. ! ## @seealso{dblquad,quad,quadv,quadl,quadgk,quadcc,trapz} ## @end deftypefn ! function Q = triplequad(f, xa, xb, ya, yb, za, zb, tol, quadf, varargin) if (nargin < 7) print_usage (); endif --- 17,50 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}) ! ## @deftypefnx {Function File} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}, @var{tol}) ! ## @deftypefnx {Function File} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}, @var{tol}, @var{quadf}) ! ## @deftypefnx {Function File} {} triplequad (@var{f}, @var{xa}, @var{xb}, @var{ya}, @var{yb}, @var{za}, @var{zb}, @var{tol}, @var{quadf}, @dots{}) ! ## Numerically evaluate the triple integral of @var{f}. ! ## @var{f} is a function handle, inline function, or string ! ## containing the name of the function to evaluate. The function @var{f} must ! ## have the form @math{w = f(x,y,z)} where either @var{x} or @var{y} is a ! ## vector and the remaining inputs are scalars. It should return a vector of ! ## the same length and orientation as @var{x} or @var{y}. ## ! ## @var{xa}, @var{ya}, @var{za} and @var{xb}, @var{yb}, @var{zb} are the lower ! ## and upper limits of integration for x, y, and z respectively. The ! ## underlying integrator determines whether infinite bounds are accepted. ! ## ! ## The optional argument @var{tol} defines the absolute tolerance used to ! ## integrate each sub-integral. The default value is @math{1e^{-6}}. ! ## ! ## The optional argument @var{quadf} specifies which underlying integrator ! ## function to use. Any choice but @code{quad} is available and the default ! ## is @code{quadgk}. ## ## Additional arguments, are passed directly to @var{f}. To use the default ! ## value for @var{tol} or @var{quadf} one may pass an empty matrix ([]). ! ## @seealso{dblquad, quad, quadv, quadl, quadgk, quadcc, trapz} ## @end deftypefn ! function q = triplequad(f, xa, xb, ya, yb, za, zb, tol, quadf, varargin) if (nargin < 7) print_usage (); endif *************** *** 50,62 **** varargin = {}; endif ! Q = dblquad(@(y, z) inner (y, z, f, xa, xb, tol, quadf, varargin{:}),ya, yb, za, zb, tol); endfunction ! function Q = __triplequad_inner__ (y, z, f, xa, xb, tol, quadf, varargin) ! Q = zeros (size(y)); for i = 1 : length (y) ! Q(i) = feval (quadf, @(x) f (x, y(i), z, varargin{:}), xa, xb, tol); endfor endfunction --- 61,73 ---- varargin = {}; endif ! q = dblquad(@(y, z) inner (y, z, f, xa, xb, tol, quadf, varargin{:}),ya, yb, za, zb, tol); endfunction ! function q = __triplequad_inner__ (y, z, f, xa, xb, tol, quadf, varargin) ! q = zeros (size(y)); for i = 1 : length (y) ! q(i) = feval (quadf, @(x) f (x, y(i), z, varargin{:}), xa, xb, tol); endfor endfunction *************** *** 64,66 **** --- 75,78 ---- % !#assert (triplequad (@(x,y,z) exp(-x.^2 - y.^2 - z.^2) , -1, 1, -1, 1, -1, 1, [], @quadgk), pi ^ (3/2) * erf(1).^3, 1e-6) % !#assert (triplequad (@(x,y,z) exp(-x.^2 - y.^2 - z.^2) , -1, 1, -1, 1, -1, 1, [], @quadl), pi ^ (3/2) * erf(1).^3, 1e-6) % !#assert (triplequad (@(x,y,z) exp(-x.^2 - y.^2 - z.^2) , -1, 1, -1, 1, -1, 1, [], @quadv), pi ^ (3/2) * erf(1).^3, 1e-6) + diff -cNr octave-3.4.0/scripts/geometry/convhull.m octave-3.4.1/scripts/geometry/convhull.m *** octave-3.4.0/scripts/geometry/convhull.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/geometry/convhull.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 19,25 **** ## -*- texinfo -*- ## @deftypefn {Function File} {@var{H} =} convhull (@var{x}, @var{y}) ## @deftypefnx {Function File} {@var{H} =} convhull (@var{x}, @var{y}, @var{opt}) ! ## Returns the index vector to the points of the enclosing convex hull. The ## data points are defined by the x and y vectors. ## ## A third optional argument, which must be a string, contains extra options --- 19,25 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {@var{H} =} convhull (@var{x}, @var{y}) ## @deftypefnx {Function File} {@var{H} =} convhull (@var{x}, @var{y}, @var{opt}) ! ## Return the index vector to the points of the enclosing convex hull. The ## data points are defined by the x and y vectors. ## ## A third optional argument, which must be a string, contains extra options diff -cNr octave-3.4.0/scripts/geometry/delaunay3.m octave-3.4.1/scripts/geometry/delaunay3.m *** octave-3.4.0/scripts/geometry/delaunay3.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/geometry/delaunay3.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 26,32 **** ## A fourth optional argument, which must be a string or cell array of strings, ## contains extra options passed to the underlying qhull command. See the ## documentation for the Qhull library for details. ! ## @seealso{delaunay,delaunayn} ## @end deftypefn ## Author: Kai Habel --- 26,32 ---- ## A fourth optional argument, which must be a string or cell array of strings, ## contains extra options passed to the underlying qhull command. See the ## documentation for the Qhull library for details. ! ## @seealso{delaunay, delaunayn} ## @end deftypefn ## Author: Kai Habel diff -cNr octave-3.4.0/scripts/geometry/dsearch.m octave-3.4.1/scripts/geometry/dsearch.m *** octave-3.4.0/scripts/geometry/dsearch.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/geometry/dsearch.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 19,25 **** ## -*- texinfo -*- ## @deftypefn {Function File} {@var{idx} =} dsearch (@var{x}, @var{y}, @var{tri}, @var{xi}, @var{yi}) ## @deftypefnx {Function File} {@var{idx} =} dsearch (@var{x}, @var{y}, @var{tri}, @var{xi}, @var{yi}, @var{s}) ! ## Returns the index @var{idx} or the closest point in @code{@var{x}, @var{y}} ## to the elements @code{[@var{xi}(:), @var{yi}(:)]}. The variable @var{s} is ## accepted for compatibility but is ignored. ## @seealso{dsearchn, tsearch} --- 19,25 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {@var{idx} =} dsearch (@var{x}, @var{y}, @var{tri}, @var{xi}, @var{yi}) ## @deftypefnx {Function File} {@var{idx} =} dsearch (@var{x}, @var{y}, @var{tri}, @var{xi}, @var{yi}, @var{s}) ! ## Return the index @var{idx} or the closest point in @code{@var{x}, @var{y}} ## to the elements @code{[@var{xi}(:), @var{yi}(:)]}. The variable @var{s} is ## accepted for compatibility but is ignored. ## @seealso{dsearchn, tsearch} diff -cNr octave-3.4.0/scripts/geometry/dsearchn.m octave-3.4.1/scripts/geometry/dsearchn.m *** octave-3.4.0/scripts/geometry/dsearchn.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/geometry/dsearchn.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 21,27 **** ## @deftypefnx {Function File} {@var{idx} =} dsearchn (@var{x}, @var{tri}, @var{xi}, @var{outval}) ## @deftypefnx {Function File} {@var{idx} =} dsearchn (@var{x}, @var{xi}) ## @deftypefnx {Function File} {[@var{idx}, @var{d}] =} dsearchn (@dots{}) ! ## Returns the index @var{idx} or the closest point in @var{x} to the elements ## @var{xi}. If @var{outval} is supplied, then the values of @var{xi} that are ## not contained within one of the simplices @var{tri} are set to ## @var{outval}. Generally, @var{tri} is returned from @code{delaunayn --- 21,27 ---- ## @deftypefnx {Function File} {@var{idx} =} dsearchn (@var{x}, @var{tri}, @var{xi}, @var{outval}) ## @deftypefnx {Function File} {@var{idx} =} dsearchn (@var{x}, @var{xi}) ## @deftypefnx {Function File} {[@var{idx}, @var{d}] =} dsearchn (@dots{}) ! ## Return the index @var{idx} or the closest point in @var{x} to the elements ## @var{xi}. If @var{outval} is supplied, then the values of @var{xi} that are ## not contained within one of the simplices @var{tri} are set to ## @var{outval}. Generally, @var{tri} is returned from @code{delaunayn diff -cNr octave-3.4.0/scripts/geometry/trisurf.m octave-3.4.1/scripts/geometry/trisurf.m *** octave-3.4.0/scripts/geometry/trisurf.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/geometry/trisurf.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 27,33 **** ## @seealso{triplot, trimesh, delaunay3} ## @end deftypefn ! function h = trisurf (tri, x, y, z, varargin) if (nargin < 3) print_usage (); --- 27,33 ---- ## @seealso{triplot, trimesh, delaunay3} ## @end deftypefn ! function varargout = trisurf (tri, x, y, z, varargin) if (nargin < 3) print_usage (); *************** *** 44,61 **** else c = z; endif ! newplot (); if (nargout > 0) ! h = patch ("Faces", tri, "Vertices", [x(:), y(:), z(:)], ! "FaceVertexCData", reshape (c, numel (c), 1), ! "FaceColor", "flat", "EdgeColor", "none", ! varargin{:}); ! else ! patch ("Faces", tri, "Vertices", [x(:), y(:), z(:)], ! "FaceVertexCData", reshape (c, numel (c), 1), ! "FaceColor", "flat", "EdgeColor", "none", ! varargin{:}); endif if (! ishold ()) --- 44,65 ---- else c = z; endif ! if (! any (strcmpi (varargin, "FaceColor"))) ! nfc = numel (varargin) + 1; ! varargin(nfc+(0:1)) = {"FaceColor", "flat"}; ! else ! nfc = find (any (strcmpi (varargin, "FaceColor")), 1); ! endif ! if (! any (strcmpi (varargin, "EdgeColor")) ! && strcmpi (varargin{nfc+1}, "interp")) ! varargin(end+(1:2)) = {"EdgeColor", "none"}; ! endif newplot (); + h = patch ("Faces", tri, "Vertices", [x(:), y(:), z(:)], + "FaceVertexCData", reshape (c, numel (c), 1), + varargin{:}); if (nargout > 0) ! varargout = {h}; endif if (! ishold ()) *************** *** 73,75 **** --- 77,102 ---- %! z = peaks (x, y); %! tri = delaunay (x(:), y(:)); %! trisurf (tri, x(:), y(:), z(:)); + + %!demo + %! x = rand (100, 1); + %! y = rand (100, 1); + %! z = x.^2 + y.^2; + %! tri = delaunay (x, y); + %! trisurf (tri, x, y, z) + + %!demo + %! x = rand (100, 1); + %! y = rand (100, 1); + %! z = x.^2 + y.^2; + %! tri = delaunay (x, y); + %! trisurf (tri, x, y, z, "facecolor", "interp") + + %!demo + %! x = rand (100, 1); + %! y = rand (100, 1); + %! z = x.^2 + y.^2; + %! tri = delaunay (x, y); + %! trisurf (tri, x, y, z, "facecolor", "interp", "edgecolor", "k") + + diff -cNr octave-3.4.0/scripts/geometry/tsearchn.m octave-3.4.1/scripts/geometry/tsearchn.m *** octave-3.4.0/scripts/geometry/tsearchn.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/geometry/tsearchn.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {[@var{idx}, @var{p}] =} tsearchn (@var{x}, @var{t}, @var{xi}) ! ## Searches for the enclosing Delaunay convex hull. For @code{@var{t} = ## delaunayn (@var{x})}, finds the index in @var{t} containing the ## points @var{xi}. For points outside the convex hull, @var{idx} is NaN. ## If requested @code{tsearchn} also returns the Barycentric coordinates @var{p} --- 18,24 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {[@var{idx}, @var{p}] =} tsearchn (@var{x}, @var{t}, @var{xi}) ! ## Search for the enclosing Delaunay convex hull. For @code{@var{t} = ## delaunayn (@var{x})}, finds the index in @var{t} containing the ## points @var{xi}. For points outside the convex hull, @var{idx} is NaN. ## If requested @code{tsearchn} also returns the Barycentric coordinates @var{p} diff -cNr octave-3.4.0/scripts/geometry/voronoi.m octave-3.4.1/scripts/geometry/voronoi.m *** octave-3.4.0/scripts/geometry/voronoi.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/geometry/voronoi.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 21,27 **** ## @deftypefnx {Function File} {} voronoi (@var{x}, @var{y}, "plotstyle") ## @deftypefnx {Function File} {} voronoi (@var{x}, @var{y}, "plotstyle", @var{options}) ## @deftypefnx {Function File} {[@var{vx}, @var{vy}] =} voronoi (@dots{}) ! ## plots Voronoi diagram of points @code{(@var{x}, @var{y})}. ## The Voronoi facets with points at infinity are not drawn. ## [@var{vx}, @var{vy}] = voronoi(@dots{}) returns the vertices instead of ## plotting the --- 21,27 ---- ## @deftypefnx {Function File} {} voronoi (@var{x}, @var{y}, "plotstyle") ## @deftypefnx {Function File} {} voronoi (@var{x}, @var{y}, "plotstyle", @var{options}) ## @deftypefnx {Function File} {[@var{vx}, @var{vy}] =} voronoi (@dots{}) ! ## Plot Voronoi diagram of points @code{(@var{x}, @var{y})}. ## The Voronoi facets with points at infinity are not drawn. ## [@var{vx}, @var{vy}] = voronoi(@dots{}) returns the vertices instead of ## plotting the diff -cNr octave-3.4.0/scripts/help/get_first_help_sentence.m octave-3.4.1/scripts/help/get_first_help_sentence.m *** octave-3.4.0/scripts/help/get_first_help_sentence.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/help/get_first_help_sentence.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,31 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {[@var{retval}, @var{status}] =} get_first_help_sentence (@var{name}, @var{max_len}) ! ## Return the first sentence of a function help text. ## ! ## The function reads the first sentence of the help text of the function ! ## @var{name}. The first sentence is defined as the text after the function ## declaration until either the first period (".") or the first appearance of ! ## two consecutive end-lines ("\n\n"). The text is truncated to a maximum ! ## length ! ## of @var{max_len}, which defaults to 80. ## ## The optional output argument @var{status} returns the status reported by ## @code{makeinfo}. If only one output argument is requested, and @var{status} --- 17,30 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {[@var{text}, @var{status}] =} get_first_help_sentence (@var{name}) ! ## @deftypefnx {Function File} {[@var{text}, @var{status}] =} get_first_help_sentence (@var{name}, @var{max_len}) ! ## Return the first sentence of a function's help text. ## ! ## The first sentence is defined as the text after the function ## declaration until either the first period (".") or the first appearance of ! ## two consecutive newlines ("\n\n"). The text is truncated to a maximum ! ## length of @var{max_len}, which defaults to 80. ## ## The optional output argument @var{status} returns the status reported by ## @code{makeinfo}. If only one output argument is requested, and @var{status} *************** *** 36,58 **** ## @example ## @group ## get_first_help_sentence ("get_first_help_sentence") ! ## @print{} ans = Return the first sentence of a function help text. ## @end group ## @end example ## @end deftypefn ! function [retval, status] = get_first_help_sentence (name, max_len = 80) ## Check input ! if (nargin == 0) ! error ("get_first_help_sentence: not enough input arguments"); endif if (!ischar (name)) ! error ("get_first_help_sentence: first input must be a string"); endif if (!isnumeric (max_len) || max_len <= 0 || max_len != round (max_len)) ! error ("get_first_help_sentence: second input must be positive integer"); endif ## First, we get the raw help text --- 35,57 ---- ## @example ## @group ## get_first_help_sentence ("get_first_help_sentence") ! ## @print{} ans = Return the first sentence of a function's help text. ## @end group ## @end example ## @end deftypefn ! function [text, status] = get_first_help_sentence (name, max_len = 80) ## Check input ! if (nargin < 1 || nargin > 2) ! print_usage (); endif if (!ischar (name)) ! error ("get_first_help_sentence: NAME must be a string"); endif if (!isnumeric (max_len) || max_len <= 0 || max_len != round (max_len)) ! error ("get_first_help_sentence: MAX_LEN must be positive integer"); endif ## First, we get the raw help text *************** *** 61,71 **** ## Then, we take action depending on the format switch (lower (format)) case "plain text" ! [retval, status] = first_sentence_plain_text (help_text, max_len); case "texinfo" ! [retval, status] = first_sentence_texinfo (help_text, max_len); case "html" ! [retval, status] = first_sentence_html (help_text, max_len); case "not documented" error ("get_first_help_sentence: `%s' is not documented\n", name); case "not found" --- 60,70 ---- ## Then, we take action depending on the format switch (lower (format)) case "plain text" ! [text, status] = first_sentence_plain_text (help_text, max_len); case "texinfo" ! [text, status] = first_sentence_texinfo (help_text, max_len); case "html" ! [text, status] = first_sentence_html (help_text, max_len); case "not documented" error ("get_first_help_sentence: `%s' is not documented\n", name); case "not found" *************** *** 80,97 **** endfunction ## This function extracts the first sentence from a plain text help text ! function [retval, status] = first_sentence_plain_text (help_text, max_len) ## Extract first line by searching for a period or a double line-end. ! period_idx = find (help_text == ".", 1); line_end_idx = strfind (help_text, "\n\n"); ! retval = help_text (1:min ([period_idx(:); line_end_idx(:); max_len; length(help_text)])); status = 0; endfunction ## This function extracts the first sentence from a Texinfo help text. ## The function works by removing @def* from the texinfo text. After this, we ## render the text to plain text using makeinfo, and then extract the first line. ! function [retval, status] = first_sentence_texinfo (help_text, max_len) ## Lines ending with "@\n" are continuation lines, so they should be concatenated ## with the following line. help_text = strrep (help_text, "@\n", " "); --- 79,96 ---- endfunction ## This function extracts the first sentence from a plain text help text ! function [text, status] = first_sentence_plain_text (help_text, max_len) ## Extract first line by searching for a period or a double line-end. ! period_idx = find (help_text == '.', 1); line_end_idx = strfind (help_text, "\n\n"); ! text = help_text (1:min ([period_idx(:); line_end_idx(:); max_len; length(help_text)])); status = 0; endfunction ## This function extracts the first sentence from a Texinfo help text. ## The function works by removing @def* from the texinfo text. After this, we ## render the text to plain text using makeinfo, and then extract the first line. ! function [text, status] = first_sentence_texinfo (help_text, max_len) ## Lines ending with "@\n" are continuation lines, so they should be concatenated ## with the following line. help_text = strrep (help_text, "@\n", " "); *************** *** 141,156 **** [help_text, status] = __makeinfo__ (help_text, "plain text"); ## Extract first line with plain text method. ! retval = first_sentence_plain_text (help_text, max_len); endfunction ## This function extracts the first sentence from a html help text. ## The function simply removes the tags and treats the text as plain text. ! function [retval, status] = first_sentence_html (help_text, max_len) ## Strip tags [help_text, status] = strip_html_tags (help_text); ## Extract first line with plain text method. ! retval = first_sentence_plain_text (help_text, max_len); endfunction --- 140,165 ---- [help_text, status] = __makeinfo__ (help_text, "plain text"); ## Extract first line with plain text method. ! text = first_sentence_plain_text (help_text, max_len); endfunction ## This function extracts the first sentence from a html help text. ## The function simply removes the tags and treats the text as plain text. ! function [text, status] = first_sentence_html (help_text, max_len) ## Strip tags [help_text, status] = strip_html_tags (help_text); ## Extract first line with plain text method. ! text = first_sentence_plain_text (help_text, max_len); endfunction + %!assert (strcmp (get_first_help_sentence('get_first_help_sentence'), "Return the first sentence of a function's help text.")); + + %% Test input validation + %!error get_first_help_sentence () + %!error get_first_help_sentence (1, 2, 3) + %!error get_first_help_sentence (1) + %!error get_first_help_sentence ('ls', 'a') + %!error get_first_help_sentence ('ls', 0) + %!error get_first_help_sentence ('ls', 80.1) + diff -cNr octave-3.4.0/scripts/image/brighten.m octave-3.4.1/scripts/image/brighten.m *** octave-3.4.0/scripts/image/brighten.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/image/brighten.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 20,26 **** ## @deftypefn {Function File} {@var{map_out} =} brighten (@var{map}, @var{beta}) ## @deftypefnx {Function File} {@var{map_out} =} brighten (@var{h}, @var{beta}) ## @deftypefnx {Function File} {@var{map_out} =} brighten (@var{beta}) ! ## Darkens or brightens the given colormap. If the @var{map} argument ## is omitted, the function is applied to the current colormap. The first ## argument can also be a valid graphics handle @var{h}, in which case ## @code{brighten} is applied to the colormap associated with this handle. --- 20,26 ---- ## @deftypefn {Function File} {@var{map_out} =} brighten (@var{map}, @var{beta}) ## @deftypefnx {Function File} {@var{map_out} =} brighten (@var{h}, @var{beta}) ## @deftypefnx {Function File} {@var{map_out} =} brighten (@var{beta}) ! ## Darken or brighten the given colormap. If the @var{map} argument ## is omitted, the function is applied to the current colormap. The first ## argument can also be a valid graphics handle @var{h}, in which case ## @code{brighten} is applied to the colormap associated with this handle. diff -cNr octave-3.4.0/scripts/io/dlmwrite.m octave-3.4.1/scripts/io/dlmwrite.m *** octave-3.4.0/scripts/io/dlmwrite.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/io/dlmwrite.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 172,178 **** repmat ([repmat(delim, 1, c + columns(M)-1), newline], 1, r)); endif if (iscomplex (M)) ! cprecision = regexprep (precision, '^%([-.0-9])','%+$1'); template = [precision, cprecision, "i", ... repmat([delim, precision, cprecision, "i"], 1, ... columns(M) - 1), newline ]; --- 172,178 ---- repmat ([repmat(delim, 1, c + columns(M)-1), newline], 1, r)); endif if (iscomplex (M)) ! cprecision = regexprep (precision, '^%([-\d.])','%+$1'); template = [precision, cprecision, "i", ... repmat([delim, precision, cprecision, "i"], 1, ... columns(M) - 1), newline ]; diff -cNr octave-3.4.0/scripts/io/fileread.m octave-3.4.1/scripts/io/fileread.m *** octave-3.4.0/scripts/io/fileread.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/io/fileread.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,25 **** ## -*- texinfo -*- ## @deftypefn {Function File} {@var{str} =} fileread (@var{filename}) ! ## Read the contents of a file and return it as a string. ! ## @seealso{fread, textread} ## @end deftypefn function str = fileread (filename) --- 18,25 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {@var{str} =} fileread (@var{filename}) ! ## Read the contents of @var{filename} and return it as a string. ! ## @seealso{fread, textread, sscanf} ## @end deftypefn function str = fileread (filename) diff -cNr octave-3.4.0/scripts/io/strread.m octave-3.4.1/scripts/io/strread.m *** octave-3.4.0/scripts/io/strread.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/io/strread.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 188,194 **** ## Determine the number of words per line format = strrep (format, "%", " %"); ! [~, ~, ~, fmt_words] = regexp (format, "[^ ]+"); num_words_per_line = numel (fmt_words); for m = 1:numel(fmt_words) --- 188,194 ---- ## Determine the number of words per line format = strrep (format, "%", " %"); ! [~, ~, ~, fmt_words] = regexp (format, '[^ ]+'); num_words_per_line = numel (fmt_words); for m = 1:numel(fmt_words) *************** *** 240,246 **** function out = split_by (text, sep) sep = union (sep, "\n"); ! pat = sprintf ("[^%s]+", sep); [~, ~, ~, out] = regexp (text, pat); out(cellfun (@isempty, out)) = {""}; out = strtrim (out); --- 240,246 ---- function out = split_by (text, sep) sep = union (sep, "\n"); ! pat = sprintf ('[^%s]+', sep); [~, ~, ~, out] = regexp (text, pat); out(cellfun (@isempty, out)) = {""}; out = strtrim (out); diff -cNr octave-3.4.0/scripts/io/textread.m octave-3.4.1/scripts/io/textread.m *** octave-3.4.0/scripts/io/textread.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/io/textread.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 54,60 **** ## Maybe skip header lines headerlines = find (strcmpi (varargin, "headerlines"), 1); if (! isempty (headerlines)) ! fskipl (fid, headerlines); varargin(headerlines:headerlines+1) = []; endif --- 54,64 ---- ## Maybe skip header lines headerlines = find (strcmpi (varargin, "headerlines"), 1); if (! isempty (headerlines)) ! hdr_lines = floor (varargin{headerlines + 1}); ! ## Beware of zero valued headerline, fskipl will count lines to EOF then ! if (hdr_lines > 0) ! fskipl (fid, hdr_lines); ! endif varargin(headerlines:headerlines+1) = []; endif diff -cNr octave-3.4.0/scripts/io/textscan.m octave-3.4.1/scripts/io/textscan.m *** octave-3.4.0/scripts/io/textscan.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/io/textscan.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,29 **** ## -*- texinfo -*- ## @deftypefn {Function File} {@var{C} =} textscan (@var{fid}, @var{format}) ! ## @deftypefnx {Function File} {@var{C} =} textscan (@var{fid}, @var{format}, @ ! ## @var{n}) ! ## @deftypefnx {Function File} {@var{C} =} textscan (@var{fid}, @var{format}, @ ! ## @var{param}, @var{value}, @dots{}) ! ## @deftypefnx {Function File} {@var{C} =} textscan (@var{fid}, @var{format}, @ ! ## @var{n}, @var{param}, @var{value}, @dots{}) ## @deftypefnx {Function File} {@var{C} =} textscan (@var{str}, @dots{}) ## @deftypefnx {Function File} {[@var{C}, @var{position}] =} textscan (@dots{}) ## Read data from a text file. --- 18,26 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {@var{C} =} textscan (@var{fid}, @var{format}) ! ## @deftypefnx {Function File} {@var{C} =} textscan (@var{fid}, @var{format}, @var{n}) ! ## @deftypefnx {Function File} {@var{C} =} textscan (@var{fid}, @var{format}, @var{param}, @var{value}, @dots{}) ! ## @deftypefnx {Function File} {@var{C} =} textscan (@var{fid}, @var{format}, @var{n}, @var{param}, @var{value}, @dots{}) ## @deftypefnx {Function File} {@var{C} =} textscan (@var{str}, @dots{}) ## @deftypefnx {Function File} {[@var{C}, @var{position}] =} textscan (@dots{}) ## Read data from a text file. *************** *** 84,91 **** ## Maybe skip header lines headerlines = find (strcmpi (args, "headerlines"), 1); if (! isempty (headerlines)) ! fskipl (fid, headerlines); ! args(headerlines:headerlines+1) = []; endif if (isfinite (nlines)) str = ""; --- 81,91 ---- ## Maybe skip header lines headerlines = find (strcmpi (args, "headerlines"), 1); if (! isempty (headerlines)) ! hdr_lines = floor (varargin{headerlines + 1}); ! ## Beware of zero valued headerline, fskipl will count lines to EOF ! if (hdr_lines > 0) ! fskipl (fid, hdr_lines); ! endif endif if (isfinite (nlines)) str = ""; diff -cNr octave-3.4.0/scripts/linear-algebra/cond.m octave-3.4.1/scripts/linear-algebra/cond.m *** octave-3.4.0/scripts/linear-algebra/cond.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/linear-algebra/cond.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 19,27 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} cond (@var{A}) ## @deftypefnx {Function File} {} cond (@var{A}, @var{p}) ! ## Compute the @var{p}-norm condition number of a matrix. @code{cond ! ## (@var{A})} is ! ## defined as ## @tex ## $ {\parallel A \parallel_p * \parallel A^{-1} \parallel_p .} $ ## @end tex --- 19,27 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} cond (@var{A}) ## @deftypefnx {Function File} {} cond (@var{A}, @var{p}) ! ## Compute the @var{p}-norm condition number of a matrix. ! ## ! ## @code{cond (@var{A})} is ## defined as ## @tex ## $ {\parallel A \parallel_p * \parallel A^{-1} \parallel_p .} $ ## @end tex diff -cNr octave-3.4.0/scripts/linear-algebra/cross.m octave-3.4.1/scripts/linear-algebra/cross.m *** octave-3.4.0/scripts/linear-algebra/cross.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/linear-algebra/cross.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 33,39 **** ## along the first dimension with 3 elements. The optional argument ## @var{dim} forces the cross product to be calculated along ## the specified dimension. ! ## @seealso{dot} ## @end deftypefn ## Author: Kurt Hornik --- 33,39 ---- ## along the first dimension with 3 elements. The optional argument ## @var{dim} forces the cross product to be calculated along ## the specified dimension. ! ## @seealso{dot, curl, divergence} ## @end deftypefn ## Author: Kurt Hornik diff -cNr octave-3.4.0/scripts/linear-algebra/expm.m octave-3.4.1/scripts/linear-algebra/expm.m *** octave-3.4.0/scripts/linear-algebra/expm.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/linear-algebra/expm.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 68,73 **** --- 68,74 ---- ## @code{Dq(A)} ## @end ifnottex ## is ill-conditioned. + ## @seealso{logm, sqrtm} ## @end deftypefn function r = expm (A) diff -cNr octave-3.4.0/scripts/linear-algebra/logm.m octave-3.4.1/scripts/linear-algebra/logm.m *** octave-3.4.0/scripts/linear-algebra/logm.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/linear-algebra/logm.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 32,38 **** ## The optional argument @var{opt_iters} is the maximum number of square roots ## to compute and defaults to 100. The optional output @var{iters} is the ## number of square roots actually computed. ! ## ## @end deftypefn ## Reference: N. J. Higham, Functions of Matrices: Theory and Computation --- 32,38 ---- ## The optional argument @var{opt_iters} is the maximum number of square roots ## to compute and defaults to 100. The optional output @var{iters} is the ## number of square roots actually computed. ! ## @seealso{expm, sqrtm} ## @end deftypefn ## Reference: N. J. Higham, Functions of Matrices: Theory and Computation diff -cNr octave-3.4.0/scripts/linear-algebra/null.m octave-3.4.1/scripts/linear-algebra/null.m *** octave-3.4.0/scripts/linear-algebra/null.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/linear-algebra/null.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,23 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} null (@var{A}, @var{tol}) ## Return an orthonormal basis of the null space of @var{A}. ## ## The dimension of the null space is taken as the number of singular --- 17,24 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} null (@var{A}) ! ## @deftypefnx {Function File} {} null (@var{A}, @var{tol}) ## Return an orthonormal basis of the null space of @var{A}. ## ## The dimension of the null space is taken as the number of singular diff -cNr octave-3.4.0/scripts/linear-algebra/orth.m octave-3.4.1/scripts/linear-algebra/orth.m *** octave-3.4.0/scripts/linear-algebra/orth.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/linear-algebra/orth.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,23 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} orth (@var{A}, @var{tol}) ## Return an orthonormal basis of the range space of @var{A}. ## ## The dimension of the range space is taken as the number of singular --- 17,24 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} orth (@var{A}) ! ## @deftypefnx {Function File} {} orth (@var{A}, @var{tol}) ## Return an orthonormal basis of the range space of @var{A}. ## ## The dimension of the range space is taken as the number of singular diff -cNr octave-3.4.0/scripts/linear-algebra/rank.m octave-3.4.1/scripts/linear-algebra/rank.m *** octave-3.4.0/scripts/linear-algebra/rank.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/linear-algebra/rank.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,23 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} rank (@var{A}, @var{tol}) ## Compute the rank of @var{A}, using the singular value decomposition. ## The rank is taken to be the number of singular values of @var{A} that ## are greater than the specified tolerance @var{tol}. If the second --- 17,24 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} rank (@var{A}) ! ## @deftypefnx {Function File} {} rank (@var{A}, @var{tol}) ## Compute the rank of @var{A}, using the singular value decomposition. ## The rank is taken to be the number of singular values of @var{A} that ## are greater than the specified tolerance @var{tol}. If the second diff -cNr octave-3.4.0/scripts/linear-algebra/rref.m octave-3.4.1/scripts/linear-algebra/rref.m *** octave-3.4.0/scripts/linear-algebra/rref.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/linear-algebra/rref.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,25 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {[@var{r}, @var{k}] =} rref (@var{A}, @var{tol}) ! ## ! ## Returns the reduced row echelon form of @var{A}. @var{tol} defaults ## to @code{eps * max (size (@var{A})) * norm (@var{A}, inf)}. ## ## Called with two return arguments, @var{k} returns the vector of --- 17,26 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} rref (@var{A}) ! ## @deftypefnx {Function File} {} rref (@var{A}, @var{tol}) ! ## @deftypefnx {Function File} {[@var{r}, @var{k}] =} rref (@dots{}) ! ## Return the reduced row echelon form of @var{A}. @var{tol} defaults ## to @code{eps * max (size (@var{A})) * norm (@var{A}, inf)}. ## ## Called with two return arguments, @var{k} returns the vector of diff -cNr octave-3.4.0/scripts/linear-algebra/vech.m octave-3.4.1/scripts/linear-algebra/vech.m *** octave-3.4.0/scripts/linear-algebra/vech.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/linear-algebra/vech.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 21,27 **** ## @deftypefn {Function File} {} vech (@var{x}) ## Return the vector obtained by eliminating all supradiagonal elements of ## the square matrix @var{x} and stacking the result one column above the ! ## other. ## @end deftypefn ## See Magnus and Neudecker (1988), Matrix differential calculus with --- 21,30 ---- ## @deftypefn {Function File} {} vech (@var{x}) ## Return the vector obtained by eliminating all supradiagonal elements of ## the square matrix @var{x} and stacking the result one column above the ! ## other. This has uses in matrix calculus where the underlying matrix ! ## is symmetric and it would be pointless to keep values above the main ! ## diagonal. ! ## @seealso{vec} ## @end deftypefn ## See Magnus and Neudecker (1988), Matrix differential calculus with diff -cNr octave-3.4.0/scripts/Makefile.am octave-3.4.1/scripts/Makefile.am *** octave-3.4.0/scripts/Makefile.am 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/Makefile.am 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/common.mk AUTOMAKE_OPTIONS = subdir-objects --- 18,24 ---- # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/build-aux/common.mk AUTOMAKE_OPTIONS = subdir-objects *************** *** 324,330 **** fi @echo "creating .DOCSTRINGS from .m script files" @$(srcdir)/mkdoc "$(srcdir)" $(FCN_FILES) -- $(GEN_FCN_FILES) > $@ ! $(top_srcdir)/move-if-change $@ DOCSTRINGS touch $@ $(GEN_FCN_FILES) : %.m : %.in Makefile --- 324,330 ---- fi @echo "creating .DOCSTRINGS from .m script files" @$(srcdir)/mkdoc "$(srcdir)" $(FCN_FILES) -- $(GEN_FCN_FILES) > $@ ! $(top_srcdir)/build-aux/move-if-change $@ DOCSTRINGS touch $@ $(GEN_FCN_FILES) : %.m : %.in Makefile diff -cNr octave-3.4.0/scripts/Makefile.in octave-3.4.1/scripts/Makefile.in *** octave-3.4.0/scripts/Makefile.in 2011-02-08 05:03:37.000000000 -0500 --- octave-3.4.1/scripts/Makefile.in 2011-06-15 11:31:29.000000000 -0400 *************** *** 72,84 **** $(srcdir)/statistics/models/module.mk \ $(srcdir)/statistics/tests/module.mk \ $(srcdir)/strings/module.mk $(srcdir)/testfun/module.mk \ ! $(srcdir)/time/module.mk $(top_srcdir)/common.mk ChangeLog \ mkinstalldirs noinst_PROGRAMS = gethelp$(EXEEXT) subdir = scripts ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ --- 72,87 ---- $(srcdir)/statistics/models/module.mk \ $(srcdir)/statistics/tests/module.mk \ $(srcdir)/strings/module.mk $(srcdir)/testfun/module.mk \ ! $(srcdir)/time/module.mk $(top_srcdir)/build-aux/common.mk \ mkinstalldirs noinst_PROGRAMS = gethelp$(EXEEXT) subdir = scripts ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/ax_pthread.m4 \ ! $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ *************** *** 86,101 **** $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ --- 89,108 ---- $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filemode.m4 \ ! $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpurge.m4 \ ! $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/fseek.m4 \ ! $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftell.m4 \ ! $(top_srcdir)/m4/ftello.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ *************** *** 109,134 **** $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ ! $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ! $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ! $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ ! $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ ! $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ ! $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \ ! $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memchr.m4 \ ! $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ ! $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkfifo.m4 \ ! $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \ ! $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ ! $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nanosleep.m4 \ ! $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ ! $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/printf.m4 \ ! $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ ! $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \ ! $(top_srcdir)/m4/round.m4 $(top_srcdir)/m4/roundf.m4 \ ! $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/select.m4 \ ! $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ --- 116,143 ---- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ ! $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ ! $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ! $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ ! $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/math_h.m4 \ ! $(top_srcdir)/m4/mathfunc.m4 $(top_srcdir)/m4/mbrtowc.m4 \ ! $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ ! $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/md5.m4 \ ! $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \ ! $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \ ! $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkstemp.m4 \ ! $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ ! $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/multiarch.m4 \ ! $(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/nocrash.m4 \ ! $(top_srcdir)/m4/nproc.m4 $(top_srcdir)/m4/open.m4 \ ! $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ ! $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/readlink.m4 \ ! $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ ! $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/round.m4 \ ! $(top_srcdir)/m4/roundf.m4 $(top_srcdir)/m4/save-cwd.m4 \ ! $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/sigaction.m4 \ ! $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ *************** *** 136,164 **** $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \ ! $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ ! $(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \ ! $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/tempname.m4 \ ! $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ ! $(top_srcdir)/m4/times.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ ! $(top_srcdir)/m4/trunc.m4 $(top_srcdir)/m4/truncf.m4 \ ! $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ ! $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/vasnprintf.m4 \ ! $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ ! $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ ! $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ ! $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/acinclude.m4 \ ! $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = --- 145,170 ---- $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strdup.m4 \ ! $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.m4 \ ! $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ ! $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \ ! $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/times.m4 \ ! $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/trunc.m4 \ ! $(top_srcdir)/m4/truncf.m4 $(top_srcdir)/m4/unistd-safer.m4 \ ! $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ ! $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vsnprintf.m4 \ ! $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ ! $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ ! $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = *************** *** 219,225 **** AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ - ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ --- 225,230 ---- *************** *** 371,376 **** --- 376,383 ---- GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ + GNULIB_FGETC = @GNULIB_FGETC@ + GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ *************** *** 380,388 **** --- 387,397 ---- GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ + GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPL = @GNULIB_FREXPL@ + GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ *************** *** 392,397 **** --- 401,408 ---- GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ + GNULIB_GETC = @GNULIB_GETC@ + GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ *************** *** 404,421 **** --- 415,436 ---- GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ + GNULIB_GETS = @GNULIB_GETS@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ + GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ + GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ + GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ *************** *** 446,451 **** --- 461,467 ---- GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ + GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ *************** *** 462,467 **** --- 478,484 ---- GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ + GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ *************** *** 481,486 **** --- 498,504 ---- GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ + GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ *************** *** 496,501 **** --- 514,520 ---- GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ + GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ *************** *** 513,518 **** --- 532,538 ---- GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ + GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ *************** *** 542,552 **** --- 562,574 ---- GNULIB_TIMES = @GNULIB_TIMES@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ + GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ + GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ *************** *** 558,565 **** --- 580,589 ---- GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ + GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ + GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ *************** *** 589,594 **** --- 613,621 ---- GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ + GNULIB_WCTOMB = @GNULIB_WCTOMB@ + GNULIB_WCTRANS = @GNULIB_WCTRANS@ + GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ *************** *** 655,661 **** HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ - HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ --- 682,687 ---- *************** *** 696,701 **** --- 722,728 ---- HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ + HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ *************** *** 730,735 **** --- 757,763 ---- HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ + HAVE_PCRE_CONFIG = @HAVE_PCRE_CONFIG@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ *************** *** 748,753 **** --- 776,782 ---- HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGACTION = @HAVE_SIGACTION@ + HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ *************** *** 759,765 **** HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ - HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ --- 788,793 ---- *************** *** 787,792 **** --- 815,821 ---- HAVE_SYS_TIMES_H = @HAVE_SYS_TIMES_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ + HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMES = @HAVE_TIMES@ *************** *** 827,833 **** --- 856,864 ---- HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ + HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ + HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ *************** *** 871,876 **** --- 902,908 ---- LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ + LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ *************** *** 881,886 **** --- 913,919 ---- MAGICK_LDFLAGS = @MAGICK_LDFLAGS@ MAGICK_LIBS = @MAGICK_LIBS@ MAKEINFO = @MAKEINFO@ + MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKOCTFILE_DL_LDFLAGS = @MKOCTFILE_DL_LDFLAGS@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ *************** *** 894,906 **** NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ - NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ --- 927,939 ---- NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ + NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ *************** *** 916,928 **** NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ - NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ --- 949,961 ---- NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ + NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ *************** *** 1035,1040 **** --- 1068,1074 ---- REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ + REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ *************** *** 1055,1060 **** --- 1089,1095 ---- REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ + REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ *************** *** 1073,1081 **** --- 1108,1118 ---- REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ + REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ + REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ *************** *** 1109,1114 **** --- 1146,1152 ---- REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ + REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RLD_FLAG = @RLD_FLAG@ *************** *** 1116,1122 **** ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = /bin/sh SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ --- 1154,1160 ---- ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = @SHELL@ SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ *************** *** 1173,1179 **** WARN_CXXFLAGS = @WARN_CXXFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ - WITH_PCRE_CONFIG = @WITH_PCRE_CONFIG@ X11_INCFLAGS = @X11_INCFLAGS@ X11_LIBS = @X11_LIBS@ XMKMF = @XMKMF@ --- 1211,1216 ---- *************** *** 1191,1196 **** --- 1228,1234 ---- abs_top_srcdir = @abs_top_srcdir@ ac_config_files = @ac_config_files@ ac_config_headers = @ac_config_headers@ + ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ *************** *** 1304,1310 **** localverarchlibdir = @localverarchlibdir@ localverfcnfiledir = @localverfcnfiledir@ localveroctfiledir = @localveroctfiledir@ - lt_ECHO = @lt_ECHO@ man1dir = @man1dir@ man1ext = @man1ext@ --- 1342,1347 ---- *************** *** 1407,1413 **** # a space, so protect with $(null)) null = AUTOMAKE_OPTIONS = subdir-objects ! EXTRA_DIST = $(SYSTEM_INPUTRC_FILE_SRC) $(IMAGES) $(FCN_FILES) \ $(FCN_FILES_IN) $(GEN_FCN_FILES) DOCSTRINGS mkdoc mk-pkg-add FCN_FILE_DIRS = @ftp audio deprecated elfun general geometry help \ image io linear-algebra miscellaneous optimization path pkg \ --- 1444,1450 ---- # a space, so protect with $(null)) null = AUTOMAKE_OPTIONS = subdir-objects ! EXTRA_DIST = $(STARTUP_FILE_SRC) $(IMAGES) $(FCN_FILES) \ $(FCN_FILES_IN) $(GEN_FCN_FILES) DOCSTRINGS mkdoc mk-pkg-add FCN_FILE_DIRS = @ftp audio deprecated elfun general geometry help \ image io linear-algebra miscellaneous optimization path pkg \ *************** *** 1423,1429 **** $(polynomial_FCN_FILES) $(set_FCN_FILES) $(signal_FCN_FILES) \ $(sparse_FCN_FILES) $(specfun_FCN_FILES) \ $(special_matrix_FCN_FILES) $(startup_FCN_FILES) \ - $(SYSTEM_STARTUP_FILE_SRC) $(LOCAL_STARTUP_FILE_SRC) \ $(statistics_base_FCN_FILES) \ $(statistics_distributions_FCN_FILES) \ $(statistics_models_FCN_FILES) $(statistics_tests_FCN_FILES) \ --- 1460,1465 ---- *************** *** 1492,1497 **** --- 1528,1534 ---- deprecated/clg.m \ deprecated/complement.m \ deprecated/create_set.m \ + deprecated/cquad.m \ deprecated/dispatch.m \ deprecated/dmult.m \ deprecated/fstat.m \ *************** *** 1499,1504 **** --- 1536,1542 ---- deprecated/glpkmex.m \ deprecated/intwarning.m \ deprecated/iscommand.m \ + deprecated/is_duplicate_entry.m \ deprecated/is_global.m \ deprecated/israwcommand.m \ deprecated/isstr.m \ *************** *** 1507,1512 **** --- 1545,1551 ---- deprecated/krylovb.m \ deprecated/mark_as_command.m \ deprecated/mark_as_rawcommand.m \ + deprecated/perror.m \ deprecated/replot.m \ deprecated/saveimage.m \ deprecated/setstr.m \ *************** *** 1533,1538 **** --- 1572,1578 ---- deprecated/spsumsq.m \ deprecated/spvcat.m \ deprecated/str2mat.m \ + deprecated/strerror.m \ deprecated/unmark_command.m \ deprecated/unmark_rawcommand.m \ deprecated/values.m \ *************** *** 1610,1620 **** general/interp3.m \ general/interpn.m \ general/interpft.m \ - general/is_duplicate_entry.m \ general/isa.m \ general/isdir.m \ general/isequal.m \ general/isequalwithequalnans.m \ general/isscalar.m \ general/issquare.m \ general/isvector.m \ --- 1650,1661 ---- general/interp3.m \ general/interpn.m \ general/interpft.m \ general/isa.m \ + general/iscolumn.m \ general/isdir.m \ general/isequal.m \ general/isequalwithequalnans.m \ + general/isrow.m \ general/isscalar.m \ general/issquare.m \ general/isvector.m \ *************** *** 1624,1630 **** general/nargoutchk.m \ general/nextpow2.m \ general/num2str.m \ - general/perror.m \ general/pol2cart.m \ general/polyarea.m \ general/postpad.m \ --- 1665,1670 ---- *************** *** 1637,1649 **** general/repmat.m \ general/rot90.m \ general/rotdim.m \ - general/runlength.m \ general/saveobj.m \ general/shift.m \ general/shiftdim.m \ general/sortrows.m \ general/sph2cart.m \ - general/strerror.m \ general/structfun.m \ general/subsindex.m \ general/triplequad.m \ --- 1677,1687 ---- *************** *** 1855,1863 **** path/pathdef.m \ path/savepath.m pkg_FCN_FILES = \ pkg/pkg.m \ ! pkg/get_forge_pkg.m plot_GEN_FCN_FILES = \ plot/gnuplot_binary.m --- 1893,1904 ---- path/pathdef.m \ path/savepath.m + pkg_PRIVATE_FCN_FILES = \ + pkg/private/get_forge_pkg.m + pkg_FCN_FILES = \ pkg/pkg.m \ ! $(pkg_PRIVATE_FCN_FILES) plot_GEN_FCN_FILES = \ plot/gnuplot_binary.m *************** *** 1924,1929 **** --- 1965,1971 ---- plot/close.m \ plot/closereq.m \ plot/colorbar.m \ + plot/colstyle.m \ plot/comet.m \ plot/comet3.m \ plot/compass.m \ *************** *** 1997,2002 **** --- 2039,2045 ---- plot/print.m \ plot/quiver.m \ plot/quiver3.m \ + plot/rectangle.m \ plot/refresh.m \ plot/refreshdata.m \ plot/ribbon.m \ *************** *** 2078,2083 **** --- 2121,2132 ---- set/unique.m \ set/private/validargs.m + signal_PRIVATE_FCN_FILES = \ + signal/private/rectangle_lw.m \ + signal/private/rectangle_sw.m \ + signal/private/triangle_lw.m \ + signal/private/triangle_sw.m + signal_FCN_FILES = \ signal/arch_fit.m \ signal/arch_rnd.m \ *************** *** 2101,2108 **** signal/hurst.m \ signal/ifftshift.m \ signal/periodogram.m \ - signal/rectangle_lw.m \ - signal/rectangle_sw.m \ signal/sinc.m \ signal/sinetone.m \ signal/sinewave.m \ --- 2150,2155 ---- *************** *** 2111,2120 **** signal/spencer.m \ signal/stft.m \ signal/synthesis.m \ - signal/triangle_lw.m \ - signal/triangle_sw.m \ signal/unwrap.m \ ! signal/yulewalker.m sparse_FCN_FILES = \ sparse/bicgstab.m \ --- 2158,2166 ---- signal/spencer.m \ signal/stft.m \ signal/synthesis.m \ signal/unwrap.m \ ! signal/yulewalker.m \ ! $(signal_PRIVATE_FCN_FILES) sparse_FCN_FILES = \ sparse/bicgstab.m \ *************** *** 2173,2185 **** startup_FCN_FILES = \ startup/__finish__.m SYSTEM_STARTUP_FILE_SRC = startup/main-rcfile SYSTEM_INPUTRC_FILE_SRC = startup/inputrc - LOCAL_STARTUP_FILE_SRC = startup/local-rcfile STARTUP_FILE_SRC = \ $(SYSTEM_STARTUP_FILE_SRC) \ ! $(SYSTEM_INPUTRC_FILE_SRC) \ ! $(LOCAL_STARTUP_FILE_SRC) statistics_base_FCN_FILES = \ statistics/base/center.m \ --- 2219,2231 ---- startup_FCN_FILES = \ startup/__finish__.m + LOCAL_STARTUP_FILE_SRC = startup/local-rcfile SYSTEM_STARTUP_FILE_SRC = startup/main-rcfile SYSTEM_INPUTRC_FILE_SRC = startup/inputrc STARTUP_FILE_SRC = \ + $(LOCAL_STARTUP_FILE_SRC) \ $(SYSTEM_STARTUP_FILE_SRC) \ ! $(SYSTEM_INPUTRC_FILE_SRC) statistics_base_FCN_FILES = \ statistics/base/center.m \ *************** *** 2209,2214 **** --- 2255,2261 ---- statistics/base/range.m \ statistics/base/ranks.m \ statistics/base/run_count.m \ + statistics/base/runlength.m \ statistics/base/skewness.m \ statistics/base/spearman.m \ statistics/base/statistics.m \ *************** *** 2309,2318 **** statistics/distributions/wblrnd.m \ statistics/distributions/wienrnd.m statistics_models_FCN_FILES = \ statistics/models/logistic_regression.m \ ! statistics/models/logistic_regression_derivatives.m \ ! statistics/models/logistic_regression_likelihood.m statistics_tests_FCN_FILES = \ statistics/tests/anova.m \ --- 2356,2368 ---- statistics/distributions/wblrnd.m \ statistics/distributions/wienrnd.m + statistics_models_PRIVATE_FCN_FILES = \ + statistics/models/private/logistic_regression_derivatives.m \ + statistics/models/private/logistic_regression_likelihood.m + statistics_models_FCN_FILES = \ statistics/models/logistic_regression.m \ ! $(statistics_models_PRIVATE_FCN_FILES) statistics_tests_FCN_FILES = \ statistics/tests/anova.m \ *************** *** 2414,2420 **** .SUFFIXES: .SUFFIXES: .cc .lo .o .obj ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.mk $(srcdir)/@ftp/module.mk $(srcdir)/audio/module.mk $(srcdir)/deprecated/module.mk $(srcdir)/elfun/module.mk $(srcdir)/general/module.mk $(srcdir)/geometry/module.mk $(srcdir)/help/module.mk $(srcdir)/image/module.mk $(srcdir)/io/module.mk $(srcdir)/linear-algebra/module.mk $(srcdir)/miscellaneous/module.mk $(srcdir)/optimization/module.mk $(srcdir)/path/module.mk $(srcdir)/pkg/module.mk $(srcdir)/plot/module.mk $(srcdir)/polynomial/module.mk $(srcdir)/set/module.mk $(srcdir)/signal/module.mk $(srcdir)/sparse/module.mk $(srcdir)/specfun/module.mk $(srcdir)/special-matrix/module.mk $(srcdir)/startup/module.mk $(srcdir)/statistics/base/module.mk $(srcdir)/statistics/distributions/module.mk $(srcdir)/statistics/models/module.mk $(srcdir)/statistics/tests/module.mk $(srcdir)/strings/module.mk $(srcdir)/testfun/module.mk $(srcdir)/time/module.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ --- 2464,2470 ---- .SUFFIXES: .SUFFIXES: .cc .lo .o .obj ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build-aux/common.mk $(srcdir)/@ftp/module.mk $(srcdir)/audio/module.mk $(srcdir)/deprecated/module.mk $(srcdir)/elfun/module.mk $(srcdir)/general/module.mk $(srcdir)/geometry/module.mk $(srcdir)/help/module.mk $(srcdir)/image/module.mk $(srcdir)/io/module.mk $(srcdir)/linear-algebra/module.mk $(srcdir)/miscellaneous/module.mk $(srcdir)/optimization/module.mk $(srcdir)/path/module.mk $(srcdir)/pkg/module.mk $(srcdir)/plot/module.mk $(srcdir)/polynomial/module.mk $(srcdir)/set/module.mk $(srcdir)/signal/module.mk $(srcdir)/sparse/module.mk $(srcdir)/specfun/module.mk $(srcdir)/special-matrix/module.mk $(srcdir)/startup/module.mk $(srcdir)/statistics/base/module.mk $(srcdir)/statistics/distributions/module.mk $(srcdir)/statistics/models/module.mk $(srcdir)/statistics/tests/module.mk $(srcdir)/strings/module.mk $(srcdir)/testfun/module.mk $(srcdir)/time/module.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ *************** *** 2754,2760 **** define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ --- 2804,2810 ---- define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/build-aux/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ *************** *** 2978,2984 **** endef define do_script_install ! $(top_srcdir)/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ --- 3028,3034 ---- endef define do_script_install ! $(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ *************** *** 3244,3250 **** fi @echo "creating .DOCSTRINGS from .m script files" @$(srcdir)/mkdoc "$(srcdir)" $(FCN_FILES) -- $(GEN_FCN_FILES) > $@ ! $(top_srcdir)/move-if-change $@ DOCSTRINGS touch $@ $(GEN_FCN_FILES) : %.m : %.in Makefile --- 3294,3300 ---- fi @echo "creating .DOCSTRINGS from .m script files" @$(srcdir)/mkdoc "$(srcdir)" $(FCN_FILES) -- $(GEN_FCN_FILES) > $@ ! $(top_srcdir)/build-aux/move-if-change $@ DOCSTRINGS touch $@ $(GEN_FCN_FILES) : %.m : %.in Makefile diff -cNr octave-3.4.0/scripts/miscellaneous/bunzip2.m octave-3.4.1/scripts/miscellaneous/bunzip2.m *** octave-3.4.0/scripts/miscellaneous/bunzip2.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/bunzip2.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,26 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} bunzip2 (@var{bzfile}, @var{dir}) ## Unpack the bzip2 archive @var{bzfile} to the directory @var{dir}. If ## @var{dir} is not specified, it defaults to the current directory. ! ## @seealso{unpack, bzip2, tar, untar, gzip, gunzip, zip, unzip} ## @end deftypefn ## Author: Bill Denney --- 17,27 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} bunzip2 (@var{bzfile}) ! ## @deftypefnx {Function File} {} bunzip2 (@var{bzfile}, @var{dir}) ## Unpack the bzip2 archive @var{bzfile} to the directory @var{dir}. If ## @var{dir} is not specified, it defaults to the current directory. ! ## @seealso{bzip2, unpack, gunzip, unzip, untar} ## @end deftypefn ## Author: Bill Denney diff -cNr octave-3.4.0/scripts/miscellaneous/bzip2.m octave-3.4.1/scripts/miscellaneous/bzip2.m *** octave-3.4.0/scripts/miscellaneous/bzip2.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/bzip2.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 22,30 **** ## @deftypefnx {Function File} {@var{entries} =} bzip2 (@var{files}, @var{outdir}) ## Compress the list of files specified in @var{files}. ## Each file is compressed separately and a new file with a '.bz2' extension ! ## is created. The original files are not touched. Existing compressed files ! ## are silently overwritten.If @var{outdir} is defined the compressed versions ! ## of the files are placed in this directory. ## @seealso{bunzip2, gzip, zip, tar} ## @end deftypefn --- 22,30 ---- ## @deftypefnx {Function File} {@var{entries} =} bzip2 (@var{files}, @var{outdir}) ## Compress the list of files specified in @var{files}. ## Each file is compressed separately and a new file with a '.bz2' extension ! ## is created. The original files are not modified. Existing compressed files ! ## are silently overwritten. If @var{outdir} is defined the compressed ! ## files are placed in this directory. ## @seealso{bunzip2, gzip, zip, tar} ## @end deftypefn diff -cNr octave-3.4.0/scripts/miscellaneous/compare_versions.m octave-3.4.1/scripts/miscellaneous/compare_versions.m *** octave-3.4.0/scripts/miscellaneous/compare_versions.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/compare_versions.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 66,72 **** ## Note that version "1.1-test2" will compare as greater than ## "1.1-test10". Also, since the numeric part is compared first, "a" ## compares less than "1a" because the second string starts with a ! ## numeric part even though @code{double("a")} is greater than ## @code{double("1").} ## @end deftypefn --- 66,72 ---- ## Note that version "1.1-test2" will compare as greater than ## "1.1-test10". Also, since the numeric part is compared first, "a" ## compares less than "1a" because the second string starts with a ! ## numeric part even though @code{double("a")} is greater than ## @code{double("1").} ## @end deftypefn diff -cNr octave-3.4.0/scripts/miscellaneous/dump_prefs.m octave-3.4.1/scripts/miscellaneous/dump_prefs.m *** octave-3.4.0/scripts/miscellaneous/dump_prefs.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/dump_prefs.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,26 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} dump_prefs (@var{file}) ! ## Have Octave dump all the current user preference variables to ! ## @var{file} in a format that can be parsed by Octave later. If ! ## @var{file} is omitted, the listing is printed to stdout. ## @end deftypefn ## Author: jwe --- 17,27 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} dump_prefs () ! ## @deftypefnx {Function File} {} dump_prefs (@var{fid}) ! ## Dump all of the current user preference variables in a format that can be ! ## parsed by Octave later. @var{fid} is a file descriptor as returned by ! ## @code{fopen}. If @var{file} is omitted, the listing is printed to stdout. ## @end deftypefn ## Author: jwe diff -cNr octave-3.4.0/scripts/miscellaneous/edit.m octave-3.4.1/scripts/miscellaneous/edit.m *** octave-3.4.0/scripts/miscellaneous/edit.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/edit.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 76,82 **** ## In place of the function name. For example, ## @table @samp ## @item [EDITOR, " %s"] ! ## Use the editor which Octave uses for @code{bug_report}. ## ## @item "xedit %s &" ## pop up simple X11 editor in a separate window --- 76,82 ---- ## In place of the function name. For example, ## @table @samp ## @item [EDITOR, " %s"] ! ## Use the editor which Octave uses for @code{edit_history}. ## ## @item "xedit %s &" ## pop up simple X11 editor in a separate window diff -cNr octave-3.4.0/scripts/miscellaneous/getappdata.m octave-3.4.1/scripts/miscellaneous/getappdata.m *** octave-3.4.0/scripts/miscellaneous/getappdata.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/getappdata.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 16,23 **** ## -*- texinfo -*- ## @deftypefn {Function File} {@var{value} =} getappdata (@var{h}, @var{name}) ! ## Returns the @var{value} for named application data for the object(s) with ## handle(s) @var{h}. ## @end deftypefn ## Author: Ben Abbott --- 16,26 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {@var{value} =} getappdata (@var{h}, @var{name}) ! ## Return the @var{value} for named application data for the object(s) with ## handle(s) @var{h}. + ## @deftypefnx {Function File} {@var{appdata} =} getappdata (@var{h}) + ## Return a structure, @var{appdata}, whose fields correspond to the appdata + ## properties. ## @end deftypefn ## Author: Ben Abbott *************** *** 25,42 **** function val = getappdata (h, name) ! if (! (all (ishandle (h)) && ischar (name))) ! error ("getappdata: invalid input"); ! endif ! ! appdata(numel(h)) = struct(); ! for nh = 1:numel(h) ! appdata(nh) = get (h(nh), "__appdata__"); ! end ! if (nh > 1) ! val = {appdata.(name)}; else ! val = appdata.(name); endif endfunction --- 28,57 ---- function val = getappdata (h, name) ! if (all (ishandle (h)) && nargin == 2 && ischar (name)) ! ## FIXME - Is there a better way to handle non-existent appdata ! ## and missing fields? ! val = cell (numel (h), 1); ! appdata = struct(); ! for nh = 1:numel(h) ! try ! appdata = get (h(nh), "__appdata__"); ! catch ! appdata.(name) = []; ! end_try_catch ! val(nh) = {appdata.(name)}; ! end ! if (nh == 1) ! val = val{1}; ! endif ! elseif (ishandle (h) && numel (h) == 1 && nargin == 1) ! try ! val = get (h, "__appdata__"); ! catch ! val = struct (); ! end_try_catch else ! error ("getappdata: invalid input"); endif endfunction diff -cNr octave-3.4.0/scripts/miscellaneous/gunzip.m octave-3.4.1/scripts/miscellaneous/gunzip.m *** octave-3.4.0/scripts/miscellaneous/gunzip.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/gunzip.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 20,28 **** ## @deftypefn {Function File} {} gunzip (@var{gzfile}, @var{dir}) ## Unpack the gzip archive @var{gzfile} to the directory @var{dir}. If ## @var{dir} is not specified, it defaults to the current directory. If ! ## the @var{gzfile} is a directory, all gzfile in the directory will be ## recursively gunzipped. ! ## @seealso{unpack, bunzip2, tar, untar, gzip, gunzip, zip, unzip} ## @end deftypefn ## Author: Bill Denney --- 20,28 ---- ## @deftypefn {Function File} {} gunzip (@var{gzfile}, @var{dir}) ## Unpack the gzip archive @var{gzfile} to the directory @var{dir}. If ## @var{dir} is not specified, it defaults to the current directory. If ! ## @var{gzfile} is a directory, all gzfiles in the directory will be ## recursively gunzipped. ! ## @seealso{gzip, unpack, bunzip2, unzip, untar} ## @end deftypefn ## Author: Bill Denney diff -cNr octave-3.4.0/scripts/miscellaneous/gzip.m octave-3.4.1/scripts/miscellaneous/gzip.m *** octave-3.4.0/scripts/miscellaneous/gzip.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/gzip.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 21,48 **** ## @deftypefnx {Function File} {@var{entries} =} gzip (@var{files}, @var{outdir}) ## Compress the list of files and/or directories specified in @var{files}. ## Each file is compressed separately and a new file with a '.gz' extension ! ## is created. The original files are not touched. Existing compressed ## files are silently overwritten. If @var{outdir} is defined the compressed ! ## versions of the files are placed in this directory. ## @seealso{gunzip, bzip2, zip, tar} ## @end deftypefn function entries = gzip (varargin) ! if (nargin == 1 || nargin == 2) && (nargout <= 1) ! if nargout == 0 ! __xzip__ ("gzip", "gz", "gzip -r %s", varargin{:}); ! else ! entries = __xzip__ ("gzip", "gz", "gzip -r %s", varargin{:}); ! endif ! else print_usage (); endif endfunction %!error gzip("1", "2", "3"); %!error gzip(); %!error gzip("1", tmpnam); ! %!error gzip(1); %!xtest %! # test gzip together with gunzip %! unwind_protect --- 21,49 ---- ## @deftypefnx {Function File} {@var{entries} =} gzip (@var{files}, @var{outdir}) ## Compress the list of files and/or directories specified in @var{files}. ## Each file is compressed separately and a new file with a '.gz' extension ! ## is created. The original files are not modified. Existing compressed ## files are silently overwritten. If @var{outdir} is defined the compressed ! ## files are placed in this directory. ## @seealso{gunzip, bzip2, zip, tar} ## @end deftypefn function entries = gzip (varargin) ! if (nargin != 1 && nargin != 2) || (nargout > 1) print_usage (); endif + + if (nargout == 0) + __xzip__ ("gzip", "gz", "gzip -r %s", varargin{:}); + else + entries = __xzip__ ("gzip", "gz", "gzip -r %s", varargin{:}); + endif + endfunction %!error gzip("1", "2", "3"); %!error gzip(); %!error gzip("1", tmpnam); ! %!error gzip(1); %!xtest %! # test gzip together with gunzip %! unwind_protect diff -cNr octave-3.4.0/scripts/miscellaneous/license.m octave-3.4.1/scripts/miscellaneous/license.m *** octave-3.4.0/scripts/miscellaneous/license.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/license.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 159,165 **** error ("TOGGLE must be either `enable' of `disable'"); endif else ! error ("feature `%s' not found", feature); endif endif --- 159,165 ---- error ("TOGGLE must be either `enable' of `disable'"); endif else ! error ("FEATURE `%s' not found", feature); endif endif diff -cNr octave-3.4.0/scripts/miscellaneous/ls_command.m octave-3.4.1/scripts/miscellaneous/ls_command.m *** octave-3.4.0/scripts/miscellaneous/ls_command.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/ls_command.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,26 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {[@var{old_cmd} =} ls_command (@var{cmd}) ! ## Set or return the shell command used by Octave's @code{ls} command. ! ## The value of @var{cmd} must be a character string. ! ## With no arguments, simply return the previous value. ## @seealso{ls} ## @end deftypefn --- 17,25 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {@var{val} =} ls_command () ! ## @deftypefnx {Function File} {@var{old_val} =} ls_command (@var{new_val}) ! ## Query or set the shell command used by Octave's @code{ls} command. ## @seealso{ls} ## @end deftypefn diff -cNr octave-3.4.0/scripts/miscellaneous/mkoctfile.m octave-3.4.1/scripts/miscellaneous/mkoctfile.m *** octave-3.4.0/scripts/miscellaneous/mkoctfile.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/mkoctfile.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 51,62 **** ## Add the run-time path to the link command. ## ## @item -Wl,@dots{} ! ## Pass flags though the linker like "-Wl,-rpath=@dots{}". ## The quotes are needed since commas are interpreted as command ## separators. ## ! ## @item -W@dots{} ! ## Pass flags though the compiler like "-Wa,OPTION". ## ## @item -c ## Compile but do not link. --- 51,63 ---- ## Add the run-time path to the link command. ## ## @item -Wl,@dots{} ! ## Pass flags through the linker e.g. "-Wl,-rpath=@dots{}". ## The quotes are needed since commas are interpreted as command ## separators. ## ! ## @item -W,@dots{} ! ## Pass flags through the compiler, e.g. "-W,-O2". The quotes are needed ! ## since commas are interpreted as command separators. ## ## @item -c ## Compile but do not link. diff -cNr octave-3.4.0/scripts/miscellaneous/movefile.m octave-3.4.1/scripts/miscellaneous/movefile.m *** octave-3.4.0/scripts/miscellaneous/movefile.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/movefile.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 110,116 **** endwhile else if (ispc () && ! isunix () ! && ! isempty (file_in_path (getenv_path ("PATH"), "cp.exe"))) p1 = strrep (p1, "\\", "/"); p2 = strrep (p2, "\\", "/"); endif --- 110,116 ---- endwhile else if (ispc () && ! isunix () ! && ! isempty (file_in_path (getenv ("PATH"), "cp.exe"))) p1 = strrep (p1, "\\", "/"); p2 = strrep (p2, "\\", "/"); endif diff -cNr octave-3.4.0/scripts/miscellaneous/namelengthmax.m octave-3.4.1/scripts/miscellaneous/namelengthmax.m *** octave-3.4.0/scripts/miscellaneous/namelengthmax.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/namelengthmax.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} namelengthmax () ! ## Returns the @sc{matlab} compatible maximum variable name length. Octave is ## capable of storing strings up to ## @tex ## $2^{31} - 1$ --- 18,24 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} namelengthmax () ! ## Return the @sc{matlab} compatible maximum variable name length. Octave is ## capable of storing strings up to ## @tex ## $2^{31} - 1$ diff -cNr octave-3.4.0/scripts/miscellaneous/pack.m octave-3.4.1/scripts/miscellaneous/pack.m *** octave-3.4.0/scripts/miscellaneous/pack.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/pack.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,25 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} pack () ! ## This function is provided for compatibility with @sc{matlab}, but it ! ## doesn't actually do anything. ## @end deftypefn ## Author: jwe --- 18,25 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} pack () ! ## Consolidate workspace memory in @sc{matlab}. This function is provided for ! ## compatibility, but does nothing in Octave. ## @end deftypefn ## Author: jwe diff -cNr octave-3.4.0/scripts/miscellaneous/private/__xzip__.m octave-3.4.1/scripts/miscellaneous/private/__xzip__.m *** octave-3.4.0/scripts/miscellaneous/private/__xzip__.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/private/__xzip__.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 33,113 **** function entries = __xzip__ (commandname, extension, commandtemplate, files, outdir) ! if (nargin == 4 || nargin == 5) ! if (! ischar (extension) || length (extension) == 0) ! error ("__xzip__: EXTENSION has to be a string with finite length"); ! endif ! if (nargin == 5 && ! exist (outdir, "dir")) ! error ("__xzip__: output directory does not exist"); ! endif ! if (ischar (files)) ! files = cellstr (files); ! else ! error ("__xzip__: expecting FILES to be a character array"); ! endif ! if (nargin == 4) ! outdir = tmpnam (); ! mkdir (outdir); endif ! cwd = pwd(); ! unwind_protect ! files = glob (files); ! ! ## Ignore any file with the compress extension ! files (cellfun (@(x) length(x) > length(extension) ! && strcmp (x((end - length(extension) + 1):end), extension), ! files)) = []; ! ! copyfile (files, outdir); ! ! [d, f] = myfileparts(files); ! ! cd (outdir); ! ! cmd = sprintf (commandtemplate, sprintf (" %s", f{:})); ! ! [status, output] = system (cmd); ! if (status == 0) ! ! if (nargin == 5) ! compressed_files = cellfun( ! @(x) fullfile (outdir, sprintf ("%s.%s", x, extension)), ! f, "uniformoutput", false); ! else ! movefile (cellfun(@(x) sprintf ("%s.%s", x, extension), f, ! "uniformoutput", false), cwd); ! ## FIXME this does not work when you try to compress directories ! ! compressed_files = cellfun(@(x) sprintf ("%s.%s", x, extension), ! files, "uniformoutput", false); ! endif ! ! if (nargout > 0) ! entries = compressed_files; ! endif else ! error ("__xzip__: %s command failed with exit status = %d", ! commandname, status); ! endif ! unwind_protect_cleanup ! cd(cwd); ! if (nargin == 4) ! crr = confirm_recursive_rmdir (); ! unwind_protect ! confirm_recursive_rmdir (false); ! rmdir (outdir, "s"); ! unwind_protect_cleanup ! confirm_recursive_rmdir (crr); ! end_unwind_protect endif ! end_unwind_protect ! else ! print_usage (); ! endif endfunction --- 33,111 ---- function entries = __xzip__ (commandname, extension, commandtemplate, files, outdir) ! if (nargin != 4 && nargin != 5) ! print_usage (); ! endif ! ! if (! ischar (extension) || length (extension) == 0) ! error ("__xzip__: EXTENSION must be a string with finite length"); ! endif ! if (nargin == 5 && ! exist (outdir, "dir")) ! error ("__xzip__: OUTDIR output directory does not exist"); ! endif ! if (ischar (files)) ! files = cellstr (files); ! endif ! if (! iscellstr (files)) ! error ("__xzip__: FILES must be a character array or cellstr"); ! endif ! if (nargin == 4) ! outdir = tmpnam (); ! mkdir (outdir); ! endif ! ! cwd = pwd (); ! unwind_protect ! files = glob (files); ! ! ## Ignore any file with the compress extension ! files(cellfun (@(x) length(x) > length(extension) ! && strcmp (x((end - length(extension) + 1):end), extension), ! files)) = []; ! ! copyfile (files, outdir); ! ! [d, f] = myfileparts(files); ! ! cd (outdir); ! ! cmd = sprintf (commandtemplate, sprintf (" %s", f{:})); ! ! [status, output] = system (cmd); ! if (status) ! error ("__xzip__: %s command failed with exit status = %d", ! commandname, status); endif ! if (nargout > 0) ! if (nargin == 5) ! entries = cellfun( ! @(x) fullfile (outdir, sprintf ("%s.%s", x, extension)), ! f, "uniformoutput", false); else ! movefile (cellfun(@(x) sprintf ("%s.%s", x, extension), f, ! "uniformoutput", false), cwd); ! ## FIXME this does not work when you try to compress directories ! entries = cellfun(@(x) sprintf ("%s.%s", x, extension), ! files, "uniformoutput", false); endif ! endif ! ! unwind_protect_cleanup ! cd (cwd); ! if (nargin == 4) ! crr = confirm_recursive_rmdir (); ! unwind_protect ! confirm_recursive_rmdir (false); ! rmdir (outdir, "s"); ! unwind_protect_cleanup ! confirm_recursive_rmdir (crr); ! end_unwind_protect ! endif ! end_unwind_protect endfunction diff -cNr octave-3.4.0/scripts/miscellaneous/rmappdata.m octave-3.4.1/scripts/miscellaneous/rmappdata.m *** octave-3.4.0/scripts/miscellaneous/rmappdata.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/rmappdata.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 16,22 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} rmappdata (@var{h}, @var{name}) ! ## Deletes the named application data for the object(s) with ## handle(s) @var{h}. ## @end deftypefn --- 16,22 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} rmappdata (@var{h}, @var{name}) ! ## Delete the named application data for the object(s) with ## handle(s) @var{h}. ## @end deftypefn diff -cNr octave-3.4.0/scripts/miscellaneous/setappdata.m octave-3.4.1/scripts/miscellaneous/setappdata.m *** octave-3.4.0/scripts/miscellaneous/setappdata.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/setappdata.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 16,22 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} setappdata (@var{h}, @var{name}, @var{value}) ! ## Sets the named application data to @var{value} for the object(s) with ## handle(s) @var{h}. If the application data with the specified name does ## not exist, it is created. ## @end deftypefn --- 16,22 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} setappdata (@var{h}, @var{name}, @var{value}) ! ## Set the named application data to @var{value} for the object(s) with ## handle(s) @var{h}. If the application data with the specified name does ## not exist, it is created. ## @end deftypefn diff -cNr octave-3.4.0/scripts/miscellaneous/swapbytes.m octave-3.4.1/scripts/miscellaneous/swapbytes.m *** octave-3.4.0/scripts/miscellaneous/swapbytes.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/swapbytes.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} swapbytes (@var{x}) ! ## Swaps the byte order on values, converting from little endian to big ## endian and vice versa. For example: ## ## @example --- 18,24 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} swapbytes (@var{x}) ! ## Swap the byte order on values, converting from little endian to big ## endian and vice versa. For example: ## ## @example diff -cNr octave-3.4.0/scripts/miscellaneous/symvar.m octave-3.4.1/scripts/miscellaneous/symvar.m *** octave-3.4.0/scripts/miscellaneous/symvar.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/symvar.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} symvar (@var{s}) ! ## Identifies the argument names in the function defined by a string. ## Common constant names such as @code{pi}, @code{NaN}, @code{Inf}, ## @code{eps}, @code{i} or @code{j} are ignored. The arguments that are ## found are returned in a cell array of strings. If no variables are --- 18,24 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} symvar (@var{s}) ! ## Identify the argument names in the function defined by a string. ## Common constant names such as @code{pi}, @code{NaN}, @code{Inf}, ## @code{eps}, @code{i} or @code{j} are ignored. The arguments that are ## found are returned in a cell array of strings. If no variables are diff -cNr octave-3.4.0/scripts/miscellaneous/tar.m octave-3.4.1/scripts/miscellaneous/tar.m *** octave-3.4.0/scripts/miscellaneous/tar.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/tar.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,23 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {@var{entries} =} tar (@var{tarfile}, @var{files}, @var{root}) ## Pack @var{files} @var{files} into the TAR archive @var{tarfile}. The ## list of files must be a string or a cell array of strings. ## --- 17,24 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {@var{entries} =} tar (@var{tarfile}, @var{files}) ! ## @deftypefnx {Function File} {@var{entries} =} tar (@var{tarfile}, @var{files}, @var{root}) ## Pack @var{files} @var{files} into the TAR archive @var{tarfile}. The ## list of files must be a string or a cell array of strings. ## *************** *** 26,74 **** ## ## If an output argument is requested the entries in the archive are ## returned in a cell array. ! ## @seealso{untar, gzip, gunzip, zip, unzip} ## @end deftypefn ## Author: Søren Hauberg ! function entries = tar (tarfile, files, root) ! if (nargin == 2 || nargin == 3) ! ! if (nargin == 2) ! root = "."; ! endif ! ## Test type of input ! if (ischar (files)) ! files = cellstr (files); ! endif ! if (ischar (tarfile) && iscellstr (files) && ischar (root)) ! cmd = sprintf ("tar cvf %s -C %s %s", tarfile, root, ! sprintf (" %s", files{:})); ! [status, output] = system (cmd); ! if (status == 0) ! if (nargout > 0) ! if (output(end) == "\n") ! output(end) = []; ! endif ! entries = strsplit (output, "\n"); ! entries = entries'; ! endif ! else ! error ("tar: tar exited with status = %d", status); ! endif ! else ! error ("tar: expecting all arguments to be character strings"); endif ! ! else ! print_usage("tar"); endif endfunction --- 27,66 ---- ## ## If an output argument is requested the entries in the archive are ## returned in a cell array. ! ## @seealso{untar, bzip2, gzip, zip} ## @end deftypefn ## Author: Søren Hauberg ! function entries = tar (tarfile, files, root = ".") ! if (nargin < 2 || nargin > 3) ! print_usage (); ! endif ! if (ischar (files)) ! files = cellstr (files); ! endif ! if (ischar (tarfile) && iscellstr (files) && ischar (root)) ! error ("tar: all arguments must be character strings"); ! endif ! cmd = sprintf ("tar cvf %s -C %s %s", tarfile, root, ! sprintf (" %s", files{:})); ! [status, output] = system (cmd); ! if (status) ! error ("tar: tar exited with status = %d", status); ! endif ! if (nargout > 0) ! if (output(end) == "\n") ! output(end) = []; endif ! entries = strsplit (output, "\n"); ! entries = entries'; endif endfunction diff -cNr octave-3.4.0/scripts/miscellaneous/unimplemented.m octave-3.4.1/scripts/miscellaneous/unimplemented.m *** octave-3.4.0/scripts/miscellaneous/unimplemented.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/unimplemented.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 329,335 **** "quad2d", "questdlg", "rbbox", - "rectangle", "recycle", "reducepatch", "reducevolume", --- 329,334 ---- diff -cNr octave-3.4.0/scripts/miscellaneous/unpack.m octave-3.4.1/scripts/miscellaneous/unpack.m *** octave-3.4.0/scripts/miscellaneous/unpack.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/unpack.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 21,34 **** ## @deftypefnx {Function File} {@var{files} =} unpack (@var{file}, @var{dir}) ## @deftypefnx {Function File} {@var{files} =} unpack (@var{file}, @var{dir}, @var{filetype}) ## Unpack the archive @var{file} based on its extension to the directory ! ## @var{dir}. If @var{file} is a cellstr, then all files will be ! ## handled individually. If @var{dir} is not specified, it defaults to ! ## the current directory. It returns a list of @var{files} ! ## unpacked. If a directory is in the file list, then the ! ## @var{filetype} to unpack must also be specified. ## ! ## The @var{files} includes the entire path to the output files. ! ## @seealso{bunzip2, tar, untar, gzip, gunzip, zip, unzip} ## @end deftypefn ## Author: Bill Denney --- 21,33 ---- ## @deftypefnx {Function File} {@var{files} =} unpack (@var{file}, @var{dir}) ## @deftypefnx {Function File} {@var{files} =} unpack (@var{file}, @var{dir}, @var{filetype}) ## Unpack the archive @var{file} based on its extension to the directory ! ## @var{dir}. If @var{file} is a list of strings, then each file is ! ## unpacked individually. If @var{dir} is not specified, it defaults to ! ## the current directory. If a directory is in the file list, then the ! ## @var{filetype} must also be specified. ## ! ## The optional return value is a list of @var{files} unpacked. ! ## @seealso{bzip2, gzip, zip, tar} ## @end deftypefn ## Author: Bill Denney *************** *** 39,90 **** print_usage (); endif ! if (ischar (file)) ! if (isdir (file)) ! if (isempty (filetype)) ! error ("unpack: FILETYPE must be given for a directory"); ! elseif (! any (strcmpi (filetype, "gunzip"))) ! error ("unpack: FILETYPE must be gunzip for a directory"); ! endif ! else ! [pathstr, name, ext] = fileparts (file); ! ! ## Check to see if it's .tar.gz, .tar.Z, etc. ! if (any (strcmpi ({".gz" ".Z" ".bz2" ".bz"}, ext))) ! [tmppathstr, tmpname, tmpext] = fileparts (name); ! if (strcmpi (tmpext, ".tar")) ! name = tmpname; ! ext = cstrcat (tmpext, ext); ! endif ! endif ! ! ## If the file is a URL, download it and then work with that ! ## file. ! if (! isempty (strfind (file, "://"))) ! ## FIXME -- the above is not a perfect test for a URL ! urlfile = file; ! ## FIXME -- should we name the file that we download with the ! ## same file name as the URL requests? ! tmpfile = cstrcat (tmpnam (), ext); ! [file, success, msg] = urlwrite (urlfile, tmpfile); ! if (! success) ! error ("unpack: could not get \"%s\": %s", urlfile, msg); ! endif ! endif ! ! endif ! ! ## canonicalize_file_name returns empty if the file isn't found, so ! ## use that to check for existence. ! cfile = canonicalize_file_name (file); ! if (isempty (cfile)) ! error ("unpack: file \"%s\" not found", file); ! else ! file = cfile; ! endif ! elseif (iscellstr (file)) files = {}; for i = 1:numel (file) tmpfiles = unpack (file{i}, dir); --- 38,54 ---- print_usage (); endif ! if (! ischar (file) && ! iscellstr (file)) ! error ("unpack: invalid input file class, %s", class(file)); ! endif ! ## character arrays of more than one string must be treated as cell strings ! if (ischar (file) && ! isvector (file)) ! file = cellstr (file); ! endif ! ## Recursively unpack cellstr arrays one file at a time ! if (iscellstr (file)) files = {}; for i = 1:numel (file) tmpfiles = unpack (file{i}, dir); *************** *** 96,104 **** filelist = files; endif ! return else ! error ("unpack: invalid input file class, %s", class(file)); endif ## Instructions on what to do for any extension. --- 60,110 ---- filelist = files; endif ! return; ! endif ! ! if (isdir (file)) ! if (isempty (filetype)) ! error ("unpack: FILETYPE must be given for a directory"); ! elseif (! any (strcmpi (filetype, "gunzip"))) ! error ("unpack: FILETYPE must be gunzip for a directory"); ! endif ! ext = ".gz"; ! else ! [pathstr, name, ext] = fileparts (file); ! ! ## Check to see if it's .tar.gz, .tar.Z, etc. ! if (any (strcmpi ({".gz" ".Z" ".bz2" ".bz"}, ext))) ! [tmppathstr, tmpname, tmpext] = fileparts (name); ! if (strcmpi (tmpext, ".tar")) ! name = tmpname; ! ext = cstrcat (tmpext, ext); ! endif ! endif ! ! ## If the file is a URL, download it and then work with that file. ! if (! isempty (strfind (file, "://"))) ! ## FIXME -- the above is not a perfect test for a URL ! urlfile = file; ! ## FIXME -- should we name the file that we download with the ! ## same file name as the URL requests? ! tmpfile = cstrcat (tmpnam (), ext); ! [file, success, msg] = urlwrite (urlfile, tmpfile); ! if (! success) ! error ("unpack: could not get \"%s\": %s", urlfile, msg); ! endif ! endif ! ! endif ! ! ## canonicalize_file_name returns empty if the file isn't found, so ! ## use that to check for existence. ! cfile = canonicalize_file_name (file); ! ! if (isempty (cfile)) ! error ("unpack: file \"%s\" not found", file); else ! file = cfile; endif ## Instructions on what to do for any extension. *************** *** 154,160 **** command = commandq; endif else ! warning ("unpack:filetype", "unrecognised file type, %s", ext); files = file; return; endif --- 160,166 ---- command = commandq; endif else ! warning ("unpack:filetype", "unrecognized file type, %s", ext); files = file; return; endif *************** *** 215,220 **** --- 221,228 ---- function files = __parse_zip__ (output) ## Parse the output from zip and unzip. + ## Skip first line which is Archive header + output(1) = []; for i = 1:length (output) files{i} = output{i}(14:length(output{i})); endfor diff -cNr octave-3.4.0/scripts/miscellaneous/untar.m octave-3.4.1/scripts/miscellaneous/untar.m *** octave-3.4.0/scripts/miscellaneous/untar.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/untar.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,26 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} untar (@var{tarfile}, @var{dir}) ## Unpack the TAR archive @var{tarfile} to the directory @var{dir}. ## If @var{dir} is not specified, it defaults to the current directory. ! ## @seealso{unpack, bunzip2, tar, gzip, gunzip, zip, unzip} ## @end deftypefn ## Author: Søren Hauberg --- 17,27 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} untar (@var{tarfile}) ! ## @deftypefnx {Function File} {} untar (@var{tarfile}, @var{dir}) ## Unpack the TAR archive @var{tarfile} to the directory @var{dir}. ## If @var{dir} is not specified, it defaults to the current directory. ! ## @seealso{tar, unpack, bunzip2, gunzip, unzip} ## @end deftypefn ## Author: Søren Hauberg diff -cNr octave-3.4.0/scripts/miscellaneous/unzip.m octave-3.4.1/scripts/miscellaneous/unzip.m *** octave-3.4.0/scripts/miscellaneous/unzip.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/unzip.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 21,27 **** ## @deftypefnx {Function File} {} unzip (@var{zipfile}, @var{dir}) ## Unpack the ZIP archive @var{zipfile} to the directory @var{dir}. ## If @var{dir} is not specified, it defaults to the current directory. ! ## @seealso{unpack, bunzip2, tar, untar, gzip, gunzip, zip} ## @end deftypefn ## Author: Søren Hauberg --- 21,27 ---- ## @deftypefnx {Function File} {} unzip (@var{zipfile}, @var{dir}) ## Unpack the ZIP archive @var{zipfile} to the directory @var{dir}. ## If @var{dir} is not specified, it defaults to the current directory. ! ## @seealso{zip, unpack, bunzip2, gunzip, untar} ## @end deftypefn ## Author: Søren Hauberg diff -cNr octave-3.4.0/scripts/miscellaneous/ver.m octave-3.4.1/scripts/miscellaneous/ver.m *** octave-3.4.0/scripts/miscellaneous/ver.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/ver.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 40,48 **** ## Date respecting the version/revision. ## @end table ## ! ## @deftypefnx {Function File} {v =} ver (@code{"Octave"}) ## Return version information for Octave only. ! ## ## @deftypefnx {Function File} {v =} ver (@var{package}) ## Return version information for @var{package}. ## --- 40,48 ---- ## Date respecting the version/revision. ## @end table ## ! ## @deftypefnx {Function File} {v =} ver ("Octave") ## Return version information for Octave only. ! ## ## @deftypefnx {Function File} {v =} ver (@var{package}) ## Return version information for @var{package}. ## diff -cNr octave-3.4.0/scripts/miscellaneous/warning_ids.m octave-3.4.1/scripts/miscellaneous/warning_ids.m *** octave-3.4.0/scripts/miscellaneous/warning_ids.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/warning_ids.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 109,114 **** --- 109,123 ---- ## compatibility. By default, the @code{Octave:associativity-change} ## warning is enabled. ## + ## @item Octave:autoload-relative-file-name + ## If the @code{Octave:autoload-relative-file-name} is enabled, + ## Octave will warn when parsing autoload() function calls with relative + ## paths to function files. This usually happens when using autoload() + ## calls in PKG_ADD files, when the PKG_ADD file is not in the same + ## directory as the .oct file referred to by the autoload() command. + ## By default, the @code{Octave:autoload-relative-file-name} + ## warning is enabled. + ## ## @item Octave:divide-by-zero ## If the @code{Octave:divide-by-zero} warning is enabled, a ## warning is issued when Octave encounters a division by zero. By *************** *** 188,193 **** --- 197,223 ---- ## elicits a warning if the @code{Octave:num-to-str} warning is ## enabled. By default, the @code{Octave:num-to-str} warning is enabled. ## + ## @item Octave:possible-matlab-short-circuit-operator + ## If the @code{Octave:possible-matlab-short-circuit-operator} warning + ## is enabled, Octave will warn about using the not short circuiting + ## operators @code{&} and @code{|} inside @code{if} or @code{while} + ## conditions. They normally never short circuit, but @sc{matlab} always + ## short circuits if any logical operators are used in a condition. You + ## can turn on the option + ## + ## @example + ## @group + ## do_braindead_shortcircuit_evaluation(1) + ## @end group + ## @end example + ## + ## @noindent + ## if you would like to enable this short-circuit evaluation in + ## Octave. Note that the @code{&&} and @code{||} operators always short + ## circuit in both Octave and @sc{matlab}, so it's only necessary to + ## enable @sc{matlab}-style short-circuiting it's too arduous to modify + ## existing code that relies on this behavior. + ## ## @item Octave:precedence-change ## If the @code{Octave:precedence-change} warning is enabled, Octave ## will warn about possible changes in the meaning of some code due to diff -cNr octave-3.4.0/scripts/miscellaneous/what.m octave-3.4.1/scripts/miscellaneous/what.m *** octave-3.4.0/scripts/miscellaneous/what.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/what.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 20,29 **** ## @deftypefn {Command} {} what ## @deftypefnx {Command} {} what @var{dir} ## @deftypefnx {Function File} {w =} what (@var{dir}) ! ## List the Octave specific files in a directory. If the variable @var{dir} ! ## is given then check that directory rather than the current directory. If ! ## a return argument is requested, the files found are returned in the ! ## structure @var{w}. ## @seealso{which} ## @end deftypefn --- 20,28 ---- ## @deftypefn {Command} {} what ## @deftypefnx {Command} {} what @var{dir} ## @deftypefnx {Function File} {w =} what (@var{dir}) ! ## List the Octave specific files in directory @var{dir}. If @var{dir} is ! ## not specified then the current directory is used. If a return argument is ! ## requested, the files found are returned in the structure @var{w}. ## @seealso{which} ## @end deftypefn diff -cNr octave-3.4.0/scripts/miscellaneous/xor.m octave-3.4.1/scripts/miscellaneous/xor.m *** octave-3.4.0/scripts/miscellaneous/xor.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/xor.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,27 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Mapping Function} {} xor (@var{x}, @var{y}) ## Return the `exclusive or' of the entries of @var{x} and @var{y}. ## For boolean expressions @var{x} and @var{y}, ! ## @code{xor (@var{x}, @var{y})} is true if and only if @var{x} or @var{y} ! ## is true, but not if both @var{x} and @var{y} are true. ## @end deftypefn ## Author: KH --- 17,40 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Mapping Function} {@var{z} =} xor (@var{x}, @var{y}) ## Return the `exclusive or' of the entries of @var{x} and @var{y}. ## For boolean expressions @var{x} and @var{y}, ! ## @code{xor (@var{x}, @var{y})} is true if and only if one of @var{x} or ! ## @var{y} is true. Otherwise, for @var{x} and @var{y} both true or both ! ## false, @code{xor} returns false. ! ## ! ## The truth table for the xor operation is ! ## ! ## @multitable @columnfractions 0.44 .03 .05 .03 0.44 ! ## @item @tab @var{x} @tab @var{y} @tab @var{z} @tab ! ## @item @tab 0 @tab 0 @tab 0 @tab ! ## @item @tab 1 @tab 0 @tab 1 @tab ! ## @item @tab 0 @tab 1 @tab 1 @tab ! ## @item @tab 1 @tab 1 @tab 0 @tab ! ## @end multitable ! ## ! ## @seealso{and, or, not} ## @end deftypefn ## Author: KH diff -cNr octave-3.4.0/scripts/miscellaneous/zip.m octave-3.4.1/scripts/miscellaneous/zip.m *** octave-3.4.0/scripts/miscellaneous/zip.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/miscellaneous/zip.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 20,76 **** ## @deftypefn {Function File} {@var{entries} =} zip (@var{zipfile}, @var{files}) ## @deftypefnx {Function File} {@var{entries} =} zip (@var{zipfile}, @var{files}, @var{rootdir}) ## Compress the list of files and/or directories specified in @var{files} ! ## into the archive @var{zipfiles} in the same directory. If @var{rootdir} ! ## is defined the @var{files} is located relative to @var{rootdir} rather ! ## than the current directory ! ## @seealso{unzip,tar} ## @end deftypefn ## Author: Sylvain Pelissier ! function entries = zip (zipfile, files, rootdir) ! if (nargin != 3) ! rootdir = "./"; endif ! if (nargin == 2 || nargin == 3) ! rootdir = tilde_expand (rootdir); ! if (ischar (files)) ! files = cellstr (files); ! endif ! if (ischar (zipfile) && iscellstr (files)) ! cmd = sprintf ("cd %s; zip -r %s/%s %s", rootdir, pwd (), zipfile, ! sprintf (" %s", files{:})); ! [status, output] = system (cmd); ! if (status == 0) ! if (nargout > 0) ! cmd = sprintf ("unzip -Z -1 %s", zipfile); ! [status, entries] = system (cmd); ! if (status == 0) ! if (entries(end) == "\n") ! entries(end) = []; ! endif ! entries = strsplit (entries, "\n"); ! else ! error ("zip: zipinfo failed with exit status = %d", status); ! endif ! endif ! else ! error ("zip: zip failed with exit status = %d", status); ! endif ! else ! error ("zip: expecting all arguments to be character strings"); endif ! ! else ! print_usage (); endif endfunction --- 20,68 ---- ## @deftypefn {Function File} {@var{entries} =} zip (@var{zipfile}, @var{files}) ## @deftypefnx {Function File} {@var{entries} =} zip (@var{zipfile}, @var{files}, @var{rootdir}) ## Compress the list of files and/or directories specified in @var{files} ! ## into the archive @var{zipfile} in the same directory. If @var{rootdir} ! ## is defined the @var{files} are located relative to @var{rootdir} rather ! ## than the current directory. ! ## @seealso{unzip, bzip2, gzip, tar} ## @end deftypefn ## Author: Sylvain Pelissier ! function entries = zip (zipfile, files, rootdir = ".") ! if (nargin != 2 && nargin != 3) ! print_usage (); endif ! rootdir = tilde_expand (rootdir); ! if (ischar (files)) ! files = cellstr (files); ! endif ! if (! ischar (zipfile) && ! iscellstr (files)) ! error ("zip: expecting all arguments to be character strings"); ! endif ! cmd = sprintf ("cd %s; zip -r %s/%s %s", rootdir, pwd (), zipfile, ! sprintf (" %s", files{:})); ! [status, output] = system (cmd); ! if (status) ! error ("zip: zip failed with exit status = %d", status); ! endif ! if (nargout > 0) ! cmd = sprintf ("unzip -Z -1 %s", zipfile); ! [status, entries] = system (cmd); ! if (status) ! error ("zip: zipinfo failed with exit status = %d", status); endif ! if (entries(end) == "\n") ! entries(end) = []; ! endif ! entries = strsplit (entries, "\n"); endif endfunction diff -cNr octave-3.4.0/scripts/optimization/fminunc.m octave-3.4.1/scripts/optimization/fminunc.m *** octave-3.4.0/scripts/optimization/fminunc.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/optimization/fminunc.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 21,27 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} fminunc (@var{fcn}, @var{x0}) ## @deftypefnx {Function File} {} fminunc (@var{fcn}, @var{x0}, @var{options}) ! ## @deftypefnx {Function File} {[@var{x}, @var{fvec}, @var{info}, @var{output}, @var{grad}, @var{hess}]} = fminunc (@var{fcn}, @dots{}) ## Solve an unconstrained optimization problem defined by the function ## @var{fcn}. ## @var{fcn} should accepts a vector (array) defining the unknown variables, --- 21,27 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} fminunc (@var{fcn}, @var{x0}) ## @deftypefnx {Function File} {} fminunc (@var{fcn}, @var{x0}, @var{options}) ! ## @deftypefnx {Function File} {[@var{x}, @var{fvec}, @var{info}, @var{output}, @var{grad}, @var{hess}] =} fminunc (@var{fcn}, @dots{}) ## Solve an unconstrained optimization problem defined by the function ## @var{fcn}. ## @var{fcn} should accepts a vector (array) defining the unknown variables, *************** *** 59,65 **** ## Last relative step size was less that TolX. ## ## @item 3 ! ## Last relative decrease in func value was less than TolF. ## ## @item 0 ## Iteration limit exceeded. --- 59,65 ---- ## Last relative step size was less that TolX. ## ## @item 3 ! ## Last relative decrease in function value was less than TolF. ## ## @item 0 ## Iteration limit exceeded. diff -cNr octave-3.4.0/scripts/optimization/fzero.m octave-3.4.1/scripts/optimization/fzero.m *** octave-3.4.0/scripts/optimization/fzero.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/optimization/fzero.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 24,33 **** ## @deftypefnx {Function File} {[@var{x}, @var{fval}, @var{info}, @var{output}] =} fzero (@dots{}) ## Find a zero of a univariate function. ## ! ## @var{fun} should be a function handle or name. @var{x0} should be a ! ## two-element vector specifying two points which bracket a zero. In ! ## other words, there must be a change in sign of the function between ! ## @var{x0}(1) and @var{x0}(2). More mathematically, the following must hold ## ## @example ## sign (@var{fun}(@var{x0}(1))) * sign (@var{fun}(@var{x0}(2))) <= 0 --- 24,35 ---- ## @deftypefnx {Function File} {[@var{x}, @var{fval}, @var{info}, @var{output}] =} fzero (@dots{}) ## Find a zero of a univariate function. ## ! ## @var{fun} is a function handle, inline function, or string ! ## containing the name of the function to evaluate. ! ## @var{x0} should be a two-element vector specifying two points which ! ## bracket a zero. In other words, there must be a change in sign of the ! ## function between @var{x0}(1) and @var{x0}(2). More mathematically, the ! ## following must hold ## ## @example ## sign (@var{fun}(@var{x0}(1))) * sign (@var{fun}(@var{x0}(2))) <= 0 diff -cNr octave-3.4.0/scripts/optimization/glpk.m octave-3.4.1/scripts/optimization/glpk.m *** octave-3.4.0/scripts/optimization/glpk.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/optimization/glpk.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 342,355 **** --- 342,360 ---- ## @table @asis ## @item 180 (@w{@code{LPX_OPT}}) ## Solution is optimal. + ## ## @item 181 (@w{@code{LPX_FEAS}}) ## Solution is feasible. + ## ## @item 182 (@w{@code{LPX_INFEAS}}) ## Solution is infeasible. + ## ## @item 183 (@w{@code{LPX_NOFEAS}}) ## Problem has no feasible solution. + ## ## @item 184 (@w{@code{LPX_UNBND}}) ## Problem has no unbounded solution. + ## ## @item 185 (@w{@code{LPX_UNDEF}}) ## Solution status is undefined. ## @end table *************** *** 357,362 **** --- 362,368 ---- ## @table @asis ## @item 150 (@w{@code{LPX_T_UNDEF}}) ## The interior point method is undefined. + ## ## @item 151 (@w{@code{LPX_T_OPT}}) ## The interior point method is optimal. ## @end table *************** *** 364,373 **** --- 370,382 ---- ## @table @asis ## @item 170 (@w{@code{LPX_I_UNDEF}}) ## The status is undefined. + ## ## @item 171 (@w{@code{LPX_I_OPT}}) ## The solution is integer optimal. + ## ## @item 172 (@w{@code{LPX_I_FEAS}}) ## Solution integer feasible but its optimality has not been proven + ## ## @item 173 (@w{@code{LPX_I_NOFEAS}}) ## No integer feasible solution. ## @end table *************** *** 378,401 **** --- 387,420 ---- ## @table @asis ## @item 204 (@w{@code{LPX_E_FAULT}}) ## Unable to start the search. + ## ## @item 205 (@w{@code{LPX_E_OBJLL}}) ## Objective function lower limit reached. + ## ## @item 206 (@w{@code{LPX_E_OBJUL}}) ## Objective function upper limit reached. + ## ## @item 207 (@w{@code{LPX_E_ITLIM}}) ## Iterations limit exhausted. + ## ## @item 208 (@w{@code{LPX_E_TMLIM}}) ## Time limit exhausted. + ## ## @item 209 (@w{@code{LPX_E_NOFEAS}}) ## No feasible solution. + ## ## @item 210 (@w{@code{LPX_E_INSTAB}}) ## Numerical instability. + ## ## @item 211 (@w{@code{LPX_E_SING}}) ## Problems with basis matrix. + ## ## @item 212 (@w{@code{LPX_E_NOCONV}}) ## No convergence (interior). + ## ## @item 213 (@w{@code{LPX_E_NOPFS}}) ## No primal feasible solution (LP presolver). + ## ## @item 214 (@w{@code{LPX_E_NODFS}}) ## No dual feasible solution (LP presolver). ## @end table diff -cNr octave-3.4.0/scripts/pkg/get_forge_pkg.m octave-3.4.1/scripts/pkg/get_forge_pkg.m *** octave-3.4.0/scripts/pkg/get_forge_pkg.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/pkg/get_forge_pkg.m 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,81 **** - ## Copyright (C) 2010-2011 VZLU Prague, a.s. - ## - ## This file is part of Octave. - ## - ## Octave 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. - ## - ## Octave 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 Octave; see the file COPYING. If not, see - ## . - - ## -*- texinfo -*- - ## @deftypefn {Function File} {[@var{ver}, @var{url}] =} get_forge_pkg (@var{name}) - ## Tries to discover the current version of an OctaveForge package from the web, - ## using a working internet connection and the urlread function. - ## If two output arguments are requested, returns also an address to download - ## the file. - ## @end deftypefn - - function [ver, url] = get_forge_pkg (name) - if (nargin != 1) - print_usage (); - endif - ## Verify that name is valid. - if (! (ischar (name) && rows (name) == 1 && ndims (name) == 2)) - error ("get_forge_pkg: package NAME must be a string"); - elseif (! all (isalnum (name) | name == "-" | name == "." | name == "_")) - error ("get_forge_pkg: invalid package name: %s", name); - endif - - name = tolower (name); - - ## Try to download package's index page. - [html, succ] = urlread (sprintf ("http://octave.sourceforge.net/%s/index.html", name)); - if (succ) - ## Remove blanks for simpler matching. - html(isspace(html)) = []; - ## Good. Let's grep for the version. - pat = "PackageVersion:([0-9.]*)"; - t = regexp (html, pat, "tokens"); - if (isempty (t) || isempty(t{1})) - error ("get_forge_pkg: could not read version number from package's page"); - else - ver = t{1}{1}; - if (nargout > 1) - # Build download string. - urlbase = "http://downloads.sourceforge.net/octave/%s-%s.tar.gz?download"; - url = sprintf (urlbase, name, ver); - ## Verify that the string exists on the page. - if (isempty (strfind (html, url))) - warning ("get_forge_pkg: download URL not verified"); - endif - endif - endif - else - ## Try get the list of all packages. - [html, succ] = urlread ("http://octave.sourceforge.net/packages.php"); - if (succ) - t = regexp (html, "
", "tokens"); - t = horzcat (t{:}); - if (any (strcmp (t, name))) - error ("get_forge_pkg: package NAME exists, but index page not available"); - else - ## Try a simplistic method to determine close names. - dist = cellfun (@(n) length (setdiff (name, n)), t); - [~, i] = min (dist); - error ("get_forge_pkg: package not found: ""%s"". Maybe you meant ""%s?""", name, t{i}); - endif - else - error ("get_forge_pkg: could not read URL, please verify internet connection"); - endif - endif - - endfunction --- 0 ---- diff -cNr octave-3.4.0/scripts/pkg/module.mk octave-3.4.1/scripts/pkg/module.mk *** octave-3.4.0/scripts/pkg/module.mk 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/pkg/module.mk 2011-06-15 11:11:27.000000000 -0400 *************** *** 1,8 **** FCN_FILE_DIRS += pkg pkg_FCN_FILES = \ pkg/pkg.m \ ! pkg/get_forge_pkg.m FCN_FILES += $(pkg_FCN_FILES) --- 1,11 ---- FCN_FILE_DIRS += pkg + pkg_PRIVATE_FCN_FILES = \ + pkg/private/get_forge_pkg.m + pkg_FCN_FILES = \ pkg/pkg.m \ ! $(pkg_PRIVATE_FCN_FILES) FCN_FILES += $(pkg_FCN_FILES) diff -cNr octave-3.4.0/scripts/pkg/pkg.m octave-3.4.1/scripts/pkg/pkg.m *** octave-3.4.0/scripts/pkg/pkg.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/pkg/pkg.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 59,64 **** --- 59,68 ---- ## A global installation is forced, even if the user doesn't normally have ## system privileges ## + ## @item -forge + ## Install a package directly from the Octave-Forge repository. This + ## requires an internet connection and the cURL library. + ## ## @item -verbose ## The package manager will print the output of all of the commands that are ## performed. *************** *** 118,123 **** --- 122,130 ---- ## splits the list of installed packages into those who are installed by ## the current user, and those installed by the system administrator. ## + ## The option '-forge' lists packages available at the Octave-Forge repository. + ## This requires an internet connection and the cURL library. + ## ## @item describe ## Show a short description of the named installed packages, with the option ## '-verbose' also list functions provided by the package, e.g.: *************** *** 248,254 **** if (prefix == -1) if (global_install) prefix = fullfile (OCTAVE_HOME (), "share", "octave", "packages"); ! archprefix = fullfile (octave_config_info ("libexecdir"), "octave", "packages"); else prefix = fullfile ("~", "octave"); --- 255,261 ---- if (prefix == -1) if (global_install) prefix = fullfile (OCTAVE_HOME (), "share", "octave", "packages"); ! archprefix = fullfile (octave_config_info ("libdir"), "octave", "packages"); else prefix = fullfile ("~", "octave"); *************** *** 293,299 **** global_install = true; if (! user_prefix) prefix = fullfile (OCTAVE_HOME (), "share", "octave", "packages"); ! archprefix = fullfile (octave_config_info ("libexecdir"), "octave", "packages"); endif case available_actions --- 300,306 ---- global_install = true; if (! user_prefix) prefix = fullfile (OCTAVE_HOME (), "share", "octave", "packages"); ! archprefix = fullfile (octave_config_info ("libdir"), "octave", "packages"); endif case available_actions *************** *** 2212,2225 **** endfunction function arch = getarch () ! persistent _arch = cstrcat (octave_config_info("canonical_host_type"), ... ! "-", octave_config_info("api_version")); arch = _arch; endfunction function archprefix = getarchprefix (desc, global_install) if ((nargin == 2 && global_install) || (nargin < 2 && issuperuser ())) ! archprefix = fullfile (octave_config_info ("libexecdir"), "octave", "packages", cstrcat(desc.name, "-", desc.version)); else archprefix = desc.dir; --- 2219,2232 ---- endfunction function arch = getarch () ! persistent _arch = cstrcat (octave_config_info ("canonical_host_type"), ! "-", octave_config_info ("api_version")); arch = _arch; endfunction function archprefix = getarchprefix (desc, global_install) if ((nargin == 2 && global_install) || (nargin < 2 && issuperuser ())) ! archprefix = fullfile (octave_config_info ("libdir"), "octave", "packages", cstrcat(desc.name, "-", desc.version)); else archprefix = desc.dir; diff -cNr octave-3.4.0/scripts/pkg/private/get_forge_pkg.m octave-3.4.1/scripts/pkg/private/get_forge_pkg.m *** octave-3.4.0/scripts/pkg/private/get_forge_pkg.m 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/scripts/pkg/private/get_forge_pkg.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,81 ---- + ## Copyright (C) 2010-2011 VZLU Prague, a.s. + ## + ## This file is part of Octave. + ## + ## Octave 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. + ## + ## Octave 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 Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {[@var{ver}, @var{url}] =} get_forge_pkg (@var{name}) + ## Try to discover the current version of an OctaveForge package from the web, + ## using a working internet connection and the urlread function. + ## If two output arguments are requested, also return an address from which + ## to download the file. + ## @end deftypefn + + function [ver, url] = get_forge_pkg (name) + if (nargin != 1) + print_usage (); + endif + ## Verify that name is valid. + if (! (ischar (name) && rows (name) == 1 && ndims (name) == 2)) + error ("get_forge_pkg: package NAME must be a string"); + elseif (! all (isalnum (name) | name == "-" | name == "." | name == "_")) + error ("get_forge_pkg: invalid package name: %s", name); + endif + + name = tolower (name); + + ## Try to download package's index page. + [html, succ] = urlread (sprintf ("http://octave.sourceforge.net/%s/index.html", name)); + if (succ) + ## Remove blanks for simpler matching. + html(isspace(html)) = []; + ## Good. Let's grep for the version. + pat = "PackageVersion:([\\d.]*)"; + t = regexp (html, pat, "tokens"); + if (isempty (t) || isempty(t{1})) + error ("get_forge_pkg: could not read version number from package's page"); + else + ver = t{1}{1}; + if (nargout > 1) + # Build download string. + urlbase = "http://downloads.sourceforge.net/octave/%s-%s.tar.gz?download"; + url = sprintf (urlbase, name, ver); + ## Verify that the string exists on the page. + if (isempty (strfind (html, url))) + warning ("get_forge_pkg: download URL not verified"); + endif + endif + endif + else + ## Try get the list of all packages. + [html, succ] = urlread ("http://octave.sourceforge.net/packages.php"); + if (succ) + t = regexp (html, "
", "tokens"); + t = horzcat (t{:}); + if (any (strcmp (t, name))) + error ("get_forge_pkg: package NAME exists, but index page not available"); + else + ## Try a simplistic method to determine close names. + dist = cellfun (@(n) length (setdiff (name, n)), t); + [~, i] = min (dist); + error ("get_forge_pkg: package not found: ""%s"". Maybe you meant ""%s?""", name, t{i}); + endif + else + error ("get_forge_pkg: could not read URL, please verify internet connection"); + endif + endif + + endfunction diff -cNr octave-3.4.0/scripts/plot/axis.m octave-3.4.1/scripts/plot/axis.m *** octave-3.4.0/scripts/plot/axis.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/plot/axis.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,26 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} axis () ! ## @deftypefnx {Function File} {} axis ([@var{x}_lo, @var{x}_hi]) ! ## @deftypefnx {Function File} {} axis ([@var{x}_lo, @var{x}_hi, @var{y}_lo, @var{y}_hi]) ! ## @deftypefnx {Function File} {} axis ([@var{x}_lo, @var{x}_hi, @var{y}_lo, @var{y}_hi, @var{z}_lo, @var{z}_hi]) ## @deftypefnx {Function File} {} axis (@var{option}) ## @deftypefnx {Function File} {} axis (@dots{}, @var{option}) ## @deftypefnx {Function File} {} axis (@var{h}, @dots{}) --- 18,26 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} axis () ! ## @deftypefnx {Function File} {} axis ([@var{x}_lo @var{x}_hi]) ! ## @deftypefnx {Function File} {} axis ([@var{x}_lo @var{x}_hi @var{y}_lo @var{y}_hi]) ! ## @deftypefnx {Function File} {} axis ([@var{x}_lo @var{x}_hi @var{y}_lo @var{y}_hi @var{z}_lo @var{z}_hi]) ## @deftypefnx {Function File} {} axis (@var{option}) ## @deftypefnx {Function File} {} axis (@dots{}, @var{option}) ## @deftypefnx {Function File} {} axis (@var{h}, @dots{}) diff -cNr octave-3.4.0/scripts/plot/clabel.m octave-3.4.1/scripts/plot/clabel.m *** octave-3.4.0/scripts/plot/clabel.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/plot/clabel.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 24,30 **** ## @deftypefnx {Function File} {} clabel (@var{c}, @var{h}) ## @deftypefnx {Function File} {} clabel (@dots{}, @var{prop}, @var{val}, @dots{}) ## @deftypefnx {Function File} {@var{h} =} clabel (@dots{}) ! ## Adds labels to the contours of a contour plot. The contour plot is specified ## by the contour matrix @var{c} and optionally the contourgroup object @var{h} ## that are returned by @code{contour}, @code{contourf} and @code{contour3}. ## The contour labels are rotated and placed in the contour itself. --- 24,30 ---- ## @deftypefnx {Function File} {} clabel (@var{c}, @var{h}) ## @deftypefnx {Function File} {} clabel (@dots{}, @var{prop}, @var{val}, @dots{}) ## @deftypefnx {Function File} {@var{h} =} clabel (@dots{}) ! ## Add labels to the contours of a contour plot. The contour plot is specified ## by the contour matrix @var{c} and optionally the contourgroup object @var{h} ## that are returned by @code{contour}, @code{contourf} and @code{contour3}. ## The contour labels are rotated and placed in the contour itself. diff -cNr octave-3.4.0/scripts/plot/colorbar.m octave-3.4.1/scripts/plot/colorbar.m *** octave-3.4.0/scripts/plot/colorbar.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/plot/colorbar.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 19,25 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} colorbar (@var{s}) ## @deftypefnx {Function File} {} colorbar ("peer", @var{h}, @dots{}) ! ## Adds a colorbar to the current axes. Valid values for @var{s} are ## ## @table @asis ## @item "EastOutside" --- 19,25 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} colorbar (@var{s}) ## @deftypefnx {Function File} {} colorbar ("peer", @var{h}, @dots{}) ! ## Add a colorbar to the current axes. Valid values for @var{s} are ## ## @table @asis ## @item "EastOutside" *************** *** 63,69 **** i = 1; while (i <= nargin) arg = varargin {i++}; - if (ischar(arg)) if (strcmpi (arg, "peer")) if (i > nargin) --- 63,68 ---- *************** *** 80,85 **** --- 79,86 ---- || strcmpi (arg, "northoutside") || strcmpi (arg, "southoutside") || strcmpi (arg, "eastoutside") || strcmpi (arg, "westoutside")) loc = tolower (arg); + elseif (strcmpi (arg, "location") && i <= nargin) + loc = tolower (varargin{i++}); elseif (strcmpi (arg, "off") || strcmpi (arg, "none")) deleting = true; else diff -cNr octave-3.4.0/scripts/plot/colstyle.m octave-3.4.1/scripts/plot/colstyle.m *** octave-3.4.0/scripts/plot/colstyle.m 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/scripts/plot/colstyle.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,89 ---- + ## Copyright (C) 2011 David Bateman + ## + ## This file is part of Octave. + ## + ## Octave 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. + ## + ## Octave 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 Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {[@var{style}, @var{color}, @var{marker}, @var{msg}] =} colstyle (@var{linespec}) + ## Parse @var{linespec} and return the line style, color, and markers given. + ## In the case of an error, the string @var{msg} will return the text of the + ## error. + ## @end deftypefn + + function [l, c, m, msg] = colstyle (style) + + if (nargin != 1) + print_usage (); + endif + + if (! ischar (style)) + error ("colstyle: STYLE must be a string"); + endif + + try + opt = __pltopt__ ("colstyle", style); + l = opt.linestyle; + c = opt.color; + m = opt.marker; + msg = []; + switch (c) + case [0 0 0] + c = "k"; + case [1 0 0] + c = "r"; + case [0 1 0] + c = "g"; + case [0 0 1] + c = "b"; + case [1 1 0] + c = "y"; + case [1 0 1] + c = "m"; + case [0 1 1] + c = "c"; + case [0 1 1] + c = "w"; + endswitch + catch + l = c = m = []; + msg = lasterr (); + end_try_catch + + endfunction + + %!test + %! [l, c, m, msg] = colstyle ("r:x"); + %! assert (isempty (msg)); + %! assert (l, ":"); + %! assert (c, "r"); + %! assert (m, "x"); + + %!test + %! [l, c, m, msg] = colstyle ("."); + %! assert (isempty (msg)); + %! assert (l, "none"); + %! assert (c, []); + %! assert (m, "."); + + %!test + %! [l, c, m, msg] = colstyle ("~"); + %! assert (msg, "colstyle: unrecognized format character: `~'"); + + %% Test input validation + %!error colstyle () + %!error colstyle (1, 2) + %!error colstyle (1.5) + diff -cNr octave-3.4.0/scripts/plot/cylinder.m octave-3.4.1/scripts/plot/cylinder.m *** octave-3.4.0/scripts/plot/cylinder.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/plot/cylinder.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 22,28 **** ## @deftypefnx {Function File} {} cylinder (@var{r}, @var{n}) ## @deftypefnx {Function File} {[@var{x}, @var{y}, @var{z}] =} cylinder (@dots{}) ## @deftypefnx {Function File} {} cylinder (@var{ax}, @dots{}) ! ## Generates three matrices in @code{meshgrid} format, such that ## @code{surf (@var{x}, @var{y}, @var{z})} generates a unit cylinder. ## The matrices are of size @code{@var{n}+1}-by-@code{@var{n}+1}. ## @var{r} is a vector containing the radius along the z-axis. --- 22,28 ---- ## @deftypefnx {Function File} {} cylinder (@var{r}, @var{n}) ## @deftypefnx {Function File} {[@var{x}, @var{y}, @var{z}] =} cylinder (@dots{}) ## @deftypefnx {Function File} {} cylinder (@var{ax}, @dots{}) ! ## Generate three matrices in @code{meshgrid} format, such that ## @code{surf (@var{x}, @var{y}, @var{z})} generates a unit cylinder. ## The matrices are of size @code{@var{n}+1}-by-@code{@var{n}+1}. ## @var{r} is a vector containing the radius along the z-axis. diff -cNr octave-3.4.0/scripts/plot/daspect.m octave-3.4.1/scripts/plot/daspect.m *** octave-3.4.0/scripts/plot/daspect.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/plot/daspect.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 21,34 **** ## Set the data aspect ratio of the current axes. The aspect ratio is ## a normalized 3-element vector representing the span of the x, y, and ## z-axes limits. ## @deftypefnx {Function File} {@var{data_aspect_ratio} =} daspect ( ) ## Return the data aspect ratio of the current axes. ## @deftypefnx {Function File} {} daspect (@var{mode}) ## Set the data aspect ratio mode of the current axes. ## @deftypefnx {Function File} {@var{data_aspect_ratio_mode} =} daspect ("mode") ## Return the data aspect ratio mode of the current axes. ## @deftypefnx {Function File} {} daspect (@var{hax}, @dots{}) ! ## Uses the axes, with handle @var{hax}, instead of the current axes. ## ## @seealso{axis, pbaspect, xlim, ylim, zlim} ## @end deftypefn --- 21,38 ---- ## Set the data aspect ratio of the current axes. The aspect ratio is ## a normalized 3-element vector representing the span of the x, y, and ## z-axes limits. + ## ## @deftypefnx {Function File} {@var{data_aspect_ratio} =} daspect ( ) ## Return the data aspect ratio of the current axes. + ## ## @deftypefnx {Function File} {} daspect (@var{mode}) ## Set the data aspect ratio mode of the current axes. + ## ## @deftypefnx {Function File} {@var{data_aspect_ratio_mode} =} daspect ("mode") ## Return the data aspect ratio mode of the current axes. + ## ## @deftypefnx {Function File} {} daspect (@var{hax}, @dots{}) ! ## Use the axes, with handle @var{hax}, instead of the current axes. ## ## @seealso{axis, pbaspect, xlim, ylim, zlim} ## @end deftypefn diff -cNr octave-3.4.0/scripts/plot/__fltk_print__.m octave-3.4.1/scripts/plot/__fltk_print__.m *** octave-3.4.0/scripts/plot/__fltk_print__.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/plot/__fltk_print__.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 150,165 **** if (opts.debug) fprintf ("fltk-pipeline: '%s'\n", pipeline{n}); endif ! pid = popen (pipeline{n}, "w"); ! if (pid < 0) ! error ("print:popenfailed", "print.m: failed to open pipe"); ! endif ! unwind_protect ! drawnow (gl2ps_device{n} , sprintf ("%d" , pid)); ! waitpid (pid); ! unwind_protect_cleanup ! pclose (pid); ! end_unwind_protect endfor if (! isempty (strfind (opts.devopt, "standalone"))) --- 150,156 ---- if (opts.debug) fprintf ("fltk-pipeline: '%s'\n", pipeline{n}); endif ! drawnow (gl2ps_device{n}, strcat('|',pipeline{n})); endfor if (! isempty (strfind (opts.devopt, "standalone"))) diff -cNr octave-3.4.0/scripts/plot/fplot.m octave-3.4.1/scripts/plot/fplot.m *** octave-3.4.0/scripts/plot/fplot.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/plot/fplot.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 21,28 **** ## @deftypefnx {Function File} {} fplot (@var{fn}, @var{limits}, @var{tol}) ## @deftypefnx {Function File} {} fplot (@var{fn}, @var{limits}, @var{n}) ## @deftypefnx {Function File} {} fplot (@dots{}, @var{fmt}) ! ## Plot a function @var{fn}, within the defined limits. @var{fn} ! ## an be either a string, a function handle or an inline function. ## The limits of the plot are given by @var{limits} of the form ## @code{[@var{xlo}, @var{xhi}]} or @code{[@var{xlo}, @var{xhi}, ## @var{ylo}, @var{yhi}]}. @var{tol} is the default tolerance to use for the --- 21,29 ---- ## @deftypefnx {Function File} {} fplot (@var{fn}, @var{limits}, @var{tol}) ## @deftypefnx {Function File} {} fplot (@var{fn}, @var{limits}, @var{n}) ## @deftypefnx {Function File} {} fplot (@dots{}, @var{fmt}) ! ## Plot a function @var{fn} within defined limits. ! ## @var{fn} is a function handle, inline function, or string ! ## containing the name of the function to evaluate. ## The limits of the plot are given by @var{limits} of the form ## @code{[@var{xlo}, @var{xhi}]} or @code{[@var{xlo}, @var{xhi}, ## @var{ylo}, @var{yhi}]}. @var{tol} is the default tolerance to use for the diff -cNr octave-3.4.0/scripts/plot/__gnuplot_ginput__.m octave-3.4.1/scripts/plot/__gnuplot_ginput__.m *** octave-3.4.0/scripts/plot/__gnuplot_ginput__.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/plot/__gnuplot_ginput__.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 113,119 **** if (isempty (str)) sleep (0.05); else ! str = regexp (str, 'OCTAVE:\s+[-+.0-9]+\s+[-+.0-9]+\s+[0-9]*', 'match'); endif fclear (istream); endwhile --- 113,119 ---- if (isempty (str)) sleep (0.05); else ! str = regexp (str, 'OCTAVE:\s+[-+.\d]+\s+[-+.\d]+\s+\d*', 'match'); endif fclear (istream); endwhile diff -cNr octave-3.4.0/scripts/plot/__go_draw_axes__.m octave-3.4.1/scripts/plot/__go_draw_axes__.m *** octave-3.4.0/scripts/plot/__go_draw_axes__.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/plot/__go_draw_axes__.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 1271,1283 **** if (nd == 3) ## This produces the desired vertical alignment in 3D. fprintf (plot_stream, ! "set label \"%s\" at %s %.15g,%.15g,%.15g %s rotate by %f offset character %f,%f %s %s front %s;\n", undo_string_escapes (label), units, lpos(1), lpos(2), lpos(3), halign, angle, dx_and_dy, fontspec, __do_enhanced_option__ (enhanced, obj), colorspec); else fprintf (plot_stream, ! "set label \"%s\" at %s %.15g,%.15g %s rotate by %f offset character %f,%f %s %s front %s;\n", undo_string_escapes (label), units, lpos(1), lpos(2), halign, angle, dx_and_dy, fontspec, __do_enhanced_option__ (enhanced, obj), colorspec); --- 1271,1283 ---- if (nd == 3) ## This produces the desired vertical alignment in 3D. fprintf (plot_stream, ! "set label \"%s\" at %s %.15e,%.15e,%.15e %s rotate by %f offset character %f,%f %s %s front %s;\n", undo_string_escapes (label), units, lpos(1), lpos(2), lpos(3), halign, angle, dx_and_dy, fontspec, __do_enhanced_option__ (enhanced, obj), colorspec); else fprintf (plot_stream, ! "set label \"%s\" at %s %.15e,%.15e %s rotate by %f offset character %f,%f %s %s front %s;\n", undo_string_escapes (label), units, lpos(1), lpos(2), halign, angle, dx_and_dy, fontspec, __do_enhanced_option__ (enhanced, obj), colorspec); *************** *** 1472,1478 **** pos = ""; endswitch if (__gnuplot_has_feature__ ("key_has_font_properties")) ! [fontname, fontsize] = get_fontname_and_size (obj); fontspec = create_fontspec (fontname, fontsize, gnuplot_term); else fontspec = ""; --- 1472,1478 ---- pos = ""; endswitch if (__gnuplot_has_feature__ ("key_has_font_properties")) ! [fontname, fontsize] = get_fontname_and_size (hlgnd); fontspec = create_fontspec (fontname, fontsize, gnuplot_term); else fontspec = ""; *************** *** 2326,2332 **** function l = length_string (s) l = length (s) - length (strfind(s,'{')) - length (strfind(s,'}')); ! m = regexp (s, '/([a-zA-Z0-9_-]+|[a-zA-Z0-9_-]+=[0-9]+)', 'matches'); if (!isempty (m)) l = l - sum (cellfun (@length, m)); endif --- 2326,2332 ---- function l = length_string (s) l = length (s) - length (strfind(s,'{')) - length (strfind(s,'}')); ! m = regexp (s, '/([\w-]+|[\w-]+=\d+)', 'matches'); if (!isempty (m)) l = l - sum (cellfun (@length, m)); endif diff -cNr octave-3.4.0/scripts/plot/ishold.m octave-3.4.1/scripts/plot/ishold.m *** octave-3.4.0/scripts/plot/ishold.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/plot/ishold.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,25 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Command} {} ishold ## Return true if the next plot will be added to the current plot, or ## false if the plot device will be cleared before drawing the next plot. ## @seealso{hold} ## @end deftypefn --- 17,29 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Command} {} ishold ! ## @deftypefnx {Function File} {} ishold (@var{h}) ## Return true if the next plot will be added to the current plot, or ## false if the plot device will be cleared before drawing the next plot. + ## + ## Optionally, operate on the graphics handle @var{h} rather than the current + ## plot. ## @seealso{hold} ## @end deftypefn diff -cNr octave-3.4.0/scripts/plot/isocolors.m octave-3.4.1/scripts/plot/isocolors.m *** octave-3.4.0/scripts/plot/isocolors.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/plot/isocolors.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 22,31 **** ## @deftypefnx {Function File} {[@var{cd}] =} isocolors (@var{x}, @var{y}, @var{z}, @var{r}, @var{g}, @var{b}, @var{v}) ## @deftypefnx {Function File} {[@var{cd}] =} isocolors (@var{r}, @var{g}, @var{b}, @var{v}) ## @deftypefnx {Function File} {[@var{cd}] =} isocolors (@dots{}, @var{p}) ! ## @deftypefnx {Function File} isocolors (@dots{}) ## ## If called with one output argument and the first input argument ! ## @var{c} is a three--dimensional array that contains color values and ## the second input argument @var{v} keeps the vertices of a geometry ## then return a matrix @var{cd} with color data information for the ## geometry at computed points --- 22,31 ---- ## @deftypefnx {Function File} {[@var{cd}] =} isocolors (@var{x}, @var{y}, @var{z}, @var{r}, @var{g}, @var{b}, @var{v}) ## @deftypefnx {Function File} {[@var{cd}] =} isocolors (@var{r}, @var{g}, @var{b}, @var{v}) ## @deftypefnx {Function File} {[@var{cd}] =} isocolors (@dots{}, @var{p}) ! ## @deftypefnx {Function File} {} isocolors (@dots{}) ## ## If called with one output argument and the first input argument ! ## @var{c} is a three-dimensional array that contains color values and ## the second input argument @var{v} keeps the vertices of a geometry ## then return a matrix @var{cd} with color data information for the ## geometry at computed points *************** *** 92,98 **** ## isofinish (p); ## @end example ## ! ## @seealso{isosurface, isonormals, isocaps} ## ## @end deftypefn --- 92,98 ---- ## isofinish (p); ## @end example ## ! ## @seealso{isosurface, isonormals} ## ## @end deftypefn diff -cNr octave-3.4.0/scripts/plot/isonormals.m octave-3.4.1/scripts/plot/isonormals.m *** octave-3.4.0/scripts/plot/isonormals.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/plot/isonormals.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 22,31 **** ## @deftypefnx {Function File} {[@var{n}] =} isonormals (@var{x}, @var{y}, @var{z}, @var{val}, @var{v}) ## @deftypefnx {Function File} {[@var{n}] =} isonormals (@var{x}, @var{y}, @var{z}, @var{val}, @var{p}) ## @deftypefnx {Function File} {[@var{n}] =} isonormals (@dots{}, "negate") ! ## @deftypefnx {Function File} isonormals (@dots{}, @var{p}) ## ## If called with one output argument and the first input argument ! ## @var{val} is a three--dimensional array that contains the data for an ## isosurface geometry and the second input argument @var{v} keeps the ## vertices of an isosurface then return the normals @var{n} in form of ## a matrix with the same size than @var{v} at computed points --- 22,31 ---- ## @deftypefnx {Function File} {[@var{n}] =} isonormals (@var{x}, @var{y}, @var{z}, @var{val}, @var{v}) ## @deftypefnx {Function File} {[@var{n}] =} isonormals (@var{x}, @var{y}, @var{z}, @var{val}, @var{p}) ## @deftypefnx {Function File} {[@var{n}] =} isonormals (@dots{}, "negate") ! ## @deftypefnx {Function File} {} isonormals (@dots{}, @var{p}) ## ## If called with one output argument and the first input argument ! ## @var{val} is a three-dimensional array that contains the data for an ## isosurface geometry and the second input argument @var{v} keeps the ## vertices of an isosurface then return the normals @var{n} in form of ## a matrix with the same size than @var{v} at computed points *************** *** 88,95 **** ## isofinish (p); ## @end example ## ! ## @seealso {isosurface, isocolors, isocaps, marching_cube} ! ## ## @end deftypefn ## Author: Martin Helm --- 88,94 ---- ## isofinish (p); ## @end example ## ! ## @seealso{isosurface, isocolors} ## @end deftypefn ## Author: Martin Helm diff -cNr octave-3.4.0/scripts/plot/isosurface.m octave-3.4.1/scripts/plot/isosurface.m *** octave-3.4.0/scripts/plot/isosurface.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/plot/isosurface.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 26,32 **** ## @deftypefnx {Function File} {} isosurface (@var{x}, @var{y}, @var{z}, @var{val}, @var{iso}, @var{col}, @var{opt}) ## ## If called with one output argument and the first input argument ! ## @var{val} is a three--dimensional array that contains the data of an ## isosurface geometry and the second input argument @var{iso} keeps the ## isovalue as a scalar value then return a structure array @var{fv} ## that contains the fields @var{Faces} and @var{Vertices} at computed --- 26,32 ---- ## @deftypefnx {Function File} {} isosurface (@var{x}, @var{y}, @var{z}, @var{val}, @var{iso}, @var{col}, @var{opt}) ## ## If called with one output argument and the first input argument ! ## @var{val} is a three-dimensional array that contains the data of an ## isosurface geometry and the second input argument @var{iso} keeps the ## isovalue as a scalar value then return a structure array @var{fv} ## that contains the fields @var{Faces} and @var{Vertices} at computed *************** *** 108,115 **** ## # light ("Position", [1 1 5]); ## @end example ## ! ## @seealso{isocolors, isonormals, isocaps} ! ## ## @end deftypefn ## Author: Martin Helm --- 108,114 ---- ## # light ("Position", [1 1 5]); ## @end example ## ! ## @seealso{isonormals, isocolors} ## @end deftypefn ## Author: Martin Helm diff -cNr octave-3.4.0/scripts/plot/legend.m octave-3.4.1/scripts/plot/legend.m *** octave-3.4.0/scripts/plot/legend.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/plot/legend.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 120,126 **** endif if (strcmp (get (ca, "tag"), "plotyy")) ! plty = get(ca (strcmp (get (ca, "tag"), "plotyy")), "userdata"); if (isscalar (plty)) ca = [ca, plty]; else --- 120,126 ---- endif if (strcmp (get (ca, "tag"), "plotyy")) ! plty = get(ca, "userdata"); if (isscalar (plty)) ca = [ca, plty]; else *************** *** 492,498 **** if (isempty (hlegend)) addprops = true; hlegend = axes ("tag", "legend", "userdata", struct ("handle", ud), ! "box", box, "outerposition", [0, 0, 0, 0], "xtick", [], "ytick", [], "xticklabel", "", "yticklabel", "", "zticklabel", "", "xlim", [0, 1], "ylim", [0, 1], "visible", "off", --- 492,498 ---- if (isempty (hlegend)) addprops = true; hlegend = axes ("tag", "legend", "userdata", struct ("handle", ud), ! "box", box, "xtick", [], "ytick", [], "xticklabel", "", "yticklabel", "", "zticklabel", "", "xlim", [0, 1], "ylim", [0, 1], "visible", "off", *************** *** 582,589 **** lpos(4)]; new_pos = [ca_pos(1), ca_pos(2), ca_pos(3), ca_pos(4) - lpos(4)]; - new_outpos = [ca_outpos(1), ca_outpos(2), ca_outpos(3), ... - ca_outpos(4) - lpos(4)]; else lpos = [ca_pos(1) + (ca_pos(3) - lpos(3)) / 2, ... ca_pos(2) + ca_pos(4) - lpos(4) - ypad, lpos(3), lpos(4)]; --- 582,587 ---- *************** *** 594,601 **** ca_outpos(2) + ypad, lpos(3), lpos(4)]; new_pos = [ca_pos(1), ca_pos(2) + lpos(4), ca_pos(3), ... ca_pos(4) - lpos(4)]; - new_outpos = [ca_outpos(1), ca_outpos(2) + lpos(4), ... - ca_outpos(3), ca_outpos(4) - lpos(4)]; else lpos = [ca_pos(1) + (ca_pos(3) - lpos(3)) / 2, ... ca_pos(2) + ypad, lpos(3), lpos(4)]; --- 592,597 ---- *************** *** 605,612 **** lpos = [ca_outpos(1) + ca_outpos(3) - lpos(3) - ypad, ... ca_pos(2) + (ca_pos(4) - lpos(4)) / 2, lpos(3), lpos(4)]; new_pos = [ca_pos(1), ca_pos(2), ca_pos(3) - lpos(3), ca_pos(4)]; - new_outpos = [ca_outpos(1), ca_outpos(2), ... - ca_outpos(3) - lpos(3), ca_outpos(4)]; else lpos = [ca_pos(1) + ca_pos(3) - lpos(3) - ypad, ... ca_pos(2) + (ca_pos(4) - lpos(4)) / 2, lpos(3), lpos(4)]; --- 601,606 ---- *************** *** 618,625 **** lpos(3), lpos(4)]; new_pos = [ca_pos(1) + lpos(3), ca_pos(2), ... ca_pos(3) - lpos(3), ca_pos(4)]; - new_outpos = [ca_outpos(1) + lpos(3), ca_outpos(2), ... - ca_outpos(3) - lpos(3), ca_outpos(4)]; else lpos = [ca_pos(1) + ypad, ... ca_pos(2) + (ca_pos(4) - lpos(4)) / 2, lpos(3), lpos(4)]; --- 612,617 ---- *************** *** 629,636 **** lpos = [ca_outpos(1) + ca_outpos(3) - lpos(3) - ypad, ... ca_pos(2) + ca_pos(4) - lpos(4), lpos(3), lpos(4)]; new_pos = [ca_pos(1), ca_pos(2), ca_pos(3) - lpos(3), ca_pos(4)]; - new_outpos = [ca_outpos(1), ca_outpos(2), ... - ca_outpos(3) - lpos(3), ca_outpos(4)]; else lpos = [ca_pos(1) + ca_pos(3) - lpos(3) - ypad, ... ca_pos(2) + ca_pos(4) - lpos(4) - ypad, lpos(3), lpos(4)]; --- 621,626 ---- *************** *** 641,648 **** lpos(3), lpos(4)]; new_pos = [ca_pos(1) + lpos(3), ca_pos(2), ... ca_pos(3) - lpos(3), ca_pos(4)]; - new_outpos = [ca_outpos(1) + lpos(3), ca_outpos(2), ... - ca_outpos(3) - lpos(3), ca_outpos(4)]; else lpos = [ca_pos(1) + ypad, ... ca_pos(2) + ca_pos(4) - lpos(4) - ypad, lpos(3), lpos(4)]; --- 631,636 ---- *************** *** 653,660 **** ca_pos(2), lpos(3), lpos(4)]; new_pos = [ca_pos(1), ca_pos(2), ... ca_pos(3) - lpos(3), ca_pos(4)]; - new_outpos = [ca_outpos(1), ca_outpos(2), ... - ca_outpos(3) - lpos(3), ca_outpos(4)]; else lpos = [ca_pos(1) + ca_pos(3) - lpos(3) - ypad, ... ca_pos(2) + ypad, lpos(3), lpos(4)]; --- 641,646 ---- *************** *** 664,671 **** lpos = [ca_outpos(1) + ypad, ca_pos(2), lpos(3), lpos(4)]; new_pos = [ca_pos(1) + lpos(3), ca_pos(2), ... ca_pos(3) - lpos(3), ca_pos(4)]; - new_outpos = [ca_outpos(1) + lpos(3), ca_outpos(2), ... - ca_outpos(3) - lpos(3), ca_outpos(4)]; else lpos = [ca_pos(1) + ypad, ca_pos(2) + ypad, lpos(3), lpos(4)]; endif --- 650,655 ---- *************** *** 674,680 **** units = get (hlegend, "units"); unwind_protect set (hlegend, "units", "points"); ! set (hlegend, "position", lpos, "outerposition", lpos); unwind_protect_cleanup set (hlegend, "units", units); end_unwind_protect --- 658,664 ---- units = get (hlegend, "units"); unwind_protect set (hlegend, "units", "points"); ! set (hlegend, "position", lpos); unwind_protect_cleanup set (hlegend, "units", units); end_unwind_protect *************** *** 750,756 **** units = get (ca(i), "units"); unwind_protect set (ca(i), "units", "points"); ! set (ca (i), "position", new_pos, "outerposition", new_outpos); unwind_protect_cleanup set (ca(i), "units", units); end_unwind_protect --- 734,740 ---- units = get (ca(i), "units"); unwind_protect set (ca(i), "units", "points"); ! set (ca (i), "position", new_pos); unwind_protect_cleanup set (ca(i), "units", units); end_unwind_protect *************** *** 759,766 **** set (hlegend, "deletefcn", {@deletelegend2, ca, ... ca_pos, ca_outpos, t1, hplots}); addlistener (hlegend, "visible", {@hideshowlegend, ca, ... ! ca_pos, new_pos, ... ! ca_outpos, new_outpos}); else set (hlegend, "deletefcn", {@deletelegend2, ca, [], [], t1, hplots}); endif --- 743,749 ---- set (hlegend, "deletefcn", {@deletelegend2, ca, ... ca_pos, ca_outpos, t1, hplots}); addlistener (hlegend, "visible", {@hideshowlegend, ca, ... ! ca_pos, new_pos}); else set (hlegend, "deletefcn", {@deletelegend2, ca, [], [], t1, hplots}); endif *************** *** 841,847 **** endwhile endfunction ! function hideshowlegend (h, d, ca, pos1, pos2, outpos1, outpos2) isvisible = strcmp (get (h, "visible"), "off"); if (! isvisible) kids = get (h, "children"); --- 824,830 ---- endwhile endfunction ! function hideshowlegend (h, d, ca, pos1, pos2) isvisible = strcmp (get (h, "visible"), "off"); if (! isvisible) kids = get (h, "children"); *************** *** 861,869 **** unwind_protect set (ca(i), "units", "points"); if (isvisible) ! set (ca(i), "position", pos2, "outerposition", outpos2); else ! set (ca(i), "position", pos1, "outerposition", outpos1); endif unwind_protect_cleanup set (ca(i), "units", units); --- 844,852 ---- unwind_protect set (ca(i), "units", "points"); if (isvisible) ! set (ca(i), "position", pos2); else ! set (ca(i), "position", pos1); endif unwind_protect_cleanup set (ca(i), "units", units); *************** *** 889,895 **** units = get (ca(i), "units"); unwind_protect set (ca(i), "units", "points"); ! set (ca(i), "position", pos, "outerposition", outpos, "deletefcn", ""); unwind_protect_cleanup set (ca(i), "units", units); end_unwind_protect --- 872,878 ---- units = get (ca(i), "units"); unwind_protect set (ca(i), "units", "points"); ! set (ca(i), "position", pos, "deletefcn", ""); unwind_protect_cleanup set (ca(i), "units", units); end_unwind_protect *************** *** 1041,1049 **** %!demo %! clf %! labels = {}; %! for i = 1:5 %! h = plot(1:100, i + rand(100,1)); hold on; ! %! set (h, "color", get (gca, "colororder")(i,:)) %! labels = {labels{:}, cstrcat("Signal ", num2str(i))}; %! endfor %! hold off; --- 1024,1033 ---- %!demo %! clf %! labels = {}; + %! colororder = get (gca, "colororder"); %! for i = 1:5 %! h = plot(1:100, i + rand(100,1)); hold on; ! %! set (h, "color", colororder(i,:)) %! labels = {labels{:}, cstrcat("Signal ", num2str(i))}; %! endfor %! hold off; *************** *** 1055,1063 **** %!demo %! clf %! labels = {}; %! for i = 1:5 %! h = plot(1:100, i + rand(100,1)); hold on; ! %! set (h, "color", get (gca, "colororder")(i,:)) %! labels = {labels{:}, cstrcat("Signal ", num2str(i))}; %! endfor %! hold off; --- 1039,1048 ---- %!demo %! clf %! labels = {}; + %! colororder = get (gca, "colororder"); %! for i = 1:5 %! h = plot(1:100, i + rand(100,1)); hold on; ! %! set (h, "color", colororder(i,:)) %! labels = {labels{:}, cstrcat("Signal ", num2str(i))}; %! endfor %! hold off; diff -cNr octave-3.4.0/scripts/plot/linkprop.m octave-3.4.1/scripts/plot/linkprop.m *** octave-3.4.0/scripts/plot/linkprop.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/plot/linkprop.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {@var{hlink} =} linkprop (@var{h}, @var{prop}) ! ## Links graphics object properties, such that a change in one is ## propagated to the others. The properties to link are given as a ## string of cell string array by @var{prop} and the objects containing ## these properties by the handle array @var{h}. --- 18,24 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {@var{hlink} =} linkprop (@var{h}, @var{prop}) ! ## Link graphics object properties, such that a change in one is ## propagated to the others. The properties to link are given as a ## string of cell string array by @var{prop} and the objects containing ## these properties by the handle array @var{h}. diff -cNr octave-3.4.0/scripts/plot/module.mk octave-3.4.1/scripts/plot/module.mk *** octave-3.4.0/scripts/plot/module.mk 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/plot/module.mk 2011-06-15 11:11:27.000000000 -0400 *************** *** 67,72 **** --- 67,73 ---- plot/close.m \ plot/closereq.m \ plot/colorbar.m \ + plot/colstyle.m \ plot/comet.m \ plot/comet3.m \ plot/compass.m \ *************** *** 140,145 **** --- 141,147 ---- plot/print.m \ plot/quiver.m \ plot/quiver3.m \ + plot/rectangle.m \ plot/refresh.m \ plot/refreshdata.m \ plot/ribbon.m \ diff -cNr octave-3.4.0/scripts/plot/patch.m octave-3.4.1/scripts/plot/patch.m *** octave-3.4.0/scripts/plot/patch.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/plot/patch.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 136,138 **** --- 136,154 ---- %! patch('Vertices', vertices, 'Faces', faces, ... %! 'FaceVertexCData', jet(4), 'FaceColor', 'flat') %! view (-37.5, 30) + + %!demo + %! clf + %! vertices = [0, 0, 0; + %! 1, 0, 0; + %! 1, 1, 0; + %! 0, 1, 0; + %! 0.5, 0.5, 1]; + %! faces = [1, 2, 5; + %! 2, 3, 5; + %! 3, 4, 5; + %! 4, 1, 5]; + %! patch('Vertices', vertices, 'Faces', faces, ... + %! 'FaceVertexCData', jet(5), 'FaceColor', 'interp') + %! view (-37.5, 30) + diff -cNr octave-3.4.0/scripts/plot/pbaspect.m octave-3.4.1/scripts/plot/pbaspect.m *** octave-3.4.0/scripts/plot/pbaspect.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/pbaspect.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 21,34 **** ## Set the plot box aspect ratio of the current axes. The aspect ratio ## is a normalized 3-element vector representing the rendered lengths of ## the x, y, and z-axes. ## @deftypefnx {Function File} {@var{plot_box_aspect_ratio} =} pbaspect ( ) ## Return the plot box aspect ratio of the current axes. ## @deftypefnx {Function File} {} pbaspect (@var{mode}) ## Set the plot box aspect ratio mode of the current axes. ## @deftypefnx {Function File} {@var{plot_box_aspect_ratio_mode} =} pbaspect ("mode") ## Return the plot box aspect ratio mode of the current axes. ## @deftypefnx {Function File} {} pbaspect (@var{hax}, @dots{}) ! ## Uses the axes, with handle @var{hax}, instead of the current axes. ## ## @seealso{axis, daspect, xlim, ylim, zlim} ## @end deftypefn --- 21,38 ---- ## Set the plot box aspect ratio of the current axes. The aspect ratio ## is a normalized 3-element vector representing the rendered lengths of ## the x, y, and z-axes. + ## ## @deftypefnx {Function File} {@var{plot_box_aspect_ratio} =} pbaspect ( ) ## Return the plot box aspect ratio of the current axes. + ## ## @deftypefnx {Function File} {} pbaspect (@var{mode}) ## Set the plot box aspect ratio mode of the current axes. + ## ## @deftypefnx {Function File} {@var{plot_box_aspect_ratio_mode} =} pbaspect ("mode") ## Return the plot box aspect ratio mode of the current axes. + ## ## @deftypefnx {Function File} {} pbaspect (@var{hax}, @dots{}) ! ## Use the axes, with handle @var{hax}, instead of the current axes. ## ## @seealso{axis, daspect, xlim, ylim, zlim} ## @end deftypefn diff -cNr octave-3.4.0/scripts/plot/plotyy.m octave-3.4.1/scripts/plot/plotyy.m *** octave-3.4.0/scripts/plot/plotyy.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/plotyy.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 22,28 **** ## @deftypefnx {Function File} {} plotyy (@dots{}, @var{fun1}, @var{fun2}) ## @deftypefnx {Function File} {} plotyy (@var{h}, @dots{}) ## @deftypefnx {Function File} {[@var{ax}, @var{h1}, @var{h2}] =} plotyy (@dots{}) ! ## Plots two sets of data with independent y-axes. The arguments @var{x1} and ## @var{y1} define the arguments for the first plot and @var{x1} and @var{y2} ## for the second. ## --- 22,28 ---- ## @deftypefnx {Function File} {} plotyy (@dots{}, @var{fun1}, @var{fun2}) ## @deftypefnx {Function File} {} plotyy (@var{h}, @dots{}) ## @deftypefnx {Function File} {[@var{ax}, @var{h1}, @var{h2}] =} plotyy (@dots{}) ! ## Plot two sets of data with independent y-axes. The arguments @var{x1} and ## @var{y1} define the arguments for the first plot and @var{x1} and @var{y2} ## for the second. ## *************** *** 222,231 **** %! ylabel (ax(1), "Axis 1"); %! ylabel (ax(2), "Axis 2"); %! axes (ax(1)) ! %! text (0.5, 0.5, "Left Axis", %! "color", [0 0 1], "horizontalalignment", "center") %! axes (ax(2)) ! %! text (4.5, 80, "Right Axis", %! "color", [0 0.5 0], "horizontalalignment", "center") %!demo --- 222,231 ---- %! ylabel (ax(1), "Axis 1"); %! ylabel (ax(2), "Axis 2"); %! axes (ax(1)) ! %! text (0.5, 0.5, "Left Axis", ... %! "color", [0 0 1], "horizontalalignment", "center") %! axes (ax(2)) ! %! text (4.5, 80, "Right Axis", ... %! "color", [0 0.5 0], "horizontalalignment", "center") %!demo diff -cNr octave-3.4.0/scripts/plot/__print_parse_opts__.m octave-3.4.1/scripts/plot/__print_parse_opts__.m *** octave-3.4.0/scripts/plot/__print_parse_opts__.m 2011-02-08 05:00:51.000000000 -0500 --- octave-3.4.1/scripts/plot/__print_parse_opts__.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 344,359 **** if (warn_on_missing_binary) if (isempty (arg_st.ghostscript.binary)) ! warning ("print:missinggs", "print.m: Ghostscript binary is not available"); ! endif ! if (isempty (arg_st.epstool_binary)) ! warning ("print:missinggs", "print.m: epstool binary is not available"); ! endif ! if (isempty (arg_st.fig2dev_binary)) ! warning ("print:missinggs", "print.m: fig2dev binary is not available"); ! endif ! if (isempty (arg_st.pstoedit_binary)) ! warning ("print:missinggs", "print.m: pstoedit binary is not available"); endif warn_on_missing_binary = false; endif --- 344,360 ---- if (warn_on_missing_binary) if (isempty (arg_st.ghostscript.binary)) ! warning ("print:missing_gs", "print.m: Ghostscript binary is not available.\nOnly eps output is available."); ! else ! if (isempty (arg_st.epstool_binary)) ! warning ("print:missing_epstool", "print.m: epstool binary is not available.\nSome output formats are not available."); ! endif ! if (isempty (arg_st.fig2dev_binary)) ! warning ("print:missing_fig2dev", "print.m: fig2dev binary is not available.\nSome output formats are not available."); ! endif ! if (isempty (arg_st.pstoedit_binary)) ! warning ("print:missing_pstoedit", "print.m: pstoedit binary is not available.\nSome output formats are not available."); ! endif endif warn_on_missing_binary = false; endif diff -cNr octave-3.4.0/scripts/plot/private/__add_default_menu__.m octave-3.4.1/scripts/plot/private/__add_default_menu__.m *** octave-3.4.0/scripts/plot/private/__add_default_menu__.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/private/__add_default_menu__.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} __add_default_menu__ (@var{fig}) ! ## Adds default menu to figure. All uimenu handles have ## set their property "handlevisibility" to "off". ## @end deftypefn --- 18,24 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} __add_default_menu__ (@var{fig}) ! ## Add default menu to figure. All uimenu handles have ## set their property "handlevisibility" to "off". ## @end deftypefn *************** *** 100,109 **** function guimode_cb (h, e) lbl = get(h, "label"); if (strncmp(lbl, "Pan+Zoom", 8)) ! fltk_gui_mode("2D"); elseif (strncmp(lbl, "Rotate+Zoom", 11)) ! fltk_gui_mode("3D"); elseif (strncmp(lbl, "None", 4)) ! fltk_gui_mode("None"); endif endfunction --- 100,109 ---- function guimode_cb (h, e) lbl = get(h, "label"); if (strncmp(lbl, "Pan+Zoom", 8)) ! gui_mode("2D"); elseif (strncmp(lbl, "Rotate+Zoom", 11)) ! gui_mode("3D"); elseif (strncmp(lbl, "None", 4)) ! gui_mode("None"); endif endfunction diff -cNr octave-3.4.0/scripts/plot/private/__contour__.m octave-3.4.1/scripts/plot/private/__contour__.m *** octave-3.4.0/scripts/plot/private/__contour__.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/private/__contour__.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 530,536 **** ## it be an absolute or relative tolerance, or switch from one to the ## other depending on the value of lev? if (isscalar (lev)) ! lvl_eps = abs (lev) * sqrt (eps); else tmp = min (abs (diff (lev))); if (tmp < 10*eps) --- 530,536 ---- ## it be an absolute or relative tolerance, or switch from one to the ## other depending on the value of lev? if (isscalar (lev)) ! lvl_eps = abs (lev) * sqrt (eps) + sqrt (eps); else tmp = min (abs (diff (lev))); if (tmp < 10*eps) diff -cNr octave-3.4.0/scripts/plot/private/__ghostscript__.m octave-3.4.1/scripts/plot/private/__ghostscript__.m *** octave-3.4.0/scripts/plot/private/__ghostscript__.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/private/__ghostscript__.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 130,136 **** endif endif ! if (isempty (opts.output)) cmd = sprintf ("%s %s", opts.binary, gs_opts); else cmd = sprintf ("%s %s -sOutputFile=%s", opts.binary, gs_opts, opts.output); --- 130,138 ---- endif endif ! if (isempty (opts.binary)) ! error ("print:no_ghostscript", "__ghostscript__.m: ghostscript is required."); ! elseif (isempty (opts.output)) cmd = sprintf ("%s %s", opts.binary, gs_opts); else cmd = sprintf ("%s %s -sOutputFile=%s", opts.binary, gs_opts, opts.output); diff -cNr octave-3.4.0/scripts/plot/private/__quiver__.m octave-3.4.1/scripts/plot/private/__quiver__.m *** octave-3.4.0/scripts/plot/private/__quiver__.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/private/__quiver__.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 107,124 **** if (autoscale && numel (u) > 1) ## Scale the arrows to fit in the grid ! dx = (max(x(:)) - min(x(:))) ./ size (x, 2); ! dy = (max(y(:)) - min(y(:))) ./ size (y, 1); if (is3d) - ## What should this be divided by? The below seems right dz = (max(z(:)) - min(z(:))) ./ max (size (z)); ! len = max (sqrt (u(:).^2 + dy(:).^2) + dz(:).^2); else - len = max (sqrt (u(:).^2 + dy(:).^2)); dz = 0; endif if (len > 0) ! s = 2 * autoscale / sqrt (2) * sqrt (dx.^2 + dy.^2 + dz.^2) / len; uu = s * u; vv = s * v; if (is3d) --- 107,133 ---- if (autoscale && numel (u) > 1) ## Scale the arrows to fit in the grid ! if (isvector (x)) ! ny = nx = length (x); ! else ! [nx, ny] = size (x); ! endif ! dx = (max(x(:)) - min(x(:))) ./ nx; ! dy = (max(y(:)) - min(y(:))) ./ ny; if (is3d) dz = (max(z(:)) - min(z(:))) ./ max (size (z)); ! len = max (sqrt (u(:).^2 + v(:).^2 + w(:).^2)); else dz = 0; + len = max (sqrt (u(:).^2 + v(:).^2)); endif if (len > 0) ! sd = sqrt (dx.^2 + dy.^2 + dz.^2) / len; ! if (sd != 0) ! s = sqrt(2) * autoscale * sd; ! else # special case of identical points with multiple vectors ! s = autoscale; ! endif uu = s * u; vv = s * v; if (is3d) *************** *** 335,352 **** if (strcmpi (get (h, "autoscale"), "on") && s != 0) ## Scale the arrows to fit in the grid ! dx = (max(x(:)) - min(x(:))) ./ size (x, 2); ! dy = (max(y(:)) - min(y(:))) ./ size (y, 1); if (is3d) - ## What should this be divided by? The below seems right dz = (max(z(:)) - min(z(:))) ./ max (size (z)); ! len = max (sqrt (u(:).^2 + dy(:).^2) + dz(:).^2); else - len = max (sqrt (u(:).^2 + dy(:).^2)); dz = 0; endif if (len > 0) ! s = 2 * s / sqrt (2) * sqrt (dx.^2 + dy.^2 + dz.^2) / len; u = s * u; v = s * v; if (is3d) --- 344,368 ---- if (strcmpi (get (h, "autoscale"), "on") && s != 0) ## Scale the arrows to fit in the grid ! if (isvector (x)) ! ny = nx = length (x); ! else ! [nx, ny] = size (x); ! endif ! dx = (max(x(:)) - min(x(:))) ./ nx; ! dy = (max(y(:)) - min(y(:))) ./ ny; if (is3d) dz = (max(z(:)) - min(z(:))) ./ max (size (z)); ! len = max (sqrt (u(:).^2 + v(:).^2 + w(:).^2)); else dz = 0; + len = max (sqrt (u(:).^2 + v(:).^2)); endif if (len > 0) ! sd = sqrt (dx.^2 + dy.^2 + dz.^2) / len; ! if (sd != 0) ! s *= sqrt(2) * sd; ! endif u = s * u; v = s * v; if (is3d) diff -cNr octave-3.4.0/scripts/plot/private/__scatter__.m octave-3.4.1/scripts/plot/private/__scatter__.m *** octave-3.4.0/scripts/plot/private/__scatter__.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/private/__scatter__.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 168,174 **** "marker", marker, "markersize", s(i), "markeredgecolor", "none", "markerfacecolor", "flat", ! "cdata", c(i,:), "linestyle", "none"); else h = __go_patch__ (hg, "xdata", x(i), "ydata", y(i), "zdata", z(i,:), "faces", 1, "vertices", [x(i), y(i), z(i,:)], --- 168,175 ---- "marker", marker, "markersize", s(i), "markeredgecolor", "none", "markerfacecolor", "flat", ! "cdata", c(i,:), "facevertexcdata", c(i,:), ! "linestyle", "none"); else h = __go_patch__ (hg, "xdata", x(i), "ydata", y(i), "zdata", z(i,:), "faces", 1, "vertices", [x(i), y(i), z(i,:)], *************** *** 176,182 **** "marker", marker, "markersize", s(i), "markeredgecolor", "flat", "markerfacecolor", "none", ! "cdata", c(i,:), "linestyle", "none"); endif endfor --- 177,184 ---- "marker", marker, "markersize", s(i), "markeredgecolor", "flat", "markerfacecolor", "none", ! "cdata", c(i,:), "facevertexcdata", c(i,:), ! "linestyle", "none"); endif endfor *************** *** 278,284 **** if (ischar (c) || !isflat) if (filled) h = __go_patch__ (hg, "xdata", x, "ydata", y, "zdata", z, ! "faces", 1, "vertices", vert, "facecolor", "none", "edgecolor", "none", "marker", marker, "markeredgecolor", "none", --- 280,286 ---- if (ischar (c) || !isflat) if (filled) h = __go_patch__ (hg, "xdata", x, "ydata", y, "zdata", z, ! "faces", 1:numel(x), "vertices", vert, "facecolor", "none", "edgecolor", "none", "marker", marker, "markeredgecolor", "none", *************** *** 286,292 **** "markersize", s, "linestyle", "none"); else h = __go_patch__ (hg, "xdata", x, "ydata", y, "zdata", z, ! "faces", 1, "vertices", vert, "facecolor", "none", "edgecolor", "none", "marker", marker, "markeredgecolor", c, --- 288,294 ---- "markersize", s, "linestyle", "none"); else h = __go_patch__ (hg, "xdata", x, "ydata", y, "zdata", z, ! "faces", 1:numel(x), "vertices", vert, "facecolor", "none", "edgecolor", "none", "marker", marker, "markeredgecolor", c, *************** *** 296,315 **** else if (filled) h = __go_patch__ (hg, "xdata", x, "ydata", y, "zdata", z, ! "faces", 1, "vertices", vert, "facecolor", "none", "edgecolor", "none", "marker", marker, "markersize", s, "markeredgecolor", "none", "markerfacecolor", "flat", ! "cdata", c, "linestyle", "none"); else h = __go_patch__ (hg, "xdata", x, "ydata", y, "zdata", z, ! "faces", 1, "vertices", vert, "facecolor", "none", "edgecolor", "none", "marker", marker, "markersize", s, "markeredgecolor", "flat", "markerfacecolor", "none", ! "cdata", c, "linestyle", "none"); endif endif else --- 298,319 ---- else if (filled) h = __go_patch__ (hg, "xdata", x, "ydata", y, "zdata", z, ! "faces", 1:numel(x), "vertices", vert, "facecolor", "none", "edgecolor", "none", "marker", marker, "markersize", s, "markeredgecolor", "none", "markerfacecolor", "flat", ! "cdata", c, "facevertexcdata", c(:), ! "linestyle", "none"); else h = __go_patch__ (hg, "xdata", x, "ydata", y, "zdata", z, ! "faces", 1:numel(x), "vertices", vert, "facecolor", "none", "edgecolor", "none", "marker", marker, "markersize", s, "markeredgecolor", "flat", "markerfacecolor", "none", ! "cdata", c, "facevertexcdata", c(:), ! "linestyle", "none"); endif endif else *************** *** 364,375 **** if (isempty (z1)) for i = 1 : length (hlist) set (hlist(i), "vertices", [x1(i), y1(i)], "cdata", ! reshape(c1(i,:),[1, size(c1)(2:end)]), "markersize", size1(i)); endfor else for i = 1 : length (hlist) set (hlist(i), "vertices", [x1(i), y1(i), z1(i)], "cdata", ! reshape(c1(i,:),[1, size(c1)(2:end)]), "markersize", size1(i)); endfor endif endif --- 368,383 ---- if (isempty (z1)) for i = 1 : length (hlist) set (hlist(i), "vertices", [x1(i), y1(i)], "cdata", ! reshape(c1(i,:),[1, size(c1)(2:end)]), ! "facevertexcdata", c1(i,:), ! "markersize", size1(i)); endfor else for i = 1 : length (hlist) set (hlist(i), "vertices", [x1(i), y1(i), z1(i)], "cdata", ! reshape(c1(i,:),[1, size(c1)(2:end)]), ! "facevertexcdata", c1(i,:), ! "markersize", size1(i)); endfor endif endif diff -cNr octave-3.4.0/scripts/plot/rectangle.m octave-3.4.1/scripts/plot/rectangle.m *** octave-3.4.0/scripts/plot/rectangle.m 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/scripts/plot/rectangle.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,221 ---- + ## Copyright (C) 2011 David Bateman + ## + ## This file is part of Octave. + ## + ## Octave 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. + ## + ## Octave 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 Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {} rectangle () + ## @deftypefnx {Function File} {} rectangle (@dots{}, "Position", @var{pos}) + ## @deftypefnx {Function File} {} rectangle (@dots{}, "Curvature", @var{curv}) + ## @deftypefnx {Function File} {} rectangle (@dots{}, "EdgeColor", @var{ec}) + ## @deftypefnx {Function File} {} rectangle (@dots{}, "FaceColor", @var{fc}) + ## @deftypefnx {Function File} {@var{h} =} rectangle (@dots{}) + ## + ## Draw rectangular patch defined by @var{pos} and @var{curv}. The variable + ## @code{@var{pos}(1 : 2)} defines the lower left-hand corner of the patch + ## and @code{@var{pos}(3 : 4)} its width and height. By default the value of + ## @var{pos} is @var{[0, 0, 1, 1]}. + ## + ## The variable @var{curv} defines the curvature of the sides of the rectangle + ## and it can be a scalar or two-element vector with values between 0 and 1. + ## A value of 0 represents no curvature of the side, where as a value of 1 + ## means that the rectangular side is entirely curved into an arc of a circle. + ## If curvature is a two-element vector, then the first element is the + ## curvature along the x-axis of the patch and the second along y-axis. + ## + ## If @var{curv} is a scalar, it represents the curvature of the shorter of the + ## two sides of the rectangle and the curvature of the other side is defined + ## by + ## + ## @example + ## min (pos (1: 2)) / max (pos (1:2)) * curv + ## @end example + ## + ## Other properties are passed to the underlying patch command. If called + ## with an output argument, @code{rectangle} returns the handle to the + ## rectangle. + ## @end deftypefn + ## @seealso{patch} + + function h = rectangle (varargin) + + [hax, varargin] = __plt_get_axis_arg__ ("rectangle", varargin{:}); + + tmp = __rectangle__ (hax, varargin{:}); + + if (nargout > 0) + h = tmp; + endif + endfunction + + function hg = __rectangle__ (hax, varargin) + + iarg = 1; + pos = [0, 0, 1, 1]; + curv2 = [0, 0]; + ec = [0, 0, 0]; + fc = "none"; + + while (iarg < length (varargin)) + arg = varargin{iarg}; + if (ischar(arg)) + if (strcmpi (arg, "position")) + pos = varargin{iarg+1}; + varargin(iarg:iarg+1) = []; + if (!isvector (pos) || numel (pos) != 4) + error ("rectangle: position must be a 4 element vector"); + endif + elseif (strcmpi (arg, "curvature")) + curv2 = varargin{iarg+1}; + varargin(iarg:iarg+1) = []; + if (!isnumeric (curv2) || (numel (curv2) != 1 && numel (curv2) != 2)) + error ("rectangle: curvature must be a 2 element vector or a scalar"); + endif + if (any (curv2 < 0) || any (curv2 > 1)) + error ("rectangle: curvature values must be between 0 and 1"); + endif + elseif (strcmpi (arg, "edgecolor")) + ec = varargin{iarg+1}; + varargin(iarg:iarg+1) = []; + elseif (strcmpi (arg, "facecolor")) + fc = varargin{iarg+1}; + varargin(iarg:iarg+1) = []; + else + iarg ++; + endif + else + iarg ++; + endif + endwhile + + if (numel (curv2) == 1) + [a, ai] = min (pos (3 : 4)); + [b, bi] = max (pos (3 : 4)); + if (ai < bi) + curv = [curv2, curv2 .* a ./ b]; + else + curv = [curv2 .* a ./ b, curv2]; + endif + else + curv = curv2; + endif + + if (all (curv) < 0.01) + ## Special case : no curvature + x = [pos(1), pos(1) + pos(3), pos(1) + pos(3), pos(1), pos(1)]; + y = [pos(2), pos(2), pos(2) + pos(4), pos(2) + pos(4), pos(2)]; + else + p = pi / 2 * [0 : 15] / 15; + c = curv .* pos(3 : 4) / 2; + cx = c(1) * sin (p) - c(1); + cy = c(2) * cos (p) - c(2); + x = [pos(1) - fliplr(cx), pos(1) + pos(3) + cx, ... + pos(1) + pos(3) + fliplr(cx), pos(1) - cx, pos(1)]; + y = [pos(2) - fliplr(cy), pos(2) - cy, pos(2) + pos(4) + fliplr(cy), ... + pos(2) + pos(4) + cy, pos(2) + c(2)]; + endif + + hg = hggroup (); + + h = patch ("xdata", x(:), "ydata", y(:), "facecolor", fc, "edgecolor", ec, ... + "parent", hg, varargin{:}); + + addproperty ("curvature", hg, "data", curv2); + addproperty ("position", hg, "data", pos); + addproperty ("edgecolor", hg, "patchedgecolor", get (h, "edgecolor")); + addproperty ("linewidth", hg, "patchlinewidth", get (h, "linewidth")); + addproperty ("linestyle", hg, "patchlinestyle", get (h, "linestyle")); + addproperty ("facecolor", hg, "patchfacecolor", get (h, "facecolor")); + + addlistener (hg, "curvature", @update_data); + addlistener (hg, "position", @update_data); + addlistener (hg, "edgecolor", @update_props); + addlistener (hg, "linewidth", @update_props); + addlistener (hg, "linestyle", @update_props); + addlistener (hg, "facecolor", @update_props); + endfunction + + function update_data (h, d) + persistent recursion = false; + + ## Don't allow recursion + if (!recursion) + unwind_protect + recursion = true; + + kids = get (h, "children"); + pos = get (h, "position"); + curv2 = get (h, "curvature"); + + if (numel (curv2) == 1) + [a, ai] = min (pos (3 : 4)); + [b, bi] = max (pos (3 : 4)); + if (ai < bi) + curv = [curv2, curv2 .* a ./ b]; + else + curv = [curv2 .* a ./ b, curv2]; + endif + else + curv = curv2; + endif + + if (all (curv) < 0.01) + ## Special case : no curvature + x = [pos(1), pos(1) + pos(3), pos(1) + pos(3), pos(1), pos(1)]; + y = [pos(2), pos(2), pos(2) + pos(4), pos(2) + pos(4), pos(2)]; + else + p = pi / 2 * [0 : 15] / 15; + c = curv .* pos(3 : 4) / 2; + cx = c(1) * sin (p) - c(1); + cy = c(2) * cos (p) - c(2); + x = [pos(1) - fliplr(cx), pos(1) + pos(3) + cx, ... + pos(1) + pos(3) + fliplr(cx), pos(1) - cx, pos(1)]; + y = [pos(2) - fliplr(cy), pos(2) - cy, pos(2) + pos(4) + fliplr(cy), ... + pos(2) + pos(4) + cy, pos(2) + c(2)]; + endif + + set (kids, "xdata", x, "ydata", y); + unwind_protect_cleanup + recursion = false; + end_unwind_protect + endif + endfunction + + function update_props (h, d) + kids = get (h, "children"); + set (kids, "edgecolor", get (h, "edgecolor"), + "linewidth", get (h, "linewidth"), + "linestyle", get (h, "linestyle"), + "facecolor", get (h, "facecolor")); + endfunction + + + %!demo + %! close all + %! axis equal + %! rectangle ("Position", [0.05, 0.05, 0.9, 0.9], "Curvature", [0.5, 0.5]); + + %!demo + %! close all + %! axis equal + %! rectangle ("Position", [0.05, 0.05, 0.9, 0.4], "Curvature", 1.0); + + %!demo + %! close all + %! axis equal + %! h = rectangle ("Position", [0.05, 0.05, 0.9, 0.4], "Curvature", 1.0); + %! set (h, "FaceColor", [0, 1, 0]); + diff -cNr octave-3.4.0/scripts/plot/semilogxerr.m octave-3.4.1/scripts/plot/semilogxerr.m *** octave-3.4.0/scripts/plot/semilogxerr.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/semilogxerr.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 31,37 **** ## with errors in the @var{y}-scale defined by @var{ey} and the plot ## format defined by @var{fmt}. See @code{errorbar} for available formats and ## additional information. ! ## @seealso{errorbar, loglogerr semilogyerr} ## @end deftypefn ## Created: 20.2.2001 --- 31,37 ---- ## with errors in the @var{y}-scale defined by @var{ey} and the plot ## format defined by @var{fmt}. See @code{errorbar} for available formats and ## additional information. ! ## @seealso{errorbar, loglogerr, semilogyerr} ## @end deftypefn ## Created: 20.2.2001 diff -cNr octave-3.4.0/scripts/plot/semilogyerr.m octave-3.4.1/scripts/plot/semilogyerr.m *** octave-3.4.0/scripts/plot/semilogyerr.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/semilogyerr.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 31,37 **** ## with errors in the @var{y}-scale defined by @var{ey} and the plot ## format defined by @var{fmt}. See @code{errorbar} for available formats and ## additional information. ! ## @seealso{errorbar, loglogerr semilogxerr} ## @end deftypefn ## Created: 20.2.2001 --- 31,37 ---- ## with errors in the @var{y}-scale defined by @var{ey} and the plot ## format defined by @var{fmt}. See @code{errorbar} for available formats and ## additional information. ! ## @seealso{errorbar, loglogerr, semilogxerr} ## @end deftypefn ## Created: 20.2.2001 diff -cNr octave-3.4.0/scripts/plot/shading.m octave-3.4.1/scripts/plot/shading.m *** octave-3.4.0/scripts/plot/shading.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/shading.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 78,96 **** %! colormap (jet) %! sombrero %! shading faceted ! %! title('shading "faceted"') %!demo %! sombrero %! shading interp ! %! title('shading "interp"') %!demo %! pcolor (peaks ()) %! shading faceted ! %! title('shading "faceted"') %!demo %! pcolor (peaks ()) %! shading interp ! %! title('shading "interp"') --- 78,96 ---- %! colormap (jet) %! sombrero %! shading faceted ! %! title("shading ""faceted""") %!demo %! sombrero %! shading interp ! %! title("shading ""interp""") %!demo %! pcolor (peaks ()) %! shading faceted ! %! title("shading ""faceted""") %!demo %! pcolor (peaks ()) %! shading interp ! %! title("shading ""interp""") diff -cNr octave-3.4.0/scripts/plot/sombrero.m octave-3.4.1/scripts/plot/sombrero.m *** octave-3.4.0/scripts/plot/sombrero.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/sombrero.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 39,45 **** if (nargin < 2) if (n > 1) ! tx = ty = linspace (-8, 8, n)'; [xx, yy] = meshgrid (tx, ty); r = sqrt (xx .^ 2 + yy .^ 2) + eps; tz = sin (r) ./ r; --- 39,46 ---- if (nargin < 2) if (n > 1) ! tx = linspace (-8, 8, n)'; ! ty = tx; [xx, yy] = meshgrid (tx, ty); r = sqrt (xx .^ 2 + yy .^ 2) + eps; tz = sin (r) ./ r; diff -cNr octave-3.4.0/scripts/plot/sphere.m octave-3.4.1/scripts/plot/sphere.m *** octave-3.4.0/scripts/plot/sphere.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/sphere.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 19,25 **** ## -*- texinfo -*- ## @deftypefn {Function File} {[@var{x}, @var{y}, @var{z}] =} sphere (@var{n}) ## @deftypefnx {Function File} {} sphere (@var{h}, @dots{}) ! ## Generates three matrices in @code{meshgrid} format, such that ## @code{surf (@var{x}, @var{y}, @var{z})} generates a unit sphere. ## The matrices of @code{@var{n}+1}-by-@code{@var{n}+1}. If @var{n} is ## omitted then a default value of 20 is assumed. --- 19,25 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {[@var{x}, @var{y}, @var{z}] =} sphere (@var{n}) ## @deftypefnx {Function File} {} sphere (@var{h}, @dots{}) ! ## Generate three matrices in @code{meshgrid} format, such that ## @code{surf (@var{x}, @var{y}, @var{z})} generates a unit sphere. ## The matrices of @code{@var{n}+1}-by-@code{@var{n}+1}. If @var{n} is ## omitted then a default value of 20 is assumed. diff -cNr octave-3.4.0/scripts/plot/subplot.m octave-3.4.1/scripts/plot/subplot.m *** octave-3.4.0/scripts/plot/subplot.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/subplot.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 52,59 **** ## @end group ## @end example ## ## @end ifnottex ! ## @seealso{plot} ## @end deftypefn ## Author: Vinayak Dutt --- 52,66 ---- ## @end group ## @end example ## + ## @var{index} may be a vector. In which case, the new axis will enclose + ## the grid locations specified. The first demo illustrates an example: + ## + ## @example + ## @code{demo ("subplot", 1)} + ## @end example + ## ## @end ifnottex ! ## @seealso{axes, plot} ## @end deftypefn ## Author: Vinayak Dutt *************** *** 110,121 **** error ("subplot: COLS,ROWS,INDEX must be be positive"); endif ! units = get (0, "defaultaxesunits"); unwind_protect ! set (0, "defaultaxesunits", "normalized"); ! pos = subplot_position (rows, cols, index, "position", units); ! ! cf = gcf (); set (cf, "nextplot", "add"); --- 117,130 ---- error ("subplot: COLS,ROWS,INDEX must be be positive"); endif ! axesunits = get (0, "defaultaxesunits"); ! cf = gcf (); ! figureunits = get (cf, "units"); unwind_protect ! units = "normalized"; ! set (0, "defaultaxesunits", units); ! set (cf, "units", "pixels"); ! pos = subplot_position (rows, cols, index, "position"); set (cf, "nextplot", "add"); *************** *** 162,180 **** if (found) set (cf, "currentaxes", tmp); else ! pos = subplot_position (rows, cols, index, "outerposition", units); ! pos2 = subplot_position (rows, cols, index, "position", units); ! tmp = axes ("outerposition", pos, "position", pos2, ! "activepositionproperty", "outerposition", ! "box", "off"); endif ! if (align_axes && strcmp (get (cf, "__graphics_toolkit__"), "gnuplot")) set (tmp, "activepositionproperty", "position"); endif unwind_protect_cleanup ! set (0, "defaultaxesunits", units); end_unwind_protect if (nargout > 0) --- 171,188 ---- if (found) set (cf, "currentaxes", tmp); else ! outpos = subplot_position (rows, cols, index, "outerposition"); ! tmp = axes ("looseinset", [0 0 0 0], "box", "off", ! "outerposition", outpos, "position", pos); endif ! if (align_axes || strcmp (get (cf, "__graphics_toolkit__"), "gnuplot")) set (tmp, "activepositionproperty", "position"); endif unwind_protect_cleanup ! set (0, "defaultaxesunits", axesunits); ! set (cf, "units", figureunits); end_unwind_protect if (nargout > 0) *************** *** 183,232 **** endfunction ! function pos = subplot_position (rows, cols, index, position_property, units) - ## For 1 row and 1 column return the usual default. if (rows == 1 && cols == 1) if (strcmpi (position_property, "position")) ! pos = get (0, "defaultaxesposition"); else ! pos = get (0, "defaultaxesouterposition"); endif return endif ! ## This produces compatible behavior for the "position" property. ! margins.left = 0.130; ! margins.right = 0.095; ! margins.top = 0.075; ! margins.bottom = 0.110; pc = 1 ./ [0.1860, (margins.left + margins.right - 1)]; margins.column = 1 ./ polyval (pc , cols); pr = 1 ./ [0.2282, (margins.top + margins.bottom - 1)]; margins.row = 1 ./ polyval (pr , rows); ! ## Calculate the width/height of the subplot axes. width = 1 - margins.left - margins.right - (cols-1)*margins.column; width = width / cols; height = 1 - margins.top - margins.bottom - (rows-1)*margins.row; height = height / rows; if (strcmp (position_property, "outerposition") ) ! ## Calculate the outerposition/position inset if (rows > 1) ! inset.top = 8/420; ! inset.bottom = max (polyval ([0.1382,-0.0026], height), 16/420); else inset.bottom = margins.bottom; inset.top = margins.top; endif if (cols > 1) ! if (strcmpi (units, "normalized")) ! inset.right = max (polyval ([0.1200,-0.0014], width), 5/560); ! else ! inset.right = max (polyval ([0.1252,-0.0023], width), 5/560); ! endif ! inset.left = 22/560; else inset.left = margins.left; inset.right = margins.right; --- 191,250 ---- endfunction ! function pos = subplot_position (rows, cols, index, position_property) ! ! defaultaxesposition = get (0, "defaultaxesposition"); ! defaultaxesouterposition = get (0, "defaultaxesouterposition"); if (rows == 1 && cols == 1) + ## Trivial result for subplot (1,1,1) if (strcmpi (position_property, "position")) ! pos = defaultaxesposition; else ! pos = defaultaxesouterposition; endif return endif ! ## The outer margins surrounding all subplot "positions" are independent of ! ## the number of rows and/or columns ! margins.left = defaultaxesposition(1); ! margins.bottom = defaultaxesposition(2); ! margins.right = 1.0 - margins.left - defaultaxesposition(3); ! margins.top = 1.0 - margins.bottom - defaultaxesposition(4); ! ! ## Fit from Matlab experiments pc = 1 ./ [0.1860, (margins.left + margins.right - 1)]; margins.column = 1 ./ polyval (pc , cols); pr = 1 ./ [0.2282, (margins.top + margins.bottom - 1)]; margins.row = 1 ./ polyval (pr , rows); ! ## Calculate the width/height of the subplot axes "position". ! ## This is also consistent with Matlab width = 1 - margins.left - margins.right - (cols-1)*margins.column; width = width / cols; height = 1 - margins.top - margins.bottom - (rows-1)*margins.row; height = height / rows; if (strcmp (position_property, "outerposition") ) ! ## Calculate the inset of the position relative to the outerposition ! ## The outerpositions are assumed to be tiled. Matlab's implementation ! ## has outerposition overlap. if (rows > 1) ! ## Title on top and xlabel & xticks on bottom ! inset.top = margins.row * (1/3); ! inset.bottom = margins.row * (2/3); ! ## Matlab behavior is approximately ... ! % inset.bottom = margins.row; else inset.bottom = margins.bottom; inset.top = margins.top; endif if (cols > 1) ! ## ylabel & yticks on left and some overhang for xticks on right ! x = 0.1; ! inset.right = x * margins.column; ! inset.left = (1 - x) * margins.column; else inset.left = margins.left; inset.right = margins.right; *************** *** 238,262 **** height = height + inset.top + inset.bottom; endif ! yp = fix ((index(:)-1)/cols); ! xp = index(:) - yp*cols - 1; ! yp = (rows - 1) - yp; ! ! x0 = xp .* (width + margins.column) + margins.left; ! y0 = yp .* (height + margins.row) + margins.bottom; if (strcmp (position_property, "outerposition") ) x0 = x0 - inset.left; y0 = y0 - inset.bottom; endif if (numel(x0) > 1) ! x1 = max (x0) + width; ! y1 = max (y0) + height; ! x0 = min (x0); ! y0 = min (y0); pos = [x0, y0, x1-x0, y1-y0]; else pos = [x0, y0, width, height]; endif --- 256,285 ---- height = height + inset.top + inset.bottom; endif ! ## Index offsets from the lower left subplot ! yi = fix ((index(:)-1)/cols); ! xi = index(:) - yi*cols - 1; ! yi = (rows - 1) - yi; ! ! ## Lower left corner of the subplot, i.e. position(1:2) ! x0 = xi .* (width + margins.column) + margins.left; ! y0 = yi .* (height + margins.row) + margins.bottom; if (strcmp (position_property, "outerposition") ) + ## Shift from position(1:2) to outerposition(1:2) x0 = x0 - inset.left; y0 = y0 - inset.bottom; endif if (numel(x0) > 1) ! ## subplot (row, col, m:n) ! x1 = max (x0(:)) + width; ! y1 = max (y0(:)) + height; ! x0 = min (x0(:)); ! y0 = min (y0(:)); pos = [x0, y0, x1-x0, y1-y0]; else + ## subplot (row, col, num) pos = [x0, y0, width, height]; endif *************** *** 294,300 **** %! endfor %! subplot (1, 2, 1, "align") %! plot (x, x) ! %! xlabel (sprintf ("xlabel (1,2,%d)", n)) ! %! ylabel (sprintf ("ylabel (1,2,%d)", n)) ! %! title (sprintf ("title (1,2,%d)", n)) --- 317,323 ---- %! endfor %! subplot (1, 2, 1, "align") %! plot (x, x) ! %! xlabel ("xlabel (1,2,1)") ! %! ylabel ("ylabel (1,2,1)") ! %! title ("title (1,2,1)") diff -cNr octave-3.4.0/scripts/plot/text.m octave-3.4.1/scripts/plot/text.m *** octave-3.4.0/scripts/plot/text.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/text.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 108,128 **** %! clf %! ha = {"left", "center", "right"}; %! va = {"bottom", "middle", "top"}; %! for t = 0:30:359; %! for nh = 1:numel(ha) - %! x = [0.25 0.5 0.75](nh); %! for nv = 1:numel(va) ! %! y = [0.25 0.5 0.75](nv); ! %! text (x, y, "Hello World", ! %! "rotation", t, ! %! "horizontalalignment", ha{nh}, ! %! "verticalalignment", va{nv}) %! endfor %! endfor %! endfor ! %! set (gca, "xtick", [0.25, 0.5, 0.75], ! %! "xticklabel", ha, ! %! "ytick", [0.25, 0.5, 0.75], %! "yticklabel", va) %! axis ([0 1 0 1]) %! xlabel ("horizontal alignment") --- 108,128 ---- %! clf %! ha = {"left", "center", "right"}; %! va = {"bottom", "middle", "top"}; + %! x = [0.25 0.5 0.75]; + %! y = [0.25 0.5 0.75]; %! for t = 0:30:359; %! for nh = 1:numel(ha) %! for nv = 1:numel(va) ! %! text (x(nh), y(nv), "Hello World", ... ! %! "rotation", t, ... ! %! "horizontalalignment", ha{nh}, ... ! %! "verticalalignment", va{nv}) %! endfor %! endfor %! endfor ! %! set (gca, "xtick", [0.25, 0.5, 0.75], ... ! %! "xticklabel", ha, ... ! %! "ytick", [0.25, 0.5, 0.75], ... %! "yticklabel", va) %! axis ([0 1 0 1]) %! xlabel ("horizontal alignment") *************** *** 131,143 **** %!demo %! clf ! %! h = mesh (peaks, "edgecolor", 0.7 * [1 1 1], ! %! "facecolor", "none", %! "facealpha", 0); %! for t = 0:45:359; ! %! text (25, 25, 0, "Vertical Alignment = Bottom", ! %! "rotation", t, ! %! "horizontalalignment", "left", %! "verticalalignment", "bottom") %! endfor %! caxis ([-100 100]) --- 131,143 ---- %!demo %! clf ! %! h = mesh (peaks, "edgecolor", 0.7 * [1 1 1], ... ! %! "facecolor", "none", ... %! "facealpha", 0); %! for t = 0:45:359; ! %! text (25, 25, 0, "Vertical Alignment = Bottom", ... ! %! "rotation", t, ... ! %! "horizontalalignment", "left", ... %! "verticalalignment", "bottom") %! endfor %! caxis ([-100 100]) diff -cNr octave-3.4.0/scripts/plot/uigetdir.m octave-3.4.1/scripts/plot/uigetdir.m *** octave-3.4.0/scripts/plot/uigetdir.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/uigetdir.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 20,34 **** ## @deftypefn {Function File} {@var{dirname} =} uigetdir () ## @deftypefnx {Function File} {@var{dirname} =} uigetdir (@var{init_path}) ## @deftypefnx {Function File} {@var{dirname} =} uigetdir (@var{init_path}, @var{dialog_name}) ! ## Open a GUI dialog to select a directory. If @var{init_path} is not given ! ## the current working directory is used. @var{dialog_name} optionally be ## used to customize the dialog title. ## @end deftypefn ## Author: Kai Habel function dirname = uigetdir (init_path = pwd, dialog_name = "Choose directory?") if (nargin > 2) print_usage (); endif --- 20,39 ---- ## @deftypefn {Function File} {@var{dirname} =} uigetdir () ## @deftypefnx {Function File} {@var{dirname} =} uigetdir (@var{init_path}) ## @deftypefnx {Function File} {@var{dirname} =} uigetdir (@var{init_path}, @var{dialog_name}) ! ## Open a GUI dialog for selecting a directory. If @var{init_path} is not ! ## given the current working directory is used. @var{dialog_name} may be ## used to customize the dialog title. + ## @seealso{uigetfile} ## @end deftypefn ## Author: Kai Habel function dirname = uigetdir (init_path = pwd, dialog_name = "Choose directory?") + if (exist("__fltk_uigetfile__") != 3) + error ("uigetfile: fltk graphics toolkit required"); + endif + if (nargin > 2) print_usage (); endif *************** *** 37,50 **** error ("uigetdir: INIT_PATH and DIALOG_NAME must be string arguments"); endif ! if (exist ("__fltk_uigetfile__") == 3) ! if (!isdir (init_path)) ! init_path = fileparts (init_path); ! endif ! dirname = __fltk_uigetfile__ ("", dialog_name, init_path, [240, 120], "dir"); ! else ! error ("uigetdir: fltk graphics toolkit required"); endif endfunction --- 42,51 ---- error ("uigetdir: INIT_PATH and DIALOG_NAME must be string arguments"); endif ! if (!isdir (init_path)) ! init_path = fileparts (init_path); endif + dirname = __fltk_uigetfile__ ("", dialog_name, init_path, [240, 120], "dir"); endfunction diff -cNr octave-3.4.0/scripts/plot/uigetfile.m octave-3.4.1/scripts/plot/uigetfile.m *** octave-3.4.0/scripts/plot/uigetfile.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/uigetfile.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,45 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uigetfile (@var{flt}) ! ## @deftypefnx {Function File} {[@dots{}] =} uigetfile (@var{flt}, @var{dialog_name}, @var{default_file}) ## @deftypefnx {Function File} {[@dots{}] =} uigetfile (@var{flt}, @var{dialog_name}) ! ## @deftypefnx {Function File} {[@dots{}] =} uigetfile (@dots{}, "Position", [@var{px}, @var{py}]) ! ## @deftypefnx {Function File} {[@dots{}] =} uigetfile (@dots{}, "Multiselect", @var{mode}) ## ! ## Open a GUI dialog to select a file. It returns the filename @var{fname}, ## the path to this file @var{fpath}, and the filter index @var{fltidx}. ## @var{flt} contains a (list of) file filter string(s) in one of the following ## formats: ## ## @table @asis ## @item "/path/to/filename.ext" ! ## If a filename is given the file extension is extracted and used as filter. ! ## In addtion the path is selected as current path and the filname is selected ! ## as default file. ! ## Example: @code{uigetfile ("myfun.m")} ## ## @item A single file extension "*.ext" ## Example: @code{uigetfile ("*.ext")} ## ## @item A 2-column cell array ! ## containing the file extension in the first column and a brief description ## in the second column. ## Example: @code{uigetfile (@{"*.ext", "My Description";"*.xyz", ## "XYZ-Format"@})} --- 17,45 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uigetfile () ! ## @deftypefnx {Function File} {[@dots{}] =} uigetfile (@var{flt}) ## @deftypefnx {Function File} {[@dots{}] =} uigetfile (@var{flt}, @var{dialog_name}) ! ## @deftypefnx {Function File} {[@dots{}] =} uigetfile (@var{flt}, @var{dialog_name}, @var{default_file}) ! ## @deftypefnx {Function File} {[@dots{}] =} uigetfile (@dots{}, "Position", [@var{px} @var{py}]) ! ## @deftypefnx {Function File} {[@dots{}] =} uigetfile (@dots{}, "MultiSelect", @var{mode}) ## ! ## Open a GUI dialog for selecting a file. It returns the filename @var{fname}, ## the path to this file @var{fpath}, and the filter index @var{fltidx}. ## @var{flt} contains a (list of) file filter string(s) in one of the following ## formats: ## ## @table @asis ## @item "/path/to/filename.ext" ! ## If a filename is given then the file extension is extracted and used as ! ## filter. In addition, the path is selected as current path and the filename ! ## is selected as default file. Example: @code{uigetfile ("myfun.m")} ## ## @item A single file extension "*.ext" ## Example: @code{uigetfile ("*.ext")} ## ## @item A 2-column cell array ! ## containing a file extension in the first column and a brief description ## in the second column. ## Example: @code{uigetfile (@{"*.ext", "My Description";"*.xyz", ## "XYZ-Format"@})} *************** *** 51,62 **** ## @end table ## ## @var{dialog_name} can be used to customize the dialog title. ! ## If @var{default_file} is given it is selected in the GUI dialog. ! ## If in addtion a path is given it is also used as current path. ## ## The screen position of the GUI dialog can be set using the "Position" key ## and a 2-element vector containing the pixel coordinates. ! ## Two or more files can be selected when setting the "Multiselect" key to "on". ## In that case @var{fname} is a cell array containing the files. ## @end deftypefn --- 51,62 ---- ## @end table ## ## @var{dialog_name} can be used to customize the dialog title. ! ## If @var{default_file} is given then it will be selected in the GUI dialog. ! ## If, in addition, a path is given it is also used as current path. ## ## The screen position of the GUI dialog can be set using the "Position" key ## and a 2-element vector containing the pixel coordinates. ! ## Two or more files can be selected when setting the "MultiSelect" key to "on". ## In that case @var{fname} is a cell array containing the files. ## @end deftypefn *************** *** 64,160 **** function [retfile, retpath, retindex] = uigetfile (varargin) ! if (nargin <= 7) ! defaultvals = {"All Files(*)", #FLTK File Filter ! "Open File?", #Dialog Title ! pwd, #FLTK default file name ! [240, 120], #Dialog Position (pixel x/y) ! "off"}; #Multiselect on/off ! ! outargs = cell (5, 1); ! for i = 1 : 5 ! outargs{i} = defaultvals{i}; ! endfor ! idx1 = idx2 = []; ! if (length (varargin) > 0) ! for i = 1 : length (varargin) ! val = varargin{i}; ! if (ischar (val)) ! if (strncmp (tolower (val), "multiselect", 11)) ! idx1 = i; ! elseif (strncmp(tolower (val), "position", 8)) ! idx2 = i; ! endif endif ! endfor ! endif ! stridx = [idx1, idx2, 0]; ! if (length (stridx) > 1) ! stridx = min (stridx(1 : end - 1)); ! endif ! args = varargin; ! if (stridx) ! args = varargin(1 : stridx - 1); ! endif ! len = length (args); ! if (len > 0) ! file_filter = args{1}; ! outargs{1} = __fltk_file_filter__ (file_filter); ! if (ischar (file_filter)) ! outargs{3} = file_filter; ! endif endif ! if (len > 1) ! outargs{2} = args{2}; ! endif ! if (len > 2) ! outargs{3} = args{3}; ! endif ! if (stridx) ! ## we have string arguments ("position" or "multiselect") ! ## check for even number of remaining arguments, prop/value pair(s) ! if (rem (nargin - stridx + 1, 2)) ! error ("uigetfile: expecting property/value pairs"); ! endif ! for i = stridx : 2 : nargin ! prop = varargin{i}; ! val = varargin{i + 1}; ! if (strncmp (tolower (prop), "position", 8)) ! if (ismatrix (val) && length(val) == 2) ! outargs{4} = val; ! else ! error ("uigetfile: expecting 2-element vector for position argument"); ! endif ! elseif (strncmp (tolower (prop), "multiselect", 11)) ! if (ischar (val)) ! outargs{5} = tolower (val); ! else ! error ("uigetfile: expecting string argument (on/off) for multiselect"); ! endif else ! error ("uigetfile: unknown argument"); endif ! endfor ! endif ! else ! error ("uigetfile: number of input arguments must be less than eight"); endif ! if (exist("__fltk_uigetfile__") == 3) ! [retfile, retpath, retindex] = __fltk_uigetfile__ (outargs{:}); ! else ! error ("uigetfile: fltk graphics toolkit required"); ! endif endfunction --- 64,159 ---- function [retfile, retpath, retindex] = uigetfile (varargin) ! if (exist("__fltk_uigetfile__") != 3) ! error ("uigetfile: fltk graphics toolkit required"); ! endif ! if (nargin > 7) ! error ("uigetfile: number of input arguments must be less than eight"); ! endif ! defaultvals = {"All Files(*)", #FLTK File Filter ! "Open File?", #Dialog Title ! pwd, #FLTK default file name ! [240, 120], #Dialog Position (pixel x/y) ! "off"}; #MultiSelect on/off ! ! outargs = cell (5, 1); ! for i = 1 : 5 ! outargs{i} = defaultvals{i}; ! endfor ! ! idx1 = idx2 = []; ! if (length (varargin) > 0) ! for i = 1 : length (varargin) ! val = varargin{i}; ! if (ischar (val)) ! if (strncmp (tolower (val), "multiselect", 11)) ! idx1 = i; ! elseif (strncmp(tolower (val), "position", 8)) ! idx2 = i; endif ! endif ! endfor ! endif ! stridx = [idx1, idx2, 0]; ! if (length (stridx) > 1) ! stridx = min (stridx(1 : end - 1)); ! endif ! args = varargin; ! if (stridx) ! args = varargin(1 : stridx - 1); ! endif ! len = length (args); ! if (len > 0) ! file_filter = args{1}; ! outargs{1} = __fltk_file_filter__ (file_filter); ! if (ischar (file_filter)) ! outargs{3} = file_filter; endif + endif ! if (len > 1) ! outargs{2} = args{2}; ! endif ! if (len > 2) ! outargs{3} = args{3}; ! endif ! if (stridx) ! ## we have string arguments ("position" or "multiselect") ! ## check for even number of remaining arguments, prop/value pair(s) ! if (rem (nargin - stridx + 1, 2)) ! error ("uigetfile: expecting property/value pairs"); ! endif ! for i = stridx : 2 : nargin ! prop = varargin{i}; ! val = varargin{i + 1}; ! if (strncmp (tolower (prop), "position", 8)) ! if (ismatrix (val) && length(val) == 2) ! outargs{4} = val; else ! error ("uigetfile: expecting 2-element vector for position argument"); endif ! elseif (strncmp (tolower (prop), "multiselect", 11)) ! if (ischar (val)) ! outargs{5} = tolower (val); ! else ! error ("uigetfile: expecting string argument (on/off) for multiselect"); ! endif ! else ! error ("uigetfile: unknown argument"); ! endif ! endfor endif ! [retfile, retpath, retindex] = __fltk_uigetfile__ (outargs{:}); endfunction diff -cNr octave-3.4.0/scripts/plot/uimenu.m octave-3.4.1/scripts/plot/uimenu.m *** octave-3.4.0/scripts/plot/uimenu.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/uimenu.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 19,33 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} uimenu (@var{property}, @var{value}, @dots{}) ## @deftypefnx {Function File} {} uimenu (@var{h}, @var{property}, @var{value}, @dots{}) ! ## Create an uimenu object and return a handle to it. If @var{h} is ommited ! ## then a top level menu entry for the current figure is created. If @var{h} ## is given then a submenu relative to @var{h} is created. ## ! ## Uimenu objects have the following specific properties: ## ## @table @asis ## @item "accelerator" ! ## A string containg the key combination together with CTRL to execute this ## menu entry (e.g., "x" for CTRL+x). ## ## @item "callback" --- 19,33 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} uimenu (@var{property}, @var{value}, @dots{}) ## @deftypefnx {Function File} {} uimenu (@var{h}, @var{property}, @var{value}, @dots{}) ! ## Create a uimenu object and return a handle to it. If @var{h} is ommited ! ## then a top-level menu for the current figure is created. If @var{h} ## is given then a submenu relative to @var{h} is created. ## ! ## uimenu objects have the following specific properties: ## ## @table @asis ## @item "accelerator" ! ## A string containing the key combination together with CTRL to execute this ## menu entry (e.g., "x" for CTRL+x). ## ## @item "callback" *************** *** 48,54 **** ## ## @item "label" ## A string containing the label for this menu entry. A "&"-symbol can be ! ## used to mark the "accelerator" character (e.g., "E&xit") ## ## @item "position" ## An scalar value containing the relative menu position. The entry with the --- 48,54 ---- ## ## @item "label" ## A string containing the label for this menu entry. A "&"-symbol can be ! ## used to mark the "accelerator" character (e.g., @nospell{"E&xit"}) ## ## @item "position" ## An scalar value containing the relative menu position. The entry with the *************** *** 58,64 **** ## Can be set "on" or "off". If enabled it draws a separator line above the ## current position. It is ignored for top level entries. ## - ## ## @end table ## ## Examples: --- 58,63 ---- diff -cNr octave-3.4.0/scripts/plot/uiputfile.m octave-3.4.1/scripts/plot/uiputfile.m *** octave-3.4.0/scripts/plot/uiputfile.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/uiputfile.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 17,34 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile (@var{flt}, @var{dialog_name}, @var{default_file}) ! ## @deftypefnx {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile (@var{flt}, @var{dialog_name}) ## @deftypefnx {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile (@var{flt}) ! ## @deftypefnx {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile ()) ! ## Open a GUI dialog to select a file. @var{flt} contains a (list of) file ## filter string(s) in one of the following formats: ## ## @table @code ## @item "/path/to/filename.ext" ## If a filename is given the file extension is ## extracted and used as filter. ! ## In addtion the path is selected as current path and the filname is selected ## as default file. ## Example: uiputfile("myfun.m"); ## --- 17,34 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile () ## @deftypefnx {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile (@var{flt}) ! ## @deftypefnx {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile (@var{flt}, @var{dialog_name}) ! ## @deftypefnx {Function File} {[@var{fname}, @var{fpath}, @var{fltidx}] =} uiputfile (@var{flt}, @var{dialog_name}, @var{default_file}) ! ## Open a GUI dialog for selecting a file. @var{flt} contains a (list of) file ## filter string(s) in one of the following formats: ## ## @table @code ## @item "/path/to/filename.ext" ## If a filename is given the file extension is ## extracted and used as filter. ! ## In addition the path is selected as current path and the filename is selected ## as default file. ## Example: uiputfile("myfun.m"); ## *************** *** 48,99 **** ## ## @var{dialog_name} can be used to customize the dialog title. ## If @var{default_file} is given it is preselected in the GUI dialog. ! ## If in addtion a path is given it is also used as current path. ## @end deftypefn ## Author: Kai Habel function [retfile, retpath, retindex] = uiputfile (varargin) ! if (nargin <= 3) ! ! defaultvals = {"All Files(*)", #FLTK File Filter ! "Save File?", #Dialog Title ! pwd, #FLTK default file name ! [240, 120], #Dialog Position (pixel x/y) ! "create"}; ! ! outargs = cell(5, 1); ! for i = 1 : 5 ! outargs{i} = defaultvals{i}; ! endfor ! ! if (nargin > 0) ! file_filter = varargin{1}; ! outargs{1} = __fltk_file_filter__ (file_filter); ! if (ischar (file_filter)) ! outargs{3} = file_filter; ! endif ! endif ! if (nargin > 1) ! outargs{2} = varargin{2}; ! endif ! if (nargin > 2) ! outargs{3} = varargin{3}; endif ! else ! error ("uiputfile: number of input arguments must be less than four"); endif ! if (exist("__fltk_uigetfile__") == 3) ! [retfile, retpath, retindex] = __fltk_uigetfile__ (outargs{:}); ! else ! error ("uiputfile: fltk graphics toolkit required"); endif endfunction %!demo --- 48,97 ---- ## ## @var{dialog_name} can be used to customize the dialog title. ## If @var{default_file} is given it is preselected in the GUI dialog. ! ## If, in addition, a path is given it is also used as current path. ## @end deftypefn ## Author: Kai Habel function [retfile, retpath, retindex] = uiputfile (varargin) ! if (exist("__fltk_uigetfile__") != 3) ! error ("uiputfile: fltk graphics toolkit required"); ! endif ! if (nargin > 3) ! print_usage (); ! endif ! defaultvals = {"All Files(*)", #FLTK File Filter ! "Save File?", #Dialog Title ! pwd, #FLTK default file name ! [240, 120], #Dialog Position (pixel x/y) ! "create"}; ! ! outargs = cell(5, 1); ! for i = 1 : 5 ! outargs{i} = defaultvals{i}; ! endfor ! ! if (nargin > 0) ! file_filter = varargin{1}; ! outargs{1} = __fltk_file_filter__ (file_filter); ! if (ischar (file_filter)) ! outargs{3} = file_filter; endif + endif ! if (nargin > 1) ! outargs{2} = varargin{2}; endif ! if (nargin > 2) ! outargs{3} = varargin{3}; endif + [retfile, retpath, retindex] = __fltk_uigetfile__ (outargs{:}); + endfunction %!demo diff -cNr octave-3.4.0/scripts/plot/view.m octave-3.4.1/scripts/plot/view.m *** octave-3.4.0/scripts/plot/view.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/view.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,26 **** ## -*- texinfo -*- ## @deftypefn {Function File} {[@var{azimuth}, @var{elevation}] =} view () ! ## @deftypefnx {Function File} {} view (@var{azimuth}, @var{elevation}) ! ## @deftypefnx {Function File} {} view ([@var{azimuth}, @var{elevation}]) ! ## @deftypefnx {Function File} {} view ([@var{x}, @var{y}, @var{z}]) ## @deftypefnx {Function File} {} view (@var{dims}) ## @deftypefnx {Function File} {} view (@var{ax}, @dots{}) ## Query or set the viewpoint for the current axes. The parameters --- 18,26 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {[@var{azimuth}, @var{elevation}] =} view () ! ## @deftypefnx {Function File} {} view (@var{azimuth}, @var{elevation}) ! ## @deftypefnx {Function File} {} view ([@var{azimuth} @var{elevation}]) ! ## @deftypefnx {Function File} {} view ([@var{x} @var{y} @var{z}]) ## @deftypefnx {Function File} {} view (@var{dims}) ## @deftypefnx {Function File} {} view (@var{ax}, @dots{}) ## Query or set the viewpoint for the current axes. The parameters diff -cNr octave-3.4.0/scripts/plot/whitebg.m octave-3.4.1/scripts/plot/whitebg.m *** octave-3.4.0/scripts/plot/whitebg.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/plot/whitebg.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 74,80 **** if (isroot) fac = get (0, "factory"); fields = fieldnames (fac); ! fieldindex = intersect (find (!cellfun (@isempty, regexp(fields, '.*color.*'))), union (find (!cellfun (@isempty, regexp(fields, 'factoryaxes.*'))), find (!cellfun (@isempty, regexp(fields, 'factoryfigure.*'))))); ## Check whether the factory value has been replaced for nf = 1 : numel (fieldindex); --- 74,80 ---- if (isroot) fac = get (0, "factory"); fields = fieldnames (fac); ! fieldindex = intersect (find (!cellfun (@isempty, regexp(fields, 'color'))), union (find (!cellfun (@isempty, regexp(fields, 'factoryaxes.*'))), find (!cellfun (@isempty, regexp(fields, 'factoryfigure.*'))))); ## Check whether the factory value has been replaced for nf = 1 : numel (fieldindex); *************** *** 104,110 **** for nh = 1 : numel(h) p = get (h (nh)); fields = fieldnames (p); ! fieldindex = find (!cellfun (@isempty, regexp(fields, '.*color.*'))); if (numel (fieldindex)) for nf = 1 : numel (fieldindex); field = fields {fieldindex (nf)}; --- 104,110 ---- for nh = 1 : numel(h) p = get (h (nh)); fields = fieldnames (p); ! fieldindex = find (!cellfun (@isempty, regexp(fields, 'color'))); if (numel (fieldindex)) for nf = 1 : numel (fieldindex); field = fields {fieldindex (nf)}; *************** *** 121,127 **** def = get (h (nh), "default"); fields = fieldnames (def); if (! isempty (fields)) ! fieldindex = find (!cellfun (@isempty, regexp(fields, '.*color.*'))); for nf = 1 : numel (fieldindex) defaultfield = fields {fieldindex (nf)}; defaultvalue = 1 - subsref (def, struct ("type", ".", "subs", defaultfield)); --- 121,127 ---- def = get (h (nh), "default"); fields = fieldnames (def); if (! isempty (fields)) ! fieldindex = find (!cellfun (@isempty, regexp(fields, 'color'))); for nf = 1 : numel (fieldindex) defaultfield = fields {fieldindex (nf)}; defaultvalue = 1 - subsref (def, struct ("type", ".", "subs", defaultfield)); diff -cNr octave-3.4.0/scripts/polynomial/polyreduce.m octave-3.4.1/scripts/polynomial/polyreduce.m *** octave-3.4.0/scripts/polynomial/polyreduce.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/polynomial/polyreduce.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} polyreduce (@var{c}) ! ## Reduces a polynomial coefficient vector to a minimum number of terms by ## stripping off any leading zeros. ## @seealso{poly, roots, conv, deconv, residue, filter, polyval, ## polyvalm, polyderiv, polyint} --- 18,24 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} polyreduce (@var{c}) ! ## Reduce a polynomial coefficient vector to a minimum number of terms by ## stripping off any leading zeros. ## @seealso{poly, roots, conv, deconv, residue, filter, polyval, ## polyvalm, polyderiv, polyint} diff -cNr octave-3.4.0/scripts/polynomial/polyval.m octave-3.4.1/scripts/polynomial/polyval.m *** octave-3.4.0/scripts/polynomial/polyval.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/polynomial/polyval.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 53,60 **** error ("polyval: first argument must be a vector"); endif ! if (nargin < 4) ! mu = [0, 1]; endif if (isempty (x)) --- 53,60 ---- error ("polyval: first argument must be a vector"); endif ! if (nargin > 3) ! x = (x - mu(1)) / mu(2); endif if (isempty (x)) *************** *** 68,79 **** endif n = length (p) - 1; ! x = (x - mu(1)) / mu(2); ! y = p(1); for i = 2:n+1 ! y = y .* x(:) + p(i); endfor - y = reshape (y, size (x)); if (nargout == 2) ## Note: the F-Distribution is generally considered to be single-sided. --- 68,77 ---- endif n = length (p) - 1; ! y = p(1) * ones (size (x)); for i = 2:n+1 ! y = y .* x + p(i); endfor if (nargout == 2) ## Note: the F-Distribution is generally considered to be single-sided. *************** *** 128,130 **** --- 126,144 ---- %! x = reshape(x, [1, 1, 5, 2]); %! assert (x, polyval(p,x), eps) + %!test + %! p = [1]; + %! x = 1:10; + %! y = ones(size(x)); + %! assert (y, polyval(p,x), eps) + %! x = x(:); + %! y = ones(size(x)); + %! assert (y, polyval(p,x), eps) + %! x = reshape(x, [2, 5]); + %! y = ones(size(x)); + %! assert (y, polyval(p,x), eps) + %! x = reshape(x, [5, 2]); + %! y = ones(size(x)); + %! assert (y, polyval(p,x), eps) + %! x = reshape(x, [1, 1, 5, 2]); + diff -cNr octave-3.4.0/scripts/polynomial/ppder.m octave-3.4.1/scripts/polynomial/ppder.m *** octave-3.4.0/scripts/polynomial/ppder.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/polynomial/ppder.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 19,25 **** ## -*- texinfo -*- ## @deftypefn {Function File} {@var{ppd} =} ppder (@var{pp}) ## Compute the piecewise derivative of the piecewise polynomial struct @var{pp}. ! ## @seealso{mkpp,ppval,ppint} ## @end deftypefn function ppd = ppder (pp) --- 19,25 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {@var{ppd} =} ppder (@var{pp}) ## Compute the piecewise derivative of the piecewise polynomial struct @var{pp}. ! ## @seealso{mkpp, ppval, ppint} ## @end deftypefn function ppd = ppder (pp) diff -cNr octave-3.4.0/scripts/polynomial/ppint.m octave-3.4.1/scripts/polynomial/ppint.m *** octave-3.4.0/scripts/polynomial/ppint.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/polynomial/ppint.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 21,27 **** ## @deftypefnx {Function File} {@var{ppi} =} ppint (@var{pp}, @var{c}) ## Compute the integral of the piecewise polynomial struct @var{pp}. ## @var{c}, if given, is the constant of integration. ! ## @seealso{mkpp,ppval,ppder} ## @end deftypefn function ppi = ppint (pp, c) --- 21,27 ---- ## @deftypefnx {Function File} {@var{ppi} =} ppint (@var{pp}, @var{c}) ## Compute the integral of the piecewise polynomial struct @var{pp}. ## @var{c}, if given, is the constant of integration. ! ## @seealso{mkpp, ppval, ppder} ## @end deftypefn function ppi = ppint (pp, c) diff -cNr octave-3.4.0/scripts/polynomial/spline.m octave-3.4.1/scripts/polynomial/spline.m *** octave-3.4.0/scripts/polynomial/spline.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/polynomial/spline.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 76,83 **** x = x(:); n = length (x); ! if (n < 3) ! error ("spline: requires at least 3 points"); endif ## Check the size and shape of y --- 76,83 ---- x = x(:); n = length (x); ! if (n < 2) ! error ("spline: requires at least 2 points"); endif ## Check the size and shape of y *************** *** 107,150 **** a = a(2:end-1,:); endif b = c = zeros (size (a)); h = diff (x); idx = ones (columns (a), 1); if (complete) ! if (n == 3) ! dg = 1.5 * h(1) - 0.5 * h(2); ! c(2:n-1,:) = 1/dg(1); else ! dg = 2 * (h(1:n-2) .+ h(2:n-1)); ! dg(1) = dg(1) - 0.5 * h(1); ! dg(n-2) = dg(n-2) - 0.5 * h(n-1); ! e = h(2:n-2); ! g = 3 * diff (a(2:n,:)) ./ h(2:n-1,idx) ... - 3 * diff (a(1:n-1,:)) ./ h(1:n-2,idx); ! g(1,:) = 3 * (a(3,:) - a(2,:)) / h(2) ... - 3 / 2 * (3 * (a(2,:) - a(1,:)) / h(1) - dfs); ! g(n-2,:) = 3 / 2 * (3 * (a(n,:) - a(n-1,:)) / h(n-1) - dfe) ... - 3 * (a(n-1,:) - a(n-2,:)) / h(n-2); ! c(2:n-1,:) = spdiags ([[e(:); 0], dg, [0; e(:)]], [-1, 0, 1], n-2, n-2) \ g; ! endif ! c(1,:) = (3 / h(1) * (a(2,:) - a(1,:)) - 3 * dfs ! - c(2,:) * h(1)) / (2 * h(1)); ! c(n,:) = - (3 / h(n-1) * (a(n,:) - a(n-1,:)) - 3 * dfe ! + c(n-1,:) * h(n-1)) / (2 * h(n-1)); ! b(1:n-1,:) = diff (a) ./ h(1:n-1, idx) ... - h(1:n-1,idx) / 3 .* (c(2:n,:) + 2 * c(1:n-1,:)); ! d = diff (c) ./ (3 * h(1:n-1, idx)); else ! if (n == 3) n = 2; c = (a(1,:) - a(3,:)) / ((x(3) - x(1)) * (x(2) - x(3))) ... --- 107,180 ---- a = a(2:end-1,:); endif + if (~issorted (x)) + [x, idx] = sort(x); + a = a(idx,:); + endif + b = c = zeros (size (a)); h = diff (x); idx = ones (columns (a), 1); if (complete) ! if (n == 2) ! d = (dfs + dfe) / (x(2) - x(1)) ^ 2 + ... ! 2 * (a(1,:) - a(2,:)) / (x(2) - x(1)) ^ 3; ! c = (-2 * dfs - dfe) / (x(2) - x(1)) - ... ! 3 * (a(1,:) - a(2,:)) / (x(2) - x(1)) ^ 2; ! b = dfs; ! a = a(1,:); ! ! d = d(1:n-1,:); ! c = c(1:n-1,:); ! b = b(1:n-1,:); ! a = a(1:n-1,:); else ! if (n == 3) ! dg = 1.5 * h(1) - 0.5 * h(2); ! c(2:n-1,:) = 1/dg(1); ! else ! dg = 2 * (h(1:n-2) .+ h(2:n-1)); ! dg(1) = dg(1) - 0.5 * h(1); ! dg(n-2) = dg(n-2) - 0.5 * h(n-1); ! e = h(2:n-2); ! g = 3 * diff (a(2:n,:)) ./ h(2:n-1,idx) ... - 3 * diff (a(1:n-1,:)) ./ h(1:n-2,idx); ! g(1,:) = 3 * (a(3,:) - a(2,:)) / h(2) ... - 3 / 2 * (3 * (a(2,:) - a(1,:)) / h(1) - dfs); ! g(n-2,:) = 3 / 2 * (3 * (a(n,:) - a(n-1,:)) / h(n-1) - dfe) ... - 3 * (a(n-1,:) - a(n-2,:)) / h(n-2); ! c(2:n-1,:) = spdiags ([[e(:); 0], dg, [0; e(:)]], [-1, 0, 1], n-2, n-2) \ g; ! endif ! c(1,:) = (3 / h(1) * (a(2,:) - a(1,:)) - 3 * dfs ! - c(2,:) * h(1)) / (2 * h(1)); ! c(n,:) = - (3 / h(n-1) * (a(n,:) - a(n-1,:)) - 3 * dfe ! + c(n-1,:) * h(n-1)) / (2 * h(n-1)); ! b(1:n-1,:) = diff (a) ./ h(1:n-1, idx) ... - h(1:n-1,idx) / 3 .* (c(2:n,:) + 2 * c(1:n-1,:)); ! d = diff (c) ./ (3 * h(1:n-1, idx)); + d = d(1:n-1,:); + c = c(1:n-1,:); + b = b(1:n-1,:); + a = a(1:n-1,:); + endif else ! if (n == 2) ! b = (a(2,:) - a(1,:)) / (x(2) - x(1)); ! a = a(1,:); ! d = []; ! c = []; ! b = b(1:n-1,:); ! a = a(1:n-1,:); ! elseif (n == 3) n = 2; c = (a(1,:) - a(3,:)) / ((x(3) - x(1)) * (x(2) - x(3))) ... *************** *** 154,162 **** + (a(1,:) - a(3,:)) * (x(2) - x(1)) ... / ((x(3) - x(1)) * (x(3) - x(2))); a = a(1,:); ! d = zeros (size (a)); x = [min(x), max(x)]; else g = zeros (n-2, columns (a)); --- 184,195 ---- + (a(1,:) - a(3,:)) * (x(2) - x(1)) ... / ((x(3) - x(1)) * (x(3) - x(2))); a = a(1,:); ! d = []; x = [min(x), max(x)]; + c = c(1:n-1,:); + b = b(1:n-1,:); + a = a(1:n-1,:); else g = zeros (n-2, columns (a)); *************** *** 196,209 **** - h(1:n-1, idx) / 3 .* (c(2:n,:) + 2 * c(1:n-1,:)); d = diff (c) ./ (3 * h(1:n-1, idx)); endif endif - - d = d(1:n-1,:); - c = c(1:n-1,:); - b = b(1:n-1,:); - a = a(1:n-1,:); coeffs = cat (3, d.', c.', b.', a.'); ret = mkpp (x, coeffs, szy(1:end-1)); --- 229,241 ---- - h(1:n-1, idx) / 3 .* (c(2:n,:) + 2 * c(1:n-1,:)); d = diff (c) ./ (3 * h(1:n-1, idx)); + d = d(1:n-1,:); + c = c(1:n-1,:); + b = b(1:n-1,:); + a = a(1:n-1,:); endif endif coeffs = cat (3, d.', c.', b.', a.'); ret = mkpp (x, coeffs, szy(1:end-1)); *************** *** 249,251 **** --- 281,303 ---- %!test %! ok = ! isnan (y); %! assert (! isnan (spline (x, y, x(!ok)))); + %!test + %! x = [1,2]; + %! y = [1,4]; + %! assert (spline (x,y,x), [1,4], abserr); + %!test + %! x = [2,1]; + %! y = [1,4]; + %! assert (spline (x,y,x), [1,4], abserr); + %!test + %! x = [1,2]; + %! y = [1,2,3,4]; + %! pp = spline (x,y); + %! [x,P] = unmkpp (pp); + %! assert (norm (P-[3,-3,1,2]), 0, abserr); + %!test + %! x = [2,1]; + %! y = [1,2,3,4]; + %! pp = spline (x,y); + %! [x,P] = unmkpp (pp); + %! assert (norm (P-[7,-9,1,3]), 0, abserr); diff -cNr octave-3.4.0/scripts/signal/fftfilt.m octave-3.4.1/scripts/signal/fftfilt.m *** octave-3.4.0/scripts/signal/fftfilt.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/signal/fftfilt.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 26,31 **** --- 26,32 ---- ## overlap-add method to filter @var{x} with @var{b} using an N-point FFT. ## ## If @var{x} is a matrix, filter each column of the matrix. + ## @seealso{filter, filter2} ## @end deftypefn ## Author: Kurt Hornik diff -cNr octave-3.4.0/scripts/signal/fftshift.m octave-3.4.1/scripts/signal/fftshift.m *** octave-3.4.0/scripts/signal/fftshift.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/signal/fftshift.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 65,73 **** retval = x(idx{:}); else if (isvector (x)) ! x = length (x); ! xx = ceil (x/2); ! retval = x([xx+1:x, 1:xx]); elseif (ismatrix (x)) nd = ndims (x); sz = size (x); --- 65,73 ---- retval = x(idx{:}); else if (isvector (x)) ! xl = length (x); ! xx = ceil (xl/2); ! retval = x([xx+1:xl, 1:xx]); elseif (ismatrix (x)) nd = ndims (x); sz = size (x); *************** *** 83,85 **** --- 83,131 ---- endif endfunction + + %!test + %! x = [0:7]; + %! y = fftshift (x); + %! assert(y, [4 5 6 7 0 1 2 3]); + %! assert(fftshift (y), x); + + %!test + %! x = [0:6]; + %! y = fftshift (x); + %! assert(y, [4 5 6 0 1 2 3]); + %! assert(fftshift (y), [1 2 3 4 5 6 0]); + + %!test + %! x = [0:7]'; + %! y = fftshift (x); + %! assert(y, [4;5;6;7;0;1;2;3]); + %! assert(fftshift (y), x); + + %!test + %! x = [0:6]'; + %! y = fftshift (x); + %! assert(y, [4;5;6;0;1;2;3]); + %! assert(fftshift (y), [1;2;3;4;5;6;0]); + + %!test + %! x = [0:3]; + %! x = [x;2*x;3*x+1;4*x+1]; + %! y = fftshift (x); + %! assert(y, [[7 10 1 4];[9 13 1 5];[2 3 0 1];[4 6 0 2]]); + %! assert(fftshift (y), x); + + %!test + %! x = [0:3]; + %! x = [x;2*x;3*x+1;4*x+1]; + %! y = fftshift (x,1); + %! assert(y, [[1 4 7 10];[1 5 9 13];[0 1 2 3];[0 2 4 6]]); + %! assert(fftshift (y,1), x); + + %!test + %! x = [0:3]; + %! x = [x;2*x;3*x+1;4*x+1]; + %! y = fftshift (x,2); + %! assert(y, [[2 3 0 1];[4 6 0 2];[7 10 1 4];[9 13 1 5]]); + %! assert(fftshift (y,2), x); + diff -cNr octave-3.4.0/scripts/signal/ifftshift.m octave-3.4.1/scripts/signal/ifftshift.m *** octave-3.4.0/scripts/signal/ifftshift.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/signal/ifftshift.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 53,61 **** retval = x(idx{:}); else if (isvector (x)) ! x = length (x); ! xx = floor (x/2); ! retval = x([xx+1:x, 1:xx]); elseif (ismatrix (x)) nd = ndims (x); sz = size (x); --- 53,61 ---- retval = x(idx{:}); else if (isvector (x)) ! xl = length (x); ! xx = floor (xl/2); ! retval = x([xx+1:xl, 1:xx]); elseif (ismatrix (x)) nd = ndims (x); sz = size (x); *************** *** 71,73 **** --- 71,119 ---- endif endfunction + + %!test + %! x = [0:7]; + %! y = ifftshift (x); + %! assert(y, [4 5 6 7 0 1 2 3]); + %! assert(ifftshift (y), x); + + %!test + %! x = [0:6]; + %! y = ifftshift (x); + %! assert(y, [3 4 5 6 0 1 2]); + %! assert(ifftshift (y), [6 0 1 2 3 4 5]); + + %!test + %! x = [0:7]'; + %! y = ifftshift (x); + %! assert(y, [4;5;6;7;0;1;2;3]); + %! assert(ifftshift (y), x); + + %!test + %! x = [0:6]'; + %! y = ifftshift (x); + %! assert(y, [3;4;5;6;0;1;2]); + %! assert(ifftshift (y), [6;0;1;2;3;4;5]); + + %!test + %! x = [0:3]; + %! x = [x;2*x;3*x+1;4*x+1]; + %! y = ifftshift (x); + %! assert(y, [[7 10 1 4];[9 13 1 5];[2 3 0 1];[4 6 0 2]]); + %! assert(ifftshift (y), x); + + %!test + %! x = [0:3]; + %! x = [x;2*x;3*x+1;4*x+1]; + %! y = ifftshift (x,1); + %! assert(y, [[1 4 7 10];[1 5 9 13];[0 1 2 3];[0 2 4 6]]); + %! assert(ifftshift (y,1), x); + + %!test + %! x = [0:3]; + %! x = [x;2*x;3*x+1;4*x+1]; + %! y = ifftshift (x,2); + %! assert(y, [[2 3 0 1];[4 6 0 2];[7 10 1 4];[9 13 1 5]]); + %! assert(ifftshift (y,2), x); + diff -cNr octave-3.4.0/scripts/signal/module.mk octave-3.4.1/scripts/signal/module.mk *** octave-3.4.0/scripts/signal/module.mk 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/signal/module.mk 2011-06-15 11:11:27.000000000 -0400 *************** *** 1,5 **** --- 1,11 ---- FCN_FILE_DIRS += signal + signal_PRIVATE_FCN_FILES = \ + signal/private/rectangle_lw.m \ + signal/private/rectangle_sw.m \ + signal/private/triangle_lw.m \ + signal/private/triangle_sw.m + signal_FCN_FILES = \ signal/arch_fit.m \ signal/arch_rnd.m \ *************** *** 23,30 **** signal/hurst.m \ signal/ifftshift.m \ signal/periodogram.m \ - signal/rectangle_lw.m \ - signal/rectangle_sw.m \ signal/sinc.m \ signal/sinetone.m \ signal/sinewave.m \ --- 29,34 ---- *************** *** 33,42 **** signal/spencer.m \ signal/stft.m \ signal/synthesis.m \ - signal/triangle_lw.m \ - signal/triangle_sw.m \ signal/unwrap.m \ ! signal/yulewalker.m FCN_FILES += $(signal_FCN_FILES) --- 37,45 ---- signal/spencer.m \ signal/stft.m \ signal/synthesis.m \ signal/unwrap.m \ ! signal/yulewalker.m \ ! $(signal_PRIVATE_FCN_FILES) FCN_FILES += $(signal_FCN_FILES) diff -cNr octave-3.4.0/scripts/signal/periodogram.m octave-3.4.1/scripts/signal/periodogram.m *** octave-3.4.0/scripts/signal/periodogram.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/signal/periodogram.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 46,52 **** ## ## @item range: "@nospell{onesided}" computes spectrum from [0..nfft/2+1]. ## "@nospell{twosided}" computes spectrum from [0..nfft-1]. These strings ! ## can appear at any position in the list input arguments after window. ## ## @item Pxx: one-, or two-sided power spectrum. ## --- 46,52 ---- ## ## @item range: "@nospell{onesided}" computes spectrum from [0..nfft/2+1]. ## "@nospell{twosided}" computes spectrum from [0..nfft-1]. These strings ! ## can appear at any position in the list input arguments after window. ## ## @item Pxx: one-, or two-sided power spectrum. ## diff -cNr octave-3.4.0/scripts/signal/private/rectangle_lw.m octave-3.4.1/scripts/signal/private/rectangle_lw.m *** octave-3.4.0/scripts/signal/private/rectangle_lw.m 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/scripts/signal/private/rectangle_lw.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,39 ---- + ## Copyright (C) 1995-2011 Friedrich Leisch + ## + ## This file is part of Octave. + ## + ## Octave 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. + ## + ## Octave 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 Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {} rectangle_lw (@var{n}, @var{b}) + ## Rectangular lag window. Subfunction used for spectral density + ## estimation. + ## @end deftypefn + + ## Author: FL + ## Description: Rectangular lag window + + function retval = rectangle_lw (n, b) + + if (nargin != 2) + print_usage (); + endif + + retval = zeros (n, 1); + t = floor (1 / b); + + retval (1:t, 1) = ones (t, 1); + + endfunction diff -cNr octave-3.4.0/scripts/signal/private/rectangle_sw.m octave-3.4.1/scripts/signal/private/rectangle_sw.m *** octave-3.4.0/scripts/signal/private/rectangle_sw.m 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/scripts/signal/private/rectangle_sw.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,72 ---- + ## Copyright (C) 1995-2011 Friedrich Leisch + ## + ## This file is part of Octave. + ## + ## Octave 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. + ## + ## Octave 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 Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {} rectangle_sw (@var{n}, @var{b}) + ## Rectangular spectral window. Subfunction used for spectral density + ## estimation. + ## @end deftypefn + + ## Author: FL + ## Description: Rectangular spectral window + + function retval = rectangle_sw (n, b) + + if (nargin != 2) + print_usage (); + endif + + retval = zeros (n, 1); + retval(1) = 2 / b + 1; + + l = (2:n)' - 1; + l = 2 * pi * l / n; + + retval(2:n) = sin ((2/b + 1) * l / 2) ./ sin (l / 2); + + endfunction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -cNr octave-3.4.0/scripts/signal/private/triangle_lw.m octave-3.4.1/scripts/signal/private/triangle_lw.m *** octave-3.4.0/scripts/signal/private/triangle_lw.m 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/scripts/signal/private/triangle_lw.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,38 ---- + ## Copyright (C) 1995-2011 Friedrich Leisch + ## + ## This file is part of Octave. + ## + ## Octave 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. + ## + ## Octave 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 Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {} triangle_lw (@var{n}, @var{b}) + ## Triangular lag window. Subfunction used for spectral density + ## estimation. + ## @end deftypefn + + ## Author: FL + ## Description: Triangular lag window + + function retval = triangle_lw (n, b) + + if (nargin != 2) + print_usage (); + endif + + retval = 1 - (0 : n-1)' * b; + retval = max ([retval'; (zeros (1, n))])'; + + endfunction + diff -cNr octave-3.4.0/scripts/signal/private/triangle_sw.m octave-3.4.1/scripts/signal/private/triangle_sw.m *** octave-3.4.0/scripts/signal/private/triangle_sw.m 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/scripts/signal/private/triangle_sw.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,72 ---- + ## Copyright (C) 1995-2011 Friedrich Leisch + ## + ## This file is part of Octave. + ## + ## Octave 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. + ## + ## Octave 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 Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {} triangle_sw (@var{n}, @var{b}) + ## Triangular spectral window. Subfunction used for spectral density + ## estimation. + ## @end deftypefn + + ## Author: FL + ## Description: Triangular spectral window + + function retval = triangle_sw (n, b) + + if (nargin != 2) + print_usage (); + endif + + retval = zeros(n,1); + retval(1) = 1 / b; + + l = (2:n)' - 1; + l = 2 * pi * l / n; + + retval(2:n) = b * (sin (l / (2*b)) ./ sin (l / 2)).^2; + + endfunction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -cNr octave-3.4.0/scripts/signal/rectangle_lw.m octave-3.4.1/scripts/signal/rectangle_lw.m *** octave-3.4.0/scripts/signal/rectangle_lw.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/signal/rectangle_lw.m 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,39 **** - ## Copyright (C) 1995-2011 Friedrich Leisch - ## - ## This file is part of Octave. - ## - ## Octave 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. - ## - ## Octave 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 Octave; see the file COPYING. If not, see - ## . - - ## -*- texinfo -*- - ## @deftypefn {Function File} {} rectangle_lw (@var{n}, @var{b}) - ## Rectangular lag window. Subfunction used for spectral density - ## estimation. - ## @end deftypefn - - ## Author: FL - ## Description: Rectangular lag window - - function retval = rectangle_lw (n, b) - - if (nargin != 2) - print_usage (); - endif - - retval = zeros (n, 1); - t = floor (1 / b); - - retval (1:t, 1) = ones (t, 1); - - endfunction --- 0 ---- diff -cNr octave-3.4.0/scripts/signal/rectangle_sw.m octave-3.4.1/scripts/signal/rectangle_sw.m *** octave-3.4.0/scripts/signal/rectangle_sw.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/signal/rectangle_sw.m 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,72 **** - ## Copyright (C) 1995-2011 Friedrich Leisch - ## - ## This file is part of Octave. - ## - ## Octave 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. - ## - ## Octave 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 Octave; see the file COPYING. If not, see - ## . - - ## -*- texinfo -*- - ## @deftypefn {Function File} {} rectangle_sw (@var{n}, @var{b}) - ## Rectangular spectral window. Subfunction used for spectral density - ## estimation. - ## @end deftypefn - - ## Author: FL - ## Description: Rectangular spectral window - - function retval = rectangle_sw (n, b) - - if (nargin != 2) - print_usage (); - endif - - retval = zeros (n, 1); - retval(1) = 2 / b + 1; - - l = (2:n)' - 1; - l = 2 * pi * l / n; - - retval(2:n) = sin ((2/b + 1) * l / 2) ./ sin (l / 2); - - endfunction - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --- 0 ---- diff -cNr octave-3.4.0/scripts/signal/triangle_lw.m octave-3.4.1/scripts/signal/triangle_lw.m *** octave-3.4.0/scripts/signal/triangle_lw.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/signal/triangle_lw.m 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,38 **** - ## Copyright (C) 1995-2011 Friedrich Leisch - ## - ## This file is part of Octave. - ## - ## Octave 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. - ## - ## Octave 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 Octave; see the file COPYING. If not, see - ## . - - ## -*- texinfo -*- - ## @deftypefn {Function File} {} triangle_lw (@var{n}, @var{b}) - ## Triangular lag window. Subfunction used for spectral density - ## estimation. - ## @end deftypefn - - ## Author: FL - ## Description: Triangular lag window - - function retval = triangle_lw (n, b) - - if (nargin != 2) - print_usage (); - endif - - retval = 1 - (0 : n-1)' * b; - retval = max ([retval'; (zeros (1, n))])'; - - endfunction - --- 0 ---- diff -cNr octave-3.4.0/scripts/signal/triangle_sw.m octave-3.4.1/scripts/signal/triangle_sw.m *** octave-3.4.0/scripts/signal/triangle_sw.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/signal/triangle_sw.m 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,72 **** - ## Copyright (C) 1995-2011 Friedrich Leisch - ## - ## This file is part of Octave. - ## - ## Octave 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. - ## - ## Octave 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 Octave; see the file COPYING. If not, see - ## . - - ## -*- texinfo -*- - ## @deftypefn {Function File} {} triangle_sw (@var{n}, @var{b}) - ## Triangular spectral window. Subfunction used for spectral density - ## estimation. - ## @end deftypefn - - ## Author: FL - ## Description: Triangular spectral window - - function retval = triangle_sw (n, b) - - if (nargin != 2) - print_usage (); - endif - - retval = zeros(n,1); - retval(1) = 1 / b; - - l = (2:n)' - 1; - l = 2 * pi * l / n; - - retval(2:n) = b * (sin (l / (2*b)) ./ sin (l / 2)).^2; - - endfunction - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --- 0 ---- diff -cNr octave-3.4.0/scripts/sparse/colperm.m octave-3.4.1/scripts/sparse/colperm.m *** octave-3.4.0/scripts/sparse/colperm.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/sparse/colperm.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {@var{p} =} colperm (@var{s}) ! ## Returns the column permutations such that the columns of ## @code{@var{s} (:, @var{p})} are ordered in terms of increase number ## of non-zero elements. If @var{s} is symmetric, then @var{p} is chosen ## such that @code{@var{s} (@var{p}, @var{p})} orders the rows and --- 18,24 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {@var{p} =} colperm (@var{s}) ! ## Return the column permutations such that the columns of ## @code{@var{s} (:, @var{p})} are ordered in terms of increase number ## of non-zero elements. If @var{s} is symmetric, then @var{p} is chosen ## such that @code{@var{s} (@var{p}, @var{p})} orders the rows and diff -cNr octave-3.4.0/scripts/sparse/nonzeros.m octave-3.4.1/scripts/sparse/nonzeros.m *** octave-3.4.0/scripts/sparse/nonzeros.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/sparse/nonzeros.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} nonzeros (@var{s}) ! ## Returns a vector of the non-zero values of the sparse matrix @var{s}. ## @end deftypefn function t = nonzeros (s) --- 18,24 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} nonzeros (@var{s}) ! ## Return a vector of the non-zero values of the sparse matrix @var{s}. ## @end deftypefn function t = nonzeros (s) diff -cNr octave-3.4.0/scripts/sparse/spaugment.m octave-3.4.1/scripts/sparse/spaugment.m *** octave-3.4.0/scripts/sparse/spaugment.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/sparse/spaugment.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {@var{s} =} spaugment (@var{A}, @var{c}) ! ## Creates the augmented matrix of @var{A}. This is given by ## ## @example ## @group --- 18,24 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {@var{s} =} spaugment (@var{A}, @var{c}) ! ## Create the augmented matrix of @var{A}. This is given by ## ## @example ## @group diff -cNr octave-3.4.0/scripts/sparse/spdiags.m octave-3.4.1/scripts/sparse/spdiags.m *** octave-3.4.0/scripts/sparse/spdiags.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/sparse/spdiags.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 79,88 **** ## Create new matrix of size mxn using v,c [j, i, v] = find (v); offset = max (min (c(:), n-m), 0); ! j = j(:) + offset(i); i = j-c(:)(i); idx = i > 0 & i <= m & j > 0 & j <= n; A = sparse (i(idx), j(idx), v(idx), m, n); endif endfunction --- 79,94 ---- ## Create new matrix of size mxn using v,c [j, i, v] = find (v); offset = max (min (c(:), n-m), 0); ! j = j + offset(i); i = j-c(:)(i); idx = i > 0 & i <= m & j > 0 & j <= n; A = sparse (i(idx), j(idx), v(idx), m, n); endif endfunction + + %!test + %assert(spdiags(zeros(1,0),1,1,1),0) + + %!test + %assert(spdiags(zeros(0,1),1,1,1),0) diff -cNr octave-3.4.0/scripts/sparse/speye.m octave-3.4.1/scripts/sparse/speye.m *** octave-3.4.0/scripts/sparse/speye.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/sparse/speye.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 20,26 **** ## @deftypefn {Function File} {@var{y} =} speye (@var{m}) ## @deftypefnx {Function File} {@var{y} =} speye (@var{m}, @var{n}) ## @deftypefnx {Function File} {@var{y} =} speye (@var{sz}) ! ## Returns a sparse identity matrix. This is significantly more ## efficient than @code{sparse (eye (@var{m}))} as the full matrix ## is not constructed. ## --- 20,26 ---- ## @deftypefn {Function File} {@var{y} =} speye (@var{m}) ## @deftypefnx {Function File} {@var{y} =} speye (@var{m}, @var{n}) ## @deftypefnx {Function File} {@var{y} =} speye (@var{sz}) ! ## Return a sparse identity matrix. This is significantly more ## efficient than @code{sparse (eye (@var{m}))} as the full matrix ## is not constructed. ## diff -cNr octave-3.4.0/scripts/sparse/svds.m octave-3.4.1/scripts/sparse/svds.m *** octave-3.4.0/scripts/sparse/svds.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/sparse/svds.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 173,182 **** if (nargout > 1) [V, s, flag] = eigs ([sparse(m,m), b; b', sparse(n,n)], b_k, b_sigma, b_opts); else s = eigs ([sparse(m,m), b; b', sparse(n,n)], b_k, b_sigma, b_opts); endif - s = diag (s); if (ischar (sigma)) norma = max (s); --- 173,182 ---- if (nargout > 1) [V, s, flag] = eigs ([sparse(m,m), b; b', sparse(n,n)], b_k, b_sigma, b_opts); + s = diag (s); else s = eigs ([sparse(m,m), b; b', sparse(n,n)], b_k, b_sigma, b_opts); endif if (ischar (sigma)) norma = max (s); *************** *** 224,234 **** else if (max_a == 0) u = eye (m, k); ! s = diag(s); v = eye (n, k); else u = root2 * V(1:m,ind); ! s = diag(s); v = root2 * V(m+1:end,ind); endif --- 224,234 ---- else if (max_a == 0) u = eye (m, k); ! s = diag (s); v = eye (n, k); else u = root2 * V(1:m,ind); ! s = diag (s); v = root2 * V(m+1:end,ind); endif *************** *** 273,276 **** %! assert(s2, s((idx+floor(k/2)):-1:(idx-floor(k/2))), 1e-10); %!test %! [u2,s2,v2,flag] = svds(zeros (10), k); ! %! assert (isequal(u2, eye (10, k)) && isequal (s2, zeros(k)) && isequal (v2, eye(10, 7))) --- 273,279 ---- %! assert(s2, s((idx+floor(k/2)):-1:(idx-floor(k/2))), 1e-10); %!test %! [u2,s2,v2,flag] = svds(zeros (10), k); ! %! assert (isequal(u2, eye (10, k)) && isequal (s2, zeros(k)) && isequal (v2, eye(10, 7))); ! %!test ! %! s = svds (speye (10)); ! %! assert (s, ones (6, 1), 2*eps); diff -cNr octave-3.4.0/scripts/sparse/treelayout.m octave-3.4.1/scripts/sparse/treelayout.m *** octave-3.4.0/scripts/sparse/treelayout.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/sparse/treelayout.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 25,31 **** ## permutation. ## The complexity of the algorithm is O(n) in ## terms of time and memory requirements. ! ## @seealso{etreeplot, gplot,treeplot} ## @end deftypefn function [x_coordinate, y_coordinate, height, s] = treelayout (tree, permutation) --- 25,31 ---- ## permutation. ## The complexity of the algorithm is O(n) in ## terms of time and memory requirements. ! ## @seealso{etreeplot, gplot, treeplot} ## @end deftypefn function [x_coordinate, y_coordinate, height, s] = treelayout (tree, permutation) diff -cNr octave-3.4.0/scripts/sparse/treeplot.m octave-3.4.1/scripts/sparse/treeplot.m *** octave-3.4.0/scripts/sparse/treeplot.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/sparse/treeplot.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 19,209 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} treeplot (@var{tree}) ## @deftypefnx {Function File} {} treeplot (@var{tree}, @var{node_style}, @var{edge_style}) ! ## Produces a graph of tree or forest. The first argument is vector of ## predecessors, optional parameters @var{node_style} and @var{edge_style} ## define the output style. The complexity of the algorithm is O(n) in ## terms of is time and memory requirements. ## @seealso{etreeplot, gplot} ## @end deftypefn ! function treeplot (tree, node_s, edge_s) if (nargin < 1 || nargin > 3 || nargout > 0) print_usage (); ! else ! if (! ismatrix (tree) || rows (tree) != 1 || ! isnumeric (tree) ! || ! isvector (tree) || any (tree > length (tree))) ! error ("treeplot: the first input argument must be a vector of predecessors"); ! else ! ## The initialization of node end edge style. ! node_style = "k*"; ! edge_style = "r"; ! if (nargin > 2) ! edge_style = edge_s; ! if (nargin > 1) ! if (length (findstr (node_s, "*")) == 0 ! && length (findstr (node_s, "+")) == 0 ! && length (findstr (node_s, "x")) == 0) ! node_style = [node_s, "o"]; ! else ! node_style = node_s; ! endif ! endif ! endif ! ## Make it a row vector. ! tree = tree(:)'; ! ## The count of nodes of the graph. ! num_nodes = length (tree); ! ## The number of children. ! num_children = zeros (1, num_nodes+1); ! for i = 1:num_nodes ! ## VEC_OF_CHILD is helping vector which is used to speed up the ! ## choose of descendant nodes. ! ! num_children(tree(i)+1) = num_children(tree(i)+1) + 1; ! endfor ! pos = 1; ! start = zeros (1, num_nodes+1); ! xhelp = zeros (1, num_nodes+1); ! stop = zeros (1, num_nodes+1); ! for i = 1:num_nodes+1 ! start(i) = pos; ! xhelp(i) = pos; ! pos += num_children(i); ! stop(i) = pos; ! endfor ! for i = 1:num_nodes ! vec_of_child(xhelp(tree(i)+1)) = i; ! xhelp(tree(i)+1) = xhelp(tree(i)+1)+1; ! endfor ! ! ## The number of "parent" (actual) node (it's descendants will be ! ## browse in the next iteration). ! par_number = 0; ! ! ## The x-coordinate of the left most descendant of "parent node" ! ## this value is increased in each leaf. ! left_most = 0; ! ! ## The level of "parent" node (root level is num_nodes). ! level = num_nodes; ! ! ## Num_nodes - max_ht is the height of this graph. ! max_ht = num_nodes; ! ! ## Main stack - each item consists of two numbers - the number of ! ## node and the number it's of parent node on the top of stack ! ## there is "parent node". ! stk = [-1, 0]; ! ! ## Stack which is use to draw the graph edge (it have to be ! ## uninterupted line). ! skelet = 0; ! ! ## The top of the stack. ! while (par_number != -1) ! if (start(par_number+1) < stop(par_number+1)) ! idx = vec_of_child(start(par_number+1):stop(par_number+1)-1); ! else ! idx = zeros (1, 0); ! endif ! ## Add to idx the vector of parent descendants. ! stk = [stk; [idx', ones(fliplr(size(idx)))*par_number]]; ! ## Add to stack the records relevant to parent descandant s. ! if (par_number != 0) ! skelet = [skelet; ([ones(size(idx))*par_number; idx])(:)]; ! endif ! ! ## If there is not any descendant of "parent node": ! if (stk(end,2) != par_number) ! left_most++; ! x_coordinate_r(par_number) = left_most; ! max_ht = min (max_ht, level); ! if (length(stk) > 1 && find ((shift(stk,1)-stk) == 0) > 1 ! && stk(end,2) != stk(end-1,2)) ! ## Return to the nearest branching the position to return ! ## position is the position on the stack, where should be ! ## started further search (there are two nodes which has the ! ## same parent node). ! position = (find ((shift(stk(:,2),1)-stk(:,2)) == 0))(end) + 1; ! par_number_vec = stk(position:end,2); ! ## The vector of removed nodes (the content of stack form ! ## position to end). ! skelet = [skelet; flipud(par_number_vec)]; ! level += length (par_number_vec); ! ## The level have to be decreased. ! x_coordinate_r(par_number_vec) = left_most; ! stk(position:end,:) = []; ! endif ! ## Remove the next node from "searched branch". ! stk(end,:) = []; ! ## Choose new "parent node". ! par_number = stk(end,1); ! ## If there is another branch start to search it. ! if (par_number != -1) ! skelet = [skelet; stk(end,2); par_number]; ! y_coordinate(par_number) = level; ! x_coordinate_l(par_number) = left_most + 1; ! endif ! else ! ## There were descendants of "parent nod" choose the last of ! ## them and go on through it. ! level--; ! par_number = stk(end,1); ! y_coordinate(par_number) = level; ! x_coordinate_l(par_number) = left_most + 1; ! endif ! endwhile ! ! ## Calculate the x coordinates (the known values are the position ! ## of most left and most right descendants). ! x_coordinate = (x_coordinate_l + x_coordinate_r) / 2; ! ! ## FIXME -- we should probably stuff all the arguments into a cell ! ## array and make a single call to plot here so we can avoid ! ## setting the hold state... ! ! hold_is_on = ishold (); ! unwind_protect ! hold ("on"); ! ! ## Plot grah nodes. ! plot (x_coordinate, y_coordinate, node_style); ! ! ## Helping command - usable for plotting edges ! skelet = [skelet; 0]; ! ! ## Draw graph edges. ! idx = find (skelet == 0); ! ! ## Plot each tree component in one loop. ! for i = 2:length(idx) ! ## Tree component start. ! istart = idx(i-1) + 1; ! ## Tree component end. ! istop = idx(i) - 1; ! if (istop - istart < 1) ! continue; ! endif ! plot (x_coordinate(skelet(istart:istop)), ! y_coordinate(skelet(istart:istop)), edge_style); ! endfor ! ! ## Set axis and graph size. ! axis ([0.5, left_most+0.5, max_ht-0.5, num_nodes-0.5], "nolabel"); ! ! unwind_protect_cleanup ! if (! hold_is_on) ! hold ("off"); ! endif ! end_unwind_protect endif ! endif endfunction %!demo --- 19,199 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} treeplot (@var{tree}) ## @deftypefnx {Function File} {} treeplot (@var{tree}, @var{node_style}, @var{edge_style}) ! ## Produce a graph of tree or forest. The first argument is vector of ## predecessors, optional parameters @var{node_style} and @var{edge_style} ## define the output style. The complexity of the algorithm is O(n) in ## terms of is time and memory requirements. ## @seealso{etreeplot, gplot} ## @end deftypefn ! function treeplot (tree, node_style = "ko", edge_style = "r") if (nargin < 1 || nargin > 3 || nargout > 0) print_usage (); ! endif ! ! if (! ismatrix (tree) || rows (tree) != 1 || ! isnumeric (tree) ! || ! isvector (tree) || any (tree > length (tree))) ! error ("treeplot: TREE must be a vector of predecessors"); ! endif ! ## Verify node_style ! if (nargin > 1) ! if (isempty (regexp (node_style, '[ox+*]', 'once'))) ! node_style = [node_style, "o"]; ! endif ! endif ! ## Make it a row vector. ! tree = tree(:)'; ! ## The count of nodes of the graph. ! num_nodes = length (tree); ! ## The number of children. ! num_children = zeros (1, num_nodes+1); + for i = 1:num_nodes + ## VEC_OF_CHILD is helping vector which is used to speed up the + ## choose of descendant nodes. + + num_children(tree(i)+1) = num_children(tree(i)+1) + 1; + endfor + pos = 1; + start = zeros (1, num_nodes+1); + xhelp = zeros (1, num_nodes+1); + stop = zeros (1, num_nodes+1); + for i = 1:num_nodes+1 + start(i) = pos; + xhelp(i) = pos; + pos += num_children(i); + stop(i) = pos; + endfor + for i = 1:num_nodes + vec_of_child(xhelp(tree(i)+1)) = i; + xhelp(tree(i)+1) = xhelp(tree(i)+1)+1; + endfor + + ## The number of "parent" (actual) node (it's descendants will be + ## browse in the next iteration). + par_number = 0; + + ## The x-coordinate of the left most descendant of "parent node" + ## this value is increased in each leaf. + left_most = 0; + + ## The level of "parent" node (root level is num_nodes). + level = num_nodes; + + ## Num_nodes - max_ht is the height of this graph. + max_ht = num_nodes; + + ## Main stack - each item consists of two numbers - the number of + ## node and the number it's of parent node on the top of stack + ## there is "parent node". + stk = [-1, 0]; + + ## Stack which is use to draw the graph edge (it have to be + ## uninterupted line). + skelet = 0; + + ## The top of the stack. + while (par_number != -1) + if (start(par_number+1) < stop(par_number+1)) + idx = vec_of_child(start(par_number+1):stop(par_number+1)-1); + else + idx = zeros (1, 0); endif ! ## Add to idx the vector of parent descendants. ! stk = [stk; [idx', ones(fliplr(size(idx)))*par_number]]; ! ## Add to stack the records relevant to parent descandant s. ! if (par_number != 0) ! skelet = [skelet; ([ones(size(idx))*par_number; idx])(:)]; ! endif ! ! ## If there is not any descendant of "parent node": ! if (stk(end,2) != par_number) ! left_most++; ! x_coordinate_r(par_number) = left_most; ! max_ht = min (max_ht, level); ! if (length(stk) > 1 && find ((shift(stk,1)-stk) == 0) > 1 ! && stk(end,2) != stk(end-1,2)) ! ## Return to the nearest branching the position to return ! ## position is the position on the stack, where should be ! ## started further search (there are two nodes which has the ! ## same parent node). ! position = (find ((shift(stk(:,2),1)-stk(:,2)) == 0))(end) + 1; ! par_number_vec = stk(position:end,2); ! ## The vector of removed nodes (the content of stack form ! ## position to end). ! skelet = [skelet; flipud(par_number_vec)]; ! level += length (par_number_vec); ! ## The level have to be decreased. ! x_coordinate_r(par_number_vec) = left_most; ! stk(position:end,:) = []; ! endif ! ## Remove the next node from "searched branch". ! stk(end,:) = []; ! ## Choose new "parent node". ! par_number = stk(end,1); ! ## If there is another branch start to search it. ! if (par_number != -1) ! skelet = [skelet; stk(end,2); par_number]; ! y_coordinate(par_number) = level; ! x_coordinate_l(par_number) = left_most + 1; ! endif ! else ! ## There were descendants of "parent nod" choose the last of ! ## them and go on through it. ! level--; ! par_number = stk(end,1); ! y_coordinate(par_number) = level; ! x_coordinate_l(par_number) = left_most + 1; ! endif ! endwhile ! ! ## Calculate the x coordinates (the known values are the position ! ## of most left and most right descendants). ! x_coordinate = (x_coordinate_l + x_coordinate_r) / 2; ! ! ## FIXME -- we should probably stuff all the arguments into a cell ! ## array and make a single call to plot here so we can avoid ! ## setting the hold state... ! ! hold_is_on = ishold (); ! unwind_protect ! ## Plot graph nodes. ! plot (x_coordinate, y_coordinate, node_style); ! ! ## Helping command - usable for plotting edges ! skelet = [skelet; 0]; ! ! ## Draw graph edges. ! idx = find (skelet == 0); ! ! hold ("on"); ! ## Plot each tree component in one loop. ! for i = 2:length(idx) ! ## Tree component start. ! istart = idx(i-1) + 1; ! ## Tree component end. ! istop = idx(i) - 1; ! if (istop - istart < 1) ! continue; ! endif ! plot (x_coordinate(skelet(istart:istop)), ! y_coordinate(skelet(istart:istop)), edge_style); ! endfor ! ! ## Set axis and graph size. ! axis ([0.5, left_most+0.5, max_ht-0.5, num_nodes-0.5], "nolabel"); ! ! unwind_protect_cleanup ! if (! hold_is_on) ! hold ("off"); ! endif ! end_unwind_protect ! endfunction %!demo diff -cNr octave-3.4.0/scripts/specfun/betaln.m octave-3.4.1/scripts/specfun/betaln.m *** octave-3.4.0/scripts/specfun/betaln.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/specfun/betaln.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 21,36 **** ## Return the natural logarithm of the Beta function, ## @tex ## $$ ! ## B (a, b) = \log {\Gamma (a) \Gamma (b) \over \Gamma (a + b)}. ## $$ ## @end tex ## @ifnottex ## ## @example ! ## betaln (a, b) = gammaln (a) + gammaln (b) - gammaln (a + b) ## @end example ## ## @end ifnottex ## @seealso{beta, betainc, gammaln} ## @end deftypefn --- 21,37 ---- ## Return the natural logarithm of the Beta function, ## @tex ## $$ ! ## {\rm betaln} (a, b) = \ln (B (a,b)) \equiv \ln ({\Gamma (a) \Gamma (b) \over \Gamma (a + b)}). ## $$ ## @end tex ## @ifnottex ## ## @example ! ## betaln (a, b) = log (beta (a, b)) ## @end example ## ## @end ifnottex + ## calculated in a way to reduce the occurrence of underflow. ## @seealso{beta, betainc, gammaln} ## @end deftypefn *************** *** 39,52 **** ## Keywords: log beta special function function retval = betaln (a, b) if (nargin != 2) print_usage (); endif retval = gammaln (a) + gammaln (b) - gammaln (a + b); endfunction - %!assert (betaln(3,4),log(beta(3,4)),eps) ! %!error (betaln(1.)) ! %!error (betaln(1.,1.,1.)) --- 40,57 ---- ## Keywords: log beta special function function retval = betaln (a, b) + if (nargin != 2) print_usage (); endif retval = gammaln (a) + gammaln (b) - gammaln (a + b); + endfunction ! %!assert (betaln (3,4), log (beta(3,4)),eps); ! ! %% Test input validation ! %!error (betaln (1)) ! %!error (betaln (1,2,3)) diff -cNr octave-3.4.0/scripts/special-matrix/hadamard.m octave-3.4.1/scripts/special-matrix/hadamard.m *** octave-3.4.0/scripts/special-matrix/hadamard.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/special-matrix/hadamard.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 21,52 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} hadamard (@var{n}) ! ## Construct a Hadamard matrix @var{Hn} of size @var{n}-by-@var{n}. The ! ## size @var{n} must be of the form @code{2 ^ @var{k} * @var{p}} in which ! ## @var{p} is one of 1, 12, 20 or 28. The returned matrix is normalized, ! ## meaning @code{Hn(:,1) == 1} and @code{Hn(1,:) == 1}. ## ## Some of the properties of Hadamard matrices are: ## ## @itemize @bullet ## @item ! ## @code{kron (@var{Hm}, @var{Hn})} is a Hadamard matrix of size ! ## @var{m}-by-@var{n}. ## ## @item ! ## @code{Hn * Hn' == @var{n} * eye (@var{n})}. ## ## @item ! ## The rows of @var{Hn} are orthogonal. ## ## @item ! ## @code{det (@var{A}) <= abs(det (@var{Hn}))} for all @var{A} with ! ## @code{abs (@var{A} (@var{i}, @var{j})) <= 1}. ## ## @item ! ## Multiply any row or column by -1 and still have a Hadamard matrix. ## @end itemize ! ## ## @end deftypefn --- 21,52 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} hadamard (@var{n}) ! ## Construct a Hadamard matrix (@nospell{Hn}) of size @var{n}-by-@var{n}. The ! ## size @var{n} must be of the form @math{2^k * p} in which ! ## p is one of 1, 12, 20 or 28. The returned matrix is normalized, ! ## meaning @w{@code{Hn(:,1) == 1}} and @w{@code{Hn(1,:) == 1}}. ## ## Some of the properties of Hadamard matrices are: ## ## @itemize @bullet ## @item ! ## @code{kron (Hm, Hn)} is a Hadamard matrix of size @var{m}-by-@var{n}. ## ## @item ! ## @code{Hn * Hn' = @var{n} * eye (@var{n})}. ## ## @item ! ## The rows of @nospell{Hn} are orthogonal. ## ## @item ! ## @code{det (@var{A}) <= abs (det (Hn))} for all @var{A} with ! ## @w{@code{abs (@var{A}(i, j)) <= 1}}. ## ## @item ! ## Multiplying any row or column by -1 and the matrix will remain a Hadamard ! ## matrix. ## @end itemize ! ## @seealso{compan, hankel, toeplitz} ## @end deftypefn diff -cNr octave-3.4.0/scripts/special-matrix/hankel.m octave-3.4.1/scripts/special-matrix/hankel.m *** octave-3.4.0/scripts/special-matrix/hankel.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/special-matrix/hankel.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 19,25 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} hankel (@var{c}) ## @deftypefnx {Function File} {} hankel (@var{c}, @var{r}) ! ## Return the Hankel matrix constructed given the first column @var{c}, and ## (optionally) the last row @var{r}. If the last element of @var{c} is ## not the same as the first element of @var{r}, the last element of ## @var{c} is used. If the second argument is omitted, it is assumed to --- 19,25 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} hankel (@var{c}) ## @deftypefnx {Function File} {} hankel (@var{c}, @var{r}) ! ## Return the Hankel matrix constructed from the first column @var{c}, and ## (optionally) the last row @var{r}. If the last element of @var{c} is ## not the same as the first element of @var{r}, the last element of ## @var{c} is used. If the second argument is omitted, it is assumed to *************** *** 42,48 **** ## @end example ## ## @end ifnottex ! ## @seealso{vander, sylvester_matrix, hilb, invhilb, toeplitz} ## @end deftypefn ## Author: jwe --- 42,48 ---- ## @end example ## ## @end ifnottex ! ## @seealso{hadamard, toeplitz} ## @end deftypefn ## Author: jwe diff -cNr octave-3.4.0/scripts/special-matrix/hilb.m octave-3.4.1/scripts/special-matrix/hilb.m *** octave-3.4.0/scripts/special-matrix/hilb.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/special-matrix/hilb.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,31 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} hilb (@var{n}) ! ## Return the Hilbert matrix of order @var{n}. The ! ## @tex ! ## $i,\,j$ ! ## @end tex ! ## @ifnottex ! ## i, j ! ## @end ifnottex ! ## element of a Hilbert matrix is defined as ## @tex ## $$ ## H (i, j) = {1 \over (i + j - 1)} --- 18,25 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} hilb (@var{n}) ! ## Return the Hilbert matrix of order @var{n}. The @math{i,j} element ! ## of a Hilbert matrix is defined as ## @tex ## $$ ## H (i, j) = {1 \over (i + j - 1)} *************** *** 38,44 **** ## @end example ## ## @end ifnottex ! ## @seealso{hankel, vander, sylvester_matrix, invhilb, toeplitz} ## @end deftypefn ## Author: jwe --- 32,53 ---- ## @end example ## ## @end ifnottex ! ## ! ## Hilbert matrices are close to being singular which make them difficult to ! ## invert with numerical routines. ! ## Comparing the condition number of a random matrix 5x5 matrix with that of ! ## a Hilbert matrix of order 5 reveals just how difficult the problem is. ! ## ! ## @example ! ## @group ! ## cond (rand (5)) ! ## @result{} 14.392 ! ## cond (hilb (5)) ! ## @result{} 4.7661e+05 ! ## @end group ! ## @end example ! ## ! ## @seealso{invhilb} ## @end deftypefn ## Author: jwe diff -cNr octave-3.4.0/scripts/special-matrix/invhilb.m octave-3.4.1/scripts/special-matrix/invhilb.m *** octave-3.4.0/scripts/special-matrix/invhilb.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/special-matrix/invhilb.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 68,74 **** ## Compare this with the numerical calculation of @code{inverse (hilb (n))}, ## which suffers from the ill-conditioning of the Hilbert matrix, and the ## finite precision of your computer's floating point arithmetic. ! ## @seealso{hilb, hankel, vander, sylvester_matrix, toeplitz} ## @end deftypefn ## Author: Dirk Laurie --- 68,74 ---- ## Compare this with the numerical calculation of @code{inverse (hilb (n))}, ## which suffers from the ill-conditioning of the Hilbert matrix, and the ## finite precision of your computer's floating point arithmetic. ! ## @seealso{hilb} ## @end deftypefn ## Author: Dirk Laurie diff -cNr octave-3.4.0/scripts/special-matrix/magic.m octave-3.4.1/scripts/special-matrix/magic.m *** octave-3.4.0/scripts/special-matrix/magic.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/special-matrix/magic.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 19,27 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} magic (@var{n}) ## ! ## Create an @var{n}-by-@var{n} magic square. Note that @code{magic ! ## (@var{2})} is undefined since there is no 2-by-2 magic square. ## ## @end deftypefn function A = magic(n) --- 19,29 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} magic (@var{n}) ## ! ## Create an @var{n}-by-@var{n} magic square. A magic square is an arrangement ! ## of the integers @code{1:n^2} such that the row sums, column sums, and ! ## diagonal sums are all equal to the same value. ## + ## Note: @var{n} must be greater than 2 for the magic square to exist. ## @end deftypefn function A = magic(n) diff -cNr octave-3.4.0/scripts/special-matrix/pascal.m octave-3.4.1/scripts/special-matrix/pascal.m *** octave-3.4.0/scripts/special-matrix/pascal.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/special-matrix/pascal.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 20,37 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} pascal (@var{n}) ## @deftypefnx {Function File} {} pascal (@var{n}, @var{t}) ! ## Return the Pascal matrix of order @var{n} if @code{@var{t} = 0}. ! ## @var{t} defaults to 0. Return lower triangular Cholesky@tie{}factor of ! ## the Pascal matrix if @code{@var{t} = 1}. This matrix is its own ! ## inverse, that is @code{pascal (@var{n}, 1) ^ 2 == eye (@var{n})}. ! ## If @code{@var{t} = -1}, return its absolute value. This is the ! ## standard Pascal triangle as a lower-triangular matrix. ! ## If @code{@var{t} = 2}, return a transposed and permuted version of ! ## @code{pascal (@var{n}, 1)}, which is the cube-root of the identity ! ## matrix. That is @code{pascal (@var{n}, 2) ^ 3 == eye (@var{n})}. ## ! ## @seealso{hankel, vander, sylvester_matrix, hilb, invhilb, toeplitz ! ## hadamard, wilkinson, compan, rosser} ## @end deftypefn ## Author: Peter Ekberg --- 20,36 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} pascal (@var{n}) ## @deftypefnx {Function File} {} pascal (@var{n}, @var{t}) ! ## Return the Pascal matrix of order @var{n} if @code{@var{t} = 0}. @var{t} ! ## defaults to 0. Return the pseudo-lower triangular Cholesky@tie{}factor of ! ## the Pascal matrix if @code{@var{t} = 1} (The sign of some columns may be ! ## negative). This matrix is its own inverse, that is @code{pascal (@var{n}, ! ## 1) ^ 2 == eye (@var{n})}. If @code{@var{t} = -1}, return the true ! ## Cholesky@tie{}factor with strictly positive values on the diagonal. If ! ## @code{@var{t} = 2}, return a transposed and permuted version of @code{pascal ! ## (@var{n}, 1)}, which is the cube root of the identity matrix. That is, ! ## @code{pascal (@var{n}, 2) ^ 3 == eye (@var{n})}. ## ! ## @seealso{chol} ## @end deftypefn ## Author: Peter Ekberg *************** *** 52,58 **** endif if (t < -1 || t > 2) ! error ("pascal: expecting t to be -1, 0, 1, or 2, found %d", t); endif retval = zeros (n); --- 51,57 ---- endif if (t < -1 || t > 2) ! error ("pascal: expecting T to be -1, 0, 1, or 2, found %d", t); endif retval = zeros (n); diff -cNr octave-3.4.0/scripts/special-matrix/rosser.m octave-3.4.1/scripts/special-matrix/rosser.m *** octave-3.4.0/scripts/special-matrix/rosser.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/special-matrix/rosser.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 21,28 **** ## Return the Rosser matrix. This is a difficult test case used to evaluate ## eigenvalue algorithms. ## ! ## @seealso{hankel, vander, sylvester_matrix, hilb, invhilb, toeplitz ! ## hadamard, wilkinson, compan, pascal} ## @end deftypefn ## Author: Peter Ekberg --- 21,27 ---- ## Return the Rosser matrix. This is a difficult test case used to evaluate ## eigenvalue algorithms. ## ! ## @seealso{wilkinson, eig} ## @end deftypefn ## Author: Peter Ekberg *************** *** 42,47 **** --- 41,47 ---- -52, -43, 49, 44, -599, 411, 208, 208; -49, -8, 8, 59, 208, 208, 99, -911; 29, -44, 52, -23, 208, 208, -911, 99]; + endfunction %!assert (size(rosser()), [8,8]) diff -cNr octave-3.4.0/scripts/special-matrix/sylvester_matrix.m octave-3.4.1/scripts/special-matrix/sylvester_matrix.m *** octave-3.4.0/scripts/special-matrix/sylvester_matrix.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/special-matrix/sylvester_matrix.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 23,31 **** ## $n = 2^k$. ## @end tex ## @ifnottex ! ## n = 2^k. ## @end ifnottex ! ## @seealso{hankel, vander, hilb, invhilb, toeplitz} ## @end deftypefn ## Author: jwe --- 23,32 ---- ## $n = 2^k$. ## @end tex ## @ifnottex ! ## n = 2^@var{k}. ## @end ifnottex ! ## ! ## @seealso{toeplitz, hankel} ## @end deftypefn ## Author: jwe diff -cNr octave-3.4.0/scripts/special-matrix/toeplitz.m octave-3.4.1/scripts/special-matrix/toeplitz.m *** octave-3.4.0/scripts/special-matrix/toeplitz.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/special-matrix/toeplitz.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 20,28 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} toeplitz (@var{c}) ## @deftypefnx {Function File} {} toeplitz (@var{c}, @var{r}) ! ## Return the Toeplitz matrix constructed given the first column @var{c}, ! ## and (optionally) the first row @var{r}. If the first element of @var{c} ! ## is not the same as the first element of @var{r}, the first element of ## @var{c} is used. If the second argument is omitted, the first row is ## taken to be the same as the first column. ## --- 20,28 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} toeplitz (@var{c}) ## @deftypefnx {Function File} {} toeplitz (@var{c}, @var{r}) ! ## Return the Toeplitz matrix constructed from the first column @var{c}, ! ## and (optionally) the first row @var{r}. If the first element of @var{r} ! ## is not the same as the first element of @var{c}, the first element of ## @var{c} is used. If the second argument is omitted, the first row is ## taken to be the same as the first column. ## *************** *** 51,57 **** ## @end example ## ## @end ifnottex ! ## @seealso{hankel, vander, sylvester_matrix, hilb, invhilb} ## @end deftypefn ## Author: jwe && jh --- 51,57 ---- ## @end example ## ## @end ifnottex ! ## @seealso{hankel} ## @end deftypefn ## Author: jwe && jh diff -cNr octave-3.4.0/scripts/special-matrix/vander.m octave-3.4.1/scripts/special-matrix/vander.m *** octave-3.4.0/scripts/special-matrix/vander.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/special-matrix/vander.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 47,53 **** ## @end example ## ## @end ifnottex ! ## @seealso{hankel, sylvester_matrix, hilb, invhilb, toeplitz} ## @end deftypefn ## Author: jwe --- 47,53 ---- ## @end example ## ## @end ifnottex ! ## @seealso{polyfit} ## @end deftypefn ## Author: jwe diff -cNr octave-3.4.0/scripts/special-matrix/wilkinson.m octave-3.4.1/scripts/special-matrix/wilkinson.m *** octave-3.4.0/scripts/special-matrix/wilkinson.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/special-matrix/wilkinson.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 20,29 **** ## @deftypefn {Function File} {} wilkinson (@var{n}) ## Return the Wilkinson matrix of order @var{n}. Wilkinson matrices are ## symmetric and tridiagonal with pairs of nearly, but not exactly, equal ! ## eigenvalues. ## ! ## @seealso{hankel, vander, sylvester_matrix, hilb, invhilb, toeplitz ! ## hadamard, rosser, compan, pascal} ## @end deftypefn ## Author: Peter Ekberg --- 20,29 ---- ## @deftypefn {Function File} {} wilkinson (@var{n}) ## Return the Wilkinson matrix of order @var{n}. Wilkinson matrices are ## symmetric and tridiagonal with pairs of nearly, but not exactly, equal ! ## eigenvalues. They are useful in testing the behavior and performance ! ## of eigenvalue solvers. ## ! ## @seealso{rosser, eig} ## @end deftypefn ## Author: Peter Ekberg *************** *** 35,42 **** print_usage (); endif ! if (! (isscalar (n) && (n == fix (n)) && n > 0)) ! error ("wilkinson: N must be an integer greater than 0"); endif side = ones (n-1, 1); --- 35,42 ---- print_usage (); endif ! if (! (isscalar (n) && (n == fix (n)) && n >= 0)) ! error ("wilkinson: N must be a non-negative integer"); endif side = ones (n-1, 1); *************** *** 45,53 **** endfunction ! %!assert (wilkinson(1), []) %!assert (wilkinson(2), [0.5,1;1,0.5]) %!assert (wilkinson(3), [1,1,0;1,0,1;0,1,1]) %!assert (wilkinson(4), [1.5,1,0,0;1,0.5,1,0;0,1,0.5,1;0,0,1,1.5]) %!error (wilkinson()) ! %!error (wilkinson(1,2)) \ No newline at end of file --- 45,54 ---- endfunction ! %!assert (wilkinson(0), []) ! %!assert (wilkinson(1), 0) %!assert (wilkinson(2), [0.5,1;1,0.5]) %!assert (wilkinson(3), [1,1,0;1,0,1;0,1,1]) %!assert (wilkinson(4), [1.5,1,0,0;1,0.5,1,0;0,1,0.5,1;0,0,1,1.5]) %!error (wilkinson()) ! %!error (wilkinson(1,2)) diff -cNr octave-3.4.0/scripts/startup/module.mk octave-3.4.1/scripts/startup/module.mk *** octave-3.4.0/scripts/startup/module.mk 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/startup/module.mk 2011-06-15 11:11:27.000000000 -0400 *************** *** 3,26 **** startup_FCN_FILES = \ startup/__finish__.m SYSTEM_STARTUP_FILE_SRC = startup/main-rcfile SYSTEM_INPUTRC_FILE_SRC = startup/inputrc - LOCAL_STARTUP_FILE_SRC = startup/local-rcfile - STARTUP_FILE_SRC = \ $(SYSTEM_STARTUP_FILE_SRC) \ ! $(SYSTEM_INPUTRC_FILE_SRC) \ ! $(LOCAL_STARTUP_FILE_SRC) FCN_FILES += \ ! $(startup_FCN_FILES) \ ! $(SYSTEM_STARTUP_FILE_SRC) \ ! $(LOCAL_STARTUP_FILE_SRC) EXTRA_DIST += \ ! $(SYSTEM_INPUTRC_FILE_SRC) PKG_ADD_FILES += startup/PKG_ADD --- 3,24 ---- startup_FCN_FILES = \ startup/__finish__.m + LOCAL_STARTUP_FILE_SRC = startup/local-rcfile + SYSTEM_STARTUP_FILE_SRC = startup/main-rcfile SYSTEM_INPUTRC_FILE_SRC = startup/inputrc STARTUP_FILE_SRC = \ + $(LOCAL_STARTUP_FILE_SRC) \ $(SYSTEM_STARTUP_FILE_SRC) \ ! $(SYSTEM_INPUTRC_FILE_SRC) FCN_FILES += \ ! $(startup_FCN_FILES) EXTRA_DIST += \ ! $(STARTUP_FILE_SRC) PKG_ADD_FILES += startup/PKG_ADD diff -cNr octave-3.4.0/scripts/statistics/base/cor.m octave-3.4.1/scripts/statistics/base/cor.m *** octave-3.4.0/scripts/statistics/base/cor.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/base/cor.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 25,31 **** ## @seealso{corrcoef} ## @end deftypefn ! function retval = cor (x, y = []) if (nargin < 1 || nargin > 2) print_usage (); --- 25,31 ---- ## @seealso{corrcoef} ## @end deftypefn ! function retval = cor (x, y = x) if (nargin < 1 || nargin > 2) print_usage (); *************** *** 35,37 **** --- 35,46 ---- endfunction + %!test + %! x = rand (10, 2); + %! assert (cor (x), corrcoef (x), 5*eps); + %! assert (cor (x(:,1), x(:,2)) == corrcoef (x(:,1), x(:,2))); + + %% Test input validation + %!error corrcoef (); + %!error corrcoef (1, 2, 3); + diff -cNr octave-3.4.0/scripts/statistics/base/kurtosis.m octave-3.4.1/scripts/statistics/base/kurtosis.m *** octave-3.4.0/scripts/statistics/base/kurtosis.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/base/kurtosis.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 41,47 **** ## stdnormal distribution and is sometimes referred to as "excess kurtosis". ## To calculate kurtosis without the normalization factor of @math{-3} use ## @code{moment (@var{x}, 4, 'c') / std (@var{x})^4}. ! ## @seealso{var,skewness,moment} ## @end deftypefn ## Author: KH --- 41,47 ---- ## stdnormal distribution and is sometimes referred to as "excess kurtosis". ## To calculate kurtosis without the normalization factor of @math{-3} use ## @code{moment (@var{x}, 4, 'c') / std (@var{x})^4}. ! ## @seealso{var, skewness, moment} ## @end deftypefn ## Author: KH diff -cNr octave-3.4.0/scripts/statistics/base/mean.m octave-3.4.1/scripts/statistics/base/mean.m *** octave-3.4.0/scripts/statistics/base/mean.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/base/mean.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 53,59 **** ## ## Both @var{dim} and @var{opt} are optional. If both are supplied, ## either may appear first. ! ## @seealso{median,mode} ## @end deftypefn ## Author: KH --- 53,59 ---- ## ## Both @var{dim} and @var{opt} are optional. If both are supplied, ## either may appear first. ! ## @seealso{median, mode} ## @end deftypefn ## Author: KH *************** *** 65,71 **** print_usage (); endif ! if (!isnumeric (x)) error ("mean: X must be a numeric vector or matrix"); endif --- 65,71 ---- print_usage (); endif ! if (! (isnumeric (x) || islogical (x))) error ("mean: X must be a numeric vector or matrix"); endif *************** *** 139,150 **** %!assert(mean ([2 8], 'g'), 4); %!assert(mean ([4 4 2], 'h'), 3); %% Test input validation %!error mean (); %!error mean (1, 2, 3, 4); %!error mean ({1:5}); - %!error mean (true(1, 5)); %!error mean (1, 2, 3); %!error mean (1, ones(2,2)); %!error mean (1, 1.5); --- 139,150 ---- %!assert(mean ([2 8], 'g'), 4); %!assert(mean ([4 4 2], 'h'), 3); + %!assert(mean (logical ([1 0 1 1])), 0.75); %% Test input validation %!error mean (); %!error mean (1, 2, 3, 4); %!error mean ({1:5}); %!error mean (1, 2, 3); %!error mean (1, ones(2,2)); %!error mean (1, 1.5); diff -cNr octave-3.4.0/scripts/statistics/base/meansq.m octave-3.4.1/scripts/statistics/base/meansq.m *** octave-3.4.0/scripts/statistics/base/meansq.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/base/meansq.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 40,46 **** ## of each column. ## ## If the optional argument @var{dim} is given, operate along this dimension. ! ## @seealso{var,std,moment} ## @end deftypefn ## Author: KH --- 40,46 ---- ## of each column. ## ## If the optional argument @var{dim} is given, operate along this dimension. ! ## @seealso{var, std, moment} ## @end deftypefn ## Author: KH diff -cNr octave-3.4.0/scripts/statistics/base/median.m octave-3.4.1/scripts/statistics/base/median.m *** octave-3.4.0/scripts/statistics/base/median.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/base/median.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 44,50 **** ## If @var{x} is a matrix, compute the median value for each ## column and return them in a row vector. If the optional @var{dim} ## argument is given, operate along this dimension. ! ## @seealso{mean,mode} ## @end deftypefn ## Author: jwe --- 44,50 ---- ## If @var{x} is a matrix, compute the median value for each ## column and return them in a row vector. If the optional @var{dim} ## argument is given, operate along this dimension. ! ## @seealso{mean, mode} ## @end deftypefn ## Author: jwe diff -cNr octave-3.4.0/scripts/statistics/base/mode.m octave-3.4.1/scripts/statistics/base/mode.m *** octave-3.4.0/scripts/statistics/base/mode.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/base/mode.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 30,36 **** ## The return variable @var{f} is the number of occurrences of the mode in ## in the dataset. The cell array @var{c} contains all of the elements ## with the maximum frequency. ! ## @seealso{mean,median} ## @end deftypefn function [m, f, c] = mode (x, dim) --- 30,36 ---- ## The return variable @var{f} is the number of occurrences of the mode in ## in the dataset. The cell array @var{c} contains all of the elements ## with the maximum frequency. ! ## @seealso{mean, median} ## @end deftypefn function [m, f, c] = mode (x, dim) diff -cNr octave-3.4.0/scripts/statistics/base/module.mk octave-3.4.1/scripts/statistics/base/module.mk *** octave-3.4.0/scripts/statistics/base/module.mk 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/base/module.mk 2011-06-15 11:13:48.000000000 -0400 *************** *** 28,33 **** --- 28,34 ---- statistics/base/range.m \ statistics/base/ranks.m \ statistics/base/run_count.m \ + statistics/base/runlength.m \ statistics/base/skewness.m \ statistics/base/spearman.m \ statistics/base/statistics.m \ diff -cNr octave-3.4.0/scripts/statistics/base/moment.m octave-3.4.1/scripts/statistics/base/moment.m *** octave-3.4.0/scripts/statistics/base/moment.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/base/moment.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 99,105 **** ## If the optional argument @var{dim} is given, operate along this dimension. ## ## If both @var{type} and @var{dim} are given they may appear in any order. ! ## @seealso{var,skewness,kurtosis} ## @end deftypefn ## Can easily be made to work for continuous distributions (using quad) --- 99,105 ---- ## If the optional argument @var{dim} is given, operate along this dimension. ## ## If both @var{type} and @var{dim} are given they may appear in any order. ! ## @seealso{var, skewness, kurtosis} ## @end deftypefn ## Can easily be made to work for continuous distributions (using quad) diff -cNr octave-3.4.0/scripts/statistics/base/ols.m octave-3.4.1/scripts/statistics/base/ols.m *** octave-3.4.0/scripts/statistics/base/ols.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/base/ols.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 101,109 **** endif z = x' * x; ! r = rank (z); ! if (r == nc) beta = inv (z) * x' * y; else beta = pinv (x) * y; --- 101,109 ---- endif z = x' * x; ! rnk = rank (z); ! if (rnk == nc) beta = inv (z) * x' * y; else beta = pinv (x) * y; *************** *** 113,119 **** r = y - x * beta; endif if (isargout (2)) ! sigma = r' * r / (nr - r); endif endfunction --- 113,119 ---- r = y - x * beta; endif if (isargout (2)) ! sigma = r' * r / (nr - rnk); endif endfunction diff -cNr octave-3.4.0/scripts/statistics/base/prctile.m octave-3.4.1/scripts/statistics/base/prctile.m *** octave-3.4.0/scripts/statistics/base/prctile.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/base/prctile.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 17,25 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {@var{y} =} prctile (@var{x}, @var{p}) ## @deftypefnx {Function File} {@var{q} =} prctile (@var{x}, @var{p}, @var{dim}) ! ## For a sample @var{x}, compute the quantiles, @var{y}, corresponding ## to the cumulative probability values, @var{p}, in percent. All non-numeric ## values (NaNs) of @var{x} are ignored. ## --- 17,26 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {@var{q} =} prctile (@var{x}) ! ## @deftypefnx {Function File} {@var{q} =} prctile (@var{x}, @var{p}) ## @deftypefnx {Function File} {@var{q} =} prctile (@var{x}, @var{p}, @var{dim}) ! ## For a sample @var{x}, compute the quantiles, @var{q}, corresponding ## to the cumulative probability values, @var{p}, in percent. All non-numeric ## values (NaNs) of @var{x} are ignored. ## *************** *** 27,36 **** ## return them in a matrix, such that the i-th row of @var{y} contains the ## @var{p}(i)th percentiles of each column of @var{x}. ## ## The optional argument @var{dim} determines the dimension along which ## the percentiles are calculated. If @var{dim} is omitted, and @var{x} is ## a vector or matrix, it defaults to 1 (column-wise quantiles). When ! ## @var{x} is an N-d array, @var{dim} defaults to the first non-singleton ## dimension. ## @seealso{quantile} ## @end deftypefn --- 28,38 ---- ## return them in a matrix, such that the i-th row of @var{y} contains the ## @var{p}(i)th percentiles of each column of @var{x}. ## + ## If @var{p} is unspecified, return the quantiles for @code{[0 25 50 75 100]}. ## The optional argument @var{dim} determines the dimension along which ## the percentiles are calculated. If @var{dim} is omitted, and @var{x} is ## a vector or matrix, it defaults to 1 (column-wise quantiles). When ! ## @var{x} is an N-D array, @var{dim} defaults to the first non-singleton ## dimension. ## @seealso{quantile} ## @end deftypefn diff -cNr octave-3.4.0/scripts/statistics/base/qqplot.m octave-3.4.1/scripts/statistics/base/qqplot.m *** octave-3.4.0/scripts/statistics/base/qqplot.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/base/qqplot.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 20,25 **** --- 20,26 ---- ## @deftypefn {Function File} {[@var{q}, @var{s}] =} qqplot (@var{x}) ## @deftypefnx {Function File} {[@var{q}, @var{s}] =} qqplot (@var{x}, @var{dist}) ## @deftypefnx {Function File} {[@var{q}, @var{s}] =} qqplot (@var{x}, @var{dist}, @var{params}) + ## @deftypefnx {Function File} {} qqplot (@dots{}) ## Perform a QQ-plot (quantile plot). ## ## If F is the CDF of the distribution @var{dist} with parameters *************** *** 37,43 **** ## distribution on [2,4] and @var{x}, use ## ## @example ! ## qqplot (x, "uniform", 2, 4) ## @end example ## ## @noindent --- 38,44 ---- ## distribution on [2,4] and @var{x}, use ## ## @example ! ## qqplot (x, "unif", 2, 4) ## @end example ## ## @noindent diff -cNr octave-3.4.0/scripts/statistics/base/quantile.m octave-3.4.1/scripts/statistics/base/quantile.m *** octave-3.4.0/scripts/statistics/base/quantile.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/base/quantile.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 31,37 **** ## The optional argument @var{dim} determines the dimension along which ## the quantiles are calculated. If @var{dim} is omitted, and @var{x} is ## a vector or matrix, it defaults to 1 (column-wise quantiles). If ! ## @var{x} is an N-d array, @var{dim} defaults to the first non-singleton ## dimension. ## ## The methods available to calculate sample quantiles are the nine methods --- 31,37 ---- ## The optional argument @var{dim} determines the dimension along which ## the quantiles are calculated. If @var{dim} is omitted, and @var{x} is ## a vector or matrix, it defaults to 1 (column-wise quantiles). If ! ## @var{x} is an N-D array, @var{dim} defaults to the first non-singleton ## dimension. ## ## The methods available to calculate sample quantiles are the nine methods *************** *** 87,92 **** --- 87,102 ---- ## @item R: A Language and Environment for Statistical Computing; ## @url{http://cran.r-project.org/doc/manuals/fullrefman.pdf}. ## @end itemize + ## + ## Examples: + ## + ## @example + ## @group + ## x = randi (1000, [10, 1]); # Create random empirical data in range 1-1000 + ## q = quantile (x, [0, 1]); # Return minimum, maximum of empirical distribution + ## q = quantile (x, [0.25 0.5 0.75]); # Return quartiles of empirical distribution + ## @end group + ## @end example ## @seealso{prctile} ## @end deftypefn *************** *** 373,379 **** p = kron (p, m+0.25) + 0.375; otherwise ! error ("quantile: Unknown method, '%d'", method); endswitch ## Duplicate single values. --- 383,389 ---- p = kron (p, m+0.25) + 0.375; otherwise ! error ("quantile: Unknown METHOD, '%d'", method); endswitch ## Duplicate single values. diff -cNr octave-3.4.0/scripts/statistics/base/ranks.m octave-3.4.1/scripts/statistics/base/ranks.m *** octave-3.4.0/scripts/statistics/base/ranks.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/base/ranks.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 21,27 **** ## Return the ranks of @var{x} along the first non-singleton dimension ## adjusted for ties. If the optional argument @var{dim} is ## given, operate along this dimension. ! ## @seealso{spearman,kendall} ## @end deftypefn ## Author: KH --- 21,27 ---- ## Return the ranks of @var{x} along the first non-singleton dimension ## adjusted for ties. If the optional argument @var{dim} is ## given, operate along this dimension. ! ## @seealso{spearman, kendall} ## @end deftypefn ## Author: KH diff -cNr octave-3.4.0/scripts/statistics/base/runlength.m octave-3.4.1/scripts/statistics/base/runlength.m *** octave-3.4.0/scripts/statistics/base/runlength.m 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/scripts/statistics/base/runlength.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 0 **** --- 1,63 ---- + ## Copyright (C) 2005-2011 Paul Kienzle + ## + ## This file is part of Octave. + ## + ## Octave 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. + ## + ## Octave 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 Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {[count, value] =} runlength (@var{x}) + ## Find the lengths of all sequences of common values. Return the + ## vector of lengths and the value that was repeated. + ## + ## @example + ## @group + ## runlength ([2, 2, 0, 4, 4, 4, 0, 1, 1, 1, 1]) + ## @result{} [2, 1, 3, 1, 4] + ## @end group + ## @end example + ## @end deftypefn + + function [count, value] = runlength (x) + if (nargin != 1) + print_usage (); + endif + + if (!isnumeric (x) || !isvector (x)) + error ("runlength: X must be a numeric vector"); + endif + + if (iscolumn (x)) + x = x.'; + endif + + idx = [find(x(1:end-1) != x(2:end)), length(x)]; + count = diff ([0 idx]); + if (nargout == 2) + value = x(idx); + endif + endfunction + + %!assert (runlength([2 2 0 4 4 4 0 1 1 1 1]), [2 1 3 1 4]); + %!assert (runlength([2 2 0 4 4 4 0 1 1 1 1]'), [2 1 3 1 4]); + %!test + %! [c, v] = runlength ([2 2 0 4 4 4 0 1 1 1 1]); + %! assert (c, [2 1 3 1 4]); + %! assert (v, [2 0 4 0 1]); + + %% Test input validation + %!error runlength () + %!error runlength (1, 2) + %!error runlength (true(1,2)) + %!error runlength (ones(2,2)) diff -cNr octave-3.4.0/scripts/statistics/base/skewness.m octave-3.4.1/scripts/statistics/base/skewness.m *** octave-3.4.0/scripts/statistics/base/skewness.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/base/skewness.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 38,44 **** ## If @var{x} is a matrix, return the skewness along the ## first non-singleton dimension of the matrix. If the optional ## @var{dim} argument is given, operate along this dimension. ! ## @seealso{var,kurtosis,moment} ## @end deftypefn ## Author: KH --- 38,44 ---- ## If @var{x} is a matrix, return the skewness along the ## first non-singleton dimension of the matrix. If the optional ## @var{dim} argument is given, operate along this dimension. ! ## @seealso{var, kurtosis, moment} ## @end deftypefn ## Author: KH diff -cNr octave-3.4.0/scripts/statistics/base/statistics.m octave-3.4.1/scripts/statistics/base/statistics.m *** octave-3.4.0/scripts/statistics/base/statistics.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/base/statistics.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 26,32 **** ## If @var{x} is a matrix, calculate statistics over the first ## non-singleton dimension. ## If the optional argument @var{dim} is given, operate along this dimension. ! ## @seealso{min,max,median,mean,std,skewness,kurtosis} ## @end deftypefn ## Author: KH --- 26,32 ---- ## If @var{x} is a matrix, calculate statistics over the first ## non-singleton dimension. ## If the optional argument @var{dim} is given, operate along this dimension. ! ## @seealso{min, max, median, mean, std, skewness, kurtosis} ## @end deftypefn ## Author: KH diff -cNr octave-3.4.0/scripts/statistics/base/var.m octave-3.4.1/scripts/statistics/base/var.m *** octave-3.4.0/scripts/statistics/base/var.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/base/var.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 52,58 **** ## @end table ## ## If the optional argument @var{dim} is given, operate along this dimension. ! ## @seealso{cov,std,skewness,kurtosis,moment} ## @end deftypefn ## Author: KH --- 52,58 ---- ## @end table ## ## If the optional argument @var{dim} is given, operate along this dimension. ! ## @seealso{cov, std, skewness, kurtosis, moment} ## @end deftypefn ## Author: KH diff -cNr octave-3.4.0/scripts/statistics/distributions/exppdf.m octave-3.4.1/scripts/statistics/distributions/exppdf.m *** octave-3.4.0/scripts/statistics/distributions/exppdf.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/distributions/exppdf.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 50,56 **** pdf(k) = NaN; endif ! k = find ((x > 0) & (x < Inf) & (lambda > 0)); if (any (k)) if isscalar (lambda) pdf(k) = exp (- x(k) ./ lambda) ./ lambda; --- 50,56 ---- pdf(k) = NaN; endif ! k = find ((x >= 0) & (x < Inf) & (lambda > 0)); if (any (k)) if isscalar (lambda) pdf(k) = exp (- x(k) ./ lambda) ./ lambda; diff -cNr octave-3.4.0/scripts/statistics/distributions/frnd.m octave-3.4.1/scripts/statistics/distributions/frnd.m *** octave-3.4.0/scripts/statistics/distributions/frnd.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/distributions/frnd.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 71,77 **** error ("frnd: M and N must be scalar or of size SZ"); endif elseif (nargin == 2) ! sz = size(a); else print_usage (); endif --- 71,77 ---- error ("frnd: M and N must be scalar or of size SZ"); endif elseif (nargin == 2) ! sz = size(m); else print_usage (); endif diff -cNr octave-3.4.0/scripts/statistics/distributions/gampdf.m octave-3.4.1/scripts/statistics/distributions/gampdf.m *** octave-3.4.0/scripts/statistics/distributions/gampdf.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/distributions/gampdf.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 48,54 **** pdf (k) = NaN; endif ! k = find ((x > 0) & (a > 0) & (a <= 1) & (b > 0)); if (any (k)) if (isscalar(a) && isscalar(b)) pdf(k) = (x(k) .^ (a - 1)) ... --- 48,54 ---- pdf (k) = NaN; endif ! k = find ((x >= 0) & (a > 0) & (a <= 1) & (b > 0)); if (any (k)) if (isscalar(a) && isscalar(b)) pdf(k) = (x(k) .^ (a - 1)) ... *************** *** 59,65 **** endif endif ! k = find ((x > 0) & (a > 1) & (b > 0)); if (any (k)) if (isscalar(a) && isscalar(b)) pdf(k) = exp (- a .* log (b) + (a-1) .* log (x(k)) --- 59,65 ---- endif endif ! k = find ((x >= 0) & (a > 1) & (b > 0)); if (any (k)) if (isscalar(a) && isscalar(b)) pdf(k) = exp (- a .* log (b) + (a-1) .* log (x(k)) diff -cNr octave-3.4.0/scripts/statistics/distributions/geornd.m octave-3.4.1/scripts/statistics/distributions/geornd.m *** octave-3.4.0/scripts/statistics/distributions/geornd.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/distributions/geornd.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 60,66 **** error ("geornd: n must be scalar or of size SZ"); endif elseif (nargin == 1) ! sz = size(n); elseif (nargin != 1) print_usage (); endif --- 60,66 ---- error ("geornd: n must be scalar or of size SZ"); endif elseif (nargin == 1) ! sz = size(p); elseif (nargin != 1) print_usage (); endif diff -cNr octave-3.4.0/scripts/statistics/distributions/unidcdf.m octave-3.4.1/scripts/statistics/distributions/unidcdf.m *** octave-3.4.0/scripts/statistics/distributions/unidcdf.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/distributions/unidcdf.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 19,26 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} unidcdf (@var{x}, @var{v}) ## For each element of @var{x}, compute the cumulative distribution ! ## function (CDF) at @var{x} of a univariate discrete distribution which ## assumes the values in @var{v} with equal probability. ## @end deftypefn function cdf = unidcdf (x, v) --- 19,28 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} unidcdf (@var{x}, @var{v}) ## For each element of @var{x}, compute the cumulative distribution ! ## function (CDF) at @var{x} of a discrete uniform distribution which ## assumes the values in @var{v} with equal probability. + ## If @var{v} is a scalar then @code{1/@var{v}} is the probability of a + ## single element. ## @end deftypefn function cdf = unidcdf (x, v) *************** *** 36,39 **** --- 38,42 ---- endif cdf = discrete_cdf (x, v, ones(size(v))); + endfunction diff -cNr octave-3.4.0/scripts/statistics/distributions/unidinv.m octave-3.4.1/scripts/statistics/distributions/unidinv.m *** octave-3.4.0/scripts/statistics/distributions/unidinv.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/distributions/unidinv.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 19,26 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} unidinv (@var{x}, @var{v}) ## For each component of @var{x}, compute the quantile (the inverse of ! ## the CDF) at @var{x} of the univariate discrete distribution which assumes the ! ## values in @var{v} with equal probability ## @end deftypefn function inv = unidinv (x, v) --- 19,28 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} unidinv (@var{x}, @var{v}) ## For each component of @var{x}, compute the quantile (the inverse of ! ## the CDF) at @var{x} of the discrete uniform distribution which assumes the ! ## values in @var{v} with equal probability. ! ## If @var{v} is a scalar then @code{1/@var{v}} is the probability of a ! ## single element. ## @end deftypefn function inv = unidinv (x, v) diff -cNr octave-3.4.0/scripts/statistics/distributions/unidpdf.m octave-3.4.1/scripts/statistics/distributions/unidpdf.m *** octave-3.4.0/scripts/statistics/distributions/unidpdf.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/distributions/unidpdf.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 19,26 **** ## -*- texinfo -*- ## @deftypefn {Function File} {} unidpdf (@var{x}, @var{v}) ## For each element of @var{x}, compute the probability density function ! ## (PDF) at @var{x} of a univariate discrete distribution which assumes ## the values in @var{v} with equal probability. ## @end deftypefn function pdf = unidpdf (x, v) --- 19,28 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {} unidpdf (@var{x}, @var{v}) ## For each element of @var{x}, compute the probability density function ! ## (PDF) at @var{x} of a discrete uniform distribution which assumes ## the values in @var{v} with equal probability. + ## If @var{v} is a scalar then @code{1/@var{v}} is the probability of a + ## single element. ## @end deftypefn function pdf = unidpdf (x, v) diff -cNr octave-3.4.0/scripts/statistics/distributions/unidrnd.m octave-3.4.1/scripts/statistics/distributions/unidrnd.m *** octave-3.4.0/scripts/statistics/distributions/unidrnd.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/distributions/unidrnd.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 20,28 **** ## @deftypefn {Function File} {} unidrnd (@var{mx}); ## @deftypefnx {Function File} {} unidrnd (@var{mx}, @var{v}); ## @deftypefnx {Function File} {} unidrnd (@var{mx}, @var{m}, @var{n}, @dots{}); ! ## Return random values from discrete uniform distribution, with maximum ! ## value(s) given by the integer @var{mx}, which may be a scalar or ! ## multi-dimensional array. ## ## If @var{mx} is a scalar, the size of the result is specified by ## the vector @var{v}, or by the optional arguments @var{m}, @var{n}, --- 20,28 ---- ## @deftypefn {Function File} {} unidrnd (@var{mx}); ## @deftypefnx {Function File} {} unidrnd (@var{mx}, @var{v}); ## @deftypefnx {Function File} {} unidrnd (@var{mx}, @var{m}, @var{n}, @dots{}); ! ## Return random values from a discrete uniform distribution with maximum ! ## value(s) given by the integer @var{mx} (which may be a scalar or ! ## multi-dimensional array). ## ## If @var{mx} is a scalar, the size of the result is specified by ## the vector @var{v}, or by the optional arguments @var{m}, @var{n}, diff -cNr octave-3.4.0/scripts/statistics/distributions/unifpdf.m octave-3.4.1/scripts/statistics/distributions/unifpdf.m *** octave-3.4.0/scripts/statistics/distributions/unifpdf.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/distributions/unifpdf.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 53,59 **** pdf(k) = NaN; endif ! k = find ((x > a) & (x < b)); if (any (k)) if (isscalar (a) && isscalar(b)) pdf(k) = 1 ./ (b - a); --- 53,59 ---- pdf(k) = NaN; endif ! k = find ((x >= a) & (x <= b)); if (any (k)) if (isscalar (a) && isscalar(b)) pdf(k) = 1 ./ (b - a); diff -cNr octave-3.4.0/scripts/statistics/distributions/wblinv.m octave-3.4.1/scripts/statistics/distributions/wblinv.m *** octave-3.4.0/scripts/statistics/distributions/wblinv.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/distributions/wblinv.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 53,59 **** k = find ((x == 0) & ok); if (any (k)) ! inv(k) = -Inf; endif k = find ((x > 0) & (x < 1) & ok); --- 53,59 ---- k = find ((x == 0) & ok); if (any (k)) ! inv(k) = 0; endif k = find ((x > 0) & (x < 1) & ok); diff -cNr octave-3.4.0/scripts/statistics/distributions/wblpdf.m octave-3.4.1/scripts/statistics/distributions/wblpdf.m *** octave-3.4.0/scripts/statistics/distributions/wblpdf.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/distributions/wblpdf.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 62,73 **** pdf = NaN (size (x)); ok = ((scale > 0) & (scale < Inf) & (shape > 0) & (shape < Inf)); ! k = find ((x > -Inf) & (x <= 0) & ok); if (any (k)) pdf(k) = 0; endif ! k = find ((x > 0) & (x < Inf) & ok); if (any (k)) if (isscalar (scale) && isscalar (shape)) pdf(k) = (shape .* (scale .^ -shape) --- 62,73 ---- pdf = NaN (size (x)); ok = ((scale > 0) & (scale < Inf) & (shape > 0) & (shape < Inf)); ! k = find ((x > -Inf) & (x < 0) & ok); if (any (k)) pdf(k) = 0; endif ! k = find ((x >= 0) & (x < Inf) & ok); if (any (k)) if (isscalar (scale) && isscalar (shape)) pdf(k) = (shape .* (scale .^ -shape) diff -cNr octave-3.4.0/scripts/statistics/models/logistic_regression_derivatives.m octave-3.4.1/scripts/statistics/models/logistic_regression_derivatives.m *** octave-3.4.0/scripts/statistics/models/logistic_regression_derivatives.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/models/logistic_regression_derivatives.m 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,45 **** - ## Copyright (C) 1995-2011 Kurt Hornik - ## - ## This file is part of Octave. - ## - ## Octave 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. - ## - ## Octave 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 Octave; see the file COPYING. If not, see - ## . - - ## -*- texinfo -*- - ## @deftypefn {Function File} {[@var{dl}, @var{d2l}] =} logistic_regression_derivatives (@var{x}, @var{z}, @var{z1}, @var{g}, @var{g1}, @var{p}) - ## Called by logistic_regression. Calculates derivates of the - ## log-likelihood for ordinal logistic regression model. - ## @end deftypefn - - ## Author: Gordon K. Smyth - ## Adapted-By: KH - ## Description: Derivates of log-likelihood in logistic regression - - function [dl, d2l] = logistic_regression_derivatives (x, z, z1, g, g1, p) - - if (nargin != 6) - print_usage (); - endif - - ## first derivative - v = g .* (1 - g) ./ p; v1 = g1 .* (1 - g1) ./ p; - dlogp = [(diag (v) * z - diag (v1) * z1), (diag (v - v1) * x)]; - dl = sum (dlogp)'; - - ## second derivative - w = v .* (1 - 2 * g); w1 = v1 .* (1 - 2 * g1); - d2l = [z, x]' * diag (w) * [z, x] - [z1, x]' * diag (w1) * [z1, x] ... - - dlogp' * dlogp; - - endfunction --- 0 ---- diff -cNr octave-3.4.0/scripts/statistics/models/logistic_regression_likelihood.m octave-3.4.1/scripts/statistics/models/logistic_regression_likelihood.m *** octave-3.4.0/scripts/statistics/models/logistic_regression_likelihood.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/models/logistic_regression_likelihood.m 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,42 **** - ## Copyright (C) 1995-2011 Kurt Hornik - ## - ## This file is part of Octave. - ## - ## Octave 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. - ## - ## Octave 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 Octave; see the file COPYING. If not, see - ## . - - ## -*- texinfo -*- - ## @deftypefn {Function File} {[@var{g}, @var{g1}, @var{p}, @var{dev}] =} logistic_regression_likelihood (@var{y}, @var{x}, @var{beta}, @var{z}, @var{z1}) - ## Calculates likelihood for the ordinal logistic regression model. - ## Called by logistic_regression. - ## @end deftypefn - - ## Author: Gordon K. Smyth - ## Adapted-By: KH - ## Description: Likelihood in logistic regression - - function [g, g1, p, dev] = logistic_regression_likelihood (y, x, beta, z, z1) - - if (nargin != 5) - print_usage (); - endif - - e = exp ([z, x] * beta); e1 = exp ([z1, x] * beta); - g = e ./ (1 + e); g1 = e1 ./ (1 + e1); - g = max (y == max (y), g); g1 = min (y > min(y), g1); - - p = g - g1; - dev = -2 * sum (log (p)); - - endfunction --- 0 ---- diff -cNr octave-3.4.0/scripts/statistics/models/logistic_regression.m octave-3.4.1/scripts/statistics/models/logistic_regression.m *** octave-3.4.0/scripts/statistics/models/logistic_regression.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/models/logistic_regression.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 84,91 **** ## Uses the auxiliary functions logistic_regression_derivatives and ## logistic_regression_likelihood. ! function [theta, beta, dev, dl, d2l, p] ... ! = logistic_regression (y, x, print, theta, beta) ## check input y = round (vec (y)); --- 84,90 ---- ## Uses the auxiliary functions logistic_regression_derivatives and ## logistic_regression_likelihood. ! function [theta, beta, dev, dl, d2l, p] = logistic_regression (y, x, print, theta, beta) ## check input y = round (vec (y)); diff -cNr octave-3.4.0/scripts/statistics/models/module.mk octave-3.4.1/scripts/statistics/models/module.mk *** octave-3.4.0/scripts/statistics/models/module.mk 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/models/module.mk 2011-06-15 11:11:27.000000000 -0400 *************** *** 1,9 **** FCN_FILE_DIRS += statistics/models statistics_models_FCN_FILES = \ statistics/models/logistic_regression.m \ ! statistics/models/logistic_regression_derivatives.m \ ! statistics/models/logistic_regression_likelihood.m FCN_FILES += $(statistics_models_FCN_FILES) --- 1,12 ---- FCN_FILE_DIRS += statistics/models + statistics_models_PRIVATE_FCN_FILES = \ + statistics/models/private/logistic_regression_derivatives.m \ + statistics/models/private/logistic_regression_likelihood.m + statistics_models_FCN_FILES = \ statistics/models/logistic_regression.m \ ! $(statistics_models_PRIVATE_FCN_FILES) FCN_FILES += $(statistics_models_FCN_FILES) diff -cNr octave-3.4.0/scripts/statistics/models/private/logistic_regression_derivatives.m octave-3.4.1/scripts/statistics/models/private/logistic_regression_derivatives.m *** octave-3.4.0/scripts/statistics/models/private/logistic_regression_derivatives.m 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/scripts/statistics/models/private/logistic_regression_derivatives.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,47 ---- + ## Copyright (C) 1995-2011 Kurt Hornik + ## + ## This file is part of Octave. + ## + ## Octave 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. + ## + ## Octave 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 Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {[@var{dl}, @var{d2l}] =} logistic_regression_derivatives (@var{x}, @var{z}, @var{z1}, @var{g}, @var{g1}, @var{p}) + ## Calculate derivatives of the log-likelihood for ordinal logistic regression + ## model. + ## Private function called by @code{logistic_regression}. + ## @seealso{logistic_regression} + ## @end deftypefn + + ## Author: Gordon K. Smyth + ## Adapted-By: KH + ## Description: Derivates of log-likelihood in logistic regression + + function [dl, d2l] = logistic_regression_derivatives (x, z, z1, g, g1, p) + + if (nargin != 6) + print_usage (); + endif + + ## first derivative + v = g .* (1 - g) ./ p; v1 = g1 .* (1 - g1) ./ p; + dlogp = [(diag (v) * z - diag (v1) * z1), (diag (v - v1) * x)]; + dl = sum (dlogp)'; + + ## second derivative + w = v .* (1 - 2 * g); w1 = v1 .* (1 - 2 * g1); + d2l = [z, x]' * diag (w) * [z, x] - [z1, x]' * diag (w1) * [z1, x] ... + - dlogp' * dlogp; + + endfunction diff -cNr octave-3.4.0/scripts/statistics/models/private/logistic_regression_likelihood.m octave-3.4.1/scripts/statistics/models/private/logistic_regression_likelihood.m *** octave-3.4.0/scripts/statistics/models/private/logistic_regression_likelihood.m 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/scripts/statistics/models/private/logistic_regression_likelihood.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,43 ---- + ## Copyright (C) 1995-2011 Kurt Hornik + ## + ## This file is part of Octave. + ## + ## Octave 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. + ## + ## Octave 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 Octave; see the file COPYING. If not, see + ## . + + ## -*- texinfo -*- + ## @deftypefn {Function File} {[@var{g}, @var{g1}, @var{p}, @var{dev}] =} logistic_regression_likelihood (@var{y}, @var{x}, @var{beta}, @var{z}, @var{z1}) + ## Calculate the likelihood for the ordinal logistic regression model. + ## Private function called by @code{logistic_regression}. + ## @seealso{logistic_regression} + ## @end deftypefn + + ## Author: Gordon K. Smyth + ## Adapted-By: KH + ## Description: Likelihood in logistic regression + + function [g, g1, p, dev] = logistic_regression_likelihood (y, x, beta, z, z1) + + if (nargin != 5) + print_usage (); + endif + + e = exp ([z, x] * beta); e1 = exp ([z1, x] * beta); + g = e ./ (1 + e); g1 = e1 ./ (1 + e1); + g = max (y == max (y), g); g1 = min (y > min(y), g1); + + p = g - g1; + dev = -2 * sum (log (p)); + + endfunction diff -cNr octave-3.4.0/scripts/statistics/tests/cor_test.m octave-3.4.1/scripts/statistics/tests/cor_test.m *** octave-3.4.0/scripts/statistics/tests/cor_test.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/statistics/tests/cor_test.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 113,119 **** t.dist = "stdnormal"; cdf = stdnormal_cdf (t.stat); else ! error ("cor_test: method `%s' not recognized", method); endif if (strcmp (alt, "!=") || strcmp (alt, "<>")) --- 113,119 ---- t.dist = "stdnormal"; cdf = stdnormal_cdf (t.stat); else ! error ("cor_test: METHOD `%s' not recognized", method); endif if (strcmp (alt, "!=") || strcmp (alt, "<>")) diff -cNr octave-3.4.0/scripts/strings/isstrprop.m octave-3.4.1/scripts/strings/isstrprop.m *** octave-3.4.0/scripts/strings/isstrprop.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/strings/isstrprop.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 43,52 **** ## True for characters that are alphabetic or digits. ## ## @item "lower" ! ## True for lower-case letters. ## ## @item "upper" ! ## True for upper-case letters. ## ## @item "digit" ## True for decimal digits (0-9). --- 43,52 ---- ## True for characters that are alphabetic or digits. ## ## @item "lower" ! ## True for lowercase letters. ## ## @item "upper" ! ## True for uppercase letters. ## ## @item "digit" ## True for decimal digits (0-9). diff -cNr octave-3.4.0/scripts/strings/regexptranslate.m octave-3.4.1/scripts/strings/regexptranslate.m *** octave-3.4.0/scripts/strings/regexptranslate.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/strings/regexptranslate.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 60,67 **** if (ischar (op)) op = tolower (op); if (strcmp ("wildcard", op)) ! y = regexprep (regexprep (regexprep (s, "\\.", "\\."), "\\*", ! ".*"), "\\?", "."); elseif (strcmp ("escape", op)) ch = {'\$', '\.', '\?', '\[', '\]'}; y = s; --- 60,67 ---- if (ischar (op)) op = tolower (op); if (strcmp ("wildcard", op)) ! y = regexprep (regexprep (regexprep (s, '\.', '\.'), '\*', ! '.*'), '\?', '.'); elseif (strcmp ("escape", op)) ch = {'\$', '\.', '\?', '\[', '\]'}; y = s; diff -cNr octave-3.4.0/scripts/strings/strchr.m octave-3.4.1/scripts/strings/strchr.m *** octave-3.4.0/scripts/strings/strchr.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/strings/strchr.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 46,52 **** ## Index the str into a mask of valid values. This is slower than ## it could be because of the +1 issue. f = false (1, 256); ! f(chars + 1) = true; ## Default goes via double -- unnecessarily long. si = uint32 (str); ## in-place --- 46,52 ---- ## Index the str into a mask of valid values. This is slower than ## it could be because of the +1 issue. f = false (1, 256); ! f(uint8(chars)+1) = true; ## Default goes via double -- unnecessarily long. si = uint32 (str); ## in-place diff -cNr octave-3.4.0/scripts/strings/substr.m octave-3.4.1/scripts/strings/substr.m *** octave-3.4.0/scripts/strings/substr.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/strings/substr.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 64,70 **** error ("substr: length = %d out of range", len); endif else ! error ("substr: offset = %d out of range", offset); endif else error ("substr: expecting string argument"); --- 64,70 ---- error ("substr: length = %d out of range", len); endif else ! error ("substr: OFFSET = %d out of range", offset); endif else error ("substr: expecting string argument"); diff -cNr octave-3.4.0/scripts/testfun/assert.m octave-3.4.1/scripts/testfun/assert.m *** octave-3.4.0/scripts/testfun/assert.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/testfun/assert.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 51,57 **** ## @var{expected})}. If @var{expected} is zero @var{tol} will always be used as ## an absolute tolerance. ## @end table ! ## @seealso{test} ## @end deftypefn ## FIXME: Output throttling: don't print out the entire 100x100 matrix, --- 51,57 ---- ## @var{expected})}. If @var{expected} is zero @var{tol} will always be used as ## an absolute tolerance. ## @end table ! ## @seealso{test, fail} ## @end deftypefn ## FIXME: Output throttling: don't print out the entire 100x100 matrix, diff -cNr octave-3.4.0/scripts/testfun/demo.m octave-3.4.1/scripts/testfun/demo.m *** octave-3.4.0/scripts/testfun/demo.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/testfun/demo.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 17,23 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} demo ('@var{name}', @var{n}) ## ## Runs any examples associated with the function '@var{name}'. ## Examples are stored in the script file, or in a file with the same --- 17,24 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Command} {} demo @var{name} @var{n} ! ## @deftypefnx {Function File} {} demo ('@var{name}', @var{n}) ## ## Runs any examples associated with the function '@var{name}'. ## Examples are stored in the script file, or in a file with the same *************** *** 87,93 **** if (nargin < 2) n = 0; ! endif [code, idx] = test (name, "grabdemo"); if (length (idx) == 0) --- 88,96 ---- if (nargin < 2) n = 0; ! elseif (strcmp ("char", class (n))) ! n = str2double (n); ! endif [code, idx] = test (name, "grabdemo"); if (length (idx) == 0) diff -cNr octave-3.4.0/scripts/testfun/example.m octave-3.4.1/scripts/testfun/example.m *** octave-3.4.0/scripts/testfun/example.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/testfun/example.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 17,23 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} example ('@var{name}', @var{n}) ## @deftypefnx {Function File} {[@var{x}, @var{idx}] =} example ('@var{name}', @var{n}) ## ## Display the code for example @var{n} associated with the function --- 17,24 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Command} {} example @var{name} @var{n} ! ## @deftypefnx {Function File} {} example ('@var{name}', @var{n}) ## @deftypefnx {Function File} {[@var{x}, @var{idx}] =} example ('@var{name}', @var{n}) ## ## Display the code for example @var{n} associated with the function *************** *** 37,45 **** if (nargin < 1 || nargin > 2) print_usage (); endif if (nargin < 2) n = 0; ! endif [code, idx] = test (name, "grabdemo"); if (nargout > 0) --- 38,49 ---- if (nargin < 1 || nargin > 2) print_usage (); endif + if (nargin < 2) n = 0; ! elseif (strcmp ("char", class (n))) ! n = str2double (n); ! endif [code, idx] = test (name, "grabdemo"); if (nargout > 0) diff -cNr octave-3.4.0/scripts/testfun/fail.m octave-3.4.1/scripts/testfun/fail.m *** octave-3.4.0/scripts/testfun/fail.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/testfun/fail.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 20,26 **** ## public domain. ## -*- texinfo -*- ! ## @deftypefn {Function File} {} fail (@var{code}, @var{pattern}) ## @deftypefnx {Function File} {} fail (@var{code}, 'warning', @var{pattern}) ## ## Return true if @var{code} fails with an error message matching --- 20,27 ---- ## public domain. ## -*- texinfo -*- ! ## @deftypefn {Function File} {} fail (@var{code}) ! ## @deftypefnx {Function File} {} fail (@var{code}, @var{pattern}) ## @deftypefnx {Function File} {} fail (@var{code}, 'warning', @var{pattern}) ## ## Return true if @var{code} fails with an error message matching *************** *** 45,51 **** ## Called with three arguments, the behavior is similar to ## @code{fail(@var{code}, @var{pattern})}, but produces an error if no ## warning is given during code execution or if the code fails. ! ## ## @end deftypefn ## Author: Paul Kienzle --- 46,52 ---- ## Called with three arguments, the behavior is similar to ## @code{fail(@var{code}, @var{pattern})}, but produces an error if no ## warning is given during code execution or if the code fails. ! ## @seealso{assert} ## @end deftypefn ## Author: Paul Kienzle diff -cNr octave-3.4.0/scripts/testfun/rundemos.m octave-3.4.1/scripts/testfun/rundemos.m *** octave-3.4.0/scripts/testfun/rundemos.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/testfun/rundemos.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 17,23 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} rundemos (@var{directory}) ## @end deftypefn ## Author: jwe --- 17,28 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} rundemos () ! ## @deftypefnx {Function File} {} rundemos (@var{directory}) ! ## Execute built-in demos for all function files in the specified directory. ! ## If no directory is specified, operate on all directories in Octave's ! ## search path for functions. ! ## @seealso{runtests, path} ## @end deftypefn ## Author: jwe diff -cNr octave-3.4.0/scripts/testfun/runtests.m octave-3.4.1/scripts/testfun/runtests.m *** octave-3.4.0/scripts/testfun/runtests.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/testfun/runtests.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 17,24 **** ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} runtests (@var{directory}) ## Execute built-in tests for all function files in the specified directory. ## @end deftypefn ## Author: jwe --- 17,28 ---- ## . ## -*- texinfo -*- ! ## @deftypefn {Function File} {} runtests () ! ## @deftypefnx {Function File} {} runtests (@var{directory}) ## Execute built-in tests for all function files in the specified directory. + ## If no directory is specified, operate on all directories in Octave's + ## search path for functions. + ## @seealso{rundemos, path} ## @end deftypefn ## Author: jwe *************** *** 80,88 **** if (fid >= 0) str = fread (fid, "*char")'; fclose (fid); ! ## Avoid PCRE 'lineanchors' by searching for newline followed by PTN. ! ## Equivalent to regexp ('^PTN','lineanchors') ! retval = ! isempty (regexp (str, "[\r\n]\\s*%!(test|assert|error|warning)", "once")); else error ("runtests: fopen failed: %s", f); endif --- 84,90 ---- if (fid >= 0) str = fread (fid, "*char")'; fclose (fid); ! retval = ! isempty (regexp (str, '^%!(test|assert|error|warning)', "lineanchors")); else error ("runtests: fopen failed: %s", f); endif diff -cNr octave-3.4.0/scripts/testfun/test.m octave-3.4.1/scripts/testfun/test.m *** octave-3.4.0/scripts/testfun/test.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/testfun/test.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 173,179 **** __ret1 = ""; __ret2 = []; else ! fprintf (__fid, "%s%s does not exist in path\n", __signal_empty, __name); fflush (__fid); if (nargout > 0) __ret1 = __ret2 = 0; --- 173,183 ---- __ret1 = ""; __ret2 = []; else ! if (exist (__name) == 3) ! fprintf (__fid, "%s%s source code with tests for dynamically linked function not found\n", __signal_empty, __name); ! else ! fprintf (__fid, "%s%s does not exist in path\n", __signal_empty, __name); ! endif fflush (__fid); if (nargout > 0) __ret1 = __ret2 = 0; diff -cNr octave-3.4.0/scripts/time/datenum.m octave-3.4.1/scripts/time/datenum.m *** octave-3.4.0/scripts/time/datenum.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/time/datenum.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 21,29 **** ## @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}) ## @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}, @var{minute}) ## @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}, @var{minute}, @var{second}) ! ## @deftypefnx {Function File} {} datenum (@code{"date"}) ! ## @deftypefnx {Function File} {} datenum (@code{"date"}, @var{p}) ! ## Returns the specified local time as a day number, with Jan 1, 0000 ## being day 1. By this reckoning, Jan 1, 1970 is day number 719529. ## The fractional portion, @var{p}, corresponds to the portion of the ## specified day. --- 21,29 ---- ## @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}) ## @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}, @var{minute}) ## @deftypefnx {Function File} {} datenum (@var{year}, @var{month}, @var{day}, @var{hour}, @var{minute}, @var{second}) ! ## @deftypefnx {Function File} {} datenum ("date") ! ## @deftypefnx {Function File} {} datenum ("date", @var{p}) ! ## Return the specified local time as a day number, with Jan 1, 0000 ## being day 1. By this reckoning, Jan 1, 1970 is day number 719529. ## The fractional portion, @var{p}, corresponds to the portion of the ## specified day. diff -cNr octave-3.4.0/scripts/time/datetick.m octave-3.4.1/scripts/time/datetick.m *** octave-3.4.0/scripts/time/datetick.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/time/datetick.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 23,29 **** ## @deftypefnx {Function File} {} datetick (@dots{}, "keeplimits") ## @deftypefnx {Function File} {} datetick (@dots{}, "keepticks") ## @deftypefnx {Function File} {} datetick (@dots{ax}, @dots{}) ! ## Adds date formatted tick labels to an axis. The axis the apply the ## ticks to is determined by @var{axis} that can take the values "x", ## "y" or "z". The default value is "x". The formatting of the labels is ## determined by the variable @var{form}, that can either be a string in --- 23,29 ---- ## @deftypefnx {Function File} {} datetick (@dots{}, "keeplimits") ## @deftypefnx {Function File} {} datetick (@dots{}, "keepticks") ## @deftypefnx {Function File} {} datetick (@dots{ax}, @dots{}) ! ## Add date formatted tick labels to an axis. The axis the apply the ## ticks to is determined by @var{axis} that can take the values "x", ## "y" or "z". The default value is "x". The formatting of the labels is ## determined by the variable @var{form}, that can either be a string in diff -cNr octave-3.4.0/scripts/time/now.m octave-3.4.1/scripts/time/now.m *** octave-3.4.0/scripts/time/now.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/scripts/time/now.m 2011-06-15 11:11:27.000000000 -0400 *************** *** 18,24 **** ## -*- texinfo -*- ## @deftypefn {Function File} {t =} now () ! ## Returns the current local time as the number of days since Jan 1, 0000. ## By this reckoning, Jan 1, 1970 is day number 719529. ## ## The integral part, @code{floor (now)} corresponds to 00:00:00 today. --- 18,24 ---- ## -*- texinfo -*- ## @deftypefn {Function File} {t =} now () ! ## Return the current local time as the number of days since Jan 1, 0000. ## By this reckoning, Jan 1, 1970 is day number 719529. ## ## The integral part, @code{floor (now)} corresponds to 00:00:00 today. diff -cNr octave-3.4.0/src/bitfcns.cc octave-3.4.1/src/bitfcns.cc *** octave-3.4.0/src/bitfcns.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/bitfcns.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 76,82 **** retval = result; \ } \ else \ ! error ("%s: size of x and y must match, or one operand must be a scalar", FNAME); \ } #define BITOP(OP, FNAME) \ --- 76,82 ---- retval = result; \ } \ else \ ! error ("%s: size of X and Y must match, or one operand must be a scalar", FNAME); \ } #define BITOP(OP, FNAME) \ *************** *** 373,379 **** error ("bitshift: size of A and N must match, or one operand must be a scalar"); \ } \ else \ ! error ("bitshift: expecting second argument to be integer"); \ } #define DO_UBITSHIFT(T, N) \ --- 373,379 ---- error ("bitshift: size of A and N must match, or one operand must be a scalar"); \ } \ else \ ! error ("bitshift: expecting integer as second argument"); \ } #define DO_UBITSHIFT(T, N) \ *************** *** 428,435 **** bitshift (10, [-2, -1, 0, 1, 2])\n\ @result{} 2 5 10 20 40\n\ @c FIXME -- restore this example when third arg is allowed to be an array.\n\ ! @c \n\ ! @c \n\ @c bitshift ([1, 10], 2, [3,4])\n\ @c @result{} 4 8\n\ @end group\n\ --- 428,435 ---- bitshift (10, [-2, -1, 0, 1, 2])\n\ @result{} 2 5 10 20 40\n\ @c FIXME -- restore this example when third arg is allowed to be an array.\n\ ! @c\n\ ! @c\n\ @c bitshift ([1, 10], 2, [3,4])\n\ @c @result{} 4 8\n\ @end group\n\ *************** *** 456,470 **** // FIXME -- for compatibility, we should accept an array // or a scalar as the third argument. if (args(2).numel () > 1) ! error ("bitshift: expecting scalar integer as third argument"); else { nbits = args(2).int_value (); if (error_state) ! error ("bitshift: expecting integer as third argument"); else if (nbits < 0) ! error ("bitshift: number of bits to mask must be positive"); } } } --- 456,470 ---- // FIXME -- for compatibility, we should accept an array // or a scalar as the third argument. if (args(2).numel () > 1) ! error ("bitshift: N must be a scalar integer"); else { nbits = args(2).int_value (); if (error_state) ! error ("bitshift: N must be an integer"); else if (nbits < 0) ! error ("bitshift: N must be positive"); } } } *************** *** 518,524 **** @deftypefnx {Built-in Function} {} bitmax (\"double\")\n\ @deftypefnx {Built-in Function} {} bitmax (\"single\")\n\ Return the largest integer that can be represented within a floating point\n\ ! value. The default class is \"double\", but \"single\" is a valid option. \n\ On IEEE-754 compatible systems, @code{bitmax} is @w{@math{2^{53} - 1}}.\n\ @end deftypefn") { --- 518,524 ---- @deftypefnx {Built-in Function} {} bitmax (\"double\")\n\ @deftypefnx {Built-in Function} {} bitmax (\"single\")\n\ Return the largest integer that can be represented within a floating point\n\ ! value. The default class is \"double\", but \"single\" is a valid option.\n\ On IEEE-754 compatible systems, @code{bitmax} is @w{@math{2^{53} - 1}}.\n\ @end deftypefn") { diff -cNr octave-3.4.0/src/ChangeLog octave-3.4.1/src/ChangeLog *** octave-3.4.0/src/ChangeLog 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/ChangeLog 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,38375 **** - 2011-02-08 John W. Eaton - - * oct-parse.yy (parse_fcn_file): Don't warn about coercing - nested functions to subfunctions if yyparse failed. - - 2011-02-06 Konstantinos Poulios - - * graphics.h.in (class axes::properties): Tag positionmode, - rotationmode, horizontalalignmentmode, verticalalignmentmode - with "u" qualifier. New hidden property autopos_tag. - (axes::properties::request_autopos, - axes::properties::update_positionmode, - axes::properties::update_rotationmode, - axes::properties::update_horizontalalignmentmode, - axes::properties::update_verticalalignmentmode): New functions - (base_properties::update_autopos): New virtual function. - (axes::properties::update_xlabel_position, - axes::properties::update_ylabel_position, - axes::properties::update_zlabel_position, - axes::properties::update_title_position): Made public. - * graphics.cc (base_properties::update_autopos, - axes::properties::update_autopos, - text::properties::request_autopos): New functions. - (axes::properties::init, axes::properties::set_defaults, - axes::properties::set_xlabel, axes::properties::set_ylabel, - axes::properties::set_zlabel, axes::properties::set_title): - Set autopos_tag for {x,y,z}label and title. - (axes::properties::update_xlabel_position, - axes::properties::update_ylabel_position, - axes::properties::update_zlabel_position, - axes::properties::update_title_position): Run only for non-empty - strings. Set autopos_tag temporarily to none in order to prevent - race conditions. - - 2011-02-06 Konstantinos Poulios - - * graphics.cc: Untabify and improve indentation. - - 2011-02-06 Konstantinos Poulios - - * graphics.cc (updating_axes_layout): New file-scope variable. - (axes::properties::update_axes_layout): Return immediately if - updating_axes_layout is true. - - 2011-02-03 John W. Eaton - - * octave.cc: Include and for isatty. - Bug #32336. - - 2011-02-03 Konstantinos Poulios - - * gl-render.h: (opengl_renderer::draw_axes_titles): Remove prototype. - * gl-render.cc: (opengl_renderer::draw_axes_titles): Remove function. - (opengl_renderer::draw_axes_x_grid, - opengl_renderer::draw_axes_y_grid, - opengl_renderer::draw_axes_z_grid): Remove calculation of axis label - positions. - * graphics.cc: (axes::properties::update_xlabel_position, - axes::properties::update_ylabel_position - axes::properties::update_zlabel_position - axes::properties::update_title_position): New functions calculating - label and title positions. - (axes::properties::get_ticklabel_extents): New function. - * graphics.h.in: Provide functions prototypes. - * txt-eng-ft.cc (ft_render::get_extent): New function version. - * txt-eng-ft.h (ft_render::get_extent): Provide function prototype. - - 2011-02-03 Kai Habel - - * src/gl-render.cc(text_to_pixels): Use text_renderer object only - when freetype is available - - 2011-02-03 John W. Eaton - - * ov-base.cc (octave_base_value::as_mxArray): Return 0 silently. - * mex.cc (mxArray_octave_value::dup): If value can't be - converted to mxArray object, then simply create a clone of the - mxArray_octave_value container. - - 2010-02-02 Rik - - * DLD-FUNCTIONS/eigs.cc, DLD-FUNCTIONS/qr.cc: Use testif to only run - some sparse tests when necessary libraries are installed. - - 2011-02-03 Konstantinos Poulios - - * graphics.cc (axes::properties::update_axes_layout): - New function calculating axes layout. - (axes::properties::update_ticklengths): New function calculating - tick lengths and offsets. - * graphics.h.in (class axes::properties):: New private data - describing axes layout and corresponding "get" methods. Provide - declaration and call dependencies for "update_axes_layout". - Tag layer, yaxislocation, xaxislocation, tickdir, tickdirmode, - with "u" qualifier. - (axes::properties::update_layer, - axes::properties::update_yaxislocation, - axes::properties::update_xaxislocation, - axes::properties::update_ticklengths, - axes::properties::update_tickdir, - axes::properties::update_tickdirmode): New functions - * gl-render.cc: (opengl_renderer::draw_axes_planes, - opengl_renderer::draw_axes_boxes, - opengl_renderer::draw_axes_x_grid, - opengl_renderer::draw_axes_y_grid, - opengl_renderer::draw_axes_z_grid, - opengl_renderer::draw_axes_title): Simplify arguments list. - (opengl_renderer::draw_axes): Remove calculation of axes layout. - (opengl_renderer::setup_opengl_transformation): Disable antializing. - * gl-render.h: Adapt functions prototypes. - - 2011-02-01 John W. Eaton - - * gl-render.h (opengl_renderer::draw (const Matrix& hlist)): - Use get_object instead of lookup. - * DLD-FUNCTIONS/__init_fltk__.cc (Fl_Gl_Window::draw): Likewise. - * graphics.h.in (gh_manager::get_object (double)): New function. - * gl-renderer.h (opengl_renderer::draw (const graphics_handle&)): - Delete. - * gl2ps-renderer.h (glps_renderer::draw (const graphics_handle&)): - Delete. - - 2011-02-01 John W. Eaton - - * gl2ps-renderer.h: Remove virtual tag for derived virtual functions. - (opengl_renderer (const graphics_handle&)): New function. - * DLD-FUNCTIONS/__init_fltk__.cc (OpenGL_fltk::Fl_Gl_Window): - Don't use new to create temporary glps_renderer object. - - 2011-02-01 Michael Godfrey - - * gl2ps-renderer.cc (glps_renderer::draw): - Return immediately if fdopen fails. - - 2011-02-01 John W. Eaton - - * gl-render.cc: (opengl_renderer::setup_opengl_transformation, - opengl_renderer::draw_axes_planes, - opengl_renderer::draw_axes_boxes, - opengl_renderer::draw_axes_x_grid, - opengl_renderer::draw_axes_y_grid, - opengl_renderer::draw_axes_z_grid, - opengl_renderer::draw_axes_title, - opengl_renderer::draw_axes_children): - New private functions, extracted from opengl_renderer::draw_axes. - (opengl_renderer::draw_axes): Call subfunctions to do most of - the work. - * gl-render.h: Provide decls. - - 2011-01-31 John W. Eaton - - * sysdep.cc (get_P_tmpdir): New function. - * file-io.cc (FP_tmpdir): Use it. - Bug #32158. - - 2011-01-30 Rik - - * DLD-FUNCTIONS/__init_fltk__.cc (mouse_wheel_zoom, gui_mode): Rename - functions and strip "fltk_" prefix. Improve docstrings. - - 2011-01-30 John W. Eaton - - * txt-eng-ft.cc (ft_manager::ft_manager): Omit fc_init_done from - initialization list if fontconfig is missing. - - 2011-01-30 Pascal Dupuis - - * oct-parse.yy (class stdio_stream_reader): Disallow copying. - - 2011-01-30 John W. Eaton - - * graphics.cc (gnuplot_toolkit::redraw): Call __gnuplot_drawnow__, - not gnuplot_drawnow. - (gnuplot_toolkit::print_figure): Likewise. - - 2011-01-30 John W. Eaton - - * Makefile.am (OCTAVE_LIBS): Remove $(ARPACK_LDFLAGS) and - $(ARPACK_LIBS) from the list. - (DLD-FUNCTIONS/eigs.df): Don't add $(ARPACK_CPPFLAGS) to CPPFLAGS. - (DLD_FUNCTIONS_eigs_la_CPPFLAGS): Remove $(ARPACK_CPPFLAGS) from - the list. - (DLD_FUNCTIONS_eigs_la_LIBADD): Remove $(ARPACK_LDFLAGS) and - $(ARPACK_LIBS) from the list. - - 2011-01-30 John W. Eaton - - * load-save.cc (Fload): Doc fix. - - 2011-01-29 Rik - - * DLD-FUNCTIONS/__init_fltk__.cc (fltk_gui_mode, fltk_mouse_wheel_zoom): - Improve docstrings. - - * graphics.cc (available_graphics_toolkits): Fix typo in docstring. - - 2011-01-29 Rik - - * syscalls.cc (S_ISSOCK, S_ISCHR): Improve docstrings - - 2011-01-29 Rik - - * dirfns.cc (readdir, filesep, pathsep): Improve docstrings - * file-io.cc (tmpnam): Improve docstring - * input.cc (filemarker): Improve docstring - * syscalls.cc (stat, lstat): Improve docstring - - 2011-01-29 Rik - - * DLD-FUNCTIONS/getrusage.cc, toplev.cc: Improve docstring - - 2011-01-29 John W. Eaton - - * DLD-FUNCTIONS/__fltk_uigetfile__.cc (__fltk_uigetfile__): - Don't allocate Fl_File_Chooser object with new. Delete unused - variable fargs. Allocate default retval values in initial - declaration. - - 2011-01-29 John W. Eaton - - * DLD-FUNCTIONS/__init_fltk__.cc: Undefine Complex after - including FLTK headers. - * DLD-FUNCTIONS/__fltk_uigetfile__.cc: Likewise. - - 2011-01-29 John W. Eaton - - * Makefile.am (__fltk_uigetfile__): Use the same compiler flags - as for __init_fltk__. - - 2011-01-28 John W. Eaton - - * DLD-FUNCTIONS/eigs.cc (Feigs): Assume we have ARPACK. - Use "test" instead of "testif HAVE_ARPACK". - * toplev.cc (octave_config_info): Remove ARPACK_CPPFLAGS, - ARPACK_LDFLAGS, ARPACK_LIBS from the struct. - * oct-conf.h.in (OCTAVE_CONF_ARPACK_CPPFLAGS, - OCTAVE_CONF_ARPACK_LDFLAGS, OCTAVE_CONF_ARPACK_LIBS): - Delete #defines. - - 2011-01-28 Kai Habel - - * DLD-FUNCTIONS/__fltk_uigetfile__.cc: File filter value is - 1-based now. - - 2011-01-28 John W. Eaton - - * pr-output.cc (Foutput_max_field_width): Set internal variable - output_max_field_width, not output_precision. - - 2011-01-28 John W. Eaton - - * pr-output.cc (Fformat, Ffixed_point_format, Foutput_precision, - Foutput_max_field_width, Fsplit_long_rows, Fprint_empty_dimensions): - Update @seealso lists. - - 2011-01-27 Rik - - * graphics.cc: Improve reset docstring. - - 2011-01-27 Kai Habel - - * DLD-FUNCTIONS/__init_fltk__.cc (__fltk_uigetfile__): Remove here. - * DLD-FUNCTIONS/__fltk_uigetfile__.cc: New file. - * DLD-FUNCTIONS/module-files: Add __fltk_uigetfile__.cc. - Bug #32190. - - 2011-01-27 John W. Eaton - - * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Skip leading whitespace - on each line. - - 2011-01-27 John W. Eaton - - * ov-struct.cc (octave_struct::subsasgn, - octave_scalar_struct::subsasgn): Call undef_subsasgn on object - returned by octave_value::empty_conv if LHS is initially undefined. - Bug #32242. - - 2011-01-27 John W. Eaton - - * input.cc (input_event_hook): Fix incorrect use of iterator. - Reported by Pascal Dupuis . - - 2011-01-27 John W. Eaton - - * ov-class.cc (octave_class::reconstruct_exemplar): - Call constructor with do_multi_index_op instead of feval. - Verify that symbol_table::find_method did return a class - constructor for the correct type. Bug #32242. - - 2011-01-26 John W. Eaton - - * lex.ll, graphics.cc, gl-render.cc, ov-mex-fcn.h, graphics.h.in: - Delete trailing whitespace. - - 2011-01-26 John W. Eaton - - Bug #32242. - - * ov.h, ov.cc (octave_value::undef_subsasgn): New function. - * ov-class.h, ov-class.cc (octave_class::undef_subsasgn, - octave_class::subsasgn_common): New functions. - * ov-base.h, ov-base.cc (octave_base_value::subsasgn): If - undefined, call undef_subsasgn on object returned by - octave_value::empty_conv. - (octave_base_value::undef_subsasgn): New virtual function. - (octave_base_value::subsasgn): Only handle case of undefined - values here. - - 2011-01-26 Pascal Dupuis - John W. Eaton - - * graphics.h.in (scaler::scaler (const std::string&)): New constructor. - (graphics_handle::operator++, graphics_hanlde::operator--): - Implement as recommended by Effective C++. - - * graphics.h.in (class base_property, class array_property, - class children_property, class property, class graphics_xform, - class graphics_event): Explicitelly iniatialize - all data members in constructor initialisation list. - * gl-render.cc (class patch_tesselator): Likewise - * graphics.cc (class radio_values, class gh_manager), - (class callback_event, class set_event): Likewise. - - * graphics.h.in (class base_graphics_property): Disallow copying. - * graphics.cc (class function_event): Likewise. - (function_event::function_event (void)): Delete implementation. - - 2011-01-25 Rik - - * DLD-FUNCTIONS/config-module.awk: Use automake variable for - portability. - * Makefile.am (uninstall-oct): Use GNU Make features for portability - - 2011-01-25 Rik - - * DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftn.cc, - load-save.cc: Make docstrings static by removing documentation - depending on #ifdef configuration variables. - - 2011-01-25 John W. Eaton - - * Makefile.am (OCT_STAMP_FILES): New variable. - (DISTCLEANFILES): Add $(OCT_STAMP_FILES) to the list. - (all-local): Depend on $(OCT_STAMP_FILES) instead of $(OCT_FILES). - - * DLD-FUNCTIONS/config-module.awk: Create stamp files when - creating .oct file links. - - 2011-01-25 Konstantinos Poulios - - * src/graphics.cc (text::properties::update_text_extent): - Disable warning about missing freetype library. - - 2011-01-25 Konstantinos Poulios - - * src/graphics.cc (axes::properties::calc_ticks_and_lims): - Fixing wrong dimensions of minor ticks vector. - - 2011-01-25 John W. Eaton - - * oct-map.h (octave_map::octave_map (const string_vector&)): - Initialize xvals elements to 1x1 Cells. Bug #32222. - - 2011-01-24 Pascal Dupuis - - * ov-base-mat.h (class octave_base_matrix): Disallow assignment. - * ov-range.h (class octave_range): Likewise. - - 2011-01-23 John W. Eaton - - * ov-struct.cc (octave_scalar_struct::print_raw): - Avoid unnecessary conversion of map value to Cell. - - 2011-01-22 John W. Eaton - - * symtab.h (symbol_table::parent_classes): - Also add parents of parents to the list. Bug #32210. - - 2011-01-22 Jaroslav Hajek - - * ov-class.cc (octave_class::subsasgn): Find appropriate unique base - before trying any indexed assignment. Bug #32182. - - 2011-01-22 Konstantinos Poulios - - * graphics.h.in, graphics.cc (xmtick, ymtick, zmtick): - New properties holding minor ticks positions. - (axes::properties::calc_ticks_and_lims): Calculation of minor ticks - positions. - * gl-render.h, gl-render.cc - (opengl_renderer::render_grid, opengl_renderer::render_tickmarks, - opengl_renderer::render_ticktexts): New functions. - (opengl_renderer::draw_axes): Make use of new rendering functions - and minor ticks positions. - Correct axis label positioning for x axis at top and y axis at right - position. Bug #31800. - Change axis positioning policy for 3D plots, keeping x and y axis - always at bottom. - - 2011-01-22 Jaroslav Hajek - - * gl-render.cc: Use octave_refcount for refcounting. - * oct-map.h: Ditto. - * ov-base.h: Ditto. - * pt-mat.cc: Ditto. - - 2011-01-22 Pascal Dupuis - - * ov-mex-fcn.h, txt-eng-ft.cc, mex.cc: - Initialize all data members in initialization list. - - 2011-01-22 Pascal Dupuis - - * DLD-FUNCTIONS/__init_fltk__.cc (fltk_uimenu): Disallow copying. - (class plot_window): Likewise. - * c-file-ptr-stream.h (class c_file_ptr_buf): Likewise. - (class c_file_ptr_stream): Likewise. - (class c_zfile_ptr_buf): Likewise. - * gl-render.cc (class opengl_tesselator): Likewise. - (class patch_tesselator): Likewise. - * lex.ll (class flex_stream_reader): Likewise. - * mex.cc (class mex): Likewise. - * oct-procbuf.h (class octave_procbuf): Likewise. - * pt-cbinop.h (class tree_compound_binary_expression): Likewise. - * symtab.h (class scope_id_cache): Likewise. - (class symbol_table): Likewise. - * txt-eng-ft.h (class ft_manager): Likewise. - (class ft_render): Likewise. - * unwind-prot.h (class unwind_protect::elem): Likewise. - (class unwind_protect::fcn_arg_elem): Likewise. - (class unwind_protect::method_elem): Likewise. - (class unwind_protect::restore_var_elem): Likewise. - (class unwind_protect::delete_ptr_elem): Likewise. - (class unwind_protect): Likewise. - * zfstream.h (class gzfilebuf): Likewise. - - * mex.cc (class mxArray_octave_value): Disallow assignment. - (class mxArray_matlab): Likewise. - (class mxArray_number): Likewise. - (class mxArray_sparse): Likewise. - (class mxArray_struct): Likewise. - (class mxArray_cell): Likewise. - - * unwind-prot.h (unwind_protect::elem::elem): - Provide default constructor. - - 2011-01-21 Konstantinos Poulios - - * src/graphics.cc (axes::properties::set_xlabel, - axes::properties::set_ylabel, axes::properties::set_zlabel): - Setting axis label color from axis color. - - 2011-01-20 Rik - - * src/file-io.cc, src/variables.cc: Prevent doubled quotes around @table - items in Info. - - 2011-01-20 Rik - - * src/DLD-FUNCTIONS/chol.cc, src/DLD-FUNCTIONS/luinc.cc, - src/DLD-FUNCTIONS/qz.cc: Use non-breaking spaces between certain - adjectives and their linked nouns in docstrings - - 2011-01-20 Rik - - * src/DLD-FUNCTIONS/str2double.cc, src/data.cc, src/mappers.cc, - src/variables.cc: Use @nospell macro on certain words in docstring. - - 2011-01-20 John W. Eaton - - * DLD-FUNCTIONS/__delaunayn__.cc, - DLD-FUNCTIONS/__init_fltk__.cc, - DLD-FUNCTIONS/__magick_read__.cc, DLD-FUNCTIONS/cellfun.cc, - DLD-FUNCTIONS/quadcc.cc, DLD-FUNCTIONS/regexp.cc, data.cc, - gripes.cc, ls-mat5.cc, toplev.cc, variables.cc: - Style fixes for error and warning messages. - - 2011-01-20 John W. Eaton - - * Array.cc, Sparse.cc, base-lu.cc, idx-vector.cc, - lo-array-gripes.cc: Style fixes for error and warning messages. - - 2011-01-20 John W. Eaton - - * DLD-FUNCTIONS/__contourc__.cc, DLD-FUNCTIONS/__delaunayn__.cc, - DLD-FUNCTIONS/__dsearchn__.cc, DLD-FUNCTIONS/__glpk__.cc, - DLD-FUNCTIONS/__init_fltk__.cc, - DLD-FUNCTIONS/__lin_interpn__.cc, - DLD-FUNCTIONS/__magick_read__.cc, - DLD-FUNCTIONS/__pchip_deriv__.cc, DLD-FUNCTIONS/__qp__.cc, - DLD-FUNCTIONS/__voronoi__.cc, DLD-FUNCTIONS/amd.cc, - DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc, - DLD-FUNCTIONS/bsxfun.cc, DLD-FUNCTIONS/ccolamd.cc, - DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/chol.cc, - DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/colloc.cc, - DLD-FUNCTIONS/convhulln.cc, DLD-FUNCTIONS/daspk.cc, - DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dassl.cc, - DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/dlmread.cc, - DLD-FUNCTIONS/dmperm.cc, DLD-FUNCTIONS/dot.cc, - DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/eigs.cc, - DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, - DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw.cc, - DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/find.cc, - DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/givens.cc, - DLD-FUNCTIONS/hex2num.cc, DLD-FUNCTIONS/inv.cc, - DLD-FUNCTIONS/kron.cc, DLD-FUNCTIONS/lookup.cc, - DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/lu.cc, - DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/matrix_type.cc, - DLD-FUNCTIONS/max.cc, DLD-FUNCTIONS/md5sum.cc, - DLD-FUNCTIONS/onCleanup.cc, DLD-FUNCTIONS/qr.cc, - DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/quadcc.cc, - DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/rand.cc, - DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/schur.cc, - DLD-FUNCTIONS/spparms.cc, DLD-FUNCTIONS/sqrtm.cc, - DLD-FUNCTIONS/str2double.cc, DLD-FUNCTIONS/strfind.cc, - DLD-FUNCTIONS/sub2ind.cc, DLD-FUNCTIONS/svd.cc, - DLD-FUNCTIONS/syl.cc, DLD-FUNCTIONS/symbfact.cc, - DLD-FUNCTIONS/symrcm.cc, DLD-FUNCTIONS/tril.cc, - DLD-FUNCTIONS/tsearch.cc, DLD-FUNCTIONS/typecast.cc, - DLD-FUNCTIONS/urlwrite.cc, OPERATORS/op-b-sbm.cc, - OPERATORS/op-bm-sbm.cc, OPERATORS/op-cdm-cdm.cc, - OPERATORS/op-chm.cc, OPERATORS/op-cm-cm.cc, - OPERATORS/op-cm-m.cc, OPERATORS/op-cm-scm.cc, - OPERATORS/op-cm-sm.cc, OPERATORS/op-cs-cs.cc, - OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, - OPERATORS/op-dm-dm.cc, OPERATORS/op-dms-template.cc, - OPERATORS/op-fcdm-fcdm.cc, OPERATORS/op-fcm-fcm.cc, - OPERATORS/op-fcm-fcs.cc, OPERATORS/op-fcm-fm.cc, - OPERATORS/op-fcm-fs.cc, OPERATORS/op-fcs-fcm.cc, - OPERATORS/op-fcs-fcs.cc, OPERATORS/op-fcs-fm.cc, - OPERATORS/op-fcs-fs.cc, OPERATORS/op-fdm-fdm.cc, - OPERATORS/op-fm-fcm.cc, OPERATORS/op-fm-fcs.cc, - OPERATORS/op-fm-fm.cc, OPERATORS/op-fm-fs.cc, - OPERATORS/op-fs-fcm.cc, OPERATORS/op-fs-fcs.cc, - OPERATORS/op-fs-fm.cc, OPERATORS/op-int-concat.cc, - OPERATORS/op-m-cm.cc, OPERATORS/op-m-m.cc, - OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, - OPERATORS/op-pm-pm.cc, OPERATORS/op-pm-scm.cc, - OPERATORS/op-pm-sm.cc, OPERATORS/op-pm-template.cc, - OPERATORS/op-range.cc, OPERATORS/op-s-scm.cc, - OPERATORS/op-sbm-b.cc, OPERATORS/op-sbm-bm.cc, - OPERATORS/op-sbm-sbm.cc, OPERATORS/op-scm-cm.cc, - OPERATORS/op-scm-cs.cc, OPERATORS/op-scm-m.cc, - OPERATORS/op-scm-s.cc, OPERATORS/op-scm-scm.cc, - OPERATORS/op-scm-sm.cc, OPERATORS/op-sm-cm.cc, - OPERATORS/op-sm-cs.cc, OPERATORS/op-sm-m.cc, - OPERATORS/op-sm-s.cc, OPERATORS/op-sm-scm.cc, - OPERATORS/op-sm-sm.cc, OPERATORS/op-str-str.cc, - OPERATORS/op-ui64-ui64.cc, bitfcns.cc, c-file-ptr-stream.cc, - c-file-ptr-stream.h, comment-list.h, data.cc, debug.cc, debug.h, - defun-int.h, defun.cc, dynamic-ld.cc, error.cc, file-io.cc, - gl-render.cc, gl-render.h, gl2ps-renderer.cc, gl2ps-renderer.h, - gl2ps.c, gl2ps.h, graphics.cc, graphics.h.in, help.cc, input.cc, - lex.h, lex.ll, load-path.cc, load-path.h, load-save.cc, - load-save.h, ls-ascii-helper.cc, ls-hdf5.cc, ls-hdf5.h, - ls-mat-ascii.cc, ls-mat4.cc, ls-mat4.h, ls-mat5.cc, - ls-oct-ascii.cc, ls-oct-ascii.h, ls-oct-binary.cc, mappers.cc, - mex.cc, mex.h, mexproto.h, mxarray.h.in, oct-hist.cc, - oct-lvalue.cc, oct-lvalue.h, oct-map.cc, oct-map.h, oct-obj.cc, - oct-obj.h, oct-parse.yy, oct-procbuf.cc, oct-stream.cc, - oct-stream.h, octave.cc, ov-base-diag.cc, ov-base-diag.h, - ov-base-int.cc, ov-base-int.h, ov-base-mat.cc, ov-base-mat.h, - ov-base-scalar.cc, ov-base-scalar.h, ov-base-sparse.cc, - ov-base-sparse.h, ov-base.cc, ov-base.h, ov-bool-mat.cc, - ov-bool-mat.h, ov-bool-sparse.cc, ov-bool-sparse.h, ov-bool.cc, - ov-bool.h, ov-builtin.h, ov-cell.cc, ov-cell.h, ov-ch-mat.cc, - ov-class.cc, ov-class.h, ov-complex.cc, ov-complex.h, - ov-cx-diag.cc, ov-cx-diag.h, ov-cx-mat.cc, ov-cx-mat.h, - ov-cx-sparse.cc, ov-cx-sparse.h, ov-dld-fcn.h, ov-fcn-handle.cc, - ov-fcn-handle.h, ov-fcn-inline.cc, ov-fcn-inline.h, ov-fcn.h, - ov-float.cc, ov-float.h, ov-flt-complex.cc, ov-flt-complex.h, - ov-flt-cx-diag.cc, ov-flt-cx-diag.h, ov-flt-cx-mat.cc, - ov-flt-cx-mat.h, ov-flt-re-diag.cc, ov-flt-re-diag.h, - ov-flt-re-mat.cc, ov-flt-re-mat.h, ov-intx.h, ov-lazy-idx.cc, - ov-lazy-idx.h, ov-null-mat.cc, ov-null-mat.h, ov-perm.cc, - ov-perm.h, ov-range.cc, ov-range.h, ov-re-diag.cc, ov-re-diag.h, - ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h, - ov-scalar.cc, ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, - ov-struct.cc, ov-struct.h, ov-type-conv.h, ov-typeinfo.cc, - ov-usr-fcn.cc, ov-usr-fcn.h, ov.cc, ov.h, pager.cc, - pr-output.cc, procstream.h, pt-arg-list.cc, pt-assign.h, - pt-binop.cc, pt-bp.cc, pt-bp.h, pt-cbinop.cc, pt-cell.cc, - pt-colon.cc, pt-const.cc, pt-decl.cc, pt-eval.cc, - pt-fcn-handle.cc, pt-id.h, pt-idx.cc, pt-idx.h, pt-mat.cc, - pt-mat.h, pt-pr-code.cc, pt-select.cc, pt-select.h, pt-stmt.cc, - pt-unop.cc, pt-unop.h, sighandlers.cc, sighandlers.h, - sparse-xdiv.cc, sparse-xdiv.h, sparse-xpow.cc, sparse-xpow.h, - sparse.cc, strfns.cc, symtab.cc, symtab.h, syscalls.cc, - sysdep.cc, toplev.cc, toplev.h, txt-eng-ft.cc, txt-eng-ft.h, - txt-eng.h, unwind-prot.h, utils.cc, utils.h, variables.cc, - variables.h, xdiv.cc, xdiv.h, xnorm.cc, xpow.cc, zfstream.cc, - zfstream.h: Strip trailing whitespace. - - 2011-01-20 John W. Eaton - - * gl-render.cc, DLD-FUNCTIONS/__init_fltk__.cc, - DLD-FUNCTIONS/__magick_read__.cc: Untabify. - - 2011-01-20 Pascal Dupuis . - - * debug.h, dynamic-ld.cc, gl-render.cc, gl-render.h, - gl2ps-renderer.h, lex.h, ls-hdf5.h, oct-stream.h, oct-strstrm.h, - ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h, ov-base-sparse.h, - ov-cell.h, ov-class.h, ov-dld-fcn.h, ov-fcn-handle.h, - ov-lazy-idx.h, ov-perm.h, ov-range.h, ov-struct.h, procstream.h, - pt-assign.h, symtab.h, unwind-prot.h: Initialize - all data members in initialization list. - - 2011-01-20 Kai Habel - - * DLD-FUNCTIONS/__init_fltk__.cc (__fltk_uigetfile__): Append file - seperator to 2nd return value (file path). - Bug #32190. - - 2011-01-20 John W. Eaton - - * oct-obj.h (octave_value_list::octave_value_list): Initialize - all data members in initialization list. From Pascal Dupuis - . - - 2011-01-20 John W. Eaton - - * ls-mat5.cc (read_mat5_binary_element): - Improve diagnositc if uncompress fails. - - * load-path.cc (strip_trailing_separators): New static function. - (load_path::do_add, load_path::do_remove): Call it on directory arg. - - 2011-01-20 John W. Eaton - - * gl-render.h, graphics.cc, gl-render.cc, graphics.h.in: - Update for backend -> graphics_toolkit change. - - * DLD-FUNCTIONS/__init_fltk__.cc: Rename from fltk_backend.cc - Update for backend -> graphics_toolkit change. - * DLD-FUNCTIONS/module-files, Makefile.am: Update for renamed file. - - 2011-01-19 Rik - - * src/data.cc, src/input.cc, src/utils.cc: spellcheck docstrings. - - 2011-01-19 Rik - - * DLD-FUNCTIONS/dlmread.cc, DLD-FUNCTIONS/filter.cc, - DLD-FUNCTIONS/inv.cc, DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/quad.cc, - DLD-FUNCTIONS/quadcc.cc, DLD-FUNCTIONS/rcond.cc, - DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/strfind.cc, - DLD-FUNCTIONS/typecast.cc, data.cc, dirfns.cc, error.cc, file-io.cc, - graphics.cc, help.cc, input.cc, load-path.cc, load-save.cc, mappers.cc, - oct-hist.cc, oct-parse.yy, pager.cc, pr-output.cc, pt-binop.cc, - sparse.cc, strfns.cc, syscalls.cc, sysdep.cc, utils.cc: grammarcheck - files in src directory. - - 2011-01-19 John W. Eaton - - * oct-obj.cc (octave_value_list::all_scalars): Check for scalar - values, not strings. Bug #32172. - - 2011-01-17 Rik - - * DLD-FUNCTIONS/module-files: Add quadcc.cc to list of files. - * DLD-FUNCTIONS/quad.cc: Add Seealso links to quadcc. - - 2011-01-17 Jaroslav Hajek - - * DLD-FUNCTION/lookup.cc (Flookup): Validate option string. - - 2011-01-17 John W. Eaton - - * ov-usr-fcn.cc (octave_user_function::bind_automatic_vars): - Save argument names in hidden variable .argn.. - - * variables.cc (F__varval__): New function. - - 2011-01-17 John W. Eaton - - * ov-usr-fcn.cc (bind_automatic_vars): Mark variables created - here as automatic. - - * symtab.h (symbol_table::mark_automatic): New function. - (symbol_table::do_mark_automatic): New function. - - 2011-01-17 Michael Godfrey - - * variables.cc (Fwhos): Describe a and f attributes in help text. - - 2011-01-17 John W. Eaton - - * sighandlers.cc (octave_signal_handler): Wait for children here. - (sigchld_handler): Not here. - - 2011-01-16 Rik - - * DLD-FUNCTIONS/__delaunayn__.cc, DLD-FUNCTIONS/__dispatch__.cc, - DLD-FUNCTIONS/__dsearchn__.cc, DLD-FUNCTIONS/__glpk__.cc, - DLD-FUNCTIONS/__magick_read__.cc, DLD-FUNCTIONS/__pchip_deriv__.cc, - DLD-FUNCTIONS/__voronoi__.cc, DLD-FUNCTIONS/amd.cc, - DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc, - DLD-FUNCTIONS/bsxfun.cc, DLD-FUNCTIONS/ccolamd.cc, - DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/chol.cc, - DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/colloc.cc, - DLD-FUNCTIONS/conv2.cc, DLD-FUNCTIONS/convhulln.cc, - DLD-FUNCTIONS/cquad.cc, DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/det.cc, - DLD-FUNCTIONS/dlmread.cc, DLD-FUNCTIONS/dmperm.cc, - DLD-FUNCTIONS/dot.cc, DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/eigs.cc, - DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftn.cc, - DLD-FUNCTIONS/fftw.cc, DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/find.cc, - DLD-FUNCTIONS/fltk_backend.cc, DLD-FUNCTIONS/gammainc.cc, - DLD-FUNCTIONS/gcd.cc, DLD-FUNCTIONS/getgrent.cc, - DLD-FUNCTIONS/getpwent.cc, DLD-FUNCTIONS/hess.cc, - DLD-FUNCTIONS/hex2num.cc, DLD-FUNCTIONS/inv.cc, DLD-FUNCTIONS/kron.cc, - DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/lu.cc, - DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/matrix_type.cc, - DLD-FUNCTIONS/max.cc, DLD-FUNCTIONS/md5sum.cc, - DLD-FUNCTIONS/onCleanup.cc, DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/qr.cc, - DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/rand.cc, - DLD-FUNCTIONS/rcond.cc, DLD-FUNCTIONS/regexp.cc, - DLD-FUNCTIONS/schur.cc, DLD-FUNCTIONS/spparms.cc, - DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/str2double.cc, - DLD-FUNCTIONS/strfind.cc, DLD-FUNCTIONS/sub2ind.cc, - DLD-FUNCTIONS/svd.cc, DLD-FUNCTIONS/syl.cc, DLD-FUNCTIONS/symbfact.cc, - DLD-FUNCTIONS/symrcm.cc, DLD-FUNCTIONS/time.cc, DLD-FUNCTIONS/tril.cc, - DLD-FUNCTIONS/tsearch.cc, DLD-FUNCTIONS/typecast.cc, - DLD-FUNCTIONS/urlwrite.cc: Improve docstrings. Use same variable names - in error() strings and docstrings. - - 2011-01-16 John W. Eaton - - * mkgendoc: Write function name along with file name in comment. - - 2011-01-15 Jordi Gutiérrez Hermoso - - * symtab.h (do_clear_global_pattern): Reword so as to not - invalidate iterators when calling std::map::erase(). - * DLD-FUNCTIONS/urwlwrite.cc (~curl_handles): Ditto. - - 2011-01-15 Rik - - * src/dirfns.cc, src/help.cc, src/input.cc, src/load-save.cc, - src/oct-hist.cc, src/pager.cc, src/pr-output.cc, src/variables.cc: - Eliminate @deffn macros. - - 2011-01-15 John W. Eaton - - * syscalls.cc (FWEXITSTATUS, FWIFEXITED): Missing semicolon. - - 2011-01-15 John W. Eaton - - * ov-fcn-handle.cc: Use version instead of flops in test. - - 2011-01-14 Rik - - * DLD-FUNCTIONS/svd.cc: Add Seealso references to svd. - - 2011-01-14 Rik - - * src/mappers.cc: Add Seealso links between sqrt, cbrt, nthroot - functions. - - 2011-01-14 John W. Eaton - - * dirfns.cc (Ffnmatch): Use DEFUNX until gnulib's fnmatch is C++ - friendly. - - 2011-01-14 Rik - - * src/mappers.cc: Add Seealso links between erf variants to docstring. - - 2011-01-14 John W. Eaton - - * sighandlers.cc (BADSIG, BLOCK_SIGNAL, SIGCHLD, BLOCK_CHILD, - UNBLOCK_CHILD): Move macro definitions here from sighandlers.h. - - 2011-01-14 John W. Eaton - - * Update copyright notices for 2011. - - 2011-01-13 John W. Eaton - - * file-io.cc (mkstemp): Delete. - Delete decl for mkstemps. - (Fmkstemp): Assume we have mkstemp from gnulib. - - 2011-01-13 John W. Eaton - - * DLD-FUNCTIONS/__pchip_deriv__.cc, DLD-FUNCTIONS/dot.cc, - octave.cc: Style fixes. - - 2011-01-13 David Bateman - - ls-mat5.cc (int save_mat5_element_length (const octave_value&, - const std::string&, bool, bool)): For sparse matrices use nnz rather - than nzmax. - (bool save_mat5_binary_element (std::ostream&, const octave_value&, - const std::string&, bool, bool, bool, bool)): ditto. - - 2011-01-13 John W. Eaton - - * base-list.h (class octave_base_list): Provide explicit - default and copy construtors, assignment operator, and destructor. - * load-path.h (load_path::dir_info::class_info): Likewise. - - * load-path.h (load_path::dir_info::dir_info): Initialize all - members in initializaition list. - * lex.h (lexical_feedback::lexical_feedback): Likewise. - - 2011-01-13 John W. Eaton - - * cutils.h: New file. - (octave_sleep, octave_usleep, octave_raw_vsnprintf): Move decls - here from utils.h. - * Makefile.am (octinclude_HEADERS): Add cutils.h to the list. - * utils.h: Include cutils.h. - * cutils.c: Include cutils.h. - - 2011-01-12 David Grundberg - - * DLD-FUNCTIONS/__magick_read__.cc (__magick_read__) [!HAVE_MAGICK]: - Write more verbose error message that blames on imread, not - __magick_read__. - - 2011-01-12 John W. Eaton - - * DLD-FUNCTIONS/rand.cc (reset_rand_generator): Delete unused - static function. - - 2011-01-12 John W. Eaton - - * graphics.cc (graphics_object::get_ancestor): Avoid GCC warning. - - 2011-01-12 John W. Eaton - - * DLD-FUNCTIONS/gcd.cc (extended_gcd): Tag call to floor with gnulib::. - - 2011-01-12 John W. Eaton - - * oct-hist.cc (Fhistory_control): New function. - - 2011-01-12 Pascal Dupuis - - * oct-hist.cc (default_history_control): New function. - (initialize_history): Pass Vhistory control to - command_history::initialize. - - 2011-01-11 Konstantinos Poulios - - * gl-render.cc (opengl_renderer::draw_axes): Improve positioning - of titles. - - 2011-01-10 John W. Eaton - - * ov-cell.cc (octave_cell::print_as_scalar): Always return true. - (octave_cell::print_raw): Handle extra newlines here. - * ov-struct.cc (Fstruct_levels_to_print): Move here from pr-output.cc - (Vstruct_levels_to_print): Move here from pr-output.cc. Now static. - (Vprint_struct_array_contents): New static variable. - (Fprint_struct_array_contents): New function. - (octave_struct::print_raw): Use Vprint_struct_array_contents. - Simplify and improve output. - (octave_scalar_struct::print_raw): Simplify and improve output. - * pr-output.h (Vstruct_levels_to_print): Delete decl. - * ov-class.cc (octave_class::print_raw): Don't unwind_protect - Vstruct_levels_to_print. - - 2011-01-09 David Bateman - - * ls-mat5.cc (save_mat5_array_length (const float*, octave_idx_type, - bool)): Take in to account the short tags for single data elements. - (int save_mat5_element_length (const octave_value&, const std::string&, - bool, bool)): Declare sparse matrices const to avoid a copy on read. - * ls-utils.cc (save_type get_save_type (float, float)): New function. - * ls-utils.h (save_type get_save_type (float, float)): Declare it. - - 2011-01-09 John W. Eaton - - * token.h, token.cc (token::plot_tok_typ): Delete unused enum. - (token::token_type): Delete pttype_token from the list. - (token::token (plot_tok_type, int, int)): Delete unused constructor. - (token::pttype): Delete unused function. - (token::anonymous union): Delete PT element. - - 2011-01-09 John W. Eaton - - * lex.ll (display_token): Display token value for NUM, IMAG_NUM, - STRUCT_ELT, NAME, DQ_STRING, and SQ_STRING tokens. - - 2011-01-09 John W. Eaton - - * lex.h, lex.ll, oct-parse.yy (lexer_flags::parsed_function_name): - Declare to be std::stack instead of bool. Change all uses. - Bug #32083. - - 2011-01-08 Konstantinos Poulios - - * gl-render.cc (opengl_renderer::draw_axes): Revert positionmode - to auto after automatic positioning of titles. Bug #32074. - - 2011-01-08 David Grundberg - - * ov-fcn.h (is_subfunction): Rename from is_nested_function. - Change all uses and nearby comments. - * ov-usr-fcn.h (is_subfunction, mark_as_subfunction): Rename from - is_nested_function, mark_as_nested_function. Change all uses. - - 2011-01-07 John W. Eaton - - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): For uniformoutput case - with nargout > 0, initialize elements of retval to NDArray - objects of the same size as the input. Bug #32067. - - 2011-01-07 John W. Eaton - - * graphics.cc (Fget): Return empty matrix if no values are found. - Bug #32067. - - 2011-01-06 Konstantinos Poulios - - * txt-eng-ft.h, txt-eng-ft.cc: Remove dependency on graphics.h. - (ft_render::set_font): New arguments list. - (ft_render::text_to_pixels): New method. - * graphics.cc (text::properties::update_text_extent): Adapt the call - to ft_render::set_font. - (text::properties::get_extent_matrix): New function. - (text::properties::update_text_extent): Function rewrite. - * gl-render.cc (opengl_renderer::set_font): Likewise. - (opengl_renderer::text_to_pixels): - Make use of ft_render::text_to_pixels. - (opengl_renderer::render_text): Simplify. - (opengl_renderer::draw_text): Make text drawing aware of the text - extent property. - * gl-render.h (opengl_renderer::text_to_pixels): Arguments reordering. - (opengl_renderer::get_transform): New function. - * gl2ps-renderer.cc (glps_renderer::render_text): Adapt the call to - text_to_pixels. - (glps_renderer::alignment_to_mode): New function. - (glps_renderer::draw_text): Overload inherited function. - * gl2ps-renderer.h (glps_renderer::alignment_to_mode): New function. - * graphics.h.in: Add dependency on txt-eng-ft.h. - (class text::properties): Tag horizontalalignment and verticalalignment - with "u" qualifier. - (text::properties::get_extent_matrix, get_pixels, - update_horizontalalignment, update_verticalalignment): New functions. - (text::properties::renderer): New class member of type ft_render. - (text::properties::pixels): New class member of type uint8NDArray. - - 2011-01-06 John W. Eaton - - * DLD-FUNCTIONS/rand.cc (Frandperm): Tag call to floor with gnulib::. - * DLD-FUNCTIONS/gcd.cc (divide): Tag calls to floor with gnulib::. - * ov-scalar.cc (octave_scalar::map): Tag floor with gnulib::. - * ov-cell.cc (octave_cell::save_hdf5): Tag call to floor with gnulib::. - * pr-output.cc (engineering_exponent, num_digits, - octave_print_internal_template): Tag call to floor with gnulib::. - * graphics.cc: Consistently use std::ceil. - (axes::properties::get_axis_limits): Tag calls to floor with gnulib::. - (axes::properties::calc_ticks_and_lims): Likewise. - - 2011-01-05 John W. Eaton - - Bug #32060. - - * ov-fcn.h (octave_function::mark_as_private_function): Now virtual. - * ov-usr-fcn.h (octave_function::mark_as_private_fucntion): - New function. Mark subfunctions as private also. - * symtab.cc, symtab.h - (symbol_table::mark_subfunctions_in_scope_as_private, - symbol_table::fcn_info::mark_subfunction_in_scope_as_private, - symbol_table::fcn_info::fcn_info_rep::mark_subfunction_in_scope_as_private): - New functions. - - 2011-01-04 John W. Eaton - - * ov-base-sparse.cc (octave_base_sparse::print_raw): Improve - display of percentage full. Bug #32011. - - 2011-01-04 John W. Eaton - - * ov-typeinfo.cc (Ftypeinfo): Return cell array of character - strings, not character array. Bug #32050. - - 2011-01-03 Rik - - * data.cc (islogical, isnumeric): Add tests to check sparse forms of - logical matrices. - - 2011-01-02 Jaroslav Hajek - - * ov-bool-sparse.h (octave_sparse_bool_matrix::is_numeric_type): New - virtual method override. - - 2010-12-31 Rik - - * toplev.cc (system): Add additional calling form "shell_cmd" to - documentation. - - 2010-12-31 Rik - - * data.cc (islogical, isinteger, iscomplex, isfloat, isempty, - isnumeric, ismatrix, issorted): Improve docstring - * graphics.cc (ishandle): Improve docstring - * lex.ll (iskeyword): Improve docstring - * mappers.cc (isalnum, isalpha, isascii, iscntrl, isdigit, isinf, - isgraph, islower, isna, isnan, isprint, ispunct, isspace, isupper, - isxdigit): Improve docstring - (finite/isfinite): Make finite an alias for isfinite rather than the - reverse. Improve docstring. - * ov-cell.cc (iscell, iscellstr): Improve docstring - * ov-class.cc (isobject, ismethod): Improve docstring - * ov-null-mat.cc (isnull): Improve docstring - * ov-struct.cc (isstruct, isfield): Improve docstring - * ov-usr-fcn.cc (isargout): Improve docstring - * sparse.cc (issparse): Improve docstring - * strfns.cc (ischar): Improve docstring - * sysdep.cc (isieee): Improve docstring - * utils.cc (isvarname, is_absolute_filename, - is_rooted_relative_filename, isindex): Improve docstring - * variables.cc (isglobal): Improve docstring - - 2010-12-28 Rik - - * data.cc (and, ctranspose, eq, ge, gt, ldivide, le, lt, minus, - mldivide, mpower, mrdivide, mtimes, ne, not, or, plus, power, rdivide, - times, transpose, uminus, uplus): Improve docstrings for functions - which emulate operators. Add Seealso cross-referencing. - - 2010-12-28 David Bateman - - * ls-mat5.cc (save_mat5_array_length (const float*, octave_idx_type, - bool)): Take in to account the 4 bytes of padding for an odd number - of elements in single precision arrays. - - 2010-12-27 Rik - - * syscalls.cc (stat): Add additional calling form using file descriptor - fid to docstring. - - 2010-12-26 Michael Godfrey - - * gammainc.cc: Add @tex blocks to docstring. - - 2010-12-25 Rik - - * DLD-FUNCTIONS/str2double.cc: Fix bug in converting "numberi" strings - such as "2i". Add ability to process special value "NA". Rewrite - docstring. - - 2010-12-25 Rik - - * input.cc (PS1): Correct use of xref macro to remove Tex warning. - - 2010-12-22 Jordi Gutiérrez Hermoso - - * input.cc (PS1): Give an example of how PS1 can use ANSI escape - codes for getting a colourised prompt. - * oct-hist.cc (history): Correct documentation about how - history("-r") appends to history, doesn't replace it. - - 2010-12-22 Judd Storrs - - * data.cc (Fvec): New optional second argument to set dimension - of result. - - 2010-12-18 Konstantinos Poulios - - * graphics.h.in (class axes::properties): Tag xtickmode, ytickmode - and ztickmode with "u" qualifier. - (axes::properties::update_xtickmode, axes::properties::update_ytickmode - axes::properties::update_ztickmode): New functions. - - 2010-12-18 John W. Eaton - - * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Simplify file name/id logic. - Bug #31910. - - 2010-12-17 Rik - - * oct-parse.yy (builtin): Remove seealso reference to deprecated - function dispatch. - - 2010-12-17 Konstantinos Poulios - - * graphics.h.in (class text::properties): New properties positionmode, - rotationmode, horizontalalignmentmode, verticalalignmentmode. - * graphics.cc (axes::properties::init, axes::properties::set_defaults): - Set mode to auto for all initialized positioning properties. - (axes::properties::set_xlabel,set_ylabel,set_zlabel,set_title): - Revert to auto-positioning mode and turn clipping off when title or - labels are set. - * gl-render.cc (opengl_renderer::draw_axes): Disable auto-positioning - of manually positioned title and axes labels. - - 2010-12-17 Konstantinos Poulios - - * graphics.h.in (class axes::properties): Change default value for - fontsize from 12 to 10. - * graphics.cc (axes::properties::set_defaults): Likewise. - - 2010-12-15 John W. Eaton - - Bug #31883. - - * oct-hist.cc (initialize_history): Call command_history::initialize. - - * octave.cc (gripe_safe_source_exception): New function. - (safe_source_file): New function. - (execute_startup_files): Call safe_source_file instead of source_file. - (execute_command_line_file): Likewise. Don't handle exceptions here. - (execute_eval_option_code): Also catch octave_execution exception. - - 2010-12-15 John W. Eaton - - Bug #31861. Also bug #31286. - - * lex.h (lexical_feedback::defining_func): Now int instead of bool. - lex.ll (is_keyword_token): Increment lexer_flags.defining_func - instead of setting it to true. - (lexical_feedback::init): Set defining_func to 0 instead of false. - * oct-parse.yy (recover_from_parsing_function): Decrement - lexer_flags.defining_func here. - * input.cc (input_event_hook): Don't do anything if we are - lexer_flags.defining_func is nonzero. - - 2010-12-13 Rik - - * ov-struct.cc (isfield): Additional test for cellstring of field names. - - 2010-12-13 Rik - - * data.cc (mod): Additional tests for mod with non-integer real values. - - 2010-12-12 Jaroslav Hajek - - * DLD-FUNCTIONS/lookup.cc (Flookup): Drop support for the "i" option. - - 2010-12-09 Marco Atzeri - - * mappers.cc: In test for gamma, expect Inf for gamma(-1), not NaN. - Bug #31772. - - 2010-12-08 John W. Eaton - - * graphics.h.in (base_property::do_set): Don't reverse order of - children. Bug #31822. - - 2010-12-08 John W. Eaton - - * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find_user_function): - Return if an error occurs in out_of_date_check. - - 2010-12-07 John W. Eaton - - * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find): If an - error occurred during the first call to xfind, don't try again. - - 2010-12-07 John W. Eaton - - * oct-parse.yy (case_list): Also accept default_case by itself. - Bug #31793. - - 2010-12-01 John W. Eaton - - * pt-pr-code.cc (tree_print_code::visit_octave_user_function_trailer): - Don't indent or print "endfunction" here. - * ov-usr-fcn.cc (ov_user_script::do_multi_index_op): Save and - set tree_evaluator::statement_context, not - tree_evaluator::in_fcn_or_script_body. - (ov_user_function::do_multi_index_op): Likewise. - * pt-eval.cc: Initialize tree_evaluator::statement_context, not - tree_evaluator::in_fcn_or_script_body. - (tree_evaluator::visit_break_command): Check statement_context, - not in_fcn_or_script_body. - (tree_evaluator::visit_continue_command): Likewise. - (tree_evaluator::visit_return_command): Likewise. - (visit_statement): Also echo commands in scripts if - Vecho_executing_commands & ECHO_SCRIPTS is true. - * pt-eval.h (tree_evaluator::in_fcn_body, - tree_evaluator::in_script_body): New static variables. - (tree_evaluator::): Now an enum. - (tree_evaluator::in_function_or_script_body): Now an enum. - Rename from in_fcn_or_script_body. - - 2010-12-01 Kai Habel - - * DLD-FUNCTIONS/fltk_backend.cc (fltk_gui_mode): Fix gui mode - problems when set to none. - - 2010-11-26 Kai Habel - - * DLD-FUNCTIONS/fltk_backend.cc (find_uimenu_children, - __fltk_redraw__): Consider hidden handles here. - - 2010-11-26 John W. Eaton - - * defaults.cc (FEXEC_PATH): Only call set_exec_path if nargin is - greater than zero. - - 2010-11-25 Kai Habel - - * DLD-FUNCTIONS/fltk_backend.cc (fltk_gui_mode): New - function to set GUI mode. - (__fltk_uigetfile__): Remove nargout from argument list. - (plot_window): Remove gui_mode enum here. - - 2010-11-25 John W. Eaton - - * defaults.cc (set_exec_path): Append EXEC_PATH to PATH. Store - only extra directories in EXEC_PATH. - (FEXEC_PATH): Update doc string. - Bug #31695. - - 2010-11-22 John W. Eaton - - * defun.cc (defun_isargout): Cast nout to octave_idx_type in call - to std::min. - - 2010-11-21 Kai Habel - - * DLD-FUNCTIONS/fltk-backend.cc (__fltk_uigetfile__): New function - for GUI file dialogs. - * graphics.cc (property_list::set): Indentation fix. - - 2010-11-20 Ben Abbott - - * graphics.h.in: Change intended for 11272. - - 2010-11-19 John W. Eaton - - Bug #31706. - - * mex.h, mex.cc (mxArray::dup): Rename from clone. Change all - uses and derived classes. - (mxArray_octave_value::dup): Convert to mxArray object here. - - 2010-11-19 John W. Eaton - - Bug #31707. - - * mex.cc (mex::free): Don't warn about skipping memory not - allocated by mxMalloc, mxCalloc, or mxRealloc. - - 2010-11-18 Daisuke TAKAGO - - * gl-render.cc (opengl_renderer::draw_line): - Layer markers in 2D plots. - - 2010-11-18 John W. Eaton - - Bug # 31689. - - * ov-str-mat.cc (octave_char_matrix_str::save_ascii): - Adapt to change in charMatrix::row_as_string function. - * DLD-FUNCTIONS/md5sum.cc: New tests. - - 2010-11-17 John W. Eaton - - * pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue1): Also stash - the directory name of the parent function in the newly created - anonymous function. Bug #31484. - - 2010-11-17 John W. Eaton - - * oct-parse.yy (parse_fcn_file): Protect and set global_command - to 0 before calling yyparse. - * toplev.cc (main_loop): Likewise. - - * oct-parse.yy (eval_string): Set global_command to 0 after - protecting it and before calling yyparse. - * input.cc (get_debug_input): Likewise. - - 2010-11-14 Michael Goffioul - - * graphics.h.in (graphics_object::get_ancestor): New method. - * graphics.cc (graphics_object::get_ancestor): Likewise. - (convert_text_position, convert_cdata): Use it. - (xget_ancestor): Remove obsolete function. - * DLD_FUNCTIONS/fltk_backend.cc (plot_window::uimenu_update, - fltk_backend::update): Replace xget_ancestor with - graphics_objects::get_ancestor. - - 2010-11-13 John W. Eaton - - * graphics.h.in (figure::properties::filename): Make writable. - Bug #31450. - - 2010-11-12 John W. Eaton - - * Makefile.am (nodist_liboctinterp_la_SOURCES): Remove - $(OPT_HANDLERS) from the list. Bug #31623. - - 2010-11-11 John W. Eaton - - * data.cc: New tests for cat. Enable 4 asserts that were disabled. - - 2010-11-11 Kai Habel - - * fltk-backend.cc (plot_window::uimenu_update, - fltk_backend::update): Add prefix 'ID_' to property ids to avoid - name clash on windows systems. - * graphics.cc (gnuplot_backend::update): Ditto. - * genprops.awk (emit_declarations, emit_source): Ditto. - - 2010-11-11 John W. Eaton - - Bug #31165. - - * symtab.h (symbol_table::parent_classes): New static function. - * symtab.cc (out_of_date_check): Also look for methods defined - in parent classes of dispatch_type. - (symbol_table::fcn_info::fcn_info_rep::load_class_method): Call - parent_classes instead of accessing parent_map directly. - - 2010-11-10 John W. Eaton - - * octave.cc (octave_main): Call octave_ieee_init here. - * sysdep.cc (sysdep_init): Not here. - - 2010-11-10 John W. Eaton - - * sysdep.cc: Eliminate special case for __DECCXX. - - 2010-11-10 John W. Eaton - - * sysdep.cc (sysdep_init): Eliminate special case for NeXT systems. - (malloc_handler, NeXT_init): Delete. - - 2010-11-10 John W. Eaton - - * sighandlers.cc (MAYBE_ACK_SIGNAL): Delete macro and all uses. - (sigchld_handler): Delete special case for __EMX__. - * sysdep.cc (sysdep_init): Eliminate special case for __EMX__. - (OS2_init, Fextproc): Delete. - - 2010-11-10 John W. Eaton - - * sysdep.cc (sysdep_init): Eliminate special case for SCO. - (SCO_init): Delete. - - 2010-11-10 John W. Eaton - - * DLD-FUNCTIONS/__dispatch__.cc: Rename from dispatch.cc. - Move tests to scripts/deprecated/dispatch.m. - (F__dispatch__): Rename from Fdispatch. - - * DLD-FUNCTIONS/module-files: Add __dispatch__.cc to the list. - Remove dispatch.cc from the list. - - 2010-11-10 John W. Eaton - - * oct-parse.yy (Fbuiltin): Move here from DLD-FUNCTIONS/dispatch.cc. - - 2010-11-10 Kai Habel - - * fltk-backend.cc (fltk_uimenu::update_accelerator - fltk_uimenu::update_callback, fltk_uimenu::update_enable, - fltk_uimenu::update_foregroundcolor fltk_uimenu::update_visible): - Check if find_item was succesful. - (fltk_uimenu::update_seperator): Make sure we don't write beyond - limits of menubar structure. - - 2010-11-10 John W. Eaton - - Bug #31491. - - * pt-pr-code.cc, pt-pr-code.h (tree_print_code::print_fcn_handle_body): - New function. - * ov-fcn-handle (octave_fcn_handle::print_raw): Use it. - * pt-pr-code.cc (tree_print_code::visit_anon_fcn_handle): Likewise. - * pt-pr-code.h (tree_print_code::suppress_newline): Rename from - printing_newlines. Now int. Change all uses. - * pt-pr-code.cc (tree_print_code::newline): Only set - beginning_of_line if newline is printed. - - 2010-11-10 John W. Eaton - - Bug #31567. - - * ov-fcn.h (octave_base_value::is_class_constructor) - octave_base_value::is_class_method): New optional character - string argument. - * ov-usr-fcn.h (octave_usr_fcn::is_class_constructor) - octave_usr_fcn::is_class_method): New optional arg. If this - argument is not empty, also check it against the name of the - dispatch class. - * ov-class.cc (Fclass): Allow class function to be called inside - a class method. Require that the to-be-constructed object is of - the same class as the class constructor or method. - - 2010-11-09 John W. Eaton - - * lex.ll (handle_number): Set lexer_flags.looking_for_object_index - to false here. Fixes bug #31608. - - 2010-11-09 John W. Eaton - - * gl-render.cc (make_marker_list): Call fmod instead of mod. - - * data.cc (Frem): Use xrem instead of fmod and fmodf. - (Fmod): Use xmod instead of mod. - - 2010-11-08 Kai Habel - - * fltk-backend.cc (fltk_uimenu::do_find_uimenu_children): - Simplify. Remove unused code. - (fltk_uimenu::update_submenu): Remove unused function. - (fltk_uimenu::add_to_menu, fltk_uimenu::remove_from_menu): - Simplify. Get properties for valid objects only. - - 2010-11-03 Ben Abbott - - * gl-render.cc: Do not give rendering error for uimenus. - - 2010-11-03 John W. Eaton - - * DLD-FUNCTIONS/cquad.cc: If we don't have copysign but we do - have _copysign, define copysign to be _copysign. - - 2010-11-02 John W. Eaton - - * DLD-FUNCTIONS/cquad.cc (Fcquad): Use octave_Inf, not INFINITY. - - 2010-11-02 David Bateman - - * ls-hdf5.cc (bool hdf5_get_scalar_attr (hid_t, hid_t, - const char *, void *), herr_t hdf5_add_scalar_attr - (hid_t, hid_t, const char *, void *)): New functions. - (herr_t hdf5_add_scalar_attr (hid_t, const char *)): Remove static - definition to make this function visible externally. - * ls-hdf5.h (extern OCTINTERP_API bool hdf5_check_attr (hid_t, - const char *), extern OCTINTERP_API bool hdf5_get_scalar_attr - (hid_t, hid_t, const char *, void *buf), extern OCTINTERP_API herr_t - hdf5_add_attr (hid_t, const char *), extern OCTINTERP_API herr_t - hdf5_add_scalar_attr (hid_t, hid_t, const char *, void *)): Function - declarations. - * ov-range.cc (bool octave_range::save_hdf5 (hid_t, const char *, - bool)): Save the number of elements in the range as an HDF5 attribute. - (bool octave_range::load_hdf5 (hid_t, const char *)): If an HDF5 - attribute containing the number of elements exists use it to ensure - the correct number of elements in the range. - - 2010-11-01 David Bateman - - * gl-render.cc (void opengl_renderer::draw_patch (const - patch::properties &)): Draw clipped contours of patches. - * graphics.cc (template static void get_array_limits - (const Array&, double&, double&, double&)): Don't need to test - for NaN as comparison is always false. - (Matrix children_property::do_get_children (bool) const): New method of - new children_property class. - (void children_property::do_delete_children (bool)): Ditto. - (void base_properties::remove_child (const graphics_handle&)): Delete. - (void base_properties::set_children (const octave_value&)): Delete. - (void base_properties::delete_children (void)): Delete. - (base_properties::update_axis_limits (const std::string&, - const graphics_handle&) const): New method. - (void base_graphics_object::update_axis_limits (const std::string&, - const graphics_handle&)): New Method. - (Matrix base_properties::get_children_internal (bool) const): Delete. - (Matrix base_properties::get_children (void) const): Delete. - (Matrix base_properties::get_hidden_children (void) const): Delete. - (void axes::update_axis_limits (const std::string&, - const graphics_handle&): New Method. - (void hggroup::properties::update_limits (void) const): New method. - (void hggroup::properties::update_limits (const graphics_handle&) - const): New method. - (void hggroup::update_axis_limits (const std::string&, - const graphics_handle&)): New method. - * graphics.h.in (class children_property): New class. - (class base_properties): Use it. - (base_graphics_object::update_axis_limits(const std::string&, - const graphics_handle&)): New method. - (graphics_object::update_axis_limits(const std::string&, - const graphics_handle&)): New method. - (axes::update_axis_limits(const std::string&, - const graphics_handle&)): New method. - (hggroup::adopt (const graphics_handle&)): Use it - (void hggroup::properties::update_limits (void) const): Remove inline - definition of the methid. - (void hggroup::properties::update_limits (const graphics_handle&) - const): New method. - (void hggroup::update_axis_limits (const std::string&, - const graphics_handle&)): New method. - - 2010-10-31 Michael Goffioul - - * xnorm.h (xnorm, xcolnorms, xrownorms, xfrobnorm): tag with - OCTINTERP_API. - - 2010-10-31 Kai Habel - - * fltk-backend.cc (find_uimenu_children): Remove template argument. - (do_find_uimenu_children): New function. - - 2010-10-29 David Bateman - - * graphics.cc (octave_value patch::properties::get_color_data - (void) const): Don't call convert_data is the facevertexcdata - property is undefined or empty. - * gl-render.cc (void opengl_renderer::draw_patch - (const patch::properties &)): Set ec_mode to 0 if edgecolor is "none". - Set fc_mode to 0 if facecolor is "none". - - 2010-10-29 Ben Abbott - - * gl-render.cc: Crop ticks, ticklabels, and gridlines for OpenGL - backend. - - 2010-10-28 Konstantinos Poulios - - * graphics.cc (normalized_aspectratios, max_axes_scale): - New file-scope static function - (updating_aspectratios): New file-scope variable. - (axes::properties::update_aspectratios, axes::update_axis_limits): - Return immediately if updating_aspecratios is true. - (axes::properties::update_aspectratios): - If dataaspectratiomode is set to manual this function will try to - respect it even after changes in xlim, ylim, zlim. - If both dataaspectratiomode and plotboxaspectratiomode is set to - manual this function will try to recalulate xlim, ylim, zlim - depending on the status of xlimmode, ylimmode, zlimmode. If - altering xlim, ylim, zlim is not possible, plotboxaspectratio will - be overriden. - * graphics.h.in (class axes::properties): Tag dataaspectratio, - dataaspectratiomode, plotboxaspectratio, and - plotboxaspectratiomode with "u" qualifier. - (axes::update_dataaspectratio, - axes::update_dataaspectratiomode, - axes::update_plotboxaspectratio, - axes::update_plotboxaspectratiomode): New functions. - - 2010-10-25 John W. Eaton - - * octave.cc (octave_main): Use F77_CHAR_ARC_LEN macro to pass - character string length in call to xerbla. - - 2010-10-25 Kai Habel - - * gl-render.cc (opengl_renderer::draw): Ignore uimenu objects here. - * graphics.h.in (class OCTINTERP_API uimenu): New graphics object. - * graphics.cc (lookup_object_name): Add uimenu here. - (make_graphics_object_from_type): Likewise. - (property_list::set): Likewise. - (property_list::lookup): Likewise. - (root_figure::init_factory_properties): Likewise. - (__go_uimenu__): New function. - * DLD-Functions/fltk-backend.cc (OpenGL_fltk::resize): Make public. - (script_cb): New function. - (fltk_uimenu): New class. - (plot_window::plot_window): Initialize fltk_uimenu object. - (plot_window::~plot_window): Delete fltk_uimenu object. - (plot_window::show_menubar): New function. - (plot_window::hide_menubar): New function. - (plot_window::uimenu_update): New function. - (plot_window::handle): Do not evaluate FLTK events when figure - is deleted. - (figure_manager::uimenu_update): New function. - (figure_manager::toggle_menubar_visibility): New functions. - (figure_manager::do_toggle_menubar_visibility): New function. - (figure_manager::do_uimenu_update): New function. - (fltk_backend::uimenu_set_fltk_label): New function. - (fltk_backend::update): Add figure and uimenu updates. - - 2010-10-24 Rik - - * DLD-FUNCTIONS/tril.cc, syscalls.cc: Docstring improvements. - - 2010-10-24 Rik - - * variables.cc: Deprecate is_global function - - 2010-10-23 John W. Eaton - - * file-io.cc (Ffopen): Only handle fopen ("all") case if nargout - is 0 or 1. - - 2010-10-22 John W. Eaton - - * octave.cc (usage): Put whitespace before and after usage message. - (octave_main): If getopt_long returns '?', it means an - unrecognized option was encountered. - Panic if default case in option switch statement is reached. - (verbose_usage, short_opts, usage_string): Remove '?' as an - alias for 'h' in the list of possible options. - Fixes bug #31423. - - 2010-10-22 John W. Eaton - - * oct-parse.yy (load_fcn_from_file): Also strip directory when - computing function name from filename. Bug #31395. - - 2010-10-21 Gunnar FarnebÀck - - * mex.cc (mxArray_number::as_octave_value): Convert single - matlab array to single octave array instead of to double octave - array. - - 2010-10-21 John W. Eaton - - * gripes.h: Include lo-array-gripes.h. - - 2010-10-21 John W. Eaton - - * ov-float.cc, ov-flt-re-mat.cc, ov-re-mat.cc, ov-re-sparse.cc, - ov-scalar.cc: Use gripe_nan_to_character_conversion. - - * ops.h, ov-base-mat.cc, ov-base-scalar.cc, ov-complex.h, - ov-cx-mat.cc, ov-cx-sparse.cc, ov-float.h, ov-flt-complex.h, - ov-flt-cx-mat.cc, ov-flt-re-mat.cc, ov-range.cc, ov-re-mat.cc, - ov-re-sparse.cc, ov-scalar.h: Use gripe_nan_to_logical_conversion. - - 2010-10-20 John W. Eaton - - * toplev.cc (Fsystem): Allow optional RETURN_OUTPUT and TYPE - arguments to be specified independently. Update doc string. - - 2010-10-18 John W. Eaton - - * load-path.cc (load_path::do_find_first_of, - load_path::do_find_all_first_of): Also search path for relative - filenames. - - 2010-10-17 John W. Eaton - - * DLD-FUNCTIONS/tril.cc: Use Octave copyright notice instead of - generic "This program is free software" notice. - - * toplev.cc (Fwarranty): Say "GNU Octave" instead of "This program". - - 2010-10-16 John W. Eaton - - * mxarray.h.in (mxArray::is_function_handle): New virtual function. - * mex.cc (mxArray_base::is_function_handle): New pure virtual function. - (mxArray_octave_value::is_function_handle): New function. - (mxArray_matlab::is_function_handle): New function. - (mxIsFunctionHandle): New function. - * mexproto.h (mxIsFunctionHandle): Provide decl. - - 2010-10-14 John W. Eaton - - * sparse.cc: Rename from DLD-FUNCTIONS/sparse.cc. Include - defun.h, not defun-dld.h. - (Fissparse, Fsparse, Fspalloc): Use DEFUN, not DEFUN_DLD. - * Makefile.am (DIST_SRC): Add sparse.cc to the list. - * DLD-FUNCTIONS/module-files: Remove sparse.cc from the list of files. - - 2010-10-09 Ben Abbott - - * gl-render.cc: Treat images with scalar unique(x/ydata) like Matlab. - - 2010-10-08 John W. Eaton - - * octave.cc (maximum_braindamage): - Set do_braindead_shortcircuit_evaluation to true. - Disable Octave:possible-matlab-short-circuit-operator warning. - * oct-parse.yy (if_cmd_list1, elseif_clause, loop_command): - Mark conditions in IF and WHILE statements for braindead - short-circuit behavior. - * pt-binop.cc (Vdo_braindead_shortcircuit_evaluation): New - static variable. - (Fdo_braindead_shortcircuit_evaluation): New function. - (tree_binary_expression::rvalue1): Perform short-circuit - evaluation of | and & expressions that are conditions of WHILE - and IF statements if Vdo_braindead_shortcircuit_evaluation is true. - * pt-binop.h - (tree_binary_expression::eligible_for_braindead_shortcircuit): - New data member. Initialize it in class constructors. - (tree_binary_expression::mark_braindead_shortcircuit): New function. - * pt-exp.h (tree_expression::mark_braindead_shortcircuit): - New virtual function. - - 2010-10-08 Ben Abbott - - * graphics.h.in: Properly set image pixel size when unique(x/ydata) - is scalar. - - 2010-10-07 Rik - - * DLD-FUNCTIONS/conv2.cc (convn): Update docstring. Add 1 new test. - - 2010-10-07 John W. Eaton - - * DLD-FUNCTIONS/conv2.cc (convn): Style fixes. Edit docstring. - - 2010-10-07 John W. Eaton - - * file-io.cc (do_stream_open): Use fileno instead of ::fileno to - avoid problems if fileno is a macro. - - 2010-10-05 John W. Eaton - - * oct-stdstrm.h (octave_stdiostream::octave_stdiostream): Use - fileno instead of ::fileno to avoid problems if fileno is a macro. - - 2010-10-04 Shai Ayal - - * graphics.h.in (axis::properties::pixel_size): New function. - (axis::properties::pixel_xsize,axis::properties::pixel_ysize): - New functions, use axis::properties::pixel_size - (axis::properties::update_ydata,axis::properties::update_xdata): - Use axis::properties::pixel_size functions - - * graphics.cc (__image_pixel_size__): New function uses - axis::properties::pixel_size functions - - 2010-10-01 John W. Eaton - - * graphics.h.in (class caseless_str): Move to - liboctave/caseless-string.h. - - 2010-10-01 John W. Eaton - - * graphics.cc (base_properties::get_dynamic): Create and return - octave_scalar_map object instead of Octave_map. - (base_graphics_object::remove_all_listeners): Use octave_map - instead of Octave_map. - (base_graphics_object::values_as_string): Likewise. - - * graphics.h.in, graphics.cc (property_list::as_struct): - Return octave_scalar_map instead of Octave_map. - (base_graphics_object::values_as_struct): Likewise. - (graphics_object:values_as_struct): Likewise. - (graphics_object::set): Accept octave_map instead of Octave_map. - - * genprops.awk: Use octave_map instead of Octave_map in - generated code. Convert second arg to octave_value in call to - octave_map::assign. - - 2010-10-01 John W. Eaton - - * mex.cc (mxArray_struct::as_octave_value): Use octave_map - instead of Octave_map. - - 2010-10-01 John W. Eaton - - * ov-base.h: Delete forward decl for Octave_map class. - - 2010-10-01 John W. Eaton - - * ov-struct.h (octave_struct (const Octave_map&)): Delete constructor. - - 2010-10-01 John W. Eaton - - * ov-fcn-inline.cc (octave_fcn_inline::map_value): Use - octave_scalar_map and octave_map instead of Octave_map. - - 2010-10-01 John W. Eaton - - * variables.cc (symbol_info_list::map_value): Use - octave_scalar_map and octave_map instead of Octave_map. - - 2010-09-30 Jaroslav Hajek - - * oct-map.h (octave_fields::nil_rep): Make a static function. - (octave_fields::octave_fields (void)): Use it here. - - 2010-09-30 John W. Eaton - - * toplev.cc (octave_config_info): Use Octave_scalar_map instead - of Octave_map. - * sighandlers.cc (make_sig_struct, FSIG): Likewise. - - * utils.cc (decode_subscripts): Use octave_map instead of Octave_map. - * octave.cc (F__version_info__): Likewise. - * pt-eval.cc (visit_complex_for_command): Likewise. - * pt-idx.cc (tree_index_expression::lvalue): Likewise. - - 2010-09-30 John W. Eaton - - * DLD-FUNCTIONS/gcd.cc: Style fixes. - - 2010-09-30 John W. Eaton - - * oct-errno.cc.in (octave_errno::do_list, octave_errno::list): - Use octave_scalar_map instead of Octave_map. - - 2010-09-30 Jordi Gutiérrez Hermoso - - * DLD-FUNCTIONS/gcd.cc (divide): New function, complex integer - division with remainder. - (simple_gcd): Overload for complex values. - (extended_gcd): Ditto. - (do_simple_gcd): Dispatch for complex gcd. - (do_extended_gcd): Ditto. - (Fgcd): Mention that complex gcd is now also possible. - - 2010-09-30 Jordi Gutiérrez Hermoso - - * DLD-FUNCTIONS/gcd.cc (extended_gcd): Fix bug that didn't - distinguish the two output coefficients. - (Fgcd): Fix off-by-one bug and typo from copy-pasted code. - - 2010-09-30 Jaroslav Hajek - - * oct-parse.yy (Fautoload): Replace Octave_map by octave_map. - * ov-fcn-handle.cc (Ffunctions): Replace Octave_map by - octave_scalar_map. - - 2010-09-30 Jaroslav Hajek - - * help.cc (F__which__): Use octave_map instead of Octave_map. - * load-save.cc (do_load, save_fields, save_vars): Use - octave_scalar_map instead of Octave_map. - - 2010-09-30 Jaroslav Hajek - - * debug.cc (Fdbstatus, Fdbstack): Use octave_map instead of - Octave_map. - * error.cc (warning_options, initialize_warning_options, - pr_where, Frethrow, Ferror, Fwarning, Flasterror): Use - octave_scalar_map or octave_map instead of Octave_map. - - 2010-09-30 Jaroslav Hajek - - * oct-errno.cc (octave_errno::list, octave_errno::do_list): Use - octave_scalar_map instead of Octave_map. - * oct-errno.h: Update decls. - - 2010-09-30 Jaroslav Hajek - - * pt-idx.cc (tree_index_expression::make_arg_struct): Use octave_map - instead of Octave_map. - * pt-idx.h: Update decl. - - 2010-09-29 Jaroslav Hajek - - * oct-map.cc (octave_map::contents): Fix off-by-1 error. - - 2010-09-29 John W. Eaton - - * DLD-FUNCTIONS/__glpk__.cc (OCTAVE_GLPK_GET_REAL_PARAM, - OCTAVE_GLPK_GET_INT_PARAM): Use GETFIELD to access map fields, - not CONTENTS. - * DLD-FUNCTIONS/amd.cc (Famd): Likewise. - * DLD-FUNCTIONS/luinc.cc (Fluinc): Likewise. - - 2010-09-29 John W. Eaton - - * DLD-FUNCTIONS/urlwrite.cc (F__ftp_dir__): Use octave_scalar_map - instead of Octave_map. - - 2010-09-29 John W. Eaton - - * DLD-FUNCTIONS/luinc.cc (Fluinc): Use octave_scalar_map - instead of Octave_map. - - 2010-09-29 John W. Eaton - - * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Use octave_scalar_map - instead of Octave_map. Use scalar values where appropriate in - call to glpk. - (OCTAVE_GLPK_GET_REAL_PARAM, OCTAVE_GLPK_GET_INT_PARAM): - Update for octave_scalar_map. - - 2010-09-29 John W. Eaton - - * DLD-FUNCTIONS/amd.cc (Famd): Use octave_scalar_map instead of - Octave_map. - * DLD-FUNCTIONS/cellfun.cc (get_output_list): Likewise. - - 2010-09-29 John W. Eaton - - * DLD-FUNCTIONS/dispatch.cc (Fdispatch): Use octave_scalar_map - instead of Octave_map. - * DLD-FUNCTIONS/fltk_backend.cc (plot_window::handle): Likewise. - * DLD-FUNCTIONS/regexp.cc (octregexp): Likewise. - - 2010-09-29 John W. Eaton - - * DLD-FUNCTIONS/eigs.cc (Feigs): Use octave_scalar_map instead - of Octave_map. - - 2010-09-29 John W. Eaton - - * DLD-FUNCTIONS/getpwent.cc (mk_pw_map): Use octave_scalar_map - instead of Octave_map. - * DLD-FUNCTIONS/getgrent.cc (mk_gr_map): Likewise. - * DLD-FUNCTIONS/getrusage.cc (Fgetrusage): Likewise. - - 2010-09-29 John W. Eaton - - * DLD-FUNCTIONS/time.cc (intfield, stringfield): New functions. - (mk_tm_map, extract_tm): Arg is now octave_scalar_map instead of - Octave_map. - (extract_tm): Use local intfield and setfield functions. - (Fmktime, Fstrftime): Use octave_scalar_map instead of Octave_map. - - 2010-09-28 John W. Eaton - - * Cell.h, Cell.cc (Cell::Cell (const std::list&)): - New constructor. - - 2010-09-28 John P. Swensen - - * DLD-FUNCTIONS/__magick_read__.cc (maybe_initialize_magick): - Warn on initialization of *Magick if QuantumDepth is less than 32. - - 2010-09-28 John P. Swensen - - * DLD-FUNCTIONS/__magick_read__.cc (F__magick_format_list__): - New function. - - 2010-09-28 John P. Swensen - - * DLD-FUNCTIONS/__magick_read__.cc (encode_uint_image) - (encode_bool_image): Ensure bit depth encoding is correct for - logical, uint8, and uint16 images. - - 2010-09-28 Jaroslav Hajek - - * xpow.cc (xpow (double, const Matrix&)): Ensure real result for - positive base. - (xpow (double, const Matrix&)): Likewise. - - 2010-09-28 Jaroslav Hajek - - * error.cc (interpreter_try): New function. - * error.h: Declare it. - * ov-fcn-handle.cc (octave_fcn_binder::maybe_binder): Use it here. - * variables.cc (safe_symbol_lookup): Also here. - - 2010-09-27 John W. Eaton - - * gl-render.cc (opengl_renderer::draw_axes): Reverse order in - which child objects are processed. - - 2010-09-26 Rik - - * load-path.cc: Use single quotes for regex when possible. - * DLD-FUNCTIONS/regexp.cc (regexp): Update docstring to highlight - differences between POSIX and PCRE regex. - - 2010-09-26 Rik - - * load-path.cc: Use single quotes for regular expression patterns when - possible. - - 2010-09-26 Rik - - * DLD-FUNCTIONS/regexp.cc (regexp, regexprep, regexpi): Update - docstrings to more fully explain PCRE. Modify advanced tests to run - only run when PCRE is present. - - 2010-09-25 John W. Eaton - - * toplev.cc (Fquit): Allow any number of output parameters. - - 2010-09-25 Jaroslav Hajek - - * DLD-FUNCTIONS/gcd.cc (Fgcd): Rewrite. Use more efficient code. - Specialize for simple/extended Euclid. Handle integer arguments. - - 2010-09-24 Rik - - * DLD-FUNCTIONS/regexp.cc (regexp, regexprep): Update docstring to - discuss limits when not compiled with PCRE. - - 2010-09-23 John W. Eaton - - * Makefile.am (ALL_DEF_FILES): New variable. - (DEF_FILES): Don't include $(DLD_DYNAMIC_DEF_FILES) in the list. - (DEF_FILES DLD_DYNAMIC_DEF_FILES): Fix dependency info. - (doc-files): Depend on $(ALL_DEF_FILES), not $(DEF_FILES). - - 2010-09-22 Jaroslav Hajek - - * xpow.cc (elem_xpow (float, const NDArray&), - elem_xpow (float, const FloatNDArray&)): Use simpler tests. - - 2010-09-21 John W. Eaton - - * oct-stream.h (octave_base_stream::file_number): Return 0, 1, - and 2 for named stdin, stdout, and stderr streams; -1 otherwise. - - 2010-09-21 John W. Eaton - - * syscalls.cc (Fgethostname): New function. - - 2010-09-20 John W. Eaton - - * DLD-FUNCTIONS/time.cc (Fmktime): New tests (bug #31079). - - 2010-09-20 John W. Eaton - - Bug #31085: - - * file-io.cc (do_stream_open): Use fopen, fileno, and gzdopen - instead of gzopen. Pass integer file id to - octave_zstdiostream::create. - - * oct-stdstrm.h (class octave_base_tstdiostream): Rename from - octave_tstdiostream. - (octave_tstdiostream::fnum): New data member. - (octave_tstdiostream::file_number): New member function. - (octave_tstdiostream::octave_tstdiostream): New arg, FID. - (octave_tstdiostream::create): Delete. - (class octave_stdiostream, class octave_zstdiostream): New - non-template classes derived from octave_tstdiostream to replace - typedefs. - - * oct-stream.h (octave_base_stream::file_number): Now virtual - and const. Return -1 in defaault implementation. - - 2010-09-20 John W. Eaton - - * DLD-FUNCTIONS/regexp.cc (octregexp_list) [HAVE_PCRE]: - Break from search loop if idx is at or beyond end of buffer - (bug #31056). - - 2010-09-19 Ben Abbott - - * graphics.h.in: Add displayname property to patch and surface objects. - - 2010-09-18 David Bateman - - * graphics.h.in: Remove properties for dead legend code. - - 2010-09-18 Ben Abbott - - * graphics.cc: Replace pagetype property value custom with . - - 2010-09-16 David Bateman - - * graphics.cc (static Matrix screen_size_pixels (void), static Matrix - papersize_from_type (const caseless_str, const caseless_str))): New - functions. - (void figure::properties::set_paperunits (const octave_value&), - void figure::properties::set_papertype (const octave_value&), - void figure::properties::update_paperunits (const caseless_str&)) - void figure::properties::update_papertype (void), - void figure::properties::update_papersize (void), - void figure::properties::update_units (const caseless_str&)): New - methods of the figure class. - (void axes::properties::set_units (const octave_value&), - void axes::properties::update_units (const caseless_str&), - void axes::properties::set_fontunits (const octave_value&), - void axes::properties::update_fontunits (const caseless_str&)): - New methods of the axes class. - * graphics.h.in (void figure::properties::update_paperunits - (const caseless_str&), void figure::properties::update_units - (const caseless_str&)): Declaration of new figure methods. - (void figure::properties::update_paperunits (const caseless_str&), - void figure::properties::update_units (const caseless_str&)): - Declaration of new axes methods. - - 2010-09-16 John P. Swensen - - * DLD-FUNCTIONS/))magick_read__.cc (write_image): Remove - unnecessary for loop to set image format. - - 2010-09-16 John W. Eaton - - * DLD-FUNCTIONS/svd.cc (Fsvd): Delete assert to avoid - "comparison is always false due to limited range of data type" - warning from GCC. - - * utils.cc (octave_vsnprintf): Declare nchars volatile to avoid - GCC warning. - - * pr-output.cc (octave_print_internal): Avoid uninitialized - variable warning from GCC. - - 2010-09-16 John Swensen - - * DLD-FUNCTIONS/__magick_read__.cc (write_image): Allow - arbitrary extensions with format specifier. - - 2010-09-15 John W. Eaton - - * load-path.cc (Faddpath, Frmpath): Document path arguments. - - 2010-09-15 John Swensen - - * DLD-FUNCTIONS/__magick_read__.cc (write_image): Allow writing - arbitrary image types to filenames without an extension (bug #30784). - - 2010-09-14 John W. Eaton - - * variables.cc (symbol_exist): If looking for any type of file - or "file", return 7 for directories and 2 for all other types of - files. - - 2010-09-14 John W. Eaton - - * graphics.h.in (base_graphics_backend::initialize): Rename - from base_graphics_backend::object_created. Change all uses. - (base_graphics_backend::finalize): Rename from - base_graphics_backend::object_destoyed. Change all uses. - (base_graphics_backend::update): Rename from - base_graphics_backend::property_changed. Change all uses. - - 2010-09-14 John W. Eaton - - * DLD-FUNCTIONS/fltk_backend.cc (fltk_backend::object_destroyed): - Don't attempt to delete window if __plot_stream__ is empty. - - 2010-09-14 Jordi Gutiérrez Hermoso - - * load-path.cc (genpath): Pass SKIP in recursive call. - (Fgenpath): Accept list of directories to skip. - - 2010-09-14 John W. Eaton - - * oct-stream.cc (BEGIN_CHAR_CLASS_CONVERSION): If we hit EOF but - have found a match, clear the stream state (bug # 30997). - - 2010-09-13 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Remove subsref optimization. - - 2010-09-13 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc (Fcellindexmat): New DEFUN. - - 2010-09-12 Jaroslav Hajek - - * ov-fcn-handle.cc (octave_fcn_binder::maybe_binder): Stash name tags - in the template. - (octave_fcn_binder::do_multi_index_op): Don't use xelem to ensure - proper unsharing. Make a shallow copy prior to call to ensure - consistency throughout recursive calls. - - 2010-09-11 Jaroslav Hajek - - * ov-fcn-handle.h (octave_fcn_binder): New subclass. - * ov-fcn-handle.cc: Define methods. - * pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue1): Call - octave_fcn_binder::maybe_binder. - - 2010-09-11 John W. Eaton - - * pt-misc.cc (tree_parameter_list::initialize_undefined_elements): - Avoid GCC shadow variable warning. - - 2010-09-11 John W. Eaton - - * load-path.cc (Faddpath): Adjust value of nargin if numeric - option is found (bug #31001). - - 2010-09-09 Shai Ayal - - * gl2ps-renderer.cc: Renders to a previously opened fid. - * gl2ps-renderer.h: Ditto. - * DLD-FUNCTIONS/fltk_backend.cc: print now accepts fid instead - of filename to use with above change - - 2010-09-07 Jaroslav Hajek - - * DLD-FUNCTIONS/__magick_read__.cc (maybe_initialize_magick): New - helper function. Move initialization code & static variable here. - (F__magick_read__, F__magick_write__, F__magick_finfo__): Call it - here. - - 2010-09-03 Jaroslav Hajek - - * DLD-FUNCTIONS/cquad.cc: New source, courtesy by Pedro Gonnet. - * DLD-FUNCTIONS/module-files: Update. - - 2010-09-01 Marco Caliari - - * graphics.cc: Fix axes limits underflow to zero for logscale. - - 2010-09-01 Jaroslav Hajek - - * pt-mat.cc (single_type_concat (Array&, ...)): Optimize all - scalars case. - - 2010-09-01 Jaroslav Hajek - - * oct-map.cc (octave_map::cat): Search first for an index with - nonzero nfields and use it for comparisons. - (permute_to_correct_order1): New overloaded helper func. - (permute_to_correct_order): use it here. Pass the index here. - * pt-mat.cc (single_type_concat): Don't subst 0x0 for all empty - arrays. Use the respective cat() capability instead. - - 2010-09-01 Jaroslav Hajek - - * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Support "emptyvalue" option. - Fix condition for terminating read. - - 2010-08-31 Jaroslav Hajek - - * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Support reading from a file ID. - - 2010-08-31 Jaroslav Hajek - - * ov-class.cc (get_current_method_class): Make it an octave_class - method. Return class_name as default. - (octave_class::dotref): Error on zero return value. - - 2010-08-30 Ben Abbott - - * gl-render.cc: Matlab compatible markers for the OpenGL. - - 2010-08-30 John W. Eaton - - * graphics.cc (convert_cdata_1, convert_cdata_2): New functions. - (convert_cdata): Use them to avoid converting all elements of - cdata to double at once. - * graphics.h.in (surface::properties::init): Constrain cdata and - alphadata to be single, double, or uint8. - - 2010-08-30 Jaroslav Hajek - - * graphics.cc (convert_cdata): Avoid extracting pointer to temporary - copy. - - 2010-08-30 John W. Eaton - - * graphics.cc (convert_cdata): Allow cdata to be any type that - can be converted to double. - * graphics.h.in (surface::properties::init): Remove constraints - on cdata and alphadata. - - 2010-08-27 Jordi Gutiérrez Hermoso - - * graphics.cc (axes::properties::rotate_view): Don't rotate past - the top and bottom. - (axes::properties::update_camera): Fix the view when rotating to - the bottom. - (calc_dimensions): New static function. - (F__calc_dimensions__) New defun to replace m-script function. - * graphics.h.in (calc_dimension): Provide decl. - * DLD-FUNCTIONS/fltk_backend.cc (plot_window::plot_window): - Use calc_dimensions to decide whether the current figure should - be rotated. - (plot_window::mark_modified) Recompute the number of dimensions. - Deactivate rotation if necessary. - (plot_window::ndim) New data member. - (plot_window::button_press, plot_window::handle): Only turn on - rotation if ndim == 3. - - 2010-08-24 David Bateman - - * ls-mat5.cc (static void read_mat5_binary_data (std::istream&, - float *, octave_idx_type, bool, mat5_data_type, - oct_mach_info::float_format)) : New function - (std::string read_mat5_binary_element (std::istream&, - const std::string&, bool, bool&, octave_value&)): Treat - MAT_FILE_SINGLE_CLASS as single precision rather than convert to - double precision. - (static void write_mat5_array (std::ostream&, const FloatNDArray&, - bool), int save_mat5_array_length (const float*, octave_idx_type, - bool), int save_mat5_array_length (const FloatComplex*, - octave_idx_type, bool)): New functions. - (int save_mat5_element_length (const octave_value&, - const std::string&, bool save_as_floats, bool), bool - save_mat5_binary_element (std::ostream&, const octave_value&, - const std::string&, bool, bool, bool, bool)): Treat - MAT_FILE_SINGLE_CLASS as single precision rather than convert to - double precision. - - 2010-08-23 John W. Eaton - - * load-path.cc (load_path::dir_info::initialize): Clear - method_file_map before updating file list. - * load-path.cc (load_path::load_path): Explicitly initialize - private_fcn_map. - - 2010-08-17 Rik - - * mappers.cc (gamma,lgamma): Add %!tests for negative integer - input arguments. - - 2010-08-17 Rik - - * bitfcns.cc (bitmax): Add additional calling argument, class, and - additional return value for bitmax("single"). - - 2010-08-17 Rik - - * bitfcns.cc (sizemax): Improve documentation string. - - 2010-08-16 Ben Abbott - - * gl2ps.c: Use upstream version gl2ps-1.3.5-svn-20100816. - - 2010-08-13 Rik - - * toplev.c (do_goto_frame_relative): Remove unused variable c. - - 2010-08-13 Jaroslav Hajek - - * ov-builtin.cc - (octave_builtin::subsref (..., const std::list *) - octave_builtin::do_multi_index_op (..., const std::list *)): - New methods. Move code here. Set curr_lvalue_list. - (octave_builtin::curr_lvalue_list): New static member. - * ov-fcn-handle.h: Declare them. - * defun.cc (defun_isargout): New overloaded function. - * defun-int.h: Declare it. - - 2010-08-11 Jaroslav Hajek - - * ov-lazy-idx.h (octave_lazy_index::subsasgn): Remove override. Leave - it to the defualt numeric conversion mechanism. - - 2010-08-10 Jaroslav Hajek - - * data.cc (Fdiff): Allow logical type. - - 2010-08-09 Rik - - * oct-parse.yy (parse_fcn_file): Restore parsing of help text - accidentally lost in previous changeset. - - 2010-08-09 John W. Eaton - - * oct-parse.yy (parse_fcn_file): Handle empty script files - (bug #30588). - - 2010-08-09 Jaroslav Hajek - - * ov.cc (octave_value::assign (assign_op, const std::string&, - const std::list&, const octave_value&): - Don't attempt to fix struct assignment to non-struct values here. - Check for successful assignment before overwriting this. - - * ov-cell.cc (octave_cell::subsasgn): Allow dot assignment into empty - cell. - - 2010-08-08 Rik - - * DLD-FUNCTIONS/config-module.awk: Add newlines to divide blocks - in generated modules.mk and improve readability. - - 2010-08-08 Rik - - * Makefile.am: Create .DOCSTRINGS quietly and avoid screen clutter - during build. - - 2010-08-08 Rik - - * Makefile.am: Run do_subst macro quietly without cluttering screen - during build. - - 2010-08-08 Shai Ayal - - * DLD-FUNCTIONS/fltk_backend.cc - (base_graphics_backend::print_figure): Add a redraw to get the - thing going. - - 2010-08-05 Shai Ayal - - * gl2ps-renderer.cc (draw): Add support for more terminal types. - * DLD-FUNCTIONS/fltk_backend.cc: Likewise. - - 2010-08-04 John W. Eaton - - * mex.cc (mxArray_number (const char *)): Create empty string if - given NULL arg (bug #30639). Create 0x0 string array if given - an empty string argument, not 1x0. - - 2010-08-03 Jaroslav Hajek - - * OPERATORS/op-str-str.cc: Fix assignment operator. - * OPERATORS/op-str-s.cc: Likewise. - * OPERATORS/op-str-m.cc: Likewise. - - 2010-08-03 Jaroslav Hajek - - * ov-fcn-handle.cc - (octave_value::subsref (..., const std::list *) - octave_value::do_multi_index_op (..., const std::list *)): - New methods. Move code here. - * ov-fcn-handle.h: Declare them. - - 2010-08-03 Jaroslav Hajek - - * ov-usr-fcn.cc (Fis_ignored_output): Rename to Fisargout. Change the - behavior to indicate not ignored outputs. - - 2010-08-01 Rik - - * DLD-FUNCTIONS/amd.cc, DLD-FUNCTIONS/balance.cc, - DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc, - DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc, - DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/daspk.cc, - DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dot.cc, DLD-FUNCTIONS/eigs.cc, - DLD-FUNCTIONS/fftw.cc, DLD-FUNCTIONS/filter.cc, - DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/lu.cc, - DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/onCleanup.cc, - DLD-FUNCTIONS/qr.cc, DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/regexp.cc, - DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/str2double.cc, - DLD-FUNCTIONS/tril.cc, DLD-FUNCTIONS/typecast.cc, data.cc, graphics.cc, - load-save.cc, ov-null-mat.cc, ov-struct.cc, ov-usr-fcn.cc, - pr-output.cc, strfns.cc, variables.cc: Grammarcheck documentation. - Add @noindent lines and ensure line length is less than 80. - - 2010-07-31 Rik - - * DLD-FUNCTIONS/__magick_read__.cc, DLD-FUNCTIONS/__voronoi__.cc, - DLD-FUNCTIONS/amd.cc, DLD-FUNCTIONS/balance.cc, - DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc, - DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc, - DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/conv2.cc, - DLD-FUNCTIONS/convhulln.cc, DLD-FUNCTIONS/daspk.cc, - DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dassl.cc, - DLD-FUNCTIONS/dmperm.cc, DLD-FUNCTIONS/dot.cc, DLD-FUNCTIONS/eigs.cc, - DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw.cc, DLD-FUNCTIONS/filter.cc, - DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/gcd.cc, - DLD-FUNCTIONS/getrusage.cc, DLD-FUNCTIONS/givens.cc, - DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/hex2num.cc, DLD-FUNCTIONS/inv.cc, - DLD-FUNCTIONS/kron.cc, DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc, - DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/luinc.cc, - DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/max.cc, - DLD-FUNCTIONS/md5sum.cc, DLD-FUNCTIONS/onCleanup.cc, - DLD-FUNCTIONS/qr.cc, DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/qz.cc, - DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/schur.cc, - DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/spparms.cc, - DLD-FUNCTIONS/str2double.cc, DLD-FUNCTIONS/strfind.cc, - DLD-FUNCTIONS/sub2ind.cc, DLD-FUNCTIONS/svd.cc, DLD-FUNCTIONS/syl.cc, - DLD-FUNCTIONS/symbfact.cc, DLD-FUNCTIONS/time.cc, - DLD-FUNCTIONS/tril.cc, DLD-FUNCTIONS/typecast.cc, - DLD-FUNCTIONS/urlwrite.cc, bitfcns.cc, data.cc, debug.cc, defaults.cc, - dirfns.cc, error.cc, file-io.cc, graphics.cc, help.cc, input.cc, - load-path.cc, load-save.cc, ls-oct-ascii.cc, mappers.cc, oct-hist.cc, - octave.cc, ov-base.cc, ov-cell.cc, ov-class.cc, ov-fcn-handle.cc, - ov-fcn-inline.cc, ov-null-mat.cc, ov-range.cc, ov-struct.cc, - ov-usr-fcn.cc, pager.cc, pr-output.cc, pt-eval.cc, pt-mat.cc, - sighandlers.cc, strfns.cc, symtab.cc, syscalls.cc, sysdep.cc, - toplev.cc, utils.cc, variables.cc: Grammarcheck .cc files - - 2010-07-30 John W. Eaton - - * debug.cc (Fdbstack): Improve display. - - * toplev.cc (octave_call_stack::do_goto_frame_relative): - Improve message. Don't display column number. - - * debug.cc (get_file_line): Don't allow eol to be less than bol. - (Fdbwhere): Improve message. Don't display column number. - (Fdbstack): Omit column number from display. - - * pt-eval.cc (tree_evaluator::visit_statement): Don't call - octave_call_stack::set_statement for commands issued while - debugging. - - 2010-07-30 John W. Eaton - - * pt-bp.cc (tree_breakpoint::take_action): Only call - delete_breakpoint if is_breakpoint returns true. - (tree_breakpoint::visit_statement): If statement is command, - accept it, otherwise, maybe take action on the statement. - (tree_breakpoint::visit_no_op_command): Handle breakpoints at - end of function. - Addresses more problems found with bug #30490. - - 2010-07-30 Rik - - * Makefile.am: add .DOCSTRINGS to the DISTCLEANFILES list - - 2010-07-30 John W. Eaton - - * pt-eval.cc (tree_evaluator::visit_if_command, - tree_evaluator::visit_switch_command): Also process breakpoints - for the command (bug #30490). - - 2010-07-29 Ben Abbott - - * gl-render.cc: Transpose markers '^' and 'v'. - - 2010-07-29 John W. Eaton - - * pt-bp.cc (tree_breakpoint::visit_if_command): Also allow - breakpoint to be set on command, same as for switch, while, or - do-until statments. - * pt-select.h, pt-select.cc (tree_if_command::set_breakpoint, - tree_if_command::delete_breakpoint, tree_switch_command::set_breakpoint, - tree_switch_command::delete_breakpoint): Delete functions and decls. - (bug #30490). - - 2010-07-29 Jaroslav Hajek - - * ov.cc (octave_value::subsref (..., const std::list *) - octave_value::do_multi_index_op (..., const std::list *)): - New methods. - * ov.h: Declare them. - * ov-base.cc (octave_base_value::subsref (..., const std::list *) - octave_base_value::do_multi_index_op (..., const std::list *)): - New methods. - * ov-base.h: Declare them. - * ov-usr-fcn.cc (octave_user_function::subsref (..., const std::list *) - octave_user_function::do_multi_index_op (..., const std::list *)): - New virtual method overrides. Move code here. - (octave_user_function::bind_automatic_vars): Add lvalue_list - parameter. Bind automatic variable ".ignored.". - (Fis_ignored_output): New defun. - * ov-usr-fcn.h: Update decls. - * pt-misc.cc (tree_parameter_list::initialize_undefined_elements): - Skip warning if outputs are ignored. - * pt-exp.cc (tree_expression::rvalue (..., const - std::list *)): New method overload. - * pt-exp.h: Declare it. - * pt-idx.cc (tree_index_expression::rvalue (..., const - std::list *)): New method override. Move code here. - * pt-idx.h: Declare it. - * pt-assign.cc (tree_multi_assignment::rvalue): Pass in the pointer to - lvalue_list. - - 2010-07-28 John W. Eaton - - * DLD-FUNCTIONS/find.cc (Ffind): Reorder cases to check for - character strings before numeric arrays. - Delete explicit instantiations of find_nonzero_elem_idx templates. - New test for char array argument. - - 2010-07-27 Rik - - * DLD-FUNCTIONS/schur.cc (rsf2csf): Change first documentation line to - active voice. - - 2010-07-27 Jaroslav Hajek - - * DLD-FUNCTIONS/schur.cc (Frsf2csf): New DEFUN. - - 2010-07-23 Jaroslav Hajek - - * ov-base-scalar.cc (octave_base_scalar::diag): Implement here. Fix. - * ov-base-scalar.h: Only declare here. - - 2010-07-23 Jaroslav Hajek - - * ov-re-diag.cc (octave_diag_matrix::try_narrowing_conversion): Remove - redundant cast. - * ov-flt-re-diag.cc - (octave_float_diag_matrix::try_narrowing_conversion): Ditto. - * ov-cx-diag.cc - (octave_complex_diag_matrix::try_narrowing_conversion): Ditto. - * ov-flt-cx-diag.cc - (octave_float_complex_diag_matrix::try_narrowing_conversion): Ditto. - - 2010-07-23 Jaroslav Hajek - - * pt-mat.cc (do_single_type_concat_no_mutate): Remove. - (tree_matrix::rvalue1): Use do_single_type_concat instead. - - 2010-07-21 Jaroslav Hajek - - * bitfcns.cc (Fsizemax): New DEFUN. - - 2010-07-20 Shai Ayal - - * DLD-FUNCTIONS/fltk_backend.cc (plot_window::plot_window): - Added a bottom Fl_Box (copied from gmsh) and tooltips - - 2010-07-20 Rik - - * DLD-FUNCTIONS/typecast.cc (typecast): Combine two @seealso macro - uses to one. - - 2010-07-20 Jaroslav Hajek - - * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Use octave_idx_type instead of - unsigned long. Over-allocate by a factor 2 to reduce copying. - Attempt to estimate number of columns from first line. - Hoist tmp_stream out of the loop and reset it for each substring. - - 2010-07-17 Rik - - * data.cc (repelems): Add more documentation about new function. - - 2010-07-19 Jaroslav Hajek - - * data.cc (do_repelems): New helper func. - (Frepelems): New DEFUN. - - 2010-07-19 John W. Eaton - - * DLD-FUNCTIONS/fltk_backend.cc (plot_window::gui_mode): - Use enum instead of int. Change all uses. - - 2010-07-18 Kai Habel - - * DLD-FUNCTIONS/fltk_backend.cc: Add mode for mouse rotation. - (view2status): new function - * graphics.cc: Remove limitations for zooming and translation. - (axes::properties::rotate_view): new function - - 2010-07-17 Rik - - * DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/ccolamd.cc, - DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/dasrt.cc, - DLD-FUNCTIONS/dmperm.cc, DLD-FUNCTIONS/eigs.cc, DLD-FUNCTIONS/qz.cc, - DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/sparse.cc, - DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/symrcm.cc, dirfns.cc, - file-io.cc, syscalls.cc: Spellcheck documentation - - 2010-07-08 Rik - - * DLD_FUNCTIONS/rand.cc: Correct typo in rande documentation. - (bug #30446). - - 2010-07-13 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc (mat2cell_mismatch, prepare_idx, - do_mat2cell_2d, do_mat2cell_nd, do_mat2cell): New helper funcs. - (Fmat2cell): Use them here. - - 2010-07-13 Jaroslav Hajek - - * data.cc (do_sparse_diff): Use typecasts where needed. - - 2010-07-12 Jaroslav Hajek - - * DLD-FUNCTIONS/rand.cc (do_rand): Pass the distribution name as an - argument. Ensure restoration using unwind_protect. - (Frand, Frandn, Frandg, Frandp, Frande): Update. - - 2010-07-12 Jaroslav Hajek - - * unwind-prot.h (unwind_protect::fcn_crefarg_elem): New class. - (unwind_protect::add_fcn (void (*) (const T&), T)): New method - overload. - - 2010-07-08 David Bateman - - * DLD-FUNCTIONS/__magick_read__,cc (F__magick_read__): Add the syntax - __magick_read__ ("file", "frames", "all"). - - 2010-07-08 Rik - - * DLD_FUNCTIONS/eigs.cc: Initialize random number generator in test - blocks to get reproducible results. - - 2010-07-08 Jaroslav Hajek - - * ov-cell.cc (Fstruct2cell): Use octave_map. Optimize. - - 2010-07-07 Rik - - * pr-output.cc (calc_scale_exp): Avoid use of % operator on negative - operands for portability between C++ compilers. - (engineering_exponent): Avoid use of % operator. Keep calculation of - exponent within pr_engineering_float class. (encapsulation). - (num_digits): Rename from calc_digits. Return true number of digits = - 1 + calc_digits. - (calc_scale_exp): Rename from maybe_mod3 for readability. - (operator << (... pr_engineering_float pef): Use pef abbreviation for - pr_engineering_float. - - 2010-07-07 David Bateman - - * graphics.h.in (axes): Add hidden property __hold_all. - - 2010-07-07 Jaroslav Hajek - - * ov-class.h (octave_class::map): Turn to octave_map. - * ov-class.cc (octave_class): Update methods. - * ov-base.h, ov-base.cc (octave_base_value::old_map_value) : Remove. - * ov.h, ov.cc (octave_value::old_map_value) : Remove. - - 2010-07-06 David Bateman - - * pr-output.cc (static bool print_eng): Flag engineering format, - (float_format::float_format (int, int, int, int)): New constructor. - (int float_format::ex): New field in the class. - (static int maybe_mod3 (const int&), static int - engineering_exponent (const double&), - static int calc_digits (const double&)): New functions - (class pr_engineering_float): New class - (std::ostream& operator << (std::ostream&, - const pr_formatted_float&)): New operator. Make it a friend of the - float_format class. - (static void set_real_format(...), - static void set_real_matrix_format (...), - static void set_complex_format(...), - static void set_complex_matrix_format (...), - static void set_range_format (...)): Set width for engineering format. - (static void set_format (...)): Call calc_digits to find the number - of digits in a value. - (static void pr_any_float (const float_format *, std::ostream&, - double, int)): Print engineering formats. - (static void init_format_state (void)): Set default state of print_eng. - (static void set_format_style (int, const string_vector&)): Parse - the "eng" argument. - (Fformat): Document the new engineering format. - - 2010-07-04 Soren Hauberg - - * DLD_FUNCTIONS/__magick_read__.cc: restore locale after - GraphicsMagick initialisation. - - 2010-07-02 Jaroslav Hajek - - * toplev.cc (octave_call_stack::do_backtrace): Use static - octave_fields struct. - (octave_call_stack::empty_backtrace): New static method. - * toplev.h: Declare it. - * error.cc (Vlast_error_stack, initialize_last_error_stack, - Frethrow): Use octave_map or octave_scalar_map where applicable. - - 2010-07-02 Jaroslav Hajek - - * pt-mat.cc (tm_row_const::tm_row_const_rep::all_1x1, - tm_cont::all_1x1): New member fields. - (tm_row_const::tm_row_const_rep::init, tm_const::init): - Handle them here. - (tm_row_const::all_1x1_p, tm_const::all_1x1_p): New methods. - (single_type_concat (octave_map&, ...)): New template - overload. - (do_single_type_concat): New template specialization. - (tree_matrix::rvalue1): Specialize for cell and struct classes. - * oct-map.cc (octave_map::do_cat (..., const octave_map *, ...)): - Assign result dimensions. - - 2010-07-02 Jaroslav Hajek - - * oct-map.cc (octave_map::cat (..., const octave_scalar_map *)): - Handle special dims (-1, -2). - * data.cc (do_single_type_concat_map): Don't handle them here. - - 2010-07-01 Jaroslav Hajek - - * syscalls.cc (mk_stat_map, Funame): Use octave_scalar_map. - - 2010-07-01 Jaroslav Hajek - - * oct-map.h (octave_scalar_map::assign (const std::string&, const - octave_value&), octave_map::assign (const std::string&, const Cell&)): - Backward-compatible aliases for setfield. - - 2010-07-01 Jaroslav Hajek - - * oct-map.cc (octave_fields::equal_up_to_order (const octave_fields&, - octave_idx_type *)): New overload. - (octave_fields::equal_up_to_order (const octave_fields&, - Array&)): Use it here. - (octave_map::fast_elem_insert, - octave_map::fast_elem_extract): New methods. - * oct-map.h: Update decls. - * ov-struct.cc (octave_struct::fast_elem_extract, - octave_struct::fast_elem_insert, - octave_scalar_struct::fast_elem_insert_self): New methods. - * ov-struct.h: Update decls. - - 2010-06-28 Jaroslav Hajek - - * data.cc (single_type_concat): Optimize all scalars case where - applicable. - (single_type_concat_map, do_single_type_concat_map): New funcs. - * pt-mat.cc (get_concat_class): Handle cell and struct concats. - - - 2010-06-25 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc (Fnum2cell, do_num2cell): Optimize cells - and structs. - - 2010-06-25 Jaroslav Hajek - - * ov-struct.h (octave_scalar_struct::resize, octave_struct::resize): - Don't ignore fill argument. - - 2010-06-25 Jaroslav Hajek - - * oct-map.h (octave_map::octave_map (const dim_vector&, const - octave_fields&)): New internal ctor. - - * oct-map.cc (octave_map::assign): Handle no fields case. - - 2010-06-25 Jaroslav Hajek - - * ov-struct.cc (Fcell2struct): Rewrite. - - 2010-06-30 Jaroslav Hajek - - * ov-range.cc (octave_range::save_ascii): Save length rather than - limit when inc is zero. Adjust comment. - (octave_range::save_binary, octave_range::save_hdf5): Ditto. - (octave_range::load_ascii): Assume limit is length when increment is - zero. - (octave_range::load_binary, octave_range::load_hdf5): Ditto. - - - 2010-06-25 John W. Eaton - - * graphics.cc (reset_default_properties): New static function. - (root_figure::reset_default_properties, - figure::reset_default_properties, axes::reset_default_properties): - Use it to avoid duplicated code. - - 2010-06-24 Rik - - * octave.cc: Add [FILE] to octave usage string (bug #30258). - - 2010-06-24 Jaroslav Hajek - - * oct-map.h (octave_map, octave_scalar_map): New classes. - * oct-map.cc (octave_map, octave_scalar_map): Implement them. - (Octave_map::Octave_map (const octave_map&)): New ctor. - * ov-struct.h (octave_struct): Use octave_map for storage. - (octave_scalar_struct): New class. - * ov-struct.cc: Update implementations. - * ov-base.h (octave_base_value::old_map_value): New method. - (octave_base_value::map_value): Return octave_map. - (octave_base_value::scalar_map_value): New method. - * ov-base.cc (octave_base_value::old_map_value, - octave_base_value::map_value, octave_base_value::scalar_map_value): - Add default implementations. - * ov-class.h (octave_class::old_map_value): New override. - * ov-class.cc: Use old_map_value for efficiency. - - 2010-06-23 David Bateman - - * graphics.cc (void root_figure::reset_default_properties (void), - void figure::reset_default_properties (void), - void figure::reset_default_properties (void), - Freset): New functions. - * graphics.h.in (void graphics_object:reset_default_properies (void), - virtual void base_graphics_object:reset_default_properies (void)): - New functions. - (void root_figure::reset_default_properties (void), - void figure::reset_default_properties (void), - void figure::reset_default_properties (void)): Declarations. - (std::string color_property::values_as_string (void) const, - Cell color_property::values_as_cell (void) const): New functions. - - 2010-06-21 Rik - - * DLD-FUNCTIONS/dlmread.cc: Fix spreadsheet style range option. - (bug #30183). - - 2010-06-21 David Bateman - - * graphics.cc (std::string radio_values:values_as_string (void) - const, Cell radio_values:values_as_cell (void) const): New functions. - (void graphics_object::set (const octave_value_list&)): Throw error - with no arguments. - (std::string base_graphics_object::values_as_string (void), - Octave_map base_graphics_object::values_as_struct (void)): New - functions. - (Fset): Allow single handle as an argument and return the radio - values. - * graphics.h.in (virtual bool base_property::is_radio (void) const, - virtual std::string base_property::values_as_string (void) const, - virtual Cell base_property::values_as_cell (void) const): - New function. - (std::string radio_values::values_as_string (void) const, - Cell radio_values::values_as_cell (void) const): Declaration. - (octave_idx_type radio_values::nelem (void) const): New function. - (std::string radio_property::values_as_string (void) const, - Cell radio_property::values_as_cell (void) const, - bool radio_property::is_radio (void) const): New functions. - (bool property::is_radio (void) const, - std::string raproperty::values_as_string (void) const, - Cell property::values_as_cell (void) const): New functions. - (std::string base_graphics_object::values_as_string (void), - Octave_map base_graphics_object::values_as_struct (void)): Declaration. - (std::string graphics_object::values_as_string (void), - Octave_map graphics_object::values_as_struct (void)): New functions. - - 2010-06-21 Jaroslav Hajek - - * data.cc (single_type_concat): Assume matrix arguments start from - index zero. - (do_cat): Make dim a separate argument. Special-case support for dim = - -1 and dim = -2 - - 2010-06-18 Jaroslav Hajek - - * pt-mat.cc (tm_row_const::eval_error): Make a static func. - (tm_row_const::do_init_element): Simplify using dim_vector::hvcat. - (tm_const::init): Ditto. - (single_type_concat): Special-case empty results. Skip or use 0x0 for - empty arrays otherwise. - (tree_matrix::rvalue1): Skip empty arrays in the fallback branch. - - 2010-06-16 Rik - - * DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/dot.cc, - DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/lookup.cc, - DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/onCleanup.cc, - DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/spparms.cc, DLD-FUNCTIONS/svd.cc, - data.cc, dirfns.cc, graphics.cc, mappers.cc, ov-cell.cc, ov-range.cc: - Periodic grammar check of documentation to ensure a common format. - - 2010-06-11 David Bateman - - * DLD-FUNCTIONS/rand.cc : Add "reset" flag to reset the random - generators from the entropy pool. - - * genprops.awk : Don't special case the color_property in the - factory default methods. - - 2010-06-16 Jaroslav Hajek - - * data.cc (Fsort): Fix invalid tests. - - 2010-06-15 Rik - - * pr-output.cc: Second try at removing extra newlines from NDArrays - - 2010-06-14 Rik - - * pr-output.cc: Remove extra newlines when displaying multi-dimensional - arrays (bug #30029). - - 2010-06-14 Jaroslav Hajek - - * data.cc (Fsort, Fnth_element): Fix behavior when trailing singleton - dim is specified. - - 2010-06-12 Ben Abbott - - * DLD-FUNCTIONS/gammainc.cc: Fix doc-string typo. - - 2010-06-11 David Bateman - - * DLD-FUNCTIONS/gammainc.cc: Implement complementary incomplete - gamma function. - - 2010-06-10 Ben Abbott - - * data.cc: Fix test for concatentating empty nd-arrays. - - 2010-06-10 Jaroslav Hajek - - * data.cc (Fvec): New DEFUN. - - 2010-06-09 Jaroslav Hajek - - * data.cc (Freshape): Use octave_idx_type rather than int. - Don't use intermediate Array when sizes are given as separate - arguments. Simplify computing unknown dimension. - - 2010-06-09 David Grundberg - - * ov-struct.cc (Fisfield): Accept cell array as name argument. - - 2010-06-08 Rik - - * DLD-FUNCTIONS/bsxfun.cc, DLD-FUNCTIONS/cellfun.cc, - DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lu.cc, - DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/svd.cc, DLD-FUNCTIONS/tril.cc, - data.cc, ov.cc: Improve documentation string. - - 2010-06-06 Michael Goffioul - - * data.cc (Frem, Fmod): Specify template arguments of binmap - explicitely. - - 2010-06-02 Jaroslav Hajek - - * DLD-FUNCTIONS/strfind.cc (Fqs_replace): Allow overlapped matches. - (Fstrrep): Support "overlaps" option. - (Fstrfind): Ditto. - - 2010-05-28 Jaroslav Hajek - - * ov.h (octave_value::fast_elem_extract, - octave_value::fast_elem_insert): New methods. - * ov-base.cc (octave_base_value::fast_elem_extract, - octave_base_value::fast_elem_insert, - octave_base_value::fast_elem_insert_self): New methods. - * ov-base.h: Declare them. - * ov-base-mat.cc (octave_base_matrix::fast_elem_extract, - octave_base_matrix::fast_elem_insert): New overrides. - * ov-base-mat.h: Declare them. - * ov-base-scalar.cc (octave_base_scalar::fast_elem_extract, - octave_base_scalar::fast_elem_insert_self): New overrides. - * ov-base-scalar.h: Declare them. - (octave_base_scalar::scalar_ref): New method. - * ov-scalar.cc (octave_scalar::fast_elem_insert_self): New override. - * ov-scalar.h: Declare it. - * ov-float.cc (octave_float_scalar::fast_elem_insert_self): New override. - * ov-float.h: Declare it. - * ov-cell.cc (octave_base_matrix::fast_elem_extract, - octave_base_matrix::fast_elem_insert): New specializations. - * DLD-FUNCTIONS/cellfun.cc (scalar_col_helper, scalar_col_helper_def, - scalar_col_helper_nda, make_col_helper, can_extract): Remove. - (Fcellfun): Use the new fast_elem_insert method. - - 2010-05-10 Rik - - * DLD-FUNCTIONS/eigs.cc: Improve documentation string. - Use ~ notation instead of dummy variables for unused return arguments. - - 2010-05-27 Jaroslav Hajek - - * ov-base-mat.h (octave_base_matrix::matrix_ref (void) const): New - overload. - - 2010-05-26 Jaroslav Hajek - - * oct-obj.h (octave_value_list::slice): Optionally include tags in - slicing. - * oct-parse.yy (get_feval_args): Simplify. - * pt-idx.cc (make_value_list): Use octave_idx_type instead of int. - - 2010-05-25 Jaroslav Hajek - - * ov.cc (octave_value::length): Simplify. - - 2010-05-25 Jaroslav Hajek - - * ov-base-mat.h (octave_base_matrix::ndims): New override. - * ov-base-scalar.h (octave_base_scalar::numel, - octave_base_scalar::ndims): New overrides. - - 2010-05-25 Jaroslav Hajek - - * ov-base.cc (octave_base_value::ndims): Remove fallback - implementation (makes no sense). - * ov-base.h (octave_base_value::ndims): Use a simplistic fallback - here. - - 2010-05-25 Jaroslav Hajek - - * ov-base.h (octave_base_value::rows, octave_base_value::columns): - Use const where appropriate, don't test for impossible condition. - - 2010-05-24 Jaroslav Hajek - - * Cell.h (Cell::index, Cell::assign, Cell::delete_elements): - Make signatures consistent with inherited overloads. Import inherited - overloads to class's scope. - * oct-map.cc (Octave_map::maybe_delete_elements): Simplify. - - 2010-05-20 John W. Eaton - - * utils.cc (Ffile_in_path, Ffile_in_loadpath): If no file is - found, return empty character string instead of empty matrix. - - 2010-05-20 Jaroslav Hajek - - * DLD-FUNCTIONS/onCleanup.cc (octave_oncleanup::load_ascii, - octave_oncleanup::load_binary, octave_oncleanup::load_hdf5, - octave_oncleanup::save_ascii, octave_oncleanup::save_binary, - octave_oncleanup::save_hdf5): Comment out unused params. - - 2010-05-18 Jaroslav Hajek - - * defun-int.h (octave_auto_shlib): Make members public. - * DLD-FUNCTIONS/onCleanup.cc: New source. - * DLD-FUNCTIONS/module-files: Add it here. - - 2010-05-18 Jaroslav Hajek - - * variables.cc (set_internal_variable (int&, ..., const char **)): - Drop nchoices argument. Instead determine nchoices by trailing NULL. - * variables.h (SET_INTERNAL_VARIABLE_CHOICES): Update. - * DLD-FUNCTIONS/svd.cc (Fsvd_driver): Update. - - 2010-05-17 Jaroslav Hajek - - * variables.cc (set_internal_variable (int&, ..., const char **, int)): - New overload. - * variables.h: Declare it. - (SET_INTERNAL_VARIABLE_CHOICES): New macro. - * DLD-FUNCTIONS/svd.cc (Fsvd_driver): Use it here. - - 2010-05-17 Jaroslav Hajek - - * ov-usr-fcn.h (octave_user_function::curr_unwind_protect_frame): New - field. - (octave_user_function::local_protect): New template method. - * ov-usr-fcn.cc (octave_user_function::octave_user_function): - Initialize it here. - (octave_user_function::do_multi_index_op): Set and restore it here. - * variables.cc (wants_local_change, try_local_protect): New helper - funcs. - (set_internal_variable): Call them in all overloads. - - 2010-05-14 Jaroslav Hajek - - * symtab.cc (symtab::do_mark_global, symtab::do_mark_hidden): Force - non-existing symbol to be created. - - 2010-05-13 Jaroslav Hajek - - * xdiv.cc (solve_singularity_warning): Use ID for the warning. - - 2010-05-13 Jaroslav Hajek - - * DLD-FUNCTIONS/sqrtm.cc (sqrtm_utri_inplace): Use an ID for the - warning. - - 2010-05-13 Jaroslav Hajek - - * load-save.cc (install_loaded_variable): Pre-extract symbol record - reference to do all operations. - - 2010-05-11 David Bateman - - * ls-mat5.cc (save_mat5_element_length): Correct element length for - sparse elements with NZMAX=1 or NC=0. - (save_mat5_binary_element): Save the NZMAX elements of the RIDX - sparse index. - - 2010-05-11 Jaroslav Hajek - - * ov-lazy-idx.cc (octave_lazy_index::save_binary): Fix arguments to - save_binary_data. - - 2010-05-07 Jaroslav Hajek - - * DLD-FUNCTIONS/sqrtm.cc (do_sqrtm): Mark the result as triangular - where applicable. - - 2010-05-10 Rik - - * DLD-FUNCTIONS/qr.cc: Split qrdelete test into high precision test - when QRUPDATE is present and low precision when it is not. - - 2010-05-10 Jaroslav Hajek - - * DLD-FUNCTIONS/schur.cc (Fschur): Mark triangular matrices on output. - - 2010-05-10 Jaroslav Hajek - - * ov-range.cc (octave_range::index_vector): Optimize order of - conditions. - - 2010-05-08 Jaroslav Hajek - - * ov.cc (octave_value::do_non_const_unary_op): Always return *this as - octave_value&. Remove unused overload. - * oct-lvalue.cc (octave_lvalue::do_unary_op): Simplify. - * pt-unop.cc (tree_prefix_expression::rvalue1, - tree_postfix_expression::rvalue1): Remove dummy rvalue1 calls. - - 2010-05-07 Michael Goffioul - - * ov-base.h (Vsparse_auto_mutate): Add OCTINTERP_API tag. - - 2010-05-07 John W. Eaton - - * octave.cc (maximum_braindamage): Set value of internal - variable Vallow_noninteger_range_as_index to true instead of - setting Octave:allow-noninteger-ranges-as-indices warning state. - * ov-range.cc (Fallow_noninteger_range_as_index): New function. - (Vallow_noninteger_range_as_index): New variable. - (octave_range::index_vector): Only allow non-integer range as - index if Vallow_noninteger_range_as_index is true. - (octave_range::bool_array_value): Move definition here from ov-range.h. - * ov-range.h (Vallow_noninteger_range_as_index): Provide decl. - * utils.cc (reset_warning_state): Delete. - (Fisindex): Temporarily set Vallow_noninteger_range_as_index - instead of changing warning state for - Octave:allow-noninteger-ranges-as-indices to "error". - - 2010-05-06 John W. Eaton - - * xgl2ps.c: Don't compile gl2ps.c unless we have OpenGL. - From Petr Mikulik . - - 2010-05-06 John W. Eaton - - * ov-range.cc (octave_range::index_vector): - Improve warning/error message. - - 2010-05-06 Jaroslav Hajek - - * DLD-FUNCTIONS/sqrtm.cc (sqrtm_utri_inplace, do_sqrtm): New helper - functions. - (Fsqrtm): Rewrite. - - 2010-05-06 Jaroslav Hajek - - * DLD-FUNCTIONS/schur.cc (Fschur): Recognize "complex" option for - Matlab compatibility. Simplify argument handling and improve error - messages. - - 2010-05-05 John W. Eaton - - * utils.cc (reset_warning_state): New function. - (Fisindex): Temporarily set warning state for - Octave:allow-noninteger-ranges-as-indices to "error". - * error.cc (set_warning_state): New function. - (initialize_default_warning_state): Set default warning state - for Octave:allow-noninteger-ranges-as-indices to "error". - * error.h (set_warning_state): Provide decl. - * octave.cc (maximum_braindamage): Set warning state for - Octave:allow-noninteger-ranges-as-indices to "on". - * ov-range.cc (octave_range::index_vector): Warn if range - contains non-integer values. - - 2010-05-03 Jaroslav Hajek - - * DLD-FUNCTIONS/svd.cc (driver): New static var. - (Fsvd): Use it to select a driver. - (Fsvd_driver): New DEFUN. - - 2010-05-02 Rik - - * ov-cell.cc: Wrap documentation line to prevent overfull hbox - LaTex warning - - 2010-05-01 Ben Abbott - - * graphics.cc, graphics.h.in: Remove line object properties ldata, - udata, xldata, xudata. - - 2010-04-30 Shai Ayal - - * DLD-FUNCTIONS/fltk_backend.cc (plot_window::set_axes_currentpoint): - check for valid object before manipulating it - - 2010-04-27 John W. Eaton - - * graphics.h.in (string_array_property::string_array_property): - Index string_vector with [], not (). - (string_array_property::string_value): Likewise. - (string_array_property::do_set): Likewise. - Avoid indexing past last element of string_vector object. - Fixes bug #29695. - - 2010-04-27 Jaroslav Hajek - - * ov-cs-list.cc (octave_cs_list::subsref): New methods. Just gripe. - * ov-cs-list.h: Declare them. - - 2010-04-27 John W. Eaton - - * ov-usr-fcn.cc (octave_user_script::do_multi_index_op): - Correct spelling of max_recursion_depth in error message. - (octave_usr_fcn::do_multi_index_op): Ditto. - * pt-eval.h, pt-eval.cc (Vmax_recursion_depth): Move definition - here from ov-usr-fcn.cc. Now extern. - (Fmax_recursion_depth): Move definition here from ov-usr-fcn.cc. - * oct-parse.yy (source_file): Limit recursive calls on a - per-file basis. - Addresses bug #29491. - - 2010-04-25 David Bateman - - * oct-parse.yy (octave_function * load_fcn_from_file - (const std::string&, const std::string&, const std::string&) - (const std::string&, bool)): When loading a mex-file attempt - to load the m-file first to get the help string. - - 2010-04-24 Ben Abbott - - * graphics.h.in: Have figure color property support a radio value, - 'none'. - - 2010-04-24 David Bateman - - * graphics.cc (void axes::properties::set_defaults - (base_graphics_object&, const std::string&)): Make the default - axes color "none". - - 2010-04-24 Shai Ayal - - * Makefile.am: change GRAPHICS_CPPFLAGS to GRAPHICS_CFLAGS since - the former does not exist and the latter serves the same purpose - - 2010-04-23 Rik - - * Makefile.am: Clarify compilation note about defaults.h - - 2010-04-23 Rik - - * symtab.h: Clear global variables when 'clear -all' called - - 2010-04-23 John W. Eaton - - * DLD-FUNCTIONS/fltk_backend.cc (OpenGL_fltk::OpenGL_fltk): - Explicitly initizlize all data members in the order they are declared. - - 2010-04-23 John W. Eaton - - * txt-eng-ft.cc (ft_render::visit): Declare loop counter size_t, - not int. - - * graphics.h.in (graphics_xform::untransform): Likewise. - * graphics.cc (text::properties::update_text_extent): Likewise. - * DLD-FUNCTIONS/fltk_backend.cc (plot_window::set_axes_currentpoint): - Avoid GCC shadow variable warning. - - * DLD-FUNCTIONS (plot_window::plot_window): Explicitly - initialize all data members in the order they are declared. - - 2010-04-23 John W. Eaton - - * DLD-FUNCTIONS/gcd.cc (Fgcd): Use two-argument dim_vector constructor. - - * ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal): - Explicitly create idx_vec with column orientation. - - * oct-obj.cc (octave_value_list::octave_value_list): - Explicitly resize data to be row vector. - - 2010-04-23 Rik - - * DLD-FUNCTIONS/regexp.cc.: Eliminate compile warning. - warning: suggest explicit braces to avoid ambiguous 'else'. - - 2010-04-23 Jaroslav Hajek - - * ov-base-scalar.h (octave_base_scalar::reshape, - octave_base_scalar::permute): Remove implementations. - * ov-base-scalar.cc (octave_base_scalar::reshape, - octave_base_scalar::permute): Provide correct implementations here. - - 2010-04-23 Jaroslav Hajek - - * ov-bool.h (octave_bool::empty_clone): Correctly return an empty - matrix. - * ov-float.h (octave_float::empty_clone): Ditto. - * ov-base-mat.h (octave_base_matrix::clone, - octave_base_matrix::empty_clone): Remove. - * ov-base-scalar.h (octave_base_scalar::clone, - octave_base_scalar::empty_clone): Remove. - * ov-base-sparse.h (octave_base_sparse::clone, - octave_base_sparse::empty_clone): Remove. - * ov-base.h (octave_base_value::empty_clone): Remove implementation. - * ov-base.cc (octave_base_value::empty_clone): Implement here. - Fall back to resize() for empty_clone(). - * ov.cc (octave_value::assign): Correct behavior in the indexed - OP= case. Use better error messages. Always return non-const - reference, like any assignment. - * ov.h: Update decls. - * oct-lvalue.cc (octave_lvalue::assign): Simplify. - - 2010-04-22 Rik - - * DLD-FUNCTIONS/hess.cc.: return correct Hessenberg matrix when - called with only one output argument. - - 2010-04-22 Jaroslav Hajek - - * data.cc (do_hypot): New helper function. Move bulk code from Fhypot - here. - (Fhypot): Account for >2 args by folding do_hypot several times. - - 2010-04-20 Jaroslav Hajek - - * pt-mat.cc (single_type_concat): New overloads. Make TYPE an explicit - template parameter. Try to forward some cases to Array::cat and - Sparse::cat. - (do_single_type_concat, do_single_type_concat_no_mutate): Don't - allocate the array here, let single_type_concat do it. - - 2010-04-19 Jaroslav Hajek - - * data.cc (single_type_concat, do_single_type_concat): Rewrite using - new liboctave facilities. - (do_cat): Don't compute result dims if the case can be forwarded to - liboctave. - - 2010-04-13 David Bateman - - * graphics.cc (void text::properties::update_text_extent (void)): - Don't call text_renderer.set_font if HAVE_FONTCONFIG is not set. - - 2010-04-13 David Bateman - - * DLD-FUNCTIONS/regexp.cc (octregexp_list): Handle repeated matches - in the list of matches returned by pcre. - - 2010-04-13 Shai Ayal - - * DLD-FUNCTIONS/fltk_backend.cc (plot_window::set_currentpoint, - (plot_window::set_axes_currentpoint, plot_window::key2shift, - (plot_window::key2ascii, plot_window::modifier2cell): New helper - functions for keypress and mousebutton callbacks. - (plot_window::handle): implement keypress and mousebutton callbacks. - - * graphics.h.in (callback_property::is_defined): New conveniance - function. Rename figure.current_point to figure.currentpoint. - - 2010-04-13 Jaroslav Hajek - - * DLD-FUNCTIONS/sparse.cc (Fspalloc): New DEFUN. - * ov-base.cc (octave_base_value::nzmax): Return numel by default. - - 2010-04-13 Jaroslav Hajek - - * ov-base-sparse.cc (octave_base_sparse::assign): Rewrite. - * ov-cx-sparse.cc (octave_sparse_complex_matrix::assign - (const octave_value_list& idx, const SparseMatrix& rhs)): Remove. - * ov-cx-sparse.h: Remove decl. - - 2010-04-10 Ben Abbott - - * graphics.h.in: Fix nextplot property values. Add "new" to - list for axes nextplot values. Change "replace_children" to - "replacechildren" for both axes and figures. - - 2010-04-09 David Bateman - - * DLD-FUNCTIONS/regexp.cc (octregexp_list): Properly ignore - zero-length matches in named tokens. - - 2010-04-09 John W. Eaton - - * ov-ch-mat.h (octave_char_matrix::mex_get_data): New function. - Addresses bug #29475. - - 2010-04-09 Judd Storrs - - * utils.cc (isvarname): Keywords are not valid variable names. - - 2010-04-08 Jaroslav Hajek - - * help.cc (make_name_list): Don't insert global and top-level scope - variables. Always insert current scope. - - 2010-04-08 Jaroslav Hajek - - * data.cc (SINGLE_TYPE_CONCAT, DO_SINGLE_TYPE_CONCAT): Replace by - templates. - (single_type_concat, do_single_type_concat): New static temvplate - funcs. Correctly skip 0x0 matrices. - (Fcat): Call them here. Add tests. - - 2010-04-07 Jaroslav Hajek - - * oct-parse.yy (feval): Use do_multi_index_op on handles. - (get_feval_args): Use array slicing functions rather than loops. - - 2010-04-06 Jaroslav Hajek - - * ov-base-sparse.cc (octave_base_sparse::delete_elements): Rewrite. - - 2010-04-02 Judd Storrs - - * octave.cc (intern_argv): Truncate argv when script files are - run without command line parameters. Resolves bug #29423. - - 2010-03-31 Jaroslav Hajek - - * DLD-FUNCTIONS/sparse.cc (Fsparse): Rewrite. - - 2010-03-28 David Grundberg - - * DLD-FUNCTIONS/convhulln.cc [HAVE_QHULL]: Neither include - qhull/qhull_a.h nor run tests if unless we HAVE_QHULL. - - 2010-03-26 Jaroslav Hajek - - * variables.cc (maybe_missing_function_hook): Temporarily clear before - executing the hook to avoid recursive calls. - - 2010-03-25 John W. Eaton - - * gl2ps-renderer.cc (glps_renderer::draw): Tag call to fclose - with gnulib::. - - 2010-03-25 John W. Eaton - - * oct-parse.yy, oct-fstrm.cc, mex.cc, input.cc, - c-file-ptr-stream.cc: Revert changes from 2010-03-24. - - 2010-03-25 Jaroslav Hajek - - * kron.cc (Fkron): Completely rewrite. - - 2010-03-24 John W. Eaton - - * version.h.in (OCTAVE_BUGS_STATEMENT): Point to - http://www.octave.org/bugs.html, not the mailing list. - - 2010-03-24 John W. Eaton - - * DLD-FUNCTIONS/config-module.awk: Emit additions to EXTRA_DIST. - - 2010-03-24 John W. Eaton - - * Makefile.am ($(srcdir)/DLD-FUNCTIONS/module.mk): - Remove doubled // from file name in rule. - - 2010-03-24 David Grundberg - - * oct-parse.yy: Include gnulib stdlib.h/stdio.h instead of C++ - headers. - * oct-fstrm.cc: Include gnulib stdlib.h/string.h instead of C++ - headers. - * mex.cc: Include gnulib stdlib.h instead of C++ headers. - * input.cc: Include gnulib stdio.h instead of C++ headers. - * c-file-ptr-stream.cc: Include gnulib stdio.h. - - 2010-03-24 John W. Eaton - - * load-path.cc (load_path::add_to_fcn_map): Style fixes. - - 2010-03-24 Jaroslav Hajek - - * variables.cc (maybe_missing_function_hook): Don't call hook if - errors are being handled. - - 2010-03-24 Jaroslav Hajek - - * variables.cc (Fmissing_function_hook): New pseudo-variable. - (Vmissing_function_hook): New static var. - (maybe_missing_function_hook): New function. - * variables.h: Declare it. - * pt-id.cc (tree_identifier::eval_undefined_error): Call it here. - * oct-parse.yy (feval (const std::string&, ...)): Also here. - - 2010-03-23 Jaroslav Hajek - - * data.cc (Frem, Fmod): New DEFUNs. - (Ffmod): Remove. Make an alias of Frem. - - 2010-03-23 Jaroslav Hajek - - * data.cc (map_d_m, map_m_d, map_m_m, map_f_fm, map_fm_f, map_fm_fm, - map_d_s, map_s_d, map_s_s): Remove. - (Fatan2, Fhypot, Ffmod): Rewrite using binmap. - - 2010-03-21 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Fix the parsing of string - function arguments. - - 2010-03-20 John W. Eaton - - * lex.ll: Don't undefine GNULIB_NAMESPACE. Define fprintf, - fwrite, malloc, and realloc and GNULIB_NAMESPACE::fprintf, ... - * oct-parse.yy: Likewise. Always include cstdlib. - - 2010-03-16 John W. Eaton - - * ls-oct-ascii.cc (save_ascii_data): Insert extra newline after - data is written to file. From Brett Stewart . - - 2010-03-16 Jaroslav Hajek - - * ov-base.h (unary_mapper_t::umap_cbrt): New enum member. - * ov.h (octave_value::cbrt): New forwarder method. - * ov-scalar.cc (octave_scalar::map): Handle cbrt. - * ov-float.cc (octave_float_scalar::map): Ditto. - * ov-re-mat.cc (octave_matrix::map): Ditto. - * ov-flt-re-mat.cc (octave_float_matrix::map): Ditto. - * ov-re-sparse.cc (octave_sparse_matrix::map): Ditto. - - 2010-03-15 John W. Eaton - - * oct-parse.yy, lex.ll: Undefine GNULIB_NAMESPACE immediately - after including . - - * toplev.cc (wait_for_input): Tag call to select with gnulib::. - - * sighandlers.h (BLOCK_SIGNAL): Tag calls to sigemptyset, - sigaddset, and sigprocmask with gnulib::. - (UNBLOCK_CHILD): Tag call to sigprocmask with gnulib::. - * sighandlers.cc (octave_set_signal_handler): Tag calls to - sigemptyset with gnulib::. - (octave_set_signal_handler): Tag call to sigaction with gnulib::. - - * oct-procbuf.cc (octave_procbuf::open): Tag calls to close, dup2, - and fclose with gnulib::. - (octave_procbuf::close): Tag call to fclose with gnulib::. - - * oct-hist.cc (unlink_cleanup): Tag call to unlink with gnulib::. - - * oct-fstrm.cc (octave_fstream::octave_fstream): Tag call to - strerror with gnulib::. - - * mex.cc (mex::malloc_unmarked, mex::realloc, mxArray::malloc, - mxMalloc, mxRealloc): Tag call to malloc with gnulib::. - - * input.cc (gnu_readline): Tag call to fputs with gnulib::. - - * file-io.cc (cleanup_tmp_files): Tag call to unlink with gnulib::. - (do_stream_open, Ftmpfile, Fmkstemp): Tag call to strerror with - gnulib::. - - * dirfns.cc (octave_change_to_directory): Tag call to strerror - with gnulib::. - - * c-file-ptr-stream.cc (c_file_ptr_buf::overflow): Tag calls to - fputc with gnulib::. - (c_file_ptr_buf::xsputn): Tag call to fwrite with gnulib::. - (c_file_ptr_buf::file_close): Move here from - c-file-ptr-stream.h. Tag call to fclose with gnulib::. - - 2010-03-12 Ben Abbott - - * /DLD-FUNCTIONS/chol.cc: Increase tolerance for single precision test. - - 2010-03-09 Jaroslav Hajek - - * DLD-FUNCTIONS/lookup.cc (Flookup): Fix deprecated array constructor. - - 2010-03-09 Jaroslav Hajek - - * ov-intx.h - (OCTAVE_INT_NDARRAY_T::convert_gripe): Remove method. - (OCTAVE_INT_NDARRAY_T): Remove all uses. - (OCTAVE_INT_T::convert_gripe): Remove method. - (OCTAVE_INT_T): Remove all uses. - * ov.cc (convert_to_int_array, convert_to_octave_idx_type_array): - Remove int conversion warnings. - * data.cc (NATIVE_REDUCTION_1): Ditto. - - * OPERATORS/op-intx.h: Remove integer warning stubs. - * OPERATORS/opt-int-conv.cc: Ditto. - - * gripes.cc (gripe_truncated_conversion, - gripe_binop_integer_math_truncated, - gripe_native_integer_math_truncated, - gripe_unop_integer_math_truncated, gripe_non_integer_conversion, - gripe_nan_conversion): Remove. - * gripes.h: Remove decls. - * error.cc (initialize_default_warning_state): Don't initialize - removed warnings. - - 2010-03-07 Michael Goffioul - - * gl-render.cc (draw_figure): disable depth test on the 3rd pass. - (draw_text): use get_data_position to get text position. - * graphics.h.in (graphics_xform): New zlim field. - (graphics_xform::untransform(double,double,bool)): New method. - (axes::properties::get_transform): Provide zlim data to graphics_xform - constructor. - (text::properties::string, text::properties::units, - text::properties::rotation, text::properties::fontname, - text::properties::fontangle, text::properties::fontsize, - text::properties::fontweight, text::properties::interpreter): Add 'u' - modified. - (text::properties::extent): New property. - (text::properties::get_data_position): New method. - (text::properties::update_position): Use it. - (text::properties::update_text_extent, - text::properties::update_string, text::properties::update_rotation, - text::properties::update_fontname, text::properties::update_fontsize, - text::properties::update_fontangle, - text::properties::update_fontweight, - text::properties::update_interpreter, text::properties::update_units): - New updaters. - * graphics.cc (convert_position): Support single point. - (convert_text_position): New helper function. - (text::properties::get_data_position, text::properties::get_extent, - text::properties::update_text_extent, text::properties::update_units): - New methods. - * txt-eng-ft.h (ft_render::get_extent, ft_render::rotation_to_mode): - New methods. - * txt-eng-ft.cc (ft_render::get_extent, ft_render::rotation_to_mode): - Ditto. - - 2010-03-05 Jaroslav Hajek - - * data.cc (do_accumdim_sum): New helper function. - (F__accumdim_sum__): New DEFUN. - - 2010-03-04 Jaroslav Hajek - - * ov-base.h (unary_mapper_t::umap_erfcx): New enum member. - * ov.h (octave_value::erfcx): New forwarder method. - * ov-scalar.cc (octave_scalar::map): Handle erfcx. - * ov-float.cc (octave_float_scalar::map): Ditto. - * ov-re-mat.cc (octave_matrix::map): Ditto. - * ov-flt-re-mat.cc (octave_float_matrix::map): Ditto. - - 2010-03-03 John W. Eaton - - * DLD-FUNCTIONS/__magick_read__.cc (F__magick_read__): - Call Magick::InitializeMagick. - - 2010-03-02 Jaroslav Hajek - - * DLD-FUNCTIONS/__convn__.cc: Remove. - * DLD-FUNCTIONS/module-files: Update. - - 2010-03-02 Jaroslav Hajek - - * DLD-FUNCTIONS/conv.cc (Fconv2): Rewrite using convn from liboctave. - (Fconvn): New DEFUN. - - 2010-03-01 John W. Eaton - - * (str2double1): Pass argument as const reference and make - explicit copy instead of passing by value. - - 2010-03-01 John W. Eaton - - * DLD-FUNCTIONS/str2double.cc (set_component): Use autoconf - macros instead of checking predefined compiler macros. - (str2double1): Pass val to set_component, not c. - - 2010-03-01 Jaroslav Hajek - - * DLD-FUNCTIONS/str2double.cc (set_component): New helper func. - (str2double1): Use it here. - - 2010-03-01 Jaroslav Hajek - - * DLD-FUNCTIONS/str2double.cc (str2double1): Use ISO-conformant code - for setting the real and imaginary part. - - 2010-02-28 David Bateman - - * DLD-FUNCTIONS/urlwrite.cc (curl_handle::init): Don't set - CURLOPT_USERPWD if userpwd is empty. - - 2010-02-28 John W. Eaton - - * Makefile.am ($(srcdir)/DLD-FUNCTIONS/module.mk): New target. - - * DLD-FUNCTIONS/config-module.sh: Accept top_srcdir argument. - Work from build directory too, not just source tree. - - 2010-02-28 Jaroslav Hajek - - * ov-typeinfo.h (octave_value_typeinfo::octave_value_typeinfo): - Add missing initializers. - - 2010-02-28 John W. Eaton - - * DLD-FUNCTIONS/conv2.cc (conv2 (const MArray&, const MArray&, - Shape)): Args are now const. Move invariant expressions outside - of loops. Use pointers instead of Array class indexing methods. - (conv2 (const MArray&, const MArray&, const MArray&, Shape)): - Ditto. - - 2010-02-27 Jaroslav Hajek - - * ov-base-mat.cc (do_index_op): Use checkelem for scalar indices. - Simplify. - - 2010-02-26 Jaroslav Hajek - - * xpow.cc: Update. - * ov-base-diag.cc: Update. - - 2010-02-25 Jaroslav Hajek - - * DLD-FUNCTIONS/str2double.cc (single_number): New helper func. - (extract_number): Call it instead of >> to get Inf's and NaN's - correctly. - - 2010-02-25 Jaroslav Hajek - - * DLD-FUNCTIONS/str2double.cc: New source. - - 2010-02-19 John W. Eaton - - * DLD-FUNCTIONS/qr.cc: Increase tolerance for test. - - 2010-02-24 Jaroslav Hajek - - * TEMPLATE-INST/Array-tc.cc: Remove Array2 instantiation. - * DLD-FUNCTIONS/besselj.cc: Use Array instead of Array2. - * DLD-FUNCTIONS/tril.cc: Ditto. - * data.cc: Ditto. - * ov-typeinfo.cc: Ditto. - * ov-typeinfo.h: Ditto. - * pr-output.cc: Ditto. - - 2010-02-23 Jaroslav Hajek - - * ov-bool-mat.h (octave_bool_matrix::octave_bool_matrix (const - Array&)): New ctor. - * ov-ch-mat.h (octave_char_matrix::octave_char_matrix (const - Array&)): New ctor. - * ov-str-mat.h (octave_char_matrix_str::octave_char_matrix_str (const - Array&)): New ctor. - (octave_char_matrix_sq_str::octave_char_matrix_sq_str (const - Array&)): New ctor. - - 2010-02-23 Jaroslav Hajek - - * Cell.cc: Reflect Array API changes. - * DLD-FUNCTIONS/__convn__.cc: Ditto. - * DLD-FUNCTIONS/__glpk__.cc: Ditto. - * DLD-FUNCTIONS/__magick_read__.cc: Ditto. - * DLD-FUNCTIONS/bsxfun.cc: Ditto. - * DLD-FUNCTIONS/cellfun.cc: Ditto. - * DLD-FUNCTIONS/conv2.cc: Ditto. - * DLD-FUNCTIONS/dlmread.cc: Ditto. - * DLD-FUNCTIONS/filter.cc: Ditto. - * DLD-FUNCTIONS/kron.cc: Ditto. - * DLD-FUNCTIONS/qz.cc: Ditto. - * DLD-FUNCTIONS/regexp.cc: Ditto. - * DLD-FUNCTIONS/sub2ind.cc: Ditto. - * data.cc: Ditto. - * file-io.cc: Ditto. - * gl-render.cc: Ditto. - * ls-mat5.cc: Ditto. - * oct-map.cc: Ditto. - * oct-obj.h: Ditto. - * oct-parse.yy: Ditto. - * oct-stream.cc: Ditto. - * ov-base-mat.cc: Ditto. - * ov-base-sparse.cc: Ditto. - * ov-perm.cc: Ditto. - * ov-struct.cc: Ditto. - * ov-typeinfo.cc: Ditto. - * ov-typeinfo.h: Ditto. - * ov.cc: Ditto. - * pr-output.cc: Ditto. - * pt-mat.cc: Ditto. - * strfns.cc: Ditto. - * txt-eng-ft.cc: Ditto. - * variables.cc: Ditto. - - 2010-02-22 John W. Eaton - - * ls-mat5.cc: Use numel instead of nelem consistently and where - appropriate in all functions. - (read_mat5_binary_element): Declare ridx and cidx as pointer to - octave_idx_type, not int. - (read_mat5_integer_data): Declare count as octave_idx_type, not int. - (READ_INTEGER_DATA): Loop counter is octave_idx_type, not int. - (OCTAVE_MAT5_INTEGER_READ): Declare n and loop counter as - octave_idx_type, not int. - (read_mat5_binary_element): Rows and columns of sparse matrix - are octave_idx_type, not int. Declare nzmax and nnz as - octave_idx_type. Read nzmax as 32-bit int, and assign. Move - decls closer to first use. - (read_mat5_binary_data): Declare count as octave_idx_type, not int. - (read_mat5_binary_element, write_mat5_array): - Use octave_idx_type instead of int for numel and loop counters. - (write_mat5_array): Declare len and nel as octave_idx_type. - Move declarations closer to first use. - (write_mat5_tag): Declare bytes arg as octave_idx_type, not int. - (write_mat5_integer_data): Declare nel as octave_idx_type, not int. - (write_mat5_cell_array): Declare nel and loop counter as - octave_idx_type, not int. - (save_mat5_array_length): Declare nel nad loop counters as - octave_idx_type, not int. - (save_mat5_binary_element): Declare dims and counters as - octave_idx_type, not int. Delete unused streampos variables. - Call write_mat5_sparse_index_vector to write ridx and cidx. - Don't write element if dimension is too large to save. - (gripe_dim_too_large, write_mat5_sparse_index_vector): New functions. - - 2010-02-22 Carlo de Falco - - * dirfns.cc (Fglob): Make glob function test more robust. - - 2010-02-21 Michael Goffioul - - * gl-render.h: Define WIN32_LEAN_AND_MEAN and don't #undef min/max. - * DLD-FUNCTIONS/fltk_backend.cc: Don't #undef min/max. - - * sighandlers.cc (octave_set_signal_handler): Don't use SIGALRM - unconditionally. - - * ov-bool.h (class octave_bool): Add OCTINTERP_API. - * unwind-prot.h (class unwind_protect_safe): Ditto. - - * Makefile.am: Add -bindir flag to liboctinterp_la_LDFLAGS. Remove - temporary libtool module file after copying oct file. - - 2010-02-19 John W. Eaton - - * DLD-FUNCTIONS/qr.cc: Increase tolerance for test. - - 2010-02-19 Jaroslav Hajek - - * ov-lazy-idx.cc (octave_lazy_index::reshape, - octave_lazy_index::squeeze, octave_lazy_index::permute, - octave_lazy_index::sort, octave_lazy_index::is_sorted, - octave_lazy_index::sort_rows_idx, octave_lazy_index::is_sorted_rows): - New method overrides. - * ov-lazy-idx.h: Declare them. - * ov-re-mat.cc (octave_matrix::reshape, octave_matrix::squeeze, - octave_matrix::sort, octave_matrix::is_sorted, - octave_matrix::sort_rows_idx, octave_matrix::is_sorted_rows): New - method overrides. - * ov-re-mat.h: Declare them. - - 2010-02-19 Jaroslav Hajek - - * DLD-FUNCTIONS/find.cc (Ffind): Avoid unsafe conversion from Inf to - integer. - - 2010-02-18 Jaroslav Hajek - - * syscalls.cc (mk_stat_result): New helper function. - (Flstat): Call it here. - (Fstat): Also here. Handle also the fstat case here. - - 2010-02-18 Thorsten Meyer - - * dirfns.cc (Fglob): Document globbing patterns, add test. - - 2010-02-18 Jaroslav Hajek - - * load-path.cc (in_path_list): New helper function. - (add_to_fcn_map): Use it here. - - 2010-02-18 Sᅵren Hauberg - - * DLD-FUNCTIONS/__magick_read__.cc (__magick_finfo__): - Handle multiple frames in a single image file. - - 2010-02-18 John W. Eaton - - * oct-map.h (Octave_map::Octave_map): Allow dimension to also be - specified in string_vector constructor. - - 2010-02-17 John W. Eaton - - * Makefile.am (OCTAVE_LIBS, OCTINTERP_LINK_DEPS): - Include ../libcruft/libranlib.la in the list. - * oct-conf.h.in (OCTAVE_CONF_F77_INTEGER_8_FLAG): New macro. - * toplev.cc (octave_config_info): Include F77_INTEGER_8_FLAG in - the struct. - - 2010-02-17 Jaroslav Hajek - - * DLD-FUNCTIONS/lookup.cc (do_numeric_lookup): Return an idx_vector - when left_inf is in effect, to enable lazy index optimization. - - 2010-02-16 Jaroslav Hajek - - * ov-lazy-idx.h: New source. - * ov-lazy-idx.cc: New source. - * ov.cc (install_types): Register lazy_index here. - (octave_value::octave_value (const idx_vector&)): Use lazy - construction if possible, under control of an optional flag. - (octave_value::clone): Implement. - * ls-hdf5.cc (save_hdf5): Avoid saving lazy indices. - - 2010-02-15 Jaroslav Hajek - - * ov-fcn-handle.h (octave_fcn_handle::print_as_scalar): New method - override. - - 2010-02-15 Jaroslav Hajek - - * ov-fcn-handle.cc (octave_fcn_handle::is_equal_to): New method. - * ov-fcn-handle.h: Declare it. - * OPERATORS/op-fcn.cc (eq, ne): Call it here. Register new handler. - - 2010-02-13 Jaroslav Hajek - - * load-path.cc (load_path::do_any_class_method): Rename to - do_overloads. Return a list of classes. - * load-path.h (load_path::any_class_method): Likewise. - * symtab.cc (get_dispatch_type): Rewrite. - * symtab.h (get_dispatch_type): Update decl. - * ov-fcn-handle.h (octave_fcn_handle): Partially rewrite. - (octave_fcn_handle::builtin_overloads, octave_fcn_handle::overloads, - octave_fcn_handle::has_overloads): New members. - * ov-fcn-handle.cc (octave_fcn_handle::do_multi_index_op): Rewrite. - (make_fcn_handle): Partially rewrite. - - 2010-02-11 John W. Eaton - - * DLD-FUNCTIONS/config-module.awk, genprops.awk, graphics.h.in, - mkgendoc, mk-pkg-add, mxarray.h.in, zfstream.cc, zfstream.h: - Untabify. - - 2010-02-11 John W. Eaton - - * strfns.cc (Fstrcmpi, Fstrncmpi): Use DEFUNX instead of DEFUN. - (Fstrncmpi): Report strncmpi in error message, not strncmp. - - 2010-02-11 John W. Eaton - - * Cell.cc, bitfcns.cc, c-file-ptr-stream.cc, comment-list.cc, - data.cc, debug.cc, defaults.cc, defun.cc, dirfns.cc, display.cc, - dynamic-ld.cc, error.cc, file-io.cc, gl-render.cc, - gl2ps-renderer.cc, graphics.cc, gripes.cc, help.cc, input.cc, - load-path.cc, load-save.cc, ls-ascii-helper.cc, ls-hdf5.cc, - ls-mat-ascii.cc, ls-mat4.cc, ls-mat5.cc, ls-oct-ascii.cc, - ls-oct-binary.cc, mex.cc, oct-fstrm.cc, oct-hist.cc, - oct-lvalue.cc, oct-map.cc, oct-obj.cc, oct-prcstrm.cc, - oct-procbuf.cc, oct-stream.cc, oct-strstrm.cc, octave.cc, - ov-base-diag.cc, ov-base-int.cc, ov-base-mat.cc, - ov-base-scalar.cc, ov-base-sparse.cc, ov-base.cc, - ov-bool-mat.cc, ov-bool-sparse.cc, ov-bool.cc, ov-builtin.cc, - ov-cell.cc, ov-ch-mat.cc, ov-class.cc, ov-colon.cc, - ov-complex.cc, ov-cx-diag.cc, ov-cx-mat.cc, ov-cx-sparse.cc, - ov-dld-fcn.cc, ov-fcn-handle.cc, ov-fcn-inline.cc, ov-float.cc, - ov-flt-complex.cc, ov-flt-cx-diag.cc, ov-flt-cx-mat.cc, - ov-flt-re-diag.cc, ov-flt-re-mat.cc, ov-int16.cc, ov-int32.cc, - ov-int64.cc, ov-int8.cc, ov-mex-fcn.cc, ov-perm.cc, ov-range.cc, - ov-re-diag.cc, ov-re-mat.cc, ov-re-sparse.cc, ov-scalar.cc, - ov-str-mat.cc, ov-struct.cc, ov-typeinfo.cc, ov-uint16.cc, - ov-uint32.cc, ov-uint64.cc, ov-uint8.cc, ov-usr-fcn.cc, ov.cc, - pager.cc, pr-output.cc, procstream.cc, pt-arg-list.cc, - pt-assign.cc, pt-binop.cc, pt-bp.cc, pt-cbinop.cc, pt-cell.cc, - pt-check.cc, pt-cmd.cc, pt-colon.cc, pt-const.cc, pt-decl.cc, - pt-eval.cc, pt-except.cc, pt-exp.cc, pt-fcn-handle.cc, pt-id.cc, - pt-idx.cc, pt-jump.cc, pt-loop.cc, pt-mat.cc, pt-misc.cc, - pt-pr-code.cc, pt-select.cc, pt-stmt.cc, pt-unop.cc, - sighandlers.cc, sparse-xdiv.cc, sparse-xpow.cc, strfns.cc, - symtab.cc, syscalls.cc, sysdep.cc, toplev.cc, txt-eng-ft.cc, - utils.cc, variables.cc, xdiv.cc, xpow.cc, oct-parse.yy, lex.ll: - Untabify. - - 2010-02-11 John W. Eaton - - * Cell.h, base-list.h, c-file-ptr-stream.h, comment-list.h, - debug.h, defun-int.h, dynamic-ld.h, error.h, gl-render.h, - gl2ps-renderer.h, gripes.h, load-path.h, load-save.h, ls-hdf5.h, - ls-mat-ascii.h, ls-mat4.h, ls-mat5.h, ls-oct-ascii.h, - ls-oct-binary.h, oct-fstrm.h, oct-iostrm.h, oct-lvalue.h, - oct-map.h, oct-obj.h, oct-prcstrm.h, oct-stdstrm.h, - oct-stream.h, oct-strstrm.h, octave.h, ops.h, ov-base-diag.h, - ov-base-int.h, ov-base-mat.h, ov-base-scalar.h, - ov-base-sparse.h, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, - ov-bool.h, ov-builtin.h, ov-cell.h, ov-class.h, ov-complex.h, - ov-cx-diag.h, ov-cx-mat.h, ov-cx-sparse.h, ov-dld-fcn.h, - ov-fcn-handle.h, ov-fcn-inline.h, ov-fcn.h, ov-float.h, - ov-flt-complex.h, ov-flt-cx-diag.h, ov-flt-cx-mat.h, - ov-flt-re-diag.h, ov-flt-re-mat.h, ov-intx.h, ov-mex-fcn.h, - ov-perm.h, ov-range.h, ov-re-diag.h, ov-re-mat.h, - ov-re-sparse.h, ov-scalar.h, ov-str-mat.h, ov-struct.h, - ov-type-conv.h, ov-typeinfo.h, ov-usr-fcn.h, ov.h, parse.h, - pr-output.h, pt-arg-list.h, pt-assign.h, pt-binop.h, pt-cell.h, - pt-cmd.h, pt-colon.h, pt-const.h, pt-decl.h, pt-eval.h, - pt-except.h, pt-exp.h, pt-fcn-handle.h, pt-id.h, pt-idx.h, - pt-jump.h, pt-loop.h, pt-mat.h, pt-misc.h, pt-pr-code.h, - pt-select.h, pt-stmt.h, pt-unop.h, sighandlers.h, sparse-xdiv.h, - sparse-xpow.h, symtab.h, token.h, toplev.h, txt-eng-ft.h, - txt-eng.h, utils.h, variables.h, xdiv.h: Untabify. - - 2010-02-11 John W. Eaton - - * DLD-FUNCTIONS/qz.cc: Untabify. - (Fqz): Declare complex_case volatile to avoid GCC warning. - - 2010-02-11 John W. Eaton - - * DLD-FUNCTIONS/qz.cc: Style fixes. - - 2010-02-11 John W. Eaton - - * load-save.cc: If gnulib defines open, undefine it. Move - #undefs before including zfstream.h. - - 2010-01-30 Jyh-Miin Lin - - * DLD-FUNCTIONS/qz.cc (Fqz): Handle complex case without reordering. - Return Q' for Matlab compatibility. - - 2010-02-11 Jaroslav Hajek - - * symtab.cc: Reverse the effect of 2ceae0b40515. - (get_dispatch_type): If btyp_unknown occurs, read the class dispatch - type. - - 2010-02-10 John W. Eaton - - * load-save.cc: If gnulib defines close, undefine it. - - 2010-02-10 Jaroslav Hajek - - * ov-perm.h (octave_perm_matrix::builtin_type): New function. - * symtab.cc (build_sup_table): Build the matrix with extra column - and row to avoid segfault when undefined value leaks in. - (get_dispatch_type): Update. Gripe if invalid result is detected. - - 2010-02-10 John W. Eaton - - * data.cc: Ensure that CLOCKS_PER_SEC is defined instead of HZ. - (Fcputime): Use CLOCKS_PER_SEC instead of HZ. - - 2010-02-10 John W. Eaton - - * data.cc: Include . Define HZ if it is not defined. - - 2010-02-10 John W. Eaton - - * graphics.cc (base_properties::set_children): Ensure that new - children are stored as a column vector. - - * syscalls.cc (Fdup2, Fexec, Fpopen2, Ffork, Fgetpgrp, Fgetpid, - Fgetppid, Fgetegid, Fgetgid, Fgeteuid, Fkill, Ffstat, Flstat, - Fpipe, Fstat, Fwaitpid): Use DEFUNX instead of DEFUN. - - 2010-02-10 David Grundberg - - * DLD-FUNCTIONS/__magick_read__.cc (read_images): Reimplement - copying with direct fortran_vec manipulation, avoiding indexing - operations. Replace scale_quantum_to_depth calls with simple - arithmetics. - (scale_quantum_to_depth): Remove function. - - 2010-02-10 Jaroslav Hajek - - * DLD-FUNCTIONS/bsxfun.cc (Fbsxfun): Remove redundant test. Add - explanation. - - 2010-02-10 Jaroslav Hajek - - * ov-base.h (octave_base_value::is_list): Remove. - * ov.h (octave_value::is_list): Remove. - * data.cc (Fislist): Remove. - * oct-stream.cc (printf_value_cache::printf_value_cache): Don't call - is_list. - - 2010-02-10 Jaroslav Hajek - - * ov-str-mat.h (octave_char_matrix_str::is_real_type): Delete - overload. - * data.cc (Fisreal): Improve docs. - - 2010-02-10 Jaroslav Hajek - - * data.cc (Fisnumeric): Improve documentation. - (Fismatrix): Ditto. - - 2010-02-09 John W. Eaton - - * graphics.cc, graphics.h.in - (base_properties::get_hidden_children): New function. - (base_properties::get_children_internal): New function. - (base_properties::get_children): Call get_children_internal to - do the work. - (base_properties::set_children): Incorporate maybe_set_children - function here. Account for hidden children. - (maybe_set_children): Delete. - - * c-file-ptr-stream.h (c_file_ptr_buf::buf_close): Rename from close. - (c_file_ptr_buf::file_close): Rename from fclose. - (c_file_ptr_stream::stream_close): Rename from close. - (c_zfile_ptr_buf:buf_close): Rename from close. - Change all callers. - - 2010-02-09 John W. Eaton - - * dynamic-ld.cc (clear): Only warn if reloading a dynamically - linked file that defines multiple functions. - - 2010-02-09 Jaroslav Hajek - - * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx (const Array&, ...)): - Optimize creation of result indices. - * data.cc (Fsort): Ditto. - - 2010-02-09 Jaroslav Hajek - - * DLD-FUNCTIONS/colamd.cc (Fcolamd, Fsymamd, Fetree): Fix improper arg - checks. - * DLD-FUNCTIONS/ccolamd.cc (Fccolamd, Fcsymamd): Likewise. - - 2010-02-08 Jaroslav Hajek - - * ov-re-mat.cc (octave_matrix::sort): Special-case sorting a known - index vector. - - 2010-02-08 John W. Eaton - - * ov-class.cc (Fclass): If more than 1 argument, check that - call is inside class constructor first, then check for valid - arguments. - - 2010-02-05 Jaroslav Hajek - - * data.cc (F__accumarray_sum__): Allow bool and char inputs. - (do_accumarray_minmax, do_accumarray_minmax_fun): New helper funcs. - (F__accumarray_min__, F__accumarray_max__): New defuns. - - 2010-02-04 John W. Eaton - - * sysdep.cc: Don't include . - - 2010-02-04 John W. Eaton - - * graphics.h.in (gh_manager::lookup (const octave_value&)): - New function. - * graphics.cc (axes::properties::set_text_child): Validate value. - Allow value to be character string or handle of text object. - - 2010-02-04 John W. Eaton - - * Makefile.am (OCTAVE_LIBS): Include all liboctave library - dependencies here. - - 2010-02-03 Jaroslav Hajek - - * ov-fcn-handle.h (octave_fcn_handle::anonymous): New static field. - * ov-fcn-handle.cc (octave_fcn_handle::anonymous): Initialize it. - Use everywhere instead of hardwired string. - (octave_fcn_handle::print_raw): Print named function handle with - starting @. - * pt-fcn-handle.cc: Use octave_fcn_handle::anonymous rather than - hardcoded string. - - 2010-02-03 Jaroslav Hajek - - * OPERATORS/op-fcn.cc: New source. - * OPERATORS/module.mk: Include it. - - 2010-02-03 John W. Eaton - - * file-io.cc: Assume we have fcntl.h and sys/stat.h. - - * syscalls.cc: Assume we have fcntl.h and fcntl. - (Ffcntl): Use DEFUNX, not DEFUN. Call octave_fcntl, not - octave_syscalls::fcntl. - - 2010-02-03 John W. Eaton - - * DLD-FUNCTIONS/sub2ind.cc (get_dim_vector): - Eliminate unnecessary cast. - - * DLD-FUNCTIONS/qr.cc (Fqrinsert, Fqrdelete): - Avoid type mismatch errors with octave_idx_type. - - * oct-stream.cc (scanf_format_list::add_elt_to_list): - NUM_ELTS arg is octave_idx_type, not int. - - * ov-struct.cc (octave_struct::load_ascii): Ensure args to - std::max are the same type. - * DLD-FUNCTIONS/lookup.cc (do_numeric_lookup): Likewise. - * DLD-FUNCTIONS/sub2ind.cc (get_dim_vector): Likewise. - * DLD-FUNCTIONS/strfind.cc (qs_search): Likewise, for std::min. - * DLD-FUNCTIONS/tril.cc (do_tril, do_triu): Likewise. - - 2010-02-03 John W. Eaton - - * utils.cc (octave_vsnprintf): Assume we have vsnprintf with - semantics that match the version provided by gnulib. - - * DLD-FUNCTIONS/convhulln.cc (Fconvhulln): - Use std::sstream instead of fixed-length buffer and snprintf. - - 2010-02-03 John W. Eaton - - * cutils.c (octave_usleep): Implement using nanosleep. - (octave_sleep): Assume sleep exists. - - 2010-02-03 John W. Eaton - - * syscalls.cc (Fcanonicalize_file_name): - Call octave_canonicalize_file_name instead of - file_ops::canonicalize_file_name. - - 2010-02-03 John W. Eaton - - * dirfns.cc (Fpwd): Call octave_env::get_current_directory, not - octave_env::getcwd. - - * utils.cc (search_path_for_file, search_path_for_all_files, - make_absolute, Ffile_in_loadpath, Ffile_in_path, file_in_path, - contents_file_in_path, Fmake_absolute_filename): - Don't pass current directory to octave_env::make_absolute. - * ov-fcn-handle.cc (octave_fcn_handle::set_fcn): Likewise. - * octave.cc (execute_startup_files): Likewise. - * ls-mat5.cc (read_mat5_binary_element): Likewise. - * load-save.cc (find_file_to_load): Likewise. - * load-path.cc (load_path::dir_info::update, - load_path::dir_info::initialize, load_path::do_find_dir, - load_path::do_find_matching_dirs): Likewise. - * file-io.cc (do_stream_open): Likewise. - * oct-parse.yy (load_fcn_from_file, Fautoload): Likewise. - * DLD-FUNCTIONS/md5sum.cc (Fmd5sum): Likewise. - * DLD-FUNCTIONS/urlwrite.cc (Furlwrite): Likewise. - - 2010-02-02 John W. Eaton - - * syscalls.cc (Fcanonicalize_file_name): Use DEFUNX instead of DEFUN. - - 2010-02-02 Thomas Weber - - * DLD-FUNCTIONS/filter.cc: New tests. - - 2010-02-02 John W. Eaton - - * octave.cc (octave_main): Assume we have atexit. - * sighandlers.h, sighandlers.cc: Delete conditional definition - of RETSIGTYPE. Replace all uses of RETSIGTYPE with void. - (MAYBE_REINSTALL_SIGHANDLER, SIGHANDLER_RETURN): - Delete macros and all uses. - - 2010-02-01 Jaroslav Hajek - - * load-path.cc (load_path::add_to_fcn_map): Warn when core library or - built-in functions are being shadowed. - (load_path::do_add): Pass at_end to add_to_fcn_map, add_to_method_map. - Don't abort when "." not yet included. - (load_path::do_clear): Don't append "." here. - (load_path::do_set): Always prepend "." here. - (load_path::initialize): Don't explicitly include "." here. - - 2010-02-02 John W. Eaton - - * DLD-FUNCTIONS/filter.cc (filter (MArray&, MArray&, - MArrayN&, MArrayN&, int)): Return early if X is empty. - - 2010-02-02 John W. Eaton - - * cutils.c: Include , not "systime.h". - * data.cc (Fcputime): Assume we have times. - - * DLD-FUNCTIONS/getrusage.cc (Fgetrusage): Assume we have times. - Include and unconditionally. - Don't include - - 2010-02-01 Jaroslav Hajek - - * strfns.cc (Fstrncmpi): Fix typo in docstring. - - 2010-01-30 Jaroslav Hajek - - * ov-list.h, ov-list.cc, OPERATORS/op-list.cc: Remove. - - * Makefile.am, OPERATORS/module.mk: Update. - * debug.cc: Remove #include. - * ov-base.cc: Ditto. - * ov-cs-list.h: Ditto. - * ov-struct.cc: Ditto. - * pt-bp.cc: Ditto. - * ov.cc (octave_value::octave_value (const octave_value_list&)): - Simplify. - (install_types): Omit octave_list. - - 2010-01-30 Thorsten Meyer - - * DLD-FUNCTIONS/time.cc: Replace struct_contains by isfield. - - 2010-01-30 Jaroslav Hajek - - * pt-assign.h (tree_multi_assignment::etype): Remove. - (tree_multi_assignment::tree_multi_assignment): Update. - (tree_multi_assignment::op_type): Update. - * pt-assign.cc (tree_multi_assignment::tree_multi_assignment): Update. - (tree_multi_assignment::rvalue): Update. - (tree_multi_assignment::dup): Update. - * oct=parse.yy (make_assign_op): Don't allow computed multiple - assignments. - - 2010-01-30 Shai Ayal - - * DLD-FUNCTIONS/fltk_backend.cc (__fltk_redraw__): call - Fl::check twice to ensure all pending draws are shown on screen - - 2010-01-30 Jaroslav Hajek - - * oct-lvalue.h (octave_lvalue::black_hole): Remove field. - (octave_lvalue::(all methods)): Update. - * oct-lvalue.cc: Ditto. - - 2010-01-29 David Grundberg - - * mex.cc (mex::realloc): Allocate new memory if the argument is - NULL. - - 2010-01-29 Ryan Rusaw - - * pt-eval.h, pt-eval.cc (tree_evaluator::do_keyboard): - New virtual function. - - 2010-01-28 Jaroslav Hajek - - * toplev.cc (run_command_and_return_output): Fix testing of failed - process creation, simplify. - (cleanup_iprocstream): Remove. - - 2010-01-27 Jaroslav Hajek - - * pt-eval.cc (do_unwind_protect_cleanup_code): Save - current_statement and restore it after cleanup block. - - 2010-01-27 Jaroslav Hajek - - * oct-parse.yy (validate_matrix_row): New static helper func. - (cell_or_matrix_row): Call it here. - - 2010-01-27 Jaroslav Hajek - - * oct-lvalue.h (octave_lvalue::is_black_hole): New method. - (octave_lvalue::black_hole): New field. - (octave_lvalue::is_defined, octave_lvalue::is_undefined, - octave_lvalue::is_map): Make const. - (octave_lvalue::index_set): Remove field. - (octave_lvalue::octave_lvalue, octave_lvalue::operator =): Correctly - handle black holes. Update. - (dummy_value): Remove. - * pt-id.h (tree_identifier::is_black_hole): New method. - (tree_identifier::is_variable): Make virtual. - (tree_black_hole): New class. - * oct-parse.yy (magic_tilde): New terminal. - (param_list): Allow magic_tilde. - (arg_list): Allow magic_tilde. - * pt-misc.cc (tree_parameter_list::validate): Handle black holes. - * pt-idx.cc (tree_index_expression::append): Gripe if arguments - contain magic tilde. - * pt-arg-list.h (tree_argument_list::has_magic_tilde): New method - decl. - (tree_argument_list::list_includes_magic_tilde): New field. - (tree_argument_list::tree_argument_list): Initialize it in ctors. - * pt-arg-list.cc (tree_argument_list::has_magic_tilde): New method. - (tree_argument_list::append): Update list_includes_magic_tilde. - - 2010-01-27 Judd Storrs - - * ov-class.cc (octave_class::print_with_name) Add default case for - classes that don't define a display method. - - 2010-01-26 Shai Ayal - - * gl-render.cc (draw_text): scale position. - - 2010-01-26 John W. Eaton - - * dirfns.cc (Fmkdir, Frmdir, Flink, Fsymlink, Freadlink, - Frename, Ftmpnam, Fumask): Use DEFUNX instead of DEFUN. - * syscall.scc (Fmkfifo, Funlink): Ditto. - * DLD-FUNCTIONS/urlwrite.cc (cleanup_urlwrite, reset_path, - delete_file): Now static. - - 2010-01-23 John W. Eaton - - * octave.cc (octave_main): Use getopt directly instead of using - the (mostly useless) prog_args wrapper class. - Include , not "prog-args.h". - - 2010-01-23 John W. Eaton - - * sighandlers.cc (user_abort): Also set debug_mode if Vdebugging. - * debug.cc (bp_table::do_add_breakpoint, do_remove_all_breakpoints, - bp_table::do_remove_breakpoint, do_remove_all_breakpoints_in_file): - Also set debug_mode if Vdebugging. - * pt-eval.cc (visit_return_command): Actually call reset_debug_state. - (reset_debug_state): Also set debug_mode if Vdebugging. - - 2010-01-22 John W. Eaton - - * octave.cc (octave_main): Use new names for prog_args member - functions. - - 2010-01-22 John W. Eaton - - * octave.cc: Don't include sys/types.h, unistd.h, or fstream. - - 2010-01-22 John W. Eaton - - * oct-parse.yy (make_break_command, make_continue_command, - make_return_command): Don't examine evaluator state here. - * pt-eval.cc (tree_evaluator::visit_break_command): Don't set - tree_break_command::breaking unless inside function or script - body, or inside a looping command. - (tree_evaluator::visit_continue_command): Likewise, for - tree_continue_command::continuing. - (tree_evaluator::visit_return_command): Likewise, for - tree_return_command::returning. Act like dbcont if debugging - and in the top-level debugging stack frame. - - 2010-01-22 John W. Eaton - - * oct-stream.cc (octave_base_stream::do_scanf): Don't skip - whitespace, literal text, and %% elements at the end of the - format spec. Correctly process formats containing only literal text. - (scanf_format_list::finish_conversion): Don't increment nconv - for literal % characters. - (scanf_format_list::length, scanf_format_list::num_conversions): - Return octave_idx_type, not int. - (scanf_format_list::nconv, scanf_format_list::curr_idx): - Now octave_idx_type, not int. Change all uses. - (printf_format_list::length): Return octave_idx_type, not int. - (scanf_format_list::nconv, scanf_format_list::curr_idx): - Now octave_idx_type, not int. Change all uses. - (scanf_format_list::add_elt_to_list, - scanf_format_list::process_conversion, - scanf_format_list::finish_conversion, - printf_format_list::add_elt_to_list, - printf_format_list::process_conversion, - printf_format_list::finish_conversion): - Use size_t instead of int as appropriate. - * oct-stream.h: Update decls. - - 2010-01-22 John W. Eaton - - * debug.cc (Fdbcont, Fdbquit): Call reset_debug_state. - (Fdbquit): Set Vdebugging to false. - * input.cc (Fkeyboard): Set tree_evaluator::debug_state to true. - Set tree_evaluator::current_frame to the initial stack frame - that is active for debugging commands. - * pt-eval.cc (tree_evaluator::reset_debug_state): New function. - * pt-eval.h (tree_evaluator::reset_debug_state): Provide decl. - * toplev.cc (main_loop): Call tree_evaluator::reset_debug_state - if at top level. - - 2010-01-22 Jaroslav Hajek - - * data.cc (Fnorm): Don't special-case empty matrix. - * DLD-FUNCTIONS/svd.cc (Fsvd): Fix empty matrix case. Add tests. - - 2010-01-21 Jaroslav Hajek - - * ov-builtin.cc (octave_builtin::do_multi_index_op): Partially undo - previous change. - * ov-type-conv.h (octave_type_conv_body): Undo previous change. - * ov-dld-fcn.cc (octave_dld_function::do_multi_index_op): Ditto. - - 2010-01-21 John W. Eaton - - * DLD-FUNCTIONS/getrusage.cc, DLD-FUNCTIONS/getgrent.cc, - DLD-FUNCTIONS/getpwent.cc, DLD-FUNCTIONS/regexp.cc, lex.ll, - cutils.c, data.cc, defaults.cc, dirfns.cc, file-io.cc, help.cc, - input.cc, oct-hist.cc, oct-procbuf.cc, oct-procbuf.h, octave.cc, - pager.h, procstream.h, sighandlers.cc, toplev.cc, syscalls.cc, - sysdep.cc, utils.cc: Assume sys/types.h and unistd.h are present - (gnulib provides them). - - 2010-01-21 Jaroslav Hajek - - * ov-base.h (octave_base_value::dim_vector): Return 0x0 by default. - * oct-obj.h (octave_value_list::xelem, octave_value_list::clear): New - methods. - * ov-builtin.cc (octave_builtin::do_multi_index_op): Don't call - make_storable_values. Chop a potential single undefined value. - * ov-type-conv.h (octave_type_conv_body): Ensure storable value. - * ov-dld-fcn.cc (octave_dld_function::do_multi_index_op): New method. - * DLD-FUNCTIONS/cellfun.cc (get_output_list): New helper function. - (Fcellfun): Call it here. Optimize. - - 2010-01-20 John W. Eaton - - * defaults.h.in, graphics.h.in, oct-conf.h.in, oct-errno.cc.in, - version.h.in: Delete Emacs local-variable settings. - - 2010-01-20 John W. Eaton - - * cutils.c, main.c, matherr.c, siglist.c, Cell.cc, bitfcns.cc, - c-file-ptr-stream.cc, comment-list.cc, data.cc, debug.cc, - defaults.cc, defun.cc, dirfns.cc, display.cc, dynamic-ld.cc, - error.cc, file-io.cc, gl-render.cc, gl2ps-renderer.cc, - graphics.cc, gripes.cc, help.cc, input.cc, load-path.cc, - load-save.cc, ls-ascii-helper.cc, ls-hdf5.cc, ls-mat-ascii.cc, - ls-mat4.cc, ls-mat5.cc, ls-oct-ascii.cc, ls-oct-binary.cc, - ls-utils.cc, mappers.cc, oct-fstrm.cc, oct-hist.cc, - oct-iostrm.cc, oct-lvalue.cc, oct-map.cc, oct-obj.cc, - oct-prcstrm.cc, oct-procbuf.cc, oct-stream.cc, oct-strstrm.cc, - octave.cc, ov-base-int.cc, ov-base-mat.cc, ov-base-scalar.cc, - ov-base-sparse.cc, ov-base.cc, ov-bool-mat.cc, - ov-bool-sparse.cc, ov-bool.cc, ov-builtin.cc, ov-cell.cc, - ov-ch-mat.cc, ov-class.cc, ov-colon.cc, ov-complex.cc, - ov-cs-list.cc, ov-cx-mat.cc, ov-cx-sparse.cc, ov-dld-fcn.cc, - ov-fcn-handle.cc, ov-fcn-inline.cc, ov-fcn.cc, ov-float.cc, - ov-flt-complex.cc, ov-flt-cx-mat.cc, ov-flt-re-mat.cc, - ov-int16.cc, ov-int32.cc, ov-int64.cc, ov-int8.cc, ov-list.cc, - ov-mex-fcn.cc, ov-range.cc, ov-re-mat.cc, ov-re-sparse.cc, - ov-scalar.cc, ov-str-mat.cc, ov-struct.cc, ov-typeinfo.cc, - ov-uint16.cc, ov-uint32.cc, ov-uint64.cc, ov-uint8.cc, - ov-usr-fcn.cc, ov.cc, pager.cc, pr-output.cc, procstream.cc, - pt-arg-list.cc, pt-assign.cc, pt-binop.cc, pt-bp.cc, pt-cell.cc, - pt-check.cc, pt-cmd.cc, pt-colon.cc, pt-const.cc, pt-decl.cc, - pt-eval.cc, pt-except.cc, pt-exp.cc, pt-fcn-handle.cc, pt-id.cc, - pt-idx.cc, pt-jump.cc, pt-loop.cc, pt-mat.cc, pt-misc.cc, - pt-pr-code.cc, pt-select.cc, pt-stmt.cc, pt-unop.cc, pt.cc, - sighandlers.cc, sparse-xdiv.cc, sparse-xpow.cc, strfns.cc, - symtab.cc, syscalls.cc, sysdep.cc, token.cc, toplev.cc, - unwind-prot.cc, utils.cc, variables.cc, xdiv.cc, xpow.cc, - zfstream.cc, Cell.h, base-list.h, builtins.h, - c-file-ptr-stream.h, comment-list.h, debug.h, defun-dld.h, - defun-int.h, defun.h, dirfns.h, display.h, dynamic-ld.h, - error.h, file-io.h, gl2ps-renderer.h, gripes.h, help.h, input.h, - lex.h, load-path.h, load-save.h, ls-ascii-helper.h, ls-hdf5.h, - ls-mat-ascii.h, ls-mat4.h, ls-mat5.h, ls-oct-ascii.h, - ls-oct-binary.h, ls-utils.h, mex.h, mexproto.h, oct-errno.h, - oct-fstrm.h, oct-hdf5.h, oct-hist.h, oct-iostrm.h, oct-lvalue.h, - oct-map.h, oct-obj.h, oct-prcstrm.h, oct-procbuf.h, - oct-stdstrm.h, oct-stream.h, oct-strstrm.h, oct.h, octave.h, - ops.h, ov-base-int.h, ov-base-mat.h, ov-base-scalar.h, - ov-base-sparse.h, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, - ov-bool.h, ov-builtin.h, ov-cell.h, ov-ch-mat.h, ov-class.h, - ov-colon.h, ov-complex.h, ov-cs-list.h, ov-cx-mat.h, - ov-cx-sparse.h, ov-dld-fcn.h, ov-fcn-handle.h, ov-fcn-inline.h, - ov-fcn.h, ov-float.h, ov-flt-complex.h, ov-flt-cx-diag.h, - ov-flt-cx-mat.h, ov-flt-re-mat.h, ov-int-traits.h, ov-int16.h, - ov-int32.h, ov-int64.h, ov-int8.h, ov-intx.h, ov-list.h, - ov-mex-fcn.h, ov-range.h, ov-re-mat.h, ov-re-sparse.h, - ov-scalar.h, ov-str-mat.h, ov-struct.h, ov-type-conv.h, - ov-typeinfo.h, ov-uint16.h, ov-uint32.h, ov-uint64.h, - ov-uint8.h, ov-usr-fcn.h, ov.h, pager.h, parse.h, pr-output.h, - procstream.h, pt-all.h, pt-arg-list.h, pt-assign.h, pt-binop.h, - pt-bp.h, pt-cbinop.h, pt-cell.h, pt-check.h, pt-cmd.h, - pt-colon.h, pt-const.h, pt-decl.h, pt-eval.h, pt-except.h, - pt-exp.h, pt-fcn-handle.h, pt-id.h, pt-idx.h, pt-jump.h, - pt-loop.h, pt-mat.h, pt-misc.h, pt-pr-code.h, pt-select.h, - pt-stmt.h, pt-unop.h, pt-walk.h, pt.h, sighandlers.h, siglist.h, - sparse-xdiv.h, sparse-xpow.h, symtab.h, sysdep.h, token.h, - toplev.h, unwind-prot.h, utils.h, variables.h, xdiv.h, xpow.h, - zfstream.h, oct-parse.yy, lex.ll: Delete EMacs local-variable settings. - - 2010-01-20 John W. Eaton - - * DLD-FUNCTIONS/__magick_read__.cc, DLD-FUNCTIONS/balance.cc, - DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc, - DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc, - DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colamd.cc, - DLD-FUNCTIONS/colloc.cc, DLD-FUNCTIONS/conv2.cc, - DLD-FUNCTIONS/daspk.cc, DLD-FUNCTIONS/dasrt.cc, - DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/det.cc, - DLD-FUNCTIONS/dmperm.cc, DLD-FUNCTIONS/dot.cc, - DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/eigs.cc, - DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, - DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/filter.cc, - DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/fltk_backend.cc, - DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/gcd.cc, - DLD-FUNCTIONS/getgrent.cc, DLD-FUNCTIONS/getpwent.cc, - DLD-FUNCTIONS/getrusage.cc, DLD-FUNCTIONS/givens.cc, - DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/inv.cc, - DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc, - DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/luinc.cc, - DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/max.cc, - DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/qr.cc, - DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/qz.cc, - DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/regexp.cc, - DLD-FUNCTIONS/schur.cc, DLD-FUNCTIONS/sparse.cc, - DLD-FUNCTIONS/spparms.cc, DLD-FUNCTIONS/sqrtm.cc, - DLD-FUNCTIONS/svd.cc, DLD-FUNCTIONS/syl.cc, - DLD-FUNCTIONS/symbfact.cc, DLD-FUNCTIONS/time.cc, - DLD-FUNCTIONS/tril.cc: Delete Emacs local-variable settings. - - 2010-01-20 John W. Eaton - - * DLD-FUNCTIONS/__contourc__.cc, DLD-FUNCTIONS/__convn__.cc, - DLD-FUNCTIONS/__delaunayn__.cc, DLD-FUNCTIONS/__dsearchn__.cc, - DLD-FUNCTIONS/__glpk__.cc, DLD-FUNCTIONS/__lin_interpn__.cc, - DLD-FUNCTIONS/__magick_read__.cc, - DLD-FUNCTIONS/__pchip_deriv__.cc, DLD-FUNCTIONS/__qp__.cc, - DLD-FUNCTIONS/__voronoi__.cc, DLD-FUNCTIONS/amd.cc, - DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc, - DLD-FUNCTIONS/betainc.cc, DLD-FUNCTIONS/bsxfun.cc, - DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc, - DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colamd.cc, - DLD-FUNCTIONS/colloc.cc, DLD-FUNCTIONS/conv2.cc, - DLD-FUNCTIONS/convhulln.cc, DLD-FUNCTIONS/daspk.cc, - DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dassl.cc, - DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/dispatch.cc, - DLD-FUNCTIONS/dlmread.cc, DLD-FUNCTIONS/dmperm.cc, - DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/eigs.cc, - DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, - DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw.cc, - DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/find.cc, - DLD-FUNCTIONS/fltk_backend.cc, DLD-FUNCTIONS/gammainc.cc, - DLD-FUNCTIONS/gcd.cc, DLD-FUNCTIONS/getgrent.cc, - DLD-FUNCTIONS/getpwent.cc, DLD-FUNCTIONS/givens.cc, - DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/hex2num.cc, - DLD-FUNCTIONS/inv.cc, DLD-FUNCTIONS/kron.cc, - DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc, - DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/luinc.cc, - DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/md5sum.cc, - DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/qr.cc, - DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/qz.cc, - DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/rcond.cc, - DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/schur.cc, - DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/spparms.cc, - DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/svd.cc, - DLD-FUNCTIONS/syl.cc, DLD-FUNCTIONS/symbfact.cc, - DLD-FUNCTIONS/symrcm.cc, DLD-FUNCTIONS/time.cc, - DLD-FUNCTIONS/tril.cc, DLD-FUNCTIONS/tsearch.cc, - DLD-FUNCTIONS/urlwrite.cc: Untabify. - - 2010-01-20 John W. Eaton - - * TEMPLATE-INST/Array-os.cc, TEMPLATE-INST/Array-tc.cc, - TEMPLATE-INST/Array-sym.cc: Delete Emacs local-variable settings. - - 2010-01-20 Jaroslav Hajek - - * xpow.cc (xpow, elem_xpow): Don't do redundant real->complex - conversions. - - 2010-01-20 Jaroslav Hajek - - * data.cc: Substitute OCTAVE_QUIT -> octave_quit (). - * input.cc: Ditto. - * ls-mat-ascii.cc: Ditto. - * oct-stream.cc: Ditto. - * ov-base-int.cc: Ditto. - * ov-base-sparse.cc: Ditto. - * ov-bool-sparse.cc: Ditto. - * ov-cell.cc: Ditto. - * ov-cx-sparse.cc: Ditto. - * ov-flt-re-mat.cc: Ditto. - * ov-re-mat.cc: Ditto. - * ov-re-sparse.cc: Ditto. - * pr-output.cc: Ditto. - * pt-eval.cc: Ditto. - * pt-mat.cc: Ditto. - * sighandlers.cc: Ditto. - * sparse-xdiv.cc: Ditto. - * sparse-xpow.cc: Ditto. - * toplev.cc: Ditto. - * utils.cc: Ditto. - * xdiv.cc: Ditto. - * xpow.cc: Ditto. - - 2010-01-20 Jaroslav Hajek - - * DLD-FUNCTIONS/bsxfun.cc: New tests. - - 2010-01-20 David Bateman - - * graphics.h.in (string_array_property): New property. - (axes::properties): Use it here for the linestyleorder property. - Remove the markerorder property. - * genprops.awk: Emit string_array_property - - 2010-01-19 Jaroslav Hajek - - * DLD-FUNCTIONS/strfind.cc: Optimize searching for 1 or 2 characters. - - 2010-01-18 John W. Eaton - - * oct-parse.yy (fcn_end): Allow EOF as end of function if - reading from eval string. - (eval_string): Protect and set reading_fcn_file, - reading_script_file, and reading_classdef_file. - - 2010-01-18 Jaroslav Hajek - - * xpow.cc (xpow (const NDArray&, double), xpow (const FloatNDArray&, - float)): Optimize also the x.^3 case. - - 2010-01-18 David Grundberg - - * mex.cc (mexPrintf): Change signature. - * mexproto.h (mexPrintf): Ditto. - - 2010-01-18 David Grundberg - - * mexproto.h (mxSetDimensions): Change signature. - * mex.cc (mxSetDimensions): Ditto. - - 2010-01-17 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc (Fcellslices): Support dim argument, make - consistent with rest of functions. - - 2010-01-17 Thorsten Meyer - - * ov-cell.cc (Fstruct2cell): Add example, add test. - * DLD-FUNCTIONS/cellfun.cc (Fcellfun, Fnum2cell), ov-struct.cc - (Fisstruct): Fix docstring. - * DLD-FUNCTIONS/cellfun.cc (Fcellslices, Fisfield, Ffieldnames, - Frmfield): Add test. - * ov-struct.cc (Fcell2struct): Fix docstring, add test. - - 2010-01-16 David Bateman - - * graphics.h.in (line::properties, surface::properties, - patch::properties): Allow the use of a "@" marker. - (axes::properties): Add markerorder properties to set the - order of the marker styles for the "@" marker. - - 2010-01-15 Jaroslav Hajek - - * pt-mat.cc (SINGLE_TYPE_CONCAT, DO_SINGLE_TYPE_CONCAT, - DO_SINGLE_TYPE_CONCAT_NO_MUTATE): Remove macros. - (single_type_concat, do_single_type_concat, - do_single_type_concat_no_mutate): New template funcs. - (tree_matrix::rvalue1): Call them here. - - 2010-01-14 Jaroslav Hajek - - * strfns.cc (do_strcmp_fun, - strcmp_array_op, strcmp_str_op, - strcmpi_array_op, strcmpi_str_op, - strncmp_array_op, strncmp_str_op, - strncmpi_array_op, strncmpi_str_op): New functions. - (Fstrcmp, Fstrncmp): Reimplement using do_strcmp_fun. - (Fstrcmpi, Fstrncmpi): New defuns. - - 2010-01-14 Jaroslav Hajek - - * DLD-FUNCTIONS/bsxfun.cc (maybe_fill_table): register relational - handlers for char arrays. - - 2010-01-14 Jaroslav Hajek - - * ov-class.cc (octave_class::numel (const octave_value_list&)): Don't - attempt to query overloaded size. - - 2010-01-13 John W. Eaton - - * ov-fcn.h (octave_function (const std::string&, const std::string&)): - Explicitly initialize all data members. - - * ov-builtin.h (octave_builtin::octave_builtin): - Explicitly initialize base class object and data member. - - 2010-01-13 John W. Eaton - - * DLD-FUNCTIONS/__magick_read__.cc (read_indexed_images): - No need to explicitly call chop_trailing_singletons now. - - 2010-01-13 John W. Eaton - - * oct-obj.cc (octave_value_list::any_cell): Avoid assignment in - condition of if statement. - - 2010-01-13 John W. Eaton - - * DLD-FUNCTIONS/lu.cc: Avoid test failures if HAVE_QRUPDATE_LUU is - not defined. - - 2010-01-12 David Bateman - - * graphics.h.in (patch::properties): Add "flat" value to - markeredgecolor and markerfacecolor properties. - - 2010-01-12 Jaroslav Hajek - - * ov-base.h (builtin_type_t): New enum constants: btyp_cell, - btyp_struct and btyp_func_handle. - (btyp_isinteger, btyp_isfloat, btyp_isarray): New funcs. - (btyp_class_name): New array. - (get_builtin_classes): New func. - * ov-cell.h (octave_cell::builtin_type): New virtual override. - * ov-struct.h (octave_struct::builtin_type): New virtual override. - * ov-fcn-handle.h (octave_fcn_handle::builtin_type): New virtual override. - * symtab.cc (get_dispatch_type): Rewrite. Add overload. - * symtab.h: Update decls. - * ov-fcn-handle.cc (octave_fcn_handle::do_multi_index_op): Rewrite. - (get_builtin_classes): Remove. - - 2010-01-12 Jaroslav Hajek - - * oct-obj.cc (octave_value_list::any_cell): New method. - * oct-obj.h: Declare it. - * utils.cc (do_simple_cellfun): New overloaded function. - * utils.h: Declare it. - * DLD-FUNCTIONS/strfind.cc (Fstrfind): Call it here. - (Fstrrep): Also here. - - 2010-01-11 Rik - - * Makefile.am: Update DOCSTRINGS rules to avoid - simple_move_if_change_rule and allow Make to update timestamps. - - 2010-01-11 John W. Eaton - - * DLD-FUNCTIONS/urlwrite.cc (curl_handle::lasterror): - Avoid using errno as a local variable name. - - 2010-01-11 Jaroslav Hajek - - * DLD-FUNCTIONS/lu.cc (Fluupdate): Add tests for LU updating. - - 2010-01-11 Tatsuro MATSUOKA - - * Makefile.am (OCTINTERP_LINK_DEPS): Include FT2_LDFLAGS and - FT2_LIBS in the list. - - 2010-01-09 John W. Eaton - - * DLD-FUNCTIONS/lookup.cc (stri_comp_lt, stri_comp_gt): - Comment out unused functions. - - * oct-stream.cc (BEGIN_S_CONVERSION): Don't declare local tmp - variable twice. - - * gl-render.cc (opengl_renderer::draw_image): Avoid shadow - declaration warning from GCC. - - * DLD-FUNCTIONS/fltk_backend.cc (base_graphics_backend): - Avoid unused parameter warning from GCC. - * dynamic-ld.cc (octave_dynamic_loader::do_load_mex): Likewise. - - * data.cc (get_sort_mode_option): Avoid uninitialized variable - warning from GCC. - - 2010-01-08 Jaroslav Hajek - - * oct-obj.h (octave_value_list::operator () const, - octave_value_list::elem const): Return const octave_value&. - * ov.cc (octave_value::function_value, - octave_value::user_function_value, octave_value::user_script_value, - octave_value::user_code_value, octave_value::fcn_handle_value, - octave_value::fcn_inline_value): Declare as const. - * ov.h: Likewise. - * ov-base.h (octave_value::function_value const): Remove overload. - * ov-usr-fcn.h (octave_user_function::function_value const): Likewise. - * ov-builtin.h (octave_builtin::function_value const): Likewise. - * ov-builtin.h (octave_builtin::function_value const): Likewise. - - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Take a non-const copy prior to - calling non-const functions. - - - 2010-01-08 Jaroslav Hajek - - * DLD-FUNCTIONS/strfind.cc (qs_replace): New function. - (Fstrrep): Use it here. Allow S to be a cellstr. - - 2010-01-07 John W. Eaton - - * data.cc (cputime): Eliminate Windows-specific code. - - 2010-01-07 John W. Eaton - - * variables.cc (get_global_value): Fix function name in error message. - (get_top_level_value, set_top_level_value): New functions. - * variables.h (get_top_level_value, set_top_level_value): - Provide decls. - - * symtab.h (symbol_table::top_level_varref, - symbol_table::top_level_varval): New static functions. - - 2010-01-07 Jaroslav Hajek - - * utils.cc (octave_sleep (double)): Add OCTAVE_QUIT. - - 2010-01-06 Jaroslav Hajek - - * unwind_protect.h, unwind_protect.cc (unwind_protect): Rewrite. - Remove obsolete macros. Use a simple linked list. - - * debug.cc (Fdbwhere): Update to new unwind_protect style. - * dynamic-ld.cc (octave_dynamic_loader::do_load_oct, - octave_dynamic_loader::do_load_mex): Ditto. - * error.cc (Flasterror, Flasterr, error_2, warning_1): Ditto. - * graphics.cc (base_graphics_object::remove_all_listeners, - axes::update_axis_limits, gh_manager::do_execute_callback, - Fdrawnow): Ditto. - * help.cc (raw_help_from_file): Ditto. - * input.cc (do_keyboard, Fkeyboard, get_debug_input): Ditto. - * load-path.cc (load_path::do_set, execute_pkg_add_or_del, - * ls-mat4.cc (save_mat_binary_data): Ditto. - * ls-mat5.cc (read_mat5_binary_element): Ditto. - * mex.cc (call_mex, mexGetVariable): Ditto. - * oct-hist.cc (do_edit_history, do_run_history): Ditto. - * octave.cc (execute_startup_files, execute_eval_option_code, - execute_command_line_file): Ditto. - * ov-builtin.cc (octave_builtin::do_multi_index_op): Ditto. - * ov-class.cc (octave_class::subsasgn, octave_class::print_raw): - Ditto. - * ov-fcn-handle.cc (octave_fcn_handle::load_ascii, - octave_fcn_handle::load_binary, octave_fcn_handle::load_hdf5): Ditto. - * ov-list.cc (octave_list::print_raw): Ditto. - * ov-mex-fcn.cc (octave_mex_function::do_multi_index_op): Ditto. - * ov-struct.cc (octave_struct::print_raw): Ditto. - * ov-usr-fcn.cc (octave_user_script::do_multi_index_op, - octave_user_function::do_multi_index_op): Ditto. - * pager.cc (flush_octave_stdout): Ditto. - * pr-output.cc (Frats): Ditto. - * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): Ditto. - - * pt-eval.cc (tree_evaluator::visit_simple_for_command, - tree_evaluator::visit_complex_for_command, - tree_evaluator::visit_while_command, - tree_evaluator::visit_do_until_command): Update to new unwind_protect - style. - (do_catch_code): Remove. - (tree_evaluator::visit_try_catch_command): Simplify. Don't register - catch code for unwind_protect. - (tree_evaluator::do_unwind_protect_cleanup_code): Make a - tree_evaluator method. Update to new unwind_protect style. - (tree_evaluator::visit_unwind_protect_command): Use explicit try/catch - handling rather than inserting unsafe code into unwind_protect. - - * pt-eval.h (tree_evaluator::do_unwind_protect_cleanup_code): New decl. - * toplev.cc (main_loop): Update to new unwind_protect style. - (run_command_and_return_output): Ditto. - * utils.cc (Fisindex): Ditto. - * variables.cc (generate_struct_completions, safe_symbol_lookup, - do_who): Ditto. - - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Ditto. - * DLD-FUNCTIONS/daspk.cc (Fdaspk): Ditto. - * DLD-FUNCTIONS/dasrt.cc (Fdasrt): Ditto. - * DLD-FUNCTIONS/dassl.cc (Fdassl): Ditto. - * DLD-FUNCTIONS/eigs.cc (Feigs): Ditto. - * DLD-FUNCTIONS/lsode.cc (Flsode): Ditto. - * DLD-FUNCTIONS/quad.cc (Fquad): Ditto. - * DLD-FUNCTIONS/rand.cc (Frandn, Frande, Frandg, Frandp): Ditto. - * DLD-FUNCTIONS/typecast.cc (get_data_and_bytesize, Ftypecast): Ditto. - * DLD-FUNCTIONS/urlwrite.cc (Furlwrite, mput_directory, - getallfiles, F__ftp_mget__): Ditto. - - 2010-01-05 Jaroslav Hajek - - * Cell.cc (Cell::cellstr_value): New method. - * Cell.h (Cell::cellstr_value): Declare it. - - * ov-cell.h (octave_cell::cellstr_cache): Declare as autopointer. - (octave_cell::clear_cellstr_cache): Move here. - * ov-cell.cc (octave_cell::is_cellstr): Only allocate the pointer, but - don't actually create strings. - (octave_cell::cellstr_value): Use cached test, call - Cell::cellstr_value. - (octave_cell::make_cellstr_cache): Remove. - - 2010-01-05 John W. Eaton - - * Makefile.am (AM_CPPFLAGS): Include -I../libgnu in the list. - - 2010-01-04 Thorsten Meyer - - * graphics.cc (graphics_object::set (const Octave_map&)): New function. - (graphics_object::set (const Array&, const Cell&, - octave_idx_type)): New function. - (graphics_object::set_value_or_default (const caseless_str&, - const octave_value&)): New function. - (graphics_object::set (const octave_value_list&)): - Call set_value_or_default to set property values. - (Fset): Handle struct and cell array arguments. - New tests. - * graphics.h.in (graphics_objects::set): Provide decls. - - 2010-01-04 Jaroslav Hajek - - * DLD-FUNCTIONS/strfind.cc (qs_search): Optionally discard overlaps. - Return result as Array. - (Fstrfind): Use octave_value (Array) constructor. - (Fstrrep): New function. - - 2010-01-04 John W. Eaton - - * lex.ll (can_be_command): New function. - (handle_identifier): Use it. - - 2010-01-04 Marco Atzeri - - * Makefile.am (install-oct): Write $(DESTDIR)$(...), not - $(DESTDIR).$(...). - - 2010-01-02 Ben Abbott - - * mappers.cc: Change test tolerance from 1e-16 to eps. - - 2009-12-30 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc (scalar_query_helper): Remove. - (can_extract): New overloaded helper function. - (scalar_col_helper_nda): Rewrite using can_extract and - octave_value_extract. Instantiate for integer types. - (make_col_helper): Support integer types. - - - 2009-12-30 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Fix tests. - - 2009-12-28 Thomas Treichl - - * DLD-FUNCTIONS/md5sum.cc, DLD-FUNCTIONS/lookup.cc: Include - config.h before another header file. - - 2009-12-27 John W. Eaton - - * Makefile.am (xgl2ps.c): New file. - (EXTRA_DIST): Include gl2ps.c in the list. - (DIST_SRC): Include xgl2ps.c in the list instead of gl2ps.c. - - 2009-12-27 Jaroslav Hajek - - * ov.cc (decode_subscripts): Move to utils.cc. - * utils.cc (decode_subscripts): New func. - * utils.h: Declare it. - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Optimize the - `cellfun (@subsref, args, {subs}, "uniformoutput", true)' case. - - 2009-12-26 Jaroslav Hajek - - * gripes.cc (gripe_nonbraced_cs_list_assignment): New function. - * gripes.h: Declare it. - * ov-cell.cc (octave_cell::subsasgn): Use it here. - * ov-struct.cc (octave_struct::subsasgn): Also here. - * pt-idx.cc (tree_simple_assignment::rvalue1): And here. Check for - single lhs value. - - 2009-12-25 Jaroslav Hajek - - * ov-str-mat.h (octave_char_matrix_str::is_matrix_type): Remove - override. - * data.cc (Fismatrix): Update test. - - 2009-12-25 Jaroslav Hajek - - * DLD-FUNCTIONS/strfind.cc: New source. - * DLD-FUNCTIONS/module-files: Add it here. - - 2009-12-23 John W. Eaton - - * lex.ll: Use %top block to include config.h. - - 2009-12-16 Jaroslav Hajek - - * DLD-FUNCTIONS/max.cc (do_cumminmax_body): Support also btyp_bool. - - 2009-12-22 Rob Mahurin - - * find-defun-files.sh: Use SED and EGREP as returned by configure. - - 2009-12-20 Shai Ayal - - * DLD-FUNCTIONS/fltk_backend.cc (plot_sindow::set_name): New method. - (figure_manager::set_name, figure_manage::do_set_name): New methods. - (fltk_backend::property_changed): Handle change of figure title string. - - 2009-12-19 Rik - - * Makefile.am: Eliminate TOPDIR variable in favor of built-in automake - variables of top_builddir and top_srcdir. - - 2009-12-18 David Grundberg - - * ov-usr-fcn.cc (octave_user_script::do_multi_index_op): - Print script filename in script indexing errors. - (octave_user_script::subsref): Ditto. - - 2009-12-18 John W. Eaton - - * input.cc (get_debug_input): Don't attempt to get user input - unless stdin is a tty. Force interactive input mode when - reading debugging input. - (octave_gets): Bypass readline if get_input_from_eval_string is true. - - * input.cc, input.h (stdin_is_tty): New variable. - * octave.cc (octave_main): Set it to true if stdin is not a tty. - - 2009-12-16 Jaroslav Hajek - - * DLD-FUNCTIONS/max.cc (do_minmax_red_op): New - specialization. - (do_minmax_body): Handle btyp_bool. - - 2009-12-16 Jaroslav Hajek - - * symtab.cc (symbol_table::cleanup): Call clear_variables rather than - clear_all on the top and global scopes. - - 2009-12-16 John W. Eaton - - * DLD-FUNCTIONS/fltk_backend.cc (F__init_fltk__): - Add __remove_fltk__ to the list of atexit functions. - (F__remove_fltk__): Wait fltk_maxtime instead of 10 seconds. - - 2009-12-15 John W. Eaton - - * toplev.cc (do_goto_frame_relative): Stop searching at top - stack frame even though it is not a function. - - 2009-12-15 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Preserve original nargout. Call - functions with this value. Use nargout1 to possibly accumulate extra - outputs, as long as they are defined. - - 2009-12-14 Jaroslav Hajek - - * ov-range.cc (octave_range::do_index_op): Defer single subscript to - new Range methods. - - 2009-12-14 Jaroslav Hajek - - * symtab.cc (symbol_table::cleanup): New static method. - * symtab.h: Declare it. - * toplev.cc (clean_up_and_exit): Call it here. - - 2009-12-12 Shai Ayal - - * DLD-FUNCTIONS/fltk_backend.cc (plot_window::toggle_grid, - plot_window::axis_auto): Modify the axes of the correct figure. - - 2009-12-12 Shai Ayal - - * DLD-FUNCTIONS/fltk_backend.cc (plot_window::plot_window): - Handle case where window is created but not visible. Cache - window label. - (figure_manager::toggle_window_visibility, - (figure_manager::do_toggle_window_visibility): New methods. - (fltk_backend::property_change): Handle figure visibility change. - - 2009-12-11 John W. Eaton - - * graphics.h.in (base_properties::all_dynamic_properties): - No longer static. - (base_properties::set (const caseless_str&, const octave_value&)): - Only provide decl, not definition. - (base_properties::set (const caseless_str&, const std::string&, - const octave_value&)): Delete. - (base_properties::dynamic_properties): Rename from - all_dynamic_properties. No longer static. Now protected. - (base_properties::has_dynamic_property, - base_properties::dynamic_property_names, - base_properties::set_dynamic): Omit class name argument. - * graphics.cc (base_properties::all_dynamic_properties): - Delete obsolete definition. - (base_properties::dynamic_property_names): Now const. - Omit class name argument. Simply return dynamic_properties set. - (base_properties::has_dynamic_property): Omit class name argument. - Simply return dynamic_properties set. Don't pass class name to - dynamic_property_names function. - (base_properties::set_dynamic): Omit class name argument. - Dynamic_properties is no longer a map. - - * genprops.awk: Omit class name from arguments of generated - base_properties::all_property_names and base_properties::set - functions. Don't pass class name to base_properties::set in - generated derived class set functions. - - 2009-12-11 John W. Eaton - - * Makefile.am (DOCSTRINGS): Use $(cp_update_rule) instead of - cp -a --update. - - 2009-12-10 Rik - - * Makefile.am: distclean symbolic links for OCT_FILES - - 2009-12-10 Rik - - * Makefile.am: Copy DOCSTRINGS from srcdir to builddir if it does not - exist. Enables VPATH builds. - - 2009-12-10 Jaroslav Hajek - - * ov-dld-fcn.h (octave_dld_function::get_shlib): New method. - * ov-mex-fcn.h (octave_mex_function::get_shlib): New method. - * defun.cc (get_current_shlib): New function. - * defun-int.h: Declare it. - (octave_auto_shlib): New class. - - 2009-12-10 Jaroslav Hajek - - * symtab.cc (out_of_date_check): Try also autoloads. - - 2009-12-09 Jaroslav Hajek - - * symtab.h (symbol_table::fcn_info::clear_autoload_function): - New method. - (symbol_table::clear_dld_function): New method. - * dynamic-ld.cc (octave_shlib_list::do_remove): Switch order of stmts. - (octave_mex_file_list::do_remove): Likewise. - (do_clear_function): Call symbol_table::clear_dld_function. - (octave_dynamic_loader::do_load_oct): Don't use - octave_shlib::mark_relative. - (octave_dynamic_loader::do_load_mex): Ditto. - - 2009-12-10 John W. Eaton - - * file-io.cc (fopen_mode_to_ios_mode): Allow "+" at the end of - modestrings like "rb+". - - 2009-12-10 John W. Eaton - - * oct-stream.cc (BEGIN_C_CONVERSION, BEGIN_S_CONVERSION): - Store characters directly in appropriately sized std::string object. - (FINISH_CHARACTER_CONVERSION): Do store ASCII NUL values. - - 2009-12-09 John W. Eaton - - * DLD-FUNCTIONS/fltk_backend.cc: Style fixes. - - 2009-12-09 Shai Ayal - - * DLD-FUNCTIONS/fltk_backend.cc (plot_window::print): Print immediatly. - - 2009-12-09 John W. Eaton - - * gl2ps-renderer.cc (draw_pixels): New template function. - (opengl_renderer::draw_pixels): Use it. - - 2009-12-09 Shai Ayal - - * gl2ps.c, gl2ps.h: Use upstream version gl2ps-1.3.5-svn-20091202. - - * gl-render.cc (opengl_renderer::draw_pixels): New function. - (opengl_renderer::draw_image): Correctly handle images with width - or height of 1. Use draw_pixels. - * gl-render.h (opengl_renderer::draw_pixels): Provide decl. - - * gl2ps-renderer.cc (glps_renderer::draw_pixels): New function. - * gl2ps-renderer.h (glps_renderer::draw_pixels): Provide decl. - - 2009-12-09 John W. Eaton - - * load-save.cc: Call nstrftime instead of my_strftime. - - 2009-12-09 John W. Eaton - - * load-save.cc: Include strftime.h. - (write_header): Call my_strftime instead of strftime. - - * Makefile.am (AM_CPPFLAGS): Add -I$(top_srcdir)/libgnu to the list. - (OCTAVE_LIBS, OCTINTERP_LINK_DEPS, OCT_LINK_DEPS): - Add ../libgnu/libgnu.la to the list. - - 2009-12-09 Rik - - * Makefile.am: Distribute DOCSTRINGS in tar.gz file - - 2009-12-07 Jaroslav Hajek - - * dirfns.cc (Ffnmatch): Simplify. - - 2009-12-08 Michael Goffioul - - * ov-ch-mat.cc: Add missing #include. - * oct-stream.cc (do_read): Simplify. - * gl-render.h: Undef min and max after #including windows.h. - - 2009-12-08 John W. Eaton - - * Makefile.am (gendoc.cc): Don't pass $(srcdidr) to mkgendoc. - - 2009-12-07 John W. Eaton - - * OPERATORS/op-b-b.cc, OPERATORS/op-b-bm.cc, - OPERATORS/op-b-sbm.cc, OPERATORS/op-bm-b.cc, - OPERATORS/op-bm-bm.cc, OPERATORS/op-bm-sbm.cc, - OPERATORS/op-cdm-cdm.cc, OPERATORS/op-cdm-cm.cc, - OPERATORS/op-cdm-cs.cc, OPERATORS/op-cdm-dm.cc, - OPERATORS/op-cdm-m.cc, OPERATORS/op-cdm-s.cc, - OPERATORS/op-cell.cc, OPERATORS/op-chm.cc, - OPERATORS/op-class.cc, OPERATORS/op-cm-cdm.cc, - OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, - OPERATORS/op-cm-dm.cc, OPERATORS/op-cm-m.cc, - OPERATORS/op-cm-pm.cc, OPERATORS/op-cm-s.cc, - OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, - OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-cs.cc, - OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc, - OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, - OPERATORS/op-dm-cdm.cc, OPERATORS/op-dm-cm.cc, - OPERATORS/op-dm-cs.cc, OPERATORS/op-dm-dm.cc, - OPERATORS/op-dm-m.cc, OPERATORS/op-dm-s.cc, - OPERATORS/op-dm-scm.cc, OPERATORS/op-dm-sm.cc, - OPERATORS/op-dm-template.cc, OPERATORS/op-dms-template.cc, - OPERATORS/op-double-conv.cc, OPERATORS/op-fcdm-fcdm.cc, - OPERATORS/op-fcdm-fcm.cc, OPERATORS/op-fcdm-fcs.cc, - OPERATORS/op-fcdm-fdm.cc, OPERATORS/op-fcdm-fm.cc, - OPERATORS/op-fcdm-fs.cc, OPERATORS/op-fcm-fcdm.cc, - OPERATORS/op-fcm-fcm.cc, OPERATORS/op-fcm-fcs.cc, - OPERATORS/op-fcm-fdm.cc, OPERATORS/op-fcm-fm.cc, - OPERATORS/op-fcm-fs.cc, OPERATORS/op-fcm-pm.cc, - OPERATORS/op-fcs-fcm.cc, OPERATORS/op-fcs-fcs.cc, - OPERATORS/op-fcs-fm.cc, OPERATORS/op-fcs-fs.cc, - OPERATORS/op-fdm-fcdm.cc, OPERATORS/op-fdm-fcm.cc, - OPERATORS/op-fdm-fcs.cc, OPERATORS/op-fdm-fdm.cc, - OPERATORS/op-fdm-fm.cc, OPERATORS/op-fdm-fs.cc, - OPERATORS/op-float-conv.cc, OPERATORS/op-fm-fcdm.cc, - OPERATORS/op-fm-fcm.cc, OPERATORS/op-fm-fcs.cc, - OPERATORS/op-fm-fdm.cc, OPERATORS/op-fm-fm.cc, - OPERATORS/op-fm-fs.cc, OPERATORS/op-fm-pm.cc, - OPERATORS/op-fs-fcm.cc, OPERATORS/op-fs-fcs.cc, - OPERATORS/op-fs-fm.cc, OPERATORS/op-fs-fs.cc, - OPERATORS/op-i16-i16.cc, OPERATORS/op-i32-i32.cc, - OPERATORS/op-i64-i64.cc, OPERATORS/op-i8-i8.cc, - OPERATORS/op-int-concat.cc, OPERATORS/op-int-conv.cc, - OPERATORS/op-list.cc, OPERATORS/op-m-cdm.cc, - OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc, - OPERATORS/op-m-dm.cc, OPERATORS/op-m-m.cc, OPERATORS/op-m-pm.cc, - OPERATORS/op-m-s.cc, OPERATORS/op-m-scm.cc, - OPERATORS/op-m-sm.cc, OPERATORS/op-pm-cm.cc, - OPERATORS/op-pm-fcm.cc, OPERATORS/op-pm-fm.cc, - OPERATORS/op-pm-m.cc, OPERATORS/op-pm-pm.cc, - OPERATORS/op-pm-scm.cc, OPERATORS/op-pm-sm.cc, - OPERATORS/op-pm-template.cc, OPERATORS/op-range.cc, - OPERATORS/op-s-cm.cc, OPERATORS/op-s-cs.cc, OPERATORS/op-s-m.cc, - OPERATORS/op-s-s.cc, OPERATORS/op-s-scm.cc, - OPERATORS/op-s-sm.cc, OPERATORS/op-sbm-b.cc, - OPERATORS/op-sbm-bm.cc, OPERATORS/op-sbm-sbm.cc, - OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc, - OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc, - OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc, - OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc, - OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc, - OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc, - OPERATORS/op-str-m.cc, OPERATORS/op-str-s.cc, - OPERATORS/op-str-str.cc, OPERATORS/op-struct.cc, - OPERATORS/op-ui16-ui16.cc, OPERATORS/op-ui32-ui32.cc, - OPERATORS/op-ui64-ui64.cc, OPERATORS/op-ui8-ui8.cc: - Delete Emacs local-variable settings. - - 2009-12-07 John W. Eaton - - * OPERATORS/op-pm-sm.cc, OPERATORS/op-pm-scm.cc, - OPERATORS/op-dm-sm.cc, OPERATORS/op-dm-scm.cc, - OPERATORS/op-fs-fm.cc, OPERATORS/op-fs-fcm.cc, - OPERATORS/op-fs-fcs.cc, OPERATORS/op-fm-fm.cc, - OPERATORS/op-fm-fcs.cc, OPERATORS/op-fm-fcm.cc, - OPERATORS/op-fcs-fs.cc, OPERATORS/op-fcs-fm.cc, - OPERATORS/op-fcs-fcm.cc, OPERATORS/op-fcm-fs.cc, - OPERATORS/op-fcm-fm.cc, OPERATORS/op-fm-fs.cc, - OPERATORS/op-fcm-fcm.cc, OPERATORS/op-class.cc, - OPERATORS/op-fcm-fcs.cc, OPERATORS/op-str-str.cc, - OPERATORS/op-str-s.cc, OPERATORS/op-str-m.cc, - OPERATORS/op-struct.cc, OPERATORS/op-sm-scm.cc, - OPERATORS/op-sm-s.cc, OPERATORS/op-sm-sm.cc, - OPERATORS/op-sm-cs.cc, OPERATORS/op-sm-cm.cc, - OPERATORS/op-scm-sm.cc, OPERATORS/op-scm-scm.cc, - OPERATORS/op-scm-s.cc, OPERATORS/op-scm-m.cc, - OPERATORS/op-scm-cs.cc, OPERATORS/op-sm-m.cc, - OPERATORS/op-sbm-sbm.cc, OPERATORS/op-scm-cm.cc, - OPERATORS/op-sbm-bm.cc, OPERATORS/op-s-sm.cc, - OPERATORS/op-s-scm.cc, OPERATORS/op-sbm-b.cc, - OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, - OPERATORS/op-m-cm.cc, OPERATORS/op-int.h, - OPERATORS/op-int-conv.cc, OPERATORS/op-int-concat.cc, - OPERATORS/op-cs-sm.cc, OPERATORS/op-cs-scm.cc, - OPERATORS/op-cm-sm.cc, OPERATORS/op-cs-cs.cc, - OPERATORS/op-cm-m.cc, OPERATORS/op-cm-scm.cc, - OPERATORS/op-cm-cm.cc, OPERATORS/op-chm.cc, - OPERATORS/op-cell.cc, OPERATORS/op-bm-sbm.cc, - OPERATORS/op-bm-bm.cc, OPERATORS/op-bm-b.cc, - OPERATORS/op-b-sbm.cc, OPERATORS/op-fcs-fcs.cc: - Untabify. - - 2009-12-07 Jaroslav Hajek - - * Makefile.am: Build OPT_HANDLERS before DEF_FILES. - - 2009-12-06 Rik - - * Makefile.am: Distribute DOCSTRINGS so that documentation will - not require rebuild after merely untarring a distribution. - - 2009-12-05 Jaroslav Hajek - - * DLD-FUNCTIONS/lookup.cc (Flookup): Document complexity. - - 2009-12-05 Jaroslav Hajek - - * DLD-FUNCTIONS/lookup.cc (do_numeric_lookup): Rewrite. - (Flookup): Simplify string part. Use Array::lookup. - - 2009-12-04 John W. Eaton - - * DLD-FUNCTIONS/urlwrite.cc (curl_handle::init): Always use - CURLOPT_USERPWD instead of CURLOPT_USER and CURLOPT_PASSWD. - - 2009-12-04 John W. Eaton - - * version.h.in (OCTAVE_API_VERSION_NUMBER): New macro. - * Makefile.am (version.h): Substitute OCTAVE_API_VERSION_NUMBER. - - 2009-12-04 John W. Eaton - - * Makefile.am (mkdefs): New arguments, srcdir and file. - Generate output here. (.cc.df): Not here. - - 2009-12-04 John W. Eaton - - * Makefile.am (BUILT_SOURCES): Include graphics-props.cc in the - list. - - 2009-12-04 John W. Eaton - - * Makefile.am (liboctinterp_la_SOURCES): Remove $(OPT_HANDLERS) - from the list. - - 2009-12-03 John W. Eaton - - * Makefile.am (CLEANFILES): Include DLD-FUNCTIONS/PKG_ADD, - doc-files, gendoc.cc, gendoc$(BUILD_EXEEXT), graphics-props.cc, - oct-parse.output, $(BUILT_NODISTFILES) in the list. Remove - $(BUILT_SOURCES) from the list. (MAINTAINERCLEANFILES): New - variable. (BUILT_DISTFILES): Remove oct-parse.cc and lex.cc - from the list. (BUILT_NODISTFILES): Include defaults.h, - graphics.h, oct-conf.h, oct-errno.cc, ops.cc, mxarray.h, and - version.h in the list. Remove $(OPT_INC) from the list. - (BUILT_SOURCES): Include mxarray.h and version.h in the list. - (EXTRA_DIST): Include version.h.in in the list. (.cc.df): Don't - silence rules. Omit $(srcdir) from XDEFUN_FILE_NAME. - ($(DEF_FILES)): Depend on mkdefs and Makefile. (mxarray.h, - version.h): New rules. (DLD-FUNCTIONS/PKG_ADD): Don't silence - rules. (builtins.cc, DOCSTRINGS, gendoc.cc, ops.cc, - $(OPT_HANDLERS)) oct-errno.cc, oct-gperf.h): Don't silence - rules. (doc-files, defaults.h, oct-conf.h): Don't silence - rules. - - * mxarray.h.in, version.h.in: Use % to delimit substitutions, - not @. - - * mkbuiltins: Operate on a list of files passed as arguments. - - * genprops.awk: Write either graphics.h or graphics-props.cc to - stdout instead of graphics.h simultaneously with - graphics-props.cc ot a file. * Makefile.am (graphics.h, - graphics-props.cc): Split into two separate rules. - - * find-defun-files.sh: Omit directory part from .df file names. - Operate on .ll and .yy files instead of generated .cc files. - - 2009-12-02 Rik - - * DLD-FUNCTIONS/urlwrite.cc: Correctly compile code even when - libcurl is not present according to configure. - - 2009-12-01 Jaroslav Hajek - - * ov-bool-mat.h (octave_bool_matrix::octave_bool_matrix (const - boolNDArray&, const idx_vector&)): New constructor. - * ov-re-mat.h (octave_bool_matrix::octave_bool_matrix (const - NDArray&, const idx_vector&)): Simplify. - * ov.cc (octave_value::octave_value (const idx_vector&)): Allow - the mask case. - * DLD-FUNCTIONS/find.cc (Ffind): Explicitly call unmask. - - 2009-11-30 Kacper Kowalik - - * oct-hdf5.h: Drop force the use of the v1.6 API * ls-hdf5.cc, - ov-base-int.cc, ov-bool-mat.cc, ov-bool-sparse.cc, ov-bool.cc, - ov-cell.cc, ov-class.cc, ov-complex.cc, ov-cx-mat.cc, - ov-cx-sparse.cc, ov-fcn-handle.cc, ov-fcn-inline.cc, - ov-float.cc, ov-flt-complex.cc, ov-flt-cx-mat.cc, - ov-flt-re-mat.cc, ov-list.cc, ov-range.cc, ov-re-mat.cc, - ov-re-sparse.cc, ov-scalar.cc, ov-str-mat.cc, ov-struct.cc: - Allow v1.8 API versions of hdf5 functions. - - 2009-11-30 John W. Eaton - - * DLD-FUNCTIONS/fft2.cc (Fifft2): Docstring fix. - - 2009-11-29 Jaroslav Hajek - - * pt-unop.cc (tree_prefix_expression::rvalue1): Try to use - octave_value::do_non_const_unary_op. - - 2009-11-29 Jaroslav Hajek - - * DLD-FUNCTIONS/urlwrite.cc (curl_handle::init): Use - CURLOPT_USERPWD if libcurl ver < 7.19.0. - - 2009-11-28 Shai Ayal - - * gl-render.cc (opengl_renderer::draw_image): Handle indexed - images. - - 2009-11-28 Shai Ayal - - * gl-render.h (opengl_renderer::draw): Draw children from end of - list to preserve correct stacking order (first child should be - on top). - - * graphics.cc (maybe_set_children): Store sorted child lists. - - 2009-11-27 Kacper Kowalik - - * ls-hdf5.cc (have_h5giterate_bug): Drop this group iteration - flag for buggy pre 1.2.2 versions of hdf5. * ov-base-int.cc - (octave_base_int_matrix::load_hdf5) - octave_base_int_scalar::load_hdf5), ov-base-int.h - (octave_base_int_matrix::load_hdf5, - octave_base_int_scalar::load_hdf5), ov-base.cc - (octave_base_value::load_hdf5), ov-base.h - (octave_base_value::load_hdf5), ov-bool-mat.cc - (octave_bool_matrix::load_hdf5), ov-bool-mat.h - (octave_bool_matrix::load_hdf5), ov-bool-sparse.cc - (octave_sparse_bool_matrix::load_hdf5), ov-bool-sparse.h - (octave_sparse_bool_matrix::load_hdf5), ov-bool.cc - (octave_bool::load_hdf5), ov-bool.h (octave_bool::load_hdf5), - ov-cell.cc (octave_cell::load_hdf5), ov-cell.h - (octave_cell::load_hdf5), ov-class.cc (octave_class::load_hdf5), - ov-class.h (octave_class::load_hdf5), ov-complex.cc - (octave_complex::load_hdf5), ov-complex.h - (octave_complex::load_hdf5), ov-cx-mat.cc - (octave_complex_matrix::load_hdf5), ov-cx-mat.h - (octave_complex_matrix::load_hdf5), ov-cx-sparse.cc - (octave_sparse_complex_matrix::load_hdf5), ov-cx-sparse.h - (octave_sparse_complex_matrix::load_hdf5), ov-fcn-handle.cc - (octave_fcn_handle::load_hdf5), ov-fcn-handle.h - (octave_fcn_handle::load_hdf5), ov-fcn-inline.cc - (octave_fcn_inline::load_hdf5), ov-fcn-inline.h - (octave_fcn_inline::load_hdf5), ov-float.cc - (octave_float_scalar::load_hdf5), ov-float.h - (octave_float_scalar::load_hdf5), ov-flt-complex.cc - (octave_float_complex::load_hdf5), ov-flt-complex.h - (octave_float_complex::load_hdf5), ov-flt-cx-mat.cc - (octave_float_complex_matrix::load_hdf5), ov-flt-cx-mat.h - (octave_float_complex_matrix::load_hdf5), ov-flt-re-mat.cc - (octave_float_matrix::load_hdf5), ov-flt-re-mat.h - (octave_float_matrix::load_hdf5), ov-list.cc - (octave_list::load_hdf5), ov-list.h (octave_list::load_hdf5), - ov-range.cc (octave_range::load_hdf5), ov-range.h - (octave_range::load_hdf5), ov-re-mat.cc - (octave_matrix::load_hdf5), ov-re-mat.h - (octave_matrix::load_hdf5), ov-re-sparse.cc - (octave_sparse_matrix::load_hdf5), ov-re-sparse.h - (octave_sparse_matrix::load_hdf5), ov-scalar.cc - (octave_scalar::load_hdf5), ov-scalar.h - (octave_scalar::load_hdf5), ov-str-mat.cc - (octave_char_matrix_str::load_hdf5), ov-str-mat.h - (octave_char_matrix_str::load_hdf5), ov-struct.cc - (octave_struct::load_hdf5), ov-struct.h - (octave_struct::load_hdf5), ov.h (octave_value::load_hdf5): - Remove have_hg5iterate_bug from the call to load_hdf5. - * ov-cell.cc (octave_bool::load_hdf5), ov-class.cc - (octave_class::load_hdf5), ov-fcn-handle.cc - (octave_fcn_handle::load_hdf5), ov-list.cc - (octave_list::load_hdf5), ov-struct.cc - (octave_struct::load_hdf5): Remove HAVE_H5GGET_NUM_OBJS cruft - for old hdf5 versions. - - 2009-11-27 David Bateman - - * DLD-FUNCTIONS/urlwrite.cc (curl_handle, curl_handles): Add - classes to manage the open curl connections. (F__ftp__, - F__ftp_pwd__, F__ftp_cwd__, F__ftp_dir__, F__ftp_ascii__, - F__ftp_binary__, F__ftp_close__, F__ftp_mode__, F__ftp_delete__, - F__ftp_rmdir__, F__ftp_mkdir__, F__ftp_rename__, F__ftp_mput__, - F__ftp_mget__): New functions. - - 2009-11-27 Jaroslav Hajek - - * ov.cc (octave_value::octave_value (const index_vector&)): Take - a copy if idx to allow mutation. - - 2009-11-26 Jaroslav Hajek - - * DLD-FUNCTIONS/dot.cc (Fdot): Update docs. - - 2009-11-26 Jaroslav Hajek - - * DLD-FUNCTIONS/dot.cc: New source. - * DLD-FUNCTIONS/module-files: Include it. - - 2009-11-26 Jaroslav Hajek - - * data.cc (Fismatrix): Return true for empty matrices as well. - - 2009-11-25 Jaroslav Hajek - - * DLD-FUNCTIONS/chol.cc (get_chol_l): New helper function. - (Fchol): Use it to set MatrixType for lower triangular factors - as well. Use default octave_idx_type->octave_value conversion. - - 2009-11-24 Jaroslav Hajek - - * data.cc (do_accumarray_sum): Simplify. - - 2009-11-24 Jaroslav Hajek - - * ov-struct.cc (octave_struct::save_binary): Save dimensions for - structs. (octave_struct::load_binary): Load dimensions if - present, use 1x1 otherwise. - - 2009-11-23 Jaroslav Hajek - - * data.cc (Fmerge): Add missing parentheses. - - 2009-11-23 Jaroslav Hajek - - * ov-complex.h (octave_complex::bool_value, - octave_complex::bool_array_value): New methods. - * ov-flt-complex.h (octave_float_complex::bool_value, - octave_float_complex::bool_array_value): New methods. - * ov-cx-mat.cc (octave_complex_matrix::bool_array_value): New - method. * ov-cx-mat.h: Declare it. - * ov-flt-cx-mat.cc (octave_float_complex_matrix::bool_array_value): - New method. - * ov-flt-cx-mat.h: Declare it. - - 2009-11-23 Jaroslav Hajek - - * ov-struct.cc (octave_struct::save_ascii): Save dimensions for - structs. (octave_struct::load_ascii): Load dimensions if - present, use 1x1 otherwise. - - 2009-11-20 Jaroslav Hajek - - * data.cc (Fmerge): Correct query for logical masks. - - 2009-11-20 Jaroslav Hajek - - * utils.cc (dims_to_numel): Fallback to index_vector query for - non-numeric types. - - 2009-11-20 Jaroslav Hajek - - * ov-bool.h (octave_bool::is_numeric_type): New overload. - * ov-bool-mat.h (octave_bool-matrix::is_numeric_type): New overload. - - 2009-11-19 Jaroslav Hajek - - * ov-base.h (unary_mapper_t): New member: umap_erfinv. - * ov-base.c (octave_base_value::get_umap_name): Add "erfinv" here. - * ov.h (octave_value::erfinv): New method. - * ov-scalar.cc (octave_scalar::map): Handle umap_erfinv. - * ov-float.cc (octave_float::map): Ditto. - * ov-re-mat.cc (octave_matrix::map): Ditto. - * ov-flt-re-mat.cc (octave_float_matrix::map): Ditto. - * ov-re-sparse.cc (octave_sparse_matrix::map): Ditto. - * mappers.cc (Ferfinv): New DEFUN. - - 2009-11-14 Shai Ayal - - * gl-render.cc (opengl_renderer::text_to_pixels): New function - from code in render_text to produce the pixels and compute - bounding box. (opengl_renderer::render_text): Call - text_to_pixels to compute rotation mode and bounding box. - * gl-renger.h (opengl_renderer::text_to_pixels): Provide decl. - * gl2ps-renderer.cc (glps_renderer::render_text): Call - text_to_pixels to compute bounding box. - (glps_renderer::set_font): Call opengl_renderer::set_font. - - 2009-11-18 Michael Godfrey - - * txt-eng-ft.cc: Relax font match test. - - 2009-11-18 Jaroslav Hajek - - * DLD-FUNCTIONS/bsxfun.cc (bsxfun_builtin_op): New member: - bsxfun_builtin_power. (bsxfun_builtin_names): Include "power". - (do_bsxfun_real_pow): New static function. (maybe_fill_table): - Register power handlers. - - 2009-11-13 Jaroslav Hajek - - * ov-complex.cc (octave_complex::try_narrowing_conversion): - Don't check signbit. - * ov-flt-complex.cc - (octave_float_complex::try_narrowing_conversion): Ditto. - * ov-cx-mat.cc (octave_complex_matrix::try_narrowing_conversion): - Simplify. Don't check signbit. - * ov-flt-cx-mat.cc - (octave_float_complex_matrix::try_narrowing_conversion): Ditto. - - 2009-11-17 Jaroslav Hajek - - * ov-re-mat.cc (do_rc_map): New static function. - (octave_matrix::map): Use it here. - * ov-flt-re-mat.cc (do_rc_map): New static function. - (octave_float_matrix::map): Use it here. - - 2009-11-17 Jaroslav Hajek - - * DLD-FUNCTIONS/balance.cc: Fix docs. - - 2009-11-13 John W. Eaton - - * Makefile.am (liboctinterp_la_CPPFLAGS): Define. - - 2009-11-13 Joel Keay - - * graphics.h.in (image::properties::init): Also allow single, - int16, and uint16 data types. - - 2009-11-13 Jaroslav Hajek - - * ov-base.h (unary_mapper_t): Move to octave_base_value. - * ov.h: Partially revert to c657c056240d. - (FORWARD_MAPPER): Update to use octave_base_value::map. - (octave_value::map): Ditto. - * mappers.cc: Revert to c657c056240d. - * data.cc: Ditto. - * Cell.h, Cell.cc: Ditto. - * ov-cell.cc (octave_cell::map): Rewrite. - * ov-base-sparse.cc (octave_base_sparse::map): New method. - * ov-base-sparse.h: Declare it. - * ov-re-sparse.cc (octave_sparse_matrix::map): Use it as a fallback. - * ov-cx-sparse.cc (octave_sparse_complexmatrix::map): Ditto. - - 2009-11-12 Jaroslav Hajek - - * ov-base.h (unary_mapper_t): New enum. - (octave_base_value::map (unary_mapper_t)): New method. - (octave_base_value::abs, octave_base_value::acos, - octave_base_value::acosh, octave_base_value::angle, - octave_base_value::arg, octave_base_value::asin, - octave_base_value::asinh, octave_base_value::atan, - octave_base_value::atanh, octave_base_value::ceil, - octave_base_value::conj, octave_base_value::cos, - octave_base_value::cosh, octave_base_value::erf, - octave_base_value::erfc, octave_base_value::exp, - octave_base_value::expm1, octave_base_value::finite, - octave_base_value::fix, octave_base_value::floor, - octave_base_value::gamma, octave_base_value::imag, - octave_base_value::isinf, octave_base_value::isna, - octave_base_value::isnan, octave_base_value::lgamma, - octave_base_value::log, octave_base_value::log2, - octave_base_value::log10, octave_base_value::log1p, - octave_base_value::real, octave_base_value::round, - octave_base_value::roundb, octave_base_value::signum, - octave_base_value::sin, octave_base_value::sinh, - octave_base_value::sqrt, octave_base_value::tan, - octave_base_value::tanh): Remove. - - * ov.h (octave_value::map (unary_mapper_t)): New method. - (octave_value::abs, octave_value::acos, octave_value::acosh, - octave_value::angle, octave_value::arg, octave_value::asin, - octave_value::asinh, octave_value::atan, octave_value::atanh, - octave_value::ceil, octave_value::conj, octave_value::cos, - octave_value::cosh, octave_value::erf, octave_value::erfc, - octave_value::exp, octave_value::expm1, octave_value::finite, - octave_value::fix, octave_value::floor, octave_value::gamma, - octave_value::imag, octave_value::isinf, octave_value::isna, - octave_value::isnan, octave_value::lgamma, octave_value::log, - octave_value::log2, octave_value::log10, octave_value::log1p, - octave_value::real, octave_value::round, octave_value::roundb, - octave_value::signum, octave_value::sin, octave_value::sinh, - octave_value::sqrt, octave_value::tan, octave_value::tanh): Remove. - - * ov-scalar.h, ov-scalar.cc (octave_scalar): Update. - * ov-float.h, ov-float.cc (octave_float): Update. - - * ov-complex.h, ov-complex.cc (octave_complex): Update. - * ov-flt-complex.h, ov-flt-complex.cc (octave_float_complex): - Update. - - * ov-re-matrix.h, ov-re-matrix.cc (octave_matrix): Update. - * ov-flt-re-matrix.h, ov-flt-re-matrix.cc (octave_float_matrix): Update. - * ov-cx-matrix.h, ov-cx-matrix.cc (octave_complex_matrix): Update. - * ov-flt-cx-matrix.h, ov-flt-cx-matrix.cc - (octave_float_complex_matrix): Update. - - * ov-re-sparse.h, ov-re-sparse.cc (octave_sparse_matrix): Update. - * ov-cx-sparse.h, ov-cx-sparse.cc (octave_sparse_complex_matrix): - Update. - - * ov-re-diag.h, ov-re-diag.cc (octave_diag_matrix): Update. - * ov-flt-re-diag.h, ov-flt-re-diag.cc (octave_float_diag_matrix): - Update. - * ov-cx-diag.h ov-cx-diag.cc (octave_complex_diag_matrix): Update. - * ov-flt-cx-diag.h, ov-flt-cx-diag.cc - (octave_float_complex_diag_matrix): Update. - - * ov-range.h (octave_range): Update. - * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T): Update. - (OCTAVE_VALUE_INT_SCALAR_T): Update. - - * ov-perm.h (octave_perm_matrix): Update. - * ov-bool.h (octave_bool): Update. - * ov-bool-mat.h (octave_bool_matrix): Update. - * ov-ch-mat.h (octave_char_matrix): Update. - - * mappers.cc (Fabs, Facos, Facosh, Fangle, Farg, Fasin, Fasinh, - Fatan, Fatanh, Fceil, Fconj, Fcos, Fcosh, Ferf, Ferfc, Fexp, - Fexpm1, Ffinite, Ffix, Ffloor, Fgamma, Fimag, Fisinf, Fisna, - Fisnan, Flgamma, Flog, Flog2, Flog10, Flog1p, Freal, Fround, - Froundb, Fsignum, Fsin, Fsinh, Fsqrt, Ftan, Ftanh, Fisalnum, - Fisalpha, Fisascii, Fiscntrl, Fisdigit, Fisgraph, Fislower, - Fisprint, Fispunct, Fisspace, Fisupper, Fisxdigit, Ftoascii, - Ftolower, Ftoupper): Update. - - 2009-11-11 John W. Eaton - - * load-path.cc (load_path::do_find_all_first_of): Take advantage - of string_vector (std::list) constructor. - - 2009-11-11 John W. Eaton - - * help.cc (do_get_help_text_from_file, - Fget_help_text_from_file): New functions. - (do_get_help_text): Pass NAME by const reference. - * utils.cc (find_dir_in_path): New optional argument "all". - * load-path.cc (load_path::do_find_matching_dirs): New function. - (load_path::do_find_dir): Perform match on absolute directory - names, but return name as it appears in dir_info_list. Adjust - dname_len after stripping directory separator. - * load-path.h (load_path::do_find_matching_dirs): Provide decl. - (load_path::find_matching_dirs): New function. - - 2009-11-11 Shai Ayal - - * DLD-FUNCTIONS/fltk_backend.cc (Fl_Gl_Window::draw): - If zooming, call overlay. - (Fl_Gl_Window::overlay): Rename from draw_overlay. Don't return - early if zooming. Don't call valid and conditionally call - setup_veiwport. Set overlay color and draw line around zoom box. - (Fl_Gl_Window::zoom_box_vertex): New function. - (Fl_Gl_Window::pixel2status): Call canvas->redraw, not - canvas->redraw_overlay. - - 2009-11-10 Shai Ayal - - * gl2ps-renderer.cc, gl2ps-renderer.h, gl2ps.c, gl2ps.h: New - files. PostScript backend based on opengl_renderer and gl2ps. - * Makefile.am (octinclude_HEADERS): Add gl2ps.h to the list. - (DIST_SRC): Add gl2ps.c to the list. - * gl-render.cc (opengl_renderer::render_text): Rename from - opengl_renderer::draw_text. - (opengl_renderer::draw_figure, opengl_renderer::draw_axes, - opengl_renderer::draw_line, opengl_renderer::draw_surface, - opengl_renderer::draw_patch, opengl_renderer::draw_hggroup, - opengl_renderer::draw_text, opengl_renderer::draw_image): - Rename from overloaded opengl_renderer::draw. - * gl-render.h: Fix decls. - - * DLD-FUNCTIONS/fltk_backend.cc (OpenGL_fltk::print): New function. - (OpenGL_fltk::print_filename): New data member. - (OpenGL_fltk::draw): Add support for printing. - (fltk_backend::print_figure): Call figure_manager::print. - - 2009-11-10 John W. Eaton - - * file-io.cc (Fferror): Update doc string. - - 2009-11-10 David Grundberg - - * oct-strstrm.h (octave_base_strstream::tell): Declare virtual. - (octave_istrstream::tell): New method. - - 2009-11-10 John W. Eaton - - * Makefile.am, OPERATORS/module.mk, TEMPLATE-INST/module.mk, - find-defun-files.sh, version.h.in, - DLD-FUNCTIONS/config-module.awk, DLD-FUNCTIONS/config-module.sh, - DLD-FUNCTIONS/module-files: New files. - * Makefile.in, version.h: Delete. - * lex.ll: Rename from lex.l. Include oct-parse.h instead of y.tab.h. - * parse.yy: Rename from parse.y - * mkbuiltins, mkgendoc: Don't require filenames to start with a - "." at beginning of line. - - * oct-conf.h.in (OCTAVE_CONF_LAPACK_LIBS): Delete macro. - * toplev.cc (octave_config_info): Don't include LAPACK_LIBS in the - struct. - - 2009-11-10 Jaroslav Hajek - - * ov-class.cc (octave_class::numel): Use base version if called - from built-in assignment. - (octave_class::size): Ditto. - - 2009-11-10 Jaroslav Hajek - - * DLD-FUNCTIONS/max.cc (Fcummin, Fcummax): Simplify examples in - docs. - - 2009-11-09 Jaroslav Hajek - - * ov-base.cc (btyp_mixed_numeric): New function. - * ov-base.h: Declare it. - (btyp_isnumeric): New inline function. - * DLD_FUNCTIONS/max.cc (do_minmax_red_op, do_minmax_bin_op, - do_minmax_body, do_cumminmax_red_op): New functions. - (MINMAX_DOUBLE_SBODY, MINMAX_DOUBLE_BODY, MINMAX_SINGLE_SBODY, - MINMAX_SINGLE_BODY, MINMAX_SPARSE_BODY, MINMAX_INT_SBODY, - MINMAX_INT_BODY, MINMAX_BODY, CUMMINMAX_BODY): Remove. - (Fmin, Fmax, Fcummin, Fcummax): Update. - - 2009-11-09 Jaroslav Hajek - - * ov.h: Add sparse matrix extractors. - - 2009-11-09 John W. Eaton - - * DLD-FUNCTIONS/__delaunayn__.cc, DLD-FUNCTIONS/__dsearchn__.cc, - DLD-FUNCTIONS/__voronoi__.cc, DLD-FUNCTIONS/convhulln.cc, - DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/tsearch.cc: Correctly include - config.h, don't include oct.h, etc. - - 2009-11-08 Jaroslav Hajek - - * DLD-FUNCTIONS/bsxfun.cc: Add missing copyright. (fill_table): - Mark table as initialized. - - 2009-11-06 Jaroslav Hajek - - * pt-assign.cc (tree_multi_assignment::rvalue): Don't skip - zero-length lvalue cs-lists. - - 2009-11-06 Jaroslav Hajek - - * ov-cell.cc (octave_cell::print_raw): Indent properly. Use - newline rather than '\n'. - - 2009-11-03 John W. Eaton - - * graphics.h.in (root_figure): Add commandwindowsize, diary, - diaryfile, echo, format, language, monitorpositions, - pointerlocation, pointerwindow, and recursionlimit properties. - - 2009-11-03 David Grundberg - - * graphics.h.in (root_figure): Add FormatSpacing property. - - 2009-11-03 David Grundberg - - * ov-class.cc (octave_class::size): Allow and ignore extra - outargs from user-defined size methods. - - 2009-11-03 David Grundberg - - * ov-class.cc (make_idx_args): Call user-defined - subsref/subsasgn with 1xN structs instead of Nx1. - - 2009-11-02 Jaroslav Hajek - - * ov-class.cc (octave_class::unique_parent_class): New method. - (octave_class::subsasgn): Use it here. - * ov-class.h: Declare it. - - 2009-11-01 John W. Eaton - - * data.cc (get_sort_mode_option): New function. - (Fissorted): Handle ascending or descending option. - - 2009-11-01 John W. Eaton - - * load-path.cc (load_path::dir_info::update): Always initialize - relative directories that are not yet included in abs_dir_cache. - - 2009-10-29 John W. Eaton - - * parse.y (finish_function): Return function object unless - parsing function file. - - 2009-10-23 Jaroslav Hajek - - * DLD-FUNCTIONS/tril.cc: New source. * Makefile.in: Include it. - - 2009-10-22 Jaroslav Hajek - - * error.cc (verror (bool, std::ostream&, ..., bool)): Add - optional with_cfn flag. If specified, prepend current function - name (unless already there). - (error_1): Accept with_cfn flag and pass it on. - (error_2): Ditto. - (verror_with_cfn, error_with_cfn, error_with_id_cfn, - verror_with_id_cfn): New functions. - * error.h: Declare them. - * octave.cc (lo_error_handler): Call verror_with_cfn. - * ov-base.cc (INT_CONV_METHOD): Call error_with_cfn. - * ov.cc (octave_value::int_vector_value, octave_idx_type_vector_value): - Call error_with_cfn. - - 2009-10-21 Rik - - * variables.cc: Correct use of deftypefnx for who and whos. - - 2009-10-21 John W. Eaton - - * load-path.h (load_path::dir_path::dir_time_last_checked): New - field. (load_path::dir_path::dir_path, - load_path::dir_path::operator=): Initialize and copy - dir_time_last_checked. - * load-path.cc (load_path::dir_info::initialize): Store time of - last update. - (load_path::dir_info::update): Check directory modification time - against time of last update, within resolution of filesystem - time stamps. Suggested by Judd Storrs . - - 2009-10-20 Jaroslav Hajek - - * ov-base.h (builtin_type_t): Declare also btyp_num_types. - * DLD-FUNCTIONS/bsxfun.cc (bsxfun_builtin_op): New enum. - (bsxfun_handler): New typedef. - (bsxfun_builtin_names, bsxfun_handler_table): New variables. - (bsxfun_builtin_lookup, maybe_fill_table, maybe_optimized_builtin): - New static funcs. - (bsxfun_forward_op, bsxfun_forward_rel): New static template funcs. - (Fbsxfun): Try to optimize some built-in operations. - - 2009-10-19 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc (Fcellslices): Allow non-positive - indices as bounds. - - 2009-10-17 Jaroslav Hajek - - * data.cc (Fnth_element): Clarify docstring. - - 2009-10-16 Jaroslav Hajek - - * Cell.cc, Cell.h, DLD-FUNCTIONS/besselj.cc, - DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/lookup.cc, - DLD-FUNCTIONS/max.cc, TEMPLATE-INST/Array-tc.cc, data.cc, - oct-map.cc, ov-cx-mat.h, ov-flt-cx-mat.cc, ov-flt-cx-mat.h, - ov-flt-re-mat.cc, ov-flt-re-mat.h, ov-intx.h, ov-re-mat.h, - ov.cc, ov.h, pr-output.cc, pr-output.h, variables.cc: - Remove traces of ArrayN. - - * OPERATORS/op-dm-scm.cc: Avoid using dm + s, dm - s operators. - * OPERATORS/op-dm-sm.cc: Ditto. - * OPERATORS/op-dms-template.cc: Ditto. - - 2009-10-16 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc (Fnum2cell): Use Array::column here. - - 2009-10-15 Jaroslav Hajek - - * DLD-FUNCTIONS/lookup.cc (Flookup): Update docstring. - - 2009-10-15 Jaroslav Hajek - - * ov.h (octave_value::octave_value (octave_base_value *, bool)): - New constructor. - (octave_value::octave_value (octave_base_value *, int)): Deprecate. - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Allow the obsolete func - body syntax. - - 2009-10-15 Jaroslav Hajek - - * variables.cc (extract_function): Pass 0 to eval_string to avoid - error. - - 2009-10-14 Jaroslav Hajek - - * ov.cc (octave_value::octave_value (const Array&)): New - constructor. - * ov.h: Declare it. - * data.cc (Fnth_element): New DEFUN. - - 2009-10-13 Jaroslav Hajek - - * data.cc (Fcumsum, Fcumprod, Fprod, Fsum, Fsumsq): Correct help - string. - - 2009-10-13 Jaroslav Hajek - - * data.cc (Fsum): Rewrite. - (Fcumsum): Rewrite. - (NATIVE_REDUCTION, NATIVE_REDUCTION_1): Remove. - - 2009-10-12 Jaroslav Hajek - - * pt-binop.cc, pt-unop.cc: Revert the effect of 1be3c73ed7b5. - - 2009-10-12 Jaroslav Hajek - - * DLD-FUNCTIONS/lu.cc (maybe_set_triangular): Remove. - (get_lu_l, get_lu_u): New helper funcs. - (Flu, Fluupdate): Use them to auto-set MatrixType of results. - * DLD-FUNCTIONS/qr.cc (maybe_set_triangular): Remove. - (get_qr_r): New helper func. - (Fqr, Fqrupdate, Fqrinsert, Fqrdelete, - Fqrshift): Use it to auto-set MatrixType of results. - * DLD-FUNCTIONS/chol.cc (get_chol_r): New helper func. - (Fchol, Fcholupdate, Fcholinsert, Fcholdelete, Fcholshift): Use it - to auto-set MatrixType of result. - - 2009-10-12 Jaroslav Hajek - - * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Support 'nocompute' - option. - - 2009-10-08 Jaroslav Hajek - - * DLD-FUNCTIONS/lu.cc (Fluupdate): New DEFUN_DLD. - (check_lu_dims): New helper func. - - 2009-10-08 Jaroslav Hajek - - * data.cc (Flength): Simplify. - (Fndims): Simplify. - (Fsize): Rewrite, use dim_vector::redim to simplify. - (Fsize_equal): Don't chop trailing singletons (should be already - chopped). - - 2009-10-08 Jaroslav Hajek - - * utils.cc (dims_to_numel): New function. - * utils.h: Declare it. - * ov-base.cc (octave_base_value::numel (const octave_value_list&)): - Use it here. - * data.cc (Fnumel): Also here. - - 2009-10-07 John W. Eaton - - * variables.cc (get_dims_str): New function. - (symbol_info_list::display_line, - symbol_info_list::parse_whos_line_format): Use it to get dims string. - - 2009-10-07 John W. Eaton - - * ov.h (octave_value::get_count): Return octave_idx_type, not int. - - 2009-10-07 John W. Eaton - - * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): - Avoid uninitialized variable warning. - * pt-cbinop.cc (simplify_ldiv_op): Avoid unused parameter warning. - * ov-flt-re-mat.cc (convert_to_str_internal): - Update for octave_value constructor changes. - - 2009-10-07 Jaroslav Hajek - - * oct-stream.cc (octave_base_stream::skipl, - octave_stream::skipl (long, ...), octave_stream::skipl (const - octave_value&, ...)): New methods. - * oct-stream.h: Declare them. - * file-io.cc (Ffskipl): New DEFUN. - - 2009-10-07 John W. Eaton - - * OPERATORS/op-str-str.cc (DEFUNOP (transpose, char_matrix_str)): - Update for octave_value constructor changes. - - 2009-10-05 Jaroslav Hajek - - * ov.cc (octave_value::assign): Do not gripe "assignment failed" if - already griped about the binary operation. - - 2009-10-05 Jaroslav Hajek - - * pt-idx.cc (tree_index_expression::rvalue): When evaluating index - chain, split on chaining ()() and (){}. - - 2009-10-05 Jaroslav Hajek - - * pt-misc.cc (tree_argument_list::convert_to_const_vector): - Return more than nargout arguments only unless undefined elements - occur. - * ov-class.cc (octave_class::subsref): Pack return list from - overloaded method into first value. - - 2009-10-05 Jaroslav Hajek - - * ov-ch-mat.h (octave_char_matrix): Don't declare allocator and - typeid. - * ov-ch-mat.cc: Don't define them. - * ov.cc (install_types): Don't register octave_char_matrix. - - 2009-10-05 John W. Eaton - - * ov.h (octave_value (const charMatrix&, char, bool), - octave_value (const charNDArray&, char, bool), - octave_value (const ArrayN&, char, bool)): - New constructor decls. - (octave_value (const charMatrix&, bool, char), - octave_value (const charNDArray&, bool, char), - octave_value (const ArrayN&, bool, char)): Mark with - GCC_ATTR_DEPRECATED. Single-quoted strings are now default string - type. - (octave_value::convert_to_str): Default is single-quoted strings. - * ov.cc (octave_value (const charMatrix&, char, bool), - octave_value (const charNDArray&, char, bool), - octave_value (const ArrayN&, char, bool)): New constructors. - (octave_value (const charMatrix&, bool, char), - octave_value (const charNDArray&, bool, char), - octave_value (const ArrayN&, bool, char)): - Assume is_string argument is always true. - - * ov-re-mat.cc (octave_sparse_matrix::convert_to_str_internal): - Update for octave_value constructor changes. - * ov-ch-mat.h (octave_char_matrix::convert_to_str_internal): Likewise. - * ov-re-sparse.cc (octave_sparse_matrix::convert_to_str_internal): - Likewise. - * ov-str-mat.h (octave_char_matrix_str::squeeze, - octave_char_matrix_str::reshape, octave_char_matrix_str::permute, - octave_char_matrix_str::diag, octave_char_matrix_str::sort, - octave_char_matrix_sq_str::squeeze, - octave_char_matrix_sq_str::reshape, - octave_char_matrix_sq_str::permute, - octave_char_matrix_sq_str::diag, octave_char_matrix_sq_str::sort): - Likewise. - * ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal): - Likewise. - (octave_char_matrix_str::resize): Likewise. - * data.cc (do_cat, Fmerge): Likewise. - * ops.h (DEFNDCHARCATOP_FN): Likewise. - * ov-base-int.cc (octave_base_int_matrix::convert_to_str_internal): - Likewise. - * pt-mat.cc (tree_matrix::rvalue1): Likewise. - - * ov-ch-mat.h (octave_char_matrix::octave_char_matrix): Delete - unused bool arg. Declare constructors protected. - - (xisalnum, xisalpha, xisascii, xiscntrl, xisdigit, xisgraph, - xislower, xisprint, xispunct, xisspace, xisupper, xisxdigit, - xtoascii, xtolower, xtoupper): Move decls here from ov-str-mat.h. - (MAT_MAPPER, BOOL_MAT_MAPPER): Move macro definitions and uses - here from ov-str-mat.h. - - * ov-ch-mat.cc (MACRO_WRAPPER, STRING_MAPPER, TOSTRING_MAPPER): - Move macro definitions and uses here. - * ov-str-mat.cc: From here. - - * DLD-FUNCTIONS/typecast (Ftypecast): Update for octave_value - constructor changes. Create sq_string unless casting from string, - then preserve exact type. - (Fbitpack): Update for octave_value constructor changes. Create - sq_string. - * DLD-FUNCTIONS/hex2num.cc (Fnum2hex): Update for octave_value - constructor changes. Create sq_string. - * ls-oct-ascii.cc (read_ascii_data): Likewise. - * mex.cc (mxArray_number::as_octave_value): Likewise. - * oct-stream.cc (octave_stream::read): Likewise. - * ov-base.cc (STRING_MAPPER): Likewise. - - 2009-10-04 John W. Eaton - - * ov-str-mat.h (octave_char_matrix_str::squeeze, - octave_char_matrix_sq_str::squeeze, octave_char_matrix_str::diag, - octave_char_matrix_sq_str::diag): New functions. - - 2009-10-03 Shai Ayal - - * graphics.h.in (image::update_xdata): Add a half-pixel to each limit. - (image::update_ydata): Ditto. - * gl-render.cc (opengl_renderer::draw): Clip image to axis and fix - unpack alignment. - - 2009-10-02 Jaroslav Hajek - - * ov-base-scalar.h (octave_base_scalar::matrix_type): Always - return MatrixType::Diagonal. - (octave_base_scalar::typ): Remove. - - 2009-10-02 Jaroslav Hajek - - * ov.h: Define also diag matrix extractors. - (octave_type_traits, octave_array_type_traits): Remove. - (octave_value::builtin_type): New method. - * oct-stream.cc (do_read): Update. - * data.cc (identity_matrix): Update. - * ov-base.h (builtin_type_t): New enum. - (octave_base_value::builtin_type): New method. - * ov-re-mat.h (octave_matrix::builtin_type): New method. - * ov-flt-re-mat.h (octave_float_matrix::builtin_type): New method. - * ov-cx-mat.h (octave_complex_matrix::builtin_type): New method. - * ov-flt-cx-mat.h (octave_float_complex_matrix::builtin_type): - New method. - * ov-bool-mat.h (octave_bool_matrix::builtin_type): New method. - * ov-ch-mat.h (octave_char_matrix::builtin_type): New method. - * ov-scalar.h (octave_scalar::builtin_type): New method. - * ov-float.h (octave_float::builtin_type): New method. - * ov-complex.h (octave_complex::builtin_type): New method. - * ov-bool.h (octave_bool::builtin_type): New method. - * ov-flt-complex.h (octave_float_complex::builtin_type): New method. - * ov-re-diag.h (octave_diag_matrix::builtin_type): New method. - * ov-flt-re-diag.h (octave_float_diag_matrix::builtin_type): New method. - * ov-cx-diag.h (octave_complex_diag_matrix::builtin_type): New method. - * ov-flt-cx-diag.h - (octave_float_complex_diag_matrix::builtin_type): - New method. - * ov-re-sparse.h (octave_sparse_matrix::builtin_type): New method. - * ov-cx-sparse.h (octave_sparse_complex_matrix::builtin_type): - New method. - * ov-bool-sparse.h (octave_sparse_bool_matrix::builtin_type): - New method. - * ov-intx.h (octave_int_matrix::builtin_type, - octave_int_scalar::builtin_type): New methods. - * ov-int8.h: Define OCTAVE_INT_BTYP. - * ov-int16.h: Define OCTAVE_INT_BTYP. - * ov-int32.h: Define OCTAVE_INT_BTYP. - * ov-int64.h: Define OCTAVE_INT_BTYP. - * ov-uint8.h: Define OCTAVE_INT_BTYP. - * ov-uint16.h: Define OCTAVE_INT_BTYP. - * ov-uint32.h: Define OCTAVE_INT_BTYP. - * ov-uint64.h: Define OCTAVE_INT_BTYP. - - 2009-10-01 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Fix initialization, add missing - break. - - 2009-10-01 John W. Eaton - - * gl-render.cc (opengl_renderer::draw (const image::properties&)): - Adjust origin for glRasterPos3d. - - 2009-10-01 John W. Eaton - - * gl-render.cc: Style fixes. - - 2009-10-01 Shai Ayal - - * graphics.cc (image::properties::get_color_data): New function. - * gl-render.cc (opengl_renderer::draw): Handle RGB images. - - 2009-10-01 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc - (do_num2cell_helper, do_num2cell): New funcs. - (Fnum2cell): Rewrite. - (do_cellslices_nda): Do not leave trailing dims. - - 2009-09-30 John W. Eaton - - * error.cc (error_1, pr_where_2, handle_message): - Don't do anything if fmt is empty. - (Ferror): Call print_usage if nargin == 0. - - 2009-09-29 Jaroslav Hajek - - * DLD-FUNCTIONS/typecast.cc (Ftypecast): Rewrite. - (Fbitpack, Fbitunpack): New DEFUNs. - - 2009-09-28 Shai Ayal - - * DLD-FUNCTIONS/fltk_backend.cc (plot_window::handle): Redraw the - overlay when zoom box changes size. - * DLD-FUNCTIONS/fltk_backend.cc (fltk_mouse_wheel_zoom): New - function to set mouse wheel zoom factor. - - 2009-09-27 Jaroslav Hajek - - * DLD-FUNCTIONS/sub2ind.cc (get_dimensions): Allow singleton array. - (Fsub2ind): Allow single index. - - 2009-09-26 Jaroslav Hajek - - * OPERATORS/op-m-m.cc (trans_mul, mul_trans): Update. - * OPERATORS/op-fm-fm.cc (trans_mul, mul_trans): Update. - * OPERATORS/op-cm-cm.cc (trans_mul, mul_trans, herm_mul, mul_herm): - Update. - * OPERATORS/op-fcm-fcm.cc (trans_mul, mul_trans, herm_mul, mul_herm): - Update. - * OPERATORS/op-m-cm.cc (trans_mul): Update. - * OPERATORS/op-cm-m.cc (mul_trans): Update. - * OPERATORS/op-fm-fcm.cc (trans_mul): Update. - * OPERATORS/op-fcm-fm.cc (mul_trans): Update. - - 2009-09-23 Jaroslav Hajek - - * OPERATORS/op-m-cm.cc: Declare and install trans_mul operator. - * OPERATORS/op-fm-fcm.cc: Ditto. - * OPERATORS/op-cm-m.cc: Declare and install mul_trans operator. - * OPERATORS/op-fcm-fm.cc: Ditto. - - 2009-09-23 Jaroslav Hajek - - * OPERATORS/op-m-cm.cc: Declare and install trans_ldiv operator. - * OPERATORS/op-fm-fcm.cc: Ditto. - - 2009-09-23 Jaroslav Hajek - - * ov.h (octave_value::op_trans_ldiv, op_herm_ldiv): New enum constants. - * ov.cc (decompose_binary_op, binary_op_fcn_name): Support them. - * xdiv.h: Include mx-defs.h, delete forward decls. - * xdiv.cc (xleftdiv): Support transt parameter. - (xdiv): Optimize. - * pt-cbinop.cc (simplify_ldiv_op): New static func. - (maybe_compound_binary_expression): Try it. - * OPERATORS/op-m-m.cc: Define and install trans_ldiv handler. - * OPERATORS/op-fm-fm.cc: Ditto. - * OPERATORS/op-cm-cm.cc: Define and install trans_ldiv and herm_ldiv - handlers. - * OPERATORS/op-fcm-fcm.cc: Ditto. - - 2009-09-19 Jaroslav Hajek - - * ov.h (octave_value_extract): New template function. - * data.cc (do_linspace): New static template function. - (Flinspace): Rewrite. - - 2009-09-18 John W. Eaton - - * DLD-FUNCTIONS/fltk_backend.cc (fltk_backend::redraw_figure): - Call __fltk_redraw__ after marking figure as modified. - - 2009-09-18 John W. Eaton - - * mexproto.h: Define OCTINTERP_API if it is not already defined. - Use C-style comments. - - 2009-09-16 Jaroslav Hajek - - * DLD-FUNCTIONS/rand.cc (Frandperm): New function. - - 2009-09-15 Jaroslav Hajek - - * pt-misc.cc (tree_parameter_list::convert_to_const_vector): Pass - in nargout. Don't return excess elements. Optimize varargout-only case - to possibly use a shallow copy. - * pt-misc.h: Update decl. - * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): Update call - to tree_parameter_list::convert_to_const_vector. - - 2009-09-15 Jaroslav Hajek - - * pr-output.cc (Fdisp, Ffdisp): Declare retval as octave_value_list. - - 2009-09-14 Shai Ayal - - * DLD-FUNCTIONS/fltk_backend.cc (plot_window::pixel2status, - plot_window::pixel2pos): New argument AXES, which the - coordinates are relative to. - (plot_window::handle): Pass axes to pixel2status and pixel2pos. - - 2009-09-14 Jaroslav Hajek - - * symtab.h (symbol_table::curr_fcn): New member field. - (symbol_table::get_curr_fcn, symbol_table::set_curr_fcn): New member - funcs. - * symtab.cc (symbol_table::fcn_info::fcn_info_rep::xfind): Use - symbol_table::get_curr_fcn. - (symbol_table::fcn_info::fcn_info_rep::x_builtin_find): Ditto. - * ov-usr-fcn.cc (octave_user_function::octave_user_function): Call - symbol_table::set_curr_fcn. - - 2009-09-12 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 3.3.50+. - (OCTAVE_API_VERSION): Now api-v38+. - - 2009-09-12 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 3.3.50. - (OCTAVE_API_VERSION): Now api-v38. - (OCTAVE_RELEASE_DATE): Now 2009-09-12. - - 2009-09-08 Rafael Laboissiere - - * pr-output.cc: New test. - - 2009-09-07 Jaroslav Hajek - - * Makefile.in: Add LDFLAGS to OCT_LINK_DEPS. - - 2009-09-06 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc: Fix test. - - 2009-09-06 Jaroslav Hajek - - * OPERATORS/op-s-cs.cc: Use DEFCMPLXCMPOP_OP. - * OPERATORS/op-cs-s.cc: Ditto. - * OPERATORS/op-fs-fcs.cc: Ditto. - * OPERATORS/op-fcs-fs.cc: Ditto. - - 2009-09-05 John W. Eaton - - * genprops.awk: Fix formatting of generated output. - * graphics.h.in (graphics_object::get (const std::string&) const, - graphics_object::get (const char *) const): New functions. - - 2009-09-05 John W. Eaton - - * txt-eng-ft.cc (ft_manager::do_get_font): Remove spurious - assignment usd for debugging. - - 2009-09-04 John W. Eaton - - * txt-eng-ft.cc (ft_manager::do_get_font, ft_render::set_font, - ft_render::set_mode, ft_render::visit, ft_render::set_color): - Issue warnings instead of errors for non-fatal problems. - (ft_render::visit): If face is null, then return without warning. - * genprops.awk: Also generate const std::string& and const char* - versions of the get member functions. - * gl-render.cc (opengl_renderer::draw): Omit caseless_str - constructor in call to get method. - * ft_render::set_font (): Likewise. - - 2009-09-03 John W. Eaton - - * pr-output.cc (set_format (const Complex&, int&, int&)): - Avoid passing NaN or Inf to log10. - - 2009-09-03 Jaroslav Hajek - - * ov.cc (octave_value::assign (assign_op, const octave_value&)): - Call maybe_mutate after in-place operation. - - 2009-09-03 Jaroslav Hajek - - * ov.cc (octave_value::do_non_const_unary_op): Split to - genuine/non-genuine case. - (octave_value::binary_op_to_assign_op): New method. - * ov.h: Declare it. - * ov-re-mat.h (octave_matrix::changesign): New method. - * ov-flt-re-mat.h (octave_float_matrix::changesign): New method. - * ov-cx-mat.h (octave_complex_matrix::changesign): New method. - * ov-flt-cx-mat.h (octave_float_complex_matrix::changesign): New - method. - * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::changesign): New method. - * ov-bool-mat.h (octave_bool_matrix::invert): New method. - * pt-unop.cc (tree_prefix_expression::rvalue1): Use - do_non_const_unary_op. - * pt-binop.cc (tree_binary_expression::rvalue1): If possible, - convert to computed assignment. - - * OPERATORS/op-m-m.cc: Define & install in-place minus operation. - * OPERATORS/op-fm-fm.cc: Ditto. - * OPERATORS/op-cm-cm.cc: Ditto. - * OPERATORS/op-fcm-fcm.cc: Ditto. - * OPERATORS/op-int.h: Ditto. - * OPERATORS/op-bm-bm.cc: Define & install in-place not operation. - - 2009-09-03 Jaroslav Hajek - - * ov-re-mat.h (octave_matrix::increment, octave_matrix::decrement): - Use matrix_ref. - * ov-flt-re-mat.h (octave_float_matrix::increment, - octave_float_matrix::decrement): Use matrix_ref. - * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::increment, - OCTAVE_VALUE_INT_MATRIX_T::decrement): - Use matrix_ref. - - 2009-09-02 John W. Eaton - - * graphics.cc (axes::properties::calc_ticklabels): - Avoid unused parameter warning from gcc. - - * ov-perm.cc (octave_perm_matrix::save_binary, - octave_perm_matrix::load_binary): Avoid shadow warning from gcc. - - 2009-09-01 David Bateman - - * DLD-FUNCTIONS/eig.cc (Feigs): Correct nesting error in option - parsing that prevented the use of a function for generalized - eigenvalue problems. - - 2009-08-30 Jaroslav Hajek - - * ops.h (DEFCMPLXCMPOP_OP, DEFNDCMPLXCMPOP_FN): New macros. - * gripes.cc (gripe_warn_complex_cmp): New function. - * gripes.h: declare it. - - * OPERATORS/op-cm-cm.cc: Call the new macros. - * OPERATORS/op-cm-cs.cc: Ditto. - * OPERATORS/op-cm-m.cc: Ditto. - * OPERATORS/op-cm-s.cc: Ditto. - * OPERATORS/op-cs-cm.cc: Ditto. - * OPERATORS/op-cs-cs.cc: Ditto. - * OPERATORS/op-cs-m.cc: Ditto. - * OPERATORS/op-fcm-fcm.cc: Ditto. - * OPERATORS/op-fcm-fcs.cc: Ditto. - * OPERATORS/op-fcm-fm.cc: Ditto. - * OPERATORS/op-fcm-fs.cc: Ditto. - * OPERATORS/op-fcs-fcm.cc: Ditto. - * OPERATORS/op-fcs-fcs.cc: Ditto. - * OPERATORS/op-fcs-fm.cc: Ditto. - * OPERATORS/op-fm-fcm.cc: Ditto. - * OPERATORS/op-fm-fcs.cc: Ditto. - * OPERATORS/op-fs-fcm.cc: Ditto. - * OPERATORS/op-m-cm.cc: Ditto. - * OPERATORS/op-m-cs.cc: Ditto. - * OPERATORS/op-s-cm.cc: Ditto. - - - 2009-08-30 Jaroslav Hajek - - * ops.h (BOOL_OP1, BOOL_OP2, BOOL_OP3, SC_MX_BOOL_OP, MX_SC_BOOL_OP, - MX_MX_BOOL_OP): Remove. - - 2009-08-28 John W. Eaton - - * genprops.awk: Generate static member functions has_core_property - and core_property_names. Make has_property and all_property_names - non-static const member functions. Pass object type to - validate_property_name. - * graphics.cc (validate_property_name): New arg, WHAT. - Improve warning and error messages. - (property_list::set): Use has_core_property instead of has_property. - (base_properties::has_property): Delete definition. - (base_graphics_object::remove_all_listeners): Move unwind protect - block here, from old base_properties::has_property function. - * graphics.h.in (base_properties::has_property): Now virtual. - Unconditionally call panic_impossible. - - 2009-08-28 John W. Eaton - - * graphics.cc (validate_property_name): Return full name of - matched property value. Issue warning if given property name is - abbreviated. - * genprops.awk: Use name returned by validate_property_name for - subsequent matching. - * octave.cc (maximum_braindamage): - Disable Octave:abbreviated-property-match warning. - - 2009-08-27 John W. Eaton - - * graphics.cc (validate_property_name): New static function. - (base_properties::dynamic_property_names): New function. - * graphicffs.h.in (base_properties::dynamic_property_names): - Provide decl. - * genprops.awk: Generate all_property_names functions. Use - all_property_names as needed to avoid duplication elsewhere. - Call validate_property_name in set/get functions. - - 2009-08-27 Jaroslav Hajek - - * ov-class.cc (get_current_method_class): Simplify. - (octave_class::in_class_method): Don't rely on multiple copies of - methods. Don't declare as const. - (octave_class::octave_class (const Octave_map&, const std::string&, - const octave_value_list&)): - Call symbol_table::add_to_parent_map instead. - * ov-class.h (octave_class::in_class_method): Don't declare as const. - * symtab.h (symbol_table::parent_map): New field. - (symbol_table::add_to_parent_map): New method. - (symbol_table::load_class_method): Search also parent classes. - * load-path.h (load_path::parent_map, load_path::add_to_parent_map, - load_path::do_add_to_parent_map): Remove. - * load-path.cc (load_path::do_find_method): Don't search parent - classes. - - 2009-08-27 Jaroslav Hajek - - * OPERATORS/op-cs-cs.cc: Simplify comparison operators. - * OPERATORS/op-fcs-fcs.cc: Ditto. - - 2009-08-25 David Grundberg - - * DLD-FUNCTIONS/__magick_read__.cc [HAVE_MAGICK]: Include - Magick++.h instead of GraphicsMagick/Magic++.h. - * Makefile.in: Replace MAGICK_LIBS with MAGICK_LDFLAGS and - MAGICK_LIBS. Replace MAGICK_INCFLAGS with MAGICK_CPPFLAGS. - * oct-conf.h.in: Ditto. - * toplev.cc (octave_config_info): Ditto. - - 2009-08-26 John W. Eaton - - * oct-conf.h.in: New defines for UMFPACK_CPPFLAGS and UMFPACK_LDFLAGS. - * toplev.cc (octave_config_info): Include them in the list. - - 2009-08-26 John W. Eaton - - * oct-conf.h.in: New defines for QRUPDATE_CPPFLAGS and QRUPDATE_LDFLAGS. - * toplev.cc (octave_config_info): Include them in the list. - - 2009-08-26 John W. Eaton - - * oct-conf.h.in: New defines for ARPACK_CPPFLAGS and ARPACK_LDFLAGS. - * toplev.cc (octave_config_info): Include them in the list. - - 2009-08-26 John W. Eaton - - * Makefile.in (OCTAVE_LIBS, OCTINTERP_LINK_DEPS): - Include BLAS_LIBS in the list. - - 2009-08-26 John W. Eaton - - * Makefile.in (OCTAVE_LIBS): Include FLIBS in the list. - (OCTINTERP_LINK_DEPS): Include TERM_LIBS, LIBGLOB, and FLIBS in - the list. - - 2009-08-26 Jaroslav Hajek - - * data.cc (Ffmod): Reverse order of args. - - 2009-08-26 Rob Mahurin - - * syscalls.cc: Recommend waitpid() in popen2() documentation. - - 2009-08-25 John W. Eaton - - * graphics.cc (gnuplot_backend::send_quit): Wait for gnuplot process. - - 2009-08-24 Jaroslav Hajek - - * OPERATORS/op-m-m.cc: Install .*= and ./= operators. - * OPERATORS/op-fm-fm.cc: Ditto. - * OPERATORS/op-cm-cm.cc: Ditto. - * OPERATORS/op-fcm-fcm.cc: Ditto. - * OPERATORS/op-int.h: Ditto. - - 2009-08-22 Jaroslav Hajek - - * data.cc (UNARY_OP_DEFUN_BODY, - BINARY_OP_DEFUN_BODY, BINARY_ASSOC_OP_DEFUN_BODY): Remove. - (unary_op_defun_body, binary_op_defun_body, - binary_assoc_op_defun_body): New functions. - (Fnot, Fuplus, Fuminus, Ftranspose, Fctranspose): Use - unary_op_defun_body. - (Fminus, Fmrdivide, Fmpower, Fmldivide, Flt, Fle, Feq, Fge, Fgt, Fne, - Frdivide, Fpower, Fldivide): Use binary_op_defun_body. - (Fplus, Ftimes, Fmtimes, Fand, For): Use binary_assoc_op_defun_body. - - 2009-08-21 Jaroslav Hajek - - * OPERATORS/op-s-s.cc: Check for NaN in ! operator. - * OPERATORS/op-fs-fs.cc: Ditto. - * OPERATORS/op-cs-cs.cc: Ditto. - * OPERATORS/op-fcs-fcs.cc: Ditto. - - 2009-08-17 Jaroslav Hajek - - * ops.h (DEFNDASSIGNOP_FNOP): New macro. - * OPERATORS/op-bm-bm.cc: Define and install &= and |= operators. - - 2009-08-17 Jaroslav Hajek - - * OPERATORS/op-m-m.cc: Define and install += and -= operators. - * OPERATORS/op-fm-fm.cc: Ditto. - * OPERATORS/op-cm-cm.cc: Ditto. - * OPERATORS/op-fcm-fcm.cc: Ditto. - * OPERATORS/op-m-s.cc: Define and install +=,-=,*=,/= operators. - * OPERATORS/op-fm-fs.cc: Ditto. - * OPERATORS/op-cm-cs.cc: Ditto. - * OPERATORS/op-fcm-fcs.cc: Ditto. - * OPERATORS/op-cm-s.cc: Define and install *=,/= operators. - * OPERATORS/op-fcm-fs.cc: Ditto. - * ops.h (DEFNDASSIGNOP_OP): New macro. - * ov.cc (octave_value::assign (assign_op, const octave_value&)): - Try looking up specialized handlers if the value is not shared. - * ov-base-mat.h (octave_base_matrix::matrix_ref): New method. - - 2009-08-17 Jaroslav Hajek - - * oct-obj.h (octave_value_list::octave_value_list (octave_idx_type)): - Allow this constructor. - - 2009-08-19 Jaroslav Hajek - - * DLD-FUNCTIONS/find.cc (Ffind): Reuse cached index vector when - converting boolean mask to indices. - - 2009-08-18 John W. Eaton - - * oct-conf.h.in: New #defines for HDF5_LDFLAGS and HDF5LDFLAGS. - * Makefile.in (OCTAVE_LIBS, OCTINTERP_LINK_DEPS): - Include them in the lists. - * toplev.cc (octave_config_info): Include them in the list. - - 2009-08-17 John W. Eaton - - * oct-conf.h.in: New #defines for ZLIB_CPPFLAGS and ZLIB_LDFLAGS. - * toplev.cc (octave_config_info): Include them in the list. - - 2009-08-17 John W. Eaton - - * Makefile.in (OCTINTERP_LINK_DEPS): Include FFTW_LDFLAGS, - FFTW_LIBS and READLINE_LIBS in the list. - (OCTAVE_LIBS): Attempt to include all necessary dependencies for - static linking. - - 2009-08-17 John W. Eaton - - * Makefile.in (eigs.oct, chol.oct, qr.oct): Add library-specific - CPPFLAGS and LDFLAGS variables to CPPFLAGS and LDFLAGS. - From Benjamin Lindner . - - 2009-08-17 John W. Eaton - - * Makefile.in (OCTINTERP_LINK_DEPS): List $(LIBS) last. - - 2009-08-17 Michael Goffioul - - * Makefile.in (OCTINTERP_LINK_DEPS): Include $(LIBCRUFT) and - $(LIBS) in the list. - (OCT_LINK_DEPS): Include $(LIBOCTAVE) and $(LIBCRUFT) in the list. - (eigs.oct, qz.oct): Add $(BLAS_LIBS) to LDFLAGS. - (ccolamd.oct, symbfact.oct): Add library-specific CPPFLAGS and - LDFLAGS variables to CPPFLAGS and LDFLAGS. - - 2009-08-17 Jaroslav Hajek - - * ov-struct.h, ov-struct.cc: Revert to e08d72bb988e. - * ov-class.h, ov-class.cc: Partially revert to e08d72bb988e. - (octave_class::subsasgn): Cut&paste code from octave_struct::subsasgn - for the nested dot indexing. - * ov-usr-fcn.cc (Voptimize_subasgn_calls): Default to true. - - 2009-08-13 John W. Eaton - - * DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, - DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw.cc: Update for new FFTW - defines. - - * Makefile.in (amd.oct, colamd.oct, dmperm.oct, symcrm.oct, - qr.oct, fft.oct, fft2.oct, fftn.oct, fftw.oct): Add - library-specific CPPFLAGS and LDFLAGS variables to CPPFLAGS - and LDFLAGS. - * oct-conf.h.in: New #defines for GLPK_CPPFLAGS, GLPK_LDFLAGS, - AMD_CPPFLAGS, AMD_LDFLAGS, CAMD_CPPFLAGS, CAMD_LDFLAGS, - CCOLAMD_CPPFLAGS, CCOLAMD_LDFLAGS, CHOLMOD_CPPFLAGS, - CHOLMOD_LDFLAGS, COLAMD_CPPFLAGS, COLAMD_LDFLAGS, - CXSPARSE_CPPFLAGS, CXSPARSE_LDFLAGS, FFTW3_CPPFLAGS, - FFTW3_LDFLAGS, FFTW3_LIBS, FFTW3F_CPPFLAGS, FFTW3F_LDFLAGS, and - FFTW3F_LIBS. - * toplev.cc (octave_config_info): Include them in the list. - - 2009-08-13 Jaroslav Hajek - - * ov-class.h (octave_class): Derive from octave_struct. - (octave_class::octave_class): Update all constructors. - (octave_class::numeric_conv, octave_class::byte_size, octave_class::numel, octave_class::nfields, - octave_class::reshape, octave_class::resize, octave_class::is_defined, - octave_class::map_value): Remove methods (inherit). - * ov-class.h (octave_class::obsolete_copies): New field. - Init to 0 in all constructors. - (octave_class::unique_clone): New decl. - * ov-class.cc (octave_class::unique_clone): Fake clone if all - remaining copies are obsolete. - (octave_class::subsref): Share code with octave_struct::subsref. - (octave_class::subsref (..., bool auto_add)): New method. - (octave_class::subsasgn): If plausible, attempt to - optimize the method call by marking appropriate number of copies - obsolete. Share code with octave_struct::subsasgn. - (octave_class::dotasgn): New method override. - * ov-struct.h (octave_struct::dotref): New virtual overload. - (octave_struct::dotasgn): New virtual method decl. - * ov-struct.cc (octave_struct::dotasgn): New virtual method. - * ov-usr-fcn.h (octave_user_function::num_args_passed, - octave_user_function::saved_args): Remove fields. Wipe from all - constructor lists. - (octave_user_function::save_args_passed, - octave_user_function::restore_args_passed): Remove methods. - (octave_user_function::all_va_args): Update decl. - (octave_user_function::subsasgn_optimization_ok): New method decl. - * ov-usr-fcn.cc (octave_user_function::all_va_args): Rename from - octave_all_va_args, take args as a parameter. - (octave_user_function::subsasgn_optimization_ok): New method. - (octave_user_function::do_multi_index_op): Simplify. - - 2009-08-12 Jaroslav Hajek - - * ov-base.h (octave_base_value::count): Declare as octave_idx_type. - (octave_base_value::octave_base_value (const octave_base_value&)): - Initialize count to 1. - (octave_base_value::unique_clone ()): New method. - (octave_base_value::print_with_name): Declare as non-const. - * ov-base.cc (octave_base_value::print_with_name): Update. - * ov.h (octave_value::make_unique (void)): Don't set rep->count. - Call unique_clone. - (octave_value::make_unique (int)): Don't set rep->count. - Call unique_clone. - (octave_value::octave_value (const octave_base_value *)): Declare - as private. - * ov-class.cc (octave_class::print_with_name): Avoid using clone (). - * ov-class.h (octave_class::print_with_name): Declare as non-const. - - 2009-08-13 John W. Eaton - - * Makefile.in: Consistently add library-specific CPPFLAGS and - LDFLAGS variables to CPPFLAGS and LDFLAGS for .oct files that need - them. Also add X11_FLAGS to CPPFLAGS for display.d display.df and - pic/display.o. - - * oct-conf.h.in: New #defines for QHULL_CPPFLAGS, QHULL_LDFLAGS, - CURL_CPPFLAGS, and CURL_LDFLAGS. - * toplev.cc (octave_config_info): Include them in the list. - - 2009-08-12 Jaroslav Hajek - - * Makefile.in: Include LDFLAGS when linking shared executable. - - 2009-08-12 Jaroslav Hajek - - * data.cc (Fissorted, F__sort_rows_idx__, Fnorm): Mark as Built-in - Functions in the inline help. - - 2009-08-11 John W. Eaton - - * DLD-FUNCTIONS/fftw.cc (Ffftw): Update for octave_fftw_planner - and octave_float_fftw_planner as singleton objects. - - 2009-08-11 John W. Eaton - - * oct-conf.h.in: Use READLINE_LIBS instead of LIBREADLINE. - New #defines for TERM_LIBS and DL_LIBS. - * toplev.cc (octave_config_info): Add TERM_LIBS and DL_LIBS to the - struct. Use READLINE_LIBS instead of LIBREADLINE. - - 2009-08-11 John W. Eaton - - * oct-conf.h.in: New #defines for AMD_LIBS, ARPACK_LIBS, - CAMD_LIBS, CCOLAMD_LIBS, CHOLMOD_LIBS, COLAMD_LIBS, CXSPARSE_LIBS, - FT2_LIBS, GRAPHICS_LIBS, HDF5_LIBS, OPENGL_LIBS, PTHREAD_CFLAGS, - PTHREAD_LIBS, QHULL_LIBS, QRUPDATE_LIBS, REGEX_LIBS, UMFPACK_LIBS, - ZLIB_LIBS. - - * toplev.cc (octave_config_info): Include them in the struct. - - 2009-08-11 Jaroslav Hajek - - * data.cc (Fdiff): New built-in function. - (do_diff): New assistant function. - - 2009-08-10 John W. Eaton - - * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Perform tilde expansion on - filename argument. - - 2009-08-10 Jaroslav Hajek - - * symtab.cc (out_of_date_check): Remove overloads. Add check_relative - parameter. - (out_of_date_check_internal): Remove. - * symtab.h: Update. - * ov-fcn-handle.cc (octave_fcn_handle::do_index_op): Call - out_of_date_check with check_relative = false. - - 2009-08-09 John W. Eaton - - * parse.y (Fevalin): Also return output from CATCH expression. - - 2009-08-08 Jaroslav Hajek - - * data.cc (Fifelse): Rename to Fmerge, alias to Fifelse. - - 2009-08-06 Jaroslav Hajek - - * OPERATORS/op-dm-template.cc, OPERATORS/op-pm-template.cc: - Also define conversions for null string and null sq_string. - - 2009-08-06 John W. Eaton - - * OPERATORS/op-cdm-m.cc, OPERATORS/op-dm-m.cc, OPERATORS/op-pm-m.cc: - Define LDMATRIX and DEFINENULLASSIGNCONV. - * OPERATORS/op-dm-template.cc, OPERATORS/op-pm-template.cc: - Include ov-null-mat.h and define assignment conversion for null - matrices if DEFINENULLASSIGNCONV is defined. Define OCTAVE_LDMATRIX. - - 2009-08-05 John W. Eaton - - * pt-eval.cc (tree_evaluator::visit_complex_for_command): - Use key_list order for iterating through map. - - * Makefile.in (OCT_LINK_DEPS): Also include $(RLD_FLAG) in the list. - - 2009-08-05 John W. Eaton - - * Makefile.in (octave$(EXEEXT)): Clean up link flags and library list. - (OCTINTERP_LINK_DEPS): Omit -L../libcruft $(LIBCRUFT) $(LIBS) - $(FLIBS) from the list. Include $(RLD_FLAG) in the list. - (OCT_LINK_DEPS): Only include -L. $(LIBOCTINTERP) in the list. - - 2009-08-05 Jaroslav Hajek - - * utils.cc (Fisindex): New DEFUN. - - 2009-08-04 Kristian Rumberg - - * input.cc (is_completing_dirfns): New function. - (generate_completion): Use it to selectively complete file names. - - 2009-08-04 John W. Eaton - - * debug.cc (Fdbwhere): Call octave_call_stack::goto_frame_relative - to move to user code frame. Get line and column information from - call stack. - * input.cc (Fkeyboard): Don't pass verbose flag to - octave_call_stack::goto_frame_relative. - (get_debug_input): Get line and column information from call stack. - - * pt-eval.h, pt-eval.cc (tree_evaluator::debug_line, - tree_evaluator::debug_column, tree_evaluator::db_line, - tree_evaluator::db_column): Delete. - * pt-eval.cc (tree_evaluator::do_breakpoint): Don't print function - name and location info here. Delete line and column number args. - Change all callers. - - * toplev.h (octave_call_stack::do_current, - octave_call_stack::do_current_statement): New functions. - (octave_call_stack::current): Call do_current, not top. - (octave_call_stack::current_statement): Call do_current_statement, - not top_statement. - (octave_call_stack::top, octave_call_stack::top_statement, - octave_call_stack::do_top, octave_call_stack::do_top_statement): - Delete. - - 2009-08-04 John W. Eaton - - * toplev.cc (octave_call_stack::do_goto_frame_relative): Allow - NSKIP to be 0. Set current scope and context. - * input.cc (Fkeyboard): Use octave_call_stack::goto_frame_relative - to set scope in user code that called the keyboard function. - - 2009-08-04 Jaroslav Hajek - - * input.cc (Fkeyboard): Only call do_keyboard, don't fiddle with - stack. - - 2009-08-03 Jaroslav Hajek - - * DLD-FUNCTIONS/sub2ind.cc: New source. - * Makefile.in: Include it. - * ov-range.h (octave_range::octave_range (const Range&, const - idx_vector&)): New constructor. - * ov-re-mat.h (octave_matrix::octave_matrix (const NDArray&, const - idx_vector&)): New constructor. - * ov.cc (octave_value::octave_value (const idx_vector&)): New - constructor. - * ov.h: Declare it. - - 2009-07-30 Ryan Rusaw - - * input.cc (reading_classdef_file): New file-scope variable. - (gnu_readline): Also set curr_stream if reading_classdef_file. - (octave_gets, get_input_from_file): - Handle classdef files like other input files. - * input.h (reading_classdef_file): Provide decl. - - * octave.gperf (classdef, endclassdef, endevents, endmethods, - endproperties, events, get, methods, properties, set): New keywords. - - * lex.l: Handle classdef filees like other input files. - Recognize superclass method identifiers and metaclass query constructs. - (is_keyword_token): Recognize endclassdef, endevents, endmethods, - endproperties, get, set, properties, methods, and events keywords. - (maybe_classdef_get_set_method, parsing_classdef): New variables. - (handle_superclass_identifier, handle_meta_identifier): - New static functions. - (lexical_feedback::init): Initialize parsing_classdef and - maybe_classdef_get_set_method. - (display_token): Handle SUPERCLASSREF, METAQUERY, GET, SET, - PROPERTIES, METHODS, EVENTS, and CLASSDEF tokens. - * lex.h (maybe_classdef_get_set_method, parsing_classdef): - Provide decls. - * parse.y (%union): New placeholder type, dummy_type. - (SUPERCLASSREF, METAQUERY, GET, SET, PROPERTIES, METHODS, EVENTS, - CLASSDEF): New tokens. - (superclass_identifier, meta_identifier, classdef_beg, - classdef_end, classdef1, classdef, opt_attr_list, attr_list, attr, - opt_superclasses, superclasses, class_body, properties_beg, - properties_block, properties_list, class_property, methods_beg, - methods_block, methods_list, events_beg, events_block, - events_list, class_event): New non-terminals. - (primary_expr): Include superclass_identifier and meta_identifier - as possible primary_exprs. - (function_beg): If parsing classdef file, set - lexer_flags.maybe_classdef_get_set_method to true. - be recognized. - (fcn_name): Accept GET '.' identifier or SET '.' identifier. - (end_error): Handle endclassdef. - (looking_at_classdef_keyword): New function. - (gobble_leading_whitespace): Handle classdef. - * token.h, token.cc (sc, mc): - New union fields for symbol classdef symbol_record info. - (token::token (symbol_table::symbol_record *, - symbol_table::symbol_record *, int, int), - token::token (symbol_table::symbol_record *, - symbol_table::symbol_record *, symbol_table::symbol_record *, int, - int)): New constructors. - (token::method_rec, token::class_rec, token::package_rec, - token::meta_class_rec, token::meta_package_rec): New methods. - (token_type): New enum values: scls_rec_token, meta_rec_token. - (end_tok_type): New enum values: classdef_end, events_end, - methods_end, properties_end. - - 2009-07-30 David Grundberg - - * symtab.h (symbol_table::parent_scope): Remove. - (symbol_table::set_parent_scope): Remove. - (symbol_table::reset_parent_scope): Remove. - (symbol_table::install_subfunction): Require scope parameter - instead of xparent_scope default. - * symtab.cc: Remove symbol_table::xparent_scope - * lex.h (lexical_feedback::parsing_nested_function): Remove. - * lex.l (is_keyword_token): Don't ignore endfunctions. - (prep_lexer_for_script_file): Renamed from prep_lexer_for_script. - (prep_lexer_for_function_file): New function. - (display_token): Display SCRIPT_FILE and FUNCTION_FILE. - (display_state): Display FUNCTION_FILE_BEGIN - (FUNCTION_FILE_BEGIN): New state. - (NESTED_FUNCTION_END, NESTED_FUNCTION_BEGIN): Remove states. - (prep_for_function, prep_for_nested_function): Remove functions. - * parse.h: Remove extern declaration parent_function_name, - end_tokens_expected. - * parse.y: Add variables current_function_depth, - max_function_depth, parsing_subfunctions, seen_endfunction. Remove - parent_function_name. Rename curr_fcn_ptr to primary_fcn_ptr. Add - token FUNCTION_FILE. Rename token SCRIPT to SCRIPT_FILE. - (function_file): New rule. - (input): Accept function_file. - (script_file): Rule renamed from script. - (function_file): New rule. - (function_list): New rule. - (push_fcn_symtab): Parse nested functions. - (fcn_name): Remove parent_function_name. - (function_end): Use seen_endfunction. New error messages. - (make_script): Use primary_fcn_ptr. - (frob_function): Simplify control structures. Don't use - symbol_table::parent_scope. - (push_fcn_symtab, function_end, frob_function, finish_function): - Use current_function_depth instead of - lexical_feedback::parsing_nested_function. - (make_return_command): Use current_function_depth instead of - lexical_feedback::defining_func. - (make_break_command, make_decl_command, maybe_warn_missing_semi): - Ditto - (parse_fcn_file): Warn when nested functions have been - declared. Remove superfluous local variables. Parse function files - using function_file rule. - - 2009-07-30 Jaroslav Hajek - - * data.cc (Fmerge): Rename to Fifelse. - - 2009-07-30 Jaroslav Hajek - - * data.cc (Fmerge): New DEFUN. - (do_merge): New helper function. - - 2009-07-29 John W. Eaton - - * parse.y (param_list_end): Also set - lexer_flags.looking_for_object_index to false. - - * ov-float.cc, ov-flt-re-mat.cc, ov-re-mat.cc, ov-re-sparse.cc, - ov-scalar.cc: Use complex function for acos mapper if arg is out - of range [-1, 1]. - - * ov-bool.cc (octave_bool::load_ascii): Call template function to - read value. - * ov-scalar.cc (octave_scalar::load_ascii): Likewise. - * ov-complex.cc (octave_complex::load_ascii): Likewise. - * ov-float.cc (octave_float_scalar::load_ascii): Likewise. - * ov-flt-complex.cc (octave_float_complex::load_ascii): Likewise. - * ls-mat-ascii.cc (read_mat_ascii_data): Likewise. - - * ov-re-sparse.cc (octave_sparse_matrix::load_binary, - octave_sparse_matrix::load_hdf5): Perform sanity check on indices. - * ov-cx-sparse.cc (octave_sparse_complex_matrix::load_binary, - octave_sparse_complex_matrix::load_hdf5): Likewise. - * ov-bool-sparse.cc (octave_sparse_bool_matrix::load_binary, - octave_sparse_bool_matrix::load_hdf5): Likewise. - - 2009-07-29 Jaroslav Hajek - - * ov-fcn-handle.cc (octave_fcn_handle::do_multi_index_op): - Cache lookups also for classes. - - 2009-07-28 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Support auto-expanding scalar - cells. - - 2009-07-27 Jaroslav Hajek - - * symtab.cc (symbol_table::fcn_info::fcn_info_rep::xfind, - symbol_table::fcn_info::fcn_info_rep::find, - symbol_table::fcn_info::fcn_info_rep::find_function, - symbol_table::fcn_info::find, - symbol_table::fcn_info::find_function, - symbol_table::find, symbol_table::do_find, - symbol_table::find_function): - Add local_funcs parameter. - * symtab.h: Update decls. - * ov-fcn-handle.cc (make_fcn_handle): Add local_funcs parameter. - * ov-fcn-handle.h: Update decls. - - 2009-07-24 John W. Eaton - - * pt-mat.cc (DO_SINGLE_TYPE_CONCAT_NO_MUTATE): New macro. - (tree_matrix::rvalue1): Use it to avoid complex -> real conversion. - - 2009-07-24 Jaroslav Hajek - - * DLD-FUNCIONS/cellfun.cc (Fcellfun): Avoid double error messages. - - 2009-07-24 Jaroslav Hajek - - * load-path.cc (load_path::do_any_class_method): New method. - * load-path.h (load_path::do_any_class_method): New method decl. - (load_path::any_class_method): New method. - * ov-fcn-handle.cc (octave_fcn_handle::do_multi_index_op): Support - calls without non-overloaded base function. - (make_fcn_handle): Support creation without non-overloaded base - function. - - 2009-07-23 Shai Ayal - - * DLD-FUNCTIONS/fltk_backend.cc (plot_window::pixel2axes_or_ca): - Replace plot_window::pixel2axes and use algorithm from octavede. - (plot_window::handle): Zooming now works on the axes below the - mouse pointer instead of the current axes. Combine old and new - zooming methods. - (help_text): Update to reflect new mouse/key bindings. - - 2009-07-23 Soren Hauberg - - * graphics.cc (axes::properties::zoom_about_point, - axes::properties::translate_view): New functions. - (axes::properties::zoom): make zoom_stack usage optional. - * DLD-FUNCTIONS/fltk_backend.cc (plot_window::handle): Use new - zoom API. - - 2009-07-23 John W. Eaton - - * variables.cc (safe_symbol_lookup): New function. - (symbol_exist): Use it. - - 2009-07-23 Jaroslav Hajek - - * DLD-FUNCTIONS/chol.cc (Fcholupdate, - Fcholinsert, Fcholdelete, Fcholshift): Replace is_matrix_type -> - is_numeric_type. - - 2009-07-23 John W. Eaton - - * toplev.cc (IGNORE_EXCEPTION, SAFE_CALL): New macros. - (clean_up_and_exit, do_octave_atexit): Use SAFE_CALL to handle - exceptions while preparing to exit. - - 2009-07-23 Jaroslav Hajek - - * symtab.cc (get_dispatch_type): Omit first-arg dispatch, export. - * symtab.h (get_dispatch_type): Provide decl. - * ov-fcn-handle.h (octave_fcn_handle::warn_reload): Delete. - (octave_fcn_handle::disp): New field. - (octave_fcn_handle::str_ov_map): New typedef. - (octave_fcn_handle::octave_fcn_handle (..., str_ov_map *)): New - constructor. - (octave_fcn_handle::do_multi_index_op): New method decl. - (octave_fcn_handle::is_overloaded): New method. - * ov-fcn-handle.cc - (octave_fcn_handle::do_multi_index_op): New method. - (octave_fcn_handle::subsref): Rewrite using do_multi_index_op. - (octave_fcn_handle::make_fcn_handle): Construct overloaded handles if - appropriate. - (Ffunctions): Indicate (statically) overloaded handles. - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Update & modernize. - * DLD-FUNCTIONS/bsxfun.cc (Fbsxfun): Ditto. - - 2009-07-22 Jaroslav Hajek - - * symtab.cc (symbol_table::find, - symbol_table::find_function, - symbol_table::symbol_record::find, - symbol_table::fcn_info::find, - symbol_table::fcn_info::fcn_info_rep::find, - symbol_table::fcn_info::fcn_info_rep::xfind): Simplify argument lists. - * symtab.h: Update declarations. - * pt-id.cc (tree_identifier::rvalue): Simplify. - * pt-id.h (tree_identifier::do_lookup): Simplify. - * pt-idx.cc (tree_index_expression::rvalue): Update. - * variables.cc (symbol_exist): Update. - - 2009-07-21 John W. Eaton - - * symtab.cc (symbol_table::builtin_find, - symbol_table::do_builtin_find, - symbol_table::fcn_info::builtin_find, - symbol_table::fcn_info::fcn_info_rep::builtin_find, - symbol_table::fcn_info::fcn_info_rep::x_builtin_find): New functions. - * symtab.h: Provide decls. - * DLD-FUNCTIONS/dispatch.cc (Fbuiltin): Call - symbol_table::builtin_find instead of symbol_table::find_function. - - 2009-07-20 Aleksej Saushev - - * sysdep.cc: Also define BSD_init if __NetBSD__ is defined. - (sysdep_init): Also call BSD_init if __NetBSD__ is defined. - - 2009-07-20 Jaroslav Hajek - - * bitfcns.cc (DO_UBITSHIFT): Avoid overflow. - (DO_SBITSHIFT): Fix mask calculation. - - 2009-07-17 Benjamin Lindner - - * DLD-FUNCTIONS/__magick_read__.cc (F__magick_read__): - Determine correct number of bits required when reading images. - - 2009-07-16 John W. Eaton - - * graphics.cc (get_array_limits): Require min_pos value to be - greater than zero. - - 2009-07-15 Robert T. Short - - * DLD-FUNCTIONS/filter.cc: New tests. - - 2009-07-09 John W. Eaton - - * data.cc (Fones, Fzeros, Ftrue, Ffalse): Update docstrings. - - 2009-07-08 John W. Eaton - - * graphics.cc (convert_cdata): Return NaN for NaN values in cdata. - - * pt-assign.cc (maybe_warn_former_built_in_variable): Improve message. - - 2009-07-04 Jaroslav Hajek - - * pt-eval.cc (do_unwind_protect_cleanup_code): Add missing - unwind_protect::run. - - 2009-07-02 Jaroslav Hajek - - * help.cc (do_which): Also look for files. - - 2009-07-02 Jaroslav Hajek - - * Cell.cc (Cell::index): Use proper resize_fill_value. - - 2009-07-01 Jaroslav Hajek - - * symtab.h (symbol_table::get_fcn_info): New private static method. - (symbol_record_rep::finfo): New field. - * symtab.cc (symbol_record::find): Use cached finfo if possible, - cache on successful queries. - - 2008-07-01 David Bateman - - * pr-output.cc (static inline std::string rational_approx (double, - int)): Test for underflow of fractional part of rational approximation - earlier in the loop. - - 2009-07-01 Joe Rothweiler - - * input.cc (raw_mode): Use TCSADRAIN if no wait. - - 2009-06-30 Jaroslav Hajek - - * symtab.h (force_variable): Remove assertion. - - 2009-06-28 Michael Goffioul - - * Makefile.in (INCLUDES): Install txt-eng.h and txt-eng-ft.h. - * gl-render.cc (opengl_renderer::draw_text): Fix bitmap offset - computation for 90x rotated text. - * txt-eng-ft.cc (ft_render::render): Compute bitmap pixels correctly - for 90x rotated text. - - * gl-render.cc (opengl_renderer::draw(text::properties)): Don't do - anything if the bitmap data is empty. Issue a warning instead of - an error if Freetype library is not available. - * txt-eng-ft.cc (ft_manager::do_get_font): Small change in error - string (add prefix). - (ft_render::render): Don't do anything if the bitmap data is empty. - - 2009-06-28 Jaroslav Hajek - - * symtab.h (erase_scope (void *)): Remove overload. - - 2009-06-26 Michael Goffioul - - * txt-eng.h: New file for simple text engine. - * txt-eng.h, txt-eng.cc: Freetype based text render engine. - * Makefile.in: Add txt-eng-ft.cc to list of source files. - * gl-render.h (opengl_renderer::draw_text, opengl_renderer::set_font, - opengl_renderer::draw(text::properties)): New method to support text - rendering using the Freetype renderer. - (opengl_renderer::text_renderer): New field for text rendering. - * gl-render.cc (opengl_renderer::draw(graphics_object)): Support text - object. - (opengl_renderer::draw(figure::properties)): Setup alpha test. - (opengl_renderer::draw(axes::properties)): Render tick labels, hide - labels for depth axes and fix a problem in calling - graphics_object::get(char*). - (opengl_renderer::draw(text::properties)): Basic text rendering using - Freetype engine. - (opengl_renderer::draw_text): Ditto. - (opengl_renderer::set_color): Propagate the color to the text - renderer. - (opengl_renderer::set_font): New utility method. - * graphics.cc (axes::properties::init, axes::properties::set_defauls): - (Re)initialize tick labels, labels and title property. - - 2009-06-26 John W. Eaton - - * load-path.cc (Faddpath): Preserve order of prepended elements. - - 2009-06-25 John W. Eaton - - * graphics.h.in (gh_manager::restore_gcbo): - Arg is now void, not void*. - - 2009-06-25 Jaroslav Hajek - - * unwind-prot.h (unwind_protect::fcn_elem): New class. - (unwind_protect::fcn_arg_elem): New class. - (unwind_protect::method_elem): New class. - (unwind_protect::add_action_var): Rename to add_fcn. - (unwind_protect::add_fcn): New static method. - (unwind_protect::add_method): New static method. - - * symtab.h: Split clear_variables into two overloads. - * toplev.h (octave_call_stack::restore_frame): New static method. - - * graphics.cc: Update unwind_protect usage. - * input.cc: Ditto. - * lex.h: Ditto. - * ls-mat5.cc: Ditto. - * mex.cc: Ditto. - * ov-builtin.cc: Ditto. - * ov-fcn-handle.cc: Ditto. - * ov-mex-fcn.cc: Ditto. - * ov-usr-fcn.cc: Ditto. - * parse.y: Ditto. - * pt-eval.cc: Ditto. - * toplev.cc: Ditto. - * variables.cc: Ditto. - - 2009-06-25 Jaroslav Hajek - - * input.cc: Use unwind_protect::add_action_var where appropriate. - * ls-mat5.cc: Ditto. - * ov-fcn-handle.cc: Ditto. - * parse.y: Ditto. - * toplev.cc: Ditto. - * variables.cc: Ditto. - - 2009-06-25 Jaroslav Hajek - - * unwind-prot.h (unwind_protect::elem): New polymorphic class. - (unwind_protect::restore_var): Remove. - (unwind_protect::restore_mem): Remove. - (unwind_protect::elt_list): Update. - (unwind_protect::add (elem *)): New method. - (unwind_protect::add (void (*)(void *), void *)): Reimplement. - (unwind_protect::run (void)): Rewrite. - (unwind_protect::discard (void)): Rewrite. - (unwind_protect::protect_var): Rewrite. - (unwind_protect::protect_mem): Rewrite. - (unwind_protect::add_action_var): New method. - * unwind-prot.cc (unwind_protect::restore_mem): Remove. - - 2009-06-24 Thorsten Meyer - - * oct-map.cc (Octave_map::squeeze, Octave_map::permute, - Octave_map::transpose, Octave_map::reshape, Octave_map::concat, - Octave_map::index): Add tests for preservation of key order in - struct arrays. - - 2009-06-24 Jaroslav Hajek - - * pt-mat.cc (get_concat_class): Use empty string as zero value. - (tm_row_const_rep::tm_row_const_rep): Initialize class_nm to empty - string. - (tm_const::tm_const): Ditto. - - 2009-06-24 John W. Eaton - - * pt-assign.cc (former_built_in_variables): Remove "ans" from the list. - - 2009-06-24 Jaroslav Hajek - - * unwind-prot.h (restore_var, restore_mem): Hide also copy - constructors. - - 2009-06-23 Jaroslav Hajek - - * quit.h (octave_quit_exception): Delete. - (exit_status, quitting_gracefully): New globals. - * quit.cc: Initialize them. - (Fquit): Set the globals, simulate interrupt. - (main_loop): Handle exit properly. - * octave.cc (execute_eval_option_code): Ditto. - (execute_command_line_file): Ditto. - * pt-eval.cc (do_unwind_protect_cleanup_code): - Fix order of unwind_protect calls. - - 2009-06-23 John W. Eaton - - * oct-map.cc (Octave_map::squeeze, Octave_map::permute, - Octave_map::transpose, Octave_map::reshape, Octave_map::concat): - Preserve key order. - - 2009-06-23 Jaroslav Hajek - - * pt-eval.cc (tree_evaluator::visit_try_catch_command): Simplify. - - 2009-06-23 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc: Modernize unwind_protect usage. - * DLD-FUNCTIONS/daspk.cc: Ditto. - * DLD-FUNCTIONS/dasrt.cc: Ditto. - * DLD-FUNCTIONS/dassl.cc: Ditto. - * DLD-FUNCTIONS/eigs.cc: Ditto. - * DLD-FUNCTIONS/lsode.cc: Ditto. - * DLD-FUNCTIONS/quad.cc: Ditto. - * DLD-FUNCTIONS/rand.cc: Ditto. - * debug.cc: Ditto. - * dynamic-ld.cc: Ditto. - * error.cc: Ditto. - * graphics.cc: Ditto. - * help.cc: Ditto. - * input.cc: Ditto. - * load-path.cc: Ditto. - * ls-mat4.cc: Ditto. - * ls-mat5.cc: Ditto. - * mex.cc: Ditto. - * oct-hist.cc: Ditto. - * octave.cc: Ditto. - * ov-builtin.cc: Ditto. - * ov-class.cc: Ditto. - * ov-fcn-handle.cc: Ditto. - * ov-list.cc: Ditto. - * ov-mex-fcn.cc: Ditto. - * ov-struct.cc: Ditto. - * ov-usr-fcn.cc: Ditto. - * pager.cc: Ditto. - * pr-output.cc: Ditto. - * pt-arg-list.cc: Ditto. - * pt-eval.cc: Ditto. - * toplev.cc: Ditto. - * variables.cc: Ditto. - - 2009-06-22 Jaroslav Hajek - - * unwind-prot.h (unwind_protect): Rewrite. - (unwind_protect::protect_var): New class. - (unwind_protect::protect_mem): New class. - * unwind-prot.cc (unwind_protect): Rewrite. - * pt-eval.cc (tree_evaluator::visit_try_catch_command): Delete frame - properly. - - 2009-06-22 Jaroslav Hajek - - * ov-cell.cc (octave_cell::all_strings): Avoid duplicate conversions. - - 2009-06-20 Jaroslav Hajek - - * ov.cc (Fsubsasgn): Uniquify shared value before assigning to it. - - 2009-06-19 Jaroslav Hajek - - * DLD-FUNCTIONS/lookup.cc: Update docs. - - 2009-06-17 John W. Eaton - - * mex.cc (mxArray_octave_value::get_data): - If octave_value::mex_get_data returns a valid pointer, mark it as - foreign and return it instead of enumerating the types that can be - handled directly. - - * ov-re-mat.h (octave_matrix::mex_get_data): New function. - * ov-bool-mat.h (octave_bool_matrix::mex_get_data): Ditto. - * ov-flt-re-mat.h (octave_float_matrix::mex_get_data): Ditto. - * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::mex_get_data): Ditto. - * ov-base-mat.h (octave_base_matrix::mex_get_data): Delete. - - 2009-06-16 Jaroslav Hajek - - * symtab.h (symbol_table::set_scope_and_context): Avoid checking - error_state for setting context. - - 2009-06-15 Jaroslav Hajek - - * ov-re-mat.h (octave_matrix::octave_matrix (const Array&, - bool)): New constructor. - * ov.cc (octave_value::octave_value (const Array&, - bool)): New constructor. - * ov.h: Declare it. - - * data.cc (Fsort, F__sort_rows_idx__): Use the new constructor. - * DLD-FUNCTIONS/find.cc (Ffind): Ditto. - * DLD-FUNCTIONS/lookup.cc (Flookup): Ditto. - * DLD-FUNCTIONS/max.cc (Fmax, Fmin, Fcummax, Fcummin): Ditto. - - 2009-06-15 Jaroslav Hajek - - * ov-base-mat.h (octave_base_matrix::idx_cache): New member field. - (octave_base_matrix::typ): Turn to MatrixType *. - (octave_base_matrix::octave_base_matrix (...)): Update constructors. - (octave_base_matrix::clear_cached_info, - octave_base_matrix::set_idx_cache): New member functions. - * ov-base-mat.cc (octave_base_matrix::assign, - octave_base_matrix::delete_elements): Call clear_cached_info here. - * ov-re-mat.h (octave_matrix::index_vector): Use idx_cache. - * ov-flt-re-mat.h (octave_float_matrix::index_vector): Ditto. - * ov-bool-mat.h (octave_bool_matrix::index_vector): Ditto. - * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::index_vector): Ditto. - * ov-range.h (octave_range::idx_cache): New member field. - (octave_range::octave_range (...)): Update constructors. - (octave_range::clear_cached_info, - octave_base_matrix::set_idx_cache): New member functions. - (octave_range::idx_vector): Use idx_cache. - - 2009-06-14 Michael Goffioul - - * graphics.h.in (axes::properties::xtick, axes::properties::ytick, - axes::properties::ztick, axes::properties::xticklabelmode, - axes::properties::yticklabelmode, axes::properties::zticklabelmode): - Add 'u' modifier to enable updaters. - (axes::properties::calc_ticklabels): New function to update tick - labels. - (axes::properties::update_xtick, axes::properties::update_ytick, - axes::properties::update_ztick, - axes::properties::update_xticklabelmode, - axes::properties::update_yticklabelmode, - axes::properties::update_zticklabelmode): Add updaters to update tick - labels correctly. - (axes::properties::update_xlim, axes::properties::update_ylim, - axes::properties::update_zlim): Update tick labels. - * graphics.cc (axes::properties::calc_ticklabels): New function to - update tick labels. - - 2009-06-14 Jaroslav Hajek - - * DLD-FUNCTIONS/lookup.cc (Flookup): Support character array lookup. - - 2009-06-12 John W. Eaton - - * ov-fcn-handle.cc (make_fcn_handle): Accept operators which have - corresponding functions and make function handles using the names. - New test. - - 2009-06-12 Jaroslav Hajek - - * DLD-FUNCTIONS/lookup.cc (do_numeric_lookup): New template function. - (Flookup): Extend to support b and m options, improve diagnostic. - Refactor. - - 2009-06-12 Kai NODA - - * ls-mat4.h: Fix include guard - * ov-type-conv.h: Add missing include guard. - - 2009-06-12 Jaroslav Hajek - - * data.cc (BINARY_ASSOC_OP_DEFUN_BODY): New helper macro. - (Fplus, Fmtimes, Ftimes, Fand, For): Allow >= 1 arguments. - - 2009-06-12 Jaroslav Hajek - - * ov-cell.cc (octave_cell::sort (Array&)): Simplify. - - 2009-06-11 John W. Eaton - - * octave.cc: Keep long options alphabetized. - - * display.h (display_info::no_window_system): New static function. - (display_info::display_info, display_info::init, - display_info::instance_ok): New argument, QUERY. - (display_info::init): Skip query if QUERY is false. - - * octave.cc (long_opts, octave_main): Handle --no-window-system option. - (NO_WINDOW_SYSTEM_OPTION): New defined value. - (usage_string, verbose_usage): Mention --no-window-system option. - - 2009-06-11 Jaroslav Hajek - - * ov-class.cc (octave_class::subsref): Set up proper nargout for call to subsref - method. - * ov-class.cc (octave_class::subsref): Unpack cs-list and setup nargin - for call to subsasgn. - - 2009-06-10 Jaroslav Hajek - - * ov-base.cc (octave_base_value::numel (const octave_value_list&), - octave_base_value::size): New virtual methods. - * ov-base.h: Declare them. - * ov.h (octave_value::numel (const octave_value_list&)): New method. - (octave_value::size): Forward to octave_base_value. - * ov-class.cc (octave_class::numel (const octave_value_list&), - octave_base_value::size): New method overrides. - * ov-class.h: Declare them. - * pt-idx.cc (tree_index_expression::lvalue): Rewrite. - * data.cc (Fnumel): Allow indexed query. - - 2009-06-10 John W. Eaton - - * pt-fcn-handle.cc (tree_anon_fcn_handle::dup): Don't convert to - tree_constant object here. Do inherit from current symbol table - scope and context. New test. - - * lex.l (handle_identifier): Set lexer_flags.looking_for_object_index - false if identifier is a keyword. - ({IDENT}{S}*): Don't set lexer_flags.looking_for_object_index here. - - 2009-06-09 Jaroslav Hajek - - * octave.cc (octave_main): Call initialize_command_input - conditionally. Move line_editing update in front of it. - Call command_editor::force_default_editor if not line_editing. - - 2009-06-09 Jaroslav Hajek - - * data.cc (Flog2): Fix tests. - - 2009-06-08 John W. Eaton - - * variables.cc (symbol_exist): Returnn 1 for function handles and - inline function objects. - - 2009-06-08 Jaroslav Hajek - - * symtab.h (symbol_table::do_clear_global, - symbol_table::do_clear_global_pattern): Properly erase from both local - and global table. - - 2009-06-08 Jaroslav Hajek - - * variables.cc (Fclear): Clear also globals when called without - arguments. - - 2009-06-07 Jaroslav Hajek - - * graphics.cc (color_property::do_set): Allow a wider range of types. - - 2009-06-07 Jaroslav Hajek - - * DLD-FUNCTIONS/find.cc (Ffind): Fix docs. Improve second argument - handling. Add regression tests. - - 2009-06-06 Rik - - * data.cc: Update documentation for 'complex' function - - 2009-06-06 Rik - - * load-save.cc: Update documentation for NA and isna functions - - 2009-06-06 Rik - - * load-save.cc: Update documentation for load and save - - 2009-06-06 Rik - - * pr-output.cc: Update documentation for 'format' - - 2009-06-05 Rik - - * variables.cc: Update documentation for 'who' family of functions - - 2009-06-03 Rik - - * input.cc: Correct documentation for keyboard function - - 2009-06-02 Rob Mahurin - - * Makefile.in: Add CARBON_LIBS to OCTINTERP_LINK_DEPS. - From Bernard Desgraups . - - 2009-06-02 Jaroslav Hajek - - * ov-base.cc (octave_base_value::numeric_assign): Gripe when no index - given. - * ov-cell.cc (octave_cell::subsasgn): Ditto. - * ov-struct.cc (octave_struct::subsasgn): Ditto. - * ov-list.cc (octave_list::subsasgn): Ditto. - - 2009-05-28 John W. Eaton - - * load-path.cc (load_path::do_files): Avoid shadow warning from GCC. - - 2009-05-27 John W. Eaton - - * DLD-FUNCTIONS/__magick_read__.cc (write_image): - Bail out if given indexed image. - - 2009-05-27 Jaroslav Hajek - - * DLD-FUNCTIONS/__magick_read__.cc (encode_map): Fix RGB color - construction. - - 2009-05-26 John W. Eaton - - * load-path.h, load-path.cc (load_path::files, load_path::do_files): - New arg, OMIT_EXTS. - * help.cc (F__list_functions__): Call load_path::files with - omit_exts set to true. - - * symtab.h - (symbol_table::symbol_record::symbol_record_rep::is_variable): - Use "! is_local ()" instead of storage_class != local. - (symbol_table::do_variable_names): Only add variables to the list. - (symbol_table::unmark_forced_variables): New static function - * variables.cc (do_who): Use is_variable instead of is_defined. - Also limit output to variables when using regexp pattern. - * octave.cc (unmark_forced_vars): Delete. - (execute_eval_option_code): Don't add unmark_forced_vars to - unwind_protect stack here. - * toplev.cc (main_loop): Add symbol_table::unmark_forced_variables - to the unwind_protect stack here. - * input.cc (get_debug_input): Likewise. - * parse.y (parse_fcn_file, eval_string): Likewise. - - 2009-05-25 Jaroslav Hajek - - * toplev.h (quit_allowed): New global variable. - * toplev.cc (quit_allowed): Declare it. - (Fquit): Raise error if quitting is not allowed. - * octave.cc (octave_main): if running as embedded, disable quit by - default. - - 2009-05-25 Jaroslav Hajek - - * variables.cc (do_who): Only output symbols with a defined value. - - 2009-05-22 Michael Goffioul - - * toplev.h (main_loop): Tag with OCTINTERP_API. - * input.h (octave_read, get_input_from_file, get_input_from_stdin): - Ditto. - * lex.h (create_buffer, current_buffer, switch_to_buffer, - delete_buffer, restore_input_buffer, delete_input_buffer): Ditto. - - 2009-05-22 Robert T. Short - - * ov-class.h, ov-class.cc (octave_class::clear_exemplar_map): - New function. - * symtab.h (symbol_record::clear_objects, - symbol_record::do_clear_objects): New functions. - * variables.cc (do_matlab_compatible_clear, clear): - Handle -classes option. - - 2009-05-22 Jaroslav Hajek - - * ov-base-mat.cc (octave_base_matrix::assign (const - octave_value_list, typename MT::element_type)): Avoid out of bounds - assignments. - - 2009-05-21 Michael Goffioul - - * graphics.cc (figure::properties::get_boundingbox, - figure::properties::set_boundingbox): Get screen size from root - object. - (convert_position): Get screen resolution from root object and remove - unneeded "backend" argument. - (axes::properties::get_boundingbox, - figure::properties::get_boundingbox, - figure::properties::set_boundingbox): Remove unneeded backend argument - to convert_position call. - - * debug.h (class bp_table): Tag with OCTINTERP_API. - * input.h (Vdebugging): Ditto. - * pt-eval.h (class tree_evaluator): Ditto. - * toplev.h (class octave_call_stack): Ditto. - - * file-io.cc (mkstemp): Add mktemp-based implementation of mkstemp on - platforms that do not have it (mkstemp is required by the new help - system). - - * TEMPLATE-INST/Array-os.cc: Add "extern template" declaration for - Array to avoid implicit instantiation (and duplicate - symbols at link-time) [Win32] - - 2009-05-20 John W. Eaton - - * pt-assign.cc (maybe_warn_former_built_in_variable): - Set initialized to true when done initializing vars set. - From Michael Goffioul . - - 2009-05-20 Jaroslav Hajek - - * ov-typeinfo.h - (octave_value_typeinfo::unary_class_ops, - octave_value_typeinfo::unary_ops, - octave_value_typeinfo::non_const_unary_ops, - octave_value_typeinfo::binary_class_ops, - octave_value_typeinfo::binary_ops, - octave_value_typeinfo::compound_binary_class_ops, - octave_value_typeinfo::compound_binary_ops, - octave_value_typeinfo::cat_ops, - octave_value_typeinfo::assign_ops, - octave_value_typeinfo::assignany_ops, - octave_value_typeinfo::pref_assign_conv, - octave_value_typeinfo::type_conv_ops, - octave_value_typeinfo::widening_ops): Declare as Array. - * ov-typeinfo.cc: Reflect changes. - - 2009-05-20 Jaroslav Hajek - - * toplev.h (octave_exit_func): New typedef. - (octave_exit): Change to octave_exit_func. - - 2009-05-20 Jaroslav Hajek - - * ov-typeinfo.cc: Don't include oct-obj.h. - - 2009-05-20 Jaroslav Hajek - - * toplev.h (octave_quit_exception): New class. - (octave_exit): New global variable. - * toplev.cc (octave_exit): Initialize to ::exit. - (clean_up_and_exit): Call octave_exit if set. - (Fquit): Raise octave_quit_exception to quit. - (main_loop): Catch octave_quit_exception. - * octave.cc (execute_command_line_file): Ditto. - (execute_eval_option_code): Ditto. - - 2009-05-19 John W. Eaton - - * DLD-FUNCTIONS/fltk_backend.cc (F__fltk_redraw__): New function. - (F__init_fltk__): Call add_input_event_hook with feval to add - __fltk_redraw__ to the list of even hook functions to call. - Call mlock when initializing. - (F__remove_fltk__): Call remove_input_event_hook with feval to - remove __fltk_redraw__ from the list of event hook functions. - Unlock __init_fltk__ when shutting down. - - * input.cc (Finput_event_hook): Delete. - (input_event_hook): Handle set of functions instead of just one. - (Fadd_input_event_hook, Fremove_input_event_hook): New functions. - - 2009-05-19 Jaroslav Hajek - - * Makefile.in: Add X11_LIBS to OCTINTERP_LINK_DEPS. - - 2009-05-17 Jaroslav Hajek - - * TEMPLATE-INST/Array-tc.cc: Change #include. - - 2009-05-15 Robert T. Short - - * ov-class.cc (octave_class::exemplar_info): Fix typo in error message. - * ov-class.cc (Fmethods): Methods returns cell array. - * ls-mat5.cc (read_mat5_binary_element): - Construct exemplar array and ensure inheritance is correct. - - 2009-05-15 John W. Eaton - - * error.cc (Ferror): Handle error struct argument. - - * ls-mat5.cc (save_mat5_binary_element): Avoid multiple calls to - contents method. From David Bateman . - (save_mat5_element_length): Use const Cell to avoid making copies - when indexing. - - 2009-05-15 Jaroslav Hajek - - * oct-stream.cc: Don't instantiate Array2. - (octave_stream::read): Make read_fptr_table a static 2d array. - (FILL_TABLE_ROW): Update. - - 2009-05-12 Jaroslav Hajek - - * data.cc (F__accumarray_sum__): Optimize the constant range case. - - 2009-05-11 John W. Eaton - - * sparse-xdiv.cc (do_rightdiv_sm_dm, do_leftdiv_dm_sm): - Avoid apparent MSVC bug with typedef. - - * Makefile.in (install-lib): Remove - $(DESTDIR)$(octlibdir)/$(SHLLIBPRE)octinterp.$(SHLLIB_VER), not - $(DESTDIR)$(octlibdir)/$(SHLPRE)octinterp.$(SHLEXT_VER). - - 2009-05-08 Carsten Clark - - * data.cc (Fissorted): Fix typo in documentation entry. - - 2009-05-07 Robert T. Short - - * ov-class.h, ov-class.cc (octave_class::reconstruct_exemplar): - New function. - * ov-class.cc (octave_class::load_binary, octave_class::load_hdf5, - octave_class::load_ascii): Construct exemplar table and ensure - inheritance is correct. - * ov-struct.cc (struct): Return struct from object. - - 2009-05-07 John W. Eaton - - * graphics.h.in (base_graphics_object::set): Undo previous change. - (base_properties::set (const caseless_str&, const octave_value&): - New virtual function. - (base_properties::set (const caseless_str&, const std::string&, - const octave_value&)): No longer virtual. - - * toplev.cc (octave_config_info): Remove F2C and F2CFLAGS from the - config infor struct. - * oct-conf.h.in (OCTAVE_CONF_F2CFLAGS, OCTAVE_CONF_F2C): - Delete definitions. - - 2009-05-07 Marco Atzeri - - * Makefile.in: (SHLPRE): Rename from SHLLIBPRE. - - 2009-05-07 John W. Eaton - - * genprops.awk (emit_declarations): Emit decls for static - has_property functions. - (emit_source): Add class name argument to base_properties::set - function. Pass class name to set_dynamic and - base_properties::set. Emit definitions for has_property - functions. - * graphics.h.in, graphics.cc - (base_properties::set, base_properties::set_dynamic): - New argument CNAME. - (base_properties::all_dynamic_properties): New static data member. - (base_properties::has_dynamic_property): New static function. - (base_graphics_object::set): Pass class name to - base_properties::set function. - (property_list::set): Check for invalid property names. - - 2009-05-06 Jaroslav Hajek - - * ov-re-mat.cc (Fdouble): Fix order of branches. - - 2009-05-05 John Swensen - - * debug.h, debug.cc (breakpoints): Rename from bp_map, use a - std::set instead of a std::map object. Change all uses. - (bp_table::do_get_breakpoint_list): Simplify. - - 2009-05-05 Robert T. Short - - * ov-class.h, ov-class.cc (octave_class::reconstruct_parents): - New function. - * ov-class.cc (octave_class::load_binary, octave_class::load_hdf5): - Contstruct parent list. - (get_current_method_class): Clean up method class extraction. - - 2009-05-05 John W. Eaton - - * graphics.cc (array_property::validate): Require object to be any - numeric type, not necessarily a double precision value. - - * variables.cc (set_internal_variable): Pass NM in call to error. - - 2009-05-04 Peter O'Gorman - - * utils.cc: Don't define HAVE_C99_VSNPRINTF here. - - 2009-05-01 John W. Eaton - - * error.cc (Vlast_error_file, Vlast_error_name, Vlast_error_line, - Vlast_error_column): Delete. - (Vlast_error_stack): New static variable. - (initialize_last_error_stack): New static function. - (verror, Frethrow, Flasterror): Set or use Vlast_error_stack, not - Vlast_error_file, etc. - - 2009-04-27 John W. Eaton - - * ov-class.cc (octave_class::dotref): Handle empty parent class. - (octave_class::get_current_method_class): Allow result to be empty. - (called_from_builtin): New static function. - (octave_class::subsref, octave_class::subsasgn): Use it. - - 2009-04-23 John W. Eaton - - * ov-class.cc (Fclass): Check newly constructed classes against - the first constructed object of the class. - - * ov-class.h, ov-class.cc (octave_class::exmplar_info): New class. - (exemplar_map): New static data member. - (exemplar_iterator, exemplar_const_iterator): New typedefs. - - * ov-class.h (octave_class::nparents, - octave_class::parent_class_name_list): New functions. - * ov.h (octave_base_value::nparents, - octave_base_value::parent_class_name_list): New functions. - * ov-base.h, ov-base.cc (octave_base_value::nparents, - octave_base_value::parent_class_name_list): New functions. - (parent_class_names): Error if called for wrong type argument. - - * symtab.cc (load_out_of_date_fcn): New arg, dispatch_type. - (out_of_date_check_internal): Pass dispatch type to - load_out_of_date_fcn. - - 2009-04-22 John W. Eaton - - * ov-base-int.cc (octave_base_int_helper::char_value_out_of_range): Correct result for specialization. - - * ov-class.cc (octave_class::dotref, octave_class::subsasgn): - Protect against possibly invalid octave_value -> string conversions. - - 2009-04-22 Robert T. Short - - * variables.cc (symbol_exist): Also return 1 for objects. - * ov-base.h (octave_base_value::assign): New virtual function. - * ov-class.h (octave_class::assign): New function. - * ov-class.cc (octave_class::find_parent_class): Simplify. - (octave_class::octave_class): Don't allow duplicate parent classes. - (octave_class::subsasgn): Allow cls = method (cls, value) to work - properly when method is a parent-class method. - (get_method_class): New static function. - (octave_class:subsasgn, octave_class::dotref): Use it. - (F__isa_parent__): New function. - - 2009-04-22 Jaroslav Hajek - - * ov-range.cc (octave_range::char_array_value): New virtual function - override. - * ov-range.h: Declare it. - - 2009-04-22 Jaroslav Hajek - - * pt-mat.cc (tm_row_const::tm_row_const_rep::do_init_element): - Update class name even for all-zeros elements. - (get_concat_class): Update the default value if possible. - - 2009-04-21 John W. Eaton - - * parse.y (Fassignin): Add missing unwind_protect frame. - - * toplev.h (push (symbol_table::scope_id, symbol_table::context_id)): - New function. - - * toplev.cc (main_loop): Don't call symbol_table::reset_scope. - - * mex.cc (mexGetVariable, mexPutVariable): Use unwind_protect to - restore call stack and scope. - - * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): - Don't use symbol_table::push_scope. - * variablees.cc (do_who): Likewise. Use octave_call_stack and - unwind_protect to manage change in scope. - * ov-fcn-handle.cc (octave_fcn_handle::load_ascii, - octave_fcn_handle::load_binary, octave_fcn_handle::load_hdf5): - Likewise. - * ls-mat5.cc (read_mat5_binary_element): Likewise. - - * symtab.h (erase_scope (void*)): New function, for unwind_protect. - (symbol_table::push_scope, symbol_table::pop_scope, - symbol_table::reset_scope): Delete. - (symbol_table::scope_stack): Delete static member. - * symtab.cc (symbol_table::scope_stack): Delete definition. - - 2009-04-17 Jaroslav Hajek - - * oct-map.h (Octave_map::contents (const_iterator) const, - Octave_map::contents (iterator)): Simplify. - - 2009-04-17 Jaroslav Hajek - - * oct-map.cc (Octave_map::assign (const octave_value_list&, const - std::string&, const Cell&)): Fix & simplify. - (common_size): Remove. - - 2009-04-16 Jaroslav Hajek - - * pt-idx.cc (make_value_list): Gripe on magic end query for undefined - variables. - - 2009-04-16 Jaroslav Hajek - - * xpow.cc (same_sign): New helper function. - (elem_xpow (double, const Range&), elem_xpow (const Complex&, const Range&)): - Only optimize monotonic-magnitude integer ranges, start always from - the smaller end. - - 2008-04-11 David Bateman - - * ov-cell.cc (Fstruct2cell): Treat possible trailing singleton for - creation of cell array from column structure vector. - - 2009-04-09 Jaroslav Hajek - - * ov-cell.cc (octave_cell::subsasgn): Fix reference counting - optimization. - - 2009-04-08 John W. Eaton - - * load-path.cc (rehash_internal): New function. - (Frehash): Use it. - (Fpath, Faddpath, Frmpath): Call rehash_internal if path is modified. - - 2009-04-08 Jaroslav Hajek - - * xpow.cc (elem_xpow (double, const Range&), - elem_xpow (const Complex&, const Range&)): New functions. - * xpow.h: Declare them. - * OPERATORS/op-range.cc: Define scalar .^ range and complex .^ range & - install them. - - 2009-04-04 Jaroslav Hajek - - * ov-struct.cc (octave_struct::subsasgn): Fix reference counting - optimization. - - 2008-04-03 David Bateman - - * DLD-FUNCTIONS/max.cc (MINMAX_SPARSE_BODY): Allow sparse boolean - values. - - 2009-04-01 Jaroslav Hajek - - * ov-str-mat.cc (default_numeric_conversion_function): - Create an octave_scalar if possible. - - 2009-03-29 John W. Eaton - - * DLD-FUNCTIONS/fltk_backend.cc (plot_window::button_press): - Don't pass arbitrary input to fl_message as a format string. - - 2009-03-29 Jaroslav Hajek - - * pt-eval.cc (do_unwind_protect_cleanup_code): Protect also - octave_interrupt_state. - - 2009-03-29 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc (Fcellslices): Index n-d arrays along the - last dimension. - - 2009-03-27 Jaroslav Hajek - - * DLD-FUNCTIONS/balance.cc (Fbalance): Fix order of output args. - - 2009-03-26 Jaroslav Hajek - - * DLD-FUNCTIONS/find.cc - (find_nonzero_elem_idx (const Array&, ...)): Move dimensions - fixup to liboctave. - - 2009-03-26 Jaroslav Hajek - - * DLD-FUNCTIONS/find.cc - (find_nonzero_elem_idx (const Array&, ...)): Simplify. - Instantiate for bool and octave_int types. - (find_nonzero_elem_idx (const Sparse&, ...)): - Instantiate for bool. - (Ffind): Handle bool and octave_int cases. - - 2009-03-25 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 3.1.55+. - (OCTAVE_API_VERSION): Now api-v37+. - - * version.h (OCTAVE_VERSION): Now 3.1.55. - (OCTAVE_API_VERSION): Now api-v37. - (OCTAVE_RELEASE_DATE): Now 2009-03-25. - - * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Also return - [](0x0) if the array has 0 rows and it is not a column vector. - - * oct-stream.cc (octave_stream::write (const Array&, - octave_idx_type, oct_data_conv::data_type, octave_idx_type, - oct_mach_info::float_format)): Seek to skip if still inside bounds - of existing file. Otherwise, write NUL to skip. - - * Makefile.in (%.df : %.cc): Write source file name to output, - wrapped in XDEFUN_FILE_NAME macro. - * mkbuiltins: Provide definition for XDEFUN_FILE_NAME. - * mkgendoc: Likeiwse. - (XDEFUN_DLD_INTERNAL, XDEFUNX_DLD_INTERNAL, XDEFUN_INTERNAL, - XDEFCONSTFUN_INTERNAL, XDEFUNX_INTERNAL, XDEFVAR_INTERNAL, - XDEFCONST_INTERNAL): Pass file_name to print_doc_string. - (print_doc_string): New arg, FILE_NAME. Print file name as - comment. - - 2009-03-24 John W. Eaton - - * ov-class.cc (F__parent_classes__): New function. - - 2009-03-24 Robert T. Short - - * ov-class.h, ov-class.cc (octave_class::octave_class (const - Octave_map&, const std::string&, const octave_value_list&)): - New constructor. - (octave_class::find_parent_class, octave_class::parent_classes): - New functions. - (octave_class::dotref): Also look in parent class. - (Fclass): Handle parent class arguments. - - * ov-base.h (octave_base_value::get_parent_list, - octave_base_value::parent_classes): New virtual functions. - - * load-path.h, load-path.cc (load_path::parent_map): New data member. - (load_path::add_to_parent_map): New static function. - (load_path::do_add_to_parent_map): New member function. - (load_path::do_find_method): Also look in parent classes for methods. - (load_path::parent_map_type, load_path::const_parent_map_iterator, - load_path::parent_map_iterator): New typedefs. - - 2009-03-23 John W. Eaton - - * symtab.h - (symbol_table::symbol_record::symobl_recoord_rep::is_variable): - Also return true if symbol is tagged as a variable. - (symbol_table::symbol_record::symobl_recoord_rep::force_variable): - Don't set variable value. - (symbol_table::symbol_record::symobl_recoord_rep::clear_forced, - symbol_table::symbol_record::clear_forced): Delete. - (symbol_table::unmark_forced_variables): Rename from - symbol_table::clear_forced_variables. - (symbol_table::do_unmark_forced_variables): Rename from - symbol_table::do_clear_forced_variables. - * parse.y (make_script, finish_function): Call - symbol_table::unmark_forced_variables instead of - symbol_table::clear_forced_variables. - * octave.cc (unmark_forced_vars): New function. - (execute_eval_option_code): Add it to the unwind-protect stack. - - 2009-03-22 Jaroslav Hajek - - * pt-eval.cc (tree_evaluator::visit_simple_for_command): - Remove struct branch, handle structs by the generic code. - (tree_evaluator::visit_complex_for_command): - Add missing const qualifiers. - - 2009-03-21 Jaroslav Hajek - - * ov-base-diag.cc: Add missing include. - * sparse-xdiv.cc: Ditto. - * DLD-FUNCTIONS/__glpk__.cc: Ditto. - * DLD-FUNCTIONS/__lin_interpn__.cc: Ditto. - * DLD-FUNCTIONS/__voronoi__.cc: Ditto. - - 2009-03-20 Jaroslav Hajek - - * ov-re-mat.cc (octave_matrix::load_ascii): Simplify. - * ov-flt-re-mat.cc (octave_float_matrix::load_ascii): Simplify. - * ov-cx-mat.cc (octave_complex_matrix::load_ascii): Simplify. - * ov-flt-cx-mat.cc (octave_float_complex_matrix::load_ascii): Simplify. - - 2009-03-20 Jaroslav Hajek - - * ov-re-mat.cc (octave_matrix::isnan, octave_matrix::isinf, - octave_matrix::finite): Simplify. - * ov-flt-re-mat.cc (octave_float_matrix::isnan, - octave_float_matrix::isinf, octave_float_matrix::finite): Simplify. - * ov-cx-mat.cc (octave_complex_matrix::isnan, - octave_complex_matrix::isinf, octave_complex_matrix::finite): - Simplify. - * ov-flt-cx-mat.cc (octave_float_complex_matrix::isnan, - octave_float_complex_matrix::isinf, - octave_float_complex_matrix::finite): Simplify. - - 2009-03-19 Benjamin Lindner - - * ls-oct-ascii.cc (extract_keyword): Replace loop with call to - read_until_newline to avoid leaving stray '\r' in stream when - reading files with CRLF line endings. - - 2009-03-18 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc - (scalar_col_helper, scalar_col_helper_def, scalar_col_helper_nda, - scalar_query_helper): New classes. - (make_col_helper): New function. - (Fcellfun): Use col_helper classes for UniformOutput. Avoid copying by - using const variables. - - 2009-03-17 Jaroslav Hajek - - * OPERATORS/op-b-bm.cc: Add missing INSTALL_BINOPs. - * OPERATORS/op-bm-b.cc: Ditto. - * OPERATORS/op-fm-fm.cc: Ditto. - * OPERATORS/op-m-m.cc: Ditto. - - 2009-03-17 Jaroslav Hajek - - * ov.cc (octave_value::octave_value): Move to ov.h - * ov.h (octave_value::octave_value): Implement fast inline constructor - using a static rep. - - 2009-03-15 Jaroslav Hajek - - * DLD-FUNCTIONS/cellfun.cc (Fcellslices): New DLD function. - - 2009-03-13 Jaroslav Hajek - - * ov.h (octave_value::compound_binary_op): Support bool compound ops. - * ov.cc (do_binary_op, decompose_binary_op, binary_op_fcn_name): - Ditto. - * pt-cbinop.cc (strip_not, simplify_and_or_op): New funcs. - (maybe_compound_binary_expression): Support bool compound ops. - * OPERATORS/op-int.h: Support bool compound ops. - * OPERATORS/op-b-bm.cc: Ditto. - * OPERATORS/op-bm-b.cc: Ditto. - * OPERATORS/op-bm-bm.cc: Ditto. - * OPERATORS/op-fm-fm.cc: Ditto. - * OPERATORS/op-m-m.cc: Ditto. - - 2009-03-13 Jaroslav Hajek - - * xpow.cc (xpow (const NDArray&, double), xpow (const ComplexNDArray&, double), - xpow (const FloatNDArray&, float), xpow (const FloatComplexNDArray&, - float)): Use xisint for testing ints. Optimize w.r.t int exponents. - - 2009-03-13 John W. Eaton - - * parse.y (maybe_warn_assign_as_truth_value, make_binary_op, - maybe_warn_variable_switch_label, maybe_warn_associativity_change): - Print file and line number info if available. - * lex.l (gripe_matlab_incompatible): Likewise. - - * error.cc (pr_where): Use octave_call_stack::backtrace to print - complete stack trace at once. Don't attempt to print code. - (error_2): Set error_state to 0 before calling pr_where. - (warning_1): Switch sense of test on symbol_table::at_top_level. - Call pr_where after printing primary warning message. - - 2009-03-13 Jaroslav Hajek - - * ov-range.h (octave_range::octave_range (const Range&)): Allow - constructing from invalid range op result. - * ov-range.cc (octave_range::try_narrowing_conversion): Validate - invalid range op results. - * data.cc (fill_matrix): Return packed form (zero-step range) if - possible. - - 2009-03-10 Jason Riedy - - * DLD-FUNCTIONS/lu.cc (lu): Call fact.Pr_mat () and fact.Pc_mat () - to return permutation matrices in the sparse case. - - 2009-03-12 John W. Eaton - - * ls-mat-ascii.cc (get_mat_data_input_line): If we are looking at - '\r' or '\n', skip current line ending instead of skipping until - the next. - - 2009-03-12 Ben Abbott - - * graphics.cc: Fix default "papersize" property value. - - 2009-03-12 Jaroslav Hajek - - * ov-flt-perm.h, ov-flt-perm.cc: Remove sources. - * ov.h, ov.cc (octave_value::octave_value (const PermMatrix&)): Remove - use "single" argument. - * ov.cc (install_types): Update. - * xpow.cc, xpow.h (xpow (PermMatrix, float)): Remove. - * ov-base-diag.cc (octave_base_diag::do_index_op): Remove permutation - creating block. - * ov-re-diag.cc (octave_diag_matrix::do_index_op): Move it here. - * ov-re-diag.h (octave_diag_matrix::do_index_op): New decl. - - * DLD-FUNCTIONS/det.cc (Fdet): Update. - * DLD-FUNCTIONS/inv.cc (Finv): Update. - * DLD-FUNCTIONS/pinv.cc (Fpinv): Update. - - * OPERATORS/op-fcm-pm.cc <-- OPERATORS/op-fcm-fpm.cc - * OPERATORS/op-fcm-pm.cc: Update. - * OPERATORS/op-fm-pm.cc <-- OPERATORS/op-fm-fpm.cc - * OPERATORS/op-fm-pm.cc: Update. - * OPERATORS/op-pm-fcm.cc <-- OPERATORS/op-fpm-fcm.cc - * OPERATORS/op-pm-fcm.cc: Update. - * OPERATORS/op-pm-fm.cc <-- OPERATORS/op-fpm-fm.cc - * OPERATORS/op-pm-fm.cc: Update. - * OPERATORS/op-pm-pm.cc: Update. - * OPERATORS/op-pm-template.cc: Update. - - 2009-03-11 Jaroslav Hajek - - * xpow.cc (xpow (const PermMatrix&, double), xpow (const PermMatrix&, - float)): New functions. - * xpow.h: Declare them. - * DLD-FUNCTIONS/op-pm-pm.cc: Support permutation matrix ^ scalar. - * DLD-FUNCTIONS/op-fpm-fpm.cc: Ditto. - - 2009-03-11 Jaroslav Hajek - - * ov-ch-mat.cc (octave_char_matrix::double_value, - octave_char_matrix::float_value, octave_char_matrix::complex_value, - octave_char_matrix::float_complex_value): Cast to unsigned char. - - 2009-03-10 Jason Riedy - - * OPERATORS/op-pm-sm.cc (mul_pm_sm): New Octave binding for - perm * sparse. - (ldiv_pm_sm): New Octave binding for perm \ sparse. - (mul_sm_pm): New Octave binding for sparse * perm. - (div_sm_pm): New Octave binding for sparse / perm. - (install_pm_sm_ops): Install the above bindings. - - * OPERATORS/op-pm-scm.cc (mul_pm_scm): New Octave binding for - perm * sparse complex. - (ldiv_pm_scm): New Octave binding for perm \ sparse complex. - (mul_scm_pm): New Octave binding for sparse complex * perm. - (div_scm_pm): New Octave binding for sparse complex / perm. - (install_pm_scm_ops): Install the above bindings. - - * Makefile.in (PERM_OP_XSRC): Add op-pm-sm.cc and op-pm-scm.cc for - operations between permutations and sparse matrices. - - 2009-03-10 Jason Riedy - - * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): New override - for find on PermMatrix. - (find): Add a branch testing arg.is_perm_matrix () and calling the - above override. - - 2009-03-10 John W. Eaton - - * c-file-ptr-stream.cc, dynamic-ld.cc, error.cc, lex.l, pager.cc, - zfstream.cc: Include . - * zfstream.h: Include instead of and . - * c-file-ptr-stream.h, help.h, load-path.h, load-save.h, - ls-ascii-helper.h, oct-iostrm.h, oct-stream.h, ov-base-diag.h, - ov-base-int.h, ov-base-mat.h, ov-base-scalar.h, ov-base-sparse.h, - ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, ov-bool.h, ov-cell.h, - ov-ch-mat.h, ov-class.h, ov-colon.h, ov-complex.h, ov-cs-list.h, - ov-cx-mat.h, ov-cx-sparse.h, ov-fcn-handle.h, ov-fcn-inline.h, - ov-float.h, ov-flt-complex.h, ov-flt-cx-mat.h, ov-flt-re-mat.h, - ov-intx.h, ov-list.h, ov-range.h, ov-re-mat.h, ov-re-sparse.h, - ov-scalar.h, ov-str-mat.h, ov-struct.h, ov.h, pager.h, - pr-output.h, procstream.h, pt-assign.h, pt-cell.h, pt-const.h, - pt-fcn-handle.h, pt-id.h, pt-mat.h, pt.h, utils.h: - Include instead of . - - 2009-03-10 Jaroslav Hajek - - * data.cc (Fsize_equal): Allow single argument call. - * DLD-FUNCTIONS/max.cc (Fcummin, Fcummax): Update docs. - - 2009-03-09 Benjamin Lindner - - * ls-ascii-helper.h, ls-ascii-helper.cc: New files. - * Makefile.in: Add them to the appropriate lists. - * load-save.cc (Fload): Open all files in binary mode. - * ov-range.cc (load_ascii): Explicitly handle CR and CRLF line endings. - * ov-fcn-handle.cc (load_ascii): Likewise. - * ov-fcn-inline.cc (load_ascii): Likewise. - * ov-str-mat.cc (load_ascii): Likewise. - * ls-mat-ascii.cc (get_mat_data_input_line): Likewise. - * ls-oct-ascii.cc (extract_keyword, read_ascii_data): Likewise. - * ls-oct-ascii.h (extract_keyword): Likewise. - - 2009-03-09 John W. Eaton - - * graphics.h.in (OCTAVE_DEFAULT_FONTNAME): New macro, defaults to "*". - (axes::properties, text::properties): Use it to set default fontname. - * graphics.cc (axes::properties::set_defaults): Likewise. - - 2009-03-09 Rafael Laboissiere - - * Makefile.in (maintainer-clean): Remove y.tab.h here. - (distclean): Not here. - - 2009-03-09 Jason Riedy - - * OPERATORS/op-dm-sm.cc (add_dm_sm): Octave binding for diag + sparse. - (sub_dm_sm): Octave binding for diag - sparse. - (add_sm_dm): Octave binding for diag + sparse. - (sub_sm_dm): Octave binding for diag - sparse. - (install_dm_sm_ops): Install above bindings. - - * OPERATORS/op-dm-scm.cc (add_cdm_sm): Octave binding for diag + sparse. - (add_dm_scm): Octave binding for diag + sparse. - (add_cdm_scm): Octave binding for diag + sparse. - (sub_cdm_sm): Octave binding for diag - sparse. - (sub_dm_scm): Octave binding for diag - sparse. - (sub_cdm_csm): Octave binding for diag - sparse. - (add_sm_cdm): Octave binding for diag + sparse. - (add_scm_dm): Octave binding for diag + sparse. - (add_scm_cdm): Octave binding for diag + sparse. - (sub_sm_cdm): Octave binding for diag - sparse. - (sub_scm_dm): Octave binding for diag - sparse. - (sub_scm_cdm): Octave binding for diag - sparse. - (install_dm_scm_ops): Install above bindings. - - 2009-03-08 Jason Riedy - - * sparse-xdiv.h (xleftdiv): Declare overrides for - xleftdiv (diagonal, sparse), both real and complex. - (xdiv): Declare overrides for xdiv (sparse, diagonal), both real - and complex. - - * sparse-xdiv.cc (do_rightdiv_sm_dm): New template function. - Implementation for xdiv (sparse, diagonal). - (xdiv): Call do_rightdiv_sm_dm to implement overrides, real and - complex. - (do_leftdiv_dm_sm): New template function. Implementation for - xleftdiv (diagonal, sparse). - (xleftdiv): Call do_leftdiv_dm_sm to implement overrides, real and - complex. - - * OPERATORS/op-dm-sm.cc (ldiv_dm_sm): Octave binding for real left - division, diagonal into sparse. - (div_sm_dm): Octave binding for real right division, sparse by - diagonal. - (install_dm_sm_ops): Install above bindings. - - * OPERATORS/op-dm-scm.cc (ldiv_dm_scm): Octave binding for real - diagonal \ complex sparse. - (ldiv_cdm_sm): Octave binding for complex diagonal \ real sparse. - (ldiv_cdm_scm): Octave binding for complex diagonal \ complex sparse. - (div_scm_dm): Octave binding for complex sparse / real diagonal. - (div_sm_cdm): Octave binding for real sparse / complex diagonal. - (div_scm_cdm): Octave binding for complex sparse / complex diagonal. - (install_dm_scm_ops): Install above bindings. - - 2009-03-08 Jason Riedy - - * OPERATORS/op-dm-scm.cc: New file. Implement multiplication - between diagonal matrices (both real and complex) and complex - sparse matrices. - * OPERATORS/op-dm-sm.cc: New file. Implement multiplication - between diagonal matrices and sparse matrices, all real. - * Makefile.in (DIAG_OP_XSRC): Add op-dm-sm.cc and op-dm-scm.cc. - - 2009-03-09 Jaroslav Hajek - - * data.cc (F__accumarray_sum__): New function. - (do_accumarray_sum): New helper template function. - - 2009-03-07 Jaroslav Hajek - - * xdiv.cc (mdm_div_impl, dmm_lelftdiv_impl, dmdm_div_impl, - dmdm_leftdiv_impl): Optimize. - - 2009-03-07 John W. Eaton - - * pr-output.cc (octave_print_internal (std::ostream&, - const PermMatrix&, bool, int)): Delete unused variable SCALE. - - * utils.cc (octave_vsnprintf): Avoid uninitialized variable - warning from GCC. - - * DLD-FUNCTIONS/qz.cc (Fqz): Avoid "maybe clobbered by vfork" - warning from GCC. - - * version.h (OCTAVE_VERSION): Now 3.1.54. - (OCTAVE_API_VERSION): Now api-v36. - (OCTAVE_RELEASE_DATE): Now 2009-03-07. - - * octave.cc (verbose_usage): Include --doc-cache-file in option list. - - 2009-03-06 Jaroslav Hajek - - * ov.h (octave_value::diag_matrix_value, - octave_value::complex_diag_matrix_value, - octave_value::float_diag_matrix_value, - octave_value::float_complex_diag_matrix_value, - octave_value::perm_matrix_value): New methods. - - * ov-base.cc (octave_base_value::diag_matrix_value, - octave_base_value::complex_diag_matrix_value, - octave_base_value::float_diag_matrix_value, - octave_base_value::float_complex_diag_matrix_value, - octave_base_value::perm_matrix_value): New virtual methods. - - * ov-base.h: Declare them. - - * ov-base-diag.h (octave_base_diag::diag_matrix_value, - octave_base_diag::complex_diag_matrix_value, - octave_base_diag::float_diag_matrix_value, - octave_base_diag::float_complex_diag_matrix_value, - octave_base_diag::perm_matrix_value): Remove declarations. - - * DLD-FUNCTIONS/inv.cc (Finv): Simplify handling diag & perm matrices. - * DLD-FUNCTIONS/pinv.cc (Fpinv): Ditto. - * DLD-FUNCTIONS/det.cc (Fdet): Ditto. - - 2009-03-05 Jaroslav Hajek - - * ls-hdf5.cc (add_hdf5_data): Handle diag & perm matrices. - - 2009-03-05 John W. Eaton - - * pt-cell.cc, pt-cell.h (tree_cell::dup): Now const. - * comment-list.cc, comment-list.h (octave_comment_list::dup): Ditto. - * pt-arg-list.cc, pt-arg-list.h (tree_argument_list::dup): Ditto. - * pt-assign.cc, pt-assign.h (tree_simple_assignment::dup, - tree_multi_assignment::dup): Ditto. - * pt-binop.cc, pt-binop.h (tree_binary_expression::dup, - tree_boolean_expression::dup): Ditto. - * pt-cmd.cc, pt-cmd.h (tree_no_op_command::dup, - tree_function_def::dup): Ditto. - * pt-colon.cc, pt-colon.h (tree_colon_expression::dup): Ditto. - * pt-const.cc, pt-const.h (tree_constant::dup): Ditto. - * pt-decl.cc, pt-decl.h (tree_decl_elt::dup, tree_decl_init_list::dup, - tree_global_command::dup, tree_static_command::dup): Ditto. - * pt-except.cc, pt-except.h (tree_try_catch_command::dup, - tree_unwind_protect_command::dup): Ditto. - * pt-fcn-handle.cc, pt-fcn-handle.h (tree_fcn_handle::dup, - tree_anon_fcn_handle::dup): Ditto. - * pt-id.cc, pt-id.h (tree_identifier::dup): Ditto. - * pt-idx.cc, pt-idx.h (tree_index_expression::dup): Ditto. - * pt-jump.cc, pt-jump.h (tree_break_command::dup, - tree_continue_command::dup, tree_return_command::dup): Ditto. - * pt-loop.cc, pt-loop.h (tree_while_command::dup, - tree_do_until_command::dup, tree_simple_for_command::dup, - tree_complex_for_command::dup): Ditto. - * pt-mat.cc, pt-mat.h (tree_matrix::dup): Ditto. - * pt-misc.cc, pt-misc.h (tree_parameter_list::dup, - tree_return_list::dup): Ditto. - * pt-select.cc, pt-select.h (tree_if_clause::dup, - tree_if_command_list::dup, tree_if_command::dup, - tree_switch_case::dup, tree_switch_case_list::dup, - tree_switch_command::dup): Ditto. - * pt-stmt.cc, pt-stmt.h (tree_statement::dup, - tree_statement_list::dup): Ditto. - * pt-unop.cc, pt-unop.h (tree_prefix_expression::dup, - tree_postfix_expression::dup): Ditto. - * pt-fcn-handle.h (tree_anon_fcn_handle::parameter_list, - tree_anon_fcn_handle::return_list, tree_anon_fcn_handle::body, - tree_anon_fcn_handle::scope): Ditto. - - 2009-03-05 Jason Riedy - - * ov-base-int.cc (convert_to_str_internal): Replace elt_type with - element_type throughout. - - 2009-03-05 Jaroslav Hajek - - * DLD-FUNCTIONS/sparse.cc (Fsparse): Handle diagonal and permutation - matrices. - - 2009-03-03 John W. Eaton - - * ov-struct.cc (octave_struct::save_ascii, - octave_struct::save_binary, octave_struct::save_hdf5): - Preserve order of structure fields. - * ls-mat5.cc (save_mat5_binary_element): Likewise. - - * symtab.h (symbol_table::do_inherit): Only inherit values for - symbols from the donor_scope that already exist in the table. - (symbol_table::symbol_record::symbol_record_rep::dup): Now const. - (symbol_table::symbol_record::operator=): Decrement rep->count and - maybe delete rep. - (symbol_table::fcn_info::operator=): Likewise. - - * pt-fcn-handle.cc: (tree_anon_fcn_handle::dup): Transform - tree_anon_fcn_handle objects to tree_constant objects containing - octave_fcn_handle objects. New tests. - - * pt-assign.cc (tree_simple_assignment::rvalue1): Assign result of - call to rhs->rvalue1() to an octave_value object, not an - octave_value_list object. - - 2009-03-03 Jaroslav Hajek - - * oct-stream.h (octave_stream_list::lookup_cache): New member field. - (octave_stream_list::octave_stream_list): Initialize it. - (octave_stream_list::do_lookup): Use it. - (octave_stream_list::clear): Make flush optional. Do physically erase - entries from the map. Close files. - (octave_stream_list::do_remove): Call clear on "all". Do erase deleted - entry from the map. - - 2009-03-02 John W. Eaton - - * graphics.cc (Fget, F__get__): Return a column vector of property - values, not a row vector. - - 2009-03-01 John W. Eaton - - * OPERATORS/op-fcm-fcm.cc (DEFNDASSIGNOP_FN (dbl_assign)): - LHS type is float_complex_matrix, not complex_matrix. RHS value - function is float_complex_array, not complex_array. - - 2009-03-01 Jaroslav Hajek - - * ov-perm.cc (octave_perm_matrix::print_raw): Call - octave_print_internal. - (octave_perm_matrix::print_raw): Call print_raw. - * pr-output.cc (octave_print_internal (...,const DiagMatrix&,...)): - Indicate diagonal matrix. - (octave_print_internal (...,const ComplexDiagMatrix&,...)): Ditto. - (octave_print_internal (...,const PermMatrix&,...)): New function. - * pr-output.h: Declare it. - - 2009-02-27 Jaroslav Hajek - - * OPERATORS/op-dms-template.cc (gripe_if_zero): New template static - function. - (dmsdiv, sdmldiv): Call it. - - 2009-02-26 John W. Eaton - - * symtab.h (symbol_table::symbol_record::symbol_record_rep::forced): - New static constant. - (symbol_table::symbol_record::symbol_record_rep::force_variable, - symbol_table::symbol_record::force_variable): New functions. - (symbol_table::symbol_record::symbol_record_rep::is_forced, - symbol_table::symbol_record::symbol_record_rep::mark_forced, - symbol_table::symbol_record::symbol_record_rep::unmark_forced, - symbol_table::symbol_record::symbol_record_rep::clear_forced, - symbol_table::symbol_record::is_forced, - symbol_table::symbol_record::mark_forced, - symbol_table::symbol_record::clear_forced, - symbol_table::symbol_record::unmark_forced): New fucntions. - * lex.h, lex.l (force_local_variable): Delete. - (handle_identifier): Call symbol_table::force_variable instead of - force_local_variable. - * parse.y (make_script): Call symbol_table:clear_forced_variables - after defining script. - (finish_function): Call symbol_table::clear_forced_variables - instead of symbol_table::clear_variables. - - * DLD-FUNCTIONS/chol.cc: Correct spelling of CHOLMOD in tests. - - * version.h (OCTAVE_VERSION): Now 3.1.53+. - (OCTAVE_API_VERSION): Now api-v35+. - - 2009-02-25 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 3.1.53. - (OCTAVE_API_VERSION): Now api-v35. - (OCTAVE_RELEASE_DATE): Now 2009-02-25. - (OCTAVE_COPYRIGHT): Update year. - - * Makefile.in (distclean): Remove tags TAGS y.tab.h y.output - yy.lex.c here, not in maintainer-clean target. Also remove - parse.output. - - * DLD-FUNCTIONS/rand.cc: Note that the tests for the old random - number generator will fail if using 64-bit indexing. - - 2009-02-25 Jaroslav Hajek - - * DLD-FUNCTIONS/lu.cc (maybe_set_triangular): New function. - (Flu): Use it. - * DLD-FUNCTIONS/qr.cc (maybe_set_triangular): New function. - (Fqr): Use it. - - 2009-02-25 John W. Eaton - - * DLD-FUNCTIONS/chol.cc: Fix tests for missing cholmod. - - * input.cc (get_debug_input): Write debugging location info - directly to std::cerr instead of calling message. - * pt-eval.cc (tree_evaluator::do_breakpoint): Write debugging - location info directly to std::cerr, not octave_stdout. - - * defaults.h.in (OCTAVE_DOC_CACHE_FILE): New macro. - * defaults.cc (set_default_doc_cache_file): New function. - (install_defaults): Call it. - - * help.cc (__list_functions__): Simplify - - * input.cc (get_debug_input): Don't pass arbitrary input to - message as a format string. - - 2009-02-24 John W. Eaton - - * help.cc, help.h (Vdoc_cache_file): New global variable. - (Fdoc_cache_file): New function. - * octave.cc (DOC_CACHE_FILE_OPTION): New option tag. - (long_opts): Include doc-cache-file in the list. - (octave_main): Handle DOC_CACHE_FILE_OPTION. - - 2009-02-24 Jaroslav Hajek - - * ov-scalar.h - (octave_scalar::int8_scalar_value): New method. - (octave_scalar::int16_scalar_value): New method. - (octave_scalar::int32_scalar_value): New method. - (octave_scalar::int64_scalar_value): New method. - (octave_scalar::uint8_scalar_value): New method. - (octave_scalar::uint16_scalar_value): New method. - (octave_scalar::uint32_scalar_value): New method. - (octave_scalar::uint64_scalar_value): New method. - - * ov-float.h - (octave_float_scalar::int8_scalar_value): New method. - (octave_float_scalar::int16_scalar_value): New method. - (octave_float_scalar::int32_scalar_value): New method. - (octave_float_scalar::int64_scalar_value): New method. - (octave_float_scalar::uint8_scalar_value): New method. - (octave_float_scalar::uint16_scalar_value): New method. - (octave_float_scalar::uint32_scalar_value): New method. - (octave_float_scalar::uint64_scalar_value): New method. - - * OPERATORS/op-s-s.cc (scalar_to_float): Remove duplicate conversion. - * OPERATORS/op-range.cc (range_to_float_matrix): Ditto. - - 2009-02-24 John W. Eaton - - * OPERATORS/op-float-conv.cc: New file. - * Makefile.in (FLOAT_OP_XSRC): Add it to the list. - (DOUBLE_OP_XSRC): Move op-double-conv.cc here from INTTYPE_OP_XSRC. - * ops.h (DEFFLTCONVFN, DEFSTRFLTCONVFN): New macros. - - 2009-02-23 John W. Eaton - - * ov-base-sparse.cc (octave_base_sparse::print_raw): - Remove extra ")" from output. - - * DLD-FUNCTIONS/eigs.cc (Feigs): If sigma argument is not a - string, try extraction as complex value and check for error - instead of inquiring about type first. - - * pt-eval.cc (tree_evaluator::visit_break_command, - tree_evaluator::visit_return_command, - tree_evaluator::visit_global_command, - tree_evaluator::visit_static_command): Handle breakpoint. - (tree_evaluator::visit_simple_for_command, - tree_evaluator::visit_complex_for_command): Handle breakpoint once - at beginning of loop. - (tree_evaluator::visit_if_command_list): Don't call do_breakpoint - for else clauses. - (tree_evaluator::visit_no_op_command): Handle breakpoint if no-op - command is end of function or script. - (tree_evaluator::visit_statement): Handle breakpoint for - expressions but not commands. - (tree_evaluator::visit_while_command, - tree_evaluator::visit_do_until_command): - Check for breakpoint set on cmd, not expr. - (tree_evaluator::visit_do_until_command): Handle breakpoint - between check for breaking out of loop and loop control - expression. - - * pt-cmd.h (tree_no_op_command::eof): New data member - (tree_no_op_command::tree_no_op_command): Initialize it. - (tree_no_op_command::is_end_of_fcn_or_script): New function. - * pt-stmt.cc (tree_statement::is_end_of_fcn_or_script): - Call is_end_of_fcn_or_script instead of looking at original text - of no-op command. - - * pt-select.h, pt-select.cc (tree_if_command::set_breakpoint, - tree_if_command::delete_breakpoint): New functions. - (tree_switch_command::set_breakpoint, - tree_switch_command::delete_breakpoint): New functions. - * pt-stmt.h, pt-stmt.cc (tree_statement::set_breakpoint, - tree_statement::delete_breakpoint, tree_statement::is_breakpoint): - Delegate real work to cmd or expr. - (tree_statement::bp): Delete data member. - (tree_statement::tree_statement): Don't initialize bp. - (tree_statement::dup): Don't copy bp. - - * pt.h (tree::line (int), tree:column (int)): New functions. - (tree:set_breakpoint, tree::delete_breakpoint): Now virtual. - - * parse.y (finish_if_command): Also store line and column info for - if statement in first element of list. - (finish_switch_command): Likewise, for switch. - - * input.cc (last_debugging_command): New static variable. - (octave_gets): Set it here. Don't insert repeated debugging - commands in the history list. - - 2009-02-23 Jaroslav Hajek - - * DLD-FUNCTIONS/pinv.cc: Support diagonal and permutation matrices. - - 2008-02-21 David Bateman - - * OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, OPERATORS/op-s-scm.cc, - OPERATORS/op-s-sm.cc, OPERATORS/op-scm-cs.cc, OPERATORS/op-scm-s.cc, - OPERATORS/op-sm-cs.cc, OPERATORS/op-sm-s.cc: Don't perform any - narrowing to full matrices. - - 2009-02-20 Jaroslav Hajek - - * ov-base-diag.h (octave_base_diag::sqrt): Remove. - * ov-re-diag.cc (octave_diag_matrix::sqrt): New method. - * ov-re-diag.h: Declare it. - * ov-flt-re-diag.cc (octave_float_diag_matrix::sqrt): New method. - * ov-flt-re-diag.h: Declare it. - * ov-cx-diag.cc (octave_complex_diag_matrix::sqrt): New method. - * ov-cx-diag.h: Declare it. - * ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::sqrt): New method. - * ov-flt-cx-diag.h: Declare it. - - 2009-02-20 John W. Eaton - - * dynamic-ld.cc (octave_dynamic_loader::do_load_mex): Clear and - reload mex file if it is out of date. Don't check path for file. - - * pt-bp.cc (tree_breakpoint::visit_octave_user_script, - tree_breakpoint::visit_octave_user_function): - Don't panic. Call accept on command list if it exists. - - 2009-02-20 Jaroslav Hajek - - * ov-base-mat.cc (octave_base_matrix::do_index_op): - Correctly compute all-scalar index. - * ov-cell.cc (octave_cell::is_sorted, octave_cell::is_sorted_rows): - New methods. - (octave_cell::octave_cell (const Array&)): New - constructor. - * ov-cell.h: Declare them. - * ov-cell.cc (octave_cell::sort): Create result already with - cellstr_cache. - * strfns.cc (Fstrcmp): Use special code when dealing with - cellstr arrays. - - 2009-02-20 John W. Eaton - - * ov-base-mat.cc (octave_base_matrix::assign): - Correctly compute all-scalar index. - - * symbtab.cc (symbol_table::stash_dir_name_for_subfunctions): - New function. - * symtab.h: Provide decl. - * parse.y (load_fcn_from_file): Call it after parsing a function. - - 2009-02-19 Jaroslav Hajek - - * ov-cell.h (octave_cell::cellstr_cache): New field. - (octave_cell::clear_cellstr_cache, octave_cell::make_cellstr_cache, - octave_cell::assign, octave_cell::delete_elements, - octave_cell::mex_get_data): New methods. - (octave_cell::is_cellstr): Reuse cellstr cache if possible, create if - successful. - (octave_cell::cellstr_value): Reuse cellstr cache if possible. - (octave_cell::subsasgn): Clear cellstr cache. - - 2009-02-19 Jaroslav Hajek - - * DLD-FUNCTIONS/lookup.cc (Flookup): Use Array::lookup if possible. - Do not compare octave_values directly. Properly check for iscellstr. - - 2009-02-19 John W. Eaton - - * data.cc, graphics.cc, help.cc, lex.l, load-path.cc, parse.y: - Consistent doc strings for internal functions. - - 2009-02-18 John W. Eaton - - * ov.cc (convert_to_octave_idx_type_array): New static function. - (octave_value::octave_idx_type_vector_value): New function. - * ov.h (octave_value::octave_idx_type_vector_value): Provide decl. - * DLD-FUNCTIONS/qr.cc (Fqrdelete, Fqrinsert): Use it to convert - octave_value object to array of octave_idx_type values. - - * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Likewise. - * DLD-FUNCTIONS/time.cc (strptime): Likewise. - * DLD-FUNCTIONS/quad.cc (Fquad): Eliminate unnecessary cast. - * toplev.cc (run_command_and_return_output): Likewise. - - * strfns.cc (Fstrvcat): Use octave_idx_type and size_t instead of - int as needed. - (Fstrcmp, Fstrncmp): Use octave_idx_type instead of int as needed. - - * DLD-FUNCTIONS/hex2num.cc (Fhex2num, Fnum2hex): - Use union to avoid reinterpret_cast and GCC warning. - - * mex.cc (call_mex): Declare local nargout variable volatile to - avoid "maybe clobbered by vfork" warning from GCC. - - * ov-cx-mat.cc (xabs): Comment out unused static function. - * ov-flt-cx-mat.cc (xabs): Ditto. - - * c-file-ptr-stream.cc (c_file_ptr_buf::seekoff, - c_file_ptr_buf::seepos, c_zfile_ptr_buf::seekoff, - c_zfile_ptr_buf::seepos): Avoid unused paramter warnings. - - 2009-02-18 Jaroslav Hajek - - * data.cc (Fresize): Allow arbitrary number of parameters. Improve - documentation. - - 2009-02-17 Benjamin Lindner - - * file-io.cc: (Fmkstemp): Use mkstemps if it is available and - mkstemp is missing. - - 2009-02-17 Olaf Till - - * DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/daspk.cc, - DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/dasrt.cc: Documentation fixes. - - 2009-02-17 Kai Habel - - * DLD-FUNCTIONS/convhulln.cc (Fconvhulln): Compute convex hull - volume and return it as second output. New tests. - - 2009-02-17 John W. Eaton - - * ov-fcn.h (octave_function::octave_function): Initialize data members. - (octave_function::dispatch_class): No longer virtual. - Replace with version from ov-usr-fcn.h. - (octave_function::xdispatch_class, - octave_function::stash_dispatch_class): Move here from ov-usr-fcn.h. - (octave_function::mark_as_private_function, - octave_function::is_private_function, - octave_function::is_private_function_of_class): New functions. - (octave_function::private_function): New data member. - * ov-usr-fcn.h (octave_user_function::xdispatch_class, - octave_user_function::stash_dispatch_class, - octave_user_function::dispatch_class): Delete. - * ov-usr-fcn.cc (octave_user_function::octave_user_function): - Don't initialize xdispatch_type. - - * symtab.cc - (symbol_table::fcn_info::fcn_info_rep::load_private_function): - If private directory is subdirectory of class directory, qmark - function as a private directory of the class. - - * ov-class.cc (octave_class::in_class_method): Also return true - for functions that are private to a class. - (octave_class::subsasgn): If not in class method, look for - subsasgn method. If not found, or if not in a class method, - perform default struct-style subscripted indexing. - - * ov-class.h (octave_class::empty_clone): - Preserve fields and class name. - * oct-map.h (Octave_map::Octave_map (const string_vector&): - New constructor. - - * ov-class.cc (octave_class::subsref): If indexing directly and - result is map, return class object, not simple struct. - - * symtab.cc - (symbol_table::fcn_info::fcn_info_rep::load_private_function): - Pass dir_name to load_fcn_from_file. - - 2009-02-17 Jaroslav Hajek - - * DLD-FUNCTIONS/data.cc (NATIVE_REDUCTION): Add BOOL_FCN argument. - (NATIVE_REDUCTION_1): Check integer overflow flags and possibly gripe. - (Fsum): Reflect change. - (Fcumsum): USE NATIVE_REDUCTION. - * gripes.cc (gripe_native_integer_math_truncated): New function. - - 2009-02-17 Jaroslav Hajek - - * DLD-FUNCTIONS/max.cc (Fcummin, Fcummax): Improve inline docs. - - 2009-02-17 Jaroslav Hajek - - * DLD-FUNCTIONS/max.cc (MINMAX_DOUBLE_SBODY): New macro. - (MINMAX_DOUBLE_BODY): Move part of code to MINMAX_DOUBLE_SBODY. - (MINMAX_SINGLE_SBODY): New macro. - (MINMAX_SINGLE_BODY): Move part of code to MINMAX_DOUBLE_SBODY. - (MINMAX_INT_SBODY): New macro. - (MINMAX_INT_BODY): Move part of code to MINMAX_DOUBLE_SBODY. - (CUMMINMAX_BODY): New macro. - (Fcummin, Fcummax): New DLD functions. - - 2009-02-17 John W. Eaton - - * octave.gperf: Eliminate whitespace to allow gperf 2.7.2 to work. - - * file-io.cc (Ffscanf, Fsscanf): Check error_state after call to - octave_stream::scanf. - (Ffgetl): Check error state after call to octave_stream::getl. - (Ffgets): Check error state after call to octave_stream::gets. - - * oct-stream.cc (octave_base_stream::do_gets, - octave_base_stream::do_scanf): - Disallow reading from stdin when running interactively. - - * toplev.cc (octave_config_info): Add CARBON_LIBS, X11_INCFLAGS, - and X11_LIBS to the struct. - * oct-conf.h.in (OCTAVE_CONF_CARBON_LIBS, - OCTAVE_CONF_X11_INCFLAGS, OCTAVE_CONF_X11_LIBS): New macros. - - 2009-02-17 Thomas Treichl - - * Makefile.in (octave$(EXEEXT)): Link with CARBON_LIBS. - - 2009-02-16 John W. Eaton - - * lex.l (next_token_can_follow_bin_op): - Push all characters read on to buffer stack. - - * genprops.awk (emit_source): Don't use + to concatenate strings. - - 2009-02-16 Jaroslav Hajek - - * data.cc (NATIVE_REDUCTION): Use boolNDArray::any for native bool - summation, boolNDArray::sum for double-valued. - - 2009-02-16 Jaroslav Hajek - - * ov-base-mat.cc (octave_base_matrix::assign (const octave_value_list&, - typename MT::element_type): Fix invalid index. - * ov-re-mat.cc (default_numeric_demotion_function): Use - float_array_value instead of float_matrix_value. - - 2009-02-16 John W. Eaton - - * input.cc (gnu_readline): Use fputs instead of fprintf. - - 2009-02-15 John W. Eaton - - * defun.cc, defun-int.h, defun-dld.h (DEFUN_INTERNAL, - DEFCONSTFUN_INTERNAL, DEFUNX_INTERNAL, DEFUN_DLD_INTERNAL, - DEFUNX_DLD_INTERNAL, install_builtin_function, - install_dld_function, install_mex_function): - Delete IS_TEXT_FCN arg. Fix all uses. - (DEFMD, DEFUN_TEXT): Delete. - * mkbuiltins, mkgendoc: Adapt to DEFUN macro changes. - - * lex.h, lex.l (lexer_flags::at_beginning_of_statement): - New data member. Set it as needed in rules. - (is_keyword_token): - Handle lexer_flags::at_beginning_of_statement. - (next_token_can_follow_bin_op, looks_like_command_arg): New functions. - (handle_identifier): Use them to determine - Don't check is_command_name or is_rawcommand_name. - * parse.y (statement): Recognize word_list_cmd here. - (expression): Not here. - - * lex.l (handle_string): Delete arg TEXT_STYLE. - (BIN_OP_RETURN, XBIN_OP_RETURN): New arg, BOS. Change all uses. - - * lex.h, lex.l (lexer_flags::doing_raw_command): Delete data - member and all uses. - - * debug.cc, dirfns.cc, error.cc, input.cc, lex.l, load-path.cc, - load-save.cc, oct-hist.cc, ov-class.cc, pager.cc, parse.y, - pr-output.cc, sysdep.cc, utils.cc, variables.cc: - Replace all uses of DEFCMD with DEFUN. - - * variables.cc (command_set, rawcommand_set): Delete static variables. - (mark_as_command, unmark_command, is_command_name, - mark_as_rawcommand, unmark_raw_command, is_rawcommand_name): Delete. - (Fmark_as_command, Funmark_command, Fiscommand, - Fmark_as_rawcommand, Funmark_rawcommand, Fisrawcommand): - Convert to .m files and move to scripts/deprecated. - * variables.h (mark_as_command, is_command_name, - is_marked_as_rawcommand, mark_as_rawcommand, unmark_rawcommand, - is_rawcommand_name): Delete decls. - - * lex.h, lex.l (lexer_flags.looking_at_object_index): Now a - std::list object instead of an int. - Push TRUE to list at start of object index. Push FALSE at - beginning of matrix list. Pop value at end of object index or - matrix list. - (lexer_flags.looking_for_object_index): New data member. - Set it as needed in rules. - (inside_any_object_index): New function. - * parse.y (begin_obj_idx, cancel_obj_idx): Delete non-terminals - and all uses. - - 2009-02-13 Ben Abbott - - * graphics.h.in (class axes::properties): Initialize ticklength. - * graphics.cc (default_axes_ticklength): New function. - - 2009-02-13 John W. Eaton - - * oct-stream.cc (octave_base_stream::do_gets): Handle CRLF and CR. - - * toplev.cc (do_octave_atexit): Only save history if - Vsaving_history is true. - - 2009-02-12 John W. Eaton - - * data.cc, ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h, - ov-base-sparse.h, ov-base.cc, ov-base.h, ov-perm.h, ov-range.h, - ov.h: Rename internal issorted and issorted_rows functions to - is_sorted and is_sorted_rows. - - * ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h, ov-base.h, - ov-cell.h, ov-perm.h, ov-range.h, ov.h, data.cc, ov-base.cc, - ov-cell.cc: Rename all uses of sortrows_idx to sort_rows_idx. - - * TEMPLATE-INST/Array-tc.cc: Don't instantiate sort functions for - Arrays of octave_value objects. - (octave_sort::ascending_compare, - octave_sort::descending_compare): Delete. - - * ov.h (octave_value::cellstr_value): New function. - * ov-base.cc, ov-base.h (octave_base_value::cellstr_value): - New function. - * ov-cell.h (octave_cell::cellstr_value, octave_cell::sort, - octave_cell::sortrows_idx): New functions - * Cell.h, Cell.cc (Cell::Cell (Array)): New constructor. - - * TEMPLATE-INST/Array-tc.cc: Undo previous change. - (octave_sort::ascending_compare, - octave_sort::descending_compare): - Pass args by const reference instead of value. - - * version.h (OCTAVE_VERSION): Now 3.1.52+. - (OCTAVE_API_VERSION): Now api-v34+. - - * TEMPLATE-INST/Array-tc.cc - (octave_sort::ascending_compare, - octave_sort::descending_compare): - Delete unused template specializations. - Use NO_INSTANTIATE_ARRAY_SORT instead of INSTANTIATE_ARRAY_SORT - for octave_values. - - 2009-02-11 Thomas Treichl - - * gl-render.h: Use HAVE_FRAMEWORK_OPENGL. - * gl-render.cc (opengl_tesselator, opengl_renderer::draw, - opengl_renderer::init_marker): Use HAVE_FRAMEWORK_OPENGL. - - 2009-02-11 Jaroslav Hajek - - * ov.h (octave_value::issorted, octave_value::sortrows_idx, - octave_value::issorted_rows): New methods. - * ov.cc (octave_base_value::issorted, octave_base_value::sortrows_idx, - octave_base_value::issorted_rows): New methods. - * ov.cc: Declare them. - - * ov-base-mat.h (octave_base_matrix::issorted, octave_base_matrix::sortrows_idx, - octave_base_matrix::issorted_rows): New methods. - - * ov-base-diag.h (octave_base_diag::issorted, octave_base_diag::sortrows_idx, - octave_base_diag::issorted_rows): New methods. - - * ov-perm.h (octave_perm_matrix::issorted, octave_perm_matrix::sortrows_idx, - octave_perm_matrix::issorted_rows): New methods. - - * ov-range.h (octave_range::issorted, octave_range::sortrows_idx, - octave_range::issorted_rows): New methods. - - * data.cc (F__sortrows_idx__, Fissorted): New defuns. - - 2009-02-11 John W. Eaton - - * toplev.cc (octave_config_info): Add octetcdir to the struct. - * defaults.h.in (OCTAVE_OCTETCDIR): New macro. - - 2009-02-10 Jaroslav Hajek - - * DLD-FUNCTIONS/__pchip_deriv__.cc (F__pchip_deriv__): - Add support for computing pchip derivatives along rows of matrix. - Eliminate redundant copying by using const args where appropriate. - - 2009-02-09 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 3.1.52. - (OCTAVE_RELEASE_DATE): Now 2009-02-09. - (OCTAVE_COPYRIGHT): Update year. - - * load-path.cc (dir_info::update, dir_info::initialize): - Likewise, to allow some functionality if getcwd fails. - - * toplev.cc (main_loop): Also catch octave_execution_exception. - - * DLD-FUNCTIONS/dispatch.cc: Comment out troublesome tests. - - * DLD-FUNCTIONS/eigs.cc: Increase tolerance to 1e-11 on all tests. - - * lex.l (lexical_feedback::looking_at_decl_list): New data member. - * lex.l (lexical_feedback::init): Initialize it. - (handle_identifier): Also force local variable if looking_at_decl_list. - * parse.y (parsing_decl_list): New non-terminal. - (declaration): Use it. Set lexer_flags.looking_at_decl_list to - false after parsing the declaration. - - 2009-02-09 Jaroslav Hajek - - * TEMPLATE-INST/Array-tc.cc: Reflect changes in octave_sort. - - 2009-02-08 John W. Eaton - - * octave.cc (initialize_pathsearch): Delete. - (octave_main): Don't call initialize_pathsearch. - - 2009-02-07 John W. Eaton - - * parse.y (eval_string): Use the one true evaluator. - - 2009-02-06 John W. Eaton - - * Makefile.in (INCLUDES): Include oct-hdf5.h in the list. - - * Makefile.in (oct-gperf.h): Don't use pipeline to process gperf - output. - - 2009-02-05 John W. Eaton - - * symtab.cc (symbol_table::fcn_info::cn_info_rep::xfind): - New function. - (symbol_table::fcn_info::cn_info_rep::find): - Use it to avoid recursive call. - - * graphics.cc (Fdrawnow): Return after errors. Don't strip - trailing directory separator from name used in call to file_stat. - - * DLD-FUNCTIONS/eigs.cc (Feigs): Avoid warnings about ambiguous - else. Style fixes. Return after errors. - - 2009-02-05 Jaroslav Hajek - - * oct-map.cc (Octave_map::index): Optimize. - - 2009-02-05 Jaroslav Hajek - - * OPERATORS/op-cm-cs.cc: Use scalar_value in scalar-to-matrix - indexed assignments. - * OPERATORS/op-fcm-fcs.cc: Ditto. - * OPERATORS/op-fm-fs.cc: Ditto. - * OPERATORS/op-m-s.cc: Ditto. - * OPERATORS/op-int.h (OCTAVE_MS_INT_ASSIGN_OPS): Use homogeneous - integer scalar-to-matrix assignment. - (OCTAVE_MM_INT_ASSIGN_OPS): Use homogeneous integer matrix-to-matrix - assignment. - - * Cell.h (Cell::index): Remove direct idx_vector overloads. - (Cell::assign): Remove direct idx_vector overloads. - (Cell::delete_elements): Remove direct idx_vector overloads. - * Cell.cc (Cell::index (const octave_value_list&)): Call - ArrayN::index. - - * oct-map.h (Octave_map::index): Remove direct idx_vector overloads. - * oct-map.cc (Octave_map::index): Ditto. - * ov-base-mat.cc (octave_base_mat::do_index_op): Optimize scalar - indexing case. - (octave_base_mat::assign (const octave_value_list&, const MT&)): - Specialize variable argument number. - (octave_base_mat::assign (const octave_value_list&, const - typename MT::element_type&)): - New method overload with optimized scalar indexing case. - - * ov-cell.cc (octave_base_matrix::do_index_op, - octave_base_matrix::assign, - octave_base_matrix::delete_elements): Specialize. - (octave_cell::assign (const_octave_value_list, const octave_value&): - Delete method. - * ov-cell.h: Reflect change. - - * ov-cx-mat.cc (octave_complex_matrix::assign): Delete overloads. - * ov-cx-mat.h: Reflect changes. - * ov-flt-cx-mat.cc (octave_float_complex_matrix::assign): Delete overloads. - * ov-flt-cx-mat.h: Reflect changes. - * ov-list.cc (octave_list::do_index_op): Simplify. - * ov-struct.cc (octave_struct::do_index_op): Simplify. - * pt-eval.cc (tree_evaluator::visit_simple_for_command): Optimize - traversing a row vector. - - 2009-02-05 John W. Eaton - - * variables.cc (Vignore_function_time_stamp): - Eliminate unused static variable. - - * debug.cc (get_file_line): Override default precedence in logical - expression. - - * ov-null-mat.cc (default_null_str_numeric_conversion_function, - default_null_sq_str_numeric_conversion_function, - default_null_matrix_numeric_conversion_function): - Avoid unused variable warning. - - * ov-flt-re-diag.cc (octave_float_diag_matrix::save_binary): - Avoid unused parameter warning. - * pt-eval.cc (tree_evaluator::visit_if_clause): Likewise. - * ov-typeinfo.cc (octave_value_typeinfo::do_register_type): Likewise. - * ov-base.cc (octave_base_value::subsref (const std::string&, - const std::list&, bool): Likewise. - * ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::save_binary): - Likewise. - - * oct-hdf5.h: New file. - * ls-hdf5.cc, ov-base.h, ov.h: Include oct-hdf5.h instead of hdf5.h. - * ls-hdf5.h: Include oct-hdf5.h. - * load-save.cc: Include ls-hdf5.h instead of hdf5.h. - * ov-base-sparse.cc, load-save.cc: - Don't protect #include "ls-hdf5.h" with #ifdef. - - 2009-02-04 Kai Habel - - * gl-render.cc (opengl_renderer::draw (surface::properties)): - Normalize surface normals. Correct calculation of diffuse lighting. - * gl-render.cc (opengl_renderer::draw (patch::properties)): - Correct calculation of diffuse lighting. - - 2009-02-04 John W. Eaton - - * help.cc (do_which): If NAME is not in the symbol table, look for - a function file in the load path. - (raw_help_from_file): Unwind-protect and set reading_script_file. - - * pt-loop.h, pt-loop.cc (evaluating_looping_command): - Delete global variable and all uses. - * parse.y, parse.h (evaluating_function_body): Delete global - variable and all uses. - (make_break_command, make_continue_command, make_return_command): - Use tree_evaluator::in_fcn_or_script_body and - tree_evaluator::in_loop_command instead of - evaluating_function_body and evaluating_looping_command. - - * pt-eval.h (tree_evaluator::in_function_or_script_body): - Delete member variable and all uses. - (tree_evaluator::reset): Delete function and all uses. - - * pt-eval.cc, pt-eval.h (tree_evaluator::in_fcn_or_script_body, - tree_evaluator::in_loop_command): New static variables. - (tree_evaluator::visit_simple_for_command, - tree_evaluator::visit_complex_for_command, - tree_evaluator::visit_while_command, - tree_evaluator::visit_do_until_command): Unwind-protect and set - tree_evaluator::in_loop_command instead of - evaluating_looping_command. - (tree_evaluator::visit_statement): Only call echo_code if - evaluating function or script and (Vecho_executing_commands & - ECHO_FUNCTIONS). Use tree_evaluator::in_fcn_or_script_body - instead of evaluating_function_body. - - * ov-usr-fcn.cc (octave_user_script::do_multi_index_op): - octave_user_function::do_multi_index_op): Unwind-protect and set - tree_evaluator::in_fcn_or_script_body. - - * pt-stmt.cc, pt-stmt.h (tree_statement::echo_code): - Rename from maybe_echo_code. Simplify. - - 2009-02-04 Jaroslav Hajek - - * pt-loop.h (tree_simple_for_command::do_for_loop_once, - tree_complex_for_command::do_for_loop_once): Remove obsolete decls. - * pt-loop.cc (quit_loop_now): Remove obsolete method. - * pt-eval.cc (DO_ND_LOOP): Delete macro. - (tree_evaluator::visit_simple_for_command): Use the generic - do_index_op for iterating matrices. - - 2009-02-04 John W. Eaton - - New evaluator and debugger derived from tree-walker class. - - * pt-eval.h, pt-eval.cc: New files. Parse tree evaluator code - adapted from eval member functions in classes derived from - tree_command. - * Makefile.in (PT_INCLUDES, PT_SRC): Add them to the lists - - * pt-cmd.cc (tree_function_def::eval): Delete. - * pt-cmd.h: Delete decl. - (tree_command::eval): Delete pure virtual function. - (tree_no_op_command::eval): Delete. - (tree_function_def::function): Return octave_value, instead of - pointer to octave_function. Change all uses. - - * pt-except.cc (do_catch_code, tree_try_catch_command::eval, - do_unwind_protect_cleanup_code, - tree_unwind_protect_command::eval): Delete. - * pt-except.h: Delete decls. - - * pt-jump.cc (tree_break_command::eval, tree_return_command::eval, - tree_continue_command::eval): Delete. - * pt-jump.h: Delete decls. - - * pt-loop.cc (DO_ND_LOOP): Delete macro. - (tree_while_command::eval, tree_do_until_command::eval, - tree_simple_for_command::do_for_loop_once, - tree_simple_for_command::eval, - tree_complex_for_command::do_for_loop_once, - tree_complex_for_command::eval): - * pt-loop.h: Delete decls. - - * pt-select.cc (tree_if_clause::eval, tree_if_command_list::eval, - tree_if_command::eval, tree_switch_case::eval, - tree_switch_case_list::eval, tree_switch_command::eval): Delete. - * pt-select.h: Delete decls. - (class tree_if_clause, class tree_switch_case): Derive from tree. - Handle line and column in constructors. - - * pt-stmt.cc (tree_statement::eval): Delete - * pt-stmt.h: Delete decl. - - * pt-stmt.cc, pt-stmt.h (tree_statement::is_command, - tree_statement::is_expression, tree_statement::line, - tree_statement::column): Now const. - - * pt-stmt.cc (tree_statement::set_print_flag, - tree_statement::is_end_of_fcn_or_script): New functions. - * pt-stmt.h: Provide decl. - (set_breakpoint, delete_breakpoint, is_breakpoint): New function. - (bp): New member variable. - (print_result): Delete member variable. - (tree_statement_list::anon_function_body): New member variable. - (tree_statement_list::mark_as_anon_function_body, - tree_statement_list::is_anon_function_body, - tree_statement_list::is_script_body): New functions. - - * pt-decl.cc (tree_decl_init_list::eval, - tree_decl_command::accept, tree_global_command::do_init, - tree_global_command::eval, tree_static_command::do_init, - tree_static_command::eval): Delete. - * pt-decl.h: Delete decls. - (tree_decl_elt::eval_fcn): Delete typedef. - - * pt-decl.cc (tree_global_command::accept, - tree_static_command::accept): New functions. - - * pt-stmt.cc (tree_statement::print_result): Move here from - pt-stmt.h. Return true if expr is printable. - - * ov-base.cc (Vsilent_functions): Delete. - (octave_base_value::print_with_name): Don't check - evaluating_function_body && Vsilent_functions here. - * ov-class.cc (octave_class::print_with_name): Likewise. - * ov-base.h (Vsilent_functions): Delete decl. - * pt-eval.cc (Fsilent_functions): Move here from ov-base.cc. - (Vsilent_functions): New static variable. - - * sighandlers.cc (user_abort): Set tree_evaluator::debug_mode here. - - * pt.h (tree::bp): Rename from tree::break_point. - (tree::set_breakpoint, tree::delete_breakpoint, tree::is_breakpoint): - No longer virtual. - - * input.cc (get_debug_input): Use current_evaluator and - tree-walker to evaluate command. - * ov-usr-fcn.cc (octave_user_script::do_multi_index_op): Likewise. - * toplev.cc (main_loop): Likewise. - * parse.y (eval_string): - - * input.h, input.cc (Vdebugging_current_line): Delete. - (get_debug_input): Use tree_evaluator::debug_line instead of - Vdebugging_current_line. - - * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): - Handle inline functions and anonymous functions as single - expressions. - * parse.y (eval_string): Likewise. - - * parse.y (make_do_until_command): Rename first argument from - do_tok to until_tok. - (loop_command): Pass UNTIL token instead of DO token to - make_do_until_command. - (make_elseif_clause): New arg, elseif_tok. Pass line and column - info to tree_if_clause constructor. - (elseif_clause): Pass ELSEIF token to make_elseif_clause. - (make_switch_case): New arg, case_tok. Pass line and column info - to tree_switch_case constructor. - (switch_case): Pass CASE token to make_switch_case. - (make_script): New arg end_script. Append it to cmds. - (script): Create no-op command for end of script and pass it to - make_script. - (start_function): New arg, end_function. Append it to body. - (function2): Pass end_function to start_function. - (make_end): New function. - (function_end): Declare as tree_statement_type. - Create no-op command for end of script. - (make_anon_fcn_handle): Mark body as anonymous function. - (set_stmt_print_flag): Set print flag for all separator types - - * parse.y (fold (tree_binary_expression*), - fold (tree_unary_expression *), finish_colon_expression, - finish_matrix): Call rvalue1 instead of rvalue. - Stash line number in new tree_constant object. - - * debug.h (bp_table::have_breakpoints): New static function. - (bp_table::do_have_breakpoints): New member function. - * debug.cc (bp_table::do_add_breakpoint, - bp_table::do_remove_breakpoint, - bp_table::do_remove_all_breakpoints_in_file, - bp_table::do_remove_all_breakpoints): Call - bp_table::have_breakpoints to set tree_evaluator::debug_mode. - (Fdbnext): Delete function. Alias to dbstep. - (Fdbquit, Fdbcont): Set tree_evaluator::dbstep_flag to zero. - (Fdbstep): Rewrite to use tree_evaluator::dbstep_flag instead of - tree::break_next, tree::last_line, tree::break_function, and - tree::last_break_function. - (Fdbwhere): Use tree_evaluator::debug_line and - tree_evaluator::debug_column to get current line and column info. - Don't print column if it is less than zero. - * pt.cc, pt.h (tree::break_next, tree::last_line, - tree::last_break_function, tree::break_function, - tree::break_statement): Delete. - - * pt-bp.cc (tree_breakpoint::visit_global_command, - tree_breakpoint::visit_static_command, - tree_breakpoint::take_action (tree_statement&)): New functions. - * pt-bp.h: Provide decls. - - * pt-bp.h (tree_walker::visit_global_command, - tree_walker::visit_static_command): New pure virtual functions. - (tree_walker::visit_decl_command): Delete. - - * pt-bp.cc (tree_breakpoint::visit_decl_command): Delete. - * pt-bp.h: Delete decl. - (MAYBE_DO_BREAKPOINT): Delete macro and all uses. - - * pt-bp.cc (tree_breakpoint::visit_no_op_command): Do nothing. - (tree_breakpoint::visit_argument_list, - tree_breakpoint::visit_binary_expression, - tree_breakpoint::visit_colon_expression, - tree_breakpoint::visit_decl_elt, - tree_breakpoint::visit_decl_init_list, - tree_breakpoint::visit_octave_user_script, - tree_breakpoint::visit_octave_user_function, - tree_breakpoint::visit_octave_user_function_header, - tree_breakpoint::visit_octave_user_function_trailer, - tree_breakpoint::visit_identifier, - tree_breakpoint::visit_index_expression, - tree_breakpoint::visit_matrix, tree_breakpoint::visit_cell, - tree_breakpoint::visit_multi_assignment, - tree_breakpoint::visit_anon_fcn_handle, - tree_breakpoint::visit_constant, - tree_breakpoint::visit_fcn_handle, - tree_breakpoint::visit_parameter_list, - tree_breakpoint::visit_postfix_expression, - tree_breakpoint::visit_prefix_expression, - tree_breakpoint::visit_return_list, - tree_breakpoint::visit_simple_assignment): Call panic_impossible - since breakpoints aren't set on expressions. - (tree_breakpoint::visit_if_clause): Fold into visit_if_command_list. - (tree_breakpoint::visit_switch_case): Fold into visit_switch_case_list. - (tree_breakpoint::visit_try_catch_command, - tree_breakpoint::visit_unwind_protect_command): - Don't set breakpoint on command itself, the the statements it - contains. - (tree_breakpoint::visit_global_command, - tree_breakpoint::visit_static_command): Call do_decl_command to do - actual work. - (tree_breakpoint::visit_while_command, - tree_breakpoint::visit_do_until_command, - tree_breakpoint::visit_simple_for_command, - tree_breakpoint::visit_complex_for_command, - tree_breakpoint::visit_statement, - tree_breakpoint::visit_statement_list, - tree_breakpoint::visit_switch_case_list): Set breakpoints at - appropriate places. - - * pt-pr-code.h, pt-pr-code.cc (tree_print_code::visit_global_command, - tree_print_code::visit_static_command, - tree_print_code::do_decl_command): New functions. - (tree_print_code::visit_decl_command): Delete. - - * pt-check.h, pt-check.cc (tree_checker::visit_global_command, - tree_checker::visit_static_command, tree_checker::do_decl_command): - New functions. - (tree_checker::visit_decl_command): Delete. - - * pt-select.cc (tree_switch_case::label_matches): Call rvalue1 - instead of rvalue. - - * pt-exp.h, pt-exp.cc (tree_expression::rvalue1): New function. - (tree_expression::rvalue (void)): Delete. - (tree_expression::is_logically_true): Call rvalue1 instead of rvalue. - - * pt-fcn-handle.h, pt-fcn-handle.cc (tree_fcn_handle::rvalue1, - tree_anon_fcn_handle::rvalue1): New functions. - (tree_fcn_handle:rvalue (void), - tree_anon_fcn_handle::rvalue1 (void)): Delete. - (tree_fcn_handle::rvalue (int), tree_anon_fcn_handle_rvalue (int)): - Call rvalue1 instead of rvalue. - - * pt-idx.h, pt-idx.cc (tree_index_expression::rvalue1): New function. - (tree_index_expression::rvalue (void)): Delete. - (tree_index_expression::get_struct_index, - tree_index_expression::rvalue (int)): Call rvalue1 instead of rvalue. - - * pt-mat.h, pt-mat.cc (tree_matrix::rvalue1): New function. - (tree_matrix::rvalue (void)): Delete. - (tm_row_const::tm_row_const_rep::init, - tree_matrix::rvalue (int)): Call rvalue1 instead of rvalue. - - * pt-misc.cc (tree_parameter_list::convert_to_const_vector): - Call rvalue1 instead of rvalue. - * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): - Likewise. - - * pt-unop.h, pt-unop.cc (tree_prefix_expression::rvalue1, - tree_postfix_expression::rvalue1): New functions. - (tree_prefix_expression::rvalue (void), - tree_postfix_expression::rvalue (void)): Delete. - (tree_prefix_expression::rvalue (int), - tree_postfix_expression::rvalue (int)): - Call rvalue1 instead of rvalue. - - * pt-id.h, pt-id.cc (tree_identifier::rvalue1): New function. - (tree_identifier::rvalue (void)): Delete. - - * pt-assign.h, pt-assign.cc (tree_simple_assignment::rvalue1, - tree_multi_assignment::rvalue1): New functions. - (tree_simple_assignment::rvalue (void), - tree_multi_assignment::rvalue (void): Delete. - (tree_simple_assignment::rvalue (int)): - Call rvalue1 instead of rvalue. - - * pt-binop.h, pt-binop.cc (tree_binary_expression::rvalue1, - tree_boolean_expression::rvalue1): New functions. - (tree_binary_expression::rvalue (void), - tree_boolean_expression::rvalue (void)): Delete. - (tree_binary_expression::rvalue (int), - tree_boolean_expression::rvalue (int)): - Call rvalue1 instead of rvalue. - - * pt-cbinop.h, pt-cbinop.cc - (tree_compound_binary_expression::rvalue1): New function. - (tree_compound_binary_expression::rvalue (void)): Delete. - - * pt-cell.h, pt-cell.cc (tree_cell::rvalue1): New function. - (tree_cell::rvalue (void)): Delete. - (tree_cell::rvalue (int)): Call rvalue1 instead of rvalue. - - * pt-colon.h, pt-colon.cc (tree_colon_expression::rvalue1): - New function. - (tree_colon_expression::rvalue (void)): Delete. - (tree_colon_expression::rvalue (int)): - Call rvalue1 instead of rvalue. - - * pt-const.h, pt-const.cc (tree_constant::rvalue1): New function. - (tree_constant::rvalue (void)): Delete. - (tree_constant::rvalue (int)): Call rvalue1 instead of rvalue. - - * pt-decl.h, pt-decl.cc (tree_decl_elt::ravlue1): New function. - (tree_decl_elt::ravlue (void)): Delete. - (tree_decl_elt::eval): Call rvalue1 instead of rvalue. - - 2009-02-03 Jaroslav Hajek - - * TEMPLATE-INST/Array-tc.cc: Replace vec_index by pointers. - - 2009-02-02 Jaroslav Hajek - - * ov-re-mat.cc (octave_matrix::abs, octave_matrix::real, - octave_matrix::imag, octave_matrix::conj): Use special code. - * ov-flt-re-mat.cc (octave_float_matrix::abs, octave_float_matrix::real, - octave_float_matrix::imag, octave_float_matrix::conj): Use special code. - * ov-cx-mat.cc (octave_complex_matrix::abs, octave_complex_matrix::real, - octave_complex_matrix::imag, octave_complex_matrix::conj): Use special code. - * ov-flt-cx-mat.cc (octave_float_complex_matrix::abs, octave_float_complex_matrix::real, - octave_float_complex_matrix::imag, octave_float_complex_matrix::conj): Use special code. - - 2009-01-30 Jaroslav Hajek - - * DLD-FUNCTIONS/lookup.cc (Flookup): Add missing check. - - 2009-01-29 John W. Eaton - - * pt-stmt.cc (tree_statement::eval): Check - in_function_or_script_body instead of symbol_table::at_top_level () - to decide whether to call octave_call_stack::set_statement. - - * graphics.cc (properties::set_defaults): Also set - horizontalalignment, verticalalignmnt, and rotation properties for - new label objects here. - - * ov-base-scalar.cc (octave_base_scalar::is_true (void) const): - Error if scalar is NaN. - * ov-base-mat.cc (octave_base_matrix::is_true (void) const): - Likewise, if any element of matrix is NaN. - * ov-cell.cc (octave_cell::is_true): New function. - * Cell.h (Cell::any_element_is_nan): New function. - - 2009-01-29 Jaroslav Hajek - - * pr-output.cc: - (void octave_print_internal (..., const DiagMatrix& m,...), - (void octave_print_internal (..., const ComplexDiagMatrix& m,...), - (void octave_print_internal (..., const FloatDiagMatrix& m,...), - (void octave_print_internal (..., const FloatComplexDiagMatrix& m,...)): - New functions. - * pr-output.h: Declare them. - * ov-base-diag.cc (octave_base_diag::print_raw): Call - octave_print_internal. - - 2009-01-28 John W. Eaton - - * Makefile.in (install, uninstall): Handle SHLLIBPRE and SHLBINPRE - library prefixes. From Marco Atzeri . - - 2008-01-28 David Bateman - - * DLD-FUNCTIONS/regexp.cc (octregexp_list): Don't break for zero - length match, but rather advance the index by one character and - try again. - - 2009-01-28 Jaroslav Hajek - - * DLD-FUNCTIONS/lookup.cc (Flookup): Fix doc string. - - 2009-01-27 John W. Eaton - - * load-path.cc (Fcommand_line_path): Rename from Fcommandlinepath. - - 2009-01-27 Ben Abbott - - * graphics.cc (convert_position): Handle character units. - (default_axes_tick, default_figure_papersize, - default_figure_paperposition): New functions. - * graphics.h.in (class figure::properties): Use them to - initialize papersize, paperposition, xtick, ytick, and ztick - properties. - - 2009-01-27 Jaroslav Hajek - - * DLD-FUNCTIONS/qr.cc (Fqr): Treat empty matrices correctly. - - 2009-01-26 Thomas Treichl - - * display.cc (display_info::init): Use double instead of CGFloat. - Use HAVE_FRAMEWORK_CARBON instead of OCTAVE_USE_OS_X_API. - - 2009-01-26 John W. Eaton - - * load-path.cc (load_path::do_find_fcn): Handle @foo/bar. - - 2009-01-24 Jaroslav Hajek - - * pt-cell.cc (tree_cell::rvalue): Optimize the single row case. - - 2009-01-24 Jaroslav Hajek - - * ov-struct.cc (octave_struct::subsasgn): Reshape cs-list on rhs - according to the index expression. - * ov-cell.cc (octave_cell::subsasgn): Ditto. - - 2008-12-25 Ben Abbott - - * load-path.cc (Fcommandlinepath): New function. - * load-path.h (load_path::get_command_line_path, - load_path::do_get_command_line_path): New functions. - - 2009-01-24 Ben Abbott - - * DLD-FUNCTIONS/eigs.cc: eigs.cc: skip tests if ARPACK is missing. - - 2009-01-25 Sᅵren Hauberg - - * help.cc (do_get_help_text, raw_help_from_symbol_table): new output to - flag the a function is found but not documented. - - 2009-01-25 Sᅵren Hauberg - - * help.cc (raw_help_from_file): No longer search for files called - 'Contents.m', as this is moved to 'script/help.m'. - - - 2009-01-23 John W. Eaton - - * toplev.cc (octave_call_stack::do_goto_caller_frame): - Also allow caller frame to be base frame, not just user code. - - 2009-01-23 Jaroslav Hajek - - * gripes.cc (gripe_indexed_cs_list, gripe_invalid_inquiry_subscript): - New functions. - * gripes.h: Declare them. - * pt-idx.cc: Remove definitions of the above funcs. - * ov-cell.cc (octave_cell::subsref): Declare constants as const. - (octave_cell::subsasgn): Remove dead branch, declare constants as const. - (octave_cell::list_value): Optimize. - * ov-struct.cc - (octave_struct::subsref): Declare constants as const. - (octave_struct::subsasgn): Remove dead branch, declare constants as const. - * ov-cs-list.cc (octave_cs_list::octave_cs_list (const Cell&)): - Optimize. - * oct-obj.cc (octave_value_list::octave_value_list (const - std::list&)): New constructor. - * oct-obj.h: Declare it. - * pt-arg-list.cc (convert_to_const_vector): Optimize. - * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find): Use const - reference to avoid redundant copy. - * ov-usr-fcn.cc (octave_user_function::bind_automatic_vars): Optimize. - (octave_user_function::octave_all_va_args): Optimize. - - 2009-01-22 Jaroslav Hajek - - * Cell.h (Cell::Cell (octave_value_list)): Only declare. - (Cell::index (*)): Change resize_ok type to bool. - * Cell.cc (Cell::Cell (octave_value_list)): Redefine. - * oct-obj.h, oct-obj.cc: Change octave_value_list::data to - Cell variable, reflect changes. - - 2009-01-22 John W. Eaton - - * help.cc (do_which (std::ostream&, const std::string&), Fwhich): - Delete. - (do_which (const std::string&, std::string&), F__which__): - New functions. - * do_which (const std::string&): - Call do_which (const std::string&, std::string&) to do the work. - - 2009-01-22 Sᅵren Hauberg - - * defun-int.h (print_usage): No longer mark as deprecated. - * defun.cc (print_usage): Simply call feval to execute print_usage.m. - * help.cc (additional_help_message, display_names_from_help_list, - display_symtab_names, simple_help, try_info, help_from_info, - display_help_text, display_usage_text, raw_help_from_list, - help_from_list, help_from_symbol_table, help_from_file, - builtin_help, Fhelp, display_file, do_type, Ftype, - first_help_sentence, print_lookfor, Flookfor): Delete. - (looks_like_html, raw_help_from_map, raw_help, do_get_help_text, - F__operators__, F__keywords__, F__builtins__, - file_is_in_dir, F__list_functions__): New functions. - (pair_type, map_iter): New typedefs. - (operators, keywords): Use pair_type for elements of list. - (names): Use map for (keyword, doc) lists. - (make_name_list): Sprinkle with const. - * help.h (display_help_text, display_usage_text, - additional_help_message): Delete decls. - - 2009-01-22 John W. Eaton - - * toplev.cc (octave_config_info): Check OCTAVEUSE_OS_X_API instead - of __APPLE__ && __MACH__. - - * display.cc (display_info::init): Get info for Windows and OS X - systems. - - 2009-01-22 Jaroslav Hajek - - * pt-idx.cc (tree_index_expression::lvalue): Correct tmpi when seeing - a plain struct component. - * ov-struct.cc (octave_struct::subsasgn): Use proper type substr in - empty_conv. - - 2009-01-22 Jaroslav Hajek - - * DLD-FUNCTIONS/qr.cc: Remove HAVE_QRUPDATE check. - * DLD-FUNCTIONS/chol.cc: Ditto. - - 2009-01-21 John W. Eaton - - * Makefile.in (display.o): Add X11_INCFLAGS to CPPFLAGS. - (octave$(EXEEXT)): Link with X11_LIBS. - - * display.h, display.cc: New files. - * graphics.cc (default_screendepth, default_screensize, - default_screenpixelsperinch): New functions. - * graphics.h.in (class root_figure::properties): New property, - screendepth. Use default_screensize to initialize screensize - property. Use default_screenpixelsperinch to initialize - screenpixelsperinch property. - - * graphics.cc (properties::init): Set default xlabel, ylabel, - zlabel, and title properties that differ from default text - properties. - - 2009-01-21 Jaroslav Hajek - - * OPERATORS/op-range.cc: Define & register range-scalar ops. - - 2009-01-21 Jaroslav Hajek - - * ov.h (octave_value::subsref (..., bool auto_add)): New method. - (octave_value::next_subsref (bool auto_add, ...)): New method. - * ov.cc (octave_value::next_subsref (bool auto_add, ...)): New method. - * ov-base.h (octave_base_value::subsref (..., bool auto_add)): New - virtual method. - * ov-base.cc (octave_base_value::subsref (..., bool auto_add)): New - virtual method. - * ov-cell.cc (octave_cell::subsref (..., bool auto_add)): New virtual - method. - * ov-cell.h (octave_cell::subsref (..., bool auto_add)): Declare it. - * ov-struct.cc (octave_struct::subsref (..., bool auto_add)): New - virtual method. - (octave_struct::subsref (const std::string& type, const - std::list& idx)): Do not allow resizing. - * ov-struct.h (octave_struct::subsref (..., bool auto_add)): Declare - it. - * ov-struct.cc (octave_struct::dotref (..., bool auto_add)): New - virtual method. - * ov-struct.h (octave_struct::dotref (..., bool auto_add)): Declare it. - * pt-idx.cc (tree_index_expression::rvalue): Do not reevaluate already - evaluated part of the index chain. - (tree_index_expression::rvalue): Do not reevaluate already evaluated - part of the index chain. Do not actually perform trailing indexing. - Do not allow indexing cs-lists. - - 2009-01-20 John W. Eaton - - * file-io.cc (Ffstat): New function. - - 2009-01-17 Jaroslav Hajek - - * DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete, Fqrshift): - Reflect changes in liboctave. - * DLD-FUNCTIONS/chol.cc (Fcholupdate, Fcholinsert): - Reflect changes in liboctave. - - 2009-01-19 Jaroslav Hajek - - * ov.h (octave_value::make_unique (int)): New method. - * oct-obj.h (octave_value_list::octave_value_list (const Cell&)): New - constructor. - * ov-cell.cc (octave_cell::subsasgn): Allow composed {} indexing - in multi-assignments. Optimize. - * ov-struct.cc (octave_struct::subsasgn): Correct composed {} indexing - in multi-assignments. Optimize & fix bugs. - * pt-idx.cc (tree_index_expression::lvalue): Rewrite to allow - specifying cs-list anywhere in index chain, be more robust. - - 2009-01-19 John W. Eaton - - * lex.l (grab_comment_block): If not reading input from a file, - bail out at first newline inside a comment. - - * lex.l (lexer_debug_flag): New static variable. - (F__lexer_debug_flag__): New function. - (LEXER_DEBUG): New macro. Use it in all patterns. - (DISPLAY_TOK_AND_RETURN): Also display token if lexer_debug_flag - is set. - (process_comment): Display comment if lexer_debug_flag is set. - (display_character, display_state, lexer_debug): New static functions. - (xunput): Display character if lexer_debug_flag is set. - - 2009-01-17 Jaroslav Hajek - - * ov.h: Describe usage of storable_value and make_storable_value. - * ov.cc: Remove FIXME comment. - - 2009-01-15 John W. Eaton - - * data.cc (Freshape): Include mismatched dimensions in error message. - From Robert Millan . - - 2009-01-14 Jaroslav Hajek - - * ov.cc (octave_value::maybe_economize): New method. - (octave_value::non_null_value): rename to storable_value. - (octave_value::make_non_null_value): rename to make_storable_value. - * ov-base.h (octave_base_value::maybe_economize): New method. - * ov-base-mat.h (octave_base_mat::maybe_economize): New override. - * oct-obj.cc (octave_value_list::normalize_null_values): - Rename to make_storable_values, use make_storable_value. - * oct-obj.h: Ditto. - * ov-builtin.cc: non_null_value -> storable_value. - * ov-cell.cc: Ditto. - * ov-struct.cc: Ditto. - * pt-decl.h: Ditto. - - 2009-01-15 Sᅵren Hauberg - - * DLD-FUNCTIONS/__magick_read__.cc (encode_uint_image): - Initialize bitdepth. - - 2009-01-14 Sᅵren Hauberg - - * DLD-FUNCTIONS/betainc.cc, DLD-FUNCTIONS/chol.cc, - DLD-FUNCTIONS/daspk.cc, DLD-FUNCTIONS/dasrt.cc, - DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/filter.cc, - DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/gcd.cc, - DLD-FUNCTIONS/givens.cc, DLD-FUNCTIONS/hess.cc, - DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/qr.cc, DLD-FUNCTIONS/qz.cc, - DLD-FUNCTIONS/schur.cc, DLD-FUNCTIONS/svd.cc, - DLD-FUNCTIONS/syl.cc, data.cc, mappers.cc: - Use ifnottex instead of ifinfo. - - 2009-01-14 John W. Eaton - - * load-path.cc (load_path::do_set): Call do_clear after disabling - add_hook. - - 2009-01-13 Jaroslav Hajek - - * dirfns.cc (Freadddir): qsort -> sort. - * graphics.cc (maybe_set_children): Ditto. - * help.cc (simple_help): Ditto. - * input.cc (generate_possible_completions): Ditto. - * oct_map.cc (keys_ok): Ditto. - * ov-fcn-inline.cc (Finline): Ditto. - * variables.cc (Fisrawcommand): Ditto. - - 2009-01-12 John W. Eaton - - * octave.cc (maximum_braindamage): Set confirm_recursive_rmdir to - false. - - * strfns.cc (Fstrcmp, Fstrncmp): Simplify by initializing all - elements of output to false with constructor argument. - - 2009-01-12 Thorsten Meyer - - * strfns.cc (Fstrncmp): New test. - - 2009-01-12 John W. Eaton - - * pt-stmt.h (tree_statement::is_null_statement): New function. - * parse.y (set_stmt_print_flag): Return list. Remove trailing - null statements from list. - (list, simple_list): Simplify action. - (make_statement, make_statement_list, append_statement_list): - Always create statements and them to the list. - - * base-list.h (octave_base_list::push_front, - octave_base_list::push_back, octave_base_list::pop_front, - octave_base_list::pop_back): New functions. - - * DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete, Fqrshift): - Require args to be numeric, not necessarily matrix objects. - - 2009-01-12 Ben Abbott - - * graphics.h.in (text::properties::fontunits): Fix typo in list of - possible values. - - 2009-01-12 John W. Eaton - - * strfns.cc (Fstrvcat, Fchar): Use queue to avoid duplicate calls - to all_strings. - - 2009-01-12 Thorsten Meyer - - * strfns.cc (Fstrvcap): New function. - - 2008-11-29 Thorsten Meyer - - * strfns.cc (Fchar, Fischar, Fstrncmp, Flist_in_columns): - Improve documentation strings. Add examples and tests. - - 2009-01-12 Jaroslav Hajek - - * ov-perm.cc (octave_perm_matrix::do_index_op): Return shallow copy - when indexed by (:,:). - * ov-base-mat.cc (octave_base_diag::do_index_op): Return shallow copy - when indexed by (:,:). Optimize indexing equivalent to resizing. - * data.cc: Fix tests. - * mappers.cc: Fix tests. - - 2009-01-12 Jaroslav Hajek - - * ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h, ov-base-sparse.h, - ov-base.cc, ov-base.h, ov-perm.h, ov-range.h, ov.h: Add full_value - methods to octave_value, octave_base_value and its relevant - subclasses. - * data.cc (Ffull): New DEFUN. - * DLD-FUNCTIONS/sparse.cc (Ffull): move to data.cc. - 2009-01-11 Jaroslav Hajek - - * ov.h (octave_value::is_copy_of): New method. - * ov-struct.cc (numeric_conv): Add output parameter orig. - (octave_struct::subsasgn): Temporarily erase duplicate lhs value prior - to assignment. - - 2009-01-11 Jaroslav Hajek - - * oct-obj.cc (octave_value_list::all_scalars): New method. - * oct-obj.h: Declare it. - * ov-cell.cc (octave_cell::subsasgn): Disable assigning - to non-scalar {}-indexed cell, unless in a multi-assignment. - - 2009-01-10 Jaroslav Hajek - - * DLD-FUNCTIONS/sparse.cc (Ffull): Convert diagonal & permutation - matrices, leave other classes untouched. - - 2009-01-09 Jaroslav Hajek - - * OPERATORS/op-cdm-cdm.cc: Install missing widening op. - * OPERATORS/op-dm-dm.cc: Ditto. - * OPERATORS/op-fcdm-fcdm.cc: Ditto. - * OPERATORS/op-fdm-fdm.cc: Ditto. - * OPERATORS/op-pm-pm.cc: Ditto. - * OPERATORS/op-fpm-fpm.cc: Ditto. - - 2009-01-09 Jaroslav Hajek - - * ov-cell.cc (octave_cell::subsasgn): Put erased copy back after - make_unique has been called. - - 2009-01-09 Kai Habel - - * graphics.cc: Calculate normals for surface boundaries, use - more neighboring points to calculate interior normals - - 2009-01-09 John W. Eaton - - * input.cc (get_user_input (void)): Don't increment input_line_number. - * lex.l (xunput): New function. Use it in place of yyunput - anywhere a newline character may be put back on the input stream. - Increment input_line_number in all rules that consume newlines - characters. - (text_yyinput): Increment input_line_number - (fixup_column_count): Increment input_line_number. - (prep_for_function): Set input_line_number to 1, not 0. - (reset_parser): Set input_line_number to current_command_number, - not current_command_number-1. - (flex_stream_reader::ungetc): Call xunput, not yyunput. - * parse.y (input_line_number): Initialize to 1, not 0. - (text_getc): Increment input_line_number correctly. - (stdio_stream_reader::ungetc): Decrement input_line_number if - putting back a newline character. - (parse_fcn_file): Set input_line_number to 1, not 0. - (eval_string): Unwind-protect input_line_number and - current_input_column. - - * parse.y (make_statement): New function. - (statement): Use it. - (make_statement_list, append_statement_list): New functions. - (simple_list1, list1): Use them. - - 2009-01-08 Jaroslav Hajek - - * ov-cell.cc (octave_cell::subsasgn): Erase duplicate lhs value - prior to assignment to avoid a redundant copy. - - 2008-12-26 Thorsten Meyer - - * mappers.cc (Ftoascii), mappers.cc (Ftolower), mappers.cc - (Ftoupper), DLD-FUNCTIONS/regexp.cc (Fregexp), - DLD-FUNCTIONS/regexp.cc (Fregexpi), DLD-FUNCTIONS/regexp.cc - (Fregexprep): Add references. - - 2008-12-27 Jaroslav Hajek - - * oct-obj.h, oct-obj.cc (octave_value_list::valid_scalar_indices): Remove. - * ov-base-diag.cc, ov-base-diag.h, ov-base-scalar.cc, ov-base.h, - ov-bool-mat.cc, ov-bool-mat.h, ov-bool-sparse.cc, ov-bool-sparse.h, - ov-bool.cc, ov-bool.h, ov-ch-mat.cc, ov-ch-mat.h, ov-colon.h, - ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, - ov-cx-sparse.cc, ov-cx-sparse.h, ov-float.cc, ov-float.h, - ov-flt-complex.cc, ov-flt-complex.h, ov-flt-cx-mat.cc, - ov-flt-cx-mat.h, ov-flt-re-mat.cc, ov-flt-re-mat.h, ov-intx.h, - ov-perm.cc, ov-perm.h, ov-range.h, ov-re-mat.cc, ov-re-mat.h, - ov-re-sparse.cc, ov-re-sparse.h, ov-scalar.cc, ov-scalar.h, - ov-str-mat.cc, ov-str-mat.h, ov.h: - Remove valid_as_scalar_index and valid_as_zero_index methods - from octave_value, octave_base_value and all of its subclasses. - - 2008-12-26 Francesco Potortì - - * data.cc (resize): Add cross reference to postpad. - - 2008-12-25 Jaroslav Hajek - - * load-save.h (load_save_format_type, load_save_format_options): New - enums. - (load_save_format): Convert to a class. - * load-save.cc (do_save(..., const octave_value&,...)): Use fmt.type - in switch. Use options of LS_MAT_ASCII. - (do_load, write_header): Use format.type in switch. - * ls-mat-ascii.h (save_mat_ascii_data): Add tabs option. - * ls-mat-ascii.cc (save_mat_ascii_data): Implement it. - - 2008-12-24 Ben Abbott - - * DLD-FUNCTIONS/chol.cc: Compare results to 0 in tests. - Delete spurious function calls in test block. - - 2008-12-24 John W. Eaton - - * DLD-FUNCTIONS/eigs.cc: Use "testif HAVE_ARPACK" to skip tests if - ARPACK is not available. - - * Makefile.in (DLD_XSRC): Add eigs.cc to the list. - - * load-save.cc (parse_save_options): Handle -double. - - 2008-12-23 David Bateman - - * DLD-FUNCTIONS/eigs.cc: New file. - * Makefile.in (DLD_XSRC): Add it here. - - 2008-12-22 David Bateman - - * DLD-FUNCTIONS/__voronoi__.cc (F__voronoi__): Resize AtInf array - before returning it. - - 2008-12-12 David Bateman - - * DLD-FUNCTIONS/chol.cc (Fcholinv): Add test. - - 2008-12-12 Jaroslav Hajek - - * ls-hdf5.cc (add_hdf5_data): Check for diagonal & permutation - matrices and convert them to full prior to saving. - - 2008-12-11 Jaroslav Hajek - - * ov-re-mat.cc (Fdouble): Handle diagonal & perm matrices. - * ov-flt-re-mat.cc (Fsingle): Handle diagonal & perm matrices. - - 2008-12-11 Jaroslav Hajek - - * ov-base-diag.cc (octave_base_diag::subsasgn): New method. - * ov-base-diag.h (octave_base_diag::subsasgn): Declare it. - (octave_base_diag::chk_valid_scalar): New method decl. - - * ov-re-diag.cc (octave_diag_matrix::chk_valid_scalar): New method - override. - * ov-re-diag.h: Declare it. - * ov-flt-re-diag.cc (octave_float_diag_matrix::chk_valid_scalar): New - method override. - * ov-flt-re-diag.h: Declare it. - * ov-cx-diag.cc (octave_complex_diag_matrix::chk_valid_scalar): New - method override. - * ov-cx-diag.h: Declare it. - * ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::chk_valid_scalar): - New method override. - * ov-flt-cx-diag.h: Declare it. - - 2008-12-10 Jaroslav Hajek - - * DLD-FUNCTIONS/expm.cc: Remove. - * Makefile.in: Update. - - 2008-12-10 Jaroslav Hajek - - * ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::empty_clone): Construct an - empty matrix instead of zero. - - 2008-12-07 Thorsten Meyer - - * mappers.cc (Ftolower): Make lower alias of tolower, add tests - * mappers.cc (Ftoupper): Make upper alias of toupper, add tests - - 2008-12-09 Jaroslav Hajek - - * DLD-FUNCTIONS/balance.cc (Fbalance): Exploit the new AEPBAL functionality. - - 2008-12-08 Jaroslav Hajek - - * xpow.cc ( xpow (const DiagMatrix& a, double b), - xpow (const DiagMatrix& a, const Complex& b), - xpow (const ComplexDiagMatrix& a, double b), - xpow (const ComplexDiagMatrix& a, const Complex& b), - xpow (const FloatDiagMatrix& a, float b), - xpow (const FloatDiagMatrix& a, const FloatComplex& b), - xpow (const FloatComplexDiagMatrix& a, float b), - xpow (const FloatComplexDiagMatrix& a, const FloatComplex& b)): - New methods. - * xpow.h: Declare them. - * OPERATORS/op-dms-template.cc: Support diagonal matrix ^ scalar. - - 2008-12-08 Jaroslav Hajek - - * ov-re-diag.cc (octave_diag_matrix::save_binary, - octave_diag_matrix::load_binary): New methods. - * ov-re-diag.h: Declare them. - * ov-flt-re-diag.cc (octave_float_diag_matrix::save_binary, - octave_float_diag_matrix::load_binary): New methods. - * ov-flt-re-diag.h: Declare them. - * ov-cx-diag.cc (octave_complex_diag_matrix::save_binary, - octave_complex_diag_matrix::load_binary): New methods. - * ov-cx-diag.h: Declare them. - * ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::save_binary, - octave_float_complex_diag_matrix::load_binary): New methods. - * ov-flt-cx-diag.h: Declare them. - * ov-perm.cc (octave_perm_matrix::save_binary, - octave_perm_matrix::load_binary): New methods. - * ov-perm.h: Declare them. - - 2008-12-06 Jaroslav Hajek - - * ov-fcn-handle.cc (octave_fcn_handle::load_binary): Call istream::get - rather than istream::read to supply null terminating character. - - 2008-10-29 Jaroslav Hajek - * file-io.cc, gl-render.cc, load-save.cc, ls-hdf5.cc, ls-mat4.cc, - ls-mat5.cc, ls-oct-binary.cc, mex.cc, oct.h, ov-base-int.cc, - ov-bool-mat.cc, ov-bool-sparse.cc, ov-cell.cc, ov-class.cc, - ov-cx-mat.cc, ov-cx-sparse.cc, ov-fcn-handle.cc, ov-fcn-inline.cc, - ov-flt-cx-mat.cc, ov-flt-re-mat.cc, ov-re-mat.cc, ov-re-sparse.cc, - ov-str-mat.cc, ov-struct.cc, toplev.cc, - DLD-FUNCTIONS/__lin_interpn__.cc, DLD-FUNCTIONS/amd.cc, - DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc, - DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/gcd.cc, - DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/regexp.cc, - DLD-FUNCTIONS/symbfact.cc, DLD-FUNCTIONS/symrcm.cc: - Include oct-locbuf.h. - - 2008-12-05 Jaroslav Hajek - - * ov-base-diag.cc (save_ascii, load_ascii): Save natively. - * ov-base-diag.h (load_ascii): Declare. - * ov-perm.cc (save_ascii, load_ascii): Save natively. - * ov-perm.h (load_ascii): Declare. - - 2008-12-04 Thorsten Meyer - - * strfns.cc (Fchar): Add test from str2mat.m - - 2008-12-04 Jaroslav Hajek - - * ov.h (octave_value::is_perm_matrix): New method. - * ov-base.h (octave_base_value::is_perm_matrix): New method. - * ov-perm.h (octave_perm_matrix::is_perm_matrix): New method. - * DLD-FUNCTIONS/inv.cc (Finv): Handle permutation matrices specially, - compute rcond for diagonal matrices. - * DLD-FUNCTIONS/det.cc (Fdet): Handle permutation & diagonal matrices - specially. - - 2008-12-03 Jaroslav Hajek - - * ov-perm.h: New source. - * ov-perm.cc: New source. - * ov-flt-perm.h: New source. - * ov-flt-perm.cc: New source. - * ov-base-diag.cc (octave_base_diag::do_index_op): - If subscripting an identity matrix by permutation(s), return a - permutation matrix object. - * ov.cc (octave_value::octave_value (const PermMatrix&)): New - constructor. - * ov.cc (octave_value::octave_value (const PermMatrix&)): Declare it. - * op-cm-pm.cc: New source. - * op-fcm-fpm.cc: New source. - * op-fm-fpm.cc: New source. - * op-fpm-fcm.cc: New source. - * op-fpm-fm.cc: New source. - * op-fpm-fpm.cc: New source. - * op-m-pm.cc: New source. - * op-pm-cm.cc: New source. - * op-pm-m.cc: New source. - * op-pm-pm.cc: New source. - * op-pm-template.cc: New source. - * Makefile.in: Include new sources. - * DLD-FUNCTIONS/qr.cc (Fqr): Reflect interface changes of QR classes. - - 2008-12-03 John W. Eaton - - * debug.cc (bp_table::do_get_breakpoint_list): Style fixes. - - 2008-12-01 Jaroslav Hajek - - * ov-base.h (octave_base_value::is_diag_matrix): New virtual method. - * ops.h (CONCAT2, CONCAT3): New macros. Use CONCAT macros instead of - direct token pasting to avoid disabling argument prescan. - * xdiv.cc, xdiv.h: Implement xdiv and xleftdiv overloads for diagonal - and mixed dense-diagonal operands. - - * ov-re-diag.h: New source. - * ov-re-diag.cc: New source. - * ov-flt-re-diag.h: New source. - * ov-flt-re-diag.cc: New source. - * ov-base-diag.h: New source. - * ov-base-diag.cc: New source. - * OPERATORS/op-m-dm.cc: New source. - * OPERATORS/op-m-cdm.cc: New source. - * OPERATORS/op-fm-fdm.cc: New source. - * OPERATORS/op-fm-fcdm.cc: New source. - * OPERATORS/op-fdm-fs.cc: New source. - * OPERATORS/op-fdm-fm.cc: New source. - * OPERATORS/op-fdm-fdm.cc: New source. - * OPERATORS/op-fdm-fcs.cc: New source. - * OPERATORS/op-fdm-fcm.cc: New source. - * OPERATORS/op-fdm-fcdm.cc: New source. - * OPERATORS/op-fcm-fdm.cc: New source. - * OPERATORS/op-fcm-fcdm.cc: New source. - * OPERATORS/op-fcdm-fs.cc: New source. - * OPERATORS/op-fcdm-fm.cc: New source. - * OPERATORS/op-fcdm-fdm.cc: New source. - * OPERATORS/op-fcdm-fcs.cc: New source. - * OPERATORS/op-fcdm-fcm.cc: New source. - * OPERATORS/op-fcdm-fcdm.cc: New source. - * OPERATORS/op-dms-template.cc: New source. - * OPERATORS/op-dm-template.cc: New source. - * OPERATORS/op-dm-s.cc: New source. - * OPERATORS/op-dm-m.cc: New source. - * OPERATORS/op-dm-dm.cc: New source. - * OPERATORS/op-dm-cs.cc: New source. - * OPERATORS/op-dm-cm.cc: New source. - * OPERATORS/op-dm-cdm.cc: New source. - * OPERATORS/op-cm-dm.cc: New source. - * OPERATORS/op-cm-cdm.cc: New source. - * OPERATORS/op-cdm-s.cc: New source. - * OPERATORS/op-cdm-m.cc: New source. - * OPERATORS/op-cdm-dm.cc: New source. - * OPERATORS/op-cdm-cs.cc: New source. - * OPERATORS/op-cdm-cm.cc: New source. - * OPERATORS/op-cdm-cdm.cc: New source. - * Makefile.in: Include them. - - * ov-re-mat.cc (octave_matrix::diag): New method override. - * ov-re-mat.h: Declare it. - * ov-cx-mat.cc: Likewise with octave_complex_matrix. - * ov-cx-mat.h: Likewise with octave_complex_matrix. - * ov-flt-re-mat.cc: Likewise with octave_float_matrix. - * ov-flt-re-mat.h: Likewise with octave_float_matrix. - * ov-flt-cx-mat.cc: Likewise with octave_float_complex_matrix. - * ov-flt-cx-mat.h: Likewise with octave_float_complex_matrix. - * ov.cc (octave_value::octave_value (const DiagMatrix&)) - (octave_value::octave_value (const FloatDiagMatrix&)) - (octave_value::octave_value (const ComplexDiagMatrix&)) - (octave_value::octave_value (const FloatComplexDiagMatrix&)): - Construct a diagonal matrix object. - * data.cc (Fdiag): Support explicit dimensions. Fix tests. - (Feye): Return diagonal matrix objects if possible. Fix tests. - * mappers.cc (Freal, Fimag): Fix tests. - * DLD-FUNCTIONS/inv.cc (Finv): Handle diagonal matrix objects. - * ov-range.h (octave_range::diag): Declare only. - * ov-range.cc (octave_range::diag): Return DiagMatrix if possible. - - 2008-11-25 Jaroslav Hajek - * ov.cc (octave_value::is_equal): New member function. - * ov.h: Declare it. - * pt-select.cc (tree_switch_case::label_matches): Call - octave_value::is_equal. - - 2008-12-04 Thomas Treichl - - * DLD-FUNCTIONS/cellfun.cc: Added more tests for cellfun. - - 2008-11-25 Jaroslav Hajek - - * ov-base.h (octave_base_value::type_conv_info): New class. - * ov-base.h, ov-bool-mat.cc, ov-bool-mat.h, ov-bool-sparse.cc, - ov-bool-sparse.h, ov-bool.cc, ov-bool.h, ov-complex.cc, ov-complex.h, - ov-cx-mat.cc, ov-cx-mat.h, ov-null-mat.cc, ov-null-mat.h, - ov-range.cc, ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, - ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, ov.h: - Return type_conv_info instead of type_conv_fcn from - numeric_conversion_function and numeric_demotion_function - methods. - * ov-base.cc (octave_base_value::numeric_assign): Try biased conversion - first if possible. - * ov.cc (do_binary_op): Likewise. Also, search recursively. - * ov.cc (do_cat_op): Likewise. - - 2008-11-24 David Bateman - - * graphics.cc (F__go_delete__): Check validity of handles before - deleting them to avoid issues with callback function also deleting - the handles. - - 2008-11-21 John Swensen - - * debug.cc (bp_table::do_get_breakpoint_list): Avoid modifying - bp_map while iterating over it. - - 2008-11-21 Jarkko Kaleva - - * DLD-FUNCTIONS/eig.cc (Feig): Handle generalized eigenvalues and - eigenvectors. - - 2008-11-19 Jaroslav Hajek - - * DLD_FUNCTIONS/det.cc: Include only DET.h. Retrieve & matrix type & - store it after calculation if possible. - - 2008-11-17 John W. Eaton - - * load-path.cc (load_path::dir_info::update): Simplify previous - change. - - * load-path.h (load_path::dir_info::abs_dir_name): New data member. - (load_path::dir_info::dir_info, load_path::dir_info::operator =): - Copy abs_dir_name. - (load_path::abs_dir_cache_type, load_path::dir_cache_iterator, - load_path::const_dir_cache_iterator): New typedefs. - (load_path::abs_dir_cache): New static data member. - (load_path::dir_info:dir_info): New constructor. - * load-path.cc (load_path::abs_dir_cache): Define new static data - member. - (load_path::dir_info::update): Look in abs_dir_cache for relative - directory names. - (load_path::dir_info::initialize): Update abs_dir_cache here. - - 2008-11-13 John W. Eaton - - * ov-int8.h, ov-int16.h, ov-int32.h, ov-int64.h, ov-uint8.h, - ov-uint16.h, ov-uint32.h, ov-uint64.h: Don't define - OCTAVE_INT_NDARRAY_T. - * ov-intx.h (class OCTAVE_VALUE_INT_MATRIX_T, - class OCTAVE_VALUE_INT_SCALAR_T): Use intNDArray - instead of OCTAVE_INT_NDARRAY_T. - (OCTAVE_VALUE_INT_MATRIX_T::increment, - OCTAVE_VALUE_INT_MATRIX_T::decrement, - OCTAVE_VALUE_INT_SCALAR_T::increment, - OCTAVE_VALUE_INT_SCALAR_T::decrement): Convert 1 to OCTAVE_INT_T. - - 2008-11-15 Thorsten Meyer - - * strfns.cc (Fchar): adapt to conserve empty strings, add tests - - 2008-11-12 Michael Goffioul - - * dirfcn.cc (Ffilesep): Make it return all file separators when 'all' - is given as argument. - - * DLD-FUNCTIONS/getrusage.cc: Undefine min/max. - * TEMPLATE-INST/Array-os.cc: Declare Array as extern template. - - 2008-11-12 David Bateman - - * OPERATORS/op-cell.cc (op_catop_matrix_cell): Cast args in the correct - order. - * OPERATORS/op-struct.cc (op_catop_matrix_struct): Ditto. - - 2008-11-11 Jaroslav Hajek - - * pt-assign.cc: Fix handling of empty cs-lists in assignment LHS. - - 2008-11-11 John W. Eaton - - * lex.l ({S}+): Don't insert separator if next token - is a separator. - - * parse.y (F__parser_debug_flag__): New function. - - 2008-10-31 Jaroslav Hajek - - * xnorm.cc: New source. - * xnorm.h: New header file. - * Makefile.in: Include xnorm.cc in the build process. - * data.cc (Fnorm): Call xnorm, xcolnorms, xrownorms or xfrobnorm - to do the actual work. - - 2008-10-31 David Bateman - - * ov-base-scalar.h (octave_value octave_base_scalar::reshape - (const dim_vector&) const): New method. - - 2008-10-30 John W. Eaton - - * oct-map.cc (Octave_map::index): Copy key_list. - - 2008-10-31 David Bateman - - * graphics.h.in (void image::init (void)): Add a constraint for - logical cdata. - - * graphics.h.in (base_property::delete_listener): New method. - (property::delete_listener): New method. - (base_graphics_object::delete_listener): New method. - (base_graphics_object::delete_property_listener): New method. - (base_graphics_object::remove_all_listeners): New method. - (graphics_object::delete_property_listener): New method. - (axes::set_defaults): Call remove_all_listeners. - * graphics.cc (void base_properties::delete_listener): New method - (void base_graphics_object::remove_all_listeners (void)): New method - (Fdellistener): New command to remove listener functions associated - with a property. - - 2008-10-30 David Bateman - - * graphics.h.in (axes::properties): Add keyreverse property. - * graphics.cc (axes::properties::set_defaults): Initialize - keyreverse property. - - 2008-10-28 Jaroslav Hajek - - * Cell.h (Cell::assign (const Array&, ...), - Cell::delete_elements (const Array&, ...)): - New member functions. - * Cell.cc (Cell::assign (const octave_value_list&, ...), - Cell::delete_elements (const octave_value_list&, ...)): - Call Array::assign. - * DLD-FUNCTIONS/dlmread.cc: Call Array::resize_fill. - * ov-base-mat.cc (octave_base_matrix::assign): Call Array::assign. - (octave_base_matrix::delete_elements):: Call Array::delete_elements. - * ov-cell.cc (Fcell): Call Array::chop_trailing_singletons, - simplify. - * ov-cx-mat.cc (octave_complex_matrix::assign): Call Array::assign. - * ov-flt-cx-mat.cc (octave_float_complex_matrix::assign): Call - Array::assign. - * ov-list.cc (octave_list::subsasgn): Call Array::assign. - * pr-output.cc (PRINT_ND_ARRAY): Use zero-based indices. - - 2008-10-29 Thorsten Meyer - - * data.cc (Fcolumns): Remove "and" from @seealso string. - * mappers.cc (Fgamma, Flgamma): Replace @seealso reference to - deprecated gammai by gammainc. - * DLD-FUNCTIONS/sqrtm.cc (Fsqrtm): Remove reference to Octave - Forge function funm. - * DLD-FUNCTIONS/qz.cc (Fqz): removed @seealso reference to Octave - Forge function dare. - * DLD-FUNCTIONS/rcond.cc (Frcond): removed @seealso reference to - mldivide. - * debug.cc (Fdbstop): Fix @seealso references and function name in - docstring of dbnext. - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Remove @seealso reference - to isclass. - * syscalls.cc (Fwaitpid): Replace WCONTINUED by WCONTINUE. - * oct-hist.cc (Fhistory_size, Fsaving_history): Fix @seealso - references to history_timestamp_format_string. - * DLD-FUNCTIONS/luinc.cc (Fluinc): Remove reference to missing - function cholinc. - - 2008-10-29 Jaroslav Hajek - - * DLD-FUNCTIONS/qr.cc (Fcholinsert, Fcholdelete, Fcholshift): Fix - inline docs. - - 2008-10-28 John W. Eaton - - * parse.y (finish_function): Clear local variables in function scope. - * symtab.h (symbol_table::clear_variables): New argument, scope. - - 2008-10-28 Brian Gough - - * DLD-FUNCTIONS/besselj.cc: Added tests. - - 2008-10-23 John W. Eaton - - * oct-hist.c (initialize_history): New arg, read_history_file) - * oct-hist.h: Fix decl. - * octave.cc (octave_main): Set read_history_file to false if - --no-history option is specified. Pass read_history_file to - initialize_history. - - * DLD-FUNCTIONS/fltk_backend.cc: Update initialization comment. - - 2008-10-22 John W. Eaton - - * DLD-FUNCTIONS/fltk_backend.cc (figure_manager::do_close_all): - Rename from close_all. Now private. - (figure_manager::do_new_window): Rename from new_window. - Now private. - (figure_manager::do_delete_window): Rename from delete_window. - Now private. - (figure_manager::do_mark_modified): Rename from mark_modified. - Now private. - (figure_manager::do_get_size): Rename from get_size. Now private. - (figure_manager::close_all, figure_manager::do_new_window, - figure_manager::do_delete_window, - figure_manager::do_mark_modified, figure_manager::do_get_size): - New static functions. - (figure_manager::instance_ok): New function. - (figure_manager::Instance): Delete. Eliminate all uses in favor - of static methods that call instance_ok and forward to private - member functions. - (figure_manager::instance): New static data member. - (figure_manager::hnd2idx, figure_manager::figprops2idx, - figure_manager::figprops2idx, figure_manager::str2idx): Now static. - - * DLD-FUNCTIONS/fltk_backend.cc (figure_manager::default_size): - Increase default window size. - - * graphics.cc (figure::properties::remove_child): New function. - * graphics.h.in: Provide decl. - - * gl-render.cc (opengl_renderer::draw): Get all children. - - * DLD-FUNCTIONS/fltk_backend.cc (__fltk_redraw__): - Check for "root" object, not "root_figure". - - * graphics.h.in (base_properties::get_all_children): New function. - - 2008-10-22 David Bateman - - * graphics.h.in (line::properties, surface::properties): Add data - source properties. - - 2008-10-21 John W. Eaton - - * graphics.h.in (axes::properties::delete_children): Delete decl. - - * graphics.h.in (gh_manager::is_handle_visible): New function. - (axes::properites): Move title property after label properties. - (graphics_object::is_handle_visible): New function. - (base_properties::is_handle_visible): New function. - (base_properties): Mark children property with G. - * graphics.cc (axes::properties::set_text_child): New function. - (axes::properties::set_title, axes::properties::set_xlabel, - axes::properties::set_ylabel, axes::properties::set_zlabel): Use it. - (base_property::get_children): New function. Only - return handles that are visible. - (axes::properties::delete_text_child): Set handlevisibility to - "off" for newly created object and add it to the list of children. - Call base_properties::remove_child on previous handle value. - (axes::properties::set_defaults): Don't explicitly delete xlabel, - ylabel, zlabel, and title handles. Reinitialize them after - deleting children. - (axes::properties::remove_child): Don't explicitly delete xlabel, - ylabel, zlabel, and title handles. - (axes::properties::init): Move here from graphics.h.in. Set - handlevisibility to "off" for xlabel, ylabel, zlabel, and title - and add them to the list of children. - (axes::properties::delete_children): Delete. - - * genprops.awk: Allow whitespace between BEGIN_PROPERTIES and - opening paren. Accept optional second argument for graphics - object name. - * graphics.h.in (root_figure properties): Pass "root" as second - arg to BEGIN_PROPERTIES. - - 2008-10-16 John W. Eaton - - * graphics.cc (make_handle_fraction): New static function. - (gh_manager::get_handle): Use it. - (gh_manager::do_free): Call make_handle_fraction to replace - fractional part of non-figure handles. - - * graphics.cc (base_properties::remove_child): Handle children as - a column vector instead of a row vector. - - * utils.cc (Fis_absolute_filename, Fis_rooted_relative_filename, - Fmake_absolute_filename, Ffind_dir_in_path): New functions. - - 2008-10-16 David Bateman - - * graphics.cc (void axes::properties::set_defaults - (base_graphics_object&, const std::string&)): Preserve font - and position properties if the axis is "replaced". - - 2008-10-16 John W. Eaton - - * graphics.h.in (class axes::properties): New property: interpreter. - - 2008-10-15 David Bateman - - * ov-class.c (Fsuperiorto, Finferiorto): Allow more than one class - to be defined at a time. - - 2008-10-12 David Bateman - - * pt-colon.cc (octave_value tree_colon_expression::make_range - (const octave_value&, const octave_value&, const octave_value&)): - Treating class overloading of colon operator. - (octave_value tree_colon_expression::rvalue (void)): Ditto. - - 2008-10-10 John W. Eaton - - * graphics.h.in (base_properties::adopt): Place new child at front - of list, not end. Make list of children a column vector instead - of a row vector. - - * graphics.cc (gh_manager::do_free): Set the beingdeleted - property, then delete the children, then execute the deletefcn. - (axes::properties::set_defaults, axes::properties::remove_child, - axes::properites::delete_children): Call delete_text_child to - manage the title, xlabel, ylabel, and zlabel properties. - (axes::properties::get_title, axes::properties::get_xlabel, - axes::properties::get_ylabel, axes::properties::get_zlabel): Delete. - - * graphics.h.in (axes::properites::title, - axes::properites::xlabel, axes::properites::ylabel, - axes::properites::zlabel): No longer mutable. Don't generate - factory default values or custom get functions for these - properties. - - * graphics.cc (axes::properties::delete_text_child): New function. - * graphics.h.in: Provide decl. - - * graphics.h.in (graphics_object::type): New function. - - 2008-10-10 David Bateman - - * graphics.h.in (radio_property axes::properties::__colorbar__): - Delete. - * graphics.cc (void axes::properties::sync_positions (void)): - Disable code synchronizing outerposiiton and position. - (void axes::properties::set_defaults (base_graphics_object&, - const std::string&): Remove __colorbar__. - (F__go_delete__): Don't delete if already being deleting to avoid - recursion in callback functions. - (F__go_axes_init__): Flag error if handle is deleted during - initialization due. - - 2008-10-09 David Bateman - - * ov-class.cc (Octave_map octave_class::map_value (void) const): - Remove. - (bool octave_class::save_ascii (std::ostream&), - bool octave_class::load_ascii (std::istream&), - bool octave_class::save_binary (std::ostream&, bool&), - bool octave_class::save_binary (std::ostream&, bool&), - bool octave_class::save_hdf5 (hid_t, const char *, bool), - bool octave_class::load_hdf5 (hid_t, const char *, bool)): - Allow saving and reloading of classes. - * ov-class. (Octave_map octave_class::map_value (void) const): - Remove. - * ls-mat.cc (std::string read_mat5_binary_element (std::istream&, - const std::string&, bool, bool&, octave_value&), - int save_mat5_element_length (const octave_value&, const std::string&, - bool, bool)): Allow saving and loading of classes. - * ls-oct-ascii.h (template bool extract_keyword - (std::istream&, const char *, T&, const bool)): Initialize value with - null constructor rather than 0. - - 2008-10-07 David Bateman - - * graphics.cc (F__go_delete__): Allow arrays of graphic handles. - - 2008-10-01 Jaroslav Hajek - - * OPERATORS/op-i64-i64.cc: Instantiate all 64-bit operations. - * OPERATORS/op-ui64-ui64.cc: Instantiate all unsigned 64-bit operations. - - 2008-10-06 John W. Eaton - - * ov-type-conv.h (octave_type_conv_body): Avoid shadow warning - from GCC. - - 2008-10-06 David Bateman - - * graphics.cc (static bool is_handle (const octave_value&)): Delete. - (static octave_value is_handle (const octave_value&)): New function. - - 2008-10-03 Jaroslav Hajek - - * Cell.cc (Cell::delete_elements): Don't pass second arg to - Array::maybe_delete_elements. - * ov-base-mat.cc (octave_base_matrix::delete_elements): Ditto. - - 2008-10-02 Jaroslav Hajek - - * Cell.h (Cell::delete_elements): Declare new member function. - * Cell.h (Cell::delete_elements): Define it. - * oct-map.cc (Octave_map::maybe_delete_elements): Call delete_elements - instead of assign with empty Cell. - - 2008-10-02 John W. Eaton - - * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): - Don't insert undefined elements in return list. - - 2008-09-30 Jaroslav Hajek - - * ov-str-mat.h (octave-char-matrix-str::assign): Remove declaration. - * ov-str-mat.cc (octave-char-matrix-str::assign): Remove definition. - - 2008-09-30 John W. Eaton - - * DLD-FUNCTIONS/__magick_read__.cc: Only define - magick_to_octave_value if HAVE_MAGICK is defined. - - 2008-09-29 John W. Eaton - - * symtab.cc (symbol_table::fcn_info::fcn_info_rep::load_class_method): - Call load_class_constructor if name and dispatch_type are the same. - - 2008-09-29 David Bateman - - * symtab.cc (octave_value symbol_table::find_function - (const std::string&, tree_argument_list *, const string_vector&, - octave_value_list&, bool&)): If first character of function name - is "@" then look for class specific method. - - 2008-09-26 John W. Eaton - - * symtab.cc (out_of_date_check_internal): - Fix order of arguments in call to load_path::find_method. - - 2008-09-26 David Bateman - - * ov-class.h (idx_vector index_vector (void) const): Declare new - maethod. - * ov-class.cc (idx_vector index_vector (void) const): Define new - method. - * (Fismethod): New function. - - 2008-09-26 John W. Eaton - - * DLD-FUNCTIONS/urlwrite.cc (urlwrite_cleanup_file) New function. - (urlwrite_delete_file, urlwrite_filename): New static variables. - (Furlwrite): Only return filename if urlget succeeds. Use - unwind_protect to delete files we create if download fails. - - 2008-09-26 Jaroslav Hajek - - * ov-null-mat.h: New header file. - * ov-null-mat.cc: New source. - * ov.h (octave_value::is_null_value, octave_value::non_null_value, - octave_value::make_non_null_value): - Declare new member functions. - * ov.cc (octave_value:non_null_value, octave_value::make_non_null_value): - Define them. - (octave_value::assign (assign_op op, const octave_value& rhs)): - (register_types): Register null types. - Call non_null_value (). - * oct-obj.cc (octave_value_list::normalize_null_values): New member - function. - * oct-obj.h (octave_value_list::normalize_null_values): Declare it. - * ov-base.h (is_null_value): New virtual member function. - * ops.h (NULLASSIGNOPDECL, DEFNULLASSIGNOP_FN): New macros. - * ov-base-mat.cc (octave_base_mat::delete_elements): New member func. - * ov-base-mat.h: Declare it. - * ov-base-sparse.cc (octave_base_sparse::delete_elements): New member func. - * ov-base-sparse.h: Declare it. - * ov-cell.cc (octave_cell:subsasgn): Handle null values. - * ov-struct.cc (octave_cell:subsasgn): Handle null values. - * ov-builtin.cc (octave_builtin::do_multi_index_op): Normalize return - values. - * pt-misc.cc (tree_parameter_list::define_from_arg_vector): Call - octave_lvalue::define instead of octave_lvalue::assign. - * pt-decl.h (tree_decl_elt::rvalue): Call non_null_value (). - * OPERATORS/op-int.h (OCTAVE_INT_NULL_ASSIGN_OPS, - OCTAVE_INSTALL_INT_NULL_ASSIGN_OPS): New macros. - * OPERATORS/op-m-m.cc: Install & define assignment & conversion operators. - * OPERATORS/op-bm-bm.cc: Ditto. - * OPERATORS/op-cell.cc: Ditto. - * OPERATORS/op-cm-cm.cc: Ditto. - * OPERATORS/op-cs-cs.cc: Ditto. - * OPERATORS/op-fcm-fcm.cc: Ditto. - * OPERATORS/op-fcs-fcs.cc: Ditto. - * OPERATORS/op-fm-fm.cc: Ditto. - * OPERATORS/op-fs-fs.cc: Ditto. - * OPERATORS/op-int.h: Ditto. - * OPERATORS/op-m-m.cc: Ditto. - * OPERATORS/op-range.cc: Ditto. - * OPERATORS/op-s-s.cc: Ditto. - * OPERATORS/op-scm-scm.cc: Ditto. - * OPERATORS/op-sm-sm.cc: Ditto. - * OPERATORS/op-str-str.cc: Ditto. - * OPERATORS/op-i16-i16.cc: Ditto. - * OPERATORS/op-i32-i32.cc: Ditto. - * OPERATORS/op-i64-i64.cc: Ditto. - * OPERATORS/op-i8-i8.cc: Ditto. - * OPERATORS/op-ui16-ui16.cc: Ditto. - * OPERATORS/op-ui32-ui32.cc: Ditto. - * OPERATORS/op-ui64-ui64.cc: Ditto. - * OPERATORS/op-ui8-ui8.cc: Ditto. - - 2008-09-25 David Bateman - - * pt-mat.cc (class tm_row_const): Add any_class test - (class tm_const): Ditto. - (octave_value tree_matrix::rvalue (void)): If any object to - concatenate is a class object, dispatch to the appropriate - vertcat/horzcat function. - - 2008-09-25 John W. Eaton - - * symtab.cc (symbol_table::do_find): Don't set evaluated_args and - args_evaluated here, prior to call to symbol_table::fcn_info::find. - - 2008-09-24 Sᅵren Hauberg - - * DLD-FUNCTIONS/__magick_read__.cc (magick_to_octave_value): New - template function with specializations for various - GraphicsMagick++ types. - (F__magick_finfo__): New function. - - 2008-09-24 John W. Eaton - - * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): - Add symbol_table::clear_variables cleanup function to the - unwind_protect stack after the parameter list cleanup functions. - - * load-path.cc (load_path::do_initialize): Check for OCTAVE_PATH - in the environment, not OCTAVE_LOADPATH. - - 2008-09-24 Thomas Weber - - * DLD-FUNCTIONS/regexp.cc (octregexp_list): Retry if match limit - is exceeded. - - 2008-09-24 John W. Eaton - - * genprops.awk (emit_declarations): Emit call to set_mode before - updaters. - - 2008-09-23 John W. Eaton - - * pt-arg-list.cc (F__end__): Dispatch to user-defined end - function for classes if one is defined. - * lex.l (is_keyword_token): Allow "end" as a functon name. - - 2008-09-23 David Bateman - - * variables.cc (static octave_value do_who (int, const string_vector&, - bool, bool, std::string): Add final message argument and simple - treatment of the "-file" option. - - 2008-09-22 David Bateman - - * debug.cc (static octave_user_code * get_user_code - (const std::string&)): Only check user code as break points can't - be set in builtins or oct-files. - (bp_table::intmap bp_table::do_remove_all_breakpoints_in_file - (const std::string&, bool)): Add flag to silence the error message - from this function if a user code with breakpoints is not found. - (bp_table::fname_line_map bp_table::do_get_breakpoint_list (const - octave_value_list&)): Do an ourt of date check on the function - before checking the breakpoints. - * debug.h (do_remove_all_breakpoints_in_file, - remove_all_breakpoints_in_file): Add flag to silence error - message. - * symtab.cc (out_of_date_check_internal): Clear breakpoints in - function if out_of_date. split into two versions taking the - octave_function pointer seperately or not. - * symtab.h (bool out_of_date_check (octave_function*)): New function. - - 2008-09-18 David Bateman - - * DLD-FUNCTIONS/fftw.cc (Ffftw): Clarify the documentation. - - 2008-09-17 Krzesimir Nowak - - * debug.cc (Fisdebugmode): New function. - - 2008-09-17 David Bateman - - * data.cc (do_cat): Chopping trailing singleton dimensions. - - * data.cc (SINGLE_TYPE_CONCAT, DO_SINGLE_TYPE_CONCAT): New macros - (do_cat): Special case single type concatenations for speed. - * pt.mat.cc (std::string get_concat_class (const std::string&, - const std::string&), void maybe_warn_string_concat (bool, bool)): - Remove static declaration. - * pt-mat.h (std::string get_concat_class (const std::string&, - const std::string&), void maybe_warn_string_concat (bool, bool)): - Define extern here. - - * DLD-FUNCTIONS/sparse.cc (Fsparse): Clarify the help string. - - 2008-09-10 John W. Eaton - - * octave.cc (octave_main): Make all command-line arguments - available to startup scripts and PKG_ADD files. - - 2008-09-09 David Bateman - - * DLD-FUNCTIONS/regexp.cc (octregexp_list): Distinguish between - matlab named tokens and perl lookbehind expressions. For - lookbehind expression replace "*" and "+" with a limited number of - fixed length expressions to simulate arbitrary length look behind. - - 2008-09-08 Michael Goffioul - - * DLD-FUNCTIONS/__magick_read__.cc (encode_uint_image): Resolve "pow" - ambiguity. - - * graphics.cc (base_properties::get_dynamic, - base_properties::set_dynamic, base_propertyes::get_property_dynamic): - Add the 3rd template parameter to std::map, corresponding to all_props - field. - - 2008-09-08 John W. Eaton - - * ls-oct-ascii.cc (std::string extract_keyword (std::istream&, - const char *, const bool)): Also accept \r as line ending character. - * ls-oct-ascii.h (template bool extract_keyword - (std::istream&, const char *, T&, const bool)): Likewise. - (template bool extract_keyword (std::istream&, const - string_vector&, std::string&, T&, const bool)): Likewise. - - 2008-09-03 Ben Abbott - - * mappers.cc: Use eps(single) as tolerance for single precesion test. - - 2008-09-03 John W. Eaton - - * variables.cc (mlock): Lock current function on the call stack. - (Fmlock): Lock caller. - - * symtab.cc (out_of_date_check_internal): If dispatch type is set, - check for method. If that fails, check for regular function. - - 2008-09-02 Michael Goffioul - - * graphics.cc (hggroup::update_axis_limits): Also reacts on - [xyzac]liminclude changes. - - 2008-08-31 Michael Goffioul - - * DLD-FUNCTIONS/fltk_backend.cc (fltk_backend::redraw_figure, - fltk_backend::print_figure): Change graphics_handle argument to - graphics_object. - - 2008-08-29 David Bateman - - * graphics.cc: Replace int by octave_idx_type in multiple - places. - (array_property::is_equal): In macro CHECK_ARRAY_EQUAL, special - case scalar case and keep copy of array value to avoid early - destruction of converted array values. - - 2008-08-28 David Bateman - - * graphics.h.in (root_figure::properties::showhiddenhandles): - New property. - - 2008-08-27 Jaroslav Hajek - - * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Initialize output vectors - by NA value. - - 2008-08-26 Ben Abbott - - * mappers.cc: Adjust tolerance for single precesion tests. - - * DLD-FUNCTIONS/chol.cc: Double tolerance. - - 2008-08-26 Jaroslav Hajek - - * parse.y (Fassignin): Use default scope when calling varref. - - 2008-08-26 Michael Goffioul - - * genprops.awk (emit_declarations): Call updaters/listeners only when - 'set' method returned true. - * graphics.h.in (base_property::set, base_property::do_set): - Return bool value. - (property::set): Likewise. - (string_property::do_set): Check value change and return bool value. - (radio_property::do_set, double_property::do_set, - array_property::do_set): Likewise. - (color_property::do_set, double_radio_property::do_set, - row_vector_property::do_set, bool_property::do_set, - handle_property::do_set): Return bool value. - (any_property::do_set, callback_property::do_set): Return always true. - (color_values::operator==, color_values::operator!=): Add. - (array_property::is_equal): Add. - * graphics.cc (base_property::set): Executes listeners/notifiers only - when do_set returns true. Return bool value. - (color_property::do_set, double_radio_property::do_set): Check value - change and return bool value. - (array_property::is_equal): Add. - - * genprops.awk (emit_declarations, emit_source): Change code emission - when emitting base_properties code (base is 1). - (BEGIN): Initialize pcount to 0. - (BEGIN_PROPERTIES): Initialize base to 0. - (BEGIN_BASE_PROPERTIES): New statement. - (main): Add support for 'f' modifier. Add support for non xxx_property - typed properties. - * graphics.h.in (base_properties::base_properties): Remove - implementation. - (base_properties::get_tag, base_properties::get_parent, - base_properties::get_type, base_properties::get___myhandle__, - base_properties::get_busyaction, base_properties::get_buttondownfcn, - base_properties::is_clipping, base_properties::get_clipping, - base_properties::execute_createfcn, base_properties::get_createfcn, - base_properties::execute_deletefcn, base_properties::get_deletefcn, - base_properties::get_handlevisibility, base_properties::is_hittest, - base_properties::get_hittest, base_properties::is_interruptible, - base_properties::get_interruptible, base_properties::is_selected, - base_properties::get_selected, base_properties::is_selectionhighlight, - base_properties::get_selectionhighlight, - base_properties::get_uicontextmenu, base_properties::get_userdata, - base_properties::is_visible, base_properties::get_visible, - base_properties::is_beingdeleted, base_properties::get_beingdeleted, - base_properties::set_busyaction, base_properties::set_buttondownfcn, - base_properties::set_clipping, base_properties::set_createfcn, - base_properties::set_deletefcn, base_properties::set_handlevisibility, - base_properties::set_hittest, base_properties::set_interruptible, - base_properties::set_selected, - base_properties::set_selectionhighlight, - base_properties::set_uicontextmenu, base_properties::set_userdata, - base_properties::set_visible, base_properties::set_beingdeleted, - base_properties::get_children): Remove (now auto-generated). - (base_properties::enum): Likewise. - (base_properties::is_modified): Call is___modified__. - (base_properties::set_modified): Call set___modified__. - (base_properties::set_children): Add. - (base_properties::set_dynamic, base_properties::get_dynamic, - base_properties::get_property_dynamic): New methods. - (class base_properties): Surround properties declaration with - BEGIN_BASE_PROPERTIES/END_PROPERTIES pair. - * graphics.cc (base_properties::get, base_properties::set, - base_properties::get_property): Remove (now auto-generated). - (base_properties::set_dynamic, base_properties::get_dynamic, - base_properties::get_property_dynamic): New methods. - (base_properties::set_children): Likewise. - - * DLD_FUNCTIONS/fltk_backend.cc (F__fltk_redraw__): Make static. - (F__init_fltk__): Protect from mutliple invocations. - (F__remove_fltk__): Likewise. - (F__init_fltk__): Register input event hook. - (F__remove_fltk__): Unregister input event hook. - - * DLD_FUNCTIONS/fltk_backend.cc (fltk_backend::close_figure): Remove. - (fltk_backend::object_destroyed, fltk_backend::property_changed): New - methods. - * genprops.awk (emit_declarations): Generate "enum" property fields. - (emit_sources): Emit set_id calls. - * graphics.h.in (base_property::id): New field. - (base_property::base_property): Initialize it. - (base_property::get_id, base_property::set_id): Add accessors. - (property::get_id, property::set_id): Likewise. - (base_graphics_backend::close_figure, graphics_backend::close_figure): - Remove methods. - (base_graphics_backend::redraw_figure, - base_graphics_backend::print_figure, graphics_backend::redraw_figure, - graphics_backend::print_figure): Change graphics_handle argument into - graphics_object. - (base_graphics_backend::property_changed, - base_graphics_backend::object_created, - base_graphics_backend::object_destroyed, - graphics_backend::property_changed, graphics_backend::object_created, - graphics_backend::object_destroyed): New signature with - graphics_object argument. - (base_properties::base_properties): Add set_id calls. - (class base_properties): Add "enum" property fields. - (root_figure::properties::remove_child): Add overloaded method. - (figure::properties::close): Remove. - (figure::properties::set_backend): Call object_destroyed instead of - close. - (figure::~figure): Remove close call. - (figure::properties::get_title): New method. - * graphics.cc (base_property::set): Call property_changed only for - valid id (>=0); Use graphics_object argument. - (gh_manager::do_free): Call object_destroyed with graphics_object - argument. - (base_graphics_backend::property_changed, - base_graphics_backend::object_created, - base_graphics_object::object_destroyed): Implement wrappers for - graphics_handle argument case. - (gnuplot_backend::close_figure): Remove. - (gnuplot_backend::object_destroyed, - gnuplot_backend::property_changed): New methods. - (gnuplot_backend::redraw_figure, gnuplot_backend::print_figure): - Change graphics_handle argument to graphics_object. - (root_figure::properties::remove_child): Add. - (figure::properties::close): Remove. - (figure::properties::set_position): Do not call set_figure_position. - (figure::properties::get_title): New method. - (gh_manager::do_make_graphics_handle): Call object_created with - a graphics_object argument. - (gh_manager::do_make_figure_handle): Likewise. - (Fdrawnow): Call redraw_figure and print_figure with a graphics_object - argument. - - 2008-08-26 Maciek Gajewski - - * graphics.h.in (base_property::set): Remove inline implementation. - (base_graphics_backend::property_changed, - base_graphics_backend::object_created, - base_graphics_backend::object_destroyed): New method. - (graphics_backend::property_changed, graphics_backend::object_created, - graphics_backend::object_destroyed): Likewise. - * graphics.cc (base_property::set): Moved from header file. - (gh_manager::do_free): Add backend notification. - (gh_manager::do_make_graphics_handle): Likewise. - (gh_manager::do_make_figure_handle): Likewise. - - 2008-08-25 Thomas L. Scofield - - * DLD-FUNCTIONS/__magick_read__.cc: Untabify. - (jpg_settings, encode_bool_image, encode_uint_image, encode_map): - New functions. - (write_image): Use them to handle various image types. - - 2008-08-25 David Bateman - - * graphics.cc (void gh_manager::do_execute_callback - (const graphics_handle&, const octave_value&, const - octave_value&)): Don't pass the function handle as first arg of - property listener functions - - * graphics.h.in (class base_properties): Add functor for caseless - string comparison. Use it in the property map, so that user added - properties are found in a case insensitive fashion. - - 2008-08-22 John W. Eaton - - * symtab.h (symbol_table::inherit): Pass reference to symbol table - to do_inherit instead of scope. - (symbol_table::do_inherit): First arg is now reference to - symbol_table, not scope id. Insert all variables from donor scope. - - 2008-08-21 Thomas Treichl - - * mappers.cc: Increase test script tolerance. - - 2008-08-20 John W. Eaton - - * help.cc (builtin_help): Go to next symbol name on error. - (do_type, do_which): Omit separate path search for files. - (help_from_symbol_table): Only insert Texinfo markup if it looks - like the help message is already in Texinfo. - - 2008-08-19 David Bateman - - * load-path.cc (load-path::do_find_dir (const std:string&) const)): - Method to find a directory on the load-path corresponding to the - argument. - * load-path.h (load-path::do_find_dir (const std:string&) const), - load-path::find_dir (const std::string&) const): New methods. - * utils.cc (std::string contents_file_in_path (const std::string&)): - New function. - * utils.h (std::string contents_file_in_path (const std::string&)): - Declare it. - * help.cc (static bool raw_help_from_file (const std::string&, - std::string&, std::string&, bool&)): Also check is requested - argument is a directory and contains the file Contents.m. - - * OPERATORS/op-int-conv.cc (DEFINTCONVFN): New macro that warn - for integer conversion issues. Use it to replace DEFCONVFN. - * OPERATORS/op-int.h (DEFINTBINOP_OP, DEFINTNDBINOP_OP, - DEFINTBINOP_FN, DEFINTNDBINOP_FN): New macros that warn for - integer truncation issues. Use them to replace the corresponding - macros in the integer arithmetic macros. Update other integer - arithmetic functions that don't use these macros individually. - * error.cc (initialize_default_warning_state (void)): Initialize - the default warning state for the integer warnings to be off. - * gripes.cc (void gripe_binop_integer_math_truncated (const char *, - const char *, const char *), void gripe_unop_integer_math_truncated - (const char *, const char *), void gripe_non_integer_conversion - (const char *, const char *), void gripe_nan_conversion (const char *, - const char *)): Warning functions for integer conversion and math - issues. - * gripes.h (void gripe_binop_integer_math_truncated (const char *, - const char *, const char *), void gripe_unop_integer_math_truncated - (const char *, const char *), void gripe_non_integer_conversion - (const char *, const char *), void gripe_nan_conversion (const char *, - const char *)): Declare them. - * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::convert_gripe, - OCTAVE_VALUE_INT_SCALAR_T::convert_gripe): Adapt for new means of - flagging integer truncation. - (OCTAVE_VALUE_INT_MATRIX_T::decrement, - OCTAVE_VALUE_INT_MATRIX_T::increment, - OCTAVE_VALUE_INT_SCALAR_T::decrement, - OCTAVE_VALUE_INT_SCALAR_T::increment): Check for integer - truncation. - * ov.cc (convert_to_int_array): Adapt for new means of - flagging integer truncation. - - 2008-08-19 Jaroslav Hajek - - * pt-assign.h (tree_simple_assignment::first_execution): New - member field. - (tree_simple_assignment::first_execution): Ditto. - * pt-assign.cc (tree_simple_assignment::tree_simple_assignment): - Initialize first_execution. - (tree_multi_assignment::tree_multi_assignment): Ditto. - (tree_simple_assignment::rvalue): Check for obsolete built-in - variables only at first execution. - (tree_multi_assignment::rvalue): Ditto. - - * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Checks whether LB and UB are - of proper size. - - * oct-obj.cc, oct-obj.h (octave_value_list::make_argv): - Allow calling without fcn_name. - * load-save.cc (parse_save_options (const string_vector&, ...)): - Return string_vector with parsed arguments removed instead. - (parse_save_options (const std::string&, ...)): Ditto. - (Fsave): Fix calls to parse_save_options. - - 2008-08-19 John W. Eaton - - * parse.y (Feval): Return value produced by evaluating CATCH string. - - 2008-08-12 John W. Eaton - - * pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue): - Call stash_parent_function_scope for user function. - * ov-fcn-inline.cc (octave_fcn_inline::octave_fcn_inline): - Likewise. - - * ov-struct.cc (octave_struct::subsref): Don't allow resizing for - simple x(idx) case. - - 2008-08-07 John W. Eaton - - * ov.cc (octave_value::idx_type_value): Don't include default - argument values in definition. - - * glrender.h, zfstream.h: Don't include config.h. - - * oct-errno.h: Include . - - * Cell.cc, DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/dlmread.cc, - debug.cc, error.cc, file-io.cc, graphics.cc, help.cc, input.cc, - lex.l, load-path.cc, load-save.cc, ls-mat-ascii.cc, - ls-oct-ascii.cc, oct-stream.cc, octave.cc, variables.cc, - ov-fcn-handle.cc, parse.y, pr-output.cc, symtab.cc, sysdep.cc, - utils.cc, graphics.h.in: Replace all uses of NPOS with - std::string::npos. - - * ov.cc (octave_value::idx_type_value): Move definition here. - * ov.h: From here. - - * DLD-FUNCTIONS/fsolve.cc (override_options): Don't fail if - options_map does not contain an expected keyword. - Fix typo in warning identifier. - (make_unimplemented_options): Use CamelCase names here. - - 2008-08-06 Sᅵren Hauberg - - * error.cc (Ferror): Update format of error messages in exmple. - * parse.y: (Feval): Likewise. - - 2008-08-06 John W. Eaton - - * DLD-FUNCTIONS/fsolve.cc (hybrd_info_to_fsolve_info): - Update INFO values to be compatible with Matlab's current fsolve. - (make_unimplemented_options, override_options): New functions. - (Ffsolve): Handle optimset options. Update doc string. - - * ov-usr-fcn.cc (octave_user_function::do_multi_index_op, - octave_user_script::do_multi_index_op): - Call octave_call_stack::backtrace_error_message. - * toplev.h (octave_call_stack::do_pop): Don't call - backtrace_error_message here. - * toplev.cc, toplev.h (octave_call_stack::do_backtrace_error_message): - Rename from octave_call_stack::backtrace_error_message. - * toplev.h (octave_call_stack::backtrace_error_message): - New public static function. - - 2008-08-05 John W. Eaton - - * gripes.cc (gripe_truncated_conversion, - gripe_logical_conversion): Don't declare as extern here. - * utils.cc (octave_format, octave_vformat): Likewise. - * pr-output.cc (octave_print_internal (std::ostream&, const Cell&, - bool, int, bool)): Likewise. - - * toplev.cc (octave_call_stack::backtrace_error_message): New - function. - * toplev.h: Provide decl. - (octave_call_stack::do_pop): Call backtrace_error_message if - error_state is nonzero. - - * pt-unop.cc (tree_prefix_expression::eval_error, - tree_postfix_expression::eval_error): Delete. Eliminate all uses. - * pt-unop.h: Delete decls. - - * pt-select.cc (tree_switch_case::eval_error, - tree_switch_command::eval_error): Delete. Eliminate all uses. - (tree_if_command::eval): Omit "evaluating if command" message. - * pt-select.h: Delete decls. - - * pt-loop.cc (tree_while_command::eval_error, - tree_complex_for_command::eval_error, - tree_simple_for_command::eval_error, - tree_do_until_command::eval_error): Delete. Eliminate all uses. - * pt-loop.h: Delete decls. - - * pt-exp.cc (tree_expression::is_logically_true): Omit "evaluating - conditional expression" error message. - - * pt-decl.cc (tree_global_command::eval): Omit "evaluating global - command" error message. - (tree_static_command::eval): Omit "evaluating static command" - error message. - - * pt-colon.cc (tree_colon_expression::eval_error): Omit - "evaluating colon expression" error message. - * pt-colon.h (tree_colon_expression::eval_error): Eliminate - default argument value. - - * pt-idx.cc (tree_index_expression::eval_error): Delete. - Eliminate all uses. - * pt-idx.h: Delete decl. - - * pt-binop.cc (tree_binary_expression::eval_error): Delete. - * pt-binop.cc, pt-cbinop.cc: Eliminate all uses of eval_error. - * pt-binop.h: Delete decl. - - * pt-assign.cc (tree_simple_assignment::eval_error, - tree_multi_assignment::eval_error): Delete. Eliminate all uses. - * pt-assign.h: Delete decls. - - * ov-usr-fcn.cc (octave_user_script::traceback_error, - octave_user_function::traceback_error): Delete. Eliminate all uses. - * ov-usr-fcn.h: Delete decls. - - * ov-builtin.cc (octave_builtin::do_multi_index_op): Call - gripe_library_exectuion_error on octave_execution_exception. - * ov-mex-fcn.cc (octave_mex_function::do_multi_index_op): Likewise. - * ov.cc (do_binary_op, do_cat_op, do_unary_op, - do_non_const_unary_op): Likewise. - * pt-stmt.cc (tree_statement::eval): Likewise. - - * gripes.cc (gripe_library_execution_error): New function. - * gripes.h: Provide decl. - - * dirfns.cc (Fpathsep): Fix usage of dir_path::path_sep_str. - * defaults.cc (set_exec_path, set_image_path): Likewise. - * load-path.h (load_path::set_command_line_path): Likewise. - * load-path.cc (maybe_add_path_elts, load_path::do_initialize, - load_path::do_path, genpath, Fpath): Likewise. - (split_path): Fix usage of dir_path::path_sep_char. - - 2008-08-04 John W. Eaton - - * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find_autoload): - Fix usage of file_ops::dir_sep_chars. - * variables.cc (looks_like_struct): - Likewise. - * ov-fcn-handle.cc (octave_fcn_handle::set_fcn): Likewise. - * octave.cc (execute_command_line_file): Likewise. - * ls-mat5.cc (read_mat5_binary_element): Likewise. - * load-save.cc (find_file_to_load): Likewise. - * load-path.cc (load_path::do_find_file): Likewise. - * graphics.cc (drawnow): Likewise. - * parse.y (frob_function): Likewise. - - * octave.cc (initialize_pathsearch): Fix usage of - file_ops::dir_sep_str. - * help.cc (Flookfor): Likewise. - * dirfns.cc (Ffilesep): Likewise. - (Fautoload): Likewise. - - * defaults.cc (subst_octave_home): Fix usage of - file_ops::dir_sep_char. - (Fmfilename): Likewise. - - 2008-07-31 John W. Eaton - - * parse.y (assign_lhs): Call force_local_variable on all elements - of lexer_flags.pending_local_variables here, then clear the set. - (matrix): Clear lexer_flags.pending_local_variable here. - * lex.l (lexical_feedback::init): Clear it. - (force_local_variable): No longer static. - (is_variable): Also return true for names in the - lexer_flags.pending_local_variables. - (handle_identifier): If we are parsing a matrix list, mark - identifiers as pending local variables rather than forcing them to - be local variables immediately. - * lex.h (lexical_feedback::pending_local_variables): New data member. - (force_local_variable): Provide decl. - - 2008-07-30 John W. Eaton - - * ov-intx.h, ov.cc: Style fixes. - - * gripes.cc (gripe_truncated_conversion): Use the warning ID - Octave:int-convert-overflow. - - 2008-07-30 Jaroslav Hajek - - * gripes.cc (gripe_truncated_conversion): New function. - * gripes.h (gripe_truncated_conversion): Declare it. - * ops.h (DEFCONVFNX2): New macro. - (DEFCONVFN, DEFCONVFN2): Call DEFCONVFNX2 instead of DEFCONVFNX. - * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::convert_gripe): New member - function. - (OCTAVE_VALUE_INT_MATRIX_T::int*_array_value): Call convert_gripe. - (OCTAVE_VALUE_INT_SCALAR_T::convert_gripe): New member function. - (OCTAVE_VALUE_INT_SCALAR_T::int*_scalar_value): Call convert_gripe. - (OCTAVE_VALUE_INT_SCALAR_T::int*_array_value): Call int*_scalar_value. - * ov.cc (convert_to_int_array): New function. - (int_vector_value): Call convert_to_int_array. - - 2008-07-30 John W. Eaton - - * defun-dld.h (DEFUNX_DLD): Eliminate fsname arg. - * defun-int.h (DEFINE_FUN_INSTALLER_FUN2, - DEFINE_FUN_INSTALLER_FUN3, DEFINE_FUNX_INSTALLER_FUN2): Delete. - (DEFINE_FUNX_INSTALLER_FUN): Rename from DEFINE_FUNX_INSTALLER_FUN3. - Don't emit fsname function. Don't append cxx_abi to gname. - (DEFINE_FUN_INSTALLER_FUN): Define in terms of - DEFINE_FUNX_INSTALLER_FUN, not DEFINE_FUN_INSTALLER_FUN2. - * dynamic-ld.cc (octave_dynamic_loader::name_mangler, - octave_dynamic_loader::name_uscore_mangler): New functions. - (octave_dynamic_loader::mangle_name, - octave_dynamic_loader::xmangle_name): Delete. - (octave_dynamic_loader::do_load_oct): Search for function with - name_mangler then name_uscore_mangler. - - * oct-stream.cc (do_read): New arg, do_NA_conv. - Perform NA translation if do_NA_conv is true. - (DO_READ_VAL_TEMPLATE, read_fptr): Include the new arg for do_read - in decl. - (octave_stream::read): Pass do_NA_conv to do_read. - - 2008-07-29 David Bateman - - * data.cc (FNA): Add tests for conversion of single to double NA - values. - - * ov-flt-re-mat.cc (Fsingle): Documentation fix. - - 2008-07-28 David Bateman - - * error.cc (last_error_id, last_error_message, last_warning_id, - last_warning_message): New functions to return the error/warning - message and id without exposing the internal values. - * error.h (last_error_id, last_error_message, last_warning_id, - last_warning_message): Declare them. - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Use them to pass the error - to the ErrorHandler function. - - 2008-07-28 John W. Eaton - - * error.cc (Flasterror, Flasterr): Unwind-protect error_state. - - * DLD-FUNCTIONS/__magick_read__.cc (F__magick_write__, write_image): - New functions. - - 2008-07-25 John W. Eaton - - * DLD-FUNCTIONS/det.cc (Fdet): Return calculated determinant for - numerically singular matrices, not 0. - - * symtab.cc (get_dispatch_type): New function. - (symbol_table::fcn_info::fcn_info_rep::find): Use it. - - * ov-class.cc (set_class_relationship): Delete static function. - (Fsuperiorto, Finferiorto): Warn about precedence conflicts. - Call symbol_table::set_class_relationship instead of local static - function. - * symtab.h (symbol_table::class_precedence_table): New data member. - (symbol_table::set_class_relationship, symbol_table::is_superiorto): - New static functions. - - 2008-07-24 John W. Eaton - - * load-path.h (load_path::dir_info::class_info): New struct. - (load_path::dir_info::method_file_map_type): Now a map from - class name to a to a class_info object. Change all uses. - * load-path.cc (load_path::dir_info::get_method_file_map): - Also look for private functions in the class directory. - (load_path::add_to_method_map): Also add private functions from - class directories to private_fcn_map. - - * dirfns.cc (Fmkdir): If directory already exists, return status = - true, but also set error message. - - 2008-07-23 John W. Eaton - - * ov-usr_fcn.cc (octave_user_function::do_multi_index_op): - Don't unwind_protect and set curr_parent_function here. - * toplev.cc (curr_parent_function): Delete definition. - * toplev.h: (curr_parent_function): Delete declaration. - - * ov-usr-fcn.h (octave_user_function::parent_scope): New data member. - (octave_user_function::parent_fcn_scope, - octave_user_function::stash_parent_fcn_scope): New functions. - * ov-usr_fcn.cc (octave_user_function::octave_user_function): - Initialize parent_scope. - * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find): - Check parent of current function by looking at call stack, not - global curr_parent_function variable. - * parse.y (frob_function): If parsing nested function, stash - current parent function scope. - * ov-fcn.h (octave_function::parent_fcn_scope): New virtual function. - - 2008-07-22 Michael Goffioul - - * graphics.cc (F__go_execute_callback__): New function. - - * DLD-FUNCTIONS/fltk_backend.cc: Undefine min/max after FLTK headers - inclusion. - - * graphics.h.in (class base_graphics_event, class graphics_event): New - classes (replace gh_manager::event_data). - (class gh_manager::event_data): Remove. - (gh_manager::post_function, gh_manager::do_post_function): Use - graphics_event::event_fcn type. - (gh_manager::event_queue, gh_manager::do_post_event): Use - graphics_event type. - * graphics.cc (class callback_event, class function_event, class - set_event): Renamed from xxx_data classes. - (graphics_event::create_callback_event, - graphics_event::create_function_event, - graphics_event::create_set_event): Renamed from gh_manager::xxx - equivalent methods, removed reference count increment. - (gh_manager::do_post_event): Likewise. - (gh_manager::do_post_event): Use graphics_event type. - (gh_manager::do_post_function): Use graphics_event::event_fcn type. - - 2008-07-22 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 3.1.51+. - - 2008-07-21 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 3.1.51. - (OCTAVE_RELEASE_DATE): Now 2008-07-21. - - * ov-class.cc (octave_class::subsasgn): Only do internal magic if - rhs is not an octave_class object. - - * OPERATORS/op-struct.cc: Define concatenation operators for - struct/matrix concatenation (valid if matrix is empty). - * OPERATORS/op-cell.cc (install_cell_ops): Likewise, for cells. - - * DLD-FUNCTIONS/fltk_backend.cc: Don't include oct.h. - Make compilation of entire file conditional on HAVE_FLTK. - - * gl-render.cc: Make compilation of entire file conditional on - HAVE_OPENGL. - - * Makefile.in (GL_RENDER_SRC, FLTK_BACKEND_SRC): Delete variables. - (DLD_XSRC): Always include fltk_backend.cc in the list. - (DIST_SRC): Always include gl-render.cc in the list. - - 2008-07-19 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 3.1.50+. - (OCTAVE_API_VERSION): Now api-v33+. - - 2008-07-18 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 3.1.50. - (OCTAVE_API_VERSION): Now api-v33. - (OCTAVE_RELEASE_DATE): Now 2008-07-18. - (OCTAVE_COPYRIGHT): Update date to 2008. - - 2008-07-18 John W. Eaton - - * Makefile.in (__magick_read__.df): New rule. - Append MAGICK_INCFLAGS to CPPFLAGS. - - * Makefile.in (EXTRAS): Add graphics-props.cc to the list. - List graphics-props.cc as a target generated by genprops.awk. - - 2008-07-18 Carlo de Falco - - * gl-render.h: Conditionally include GL/gl.h or OpenGL/gl.h - and GL/glu.h or OpenGL/glu.h - - 2008-07-17 John W. Eaton - - * symtab.cc (out_of_date_check_internal): New arg, dispatch_type. - Use it to handle class methods. - - * toplev.h (octave_call_stack::do_caller): New function. - (octave_call_stack::caller): Use it. - - 2008-07-17 Jaroslav Hajek - - * Makefile.in (convhulln.oct, __delaunayn__.oct, __voronoi__.oct, - regexp.oct, urlwrite.oct, __glpk__.oct, fltk_backend.oct): - Use OCT_LINK_DEPS instead of DL_LDFLAGS for target-specific - dependencies. - - 2008-07-17 David Bateman - - * DLD-FUNCTION/__magick_read__.cc (F__magick_read__): Allow build - without GraphicsMagick++ installed. - - 2008-07-16 John W. Eaton - - * graphics.h.in (gh_manager::autolock): Delete copy constructor - and assignment definitions. - - 2008-07-16 Michael Goffioul - - * graphics.h.in (callback_property::execute): Remove static version. - (base_properties::is_hittest, base_properties::is_interruptible, - base_properties::is_selected, base_properties::is_selectionhighlight): - New convenience property accessors. - (base_graphics_object::get_handle, graphics_object::get_handle): Idem. - (gh_manager::graphics_lock): New global mutex - (gh_manager::lock, gh_manager::unlock, gh_manager::do_lock, - gh_manager::do_unlock): Add accessors for it. - (gh_manager::autolock): New class for easy locking of the graphics - system. - (gh_manager::event_data): New class for event management. - (gh_manager::event_queue): New object to hold pending events. - (gh_manager::callback_objects): New stack of callback objects. - (gh_manager::execute_callback, gh_manager:post_callback, - gh_manager::post_function, gh_manager::post_set, - gh_manager::process_events, gh_manager::flush_events, - gh_manager::restore_gcbo): New static methods for event management. - (gh_manager::do_execute_callback, gh_manager::do_post_callback, - gh_manager::do_post_function, gh_manager::do_post_set, - gh_manager::do_process_events, gh_manager::do_post_event, - gh_manager::do_restore_gcbo): New non-static versions. - * graphics.cc (xreset_gcbo): Remove. - (execute_callback): Likewise. - (base_property::run_listeners, callback_property::execute): Use - gh_manager::execute_callback. - (class callback_event_data, class function_event_data, class - set_event_data): New classes to implement various types of events. - (gh_manager::event_data::create_callback_event, - gh_manager::event_data::create_function_event, - gh_manager::event_data::create_set_event): Implement event factory - methods. - (gh_manager::do_restore_gcbo, gh_manager::do_execute_callback, - gh_manager::do_post_event, gh_manager::do_post_callback, - gh_manager::do_post_function, gh_manager::do_post_set, - gh_manager::do_process_events): New methods for event management. - (Fishandle, Fset, Fget, F__get__, F__go_figure__, F__go_delete__, - F__go_axes_init__, F__go_handles__, F__go_figure_handles__, - Favailable_backends, Fdrawnow, Faddlistener, Faddproperty, - get_property_from_handle, set_property_in_handle): Lock graphics - system. - (GO_BODY): Likewise. - (Fdrawnow): Support single "expose" argument. - - 2008-07-15 John W. Eaton - - * DLD-FUNCTIONS/__convn__.cc (convn): Cast second arg to - octave_idx_type in call to std::max. - - 2008-07-14 John W. Eaton - - * Makefile.in (convhulln.oct, __delaunayn__.oct, __voronoi__.oct, - regexp.oct, urlwrite.oct, __glpk__.oct, fltk_backend.oct): - Simplify with target-specific settings for DL_LDFLAGS. - - * DLD-FUNCTIONS/__magick_read__.cc: Delete "using namespace std" - and "using namespace Magick" directives. Style fixes. - - * oct-conf.h.in (OCTAVE_CONF_MAGICK_INCFLAGS, - OCTAVE_CONF_MAGICK_LIBS): Substitute here. - * toplev.cc (octave_config_info): Include MAGICK_INCFLAGS and - MAGICK_LIBS in the struct. - * Makefile.in (DLD_XSRC): Add __magick_read__.cc to the list. - (OCTAVE_LIBS): Add $(MAGICK_LIBS) to the list for static linking case. - (__magick_read__.d, __magick_read__.o, pic/__magick_read__.o): - Append MAGICK_INCFLAGS to CPPFLAGS. - (__magick_read__.oct): Append MAGICK_LIBS to LDFLAGS. - - 2008-07-14 Thomas L. Scofield - - * DLD-FUNCTIONS/__magick_read__.cc: New file from Octave Forge. - - 2008-07-11 John W. Eaton - - * syscalls.cc (const_value): Delete arg NM. Change all uses. - - * DLD-FUNCTIONS/fft.cc (do_fft): Avoid GCC warning. - * DLD-FUNCTIONS/fft2.cc (do_fft2): Likewise. - * DLD-FUNCTIONS/fftn.cc (do_fftn): Likewise. - * DLD-FUNCTIONS/qr.cc (Fqrshift): Likewise. - * DLD-FUNCTIONS/lookup.cc (Flookup): Likewise. - * gl-render.cc (opengl_renderer::draw): Likewise. - * graphics.cc (axes::update_axis_limits, - hggroup::update_axis_limits, Favailable_backends): - Likewise. - * pt-cmd.cc (tree_no_op_command::dup, tree_function_def::dup): - Likewise. - * pt-const.cc (tree_constant::dup): Likewise. - * pt-id.cc (tree_identifier::dup): Likewise. - * pt-jump.cc (tree_break_command::dup, tree_continue_command::dup, - tree_return_command::dup): Likewise. - - * DLD-FUNCTIONS/colamd.cc: Style fixes. - (tree_postorder): Rename from TreePostorder. - (tree_postorder, coletree): Avoid GCC warnings. - - * DLD-FUNCTIONS/chol.cc (Fchol): Avoid GCC warnings. - (Fcholdelete, Fcholshift): Delete unused arg nargout. - - * toplev.cc, toplev.h (octave_call_stack::caller_user_function, - octave_call_stack::caller_user_script, - octave_call_stack::do_caller_user_function, - octave_call_stack::do_caller_user_script): - Delete functions and decls. - - * defun.cc (print_usage): Call octave_call_stack::caller_user_code, - not octave_call_stack::caller_user_function. - * debug.cc (get_user_code): Likewise. - - * toplev.h (octave_call_stack::difference_type): Delete typedef. - * toplev.cc, toplev.h (octave_call_stack::caller_user_code_line, - octave_call_stack::do_caller_user_code_line, - octave_call_stack::caller_user_code_column, - octave_call_stack::do_caller_user_code_column, - octave_call_stack::caller_script, - octave_call_stack::do_caller_script, - octave_call_stack::caller_user_function, - octave_call_stack::do_caller_user_function, - octave_call_stack::caller_user_code, - octave_call_stack::do_caller_user_code): - Delete unused difference_type arg. - - * ov-float.h, ov-flt-re-mat.cc, ov-range.h, ov-re-mat.h, - ov-re-sparse.cc, ov-scalar.h: Check for NaN in bool_value and - bool_array_value member functions to bool. - - * ops.h (DEFSCALARBOOLOP_OP): New macro. - * OPERATORS/op-s-s.cc, OPERATORS/op-fs-fs.cc: Use it to define - el_and and el_or ops. - - 2008-07-10 David Bateman - - * DLD-FUNCTIONS/lookup.cc (assign): Delete. - (Flookup): Use new NDArray constructors rather than assign. - * data.cc (Fsort): Use new NDArray constructors rather than - directly assigning. - * besselj.cc (int_array2_to_matrix, int_arrayn_to_array, - int_array2_to_float_matrix, int_arrayn_to_float_array): Delete. - (do-bessel): Use new NDArray constructors. - * max.cc (MINMAX_SPARSE_BODY, MINMAX_INT_BODY, MINMAX_SINGLE_BODY, - MINMAX_DOUBLE_BODY): Use new NDArray constructors. - * ov-bool.h (array_value, float_array_value): Explictly cast - boolean scalar to double before the assignment to avoid ambiguity. - - 2008-07-10 David Bateman - - * ls-mat4.cc (read_mat_binary_data, save_mat_binary_data): Add - loading and saving of sparse matrices. - - 2008-07-10 Michael Goffioul - - * Makefile.in: Add OPENGL_LIBS to liboctinterp link command. Add - GRAPHICS_CFLAGS to fltk_backend.cc compilation command. - * data.cc: Define hypotf to _hypotf when not present. - * gl-render.h: Replace OCTGRAPHICS_API with OCTINTERP_API. - * gl-render.cc: Get rid of Array2. - * OPERATORS/op-int.h: Use powf instead of pow when invoked - with float arguments. - - 2008-07-09 John W. Eaton - - * input.cc (get_debug_input): Don't delete global_command here. - * toplev.cc (main_loop): Undo previous change. - - * toplev.h (octave_call_stack::instance_ok): Push top scope when - creating instance. - - * DLD-FUNCTIONS/inv.cc (Finv): Avoid GCC warning. - - * DLD-FUNCTIONS/expm.cc (Fexpm): Avoid GCC warning. - - * ov-fcn-inline.cc (octave_fcn_inline::load_ascii): Avoid GCC warning. - - 2008-07-09 Michael Goffioul - - * gl-render.cc (opengl_renderer::draw(figure)): Enable line smoothing - according to __enhanced__ property. - (opengl_renderer::draw_marker): Only draw markers with valid call - lists ID. - (opengl_renderer::make_marker_list): Do not produce filled marker call - list for non-fillable markers. - (opengl_renderer::draw(axes)): Do not antialias axes system. - - * gl-render.cc (opengl_renderer::set_polygon_offset): Also enable - polygon offseting in GL_LINE mode. - (opengl_renderer::draw_marker): Offset markers foward instead of - backward (to draw them above lines). - - * Makefile.in: new substituted variables GL_RENDER_SRC and - FLTK_BACKEND_SRC. - - * gl-render.cc (vertex_data::vertex_data_rep::vertex_data(void), - vertex_data::vertex_data(void), vertex_data::vertex_data(...)): - initialize reference counting correctly. - - 2008-07-09 John W. Eaton - - * toplev.cc (main_loop): Unwind-protect global_command. - * input.cc (get_debug_input): Likewise. - - 2008-07-09 David Bateman - - * pt-id.cc (octave_value_list tree_identifier::rvalue (int), - octave_lvalue tree_identifier::lvalue (void)): Remove - MAYBE_DO_BREAKPOINT. - - 2008-07-08 John W. Eaton - - * graphics.h.in (axes::properties::keypos): Declare as - any_property instead of double_property. - - 2008-06-28 John W. Eaton - - * debug.cc (push_dummy_call_stack_elt): Delete. - (Fdbstack): Don't push dummy stack elt. Use nskip instead of - nframes, and curr_frame instead of idx. Pass curr_frame to - octave_call_stack::backtrace. - - * ls-mat5.cc (read_mat5_binary_element): Explicitly pass 0 for - current_context in call to symbol_table::varref. - * ov-fcn-handle.cc (octave_fcn_handle::load_ascii): Likewise. - Fix test. - - * mex.cc (mexGetVariable, mexPutVariable): Use octave_call_stack - methods to manipulate scope and context. - * parse.y (source_file, Fassignin, Fevalin): Likewise. - - * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): - Call octave_call_stack::push after call to symbol_table::push_scope. - Call unwind_protect::add with octave_call_stack::unwind_pop - immediately after call to octave_call_stack::push. - - * symtab.cc (symbol_table::xcurrent_caller_scope): Delete definition. - * symtab.h (symbol_table::xcurrent_caller_scope): Delete decl. - Delete all uses. - (xcurrent_context_this_table): Delete. Delete all uses. - (symbol_table::current_caller_scope): Delete. - - * toplev.cc (octave_call_stack::do_num_user_code_frames): - New function. - (octave_call_stack::do_backtrace): New arg, curr_user_frame. - Rename nframes arg to nskip. Correctly handle curr_frame not at - end of stack. - (octave_call_stack::do_goto_frame_relative): Rename n arg to nskip. - Correctly handle curr_frame not at end of stack. - (octave_call_stack::do_goto_caller_frame): New function. - (octave_call_stack::do_goto_base_frame): New function. - * toplev.h: Provide decls for new functions. - (octave_call_stack::call_stack_elt::prev): New data member. - Initialize it in constructor. - (octave_call_stack::const_reverse_iterator, - octave_call_stack::reverse_iterator): New typedefs. - (octave_call_stack::symbol_table::scope_id current_scope, - octave_call_stack::symbol_table::context_id current_context, - octave_call_stack::num_user_code_frames, - octave_call_stack::goto_caller_frame, - octave_call_stack::goto_base_frame, - octave_call_stack::do_num_user_code_frames, - octave_call_stack::do_current_scope, - octave_call_stack::do_current_context): New functions. - - (octave_call_stack::push): Default value for context arg is - symbol_table::current_context, not 0. - (octave_call_stack::do_push): Save previous frame. Always push - new frame on back of stack. Call symbol_table::set_scope_and_context. - (octave_call_stack::do_pop): Restore previous frame. Always pop - frame from back of stack. Call symbol_table::set_scope_and_context. - - 2008-06-26 John W. Eaton - - * token.h: Omit "class symbol_table::symbol_record" decl; - - * lex.l (grab_block_comment): Use parens around || expression - within && expression. - - 2008-06-23 John W. Eaton - - * debug.cc (Fdbstack): Avoid shadowed variable warning. - - 2008-06-23 Jaroslav Hajek - - * genprops.awk (emit_source): Avoid gensub for portability. - (BEGIN): Ditto. - - 2008-06-20 Jaroslav Hajek - - * DLD-FUNCTIONS/regexp.cc (octregexp_list): Make "once" an output - argument. - (octregexp): Do not use cell arrays when "once" is requested. - - * ov.cc (make_vector_dims): New function. - (vector_value, complex_vector_value, float_vector_value, - float_complex_vector_value): Query N-d array values and simplify, - avoid copying. - (column_vector_value, complex_column_vector_value, - float_column_vector_value, float_complex_column_vector_value, - row_vector_value, complex_row_vector_value, - float_row_vector_value, float_complex_row_vector_value): - Simplify to trivial wrappers. - (int_vector_value): Avoid conversions if integer type, query N-d array - value, simplify. - - 2008-06-17 John W. Eaton - - * toplev.h, toplev.cc (class octave_call_stack): - Push elements on and pop from back of queue. - (octave_call_stack::do_push, octave_call_stack::do_pop): - Always adjust curr_frame. - (octave_call_stack::size, octave_call_stack::do_size): New functions. - * pt-stmt.cc (tree_statement::eval): - Also call octave_call_stack::set_statement when debugging. - * debug.cc (push_dummy_call_stack_elt): New function. - (Fdbstack): Omit dbstack from call stack by popping element rather - than adjusting frame number. Correctly handle arg. - - 2008-06-12 David Bateman - - * DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrshift, Fqrdelete): - Allow single precision arguments, add tests for single precision. - - 2008-06-11 John W. Eaton - - * ov-base.cc (octave_base_value::streamoff_value, - octave_base_value::streamoff_array_value): Delete. - * ov-base.h: Delete decls. - (octave_base_value::is_streamoff): Delete. - * ov-float.cc (octave_float_scalar::streamoff_value, - octave_float_scalar::streamoff_array_value): Delete. - * ov-float.h: Delete decls. - * ov-flt-re-mat.cc (octave_float_matrix::streamoff_array_value): Delete. - * ov-flt-re-mat.h: Delete decl. - * ov-re-mat.cc (octave_matrix::streamoff_array_value): Delete. - * ov-re-mat.h: Delete decl. - * ov-re-sparse.cc (octave_sparse_matrix::streamoff_array_value): Delete. - * ov-re-sparse.h: Delete decl. - * ov-scalar.cc (octave_scalar::streamoff_value, - octave_scalar::streamoff_array_value): Delete. - * ov-scalar.h: Delete decls. - * ov.cc (octave_value::octave_value (const streamoff_array&), - octave_value::octave_value (const ArrayN&), - octave_value::streamoff_value (void) const, - octave_value::streamoff_array_value (void) const): Delete. - * ov.h: Delete decls. - (octave_value::is_streamoff): Delete. - * ov.cc (install_types): Don't register streamoff type. - * ov-streamoff.h, ov-streamoff.cc, OPERATORS/op-streamoff.cc: Delete. - * Makefile.in: Delete them from the lists. - - * error.cc (verror): Restore newline in msg_string. Stripping - "error: " prefix when buffering error messages is no longer neeed. - - 2008-06-25 David Bateman - - * pr-output.cc (Frats): Print usage if nargin == 0. - - 2008-06-10 John W. Eaton - - * mexproto.h (mxCreateLogicalScalar): Declar arg as mxLogical, not int. - - 2008-06-09 John W. Eaton - - * graphics.cc (execute_callback): Pass CB by const reference and - explicitly make a copy. - (xget_ancestor): Pass GO by const reference and explicitly make a copy. - - * error.cc (verror): Omit "name: " and "\a" from Vlast_error_msg. - Save line and column information from user code. - * toplev.cc (octave_call_stack::do_caller_user_code_line, - octave_call_stack::do_caller_user_code_column): New functions. - * toplev.h: Provide decls. - (octave_call_stack::caller_user_code_line, - octave_call_stack::caller_user_code_column): New functions. - (octave_call_stack::current_line, octave_call_stack::current_column): - Default return value is -1, not 0. - - 2008-06-06 John W. Eaton - - * ov.h (octave_value::erase_subfunctions): - New function. - * ov-base.h (octave_base_value::erase_subfunctions): - New virtual function. - * ov-usr-fcn.h (octave_user_function::erase_subfunctions): - New function. - * symtab.h (symbol_table::fcn_info::::erase_subfunction, - symbol_table::fcn_info::fcn_info_rep::erase_subfunction, - symbol_table::erase_subfunctions_in_scope): - New functions. - (symbol_table::fcn_info::fcn_info_rep::clear_user_function): - Erase subfunctions here. - - * variables.cc (Fmlock): Doc fix. - - 2008-06-05 John W. Eaton - - * gl-render.cc (opengl_renderer::draw): Correctly avoid shadow - warnings from gcc for xmin, xmax, ymin, ymax, zmin, and zmax. - - * graphics/ChangeLog, graphics/Makefile.in, graphics/Makerules.in, - graphics/fltk_backend/Makefile.in, graphics/opengl/Makefile.in: - Delete. - - * gl-render.cc, gl-render.h: Move here from graphics/opengl. - * Makefile.in: Add them to the appropriate lists. - (octave$(EXEEXT)): Also link with $(OPENGL_LIBS) - - * fltk_backend.cc: Move here from graphics/fltk_backend. - * Makefile.in (DLD_XSRC): Add it to the list - (fltk_backend.oct): Include special rules for linking with - $(GRAPHICS_LIBS) and $(FT2_LIBS). - - * dynamic-ld.cc (octave_dynamic_loader::mex_mangler, - octave_dynamic_loader::mex_uscore_mangler, - octave_dynamic_loader::mex_f77_mangler): New functions. - (octave_dynamic_loader::do_load_mex): Use them. - (octave_dynamic_loader::do_remove_oct): Rename from - octave_dynamic_loader::do_remove. - (octave_dynamic_loader::do_remove_mex): New function. - * dynamic-ld.h: Provide/fix decls. - - * graphics.cc (properties::update_normals): Style fixes. - * graphics.h.in: Style fixes. - - ChangeLog entries for gl-render.h, gl-render.cc, and - fltk_backend.cc before the move: - - 2008-06-05 John W. Eaton - - * opengl/gl-render.cc (xmin): New static function. - - * opengl/gl-render.h (opengl_renderer): Style fixes. - * fltk_backend/fltk_backend.cc: Style fixes. - - 2008-04-26 Michael Goffioul - - * opengl/gl-render.h (opengl_renderer::draw(hggroup)): New method. - * opengl/gl-render.cc (opengl_renderer::draw(hggroup)): Likewise. - (opengl_renderer::draw(graphics_object)): Call it. - - 2008-03-17 Shai Ayal - - * fltk_backend/fltk_backend.cc (plot_window::resize, - plot_window::draw): make canvas the size of figure.position - - 2008-03-09 Shai Ayal - - * fltk_backend/fltk_backend.cc (plot_window::handle): add zoom - stack - - 2008-03-06 Shai Ayal - - * fltk_backend/fltk_backend.cc (plot_window::handle): Add handling - of the 'a' and 'g' keys - (plot_window: toggle_grid): New helper function - (plot_window): Add new togglegrid button - - 2008-03-01 Shai Ayal - - * fltk_backend/fltk_backend.cc (OpenGL_fltk::draw_overlay, - OpenGL_fltk::zoom, OpenGL_fltk::set_zoom_box): Added to support - zoom box - (plot_window::handle): Added zoom box code, B-3 now does autoscale - (plot_window::axis_auto): New utility function to call axis("auto") - (plot_window::button_press): "A" button now does autoscale - - * opengl/gl-render.cc (make_marker_list): Add the "+x*.^v><" - markers - - 2008-02-27 Michael Goffioul - - * opengl/gl-render.cc (opengl_renderer::draw(patch), - opengl_renderer::draw(surface)): Adapt to type change of facealpha and - edgealpha, using double_radio_property class. - - 2008-02-26 Michael Goffioul - - * opengl/gl-render.h: Make sure windows.h is included before OpenGL - headers. - * fltk_backend/Makefile.in (FLTK_EXTRA_CXXFLAGS): Use $(srcdir) for - includesion of OpenGL renderer headers. - (Makeconf): Move inclusion of Makeconf later on, to avoid freezing - MinGW make. - - * fltk_backend/Makefile.in (GRAPHICS_CFLAGS): New substituted - variable. - - 2008-02-25 Shai Ayal - - * fltk_backend/fltk_backend.cc (class plot_window): Many changes - to use figure::properties instead of figure handle to reference - the figure - (class figure_manager): ditto - (__fltk_redraw__): moved most of functionality into the - figure_manager class - (plot_window::pixel2pos): Modified to use axes::pixel2coord - (plot_window::pixel2staus): Modified to use pixel2pos - (plot_window::handle): Added zoom with mouse - - 2008-02-24 Shai Ayal - - * fltk_backend/fltk_backend.cc (OpenGL_fltk::Draw): removed double - buffer switch - (OpenGL_fltk::setup_viewport): removed call to glOrtho -- - gl-render takes care of all the transformations - - 2008-02-23 Shai Ayal - - * fltk_backend/fltk_backend.cc (plot_window::mark_modifed): mark - the whole window as damaged (otherwise changing figure.postion - does not have immediate effect) - (plot_window::draw): New function, checks for window size - (__fltk_maxtime__): New DEFUN to allow tweaking of fltk timeout - (__fltk_redraw__): Use fltk_maxtime as timeout - - 2008-02-21 Michael Goffioul - - * opengl/gl-render.cc (opengl_renderer::patch_tesselator::combine): - Protect against NULL vertex data. - - * opengl/gl-render.cc (opengl_renderer::draw(patch)): Add marker - rendering of patch objects. - - 2008-02-21 Shai Ayal - - * opengl/gl-render.cc: remove OpenGL includes - * opengl/gl-render.h: add OpenGL includes - * fltk_backend/fltk_backend.cc: remove OpenGL includes - (__fltk_redraw__): put figure handle into the figure's - __plot_stream__ property for later - (fltk_backend::close_figure): use argument as figure handle to - close - - 2008-02-20 Shai Ayal - - * fltk_backend/Makefile.in: initial import - - * fltk_backend/fltk_backend.cc: initial import - - - 2008-02-20 Michael Goffioul - - * opengl/gl-render.h (opengl_renderer::draw(patch)): New method to - render patch objects. - (class opengl_renderer::patch_tesselator): Forward declaration. - * opengl/gl-render.cc (opengl_texture::create): Use RGB data format - instead of RGBA. - (class opengl_tesselator): New classes to abstract GLU tessellation - process. - (class opengl_renderer::patch_tesselator): New class to render opaque - patch objects. - (class vertex_data): New class to hold vertex data during tessellation - of patch objects. - (opengl_renderer::draw(patch)): New method to render patch objects (no - transparency, no border, no marker yet). - (opengl_renderer::draw(graphics_object)): Dispatch to it. - - * opengl/gl-render.cc (opengl_renderer::draw(patch)): Use patch color - data and support face/vertex single color specification. - - * opengl/gl-render.cc (opengl_tesselator::begin_polygon): Set - tessellation property also for non-filled polygons. - (opengl_renderer::patch_tesselator::vertex): Protect against empty - color matrices. - (opengl_renderer::draw(patch)): Render patch border (no transparency - yet). - - 2008-02-19 Michael Goffioul - - * opengl/gl-render.cc (opengl_texture::texture_rep::tex_coord, - opengl_texture::tex_coord): New wrapper around glTexCoord2d. - (opengl_renderer::draw(surface)): Use it for texturemap - implementation. - (opengl_renderer::draw(surface)): Fix indexing bug when creating clip - matrix. - (opengl_texture::operator=): Add assignment operator. - (opengl_texture::create): New static opengl_texture creator. - (opengl_texture::is_valid): New accessor. - - 2008-02-18 Michael Goffioul - - * opengl/gl-render.cc (class opengl_texture): New class to wrap - texture operations in OpenGL. - - 2008-02-17 Michael Goffioul - - * opengl/gl-render.cc (opengl_renderer::draw(surface)): Set material - color when rendering surface facets. - - * opengl/gl-render.cc (opengl_renderer::draw(surface)): Add rendering - of mesh and markers. - - 2008-02-16 Michael Goffioul - - * opengl/gl-render.cc (opengl_renderer::draw(figure)): Initialize the - OpenGL context correctly. - (opengl_renderer::draw(surface)): Add missing glEnd call. - - 2008-02-14 Michael Goffioul - - * opengl/gl-render.h opengl/gl-render.cc: Add rendering - interface for surface objects (actual implement still - missing). - - 2008-02-14 Michael Goffioul - - * Makefile.in Makerules.in: Initial import - * opengl/Makefile.in: Likewise. - * opengl/gl-render.h opengl/gl-render.cc: Likewise. - - 2008-06-04 Shai Ayal - - * graphics.cc (axes::properties::set_defaults): Preserve position - if mode is replace. - (axes::properties::sync_positions): Use default_axes_postion for - consistency. - - * graphics.h.in (axes::properties::sync_positions, - axes::properties::update_position, - axes::properties::update_outerposition): New functions to sync - outerposition and position. - - * graphics.h.in (axes::properties::update_xlim, - axes::properties::update_ylim, axes::properties::update_zlim): - pass is_logscale flag to axes::properties::calc_ticks_and_lims - * graphics.cc (axes::properties::calc_ticks_and_lims): Added - support for log scale - - * graphics.h.in (axes::properities::fix_limits) : New method. - (axes::properties::update_xlim, axes::properties::update_ylim, - axes::properties::update_zlim): Use fix_limits. - - * graphics.cc (axes::properties::calc_ticks_and_lims): Make sure - that lo <= hi. - - * graphics.h.in (axes::pixel2coord, axes::coord2pixel): New functions. - - * graphics.cc (convert_position): No longer static. - * graphics.h.in: Provide decl. - - * graphics.cc (Favailable_backends): New function. - * graphics.h.in (base_graphics_backend::available_backends_list): - New function. - - * graphics.cc (axes::properties::calc_ticks_and_lims): Refactor. - Adjust axes limits & tics together so that the result is consistent. - (axes::properties::calc_tick_sep): Ditto. - (axes::properties::get_axis_limits): Ditto. Now a member of - axes::properties - (magform): Now file-scope static function instead of - axes::properties member function. - - * graphics.h.in (axes::properties::update_xlim): call the new - axes::properties::calc_ticks_and_lims method - (axes::properties::update_ylim): ditto - (axes::properties::update_zlim): ditto - - 2008-06-04 Michael Goffioul - - * ov-fcn-inline.h (class octave_fcn_inline): Mark with OCTINTERP_API. - * ov-fcn-handle.h (class Octave_fcn_handle): Likewise. - * ls-oct-binary.h (save_binary_data, read_binary_data): Likewise. - - * genprops.awk (emit_source): Fix if-then-else statement generation - when the first property is hidden. - * graphics.h.in (base_properties::adopt): Call mark_modified. - (class hggroup): New graphics object class. - * graphics.cc (lookup_object_name, make_graphics_object_from_type, - property_list::lookup, property_list::set, - root_figure::init_factory_properties): Support hggroup as possible - object type. - (hggroup::update_axis_limits): New graphics object class. - (make_graphics_object): Look for "parent" property in the arguments - and use it as actual parent for the created object. - (F__go_hggroup__): New function. - (F__go_delete__): Set Vdrawnow_requested to true. - - * graphics.h.in (base_property::clone, string_property::clone, - radio_property::clone, color_property::clone, double_property::clone, - double_radio_property::clone, array_property::clone, - row_vector_property::clone, bool_property::clone, - handle_property::clone, callback_property::clone, any_property::clone, - property::clone): New virtual method. - (property::create): New static method to create dynamic properties. - (base_properties::has_property): New method to check the existence of - a property. - (any_property::any_property, row_vector_property::row_vector_property, - double_radio_property::double_radio_property): New copy constructors. - * graphics.cc (lookup_object_name): New static utility function. - (make_graphics_object_from_type): Likewise. - (gh_manager::do_make_graphics_handle): Use it. - (dprop_obj_map): New static map used for chaching purpose in dynamic - property creation. - (property::create): New static method to create dynamic properties. - (base_properties::has_property): New method to check the existence of - a property. - (base_properties::override_defaults): Check parent validity. - (Faddlistener): Documentation fix. - (Faddproperty): New function to create dynamic properties. - - * genprops.awk (emit_get_array): Don't produce get_xxx_property - accessors. - * graphics.h.in (array_property::get_limits): New method to return the - array limits. - (base_properties::get_xdata_property, - base_properties::get_ydata_property, - base_properties::get_zdata_property, - base_properties::get_ldata_property, - base_properties::get_udata_property, - base_properties::get_xldata_property, - base_properties::get_xudata_property, - base_properties::get_cdata_property): Remove methods, replaced with - limit-based equivalent. - (base_graphics_object::get_xdata_property, - base_graphics_object::get_ydata_property, - base_graphics_object::get_zdata_property, - base_graphics_object::get_ldata_property, - base_graphics_object::get_udata_property, - base_graphics_object::get_xldata_property, - base_graphics_object::get_xudata_property, - base_graphics_object::get_cdata_property): Likewise. - (graphics_object::get_xdata_property, - graphics_object::get_ydata_property, - graphics_object::get_zdata_property, - graphics_object::get_ldata_property, - graphics_object::get_udata_property, - graphics_object::get_xldata_property, - graphics_object::get_xudata_property, - graphics_object::get_cdata_property): Likewise. - (base_properties::get_xlim, base_properties::get_ylim, - base_properties::get_zlim, base_properties::get_clim, - base_properties::get_alim, base_properties::is_xliminclude, - base_properties::is_yliminclude, base_properties::is_zliminclude, - base_properties::is_climinclude, base_properties::is_aliminclude): - New methods. - (base_graphics_object::get_xlim, base_graphics_object::get_ylim, - base_graphics_object::get_zlim, base_graphics_object::get_clim, - base_graphics_object::get_alim, base_graphics_object::is_xliminclude, - base_graphics_object::is_yliminclude, - base_graphics_object::is_zliminclude, - base_graphics_object::is_climinclude, - base_graphics_object::is_aliminclude): Likewise. - (graphics_object::get_xlim, graphics_object::get_ylim, - graphics_object::get_zlim, graphics_object::get_clim, - graphics_object::get_alim, graphics_object::is_xliminclude, - graphics_object::is_yliminclude, graphics_object::is_zliminclude, - graphics_object::is_climinclude, graphics_object::is_aliminclude): - Likewise. - (base_graphics_object::update_axis_limits): Provide default behavior - by passing the call to the parent object. - (line::properties::xdata, line::properties::ydata, - line::properties::zdata, line::properties::ldata, - line::properties::udata, line::properties::xldata, - line::properties::xudata): Replace 'l' modifier with 'u'. - (line::properties::xlim, line::properties::ylim, - line::properties::zlim, line::properties::xliminclude, - line::properties::yliminclude, line::properties::zliminclude): New - hidden properties. - (line::properties::update_xdata, line::properties::update_ydata, - line::properties::update_zdata, line::properties::update_xldata, - line::properties::update_xudata, line::properties::update_ldata, - line::properties::update_udata): New updaters that update limit - properties. - (line::properties::compute_xlim, line::properties::compute_ylim): New - method to compute actual limits taking into account x/y data and - upper/lower bounds. - (text::properties::position): Add 'u' modifier. - (text::properties::xlim, text::properties::ylim, - text::properties::zlim, text::properties::xliminclude, - text::properties::yliminclude, text::properties::zliminclude): New - hidden properties. - (text::properties::update_position): New updater that updates limit - properties. - (image::properties::xdata, image::properties::ydata, - image::properties::cdata): Replace 'l' modifier with 'u'. - (image::properties::cdatamapping): Add 'l' modifier. - (image::properties::xlim, image::properties::ylim, - image::properties::clim, image::properties::xliminclude, - image::properties::yliminclude, image::properties::climinclude): New - hidden properties. - (image::properties::get_climinclude, - image::properties::is_climinclude): Provide specialized inline - accessors. - (image::properties::update_xdata, image::properties::update_ydata, - image::properties::update_cdata): New updaters that update limit - properties. - (patch::properties::xdata, patch::properties::ydata, - patch::properties::zdata, patch::properties::cdata): Replace 'l' - modifier with 'u'. - (patch::properties::cdatamapping): Add 'l' modifier. - (patch::properties::alphadatamapping): New property. - (patch::properties::xlim, patch::properties::ylim, - patch::properties::zlim, patch::properties::clim, - patch::properties::alim, patch::properties::xliminclude, - patch::properties::yliminclude, patch::properties::zliminclude, - patch::properties::climinclude, patch::properties::aliminclude: New - hidden properties. - (patch::properties::get_climinclude, - patch::properties::is_climinclude, patch::properties::get_aliminclude, - patch::properties::is_aliminclude): Provide specialized inline - accessors. - (patch::properties::update_xdata, patch::properties::update_ydata, - patch::properties::update_zdata, patch::properties::update_cdata): New - updaters that update limit properties. - (surface::properties::xdata, surface::properties::ydata, - surface::properties::zdata, surface::properties::cdata, - surface::properties::alphadata): Replace 'l' modifier with 'u'. - (surface::properties::cdatamapping, - surface::properties::alphadatamapping): Add 'l' modifier. - (surface::properties::xlim, surface::properties::ylim, - surface::properties::zlim, surface::properties::clim, - surface::properties::alim, surface::properties::xliminclude, - surface::properties::yliminclude, surface::properties::zliminclude, - surface::properties::climinclude, surface::properties::aliminclude: New - hidden properties. - (surface::properties::get_climinclude, - surface::properties::is_climinclude, - surface::properties::get_aliminclude, - surface::properties::is_aliminclude): Provide specialized inline - accessors. - (surface::properties::update_xdata, surface::properties::update_ydata, - surface::properties::update_zdata): Update limit properties. - (surface::properties::update_cdata, - surface::properties::update_alphadata): New updaters that update limit - properties. - * graphics.cc (base_properties::update_axis_limits): Simply call - update_axis_limits in owning graphics_object. - (base_graphics_object::update_axis_limits): Provide default behavior - by passing the call to the parent object. - (check_limits_vals(double&,double&,double&,const octave_value&)): New - static method to work with new limit properties in graphics objects. - (get_children_limits): New static method to compute the raw limits of - a set of children, based on the new limit properties. - (axes::update_axis_limits): Simplify and call get_children_limits. Add - handling of alpha limits. - (line::properties::compute_xlim, line::properties::compute_ylim): New - methods to compute line limits taking into account upper/lower bounds. - - * graphics.cc (axes::properties::sync_positions): Update - transformation data. - - * graphics.cc (Faddlistener): Rename from Fadd_listener. - - * graphics.h.in (axes::properties::pixel2coord): Center Z coordinate - on x_zlim instead of 0. - (axes::properties::zoom, axes::properties::unzoom, - axes::properties::clear_zoom_stack): New methods to handle zoom stack. - (axes::properties::zoom_stack): New field to hold zoom stack. - (axes::properties::update_xlim, axes::properites::update_ylim): - Additional do_clr_zoom argument to control whether the zoom stack will - be cleared. - (axes::properties::update_zlim): Clear zoom stack. - * graphics.cc (axes::properties::zoom, axes::properties::unzoom, - axes::properties::clear_zoom_stack): New methods to handle zoom stack. - - * genprops.awk (emit_source): Use all properties in factory defaults. - - * graphics.h.in (base_property::base_property): Set internal counter - to 1 by default. - (property::property): Adapt constructors to default counter value in - base_property. - - * graphics.h.in (base_properties::get_property): Make virtual and - remove const modifier. - * graphics.cc (base_properties::get_property): Can return built-in - properties. Generate an error if the property does not exist. - (base_properties::add_listener): Use get_property. - (Fadd_listener): Add documentation. - * genprops.awk (emit_common_declarations, emit_source): Emit code for - overloaded get_property method. - - * genprops.awk (emit_declarations): Run listeners in the property - setter methods. - * graphics.h.in (enum listener_mode): New enum type for listeners. - (base_property::set): Make non-virtual and handle listeners execution. - (base_property::listeners): New field holding a map of listeners. - (base_property::add_listener, base_property::run_listeners, - base_property::do_set): New methods to handle listeners. - (property::add_listener, property::run_listeners): Likewise. - (base_properties::add_listener): Likewise. - (base_graphics_object::add_property_listener, - graphics_object::add_property_listener): Likewise. - (all property classes): Rename set to do_set and make it protected. - * graphics.cc (base_property::run_listeners): New method to execute - listeners. - (color_property::set, double_radio_property::set, - handle_property::set): Rename to do_set. - (base_properties::add_listener): New method to handle listener - additio. Only handle dynamic properties. - (Fadd_listener): New octave interface to add property listeners to - graphics object. - - * genprops.awk (emit_get_data): Remove. - (emit_declarations): Treat row_vector_property as array_property and - remove data_property references. - * graphics.h.in (array_property::array_property(array_property)): Add - copy constructor. - (class data_property): Remove (replaced by array_property). - (class base_graphics_backend, class graphics_backend): Replace - data_property references with array_property. - (line::properties::xdata, line::properties::ydata, - line::properties::zdata, line::properties::ldata, - line::properties::udata, line::properties::xldata, - line::properties::xudata): Turn into row_vector_property. - (image::properties::xdata, image::properties::ydata): Likewise. - (image::properties::init): Add length constraints for xdata and ydata. - (patch::properties::xdata, patch::properties::ydata, - patch::properties::zdata, patch::properties::facevertexalphadata): - Turn into array_property. - (surface::properties::xdata, surface::properties::ydata, - surface::properties::zdata): Likewise. - (patch::properties::init): Add size constraints for xdata, ydata, - zdata and facevertexalphadata. - (surface::properties::init): Add size constraints for xdata, ydata and - zdata. - * graphics.cc (check_limit_vals): Remove override with data_property. - (axes::update_axis_limits): Replace data_property references with - array_property. - - * graphics.h.in (root_figure::get_default): Use factory defaults when - no explicit default value exists. - (figure::properties::set___backend__): Reset __plot_stream__ to empty - value. - * graphics.cc (gh_manager::gh_manager): Call - graphics_backend::default_backend to make sure the default backend is - initialized. - - * graphics.h.in (patch::properties::edgealpha, - surface::properties::facealpha, surface::properties::edgealpha): Fix - typos in property names. - - * graphics.h.in (class double_radio_property): New property class for - holding face/edge alpha values. - (patch::properties::facealpha, patch::properties::edgealpha, - surface::properties::facealpha, surface::properties::edgealpha): Use - double_radio_property class. - * graphics.cc (double_radio_property::set): Implement new property - class. - * genprops.awk (emit_get_double_radio): New function to emit code for - double_radio_property. - (emit_declarations): Use it. - - * graphics.h.in (array_property::array_property(void)): New default - constructor. - (array_property::xmin, array_property:xmax, array_property::xminp, - array_property::min_val, array_property::max_val, - array_property::min_pos): New fields and accessors to hold min/max - values of the array data. - (array_property::get_data_limits): New method to compute min/max - values of the array data. - (base_properties::get_cdata_property, - graphics_object::get_cdata_property): Return array_property. - (image::properties::cdata, surface::properties::cdata, - patch::properties::cdata, patch::properties::facevertexcdata): Turn - into array_property type. - (image::properties::init, surface::properties::init, - patch::properties::init): Add constraint initialization for cdata and - facevertexcdata (patch only). - * genprops.awk (emit_get_array): New function to emit accessor for - array_property. - (emit_declarations): Use it. - * graphics.cc (get_array_limits): New template function to compute - min/max values of an Array object. - (array_property::get_data_limits): New method to compute min/max - values of the array data, using get_array_limits. - (check_limit_vals): Overridden function with array_property. - (axes::update_axis_limits): Turn cdata property into array_property. - - * graphics.h.in (patch::properties::get_color_data): New utility - function to retrieve actual color data. - * graphics.cc (patch::properties::get_color_data): Likewise. - - * graphics.h.in (base_scaler::is_linear, lin_scaler::is_linear, - scaler::is_linear): New method to detect linear scales. - (graphics_xform::scale(Matrix)): New method to scale 2D/3D coordinates - directly. - (patch::properties::facelighting): Set default value to "none". - - * graphics.h.in (axes::axes): Be sure to initialize transformation - data correctly. - - * graphics.cc (xget_ancestor): Pass graphics_object argument by value - instead of by reference. - - * graphics.h.in (surface::properties::xdata, - surface::properties::ydata, surface::properties::zdata, - surface::properties::normalmode, surface::properties::vertexnormals): - Add 'u' modifier. - (surface::properties::update_normals): New method to compute normals - automatically. - (surface::properties::update_xdata, surface::properties::update_ydata, - surface::properties::update_zdata, - surface::properties::update_normalmode, - surface::properties::update_vertexnormals): New updaters to update - normals automatically. - * graphics.cc (surface::properties::update_normals): Likewise. - (cross_product): New inlined utility function for cross product - computation adn accumulation. - - * graphics.h.in (class base_scaler, class lin_scaler, class - log_scaler, class scaler): Add scale method for NDArray. - (log_scaler::do_scale): Factorize scaling code. - - * graphics.h.in (figure::properties::update_position): Re-remove. - (figure::properties::facecolor): Re-add 'texturemap' value. - (surface::properties::get_color_data): New method to compute actual - surface color data from cdata. - * graphics.cc (surface::properties::get_color_data): Likewise. - (xget_ancestor): New utility function to retrieve an ancestor of a - given type. - (convert_cdata): New utility function to convert cdata property into - actual color data. - - * graphics.h.in (surface::properties::facecolor): Add "texturemap" - as possible value. - (class surface::properties): New properties alphadata, - alphadatmapping, ambientstrength, backfacelighting, diffusestrength, - edgealpha, edgelighting, erasemode, facelighting, meshstyle, - normalmode, specularcolorreflectance, specularexponent, - specularstrength, vertexnormals. - (surface::properties::init): Add constraints for alphadata, - vertexnormals and cdata (the latter are commented until cdata - has changed type). - - * graphics.h.in (base_properties::update_boundingbox): New method - to handle object resize. - (figure::properties::set_boundingbox): New method to set figure - position from backend. - (figure::properties::update_position): Remove method. - (figure::properties::position): Remove 'u' modifier and add 'S' - modifier. - (axes::properties::update_boundingbox): Overload to recompute - transformation when axes size changed. - * graphics.cc (base_properties::update_boundingbox): New method. - (figure::properties::set_boundingbox, - figure::properties::set_position): Likewise. - - * genprops.awk: Add 'U' modifier to support extern updaters. - * graphics.h.in (base_graphics_backend::gripe_invalid): New method - to simplify error reporting. - (class base_graphics_backend): Use it. - (base_graphics_backend::set_figure_position): New backend method. - (graphics_backend::set_figure_position): Likewise. - (figure::properties::position): Mark property with updater. - (figure::properties::update_position): New updater. - - * graphics.h.in (root_figure::properties::callbackobject): - New root property. - (root_figure::properties::cbo_stack): New field. - * graphics.cc (xset_gcbo, xreset_gcbo): New utility functions. - (execute_callback): Set callbackobject property in root object - before executing a callback. - (root_figure::properties::set_callbackobject): Implement accessor. - - * graphics.h.in (root_figure::properties::callbackobject): - New root property. - (root_figure::properties::cbo_stack): New field. - * graphics.cc (xset_gcbo, xreset_gcbo): New utility functions. - (execute_callback): Set callbackobject property in root object - before executing a callback. - (root_figure::properties::set_callbackobject): Implement accessor. - - * graphics.h.in (class root_figure::properties, - class line::properties, class text::properties, - class image::properties, class patch::properties, - class surface::properties): Export classes with - OCTINTERP_API. - - * graphics.cc (axes::properties::set_defaults): Use correct - default values for gridlinestyle and minorgridlinestyle. - - 2008-06-03 Jaroslav Hajek - - * load-save.cc (Fload): Fix "-7" option. - - 2008-06-02 David Bateman - - * pt.cc (tree:last_break_function): Next pointer to last function - with a breakpoint. - * pt.h (tree:last_break_function): ditto. - * debug.cc (Fdbstep): Use tree::break_function value of zero to - signal to step into the next function. Set tree::last_break_function - to indicate position of last breakpoint. - (Fdbnext): Set tree::last_break_function to indicate position of - last breakpoint. - * pt-bp.h (MAYBE_DO_BREAKPOINT): Check tree::break_function value - of zero as well. Only check tree::last_line if we are in teh same - function as the last breakpoint. - * input.cc (char Vfilemarker): New global variable. - (Ffilemarker): New function to query and set Vfilemarker. - * input.h (extern char Vfilemarker): Make Vfilemarker available. - * util.cc (fcn_file_in_path): If the input argument contains - Vfilemarker, strip the trailing part of string from this point - when looking for function file. - * toplev.cc (octave_call_stack::fo_backtrace): Mark subfunctions - with the name of the parent function and Vfilemarker. - * symtab.cc (symbol_table::find_function (const std::string&, - tree_argument_list *, const string_vector&, octave_value_list*, - bool&): If function name contains Vfilemarker, check in scope of - specified parent function. - - * DLD-FUNCTIONS/betainc.cc: Move test code here. Add test code for - single precision type. - * DLD-FUNCTIONS/gammainc.cc: Ditto. - * DLD-FUNCTIONS/gcd.cc (Fgcd): Support single precision. Move test - code here. Add test code for single precision type. - * data.cc: Move test code here and add tests for single precision - type. Add tests for Fislogical. - (NATIVE_REDUCTION): Support the 'double' argument. - * mapper.cc: Move test code here and add tests for single precision - type. - * ov-float.cc (CD_SCALAR_MAPPER): Replace Complex with - FloatComplex. - (erf, erfc, abs, acos, asin, asinh, atan, atanh, ceil, cos, cosh, - exp, expm1, floor, log10, log1p, sin, sinh, sqrt, tan, tanh): Use - float version of base functions (ie. ::sinf and not ::sin) - (lgamma, acosh, log, log2, log10, log1p): Use single precision - infinity value. - * ov-flt-complex.cc (erf, erfc, expm1, log1p): Use the float - version of base functions. - * ov-flt-cx-mat.cc (DARRY_MAPPER): Replace NDArray with FloatNDArray. - (erf, erdc, gamma): Use FloatNDArray::dmapper and not - NDArray::dmapper. - * ov-flt-cx-mat.h (is_double_type): Delete. - (is_single_type): New method. - * ov-flt-re-mat.cc (lgamma, acosh, log, log2, log10, log1p, - sqrt): Use single precision infinity value. - - * chol.cc (Fcholinv, Fchol2inv, Fcholupdate, Fcholinsert, - Fcholdelete, Fcholshift): Allow single precision arguments. - (Fchol): Move test code here. Add test code for single precision. - (Fcholupdate, Fcholinsert, Fcholdelete, Fcholshift): Add test code - for single precision. - * conv2.cc (Fconv2): Add single precision test code. - * det.cc (Fdet): For single values or empty matrices, return - single precision arg for single precion input. Move test code - here. Add single precision test code. - * fft.cc (do_fft): For empty single precision arguments return a - single precision value. Add single precision test code. Remove - fft2 test code. - * fft2.cc (do_fft2): For empty single precision arguments return a - single precision value. Add single precision test code. Move fft2 - test code here. - * fftn.cc (do_fftn): For empty single precision arguments return a - single precision value. - * eig.cc (Feig): Move test code here. Add single precision test - code. - * expm.cc (Fexpm): Ditto. - * find.cc (Ffind): Ditto. - * hess.cc (Fhess): Ditto. - * inv.cc (Finc): Ditto. - * lu.cc (Flu): Ditto. - * qr.cc (Fqr): Ditto. - * schur.cc (Fschur): Ditto. - * svd.cc (Fsvd): Ditto. - * syl.cc (Fsyl): Ditto. - - * op-fcm-fcm.cc, op-fcm-fcs.cc, op-fcm-fm.cc, op-fcm-fs.cc, - op-fcs-fcm.cc, op-fcs-fcs.cc, op-fcs-fm.cc, op-fcs-fs.cc, - op-fm-fcm.cc, op-fm-fcs.cc, op-fm-fm.cc, op-fm-fs.cc, - op-fs-fcm.cc, op-fs-fcs.cc, op-fs-fm.cc, op-fs-fs.cc: Add mixed - double, single precision concatenation operators. - - * data.cc (Fall, Fany, Fdiag, Fcat, Fismatrix, Fones, Fzeros, - Finf, FNaN, FNA, Feye, Flinspace, Freshape, Ftranspose, - Fctranspose, Fsort). Move tests here. Add single precision tests. - * mappers.cc (Ffinite, Fisinf, Fisna, Fisnan): Ditto. - * ov-float.cc (octave_float_scalar:resize): single precision - return value. - * ov.cc (octave_value::octave_value (const - FloatComplexDiagMatrix&)): Ditto. - * data.cc (Fnorm): Add single precision. - (do_cat): Disable fast return and skipping empty matrices, as they - play a part in determining the return type. - * ov.cc (octave_value do_cat_op (const octave_value&, const - octave_value&, const Array&)): ditto. - - 2008-06-02 Jaroslav Hajek - - * ov-cell.cc (Fcellstr): For compatibility with Matlab, return {''} - when given ''. - - 2008-05-26 Jaroslav Hajek - - * DLD-FUNCTIONS/fsolve.cc (fsolve_user_function, - fsolve_user_jacobian): Reshape argument to original dims before - passing. - (Ffsolve): Save original dimensions of the starting guess and reshape - on return. Fix tests. - - 2008-05-21 David Bateman - - * DLD-FUNCTIONS/quad.cc (quad_float_user_function): New function. - (Fquad): Handle float type. - New tests. - - 2008-05-21 Jaroslav Hajek - - * OPERATORS/op-fcm-fcm.cc (trans_mul, mul_trans, herm_mul, mul_herm): - New functions. - (install_fcm_fcm_ops): Install them. - * OPERATORS/op-fm-fm.cc (trans_mul, mul_trans): New functions. - (install_fm_fm_ops): Install them. - - * OPERATORS/op-sm-m.cc (trans_mul): New function. - (install_sm_m_ops): Register it. - * OPERATORS/op-m-sm.cc (mul_trans): New function. - (install_m_sm_ops): Register it. - * OPERATORS/op-scm-cm.cc (trans_mul, herm_mul): New function. - (install_scm_cm_ops): Register it. - * OPERATORS/op-cm-scm.cc (mul_trans, mul_herm): New function. - (install_cm_scm_ops): Register it. - - * dMatrix.cc: Declare DSYRK. - (xgemm): Call DSYRK if symmetric case detected. - * CMatrix.cc: Declare ZSYRK, ZHERK. - (xgemm): Call ZSYRK/ZHERK if symmetric/hermitian case detected. - - * ov.h (octave_value::compound_binary_op): New enum. - (do_binary_op (octave_value::compound_binary_op, ...), - octave_value::binary_op_fcn_name (compound_binary_op), - octave_value::do_binary_op (compound_binary_op, ...)): - New declarations. - (OV_COMP_BINOP_FN): New macro (+ several expansions). - * ov.cc (octave_value::binary_op_fcn_name (compound_binary_op), - decompose_binary_op, do_binary_op (compound_binary_op, ...)): - New functions. - * ov-typeinfo.h (octave_value_typeinfo::register_binary_class_op - (octave_value::compound_binary_op, ...), - octave_value_typeinfo::register_binary_op - (octave_value::compound_binary_op, ...), - octave_value_typeinfo::do_register_binary_class_op - (octave_value::compound_binary_op, ...), - octave_value_typeinfo::do_register_binary_op - (octave_value::compound_binary_op, ...), - octave_value_typeinfo::do_lookup_binary_class_op - (octave_value::compound_binary_op), - octave_value_typeinfo::do_lookup_binary_op - (octave_value::compound_binary_op, ...)): - New declarations. - (octave_value_typeinfo::lookup_binary_class_op - (octave_value::compound_binary_op), - (octave_value_typeinfo::lookup_binary_op - (octave_value::compound_binary_op, ...)): - New functions. - (octave_value_typeinfo::compound_binary_class_ops, - octave_value_typeinfo::compound_binary_ops): - New fields. - * ov-typeinfo.cc (octave_value_typeinfo::register_binary_class_op - (octave_value::compound_binary_op, ...), - octave_value_typeinfo::register_binary_op - (octave_value::compound_binary_op, ...), - octave_value_typeinfo::do_register_binary_class_op - (octave_value::compound_binary_op, ...), - octave_value_typeinfo::do_register_binary_op - (octave_value::compound_binary_op, ...), - octave_value_typeinfo::do_lookup_binary_class_op - (octave_value::compound_binary_op), - octave_value_typeinfo::do_lookup_binary_op - (octave_value::compound_binary_op, ...)): - New functions. - (octave_value::do_register_type): Resize also compound_binary_ops - field. - * pt-exp.h (tree_expression::is_unary_expression): New virtual - function. - * pt-unop.h (tree_unary_expression::is_unary_expression): New virtual - override. - * pt-cbinop.h, pt-cbinop.cc: New files (implement - tree_compound_binary_expression class). - * pt-all.h: Include pt-cbinop.h. - * Makefile.in (PT_INCLUDES, PT_SRC): Include them in the lists. - * parse.y (make_binary_op): Call maybe_compound_binary_expression. - * OPERATORS/op-m-m.cc (trans_mul, mul_trans): New operator handlers. - (install_m_m_ops): Register them. - * OPERATORS/op-cm-cm.cc (trans_mul, mul_trans, herm_mul, mul_herm): - New operator handlers. - (install_cm_cm_ops): Register them. - - * DLD-FUNCTIONS/matrix_type.cc: Fix tests relying on the - older more optimistic hermitian check. - - 2008-05-21 David Bateman - - * DLD-FUNCTIONS/rcond.cc (Frcond): Add support for single precision. - - * DLD-FUNCTIONS/sqrt.m: Replace DBL_* with FLT_* for single - precision types. - * data.cc (static octave_value fill_matrix (const - octave_value_list&, double, float, const char *)): Add function - with additional argument to allow for different valid for double - and single precision. - (Finf, FNaN, FNA, Frealmax, Frealmin): Use it here. - (Feps): Modify behavior for a single numerical argument to give - difference to next largest value in the class of the type passed. - - 2008-05-21 John W. Eaton - - * pt-idx.h (tree_index_expression::tree_index_expression (int, int)): - Delete default argument values. - - 2008-05-20 David Bateman - - * data.cc (Flog2): Handle single precision. - * ov-float.h, ov.float.cc, ov-flt-complex.h, ov-flt-complex.cc, - ov-flt-re-mat.h, ov-flt-re-mat.cc, ov-flt-cx-mat.h, - ov-flt-cx-mat.cc: Provide single precision version of log2 mapper - function. - - * DLD-FUNCTIONS/__convn__.cc, DLD-FUNCTIONS/__pchip_deriv__.cc, - DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc, - DLD-FUNCTIONS/conv2.cc, DLD-FUNCTIONS/gammainc.cc, - DLD-FUNCTIONS/givens.cc, DLD-FUNCTIONS/kron.cc, - DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/syl.cc, data.cc: - Prefer demotion to single precision rather than promotion to double. - - * ov-float.cc, ov-float.h, ov-flt-complex.cc, ov-flt-complex.h, - ov-flt-cx-mat.cc, ov-flt-cx-mat.h, ov-flt-re-mat.cc, - ov-flt-re-mat.h (numeric_conversion_function (void) const): - Remove method. - - * ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, - ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, ov-scalar.h - (numeric_conversion_function (void) const): Add method for - conversion to single precision. - - * DLD-FUNCTIONS/conv2.cc (Fconv2): Don't access third arg if we - don't have one. - - * DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/expm.cc, - DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/hess.cc, - DLD-FUNCTIONS/qr.cc: COnvert for use with single precision. - - * OPERATORS/op-int.h, OPERATORS/op-int-conv.cc, - OPERATORS/op-int-concat.cc: Adapt for single precision. - - * OPERATORS/op-i8-i8.cc, OPERATORS/op-i16-i16.cc, - OPERATORS/op-i32-i32.cc, OPERATORS/op-i64-i64.cc, - OPERATORS/op-ui8-ui8.cc, OPERATORS/op-ui16-ui16.cc, - OPERATORS/op-ui32-ui32.cc, OPERATORS/op-ui64-ui64.cc: - Add includes for single precision types. - - * OPERATORS/op-b-b.cc, OPERATORS/op-b-bm.cc, OPERATORS/op-bm-b.cc, - OPERATORS/op-fcm-fs.cc, OPERATORS/op-fcs-fs.cc, - OPERATORS/op-fm-fs.cc, OPERATORS/op-fs-fcm.cc, - OPERATORS/op-fs-fcs.cc, OPERATORS/op-fs-fm.cc, - OPERATORS/op-fs-fs.cc, OPERATORS/op-int.h, ov.cc, ov-scalar.cc, - ov-float.h, ov-flt-complex.cc, ov-float.cc, ov-flt-re-mat.cc, - ov-flt-cx-mat.cc: Replace octave_float with octave_scalar_float - - * OPERATORS/op-fm-fm.cc, OPERATORS/op-fm-fs.cc, - OPERATORS/op-fm-fcm.cc, OPERATORS/op-fm-fcs.cc, - OPERATORS/op-fs-fm.cc, OPERATORS/op-fs-fs.cc, - OPERATORS/op-fs-fcm.cc, OPERATORS/op-fs-fcs.cc, - OPERATORS/op-fcm-fm.cc, OPERATORS/op-fcm-fs.cc, - OPERATORS/op-fcm-fcm.cc, OPERATORS/op-fcm-fcs.cc, - OPERATORS/op-fcs-fm.cc, OPERATORS/op-fcs-fs.cc, - OPERATORS/op-fcs-fcm.cc, OPERATORS/op-fcs-fcs.cc, - OPERATORS/op-m-m.cc, OPERATORS/op-m-s.cc, - OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc, - OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc, - OPERATORS/op-s-cm.cc, OPERATORS/op-s-cs.cc, - OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, - OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, - OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc, - OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-cs.cc: - Add mixed single/double assign operators. - - * ov.h (numeric_demotion_function): New method for double to - single demotion. - * ov-base.h (numeric_demotion_function): Declare virtual version. - - * ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, - ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, ov-scalar.h - (numeric_cdemote_function (void) const): Add method for - conversion to single precision renamed from the method - numeric_conversion_function - - * ov.cc (do_binary_op): Use demotion function seperately than the - numeric conversion function so as to avoid isses like - a=zeros(2,2);a(1,:)=1:2. - - * OPERATORS/op-fcm-fcm.cc, OPERATORS/op-fcm-fcs.cc, - OPERATORS/op-fcm-fm.cc, OPERATORS/op-fcm-fs.cc, - OPERATORS/op-fcs-fcm.cc, OPERATORS/op-fcs-fcs.cc, - OPERATORS/op-fcs-fm.cc, OPERATORS/op-fcs-fs.cc, - OPERATORS/op-fm-fcm.cc, OPERATORS/op-fm-fcs.cc, - OPERATORS/op-fm-fm.cc, OPERATORS/op-fm-fs.cc, - OPERATORS/op-fs-fcm.cc, OPERATORS/op-fs-fcs.cc, - OPERATORS/op-fs-fm.cc, OPERATORS/op-fs-fs.cc, ov-float.cc, - ov-float.h, ov-flt-complex.cc, ov-flt-complex.h, ov-flt-cx-mat.cc, - ov-flt-cx-mat.h, ov-flt-re-mat.cc, ov-flt-re-mat.h: New files. - * Makefile.in (OV_INCLUDES, OV_SRC, OP_XSRC. FLOAT_OP_XSRC, - DOUBLE_OP_XSRC): Add them here. - - * DLD-FUNCTIONS/__convn__.cc, DLD-FUNCTIONS/__lin_interpn__.cc, - DLD-FUNCTIONS/__pchip_deriv__.cc, DLD-FUNCTIONS/besselj.cc, - DLD-FUNCTIONS/betainc.cc, DLD-FUNCTIONS/bsxfun.cc, - DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/conv2.cc, - DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/fft.cc, - DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftn.cc, - DLD-FUNCTIONS/fftw.cc, DLD-FUNCTIONS/filter.cc, - DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/givens.cc, - DLD-FUNCTIONS/inv.cc, DLD-FUNCTIONS/kron.cc, - DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lu.cc, - DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/max.cc, - DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/schur.cc, - DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/svd.cc, - DLD-FUNCTIONS/syl.cc, DLD-FUNCTIONS/symbfact.cc, - DLD-FUNCTIONS/typecast.cc, OPERATORS/op-b-b.cc, - OPERATORS/op-b-bm.cc, OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc, - OPERATORS/op-cm-cm.cc, OPERATORS/op-cs-cs.cc, OPERATORS/op-m-m.cc, - OPERATORS/op-range.cc, OPERATORS/op-s-s.cc, bitfcns.cc, data.cc, - oct-stream.cc, ov-base.cc, ov-base.h, ov-bool-mat.cc, - ov-bool-mat.h, ov-bool.h, ov-ch-mat.cc, ov-ch-mat.h, - ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, ov-intx.h, - ov-range.cc, ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-scalar.h, - ov.cc, ov.h, pr-output.cc, pr-output.h, pt-mat.cc, utils.cc, - utils.h, xdiv.cc, xdiv.h, xpow.cc, xpow.h: - Allow single precision types. - - 2008-05-20 David Bateman - - * DLD-FUNCTIONS/rcond.cc: New function. - * Makefile.in (DLD_XSRC): Add it here. - - * debug.cc (Fdbstop): If no line specified assume line 1. - (Fdbstep, Fdbcont, Fdbnext): Move debugging functions - to normal commands. - (Fdbquit): New command to quit debugging mode and return to the - prompt. - (Fdbstep): Modify the dbstep command for compatibility. - * input.cc (Vdebugging_current_line): Store current line being - debugged for use in DEFCMD versions of debug commands. - (match_sans_spaces_semi): Delete. - (static void get_debug_input (const std;string&)): New function to - parse input in debug mode using standard Octave parser. - (static octave_value_list get_user_input (const - octave_value_list&, int)): Remove debugging specialization. - * input.h (Vdebugging_current_line): Store current line being - debugged for use in DEFCMD versions of debug commands. - * parse.y (make_return_command): Special handling in debug mode. - * pt-bp.h (MAYBE_DO_BREAKPOINT): Support break in n lines needed - to support "dbstep N". - * pt.cc (tree::break_next): Convert to a down counter to support - break in N lines. Breakpoint occure when tree::break_next is zero. - * toplev.cc (octave_user_script * - octave_call_stack::do_caller_user_script (difference_type) const): - Support skipping the first N functions to support "dbstep out". - (octave_user_function * octave_call_stack::do_caller_user_function - (difference_type) const): Ditto. - (octave_user_code * octave_call_stack::do_caller_user_code - (difference_type) const): Ditto. - * toplev.h (octave_user_script * - octave_call_stack::do_caller_user_script (difference_type) const): - Add difference_type argument. - (octave_user_function * octave_call_stack::do_caller_user_function - (difference_type) const): Ditto. - (octave_user_code * octave_call_stack::do_caller_user_code - (difference_type) const): Ditto. - (static octave_user_script *caller_script (difference_type)): - Ditto. - (static octave_user_function *caller_user_function - (difference_type q)): Ditto. - (static octave_user_code *caller_user_code (difference_type q)): - Ditto. - - 2008-05-20 Kim Hansen - - * load-path.cc (load_path::do_initialize): - Include separator when appending sys_path. - - 2008-05-20 Bill Denney - - * file-io.cc (Ffgets, Fgets, Ffputs, Ffscanf): Doc fix (seealso). - - 2008-05-20 Thomas Weber - - * DLD-FUNCTIONS/rand.cc (Frandn): Doc fix. - - 2008-05-20 David Bateman - - * load-save.cc (do_load): Treat non verbose list_only output in - the same manner as Fwho. - * symtab.h (static void clear_variable_regexp (const - std::string&): New method. - (static std::list regexp (const std::string&)): Ditto. - (static std::list regexp_variables (const - std::string&)): Ditto. - (static std::list regexp_global_variables (const - std::string&)): Ditto, - (static std::list regexp_variables (const - string_vector&)): Ditto. - (void do_clear_variable_regexp (const std::string&)): Ditto. - (std::list do_regexp (const std::string&, bool) - const): Ditto. - (do_who): Accept the "-regexp" option. Use regexp versions of - symbol table functions. - (static inline bool name_match_any_pattern (const string_vector&, - int, int, bool): Add regexp argument, and use regexp matching if - true. - (do_clear_variables): Add regexp option and pass to - name_match_any_pattern. - (Fclear): Accept the -regexp option. - - 2008-05-07 John W. Eaton - - * pt-arg-list.cc, pt-arg-list.h (tree_argument_list::dup): - New arg, context. - * pt-assign.cc, pt-assign.h (tree_simple_assignment::dup, - tree_multi_assignment::dup): Likewise. - * pt-binop.cc, pt-binop.h (tree_binary_expression::dup, - tree_boolean_expression::dup): Likewise. - * pt-cell.cc, pt-cell.h (tree_cell::dup): Likewise. - * pt-cmd.cc, pt-cmd.h (tree_no_op_command::dup, - tree_function_def::dup): Likewise. - * pt-colon.cc, pt-colon.h (tree_colon_expression::dup): Likewise. - * pt-const.cc, pt-const.h (tree_constant::dup): Likewise. - * pt-decl.cc, pt-decl.h (tree_decl_elt::dup, tree_decl_init_list::dup, - tree_global_command::dup, tree_static_command::dup): Likewise. - * pt-except.cc, pt-except.h (tree_try_catch_command::dup, - tree_unwind_protect_command::dup): Likewise. - * pt-exp.h (tree_expression:dup): Likewise. - * pt-fcn-handle.cc, pt-exp.h (tree_expression:dup): Likewise. - * pt-fcn-handle.h (tree_fcn_handle::dup, - tree_anon_fcn_handle::dup): Likewise. - * pt-id.cc, pt-id.h (tree_identifier::dup): Likewise. - * pt-idx.cc, pt-idx.h (tree_index_expression::dup): Likewise. - * pt-jump.cc, pt-jump.h (tree_break_command::dup, - tree_continue_command::dup, tree_return_command::dup): Likewise. - * pt-loop.cc, pt-loop.h (tree_while_command::dup, - tree_do_until_command::dup, tree_simple_for_command::dup, - tree_complex_for_command::dup): Likewise. - * pt-mat.cc, pt-mat.h (tree_matrix::dup): Likewise. - * pt-misc.cc, pt-misc.h (tree_parameter_list::dup, - tree_return_list::dup): Likewise. - * pt-select.cc, pt-select.h (tree_if_clause::dup, - tree_if_command_list::dup, tree_if_command::dup, - tree_switch_case::dup, tree_switch_case_list::dup, - tree_switch_command::dup, tree_statement::dup, - tree_statement_list::dup, tree_prefix_expression::dup, - tree_postfix_expression::dup): Likewise. - - * ov-fcn-handle.cc (octave_fcn_handle::save_ascii, - octave_fcn_handle::save_binary, octave_fcn_handle::save_hdf5): - Pass context to symbol_table::all_variables. - * load-save.cc (dump_octave_core): Likewise. - * ov-fcn-handle.cc (Ffunctions): Don't skip anonymous functions - with the name set to the text of the function body. - Pass context to symbol_table::all_variables and - symbol_table::symbol_record::varval. - - * symtab.h (symbol_table::varref, symbol_table::do_varref, - symbol_table::varval, symbol_table::do_varval, - symbol_table::all_variables, symbol_table::do_all_variables, - symbol_table::symbol_record::varref, - symbol_table::symbol_record::varval, - symbol_table::symbol_record::is_defined, - symbol_table::symbol_record::is_variable, - symbol_table::symbol_record::symbol_record_rep::varref, - symbol_table::symbol_record::symbol_record_rep::varval, - symbol_table::symbol_record::symbol_record_rep::is_defined, - symbol_table::symbol_record::symbol_record_rep::is_variable, - ): - * symtab.h (symbol_table::do_inherit): New arg, donor_context. - Look for value in donor_contxt. Set value in base context. - * symtab.cc (symbol_table::symbol_record::symbol_record_rep::dump): - Pass xcurrent_context to varval. - - 2008-05-06 David Bateman - - * ov-fcn-inline.cc (Finline): Also ignore NaN, Inf, pi, NA and eps. - - * bitfcns.cc (BITOP): Treat octave_bool types and octave_scalar. - - 2008-05-06 John W. Eaton - - * symtab.h (symbol_table::scope_id_cache): New class. Use it to - replace scope_ids_in_use and scope_ids_free_list. - (symbol_table::erase_scope): Call free_scope. - (symbol_table::free_scope): Call scope_id_cache::free. - - * ov-fcn.h (octave_function::lock_subfunctions, - octave_function::unlock_subfunctions): New virtual functions. - (octave_function::lock_subfunctions): Call lock_subfunctions here. - (octave_function::unlock_subfunctions): Call unlock_subfunctions here. - * ov-usr-fcn.h (octave_user_function::lock_subfunctions, - octave_user_function::unlock_subfunctions): New functions. - - * symtab.h (symbol_table::lock_subfunctions, - symbol_table::lock_subfunctions, - symbol_table::fcn_info::lock_subfunction, - symbol_table::fcn_info::unlock_subfunction, - symbol_table::fcn_info::fcn_info_rep::lock_subfunction, - symbol_table::fcn_info::fcn_info_rep::unlock_subfunction): - New functions. - - * symtab.h (symbol_table::set_scope, symbol_table::get_instance): - Don't set instance unless allocation succeeds. - (symbol_table::print_scope, symbol_table::do_print_scope): Delete. - (symbol_table::free_scope): Avoid using invalid iterator. - (symbol_table::erase_scope): Call free_scope here. - - * ov-fcn-handle.cc (octave_fcn_handle::load_ascii, - octave_fcn_handle::load_binary, octave_fcn_handle::load_hdf5): - Cache anonymous name here. - (octave_fcn_handle::octave_fcn_handle): Move here from - ov-fcn-handle.h. Cache name if function is user-defined. - - * pt-id.cc (tree_identifier::dup): Avoid shadow warning. - - * symtab.h (symbol_table::cache_name, symbol_table::do_cache_name): - New functions. - (symbol_table::get_instance): Cache top-level name here. - * parse.y (finish_function): Call symbol_table::cache_name here. - - * symtab.cc (F__dump_symtab_info__): New function. - - * symtab.cc (symbol_table::dump, symbol_table::dump_global, - symbol_table::dump_functions, symbol_table::do_dump, - symbol_table::symbol_record::symbol_record_rep::dump, - symobl_table::fcn_info::fcn_info_rep::dump): New functions. - * symtab.h: Provide decls. - (symtab::scopes, symbol_table::symbol_record::dump, - symbol_table::fcn_info::dump): New functions. - (symtab::get_instance): New arg, create; if false throw error if - instance for given scope is not found. - - * ov-base.cc (octave_base_value::dump): New virtual function. - * ov-base.h: Proivde decl. - * ov.h (octave_value::dump): New function. - - * ov.h, ov.c (octave_value::function_value): New const version. - * ov-base.h, ov-base.cc (octave_base_value::function_value): Likewise. - * ov-builtin.h (octave_builtin::function_value): Likewise. - * ov-fcn-handle.h (octave_fcn_handle::function_value): Likewise. - * ov-mex-fcn.h (octave_mex_function::function_value): Likewise. - * ov-usr-fcn.h (octave_user_script::function_value, - octave_user_function): Likewise. - - * symtab.h, symtab.cc: Use consistent naming scheme for iterator - typedefs. Change all uses. - - * variables.cc (F__print_symtab_info__, F__print_symbol_info__): - Delete. - - * ov-cell.cc (Fstruct2cell): Handle structure arrays properly. - - 2008-05-05 David Bateman - - * sysdep.cc (Fputenv): Allow single arg. Alias to setenv. - - 2008-05-05 John W. Eaton - - * input.cc (Fre_read_readline_init_file): New function. - - 2008-05-04 John W. Eaton - - * ov-fcn-handle.cc (Ffunctions): Pass octave_value object instead - of Cell in structure field assignment. - - * parse.y (frob_function): Don't install subfunctions here. - (finish_function): Handle subfunctions here. - Conditionally define tree_function_def object here. - - * symtab.h (symbol_table::fcn_info::fcn_info_rep::find_function): - Initialize args_evaluated. - * pt-id.cc (tree_identifier::rvalue): Likewise. - * variables.cc (symbol_exist): Likewise. - - * pt-id.h (tree_identifier::tree_identifer): Delete useless statement. - - * variables.cc (get_global_value): Use symbol_table::global_varval - instead of passing scope to symbol_table::varval. - (set_global_value): Use symbol_table::global_varref - instead of passing scope to symbol_table::varref. - (do_who): Use symbol_table::glob_global_variables - instead of passing scope to symbol_table::glob_variables. - (do_clear_globals): - Use symbol_table::global_variable_names and - symbol_table::clear_global instead of passing scope to - symbol_table::clear_variables. - Use symbol_table::global_variable_names instead of passing scope - to symbol_table::variable_names. - - * unwind-prot.cc (unwind_protect::save_size_t): New function. - (saved_variable::restore_value): Handle size_t values. - (saved_variable::saved_variable): New size_t constructor. - (saved_variable::size_type): New var_type enum value. - (saved_variable::ptr_to_size_t, saved_variable::size_t_value): - New union elements. - * unwind-prot.h (unwind_protect::save_size_t): Provide decl - (unwind_protect_size_t): New macro. - - * toplev.cc (octave_call_stack::do_goto_frame, - octave_call_stack::do_goto_frame_relative): New functions. - (octave_call_stack::do_backtrace): Also return scope and context ids. - * toplev.h (octave_call_stack::do_goto_frame, - octave_call_stack::do_goto_frame_relative): Provide decls. - (octave_call_stack::curr_frame): New data member. - (octave_call_stack::octave_call_stack): Initialize it. - (octave_call_stack::call_stack_elt::scope, - (octave_call_stack::call_stack_elt::context): New data members., - (octave_call_stack::current_frame, - (octave_call_stack::do_current_frame - octave_call_stack::do_goto_frame, - octave_call_stack::do_goto_frame_relative): New functions. - (octave_call_stack::push, octave_call_stack::do_push): - New args, scope and context. - (octave_call_stack::do_push, octave_call_stack::do_pop): Update - curr_frame if debugging. - - * symtab.cc (symbol_table::global_table): New map for global values. - (symbol_table::xcurrent_context): New variable for context info. - * symtab.h: Provide decls. - (symbol_table::global_varref, symbol_table::global_varval, - symbol_table::current_context, - symbol_table::set_scope_and_context, - symbol_table::glob_global_variables, - symbol_table::global_variable_names, - symbol_table::top_leve_variable_names): - New functions. - (symbol_table::context_id, const_global_table_iterator, - global_table_iterator): New typedefs. - (symbol_table::xcurrent_context_this_table): New variable. - (symbol_table::symbol_table): Initialize it. - (symbol_table::set_scope): Use it. - (symbol_table::symbol_record::find, symbol_table::do_find): - Use symbol_table::global_varref instead of passing scope to - symbol_table::varref. - (symbol_table::symbol_record::symbol_record_rep::value_stack): - Now a std::deque instead of a std::stack. - (symbol_table::symbol_record::symbol_record_rep::push_context, - symbol_table::symbol_record::symbol_record_rep::pop_context): - Don't push or pop persistent of global variables. - (symbol_table::symbol_record::symbol_record_rep::varval, - Handle context here. Call symbol_table::global_varval instead of - passing scope to symbol_table::varval. - (symbol_table::symbol_record::symbol_record_rep::varref): - Handle context here. Call symbol_table::global_varref instead of - passing scope to symbol_table::varref. - (symbol_table::symbol_record::varref, - symbol_table::symbol_record::varval): No need to handle global - values specially here. - (symbol_table::symbol_record::push_context - symbol_table::symbol_record::pop_context: No need to handle global - or persistent values specially here. - (symbol_table::get_instance): Don't return global scope. - (symbol_table::do_push_context, symbol_table::do_pop_context): - Increment/decrement xcurrent_context. - (symbol_table::do_clear_global, symbol_table::do_clear_global_pattern): - Use global_table instead of separate scope. - - * symtab.h, symtab.cc (symbol_table::fcn_info::fcn_info_rep::find, - symbol_table::fcn_info::fcn_info_rep::find_function, - symbol_table::fcn_info::find, symbol_table::fcn_info::find_function, - symbol_table::find, symbol_table::find_function, - symbol_table::do_find, symbol_table::insert, symbol_table::varref, - symbol_table::varval, symbol_table::persistent_varref, - symbol_table::persistent_varval, symbol_table::erase_persistent, - symbol_table::is_variable, symbol_table::clear, - symbol_table::clear_variables, symbol_table::clear_global, - symbol_table::clear_variable, symbol_table::clear_global_pattern, - symbol_table::clear_variable_pattern, symbol_table::push_context, - symbol_table::pop_context, symbol_table::mark_hidden, - symbol_table::mark_global, symbol_table::glob, - symbol_table::glob_variables, symbol_table::variable_names, - symbol_table::is_local_variable, symbol_table::is_global): - Eliminate scope arg. Change all uses. - (symbol_table::erase_scope, symbol_table::dup_scope): - Require scope arg. - - * pt-stmt.cc (tree_statement::eval): Don't update statement info - in octave_call_stack if debugging. - - * pt-id.h (tree_identifier::xsym): New function. - (tree_identifier::rvalue, tree_identifier::lvalue, - tree_identifier::dup, tree_identifier::is_defined, - tree_identifier::is_variable, tree_identifier::mark_global, - tree_identifier::mark_as_static, tree_identifier::do_lookup, - tree_identifier::mark_as_formal_parameter): - Use xsym to access symbol. - (tree_identifier::scope): New data member. - (tree_identifier::tree_identifier): Initialize it. - - * ov-usr-fcn.cc (octave_user_script::octave_user_script, - octave_user_function::octave_user_function): - Initialize call_depth to -1. - (octave_user_script::do_multi_index_op): Fix comparison of - call_depth with Vmax_recursion_depth. - (octave_user_function::do_multi_index_op): - Compare call depth > 0, instead of > 1. - * ov-usr-fcn.h (octave_user_function::save_args_passed): - Compare call depth > 0, instead of > 1. - - * input.cc (Vdebugging): New variable. - (get_user_input): Eliminate DEBUG argument. Use global Vdebugging - variable instead. Change all callers. - (saved_frame): New static variable. - (restore_frame): New function. - (do_keyboard): Unwind-protect Vdebugging here and set it to TRUE. - Save current frame. Use unwind_protect to restore it. - (Fkeyboard): Save current frame. Use unwind_protect to restore it. - Move up the call stack one frame before calling do_keyboard. - * input.h (Vdebugging): Provide decl. - - * mex.cc (mexGetVariable): Handle global vars with get_global_value. - (mexPutVariable): Likewise, with set_global_value. - - * octave.cc (intern_argv): Assert that we are at the top level. - Don't pass scope to symbol_table::varref or symbol_table::mark_hidden. - - * load-save.cc (install_loaded_variable): Use - symbol_table::global_varref instead of passing global scope to - symbol_table::varref. - - * help.cc (make_name_list): Call symbol_table::global_variable_names - and symbol_table::top_level_variable_names instead of passing - scope to symbol_table::variable_names. - - * debug.cc (do_dbupdown, Fdbup, Fdbdown): New functions. - (current_stack_frame): Delete static variable. - (Fdbstack): Rename from F__dbstack__. Implement all of dbstack - here instead of partially in dbstack.m. - - 2008-05-03 John W. Eaton - - * pt-arg-list.cc (F__end__): If there are more dimensions than - indices, smash extra dimensions first. - (num_indices): New static variable. - (tree_argument_list::convert_to_const_vector): Save and set it. - - * parse.y (parse_fcn_file): Also temporarily set parser_end_of_input - and get_input_from_eval_string to false while reading script files. - - 2008-05-01 John W. Eaton - - * parse.y (load_fcn_from_file): Expect - * dynamic-ld.cc (octave_dynamic_loader::do_load_oct): - Search currently loaded .oct files by file name. Don't search - currently loaded files for functions. - (octave_shlib_list::find_file, octave_shlib_list::do_find_file): - New functions. - (octave_shlib_list::search, octave_shlib_list::do_search): Delete. - - * dynamic-ld.cc (octave_dynamic_loader::do_load_oct): No need to - do load_path lookups here. - (octave_shlib_list::iterator, octave_shlib_list::const_iterator): - New typedefs. - (octave_shlib_list::do_remove, octave_shlib_list::do_search, - octave_shlib_list::do_display): Use them. - (octave_mex_file_list::iterator, octave_mex_file_list::const_iterator): - New typedefs. - (octave_mex_file_list::do_remove): Use them. - - 2008-05-03 Rafael Laboissiere - - * DLD-FUNCTIONS/time.cc, file_io.cc: Use ischar instead of - deprecated isstr. - - 2008-04-30 John W. Eaton - - * dynamic-ld.cc (octave_dynamic_loader::do_load_oct): - If function already exists, reload it anyway. Clear existing - oct_file only if reloading a function from the same file. - (octave_shlib_list::display): New static function. - (octave_shlib_list::do_display): New function. - - * symtab.cc (out_of_date_check_internal): Better handling for - functions found in files by relative file names. - (load_out_of_date_fcn): New function. - - * ls-oct-ascii.cc (extract_keyword): Return early if first char is - not a comment character. - (read_ascii_data): Accept .nargin. and .nargout. as valid identifiers. - - * ov-fcn-handle.cc: Combine tests. Test saving and loading - handles for built-in, .oct, and .m functions. - (octave_fcn_handle::save_ascii, octave_fcn_handle::save_binary, - octave_fcn_handle::save_hdf5, octave_fcn_handle::print): - Avoid dereferencing invalid pointer. - - * data.cc: Fix tests. Use "%!assert", not "%! assert" for - individual assert tests. - - 2008-04-30 Jaroslav Hajek - - * ov-base.cc, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, - ov-bool.h, ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, - ov-cx-sparse.cc, ov-cx-sparse.h, ov-intx.h, ov-range.h, - ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h, - ov-scalar.cc, ov-scalar.h, ov.h: - Provide log2 mapper function. - * data.cc (Flog2): New function. - - 2008-04-25 John W. Eaton - - * pt-stmt.h (tree_statement_list::function_body): New data member. - (tree_statement_list::tree_statement_list): Initialize it. - (tree_statement_list::mark_as_script_body): New function. - (tree_statement::maybe_echo_code, tree_statement::eval): - Rename in_function_body argument to in_function_or_script_body. - * pt-stmt.cc (tree_statement::eval): Only set statement in call - stack if in_function_or_script_body is true. - - * pt-stmt.cc (tree_statement_list::eval): Call elt->eval with - function_body || script_body. - * ov-usr-fcn.cc (octave_user_script::octave_user_script): - command list as script body here. - (octave_user_function::octave_user_function): - Mark command list as function body here. - * parse.y (start_function, make_anon_fcn_handle): Not here. - - * toplev.h, toplev.cc (octave_call_stack::backtrace, - octave_call_stack::do_backtrace): New arg, N. Skip innermost N - stack frames. - - * debug.cc (F__dbstack__): New function. - (current_stack_frame): New static variable. - - * error.cc (verror, pr_where): Use octave_call_stack instead of - tree_statement stack to get line and column information. - (pr_where): Use octave_call_stack instead of tree_statement stack - to get current statement. - * input.cc (get_user_input): Extract current line number from - octave_call_stack instead of tree_statement_stack. - * pt-stmt.cc (tree_statement::eval): Put current statement on - octave_call_stack instead of tree_statement_stack. - * pt-stmt.h, pt-stmt.cc (class tree_statement_stack): Delete. - - * toplev.h, toplev.cc (octave_call_stack::call_stack_elt): - New nested struct. - (octave_call_stack::cs): Now a deque of call_stack_elts. - Change all uses. - (octave_call_stack::current_statement, - octave_call_stack::current_line, - octave_call_stack::current_column, - octave_call_stack::top_statement, - octave_call_stack::set_statement, octave_call_stack::backtrace): - New static functions. - (octave_call_stack::do_current_line, - octave_call_stack::do_current_column, - octave_call_stack::do_top_statement, - octave_call_stack::do_set_statement, - octave_call_stack::do_backtrace): New member functions. - - 2008-04-24 John W. Eaton - - * toplev.h, toplev.cc (octave_call_stack::unwind_pop_script): - Delete unused function. - - * ov-usr-fcn.cc: Move constructor definitions here, from ov-usr-fcn.h. - * ov-usr-fcn.h (octave_user_script::octave_user_script): - Also Initialize t_parsed and t_checked. - - 2008-04-24 Jaroslav Hajek - - * ov-usr-fcn.h (octave_user_script::octave_user_script): - Initialize call_depth. - - 2008-04-24 John W. Eaton - - * file-io.cc (do_stream_open): Return -1 for directories. - - 2008-04-23 John W. Eaton - - * DLD-FUNCTIONS/__qp__.cc (qp): Avoid bounds error when removing - constraint from active set. - - * lex.l (text_yyinput): New function. Use it in place of yyinput. - (next_token_is_sep_op, scan_for_comments, eat_whitespace, - have_continuation): No need to check for CR or CRLF. - * parse.y (text_getc): Also return NL for single CR. - - 2008-04-32 Michael Goffioul - - * input.cc (get_input_from_file): Open file in binary mode. - - 2008-04-20 John W. Eaton - - * oct-stream.cc (octave_stream::read): Allow single data type - specification but return double. - - 2008-04-18 John W. Eaton - - * lex.l, lex.h (process_comment): New arg, start_in_block. Call - grab_block_comment if start_in_block is true. Change all uses. - * lex.l (grab_block_comment): New function. - (grab_comment_block): New arg, at_bol. Change all uses. - Call grab_block_comment if we find the start of a block comment. - (block_comment_nesting_level): New static variable. - (^{S}*{CCHAR}\{{S}*{NL}): New rule. - (<>): Warn about open block comments. - (reset_parser): Set block_comment_nesting_level to zero. - * parse.y (parse_fcn_file): Stash help text from - gobble_leading_white_space after calling reset_parser. - (text_getc): Keep track of input_line_number here. - (skip_white_sapce): Don't increment input_line_number here. - * lex.l (grab_comment_block): Or here. - - * lex.l (Vdisplay_tokens): New static variable. - (F__display_tokens__): New function. - (display_token): New function. - (DISPLAY_TOK_AND_RETURN): New macro. - (COUNT_TOK_AND_RETURN): Use DISPLAY_TOK_AND_RETURN. - ([\"\'], "'", \"): Move handle_string outside of - COUNT_TOK_AND_RETURN macro parameter list. - (handle_identifier): Don't use macros to return token values here. - ({S}*{COMMENT}{SNLCMT}*|{S}*{NL}{SNLCMT}*): - Recognize block comments here. - - * pr-output.cc (Fdisp): If nargout > 0, produce an sq-string - unless arg is a dq-string. - - 2008-04-17 John W. Eaton - - * parse.y (looks_like_copyright): Handle leading whitespace. - (class stdio_stream_reader): New class. - (skip_white_space): New function. - (gobble_leading_white_space): New arg, EOF. Change all uses. - Use skip_white_space and grab_comment_block to process comments. - (process_leading_comments): Delete. - (parse_fcn_file): Call gobble_leading_white_space instead of - process_leading_comments. - Skip parsing if gobble_leading_white_space detects EOF. - * lex.l (process_comment): Delete CCHAR arg. Change all uses. - ({CCHAR}): Unput comment character before calling process_comment. - (grab_comment_block): Rename from grab_help_text. Don't discard - spaces from comment text. Update input_line_number and - current_input_column as characters are read. Warn only once about - incompatible comment characters in a given block of comments. - Use stream_reader class instead of accessing yyinput and yyunput - directly. - (class flex_stream_reader): New class. - (process_comment): Use grab_comment_block to handle all comments. - Don't call maybe_gripe_matlab_incompatible_comment. - Always store comment text returned by grab_comment_block. - * lex.h (grab_comment_block): Provide decl. - (class stream_reader): New class. - - 2008-04-16 John W. Eaton - - * parse.y (Fautoload, Fmfilename): Call - octave_call_stack::caller_user_code, not - octave_call_stack::caller_user_script_or_function. - * toplev.cc, toplev.h (octave_call_stack::caller_user_code): - Rename from octave_call_stack::caller_user_script_or_function. - (octave_call_stack::do_caller_user_code): Rename from - octave_call_stack::do_caller_user_script_or_function. - * ov-usr-fcn.h (class octave_user_code): New class, derived from - octave_fucntion. - (class octave_user_function, class octave_user_script): Derive - from octave_user_code, not octave_function. - (octave_user_script::user_code_value, - octave_user_function::user_code_value): New functions. - * ov.cc (octave_value::user_script_value, - octave_value::user_code_value): New functions. - * ov.h: Provide decls. - (octave_value::is_user_code, octave_value::is_user_script): - New functions. - * ov-base.cc (octave_base_value::user_script_value, - octave_base_value::user_code_value): New virutal functions. - * ov-base.h: Provide decls. - (octave_base_value::is_user_script, octave_base_value::is_user_code): - New virtual functions. - * error.cc (verror, pr_where, error_2, warning_1): - Call octave_call_stack::caller_user_code instead of - octave_call_stack::caller_user_script_or_function - * input.cc (get_user_input): Likewise. - * debug.h (bp_table::breakpoint_map): Use pointer to - octave_user_code instead of octave_user_function. - * debug.cc (get_user_code): Rename from get_user_function. - Return pointer to octave_user_code instead of octave_user_function. - Change all uses. - (bp_table::do_add_breakpoint, bp_table::do_remove_breakpoint, - bp_table::do_remove_all_breakpoints_in_file, - bp_table::do_get_breakpoint_list): - Avoid dereferencing invalid pointers. - (parse_dbfunction_params): Call - octave_call_stack::caller_user_code, not - octave_call_stack::caller_user_script_or_function. - - * load-save.cc (Fsave): Fix continuation character in doc string. - - * pt-walk.h (tree_walker::visit_function_def): New function. - * pt-pr-code.cc (tree_print_code::visit_function_def): New function. - * pt-pr-code.h: Provide decl. - * pt-bp.cc (tree_breakpoint::visit_function_def): New function. - * pt-bp.h: Provide decl. - * pt-check.cc (tree_checker::visit_function_def): New function. - * pt-check.h: Provide decl. - - * parse.y (finish_function): Return ptr to tree_function_def object - if curr_fcn_ptr is not defined. Avoid dereferencing invalid pointers. - (frob_function): Set curr_fcn_ptr only when reading a function file. - (function): Call finish function in both cases to generate value - of production. - - * pt-cmd.h, pt-cmd.cc (tree_function_def): New class. - - * parse.y (parse_and_execute): Delete. - * parse.h: Delete decl. - - * pt-pb.cc (tree_breakpoint::visit_octave_user_script): New function. - * pt-pb.h: Provide decl. - * pt-check.cc (tree_checker::visit_octave_user_script): New function. - * pt-check.h: Provide decl. - * pt-pr-code.cc (tree_print_code::visit_octave_user_script): - New function. - * pt-pr-code.h: Provide decl. - * pt-walk.h (visit_octave_user_script): New pure virtual function. - - * parse.y (make_script, process_leading_comments, - looking_at_function_keyword): New static functions. - (SCRIPT): New token. - (script): New non-terminal. - (command): Handle script here. - (parse_fcn_file): Eliminate EXEC_SCRIPT argument. Change all - callers. Parse scripts and return an octave_user_script rather - than executing them here. - (load_fcn_from_file): Handle script and function files the same. - (source_file): Call d_multi_index_op on object returned by - parse_fcn_file. - (is_function_file): Delete. - (gobble_leading_white_space): Don't recurse. Simplify. Eliminate - SKIP_CODE, IN_PARTS, and SAVE_COPYRIGHT arguments. Change all - callers. - (octave_function_ptr): Delete unused typedef. - (get_help_from_file): If help text isn't found by - gobble_leading_whitespace, parse file to find it. - - * lex.l (SCRIPT_FILE_BEGIN): New exclusive start state. - (prep_lexer_for_script): New function. - (grab_help_text): New arg, EOF. - (process_comment): New function. - ({CCHAR}): Use it. - * lex.h (prep_lexer_for_script): Provide decl. - - * lex.h, lex.cc, parse.y (lexical_feedback::beginning_of_function): - Delete data member and all uses. - - * ov-usr-fcn.cc (octave_user_script::~octave_user_script): - Move destructor here from ov-usr-fcn.h. Delete cmd_list. - (octave_user_script::subsref, octave_user_script::accept, - octave_user_script::traceback_error): New functions. - (octave_user_script::do_multi_index_op): - Execute cmd_list instead of calling source_file. - * ov-usr-fcn.h (octave_usr_script::cmd_list, - octave_usr_script::t_parsed, octave_usr_script::t_checked, - octave_usr_script::call_depth): New data members. - (octave_usr_script::octave_usr_script): Initialize all data members. - (octave_usr_script::octave_usr_script (const std::string&, const - std::string&, tree_statement_list *, const std::string&)): - New constructor. - (octave_usr_script::function_value, - octave_usr_script::user_script_value, mark_fcn_file_up_to_date, - octave_usr_script::stash_fcn_file_time, - octave_usr_script::time_parsed, octave_usr_script::time_checked, - octave_usr_script::subsref, octave_usr_script::body): New functions. - (octave_user_script::subsref, octave_user_script::accept, - octave_user_script::traceback_error): Provide decls. - - 2008-04-14 Jaroslav Hajek - - * oct-stream.cc (octave_scan_1): Ensure digit following X is hex - digit before reading number as hex. - - 2008-04-14 John W. Eaton - - * file-io.cc (Ffread): Allow SKIP arg to be omitted. - (Ffwrite): Likewise. Handle args in a way consistent with Ffread. - - 2008-04-09 Michael Goffioul - - * DLD-FUNCTIONS/dispatch.cc: Replace system("echo '...'>...") calls - with real file writing. - - 2008-04-07 Jaroslav Hajek - - * DLD-FUNCTIONS/qr.cc (Fqrshift): New function. - * DLD-FUNCTIONS/chol.cc (Fcholinsert, Fcholdelete, Fcholshift): - New functions. - - 2008-04-04 John W. Eaton - - * parse.y (make_constant): Handle escape sequences in dq-strings. - - 2008-04-03 John W. Eaton - - * parse.y (make_constant): Also stash original text for strings. - - * ov-fcn-handle.cc (octave_fcn_handle::subsref): - Don't call next_subsref here. - - 2008-04-01 John W. Eaton - - * pt-id.h (do_lookup (bool&, bool)): Delete. - (do_lookup (tree_argument_list *, const string_vector&, - octave_value_list&, bool&)): Call MAYBE_DO_BREAKPOINT here. - - 2008-04-02 David Bateman - - * graphics.cc (void gnuplot_backend::close_figure (const - octave_value&) const): Allow for an input and output stream. - - 2008-03-28 Jaroslav Hajek - - * DLD-FUNCTIONS/lookup.cc: New file. - * Makefile.in (DLD_XSRC): Add it to the list. - - 2008-03-28 David Bateman - - * ov-complex.cc (SCALAR_MAPPER, CD_SCALAR_MAPPER): New macro for - complex values with zero imaginary part. - (erf, erfc, gamma, lgamma): Use the new mappers to define these - mapper functions. - * ov-complex.h (erf, erfc, gamma, lgamma): Declare them. - * ov-cx-mat.cc (any_element_less_than, any_element_greater_than): - New static functions - (DARRAY_MAPPER, CD_ARRAY_MAPPER): New macro for complex values - with zero imaginary part. - (erf, erfc, gamma, lgamma): Use the new mappers to define these - mapper functions. - * ov-cx-mat.h (erf, erfc, gamma, lgamma): Declare them. - * ov-cx-sparse.cc (any_element_less_than, any_element_greater_than): - New static functions - (DSPARSE_MAPPER, CD_SPARSE_MAPPER): New macro for complex values - with zero imaginary part. - (erf, erfc, gamma, lgamma): Use the new mappers to define these - mapper functions. - * ov-cx-sparse.h (erf, erfc, gamma, lgamma): Declare them. - * ov-re-sparse.cc (CD_SPARSE_MAPPER): Use correct mapper functors. - * mapper.cc: Add tests for the above cases. - - 2008-03-27 John W. Eaton - - * DLD-FUNCTIONS/max.cc: Rename from minmax.cc. - * Makefile.in (DLD_XSRC): Rename minmax.cc to max.cc. - - * DLD-FUNCTIONS/__convn__.cc (convn): Use traits class and - typedefs to allow all types to be deduced from argument types. - - 2008-03-27 Sᅵren Hauberg - - * DLD-FUNCTIONS/__convn__.cc (Fconvn): Allow convolving real data with - complex data. - - 2008-03-26 John W. Eaton - - * ov-range.h (octave_range::subsref (const std::string&, - const std::list&, int)): - Forward to simple subsref. - * ov-base-sparse.h (octave_base_sparse::subsref (const std::string&, - const std::list&, int)): Likewise. - * ov-base-scalar.h (octave_base_sparse::subsref (const std::string&, - const std::list&, int)): Likewise. - * ov-base-matrix.h (octave_base_matrix::subsref (const std::string&, - const std::list&, int)): Likewise. - - * ov-struct.cc, ov-cell.h (octave_cell::subsref (const - std::string&, const std::list&, int)): - Define nargout version of subsref instead of simple version. - * ov-struct.cc, ov-struct.h (octave_struct::subsref (const - std::string&, const std::list&, int)): - Define nargout version of subsref instead of simple version. - - * ov-builtin.h (octave_builtin::subsref (const std::string&, - const std::list&): Forward to nargout subsref. - * ov-cell.h (octave_cell::subsref (const std::string&, - const std::list&)): - * ov-class.h (octave_class::subsref (const std::string&, - const std::list&): Likewise. - * ov-fcn-handle.h (octave_fcn_handle::subsref (const std::string&, - const std::list&): Likewise. - * ov-list.h (octave_list::subsref (const std::string&, - const std::list&): Likewise. - * ov-mex-fcn.h (octave_mex_function::subsref (const std::string&, - const std::list&): Likewise. - * ov-struct.h (octave_struct::subsref (const std::string&, - const std::list&)): - * ov-usr-fcn.h (octave_user_function::subsref (const std::string&, - const std::list&): Likewise. - - * ov.cc (octave_value::subsref): Use value of nargout instead of - is_constant method to decide which type of subsref method to call. - (octave_value::assign): Always call simple subref method here. - - * DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/det.cc, - DLD-FUNCTIONS/getpwent.cc, DLD-FUNCTIONS/inv.cc, - DLD-FUNCTIONS/qr.cc, DLD-FUNCTIONS/symrcm.cc, file-io.cc): - Texinfo fixes. - - 2008-03-26 Sᅵren Hauberg - - * DLD-FUNCTIONS/__convn__.cc (Fconvn): - Call complex_array_value to extract N-d array. - - 2008-03-26 John W. Eaton - - * ov-base-sparse.cc (octave_base_sparse::print_raw): - Also display percentage of elements that are nonzero. - - 2008-03-25 Sᅵren Hauberg - - * DLD-FUNCTIONS/__convn__.cc: New file. - * Makefile.in: Add __convn__.cc - - 2008-03-25 David Bateman - - * DLD-FUNCTIONS/hex2num.cc: New function - * Makefile.in (DLD_XSRC): Add hex2num.cc. - - 2008-03-25 Jaroslav Hajek - - * mappers.cc (Fexpm1, Flog1p): New functions. - * ov-base.cc, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, - ov-bool.h, ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, - ov-cx-sparse.cc, ov-cx-sparse.h, ov-range.h, ov-re-mat.cc, - ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h, ov-scalar.cc, - ov-scalar.h, ov.h: - Provide expm1 and log1p functions. - - * mappers.cc (Froundb): New functions - * ov-base.cc, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, - ov-bool.h, ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, - ov-cx-sparse.cc, ov-cx-sparse.h, ov-intx.h, ov-range.h, - ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h, - ov-scalar.cc, ov-scalar.h, ov.h: - Provide roundb mapper function. - - 2008-03-25 Jaroslav Hajek - - * load-save.cc (save_vars): Handle -struct modifier. - (save_fields): New function. - (Fsave): Document new feature. - - 2008-03-25 John W. Eaton - - * lex.h (lexical_feedback::looking_at_initializer_expression): - New data member. - * lex.l (lexical_feedback::init): Initialize it. - (handle_identifier): Don't unconditionally force identifiers to be - variables in the current scope. Don't call force_local_variable - for symbols that appear in parameter initializer expressions. - * parse.y (decl_param_init): New parser "subroutine". - (decl2): Use it. Set lexer_flags.looking_at_initializer_expression - to false after parsing initializer. - - 2008-03-24 David Bateman - - * data.cc (map_s_s): Fix for sparse/sparse mappers that resulted - in an empty sparse matrix being returned. - (Fhypot): New function based on the libm hypot function. - - 2008-03-24 Primozz Peterlin - - * variables.cc (Fexist): Doc fix. - - 2008-03-23 David Bateman - - * OPERATORS/op-int.h: Add el_div and el_ldiv operators to the - binops that were missing them. Added elem_pow functions for mixed - integer floating point cases. Initialize the mixed integer - floating point cases. - - 2008-03-21 John W. Eaton - - * ov-cell.h (octave_cell::is_constant): Return true. - * ov-cell.h, ov-cell.cc (octave_cell::subsref (const std::string&, - const std::list&)): Define. - (octave_cell::subsref (const std::string&, - const std::list&, int)): Call panic_impossible. - - * ov-struct.h (octave_struct::is_constant): New function. - * ov-struct.h, ov-struct.cc (octave_struct::subsref (const std::string&, - const std::list&)): Define. - (octave_struct::subsref (const std::string&, - const std::list&, int)): Call panic_impossible. - - 2008-03-21 David Bateman - - * DLD-FUNCTIONS/amd.cc: New file. - * Makefile.in (DLD_XSRC): Add amd.cc. - - 2008-03-20 David Bateman - - * Cell.cc (Cell Cell::diag (void) const): delete. - (Cell Cell::diag (octave__idx_type) const):Rewrite in terms of - template classes function. - * Cell.h (Cell diag (void) const): delete. - - * ov.h (octave_value diag (octave_idx_type) const): New method. - * ov-base.h (virtual octave_value diag (octave_idx_type) const): - New virtual method. - * ov-base.cc (octave_value octave_base_value::diag - (octave_idx_type) const): New default method. - - * ov-base-mat.h (octave_value diag (octave_idx_type) const): New - method. - * ov-base-sparse.h (octave_value diag (octave_idx_type) const): New - method. - * ov-base-scalar.h (octave_value diag (octave_idx_type) const): New - method. - * ov-range.h (octave_value diag (octave_idx_type) const): New - method. - - * data.cc (make_diag, make_spdiag): Delete. - (Fdiag): Rewrite in terms of octave_value diag function. - - * data.cc (static octave_value make_diag (const Cell&, - octave_idx_type)): New instantiation of template function. - (static octave_value make_diag (const octave_value&, - octave_idx_type)): Allow cell arrays. - - * Cell.cc (Cell Cell::diag (void) const, Cell Cell::diag - (octave__idx_type)): New methods for diagonal matrices. - * Cell.h (Cell Cell::diag (void) const, Cell Cell::diag - (octave__idx_type)): Declare them. - - 2008-03-18 David Bateman - - * ov-re-mat.cc (lgamma): Convert to a allow negative arguments. - * ov-re-sparse.cc (lgamma): ditto. - * ov-scalar.cc (lgamma): ditto. - - * DLD-FUNCTIONS/minmax.cc: 64-bit indexing fix. - - 2008-03-13 John W. Eaton - - * ov-usr-fcn.cc (octave_user_function::octave_user_function): - Handle num_named_args in initialization list instead of functinon body. - - * octave.gperf: Eliminate varargin and varargout keywords. - * lex.l (is_keyword_token): Eliminate varargin_kw and varargout_kw - from switch statement. - * parse.y (return_list): Eliminate special cases for VARARGOUT. - Call validate on tree_parameter_list object. - (param_list1): Likewise, for VARARGIN. - * pt-misc.cc (tree_parameter_list::validate): New function. - (tree_parameter_list::mark_varargs_only): Now private. - (tree_parameter_list::mark_varargs): Now private. - * pt-misc.h (tree_parameter_list::validate): Provide decl. - - 2008-03-12 John W. Eaton - - * variables.cc (Vwhos_line_format): Omit print_dims parameter. - Fix doc string in Vwhos_line_format DEVAR. - (symbol_record_name_compare): Delete unused function. - (whos_parameter::dimensions): Delete struct field. - (symbol_info_list): New class. - (dimensions_string_req_first_space, make_dimensions_string, - dimensions_string_req_total_space): Delete. - (parse_whos_line_format): Move functionality to new - symbol_info_list class. - (print_symbol_info_line): Move functionality to new - symbol_info_list::struct symbol_info::displaly_line method. - (do_who): Simplify with new symbol_info_list class. - Handle index expressions in addition to symbol names. - - * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Fix separator detection. - - 2008-03-11 John W. Eaton - - * DLD-FUNCTIONS/eig.cc (Feig): Handle possible error from EIG. - * DLD-FUNCTIONS/qp.cc (qp, Fqp): Likewise. - * xpow.cc (xpow): Likewise. - - 2008-03-11 John W. Eaton - - * DLD-FUNCTIONS/dlmread.cc: Style fixes. - - 2008-03-11 David Bateman - - * DLD-FUNCTIONS/dlmread.cc: Function ported from octave forge. Add - spreadsheet style ranges. - * Makefile.in (DLD_XSRC): Add dlmread.cc. - - 2008-03-10 John W. Eaton - - * mex.cc (mxCreateLogicalScalar): Argument is now mxLogical. - - * data.cc (Fisfloat): New function. - * ov.h (octave_value::is_float_type): Ditto. - * ov-base.h (octave_base_value::is_float_type): Ditto. - * ov-complex.h (octave_complex): Ditto. - * ov-cx-mat.h (octave_complex_matrix): Ditto. - * ov-cx-sparse.h (octave_sparse_complex_matrix): Ditto. - * ov-range.h (octave_range): Ditto. - * ov-re-mat.h (octave_matrix): Ditto. - * ov-re-sparse.h (octave_sparse_matrix): Ditto. - * ov-scalar.h (octave_scalar): Ditto. - - * mxarray.h.in (mxLogical): Use unsigned char instead of int. - From Antwerpen, G. (Gert) van . - - 2008-03-07 John W. Eaton - - * ov-struct.cc (octave_struct::print_raw): Don't print contents fo - struct arrays that have more than one element. - - 2008-03-06 David Bateman - - * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Document that - the initial interpretation of a positive definite return from - matrix_type is that the matrix is "probably" positive definite and - not certainly so. - - 2008-03-06 John W. Eaton - - * parse.y: Move tests here from test/test_eval.m. - * DLD-FUNCTIONS/fft.cc: Move tests here from test/test_signal.m. - * DLD-FUNCTIONS/dassl.cc: Move tests here from test/test_diffeq.m. - * DLD-FUNCTIONS/lsode.cc: Move tests here from test/test_diffeq.m. - * DLD-FUNCTIONS/quad.cc: Move tests here from test/test_quad.m. - * DLD-FUNCTIONS/time.cc: Move tests here from test/test_system.m. - - 2008-03-06 Alexander Barth - - * DLD-FUNCTIONS/__lin_interpn__.cc (lookup): - Handle decreasing coordinate values. - - 2008-03-05 Jaroslav Hajek - - * DLD-FUNCTIONS/chol.cc (Fcholupdate): Adjust code to meet - Octave's coding guidelines. - - * DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete): Adjust - code to meet Octave's coding guidelines. - * DLD-FUNCTIONS/qr.cc (Fqrdelete): Fix incorrect test. - - * DLD-FUNCTIONS/qr.cc (Fqrinsert, Fqrdelete): Modify to use - 0-based indexing in liboctave's QR classes. - - 2008-03-04 Jaroslav Hajek - - * DLD-FUNCTIONS/chol.cc (Fcholupdate): New function. - - * DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete): - New functions. - - 2008-03-04 Ryan Rusaw - - * toplev.h (octave_call_stack::element): New static function. - (octave_call_stack::cs): Now std::deque instead of std::list. - - * pt-stmt.cc (curr_statement, curr_caller_statement): Delete. - * pt-stmt.h: Delete decls. - - * pt-stmt.h, pt-stmt.cc (tree_statement_stack): New class. - - * pt-stmt.cc (tree_statement::eval): Use tree_statement_stack - instead of curr_statement variable. - - * ov-usr-func.cc (octave_user_function::do_multi_index_op): - Don't set curr_caller_statement. - - * error.cc (verror, pr_where): Call tree_statement_stack::current_line - and tree_statement_stack::current_column instead of - instead of curr_statement->line and curr_statement->column. - * input.cc (get_user_input): Likewise. - - 2008-02-27 John P. Swensen - - * debug.cc (get_user_function): Call symtab::find_function instead - of symtab::find_user_function. - - 2008-02-27 John W. Eaton - - * oct-stream.cc (do_read): Stop reading if seek fails. - - 2008-02-26 John W. Eaton - - * ov-base-int.cc (octave_base_int_helper, - octave_base_int_helper_traits): New templates and specializations. - (octave_base_int_matrix::convert_to_str_internal, - octave_base_int_matrix::convert_to_str_internal): Use them. - - * DLD-FUNCTIONS/rand.cc (do_rand): Pass name of calling function - to octave_rand::state. - - * variables.cc (bind_ans): Handle cs-lists recursively. - - * ov-cs-list.h, ov-cs-list.cc (octave_cs_list::print, - octave_cs_list::print_raw): Delete. - - 2008-02-25 John W. Eaton - - * Cell.cc (Cell::map): New function. - * Cell.h (Cell::map): Declare. - (xisalnum, xisalpha, xisascii, xiscntrl, xisdigit, - xisgraph, xislower, xisprint, xispunct, xisspace, xisupper, - xisxdigit, xtoascii, xtolower, xtoupper): New mapper functions. - (ctype_mapper): New private typedef. - - * ov-cell.h (xisalnum, xisalpha, xisascii, xiscntrl, xisdigit, - xisgraph, xislower, xisprint, xispunct, xisspace, xisupper, - xisxdigit, xtoascii, xtolower, xtoupper): New mapper functions. - - 2008-02-25 Michael Goffioul - - * ov-scalar.cc (octave_scalar::round): Use xround instead of ::round - in mapper implementation. - - 2008-02-25 John W. Eaton - - * ov-base.cc (UNDEFINED_MAPPER, STRING_MAPPER): New macros. Use - them to define mapper functions. - - * mappers.cc (Fisalnum, Fisalpha, Fisascii, Fiscntrl, Fisdigit, - Fisgraph, Fislower, Fisprint, Fispunct, Fisspace, Fisupper, - Fisxdigit, Ftoascii, Ftolower, Ftoupper): - Use DEFUNX to define ctype mapper functions. - Use new function names. - - * ov-base.h, ov-base.cc, ov-str-mat.h, ov-str-mat.cc: - Prepend x to ctype mapper function names. - - * graphics.h.in (row_vector_property::row_vector_property): - Set default constraints here. - (row_vector_property::add_constraint): New function. - (row_vector_property::validate): Delete decl. - (axes::properties::init): Use single-arg add_constraint function - for xlim, ylim, zlim, clim, and alim properties. - - * graphics.cc (row_vector_property::validate): Delete. - - * graphics.cc (axes::properties::update_camera, - axes::properties::update_aspectratios): - Avoid shadow warnings from GCC. - - * graphics.h.in (base_properties::get_bounding_box): - Avoid unused argument warning from GCC. - - * graphics.h.in (array_property::add_constraint): Arg is now const - reference, not value. - - * graphics.h.in, graphics.cc (class row_vector_property): New class. - (axes::properties): xlim, ylim, zlim, clim, alim, xtick, ytick, - ztick properties are now row_vector_property objects instead of - array_property objects. - - * genprops.awk: Special case row_vector_property in the same way - as array_property. - - 2008-02-22 John W. Eaton - - * DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/colamd.cc, - DLD-FUNCTIONS/convhulln.cc, DLD-FUNCTIONS/dmperm.cc, - DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/regexp.cc, - DLD-FUNCTIONS/symbfact.cc, zfstream.h, zfstream.cc: - Use 0 instead of NULL. - - 2008-02-22 David Bateman - - * DLD-FUNCTIONS/chol.c (Fchol, Fcholinv, Fchol2iinv): Treat - sparse matrices. Add the "lower" and "vector" flags. - * DLD-FUNCTIONS/inv.c (Finv): Treat sparse matrices. - * DLD-FUNCTION/sparse.cc (static bool is_sparse (const - octave_value&)): Remove and use arg.is_sparse_type () instead. - (Fspcumprod, Fspcumsum, Fspprod, spsum, spsumsq, spdiag): Remove. - * DLD-FUNCTIONS/splu.cc: Remove. - * DLD-FUNCTIONS/lu.cc: Treat sparse matrices, Add "vector" flag. - * DLD-FUNCTIONS/spchol.cc: Move to symbfact.cc - * DLD-FUNCTIONS/symbfact.cc: Remove cholesky functions Fspchol, - Fspcholinv, Fspchol2inv. - * DLD-FUNCTIONS/luinc.cc: Modify for new sparse LU - constructors. Ass the 'vector' flag. - * DLD-FUNCTIONS/spparms.cc: Add the sum_tol flag. - - * Makifile.in (DLD_XSRC): Remove spchol.cc, splu.cc and add - symbfact.cc - * data.cc (NATIVE_REDUCTION): Treat sparse matrices - (DATA_REDUCTION): Ditto. - (template static octave_value make_spdiag (const T&, - octave_idx_type)): New template function for sparse diag - function. Instantiate it. - (static octave_value make_diag (const octave_value&, - octave_idx_type): Use make_spdiag for sparse matrice. - (Fatan2): Compatibility fixes for mixed full/sparse matrices. - - 2008-02-21 John W. Eaton - - * DLD-FUNCTIONS/fsolve.cc (fsolve_user_jacobian): - Check dimensions of user-supplied Jacobian matrix. - (fsolve_user_function): Check for non-square systems. - - 2008-02-20 John W. Eaton - - * data.cc (map_d_m, map_m_d, map_m_m, Fatan2, Ffmod): - Handle N-d arrays. - - * ov-bool-mat.h (octave_bool_matrix (const Array2&)): Delete. - - 2008-02-20 David Bateman - - * DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/find.cc, - * DLD-FUNCTIONS/minmax.cc, DLD-FUNCTIONS/qr.cc: - Treat sparse matrices. - - * DLD-FUNCTIONS/sparse.cc (Fspmin, Fspmax, Fatan2): Remove functions. - - * DLD-FUNCTIONS/dmperm.cc: Rename from spqr.cc. - (Fspqr): Delete function. - - * DLD-FUNCTIONS/spqr.cc, DLD-FUNCTIONS/spdet.cc, - DLD-FUNCTIONS/spfind.cc: Remove. - - * Makefile.in (DLD_XSRC): Add dmperm.cc to the list. - Delete det.cc, find.cc, minmax.cc, and qr.cc from the list. - - * Makefile.in (OV_SRC): Remove ov-mapper.cc. - (OV_INCLUDES): Remove ov-mapper.h. - (DEFUN_PATTERN): No longer accept DEFUN_MAPPER as valid. - * ov-mapper.cc, ov-mapepr.h: Delete, remove all includes of - ov-mapper.h from all files. - - * op-b-sbm.cc, op-bm-sbm.cc, op-smb-b.cc, op-sbm-bm.cc: Include - ov-bool-sparse.h. - - * defun-int.h (DEFUN_MAPPER_INTERNAL, install_builtin_mapper): - Remove. - * defun.cc (install_builtin_mapper): Ditto. - * defun.h (DEFUN_MAPPER): Remove. - - * mappers.cc: Rewrite all mapper function using DEFUN and newly - introduced octave_value mapper functions. - (dummyp, xabs, xisalnum, xisascii, xiscntrl, xisdigit, - xisgraph, xislower, xisprint, xispunct, xisspace, xisupper, - xtoascii, xtolower, xtoupper, xconj, ximag, xreal): Remove - static wrapper functions. - - * mkbuiltins (XDEFUN_MAPPER_INTERNAL, install_builtin_functions): - Remove. - * mkgendoc (XDEFUN_MAPPER_INTERNAL): Remove. - - * ov.cc (octave_mapper::register_type): Remove. - - * ov.h (abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, - ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, gamma, - imag, isinf, isna, isnan, lgamma, log, log10, real, round, signum, - sin, sinh, sqrt, tan, tanh, isalnum, isalpha, isascii, iscntrl, - isdigit, isgraph, islower, isprint, ispunct, isspace, isupper, - isxdigit, toascii, tolower, toupper): - New octave_value mapper functions. - - * ov-base.h (abs, acos, acosh, angle, arg, asin, asinh, atan, - atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, - gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round, - signum, sin, sinh, sqrt, tan, tanh, isalnum, isalpha, isascii, - iscntrl, isdigit, isgraph, slower, isprint, ispunct, isspace, - isupper, isxdigit, toascii, tolower, toupper): - New virtual mapper functions. - * ov-base.cc (abs, acos, acosh, angle, arg, asin, asinh, atan, - atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, - gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round, - signum, sin, sinh, sqrt, tan, tanh, isalnum, isalpha, isascii, - iscntrl, isdigit, isgraph, slower, isprint, ispunct, isspace, - isupper, isxdigit, toascii, tolower, toupper): - Base versions of mapper functions. - - * ov-bool-mat.h (abs, acos, acosh, angle, arg, asin, asinh, atan, - atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, - gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round, - signum, sin, sinh, sqrt, tan, tanh): - Mapper function recast boolen matrix as double. - * ov-bool.h (abs, acos, acosh, angle, arg, asin, asinh, atan, - atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, - gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round, - signum, sin, sinh, sqrt, tan, tanh): Ditto. - * ov-bool-sparse.h (abs, acos, acosh, angle, arg, asin, asinh, - atan, atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, - floor, gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, - round, signum, sin, sinh, sqrt, tan, tanh): Ditto. - (char_array_value): New method to convert to charNDArray. - * ov-bool-sparse.cc (char_array_value): New method to convert to - charNDArray. - * ov-complex.cc (char_array_value): ditto. - (xabs, ximag, xreal): Static wrapper functions. - (abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil, - conj, cos, cosh, exp, finite, fix, floor, imag, isinf, isna, - isnan, log, log10, real, round, signum, sin, sinh, sqrt, tan, - tanh): New mapper methods. - * ov-complex.h: Provide decls. - - * ov-cx-mat.cc (char_array_value): New method to convert to - charNDArray. - (xabs, ximag, xreal): Static wrapper functions. - (abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil, - conj, cos, cosh, exp, finite, fix, floor, imag, isinf, isna, - isnan, log, log10, real, round, signum, sin, sinh, sqrt, tan, - tanh): New mapper methods. - * ov-cx-mat.h: Provide decls. - - * ov-cx-sparse.cc (char_array_value): New method to convert to - charNDArray. - (xabs, ximag, xreal): Static wrapper functions. - (abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil, - conj, cos, cosh, exp, finite, fix, floor, imag, isinf, isna, - isnan, log, log10, real, round, signum, sin, sinh, sqrt, tan, - tanh): New mapper methods. - * ov-cx-sparse.h: Provide decls. - - * ov-intx.h (abs, signum, imag, ceil, conj, fix, floor, real, - round, finite, isinf, isna, isnan): Define for both matrix and - scalar classes. - - * ov-range.h (abs, acos, acosh, angle, arg, asin, asinh, atan, - atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, - gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round, - signum, sin, sinh, sqrt, tan, tanh): New mapper functions. - - * ov-re-mat.cc (any_element_less_than): Static function to check if - any elemet was less than a value, - (any_element_greater_than): Ditto with greater than. - (abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil, - conj, cos, cosh, erf, erfc, exp, finite, fix, floor, gamma, imag, - isinf, isna, isnan, lgamma, log, log10, real, round, signum, sin, - sinh, sqrt, tan, tanh): New mapper functions. - * ov-re-mat.h: Provide decls. - - * ov-scalar.cc (any_element_less_than): Static function to check if - any elemet was less than a value, - (any_element_greater_than): ditto with greater than. - (abs acos acosh angle arg asin asinh atan atanh - ceil conj cos cosh erf erfc exp finite fix floor gamma imag - isinf isna isnan lgamma log log10 real round signum sin sinh - sqrt tan tanh): New mapper functions. - * ov-scalar.h: Provide decls. - - * ov-str-mat.cc (xisalnum, xisascii, xiscntrl, xisdigit, - xisgraph, xislower, xisprint, xispunct, xisspace, xisupper, - xtoascii, xtolower, xtoupper): New static wrapper functions. - (isalnum, isalpha, isascii, iscntrl, isdigit, isgraph, islower, - isprint, ispunct, isspace, isupper, isxdigit, toascii, tolower, - toupper): New mapper methods. - * ov-str-mat.h: Provide decls. - - 2008-02-18 David Bateman - - * data.cc (Fatan2): Reject arguments that are integer types. - - 2008-02-19 Jaroslav Hajek - - * DLD-FUNCTIONS/qr.cc: Doc fix. - - 2008-02-18 John W. Eaton - - * symtab.h - (symbol_table::fcn_info::fcn_info_rep::clear_unlocked_functions): - symbol_table::fcn_info::fcn_info_rep::clear_cmdline_function, - symbol_table::fcn_info::fcn_info_rep::clear_autoload_function): - New functions. - (symbol_table::fcn_info::fcn_info_rep::clear_user_function): - Don't clear locked functions. - (symbol_table::fcn_info::fcn_info_rep::clear_mex_function): - Call clear_user_function instead of setting function_on_path directly. - (symbol_table::fcn_info::fcn_info_rep::clear): - Use new functions to do the real work. - - * ov.h (octave_value::lock, octave_value::unlock, - octave_value::islocked): New functions. - * ov-base.cc (octave_base_value::lock, octave_base_value::unlock): - New functions. - * ov-base.h Provide decls. - (octave_base_value::islocked): New function. - * ov-fcn.h (octave_function::islocked): Now const. - - 2008-02-15 John W. Eaton - - * ov-builtin.cc (octave_builtin::do_multi_index_op): - Catch possible octave_execution_exception. - * ov-mex-fcn.cc (octave_mex_function::do_multi_index_op): Likewise. - * ov.cc (do_binary_op, do_cat_op, do_unary_op, - octave_value::do_non_const_unary_op): Likewise. - - 2008-02-14 John W. Eaton - - * DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/qz.cc: - Don't check f77_exception_encountered. - - * sighandlers.cc (user_abort): If interrupting immediately, set - octave_interrupt_state if it is not already set. - - * pt-stmt.cc (tree_statement::eval): Catch execution exceptions. - - * octave.cc (lo_error_handler): New static function. - (initialize_error_handlers): Set liboctave_error_handler to - lo_error_handler, not error. - - * DLD-FUNCTIONS/urlwrite.cc (urlget): Call octave_rethrow_exception - instead of octave_throw_interrupt_exception. - * utils.cc (BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_FOR_VSNPRINTF): - Likewise. - - 2008-02-12 David Bateman - - * graphics.h.in: Implement the cdatamapping property in patch and - image objects. - - 2008-02-12 John W. Eaton - - * pt-loop.cc (tree_simple_for_command::eval): Compute range - element with multiplication. - - 2008-02-11 John W. Eaton - - * Makefile.in ($(MAKEDEPS)): Skip dependencies if omit_deps is defined. - - 2008-02-09 John W. Eaton - - * pr-output.cc (set_range_format): Eliminate sign arg. - Change all callers. - - 2008-02-08 John W. Eaton - - * ov-struct.cc (octave_struct::subsref): Allow Cell::index to resize. - - * input.cc (interactive_input): Eliminate debug arg. Change All uses. - (get_user_input): Don't process input_buf if there is an error. - Call reset_error_handler instead of setting error_state to 0. - - 2008-02-08 Michael Goffioul - - * graphics.h.in (callback_property::execute): New static - helper method (useful to execute callbacks by name). - * graphics.cc (callback_property::execute): Likewise. - (execute_callback): Avoid undefined argument when executing - callback. Do not use arguments when the callback is a string. - - 2008-02-07 John W. Eaton - - * ov-range.h (octave_range::sort): New functions. - - 2008-02-07 David Bateman - - * Makefile.in (DLD_XSRC): Delete spkron.cc. - * DLD-FUNCTIONS/spkron.cc: Delete. - * DLD-FUNCTIONS/kron.cc: Include here and dispatch to the sparse - version if either argument is sparse. - - 2008-02-06 John W. Eaton - - * Makefile.in (parse.cc): Also use --defines option for bison. - - 2008-02-06 Michael Goffioul - - * graphics.cc (axes::properties::set_defaults): Set default axes - color to white. - - 2008-02-06 John W. Eaton - - * Makefile.in (parse.cc): Use "-o $@" instead of renaming y.tab.c. - (maintainer-clean): Don't remove y.tab.c. - - * Makefile.in (parse.cc : parse.y): Use mv instead of move-if-change. - (stamp-prereq, stamp-liboctave-prereq): Eliminate. - (clean): Don't remove stamp-prereq and stamp-liboctave-prereq. - (OPT_BASE, OPT_IN, OPT_INC): New macros. - (OPT_HANDLERS): Define in terms of OPT_BASE. - ($(OPT_INC) : %.h : %.in): New pattern rule. - (PREREQ): New macro. - ($(MAKEDEPS)): Simplify with $(PREREQ). - - 2008-02-05 John W. Eaton - - * Makefile.in: Unconditionally include $(MAKEDEPS). - Mark $(MAKEDEPS) as .PHONY targets if omit_deps is true. - - 2008-02-05 Michael Goffioul - - * graphics.h.in (base_properties::get_boundingbox): New method. - (figure::properties::get_boundingbox): Overload method. - (axes::properties::get_boundingbox): Likewise. - * graphics.cc (figure::properties::get_boundingbox): Return a - left-to-right/top-to-bottom bounding box rectangle. - (axes::properties::get_boundingbox): Likewise. - (axes::properties::update_camera): Remove backend access and - use the new axes bounding box. - - 2008-02-04 Shai Ayal - - * graphics.h.in (axes::properties::update_xlim, - axes::properties::update_ylim, axes::properties::update_zlim): - New update methods. - - * graphics.cc (axes::properties::calc_ticks): New function. - (axes::properties::magform): New function. - (axes::update_axis_limits): Call update_{x,y,z}lims if - appropriate. - - 2008-02-04 Michael Goffioul - - * graphics.h.in (base_graphics_backend::get_screen_size, - graphics_backend::get_screen_size): New methods. - (graphics_backend::available_backends): Export symbol. - (class figure::properties, class axes::properties): Export classes. - (figure::properties::get_boundingbox): New utility method. - (figure::properties::position): Use valid default position. - (axes::properties::gridlinestyle, - axes::properties::minorgridlinestyle): - Use dotted line style as default. - * graphics.cc (default_figure_position): New static function. - (gnuplot_backend::get_screen_size): New method. - (figure::properties::get_boundingbox): New utility method. - - 2008-02-02 Shai Ayal - - * graphics.h.in (base_scaler::~base_scalar): New virtual destructor. - * graphics.cc (axes::properties::update_camera): Tag abs with std. - - * graphics.h.in (graphics_backend::find_backend): New function. - (class figure): Add __backend__ property and set method. - - 2008-02-02 John W. Eaton - - * help.cc (do_type): Don't print dyamically loaded function files. - - * ov-fcn.h (octave_function::is_dynamically_loaded_function): Delete. - - 2008-02-01 John W. Eaton - - * symtab.cc (Fset_variable, Fvariable_value): - New functions, but commented out for now. - - 2008-01-30 Michael Goffioul - - * graphics.h.in (axes::properties::get_transform_matrix, - axes::properties::get_inverse_transform_matrix, - axes::properties::get_opengl_matrix_1, - axes::properties::get_opengl_matrix_2, - axes::properties::get_transform_zlim): New accessors. - (base_properties::is_clipping): New accessor. - (class graphics_xform): New class encapsulating axes transformation. - (axes::properties::get_transform): New method returning a - graphics_xform object. - * graphics.cc (class graphics_xform): New class. - - 2008-01-31 David Bateman - - * ov.cc (octave_value::octave_value (const ArrayN&), - octave_value::octave_value (const Sparse&, const MatrixType &), - octave_value::octave_value (const ArrayN&)): New - constructors. - * ov.h: (octave_value (const ArrayN&), - octave_value (const Sparse&, const MatrixType &), - octave_value (const ArrayN&)): Declare them. - (octave_value sort (octave_idx_type, sortmode) const, octave_value - sort (Array &, octave_idx_type, sortmode) const): - octave_value sort method. - - - * ov-base.cc (sort): Base versions of teh octave_value sort methods. - * ov-base.h (sort): Declare the octave_value sort methods - * ov-base-scalar.h (sort): Simple sort methods for scalars. - * ov-base-mat.h, ov-base-sparse.h (sort): Sort methods calling - underlying array or sparse sort methods. - * ov-str-mat.h (sort): String specific sort methods. - - * TEMPLATE-INST/Array-tc.cc: Instantiate the array sort methods. - * ov-streamoff.h (sort): Sort versions returning and error. - * oct-stream.cc, ov-typeinfo.cc, Array-os.cc: Null instantiation - of array sort methods. - - * Makefile.in (DLD_XSRC): Remove sort.cc - * DLD-FUNCTIONS/sort.cc: Remove - * data.cc (Fsort): New function using octave_value sort methods - for the sorting. Add tests. - - 2008-01-30 Thomas Weber - - * pager.cc (Fmore): Doc fix. - - 2008-01-28 Michael Goffioul - - * genprops.awk: Add update ('u') modifier and document the - readonly ('r') modifier. - * graphics.h.in (class base_scaler, class lin_scaler, class - log_scaler, class scaler): New classes to make abstraction of the - axis scale. - (base_graphics_backend::get_screen_resolution, - graphics_backend::get_screen_resolution): New methods. - (axes::properties::sx, axes::properties::sy, - axes::properties::sz): New scaler fields. - (axes::properties::get_x_scaler, axes::properties::get_y_scaler, - axes::properties::get_z_scaler): New accessors. - (axes::properties::x_render, axes::properties::x_render_inv, - axes::properties::x_gl_mat1, axes::properties::x_gl_mat2, - axes::properties::x_zlim): New utility Matrix fields. - (axes::properties::get_boundingbox, - axes::properties::update_camera, - axes::properites::update_aspectratios, - axes::properties::update_transform, - axes::properties::update_xscale, axes::properties::update_yscale, - axes::properties::update_zscale, axes::properties::update_view, - axes::properties::update_xdir, axes::properties::update_ydir, - axes::properties::update_zdir): New updater methods. - (axes::properties::init): Initialize sx, sy, sz and x_zlim correctly. - (axes::properties::position): Use valid default position value. - (axes::properties::xscale, axes::properties::yscale, - axes::properties::zscale, axes::properties::xdir, - axes::properties::ydir, axes::properties::zdir, - axes::properties::view): Add updater ('u') property modifier. - * graphics.cc (default_axes_position, default_axes_outerposition): - New initializers. - (convert_position): New utility function to convert position - according to specified units. - (gnuplot_backend::get_screen_resolution): New method. - (axes::properties::set_defaults): Initilize recently added properties. - (xform_matrix, xform_vector, transform, xform_scale, - xform_translate, scale, translate, xform, normalize, dot, cross, - unit_cube, cam2xform, xform2cam): New inline transformation - utility functions. - (axes::properties::update_camera, - axes::properties::update_aspectratios, - axes::properties::get_boundingbox): New updater methods for - computing transformation matrices. - (axes::update_axis_limits): Update transformation data. - - 2008-01-28 John W. Eaton - - * oct-stream.cc (BEGIN_CHAR_CLASS_CONVERSION): Handle width properly. - (OCTAVE_SCAN) [__GNUG__ && ! CXX_ISO_COMPLIANT_LIBRARY]: - Delete special case. - - 2008-01-25 David Bateman - - * DLD-FUNCTIONS/rand.cc (Frandp): Relax relative error on randp - tests. - - 2008-01-25 Michael Goffioul - - * graphics.h.in (base_properties::get_backend, - base_graphics_object::get_backend, graphics_backend::get_backend): - New methods for convenient access to the backend. - (figure::get_backend, figure::set_backend): Remove. - * graphics.cc (base_properties::get_backend): New method. - (Fdrawnow): Use graphics_object::get_backend to simplify code. - - 2008-01-24 Pascal Dupuis - - * mxarray.h.in: Include . - - 2008-01-22 John W. Eaton - - * graphics.cc (clear_drawnow_request): New function. - (Fdrawnow): Add it to the unwind_protect stack. - - * input.cc (Vdrawnow_requested): No longer static. - * input.h: Provide decl. - * graphics.cc (Fdrawnow, Fset, make_graphics_object): - Use Vdrawnow_requested directly. - - * toplev.cc (octave_add_atexit_function, - octave_remove_atexit_function): New functions. - (Fatexit): Use them. - * graphics.cc (Fdrawnow): Call octave_add_atexit_function instead - of using eval. - * toplev.h (octave_add_atexit_function, - octave_remove_atexit_function): Provide decls. - - 2008-01-22 Michael Goffioul - - * graphics.h.in (base_properties::is_visible, - base_properties::set_modified): New accessors. - (class base_graphics_backend, class graphics_backend): New classes - for handling octave/backend interaction. - (figure::properties::close): Add "pop" argument controlling - whether the figure should be popped from the list of existing figures. - (class figure::properties): New backend field and accessors, holding - the graphics backend associated with the figure. - * graphics.cc (class gnuplot_backend): New class for the default - gnuplot backend. - (figure::properties::close): Add "pop" argument and transfer the - figure closing to the associated backend. - (Fdrawnow): New builtin function, converted from drawnow.m. - - 2008-01-19 John W. Eaton - - * genprops.awk (emit_source): Use "pname" for property name argument. - - 2008-01-19 Shai Ayal - - * graphics.h.in (class figure::properties): New properties: - alphamap, currentcharacter, currentobject, current_point, - dockcontrols, doublebuffer, filename, integerhandle, - inverthardcopy, keypressfcn, keyreleasefcn, menubar, mincolormap, - name, numbertitle, paperunits, paperposition, paperpositionmode, - papersize, papertype, pointer, pointershapecdata, - pointershapehotspot, position, renderer, renderermode, resize, - resizefcn, selectiontype, toolbar, units, windowbuttondownfcn, - windowbuttonmotionfcn, windowbuttonupfcn, windowbuttonwheelfcn, - windowstyle, wvisual, wvisualmode, xdisplay, xvisual, xvisualmode, - buttondownfcn. - - 2008-01-19 Michael Goffioul - - * graphics.h.in (base_properties::beingdeleted, - base_properties::is_beingdeleted, - base_properties::get_beingdeleted, - base_properties::set_beingdeleted): - Add beingdeleted property and accessors. - * graphics.cc (base_properties::get): Likewise. - (gh_manager::free): Set beingdeleted to "on" when freeing an object. - * genprops.awk: Skip C++-style comments in property declaration. - - * graphics.h.in (class axes::properties): New properties: alim, - alimmode, xminortick, yminortick, zminortick, ambientlightcolor, - cameraposition, cameratarget, cameraupvector, cameraviewangle, - camerapositionmode, cameratargetmode, cameraupvectormode, - cameraviewanglemode, currentpoint, drawmode, fontangle, fontname, - fontsize, fontweight, fontunits, gridlinestyle, - minorgridlinestyle, linestyleorder, linewidth, plotboxaspectratio, - plotboxaspectratiomode, projection, tickdir, tickdirmode, - ticklength, tightinset, units, x_viewtransform, - x_projectiontransform, x_viewporttransform, x_normrendertransform, - x_rendertransform. - * genprops.awk: Handle new readonly modifier 'r'. - - 2008-01-18 Juhani Saastamoinen - - * genprops.awk: Avoid using "default" as a variable name. - - 2008-01-17 Michael Goffioul - - * graphics.h.in (data_property::get_data_limits): Reset min/max values. - - 2008-01-17 David Bateman - - * ov-fcn-inline.cc: Add tests for Finline. - - 2008-01-17 Ben Abbott - - * load-path.cc (F__pathorig__): Rename from Fpathdef. - (Frestoredefaultpath): New function. - - 2008-01-16 John W. Eaton - - * pt-assign.cc (tree_simple_assignment::rvalue, - tree_multi_assignment::rvalue): Handle assignment of - comma-separated lists. - - 2008-01-15 John W. Eaton - - * mappers.cc (install_mapper_functions): Move test for asin here - from test/test_arith.m. - - * graphics.h.in (class line::properties, class text::properties): - Rename erase_mode property to erasemode. - - 2008-01-15 Michael Goffioul - - * graphics.h.in (base_properties::remove_child, - base_properties::adopt, base_properties::update_axis_limits): - Make virtual. - (base_graphics_object::mark_modified, - base_graphics_object::override-defaults, - base_graphics_object::set_from_list, base_graphics_object::set, - base_graphics_object::get, base_graphics_object::get_parent, - base_graphics_object::remove_child, base_graphics_object::adopt, - base_graphics_object::reparent, base_graphics_object::defaults, - base_graphics_object::type): Add default implementation. - (class root_figure, class figure, class axes, class line, - class text, class image, class patch, class surface): - Remove overloaded virtual methods whose implementation is - identical to the default one. - - * genprops.awk: Handle 'h' modifier for hidden properties. - Replace "get(void)" method with "get(bool all = false)" to allow - access to hidden properties. - - * graphics.h.in (base_properties::get, base_graphics_object::get, - graphics_object::get, root_figure::get, figure::get, axes::get, - line::get, text::get, patch::get, surface::get, image::get): - New arg, ALL, to access hidden properties. - (gh_manager::do_get_object): Do not look for invalid handles. - (figure::properties::__plot_stream__, - figure::properties::__enhanced__, axes::properties::__colorbar__): - Make properties hidden. - (axes::properties, line::properties, text::properties, - patch::properties, surface::properties): Remove obsolete 'a' - property modifier. - * graphics.cc (base_properties::get): New arg ALL, to access - hidden properties. - (base_properties::mark_modified): Call mark_modified only on valid - parent object. - (__get__): New internal function returning all properties, - including the hidden ones. - - 2008-01-15 John W. Eaton - - * graphics.cc (properties::set_currentfigure, - properties::set_currentaxes): Don't convert arg to double - before passing to graphics_handle constructor. - (base_properties::remove_child): Call mark_modified if list of - children changes. - - 2008-01-15 Shai Ayal - - * graphics.h.in (class line::properties): New properties: - displayname, erasemode. - (class text::properties) New properties: backgroundcolor, - displayname, edgecolor, erase_mode, editing, fontunits, linestyle, - linewidth, margin, verticalalignment. - - 2008-01-14 John W. Eaton - - * load-path.cc (load_path::do_initialize): Start with sys_path empty. - (maybe_add_path_elts): Omit path_sep_str if path is empty. - - * symtab.h (symbol_table::do_pop_context): Remove symbol_records - which have no more context. - (symbol_table::symbol_record::pop_context, - (symbol_table::symbol_record::symbol_record_rep::pop_context): - Return size of value_stack, or 1 if variable is persistent or global. - - 2008-01-14 Kai Habel - - * graphics.h.in (class patch::properties): New properties: - cdatamapping, facevertexalphadata, facevertexcdata, vertexnormals, - normalmode, facelighting, edgealpha, edgelighting, - backfacelighting, ambientstrength, diffusestrength, - specularstrength, specularexponent, specularcolorreflectance, - erasemode. - - 2008-01-14 Michael Goffioul - - * graphics.h.in (gh_manager::do_make_graphics_handle, - gh_manager::make_graphics_handle): New boolean parameter - do_createfcn. - * graphics.cc (xcreatefcn): New static function. - (gh_manager::do_make_graphics_handle): New boolean parameter - do_createfcn. Execute createfcn callback accordingly. - (make_graphics_object, F__go_figure__): Use do_createfcn - parameter and call xcreatefcn - - * genprops.awk (emit_get_callback): Pass user data to execute method. - * graphics.cc (execute_callback): New static function. - (callback_property::validate): Make it work. - (callback_property::execute): Make it work. - (gh_manager::do_free): Execute delete function here. - * graphics.h.in (callback_property::execute): Fix decl. - (base_properties::buttondownfcn, base_properties::createfcn, - base_properties::deletefcn, base_properties::userdata): Default - value is empty Matrix, not undefined octave_value object. - (base_properties::execute_createfcn): New function. - (base_properties::execute_deletefcn): New function. - - 2007-12-13 Shai Ayal - - * graphics.h.in, graphics.cc (class base_properties): New - properties: busyaction, buttondownfcn, clipping, createfcn, - deletefcn, handlevisibility, hittest, interruptible, selected, - selectionhighlight, uicontextmenu, userdata, visible. - (class figure): Delete visible property. - - 2008-01-13 Michael Goffioul - - * graphics.h.in: Sprinkle with OCTINTERP_API as needed. - (axes::properties::xaxislocation): Allow value of zero. - (axes::properties::yaxislocation): Likewise. - - 2008-01-12 Michael Goffioul - - * Makefile.in (distclean): Delete graphics-props.cc. - - * genprops.awk: Handle new graphics property classes. - - * graphics.h.in, graphics.cc: Adapt for new specific property types. - - 2008-01-12 John W. Eaton - - * toplev.cc (octave_config_info): Add GNUPLOT to the struct. - * oct-conf.h.in (OCTAVE_CONF_GNUPLOT): New macro. - - 2008-01-11 John W. Eaton - - * DLD-FUNCTIONS/__qp__.cc (qp): Undo part of change from - 2007-09-04 (compute Y at each iteration). - - 2008-01-10 John W. Eaton - - * DLD-FUNCTIONS/fsolve.cc (Ffsolve): Doc fix. - (hybrd_info_to_fsolve_info): Swap return values for -1 and -2 inputs. - - * DLD_FUNCTIONS/__gnuplot_raw__.l: Delete. - * Makefile.in (DLD_XSRC): Remove it from the list. - (BUILT_DISTFILES): Remove __gnuplot_raw__.cc from the list. - (stamp-prereq): Don't depend on __gnuplot_raw__.cc. - (maintainer-clean): Don't remove __gnuplot_raw__.cc. - (__gnuplot_raw__.cc): Delete target. - (__gnuplot_raw__.o, pic/__gnuplot_raw__.o): Delete targets. - - * mex.cc (calc_single_subscript_internal): New static function. - (mxArray_octave_value::calc_single_subscript): Use it. - (mxArray_matlab::calc_single_subscript): Use it. - - 2008-01-07 John W. Eaton - - * pt-except.cc (tree_try_catch_command::eval): - Set Vdebug_on_error and Vdebug_on_warning to false while executing - try block. - - * error.cc (Vdebug_on_error, Vdebug_on_warning): No longer static. - * error.h: Provide decls. - - * gripes.cc (gripe_wrong_type_arg (const std::string&, const - octave_value&, bool)): New function. - * gripes.h: Provide decl. - - * oct-stream.cc (printf_value_cache::printf_value_cache): - Reject structs, cells, objects, and lists. - (octave_base_stream::do_printf): Quit early if printf_value_cache - constructor fails. - - * parse.y (make_anon_fcn_handle): Don't attempt to convert - expression to assignment to __retval__. - - 2008-01-07 Michael Goffioul - - * ov-builtin.h (octave_builtin): Tag with OCTINTERP_API. - * ov-dld-fcn.h (octave_dld_function): Likewise. - - * ov-dld-fcn.cc (octave_dld_function::create): New function. - * ov-dld-fcn.h: Provide decl. - * defun.h (DEFINE_FUNX_INSTALLER_FUN3): Call it instead of - creating a new octave_dld_function object directly. - - 2008-01-04 John Swensen - - * debug.cc (bp_table::do_remove_all_breakpoints_in_file): - Avoid calling erase on invalid bp_map iterators. - (bp_table::do_remove_breakpoint): Only try to delete breakpoints - if some exist. Avoid calling erase on invalid bp_map iterators. - (parse_dbfunction_params): Return early if ARGS is empty. - New arg, WHO. Change all uses. - Accept but do nothing with struct args. - - 2008-01-04 Thomas Weber - - * variables.cc (Fclear): Doc fix. - - 2008-01-04 John W. Eaton - - * symtab.h (symbol_table:pop_scope): Avoid accessing beyond end of - scope_stack. - - 2008-01-04 David Bateman - - * ov-mapper.cc (SPARSE_MAPPER_LOOP_2): Use data method instead of - elem in the case where F(0) is non-zero. - - 2007-12-28 John W. Eaton - - Merge changes from object branch: - - 2007-12-12 John W. Eaton - - * load-path.cc (load_path::dir_info::get_file_list, - load_path::move_method_map, load_path::remove_method_map, - load_path::do_find_fcn, load_path::do_find_private_fcn, - load_path::do_find_method, load_path::do_find_file, - load_path::do_find_first_of, load_path::do_find_all_first_of, - load_path::do_display, load_path::add_to_method_map, genpath, - execute_pkg_add_or_del): Use file_ops::concat. - - 2007-08-24 John W. Eaton - - * variables.cc (Fmislocked): return value for nargin == 0 case. - - 2007-07-27 John W. Eaton - - * pt-idx.cc (tree_index_expression::rvalue): - Pass substring of type to subsref when doing partial evaluation. - (tree_index_expression::lvalue): Likewise. - - 2007-06-29 John W. Eaton - - * ov-class.cc (is_built_in_class, set_class_relationship, - Fsuperiorto, Finferiorto): New functions. - (octave_class::in_class_method): New function. - (octave_class::subsref, octave_class:subsasgn): Use it. - - 2007-06-28 John W. Eaton - - * ov-class.cc (sanitize): New function. - (make_idx_args): Use it. - - 2007-06-28 John W. Eaton - - * ov-class.cc (octave_class::subsasgn): Expect and use only - one return value from feval of subsasgn method. - - * ov.cc (octave_value::assign): Don't convert to struct if - indexing a class object with ".". - - * pt-idx.cc (tree_index_expression::make_arg_struct): - Use Cell instead of octave_value_list for subscripts. - - * ov-class.cc (make_idx_args): For "." index, subs field is - string, not cell. - - 2007-06-27 John W. Eaton - - * ov-fcn-handle.cc (octave_fcn_handle::save_ascii, - octave_fcn_handle::load_ascii, octave_fcn_handle::save_binary, - octave_fcn_handle::load_binary, octave_fcn_handle::save_hdf5, - octave_fcn_handle::load_hdf5): Adapt to new symbol table objects. - - * symtab.h (symbol_table::all_variables, - symbol_table::do_all_variables): New arg, defined_only. - - 2007-06-26 John W. Eaton - - * ls-mat5.cc (read_mat5_binary_element): Adapt to new symbol table - objects. - - * variables.cc (Vwhos_line_format): New static variable. - (Fwhos_line_format): New function. - (symbol_record_name_compare): Delete function. - (symbol_record_name_compare, whos_parameter): New structs. - (print_descriptor, dimensions_string_req_first_space, - dimensions_string_req_total_space, make_dimensions_string, - parse_whos_line_format, print_symbol_info_line): New static - functions, adapted from old symbol table class. - (do_who): Adapt to new symbol table objects. - - * symtab.h (symbol_table::glob_variables): New functions. - (symbol_table::do_glob): New argument, vars_only. Change all uses. - - 2007-06-22 John W. Eaton - - * symtab.cc (symbol_table::fcn_info::fcn_info_rep::help_for_dispatch): - New function. - * symtab.h: Provide decl. - (symbol_table::fcn_info::help_for_dispatch, - symbol_table::help_for_dispatch): New functions. - - * help.cc (help_from_symbol_table): Call - symbol_table::help_for_dispatch instead of - extract_help_from_dispatch. - - * help.cc (extract_help_from_dispatch): Delete. - * help.h: Delete decl. - - 2007-06-21 John W. Eaton - - * DLD-FUNCTIONS/dispatch.cc (class octave_dispatch): Delete class. - (builtin, any_arg_is_magic_colon, dispatch_record): Delete functions. - (Fbuiltin, Fdispatch): Adapt to new symbol table objects. - - * symtab.cc (symbol_table::fcn_info::fcn_info_rep::print_dispatch): - New function. - * symtab.h: Provide decl. - (symbol_table::fcn_info::print_dispatch, symbol_table::print_dispatch): - New functions. - - * symtab.h (symbol_table::fcn_info::fcn_info_rep::clear_dispatch, - symbol_table::fcn_info::clear_dispatch, symbol_table::clear_dispatch): - New functions. - - * symtab.h (symbol_table::fcn_info::fcn_info_rep::get_dispatch, - symbol_table::fcn_info::get_dispatch, symbol_table::get_dispatch): - New functions. - - * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find): - Use leftmost class argument as dispatch type, or first argument if - there are no class arguments. - - 2007-06-20 John W. Eaton - - * ov-base.cc (Vprint_answer_id_name, Fprint_answer_id_name): Delete. - (octave_base_value::print_with_name): Always print name. - - * ov-base.cc (Vsilent_functions): No longer static. - * ov-base.h: Provide decl. - - * ov-class.cc (Fmethods): Define as command. - - * ov-class.cc (octave_class::print): Simply call print_raw. - - * ov-class.cc (octave_class::print_with_name): New function. - * ov-class.h: Provide decl. - - 2007-06-19 John W. Eaton - - * ov.cc (octave_value::do_unary_op, octave_value::do_binary_op): - Handle class methods. - - * ov.cc (octave_value::unary_op_fcn_name, - octave_value::binary_op_fcn_name): New functions. - * ov.h: Provide decls. - - * ov-typeinfo.cc (octave_value_typeinfo::register_unary_class_op, - octave_value_typeinfo::register_binary_class_op, - octave_value_typeinfo::do_register_unary_class_op, - octave_value_typeinfo::do_register_binary_class_op, - octave_value_typeinfo::do_lookup_unary_class_op, - octave_value_typeinfo::do_lookup_binary_class_op): New functions. - * ov-typeinfo.h: Provide decls. - - * ov-typeinfo.h (octave_value_typeinfo::unary_class_op_fcn, - octave_value_typeinfo::binary_class_op_fcn): New typedefs. - (octave_value_typeinfo::unary_class_ops, - octave_value_typeinfo::binary_class_ops): New data members. - (octave_value_typeinfo::octave_value_typeinfo): Initialize them. - (octave_value_typeinfo::lookup_unary_class_op, - octave_value_typeinfo::lookup_binary_class_op): New functions. - - * OPERATORS/op-class.cc: New file. - * Makefile.in (OP_XSRC): Add it to the list. - - * ov.cc (install_types): Call octave_class::register_type here. - - * ov-class.h (octave_class): Implement by containing a map object - instead of deriving from octave_struct. - * ov-class.cc (octave_class::subsref, octave_class::subsasgn): - Don't use octave_class implementation as default action. - - * ov.h, ov.cc (octave_value::octave_value (const Octave_map&, const - std::string&)): New constructor. - - 2007-06-18 John W. Eaton - - * ov-class.cc (octave_class::subsref, octave_class::subsasgn): - Handle dispatch to user-defined methods. - - * parse.y (load_fcn_from_file): New arg, dispatch_type. - Change all uses. - - * ov-fcn.h (octave_function::is_class_constructor, - octave_function::is_class_method, octave_function::dispatch_class): - New virtual functions. - - * ov-usr-fcn.h (octave_user_function::dispatch_class, - octave_usr_function::stash_dispatch_class): New functions. - (octave_usr_fucntion::xdispatch_class): New data member. - * parse.y (frob_function): Call stash_dispatch_class here. - - * ov-struct.cc (Ffieldnames): Also handle objects. - - * ov-class.cc (Fmethods): New function. - * load-path.cc (load_path::do_methods): New function. - * load-path.h (load_path::methods): New function. - - * ov.h (octave_value::is_object): New function. - * ov-base.h (octave_base_value::is_object): New virtual function. - * ov-class.h (octave_class::is_object): New function. - * ov-class.cc (Fisobject): New function. - - 2007-06-15 John W. Eaton - - * ov-class.cc (octave_class::print): Call display method if found. - - * symtab.h (symbol_table::fcn_info::find_method): New function. - (symbol_table::find_method): New function. - (symbol_table::fcn_info::fcn_info_rep::find_method): Provide decl. - * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find_method): - New function. - (symbol_table::fcn_info::fcn_info_rep::find): Use it. - - 2007-06-14 John W. Eaton - - * symtab.h (symbol_table::clear_mex_functions): Make it work. - (symbol_table::fcn_info::fcn_info_rep::clear_mex_function, - symbol_table::fcn_info::clear_mex_function): New functions. - - 2007-06-08 John W. Eaton - - * defun.cc (Falias): Delete. - - * variables.cc (load_fcn_try_ctor): New function. - (lookup): call load_fcn_try_ctor instead of load_fcn_from_file. - - * variables.cc, variables.h (at_top_level, lookup_by_name, lookup, - initialize_symbol_tables, fcn_out_of_date, symbol_out_of_date, - lookup_function, lookup_user_function, link_to_global_variable, - link_to_builtin_or_function, force_link_to_function, Fdocument, - is_local_variable, do_clear_all, do_clear_functions, - do_clear_globals, do_clear_variables, do_clear_function, - do_clear_global, do_clear_variable, do_clear_symbol, - do_clear_function_pattern, do_clear_global_pattern, - do_clear_variable_pattern, do_clear_symbol_pattern, - clear_function, clear_variable, clear_symbol): - Delete (some functionality moved to the new symtab.cc and some is - no longer needed). - (Fignore_function_time_stamp): Move to symtab.cc. - - * lex.l (lookup_identifier): Delete. - - * parse.y (is_function_file): New function. - (load_fcn_from_file): Return pointer to octave_function, not bool. - - * ov-usr-fcn.h, ov-usr-fcn.cc (octave_user_function::argn_sr, - octave_user_function::nargin_sr, octave_user_function::nargout_sr, - octave_user_function::varargin_sr): Delete data members. - (octave_user_function::install_automatic_vars): Delete. - (octave_user_script::do_multi_index_op): New function. - - * ov-fcn.h (octave_function::locked, octave_function::my_dir_name): - New data members. - (octave_function::dir_name, octave_function::stash_dir_name, - octave_function::lock, octave_function::unlock, - octave_function::islocked): New functions. - - * of-fcn-handle.h, ov-fcn-handle.cc (octave_fcn_handle::subsref): - Call out_of_date_check here to simplify time stamp checking. - (octave_fcn_handle::reload_warning): Delete. - - * ov.h (octave_value::is_user_script, octave_value::is_user_function): - New functions. - * ov-base.h (octave_base_value::is_user_script, - octave_base_value::is_user_function): New pure virtual functions. - * ov-fcn.h (octave_function::is_user_script, - octave_function::is_user_function): Delete. - - * load-save.cc (install_loaded_variable): Greatly simplify. - - * load-path.h, load-path.cc: Change private_fcn_file to private_file. - (load_path::private_fcn_map): New data member. - (load_path::do_add, load_path::do_remove, load_path::do_update): - Also manage private_file_map here. - (load_path::add_to_private_fcn_map): New function. - (load_path::remove_private_fcn_map): New function. - (load_path::do_find_private_fcn): Make it work. - (get_file_list): New function. - (load_path::do_display): Use it. Display private map. - (load_path::find_method, load_path::find_fcn): Handle directory name. - - * token.cc, token.h, toplev.cc, debug.cc, defun.cc, defun-dld.h, - defun-int.h, error.cc, help.cc, load-save.h, load-save.cc, mex.cc, - octave.cc, ov-fcn-handle.cc, ov-usr-fcn.cc, parse.h, parse.y, - lex.l, variables.cc: Adapt to new symbol table objects (my - apologies for the lack of detail). - - * unwind-prot.h (unwind_protect::add): Set default value for ptr arg. - - * pt-stmt.cc (tree_statement::eval): Rework method for deciding - whether to assign value to ans. - - * pt-idx.cc (tree_index_expression::rvalue): - Looking up symbol may evaluaate first args now. - - * pt-id.h, pt-id.cc (tree_identifier::document, - tree_identifier::is_defined, tree_identifier::define, - tree_identifier::is_function, tree_identifier::lookup, - tree_identifier::link_to_global): Delete. - (tree_identifier::do_lookup): Simplify. - (tree_identifier::rvalue): Looking up symbol can't execute script now. - - * pt-misc.cc (tree_parameter_list::initialize_undefined, - tree_parameter_list::is_defined): Call is_variable for elt, not - is_defined. - - * pt-fcn-handle.h (tree_anon_fcn_handle::fcn): Now pointer to - octave_user_function, not value. Change all uses. - - * pt-decl.h (tree_decl_command::initialized): Delete data member. - (tree_decl_elt::is_variable): New function. - * pt-decl.cc: Fix all uses of tree_decl_command::initialized. - - * ls-hdf5.cc, ls-mat-ascii.cc, ls-mat4.cc, ls-mat5.cc, - ls-oct-ascii.cc, ls-oct-binary.cc, input.cc: Don't include symtab.h. - - * dynamic-ld.h, dynamic-ld.cc (octave_dynamic_loader::load_oct, - octave_dynamic_loader::load_mex, octave_dynamic_loader::do_load_oct, - octave_dynamic_loader::do_load_mex): Adapt to new symbol table - objects. Return pointer octave_function instead of bool. - - * DLD-FUNCTIONS/dispatch.cc (Fbuiltin): Disable for now. - Disable code that works with old symbol tables. - (Fbuiltin): Simply call symbol_table::add_dispatch. - - * pt-arg-list.cc, pt-arg-list.h, pt-assign.cc, pt-assign.h, - pt-binop.cc, pt-binop.h, pt-bp.h, pt-cell.cc, pt-cell.h, - pt-cmd.cc, pt-cmd.h, pt-colon.cc, pt-colon.h, pt-const.cc, - pt-const.h, pt-decl.cc, pt-decl.h, pt-except.cc, pt-except.h, - pt-exp.h, pt-fcn-handle.cc, pt-fcn-handle.h, pt-id.cc, pt-id.h, - pt-idx.cc, pt-idx.h, pt-jump.cc, pt-jump.h, pt-loop.cc, pt-loop.h, - pt-mat.cc, pt-mat.h, pt-misc.cc, pt-misc.h, pt-select.cc, - pt-select.h, pt-stmt.cc, pt-stmt.h, pt-unop.cc, pt-unop.h: - Adapt dup functions to use scope instead of symbol_table objects. - - * TEMPLATE-INST/Array-sym.cc: Delete. - * Makefile.in (TI_XSRC): Remove it from the list. - - * symtab.h, symtab.cc: Replace with new versions. - - 2007-05-16 John W. Eaton - - * oct-lvalue.cc, oct-lvalue.h (octave_lvalue::chg_fcn): Delete. - Fix all uses. - - 2007-05-15 John W. Eaton - - * load-path.cc (load_path::do_find_private_function): New function. - * load-path.h (load_path::do_find_private_function): Provide decl. - (load_path::find_private_function): New function. - - 2007-05-08 John W. Eaton - - * pt-idx.cc (tree_index_expression::rvalue): Handle dispatch here. - - * pt-id.cc (tree_identifier::is_variable, tree_identifier::lookup): - New functions. - * pt-id.cc: Provide decls. - - * parse.y (current_class_name): New global variable. - * parse.h: Provide decl. - - * parse.y (load_fcn_from_file, parse_fcn_file): - New arg, dispatch_type. - (parse_fcn_file): Protect current_class_name and set it to - dispatch_type before parsing function. - (load_fcn_from_file): If dispatch_type is not empty, call - load_path::find_method instead of load_path::find_fcn. - * parse.h: Fix decls for extern functions. - - * lex.h (lexical_feedback::parsing_class_method): New data member. - * lex.l (lexical_feedback::init): Initialize it. - (lookup_identifier): Check it and set sym_name accordingly. - - * ov-usr-fcn.h (octave_user_function::mark_as_class_constructor, - octave_user_function::is_class_constructor, - octave_user_function::mark_as_class_method, - octave_user_function::is_class_method): New functions. - (octave_user_function::class_constructor, - octave_user_function::class_method): New data members. - * ov-usr-fcn.cc (octave_user_function::octave_user_function): - Initialize them. - - * load-path.h, load-path.cc: Use typedefs to simplify template decls. - Use fcn consistently instead of function. - - 2007-05-03 John W. Eaton - - * ov-class.cc (Fclass): Move here. - * ov-typeinfo.cc: From here. - - * input.cc (octave_gets): Call load_path::update if user input - contains something other than one of the characters " \t\n\r". - - * ov-class.cc, ov-class.h: New files. - * Makefile.in: Add them to the appropriate lists. - - * load-path.cc (genpath): Skip directories beginning with "@". - (load_path::dir_info::get_file_list): Don't return anything. - Call get_private_function_map here. - (load_path::dir_info::initialize): Not here. - (load_path::dir_info_::get_method_file_map): New function. - (load_path::method_map): New data member. - (load_path::do_clear): Also clear method_map. - (load_path::do_add): Also call add_to_method_map. - (load_path::do_update): Also clear method_map and call - (load_path::do_find_method): New function. - (load_path::do_add_to_method_map): New function. - (load_path::move_fcn_map, load_path::move_method_map): New functions. - (load_path::move): Use them. - (load_path::remove_fcn_map, load_path::remove_method_map): - New functions. - (load_path::remove): Use them. - * load-path.h: Provide/fix decls. - (load_path::find_method): New static function. - - * Makefile.in (%.df : %.cc): Use mv instead of - $(simple-move-if-change-rule). - - 2007-12-21 John W. Eaton - - Version 3.0.0 released. - - * version.h (OCTAVE_VERSION): Now 3.0.0. - (OCTAVE_API_VERSION): Now api-v32. - (OCTAVE_RELEASE_DATE): Now 2007-12-21. - - 2007-12-19 Thomas Kasper - - * OPERATORS/op-scm-cs.cc (DEFBINOP (pow)): Extract complex value - from second arg. - - 2007-12-12 David Bateman - - * DLD-FUNCTIONS/sparse.cc (Fsparse): Check for scalar arguments - for 2 argument version. - - 2007-12-12 John W. Eaton - - * graphics.h.in (class axes) Add the layer property. - * graphics.cc (class axes) Ditto. - - * graphics.cc (gh_manager::get_handle): Use ceil instead of trunc. - - 2007-12-11 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.19+. - - 2007-12-11 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.19. - (OCTAVE_API_VERSION): Now api-v31. - (OCTAVE_RELEASE_DATE): Now 2007-12-11. - - * graphics.cc (make_graphics_object): - If successful, call __request_drawnow__. - - * input.cc (Vgud_mode): New static variable. - (F__gud_mode__): New function. - (get_user_input): If debug and Vgud_mode, print location info in - format for Emacs GUD mode. - - 2007-12-11 David Bateman - - * OPERATORS/op-bm-sbm.cc, OPERATORS/op-b-sbm.cc, - OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, - OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, - OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, - OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc: Privilege - conversion to dense matrices for compatibility. - - * DLD-FUNCTIONS/sparse.cc (FSparse): Remove the mutate flag, as - default bahavior is now to keep matrix sparse always. - - * graphics.cc (axes::properties::properties): - Initialize xcolor, ycolor, and zcolor to (0, 0, 0). - - * graphics.h.in (gh_manager::next_handle): Now double. - * graphics.cc (gh_manager::get_handle, gh_manager::gh_manager): - Set fractional part of next_handle to a random value. - - 2007-12-10 John W. Eaton - - * ov-cell.cc (octave_cell::all_strings): Handle empty elements. - Handle N-d cell arrays. - - * DLD-FUNCTIONS/fsolve.cc (Ffsolve): - For compatibility, return [x, fval, info] instead of [x, info, msg]. - Move tests here from test/test_nonlin.m. - - * OPERATORS/op-cm-s.cc: Define function for el_mul with - DEFNDBINOP_OP, not DEFBINOP_OP. - - * OPERATORS/op-s-cm.cc: Define functions for el_and and el_or - operators with DEFNDBINOP_FN. - - * oct-hist.cc (default_history_file): Use file_ops::concat. - * load-path.cc (dir_info::initialize, dir_info::get_file_list, - load_path::do_find_fcn, load_path::do_find_file, genpath, - execute_pkg_add_or_del, load_path::do_find_first_of, - load_path::do_find_all_first_of): Likewise. - - * help.cc (Flookfor): Avoid doubling directory separator. - * dirfns.cc (Fmkdir): Likewise. - - * pt-mat.cc (tree_matrix::rvalue): Produce sq_string if any - strings are sq_string objects. - - 2007-12-10 David Bateman - - * graphics.h.in (data_property::data): Declare as NDArray instead - of Matrix. Change all uses. - - 2007-12-10 Shai Ayal - - * graphics.h.in (class figure) Add the color property. - * graphics.cc (class figure) Ditto. - - 2007-12-07 David Bateman - - * data.cc (Fnorm): Don't return a scalar stored as a sparse - matrix. Convert it to a scalar. - - * graphics.cc (check_limit_val): Delete. - (check_limit_vals): Simplify and no longer use check_limit_val. - - 2007-12-05 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.18+. - - 2007-12-05 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.18. - (OCTAVE_API_VERSION): Now api-v30. - (OCTAVE_RELEASE_DATE): Now 2007-12-05. - - 2007-12-04 John W. Eaton - - * Makefile.in (INCLUDES): Add builtins.h to the list. - - * oct-hist.cc (default_history_file): Use += instead of - push_back to append character to std::string object. - - * Makefile.in (LIBDLFCN): Delete all uses. - - * toplev.cc (octave_config_info): Remove LIBDLFCN and - DLFCN_INCFLAGS from the list. - * oct-conf.h.in (OCTAVE_CONF_DLFCN_INCFLAGS, OCTAVE_CONF_LIBDLFCN): - Delete. - - * error.cc (Ferror): Handle error id. - - * load-save.cc (Fsave, Fload): Doc fixes. - From Marco Caliari . - - 2007-12-04 Shai Ayal - - * graphics.h.in (base_properties::get_type - base_properties::get___modified__, - base_properties::get___myhandle__): New functions. - - 2007-12-04 Christoph Mayer . - - * toplev.h (clean_up_and_exit, recover_from_exception, - do_octave_atexit, global_command, curr_parent_function): - Tag with OCTINTERP_API. - - 2007-12-03 David Bateman - - * DLD-FUNCTIONS/luinc.cc: Make tests conditional on HAVE_UMFPACK. - * DLD-FUNCTIONS/spqr.cc: Make tests conditional on HAVE_CXSPARSE. - - * DLD-FUNCTIONS/regexp.cc: Use "%!testif" blocks for conditional - tests on PCRE. - - * graphics.cc (class axes): Add color and activepositionproperty - properties to axis objects. - * graphics.h.in (class axes): ditto. - - * DLD-FUNCTIONS/regexp.cc: Also include sys/types.h for regexp. - - 2007-11-30 John W. Eaton - - * DLD-FUNCTIONS/sort.cc (operator < (const Complex&, const Complex&), - operator > (const Complex&, const Complex&)): - Pass args by const reference, not value. - - * data.cc, matherr.c, pr-output.cc, sysdep.cc, - DLD-FUNCTIONS/__dsearchn__.cc, DLD-FUNCTIONS/minmax.cc, - DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/sort.cc, - DLD-FUNCTIONS/tsearch.cc: Include lo-math.h instead of cmath - or math.h. - - 2007-11-30 Moritz Borgmann - - * ls-mat5.h (mat5_data_type): Delete trailing comma in enum decl. - * oct-stream.cc (octave_base_stream::do_printf): Use - OCTAVE_EMPTY_CPP_ARG to avoid annoying Sun compiler warning. - * OPERATORS/op-sbm-sbm.cc (DEFDBLCONVFN): Delete useless macro - invocation. - - * DLD-FUNCTIONS/typecast.cc (typecast): No longer static. - - 2007-11-30 John W. Eaton - - * graphics.cc (updating_axis_limits): New static variable. - (check_limit_val, check_limit_vals, get_axis_limits): New functions. - (axes::update_axis_limits): Make it work. - * graphics.h.in (base_properties::get_children): New function. - (base_properties::get_xdata, base_properties::get_ydata, - base_properties::get_zdata, base_properties::get_ldata, - base_properties::get_udata, base_properties::get_xldata, - base_properties::get_xudata, base_properties::get_cdata, - base_properties::get_properties (void) const): - New virtual functions. - (graphics_object::get_xdata, graphics_object::get_ydata, - graphics_object::get_zdata, graphics_object::get_ldata, - graphics_object::get_udata, graphics_object::get_xldata, - graphics_object::get_xudata, graphics_object::get_cdata, - graphics_object::get_properties (void) const, - root_figure::get_properties (void) const, - figure::get_properties (void) const, - axes::get_properties (void) const, - line::get_properties (void) const, - text::get_properties (void) const, - image::get_properties (void) const, - patch::get_properties (void) const, - surface::get_properties (void) const)): New functions. - (radio_property::radio_property (const radio_values&)): - Provide default value for argument. - (radio_property::radio_property (const radio_values&, const - std::string&)): Delete. - (axes::xlimmode, axes::ylimmode, axes::zlimmode, axes::climmode, - axes::xscale, axes::yscale, axes::zscale): Declare as - radio_property instead of octave_value values. Adjust all uses. - - 2007-11-29 John W. Eaton - - * pr-output.cc (octave_print_internal_template (std::ostream&, - const octave_int&, bool)): Rename from octave_print_internal. - (PRINT_INT_SCALAR_INTERNAL): New macro. Use it to define - non-template functions for printing scalar octave_int values. - (octave_print_internal_template (std::ostream&, const intNDArray&, - bool, int)): Rename from octave_print_internal. - (PRINT_INT_ARRAY_INTERNAL): New macro. Use it to define - non-template functions for printing scalar octave_int values. - * pr-output.h: Declare non-template functions for printing - octave_int scalar and array values. - Delete declarations of template funtions for printing octave_int - scalar and array values. - - 2007-11-28 John W. Eaton - - * graphics.cc (base_properties::update_axis_limits, - axes::update_axis_limits): New functions. - * graphics.h.in (class data_property): New class. - (graphics_object::update_axis_limits): New function. - (base_graphics_object::update_axis_limits): New virtual function. - (base_properties::update_axis_limits, axes::update_axis_limits): - Provide decls. - (class line, class image, class patch, class surface): Use it - instead of octave_value for data properties. Tag data properties - with "l" modifier. - (class axes): Tag scale properties with "l" modifier. - * genprops.awk: Handle "l" modifier. - - * mkbuiltins: Emit #include "builtins.h" for the builtins.cc file. - From Christoph Mayer . - - * TEMPLATE-INST/Array-tc.cc (resize_fill_value): - Delete. - - * Cell.cc (Cell::Cell (const dim_vector&, const string_vector&, bool)): - Initialize undefined values to resize_fill_value (). - - 2007-11-27 John W. Eaton - - * TEMPLATE-INST/Array-tc.cc (resize_fill_value): - Tag inline. From Moritz Borgmann . - - * pt-bp.cc (tree_breakpoint::visit_decl_command): Also check line - number of cmd. - * pt-decl.cc (tree_global_command::eval, tree_static_command::eval): - Insert MAYBE_DO_BREAKPOINT here. - - * error.cc (Fwarning): If setting state "all" to "error", leave - Octave:matlab-incompatible and Octave:single-quote-string warning - states unchanged. - (warning_enabled): Allow individual warning states to override - "warning error all". - - * octave.cc (execute_eval_option_code, execute_command_line_file): - Handle interrupts. - * toplev.cc (recover_from_exception): Now extern. - * toplev.h (recover_from_exception): Provide decl. - - * pt-idx.cc (tree_index_expression::lvalue): Treat object == [] - the same as undefined. - - 2007-11-26 John W. Eaton - - * oct-stream.cc (DO_DOUBLE_CONV): Always use long. - - * oct-stream.cc (do_write): Call float_value and double_value on - octave_int objects instead of relying on conversion operators. - - * ls-mat5.cc (read_mat5_binary_element, OCTAVE_MAT5_INTEGER_READ): - Call double_value on octave_int objects - instead of relying on conversion operator. - (read_mat5_binary_file_header): - Call char_value on octave_int objects - instead of relying on conversion operator. - (read_mat5_binary_element): - Call bool_value on octave_int objects - instead of relying on conversion operator. - - * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::double_value, - OCTAVE_VALUE_INT_MATRIX_T::scalar_value, - OCTAVE_VALUE_INT_MATRIX_T::matrix_value, - OCTAVE_VALUE_INT_MATRIX_T::complex_matrix_value, - OCTAVE_VALUE_INT_MATRIX_T::array_value, - OCTAVE_VALUE_INT_MATRIX_T::complex_array_value, - OCTAVE_VALUE_INT_SCALAR_T::double_value, - OCTAVE_VALUE_INT_SCALAR_T::scalar_value, - OCTAVE_VALUE_INT_SCALAR_T::matrix_value, - OCTAVE_VALUE_INT_SCALAR_T::complex_matrix_value, - OCTAVE_VALUE_INT_SCALAR_T::array_value, - OCTAVE_VALUE_INT_SCALAR_T::complex_array_value, - Call double_value on octave_int objects - instead of relying on conversion operator. - (OCTAVE_VALUE_INT_MATRIX_T::bool_array_value, - OCTAVE_VALUE_INT_SCALAR_T::bool_array_value): - Call bool_value on octave_int objects - instead of relying on conversion operator. - (OCTAVE_VALUE_INT_MATRIX_T::char_array_value, - OCTAVE_VALUE_INT_SCALAR_T::char_array_value): - Call char_value on octave_int objects - instead of relying on conversion operator. - - 2007-11-26 David Bateman - - * Sparse-op-defs.h (SPARSE_BASE_REDUCTION_OP): Check that the fill - value is not zero before creating the matrices. - - * graphics.cc (class axes): Add the {x|y|z}color color property. - * graphics.h.in (class axes): ditto. - - * ov-base.cc (Vsparse_auto_mutate, Fsparse_auto_mutate): New - internal variable and built-in function to set it. - * ov-base.h (extern bool Vsparse_auto_mutate): Export internal - variable to other functions. - * ov-re-sparse.cc (octave_sparse_matrix::try_narrowing_conversion - (void)), ov-cx-sparse.cc - (octave_sparse_complex_matrix::try_narrowing_conversion (void)), - ov-bool-sparse.cc - (octave_sparse_bool_matrix::try_narrowing_conversion (void)): - Use Vsparse_auto_mutate flag to determine whether to convert - sparse matrices to full matrices if that saves space. - - * DLD-FUNCTIONS/minmax.cc (MINMAX_DOUBLE_BODY): New version of - MINMAX_BODY macro without the initialization. - (MINMAX_INT_BODY): Macro for min/max for the integer types - (MINMAX_BODY): New macro that calls the appropriate instantiation - of the other two macros. - - * graphics.cc (class axes): Add __colorbar__ property. - * graphics.h.in (class axes): ditto. - - * data.cc (Fnorm): Document the "inf" string argument for matrice - and vectors and the "fro" argument for vectors. - - * graphics.h.in (class figure): Add __enhanced__ property to cache - whether the terminal supports enhanced mode. Add interpreter - property to all text classes, to determine the renderer for the - text. - * graphics.cc (class figure): ditto. - - 2007-11-26 Shai Ayal - - * graphics.cc (string_properties): delete class - (property_name): rename class to caseless_str. - (radio_values::possible_vals): change type to caseless_str. - - 2007-11-26 Michael Goffioul - - * builtins.h (install_builtins): Tag with OCTINTERP_API. - * toplev.h (octave_interpreter_ready, octave_initialized): Likewise. - - 2007-11-14 John W. Eaton - - * mex.cc (mex::foreign_memlist): New data member. - (mex::mark_foreign, mex::unmark_foreign): New functions. - (mex::free): Don't warn about pointers found in foreign_memlist. - (maybe_mark_foreign): New function. - (mxArray_octave_value::get_data, mxArray_octave_value::get_ir, - mxArray_octave_value::get_jc): - Call maybe_mark_foreign on returned pointer. - - 2007-11-14 David Bateman - - * mex.cc (mxArray_sparse::mxArray_sparse (const mxArray_sparse&)): - Also ensure that pr and pi are correctly copied. - - 2007-11-14 John W. Eaton - - * Makefile.in (@bsd_gcc_kluge_targets_frag@): Delete line for - Makefrag.bsd substitution. - - * graphics.h.in (base_properties::tag): New property. - (base_properties::get_tag, base_properties::set_tag): New functions. - (root_figure::set, root_figure::get, figure::set, figure::get, - axes::set, axes::get, line::set, line::get, text::set, text::get, - patch::set, patch::get, surface::set, surface::get): Handle tag. - - 2007-11-14 Joseph P. Skudlarek - - * DLD-FUNCTIONS/regexp.cc: Undo previous change. - - 2007-11-14 John W. Eaton - - * mex.cc (mex::mark, mex::unmark): Now public. - (mex::persistent): Delete. - (mexMakeArrayPersistent): Call maybe_unmark_array instead of - mex::persistent. - (mexMakeMemoryPersistent): Call maybe_unmark instead of - mex::persistent. - (maybe_unmark (void *)): New function. - (mxSetDimensions, mxSetPr, mxSetPi, mxSetData, mxSetImagData, - mxSetIr, mxSetJc): Use it. From David Bateman. - - 2007-11-13 Joseph P. Skudlarek - - * DLD-FUNCTIONS/rand.cc (Frand): Update URL reference in doc string. - - 2007-11-12 David Bateman - - * graphics.h.in, graphics.cc (class text): Add the fontangle and - fontweight properties. Add string_property class to handle the - string radio values. - - 2007-11-12 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.17+. - - 2007-11-12 David Bateman - - * graphics.h.in, graphics.cc (class text): Add the fontname and - fontsize properties. - - 2007-11-10 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.17. - (OCTAVE_API_VERSION): Now api-v29. - (OCTAVE_RELEASE_DATE): Now 2007-11-10. - - 2007-11-09 John W. Eaton - - * DLD-FUNCTIONS/__gnuplot_raw__.l: Don't add atexit ("closeplot") - to PKG_ADD file. - - 2007-11-09 David Bateman - - * graphics.cc, graphics.h.in (class patch): Add the field "keylabel". - - * data.cc (Fcputime) [__WIN32__]: Correct scaling of sys and usr times. - - * graphics.cc (is_handle): Handle must be a real scalar. - - 2007-11-09 Joseph P. Skudlarek - - * data.cc (Fislogical): Fix typo in documentation entry. - - 2007-11-08 John W. Eaton - - * DLD-FUNCTIONS/__gnuplot_raw__.l (F__gnuplot_save_data__): - Note obsolescence in doc string. - (WARN_OBSOLETE): New macro - (F__gnuplot_save_data__, Fgnuplot_command_plot, - Fgnuplot_command_replot, Fgnuplot_command_splot, - Fgnuplot_command_using, Fgnuplot_command_with, - Fgnuplot_command_axes, Fgnuplot_command_title, - Fgnuplot_command_end, Fgnuplot_use_title_option, - F__clear_plot_window__, Fcloseplot, Fpurge_tmp_files, - F__gnuplot_raw__, F__gnuplot_send_inline_data__, F__gnuplot_set__, - F__gnuplot_show__, F__gnuplot_plot__, F__gnuplot_splot__, - F__gnuplot_replot__): Use WARN_OBSOLETE. - - 2007-11-07 John W. Eaton - - * DLD-FUNCTIONS/regexp.cc: Handle HAVE_PCRE_PCRE_H. Check - HAVE_PCRE_H instead of HAVE_PCRE to decide whether to include pcre.h. - - * DLD-FUNCTIONS/__gnuplot_raw__.l (Fgnuplot_command_plot, - Fgnuplot_command_replot, Fgnuplot_command_splot, - Fgnuplot_command_using, Fgnuplot_command_with, - Fgnuplot_command_axes, Fgnuplot_command_title, - Fgnuplot_command_end, Fgnuplot_use_title_option, - F__clear_plot_window__, Fcloseplot, Fpurge_tmp_files, - F__gnuplot_raw__, F__gnuplot_send_inline_data__, F__gnuplot_set__, - F__gnuplot_show__, F__gnuplot_plot__, F__gnuplot_splot__, - F__gnuplot_replot__): Note obsolescence in doc string. - - 2007-11-06 Kai Habel - - * graphics.h.in (class surface::properties): New properties, - cdata, facecolor, facealpha, edgecolor, linestyle, - linewidth, marker, markeredgecolor, markerfacecolor, markersize. - * graphics.cc (surface::properties::properties, - surface::properties::set, surface::properties::get, - surface::properties::factory_defaults): Handle new properities. - - 2007-11-06 David Bateman - - * data.cc (DATA_REDUCTION): Handle the 'native' and 'double' - arguments of the Fsum function. - * OPERATORS/op-bm-bm.cc (matrix_to_bool_matrix, - scalar_to_bool_matrix): New type conversion functions. - (install_bm_bm_ops): Install new type conversions functions. - - 2007-11-06 Michael Goffioul - - * toplev.cc (Fsystem) [__WIN32__ && ! __CYGWIN__]: - Quote the complete command. - - 2007-11-06 John W. Eaton - - * data.cc (Fnorm): New tests. - - * defun-int.h (DEFINE_FUNX_INSTALLER_FUN3): Don't install function - if check_version produces an error. - - 2007-11-05 John W. Eaton - - * pt-idx.cc (tree_index_expression::lvalue): Try to do a better - job of computing the number of elements in lvalue expressions when - the last indexing element is ".". - - 2007-11-02 John W. Eaton - - * file-io.cc (fopen_mode_to_ios_mode): Use std::ios::app instead - of std::ios::ate. - - 2007-11-02 Olli Saarela - - * input.cc, pr-output.cc, bitfcns.cc, DLD-FUNCTIONS/time.cc: - Fix broken @examples in help texts. - - 2007-10-31 John W. Eaton - - * data.cc (Fnorm): Avoid warning about p_val possibly being used - uninitialized. - - * version.h (OCTAVE_VERSION): Now 2.9.16+. - - 2007-10-31 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.16. - (OCTAVE_API_VERSION): Now api-v28. - (OCTAVE_RELEASE_DATE): Now 2007-10-31. - - 2007-10-31 Muthiah Annamalai - - * pt-assign.h (tree_simple_assignment::op_type, - tree_multi_assignment::op_type): New functions. - * pt-unop.h (tree_unary_expression::op_type): New function. - - 2007-10-31 John W. Eaton - - * graphics.cc (line::properties::get): Fix property name - (markerface -> markerfacecolor). - - * Makefile.in (INCLUDES): Add debug.h to the list. - - 2007-10-30 John Swensen - - * debug.h: New file. - * debug.cc (parse_dbfunction_params, do_find_bkpt_list, - intmap_to_ov): New functions. - (Fdbstop, Fdbclear): Use parse_dbfunction_params. - Improve compatibility. - (Fdbstatus): Improve compatibility. - - * help.cc (do_which): No longer static. - * help.h: Provide decl. - - 2007-10-30 David Bateman - - * symtab.cc: Doc fixes for small book format. - - 2007-10-30 John W. Eaton - - * file-io.cc (fopen_mode_to_ios_mode): Handle 'W' as 'w' and 'R' - as 'r', but warn about them. - - 2007-10-29 Thomas Treichl - - * data.cc: Include sytime.h, sys/types.h, and sys/resource.h. - - 2007-10-25 John W. Eaton - - * graphics.cc (figure::properties::set_currentaxes): - Allow currentfigure to be NaN. - - 2007-10-25 Michael Goffioul - - * DLD-FUNCTIONS/__contourc__.cc: Use unsigned int instead of uint. - (drawcn): Use 1 << k instead of pow (2, k). - - 2007-10-25 John W. Eaton - - * symtab.h (symbol_record::TYPE): Delete trailing comma in enum decl. - - * ov-base.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Use - OCTAVE_EMPTY_CPP_ARG to avoid annoying Sun compiler warning. - - * Makefile.in (graphics.h): Use $(AWK) instead of awk. - - * DLD-FUNCTIONS/time.cc (Ftime, Fmktime): Avoid unnecessary cast. - - * data.cc (Ftic, Ftoc): Call double_value on octave_time objects - instead of relying on conversion operator. - * ov.cc (octave_value::octave_value (octave_time)): Likewise. - - * variables.cc (symbol_out_of_date): Use explicit conversion to - time_t instead of relying on conversion operator. - * ov-fcn-handle.cc (octave_fcn_handle::subsref): Likewise. - - * data.cc (tic_toc_timestamp): Rename from __tic_toc_timestamp__. - Change all uses. - - 2007-10-24 David Bateman - - * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::OCTAVE_VALUE_INT_MATRIX_T - (const ArrayN&)): New constructor. - * ov.cc (octave_value::octave_value(const ArrayN) with T being - octave_int8, octave_uint8, octave_int16, octave_uint16, - octave_int32, octave_uint32, octave_int64, octave_uint64): New - constructors. - * ov.h (octave_value::octave_value(const ArrayN) with T being - octave_int8, octave_uint8, octave_int16, octave_uint16, - octave_int32, octave_uint32, octave_int64, octave_uint64): - Declare them. - * DLD-FUNCTIONS/sort.cc (template class octave_sort, - template class vec_index, template class - octave_sort *>, with T being - octave_int8, octave_uint8, octave_int16, octave_uint16, - octave_int32, octave_uint32, octave_int64, octave_uint64): New - instantiations of sort template classes. - (Fsort): Use them. - - 2007-10-24 John W. Eaton - - * graphics.cc (root_figure::properties::set_currentfigure): - Allow currentfigure to be NaN. - - * pt-idx.cc (tree_index_expression::lvalue): Correctly compute - number of elements in lvalue expression when last indexing - element is ".". - - 2007-10-23 John W. Eaton - - * graphics.cc (is_handle (const graphics_handle&)): New function. - (gh_manager::do_free, reparent, base_properties::set_parent, - properties::get_title, properties::get_xlabel, - properties::get_ylabel, properties::get_zlabel, - properties::remove_child, make_graphics_object, F__go_figure__, - F__go_delete__, __go_axes_init__): Call OK on graphics handle - object instead of relying on implicit conversion operator. - * graphics.h.in (graphics_handle::operator double ()): Delete. - (graphics_handle::operator bool ()): Delete. - (gh_manager::do_handle_list, gh_manager::do_figure_handle_list, - base_properties::adopt): Call VALUE on graphics handle object - instead of relying on implicit conversion operator. - - * ov-base.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Call - DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA2 with "( )" as arg list - instead of "()". - - * mxarray.h.in (mxClassID): Delete trailing comma in enum decl. - - * symtab.h (symbol_table::symbol_table): Reduce default table size - to 64. - - 2007-10-22 Kim Hansen - - * unwind-prot.cc: Include . - - 2007-10-22 David Bateman - - * data.cc (Ftic, Ftoc, Fcputime): New builtin versions of the - benchmarking functions for speed. - * oct-map.cc (Octave_map::squeeze, Octave_map::permute): New methods. - (Octave_map::index (const octave_value_list&, bool)): Add resize_ok - argument, define as const and use const_iterator internally. - (Octave_map::index (idx_vector&, ...), Octave_map::index (Array - &, ...)): New forms of the index function. - * oct-map.h (squeeze, permute, indx (const octave_value_list&, bool), - index (idx_vector&, ...), index (Array &, ...)): Add - or update declaration. - * ov-struct.cc (octave_struct::do_index_op (const octave_value_list&, - bool)): New method. - * ov-struct.h (do_index_op (const octave_value_list&, bool)): Declare - it. - (squeeze (void), permute (const Arra&, bool): New methods. - - 2007-10-19 Kai Habel - - * DLD-FUNCTIONS/__contourc__.cc (add_point): Rename from - cl_add_point. Change all uses. - (end_contour): Rename from cl_end_contour. Change all uses. - (start_contour): Rename from cl_start_contour. Change all uses. - (drawcn): Rename from cl_drawcn. New algorithm for locating contours. - (mark_facets): New function. - (cntr): Rename from cl_cntr. Change all uses. New algorithm for - locating contours. - - 2007-10-19 John W. Eaton - - * ov-cell.cc (octave_cell::subsasgn): If RHS is cs-list, don't - fail if shape of LHS is different. - * ov-struct.cc (octave_struct::subsasgn): Likewise. - - 2007-10-19 Olli Saarela - - * help.cc (Flookfor): Call print_usage instead of usage. - * DLD-FUNCTIONS/cellfun.cc (Fmat2cell): Likewise. - - 2007-10-17 John W. Eaton - - * DLD-FUNCTIONS/spchol.cc (Fsymbfact): Delete special code for METIS. - - 2007-10-17 Gabriele Pannocchia - - * DLD-FUNCTIONS/__qp__.cc (qp): Fix check for Wact(j). - - 2007-10-15 Sᅵren Hauberg - - * error.cc (Ferror): Make text fit on pages when using smallbook. - * load-save.cc (Fsave_header_format_string): Ditto. - * ov-struct.cc (Fcell2struct): Ditto. - * DLD-FUNCTIONS/besselj.cc (Fairy): Ditto. - * DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread): Ditto. - - 2007-10-15 David Bateman - - * graphics.cc (axes::properties::get): Fix typo. - - 2007-10-13 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.15+. - - 2007-10-13 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.15. - (OCTAVE_API_VERSION): Now api-v27. - (OCTAVE_RELEASE_DATE): Now 2007-10-13. - - 2007-10-13 David Bateman - - * graphics.h.in (class patch): Add the faces and vertices properties. - * graphics.cc (patch::properties::properties): Initialize faces - and vertices. - (patch::properties::get): Also fetch faces and vertices. - (patch::properties::factory_defaults): Set faces and vertices. - - 2007-10-12 John W. Eaton - - * Change copyright notices in all files that are part of Octave to - GPLv3 or any later version. - - 2007-10-11 John W. Eaton - - * DLD-FUNCTIONS/urlwrite.cc (urlget): Disable use of EPSV mode. - - 2007-10-11 Brian Gough - - * DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/regexp.cc, dirfns.cc, - input.cc: Spelling fixes. - - 2007-10-10 John W. Eaton - - * OPERATORS/op-sbm-sbm.cc (bool_matrix_to_double_matrix): - New conversion function. - (install_sbm_sbm_ops): Install it. - - * ov-re-mat.cc (double): Handle sparse as a special case. - - 2007-10-10 Olli Saarela - - * data.cc, debug.cc, dirfns.cc, error.cc, file-io.cc, help.cc, - load-save.cc, ov-fcn-inline.cc, parse.y, pr-output.cc, symtab.cc, - syscalls.cc, toplev.cc, variables.cc, DLD-FUNCTIONS/bsxfun.cc, - DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/fft.cc, - DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftw.cc, - DLD-FUNCTIONS/gcd.cc, DLD-FUNCTIONS/lsode.cc, - DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/matrix_type.cc, - DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/regexp.cc, - DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/spchol.cc, - DLD-FUNCTIONS/splu.cc, DLD-FUNCTIONS/spparms.cc: Spelling fixes. - - 2007-10-10 Kim Hansen - - * DLD-FUNCTIONS/lpsolve.cc: Delete. - * Makefile.in (DLD_XSRC): Remove it from the list. - - * data.cc (Fsqueeze): Document 2d behaviour. - * ov-range.h (octave_range::squeeze): New function. - - 2007-10-09 John W. Eaton - - * DLD-FUNCTIONS/urlwrite.cc (urlget_cleanup): New function. - (urlget): Protect call to curl_easy_perform with - BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE and - END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE. - - 2007-10-09 David Bateman - - * input.cc (accept_line): Drop this function and remove automatic - insertion of closing quotes as the transpose operator confuses it. - (initialize_command_input): Remove accept_line from here as well. - - 2007-10-09 John W. Eaton - - * ov-mapper.cc (octave_mapper::apply): If possible, use - d_d_map_fcn to handle complex values which have imag(z) == 0. - - * DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread) [! HAVE_CURL]: - Throw error instead of returning empty string hiding error message - in third return value. - (progress_func): Delete. - (Furlread): Don't set progress callback for curl. - (write_data, form_query_string, urlget): Now static. - - 2007-10-08 David Bateman - - * input.cc (quoting_filename): Function to add a leading quote to - a string if needed. - (accept_line): Function to check if a string needs a closing quote - before calling the rl_newline function. - (initialize_command_input): Initialize completer_quote_characters, - filename_quote_characters, quoting_function, - user_accept_line_function. - - * data.cc (template static make_diag (...)): New - template class version of make_diag. Make other make_diag - functions depend on it. - ( static octave_value make_diag (const octave_value&, - octave_idx_type)): Treat all possible internal Octave types. - - 2007-10-08 John W. Eaton - - * load-save.cc (save_vars, dump_octave_core): - Don't pass INFNAN_WARNED to do_save. - (do_save): Delete unused arg, INFNAN_WARNED. - Don't pass INFNAN_WARNED to save_ascii_data. - * ls-oct-ascii.cc (save_ascii_data_for_plotting): - Don't pass INFNAN_WARNED to save_ascii. - (save_ascii_data): Delete unused arg, INFNAN_WARNED. - - * ov.h (octave_value::save_ascii): Delete unused arg, INFNAN_WARNED. - * ov-base-int.cc (octave_base_int_matrix::save_ascii, - octave_base_int_scalar::save_ascii): Likewise. - * ov-base-sparse.cc (octave_base_sparse::save_ascii): Likewise. - * ov-base.cc (octave_base_value::save_ascii): Likewise. - * ov-bool-mat.cc (octave_bool_matrix::save_ascii): Likewise. - * ov-bool.cc (octave_bool::save_ascii): Likewise. - * ov-cell.cc (octave_cell::save_ascii): Likewise. - * ov-fcn-handle.cc (octave_fcn_handle::save_ascii): Likewise. - * ov-fcn-inline.cc (octave_fcn_inline::save_ascii): Likewise. - * ov-list.cc (octave_list::save_ascii): Likewise. - * ov-struct.cc (octave_struct::save_ascii): Likewise. - * ov-str-mat.cc (octave_char_matrix_str::save_ascii): Likewise. - * ov-range.cc (octave_range::save_ascii): Likewise. - - * ov-scalar.cc (octave_scalar::save_ascii): Remove warning about - reloading inf/nan values. Delete unused arg, INFNAN_WARNED. - * ov-complex.cc (octave_complex::save_ascii): Likewise. - * ov-re-mat.cc (octave_matrix::save_ascii): Likewise. - * ov-cx-mat.cc (octave_complex_matrix::save_ascii): Likewise. - - * ov-fcn-inline.cc (Finline): Use DEFUNX instead of DEFUN. - - 2007-10-08 Michael Goffioul - - * sighandlers.h (can_interrupt): Tag with OCTINERP_API. - * sysdep.h (raw_mode, octave_popen, octave_pclose, - same_file_internal): Likewise. - - 2007-10-06 John W. Eaton - - * oct-stream.cc (octave_base_stream::do_scanf): - Always allow MVAL to re resized if NR > 0. - (FINISH_CHARACTER_CONVERSION): Likewise. - - * mappers.cc (install_mapper_functions): Undo previous change. - Fix doc string for lgamma. - (xzlgamma): Delete. - - 2007-10-05 John W. Eaton - - * graphics.h.in (axes::properties): New property, colororder. - * graphics.cc (default_colororder): New function. - (axes::properties::properties, axes::properties::get, - axes::properties::set_defaults, - axes::properties::factory_defaults, ): Handle colororder. - - * mappers.cc (xzlgamma): New static function. - (install_mapper_functions): Pass xzlgamma for c_c_map for lgamma - mapper. Pass 1 for can_ret_cmplx_for_real and set hi to - octave_Inf. - - 2007-10-04 John W. Eaton - - * DLD-FUNCTIONS/symrcm.cc: Move static functions to top of file to - avoid forward decls. - (Q_enq): Delete unused arg QH. Change all uses. - (Q_deq): Delete unused arg QT. Change all uses. - (find_starting_node): Delete unused local variable J. - (H_heapify_min, H_insert, find_starting_node, Fsymrcm): - Move local variable decls to point of first use. - - * OPERATORS/op-streamoff.cc (STREAMOFF_COMP_OP): - Avoid control-reaches-end-of-non-void-function warning. - - * pt-const.cc (tree_constant::dup): Avoid unused parameter warning. - - * pr-output.cc (set_real_format, set_real_matrix_format, - set_complex_format, set_complex_matrix_format): - Delete unused arg, SIGN. Change uses. - - * oct-map.cc (Octave_map::Octave_map): Avoid shadow warning. - - * load-save.cc (write_header): Use reinterpret_cast to avoid - old-style cast warning. - - * data.cc (do_permute): Delete unused arg, FNAME. Change all uses. - - * sysdep.cc (w32_set_octave_home, w32_set_quiet_shutdown, - MINGW_signal_cleanup): - Only define if defined (__WIN32__) && ! defined (_POSIX_VERSION). - - 2007-10-04 Jason Riedy - - * ls-mat5.cc (read_mat5_binary_data): Map miUTF16 to miUINT16, - miUTF32 to miUINT32. The matfile format currently states that - wide UTF formats are in the same byte order as the integers. - (read_mat5_binary_element): Replace all UTF16 and UTF32 - characters with the high bit set (value >127) by '?' and warn - that we've done so. - - 2007-10-04 Michael Goffioul - - * sysdep.cc (w32_set_octave_home): Base OCTAVE_HOME location on - octinterp, not the main exe. - - 2007-10-03 John W. Eaton - - * data.cc (Fnorm): New function. - (F__vnorm__): Delete. - - 2007-10-03 Michael Goffioul - - * DLD-FUNCTIONS/typecast.cc: Include . - - 2007-10-03 John W. Eaton - - * oct-map.cc (Octave_map::Octave_map (const dim_vector&, - const string_vector&)): Delete. - (Octave_map::Octave_map (const dim_vector&, const Cell&)): - New function. - * ov-struct.cc (Fstruct): Allow creation of empty struct arrays - with field names. - - 2007-10-01 Shai Ayal - - * graphics.cc ((color_property::color_property (const - octave_value& val)): Undo change from 2007-09-26 - (patch::properties::properties): use the "a" modifier to - face_color & edge_color properties - (patch::properties::set): Undo change from 2007-09-26 - * graphics.h.in (color_property::color_property - (const octave_value& val)): Undo change from 2007-09-26 - - 2007-10-01 Michael Goffioul - - * octave.cc (octave_main): Add "--line-editing" option to force - readline line editing. - - 2007-09-28 David Bateman - - * ov-range.h (int8_array_value, int16_array_value, int32_array_value, - int64_array_value, uint8_array_value, uint16_array_value, - int32_array_value, uint64_array_value): New methods - - 2007-09-28 Kai Habel - - * graphics.h.in (color_property::colormap_property (const Matrix&)): - Use floating point math in calculation of colormap. - - 2007-09-26 David Bateman - - * graphics.cc (color_values::str2rgb): accept upper, lower and - mixed-case versions of the string representing the color. Allow - black defined as "k" and white as "w". - (color_property::color_property (const octave_value& val, - const radio_values &v)): Modify the constructor to also take a - radio_values argument. Use it. - (patch::properties::set): Change set_facecolor calls to initialize - the color_property argument with the available radio_values. - * graphics.h.in (color_property::color_property - (const octave_value& val, const radio_values &v)): Also pass a - radio_values argument. - - * ov-range.h (sparse_matrix_value, sparse_complex_matrix_value): - New methods. - - * mk-pkg-add: Simplfy the autoload commands. - * parse.y (Fautoload): Allow bare filename if file is in the same - directory as the script from where the autoload command is run. - - 2007-09-25 Matthias Drochner - - * syscalls.cc (Fpopen2): Doc fix. - Use "sort -r" instead of "sort -nr" in test. - - 2007-09-18 John W. Eaton - - * input.cc (input_event_hook, Finput_event_hook): Call - command_editor::add_event_hook and - command_editor::remove_event_hook intstead of - command_editor::set_event_hook and - command_editor::restore_event_hook. - - 2007-09-17 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.14+. - - 2007-09-17 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.14. - (OCTAVE_API_VERSION): Now api-v26. - (OCTAVE_RELEASE_DATE): Now 2007-09-17. - - * Makefile.in (DISTFILES): Add genprops.awk to the list. - - * ov-typeinfo.h (cat_op_fcn): Third arg in function pointer - typedef is now Array instead of Array. - - * file-io.cc (do_stream_open): Use binary mode by default. - - 2007-09-14 Shai Ayal - - * genprop.awk: Handle "a" modifier. - - 2007-09-14 Kai Habel - - * graphics.h.in (radio_values::contains): New function. - (radio_values::validate): Use it. - * graphics.cc (color_property::operator =): Call it instead of - validate here. - - 2007-09-13 John W. Eaton - - * DLD-FUNCTIONS/__glpk__.cc (glpk): Pass LPX_FX, not LB_DB, to - lpx_set_col_bnds when lb[i] == ub[i]. - From: Zhi Wang . - - * graphics.h.in (colormap_property::colormap_property): - Use jet colormap as default. - - 2007-09-12 John W. Eaton - - * graphics.cc (text::properties::properties): Default color is - black, not white. - * graphics.h (text::properties::color): Declare as color_property, - not octave_value. - - * graphics.h.in (root_figure::defaults, figure::defaults, - axes::defaults, line::defaults, text::defaults, image::defaults, - patch::defaults, surface::defaults): New functions. - * gripes.cc (gripe_not_implemented): New function. - * gripes.h: Provide decl. - - 2007-09-10 John W. Eaton - - * genprops.awk: Add missing newline character at end of file. - From Alexander Klimov . - - 2007-09-10 David Bateman - - * data.cc (do_cat): Avoid invalid indexing into ra_idx vector. - - 2007-09-06 David Bateman - - * DLD-FUNCTIONS/__delaunay__.cc, DLD-FUNCRIONS/__voronoi__.cc, - DLD-FUNCTIONS/convhulln.cc: Avoid variables in global scope - - 2007-09-06 David Bateman - - * Makefile.in (stamp-prereq): Add graphics.h to the dependency list. - - 2007-08-31 John W. Eaton - - * Makefile.in (INCLUDES): Remove graphics.h from the list. - (DISTFILES): Include graphics.h.in in the list. - (genprops.awk): New file. - (graphics.h): New rule. - (distclean): Remove graphics.h. - * graphics.h.in: New file, from graphics.h. - (graphics_handle): Now a class instead of typedef. Adapt all uses. - (OCTAVE_GRAPHICS_PROPERTY_INTERNAL, OCTAVE_GRAPHICS_PROPERTY, - OCTAVE_GRAPHICS_MUTABLE_PROPERTY): Delete macros. - (class root_figure, class figure, class axes, class line, class - text, class image, class patch, class surface): Use genprops.awk - to generate property declarations and set/get functions. - * graphics.h: Delete. - * graphics.cc (nan_to_empty, empty_to_nan): Delete. - (root_figure::properties::set, figure::properties::set, - axes::properties::set, line::properties::set, - text::properties::set, image::properties::set, - patch::properties::set, surface::properties::set): Call - type-specific set functions to set properties. - (root_figure::properties::set_currentfigure, - figure::properties::set_currentaxes, figure::properties::set_visible, - axes::properties::get_title, axes::properties::get_xlabel, - axes::properties::get_ylabel, axes::properties::get_zlabel, - axes::properties::set_title, axes::properties::set_xlabel, - axes::properties::set_ylabel, axes::properties::set_zlabel): - Define custom versions. - - 2007-09-06 David Bateman - - * DLD-FUNCTIONS/bsxfun.cc: New function. - * DLD-FUNCTIONS/typecast.cc: New function. - * Makefile.in (DLD_XSRC): Add bsxfun.cc and typecast.cc. - * ov.cc (do_cat_op): Modify use of Array to - Array and adjust where necessary. - * ov.h (do_cat_op): ditto. - * data.cc (do_cat): ditto. - * pt-mat.cc (tree_matrix::rvalue): ditto. - - 2007-09-05 Michael Goffioul - - * oct-stream.cc (octave_base_stream::do_printf): Ignore precision - portion of format string if printing Inf, NaN, or NA values. - - 2007-09-05 David Bateman - - * DLD-FUNCTIONS/sort.cc (mx_sort_sparse, mx_sort_sparse_indexed): - New template classes for sparse sort functions. - (Fsort): Use them. - * ov.h (octave_value (const Sparse&, const MatrixType&), - octave_value (const Sparse&, const MatrixType&)): New - constructors. - * ov.cc (octave_value::octave_value (const Sparse&, - const MatrixType&), octave_value::octave_value (const - Sparse&, const MatrixType&)): Define them. - * ov-re-sparse.h (octave_sparse_matrix (const MSparse&, - const MatrixType&), octave_sparse_matrix (const Sparse&), - octave_sparse_matrix (const Sparse&, const MatrixType&)): - New constructors. - * ov-cx-sparse.h (octave_sparse_complex_matrix (const MSparse&, - const MatrixType&), octave_sparse_complex_matrix (const - Sparse&), octave_sparse_complex_matrix (const - Sparse&, const MatrixType&)): ditto. - - 2007-09-04 Gabriele Pannocchia - - * DLD-FUNCTIONS/__qp__.cc (qp): Use Wact(j) == i - n_eq when - checking for blocking constraint. Don't resize lambda_tmp. Only - compute Y = Aact.pseudo_inverse () if it is needed. - - 2007-08-31 Michael Goffioul - - * ls-mat-ascii.cc (get_lines_and_columns): Check beg variable for - NPOS to avoid segmentation fault. - - * load-path.cc (load_path::do_find_file): Do not assume paths - use forward slashes. - - 2007-08-30 John W. Eaton - - * sysdep.cc (Fpause): Doc fix. - - 2007-08-30 Gabriele Pannocchia - - * DLD-FUNCTIONS/__qp__.cc (qp): Resize Wact to n_act-neq, not n_act. - - 2007-08-29 John W. Eaton - - * graphics.cc (class root_figure::properties): - Rename from root_figure::root_figure_properties. - (class figure::properties): Rename from figure::figure_properties. - (class axes::properties): Rename from axes::axes_properties. - (class line::properties): Rename from line::line_properties. - (class text::properties): Rename from text::text_properties. - (class image::properties): Rename from image::image_properties. - (class patch::properties): Rename from patch::patch_properties. - (class surface::properties): Rename from surface::surface_properties. - - * base-list.h (octave_base_list::remove): Implement our own - remove_if function here. - - 2007-08-28 John W. Eaton - - * graphics.h (base_properties): Move class definition before - definition of base_graphics_object class. Provide forward - declaration of base_graphics_object prior to definition of - base_properties. - (base_graphics_object::get_properties): New virtual function. - (graphics_object::get_properties, root_figure::get_properties, - figure::get_properties, axes::get_properties, - line::get_properties, text::get_properties, image::get_properties, - patch::get_properties, surface::get_properties): New functions. - (root_figure::properties, figure::properties, axes::properties, - line::properties, text::properties, image::properties, - patch::properties, surface::properties): Data member now private. - - 2007-08-27 John W. Eaton - - * load-path.cc (load_path::do_find_file): Also files with non - rooted relative names. - * load-save.cc (find_file_to_load): Likewise. Also handle - appending .mat to files with relative names. - - * graphics.cc (base_properties::mark_modified, - base_properties::override_defaults, - base_properties::delete_children, figure::get_default, - axes::get_default): Move definitions here, from graphics.h. - * graphics.h (class gh_manager): Move decl to end of file. - - * Cell.h (Cell::Cell (const octave_value_list&)): Create row - vector instead of column vector. - - * pt-idx.cc (tree_index_expression::lvalue): Handle [x.a] = - ... style assignments. - * ov-struct.cc (octave_struct::subsasgn): Handle case of RHS as - comma-separated list. - - * ov-cell.cc (gripe_failed_assignment): New function. - (octave_cell::subsasgn): Call gripe_failed_assignment if assign - methods fail. - - 2007-08-24 David Bateman - - * symtab.cc (void symbol_table::clear (void)): If the record in - the symbol table to clear is a user function that is a sub - function with a static parent or if the parent is the current - parent function, don't delete the record. - (void symbol_table::clear_functions (void)): ditto. - (void symbol_table::clear (const std::string&)): ditto. - (void symbol_table::clear_function (const std::string&)): ditto. - - * graphics.h (class text): Add property color. - * graphics.cc (text::text_properties::text_properties) ditto. - (text::text_properties::set): ditto. - (text::text_properties::get): ditto. - (text::text_properties::factory_defaults): ditto. - - 2007-08-24 John W. Eaton - - * mappers.cc (dummyp): New function. - (install_mapper_functions): Use it to handle character data in - finite, isinf, isna, and isnan functions. - - * load-path.cc (load_path::do_remove): Call remove_hook function - before removing directory from list. - - 2007-08-24 David Bateman - - * ov-bool-sparse.cc (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Class - is now logical. - * ov-re-sparse.cc, ov-cx-sparse.cc - (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Class is now double. - * ov-mapper.cc (octave_mapper::apply): Use is_sparse_type method - rather than comparing class name. - * ls-mat5.cc (save_mat5_element_length, save_mat5_binary_element): - ditto. - * pt-mat.cc (tree_matrix:rvalue): sparse matrices are now of class - "double" or "logical", create new single type concat clause for - them. - * mex.cc (get_class_id): No longer need to special case sparse - matrices. - - * DLD-FUNCTIONS/__delaunayn__.cc, DLD-FUNCTIONS/convhulln.cc, - DLD-FUNCTIONS/tsearch.cc, DLD-FUNCTIONS/__voronoi__.cc: New - functions ported from octave-forge. - * DLD-FUCTIONS/__dsearchn__.cc: New file. - * DLD-FUNCTIONS/__voronoi__.cc: Return point at infinity and - include it in the polygrons of the Voronoi diagram for - compatibility. - * Makefile.in: Add specific build targets for __delanayn__.cc, - convhulln.cc and __voronoi__.cc to link to Qhull. - (DLD_SRC): Add new functions. - (OCTAVE_LIBS): Add QHULL_LIBS - - 2007-08-22 David Bateman - - * variables.cc (Fmunlock): Call munlock and not mlock. - * symtab.cc (symbol_record::mark_as_formal_parameter): Typo. - - 2007-08-10 John W. Eaton - - * pt-idx.cc (tree_index_expression::get_struct_index): Improve - error message. - * ov-struct.cc (Fstruct, Fcell2struct): Trap invalid field names here. - - 2007-08-10 Peter A. Gustafson - - * graphics.h, graphics.cc (axes::axes_properties): New properties, - xaxislocation and yaxislocation. - - 2007-08-10 Kai Habel - - * graphics.cc, graphics.h (patch): New class. - (axes::axes_properties): New properties, clim and climmode. - (surface::surface_properties::surface_properties): Handle patch. - (F__go_patch__): New function. - - 2007-07-30 John W. Eaton - - * mex.cc (mxArray_number::mxArray_number (int, const char **)): - First arg is now mwSize. - (max_str_len): Return mwSize value, not int. - * mxarray.h.in (mxArray::mxArray (int, const char **)): - First arg is now mwSize. - (mxArray::mxArray (mxClassID, mwSize, mwSize, int, mxComplexity)): - Third arg is now mwSize. - (mxArray::get_string (char *, int)): Second arg is now mwSize. - - 2007-07-26 John W. Eaton - - * DLD-FUNCTIONS/__glpk__.cc: Include glpk/glpk.h if - HAVE_GLPK_GLPK_H is defined. - - 2007-07-26 David Bateman - - * pr-output.cc (Frats): Return character array with same number of - rows as original value. - - 2007-07-26 John W. Eaton - - * pt-bp.h (MAYBE_DO_BREAKPOINT): Rename cur_fcn to xfcn. - - * version.h (OCTAVE_VERSION): Now 2.9.13+. - - 2007-07-25 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.13 - (OCTAVE_API_VERSION): Now api-v25. - (OCTAVE_RELEASE_DATE): Now 2007-07-25. - - * pt-bp.h (MAYBE_DO_BREAKPOINT): Rename fcn to curr_fcn. - - 2007-07-25 David Bateman - - * Makefile.in: Adjust DISTFILES to allow out of tree "make dist" - to work. - - 2007-07-24 Shai Ayal - - * graphics.cc (color_property::operator = (const octave_value&)): - New method. - * graphics.h: Provide decl. - - 2007-07-24 Rafael Laboissiere - - * oct-conf.h.in (OCTAVE_CONF_RUNTEST): Delete definition. - * toplevel.cc (Foctave_config_info): Remove RUNTEST from struct. - - 2007-07-23 David Bateman - - * pr-output.cc (rat_format, rat_string_len): Global variable - controlling behavior of rational approximation. Use throughout. - (class pr_rational_float): New class for rational approximation of - floats, specifically with the << operator defined. - (std::ostream& operator << (std::ostream&, const - pr_rational_float&)): Operator to print rational approximations of - double values. - (std::string rational_approx (double, int)): Function to convert a - double value to a string of maximum length giving the rational - approximation. - (pr_any_float): Include the output of rational approximations. - (Fformat): Add the "rat" format as an option. - (Frats): New function. - - 2007-07-23 Aquil H. Abdullah - - * mex.cc (mxCreateStructArray): Declare second arg as const. - * mexproto.h (mxCreateStructArray): Ditto. - - 2007-07-20 David Bateman - - * zfstream.cc (BUFSIZE): Increase default buffer size to 256kB - (gzfilebuf::underflow): Stash the last 16 characters read, so as - to avoid calling pbackfail as much as possible. - - 2007-07-18 David Bateman - - * zfstream.cc (int_type gzfilebuf::pbackfail (int_type)): New - method to putback a character when the putback position in the - internal buffer doesn't exist. - * zfstream.h (int_type pbackfail (int_type)): Declaration it. - - 2007-07-14 Michael Goffioul - - * ov-bool-sparse.cc (octave_sparse_bool_matrix:load_hdf5): - Use OCTAVE_LOCAL_BUFFER for temporary boolean value. - - 2007-06-27 David Bateman - - * DLD-FUNCTIONS/sparse.cc (Fspdiag): Ensure spdiag(zeros(1,0)) returns - 0x0 matrix. Doc update. - * data.cc (Fdiag): Doc update. - - 2007-06-28 John W. Eaton - - * ov-cell.cc (octave_cell::subsasgn): Given x = {}, convert to - struct for assignments like x(1).f = val; - - * oct-stream.cc (octave_scan_1): New function - (octave_scan): Use it. Handle fmt.width. - - * graphics.h (axes::axes_properties::visible): New data member. - * graphics.cc (axes::axes_properties::axes_properties, - axes::axes_properties::set, axes::axes_properties::get, - axes::axes_properties::factory_defaults): Handle visible property. - - 2007-06-27 Kai Habel - - * graphics.h (color_values::color_values): Arg is now std:string - instead of char. Call str2rgb, not c2rgb. - * graphics.h, graphics.cc: (color_values::str2rgb): Rename from - c2rgb. Handle long color names, not just single char abbreviations. - - 2007-06-27 David Bateman - - * load-save.cc (Fsave): Ensure header is written for non - existent file with "-append". - * ls-hdf5.h: First steps towards having append work for hdf5. - - 2007-06-26 John W. Eaton - - * load-save.cc (Fsave): Open files correctly for -append. - Don't write file headers if appending. Error for -append -hdf5. - - 2007-06-25 Olaf Till - - * oct-stream.h (octave_stream_list::list): Use std::map. - (octave_stream_list::curr_len): Delete data member. - (octave_stream_list::octave_stream_list): Fix initializations. - - * oct-stream.cc (octave_steam_list::do_insert, - octave_steam_list::do_lookup, octave_steam_list::do_remove, - octave_steam_list::do_clear, octave_steam_list::do_list_open_files, - octave_steam_list::do_open_file_numbers, - octave_steam_list::do_get_file_number): - Use new octave_stream_list::list type. - (octave_stream_list::do_insert): Insert octave_stream with key - corresponding to file-descriptor. - (octave_stream_list::do_insert, octave_steam_list::insert): - Remove const qualifier of argument. - - 2007-06-18 Sᅵren Hauberg - - * DLD-FUNCTIONS/__lin_interpn__.cc: Replace octave_NaN with octave_NA. - - 2007-06-15 Shai Ayal - - * graphics.h (OCTAVE_GRAPHICS_PROPERTY_INTERNAL, - OCTAVE_GRAPHICS_PROPERTY, OCTAVE_GRAPHICS_MUTABLE_PROPERTY): - New macros. Use them to declare individual properties and define - accessor methods for each property in the property classes. - - 2007-06-15 Kai Habel - - * graphics.cc (Fget, Fset): Handle vectors of handles. - - 2007-06-14 John W. Eaton - - * sysdep.cc (octave_popen, octave_pclose): New functions. - * sysdep.h: Provide decls. - - * oct-procbuf.cc (procbuf::open): Use octave_popen. - (procbuf::close): Use octave_pclose. - * oct-prcstrm.cc (octave_oprocstream::octave_oprocstream, - octave_iprocstream::ictave_oprocstream): Likewise. - - * graphics.h (text::text_properties::rotation): New data member. - * graphics.cc (text::text_properties::text_properties, - text::text_properties::set, text::text_properties::get, - text::text_properties::factory_defaults): Handle rotation property. - - 2007-06-14 Kai Habel - - * graphics.cc (color_values::c2rgb): Also accept 'k' for black. - - 2007-06-14 David Bateman - - * ov-ch-mat.h (idx_vector index_vector (void) const): Remove - definition. - * ov-ch-mat.cc (idx_vector index_vector (void) const): Move it - here. Special case ":" case for compatibility. - - 2007-06-13 John W. Eaton - - * ov-re-mat.cc (octave_matrix::load_ascii): - Do a better job of handling read errors and empty matrices. - * ov-cx-mat.cc (octave_complex_matrix::load_ascii): Likewise. - * ov-bool-mat.cc (octave_bool_matrix::load_ascii): Likewise. - * ov-str-mat.cc (octave_char_matrix_str::load_ascii): Likewise. - - 2007-06-13 David Bateman - - * DLD-FUNCTIONS/minmax.cc (MINMAX_BODY): Don't treat as single - argument if arg2 is empty and nargin=2. - - 2007-06-13 Shai Ayal - - * graphics.h, graphics.cc: Move class declarations to graphics.h. - Move larger functions outside of class declarations in graphics.cc. - - 2007-06-12 Benjamin Lindner - - * DLD-FUNCTIONS/cellfun.cc: Use fullfile to generate filenames - instead of assuming / will work as directory separator. - - 2007-06-12 David Bateman - - * DLD-FUNCTIONS/interpn.cc: Remove it. - * DLD-FUNCTIONS/__lin_interpn__.cc: Move it. This is now a support - function of interpn.m. - * Makefile.in (DLD_XSRC): Remove interpn.cc and add __lin_interpn__.cc. - - 2007-06-07 David Bateman - - * ov-fcn-handles.cc (octave_fcn_handle::save_hdf5): More care that - all open HDF5 descriptors are closed. - (octave_fcn_handle::load_hdf5): Ditto. - - 2007-06-06 Benjamin Lindner - - * utils.cc [__MINGW32__]: Don't define HAVE_C99_VSNPRINTF. - - 2007-06-06 Michael Goffioul - - * defaults.h.in, ls-hdf5.h, ov-complex.h, ov-cx-mat.h, ov-intx.h, - sysdep.h: Sprinkle with OCTINTERP_API as needed. - - 2007-06-05 John W. Eaton - - * help.h (raw_help): Tag with OCTINTERP_API. - - * Makefile.in (INCLUDES): Remove mxarray.h from the list so that - it is not distributed. - (EXTRAS): Add mxarray.h to the list so that it is installed. - - * sysdep.cc (same_file_internal) [OCTAVE_USE_WINDOWS_API]: - Avoid leaking file handles. - - 2007-05-08 Michael Weitzel - - * DLD-FUNCTIONS/symrcm.cc: Fix for queuing error that might cause - an infinite loop. - - 2007-06-04 John W. Eaton - - * data.cc (Fislogical): Rename from Fisbool. - Make isbool an alias for islogical. - - 2007-06-03 David Bateman - - * Makefile.in (DISTFILES): Add mxarray.h.in - (install-inc): Modify target so that mxarray.h is installed - correctly. - (distclean): Remove mxarray.h on distclean. - * mex.cc: Use mwSize for dimensions and mwIndex for indexing - throughout, with the exception of struct key indexes. - * mexproto.h: ditto. - * mxarray.h: remove. - * mxarray.h.in: Copy here and define mwSize, mwIndex, and use - throughout. - * ov-bool-mat.cc (octave_bool_matrix::as_mxArray): Use mwSize and - mwIndex. - * ov-bool-sparse (octave_sparse_bool_matrix::as_mxArray): ditto. - * ov-cell.cc (octave_cell:as_mxArray): ditto. - * ov-ch-mat.cc (octave_char_matrix:as_mxArray): ditto. - * ov-cx-mat.cc (octave_complex_matrix::as_mxArray): ditto. - * ov-cx-sparse.cc (octave_sparse_complex_matrix::as_mxArray): ditto. - * ov-int.h (as_mxArray): ditto. - * ov-range.cc (octave_range:as_mxArray): ditto. - * ov-re-mat.cc (octave_matrix:as_mxArray): ditto. - * ov-re-sparse.cc (octave_sparse_matrix::as_mxArray): ditto. - * ov-struct.cc (octave_struct::as_mxArray): ditto. - - 2007-06-02 David Bateman - - * graphics.cc (color_property class): g++ doesn't like anonymous - enums. Give type to color_type enum. - - 2007-05-31 Shai Ayal - - * graphics.cc (radio_values, radio_property, color_values): - New classes. - (color_property class): Handle both color and radio values. - - 2007-05-31 John W. Eaton - - * toplev.cc (main_loop): Improve bad_alloc error message. - - * octave.cc (execute_command_line_file, execute_eval_option_code): - Likewise. - - 2007-05-31 Michael Goffioul - - * toplev.cc (octave_atexit_functions): - Now std::list instead of std::stack. - (do_octave_atexit): Adapte to octave_atexit_functions as list. - (Fatexit): Allow second arg of false to remove element from list. - - * DLD-FUNCTIONS/symrcm.cc: Use ! instead of "not". - - * sysdep.cc (same_file_internal) [OCTAVE_USE_WINDOWS_API]: - Use INVALID_HANDLE_VALUE, not INVALID_FILE_HANDLE. - - 2007-05-28 G. D. McBain - - * ov-list.cc (append): Doc fix. - - 2007-05-28 John W. Eaton - - * pt-loop.cc (DO_ND_LOOP): Avoid parser problem with obsolete g++. - - 2007-05-23 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.12+. - - 2007-05-23 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.12. - (OCTAVE_RELEASE_DATE): Now 2007-05-23. - - * parse.y (make_anon_fcn_handle): Don't build assignment expression. - * ov-fcn-handle.cc (octave_fcn_handle::print_raw): - Don't split assignment expression. - * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): - Special case for inline function body evaluation. - - 2007-05-22 John W. Eaton - - * pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue): - Set current function as parent of anonymous function handle. - - * Makefile.in (uninstall): Also remove - $(DESTDIR)$(octincludedir)/octave, $(DESTDIR)$(octincludedir), - $(DESTDIR)$(octlibdir), and $(DESTDIR)$(octfiledir). - - 2007-05-22 Thomas Weber - - * debug.cc, error.cc, load-save.cc, oct-hist.cc, sighandlers.cc, - symtab.cc: Fix typos. - - 2007-05-22 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.11+. - - 2007-05-22 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.11. - (OCTAVE_API_VERSION): Now api-v24. - (OCTAVE_RELEASE_DATE): Now 2007-05-22. - - 2007-05-21 David Bateman - - * debug.cc (Fdbstop): handle integer, vector and multiple line - arguments. - (Fdbclar): ditto. Eliminate extraneous debugging messages. - - 2007-05-21 Sᅵren Hauberg - - * load-path.cc (Fpath, Frehash): Replace "LOADPATH" with "load - path" in doc strings. - - * parse.y (Feval): Add example. - - 2007-05-21 David Bateman - - * error.cc (rethrow_error): Use NULL name so that "error:" is not - added to the message - (Frethrow): Correctly treat empty stack. - - 2007-05-21 John W. Eaton - - * oct-map.h (Octave_map::numel): Return number of array elements, - not number of map elements. - (Octave_map::nfields): Rename from length. - (Octave_map::empty): Delete. - Change all uses of empty to check nfields () == 0 instead. - - 2007-05-21 Sᅵren Hauberg - - * help.cc (Fautoload): Doc fix. - * variables.cc (Fiscommand): Doc fix. - - 2007-05-19 David Bateman - - * ov-fcn-inline.cc (Fvectorize): Doc fix. - - 2007-05-16 Sᅵren Hauberg - - * ov.cc (Fsubsref, Fsubsasgn): Doc fix. - - 2007-05-16 John W. Eaton - - * load-path.h (load_path::sys_path): New static data member. - (load_path::system_path): New static function. - (load_path::do_system_path): New function. - * load-path.cc (Vsystem_path): Delete. - (load_path::do_initialize): Use sys_path, not Vsystem_path. - (Fpathdef): Call load_path::system_path instead of using Vsystem_path. - * ls-mat5.cc (read_mat5_binary_element): Likewise. - * ov-fcn-handle.cc (octave_fcn_handle::set_fcn): Likewise. - - 2007-05-16 David Bateman - - * load_pathc.cc (std::string octave_system_path (void)): New - function. - * load-path.h (std::string octave_system_path (void)): Declare it. - - * load-save.cc (static load_save_format get_file_format - (std::istream&, const std::string&)): Add filename argument, and - pass it to read_mat5_binary_header. Use new format throughout file. - (Fload): Don't allow gzip of matlab v7 files as the files - themselves include compression. - - * ls-mat5.cc (arrayclsstype:MAT_FILE_WORKSPACE_CLASS): New class - type. - (read_mat5_binary_element): Workspaces, don't have dimensions, so - don't read them. Implement read of matlab objects, but only use - them for inline functions. Implement reading of function and - workspace classes. - (read_mat5_binary_header): Add filename argument. Read sub-system - specific data block given as an offset in bytes 117 to 124. - (save_mat5_binary_element): Include saving of inline functions. - - * ls-mat5.h (read_mat5_binary_header): Include filename. - - * ov-fcn-handle.cc (octave_fcn_handle_save_ascii, - octave_fcn_handle::load_ascii, octave_fcn_handle::save_binary, - octave_fcn_handle::load_binary, octave_fcn_handle::save_hdf5, - octave_fcn_handle::load_hdf5): Save and reload the local symbol - table of the user function associated with anonymous function - handles. Save and load the absolute path and the exec_prefix for - normal function handles and use then to find equivalent functions - between different installations of Octave. Attempt to maintain - backward and forward compatibility. - (Ffunctions): Additional outputs, including the workspace of - anonymous functions, and more compatiable outputs. - - * ov-fcn-handle.h (user_function_value): Expose the user function - value of a function handle. - - * ov-fcn-inline.cc (Octave_map octave_fcn_inline::map_value - (void) const): Return a structure compatiable with matlab's class - implementation of inline functions. - - * ov-fcn-inline.h (map_value): Declare it. - - 2007-05-14 Bob Weigel - - * DLD-FUNCTIONS/svd.cc: Doc fix. - - 2007-05-14 Thomas Weber - - * DLD-FUNCTIONS/fft.cc (do_fft): Handle empty matrices. New tests. - - 2007-05-14 Sᅵren Hauberg - - * toplev.cc (Fatexit): Simplify example in doc string. - * help.cc (Flookfor): Doc fix. - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): - Reformat to avoid long lines in doc string example. - - 2007-05-13 Sᅵren Hauberg - - * toplev.cc (Fquit): Doc fix. - * help.cc (Fhelp): Doc fix. - * oct-hist.cc (Fsaving_history): Doc fix. - - 2007-05-11 John W. Eaton - - * variables.cc (symbol_out_of_date): - Always check for files that have gone missing. - - 2007-05-08 Michael Weitzel - - * DLD-FUNCTIONS/symrcm.cc: New function for Reverse Cuthill-McKee - permutation. - - 2007-05-07 John W. Eaton - - * oct-map.cc (Octave_map::resize): Handle case of no keys. - (keys_ok): Rename from equiv_keys. Return value is now status. - Pass key names as string_vector reference arg. - (Octave_map::assign (const octave_value_list&, const Octave_map&)): - Call keys_ok, not equiv_keys. Handle case of no keys. - - 2007-04-30 John W. Eaton - - * Makefile.in (%.df : %.cc): Use mv instead of - $(simple-move-if-change-rule). - - 2007-04-30 David Bateman - - * pt-loop.cc (DO_ND_LOOP): New args, CONV and ARG. - Use octave_idx_type instead of int for loop counters. - Remove redundant assignments to variable "quit" as it is - always defined in quit_loop_now. - Special case rows = 0 and 1 cases in loops over arrays. - Include some of the code that was separate from the macro - DO_ND_LOOP in the macro itself - (tree_simple_for_command::eval): USE DO_ND_LOOP for all loops. - (DO_LOOP): Delete. - - 2007-04-30 John W. Eaton - - * mex.cc (mex::cleanup): Don't call unmark for elements of the set - inside the loop. From Laurent Mazet . - - 2007-04-30 David Bateman - - * OPERATORS/op-int-conv.cc: Define sq and dq string conversion - operators. Delete old char_matrix_str conversions. - * OPERATORS/op-int-conv.cc (install_int_conv_ops): Install them. - - 2007-04-27 Benjamin Lindner . - - * octave.cc (execute_startup_files): Call same_file to check for - already executed init files. - - 2007-04-27 John W. Eaton - - * sysdep.cc (same_file_internal): New function. POSIX code - from same_file in utils.cc. Windows code from - Benjamin Lindner . - Don't canonicalize file names. - Also return false if stat calls fail. - * sysdep.h: Provide decl. - * utils.cc (same_file): Use same_file_internal. - - 2007-04-27 David Bateman - - * graphic.cc (get_property_form_handle, set_property_in_handle): - New functions. - * grahics.h: New file. - * mex.cc (mexGet, mexSet): use the above to implement mexGet - and mexSet. - * Makefile.in (INCLUDES): Add graphics.h - - 2007-04-26 John W. Eaton - - * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): - Only deal with varargout if ret_list->takes_varargs () is true. - - 2007-04-26 Sᅵren Hauberg - - * DLD-FUNCTIONS/urlwrite.cc: Doc fix. - - 2007-04-26 David Bateman - - * pt-loop.cc (tree_simple_for_command::eval (void)): Correct - reshaping of dim_vector in for loop for multi-dimensional array. - - 2007-04-26 John W. Eaton - - * load-save.cc (find_file_to_load): Only consider regular files. - - 2007-04-24 Shai Ayal - - * graphics.cc (color_property): Eliminate alpha channel from RGB - color spec. - - 2007-04-23 Shai Ayal - - * graphics.cc (color_property::color_property): - New arg A for alpha channel. Set rgba instead of red, green, blue. - (color_property::color_property (char)): New constructor. - (color_propery::rgba): New data member. - (color_property::red, color_property::green, color_property::blue): - Delete. - (color_property::validate): Use rgba. - (color_property::c2rgba): New function. - - 2007-04-23 Sᅵren Hauberg - - * data.cc (Fsize_equal): Allow more than two arguments. - - 2007-04-20 John W. Eaton - - * DLD-FUNCTIONS/__gnuplot_raw__.l (deftypefn): - (Vautomatic_replot): Delete static variable. - (Fautomatic_replot): Delete function. - - * toplev.cc (Fcasesen): Delete obsolete function. - - * DLD-FUNCTIONS/__gnuplot_raw__.l (gnuplot::makeplot): Check - whether caller is "splot", not "gsplot". - - 2007-04-19 John W. Eaton - - * lex.l (is_keyword_token): Delete all_va_args_kw switch case. - * octave.gperf: Remove all_va_args_kw from the list. - - 2007-04-19 Daniel J. Sebald - - * syscalls.cc: Fix popen2 test to stop trying after 100 times - throught the loop. - - 2007-04-16 Geordie McBain - - * ov-fcn-inline.cc (Fargnames): Doc fix. - - 2007-04-13 Geordie McBain - - * DLD-FUNCTIONS/find.cc (Ffind): Doc fix. - - 2007-04-11 John W. Eaton - - * Makefile.in (DOCSTRINGS): Don't echo commands. - (doc-files): Use mv, not $(simple-move-if-change-rule). - - * data.cc (Fnot, Fuplus, Fuminus, Ftranspose, Fctranspose, Fplus, - Fminus, Fmtimes, Fmrdivide, Fmpower, Fmldivide, Flt, Fle, Feq, - Fge, Fgt, Fne, Ftimes, Frdivide, Fpower, Fldivide, Fand, For): - New functions. - - 2007-04-09 John W. Eaton - - * graphics.cc (line::line_properties::markeredgecolor, - line::line_properties::markerfacecolor): New properties. - - 2007-04-06 John W. Eaton - - * data.cc (F__vnorm__): New function. - - * pt-fcn-handle.cc (tree_anon_fcn_handle::param_list, - tree_anon_fcn_handle::cmd_list, tree_anon_fcn_handle::ret_list, - tree_anon_fcn_handle::sym_tab): Delete. Remove all uses. - (tree_anon_fcn_handle::fcn): New data member. - (tree_anon_fcn_handle::tree_anon_fcn_handle): Initialize it. - (tree_anon_fcn_handle::rvalue, tree_anon_fcn_handle::dup): - Extract parameter list, return list, function body, and symbol - table from fcn. - (tree_anon_fcn_handle::parameter_list, tree_anon_fcn_handle::body): - Forward request to fcn. - - * ov-usr-fcn.h (octave_user_function::local_sym_tab): Rename from - sym_tab. Change all uses. - (octave_user_function::sym_tab): New function. - - * octave.cc (execute_command_line_file): - - 2007-04-05 David Bateman - - * DLD-FUNCTIONS/regexp.cc (Fregexprep): Correct iteration over - cell arrays so that the source and pattern are iterated seperately - in the same manner as matlab. - - 2007-04-05 Laurent Mazet - - * mex.cc (mxArray_octave_value::get_string): Copy nel elements, - not buflen elements. - - 2007-04-05 John W. Eaton - - * oct-stream.cc (DO_DOUBLE_CONV): New macro. - (do_printf): Use it. - - 2007-04-04 John W. Eaton - - * input.cc (octave_yes_or_no): Force interactive_input to use readline. - - * octave.cc (execute_eval_option_code): Catch bad::alloc here. - - 2007-04-03 John W. Eaton - - * DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread): - Use && for logical, not &. - - * DLD-FUNCTIONS/qr.cc (Fqr): Clarify nargin check. - - * error.cc (Frethrow): Add braces to avoid ambiguous if/else. - * oct-stream.cc (octave_scan<>): Likewise. - * DLD-FUNCTIONS/colamd.cc (Fetree): Likewise. - * DLD-FUNCTIONS/sort.cc (mx_sort, mx_sort_indexed): Likewise. - - * ov-fcn-handle.cc (make_fcn_handle): Pass ultimate parent - function name to lookup_function. - - 2007-03-29 John W. Eaton - - * DLD-FUNCTIONS/filter.cc (filter): Fix typo in doc string. - From Utkarsh Upadhyay . - - 2007-03-28 Rafael Laboissiere - - * DLD-FUNCTIONS/__glpk__.cc: Fix #ifdef logic around GLPK_PRE_4_14. - - 2007-03-27 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.10+ - - 2007-03-27 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.10. - (OCTAVE_API_VERSION): Now api-v23. - (OCTAVE_RELEASE_DATE): Now 2007-03-27. - - * version.h (OCTAVE_COPYRIGHT): Update for 2007. Add "and others". - (X_OCTAVE_WARRANTY_STATEMENT): Rename from OCTAVE_WARRANTY_STATEMENT. - Accept arg. - (OCTAVE_WARRANTY_STATEMENT): Define using X_OCTAVE_WARRANTY_STATEMENT. - (OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY): Define using - X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY. - (X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY): Rename - from OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY. - Accept arg and pass to X_OCTAVE_WARRANTY_STATEMENT. - (OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY): Pass empty - arg to X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS. - (OCTAVE_STARTUP_MESSAGE): Put info about news last. - - 2007-03-27 John W. Eaton - - * Makefile.in (dist, conf-dist): Use ln, not $(LN_S). - - 2007-03-26 Juhani Saastamoinen - - * file-io.cc (do_stream_open) [! HAVE_ZLIB]: - Call fopen with mode, not tmode. - - 2007-03-26 John W. Eaton - - * OPERATORS/op-str-str.cc (DEFCHARNDBINOP): New macro. Use it to - define functions for eq and ne ops. Also define lt, le, ge, and - gt ops. - - 2007-03-23 David Bateman - - * DLD-FUNCTIONS/rand.cc: Make more statistical tests optional. - - 2007-03-23 John W. Eaton - - * bitfcns.cc (Fbitshift): Error if third argument is not a scalar. - - 2007-03-23 David Bateman - - * DLD-FUNCTIONS/rand.cc: Make statistical tests optional and - add tests for fixed sequences. - - 2007-03-22 John W. Eaton - - * graphics.cc (base_graphics_object::mark_modified): - New virtual function. - (base_properties::__modified__): New data member. - (base_properties::base_properties): Initialize it. - (graphics_object::mark_modified, base_properties::mark_modified, - root_figure::mark_modified, figure::mark_modified, - axes::mark_modified, line::mark_modified, text::mark_modified, - image::mark_modified, surface::mark_modified, - root_figure::root_figure_properties::mark_modified, - figure::figure_properties::mark_modified, - axes::axes_properties::mark_modified, - line::line_properties::mark_modified, - text::text_properties::mark_modified, - image::image_properties::mark_modified, - surface::surface_properties::mark_modified): New functions. - (figure::figure_properties::set, figure::figure_properties::get, - axes::axes_properties::set, axes::axes_properties::get, - line::line_properties::set, line::line_properties::get, - text::text_properties::set, text::text_properties::get, - image::image_properties::set, image::image_properties::get, - surface::surface_properties::set, surface::surface_properties::get): - Handle __modified__ property. - - * parse.y (Fautoload): Use warning_with_id. - - 2007-03-21 John W. Eaton - - * DLD-FUNCTIONS/__qp__.cc (ABS): Delete. Use std::abs instead. - (null): Set elements of retval with magnitudes less than eps to 0. - - * error.cc (Fwarning): Allow setting options with struct. - If setting options, return previous state. - - * graphics.cc (axes::axes_properties::set_defaults): Reverse sense - of mode test for setting outerposition property. - (figure::figure_properties::set): If setting visible property, - make this figure the current figure. - (gh_manager::figure_handle_list, gh_manager::do_figure_handle_list): - New functions. - (F__go_figure_handles__): New function. - - * sysdep.cc (Fpause): Also call drawnow if nargin == 0. - (Fkbhit, Fsleep, Fusleep): Also call drawnow here. - - 2007-03-20 David Bateman - - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Correct for shape of return - matrix for the case of UniformOutput being true. - - 2007-03-20 John W. Eaton - - * sysdep.cc (Fpause): Call drawnow. - - 2007-03-15 John W. Eaton - - * variables.cc (F__lock_global__): Delete. - - 2007-03-14 John W. Eaton - - * graphics.cc: New file. - * Makefile.in (DIST_SRC): Add it to the list. - - 2007-03-13 John W. Eaton - - * file-io.cc (do_stream_open): Use binary mode if 't' is not - specified in mode, but don't add 'b' if it is already present. - - 2007-03-09 David Bateman - - * data.cc (do_cat): Also treat case of all empty matrices. - - 2007-03-08 John W. Eaton - - * mex.cc (mxArray_octave_value::set_dimensions, - mxArray_octave_value::set_m, mxArray_octave_value::set_n, - mxArray_octave_value::set_class_name, - mxArray_octave_value::set_ir, mxArray_octave_value::set_jc, - mxArray_octave_value::remove_field, - mxArray_octave_value::set_field_by_number): - Don't panic; request mutation instead. - (class mxArray_octave_value): - - * mxarray.h (mxArray::set_m, mxArray::set_n, - mxArray::set_dimensions): Wrap method call call with - DO_VOID_MUTABLE_METHOD. - - 2007-03-08 David Bateman - - * data.cc (do_cat): Ignore leading empty matrices. - - 2007-03-07 Bob Weigel - - * urlwrite.cc (urlget): Allow URL redirects. - - 2007-03-05 David Bateman - - * DLD-FUNCTIONS/md5sum.cc (Fmd5sum): Treat both files and strings. - - 2007-03-05 John W. Eaton - - * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Check GLPK_PRE_4_14, not - GLPK_PRE_4_15. - - 2007-03-02 John W. Eaton - - * parse.y (Fautoload): Undo previous change. - Warn if FILE is not an absolute file name. - - * utils.cc (make_absolute): Make copy of arg before - - 2007-03-01 John W. Eaton - - * ov-base-mat.h (octave_base_matrix::octave_base_matrix (const MT&), - (octave_base_matrix::octave_base_matrix (const MT&, const MatrixType&)): - Use common definition with default argument value. - * ov-base-scalar.h (octave_base_scalar::typ): New data member. - Initialize in constructors. - (octave_base_scalar::matrix_type): New funtions. - - 2007-03-01 David Bateman - - * DLD-FUNCTIONS/md5sum.cc: New file. - * Makefile.in (DLD_XSRC): Add md5sum.cc - - 2007-03-01 Olli Saarela - - * input.cc (FPS1): Fix @seealso. - - 2007-03-01 David Bateman - - * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Special case scalar - types and always return "Full" matrix type. - - 2007-02-28 John W. Eaton - - * input.cc (interactive_input): Also call flush_octave_stdout - after calling drawnow. - - 2007-02-27 John W. Eaton - - * Makefile.in (uninstall): Also remove octave-$(version)$(EXEEXT), - oct-gperf.h, and all .oct files. Remove PKG_ADD. - From Thomas Treichl . - - * load-path.h, (load_path::initialize, load_path::do_initialize): - New arg, set_initial_path. - * load-path.cc (load_path::do_initialize): Don't add system - directories to apth if set_initial_path is false. - * octave.cc (set_initial_path): New static variable. - (NO_INITIAL_PATH_OPTION): New define. - (usage_string): Include --no-initial-path in message. - (long_opts): Include no-initial-path/NO_INITIAL_PATH_OPTION here. - (octave_main): Handle NO_INITIAL_PATH_OPTION. - Pass set_initial_path to load_path::initialize. - - * parse.y (Fautoload): Warn about duplicate entries. Only insert - the first found. - - 2007-02-27 David Bateman - - * error.cc (Vlast_error_file, Vlast_erro_name, Vlast_error_row, - Vlast_error_column): New static variables. - (verror): Use them to store the location of last error. - (rethrow_error, Frethrow, Flasterror): New functions. - - * DLD-FUNCTIONS/regexp.cc (octcellregexp): Wrapper to octregexp - function for cases when string or pattern are cell arrays - (Fregexp, Fregexpi): Use them. - (octregexprep): New function with functionality of old Fregexprep. - (Fregexprep): Treat cell arguments. - - 2007-02-26 Michael Goffioul - - * Makefile.in: Use $(LN_S) instead of ln or ln -s. - - * DLD-FUNCTIONS/getrusage.cc: Undef min after including windows.h. - - 2007-02-25 John W. Eaton - - * DLD-FUNCTIONS/interpn.cc: Include dNDArray.h, not dMatrix.cc. - - * error.h: Include cstdarg. - From Juhani Saastamoinen . - - 2007-02-23 John W. Eaton - - * variables.cc (lookup_function): Don't dereference NULL - curr_parent_fucntion pointer. - * ov-fcn-handle.cc (make_fcn_handle): Call lookup_function with - parent set to empty string if call_stack is empty. - - * DLD-FUNCTIONS/dispatch.cc (Fbuiltin): Also adjust argument list - in calls to functions that are not overloaded. Call - lookup_by_name to find function instead of searching fbi_symtab - directly. - - * help.cc (do_which): Return empty string if file not found. - - 2007-02-22 John W. Eaton - - * mex.cc (mxArray_cell::mxArray_cell (const mxArray_cell&), - mxArray_struct::mxArray_struct (const mxArray_struct&)): - Avoid calling clone on 0 elements. - - * variables.cc (symbol_out_of_date): If checking nested function, - look for file using parent function name. Delete unused - variable NAMES. - - * oct-stream.cc (octave_stream::do_gets): If no limit or not - at limit, read ahead one character at end of line for compatibility. - (octave_stream::gets, octave_stream::getl): Set max_len to -1 if - tc_max_len is not defined. - * file-io.cc (Ffgets, Ffgetl): If no limit specified, pass - undefined octave_value object as max_len in call to - octave_stream::gets. - - 2007-02-21 John W. Eaton - - * mex.cc (mexErrMsgIdAndTxt, mexWarnMsgIdAndTxt): Handle second - arg as format and accept variable number of arguments. - * mexproto.h: Fix decls. - - * error.h, error.cc (vmessage, vusage, vwarning, verror, - vparse_error, vmessage_with_id, vusage_with_id, vwarning_with_id, - verror_with_id, vparse_error_with_id): Provide va_list versions of - variadic error, warning, and message functions. - (message, usage, warning, error, parse_error, message_with_id, - usage_with_id, warning_with_id, error_with_id, - parse_error_with_id): Call va_list versions. - - * DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread): Return error - code and message instead of throwing error if functionality is - missing. - - * oct-obj.h (octave_value_list::splice): Set default for - replacement list argument. - - 2007-02-20 Rafael Laboissiere - - * DLD-FUNCTIONS/__glpk__.cc: Adapt code for changes in the GLPK - API for version 4.15 or later. - - 2007-02-20 John W. Eaton - - * mxarray.h (mxArray::get_scalar): New function. - * mex.cc (mxArray_base::get_scalar): New pure virtual function. - (mxArray_octave_value::get_scalar, mxArray_matlab::get_scalar, - mxArray_number::get_scalar): New functions. - (mxGetScalar): Call get_scalar here. - - * mex.cc (mxArray_octave_value::get_dimensions): Cache ndims here. - (mxArray_octave_value::get_number_of_dimensions): - Call get_dimensions here to cache both ndims and dims. - - 2007-02-17 John W. Eaton - - * variables.cc (symbol_out_of_date): Don't exit early if looking - at nested function. - - 2007-02-16 John W. Eaton - - * dynamic-ld.cc (octave_dynamic_loader::do_load_oct): Clear - function if original was loaded from relative path and the name - can no longer be found in path. Mark files found from relative - path as relative. - (clear): Only warn if there is more than one function to clear. - - * variables.cc (symbol_out_of_date): Don't ignore return value in - call to octave_env::make_absolute. - (symbol_out_of_date): Clear symbol if original was loaded from - relative path and name can no longer be found in path. - - * dynamic-ld.cc (octave_dynamic_loader::do_load_oct): - Also check whether new file is same as the old file. - - * utils.cc (same_file): Move here from variables.cc. - * utils.h: (same_file): Provide decl. - - * parse.y (frob_function): Stash parent function name if parsing - nested function. - - * ov-fcn-handle.cc (make_fcn_handle): Pass current function name - as parent in call to lookup_function. - - * ov-fcn.h (octave_function::parent_fcn_name): New virtual function. - - * ov-usr-fcn.h (octave_user_function::parent_name): New data member. - (octave_user_function::stash_parent_function_name, - octave_user_function::parent_function_name): New methods. - * ov-usr-fcn.cc (octave_user_function::octave_user_function): - Initialize parent_name. - - * variables.h, variables.cc (lookup_function): New arg, parent. - If not empty, try this first for lookup. - - * dynamic-ld.cc (octave_dynamic_loader::do_load_mex): If doing - path lookup, check relative status. Pass relative to oct_file_in_path. - (octave_dynamic_loader::do_load_mex): Likewise, for mex_file_in_path - - * defun-int.h, defun.cc (install_mex_function): New arg, relative. - (install_dld_function): Likewise. - (octave_dld_fcn_installer): Likewise. - (DEFINE_FUNX_INSTALLER_FUN3): Pass relative to install_dld_function. - - * dynamic-ld.h (octave_dynamic_loader::load_oct, - octave_dynamic_loader::load_mex, - octave_dynamic_loader::do_load_oct - octave_dynamic_loader::do_load_mex): New arg, relative. - - * dirfns.h (Vcurrent_directory): Delete unused variable. - - * variables.cc (symbol_out_of_date): Also compare function time - stamp to Vlast_chdir_time if function is from relative lookup. - - * dirfns.cc (Vlast_chdir_time): New variable. - (octave_change_to_directory): Update it if chdir succeeds. - * dirfns.h (Vlast_chdir_time): Provide decl. - - * ov-fcn.h (octave_function::relative): New data member. - (octave_function::mark_relative, octave_function::is_relative): - New functions. - - * parse.y (fcn_file_from_relative_lookup): New static variable. - (load_fcn_from_file): Note whether function file was found from - relative path element. - (frob_function): Maybe mark function as relative. - - * parse.y (lookup_autoload): Don't call octave_env::make_absolute - on return value. - * variables.cc (symbol_out_of_date): Make name absolute after call - to lookup_autoload. - - * input.cc (interactive_input): New arg, DEBUG. Don't call - drawnow if debugging. - (get_user_input): Pass DEBUG to interactive_input. - - 2007-02-16 Michael Goffioul - - * syscalls.cc (Fpopen2): New function. - (pipe): Modify to return input and output file descriptor - seperately rather than in a list. - - 2007-02-16 Muthiah Annamalai - - * debug.cc (Fdbtype): Improve compatibility. - - 2007-02-16 John W. Eaton - - * toplev.cc (wait_for_input): New function. - (run_command_and_return_output): Use it instead of napping. - - * oct-procbuf.h (octave_procbuf::pid): Now const. - * procstream.h (procstreambase::pid): Now const. - (procstreambase::file_number): New function. - - 2007-02-15 John W. Eaton - - * mxarray.h (mxChar): Use char instead of unsigned short. - - * toplev.cc (Foctave_config_info): Remove - OCTAVE_CONF_MKOCTFILE_INCFLAGS and OCTAVE_CONF_MKOCTFILE_LFLAGS - from the list. - * oct-conf.h.in (OCTAVE_CONF_MKOCTFILE_INCFLAGS, - OCTAVE_CONF_MKOCTFILE_LFLAGS): Don't define. - (OCTAVE_CONF_INCLUDEDIR, OCTAVE_CONF_OCTINCLUDEDIR, - OCTAVE_CONF_OCTLIBDIR, OCTAVE_CONF_PREFIX): New definitions. - - 2007-02-14 Alexander Barth - - * DLD-FUNCTIONS/interpn.cc: New file. - * Makefile.in (DLD_XSRC): Add it to the list. - - 2007-02-14 John W. Eaton - - * input.cc (interactive_input): Check error_state after call to feval. - - 2007-02-10 John W. Eaton - - * oct-stream.cc (octave_stream::rewind): Call seek (0, SEEK_SET) - instead of rep->rewind. - (octave_base_stream::rewind): Delete Function. - * oct-stream.h (octave_base_stream::rewind): Delete decl. - - 2007-02-09 John W. Eaton - - * ls-mat5.cc (PAD): Adjust to change in write_mat5_tag. - (TAGLENGTH): Delete unused macro. - - * ov-struct.cc (octave_struct::load_ascii, - octave_struct::load_binary, octave_struct::load_hdf5): - Delete obsolete attempt at backward compatibility. - - * ls-mat5.cc (read_mat5_binary_element): Don't attempt to read - fieldnames if there are no fields. - (write_mat5_tag): Don't use small data element format if bytes == 0. - - * ls-mat5.cc (read_mat5_binary_element): Always create a structure - that is at least 1x1. - * ov-struct.cc (octave_struct::load_ascii, - octave_struct::load_binary, octave_struct::load_hdf5): Likewise. - - 2007-02-08 Michael Goffioul - - * DLD-FUNCTIONS/__glpk__.cc: Include glplib.h if glpk.h does not. - Provide definitions for lib_set_fault_hook and lib_set_print_hook - if they are not defined. - - 2007-02-07 John W. Eaton - - * defaults.cc (subst_octave_home): - Only substitute at beginning of string. - - * ls-hdf5.cc (save_hdf5_empty): Use OCTAVE_LOCAL_BUFFER. - * ov-bool-mat.cc (octave_bool_matrix::save_hdf5, - octave_bool_matrix::load_hdf5): Likewise. - * ov-bool-sparse.cc (octave_sparse_bool_matrix::save_hdf5, - octave_sparse_bool_matrix::load_hdf5): Likewise. - - 2007-02-07 Michael Goffioul - - * ov-cell.cc (octave_cell::save_hdf5): Correct test for H5Dwrite - return value. - - 2007-02-07 John W. Eaton - - * zfstream.cc (gzfilebuf::open_mode): Always append "b" to c_mode. - - * toplev.cc (Foctave_config_info): Use struct for conf_info. - Call subst_octave_home on selected values when initializing map. - * defaults.cc (subst_octave_home): Now extern. - * defaults.h.in: Provide decl. - - 2007-02-05 John W. Eaton - - * mex.cc (mxArray_number::as_octave_value): Fake mxSINGLE_CLASS - by returning double-precision values. - (mxArray_sparse::as_octave_value): Clarify error message. - - * ov-complex.h (octave_complex): Use std instead of OCTAVE_STD - since the latter was unconditionally defined to be std anyway. - - 2007-02-05 Michael Goffioul - - * ov-complex.h: Tag octave_complex class with OCTINTERP_API. - - 2007-01-30 John W. Eaton - - * Merge of changes from graphics-branch: - - 2007-01-26 John W. Eaton - - * DLD-FUNCTIONS/__contourc__.cc: New function. - * Makefile.in (DLD_XSRC): Add it to the list. - - 2007-01-25 John W. Eaton - - * input.cc (Vdrawnow_requested): New static variable. - (F__request_drawnow__): New function. - (interactive_input): New function. Update Vlast_prompt_time here. - (octave_gets, get_user_input, octave_yes_or_no): - Call interactive_input instead of gnu_readline. - - * symtab.h (symbol_record::eternal): New data member. - (symbol_record::symbol_record): Initialize it. - (symbol_record::make_eternal, symbol_record::is_eternal): - Don't forward to symbol_def functions. - (symbol_record::symbol_def::make_eternal, - symbol_record::symbol_def::is_eternal): Delete. - (symbol_record::symbol_def::eternal): Delete data member. - (symbol_record::symbol_def::symbol_def): Delete initialization. - - * pt-id.cc (tree_identifier::link_to_global): Include variable - name in warning message. - - * variables.cc (F__lock_global__): New function. - - 2007-01-11 John W. Eaton - - * ls-oct-ascii.cc (save_ascii_data_for_plotting, save_three_d): - Set precision to 6 instead of 4. - - 2007-01-29 David Bateman - - * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Don't panic if - nargout is greater than 3. - - 2007-01-24 John W. Eaton - - * pt-assgn.cc (former_built_in_variables): New static data. - (maybe_warn_former_built_in_variable): New static function. - (tree_simple_assignment::tree_simple_assignment, - tree_multi_assignment::tree_multi_assignment): - Move definition here from pt-assign.h - Maybe warn about assignment to obsolete built-in variables. - - * version.h (OCTAVE_STARTUP_MESSAGE): Mention "news" function. - - * pt-stmt.cc (tree_statement::eval): Use dynamic_cast, not - static_cast. - - * help.cc (help_from_file): Show .oct or .mex file name if one - exists in the same directory as the .m file. - - 2007-01-23 Luis F. Ortiz - - * strfns.cc (Fstrncmp): New function. - - 2007-01-17 John W. Eaton - - * help.cc (help_from_file, help_from_symbol_table, help_from_list): - Rewrite using raw_ versions. - - 2007-01-17 David Bateman - - * help.cc (raw_help, raw_help_from_file, - raw_help_from_symbol_table, raw_help_from_list): New functions. - * help.h (raw_help): Provide decl. - - 2007-01-16 John W. Eaton - - * DLD-FUNCTIONS/__pchip_deriv__.cc: Fix dpchim decl for --enable-64. - (F__pchip_deriv__): Fix call to dpchim for --enable-64. - - * DLD-FUNCTIONS/fftw.cc: Delete decl for fftw_planner. - - 2007-01-11 Michael Goffioul - - * load-path.h (class load_path): Tag with OCTINTERP_API. - - * ls-oct-binary.cc (read_binary_data): Use unsigned char, not - char, for reading flags and data types. - - 2007-01-10 Luis F. Ortiz - - * parse.y (load_fcn_from_file): Delete unused variable NAMES. - If NM is absolute, strip directory and extension parts. - - 2007-01-10 Michael Goffioul - - * DLD-FUNCTIONS/getrusage.cc: Use #ifdef __WIN32__, not __MINGW32__. - - 2007-01-10 John W. Eaton - - * parse.y (load_fcn_from_file): Only compare last two characters - when looking for ".m". - - 2007-01-06 John W. Eaton - - * version.h (OCTAVE_CONFIG_STATEMENT): New macro - (OCTAVE_NAME_AND_VERSION): Remove config info. - (OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY): - Use OCTAVE_CONFIG_STATEMENT here. - - 2007-01-05 David Bateman - - * Makefile.in (DLD_XSRC): Add fftw.cc and remove fftw_wisdom.cc - * DLD-FUNCTIONS/fftw.cc: New file. - * DLD-FUNCTIONS/fftw_wisdom.cc: Delete. - * defaults.cc (Vfftw_wisdom_program): Delete variable. - (set_default_fftw_wisdom_prog): Delete function that sets it. - (install_defaults): Delete set_default_fftw_prog from defaults. - (Ffftw_wisdom_program): Delete. - - 2007-01-04 David Bateman - - * ov-fcn-handle.cc (octave_fcn_handle::load_ascii, - octave_fcn_handle::load_binary): - Throw error if handle can't be created. - - 2007-01-04 Luis F. Ortiz - - * mex.cc (mxArray_number::mxArray_number (int, const char **)): - Correctly index LHS in assignment. - - 2007-01-03 John W. Eaton - - * data.cc (Fisinteger): New function. - * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::is_integer_type, - OCTAVE_VALUE_INT_SCALAR_T::is_integer_type): New function. - * ov.h (octave_value::is_integer_type): New function. - * ov-base.h (octave_base_value::is_integer_type): New virtual function. - - 2007-01-03 Michael Goffioul - - * toplev.cc (Fsystem): Handle async calls on Windows systems. - - 2007-01-03 David Bateman - - * (OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, - OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, - OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, - OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc, - OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc, - OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc, - OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc, - OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc, - OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc, - OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc): - Modify div and ldiv functions so that scalars stored as sparse - matrices are special cased. - - * ov-re-sparse.cc (double_value, complex_value): Scalar can be - stored as a sparse matrix and so don't warn on implicit conversion - to a scalar. - * ov-cx-sparse.cc (double_value, complex_value): ditto. - * ov-bool-sparse.cc (double_value, complex_value): ditto. - - 2007-01-03 John W. Eaton - - * dynamic-ld.cc (octave_dynamic_loader::do_load_mex): Also check - for _mexFunction. - - 2006-12-30 John W. Eaton - - * ov-fcn-inline.cc: For compatibility, class id is - "function_handle", not "inline function". - - 2006-12-27 John W. Eaton - - * Makefile.in (%.df : %.cc): Insert a "do not edit" notice in the - .df files. - - * mex.cc (mxArray_matlab::get_class_name, - mxArray_octave_value::get_class_id): Use "function_handle", not - "function handle". - - 2006-12-14 John W. Eaton - - * pt-decl.cc (tree_decl_elt::eval): New function. - * pt-decl.h (tree_decl_elt::eval): Provide decl. - (tree_decl_elt::is_defined, tree_decl_elt::lvalue_ok, - tree_decl_elt::mark_as_formal_parameter, tree_decl_elt::rvalue, - tree_decl_elt::lvalue): New functions. - - * pt-misc.h (class tree_parameter_list): Derive from - octave_base_list instead of - octave_base_list. - (tree_parameter_list::tree_parameter_list (tree_identifier *)): Delete. - (tree_parameter_list::tree_parameter_list (tree_decl_elt *)): - New function. - * pt-misc.cc (tree_parameter_list::mark_as_formal_parameters, - tree_parameter_list::initialize_undefined_elements, - tree_parameter_list::undefine, tree_parameter_list::dup, - tree_parameter_list::convert_to_const_vector, - tree_parameter_list::is_defined): Handle argument list elements - as tree_decl_list objects instead of tree_identifier objects. - (tree_parameter_list::define_from_arg_vector): Likewise. - Always process entire list, setting default values if possible. - Accept ":" to mean "use default argument". - - * parse.y (param_list2): Use decl2 to recognize - "identifier '=' expression" in addition to "identifier". - - * parse.y (return_list1, make_anon_fcn_handle, finish_function): - Adapt to new definition of tree_parameter_list. - * pt-bp.cc (tree_breakpoint::visit_parameter_list): Likewise. - * pt-check.cc (tree_checker::visit_parameter_list): Likewise. - * pt-pr-code.cc (tree_print_code::visit_parameter_list): Likewise. - - 2006-12-08 John W. Eaton - - * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::array_value, - OCTAVE_VALUE_INT_MATRIX_T::complex_array_value, - OCTAVE_VALUE_INT_MATRIX_T::bool_array_value, - OCTAVE_VALUE_INT_MATRIX_T::char_array_value): - Use fortran_vec to avoid expensive indexing operator. - - 2006-12-08 David Bateman - - * ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::matrix_value, - OCTAVE_VALUE_INT_SCALAR_T::complex_matrix_value, - OCTAVE_VALUE_INT_MATRIX_T::matrix_value, - OCTAVE_VALUE_INT_MATRIX_T::comlex_matrix_value): New functions. - (OCTAVE_VALUE_INT_MATRIX_T::array_value, - OCTAVE_VALUE_INT_MATRIX_T::comlex_array_value): - Use octave_idx_type instead of int for indexing. - - 2006-12-04 David Bateman - - * xpow.cc (xpow (const Matrix&, double)): Add matrix type probing - to matrix inverse. - (xpow (const ComplexMatrix&, double)): ditto. - * DLD-FUNCTIONS/inv.cc (Finv): Add matrix type probing. - - 2006-12-06 John W. Eaton - - * sysdep.cc: Include "Cell.h" here. - * input.h: Include "oct-obj.h", not "ov-list.h". - - 2006-12-06 Michael Goffioul - - * mappers.cc (install_mapper_functions): Undefine isascii before - the DEFUN_MAPPER for it. - - * input.cc (get_user_input): Prevent out of bounds array access - when checking for EOL. - - 2006-12-05 John W. Eaton - - * ls-oct-ascii.cc (extract_keyword): If no match and looking for - more, skip to end of line before trying another match. - - * pt-mat.cc (tm_row_const::empty): New function. - (tm_const::init): Don't append anything if tmp tm_row_const object - is empty. - (tree_matrix::rvalue): Default return value is Matrix(). - Don't do anything if tmp tm_const object is empty. - - * dirfns.cc (Fmkdir): Fix thinko in previous change. - - 2006-12-05 Paul Kienzle - - * DLD-FUNCTIONS/rand.cc: Test for Poisson generator with lambda > 1e8. - - 2006-12-04 David Bateman - - * data.cc (Fdata): If ndims is greater than nargout and - nargout is greater than 1, then collect size of trailing - dimensions into retval(end). - - * load-path.cc (load_path::do_find_fcn): Return empty string if - tests fail. - - * ov-base-mat.cc (void octave_base_matrix::assign (const - octave_value_list&, const MT&)): Invalidate matrix type on - assignment. - - 2006-11-30 John W. Eaton - - * DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom): - Accept "r" or "w" for second argument. - - 2006-11-29 John W. Eaton - - * DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom): Look in load-path - if reading wisdom file, but not if writing. - - 2006-11-28 John W. Eaton - - * mex.cc (mxArray_struct::get_field_by_number): - Return 0 if key_num is out of range. - (mxArray_struct::set_field_by_number): - Do nothing if key_num is out of range. - (mxArray_cell::get_cell, mxArray_cell::set_cell): - Avoid out-of-bounds indexing - - 2006-11-28 Luis F. Ortiz - - * mex.cc (mxArray_matlab::get_n, mxArray_octave_value::get_n): - Return product of last N-1 dims. - - 2006-11-28 John W. Eaton - - * lex.l (eat_whitespace): Also handle CRLF as EOL. - - * dirfns.cc (Fmkdir): Handle "mkdir (parent, dir)". - - 2006-11-21 John W. Eaton - - * load-path.cc (load_path::do_find_file, - load_path::do_find_first_of, load_path::do_find_all_first_of): - Call rooted_pathname instead of absolute_pathname. - * utils.cc (fcn_file_in_path, oct_file_in_path, mex_file_in_path): - Likewise. - - 2006-11-16 Michael Goffioul - - * oct-hist.cc (default_history_file): Instead of appending - "/.octave_hist", append directory separator (but only if - necessary), then ".octave_hist". - - 2006-11-16 John W. Eaton - - * data.cc (Fresize): Fix doc string. - - 2006-11-15 John W. Eaton - - * DLD-FUNCTIONS/__gnuplot_raw__.l (write_data, write_inline_data): - New functions. - (save_in_tmp_file): Use write_data. - (gnuplot::send_inline_data, gnuplot_do_send_inline_data): - New functions. - (F__gnuplot_send_inline_data__, F__gnuplot_save_data__): - New functions. - - * ls-oct-ascii.cc (save_ascii_data_for_plotting): - Call save_ascii_data with precision = 4. - (save_three_d): Temporarily set precision to 4 for output stream. - - 2006-11-15 Michael Goffioul - - * Cell.h (Cell): Tag class with OCTINTERP_API. - - 2006-11-13 John W. Eaton - - * octave.cc (maximum_braindamage): Disable - Octave:fopen-file-in-path and Octave:load-file-in-path warnings. - - * load-save.cc (find_file_to_load): New function. - (Fload): Call find_file_to_load to search load path for file. - - * file-io.cc (Ffopen): Search load path for file. - - * load-path.cc (path::do_find_first_of, path::do_find_file): - Break out of all loops once file is found, not just innermost one. - - * data.cc (Fsize_equal): New function. - - 2006-11-13 Michael Goffioul - - * ov.cc (check_subsref_elements, Fsubsref, Fsubsasgn): - New functions. - - * ov-re-mat.h, ov-scalar.h, pr-output.h: - Sprinkle with OCTINTERP_API as needed. - - 2006-11-11 John W. Eaton - - * Makefile.in (parse.cc): Avoid creating empty files. - (%.df : %cc, builtins.cc, mkbuiltins, PKG_ADD, DOCSTRINGS, - doc-files, gendoc.cc, ops.cc, $(OPT_HANDLERS), oct-errno.cc, - oct-gperf.h): Use $(simple-move-if-change-rule) here. - (lex.cc, __gnuplot_raw__.cc): - Use $(destdir-move-if-change-rule) here. - (ifndef omit_deps): Don't include stamp-prereq here. - ($(DEF_FILES), $(MAKEDEPS)): Also depend on stamp-prereq. - - 2006-11-10 John W. Eaton - - * ov-str-mat.cc (octave_char_matrix_str::load_ascii, - octave_char_matrix_str::load_binary): - Use chMatrix as buffer instead of C string. - - 2006-11-09 John W. Eaton - - * ov-usr-fcn.h (octave_user_function::inline_function): - New data member. - (octave_user_function::mark_as_inline_function): Set it. - (octave_user_function::is_inline_function): Check it. - * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): - Also skip setting curr_parent_fucntion if evaluating an inline - function. - (octave_user_function::octave_user_function): - Initialize inline_function. - * pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue): - Mark user function as inline here. - - 2006-11-09 Michael Goffioul - - * load-path.cc (load_path::move): Don't use reference to file_info - object that will be erased. - - 2006-11-07 John W. Eaton - - * utils.cc (file_in_path): Don't unconditionally return "". - - * pager.cc (default_pager): Don't append options here. - (pager_command): New function. - (do_sync): Use it. - (VPAGER_FLAGS): New variable. - (FPAGER_FLAGS): New function. - - 2006-11-06 John W. Eaton - - * oct-hist.cc (default_history_file): If env_file is not empty, - just accept it rather than checking to see if it exists. - - 2006-11-03 Bill Denney - - * help.cc (keywords): Document try and unwind_protect. - - 2006-11-03 John W. Eaton - - * Makefile.in (DLL_CXXDEFS): Rename from XTRA_CXXDEFS. - (DLL_CDEFS): Rename from XTRA_CDEFS. - Substitute OCTINTERP_DLL_DEFS, not XTRA_OCTINTERP_DEFS. - - 2006-11-02 Michael Goffioul - - * sysdep.cc (MSVC_init): Also cal w32_sigint_init and - w32_set_quiet_shutdown. - - 2006-11-01 John W. Eaton - - * ov.h (octave_value::idx_type_value): New function. - * data.cc (fill_matrix, Flinspace, Freshape): Use idx_type_value - instead of int_value to extract size args. - - 2006-10-31 John W. Eaton - - * ov-range.h (octave_range::empty_clone): Return octave_matrix - object instead of octave_range. - - 2006-10-29 Juhani Saastamoinen - - * ls-mat5.cc (read_mat5_tag): Declare bytes as int32_t, not just int. - - 2006-10-28 John W. Eaton - - * toplev.cc (Fatexit): Push function names on the stack even if we - don't have atexit or on_exit. - - 2006-10-28 Michael Goffioul - - * mappers.cc (install_mapper_functions): Undefine toascii before - the DEFUN_MAPPER for it. - - 2006-10-27 John W. Eaton - - * mexproto.h: Include oct-dlldefs.h. - - * pr-output.cc (SPECIALIZE_UABS): New macro. - Use it to generate specializations of abs for unsigned int types. - Instantiate abs for signed int types. - - * load-path.cc (load_path::do_initialize): - Use dir_path::path_sep_str instead of ":". - Don't append ":::" to xpath when calling do_set. - - * dirfns.cc (Fls, cleanup_iprocstream): Delete. - - * sysdep.cc (Ftilde_expand): If arg is cellstr, return cellstr. - - * ov.h (octave_value::is_cellstr): New function. - * ov-base.h (octave_base_value::is_cellstr): New function. - * ov-cell.h (octave_cell::is_cellstr): New function. - * ov-cell.cc (Fiscellstr): Implement with is_cellstr. - * Cell.cc (Cell::Cell (const dim_vector&, const string_vector&, bool)): - New constructor. - (Cell::is_cellstr): New function. - * Cell.h: Provide decls. - - * defaults.cc (subst_octave_home): If dir_sep_char is not '/', - replace before returning. - From Michael Goffioul . - - 2006-10-26 John W. Eaton - - * cutils.c (octave_strcasecmp, octave-strncasecmp): - Move to liboctave/lo-cutils.c. - * utils.h: Delete decls. - * strcasecmp.c: Move to liboctave/strcasecmp.c. - * strncase.c: Move to liboctave/strncase.c. - * Makefile.in (DIST_SRC): Delete them from the list. - - * bitfcns.cc (bitshift): If A < 0, return -bitshift (-A, N, MASK). - - 2006-10-26 Michael Goffioul - - * help.cc (display_help_text): Quote sed patterns with ". - - * file-io.cc: Include file-io.h. - - * TEMPLATE-INST/Array-os.cc, TEMPLATE-INST/Array-sym.cc, - TEMPLATE-INST/Array-tc.cc, defun-int.h, error.h, file-io.h, - gripes.h, ls-oct-ascii.h, mexproto.h, oct-map.h, oct-obj.h, - oct-stream.cc, oct-stream.h, octave.h, ov-base.h, - ov-bool-sparse.cc, ov-bool-sparse.h, ov-cx-sparse.cc, - ov-cx-sparse.h, ov-fcn.h, ov-re-sparse.cc, ov-re-sparse.h, - ov-str-mat.h, ov-typeinfo.cc, ov-typeinfo.h, ov.h, pager.h, - parse.h, pr-output.cc, pr-output.h, procstream.h, sighandlers.h, - symtab.h, unwind-prot.h, utils.h, variables.h: - Sprinkle with OCTINTERP_API as needed. - - 2006-10-26 John W. Eaton - - * ov-bool.h (octave_bool::sparse_matrix_value, - octave_bool::sparse_complex_matrix_value - octave_bool::sparse_bool_matrix_value): New functions. - - 2006-10-25 John W. Eaton - - * sighandlers.cc: Check defined (RETSIGTYPE_IS_VOID) instead of - RETSIGTYPE == void. - - * oct-procbuf.cc (BUFSIZ): Define if not already defined. - (octave_procbuf::open): Pass BUFSIZ as size argument to setvbuf. - - 2006-10-25 Michael Goffioul - - * Makefile.in (XTRA_CDEFS, XTRA_CXXDEFS): Substitute here. - - * oct-procbuf.cc [_MSC_VER]: Define W32POPEN and W32PCLOSE the - same as for __MINGW32__. - (octave_procbuf::open, octave_procbuf::close) [_MSC_VER]: - Use the same code as for __MINGW32__ and __CYGWIN__. - - * oct-prcstrm.cc [_MSC_VER]: Define popen and pclose. - - 2006-10-25 John W. Eaton - - * sysdep.cc (w32_set_octave_home): Correctly initialize bin_dir. - Fill it with '\0' instead of ' '. - - 2006-10-24 Michael Goffioul - - * Makefile.in: Filter out $(XTRA_CXXDEFS) from $(ALL_CXXFLAGS) for - $(DLD_PICOBJ). - - 2006-10-24 John W. Eaton - - * sysdep.cc (MSC_init): New function. - (sysdep_init): Call it. - (w32_set_octave_home): New function, based on code from Michael - Goffioul . - (MINGW_init): Call w32_set_octave_home here too. - - 2006-10-23 John W. Eaton - - * symtab.cc (symbol_table::clear_mex_functions): New function. - * symtab.h: Provide decl. - * vriables.cc (clear_mex_functions): New function. - * variables.h Provide decl. - * toplev.cc: Call clear_mex_functions instead of delete_symbol_tables. - - * variables.cc (delete_symbol_tables): Delete. - * variables.h: Delete decl. - - * mex.cc (mex::unmark_array): New function. - (mex::persistent): Define with unmark_array. - (maybe_unmark_array): New function. - (mxArray_struct::set_field_by_number, mxArray_cell::set_cell): - Call maybe_unmark_array on val to avoid freeing val twice on exit - from mex function. - (mxFree): Call xfree, not free. - - 2006-10-21 John W. Eaton - - * ov-intx.h - (OCTAVE_VALUE_INT_MATRIX_T::OCTAVE_TYPE_PREDICATE_FUNCTION, - (OCTAVE_VALUE_INT_SCALAR_T::OCTAVE_TYPE_PREDICATE_FUNCTION): - Function is now const, so it properly overloads method in base - class. - - * mex.cc (mxArray_octave_value::is_uint32): - Call val.is_uint32_type, not val.is_int32_type. - (mxArray_octave_value::is_uint64): - Call val.is_uint64_type, not val.is_int64_type. - (mxArray_octave_value::is_uint8): - Call val.is_uint8_type, not val.is_int8_type. - - 2006-10-20 Paul Kienzle - - * ov-mex-fcn.h (octave_mex_function::atexit): New function. - (octave_mex_function::exit_fcn_ptr): New data member. - * ov-mex-fcn.cc (octave_mex_function::exit_fcn_ptr): New data member. - (octave_mex_function::octave_mex_function): Initialize it. - (octave_mex_function::~octave_mex_function): - If we have an exit function, call it. - - 2006-10-20 John W. Eaton - - * variables.cc (delete_symbol_tables): New function. - * variables.h: Provide decl. - * toplev.cc (do_octave_atexit): Call it. - - * mex.cc (mex::mex): New arg, a pointer to the current mex function. - (mex::curr_mex_fcn): New data member. - (mex::current_mex_function): New function. - (mexAtExit): Set exit function pointer in current mex file object. - - 2006-10-20 Paul Kienzle - - * mex.cc (enum callstyle): Delete enum definition. - (Fortran_mex, C_mex): Delete functions. - (call_mex): First arg is now bool. - * ov-mex-fcn.cc (call_mex): Fix decl to match new definition. - (Fortran_mex, C_mex): Delete decls. - (octave_mex_function::do_multi_index_op): Simplify call to call_mex. - - 2006-10-20 John W. Eaton - - * lex.l (handle_identifier): If a command name is found, skip - starting command mode if parsing an object index. - - 2006-10-20 David Bateman - - * DLD-FUNCTION/spqr.cc (dmperm_internal): New function with core - of Fdmperm. - (Fdmperm): Call dmperm_internal rather then calculating loally. - (Fsprank): New function to calculate the strutural rank also using - dmperm_internal. - - 2006-10-19 John W. Eaton - - * ov-struct.cc (octave_struct::as_mxArrary): - Use OCTAVE_LOCAL_BUFFER to allocate tempoarary array of field names. - - * mxarray.h (mxArray::persistent): Delete var and all uses. - (mxArray::mark_persistent, mxArray::unmark_persistent, - mxArray::is_persistent): Delete functions. - * mex.cc (mex::function_name): Use mxArray::strsave, not strsave. - (mex::mark_array): New function. - (mex::make_value): Use it. - (mex::free_value): Return true if we found ptr in arraylist. - (mex::persistent (mxArray *)): Remove ptr from arraylist instead - of marking it as persistent. - (mxArray::malloc): Call ::malloc instead of malloc. - (mxArray::calloc): Call ::calloc instead of calloc. - (maybe_mark_array): New function. - (mxCreateCellArray, mxCreateCellMatrix, mxCreateCharArray, - mxCreateCharMatrixFromStrings, mxCreateDoubleMatrix, - mxCreateDoubleScalar, mxCreateLogicalArray, mxCreateLogicalMatrix, - mxCreateLogicalScalar, mxCreateNumericArray, - mxCreateNumericMatrix, mxCreateSparse, - mxCreateSparseLogicalMatrix, mxCreateString, mxCreateStructArray, - mxCreateStructMatrix, mxDuplicateArray): Use it. - (mxDestroyArray): No need to check persistence now. - Also delete ptr if mex_context->free_value does not. - (call_mex): No need to delete elements of argout now. - - 2006-10-18 John W. Eaton - - * dynamic-ld.cc (octave_shlib_list::remove, - octave_shlib_list::do_remove, octave_mex_file_list::remove, - octave_mex_file_list::do_remove): New arg, cl_hook. - (octave_shlib_list::do_remove): Pass cl_hook to octave_shlib close - function. - (octave_dynamic_loader::do_load_oct): Don't call close on shl - directly. Pass do_clear_function to octave_shlib_list::remove. - - * mex.cc (mexUnlock): Don't warn if unlocking a function that is - not locked. - - * pt-fcn-handle.cc (tree_anon_fcn_handle::dup): - Correctly duplicate symbol table info. - - 2006-10-17 Michael Goffioul - - * oct-map.h: Include . - - 2006-10-16 John W. Eaton - - * oct-stream.cc (octave_stream_list::do_remove): Handle "all" as a - special case. - - 2006-10-13 Michael Goffioul - - * Makefile.in: Adapt rules to use $(LIBPRE). - - 2006-10-11 John W. Eaton - - * mex.h (UINT64_T, uint64_T, INT64_T, int64_T, UINT32_T, uint32_T, - INT32_T, int32_T, UINT16_T, uint16_T, INT16_T, int16_T, UINT8_T, - uint8_T, INT8_T, int8_T): Conditionally define. - From Andy Adler . - - 2006-10-09 John W. Eaton - - * oct-conf.h.in (OCTAVE_CONF_CURL_LIBS): Substitute. - * toplev.cc (octave_config_info): Add CURL_LIBS to the list. - - 2006-10-09 Alexander Barth - - * DLD-FUNCTIONS/urlwrite.cc: New file providing urlwrite and urlread. - - 2006-10-09 John W. Eaton - - * pt-mat.cc (tree_matrix::dup): Append new elements to new matrix. - * pt-cell.cc (tree_cell::dup): Append new elements to new cell array. - - 2006-10-04 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.9+. - - * DLD-FUNCTIONS/__gnuplot_raw__.l (F__clear_plot_window__): - Rename from Fclearplot. Only clear plot window. - - 2006-10-03 John W. Eaton - - * DLD-FUNCTIONS/luinc.cc (Fluinc): Avoid crash if SparseLU or - SparseComplexLU constructor fails. - - * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): - Delete unused variable. - - 2006-10-03 David Bateman - - * Makefile.in (OCT_LINK_DEPS) Include $(CAMD_LIBS) in the list. - (octave$(EXEEXT)): Include $(CAMD_LIBS) in link command. - - 2006-10-02 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.9. - (OCTAVE_API_VERSION): Now api-v22. - (OCTAVE_RELEASE_DATE): Now 2006-10-02. - - * pr-output.cc (pr_plus_format): Use "inline" instead of "static - inline" for template functions to avoid problems when not - compiling with g++. - - * mex.cc (call_mex): Delete elements of argout. - From Kai Labusch . - - 2006-09-29 John W. Eaton - - * DLD-FUNCTIONS/spfind.cc (sparse_find_non_zero_elem_idx): - Leading dimension is NR, not NC. - - * Makefile.in (DEP_5): Include oct-errno.cc in the list. - - 2006-09-27 John W. Eaton - - * pr-output.cc (abs): New template function. Instantiate for - unsigned types. - - 2006-09-27 David Bateman - - * file-io.cc (Fsprintf): If fmt is an sq_string, return an sq_string. - - * DLD-FUNCTIONS/sparse.cc (spfind, sparse_find): Delete. - * DLD-FUNCTIONS/spfind.cc: New file implementating compatible - sparse find function. - * Makefile.in (DLD_XSRC): Add spfind.cc. - - 2006-09-26 Bill Denney - - * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx, Ffind): - Handle direction and limit on number of elements to find. - - 2006-09-26 John W. Eaton - - * error.cc (warning_1): Call error_2, not error. - - 2006-09-15 John W. Eaton - - * ops.h (DEFSTRDBLCONVFN): New arg, TFROM. - * OPERATORS/op-double-conv.cc: Declare and install sq_string - conversions too. - - * ov-base-int.cc (octave_base_int_scalar::convert_to_str_internal, - octave_base_int_matrix::convert_to_str_internal): - New functions. - * ov-base-int.h: Provide decls. - - 2006-09-15 Sᅵren Hauberg . - - * data.cc (Fsize): If nargout > ndims, fill with 1. - - 2006-09-15 John W. Eaton - - * octave.cc: Fix xerbla decl. - - 2006-09-13 John W. Eaton - - * DLD-FUNCTIONS/cellfun.cc: Improve error message for uniform - output case when results are not scalars. Avoid shadow decls. - - 2006-09-13 David Bateman - - * ov-scalar.h (octave_scalar::sparse_matrix_value, - octave_scalar::sparse_complex_matrix_value): New extractor functions. - * ov-complex.h (octave_complex::sparse_matrix_value, - octave_complex::sparse_complex_matrix_value): Ditto. - * DLD-FUNCTIONS/spkron.cc (Fspkron): Change example in help. - - 2006-09-12 David Bateman - - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Allow matlab compatiable - 'UniformOutput' and 'ErrorHandler' options. Change output when - called with function handler or inline function to by default have - 'UniformOutput' set to true. Allow functions with multiple inputs - and outputs. Add test code. Replace some int with octave_idx_type. - (Fnum2cell): Replace some int with octave_idx_type. Add test code. - - 2006-09-11 Yozo Hida - - * DLD-FUNCTIONS/gcd.cc (Fgcd): Extend range by using std::floor - instead of converting to int. - - 2006-09-05 John W. Eaton - - * mex.cc (mxArray_sparse::as_octave_value): Cast nzmax to - octave_idx_type for sparse matrix constructors. - - 2006-09-01 John W. Eaton - - * dirfns.cc: Don't handle nargout == 0 as a special case. - (octave_change_to_directory): Perform tilde expansion on directory - name here. - - 2006-08-30 John W. Eaton - - * load-save.cc (get_file_format): Fix misplaced #endif. - - 2006-08-29 John W. Eaton - - * load-path.cc (execute_pkg_add_or_del): - Source PKG_ADD or PKG_DEL in base workspace. - * parse.y (source_file): New optional arg, context. - * parse.h (source_file): Fix decl. - - 2006-08-25 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.8+. - - 2006-08-24 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.8. - (OCTAVE_API_VERSION): Now api-v21. - (OCTAVE_RELEASE_DATE): Now 2006-08-24. - - 2006-08-23 John W. Eaton - - * ov.h (octave_value::save_ascii): Delete strip_nan_and_inf arg. - * ov-base.h, ov-base.cc (octave_base_value::save_ascii): Likewise. - * ov-base-int.h, ov-base-int.cc (octave_base_int_matrix::save_ascii, - octave_base_int_scalar::save_ascii, ): Likewise. - * ov-base-sparse.cc, ov-base-sparse.h - (octave_base_sparse::save_ascii): Likewise. - * ov-bool-mat.cc, ov-bool-mat.h (octave_bool_matrix::save_ascii): - Likewise. - * ov-bool.cc, ov-bool.h (octave_bool::save_ascii): Likewise. - * ov-cell.cc, ov-cell.h (octave_cell::save_ascii): Likewise. - * ov-complex.cc, ov-complex.h (octave_complex::save_ascii): Likewise. - * ov-fcn-handle.cc, ov-fcn-handle.h (octave_fcn_handle::save_ascii): - Likewise. - * ov-fcn-inline.cc, ov-fcn-inline.h (octave_fcn_inline::save_ascii): - Likewise. - * ov-list.cc, ov-list.h (octave_list::save_ascii): Likewise. - * ov-range.cc, ov-range.h (octave_range::save_ascii): Likewise. - * ov-scalar.cc, ov-scalar.h (octave_scalar::save_ascii): Likewise. - * ov-str-mat.cc, ov-str-mat.h (octave_char_matrix_str::save_ascii): - Likewise. - * ov-struct.cc, ov-struct.h (octave_struct::save_ascii): Likewise. - * ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii): Likewise. - * ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii): - Likewise. - * ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii): - Likewise. - * ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii): Likewise. - - * ls-oct-ascii.cc, ls-oct-ascii.h (save_ascii_data): - Delete strip_nan_and_inf arg. - (save_ascii_data_for_plotting): Delete strip_nan_and_inf arg from - call to save_ascii_data. - - * DLD-FUNCTIONS/__gnuplot_raw__.l (handle_using): Accept "(EXPR)" - as components of using clauses. - (enum _toktype): New element DOLLAR. - Accept "$" in lexer. - - * ls-oct-ascii.cc (save_ascii_data): Delete arg strip_nan_and_inf. - Change all uses. - - * ls-oct-ascii.h (save_three_d): Provide decl. - * load-save.h (save_ascii_data_for_plotting, save_three_d): - Delete decls. - - 2006-08-22 John W. Eaton - - * ov.h (octave_value::save_ascii): strip_nan_and_inf is now int, - not bool. - * ov-base.h, ov-base.cc (octave_base_value::save_ascii): Likewise. - * ov-base-int.h, ov-base-int.cc (octave_base_int_matrix::save_ascii, - octave_base_int_scalar::save_ascii, ): Likewise. - * ov-base-sparse.cc, ov-base-sparse.h - (octave_base_sparse::save_ascii): Likewise. - * ov-bool-mat.cc, ov-bool-mat.h (octave_bool_matrix::save_ascii): - Likewise. - * ov-bool.cc, ov-bool.h (octave_bool::save_ascii): Likewise. - * ov-cell.cc, ov-cell.h (octave_cell::save_ascii): Likewise. - * ov-complex.cc, ov-complex.h (octave_complex::save_ascii): Likewise. - * ov-fcn-handle.cc, ov-fcn-handle.h (octave_fcn_handle::save_ascii): - Likewise. - * ov-fcn-inline.cc, ov-fcn-inline.h (octave_fcn_inline::save_ascii): - Likewise. - * ov-list.cc, ov-list.h (octave_list::save_ascii): Likewise. - * ov-range.cc, ov-range.h (octave_range::save_ascii): Likewise. - * ov-scalar.cc, ov-scalar.h (octave_scalar::save_ascii): Likewise. - * ov-str-mat.cc, ov-str-mat.h (octave_char_matrix_str::save_ascii): - Likewise. - * ov-struct.cc, ov-struct.h (octave_struct::save_ascii): Likewise. - * ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii): Likewise. - * ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii): - Likewise. - - * ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii): - Don't strip Inf and NaN here. Call ComplexMatrix::save_ascii to - do the real work. - * ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii): - Don't strip Inf and NaN here. Call Matrix::save_ascii to do the - real work. - - * ov-re-mat.cc, ov-cx-mat.cc (strip_infnan): Delete. - * ls-oct-ascii.cc, ls-oct-ascii.h (save_ascii_data): - strip_nan_and_inf is now int, not bool. - (strip_infnan): Delete. - (save_ascii_data_for_plotting): Call save_ascii_data with - strip_nan_and_inf = 2. - - * Makefile.in (INCLUDES): Remove matrix.h from the list. - - 2006-08-22 David Bateman - - * sparse-xpow.cc: Replace all uses of pow by std::pow. - (elem_pow): Simplify for two sparse matrices arguments. - - 2006-08-22 John W. Eaton - - * ls-oct-ascii.cc: Increase default value of save_precision to 16. - - * ls-mat-ascii.cc (save_mat5_ascii_data): Use scientific format. - - 2006-08-21 John W. Eaton - - * ls-mat5.cc (read_mat5_binary_data, read_mat5_integer_data, - write_mat5_array): Unconditionally enable code for 64-bit int types. - - * ov-fcn-handle.cc (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): - For compatibility, set class to function_handle. - - 2006-08-18 John W. Eaton - - * pr-output.cc (set_real_matrix_format): Also always include space - for sign if values are int, inf, or nan. - (set_complex_format, set_complex_matrix_format): Always include - space for sign in real format, but never in imaginary format. - - * gripes.cc (gripe_logical_conversion): New function. - * gripes.h: Provide decl. - * ov.h (octave_value::bool_value, octave_value::bool_matrix_value, - octave_value::bool_array_value): New arg, warn. - * ov-base.cc, ov-base.h (octave_base_value::bool_value, - octave_base_value::bool_matrix_value, - octave_base_value::bool_array_value): Likewise. - * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::bool_array_value, - OCTAVE_VALUE_INT_SCALAR_T::bool_array_value): Likewise. - * ov-range.h (octave_range::bool_array_value): Likewise. - * ov-re-mat.cc, ov-re-mat.h (octave_matrix::bool_array_value): - Likewise. - * ov-re-sparse.cc, ov-re-sparse.h - (octave_sparse_matrix::bool_array_value): Likewise. - * ov-scalar.h (octave_scalar::bool_value, - octave_scalar::bool_array_value): Likewise. - * OPERATORS/op-bm-b.cc (oct_assignop_conv_and_assign): - Ask for warning from bool_array_value. - * OPERATORS/op-bm-bm.cc (oct_assignop_conv_and_assign): Likewise. - * ov-bool.h (octave_bool::bool_value, - octave_bool::bool_matrix_value, octave_bool::bool_array_value): - Likewise. - * ov-bool-mat.h (octave_bool_matrix::bool_matrix_value, - octave_bool_matrix::bool_array_value): Likewise. - * ov-bool-sparse.cc, ov-bool-sparse.h - (octave_sparse_bool_matrix::bool_matrix_value, - octave_sparse_bool_matrix::bool_array_value): Likewise. - - 2006-08-18 Benjamin Lindner - - * ls-mat5.cc (read_mat5_tag): Declare type as int32_t, not int. - (read_mat5_binary_element): Likewise, for len and element_length. - - 2006-08-18 John W. Eaton - - * load-save.h (enum load_save_format): New element, LS_MAT_ASCII_LONG. - * load-save.cc (Fload, Fsave): Make -ascii Matlab compatible. - (do_save): Handle LS_MAT_ASCII. - * ls-mat-ascii.cc (save_mat_ascii_data): New function. - * ls-mat-ascii.h: Provide decl. - - 2006-08-17 John W. Eaton - - * ls-mat5.cc (save_mat5_element_length): Correctly compute element - length for character data. Handle N-d character data - (save_mat5_binary_element): Handle N-d character data. - - 2006-08-16 John W. Eaton - - * parse.y (gobble_leading_white_space): New arg, SKIP_CODE. - Change all uses. - - 2006-08-15 John W. Eaton - - * help.cc (help_from_file): Call get_help_from_file with new file - arg. Print file info here. - - * parse.y (get_help_from_file): Delete include_file_info arg. - Provide two versions, one that returns the file found in a - reference arg and one that does not. - - * variables.cc (do_isglobal): New function. - (Fisglobal): Use it. - (Fis_global): New function. - - 2006-08-14 John W. Eaton - - * variables.cc (symbol_record_name_compare): Fix casts. - - * ov-cell.cc (octave_cell::subsasgn): Call empty_conv for 0x0 - objects, not just empty objects. - - * oct-map.h (Octave_map::clear): Also clear key_list. - - * load-path.cc (load_path::find_dir_info, load_path::do_add, - load_path::do_remove): Perform tilde expansion on directory here. - - 2006-07-29 John W. Eaton - - * matrix.h: Delete to avoid conflict with liboctave/Matrix.h on - case-insensitive filesystems. - - * version.h (OCTAVE_VERSION): Now 2.9.7+. - - 2006-07-28 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.7. - (OCTAVE_API_VERSION): Now api-v20. - (OCTAVE_RELEASE_DATE): Now 2006-07-28. - - * load-path.cc (path::do_add): Warn for trailing "//". - - * strfns.cc: Comment out some tests for snapshot. - - 2006-07-27 John W. Eaton - - * defaults.cc (Vlocal_api_arch_lib_dir): New variable. - (set_default_local_api_arch_lib_dir): New function. - (install_defaults): Call it. - (set_exec_path): Put Vlocal_api_arch_lib_dir in the list. - * toplev.cc (localapiarchlibdir): Include it in the list. - * defaults.h.in (OCTAVE_LOCALAPIARCHLIBDIR): Substitute here. - - 2006-07-26 John W. Eaton - - * mex.cc (mxArray::as_octave_value (mxArray *)): New static function. - (call_mex, mexPutVariable, mexCallMATLAB, - mxArray_cell::as_octave_value, mxArray_struct::as_octave_value): - Use static version of as_octave_value here. - (mxArray_sparse::mxArray_sparse (const mxArray_sparse&)): - Check pr, ir, and jc before calling memcpy. - (mxArray_number::mxArray_number): Check pr before calling memcpy - - * mxarray.h (mxArray::as_octave_value (mxArray *)): Provide decl. - (mxArray::as_octave_value): Now protected. - - * file-io.cc (Ffeof, Fferror): Use DEFUNX instead of DEFUN. - - * mex.cc (xfree): New function. - (mex::free): Use it. - (mxArray_struct::~mxArray_struct, mxArray_cell::~mxArray_cell): - Delete elements with delete, not mxDestroyArray. - (mex::cleanup): Don't call mex::free or mex::free_value. - (mex::free_value): Add debug warning. - (mex::mark, mex::unmark): Fix debug warning. - (call_mex): Use unwind_protect frame. - (mexUnlock): Use iterator to remove item from mex_lock_count. - - * octave.cc (maximum_braindamage): Use disable_warning instead of - bind_internal_variable to disable function-name-clash warning. - * error.cc (disable_warning): No longer static. - * error.h: Provide decl. - - 2006-07-25 David Bateman - - * mex.cc (mxArray_octave_value::get_class_id): Handle sparse. - (class mxArray_sparse): Derive from mxArray_matlab, not - mxArray_number. - (mxArray_sparse::as_octave_value): Implement function. - * ov-bool-sparse.cc (octave_sparse_bool_matrix::as_mxArray): - Implement function. - * ov-cx-sparse.cc (octave_sparse_complex_matrix::as_mxArray): - Implement function. - * ov-re-sparse.cc (octave_sparse_matrix::as_mxArray): - Implement function. - - 2006-07-25 John W. Eaton - - * mex.cc (mxArray_struct::as_octave_value, call_mex, - mexCallMATLAB, mxArray_cell::as_octave_value): - Convert NULL mxArray* pointers to empty matrix values. - (mxArray_octave_value:get_ir): Fix typo. - - 2006-07-22 John W. Eaton - - * mxarray.h: New file. - * mex.h, mexproto.h, mex.cc: New implementation of mxArray and MEX - interface. - - * ov.h (octave_value::mex_get_ir, octave_value::mex_get_jc): - New functions. - * ov-base.h (octave_base_value::mex_get_ir, - octave_base_value::mex_get_jc): New virtual functions. - * ov-base-sparse.h (octave_base_sparse::mex_get_ir, - octave_base_sparse::mex_get_jc): New functions. - - * ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::as_mxArray, - OCTAVE_VALUE_INT_MATRIX_T::as_mxArray): New functions. - * ov-int8.h, ov-int16.h, ov-int32.h, ov-int64.h, ov-uint8.h, - ov-uint16.h, ov-uint32.h, ov-uint64.h: Define OCTAVE_INT_MX_CLASS - before including ov-intx.h. Undef it after. - * ov-range.cc (octave_range::as_mxArray): New function. - * ov-range.h: Provide decl. - * ov-scalar.cc (octave_scalar::as_mxArray): New function. - * ov-scalar.h: Provide decl. - * ov-complex.cc (octave_complex::as_mxArray): New function. - * ov-complex.h: Provide decl. - * ov-re-mat.cc (octave_matrix::as_mxArray): New function. - * ov-re-mat.h: Provide decl. - * ov-cx-mat.cc (octave_complex_matrix::as_mxArray): New function. - * ov-cx-mat.h: Provide decl. - * ov-ch-mat.cc (octave_char_matrix::as_mxArray): New function. - * ov-ch-mat.h: Provide decl. - * ov-bool-mat.cc (octave_bool_matrix::as_mxArray): New function. - * ov-bool-mat.h: Provide decl. - * ov-bool.cc (octave_bool::as_mxArray): New function. - * ov-bool.h: Provide decl. - - * ov-struct.h (octave_struct::numel): New function. - - * ls-mat5.cc (arrayclasstype): Use "MAT_FILE_" instead of "mx" as - prefix for element names. - - * ov.h (octave_value::as_mxArray): New function. - * ov-base.cc (octave_base_value::as_mxArray): New function. - * ov-base.h: Provide decl. - - * ov.h (octave_value::mex_get_data): New function. - * ov-base.h (octave_base_value::mex_get_data): New function. - * ov-base-scalar.h (octave_base_scalar::mex_get_data): New function. - * ov-base-matrix.h (octave_base_matrix::mex_get_data): New function. - * ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::mex_get_data): New function. - - * ov.h (octave_value::nfields): New function. - * ov-base.cc (octave_base_value::nfields): New virtual function. - * ov-base.h: Provide decl. - * ov-struct.h (octave_struct::nfields): New function. - - 2006-07-19 John W. Eaton - - * OPERATORS/op-bm-bm.cc (oct_assignop_conv_and_assign): New function. - (install_bm_bm_ops): Install it for various types. - * OPERATORS/op-bm-b.cc (oct_assignop_conv_and_assign): New function. - (install_bm_b_ops): Install it for various types. - * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::bool_array_value, - OCTAVE_VALUE_INT_SCALAR_T::bool_array_value): New functions. - * ov-range.h (octave_range::bool_array_value): New function. - * ov-re-sparse.cc (octave_sparse_matrix::bool_array_value): - New function. - * ov-re-sparse.h: Provide decl. - * ov-re-mat.cc (octave_matrix::bool_array_value): New function. - * ov-re-mat.h: Provide decl. - - * ov-base.cc (octave_base_value::numeric_assign): - Avoid memory leak when converting LHS. - - 2006-07-18 John W. Eaton - - * ov.h (octave_value::is_int8_type, octave_value::is_int16_type, - octave_value::is_int32_type, octave_value::is_int64_type, - octave_value::is_uint8_type, octave_value::is_uint16_type, - octave_value::is_uint32_type, octave_value::is_uint64_type): - New functions. - * ov-base.h (octave_base_value::is_int8_type, - octave_base_value::is_int16_type, - octave_base_value::is_int32_type, - octave_base_value::is_int64_type, - octave_base_value::is_uint8_type, - octave_base_value::is_uint16_type, - octave_base_value::is_uint32_type, - octave_base_value::is_uint64_type): New functions. - * ov-int8.h, ov-int16.h, ov-int32.h, ov-int16.h, ov-uint8.h, - ov-uint16.h, ov-uint32.h, ov-uint16.h: Define OCTAVE_BASE_INT_T. - * ov-intx.h: Use OCTAVE_BASE_INT_T to define type-specific predicate. - - * ov.h (octave_value::is_double_type, octave_value::is_single_type): - New functions. - * ov-base.h (octave_base_value::is_double_type, - octave_base_value::is_single_type): New functions. - * ov-re-mat.h (octave_matrix::is_double_type): New function. - * ov-cx-mat.h (octave_matrix::is_double_type): New function. - * ov-scalar.h (octave_scalar::is_double_type): New function. - * ov-complex.h (octave_complex::is_double_type): New function. - * ov-range.h (octave_range::is_double_type): New function. - * ov-re-sparse.h (octave_sparse_matrix::is_double_type): New function. - * ov-cx-sparse.h (octave_sparse_complex_matrix::is_double_type): - New function. - - 2006-07-15 John W. Eaton - - * ov-typeinfo.cc: Also instantiate arrays of assignany_ops. - - * oct-errno.cc.in (octave_errno::octave_errno): VALUE field in - errno_struct no longer const. - - * DLD-FUNCTIONS/dispatch.cc (octave_dispatch::do_index_op): - Declare resize_ok arg as bool, not int. - Provide default value for resize_ok. - - 2006-07-14 John W. Eaton - - * oct-stream.cc (do_write): Include explicit instantiations. - - * ov-str-mat.h (octave_char_matrix_sq_str::resize): - Include fill arg to match base class. - * ov-struct.h (octave_struct::resize): Likewise. - - * ov-base-mat.cc, ov-base-mat.h, ov-base-sparse.cc, - ov-base-sparse.h, ov-base.cc, ov-base.h, ov-bool.cc, - ov-bool.h, ov-complex.cc, ov-complex.h, ov-intx.h, ov-list.cc, - ov-list.h, ov-range.cc, ov-range.h, ov-scalar.cc, ov-scalar.h, - ov-str-mat.cc, ov-str-mat.h, ov.h (do_index_op): - Declare resize_ok arg as bool, not int. - Provide default value for resize_ok. - - * c-file-ptr-stream.h (c_file_ptr_stream::c_file_ptr_stream): - Qualify init. - - 2006-07-13 John W. Eaton - - * oct-map.h (Octave_map::del): Add missing std:: qualifier to use - of find template. - - 2006-07-07 John W. Eaton - - * ov.h (octave_value::is_bool_scalar): New function. - * ov-base.h (octave_base_value::is_bool_scalar): New function. - * ov-bool.h (octave_bool::is_bool_scalar): New function. - - * oct-map.cc (Octave_map::keys): Use assert. - (Octave_map::assign): Avoid inserting new key in map unless - assignment to cell succeeds. - - * oct-map.h (Octave_map::del): Only touch key_list if map contains key. - Assert that key_list contains key. - - * oct-map.h (Octave_map::maybe_add_to_key_list): For efficiency, - check map, not key_list. From Paul Kienzle . - - 2006-07-06 John W. Eaton - - * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Declare mrowsc volatile. - - * ov-struct.cc (octave_struct::print_raw): Print keys in key_list - order. - - * oct-map.h (Octave_map::key_list): New data member. - (Octave_map::maybe_add_to_key_list): New function. - (Octave_map::key_list_iterator, Octave_map::const_key_list_iterator): - New typedefs. - (Octave_map::del): Also delete key from key_list. - * oct-map.cc (Octave_map::keys): Compute return value from - key_list instead of map. - (Octave_map::assign, Octave_map::contents): Call maybe_add_to_key_list. - * oct-map.h, oct-map.cc (Octave_map::Octave_map): - Insert keys in key_list. - - * oct-map.h (Octave_map::Octave_map (const dim_vector&, - const string_vector&)): New arg, key_list_arg. - * oct-map.cc: Move definition here. - - 2006-07-05 John W. Eaton - - * mex.cc (mexGetVariable): Rename from mexGetArray, swap arguments. - (mexGetVariablePtr): Rename from mexGetArrayPtr, swap arguments. - (mexErrMsgIdAndTxt, mexWarnMsgIdAndTxt): New functions. - * mexproto.h: Provide decls. - Include decls for as yet unsupported functions. - * mex.h: Add enum for class ids. - (mexGetArray): Define using mexGetVariable. - (mexGetArrayPtr): Define using mexGetVariablePtr. - - 2006-07-02 John W. Eaton - - * ov-str-mat.cc (CHAR_MATRIX_CONV): Omit "warn-" from label. - * parse.y (maybe_warn_variable_switch_label): Likewise. - - 2006-07-01 John W. Eaton - - * parse.y (finish_cell): Use finish_matrix to do constant folding. - - 2006-06-30 John W. Eaton - - * ov-base.cc (octave_base_value::numeric_assign): - Avoid memory leak when converting LHS. - - * oct-hist.cc (do_history, initialize_history, Fhistory_file): - Don't perform tilde expansion on history file name. - - * syscalls.cc (Flstat, Fstat): Don't perform tilde expansion on arg. - * input.cc (Fread_readline_init_file): Likewise. - * dirfns.cc (Fcd, Freaddir): Likewise. - - * load-path.cc (genpath): Don't perform tilde expansion on name. - (load_path::do_add): Don't warn about moving "." to front of list. - - 2006-06-28 John W. Eaton - - * load-path.cc (Faddpath): Don't treat "." specially here. - Don't check directory status here. - (Fpath): Handle all args. Don't treat "." specially here. - (Faddpath, Frmpath): Delete unused variable xpath. - (load_path::do_add): New function. - (load_path::do_prepend, load_path::do_append): Use it. - (load_path::do_remove): Really prevent removal of ".". - (load_path::do_clear): Clearing doesn't remove ".". - (load_path::append, load_path::prepend, load_path::do_append, - load_path::do_prepend): New arg, warn. - - * load-path.h: Fix decls. - - * DLD-FUNCTIONS/regexp.cc (octregexp_list): - Avoid bug in older versions of g++. - - 2006-06-27 John W. Eaton - - * Makefile.in (clean): Also remove $(DLD_OBJ). - - * sighandlers.cc (install_signal_handlers): Don't handle SIGPROF. - From Geoffrey Knauth . - - 2006-06-25 John W. Eaton - - * mk-pkg-add: Avoid apparently non-portable sed patterns. - - 2006-06-21 John W. Eaton - - * variables.cc (do_who): Handle mex. - - * symtab.cc (SYMBOL_DEF::type_as_string, SYMBOL_DEF::which, - symbol_table::clear_functions, table::clear_function, - symbol_table::clear_function_pattern): - Handle mex. - * symtab.h (symbol_record::is_mex_function, - symbol_record::symbol_def::is_mex_function): New functions. - (symbol_record::TYPE): New value, MEX_FUNCTION. - (symbol_record::is_function, symbol_table::user_function_name_list, - SYMTAB_ALL_TYPES): Handle MEX_FUNCTION. - - * ov-fcn.h (octave_function::octave_function): - Provide default for doc string arg. - - * defun.cc (install_mex_function): New function. - * defun-int.h: Provide decl. - - * ov-builtin.cc (any_arg_is_magic_colon): Delete. - (octave_builtin::do_multi_index_op): Call has_magic_colon method - for args instead of any_arg_is_magic_colon. - - * ov-base.h (octave_base_value::is_mex_function): New function. - * ov.h (octave_value::is_mex_function): New function. - - * ov-mex-fcn.h, ov-mex-fcn.cc: New files. - - * parse.y (load_fcn_from_file): Also handle .mex files. - - * dynamic-ld.cc (octave_dynamic_loader::load_oct): Rename from load. - (octave_dynamic_loader::do_load_oct): Rename from do_load. - * dynamic-ld.h: Fix decls. - - * utils.cc (mex_file_in_path): New function. - * utils.h: Provide decl. - - * variables.cc (symbol_out_of_date): Also handle mex files. - - * load-path.cc (load_path::dir_info::get_file_list, - load_path::dir_info::get_private_function_map, - load_path::do_find_fcn, load_path::add_to_fcn_map, - load_path::do_display): Also handle mex files. - * load-path.h (load_path::find_mex_file): New static function. - (load_path::MEX_FILE): New static data member. - (load_path::do_find_fcn): By default, also look for mex files. - - * matrix.h, mex.h, mex.cc: New files from Octave Forge - * mexproto.h: New file, extracted from mex.h. - * Makefile.in: Add them to the appropriate lists. - - 2006-06-20 John W. Eaton - - * ov-re-mat.cc (octave_matrix::convert_to_str_internal): - Don't lose empty dimensions on conversion to char. - - * strfns.cc (Fstrcmp): Handle comparison of cellstr and empty string. - - 2006-06-16 John W. Eaton - - * parse.y (%union): New type, anon_fcn_handle_type. - (anon_fcn_handle): Now anon_fcn_handle_type, not tree_constant_type. - (make_anon_fcn_handle): Return tree_anon_fcn_handle, not tree_constant. - - * comment-list.cc (octave_comment_list::dup): New function. - * comment-list.h: Provide decl. - - * pt-cmd.cc (tree_no_op_command::dup): New function. - * pt-cmd.h: Provide decl. - (tree_command::dup): New pure virtual function. - - * pt-loop.cc (tree_while_command::dup, tree_do_until_command::dup, - tree_simple_for_command::dup, tree_complex_for_command::dup): - New functions. - * pt-loop.h: Provide decls. - - * pt-jump.cc (tree_break_command::dup, tree_continue_command::dup, - tree_return_command::dup): New functions. - * pt-jump.h: Provide decls. - - * pt-except.cc (tree_try_catch_command::dup, - tree_unwind_protect_command::dup): New functions. - * pt-except.h: Provide decls. - - * pt-select.cc (tree_if_clause::dup, tree_if_command_list::dup, - tree_if_command::dup, tree_switch_case::dup, - tree_switch_case_list::dup, tree_switch_command::dup): - New functions. - * pt-select.h: Provide decls. - - * pt-decl.cc (tree_decl_elt::dup, tree_decl_init_list::dup, - tree_global_command::dup, tree_static_command::dup): New functions. - * pt-decl.h: Provide decls. - - * pt-exp.h (tree_expression::copy_base): New function. - (tree_expression::dup): New pure virtual function. - - * pt-fcn-handle.cc, pt-fcn-handle.h (tree_anon_fcn_handle): New class. - - * pt-fcn-handle.cc (tree_function_handle::dup): New function. - * pt-fcn-handle.h: Provide decl. - - * pt-colon.cc (tree_colon_expression::dup): New function. - * pt-colon.h: Provide decl. - (tree_colon_expression::tree_colon_expression (tree_expression *, - tree_expression *, tree_expression *, int, int)): New constructor. - - * pt-const.cc (tree_constant::dup): New function. - (tree_constant::tree_constant (const octave_value&, const - std::string&, int, int)): New constructor. - * pt-const.h: Provide decls. - - * pt-idx.cc (tree_index_expression::dup): New functoin. - (tree_index_expression::tree_index_expression (int, int)): - New constructor. - * pt-idx.h: Provide decls. - - * pt-arg-list.cc (tree_argument_list::dup): New function. - * pt-arg-list.h: Provide decl. - - * pt-id.cc (tree_identifier::dup): New function. - * pt-id.h: Provide decl. - - * pt-cell.cc (tree_cell::dup): New function. - * pt-cell.h: Provide decl. - - * pt-mat.cc (tree_matrix::dup): New function. - * pt-mat.h: Provide decl. - - * pt-assign.cc (tree_simple_assignment::dup, - tree_multi_assignment::dup): New functions. - * pt-assign.h: Provide decls. - - * pt-binop.cc (tree_binary_expression::dup, - tree_boolean_expression::dup): New functions. - * pt-binop.h: Provide decls. - - * pt-unop.cc (tree_prefix_expression::dup, - tree_postfix_expression::dup): New functions. - * pt-unop.h: Provide decls. - - * pt-stmt.cc (tree_statement::dup, tree_statement_list::dup): - New functions. - * pt-stmt.h: Provide decls. - - * pt-misc.cc (tree_parameter_list::dup, - tree_return_list::dup): New functions. - * pt-misc.h: Provide decls. - - * symtab.cc (symbol_table::dup, symbol_table::inherit, - symbol_record:is_automatic_variable): New functions. - * symtab.h: Provide decls. - (symbol_record::automatic_variable): New data member. - (symbol_record::symbol_record): Initialize it. - (symbol_record::mark_as_automatic_variable): New function. - - * pt-walk.h (tree_walker::visit_anon_fcn_handle): - New pure virtual function. - * pt-pr-code.cc (tree_print_code::visit_anon_fcn_handle): New function. - * pt-pr-code.h: Provide decl. - * pt-bp.cc (tree_breakpoint::visit_anon_fcn_handle): New function. - * pt-bp.h: Provide decl. - * pt-check.cc (tree_checker::visit_anon_fcn_handle): New function. - * pt-check.h: Provide decl. - - 2006-06-13 John W. Eaton - - * pt-stmt.cc (tree_statement_list::eval): Revise previous change - to preserve return-last-value-computed semantics. - - * DLD-FUNCTIONS/fsolve.cc (hybrd_info_to_fsolve_info): - Warn about invalid values of INFO from MINPACK instead of calling - panic_impossible. - - * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): - Don't assign values returned by evaluation of cmd_list to - temporary variable. Delete unused variable last_computed_value. - - * pt-stmt.cc (tree_statement_list::eval): - Clear retval before each statement is evaluated. - - 2006-06-12 John W. Eaton - - * unwind-prot.h (unwind_protect_fptr): New macro. - * load-path.cc (load_path::do_set): Use it instead of - unwind_protect_ptr when protecting add_hook function pointer. - * dynamic-ld.cc (octave_dynamic_loader::do_load): Use FCN_PTR_CAST - here instead of reinterpret_cast. - - 2006-06-09 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.6+. - - 2006-06-09 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.6. - (OCTAVE_API_VERSION): Now api-v19. - (OCTAVE_RELEASE_DATE): Now 2006-06-09. - - * ov-cell.cc (cell::save_hdf5): Use leading zeros to keep elements - correctly sorted in the HDF file. - From Stephen Fegan . - - 2006-06-08 John W. Eaton - - * ov-usr-fcn.cc (function::do_multi_index_op): Append contents of - varargout to ret_list before calling convert_to_const_vector. - - * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): - No need to handle all_va_args here. - - * ov-va-args.h, ov-va-args.cc: Delete files. - * Makefile.in (OV_INCLUDES, OV_SRC): Delete from the lists. - - * ov.cc (install_types): Don't register octave_all_va_args type. - * ov.h, ov.cc (octave_value::octave_value (octave_value::all_va_args)): - Delete. - * ov.h (octave_value::is_all_va_args): Delete. - (octave_value::enum all_va_args): Delete. - - * pt-pr-code.cc (tree_print_code::visit_octave_user_function_header): - Print "varargout" and "varargin" instead of "...". - - * pt-misc.h, pt-misc.cc (tree_parameter_list::convert_to_const_vector): - Arg is now const Cell& instead of tree_va_return_list*. - - * ov-usr-fcn.h, ov-usr-fcn.cc (octave_user_function::vr_list, - octave_user_function::curr_va_arg_number): - Delete variables and all uses. - (octave_function::octave_va_start, octave_function::octave_va_arg, - octave_function::octave_vr_val, octave_function::has_varargout): - Delete functions and all uses. - - * ov-fcn.h (octave_function::octave_va_start, - octave_function::octave_va_arg, octave_function::octave_vr_val, - octave_function::has_varargout): Delete. - - * ov-usr-fcn.cc (Fva_arg, Fva_start, Fvr_val): Delete. - - * lex.l ({EL}): Don't handle "..." as varargin or varargout. - * octave.gperf (all_va_args, ALL_VA_ARGS, all_va_args_kw): Delete. - * parse.y (ALL_VA_ARGS): Delete token and all uses. - - * defaults.h.in (OCTAVE_DATAROOTDIR): Substitute here. - * toplev.cc (octave_config_info): Add datarootdir to the struct. - - 2006-06-07 John W. Eaton - - * ov-cell.cc (octave_cell::subsasgn): Handle c-s list object on - RHS if last index is '{'. - * pt-assign.cc (tree_multi_assignment::rvalue): Compute all LHS - lvalues before evaluating RHS. If LHS lvalue expects more than - one output, pass octave_cs_list object to assign method. - * pt-idx.cc (tree_index_expression::lvalue): Compute expected - number of values if '{' index appears last. - * pt-arg-list.cc (tree_argument_list::lvalue_list): New function. - * pt-arg-list.h (tree_argument_list::lvalue_list): Provide decl. - * oct-lvalue.h (octave_lvalue::nel): New data member. - (octave_lvalue::numel): New functions - * oct-obj.cc (octave_value_list::has_magic_colon): New function. - * oct-obj.h (octave_value_list::has_magic_colon): Provide decl. - * pt-arg-list.cc (tree_argument_list::nargout_count): Delete function. - * pt-arg-list.h (tree_argument_list::nargout_count): Delete decl. - - 2006-06-06 John W. Eaton - - * sighandlers.cc (generic_sig_handler, sigint_handler): - Use strsignal instead of accessing sys_siglist directly. - * siglist.h: Use HAVE_DECL_SYS_SIGLIST instead of SYS_SIGLIST_DECLARED. - * siglist.c: Update sys_siglist. - (init_signals, strsignal): New functions. - * octave.cc (octave_main): Call init_signals here. - - * toplev.cc (Foctave_config_info): Delete LIBPLPLOT from struct. - - 2006-06-05 John W. Eaton - - * pt-assign.cc (Vprint_rhs_assign_val): Delete variable. - (Fprint_rhs_assign_val): Delete function. - tree_simple_assignment::rvalue, tree_multi_assignment::rvalue): - No special case for Vprint_rhs_assign_val. - - 2006-06-02 John W. Eaton - - * pt-arg-list.h (tree_argument_list::mark_as_simple_assign_lhs, - tree_argument_list::is_simple_assign_lhs): New functions. - (tree_argument_list::simple_assign_lhs): New data member. - * parse.y (assign_lhs): Classify LHS here. - (make_assign_op): Create simple or multi assign op based on - classification of LHS, not its length. - - 2006-06-01 John W. Eaton - - * Makefile.in (DLD_XSRC): Add __pchip_deriv__.cc to the list. - - 2006-06-01 David Bateman - - * DLD-FUNCTIONS/__pchip_deriv__.cc: New file. - - 2006-05-31 John W. Eaton - - * load-path.h (load_path::set_command_line_path): Make it - additive. - - 2006-05-26 John W. Eaton - - * load-path.cc (genpath, maybe_add_path_elts, Fgenpath, Frehash, - Fpath, Fpathdef): Move here from defaults.cc. - * load-path.cc, load-path.h: New files. - * Makefile.in (INCLUDES, DIST_SRC): Add them to the lists. - * help.cc (make_name_list, simple_help): Use load_path instead of - octave_fcn_file_name_cache. - (Flookfor): Use load_path instead of Vload_path_dir_path. - * octave.cc (octave_main): Likewise. - * parse.y (load_fcn_from_file): Likewise. - * utils.cc (Ffile_in_loadpath, file_in_path, fcn_file_in_path, - oct_file_in_path): Likewise. - * variables.cc (symbol_exist, symbol_out_of_date): Likewise. - * DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom): Likewise. - * utils.cc (Ffind_first_of_in_loadpath): Delete. - * input.cc (octave_gets): Call load_path::update here. - * dirfns.cc (octave_change_to_directory): Likewise. - * defaults.cc (VLOADPATH, VDEFAULT_LOADPATH, Vload_path_dir_path, - maybe_add_or_del_packages, update_load_path_dir_path, - execute_default_pkg_add_files, set_load_path): Delete. - * defaults.h.in (Vload_path_dir_path, - execute_default_pkg_add_files, maybe_add_default_load_path, - set_load_path): Delete decls. - - * fn-cache.h, fn-cache.cc: Delete. - * Makefile.in (INCLUDES, DIST_SRC): Remove them from the lists. - - * input.cc (octave_gets): Only update Vlast_prompt_time if we are - interactive and actually printing a prompt. Don't print prompt if - reading startup files or command line files. Initialize - Vlast_prompt_time to 0. - - * pr-output.cc (set_format): Always include space for sign. - - 2006-05-23 John W. Eaton - - * load-save.cc (Fsave): Use tellp instead of pubseekoff to - determine whether we are at beginning of file. - - * ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::increment, - OCTAVE_VALUE_INT_SCALAR_T::decrement, - OCTAVE_VALUE_INT_MATRIX_T::increment, - OCTAVE_VALUE_INT_MATRIX_T::decrement): New functions. - * OPERATORS/op-int.h (OCTAVE_INSTALL_M_INT_UNOPS, - OCTAVE_INSTALL_S_INT_UNOPS, OCTAVE_M_INT_UNOPS, - OCTAVE_S_INT_UNOPS): Uncomment increment and decrement ops. - - 2006-05-19 John W. Eaton - - * symtab.cc (SYMBOL_DEF::document): If definition is a function, - also pass doc string to function object. - * ov-fcn.h (octave_function::document): New function. - * defun.cc (print_usage (octave_function *)): New function. - (print_usage (void)): New function. - (print_usage (const std::string&)): Provide for backward - compatibility. Ignore arg. - (Fprint_usage): Don't accept arg. - * defun-int.h (print_usage (void)): Provide decl. - (print_usage (const std::string&)): Tag with GCC_ATTR_DEPRECATED. - - 2006-05-04 David Bateman - - * DLD-FUNCTIONS/conv2.cc: New file from Octave Forge. - * Makefile.in (DLD_XSRC): Add it to the list - - 2006-05-17 Bill Denney - - * help.cc (keywords): Improve and Texinfoize. - - 2006-05-17 John W. Eaton - - * symtab.cc (Vwhos_line_format): Show class instead of type. - (symbol_table::parse_whos_line_format): - Use 't' for "Type" and 'c' for "Class". - (symbol_record::print_symbol_info_line): Likewise. - (maybe_list_cmp_fcn): Fix casts. - - 2006-05-11 John W. Eaton - - * octave.cc (IMAGE_PATH_OPTION): New macro. - (usage_string, verbose_usage): Include --image-path option. - (long_opts): Include --image-path. - (octave_main): Handle IMAGE_PATH_OPTION. - - * toplev.cc (Foctave_config_info): Delete fcnfilepath, imagepath, - localfcnfilepath, and localoctfilepath from the struct. - * defaults.h.in (OCTAVE_FCNFILEPATH, OCTAVE_IMAGEPATH, - OCTAVE_LOCALFCNFILEPATH, OCTAVE_LOCALOCTFILEPATH): Delete variables. - - * octave.cc (octave_main): Call set_exec_path and set_load_path - instead of bind_internal_variable. - - * defaults.cc (Fpathdef): Rename from FDEFAULT_LOADPATH. - Don't allow default path to be set. - (Fpath): Rename from FLOADPATH. Make Matlab-compatible. - (update_load_path_dir_path): No need to pass VDEFAULT_LOADPATH to - dir_path constructor now. - (update_exec_path, FDEFAULT_EXEC_PATH, - set_default_default_exec_path, set_default_exec_path, - maybe_add_default_load_path): Delete functions. - (VDEFAULT_EXEC_PATH): Delete variable. - (FEXEC_PATH): Leading and trailing colons no longer special. - (set_exec_path, set_load_path, set_image_path, - maybe_add_path_elts): New functions. - (install_defaults): Call set_exec_path and set_load_path instead - of set_default_exec_path and set_default_path. Don't call - set_default_default_exec_path. Do call set_image_path. - * defaults.cc (genpath, Fgenpath): New functions. - (Vlocal_ver_oct_file_dir, Vlocal_api_oct_file_dir, - Vlocal_oct_file_dir, Vlocal_ver_fcn_file_dir, - Vlocal_api_fcn_file_dir, Vlocal_fcn_file_dir, Vimage_dir): - New variables. - (set_default_local_ver_oct_file_dir, - set_default_local_api_oct_file_dir, - set_default_local_oct_file_dir, - set_default_local_ver_fcn_file_dir, - set_default_local_api_fcn_file_dir, - set_default_local_fcn_file_dir, set_default_image_dir): - New functions. - (install_defaults): Call them. - * defaults.h.in (set_exec_path, set_load_path, set_image_path, - Vlocal_ver_oct_file_dir, Vlocal_api_oct_file_dir, - Vlocal_oct_file_dir, Vlocal_ver_fcn_file_dir, - Vlocal_api_fcn_file_dir, Vlocal_fcn_file_dir, - Vlocal_fcn_file_dir, Vimage_dir): Provide decls. - - 2006-05-10 John W. Eaton - - * ov-cell.cc (Fcellstr): Trim trailing blanks. - * Cell.h (Cell::Cell (const string_vector&)): New arg, TRIM. - - * oct-hist.cc (initialize_history, Fhistory_size): - Also call command_history::set_size here. - - * defun.cc (Fprint_usage): New function. - * help.cc (display_usage_text): New function. - - 2006-05-09 Keith Goodman - - * DLD-FUNCTIONS/rand.cc: Doc string fix. - - 2006-05-09 Jorge Barros de Abreu - - * data.cc (FInf, FNaN): Fix typo in doc string. - - 2006-05-08 John W. Eaton - - * Makefile.in (DEFUN_PATTERN): Match DEFUNX_DLD. - * mkbuiltins: Handle XDEFUNX_DLD_INTERNAL. - * mkgendoc: Likewise. - * mk-pkg-add: Likewise. Do all the matching with sed. - * defun-int.h (DEFINE_FUNX_INSTALLER_FUN, DEFINE_FUNX_INSTALLER_FUN2, - DEFINE_FUNX_INSTALLER_FUN3): New macros. - (DEFINE_FUN_INSTALLER_FUN3): Define using DEFINE_FUNX_INSTALLER_FUN3. - (DEFUNX_DLD_INTERNAL): New macro. - * defun-dld.h (DEFUNX_DLD): New macro. - - * DLD-FUNCTIONS/__gnuplot_raw__.l: Mark __gnuplot_set__ as a - command, not a rawcommand. - - * load-save.cc: No need to handle built-in variables. - * help.cc (simple_help): No need to handle built-in variables. - - * variables.cc (is_builtin_variable, builtin_string_variable, - builtin_real_scalar_variable, builtin_any_variable): - Delete functions. - (Fexist, Fdocument, do_who, Fwho, link_to_builtin_or_function): - No need to handle built-in variables. - * variables.h (is_builtin_variable, builtin_string_variable, - builtin_real_scalar_variable, builtin_any_variable): Delete decls. - - * symtab.h (symbol_record::symbol_def::is_builtin_variable, - symbol_record::is_builtin_variable): Delete. - (symbol_record::TYPE): Remove BUILTIN_VARIABLE from enum. - (symbol_record::symbol_def::is_variable, SYMTAB_ALL_TYPES, - SYMTAB_VARIABLES): No need to handle built-in variables now. - (symbol_record::define_builtin_variable, - symbol_record::link_to_builtin_variable): Delete decls. - * symtab.cc (record::define, SYMBOL_DEF::type, - SYMBOL_DEF::type_as_string): No need to handle built-in variables. - (symbol_record::define_builtin_variable): Delete. - (symbol_record::variable_reference): No need to attemp to link to - built-in variable. - - * utils.cc (check_preference, warn_old_style_preference): Delete. - * utils.h (check_preference): Delete decl. - - * defun-int.h: Delete all DEFVAR macros. - - * Makefile.in, mkbuiltins: No need for VAR_FILES. - - * parse.y (current_script_file_name): Delete all uses. - (clear_current_script_file_name): Delete function. - - * variables.cc (symbols_of_variables): Delete DEFVAR and function. - (bind_ans): Lookup ans in curr_sym_tab, not fbi_sym_tab. - SR is no longer static, so we insert value in local scope. - - * defun.cc (bind_builtin_variable): Delete function. - * defun-int.h: Delete decl. - - * defaults.cc (fftw_wisdom_program): Rename from fftw_wisdom_prog. - Change all uses. - (VDEFAULT_LOADPATH): Rename from Vdefault_load_path. Change all uses. - (VLOADPATH): Rename from Vload_path. Change all uses. - (VDEFAULT_EXECPATH): Rename from Vdefault_exec_path. Change all uses. - (VEXECPATH): Rename from Vexec_path. Change all uses. - (VEDITOR): Rename from Veditor. Change all uses. - (Ffftw_wisdom_program, FDEFAULT_LOADPATH, FLOADPATH, - FDEFAULT_EXEC_PATH, FEXEC_PATH, FEDITOR, FIMAGEPATH): New functions. - (fftw_wisdom_program, default_load_path, loadpath, - default_exec_path, exec_path, editor, image_path): Delete functions. - (symbols_of_defaults): Delete DEFVARs and function. - - * pr-output.cc (set_output_prec_and_fw): Set Voutput_precision and - Voutput_max_field_width directly instead of calling - bind_builtin_variable. - - * octave.cc (octave_main, maximum_braindamage): - Call bind_internal_variable instead of bind_builtin_variable. - - * pager.cc (Fmore): Set Vpage_screen_output directly instead of - calling bind_builtin_variable. - - * error.cc (Fwarning): Set Vdebug_on_warning directly instead of - calling bind_builtin_variable. - - * error.cc (initialize_warning_options): Now static. - (disable_warning, initialize_default_warning_state): New functions. - - * error.h (initialize_warning_options): Delete decl. - (initialize_default_warning_state): Provide decl. - * octave.cc (octave_main): Call initialize_default_warning_state - instead initialize_warning_options. - - * lex.l (warn_matlab_incompatible, warn_separator_insert, - warn_single_quote_string): Delete functions. - (symbols_of_lex): Delete DEFVARS. - (Vwarn_matlab_incompatible, Vwarn_separator_insert, - Vwarn_single_quote_string): Delete variables. - (maybe_warn_separator_insert, gripe_single_quote_string, - gripe_matlab_incompatible): Call warning_with_id instead of warning. - - * variables.h (SET_NONEMPTY_INTERNAL_STRING_VARIABLE, - SET_INTERNAL_VARIABLE_WITH_LIMITS): New macros. - - * ls-oct-ascii.cc (Fsave_precision): New function. - (save_precision): Delete function. - (symbols_of_ls_oct_ascii): Delete DEFVAR and function. - - * oct-hist.cc (initialize_history): New function. - * oct-hist.h: Provide decl. - * octave.cc (octave_main): Call initialize_history instead of - command_history::read. - - * oct-hist.cc (Fhistory_size, Fhistory_file, - Fhistory_timestamp_format_string, Fsaving_history): New functions. - (history_size, history_file, history_timestamp_format_string, - saving_history): Delete functions. - (symbols_of_oct_hist): Delete DEFVARs and function. - - * pt-mat.cc (Fstring_fill_char): New function. - (string_fill_char): Delete function. - (symbols_of_pt_mat): Delete DEFVAR and function. - - * variables.cc (Fignore_function_time_stamp, ans): New functions. - (ignore_function_time_stamp): Delete function. - (symbols_of_variables): Delete DEFVARs and function. - - * oct-procbuf.cc: (Vkluge_procbuf_delay): Delete variable. - (octave_procbuf::open): Never delay after fork. - (kluge_procbuf_delay): Delete function. - (symbols_of_oct_procbuf): Delete DEFVAR and function. - - * dirfns.cc (Fconfirm_recursive_rmdir): New function. - (confirm_recursive_rmdir): Delete function. - (symbols_of_dirfns): Delete DEFVAR and function. - - * error.cc (initialize_warning_options): Now extern. - Rename from init_warning_options. - * error.h: Provide decl. - * octave.cc (octave_main): Call it here. - - * error.cc (Fbeep_on_error, Fdebug_on_error, Fdebug_on_warning): - New functions. - (beep_on_error, debug_on_error, debug_on_warning): Delete Functions. - (symbols_of_error): Delete DEFVARs and function. - - * help.cc (Finfo_file, Finfo_program, Fmakeinfo_program, - Fsuppress_verbose_help_message): New function. - (info_file, info_program, makeinfo_program, - suppress_verbose_help_message): Delete function. - (symbols_of_help): Delete DEFVARs and function. - (Vinfo_program): Rename from Vinfo_prog. Change all uses. - - * input.cc (FPS1, FPS2, FPS4, Fcompletion_append_char, - Fecho_executing_commands): New functions. - (ps1, ps2, ps4, completion_append_char, echo_executing_commands): - Delete functions. - (symbols_of_input): Delete DEFVARs and function. - (VPS1, VPS2, VPS4): Rename from Vps1, Vps2, Vps4. Change all uses. - (Fecho): Set Vecho_executing_commands directly. - - * load-save.cc (crash_dumps_octave_core, Fdefault_save_options, - Foctave_core_file_limit, Foctave_core_file_name, - Foctave_core_file_options, Fsave_header_format_string): - New functions. - (crash_dumps_octave_core, default_save_options, - octave_core_file_limit, octave_core_file_name, - octave_core_file_options, save_header_format_string): - Delete functions. - (symbols_of_load_save): Delete DEFVARs and function. - - * ov-base.cc (Fprint_answer_id_name, Fsilent_functions): New functions. - (print_answer_id_name, silent_functions): Delete functions. - (symbols_of_ov_base): Delete DEFVARs and function. - - * ov-usr-fcn.cc (Fmax_recursion_depth): New function. - (max_recursion_depth): Delete function. - (symbols_of_ov_usr_fcn): Delete DEFVAR for max_recursion_depth. - Delete function. - - * pager.cc (Fpage_output_immediately, Fpage_screen_output, FPAGER): - New functions. - (page_output_immediately, page_screen_output, pager_binary): - Delete functions. - (symbols_of_pager): Delete DEFVARs and function. - (VPAGER): Rename from Vpager_binary. Change all uses. - - * pr-output.cc (Ffixed_point_format, Fprint_empty_dimensions, - Fsplit_long_rows, Foutput_max_field_width, Foutput_precision, - Fstruct_levels_to_print): New functions. - (fixed_point_format, print_empty_dimensions, split_long_rows, - output_max_field_width, output_precision, struct_levels_to_print): - Delete functions. - (symbols_of_pr_output): Delete DEFVARs and function. - - * pt-assign.cc (Fprint_rhs_assign_val): New function. - (print_rhs_assign_val): Delete function. - (symbols_of_pt_assign): Delete DEFVAR. Delete function. - - * sighandlers.cc (Fdebug_on_interrupt, Fsighup_dumps_octave_core, - Fsigterm_dumps_octave_core): New functions. - (debug_on_interrupt, sighup_dumps_octave_core, - sigterm_dumps_octave_core): Delete functions. - (symbols_of_sighanlders): Delete DEFVARs. Delete function. - - * symtab.cc (Vdebug_symtab_lookups): Now bool. - (Fdebug_symtab_lookups, Fwhos_line_format, - Fvariables_can_hide_functions): New functions. - (debug_symtab_lookups, whos_line_format, - variables_can_hide_functions): Delete functions. - (symbols_of_symtab): Delete DEFVARs and function. - - 2006-05-04 David Bateman - - * DLD-FUNCTIONS/sqqr (Fdmperm): Allow compilation with versions - v2.0.0 of CXSparse or later. - - 2006-05-04 John W. Eaton - - * variables.cc (set_internal_variable): Move here from - DLD-FUNCTIONS/__gnuplot_raw__.l. - * variables.h (SET_INTERNAL_VARIABLE): Likewise. - (set_internal_variable): Provide decls. - - * DLD-FUNCTIONS/__gnuplot_raw__.l: Convert all DEFVARs to DEFUN_DLDs. - (gnuplot::init): Delete. - (gnuplot::gnuplot): Don't call init here. - (set_internal_variable): New functions. - (SET_INTERNAL_VARIABLE): New macro. - - * Makefile.in: Undo changes of 2006-03-16. - * DLD-FUNCTINS/__gnuplot_raw__.l: Move here from __gnuplot_raw__.l. - Undo changes of 2006-03-16. - - 2006-05-03 David Bateman - - * ov-base-mat.h: Add caching of matrix type, and code to supply - and copy matrix type. - * ov-bool-mat.h: Add caching to constructor. - * ov-re-mat.h: ditto. - * ov-cx-mat.h: ditto. - * ov.cc: Add to the BoolMatrix, Matrix and the ComplexMatrix - octave_value constructors, the ability to specify the matrix type. - * ov.h: Adapt declaration of above constructors. - (MatrixType matrix_type(void) const, MatrixType matrix_type (const - MatrixType&)): New functions for probing and setting matrix type. - * ov-base.cc (virtual MatrixType matrix_type(void) const, virtual - MatrixType matrix_type (const MatrixType&)): New default functions - for probing and setting matrix type. - * ov-base.h (virtual MatrixType matrix_type(void) const, virtual - MatrixType matrix_type (const MatrixType&)): Declarations. - * ov-base-sparse.h: Replace all uses of SparseType with - MatrixType. Replace sparse_type function with matrix_type function. - * ov-bool-sparse.h: Replace all uses of SparseType with MatrixType. - * ov-cx-sparse.h: ditto. - * ov-re-sparse.h: ditto. - * sparse-xdiv.cc: ditto. - * sparse-xdiv.h: ditto. - * sparse-xpow.cc: ditto. - * DLD-FUNCTIONS/luinc.cc: ditto. - * DLD-FUNCTIONS/splu.cc: ditto. - * xdiv.cc (xdiv, xleftdiv): Pass the matrix type, simplfy since - the matrix solve function now calls lssolve if singular. - * xdiv.h (xdvi, xleftdiv): Update the declarations - * OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, - OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, - OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, - OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-m.cc, - OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc, - OPERATORS/op-m-m.cc, OPERATORS/op-m-s.cc, - OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, - OPERATORS/op-s-cm.cc, OPERATORS/op-s-m.cc, - OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-m.cc, - OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-m.cc: Update use of - xdiv and xleftdiv functions to allow matrix type caching. - * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Update to allow typing - of Matrix, and ComplexMatrix types. Add new test code for this. - - * DLD-FUNCTIONS/cellfun.cc (Fmat2cell): new function. - - * DLD-FUNCTIONS/regexp.cc (class regexp_elem): New class to store - matched element in a std::list. - (octregexp_list): Take algorithm from octregexp and construct a - list of matches. - (octregexp): Rewrite to use linked list of matches. - (Fregexprep): New function, working directly in linked list of - matches. - - 2006-05-02 John W. Eaton - - * lex.l ({CCHAR}): Exit rawcommand mode if returning '\n' token. - - 2006-05-02 David Bateman - - * DLD-FUNCTIONS/rand.cc (do_rand): Require real scalar for seed. - - 2006-05-01 John W. Eaton - - * error.h (Vwarning_option): Delete. - * variables.cc (looks_like_struct): Remove use from commented code. - - * gripes.cc, gripes.h (gripe_implicit_conversion): New arg, ID. - Change all uses. - - * defaults.cc (set_local_site_defaults_file, set_site_defaults_file): - Allow filenames to be set from the environment. - - * oct-map.cc (octave_map::resize): No longer const. - * ov-struct.h (octave_struct::resize): Deal with it. - - * octave.cc (initialize_error_handlers): Also call - set_liboctave_warning_with_id_handler. - (execute_startup_files): Check that home_rc is not an empty string. - (F__version_info__): Resize vinfo before assigining elements. - - * ov-base.cc (warn_num_to_str, warn_resize_on_range_error): - Delete functions. - (symbols_of_ov_base): Delete DEFVARS. - (Vwarn_num_to_str, Vwarn_resize_on_range_error): Delete variables. - (value::convert_to_str): Check state of warning ID - Octave:num-to-str instead of using Vwarn_num_to_str. - * OPERATORS/op-chm.cc: Likewise. - * ov-base.h (Vwarn_num_to_str, Vwarn_resize_on_range_error): - Delete decls. - - * ov-list.cc (octave_list::assign): Call warning_with_id instead - of warning. - - * parse.y (warn_assign_as_truth_value, warn_associativity_change, - warn_function_name_clash, warn_future_time_stamp, - warn_missing_semicolon, warn_precedence_change, - warn_variable_switch_label, symbols_of_parse): - Delete DEFVARs and functions. - (Vwarn_assign_as_truth_value, Vwarn_associativity_change, - Vwarn_function_name_clash, Vwarn_future_time_stamp, - Vwarn_missing_semicolon, Vwarn_precedence_change, - Vwarn_variable_switch_label): Delete variables. - * parse.h (Vwarn_future_time_stamp): Delete decl. - * parse.y (fold): Check state of warning ID - Octave:associativity-change and Octave:precedence-change instead - of using Vwarn_associativity_change and Vwarn_precedence_change. - (maybe_warn_associativity_change, maybe_warn_missing_semi, - maybe_warn_assign_as_truth_value, make_binary_op, make_boolean_op, - frob_function): Call warning_with_id instead of warning. - * dynamic-ld.cc (octave_dynamic_loader::do_load): Likewise. - - * ov.cc (warn_fortran_indexing, warn_imag_to_real, symbols_of_ov): - Delete DEFVARs and functions. - (Vwarn_fortran_indexing, Vwarn_imag_to_real): Delete variables. - - * ov.cc (octave_value::vector_value, octave_value::int_vector_value, - octave_value::complex_vector_value): Check state of warning ID - Octave:fortran-indexing instead of using Vwarn_fortran_indexing. - * ov-cx-sparse.cc (octave_sparse_complex_matrix::double_value, - octave_sparse_complex_matrix::complex_value): Likewise. - * ov-cx-mat.cc (octave_complex_matrix::matrix_value, - octave_complex_matrix::complex_value): Likewise. - * ov-re-mat.cc (octave_matrix::complex_value, - octave_matrix::double_value): Likewise. - * ov-streamoff.cc (octave_streamoff::streamoff_value): Likewise. - * ov-re-sparse.cc (octave_sparse_matrix::complex_value, - octave_sparse_matrix::double_value): Likewise. - * ov-range.cc (octave_range::complex_value, - octave_range::double_value): Likewise. - * ov-ch-mat.cc (octave_char_matrix::complex_value, - octave_char_matrix::double_value): Likewise. - * ov-bool-sparse.cc (octave_sparse_bool_matrix::complex_value, - octave_sparse_bool_matrix::double_value): Likewise. - * ov-bool-mat.cc (octave_bool_matrix::complex_value, - octave_bool_matrix::double_value): Likewise. - - * ov-cx-sparse.cc (octave_sparse_complex_matrix::double_value, - octave_sparse_complex_matrix::matrix_value, - octave_sparse_complex_matrix::sparse_matrix_value): Check state of - warning ID Octave:imag-to-real instead of using Vwarn_imag_to_real. - * ov-cx-mat.cc (octave_complex_matrix::double_value, - octave_complex_matrix::matrix_value, - octave_complex_matrix::complex_value, - octave_complex_matrix::sparse_matrix_value): Likewise. - * ov-complex.cc (octave_complex::double_value, - octave_complex::matrix_value, octave_complex::array_value): Likewise. - - * ov.h (Vwarn_fortran_indexing, Vwarn_imag_to_real): Delete decls. - - * pt-mat.cc (warn_empty_list_elements, warn_string_concat): - Delete functions. - (symbols_of_pt_mat): Delete DEFVARs. - (Vwarn_empty_list_elements, Vwarn_string_concat): Delete variables. - (tm_row_const::tm_row_const_rep::eval_warning, tm_const::init, - maybe_warn_string_concat): Call warning_with_id instead of warning. - - * ov-str-mat.cc (warn_str_to_num, symbols_of_ov_str_mat): - Delete DEFVAR and functions. - (Vwarn_str_to_num): Delete variable. - (CHAR_MATRIX_CONV): Call warning_with_id instead of warning. - - * utils.cc (warn_neg_dim_as_zero, symbols_of_utils): - Delete DEFVAR and functions. - (Vwarn_neg_dim_as_zero): Delete variable. - (check_dimensions): Call warning_with_id instead of warning. - - * pt-misc.cc (warn_undefined_return_values, symbols_of_pt_misc): - Delete DEFVAR and functions. - (Vwarn_undefined_return_values): Delete variable. - (tree_parameter_list::initialize_undefined_elements): - Call warning_with_id instead of warning. - - * dynamic-ld.cc (warn_reload_forces_clear, symbols_of_dynamic_ld): - Delete DEFVAR and functions. - (Vwarn_reload_forces_clear): Delete variable. - (do_clear_function, octave_dynamic_loader::do_load): - Call warning_with_id instead of warning. - * error.cc (warning_enabled): Now extern. - (Fwarning): If specific id is not found, return state of "all". - - * error.h: Provide decl. - - * gripes.cc (warn_divide_by_zero, symbols_of_gripes): - Delete DEFVAR and functions. - (gripe_divide_by_zero): Check whether warning is enabled, then - call warning_with_id instead of warning. - (Vwarn_divide_by_zero): Delete variable. - - 2006-04-27 John W. Eaton - - * variables.cc (Fexist): Fix doc string. - - * help.cc (simple_help): No need to handle built-in constants now. - * variables.cc (do_who): Likewise. - (symbol_exist): Likewise. - (link_to_builtin_or_function): Likewise. - * symtab.cc (SYMBOL_DEF::type_as_string): Likewise. - (record::read_only_error): Likewise. - (SYMBOL_DEF::type): Likewise. - (record::variable_reference): Likewise. - (symbol_record::define_builtin_const): Delete function. - - * symtab.h (symbol_record::define_builtin_const): Delete decl. - (symbol_record::symbol_def::is_constant): Delete function. - (symbol_record::symbol_def::is_builtin_constant): Delete function. - (symbol_record::symbol_def::is_constant): Delete function. - (symbol_record::is_builtin_constant): Delete function. - (SYMTAB_ALL_TYPES): No need to handle builtin-constants now. - (symbol_record::TYPE): Remove BUILTIN_CONSTANT from enum. - - * defun.cc (install_builtin_constant): Delete function. - * defun-int.h (install_builtin_constant): Delete decl. - - * variables.cc (bind_builtin_constant): Delete function. - * variables.h (bind_builtin_constant): Delete decl. - - * defun-int.h (DEFCONST, DEFCONSTX, DEFCONST_INTERNAL, - DEFCONSTX_INTERNAL): Delete definitions. - - * sighandlers.cc (FSIG): New function to replace DEFCONST in - symbols_of_sighandlers. - - * octave.cc (intern_argv): Set octave_argv instead of calling - bind_builtin_variable here. - (Fargv, Fprogram_invocation_name, Fprogram_name): New functions to - replace DEFCONSTs in symbols_of_toplvev in toplev.cc. - (octave_program_invocation_name, octave_program_name): - New static variables. - (execute_command_line_file): Use unwind_protect_str to protect - octave_program_invocation_name, octave_program_name instead of - using a restore function. - (restore_program_name): Delete. - - * defaults.cc (FOCTAVE_HOME): New function to replace DEFCONST in - symbols_of_defaults. - - 2006-04-27 David Bateman - - * DLD-FUNCTIONS/regexp.cc (octregexp): Fix for infinite loop in - regexp. Include news regexp arguments, and associated tests. - - 2006-04-26 John W. Eaton - - * oct-stream.cc: Also instantiate do_read functions for boolNDArray. - - 2006-04-26 Bill Denney - - * pager.cc (Fterminal_size): Add list_in_columns to @seealso. - - 2006-04-26 John W. Eaton - - * dirfns.cc (Ffilesep): New function to replace DEFCONST in - symbols_of_dirfns. - (Fpathsep): New function. - - * defaults.cc (set_default_default_exec_path): Use - dir_path::path_sep_str instead of std::string (SEPCHAR_STR). - (set_default_exec_path): Likewise. - (set_default_path): Likewise. - (maybe_add_default_load_path): Likewise. Use dir_path::is_path_sep. - - 2006-04-18 John W. Eaton - - * DLD-FUNCTIONS/regexp.cc: Include , for transform decl. - - * DLD-FUNCTIONS/ccolamd.cc (Fccolamd, Fcsymamd): - Always return something. - - * sighandlers.cc (octave_set_signal_handler, - octave_set_interrupt_handler): New arg, restart_syscalls, with - default value true. - * sighandlers.h: Fix decls to match. - * sysdep.cc (octave_kbhit): Disable restarting of system calls. - - * help.cc (Flookfor): Add std qualifier to transform function. - Include , for transform decl. - - 2006-04-16 John W. Eaton - - * pager.h (octave_diary_buf, octave_pager_buf): Use std:stringbuf - directly. - - * ls-mat-ascii.cc (read_mat_ascii_data): Use std::istringstream - directly. - * load-save.cc (parse_save_options): Likewise. - * ls-mat5.cc (read_mat5_binary_element): Likewise. - * oct-strstrm.h (octave_istrstream::is): Likewise. - - * __gnuplot_raw__.l (printrange, handle_using, gnuplot::do_open, - gnuplot::do_set, gnuplot::do_show, gnuplot::makeplot, - gnuplot::handle_title): Use std::ostringstream directly. - * toplev.cc (run_command_and_return_output): Likewise. - * symtab.h (symbol_table::symbol_table): Likewise. - * strfns.cc (Flist_in_columns): Likewise. - * pt.cc (tree::str_print_code): Likewise. - * parse.y (yyerror, fold, finish_matrix): Likewise. - * pr-output.cc (PRINT_ND_ARRAY, octave_print_internal, Fdisp): - Likewise. - * symtab.cc (symbol_table::print_descriptor): Likewise. - * ov-list.cc (octave_list::print_raw, octave_list::save_ascii, - octave_list::save_binary, octave_list::save_hdf5): Likewise. - * ov-fcn-inline.cc (octave_fcn_inline::octave_fcn_inline, - octave_fcn_inline::load_ascii, octave_fcn_inline::print_raw, - Finline): Likewise. - * ov-fcn-handle.cc (octave_fcn_handle::load_ascii, - octave_fcn_handle::save_binary, octave_fcn_handle::save_hdf5): - Likewise. - * ov-cs-list.cc (octave_cs_list::print_raw): Likewise. - * ov-cell.cc (octave_cell::print_raw, octave_cell::save_hdf5): - Likewise. - * oct-strstrm.h (octave_ostrstream::os, octave_ostrstream::str): - Likewise. - * oct-stream.h (scanf_format_list::buf, printf_format_list::buf): - Likewise. - * oct-stream.cc (scanf_format_list::scanf_format_list, - printf_format_list::printf_format_list, - octave_base_stream::do_gets, BEGIN_CHAR_CLASS_CONVERSION, - octave_stream_list::do_list_open_files): Likewise. - * ls-oct-ascii.h (extract_keyword): Likewise. - * load-save.cc (do_load): Likewise. - * lex.l (have_continuation, handle_string): Likewise. - * input.cc (get_user_input): Likewise. - * dirfns.cc (Fls): Likewise. - * error.cc (error_message_buffer, vwarning, verror, pr_where): - Likewise. - * defun.cc (print_usage): Likewise. - * help.cc (display_help_text, Ftype, first_help_sentence): - Likewise. - * ls-mat5.cc (save_mat5_binary_element): Likewise. - * DLD-FUNCTIONS/regexp.cc (octregexp): Likewise. - * DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom): Likewise. - - 2006-04-13 John W. Eaton - - * Makefile.in (lex.o parse.o __gnuplot_raw__.o, pic/parse.o - pic/__gnuplot_raw__.o): Omit -Wold-style-cast from CXXFLAGS. - - * ls-mat5.cc (READ_INTEGER_DATA): Allocate local buffer to avoid - pointer tricks. - - * DLD-FUNCTIONS/regexp.cc (octregexp): Use OCTAVE_LOCAL_BUFFER - instead of allocting memory with malloc. - - * DLD-FUNCTIONS/sparse.cc (Fsparse): Use octave_value extractors - instead of using get_rep. - - * DLD-FUNCTIONS/dispatch.cc (dispatch_record): Use dynamic_cast, - not reinterpret_cast. - - * DLD-FUNCTIONS/besselj.cc (Fairy): Use int_value instead of - double_value and cast to extract kind arg. - (int_arrayN_to_array): Arg is ArrayN, not ArrayN. - - * OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, - OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, - OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, - OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc, - OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc, - OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc, - OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc, - OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc, - OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc, - OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc: No need to cast - away const just to cache sparse type. - * ov-base-sparse.h (octave_base_sparse::typ): Now mutable. - (octave_base_sparse::sparse_type): Now const. - - * OPERATORS/op-cm-scm.cc (DEFBINOP(div)): Explicitly cast args - here instead of using CAST_BINOP_ARGS. - - * OPERATORS/op-streamoff.cc (STREAMOFF_COMP_OP): Second arg to - CAST_BINOP_ARGS is also const. - - * DLD-FUNCTIONS/chol.cc (Fcholinv, Fchol2inv): Eliminate nargout - arg to avoid unused variable warnings. - - * unwind-prot.h, unwind-prot.cc (unwind_protect::save_bool, - unwind_protect::save_int, unwind_protect::save_str, - unwind_protect::save_ptr, unwind_protect::save_var): - Pointer args now const. - (unwind_protect_const_ptr): New macro. - - * symtab.cc (maybe_list_cmp_fcn): Use static_cast instead of X_CAST. - * variables.cc (symbol_record_name_compare): Likewise. - * ls-mat5.cc (MAT5_DO_WRITE, save_mat5_binary_element): Likewise. - - * ov-fcn-handle.cc (octave_fcn_handle::save_hdf5, - octave_fcn_handle::load_hdf5): Eliminate unnecessary casts. - * ov-fcn-inline.cc (octave_fcn_inline::save_hdf5, - octave_fcn_inline::load_hdf5): Likewise. - * ov-str-mat.cc (octave_char_matrix_str::save_hdf5, - octave_char_matrix_str::load_hdf5): Likewise. - * ov-bool-sparse.cc (octave_sparse_bool_matrix::save_hdf5, - octave_sparse_bool_matrix::load_hdf5): Likewise. - * ov-cx-sparse.cc (octave_sparse_complex_matrix::save_hdf5, - octave_sparse_complex_matrix::load_hdf5): Likewise. - * ov-re-sparse.cc (octave_sparse_matrix::save_hdf5, - octave_sparse_matrix::load_hdf5): Likewise. - * ov-str-mat.cc (octave_char_matrix_str::save_ascii, - octave_char_matrix_str::load_ascii): Likewise. - * mappers.cc (xtoascii): Likewise. - * load-save.cc (read_binary_file_header, write_header): Likewise. - * parse.y (get_help_from_file, parse_fcn_file): Likewise. - * DLD-FUNCTIONS/rand.cc (do_rand): Likewise. - * ls-hdf5.cc (read_hdf5_data, hdf5_add_attr, save_hdf5_empty, - load_hdf5_empty add_hdf5_data): Likewise. - * ls-mat4.cc (read_mat_binary_data): Likewise. - * ls-mat5.cc (read_mat5_binary_element): Likewise. - - * oct-stream.cc (expand_char_class, octave_base_stream::do_gets): - Use static_cast instead of C-style cast. - * oct-procbuf.cc (kluge_procbuf_delay): Likewise. - * parse.y (gobble_leading_white_space,: Likewise. - * DLD-FUNCTIONS/besselj.cc (int_array2_to_matrix, - int_arrayN_to_array): Likewise. - * DLD-FUNCTIONS/colamd.cc (Fcolamd, Fsymamd): Likewise. - * DLD-FUNCTIONS/ccolamd.cc (Fcsymamd): Likewise. - * pt-pr-code.cc (tree_print_code::print_comment_elt): Likewise. - * DLD-FUNCTIONS/besselj.cc (do_bessel): Likewise. - * DLD-FUNCTIONS/spchol.cc (Fsymfact): Likewise. - * DLD-FUNCTIONS/sparse.cc (sparse_find): Likewise. - * DLD-FUNCTIONS/sort.cc (FloatFlip): Likewise. - * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Likewise. - * ls-mat5.cc (read_mat5_binary_element, OCTAVE_MAT5_INTEGER_READ, - read_mat5_binary_element, save_mat5_binary_element): Likewise. - - * DLD-FUNCTIONS/splu.cc (Fspinv): Use dynamic_cast instead of - C-style cast. - * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Likewise. - - * DLD-FUNCTIONS/sort.cc (mx_sort): Use reinterpret_cast instead of - C-style cast. - * ls-mat5.cc (write_mat5_tag): Likewise. - - * ov-typeinfo.h (octave_value_typeinfo::octave_value_typeinfo): - Eliminate unnecessary casts in constructor initializers. - - * ops.h (CAST_CONV_ARG, CAST_UNOP_ARG, CAST_BINOP_ARGS, - DEFASSIGNANYOP_FN): Use C++ dynamic_cast instead of DYNAMIC_CAST macro. - - * unwind-prot.h (unwind_protect_ptr): Use combination of - reinterpret_cast and const_cast instead of X_CAST. - - * dynamic-ld.cc (loader::do_load): Use reinterpret_cast instead of - X_CAST. - * ov-base-int.cc (octave_base_int_matrix::save_binary, - octave_base_int_matrix::load_binary, - octave_base_int_scalar::save_binary, - octave_base_int_scalar::load_binary): Likewise. - * ov-bool-mat.cc (octave_bool_matrix::save_binary, - octave_bool_matrix::load_binary): Likewise. - * ov-bool-sparse.cc (octave_sparse_bool_matrix::save_binary, - octave_sparse_bool_matrix::load_binary): Likewise. - * ov-bool.cc (octave_bool::save_binary, octave_bool::load_binary): - Likewise. - * ov-cell.cc (octave_cell::save_binary, octave_cell::load_binary): - Likewise. - * ov-complex.cc (octave_complex::save_binary, - octave_complex::load_binary): Likewise. - * ov-cx-mat.cc (octave_matrix::save_binary, - octave_matrix::load_binary): Likewise. - * ov-cx-sparse.cc (octave_sparse_complex_matrix::save_binary, - octave_sparse_complex_matrix::load_binary): Likewise. - * ov-fcn-handle.cc (octave_fcn_handle::save_binary, - octave_fcn_handle::load_binary): Likewise. - * ov-fcn-inline.cc (octave_fcn_inline::save_binary, - octave_fcn_inline::load_binary): Likewise. - * ov-list.cc (octave_list::save_binary, octave_list::load_binary): - Likewise. - * ov-range.cc (octave_range::save_binary, octave_range::load_binary): - Likewise. - * ov-re-mat.cc (octave_matrix::save_binary, - octave_matrix::load_binary): Likewise. - * ov-re-sparse.cc (octave_sparse_matrix::save_binary, - octave_sparse_matrix::load_binary): Likewise. - * ov-scalar.cc (octave_scalar::save_binary, - octave_scalar::load_binary): Likewise. - * ov-str-mat.cc (octave_char_matrix_str::save_binary, - (octave_char_matrix_str::load_binary): Likewise. - * ov-struct.cc (octave_struct::save_binary, - octave_struct::load_binary): Likewise. - * ls-oct-binary.cc (save_binary_data, read_binary_data): Likewise. - * ls-mat4.cc (read_mat_file_header, save_mat_binary_data): Likewise. - * ls-mat5.cc (read_mat5_tag, read_mat5_binary_element, - read_mat5_binary_element, read_mat5_binary_file_header, - MAT5_DO_WRITE, write_mat5_array, write_mat5_integer_data, - save_mat5_binary_element, READ_INTEGER_DATA): Likewise. - - 2006-04-12 John W. Eaton - - * ov.h (OV_REP_TYPE): New macro. - - * DLD-FUNCTIONS/sparse.cc (MINMAX_BODY): No need to cast arg1 to - const octave_sparse_matrix&. - - * ov-base.cc (print_answer_id_name, warn_resize_on_range_error, - warn_num_to_str, silent_functions): Move here, from ov.cc. - (Vwarn_resize_on_range_error, Vsilent_functions): Likewise. - (Vprint_answer_id_name): Likewise. Now static. - (symbols_of_ov_base): New function. Move DEFVARs for - print_answer_id_name, warn_resize_on_range_error, warn_num_to_str, - and silent_functions here from symbols_of_ov in ov.cc. - * ov.h (Vprint_answer_id_name): Delete decl. - * ov-base.h (Vwarn_resize_on_range_error, Vwarn_num_to_str): - Move decls here from ov.h. - - * ov-str-mat.cc (warn_str_to_num): Move here, from ov.cc. - (Vwarn_str_to_num): Likewise. Now static. - (symbols_of_ov_str_mat): New function. Move DEFVAR for - warn_str_to_num here from symbols_of_ov in ov.cc. - * ov.h (Vwarn_str_to_num): Delete decl. - - * ov-struct.cc (octave_struct::load_ascii): Pass loop counter, not - count, to read_ascii. - * ov-list.cc (octave_list::load_ascii): Likewise. - - * ov-list.cc (octave_list::do_index_op): Allow index to extract - multiple items. Result is always a list. - - * pr-output.cc (struct_levels_to_print): Move here from ov.cc. - (Vstruct-levels_to_print): Likewise. - (symbols_of_pr_output): Move DEFVAR for struct_levels_to_print here - from symbols_of_ov in ov.cc. - * pr-output.h (Vstruct_levels_to_print): Nove decl here from ov.h. - - * gripes.cc (warn_divide_by_zero): Move here from ov.cc. - (Vwarn_divide_by_zero): Likewise. Now static. - (symbols_of_gripes): New function. Move DEFVAR for - warn_divide_by_zero here from symbols_of_ov in ov.cc. - * ov.h (Vwarn_divide_by_zero): Delete decl. - - * load-save.cc (do_load): Declare count octave_idx_type, not int. - * ls-oct-ascii.cc, ls-oct-ascii.h (read_ascii_data): Likewise. - - Rearrange octave_value class hierarchy so that rep is a pointer - an octave_base_value object and the octave_base_value class - stores the reference count. Virtualness now goes with the - octave_base_value class, not the octave_value class. - - * ops.h, ov-base-int.cc, ov-base-int.h, ov-base-mat.h, - ov-base-scalar.h, ov-base-sparse.h, ov-base.cc, ov-base.h, - ov-bool-mat.cc, ov-bool-mat.h, ov-bool-sparse.cc, - ov-bool-sparse.h, ov-bool.cc, ov-bool.h, ov-cell.cc, ov-cell.h, - ov-ch-mat.h, ov-colon.h, ov-complex.cc, ov-complex.h, - ov-cs-list.h, ov-cx-mat.cc, ov-cx-mat.h, ov-cx-sparse.cc, - ov-cx-sparse.h, ov-fcn-handle.h, ov-fcn-inline.h, ov-fcn.cc, - ov-fcn.h, ov-intx.h, ov-list.cc, ov-list.h, ov-range.cc, - ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, - ov-re-sparse.h, ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, - ov-streamoff.h, ov-struct.cc, ov-struct.h, ov-type-conv.h, - ov-typeinfo.cc, ov-typeinfo.h, ov-va-args.h, ov.cc, ov.h, - variables.cc, DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/splu.cc, - OPERATORS/op-chm.cc: Cope with octave_value hierarchy changes - (apologies for the lack of detail). - - * ov.cc (octave_value::nil_rep): Delete. - * ov.h (octave_value::nil_rep): Delete decl. - - * ov-base.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA, - DECLARE_OV_BASE_TYPEID_FUNCTIONS_AND_DATA, - DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA2, - DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): - Move macro definitions here from ov.h. - (struct_indent, increment_struct_indent, decrement_struct_indent, - list_indent, increment_list_indent, decrement_list_indent): - Delete decls. - - * ov-base.cc. ov-base.h (do_index_op, ndims, all, any, - convert_to_str, print_with_name, numeric_assign, - reset_indent_level, increment_indent_level, - decrement_indent_level, current_print_indent_level, newline, - indent, reset): Move member functions here from octave_value class. - (count, curr_print_indent_level, beginning_of_line): - Move data members here from octave_value class. - (gripe_indexed_assignment, gripe_assign_conversion_failed, - gripe_no_conversion): Move here from ov.cc. - - * ov.h (class octave_xvalue): Delete. - (octave_value::octave_value (const octave_xvalue&)): Delete. - (anonymous union): Delete. - (octave_value::rep): Now a pointer to octave_base_value instead of - octave_value. - - (octave_value::internal_rep): Return pointer to octave_base_value, - not octave_value. - - 2006-04-11 John W. Eaton - - * pt-assign.cc (tree_simple_assignment::rvalue, - tree_multi_assignment::rvalue): - Error if RHS is a comma-separated list. - - 2006-04-07 John W. Eaton - - * defaults.cc (FOCTAVE_VERSION): New function to replace - corresponding DEFCONSTX macro in symbols_of_defaults. - - * file-io.cc (FP_tmpdir, FSEEK_SET, FSEEK_CUR, FSEEK_END, Fstdin, - Fstdout, Fstderr): New functions to replace DEFCONSTX macros in - symbols_of_file_io. - (const_value): New static function. - (symbols_of_file_io): Delete. - - * syscalls.cc (FF_DUPFD, FF_GETFD, FF_GETFL, FF_SETFD, FF_SETFL, - FO_APPEND, FO_ASYNC, FO_CREAT, FO_EXCL, FO_NONBLOCK, FO_RDONLY, - FO_RDWR, FO_SYNC, FO_TRUNC, FO_WRONLY, FWNOHANG, FWUNTRACED, - FWCONTINUE): New functions to replace DEFCONSTX macros in - symbols_of_syscalls. - (const_value): New static function. - (symbols_of_syscalls): Delete. - - * pr-output.cc (pr_max_internal, pr_min_internal): - Return 0 if all values are Inf or NaN. - Always leave space for sign when printing Inf or NaN values. - - * parse.y (Fmfilename): Don't let filenames like ../foo fake us out. - - * data.cc (fill_matrix): Create separate versions for int, bool, - and double, and Complex values. - (FInf, FNaN, Fe, Feps, Fpi, Frealmax, Frealmin, FI, FNA, Ffalse, - Ftrue): New functions to replace DEFCONST and DEFCONSTX macros in - symbols_of_data. Provide i, J, and j aliases for I. - Provide nan alias for NaN. Provide inf alias for Inf. - (symbols_of_data): Delete. - - 2006-04-06 John W. Eaton - - * parse.y (parse_and_execute, parse_fcn_file): - Create octave_script_function object and push it on the call stack. - - * parse.y (Fmfilename): Check for script or user function file on - call stack. - - * ov-builtin.cc (octave_builtin::do_multi_index_op): - Use octave_call_stack instead of curr_function to save pointer to - current function. - * ov-mapper.cc (octave_mapper::do_multi_index_op): Likewise. - * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): Likewise. - - * pt-bp.h (MAYBE_DO_BREAKPOINT): Use octave_call_stack instead of - curr_function to get pointer to current function. - * pt-arg-list.cc (list::convert_to_const_vector): Likewise. - * variables.cc (Fmlock, Fmunlock, Fmislocked): Likewise. - * input.cc (get_user_input): Likewise. - * error.cc (warning_1, error_2): Likewise. Only enter debug mode - if there is a scripting language caller. - * ov-usr-fcn.cc (Fva_arg, Fva_start, Fvr_val): Likewise. Check - scripting language caller, not current function. - - * toplev.cc (curr_caller_function, curr_function): Delete. - * toplev.h: Delete decls. - - * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): - Don't protect and set curr_caller_function. - * ov-builtin.cc (octave_builtin::do_multi_index_op): Likewise. - * ov-mapper.cc (octave_mapper::do_multi_index_op): Likewise. - - * variables.cc (do_who): Use octave_call_stack instead of - curr_caller_function to get pointer to calling function. - * input.cc (get_user_input): Likewise. - * error.cc (pr_where): Likewise. No need for curr_function now. - * parse.y (Fmfilename): Likewise. Check for scripting language - caller, not any calling function. - - * ov-usr-fcn.h (octave_user_script): New class. - * ov-fcn.h (octave_function::is_user_script): New virtual function. - - * toplev.h, toplev.cc (octave_call_stack): New class. - - * debug.cc (Fdbwhere): Use get_user_function here. - - 2006-04-05 John W. Eaton - - * Makefile.in (mk-pkg-add): Use mfilename to simplify. - (PKG_ADD): Don't pass --prefix arg to mk-pkg-add. - (PKG_ADD.inst): Delete target. - (clean): Don't remove PKG_ADD.inst. - (install-oct): Don't depend on PKG_ADD.inst. Install PKG_ADD, not - PKG_ADD.inst. - - * parse.y (Fmfilename): New function. - - 2006-04-04 David Bateman - - * help.cc (Flookfor): Skip overloaded functions. Lookup help text - of autoloaded function, not parent that contains the autoload. - - 2006-04-03 David Bateman - - * data.cc (Fresize): New function. - * oct-map.cc, ov-base-mat.cc, ov-base-sparse.cc, ov-base.cc, - ov-bool.cc, ov-complex.cc, ov-range.cc, ov-scalar.cc, - ov-str-mat.cc (resize): Add boolean fill argument. - * oct-map.h, ov-base-mat.h, ov-base-sparse.h, ov-base.h, - ov-bool.h, ov-complex.h, ov-intx.h, ov-range.h, ov-scalar.h, - ov-str-mat.h, ov.h (resize): Ditto. - - * DLD-FUNCTIONS/rand.cc (do_rand): Additional argument for - gamma and poisson distributions. Change "state" and "seed" - arguments so that they choose between generators. - Add, poisson, gamma and exponential generators. - (Frand, Frandn): Update docs for new generators, add tests. - (Frande, Frandp, Frandg): New generators, with test code. - - * DLD-FUNCTIONS/daspk.cc (Fdaspk): Allow functions to be passed - using function handles, inline functions, and cell arrays of - strings, inline and function handles. - * DLD-FUNCTIONS/dasrtk.cc (Fdasrt): Likewise. - * DLD-FUNCTIONS/dassl.cc (Fdassl): Likewise. - * DLD-FUNCTIONS/fsolve.cc (Ffsolve): Likewise. - * DLD-FUNCTIONS/lsode.cc (Flsode): Likewise. - - * ls-hdf5.h (hdf5_fstreambase::open): Remove unused arg prot. - - 2006-03-30 Bill Denney - - * data.cc: Include numel in @seealso. - - 2006-03-30 David Bateman - - * DLD-FUNCTIONS/fftw_wisdom.cc: Don't attempt to save wisdom to - an empty filename or invalid filename. - - 2006-03-28 John W. Eaton - - * DLD-FUNCTIONS/matrix_type.cc: Update copyright notice and FSF - address. - - 2006-03-24 John W. Eaton - - * DLD-FUNCTIONS/spchol.cc (Fsymbfact): Use CHOLMOD_NAME to select - proper version of row_subtree function. - - * ov-cell.cc (octave_cell::save_hdf5): Use OSSTREAM instead of - fixed character buffer and sprintf. - * ov-list.cc (octave_list::save_hdf5, octave_list::save_ascii, - octave_list::save_binary): Likewise. - - * ov-cell.h (octave_cell::convert_to_str_internal): - Undo previous change for pad arg. - * ov-cell.cc (octave_cell::all_strings): Reinstate pad arg, pass - it on to all_strings. - * ov.h (octave_value::all_strings): Reinstate pad arg. - * ov-base.cc (octave_base_value::all_strings): Likewise. - * ov-str-mat.cc (octave_char_matrix_str::all_strings): Likewise. - * ov.h, ov-base.h, ov-cell.h, ov-str-mat.h: Fix all_strings decls. - - 2005-10-25 David Bateman - - * data.cc (do_cat): With 1 arg, return [](0x0) for compatibility. - - 2006-03-23 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.5+. - - 2006-03-22 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.5. - (OCTAVE_API_VERSION): Now api-v18. - (OCTAVE_RELEASE_DATE): Now 2006-03-22. - - 2006-03-21 John W. Eaton - - * ov-cell.h (octave_cell::convert_to_str_internal): - Ignore pad and force args. - * ov-cell.cc (octave_cell::all_strings): Delete args. Never pad. - * ov-base.cc (octave_base_value::all_strings): Delete args. - Always force string conversion, never pad. - * ov-str-mat.cc (octave_char_matrix_str::all_strings): - Delete args. Don't strip whitespace. - * ov.h, ov-base.h, ov-cell.h, ov-str-mat.h: Fix all_strings decls. - * strfns.cc (Fchar): No args for all_strings. - - 2006-03-21 David bateman - - * DLD-FUNCTIONS/getrusage.cc (Fgetrusage): Use GetProcessTimes for - MinGW to obtain user and system times. - - 2006-03-17 John W. Eaton - - * strfns.cc (F__list_in_columns__): New function. - - 2006-03-16 Bill Denney - - * DLD-FUNCTIONS/time.cc: Improve @seealso entries in doc strings. - - 2006-03-16 John W. Eaton - - * __gnuplot_raw__.l (F__gnuplot_show__): Temporarily use DEFCMD - instead of DEFUN. - (symbols_of___gnuplot_raw__): Temporarily mark __gnuplot_plot__, - __gnuplot_set__, __gnuplot_splot__, and __gnuplot_replot__ as raw - commands. - - * variables.cc (is_marked_as_rawcommand, unmark_rawcommand, - mark_as_rawcommand): Temporarily not static. - * variables.h: Temporarily Provide decls. - - 2006-03-16 David Bateman - - * sparse-xdiv.cc (result_ok): delete. - (xdiv, xleftdiv): Simplify to use version of SpareMatrix::solve - and SparseComplexMatrix::solve which internally treats rectangular - and singular matrices. - * DLD-FUNCTIONS/luinc.cc: Remove error test for singular matrix as - QR solver now implemented. - * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Paranoid check on - error_state. Disable tests for the detection of underdetermined - lower and over-determined upper matrix due to problems with - non minimum norm solutions. - * DLD-FUNCTIONS/spqr.cc: Warning for issue of use of Fspqr for - under-determined problems. - - 2006-03-16 John W. Eaton - - * __gnuplot_raw__.l: Move here from DLD-FUNCTIONS/__gnuplot_raw__.l. - Use DEFUN, not DEFUN_DLD. Include defun.h, not defun-dld.h. - (gnuplot::do_init):Move guts to symbols_of___gnuplot_raw__. - (symbols_of___gnuplot_raw__): New function. - - * Makefile.in (DLD_XSRC): Delete __gnuplot_raw__.l from the list. - (DIST_SRC): Include __gnuplot_raw__.l in the list. - (__gnuplot_raw__.cc): Depend on __gnuplot_raw__.l, not - DLD-FUNCTIONS/__gnuplot_raw__.l - - * ls-oct-ascii.h (extract_keyword): Use std::string compare method - instead of strncmp. - * ls-oct-ascii.cc (extract_keyword): Likewise. - - 2006-03-15 William Poetra Yoga Hadisoeseno - - * data.cc (Frows, Fcolumns): New functions. - - * DLD-FUNCTIONS/time.cc (Fstrptime, Fstrftime): Fix docstring. - - * strfns.cc (Fstrcmp): Fixed docstring. - - 2006-03-15 John W. Eaton - - * pager.cc (Fterminal_size): New function. - - * help.cc (help_from_info): Simplify. - (try_info): Use feval to call doc instead of executing info program. - (additional_help_message): Point users to doc instead of help -i. - From Sᅵren Hauberg . - - * toplev.cc (Fsystem): Return output if nargout > 1, not 0. - - 2006-03-14 Keith Goodman - - * help.cc (Fhelp, Fwhich, Flookfor): Doc string fix. - - 2006-03-14 John W. Eaton - - * defun.cc (print_usage): New arg, extra_msg. - - * xpow.cc: Omit tests for now. - - * parse.y (QUOTE, TRANSPOSE): For compatibility, now have same - precedence as POW and EPOW. - - 2006-03-14 Bill Denney - - * load-save.cc (Fload, Fsave): Update docstring for functional form. - - 2006-03-14 John W. Eaton - - * xpow.cc (elem_xpow): Undo previous change. - - 2006-03-14 Paul Kienzle - - * xpow.cc: New tests. - - 2006-03-13 John W. Eaton - - * variables.cc (fcn_out_of_date): No longer static. - * ov-fcn-handle.cc (warn_reload): New function. - (octave_fcn_handle::subsref): Implement basic logic for updating - when pointed-to function changes. - - 2006-03-10 John W. Eaton - - * xpow.cc (elem_xpow): Only use complex pow if really necessary. - - * symtab.cc (symbol_table::glob, symbol_table::symbol_list, - symbol_table::subsymbol_list): Force result to be a column - vector. - - * oct-stream.h (octave_stream::stream_ok): Undo previous change. - Eliminate who parameter. Change all callers. - - * variables.cc (do_who): Return more info in structure array for - verbose output. - * symtab.h (symbol_record::size, symbol_record::class_name, - symbol_record::is_sparse_type, symbol_record::is_complex_type, - symbol_record::size, symbol_record::symbol_def::class_name, - symbol_record::symbol_def::is_sparse_type, - symbol_record::symbol_def::is_complex_type): New functions. - * ov.h (octave_value::size): New function. - - 2006-03-09 John W. Eaton - - * toplev.cc (run_command_and_return_output): Swap output and - status for compatibility. - - * Makefile.in (defaults.h, oct-conf.h): Force updates. - - * defaults.h.in (OCTAVE_RELEASE): New macro. - - * octave.cc (F__version_info__): New arg, release. - (initialize_version_info): Pass release arg to F__version_info__. - - * toplev.cc: Include api_version in the list. - - * Makefile.in (DIST_SRC): Include octave.cc here. - (DISTFILES, DEP_5): Not here. - - * octave.cc (F__version_info__): New function. - (initialize_version_info): New function. - (octave_main): Call initialize_version_info just before reading - init files. - - * version.h (OCTAVE_RELEASE_DATE): New macro. - - * ov-fcn-handle.h (octave_fcn_handle::dims): New function. - - 2006-03-08 John W. Eaton - - * oct-stream.cc (octave_stream::stream_ok): Move definition here, - from oct-stream.h. New arg, warn. If warn is true and stream is - invalid, print warning. - (octave_stream::error): Always avoid warning message from - stream_ok. Return "invalid stream object" if stream is not ok. - - 2006-03-08 David Bateman - - * ov-mapper.cc (SPARSE_MAPPER_LOOP_2): Change nnz to nz to remove - shadowed variable warning. - * DLD-FUNCTIONS/spqr.cc: Update for new upstream CXSPARSE release. - - 2006-03-06 John W. Eaton - - * help.cc (display_help_text): Force linebreak with @sp. - - 2006-03-06 Keith Goodman - - * bitfcns.cc, data.cc, debug.cc, file-io.cc, help.cc, - load-save.cc, mappers.cc, ov-cell.cc, ov-fcn-inline.cc, - ov-struct.cc, ov-usr-fcn.cc, ov.cc, pr-output.cc, utils.cc, - variables.cc, DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc, - DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/daspk.cc, - DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dassl.cc, - DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, - DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw_wisdom.cc, - DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/gcd.cc, - DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/sparse.cc, - DLD-FUNCTIONS/spchol.cc, DLD-FUNCTIONS/splu.cc, - DLD-FUNCTIONS/spqr.cc, DLD-FUNCTIONS/sqrtm.cc: - Move @seealso inside @defXXX macro. Remove "and" from @seealso. - - 2006-03-04 John W. Eaton - - * help.cc (additional_help_message): Don't print "\n" before message. - (help_from_symbol_table): If Vsuppress_verbose_help_message is - true, don't print which info. - - 2006-03-03 John W. Eaton - - * dirfns.cc (Vconfirm_recursive_rmdir): New static variable. - (symbols_of_dirfns): DEFVAR it. - (confirm_recursive_rmdir): New function. - (Frmdir): Maybe ask for confirmation for recursive removal. - Require second arg to be "s". - - * input.cc (octave_yes_or_no): New function. - (Fyes_or_no): New function. - * input.h (octave_yes_or_no): Provide decl. - - 2006-03-02 John W. Eaton - - * dirfns.cc (Fmkdir, Frmdir): Now commands. - - 2006-02-20 David Bateman - - * ov.h (virtual bool is_sparse_type (bool)): New virtual function - * ov-base.h (bool is_sparse_type (bool)): New function - * ov-base-sparse.h (bool is_sparse_type (bool)): New function - * DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTION/colamd.cc, - DLD-FUNCTIONS/__glpk__.cc, DLD-FUNCTIONS/splu.cc, - DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/matrix_type.cc, pt-mat.cc: - Replace us of 'arg.class_name () == "sparse"' with - 'arg.is_sparse_type ()' - - 2006-02-20 David Bateman - - * pt-mat.cc (class tm_row_const): Add any_sparse bool variable. - (tm_row_const::tm_row_const_rep::do_init_element): Initialize - any_sparse variable if any matrice is sparse. - (class tm_const): Add any_sparse bool variable. - (tm_const::init): Initialize any_sparse variable. - (tree_matrix::rvalue): If any matrix is sparse use sparse matrix - as initial matrix for concatenation - * DLD-FUNCTIONS/matrix_type.cc: Add tests for new rectangular - diagonal, permuted diagonal, triangular and permuted triangular - matrices - - 2006-02-20 John W. Eaton - - * toplev.cc (__builtin_delete, __builtin_new): Use std::cerr for - messages instead of std::cout. - (main_loop, do_octave_atexit): Use octave_stdout, not std::cout. - - 2006-02-15 John W. Eaton - - * parse.y (Fautoload): Return struct array of autoload info if - nargin == 0. - - 2006-02-15 Keith Goodman - - * help.cc (keywords): Doc string fix. - - 2006-02-15 John W. Eaton - - * oct-procbuf.cc (close): Use __CYGWIN__ instead of __CYGWIN32__. - - 2006-02-13 David Bateman - - * DLD_FUNCTIONS/regexp.cc (octregexp): Add matlab compatiable - named tokens. Update the tests - - 2006-02-10 John W. Eaton - - * lex.l (\[{S}*): Maybe set lexer_flags.looking_at_return_list or - lexer_flags.looking_at_matrix_or_assign_lhs here. - * parse.y - (return_list_beg): Don't use in_return_list here. - (assign_lhs, matrix): Don't use in_matrix_or_assign_lhs here. - (in_matrix_or_assign_lhs, in_return_list): Delete unused macros. - (matrix): Clear lexer_flags.looking_at_matrix_or_assign_lhs in all - cases. - - 2006-02-09 John W. Eaton - - * utils.cc (oct_file_in_path): Check len > 4, not len > 2. - From Larrie Carr . - - 2006-02-09 David Bateman - - * DLD-FUNCTIONS/spqr.cc: New file for sparse QR and dmperm based on - CSparse. - * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): dintinguish between - rectangular and singular matrices. Add tests. - * DLD-FUNCTIONS/luinc.cc: Add tests. - * DLD-FUNCTIONS/spkron.cc: Ditto. - * Makefile.in (DLD_XSRC): Add spqr.cc. - (OCT_LINK_DEPS): Add CSSPARSE_LIBS. - * sparse-xdiv.h: Remove conditio of lssolve. - - 2006-02-08 John W. Eaton - - * parse.y (frob_function): Clear ID_NAME from top_level symbol - table if we are defining a function at the top-level and a - function with the same name is already in the top-level symbol - table. - - 2006-01-31 John W. Eaton - - * ov-base-sparse.h (octave_base_sparse::nzmax): New function. - * ov.h (octave_value::nzmax): New function. - * ov-base.cc (octave_base_value::nzmax): New function. - * ov-base.h: Provide decl. - * data.cc (Fnzmax): New function. - * DLD-FUNCTIONS/sparse.cc (Fnzmax): Delete. - - 2006-01-31 Kim Hansen - - * __glpk__.cc (F__glpk__): Fix for sparse matrices. - - 2006-01-30 John W. Eaton - - * gripes.cc (gripe_wrong_type_arg (const char*, const char*, bool)): - New function. - (gripe_wrong_type_arg (const char*, const std::string&, bool)): - Define using const char*, const char*, bool version. - (gripe_wrong_type_arg (const char*, const octave_value&, bool)): - Define using const char*, const std::string&, bool version. - - * ov.h (octave_value::nnz): New function. - * ov-base.cc (octave_base_value::nnz): New function. - * ov-base.h: Provide decl. - * ov-base-mat.h (octave_base_matrix::nnz): New function. - * ov-base-scalar.h (octave_base_scalar::nnz): New function. - * Cell.cc (Cell::nnz): New function. - * Cell.h: Provide decl. - * data.cc (Fnnz): New function. - * DLD-FUNCTIONS/sparse.cc (Fnnz): Delete. - - 2006-01-13 John W. Eaton - - * ov-struct.cc (octave_struct::print_raw): Correctly print scalar - structs and empty struct arrays. - - * DLD-FUNCTIONS/__gnuplot_raw__.l (Fclearplot): For compatibility, - also turn off hold state for current figure. - - 2006-01-13 Bill Denney - - * dirfns.cc: Add @seealso{} to docstrings. - - 2006-01-13 John W. Eaton - - * help.cc (display_help_text): Use warning() to print raw Texinfo - source. Don't redirect error output for makeinfo process. - - * DLD-FUNCTIONS/__gnuplot_raw__.l (F__gnuplot_init__): Delete - function and PKG_ADD directive. - (gnuplot::gnuplot): Call do_init here. - (gnuplot::init): Delete static function. - (gnuplot::close_all): New static function. - (class gnuplot_X): New class. - (gnpulot_X::X): New static instance. - - 2006-01-12 David Bateman - - * help.cc (make_name_list): Add autoload functions to list of - available completions. - (simple_help): Add autoloaded functions to functions listed - (first_help_sentence): Avoid issue with single line help string - that is not terminated in \n. - (Flookfor): Check for string match in the keyword/function, etc - name. Also look for string match in help of autoloaded functions. - Load oct-files to be able to access their help string. - * parse.y (string_vector autoloaded_functions (void)): New - function to list all autloaded functions. - (string_vector reverse_lookup_autoload (const std::string& nm)): - Reverse lookup function to match file to autoloaded functions. - * parse.h (autoloaded_functions, reverse_lookup_autoload): - Declaration. - - * oct-map.cc (maybe_delete_elements): New function. - * oct-map.h (maybe_delete_elements): Declare it. - * ov-struct.cc (octave_struct::subsref): Handle indexing empty - structure. - (octave_struct::subsasgn): If rhs is [], delete elements. - (octave_struct::print_raw): Handle printing empty structure. - - * ls-mat5.cc (read_mat5_binary_element): Allow reading of sparse - elements when nnz doesn't equal nzmax. - - 2006-01-10 David Bateman - - * DLD-FUNCTIONS/sparse.cc (sparse_find): Use Sparse::nonzero() - rather than Sparse::nnz(), due to possibility of overallocation - of memory. - - 2006-01-06 John W. Eaton - - * oct-map.cc (Octave_map::transpose): Avoid GCC 3.3.x parse error. - - 2005-12-14 John W. Eaton - - * oct-stream.cc (octave_stream::invalid_stream_error): Delete. - * oct-stream.h (octave_stream::stream_ok): Don't fail with error. - - 2005-12-14 David Bateman - - * DLD-FUNCTIONS/regexp.cc: New file. - - * DLD-FUNCTIONS/dispatch.cc: Update tests for string/sq_string - differences. - - * error.cc (Vquiet_warning): New variable. - (vwarning): Use Vquiet_warning to prevent warning output. - (Fwarning): Include "quiet" option to Fwarning function. - Assign retval when using "query". Typo in error message. - (Flastwarn): Clear warning_state when using Flastwarn to probe warning - message. - - * ov-struct.cc: Update Fstruct tests for change in error output. - - * Makefile.in: Include regexp when needed with appropriate libraries. - - 2005-12-13 David Bateman - - * Makefile.in: Change references to gplot.l to __gnuplot_raw__.l. - * DLD-FUNCTIONS/__gnuplot_raw__.l: Rename from DLD-FUNCTIONS/gplot.l. - Remove all references to deprecated gplot, gsplot, graw, gset and - gshow functions. - * help.cc (static help_list keywords[]): Remove gsplot and gplot. - - * ls-oct-ascii.cc (save_three_d): Don't strip Inf or NaN. - (save_ascii_data_for_plotting): Ditto. - - 2005-12-13 John W. Eaton - - * oct-stream.cc (octave_stream_list::do_insert): Check open state - of stream in list instead of whether stream state is OK. - - 2005-12-12 David Bateman - - * OPERATORS/op-struct.cc (transpose): New function. - (install_struct_ops): Install it. - - * oct-map.cc (Octave_map::transpose): New function. - * oct-map.h: Provide decl. - - 2005-12-08 John W. Eaton - - * Cell.cc (Cell::column): New function. - * pt-loop.cc (DO_ND_LOOP): Simplify. - (simple_for_loop_command::eval): Correctly handle N-d numeric and - cell arrays when only the first dimension is 0. - - 2005-12-07 John W. Eaton - - * lex.l (NL): Also accept '\r'. - - * error.cc (Vbacktrace_on_warning, warning_options, - Vlast_warning_id, Vlast_error_id): New file-scope variables. - (Vwarning_frequency, Vwarning_option): Delete unused variables. - (set_warning_option): Delete unused function. - (Fwarning): Update for compatibility. Use DEFCMD, not DEFUN. - (warning_enabled, check_state): New functions. - (warning (const char *fmt, ...)): Use it. - (init_warning_options): New function. - (symbols_of_error): Call it. - (vwarning, Flastwarn): Handle Vlast_warning_id. Improve compatibility. - (handle_message): New arg, ID. Change all callers. - (vwarning, verror, error_1): New arg, ID. Change all callers. - (verror, Flasterr): Handle Vlast_error_id. Improve compatibility. - - * error.cc (message_with_id, usage_with_id, warning_with_id, - error_with_id, parse_error_with_id): New functions. - (error_2, warning_1, usage_1): New functions. - * error.h (message_with_id, usage_with_id, warning_with_id, - error_with_id, parse_error_with_id): Provide decls. - - 2005-11-30 John W. Eaton - - * DLD-FUNCTIONS/schur.cc (Fschur): Doc string fix. - From Jorge Barros de Abreu . - - 2005-11-28 John W. Eaton - - * syscalls.cc (Funame): New function. - - 2005-11-21 John W. Eaton - - * pr-output.cc (pr_int): Fix thinko in byte-swapping for bit format. - - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): - Use C++ static_cast instead of C-style casts. - - 2005-11-21 William Poetra Yoga H - - * DLD-FUNCTIONS/cellfun.cc (Fcellfun): - Docstring and error message fixes. - - 2005-11-17 John W. Eaton - - * DLD-FUNCTIONS/minmax.cc (MINMAX_BODY): Don't cast arg1 to - const octave_complex_matrix&. - - 2005-11-16 John W. Eaton - - * Makefile.in (PKG_ADD.inst): New target. - (install-oct): Depend on it. - (clean): Remove it. - - * mk-pkg-add: New option --install. Don't use --prefix option. - Delete obsolete comments. - - * Cell.cc (Cell::index): Indexing with () is a no-op, not an error. - * oct-map.cc (Octave_map::index): Likewise. - * ov-base-mat.cc (octave_base_matrix::do_index_op): Likewise. - * ov-base-sparse.cc (octave_base_sparse::do_index_op): Likewise. - * ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal): - Likewise. - - 2005-11-11 John W. Eaton - - * Makefile.in (install-oct): Fix thinko in previous change. - - * version.h (OCTAVE_VERSION): Now 2.9.4 - (OCTAVE_API_VERSION): Now api-v17. - - * variables.cc (symbol_out_of_date): Check for autoloads here too. - - * Makefile.in (PKG_ADD): Depend on $(DLD_DEF_FILES), not $(DLD_SRC). - (%.df : %.cc): Also insert PKG_ADD commands in .df files. - (install-oct): Generate PKG_ADD file for install directory here. - Don't depend on PKG-ADD. No need to make .oct file links. - (clean): No need to delete links. - (stamp-oct-links): Delete target. - (distclean): No need to remove stamp-oct-links. - (all): Depend on $(OCT_FILES), not stamp-oct-links. - - * mk-pkg-add: New file. - * Makefile.in (DISTFILES): Add it to the list. - - * mk-oct-links: Delete. - * Makefile.in (DISTFILES): Remove it from the list. - - 2005-11-10 John W. Eaton - - * ov-str-mat.h (octave_char_matrix_str::permute, - octave_char_matrix_str::resize): New functions. - (octave_char_matrix_sq_str::reshape, - octave_char_matrix_sq_str::permute, - octave_char_matrix_sq_str::resize): New functions. - - * OPERATORS/op-str-str.cc, OPERATORS/op-str-s.cc, - OPERATORS/op-str-m.cc: Use DEFNDCHARCATOP_FN. - - * data.cc (do_cat): No need to handle character arrays specially here. - - * ops.h (DEFNDCHARCATOP_FN): New macro. - * OPERATORS/op-int.h (OCTAVE_INT_CHAR_CONCAT_FN, - OCTAVE_CHAR_INT_CONCAT_FN, OCTAVE_INSTALL_INT_CHAR_CONCAT_FN, - OCTAVE_INSTALL_CHAR_INT_CONCAT_FN): New macros. - * OPERATORS/op-int-concat.cc: Use them do define char/int op functions. - (install_int_concat_ops): Install char/int concat ops. - - * ov-scalar.h (class octave_scalar): Provide extractors - for all int array types and char array type. - - 2005-11-09 John W. Eaton - - * ov-bool-mat.h (class octave_bool_matrix): Provide extractors - for all int array types and char array type. - * ov-bool.h (class octave_bool): Likewise. - - * ov-intx.h (class OCTAVE_VALUE_INT_MATRIX_T): Provide extractors - for all int array types and char array type. - (class OCTAVE_VALUE_INT_SCALAR_T): Provide extractors for all int - scalar and array types and char array type. - - * pt-mat.cc (tm_const::class_nm): New data member. - (tm_const::tm_const): Initialize it. - (tm_const::class_name): New function. - (tm_row_const::tm_row_const_rep::class_nm): New data member. - (tm_row_const::tm_row_const_rep::tm_row_const_rep): Initialize it. - (tm_row_const::class_name): New function. - (get_concat_class): New function. - (tm_row_const::tm_row_const_rep::do_init_element): Use it. - (tm_const::init): Use it. - - 2005-11-07 John W. Eaton - - * strfns.cc (Fstrcmp): If args are not strings or cell arrays of - strings, return false. - - 2005-11-01 John W. Eaton - - * Makefile.in (oct-gperf.h): Avoid extra temporary file. - (distclean): Delete oct-errno.cc here. - From Quentin Spencer . - - 2005-11-01 Quentin Spencer - - * DLD-FUNCTIONS/spchol.cc: Use C++ true/false instead of - preprocessor defined TRUE/FALSE. - * Makefile.in (DISTFILES): Add mk-errno-list to the list. - - 2005-10-30 John W. Eaton - - * DLD-FUNCTIONS/gplot.l (gnuplot::set_gnuplot_exe, - gnuplot::do_set_gnuplot_exe): New functions. - (gnuplot_binary): Call gnuplot::set_gnuplot_exe here. - - * DLD-FUNCTIONS/gplot.l (gnuplot::set_gnuplot_use_title_option, - gnuplot::do_set_gnuplot_use_title_option): New functions. - (gnuplot_use_title_option): - Call gnuplot::set_gnuplot_use_title_option here. - - 2005-10-27 James R. Van Zandt - - * mappers.cc: Doc fix for lgamma. - * DLD-FUNCTIONS/gammainc.cc (Fgammainc): Doc fix. - - 2005-10-27 John W. Eaton - - * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Declare mrowsA volatile. - - * pt-mat.cc (tm_row_const::tm_row_const_rep::tm_row_const_rep): - Ensure that we always have at least two dimensions here. - (tm_const::tm_const): Likewise. - (tm_const::rows, tm_const::columns): Simplify. - (tm_row_const::rows, tm_row_const::columns)): Simplify. - - 2005-10-26 John W. Eaton - - * oct-procbuf.cc (octave_procbuf::open): Cast 0 to void * to avoid - new g++ warning. - * toplev.cc (Fsystem): Likewise. - - Changes for GCC 4.1, tip from Arno J. Klaassen - : - - * ov.h (do_unary_op (octave_value::unary_op, const octave_value&)): - Publish externally used friend function. - (do_unary_op (octave_value::unary_op, const octave_value&, - const octave_value&)): Likewise. - - 2005-10-25 David Bateman - - * data.cc (do_cat): called with 2 args, should return args(1) - for compatibility. - - 2005-10-23 David Bateman - - * Makefile.in (DLD_XSRC): Add spchol.cc. - * sparse-xpow.cc (xpow): Change call to sparse inverse to include - SparseType. - * DLD-FUNCTIONS/colamd.c (Fsymbfact): Remove. - * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): 64-bit fixes and fix - for permutation of upper/lower triangular matrices. - * DLD-FUNCTIONS/splu.cc (Fspinv): Implemtation of sparse inverse - function. - * DLD-FUNCTIONS/spchol.cc (sparse_chol): Static function for core of - the sparse cholesky factorization. - (Fspchol): New function for sparse cholesky factorization R'R. - (Fsplchol): New function for sparse cholesky factorization LL'. - (Fspcholinv): New cholesky inverse function. - (Fspchol2inv): New cholesky inverse function. - (Fsymbfact): Implementation of symbolic factorization using cholmod. - - 2005-10-21 John W. Eaton - - * DLD-FUNCTIONS/gplot.l (read_until): Special case STRING. - (handle_string): Restore function. - ("'", "\""): Call handle string when matching these tokens.. - - 2005-10-20 John W. Eaton - - * pt-mat.cc (tm_row_const::all_real): New data member. - (tm_row_const::all_real_p): New function. - (tm_row_const::tm_row_const_rep::all_real): New data member. - (tm_row_const::tm_row_const_rep::all_real_p): New function. - (tm_row_const::tm_row_const_rep::init): Set all_real and all_cmplx - to true here. - (tm_row_const::all_cmplx): Rename from is_cmplx. - (tm_row_const::all_complex_p): Rename from complex_p. - (tm_row_const::tm_row_const_rep::all_cmplx): Rename from is_cmplx. - (tm_row_const::tm_row_const_rep::all_complex_p): Rename from complex_p. - (tm_row_const::tm_row_const_rep::init): Set all_real and all_cmplx - to true here. - (SINGLE_TYPE_CONCAT): New macro. - (tree_matrix::rvalue): Use it for single type cases. - - * pt-mat.cc: Sprinkle with OCTAVE_QUIT. - - 2005-10-18 John W. Eaton - - * octave.cc (octave_main): If not embedded, call clean_up_and_exit - instead of return to exit function. - - 2005-10-18 Arno J. Klaassen - - * DLD-FUNCTIONS/gplot.l (gnuplot::handle_title): - Omit class name from declaration. - - 2005-10-17 Keith Goodman - - * DLD-FUNCTIONS/sort.cc: Doc string fix. - - 2005-10-17 John W. Eaton - - * oct-conf.h.in (OCTAVE_CONF_F77_FLOAT_STORE_FLAG): Substitute - OCTAVE_CONF_F77_FLOAT_STORE_FLAG here. - - 2005-10-14 John W. Eaton - - * mk-errno-list: New script. - * Makefile.in (oct-errno.cc): Use it. - - 2005-10-13 John W. Eaton - - * DLD-FUNCTIONS/gplot.l (F__gnuplot_raw__): - Call print_usage with correct function name. - - 2005-10-12 John W. Eaton - - * DLD-FUNCTIONS/gplot.l: Major cleanup. - Built-in variable gnuplot_has_frames no longer necessary. - (gnuplot): New class to manage multiple gnuplot processes. - (handle_string): Delete. It was only used for the case of - __gnuplot_plot__ "file", which is no longer allowed. - - 2005-10-05 John W. Eaton - - * variables.cc (symbol_exist): Chekck for autoloaded functions. - - * parse.y (Fautoload): New function. - (autoloading, autoload_map): New static variables. - (load_fcn_from_file, frob_function): Handle autoloading. - (lookup_autoload): New function. - (get_help_from_file): New args, symbol_found and include_file_info. - Change all callers. - - 2005-10-05 David Bateman - - * help.cc (try_info): format in command string for mingw. - - 2005-09-30 John W. Eaton - - * ov.cc (octave_value::~octave_value): No need to set rep to zero - after deleting. - - 2005-09-29 John W. Eaton - - * syscalls.cc (mk_stat_map): Store mode too. - (FS_ISREG, FS_ISDIR, FS_ISCHR, FS_ISBLK, FS_ISFIFO, FS_ISLNK, - FS_ISSOCK): New functions. - (Fstat): Fix docstring. - - 2005-09-28 John W. Eaton - - * oct-stream.cc (printf_value_cache::double_value): Force - character strings to be converted to ASCII equivalents. - - * data.cc (Fcomplex): New function. - - * ov-type-conv.h (OCTAVE_TYPE_CONV_BODY3): Return arg unchanged if - class name is same as name of conversion. - - * dirfns.cc (Frmdir, Fmkdir): For compatibility, return true for - success and false for failure. Return third value, msgid. - (Frmdir): Handle second arg for recursive behavior. - - 2005-09-23 John W. Eaton - - * parse.y (load_fcn_from_file): Don't look in path if file is - absolute and has .oct or .m extension. - - * utils.cc (Ferrno_list): New function. - - * oct-errno.h, oct-errno.cc.in: New files. - * Makefile.in: Add them to the appropriate lists. - (oct-errno.cc): New rule. - ($(OPT_HANDLERS)): Use $(PERL) instead of just perl. - - * utils.cc: Include oct-errno.h. - (Ferrno): Rename from FERRNO. Allow errno to be set. Allow - lookups of errno codes by name and access to structure containing - all errno names and codes. - - 2005-09-19 John W. Eaton - - * pt-bp.cc (tree_breakpoint::visit_index_expression): - Avoid dereferencing invalid pointer. - - 2005-09-19 David Bateman - - * Makefile.in (OCT_LINK_DEPS): Include UFsparse libraries. - - * DLD_FUNCTIONS/__glpk__.cc (F__glpk__): Replace isinf with - xisinf. Allow sparse matrices as second argument. - - * syscalls.cc: Typos. - * sysdep.cc: Typos. - - 2005-09-16 John W. Eaton - - * syscalls.cc (Fwaitpid): Doc fix. Expect WNOHANG, WUNTRACED, - WCONTINUED as args instad of int values. - Return values are now [pid, status, msg] instad of [pid, msg]. - (WIFEXITED, WEXITSTATUS, WIFSIGNALED, WTERMSIG, WCOREDUMP, - WIFSTOPPED, WSTOPSIG, WIFCONTINUED): New functions. - (symbols_of_syscalls): DEFCONST WNOHANG, WUNTRACED, and WCONTINUE. - - * oct-procbuf.cc (octave_procbuf::close): Call octave_syscalls::waitpid - here instead of calling waitpid directly. - * sighandlers.cc (OCL_REP::wait): Likewise. - - * sysdep.h [__MINGW32__]: Don't define waitpid here. - - 2005-09-15 John W. Eaton - - * sysdep.h [__MINGW32__]: Move to definition of waitpid sysdep.h. - - * sysdep.cc, sighandlers.cc: Rename all win32_ symbols to w32. - - * sysdep.cc (w32_set_quiet_shutdown): New function. - * sysdep.h: Provide decl. - * sysdep.cc (MINGW_signal_cleanup): Use it. - * sighandlers.cc (octave_catch_interrupts): Use it. - - * sysdep.h: Provide decl. - (MINGW_SIGNAL_CLEANUP): New macro. - (USE_W32_SIGINT): Move definition here. - * sighandlers.cc: From here. - - * DLD-FUNCTIONS/cellfun.cc (Fnum2cell): Use print_usage, not usage. - * DLD-FUNCTIONS/colamd.cc (Fcolamd, Fsymamd, Fetree): Likewise. - (Fcolamd, Fsymamd) [! HAVE_COLAMD]: Return empty octave_value_list - object. - - * sysdep.cc (sysdep_cleanup): New function. - Move w32 clean up code here. - * toplev.cc (clean_up_and_exit): From here. - Call sysdep_cleanup here. - - 2005-09-15 David Bateman - - * Makefile.in (DLD_XSRC): Add ccolamd.cc - (OCTAVE_LIBS): Add LIBGLOB. - (OCT_LINK_DEPST, octave): Add AMD, COLAMD, CCOLAMD and CHOLMOD - libraries. - * default.cc (set_default_exec_path, set_default_path, - maybe_add_default_load_path, LOADPATH): Use SEPCHAR_STR and SEPCHAR. - * help.cc (display_help_text): Exclude /dev/null on mingw. - * oct-procbuf.cc (W32POPEN, W32PCLOSE): Macros for cygwin/mingw. - (octave_procbuf::open, octave_probuf::close): Use them. - * sighandler.cc (user_abort): New function with core of old - sigint_handler. - (sigint_handler): Simplify and specialize for w32. - (w32_sigint_handler): W32 version of sigint handler. - (octave_catch_interrupts): Initialize w32 siginit handler. - * sysdep.cc (MINGW_init): New function. - (sysdep_init): Use it. - * toplev.cc (clean_up_and_exit): Clean w32 signalling shutdown. - * DLD-FUNCTIONS/cellfun.cc (Fnum2cell): New function. - * DLD-FUNCTIONS/colamd.cc (Fcolamd, Fsymamd): Allow conditional build. - Include oct-sparse.h rather than colamd.h. - * DLD-FUNCTIONS/ccolamd.cc: New file with Fccolamd a Fcsymamd. - - 2005-09-14 John W. Eaton - - * ov-complex.cc (octave_complex::try_narrowing_conversion): - Don't drop -0i. - * ov-cx-mat.cc (octave_complex_matrix::try_narrowing_conversion): - Likewise. - - 2005-09-14 Daniel - - * DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/chol.cc, - DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fftw_wisdom.cc, utils.cc: - Doc string fixes. - From Jorge Barros de Abreu . - - 2005-09-14 David Bateman - - * help.cc (Flookfor, print_lookfor, first_help_sentence): - New functions. - - 2005-09-07 Bill Denney - - * dirfns.cc (Fglob): Doc fix. - - 2005-09-07 John W. Eaton - - * ov-struct.cc (Fstruct): Allow struct (zeros (0, N)) to create a - 0xN struct array. - - 2005-09-04 David Bateman - - * DLD-FUNCTIONS/colamd.c (COLAMD_NAME, SYMAMD_NAME): New macros - (symetree, make_set, link, finf, etdfs, TreePostorder, coletree, - Fcolamd, Fsymamd, Fetree): Update for 64-bit indexing and colamd - versin 2.4. - - 2005-09-01 John W. Eaton - - * variables.cc (symbol_out_of_date): Don't check nested functions. - - 2005-08-31 John W. Eaton - - * oct-map.cc (Octave_map::index): Don't crash if index list is empty. - * ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal): - Likewise. - - * oct-map.h (Octave_map::ndims): New function. - - 2005-08-30 John W. Eaton - - * ov-range.h (octave_range::permute): New function. - - * ov-struct.cc (octave_struct::load_ascii, - octave_struct::load_binary, octave_struct::load_hdf5): Try harder - to read old-style files correctly. - - 2005-08-25 David Bateman - - * OPERATORS/op-sm-m.cc, OPERATORS/op-sm-cm.cc, OPERATORS/op-scm-m.cc, - OPERATORS/op-scm-cm.cc, OPERATORS/op-m-sm.cc, OPERATORS/op-m-scm.cc, - OPERATORS/op-cm-sm.cc, OPERATORS/op-cm-scm.cc: Use mixed matrix/sparse - multiply operator rather than casting sparse to matrix. - - 2005-07-18 John W. Eaton - - * strfns.cc (Fstrcmp): New function from Sï¿œren Hauberg - and Tom Holroyd . - Adapt to Octave conventions. - - 2005-07-11 David Bateman - - * ov-fc-inline.cc (Fvectorize): Allow string arguments - - 2005-07-08 John W. Eaton - - * DLD-FUNCTIONS/gplot.l (Fhold, Fishold): Delete. - (clear_before_plotting): Delete static variable. - Delete PKG_ADD line for hold. - - 2005-07-07 John W. Eaton - - * pr-output.cc (pr_plus_format): Delete "static" from template decl. - - * oct-stream.cc (octave_scan): Delete explicit instantiation of - octave_scan since a specialization is provided. - - * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Include - , for std::transform decl. Use std qualifier for - transform and tolower. - - 2005-07-05 Antoine Moreau - - * DLD-FUNCTIONS/betainc.cc (Fbetainc): Fix doc string to match - function definition.. - - 2005-07-05 Mats Jansson - - * file-io.cc (Fmkstemp): Check if second argument is true - before marking file for deletion. - - 2005-07-05 John W. Eaton - - * ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal): - Rename from char_matrix_str::do_index_op. New arg, type. - ov-str-mat.h (octave_char_matrix_str::do_index_op): Define using - do_index_op_internal. - (octave_char_matrix_sq_str::do_index_op): New function. - - 2005-07-01 John W. Eaton - - * parse.y (end_error): Also handle end_try_catch case. - - 2005-06-17 John W. Eaton - - * help.cc (help_from_list, help_from_symbol_table, - help_from_file): New arg, symbol_found. - (builtin_help): Use symbol_found arg to determine whether help - text is empty or symbol is not available. - - * symtab.cc (symbol_record::print_info): Print more info. - - * DLD-FUNCTIONS/dispatch.cc (Fdispatch_help): Delete. - (dispatch_record): Don't prepend "<>" to help text. - (Fdispatch): Don't setup dispatched help. - - * help.cc (extract_help_from_dispatch): New function. - (help_from_symbol_table): Use it. - * defun.cc (print_usage): Use it. - - * toplev.cc (octave_config_info): Include localapifcnfiledir and - localapioctfiledir in the list. - - * symtab.h (symbol_record::alias): New arg, mark_to_clear. - (symbol_record::aliases_to_clear): New data member. - (symbol_record::push_alias_to_clear): New function. - * symtab.cc (symbol_record::alias): If mark_to_clear is true, push - this pointer on aliases_to_clear stack for s. - (symbol_record::clear): Also clear aliases_to_clear_stack. - - * defun.cc (install_dld_function): Create full file name alias in - fbi_sym_tab and hide it from view. - Don't call protect or make_eternal on sym_rec. - - * variables.cc (fcn_out_of_date): New function. - (symbol_out_of_date): Also check for symbol using full function - file name. - - * symtab.h (symbol_record::visible): New data member. - (symbol_record::hide, symbol_record::show, symbol_record::is_visible): - New functions. - - * symtab.h (symbol_record::maybe_delete_def): New private function. - * symtab.cc (symbol_record::clear, symbol_record::alias, - symbol_record::pop_context, - symbol_record::define (octave_function *, unsigned int)): Use it. - (symbol_table::symbol_list): Only include visible symbols in list. - - * parse.y (frob_function): Hide nested function names. - - * parse.y (frob_function): Create full file name alias in - fbi_sym_tab and hide it from view. - * defun.cc (install_dld_function): Likewise. - - 2005-06-16 John W. Eaton - - * ov-dld-fcn.cc (octave_dld_function): Check Voct_file_dir to see - if function is system file, Vfcn_file_dir. - * defaults.cc (set_default_oct_file_dir): New function. - (install_defaults): Call it. - (Voct_file_dir): New global variable. - * defaults.h.in (Voct_file_dir): Provide decl. - - * variables.cc (function_out_of_date_internal): Use - Vignore_function_time_stamp only to avoid calling stat. - (symbol_out_of_date): Don't check Vignore_function_time_stamp here. - (function_out_of_date): Rename from function_out_of_date_internal. - - * defaults.cc (loadpath): Don't do anything if value is unchanged. - If loadpath changes, also update Vlast_prompt_time. - - 2005-06-14 John W. Eaton - - * pt-mat.cc (Vwarn_string_concat): Default value now false. - (symbols_of_pt_mat): Change initial value here as well. - - * ls-mat5.cc, mappers.cc, oct-stream.cc, pr-output.cc: Change all - uses of octave_is_NaN_or_NA to xisnan. - - 2005-06-14 Keith Goodman - - * input.cc (get_user_input): Renamed debug commands to dbnext, - dbstep, and dbcont. - * pt.cc: Renamed dbg_next to dbnext in comment string. - * pt.h: Renamed dbg_next to dbnext in comment string. - - 2005-06-14 David Bateman - - * pt-arg-list.cc (F__end__): Return 1 for dimensions larger than ndim. - - 2005-06-14 John W. Eaton - - * ls-mat5.cc (save_mat5_array_length): Special case for NaN, NA, - and Inf values. Only check if abs value is greater than FLT_MAX. - - 2005-06-09 David Bateman - - * ls-mat5.cc (save_mat5_element_length): 1 element strings will be - saved in a compressed format, so calculate the length accordingly. - - 2005-05-30 David Bateman - - * ls-mat5.cc (read_mat5_binary_element): Don't convert to string - if matrix is not of type mxCHAR_CLASS. - - 2005-05-23 John W. Eaton - - * file-io.cc (Ffopen): Don't fail with internal error message if - we fail to create a valid stream object. - (do_stream_open (const std::string&, const std::string&, - const std::string&, int&): Always create octave_stream object, - even if file pointer returne from fopen is 0. - - * load-save.cc (gripe_file_open): New function. - (get_file_format, Fload, Fsave): Use it. - - * DLD-FUNCTIONS/sort.cc (mx_sort, mx_sort_indexed): Return - appropriately sized empty values for empty args. - - * debug.cc (Fdbwhere, get_user_function): Look at - curr_caller_function, not curr_function, since function is now set - inside mapper, built-in (and therefore dld) functions too. - - 2005-05-21 John W. Eaton - - * pr-output.cc, pr-output.h (Vprint_empty_dimensions): Now extern. - * ov-cell.cc (octave_cell::print_raw): Conditionally print - dimensions of empty 2-d cell arrays. - - * DLD-FUNCTIONS/sort.cc (mx_sort, mx_sort_indexed): Return empty - values for empty args. - - * lex.l (handle_string): If single-quote string, \ and . have no - special meaning. - - 2005-05-18 John W. Eaton - - * pt-colon.cc (tree_colon_expression::make_range): Don't require - scalars values as range components. - - * version.h (OCTAVE_VERSION): Now 2.9.3 - (OCTAVE_API_VERSION): Now api-v16. - - * ov-base-sparse.cc (octave_base_sparse::print_raw): - Make spacing of output consistent with other parts of Octave. - - * DLD-FUNCTIONS/rand.cc (do_rand): Chop trailing singelton - dimensions before generating array. - - 2005-05-17 John W. Eaton - - * ov.cc (install_types): Don't call octave_stream::register_type. - * ov.h, ov.cc (octave_value::octave_value (const octave_stream&, - int): Delete constructor. - (octave_value::is_stream, octave_value::stream_value, - octave_value::stream_number): Delete functions. - * ov-base.h (octave_base_value::is_stream): Delete function. - * ov-base.h, ov-base.cc (octave_base_value::stream_value, - octave_base_value::stream_number): Delete functions. - * file-io.cc (Fisstream): Delete function. - * op-file.h, op-file.cc, OPERATORS/op-fil-sbm.cc, - OPERATORS/op-fil-scm.cc, OPERATORS/op-fil-sm.cc, - * OPERATORS/op-fil-b.cc, OPERATORS/op-fil-bm.cc, - OPERATORS/op-fil-cm.cc, OPERATORS/op-fil-cs.cc, - OPERATORS/op-fil-m.cc, OPERATORS/op-fil-s.cc, - OPERATORS/op-fil-lis.cc, OPERATORS/op-fil-rec.cc, - OPERATORS/op-fil-str.cc: Delete files. - * Makefile.in (OP_XSRC, SPARSE_OP_XSRC): Delete op-fil-*.cc from - the lists. - (OV_INCLUDES): Delete op-file.h from the list. - (OV_SRC): Delete op-file.cc from the list. - * oct-stream.cc, oct-stream.h (octave_stream_list::insert, - octave_stream_list::do_insert): Return stream number instead of - octave_value. - - 2005-05-16 David Bateman - - * ls-mat.cc (save_mat5_binary_element): Increase size of - compression buffer. - (load_mat5_binary_element): Allow ASCII encoded as UTF8, - and give error messages for multi-byte UTF8 and UTF16 and UTF32 - encodings. - - * ls-hdf5.h (H5T_NATIVE_IDX): New macro defining native indexing - type for HDF5 files - - * ls-hdf5.cc (save_hdf5_empty, load_hdf5_empty): Use - H5T_NATIVE_IDX to allow 64-bit indexing. - * ov-bool-sparse.cc (save_hdf5, load_hdf5): ditto. - * ov-re-sparse.cc (save_hdf5, load_hdf5): ditto. - * ov-cx-sparse.cc (save_hdf5, load_hdf5): ditto. - * ov-cell.cc (save_hdf5, load_hdf5): ditto. - - * load-save.cc (parse_save_options): Remove -nozip option. - (Fsave): If user defines file format, ignore completely the default - file format options. - - 2005-05-12 John W. Eaton - - * Makefile.in (oct-gperf.h): Try harder to cause Make to exit here - if gperf is missing or fails to create a valid file. - - 2005-05-10 John W. Eaton - - * lex.l ({SNLCMT}*\]{S}*): If whitespace was gobbled, - unput SPC before returning the token. - ({SNLCMT}*\}{S}*): Likewise. - - 2005-05-09 John W. Eaton - - * parse.y (except_command): Make catch clause optional in try - statements. - * pt-except.cc (tree_try_catch_command::eval): - Always buffer error messages. - - 2005-05-06 John W. Eaton - - * ov-struct.cc (octave_struct::save_ascii, - octave_struct::save_binary, octave_sruct::save_hdf5): - Always save cell array. - (octave_struct::load_ascii, octave_struct::load_binary, - octave_sruct::load_hdf5): Try to read old-style files correctly. - - * DLD-FUNCTIONS/__qp__.cc (qp): Use chol2inv to compute inverse - from Cholesky factors. - (cholinv): Delete. - - * DLD-FUNCTIONS/chol.cc (Fcholinv): New function. - (Fchol2inv): New function. - - 2005-05-05 Keith Goodman - - * ov-usr-fcn.cc (Fnargout, Fnargin): Update doc strings. - * help.cc (keywords): Update doc strings for varargin, varargout. - - 2005-05-05 John W. Eaton - - * oct-stream.cc (BEGIN_S_CONVERSION): Correctly handle width - specifiers. - - 2005-05-04 John W. Eaton - - * ls-mat5.cc (read_mat5_binary_element): Implement reading of N-d - structure arrays. - - * ov-struct.cc (octave_struct::load_hdf5, - octave_struct::load_binary, octave_struct::load_ascii): Assign - cell_value to map slot, not octave_value containing the cell. - - 2005-05-02 John W. Eaton - - * error.cc (Flasterr): Don't access argv if an error occurs when - creating it. - - * mkgendoc (main): Print header message. - - 2005-05-02 Bill Denney - - * data.cc, defaults.cc, DLD-FUNCTIONS/qz.cc, file-io.cc, - sighandlers.cc, syscalls.cc: Docstring fixes. - - 2005-05-02 John W. Eaton - - * pr-output.cc (octave_print_internal (std::ostream&, - const Range&, bool, int)): Don't print newline at end of broken - rows (that is handled by pr_col_num_header). - From Keith Goodman . - - * Makefile.in (octave$(EXEEXT)): List $(UMFPACK_LIBS) ahead of - $(BLAS_LIBS). - (OCTAVE_LIBS): Include $(GLPK_LIBS) in the list if dynamic linking - is not enabled. - From Dmitri A. Sergatskov . - - 2005-05-02 John W. Eaton - - * oct-map.h, oct-map.cc (Octave_map::seek, Octave_map::contents): - New non-const versions. - (Octave_map::assign (const octave_value_list&, - const std::string&, const Cell&)): Allow both tmp RHS and LHS to - be resized. For clarity, always resize to new_dims. - - 2005-05-02 David Bateman - - * ov-re-sparse.cc, ov-cx-sparse.cc (load_binary): read save_type into - one byte variable. - - 2005-04-29 John W. Eaton - - * oct-stream.cc (DO_LITERAL_CONVERSION): Cast fmt[i] to unsigned - char for comparison. - - * c-file-ptr-stream.h (c_file_ptr_stream): New template class, - converted from i_c_file_ptr_stream. - (i_c_file_ptr_stream, o_c_file_ptr_stream, io_c_file_ptr_stream): - Now typedefs. - (i_c_zfile_ptr_stream, o_c_zfile_ptr_stream, io_c_zfile_ptr_stream): - New typedefs. - * c-file-ptr-stream.h, c-file-ptr-stream.cc (c_zfile_ptr_buf): - New class. - - * oct-stdstrm.h (class octave_tstdiostream): New template class, - converted from octave_stdiostream. - (octave_stdiostream): Now a typedef. - [HAVE_ZLIB] (octave_zstdiostream): New a typedef. - * oct-stdstrm.cc: Delete. - * Makefile.in (DIST_SRC): Remove it from the list. - - 2005-04-29 David Bateman - - * Makefile.in: Add matrix_type.cc and spkron.cc to DLD_XSRC. - - * ls.mat.cc (read_mat5_binary_element): Allow for endian change - for compressed data elements. - - * ov-base-sparse.cc (assign): Invalidate matrix type. - - * ov-base-sparse.cc (SparseType sparse_type (void), - SparseType sparse_type (const SparseType&): - Functions to read and set sparse matrix type. - - * ov-bool-sparse.cc (load_binary): Remove third argument. - (load_hdf5): Cast hsize_t comparisions with int to avoid warning. - * ov-cx-sparse.cc (load_hdf5): Ditto. - * ov-re-sparse.cc (load_hdf5): Ditto. - - * ov-re-sparse.cc (convert_to_str_internal): Add third argument - for string type. - * ov-re-sparse.h (convert_to_str_internal): Adject declaration. - - * sparse-xdiv.cc (xdiv, xleftdiv): Pass SparseType as third - argument, use it and return it to allow caching of type. - * sparse-xdiv.h (xdiv, xleftdiv): Change declarations for third - argument of type SparseType. - - * DLD-FUNCTIONS/luinc.cc (Fluinc): Use type_name and not - class_name to test for real/complex sparse matrices. - Set matrix type. - - * DLD-FUNCTIONS/splu.cc (Fsplu): Set matrix type. - - * OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, - OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, - OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, - OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc, - OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc, - OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc, - OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc, - OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc, - OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc, - OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc (div, ldiv): - Pass and recache SparseType wirh xdiv/xleftdiv. - - 2005-04-29 John W. Eaton - - * file-io.cc (maybe_warn_interface_change): Delete function. - (fopen_mode_to_ios_mode): Don't call it. - - 2005-04-27 John W. Eaton - - * ov-fcn-handle.cc (octave_fcn_handle::subsref): - Check whether function referenced by handle is out of date. - (Ffunctions): Tag nameless user function as "command-line". - - * variables.cc (symbol_out_of_date (octave_fucntion *)): New function. - (function_out_of_date): New function. - * parse.y (load_fcn_from_file (const std::string&, bool)): - New function. - - * DLD-FUNCTIONS/gplot.l (gnuplot_init): New function to handle - initialization. If builtin variables have already been installed, - simply update our cached values. - (F__gnuplot_init__): Call gnuplot_init to do all the real work. - (Fclearplot, Fcloseplot, Fhold, Fishold, Fpurge_tmp_files, - F__gnuplot_raw__, F__gnuplot_set__, F__gnuplot_plot__, - F__gnuplot_splot__, F__gnuplot_replot__, Fgplot, Fgsplot, Fgraw, - Fgset, Fgshow): Call gnuplot_init before doing anything. - - * parse.y: (safe_fclose): Delete comment list to avoid memory leak. - (parse_and_execute (FILE *)): Also save and restore global_command. - - 2005-04-26 John W. Eaton - - * mkbuiltins (VAR_FILES): Expect $(VAR_FILES) to have .df suffix. - - * Makefile.in (clean): Also remove $(DLD_PICOBJ). - Use mk-oct-links --delete to remove links to .oct files. - Remove $(DOC_FILES) not $(DEF_FILES) and $(VAR_FILES). - - * mk-oct-links (mk-oct-links): Handle --delete option. - Rename -p option to be --print. Skip nonexistent .df files. - - 2005-04-25 John W. Eaton - - * oct-hist.cc (default_history_file, default_history_size): Now static. - * oct-hist.h: Delete decls. - - * oct-hist.cc (default_history_timestamp_format, - default_history_timestamp_format): New functions. - (Vdefault_history_timestamp_format): New variable. - (symbols_of_oct_hist): DEFVAR it. - (octave_history_write_timestamp): New function. - * oct-hist.h (octave_history_write_timestamp): Provide decl. - * toplev.cc (): call octave_history_write_timestamp here. - * octave.cc (maximum_braindamage): - Bind history_timestamp_format_string here. - - 2005-04-22 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.9.2. - (OCTAVE_API_VERSION): Now api-v15. - - * pager.cc (default_pager): Also append -X. - - * DLD-FUNCTIONS/dispatch.cc (Fdispatch): Dispatch help on "string" - and "sq_string" types. - (dispatch_record): Add extra space to force new paragraph after - each dispatched function name if we are formatting with Texinfo. - Force noindent of preceding "Overloaded function:" tag. - - 2005-04-21 John W Eaton - - * ls-mat5.cc (read_mat5_binary_element): Only read sparse matrix - values if sizeof (int) == sizeof (octave_idx_type). - - * DLD-FUNCTIONS/colamd.cc: These functions only work if - sizeof (int) == sizeof (octave_idx_type). - - * Makefile.in (parse.cc): Expect 14 shift/reduce conflicts. - - * parse.y (USING TITLE WITH AXES COLON OPEN_BRACE CLEAR): - Delete unused tokens. - - * DLD-FUNCTIONS/__qp__.cc (qp): Use octave_idx_type where needed. - - * DLD-FUNCTIONS/__qp__.cc: New file. - * Makefile.in (DLD_XSRC): Add it to the list. - - 2005-04-20 John W. Eaton - - * lex.l (IDENT): Allow $ in identifiers. - * utils.cc (valid_identifier): Likewise. - - 2005-04-19 John W. Eaton - - * toplev.cc (Fsystem): Move enum exec_type declaration to file - scope and rename system_exec_type. Change all uses. - - 2005-04-14 David Bateman - - * load-save.cc (Vdefault_save_format, Voctave_core_file_format): - Delete variables. - (Vdefault_save_options, Voctave_core_file_options): New variables. - (get_save_format): Delete function. - (parse_save_options (const string_vector&, ...), - parse_save_options (const std::string&, ...)): New functions. - (dump_octave_core): Allow save_as_floats to be used. - (dump_octave_core): Parse save options. - (Fsave): Split parsing of options, and default formats. - (default_save_format): Delete function and DEFVAR. - (default_save_options): New function. DEFVAR it. - (octave_core_file_format): Delete function and DEFVAR. - (octave_core_file_options): New function. DEFVAR it. - - * octave.cc (default_save_format): Delete binding - (default_save_options): New bindings - - * Makefile.in: Add luinc.cc to DLD_XSRC. - * DLD-FUNCTIONS/luinc.cc: New file for incomplete LU factorization. - - * ov-bool-sparse.h (index_vector): New function. - * ov-re-sparse.cc (index_vector): Ditto. - * ov-re-sparse.h (index_vector): Definition. - - * ov-mapper.cc (any_element_less_than, any_element_greater_than): - New versions for SparseMatrix - (SPARSE_MAPPER_LOOP_2, SPARSE_MAPPER_LOOP_1, SPARSE_MAPPER_LOOP): - New macros. - (octave_mapper::apply): Add special cases for sparse arguments to - the mapper functions - - * ov-re-sparse.cc (streamoff_array_value): Use octave_idx_type. - (convert_to_str_internal): New function. - * ov-re-sparse.h (convert_to_str_internal): Definition. - - * DLD-FUNCTIONS/sparse.cc (Fsparse): More care for nargin=2 case. - - * DLD-FUNCTIONS/splu.cc (Fsplu): Use octave_idx_type. - - 2005-04-14 John W. Eaton - - * strfns.cc (Fchar): If arg is a dq string, return a dq string. - - * pt-mat.cc (Vwarn_string_concat): New static variable. - (symbols_of_pt_mat): DEFVAR it. - (warn_string_concat): New function. - (maybe_warn_string_concat): New function. - (tree_matrix::rvalue): If all args are single quoted strings, - create a single quoted string object. If all args are strings - (any type), create a double quoted string object. If a mixture of - string types, maybe warn. - (class tm_row_const, class tm_row_const_rep, class tm_const): - Note whether all values are double or single quoted strings. - - * ov.h (octave_value::is_dq_string): New function. - - 2005-04-13 John W. Eaton - - * strfns.cc (Fchar): Create sq_string objects here. - - 2005-04-12 John W. Eaton - - * file-io.cc (Ffprintf, Fprintf, Fsprintf): - Pass octave_value to octave_stream::printf for FMT. - (Fscanf, Fsscanf): Likewise, for octave_stream::scanf and - octave_stream::oscanf. - - * oct-stream.cc, oct-stream.h (octave_stream::printf, - octave_stream::scanf, octave_stream::oscanf): New versions that - accept an octave_value for FMT. - (octave_stream::puts): New version that accepts octave_value for - value to print. - (octave_base_stream::do_scanf): If all_char_conv, force - conversion to string to avoid warning. - - * ov-str-mat.h, ov-str-mat.cc (octave_char_matrix_sq_str): New class. - (octave_char_matrix_dq_str): New typedef. - - * ov.h, ov.cc: All string constructors now take type argument. - - * ov.cc (install_types): Register octave_char_matrix_sq_str. - - * ov.h (octave_value::convert_to_str): New arg, type. - (octave_value::convert_to_str_internal): Likewise. - Change all derived classes. - - * ov.h (octave_value::is_sq_string): New predicate. - - * octave.gperf (__FILE__): Now a DQ_STRING. - - * ls-mat4.cc (read_mat_binary_data): Force sq strings here. - * ls-mat5.cc (read_mat5_binary_element): And here. - - * lex.l ([\;\,]): Return SQ_STRING, not STRING. - ([^#% \t\r\n\;\,\"\'][^ \t\r\n\;\,]*{S}*): Likewise. - (handle_string): Type of string to return depends on delimeter. - - * parse.y (DQ_STRING, SQ_STRING): New token types. - (STRING): Delete token type. - (string): New non-terminal. - (constant): Recognize string here instead of STRING. - (word_list): Likewise. - (opt_sep): Handle DQ_STRING and SQ_STRING. - - * OPERATORS/op-str-m.cc, OPERATORS/op-str-s.cc, - OPERATORS/op-str-str.cc: Define operators for both sq and dq - strings. - - 2005-04-08 John W. Eaton - - * Makefile.in (clean): Use exact filenames instead of *.xxx. - Also remove PKG_ADD. - (DISTFILES): Add gplot.cc to the list. - (maintainer-clean): Remove gplot.cc here. - - * Initial merge of 64-bit changes from Clinton Chee: - - 2005-04-07 John W. Eaton - - * ls-oct-ascii.h, ls-oct-ascii.cc (extract_keyword): Now template - functions defined in the header file. - - * ls-mat5.cc, ov-base-sparse.h, ov-base.h, ov-bool-sparse.cc - ov-cx-sparse.cc, ov-re-sparse.cc, ov.cc, pt-loop.cc, - sparse-xdiv.cc, sparse-xpow.cc, DLD-FUNCTIONS/sparse.cc, - DLD-FUNCTIONS/spdet.cc: - Use octave_idx_type instead of int where needed. - - 2005-03-31 Clinton Chee - - * Cell.cc, Cell.h, data.cc, defaults.cc, dirfns.cc, file-io.cc, - gripes.cc, gripes.h, ls-mat-ascii.cc, ls-mat4.cc, ls-oct-ascii.cc, - oct-map.cc, oct-map.h, oct-obj.cc, oct-obj.h, oct-stream.cc, - oct-stream.h, octave.cc, ops.h, ov-base-mat.cc, ov-base.h, - ov-bool-mat.cc, ov-cell.cc, ov-cs-list.cc, ov-cx-mat.cc, - ov-intx.h, ov-list.cc, ov-mapper.cc, ov-range.cc, ov-range.h, - ov-re-mat.cc, ov-scalar.h, ov-str-mat.cc, ov-struct.cc, ov.cc, - ov.h, pr-output.cc, pt-arg-list.cc, pt-cell.cc, pt-loop.cc, - pt-mat.cc, pt-select.cc, symtab.h, utils.cc, utils.h, xdiv.cc, - xpow.cc: - Use octave_idx_type instead of int where needed. - - 2005-04-01 John W. Eaton - - * toplev.cc (octave_config_info): Add USE_64_BIT_IDX_T to the list. - * oct-conf.h.in (OCTAVE_CONF_USE_64_BIT_IDX_T): Substitute here. - - 2005-03-31 John W. Eaton - - * DLD-FUNCTIONS/sort.cc: Don't use unsigned int for index into - dim_vector, or cast dim to unsigned int. - (Fsort): No need to cast arg before asking for dims. - - * DLD-FUNCTIONS/gcd.cc (Fgcd): Use OCTAVE_LOCAL_BUFFER to allocate - local array of NDArray objects. - - 2005-03-31 Clinton Chee - - * DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc, - DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colloc.cc, - DLD-FUNCTIONS/daspk.cc, DLD-FUNCTIONS/dasrt.cc, - DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/det.cc, - DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/expm.cc, DLD-FUNCTIONS/fft.cc, - DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftn.cc, - DLD-FUNCTIONS/fftw_wisdom.cc, DLD-FUNCTIONS/filter.cc, - DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/fsolve.cc, - DLD-FUNCTIONS/gcd.cc, DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/inv.cc, - DLD-FUNCTIONS/kron.cc, DLD-FUNCTIONS/lu.cc, - DLD-FUNCTIONS/minmax.cc, DLD-FUNCTIONS/quad.cc, - DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/rand.cc, - DLD-FUNCTIONS/schur.cc, DLD-FUNCTIONS/sort.cc, - DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/svd.cc, - DLD-FUNCTIONS/syl.cc: - Use octave_idx_type instead of int where needed. - - 2005-04-06 David Bateman - - * Makefile.in: Link to UMFPACK_LIBS. Add zfstream.{cc,h} to build and - dist files. - - * zfstream.cc: New file for C++ binding for fstream like class for - zlib. - - * zfstream.h: Definition for fstream like C++ bindings to zlib. - - * load-save.cc (static bool check_gzip_magic (const std::string&)): - New function to look for GZIP magic - (static load_save_format get_file_format (const istream &file)): New - function split from old get_file_format but passed istream to allow - use with zlib istream. - (static load_save_format get_file_format (const std::string&, - const std::string&, bool)): Modify the test uncompressed file first, - then compressed version - (Fload) Allow -v6, -6, -v7 and -7 options. Split load code to allow - use of zlib. - (Fsave) Allow -zip, -z, -v6, -6, -v7 and -7 options. Split save code - to allow use of zlib. - - * load-save.h: add LS_MAT7_BINARY to load_save_format enum - - * ls-mat5.cc (read_mat5_binary_element): Test for miCOMPRESSED flag for - matlab v7 files, and decompress data in memory. Allow reading of matlab - logical variables either in mxDOUBLE_CLASS or mxUINT8_CLASS. - (int save_mat5_array_length(const double*, ...): New function to - calculate number of bytes used to save NDArray. - (int save_mat5_array_length(const Complex*, ...): New function to - calculate number of bytes used to save ComplexNDArray. - (int save_mat5_element_length): New function to find number of bytes - needed to save data element. - (save_mat5_binary_element): New input arguments, mat7_format and - compressing, that define if we are in a matlab v7 format and where we - are currently compressing the data element. If mat7_format use - miCOMPRESSED flag for matlab v7 files, and compress data in memory. - Add capability to save logical variables as mxUINT8_CLASS. If v7 - format maximum variable length is 63 characters and not 31. Use the - save_mat5_element_length function to pre-calculate the number of bytes - taken by a variable rather than use a negative seek to correct after - writing (zlib can't do negative seeking) - - * ls-mat5.h: Add to miCOMPRESSED, miUTF8, miUTF16 and miUTF32 flags to - the enum mat5_data_type. - (save_mat5_binary_element): Add args mat7_format and compressing to the - definition. - - 2005-04-06 John W. Eaton - - * OPERATORS/op-scm-scm.cc: Delete #pragma implementation. - - 2005-04-05 John W. Eaton - - * ov-ch-mat.h (octave_char_matrix::index_vector): New function. - - * oct-stream.cc (BEGIN_C_CONVERSION): Clear stream state if - we hit EOF after we read something. - - * pt-assign.cc (tree_multi_assignment::rvalue): - Allow assignments of the form [a,b,c] = x{:}. - - 2005-03-30 John W. Eaton - - * mappers.cc (install_mapper_functions): Use std:: as needed. - * defun-int.h (DEFUN_MAPPER_INTERNAL): Don't use X_CAST on - function pointer args. - - * ov-complex.cc, ov-cx-mat.cc, xpow.cc, ls-mat5.cc: Use std:: for - Complex functions instead of relying on wrappers from oct-cmplx.h. - - * oct-stream.cc (octave_scan): Initialize c1 to EOF. - - 2005-03-29 John W. Eaton - - * utils.cc (get_dimensions): Produce error instead of warning if - given a matrix argument. - - * load-save.cc (Fload, Fsave): Also accept -V4 option. - - * ls-hdf5.h (hdf5_fstreambase::hdf5_fstreambase, - hdf5_fstreambase::open): Use & instead of == to test whether mode - is std::ios::in or std::ios::out. - (hd5_ifstream::istream, hd5_ifstream::open, hd5_ofstream::istream, - hd5_ofstream::open): Default mode now includes binary flag. - - 2005-03-28 John W. Eaton - - * oct-stream.cc (octave_stream::write): For compatibility, Write - zeros instead of seeking if SKIP is nonzero. - - * DLD-FUNCTIONS/gplot.l (Fgraw): Recommend __gnuplot_raw__, not - __gnuplot__raw__. - (Fgshow): Recommend __gnuplot_show__, not __gnuplot__show__. - Don't add "mark_as_rawcommand ("replot")" to PKG_ADD file. - - 2005-03-26 John W. Eaton - - * input.cc (gnu_readline): Don't wrap call to command_editor::readline - with {BEGIN,END}_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE. - - 2005-03-25 John W. Eaton - - * toplev.cc (main_loop): Don't use octave_set_current_context here. - - * pt-loop.cc (simple_for_loop::eval): In for i = matrix ... end, - skip loop if matrix is empty. Likewise for cell arrays. - - 2005-03-24 John W. Eaton - - * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Texinfoize doc string. - - * Makefile.in (install-oct): Always create $(octfiledir) and - install PKG_ADD file there. - - * octave.cc (octave_main): Fix logic in test for exit after - evaluating --eval option code. - - 2005-03-23 John W. Eaton - - * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Require 9 arguments. - Print error messages and return early if value extractions fail. - Default for message level now 0. - Rename local variable error to be errnum. - (glpk_fault_hook): Call message instead of writing to octave_stderr. - (glpk_fault_hook): Call error instead of writing to octave_stderr. - (glpk): Likewise. - Declare mark static. Delete declaration of fperr. - (glpk): Delete unnecessary casts. - - * DLD-FUNCTIONS/__glpk__.cc (OCTAVE_GLPK_GET_REAL_PARAM, - OCTAVE_GLPK_GET_INT_PARAM): New macros. - (F__glpk__): Use them. - - * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Accept lpsolver and - save_pb in param arg instead of as separate args. - Arg list now matches new interface for glpk.m. - Don't return lambda and redcosts fields in extra if isMIP. - - * toplev.cc (do_octave_atexit): Call reset_error_handler before - each call to feval. - - 2005-03-22 John W. Eaton - - * Makefile.in: Add special rule for __glpk__.oct. - - * toplev.cc (octave_config_info): Add GLPK_LIBS to the list. - * oct-conf.h.in (OCTAVE_CONF_GLPK_LIBS): Substitute here. - - * DLD-FUNCTIONS/__glpk__.cc (F__glpk__, glpk): - Adapt to Octave coding style. - (glpk): Move decls closer to first use. - (F__glpk__): Eliminate unnecessary loop seting inf values. - Ensure that isMIP is initialized. - Declare sense, nz, and isMIP volatile to avoid GCC warnings that - these variables might be might be clobbered by `longjmp' or `vfork' - - * DLD-FUNCTIONS/__glpk__.cc: New file. - - * Makefile.in (DLD_XSRC): Add it to the list. - - 2005-03-21 John W. Eaton - - * octave.cc (maximum_braindamage): - Don't set warn_matlab_incompatible to true. - - 2005-03-17 John W. Eaton - - * lex.l (class bracket_brace_paren_nesting_level): Use static - const int members instead of anonymous enum. - - 2005-03-16 John W. Eaton - - * ov-struct.cc (octave_struct::save_ascii): Don't convert Cell - object to cs-list. - (octave_struct::save_binary): Likewise - (octave_struct::save_hdf5): Likewise. - - * DLD-FUNCTIONS/gplot.l (Fset, Fshow): Delete. - (F__gnuplot_plot__): Rename from Fgplot. - (F__gnuplot_splot__): Rename from Fgsplot. - (F__gnuplot_raw__): Rename from Fgraw. - (F__gnuplot_set__): Rename from Fgset. - (F__gnuplot_show__): Rename from Fgshow. - (F__gnuplot_replot__): Rename from Freplot. - (WARN_DEPRECATED, DEPRECATED_BODY): New macros. - (Fgplot, Fgsplot, Fgraw, Fgset, Fgshow): New functions. - - 2005-03-15 John W. Eaton - - * lex.l ({NL}): Reset lexer_flags.doing_rawcommand - state here. - - * version.h (OCTAVE_API_VERSION): Now 2.9.0. - (OCTAVE_API_VERSION): Now api-v14. - - * Makefile.in (INCLUDES): Delete sparse-ops.h from the list. - - * cellfun.cc: New function from Octave-forge. Adapt to Octave - coding standards. - * Makefile.in (DLD_XSRC): Add it to the list. - - 2005-03-14 John W. Eaton - - * DLD-FUNCTIONS/dispatch.cc (Fbuiltin): Avoid crash if symbol - lookup fails. - - 2005-03-10 John W. Eaton - - * toplev.cc (Foctave_config_info): Print error instead of crashing - if struct does not contain field we are looking for. - - 2005-03-09 John W. Eaton - - * load-save.cc (Fload, Fsave): Accept -text as an alias for -ascii. - Issue warning for future change in meaning of -ascii. - - * Makefile.in (bin-dist): Delete target. - (BINDISTFILES, BINDISTLIBS): Delete variables. - - 2005-03-04 John W. Eaton - - * octave.cc (octave_main): Concatenate all --eval arguments. - - 2005-03-03 John W. Eaton - - * input.cc (input_from_command_line_file): Move definition here. - * parse.y: From here. - * input.h (input_from_command_line_file): Move decl here. - * parse.h: From here. - - * input.cc (octave_gets): - Don't save history if input is from command line file. - - * parse.y (parse_and_execute, parse_fcn_file, eval_string): - Don't alter value of input_from_command_line_file here. - (input_from_command_line_file): Default value is false. - (eval_string): Turn off line editing here. - - * toplev.cc, toplev.h (main_loop): Delete fun_to_call arg and all uses. - - * octave.cc (fun_to_call): Delete static variable. - (persist, code_to_eval): New static variables. - (long_opts): Delete --funcall, add --eval and --persist. - (usage_string, verbose_usage, octave_main): Likewise. - (FUNCALL_OPTION): Delete. - (EVAL_OPTION, PERSIST_OPTION): New macros. - (maximum_braindamage): Set persist to true. - (execute_eval_option_code): New function. - (restore_program_name): New function. - (execute_command_line_file): New function. - (octave_main): Call execute_eval_option code and - execute_command_line file. If persist, go interactive even after - evaluating --eval code and/or command-line file. - - * ov-bool-sparse.h, ov-bool-sparse.cc - (octave_sparse_bool_matrix::sparse_matrix_value, - octave_sparse_bool_matrix::sparse_complex_matrix_value): - Accept bool arg. - - * parse.y (looks_like_copyright): Check first 9 characters, not 14. - - 2005-03-02 John W. Eaton - - * oct-stream.cc (octave_scan (std::istream&, const - scanf_format_elt&, double*)): New specialization to handle Inf, - NaN, and NA. - - * parse.y (looks_like_copyright): - Rename from looks_like_octave_copyright. Change all uses. - Simply match "Copyright". - - 2005-03-01 John W. Eaton - - * DLD-FUNCTIONS/odessa.cc: Delete. - * Makefile.in (DLD_XSRC): Remove it from the list. - (OPT_HANDLERS): Remove ODESSA-opts.cc from the list. - - 2005-02-28 John W. Eaton - - * toplev.cc (octave_config_info): Remove LIBGLOB and GLOB_INCFLAGS - from the list. - * oct-conf.h.in (OCTAVE_CONF_LIBGLOB, OCTAVE_CONF_GLOB_INCFLAGS): - Delete. - * Makefile.in (OCTAVE_LIBS): Remove $(LIBGLOB) from the list. - - 2005-02-25 John W. Eaton - - Sparse merge. - - 2005-02-25 John W. Eaton - - * DLD-SRC/rand.cc (Frand): Accept "state" as an alias for "seed". - - * DLD-SRC/dispatch.cc: New file. - * Makefile.in (DLD_XSRC): Add it to the list. - - 2005-02-13 David Bateman - - * ov-fcn-inline.h, DLD-FUNCTIONS/spparms.cc, DLD-FUNCTIONS/gcd.cc: - Remove additional licensing clause, with authors permission - - * ov-base-sparse.h: New constructor to cache SparseType, not yet - used - * ov-re-sparse.h: likewise - * ov-cx-sparse.h: likewise - * ov.h: Likewise - - * sparse-xdiv.cc: Remove spparms umfpack flag - - * DLD-FUNCTIONS/spparms.cc: Warning that umfpack flag is ignored. - - 2005-01-16 David Bateman - - * ls-mat5.cc (read_mat5_integer_data): Change "T &m" to "T *m" and - instantiate with values like octave_int8 rather than int8NDArray. - Modify function to fit - (read_mat5_binary_element): Use new form of read_mat_integer_data - to read data directly into sparse matrix - (write_mat5_integer_data): Change "const T &m" to "T *m", etc. New - instantiation with int. - (save_mat5_binary_element): Modify to save sparse data - - 2005-01-15 David Bateman - - * data.cc (do_cat): Use first non-empty matrix as base for - concatenation. - * pt-mat.cc (tree_matrix::rvalue): ditto. - - 2005-01-14 John W. Eaton - - * ov.cc (do_cat_op): When checking for empty args, use - all_zero_dims, not numel. - * ov.h (octave_value::all_zero_dims): New function. - - * ov-bool-sparse.cc (try_narrowing_conversion): Convert to - bool_matrix, not matrix. - - 2005-01-13 David Bateman - - * data.cc (make_diag): Use numel not capacity to remove ambiguity. - * ov.h (octave_value::capacity): New virtual funtion. - * ov-base.h (octave_base_value::capacity): New function calls numel. - * data.cc (Freshape): Use arg.numel() rather than arg.dims().numel() - since sparse numel now consistent. - * symtab.h (symbol_record::symbol_def::capacity, - symbol_record::capacity): New methods. - * symtab.cc (symbol_record::print_symbol_info_line, - symbol_table::parse_whos_line_format, symbol_table::maybe_list): - used capacity() and not numel() to properly assess size of - sparse objects. - * ov-base-sparse.h (octave_base_sparse::capacity): New function, - (octave_base_sparse::numel): Delete. - * ov-re-sparse.cc (octave_sparse_matrix::streamoff_array_value): - Only fill from non-zero elements of sparse array. - * DLD-FUNCTIONS/splu.cc (Fsplu): Change use of nelem to numel. - * ov.cc (do_cat_op): Early return for concatenation with empty - objects. - - 2005-01-12 John W. Eaton - - * DLD-FUNCTIONS/find.cc (Ffind): Make it work for character strings. - - 2005-01-11 John W. Eaton - - * OPERATORS/op-double-conv.cc: New conversions for sparse_matrix - and sparse_bool_matrix to matrix. - - 2005-01-11 David Bateman - - * ov-base-sparse.h (octave_base_sparse::any, - octave_base_sparse::all): Use new constructors, etc as pointed out - by JWE. - - 2005-01-10 John W. Eaton - - * DLD-FUNCTIONS/sparse.cc (MINMAX_BODY, Fspatan2, make_spdiag): - Write retval(0) = result instead of retval(0) = octave_value (result). - * DLD-FUNCTIONS/splu.cc (Fsplu): Likewise. - - 2005-01-08 David Bateman - - * ls-mat5.cc (read_mat5_integer_data): Instantiate for Array - (read_mat5_binary_element): Add code to read sparse matrices - saved in matlab v5 format - - 2005-01-07 David Bateman - - * OPERATORS/op-bm-sbm.cc, OPERATORS/op-b-sbm.cc, - OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, - OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, - OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, - OPERATORS/op-sbm-b.cc, OPERATORS/op-sbm-bm.cc, - OPERATORS/op-sbm-sbm.cc, OPERATORS/op-scm-cm.cc, - OPERATORS/op-scm-cs.cc, OPERATORS/op-scm-m.cc, - OPERATORS/op-scm-s.cc, OPERATORS/op-scm-scm.cc, - OPERATORS/op-scm-sm.cc, OPERATORS/op-sm-cm.cc, - OPERATORS/op-sm-cs.cc, OPERATORS/op-sm-m.cc, - OPERATORS/op-sm-s.cc, OPERATORS/op-sm-scm.cc, - OPERATORS/op-sm-sm.cc, OPERATORS/op-s-scm.cc, - OPERATORS/op-s-sm.cc: New octave_value constructors allow - macros from ops.h to be used rather than sparse-ops.h. Remove - other explicit uses of maybe_mutate. - - * sparse-ops.h: delete file. - - * colamd.cc (Fcolamd, Fsymamd, Fetree): Remove no longer needed - use of get_rep() and use the sparse matrix conversion functions - directly. - - * data.cc (Freshape): Use arg.dims().numel() rather than - arg.numel() due to definition of numel for sparse matrices. - - * sparse.cc (Ffull, Fspfind, SPARSE_DIM_ARG_BODY, MINMAX_BODY, - Fspatan2, make_spdiag): Convert to use new octave_value sparse - constructors, sparse matrix conversion functions and remove - maybe_mutate calls. - (Fspreshape): Delete - - * splu.cc (Fsplu): Remove remaining explicit octave_value - construction. - - * ov-base-sparse.h (do_index_op, resize, reshape, permute, squeeze): - Move these methods from the derived classes. - * ov-base-spase.cc (do_index_op): Move this method from the derived - classes. - * ov-bool-sparse.h (do_index_op, resize, reshape, permute, squeeze): - delete. - * ov-re-spase.cc (do_index_op): delete. - * ov-cx-sparse.h (do_index_op, resize, reshape, permute, squeeze): - delete. - * ov-cx-spase.cc (do_index_op): delete. - * ov-bool-spase.cc (do_index_op): delete. - * ov-re-sparse.h (do_index_op, resize, reshape, permute, squeeze): - delete. - - * DLD-FUNCTIONS/spdet.cc (Fspdet): Remove use of SparseDet and - SparseComplexDET classes and use DET and ComplexDET classes. - - * DLD-FUNCTIONS/colamd.cc op-bm-sbm.cc OPERATORS/op-b-sbm.cc - OPERATORS/op-cm-scm.cc OPERATORS/op-cm-sm.cc OPERATORS/op-cs-scm.cc - OPERATORS/op-cs-sm.cc OPERATORS/op-fil-sbm.cc OPERATORS/op-fil-scm.cc - OPERATORS/op-fil-sm.cc OPERATORS/op-m-scm.cc OPERATORS/op-m-sm.cc - OPERATORS/op-sbm-b.cc OPERATORS/op-sbm-bm.cc OPERATORS/op-sbm-sbm.cc - OPERATORS/op-scm-cm.cc OPERATORS/op-scm-cs.cc OPERATORS/op-scm-m.cc - OPERATORS/op-scm-s.cc OPERATORS/op-scm-scm.cc OPERATORS/op-scm-sm.cc - OPERATORS/op-sm-cm.cc OPERATORS/op-sm-cs.cc OPERATORS/op-sm-m.cc - OPERATORS/op-sm-s.cc OPERATORS/op-sm-scm.cc OPERATORS/op-sm-sm.cc - OPERATORS/op-s-scm.cc OPERATORS/op-s-sm.cc ov-base-sparse.cc - ov-base-sparse.h ov-bool-sparse.cc ov-bool-sparse.h ov-cx-sparse.cc - ov-cx-sparse.h ov-re-sparse.cc ov-re-sparse.h sparse-base-lu.cc - sparse-base-lu.h DLD-FUNCTIONS/sparse.cc sparse-xdiv.cc sparse-xdiv.h - sparse-xpow.cc sparse-xpow.h DLD-FUNCTIONS/spdet.cc - DLD-FUNCTIONS/splu.cc DLD-FUNCTIONS/spparms.cc: Remove additional - licensing clause with authors permission. - - 2005-01-05 David Bateman - - * DLD-FUNCTIONS/colamd.cc: Rename from colamdoct.cc. Base colamd.h - now found in COLAMD/colamd.h. - (Fcolamd): Return value is now used. - (Fsymamd): ditto. - - * Makefile.in: include colamd.cc in DLD_XSRC. - - * ov.h (sparse_matrix_value, sparse_complex_matrix_value, - sparse_bool_matrix_value): New virtual functions - - * ov-base.cc (octave_base_value::sparse_matrix_value, - octave_base_value::sparse_complex_matrix_value, - octave_base_value::sparse_bool_matrix_value): New default sparse - matrix extraction functions. - - * ov-base.h (sparse_matrix_value, sparse_complex_matrix_value, - sparse_bool_matrix_value): Declare them. - - * ov-re-mat.cc (octave_matrix::sparse_matrix_value, - octave_matrix::sparse_complex_matrix_value): Conversion functions. - - * ov-re-mat.h (sparse_matrix_value, sparse_complex_matrix_value): - Declare them. - - * ov-cx-mat.cc (octave_complex_matrix::sparse_matrix_value, - octave_complex_matrix::sparse_complex_matrix_value): Conversion - functions. - - * ov-cx-mat.h (sparse_matrix_value, sparse_complex_matrix_value): - Declare them. - - * ov-bool-mat.h (sparse_matrix_value, sparse_complex_matrix_value, - sparse_bool_matrix_value): Conversion functions. - - * DLD_FUNCTIONS/spdet.cc (Fspdet): Use the above constructors - and conversion functions. - * DLD_FUNCTIONS/splu.cc (Fsplu): ditto. - - 2004-12-30 John W. Eaton - - * DLD-FUNCTIONS/splu.cc (Fsplu): Avoid shadow warnings. - - * sparse-xpow.cc (elem_xpow): Delete unsed variables. - * sparse-xdiv.cc (x_el_div): Likewise. - - * DLD-FUNCTIONS/det.cc (Fdet): Delete unused argument nargout. - * DLD-FUNCTIONS/spdet.cc (Fspdet): Likewise. - - * DLD-FUNCTIONS/sparse.cc (Fnzmax): Return a value. - - * ov.cc, ov.h (octave_value::octave_value (const SparseMatrix&), - (octave_value::octave_value (const SparseBoolMatrix&), - (octave_value::octave_value (const SparseComplexMatrix&)): - New constructors. - - 2004-12-29 John W. Eaton - - * DLD-FUNCTIONS/sparse.cc (SPARSE_DIM_ARG_BODY): Rename from - DEFUN_DLD_SPARSE_DIM_ARG. Omit HELP arg. Omit DEFUN_DLD, so the - macro only defines the function body. - (Fspprod, Fspcumprod, Fspsum, Fspcumsum, Fspsumsq): Define with - DEFUN_DLD, not DEFUN_DLD_SPARSE_DIM_ARG. Use SPARSE_DIM_ARG_BODY - to define function body. - - * DLD-FUNCTIONS/sparse.cc (load_sparse_type, sparse_type_loaded): - Delete function, variable, and all uses. - * ov.cc: Include ov-bool-sparse.h, ov-re-sparse.h, ov-cx-sparse.h. - (install_types): Register sparse types. - - Merge of sparse code from David Bateman and - Andy Adler . - - * sparse-xdiv.cc, sparse-xpow.cc: New files. - * Makefile.in (DIST_SRC): Add them to the list. - - * sparse-ops.h sparse-xdiv.h, sparse-xpow.h: New files. - * Makefile.in (INCLUDES): Add them to the list. - - * DLD-FUNCTIONS/colamdoct.cc, DLD-FUNCTIONS/sparse.cc, - DLD-FUNCTIONS/spdet.cc, DLD-FUNCTIONS/splu.cc, - DLD-FUNCTIONS/spparms.cc: New files. - * Makefile.in (DLD_XSRC): Add them to the list. - - * ov-base-sparse.cc, ov-base-sparse.h, ov-bool-sparse.cc, - ov-bool-sparse.h, ov-cx-sparse.cc, ov-cx-sparse.h, - ov-re-sparse.cc, ov-re-sparse.h: New files. - * Makefile.in (OV_SPARSE_SRC, OV_SPARSE_INCLUDES): New lists. - (OV_SRC): Add $(OV_SPARSE_SRC) to the list. - (INCLUDES): Add $(OV_SPARSE_INCLUDES) to the list. - - * OPERATORS/op-bm-sbm.cc, OPERATORS/op-b-sbm.cc, - OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, - OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, - OPERATORS/op-fil-sbm.cc, OPERATORS/op-fil-scm.cc, - OPERATORS/op-fil-sm.cc, OPERATORS/op-m-scm.cc, - OPERATORS/op-m-sm.cc, OPERATORS/op-sbm-b.cc, - OPERATORS/op-sbm-bm.cc, OPERATORS/op-sbm-sbm.cc, - OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc, - OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc, - OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc, - OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc, - OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc, - OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc, - OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc: New files. - * Makefile.in (SPARSE_OP_XSRC): New list. - (OP_XSRC): Add $(SPARSE_OP_XSRC) to the list. - - 2005-02-23 John W. Eaton - - * parse.y (fold (tree_binary_expression*)): Skip constant folding - for some expressions to preserve warnings. - (Vwarn_associativity_change): New static variable. - (warn_associativity_change): New function. - (symbols_of_parse): DEFVAR warn_associativity_change. - (maybe_warn_associativity_change): New function. - (make_binary_op): Use it. - - 2005-02-22 John W. Eaton - - * parse.y (POW, EPOW): Use %left associativity for compatibility. - - * ov-base-int.cc (octave_baes_int_matrix::load_binary): - Handle arrays with only one dimension. - * ov-bool-mat.cc (octave_bool_matrix::load_binary): Likewise. - * ov-cell.cc (octave_cell::load_binary): Likewise. - * ov-cell.cc (octave_complex_matrix::load_binary): Likewise. - * ov-re-mat.cc (octave_matrix::load_binary): Likewise. - * ov-str-mat.cc (octave_char_matrix_str::load_binary): Likewise. - - * ov-mapper.cc (octave_mapper::subsref): Return retval after - calling next_subsref. - - * ov-mapper.cc (octave_builtin::subsref): If nargout is 0 and we - have additional indexing to perform, set it to 1 before calling - do_multi_index_op. - - * oct-map.cc (Octave_map::intfield, Octave_map::stringfield): - New functions. - * oct-map.h: Provide decls. - * DLD-FUNCTIONS/time.cc (extract_tm): Use intfield and stringfield - to access map elements. - - 2005-02-21 John W. Eaton - - * ov-builtin.cc (octave_builtin::subsref): If nargout is 0 and we - have additional indexing to perform, set it to 1 before calling - do_multi_index_op. - * ov-usr-fcn.cc (octave_user_function::subsref): Likewise. - - * DLD-FUNCTIONS/gplot.l (send_to_plot_stream): - Replot with no previous plot is a no-op. - (makeplot): Likewise. - (Vautomatic_replot): Don't use this variable in low-level functions. - - 2005-02-18 John W. Eaton - - * Makefile.in (oct-gperf.h): Remove -E from list of gperf options. - - * data.cc (do_permute): Use zero-based indexing for permutation - vector that is passed to octave_value::permute method. - Allow permutation vector longer than number of dimenensions of - permuted matrix. - - 2005-02-17 John W. Eaton - - * version.h (OCTAVE_API_VERSION): Now 2.1.64-cvs. - (OCTAVE_API_VERSION): Now api-v12-cvs. - - 2005-02-16 John W. Eaton - - * ov-base-mat.h (octave_base_matrix::squeeze): Explicitly convert - result of matrix.squeeze() to MT. - - 2005-02-15 John W. Eaton - - * dirfns.cc (deftypefn): Don't print to octave_stdout if nargout > 0. - - * pt-mat.cc (tree_matrix::rvalue): Min size of ra_idx is 2. - - * file-io.cc (Ffclear): New function. - - * sighandlers.h: Define SIGCHLD if it is not already defined and - SIGCLD is defined. - - * sighandlers.cc (octave_set_signal_handler): Request system calls - restarted if interrupted by signals (except for SIGALRM). - * dirfns.cc (Fls): Don't bother with sleeping or checking errno. - - 2005-02-11 John W. Eaton - - * sighandlers.cc (sigpipe_handler): Don't try to take action. - Set octave_signal_caught and octave_signals_caught here. - (sigchld_handler): Call octave_child_list::wait here. - Set octave_signal_caught and octave_signals_caught here. - (octave_signals_caught): New static file-scope variable. - (sigint_handler): Also set octave_signal_caught. - - * sighandlers.cc (sigpipe_handler): - - * DLD-FUNCTIONS/gplot.l (plot_stream_event_handler): Rename from - plot_stream_death_handler. Return true if plotter has exited. - Call close_plot_stream with false arg. - (plot_stream_pid): Delete static file-scope variable and all uses. - (close_plot_stream): New arg, remove_from_child_list, with default - value of true. Only call octave_child_list::remove if - remove_from_child_list is true. - - * pager.cc (octave_pager_pid, saved_interrupt_handler, - interrupt_handler_saved): Delete static file-scope variables and - all uses. - (clear_external_pager): Do nothing if external_pager is 0. - (pager_event_handler): Rename from pager_death_handler. - Improve warning message. Return true if pager has exited. - (octave_pager_buf::do_sync): Check errno == EPIPE after write. - (flush_octave_stdout): No need to check external_pager before - calling clear_external_pager. - - * toplev.cc (recover_from_exception): Set octave_signal_caught to zero. - (main_loop): Set octave_signal_hook to octave_signal_handler here. - - * sighandlers.cc (octave_signal_handler): New function. - * sighanlders.h: Provide decl. - - * sighandlers.cc (install_signal_handlers): Initialize - octave_signals_caught. - - * sighandlers.h (octave_child::status, have_status): New data members. - (child_event_handler): Rename from dead_child_handler. - Change all uses. - (octave_child_list::reap, octave_child_list::wait): New functions. - (octave_child_list::length, octave_child_list::do_length, - octave_child_list::elem, octave_child_list::do_elem, - octave_child_list::list, octave_child_list::curr_len): Delete. - - * sighandlers.h, sighandlers.cc - (octave_child_list::octave_child_list_rep): New class. - - * input.cc (gnu_readline, octave_gets, get_user_input): - Call OCTAVE_QUIT before doing anything. - - * base-list.h (octave_base_list::remove_if): New function. - - * TEMPLATE-INST/Array-oc.cc: Delete. - * Makefile.in (TI_XSRC): Remove from list. - - 2005-02-10 Driss Ghaddab - - * cutils.c (octave_usleep) [HAVE_POLL]: Fix typo. - - 2005-02-10 John W. Eaton - - * variables.cc (symbol_exist): Don't search path if explicitly - asked for a variable or builtin. From David Bateman - . - - 2005-02-09 John W. Eaton - - * variables.cc (same_file): New static function. - (symbol_out_of_date): Use it. - - * syscalls.cc (Fcanonicalize_file_name): New function. - - 2005-02-08 Walter Landry - - * symtab.h (symbol_record::mark_as_command): Avoid AIX compiler error. - - 2005-02-07 John W. Eaton - - * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Return [] instead - of [](1x0) for scalar arg of zero. - - 2005-02-06 John W. Eaton - - * DLD-FUNCTIONS/gplot.l (tmp_files): Delete. - From Todd Neal . - - 2005-02-04 John W. Eaton - - * sighandlers.cc (octave_child_list::~octave_child_list): Move here. - * sighandlers.h: From here. - - 2005-02-02 John W. Eaton - - * Makefile.in (parse.cc): Expect 12 shift/reduce conflicts. - * parse.y (loop_command): Allow "for (k=1:10) ... endfor". - - 2005-01-27 David Bateman - - * ov-mapper.cc (octave_mapper::apply): Only work on real arguments - if c_c_map_fcn or d_d_map_fcn or d_b_map_fcn is defined.xo - - 2005-01-26 Joel Andersson - - * help.cc (keywords): Document endswitch. - - 2005-01-21 John W. Eaton - - * DLD-FUNCTIONS/filter.cc (filter): Avoid slow Marray indexing ops. - - 2005-01-20 John W. Eaton - - * Makefile.in (EXTRAS): Move ov-base-mat.cc ov-base-scalar.cc here. - (OV_SRC): From here. - - 2005-01-18 John W. Eaton - - * ov-complex.h (octave_complex::any): New function. - * ov-scalar.h (octave_scalar::any): New function. - - * file-io.cc (Fmkstemp): Fix doc string. Error message belongs in - third output value. From Mats Jansson . - - 2005-01-12 John W. Eaton - - * DLD-FUNCTIONS/find.cc (Ffind): Make it work for character strings. - - 2005-01-11 John W. Eaton - - * DLD-FUNCTIONS/gplot.l (UNOP): Avoid trailing comment. - - 2005-01-10 John W. Eaton - - * ls-oct-ascii.cc (extract_keyword (std::istream&, const - string_vector&, std::string&, int&, const bool)): - Remove duplicate definition. - - 2004-12-27 Martin Dalecki - - * Cell.cc, c-file-ptr-stream.cc, comment-list.cc, oct-map.cc, - oct-obj.cc, ov-base.cc, ov-base-int.cc, ov-base-mat.cc, - ov-base-scalar.cc, ov-bool.cc, ov-bool-mat.cc, ov-builtin.cc, - ov.cc, ov-cell.cc, ov-ch-mat.cc, ov-colon.cc, ov-complex.cc, - ov-cs-list.cc, ov-cx-mat.cc, ov-dld-fcn.cc, ov-fcn.cc, - ov-fcn-handle.cc, ov-fcn-inline.cc, ov-file.cc, ov-int16.cc, - ov-int32.cc, ov-int64.cc, ov-int8.cc, ov-list.cc, ov-mapper.cc, - ov-range.cc, ov-re-mat.cc, ov-scalar.cc, ov-streamoff.cc, - ov-str-mat.cc, ov-struct.cc, ov-typeinfo.cc, ov-uint16.cc, - ov-uint32.cc, ov-uint64.cc, ov-uint8.cc, ov-usr-fcn.cc, - ov-va-args.cc, procstream.cc, pt-arg-list.cc, pt-assign.cc, - pt-binop.cc, pt-bp.cc, pt.cc, pt-cell.cc, pt-check.cc, pt-cmd.cc, - pt-colon.cc, pt-const.cc, pt-decl.cc, pt-except.cc, pt-exp.cc, - pt-fcn-handle.cc, pt-id.cc, pt-idx.cc, pt-jump.cc, pt-loop.cc, - pt-mat.cc, pt-misc.cc, pt-pr-code.cc, pt-select.cc, pt-stmt.cc, - pt-unop.cc, symtab.cc, token.cc, unwind-prot.cc: - Delete #pragma implementation. - - * Cell.h, c-file-ptr-stream.h, comment-list.h, oct-map.h, - oct-obj.h, ov-base.h, ov-base-int.h, ov-base-mat.h, - ov-base-scalar.h, ov-bool.h, ov-bool-mat.h, ov-builtin.h, - ov-cell.h, ov-ch-mat.h, ov-complex.h, ov-cs-list.h, ov-cx-mat.h, - ov-dld-fcn.h, ov-fcn.h, ov-fcn-handle.h, ov-fcn-inline.h, - ov-file.h, ov.h, ov-int16.h, ov-int32.h, ov-int64.h, ov-int8.h, - ov-list.h, ov-mapper.h, ov-range.h, ov-re-mat.h, ov-scalar.h, - ov-streamoff.h, ov-str-mat.h, ov-struct.h, ov-typeinfo.h, - ov-uint16.h, ov-uint32.h, ov-uint64.h, ov-uint8.h, ov-usr-fcn.h, - procstream.h, pt-arg-list.h, pt-assign.h, pt-binop.h, pt-bp.h, - pt-cell.h, pt-check.h, pt-cmd.h, pt-colon.h, pt-const.h, - pt-decl.h, pt-except.h, pt-exp.h, pt-fcn-handle.h, pt.h, pt-id.h, - pt-idx.h, pt-jump.h, pt-loop.h, pt-mat.h, pt-misc.h, pt-pr-code.h, - pt-select.h, pt-stmt.h, pt-unop.h, symtab.h, token.h, - unwind-prot.h: Delete #pragma interface. - - 2004-12-27 John W. Eaton - - Merge of changes from Teemu Ikonen to - remove gnuplot from main parser. - - * pt-plot.cc, pt-plot.h: Delete. - * Makefile.in (PT_SRC, PT_INCLUDES): Delete them from the lists. - - * DLD-FUNCTIONS/gplot.l: New file. - * Makefile.in: Include it in the DLD_XSRC list. - - * dirfns.cc (octave_change_to_directory): - Don't call do_external_plotter_cd. - - * symtab.h (symbol_record::TYPE): New element, RAWCOMMAND. - (symbol_record::symbol_def::mark_as_rawcommand, - symbol_record::symbol_def::unmark_rawcommand, - symbol_record::symbol_def::is_rawcommand): New functions. - (symbol_record::symbol_def::symbol_type): Bitfield is now 9 bits wide. - (symbol_record::mark_as_rawcommand, - symbol_record::unmark_rawcommand, symbol_record::is_rawcommand): - New functions. - (SYMTAB_ALL_TYPES): Include RAWCOMMAND. - - * parse.y (make_plot_command): Delete function. - (tree_plot_command_type, subplot_type, subplot_list_type, - plot_limits_type, plot_range_type, subplot_using_type, - subplot_style_type, subplot_axes_type): - Delete non-terminal type decls. - (PLOT, STYLE, AXES_TAG): Delete token types. - (title, plot_command, plot_command2, plot_options, plot_command1, - ranges, ranges1, using, using1, style, axes): Delete non-terminals. - - * toplev.cc (do_octave_atexit): Don't call close_plot_stream. - - * variables.cc (rawcommand_set): New static variable. - (is_marked_as_rawcommand, mark_as_rawcommand, unmark_rawcommand, - Fiscommand, Fmark_as_rawcommand, Funmark_rawcommand, - Fisrawcommand, is_rawcommand_name): New functions. - * variables.h: Provide decl for is_rawcommand_name. - - * pt-bp.cc, pt-bp.h, pt-check.cc, pt-check.h, pt-pr-code.cc, - pt-pr-code.h, pt-walk.h: Delete all declarations, definitions, and - uses of visit_subplot, visit_subplot_axes, visit_subplot_list, - visit_subplot_style, and visit_subplot_using methods. - - * lex.h (lexer_flags): New field, doing_rawcommand. - * lex.l ([\;\,]): Also handle raw commands here. - (lexer_flags::init): Initialize doing_racommand to false. - (handle_identifier): Recognize raw commands ere. - (handle_string): Don't do string escape conversions on raw command - strings. - - * octave.gperf: Delete gplot_kw, gsplot_kw, replot_kw. - - * lex.h (lexer_flags): Delete fields cant_be_identifier, - doing_set, in_plot_range, in_plot_using, in_plot_style, - in_plot_axes, past_plot_range, and plotting. - * lex.l: Delete all uses of these lexer flags and remove all - special cases for plotting. - (plot_style_token, plot_axes_token, is_plot_keyword): Delete. - - * file-io.cc, file-io.h (tmp_files, mark_for_deletion, - cleanup_tmp_files): Move here. - * pt-plot.cc, pt-plot.h: From here. - - * Makefile.in (PKG_ADD): New target. - (all): Depend on PKG_ADD. - (install-oct): Depend on PKG_ADD. Install PKG_ADD file. - (gplot.cc): New target. - (stamp-prereq): Depend on gplot.cc. - (VAR): Don't include $(DLD_SRC) here. - (DLD_OBJ, DLD_DEF_FILES): Include .l files. - - * defun-int.h (DEFVAR, DEFCONST, DEFCONSTX): Move definition here. - * defun.h: From here. - - 2004-12-22 John W. Eaton - - * ls-oct-ascii.cc (extract_keyword (std::istream&, const - string_vector&, std::string&, int&, const bool): New function. - * ls-oct-ascii.h: Provide decl. - * ov-bool-mat.cc (octave_bool_matrix::load_ascii): - Use new extract_keyword function to avoid calling tellg/seekg. - * ov-cell.cc (octave_cell::load_ascii): Likewise. - * ov-cx-mat.cc (octave_complex_matrix::load_ascii): Likewise. - * ov-re-mat.cc (octave_matrix::load_ascii): Likewise. - * ov-str-mat.cc (octave_char_matrix_str::load_ascii): Likewise. - - 2004-12-20 John W. Eaton - - * pt-idx.cc (tree_index_expression::has_magic_end): Return true if - any argument list element has a magic end token. - - 2004-12-03 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.64. - - 2004-12-03 Teemu Ikonen - - * file-io.cc: Doc string fixes. - - 2004-12-02 David Bateman - - * input.cc (get_user_input): Only set nm and line for debugging if - both debug is true and curr_caller_function is non-null. - - 2004-12-02 David Bateman - - * ls-mat5.cc (arrayclasstype): Add mxINT64_CLASS, mxUINT64_CLASS, - mxFUNCTION_CLASS enum values. - (read_mat5_integer_data): New template function. - (OCTAVE_MAT5_INTEGER_READ): New macro. - (read_mat5_binary_element): Handle reading integer types. - Eliminate automatic conversion from int to double. - (write_mat5_integer_data): New template function. - Instantiate it for the 8 integer data types - (save_mat5_binary_element): Handle integer data types. - - * load-save.cc (Fload): Check file existence here. - If file does not exist, append ".mat" to name and try again. - (get_file_format): Delete check for file existence. - - 2004-11-30 John W. Eaton - - * Makefile.in (oct-gperf.h): Use -L C++ instead of -L ANSI_C. - Use -Z octave_kw_hash option, delete -H and -N options. - * lex.l (is_keyword_token): Use octave_kw_hash::in_word_set - instead of octave_kw_lookup. - (is_keyword): Likewise. - - 2004-11-22 John W. Eaton - - * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): - Check to see whether object is a function or function handle - instead of constant. - - 2004-11-19 John W. Eaton - - * ov-str-mat.cc (octave_char_matrix_str::do_index_op): - Skip indexing operation if indices are invalid. - - * pr-output.cc (set_range_format, set_complex_matrix_format, - set_complex_format, set_real_matrix_format, set_real_format): - Also specify std::ios::fixed for bank format. - - 2004-11-17 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.63. - (OCTAVE_API_VERSION): Now api-v12. - - 2004-11-17 David Bateman - - * pt-arg-list.cc (F__end__): Ask dv for the number of elements - instead indexed_object. - - 2004-11-16 David Bateman - - * ov.h (octave_value::numel): Now virtual. Call rep->numel (). - * ov.cc (octave_value::numel): Delete. - * ov-base.h (octave_base_value::numel): New function. - - 2004-11-12 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.62. - - 2004-11-09 John W. Eaton - - * OPERATORS/op-int-concat.cc: New file for mixed integer/other - concatentation operators. - * Makefile.in (INTTYPE_OP_XSRC): Add it to the list. - - * ops.h (DEFNDCATOP_FN2): New macro. - - * OPERATORS/op-int.h (OCTAVE_CONCAT_FN2, - OCTAVE_INSTALL_CONCAT_FN2, OCTAVE_DOUBLE_INT_CONCAT_FN, - OCTAVE_INSTALL_DOUBLE_INT_CONCAT_FN, OCTAVE_INT_DOUBLE_CONCAT_FN, - OCTAVE_INSTALL_INT_DOUBLE_CONCAT_FN): New macros. - - 2004-11-09 David Bateman - - * Cell.cc (concat): Delete. - (Cell::concat): New method. - * Cell.h: Provide decls. - - * oct-map.cc (concat): Delete - (Octave_map::concat): New method. - * oct-map.h: Provide decls. - - * ov.h (typedef octave_value (*cat_op_fcn) (octave_value&, - const octave_value&, const Array&): Change definition of - cat_op_fcn so first argument is not constant. - - * ops.h (CATOPDECL): First arg is no longer constant. - (DEFCATOP_FN, DEFNDCATOP_FN): Change to use new concat methods. - - * OPERATORS/op-chm.cc, OPERATORS/op-str-m.cc, OPERATORS/op-str-s.cc, - OPERATORS/op-str-str.cc (DEFCATOP): Change explicit concat functions - to use new concatenation methods. - - 2004-11-05 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.61. - - * DLD-FUNCTIONS/det.cc (det): Always compute rcond so we can - detect numerically singular matrices. - - 2004-11-04 John W. Eaton - - * pt-colon.cc (tree_colon_expression::line, - tree_colon_expression::column): New functions. - * pt-colon.h: Provide decls. - - * oct-stream.cc (octave_stream::seek (long, int)): Return error - (but leave file position unchanged) for attempt to seek beyond end - of file. - - * DLD-FUNCTIONS/inv.cc (Finv): Check rcond value returned from - LAPACK routines, and be careful to avoid optimizing away the - 1+rcond == 1.0 check. - * DLD-FUNCTIONS/det.cc (Fdet): Likewise. - - 2004-11-03 John W. Eaton - - * data.cc (Fsize): Return 1 if requested dimension is larger than - the number of dimensions of the given object. - - 2004-11-01 Claude Lacoursiere a - - * ls-hdf5.cc (read_hdf5_data): Expect num_obj to be in distinct group. - * ov-cell.cc (octave_cell::load_hdf5): Likewise. - * ov-list.cc (octave_list::load_hdf5): Likewise. - * ov-struct.cc (octave_struct::load_hdf5): Likewise. - - 2004-11-01 David Bateman - - * DLD-FUNCTIONS/filter.cc (filter (MArray&, MArray&, - MArrayN&, MArrayN&, int)): The variable si is now at least 2-D. - (Ffilter): Force si to be 2-D, while allowing arbitrary vector - orientation. - - 2004-11-01 John W. Eaton - - * data.cc (INSTANTIATE_EYE): New macro. Use it to instantiate - identity matrix functions for various matrix types. - - * variables.cc (do_who): Fix typo in for loop. - - 2004-10-28 John W. Eaton - - * ls-mat5.cc (save_mat5_binary_element): Save structure elements - in correct order. - - 2004-10-26 John W. Eaton - - * ov-fcn.h (octave_function::octave_va_arg): No longer const. - - 2004-10-22 John W. Eaton - - * DLD-FUNCTIONS/filter.cc: Remove some unnecessary parens. - - 2004-10-22 David Bateman - - * DLD-FUNCTIONS/filter.cc (filter (MArray&, MArray&, - MArrayN&, MArrayN&, int)): If value to filter is - dimensionality 2 it might still be a vector, use special case. - - 2004-10-21 John W. Eaton - - * ov-base.cc (INT_CONV_METHOD): Apply saturation semantics here too. - - 2004-10-19 John W. Eaton - - * ov-range.h (octave_range::write): New function. - - 2004-10-18 John W. Eaton - - * symtab.cc (symbol_record::dimensions_string_req_first_space, - symbol_record::make_dimensions_string): Use dims() for all objects. - - 2004-10-18 Oyvind Kristiansen - - * symtab.cc (symbol_table::parse_whos_line_format): Handle - size-of-parameter and center-specific format specifiers. - - 2004-10-18 John W. Eaton - - * pt-plot.cc (handle_plot_data): If plotting data from file, - always use "using" clause. - - 2004-10-12 David Bateman - - * pt-mat.cc (tm_row_const::tm_row_const_rep::do_init_element, - tm_const::init): Dimensionality of matrices not necessarily the - same. Check before comparing. - - 2004-10-06 John W. Eaton - - * pt-fcn-handle.h (tree_fcn_handle::name): New function. - - 2004-10-01 John W. Eaton - - * ov-range.h (octave_range::valid_as_scalar_index): Ensure int value. - (octave_range::valid_as_zero_index): Likewise. - - * ov-scalar.h (octave_scalar::valid_as_scalar_index): Ensure int value. - (octave_scalar::valid_as_zero_index): Likewise. - - 2004-09-24 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.60. - (OCTAVE_API_VERSION): Now api-v11. - - * OPERATORS/op-int.h (OCTAVE_MM_INT_OPS): Include missing matrix - by int matrix ops. - (OCTAVE_INSTALL_MM_INT_OPS): Install them. - - * OPERATORS/op-i64-i64.cc: Define and install missing int64 by - matrix and scalar ops. - - 2004-09-24 David Bateman - - * ov-fcn-inline (Finline): Attempt better auto-detection of - symbols that should be recognized as arguments. - - 2004-09-24 John W. Eaton - - * ov-str-mat.cc (default_numeric_conversion_function): Return - scalar object if numel == 1. - - 2004-09-23 John W. Eaton - - * ops.h (DEFSTRDBLCONVFN): New macro. - * OPERATORS/op-double-conv.cc: Use it to define new conversion op. - Define new range to double matrix conversion. - (install_int_conv_ops): Install new ops. - - * ops.h (DEFSTRINTCONVFN): New macro. - * OPERATORS/op-int-conv.cc: Use it to define new conversion ops. - (install_int_conv_ops): Install them. - - * (OCTAVE_SS_INT_OPS2, OCTAVE_SM_INT_OPS2, OCTAVE_MM_INT_OPS2, - OCTAVE_INSTALL_SS_INT_OPS2, OCTAVE_INSTALL_SM_INT_OPS2, - OCTAVE_INSTALL_MS_INT_OPS2, OCTAVE_INSTALL_MM_INT_OPS2): - Delete unused macros. - - * OPERATORS/op-int.h (OCTAVE_SS_INT_BOOL_OPS): New args Z1 and Z2. - (OCTAVE_SS_INT_OPS): Pass appropriately typed zero values to - OCTAVE_SS_INT_BOOL_OPS. - * OPERATORS/op-i64-i64.cc, OPERATORS/op-ui64-ui64.cc: Likewise. - - * pr-output.cc (pr_plus_format): Now template. - Specialize for Complex. - (octave_print_internal): Lookup print_conv_type using - octave_int, not just T. - - * ov-struct.cc (octave_struct::subsref): Pass skip to next_subsref. - - * oct-stream.cc (do_read): Hitting EOF should not be an error. - - 2004-09-22 John W. Eaton - - * pt-plot.cc (send_to_plot_stream): Skip automatic replot if in - multiplot mode. - - * variables.cc (get_global_value): New arg, silent. - * variables.h (get_global_value): Default value for silent arg is - false. - - 2004-09-22 David Bateman - - * ov-fcn-inline.cc (Finline): When called with a single arg, derive - argument of inline function in a compatible manner. - - 2004-09-22 Federico Zenith - - * DLD-FUNCTIONS/qz.cc (Fqz): New @tex section(s) in doc string for - better formating of printed documentation. Use @var in doc string. - - * DLD-FUNCTIONS/time.cc (Fstrftime): Fix typo in doc string. - * error.cc (Flasterr, Flastwarn): Likewise. - * mappers.cc (Farg, Fasinh, Fatanh, Ffinite, Fsin, Fsinh, Ftan): - Likewise. - * file-io.cc (Fmktemp): Likewise. - * pt-plot.cc (symbols_of_pt_plot): Fix typos in doc string for - gnuplot_has_frames. - - * input.cc (symbols_of_input): Replace --echo-input with new - --echo-commands in PS4 doc string. - - * pt-assign.cc (symbols_of_pt_assign): Mark print_rhs_assign_val - as built-in in doc string. - - * symtab.cc (symbols_of_symtab): Mark variables_can_hide_functions - as built-in in doc string. - - 2004-09-21 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.59. - - * oct-fstrm.h (octave_fstream::octave_fstream, - octave_fstream::create): Set default float format to actual native - format, not flt_fmt_native. - * oct-iostrm.h (octave_base_iostream::octave_base_iostream, - octave_istream::octave_istream, octave_ostream::octave_ostream): - Likewise. - * oct-prcstrm.h (octave_iprocstream::octave_iprocstream, - octave_oprocstream::octave_oprocstream, - octave_iprocstream::create, octave_oprocstream::create): - Likewise. - * oct-stdstrm.h (octave_stdiostream::octave_stdiostream, - octave_stdiostream::create): - Likewise. - * oct-stream.h (octave_base_stream::octave_base_stream): - Likewise. - * oct-strstrm.h (octave_base_strstream::octave_base_strstream, - octave_istrstream::octave_istrstream, octave_istrstream::create): - Likewise. - - 2004-09-21 David Bateman - - * data.cc (Freshape): Allow a single empty dimension argument - to flag unknown dimension and calculate its value from the - other dimensions. - - 2004-09-21 John W. Eaton - - * symtab.h (symbol_record::~symbol_record): Delete definition if - count goes to zero. - * symtab.cc (symbol_table::~symbol_table): Move here from symtab.h. - Call delete on each symbol record in the table instead of just - clearing them. - - 2004-09-17 David Bateman - - * DLD-FUNCTIONS/sort.cc (ascending_compare, descending_compare): - Now templates (avoids g++ 3.4.x compile problems). - Fix other uses of these functions to also treat them as templates. - (mx_sort): For unsigned EIGHT_BYTE_INT versions correct the test - for the position of NaN. Problems when mode was DESCENDING or - UNDEFINED. Use static_cast (dim) rather than - (unsigned int) dim. - (IFloatFlip): Now static. - - 2004-09-17 David Bateman - - * DLD-FUNCTIONS/det.cc (Fdet): Only compute estimate of the - condition number if requested as output. - - * DLD-FUNCTIONS/schur.cc (Fschur): Only compute unitary matrix if - requested as output. - - 2004-09-17 John W. Eaton - - * ov-fcn-inline.cc (octave_fcn_inline::octave_fcn_inline): - Call eval_string instead of feval ("eval", ...). - Construct anonymous function handle to avoid going through the - symbol table. - - * ov-fcn-handle.h (octave_fcn_handle::fcn_val): New function. - (octave_fcn_handle::octave_fcn_handle (const std:string&)): - New constructor. - - 2004-09-16 John W. Eaton - - * parse.y (frob_function): Clear id_name from curr_sym_tab, not - top_level_sym_tab. - - * symtab.cc (maybe_list): Count sizes using size_t, not int. - - * variables.cc (symbol_out_of_date): Always look in LOADPATH. - - 2004-09-15 John W. Eaton - - * OPERATORS/op-int-conv.cc: Define and install bool to int - conversions. - * OPERATORS/op-double-conv.cc: Define and install bool to double - conversions. - - * ov.cc (octave_value::assign): Handle subsref for containers. - * oct-lvalue.cc (octave_lvale::value): Likewise. - - * DLD-FUNCTIONS/sort.cc (mx_sort): Return octave_value, not - octave_value list. - - 2004-09-15 David Bateman - - * ov.cc (octave_value::octave_value (const ArrayN&, bool)): - New Constructor . - * ov.h: Provide decl. - - * DLD-FUNCTIONS/sort.cc (sortmode): New enum to define sort direction. - (template class vec_index): New class to contain values and - index for indexed sorts, replacing all previous struct versions. - Instantiate for double, Complex, char and octave_value. - (template static octave_value_list mx_sort (ArrayN &, int, - sortmode)): New templated version of mx_sort replacing all previous - versions, but specific to non indexed sorts. Instantiate for char - and double if not IEEE754. - (template <> static octave_value_list mx_sort (ArrayN &, - int, sortmode)): Specialized function of mx_sort of IEEE754. - (template static octave_value_list mx_sort_indexed - (ArrayN &, int, sortmode)): New templated version of mx_sort - for indexed sorts. Instantiate for double, Complex, char and - octave_value. - (ascending_compare, descending_compare): Comparison functions - for double, char, vec_index *, vec_index *, - vec_index *, vec_index. Fix Complex comparison - operator to sort by arg of values if absolute values are equal. - (Fsort): Update docs for new mode argument and for sorting of - strings and cell arrays of strings. Implement mode argument to - define ascending and descending sorts. Include sorting of cell - arrays of strings. Adapt for new templated versions of the mx_sort - function. - - 2004-09-15 John W. Eaton - - * ov-cell.cc (octave_cell::subsref): Pass nargout to next_subsref. - * ov-builtin.cc (octave_builtin::subsref): Likewise. - * ov-fcn-handle.cc (octave_fcn_handle::subsref): Likewise. - * ov-list.cc (octave_list::subsref): Likewise. - * ov-mapper.cc (octave_mapper::subsref): Likewise. - * ov-struct.cc (octave_struct::subsref): Likewise. - * ov-usr-fcn.cc (octave_user_function::subsref): Likewise. - - * ov-struct.cc, ov-struct.h (octave_struct::subsref (const - std::string&, const std::list&, int)): - Define this version. - (octave_struct::subsref (const std::string&, const - std::list&)): Panic in this version. - * ov-list.cc, ov-list.h: Likewise. - * ov-cell.cc, ov-cell.h: Likewise. - - * ov.cc (octave_value::subsref (int, const std::string&, const - std::list&, size_t)): New function. - * ov.h: Provide decl. - - * ov-cell.h (octave_cell::is_constant): Return false. - * ov-struct.h (octave_struct::is_constant): Delete. - * ov-list.h (octave_list::is_constant): Delete. - - 2004-09-14 David Bateman - - * DLD-FUNCTIONS/sort.cc (mx_sort (charNDArray&, bool, int)): - New function to sort character strings. - (Fsort): Handle character strings. - - 2004-09-11 John W. Eaton - - * ov-fcn-handle.cc (octave_fcn_handle::save_ascii): - Write directly to OS. - (octave_fcn_handle::load_ascii, octave_fcn_handle::load_binary, - octave_fcn_handle::load_hdf5): Check parse status after calling - eval_string. Don't dereference fh unless it is valid. - - 2004-09-11 David Bateman - - * ov-fcn-handle.cc (octave_fcn_handle::save_ascii, - octave_fcn_handle::load_ascii, octave_fcn_handle::save_binary, - octave_fcn_handle::load_binary, octave_fcn_handle::save_hdf5, - octave_fcn_handle::load_hdf5): New functions. - * ov-fcn-handle.h: Provide decls. - - * ov-fcn-inline.cc (octave_fcn_inline::load_ascii): - Allow spaces in saved function. - (octave_fcn_inline::save_hdf5): Properly close all HDF5 objects. - - * ls-oct-ascii.cc (read_ascii_data): Check return type of - .load_ascii for errors reading the variables - - * variables.cc (lookup_function_handle, clear_variable, - clear_symbol): New functions. - * variables.h: Provide decls. - - 2004-09-10 John W. Eaton - - * ov-builtin.cc (octave_builtin::do_multi_index_op): Use unwind - protect frame instead of a single unwind_protect::run. - * ov-mapper.cc (octave_mapper::do_multi_index_op): Likewise. - - * data.cc (fill_matrix, identity_matrix): - Also allow logical data type. - - 2004-09-10 David Bateman - - * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::double_value, - OCTAVE_VALUE_INT_MATRIX_T::scalar_value, - OCTAVE_VALUE_INT_SCALAR_T::double_value, - OCTAVE_VALUE_INT_SCALAR_T::scalar_value): New functions. - - 2004-09-10 John W. Eaton - - * ov-base-scalar.h (octave_base_scalar::clone, - octave_base_scalar::empty_clone): New functions. - - 2004-09-09 John W. Eaton - - * pt-pr-code.h (tree_print_code::newline): New optional arg, alt_nl. - * pt-pr-code.cc (tree_print_code::newline): Use it if not printing - newlines. - (tree_print_code::visit_statement): If we printed ";", call - newline with optional arg set to "". - (tree_print_code::printing_newlines): New data member. - (tree_print_code::tree_print_code): Initialize it. - (tree_print_code::suspend_newline, tree_print_code::resume_newline): - New functions. - (tree_print_code::newline, tree_print_code::indent): Use it - - * ov-fcn-handle.cc (octave_fcn_handle::print_raw): - Print code for anonymous function handles. - - 2004-09-08 John W. Eaton - - * ov-fcn-handle.cc (Ffunc2str, Ffunctions): Don't call substr(1) - on fh_nm, since we no longer need to skip "@" in the name. - - * error.cc (pr_where): Do a better job of printing location info. - - * input.cc (get_user_input): Print location info before the debug - prompt. From Keith Goodman . - - * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): - Save and set curr_caller_function and curr_caller_statement here. - * ov-mapper.cc (octave_mapper::do_multi_index_op): Likewise. - * ov-builtin.cc (octave_builtin::do_multi_index_op): Likewise. - - * pt-stmt.cc (curr_caller_statement): New variable. - * pt-stmt.h: Provide decl. - - * toplev.cc (curr_caller_function): New variable. - * toplev.h: Provide decl. - - * pt-arg-list.cc (convert_to_const_vector): - Unwind-protect index_position before modifying it. - Don't protect and set index_position unless stash_object is true. - - 2004-09-08 David Bateman - - * ov-fcn-inline.cc (octave_fcn_inline::save_ascii, - octave_fcn_inline::load_ascii, octave_fcn_inline::save_binary, - octave_fcn_inline::load_binary, octave_fcn_inline::save_hdf5, - octave_fcn_inline::load_hdf5): New functions. - * ov-fcn-inline.h: Provide decls. - - 2004-09-08 John W. Eaton - - * ov.h: Add octave_array_type_traits specialization for - boolNDArray element type. - - 2004-09-07 John W. Eaton - - * oct-stream.cc: Instantiate octave_stream::write for Array. - (octave_stream::read): Expand read_fptr_table to include dt_logical. - - * ov-bool.h (octave_bool::write): New function. - * ov-bool-mat.h (octave_bool_matrix::write): New function. - - * ov-fcn-inline.h (octave_fcn_inline::octave_fcn_inline): New copy - constructor. - (octave_fcn_inline::clone, octave_fcn_inline::empty_clone): - New functions. - - * ov-fcn-handle.h (octave_fcn_handle::octave_fcn_handle): New copy - constructor. - (octave_fcn_handle::clone, octave_fcn_handle::empty_clone): - New functions. - - 2004-09-06 John W. Eaton - - * ov.cc (install_types): Call octave_fcn_inline::register_type. - - * version.h (OCTAVE_API_VERSION): Now api-v10. - - * OPERATORS/op-b-b.cc, OPERATORS/op-bm-bm.cc: Define and install - unary plus and unary minus operators. - - * OPERATORS/op-int.h, OPERATORS/op-cm-cm.cc, - OPERATORS/op-cs-cs.cc, OPERATORS/op-m-m.cc, OPERATORS/op-range.cc: - Define and install unary plus operator. - - * ov.cc (unary_op_as_string): Handle op_uplus too. - - * parse.y (prefix_expr): Build unary plus op here instead of - converting to no-op. - (make_prefix_op): Accept op_uplus. - - 2004-09-03 John W. Eaton - - * OPERATORS/op-b-bm.cc (DEFCONV): Define bool scalar to bool - matrix conversion. - (install_b_bm_ops): Install it. - Install conversion for assignment of bool matrix to indexed bool. - * OPERATORS/op-b-b.cc (install_b_b_ops): Install conversion for - assignment of bool to indexed bool. - - 2004-09-03 David Bateman - - * OPERATORS/op-b-b.cc, OPERATORS/op-b-bm.cc, OPERATORS/op-bm-b.cc, - OPERATORS/op-bm-bm.cc: Modify concatenation between boolean types - so that it returns a boolean. - - * ov-bool.cc (octave_bool::do_index_op): Return boolean matrix. - - * ov-intx.h (do_index_op (const octave_value_list&, int)): - New function for indexed subsref of int types. - - 2004-09-03 John W. Eaton - - * OPERATORS/op-int.h (OCTAVE_SM_INT_OPS): Define int by double - mixed comparison and bool ops. - (OCTAVE_INSTALL_SM_INT_OPS): Install them. - (OCTAVE_MS_INT_OPS): Define double by int mixed comparison and - bool ops. - (OCTAVE_INSTALL_MS_INT_OPS): Install them - - * OPERATORS/op-i8-i8.cc, OPERATORS/op-i16-i16.cc, - OPERATORS/op-i32-i32.cc, OPERATORS/op-i64-i64.cc, - OPERATORS/op-ui8-ui8.cc, OPERATORS/op-ui16-ui16.cc, - OPERATORS/op-ui32-ui32.cc, OPERATORS/op-ui64-ui64.cc: - Define and install various mixed-type operators. - - * OPERATORS/op-int.h (OCTAVE_MM_INT_OPS): Also define mixed int - and double matrix comparison and bool ops. - (OCTAVE_INSTALL_MM_INT_OPS): Install them. - (OCTAVE_SS_INT_BOOL_OPS, OCTAVE_SM_INT_BOOL_OPS, - OCTAVE_MS_INT_BOOL_OPS, OCTAVE_MM_INT_BOOL_OPS): - Define logical AND and OR ops. - (OCTAVE_INSTALL_SS_INT_BOOL_OPS, OCTAVE_INSTALL_SM_INT_BOOL_OPS, - OCTAVE_INSTALL_MS_INT_BOOL_OPS, OCTAVE_INSTALL_MM_INT_BOOL_OPS): - Install them. - (OCTAVE_MM_INT_CMP_OPS, OCTAVE_MM_INT_BOOL_OPS): Accept prefix arg. - (OCTAVE_MM_CONV): New macro. - (OCTAVE_MM_INT_OPS): Use it to define complex matrix conversion. - (OCTAVE_MIXED_INT_CMP_OPS, OCTAVE_MIXED_INT_BOOL_OPS): New macros. - - * OPERATORS/op-int.h (OCTAVE_MS_INT_OPS): Don't define indexed int - matrix = complex scalar assignment ops. - (OCTAVE_MS_INT_OPS): Don't define indexed int matrix = complex - matrix assignment ops. - (OCTAVE_SM_CONV): New macro. - (OCTAVE_SM_INT_OPS): Use it to define int scalar -> (int|complex) - matrix widening ops. - (OCTAVE_RE_INT_ASSIGN_OPS, OCTAVE_CX_INT_ASSIGN_OPS): New macros. - (OCTAVE_INT_OPS): Use them here. - (OCTAVE_INSTALL_SS_INT_OPS): Install indexed int scalar = scalar - and indexed int scalar = complex scalar assignment conversions. - (OCTAVE_INSTALL_SM_INT_OPS): Install int scalar -> (int|complex) - matrix widening ops. Install indexed int scalar = - (int|real|complex) matrix assignment conversions. - (OCTAVE_INSTALL_MS_INT_OPS): Install indexed int matrix = complex - scalar assignment conversion. - (OCTAVE_INSTALL_MM_INT_OPS): Install int matrix -> complex matrix - widening op. Install indexed int matrix = complex matrix - assignment conversion. - (OCTAVE_INSTALL_RE_INT_ASSIGN_OPS, OCTAVE_INSTALL_CX_INT_ASSIGN_OPS): - New macros. - (OCTAVE_INSTALL_INT_OPS): Use them. - - * op-int.h: (OCTAVE_INSTALL_SM_INT_ASSIGNCONV): New macro. - * OPERATORS/op-i8-i8.cc, OPERATORS/op-i16-i16.cc, - OPERATORS/op-i32-i32.cc, OPERATORS/op-i64-i64.cc, - OPERATORS/op-ui8-ui8.cc, OPERATORS/op-ui16-ui16.cc, - OPERATORS/op-ui32-ui32.cc, OPERATORS/op-ui64-ui64.cc: - Use it to define mixed size integer scalar/integer matrix - assignment conversions. - - * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::complex_array_value, - OCTAVE_VALUE_INT_SCALAR_T::complex_array_vale): - New functions. - - 2004-09-02 John W. Eaton - - * DLD-FUNCTIONS/quad.cc (Fquad): Pass "__quad_fcn_" instead of - "__quad_fcn__" to unique_symbol_name. - - * ov-fcn-inline.cc (octave_fcn_inline): Pass "__inline_" instead - of "__inline__" to unique_symbol_name. - - * variables.cc (unique_symbol_name): Make better random symbol name. - - 2004-09-01 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.58. - - * Makefile.in (OP_INCLUDES): New variable. - Include OPERATORS/op-int.h here. - * Makefile.in (dist): Also link $(OP_INCLUDES). - - * Makefile.in (DISTFILES): Include $(EXTRAS) in the list. - - 2004-09-01 David Bateman - - * DLD-FUNCTION/quad.cc: Allow function handle and inline functions. - Use a unique function name and delete it on exit. - - * ov.h (is_inline_function): New virtual function. - * ov-fcn-inline.h (is_inline_function): New function. - * ov-base.h (is_inline_function): New function. - - * ov-fcn-inline.cc (octave_fcn_handle::octave_fcn_handle): - Use unique_symbol_name and clear_function instead of manipulating - symbol table directly. - - * variables.cc (unique_symbol_name): New function. - (clear_function): New function. - * variables.h: Provide decls. - - * dynamic-ld.cc (do_clear_function): Rename from clear_function. - - 2004-09-01 John W. Eaton - - * OPERATORS/op-i8-i8.cc, OPERATORS/op-i16-i16.cc, - OPERATORS/op-i32-i32.cc, OPERATORS/op-i64-i64.cc, - OPERATORS/op-ui8-ui8.cc, OPERATORS/op-ui16-ui16.cc, - OPERATORS/op-ui32-ui32.cc, OPERATORS/op-ui64-ui64.cc: - Define and install mixed assignment ops. - * op-int.h: Define mixed integer/double ops. - Define simple division ops. - - * ov-complex.h (octave_complex_scalar): New typedef to simplify - various macros where naming consistency matters. - - 2004-08-31 David Bateman - - * OPERATORS/op-int.h (ss_pow, ms_el_pow, mm_el_pow): New power - functions. - (sm_el_pow): Return correct type. - (OCTAVE_SS_POW_OPS, OCTAVE_SM_POW_OPS, OCTAVE_MS_POW_OPS, - OCTAVE_MM_POW_OPS): New macros to define the power operator over - integer types. - (OCTAVE_SS_INT_OPS, OCTAVE_SM_INT_OPS, OCTAVE_MS_INT_OPS, - OCTAVE_MM_INT_OPS): Use the new macros for the power operators. - (OCTAVE_INSTALL_SS_INT_OPS, OCTAVE_INSTALL_MS_INT_OPS, - OCTAVE_INSTALL_MM_INT_OPS): Install new power functions. - - * OPERATORS/op-int-conv.cc (INT_CONV_FUNCTIONS): Correct return - types for unsigned integer scalars and signed integer matrices. - - * ov-type-conv.h (OCTAVE_TYPE_CONV_BODY3): Conversion betwen same - types returns the original value. - - * bitfcns.cc (BITOP): Fix for mixed scalar/matrix ops. Allow - octave_range as an argument, by using class_name rather than - type_id to test. - - 2004-08-31 John W. Eaton - - * pr-output.cc (pr_int): Also handle bank_format. - (octave_print_internal (std::ostream& os, const intNDArray&, - bool, int)): Likewise. - - 2004-08-31 David Bateman - - * pr-output.cc (pr_int(std::ostream, const T&, int)): - New template function to print formatted integer types. - Instantiate it for all of the integer types. - (octave_print_internal (std::ostream, const intNDArray&, bool, - int)): Use pr_int. Align output up in columns, and check for - free_format or plus_format. - (octave_print_internal (std::ostream, const octave_int&, bool)): - Use pr_int. Check for free_format and plus_format. - - * ls-hdf5.cc (hdf5_read_next_data): When importing hdf5 files, - allow structures and lists (for backward compatibility). Also - allow importation of integer types into octave int and uint types. - - 2004-08-31 John W. Eaton - - * data.cc (fill_matrix, identity_matrix): Convert class name to - oct_data_conv::data_type and switch on that. - (identity_matrix (int, int)): New template. - (identity_matrix (int, int, const std::string&)): Use it. - - * ov.h (octave_type_traits, octave_array_type_traits): Move here. - * oct-stream.cc: From here. - - 2004-08-31 David Bateman - - * data.cc (Fzeros, Fones, Feye): Update help text for optional - class argument. - (static octave_value identity_matrix (int, int, const std::string&)): - New function to create identity matrices with an arbitrary type. - (Feye): Call new version of identity matrix function, even for scalars. - (static octave_value fill_matrix (const octave_value_list&, double, - const char *)): Update to allow arbitrary classes of matrices to be - created. - - 2004-08-31 John W. Eaton - - * ls-mat5.cc (read_int): New function. - - * oct-stream.cc (octave_base_stream::do_read, - octave_base_stream::read, octave_base_stream::write): Delete. - * oct-stream.h: Delete decls. - - * oct-stream.cc (octave_stream::read): Handle block_size and - separate input/output types. - (octave_stream::write): Handle block_size and various input types. - (octave_type_traits, octave_array_type_traits): New traits classes. - (do_read): New templates to read data and perform type conversion. - (octave_stream::write (const Array&, int, - oct_data_conv::data_type, int, oct_mach_info::float_format), - do_write, write_int): - New templates to write ints and perform type conversion. - Instantiate for various Octave types. - - * ov.cc (octave_value::write): New function. - * ov.h: Provide decl. - * ov-base.cc (octave_base_value::write): New function. - * ov-base.h: Provide decl. - * ov-complex.h (octave_complex::write): New function. - * ov-cx-mat.h (octave_complex_matrix::write): New function. - * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::write): New function. - (OCTAVE_VALUE_INT_SCALAR_T::write): New function. - * ov-re-mat.h (octave_matrix::write): New function. - * ov-scalar.h (octave_scalar::write): New function. - * ov-str-mat.h (octave_char_matrix_str::write): New function. - - * file-io.cc (Ffread): Handle block size, to/from format in - precision argument. - (Ffwrite): Handle block size in precision argument. - - 2004-08-25 David Bateman - - * ov-cell.cc (octave_cell::subsasgn): Delete elements of cell array - when type is "(" and rhs is empty. - - 2004-08-09 John W. Eaton - - * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::index_vector, - OCTAVE_VALUE_INT_SCALAR_T::index_vector): New functions. - - 2004-08-06 David Bateman - - * OPERATORS/op-struct.cc: New file. - * ov-struct.h (octave_struct::resize (const dim_vector&)): - New function. - * oct-map.h (Octave_map::resize (const dim_vector&)): New function. - * ov-map.cc (Octave_map::reshape): - Correct return for same sized reshape. - (Octave_map::resize (const dim_vector&)): New function. - (concat (const Octave_map&, const Octave_map&, const Array&)): - Complete concatenation function. - * Makefile.in (OP_XSRC): Include op-struct.cc in the list. - - 2004-08-05 John W. Eaton - - * pt-stmt.h (tree_statement::set_command, - (tree_statement::set_expression): New functions. - - * parse.y (param_list_beg): Handle pushing new symbol table - context for anonymous function handle parameter lists here. - (anon_fcn_handle): New non-terminal. - (expression): Include anon_fcn_handle here. - (make_anon_fcn_handle): New static function. - - 2004-08-05 David Bateman - - * ov.cc (octave_value::fcn_inline_value): New virtual function. - * ov.h (octave_value::fcn_inline_value): Provide decl. - * ov-base.cc (octave_base_value::fcn_inline_value): New function - * ov-base.h (octave_base_value::fcn_inline_value): Provide decl. - * ov-fcn-handle.cc (octave_fcn_handle::octave_fcn_handle - (const std::string&, const string_vector&, const std::string&), - octave_fcn_handle::convert_to_str_internal, Finline, Fargnames, - Fformula, Fvectorize): Delete. - (octave_fcn_handle::print_raw): Remove inline case. - * ov-fcn-handle.h (octave_fcn_handle::fcn_type, - octave_fcn_handle::octave_fcn_handle (const std::string&, const - string_vector&, const std::string&), - octave_fcn_handle::inline_fcn_name, - octave_fcn_handle::inline_fcn_text, - octave_fcn_handle::inline_fcn_arg_names, - octave_fcn_handle::is_inline, - octave_fcn_handle::convert_to_str_internal, - octave_fcn_handle::typ, octave_fcn_handle::iftext, - octave_fcn_handle::ifargs): Delete constructors, - functions, and data members (moved to ov-fcn-inline.h). - * Makefile.in: Include ov-fcn-inline.h and ov-fcn-inline.cc where - appropriate. - * ov-fcn-inline.h, ov-fcn-inline.cc: New class. - - 2004-08-05 John W. Eaton - - * ov-base-int.cc (octave_base_int_matrix::save_ascii, - octave_base_int_matrix::load_ascii, - octave_base_int_matrix::save_binary, - octave_base_int_matrix::load_binary, - octave_base_int_matrix::save_hdf5, - octave_base_int_matrix::load_hdf5, - octave_base_int_matrix::try_narrowing_conversion, - octave_base_int_scalar::print_raw, - octave_base_int_scalar::save_ascii, - octave_base_int_scalar::load_ascii, - octave_base_int_scalar::save_binary, - octave_base_int_scalar::load_binary, - octave_base_int_scalar::save_hdf5, - octave_base_int_scalar::load_hdf5): - Sprinkle with this-> as needed. - - * Makefile.in (EXTRAS): New macro. Move ov-base-int.cc here from - OV_INTTYPE_SRC. - (INCLUDES_FOR_INSTALL): New macro. - (install-inc, uninstall): Use it instead of INCLUDES. - - * variables.h (symbol_exist): Default for type is now "any". - - 2004-08-05 David Bateman - - * ov-fcn-handle.cc (octave_fcn_handle (const std::string&, - const string_vector&, const std::string&)): New constructor for inline - function handles. - (octave_fcn_handle::print_raw): Allow inline functions to be printed. - (octave_fcn_handle::convert_to_str_internal): New function to allow - Fchar to work on inlined function handles. - (Finline, Fformula, Fargnames, Fvectorize): New functions. - * ov-fcn-handle.h (octave_fcn_handle (const std::string&, - const string_vector&, const std::string&)): Provide decl. - (octave_fcn_handle::convert_to_str_internal): Provide decl. - (fcn_type): New enum for the type of function handle. - (octave_fcn_handle::inline_fcn_text, octave_fcn_handle::is_inline, - octave_fcn_handle::inline_fcn_arg_names): New functions. - (octave_fcn_handle::typ, octave_fcn_handle::iftext, - octave_fcn_handle::ifargs): New private variables for inline functions. - - 2004-08-04 John W. Eaton - - * parse.y (fcn_handle): - Recognize '@' FCN_HANDLE rather than just FCN_HANDLE. - Decrement lexer_flags.looking_at_function_handle here. - * lex.h (lexical_feedback::looking_at_function_handle): - New data member. - (lexical_feedback::init): Initialize it. - * lex.l (handle_identifier): Only reject keywords if we are - looking at a function handle. - ("@"): Recognize this separately from what follows. - Increment lexer_flags.looking_at_function_handle here. - - * ov-fcn-handle.h (octave_fcn_handle::octave_fcn_handle - (octave_function*, const std::string)): Delete. - * ov.h, ov.cc (octave_value::octave_value (octave_function *)): Delete. - (octave_value::octave_value (octave_function *, const std::string)): - Delete. - - * ov-fcn-handle.h (octave_fcn_handle::fcn): Now octave_value, not - pointer to octave_function. - (octave_fcn_handle::octave_fcn_handle (const octave_value&, const - std::string)): New constructor. - * variables.cc (lookup_function): Return octave_value, not pointer - to octave_function. Change all uses. - (lookup_user_function): Return octave_value, not pointer - to octave_user_function. Change all uses. - - 2004-08-03 John W. Eaton - - * ov-usr-fcn.cc (octave_user_fcn::do_multi_index_op): Call - install_automatic_vars here. - (octave_user_fcn::octave_user_fcn): Not here. - (install_automatic_vars): Don't mark argn_sr, nargin_sr, - nargout_sr, or varargin_sr as static. - - * oct-stream.cc (octave_scan): Avoid need for pushing two - characters back on the input stream. - - 2004-08-02 John W. Eaton - - * oct-stream.cc (octave_scan): For %i format, recognize numbers - with leading 0x or 0X as hex and leading 0 as octal. - - * OPERATORS/op-fcn-handle.cc: Delete. - * Makefile.in (OP_XSRC): Delete it from the list. - * pr-output.cc (octave_print_internal (std::ostream&, const - std::string&, bool, int): New function. - * ov-fcn-handle.cc (octave_value::subsref): New function. - * ov-fcn-handle.h (class fcn_handle_elt, class fcn_handle_array): - Delete. - (class octave_fcn_handle): Derive from octave_base_value, not - octave_base_matrix. - - * ov-cx-mat.cc (try_narrowing_conversion): Also allow complex to - real conversion for N-d arrays. - - 2004-07-30 John W. Eaton - - * lex.l ([^#% \t\r\n\;\,\"\'][^ \t\r\n\;\,]*{S}*): - Also recognize \r as a word list separator. - - 2004-07-27 John W. Eaton - - * bitfcns.cc (DO_BITSHIFT): Pass mask to bitshift. - (bitshift (double, int, EIGHT_BYTE_INT): New arg, mask. - (DO_UBITSHIFT, DO_SBITSHIFT): Use bitshfit, not operator >>. - Use nbits function from octave_int type to set bits_in_type. - - * ov-struct.cc (Fisfield): Only print usage message if number of - arguments is incorrect. Return false for invalid arguments. - From Andy Adler . - - 2004-07-27 David Bateman - - * Cell.cc (Cell::index): Quit early if an error occurs when - creating index vector object. - - * ov-int8.cc, ov-int16.cc, ov-int32.cc, ov-int64.cc, ov-uint8.cc, - ov-uint16.cc, ov-uint32.cc, ov-uint64.cc (HDF5_SAVE_TYPE): Define - for HDF5 native format for the type. - - * ov-base-int.h (save_ascii, save_binary, load_binary, save_hdf5): - Delete unused arguments. - - * ov-base-int.cc (octave_base_int_matrix::save_ascii, - octave_base_int_matrix::save_binary, - octave_base_int_scalar::save_ascii, - octave_base_int_scalar::save_binary, - octave_base_int_scalar::save_hdf5): Delete unused argument. - - * ov-base-int.cc (octave_base_int_matrix::save_binary, - octave_base_int_matrix::load_binary, - octave_base_int_matrix::save_hdf5, - octave_base_int_matrix::load_hdf5, - octave_base_int_scalar::save_ascii, - octave_base_int_scalar::load_ascii, - octave_base_int_scalar::save_binary, - octave_base_int_scalar::load_binary, - octave_base_int_scalar::save_hdf5, - octave_base_int_scalar::load_hdf5): Implement missing functions. - - 2004-07-23 David Bateman - - * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::array_value, - OCTAVE_VALUE_INT_SCALAR_T::array_value): new methods to extract array - value from integer types. - - * bitfcns.cc (BITOPX): New Macro renamed from BITOP. - (BITOP): Alter to allow different types and call BITOP appropriately. - (DO_SBITSHIFT, DO_UBITSHIFT): New macros for signed, unsigned - bitshifts. - - (DO_BITSHIFT): Test for shift of more bits than in type, which is - undefined. Generalize to allow double args as well. - (Fbitshift): Add int and double types. - (Fbitmax): Return 53 bit value which conforms to IEEE754 double - mantissa. - (Fintmax, Fintmin): New functions. - (Fbitget, Fbitset, Fbitcmp): Delete. - - * OPERATORS/op-int.h: Add sm_el_pow function - - * ops.h (CATOPDECL, DEFCATOPX, DEFCATOP, DEFCATOP_FB, DEFNDCATOP_FN, - CATOP_NONCONFORMANT, INSTALL_CATOP): New macros. - - * OPERATORS/op-b-b.cc, OPERATORS/op-b-bm.cc, OPERATORS/op-bm-b.cc, - OPERATORS/op-bm-bm.cc, OPERATORS/op-cell.cc, OPERATORS/op-chm.cc, - OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-m.cc, - OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-cs.cc, - OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc, OPERATORS/op-m-cm.cc, - OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc, OPERATORS/op-m-s.cc, - OPERATORS/op-range.cc, OPERATORS/op-s-cm.cc, OPERATORS/op-s-cs.cc, - OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc, OPERATORS/op-str-str.cc, - OPERATORS/op-str-m.cc, OPERATORS/op-str-s.cc (CATOPDECL, DEFCATOPX, - DEFCATOP, DEFCATOP_FB, DEFNDCATOP_FN, CATOP_NONCONFORMANT, - INSTALL_CATOP): Use them to define concatenation functions. - - * OPERATORS/op-int.h (OCTAVE_CONCAT_FN, OCTAVE_INSTALL_CONCAT_FN): - New macros to define and install concatentaion functions for int/uint - types. - - * TEMPLATE-INST/Array-tc.cc (INSTANTIATE_ARRAY_CAT): Delete. - - * pt-mat.cc (tm_row_const::tm_row_const_rep::do_init_element): - Also append empty elements to the list of elements to be parsed. - (tree_matrix::rvalue): Use new concatenation binary operators. - - * data.cc (cat_add_dims): Delete (now dim_vector::concat). - (do_cat): Use new concatenation binary operators. - - * ov-typeinfo.cc (cat_op_fcn): Instantiate the array of cat functions. - (register_cat_op, do_register_cat_op, do_lookup_cat_op): New functions. - (cat_ops): Lookup table of binary concatentaion operators. - - * ov-typeinfo.h (lookup_cat_op): New function. - - * ov.cc (gripe_cat_op, gripe_cat_op_conv, do_cat_op): New functions. - - * ov.h (cat_op_fcn): Definition. - (resize, do_cat_op): New functions. - - * ov-intx.h (resize): New_function - - * version.h (OCTAVE_API_VERSION): Bump version to api-v9. - - * Cell.cc, Cell.h, oct-map.cc, oct-map.h (cat): Delete. - (concat): New function. - - * Cell.cc, Cell.h (insert): New function - - * ov-base.cc, ov-base.h, ov-scalar.h, ov-complex.h, ov-bool.h, - ov-range.h, ov-base-mat.h, (resize): New function. - - 2004-07-23 John W. Eaton - - * symtab.cc (whos_parameter): Move decl here, from symtab.h. - - 2004-07-23 Oyvind Kristiansen - - * symtab.cc (symbol_record::subsymbols_list): New method. - (symbol_record::maybe_list): Call to subsymbols_list and merge - result with the original list of symbols. - - * symtab.cc (symbol_record::make_dimensions_string): New method. - (symbol_record::print_symbol_info_line): Print N-d info. Output - for long format now under control of format string. - (symbol_table::maybe_list): Headers to whos listing updated. - Also print footer info. - (symbol_table::print_descriptor): Method printing the - header of whos listings. - (symbol_table::parse_whos_line_format): New method. - (whos_line_format, Vwhos_line_format): New built-in variables. - (symbols_of_symtab): DEFVAR them. - (symbol_record::nelem, symbol_record::symbol_def::nelem, - symbol_record::byte_size, symbol_record::symbol_def::byte_size): - New methods. - (symbol_record::dimensions_string_req_first_space): New method. - (symbol_record::dimensions_string_req_total_space): New method. - * symtab.h (whos_parameter): New struct. Container for one - parameter in whos_line_format. - - 2004-07-22 Paul Kienzle - - * DLD-FUNCTIONS/dassl.cc (Fdassl): Fix doc string. - * ov-struct.cc (Fstruct): Likewise. - * symtab.cc (Fdebug_symtab_lookups): Likewise. - - 2004-07-22 David Bateman - - * data.cc (Fsize): Return 1 for dimensions exceeding ndim. - - * ov.cc (octave_value::octave_value (const ArrayN)): - New constructor. - * ov.h: Provide decl. - * ov-cx-mat.h (octave_complex_matrix (const ArrayN&)): - New constructor. - * ov-re-mat.h (octave_complex_matrix (const ArrayN&)): - New constructor. - - * ov-re-mat.h (octave_matrix(const ArrayN&)): New constructor - * pt-loop.cc (DO_ND_LOOP): New macro for use of NDArray in for loop. - (tree_simple_for_command::eval): Use it, and allow iteration over - cell arrays. - - 2004-07-12 John W. Eaton - - * ov-intx.h: N-d array and scalar extractor functions take no args. - - * ov.h (octave_value::int8_scalar_value, - octave_value::int16_scalar_value, octave_value::int32_scalar_value, - octave_value::int64_scalar_value, octave_value::uint8_scalar_value, - octave_value::uint16_scalar_value, octave_value::uint32_scalar_value, - octave_value::uint64_scalar_value): New functions. - * ov-base.cc (octave_base_value::int8_scalar_value, - octave_base_value::int16_scalar_value, - octave_base_value::int32_scalar_value, - octave_base_value::int64_scalar_value, - octave_base_value::uint8_scalar_value, - octave_base_value::uint16_scalar_value, - octave_base_value::uint32_scalar_value, - octave_base_value::uint64_scalar_value): New functions. - * ov-base.h: Provide decls. - - * lex.l: (Vtoken_count): New static variable. - (COUNT_TOK_AND_RETURN): New macro. Use it everywhere a token is - returned to the parser. - (F__token_count__): New function. - - 2004-06-25 John W. Eaton - - * OPERATORS/op-int-conv.cc: Add conversions for range type. - - 2004-06-17 John W. Eaton - - * bitfcns.cc (bitfcns): New file. - * Makefile.in (DIST_SRC): Add it to the list. - - 2004-06-16 John W. Eaton - - * OPERATORS/op-int.h: New file. - * OPERATORS/op-i16-i16.cc, OPERATORS/op-i8-i8.cc, - OPERATORS/op-ui32-ui32.cc, OPERATORS/op-i32-i32.cc, - OPERATORS/op-int-conv.cc, OPERATORS/op-ui64-ui64.cc, - OPERATORS/op-i64-i64.cc, OPERATORS/op-ui16-ui16.cc, - OPERATORS/op-ui8-ui8.cc: Use new macros from op-int.h. - - 2004-06-14 John W. Eaton - - * pr-output.h, pr-output.cc (octave_print_conv): New traits class. - (template void octave_print_internal (std::ostream&, - const intNDArray&, bool, int), - (template void octave_print_internal (std::ostream&, - const octave_int&, bool)): New template functions. - Instantiate versions for new int types. - - * ov-typeinfo.h (octave_value_typeinfo::type_conv_ops): - New data member. - (octave_value_typeinfo::register_type_conv_op, - octave_value_typeinfo::lookup_type_conv_op, - octave_value_typeinfo::do_register_type_conv_op, - octave_value_typeinfo::do_lookup_type_conv_op): New functions. - - * ov-re-mat.cc (Fdouble): New function. - - * ov-range.h (octave_range::reshape): Reshape array_value, not - matrix_value. - - * ov-base-scalar.h (octave_base_scalar::all, - octave_base_scalar::any, octave_base_scalar::is_true): Use - ST() instead of 0.0. - - * ov-base-mat.h (octave_base_matrix::byte_size): New function. - - * ops.h (INSTALL_COLNVOP, DEFCONVFNX, DEFDBLCONVFN, DEFCONVFN, - DEFCONVFN2): New macros. - - * DLD-FUNCTIONS/filter.cc (Ffilter): Kluge type conversions. - - * ov.cc (install_types): Register new integer types. - - * ov.h, ov.cc (octave_value::octave_value (const octave_int8&), - octave_value::octave_value (const octave_uint8&), - octave_value::octave_value (const octave_int16&), - octave_value::octave_value (const octave_uint16&), - octave_value::octave_value (const octave_int32&), - octave_value::octave_value (const octave_uint32&), - octave_value::octave_value (const octave_int64&), - octave_value::octave_value (const octave_uint64&), - octave_value::octave_value (const int8NDArray&), - octave_value::octave_value (const uint8NDArray&), - octave_value::octave_value (const int16NDArray&), - octave_value::octave_value (const uint16NDArray&), - octave_value::octave_value (const int32NDArray&), - octave_value::octave_value (const uint32NDArray&), - octave_value::octave_value (const int64NDArray&), - octave_value::octave_value (const uint64NDArray&)): - New constructors. - - * ov.h (octave_value::internal_rep): New function. - (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Also define - static_type_id, static_type_name, and static_class_name - functions. - - * Cell.h (Cell::reshape (const dim_vector&)): New forwarding - function for return type conversion. - - * ov-int16.cc, ov-int16.h, ov-int32.cc, ov-int32.h, ov-int64.cc, - ov-int64.h, ov-int8.cc, ov-int8.h, ov-uint16.cc, ov-uint16.h, - ov-uint32.cc, ov-uint32.h, ov-uint64.cc, ov-uint64.h, ov-uint8.cc, - ov-uint8.h, ov-type-conv.h, ov-int-traits.h, - OPERATORS/op-int-conv.cc, OPERATORS/op-double-conv.cc, - OPERATORS/op-i16-i16.cc, OPERATORS/op-i32-i32.cc, - OPERATORS/op-i64-i64.cc, OPERATORS/op-i8-i8.cc, - OPERATORS/op-ui16-ui16.cc, OPERATORS/op-ui32-ui32.cc, - OPERATORS/op-ui64-ui64.cc, OPERATORS/op-ui8-ui8.cc: New files. - Makefile.in: Add them to the appropriate lists. - - 2004-06-03 John W. Eaton - - * ov-fcn-handle.h (octave_function_handle::is_matrix_type, - octave_function_handle::is_numeric_type, - octave_function_handle::is_constant, - octave_function_handle::is_true): New functions. - (octave_function_handle::is_defined): Delete (inherited version is - OK). - - 2004-06-03 David Bateman - - * DLD-FUNCTIONS/filter.cc: Fix for length(a)=1 && length(b)=2 case. - - 2004-05-07 John W. Eaton - - * ov.cc (octave_value::print_with_name): Only print name tag if - Vprint_answer_id_name is true. - - * octave.cc (intern_argv): Insert __nargin__ in top_level_sym_tab - instead of making it a builtin variable. Mark it static. - * ov-usr-fcn.cc (octave_user_function::install_automatic_vars): - Mark local automatic variables static. - - 2004-04-30 John W. Eaton - - * oct-stream.cc (octave_base_stream::clearerr): New function. - (octave_stream::clearerr): New function. - (seek (long, int)): Call clearerr here. - * oct-stdstrm.h (octave_stdiostream::clear): New function. - * c-file-ptr-stream.h (c_file_ptr_buf::clear, - i_c_file_ptr_stream::clear, o_c_file_ptr_stream::clear, - io_c_file_ptr_stream::clear): New functions. - - 2004-04-29 David Bateman - - * load-save.cc (Fload, Fsave): Accept -mat as well as -mat-binary. - - 2004-04-27 David Bateman - - * DLD-FUNCTIONS/sort.cc: Add missing "class" keywords to template - instantiations. - - 2004-04-22 John W. Eaton - - * pt-plot.cc (Fclearplot): Temporarily turn off automatic_replot. - Clear display after resetting title, labels, etc. - - 2004-04-22 John W. Eaton - - * pt-colon.cc (tree_colon_expression::rvalue): Also check for - error_state after evaluating each subexpression. - - 2004-04-22 David Bateman - - * ov-base-scalar.h (octave_base_scalar::permute): New function. - - * ov-base-mat.cc (octave_base_matrix::is_true): Make N-d aware. - - 2004-04-22 John W. Eaton - - * oct-stream.cc (printf_value_cache::curr_value): Now NDArray. - (printf_value_cache::double_value): Extract N-d array, not Matrix. - - 2004-04-21 John W. Eaton - - * parse.y (function2): Pass id name to frob_function. Delete id. - (frob_function): Accept function name instead of identifier. - Don't try to rename symbol table entry. Lookup symbol record for - function name here. Insert name in symbol table if needed. - Operate on symbol record instead of identifier. - - 2004-04-21 David Bateman - - * DLD_FUNCTIONS/fft.cc(do_fft): Correctly initialize the variable dim - for scalar arguments. - - * DLD-FUNCTIONS/minmax.cc: Handle single vector arg correctly. - - 2004-04-20 John W. Eaton - - * ls-mat-ascii.cc (read_mat_ascii_data): Prepend "X" to keywords. - Only drop text after last "." in name. - - * lex.l (is_keyword): New function. - (Fiskeyword): Use it. - * lex.h: Provide decl. - - * lex.l (is_keyword_token): Rename from is_keyword. - - 2004-04-16 John W. Eaton - - * file-io.cc (maybe_warn_interface_change): New function. - (fopen_mode_to_ios_mode): Use it. - - 2004-04-16 Paul Kienzle - - * file-io.cc (fopen_mode_to_ios_mode): Default to binary mode. - (Ffopen): Document 't' and 'b' mode flags. - - 2004-04-16 John W. Eaton - - * Makefile.in (DLD_XSRC): Add gcd.cc to the list. - - 2004-04-16 David Bateman - - * DLD-FUNCTIONS/gcd.cc: New file. - - 2004-04-15 David Bateman - - * ov-ch-mat.h: convert_to_str_interal returns charNDArray. - - 2004-04-12 John W. Eaton - - * version.h (OCTAVE_BUGS_STATEMENT): Bug list is now bug@octave.org. - - 2004-04-08 John W. Eaton - - * ov-base-mat.cc (octave_base_matrix::do_index_op): Quit early - if an error occurs when creating index vector object. - - * ov.cc (octave_value::numeric_assign): Always call maybe_mutate - on return value. - - 2004-04-06 David Bateman - - * DLD_FUNCTIONS/sort.cc: Use the new template sort class, adapt for - N-d arrays, and allow optional dim argument. - - * DLD_FUNCTIONS/fftn.cc: Save result of transpose operation. - Check for failure of transpose. - - 2004-04-02 John W. Eaton - - * ov-bool.h (octave_bool::bool_array_value): New function. - - * ov-base-mat.cc (octave_base_matrix::subsasgn): Don't allow - expressions like x(i)(j) or x(i){j} when x is empty. - - * load-save.cc (get_file_format): Error if file does not exist. - (Fload): Also complain here if specific file type is specified and - file does not exist. - - 2004-04-02 Quentin Spencer - - * parse.y: Use persistent instead of static in warnings messages. - - 2004-04-02 John W. Eaton - - * pt-decl.cc (tree_static_command::do_init): Initialize to empty - matrix by default. - - 2004-04-02 David Bateman - - * ov-re-mat.cc (octave_matrix::convert_to_str_internal): - Return charNDArray. - * ov-bool-mat.cc (octave_bool_matrix::convert_to_str_internal): - Call array_value. - - * DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc, - DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/minmax.cc, - DLD-FUNCTIONS/filter.cc: - Convert for N-d array, better Matlab compatibility. - - * load-save.cc (Fload): Better handling of non existent files. - - 2004-03-19 John W. Eaton - - * ov-list.cc (octave_list::subsref): Correctly create return value. - Return comma-separate list if {-style indexing extracts more than - one value. - - 2004-03-12 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.57. - (OCTAVE_API_VERSION): Now api-v8. - - * ov-cell.cc (octave_cell::save_hdf5): Handle empty cells. - (octave_cell::load_hdf5): Likewise. - - 2004-03-11 John W. Eaton - - * ov-base-mat.cc (octave_base_matrix::subsasgn): If empty, - allow type conversion when indexing with "{" and ".". - - 2004-03-10 John W. Eaton - - * pr-output.cc (init_format_state): Also set compact_format. - (pr_col_num_header): Print one newline character before column - headers for compact format. - - 2004-03-09 John W. Eaton - - * version.h (OCTAVE_WWW_STATEMENT): New macro. - (OCTAVE_STARTUP_MESSAGE): Include it here. - (OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS): And here. - - * octave.cc (verbose_usage): Use OCTAVE_WWW_STATEMENT here. - - * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): If there are no - nonzero elements, return [](0x1) or [](1x0), not [](0x0). - Correctly preserve orientation for row vectors. - - 2004-03-08 Petter Risholm - - * data.cc (do_cat): Check for length of args before getting dimension. - New arg, fname. Print usage message corresponding to fname. - (Fcat): Pass "cat" as fname arg to do_cat. - (Fhorzcat): Pass "horzcat" as fname arg to do_cat. - (Fvertcat): Pass "vertcat" as fname arg to do_cat. - - 2004-03-05 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.56. - (OCTAVE_API_VERSION): Now api-v7. - - 2004-03-04 John W. Eaton - - * ov-struct.cc (Frmfield): New function - - * oct-map.h (Octave_map::contains): Return bool, not int. - - * ov-cell.cc (Fiscellstr): No error if arg is not a cell array. - (Fcellstr): Return arg if it is already a cell array of character - strings. - - 2004-03-03 John W. Eaton - - * ov-bool.cc (octave_bool::load_hdf5, octave_bool::save_hdf5): - Avoid unnecessary casts. - * ov-bool-mat.cc (octave_bool_matrix::load_hdf5, - octave_bool_matrix::save_hdf5): Likewise. - * ov-cell.cc (octave_cell::load_hdf5, octave_cell::save_hdf5): - Likewise. - * ov-complex.cc (octave_complex::load_hdf5, - octave_complex::save_hdf5): Likewise. - * ov-cx-mat.cc (octave_complex_matrix::load_hdf5, - octave_complex_matrix::save_hdf5): Likewise. - * ov-range.cc (octave_range::load_hdf5, octave_range::save_hdf5): - Likewise. - * ov-re-mat.cc (octave_matrix::load_hdf5, octave_matrix::save_hdf5): - Likewise. - * ov-scalar.cc (octave_scalar::load_hdf5, octave_scalar::save_hdf5): - Likewise. - * ov-str-mat.cc (octave_char_matrix_str::load_hdf5, - octave_char_matrix_str::save_hdf5): Likewise. - - 2004-03-03 David Bateman - - * ov-cell.cc (octave_cell::save_hdf5, octave_cell::load_hdf5): - Make N-d aware. - - 2004-03-03 John W. Eaton - - * parse.y: Delete spaces surrounding = in %name-prefix directive. - - 2004-03-01 Petter Risholm - - * Cell.cc (Cell::cat): New function. - * Cell.h: Provide decl. - - * oct-map.cc (Octave_map::cat): New function. - * oct-map.h: Provide decl. - - * data.cc (Fcat): Speedup implementation. - - * data.cc (Fhorzcat, Fvertcat): New functions. - - * Array-tc.cc: Instantiate cat function. - - 2004-03-01 David Bateman - - * ls-hdf5.cc (save_hdf5_empty, load_hdf5_empty): New functions - to save/load empty matrices keeping their dimensions. - * ls-hdf5.h (save_hdf5_empty, load_hdf5_empty): Provide decls. - - * ov-re-mat.cc (save_hdf5, load_hdf5): Cleanup, check empty matrix. - * ov-cx-mat.cc (save_hdf5, load_hdf5): Ditto. - * ov-bool-mat.cc (save_hdf5, load_hdf5): Ditto. - - * ov-str-mat.cc (save_ascoo, load_ascii, save_binary, - load_binary, save_hdf5, load_hdf5): Cleanup, check empty matrix, - and save/load N-d arrays. - - 2004-02-27 John W. Eaton - - * octave.cc (execute_startup_files): Don't find current directory - for absolute name of local_rc until after executing home_rc. - - 2004-02-24 John W. Eaton - - * input.cc (input_event_hook): Return type is now int. Return 0. - - * file-io.cc (do_stream_open): Don't call ::error if stream can't - be created. Don't call ::fopen if arch is invalid. Set error - state for stream if fopen fails. - * oct-stream.h (octave_stream::error (const char *)): New function. - (octave_stream::error (const std::string&)): Now public. - - 2004-02-23 John W. Eaton - - * file-io.cc (Fftell): Return long integer instead of streamoff_array. - (do_stream_open): Create octave_stdiostream instead of octave_fstream. - - * oct-fstrm.cc (octave_fstream::seek, octave_fstream::tell): - Always fail. Signatures now match C library functionsb. - * oct-iostrm.cc (octave_base_iostream::seek, - octave_base_iostream::tell): Likewise. - * oct-strstrm.cc (octave_base_strstream::seek, - octave_base_strstream::tell): Likewise. - - * oct-stream.cc (octave_stream::seek, octave_stream::tell): - Signatures now match C-library functions. - - * oct-stdstrm.cc (octave_stdiostream::seek, octave_stdiostream::tell): - Call io_c_file_ptr_stream::seek and tell. Signatures now match - C-library functions. - - * c-file-ptr-stream.h (c_file_ptr_buf::seek, c_file_ptr_buf::tell): - New functions. - (i_c_file_ptr_stream::seek, i_c_file_ptr_stream::tell): Likewise. - (o_c_file_ptr_stream::seek, o_c_file_ptr_stream::tell): Likewise. - (io_c_file_ptr_stream::seek, io_c_file_ptr_stream::tell): Likewise. - - 2004-02-20 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.55. - (OCTAVE_API_VERSION): Now api-v6. - - * sighandlers.cc (sigfpe_handler, sigpipe_handler): - Don't increment octave_interrupt_state if it is less than 0. - (sigint_handler): If octave_interrupt_state is less than zero, - reset it. - - * pt-except.cc (do_catch_code): Call OCTAVE_QUIT here so the catch - code won't run if an interrupt is pending. Don't run catch code - if octave_interrupt_state is less than zero. - - 2004-02-20 Per Persson - - * Makefile.in (OCT_LINK_DEPS, OCTINTERP_LINK_DEPS): - Include $(LIBS) in the list before $(FLIBS). - - 2004-02-20 John W. Eaton - - * pr-output.cc (octave_print_internal (std::ostream&, const - Range&, bool, int)): Don't print values beyond the limits of the - range. - - * sighandlers.cc (sigint_handler): Print message after two - consecutive interrupts, dump core after three or more. - - * load-save.cc (dump_octave_core): Handle core size limit. - Rename from save_user_variables. Change all callers. - (Fload, dump_octave_core, Fsave): Open HDF5 fils in binary mode. - (do_save): Extract switch over file types to separate function. - - * load-save.cc (Voctave_core_file_limit): New variable. - (octave_core_file_limit): New function. - (symbols_of_load_save): Add DEFVAR for octave_core_file_limit. - - * load-save.cc (Voctave_core_file_name): New variable. - (octave_core_file_name): New function. - (symbols_of_load_save): Add DEFVAR for octave_core_file_name. - - * load-save.cc (Voctave_core_file_format): - Rename from Voctave_core_format. - (octave_core_file_format): Rename from octave_core_format. - (symbols_of_load_save): Fix DEFVAR to match. - - 2004-02-19 John W. Eaton - - * ov.cc (Fsizeof): New function. - - * ov.h (octave_value::byte_size): New function. - * ov-base.h (octave_base_value::byte_size): New function. - * ov-base-scalar.h (octave_base_scalar::byte_size): New function. - * ov-bool-mat.h (octave_bool_matrix::byte_size): New function. - * ov-ch-mat.h (octave_char_matrix::byte_size): New function. - * ov-cx-mat.h (octave_complex_matrix::byte_size): New function. - * ov-re-mat.h (octave_matrix::byte_size): New function. - * ov-range.h (octave_range::byte_size): New function. - * ov-cell.cc (octave_cell::byte_size): New function. - * ov-cell.h: Provide decl. - * ov-struct.cc (octave_struct::byte_size): New function. - * ov-struct.h: Provide decl. - * ov-streamoff.h (octave_streamoff::byte_size): New function. - * ov-list.cc (octave_list::byte_size): New function. - * ov-list.h: Provide decl. - - * xpow.cc (elem_xpow (const Matrix&, double)): - Convert both operands to Complex if any element of A is negative. - (elem_xpow (const NDArray&, double)): Likewise. - - 2004-02-18 John W. Eaton - - * load-save.cc (Voctave_core_format): New static_variable. - (octave_core_format): New function. - (symbols_of_load_save): Add DEFVAR for octave_core_format. - (get_save_format): Rename from get_default_save_format. - Pass name of format as arg. New optional arg, fallback_format. - Change all uses. - (save_user_variables): Use pass Voctave_core_format to - get_save_format here. Pass LS_BINARY as fallback_format. - - * sighandlers.cc (my_friendly_exit): New optional arg, save_vars. - Only call save_user_variables if save_vars is true. - (sigint_handler): If interactive, offer to abort and save - workspace after three consecutive interrupts. - (sigint_handler, sigpipe_handler, sigfpe_handler): - Increment octave_interrupt_handler instead of setting it to 1. - - 2004-02-16 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.54. - (OCTAVE_API_VERSION): Now api-v5. - - * Makefile.in (DLD_XSRC): Always include fftw_wisdom.cc. - - * DLD-FUNCTIONS/fftw_wisdom.cc: - Rename from DLD-FUNCTIONS/fft_wisdom.cc. - (Vfftw_wisdom_prog): Delete extern decl. - (Ffftw_wisdom): Rename from Ffft_wisdom. - Use Vfftw_wisdom_prog instead of Vwisdom_prog. - Always define function. Signal error if not configured to use FFTW3. - - * defaults.cc (symbols_of_defaults): Rename WISDOM_PROGRAM to be - FFTW_WISDOM_PROGRAM. - (Vfftw_wisdom_prog): Rename from Vwisdom_prog. - (fftw_wisdom_program): Rename from wisdom_program. - For simplicity, always define FFTW_WISDOM_PROGRAM even when not - using fftw3. - (set_default_wisdom_prog): Look for OCTAVE_FFTW_WISDOM_PROGRAM in - the environment instead of OCTAVE_WISDOM_PROGRAM. - (set_default_fftw_wisdom_prog): Rename from set_default_wisdom_prog. - * defaults.h.in (Vfftw_wisdom_prog): Provide extern decl. - - 2004-02-16 David Bateman - - * DLD-FUNCTIONS/fft.cc: Adapt for Nd arrays, combine with ifft.cc. - * DLD-FUNCTIONS/ifft.cc: Delete. - * DLD-FUNCTIONS/fft2.cc: Adapt for Nd arrays, combine with ifft.cc. - * DLD-FUNCTIONS/ifft2.cc: Delete. - * DLD-FUNCTIONS/fftn.cc: New function for Nd FFT and inverse FFT. - * DLD-FUNCTIONS/fft_wisdom.cc: New function to manipulate FFTW - wisdom. - - * Makefile.in: Remove ifft.cc and ifft2.cc. Add fftn.cc and - ifftn.cc. Make building of fft-wisdom.cc conditional on the - value of FFTW_LIBS. - * defaults.cc (Vwisdom_prog): New variable - (set_default_wisdom_prog, wisdom_prog): New functions. - (symbols_of_defaults): Add DEFVAR for wisdom_prog. - - 2004-02-16 John W. Eaton - - * ov-list.cc (octave_list::subsasgn): Call assign for Cell objects - here, not the base octave_value::assign. - - 2004-02-15 John W. Eaton - - * lex.l (yywrap): Don't #undef this symbol. - - 2004-02-15 Petter Risholm - - * pt-mat.cc: Make [,] concatenation work for N-d arrays. - - 2004-02-15 John W. Eaton - - * data.cc (do_cat): Merge with Fcat. - - 2004-02-15 Petter Risholm - - * ov-cell.cc (Fstruct2cell): New function. - - 2004-02-14 John W. Eaton - - * Makefile.in (OCTINTERP_LINK_DEPS, OCT_LINK_DEPS): Always define. - - * oct-conf.h.in: Add OCTAVE_CONF_DL_LD, OCTAVE_CONF_DL_LDFLAGS, - and OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS. - Delete OCTAVE_CONF_MKOCTFILE_SH_LDFLAGS. - - * toplev.cc (octave_config_info): Delete MKOCTFILE_SH_LDFLAGS. - Add DL_LD, DL_LDFLAGS, and MKOCTFILE_DL_LDFLAGS to the struct. - - 2004-02-14 Per Persson - - * Makefile.in (%.oct): Use DL_LD instead of SH_LD to build .oct files. - - 2004-02-14 John W. Eaton - - * ov-base-scalar.h (octave_base_scalar::squeeze): New function. - - 2004-02-13 Petter Risholm - - * data.cc (Fcat): New function. - * data.cc (do_cat): New function. - * data.cc (cat_add_dims): New function. - - 2004-02-13 John W. Eaton - - * toplev.cc (main_loop): Call octave_parse, not yyparse. - * octave.cc (octave_main): Increment octave_debug, not yydebug. - * parse.y (%name-prefix): New directive, set to "octave_". - * parse.h: Provide declarations for octave_lex and octave_parse - instead of yylex and yyparse. - * lex.l (%option prefix): New directive, set to "_octave". - Define yylval to be octave_lval. - Move definitions of YY_INPUT, YY_FATAL_ERROR, TOK_RETURN, - TOK_PUSH_AND_RETURN, BIN_OP_RETURN, XBIN_OP_RETURN here. - * lex.h: From here. - - 2004-02-07 Petter Risholm - - * ov-struct.cc (Fcell2struct): New function. - (cell2struct_check_args, cell2struct_construct_idx): Likewise. - - 2004-02-07 John W. Eaton - - * ov-scalar.h (octave_scalar::empty_clone): - Return empty octave_matrix, not an octave_scalar object. - * ov-complex.h (octave_complex::empty_clone): - Return empty octave_complex_matrix, not an octave_complex object. - - 2004-02-06 John W. Eaton - - * ov-usr-fcn.h (octave_user_function::function_name): Delete. - (octave_user_function::fcn_name): Delete unused data member. - (octave_user_function::stash_function_name): Save name in - tree_function::my_name instead of fcn_name. - Change all uses of fcn_name to be my_name instead. - - * pt.h, pt.cc (tree::break_function): Now pointer to - octave_function rather than octave_user_function object. - - * pt-bp.h (MAYBE_DO_BREAKPOINT): Use name instead of function_name - to get name from curr_function. - * pt-pr-code.cc (tree_print_code::visit_octave_user_function_header): - likewise. - * debug.cc (Fdbwhere, Fdbtype, ): Likewise - * error.cc (pr_where): Likewise. - * variables.cc (Fmlock, Fmunlock, Fmislocked): Likewise. - (lookup_function, lookup_user_function, link_to_builtin_or_function): - Likewise, for curr_parent_function. - - * debug.cc (get_user_function, Fdbwhere): - Cast curr_function to pointer to octave_user_function. - - * ov-mapper.cc (octave_mapper::do_multi_index_op): - Save and restore curr_function here. - * ov-builtin.cc (octave_builtin::do_multi_index_op): Likewise. - - * toplev.h, toplev.cc (curr_function, curr_parent_function): Now - pointers to octave_function rather than octave_user_function objects. - - * ov-usr-fcn.h (octave_user_function::is_user_function): New function. - * ov-fcn.h (octave_function::takes_varargs, - octave_function::octave_va_start, octave_function::octave_va_arg, - octave_function::octave_all_va_args, - octave_function::takes_var_return, octave_function::octave_vr_val, - octave_function::is_user_function): New virtual functions. - - 2004-02-05 John W. Eaton - - * ov-struct.cc (Fstruct): Use new Octave_map constructor to create - structures with specified sizes but no keys. - - * ov-struct.cc (Fstruct): New function, from Paul Kienzle - and Petter Risholm . - - * oct-map.h (Octave_map::Octave_map): Allow dimension to be - specified for map with no keys. - - * ov-struct.cc (fieldnames): Return 0x1 cell array if no fieldnames. - - 2004-02-05 Petter Risholm - - * ov-base-mat.cc (octave_base_matrix::do_index_op): - Don't fail if number of indices is greater than 2. - - 2004-02-05 John W. Eaton - - * data.cc (Fsize): Update for N-d objects. - - * ls-mat5.cc (read_mat5_binary_element): Force conversion. - - * ov-base.cc (octave_base_value::char_matrix_value): - Pass force arg to convert_to_str. - - * data.cc (Freshape): Chop trailing singletons from new dimensions. - - 2004-02-03 John W. Eaton - - * error.cc (defun_usage_message): Only accept one arg, a const - std::string& object. Change all uses. Pass nul-terminated string - to defun_message_1. - (defun_usage_message_1): New function, equivalent to old - defun_usage_message. - - * ov-base.cc (nint_value): Use fix, not NINT. - (INT_CONV_METHOD): Likewise, use fix instead of just casting. - - * data.cc (make_diag): Use int_value instead of nint_value to - extract k for Matlab compatibility. - (Flinspace): Likewise, for npoints. - (fill_matrix): Likewise, for extracting dims. - (Fsize): Likewise, for extracting dim argument. Require int value. - * utils.cc (get_dimensions): Likewise. Use fix, not NINT. - - 2004-02-02 John W. Eaton - - * error.cc (verror, error_1): New arg, os. Use this instead - of always printing to std:cerr. Change all callers. - - * error.cc (defun_usage_message): New function. - * error.h: Provide decl. - * defun.cc (print_usage): Use it to display error message. - - * error.cc (verror): New arg, save_last_error. Change all callers. - (usage): Set error_state after calling verror. - - * oct-map.cc (Octave_map::assign (const std::string, const Cell&)): - Set dimensions to RHS dimensions, not 1x1. - - 2004-01-23 John W. Eaton - - * ov-bool.cc, ov-cx-mat.cc, ov-re-mat.cc, ov-str-mat.cc: - Include . - * file-io.cc, ls-hdf5.cc, ls-mat4.cc, ls-mat5.cc, ls-oct-binary.cc: - Include , not for new defn of OCTAVE_LOCAL_BUFFER. - * load-save.cc, ls-mat-ascii.cc, ls-oct-ascii.cc - No need to include now. - - * DLD-FUNCTIONS/eig.cc (Feig): Use new optional arg for EIG to - avoid computing eigenvectors if not requested. - Based on a patch from David Bateman . - - 2004-01-23 John W. Eaton - - * ov-cell.cc (all_strings): Always compute total required length - of retval. - - 2004-01-22 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.53. - (OCTAVE_API_VERSION): Now api-v4. - - * error.cc (pr_where): New arg, print_code with default value true. - (warning): Call pr_where with second arg false. - - * file-io.cc (Ffrewind): Only return value if nargout > 0. - (Ffprintf): Likewise. - (Fprintf): Likewise. - - * file-io.cc (Ffrewind): Return 0 for success, -1 for failure. - Make docs match. - - * Makefile.in (distclean): Remove DOCSTRINGS. - (maintainer-clean): Remove $(OPT_HANDLERS). - - 2004-01-21 John W. Eaton - - * ov-cell.cc (octave_cell::subsref): Make '{' case N-d aware. - - * ov-scalar.cc (streamoff_array_value): New function. - * ov-scalar.h: Provide decl. - - * OPERATORS/op-streamoff.cc (STREAMOFF_COMP_OP): New maco. - Use it to define streamoff by matrix, streamoff by scalar, scalar - by streamoff, and matrix by streamoff comparison operators. - (install_streamoff_ops): Install them. - - * Cell.h (Cell::operator ()): Delete (we inherit them from Array). - (maybe_resize, elem_internal): Delete unused functions. - - * ls-mat5.cc (write_mat5_cell_array): Cell& arg is now const. - - 2004-01-20 John W. Eaton - - * variables.cc (is_valid_function): If warn, also print error - message if arg is not a string. - - * ov-usr-fcn.cc (Fnargin, Fnargout): New functions. - - * octave.cc (intern_argv): Lookup __nargin__ instead of nargin. - * ov-usr-fcn.cc (octave_user_function::install_automatic_vars): - Lookup __nargin__ and __nargout__ instead of nargin and nargout. - - * variables.h (at_top_level): Now extern. - (lookup_user_function): New function. - * variables.cc: Provide decls. - - * ov.h, ov.cc (octave_value::user_function_value): - New virtual function. - * ov-base.h, ov-base.cc (octave_base_value::user_function_value): - Provide default version. - * ov-usr-fcn.h (octave_user_function::user_function_value): - New function. - - * ov-re-mat.cc (complex_array_value): New function. - * ov-re-mat.h: Provide decl. - - * ov-cell.cc (Fiscellstr): Don't return value on usage error. - - * error.cc: (symbols_of_error): Delete DEFVAR for error_text. - Define __error_text__ and error_text as aliases for lasterr. - - * error.cc (bind_global_error_variable, clear_global_error_variable): - Delete. - * variables.h: Delete decls. - - * parse.y (Feval, Fevalin): Don't call bind_global_error_variable. - Don't add clear_global_error_variable to the unwind_protect stack. - Increment buffer_error_messages before evaluating "eval" code, - decrement it before evaluating "catch" code. - - * pt-except.cc (do_catch_code): Don't call bind_global_error_variable. - Don't add clear_global_error_variable to the unwind_protect stack. - Decrement buffer_error_messages here. - (tree_try_catch_command::eval): Increment buffer_error_messages here. - - * error.cc, error.h (buffer_error_messages): Now an int. - - 2004-01-16 John W. Eaton - - * toplev.cc (octave_config_info): Add float_format, - words_big_endian, and words_little_endian to the struct. - - 2004-01-14 David Bateman - - * ov-cell.cc (octave_cell::load_hdf5): Fix for HDF5 version 1.6 - handling of number of objects in a group. - * ov-struct.cc (octave_struct::load_hdf5): Likewise. - * ov-list.cc (octave_list::load_hdf5): Likewise. - * ls-hdf5.cc (read_hdf5_data): Likewise. - - 2004-01-13 John W. Eaton - - * ls-hdf5.h: Surround contents with #if defined (HAVE_HDF5). - - 2004-01-10 John W. Eaton - - * oct-stream.cc (convert_to_valid_int, get_size): - Use lo_ieee_is_NaN_or_NA instead of xisnan. - (octave_base_stream::do_printf): Correct special case check for - NA, NaN, Inf, or out of range integers. - - * dirfns.cc (Fglob): Always return list of files as a cell array. - (Freaddir): Likewise. - - * dirfns.cc (Fls): If nargout > 0, return ls output. - - 2004-01-09 John W. Eaton - - * load-save.cc (Fload): Assume -force by default. - - * oct-stream.cc (octave_base_stream::write): - Allow fwrite (fid, "some string") to work. - - * toplev.cc (Fcomputer): Delete. - (octave_config_info): Add unix and windows fields to the struct. - - 2004-01-06 David Bateman - - * ls-hdf5.cc: Fix handle of old versus new format files. - - * ls-oct-binary.cc: Split the load/save functionality into the types - themselves. Backward compatibility maintained. - - * ov-struct.cc (save_binary, load_binary): - * ov-str-mat.cc (save_binary, load_binary): - * ov-scalar.cc (save_binary, load_binary): - * ov-re-mat.cc (save_binary, load_binary): - * ov-range.cc (save_binary, load_binary): - * ov-list.cc (save_binary, load_binary): - * ov-cx-mat.cc (save_binary, load_binary): - * ov-complex.cc (save_binary, load_binary): - * ov-cell.cc (save_binary, load_binary): - * ov-bool.cc (save_binary, load_binary): - * ov-bool-mat.cc (save_binary, load_binary): - New functions for loading and saving structures in octave binary - format. - - * ov-str-mat.h (save_binary, load_binary): - * ov-scalar.h (save_binary, load_binary): - * ov-re-mat.h (save_binary, load_binary): - * ov-range.h (save_binary, load_binary): - * ov-list.h (save_binary, load_binary): - * ov-cx-mat.h (save_binary, load_binary): - * ov-complex.h (save_binary, load_binary): - * ov-cell.h (save_binary, load_binary): - * ov-bool.h (save_binary, load_binary): - * ov-bool-mat.h (save_binary, load_binary): - * ov-struct.h (save_binary, load_binary): - Provide decls. - - * ov.h (save_binary, load_binary): New virtual functions. - - * ov-base.cc (save_binary, load_binary): New functions, for fallbacks - with error message. - * ov-base.h: Provide decls. - - * load-save.cc: Remove "-import" flag and make it the default. - * load-save.h: Likewise. - - * ls-oct-ascii.cc: Split the load/save functionality into the types - themselves. Save "string" variables with the name "string" rather than - string array. Backward compatiability maintained in ov-cs-mat.cc. - Include new version of extract_keyword that halts if the next value is - invalid rather that searching for the next valid value. - - * ls-oct-ascii.h: Extract_keyword header updated. - Include definition of OCT_RBV and CELL_ELT_TAG, since they are now - used elsewhere. - - * ls-hdf5.cc: Split load/save functionality into the types themselves. - The hdf5 format is changed so that each object is a group with a - dataset "type" being a string with the octave_value type and the - dataset or group "value" containing the value of the data, struct, etc. - This allows extensibility. Backward compatibility is maintained. The - "import" flag is now assumed to always be true and has been removed. - - * ov-struct.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-str-mat.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-scalar.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-re-mat.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-range.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-list.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-cx-mat.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-complex.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-cell.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-bool.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-bool-mat.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): - New functions for loading and saving structures in octave ascii - and hdf5 formatted files. - - * ov-struct.h (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-str-mat.h (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-scalar.h (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-re-mat.h (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-range.h (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-list.h (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-cx-mat.h (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-complex.h (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-cell.h (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-bool.h (save_ascii, load_ascii, save_hdf5, load_hdf5): - * ov-bool-mat.h (save_ascii, load_ascii, save_hdf5, load_hdf5): - Provide decls. - - * ov-typeinfo.cc (octave_value_typeinfo::do_lookup_type): Include - make_unique so that the stored type value is not used for all loaded - variables. - - * ov.h: (save_ascii, load_ascii, save_hdf5 and load_hdf5): - New virtual functions. - - * ov-base.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): - New functions, for fallbacks with error message. - * ov-base.h: Provide decls. - - 2003-12-22 John W. Eaton - - * ov-cx-mat.cc (octave_complex_matrix::assign): RHS arg is N-d. - * ov-cx-mat.h: Fix decl. - - * ops.h (DEFNDASSIGNOP_FN): New macro. - * OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc, - OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, - OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, OPERATORS/op-m-m.cc, - OPERATORS/op-m-s.cc: Use it instead of DEFASSIGNOP_FN. - - 2003-12-19 John W. Eaton - - * xpow.cc (xpow (double, double)): Avoid apparent GNU libm bug. - - 2003-12-17 John W. Eaton - - * symtab.cc (symbol_record::print_symbol_info_line): - Also check is_static to see if a symbol can be cleared. - - 2003-12-16 John W. Eaton - - * lex.l (is_keyword): Also allow varargout_kw if - lexer_flags.looking_at_return_list is false provided that we are - defining a function and we haven't seen the function name yet. - * parse.y (return_list): Don't require [] around varargout. - - * DLD-FUNCTIONS/find.cc (DO_FIND_OP): Delete macro. - (find_to_fortran_idx): Delete. Move guts of function to - find_nonzero_elem_idx. - (find_nonzero_elem_idx): Now a template function. Handle overall - array index here too. Make it N-d aware. - - * pt-pr-code.cc (tree_print_code::visit_complex_for_command, - tree_print_code::visit_octave_user_function_header, - tree_print_code::visit_matrix, tree_print_code::visit_cell, - tree_print_code::visit_multi_assignment): Keep track of nearest - [, {, or ( nesting level. - (tree_print_code::visit_index_expression): Likewise. Check nesting - level to decide how to print index. - (tree_print_code::reset): Also reset nesting level stack. - - * pt-pr-code.h (tree_print_code::nesting): New data member. - (tree_print_code::tree_print_code): Initialize it. - - * ov-base-mat.h (octave_base_matrix::octave_base_matrix (const MT&)): - If arg has no dimensions, resize to be 0x0. - - 2003-12-15 John W. Eaton - - * oct-map.cc (Octave_map::assign): Use Octave_map::contents member - function instead of operator []. - * ov-struct.cc (octave_struct::subsasgn): Likewise. - * DLD-FUNCTIONS/time.cc (extract_tm): Likewise. - - * DLD-FUNCTIONS/time.cc (mk_tm_map): Use Octave_map::assign member - function instead of operator []. - * DLD-FUNCTIONS/getrusage.cc (Fgetrusage): Likewise. - * DLD-FUNCTIONS/getgrent.cc (mk_gr_map): Likewise. - * DLD-FUNCTIONS/getpwent.cc (mk_pw_map): Likewise. - * load-save.cc (do_load): Likewise. - * ls-hdf5.cc (hdf5_read_next_data): Likewise. - * ls-mat5.cc (read_mat5_binary_element): Likewise. - * oct-map.cc (Octave_map::reshape): Likewise. - * oct-map.cc (Octave_map::index): Likewise. - * ov-fcn-handle.cc (Ffunctions): Likewise. - * pt-idx.cc (make_arg_struct): Likewise. - * sighandlers.cc (make_sig_struct): Likewise. - * syscalls.cc (mk_stat_map): Likewise. - * toplev.cc (Foctave_config_info): Likewise. - - * ls-hdf5.cc (add_hdf5_data): Temporary Octave_map is now const. - * ls-mat5.cc (save_mat5_binary_element): Likewise. - - * oct-map.cc (Octave_map::assign (const std::string&, const - octave_value&)): New function. - * oct-map.h: Provide decl. - (Octave_map::contents (const std::string&)): New function. - (Octave_map::operator [] (const std::string&) const): Delete. - (Octave_map::operator [] (const std::string&)): Delete. - - 2003-12-09 John W. Eaton - - * OPERATORS/op-cell.cc: Allow transpose for cell arrays. - * OPERATORS/op-m-m.cc, OPERATORS/op-cm-cm.cc, - OPERATORS/op-bm-bm.cc, OPERATORS/op-streamoff.cc, - OPERATORS/op-str-str.cc: Improve error message for attempt to - transpose N-d object. - - 2003-11-27 John W. Eaton - - * pt-arg-list.cc (F__end__): Handle N-d objects. - - 2003-11-25 John W. Eaton - - * OPERATORS/op-b-bm.cc: New file. - - * OPERATORS/op-bm-b.cc (op_el_and, op_el_or): Define and install. - * OPERATORS/op-bm-bm.cc (op_el_and, op_el_or, assign): Likewise. - - * ov-str-mat.cc (CHAR_MATRIX_CONV): New macro. - * ov-str-mat.h (octave_char_matrix_str::double_value, - octave_char_matrix_str::matrix_value, - octave_char_matrix_str::array_value, - octave_char_matrix_str::complex_value, - octave_char_matrix_str::complex_matrix_value, - (octave_char_matrix_str::complex_array_value): Use it. - - * ov-bool-mat.cc (default_numeric_conversion_function): - Convert to NDArray, not Matrix. - * ov-str-mat.cc (default_numeric_conversion_function): Likewise. - - * ov-range.h (octave_range::array_value): New function. - (octave_range::complex_array_value): Likewise. - * ov-ch-mat.h (charNDArray::array_value): New function. - (charNDArray::complex_array_value): Likewise. - * ov-str-mat.h (octave_char_matrix_str::array_value): Likewise. - (octave_char_matrix_str::complex_value): Likewise. - (octave_char_matrix_str::complex_matrix_value): Likewise. - (octave_char_matrix_str::complex_array_value): Likewise. - - * mappers.cc (acosh, log, log10, sqrt): - Use octave_Inf instead of DBL_MAX for range limit. - - 2003-11-24 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.52. - (OCTAVE_API_VERSION): Now api-v3. - - * DLD-FUNCTIONS/rand.cc (do_rand): Pass function name from arg - list in calls to error. - - * ov-cs-list.cc, ov-cs-list.h (octave_cs_list::octave_cs_list): - Explicitly initialize base class in constructors. - - * ov.h (octave_value::all_strings): Pass second arg to rep function. - - * ov.h (octave_value::string_value): Pass arg to rep function. - - * DLD-FUNCTIONS/dasrt.cc (dasrt_user_f): Delete unused arg names. - * DLD-FUNCTIONS/rand.cc (Frand, Frandn): Likewise. - * ls-hdf5.h (hdf5_streambase::hdf5_streambase): Likewise. - * ls-hdf5.cc (read_hdf5_data): Likewise. - * ls-utils.cc (get_save_type): Likewise. - * parse.y (Fassignin): Likewise. - * utils.cc (empty_arg): Likewise. - * ov-usr-fcn.h (octave_user_function::subsref): Likewise. - * ov-base-mat.h (octave_base_matrix::subsref): Likewise. - * ov-mapper.h (octave_mapper::subsref): Likewise. - * ov-builtin.h (octave_builtin::subsref): Likewise. - * ov-complex.cc (octave_complex::complex_array_value): Likewise. - * ov-cell.h (octave_cell::subsref): Likewise. - * ov-base-scalar.h (octave_base_scalar::subsref): Likewise. - * ov-struct.h (octave_struct::subsref): Likewise. - * ov-range.h (octave_range::subsref): Likewise. - * ov-list.h (octave_list::subsref): Likewise. - * ov-base.cc (octave_base_value::print_info): Likewise. - * pt-check.cc (tree_checker::visit_subplot_axes): Likewise. - * pr-output.cc (octave_print_internal (std::ostream&, double, bool), - octave_print_internal (std::ostream&, const Complex&, bool), - octave_print_internal (std::ostream&, const ArrayN&, - bool, int): Likewise. - * oct-stream.cc (octave_scan<> (std::istream&, const - scanf_format_elt&, char*): Likewise - * TEMPLATE-INST/Array-tc.cc (resize_fill_value): - Likewise. - * pt-bp.cc (tree_breakpoint::visit_octave_user_function, - tree_breakpoint::visit_octave_user_function_header, - tree_breakpoint::visit_octave_user_function_trailer, - tree_breakpoint::visit_plot_limits, - tree_breakpoint::visit_plot_range, - tree_breakpoint::visit_subplot, - tree_breakpoint::visit_subplot_axes, - tree_breakpoint::visit_subplot_list, - tree_breakpoint::visit_subplot_style, - tree_breakpoint::visit_subplot_using): Likewise. - * ov.cc (octave_value::column_vector_value, - (octave_value::complex_column_vector_value, - (octave_value::row_vector_value, - octave_value::complex_row_vector_value, - octave_value::do_non_const_unary_op): Likewise. - - * load-save.cc: Only include ls-hdf5.h if HAVE_HDF5 is defined. - From Melqart . - - * pr-output.h (octave_fcn_handle::print_as_scalar): Delete. - - * pr-output.cc (octave_print_internal): New version for - ArrayN objects. - * pr-output.h: Provide decl. - * ov-fcn-handle.cc (octave_fcn_handle::print_raw): Use it. - - * OPERATORS/op-fcn-handle.cc: New file. - * Makefile.in (OP_XSRC): Add it to the list. - - * ov-fcn-handle.h, ov-fcn-handle.cc (octave_fcn_handle): - Now an array of function handle objects. - - * ov.h, ov.cc (octave_value::octave_value (const fcn_handle_array&), - (octave_value::octave_value (octave_function *f, const std::string&)): - New constructors. - (octave_value::octave_value (const octave_fcn_handle&)): Delete. - - * ov-base-mat.cc (octave_base_matrix::print_as_scalar): - Check dims instead of rows and columns. - - * ov.h (octave_value::is_function_handle): New function. - * ov-base.h (octave_base_value::is_function_handle): New function. - - 2003-11-23 John W. Eaton - - * ov-bool-mat.h (octave_bool_matrix::array_value): Construct return - value directly from matrix data member, not matrix.matrix_value (). - - * ov-re-mat.h (octave_matrix::index_vector): Construct idx_vector - from NDArray, not Matrix. - - * ov-bool-mat.h (octave_bool_matrix::index_vector): Construct - idx_vector from boolNDArray, not boolMatrix. - - * ov.cc (install_types): Also register dld function type. - - * OPERATORS/op-streamoff.cc: Install increment and decrement operators. - * ov-streamoff.h (octave_streamoff::increment, - octave_streamoff::decrement): New functions. - - * ov-streamoff.h, ov-streamoff.cc: Move streamoff_array class to - liboctave/so-array.h and liboctave/so-array.cc. - - * oct-stream.cc (octave_stream::seek): Extract std::streamoff from - tc_offset instead of int. - - * ov-re-mat.cc (octave_matrix::double_value): Use numel, not length. - - * ov-re-mat.cc (octave_matrix::streamoff_array_value): New function. - * ov-re-mat.h: Provide decl. - - * ov-scalar.cc (octave_scalar::streamoff_value): New function. - * ov-scalar.h: Provide decl. - - * ov.cc (octave_value::streamoff_array_value, - octave_value::streamoff_value): New functions. - * ov.h: Provide decls. - - * ov-base.cc (octave_base_value::streamoff_array_value, - octave_base_value::streamoff_value): New functions. - * ov-base.h: Provide decls. - - * ov-usr-fcn.cc (install_automatic_vars): Don't do anything unless - sym_tab is defined. - - * ov-streamoff.h, ov-streamoff.cc, OPERATORS/op-streamoff.cc: - New files. - - * ov-cell.h (octave_value_cell::is_matrix_type): New function. - - * ov-mapper.h (octave_mapper::octave_mapper): No copying. - * ov-fcn.h (octave_function::octave_function): Likewise. - * ov-usr-fcn.h (octave_function::octave_function): Likewise. - * ov-builtin.h (octave_builtin::octave_builtin): Likewise. - * ov-dld-fcn.h (octave_dld_function::octave_dld_function): Likewise. - - 2003-11-22 John W. Eaton - - * ov-mapper.h (octave_mapper::octave_mapper): Make public. - Provide copy constructor and assignment operator. - * ov-fcn.h (octave_function::octave_function): Likewise. - * ov-builtin.h (octave_builtin::octave_builtin): Likewise. - * ov-dld-fcn.h (octave_dld_function::octave_dld_function): Likewise. - - * ov-typeinfo.cc (octave_value_typeinfo::register_type, - octave_value_typeinfo::do_register_type): New arg, val. - Save it in vals array. - (octave_value_typeinfo::lookup_type, - octave_value_typeinfo::do_lookup_type): New functions. - * ov-typeinfo.h: Provide decl. - (octave_value_typeinfo::vals): New data member. - (octave_value_typeinfo::octave_value_typeinfo): Initialize it. - - * ov.h (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Pass - - * ov.h (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Define register_type - here. Also pass an empty object of the to-be-registered type to - register_type. - (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Declare register_type - here, but don't define it. - - 2003-11-21 John W. Eaton - - * ov-fcn-handle.h (octave_fcn_handle::octave_fcn_handle (void)): - New constructor. - - * ov-usr-fcn.h (octave_user_function::octave_user_function): - Delete decl for private constructor. - - * ov-str-mat.cc (octave_char_matrix_str::matrix_value): - Conversion to matrix is an error unless explicitly forced. - - * ov-str-mat.cc (octave_char_matrix_str::double_value): New function. - * ov-str-mat.h: Provide decl. - - * ov-file.cc (print_raw): Use parens around ?: conditional used on - RHS of << output operator. - - * c-file-ptr-stream.cc (c_file_ptr_buf::seekoff, - c_file_ptr_buf::seekpos): Can't use fseek here, so just fail (by - returning -1) until we have a better solution. - - * oct-stream.cc (octave_stream::tell): Return std::streamoff, not long. - * oct-iostrm.cc (octave_base_iostream::tell): Likewise. - * oct-stdstrm.cc (octave_stdiostream::tell): Likewise. - * oct-strstrm.cc (octave_base_strstream::tell): Likewise. - * oct-stream.h, oct-iostrm.h, oct-stdstrm.h, oct-strstrm.h: - Fix decls to match. - - 2003-11-20 John W. Eaton - - * ls-mat-ascii.cc (get_lines_and_columns): Delete second arg in - call to istream::seekg. - - * ov-mapper.cc (MAPPER_LOOP_2, any_element_less_than, - any_element_greater_than, octave_mapper::apply): - Handle N-d arrays. - - 2003-11-19 John W. Eaton - - * ls-mat5.cc (read_mat5_binary_element, save_mat5_binary_element): - Handle N-d arrays. - - * lex.l (next_token_is_index_op): New function. - (handle_close_bracket): Use it. - - * ls-hdf5.cc, ls-mat-ascii.cc, ls-mat4.cc, ls-mat5.cc, - ls-oct-ascii.cc, ls-oct-binary.cc, ls-utils.cc, ls-hdf5.h, - ls-mat-ascii.h, ls-mat4.h, ls-mat5.h, ls-oct-ascii.h, - ls-oct-binary.h, ls-utils.h: New files, extracted from load-save.cc. - * Makefile.in: Add them to the appropriate lists. - - 2003-11-18 John W. Eaton - - * pr-output.cc (octave_print_internal): Don't indent rows for - plus_format. Use pr_plus_format for Range type with plus_format. - (plus_format_chars): New static variable. - (set_format_style): Allow optional arg for plus format to set it. - (pr_plus_format): Use it. - - * ov-bool.h (octave_bool::array_value, - octave_bool::complex_array_value): New functions. - - * ov-base-mat.cc (octave_base_matrix::do_index_op): - Ensure correct number of indices for Array indexing code. - - 2003-11-17 John W. Eaton - - * DLD-FUNCTIONS/qz.cc (qz): Use x.data()+offset instead of &a(i,j). - First and third args for dlag2 are const. - - * DLD-FUNCTIONS/sort.cc (Fsort): Use const qualifier as appropriate. - - * DLD-FUNCTIONS/balance.cc (balance): Use data() instead of - fortran_vec where appropriate in call to dggbak. - - * DLD-FUNCTIONS/dasrt.cc (dasrt_user_j): Simplify inserting x and - xdot in arg vector. - (dasrt_user_f): Likewise. - (dasrt_user_cf): Likewise. - * DLD-FUNCTIONS/dassl.cc (dassl_user_function): Likewise. - (dassl_user_jacobian): Likewise. - * DLD-FUNCTIONS/lsode.cc (lsode_user_function): Likewise. - (lsode_user_jacobian): Likewise. - * DLD-FUNCTIONS/daspk.cc (daspk_user_function): Likewise. - (daspk_user_jacobian): Likewise. - - 2003-11-16 John W. Eaton - - * ov-range.h (octave_range::reshape): New function. - - 2003-11-15 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.51. - (OCTAVE_API_VERSION): Now api-v2. - - * version.h (OCTAVE_BUGS_STATEMENT): Also tell people to look at - http://www.octave.org/bugs.html. - - * oct-map.cc (Octave_map::assign): Use resize, not resize and fill. - * ov-typeinfo.cc (octave_value_typeinfo::do_register_type): Likewise. - - * Cell.cc (Cell::Cell): Pass dim_vector to resize instead of two ints. - - 2003-11-14 John W. Eaton - - * Makefile.in (stamp-liboctave-prereq): New target. - ($(DEF_FILES), $(MAKEDEPS)): Depend on it. - (distclean): Remove it. - - * parse.y (cancel_obj_idx): New rule. - (postfix_expr, prefix_expr): Use begin_obj_idx after every - postfix_expr on RHS. Use cancel_obj_idx as soon as possible for - cases where we are not working on an index expression. - - * lex.l (maybe_unput_comma, handle_close_bracket): - Don't insert comma if we are looking at an object index and the - closest nesting level is a brace. - - * parse.y (postfix_expr): Use begin_obj_idx between postfix_expr - and the indexing delimiter rather than after it. - - * lex.h (lexical_feedback::braceflag): New member variable. - * lex.l (lexical_feedback::init): Initialize braceflag. - (\{{S}*): Increment lexer_flags.braceflag, not - lexer_flags.bracketflag. - (handle_close_bracket): Handle lexer_flags.braceflag and - lexer_flags.bracketflag separately based on bracket_type. - Delete unnecesary yyinput/yyunput. - - * lex.l (next_token_is_postfix_unary_op): Also recognize ++ and --. - - * ov-typeinfo.cc (octave_value_typeinfo::register_type, - octave_value_typeinfo::do_register_type): - New arg, c_name for class name. - * ov-base.cc, ov-bool-mat.cc, ov-bool.cc, ov-builtin.cc, - ov-cell.cc, ov-ch-mat.cc, ov-colon.cc, ov-complex.cc, - ov-cs-list.cc, ov-cx-mat.cc, ov-dld-fcn.cc, ov-fcn-handle.cc, - ov-file.cc, ov-list.cc, ov-mapper.cc, ov-range.cc, ov-re-mat.cc, - ov-scalar.cc, ov-str-mat.cc, ov-struct.cc, ov-usr-fcn.cc, - ov-va-args.cc: Pass class name to DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA. - * ov.h (octave_value::class_name): New virtual function. - (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Define c_name, for class name. - Pass c_name to octave_value_typeinfo::register_type. - (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Declare static member - c_name for class name. Provide class_name member function. - - * ov-typeinfo.cc (Fclass): New function. - - 2003-11-13 John W. Eaton - - * utils.cc (Fisvarname): Pass correct name to make_argv. - - * ov-cell.cc (Fiscellstr): New function. - - * ov-file.h (octave_file::all, octave_file::any, - octave_file::dims, octave_file::is_real_type, - octave_file::ist_real_scalar): New functions. - - * lex.l (bracket_brace_paren_nesting_level::is_bracket_or_brace): - New function. - (handle_close_bracket): New arg, bracket_type. Change all uses. - First arg is now bool. - ({SNLCMT}*\}{S}*): New pattern. - (maybe_unput_comma): Handle brace nesting level the same as brackets. - (handle_close_brace): Likewise. - ({S}+): Likewise. - ({S}*{COMMENT}{SNLCMT}*): Likewise. - ({S}*{NL}{SNLCMT}*): Likewise. - ({NL}): Likewise. - ({CCHAR}): Likewise. - (")"): Likewise. - (\{{S}*): Handle the same as \[{S}*. - ("}"): Handle the same as \]. - - * Makefile.in (stamp-prereq): Add oct-gperf.h, parse.cc, and - lex.cc to the list. - - 2003-11-12 John W. Eaton - - * ov-cell.cc (print_as_scalar): New function. - * ov-cell.h: Provide decl. - - * ov-cell.cc (octave_cell::print_name_tag): Delete. - * ov-cell.h: Delete decl. - - * ov-base-mat.cc (octave_base_matrix::print_name_tag): Delete. - * ov-base-mat.h: Delete decl. - - * ov-base.cc (octave_base_value::print_name_tag): - Use print_as_scalar here. - * ov.h (octave_base_value::print_as_scalar): New virtual function. - * ov-base.h (octave_base_value::print_as_scalar): - New default implementation. - * ov-base-mat.h (octave_base_matrix::pirnt_as_scalar): - Don't declare as virtual here. - - * ov-struct.cc (octave_struct::print_raw): If only printing keys, - also print dimensions of fields and overall array. - - * sysdep.cc (Fnative_float_format): New function. - - * input.cc (generate_possible_completions): Also append all - possible filename completions here. - - 2003-11-11 John W. Eaton - - * oct-stream.cc: Explicitly instantiate octave_scan functions. - - * TEMPLATE-INST/Array-c.cc, TEMPLATE-INST/Array-os.cc, - TEMPLATE-INST/Array-sym.cc, ov-typeinfo.cc: - Use new INSTANTIATE_ARRAY macro. - - * data.cc (do_permute): New function. - (Fpermute, Fipermute): Use it. - - * ov-base.cc (octave_base_value::permute): New function. - * ov-base.h: Provide decl. - - * ov.h (octave_value::ipermute): New function. - - 2003-11-11 Petter Risholm - - * data.cc (Fpermute, Fipermute): New functions. - * ov.h (octave_value::permute): New function. - * ov-base-mat.h (octave_base_matrix::permute): New function. - - 2003-11-10 John W. Eaton - - * oct-obj.h (octave_value_list): Internal representation is now - std::vector instead of Array. - - * ov-list.h, ov-list.cc: Internal representation is now Cell, not - octave_value_list. - (Flist): Print one-time warning. - - * ov.cc (octave_value::octave_value (const octave_value_list&, bool)): - Cope with octave_cs_list not being derived from octave_list. - - * ov-cs-list.cc (octave_cs_list): Handle conversion of Cell array - to octave_value_list here. - - * ov-cs-list.h (class octave_cs_list): Derive from - octave_base_value, not octave_list. - - * ov-cs-list.h, ov-cs-list.cc: Remove commented-out code. - - * TEMPLATE-INST/Array-tc.cc (resize_fill_value): Use modern - specialization syntax. - - * ov-cell.cc (octave_cell::print_raw): Use dim_vector::str. - - * Cell.cc, Cell.h, debug.cc, file-io.cc, load-save.cc, - oct-fstrm.cc, oct-iostrm.cc, oct-iostrm.h, oct-map.cc, oct-map.h, - oct-prcstrm.cc, oct-stdstrm.h, oct-stream.cc, oct-strstrm.h, - octave.cc, ov-base.h, ov-cell.cc, ov.cc, ov.h, pt-cell.h, - pt-mat.cc, pt-mat.h, pt-plot.cc, pt-stmt.cc, variables.cc, - DLD-FUNCTIONS/rand.cc: Avoid -Wshadow warnings. - - 2003-11-01 John W. Eaton - - * ov.h (octave_base_value::is_bool_matrix): New virtual function. - * ov-base.h (octave_base_value::is_bool_matrix): New function. - - 2003-10-31 John W. Eaton - - * ov.cc (octave_value::length): If any dim is zero, return 0. - - * ov-cell.cc (octave_cell::subsref): When indexing with '{', quit - early if an error occurs in do_index_op. - - * ov.cc (octave_value::next_subsref): Don't do anything if - error_state is true. - - * cutils.c (octave_usleep) [HAVE_SELECT]: Introduce new local - scope for declaration of delay. - [HAVE_POLL]: Likewise, for delay and pfd. - - * ov-base.cc (octave_base_value::bool_array_value): - Function takes no args. - * ov-base.h: Likewise, for decl. - * ov-bool-mat.h (boolNDArray::bool_array_value): Likewise. - - * ov-fcn.cc, ov-fcn.h (octave_value::clone, - octave_value::empty_clone): Return type is octave_value*, not - octave_function*. - - 2003-10-29 John W. Eaton - - * ov-str-mat.h (octave_char_matrix_str::reshape): New function. - Force result to be a string. - - 2003-10-29 Petter Risholm - - * data.cc (DATA_REDUCTION): Work on NDArray and ComplexNDArray - objects instead of Matrix and ComplexMatrix objects. - - 2003-10-29 John W. Eaton - - * ov-bool-mat.h (octave_bool_matrix::NDArray, - octave_bool_matrix::ComplexNDArray): New functions. - - * ov-complex.cc (octave_complex::array_value, - octave_complex::complex_array_value): New functions. - * ov-complex.h: Provide decls. - - * ov-scalar.cc (octave_scalar::array_value, - octave_scalar::complex_array_value): New functions. - * ov-scalar.h: Provide decls. - - * oct-map.cc (Octave_map::reshape): New function. - * oct-map.h: Provide decl. - - * ov-struct.h (octave_struct::reshape): New function. - - * Cell.h (Cell:Cell (const Array&): New constructor. - - * data.cc (Freshape): New function. - * ov.h (octave_value::reshape): New function. - * ov-base-mat.h (octave_base_matrix::reshape): New function. - * ov-base.cc (octave_base_value::reshape): New function. - * ov-base.h: Provide decl. - - * DLD-FUNCTIONS/balance.cc: lscale and rscale args for dggbak are - const. Use data() instead of fortran_vec where possible. - * DLD-FUNCTIONS/qz.cc: Likewise. - - * data.cc (fill_matrix): Remove trailing singletons before - allocating the result matrix. - - * input.cc (get_user_input): Don't forget about the diary here. - - 2003-10-28 John W. Eaton - - * ov-list.h (octave_list::nelem): Delete. - (octave_list::dims): New function. - * ov-range.h (octave_list::dims): New function. - * ov-struct.h (octave_struct::dims): New function. - * ov-base-scalar.h (octave_base_scalar::dims): New function. - - * ov.h (octave_value::rows): No longer virtual. - * ov.cc (octave_value::rows): Provide common implementation. - * ov-base.h (octave_base_value::rows): Delete. - * ov-base-mat.h (octave_base_matrix::rows): Delete. - * ov-base-scalar.h (octave_base_scalar::rows): Delete. - * ov-struct.h (octave_struct::rows): Delete. - * ov-range.h (octave_range::rows): Delete. - - * ov.h (octave_value::columns): No longer virtual. - * ov.cc (octave_value::columns): Provide common implementation. - * ov-base.h (octave_base_value::columns): Delete. - * ov-base-mat.h (octave_base_matrix::columns): Delete. - * ov-base-scalar.h (octave_base_scalar::columns): Delete. - * ov-struct.h (octave_struct::columns): Delete. - * ov-range.h (octave_range::columns): Delete. - - * ov.h (octave_value::numel): No longer virtual. - * ov.cc (octave_value::numel): Provide common implementation. - * ov-base.h (octave_base_value::numel): Delete. - * ov-base-mat.h (octave_base_matrix::numel): Delete. - * ov-base-scalar.h (octave_base_scalar::numel): Delete. - * ov-struct.h (octave_struct::numel): Delete. - - * ov-cs-list.h (octave_cs_list::dims): New function. - (octave_cs_list::length): Delete. - - * ov.h (octave_value::ndims): No longer virtual. - * ov.cc (octave_value::ndims): Provide common implementation. - * ov-base.h (octave_base_value::ndims): Delete. - * ov-base-mat.h (octave_base_matrix::ndims): Delete. - * ov-base-scalar.h (octave_base_scalar::ndims): Delete. - * ov-struct.h (octave_struct::ndims): Delete. - - * ov-cell.cc (Fcell): Make it work for N-d cells. - - * Cell.h (Cell::Cell (const dim_vector&, const octave_value&)): - New constructor. - - * ov.h (octave_value::length): No longer virtual. - * ov.cc (octave_value::length): Provide common implementation. - * ov-base.h (octave_base_value::length): Delete. - * ov-base-mat.h (octave_base_matrix::length): Delete. - * ov-base-scalar.h (octave_base_scalar::length): Delete. - * ov-struct.h (octave_struct::length): Delete. - * ov-cs-list.h (octave_cs_list::length): Delete. - * ov-list.h (octave_list::length): Delete. - * ov-range.h (octave_range::length): Delete. - - * load-save.cc (save_mat5_binary_element): Use numel instead of - array_length. - * ov-struct.cc (octave_struct::print_raw): Likewise. - * pt-loop.cc (tree_complex_for_command::eval): Likewise. - * oct-map.cc (Octave_map::numel): New function. - * oct-map.h: Provide decl. - - * oct-map.cc, oct-map.h (Octave_map::array_length): Delete. - (common_size): New static function. - (Octave_map::assign): Make resizing work for N-d cell objects. - - * oct-map.cc (Octave_map::dims): New function. - * oct-map.h: Provide decl. - - * pr-output.cc (print_empty_nd_array): New static function. - (PRINT_ND_ARRAY): Use it. - - * ov.h (octave_value::is_empty): No longer virtual. Return value - based on numel. - * data.cc (Fisempty): Use it. - (Fnumel): New function. - - * ov.h (octave_value::numel): New function. - * ov-base.h (octave_base_value::numel): Likewise. - * ov-base-mat.h (octave_base_matrix::numel): Likewise. - * ov-base-scalar.h (octave_base_scalar::numel): Likewise. - - 2003-10-27 Petter Risholm - - * ov-base-mat.cc (octave_base_matrix::is_true): - Only work for 2-dimensional objects. - * data.cc (ANY_ALL (FCN)): Allow dim to take values large than 2. - - * ov.h (octave_value::ndims): New function. - * ov-base.h (octave_base_value::ndims): Likewise. - * ov-base-scalar.h (octave_base_scalar::ndims): Likewise. - * ov-base-mat.cc (octave_base_matrix::ndims): New function. - (octave_base_matrix::length): Move here from ov-base-mat.h. - Make it work for N-d arrays. - * ov-base-mat.h (octave_base_matrix::ndims): Provide decl. - * data.cc (Fndims): New built-in function. - - 2003-10-27 John W. Eaton - - * DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/qz.cc: - Use new F77 arg macros in declarations of external Fortran - subroutines and for calling them. - - * ops.h (DEFNDUNOP_OP, DEFNDUNOP_FN): New arg e, to name value - extractor function prefix. - * OPERATORS/op-bm-bm.cc, OPERATORS/op-cm-cm.cc, OPERATORS/op-m-m.cc: - Change all uses. - - * ov-cx-mat.h (octave_complex_matrix::complex_array_value, - octave_char_matrix::char_array_value, - octave_bool_matrix::bool_array_value): Rename from array_value. - * OPERATORS/op-bm-bm.cc, OPERATORS/op-cm-cm.cc, - OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-m.cc, - OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc, - OPERATORS/op-m-cm.cc, OPERATORS/op-m-m.cc, - OPERATORS/op-s-cm.cc: Use complex_array, char_array, and - bool_array as appropriate (instead of just array). - - * ov-base.cc (octave_base_value::array_value, - octave_base_value::bool_array_value, - octave_base_value::complex_array_value, - octave_base_value::char_array_value): Provide default implementations. - * ov-base.h: Provide decls. - - * ov.h (octave_value::array_value, octave_value::bool_array_value, - octave_value::complex_array_value, octave_value::char_array_value): - New virtual functions. - - 2003-10-25 John W. Eaton - - * pt-idx.cc (make_subs_cell): Pass dim_vector object to resize. - - * ov-typeinfo.cc (octave_value_typeinfo::do_register_type): - Use resize_and_fill for types. - - * oct-obj.h (octave_value_list::maybe_resize): Use resize_and_fill. - (octave_value_list::resize (int, const octave_value&)): Likewise. - - * oct-map.cc (Octave_map::assign): Use resize_and_fill as needed. - - * Cell.h (Cell (void)): Default size is now 0x0. - - 2003-10-23 John W. Eaton - - * OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, - OPERATORS/op-cs-m.cc, OPERATORS/op-m-cm.cc, OPERATORS/op-s-cm.cc: - Include headers for N-d operators. - - 2003-10-17 John W. Eaton - - * ops.h (DEFNDUNOP_OP, DEFNDUNOP_FN, DEFNDBINOP_OP, - DEFNDBINOP_FN): New N-dimensional macros. - * OPERATORS/op-bm-bm.cc, OPERATORS/op-cm-cm.cc, - OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-m.cc, - OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc, - OPERATORS/op-cs-m.cc, OPERATORS/op-m-cm.cc, - OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc, - OPERATORS/op-m-s.cc, OPERATORS/op-s-cm.cc, - OPERATORS/op-s-m.cc: Use N-dimensional macros as appropriate. - - * DLD-FUNCTIONS/rand.cc (do_rand, Frand, Frandn): - Handle N-dimensions. - - * xpow.cc (elem_xpow (double, const NDArray&), - elem_xpow (double, const ComplexNDArray&), - elem_xpow (const NDArray&, double), - elem_xpow (const NDArray&, const NDArray&), - elem_xpow (const NDArray&, const Complex&), - elem_xpow (const NDArray&, const ComplexNDArray&), - elem_xpow (const Complex&, const NDArray&), - elem_xpow (const Complex&, const ComplexNDArray&), - elem_xpow (const ComplexNDArray&, double), - elem_xpow (const ComplexNDArray&, const NDArray&), - elem_xpow (const ComplexNDArray&, const Complex&), - elem_xpow (const ComplexNDArray&, const ComplexNDArray&): - New functions. - * xpow.h: Provide decls. - - * xdiv.cc (x_el_div (double, const NDArray&), - x_el_div (double, const ComplexNDArray&), - x_el_div (const Complex, const NDArray&), - x_el_div (const Complex, const ComplexNDArray&)): New functions. - * xdiv.h: Provide decls. - - * ov-bool-mat.h (boolNDArray::array_value): New function. - * ov-ch-mat.h (charNDArray::array_value): New function. - * ov-cx-mat.h (ComplexNDArray::array_value): New function. - * ov-re-mat.h (NDArray::array_value): New function. - (NDArray::double_nd_array_value): Delete. - - 2003-10-16 John W. Eaton - - * parse.y (text_getc): New static function. - (gobble_leading_white_space): Use it to simplify EOL processing. - - 2003-10-15 John W. Eaton - - * file-io.cc (fopen_mode_to_ios_mode): Ignore "t" in mode string. - - * strfns.cc (Fischar): rename from Fisstr. - - 2003-10-09 John W. Eaton - - * pr-output.cc (PRINT_ND_ARRAY): New macro. - (octave_print_internal): Use it. - - 2003-10-08 John W. Eaton - - * ov.cc (octave_value::octave_value (const ArrayN&, - bool)): New constructor. - * ov.h: Provide decl. - - * ov.h (octave_value::squeeze): New virtual function. - * ov-base.cc (squeeze): Provide default implementation. - * ov-base-mat.h (octave_base_matrix::squeeze): New function. - * data.cc (Fsqueeze): New function. - - 2003-10-03 John W. Eaton - - * load-save.cc (make_valid_identifier): Return new string. - Arg is now string, not char *. - (ident_is_all_digits): New function. - (hdf5_read_next_data): Use it. - - 2003-10-02 John W. Eaton - - * input.cc (input_event_hook): Clear the event hook if hook_fcn - does not name a valid function. - - 2003-10-01 John W. Eaton - - * mappers.cc (xabs): New function. - (install_mapper_functions): Use it instead of abs for complex args - in Octave's abs mapper function. - - 2003-09-27 Joseph P. Skudlarek - - * DLD-FUNCTIONS/minmax.cc (min, max): Use @deftypefn machinery, - doc missing semantics, and add more examples to texinfo strings. - - 2003-09-26 John W. Eaton - - * load-save.cc (read_mat5_binary_element): Return early if the - miMATRIX element has length zero. - - 2003-09-24 John W. Eaton - - * ov-cell.cc (octave_cell::subsasgn): Also attempt empty - conversion after extracting single element from cell array to - allow things like x{i}.elt = rhs to work. - - 2003-09-19 John W. Eaton - - * ov.h (octave_value::dim_vector): New function. - - * ov.h, ov.cc (octave_value::octave_value (const Cell&)): - New arg, is_cs_list. - (octave_value::octave_value (const NDArray&)): - Create octave_matrix object, not octave_double_nd_array object. - (octave_value::octave_value (const ComplexNDArray&), - octave_value::octave_value (const boolNDArray&), - octave_value (const charNDArray&, bool)): New constructors. - - * ov.h, ov.cc (octave_value::nil_rep): New function. - (octave_value::octave_value (void)): Use it to initialize empty - octave_value objects. - - * ov-list.h, ov-list.cc (octave_list::octave_list (const Cell&)): - New constructor. - * ov-cs-list.h (octave_cs_list::octave_cs_list (const Cell&)): - Likewise. - - * data.cc (Fsize): Handle N-d objects. - - * pr-output.cc (octave_print_internal): New versions for NDArray, - ComplexNDArray, boolNDArray, and charNDArray objects. - * pr-output.h: Provide decls. - - * ov-re-nd-array.h, ov-re-nd-array.cc: Delete. - - * Cell.h, Cell.cc, ov-base-mat.h, ov-base-mat.cc, ov-bool-mat.h, - ov-bool-mat.cc, ov-ch-mat.h, ov-ch-mat.cc, ov-cx-mat.h, - ov-cx-mat.cc, ov-re-mat.h, ov-re-mat.cc, ov-str-mat.h, - ov-str-mat.cc: Now N-dimensional. - - * oct-map.h, oct-map.cc: Now based on Cell ojects instead of - octave_value_list objects. Change all uses. - - * TEMPLATE-INST/Array-tc.cc: Also instantiate ArrayN objects. - Don't instantiate assign funcitons for Array2 objects. - - 2003-09-11 John W. Eaton - - * pt-plot.cc (symbols_of_pt_plot): Default for automatic replot is - now true. - - * pr-output.cc (Fformat): Doc fix. - (current_output_max_field_width, current_output_precision): - New functions. - (float_format::float_format (int, int, int)): Use them to provide - default values for field width and precision. - (print_g): New static variable. - (set_real_format, set_real_matrix_format, set_complex_format) - (set_complex_matrix_format, set_range_format): Handle print_g. - (pr_float, pr_complex): Don't scale if using print_g. - (set_format_style): Accept new "g" and "G" modifiers for short and - long formats and set print_g. - Set default precision and width for short to 5, 10. - Set default precision and width for long to 15, 20. - - 2003-09-10 John W. Eaton - - * OPERATORS/op-m-cs.cc (complex_matrix_conv): Delete function. - (install_m_cs_ops): Don't install complex_matrix_conv here. - - * OPERATORS/op-s-cs.cc (complex_matrix_conv): Delete function. - (install_s_cs_ops): Don't install complex_matrix_conv here. - - * OPERATORS/op-s-s.cc (matrix_conv): Delete function. - (install_s_s_ops): Don't install matrix_conv here. - - * OPERATORS/op-cs-s.cc (complex_matrix_conv): Delete function. - (install_cs_s_ops): Don't install complex_matrix_conv here. - - * OPERATORS/op-cs-m.cc (complex_matrix_conv): Delete function. - (install_cs_m_ops): Don't install complex_matrix_conv here. - - * OPERATORS/op-cs-cs.cc (complex_matrix_conv): Delete function. - (install_cs_cs_ops): Don't install complex_matrix_conv here. - - * ov-typeinfo.cc (do_register_unary_op, - do_register_non_const_unary_op, do_register_binary_op, - do_register_assign_op, do_register_assignany_op, - do_register_pref_assign_conv, do_register_widening_op): - Print warning if installing a duplicate function. - - 2003-09-10 Petter Risholm - - * data.cc, ov-base.cc, ov-base.h, ov.h, ov.cc, ov-re-mat.h, - ov-scalar.h, ov-re-nd-array.h, ov-re-nd-array.cc: Use NDArray, not - ArrayN. - - 2003-09-09 John W. Eaton - - * ov.h (octave_value::double_nd_array_value): New function. - (octave_value::is_real_nd_array): New function. - - * ov-base.cc (octave_base_value::double_nd_array_value): New function. - * ov-base.h: Provide decl. - (octave_base_value::is_real_nd_array): New function. - - 2003-09-09 Petter Risholm - - * ov-re-mat.h (octave_matrix::double_nd_array_value): New function. - * ov-scalar.h (octave_scalar::double_nd_array_value): New function. - - * ov-re-nd-array.cc (octave_double_nd_array::assign): New function. - (octave_double_nd_array::try_narrowing_conversion): Likewise. - (octave_double_nd_array::valid_as_scalar_index): Likewise. - (octave_double_nd_array::double_value): Likewise. - (octave_double_nd_array::matrix_value): Likewise. - (octave_double_nd_array::complex_value): Likewise. - (octave_double_nd_array::convert_slice_to_matrix): Likewise. - * ov-re-nd-array.h: Provide decls. - (octave_double_nd_array::is_real_nd_array): New function. - (octave_double_nd_array::double_nd_array_value): New function. - (octave_double_nd_array::double_nd_array_value): New function. - - * OPERATORS/op-m-nd.cc, OPERATORS/op-nd-m.cc, - OPERATORS/op-nd-nd.cc, OPERATORS/op-nd-s.cc, OPERATORS/op-s-nd.cc: - New files. - * Makefile.in (OP_XSRC): Add them to the list. - - 2003-09-09 David Bateman - - * OPERATORS/op-cs-s.cc (DEFBINOP): First arg is complex, second is - double. - - 2003-09-05 John W. Eaton - - * pt-cell.cc (tree_cell::rvalue): Don't assume that the number of - elements in a tree_argument_list is the same as the number of - objects it contains (cs-list objects expand to more than one). - - * pt-mat.cc (tm_row_const::tm_row_const_rep::do_init_element): - New function, extracted from tm_row_const::tm_row_const_rep::init. - (tm_row_const::tm_row_const_rep::init): Use it. - Also handle cs-list objects. - - * ov-cs-list.cc (octave_cs_list::print_raw): New function. - * ov-cs-list.h (octave_cs_list::print_raw): Provide decl. - * ov-list.h (octave_list::lst): Now protected instead of private. - - 2003-09-04 John W. Eaton - - * pt-plot.cc (subplot_style::columns_ok): Allow boxes style to - have 2 columns as well. - - 2003-08-28 John W. Eaton - - * dirfns.cc (Fls): Check EAGAIN to avoid losing output. - * toplev.cc (run_command_and_return_output): Likewise. - - 2003-08-25 John W. Eaton - - * OPERATORS/op-str-s.cc, OPERATORS/op-str-m.cc: New files. - * Makefile.in (OP_XSRC): Add them to the list. - - 2003-08-22 John W. Eaton - - * defaults.cc (maybe_add_or_del_packages): Use source_file instead - of parse_and_execute. - * parse.y (source_file): New function. - (Fsource): Use it. - * parse.h (source_file): Provide decl. - - 2003-08-21 John W. Eaton - - * utils.cc (octave_vsnprintf): Copy va_list to avoid using more - than once. - - 2003-08-07 John W. Eaton - - * utils.cc (octave_vsnprintf): Call octave_raw_vsnprintf instead - of calling vsnprintf directly. - (octave_vsnprintf) [HAVE_C99_VSNPRINTF]: Declare nchars to be size_t. - - 2003-08-06 Heine Kolltveit - - * utils.cc (check_dimensions(Array&, char), - get_dimensions(octave_value&, char, Array&): New functions. - * utils.h (check_dimensions (Array&, char), - get_dimensions (octave_value&, char, Array&)): Provide decl. - - * data.cc (fill_matrix): Also create N-d arrays. - (Fones, Fzeros): Handle more than 2 args to create N-d arrays. - - 2003-07-30 John W. Eaton - - * data.cc (make_diag): Use std::abs instead of our own ABS macro. - - * utils.cc (identity_matrix): Move here from data.cc. - (identity_matrix): Use std::min instead of our own MIN macro. - - * utils.h (identity_matrix): Provide decl. - - * DLD-FUNCTIONS/svd.cc (Fsvd): Improve handling of empty matrix arg. - - * ov.cc (octave_value(const ArrayN&)): New constructor. - * ov.h (octave_value(const ArrayN&)): Provide decl. - - 2003-07-30 Heine Kolltveit - - * ov.cc (octave_value(const ArrayN&)): New constructor. - * ov.h (octave_value(const ArrayN&)): Provide decl. - - 2003-07-30 John W. Eaton - - * ov.h (Vpropagate_empty_matrices): Delete decl. - * ov.cc: (Vpropagate_empty_matrices): Delete. - (propagate_empty_matrices): Delete. - (symbols_of_ov): Delete DEFVAR for propagate_empty_matrices. - - * utils.cc (empty_arg): Behave as though propagate_empty_matrices - is always 1. - * ov-range.cc (octave_range::is_true): Likewise. - * ov-base-mat.cc (octave_base_matrix::is_true): Likewise. - - * octave.cc (maximum_braindamage): Also set - warn_matlab_incompatible to TRUE. - - * lex.l (Vwhitespace_in_literal_matrix): Delete. - (whitespace_in_literal_matrix): Delete. - (symbols_of_lex): Delete DEFVAR for whitespace_in_literal_matrix. - ({S}*\,{S}*, {S}+, - ({S}*{COMMENT}{SNLCMT}*, - {S}*{NL}{SNLCMT}*, maybe_unput_comma): Behave as though - old Vwhitespace_in_literal_matrix varaible is always 1. - - * octave.cc (maximum_braindamage): Don't set - whitespace_in_literal_matrix. - - 2003-07-29 John W. Eaton - - * Makefile.in (install-lib): Use $(INSTALL), not - $(INSTALL_PROGRAM) for $(SHLLIB) files. - - 2003-07-29 Paul Kienzle - - * Makefile.in: Don't need special system.c for Cygwin. - * oct-procbuf.cc: Use popen rather than fork/exec for Windows. - - 2003-07-28 Paul Kienzle - - * sysdep.cc (CYGWIN_init): Convert TMPDIR to system agnostic path. - - 2003-07-25 Paul Kienzle - - * help.cc (try_info, display_help_text): - Protect spaces in filenames with quotes. - * oct-hist.cc (do_edit_history): Likewise. - * pt-plot.cc (open_plot_stream): Likewise. - - 2003-07-15 John W. Eaton - - * oct-stream.cc (get_size, octave_base_stream::error, - octave_base_stream::do_gets, octave_base_stream::getl, - octave_base_stream::gets, octave_base_stream::do_scanf, - octave_base_stream::scanf, octave_base_stream::do_oscanf, - octave_base_stream::oscanf, do_printf_conv, - octave_base_stream::do_printf, octave_base_stream::printf, - octave_base_stream::puts, octave_base_stream::invalid_operation, - octave_stream::getl, octave_stream::gets, octave_stream::scanf, - octave_stream::oscanf, octave_stream::printf, octave_stream::puts, - octave_stream::invalid_stream_error): Handle name of calling - function for error messages as a std::string object. Change all - callers. - - * file-io.cc (Fprintf, Fputs): New functions, so we can get - function prefixes on error messages right. - (Ffgetl, Ffgets, Ffprintf, Fsprintf, Fputs, Ffscanf, Fsscanf): - Pass name of calling function to octave_stream method. - - * oct-stream.h (octave_base_stream::do_char_scanf, - octave_base_stream::do_real_scanf): Delete unused decls. - - * load-save.cc (read_mat5_binary_element): Correctly read struct - arrays. - - * pt-misc.cc (tree_parameter_list::initialize_undefined_elements): - New args, warnfor and nargout. Change all callers. - (symbols_of_pt_misc): New function. - (warn_undefined_return_values): New function. - - * octave.cc (maximum_braindamage): Don't set - define_all_return_values. - - * ov-usr-fcn.cc (ov_user_function::do_multi_index_op): Always - intiialize undefined elements in ret_list to []. - Never return last computed value. - (Vreturn_last_computed_value, Vdefine_all_return_values): Delete. - (return_last_computed_value, define_all_return_values): Delete. - (symbols_of_ov_usr_fcn): Delete DEFVARs for - return_last_computed_value, define_all_return_values, and - default_return_value. - - 2003-07-14 John W. Eaton - - * pt-misc.cc (tree_parameter_list::convert_to_const_vector): - Don't skip undefined elements. - - 2003-07-13 John W. Eaton - - * octave.cc (maximum_braindamage): Don't set - default_global_variable_value or initialize_global_variables. - - * pt-decl.cc (Vinitialize_global_variables): Delete. - (initialize_global_variables): Delete. - (symbols_of_pt_decl): Delete. - (tree_global_command::do_init): Default initial value is now - always []. - - 2003-07-11 John W. Eaton - - * octave.cc (maximum_braindamage): Don't set default_eval_print_flag. - - * parse.y (Vdefault_eval_print_flag): Delete: - (default_eval_print_flag): Delete. - (symbols_of_parse): Delete DEFVAR for default_eval_print_flag. - (Feval, Fevalin): Return empty octave_value_list and turn printing - on in eval_string if nargout is zero. - - * ov-list.cc (octave_list::assign): Check - Vwarn_resize_on_range_error, not Vresize_on_range_error. - - * ov.cc (Vwarn_resize_on_range_error): New variable. - (warn_resize_on_range_error): New function. - (symbols_of_ov): Add DEFVAR for warn_resize_on_range_error. - - * ov.cc (Vresize_on_range_error): Delete. - (resize_on_range_error): Delete. - (symbols_of_ov): Delete DEFVAR for resize_on_range_error. - - * pt-mat.cc (Vwarn_empty_list_elements): New variable. - (warn_empty_list_elements): New function. - (symbols_of_pt_mat): Add DEFVAR for warn_empty_list_elements. - (tm_row_const::tm_row_const_rep::init, tm_const::init): - Check Vwarn_empty_list_elements, not Vempty_list_elements_ok. - - * pt-mat.cc (Vempty_list_elements_ok): Delete. - (empty_list_elements_ok): Delete. - (symbols_of_pt_mat): Delete DEFVAR for empty_list_elements_ok. - - 2003-07-11 Russell Standish - - * TEMPLATE-INST/Array-tc.cc (resize_fill_value): Provide - specialization. - - 2003-07-10 John W. Eaton - - * strfns.cc (Fchar): Force string conversions without warnings. - - * ov.h (octave_value::convert_to_str, octave_value::all_strings, - octave_value::string_value, octave_value:convert_to_str_internal): - New arg, force. Fix all derived classes to match. - - * strfns.cc (Fchar): Temporarily reset Vwarn_num_to_str to avoid - warnings. - - * ov.cc (convert_to_str): New arg, force. - - * octave.cc (maximum_braindamage): Don't set treat_neg_dim_as_zero. - - * utils.cc (Vwarn_neg_dim_as_zero): New variable. - (warn_neg_dim_as_zero): New function. - (symbols_of_utils): Add DEFVAR for warn_neg_dim_as_zero. - (check_dimensions): Check Vwarn_neg_dim_as_zero, not - Vtreat_neg_dim_as_zero. - - * utils.cc (Vtreat_neg_dim_as_zero): Delete. - (treat_neg_dim_as_zero): Delete. - (symbols_of_utils): Delete DEFVAR for treat_neg_dim_as_zero. - - 2003-07-09 John W. Eaton - - * octave.cc (maximum_braindamage): Don't set prefer_column_vectors. - - * ov.cc (Vprefer_column_vectors): Delete. - (prefer_column_vectors): Delete. - (symbols_of_ov): Delete DEFVAR for prefer_column_vectors. - - * octave.cc (maximum_braindamage): Don't set do_fortran_indexing. - - * ov-re-mat.cc (octave_matrix::double_value, - octave_matrix::complex_value): Use Vwarn_fortran_indexing, not - Vdo_fortran_indexing. - * ov-range.cc (octave_range::double_value, - octave_range::complex_value): Likewise. - * ov-cx-mat.cc (octave_complex_matrix::double_value, - octave_complex_matrix::complex_value): Likewise. - * ov-ch-mat.cc (octave_char_matrix::double_value, - octave_char_matrix::complex_value): Likewise. - * ov-bool-mat.cc (octave_bool_matrix::double_value, - octave_bool_matrix::complex_value): Likewise. - - * ov.cc (Vwarn_fortran_indexing): New variable. - (warn_fortran_indexing): New function. - (symbols_of_ov): Add DEFVAR for warn_fortran_indexing. - (octave_value::vector_value, octave_value::int_vector_value, - (octave_value::complex_vector_value): Check - Vwarn_fortran_indexing, not Vdo_fortran_indexing. - - * ov.h (Vwarn_fortran_indexing): Provide decl. - - * ov.cc (Vdo_fortran_indexing): Delete unused variable. - (do_fortran_indexing): Delete unused function. - (symbols_of_ov): Delete DEFVAR for do_fortran_indexing. - * ov.h (Vdo_fortran_indexing): Delete decl. - - * ov.cc (octave_value::convert_to_str): Call convert_to_str_internal. - (octave_value::convert_to_str_internal): New virtual function. - Rename all derived class convert_to_str functions to match. - - * variables.cc (generate_struct_completions): Set - discard_warning_messages, not Vwarning_option. Also protect - warning_state. - - * parse.y (fold): Temporarily discard warning messages. - Also protect warning_state. - - * error.cc (discard_warning_messages): New variable. - (vwarning): Use it. - (warning): Don't print backtrace if discard_warning_messages is true. - - * ov.cc (octave_value::convert_to_str): - Handle type conversion warning here. - - * gripes.cc (gripe_implicit_conversion): - New function accepting std::string args. - - * octave.cc (maximum_braindamage): Don't set - implicit_num_to_str_ok or implicit_str_to_num_ok. - - * ov-base.cc (octave_base_value::char_matrix_value): - Vimplicit_num_to_str_ok no longer exists. - (octave_base_value::all_strings): Likewise. - (octave_base_value::string_value): Likewise. - - * ov-str-mat.cc (octave_char_matrix_str::matrix_value): Warn based - on Vwarn_str_to_num instead of Vimplicit_str_to_num_ok. - - * ov.cc (Vwarn_num_to_str, Vwarn_str_to_num): New variables. - (warn_num_to_str, warn_str_to_num): New functions. - (symbols_of_ov): Add DEFVARs for warn_num_to_str and Vwarn_str_to_num. - * ov.h (Vwarn_num_to_str, Vwarn_str_to_num): Provide decl. - - * ov.cc (Vimplicit_num_to_str_ok, Vimplicit_str_to_num_ok): - Delete unused variables. - (implicit_num_to_str_ok, implicit_str_to_num_ok): - Delete unused functions. - (symbols_of_ov): Delete DEFVARs for implicit_num_to_str_ok and - implicit_str_to_num_ok. - * ov.h (Vimplicit_num_to_str_ok, Vimplicit_str_to_num_ok): - Delete decls. - - * pt-mat.cc (tree_matrix::rvalue): Vimplicit_num_to_str_ok no - longer exists. - - * ov.cc (Vwarn_imag_to_real): New variable. - (warn_imag_to_real): New function. - (symbols_of_ov): Add DEFVAR for warn_imag_to_real. - * ov.h (Vwarn_imag_to_real): Provide decl. - - * ov.cc (Vok_to_lose_imaginary_part): Delete unused variable. - (ok_to_lose_imaginary_part): Delete unused function. - (symbols_of_ov): Delete DEFVAR for ok_to_lose_imaginary_part. - * ov.h (Vok_to_lose_imaginary_part): Delete decl. - - * ov-complex.cc (octave_complex::double_value): Warn based on - Vwarn_imag_to_real instead of Vok_to_lose_imaginary_part. - (octave_complex::matrix_value): Likewise. - * ov-cx-mat.cc (octave_complex_matrix::double_value): Likewise. - (octave_complex_matrix::matrix_value): Likewise. - - * octave.cc (maximum_braindamage): Don't set ok_to_lose_imaginary_part. - - 2003-07-08 John W. Eaton - - * sighandlers.cc (sig_hup_or_term_handler): New function. - (install_signal_handlers): Install sig_hup_or_term_handler for - SIGHUP and SIGTERM instead of generic_sig_handler. - (Vsighup_dumps_octave_core, Vsigterm_dumps_octave_core): - New static variables. - (sighup_dumps_octave_core, sigterm_dumps_octave_core): - New static functions. - (symbols_of_sighandlers): Add DEFVARs for sighup_dumps_octave_core - and sigterm_dumps_octave_core. - - * defaults.h.in (OCTAVE_LOCALAPIFCNFILEDIR, OCTAVE_LOCALAPIOCTFILEDIR): - Subsitute new variables. - - * defun.cc (check_version): Compare version to OCTAVE_API_VERSION, - not OCTAVE_VERSION. Mismatch is now fatal. - * defun-int.h (DEFINE_FUN_INSTALLER_FUN3): Pass - OCTAVE_API_VERSION instead of OCTAVE_VERSION to check_version. - * version.h (OCTAVE_API_VERSION): New macro, initial value api-v1. - - * defaults.cc (Vdefault_exec_path): New static variable. - (set_default_default_exec_path): New function. - (install_defaults): Call it. - (exec_path): Use it. - (default_exec_path): New function. - (symbols_of_defaults): Add DEFVAR for DEFAULT_EXEC_PATH. - - 2003-07-07 John W. Eaton - - * defaults.h.in (OCTAVE_LOCALSTARTUPFILEDIR, OCTAVE_STARTUPFILEDIR): - Set values directly instead of constructing them. - - 2003-06-28 Arno J. Klaassen - - * toplev.cc (octave_config_info): Key for OCTAVE_CONF_DEFS should - be DEFS, not UGLY_DEFS. - - 2003-06-27 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.50. - - 2003-06-26 John W. Eaton - - * variables.cc (symbol_exist): Distinguish between user and dld - functions loaded in memory. - - 2003-06-24 John W. Eaton - - * pt-mat.cc (tm_row_const::init, tm_const::init): Don't ignore - empty matrices that have one non-zero dimension. - - * variables.cc (symbol_exist): Use dir_path::find_first_of to - search for .oct and .m files. - - * ov-base.cc (octave_base_value::subsasgn): Also allow type - conversion for empty numeric objects with more than one index. - * ov-base-mat.cc (octave_base_matrix::subsasgn): Likewise. - - 2003-06-23 John W. Eaton - - * variables.cc (do_who): New arg, return_list. If return_list is - true, return values in cell or struct arrays instead of printing. - (Fwho, Fwhos): If nargout is 1, ask do_who to return lists of values. - * oct-map.h (Octave_map (const std::string&, const octave_value_list&): - New constructor. - - 2003-06-19 John W. Eaton - - * pt-idx.cc (tree_index_expression::rvalue): - Correctly handle index expressions like x(end).f(end). - (tree_index_expression::lvalue): Likewise. - - * pt-arg-list.cc (F__end__): Add nr, nc info to error messages. - - 2003-06-18 John W. Eaton - - * pr-output.cc (set_format (const Matrix&, int&, double&)): Ask - any_element_is_negative to return true for negative zero as well. - (set_format (const ComplexMatrix&, int&, int&, double&)): Likewise. - - 2003-06-16 John W. Eaton - - * toplev.cc (main_loop): Set octave_interrupt_hook and - octave_bad_alloc_hook to unwind_protect::run_all here. - (recover_from_exception): Don't call unwind_protect::run_all here. - - * pt-except.cc (do_catch_code): Return immediately if - octave_interrupt_immediately is nonzero. - - * sighandlers.cc (sigint_handler): If jumping, don't set - octave_interrupt_state. - - 2003-06-14 John W. Eaton - - * load-save.cc (get_save_type): Avoid all save types other than - LS_DOUBLE to avoid apparent Matlab bugs. - - 2003-06-13 John W. Eaton - - * parse.y (frob_function, parse_fcn_file): Handle help_buf as - stack of strings. - * lex.l ({CCHAR}): Handle help_buf as stack of strings. - Store text returned from grab_help_text in help_buf here. - (reset_parser): Handle help_buf as stack of strings. - (prep_for_nested_function): Push empty string onto help_buf stack. - (grab_help_text): Return help text instead of storing it in help_buf. - * parse.h, parse.y (help_buf): Now a stack of strings. - - * oct-stream.cc (printf_value_cache::string_value): Don't attempt - to extract values when none are available. - - 2003-06-04 John W. Eaton - - * pt-plot.cc (Vgnuplot_has_multiplot): Delete variable. - (gnuplot_has_multiplot): Delete. - (symbols_of_pt_plot): Delete DEFVAR for gnuplot_has_multiplot. - - 2003-05-28 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.49. - - 2003-05-28 Teemu Ikonen - - * load-save.cc (save_mat5_binary_element, save_mat_binary_data): - Allow saving of non-7-bit ASCII characters. - - 2003-05-28 John W. Eaton - - * oct-stream.cc (FINISH_CHARACTER_CONVERSION, - octave_base_stream::do_scanf): Do a better job of resizing for - charachter conversions. - - 2003-05-25 John W. Eaton - - * ov-cx-mat.cc (octave_complex_matrix::assign): Move definition here. - * ov-cx-mat.h: From here. - - 2003-05-24 John W. Eaton - - * ov-range.cc (octave_range::try_narrowing_conversion): Convert to - [](1x0) instead of [](0x0) if range is empty. - - 2003-05-14 John W. Eaton - - * Makefile.in: Handle DESTDIR. - - 2003-05-13 John W. Eaton - - * lex.l: Use yyunput (X, yytext) instead of unput (X) for newer - versions of flex. - - 2003-05-06 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.48. - - 2003-05-02 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.47. - - 2003-05-01 John W. Eaton - - * load-save.cc (save_ascii_data): If saving a range with - non-integer base, limit, or increment, save as matrix instead. - (get_save_type): Avoid unsigned types. - - 2003-04-30 John W. Eaton - - * octave.cc (initialize_pathsearch): Don't save old and set new - value of TEXMFDBS. - - * toplev.cc (restore_texmfdbs_envvar): Delete function. - (Fsystem): Don't set and reset TEXMFDBS. - - * toplev.h, toplev.cc (octave_original_texmfdbs): Delete variable. - - 2003-04-25 John W. Eaton - - * DLD-FUNCTIONS/getpwent.cc (Fgetpwnam): Delete unnecessary - c_str() method. - - 2003-04-22 John W. Eaton - - * file-io.cc: Include for auto_ptr. - - 2003-04-18 John W. Eaton - - * toplev.cc (octave_config_info): Delete LIBKPATHSEA from struct. - * oct-conf.h.in: Don't substitute LIBKPATHSEA. - - * octave.cc (octave_main): Don't call dir_path::set_program_name. - - 2003-04-17 John W. Eaton - - * ov-file.h (octave_file::empty_clone): Create an octave_scalar - object, not an octave_file object. - - 2003-04-01 John W. Eaton - - * load-save.cc (hdf5_read_next_data): Extract list before - assigning to map element. - (add_hdf5_data): Prefix faked names with '_' so they are valid - identifiers. - - 2003-03-24 Mats Jansson - - * syscalls.cc (Fkill): Fixed docstring typo. - - 2003-03-18 John W. Eaton - - * ov-cell.h (octave_cell::is_matrix_type): New function. - - 2003-03-09 Duncan Temple Lang - - * octave.cc (octave_main): New arg, embedded. - * octave.h: Fix decl. - * main.c: Pass 0 for embedded here. - - 2003-03-03 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.46. - - * oct-conf.h.in: Undo previous change. - - * load-save.cc (read_mat5_binary_element): Handle structure arrays. - (save_mat5_binary_element): Likewise. - - 2003-03-01 John W. Eaton - - * ov-cell.cc (octave_cell::subsasgn): Use make_unique in - appropriate places to preserve copy on write semantics. - - * oct-conf.h.in: Substitute OCTAVE_CONF_KPATHSEA_INCFLAGS. - - * oct-stdstrm.h (octave_stdiostream::output_stream): Return stream - if mode is out, not in. - - 2003-02-22 John W. Eaton - - * strfns.cc (Fchar): New function. - - * ov-cell.cc (octave_cell::all_strings): Allow elements to be - string arrays. - * ov.cc (octave_value::all_strings, octave_value::convert_to_str): - New optional arg, pad. Change all derived classes. - - * ov-struct.cc (Ffieldnames, Fisfield): Move here from data.cc. - - * data.cc (Ffieldnames): Rename from Fstruct_elements. Return - cell array instead of a string array. - (Fisfield): Rename from struct_contains. - - 2003-02-22 Paul Kienzle - - * toplev.cc: Put config info in array of strings, then convert to map. - - 2003-02-22 John W. Eaton - - * variables.cc (symbol_exist): For names like foo.bar, don't omit - the part after the dot. - - 2003-02-21 John W. Eaton - - * octave.cc (fun_to_call): New static variable. - (octave_main): Pass it to main_loop. - (long_opts): Accept --funcall. - (usage_string, verbose_usage): Add --funcall. - - * toplev.cc (main_loop): New arg, fun_to_call. If non-empty, - evaluate this function before continuing. - - 2003-02-21 Paul Kienzle - - * file-io.cc (Fmkstemp): Use OCTAVE_LOCAL_BUFFER instead of using - std::auto_ptr directly. - - 2003-02-21 John W. Eaton - - * ov.h, ov.cc (octave_value (long long int)): New constructor. - (octave_value (unsigned long long int)): Likewise. - - * oct-obj.h (octave_value_list::operator delete): Handle systems - with or without placement delete. - - 2003-02-21 Paul Kienzle - - * utils.cc (octave_vsnprintf): Return value of vsnprintf is int, - not size_t. Make sure there is some space left in the buffer for - vsnprintf versions which return the number of characters written - even when the buffer is too short. - - 2003-02-20 John W. Eaton - - * debug.cc (get_user_function): Use dynamic_cast, not static_cast. - - * ov-usr-fcn.cc (octave_user_function::traceback_error): Now const. - - * ov.cc (octave_value (const octave_fcn_handle&)): New constructor. - (octave_value::fcn_handle_value): New virtual function. - * ov-base.cc (octave_value::fcn_handle_value): Provide default. - * ov-usr-fcn.cc (octave_user_function::stash_fcn_file_name): New - arg, nm. Change all callers. - * ov-fcn.h (octave_function::is_nested_function): New virtual function. - * parse.y (get_feval_args): New function. - (feval (octave_function *, const octave_value_list&, int)): Likewise. - (feval (const octave_value_list&, int)): Allow the first arg to be - a function handle as well as a string. - * variables.cc (load_function): New function. - * pt-walk.h, pt-pr-code.h, pt-pr-code.cc, pt-check.h, pt-check.cc, - pt-bp.h, pt-bp.cc: Handle new tree_fcn_handle class. - * pt-all.h: Include pt-fcn-handle.h. - * pt-fcn-handle.h, pt-fcn-handle.cc, ov-fcn-handle.h, - ov-fcn-handle.cc: New files. - - 2003-02-19 John W. Eaton - - * parse.y (FCN_HANDLE): New token type. - (fcn_handle): New non-terminal. - (primary_expr): Also accept fcn_handle. - (tree_fcn_handle_type): New %type. - (union): New field, tree_fcn_handle_type. - (make_fcn_handle): New function. - - * lex.l (@{IDENT}): Recognize function handle syntax. - (@): Don't recognize "@" as a single token. - - * load-save.cc (struct hdf5_callback_data): Provide constructor. - (hdf5_callback_data::name, hdf5_callback_data::doc): Now - std::string instead of char*. Change all uses. - - 2003-02-18 Roger Banks - - * load-save.cc (read_ascii_data, read_ascii_data, - read_mat5_binary_element, save_mat5_binary_element, - save_ascii_data): Handle cell arrays. - (write_mat5_cell_array): New function. - - 2003-02-18 John W. Eaton - - * Makefile.in (DLD_XSRC): Delete log.cc from the list. - Add sqrtm.cc to the list. - - * DLD-FUNCTIONS/log.cc: Delete. - - 2003-02-18 Paul Kienzle - - * DLD-FUNCTIONS/sqrtm.cc: New file. - - 2003-02-18 David Bateman - - * DLD-FUNCTIONS/lu.cc (Flu): Allow non-square matrices. - - 2003-02-17 John W. Eaton - - * load-save.cc (read_binary_file_header, do_load, do_save, - write_header): No longer static. - (load_save_format): Move enum decl to load-save.h. - - 2003-02-15 John W. Eaton - - * oct-stdstrm.h, oct-stdstrm.cc (octave_base_stdiostream, - octave_iostdiostream, octave_istdiostram, octave_ostdiostream): - Combine all functionality into one class, octave_stdiostream. - Change all uses. - - * file-io.cc (Ftmpfile, Fmkstemp): New functions. - * oct-stdstrm.h (octave_iostdiostream): New class. - (octave_istdiostream::octave_istdiostream, - octave_istdiostream::create, - octave_ostdiostream::octave_ostdiostream, octave_ostdiostream::create, - octave_iostdiostream::octave_iostdiostream, - octave_iostdiostream::create): Make close function the last arg. - Change all uses. - - * c-file-ptr-stream.h (io_c_file_ptr_stream): New class. - - 2003-02-14 John W. Eaton - - * octave.cc (maximum_braindamage): Set boolean built-in variables - to true and false instead of 1.0 and 0.0. - (octave_main): Likewise. - * error.cc (Fwarning): Likewise. - - * pager.cc (Fmore): Make the no-arg case work too. - - * ov-str-mat.h (octave_char_matrix_str::is_real_type, - octave_char_matrix_str::is_matrix_type, - octave_char_matrix_str::is_numeric_type): Always return false. - - 2003-02-13 John W. Eaton - - * lex.l (): If we are parsing a command, reset start state. - Use BEGIN (INITIAL) instead of BEGIN 0. Use parens around start - state in BEGIN statements. - - 2003-02-13 Paul Kienzle - - * variables.cc (Fmlock, Fmunlock, Fmislocked): New functions. - - * variables.cc (mlock, munlock, mislocked): New functions. - * variables.h: Provide decls. - - * symtab.h (symbol_record::unmark_static): New function. - - 2003-02-12 John W. Eaton - - * error.cc (reset_error_handler): New function. - * toplev.cc (main_loop): Use it here. - * lex.l (reset_parser): Don't set error_state and warning_state here. - * parse.y (eval_string): Reset parser before calling yyparse. - - 2003-01-29 John W. Eaton - - * data.cc (Ffmod): New function. - - * c-file-ptr-stream.cc (c_file_ptr_buf::underflow_common): New - function. - * c-file-ptr-stream.h (c_file_ptr_buf::underflow, - c_file_ptr_buf::uflow): Use it. - (c_file_ptr_buf): Derive from std::streambuf, not OCTAVE_STD_FILEBUF. - Don't cache file descriptor. - - 2003-01-28 John W. Eaton - - * DLD-FUNCTIONS/minmax.cc: Move min and max functions from here to - liboctave/dMatrix.cc and liboctave/CMatrix.cc. - - 2003-01-24 John W. Eaton - - * DLD-FUNCTIONS/rand.cc: Rewrite to use new octave_rand functions. - - 2003-01-23 John W. Eaton - - * oct-stream.cc (octave_base_stream::do_printf): Handle values - outside the range of integers in int conversions for - compatibilitiy wtih Matlab. - - 2003-01-22 John W. Eaton - - * load-save.cc (get_mat_data_input_line): Handle lines with CR - only as separator. - - * oct-stream.cc (octave_base_stream::do_printf): Handle Inf and - NaN in int conversions for compatibility with Matlab. - - * data.cc (symbols_of_data): Doc fix for realmin. - - * cutils.c (octave_raw_vsnprintf): New function. - * utils.cc (octave_snprintf): Move here from cutils.c. - (octave_Vsnprintf): Likewise. Allow octave_raw_vsnprintf to be - interrupted. - * utils.h (octave_vsnprintf, octave_snprintf): No longer extern "C". - - 2003-01-21 John W. Eaton - - * pt-loop.cc (tree_complex_for_command::eval): Fix typo. - - 2003-01-16 Mumit Khan - - * mk-oct-links: Use $SED if set. - * mkbuiltins: Likewise. - * mkdefs: Likewise. - * mkdocs: Likewise. - * mkgendoc: Likewise. - * mkops: Likewise. - - 2003-01-11 Paul Kienzle - - * Makefile.in (gendoc$(BUILD_EXEEXT)): Pass $(BUILD_CXXFLAGS) and - $(BUILD_LDFLAGS) to compiler. - - 2003-01-11 John W. Eaton - - * parse.y (Fassignin): New function. - - 2003-01-10 John W. Eaton - - * sighandlers.cc (make_sig_struct): New function. - (symbols_of_sighandlers): Add DEFCONST for SIG struct. - - * syscalls.cc (Fkill): New function. - - 2003-01-06 John W. Eaton - - * oct-stream.cc (get_size): If only one dimension is specified and - it is zero, also set the other dimension to zero instead of one. - - 2003-01-04 John W. Eaton - - * sysdep.cc [__DECCXX]: Add a kluge for some missing template - functions. - - 2003-01-03 John W. Eaton - - * ov-usr-fcn.cc (octave_vr_val): Assert vr_list != 0, not vr_list. - * variables.cc (builtin_string_variable, builtin_any_variable, - builtin_real_scalar_variable, bind_builtin_variable): Likewise. - - * TEMPLATE-INST/Array-tc.cc: Provide specialization of - Array::resize_fill_value before instantiation of - Array. - - * oct-obj.h (octave_value_list::operator delete): Define version - of delete operator to correspond to placement new operator. - - * mkgendoc: In generated code, define __USE_STD_IOSTREAM if using - Compaq C++. - - * Makefile.in (distclean): Also remove doc-files and gendoc.cc. - - * input.cc (initialize_command_input): Use const for - initialization of char * from literal string. - - * pt-plot.cc (subplot::extract_plot_data): Call single_subsref, - not subsref. - * ov.h, ov.cc (single_subsref (const std::string&, const - octave_value_list&)): Rename from subsref. - - * symtab.cc (symbol_table::rename): Explicitly convert C string to - std::string so type of second arg of ?: matches third. - (symbol_table::lookup): Likewise. - - * mappers.cc: Remove std:: qualifiers from C library names. - - 2003-01-03 John W. Eaton - - * pt-exp.h (tree_expression::has_magic_end): New pure virtual function. - * pt-id.h (tree_identifier::has_magic_end): New function. - * pt-colon.h (tree_colon_expression::has_magic_end): Likewise. - * pt-idx.h (tree_index_expression::has_magic_end): Likewise. - * pt-const.h (tree_constant::has_magic_end): Likewise. - * pt-unop.h (tree_unary_expression::has_magic_end): Likewise. - * pt-binop.h (tree_binary_expression::has_magic_end): Likewise. - * pt-assign.h (tree_multi_assignment::has_magic_end): Likewise. - (tree_simple_assignment::has_magic_end): Likewise. - * pt-mat.cc (tree_matrix::has_magic_end): Likewise. - * pt-arg-list.cc (tree_argument_list::has_magic_end): Likewise. - - * pt-arg-list.cc (tree_argument_list::append): Check all - expression types for magic end token.. - - * file-io.cc (Ftmpnam): Improve error checking. - (symbols_of_file_io): Move definition of P_tmpdir here from dirfns.cc. - - * dirfns.cc (symbols_of_dirfns): Install new built-in constant - P_tmpdir. - - 2003-01-02 John W. Eaton - - * dirfns.cc (symbols_of_dirfns): New function. - Install new built-in constant filesep. - - * utils.cc (Fisvaranme): New function. - (valid_identifier): Identifiers can't start with digits! Doh! - - * lex.l (Fiskeyword): New function. - - * Makefile.in (INCLUDES): Don't forget base-list.h. - - * symtab.cc (symbol_record::define): If definition already exists, - redefine it instead of replacing it. - - * variables.cc (symbol_exist): Don't use reference when handling - sr->def (). - - * pt-plot.cc (save_in_tmp_file): octave_value arg is now const. - * pt-misc.cc (tree_parameter_list::initialize_undefined_elements): - Likewise. - - * symtab.cc (symbol_record::clear): Don't do anything if the - symbol record is already undefined. - - 2003-01-01 John W. Eaton - - * pt-arg-list.cc (tree_argument_list::append): New function. - (tree_argument_list::convert_to_const_vector): Don't save and - set pointer to indexed object if list_includes_magic_end is false. - * pt-arg-list.h (tree_argument_list::append): Provide decl. - (tree_argument_list::list_includes_magic_end): New data member. - (tree_argument_list::tree_argument_list): Initialize it. - - * ov-base.cc (octave_base_value::char_matrix_value, - octave_base_value::all_strings, octave_base_value::string_value): - Attempt conversions here if Vimplicit_num_to_num_ok is true. - - * ov.cc (Vimplicit_num_to_str_ok): Move here from pt-mat.cc and - make extern. - * ov.h: Provide decl. - - * oct-stream.cc (printf_value_cache::looking_at_string): Delete. - (printf_value_cache::string_value): Just attempt conversion. - (octave_base_stream::do_printf): When doing '%s' format, - just attempt converstion. - - * file-io.cc (Ffread): Allow size to be omitted even when - additional arguments are given. - - 2002-12-31 John W. Eaton - - * pt-arg-list.cc (F__end__): Fail if rows or columns is negative. - (tree_argument_list::convert_to_const_vector): Only protect and - save pointer to the indexed object if it is a constant. - - * syscalls.cc (Fmkfifo): Use long_value instead of cast. - - * ov.h (octave_value::short_value, octave_value::ushort_value, - octave_value::uint_value, octave_value::long_value, - octave_value::ulong_value): New functions. - - * syscalls.cc (mk_stat_map, Fgetegid, getgid, geteuid): Likewise. - Delete unnecessary casts. - * file-io.cc (Ffgetl, Ffgets, Fftell, Fsscanf): Likewise. - * toplev.cc (Fsystem): Likewise. - - * ov-file.h (octave_file::double_value, octave_file::scalar_value): - Delete unnecessry cast. - - * ov.cc (octave_value::octave_value): Add constructors for - octave_time, short int, unsigned short int, unsigned int, long - int, unsigned long int, - - * ov.h (octave_value::do_subsref (const std::string&, const - octave_value_list&)): Rename from subsref. Change all derived classes. - - * input.cc (generate_completion): Delete unused variable prefix_len. - - * ov.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Delete volatile - qualifier for decls of static_type_id and t_id. - (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Likewise, for def of t_id. - - 2002-12-30 John W. Eaton - - * utils.cc (Ffile_in_path): Index args correctly. - - * utils.cc (Ffile_in_path): Call error, not print_usage, for - invalid option error. - (Ffile_in_loadpath): Likewise. - - * load-save.cc: Use OCTAVE_LOCAL_BUFFER instead of local automatic - arrays or using new/delete. - - * lex.l (.): Try another approach to handling EOF here. - - * load-save.cc (read_mat_ascii_data): Use isalpha and isalnum, not - ::isalpha and ::isalnum. - - * defaults.cc (maybe_add_or_del_packages): SCRIPT_FILE arg is now - a const reference type. - - * ov.h (octave_value::subsref, octave_value::subsasgn, - octave_value::assign, octave_value::do_non_const_unary_op, - octave_value::numeric_assign): TYPE arg is now a const reference - type. Change all derived classes. - - * ov.cc (octave_value::subsref (const std::string&, const - octave_value_list&)): Move body here, from ov.h. - - * octave.cc (octave_main): Return 0 at end of function to avoid - compiler warnings. - - 2002-12-30 Paul Kienzle - - * parse.y: Fix typo in doc string. - - 2002-12-29 John W. Eaton - - * DLD-FUNCTIONS/lpsolve.cc (Flpsolve): Rename from Flp_solve. - (Flpsolve_options): Rename ffrom Flp_solve_options. - - 2002-12-27 John W. Eaton - - * parse.y (Fevalin): New function. - - * variables.cc (curr_caller_sym_tab): New global variable. - * variables.h: Provide decl. - (initialize_symbol_tables): Initialize it. - * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): - Protect and set it here. - - 2002-12-26 John W. Eaton - - * utils.cc (search_path_for_file): Second arg now string_vector. - Use find_first_of, not find. - (search_path_for_all_files): Second arg now string_vector. - Use find_all_first_of, not find_all. - (Ffile_in_path): Accept cell array of strings as first argument. - (Ffile_in_loadpath): Likewise. - - * dynamic-ld.cc (octave_dynamic_loader::load): New arg, file_name. - (octave_dynamic_loader::do_load): Likewise. If file_name is not - empty, use it instead of searching in path. - - * parse.y (load_fcn_from_file): Use find_first_of to perform search. - - * ov-cell.cc (octave_cell::all_strings): New function. - * ov-cell.h: Provide decl. - - 2002-12-25 John W. Eaton - - * parse.y (function_end): If parsing a nested function, set - lexer_flags.parsing_nested_function to -1. - (frob_function): If lexer_flags.parsing_nested_function is - negative, set it to zero. - * lex.h (lexical_feedback::parsing_nested_function): Now int. - Change uses as needed. - - * lex.l (NESTED_FUNCTION_BEGIN): Rename from NESTED_FUNCTION_START. - Now an exclusive start state. - (NESTED_FUNCTION_END): New exclusive start state. - (is_keyword): When matching a new function keyword in a nested - function context, explicitly return END and set start state to - NESTED_FUNCTION_END. - (.): Accept EOF here too. - - * variables.cc (link_to_builtin_or_function): Maybe prepend parent - function name symbol name. - - * parse.y (parent_function_name): New variable. - (fcn_name): New non-terminal. - (function2): Use it. - (parsed_fcn_name): Fold into fcn_name. - (function_end): Don't call check_for_garbage_after_fcn_def. - Set lexer_flags.parsing_nested_function on EOF. - * parse.h: Provide decl for parent_function_name. - - * ov-usr-fcn.h (octave_user_function::mark_as_nested_function, - (octave_user_funciton::is_nested_function): New functions. - (octave_user_function::nested_function): New data member. - (octave_user_function::do_multi_index_op): Maybe protect and set - curr_parent_function pointer. - * parse.y (frob_function): Maybe mark as nested function. - - * toplev.cc (curr_parent_function): New global variable. - * toplev.h: Provide decl. - - * lex.l (check_for_garbage_after_fcn_def): Delete. - * lex.h: Delete decl. - - * lex.l (prep_for_nested_function): New function. - (): Use it here. - (is_keyword): And here. - (lookup_identifier): Maybe prepend parent function name. - - * variables.cc (initialize_symbol_tables): Give names to the three - main symbol tables. - * symtab.cc (symbol_table::lookup, symbol_table::rename): Print - debugging info if Vdebug_symtab_lookups is nonzero. - (debug_symtab_lookups): New function. - (Vdebug_symtab_lookups): New static varaible. - (symbols_of_symtab): DEFVAR it. - * symtab.h (symbol_table::table_name): New member variable. - (symtab_count): New static member variable. - (symbol_table::symbol_table): Handle table name. - - 2002-12-24 John W. Eaton - - * parse.y (frob_function): Don't give nested functions the same - name as the function file. - - * lex.h (lexical_feedback::parsing_nested_function): New data member. - * lex.l (lexical_feedback::init): Initialize it to false. - (): Set lexer_flags.parsing_nested_function - to true. - - * parse.y (symtab_context): Now a stack. Change all uses. - - * lex.l (NESTED_FUNCTION_START): New start state to handle - "function" keyword in a nested function context. - (prep_for_function): New function. - (is_keyword): Allow functions to be nested in function files. - - * lex.l (is_keyword): Maybe ignore END tokens. - Increment and decrement end_tokens_expected as appropriate. - (handle_identifier): If is_keyword returns -1, return immediately. - ({IDENT}{S}*): Do nothing if handle_identifier returns -1. - - * parse.y (end_tokens_expected): New variable. - (parse_fcn_file): Protect and set it. - - * parse.y (begin_obj_idx): Increment - lexer_flags.looking_at_object_index. - (postfix_expr): Decrement it as appropriate here. - - * lex.h (lexical_feedback::looking_at_object_index): Now int. - - * parse.y (postfix_expr): Reset lexer_flags.looking_at_object_index - in () and {} cases too. - - 2002-12-21 John W. Eaton - - * pt-arg-list.cc (indexed_object, indexed_position): - New file-scope static variables. - (tree_argument_list::convert_to_const_vector): New arg, object. - Protect and set indexed_object and indexed_position. - (F__end__): New function. - - * octave-lvalue.h (octave_lvalue::object): New member function. - * pt-idx.cc (make_value_list): New arg, object. Change all - callers. Pass object to convert_to_const_vector. - - * lex.h (lexical_feedback.looking_at_object_index): New data member. - * lex.l (lexical_feedback::init): Initialize it. - (is_keyword): If looking at object index, end is not a keyword. - (handle_identifier): If end is not a keyword, transform it to __end__. - * parse.y (begin_obj_idx): New non-terminal. - (postfix_expr): Use it. - - * defun.cc (install_builtin_function): New arg, can_hide_function. - * defun-int.h: Fix decl. - (DEFCONSTFUN_INTERNAL): New macro. - * defun.h (DEFCONSTFUN): New macro. - * mkbuiltins (XDEFCONSTFUN_INTERNAL): New macro. - * mkgendoc: Likewise. - * Makefile.in (DEFUN_PATTERN): Make it work for DEFCONSTFUN too. - * symtab.h (symbol_record::can_hide_function): New data member. - (symbol_record::symbol_record): Initialize it. - * symtab.cc (symbol_record::variable_reference): Also check - can_hide_function flag. - - 2002-12-20 John W. Eaton - - * DLD-FUNCTIONS/time.cc (extract_tm): Use int_value() instead of - casting double_value() to int. - - * ov.cc (octave_value::next_subsref): Arg "skip" is now size_t. - - * oct-obj.h (octave_value_list::octave_value_list (double), - octave_value_list::octave_value_list (const Matrix&), - octave_value_list::octave_value_list (const DiagMatrix&), - octave_value_list::octave_value_list (const RowVector&), - octave_value_list::octave_value_list (const ColumnVector&), - octave_value_list::octave_value_list (const Complex&), - octave_value_list::octave_value_list (const ComplexMatrix&), - octave_value_list::octave_value_list (const ComplexDiagMatrix&), - octave_value_list::octave_value_list (const ComplexRowVector&), - octave_value_list::octave_value_list (const ComplexColumnVector&), - octave_value_list::octave_value_list (const char *), - octave_value_list::octave_value_list (const std::string&), - octave_value_list::octave_value_list (const string_vector&), - octave_value_list::octave_value_list (double, double, double), - octave_value_list::octave_value_list (const Range&): Delete. - Adjust uses of octave_value/octave_value_list to handle this change. - - * ov.cc (octave_value::octave_value (int)): New constructor. - * ov.h: Provide decl. - In files that construct integer-valued octave_value objects, use - ints instead of casing to double. - - 2002-12-19 John W. Eaton - - * load-save.cc (read_mat_ascii_data): Allow commas to separate values. - Try harder to convert filenames to valid identifiers in a - Matlab-compatible way. - - 2002-12-18 John W. Eaton - - * Makefile.in: No need to add $(LIBKPATHSEA) to LINK_DEPS, since - it is not included in liboctave. - - 2002-12-18 JD Cole - - * pt-check.cc (tree_checker::visit_subplot_axes, - tree_checker::visit_do_until_command): New functions. - * pt-check.h: Provide decl. - - 2002-12-17 John W. Eaton - - * variables.cc (Fclear): Fix off-by-one error. - - * oct-stream.cc (octave_base_stream::do_gets): Correctly read - last line of file even if it does not end with new line - character. - - * pt-select.cc (equal): Don't look up == op, just try it and see - whether it works. - - * oct-stream.cc (printf_format_list::printf_format_list): - Handle empty format string. - - 2002-12-06 John W. Eaton - - * pt-mat.cc (class tm_row_const::tm_row_const_rep): Derive from - octave_base_list instead of SLList. Fix tm_row_const member - functions as needed, change all uses. - (class tm_const): Derive from octave_base_list, not SLList. Fix - member functions as needed, change all uses. - * pt-mat.h (class tree_matrix): Derive from octave_base_list - instead of including SLList object as data member. Fix member - functions as needed, change all uses. - - * pt-idx.h (tree_index_expression::args, - tree_index_expression::arg_nm, tree_index_expression::dyn_field): - Now std::list, not SLList. Fix member functions as needed, change - all uses. - - * oct-map.h (Octave_map::map): Now std::map instead of CHMap. - Fix member functions as needed, change all uses. - - * oct-lvalue.h (octave_lvalue::idx): Now std::list instead of - SLList object. Fix member functions as needed, change all uses. - - * dynamic-ld.cc (octave_shlib_list::lib_list): Now std::list - instead of DLList object. Fix member functions as needed, change - all uses. - - * ov.h (octave_value::subsref, octave_value::subsasgn): - Index arg is not std::list, not SLList. Change all derived - classes, all uses. - - * pt-stmt.h (tree_statement_list): Derive from base_octave_list - object instead of including SLList object as data member. Fix - member functions as needed, change all uses. - * pt-select.h (tree_switch_case_list): Likewise. - (tree_if_command_list): Likewise. - * pt-misc.h (tree_parameter_list, tree_return_list, - tree_va_return_list): Likewise. - * pt-plot.h (subplot_list): Likewise. - * pt-mat.h (tree_matrix): Likewise. - * pt-decl.h (tree_decl_init_list): Likewise. - * pt-arg-list.h (tree_argument_list): Likewise. - * comment-list.h (octave_comment_list): Likewise. - - * BaseSLList.cc, DLList.cc, Map.cc, SLList.cc, SLStack.cc, - Stack.cc: Delete. - * Makefile.in (DIST_SRC): Delete them from the list. - - * BaseSLList.h, DLList.h, Map.h, Pix.h, SLList.h, SLStack.h, - Stack.h: Delete - * Makefile.in (INCLUDES): Delete them from the list. - - * Map-oct-obj.cc, SLList-expr.cc, SLList-misc.cc, SLList-plot.cc, - SLList-tc.cc, SLList-tm.cc: Delete. - * Makefile.in (TI_XSRC): Delete them from the list. - - * ov-base-mat.cc (octave_base_matrix::assign): Pass - MT::resize_fill_value () as third arg for ::assign. - - * Cell.h (Cell::resize_fill_value): Use empty Matrix object, not - undefined octave_value object. - (Cell::Cell (int, int, const octave_value&)): Use - resize_fill_value () as default value, not undefined octave_value - object. - - 2002-12-05 John W. Eaton - - * Makefile.in (DEFUN_PATTERN): Make it work for DEFCMD too. - - * base-list.h: New file. - - 2002-12-04 John W. Eaton - - * toplev.cc (octave_interpreter_ready): New global variable. - * toplev.h: Provide decl. - - * octave.cc (octave_main): Call execute_default_pkg_add_files just - before executing startup files. Set octave_interpreter_ready to - true before calling execute_default_pkg_add_files. - - * defaults.cc (maybe_add_or_del_packages, default_load_path, - update_load_path_dir_path): New static functions. - (set_default_path, loadpath): Call update_load_path_dir_path. - (symbols_of_defaults): Use DEFVAR, not DEFCONST for DEFAULT_LOADPATH. - (execute_default_pkg_add_files): New function. - * defaults.h.in: Provide decl. - - * utils.cc (search_path_for_all_files): New function. - (Ffile_in_loadpath, Ffile_in_path): Allow search to return all - files in the path. - - * Cell.cc (Cell (const string_vector&)): New constructor. - - * oct-obj.cc (octave_value_list::assign): Allow optional fill - value for resizing. - * oct-map.cc (Octave_map::assign): Pass fill_value in initial - assignment too. - - 2002-12-03 John W. Eaton - - * TEMPLATE-INST/Map-tc.cc, TEMPLATE-INST/Map-fnc.cc: Delete. - * Makefile.in (TI_XSRC): Delete them from the list. - - * fn-cache.h (octave_fcn_file_name_cache::cache): Now std::map, - not CHMap. - - * TEMPLATE-INST/SLStack-i.cc, TEMPLATE-INST/SLStack-ovl.cc, - TEMPLATE-INST/SLStack-pc.cc, TEMPLATE-INST/SLStack-str.cc, - TEMPLATE-INST/SLStack-sym.cc, TEMPLATE-INST/SLStack-tok.cc, - TEMPLATE-INST/SLStack-ue.cc, TEMPLATE-INST/SLStack-ui.cc: - Delete unnecessary files. - * Makefile.in (TI_XSRC): Delete them from the list. - - * toplev.cc (octave_atexit_functions): Now std::stack, not SLStack. - * pt-plot.cc (tmp_files): Likewise. - * lex.l (token_stack): Likewise. - (class bracket_brace_paren_nesting_level): Make context a data - member instead of deriving from SLStack object. - Use std::stack instead of SLStack. - * ov-usr-fcn.h (octave_user_function::saved_args): Likewise. - * symtab.h (symbol_record::context): Likewise. - (symbol_record::global_link_context): Likewise. - - * unwind-prot.h (unwind_protect::elt_list): Rename from list. - Now std::stack, not SLStack. - - * pt-stmt.h (tree_statement_list): Make list member data instead - of deriving from SLList object. - * pt-select.h (tree_switch_case_list): Likewise. - (tree_if_command_list): Likewise. - * pt-plot.h (subplot_list): Likewise. - * pt-mat.h (tree_matrix): Likewise. - * pt-decl.h (tree_decl_init_list): Likewise. - * pt-arg-list.h (tree_argument_list): Likewise. - * comment-list.h (octave_comment_list): Likewise. - - * defun.h (DEFCMD): Rename from DEFUN_TEXT. Provide DEFUN_TEXT as - an alias for DEFCMD. Change all uses. - - * variables.cc (at_top_level): New function. - (do_who, Fmark_as_command, Funmark_command): Use it. - - * lex.l (COMMAND_START): Rename from TEXT_FCN. Change all uses. - (MATRIX_START): Rename from MATRIX. Change all uses. - * variables.cc (command_function_set): Rename from - text_function_set. - (mark_as_command): Rename from mark_as_text_function. - (is_marked_as_command): Rename from is_marked_as_text_function. - (Fmark_as_command): Rename from Fmark_as_text_function. - (Funmark_command): Rename from Funmark_text_function. - (is_command_name): Rename from is_text_function_name. - * symtab.h (symbol_record::COMMAND): Rename from TEXT_FUNCTION. - (symbol_record::mark_as_command): Rename from mark_as_text_function. - (symbol_record::unmark_command): Rename from - symbol_record::unmark_text_function. - (symbol_record::is_command): Rename from - symbol_record::is_text_function. - (symbol_record::symbol_def::mark_as_command): Rename from - symbol_record::symbol_def::mark_as_text_function. - (symbol_record::symbol_def::unmark_command): Rename from - symbol_record::symbol_def::unmark_text_function. - (symbol_record::symbol_def::is_command): Rename from - symbol_record::symbol_def::is_text_function. - - * pt-jump.h, pt-jump.cc: Undo previous changes. - * parse.y: Undo previous changes for brea, continue, and return. - - 2002-11-25 John W. Eaton - - * pt-stmt.cc (tree_statement::eval): Allow the lookup to execute - script files. If script file has been executed, don't bother to - call expr->rvalue (). - - 2002-11-22 John W. Eaton - - * Makefile.in (OCTINTERP_LINK_DEPS): Include $(FLIBS) in - OCTINTERP_LINK_DEPS. - - * variables.cc (text_function_set): New static data. - (mark_as_text_function, unmark_text_function, - is_marked_as_text_function, Fmark_as_text_function, - Funmark_text_function): New functions. - (is_text_function_name): Handle functions marked as text functions - in special list, not just those marked in the symbol record. - * symtab.h (symbol_record::mark_as_text_function, - symbol_record::unmark_text_function, - symbol_record::symbol_def::mark_as_text_function, - symbol_record::symbol_def::unmark_text_function): New functions. - - * oct-map.h (Octave_map::rows, Octave_map::columns): New functions. - * ov-struct.h (octave_struct::rows, octave_struct::columns, - octave_struct::length): New functions. - - 2002-11-21 John W. Eaton - - * oct-conf.h.in (OCTAVE_CONF_MKOCTFILE_SH_LDFLAGS): New macro. - * toplev.cc (octave_config_info): Add it to the struct. - - * lex.l (): If yytext begins with # or %, don't - recognize it as a string. - - * oct-map.h (Octave_map::operator[]): New const version. - * oct-map.cc (equiv_keys): New function. - (assign (const idx_vector&, const Octave_map&)): New function. - * ov-struct.cc (octave_struct::subsasgn): Use it. - - 2002-11-20 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.40. - - * p-b-b.cc, op-bm-bm.cc, op-chm.cc, op-cm-cm.cc, op-cm-cs.cc, - op-cm-m.cc, op-cm-s.cc, op-cs-cm.cc, op-cs-cs.cc, op-cs-m.cc, - op-cs-s.cc, op-fil-b.cc, op-fil-bm.cc, op-fil-cm.cc, op-fil-cs.cc, - op-fil-lis.cc, op-fil-m.cc, op-fil-rec.cc, op-fil-s.cc, - op-fil-str.cc, op-list.cc, op-m-cm.cc, op-m-cs.cc, op-m-m.cc, - op-m-s.cc, op-range.cc, op-s-cm.cc, op-s-cs.cc, op-s-m.cc, - op-s-s.cc, op-str-str.cc, op-bm-b.cc, op-cell.cc, BaseSLList.cc, - BaseSLList.h, ChangeLog, Map.cc, Map.h, SLList.cc, SLList.h, - SLStack.cc, SLStack.h, Stack.cc, Stack.h, oct-map.cc, oct-map.h, - oct-obj.cc, oct-obj.h, c-file-ptr-stream.cc, c-file-ptr-stream.h, - ov-base-mat.cc, ov-base-scalar.cc, ov-base-scalar.h, ov-base.cc, - ov-base.h, ov-bool-mat.cc, ov-bool-mat.h, ov-bool.cc, ov-bool.h, - ov-builtin.cc, ov-builtin.h, ov-ch-mat.cc, ov-ch-mat.h, - ov-colon.cc, ov-complex.cc, ov-complex.h, ov.h, ov-cx-mat.cc, - ov-cx-mat.h, ov-fcn.cc, ov-fcn.h, ov-file.cc, ov-file.h, - ov-list.cc, ov-list.h, ov-mapper.cc, ov-mapper.h, ov-range.cc, - ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, ov-scalar.h, - ov-str-mat.cc, ov-str-mat.h, ov-struct.cc, ov-struct.h, - ov-typeinfo.cc, ov-typeinfo.h, ov-usr-fcn.cc, ov-usr-fcn.h, - ov-va-args.cc, ov.cc, ov-base-mat.h, procstream.cc, procstream.h, - pt-arg-list.cc, pt-arg-list.h, pt-binop.cc, pt-binop.h, - pt-check.cc, pt-check.h, pt-cmd.cc, pt-cmd.h, pt-colon.cc, - pt-colon.h, pt-const.cc, pt-const.h, pt-decl.cc, pt-decl.h, - pt-except.cc, pt-except.h, pt-exp.cc, pt-exp.h, pt-id.cc, pt-id.h, - pt-idx.cc, pt-idx.h, pt-jump.cc, pt-jump.h, pt-loop.cc, pt-loop.h, - pt-mat.cc, pt-mat.h, pt-misc.cc, pt-misc.h, pt-pr-code.cc, - pt-pr-code.h, pt-select.cc, pt-select.h, pt-stmt.cc, pt-stmt.h, - pt-unop.cc, pt-unop.h, pt.cc, pt.h, symtab.h, token.cc, token.h, - unwind-prot.cc, unwind-prot.h, ov-base-nd-array.cc, - ov-re-nd-array.h, ov-re-nd-array.cc, ov-base-nd-array.h, - comment-list.h, comment-list.cc, DLList.cc, DLList.h, - ov-dld-fcn.h, ov-dld-fcn.cc, Cell.cc, Cell.h, pt-cell.h, - pt-cell.cc, ov-cell.h, ov-cell.cc, pt-plot.cc, pt-plot.h, - pt-assign.cc, pt-assign.h, pt-bp.cc, pt-bp.h, symtab.cc, - ov-cs-list.h, ov-cs-list.cc: - Use "defined (USE_PRAGMA_INTERFACE_IMPLEMENTATION)" instead of - "! defined (NO_PRAGMA_INTERFACE_IMPLEMENTATION)". - - 2002-11-19 John W. Eaton - - * oct-obj.h (octave_value_list::~octave_value_list): New function. - - 2002-11-19 John W. Eaton - - * DLD-FUNCTIONS/odessa.cc (odessa_user_j): Put T in args(1), not - args(0). - - 2002-11-18 John W. Eaton - - * parse.y (symtab_context): Now extern. - * parse.h: Provide decl. - * lex.l (reset_parser): Set it to 0. - - 2002-11-15 John W. Eaton - - * pt-bp.cc (octave_debug_on_interrupt_state): New global variable. - * pt-bp.h: Provide decl. - (MAYBE_DO_BREAKPOINT): Check it. - - * sighandlers.cc (sigint_handler): Handle debug_on_interrupt. - (Vdebug_on_interrupt): New static variable. - (symbols_of_sighandlers): New function. DEFVAR Vdebug_on_interrupt. - (debug_on_interrupt): New function. - - * lex.h (YY_FATAL_ERROR): Use OCTAVE_QUIT here. - - * utils.cc (toplevel): Delete variable. - - * sighandlers.cc (OCTAVE_MEMORY_EXHAUSTED_ERROR): Delete. - - 2002-11-14 John W. Eaton - - * sighandlers.cc (octave_new_handler): Delete. - (install_signal_handlers): Don't call set_new_handler. - * toplev.cc (main_loop): Handle bad_alloc exception here. - - * sighandlers.cc (octave_new_handler): Allow return after - OCTAVE_JUMP_TO_TOP_LEVEL. - (sigfpe_handler): Likewise. - - 2002-11-13 John W. Eaton - - * variables.cc (is_variable): New static function. - (generate_struct_completions): Only evaluate objects that look - like variables. - - 2002-11-12 John W. Eaton - - * pt-jump.h, pt-jump.cc (tree_break_expression, - tree_continue_expression, tree_return_expression): Rename from - tree_break_command, tree_continue_command, tree_return_command. - Implement as expressions that return TRUE instead of commands. - Change all uses. - * parse.y (make_break_expression, make_continue_expression, - make_return_expression): Rename from make_break_command, - make_continue_command, make_return_command. Change all uses. - (jump_expr): Rename from jump_command, type is now expression. - Use in simple_expr, not command. - - * toplev.cc (octave_initialized): New global variable. - (main_loop): Set it to true here. - * sighandlers.cc (sigint_handler): Exit immediately if we have not - finished init process. - - * load-save.cc (extract_keyword): Return std::string, not char *. - Change all uses. - (read_ascii_data): Likewise. - (read_binary_data): Likewise. - (read_hdf5_data): Likewise. - (read_mat_ascii_data): Likewise. - (read_mat_binary_data): Likewise. - (do_load): Name and doc are now std::string objects, not char *. - (install_loaded_variable): Likewise. - (read_hdf5_data): Doc is now std::string object, not char *&. - (read_mat_ascii_data): Call OCTAVE_QUIT in strategic locations. - (get_lines_and_columns): Likewise. - - * toplev.cc (main_loop): Call OCTAVE_QUIT after executing command. - * parse.y (parse_and_execute (FILE *)): Likewise. - - 2002-11-12 Joseph P. Skudlarek - - * input.cc (match_sans_spaces_semi): Rename from match_sans_spaces. - Ignore trailing semicolons too. Change all callers. - - 2002-11-11 John W. Eaton - - * octave.gperf: Allow "persistent" as a synonym for static. - - * defun-int.h (DEFUN_MAPPER_INTERNAL): Don't forget doc string - when creating octave_mapper object. - - * sysdep.cc (BSD_init): Avoid failure if FP_X_DNML is not defined. - - 2002-11-08 John W. Eaton - - * cutils.c: Be sure to always return buf. - - Undo previous vnprintf changes. The portable snprintf I found - does not handle floating point conversions... - - 2002-11-07 John W. Eaton - - * Makefile.in (liboctinterp.$(LIBEXT)): Include $(XERBLA) here. - (octave.$(EXEEXT)): Not here. - (liboctinterp.$(SHLEXT)): Include $(PIC_XERBLA) here. - - * main.c: Move decl for xerbla here from octave.cc. - - * cutils.c (octave_vsnprintf): Use portable_snprintf to avoid - having to cope with all kinds of buggy implementations. - - * snprintf.c: New file. - * Makefile.in (DISTFILES): Add it to the list. - - * oct-snprintf.h: New file. - * Makefile.in (INCLUDES): Add it to the list. - - * oct-snprintf.c: New file. - * Makefile.in (DIST_SRC): Add it to the list. - - * toplev.cc (main_loop): Use SET_OCTAVE_INTERRUPT_IMMEDIATELY - instead of assigning octave_interrupt_immediately. - - 2002-11-06 John W. Eaton - - * utils.cc (jump_to_top_level): Delete. - - * toplev.cc (toplevel): Delete. - (main_loop): Adapt to new signal/exception handling scheme. - - * sighandlers.cc (octave_signal_mask, octave_save_signal_mask, - octave_restore_signal_mask): Move to libcruft/misc/quit.cc. - (sigint_handler) [USE_EXCEPTIONS_FOR_INTERRUPTS]: set - octave_interrupt_state. Only jump if octave_interrupt_immediately - is true, and then only to enclosing context. - - * lex.h (YY_FATAL_ERROR): Use OCTAVE_JUMP_TO_TOP_LEVEL, not - jump_to_top_level. - * sighandlers.cc (octave_new_handler, sigfpe_handler, endif, - sigpipe_handler): Likewise. - - * input.cc (gnu_readline): Surround call to - command_editor::readline with - BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE and - END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE. - - * data.cc, oct-stream.cc, ov-cell.cc, ov-mapper.cc, ov-re-mat.cc, - ov.cc, pr-output.cc, pt-loop.cc, pt-stmt.cc, xdiv.cc, xpow.cc, - DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc, - DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/find.cc, - DLD-FUNCTIONS/kron.cc, DLD-FUNCTIONS/log.cc, - DLD-FUNCTIONS/minmax.cc, DLD-FUNCTIONS/qz.cc, - DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/sort.cc: Sprinkle with - OCTAVE_QUIT. - - * DLD-FUNCTIONS/odessa.cc (Fodessa): Correctly extract bsub from - function arg. - - 2002-11-04 John W. Eaton - - * cutils.c (octave_vsnprintf): Handle C99 snprintf semantics. - - * oct-obj.h (octave_value_list::operator =): Copy names too. - (octave_value_list::octave_value_list (const octave_value_list&)): - Likewise. - - 2002-11-01 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.39. - - * variables.cc (generate_struct_completions): Temporarily reset - discard_error_messages and error_state - (looks_like_struct): Temporarily reset Vwarning option, - error_state, and discard_error_messages. - - * pt-idx.cc (tree_index_expression::eval_error): Now const. - (tree_index_expression::get_struct_index): Require valid identifier. - (tree_index_expression::make_arg_struct, - tree_index_expression::rvalue, tree_index_expression::lvalue): - Handle possible error from get_struct_index. - - * utils.cc (valid_identifier): Move here from load-save.cc. - * utils.h: Provide decl. - - * input.cc (generate_possible_completions): Call - command_editor::filename_completion_desired here. - (generate_possible_completions): Don't generate struct completions - if text contains directory separator or "..". - - 2002-10-31 John W. Eaton - - * DLD-FUNCTIONS/odessa.cc (odessa_user_f, odessa_user_j, - odessa_user_b): Reorder args for consistency with other solvers. - (Fodessa): Use extract_function to set args. - (odessa_user_j): Rename from odessa_user_mf. - - * DLD-FUNCTIONS/fsolve.cc (fsolve_user_function, fsolve_user_jacobian): - Print warning if user returns complex value. - * DLD-FUNCTIONS/quad.cc (quad_user_function): Likewise. - * DLD-FUNCTIONS/lsode.cc (lsode_user_function, lsode_user_jacobian): - Likewise. - * DLD-FUNCTIONS/dassl.cc (dassl_user_function, dassl_user_jacobian): - Likewise. - * DLD-FUNCTIONS/dasrt.cc (dasrt_user_f, dasrt_user_cf, dasrt_user_j): - Likewise. - * DLD-FUNCTIONS/daspk.cc (daspk_user_function, daspk_user_jacobian): - Likewise. - - * DLD-FUNCTIONS/daspk.cc (daspk_user_jacobian): New function. - (Fdaspk): Handle extracting Jacobian from function argument. - - * DLD-FUNCTIONS/fsolve.cc (fsolve_user_function): New function. - (Ffsolve): Handle extracting Jacobian from function argument. - - * Makefile.in (%.oct): Depend on octave$(EXEEXT) so that octave - will be built before any .oct files. - (all): Depend on stamp-oct-links. - (octave$(EXEEXT)): Don't depend on stamp-oct-links. - - * ov-base.cc (octave_base_value::subsasgn): Handle default numeric - case here. - * ov-base-mat.cc (octave_base_matrix::subsasgn): Delete. - - 2002-10-30 John W. Eaton - - * Makefile.in (OCT_LINK_DEPS): Add $(BLAS_LIBS), $(FFTW_LIBS), and - $(FLIBS). - - 2002-10-29 John W. Eaton - - * version.h (OCTAVE_VERSION): Now 2.1.38. - - * utils.cc (octave_vformat): Get return value from - streambuf::vform. - - * DLD-FUNCTIONS/fsolve.cc (Ffsolve): Always return solution. - Don't barf on nargout == 3. - - * pt-idx.h (tree_index_expression::dyn_field): New data member. - * pt-idx.cc (tree_index_expression::tree_index_expression - (tree_expression*, tree_expression*, int, int)): New constructor. - (tree_index_expression::append (tree_expression*)): New function. - (tree_index_expression::get_struct_index): New function. - (tree_index_expression::make_arg_struct): Handle dynamic fields. - (tree_index_expression::rvalue): Likewise. - (tree_index_expression::lvalue): Likewise. - - * parse.y (make_indirect_ref (tree_expression*, tree_expression*)): - New function. - (indirect_ref_op): New non-terminal. - (postfix_expr): Use it. - Recognize dynamic struct field references. - (parsing_indir): Delete unused non-terminal. - - * lex.l ("("): Set lexer_flags.looking_at_indirect_ref to false here. - - * pt-idx.cc (tree_index_expression::name): Simplify. - - 2002-10-28 John W. Eaton - - * oct-conf.h.in (OCTAVE_CONF_HAVE_DLOPEN_API, - OCTAVE_CONF_HAVE_LOADLIBRARY_API, OCTAVE_CONF_HAVE_SHL_LOAD_API): - Delete. - * toplev.cc (octave_config_info): Delete them from the struct - - * load-save.cc (read_ascii_data): Use octave_read_double and - octave_read_complex so that we handle Inf, NaN, and NA. - (read_mat_ascii_data): Likewise. - (save_ascii_data): Use octave_write_double andoctave_write_complex. - - 2002-10-25 John W. Eaton - - * toplev.cc (octave_config_info): Rename WITH_DYNAMIC_LINKING to - ENABLE_DYNAMIC_LINKING. - * oct-conf.h.in: Likewise. - * mkbuiltins: Likewise. - * fn-cache.cc (file_name_cache_elt::update): Likewise. - * Makefile.in: Likewise. - - 2002-10-24 John W. Eaton - - * cutils.c (octave_vsnprintf): Buffer and buffer size now static. - * utils.cc (octave_vformat): Don't free buffer returned from - octave_vsnprintf here. - - * ov-usr-fcn.cc (va_arg, va_start, vr_val): Only print warning - once per session. - - * ov-mapper.cc (octave_mapper::apply): Don't try real_type case if - arg is a string and we have a ch_map_fcn. - - * Makefile.in: Add $(LIBKPATHSEA) to $(OCTAVE_LIBS) if - $(INCLUDE_LINK_DEPS) is false, not if $(SHARED_LIBS) is false. - - 2002-10-23 John W. Eaton - - * DLD-FUNCTIONS/daspk.cc (daspk): Use set_options, not copy. - * DLD-FUNCTIONS/dasrt.cc (dasrt): Likewise. - * DLD-FUNCTIONS/dassl.cc (dassl): Likewise. - * DLD-FUNCTIONS/fsolve.cc (fsolve): Likewise. - * DLD-FUNCTIONS/lsode.cc (lsode): Likewise. - * DLD-FUNCTIONS/odessa.cc (Fodessa): Likewise. - * DLD-FUNCTIONS/quad.cc (Fquad): Likewise. - - 2002-10-22 John W. Eaton - - * oct-map.cc (Octave_map::assign): Fix typo in resizing. - - * pt-loop.cc (tree_complex_for_command::eval): Only return list - for val if struct array has more than one element. - (tree_simple_for_command::eval): Likewise. - - * ov-struct.cc (octave_struct::print_raw): Don't create - octave_list directly, use octave_value (const octave_value_list&) - constructor instead. - Call print_with_name for tmp, not val(0). - - * version.h (OCTAVE_VERSION): Now 2.1.37. - (OCTAVE_CONTRIB_STATEMENT): New macro. - (OCTAVE_STARTUP_MESSAGE): Use it. - - 2002-10-17 John W. Eaton - - * data.cc (fill_matrix): If nargin is zero, use val, not 0.0. - - * main.c: New file. - * octave.h: New file. - * octave.cc (octave_main): Rename from main. - Include octave.h. - * Makefile.in (OBJECTS): Add octave.o, builtins.o, and ops.o to - the list. - (octave): Depend on and link main.o, not octave.o, builtins.o, and - ops.o (they are now in liboctinterp). - (DEP_5): Add main.c here. - - * oct-conf.h.in: No need to substitute OCTAVE_CONF_OCTAVE_LITE. - * toplev.cc (octave_config_info): Likewise, don't include it in - struct. - - * mkbuiltins: Remove check for OCTAVE_LITE, since it is now - implied by WITH_DYNAMIC_LINKING. - * Makefile.in: Likewise, replace tests for OCTAVE_LITE with tests - for WITH_DYNAMIC_LINKING instead. - - * oct-conf.h.in: Use OCTAVE_CONF_HAVE_DLOPEN_API, - OCTAVE_CONF_HAVE_LOADLIBRARY_API, and - OCTAVE_CONF_HAVE_SHL_LOAD_API instead of OCTAVE_CONF_WITH_DL and - OCTAVE_CONF_WITH_SHL. - * toplev.cc (octave_config_info): Likewise. - - 2002-10-16 John W. Eaton - - * help.cc (display_help_text): Quote output file name for Cygwin. - - * Makefile.in (install-lib): Don't bother with versions for - $(SHLBIN) files. - - * help.cc (display_help_text): Match zero or more comment - characters instead of one or more. - - * Makefile.in (install-oct): Process files from $(DLD_DEF_FILES), - not $(DLD_SRC). Look for them in current directory, not $(srcdir). - - 2002-10-15 John W. Eaton - - * ov-mapper.cc (octave_mapper::apply): Handle real and complex - types first. If the arg is something else, try ch_map_fcn if it - is defined. - - 2002-10-15 Paul Kienzle - - * Makefile.in: If building shared but not static libs, only set - XERBLA to the location of the pic object file if FPICFLAG is - defined. - - 2002-10-14 John W. Eaton - - * DLD-FUNCTIONS/minmax.cc, DLD-FUNCTIONS/getrusage.cc, data.cc, - file-io.cc, ov-base.cc, ov-bool-mat.cc, ov-ch-mat.cc, - ov-complex.cc, ov-cx-mat.cc, ov-range.cc, ov-re-mat.cc, - ov-re-nd-array.cc: Change all uses of octave_Inf, octave_NA, and - octave_NaN to be calls to lo_ieee_Inf_value, lo_ieee_NA_value, and - lo_ieee_NaN_value instead of using the constants directly to avoid - linking problem with Cygwin. - - * Makefile.in (install): No need to use cd to create links. - - 2002-10-14 Paul Kienzle - - * Makefile.in: Merge liboctave with liboct-readline and - liboct-pathsearch. - Use link dependencies for shared libs if INCLUDE_LINK_DEPS. - (LIBRARIES): If doing shared libs, include versioned library in list. - (liboctinterp.$(SHLEXT), liboctinterp.$(SHLEXT_VER)): Reverse - actions -- build unversioned library, symbolic link adds version - info. - (install, uninstall): Handle link and load forms of the library - separately. - - * toplev.cc (octave_config_info): Remove LIBOCT_READLINE and - LIBOCT_PATHSEARCH, add LIBREADLINE. - * oct-conf.h.in: Likewise. - - 2002-10-11 John W. Eaton - - * lex.l (handle_identifier): Don't enter token in local symbol - table if the following token is a dot and it looks like a binary - operator. - (force_local_variable): If name is not a variable, clear it before - defining. - - * oct-procbuf.cc (Vkluge_procbuf_delay): Make default 0 for all - systems. - - * octave.cc (execute_startup_files, initialize_pathsearch): - Use file_ops::dir_sep_str instead of OCTAVE_DIR_SEP_STR. - (main): Use file_ops::dir_sep_chars instead of OCTAVE_DIR_SEP_CHARS. - - * ov-re-mat.cc (octave_matrix::convert_to_str): Warn for out of - range conversions. For negative values, set to 0. - * ov-scalar.cc (octave_scalar:convert_to_str): Likewise. - - * mappers.cc (xabs): New static function. - (install_mapper_functions): Use it for abs for character matrices. - Handle ch_map_flag separately from can_ret_cmplx_for_real in - all uses of DEFUN_MAPPER. - * defun.h (DEFUN_MAPPER): Handle ch_map_flag separately from - can_ret_cmplx_for_real. - * defun-int.h (DEFUN_MAPPER_INTERNAL): Likewise. - * mkbuiltins: Likewise. - * mkgendoc: Likewise. - * ov-mapper.cc (octave_mapper::apply): Use ch_map_flag and - can_ret_cmplx_for_real instead of flag. - * ov-mapper.h (octave_mapper::ch_map_flag): Rename from flag. - (octave_mapper::can_ret_cmplx_for_real): New data member. - (octave_mapper::octave_mapper): Handle it here. - - 2002-10-10 John W. Eaton - - * octave.cc (execute_startup_files): Don't forget directory - separator for local initfile. - - * move-if-change: Delete. - * Makefile.in (DISTFILES): Delete it from the list. - - 2002-10-09 John W. Eaton - - * Makefile.in: Use $(EXEEXT) and $(BUILD_EXEEXT) as appropriate. - - * pt-plot.cc (Vgnuplot_binary): Use GNUPLOT_BINARY as default. - - * octave.cc (execute_startup_files): - Use octave_env::getcwd instead of "./". - Use OCTAVE_DIR_SEP_STR instead of "/". - (initialize_pathsearch): Use OCTAVE_DIR_SEP_STR instead of /. - (main): Look for OCTAVE_DIR_SEP_CHARS, not '/'. - - 2002-10-08 John W. Eaton - - * Makefile.in (gendoc): Use $(BUILD_CXX), not $(CXX). - - 2002-10-07 John W. Eaton - - * utils.cc (octave_sleep): Cast result of modf to unsigned int. - - 2002-10-07 Paul Kienzle - - * sighandlers.cc (my_friendly_exit): If kill is unavailable, use - raise. - - 2002-10-06 John W. Eaton - - * sysdep.cc (CYGWIN_init): New function. - (sysdep_init) [__CYGWIN__]: Call it. - - * pt-plot.cc (subplot::handle_plot_data): Surround file names in - single quotes, not double (for Windows). - (do_external_plotter_cd): Likewise. - - 2002-10-03 John W. Eaton - - * cutils.c (octave_usleep): Call octave_sleep, not sleep. - - * utils.cc (octave_sleep (double)): New function. - * utils.h: Provide decl. - * sysdep.cc (Fpause, Fsleep): Use it. - - * cutils.c (do_octave_usleep): Merge with octave_usleep. - (octave_usleep): Make it work for Windows systems. From Paul - Kienzle . - - 2002-10-03 Paul Kienzle - - * cutils.c (octave_usleep): Make it work for Windows systems. - - * toplev.cc (Fsystem): Error message if fork is not available. - - 2002-10-02 John W. Eaton - - * cutils.c (octave_sleep): Handle Windows, which may not have - sleep, but should have Sleep. - - * oct-conf.h.in (OCTAVE_CONF_SED): Add an entry for SED. - * toplev.cc (octave_config_info): Likewise. - * Makefile.in (oct-gperf.h): Use $(SED), not sed. - - 2002-09-27 John W. Eaton - - * file-io.cc (fopen_mode_to_ios_mode): Set ios::ate instead of - ios::app for "a+" mode. - * oct-stream.cc (octave_stream::mode_as_string): Recognize - ios::ate, not ios::app as "a+" mode. - (octave_stream::mode_as_string): Use parens since | has lower - precedence than ==. - - 2002-09-26 Paul Kienzle - - * sysdep.cc: Include conio.h if it exists. - (octave_kbhit): Rename from kbhit. Implement with _kbhit if it - exists. Change all callers. - * cutils.c (octave_sleep): New function. - Change all callers of sleep to use octave_sleep instead. - - 2002-09-26 John W. Eaton - - * BaseSLList.cc, BaseSLList.h, Cell.cc, Cell.h, DLList.cc, - DLList.h, Map.cc, Map.h, OPERATORS/op-b-b.cc, - OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc, OPERATORS/op-cell.cc, - OPERATORS/op-chm.cc, OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, - OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc, - OPERATORS/op-cs-cs.cc, OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc, - OPERATORS/op-fil-b.cc, OPERATORS/op-fil-bm.cc, - OPERATORS/op-fil-cm.cc, OPERATORS/op-fil-cs.cc, - OPERATORS/op-fil-lis.cc, OPERATORS/op-fil-m.cc, - OPERATORS/op-fil-rec.cc, OPERATORS/op-fil-s.cc, - OPERATORS/op-fil-str.cc, OPERATORS/op-list.cc, - OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc, - OPERATORS/op-m-s.cc, OPERATORS/op-range.cc, OPERATORS/op-s-cm.cc, - OPERATORS/op-s-cs.cc, OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc, - OPERATORS/op-str-str.cc, SLList.cc, SLList.h, SLStack.cc, - SLStack.h, Stack.cc, Stack.h, c-file-ptr-stream.cc, - c-file-ptr-stream.h, comment-list.cc, comment-list.h, oct-map.cc, - oct-map.h, oct-obj.cc, oct-obj.h, ov-base-mat.cc, ov-base-mat.h, - ov-base-nd-array.cc, ov-base-nd-array.h, ov-base-scalar.cc, - ov-base-scalar.h, ov-base.cc, ov-base.h, ov-bool-mat.cc, - ov-bool-mat.h, ov-bool.cc, ov-bool.h, ov-builtin.cc, ov-builtin.h, - ov-cell.cc, ov-cell.h, ov-ch-mat.cc, ov-ch-mat.h, ov-colon.cc, - ov-complex.cc, ov-complex.h, ov-cs-list.cc ov-cs-list.h, - ov-cx-mat.cc, ov-cx-mat.h, ov-dld-fcn.cc, ov-dld-fcn.h, ov-fcn.cc, - ov-fcn.h, ov-file.cc, ov-file.h, ov-list.cc, ov-list.h, - ov-mapper.cc, ov-mapper.h, ov-range.cc, ov-range.h, ov-re-mat.cc, - ov-re-mat.h, ov-re-nd-array.cc, ov-re-nd-array.h, ov-scalar.cc, - ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, ov-struct.cc, - ov-struct.h, ov-typeinfo.cc, ov-typeinfo.h, ov-usr-fcn.cc, - ov-usr-fcn.h, ov-va-args.cc, ov.cc, ov.h, procstream.cc, - procstream.h, pt-arg-list.cc, pt-arg-list.h, pt-assign.cc, - pt-assign.h, pt-binop.cc, pt-binop.h, pt-bp.cc, pt-bp.h, - pt-cell.cc, pt-cell.h, pt-check.cc, pt-check.h, pt-cmd.cc, - pt-cmd.h, pt-colon.cc, pt-colon.h, pt-const.cc, pt-const.h, - pt-decl.cc, pt-decl.h, pt-except.cc, pt-except.h, pt-exp.cc, - pt-exp.h, pt-id.cc, pt-id.h, pt-idx.cc, pt-idx.h, pt-jump.cc, - pt-jump.h, pt-loop.cc, pt-loop.h, pt-mat.cc, pt-mat.h, pt-misc.cc, - pt-misc.h, pt-plot.cc, pt-plot.h, pt-pr-code.cc, pt-pr-code.h, - pt-select.cc, pt-select.h, pt-stmt.cc, pt-stmt.h, pt-unop.cc, - pt-unop.h, pt.cc, pt.h, symtab.cc, symtab.h, token.cc, token.h, - unwind-prot.cc, unwind-prot.h: - If __GNUG__, use pragma interface/implementation. Allow this to - be turned off by defining NO_PRAGMA_INTERFACE_IMPLEMENTATION. - - 2002-09-26 Paul Kienzle - - * mappers.cc (install_mapper_functions): Install erf, not xerf. - Install erfc, not xerfc. - - * pt-bp.cc (tree_breakpoint::visit_unwind_protect_command): - Rename lst1 and lst2 to avoid dlgs.h conflict. - - * parse.y: Replace TEXT with STRING to avoid winnt.h conflict. - * lex.l: Ditto. - - * sysdep.cc (raw_mode): Non-fatal warning if raw_mode is not - supported. - - * sighandlers.cc: Don't define handlers for non-existent signals. - - * utils.cc: Don't include unneeded termio headers. - - 2002-09-19 John W. Eaton - - * BaseSLList.cc, BaseSLList.h, Cell.cc, Cell.h, DLList.cc, - DLList.h, Map.cc, Map.h, OPERATORS/op-b-b.cc, - OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc, OPERATORS/op-cell.cc, - OPERATORS/op-chm.cc, OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, - OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc, - OPERATORS/op-cs-cs.cc, OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc, - OPERATORS/op-fil-b.cc, OPERATORS/op-fil-bm.cc, - OPERATORS/op-fil-cm.cc, OPERATORS/op-fil-cs.cc, - OPERATORS/op-fil-lis.cc, OPERATORS/op-fil-m.cc, - OPERATORS/op-fil-rec.cc, OPERATORS/op-fil-s.cc, - OPERATORS/op-fil-str.cc, OPERATORS/op-list.cc, - OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc, - OPERATORS/op-m-s.cc, OPERATORS/op-range.cc, OPERATORS/op-s-cm.cc, - OPERATORS/op-s-cs.cc, OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc, - OPERATORS/op-str-str.cc, SLList.cc, SLList.h, SLStack.cc, - SLStack.h, Stack.cc, Stack.h, c-file-ptr-stream.cc, - c-file-ptr-stream.h, comment-list.cc, comment-list.h, oct-map.cc, - oct-map.h, oct-obj.cc, oct-obj.h, ov-base-mat.cc, ov-base-mat.h, - ov-base-nd-array.cc, ov-base-nd-array.h, ov-base-scalar.cc, - ov-base-scalar.h, ov-base.cc, ov-base.h, ov-bool-mat.cc, - ov-bool-mat.h, ov-bool.cc, ov-bool.h, ov-builtin.cc, ov-builtin.h, - ov-cell.cc, ov-cell.h, ov-ch-mat.cc, ov-ch-mat.h, ov-colon.cc, - ov-complex.cc, ov-complex.h, ov-cs-list.cc ov-cs-list.h, - ov-cx-mat.cc, ov-cx-mat.h, ov-dld-fcn.cc, ov-dld-fcn.h, ov-fcn.cc, - ov-fcn.h, ov-file.cc, ov-file.h, ov-list.cc, ov-list.h, - ov-mapper.cc, ov-mapper.h, ov-range.cc, ov-range.h, ov-re-mat.cc, - ov-re-mat.h, ov-re-nd-array.cc, ov-re-nd-array.h, ov-scalar.cc, - ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, ov-struct.cc, - ov-struct.h, ov-typeinfo.cc, ov-typeinfo.h, ov-usr-fcn.cc, - ov-usr-fcn.h, ov-va-args.cc, ov.cc, ov.h, procstream.cc, - procstream.h, pt-arg-list.cc, pt-arg-list.h, pt-assign.cc, - pt-assign.h, pt-binop.cc, pt-binop.h, pt-bp.cc, pt-bp.h, - pt-cell.cc, pt-cell.h, pt-check.cc, pt-check.h, pt-cmd.cc, - pt-cmd.h, pt-colon.cc, pt-colon.h, pt-const.cc, pt-const.h, - pt-decl.cc, pt-decl.h, pt-except.cc, pt-except.h, pt-exp.cc, - pt-exp.h, pt-id.cc, pt-id.h, pt-idx.cc, pt-idx.h, pt-jump.cc, - pt-jump.h, pt-loop.cc, pt-loop.h, pt-mat.cc, pt-mat.h, pt-misc.cc, - pt-misc.h, pt-plot.cc, pt-plot.h, pt-pr-code.cc, pt-pr-code.h, - pt-select.cc, pt-select.h, pt-stmt.cc, pt-stmt.h, pt-unop.cc, - pt-unop.h, pt.cc, pt.h, symtab.cc, symtab.h, token.cc, token.h, - unwind-prot.cc, unwind-prot.h: - Use USE_PRAGMA_INTERFACE_IMPLEMENTATION instead of __GNUG__ to - decide whether to use the interface/implementation pragmas. - - 2002-09-18 John W. Eaton - - * load-save.cc: Undo previous change. - - * ov-struct.cc (octave_struct::subsasgn): Ensure that indexed - object is not shared before calling subsasgn. - - 2002-09-04 John W. Eaton - - * load-save.cc: Use % instead of # as comment character in ascii - data files. - - 2002-08-17 Mumit Khan - - * c-file-ptr-stream.h (c_file_ptr_buf::c_file_ptr_buf): Add Intel - C++ runtime support. - - * Cell.h, gripes.cc, ov-base-scalar.cc, ov-colon.cc, ov-fcn.cc, - ov-file.cc, ov-mapper.h, ov-va-args.cc, token.cc, xpow.cc, - OPERATORS/op-b-b.cc, OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc, - OPERATORS/op-cell.cc, OPERATORS/op-chm.cc, OPERATORS/op-cm-cm.cc, - OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, - OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-cs.cc, OPERATORS/op-cs-m.cc, - OPERATORS/op-cs-s.cc, OPERATORS/op-fil-b.cc, OPERATORS/op-fil-bm.cc, - OPERATORS/op-fil-cm.cc, OPERATORS/op-fil-cs.cc, - OPERATORS/op-fil-lis.cc, OPERATORS/op-fil-m.cc, - OPERATORS/op-fil-rec.cc, OPERATORS/op-fil-s.cc, - OPERATORS/op-fil-str.cc, OPERATORS/op-list.cc, OPERATORS/op-m-cm.cc, - OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc, OPERATORS/op-m-s.cc, - OPERATORS/op-range.cc, OPERATORS/op-s-cm.cc, OPERATORS/op-s-cs.cc, - OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc, OPERATORS/op-str-str.cc, - TEMPLATE-INST/Array-sym.cc, TEMPLATE-INST/Array-tc.cc, - TEMPLATE-INST/Map-tc.cc, TEMPLATE-INST/SLList-expr.cc, - TEMPLATE-INST/SLList-tc.cc, TEMPLATE-INST/SLList-tm.cc, - TEMPLATE-INST/SLStack-sym.cc: Make the implementation of - octave_value_list visibile for template instantiation. - - 2002-08-17 John W. Eaton - - * DLD-FUNCTIONS/dasrt.cc: Include not . - - * pager.h: Include lo-sstream.h and use macros instead of using - strstreambuf class directly. - - * load-save.cc (read_mat_ascii_data): Handle istrstream here too. - - * procstream.h (procstream::procstream): Also accept std::string arg. - (iprocstream::iprocstream, iprocstream::open): Likewise. - (oprocstream::oprocstream, oprocstream::open): Likewise. - (procstreambase::procstreambase, procstreambase::open): Likewise. - - * pt-plot.cc (gnuplot_terminal_type): Now std::string&, not char*. - (send_to_plot_stream): Likewise, for cmd arg. - - * pt-plot.h, pt-plot.cc: Include lo-sstream.h and use macros - instead of using strstream classes directly. - * oct-strstrm.h: Likewise. - * error.h, error.cc: Likewise. - * oct-stream.h, oct-stream.cc: Likewise. - * lex.l: Likewise. - * toplev.cc: Likewise. - * utils.cc: Likewise. - * pt.cc: Likewise. - * pr-output.cc: Likewise. - * ov-list.cc: Likewise. - * ov-cs-list.cc: Likewise. - * ov-cell.cc: Likewise. - * load-save.cc: Likewise. - * help.cc: Likewise. - * dirfns.cc: Likewise. - - 2002-08-15 Paul Kienzle - - * input.cc (octave_read): Do a better job of buffering. - - 2002-08-15 John W. Eaton - - * Makefile.in (DLD_DEF_FILES): New macro. - (DEF_5): Delete. - (DEF_4): Now only includes $(SOURCES). - (DEF_FILES): Append $(DLD_DEF_FILES) here. - (stamp-oct-links): Pass $(DLD_DEF_FILES) to mk-oct-links instead - of a list of source files. - * mk-oct-links: Work on .df files instead of .cc files. - - * parse.y (case_list): Allow it to be empty. - - * ov.cc, ov.h (octave_value::int_vector_value): New function. - - 2002-08-14 John W. Eaton - - * Makefile.in (OCTAVE_LIBS): Only include $(LIBKPATHSEA) if not - using shared libraries. - - * ov.cc (octave_value::octave_value (const octave_value_list&, bool)): - Don't forget to assign rep. - - 2002-08-12 John W. Eaton - - * lex.l: Warn for various Matlab-incompatibilities. - No longer accept <> for NOTEQ. - (gripe_matlab_incompatible): New function. - (maybe_gripe_matlab_incompatible_comment): Likewise. - (gripe_matlab_incompatible_continuation): Likewise. - (gripe_matlab_incompatible_operator): Likewise. - (warn_matlab_incompatible): New function. - (Vwarn_matlab_incompatible): New static variable. - (symbols_of_lex): Add a DEFVAR for it. - - - * file-io.cc (fopen_mode_to_ios_mode): Default value is std::ios::in. - Return std::ios::openmode instead of int. - - 2002-08-10 John W. Eaton - - * DLD-FUNCTIONS/dasrt.cc (DASRT_ABORT1, DASRT_ABORT2): - "##" pastes tokens, not strings. - - * DLD-FUNCTIONS/odessa.cc: Add std:: qualifiers as needed. - - 2002-08-09 John W. Eaton - - * variables.cc (Fisglobal): Rename from Fis_global. - * file-io.cc (Fisstream): Rename from Fis_stream. - * data.cc (Fisbool): Rename from Fis_bool. - (Fiscomplex): Rename from Fis_complex. - (Fislist): Rename from Fis_list. - (Fismatrix): Rename from Fis_matrix. - (Fisstruct): Rename from Fis_struct. - - * parse.y (switch_case): Make list of command optional. - - 2002-08-08 John W. Eaton - - * pr-output.cc (pr_max_internal): Use octave_is_NaN_or_NA instead - of xisnan. - (pr_min_internal): Likewise. - (output_max_field_width): Likewise. - (output_precision): Likewise. - (pr_any_float): Handle NA. - * mappers.cc (Fisna, F_is_nan_or_na): New functions. - * data.cc (symbols_of_data): New constant, NA. - - 2002-08-07 John W. Eaton - - * pt-binop.h (tree_binary_expression::is_binary_expression): - New function, return true. - (tree_boolean_expression::is_boolean_expression): New function, - return true. - * pt-exp.h (tree_expression::is_binary_expression): New function. - (tree_expression::is_boolean_expression): Likewise. - * parse.y (EXPR_OR_OR): Now lower precedence than EXPR_AND_AND. - (EXPR_OR): Now lower precedence than EXPR_AND. - (make_boolean_op): Maybe warn about change in precedence. - (make_binary_op): Likewise. - (Vwarn_precedence_change): New static variable. - (warn_precedence_change): New function. - (Vwarn_precedence_change): New DEFVAR. - - 2002-08-05 John W. Eaton - - * data.cc (ANY_ALL): Improve arg checks. - - 2002-08-04 John W. Eaton - - * ov.h (octave_value::assign_op): New enum values, op_pow_eq and - op_el_pow_eq. - * ov.cc (octave_value::assign_op_as_string): Handle them here. - (ocatave_value::op_eq_to_binary_op): And here. - * parse.y (POW_EQ, EPOW_EQ): New tokens. - (assign_expr): Handle them here too. - (make_assign_op): And here. - - * lex.l: Recognize {POW}= and {EPOW}=. - - 2002-08-02 John W. Eaton - - * ov-base-scalar.h (octave_base_scalar::all): New int arg. - (octave_base_scalar::any): Likewise. - * ov-range.h (octave_range::all): Likewise. - (octave_range::any): Likewise. - - * Makefile.in (doc-files): Use mv, not move-if-change here. - - * variables.cc (symbol_exist): New function. - (Fexist): Use it. Handle optional type arg. Make return codes - more compatible with Matlab. - - * data.cc (ANY_ALL): New macro. - (Fany, Fall): Replace guts with ANY_ALL. - - 2002-08-01 John W. Eaton - - * data.cc (Fall, Fany): Handle optional DIM argument. - - * ov.h (octave_value::any): New arg, dim. - (octave_value::all): Likewise. - * ov-base.h (octave_base_value::any): Likewise. - (octave_base_value::all): Likewise. - * ov-base-mat.h (octave_base_matrix::any): Likewise. - (octave_base_matrix::all): Likewise. - - * Makefile.in: Use $@-t instead of $@.t. - (doc-files): Use move-if-change when creating doc-files. - - * error.cc (warning): Don't print warning backtrace at top level. - - * ov-cell.cc (octave_cell::print_raw): Print empty dimensions too. - (octave_cell::print_name_tag): Don't print new line if cell is empty. - - * octave.cc (intern_argv): Don't install __argv__. - - * defun-int.h (UNDERSCORIFY): Delete. - (DEFCONST_INTERNAL): Don't install double underscore versions of - constants since they aren't really needed. - (DEFCONSTX_INTERNAL): Likewise. - - 2002-07-31 John W. Eaton - - * symtab.cc (symbol_table::clear (void)): Clear all records. - (symbol_table::clear (const std::string&)): Delete second arg. - Clear any symbol that matches, regardless of type. - - * symtab.h (symbol_table::variable_name_list): New function. - (symbol_table::global_variable_name_list): Likewise. - (symbol_table::user_function_name_list): Likewise. - - * symtab.h, symtab.cc (symbol_table::clear_variables): New function. - (symbol_table::clear_functions): Likewise. - (symbol_table::clear_globals): Likewise. - (symbol_table::clear_variable): New function. - (symbol_table::clear_function): Likewise. - (symbol_table::clear_global): Likewise. - (symbol_table::clear_variable_pattern): New function. - (symbol_table::clear_function_pattern): Likewise. - (symbol_table::clear_global_pattern): Likewise. - - * variables.cc (name_matches_any_pattern): Rename from - var_matches_any_pattern. - (is_local_variable): New static inline function. - (maybe_warn_exclusive): Likewise. - (do_clear_all): Likewise. - (do_clear_functions): Likewise. - (do_clear_globals): Likewise. - (do_clear_variables): Likewise. - (do_clear_function): Likewise. - (do_clear_global): Likewise. - (do_clear_variable): Likewise. - (do_clear_symbol): Likewise. - (do_clear_function_pattern): Likewise. - (do_clear_global_pattern): Likewise. - (do_clear_variable_pattern): Likewise. - (do_clear_symbol_pattern): Likewise. - (do_clear_functions): Likewise. - (do_clear_functions): Likewise. - (do_clear_globals): Likewise. - (do_clear_variables): Likewise. - (do_clear_symbols): Likewise. - (do_matlab_compatible_clear): Likewise. - (CLEAR_OPTION_ERROR): New macro. - (Fclear): Rewrite for Matlab compatibility and to cope with new - symbol table semantics. - - 2002-07-30 John W. Eaton - - * symtab.cc (symbol_table::clear): Simply clear everything. - (symbol_table::clear_functions, symbol_table::clear_globals, - symbol_table::clear_all): New functions. - - * symtab.h (symbol_record::symbol_def::next_elem): Delete. - (symbol_record::symbol_def::symbol_def): Delete intializer. - - * symtab.h, symtab.cc (symbol_record::push_def): Delete. - (symbol_record::remove_top_def): Delete. - (symbol_record::replace_all_defs): Delete. - (symbol_record::hides_fcn): Delete. - (symbol_record::hides_builtin): Delete. - - * symtab.h (symbol_table::~symbol_table): Call clear before - deleting the table. - - * variables.cc (initialize_symbol_tables): Create fbi_sym_tab too. - (Fexist): Look in fbi_sym_tab, not global_sym_tab. - - * parse.y (function_symtab): Rename from global_symtab. - Set curr_sym_tab to fbi_sym_tab, not global_sym_tab. - Change all uses of global_symtab to be function_symtab instead. - (frob_function): Rename and look for function name in fbi_sym_tab, - not global_sym_tab. - (parse_fcn_file): Clear function name from fbi_sym_tab, not - global_sym_tab. - - * load-save.cc (save_vars): Look for built-in vars in fbi_sym_tab. - * symtab.cc (symbol_record::link_to_builtin_variable): Likewise. - * variables.cc (is_builtin_variable): Likewise. - (bind_ans): Likewise. - (bind_builtin_constant): Likewise. - (bind_builtin_variable): Likewise. - (builtin_string_variable): Likewise. - (builtin_real_scalar_variable): Likewise. - (builtin_any_variable): Likewise. - (is_text_function_name): Likewise, for functions. - (force_link_to_function): Likewise. - (is_builtin_function_name): Likewise. - (is_mapper_function_name): Likewise. - (is_valid_function): Likewise. - (Fclear): Likewise. - (F__print_symtab_info__): Likewise. - * defun.cc (print_usage): Likewise. - (install_builtin_mapper): Likewise. - (install_builtin_function): Likewise. - (install_dld_function): Likewise. - (Falias): Likewise. - * dynamic-ld.cc (clear_function): Likewise. - * variables.cc (do_who): Likewise, for built-ins and functions. - (link_to_builtin_or_function): Likewise. - * help.cc (LIST_SYMBOLS): Likewise. - (make_name_list): Handle fbi_sym_tab too. - - * variables.cc (fbi_sym_tab): New symbol table. - * variables.h (fbi_sym_tab): Provide decl. - - 2002-07-29 John W. Eaton - - * symtab.h (symbol_record::alias): Delete unused arg force. - Change all callers. - - * variables.cc (link_to_global_variable): Give local variable - global value. - - * pt-id.cc (tree_identifier::link_to_global): Warn about global - variables that have been defined before being declared global. - for a global variable to be used before it is declared global. - * pt-decl.cc (tree_global_command::do_init): Handle possible error - from tree_identifier::link_to_global. - - 2002-07-25 John W. Eaton - - * ov.cc (silent_functions, Vsilent_functions): Move here. - (octave_value::print_with_name): Don't print anything if we are - evaluating a function and Vsilent_functions is true. - - * pt-stmt.cc: From here. - (symbols_of_pt_stmt): Delete. - (tree_statement_list::eval): Don't bother with Vsilent_functions here. - - 2002-07-24 John W. Eaton - - * Makefile.in (OPT_HANDLERS): New targets. - (doc-files): New target. - (gendoc.cc): Depend on doc-files, not $(DOC_FILES). - - * DLD-FUNCTIONS/daspk.cc, DLD-FUNCTIONS/dasrt.cc, - DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/fsolve.cc, - DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/odessa.cc - DLD-FUNCTIONS/quad.cc: Replace option handling code with include - directive. - - 2002-07-22 John W. Eaton - - * pt-loop.cc (tree_simple_for_command::eval): Once we know the RHS - is a matrix type check for real_type, not real_matrix. - - 2002-07-19 John W. Eaton - - * DLD-FUNCTIONS/quad.cc (quad): Cope with changes to Quad constructors. - - 2002-07-17 John W. Eaton - - * DLD-FUNCTIONS/daspk.cc (Fdaspk): Also return istate and error - message. Only generate error if user is not at least requesting - the istate output. - * DLD-FUNCTIONS/dasrt.cc (Fdasrt): Likewise. - * DLD-FUNCTIONS/dassl.cc (Fdassl): Likewise. - * DLD-FUNCTIONS/lsode.cc (Fodessa): Likewise. - - 2002-07-16 John W. Eaton - - * DLD-FUNCTIONS/dasrt.cc (Fdasrt): No need to find ng here. - (dasrt_user_j): New function. - (Fdasrt): Handle Jacobian function. - - * DLD-FUNCTIONS/dassl.cc (dassl_user_jacobian): New function. - (Fdassl): Handle Jacobian function. - - * DLD-FUNCTIONS/dasrt.cc: New file. - * Makefile.in (DLD_XSRC): Add it to the list. - - 2002-07-12 John W. Eaton - - * lex.l (@): Handle new token. - * parse.y (constant): Accept function handle syntax. - (make_constant): Create function handles here. - - 2002-07-11 John W. Eaton - - * defun.cc (check_version): Improve error message. - * error.cc (warning): Only print backtrace once per warning series. - Print backtrace before warning messages. - - 2002-07-10 John W. Eaton - - * lex.l (maybe_unput_comma): Also handle '{' as an indexing op. - - * DLD-FUNCTIONS/odessa.cc: New file. - * Makefile.in (DLD_XSRC): Add it to the list. - - 2002-07-05 John W. Eaton - - * pt-assign.cc (tree_multi_assignment::rvalue): Call - lhs->nargout_count, not lhs->length. - - * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): - Handle cs-list objects here. - (tree_argument_list::nargout_count): New function. - * pt-arg-list.h: Provide decl. - - * ov-cs-list.h, ov-cs-list.cc: New files. - * Makefile.in: Add them to the appropriate lists. - - * ov.cc: Include ov-cs-list.h. - New arg, is_cs_list for constructor taking octave_value_list arg. - (install_types): Register ov_cs_list. - * ov.h (octave_value::is_cs_list): New function. - * ov-base.h (octave_base_value::is_cs_list): Likewise. - * ov-cell.cc (octave_cell::subsref): Return cs-list for "{" indexing. - - 2002-07-04 John W. Eaton - - * pt-mat.cc (Vempty_list_elements_ok): Default value is now 1. - * octave.cc (maximum_braindamage): No longer need to set value here. - - * ov-usr-fcn.cc (Fva_arg, Fva_start, Fvr_val): Warn that these - functions are deprecated. - * lex.l (EL): Warn that `...' is deprecated. - * ov-usr-fcn.cc (octave_user_function::varargout_to_vr_val, - octave_user_function::has_varargout): New functions. - (Fvr_val): Ensure varargout is not defined. - (octave_user_function::do_multi_index_op): Copy values from - varargout here. - - 2002-07-03 John W. Eaton - - * ov-usr-fcn.h (octave_user_function::varargin_sr): New data member. - * ov-usr-fcn.cc (octave_user_function::octave_user_function): - Initialize it. - (bind_automatic_vars): Handle varargin. Change all callers. - - * octave.gperf: Handle varargin and varargout as keywords. - * lex.l (is_keyword): Likewise. - (IDENT): Move all actions into handle_identifier. - (handle_identifier): Now takes no args. - - * lex.l (EL): Return VARARGIN or VARARGOUT, not ELLIPSIS. - * parse.y (param_list): Use VARARGIN instead of ELLIPSIS. - (return_list): Use VARARGOUT instead of ELLIPSIS. - - * data.cc (make_diag const octave_value&, const octave_value&): - Allow first arg to be 1x0 or 0x1. - - 2002-07-02 John W. Eaton - - * defaults.cc (loadpath): Comment out previous change. - - * DLD-FUNCTIONS/fsolve.cc (Ffsolve): Return message too. Only - generate error if user is not at least requesting the info output. - - * DLD-FUNCTIONS/lsode.cc (Flsode): Fix typos in setting return value. - - 2002-07-01 John W. Eaton - - * oct-stream.cc (printf_value_cache::double_value): If the current - element is empty and there are no more elements in the value list, - set curr_state to conversion_error. - - * input.cc (initialize_command_input): Include (, ), {, and } as - word break characters. - - * variables.cc (looks_like_struct): Don't evaluate text if it is a - function. From Ben Sapp . - - * symtab.h (symbol_record::is_function): Also return true if - symbol is a text function or a mapper function. - - 2002-06-28 John W. Eaton - - * defaults.cc (loadpath): Warn if loadpath doesn't contain - leading, trailing, or doubled colon. - - * pt-decl.cc (tree_static_command::eval, tree_global_command::eval): - Call error for any non-zero value of error_state. - * pt-select.cc (tree_if_command::eval): Likewise. - * pt-loop.cc (tree_while_command::eval_error): Don't check error_state. - (tree_do_until_command::eval_error): Likewise. - (tree_simple_for_command::eval_error): Likewise. - (tree_complex_for_command::eval_error): Likewise. - * pt-assign.cc (tree_multi_assignment::eval_error): Likewise. - (tree_simple_assignment::eval_error): Likewise. - * pt-idx.cc (tree_index_expression::eval_error): Likewise. - * pt-colon.cc (tree_colon_expression::eval_error): Likewise. - (tree_colon_expression::rvalue): Delete rendundant error_state check. - - 2002-06-26 John W. Eaton - - * ov-mapper.cc (MAPPER_LOOP, MAPPER_LOOP_1, MAPPER_LOOP_2): New macros. - (octave_mapper::apply): Use them to inline the mapper loops. - - * pt-unop.cc (tree_prefix_expression::rvalue): Ensure that the - operand is defined for op_incr and op_decr. - (tree_postfix_expression::rvalue): Likewise. - From Ben Sapp . - - 2002-06-25 John W. Eaton - - * ov-mapper.cc (octave_mapper::apply): Exit loops on error. - - 2002-06-03 John W. Eaton - - * ov-struct.cc (octave_struct::print_raw): Print field names with - data types if Vstruct_levels_to_print is 0. - (octave_struct::print_name_tag): Don't emit newline if - Vstruct_levels_to_print is negative. - * ov.cc (struct_levels_to_print): Allow negative values too. - - 2002-05-24 John W. Eaton - - * DLD-FUNCTIONS/lsode.cc (Flsode): Also return istate and error - message. Only generate error if user is not at least requesting - the istate output. - - * load-save.cc (hdf5_import_multidim, hdf5_check_attr, - hdf5_callback_data, hdf5_read_next_data, read_hdf5_data, - add_hdf5_data): Use 0, not NULL in calls to HDF routines. - - * oct-procbuf.cc (octave_procbuf::open): Use NULL, not 0 as last - arg in call to execl. - - * debug.cc (get_user_function): Initialise dbg_fcn to 0, not NULL. - - 2002-05-23 John W. Eaton - - * DLD-FUNCTIONS/lsode.cc (LSODE_options::da_set_opt_mf, - LSODE_options::da_get_opt_mf): New typedefs. - (LSODE_OPTIONS::da_set_fcn, LSODE_OPTIONS::da_get_fcn): New fields. - (lsode_option_table): Fill them in. - (set_lsode_option (const Array&)): New function. - (print_lsode_option_list): Handle vector options. - (show_lsode_option_list): Likewise. - (Flsode_options): Likewise. - - * DLD-FUNCTIONS/lsode.cc (LSODE_options::s_set_opt_mf, - LSODE_options::s_get_opt_mf): New typedefs. - (LSODE_OPTIONS::s_set_fcn, LSODE_OPTIONS::s_get_fcn): New fields. - (lsode_option_table): Fill them in. - (set_lsode_option (const std::string&)): New function. - (print_lsode_option_list): Handle string options. - (show_lsode_option_list): Likewise. - (Flsode_options): Likewise. - - 2002-05-22 John W. Eaton - - * c-file-ptr-stream.h (c_file_ptr_buf::fclose): New function. - (c_file_ptr_buf::c_file_ptr_buf): Use it as default argument - instead of extern "C" fclose function. - (i_c_file_ptr_stream::i_c_file_ptr_stream): Likewise. - (o_c_file_ptr_stream::o_c_file_ptr_stream): Likewise. - * oct-stdstrm.h (octave_istdiostream::octave_istdiostream): Likewise. - (octave_istdiostream::create): Likewise. - * oct-stdstrm.h (octave_ostdiostream::octave_ostdiostream): Likewise. - (octave_ostdiostream::create): Likewise. - - * oct-prcstrm.cc (cxx_pclose): New static function. - (octave_iprocstream::octave_iprocstream): Pass it to - octave_istdiostream constructor instead of extern "C" pclose function. - (octave_oprocstream::octave_oprocstream): Pass it to - octave_ostdiostream constructor instead of extern "C" pclose function. - - * debug.cc (Fdbtype): Use C++ strings, not C strings. - - 2002-05-22 Mumit Khan - - * debug.cc: Include cstdlib instead of stdlib.h. Include cstring. - (dbtype): Use strchr instead of index. - * TEMPLATE-INST/Array-tc.cc (Array::resize_fill_value): - Fix template specialization syntax. - - 2002-05-17 Mumit Khan - - * c-file-ptr-stream.h (OCTAVE_STD_FILEBUF): New macro to handle - various forms of extensions to std::filebuf. - (c_file_ptr_buf::c_file_ptr_buf): Use. - * pt-idx.cc (tree_index_expression::tree_index_expression): Remove - default arguments are from definition. - * symtab.cc (SYMBOL_DEF::print_info): Add std::. - (symbol_record::print_info): Likewise. - (symbol_table::print_info): Likewise. - - 2002-05-16 John W. Eaton - - * oct-map.cc (Octave_map::assign): Resize RHS if it is shorter - than existing struct array. - - * ov-cell.cc (octave_cell::subsasgn): If an error has occurred, - skip final assignment step. - * ov-list.cc (octave_list::subsasgn): Likewise. - * oct-lvalue.cc (octave_lvalue::assign): Add parens to clarify intent. - (octave_lvalue::do_unary_op): Likewise. - - * parse.y (function_end): Also accept end of input as end of - function if input is coming from an eval string. - - * pr-output.cc (pr_any_float): Don't convert -0 to 0. - - 2002-05-15 John W. Eaton - - * input.cc (generate_completion): If it looks like we are - completing a struct, set completion append char to '\0'. - - * variables.cc (generate_struct_completions): Temporarily set - warnings off here. - - * error.cc (warning): Don't do anything if Vdebug_option == "off". - Only print backtrace if Vdebug_option == "backtrace". - (handle_message): Now returns a string containing the text of the - formatted message. Change all callers. - (Fwarning): Now a text-style function. Handle Matlab-compatible - warning options. - (Flasterr, Flastwarn, set_warning_option): New functions. - (Vlast_error_message, Vlast_warning_message, Vwarning_frequency, - Vwarning_option): New static variables. - (vwarning): Set Vlast_warning_message here too. - (verror): Set Vlast_error_message here too. - - 2002-05-14 John W. Eaton - - * ov.h (octave_value::get_count): Now const. - - * ov.h, ov.cc (octave_value::do_non_const_unary_op, - octave_value::assign): Idx is now a list of octave_value_list - objects. - - * ov-base.cc, ov-base.h (octave_base_value::do_struct_elt_index_op, - octave_base_value::struct_elt_ref): Delete. - * ov-struct.cc, ov-struct.h (octave_sruct::do_struct_elt_index_op, - octave_struct::struct_elt_ref): Delete. - * ov.cc, ov.h (octave_value::do_struct_elt_index_op, - octave_value::struct_elt_ref, octave_value::assign_struct_elt, - octave_value::convert_and_assign, octave_value::try_assignment, - octave_value::try_assignment_with_conversion, - octave_value::simple_assign): Delete. - - * parse.y (make_index_expression): Type is now a single - character. Change all callers. If expr is already an index - expression, append index to it. - (make_indirect_ref): Likewise. - - * pt-pr-code.cc (octave_print_internal (std::ostream&, const - Cell&, bool, int)): Now just a dummy function, panic if called. - - * pt-idx.cc (tree_index_expression::make_arg_struct): New function. - (tree_index_expression::type): Delete enum, rename from itype, now - a string. - (tree_index_expression::arg_nm): Now a list of string_vector objects. - (tree_index_expression::idx): Now a list of tree_argument_list* - objects. - (tree_index_expression::is_index_expression): Always return true. - (tree_index_expression::apend, make_value_list, make_subs_cell): - New functions. - - * pt-pr-code.cc (visit_index_expression): Handle new definition of - tree_index_expression object. - * pt-check.cc (visit_index_expression): Likewise. - * pt-bp.cc (visit_index_expression): Likewise. - - * ov-usr-fcn.h (octave_user_function::restore_args_passed): - Clear args_passed even if nothing was saved. - - * ov-base.cc (octave_base_value::subsasgn, - octave_base_value::map_keys, octave_base_value::print_info): - New functions. - - * ov.h, ov.cc (octave_value::map_keys, octave_value::print_info, - octave_value::subsref, octave_value::subsasgn, - octave_value::numeric_assign, octave_value::next_subsref): - New functions. - (octave_value::empty_conv): New static function. - (octave_value (octave_value *, int)): New arg, count. - - * ov-base-mat.cc (octave_base_matrix::subsref, - octave_base_matrix::subsasgn): New functions. - * ov-base-mat.h: Provide decls. - - * ov-builtin.cc (octave_builtin::subsref): New function. - * ov-builtin.h: Provide decl. - - * ov-range.cc (octave_range::subsref): New function. - * ov-range.h: Provide decl. - - * ov-cell.cc (octave_cell::subsref, octave_cell::subsasgn, - octave_cell::list_value, octave_cell::print, - octave_cell::print_raw, octave_cell::print_name_tag): New functions. - * ov-cell.h: Provide decls. - - * ov-struct.cc (octave_struct::dotref, octave_struct::subsref, - octave_struct::subsasgn, gripe_invalid_index, - gripe_invalid_index_for_assignment, grip_invalid_index_type, - gripe_failed_assignment): New functions. - (octave_struct::numeric_conv): New static function. - * ov-struct.h: Provide decls. - (octave_struct::is_constant): Return true. - (octave_struct::map_keys): New function. - - * ov-list.cc (octave_list::subsref, octave_list::subsasgn): - New functions. - * ov-list.h: Provide decls. - - * ov-usr-fcn.cc (octave_user_function::subsref, - octave_user_function::print_symtab_info): New functions. - * ov-usr-fcn.h: Provide decl. - - * ov-mapper.cc (octave_mapper::subsref): New function. - * ov-mapper.h: Provide decl. - - * ov-base.cc (octave_base_value::subsref, - octave_base_value::subsasgn): New functions. - * ov-base.h: Provide decls. - - * ov-base.cc (octave_base_value::do_index_op): New arg, resize_ok. - * ov-base-mat.cc (octave_base_matrix::do_index_op): Likewise. - * ov-base-nd-array.cc (octave_base_nd_array::do_index_op): Ditto. - * ov-bool-mat.cc (octave_bool::do_index_op): Ditto. - * ov-str-mat.cc (octave_char_matrix_str::do_index_op): Ditto. - * ov-range.cc (octave_range::do_index_op): Ditto. - * ov-list.cc (octave_list::do_index_op): Ditto. - * ov.cc (octave_value::do_index_op): Ditto. - - * ov-base-mat.cc (octave_base_matrix::print_info): New function. - - * ov-base-mat.h (octave_base_matrix::empty_clone): New function. - * ov-base-nd-array.h (octave_base_nd_array::empty_clone): Ditto. - * ov-base.h (octave_base_value::empty_clone): Ditto. - * ov-bool-mat.h (octave_bool::empty_clone): Ditto. - * ov-ch-mat.h (octave_char_matrix::empty_clone): Likewise. - * ov-colon.h (octave_magic_colon::empty_clone): Likewise. - * ov-complex.h (octave_complex::empty_clone): Likewise. - * ov-cx-mat.h (octave_complex_matrix::empty_clone): Likewise. - * ov-fcn.cc (octave_function::empty_clone): Likewise. - * ov-file.h (octave_file::empty_clone): Likewise. - * ov-range.h (octave_range::empty_clone): Likewise. - * ov-list.h (octave_list::empty_clone): Likewise. - * ov-re-mat.h (octave_matrix::empty_clone): Likewise. - * ov-re-nd-array.h (octave_double_nd_array::empty_clone): Likewise. - * ov-str-mat.h (octave_char_matrix_str::empty_clone): Likewise. - * ov-struct.h (octave_struct::empty_clone): Likewise. - * ov-va_args.h (octave_all_va_args::empty_clone): Likewise. - * ov.h (octave_value::empty_clone): Likewise. - - * ov-base-mat.h (octave_base_matrix::clone): Now const. - * ov-base-nd-array.h (octave_base_nd_array::clone): Likewise. - * ov-base.h (octave_base_value::clone): Likewise. - * ov-bool-mat.h (octave_bool::clone): Likewise. - * ov-ch-mat.h (octave_char_matrix::clone): Likewise. - * ov-colon.h (octave_magic_colon::clone): Likewise. - * ov-complex.h (octave_complex::clone): Likewise. - * ov-cx-mat.h (octave_complex_matrix::clone): Likewise. - * ov-fcn.h (octave_function::clone): Likewise. - * ov-file.h (octave_file::clone): Likewise. - * ov-range.h (octave_range::clone): Likewise. - * ov-list.h (octave_list::clone): Likewise. - * ov-re-mat.h (octave_matrix::clone): Likewise. - * ov-re-nd-array.h (octave_double_nd_array::clone): Likewise. - * ov-str-mat.h (octave_char_matrix_str::clone): Likewise. - * ov-struct.h (octave_struct::clone): Likewise. - * ov-va_args.h (octave_all_va_args::clone): Likewise. - * ov.h (octave_value::clone): Likewise. - - * oct-lvalue.cc (octave_lvalue::assign, octave_lvalue::set_index, - octave_lvalue::do_unary_op): Idx is now a list of indices. Simplify. - * oct-lvalue.h (octave_lvalue::value): Simplify. - (octave_lvalue::struct_elt_names): Delete data member. - (octave_lvalue::type): Now string - Update decls. - - * pt-exp.h (tree_expression::is_indirect_ref): - Delete virtual function. - - * pt-plot.cc (subplot::extract_plot_data): Use subsref, instead of - do_index_op. - - * pt-stmt.cc (tree_statement::eval): Don't try to avoid binding - ans for structure references. - - * symtab.cc (symbol_record::symbol_def::print_info): Rename from - symbol_record::symbol_def::dump_symbol_info. - (symbol_record::print_info): Rename from - symbol_record::dump_symbol_info. Now const.. - (symbol_record::print_symbol_info_line): Now const. - (symbol_table::print_info): Rename from print_stats. Accept - ostream arg. Now const. Print more info. - * symtab.h: Update decls. - - * toplev.cc (octave_config_info): Indexing a map now returns a - list, but we only want to return the first element. - - * variables.cc (generate_struct_completions, looks_like_struct): - Simplify using eval_string. - (F__print_symtab_info__): Rename from F__dump_symtab_info__. - Handle "top-level" and individual function names in addition to - "global". - (F__print_symbol_info__): Rename from F___dump_symbol_info__. - - * octave.cc (intern_argv): Built-in variable argv is now a cell array. - - * ov-complex.cc (valid_scalar_indices): Delete. - * ov-scalar.cc (valid_scalar_indices): Delete. - - * oct-obj.cc (octave_value_list::valid_scalar_indices): New function. - (octave_value_list::index): New arg, resize_ok. - * oct-obj.h: Provide decls. - - * oct-map.cc (Octave_map::keys): Rename from make_name_list. - Change all uses. - (Octave_map::assign, Octave_map::index): New functions. - * oct-map.h: Provide decls. - - * data.cc (Fstruct_contains): Use map_value instead of - do_struct_elt_index_op. - - * Cell.h (Cell (const Array2&, int, int)): - New constructor. - (Cell::resize_fill_value): New static function. - - * input.cc (initialize_command_input): Set basic and completer - word break characters. - - 2002-05-07 John W. Eaton - - * ov.h (octave_value::subsref): New function. - * ov-base.cc (octave_base_value::subsref): Likewise. - - * ov-struct.cc (octave_struct::print_raw): Print scalar struct - arrays more compactly. - - * DLD-FUNCTIONS/time.cc (extract_tm): Handle new struct array def. - - * oct-map.cc (Octave_map::array_len): New data member. - (Octave_map::operator[], Octave_map::contsnts): Return - octave_value_list, not Octave_value. Change callers as necessary. - (Octave_map::assign): New function. - (Octave_map::array_length): New fucntion. - * oct-obj.cc (octave_value_list::assign): New function. - - 2002-05-06 John W. Eaton - - * TEMPLATE-INST/Map-oct-obj.cc: New file. - * Makefile.in (TI_XSRC): Add it to the list. - - * oct-map.h (Octave_map): Make CHMap a data - member instead of deriving from CHMap, in - preparation for structure arrays. - - * pt-indir.h, pt-indir.cc: Delete. - - * pt-all.h: Don't include pt-indir.h. - - * Makefile.in (PT_SRC): Delete pt-indir.cc from the list. - (PT_INCLUDES): Delete pt-indir.h from the list. - - * pt-walk.h (tree_walker::visit_indirect_ref): Delete. - * pt-pr-code.h, pt-pr-code.cc (tree_print_code::visit_indirect_ref): - Likewise. - * pt-check.h, pt-check.cc (tree_checker::visit_indirect_ref): Likewise. - * pt-bp.h, pt-bp.cc (tree_breakpoint::visit_indirect_ref): Likewise. - - * pt-walk.h: Delete forward decl for tree_indirect_ref. - * variables.h: Likewise. - - * parse.y (make_indirect_ref): Return tree_index_expression, not - tree_indirect_ref. - - * pt-idx.h (tree_index_expression::struct_elt_name): New function. - - * pt-idx.cc (tree_index_expression::lvalue): Handle dot case too. - (tree_index_expression::name): Likewise. - (tree_index_expression rvalue (int)): Likewise. - (tree_index_expression::eval_error): Likewise. - * pt-pr-code.cc (visit_index_expression): Likewise. - * pt-bp.cc (tree_breakpoint::visit_index_expression): Likewise. - - * pt-idx.h (tree_index_expression::dot): New type enum element. - (tree_index_expression::expr_type): New function. - (tree_index_expression::tree_index_expression (tree_expression*, - const std::string&, int, int)): New constructor. - (tree_index_expression::is_index_expression): Return value is now - conditional on itype. - (tree_index_expression::is_indirect_ref): New function. - (tree_index_expression::lvalue_ok): Also return true if itype is dot. - - 2002-05-03 John W. Eaton - - * parse.y (ABORT_PARSE): Maybe restore symbol table context too. - - * pt-idx.h (tree_index_expression::type): New enum. - (tree_index_expression::etype): New data member. - * pt-idx.h (tree_index_expression::tree_index_expression): - New arg, t, to set type of index. - * parse.y (make_index_expression): Likewise. - Change all callers. - - * ov-base.cc (cell_conv): New conversion function. - (install_base_type_conversions): Install it. - Install conversion for indexed assignment of octave_cells to - undefined values. - - * TEMPLATE-INST/Array-tc.cc: Instantiate assign functions too. - (Array::resize_fill_value (void)): - Provide specialization for octave_value. - - * ov-cell.cc (octave_cell::assign (const octave_value_list&, - const octave_value&)): New function. - * Cell.h (Cell::Cell (const octave_value&)): New function. - - * OPERATORS/op-cell.cc (install_list_ops): Use DEFASSIGNANYOP_FN - and INSTALL_ASSIGNANYOP, not DEFASSIGNOP_FN and INSTALL_ASSIGNOP. - - 2002-05-03 Cai Jianming - - * OPERATORS/op-cell.cc: New file. - * Makefile.in (OP_XSRC): Include it in the list. - - * parse.y (cell): Return a cell type instead of Matrix type. - - * ov.cc (install_types): Install octave_cell type. - - * pr-output.cc (octave_print_internal): Handle Cells. - * pr-output.h (octave_print_internal): Provide decl. - - * ov-cell.h (octave_cell): Derive from octave_base_matrix. - * ov-cell.cc (do_index_op, assign, print, print_raw, - print_name_tag): Delete. - - * Cell.cc (allocator, index): Delete. - * Cell.h (Cell): Derive from Array2. - Most functions removed since we can use those from Array2 instead. - - 2002-05-02 Cai Jianming - - * ov-base-mat.cc (octave_base_matrix::assign): - New function. - * ov-base-mat.h (octave_base_matrix::assign): Provide decl. - * ov-bool-mat.cc (octave_bool_matrix::assign): Delete. - * ov-bool-mat.h (octave_bool_matrix:assign): Delete decl - * ov-cx-mat.cc (octave_complex_matrix::assign (const - octave_value_list& idx, const ComplexMatrix&)): Delete. - * ov-cx-mat.h (octave_complex_matrix:assign (const - octave_value_list& idx, const ComplexMatrix&)): Replace decl with - function. - * ov-re-mat.cc (octave_bool_matrix::assign): Delete. - * ov-re-mat.h (octave_bool_matrix:assign): Delete decl. - - 2002-05-02 Cai Jianming - - * OPERATORS/op-bm-b.cc: New file.x - * Makefile.in (OP_XSRC): Add it to the list. - - 2002-04-30 John W. Eaton - - * octave.cc (print_version_and_exit): Use - OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY, not - OCTAVE_NAME_AND_VERSION. - - * octave.cc (verbose_usage): - Use OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY, not - OCTAVE_NAME_VERSION_AND_COPYRIGHT. - - * version.h (OCTAVE_COPYING_STATEMENT, OCTAVE_WARRANTY_STATEMENT, - OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY, - X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS, - OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS, - OCTAVE_BUGS_STATEMENT): New macros. - (OCTAVE_STARTUP_MESSAGE): Define in terms of - X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS - to include bugs address and amplified warranty information. - - * DLD-FUNCTIONS/lsode.cc (Flsode): Delete unused variable nsteps. - - 2002-04-29 John W. Eaton - - * help.cc (additional_help_message): Use www.octave.org, not - www.che.wisc.edu/octave/octave.html. - * octave.cc (verbose_usage): Likewise. - - 2002-04-27 John W. Eaton - - * DLD-FUNCTIONS/daspk.cc: New file. - * Makefile.in (DLD_XSRC): Add it to the list. - - 2002-04-25 Paul Kienzle - - * DLD-FUNCTIONS/kron.cc: New file. - * Makefile.in (DLD_SRC): Add it to the list. - - 2002-04-22 John W. Eaton - - * parse.y (save_symtab): New non-terminal. Save current symbol - table context here. - (function_beg): Use it. - (symtab_context): New file-scope variable. - (recover_from_parsing_function): Restore symbol table context here. - - 2002-04-17 John W. Eaton - - * load-save.cc (get_lines_and_columns): Handle CRLF as line - separator in addition to LF. - - 2002-04-11 John W. Eaton - - * load-save.cc (hdf5_ofstream::hdf5_ofstream): - Explicitly List std::ostream(0) in constructor. - (hdf5_ifstream::hdf5_ifstream): - Explicitly List std::istream(0) in constructor. - (hdf5_fstreambase::hdf5_fstreambase): Use std::ios::setstate, not set. - (hdf5_fstreambase::close): Likewise. - (hdf5_fstreambase::open): Likewise. - - 2002-04-10 Ben Sapp - - * pt-stmt.cc (delete_breakpoint): List breakpoints if line < 0. - * debug.cc (get_user_function): Check symbol by name first. - (Fdbstop): Rename from Fdbg_set. - (Fdbclear): Rename from Fdbg_delete. - (Fdbstatus): Rename from Fdbg_list. - (Fdbg_where): Rename from Fdbwhere. - (do_dbtype, Fdbtype): New functions. - - 2002-04-10 Peter Van Wieren - - * load-save.cc (save_mat5_binary_element): Save elements of 2d - character matrices in proper order. - - 2002-04-09 Paul Kienzle - - * utils.cc (do_string_escapes): Handle \0 too. - (undo_string_escape): Likewise. - - 2002-04-04 John W. Eaton - - * toplev.cc (octave_config_info): Define struct member EXEEXT, not EXE. - * Makefile.in (install-bin): Use $(EXEEXT), not $(EXE). - * oct-conf.h.in (OCTAVE_CONF_EXEEXT): Define and substitute - OCTAVE_CONF_EXEEXT, not OCTAVE_CONF_EXE. - - 2002-04-03 Steven G. Johnson - - * DLD-FUNCTIONS/balance.cc: Use F77_FUNC instead of F77_FCN. - * DLD-FUNCTIONS/qz.cc: Likewise. - * DLD-FUNCTIONS/rand.cc: Likewise. - * octave.cc: Likewise. - * toplev.cc (Foctave_config_info): Delete use of FORTRAN_MAIN_FLAG. - * oct-conf.h.in: Delete use of OCTAVE_CONF_FORTRAN_MAIN_FLAG. - * syscalls.cc (mk_stat_map): - Use HAVE_STRUCT_STAT_ST_RDEV instead of HAVE_ST_RDEV. - Use HAVE_STRUCT_STAT_ST_BLKSIZE instead of HAVE_ST_BLKSIZE. - Use HAVE_STRUCT_STAT_ST_BLOCKS instead of HAVE_ST_BLOCKS. - - 2002-04-02 John W. Eaton - - * lex.l, lex.h (parser_end_of_input): New global variable. - (reset_parser): Reset it here. - * parse.y (input): Set it to TRUE on EOF. - (parse_and_executed): Save and restore it, check it to correctly - break out of parse-execute loop. - (parse_fcn_file): Likewise. - (eval_string): Likewise. - * toplev.cc (main_loop): Likewise. - - * parse.y (input): Call YYACCEPT for END_OF_INPUT. - Return no-op command for bare newline. - (parse_and_execute): Handle change in yyparse return value semantics. - - * toplev.cc (main_loop): Likewise. - - 2002-03-25 John W. Eaton - - * parse.y (parse_fcn_file): Call error if there is no input file. - (parse_and_execute (FILE *): Protect get_input_from_eval_string. - Set get_input_from_eval_string to false before calling yyparse. - * lex.l (reset_parser): Also skip yyrestart (stdin) if - reading_script_file is true. - - 2002-03-07 John W. Eaton - - * pt-loop.cc (evaluating_looping_command): New global. - (tree_while_command::eval): Protect evaluating_looping_command. - Set it to true while evaluating loop. - (tree_do_until_command::eval): Ditto. - (tree_simple_for_command::eval): Ditto. - (tree_complex_for_command::eval): Ditto. - * pt-loop.h (evaluating_looping_command): Provide decl. - * parse.y (parse_fcn_file): Protect get_input_from_eval_string. - Set get_input_from_eval_string to false before calling yyparse. - (make_break_command): Also check evaluating_looping_command. - (make_continue_command): Also check evaluating_looping_command. - (eval_string (const std::string&, bool, int&, int)): Loop over - yyparse to handle multi-line strings. - Move call to unwind_protect::run_frame to end of function. - Don't reset parser before calling yyparse. - Correctly handle return, break, and continue. - - * input.cc (input_from_eval_string_pending): New global variable. - (get_usr_input): Use it. - * input.h (input_from_eval_string_pending): Provide decl. - - 2002-03-06 John W. Eaton - - * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): - Don't unwind_protect num_named_args (it doesn't change on - recursive calls). - Do re-initialize curr_va_arg_number to num_named_args after - unwind_protecting. - - * ov-usr-fcn.h (octave_user_function::clear_args_passed): Delete. - (octave_user_function::saved_args): New data member. - (octave_user_function::save_args_passed): New function. - (octave_user_function::restore_args_passed): Ditto. - * ov-usr-fcn.cc (clear_args_passed): Delete. - (restore_args_passed): New function. - (octave_user_function::do_multi_index_op): Correctly save and - restore args passed for recursive calls. - - * TEMPLATE-INST/SLStack-ovl.cc: New file. - * Makefile.in: Add it to the list. - - 2002-02-22 John W. Eaton - - * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): - Handle define_all_return_values after function is evaluated. - From Paul Kienzle . - - * ov-scalar.cc (convert_to_str): Use octave_value (std::string) - constructor instead of octave_value (char *) constructor so that - setstr (0) will work. - - * pager.cc (octave_pager_buf::sync): Set pointer to beginning - of buffer after calling flush_currnt_contents_to_diary. - (octave_diary_buf::sync): Call eback only once. - - 2002-01-03 John W. Eaton - - * lex.l (.): Remove test for EOF since it is already handled - separately. - - 2001-12-05 John W. Eaton - - * load-save.cc (save_mat5_binary_element): - Extract dimensions directly from tc. - Handle ranges the same as real matrices. - - 2001-11-16 John W. Eaton - - * data.cc (DATA_REDUCTION): If no DIM arg, pass -1 to FCN. - - 2001-11-09 John W. Eaton - - * oct-conf.h.in (FFTW_LIBS, LD_CXX, LIBOCT_PATHSEARCH, - LIBOCT_READLINE, MKOCTFILE_LFLAGS): Substitute. - * toplev.cc (octave_config_info): Add them to the map. - - 2001-11-08 John W. Eaton - - * DLD-FUNCTIONS/lsode.cc (Flsode): Don't bother to give OUTPUT - matrix a size before calling integration function. - - 2001-11-06 John W. Eaton - - Makefile.in (OCTAVE_LIBS): Add $(LIBOCT_READLINE) and - $(LIBOCT_PATHSEARCH) to the list. - - 2001-10-08 John W. Eaton - - * DLD-FUNCTIONS/dassl.cc (dassl_user_function): Allow user - supplied RES function to return IDID as second value. - - 2001-07-23 John W. Eaton - - * parse.y: Clear help_buf after documenting function. - - 2001-06-29 Mumit Khan - - * defun-int.h (DEFINE_FUN_INSTALLER_FUN{2,3}): New macros. - (DEFINE_FUN_INSTALLER_FUN): Use. - * dynamic-ld.cc ({STRINGIFY, STRINGIFY1}): New macros. - (octave_dynamic_loader::mangle_name): Support dynamic linking - for GNU v3 and Sun C++ ABI. - - 2001-06-26 Mumit Khan - - * c-file-ptr-stream.h (c_file_ptr_buf::c_file_ptr_buf): Add GCC3 - libstdc++-v3 support. - * load-save.cc (save_mat5_binary_element): Cast arguments to the - correct type. - (save_ascii_data): Eliminate compiler warning. - * toplev.cc (system): Prefix std::. - - 2001-05-31 John W. Eaton - - * ov-cx-mat.cc: Deleve unnecessary instantiation of assign function. - * ov-re-mat.cc: Likewise. - * ov-re-nd-array.cc: Likewise. - * ov-str-mat.cc: Likewise. - * ov-bool-mat.cc: Likewise. - - * load-save.cc (save_ascii_data): When saving string data, get raw - string value for matrix row since there may be embedded nuls. - - * pt-mat.cc (Vstring_fill_char): No longer static. - * pt-mat.h: Provide declaration. - - 2001-05-17 John W. Eaton - - * octave.cc (initialize_pathsearch): Save initial value of the - TEXMFDBS environment variable here. - * toplev.cc (restore_texmfdbs_envvar): New function. - (Fsystem): Set TEXMFDBS back to original value before running - subprocesses. - - 2001-05-02 Mumit Khan - - * Makefile.in (octave): Add $(FFTW_LIBS). - - 2001-04-27 John W. Eaton - - * DLD-FUNCTIONS/sort.cc (mx_sort): Check for NaNs in comparisons. - - 2001-04-26 John W. Eaton - - * Makefile.in (OCTAVE_LIBS): Delete $(LIBREADLINE) from the list. - (octave): Delete TERMLIBS from link command. - * oct-conf.h.in: Delete references to LIBREADLINE, TERMLIBS. - * toplev.cc (octave_config_info): Delete entries for LIBREADLINE, - TERMLIBS. - - 2001-04-25 John W. Eaton - - * Makefile.in (install-lib): Don't use mk-libdir-link. - (install-inc): Don't use mk-includedir-link. - - 2001-04-19 John W. Eaton - - * parse.y (fold (tree_binary_expression *)): - Set discard_error_messages here instead of buffer_error_messages. - Don't add clear_global_error_variable to the unwind_protect stack. - (fold (tree_unary_expression *)): Likewise. - (finish_colon_expression): Likewise. - (finish_matrix): Likewise. - - * error.cc (panic): Set discard_error_messages to false here. - (verror): Return immediately if discard_error_messages is true. - - * error.cc (discard_error_messages): New global variable. - * error.h: Provide declaration. - - 2001-04-18 John W. Eaton - - * lex.l: If unexpected character is EOF, report EOF error instead - of invalid character error. - - 2001-04-18 Mumit Khan - - * load-save.cc (read_mat5_binary_element): Cast arguments to the - correct type when adding stream positions. - * DLD-FUNCTIONS/det.cc (det): Explicity create a Complex value to - work around a Sun C++ type conversion bug. - - 2001-04-17 John W. Eaton - - * symtab.cc (define_builtin_const): Don't call replace_all_defs - here. - - * error.cc (error_message_buffer): Now static. - * error.h (error_message_buffer): Delete extern declaration. - - 2001-03-29 John W. Eaton - - * DLD-FUNCTIONS/besselj.cc (besselh): Use K arg. - From: Thomas Stuart . - - * oct-stream.cc (get_size): Don't allow [Inf, N] as a size - specification for the read and scanf functions. - (get_size): SIZE is now an Array instead of a Matrix object. - (read): Likewise. Change all callers. - (scanf): Likewise. Change all callers. - - 2001-03-26 John W. Eaton - - * DLD-FUNCTIONS/det.cc (Fdet): Only return rcond if nargout > 1. - * DLD-FUNCTIONS/inv.cc (Finv): Only return rcond if nargout > 1. - - 2001-03-26 Paul Kienzle - - * DLD-FUNCTIONS/det.cc (Fdet): Suppress warning, but return rcond. - * DLD_FUNCTIONS/inv.cc (Finv): Return rcond if requested. - - 2001-02-28 John W. Eaton - - * pt.h (tree::break_statement): New static member. - (tree::break_function): Make const. - * pt.cc (tree::break_statement): Initialize here. - (tree::break_function): Make const. - * pb-bp.h (break_statement): Delete global varaible declaration. - * pt-bp.cc (break_statement): Delete global variable definition. - - * pt-bp.h (tree_breakpoint::bp_list): Rename from lst. - - * pt.h: Don't inlcude ov-usr-fcn.h. - Provide forward declaration of octave_user_function class. - - 2001-02-28 Ben Sapp - - * debug.cc (get_user_function): Simplify by using curr_function. - (Fdbg_where): New function. - (Fdbg_list): Now DLD_TEXT instead of DLD_FCN. - (Fdbg_set): Likewise. - (Fdbg_delete): Likewise. - - * pt-bp.h (break_statement): New global variable. - (MAYBE_DO_BREAKPOINT): Check for dbg_next and dbg_step. - Print line, column, and current statement. - * pt-bp.cc (break_statement): New global variable - (tree_breakpoint::visit_do_until_command): Return immediately if - we've already found the line. - (tree_breakpoint::visit_colon_expression): Set breakpoint info here. - (tree_breakpoint::visit_binary_expression): Recurse here when - checking for breakpoints. - - * debug.cc: Move here from DLD-FUNCTIONS/debug.cc. - * Makefile.in (DIST_SRC): Add it to the list. - (DLD_XSRC): Delete it from the list. - - * pt.h (tree::last_line, tree::break_function): New static members. - * pt.cc(tree::last_line, tree::break_function): Initialize them. - - * pt-cell.h (tree_cell::tree_cell): Accept line and column info. - * pt-mat.h (tree_matrix::tree_matrix): Likewise. - - * ov-usr-fcn.h (octave_user_function::sym_tab): Delete. - - * input.cc (get_user_input): Handle dbg_next. - Set tree:break_function and tree::last_line when doing dbg_step. - - 2001-02-28 John W. Eaton - - * lex.l (handle_string): Save line and column information in token. - (is_keyword): Save line and column information for plot style and - axes tokens. - - * toplev.cc (main_loop): Set retval to non-zero value if error - occurs when not interactive. - - 2001-02-26 John W. Eaton - - * parse.y (gobble_leading_white_space): Handle CRLF here too. - * lex.l (check_for_garbage_after_fcn_def): Likewise. - - * lex.l: Add numeric value of character to error message for - unrecognized characters. - - 2001-02-22 John W. Eaton - - * DLD-FUNCTIONS/minmax.cc (EMPTY_RETURN_CHECK): For empty matrix - args, make Octave's min and max behave like Matlab. - - 2001-02-18 John W. Eaton - - * OPERATORS/op-s-s.cc (el_or, el_and): Return bool value. - - 2001-02-14 John W. Eaton - - * pt-binop.cc (tree_boolean_expression::rvalue): - Don't cast result to double. - - * OPERATORS/op-b-b.cc: Allow & and | operators to return bool values. - - 2001-02-09 John W. Eaton - - * data.cc (DATA_REDUCTION): Undo previous change. - - 2001-02-13 Matthew W. Roberts - - * load-save.cc (Fload): Accept -4 as an alias for -v4 and -mat4-binary. - (Fsave): Likewise. - - 2001-02-13 John W. Eaton - - * lex.l (lexical_feedbac::init): - Initialize looking_at_matrix_or_assign_lhs too. - - 2001-02-09 John W. Eaton - - * data.cc (DATA_REDUCTION): Allow FCN(x,0) to be equivalent to FCN(x). - - 2001-02-06 Mumit Khan - - * oct-stream.cc (octave_scan): Partially implement and specialize - for char*. Delete the old template instantiations. - (BEGIN_S_CONVERSION): Use strings instead of ostrstreambuf. - (octave_base_stream::do_scanf): Pass correct parameter to - do_scan_conv. - - 2001-02-05 Mumit Khan - - * pr-output.cc (set_format): Add std:: namespace qualifier as - needed. - - * oct-stream.cc (octave_scan): Implement, and specialize for - char*. Delete the old template instantiations. - (BEGIN_S_CONVERSION): Use strings instead of ostrstreambuf. - (octave_base_stream::do_scanf): Pass correct parameter to - do_scan_conv. - - * Makefile.in (TEMPLATE_AR, TEMPLATE_ARFLAGS): Use to create - archive libraries containing templates. - - * c-file-ptr-stream.h: Include . Use instead of - - (c_file_ptr_buf::int_type): Compat typedef for non-ISO libstdc++. - (c_file_ptr_buf::{overflow, underflow, uflow, pbackfail): Use. - (c_file_ptr_buf::c_file_ptr_buf): Handle various compilers. - (c_file_ptr_buf::file_number): New member function. - (c_file_ptr_buf::fd): New private data. - (i_c_file_ptr_stream::i_c_file_ptr_stream): Initialize stream - correctly. - (o_c_file_ptr_stream::o_c_file_ptr_stream): Likewise. - * c-file-ptr-stream.cc - (c_file_ptr_buf::{overflow, underflow, uflow, pbackfail): Add - ISO-compliant EOF handling. - * oct-stream.cc (octave_base_stream::file_number): Use - c_file_ptr_buf::file_number to get underlying file descriptor. - - * comment-list.cc: Add missing class qualifier. - - * file-io.cc, load-save.cc, mappers.cc, oct-fstrm.cc, oct-fstrm.h, - oct-iostrm.cc, oct-iostrm.h, oct-stdstrm.cc, oct-stdstrm.h, - oct-stream.cc, oct-stream.h, oct-strstrm.cc, oct-strstrm.h, - ov-base-nd-array.cc, ov-base-scalar.h, ov-complex.cc, ov-cx-mat.cc, - pager.cc, pr-output.cc, procstream.h, pt-bp.h, utils.cc: - Add std:: namespace qualifier as needed, and replace - deprecated or invalid libstdc++-v2 names with standard ones - where appropriate. - - * DLD-FUNCTIONS/minmax.cc: Fix docstring. - - * oct-fstrm.cc (octave_fstream::octave_fstream): Maintain fix for - libstdc++-v2. - - * oct-stdstrm.cc (octave_ostdiostream::create): Remove default - parameter value in definition. - - * oct-stream.cc (octave_stream::mode_as_string): Don't assume - std::iso::openmode is an integral quantity. - - * pager.cc, procstream.h: Initialize streams correctly. - - * utils.cc: Use CXX_ISO_COMPLIANT_LIBRARY guard. - - * ov-base-nd-array.cc (idx_list_to_idx_array): Inline. - - * ov-base-scalar.h (octave_base_scalar::octave_base_scalar): Use - ``const ST& s'' instead of ST to workaround gcc3 complex bug. - - 2001-02-05 John W. Eaton - - * lex.l (next_token_is_bin_op): Remove Checks for spacing except - for ops that begin with +, - but are not ++, --, +=, or -=. - - 2001-02-02 John W. Eaton - - * input.cc (get_user_input): Handle dbg_cont and dbg_step here. - * debug.cc (Fdbg_cont): Delete. - * pt-bp.h (MAYBE_DO_BREAKPOINT): Check tree::break_next here. - * pt.h (tree::break_next): New static member. - * pt.cc: Initialize it. - - * parse.h (feval (const octave_value_list&, int)): - Set default value for nargout. - (feval (const std::string&, const octave_value_list&, int)): - Set default values for args and nargout. - - 2001-02-01 Ben Sapp - - * DLD-FUNCTIONS/debug.cc: New file. - * pt-bp.h, pt-bp.cc: New files, for breakpoints. - * Makefile.in: Add them to the appropriate lists. - - * pt-stmt.cc (tree_statement_list::set_breakpoint, - tree_statement_list::delete_breakpoint, - tree_statement_list::list_breakpoints): New functions. - - * pt.h (tree::break_point): New data member. - (tree::set_breakpoint, tree::delete_breakpoint, tree::is_breakpoint): - New virtual functions. - - * pt-mat.cc (tree_matrix::rvalue): Check for breakpoint here. - * pt-unop.cc (tree_prefix_expression::rvalue): Likewise. - (tree_postfix_expression::rvalue): Likewise. - * pt-loop.cc (tree_do_until_command::eval): Likewise. - (DO_LOOP): Likewise. - (tree_simple_for_command::eval): Likewise. - (tree_complex_for_command::eval): Likewise. - * pt-assign.cc (tree_simple_assignment::rvalue): Likewise. - * pt-binop.cc (tree_binary_expression::rvalue): Likewise. - (tree_boolean_expression::rvalue): Likewise. - * pt-cell.cc (tree_cell::rvalue): Likewise. - * pt-colon.cc (tree_colon_expression::rvalue): Likewise. - * pt-except.cc (tree_try_catch_command::eval): Likewise. - (tree_unwind_protect_command::eval): Likewise. - * pt-id.cc (tree_identifier::rvalue): Likewise. - (tree_identifier::lvalue): Likewise. - * pt-indir.cc (tree_indirect_ref::rvalue): Likewise. - * pt-jump.cc (tree_break_command::eval): Likewise. - (tree_continue_command::eval): Likewise. - (tree_return_command::eval): Likewise. - - 2001-01-29 John W. Eaton - - * Map.h, Map.cc (CHMap::operator = (const CHMap&)): New function. - (Map::operator = (const Map&)): Likewise. - (Map (const Map&)): Likewise. - - * OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-s.cc, - OPERATORS/op-m-cs.cc, OPERATORS/op-m-s.cc: - Make ldiv operator work for row vector by scalar ops. - - * OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-m.cc, - OPERATORS/op-s-cm.cc, OPERATORS/op-s-m.cc: - Make div operator work for scalar by column vector ops. - - 2001-01-17 John W. Eaton - - * parse.y (safe_fclose): Discard comments at the end of a file. - - 2001-01-16 John W. Eaton - - * error.cc (pr_where): Call pr_where_1 with two args, not one, to - avoid processing format escapes that might appear in formatted code. - - 2001-01-05 John W. Eaton - - * error.cc (vwarning): Write to output_buf, then send formatted - message to diary and error streams. - - 2001-01-02 John W. Eaton - - * ov-cx-mat.cc (octave_complex_matrix::try_narrowing_conversion): - Handle empty matrix dimensions correctly. - - 2000-12-14 John W. Eaton - - * pager.h (octave_pager_buf::diary_skip): New data member. - (octave_pager_buf::octave_pager_buf): Initialize it. - * pager.cc (octave_pager_buf::set_diary_skip): New function. - (octave_pager_stream::set_diary_skip): New function. - (octave_pager_buf::sync): Call flush_current_contents_to_diary - instead of octave_diary.write. - (octave_pager_buf::flush_current_contents_to_diary): Use - diary_skip, reset when done. - (open_diary_file): Call octave_stdout.set_diary_skip here. - - 2000-12-06 John W. Eaton - - * DLD-FUNCTIONS/minmax.cc (EMPTY_RETURN_CHECK): New macro. - (min, max): Use it. - - * DLD-FUNCTIONS/minmax.cc (MINMAX_BODY): New macro. If single arg - is empty, return empty matrix result and empty matrix for index. - (Fmin, Fmax): Use MINMAX_BODY, so we have consistent definition - for min and max functions. - - 2000-11-30 Joerg Specht - - * help.cc (display_help_text): Append new line at end of doc string. - - 2000-11-30 John W. Eaton - - * DLD-FUNCTIONS/lsode.cc (LSODE_ABORT1, LSODE_ABORT2): Omit `##' - in macro definition since they are not needed to paste strings - together and picky compilers choke on them. - * DLD-FUNCTIONS/quad.cc (QUAD_ABORT1, QUAD_ABORT2): Likewise. - * DLD-FUNCTIONS/fsolve.cc (FSOLVE_ABORT1, FSOLVE_ABORT2): Likewise. - * DLD-FUNCTIONS/dassl.cc (DASSL_ABORT1, DASSL_ABORT2): Likewise. - - 2000-11-29 John W. Eaton - - * mkbuiltins (XDEFUNX_INTERNAL): New macro. - * mkgendoc (XDEFUNX_INTERNAL): Likewise. - * defun-int.h (DEFUNX_INTERNAL): Use it. - - * defun.h (DEFUNX): New macro. - * defun-int.h (DEFUNX_INTERNAL, DECLARE_FUNX): New macro. - (DECLARE_FUN): Define in terms of DECLARE_FUNX. - - * mkdefs: Read and print one line at a time, so we can force - patterns to match only at the beginning of a line. - - * defun-int.h (UNDERSCORIFY): Omit `##' in macro definition since - they are not needed to paste strings together and picky compilers - choke on them. - - 2000-11-17 John W. Eaton - - * load-save.cc (save_ascii_data_for_plotting): New function. - * pt-plot.cc (save_in_tmp_file): Use it instead of save_ascii_data. - - * load-save.cc (save_ascii_data): Warn if saving Inf or NaN values. - New arg, infnan_warned. Use it to warn just once per set. - Now static. - (do_save): New arg, infnan_warned. Pass to save_ascii_data. - (save_vars): Initialize infnan_warned here, pass to do_save. - - 2000-11-16 Paul Kienzle - - * file-io.cc (Ffprintf): If no file id parameter, don't return - count of characters if nargout is 0 (for compatibility with - Matlab). - - 2000-11-16 Ben Sapp - - * DLD-FUNCTIONS/rand.cc (do_rand): Declare loop counter as - volatile int, not just volatile. - - 2000-10-31 John W. Eaton - - * load-save.cc (skip_comments): Allow % as comment character too. - (extract_keyword): Likewise. - - * Makefile.in (oct-gperf.h): Remove -a, -g, and -p flags for gperf. - - 2000-10-30 John W. Eaton - - * load-save.cc (do_load): Allow result to be returned instead of - inserting variables in the symbol table. Change patterned after - patch by Kian Ming Adam Chai . - - 2000-10-27 John W. Eaton - - * Makefile.in (ops.cc): Don't substitute BLAS_LIBS and LIBS here. - - * oct-conf.h.in (OCTAVE_CONF_SPECIAL_MATH_LIB): Delete. - (OCTAVE_CONF_BLAS_LIBS): Add. - * toplev.cc (octave_config_info): Likewise, add BLAS_LIBS and - remove SPECIAL_MATH_LIB from the struct. - - * parse.y (feval (const octave_value_list&, int)): Don't panic - while processing arg names if arg.length() and arg_names.length() - differ. - - 2000-10-12 Paul Kienzle - - * ov-cell.h (octave_cell::is_cell): New function. - - * pt-select.cc (equal): New static function. - (tree_switch_case::label_matches): Use it to compare case label - against arg. Handle cell arrays as case labels. - - 2000-10-12 John W. Eaton - - Change patterned after patch by Cai Jianming - to support for DIM arg in 2.0.x sources. - - * data.cc (DATA_REDUCTION): New macro. Handle second DIM arg here. - (Fcumprod): Replace function body with DATA_REDUCTION. - (Fcumsum): Likewise. - (Fprod): Likewise. - (Fsum): Likewise. - (Fsumsq): Likewise. - - 2000-10-10 John W. Eaton - - * error.cc (pr_where_2): New function. - (pr_where_1): Use it instead of error_1 to avoid setting error_state. - - 2000-10-02 John W. Eaton - - * xdiv.cc (xdiv): Warn if execution falls through to lssolve. - - 2000-09-06 John W. Eaton - - * utils.cc (FERRNO): New function (currently commented out). - - * c-file-ptr-stream.cc (c_file_ptr_buf::close): Call flush here. - (c_file_ptr_buf::~c_file_ptr_buf): Not here. - * c-file-ptr-stream.h (c_fie_ptr_buf::close_fcn): New typedef. - (c_file_ptr_buf::cf): New data member. Add default constructor arg. - (class c_file_ptr_buf): Derive from filebuf, not streambuf. - (i_c_file_ptr_stream, o_c_file_ptr_stream): Handle close function here. - * oct-procstrm.cc (octave_iprocstream, octave_oprocstream): Likewise. - (octave_iprocstream::do_close, octave_oprocstream::do_close): Delete. - * oct-stdstrm.cc (octave_base_stdiostream::~octave_base_stdiostream): - Don't do anything. - (octave_istdiostream::create): Handle close function here. - (octave_istdiostream::octave_istdiostream): Likewise. - (octave_ostdiostream::create): Likewise. - (octave_ostdiostream::octave_ostdiostream): Likewise. - (class octave_base_stdiostream): Don't cache FILE pointer here. - - 2000-09-01 John W. Eaton - - * syscalls.cc (Ffcntl): Don't assume that the file id passed in is - the same as the underlying system file id. - - 2000-08-22 John W. Eaton - - * parse.y: Use octave_time, not time. - - 2000-08-03 John W. Eaton - - * oct-stream.cc (printf_value_cache::double_value): Also set - curr_stat to conversion_error if there are no values at all. - - 2000-08-02 John W. Eaton - - * dirfns.cc (Flink, Fsymlink, Freadlink): New functions. - - 2000-08-01 John W. Eaton - - * load-save.cc (Vsave_header_format_string): New variable. - (symbols_of_load_save): DEFVAR it. - (save_header_format, default_save_header_format): New functions. - (write_header): Use Vsave_header_format_string here. - - 2000-07-28 John W. Eaton - - * pt-pr-code.h (tree_print_code::curr_print_indent_level, - (tree_print_code::beginning_of_line): No longer static. - (tree_print_code::tree_print_code): Initialize them here. - * pt-pr-code.cc: Not here. - - * pt-stmt.cc (tree_statement::eval): Set curr_statement here. - (tree_statement_list::eval): Not here. - - Debug-on-error stuff based on a patch submitted by Paul Kienzle - for 2.0.x. - - * error.cc (Vdebug_on_warning): New static flag variable. - (debug_on_warning): New function. - (symbols_of_warning): DEFVAR debug_on_warning. - (warning): Handle debug_on_warning here. - - * input.cc (do_keyboard): New function. - (Fkeyboard): Use it to do the real work. - * pt-stmt.cc (curr_statement): New static variable. - (tree_statement::eval): Save and restore it here. - * error.cc (Vdebug_on_error): New static flag variable. - (debug_on_error): New function. - (symbols_of_error): DEFVAR debug_on_error. - (pr_where, pr_where_1): New functions. - (error): Handle debug_on_error here. - - 2000-07-20 Joao Cardoso - - * Makefile.in (octave): Link with $(LD_CXX) instead of $(CXX) - - 2000-07-20 John W. Eaton - - * oct-stream.cc (octave_base_stream::oscanf): Advance to next - format element before attempting to pick up any trailing stuff. - - 2000-07-17 John W. Eaton - - * lex.l (next_token_is_bin_op): Don't recognize `..' as a binary op. - - * load-save.cc (get_file_format): Call read_mat5_binary_file_header - with third arg true instead of false, so we don't barf if the file - is not a matlab v5 binary file. - - 2000-07-14 John W. Eaton - - * Makefile.in (octave): Link to ../libcruft/blas-xtra/xerbla.o here. - - * octave.cc (main): Remove kluge to attempt linking our version of - xerbla. - - 2000-07-07 Steven G. Johnson - - * load-save.cc (have_h5giterate_bug): New file-scope variable. - (hdf5_read_next_data): Only increment current_item if - have_h5giterate_bug is true. - (read_hdf5_data): Set have_h5giterate_bug here. - Only increment hs.current_item if have_h5giterate_bug is true. - - 2000-07-05 John W. Eaton - - * c-file-ptr-stream.cc (c_file_ptr_buf::close): - Return -1 if file pointer is NULL. - Set file pointer to 0 after closing. - (c_file_ptr_buf::~c_file_ptr_buf): Call close after flushing. - - 2000-07-05 Steven G. Johnson - - * Makefile.in (BLAS_LIBS): Substitute here. - (octave): Use $(BLAS_LIBS) in the final link command. - - 2000-06-30 Steven G. Johnson - - * Makefile.in (octave): Link $(FLIBS) last. - * octave.cc (main): Force our own xerbla to be linked instead of - some system version. - - 2000-06-29 James R. Van Zandt - - * load-save.cc (load_save_format): New value, LS_MAT5_BINARY. - (arrayclasstype, mat5_data_type): New enums. - (read_mat5_binary_data): New function. - (read_mat5_tag): New function. - (read_mat5_binary_element): New function. - (read_mat5_binary_file_header): New function. - (get_file_format): Check for mat5 binary format too. - (do_load): Handle mat5 binary format. - (write_mat5_tag): New function. - (write_mat5_array): New function. - (class mat5_callback): New class. - (save_mat5_binary_element): New functnon. - (do_save): Handle mat5 binary format. - (write_header): Handle LS_MAT5_BINARY case too. - (save_user_variables): Handle LS_MAT5_BINARY case too. - (Fsave): Handle LS_MAT5_BINARY case too. - (Fload): Handle LS_MAT5_BINARY case too. - - 2000-06-29 Steven G. Johnson - - All of the following changes are protected by #ifdef HAVE_HDF5. - - * load-save.cc (load_save_format): New value, LS_HDF5. - (make_valid_identifier): New function. - (class hdf5_fstreambase, class hdf5_ifstream, class hdf5_ofstream): - New classes for reading and writing hdf5 data. - (hdf5_types_compatible): New function. - (hdf5_import_multidim): New function. - (hdf5_check_attr): New function. - (hdf5_read_next_data): New function. - (hdf5_make_complex_type): New function. - (hdf5_make_range_type): New function. - (read_hdf5_data): New function. - (get_file_format): Handle HDF5 format. - (do_load): Handle LS_HDF5 case. - (Fload): Handle HDF5 format. - (hdf5_add_attr): New function. - (save_type_to_hdf5): New function. - (add_hdf5_data): New function. - (do_save): Handle HDF5 format. - (get_default_save_format): Handle LS_HDF5 case. - (write_header): Handle LS_HDF5 case. - (save_user_variables): Handle HDF5 format. - (Fsave): Handle HDF5 format. - - 2000-06-28 John W. Eaton - - * help.cc (display_help_text): If writing to filter fails, send - unformatted text to output stream. - - 2000-06-27 John W. Eaton - - * OPERATORS/op-bm-bm.cc (eq): Define using mx_el_eq, not operator ==. - (ne): Likewise, use mx_el_ne, not operator !=. - - * pr-output.cc (Fdisp): Delete. - - 2000-06-26 John W. Eaton - - * pr-output.cc (float_format::float_format): Set default values - for width and precision to -1. - (operator << (ostream&, pr_formatted_float&): Set width and - precision if values are >= 0. - (set_real_format, set_real_matrix_format, set_range_format, - set_complex_format, set_complex_matrix_format): If we have all - integers, infinities, or nans, set precision equal to field width. - - * load-save.cc (read_ascii_data): Allow empty strings and string - vectors to be restored. - - * variables.cc (var_matches_any_pattern): New function. - (Fclear): Use it to make exclusive clear work correctly. - - 2000-06-08 John W. Eaton - - * ov-range.h (octave_range::is_numeric_type): New function. - - * sysdep.cc (Fkbhit): Also ask for input if forced_interactive. - - 2000-06-07 John W. Eaton - - * Makefile.in (oct-gperf.h): Use $(GPERF) instead of gperf. - - 2000-05-31 John W. Eaton - - * DLD-FUNCTIONS/qz.cc (Fqz): When computing finite generalized - eigenvalues, don't write past the end of the array. - - 2000-05-11 John W. Eaton - - * ov-base-nd-array.h, ov-base-nd-array.cc, ov-re-nd-array.h, - ov-re-nd-array.h: New files. - * Makefile.in: Add them to the appropriate lists. - - * pt-stmt.h, pt-stmt.cc (class tree_statement): - Store comments associated with this parse tree element. - * pt-select.h, pt-select.cc (class tree_if_clause, - class tree_if_command, class tree_switch_case - class tree_switch_command): Likewise. - * pt-loop.h, pt-loop.cc (class tree_while_command, - class tree_do_until_command, class tree_simple_for_command, - class tree_complex_for_command): Likewise. - * pt-except.h, pt-except.cc (class tree_try_catch_command, - class tree_unwind_protect_command): Likewise. - * ov-usr-fcn.h, ov-usr-fcn.cc (class octave_user_function): Likewise. - * pt-pr-code.h, pt-pr-code.cc (tree_print_code::print_comment_elt, - tree_print_code::print_comment_list, - tree_print_code::print_indented_comment): New functions. - (tree_print_code::visit_simple_for_command, - tree_print_code::visit_complex_for_command, - tree_print_code::visit_octave_user_function_header, - tree_print_code::visit_octave_user_function_trailer, - tree_print_code::visit_if_command, tree_print_code::visit_statement, - tree_print_code::visit_switch_case, - tree_print_code::visit_switch_command, - tree_print_code::visit_try_catch_command, - tree_print_code::visit_unwind_protect_command - tree_print_code::visit_while_command, - tree_print_code::visit_do_until_command): Handle comments. - * lex.l, parse.y: Handle comments in parse trees. - * comment-list.h, comment-list.cc: New files. - * Makefile.in: Add them to the appropriate lists. - - 2000-04-23 etienne grossmann - - * pt-mat.cc (tm_row_const::tm_row_const_rep::eval_error): - New args x and y, for dimension mismatch info. - Change callers where appropriate. - (tm_const::init): Report mismatched column dimensions. - - 2000-04-11 John W. Eaton - - * sysdep.cc (kbhit): Also clear cin if at EOF. - - 2000-04-11 Joao Cardoso - - * sysdep.cc (kbhit): New arg, wait. - (raw_mode): Ditto. - (Fkbhit): If given an arg, call kbhit with wait = false. - - * DLD-FUNCTIONS/minmax.cc (Fmax, Fmin): Fix doc string. - - 2000-04-04 John W. Eaton - - * dynamic-ld.cc (octave_dynamic_loader::do_load): Undo previous change. - - 2000-04-03 John W. Eaton - - * dynamic-ld.cc (octave_dynamic_loader::do_load): Also fail with - error message if we don't find the mangled function name in the - file. - - 2000-03-31 John W. Eaton - - * oct-stream.cc (printf_value_cache::string_value): Return string - matrices in a Matlab-compatible way. - (printf_value_cache): Redesign the way list_exhausted works. - - * oct-fstrm.cc (octave_fstream::do_close): New function. - * oct-stdstrm.cc (octave_istdiostream::do_close): Ditto. - (octave_ostdiostream::do_close): Ditto. - * c-file-ptr-stream.cc (c_file_ptr_buf::close): Ditto. - (i_c_file_ptr_stream::close): Ditto. - (o_c_file_ptr_stream::close): Ditto. - * oct-prcstrm.cc (octave_iprocstream::do_close): Ditto. - (octave_oprocstream::do_close): Ditto. - (octave_iprocstram::~octave_iprocstram): Call do_close here. - (octave_iprocstram::~octave_oprocstram): Likewise. - - * oct-stream.h (octave_base_stream::do_close): New virtual function. - (octave_base_stream::close): If stream is open, call do_close. - - * c-file-ptr-stream.cc (c_file_ptr_buf::flush): New function. - (c_file_ptr_buf::~c_file_ptr_buf): Use it. - (c_file_ptr_buf::overflow): Ditto. - (c_file_ptr_buf::sync): Ditto. - - 2000-03-30 John W. Eaton - - * oct-procbuf.cc (octave_procbuf::open): Make output streams line - buffered. - - 2000-03-24 John W. Eaton - - * sighandlers.cc (my_friendly_exit): Prefix failure messages with - panic instead of error. - - * c-file-ptr-stream.cc (c_file_ptr_buf::~c_file_ptr_buf): - Avoid dereferencing NULL pointer. - - * oct-stream.cc (printf_format_list::add_elt_to_list, - printf_format_list::process_conversion, - printf_format_list::finish_conversion): New args, flags, fw, and prec. - (printf_format_list::printf_format_list): Save more complete info. - (printf_format_list::printme): Print flags, fw, and prec. - (octave_base_stream::printf): Simplify. - (do_printf_conv): Delete have_arg arg, since it is always true now. - (octave_base_stream::do_printf): Handle case of no args and % - directly instead of using do_printf_conv. - (printf_value_cache::exhausted): Rename from no_more_values. - (DO_PCT_CONVERSION): New macro - (octave_base_streain::do_scanf, octave_base_streain::do_oscanf): - Use it. - (scanf_format_list::finish_conversion): `%' counts as a conversion too. - Also don't forget to set type for it. - (OCTAVE_SCAN_0): Delete. - (OCTAVE_SCAN): Rename from OCTAVE_SCAN_1. - (octave_base_stream::scanf, octave_base_stream::oscanf): Don't - special-case number of conversions here. - (octave_base_stream::oscanf, octave_base_stream::do_oscanf): Only - cycle through fmt elements if the number of conversions is greater - than 0. - - * oct-stream.h (scanf_format_list::next): New arg, `cycle'. - (printf_format_list::next): New arg, `cycle'. - (printf_format_list::last_elt_p): New function. - (printf_format_elt): New fields fw, prec, and flags. - Define copy constructor and assignment operator. - (scanf_format_elt): Define copy constructor and assignment operator. - - 2000-03-23 John W. Eaton - - * oct-stream.cc (OCTAVE_SCAN_0, OCTAVE_SCAN_1): New macros. - (do_scanf_conv, BEGIN_S_CONVERSION, BEGIN_CHAR_CLASS_CONVERSION, - do_scanf, scanf, do_oscanf, do_oscanf, oscanf): Use them instead - of calling istream::scan directly. - (octave_scan): New function. - (do_scanf_conv): Second arg is now scanf_format_elt instead of char*. - Change all callers. - - * oct-procbuf.h, oct-procbuf.cc (octave_procbuf): - Derive from c_file_ptr_buf instead of filebuf. - - * oct-stream.cc (octave_base_stream::printf): Use octave_format - instead of ostream::form. Return number of characters written. - - 2000-03-22 John W. Eaton - - * oct-stream.cc (do_printf_conv): Use octave_format instead of - ostream::form. Return number of characters written. - (octave_base_stream::do_printf): Return number of characters written. - - * error.cc (verror, vwarning): Use octave_format instead of - ostream::vform. - - * utils.cc (octave_format, octave_vformat): New functions. - * cutils.c (octave_snprintf, octave_vsnprintf): New functions. - - * oct-lvalue.h (dummy_val): New static variable. - (octave_lvalue::octave_lvalue): Use it to initialize val. - - * variables.cc (is_valid_function): Look in the global symbol - table for functions. - - 2000-03-21 John W. Eaton - - * Makefile.in (LIBRARIES): Conditionally define. - (libraries): Depend on $(LIBRARIES). - (octave): Depend on $(LIBRARIES), not libraries. Also depend on - stamp-prereq and stamp-oct-links. - (all): Don't depend on stamp-prereq or stamp-oct-links. - (liboctinterp.$(LIBEXT), liboctinterp.$(SHELXT)): Delete target - before rebuilding. - - 2000-03-21 Ben Sapp : - - * Makefile.in (libraries): Depend only on library targets, not - archive members. - - 2000-03-17 John W. Eaton - - * Makefile.in (objects): New target - - * c_file_ptr_stream.h, c_file_ptr_stream.cc: New files. - * oct-stdstrm.h, oct-stdstrm.cc, oct-prcstrm.cc: - Use c_file_ptr_buf, i_c_file_ptr_stream, and o_c_fie_ptr_stream - instead of stdiobuf, istdiostream, and ostdiostream. - - * pr-output.cc (set_real_format, set_real_matrix_format, - set_complex_format, set_complex_matrix_format, set_range_format): - Do the right thing again for int, NaN, and Inf values. - - 2000-03-14 John W. Eaton - - * pr-output.cc (pr_plus_format): Rename from do_plus_format. - Change all callers. - (pr_float, pr_complex): New arg, scale. Handle scaling here. - (float_format): New class for managing details of formatting - floats. Use it instead of character string formats and the - nonstandard form() function from the GNU iostream library. - - 2000-02-23 John W. Eaton - - * Makefile.in (clean): Also delete gendoc. - - 2000-02-18 James R. Van Zandt - - * load-save.cc (Vcrash_dumps_octave_core): Fix comment for this var. - - 2000-02-18 John W. Eaton - - * lex.l (handle_number): Don't transorm `[Dd]' to `e' if reading - hex. - - 2000-02-11 John W. Eaton - - * Makefile.in (install-inc): Install files in - $(octincludedir)/octave. - (uninstall): Remove them from the correct directory too. - - * defaults.h, defaults.cc (Vlocal_ver_arch_lib_dir): New variable. - * defaults.cc (set_default_local_ver_arch_lib_dir): New function. - (install_defaults): Call it. - (exec_path): Prepend the versioned form of the local arch lib - directory to the standard path. - * defaults.h.in (OCTAVE_LOCALVERARCHLIBDIR, - OCTAVE_LOCALVERFCNFILEDIR, OCTAVE_LOCALVEROCTFILEDIR): - Substitute these too. - * toplev.cc (Foctave_config_info): Add them to the struct. - - 2000-02-08 John W. Eaton - - * toplev.cc (Foctave_config_info): Add MKOCTFILE_INCFLAGS to the - struct. - * oct-conf.h.in (OCTAVE_CONF_MKOCTFILE_INCFLAGS): Define. - - 2000-02-07 John W. Eaton - - * DLD-FUNCTIONS/balance.cc (Fbalance): Explicitly request - conversion from Matrix to ComplexMatrix. - * DLD-FUNCTIONS/qz.cc (Fqz): Likewise. - - * ov-re-mat.h (octave_matrix::complex_matrix_value): Explicitly - request conversion from Matrix type. - - * ov-ch-mat.h (octave_char_matrix::matrix_value): Explicitly - request conversion from charMatrix type. - (octave_char_matrix::complex_matrix_value): Likewise. - * ov-bool-mat.h (octave_bool_matrix::matrix_value): Likewise. - (octave_bool_matrix::complex_matrix_value): Likewise. - - * ov-range.h (octave_range::complex_matrix_value): Explicitly - request conversion from Matrix type. - - * ov-cx-mat.h, ov-re-mat.h: Explicitly request conversions from - diagonal matrix types in constructors. - - * mappers.cc (ximag, xreal): Return double, not Complex. - - * error.cc (panic): Turn off buffering of error messages. - Don't call flush_octave_stdout here, verror will do it for us. - (verror): Don't call flush_octave_stdout if buffering error messages. - - * pt-except.cc (tree_try_catch_command::eval): Only restore - buffer_error_message value (by running the unwind_protect element - for it) if it has been saved. - - * help.cc (Ftype): Return value if nargout is NOT equal to zero. - Delete unnecessary unwind_protect::begin_frame(). - - * toplev.cc (octave_config_info): Stuff lots of new config info in - the struct. - - * oct-conf.h.in: Delete TARGET_HOST_TYPE. - - 2000-02-04 John W. Eaton - - * siglist.c: Include . - - * lex.l (is_plot_keyword): Add minimum match length in call to - almost_match. - - * Makefile.in (%.df : %.cc): Don't pass -c to compiler. - - 2000-02-03 John W. Eaton - - * ov-base-mat.cc: Include pr-output.h here. - - * DLD-FUNCTIONS/rand.cc (curr_rand_dist): Return const char * - instead of char *. - - * oct-fstrm.cc (octave_fstream::seek, octave_fstream::tell): - Call pubseekoff instead of seekoff. - - * DLD-FUNCTIONS/dassl.cc (print_dassl_option_list): Use stream - manipulators instead of GNU iostream-specific form function. - * DLD-FUNCTIONS/fsolve.cc (print_fsolve_option_list): Ditto. - * DLD-FUNCTIONS/lsode.cc (print_lsode_option_list): Ditto. - * DLD-FUNCTIONS/quad.cc (print_quad_option_list): Ditto. - * pr-output.cc (pr_scale_header): Ditto. - - * sighandlers.h: Include signal.h here. - * sighandlers.cc: Not here. - - * utils.cc: Include setjmp.h, not csetjmp. - * toplev.cc: Ditto. - - * sighandlers.cc: Include signal.h, not csignal. - - * pt-plot.h: Don't include csignal. - * toplev.cc: Ditto. - * oct-hist.cc: Ditto. - * octave.cc: Ditto. - * pager.cc: Ditto. - * input.cc: Ditto. - * help.cc: Ditto. - - * pt-plot.cc (send_to_plot_stream): Use operator== and substr - method to do limited-length string comparison. - * input.cc (generate_completion): Likewise. - * ov-dld-fcn.cc (octave_dld_function::octave_dld_function): Likewise. - * ov-usr-fcn.cc (octave_user_function::mark_as_system_fcn_file): - Likewise. - - * utils.cc (check_preference): Expect exact string matches. - * variables.cc (ignore_function_time_stamp): Likewise. - * lex.l (whitespace_in_literal_matrix): Likewise. - - * mappers.cc (xconj, ximag, xreal): New functions. Use them in - DEFUN_MAPPER calls. - - * defun-int.h (DEFUN_MAPPER_INTERNAL): Cast function pointer args - to octave_mapper constructor. - - 2000-02-02 John W. Eaton - - * procstream.cc (procstreambase::procstreambase, - procstreambase::open, procstreambase::close): - Call std::ios::setstate, not set. - - * lex.l (plot_axes_token): Declare plot_axes as const char *. - Declare tmp const char **. - - * oct-procbuf.h: Include fstream, not streambuf.h. - - * load-save.cc (Fsave): Call pubseekoff instead of seekoff. - * oct-strstrm.cc (octave_base_strstream::tell): Likewise. - (octave_base_strstream::seek): Likewise. - - * oct-stream.cc (octave_base_stream::read): Rename count to char_count. - (octave_base_stream::do_gets): Likewise. - - * octave-stream.cc (octave_base_stream::write): Rename flt_fmt to ffmt. - (octave_base_stream::read): Likewise. - - * TEMPLATE-INST/SLStack-sym.cc: Delete meaningless `extern - template' declarations. - * TEMPLATE-INST/Array-tc.cc: Ditto. - - * TEMPLATE-INST/Map-fnc.cc: Don't try to instantiate goodCHptr or - CHptr_to_index here. - * TEMPLATE-INST/Map-tc.cc: Likewise. - * Map.h (CHNode::goodCHptr, CHNode::CHptr_to_index): Now member - functions. Change all callers. - - * load-save.cc (read_binary_file_header): Declare magic_len `const'. - - * token.h (token::token (const token&), token::operator=): - Delete unnecessary definitions. - - * oct-stream.cc (octave_stream::mode_as_string): Use - std::ios::binary, not std::ios::bin. - * load-save.cc (Fsave, Fload, save_user_variables): Likewise. - - * DLD-FUNCTIONS/qz.cc (Fqz): Use Array class instead of - trying to create automatic int array with variable size. - - * variables.cc (F__dump_symbol_info__): Fix continuation char. - * mappers.cc (Ftoupper): Likewise. - * DLD-FUNCTIONS/besselj.cc (Fairy, Fbesselj): Likewise. - * DLD-FUNCTIONS/chol.cc (Fchol): Likewise. - * DLD-FUNCTIONS/det.cc (Fdet): Likewise. - * DLD-FUNCTIONS/eig.cc (Feig): Likewise. - * DLD-FUNCTIONS/gammainc.cc (gammainc): Likewise. - * DLD-FUNCTIONS/givens.cc (givens): Likewise. - * DLD-FUNCTIONS/hess.cc (hess): Likewise. - * DLD-FUNCTIONS/inv.cc (inv): Likewise. - * DLD-FUNCTIONS/log.cc (logm): Likewise. - * DLD-FUNCTIONS/lu.cc (lu): Likewise. - * DLD-FUNCTIONS/qr.cc (qr): Likewise. - * DLD-FUNCTIONS/schur.cc (schur): Likewise. - * DLD-FUNCTIONS/balance.cc (balance): Likewise. - * DLD-FUNCTIONS/svd.cc (svd): Likewise. - * DLD-FUNCTIONS/syl.cc (syl): Likewise. - * DLD-FUNCTIONS/expm.cc (Fexpm): Likewise. - - * token.h (token::token_type, token::end_tok_type, - token::plot_tok_type): Delete extraneous comma from enum decls. - * load-save.cc (load_save_format): Likewise. - - * pt-idx.cc (tree_index_expression::tree_index_expression): - Delete default arg values. - * oct-fstrm.cc (octave_fstream::octave_fstream): Likewise. - * oct-stream.cc (octave_stream::octave_stream): Likewise. - - * siglist.h, siglist.c: New files. - * Makefile.in: Add them to the appropriate lists. - * siglist.c (sys_siglist): Move definition here from sighandlers.cc. - * siglist.h (sys_siglist): Move declaration here from sighandlers.h. - - * ov.h, ov-bool.h, ov-bool-mat.h (bool_matrix_value): - Delete unnecessary arg. - - * ov.h (octave_value::do_multi_index_op): Rename from do_index_op. - - * ov-fcn.h (octave_function::is_system_fcn_file): Now const. - - * Map.cc (index_to_CHptr): Now a macro. - (CHMap::hash): Now a member function. - - * defun-int.h (UNDERSCORIFY): New macro. - (DEFCONST_INTERNAL, DEFCONSTX_INTERNAL): Use it. - - * data.cc (Fis_list): Fix continuation char. - * defaults.cc (IMAGEPATH): Likewise. - - * Map.cc (CHptr_to_index, goodCHptr): Delete static decl. - - * ov.h (unary_op, binary_op, assign_op): Prepend `op_' to elts. - Change all usses - - * All source files: Sprinkle with std:: qualifier as needed. - - 2000-01-31 John W. Eaton - - * sighandlers.cc (install_signal_handlers): Add std:: qualifier - for set_net_handler. - - * All source files: Include iostream, fstream, strstream, - etc. as needed instead of using forward declarations for these - classes. - - 2000-01-30 John W. Eaton - - * input.cc (input_event_hook, Finput_event_hook): New functions. - (hook_fcn, user_data): New static variables. - - 2000-01-28 John W. Eaton - - * pt-except.cc (do_catch_code): Don't do anything special for - tree_return_command::returning, or tree_break_command::breaking. - - * error.cc (vwarning): New function. - (warning): Use it instead of calling verror. - - * oct-stream.cc (octave_base_stream::oscanf): - Result is now always nconv+1 elements. Return count of successful - conversions in last element. - * file-io.cc (Ffscanf, Fsscanf, Fscanf): Fix doc string. - - * pt-except.cc (do_catch_code): Unwind-protect buffer_error_messages. - Be sure to run all unwind-protects before returning. - (tree_try_catch_command::eval): Add do_catch_code cleanup function - to unwind-protect stack before resetting buffer_error_messages. - Use unwind-protect to save and restore buffer_error_messages. - If there is no catch code, discard the cleanup function and run - the unwind-protect for buffer_error_messages. - - * error.cc (bind_global_error_variable): Avoid dereferencing - error_message_buffer if it is NULL. - - * parse.y (evaluating_function_body): New global flag. - * ov-usr-fcn.cc (octave_user_function::do_index_op): - Protect and set it here. - * parse.y (make_break_command, make_return_command): Check it here. - - * error.cc (warning_state): New global flag. - (warning): Set it here. - * lex.l (reset_parser): Clear it here. - * parse.y (fold): Check it here. - - 2000-01-27 John W. Eaton - - * pt-walk.h (tree_walker::visit_do_until_command): New pure virtual. - * pt-pr-code.cc (tree_print_code::visit_do_until_command): - New function. - * pt-loop.h (tree_do_until_command): New class. - (tree_while_command::expr, tree_while_command::list): - Now protected instead of private. - * parse.y (make_do_until_command): New function. - (loop_command): Recognize do-until statement. - (DO, UNTIL): New tokens. - - * input.cc (match_sans_spaces): Require non-blank part of test - string to match standard string exactly. - - 2000-01-26 John W. Eaton - - * oct-stream.h (scanf_format_elt::char_class): New struct elt. - Add arg to constructor. - (scanf_format_elt::special_conversion): New enum. - * oct-stream.cc (scanf_format_list::add_elt_to_list): New arg, - char_class. Pass it to scanf_format_elt constructor. - (scanf_format_list::scanf_format_list): Create separate list - elements for whitespace and literal conversions. - (expand_char_class): New function. - (scanf_format_list::finish_conversion): Extract character class - (not including the delimiting brackets) and expand the list of - characters. Pass the result to add_elt_to_list. - (scanf_format_list::all_character_conversions): Also accept '^', - scanf_format_elt::literal_conversion, and - scanf_format_elt::whitespace_conversion types too. - (DO_WHITESPACE_CONVERSION, BEGIN_CHAR_CLASS_CONVERSION, - BEGIN_C_CONVERSION, BEGIN_S_CONVERSION, DO_LITERAL_CONVERSION): - New macros. - (octave_base_stream::do_scanf, octave_base_stream::do_oscanf): - Use them to avoid code duplication. - Handle whitespace, literal text, and character class conversions. - (octave_base_stream::oscanf): Loop over all format list elements, - not just the first nconv elements. Clear status flags on is for - all streams. - - 2000-01-25 John W. Eaton - - * xdiv.cc (result_ok): Just check value of info. - (solve_singularity_warning): New function. - (xleftdiv, xdiv): Pass pointer to solve_singularity_warning to - solve function. - - * lex.l (handle_identifier): Set next_tok_is_eq if we are looking - at `=', but not if we are looking at `=='. - - * pt-pr-code.cc (tree_print_code::visit_unwind_protect_command): - Print `unwind_protect_cleanup', not `cleanup_code'. - - * pager.cc (octave_pager_buf::flush_current_contents_to_diary): - New function. - (octave_pager_stream::flush_current_contents_to_diary): - Ditto. - (close_diary_file): Use the new octave_pager_stream function to - try to flush the current buffer to the diary when it is closed. - - * variables.cc (Fexist): Return 6 for built-in constants. - - * pt-plot.cc (Fgshow): Don't append " " after last arg. - (Fgset): Likewise. - - 2000-01-23 John W. Eaton - - * ov-base-mat.h (octave_base_matrix::length): Return 0 for empty - arrays. - - 2000-01-20 John W. Eaton - - * DLD-FUNCTIONS/time.cc (Fstrptime): New function. - - * load-save.cc (Fsave): Add missing else. - - 2000-01-17 John W. Eaton - - * DLD-FUNCTIONS/gammainc.cc (Fgammainc): Texinfoize doc string. - * ov-typeinfo.cc (Ftypeinfo): Ditto. - * parse.y (Vwarn_future_time_stamp): Ditto. - * DLD-FUNCTIONS/minmax.cc (Fmax, Fmin): Ditto. - * ov-usr-fcn.cc (Fva_arg, Fva_start, Fvr_val): Ditto. - * defaults.cc (VOCTAVE_HOME, Frehash): Ditto. - * toplev.cc (Fwarranty, Fcasesen): Ditto. - * utils.cc (Fdo_string_escapes, Ffile_in_loadpath): Ditto. - * variables.cc (F__dump_symtab_info__, F__dump_symbol_info__): Ditto. - * ov-list.cc (Flist, Fappend, Fnth, Freverse, Fsplice): Ditto. - * input.cc (Fread_readline_init_file): Ditto. - * file-io.cc (Fis_stream): Ditto. - * ov-cell.cc (Fiscell, Fcell): Ditto. - * pt-assign.cc (Vprint_rhs_assign_val): Ditto. - * pt-decl.cc (Vinitialize_global_variables): Ditto. - * symtab.cc (Vvariables_can_hide_functions): Ditto. - - * pt-plot.cc (Fgraw, Fgset, Fgshow, Vgnuplot_command_plot, - Vgnuplot_command_replot, Vgnuplot_command_splot, - Vgnuplot_command_using, Vgnuplot_command_with, - Vgnuplot_command_axes, Vgnuplot_command_title, - Vgnuplot_command_end): Texinfoize doc strings. - - * oct-procbuf.cc (__kluge_procbuf_delay__): Rename from - kluge_procbuf_delay. Texinfoize doc string. - - 2000-01-13 John W. Eaton - - * parse.y (gobble_leading_whitespace): Discard first space character - after consecutive comment characters. - * lex.l (grab_help_text): Ditto. - - * lex.l (Vwhitespace_in_literal_matrix, Vwarn_separator_insert, - Vwarn_single_quote_string): Texinfoize doc string. - - 2000-01-11 John W. Eaton - - * ov.h, ov.cc (octave_value::column_vector_value, - octave_value::row_vector_value, - octave_value::complex_column_vector_value, - octave_value::complex_row_vector_value): New functions. - (octave_value::vector_value): Now returns Array. - (octave_value::complex_vector_value): Now returns Array. - Sprinkle conversions where necessary. - - * ov.cc (Vprefer_column_vectors): Now static. - * ov.h (octave_value (const ComplexRowVector&), - octave_value (const ComplexColumnVector&), - octave_value (const RowVector&), octave_value (const ColumnVector&)): - Delete second arg. Change all callers. - - * oct-obj.h (octave_value_list (const RowVector&), - octave_value_list (const ColumnVector&), - octave_value_list (const ComplexRowVector&), - octave_value_list (const ComplexColumnVector&)): Likewise. - * ov-cx-mat.h, ov-cx-mat.cc - (octave_complex_matrix (const ComplexRowVector&), - (octave_complex_matrix (const ComplexColumnVector&)): - Delete second arg, simply create object with orientation - corresponding to vector arg. Move constructors to class decl. - * ov-re-mat.h, ov-re-mat.cc (octave_matrix (const RowVector&), - (octave_matrix (const ColumnVector&)): - Delete second arg, simply create object with orientation - corresponding to vector arg. Move constructors to class decl. - - 2000-01-07 Ben Sapp - - * mappers.cc (Fconj, Ferf, Ferfc, Fgamma, Fimag, Flgamma, Flog10, - Freal, Fround): Add @seealso{...} to doc strings. - - 2000-01-06 John W. Eaton - - * oct-stream.cc (do_scanf): Do the right thing again for character - conversions. - - * help.cc (display_help_text): Also strip out leading spaces - before Texinfo @-commands before sending doc string to makeinfo. - (display_help_text): Improve format of `See also' string. - - 2000-01-05 John W. Eaton - - * help.cc (display_help_text): Pass a definition for @seealso - through the filter. - - 1999-12-22 John W. Eaton - - * lex.l (Vwarn_single_quote_string): New variable. - (syms_of_lex): DEFVAR it. - (warn_single_quote_string): New function. - (gripe_single_quote_string): New function. - Use new stuff to allow warnings for code that uses single quote - characters to introduce string constants. - - 1999-12-20 John W. Eaton - - * mkbuiltins: Add #undef quad to generated file. - - 1999-12-15 John W. Eaton - - * lex.l (Vwarn_separator_insert): New variable. - (syms_of_lex): DEFVAR it. - (warn_separator_insert): New function. - (maybe_warn_separator_insert): New function. - Use new stuff to allow warnings for code that might result in - auto-insertion of commas or semicolons, depending on the value of - whitespace_in_literal_matrix. - - * parse.y (Fsource): Record function file name here too. - - 1999-12-13 John W. Eaton - - * variables.cc (link_to_global_variable): If the local symbol is - not a variable, don't bother to clear it. Instead, just redefine - it by aliasing to the global symbol. - - 1999-11-23 John W. Eaton - - * DLD-FUNCTIONS/balance.cc (Fbalance): Texinfoize doc string. - * DLD-FUNCTIONS/det.cc (Fdet): Ditto. - * DLD-FUNCTIONS/eig.cc (Feig): Ditto. - * DLD-FUNCTIONS/givens.cc (Fgivens): Ditto. - * DLD-FUNCTIONS/inv.cc (Finv): Ditto. - * DLD-FUNCTIONS/chol.cc (Fchol): Ditto. - * DLD-FUNCTIONS/hess.cc (Fhess): Ditto. - * DLD-FUNCTIONS/lu.cc (Flu): Ditto. - * DLD-FUNCTIONS/qr.cc (Fqr): Ditto. - * DLD-FUNCTIONS/schur.cc (Fschur): Ditto. - * DLD-FUNCTIONS/svd.cc (Fsvd): Ditto. - * DLD-FUNCTIONS/expm.cc (Fexpm): Ditto. - * DLD-FUNCTIONS/log.cc (Flogm, Fsqrtm): Ditto. - * DLD-FUNCTIONS/syl.cc (Fsyl): Ditto. - * DLD-FUNCTIONS/pinv.cc (Fpinv): Ditto. - * DLD-FUNCTIONS/qz.cc (Fqz): Ditto. - * DLD-FUNCTIONS/dassl.cc (Fdassl, Fdassl_options): Ditto. - * DLD-FUNCTIONS/lsode.cc (Flsode, Flsode_options): Ditto. - * data.cc (Flength, Fsize, Fisempty): Ditto. - * sysdep.cc (Fkbhit): Ditto. - * input.cc (Fkeyboard, Finput): Ditto. - * variables.cc (ans): Ditto. - * pr-output.cc (Fdisp, Fformat): Ditto. - * ov.cc (Vprint_answer_id_name): Ditto. - * defaults.cc (IMAGEPATH): Ditto. - * error.cc (Ferror, Fwarning, Fusage, error_text, beep_on_error): - Ditto. - * load-save.cc (Fload, Fsave, Vdefault_save_format, - Vsave_precision): Ditto. - * file-io.cc (Ffflush, Ffopen, Ffclose, Ffputs, Ffgetl, Ffgets, - Ffprintf, Fsprintf, Fscanf, Ffscanf, Fsscanf, Ffread, Ffwrite, - Ffseek, Fftell, Ffeof, Fferror, Ffreport, Ftmpnam, Vstdin_file, - Vstdout_file, Vstderr_file, SEEK_SET, SEEK_CUR, SEEK_END): Ditto. - * pager.cc (Vpager_binary, Vpage_output_immediately, - Vpage_screen_output, Fmore): Ditto. - - 1999-11-21 John W. Eaton - - * utils.cc (Vtreat_neg_dim_as_zero): Texinfoize doc string. - * DLD-FUNCTIONS/find.cc (Ffind): Ditto. - * DLD-FUNCTIONS/rand.cc (Frand, Frandn): Ditto. - * DLD-FUNCTIONS/sort.cc (Fsort): Ditto. - * mappers.cc (Fisinf, Fisnan, Ffinite): Ditto. - * data.cc (Fall, Fany, Fdiag, Fones, Fzeros, Feye, Flinspace): Ditto. - * defaults.cc (Vloadpath, Vdefault_loadpath): Ditto. - * parse.y (Feval, Ffeval, Vdefault_eval_print_flag, - Vwarn_missing_semicolon, Vwarn_function_name_clash, Fsource): Ditto. - * ov-usr-fcn.cc (Vmax_recursion_depth, Vdefault_return_value, - Vdefine_all_return_values, Vreturn_last_computed_value): Ditto. - * ov.cc (Vok_to_lose_imaginary_part, Vdo_fortran_indexing, - Vprefer_column_vectors, Vresize_on_range_error, - Vwarn_divide_by_zero): Ditto. - * pt-stmt.cc (Vsilent_functions): Ditto. - * variables.cc (Vignore_function_time_stamp): Ditto. - * dynamic-ld.cc (Vwarn_reload_forces_clear): Ditto. - - 1999-11-20 John W. Eaton - - * DLD-FUNCTIONS/fft.cc (Ffft): Texinfoize doc string. - * DLD-FUNCTIONS/ifft.cc (Fifft): Ditto. - * DLD-FUNCTIONS/fft2.cc (Ffft2): Ditto. - * DLD-FUNCTIONS/ifft2.cc (Fifft2): Ditto. - * DLD-FUNCTIONS/filter.cc (Ffilter): Ditto. - * DLD-FUNCTIONS/quad.cc (Fquad, Fquad_options): Ditto. - * DLD-FUNCTIONS/colloc.cc (Fcolloc): Ditto. - * DLD-FUNCTIONS/fsolve.cc (Ffsolve, Ffsolve_options): Ditto. - * defaults.cc (Veditor): Ditto. - * pt-plot.cc (Vautomatic_replot, Vgnuplot_binary, - Vgnuplot_has_frames, Vgnuplot_has_multiplot, Fclearplot, - Fcloseplot, Fpurge_tmp_files, Fishold, Fhold): - - * Makefile.in (parse.cc): Expect 11 shift/reduce conflicts now. - - 1999-11-19 John W. Eaton - - * parse.y (Vwarn_assign_as_truth_value, Vwarn_variable_switch_label): - Texinfoize doc strings. - - * DLD-FUNCTIONS/pinv.cc (Fpinv): Texinfoize doc string. - - * defun-int.h (DEFUN_DLD_INTERNAL): New macro. - * defun-dld.h [MAKE_BUILTINS] (DEFUN_DLD): Simply expand to - DEFUN_DLD_INTERNAL. - * mkbuiltins: Generate code to define DEFUN_DLD_INTERNAL. - * mkgendoc: Likewise. - - * Makefile.in (gendoc.o): Don't optimize when creating gendoc. - (%.dc : %.cc): Delete rule. - - * pt-decl.cc (Vdefault_global_variable_value): Texinofize doc string. - * variables.cc (Fclear, Fdocument, Fexist, Fis_global, Fwho): Ditto. - * help.cc (Ftype, Fwhich): Ditto. - * ov.cc (Vstruct_levels_to_print, Vimplicit_str_to_num_ok): Ditto. - * data.cc (Fis_struct, Fstruct_elements, Fstruct_constains): Ditto. - * strfns.cc (Fisstr, Fsetstr): Ditto. - * pt-mat.cc: (Fimplicit_num_to_str_ok, Fstring_fill_char): Ditto. - * utils.cc (Fundo_string_escapes): Ditto. - * mappers.cc: (Fisalnum, Fisalpha, Fisascii, Fiscntrl, Fisdigit, - Fisgraph, Fislower, Fisprint, Fispunct, Fisspace, Fisupper, - Fisxdigit, Ftoascii, Ftolower, Ftoupper): Ditto. - - 1999-11-18 John W. Eaton - - * syscalls.cc (symbols_of_syscalls): Use DEFCONSTX to define - Octave constants for C macros like O_WRONLY. - - * oct-lvalue.cc (octave_lvalue::set_index): Disallow expressions - like x(i)(j) = rhs. - - 1999-11-17 John W. Eaton - - * symtab.cc (symbol_record::type_as_string): New function. - - * symtab.cc (symbol_record::which): New functions. - * help.cc (do_which): New functions. - (Fwhich): Use them. - - * help.cc (help_from_symbol_table, help_from_file): New functions. - (builtin_help): Use them. - - * help.cc (do_type): New function. - (symbol_record::type): New function. - (Ftype): Use them. - - * help.cc (print_symbol_type): Delete. - - * symtab.cc (symbol_table::name_list): Delete count arg. - (symbol_table::symbol_list): Likewise. - (symbol_table::glob): Likewise. Also return Array - instead of symbol_record **. - Change all callers. - * help.cc (names, display_symtab_names): Delete count arg. - - * help.cc (print_symbol_type, Ftype): No longer need to look up - fcn_file_name in the loadpath. - - * help.cc (print_symbol_type): Handle dld functions. - (help_from_symbol_table, help_from_file): New functions. - (builtin_help): Use them. - - 1999-11-16 John W. Eaton - - * ov-cell.cc (Fiscell, Fcell): New Functions. - (octave_cell::do_index_op): New function. - - * utils.cc (get_dimensions): Move here from data.cc and make extern. - (Vtreat_neg_dim_as_zero, treat_neg_dim_as_zero): Likewise. - (symbols_of_utils): New function. - - * data.cc (fill_matrix (const octave_value_list&, double, - const char*)): New function. - (Fones, Fzeros): Use it to avoid some code duplication. - - 1999-11-15 John W. Eaton - - * pt-cell.h, pt-cell.cc, ov-cell.h, ov-cell.cc, Cell.h, Cell.cc: - New files. - * Makefile.in: Add them to the appropriate lists. - * pt-walk.h (visit_cell (tree_cell&): New pure virtual. - * pt-pr-code.cc (tree_print_code::visit_cell (tree_cell&)): New - function. - * TEMPLATE-INST/Array-tc.cc: Instantiate 2D arrays of octave_value - objects. - * pt-all.h: Include pt-cell.h. - * ov.h, ov.cc (octave_value::is_cell, octave_value::cell_value): - New functions. - * ov-base.h, ov-base.cc (octave_value::is_cell, - octave_value::cell_value): Provide defaults. - * lex.h, lex.l: Handle `{' and `}' tokens (for cell arrays). - (bracketflag): Rename from braceflag. - (handle_close_bracket): Rename from handle_close_brace. - (class bracket_brace_paren_nesting_level): Rename from - brace_paren_nesting_level. - (bracket_brace_paren_nesting_level::bracket, - bracket_brace_paren_nesting_level::is_bracket): New functions to - keep count of nesting level for `[' and `]'. - (bracket_brace_paren_nesting_level::brace, - bracket_brace_paren_nesting_level::is_brace): Now keeps count of - nesting level for `{' and `}'. - * parse.y (tree_cell_type): New type. - Give '{' the same precedence and associativity as '(' and '.' - (matrix_rows, matrix_rows1): Rename from rows, rows1. - (cell, cell_rows, cell_rows1): New non-terminals. - (cell_or_matrix_row): Rename from matrix_row. - (primary_expr): Accept cell here. - (postfix_expr): Allow indexing using '{' arg_list '}'. - (finish_cell): New function. - - 1999-11-12 John W. Eaton - - * utils.cc (jump_to_top_level): No longer declared extern "C". - - * cutils.c (octave_strcasecmp, octave_strncasecmp): New functions. - * utils.cc (almost_match): Call octave_strncasecmp instead of - calling strncasecmp directly. - - 1999-11-10 John W. Eaton - - * parse.y: Don't define warn_reload_forces_clear here. - - * Makefile.in (DISTFILES): Include DOCSTRINGS. - - 1999-11-05 John W. Eaton - - * sighandlers.cc (install_signal_handlers): Don't install - sigwinch_handler. - - * oct-iostrm.h (octave_istream::eof, octave_ostream::eof): Provide - implementation for these. - - * oct-stream.cc (octave_base_stream::do_scanf): - The stdin stream is only special if we are interactive. - (octave_base_stream::scanf): Ditto. - (octave_base_stream::do_oscanf): Ditto. - (octave_base_stream::oscanf): Ditto. - - * ov.h (octave_value::is_stream): New predicate. - * ov-file.h (octave_file::is_stream): Return true. - * file-io.cc (Fis_stream): New function. - - * ov-file.h (class octave_file): stream is now an object instead - of pointer. - * ov-file.cc (octave_file::print_raw): Handle stream as object - instead of pointer. Also print stream status. - - * ov-base.cc (octave_base_value::stream_value): Return object - instead of pointer. - - * ov.cc (octave_value::stream_value): Return object instead of pointer. - (octave_value::octave_value (const octave_stream&)): Take const - reference instead of pointer arg. - - * TEMPLATE-INST/Array-os.cc: Instantiate Arrays of octave_stream - objects, not pointers to them. - - * OPERATORS/op-fil-b.cc: Cope with octave_stream class changes. - * OPERATORS/op-fil-bm.cc: Likewise. - * OPERATORS/op-fil-cm.cc: Likewise. - * OPERATORS/op-fil-cs.cc: Likewise. - * OPERATORS/op-fil-lis.cc: Likewise. - * OPERATORS/op-fil-m.cc: Likewise. - * OPERATORS/op-fil-rec.cc: Likewise. - * OPERATORS/op-fil-s.cc: Likewise. - * OPERATORS/op-fil-str.cc: Likewise. - * file-io.cc: Likewise. - * syscalls.cc (Fdup): Likewise. - - * oct-fstrm.cc, oct-fstrm.h, oct-iostrm.cc, oct-iostrm.h, - oct-prcstrm.cc, oct-prcstrm.h, oct-stdstrm.cc, oct-stdstrm.h, - oct-stream.cc, oct-stream.h, oct-strstrm.cc, oct-strstrm.h: - Rewrite to allow octave_stream objects to be used like values - instead of having to use pointers. - - 1999-11-03 John W. Eaton - - * oct-stream.cc (octave_base_stream::do_scanf): If it looks like - we have a matching failure, then reset the failbit in the stream - state. - (octave_base_stream::do_oscanf): Likewise. - - 1999-11-02 Ben Sapp - - * help.cc (Fhelp): Texinfoize doc string. - * input.cc (Fecho, Fcompletion_matches): Ditto. - * oct-hist.cc (Fedit_history, Fhistory, Frun_history): Ditto. - * pager.cc (Fdiary): Ditto. - * sysdep.cc (Fclc): Ditto. - * toplev.cc (Fquit, Fatexit): Ditto. - - 1999-11-02 John W. Eaton - - * lex.l (yywrap): No longer static. - (have_continuation): Declare input character as int, not char, so - comparison to EOF will work. - - 1999-11-01 John W. Eaton - - * defun.cc (print_usage): Use display_help_text instead of sending - help message directly to octave_stdout. - - 1999-10-29 John W. Eaton - - * defun-dld.h (INSTALL_DLD_FCNS, INSTALL_DLD_FCN): Delete definitions. - * DLD-FUNCTIONS/dassl.cc: Don't use INSTALL_DLD_FCN or - INSTALL_DLD_FCNS macros. They are not necessary with the new code - in dynamic-ld.cc. - * DLD-FUNCTIONS/lsode.cc: Ditto. - * DLD-FUNCTIONS/fsolve.cc: Ditto. - * DLD-FUNCTIONS/quad.cc: Ditto. - * DLD-FUNCTIONS/time.cc: Ditto. - * DLD-FUNCTIONS/besselj.cc: Ditto. - * DLD-FUNCTIONS/getgrent.cc: Ditto. - * DLD-FUNCTIONS/getpwent.cc: Ditto. - * DLD-FUNCTIONS/inv.cc: Ditto. - * DLD-FUNCTIONS/log.cc: Ditto. - * DLD-FUNCTIONS/minmax.cc: Ditto. - * DLD-FUNCTIONS/rand.cc: Ditto. - - * dynamic-ld.cc, dynamic-ld.h: Major rewrite to allow reloading of - dynamically linked functions. - - * symtab.cc (symbol_record::replace_all_defs): Don't allow top - definition to be NULL. - (symbol_table::clear): Allow dynamically linked functions to be - cleared. - - * symtab.h (TYPE): New enum value, DLD_FUCTION. - (symbol_type): Now 8 bits wide. - (SYMTAB_ALL_TYPES): Include DLD_FUNCTION. - (symbol_record::symbol_def::is_function): Also recognize dld functions. - (symbol_record::symbol_def::is_dld_function): New function. - (symbol_record::is_dld_function): Ditto. - - * defun.cc (install_dld_function): New function. - * defun-int.h: Provide declaration here. - (octave_dld_fcn_installer): New typedef. - (DEFINE_FUN_INSTALLER_FUN): Installer function now takes an - oct_shlib object as an arg. Allow installation of a function to - happen more than once. - - * octave.cc (initialize_error_handlers): Call - set_liboctave_warning_handler here too. - - * ov-builtin.h (is_builtin_function): Return true. - Data member is now protected, not private. - - * ov-fcn.h (is_dynamically_loaded_function): New predicate. - (unload): New function. - Data members are now protected, not private. - - * ov.h (is_builtin_function, is_dld_function): New predicates. - * ov-base.h (is_builtin_function, is_dld_function): Ditto. - - * parse.y (Vwarn_reload_forces_clear): New static flag. - (warn_reload_forces_clear): New function. - (symbols_of_parse): DEFVAR warn_reload_forces_clear. - - * variables.cc (Fclear): Look for dld functions too. - - * ov-dld-fcn.cc, ov-dld-fcn.h: New files. - * Makefile.in (OV_INCLUDES, OV_SRC): Add them to the lists. - - * Makefile.in (DEFVAR_PATTERN): Also match DEFCONSTX. - - 1999-10-26 John W. Eaton - - * DLList.h, DLList.cc: New files. - * Makefile.in (INCLUDES, DIST_SRC): Add them to the lists. - - * DLD-FUNCTIONS/lsode.cc (Flsode): Be sure to call - unwind_protect::run_frame before returning. - * DLD-FUNCTIONS/quad.cc (Fquad): Likewise. - * DLD-FUNCTIONS/fsolve.cc (Ffsolve): Likewise. - * DLD-FUNCTIONS/dassl.cc (Fdassl): Likewise. - - * load-save.cc (read_mat_ascii_data): When reading from - tmp_stream, check its state, not the state of is. - - * defun-dld.h (INSTALL_DLD_FCN, INSTALL_DLD_FCNS): New macros. - * DLD-FUNCTIONS/dassl.cc: Use them. - * DLD-FUNCTIONS/lsode.cc: Ditto. - * DLD-FUNCTIONS/fsolve.cc: Ditto. - * DLD-FUNCTIONS/quad.cc: Ditto. - * DLD-FUNCTIONS/time.cc: Ditto. - * DLD-FUNCTIONS/besselj.cc: Ditto. - * DLD-FUNCTIONS/getgrent.cc: Ditto. - * DLD-FUNCTIONS/getpwent.cc: Ditto. - * DLD-FUNCTIONS/inv.cc: Ditto. - * DLD-FUNCTIONS/log.cc: Ditto. - * DLD-FUNCTIONS/minmax.cc: Ditto. - * DLD-FUNCTIONS/rand.cc: Ditto. - - * data.cc (Flinspace): Let linspace functions handle errors. - - * mkgendoc (print_doc_string): Handle quoted names. - - * file-io.cc (symbols_of_file_io): Use DEFCONSTX for SEEK_SET, - SEEK_CUR, and SEEK_END. - - * defun.h (DEFCONST): Just pass name, defn, and doc to - DEFCONST_INTERNAL. - (DEFCONSTX): Likewise, pass name, defn, and doc to DEFCONSTX_INTERNAL. - * defun-int.h [MKBUILTINS] (DEFCONST_INTERNAL): Likewise, pass - name, defn, and doc to XDEFCONST_INTERNAL. - [MKBUILTINS] (DEFCONSTX_INTERNAL): New macro. - (INSTALL_CONST): New macro. - [! MKBUILTINS] (DEFCONST_INTERNAL): Use it to handle details here. - [! MKBUILTINS] (DEFCONSTX_INTERNAL): Ditto. - * mkgendoc: Fix definition of XDEFCONST_INTERNAL to match. - * mkbuiltins: Ditto. - - * mkdefs: Match spaces before BEGIN_INSTALL_BUILTIN. - - * Makefile.in (DEFUN_PATTERN): Also match DEFUN_MAPPER. - - 1999-10-26 Ben Sapp - - * data.cc (VI, VInf, VJ, VNaN, Ve, Veps, Vfalse, Vi, Vinf, Vj, - Vnan, Vpi, Vrealmax, Vrealmin): Texinfoize doc strings. - * mappers.cc (Fabs, Facos, Facosh, Fangle, Farg, Fasin, Fasinh, - Fatan, Fatanh, Fceil, Fconj, Fcos, Fcosh, Ferf, Ferfc, Fexp, - Ffinite, Ffix, Ffloor, Fgamma, Fimag, Flgamma, Flog, Flog10, - Freal, Fround, Fsign, Fsin, Fsinh, Fsqrt, Ftan, Ftanh): Ditto. - - 1999-10-23 Ben Sapp - - * data.cc (Fis_matrix): Texinfoize doc string. - * ov.cc (Vpropagate_empty_matrices): Ditto. - * pt-mat.cc: (Vempty_list_elements_ok): Ditto. - * pr-output.cc (Vfixed_point_format, Voutput_max_field_width, - Voutput_precision, Vprint_empty_dimensions, Vsplit_long_rows): - Ditto. - - 1999-10-22 John W. Eaton - - * ov-usr-fcn.cc (octave_user_function::do_index_op): If - Vmax_recursion_depth is exceeded, call unwind_protect::run_frame - before returning. - - 1999-10-21 John W. Eaton - - * cutils.c (do_octave_usleep): Handle useconds > 1e6. - - * variables.h (is_valid_function): Provide default values for the - string argument. - - * symtab.cc (variable_reference): Maybe print warning (or error) - about variables that hide functions of the same name. - (symbol_record::define (const octave_value&, unsigned int)): Ditto. - (Vvariables_can_hide_functions): New static variable. - (variables_can_hide_functions, symbols_of_symtab): New functions. - - * cutils.c: New file. - * Makefile.in (SOURCES): Add it to the list. - * utils.h: Declare octave_usleep here. - * dirfns.cc (Fls): Simply all octave_usleep. - * oct-procbuf.cc (octave_procbuf::open): Ditto. - * sysdep.cc (Fusleep): Ditto. - * toplev.cc (run_command_and_return_output): Ditto. - - 1999-10-20 John W. Eaton - - * data.cc (make_diag (const octave_value&, const octave_value&)): - Delete special cases for scalars and simply attempt conversion of - first arg to a matrix value. If that fails, we will still see an - error message. - - * Makefile.in (DISTFILES): Add mkgendoc to the list. - - 1999-10-19 John W. Eaton - - * Makefile.in (stmp-pic): New target. - ($(PICOBJS)): Depend on stmp-pic, not pic. - - * ov.h (get_rep): New function. - - * help.cc (display_help_text): Pass definitions for VERSION, - OCTAVE_HOME, and TARGETHOSTTYPE to makeinfo. - - * DLD-FUNCTIONS/getgrent.cc: Texinfoize all doc strings. - * DLD-FUNCTIONS/getpwent.cc: Ditto. - * DLD-FUNCTIONS/getrusage.cc: Ditto. - * DLD-FUNCTIONS/time.cc: Ditto. - - * defaults.cc (EXEC_PATH, OCTAVE_VERSION): Texinfoize doc strings. - * dirfns.cc (Fcd, Fls, Fpwd, Freaddir, Fmkdir, Frmdir, Frename, - Fglob, Ffnmatch): Ditto. - * file-io.cc (Fpopen, Fpclose, Fumask): Ditto. - * sysdep.cc (Fgetenv, Fputenv, Fpause, Fsleep, Fusleep, Fisieee, - Ftilde_expand): Ditto. - * toplev.cc (Fcomputer, Fsystem, Foctave_config_info): Ditto. - * utils.cc (Ffile_in_path): Ditto. - * syscalls.cc (Fdup2, Fexec, Ffcntl, Ffork, Fgetpgrp, Fgetpid, - Fgetppid, Fgetegid, Fgetgid, Fgeteuid, Fgetuid, Fmkfifo, Fpipe, - Fstat, Funlink, Fwaitpid, F): Ditto. - (Flstat): Refer to stat for doc. - - * help.cc (looks_like_texinfo): New function. - (display_help_text): Use it to see if the doc string looks like - Texinfo source. If so, use makeinfo to format the text before - displaying it. - - * mkgendoc: New script. - * Makefile.in: Use it to create gendoc.cc, which is compiled and - run to create DOCSTRINGS file from sources. - - 1999-10-18 John W. Eaton - - * help.cc (help_from_info): Print `unable to find info' message if - try_info returns 127; otherwise, print `not indexed' message. - Don't sleep after printing `not indexed' message. - - 1999-10-14 John W. Eaton - - * parse.y (fold (tree_unary_expression *)): New function. - (make_prefix_op, make_postfix_op): Use it. - - 1999-10-13 John W. Eaton - - * Makefile.in (oct-gperf.h): Ask for ANSI-C output from gperf - (requires gperf-2.7 or later). - - * sighandlers.cc (sigwinch_handler): New function. - (install_signal_handlers): Install it. - - Thu Sep 23 19:49:36 1999 John W. Eaton - - * toplev.cc (Fsystem): For async case, use execl instead of - system, avoiding the need to exit after executing the subprocess. - - Thu Sep 9 17:09:23 1999 John W. Eaton - - * oct-stream.cc (get_size): Allow zero values. - (get_size): New arg, one_elt_size_spec. - (do_scanf_conv): New arg, `conv_count'. Change instantiation - requests and all callers. - (octave_base_stream::do_scanf): Improve scanning of strings. - (octave_base_stream::do_oscanf): Remove size limit on %s conversions. - - * oct-stream.cc (scanf_format_list::all_character_conversions): - Don't count %p as a character conversion. - - Tue Sep 7 08:31:04 1999 John W. Eaton - - * pr-output.cc (set_real_matrix_format, set_complex_matrix_format): - Move check for fixed_point_format ahead of check for - int_or_inf_or_nan. - - Thu Sep 2 11:54:51 1999 John W. Eaton - - * oct-obj.cc (make_argv): Correctly handle empty strings as args. - - Fri Aug 20 08:17:52 1999 John W. Eaton - - * DLD-FUNCTIONS/quad.cc (quad): Delete unused label. - - * unwind-prot.cc (saved_variable::~saved_variable): Don't try to - delete gen_ptr_value here. - - Mon Aug 16 21:34:33 1999 John W. Eaton - - * lex.l (next_token_is_sep_op): New function. - (handle_close_brace, maybe_unput_comma): Use it. - (have_continuation): Also handle CRLF here. - - Wed Aug 11 16:06:57 1999 John W. Eaton - - * file-io.cc (Ffopen): Make fopen ("filename") work and imply that - MODE = "r". - - Wed Jul 21 15:38:52 1999 John W. Eaton - - * help.cc (display_names_from_help_list): Sort names before - listing them. - (print_symbol_type, Ftype): Also handle built-in constants. - (LIST_SYMBOLS): Correct call to symbol_table::name_list. - (simple_help): List constants here too. List constants and - variables before functions, not after. Sort names before listing - them. - - * variables.cc (do_who): Display built-in constants in a separate - section. - - * error.cc (bind_global_error_variable, clear_global_error_variable): - Call bind_builtin_constant, not bind_builtin_variable to set - __error_text__. - * octave.cc (intern_argv): Likewise, for argv and __argv__. - - * defun.cc (install_builtin_constant): Move function guts to - bind_builtin_constant in variables.cc. - * variables.cc (bind_builtin_constant): New function. - - * symtab.cc (symbol_record::define, symbol_record::variable_reference): - Handle constants the same as functions. - (symbol_record::link_to_builtin_variable): New function. - (symbol_record::define_builtin_const): New function. - (symbol_record::define_as_fcn): Delete unused function. - (symbol_record::read_only_error): - Handle constants the same as variables. - * symtab.h (symbol_record::BUILTIN_CONSTANT): New enum value. - (symbol_record::symbol_type): Increase width to 7 bits. - (symbol_record::symbol_def::is_constant): New function. - (symbol_record::symbol_def::is_builtin_constant): New function. - (symbol_record::is_constant): New function. - (symbol_record::is_builtin_constant): New function. - (SYMTAB_ALL_TYPES): Add symbol_record::BUILTIN_CONSTANT. - * variables.cc (link_to_builtin_variable): Delete unused function. - (link_to_builtin_or_function): Handle built-in constants here too. - - * defun.cc (install_builtin_variable): Delete inst_as_fcn arg. - (install_builtin_constant): New function. - (install_builtin_variable_as_function): Delete unused function. - * defun.h (DEFVAR_INTERNAL): Delete inst_as_fcn arg. - (DEFCONST_INTERNAL): New macro. - * defun.h (DEFVAR): Delete inst_as_fcn arg. - (DEFCONST, DEFCONSTX): Define using DEFCONST_INTERNAL instead of - DEFVAR_INTERNAL. - * data.cc, defaults.cc, error.cc, help.cc, input.cc, lex.l, - load-save.cc, oct-hist.cc, oct-procbuf.cc, ov-fcn.h, - ov-usr-fcn.cc, ov.cc, pager.cc, parse.y, pr-output.cc, - pt-assign.cc, pt-decl.cc, pt-mat.cc, pt-plot.cc, pt-stmt.cc, - toplev.cc, variables.cc: - Change all invocations of DEFVAR to match new definition. - - * data.cc (symbols_of_data): Add DEFCONSTs for true and false. - - Thu Jul 15 10:59:42 1999 John W. Eaton - - * data.cc (Fis_bool, Fis_complex, Fisempty, Fisnumeric, Fis_list, - Fis_map, Fis_struct): Return bool object. - (Fisreal): New function. - - * ov-str-mat.h (octave_char_matrix_str): Only return true if - Vimplicit_str_to_num_ok is also true. - - * DLD-FUNCTIONS/time.cc (Ftime): Print usage message if any - arguments are supplied. - - * variables.cc (symbol_out_of_date): Call octave_time for time stamps. - - * fn-cache.h (octave_fcn_file_name_cache::timestamp): - Now octave_time object. - - * strftime.c: Move to liboctave directory. - * Makefile.in (DIST_SRC): Delete from list. - - * ov-usr-fcn.h (octave_user_function::t_parsed, - octave_user_function::t_checked): Now octave_time objects. - (octave_user_function::time_parsed, - (octave_user_function::time_checked): - Return value is now octave_time object. - (octave_user_function::mark_fcn_file_up_to_date)): - Arg is now octave_time object. - - * ov-fcn.h (octave_function::mark_fcn_file_up_to_date)): - Arg is now octave_time object. - (octave_function::time_parsed, octave_function::time_checked): - Return value is now octave_time object. - - * input.cc (Vlast_prompt_time): Now an octave_time object. - (octave_gets): Call octave_time::stamp() to set Vlast_prompt_time. - - * DLD-FUNCTIONS/time.cc (mk_tm_map, extract_tm, Ftime, Fgmtime, - Flocaltime, Fmktime, Fstrftime): Use new classes defined in - liboctave/oct-time.cc instead of accessing C functions directly. - - Wed Jul 14 17:38:46 1999 John W. Eaton - - * systime.h: Move to liboctave directory. - * Makefile.in (INCLUDES): Delete it from the list - - Tue Jul 13 14:34:57 1999 John W. Eaton - - * sighandlers.cc (sigchld_handler): Only wait for processes in - octave_child_list. - * toplev.cc (cmd_status): Delete unused static variable. - (cmd_death_handler): Delete unused function. - (run_command_and_return_output): Don't add cmd_death_handler to - octave_child_list. Simply extract command exit status from - calling close() on the procstream object. - - Mon Jul 12 22:38:50 1999 John W. Eaton - - * defun.h (DEFUN_MAPPER): Handle new args, d_b_map and c_b_map. - * defun-int.h (DEFUN_MAPPER_INTERNAL): Likewise. - * mappers.cc (install_mapper_functions): Supply new args to - all uses of DEFUN_MAPPER. - * ov-mapper.cc (octave_mapper::apply): Handle mapper functions - that return bool objects. - * ov-mapper.h (octave_mapper::d_b_mapper, octave_mapper::c_b_mapper): - New typedefs. - (octave_mapper::octave_mapper): Handle new mapper function types. - - * DLD-FUNCTIONS/minmax.cc: Do a better job of handling NaNs. - - Sun Jul 11 13:15:17 1999 John W. Eaton - - * pr-output.cc (do_plus_format (ostream&, double)): New function. - (octave_print_internal (ostream&, double, bool)): Use it. - (octave_print_internal (ostream&, const Matrix&, bool, int)): Ditto. - - * pr-output.cc (do_plus_format (ostream&, const Complex&)): - New function. - (octave_print_internal (ostream&, const Complex&, bool)): Use it. - (octave_print_internal (ostream&, const ComplexMatrix&, bool, int)): - Ditto. - - Sun Jun 20 23:04:00 1999 John W. Eaton - - * sysdep.cc: Include sys/ioctl.h if available. - - Sat Jun 19 12:07:16 1999 John W. Eaton - - * variables.cc (do_who): Make pattern and multiple non-option - arguments work. - - Mon Jun 7 09:54:51 1999 John W. Eaton - - * lex.l (next_token_is_bin_op, next_token_is_postfix_unary_op, - handle_number): Delete yytext arg. Change all callers. - (next_token_is_postfix_unary_op): Check the first character - obtained from yyinput before calling it again. - (next_token_is_bin_op): Do a more thorough check. - (handle_identifier): Also enter token in local symbol table if the - following token is a dot and it looks like a binary operator. - (whitespace_in_literal_matrix): Now static. - - * lex.l: Always use unput, not yyunput. - - Fri May 28 11:02:37 1999 John W. Eaton - - * DLD-FUNCTIONS/chol.cc (Fchol): If two output arguments, never - produce error message. - - Thu May 27 18:28:35 1999 John W. Eaton - - * DLD-FUNCTIONS/chol.cc (Fchol): Also return info as second output. - - * DLD-FUNCTIONS/minmax.cc (max (const ComplexMatrix&, const - ComplexMatrix&)): Correct test for real columns only. - (min (const ComplexMatrix&, const ComplexMatrix&)): Likewise. - - Wed Apr 14 12:54:25 1999 John W. Eaton - - * DLD-FUNCTIONS/dassl.cc (Fdassl): Prevent recursive calls. - * DLD-FUNCTIONS/fsolve.cc (Ffsolve): Likewise. - * DLD-FUNCTIONS/lsode.cc (Flsode): Likewise. - * DLD-FUNCTIONS/quad.cc (Fquad): Likewise. - - * file-io.cc (Fsscanf, Ffscanf): Doc fix. - - Sat Mar 27 11:07:51 1999 John W. Eaton - - * ov.h (octave_value::count): New function. - * symtab.cc (symbol_record::dump_symbol_info): New function. - * symtab.cc (symbol_record::symbol_def::dump_symbol_info): Ditto. - * variables.cc (F__dump_symbol_info__): Ditto. - - * pt-misc.cc (tree_parameter_list::clear): New function. - * ov-usr-fcn.h (octave_user_function::clear_args_passed): Ditto. - * ov-usr-fcn.cc (clear_param_list): New function. - (clear_args_passed): New function. - (octave_user_function::do_index_op): Use them to decrement - reference counts on local variables. - - Fri Mar 26 00:51:53 1999 John W. Eaton - - * Makefile.in (libraries): Use the libfoo.a(objects) method of - creating static libs. - - * defaults.cc (symbols_of_defaults): Initialize LOADPATH to - Vload_path, not ":". - - Thu Mar 18 12:09:23 1999 John W. Eaton - - * data.cc (Fisnumeric): Fix typo. - - Thu Mar 4 02:17:04 1999 James Macnicol - - * file-io.cc (Ffread, Ffwrite): Add uint16 and uint32 data types - to doc string. - - Wed Mar 3 11:55:17 1999 John W. Eaton - - * lex.l (handle_string): Allow "" to pass through unchanged if - working on a gset command. - - Tue Mar 2 01:36:29 1999 John W. Eaton - - * variables.cc (Fexist): If a variable isn't defined, only go on - to look for a global by the same name if we are at the top level. - - Fri Jan 29 02:18:36 1999 John W. Eaton - - * version.h (OCTAVE_NAME_AND_VERSION): Say `GNU Octave', not just - Octave. - - Thu Jan 28 21:29:16 1999 John W. Eaton - - * toplev.cc (Fcomputer): Use CANONICAL_HOST_TYPE, not TARGET_HOST_TYPE. - (octave_config_info): Likewise. - * version.h: Ditto. - - * sysdep.cc (Fpause): Flush output before getting user input. - - Wed Jan 27 14:18:29 1999 John W. Eaton - - * Makefile.in (DEFFUN_PATTERN, DEFVAR_PATTERN): Use egrep again. - Make the patterns work with stupid egreps that don't like empty - elements in alternation patterns. - - Fri Jan 22 04:41:48 1999 John W. Eaton - - * load-save.cc (save_ascii_data): Check for string type first, - then range, then the rest. - (save_binary_data): Ditto. - - * pager.cc (more_than_a_screenful): Accept length as second arg. - Handle long lines properly, assuming the terminal wraps long lines. - (octave_pager_buf::do_sync): Accept length of data as second arg. - Use write instead of << to put characters on output stream. - (octave_pager_buf::sync): Don't assume data ends at first NUL. - (octave_diary_buf::sync): Ditto. - - Thu Jan 21 22:15:23 1999 John W. Eaton - - * load-save.cc (save_mat_binary_data): Check for string type - first, then range, then the rest. - - Wed Jan 20 12:01:14 1999 John W. Eaton - - * oct-stream.cc (octave_base_stream::do_scanf): Handle short and - long ints correctly. - - Fri Jan 15 13:04:58 1999 John W. Eaton - - * parse.y (end_error): Handle case of endswitch too. - - * Makefile.in: Use basic regular expressions and grep instead of - egrep to find files that contain DEFVAR, DEFCONST, or DEFUN. - - Wed Dec 9 14:14:11 1998 John W. Eaton - - * Makefile.in (octave): Add $(RDYNAMIC_FLAG) to link command. - - Fri Dec 4 20:26:33 1998 John W. Eaton - - * DLD-FUNCTIONS/time.cc (Fstrftime): Make it work even when not - using the GNU version of strftime, which allows passing NULL for - the buffer to determine the required size of the buffer. - - Wed Dec 2 22:38:40 1998 John W. Eaton - - * utils.cc (file_in_loadpath): Expect argc == 2, not 3. - - Tue Nov 24 23:38:19 1998 Eric Norum - - * mkbuiltins: Also strip off leading `./' from file names. - * mkops: Ditto. - - Tue Nov 24 23:24:26 1998 John W. Eaton - - * strftime.c: Surround everything with #ifdef HAVE_STRFTIME / #endif. - - * lex.h (YY_FATAL_ERROR): Call yy_falta_error after - jump_to_top_level to avoid gcc warning. - - Fri Nov 20 13:34:47 1998 John W. Eaton - - * ov-bool.h, ov-bool.cc (class octave_bool): Derive from - octave_base_scalar and get common functions via derivation. - * ov-scalar.h, ov-scalar.cc (class octave_scalar): Ditto. - * ov-complex.h, ov-complex.cc (class octave_complex): Ditto. - - * ov-base-scalar.h, ov-base-scalar.cc (class octave_base_scalar): - New files for new class definition. Put common scalar data type - stuff here. - * Makefile.in (OV_INCLUDES, OV_SRC): Add them to the lists. - - Thu Nov 19 14:30:25 1998 John W. Eaton - - * dynamic-ld.cc (octave_dynamic_loader::mangle_name): - Prepend underscore here. - (octave_dynamic_loader::load_fcn_from_dot_oct_file): Not here. - - * ov-re-mat.h (octave_matrix_value): Delete experimental code for - handling structure references for things like .rows, .cols, etc. - - Wed Nov 18 01:18:46 1998 John W. Eaton - - * Makefile.in (VAR_FILES): Be more careful about matching. - (DEF_FILES): Likewise. - - * ov-base-mat.h, ov-base-mat.cc, ov-bool-mat.h, ov-bool-mat.cc, - ov-ch-mat.h, ov-ch-mat.cc, ov-cx-mat.h, ov-cx-mat.cc, - ov-re-mat.h, ov-re-mat.cc: Move default definition of all, any, - is_matrix_type, is_numeric_type, valid_as_zero_index, and - do_index_op to base class. - Provide definitions that override the defaults where necessary. - - * mappers.cc: Don't include lo-specfun.h. - - Tue Nov 17 14:35:56 1998 John W. Eaton - - * besselj.cc (Fbesselh, Fairy); New functions. - (Fbesselj, Fbessely, Fbesselk, Fbesseli): Update doc strings. - (do_bessel): Handle additional args. - - Fri Nov 13 14:47:11 1998 John W. Eaton - - * lex.l (NUMBER): Allow hexadecimal constants. - (looks_like_hex): New function. - (handle_number): Check for hexadecimal constants and convert them - to unsigned integer values. - - Thu Nov 12 11:13:24 1998 John W. Eaton - - * input.cc (gnu_readline): Check for EOF from command_editor::readline. - - * ov-str-mat.h, ov-str-mat.cc (class octave_char_matrix_str): - Get common functions via new derivation scheme. - - * ov-bool-mat.h, ov-bool-mat.cc (class octave_bool_matrix): - Derive from octave_base_matrix and get common functions via derivation. - * ov-ch-mat.h, ov-ch-mat.cc (class octave_char_matrix): Ditto. - * ov-cx-mat.h, ov-cx-mat.cc (class octave_complex_matrix): Ditto. - * ov-re-mat.h, ov-re-mat.cc (class octave_real_matrix): Ditto. - - * ov-base-mat.h, ov-base-mat.cc (class octave_base_matrix): New - files for new class definition. Put common matrix data type - stuff here. - - * ov-list.cc (Fnth): New function. - - * ov-list.cc (octave_list::do_index_op): Allow more complex indexing. - - * oct-obj.cc (octave_value_list::index): New function. - (octave_value_list::octve_value_list (Array)): - New private constructor. - - * ov-list.cc (Fsplice): Fix docstring to match. - * oct-obj.cc (octave_value_list::splice): Allow special case - splice (x, length(x)+1, 0, y) to be equivalent to append (x, y). - - * ov-list.cc (Fappend): If an arg is a list, concatenate the lists - instead of appending arg as a single element. - - Wed Nov 11 14:07:27 1998 John W. Eaton - - * load-save.cc (get_mat_data_input_line): New function. - (get_lines_and_columns): Use it here. - (read_mat_ascii_data): And here and do our own reading instead of - using Matrix::operator<<. - - Tue Nov 10 16:12:25 1998 John W. Eaton - - * parse.y (make_constant): Initialize retval to 0. - - * toplev.h (clean_up_and_exit (void)): Delete declaration. - * toplev.cc (do_octave_atexit): Move guts of clean_up_for_exit - here, but ensure that the actions are only executed once. - * octave.cc (main): Don't register cleanup_tmp_files with atexit. - - * ov.h, ov.cc (class octave_value): Use DECLARE_OCTAVE_ALLOCATOR - and DEFINE_OCTAVE_ALLOCATOR for uniform declaration and definition - of allocator functions. Use DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA - and DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA for uniform declaration - and definition of type id functions and data. - * ov-usr-fcn.h, ov-usr-fcn.cc (class octave_user_function): Ditto. - * ov-scalar.h, ov-scalar.cc (class octave_scalar): Ditto. - * ov-re-mat.h ov-re-mat.cc (class octave_matrix): Ditto. - * ov-range.h, ov-range.cc (class octave_range): Ditto. - * ov-mapper.h, ov-mapper.cc (class octave_mapper): Ditto. - * ov-list.h, ov-list.cc (class octave_list): Ditto. - * ov-file.h, ov-file.cc (class octave_file): Ditto. - * ov-fcn.h, ov-fcn.cc (class octave_function): Ditto. - * ov-cx-mat.h, ov-cx-mat.cc (class octave_complex_matrix): Ditto. - * ov-complex.h, ov-complex.cc (class octave_complex): Ditto. - * ov-ch-mat.h, ov-ch-mat.cc (octave_char_matrix): Ditto. - * ov-builtin.h, ov-builtin.cc (class octave_builtin): Ditto. - * ov-bool.h, ov-bool.cc (class octave_bool): Ditto. - * ov-bool-mat.h, ov-bool-mat.cc (octave_bool_matrix): Ditto. - - * ov.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): New macro. - (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Ditto. - - Mon Nov 9 16:12:37 1998 John W. Eaton - - * pr-output.cc (octave_print_internal): Reorder default args for - charMatrix version. - (octave_print_internal): New function for boolMatrix. - - * version.h (OCTAVE_STARTUP_MESSAGE): Note that this is a - development release. - - * toplev.cc (do_octave_atexit): Call flush_octave_stdout here. - (clean_up_for_exit): And here. - - Mon Nov 9 15:20:53 1998 John W. Eaton - - * input.cc (get_user_input): Check retval.length(), not retval.length. - - Sun Nov 8 19:30:33 1998 John W. Eaton - - * pt-assign.cc (tree_simple_assignment::rvalue): If etype is - asn_eq, don't evaluate ult again because retval is just rhs value. - (tree_multi_assignment::rvalue): Likewise. - - Fri Nov 6 12:14:29 1998 John W. Eaton - - * pt-loop.cc (tree_for_command::eval): Move code for string RHS - outside if clause for matrix types. - - * pt-idx.cc: Don't forget to define arg_nm. - Move contstructor here. - * pt-idx.h: From here. - - * data.cc (Fisempty): Also return true for empty strings. - - Wed Nov 4 17:21:41 1998 John W. Eaton - - * ov-base.cc (octave_base_value::rows, octave_base_value::columns, - octave_base_value::length): Delete. - * ov-base.h (octave_base_value::rows, octave_base_value::columns, - octave_base_value::length): Define here. All return -1 if not - defined in a derived class. - - * data.cc (Fis_matrix): Also return true if the arg is a range. - - Tue Nov 3 09:40:24 1998 John W. Eaton - - * data.cc (Fis_bool): New function. - Also add alias for islogical. - - * ov.h (octave_value::is_bool_type): New function. - * ov-base.h (octave_base_value::is_bool_type): Likewise. - * ov-bool.h (octave_bool::is_bool_type): Likewise. - * ov-bool-mat.h (octave_bool_matrix::is_bool_type): Likewise. - - Mon Nov 2 13:36:04 1998 John W. Eaton - - * lex.l (handle_close_brace): Also handle case of ']' followed by - other assignment ops (+=, -=, ...). - - * pt-assign.cc (tree_simple_assignment::rvalue): Correctly handle - return value and printing for operators other than `='. - (tree_multi_assignment::rvalue): Likewise. - - * pt-assign.h (tree_multi_assignment::etype): New data member. - * pt-assign.cc (tree_multi_assignment::rvalue): Use it instead of - assuming `='. - (tree_multi_assignment::oper): New function. - * pt-pr-code.cc (tree_print_code::visit_multi_assignment): Use - it instead of always printing `='. - * parse.y (make_assign_op): Pass expression type to - tree_multi_assignment constructor. - - * Makefile.in (stmp-pic): New target. - ($(PICOBJ)): Depend on stmp-pic, not pic. - (clean): Delete stmp-pic. - - Sun Nov 1 23:24:55 1998 John W. Eaton - - * mappers.cc (install_mapper_functions): Add alias for isfinite. - - Sat Oct 31 08:46:55 1998 John W. Eaton - - * data.cc (Fisnumeric): New function. - - Fri Oct 30 08:39:30 1998 John W. Eaton - - * oct-lvalue.cc (octave_lvalue::do_unary_op): Make it work for - indexed ops too. - * ov.cc (octave_value::unary_op_to_assign_op): New function. - (octave_value::do_non_const_unary_op): New function for indexed ops. - - * parse.y (LEFTDIV_EQ, ELEFTDIV_EQ): New tokens. - (assign_expr): Add rules for them. - (make_assign_op): Handle them here too. - * lex.l: Recognize them. - * ov.h (octave_value::assign_op): Add ldiv_eq and el_ldiv_eq. - * ov.cc (octave_value::assign_op_as_string): Ditto. - (octave_value::op_eq_to_binary_op): Ditto. - (octave_value::assign): Handle OP= style operators with brute force. - (octave_value::simple_assign): New function. - - * parse.y (matrix): Dont' forget to reset - lexer_flags.looking_at_matrix_or_assign_lhs. - - * oct-lvalue.cc (octave_lvalue::assign): Don't call change - function if error occurs. - (octave_lvalue::do_unary_op): If we have an index, fail with message. - - Thu Oct 29 09:27:04 1998 John W. Eaton - - * ov.cc (do_binary_op): Protect against invalid type conversions. - (try_assignment_with_conversion): Likewise. - (do_unary_op): Likewise. - - * ov.h (OV_UNOP_FN, OV_UNOP_OP, OV_UNOP_FN_OP): New macros. - Use them to define not, uminus, transpose, hermitian functions - and operators ! and -. - (OV_BINOP_FN, OV_BINOP_OP, OV_BINOP_FN_OP): New macros. - Use them to define add, sub, mul, div, pow, ldiv, lshift, rshift, - lt, le, eq, ge, gt, ne, el_mul, el_div, el_pow, el_ldiv, el_and, - el_or, struct_ref, functions and operators <, <=, ==, >=, >, !=, - +, -, *, and /. - - * ops.h (CONVDECLX): New macro. - * ov-base.cc (matrix_conv, complex_matrix_conv, string_conv): - Use it to declare these functions. - - * ops.h (CONVDECL, INSTALL_WIDENOP): - Prefix function name with `oct_conv_'. - (INSTALL_BINOP, BINOPDECL): Prefix function name with `oct_binop_'. - (INSTALL_ASSIGNOP, INSTALL_ASSIGNANYOP, ASSIGNOPDECL): - Prefix function name with `oct_assignop_'. - (UNOPDECL, DEFNCUNOP_METHOD, INSTALL_UNOP, INSTALL_NCUNOP): - Prefix function name with `oct_unop_'. - - * ov-str-mat.cc (default_numeric_conversion_function): - Return 0 if conversion fails. - - * parse.y (make_prefix_op, make_postfix_op): Use - octave_value::unary_op enum. - - * pt-unop.cc (tree_prefix_expression::rvalue): Use new unary_op - functions from octave_value and octave_lvalue classes. - (tree_prefix_expression::rvalue): Likewise. - - * pt-unop.cc (tree_unary_expression::oper): Move here. - (tree_prefix_expression::oper, tree_postfix_expression): From here. - - * pt-unop.h (tree_prefix_expression, tree_postfix_expression): - Delete enums. - (tree_unary_expression): Use octave_value::unary_op enum. - * parse.y (make_prefix_op, make_postfix_op): Likewise. - - * oct-lvalue.h (octave_lvalue::do_unary_op): New function. - (octave_lvalue::increment, octave_lvalue::decrement): Delete. - - * ov-typeinfo.h (octave_value_typeinfo::non_const_unary_ops): - New data member. - * ov-typeinfo.h (octave_value_typeinfo::lookup_non_const_unary_op): - New function. - * ov-typeinfo.cc (octave_value_typeinfo::register_non_const_unary_op): - New function. - (octave_value_typeinfo::do_register_non_const_unary_op): Ditto. - (octave_value_typeinfo::do_lookup_non_const_unary_op): Ditto. - - * ov.cc (octave_value::do_non_const_unary_op): New function. - - * Makefile.in (OP_XSRC): Add op-chm.cc and op-range.cc to the list. - - * OPERATORS/op-str-str.cc: Define string matrix unary operators here. - (install_str_str_ops): Install them here. - * ov-bool-mat.h (octave_bool_matrix::transpose, - octave_bool_matrix_value::hermitian): Delete. - - * OPERATORS/op-chm.cc: New file. Define char matrix unary operators. - (install_chm_ops): Install them here. - * ov-ch-mat.h (octave_char_matrix::transpose, - octave_char_matrix_value::hermitian): Delete. - * ops.cc (install_ops): Call install_chm_ops. - - * OPERATORS/op-bm-bm.cc: Define bool matrix unary operators here. - (install_bm_bm_ops): Install them here. - * ov-bool-mat.h (octave_bool_matrix::transpose, - octave_bool_matrix_value::hermitian): Delete. - - * ov-bool.h (octave_bool::not, octave_bool::uminus, - octave_bool::transpose, octave_bool::hermitian): Delete. - - * OPERATORS/op-cs-cs.cc: Define complex scalar unary operators here. - (install_cs_cs_ops): Install them here. - * ov-complex.h (octave_complex::not, octave_complex::uminus, - octave_complex::transpose, octave_complex::hermitian): Delete. - - * OPERATORS/op-cm-cm.cc: Define complex matrix unary operators here. - (install_cm_cm_ops): Install them here. - * ov-cx-mat.h (octave_complex_matrix::not, - octave_complex_matrix::uminus, octave_complex_matrix::transpose, - octave_complex_matrix::hermitian): Delete. - - * OPERATORS/op-m-m.cc: Define matrix unary operators here. - (install_m_m_ops): Install them here. - * ov-re-mat.h (octave_matrix::not, octave_matrix::uminus, - octave_matrix::transpose, octave_matrix::hermitian): Delete. - - * OPERATORS/op-range.cc: New file. Define range unary operators. - (install_range_ops): Install them here. - * ov-range.h (octave_range::not, octave_range::uminus, - octave_range::transpose, octave_range::hermitian): Delete. - * ops.cc (install_ops): Call install_range_ops. - - * OPERATORS/op-s-s.cc: Define scalar unary operators here. - (install_s_s_ops): Install them here. - * ov-scalar.h (octave_scalar::not, octave_scalar::uminus, - octave_scalar::transpose, octave_scalar::hermitian): Delete. - - * ops.h (INSTALL_UNOP, CAST_UNOP_ARG, UNOPDECL, DEFUNOPX, DEFUNOP, - DEFUNOP_OP, DEFUNOP_FN): New macros. - - * ov.h (unary_op_fcn): New typedef. - (octave_value::unary_op): New enum. - * ov.cc (octave_value::octave_value): New function. - - * ov.h (octave_value::not, octave_value::uminus, - octave_value::transpose, octave_value::hermitian, - octave_value::increment, octave_value::decrement): Delete. - - * ov-base.cc (octave_base_value::not, octave_base_value::uminus, - octave_base_value::transpose, octave_base_value::hermitian, - octave_base_value::increment, octave_base_value::decrement): Delete. - - * ov.cc (gripe_unary_op): New function. - (do_unary_op): New function. - * ov-typeinfo.h (octave_value_typeinfo::unary_ops): - New data member. - * ov-typeinfo.cc (octave_value_info::register_unary_op, - octave_value_info::do_register_unary_op, - octave_value_info::lookup_unary_op, - octave_value_info::do_lookup_unary_op): - New functions. - - * ov-list.cc (Fsplice): Use new octave_value::int_value function here. - (octave_list::do_index_op): Likewise. - (octave_list::assign): Likewise. - * toplev.cc (Fquit): Likewise. - * syscalls.cc (Fwaitpid): Likewise. - (Ffcntl): Likewise. - * file-io.cc (do_fread): Likewise. - (do_fwrite): Likewise. - * data.cc (make_diag): Likewise. - (Fsize): Likewise. - (get_dimensions): Likewise. - (Flinspace): - - * ov-base.cc (octave_base_value::int_value): New function. - (octave_base_value::nint_value): Ditto. - * ov.h (octave_value::int_value): Ditto. - (octave_value::nint_value): Ditto. - - * ov-list.cc (octave_list::assign): Fix off-by-one error. - - Wed Oct 28 11:01:37 1998 John W. Eaton - - * load-save.cc (read_mat_ascii_data): Try harder to convert file - name to valid variable name. - - * data.cc (Fisempty, Fis_matrix): New functions. - - * ov-str-mat.h (octave_char_matrix_str::is_matrix_type): New function. - - * OPERATORS/op-list.cc: New file. - * Makefile.in (OP_XSRC): Add it to the list. - - * ov-list.cc (octave_list::assign): New function. - - * ov-typeinfo.h (octave_value_typeinfo::assignany_ops): - New data member. - * ov-typeinfo.cc (octave_value_info::register_assignany_op, - octave_value_info::do_register_assignany_op, - octave_value_info::lookup_assignany_op, - octave_value_info::do_lookup_assignany_op): - New functions. - * ov.cc (octave_value::try_assignment (octave_value::assign_op, - const octave_value_list&, const octave_value&)): If no assignment - operator for particular RHS type exists, try finding one for - generic octave_value as RHS type. - * ops.h (DEFASSIGNANYOP_FN): New macro. - - * ov-list.cc (Fsplice): New function. - * oct-obj.cc (octave_value_list::splice): New function. - - * ov.cc (Vresize_on_range_error): No longer static. - * ov.h (Vresize_on_range_error): Provide extern declaration. - - * oct-procbuf.cc (symbols_of_oct_procbuf): Don't declare static. - - * data.cc (Flength): New function. - * ov.h (octave_value::length): New virtual function. - * ov-base.cc (octave_base_value::length): New function. - (octave_base_value::rows, octave_base_value::columns): Move - definitions here, from ov-base.h. Don't return -1. Instead, - gripe about wrong argument type. - * ov-bool-mat.h (octave_bool_matrix::length): New function. - * ov-bool.h (octave_bool::length): Ditto. - * ov-ch-mat.h (octave_char_matrix::length): Ditto. - * ov-complex.h (octave_complex::length): Ditto. - * ov-cx-mat.h (octave_complex_matrix::length): Ditto. - * ov-list.h (octave_list::length): Ditto. - * ov-range.h (octave_range::length): Ditto. - * ov-re-mat.h (octave_matrix::length): Ditto. - * ov-scalar.h (octave_scalar::length): Ditto. - - Tue Oct 27 22:19:24 1998 John W. Eaton - - * ov-list.cc (octave_list::print_raw): Handle case of empty list. - (octave_list::print_name_tag): Likewise. - - * octave.cc (intern_argv): Built-in variable argv is now a list of - strings instead of a string vector. - Always bind argv, making it an empty list if there are no args. - - Mon Oct 26 08:41:46 1998 John W. Eaton - - * xdiv.cc (mx_leftdiv_conform): Explicitly declare args to be - passed as references to const objects. Fix explicit instantiation - requests to match. - (mx_div_conform): Likewise. - - * pt-unop.h (tree_prefix_expression): Reorder constructor args to - put those with default values last. - (tree_postfix_expression): Likewise. - * parse.y: Change all callers. - - Fri Oct 23 12:07:32 1998 John W. Eaton - - * utils.cc (Ffile_in_loadpath): New function. - - * defaults.cc (Vload_path, Vdefault_load_path): Now static. - - * help.cc (simple_help): Use Vload_path_dir_path here instead of - trying to reconstruct it from Vload_path. - * fn-cache.cc (octave_fcn_file_name_cache::do_list): Likewise. - (octave_fcn_file_name_cache::update): Likewise. - - * defaults.cc (octave_loadpath): Construct Vload_path_dir_path - using Vdefault_load_path. - (set_default_path): Likewise. - - * defaults.h, defaults.cc (maybe_add_default_load_path): Delete. - - * defaults.cc (Vdefault_load_path): New static variable. - (set_default_path): Set it. - (maybe_add_default_load_path): Use it. - (symbols_of_defaults): Add DEFCONST for DEFAULT_LOADPATH. - Thanks to Rafael Laboissiere . - - * defaults.cc (set_default_path): If OCTAVE_PATH is set in the - environment, call maybe_add_default_load_path on it. - - Tue Oct 20 20:58:04 1998 John W. Eaton - - * defaults.cc (maybe_add_default_load_path): If LOADPATH contains - an embedded "::", insert the default path there too. - - Fri Oct 16 00:52:15 1998 John W. Eaton - - * parse.y (in_matrix_or_assign_lhs): New subroutine for lexical - feedback. - (matrix): Use it. - (assign_lhs): Ditto. - * lex.h (lexical_feedback::looking_at_matrix_or_assign_lhs): New - data member. - * lex.l (handle_identifier): Use it to handle keywords like `cd' - as variables in contexts like [ab, cd] = foo (). - - * ov-str-mat.h - (octave_char_matrix_str::octave_char_matrix_str (char c)): - New constructor. - * ov-ch-mat.h (octave_char_matrix::octave_char_matrix (char c)): - New constructor. - * ov.cc (octave_value::octave_value (char c): New constructor. - - * pt-loop.cc (tree_simple_for_command::eval): Handle case of RHS - as string. - - Thu Oct 15 00:56:47 1998 John W. Eaton - - * DLD-FUNCTIONS/rand.cc: Declare Fortran subroutines as returning - int, not int*. - - Wed Oct 14 23:51:31 1998 Georg Thimm - - * load-save.cc (Vcrash_dumps_octave_core): New static variable. - (save_user_variables): Only save variables if - Vcrash_dumps_octave_core is true. - (symbols_of_load_save): Add DEFVAR for it here. - (crash_dumps_octave_core): New function. - * octave.cc (maximum_braindamage): Bind crash_dumps_octave_core to - 0.0 here. - - Tue Oct 13 22:05:55 1998 John W. Eaton - - * input.cc (read_readline_init_file): New function. - - Thu Oct 8 13:47:55 1998 John W. Eaton - - * oct-procbuf.h (octave_procbuf::wstatus): New data member. - Initialize in constructors. - (octave_procbuf::wait_status): New member function. - * oct-procbuf.cc (octave_procbuf::sys_close): Use class data - member wstatus, not local variable. - * procstream.cc (procstreambase::close): Don't call sys_close directly. - Get subprocess exit status by calling wait_status for our procbuf. - * pt-plot.cc (close_plot_stream): Send "quit" command to gnuplot - before deleting plot_stream. - - Thu Oct 1 22:39:44 1998 John W. Eaton - - * data.cc (Fis_complex): New function. - - Fri Sep 25 11:50:44 1998 John W. Eaton - - * load-save.cc (write_header): Rename from write_binary_header. - Also write header for Octave ASCII files. - - * load-save.cc (Fsave): Implement -append option. - - * defaults.cc (Frehash): New function. - - Fri Sep 25 11:50:44 1998 John W. Eaton - - * help.cc (help_from_info): Improve error message in case that - info doesn't work. - - Thu Sep 24 10:48:12 1998 John W. Eaton - - * Makefile.in (DLD_XSRC): Replace qzval.cc with qz.cc - - * DLD-FUNCTIONS/balance.cc: Update from A. S. Hodel - . - - * DLD-FUNCTIONS/qz.cc: New file. - - * DLD-FUNCTIONS/qzval.cc: Delete. - - * parse.y (plot_command1): Don't allow it to be empty. - (plot_command): Handle simple `PLOT' and `PLOT ranges' as special - cases here. - - Wed Sep 23 21:10:08 1998 John W. Eaton - - * lex.l: Change {SNLCMT}*\n{SNLCMT}* pattern - to {S}*{COMMENT}{SNLCMT}* | {S}*{NL}{SNLCMT}*. - - Fri Sep 4 10:50:00 1998 John W. Eaton - - * file-io.cc (Ffwrite): Fix doc string. - - Wed Sep 2 16:22:23 1998 John W. Eaton - - * input.cc (match_sans_spaces): Make it work. - - * toplev.cc (quit): Require nargout == 0. - - * input.cc (get_user_input): Only try matching "exit", "quit", and - "return" if debugging. - - Tue Sep 1 12:50:24 1998 John W. Eaton - - * octave.cc: Use -H as single character equivalent of --no-history. - - Sat Aug 29 12:23:12 1998 John W. Eaton - - * oct-obj.cc (octave_value_list::make_argv): If some values are - string vectors, insert all the elements, not just the first. - - Tue Aug 18 16:39:50 1998 John W. Eaton - - * oct-stream.cc (octave_base_stream::do_gets): Accept last line of - file even if it doesn't end in a newline character. - - Tue Aug 18 16:25:49 1998 Mumit Khan - - * xdiv.cc (mx_leftdiv_conform, mx_div_conform): Instantiate correct - templates. - - Thu Jul 30 00:37:43 1998 John W. Eaton - - * pt-loop.cc (tree_for_command::eval): Check for range first. - If error occurs when extracting matrix value, return early. - Don't bother to check for string type. - - * ov-ch-mat.h (octave_char_matrix::is_real_matrix): New function. - - Tue Jun 23 15:09:54 1998 John W. Eaton - - * parse.y (clear_current_script_file_name): New function. - (parse_fcn_file): Bind current_script_file_name while script is - executing. Use unwind_protect to clear it once the script is - finished. - - * pt-plot.cc (Fgraw): New function. - - Mon Jun 22 22:13:38 1998 John W. Eaton - - * variables.cc (is_valid_function): Provide version that takes - function name as string. - - * parse.y (binary_expr): Fix thinko that resulted in incorrect - evaluation of -x^y. Thanks to Richard Allan Holcombe - . - (feval): Don't attempt to copy nonexistent arg names. - - Mon Jun 22 21:35:50 1998 Richard Allan Holcombe - - * xpow.cc (xpow): Improve efficiency for matrix^(scalar int) case. - - Thu Jun 4 12:42:46 1998 John W. Eaton - - * ov-usr-fcn.cc (octave_user_function::octave_all_va_args): - If num_args_passed < num_named_args, create zero length list. - - Thu May 14 16:23:15 1998 John W. Eaton - - * DLD-FUNCTIONS/getrusage.cc: Include sys/types.h too. - - Mon May 11 00:38:45 1998 John W. Eaton - - * pager.cc (Fdiary): Don't forget to set write_to_diary file if - just given a file name. - - * input.cc (octave_gets): Only send new line character to - octave_diary if current_input_line is empty or doesn't already end - with a new line character.. - Don't send input from function files or scripts to octave_diary. - - Sun May 3 19:54:38 1998 John W. Eaton - - * lex.l (reset_parser): Also call yyrestart if forced_interactive - is true, but not if input_from_startup_file is true. - - Tue Apr 28 14:06:20 1998 John W. Eaton - - * oct-procbuf.cc (Vkluge_procbuf_delay): New static variable. - (kluge_procbuf_delay): New function. - (symbols_of_oct_procbuf): New function. - (octave_procbuf::open): Delay Vkluge_procbuf_delay microseconds - after forking. - - Thu Apr 23 15:41:08 1998 John W. Eaton - - * defaults.cc (Vload_path_dir_path): New variable. - * utils.cc (file_in_path): Use it. - - * utils.cc (search_path_for_file): Undo previous change. - (file_in_path): Undo previous change. - * defaults.cc (loadpath): Undo previous change. Tilde expansion - is once again handled correctly by the code in - liboctave/pathsearch.cc. - - Mon Apr 20 21:50:34 1998 John W. Eaton - - * data.cc (get_dimensions): Allow zeros ([], 3) to work, for - compatibility with Matlab. - - * dynamic-ld.cc [WITH_DL && ! HAVE_DLFCN_H]: Add declarations for - dlopen, dlerror, dlsym, and dlclose. - - * octave.gperf: Handle __FILE__ and __LINE__. - * lex.l (is_keyword): Likewise. - * Makefile.in (oct-gperf.h): Pass -D option to gperf. - Postprocess output of gperf to convert name of static variable - from lookup to gperf_lookup, to avoid conflict with our function - of the same name defined in variables.cc. - - Sat Apr 18 20:17:10 1998 John W. Eaton - - * help.cc (USE_GNU_INFO): Delete uses of this macro. - - Thu Apr 16 01:00:12 1998 John W. Eaton - - * dynamic-ld.cc: Only include dlfcn.h if HAVE_DLFCN_H. - - Wed Apr 15 01:03:05 1998 John W. Eaton - - * input.cc (Vlast_prompt_time): New global variable. - (octave_gets): Set it. - * ov-fcn.h (octave_function::time_checked): New virtual function - (octave_function::mark_fcn_file_up_to_date): Ditto. - * ov-usr-fcn.h (octave_user_function::time_checked): New function. - (octave_user_function::mark_fcn_file_up_to_date): Ditto. - (octave_user_function::t_checked): New data member. - * variables.cc (symbol_out_of_date): Only check file time stamp if - a prompt has been printed since the last time check. - - * pt-plot.h, pt-plot.cc (subplot_axes): New class. - (subplot): Handle axes. - (Vgnuplot_command_axes): New static variable. - (gnuplot_command_axes): New function. - (symbols_of_pt_plot): DEFVAR gnuplot_command_axes. - * pt-walk.h (tree_walker::visit_subplot_axes): New virtual function. - * parse.y (plot_options): Handle axes. - * lex.l (plot_axes_token): New function. - (is_keyword): Use it. - (is_plot_keyword): Recognize "axes" and "axis". - * lex.h (class lexical_feedback): New field, in_plot_axes. - (lexical_feedback::init): Reset it. - - Tue Apr 14 23:32:27 1998 John W. Eaton - - * parse.y (parse_fcn_file): New arg, force_script. Change callers. - - Fri Apr 10 11:01:27 1998 John W. Eaton - - * help.cc (type): Also print values of variables. - - Wed Apr 8 01:00:58 1998 John W. Eaton - - * pr-output.cc (set_format): Set scale to 1.0 if all elements are - int or inf or nan. - - * parse.y (Vwarn_future_time_stamp): New variable. - (symbols_of_parse): Add DEFVAR for it. - (warn_future_time_stamp): New function. - (frob_function_def): Maybe warn about files with future time stamps. - - Thu Apr 2 20:43:45 1998 John W. Eaton - - * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): In - error messages, print element numbers starting with 1, not 0. - - Sat Mar 28 15:25:44 1998 John W. Eaton - - * toplev.cc (clean_up_for_exit): New function. - (clean_up_and_exit): Use it. - * sighandlers.cc (my_friendly_exit): Call it instead of - clean_up_and_exit, then do default action for signal. - - * sighandlers.cc (octave_new_handler): Call my_friendly_exit with - signal set to SIGABRT if it is defined, or -1 otherwise. - - * error.cc (verror): Fix thinko in attempt to skip `error: ' tag - when buffering error messages. - * pt-except.cc (tree_try_catch::eval): Reset buffer_error_messages - here if just discarding unwind_protect frame. - - Wed Mar 18 12:35:18 1998 John W. Eaton - - * xpow.cc (elem_xpow): For real-scalar .^ matrix case, result is - complex only if real-scalar is negative and matrix has some - non-integer values. - - Tue Mar 17 17:47:50 1998 John W. Eaton - - * pt-plot.cc (Vgnuplot_command_plot, Vgnuplot_command_replot, - Vgnuplot_command_splot, Vgnuplot_command_using, - Vgnuplot_command_with, Vgnuplot_command_title, - Vgnuplot_command_end): New static variables. - (symbols_of_pt_plot): DEFVAR them. - (gnuplot_command_plot, gnuplot_command_replot, - gnuplot_command_splot, gnuplot_command_using, - gnuplot_command_with, gnuplot_command_title, - gnuplot_command_end): New functions. - (open_plot_stream, send_to_plot_stream, tree_plot_command::eval, - subplot_using::print, subplot_style::print, subplot::print, - do_external_plotter_cd, Fgset, Fgshow): Use them instead of the - GPLOT_CMD_PLOT, GPLOT_CMD_REPLOT, GPLOT_CMD_SPLOT, - GPLOT_CMD_USING, GPLOT_CMD_WITH, GPLOT_CMD_TITLE, and - GPLOT_CMD_END macros. - - Fri Feb 27 12:25:27 1998 John W. Eaton - - * help.cc (additional_help_message): Fix www address. - - Tue Feb 24 00:42:59 1998 John W. Eaton - - * help.cc (simple_help): Put additional help message first. - (additional_help_message): Add information about web site and - mailing list. - - Fri Feb 20 00:41:06 1998 John W. Eaton - - * pt-plot.cc (GPLOT_CMD_REPLOT): Clear before replot. - - * Makefile.in: Better handling of lib flags for linking. - - Thu Feb 19 21:14:30 1998 John W. Eaton - - * pt-decl.cc (Vinitialize_global_values): New static variable. - (initialize_global_variables): New function. - (symbols_of_pt_decl): New function. - DEFVAR Vinitialize_global_values and initialize_global_variables. - (tree_global_command::do_init): If initialize_global_variables is - not true and the variable doesn't have an explicit initializer, don't - initialize it. If we are giving it a default value, use the value - of the variable defualt_global_variable_value. - * octave.cc (maximum_braindamage): Set default_global_variable_value - and initialize_global_variables to Matlab-compatible values. - - Wed Feb 18 04:35:31 1998 John W. Eaton - - * DLD-FUNCTIONS/besselj.cc: Rename from bessel.cc. - * Makefile.in (DLD_XSRC): Likewise. - - * syscalls.cc (Fvfork): Delete. - - * oct-procbuf.cc: Just use fork. - - * parse.y (feval): Provide version that takes function name - separate from other args. - * parse.h: Declare it. - - * oct-procbuf.cc (octave_procbuf::open): Move declaration of - child_std_end outside of child scope and declare volatile. - - Mon Feb 16 15:04:28 1998 John W. Eaton - - * parse.y: Include cstdio, for SEEK_SET. - - Thu Feb 12 22:07:00 1998 John W. Eaton - - * system.c: New file. - * Makefile.in (SOURCES): Add it to the list. - - Fri Feb 6 01:23:18 1998 John W. Eaton - - * oct-stream.cc (octave_base_stream::file_number): Rename from fileno. - Change all uses. - - * fsolve.cc (fsolve_option_table): Add missing & to function names. - - Thu Feb 5 02:27:18 1998 John W. Eaton - - * dirfns.cc (Fls): If first attempt at reading process output - fails, sleep once and try again. - * toplev.cc (run_command_and_return_output): Likewise. - - * oct-procbuf.cc (octave_procbuf::open): Use vfork if it is available. - - * syscalls.cc (Fvfork): New function. - - * ov-bool-mat.cc: Only declare assign function if - CXX_NEW_FRIEND_TEMPLATE_DECL is not defined. - - * ov-base.h, ov-bool-mat.h, ov-bool.h, ov-ch-mat.h, ov-complex.h, - ov-cx-mat.h, ov-range.h, ov-re-mat.h, ov-scalar.h: Handle default - args for *_value functions consistently. - - * symtab.cc (maybe_list_cmp_fcn): Declare args as void*, not - void**, then use X_CAST. - - * OPERATORS/op-s-cm.cc: Include mx-cm-s.h. - - * defun-int.h: Include ov-builtin.h, ov-mapper.h, and symtab.h. - (install_builtin_mapper, install_builtin_function, - install_builtin_variable) Use specific types rather than void * in - declaration. - * defun.cc (install_builtin_mapper, install_builtin_function, - install_builtin_variable): Likewise. Eliminate casts. - - * load-save.cc (read_binary_data, read_mat_file_header, - save_binary_data): Use X_CAST, not static_cast. - * unwind-prot.h (unwind_protect::save_ptr): Likewise. - * Map.cc (goodCHptr, index_to_CHptr, CHptr_to_index): Likewise. - * dynamic-ld.cc (octave_dlopen_dynamic_loder::resolve_reference): - Likewise. - - * pt-mat.cc (tm_const::operator bool ()): - (tm_row_const::operator bool ()): Likewise. - * oct-stream.cc (printf_value_cache::operator bool ()): Likewise. - (scanf_format_list::operator bool ()): Likewise. - (printf_format_list::operator bool ()): Likewise. - (octave_stream::operator bool ()): Likewise. - - Wed Feb 4 13:08:29 1998 John W. Eaton - - * DLD-FUNCTIONS/minmax.cc: Include cmath, not oct-math.h. - - * syscalls.cc (Fdup2): Convert stream to actual system file id. - - * oct-stream.cc (octave_base_stream::fileno, octave_stream::fileno): - New functions. - - Tue Feb 3 00:24:44 1998 John W. Eaton - - * defaults.cc (exec_path): Append Vbin_dir to std_path. - - * octave.cc (initialize_pathsearch): Set TEXMFDBS, not TEXMF. - Look for OCTAVE_DB_PATH in environment. - Simplify using Vdata_dir and Vlibexec_dir. - - * defaults.h.in (Vdata_dir, Vlibexecdir): Declare new vars. - defaults.cc: Define them. - (set_default_data_dir, set_default_libexecdir): New functions. - (install_defaults): Call them. - - * defaults.h.in (OCTAVE_LIBEXECDIR): Define. - - Mon Feb 2 02:43:16 1998 John W. Eaton - - * Makefile.in (install, uninstall): Use $(octlibdir), not $(libdir). - Use mk-libdir-link. - - * defaults.h.in (OCTAVE_OCTLIBDIR): Substitute value. - (Vlib_dir): Delete declaration. - * defaults.cc (Vlib_dir): Delete. - (set_default_lib_dir): Delete. - (install_defaults): Don't call set_default_lib_dir. - (set_default_info_prog): If oct_info_prog is empty, set default to - "info" -- we expect it to be somewhere in the user's path. - - * defun.h (DEFCONST, DEFCONSTX): Eliminate inst_as_fcn and chg_fcn - args. Always pass true for inst_as_fcn and 0 for chg_fcn to - DEFVAR when creating built-in values like `e' or `stderr' that can - be redefined. Change all uses. - - * help.cc (Ftype): Handle script files too. - (Fwhich): Likewise. - - Sat Jan 31 00:00:26 1998 John W. Eaton - - * ov-ch-mat.cc (octave_char_matrix::is_true): Make it work. - * ov-str-mat.h, ov-str-mat.cc (octave_char_matrix_str::is_true): - Delete. - - * load-save.cc (read_ascii_data): Allow strings of length 0. - If we don't find data on the first call, fail with error message. - (do_load): Pass count of items read to read_ascii_data. - Allow `load foo xyz' to work when foo contains only numbers. - - Fri Jan 30 23:46:42 1998 John W. Eaton - - * ov-str-mat.h (octave_char_matrix_str::all): Delete. - (octave_char_matrix_str::any): Delete. - * ov-ch-mat.h (octave_char_matrix::all, octave_char_matrix::any): - Call charMatrix::all, charMatrix::any. - - Thu Jan 29 16:25:46 1998 John W. Eaton - - * load-save.cc (read_mat_binary_data): Handle third digit of MOPT - as flag indicating row or column major ordering. - - Wed Jan 28 00:18:17 1998 John W. Eaton - - * DLD-FUNCTIONS/dassl.cc (lsode_option_table): - Add missing & to function names. - * DLD-FUNCTIONS/lsode.cc (lsode_option_table): Likewise. - * DLD-FUNCTIONS/quad.cc (quad_option_table): Likewise. - - * Makefile.in (oct-gperf.h): Add -G option to gperf. - - * load-save.cc (get_save_type): Add `UL' and `L' suffixes to large - constant values. For LS_INT, use <= and >= for comparison. - - Mon Jan 26 13:17:59 1998 John W. Eaton - - * ov-usr-fcn.cc (Vmax_recursion_depth): New static variable. - (max_recursion_depth): New fucnction - (symbols_of_ov_usr_fcn): DEFVAR max_recursion_depth. - (octave_user_function::do_index_op): Check Vmax_recursion_depth. - - Thu Jan 22 13:45:26 1998 John W. Eaton - - * dynamic-ld.cc (make_dynamic_loader): Fix typo. - - Tue Jan 20 17:02:19 1998 John W. Eaton - - * variables.cc (Fexist): If local symbol is undefined, check - global table. - - * pr-output.cc (pr_max_internal): Initial value for result is - -DBL_MAX, not DBL_MIN. - - Thu Jan 8 11:54:33 1998 John W. Eaton - - * xpow.cc (elem_xpow): If second arg of pow is complex, make sure - first arg is also complex. - - * symtab.cc (symbol_table::rename): Properly insert new item at - the front of the list to avoid losing the rest of the items. - - Thu Dec 11 23:30:03 1997 John W. Eaton - - * variables.cc (Fclear): Increment index to skip -x arg. - - Tue Dec 9 02:45:35 1997 John W. Eaton - - * Makefile.in (INCLUDES): Don't forget Pix.h. - - * BaseSLList.cc: Don't include nonstandard libg++ header files. - - Sun Nov 30 14:58:56 1997 John W. Eaton - - * pr-output.cc: Include cmath, not oct-math. - * sysdep.cc: Likewise. - - * DLD-FUNCTIONS/bessel.cc: New file. - * Makefile.in (DLD_XSRC): Add it to the list. - - Thu Nov 27 23:28:59 1997 John W. Eaton - - * lex.l (handle_string): Constructor for string class takes - (size_t, char) args, not (char, size_t). - - Wed Nov 26 00:39:34 1997 John W. Eaton - - * Makefile.in (OCTAVE_LIBS): Include $(SPECIAL_MATH_LIB) just - ahead of -lcruft. - - Thu Nov 20 15:16:22 1997 John W. Eaton - - * octave.cc (maximum_braindamage): Bind implicit_num_to_str_ok to 1. - * pt-mat.cc (Vimplicit_num_to_str_ok): New static variable. - (implicit_num_to_str_ok): New function. - (symbols_of_pt_mat): DEFVAR implicit_num_to_str_ok. - (tm_row_const::some_str): New data member. - (tm_row_const::some_strings_p): New function. - (tm_row_const::init): Set some_str. - (tm_const::some_str): New data member. - (tm_const::some_strings_p): New function. - (tm_const::init): Set some_str. - (tree_matrix::eval): If Vimplicit_num_to_str_ok is true and some - of the elements are strings, force a string conversion before - returning. - - * parse.y (fold, finish_colon_expression, finish_matrix): - If an error occurs, return the original expression. - Use unwind_protect to restore error_state. - - * ov-ch-mat.h (octave_char_matrix::convert_to_str): Result is - char_matrix_str, not just char_matrix. - - Wed Nov 19 02:05:40 1997 Mumit Khan - - * DLD-FUNCTIONS/filter.cc: Don't include extern template decls if - CXX_NEW_FRIEND_TEMPLATE_DECL is defined. - * ov-cx-mat.cc: Likewise. - * ov-re-mat.cc: Likewise. - * ov-str-mat.cc: Likewise. - - * ov-cx-mat.h (octave_complex_matrix::decrement, - octave_complex_matrix): Use explicit Complex constructor. - - Wed Nov 19 00:08:13 1997 John W. Eaton - - * pt-decl.cc (tree_global_command::do_init): Initialize global - values to `[]'. Only perform explicit initialization once. - - Tue Nov 18 04:27:55 1997 John W. Eaton - - * pr-output.cc (Vfixed_point_format): New variable. - (fixed_point_format): New fucntion. - (symbols_of_pr_output): Add DEFVAR for fixed_point_format. - (set_real_matrix_format): Handle fixed point format - (set_complex_matrix_format): Handle fixed point format - (set_format): New arg, scale in Matrix, ComplexMatrix, Range versions. - (pr_scale_header): New function. - (octave_print_internal): Handle fixed point format in Matrix, - ComplexMatrix, and Range versions. - * octave.cc (maximum_braindamage): Set fixed_point_format to 1.0. - - * utils.cc (do_string_escapes): Move here, from lex.l. - Arg is now const string& instead of char*. - Return new string object instead of modifying arg in place. - (Fdo_string_escapes): New function. - * lex.l (handle_string): Use new version of do_string_escapes. - - * lex.l (Vbackslash_escapes): Delete. - (backslash_escapes): Delete. - (do_string_escapes): Undo previous change. - (eat_whitespace, eat_continuation): Undo previous change. - (handle_string): Undo previous change. - (symbols_of_lex): Undo previous change. - * octave.cc (maximum_braindamage): Undo previous change. - - Fri Nov 14 01:53:13 1997 John W. Eaton - - * parse.y (eval_string (const string&, bool, int&, int)): No - longer static. - * parse.h: Provide declaration. - * input.cc (get_user_input (const octave_value_list&, bool, int)): - New arg, nargout. Pass it to eval_string. - (keyboard): Pass nargout = 0 to get_user_input. - (input): Pass nargout to get_user_input. - - * input.cc (get_user_input (const octave_value_list&, bool)): - Return octave_value_list() if user enters `quit', `exit', or `return'. - If debugging, let eval_string handle the printing chores and - reset error_state before asking for more input. - - * input.cc (Fkeyboard): Unconditionally turn on history here. - - * lex.l (have_continuation, have_ellipsis_continuation): Declare - arg as bool, not int. Change callers. - - * lex.l (Vbackslash_escapes): New static variable. - (backslash_escapes): New function. - (do_string_escapes): Return immediately if ! Vbackslash_escapes. - (eat_whitespace, eat_continuation): Only call have_continuation if - Vbackslash_escapes. - (handle_string): Backslash is only special if Vbackslash_escapes. - (symbols_of_lex): Add DEFVAR for backslash_escapes. - * octave.cc (maximum_braindamage): Set backslash_escapes to 0. - - Thu Nov 13 16:20:40 1997 John W. Eaton - - * variables.cc (Fexist): Also return 2 if NAME is a regular file - somewhere in the LOADPATH. - - * data.cc (sumsq): Fix doc string. - - * parse.y (Fsource): Call parse_fcn_file, not parse_and_execute. - - Tue Oct 7 16:51:01 1997 John W. Eaton - - * defun-int.h (DEFINE_FUN_INSTALLER_FUN): Set installed to true - after installing the function. - - Thu Sep 25 10:17:26 1997 John W. Eaton - - * DLD-FUNCTIONS/filter.cc (Ffilter): Return second output value - even when called with only 3 arguments. - - Mon Sep 22 16:44:27 1997 John W. Eaton - - * DLD-FUNCTIONS/rand.cc (do_rand): Print error if first of two - args is a string but doesn't match "seed". - (Frand, Frandn): Fix doc string. - - Mon Aug 25 10:42:07 1997 John W. Eaton - - * input.cc (get_user_input): Return an empty string if the user - just types RET. - - Thu Jul 31 22:59:04 1997 John W. Eaton - - * lex.l : Ensure that we handle words that begin with - single or double quotes as strings. - - Thu Jul 17 13:06:48 1997 Klaus Gebhardt - - * DLD-FUNCTIONS/rand.cc (Frand): Use F77_XFCN to call getsd, - setsd, setall, setcgn, dgenunf, and dgennor since they can call - XSTOPX. - - Mon Jul 14 12:54:23 1997 John W. Eaton - - * dynamic-ld.cc (octave_dynamic_loader::load_fcn_from_dot_oct_file): - If first attempt to load function fails, prepend and underscore - and try again. - - * Makefile.in (install-inc): If defaults.h, oct-conf.h, or - oct-gperf.h don't exist in the current directory, look in $(srcdir). - - Mon Jul 7 21:14:07 1997 John W. Eaton - - * DLD-FUNCTIONS/qr.cc (Fqr): Correctly handle nargout == 0. - - Wed Jul 2 16:47:09 1997 John W. Eaton - - * matherr.c: New file. Move matherr function here. - * sysdep.cc: From here. - * Makefile.in (DIST_SRC): Add matherr.c to the list. - - * error.cc (handle_message): Avoid bug in g++ snapshot. - - Thu Jun 26 22:04:09 1997 John W. Eaton - - * utils.cc (file_in_path): Add default load path to PATH arg if - it begins or ends with a colon. - - Wed Jun 25 13:31:06 1997 John W. Eaton - - * oct-lvalue.h (octave_lvalue::struct_elt_ref): Ensure val is unique. - - Fri Jun 20 12:33:35 1997 John W. Eaton - - * toplev.cc (cmd_death_handler): New function. - (run_command_and_return_output): Insert pid of command in - octave_child_list along with pointer to cmd_death_handler so we - can get the exit status without having to block SIGCHLD. - (cleanup_iprocstream): Remove pid of command from octave_child_list. - - Sun Jun 15 16:11:13 1997 John W. Eaton - - * OPERATORS/op-cs-s.cc (ldiv): Doh, v1 is complex, v2 is real. - - * Makefile.in (DISTFILES): Add mkops to the list. - (dist): Correctly link files in DLD-FUNCTIONS, OPERATORS, and - TEMPLATE-INST subdirectories. - - Fri Jun 6 04:30:57 1997 John W. Eaton - - * DLD-FUNCTIONS/npsol.cc, DLD-FUNCTIONS/qpsol.cc, - DLD-FUNCTIONS/fsqp.cc: Delete. - * Makefile.in (DLD_XSRC): Remove them from the list. - - * utils.cc (search_path_for_file): New arg, do_tilde_expansion. - If TRUE, perform tilde expansion on path before searching. - (file_in_path): Call search_path_for_file with do_tilde_expansion - set to false, since we've already performed tilde expansion on the - load path. - - * defaults.cc (loadpath): Perform tilde expansion here. - - Thu Jun 5 01:42:39 1997 John W. Eaton - - * Makefile.in: Make building of static library optional. - (liboctave.$(SHLEXT_VER)): Add $(SONAME_FLAGS) to command. - - * dynamic-ld.cc (octave_shl_load_dynamic_loader::resolve_reference): - Call shl_findsym with type set to TYPE_UNDEFINED. - - * Makefile.in (stamp-picdir): Delete. - (pic): New target. Don't worry so much about creating pic - directory only when it is really needed. - (stamp-interp): Delete. - (libraries): New target. Depend on shared library directly. - - Wed Jun 4 00:09:42 1997 John W. Eaton - - * octave.cc (main): Call dir_path::set_program_name here. - - Tue Jun 3 16:47:34 1997 John W. Eaton - - * variables.cc (symbol_out_of_date): Make it work again. - - * parse.y (parse_and_execute): Move here from toplev.cc - (default_eval_print_flag): Likewise. - (safe_fclose): Likewise. - (eval_string): Likewise. - (Fsource): Likewise. - (Ffeval): Likewise. - (feval): Likewise. - (Feval): Likewise. - (symbols_of_parse): Define default_eval_print_flag here instead of - in varaibles.cc. - (looks_like_octave_copyright): Move here from variables.cc - (gobble_leading_whitespace): Likeiwse. - (is_function_file): Likewise. - (restore_input_stream): Likewise. - (parse_fcn_file): Likewise. - (load_fcn_from_file): Likewise. - (get_help_from_file): Likewise. - - * toplev.cc (syms_of_toplev): Define argv, program_name, and - program_invocation_name here instead of in variables.cc. - - * parse.h (line_editing): Move here from toplev.h. Now bool, not int. - (reading_startup_message_printed) Likewise. - (input_from_startup_file): Likewise. - (input_from_command_line_file): Likewise. - - * load-save.cc: Use bool instead of int where appropriate. - - * input.h (enum echo_state): Move here from variables.h. - (Vecho_executing_commands): Likewise. Now bool, not int. - * input.cc (echo_executing_commands): Move here from variables.cc. - (symbols_of_input): Define echo_executing_commands here instead of - in variables.cc. - - * octave.cc (program_invocation_name): Don't define. - (intern_argv): Don't set program_invocation_name here. - (main): Call octave_env::set_program_name here, not in intern_argv. - - * toplev.cc (quitting_gracefully): Move here from octave.h and - make static bool instead of extern int. - - * error.cc (bind_global_error_variable, clear_global_error_variable): - Move here from variables.cc. - (symbols_of_error): Define error_text here instead of in variables.cc. - - * pager.cc (write_to_diary_file): Now bool, not int. - (really_flush_to_pager): Likewise. - (flushing_to_pager): Likewise. - * sighandlers.h (can_interrupt): Likewise. - * error.h (buffer_error_messages): Likewise. - * oct-hist.h (input_from_tmp_history_file, Vsaving_history): Likewise. - * input.h (forced_interactive): Likewise. - (get_input_from_eval_string): Likeiwse. - (reading_script_file): Likeiwse. - (reading_fcn_file): Likeiwse. - (interactive): Likewise. - - * unwind-prot.cc (saved_variable::saved_variable (bool *, bool)): - Set type_tag to boolean, not int. - - Mon Jun 2 00:40:10 1997 John W. Eaton - - * variables.h (Octave_builtin_fcn): Delete typedef. - - * help.cc (make_name_list): Move here from variables.cc. - (keyword_help, names): Now static. - (struct help_list): Move declaration here from help.h. - - * oct-hist.cc (Vhistory_file, Vhistory_size, Vsaving_history): - Move here from variables.cc. - (symbols_of_oct_hist): New function. - - * version.h: Protect against multiple inclusion. - - * defun.cc (check_version): New function. - * defun-int.h (DEFINE_FUN_INSTALLER_FUN): Use it. - - * help.h, help.cc (additional_help_message): Now extern. - (operator_help): Now static. - - * defun.cc (print_usage): Move here from help.cc - * DLD-FUNCTIONS/*.cc, data.cc, dirfns.cc, file-io.cc, input.cc, - load-save.cc, octave.cc, ov-list.cc, ov-typeinfo.cc, - ov-usr-fcn.cc, pager.cc, pr-output.cc, pt-plot.cc, strfns.cc, - syscalls.cc, sysdep.cc, utils.cc, toplev.cc: - Don't include help.h. - - * TEMPLATE-INST/Array-sym.cc: New file. - - * load-save.cc (do_load): Don't use ostream::form. - * pr-output.cc: Likewise, at least where it is easy to do so. - * oct-stream.cc: Ditto. - - * symtab.h (symbol_record::symbol_def::rows): New function. - (symbol_record::symbol_def::columns): Ditto. - (symbol_record::symbol_def::type_name): Ditto. - (symbol_record::rows): Ditto - (symbol_record::columns): Ditto - (symbol_record::type_name): Ditto - - * symtab.h, symtab.cc (symbol_record::hides_fcn): New function. - (symbol_record::hides_builtin): Ditto. - (symbol_record::print_symbol_info_line): Ditto. - (symbol_table::long_list): Delete. - (symbol_table::symbol_list): New function. - (symbol_table::maybe_list): Delete argc arg. - (symbol_table::name_list): Rename from symbol_table::list. - Change all callers. - - * symtab.h, symtab.cc (class symbol_record_info): Delete. - - * symtab.cc (matches_patterns): Use vector form of glob_match. - - Sun Jun 1 14:04:26 1997 John W. Eaton - - * pt-check.h, pt-check.cc: New files, for semantic checking of - parse trees. - - * symtab.h (class symbol_def): Now nested in symbol_record class. - (enum TYPE): Move from symbol_def to symbol record class. Change - all uses. - - * symtab.h, symtab.cc (symbol_table::maybe_list): New function, - from variables.cc. Change all uses. - - * pt-idx.h (tree_identifier::lvalue_ok): New function. - * pt-id.h (tree_index_expression::lvalue_ok): Likewise. - * pt-indir.h (tree_indirect_ref::lvalue_ok): Likewise. - - * pt-pr-code.h, pt-pr-code.cc (tree_print_code::visit_oct_obj): Delete. - * pt-walk.h (tree_walker::visit_oct_obj): Delete declaration. - - * lex.h (class lexical_feedback): Delete maybe_screwed_again. - * lex.l (lexical_feedback::init): Don't set it. - - Fri May 30 16:07:22 1997 John W. Eaton - - * mappers.cc: Include here. - - Tue May 27 10:08:43 1997 John W. Eaton - - * toplev.cc (eval_string): Don't index tmp if it is empty. - - Sat May 24 00:18:41 1997 John W. Eaton - - * load-save.cc (valid_identifier): Move here and make static. - * symtab.h, symtab.cc (valid_identifier): Delete declaration and - definition. - - Fri May 23 22:54:28 1997 John W. Eaton - - * symtab.h (symbol_def::symbol_def): Use initializer list instead - of calling init_state. - (symbol_def::init_state): Delete. - - * symtab.cc (symbol_table::print_stats): New function. - * variables.cc (F__dump_symtab_info__): New function. - - * symtab.h, symtab.cc (symbol_table::hash): Return masked value. - (symbol_table::table_size): New data member. - (symbol_table::symbol_table): Set size of table in constructor. - (HASH_TABLE_SIZE): Replace uses with table_size. - (HASH_MASK): Delete. - * variables.cc (initialize_symbol_tables): Set top-level and - global symbol table sizes here. - - Thu May 22 13:32:55 1997 John W. Eaton - - * dynamic-ld.cc (octave_shl_load_dynamic_loader::resolve_reference): - Call shl_findsym with type set to TYPE_PROCEDURE. Pass the - address of the pointer we want to define. - - Wed May 21 16:30:25 1997 John W. Eaton - - * DLD-FUNCTIONS/time.cc (extract_tm): Avoid memory leak in dealing - with time zone. - - * Makefile.in (install-in): Use new mk-includedir-link macro. - (install-lib): Install in $octlibdir. Use new mk-libdir-link macro. - - Tue May 20 01:24:11 1997 John W. Eaton - - * ov-list.cc (Flist): Rename from Fmake_list. - - Mon May 19 14:45:58 1997 John W. Eaton - - * octave.cc (maximum_braindamage): Set default_eval_print_flag to 0. - - Sat May 17 16:32:23 1997 John W. Eaton - - * defaults.cc (set_default_editor): Default is now Emacs, not vi. - - Fri May 16 00:07:11 1997 John W. Eaton - - * pt-idx.cc (tree_index_expression::name): New function. - - * pt.cc (tree::str_print_code): New file, new convenience function. - * pt-arg-list.cc (tree_argument_list::get_arg_names): Use it. - * pt-assign.cc (tree_simple_assignment::rvalue): Likewise. - (tree_multi_assignment::rvalue): Likewise. - - * pt-colon.h (tree_colon_expression::save_base): New data memmber. - (tree_colon_expression::preserve_base): New function. - * parse.y (finish_colon_expression): When converting to a simple - expression, be sure to delete the original colon expression but - not the base value. - - * pt-mat.cc (tree_matrix::~tree_matrix): Actually do something. - - * pt-all.h: New file. - * parse.y, lex.l, pt-pr-code.cc: Use it. - - * pt.h: Rename from pt-base.h. - - * All parse tree classes: Add private copy constructors and - assignment operators to prevent copying. - - * pt-base.cc: Delete. - - * unwind-prot.h, unwind-prot.cc: Make a bit more object-oriented. - Change all uses of unwind_protect stuff to match. - - * pt-jump.h, pt-jump.cc (breaking, continuing, returning): - Make these flags static members of the corresponding class. - Change all uses. - - * pt-assign.cc (tree_simple_assignment_expression::eval, - tree_multi_assignment_expression::eval): Clear lvalue index here. - - * oct-lvalue.cc (octave_lvalue::assign): Don't clear index here. - * oct-lvalue.h (octave_lvalue::clear_index): New function. - (octave_lvalue::set_index): Rename from octave_lvalue::index. - Change all callers. - - Thu May 15 11:48:10 1997 John W. Eaton - - * pt-select.h, pt-select.cc (class tree_if_command_list, - class tree_if_clause, class tree_switch_case_list, - class tree_switch_case): Move here from pt-misc.h, pt-misc.cc. - * pt-decl.h, pt-decl.cc (class tree_decl_init_list, - class tree_decl_elt): Move here from pt-mist.h, pt-misc.cc - - * pt-arg-list.h, pt-stmt.h: New files, extracted from pt-misc.h. - * pt-arg-list.cc, pt-stmt.cc: New files, extracted from pt-misc.cc. - - * pt-decl.h, pt-except.h, pt-jump.h, pt-loop.h, pt-select.h: - New files, extraced from pt-cmd.h. - * pt-decl.cc, pt-except.cc, pt-jump.cc, pt-loop.cc, pt-select.cc: - New files, extraced from pt-cmd.cc. - - * pt-unop.h, pt-binop.h, pt-colon.h, pt-idx.h, pt-assign.h: - New files, extracted from pt-exp.h - * pt-unop.cc, pt-binop.cc, pt-colon.cc, pt-idx.cc, pt-assign.cc: - New files, extracted from pt-exp.cc - * pt-exp.h, pt-exp.cc: Rename from pt-exp-base.h, pt-exp-base.cc. - - * oct-lvalue.h: Rename from oct-var-ref.h. Rename class from - octave_variable_reference to octave_lvalue. Change all uses. - * oct-lvalue.cc: Rename from oct-var-ref.cc. - - * variables.cc (bind_ans): Only bind ans and print result if value - is defined. - - * defun.cc: New file. Move functions for installing objects in - the symbol table here from variables.cc. - - * oct-obj.h, oct-obj.cc: Add custom allocator, fwiw. - - * toplev.cc (main_loop): Correctly increment command number. - - * TEMPLATE-INST/SLList-tm.cc: Don't instantiate lists of pointers - to tree_matrix_row objects. - * TEMPLATE-INST/SLList-misc.cc: Do instantiate lists of pointers - to tree_argument_list objects. - - * DLD-FUNCTIONS/dassl.cc: Update to use new octave_function - interface to user-supplied functions. - * DLD-FUNCTIONS/fsolve.cc: Likewise. - * DLD-FUNCTIONS/lsode.cc: Likewise. - * DLD-FUNCTIONS/npsol.cc: Likewise. - * DLD-FUNCTIONS/quad.cc: Likewise. - - * dynamic-ld.h, dynamic-ld.cc (builtin_fcn_installer typedef): - Rename from builtin_fcn. - (octave_dynamic_loader::load_fcn_from_dot_oct_file): - Simplify by using new installer function defined by DEFUN_DLD. - - * defun-dld.h (DEFUN_DLD): Use DEFINE_FUN_INSTALLER_FUN instead of - DEFINE_FUN_STRUCT_FUN. - * defun.h (DEFUN_MAPPER): Use DEFUN_MAPPER_INTERNAL. - * defun-int.h (DEFVAR_INTERNAL): Rename from DEFVAR_INT and move - here from defun.h. Change all uses. - (DEFUN_MAPPER_INTERNAL): New macro. - (DEFINE_FUN_INSTALLER_FUN): New macro to define function that the - dynamic loader calls to do all the work of installing a new function. - (DEFINE_FUN_STRUCT_FUN): Delete. - - * parse.y: Rewrite to handle more general expressions. - * lex.l: Corresponding changes. - - * pt-walk.h, pt-pr-code.h, pt-pr-code.cc: Cope with new parse tree - object structure. - - * pt-misc.cc (class tree_for_command): Split into - tree_simple_for_command and tree_complex_for_command classes. - - * pt-misc.h, pt-misc.cc (tree_statement::eval): Handle identifier - lookup and printing and binding ans here. - (tree_statement_list::eval): Simplify. - (tree_argument_list::all_elements_are_constant): New function. - (class tree_decl_elt): Now contains id and expr, not an assignment - expression. - - * pt-exp-base.h pt-exp.h pt-id.h pt-indir.h pt-mat.h pt-const.h, - pt-exp-base.cc pt-exp.cc pt-id.cc pt-indir.cc pt-mat.cc pt-const.cc: - Replace eval functions with rvalue and lvalue functions. - Change all uses. - (lvalue_ok, rvalue_ok): New functions, for future compile-time - semantic checks. - - * oct-var-ref.h (is_defined, is_map): New functions. - - * pt-exp.h (class tree_oct_obj): Delete. - - * variables.cc (extract_function, is_valid_function): Return - pointer to octave_function, not octave_symbol. - (link_to_global_variable): Rewrite. Handle errors in - symbol_record::mark_as_linked_to_global. - - * symtab.h, symtab.cc (class symbol_def, class symbol_record): - Symbols are now stored as octave_value objects only. - - * ov.cc (install_types): Register function types here. - * ov-fcn.h, ov-fcn.cc, ov-builtin.h, ov-builtin.cc, ov-mapper.h, - ov-mapper.cc, ov-usr-fcn.h, ov-usr-fcn.cc: New classes for - functions as values. - * ov.h (class octave_value): Don't derive from octave_symbol. - * oct-fcn.h, oct-fcn.cc, oct-builtin.h, oct-builtin.cc, - oct-mapper.h, oct-mapper.cc, oct-usr-fcn.h, oct-usr-fcn.cc, - oct-sym.h, oct-sym.cc: Delete. - - Sun May 11 17:51:22 1997 John W. Eaton - - * help.cc (Ftype): Make it work again for functions. - - * pt-pr-code.cc (tree_print_code::print_parens): New function. - Use it in other tree_print_code functions to handle printing all - the parens that we found when parsing the expression, not just one - pair. - * pt-exp-base.h (tree_expression::paren_count): Rename from - is_in_parens. - * parse.y (maybe_warn_assign_as_truth_value): Use new name. - - * parse.y (constant): New non-terminal. - (simple_expr1): Use it. - - * parse.y (make_unary_op): Delete. - (simple_expr1): Where appropriate, use make_prefix_op and - make_postfix_op instead of make_unary_op. Allow increment and - decrement ops to work on expressions, not just identifiers. - (make_prefix_op, make_postfix_op): Arg is expression, not identifier. - Handle old unary_op cases too. - (fold (tree_unary_expression *)): Delete. - * pt-exp.h, pt-exp.cc (tree_prefix_expression::eval): Handle unary - minus and not here. - (tree_postfix_expression::eval): Likewise, for transpose and hermitian. - (class tree_prefix_expression, class tree_postfix_expression): - Derive from tree_unary_expression. Delete identifier member. - Delete ident member function. - (tree_unary_expression): Don't handle evaluation here. - * pt-exp-base.h (mark_in_parens): No longer virtual. Return this. - (reference): New virtual function. - (class tree_expression): Don't handle expression type here. - * pt-mvr-base.h (tree_multi_val_ret::tree_multi_val_ret): Likewise. - * pt-mvr.h, pt-mvr.cc (tree_multi_assignment_expression): Likewise. - * pt-walk.h (visit_unary_expression): Delete declaration. - * pt-pr-code.h, pt-pr-code.cc (visit_unary_expression): Delete. - (visit_prefix_expression): Use operand(), not ident(). - new, visit_postfix_expression): - * pt-id.h, pt-id.cc (increment, decrement): Delete. - - * pt-misc.cc (tree_parameter_list::define_from_arg_vector): Get a - reference to each element and use the assignment operator instead - of tree_identifier::define. - * pt-id.h, pt-id.cc (tree_identifier::define): Delete versions - that take octave_value and octave_symbol args. - - Sat May 10 23:32:13 1997 John W. Eaton - - * pt-indir.h, pt-indir.cc (tree_indirect_reference::value): Delete. - - * oct-var-ref.cc (octave_variable_ref::assign): Clear idx after - assignment. - - * octave_value classes: Add is_constant, is_function, and - function_value functions. - - * ov.h, ov.cc (assign): Return void, not reference to octave_value. - (do_index_op): Rename, from index. - (do_struct_elt_index_op): Rename, from struct_elt_val. - Add version that accepts index arg. - Change all uses and derived classes to match. - * pt-const.h (index): Delete. - * oct-var-ref.h, oct-var-ref.cc (value): Handle indexed structure - ops here too. - - Fri May 9 07:40:59 1997 John W. Eaton - - * pt-exp.cc (print_rhs_assign_val, symbols_of_pt_exp): New functions. - (Vprint_rhs_assign_val): New static variable. - (tree_simple_assignment_expression::eval): Use it to optionally - allow the rhs (which is the result) of an assignment to be printed - instead of the left. - - * pt-exp.cc (tree_simple_assignment_expression::eval): Use new - octave_variabl_reference::index function to handle indexing. - - * oct-var-ref.h, oct-var-ref.cc (idx): New data member. - (octave_variable_reference::index): Set it. - (octave_variable_reference::assign): Handle indexing here. - Delete version of this function htat takes index arg. - - * variables.h (struct builtin_varaible): Delete. - * variables.cc (install_builtin_variable): Take all elts of - builtin_variable struct directly. - * defun.h (DEFVAR_INT): Call install_builtin_variable directly. - - * symtab.h, defun-int.h: Don't include variables.h. - - * symtab.h (symbol_record::sv_function): Move typedef here. - * variables.h: From here. - - * oct-var-ref.h, oct-var-ref.cc: New files for - octave_variable_reference class, extracted from variables.h and - variables.cc - * Makefile.in: Add them to the appropriate lists. - - * oct-obj.h (octave_value_list::empty): New function. - - * variables.h (class octave_variable_reference): Rewrite to work - as a proxy class to store a pointer to octave_value and, - optionally, the change function to call and the name of the - structure element we are referencing. Handle assignment, - increment, decrement, and value operations. - - Thu May 8 23:40:59 1997 John W. Eaton - - * ov-re-mat.h, ov-re-mat.cc (struct_elt_ref, struct_elt_val, - assign_struct_elt): Provide functions for looking up and setting - matrix dimensions. - - * symtab.cc (symbol_record::define): Don't call sv_fcn here. - Don't save and restore value here. - (symbol_record::define_builtin_var): Do call sv_fcn here. - (symbol_record::variable_reference): Don't make value unique here. - Return pointer to sv_fcn in octave_variable_reference. - - * pt-misc.cc (tree_parameter_list::initialize_undefined_elements): - Simplify. - - * pt-id.h, pt-id.cc (tree_identifier::reference): Return - octave_variable_reference, not octave_value&. - * symtab.h, symtab.cc (symbol_record::variable_reference): Ditto. - * pt-indir.h, pt-indir.cc (tree_indirect_ref::reference): Ditto. - Simplify too. - - * pt-const.h (tree_constant::reference, tree_constant::value, - tree_constant::assign): Delete unnecessary functions. - * pt-id.h, pt-id.cc (tree_identifier::assign): Ditto. - - * pt-cmd.cc (tree_for_command::do_for_loop_once): Simplify. - - * ov.h, ov.cc, ov-base.h, ov-base.cc, ov-struct.h, ov-struct.cc - (struct_elt_ref): New arg, octave_value* parent. - Allow deferred lookup. Return octave_variable_reference, not - octave_value&. - - * ov.h, ov.cc, ov-re-mat.h, ov-re-mat.cc (assign_struct_elt): - New virtual functions. - - * ov.h, ov.cc (Vresize_on_range_error): Now static. - - * pt-mvr.cc (tree_index_expression::eval): Delete redundant check - of error_state. - - Wed May 7 21:17:00 1997 John W. Eaton - - * input.cc (generate_completion): Rename from command_generator. - Use string objects instead of char*. - (generate_possible_completions): Let qsort also make matches unique. - (initialize_command_input): Register generate_completion with the - command_editor class. - (completion_matches): Simplify using generate_completion. - - * pt-pr-code.cc (tree_print_code::visit_constant): For val, call - print_raw, not print. - - * oct-usr-fcn.h (octave_user_function::argn_sr): New data member. - (octave_user_function::install_automatic_vars): Rename from - install_nargin_and_nargout. - (octave_user_function::bind_automatic_vars): Rename from - bind_nargin_and_nargout. - * oct-usr-fcn.cc (octave_user_function::eval): Extract arg names - from args vector and bind them to argn. - * oct-obj.h (octave_value_list::names): New data member. - * oct-obj.cc (octave_value_list::stash_name_tags): New function. - (octave_value_list::name_tags): Ditto. - * pt-const.h, pt-const.cc (tree_constant::print_raw): New function. - * pt-misc.h, pt-misc.cc (tree_argument_list::get_arg_names): - New function. - * pt-mvr.h, pt-mvr.cc (class index_expression): Cache arg names. - * toplev.cc (feval): Now static. Handle arg names. - - * mkops: Cope with moving files defining operators to OPERATORS - subdirectory. - - Tue May 6 00:48:59 1997 John W. Eaton - - * DLD-FUNCTIONS/getgrent.cc: Use new octave_group class. - * DLD-FUNCTIONS/getpwent.cc: Use new octave_passwd class. - - * syscalls.cc: Simplify by using new functions defined in - liboctave/oct-syscalls.cc. - - * file-io.cc (Ftmpnam): Accept DIR and PREFIX args. - - Mon May 5 00:54:03 1997 John W. Eaton - - * ov-str-mat.cc (octave_char_matrix_str::print_name_tag): Print - empty strings on one line. - - * DLD-FUNCTIONS, OPERATORS, and TEMPLATE-INST: New subdirectories. - Move appropriate files to new directories. - * Makefile.in: Add DLD-FUNCTIONS, OPERATORS, and TEMPLATE-INST - directories to VPATH. Fix rules to work with new directory - structure. - - Sun May 4 22:40:45 1997 John W. Eaton - - * input.cc (initialize_command_input): Rename from - initialize_readline. - (gnu_readline, octave_gets, get_user_input): Simplify, return - string, not char *. - - * Many of other files: Miscellaneous changes to go along with the - changes described in the liboctave/ChangeLog for May 4. More code - moved from here to liboctave. - - Fri May 2 19:50:33 1997 John W. Eaton - - * pathlen.h: Move to ../liboctave. - - Thu May 1 21:50:44 1997 John W. Eaton - - * variables.cc (get_struct_elts): New fucntion. - (looks_like_struct, generate_struct_completions): Move here from - input.cc, rewrite, and make work again. - - Wed Apr 30 00:24:05 1997 John W. Eaton - - * ov-base.h, ov-bool-mat.cc, ov-bool-mat.h, ov-bool.cc, ov-bool.h, - ov-ch-mat.cc, ov-ch-mat.h, ov-complex.cc, ov-complex.h, - ov-cx-mat.cc, ov-cx-mat.h, ov-file.cc, ov-file.h, ov-list.cc, - ov-range.cc, ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, - ov-scalar.h, ov-str-mat.cc, ov-struct.cc, ov.h (scalar_value): - New function. Same as double_value, but name is consistent with - octave_scalar class. - - * op-fil-b.cc, op-fil-cm.cc, op-fil-lis.cc, op-fil-rec.cc, - op-fil-str.cc, op-fil-bm.cc, op-fil-cs.cc, op-fil-m.cc, - op-fil-s.cc: New files. - - * ops.h (ASSIGNOPDECL, DEFASSIGNOP, DEFASSIGNOP_FN, CONVDECL, - DEFCONV, BINOPDECL, DEFBINOPX, DEFBINOP, DEFBINOP_OP, DEFBINOP_FN, - BINOP_NONCONFORMANT): New macros. - * op-b-b.cc, op-bm-bm.cc, op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, - op-cm-s.cc, op-cs-cm.cc, op-cs-cs.cc, op-cs-m.cc, op-cs-s.cc, - op-m-cm.cc, op-m-cs.cc, op-m-m.cc, op-m-s.cc, op-s-cm.cc, - op-s-cs.cc, op-s-m.cc, op-s-s.cc, op-str-str.cc: Use them. - - * Makefile.in (octave): Also depend on ops.o. - - * builtins.h: Delete. - * octave.cc: Add extern declaration here. - - * mappers.h: Delete. - * Makefile.in (INCLUDES): Delete from list. - * mkbuiltins: Add extern declaration in builtins.cc. - - * mkops: New file. - * ops.cc: Delete. - * Makefile.in (SOURCES): Delete from the list. - (ops.cc): New target. - (OP_SOURCES): New list. Move all op-*.cc files here from SOURCES. - Add $(OP_SOURCES) to SOURCES list. - - * variables.cc (symbols_of_variables): No longer static. - * ov.cc (symbols_of_ov): Rename from symbols_of_value. - - * ov-base.h: Delete declaration for install_base_type_conversions. - * op-b-b.h, op-bm-bm.h, op-cm-cm.h, op-cm-cs.h, op-cm-m.h, - op-cm-s.h, op-cs-cm.h, op-cs-cs.h, op-cs-m.h, op-cs-s.h, - op-m-cm.h, op-m-cs.h, op-m-m.h, op-m-s.h, op-s-cm.h, op-s-cs.h, - op-s-m.h, op-s-s.h, op-str-str.h: Delete. - * Makefile.in (INCLUDES): Delete them from the list. - - Tue Apr 29 22:27:49 1997 John W. Eaton - - * variables.h, variables.cc (install_builtin_variables): Delete. - * mkbuiltins: Also generate install_builtin_variables function. - * Makefile.in: Fix rule to call mkbuiltins with correct args. - (clean): Also delete def-files and var-files. - * defaults.h.in, dirfns.h, error.h, file-io.h, help.h, input.h, - lex.h, load-save.h, oct-usr-fcn.h, pager.h, parse.h, pr-output.cc, - pr-output.h, pt-mat.h, pt-misc.h, pt-plot.h, toplev.h: - Delete declarations of symbols_of_* functions. - * data.h, syscalls.h: Delete. - - * pr-output.cc (octave_print_internal): Leave printing of final - new line up to the caller. - - * ov.h, ov.cc (reset_indent_level, increment_indent_level, - decrement_indent_level, newline, indent, reset, - curr_print_indent_level, beginning_of_line): - New functions and static data to manage indent level for printing. - (print_as_scalar): Delete. - (print, print_with_name): Always require stream arg. - Change all callers. - - * oct-stream.h (octave_stream::input_stream): Make publicly available. - (octave_stream::output_stream): Likewise. - - * ov-base.h, ov-base.cc, ov.h, ov.cc, ov-file.h ov-base.h - (is_file, stream_value, stream_number): New functions. - * ov-file.h, ov-file.cc: New files for value class to manage files. - * file-io.cc (symbols_of_file_io): Define stdin, stdout, and - stderr as octve_file objects, not just integers. - (Ffopen, Fpopen): Return octave_file objects, not integer file ids. - * syscalls.cc (Fpipe): Likewise. - * oct-stream.h, oct-stream.cc (octave_stream_list::insert): - Return octave_file object, not integer file id. - - * ov-base.cc, ov-bool-mat.cc, ov-bool.cc, ov-ch-mat.cc, - ov-complex.cc, ov-cx-mat.cc, ov-file.cc, ov-list.cc, ov-range.cc, - ov-re-mat.cc, ov-scalar.cc, ov-str-mat.cc, ov-struct.cc, ov.cc - (print_name_tag, print_raw): New functions. - - * help.cc (Ftype): Don't cast symbol definition to tree_constant *. - - * variables.cc (link_to_global_variable): Don't try to define - symbol with tree_constant objects. - (bind_ans): Call symbol_record::define directly and then - octave_value::print_with_name instead of creating a temporary - assignment expression. - - * pt-pr-code.cc (tree_print_code::indent): Don't use ostream::form. - - * pt-exp-base.h, pt-exp.h, pt-exp.cc (oper): Return string, not - char *. Change all where necessary. - - Mon Apr 28 16:33:49 1997 John W. Eaton - - * ov.h (octave_value binary_op enum): Add lshift and rshift. - (octave_value assign_op enum): Add lshift_eq and rshift_eq. - * ov.cc (assign_op_as_string, binary_op_as_string): Include them. - * parse.y (LSHIFT_EQ RSHIFT_EQ LSHIFT RSHIFT): New tokens. - Add them to the precedence list. - (simple_expr): Add new operators. - (make_assign_op, make_binary_op): Handle new operators. - * lex.l: Recognize new operators. - - * lex.l: Recognize them. - - Sun Apr 27 20:17:49 1997 John W. Eaton - - * pt-misc.cc (Vsilent_functions, silent_functions): - Move here from oct-usr-fcn.cc. - (symbols_of_pt_misc): New function. DEFVAR silent_functions. - (tree_statement_list::eval): Handle Vsilent_functions here instead - of in octave_user_function::eval. - (tree_statement::eval): New functions. - (tree_statement_list::eval): Use them. - Change print flag arg to silent flag. Change all callers. - * variables.cc (install_builtin_variables): Call symbols_of_pt_misc. - * toplev.cc (parse_and_execute): Delete print arg. Change all callers. - (eval_string): Change print flag arg to silent flag. Change callers. - - * dynamic-ld.h, dynamic-ld.cc: Rewrite to use singleton class. - * variables.cc (load_fcn_from_file): Use new dynamic linking class. - - * dynamic-ld.h (Octave_builtin_fcn): Delete typedef. - * dynamic-ld.cc: Simplify via the magic of function pointers. - - * pt-fcn.h pt-fcn.cc pt-fvc.h pt-fvc.cc pt-fvc-base.h pt-fvc-base.cc: - Delete obsolete files. - * Makefile.in: Remove them from various lists. - - * pt-walk.h (visit_octave_user_function): Rename from visit_function. - (visit_builtin): Delete. - * pt-pr-code.h, pt-pr-code.cc (visit_octave_user_function): - Rename from visit_function. - (visit_octave_user_function_header): Rename from visit_function_header. - (visit_octave_user_function_trailer): Rename from - visit_function_trailer. - - * ov.h, ov.cc (eval): New functions. - - * dassl.cc, fsolve.cc, lsode.cc, npsol.cc, qpsol.cc, quad.cc: - Declare user-defined functions as a pointer to an octave_symbol - object, not as a pointer to a tree_fvc object. - - * symtab.h, symtab.cc: Use new octave_symbol class. - * variables.cc (install_builtin_function, install_builtin_mapper, - install_builtin_variable, install_builtin_variable_as_function): - Make work with new octave_symbol class and symbol table structure. - - * variables.h: Delete declaration of builtin_function struct. - * defun-dld.h (DEFUN_DLD): Simplify. - * defun-int.h (DEFINE_FUN_STRUCT): Delete. - (DEFINE_FUN_STRUCT_FUN): Rewrite to not use static builtin_function - object. - - * mappers.h: Delete declaration of builtin_mapper_function struct. - * mappers.cc: Declare wrapper functions static. - * defun.h (DEFUN_MAPPER): Simplify. - - * oct-sym.h: New file. Declare base class for Octave symbols. - * ov.h: Derive octave_value class from octave_symbol. - * oct-fcn.h, oct-fcn.cc: New files to declare and define - base class for functions. - * oct-builtin.h, oct-builtin.cc: New files to declare and define - class for built-in functions. - * oct-mapper.h, oct-mapper.cc: New files to declare and define - class for mapper functions. - * oct-usr-fcn.h, oct-usr-fcn.cc: New files to declare and define - base class for user-defined functions. - * Makefile.in: Add new files to appropriate lists. - - * pt-id.h, pt-id.cc: Move tree_identifier class here. - * pt-fvc.h, pt-fvc.cc: From here. - - * pt-indir.h, pt-indir.cc: Move tree_indirect_ref class here. - * pt-fvc.h, pt-fvc.cc: From here. - - Thu Apr 24 03:58:16 1997 John W. Eaton - - * parse.y (magic_colon): New nonterminal. - (arg_list): Simplify using magic_colon. - - * lex.h (class lexical_feedback): Delete maybe_screwed field. - New field, parsed_function name. - * lex.l (lexical_feedback::init): Initialize it. - (handle_identifier): Don't return SCREW. Handle switching - symbol table context properly for `function f ()' vs `function x ='. - (is_keyword): If looking at function keyword, don't set current - symbol table to point to the local table. - * parse.y (recover_from_parsing_function): New function. - (finish_function_def): Use identifier, not token. - Simplify parsing of functions. - - * ov-list.h, ov-list.cc: New files to implement generic list type. - * ov.cc (list_indent): New global variable. - (increment_list_indent, decrement_list_indent): New functions. - (install_types): Register octave_list type. - * ov-base.cc (octave_base_value::is_list): New function. - - * oct-sym.h: New file. - * ov.h (class octave_value): Derive from octave_symbol class. - - * pt-const.h, pt-const.cc: Delete lots of old useless cruft. - - * pt-exp.h, pt-exp.cc (tree_binary_expression): Use type codes for - operators from octave_value instead of repeating them here. - - * pt-fvc-base.cc (tree_fvc::increment, tree_fvc::decrement): Delete. - * pt-fvc.cc (tree_identifier::increment): Get reference to value - and increment that instead of using virutal tree_fvc::increment - function. - - * lex.l: Handle +=, -=, *=, /=, .+=, .-=, .*=, ./=, &=, and |= ops. - * parse.y (make_assign_op): Rename from make_simple_assignment and - handle different op types. - (simple_expr1): Do new ops. - * pt-misc.cc (initialize_undefined_elements): Pass op to assign. - * pt-cmd.cc (tree_for_command::do_for_command_once): Likewise. - * pt-fvc.cc (tree_identifier::assign): Pass op. - * pt-exp.cc (tree_simple_assignment_expression): Handle new ops. - * variables.cc (octave_variable_reference::assign): Likewise. - * ov.h (class octave_value): Likewise. - * ov.cc (octave_value::assign_op_as_string): New function. - (octave_value::assign, octave_value::convert_and_assign, - octave_value::try_assignment_with_conversion, - octave_value::try_assignment): Pass op. - * pt-pr-code.cc (tree_print_code::visit_simple_assignment_expression): - Use expr.oper() instead of printing "=". - * op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, op-cm-s.cc, op-m-m.cc, - op-m-s.cc, op-str-str.cc: Pass op to INSTALL_ASSIGNOP. - * ops.h (INSTALL_ASSIGNOP): Pass op. - * ov-typeinfo.cc (do_register_assign_op): Include op type in table. - (do_lookup_assign_op): Use op in lookup. - - * ops.h (INSTALL_UNOP): Delete. - - * input.cc (generate_struct_completions, looks_like_struct): - Disable, since they don't work now anyway. - - * help.cc (Ftype): Work with octave_value instead of a pointer to - tree_constant. - * symtab.cc (symbol_record_info::symbol_record_info): Likewise. - - Tue Apr 22 22:59:55 1997 John W. Eaton - - * file-io.cc (Ffprintf): If first arg is a string, assume FID = 1. - - Fri Apr 18 20:16:34 1997 John W. Eaton - - * oct-obj.h, oct-obj.cc: Implement octave_value_list with - Array as a data member, not as a class derived from - Array. - (octave_value_list::length, octave_value_list::resize, - octave_value_list::prepend, octave_value_list::append, - octave_value_list::reverse): New functions. - - * op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, op-cm-s.cc, op-cs-cm.cc, - op-cs-m.cc, op-m-cm.cc, op-m-cs.cc, op-m-m.cc, op-m-s.cc, - op-s-cm.cc, op-s-m.cc: Use new bool ops from liboctave instead of - the macros defined in ops.h. - - Thu Apr 17 13:12:22 1997 John W. Eaton - - * parse.y (ABORT_PARSE): Handle forced_interactive the same as - interactive. - - Mon Apr 14 01:46:50 1997 John W. Eaton - - * input.cc (octave_read): Don't forget to free input buffer if it - exists and has zero length. - (gnu_readline): Free buf if fgets returns 0. - - Wed Apr 9 00:03:57 1997 John W. Eaton - - * time.cc (mk_tm_map): Only set zone field if HAVE_TM_ZONE or - HAVE_TZNAME are defined. - - Tue Apr 8 12:39:21 1997 John W. Eaton - - * time.cc (extract_tm): Set tm.tm_zone if HAVE_TM_ZONE is defined, - not if HAVE_TMZONE is defined. - - * Makefile.in (%.oct : %.o): Use $(SH_LD), not $(CXX). - - Wed Apr 2 21:32:16 1997 John W. Eaton - - * dynamic-ld.cc, dynamic-ld.h (init_dynamic_linker): Delete - function and declaration. - * octave.cc (main): Don't call it. - - Mon Mar 31 00:37:48 1997 John W. Eaton - - * pt-base-exp.h (tree_expression::eval): Give arg a default value. - * pt-const.h (tree_constant::eval): Likewise. - * pt-exp.h (tree_prefix_expression::eval, tree_colon_expression::eval, - tree_postfix_expression::eval, tree_unary_expression::eval, - tree_binary_expression::eval, tree_boolean_expression::eval, - tree_simple_assignment_expression::eval): Likewise. - * pt-fcn.h (tree_function::eval): Likewise. - * pt-fvc.h (tree_identifier::eval, tree_indirect_ref::eval, - tree_builtin::eval): Likewise. - * pt-mat.h (tree_matrix::eval): Likewise. - * pt-misc.h (tree_statement_list::eval): Likewise. - * pt-mvr-base.h (tree_multi_val_ret::eval): Likewise. - * pt-mvr.h (tree_oct_obj::eval, tree_index_expression::eval, - tree_multi_assignment_expression::eval): Likewise. - * dassl.cc, fsolve.cc, load-save.cc, lsode.cc, npsol.cc, parse.y, - pt-cmd.cc, pt-exp-base.cc, pt-exp.cc, pt-fvc.cc, pt-mat.cc, - pt-misc.cc, pt-mvr.cc, pt-plot.cc, quad.cc, toplev.cc, variables.cc: - Change callers of eval() to use bool instead of int and to make - use of default argument value. - - * toplev.h, toplev.cc (parse_and_execute, eval_string): Flag args - are now bool instead of int. - - * symtab.h, symtab.cc: Use bool instead of int in more places. - * variables.h, variables.cc: Likewise. - * lex.h, lex.l: Likewise. - * parse.y: Likewise. - * help.cc, input.cc, lex.l, load-save.cc, parse.y, pt-fcn.cc: - Change callers of symbol_table::lookup to use bool instead of int, - and to make use of default arguments. - - Fri Mar 28 15:33:11 1997 John W. Eaton - - * parse.y (Vwarn_comma_in_declaration): Delete. - (symbols_of_parse): Delete DEFVAR for warn_comma_in_declaration. - (decl1): Don't allow commas in declarations. - - * lsode.cc (struct LSODE_OPTIONS): Handle integer options. - (print_lsode_option_list, set_lsode_option, show_lsode_option): Ditto. - (lsode_option_table): Add element for step limit. - (lsode_user_jacobian): New function. - (Flsode): Allow function name arg to be a 2-element string array - specifying the function and jacobian function. - - * variables.cc (get_global_value, set_global_value): New functions. - - Wed Mar 26 17:08:27 1997 John W. Eaton - - Implement static variable declaration: - - * lex.l (is_keyword): Handle static. - * octave.gperf: Likewise. - * parse.y (Vwarn_comma_in_declaration): Rename from - Vwarn_comma_in_global_decl. - Handle new static command. - * pt-cmd.h, pt-cmd.cc (class tree_decl_command): New base class - for static and global declaration commands. - (class tree_global_command): Derive from tree_decl_command. - (class tree_static_command): New class, derived from tree_decl_command. - * pt-fvc.cc, pt-fvc.h (tree_identifier::mark_as_static): New function. - * pt-misc.h, pt-misc.h (class tree_decl_elt): Rename from tree_global. - (class tree_decl_init_list): Rename from tree_global_init_list. - * pt-pr-code.cc, pt-pr-code.h (tree_print_code::visit_decl_command): - Rename from visit_global_command. - (tree_print_code::visit_decl_elt): Rename from visit_global. - (tree_print_code::visit_decl_init_list): Rename from - visit_global_init_list. - * pt-walk.h (tree_walker::visit_decl_command): Rename from - visit_global_command. - (tree_walker::visit_decl_elt): Rename from visit_tree_global. - (tree_walker::visit_decl_init_list): Rename from - visit_global_init_list. - * variables.cc (link_to_global_variable): Trying to make a static - variable global is an error. - * SLList-misc.cc: Instantiate lists of pointers to tree_decl_elt - objects, not tree_global objects. - * symtab.h, symtab.cc (symbol_record::tagged_static): New field. - (symbol_record::mark_as_static, symbol_record::is_static): - New functions. - * symtab.cc (symbol_record::init_state): Initialize tagged_static. - (symbol_record::clear): Don't clear static variables. - * symtab.cc (push_context): Don't do anything for static variables. - - Tue Mar 25 17:17:17 1997 John W. Eaton - - * ov-bool-mat.cc, ov-bool-mat.h, ov-bool.cc, ov-bool.h: New files. - - * defaults.cc (symbols_of_defaults): DEFCONST OCTAVE_HOME. - - * toplev.cc (octave_config_info): Delete use of CXXLIBS. - * oct-conf.h.in: Ditto. - - * octave.cc (maximum_braindamage): Don't bind prefer_zero_one_indexing. - * ov.h: Don't declare Vprefer_zero_one_indexing. - * ov.cc: Don't define Vprefer_zero_one_indexing. - (prefer_zero_one_indexing): Delete. - (symbols_of_value): Delete DEFVAR for prefer_zero_one_indexing. - - * ov.h, ov.cc, ov-base.h, ov-base.cc: Add constructors and - extractors for bool and boolMatrix types. - - * ov.cc (install_types): Register octave_bool and - octave_bool_matrix types. - - * op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, op-cm-s.cc, op-cs-cm.cc, - op-cs-m.cc, op-m-cm.cc, op-m-cs.cc, op-m-m.cc, op-m-s.cc, - op-s-cm.cc, op-s-m.cc, op-s-s.cc, ov-re-mat.cc: - Return boolMatrix instead of Matrix object. - * ops.h (BOOL_OP3, MX_MX_BOOL_OP): Likewise. - - * op-b-b.h, op-b-b.cc, op-bm-bm.h, op-bm-bm.cc: New files. - * Makefile.in: Add them to the lists. - * ops.cc: Include header files here. - (install_ops): Call install_b_b_ops() and install_bm_bm_ops() here. - - * variables.cc (symbols_of_variables): Don't rely on default - conversion from int to double for value returned from - default_history_size(). - - * pr-output.cc: Include cstdio. - - * parse.y (param_list_end): Fix typo in last change. - - * quad.cc (quad): Cast integer return values to double. - * npsol.cc (show_npsol_option): Likewise. - * qpsol.cc (show_qpsol_option): Likewise. - * file-io.cc (Fsprintf, Ffwrite): Likewise. - - Mon Mar 24 13:11:47 1997 John W. Eaton - - * ov-typeinfo.cc (typeinfo): If invoked with an argument, return - the type of the argument as a string. Fix doc string. - - Thu Mar 20 14:47:49 1997 John W. Eaton - - * mk-oct-links (links_dir): Don't use -h option for grep. It's - not needed since we are working on one file at a time anyway. - - Mon Mar 17 10:53:29 1997 John W. Eaton - - * lex.l (handle_identifier): When handling indirect_ref, set - lexer_flags.quote_is_transpose to 1 so that a.b' to work as - expected. - - * parse.y (param_list_beg, param_list_end): New nonterminals. - (param_list, param_list1): Use them. - - Wed Mar 12 16:57:28 1997 John W. Eaton - - * Makefile.in (install-strip): New target. - - Mon Mar 10 22:38:16 1997 John W. Eaton - - * Makefile.in (clean): Delete .oct files too. - - * toplev.cc (Vdefault_eval_print_flag): New static variable. - (eval_string): New arg, print. - (Feval): Pass Vdefault_eval_print_flag to eval_string. - (default_eval_print_flag): New function. - (symbols_of_toplev): New function. - - * variables.cc (install_builtin_variables): Call it. - - * pt-exp.h, pt-exp.cc (class tree_boolean_expression): Rename enum - fields `and' and `or' to `bool_and' and `bool_or'. - (tree_unary_expression): Rename enum field `not' to `unot'. - (class tree_binary_expression): Rename enum fields `and' and `or' - to `el_and' and `el_or'. - * parse.y: Change all uses. - - * time.cc (extract_tm): Truncate field values instead of rounding. - (gmtime, localtime): Likewise, for timeval. - - * ov.h (class octave_value): Delete unused variable freeptr. - - * mappers.cc: Delete functions that are already in - liboctave/lo-mappers.cc. - - * oct-strstrm.cc (octave_base_strstream::tell): Use const_cast, - not static_cast. - - * help.cc (help_from_list): Add missing const qualifiers. - * help.h (struct help_list): Likewise. - * lex.l (match_any, plot_style_token): Likewise. - * load-save.cc (extract_keyword, ascii_save_type): Likewise. - * oct-hist.cc (mk_tmp_hist_file): Likewise. - * octave.cc (execute_startup_files): Likewise. - * octave.gperf (struct octave_kw): Likewise. - * pr-output.cc (pr_any_float): Likewise. - * pt-mvr.cc (tree_index_expression::eval_error): Likewise. - * pt-exp-base.h, pt-exp.h, pt-exp.cc: Likewise. - * parse.y: Likewise. - - Sun Mar 9 03:46:45 1997 John W. Eaton - - * pt-exp-base.h (tree_expression): Delete extra comma at end of list. - - * dirfns.cc error.cc file-io.cc fsolve.cc input.cc load-save.cc - npsol.cc pt-fcn.cc qpsol.cc quad.cc syscalls.cc toplev.cc - variables.cc: Eliminate embedded newlines in string constants. - - * Map.cc, data.cc, dirfns.cc, dynamic-ld.cc, file-io.cc, - fsolve.cc, getgrent.cc, getpwent.cc, getrusage.cc, help.cc, - input.cc, load-save.cc, mappers.cc, minmax.cc, npsol.cc, - oct-fstrm.cc, oct-procbuf.h, oct-stdstrm.cc, oct-stdstrm.h, - oct-stream.cc, oct-stream.h, oct-strstrm.cc, octave.cc, - ov-base.h, ov-range.cc, ov-typeinfo.cc, ov.cc, pr-output.cc, - pt-cmd.cc, pt-exp.cc, pt-fcn.cc, pt-fvc.cc, pt-mat.cc, - pt-misc.cc, pt-plot.cc, qpsol.cc, quad.cc, sort.cc, strfns.cc, - symtab.cc, syscalls.cc, sysdep.cc, time.cc, toplev.cc, - unwind-prot.cc, unwind-prot.h, variables.cc, xpow.cc: - Use `static_cast (val)' instead of old C-style `(T) val' casts. - - Sat Mar 8 02:35:13 1997 John W. Eaton - - * load-save.cc (save_ascii_data, save_three_d): Where appropriate, - use bool instead of int. - (save_binary_data, save_mat_binary_data, save_ascii_data): - Print warning instead of error for wrong type arg. - - * gripes.cc (gripe_wrong_type_arg): New arg, is_error. - - * pt-plot.cc (save_in_tmp_file): Call save_ascii_data with bool - arg, not int. - - Fri Mar 7 00:56:16 1997 John W. Eaton - - * dassl.cc (show_dassl_option): For values that are determined - automatically, return a string instead of a magic value (-1.0). - * fsolve.cc (show_fsolve_option): Likewise. - * lsode.cc (show_lsode_option): Likewise. - * npsol.cc (show_npsol_option): Likewise. - * qpsol.cc (show_qpsol_option): Likewise. - - * variables.cc (extract_function): New function. - * dassl.cc (Fdassl): Use it instead of is_valid_function. - * fsolve.cc (Ffsolve): Likewise. - * npsol.cc (Fnpsol): Likewise. - * qpsol.cc (Fqpsol): Likewise. - * quad.cc (Fquad): Likewise. - - Thu Mar 6 20:07:24 1997 John W. Eaton - - * sighandlers.cc (my_friendly_exit, octave_new_handler, - sigfpe_handler, sigpipe_handler): Don't all error() or warning(). - - * pager.cc (pager_death_handler): Don't try to clear pager, just - print message to cerr. - (do_sync): If the status of the pager is bad or it looks like it - is dead, restore the interrupt handler. - - * load-save.cc (extract_keyword (istream&, char*, int&)): - Move declaration of buf inside loop, to avoid deleting its guts - and then trying to reuse it. - (extract_keyword (istream&, char*)): Likewise. - - Tue Mar 4 20:36:53 1997 John W. Eaton - - * pt-fcn.cc (tree_function::eval): Protect function from being - redefined while it is being evaluated. - (unprotect_function): New function, for use with unwind_protect stuff. - * pt-fcn.h (tree_function::symtab_entry): New data member. - (tree_function::init): Initialize it to 0. - (tree_function::stash_symtab_ptr): New function. - * parse.y (frob_function_def): Stash pointer to function's - symbol_record in the function definition. - - * symtab.cc (symbol_record::read_only_error): New argument, - action. Change all callers. - (symbol_record::rename): Don't allow read-only symbols to be renamed. - - * variables.cc (Fexist): Don't let files with `.' in their names - confuse us. - - * symtab.cc (valid_identifier (const string&)): New function. - - Sat Mar 1 15:23:14 1997 John W. Eaton - - * Version 2.0.5 released. - - Sat Mar 1 01:34:08 1997 John W. Eaton - - * Makefile.in (stamp-oct-links): New target. Make links in build - directory too, so that the tests will work. - - * quad.cc: If quad is defined, undefine it. - - * octave.cc: If WITH_KPATHSEARCH is defined, don't define - program_invocation_name or program_invocation_short_name. - - * strftime.c: Update to current version from FSF. - * time.cc (Fstrftime): Call strftime with buf = 0 to get buffer - size, then call again to actually format the time struct. - - Fri Feb 28 01:49:48 1997 John W. Eaton - - Implement switch statement: - - * parse.y (Vwarn_variable_switch_label): New static variable. - (warn_variable_switch_label): New function. - (symbols_of_parse): Provide warn_variable_switch_label as Octave - variable here. - (make_switch_case, finish_switch_command): New functions. - (maybe_warn_variable_switch_label): New function. - (end_error): Handle endswitch. - (switch_command, case_list, case_list1, switch_case, default_case): - New nonterminals. - (command): Add switch_command here. - * lex.l (is_keyword): Handle switch, case, otherwise, and endswitch. - * octave_gperf: Recognize switch, case, otherwise, and endswitch. - * token.h (end_tok_type): New item, switch_end. - * pt-cmd.cc (tree_switch_command): New class. - * pt-misc.cc (tree_switch_case, tree_switch_case_list): New classes. - * pt-pr-code.cc (tree_print_code::visit_switch_case, - tree_print_code::visit_switch_case_list, - tree_print_code::visit_switch_command): New functions. - * pt-walk.h (tree_walker::visit_switch_case, - tree_walker::visit_switch_case_list, - tree_walker::visit_switch_command): New pure virtual declarations. - Implement new switch statement. - * SLList-misc.cc: Instantiate lists of pointers to - tree_switch_case objects too. - - * lex.h, lex.l, parse.y: Delete all references to lexer_flags::iffing. - - * syswait.h: Include sys/wait.h on NeXT systems, but don't use the - WIFEXTED, WEXITSTATUS, and WIFSIGNALLED macros defined there. - Also define waitpid in terms of wait4. From Rex A. Dieter - . - - Wed Feb 26 16:43:31 1997 John W. Eaton - - * oct-stream.cc (octave_base_stream::do_scanf): Don't report an - error if a conversion fails or we reach EOF. - - Tue Feb 25 22:21:05 1997 John W. Eaton - - * time.cc (strftime): increase initial buffer size. - - Mon Feb 24 17:49:21 1997 John W. Eaton - - * pt-fvc.cc (tree_builtin::eval): Enable checking for max number - of arguments. - - * error.cc (handle_message): Don't fail if args is empty. - - Sun Feb 23 22:42:52 1997 John W. Eaton - - * lex.h (lexical_feedback::looking_at_return_list): New field. - (lexical_feedback::looking_at_parameter_list): Ditto. - * lex.l (lexical_feedback::init): Initialize them. - (handle_identifier): Use them. - * parse.y: Likewise. - - Fri Feb 21 15:35:18 1997 John W. Eaton - - * lex.l: Require flex 2.5 or later (we really want 2.5.4 or later, - but there seems to be no good way to check the patchlevel). - - * oct-stream.cc (octave_base_stream::oscanf): Instead of returning - an error, just quit processing after a conversion fails. - - Thu Feb 20 02:58:05 1997 John W. Eaton - - * Version 2.0.4 released. - - Wed Feb 19 10:30:14 1997 John W. Eaton - - * sighandlers.cc (octave_ignore_interrupts, - octave_catch_interrupts, octave_set_interrupt_handler): - Return old value, not pointer to static data. Fix all uses. - - * sighandlers.h (octave_interrupt_handler): Move declaration here. - * sighandlers.cc: From here. - - * toplev.cc: Undo previous change. - - * lex.l (handle_identifier): Allow commands like ls, save, etc. to - also be used as simple variable names. Also make it possible to - use the normal function call syntax to invoke them. - - Tue Feb 18 09:22:04 1997 John W. Eaton - - * Makefile.in (%.oct:%.o, %.oct:pic/%.o): Use $(SH_LDFLAGS) here. - - * Version 2.0.3 released. - - Tue Feb 18 00:27:49 1997 John W. Eaton - - * toplev.cc (run_command_and_return_output): - Block SIGCHLD while running subprocess. - (cleanup_iprocstream): Unblock it here. - - * sighandlers.h (BLOCK_SIGNAL, BLOCK_CHILD, UNBLOCK_CHILD): Move here. - * sighandlers.cc: From here. - - * toplev.cc (system): Shift then mask exit status. - - * help.cc (try_info): Shift first, then mask exit status. - - * toplev.cc (octave_config_info): Handle option argument. - - Fri Feb 14 16:23:30 1997 John W. Eaton - - * oct-stream.cc (octave_base_stream::do_scanf): Don't forget to - check to see if the result matrix needs resizing! - - * Makefile.in (bin-dist): Don't write empty strings to LIBRARIES. - - Thu Feb 13 03:02:08 1997 John W. Eaton - - * Makefile.in (stamp-prereq): Depend on stamp-picdir. - (all): Don't depend on stamp-prereq or stamp-picdir. - (stamp-tinst, stamp-interp, libtinst.a, liboctinterp.a): - Do depend on stamp-prereq. - (stamp-picdir): Silence noise about making pic. - (stamp-tinst, stamp-interp): Use $(SH_LD) $(SH_LDFLAGS) instead of - $(CXX) -shared. - - * oct-conf.h.in: Reinstate RLD_FLAG. - * toplev.cc (octave_config_info): Likewise. - - * data.cc (map_d_m, map_m_d, map_m_m): Rename from map. - (Fatan2): Use new function names. - - * pt-fvc.cc (apply_mapper_fcn): Use member function map() instead - of friend function. - - * gripes.cc (gripe_wrong_type_arg (const char*, const string&)): - New function. - - Wed Feb 12 17:27:53 1997 John W. Eaton - - * syscalls.cc (symbols_of_syscalls): Add O_ASYNC and O_SYNC. - - Mon Feb 10 01:22:27 1997 John W. Eaton - - * dirfns.cc (Freaddir, Fmkdir, Frmdir, Frename): - Also return status and error message. - - * syscalls.cc (Fdup2, Fexec, Ffork, Ffcntl, Funlink, Fmkfifo, - Fpipe, Fwaitpid): Also return error message. - - Sat Feb 8 17:16:09 1997 John W. Eaton - - * pt-exp.cc (tree_simple_assignment_expression::eval): Return - value of RHS, but (if printing) print complete value of LHS. - - * pr-output.cc (octave_print_internal): Print a new line for empty - string matrices. - - Wed Feb 5 14:30:44 1997 John W. Eaton - - * oct-stream.cc (scanf_format_list::process_conversion): Accept - but don't actually use h, l, and L modifiers. Always insert l - modifier for floating point conversions. - - Fri Jan 31 13:55:10 1997 John W. Eaton - - * pager.cc (do_sync): Always flush the cout stream after writing. - - Wed Jan 29 08:25:29 1997 John W. Eaton - - * defaults.cc (exec_path): Don't include bin_dir in std_path. - - * pager.cc (do_sync): Flush the cout stream after writing if - running in interactive or forced_interactive mode. - - * mk-oct-links: Rename from mk-oct-links.in. - Don't use symbolic links. - * Makefile.in: Distribute mk-oct-links, not mk-oct-links.in - (mk-oct-links): Delete target. - (install-oct, bin-dist): Don't depend on mk-oct-links. - Run $(srcdir)/mk-oct-links, not ./mk-oct-links. - - * qr.cc (qr): Doc fix. - - Tue Jan 28 10:48:28 1997 John W. Eaton - - * Makefile.in (install-inc): Create a relative symbolic link. - (install-bin): Create a relative symbolic link. - - Mon Jan 27 12:12:03 1997 John W. Eaton - - * Version 2.0.2 released. - - * Makefile.in (CXXFLAGS_NO_PT_FLAGS): Rename from XALL_CXXFLAGS. - Substitute bsd_gcc_kluge_targets_frag. - - * sysdep.cc (Fsleep): New function. - (Fusleep): New function. - - * toplev.cc (octave_config_info): Don't include RLD_FLAG. - * oct-conf.h.in: Don't define RLD_FLAG - - Sun Jan 26 19:41:48 1997 John W. Eaton - - * sighandlers.cc (sigchld_handler): Block SIGCHLD while - sigchld_hander is running. - - Sat Jan 25 22:36:39 1997 John W. Eaton - - * Makefile.in (bin-dist): Update for 2.x. - - Fri Jan 24 10:05:00 1997 John W. Eaton - - * mk-oct-links.in: New arg, -p, to just print list of files to link. - - * lex.l (handle_number): Convert `D' or `d' exponents to `e' - before scanning. - - Thu Jan 23 10:00:00 1997 John W. Eaton - - * pt-pr-code.h, pt-pr-code.cc (tree_print_code::visit_no_op_command): - New function. - * pt-cmd.h, pt-cmd.cc (tree_no_op_command): New class. - * parse.y (make_break_command, make_continue_command, - make_return_command): Where they don't really make sense, turn - these commands into no-ops. Accept return and break if reading a - script file. - * toplev.cc (parse_and_execute): Handle return and break in script - files. Quit executing commands if an error occurs when reading a - script file. Set global_command to 0 after deleting it. - (main_loop): If not interactive or forced_interactive, handle - break and return, and quit executing commands if an error occurs. - Set global_command to 0 after deleting it. - * error.cc (Ferror): Doc fix. - * pt-walk.h (tree_walker): Add declaration for visit_no_op_command. - - Wed Jan 22 20:54:12 1997 John W. Eaton - - * input.cc (gnu_readline): If not using readline, flush - rl_outstream after printing prompt. - (octave_gets): Also call flush_octave_stdout() if - forced_interactive, not just if interactive. - (do_input_echo): If forced_interactive, only echo prompt and - command line if also reading a script file. - - Tue Jan 21 23:02:34 1997 John W. Eaton - - * SLList.h: Include "BaseSLList.h", not . - - Mon Jan 20 11:11:12 1997 John W. Eaton - - * lex.l (token_stack): Don't declare static. - * pt-plot.cc (tmp_files): Likewise. - * toplev.cc (octave_atexit_functions): Likewise. - * unwind-prot.cc (unwind_protect_list): Likewise. - - * ops.h (MX_MX_BOOL_OP): Correctly handle case of one or both - arguments being empty. Change all callers. - - * oct-stream.cc (printf_value_cache::looking_at_string): - Handle empty strings correctly now that they are 0x0. - - * file-io.cc: Don't include "syswait.h" here. - - Sun Jan 19 22:38:45 1997 John W. Eaton - - * oct-stream.h (octave_base_stream::seek): Declare offset arg as - streamoff, not streampos. - (octave_stream::seek): Likewise. - * oct-strstrm.h (octave_base_strstream::seek): Likewise. - * oct-stdstrm.h (octave_base_stdiostream::seek): Likewise. - * oct-iostrm.h (octave_base_iostream::seek): Likewise. - * oct-fstrm.h (octave_fstream::seek): Likewise. - - Fri Jan 17 18:13:10 1997 John W. Eaton - - * file-io.cc (Ffflush): Handle stdout as a special case. - - * oct-stream.cc (octave_stream_list::do_get_file_number): - Do the work for octave_stream::get_file_number. - (octave_stream_list::get_file_number): Convert to static function. - - Wed Jan 8 11:42:44 1997 John W. Eaton - - * log.cc (sqrtm): For complex arg case, compute sqrt, not log. - - Tue Jan 7 00:16:41 1997 John W. Eaton - - * Version 2.0.1 released. - - Mon Jan 6 00:00:07 1997 John W. Eaton - - * pt-mat.cc (tm_row_const_rep::all_mt): New variable. - (tm_row_const::all_empty): New function. - (tm_row_const::tm_row_const_rep::init): Set all_mt here. - (tm_const::all_mt): New variable. - (tm_const::all_emtpy): New function. - (tm_const::init): Set all_mt here. - (tree_matrix::eval): Return an empty matrix if the list contains - only empty elements. If it contains only empty strings, return an - empty string. - - Sun Jan 5 12:50:25 1997 John W. Eaton - - * ops.h (SC_MX_BOOL_OP, MX_SC_BOOL_OP): New arg, empty_result. - * op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, op-cm-s.cc, op-cs-cm.cc, - op-cs-m.cc, op-m-cm.cc, op-m-cs.cc, op-m-m.cc, op-m-s.cc, - op-s-cm.cc, op-s-m.cc, op-str-str.cc: Change all uses of - SC_MX_BOOL_OP and MX_SC_BOOL_OP macros. Return correct results - for empty matrix cases. - - * pt-fcn.cc (tree_function::eval): If Vdefine_all_return_values is - true, initialize return values before evaluating function, for - compatibility with Matlab. - - * oct-stream.cc (get_size): Correctly set size when arg is scalar. - - Thu Jan 2 12:40:10 1997 John W. Eaton - - * Makefile.in (install-oct): Quote $(OCT_FILES) in for loop to - avoid syntax error from ksh. - - * pr-output.cc (octave_print_internal): Avoid unused parameter - warning from gcc. - - Thu Dec 19 12:13:42 1996 John W. Eaton - - * oct-stream.cc (octave_base_stream::do_scanf): - Don't treat %l{e,f,g} differently from %{e,f,g}. - (octave_base_stream::do_oscanf): Likewise. - - * sighandlers.cc (sigchld_handler): Fix typos. - - Wed Dec 18 20:17:23 1996 John W. Eaton - - * file-io.cc (Ffgetl, Ffgets): Also return number of characters read. - - * ov-range.cc (octave_range::not): New function. - * ov-range.h (octave_range::uminus): New function. - - * BaseSLList.cc: Include error.h. - (BaseSLList::error): Call ::error() to process error message. - - Fri Dec 13 02:38:19 1996 John W. Eaton - - * ov.cc (octave_value::convert_and_assign): Preserve lhs value if - assignment fails. - - Wed Dec 11 12:33:16 1996 John W. Eaton - - * pt-plot.cc (GPLOT_CMD_END): Don't put semicolons at the end of - each plot command; it causes trouble with gnuplot 3.5. - - Tue Dec 10 00:31:13 1996 John W. Eaton - - * Version 2.0 released. - - * pr-output.cc (set_format_style): Don't try to access argv unless - argc > 1. - - * SLList-expr.cc SLList-misc.cc SLList-plot.cc SLList-str.cc - SLList-tc.cc SLList-tm.cc SLList.h SLStack-i.cc SLStack-pc.cc - SLStack-str.cc SLStack-sym.cc SLStack-tok.cc SLStack-ue.cc - SLStack-ui.cc, pt-mat.cc: Include Stack.h, Stack.cc, SLStack.cc, - and SLList.cc as necessary. - - * Stack.cc, SLStack.cc, SLList.cc: New files. - * Makefile.in (SOURCES): Add them to the list. - - Mon Dec 9 12:03:45 1996 John W. Eaton - - * Makefile.in (install-bin): Use $(EXE) suffix so install will - find the right file on cygwin32 systems. - - * ov.h: Declare proper form of do_binary_op as friend to - octave_value class. - - Sat Dec 7 22:00:10 1996 John W. Eaton - - * oct-stream.cc (do_printf_conv, do_scanf_conv, - do_oscanf_num_conv, do_oscanf_str_conv): Convert to real - functions instead of CPP macros, using templates where necessary. - (do_oscanf_num_conv, do_oscanf_str_conv): Correctly handle - discarded values. - - Fri Dec 6 00:20:25 1996 John W. Eaton - - * Version 1.94. - - * Map-*.cc, SLList-*.cc, SLStack-*.cc: Include config.h. - - * ov.h: Don't include SLList.h. - - * SLStack.cc: Delete. Move everything to SLStack.h. - - * BaseSLList.h, BaseSLList.cc: New files. Split out the - non-template base class parts of SLList. - - * Makefile.in (TEMPLATE_SRC): Delete. Move files to SOURCES. - * Map.h, Map.cc: Add #pragma interface/implementation. - * SLStack.h, SLStack.cc: Add #pragma interface/implementation. - - * SLList.h, SLList.cc: New files, from libg++, but with #pragma - interface/implementation. - * Makefile.in (SOURCES): Add SLList.cc. - (INCLUDES): Add SLList.h. - - Thu Dec 5 18:36:44 1996 John W. Eaton - - * octave.cc: Don't include sun-utils.h. - - Tue Dec 3 23:47:09 1996 John W. Eaton - - * op-str-str.cc (eq, ne): Handle operations with scalars. - - Thu Nov 21 12:30:36 1996 John W. Eaton - - * ov-str-mat.h (octave_char_matrix_str): Provide transpose and - hermitian operators. - * ov-ch-mat.h (octave_char_matrix): Likewise. - - Wed Nov 20 00:35:57 1996 John W. Eaton - - * sighandlers.h (struct octave_interrupt_handler): Provide - forward declaration here. - * sighandlers.cc (octave_interrupt_handler): New struct. - (octave_catch_interrupts): Rename from catch_interrupts. - (octave_ignore_interrupts, octave_set_interrupt_handler): - New functions. - * help.cc, oct-hist.cc, pager.cc, toplev.cc: Use new functions for - handling interrupts so that we can hide the details of whether or - not we have to deal with SIGBREAK. - - * pt-plot.cc [! HAVE_POSIX_SIGNALS] (open_plot_stream): - Simply ignore and restore the interrupt handler here. - - * sighandlers.cc (MAYBE_REINSTALL_SIGHANDLER): New macro. Use it - instead of always checking MUST_REINSTALL_SIGHANDLERS everywhere. - (sigchld_handler): If octave_child_list is empty, wait for any - child, but don't hang, and don't collect status info. - [__EMX__] (sigchld_handler): Save and restore handlers for SIGINT, - SIGBREAK, and SIGCHLD. Ignore them while waiting on children. - (install_signal_handlers): If SIGBREAK exists, handle it like SIGINT. - - * toplev.cc [USE_READLINE] (clean_up_and_exit): - Call rl_deprep_terminal() to restore terminal settings. - - * sysdep.cc [__EMX__ && OS2] (Fextproc): New command. - [__EMX__ && OS2] (FEXTPROC): Alias for Fextproc. - - * Version 1.93. - - * sysdep.cc (octave_chdir): [__EMX__]: Make copy of string before - converting to upper case. - - * getgrent.cc (mk_gr_map): Only set the passwd field if - HAVE_GR_PASSWD is defined. - - Tue Nov 19 12:01:13 1996 John W. Eaton - - * sysdep.cc (OS2_init): New function. - [__EMX__] (sysdep_init): Call it. - - * lex.l (plot_style_token): Add new plot styles for gnuplot 3.6. - * pt-plot.cc (subplot_style::columns_ok): Rename from - subplot_style::errorbars. Recognize more styles and do a better - job of diagnosing column number/style mismatches. - - * sighandlers.cc (my_friendly_exit): If we are called twice, try - to remove the signal handler for SIGABRT and the call abort (). - - * help.cc (Ftype): If a function is defined from a file and - transformed text has not been requested, just print the contents - of the file. - - * parse.y (fold): New functions for constant folding for binary - and unary expressions. Keep track of original text even when - transformations occur. - (make_binary_op, make_boolean_op, make_unary_op): Use them. - (finish_colon_expression, finish_matrix): Keep track of original - text even when transformations occur. - - * help.cc (Ftype): Don't mess with Vps4. - Handle new option `-transformed'. - - * pt-const.h, pt-const.cc (tree_constant::print): - New arg, pr_orig_text. - - * pt-exp.h, pt-exp.cc (tree_colon_expression::is_range_constant): - Delete. - - * pt-exp-base.h (tree_expression::original_text): New virtual function. - pt-exp-base.cc (tree_expression::original_text): Default version. - - * pt-pr-code.h (tree_print_code::print_original_text, - tree_print_code::prefix): New fields. - * pt-pr-code.cc (tree_print_code::visit_constant): Pass - print_original_text to tree_constant::print(). - (tree_print_code::indent): Use prefix instead of Vps4. - * pt-fcn.cc (tree_function::print_function_header, - tree_function::print_function_trailer): Pass Vps4 to - tree_print_code_constructor for prefix. - * pt-misc.cc (tree_statement::maybe_echo_code): Pass Vps4 to - tree_print_code_constructor for prefix. - - * pt-mat.h, pt-mat.cc (tree_matrix::all_elements_are_constant): - Rename from is_matrix_constant. - (tree_matrix_row::all_elements_are_constant): Likewise. - Change all callers. - - Mon Nov 18 14:13:32 1996 John W. Eaton - - * Makefile.in (install-inc): Try harder to create the link from - include/octave to include/octave-VERSION. - - Sun Nov 17 14:14:48 1996 John W. Eaton - - * Makefile.in (parse.cc): Expect 13 shift/reduce conflicts. - - * parse.y (set_stmt_print_flag): New function. - (sep_type): New member for bison %union declaration. - Simplify rules for statement lists keeping track of the type of - the first separator in the values associated with the - nonterminals for the separators. - - * lex.l (handle_identifier): Set lexer_flags.doing_set if the - token is "gset", not "set". - - Sat Nov 16 21:41:26 1996 John W. Eaton - - * Makefile.in (parse.cc, lex.cc): Add special rules for these files. - Delete pattern rules for .y and .l files. - - Fri Nov 15 13:48:02 1996 John W. Eaton - - * pt-plot.cc: Put semicolons at the ends of all plot commands. - - * defaults.cc (subst_octave_home): Start subsequent searchs from - the end of the replaced text. - - * pr-output.cc (pr_any_float): Kluge for SCO systems. - - * pr-output.cc (pr_any_float, pr_complex): Don't declare inline. - - * mappers.cc: Include lo-ieee.h, for isinf and isnan on SCO - systems. - - Thu Nov 14 00:06:19 1996 John W. Eaton - - * pt-plot.cc (Fgset, Fgshow): New commands. - (Fshow): Print warning and call gshow. - (Fset): Print warning and call gset. - - * variables.cc (parse_fcn_file): Add unwind-protect for file - pointer, so the file is always closed. - (get_help_from_file): Likewise. - * toplev.cc (parse_and_execute): Likewise. - - * Makefile.in (install-oct): Depend on mk-oct-links. - (mk-oct-links): New target. - - * Version 1.92. - - Wed Nov 13 11:13:22 1996 John W. Eaton - - * sighandlers.cc (sys_siglist): [__EMX__]: Add definitions. - - * octave.cc (execute_startup_files): Allow init file name ot be - specified by an environment variable. - - * dirfns.cc (make_absolute): [__EMX__]: Path is already absolute - if it begins with any character followed by a colon. - - * load-save.cc (read_mat_ascii_matrix, get_lines_and_columns, - get_complete_line): New functions, for reading headless text files. - (load_save_format): Add LS_MAT_ASCII, for headless text files. - (do_load): Handle LS_MAT_ASCII files. - Thanks to Mel Melchner for initial version - of this code. - - * sysdep.cc: Conditionally include ieeefp.h. - (BSD_init, SCO_init): New functions. - (sysdep_init): Conditionally call them here. - - Tue Nov 12 00:14:56 1996 John W. Eaton - - * pt-plot.cc (open_plot_stream): Don't block SIGCHLD. - - * load-save.cc (read_binary_data): When reading string arrays, be - sure to create an octave_char_matrix_str object, not just an - octave_char_matrix object. - (read_ascii_data): Likewise. - - Mon Nov 11 22:52:58 1996 John W. Eaton - - * load-save.cc (read_binary_data): Don't forget teminating NUL for - string that we plan to insert. - (read_ascii_data): Likewise. - - Sun Nov 10 16:58:07 1996 John W. Eaton - - * dirfns.cc (Ffnmatch): New function. - - * octave.cc (intern_argv): Use new string_vector constructor. - - * ov-str-mat.cc (octave_char_matrix_str::all_strings): Have - charMatrix::row_as_string() strip trailing whitespace. - - * dirfns.cc (Fglob): new function. - - * sysdep.cc (oct_tilde_expand): Provide version that works on - string vectors too. - (Ftilde_expand): Work on string vector args. - - * load-save.cc (save_binary_data): Call char_matrix_value() to - extract charMatrix from octave_value object, not all_strings(). - (save_ascii_data): Likewise. - * pt-mat.cc (tree_matrix::eval): Likewise. - - * ov.h (octave_value::all_strings): Return string_vector, not - charMatrix. - * ov-base.cc (octave_base_value::all_strings): Likewise. - * ov-str-mat.h, ov-str-mat.cc (octave_char_matrix_str::all_strings): - Likewise. - - Fri Nov 8 09:54:59 1996 John W. Eaton - - * defaults.cc, dynamic-ld.cc, fn-cache.cc, help.cc, oct-hist.cc, - octave.cc, pager.cc, pt-fcn.cc, toplev.cc, utils.cc, variables.cc, - lex.l: Change #include "" to #include <> for defaults.h, - oct-conf.h, oct-gperf.h, y.tab.h, and version.h, to avoid getting - them from $srcdir when we really want the version from the build - directory. (Maybe this should be done for all the include files, - not just those that are auto-generated? Hmm.) - - * defaults.h.in (CXXLIB_LIST, CXXLIB_PATH, FLIB_LIST, FLIB_PATH): - Delete. - - * Makefile.in (install-oct): Use $(INSTALL_PROGRAM) for .oct files. - - Thu Nov 7 07:59:07 1996 John W. Eaton - - * variables.cc (gobble_leading_white_space): New arg, update_pos. - * (is_function_file): Don't update file position information here. - - * Version 1.91. - - * pt-fvc.cc (tree_indirect_ref::reference): If the lhs object is - not a map, convert it to one. - - * ov-typeinfo.h (init_tab_sz): New static member. - - * ov-struct.cc, ov-struct.h: Add hooks for custom memory management. - * ov-scalar.cc, ov-scalar.h: Likewise. - * ov-re-mat.cc, ov-re-mat.h: Likewise. - * ov-range.cc, ov-range.h: Likewise. - * ov-cx-mat.cc, ov-cx-mat.h: Likewise. - * ov-complex.cc, ov-complex.h: Likewise. - * ov-ch-mat.cc, ov-ch-mat.h: Likewise. - - Wed Nov 6 12:32:48 1996 John W. Eaton - - * pager.cc (do_sync): Don't call clear_external_pager() here. - - * pt-const.h (tree_constant::allocator) New static member. - (tree_constant::operator new, tree_constant::operator delete): - Implement with custom allocator. - - * syscalls.cc (Fgetgid, Fgetegid): New functions. - - * sighandlers.cc (sigchld_handler): If necessary, reinstall - handler after call to waitpid(). - - * pager.cc (pager_death_handler): Don't use warning() to print - message. - - * getgrent.cc: New file. - * Makefile.in (DLD_SRC): Add it. - - * ov.cc (octave_value::print_with_name): Call is_map() instead of - print_as_structure(). - * ov-struct.cc (octave_struct::print): Likewise. - - * ov.h, ov.cc, pt-const.h: Delete force_numeric(), make_numeric(), - convert_to_matrix_type(), print_as_structure() member functions. - - * variables.cc (is_function_file): Call gobble_leading_whitespace - here to strip all leading whitespace and comments. - (parse_fcn_file): If reading a function file, call - gobble_leading_whitespace again after resetting parser state to - grab help text. - - Tue Nov 5 13:00:35 1996 John W. Eaton - - * syscalls.cc (Fgeteuid, Fgetuid): New functions. - - * getpwent.cc: Use gripe_not_supported from gripes.cc, instead of - local gripe_not_implemented function. - - * input.cc, sysdep.cc, variables.cc: Only include readline.h and - history.h if USE_READLINE is defined. - - * help.cc: Make it compile without warnings even if USE_GNU_INFO - is not defined. - - * sighandlers.h (octave_child_list): Don't define - HAVE_POSIX_SIGNALS HERE. - - * sighandlers.cc (SIGHANDLER_RETURN): New macro. - (generic_sig_handler, sigchld_handler, sigfpe_handler, - sigint_handler, sigpipe_handler): Use it. - (sigchld_handler, sigfpe_handler, sigint_handler, sigpipe_handler): - Only reinstall signal handler if MUST_REINSTALL_SIGHANDLER is defined. - - Sun Nov 3 00:45:30 1996 John W. Eaton - - * pt-const.cc (tree_constant::print): Just call val.print(). - * ov-base.cc, ov-ch-mat.cc, ov-colon.cc, ov-complex.cc, - ov-cx-mat.cc, ov-range.cc, ov-re-mat.cc, ov-scalar.cc, - ov-str-mat.cc, ov-struct.cc ov-va-args.cc, ov.cc (print): - Handle pr_as_read_syntax arg. - - * defaults.cc (subst_octave_home): Search for prefix repeatedly in - retval, not s. - - * gripes.h: Make declaration of gripes_not_supported match - definition. - - * mk-oct-links.in: In sed command, match "DEFUN_DLD *( *", not - "DEFUN_DLD_BUILTIN *( *". - - * chol.cc, colloc.cc, dassl.cc, det.cc, eig.cc, expm.cc, fft.cc, - fft2.cc, filter.cc, find.cc, fsolve.cc, fsqp.cc, getpwent.cc, - getrusage.cc, givens.cc, hess.cc, ifft.cc, ifft2.cc, inv.cc, - log.cc, lpsolve.cc, lsode.cc, lu.cc, minmax.cc, npsol.cc, pinv.cc, - qpsol.cc, qr.cc, quad.cc, qzval.cc, rand.cc, schur.cc, sort.cc, - svd.cc, syl.cc, time.cc: Change all uses of DEFUN_DLD_BUILTIN to - be just DEFUN_DLD. - - * defun-dld.h: Eliminate DEFUN_DLD_BUILTIN. - - * syswait.h: Use #ifdef HAVE_SYS_WAIT_H, not #if HAVE_SYS_WAIT_H - to decide whether to include sys/wait.h. - - * pt-exp-base.h (tree_expression): Declare oper() here as a - virtual member function. - - * pt-pr-code.cc (tree_print_code::visit_constant): Check for - string before checking for char_matrix. - - * ov-ch-mat.cc (octave_char_matrix::print): Supply correct number - of args to octave_print_internal(). - - Sat Nov 2 20:44:55 1996 John W. Eaton - - * file-io.cc (Ftmpnam): Rename from Foctave_temp_file_name. - - * Makefile.in (DLD_SRC): Move time.cc and getrusage.cc here from - SOURCES. Add getpwent.cc. - - * getrusage.cc: Rename from resource.cc. Make getrusage a - loadable function. - - * time.cc: Rename from timefns.cc. Make time functions loadable. - - * getpwent.cc: New file. - - Wed Oct 30 01:06:19 1996 John W. Eaton - - * Version 1.90. - - * Makefile.in (DISTFILES): Add ChangeLog. - - * ov-range.cc (octave_range::convert_to_str): New function. - - * ov-str-mat.h (octave_char_matrix_str::char_matrix_value): - Delete function. Already handled by octave_char_matrix class. - - * ov-ch-mat.h (octave_char_matrix::convert_to_str): New function. - - * pager.cc (Fmore): Set page_screen_output to 1.0 or 0.0, not - "true" or "false". - - * ov-ch-mat.cc, ov-struct.cc, ov-struct.h, pr-output.cc, - pt-cmd.cc, pt-const.cc, pt-const.h, pt-fcn.cc, pt-fvc-base.cc, - pt-fvc-base.h, pt-fvc.cc, pt-fvc.h, rand.cc, sighandlers.cc, - variables.cc, variables.h: Delete unused code. - - * octave.cc: Only include pwd.h if HAVE_PWD_H. - - * oct-strstrm.h: Include , not . - - * defaults.cc, dirfns.cc, file-io.cc, help.cc, input.cc, - oct-hist.cc, oct-procbuf.cc, oct-procbuf.h, octave.cc, pager.h, - procstream.h, pt-misc.cc, pt-plot.cc, sighandlers.cc, strftime.c, - syscalls.cc, sysdep.cc, syswait.h, toplev.cc, utils.cc, - variables.cc: Only include sys/types.h if HAVE_SYS_TYPES_H. - - * error.h (panic): Use GCC_ATTR_NORETURN macro, not NORETURN. - * toplev.h (clean_up_and_exit): Likewise. - * utils.h (jump_to_top_level): Likewise. - - * derfaults.h.in, defaults.cc (local_arch_lib_dir): New variable. - * defaults.cc (set_default_local_arch_lib_dir): New function. - (install_defaults): Call it. - (exec_path): Use Vlocal_arch_lib_dir here. - * toplev.cc (octave_config_info): Add localarchlibdir to structure. - - Tue Oct 29 15:54:27 1996 John W. Eaton - - * Makefile.in (install-oct): Don't do anything if $(OCT_FILES) is - empty. - - * ov-range.cc (octave_range::index): New Function. - (octave_range::all, octave_range::any, octave_range::is_true): - Make these functions work. - - * ov.cc (octave_value::try_assignment_with_conversion): Remove - left over debugging print statements. - - Mon Oct 28 10:49:03 1996 John W. Eaton - - * strftime.c: Add missing #endif for previous change. - - Sun Oct 27 14:06:44 1996 John W. Eaton - - * oct-hist.cc (do_history): Rewite option parsing to avoid - (probably bogus) errors from g++ on cygwin32 system. - - * strftime.c: Use autoconf macros TIME_WITH_SYS_TIME and - HAVE_SYS_TIME_H to decide which time.h files to include. - - * oct-stream.h, oct-stream.cc (octave_stream::error, - octave_base_stream::error): Rename errno => err_num. - - Sat Oct 26 10:40:05 1996 John W. Eaton - - * oct-hist.cc (do_history): Move declaration of file inside - conditional. - - * defun.h (DEFVAR_INT): Set eternal flag with (svc_fcn != 0) - instead of (sv_fcn ? 1 : 0) - - Fri Oct 25 01:10:51 1996 John W. Eaton - - * ov-ch-mat.h (octave_char_matrix::any): Return 0.0 instead of false. - (octave_char_matrix::all): Likewise. - - * input.cc (Fecho): When binding value of echo_executing_commands, - cast ECHO_* to double. - - * sighandlers.cc (octave_child_list::do_remove): Delete unused - variable `enlarge'. - - * pt-const.h (tree_constant::tree_constant (const tree_constant&)): - Don't pass arg to tree_fvc constructor. - - * resource.cc (getrusage): [HAVE_GETRUSAGE && RUSAGE_TIMES_ONLY]: - Only fill in time values. - - Thu Oct 24 20:37:28 1996 John W. Eaton - - * parse.y: Comment out the %expect declaration so byacc can - compile this file. - (if_cmd_list): Add missing semicolon. - Include for getenv if using byacc. - - * ov.h: Move typedefs outside of octave_value class scope to avoid - problem with cygwin32 beta16 compiler. - - Fri Oct 18 13:44:33 1996 John W. Eaton - - * ov.h (octave_value::index): Undo previous change. - * ov.cc (octave_value constructors): Call maybe_mutate() in most - cases. - - * ov-complex.cc (octave_complex::index): Avoid implicit type - conversion back to scalar type. - * ov-scalar.cc (octave_scalar::index): Likewise. - - * ov.h (octave_value::index): Call maybe_mutate() on retval before - returning it. - - Wed Oct 16 12:00:11 1996 John W. Eaton - - * ov.h (octave_value::struct_elt_val): New optional arg, silent. - * ov-base.h, ov-base.cc, ov-struct.h, ov-struct.cc: Likewise, but - for the derived classes the arg is required. - - * data.cc (Fstruct_contains): Require arguments to be struct and - string, respectively. Call octave_value::struct_elt_val with - silent flag set. - - * pt-mat.cc (tm_row_const::tm_row_const_rep::eval_error, - tm_row_const::tm_row_const_rep::eval_warning): New functions. - (tm_row_const::tm_row_const (const tree_matrix_row&): Use them to - give better error messages. - - * pt-fvc.cc (tree_identifier::eval): Avoid dereferencing null - object_to_eval. - - Tue Oct 15 11:35:51 1996 John W. Eaton - - * op-cs-cm.cc, op-cs-cs.cc, op-cs-m.cc, op-cs-s.cc - (complex_matrix_conv): New functions. - Install preferred assignment conversion and widening ops. - - * op-s-cm.cc, op-s-cs.cc (complex_matrix_conv): New functions. - Install preferred assignment conversion and widening ops. - - * op-s-m.cc, op-s-s.cc (matrix_conv): New functions. - Install preferred assignment conversion and widening ops. - - * ov.cc (octave_value::try_assignment_with_conversion, - octave_value::convert_and_assign, octave_value::try_assignment): - New functions. - (octave_value::assign): Use them to implement twisted logic for - type conversions in assigments. - - * pt-const.h (tree_constant::maybe_mutate): New function. - * ov.h (octave_value::maybe_mutate): New function. - (octave_value::try_narrowing_conversion): New function. - Use just one typedef for widening_op_fcn and numeric_conv_fcn. - Change all uses. - * ov-base.h, ov-complex.h, ov-complex.cc, ov-cx-mat.h, - ov-cx-mat.cc, ov-range.h, ov-range.cc, ov-re-mat.h, ov-re-mat.cc, - Provide derived class versions of try try_narrowing_conversion(). - - * pr-output.cc (octave_print_internal): Don't bother handing off - to scalar/real versions, even when it would seem appropriate. - - * symtab.cc (symbol_def::define (tree_constant *)): Call - maybe_mutate on constants here. - - Mon Oct 14 11:05:24 1996 John W. Eaton - - * pt-fvc.cc (tree_identifier::eval): If retval is undefined and - the object to eval is a constant, print error message. - - * Makefile (distclean): Remove *.oct too. - - * defun-int.h: Include variables.h here. - - Sun Oct 13 10:52:28 1996 John W. Eaton - - * variables.cc (print_symbol_info_line): Never print negative - diminsions. - - * symtab.h (octave_symbol_record_info): Store const_type as string. - (octave_symbol_record_info::init): Delete. Fix constructors. - (octave_symbol_record_info::type_name): Handle const_type as string. - - * octave.cc (maximum_braindamage): Replace "true" with 1.0 and - "false" with 0.0 in calls to bind_builtin_variable(). - Include sun-utils.h here. - (intern_argv): Also bind __argv__. - - Sat Oct 12 13:40:21 1996 John W. Eaton - - * Makefile.in (distclean): Also delete mk-oct-links. - - Fri Oct 11 13:13:13 1996 John W. Eaton - - Changes for Octave's new type system: - - * arith-ops.cc: Delete. - * pt-const.h, pt-const.cc: Massive changes. Most functionality - moved to ov.h, ov.cc, and derived classes. - - * variables.h, variables.cc (octave_variable_reference): New class - for getting references to variables and structure elements used in - assignments or value contexts. - - * symtab.h, symtab.cc (symbol_record::define (const octave_value&), - symbol_record::variable_value, symbol_record::variable_reference): - New functions. - (symbol_record_info::type_name): Rename from type_as_string. - - * pt-fvc-base.h, pt-fvc-base.cc (tree_fvc::increment, - tree_fvc::decrement): New functions to replace - tree_fvc::bump_value. - #if 0 assign and lookup_map_element functions. - - * pt-mvr.cc (tree_multi_assignment_expression::eval): - Generated RHS value is now a tree_constant. - - * pt-exp.h, pt-exp.cc (tree_boolean_expression): New class. - (tree_unary_expression, tree_binary_expression, - tree_boolean_expression): Move codes here from tree_expression. - (tree_simple_assignment_expression): Cope with changes to way of - doing assignments. - - * pt-exp-base.h, pt-exp-base.cc (enum type): Delete codes for - unary and binary ops. - (tree_expression::expression_type): Delete. - (tree_expression::is_logically_true): Hand off to - octave_value::is_true to do real work. - - * pr-output.h, pr-output.cc (any_element_is_inf_or_nan, - all_elements_are_ints): Delete. Call member new functions for - these operations. - (free_format, plus_format, bank_format, hex_format, - compact_format, print_e, print_big_e): Use bool, not int. - (octave_print_internal): Hand off to scalar/real versions when - appropriate. - - * octave.cc (main): Call initialize_types() and install_ops(). - (verbose_usage): Add WWW address to output. - - * parse.y (indirect_ref): Handle by making a tree instead of a - list using new version of tree_indirect_ref class. - - * parse.y (make_boolean_op): New function. Use it instead of - make_binary_op to create trees for && and || ops. - (make_binary_op): Codes come from tree_binary_expression now, - instead of tree_expression. - (make_unary_op): Codes come from tree_unary_expression now, - instead of tree_expression. - (make_boolean_op): Codes come from tree_boolean_expression. - - *parse.y (tree_constant_type): Change type to tree_constant* from - octave_value*, and rename from octave_value_type. Change uses. - - * defun.h (DEFVAR_INT): Pass octave_value not pointer to - octave_value for defn when creating builtin_variable. - - * gripes.h, gripes.cc (gripe_invalid_conversion): Args are - strings, not char*. - (gripe_implicit_conversion, gripe_divide_by_zero): New extern - gripe functions. - - * mkbuiltins: For each file, create a separate static function to - install builtins, then create another single extern function to - call all of them. - - * pt-fcn.cc (tree_function::bind_nargin_and_nargout): - Just pass doubles and let symbol_record::define handle creating - new value. - - * pt-pr-code.cc, pt-pr-code.h (visit_constant): Renamed from - visit_octave_value. - (visit_unary_expression): Use tree_expression::is_prefix_op() - instead of switch on op types. - - * pt-walk.h (visit_constant): Renamed from visit_octave_value. - - * pt-misc.cc (initialize_undefined_elements): Get reference to - tmp, then assign. - * pt-cmd.cc (do_for_loop_once): Likewise, for loop identifier. - - * input.cc (generate_struct_completions, looks_like_struct): Cast - tmp_fvc to tree_constant*, not octave_value*. - (get_user_input): Call print() on retval, not eval(1). - - * help.cc (Ftype): Cast defn to tree_constant*, not octave_value*. - - * balance.cc: Fix docstring. - - * dassl.cc, fsolve.cc, load-save.cc, lsode.cc, npsol.cc, qpsol.cc, - quad.cc: - Include pt-fvc.h. - - * data.cc (Fstruct_contains): call octave_value::struct_elt_val, - not octave_value::lookup_map_element. - - * dirfns.cc (Fcd): Pass directory name as string directly to - bind_builtin_variable instead of creating new octave_value. - - * toplev.cc: Include pt-fvc.h and lo-mappers.h - - * data.cc, error.cc, file-io.cc, load-save.cc, pager.cc, - pt-mat.cc, pt-plot.cc, syscalls.cc, toplev.cc: - Include variables.h. - - * Array-tc.cc, Map-tc.cc, SLList-misc.cc SLList-tc.cc, data.cc, - defaults.cc, dynamic-ld.cc, error.cc, gripes.cc, lex.l, octave.cc, - oct-map.h, oct-map.cc, oct-obj.h, pt-cmd.cc, pt-exp.cc, pt-fcn.cc, - pt-fvc-base.cc, pt-mat.cc, pt-misc.cc, pt-mvr-base.cc, pt-mvr.h, - resource.cc, strfns.cc, sysdep.cc, timefns.cc, toplev.cc: - Include ov.h instead of pt-const.h. - - * xpow.cc (any_element_is_negative): Delete. - (xpow and elem_xpow functions): Check conformance here. - - * xdiv.cc (mx_leftdiv_conform, mx_div_conform): - Now template-based, taking Matrices instead of dimensions as args. - Change all callers. - - * op-cm-cm.cc, op-cm-cm.h, op-cm-cs.cc, op-cm-cs.h, op-cm-m.cc, - op-cm-m.h, op-cm-s.cc, op-cm-s.h, op-cs-cm.cc, op-cs-cm.h, - op-cs-cs.cc, op-cs-cs.h, op-cs-m.cc, op-cs-m.h, op-cs-s.cc, - op-cs-s.h, op-m-cm.cc, op-m-cm.h, op-m-cs.cc, op-m-cs.h, op-m-m.cc, - op-m-m.h, op-m-s.cc, op-m-s.h, op-s-cm.cc, op-s-cm.h, op-s-cs.cc, - op-s-cs.h, op-s-m.cc, op-s-m.h, op-s-s.cc, op-s-s.h, - op-str-str.cc, op-str-str.h, ops.cc, ops.h, ov-base.cc, ov-base.h, - ov-ch-mat.cc, ov-ch-mat.h, ov-colon.cc, ov-colon.h, ov-complex.cc, - ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, ov-range.cc, ov-range.h, - ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, ov-scalar.h, ov-str-mat.cc, - ov-str-mat.h, ov-struct.cc, ov-struct.h, ov-typeinfo.cc, - ov-typeinfo.h, ov-va-args.cc, ov-va-args.h, ov.cc, ov.h: - New files for Octave's new type system. - * Makefile.in: Add them to the appropriate lists. - - Sat Sep 14 21:58:33 1996 John W. Eaton - - * mkbuiltins: Use .df instead of .def. - Write one function for each .df file, then call them - all in install_builtin_functions(). - * Makefile.in: Handle .df instead of .def. - - * balance.cc (balance): Fix typo in doc string. - - Wed Aug 28 21:01:49 1996 John W. Eaton - - * octave.cc (verbose_usage): Include WWW address and bug-octave - mailing list address. - - Tue Aug 20 17:41:19 1996 John W. Eaton - - * Makefile.in: Only define pattern rules for making .oct files if - OCTAVE_LITE is true. - Only add pic/ to $(TI_OBJ) if $(SHARED_LIBS) is true. - (stamp-picdir): Only create a pic subdirectory if SHARED_LIBS or - OCTAVE_LITE is true AND CPICFLAG or CXXPICFLAG is not empty. - - * minmax.cc (Fmin, Fmax): Deal with changes to Matrix class - min/max methods. - - Thu Jul 25 01:42:38 1996 John W. Eaton - - * input.cc (generate_possible_completions): Force the names to be - unique. - - * load-save.cc (read_mat_binary_data): Expect to read terminating - NUL character in the variable name. - (save_mat_binary_data): Likewise, save it here. - - Wed Jul 24 05:08:07 1996 John W. Eaton - - * lsode.cc (Flsode): Don't set the return value if an error - occurred during integration. - * dassl.cc (Fdassl): Likewise. - - * file-io.cc (symbols_of_file_io): Redefine values of SEEK_SET, - SEEK_CUR, and SEEK_END for Matlab compatibility. - * oct-stream.cc (seek): Check for compatible values of ORIGIN arg. - Also handle "bof", "cof", and "eof". - - Fri Jul 19 15:24:36 1996 John W. Eaton - - * pt-const.cc: When creating octave_value_reps from ComplexMatrix - values, check to see if all the elements are actually real. - - Tue Jul 16 10:53:42 1996 John W. Eaton - - * input.cc (decode_prompt_string): Swap meanings of \h and \H. - - Mon Jul 15 16:01:51 1996 John W. Eaton - - * toplev.cc (run_command_and_return_output): Renamed from do_system. - (Fsystem): Make `system ("emacs")' work as one would expect. - - Sun Jul 14 17:34:33 1996 John W. Eaton - - * file-io.cc (Ffopen, Ffread, Ffwrite): Update doc strings, - correctly handle default architecture and precision args. - - * load-save.cc (mopt_digit_to_float_format): Rename from - get_floating_point_format. - (float_format_to_mopt_digit): New function. - - * oct-stream.cc (octave_base_stream::read, octave_base_stream::write): - Simplify by calling Matrix::read and Matrix::write to do real work - of reading, writing, and format conversion. - - * oct-stream.h (octave_base_stream): Move data_type enum to - liboctave/data-conv.h. Use float_format from - liboctave/mach-info.h instead of arch_type enum. - - * sysdep.h, sysdep.cc (octave_words_big_endian, ten_little_endians): - Delete. Now part of oct_mach_info class in liboctave. - - Tue Jul 9 11:18:59 1996 John W. Eaton - - * arith-ops.cc, balance.cc, dassl.cc, data.cc, filter.cc, find.cc, - fsolve.cc, load-save.cc, log.cc, lsode.cc, minmax.cc, npsol.cc, - oct-obj.cc, oct-stream.cc, pr-output.cc, pt-cmd.cc, pt-const.cc, - pt-fvc.cc, pt-plot.cc, quad.cc, rand.cc, sighandlers.cc, sort.cc, - syscalls.cc, unwind-prot.cc, xdiv.cc, xpow.cc: - When indexing arrays, use operator() instead of elem() so that - bounds checking can be done consistently. - - Mon Jun 24 02:13:27 1996 John W. Eaton - - * Makefile.in (install-oct): Use INSTALL_PROGRAM, instead of - INSTALL_DATA for installing shared libraries. - - * lex.l (grab_help_text): Ignore all initial comment characters, - not just the first. - * variables.cc (gobble_leading_white_space): Likewise. - - Sat Jun 22 22:43:45 1996 John W. Eaton - - * input.h, input.cc (octave_completion_matches_called): New varaible. - (Fcompletion_matches): Set it to true on a successful call. - * toplev.cc (main_loop): If octave_completion_matches_called is - true, don't increment current_command_number. - - Thu Jun 13 03:52:19 1996 John W. Eaton - - * variables.cc (is_mapper_function_name, - is_builtin_function_name): New functions. - (Fdocument): Use them. - Define as regular function, not a text style function. - - Thu Jun 6 00:09:25 1996 John W. Eaton - - * pt-plot.cc: Handle new built-in variable `gnuplot_has_frames'. - - Wed Jun 5 14:45:04 1996 John W. Eaton - - * input.cc (decode_prompt_string): \h now means the whole host - name and \H is the host name up to the first `.'. - - Thu May 30 23:41:51 1996 John W. Eaton - - * fn-cache.cc (octave_fcn_file_name_cache::do_list): Always - recompute the lists of function files instead of trying to cache - them. - - Tue May 28 12:05:24 1996 John W. Eaton - - * utils.cc (warn_old_style_preference): New function. - (check_preference): Use it. - - * fn-cache.h: Include here. - - Fri May 24 00:57:14 1996 John W. Eaton - - * input.cc (completion_matches): Don't return empty string_vectors. - - * octave.cc (long_opts): Add braindead. - - Thu May 23 01:49:33 1996 John W. Eaton - - * input.cc (gnu_readline): New optional arg, force_readline. - (get_user_input): Use it. - - * pt-const.cc (OCT_VAL_REP::assign): If converting the rhs to a - numeric value, convert a copy, not the actual object. - (OCT_VAL_REP::do_index): Prevent s([]) from resulting in a string - with zero rows. - - * mappers.cc: Handle toascii here. - * strfns.cc: Not here. - - * mappers.cc: Handle tolower and toupper here. - * mappers.h: Rename can_return_complex_for_real to flag and - overload meaning for ch_mapper. - * pt-fvc.cc (apply_mapper_fcn): Handle overloaded meaning. - - * syscalls.cc (stat): Return 3 values instead of just 1. - (lstat): Likewise. - - Wed May 22 02:34:20 1996 John W. Eaton - - * pt-const.cc (OCT_VAL_REP::make_numeric): For string to number - conversions, correctly set type tag before calling force_numeric. - (do_binary_op): Force string to number conversion if both args are - strings and we are doing some sort of comparison operation. - - * Makefile.in (stamp-tinst, stamp-interp): Use SH_TERMLIBS and - SH_LIBS instead of TERMLIBS and LIBS. - - * pt-const.cc (do_unary_op): Add special case to handle - transposing strings. - - * pt-mat.cc (Vstring_fill_char): New variable. - (symbols_of_pt_mat): DEFVAR it. - - * input.cc (generate_struct_completions, - generate_possible_completions): Return string_vector, not char **. - Change all callers. - - * pt-const.cc (lookup_map_element): Use substr() correctly. - - Tue May 21 21:37:17 1996 John W. Eaton - - * oct.h: New file. - * Makefile.in (INCLUDES): Add it to the list. - - * octave.cc: New args --no-site-file and --no-init-file. Delete - --ignore-init-file. The flag --norc (-f) implies both - --no-site-file and --no-init-file. - - Fri May 17 01:54:51 1996 John W. Eaton - - * input.cc (Fcompletion_matches): New function. - - * utils.cc (get_fcn_file_names): Delete. - * help.cc (simple_help): Use new file name cache instead of - calling get_fcn_file_names. - * variables.cc (make_name_list): Likewise. - - * fn-cache.h, fn-cache.cc, Map-fnc.cc: New files. - * Makefile.in: Add them to the lists. - - * Makefile.in (uninstall): Install in octincludedir, not includedir. - - * pt-plot.h: Include here. - - Thu May 16 10:52:51 1996 John W. Eaton - - * oct-stream.cc (octave_stream::oscanf, octave_base_stream::oscanf, - octave_base_stream::do_oscanf): New functions for backward - compatibility with older versions of Octave. - (scanf_format_elt, scanf_format_list): Keep track of width specifier. - * file-io.cc (Fscanf): New function. - (Fscanf, Ffscanf, Fsscanf): Handle compatibility arg. - - Wed May 15 01:00:12 1996 John W. Eaton - - * oct-stream.cc (do_scanf): If doing '%c' conversion, unset - ios::skipws on input stream. - - * sighandlers.h, sighandlers.cc (octave_child, octave_child_list): - New classes for keeping track of the child processes we create. - (sigchld_handler): Check in octave_child_list to see if there is - anything we can do for the child that died. - * pager.cc: Register child pager process. - * pt-plot.cc: Likewise, for the plotter. - * Array-oc.cc: New file - * Makefile.in (TI_SRC): Add it to the list. - - * pager.cc (do_sync): Don't check error_state. - (flushing_output_to_pager): New static variable. - (flush_octave_stdout): Use it to avoid doing anything if already - flushing output. - - * sighandlers.cc (sigchld_handler): Call warning instead of - writing directly to cerr. - (sigpipe_handler): Call warning instead of message. - - * octave.cc (main): Call install_signal_handlers, - initialize_file_io, initialize_symbol_tables, and install_builtins - before parsing command line options. - - * user-prefs.h, user-prefs.cc: Delete. - - * utils.cc (check_preference): Move here. - * user-prefs.cc: From here. - - * defaults.cc: New file. Move initialization stuff from - variables.cc. Move DEFVARS for EDITOR, EXEC_PATH, LOADPATH, - IMAGEPATH, and OCTAVE_VERSION here. - - * user-prefs.h, user-prefs.cc: Delete all stuff related to - INFO_FILE and INFO_PROGRAM. - * help.cc: Move all of that here. - (symbols_of_help): Add DEFVARS for INFO_FILE and INFO_PROGRAM. - - Tue May 14 00:23:06 1996 John W. Eaton - - * pager.cc (do_sync): Be more defensive about sending stuff to the - external pager. - * sighandlers.cc (sigchld_handler): For now, only wait for - octave_pager_pid. Don't call error(). Do set octave_pager_pid to - -1 if the pager process no longer exists. - - * user-prefs.h, user-prefs.cc: Delete all stuff related to - PWD. - * dirfns.cc: Move all of that here. - (symbols_of_dirfns): New function. - * variables.cc (install_builtin_variables): Call it. - - * user-prefs.h, user-prefs.cc: Delete all stuff related to - default_save_format and save_precision. - * load-save.cc: Move all of that here. - (symbols_of_load_save): New function. - * variables.cc (install_builtin_variables): Call it. - - * user-prefs.h, user-prefs.cc: Delete all stuff related to - warn_divide_by_zero. - * arith-ops.cc: Move all of that here. - (symbols_of_arith_ops): New function. - * variables.cc (install_builtin_variables): Call it. - - * mappers.cc: Add wrappers for ctype is* functions so that they - will work on systems that only define them as macros. - - Mon May 13 00:27:08 1996 John W. Eaton - - * user-prefs.h, user-prefs.cc: Delete all stuff related to - suppress_verbose_help_message. - * help.cc: Move all of that here. - (symbols_of_help): New function. - * variables.cc (install_builtin_variables): Call it. - - * user-prefs.h, user-prefs.cc: Delete all stuff related to - treat_neg_dim_as_zero. - * pt-const.cc: Move all of that here. - - * pager.cc (octave_pager_stream::do_sync): Don't return early if - not interactive. - - * data.h: New file. - * Makefile.in (INCLUDES): Add it to the list. - * data.cc (symbols_of_data): New function. Move definition of I, - Inf, J, NaN, e, eps, i, inf, j, nan, pi, realmin, and realmax here. - * variables.cc: From here. - (install_builtin_variables): Call symbols_of_data. - - * file-io.cc (symbols_of_file_io): New function. Move definition - of SEEK_CUR, SEEK_END, SEEK_SET, stdin, stdout, stderr here. - * variables.cc: From here. - (install_builtin_variables): Call symbols_of_file_io. - - * user-prefs.h, user-prefs.cc: Delete all stuff related to - do_fortran_indexing, implicit_str_to_num_ok, - ok_to_lose_imaginary_part, prefer_column_vectors, - prefer_zero_one_indexing, print_answer_id_name, - propagate_empty_matrices, resize_on_range_error, and - struct_levels_to_print. - * pt-const.cc: Move all of that here. - (symbols_of_pt_const): New function. - * variables.cc (install_builtin_variables): Call it. - * pt-fvc.cc (tree_identifier::assign): Use Vresize_on_range_error - instead of user_pref.resize_on_range_error here. - * load-save.cc (save_mat_binary_data): Use Vimplicit_str_to_num_ok - instead of user_pref.implicit_str_to_num_ok here. - * utils.cc (empty_arg): Use Vpropagate_empty_matrices instead of - user_pref.propagate_empty_matrices here. - * pt-exp-base.cc (tree_expression::is_logically_true): Likewise.. - - * pt-fcn.cc (symbols_of_pt_fcn): Also move DEFVAR for - default_return_value here. - - * user-prefs.h, user-prefs.cc: Delete all stuff related to - ps1, ps2, ps4, and completion_append_char. - * input.cc: Move all of that here. - (symbols_of_input): New function. - * variables.cc (install_builtin_variables): Call it. - * pt-pr-code.cc (indent): Use Vps4 instead of user_pref.ps4 here. - * help.cc (Ftype): Also here. - - * user-prefs.h, user-prefs.cc: Delete all stuff related to - automatic_replot, gnuplot_binary, and gnuplot_has_multiplot. - * pt-plot.cc: Move all of that here. - (symbols_of_pt_plot): New function. - * variables.cc (install_builtin_variables): Call it. - - * user-prefs.h, user-prefs.cc: Delete all stuff related to - beep_on_error. - * error.cc: Move all of that here. - (symbols_of_error): New function. - * variables.cc (install_builtin_variables): Call it. - - * user-prefs.h, user-prefs.cc: Delete all stuff related to - empty_list_elements_ok. - * pt-mat.cc: Move all of that here. - (symbols_of_pt_mat): New function. - * variables.cc (install_builtin_variables): Call it. - - * user-prefs.h, user-prefs.cc: Delete all stuff related to - define_all_return_values, return_last_computed_value, and - silent_functions. - * pt-fcn.cc: Move all of that here. - (symbols_of_pt_fcn): New function. - * variables.cc (install_builtin_variables): Call it. - - * user-prefs.h, user-prefs.cc: Delete all stuff related to - whitespace_in_literal_matrix. - * lex.l: Move all of that here. - (symbols_of_lex): New function. - * variables.cc (install_builtin_variables): Call it. - - * user-prefs.h, user-prefs.cc: Delete all stuff related to - warn_assign_as_truth_value, warn_comma_in_global_decl, - warn_function_name_clash, and warn_missing_semicolon. - * parse.y: Move all of that here. - (symbols_of_parse): New function. - * variables.cc (install_builtin_variables): Call it. - - * user-prefs.h, user-prefs.cc: Delete all stuff related to - output_precision, output_max_field_width, print_empty_dimensions, - and split_long_rows. - * pr-output.cc: Move all of that here. - (symbols_of_pr_output): New function. - * variables.cc (install_builtin_variables): Call it. - - * user-prefs.h, user-prefs.cc: Delete all stuff related to - page_screen_output, page_output_immediately, and pager_binary. - * pager.cc: Move all of that here. - - * user-prefs.h (check_preference): Provide declaration. - * user-prefs.cc (check_preference): Make external. - - * toplev.cc (Foctave_config_info): New function. - - * oct-conf.h.in: New file - * Makefile.in (oct-conf.h): New target. - Add it to the appropriate lists. - - * sighandlers.cc (sigchld_handler): Don't complain about wait - returning a negative value. - - * file-io.cc (Fsscanf, Fsprintf): Pass true for second arg of - octave_stream constructor. - - * oct-stream.h (octave_stream): New field, preserve. - (octave_stream::~octave_stream): If preserve, don't delete rep. - - * pager.cc (symbols_of_pager): Set default for - page_output_immediately to 0. - - * toplev.cc (do_system): Correctly handle return_output. - Append ends to output_buf before calling str(). - - * variables.cc: If M_PI and M_E are available, use them. - - * mk-oct-links.in (links_dir): If old link exists, delete it first. - - Sun May 12 01:46:07 1996 John W. Eaton - - * Makefile.in (DISTFILES): List defaults.h.in and oct-gperf.h here. - (INCLUDES): Not here. - (install-inc): New target. - (uninstall): Also delete libraries and include files. - (install-inc): If linkdir is a directory, leave it alone. - (TERMLIBS, LIBPLPLOT, LIBDLFCN): Don't substitute here (now in - Makeconf). - - * oct-stream.cc (octave_base_stream::do_read): Provide initial - value for tmp var. - - * pt-walk.h, pt-pr-code.h, pt-pr-code.cc: New tree-walking classes. - * Makefile.in: Add them to the appropriate lists. - * pt-fvc-base.h, pt-exp-base.cc, pt-fvc-base.cc, pt-mvr-base.cc, - pt-base.cc, pt-mvr.cc, pt-mat.h, pt-mat.cc, pt-fvc.cc, - pt-const.cc, pt-cmd.cc, pt-const.h, pt-misc.cc, pt-plot.cc, - pt-fcn.cc, pt-plot.h, pt-mvr.h, pt-mvr-base.h, pt-misc.h, - pt-fcn.h, pt-exp.h, pt-exp.cc, pt-exp-base.h, pt-fvc.h, pt-cmd.h, - pt-base.h: - Replace print_code stuff with accept() functions. - Add member access functions where necessary. - * help.cc (Ftype): Update to use new method of walking trees to - print text representation of user-defined functions. - - * file-io.cc (Ffscanf): Update doc string. - (Fsscanf): Likewise. - - * oct-stream.cc (octave_base_stream::do_read): Correctly set max_size. - Pad mval with zeros on final resize. - (octave_base_stream::do_scanf): Likewise. - (do_scanf_conv): Correctly resize mval. - - Sat May 11 05:14:09 1996 John W. Eaton - - * pager.cc (octave_pager_buf::sync): Correctly set bypass_pager. - - * lex.l ({SNLCMT}*\]{S}*): Match SNLCMT, not just SNL. - - Fri May 3 11:05:30 1996 John W. Eaton - - * pt-const.cc (OCT_VAL_REP::set_index): Complain if type can't be - indexed. - - * input.cc (get_user_input): Don't increment input line number if - input is coming from eval string. - - * user-prefs.cc: Allow empty strings for prompts. - - Thu May 2 10:50:29 1996 John W. Eaton - - * pt-mvr.h (class tree_oct_obj): Declare values data member const. - - Sun Apr 28 03:16:52 1996 John W. Eaton - - * user-prefs.h (user_preferences): New field, - `page_output_immediately'. - * user-prefs.cc (init_user_prefs): Initialize it. - (page_output_immediately): New function. - * pager.cc (syms_of_pager): Add DEFVAR. - (really_flush_to_pager): New file-scope variable. - (flush_octave_stdout): Set and restore it. - (octave_pager_buf::sync): Check it, user_pref.page_screen_output, - and user_pref.page_output_immediately to decide when to really - flush output. - (more_than_a_screenful): New function. If paging but not - immediately, then check this too. - - * pager.cc (default_pager): Move here from variables.cc. If pager - is less and LESS is not in the environment, append useful flags. - (symbols_of_pager): New function. - * variables.cc (install_builtin_variables): Call it. - Delete pager-related DEFVARs. - - * syswait.h (WIFSIGNALLED): Define if sys/wait.h doesn't. - - * sighandlers.cc: Handle SIGCHLD. - - * pager.cc, pager.h: Rewrite. - * pt-mvr.cc, pt-misc.cc, pt-fcn.cc, pt-const.cc, oct-hist.cc, - file-io.cc, help.cc, variables.cc, qpsol.cc, dassl.cc, quad.cc, - npsol.cc, lsode.cc, fsolve.cc, load-save.cc, dirfns.cc, octave.cc, - toplev.cc, error.cc, input.cc: - Write to octave_stdout and octave_diary instead of calling - maybe_page_output() or maybe_write_to_diary_file(). - - * oct-procbuf.h, oct-procbuf.cc: New files. - * procstream.h (class procstreambase): Use octave_procbuf instead - of procbuf from libg++, so we can get pids of subprocesses. - - Fri Apr 26 01:21:29 1996 John W. Eaton - - * pt-const.cc (OCT_VAL_REP::do_index): Call maybe_mutate() before - returning. - - * mappers.h (struct Mapper_fcn): Delete. - (struct builtin_mapper_function): New field ch_mapper. - * pt-fvc.h (tree_builtin): Convert type of mapper_fcn from - Mapper_fcn to builtin_mapper_function. - * variables.cc (install_builtin_mapper): Likewise, for arg. - Simplify, since we don't have to do the copying ourselves now. - * pt-fvc.cc (apply_mapper_function): Handle ch_mapper case. - * defun.h (DEFUN_MAPPER): Likewise. - * mappers.cc (install_builtin_mappers): Likewise. - Add ctype is* functions here. - - Thu Apr 25 00:57:06 1996 John W. Eaton - - * arith-ops.h, defun-int.h, defun.h, dynamic-ld.h, gripes.h, - load-save.h, oct-map.h, oct-obj.h, oct-stream.h, pt-cmd.h, - pt-const.h, pt-exp-base.h, pt-exp.h, pt-fcn.h, pt-fvc-base.h, - pt-fvc.h, pt-mat.h, pt-misc.h, pt-mvr-base.h, pt-mvr.h, pt-plot.h, - symtab.h, toplev.h, utils.h, variables.h, xpow.h, Array-tc.cc, - Map-i.cc, Map-tc.cc, SLList-tc.cc, arith-ops.cc, balance.cc, - bogus.cc, chol.cc, colloc.cc, dassl.cc, data.cc, det.cc, - dirfns.cc, eig.cc, error.cc, expm.cc, fft.cc, fft2.cc, file-io.cc, - filter.cc, find.cc, fsolve.cc, fsqp.cc, givens.cc, gripes.cc, - help.cc, hess.cc, ifft.cc, ifft2.cc, input.cc, inv.cc, - load-save.cc, log.cc, lpsolve.cc, lsode.cc, lu.cc, minmax.cc, - npsol.cc, oct-hist.cc, oct-obj.cc, oct-stream.cc, pager.cc, - pinv.cc, pr-output.cc, pt-cmd.cc, pt-const.cc, pt-exp-base.cc, - pt-exp.cc, pt-fcn.cc, pt-fvc-base.cc, pt-fvc.cc, pt-mat.cc, - pt-misc.cc, pt-mvr-base.cc, pt-mvr.cc, pt-plot.cc, qpsol.cc, - qr.cc, quad.cc, qzval.cc, rand.cc, resource.cc, schur.cc, sort.cc, - strfns.cc, svd.cc, syl.cc, symtab.cc, syscalls.cc, sysdep.cc, - timefns.cc, toplev.cc, utils.cc, variables.cc, xpow.cc, parse.y: - Rename tree_constant -> octave_value. - Rename Octave_object -> octave_value_list. - - Wed Apr 24 22:15:34 1996 John W. Eaton - - * toplev.cc (Fsystem): Merge functionality of async_system and - sync_system. - - * oct-fstrm.h, oct-iostrm.h, oct-prcstrm.h, oct-stdstrm.h, - oct-stream.h, oct-strstrm.h, oct-fstrm.cc, oct-iostrm.cc, - oct-prcstrm.cc, oct-stdstrm.cc, oct-stream.cc, oct-strstrm.cc, - Array-os.cc: New files. - * Makefile.in: Add them to the appropriate lists. - * file-io.cc: Rewrite to use new stream classes. - - Tue Apr 23 18:59:25 1996 John W. Eaton - - * gripes.cc (gripe_not_supported): New function. - - * toplev.cc (do_octave_atexit, Fatexit): New functions. - (octave_atexit_functions): New file-scope variable. - * octave.cc (main): Register do_octave_atexit with atexit. - - * variables.cc (install_builtin_variables): Call - symbols_of_syscalls here. - - * syscalls.h, syscalls.cc: New files. - - Mon Apr 22 21:14:01 1996 John W. Eaton - - * syscalls.cc: New file. - (Flstat, Fmkfifo, Fstat, Funlink, Fwait, Fwaitpid): Move here. - * file-io.cc: From here. - * Makefile.in (SOURCES): Add syscalls.cc to the list. - - Wed Apr 17 18:34:10 1996 John W. Eaton - - * file-info.h, file-info.cc: Delete files. - * Makefile.in: Remove from lists. - - * toplev.cc (Fquit): Accept exit status argument. - (Fflops): Delete (now a function file). - - Thu Apr 11 16:20:20 1996 John W. Eaton - - * lex.l: Recognize `.'. - Update current_input_column even for unrecognized characters. - Return LEXICAL_ERROR for unrecognized characters. - - Mon Apr 8 19:59:01 1996 John W. Eaton - - * variables.cc (install_builtin_variables): Split into several - functions to make compiling with g++ go faster and consume less - memory. - - Sun Apr 7 16:25:35 1996 John W. Eaton - - * load-save.cc (Fsave): Print usage if i == argc. - (Fload): Likewise. - - Sat Apr 6 21:26:49 1996 John W. Eaton - - * Makefile.in (clean): Also delete pic/*.o - (maintainer-clean, distclean): Also remove stamp-picdir, - stamp-tinst, stamp-interp, and pic directory. - (stamp-prereq): New target. - - Wed Apr 3 11:19:30 1996 Rick Niles - - * resource.cc: Don't make including sys/resource.h and sys/times.h - mutually exclusive. - - Fri Mar 29 13:43:37 1996 John W. Eaton - - * Makefile.in (distclean): Delete so_locations, which is created - on DEC Alpha systems. - - Thu Mar 28 02:53:48 1996 John W. Eaton - - * utils.h (undo_string_escape): Provide extern declaration here. - - * lex.l (NL): Allow \r\n as new line character. - (.): Complain if invalid character is found on input - - Fri Mar 22 03:47:52 1996 John W. Eaton - - * resource.cc (getrusage): If getrusage is missing, try using - times to at least fill in the cpu time values. If neither one is - available, return 0 for cpu times instead of NaN. - - * sighandlers.cc (octave_signal_mask): New file-scope variable. - (octave_save_signal_mask, octave_restore_signal_mask): New functions. - * toplev.cc (main_loop): Use them. - - Wed Mar 20 01:21:28 1996 John W. Eaton - - * utils.cc (get_fcn_file_names (const string&, int)): Resize - retval to value of k, not i. - (get_fcn_file_names (int)): In loop for copying names to retval, - don't increment j twice. - - Mon Mar 18 22:27:19 1996 John W. Eaton - - * Makefile.in ($(MAKEDEPS)): Depend on oct-gperf.h. - - Fri Mar 1 18:15:52 1996 John W. Eaton - - * fsolve.cc (fsolve_options): Delete unused argument nargout. - - * filter.cc: Use MArray instead of Array so that automatic - conversions will work again. - - Tue Feb 27 04:49:51 1996 John W. Eaton - - * variables.cc (looks_like_octave_copyright): Make the strings - that we are trying to match both have length 29. - - * Makefile.in (install-bin): Use $(INSTALL_PROGRAM), not $(INSTALL). - - * load-save.cc (read_mat_binary_data): Make sure name is - NUL terminated. - - Mon Feb 26 18:18:45 1996 John W. Eaton - - * variables.cc (whos): Make argv from tmp_args, not args. - - * defun.h (DEFCONSTX): Don't stringify name. - - Sat Feb 24 01:12:59 1996 John W. Eaton - - * Makefile.in (install-oct): Make mk-oct-links executable. - * mk-oct-links.in (links_dir): Update to match new format of - DEFUN_DLD_BUILTIN macro. Use LN_S, not just LN. - (links_dir): - - * pr-output.cc (octave_print_internal): New arg, extra_indent, for - versions of this function that take matrices and ranges. - * pt-const.cc (TC_REP::print (ostream&)): Fix printing of structures. - Pass struct_indent to octave_print_internal as appropriate. - (print_with_name (ostream&, const string&, bool)): Handle spacing - around `=' differently for structures. - - Fri Feb 23 04:51:04 1996 John W. Eaton - - * token.cc (token (double, const string&, int, int)): Store orig_text. - - Tue Feb 20 20:36:01 1996 John W. Eaton - - * variables.cc (Fclear): Fix off-by-one error. - - Sat Feb 17 16:54:02 1996 John W. Eaton - - * oct-hist.cc (default_history_file): Append "/.octave_hist" to - return value, not to home_directory. - - Fri Feb 16 18:10:46 1996 John W. Eaton - - * utils.cc: (NINT, D_NINT): Move to liboctave. - - * sysdep.cc (octave_ieee_init): Move to liboctave. - - * procstream.h, procstream.cc: Rewrite. - - * pager.cc (cleanup_oprocstream): New static function. - * toplev.cc (cleanup_iprocstream): Likewise. - * dirfns.cc (cleanup_iprocstream): Likewise. - - * unwind-prot.cc (matrix_cleanup, complex_matrix_cleanup): Delete. - - Thu Feb 15 22:03:28 1996 John W. Eaton - - * oct-obj.cc, oct-obj.h: Move most code to the header. - - * oct-obj.cc (make_argv, all_strings): New member functions. - * utils.cc: Moved from here. - - * load-save.cc: Move byte swapping stuff to liboctave. - Move float format conversion stuff to liboctave. - (all_parts_int, too_large_for_float): Move to liboctave. - - * symtab.cc (valid_identifier): Move here. - * load-save.cc: From here. - - * sysdep.cc: Move floating-point format stuff to liboctave. - * pr-output.cc: Include float-fmt.h here. - - Wed Feb 14 01:49:20 1996 John W. Eaton - - * defun.h, defun-dld.h, defun-int.h: Simplify interface for DEFUN, - DEFUN_DLD, DEFVAR, and DEFCONST macros. Change all uses. - - * qzval.cc: Move guts to liboctave. - - Tue Feb 13 10:28:27 1996 John W. Eaton - - * variables.cc (parse_fcn_file): Also avoid saving history if - input is from a script file. - - * help.cc (Ftype): Call unwind_protect_str for user_pref.ps4. - - * npsol.cc (nonlinear_constraints_ok): Now static. - - * npsol.cc (linear_constraints_ok): Now static. - * qpsol.cc (linear_constraints_ok): Duplicate here. - - * data.cc (Flinspace): Don't print usage message if nargin == 2. - - Sun Feb 11 14:20:32 1996 John W. Eaton - - * mk-oct-links.in: Rename from mk-oct-links. - (LN_S): Use this variable instead of ln. - Set -e option for shell. - Exit with status of last command. - Print message when making link. - * Makefile.in (DISTFILES): Add mk-oct-links.in to the list. - (install-oct): Run ./mk-oct-links, not $(srcdir)/mk-oct-links. - - * variables.cc (install_builtin_variables): Restore accidentally - deleted DEFVAR for save_precision. - - Fri Feb 9 11:24:32 1996 John W. Eaton - - * Makefile.in (INCLUDES): Delete statdefs.h from the list (it's - now in the liboctave directory). - - * toplev.cc (toplevel): Define here. - * octave.cc (toplevel): Not here. - - * toplev.cc (main_loop): New function. - * octave.cc (main): Call it here instead of doing main loop - actions here. - - * user-prefs.cc (do_fortran_indexing): Also set liboctave_dfi_flag. - (prefer_column_vectors): Also set liboctave_pcv_flag. - (prefer_zero_one_indexing): Also set liboctave_pzo_flag. - (resize_on_range_error): Also set liboctave_rre_flag. - - * variables.cc (restore_command_history): New function. - (parse_fcn_file): Use it here in unwind_protect. - - * dynamic-ld.cc (load_octave_oct_file): Reverse sense of test. - (load_octave_builtin): Delete. - (mangle_octave_oct_file_name): Delete. - - * pt-fvc.cc (tree_builtin::eval): Don't try to dynamically load - functions here. - - * pr-output.cc (set_format_style): Decrement argc for first arg too. - - * input.cc (gnu_readline): If readline returns an empty string, - convert it to a string containing a single newline character. - - * octave.cc (octave_argv): Now a static string_vector. - (intern_argv): Use string_vector ops, not charMatrix ops. - * toplev.cc (octave_argv): Delete definition. - * toplev.h (octave_argv): Delete declaration. - - Thu Feb 8 10:58:24 1996 John W. Eaton - - * Makefile.in (conf-dist): New target. - - Tue Feb 6 10:59:45 1996 John W. Eaton - - * help.cc (Ftype): Correctly handle structure names. - - Sun Feb 4 02:02:20 1996 John W. Eaton - - * qpsol.cc (Fqpsol): Call set_options(), not copy() to set - options for QPSOL objects. - - * npsol.cc (Fnpsol): Call set_options(), not copy() to set - options for NPSOL objects. - - * quad.cc (Fquad): Call set_options(), not copy() to set - options for Quad objects. - - * dynamic-ld.cc (load_octave_builtin): Don't call destructor on string. - (load_octave_oct_file): Likewise. - Check oct_file.empty(), not just oct_file. - - * fsolve.cc (Ffsolve): Call set_options(), not copy() to set - options for NLEqn object. - - * variables.cc (do_who): Properly set match patterns from argument - vector for call to maybe_list. - - Sat Feb 3 03:29:33 1996 John W. Eaton - - * octave.cc (long_opts): Properly set second field using new enum. - - * lsode.cc: Change ODE to LSODE where appropriate. - Use LSODE_options, not ODE_options. - - * dassl.cc: Change DAE to DASSL where appropriate. - Use DASSL_options, not ODE_options. - - Fri Feb 2 01:41:37 1996 John W. Eaton - - * dirfns.cc: Include unistd.h. - - * parse.y, lex.l: Handle matrix lists without ml or mlnm stacks. - * pt-mat.h, pt-mat.cc (tree_matrix): - Rewrite to use SLList instead of home brew list. - * SLList-tm.cc: New file - * Makefile.in: Add it to the lists. - * SLStack-tm.cc: Delete. - * Makefile.in: Delete it from the lists. - - * All pt-* files: Use bool instead of int where appropriate. - - * Makefile.in (DEP_SOURCES_3): Add octave.cc. - - * pt-const.h (class tree_constant::tree_constant_rep): Make - everything in this class public, then it doesn't need to declare - the tree_constant class as a friend. - - Thu Feb 1 01:42:45 1996 John W. Eaton - - * lex.h, lex.l, parse.h, parse.y (class lexical_feedback): New - class for lexer flags. Replace lots of global vars with members - of this class. - - * lex.l (class brace_paren_nesting_level): New class to replace - nesting_level stack. nesting_level is now an instance of this - class. - - * lex.l (yum_yum): New typedef. - (ATE_NOTHING): New global var. - (ATE_SPACE_OR_TAB, ATE_NEWLINE): Don't #define these, declare them - as const yum_yum. - (eat_whitespace, eat_continuation): Return yum_yum, not int. - - * lex.l (SHORT_CIRCUIT_LOGICALS): Delete. Always do this for || - and && tokens. - (yy_flex_alloc, yy_flex_realloc, yy_flex_free, next_char_is_space): - Delete. - - * toplev.cc (verbose_flag): Delete definition. - * toplev.h (verbose_flag): And declaration. - * octave.cc (verbose_flag): Now static. - - * lex.l (lookup_identifier): Arg is now string, not char*. - (handle_identifier, is_plot_keyword, is_keyword): Likewise. - (strip_trailing_whitespace): Return value is now string, not char*. - (plot_style_token): Likewise, for both arg and return value. - - * input.cc (octave_gets_line): Delete. - (gnu_readline, octave_gets, octave_read): - Properly handle input when using_readline is either true or false. - Don't limit length of input lines to flex buffer size. - (get_user_input): New function. - - * octave.cc (main): Handle --no-line-editing. - * toplev.h (using_readline): Provide external declaration here. - * input.h: Not here. - * toplev.cc (using_readline): Define here. - * input.cc: Not here. - - * toplev.h (no_line_editing): Delete declaration. - * input.cc (no_line_editing): Delete definition. - - Wed Jan 31 05:28:45 1996 John W. Eaton - - * input.cc (DEFAULT_ARRAY_SIZE, PROMPT_GROWTH): Delete definitions - of unused macros. - (read_octal): Now static. - - * givens.cc (Fgivens): Use new functions from matrix classes - instead of calling Fortran functions directly. - * syl.cc (Fsyl): Likewise. - * expm.cc (Fexpm): Likewise. - - Mon Jan 29 00:00:48 1996 John W. Eaton - - * octave.cc: Use new prog_args class instead of calling getopt - directly. - - * getopt.h, getopt.c, getopt1.c: Move to liboctave directory. - * Makefile: Remove from lists. - - * utils.cc (strconcat, read_until, discard_until): Delete. - - * pager.cc (terminal_columns, terminal_rows): Move to - liboctave/oct-term.cc. - * pager.cc, pr-output.cc: Include oct-term.h. - - * utils.cc (list_in_columns): Moved to liboctave/str-vec.cc. - Change all callers to use new member function syntax. - - * dirfns.cc (absolute_program): Now static. - (absolute_pathname): Delete. - - * pt-plot.cc (save_in_tmp_file): Call oct_tempnam, not - octave_tmp_file_name. Include file-ops.h. - * file-io.cc (do_scanf, Foctave_tmp_file_name): Likewise. - * oct-hist.cc (mk_tmp_hist_file): Likewise. - - * file-io.cc (Foctave_tmp_file_name): Move here. - * utils.cc: From here. - - * utils.cc (octave_tmp_file_name): Move to liboctave/file-ops.cc. - - * tempname.c, tempnam.c: Move to liboctave directory. - * Makefile.in: Remove from lists. - - Sun Jan 28 19:00:52 1996 John W. Eaton - - * xdiv.cc (all xdiv functions): Return Matrix or ComplexMatrix, - not tree_constant. - - * oct-hist.h, oct-hist.cc, toplev.cc, octave.cc, input.cc, - file-io.cc, user-prefs.cc: Rewrite to use new command_history - class instead of calling readline history functions directly. - - * utils.cc (get_fcn_file_names): Delete num arg. - - Thu Jan 25 20:33:54 1996 John W. Eaton - - * load-save.cc (matches_patterns): Use new glob_match class - instead of calling fnmatch directly. - * symtab.cc (matches_patterns, symbol_table::glob): Likewise. - * variables.cc (Fclear): Likewise. - - Wed Jan 24 02:05:22 1996 John W. Eaton - - * fnmatch.h fnmatch.c: Delete. - * Makefile.in: Add glob stuff in the appropriate places, remove - fnmatch.h and fnmatch.c from lists. - - * octave.cc (program_invocation_name, program_invocation_short_name): - Maybe declare. - (initialize_globals): Maybe initialize them. - - * octave.cc (initialize_pathsearch): Define here, not in pathsearch.cc. - * pathsearch.h, pathsearch.cc: Remove files. - * Makefile.in: Remove them from the lists. - - * help.cc (simple_help): Ignore directories that don't have any .m - or .oct files. - - * utils.cc (search_path_for_file): Use new dir_path class instead - of calling kpathsea routines directly. - (get_fcn_file_names): Likewise. - * help.cc (simple_help): Likewise. - - * dirfns.cc (make_absolute): Don't convert empty arg to "./". - - * sysdir.h: Move to liboctave directory. - * Makefile.in: Remove from lists. - - * dirfns.cc (Freaddir): Use new dir_entry class instead of calling - readdir directly. Include dir-ops.h, not sysdir.h. - * utils.cc (get_fcn_file_names): Likewise. Delete unnecessary - first arg, change all callers. - - Tue Jan 23 00:43:12 1996 John W. Eaton - - * safe-xstat.hin, safe-xstat.cin, statdefs.h, file-ops.h, - file-ops.cc, filemode.c, mkdir.c, rmdir.c, rename.c: - Files moved to liboctave directory. - * Makefile.in: Remove them from lists. Move appropriate rules. - - * acosh.c, asinh.c, atanh.c, erf.c, erfc.c, gamma.c, lgamma.c: - Files moved to liboctave directory. - * Makefile.in: Remove them from lists. - * missing-math.h: Deleted. - * pr-output.cc, sysdep.cc, minmax.cc, mappers.cc, expm.cc, - arith-ops.cc: Include oct-math.h, not cmath or missing-math.h. - - Mon Jan 22 19:33:05 1996 John W. Eaton - - * variables.cc (Fexist): Use file_stat instead of calling stat - directly. Include file-ops.h, not statdefs.h. - * octave.cc (execute_startup_files): Likewise. - * file-io.cc (file_io_get_file, fopen_internal, popen_internal, Fstat): - Likewise. - (mk_stat_map): Likewise, use file_stat object, not struct stat. - * oct-hist.cc (do_history): Likewise. - - * file-ops.h, file-stat.cc: New files. - * Makefile.in: Include them. - * dirfns.cc: Delete is_newer. Don't include statdefs.h. - * toplev.cc: Don't include statdefs.h. - - Sun Jan 21 22:48:03 1996 John W. Eaton - - * pt-mvr.h, pt-fvc.h, Map.cc, Map.h, dynamic-ld.h, - pt-fvc-base.cc, SLList-str.cc, pt-fcn.h, pt-fvc-base.h, - SLStack-str.cc, pt-mvr.cc, pt-exp.cc, token.h, token.cc, - user-prefs.h, pt-base.cc, user-prefs.cc, dirfns.h, sysdep.h, - sysdep.cc, input.h, parse.h, lex.l, parse.y, defun.h, mappers.h, - pt-fvc.cc, pt-plot.h, load-save.h, octave.cc, defun-int.h, help.h, - variables.h, oct-map.h, oct-obj.h, oct-obj.cc, pt-const.cc, - oct-map.cc, input.cc, symtab.h, pt-const.h, pathsearch.cc, - pr-output.h, pr-output.cc, toplev.h, timefns.cc, schur.cc, - pt-plot.cc, pager.cc, load-save.cc, dynamic-ld.cc, dirfns.cc, - data.cc, file-info.h, file-info.cc, colloc.cc, utils.h, qpsol.cc, - quad.cc, npsol.cc, lsode.cc, fsolve.cc, dassl.cc, file-io.cc, - help.cc, utils.cc, oct-hist.h, oct-hist.cc, symtab.cc, toplev.cc, - pt-fcn.cc, unwind-prot.h, unwind-prot.cc, variables.cc: - Most functions in these files that deal with character strings - have been converted to use the string class insatead of char*. If - you want more detailed information, you'll have to figure it out - for yourself. - - Sat Jan 20 18:19:12 1996 John W. Eaton - - * dynamic-ld.cc [WITH_DL]: Define RTLD_LAZY to be 1 if it is not - already defined. - - Sun Jan 14 07:48:05 1996 John W. Eaton - - * pt-const.cc (print_as_scalar, print_as_structure): - Make these member functions. - (tree_constant::print_with_name): New function, moved here from - old tree-expr.cc file (where it was called print_constant) and - converted to member function. Change all callers. - - Fri Jan 12 01:54:49 1996 John W. Eaton - - * octave.cc (initialize_globals): Don't do kpathsearch stuff here. - (main): Call initialize_pathsearch() here. - - * pathsearch.cc: New file. - * Makefile.in (SOURCES): Add it to the list - - * oct-hist.h: Rename from octave-hist.h. - * oct-hist.cc: Rename from octave-hist.cc. - * Makefile.in, parse.y, other .cc files: Cope with it. - - * dynamic-ld.cc: Avoid warnings if !WITH_DYNAMIC_LINKING. - - * load-save.cc (save_ascii_data): string::data() returns const char*. - - * utils.h: Don't provide forward declaration for tree_constant. - - * oct-obj.h: Don't include mx-base.h or provide forward - declarations for Matrix and Range types. - - * file-info.h: Don't include oct-obj.h. Do include cstdio. - - * symtab.h: Don't provide forward declaration for ostream. - - * variables.h: Don't provide forward declarations for istream, - ostrstream, tree, builtin_function, or builtin_variable objects. - - * balance.cc, chol.cc, colloc.cc, dassl.cc, det.cc, eig.cc, - expm.cc, fft.cc, fft2.cc, filter.cc, find.cc, fsolve.cc, fsqp.cc, - givens.cc, hess.cc, ifft.cc, ifft2.cc, inv.cc, log.cc, lpsolve.cc, - lsode.cc, lu.cc, minmax.cc, npsol.cc, pinv.cc, qpsol.cc, qr.cc, - quad.cc, qzval.cc, rand.cc, schur.cc, sort.cc, svd.cc, syl.cc: - Clean up #include statements. - - * pt-const.h: Don't include oct-obj.h or tree-base.h. - Provide forward declaration of Octave_object here. - * pt-const.cc: Include oct-obj.h here. - - * pt-mat.h, pt-fcn.h, pt-const.h, pt-misc.h, pt-plot.h, - pt-exp-base.h, pt-cmd.h, pt-fvc-base.h, pt-mvr-base.h, pt-exp.h, - pt-mvr.h, pt-fvc.h: New files, split from tree-expr.h and/or - renamed from other tree-*.h files (pt == parse tree). - * pt-base.cc, pt-const.cc, pt-exp.cc, pt-fvc-base.cc, pt-mat.cc, - pt-mvr-base.cc, pt-plot.cc, pt-cmd.cc, pt-exp-base.cc, pt-fcn.cc, - pt-fvc.cc, pt-misc.cc, pt-mvr.cc: Likewse, split from tree-expr.cc - and/or other tree-*.cc files. - * Makefile.in: Include them in the appropriate lists. - * All: Fix #include statements to match. - - * Array-tc.cc: Don't instantiate ArrayRep objects. - - Thu Jan 11 02:35:19 1996 John W. Eaton - - * tree-const.cc (tree_constant::eval (int, int, const Octave_object&)): - Define here instead of in tree-const.h. - - Wed Jan 10 04:34:20 1996 John W. Eaton - - * tree-const.h (tree_constant::tree_constant (const string&): - * tree-const.cc (TC_REP::tree_constant_rep (const string&)): - New constructor. - - Tue Jan 9 04:10:29 1996 John W. Eaton - - * rand.cc (do_rand): Use string_value() result directly instead of - c_str() conversion. - * balance.cc (Fbalance): Likewise. - - * tree-const.cc (TC_REP::string_value()): - Handle new definition of charMatrix::row_as_string() - * load-save.cc (save_ascii_data): Ditto. - (save_binary_data): Ditto. - * pr-output.cc (octave_print_internal): Ditto. - - * balance.cc (Fbalance): - Handle new definition of TC_REP::string_value() - * colloc.cc (Fcolloc): Ditto. - * dassl.cc (Fdassl_options): Ditto. - * data.cc (Fstruct_contains): Ditto. - * dirfns.cc (Fmkdir): Ditto. - (Freaddir): Ditto. - (Frmdir): Ditto. - (Frename): Ditto. - * error.cc (handle_message): Ditto. - * file-io.cc (process_printf_format): Ditto. - (fopen_internal): Ditto. - (file_io_get_file): Ditto. - (return_valid_file): Ditto. - (Flstat): Ditto. - (Fstat): Ditto. - (unlink_internal): Ditto. - (mkfifo_internal): Ditto. - (async_system_internal): Ditto. - (sync_system_internal): Ditto. - (execute_internal): Ditto. - (popen_internal): Ditto. - (fwrite_internal): Ditto. - (fread_internal): Ditto. - (do_printf): Ditto. - (do_scanf): Ditto. - * input.cc (get_user_input): Ditto. - * lsode.cc (Flsode_options): Ditto. - * npsol.cc (Fnpsol_options):Ditto. - * qpsol.cc (Fqpsol_options):Ditto. - * quad.cc (Fquad_options): Ditto. - * rand.cc (do_rand): Ditto. - * schur.cc (Fschur): Ditto. - * sysdep.cc (Fputenv): Ditto. - (Fgetenv): Ditto. - * timefns.cc (extract_tm): Ditto. - (Fstrftime): Ditto. - * toplev.cc (Fsource): Ditto. - (eval_string): Ditto. - (Fsystem): Ditto. - * tree-plot.cc (subplot::handle_plot_data): Ditto. - * variables.cc (is_valid_function): Ditto. - (Fis_global): Ditto. - (Fexist): Ditto. - (builtin_string_variable): Ditto. - * utils.cc (make_argv): Ditto. - (Fundo_string_escapes): Ditto. - - Mon Jan 8 01:54:50 1996 John W. Eaton - - * Makefile.in (install-bin): Use $(LN_S), not just ln. - - * variables.cc (octave_fcn_file_dir): New function. - * tree-expr.cc (mark_as_system_fcn_file): Use it instead of - octave_lib_dir. - - * Makefile.in (clean): If $(SHARED_LIBS), also remove shared libs. - - * pr-output.cc (set_format (const ComplexMatrix&, int&, int&)): - Unconditionally call all_elements_are_int_or_inf_or_nan(). - (set_format (const Matrix&, int&, int&)): Likewise. - - Sun Jan 7 19:12:39 1996 John W. Eaton - - * utils.cc (oct_putenv): New function. - * sysdep.cc (Fputenv): Use oct_putenv. - * octave.cc (initialize_globals): Likewise. - - Sat Jan 6 23:22:37 1996 John W. Eaton - - * sysdep.cc (Fputenv): New function. - - * input.cc (initialize_readline): Call rl_initialize() here. - - * octave.cc: Conditionally define atexit to be on_exit here. - * toplev.cc: Not here. - - Fri Jan 5 14:01:02 1996 John W. Eaton - - * toplev.cc: Don't include here. - - * octave-hist.cc, tree-plot.cc, utils.cc: Do include "sysdep.h". - - * dirfns.cc, file-io.cc, help.cc, load-save.cc, octave.cc, - octave-hist.cc, tree-plot.cc, utils.cc: - Don't include . - * sysdep.h: Do include it here. - - * tree-const.cc (TC_REP::assign (tree_constant&, Octave_object&)): - If we have a matrix or range, call maybe_mutate before returning. - - Sun Dec 31 15:56:18 1995 John W. Eaton - - * npsol.cc (Fnpsol): Improve doc string. - * qpsol.cc (Fqpsol): Likewise. - - Fri Dec 29 21:46:58 1995 John W. Eaton - - * defun-dld.h: Make work again for OCTAVE_LITE and - WITH_DYNAMIC_LINKING. - - * Makefile.in: Handle shared libraries. - - Wed Dec 27 17:47:51 1995 John W. Eaton - - * mk-oct-links: New file. - * Makefile.in (install-oct): Use it. - * f-*.cc: Rename to *.cc. - - * Makefile.in (install-bin, install-lib, install-oct): New targets. - (install): Use them. - - Tue Dec 26 21:38:22 1995 John W. Eaton - - * toplev.cc (reading_startup_message_printed): Move initialization - here and make extern. - - * dirfns.cc, dynamic-ld.cc, help.cc, input.cc, octave-hist.cc, - octave.cc, sighandlers.cc, sysdep.cc, tree-expr.cc, tree-misc.cc, - utils.cc, variables.cc, parse.y, lex.l: Include toplev.h instead - of octave.h. - * toplev.h: rename from octave.h. - - * octave.cc (main): Delete unused variable saved_sigint_handler. - - Sun Dec 24 00:26:54 1995 John W. Eaton - - * dynamic-ld.cc: Massive re-write to handle dlopen/dlsym and - shl_load/shl_findsym methods of dynamic linking. - - * utils.cc (get_fcn_file_names): Check for .oct files if - WITH_DYNAMIC_LINKING, not WITH_DLD. - - * Makefile.in (LIB, TERMLIBS): Substitute values. - (octave): Add $(LIBS) to link command and use $(TERMLIBS) instead - of -ltermcap. - - Sat Dec 23 21:56:12 1995 John W. Eaton - - * dynamic-ld.h, dynamic-ld.cc: Remove old unused code. - - * variables.cc (load_fcn_from_file): - Always call load_octave_oct_file. - - Wed Dec 20 00:56:57 1995 John W. Eaton - - * pr-output.cc (set_real_format, set_real_matrix_format, - set_complex_format, set_complex_matrix_format, set_range_format): - New functions. Ensure the count of the digits to the right of the - decimal point is positive. - - * xpow.cc (xpow (const Matrix&, double)): Print warning if - inverting singular matrix (but return value anyway, in the name of - compatibility). - xpow (const ComplexMatrix&, double)): Likewise. - - * f-inv.cc (Finv): If matrix is singular, return result anyway, in - the name of compatibility. - - * symtab.cc (symbol_record::pop_context): - Don't assert (! context.empty ()). - - * tree-const.cc (TC_REP::char_matrix_value): Don't complain about - type conversion if object is an empty matrix.f - (TC_REP::assign): If rhs is a string, don't convert to numeric - type if rhs is empty or "". - Only widen if rhs is not empty. - Don't return 0x0 char_matrix if it is supposed to be a string. - - * arith-ops.h, mappers.h, pr-output.h, xdiv.h, xpow.h: Include - oct-cmplx.h in place of forward declaration for class Complex. - - * pr-output.cc, mappers.cc, arith-ops.cc, xdiv.cc, xpow.cc, - utils.cc: Include "oct-cmplx.h" instead of . - - * octave.cc (initialize_error_handlers): Don't call - set_Complex_error_handler(). - (octave_Complex_error_handler): Delete unused function. - Delete declaration for set_Complex_error_handler(). - - * sighandlers.cc (catch_interrupts): New function. - * octave.cc (main): Call catch_interrupts() instead of calling - octave_set_signal_handler() directly. - - Tue Dec 19 03:22:37 1995 John W. Eaton - - * variables.cc (looks_like_octave_copyright): Also recognize the - string " This program is free software". - - Thu Dec 14 01:54:06 1995 John W. Eaton - - * octave-hist.cc (clean_up_history): Only write history file if - user_pref.saving_history. - - * octave-hist.cc (initialize_history, clean_up_history, - do_history): Perform tilde expansion on history file name. - - * octave.cc (main): Check `defined (HAVE_ON_EXIT)' not just - `(HAVE_ON_EXIT)'. - - * user-prefs.h (user_preferences): New fields, `history_file' and - `history_size'. - * user-prefs.cc (init_user_prefs): Initialize them. - (sv_history_file, history_size): New functions. - * variables.cc (install_builtin_variables): Initialize user-level - variables history_file and history_size. - * octave-hist.cc (default_history_size): Now extern. - (default_history_file): Likewise. - (octave_hist_size, octave_hist_file): Use user preference - variables instead. - * octave.cc (main): Call initialize_history after - execute_startup_files. - - Fri Dec 8 15:53:59 1995 John W. Eaton - - * user-prefs.h (user_preferences): New field, `saving_history'. - * user-prefs.cc (init_user_prefs): Initialize it. - (saving_history): New function. - * variables.cc (install_builtin_variables): Initialize user-level - variable saving_history. - * octave.cc (parse_and_execute): Don't reset value of - saving_history here. - (main) Use user_pref.saving_history instead of saving_history. - * variables.cc (parse_fcn_file): Likewise. - * octave-hist.cc (maybe_save_history): Likewise. - Don't save history if input_from_startup_file. - - Mon Nov 27 23:05:52 1995 John W. Eaton - - * resource.cc: Include systime.h before . - - Tue Nov 14 14:09:40 1995 John Eaton - - * error.cc: Include cstring. - - * tree-expr.cc (print_code): Decrement indent level after printing - function body. - - * Makefile.in: Remove references to oct-str.cc, oct-str.h, and - Array-string.cc. - - * tree-const.h: Don't include oct-str.h. - - Mon Nov 6 11:16:49 1995 John Eaton - - * parse.y (make_plot_command, finish_colon_expression, - make_unwind_protect, make_try_command, make_for_command, - make_break_command, make_continue_command, make_return_command, - start_if_command, finish_if_command, make_elseif_clause, - make_simple_assignment, make_multi_val_ret, start_function_def, - frob_function_def, finish_function_def, start_matrix, - finish_matrix): New functions. Use them in the grammar to clean - things up a bit. Possibly convert matrix lists, colon - expressions, binary expressions, and unary expressions to constant - values. - (tree_matrix_type): Delete. - (simple_expr1): Handle all expression stuff here, including - assignments. - (simple_expr): Just check to see that simple_expr1 produced - something useful. - - * tree-plot.cc, tree-plot.h: Move most simple constructors to the - header file. - - * tree-expr.h (tree_expression::is_constant): Move virtual - function definition here. - (tree_fvc::is_constant): From here. - (tree_expression::is_matrix_constant): New virtual function. - (tree_expression::is_range_constant): New virtual function. - * tree-expr.cc (tree_matrix::is_matrix_constant): New function. - * tree-expr.cc (tree_colon_expression::is_range_constant): New - function. - - Fri Nov 3 03:42:04 1995 John Eaton - - * utils.cc, utils.h (jump_to_top_level): Declare as extern "C". - - * tree-const.h (tree_constant::eval ()): Only mutate if printing. - - * tree-const.cc (TC_REP::tree_constant_rep (const Complex&), - TC_REP::tree_constant_rep (const ComplexMatrix&), - TC_REP::tree_constant_rep (const ComplexDiagMatrix&), - TC_REP::tree_constant_rep (const ComplexRowVector&), - TC_REP::tree_constant_rep (const ComplexColumnVector&)): - Also check to see if we can convert to scalar_constant, not just - complex_scalar_constant. - - * user-prefs.h (user_preferences): New field, `exec_path'. - * user-prefs.cc (init_user_prefs): Initialize it. - (sv_exec_path): New function. - * variables.cc (install_builtin_variables): Add DEFUN for EXEC_PATH. - (default_exec_path): New function. - * octave.cc (exec_path): New global variable. - Don't set and putenv() exec path here. - (long_opts): Add --exec-path option. - (main): Handle it. - (initialize_globals): Set default value here. - - * user-prefs.h (user_preferences): New field, `info_prog'. - * user-prefs.cc (init_user_prefs): Initialize it. - (sv_info_prog): New function. - * variables.cc (install_builtin_variables): Add DEFUN for INFO_PROGRAM. - (default_info_prog): New function. - * octave.cc (info_prog): New global variable. - (initialize_globals): Set default value here. - (long_opts): Add --info-prog option. - (main): Handle it. - * help.cc (try_info): Use user_pref.info_prog here. - - * octave.cc (initialize_globals): Put arch_dir and bin_dir ahead - of shell_path when resetting PATH. - - Thu Nov 2 04:30:13 1995 John Eaton - - * f-rand.cc (Frandn): New function. - (do_initialization): New function. - (do_rand): New function for doing the real work. - (Frand): Use it. - - * octave.cc (parse_and_execute): New arg, warn_for. If given, - print message if file cannot be opened. - Set curr_fcn_file_full_name here. - (Fsource): Pass extra arg to parse_and_execute to get warning message. - - * tree-const.h: Handle line and column info for double, Complex, - and char* constants. - - * parse.y (maybe_convert_to_ans_assign): Pass along line and - column info from expression. - - * parse.y (make_constant): New function. - (simple_expr1, word_list): Use it. - - * input.cc, input.h (curr_fcn_file_full_name): New global. - * variables.cc (load_fcn_from_file): Set it here. - * parse.y (func_def2, yyerror, maybe_warn_missing_semi): Use it. - (func_def2): If !reading_fcn_file, don't call strcmp if - curr_fcn_file_name is 0. - - * octave.cc (Fsource): New function. - (parse_and_execute): Declare file name const char *. - * input.cc (get_input_from_file): Likewise. - - Wed Nov 1 13:54:34 1995 John Eaton - - * f-filter.cc: New file. - * Makefile.in (DLD_SRC): Add it to the list. - - * sysdep.h (gethostname): Change declaration to match definition - in sysdep.cc. - - * resource.cc: Include sysdep.h here, for octave_NaN. - - Tue Oct 31 02:12:18 1995 John Eaton - - * tree-const.cc (TC_REP::assign): After converting rhs to a - numeric type, use the converted value, not the original. - - * dirfns.cc (Fpwd): If nargout == 0, print the directory name - instead of returning it. - - * pager.cc (maybe_page_output): Call maybe_write_to_diary_file here. - (flush_output_to_pager): Not here. - - Mon Oct 30 23:39:43 1995 John Eaton - - * variables.cc (install_builtin_commands): Add DEFVAR for - echo_executing_commands. - - * octave-hist.cc (do_edit_history): Handle new echo stuff. - * variables.cc (parse_fcn_file): Likewise. - * octave.cc (parse_and_execute): Likewise. - (main): Likewise. - * input.cc (do_input_echo): - (Fecho): New function. - - * tree-expr.cc (tree_function::print_code_function_header, - tree_function::print_code_function_trailer): New functions. - (tree_function::print_code): Use them. - (tree_function::eval): Likewise, if echoing commands. - * tree-misc.cc (tree_statement::maybe_echo_code): New function. - - * user-prefs.h (user_preferences): New field, echo_executing_commands. - (echo_state): New enum, for various types of echoing we do. - * user-prefs.cc (echo_executing_commands): New function. - - * tree-base.cc (print_code_indent): Print PS4 as line prefix. - * help.cc (Ftype): Add unwind_protect for ps4 and set it to "" - before printing code. - - * tree-misc.h (tree_statement_list): New field, function_body. - (tree_statement_list::mark_as_function_body): New function. - * parse.y (func_def3): Mark function bodies. - - * pr-output.cc (octave_print_internal): Undo string escapes when - printing charMatrix as strings. - - Sat Oct 28 17:38:29 1995 John Eaton - - * utils.h (undo_string_escapes): Add missing const in declaration. - - Fri Oct 27 03:49:44 1995 John Eaton - - * file-io.cc (next_available_file_number): New stack for keeping - track of next available file number. - (get_next_avail_file_num): New function. - (fopen_file_for_user, fopen_internal, popen_internal, - execute_internal): Use it. - - Mon Oct 23 07:00:09 1995 John Eaton - - * tree-const.cc (TC_REP::convert_to_matrix_type, - tree_constant::convert_to_matrix_type): New arg, make_complex. - (TC_REP::set_index): New arg, rhs_is_complex. Pass it to - convert_to_matrix_type. - (TC_REP::assign): Pass rhs.is_complex_type() to set_index. - - Thu Oct 19 00:38:38 1995 John Eaton - - * xpow.cc: Include . - - * sysdep.cc (Fpause): Do pause even if not interactive. - - * tree-const.cc (TC_REP::assign): Don't make RHS numeric if both - RHS and LHS are strings. - - Wed Oct 18 22:19:16 1995 John Eaton - - * f-expm.cc (Fexpm): Avoid taking log of negative number. Also, - don't unnecessarily divide the input matrix by 1.0. - - * input.cc (decode_prompt_string): Recognize \[ and \] too. - (initialize_readline): Bind M-p to history-search-backward and M-n - to history-search-forward. - - Tue Oct 17 04:31:06 1995 John Eaton - - * xpow.cc (xpow): Handle integer powers better for complex^double. - (elem_xpow): Likewise. - - * lex.l ({CCHAR}): If nesting_level.top() is BRACE, return ';', - not '\n'. - - Mon Oct 16 19:03:45 1995 John Eaton - - * help.cc (Fwhich): Fix doc string. - - * variables.cc (Fexist): Update doc string. - - Sun Oct 15 22:19:16 1995 John Eaton - - * Another massive set of changes to support character matrices - with indexing. The Octave_str_object class is no longer used. - Anything having to do with Octave_str_object in the following - files has been changed to use charMatrix instead: octave.h, - load-save.cc, octave.cc, strfns.cc, data.cc, pr-output.h, - pr-output.cc, tree-const.h, dirfns.cc, tree-const.cc, - tree-expr.cc. - - Sat Oct 14 22:28:18 1995 John Eaton - - * f-sort.cc (mx_sort): Don't attempt to sort vectors that have - only one element, or matrices that have only one row. - - Thu Oct 12 02:16:58 1995 John Eaton - - * mappers.cc (install_mapper_functions): Add gammaln as an alias - for lgamma. - - * tree-const.h, tree-const.cc: Massive overhaul of indexing and - indexed assignment functions. - * tc-inlines.h, tc-rep.h: Remove files. - * Makefile.in: Remove mention of them here too. - - * Makefile.in: Include $(TI_SRC) in DEP_SOURCES_3, not - $(TI_SOURCES). - Include $(DLD_SRC) in DEP_SOURCES_3. - Include $(TI_SRC) in DEF_FILES_5. - - Wed Oct 11 01:26:18 1995 John Eaton - - * Makefile.in (INCLUDES): Remove tc-inlines.h and tc-rep.h from - the list. - - Mon Oct 9 08:31:04 1995 John Eaton - - * lex.l (next_token_is_bin_op): Do match `.+', `.*', etc. - - Sun Oct 8 18:19:56 1995 John Eaton - - * idx-vector.h, idx-vector.cc: Delete files. - * Makefile.in (SOURCES, INCLUDES): Remove them from lists. - - Fri Oct 6 00:52:06 1995 John Eaton - - * f-svd.cc (Fsvd): If nargout == 0 or nargout == 1, don't ask for - U and V. - - Wed Oct 4 00:04:57 1995 John Eaton - - * f-npsol.cc (Fnpsol, Fnpsol_options): Avoid unused variable - warnings if NPSOL_MISSING. - * f-qpsol.cc (Fqpsol, Fqpsol_options): Likewise for QPSOL_MISSING. - - * Makefile.in (DISTFILES): Add octave.gperf. - - * lex.l (next_token_is_bin_op): Don't ever return true for `.' - since that causes problems with things like [ .1 .1 ]. - - Tue Oct 3 05:30:24 1995 John Eaton - - * variables.cc (is_valid_function): Avoid setting error_state if - argument is not a string. - - * parse.y (maybe_warn_missing_semi): New function. - (list1, list): Call it if statement not terminated by semicolon. - * tree-misc.h (tree_statement::line, tree_statement::column): - New functions. - * octave.cc (input_from_command_line_file): New global variable. - (main): Set it. - (parse_and_execute): Unwind-protect it and set it to zero. - (eval_string): Likewise. - * variables.cc (parse_fcn_file): Likewise. - - * user-prefs.cc (warn_missing_semicolon): New function. - * user-prefs.h (user_preferences): New field, warn_missing_semicolon. - * variables.cc (install_builtin_variables): DEFVAR it. - - * tree-expr.cc (tree_expression::is_logically_true): Actually use - argument. - - Mon Oct 2 19:55:48 1995 John Eaton - - * variables.cc (install_builtin_variables): Reduce the default - value of save_precision to 15. - - * variables.cc (builtin_real_scalar_variable): Return 1 for - success, 0 for failure. - - * user-prefs.cc (struct_levels_to_print, set_save_precision, - set_output_max_field_width, set_output_precision): - Change sense of test for builtin_real_scalar_variable return value. - (check_preference): Rename from check_str_pref. Change all callers. - Accept value of 0 to be the same as "false" and nonzero to be the - same as "true". - Delete val to avoid memory leak. - * variables.cc (install_builtin_variables): Change initial values - from "true" to 1, "false" to 0. - - * variables.cc (install_builtin_variables): Add DEFVAR for - gnuplot_has_multiplot. - - * user-prefs.h (user_preferences): New field, - `gnuplot_has_multiplot'. - * user-prefs.cc (init_user_prefs): Initialize it. - (gnuplot_has_multiplot): New function. - - Sat Sep 30 16:52:57 1995 John Eaton - - * oct-gperf.h, octave.gperf: Newfiles. - * Makefile.in (DISTFILES): Add octave.gperf. - (INCLUDES): Add oct-gperf.h. - (oct-gperf.h): New rule. - (local-dist, dist): Depend on oct-gperf.h. - * lex.l (is_keyword): Use perfect hash function to lookup - keywords. - - Fri Sep 29 04:36:04 1995 John Eaton - - * version.h (OCTAVE_NAME_AND_VERSION): Add TARGET_HOST_TYPE to this. - - Thu Sep 28 00:03:51 1995 John Eaton - - * tree-expr.cc (tree_expression::is_logically_true): New function. - * tree-cmd.cc (tree_while_command::eval): Use it instead of - handling the test directly here. - * tree-misc.cc (tree_if_clause::eval): Likewise - - * tree-const.cc (TC_REP::force_numeric): Don't try to print value - of str_obj with %s. - - * error.cc (buffer_error_messages): Rename from - suppress_octave_error_messages. - (error_message_buffer): New global variable. - (verror): Handle buffering of messages. - (handle_message): New function. - (Ferror, Fwarning, Fusage): Use it instead of duplicating code. - - * octave.cc (Feval): Buffer error messages instead of supressing them. - - * lex.l (is_keyword): Recognize `try', `catch', and `end_try_catch'. - * parse.y (TRY, CATCH): New tokens. - (command): Recognize try-catch block. - (end_error): Add cases for unwind_protect_end and try_catch_end. - * token.h (end_tok_type): New field, try_catch_end. - * tree-cmd.h, tree-cmd.cc (tree_try_catch): New class. - * variables.cc (bind_global_error_variable): New Function. - (clear_global_error_variable): Likewise. - (install_builtin_variables): Add DEFCONST for __error_text__. - * help.cc (keywords): Add `try', `catch', and `end_try_catch'. - - * tree-cmd.cc (tree_unwind_protect::eval): Undo previous change. - - * dirfns.cc (Freaddir, Fmkdir, Frmdir): - Do tilde expansion on the argument. - - Tue Sep 26 00:10:29 1995 John Eaton - - * f-dassl.cc, f-fsolve.cc, f-lsode.cc, f-npsol.cc, f-quad.cc: - Don't try to figure out if the user-supplied functions take the - correct number of arguments. Simply let the call fail. - * variables.cc (takes_correct_nargs): Delete unused function. - * tree-expr.cc (tree_builtin::eval): Don't complain for too many - arguments to mapper functions. - * tree-expr.h, tree-expr.cc (tree_builtin, tree_function, tree_fvc): - Delete unused function max_expected_args. - - * defun.h (DEFUN): Delete unnecessary args nargin_min and nargout_max. - New arg unused_arg_flags. - (DEFUN_TEXT): Likewise. - * defun-dld.h (DEFUN_DLD_BUILTIN): Likewise. - * defun-int.h (DEFUN_INTERNAL, DECLARE_FUN, DEFINE_FUN_STRUCT): - Do the real work. - - * data.cc, dirfns.cc, dynamic-ld.cc, error.cc, f-balance.cc, - f-chol.cc, f-colloc.cc, f-dassl.cc, f-det.cc, f-eig.cc, f-expm.cc, - f-fft.cc, f-fft2.cc, f-find.cc, f-fsolve.cc, f-fsqp.cc, - f-givens.cc, f-hess.cc, f-ifft.cc, f-ifft2.cc, f-inv.cc, f-log.cc, - f-lpsolve.cc, f-lsode.cc, f-lu.cc, f-minmax.cc, f-npsol.cc, - f-pinv.cc, f-qpsol.cc, f-qr.cc, f-quad.cc, f-qzval.cc, f-rand.cc, - f-schur.cc, f-sort.cc, f-svd.cc, f-syl.cc, file-io.cc, help.cc, - input.cc, lex.l, load-save.cc, mappers.cc, octave-hist.cc, - octave.cc, octave.h, pager.cc, pr-output.cc, resource.cc, - sighandlers.cc, strfns.cc, sysdep.cc, timefns.cc, token.cc, - tree-const.cc, tree-expr.cc, tree-expr.h, tree-plot.cc, - unwind-prot.cc, unwind-prot.h, utils.cc, variables.cc, - variables.h, version.h, xdiv.cc: - Avoid unused variable warnings. - - * tree-expr.h (tree_oct_obj::print_value (ostream&)): - Delete name of unused arg. - (tree_fvc::save (ostream&, int, int): Likewise. - - * tree-const.h (tree_constant::tree_constant (magic_colon)): - Delete name of unused arg. - (tree_constant::tree_constant (all_va_args)): Likewise - (ColumnVector vector_value (int, int)): Likewise. - (ComplexColumnVector vector_value (int, int)): Likewise. - (Octave_object::eval (int, int, const Octave_object&): Likewise. - - * octave.cc (execute_startup_files): Look for octaverc first in - site/m, then in $(version)/m. - * variables.cc (get_local_site_defaults): New function. - * defaults.h.in (OCTAVE_LOCALFCNFILEDIR, OCTAVE_LOCALSTARTUPFILEDIR): - New macros. - * Makefile.in (defaults.h): Also substitute ${localfcndir}. - - Mon Sep 25 17:01:03 1995 John Eaton - - * variables.cc (install_builtin_variables): Add DEFCONST for "e". - - Fri Sep 22 02:18:45 1995 John Eaton - - * dirfns.cc (Fls): Delete ls_command after using it, not before. - - * input.h, input.cc (gnu_readline): Don't declare gnu_readline - `extern "C"'. - - * sysdep.h: Only declare gethostname if it is missing, then don't - declare it `extern "C"'. - - * dirfns.cc: Don't declare strerror(). - - * input.cc (command_generator): Use malloc, not xmalloc. Don't - declare xmalloc. - (gnu_readline): Don't declare this `extern "C"'. - - * octave-hist.cc: Don't declare history_get(). It is now in - readline/history.h. - - * input.cc: Don't declare history_get(). It is now in - readline/readline.h. - - * resource.cc: Don't surround include of sys/resource.h in - `extern "C" { }'. - - * fnmatch.h [__cplusplus]: Surround contents in `extern "C" { }'. - * load-save.cc, symtab.cc, variables.cc: Don't surround - fnmatch.h include in `extern "C" { }'. - - * help.cc: Don't #undef __FUNCTION_DEF before including - readline/tilde.h. - - * dirfuns.cc, file-io.cc, help.cc, load-save.cc, octave-hist.cc, - sysdep.cc, tree-plot.cc, utils.cc, variables.cc: - Don't surround readline includes in `extern "C" { }'. - - * sysdep.cc: Move all include statements to top of file. - - Tue Sep 19 01:58:21 1995 John Eaton - - * octave.cc (Fsystem): Use iprocstream *, and unwind_protect it. - * pager.cc (flush_output_to_pager): Likewise. - * dirfns.cc (Fls): Likewise. - * tree-plot.cc (plot_stream): Now a pointer. - (open_plot_stream): Deal with it. - (send_to_plot_stream, cleanup_tmp_files, do_external_plotter_cd): - Likewise. - - * procstream.cc (cleanup_iprocstream, cleanup_oprocstream): - New functions. - - * procstream.h, procstream.cc (class iprocstream, class oprocstream): - Keep track of pbuf. Initialize it to 0 in default constructors, - delete it in destructor. Don't call close in destructor. - - * sighandlers.cc (octave_set_signal_handler): New function. - Use this name instead of signal everywhere. - * help.cc (try_info): Likewise. - * pager.cc (flush_output_to_pager): Likewise. - * octave.cc (main): Likewise. - * octave-hist.cc (do_edit_history): Likewise. - - * input.cc (initialize_readline): Set rl_paren_string_delimiters - to avoid treating single quotes as string delimiters when doing - paren matching. - - * Makefile.in (SOURCES): Don't list Map.cc or SLStack.cc here. - - * tree-const.cc: Do include utils.h. - - * sysdep.cc: Don't surround terminal includes in extern "C". - Include them before readline.h. - - * Map.h: Don't include utils.h. - (CHNode::CHNode (const char*, const C&, CHNode *t): - Do strsave() inline. - - * input.cc (generate_possible_completions): Generate name list - even when text == 0. - (operate_and_get_next): Don't declare history_stifled, call - history_is_stifled () instead. - Don't declare history_length, or max_input_history either. - Check (where >= history_length - 1) too, as in recent versions of - bash. - - * user-prefs.h (user_prefs): New field, `completion_append_char'. - * user-prefs.cc (init_user_prefs): Initialize it. - (sv_completion_append_char): New function. - * variables.cc (install_builtin_variables): Install - completion_append_char. - * input.cc (command_generator): Use it. - - * SLList-expr.cc, SLList-misc.cc, SLList-plot.cc, SLList-tc.cc, - DLList-fi.cc: Include config.h. - * DLList-fi.cc: Include file-info.h, not file-io.h. - - Mon Sep 18 11:01:24 1995 John Eaton - - * octave.h (clean_up_and_exit): Tag with NORETURN instead of using - typedef trick. - * error.h (panic): Likewise. - * utils.h (jump_to_top_level): Likewise. - - * file-io.h: Protect from multiple includes with octave_file_io, - not octave_files. - - * file-info.h (class file_info): Convert to using std C++ string - class from char *. - * file-info.cc: Likewise. Don't include utils.h. - * file-io.cc (return_valid_file, fopen_file_for_user, - fflush_internal, do_scanf): Use operator ==, not strcmp. - (close_files): Call error with file.name ().data (), - not file.name (). - (freport_internal): Call form with file.mode ().data () and - file.name ().data (). - - * file-io.cc, file-io.h: Extract file_info class. - * file-info.cc, file-info.h: New files for file_info class. - - * user-prefs.h (user_prefs): New field, `beep_on_error'. - * user-prefs.cc (init_user_prefs): Initialize it. - (beep_on_error): New function. - * variables.cc (install_builtin_variables): Install beep_on_error. - * octave.cc (maximum_braindamage): Set beep_on_error to "true". - * error.cc (verror): Conditionally beep. - (error): Don't reset error_state until after verror is called. - - Sun Sep 17 16:41:25 1995 John Eaton - - * load-save.cc (read_mat_binary_data, read_ascii_data, - save_ascii_data, read_binary_data, save_binary_data): - Handle string arrays. - - Fri Sep 15 00:24:19 1995 John Eaton - - * user-prefs.cc (struct_levels_to_print, - set_output_max_field_width, set_output_precision, - set_save_precision): Eliminate unecessary kludge variable. - - * variables.cc (gobble_leading_white_space): New arg, - in_parts. Change all callers. - - * lex.l (HELP_FCN): Delete start state. The `help' command is now - handled the same as any other text-style function. - - * gripes.cc (gripe_invalid_value_specified): New function - * user-prefs.cc: Use it. - - * sysdep.cc (octave_words_big_endian): New global variable. - (ten_little_endians): New function. - (sysdep_init): Call it. - * load-save.cc (words_big_endian): Use this at run-time instead of - depending on WORDS_BIGENDIAN at compile-time. - - * symtab.h (SYMTAB_VARIABLES): New macro. - * variables.cc (Fclear): Use it instead of just - symbol_def::USER_VARIABLE when looking for variables. - - * octave.cc (main): If there is a file to execute, set - program_invocation_name and program_name to the name of the file - and argv to the remaining args. - (intern_argv): Only define argv if there are some remaining - arguments. - - * defun.h (DEFVAR_INT): New macro. - (DEFVAR): Define in terms of DEFVAR_INT. Delete args protect and - eternal. - (DEFCONST): New macro. - * variables.cc (install_builtin_variables): Use DEFCONST where - appropriate, change uses of DEFVAR to match new definition. - - * variables.cc (bind_builtin_variable): New variant that accepts - const tree_constant& value. - (install_builtin_variables): Properly alphabetize DEFVAR for this. - - * octave.cc (short_opts): Prefix with `+' to prevent argv - permutation. - (main): Don't use readline if forced_interactive. - (traditional): New file-scope variable. - (long_opts, usage_string, verbose_usage): Add `--traditional'. - (maximum_braindamage): New function. - (main): Call it if --traditional. - - * input.cc (do_input_echo): Print prompt correctly when - forced_interactive is either true or false. - - Thu Sep 14 00:54:06 1995 John Eaton - - * data.cc (Fstruct_elements): New function. - - * file-io.cc (Fumask): New function. - - * dirfns.cc (Fmkdir, Frmdir, Frename): New functions. - - * Makefile.in: Add rules and dependencies for building safe-stat.o - and safe-lstat.o. - - * mkdir.c, rename.c, rmdir.c: New files. - * Makefile.in (SOURCES): Include them in the list. - - * safe-xstat.hin, safe-xstat.cin: New files - * Makefile.in (DISTFILES): Include them in the list. - - * sighandlers.cc (octave_new_handler): Try to continue on memory - exhausted errors. - (sigfpe_handler): Improve error message. - - * Makefile.in: Use `ifndef omit_deps', not `ifndef $(omit_deps)'. - - * dirfns.cc (Freaddir): New function. - - * f-sort.cc: Complete rewrite. Now uses stable sort algorithm and - correctly handles complex matrices containing columns of all real - numbers. - - Wed Sep 13 03:16:40 1995 John Eaton - - * arith-ops.cc: Unconditionally #define DIVIDE_BY_ZERO_ERROR. - - * variables.cc (install_builtin_variables): Unconditionally - install NaN and nan. - - * mappers.cc (xisinf): Don't do bogus things if isinf, isnan, or - finite are missing. - (xfinite): Likewise. - - * sysdep.cc (octave_ieee_init): Don't set octave_NaN and - octave_Inf if values are not available. - - * resource.cc (mk_ru_map): Don't use ru_ or tv_ as prefixes to - Octave names for the structure members. - - Tue Sep 12 02:04:16 1995 John Eaton - - * procstream.h, procstream.cc: Rewrite. - - Mon Sep 11 18:42:05 1995 John Eaton - - * filemode.c: New file, from Emacs. - * Makefile.in (SOURCES): Add it to the list. - - * file-io.cc (Fstat, Flstat, mk_stat_map): New functions. - - * timefns.cc (mk_tm_map): Don't use tm_ as prefix to Octave names - for these structure members. - (extract_tm): Likewise. - (Flocaltime): Fix doc string to match. - - Thu Sep 7 02:04:27 1995 John Eaton - - * load-save.cc (save_user_variables): New function. - * sighandlers.cc (my_friendly_exit): Call it before exiting. - (sigfpe_handler): New function. - (install_signal_handlers) [__alpha__]: Install it. - - Wed Sep 6 14:35:10 1995 John Eaton - - * tree-cmd.cc (tree_unwind_protect::eval): Ignore errors and - suppress error messages while executing first block of - unwind_protect commands. - - * parse.y (end_error): Add missing case for unwind_protect_end. - - * tree-expr.cc (tree_builtin::eval): Complain if no arguments - given for mapper functions. - (tree_fvc::lookup_map_element): Print error message for invalid - structure reference. - - Tue Sep 5 02:04:12 1995 John Eaton - - * file-io.cc, input.cc, load-save.cc, octave.cc, sysdep.cc, - variables.cc, octave-hist.cc, utils.cc, f-schur.cc, f-rand.cc, - f-quad.cc, f-qpsol.cc, f-npsol.cc, f-lsode.cc, f-fsolve.cc, - f-dassl.cc, f-colloc.cc, f-balance.cc, error.cc, data.cc: - Add const qualifiers where appropriate. - - * dirfns.h: Include , for time_t. - - * tempname.c, file-io.cc, help.cc, input.cc, octave-hist.cc, - octave.cc, sighandlers.cc, sysdep.cc, tree-expr.cc, tree-misc.cc, - tree-plot.cc, utils.cc, variables.cc, sysdir.h: - Move #include inside #ifdef HAVE_UNISTD_H. - - * syswait.h: New file. - * Makefile.in (INCLUDES): Add it to the list. - * file-io.cc, sighandlers.cc: Use it instead of including - sys/wait.h directly. - - * octave.cc: Include statdefs.h, not sys/stat.h. - - * sysdir.h: New file. - * Makefile.in (INCLUDES): Add it to the list. - * dirfns.cc, utils.cc: Use it instead of including the headers - directly. - - * pathlen.h: New file. - * Makefile.in (INCLUDES): Add it to the list. - * dirfns.cc, input.cc: Use it instead of including sys/param.h - directly. - * utils.cc: Don't include sys/param.h - - Sun Sep 3 18:52:59 1995 John Eaton - - * tree-const.cc (TC_REP::string_value): Return const char*, not - char *. - - * All .cc, .y, .l, .y files: Include , not , and - so on for all new C++ versions of these standard C headers. - - Thu Aug 31 17:09:38 1995 John Eaton - - * pathsearch.h: Also hide `string'. - - * oct-str.cc, oct-str.h: New files. - * Makefile.in: Add to the appropriate lists. - * tc-rep.h: Change char* to Octave_string* in anonymous union. - * tree-expr.cc (tree_matrix::eval): Handle multiple element strings. - * strfns.cc (toascii): Likewise. - * tree-const.cc (print_as_string): Likewise. - (TC_REP::force_numeric, TC_REP::rows, TC_REP::columns, - TC_REP::double_value, TC_REP::complex_value, TC_REP::matrix_value, - TC_REP::complex_matrix_value, TC_REP::convert_to_str): Likewise. - (TC_REP::print): Call octave_print_internal for string case. - (all_strings): New function. - Fix constructors to use new data structure. - * pr-output.cc (octave_print_internal): Add version for strings. - * Array-string.cc: New file. - - * octave.cc (octave_argv): New global variable. - (intern_argv): New function. - (main): Fix argument parsing to do the right thing for arguments - to executable scripts. - * variables.cc: Add DEFUNs for argv, program_invocation_name, and - program_name. - - * defun.h (DEFVAR): Fix comment. - - Thu Aug 24 00:02:00 1995 John Eaton - - * file-io.cc (fgets_internal): Make second arg optional. Add - optional arg `strip_final_newline'. - (Ffgets): Change to match new definition of fgets_internal. - (Ffgetl): Implement using the new fgets_internal. - - * f-rand.cc (Frand): Update code for sizing return value to match - that used by ones, zeros, and eye. - - Wed Aug 23 19:52:45 1995 John Eaton - - * tree-const.cc (do_vector_assign): Don't crash for - A(range) = scalar, or A(matrix) = scalar. - - * f-dassl.cc (set_dassl_option): Rename from do_dassl_option. - (show_dassl_option): New function. - (Fdassl_options): Handle single arg. - * f-fsolve.cc (set_fsolve_option): Rename from do_fsolve_option. - (show_fsolve_option): New function. - (Ffsolve_options): Handle single arg. - * f-fsqp.cc (set_fsqp_option): Rename from do_fsqp_option. - (show_fsqp_option): New function. - (Ffsqp_options): Handle single arg. - * f-lpsolve.cc (set_lpsolve_option): Rename from do_lpsolve_option. - (show_lpsolve_option): New function. - (Flpsolve_options): Handle single arg. - * f-lsode.cc (set_lsode_option): Rename from do_lsode_option. - (show_lsode_option): New function. - (Flsode_options): Handle single arg. - * f-npsol.cc (set_npsol_option): Rename from do_npsol_option. - (show_npsol_option): New function. - (Fnpsol_options): Handle single arg. - * f-qpsol.cc (set_qpsol_option): Rename from do_qpsol_option. - (show_qpsol_option): New function. - (Fqpsol_options): Handle single arg. - * f-quad.cc: (set_quad_option): Rename from do_quad_option. - (show_quad_option): New function. - (Fquad_options): Handle single arg. - (Fquad): Doc fix. - - Tue Aug 22 00:38:05 1995 John Eaton - - * tree-plot.cc (do_external_plotter_cd): New function. - * dirfns.cc (octave_change_to_directory): New function. If cd is - successful, also call do_external_plotter_cd(). - (Fcd): Call octave_change_to_directory(), not change_to_directory(). - - * pr-output.cc (pr_any_float): Change declaration of counter to - size_t to avoid gcc warnings. - - * idx-vector.cc, octave-hist.cc, tree-const.cc, tree-expr.cc, - tree-misc.cc, utils.cc, xpow.cc, Map.cc: - Update for change in for loop variable scope for gcc 2.7.0. - - Mon Aug 21 19:34:53 1995 John Eaton - - * tree-const.cc (fortran_style_matrix_assignment): Properly handle - case of complex LHS, real RHS. - - * Makefile.in: Only include dependency files if $(omit_deps) is - not set. - - Wed Jul 5 00:03:58 1995 John Eaton - - * sysdep.cc: Explicitly include string.h. - - Sun Jun 25 00:18:10 1995 John Eaton - - * load-save.cc (too_large_for_float (const Matrix&)): - Extract elements as doubles, not Complex. - - Sat Jun 24 22:59:15 1995 John Eaton - - * pr-output.cc (any_element_is_inf_or_nan): Declare extern, not static. - * f-svd.cc (Fsvd): Call here to avoid trying to take SVD of matrix - containing Inf or NaN values. - - * pr-output.cc (bit_format): New file-scope variable. - (set_format, pr_any_float): Handle bit_format. - (octave_print_internal): Handle bit_format like bank_format. - (init_format_state): Initialize bit_format. - (set_format_style): Allow `format bit' and `format native-bit'. - - Thu Jun 8 15:20:26 1995 John Eaton - - * mappers.cc (arg, imag, signum): If arg is NaN, return NaN. - - Mon May 15 14:47:04 1995 John Eaton - - * pager.cc (Fdiary): Initialize diary_file here, not in the - file-scope declaration. - - * tree-expr.cc (tree_index_expression::eval): - Handle nargin == 0 the same as other cases. - - Tue May 2 10:02:23 1995 John Eaton - - * load-save.cc (do_double_format_conversion): Add missing breaks. - (do_float_format_conversion): Likewise. - - Mon May 1 13:50:24 1995 John Eaton - - * Makefile.in (OCTAVE_LIBS): Add @LIBPLPLOT@ to the list. - - * timefns.cc (Ftime): Handle GETTIMEOFDAY_NO_TZ. - - * Makefile.in (SOURCES): Delete tc-rep.cc, tc-rep-ass.cc, and - tc-rep-idx.cc from the list. - - * tree-const.h: Add #pragma interface. - * tree-const.cc: Add contents of tc-rep.cc, tc-rep-ass.cc, and - tc-idx.cc to this file. Add #pragma implementation. This makes - tree-const.cc large, but makes the final binary smaller. - - * unwind-prot.h unwind-prot.cc token.cc token.h procstream.cc - procstream.h idx-vector.cc idx-vector.h symtab.cc symtab.h - oct-map.cc oct-map.h oct-obj.cc oct-obj.h tree-plot.h tree-plot.cc - tree-misc.cc tree-misc.h tree-expr.cc tree-expr.h tree-cmd.cc - tree-cmd.h tree-base.cc tree-base.h: - Add #pragma interface/implementation. - - * Makefile.in (OCTAVE_LIBS): Delete @LIBINFO@ from list. - * help.cc: Don't include info headers or extern declarations for - functions from info. - (try_info): Call info as a subprocess. Delete second arg. - Handle SIGINT here, not in help_from_info(). - (help_from_info): Complain if info doesn't work. - - * defun-dld.h (DEFUN_DLD_BUILTIN) [OCTAVE_LITE && MAKE_BUILTINS]: - If ! WITH_DLD, simply emit a character string constant. - - Fri Apr 28 15:23:06 1995 John Eaton - - * lex.l ({IDENT}{S}*): Don't delete tok. That's handled by - strip_trailing_whitespace() now. - ([^ \t\n]*{S}*|[^ \t\n\;\,]*{S}*): Ditto. - - * pathsearch.h: Include kpathsea/progname.h. - * octave.cc (initialize_globals): Call kpse_set_progname(). - - * token.h: Declare copy constructor and operator = private. - * token.cc: Abort if copy constructor or operator = is used. - - Thu Apr 27 13:54:39 1995 John Eaton - - * tree-expr.cc (lookup_map_element): Don't list default argument - values here too. - - * pr-output.cc (hex_format): New file-scope variable. - (set_format, pr_any_float): Handle hex_format. - (octave_print_internal): Handle hex_format like bank_format. - (init_format_state): Initialize hex_format. - (set_format_style): Allow `format hex' and `format native-hex'. - - * variables.cc (bind_ans): Create ans_id each time with new and - ask tree_simple_assignment_expression to handle cleaning it up. - This apparently plugs a memory leak. - - * help.cc (Ftype): Don't try to print map constants. Handle - references to structure members. - - Wed Apr 26 12:40:59 1995 John Eaton - - * input.cc (generate_struct_completions): New function. - (generate_possible_completions): Likewise. - (looks_like_struct): Likewise. - (command_generator): Handle completion of struct variables. - - * tree-expr.h, tree-expr.cc (tree_fvc::lookup_map_element): - Add insert and silent args. - - * oct-map.cc: New file. - * Makefile.in (SOURCES): Add it to the list. - - Mon Apr 24 09:41:02 1995 John Eaton - - * variables.cc (Fexist): Handle structure references too. - - * tree-const.cc (lookup_map_element (const char*, int, int): - New function. - (lookup_map_element (SLList&, int, int): New arg, silent. - * tc-rep.cc (lookup_map_element): New arg, silent. If nonzero, - don't call error(). - - * tc-rep.h (is_empty): Define here. - * tree-const.h (is_empty): Hand off to TC_REP::is_empty(). - - * data.cc (Fstruct_contains): Call lookup_map_element on args(0) - instead of extracting the map and calling contains() on it. - - * parse.y (EPLUS, EMINUS): New tokens. - (simple_expr): Handle EPLUS, EMINUS the same as `+' and `-'. - * lex.l (".+", ".-"): New patterns. Match these separately to - disallow using them as unary operators. - - * lex.l (next_token_is_bin_op): Simplify by noting that spacing - only matters for those tokens that can also be unary ops. - - Fri Apr 21 14:34:45 1995 John Eaton - - * load-save.cc (read_ascii_data): Allow reading of empty - matrices. - - * tc-rep-ass.cc (vector_assignment): Only assert that we are not - doing fortran-style indexing and that nr <= 1 || nc <= 1. - (do_vector_assign): Handle assignment of [] when one dimension is - zero and the other is anything. - - Thu Apr 20 13:56:21 1995 John Eaton - - * tc-rep-ass.cc (delete_rows, delete_columns): Simply return if - num_to_delete is 0. - - * lex.l (handle_identifier): Don't match plot option keywords - inside parentheses or braces. - - * variables.cc (parse_fcn_file): Also delete tmp_help_txt if - running a script. - - * tree-cmd.h (tree_command): Add destructor. - - * tree-expr.h tree_simple_assignment_expression (lhs_idx_expr): - Hang on to idx_expr, not just its parts so it can be deleted. - (init): Initialize it. - * tree-expr.cc (~tree_simple_assignment_expression): Delete it. - - * tree-expr.h (tree_multi_val_ret, tree_oct_obj, tree_fvc, - tree_identifier, tree_builtin, tree_function): Add destructors. - * tree-expr.cc (tree_function::~tree_function): Delete some stuff. - - * tree-misc.h (tree_va_return_list): Add destructor. - - * octave.cc (__builtin_new, __builtin_delete): Provide our own, - for debugging. - - * utils.cc (strconcat): Don't depend on the return value from - strcat. - (file_in_path): Simplify logic. - - * parse.y (maybe_convert_to_ans_assign): Create ans_id each time - with new and ask tree_simple_assignment_expression to handle - cleaning it up. This apparently plugs a memory leak. - - * lex.l (strip_trailing_whitespace): Declare retval static. - Delete it before saving next string. - - * error.cc (Ferror): Do call error() for empty string args. - (error_1): Don't print anything if fmt is "" or "\n", but do set - the error state appropriately. - - * tree-cmd.cc (tree_unwind_protect::eval): Handle return and break - in the `try' part of the statement. - - Mon Apr 10 19:29:44 1995 John Eaton - - * f-expm.cc, f-givens.cc, f-qzval.cc, f-syl.cc, f-rand.cc: - Where appropriate, declare Fortran functions to take reference - instead of pointer args. Change callers. - - * mappers.cc: Declare Fortran functions to take reference instead - of pointer args. Change callers. - - * gamma.c, lgamma.c, erfc.c, erf.c, atanh.c, asinh.c, acosh.c: - Declare Fortran functions to take reference instead of pointer - args. - - Sun Apr 9 19:38:53 1995 John Eaton - - * file-io.cc (Fpopen, Fpclose, Fexecute, Fsync_system, - Fasync_system, Fwaitpid, Fmkfifo, Funlink): New functions. - - * sighandlers.cc (sigchld_handler): New function. - (install_signal_handlers): Add call to install - sigchld_handler. (This is #if 0'd out, waiting for code to help - determine which child exited and what to do about it). - - * tree-expr.h (tree_oct_obj): New class. - - * tree-expr.h (tree_multi_assignment_expression::preserve): New - data member. Add arg with default value to constructors. Change - callers as necessary. - * tree-expr.cc (~tree_multi_assignment_expression): Conditionally - delete lhs. - - * parse.y (make_multi_val_ret): Pass matrix instead of getting it - from the global matrix list. - (expression): Extract matrix from matrix list before calling - make_multi_val_ret(). - - * parse.y (command): Handle new for loop syntax for structures. - - * tree-plot.h (subplot_list): Include tree_print_code() in - initializer lists for constructors. - * tree-expr.h (tree_statement_list, tree_argument_list, - tree_parameter_list, tree_return_list, tree_global_init_list, - tree_if_command_list, ): Likewise. - - * tree-cmd.h (tree_for_command::id_list): New data member. - (tree_for_command (tree_return_list*, tree_expression*, - tree_statement_list*, int, int)): Likewise. - * tree-cmd.cc (tree_for_command::eval): Handle for loops with - structures. - (do_for_loop_once (tree_return_list*, Octave_object&, int&)): - New form for handling for loops with structures. - - * sysdep.cc (octave_ieee_init): Determine floating point format - here. - (native_float_format): New global variable. - (Fisieee): Compute return value from native_float_format, not by - using preprocessor macros. - * sysdep.h (enum floating_point_format): Move declaration here. - * load-save.cc: From here. - Always define all floating point format conversion routines. - (do_double_format_conversion, do_float_format_conversion): - Use native_float_format instead of preprocessor macros. - - Sat Apr 8 15:41:35 1995 John Eaton - - * Makefile (TEMPLATE_SRC): New variable. - (DISTFILES): Add $(TEMPLATE_SRC). - (SOURCES): Delete Map.cc and SLStack.cc from here. - - * variables.cc (install_builtin_variables): Use OCTAVE_VERSION - instead of version_string to initialize OCTAVE_VERSION. - * version.h (version_string): Delete. - - * getopt.c (_getopt_internal): Initialize indfound to avoid warning. - - Fri Apr 7 15:29:41 1995 John Eaton - - * tc-inlines.h (REP_RHS_MATRIX): Just check to see if tc is real - or complex. If conversion fails, return. - - Thu Apr 6 00:10:47 1995 John Eaton - - * data.cc (Fstruct_contains): New function. - - * tc-rep.cc (print_code): Add extra parens around while condition - to avoid warning. - * utils.cc (undo_string_escapes): Likewise. - * input.cc (decode_prompt_string): Likewise. Also rewrite if - statement to avoid warning. - - Tue Apr 4 22:54:17 1995 John Eaton - - * tree-expr.cc (tree_multi_assignment_expression::eval, - tree_simple_assignment_expression::eval): Call print_constant - even if user_pref.print_answer_id_name is false. - - Mon Apr 3 17:57:14 1995 John Eaton - - * tc-inlines.h (TC_REP): Avoid redefinition. - - * tree-const.h (do_binary_op, do_unary_op): Declare as friends of - tree_constant class too. - - * tree-plot.h (subplot_using::have_values): Delete data member. - * tree-plot.cc (subplot_using::eval): Always recompute values. - - Fri Mar 31 10:18:32 1995 John Eaton - - * tc-rep.cc (print): Print open brace for structures here. - * tree-expr.cc (print_constant): Not here. - - * symtab.cc (define): Don't delete arg if sv_fcn fails. - - * tree-const.cc (print): New function. Create ostrstream buffer - and pass it to rep->print(). - * tree-const.h (eval (int)): Call print(), not rep->print(). - * tc-rep.cc (structure_indent_level): New file-scope variable. - (print): New arg, output_buf, is stream to print to. - Print values of structure elements too. - - * user-prefs.h (user_preferences): New field, struct_levels_to_print. - * user-prefs.cc (struct_levels_to_print): New function. - * variables.cc (install_builtin_variables): Add DEFVAR for new - variable struct_levels_to_print. - - * tree-const.cc (print_as_scalar, print_as_structure): Move here - from tree-expr.cc and make extern. - - * tree-expr.cc (print_as_structure): New function. - (print_constant): Use it. - - * tree-expr.cc (print_constant): New arg, print_padding. - (tree_simple_assignment_expression::eval): Use print_constant - instead of duplicating code here. - (tree_multi_assignment_expression::eval): Likewise. - - Thu Mar 30 13:24:11 1995 John Eaton - - * Makefile.in (SOURCES): Add resource.cc. - * resource.cc: New file, extracted from timefns.cc. - (Fgetrusage): New function. - * timefns.cc (cputime): Delete (now implemented in a function file - using new getrusage function). - - Wed Mar 29 22:52:42 1995 John Eaton - - * Makefile.in (SOURCES): Add strftime.c. - * strftime.c: New file, from sh-utils distribution. - - * timefns.cc (mk_tm_map, extract_tm, Ftime, Fgmtime, Flocaltime, - Fmktime, Fstrftime): New basic time functions. - (Fclock, Fdate): Delete (now implemented in function files using new - time functions). - - Tue Mar 28 17:51:51 1995 John Eaton - - * file-io.cc (return_valid_file, do_printf, do_scanf, - fclose_internal, feof_internal, ferror_internal, fflush_internal, - fgets_internal, fopen_internal, fread_internal, freport_internal, - frewind_internal, fseek_internal, ftell_internal, - fwrite_internal): Declare static. - * file-io.h: Delete extern declarations for them. - - Fri Mar 24 09:52:50 1995 John Eaton - - * pr-output.cc (pr_col_num_header): New function. - (compact_format): New file-scope variable. - (set_format_style): Handle loose and compact formats. - (octave_print_internal (ostream&, const ComplexMatrix&, int)): - Replace duplicate code with call to pr_col_num_header(). - (octave_print_internal (ostream&, const Matrix&, int): Likewise. - (octave_print_internal (ostream&, const Range&, int): Likewise. - - Tue Mar 21 08:44:48 1995 John Eaton - - * mappers.cc (xgamma): Always use Slatec library function. - * (xlgamma): Likewise. - * Makefile.in (SOURCES): Don't include lgamma.c. - - Fri Mar 17 22:38:39 1995 John Eaton - - * tc-rep.cc (TC_REP::new): Don't try to keep track of newlist_tail. - Explicitly initialize newlist to zero. - * tree-const.cc (tree_constant::operator new): Likewise. - - Fri Mar 10 12:40:24 1995 John Eaton - - * tree-cmd.cc (quit_loop_now): Declare inline. - (tree_for_command::do_for_loop_once): Split into two versions, one - for the general case and one for when the loop variable is a - simple identifier. - (DO_LOOP): New macro. Move tests outside of loop. - (tree_for_command::eval): Speed up by checking to see if loop - variable is a simple identifier and by using DO_LOOP. - - * tree-const.h: New union of rep and freeptr. The freeptr element - is used for our custom memory management functions. - - * tc-rep.h: Add freeptr element to anonymous union (for our custom - memory management functions). - - * tree-const.cc (newlist, newlist_grow_size, newlist_tail): New - static variables. - (tree_constant::operator new): Always define to allow more - efficient allocation of single tree_constants. - (tree_constant::operator delete): Likewise, handle deletion of the - memory we allocate. - - * tc-rep.cc (newlist, newlist_grow_size, newlist_tail): New static - variables. - (tree_constant::operator new): Always define to allow more - efficient allocation of single tree_constants. - (tree_constant::operator delete): Likewise, handle deletion of the - memory we allocate. - - Fri Mar 3 14:00:08 1995 John Eaton - - * error.cc (verror): Terminate output_buf with ends. - - * statdefs.h: Use C-style comment in first line instead of - C++-style comment. - - Mon Feb 27 10:11:18 1995 John Eaton - - * parse.y (maybe_convert_to_ans_assign): Only lookup ans once. - * variables.cc (bind_ans): New function. - * tree-expr.cc (tree_identifier::eval (int)): Use it here. - (tree_identifier::eval (int, int, const Octave_object&): And here. - - * tree-expr.cc (install_nargin_and_nargout): New function. - * tree-expr.h (tree_function::tree_function (tree_statement_list *, - symbol_table *, int, int)): Call it. - - * tree-expr.cc (tree_function::bind_nargin_and_nargout): New function. - (tree_function::eval): Call it insead of the one from variables.cc. - - * variables.cc (bind_nargin_and_nargout): #if 0 out. - - Sun Feb 26 00:17:06 1995 John Eaton - - * load-save.cc (Fload, Fsave): Free fname returned by tilde_expand(). - * dirfns.cc (Fls): Likewise. - - * tree-expr.cc (tree_multi_assignment_expression::eval (int, int, - const Octave_object&)): Call tree_return_list::operator () (Pix) - explicitly. - - * octave.cc (initialize_globals): Put TEXMF in the environment for - kpthsea. - - * Makefile.in (OCTAVE_LIBS): Use @LIBINFO@ and @LIBREADLINE@, - substituted by configure. Use kpathsea.a, not libkpathsea, so we - don't have to modify the kpathsea Makefile. - - Sat Feb 25 18:59:26 1995 John Eaton - - * pathsearch.cc: New file. - * pathsearch.h: New file. - * Makefile.in (INCLUDES): Include it in the list. - * dynamic-ld.cc, help.cc, utils.cc: Use it instead of repeating - identical code multiple times. - - * variables.cc (install_builtin_variables): Only DEFVAR - suppress_verbose_help_message if USE_GNU_INFO. - - * help.cc (Fhelp): Only handle -i if USE_GNU_INFO. - (additional_help_message): Only print message if USE_GNU_INFO. - (builtin_help): New function. - (help_from_info): New function. Print warning if not USE_GNU_INFO. - - See ChangeLog.1 in the top level directory for earlier changes. --- 0 ---- diff -cNr octave-3.4.0/src/data.cc octave-3.4.1/src/data.cc *** octave-3.4.0/src/data.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/data.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 106,115 **** DEFUN (all, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} all (@var{x}, @var{dim})\n\ ! The function @code{all} behaves like the function @code{any}, except\n\ ! that it returns true only if all the elements of a vector, or all the\n\ ! elements along dimension @var{dim} of a matrix, are nonzero.\n\ @end deftypefn") { ANY_ALL (all); --- 106,130 ---- DEFUN (all, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} all (@var{x})\n\ ! @deftypefnx {Built-in Function} {} all (@var{x}, @var{dim})\n\ ! For a vector argument, return true (logical 1) if all elements of the vector\n\ ! are nonzero.\n\ ! \n\ ! For a matrix argument, return a row vector of logical ones and\n\ ! zeros with each element indicating whether all of the elements of the\n\ ! corresponding column of the matrix are nonzero. For example:\n\ ! \n\ ! @example\n\ ! @group\n\ ! all ([2, 3; 1, 0]))\n\ ! @result{} [ 1, 0 ]\n\ ! @end group\n\ ! @end example\n\ ! \n\ ! If the optional argument @var{dim} is supplied, work along dimension\n\ ! @var{dim}.\n\ ! @seealso{any}\n\ @end deftypefn") { ANY_ALL (all); *************** *** 140,150 **** DEFUN (any, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} any (@var{x}, @var{dim})\n\ ! For a vector argument, return 1 if any element of the vector is\n\ ! nonzero.\n\ \n\ ! For a matrix argument, return a row vector of ones and\n\ zeros with each element indicating whether any of the elements of the\n\ corresponding column of the matrix are nonzero. For example:\n\ \n\ --- 155,166 ---- DEFUN (any, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} any (@var{x})\n\ ! @deftypefnx {Built-in Function} {} any (@var{x}, @var{dim})\n\ ! For a vector argument, return true (logical 1) if any element of the vector\n\ ! is nonzero.\n\ \n\ ! For a matrix argument, return a row vector of logical ones and\n\ zeros with each element indicating whether any of the elements of the\n\ corresponding column of the matrix are nonzero. For example:\n\ \n\ *************** *** 164,169 **** --- 180,186 ---- @result{} [ 1; 1 ]\n\ @end group\n\ @end example\n\ + @seealso{all}\n\ @end deftypefn") { ANY_ALL (any); *************** *** 501,507 **** "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} rem (@var{x}, @var{y})\n\ @deftypefnx {Mapping Function} {} fmod (@var{x}, @var{y})\n\ ! Return the remainder of the division @code{@var{x} / @var{y}}, computed \n\ using the expression\n\ \n\ @example\n\ --- 518,524 ---- "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} rem (@var{x}, @var{y})\n\ @deftypefnx {Mapping Function} {} fmod (@var{x}, @var{y})\n\ ! Return the remainder of the division @code{@var{x} / @var{y}}, computed\n\ using the expression\n\ \n\ @example\n\ *************** *** 1076,1087 **** @deftypefn {Built-in Function} {} cumsum (@var{x})\n\ @deftypefnx {Built-in Function} {} cumsum (@var{x}, @var{dim})\n\ @deftypefnx {Built-in Function} {} cumsum (@dots{}, 'native')\n\ Cumulative sum of elements along dimension @var{dim}. If @var{dim}\n\ is omitted, it defaults to the first non-singleton dimension.\n\ \n\ ! The \"native\" argument implies the summation is performed in native type.\n\ ! See @code{sum} for a complete description and example of the use of\n\ ! \"native\".\n\ @seealso{sum, cumprod}\n\ @end deftypefn") { --- 1093,1105 ---- @deftypefn {Built-in Function} {} cumsum (@var{x})\n\ @deftypefnx {Built-in Function} {} cumsum (@var{x}, @var{dim})\n\ @deftypefnx {Built-in Function} {} cumsum (@dots{}, 'native')\n\ + @deftypefnx {Built-in Function} {} cumsum (@dots{}, 'double')\n\ + @deftypefnx {Built-in Function} {} cumsum (@dots{}, 'extra')\n\ Cumulative sum of elements along dimension @var{dim}. If @var{dim}\n\ is omitted, it defaults to the first non-singleton dimension.\n\ \n\ ! See @code{sum} for an explanation of the optional parameters 'native',\n\ ! 'double', and 'extra'.\n\ @seealso{sum, cumprod}\n\ @end deftypefn") { *************** *** 1223,1229 **** DEFUN (diag, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} diag (@var{v}, @var{k})\n\ Return a diagonal matrix with vector @var{v} on diagonal @var{k}. The\n\ second argument is optional. If it is positive, the vector is placed on\n\ the @var{k}-th super-diagonal. If it is negative, it is placed on the\n\ --- 1241,1251 ---- DEFUN (diag, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {@var{M} =} diag (@var{v})\n\ ! @deftypefnx {Built-in Function} {@var{M} =} diag (@var{v}, @var{k})\n\ ! @deftypefnx {Built-in Function} {@var{M} =} diag (@var{v}, @var{m}, @var{n})\n\ ! @deftypefnx {Built-in Function} {@var{v} =} diag (@var{M})\n\ ! @deftypefnx {Built-in Function} {@var{v} =} diag (@var{M}, @var{k})\n\ Return a diagonal matrix with vector @var{v} on diagonal @var{k}. The\n\ second argument is optional. If it is positive, the vector is placed on\n\ the @var{k}-th super-diagonal. If it is negative, it is placed on the\n\ *************** *** 1241,1246 **** --- 1263,1272 ---- @end example\n\ \n\ @noindent\n\ + The 3-input form returns a diagonal matrix with vector @var{v} on the main\n\ + diagonal and the resulting matrix being of size @var{m} rows x @var{n}\n\ + columns.\n\ + \n\ Given a matrix argument, instead of a vector, @code{diag} extracts the\n\ @var{k}-th diagonal of the matrix.\n\ @end deftypefn") *************** *** 1256,1262 **** octave_idx_type k = args(1).int_value (); if (error_state) ! error ("diag: invalid second argument"); else retval = args(0).diag(k); } --- 1282,1288 ---- octave_idx_type k = args(1).int_value (); if (error_state) ! error ("diag: invalid argument K"); else retval = args(0).diag(k); } *************** *** 1272,1278 **** error ("diag: invalid dimensions"); } else ! error ("diag: first argument must be a vector"); } else print_usage (); --- 1298,1304 ---- error ("diag: invalid dimensions"); } else ! error ("diag: V must be a vector"); } else print_usage (); *************** *** 1291,1296 **** --- 1317,1324 ---- %!assert(diag ([1, 0, 0; 0, 2, 0; 0, 0, 3]), [1; 2; 3]); %!assert(diag ([0, 1, 0, 0; 0, 0, 2, 0; 0, 0, 0, 3; 0, 0, 0, 0], 1), [1; 2; 3]); %!assert(diag ([0, 0, 0, 0; 1, 0, 0, 0; 0, 2, 0, 0; 0, 0, 3, 0], -1), [1; 2; 3]); + %!assert(diag (ones(1, 0), 2), zeros (2)); + %!assert(diag (1:3, 4, 2), [1, 0; 0, 2; 0, 0; 0, 0]); %!assert(full (diag (single([1; 2; 3]))), single([1, 0, 0; 0, 2, 0; 0, 0, 3])); %!assert(diag (single([1; 2; 3]), 1), single([0, 1, 0, 0; 0, 0, 2, 0; 0, 0, 0, 3; 0, 0, 0, 0])); *************** *** 1312,1318 **** --- 1340,1350 ---- %!assert(diag (int8([0, 1, 0, 0; 0, 0, 2, 0; 0, 0, 0, 3; 0, 0, 0, 0]), 1), int8([1; 2; 3])); %!assert(diag (int8([0, 0, 0, 0; 1, 0, 0, 0; 0, 2, 0, 0; 0, 0, 3, 0]), -1), int8([1; 2; 3])); + %% Test input validation %!error diag (); + %!error diag (1,2,3,4); + %!error diag (ones (2), 3, 3); + %!error diag (1:3, -4, 3); */ *************** *** 1671,1678 **** DEFUN (horzcat, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} horzcat (@var{array1}, @var{array2}, @dots{}, @var{arrayN})\n\ ! Return the horizontal concatenation of N-d array objects, @var{array1},\n\ @var{array2}, @dots{}, @var{arrayN} along dimension 2.\n\ @seealso{cat, vertcat}\n\ @end deftypefn") { --- 1703,1717 ---- DEFUN (horzcat, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} horzcat (@var{array1}, @var{array2}, @dots{}, @var{arrayN})\n\ ! Return the horizontal concatenation of N-D array objects, @var{array1},\n\ @var{array2}, @dots{}, @var{arrayN} along dimension 2.\n\ + \n\ + Arrays may also be concatenated horizontally using the syntax for creating\n\ + new matrices. For example:\n\ + \n\ + @example\n\ + @var{hcat} = [ @var{array1}, @var{array2}, @dots{} ];\n\ + @end example\n\ @seealso{cat, vertcat}\n\ @end deftypefn") { *************** *** 1682,1689 **** DEFUN (vertcat, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} vertcat (@var{array1}, @var{array2}, @dots{}, @var{arrayN})\n\ ! Return the vertical concatenation of N-d array objects, @var{array1},\n\ @var{array2}, @dots{}, @var{arrayN} along dimension 1.\n\ @seealso{cat, horzcat}\n\ @end deftypefn") { --- 1721,1735 ---- DEFUN (vertcat, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} vertcat (@var{array1}, @var{array2}, @dots{}, @var{arrayN})\n\ ! Return the vertical concatenation of N-D array objects, @var{array1},\n\ @var{array2}, @dots{}, @var{arrayN} along dimension 1.\n\ + \n\ + Arrays may also be concatenated vertically using the syntax for creating\n\ + new matrices. For example:\n\ + \n\ + @example\n\ + @var{vcat} = [ @var{array1}; @var{array2}; @dots{} ];\n\ + @end example\n\ @seealso{cat, horzcat}\n\ @end deftypefn") { *************** *** 1693,1699 **** DEFUN (cat, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} cat (@var{dim}, @var{array1}, @var{array2}, @dots{}, @var{arrayN})\n\ ! Return the concatenation of N-d array objects, @var{array1},\n\ @var{array2}, @dots{}, @var{arrayN} along dimension @var{dim}.\n\ \n\ @example\n\ --- 1739,1745 ---- DEFUN (cat, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} cat (@var{dim}, @var{array1}, @var{array2}, @dots{}, @var{arrayN})\n\ ! Return the concatenation of N-D array objects, @var{array1},\n\ @var{array2}, @dots{}, @var{arrayN} along dimension @var{dim}.\n\ \n\ @example\n\ *************** *** 1701,1710 **** A = ones (2, 2);\n\ B = zeros (2, 2);\n\ cat (2, A, B)\n\ ! @result{} ans =\n\ ! \n\ ! 1 1 0 0\n\ ! 1 1 0 0\n\ @end group\n\ @end example\n\ \n\ --- 1747,1754 ---- A = ones (2, 2);\n\ B = zeros (2, 2);\n\ cat (2, A, B)\n\ ! @result{} 1 1 0 0\n\ ! 1 1 0 0\n\ @end group\n\ @end example\n\ \n\ *************** *** 1717,1739 **** @end group\n\ @end example\n\ \n\ ! @var{dim} can be larger than the dimensions of the N-d array objects\n\ and the result will thus have @var{dim} dimensions as the\n\ following example shows:\n\ \n\ @example\n\ @group\n\ ! cat (4, ones(2, 2), zeros (2, 2))\n\ ! @result{} ans =\n\ \n\ ! ans(:,:,1,1) =\n\ \n\ ! 1 1\n\ ! 1 1\n\ \n\ ! ans(:,:,1,2) =\n\ ! 0 0\n\ ! 0 0\n\ @end group\n\ @end example\n\ @seealso{horzcat, vertcat}\n\ --- 1761,1783 ---- @end group\n\ @end example\n\ \n\ ! @var{dim} can be larger than the dimensions of the N-D array objects\n\ and the result will thus have @var{dim} dimensions as the\n\ following example shows:\n\ \n\ @example\n\ @group\n\ ! cat (4, ones (2, 2), zeros (2, 2))\n\ ! @result{} ans =\n\ \n\ ! ans(:,:,1,1) =\n\ \n\ ! 1 1\n\ ! 1 1\n\ \n\ ! ans(:,:,1,2) =\n\ ! 0 0\n\ ! 0 0\n\ @end group\n\ @end example\n\ @seealso{horzcat, vertcat}\n\ *************** *** 1750,1759 **** if (dim >= 0) retval = do_cat (args.slice (1, args.length () - 1), dim, "cat"); else ! error ("cat: invalid dimension specified"); } else ! error ("cat: expecting first argument to be a integer"); } else print_usage (); --- 1794,1803 ---- if (dim >= 0) retval = do_cat (args.slice (1, args.length () - 1), dim, "cat"); else ! error ("cat: DIM must be a valid dimension"); } else ! error ("cat: DIM must be an integer"); } else print_usage (); *************** *** 1931,1940 **** DEFUN (permute, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} permute (@var{a}, @var{perm})\n\ ! Return the generalized transpose for an N-d array object @var{a}.\n\ The permutation vector @var{perm} must contain the elements\n\ ! @code{1:ndims(a)} (in any order, but each element must appear just once).\n\ @seealso{ipermute}\n\ @end deftypefn") { --- 1975,1984 ---- DEFUN (permute, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} permute (@var{A}, @var{perm})\n\ ! Return the generalized transpose for an N-D array object @var{A}.\n\ The permutation vector @var{perm} must contain the elements\n\ ! @code{1:ndims(A)} (in any order, but each element must appear only once).\n\ @seealso{ipermute}\n\ @end deftypefn") { *************** *** 1943,1957 **** DEFUN (ipermute, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} ipermute (@var{a}, @var{iperm})\n\ The inverse of the @code{permute} function. The expression\n\ \n\ @example\n\ ! ipermute (permute (a, perm), perm)\n\ @end example\n\ \n\ @noindent\n\ ! returns the original array @var{a}.\n\ @seealso{permute}\n\ @end deftypefn") { --- 1987,2001 ---- DEFUN (ipermute, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} ipermute (@var{A}, @var{iperm})\n\ The inverse of the @code{permute} function. The expression\n\ \n\ @example\n\ ! ipermute (permute (A, perm), perm)\n\ @end example\n\ \n\ @noindent\n\ ! returns the original array @var{A}.\n\ @seealso{permute}\n\ @end deftypefn") { *************** *** 2039,2045 **** "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} size (@var{a})\n\ @deftypefnx {Built-in Function} {} size (@var{a}, @var{dim})\n\ ! Return the number rows and columns of @var{a}.\n\ \n\ With one input argument and one output argument, the result is returned\n\ in a row vector. If there are multiple output arguments, the number of\n\ --- 2083,2089 ---- "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} size (@var{a})\n\ @deftypefnx {Built-in Function} {} size (@var{a}, @var{dim})\n\ ! Return the number of rows and columns of @var{a}.\n\ \n\ With one input argument and one output argument, the result is returned\n\ in a row vector. If there are multiple output arguments, the number of\n\ *************** *** 2104,2110 **** octave_idx_type nd = args(1).int_value (true); if (error_state) ! error ("size: expecting scalar as second argument"); else { const dim_vector dv = args(0).dims (); --- 2148,2154 ---- octave_idx_type nd = args(1).int_value (true); if (error_state) ! error ("size: DIM must be a scalar"); else { const dim_vector dv = args(0).dims (); *************** *** 2117,2123 **** retval(0) = 1; } else ! error ("size: requested dimension (= %d) out of range", nd); } } else --- 2161,2167 ---- retval(0) = 1; } else ! error ("size: requested dimension DIM (= %d) out of range", nd); } } else *************** *** 2255,2261 **** @end group\n\ @end example\n\ \n\ - \n\ On the contrary, if 'double' is given, the sum is performed in double\n\ precision even for single precision inputs.\n\ \n\ --- 2299,2304 ---- *************** *** 2303,2309 **** { dim = args(1).int_value () - 1; if (dim < 0) ! error ("sum: invalid dimension argument = %d", dim + 1); } if (! error_state) --- 2346,2352 ---- { dim = args(1).int_value () - 1; if (dim < 0) ! error ("sum: invalid dimension DIM = %d", dim + 1); } if (! error_state) *************** *** 3419,3446 **** DEFUN (ones, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} ones (@var{x})\n\ ! @deftypefnx {Built-in Function} {} ones (@var{n}, @var{m})\n\ ! @deftypefnx {Built-in Function} {} ones (@var{n}, @var{m}, @var{k}, @dots{})\n\ @deftypefnx {Built-in Function} {} ones (@dots{}, @var{class})\n\ Return a matrix or N-dimensional array whose elements are all 1.\n\ ! If invoked with a single scalar integer argument, return a square\n\ ! matrix of the specified size. If invoked with two or more scalar\n\ integer arguments, or a vector of integer values, return an array with\n\ ! given dimensions.\n\ \n\ If you need to create a matrix whose values are all the same, you should\n\ use an expression like\n\ \n\ @example\n\ ! val_matrix = val * ones (n, m)\n\ @end example\n\ \n\ The optional argument @var{class} specifies the class of the return array\n\ and defaults to double. For example:\n\ \n\ @example\n\ ! val = ones (n,m, \"uint8\")\n\ @end example\n\ @seealso{zeros}\n\ @end deftypefn") --- 3462,3490 ---- DEFUN (ones, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} ones (@var{n})\n\ ! @deftypefnx {Built-in Function} {} ones (@var{m}, @var{n})\n\ ! @deftypefnx {Built-in Function} {} ones (@var{m}, @var{n}, @var{k}, @dots{})\n\ ! @deftypefnx {Built-in Function} {} ones ([@var{m} @var{n} @dots{}])\n\ @deftypefnx {Built-in Function} {} ones (@dots{}, @var{class})\n\ Return a matrix or N-dimensional array whose elements are all 1.\n\ ! If invoked with a single scalar integer argument @var{n}, return a square\n\ ! @nospell{NxN} matrix. If invoked with two or more scalar\n\ integer arguments, or a vector of integer values, return an array with\n\ ! the given dimensions.\n\ \n\ If you need to create a matrix whose values are all the same, you should\n\ use an expression like\n\ \n\ @example\n\ ! val_matrix = val * ones (m, n)\n\ @end example\n\ \n\ The optional argument @var{class} specifies the class of the return array\n\ and defaults to double. For example:\n\ \n\ @example\n\ ! val = ones (m,n, \"uint8\")\n\ @end example\n\ @seealso{zeros}\n\ @end deftypefn") *************** *** 3469,3489 **** DEFUN (zeros, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} zeros (@var{x})\n\ ! @deftypefnx {Built-in Function} {} zeros (@var{n}, @var{m})\n\ ! @deftypefnx {Built-in Function} {} zeros (@var{n}, @var{m}, @var{k}, @dots{})\n\ @deftypefnx {Built-in Function} {} zeros (@dots{}, @var{class})\n\ Return a matrix or N-dimensional array whose elements are all 0.\n\ If invoked with a single scalar integer argument, return a square\n\ ! matrix of the specified size. If invoked with two or more scalar\n\ integer arguments, or a vector of integer values, return an array with\n\ ! given dimensions.\n\ \n\ The optional argument @var{class} specifies the class of the return array\n\ and defaults to double. For example:\n\ \n\ @example\n\ ! val = zeros (n,m, \"uint8\")\n\ @end example\n\ @seealso{ones}\n\ @end deftypefn") --- 3513,3534 ---- DEFUN (zeros, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} zeros (@var{n})\n\ ! @deftypefnx {Built-in Function} {} zeros (@var{m}, @var{n})\n\ ! @deftypefnx {Built-in Function} {} zeros (@var{m}, @var{n}, @var{k}, @dots{})\n\ ! @deftypefnx {Built-in Function} {} zeros ([@var{m} @var{n} @dots{}])\n\ @deftypefnx {Built-in Function} {} zeros (@dots{}, @var{class})\n\ Return a matrix or N-dimensional array whose elements are all 0.\n\ If invoked with a single scalar integer argument, return a square\n\ ! @nospell{NxN} matrix. If invoked with two or more scalar\n\ integer arguments, or a vector of integer values, return an array with\n\ ! the given dimensions.\n\ \n\ The optional argument @var{class} specifies the class of the return array\n\ and defaults to double. For example:\n\ \n\ @example\n\ ! val = zeros (m,n, \"uint8\")\n\ @end example\n\ @seealso{ones}\n\ @end deftypefn") *************** *** 4099,4112 **** DEFUN (eye, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} eye (@var{x})\n\ ! @deftypefnx {Built-in Function} {} eye (@var{n}, @var{m})\n\ @deftypefnx {Built-in Function} {} eye (@dots{}, @var{class})\n\ ! Return an identity matrix. If invoked with a single scalar argument,\n\ ! @code{eye} returns a square matrix with the dimension specified. If you\n\ ! supply two scalar arguments, @code{eye} takes them to be the number of\n\ ! rows and columns. If given a vector with two elements, @code{eye} uses\n\ ! the values of the elements as the number of rows and columns,\n\ respectively. For example:\n\ \n\ @example\n\ --- 4144,4158 ---- DEFUN (eye, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} eye (@var{n})\n\ ! @deftypefnx {Built-in Function} {} eye (@var{m}, @var{n})\n\ ! @deftypefnx {Built-in Function} {} eye ([@var{m} @var{n}])\n\ @deftypefnx {Built-in Function} {} eye (@dots{}, @var{class})\n\ ! Return an identity matrix. If invoked with a single scalar argument @var{n},\n\ ! return a square @nospell{NxN} identity matrix. If\n\ ! supplied two scalar arguments (@var{m}, @var{n}), @code{eye} takes them to be\n\ ! the number of rows and columns. If given a vector with two elements,\n\ ! @code{eye} uses the values of the elements as the number of rows and columns,\n\ respectively. For example:\n\ \n\ @example\n\ *************** *** 4140,4145 **** --- 4186,4192 ---- Calling @code{eye} with no arguments is equivalent to calling it\n\ with an argument of 1. This odd definition is for compatibility\n\ with @sc{matlab}.\n\ + @seealso{speye}\n\ @end deftypefn") { octave_value retval; *************** *** 4257,4276 **** DEFUN (linspace, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} linspace (@var{base}, @var{limit}, @var{n})\n\ Return a row vector with @var{n} linearly spaced elements between\n\ @var{base} and @var{limit}. If the number of elements is greater than one,\n\ ! then the @var{base} and @var{limit} are always included in\n\ the range. If @var{base} is greater than @var{limit}, the elements are\n\ stored in decreasing order. If the number of points is not specified, a\n\ value of 100 is used.\n\ \n\ The @code{linspace} function always returns a row vector if both\n\ ! @var{base} and @var{limit} are scalars. If one of them or both are column\n\ vectors, @code{linspace} returns a matrix.\n\ \n\ ! For compatibility with @sc{matlab}, return the second argument if\n\ ! fewer than two values are requested.\n\ @end deftypefn") { octave_value retval; --- 4304,4324 ---- DEFUN (linspace, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} linspace (@var{base}, @var{limit})\n\ ! @deftypefnx {Built-in Function} {} linspace (@var{base}, @var{limit}, @var{n})\n\ Return a row vector with @var{n} linearly spaced elements between\n\ @var{base} and @var{limit}. If the number of elements is greater than one,\n\ ! then the endpoints @var{base} and @var{limit} are always included in\n\ the range. If @var{base} is greater than @var{limit}, the elements are\n\ stored in decreasing order. If the number of points is not specified, a\n\ value of 100 is used.\n\ \n\ The @code{linspace} function always returns a row vector if both\n\ ! @var{base} and @var{limit} are scalars. If one, or both, of them are column\n\ vectors, @code{linspace} returns a matrix.\n\ \n\ ! For compatibility with @sc{matlab}, return the second argument (@var{limit})\n\ ! if fewer than two values are requested.\n\ @end deftypefn") { octave_value retval; *************** *** 4310,4316 **** } } else ! error ("linspace: expecting third argument to be an integer"); return retval; } --- 4358,4364 ---- } } else ! error ("linspace: N must be an integer"); return retval; } *************** *** 4343,4350 **** DEFUN (resize, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} resize (@var{x}, @var{m})\n\ - @deftypefnx {Built-in Function} {} resize (@var{x}, @var{m}, @var{n})\n\ @deftypefnx {Built-in Function} {} resize (@var{x}, @var{m}, @var{n}, @dots{})\n\ Resize @var{x} cutting off elements as necessary.\n\ \n\ In the result, element with certain indices is equal to the corresponding\n\ --- 4391,4398 ---- DEFUN (resize, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} resize (@var{x}, @var{m})\n\ @deftypefnx {Built-in Function} {} resize (@var{x}, @var{m}, @var{n}, @dots{})\n\ + @deftypefnx {Built-in Function} {} resize (@var{x}, [@var{m} @var{n} @dots{}])\n\ Resize @var{x} cutting off elements as necessary.\n\ \n\ In the result, element with certain indices is equal to the corresponding\n\ *************** *** 4372,4382 **** @noindent\n\ but is performed more efficiently.\n\ \n\ ! If only @var{m} is supplied and it is a scalar, the dimension of the\n\ ! result is @var{m}-by-@var{m}. If @var{m} is a vector, then the\n\ ! dimensions of the result are given by the elements of @var{m}.\n\ ! If both @var{m} and @var{n} are scalars, then the dimensions of\n\ ! the result are @var{m}-by-@var{n}.\n\ \n\ An object can be resized to more dimensions than it has;\n\ in such case the missing dimensions are assumed to be 1.\n\ --- 4420,4431 ---- @noindent\n\ but is performed more efficiently.\n\ \n\ ! If only @var{m} is supplied, and it is a scalar, the dimension of the\n\ ! result is @var{m}-by-@var{m}.\n\ ! If @var{m}, @var{n}, @dots{} are all scalars, then the dimensions of\n\ ! the result are @var{m}-by-@var{n}-by-@dots{}.\n\ ! If given a vector as input, then the\n\ ! dimensions of the result are given by the elements of that vector.\n\ \n\ An object can be resized to more dimensions than it has;\n\ in such case the missing dimensions are assumed to be 1.\n\ *************** *** 4429,4441 **** DEFUN (reshape, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} reshape (@var{a}, @var{m}, @var{n}, @dots{})\n\ ! @deftypefnx {Built-in Function} {} reshape (@var{a}, @var{size})\n\ ! Return a matrix with the given dimensions whose elements are taken\n\ ! from the matrix @var{a}. The elements of the matrix are accessed in\n\ ! column-major order (like Fortran arrays are stored).\n\ \n\ ! For example:\n\ \n\ @example\n\ @group\n\ --- 4478,4493 ---- DEFUN (reshape, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} reshape (@var{A}, @var{m}, @var{n}, @dots{})\n\ ! @deftypefnx {Built-in Function} {} reshape (@var{A}, [@var{m} @var{n} @dots{}])\n\ ! @deftypefnx {Built-in Function} {} reshape (@var{A}, @dots{}, [], @dots{})\n\ ! @deftypefnx {Built-in Function} {} reshape (@var{A}, @var{size})\n\ ! Return a matrix with the specified dimensions (@var{m}, @var{n}, @dots{})\n\ ! whose elements are taken from the matrix @var{A}. The elements of the\n\ ! matrix are accessed in column-major order (like Fortran arrays are stored).\n\ \n\ ! The following code demonstrates reshaping a 1x4 row vector into a 2x2 square\n\ ! matrix.\n\ \n\ @example\n\ @group\n\ *************** *** 4447,4456 **** \n\ @noindent\n\ Note that the total number of elements in the original\n\ ! matrix must match the total number of elements in the new matrix.\n\ \n\ ! A single dimension of the return matrix can be unknown and is flagged\n\ ! by an empty argument.\n\ @end deftypefn") { octave_value retval; --- 4499,4511 ---- \n\ @noindent\n\ Note that the total number of elements in the original\n\ ! matrix (@code{prod (size (@var{A}))}) must match the total number of elements\n\ ! in the new matrix (@code{prod ([@var{m} @var{n} @dots{}])}).\n\ \n\ ! A single dimension of the return matrix may be left unspecified and Octave\n\ ! will determine its size automatically. An empty matrix ([]) is used to flag\n\ ! the unspecified dimension.\n\ ! @seealso{resize}\n\ @end deftypefn") { octave_value retval; *************** *** 4469,4475 **** { if (new_size(i) < 0) { ! error ("reshape: size must be nonnegative"); break; } else --- 4524,4530 ---- { if (new_size(i) < 0) { ! error ("reshape: SIZE must be non-negative"); break; } else *************** *** 4504,4510 **** break; else if (new_dims(i-1) < 0) { ! error ("reshape: size must be nonnegative"); break; } } --- 4559,4565 ---- break; else if (new_dims(i-1) < 0) { ! error ("reshape: SIZE must be non-negative"); break; } } *************** *** 4522,4528 **** octave_idx_type size_empty_dim = a_nel / nel; if (a_nel != size_empty_dim * nel) ! error ("reshape: size is not divisible by the product of known dimensions (= %d)", nel); else new_dims(empty_dim-1) = size_empty_dim; } --- 4577,4583 ---- octave_idx_type size_empty_dim = a_nel / nel; if (a_nel != size_empty_dim * nel) ! error ("reshape: SIZE is not divisible by the product of known dimensions (= %d)", nel); else new_dims(empty_dim-1) = size_empty_dim; } *************** *** 4563,4575 **** DEFUN (vec, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} @var{v} = vec (@var{x})\n\ ! @deftypefnx {Built-in Function} {} @var{v} = vec (@var{x}, @var{dim})\n\ Return the vector obtained by stacking the columns of the matrix @var{x}\n\ one above the other. Without @var{dim} this is equivalent to\n\ @code{@var{x}(:)}. If @var{dim} is supplied, the dimensions of @var{v}\n\ are set to @var{dim} with all elements along the last dimension.\n\ This is equivalent to @code{shiftdim (@var{x}(:), 1-@var{dim})}.\n\ @end deftypefn") { octave_value retval; --- 4618,4631 ---- DEFUN (vec, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {@var{v} =} vec (@var{x})\n\ ! @deftypefnx {Built-in Function} {@var{v} =} vec (@var{x}, @var{dim})\n\ Return the vector obtained by stacking the columns of the matrix @var{x}\n\ one above the other. Without @var{dim} this is equivalent to\n\ @code{@var{x}(:)}. If @var{dim} is supplied, the dimensions of @var{v}\n\ are set to @var{dim} with all elements along the last dimension.\n\ This is equivalent to @code{shiftdim (@var{x}(:), 1-@var{dim})}.\n\ + @seealso{vech}\n\ @end deftypefn") { octave_value retval; *************** *** 4585,4591 **** dim = args(1).idx_type_value (); if (dim < 1) ! error ("vec: dim must greater than zero"); } if (! error_state) --- 4641,4647 ---- dim = args(1).idx_type_value (); if (dim < 1) ! error ("vec: DIM must be greater than zero"); } if (! error_state) *************** *** 4649,4655 **** DEFUN (full, args, , "-*- texinfo -*-\n\ @deftypefn {Loadable Function} {@var{FM} =} full (@var{SM})\n\ ! returns a full storage matrix from a sparse, diagonal, permutation matrix\n\ or a range.\n\ @seealso{sparse}\n\ @end deftypefn") --- 4705,4711 ---- DEFUN (full, args, , "-*- texinfo -*-\n\ @deftypefn {Loadable Function} {@var{FM} =} full (@var{SM})\n\ ! Return a full storage matrix from a sparse, diagonal, permutation matrix\n\ or a range.\n\ @seealso{sparse}\n\ @end deftypefn") *************** *** 4668,4718 **** DEFUN (norm, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} norm (@var{a})\n\ ! @deftypefnx {Built-in Function} {} norm (@var{a}, @var{p})\n\ ! @deftypefnx {Built-in Function} {} norm (@var{a}, @var{p}, @var{opt})\n\ ! Compute the p-norm of the matrix @var{a}. If the second argument is\n\ missing, @code{p = 2} is assumed.\n\ \n\ ! If @var{a} is a matrix (or sparse matrix):\n\ \n\ @table @asis\n\ @item @var{p} = @code{1}\n\ ! 1-norm, the largest column sum of the absolute values of @var{a}.\n\ \n\ @item @var{p} = @code{2}\n\ ! Largest singular value of @var{a}.\n\ \n\ @item @var{p} = @code{Inf} or @code{\"inf\"}\n\ @cindex infinity norm\n\ ! Infinity norm, the largest row sum of the absolute values of @var{a}.\n\ \n\ @item @var{p} = @code{\"fro\"}\n\ @cindex Frobenius norm\n\ ! Frobenius norm of @var{a}, @code{sqrt (sum (diag (@var{a}' * @var{a})))}.\n\ \n\ @item other @var{p}, @code{@var{p} > 1}\n\ ! @cindex general p-norm \n\ maximum @code{norm (A*x, p)} such that @code{norm (x, p) == 1}\n\ @end table\n\ \n\ ! If @var{a} is a vector or a scalar:\n\ \n\ @table @asis\n\ @item @var{p} = @code{Inf} or @code{\"inf\"}\n\ ! @code{max (abs (@var{a}))}.\n\ \n\ @item @var{p} = @code{-Inf}\n\ ! @code{min (abs (@var{a}))}.\n\ \n\ @item @var{p} = @code{\"fro\"}\n\ ! Frobenius norm of @var{a}, @code{sqrt (sumsq (abs (a)))}.\n\ \n\ @item @var{p} = 0\n\ Hamming norm - the number of nonzero elements.\n\ \n\ @item other @var{p}, @code{@var{p} > 1}\n\ ! p-norm of @var{a}, @code{(sum (abs (@var{a}) .^ @var{p})) ^ (1/@var{p})}.\n\ \n\ @item other @var{p} @code{@var{p} < 1}\n\ the p-pseudonorm defined as above.\n\ --- 4724,4774 ---- DEFUN (norm, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} norm (@var{A})\n\ ! @deftypefnx {Built-in Function} {} norm (@var{A}, @var{p})\n\ ! @deftypefnx {Built-in Function} {} norm (@var{A}, @var{p}, @var{opt})\n\ ! Compute the p-norm of the matrix @var{A}. If the second argument is\n\ missing, @code{p = 2} is assumed.\n\ \n\ ! If @var{A} is a matrix (or sparse matrix):\n\ \n\ @table @asis\n\ @item @var{p} = @code{1}\n\ ! 1-norm, the largest column sum of the absolute values of @var{A}.\n\ \n\ @item @var{p} = @code{2}\n\ ! Largest singular value of @var{A}.\n\ \n\ @item @var{p} = @code{Inf} or @code{\"inf\"}\n\ @cindex infinity norm\n\ ! Infinity norm, the largest row sum of the absolute values of @var{A}.\n\ \n\ @item @var{p} = @code{\"fro\"}\n\ @cindex Frobenius norm\n\ ! Frobenius norm of @var{A}, @code{sqrt (sum (diag (@var{A}' * @var{A})))}.\n\ \n\ @item other @var{p}, @code{@var{p} > 1}\n\ ! @cindex general p-norm\n\ maximum @code{norm (A*x, p)} such that @code{norm (x, p) == 1}\n\ @end table\n\ \n\ ! If @var{A} is a vector or a scalar:\n\ \n\ @table @asis\n\ @item @var{p} = @code{Inf} or @code{\"inf\"}\n\ ! @code{max (abs (@var{A}))}.\n\ \n\ @item @var{p} = @code{-Inf}\n\ ! @code{min (abs (@var{A}))}.\n\ \n\ @item @var{p} = @code{\"fro\"}\n\ ! Frobenius norm of @var{A}, @code{sqrt (sumsq (abs (A)))}.\n\ \n\ @item @var{p} = 0\n\ Hamming norm - the number of nonzero elements.\n\ \n\ @item other @var{p}, @code{@var{p} > 1}\n\ ! p-norm of @var{A}, @code{(sum (abs (@var{A}) .^ @var{p})) ^ (1/@var{p})}.\n\ \n\ @item other @var{p} @code{@var{p} < 1}\n\ the p-pseudonorm defined as above.\n\ *************** *** 4857,4863 **** @deftypefn {Built-in Function} {} not (@var{x})\n\ Return the logical NOT of @var{x}. This function is equivalent to\n\ @code{! x}.\n\ ! @seealso{and, or}\n\ @end deftypefn") { return unary_op_defun_body (octave_value::op_not, args); --- 4913,4919 ---- @deftypefn {Built-in Function} {} not (@var{x})\n\ Return the logical NOT of @var{x}. This function is equivalent to\n\ @code{! x}.\n\ ! @seealso{and, or, xor}\n\ @end deftypefn") { return unary_op_defun_body (octave_value::op_not, args); *************** *** 5200,5206 **** @end example\n\ \n\ At least one argument is required.\n\ ! @seealso{or, not}\n\ @end deftypefn") { return binary_assoc_op_defun_body (octave_value::op_el_and, --- 5256,5262 ---- @end example\n\ \n\ At least one argument is required.\n\ ! @seealso{or, not, xor}\n\ @end deftypefn") { return binary_assoc_op_defun_body (octave_value::op_el_and, *************** *** 5221,5227 **** @end example\n\ \n\ At least one argument is required.\n\ ! @seealso{and, not}\n\ @end deftypefn") { return binary_assoc_op_defun_body (octave_value::op_el_or, --- 5277,5283 ---- @end example\n\ \n\ At least one argument is required.\n\ ! @seealso{and, not, xor}\n\ @end deftypefn") { return binary_assoc_op_defun_body (octave_value::op_el_or, *************** *** 5411,5417 **** @deftypefnx {Loadable Function} {[@var{s}, @var{i}] =} sort (@var{x}, @var{mode})\n\ @deftypefnx {Loadable Function} {[@var{s}, @var{i}] =} sort (@var{x}, @var{dim}, @var{mode})\n\ Return a copy of @var{x} with the elements arranged in increasing\n\ ! order. For matrices, @code{sort} orders the elements in each column.\n\ \n\ For example:\n\ \n\ --- 5467,5473 ---- @deftypefnx {Loadable Function} {[@var{s}, @var{i}] =} sort (@var{x}, @var{mode})\n\ @deftypefnx {Loadable Function} {[@var{s}, @var{i}] =} sort (@var{x}, @var{dim}, @var{mode})\n\ Return a copy of @var{x} with the elements arranged in increasing\n\ ! order. For matrices, @code{sort} orders the elements within columns\n\ \n\ For example:\n\ \n\ *************** *** 5424,5429 **** --- 5480,5490 ---- @end group\n\ @end example\n\ \n\ + If the optional argument @var{dim} is given, then the matrix is sorted\n\ + along the dimension defined by @var{dim}. The optional argument @code{mode}\n\ + defines the order in which the values will be sorted. Valid values of\n\ + @code{mode} are `ascend' or `descend'.\n\ + \n\ The @code{sort} function may also be used to produce a matrix\n\ containing the original row indices of the elements in the sorted\n\ matrix. For example:\n\ *************** *** 5440,5455 **** @end group\n\ @end example\n\ \n\ ! If the optional argument @var{dim} is given, then the matrix is sorted\n\ ! along the dimension defined by @var{dim}. The optional argument @code{mode}\n\ ! defines the order in which the values will be sorted. Valid values of\n\ ! @code{mode} are `ascend' or `descend'.\n\ \n\ ! For equal elements, the indices are such that the equal elements are listed\n\ ! in the order that appeared in the original list.\n\ \n\ The @code{sort} function may also be used to sort strings and cell arrays\n\ ! of strings, in which case the dictionary order of the strings is used.\n\ \n\ The algorithm used in @code{sort} is optimized for the sorting of partially\n\ ordered lists.\n\ --- 5501,5527 ---- @end group\n\ @end example\n\ \n\ ! For equal elements, the indices are such that equal elements are listed\n\ ! in the order in which they appeared in the original list.\n\ ! \n\ ! Sorting of complex entries is done first by magnitude (@code{abs (@var{z})})\n\ ! and for any ties by phase angle (@code{angle (z)}). For example:\n\ ! \n\ ! @example\n\ ! @group\n\ ! sort ([1+i; 1; 1-i])\n\ ! @result{} 1 + 0i\n\ ! 1 - 1i\n\ ! 1 + 1i\n\ ! @end group\n\ ! @end example\n\ \n\ ! NaN values are treated as being greater than any other value and are sorted\n\ ! to the end of the list.\n\ \n\ The @code{sort} function may also be used to sort strings and cell arrays\n\ ! of strings, in which case ASCII dictionary order (uppercase 'A' precedes\n\ ! lowercase 'a') of the strings is used.\n\ \n\ The algorithm used in @code{sort} is optimized for the sorting of partially\n\ ordered lists.\n\ *************** *** 5482,5488 **** smode = DESCENDING; else { ! error ("sort: mode must be either \"ascend\" or \"descend\""); return retval; } } --- 5554,5560 ---- smode = DESCENDING; else { ! error ("sort: MODE must be either \"ascend\" or \"descend\""); return retval; } } *************** *** 5500,5506 **** if (! args(2).is_string ()) { ! error ("sort: mode must be a string"); return retval; } std::string mode = args(2).string_value(); --- 5572,5578 ---- if (! args(2).is_string ()) { ! error ("sort: MODE must be a string"); return retval; } std::string mode = args(2).string_value(); *************** *** 5510,5516 **** smode = DESCENDING; else { ! error ("sort: mode must be either \"ascend\" or \"descend\""); return retval; } } --- 5582,5588 ---- smode = DESCENDING; else { ! error ("sort: MODE must be either \"ascend\" or \"descend\""); return retval; } } *************** *** 5525,5531 **** { if (dim < 0) { ! error ("sort: dim must be a valid dimension"); return retval; } } --- 5597,5603 ---- { if (dim < 0) { ! error ("sort: DIM must be a valid dimension"); return retval; } } *************** *** 5752,5758 **** smode = DESCENDING; else { ! error ("__sort_rows_idx__: mode must be either \"ascend\" or \"descend\""); return retval; } } --- 5824,5830 ---- smode = DESCENDING; else { ! error ("__sort_rows_idx__: MODE must be either \"ascend\" or \"descend\""); return retval; } } *************** *** 5792,5806 **** else if (mode == "either") smode = UNSORTED; else ! error ("issorted: expecting MODE to be \"ascending\", \"descending\", or \"either\""); return smode; } DEFUN (issorted, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} issorted (@var{a}, @var{mode})\n\ ! @deftypefnx {Built-in Function} {} issorted (@var{a}, @code{\"rows\"}, @var{mode})\n\ Return true if the array is sorted according to @var{mode}, which\n\ may be either \"ascending\", \"descending\", or \"either\". By default,\n\ @var{mode} is \"ascending\". NaNs are treated in the same manner as\n\ --- 5864,5879 ---- else if (mode == "either") smode = UNSORTED; else ! error ("issorted: MODE must be \"ascending\", \"descending\", or \"either\""); return smode; } DEFUN (issorted, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} issorted (@var{a})\n\ ! @deftypefnx {Built-in Function} {} issorted (@var{a}, @var{mode})\n\ ! @deftypefnx {Built-in Function} {} issorted (@var{a}, \"rows\", @var{mode})\n\ Return true if the array is sorted according to @var{mode}, which\n\ may be either \"ascending\", \"descending\", or \"either\". By default,\n\ @var{mode} is \"ascending\". NaNs are treated in the same manner as\n\ *************** *** 5860,5866 **** if (arg.ndims () == 2) retval = arg.is_sorted_rows (smode) != UNSORTED; else ! error ("issorted: needs a 2-dimensional object"); } else { --- 5933,5939 ---- if (arg.ndims () == 2) retval = arg.is_sorted_rows (smode) != UNSORTED; else ! error ("issorted: A must be a 2-dimensional object"); } else { *************** *** 5922,5928 **** \n\ nth_element encapsulates the C++ standard library algorithms nth_element and\n\ partial_sort. On average, the complexity of the operation is O(M*log(K)),\n\ ! where @code{M = size(@var{x}, @var{dim})} and @code{K = length (@var{n})}.\n\ This function is intended for cases where the ratio K/M is small; otherwise,\n\ it may be better to use @code{sort}.\n\ @seealso{sort, min, max}\n\ --- 5995,6002 ---- \n\ nth_element encapsulates the C++ standard library algorithms nth_element and\n\ partial_sort. On average, the complexity of the operation is O(M*log(K)),\n\ ! where @w{@code{M = size (@var{x}, @var{dim})}} and\n\ ! @w{@code{K = length (@var{n})}}.\n\ This function is intended for cases where the ratio K/M is small; otherwise,\n\ it may be better to use @code{sort}.\n\ @seealso{sort, min, max}\n\ *************** *** 5940,5946 **** { dim = args(2).int_value (true) - 1; if (dim < 0) ! error ("nth_element: dim must be a valid dimension"); } if (dim < 0) dim = argx.dims ().first_non_singleton (); --- 6014,6020 ---- { dim = args(2).int_value (true) - 1; if (dim < 0) ! error ("nth_element: DIM must be a valid dimension"); } if (dim < 0) dim = argx.dims ().first_non_singleton (); *************** *** 6260,6266 **** if ((! tscl && tval.dims () != dv) || (! fscl && fval.dims () != dv)) ! error ("merge: dimensions mismatch"); else { T *rv = retval.fortran_vec (); --- 6334,6340 ---- if ((! tscl && tval.dims () != dv) || (! fscl && fval.dims () != dv)) ! error ("merge: MASK, TVAL, and FVAL dimensions must match"); else { T *rv = retval.fortran_vec (); *************** *** 6324,6330 **** \n\ In the array mask case, both @var{tval} and @var{fval} must be either\n\ scalars or arrays with dimensions equal to @var{mask}. The result is\n\ ! constructed as follows: \n\ \n\ @example\n\ @group\n\ --- 6398,6404 ---- \n\ In the array mask case, both @var{tval} and @var{fval} must be either\n\ scalars or arrays with dimensions equal to @var{mask}. The result is\n\ ! constructed as follows:\n\ \n\ @example\n\ @group\n\ *************** *** 6536,6543 **** DEFUN (diff, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} diff (@var{x}, @var{k}, @var{dim})\n\ ! If @var{x} is a vector of length @var{n}, @code{diff (@var{x})} is the\n\ vector of first differences\n\ @tex\n\ $x_2 - x_1, \\ldots{}, x_n - x_{n-1}$.\n\ --- 6610,6619 ---- DEFUN (diff, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} diff (@var{x})\n\ ! @deftypefnx {Built-in Function} {} diff (@var{x}, @var{k})\n\ ! @deftypefnx {Built-in Function} {} diff (@var{x}, @var{k}, @var{dim})\n\ ! If @var{x} is a vector of length @math{n}, @code{diff (@var{x})} is the\n\ vector of first differences\n\ @tex\n\ $x_2 - x_1, \\ldots{}, x_n - x_{n-1}$.\n\ *************** *** 6552,6566 **** The second argument is optional. If supplied, @code{diff (@var{x},\n\ @var{k})}, where @var{k} is a non-negative integer, returns the\n\ @var{k}-th differences. It is possible that @var{k} is larger than\n\ ! then first non-singleton dimension of the matrix. In this case,\n\ @code{diff} continues to take the differences along the next\n\ non-singleton dimension.\n\ \n\ The dimension along which to take the difference can be explicitly\n\ ! stated with the optional variable @var{dim}. In this case the \n\ @var{k}-th order differences are calculated along this dimension.\n\ In the case where @var{k} exceeds @code{size (@var{x}, @var{dim})}\n\ ! then an empty matrix is returned.\n\ @end deftypefn") { int nargin = args.length (); --- 6628,6642 ---- The second argument is optional. If supplied, @code{diff (@var{x},\n\ @var{k})}, where @var{k} is a non-negative integer, returns the\n\ @var{k}-th differences. It is possible that @var{k} is larger than\n\ ! the first non-singleton dimension of the matrix. In this case,\n\ @code{diff} continues to take the differences along the next\n\ non-singleton dimension.\n\ \n\ The dimension along which to take the difference can be explicitly\n\ ! stated with the optional variable @var{dim}. In this case the\n\ @var{k}-th order differences are calculated along this dimension.\n\ In the case where @var{k} exceeds @code{size (@var{x}, @var{dim})}\n\ ! an empty matrix is returned.\n\ @end deftypefn") { int nargin = args.length (); *************** *** 6580,6595 **** if (args(1).is_scalar_type ()) order = args(1).idx_type_value (true, false); else if (! args(1).is_zero_by_zero ()) ! error ("order must be a scalar or []"); if (! error_state && order < 0) ! error ("order must be non-negative"); } if (nargin > 2) { dim = args(2).int_value (true, false); if (! error_state && (dim < 1 || dim > args(0).ndims ())) ! error ("needs a valid dimension"); else dim -= 1; } --- 6656,6671 ---- if (args(1).is_scalar_type ()) order = args(1).idx_type_value (true, false); else if (! args(1).is_zero_by_zero ()) ! error ("order K must be a scalar or []"); if (! error_state && order < 0) ! error ("order K must be non-negative"); } if (nargin > 2) { dim = args(2).int_value (true, false); if (! error_state && (dim < 1 || dim > args(0).ndims ())) ! error ("DIM must be a valid dimension"); else dim -= 1; } *************** *** 6633,6639 **** octave_idx_type k = rep(1, i); if (k < 0) { ! error ("repelems: second row must contain nonnegative numbers"); return retval; } --- 6709,6715 ---- octave_idx_type k = rep(1, i); if (k < 0) { ! error ("repelems: second row must contain non-negative numbers"); return retval; } *************** *** 6690,6696 **** return retval; else if (rm.rows () != 2 || rm.ndims () != 2) { ! error ("repelems: second argument must be a matrix with two rows"); return retval; } else --- 6766,6772 ---- return retval; else if (rm.rows () != 2 || rm.ndims () != 2) { ! error ("repelems: R must be a matrix with two rows"); return retval; } else *************** *** 6702,6708 **** octave_idx_type rx = rm(i); if (static_cast (rx) != rm(i)) { ! error ("repelems: a matrix of integers is expected"); return retval; } --- 6778,6784 ---- octave_idx_type rx = rm(i); if (static_cast (rx) != rm(i)) { ! error ("repelems: R must be a matrix of integers"); return retval; } diff -cNr octave-3.4.0/src/debug.cc octave-3.4.1/src/debug.cc *** octave-3.4.0/src/debug.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/debug.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 545,551 **** DEFUN (dbstatus, args, nargout, "-*- texinfo -*-\n\ @deftypefn {Loadable Function} {lst =} dbstatus (@var{func})\n\ ! Return a vector containing the lines on which a function has \n\ breakpoints set.\n\ @table @code\n\ @item func\n\ --- 545,551 ---- DEFUN (dbstatus, args, nargout, "-*- texinfo -*-\n\ @deftypefn {Loadable Function} {lst =} dbstatus (@var{func})\n\ ! Return a vector containing the lines on which a function has\n\ breakpoints set.\n\ @table @code\n\ @item func\n\ diff -cNr octave-3.4.0/src/defaults.h octave-3.4.1/src/defaults.h *** octave-3.4.0/src/defaults.h 2011-02-08 05:07:40.000000000 -0500 --- octave-3.4.1/src/defaults.h 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,214 **** - // defaults.h.in - /* - - Copyright (C) 1993-2011 John W. Eaton - - This file is part of Octave. - - Octave 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. - - Octave 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 Octave; see the file COPYING. If not, see - . - - */ - - #if !defined (octave_defaults_h) - #define octave_defaults_h 1 - - #include - - #include "pathsearch.h" - - #ifndef OCTAVE_CANONICAL_HOST_TYPE - #define OCTAVE_CANONICAL_HOST_TYPE "x86_64-unknown-linux-gnu" - #endif - - #ifndef OCTAVE_DEFAULT_PAGER - #define OCTAVE_DEFAULT_PAGER "less" - #endif - - #ifndef OCTAVE_ARCHLIBDIR - #define OCTAVE_ARCHLIBDIR "/usr/local/libexec/octave/3.4.0/exec/x86_64-unknown-linux-gnu" - #endif - - #ifndef OCTAVE_BINDIR - #define OCTAVE_BINDIR "/usr/local/bin" - #endif - - #ifndef OCTAVE_DATADIR - #define OCTAVE_DATADIR "/usr/local/share" - #endif - - #ifndef OCTAVE_DATAROOTDIR - #define OCTAVE_DATAROOTDIR "/usr/local/share" - #endif - - #ifndef OCTAVE_DOC_CACHE_FILE - #define OCTAVE_DOC_CACHE_FILE "/usr/local/share/octave/3.4.0/etc/doc-cache" - #endif - - #ifndef OCTAVE_EXEC_PREFIX - #define OCTAVE_EXEC_PREFIX "/usr/local" - #endif - - #ifndef OCTAVE_FCNFILEDIR - #define OCTAVE_FCNFILEDIR "/usr/local/share/octave/3.4.0/m" - #endif - - #ifndef OCTAVE_IMAGEDIR - #define OCTAVE_IMAGEDIR "/usr/local/share/octave/3.4.0/imagelib" - #endif - - #ifndef OCTAVE_INCLUDEDIR - #define OCTAVE_INCLUDEDIR "/usr/local/include" - #endif - - #ifndef OCTAVE_INFODIR - #define OCTAVE_INFODIR "/usr/local/share/info" - #endif - - #ifndef OCTAVE_INFOFILE - #define OCTAVE_INFOFILE "/usr/local/share/info/octave.info" - #endif - - #ifndef OCTAVE_LIBDIR - #define OCTAVE_LIBDIR "/usr/local/lib" - #endif - - #ifndef OCTAVE_LIBEXECDIR - #define OCTAVE_LIBEXECDIR "/usr/local/libexec" - #endif - - #ifndef OCTAVE_LIBEXECDIR - #define OCTAVE_LIBEXECDIR "/usr/local/libexec" - #endif - - #ifndef OCTAVE_LOCALAPIFCNFILEDIR - #define OCTAVE_LOCALAPIFCNFILEDIR "/usr/local/share/octave/site/api-v47+/m" - #endif - - #ifndef OCTAVE_LOCALAPIOCTFILEDIR - #define OCTAVE_LOCALAPIOCTFILEDIR "/usr/local/libexec/octave/site/oct/api-v47+/x86_64-unknown-linux-gnu" - #endif - - #ifndef OCTAVE_LOCALARCHLIBDIR - #define OCTAVE_LOCALARCHLIBDIR "/usr/local/libexec/octave/site/exec/x86_64-unknown-linux-gnu" - #endif - - #ifndef OCTAVE_LOCALFCNFILEDIR - #define OCTAVE_LOCALFCNFILEDIR "/usr/local/share/octave/site/m" - #endif - - #ifndef OCTAVE_LOCALOCTFILEDIR - #define OCTAVE_LOCALOCTFILEDIR "/usr/local/libexec/octave/site/oct/x86_64-unknown-linux-gnu" - #endif - - #ifndef OCTAVE_LOCALSTARTUPFILEDIR - #define OCTAVE_LOCALSTARTUPFILEDIR "/usr/local/share/octave/site/m/startup" - #endif - - #ifndef OCTAVE_LOCALAPIARCHLIBDIR - #define OCTAVE_LOCALAPIARCHLIBDIR "/usr/local/libexec/octave/api-v47+/site/exec/x86_64-unknown-linux-gnu" - #endif - - #ifndef OCTAVE_LOCALVERARCHLIBDIR - #define OCTAVE_LOCALVERARCHLIBDIR "/usr/local/libexec/octave/3.4.0/site/exec/x86_64-unknown-linux-gnu" - #endif - - #ifndef OCTAVE_LOCALVERFCNFILEDIR - #define OCTAVE_LOCALVERFCNFILEDIR "/usr/local/share/octave/3.4.0/site/m" - #endif - - #ifndef OCTAVE_LOCALVEROCTFILEDIR - #define OCTAVE_LOCALVEROCTFILEDIR "/usr/local/libexec/octave/3.4.0/site/oct/x86_64-unknown-linux-gnu" - #endif - - #ifndef OCTAVE_MAN1DIR - #define OCTAVE_MAN1DIR "/usr/local/share/man/man1" - #endif - - #ifndef OCTAVE_MAN1EXT - #define OCTAVE_MAN1EXT ".1" - #endif - - #ifndef OCTAVE_MANDIR - #define OCTAVE_MANDIR "/usr/local/share/man" - #endif - - #ifndef OCTAVE_OCTFILEDIR - #define OCTAVE_OCTFILEDIR "/usr/local/libexec/octave/3.4.0/oct/x86_64-unknown-linux-gnu" - #endif - - #ifndef OCTAVE_OCTETCDIR - #define OCTAVE_OCTETCDIR "/usr/local/share/octave/3.4.0/etc" - #endif - - #ifndef OCTAVE_OCTINCLUDEDIR - #define OCTAVE_OCTINCLUDEDIR "/usr/local/include/octave-3.4.0/octave" - #endif - - #ifndef OCTAVE_OCTLIBDIR - #define OCTAVE_OCTLIBDIR "/usr/local/lib/octave-3.4.0" - #endif - - #ifndef OCTAVE_PREFIX - #define OCTAVE_PREFIX "/usr/local" - #endif - - #ifndef OCTAVE_STARTUPFILEDIR - #define OCTAVE_STARTUPFILEDIR "/usr/local/share/octave/3.4.0/m/startup" - #endif - - #ifndef OCTAVE_RELEASE - #define OCTAVE_RELEASE "" - #endif - - extern std::string Voctave_home; - - extern std::string Vbin_dir; - extern std::string Vinfo_dir; - extern std::string Vdata_dir; - extern std::string Vlibexec_dir; - extern std::string Varch_lib_dir; - extern std::string Vlocal_arch_lib_dir; - extern std::string Vlocal_ver_arch_lib_dir; - - extern std::string Vlocal_ver_oct_file_dir; - extern std::string Vlocal_api_oct_file_dir; - extern std::string Vlocal_oct_file_dir; - - extern std::string Vlocal_ver_fcn_file_dir; - extern std::string Vlocal_api_fcn_file_dir; - extern std::string Vlocal_fcn_file_dir; - - extern std::string Voct_file_dir; - extern std::string Vfcn_file_dir; - - extern std::string Vimage_dir; - - // Name of the editor to be invoked by the edit_history command. - extern std::string VEDITOR; - - extern std::string Vlocal_site_defaults_file; - extern std::string Vsite_defaults_file; - - // Name of the FFTW wisdom program. - extern OCTINTERP_API std::string Vfftw_wisdom_program; - - extern std::string subst_octave_home (const std::string&); - - extern void install_defaults (void); - - extern void set_exec_path (const std::string& path = std::string ()); - extern void set_image_path (const std::string& path = std::string ()); - - #endif --- 0 ---- diff -cNr octave-3.4.0/src/dirfns.cc octave-3.4.1/src/dirfns.cc *** octave-3.4.0/src/dirfns.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/dirfns.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 283,289 **** DEFUNX ("rmdir", Frmdir, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {[@var{status}, @var{msg}, @var{msgid}] =} rmdir (@var{dir})\n\ ! @deftypefnx {Built-in Function} {[@var{status}, @var{msg}, @var{msgid}] =} rmdir (@var{dir}, @code{\"s\"})\n\ Remove the directory named @var{dir}.\n\ \n\ If successful, @var{status} is 1, with @var{msg} and @var{msgid} empty\n\ --- 283,289 ---- DEFUNX ("rmdir", Frmdir, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {[@var{status}, @var{msg}, @var{msgid}] =} rmdir (@var{dir})\n\ ! @deftypefnx {Built-in Function} {[@var{status}, @var{msg}, @var{msgid}] =} rmdir (@var{dir}, \"s\")\n\ Remove the directory named @var{dir}.\n\ \n\ If successful, @var{status} is 1, with @var{msg} and @var{msgid} empty\n\ *************** *** 545,551 **** @deftypefn {Built-in Function} {} glob (@var{pattern})\n\ Given an array of pattern strings (as a char array or a cell array) in\n\ @var{pattern}, return a cell array of file names that match any of\n\ ! them, or an empty cell array if no patterns match. The pattern strings are \n\ interpreted as filename globbing patterns (as they are used by Unix shells).\n\ Within a pattern\n\ @table @code\n\ --- 545,551 ---- @deftypefn {Built-in Function} {} glob (@var{pattern})\n\ Given an array of pattern strings (as a char array or a cell array) in\n\ @var{pattern}, return a cell array of file names that match any of\n\ ! them, or an empty cell array if no patterns match. The pattern strings are\n\ interpreted as filename globbing patterns (as they are used by Unix shells).\n\ Within a pattern\n\ @table @code\n\ *************** *** 565,571 **** @example\n\ ls\n\ @result{}\n\ ! file1 file2 file3 myfile1 myfile1b \n\ glob (\"*file1\")\n\ @result{}\n\ @{\n\ --- 565,571 ---- @example\n\ ls\n\ @result{}\n\ ! file1 file2 file3 myfile1 myfile1b\n\ glob (\"*file1\")\n\ @result{}\n\ @{\n\ *************** *** 686,693 **** \n\ If 'all' is given, the function returns all valid file separators in\n\ the form of a string. The list of file separators is system-dependent.\n\ ! It is @samp{/} (forward slash) under UNIX or Mac OS X, @samp{/} and @samp{\\}\n\ ! (forward and backward slashes) under Windows.\n\ @seealso{pathsep}\n\ @end deftypefn") { --- 686,693 ---- \n\ If 'all' is given, the function returns all valid file separators in\n\ the form of a string. The list of file separators is system-dependent.\n\ ! It is @samp{/} (forward slash) under UNIX or @w{Mac OS X}, @samp{/} and\n\ ! @samp{\\} (forward and backward slashes) under Windows.\n\ @seealso{pathsep}\n\ @end deftypefn") { diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/balance.cc octave-3.4.1/src/DLD-FUNCTIONS/balance.cc *** octave-3.4.0/src/DLD-FUNCTIONS/balance.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/balance.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 61,70 **** equilibration to be computed without round-off. Results of eigenvalue\n\ calculation are typically improved by balancing first.\n\ \n\ ! If two output values are requested, @code{balance} returns \n\ ! the diagonal @var{D} and the permutation @var{P} separately as vectors. \n\ ! In this case, @code{@var{DD} = eye(n)(:,@var{P}) * diag (@var{D})}, where n\n\ ! @t{n} is the matrix size. \n\ \n\ If four output values are requested, compute @code{@var{AA} =\n\ @var{CC}*@var{A}*@var{DD}} and @code{@var{BB} = @var{CC}*@var{B}*@var{DD}},\n\ --- 61,70 ---- equilibration to be computed without round-off. Results of eigenvalue\n\ calculation are typically improved by balancing first.\n\ \n\ ! If two output values are requested, @code{balance} returns\n\ ! the diagonal @var{D} and the permutation @var{P} separately as vectors.\n\ ! In this case, @code{@var{DD} = eye(n)(:,@var{P}) * diag (@var{D})}, where\n\ ! @math{n} is the matrix size.\n\ \n\ If four output values are requested, compute @code{@var{AA} =\n\ @var{CC}*@var{A}*@var{DD}} and @code{@var{BB} = @var{CC}*@var{B}*@var{DD}},\n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/besselj.cc octave-3.4.1/src/DLD-FUNCTIONS/besselj.cc *** octave-3.4.0/src/DLD-FUNCTIONS/besselj.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/besselj.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 387,393 **** \n\ @table @code\n\ @item besselj\n\ ! Bessel functions of the first kind. If the argument @var{opt} is supplied, \n\ the result is multiplied by @code{exp(-abs(imag(@var{x})))}.\n\ \n\ @item bessely\n\ --- 387,393 ---- \n\ @table @code\n\ @item besselj\n\ ! Bessel functions of the first kind. If the argument @var{opt} is supplied,\n\ the result is multiplied by @code{exp(-abs(imag(@var{x})))}.\n\ \n\ @item bessely\n\ *************** *** 589,595 **** error ("airy: expecting K = 0, 1, 2, or 3"); } else ! error ("airy: expecting integer value for K"); } if (! error_state) --- 589,595 ---- error ("airy: expecting K = 0, 1, 2, or 3"); } else ! error ("airy: K must be an integer value"); } if (! error_state) *************** *** 616,622 **** retval(0) = result; } else ! error ("airy: expecting complex matrix for Z"); } else { --- 616,622 ---- retval(0) = result; } else ! error ("airy: Z must be a complex matrix"); } else { *************** *** 638,644 **** retval(0) = result; } else ! error ("airy: expecting complex matrix for Z"); } } } --- 638,644 ---- retval(0) = result; } else ! error ("airy: Z must be a complex matrix"); } } } diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/betainc.cc octave-3.4.1/src/DLD-FUNCTIONS/betainc.cc *** octave-3.4.0/src/DLD-FUNCTIONS/betainc.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/betainc.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 35,44 **** DEFUN_DLD (betainc, args, , "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} betainc (@var{x}, @var{a}, @var{b})\n\ ! Return the incomplete Beta function,\n\ @tex\n\ $$\n\ ! \\beta (x, a, b) = B (a, b)^{-1} \\int_0^x t^{(a-z)} (1-t)^{(b-1)} dt.\n\ $$\n\ @end tex\n\ @ifnottex\n\ --- 35,44 ---- DEFUN_DLD (betainc, args, , "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} betainc (@var{x}, @var{a}, @var{b})\n\ ! Return the regularized incomplete Beta function,\n\ @tex\n\ $$\n\ ! I (x, a, b) = {1 \\over {B (a, b)}} \\int_0^x t^{(a-z)} (1-t)^{(b-1)} dt.\n\ $$\n\ @end tex\n\ @ifnottex\n\ *************** *** 46,56 **** \n\ @smallexample\n\ @group\n\ ! x\n\ ! /\n\ ! betainc (x, a, b) = beta (a, b)^(-1) | t^(a-1) (1-t)^(b-1) dt.\n\ ! /\n\ ! t=0\n\ @end group\n\ @end smallexample\n\ \n\ --- 46,57 ---- \n\ @smallexample\n\ @group\n\ ! @c spacing appears odd here, but is correct after Makeinfo\n\ ! x\n\ ! 1 /\n\ ! betainc (x, a, b) = ----------- | t^(a-1) (1-t)^(b-1) dt.\n\ ! beta (a, b) /\n\ ! t=0\n\ @end group\n\ @end smallexample\n\ \n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/bsxfun.cc octave-3.4.1/src/DLD-FUNCTIONS/bsxfun.cc *** octave-3.4.0/src/DLD-FUNCTIONS/bsxfun.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/bsxfun.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 313,321 **** "-*- texinfo -*-\n\ @deftypefn {Loadable Function} {} bsxfun (@var{f}, @var{A}, @var{B})\n\ Apply a binary function @var{f} element-by-element to two matrix arguments\n\ ! @var{A} and @var{B}. The function @var{f} must be capable of accepting\n\ ! two column-vector arguments of equal length, or one column vector\n\ ! argument and a scalar.\n\ \n\ The dimensions of @var{A} and @var{B} must be equal or singleton. The\n\ singleton dimensions of the matrices will be expanded to the same\n\ --- 313,322 ---- "-*- texinfo -*-\n\ @deftypefn {Loadable Function} {} bsxfun (@var{f}, @var{A}, @var{B})\n\ Apply a binary function @var{f} element-by-element to two matrix arguments\n\ ! @var{A} and @var{B}. @var{f} is a function handle, inline function, or\n\ ! string containing the name of the function to evaluate.\n\ ! The function @var{f} must be capable of accepting two column-vector\n\ ! arguments of equal length, or one column vector argument and a scalar.\n\ \n\ The dimensions of @var{A} and @var{B} must be equal or singleton. The\n\ singleton dimensions of the matrices will be expanded to the same\n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/cellfun.cc octave-3.4.1/src/DLD-FUNCTIONS/cellfun.cc *** octave-3.4.0/src/DLD-FUNCTIONS/cellfun.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/cellfun.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 159,165 **** endfunction\n\ [aa, bb] = cellfun(@@twoouts, @{1, 2, 3@})\n\ @result{}\n\ ! aa = \n\ 1 2 3\n\ bb =\n\ 1 4 9\n\ --- 159,165 ---- endfunction\n\ [aa, bb] = cellfun(@@twoouts, @{1, 2, 3@})\n\ @result{}\n\ ! aa =\n\ 1 2 3\n\ bb =\n\ 1 4 9\n\ *************** *** 214,220 **** if (nargin < 2) { ! error ("cellfun: you must supply at least 2 arguments"); print_usage (); return retval; } --- 214,220 ---- if (nargin < 2) { ! error ("cellfun: function requires at least 2 arguments"); print_usage (); return retval; } diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/colamd.cc octave-3.4.1/src/DLD-FUNCTIONS/colamd.cc *** octave-3.4.0/src/DLD-FUNCTIONS/colamd.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/colamd.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 232,238 **** @code{@var{knobs}(2)} are < 0, respectively. If @code{@var{knobs}(3)} is\n\ nonzero, @var{stats} and @var{knobs} are printed. The default is\n\ @code{@var{knobs} = [10 10 0]}. Note that @var{knobs} differs from earlier\n\ ! versions of colamd\n\ \n\ @var{stats} is an optional 20-element output vector that provides data\n\ about the ordering and the validity of the input matrix @var{S}. Ordering\n\ --- 232,238 ---- @code{@var{knobs}(2)} are < 0, respectively. If @code{@var{knobs}(3)} is\n\ nonzero, @var{stats} and @var{knobs} are printed. The default is\n\ @code{@var{knobs} = [10 10 0]}. Note that @var{knobs} differs from earlier\n\ ! versions of colamd.\n\ \n\ @var{stats} is an optional 20-element output vector that provides data\n\ about the ordering and the validity of the input matrix @var{S}. Ordering\n\ *************** *** 459,465 **** vector p such that @code{@var{S}(@var{p}, @var{p})} tends to have a\n\ sparser Cholesky@tie{}factor than @var{S}. Sometimes @code{symamd} works\n\ well for symmetric indefinite matrices too. The matrix @var{S} is assumed\n\ ! to be symmetric; only the strictly lower triangular part is referenced. \n\ @var{S} must be square.\n\ \n\ @var{knobs} is an optional one- to two-element input vector. If @var{S} is\n\ --- 459,465 ---- vector p such that @code{@var{S}(@var{p}, @var{p})} tends to have a\n\ sparser Cholesky@tie{}factor than @var{S}. Sometimes @code{symamd} works\n\ well for symmetric indefinite matrices too. The matrix @var{S} is assumed\n\ ! to be symmetric; only the strictly lower triangular part is referenced.\n\ @var{S} must be square.\n\ \n\ @var{knobs} is an optional one- to two-element input vector. If @var{S} is\n\ *************** *** 467,473 **** @code{max(16,@var{knobs}(1)*sqrt(n))} entries are removed prior to ordering,\n\ and ordered last in the output permutation @var{p}. No rows/columns are\n\ removed if @code{@var{knobs}(1) < 0}. If @code{@var{knobs} (2)} is nonzero,\n\ ! @code{stats} and @var{knobs} are printed. The default is @code{@var{knobs} \n\ = [10 0]}. Note that @var{knobs} differs from earlier versions of symamd.\n\ \n\ @var{stats} is an optional 20-element output vector that provides data\n\ --- 467,473 ---- @code{max(16,@var{knobs}(1)*sqrt(n))} entries are removed prior to ordering,\n\ and ordered last in the output permutation @var{p}. No rows/columns are\n\ removed if @code{@var{knobs}(1) < 0}. If @code{@var{knobs} (2)} is nonzero,\n\ ! @code{stats} and @var{knobs} are printed. The default is @code{@var{knobs}\n\ = [10 0]}. Note that @var{knobs} differs from earlier versions of symamd.\n\ \n\ @var{stats} is an optional 20-element output vector that provides data\n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/config-module.sh octave-3.4.1/src/DLD-FUNCTIONS/config-module.sh *** octave-3.4.0/src/DLD-FUNCTIONS/config-module.sh 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/config-module.sh 2011-06-15 11:11:27.000000000 -0400 *************** *** 10,17 **** top_srcdir="../.." fi dld_dir=$top_srcdir/src/DLD-FUNCTIONS $AWK -f $dld_dir/config-module.awk < $dld_dir/module-files > $dld_dir/module.mk-t ! $top_srcdir/move-if-change $dld_dir/module.mk-t $dld_dir/module.mk --- 10,19 ---- top_srcdir="../.." fi + move_if_change="$top_srcdir/build-aux/move-if-change" + dld_dir=$top_srcdir/src/DLD-FUNCTIONS $AWK -f $dld_dir/config-module.awk < $dld_dir/module-files > $dld_dir/module.mk-t ! $move_if_change $dld_dir/module.mk-t $dld_dir/module.mk diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/dmperm.cc octave-3.4.1/src/DLD-FUNCTIONS/dmperm.cc *** octave-3.4.0/src/DLD-FUNCTIONS/dmperm.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/dmperm.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 191,197 **** DEFUN_DLD (sprank, args, nargout, "-*- texinfo -*-\n\ @deftypefn {Loadable Function} {@var{p} =} sprank (@var{S})\n\ ! @cindex Structural Rank\n\ \n\ Calculate the structural rank of the sparse matrix @var{S}. Note that\n\ only the structure of the matrix is used in this calculation based on\n\ --- 191,197 ---- DEFUN_DLD (sprank, args, nargout, "-*- texinfo -*-\n\ @deftypefn {Loadable Function} {@var{p} =} sprank (@var{S})\n\ ! @cindex structural rank\n\ \n\ Calculate the structural rank of the sparse matrix @var{S}. Note that\n\ only the structure of the matrix is used in this calculation based on\n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/dot.cc octave-3.4.1/src/DLD-FUNCTIONS/dot.cc *** octave-3.4.0/src/DLD-FUNCTIONS/dot.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/dot.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 107,113 **** "-*- texinfo -*-\n\ @deftypefn {Loadable Function} {} dot (@var{x}, @var{y}, @var{dim})\n\ Compute the dot product of two vectors. If @var{x} and @var{y}\n\ ! are matrices, calculate the dot products along the first \n\ non-singleton dimension. If the optional argument @var{dim} is\n\ given, calculate the dot products along this dimension.\n\ \n\ --- 107,113 ---- "-*- texinfo -*-\n\ @deftypefn {Loadable Function} {} dot (@var{x}, @var{y}, @var{dim})\n\ Compute the dot product of two vectors. If @var{x} and @var{y}\n\ ! are matrices, calculate the dot products along the first\n\ non-singleton dimension. If the optional argument @var{dim} is\n\ given, calculate the dot products along this dimension.\n\ \n\ *************** *** 116,122 **** but avoids forming a temporary array and is faster. When @var{X} and\n\ @var{Y} are column vectors, the result is equivalent to\n\ @code{@var{X}' * @var{Y}}.\n\ ! @seealso{cross}\n\ @end deftypefn") { octave_value retval; --- 116,122 ---- but avoids forming a temporary array and is faster. When @var{X} and\n\ @var{Y} are column vectors, the result is equivalent to\n\ @code{@var{X}' * @var{Y}}.\n\ ! @seealso{cross, divergence}\n\ @end deftypefn") { octave_value retval; *************** *** 242,258 **** DEFUN_DLD (blkmm, args, , "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {} blkmm (@var{x}, @var{y})\n\ Compute products of matrix blocks. The blocks are given as\n\ ! 2-dimensional subarrays of the arrays @var{x}, @var{y}.\n\ ! The size of @var{x} must have the form @code{[m,k,@dots{}]} and\n\ ! size of @var{y} must be @code{[k,n,@dots{}]}. The result is\n\ then of size @code{[m,n,@dots{}]} and is computed as follows:\n\ \n\ @example\n\ @group\n\ ! for i = 1:prod (size (@var{x})(3:end))\n\ ! @var{z}(:,:,i) = @var{x}(:,:,i) * @var{y}(:,:,i)\n\ endfor\n\ @end group\n\ @end example\n\ --- 242,258 ---- DEFUN_DLD (blkmm, args, , "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {} blkmm (@var{A}, @var{B})\n\ Compute products of matrix blocks. The blocks are given as\n\ ! 2-dimensional subarrays of the arrays @var{A}, @var{B}.\n\ ! The size of @var{A} must have the form @code{[m,k,@dots{}]} and\n\ ! size of @var{B} must be @code{[k,n,@dots{}]}. The result is\n\ then of size @code{[m,n,@dots{}]} and is computed as follows:\n\ \n\ @example\n\ @group\n\ ! for i = 1:prod (size (@var{A})(3:end))\n\ ! @var{C}(:,:,i) = @var{A}(:,:,i) * @var{B}(:,:,i)\n\ endfor\n\ @end group\n\ @end example\n\ *************** *** 335,346 **** } } else ! error ("blkmm: X and Y dimensions don't match: (%s) and (%s)", dimx.str ().c_str (), dimy.str ().c_str ()); } else ! error ("blkmm: X and Y must be numeric"); return retval; } --- 335,346 ---- } } else ! error ("blkmm: A and B dimensions don't match: (%s) and (%s)", dimx.str ().c_str (), dimy.str ().c_str ()); } else ! error ("blkmm: A and B must be numeric"); return retval; } diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/eig.cc octave-3.4.1/src/DLD-FUNCTIONS/eig.cc *** octave-3.4.0/src/DLD-FUNCTIONS/eig.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/eig.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 39,49 **** @deftypefnx {Loadable Function} {@var{lambda} =} eig (@var{A}, @var{B})\n\ @deftypefnx {Loadable Function} {[@var{V}, @var{lambda}] =} eig (@var{A})\n\ @deftypefnx {Loadable Function} {[@var{V}, @var{lambda}] =} eig (@var{A}, @var{B})\n\ ! The eigenvalues (and eigenvectors) of a matrix are computed in a several\n\ ! step process which begins with a Hessenberg decomposition, followed by a\n\ ! Schur@tie{}decomposition, from which the eigenvalues are apparent. The\n\ ! eigenvectors, when desired, are computed by further manipulations of the\n\ ! Schur@tie{}decomposition.\n\ \n\ The eigenvalues returned by @code{eig} are not ordered.\n\ @seealso{eigs, svd}\n\ --- 39,50 ---- @deftypefnx {Loadable Function} {@var{lambda} =} eig (@var{A}, @var{B})\n\ @deftypefnx {Loadable Function} {[@var{V}, @var{lambda}] =} eig (@var{A})\n\ @deftypefnx {Loadable Function} {[@var{V}, @var{lambda}] =} eig (@var{A}, @var{B})\n\ ! Compute the eigenvalues and eigenvectors of a matrix.\n\ ! \n\ ! Eigenvalues are computed in a several step process which begins with a\n\ ! Hessenberg decomposition, followed by a Schur@tie{}decomposition, from which\n\ ! the eigenvalues are apparent. The eigenvectors, when desired, are computed\n\ ! by further manipulations of the Schur@tie{}decomposition.\n\ \n\ The eigenvalues returned by @code{eig} are not ordered.\n\ @seealso{eigs, svd}\n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/eigs.cc octave-3.4.1/src/DLD-FUNCTIONS/eigs.cc *** octave-3.4.0/src/DLD-FUNCTIONS/eigs.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/eigs.cc 2011-06-15 11:13:48.000000000 -0400 *************** *** 260,266 **** @end table\n\ It is also possible to represent @var{A} by a function denoted @var{af}.\n\ @var{af} must be followed by a scalar argument @var{n} defining the length\n\ ! of the vector argument accepted by @var{af}. @var{af} can be \n\ a function handle, an inline function, or a string. When @var{af} is a\n\ string it holds the name of the function to use.\n\ \n\ --- 260,266 ---- @end table\n\ It is also possible to represent @var{A} by a function denoted @var{af}.\n\ @var{af} must be followed by a scalar argument @var{n} defining the length\n\ ! of the vector argument accepted by @var{af}. @var{af} can be\n\ a function handle, an inline function, or a string. When @var{af} is a\n\ string it holds the name of the function to use.\n\ \n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/fftw.cc octave-3.4.1/src/DLD-FUNCTIONS/fftw.cc *** octave-3.4.0/src/DLD-FUNCTIONS/fftw.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/fftw.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 58,64 **** \n\ @example\n\ fftw ('dwisdom', @var{wisdom})\n\ ! @end example \n\ \n\ If @var{wisdom} is an empty matrix, then the wisdom used is cleared.\n\ \n\ --- 58,64 ---- \n\ @example\n\ fftw ('dwisdom', @var{wisdom})\n\ ! @end example\n\ \n\ If @var{wisdom} is an empty matrix, then the wisdom used is cleared.\n\ \n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/filter.cc octave-3.4.1/src/DLD-FUNCTIONS/filter.cc *** octave-3.4.0/src/DLD-FUNCTIONS/filter.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/filter.cc 2011-06-15 11:13:48.000000000 -0400 *************** *** 64,69 **** --- 64,73 ---- octave_idx_type ab_len = a_len > b_len ? a_len : b_len; + // FIXME: The two lines below should be unecessary because + // this template is called with a and b as column vectors + // already. However the a.resize line is currently (2011/04/26) + // necessary to stop bug #33164. b.resize (dim_vector (ab_len, 1), 0.0); if (a_len > 1) a.resize (dim_vector (ab_len, 1), 0.0); *************** *** 79,85 **** dim_vector x_dims = x.dims (); if (dim < 0 || dim > x_dims.length ()) { ! error ("filter: filtering over invalid dimension"); return y; } --- 83,89 ---- dim_vector x_dims = x.dims (); if (dim < 0 || dim > x_dims.length ()) { ! error ("filter: DIM must be a valid dimension"); return y; } *************** *** 262,268 **** else if (dim < 0 || dim > x_dims.length ()) { ! error ("filter: filtering over invalid dimension"); return MArray (); } --- 266,272 ---- else if (dim < 0 || dim > x_dims.length ()) { ! error ("filter: DIM must be a valid dimension"); return MArray (); } *************** *** 399,405 **** dim = args(4).nint_value() - 1; if (dim < 0 || dim >= x_dims.length ()) { ! error ("filter: filtering over invalid dimension"); return retval; } } --- 403,409 ---- dim = args(4).nint_value() - 1; if (dim < 0 || dim >= x_dims.length ()) { ! error ("filter: DIM must be a valid dimension"); return retval; } } *************** *** 464,470 **** si = args(3).float_complex_array_value (); if (si_is_vector) ! si = si.reshape (dim_vector (si.numel (), 1)); } if (! error_state) --- 468,474 ---- si = args(3).float_complex_array_value (); if (si_is_vector) ! si = si.reshape (dim_vector (1, si.numel ())); } if (! error_state) *************** *** 521,527 **** si = args(3).complex_array_value (); if (si_is_vector) ! si = si.reshape (dim_vector (si.numel (), 1)); } if (! error_state) --- 525,531 ---- si = args(3).complex_array_value (); if (si_is_vector) ! si = si.reshape (dim_vector (1, si.numel ())); } if (! error_state) *************** *** 581,587 **** si = args(3).float_array_value (); if (si_is_vector) ! si = si.reshape (dim_vector (si.numel (), 1)); } if (! error_state) --- 585,591 ---- si = args(3).float_array_value (); if (si_is_vector) ! si = si.reshape (dim_vector (1, si.numel ())); } if (! error_state) *************** *** 638,644 **** si = args(3).array_value (); if (si_is_vector) ! si = si.reshape (dim_vector (si.numel (), 1)); } if (! error_state) --- 642,648 ---- si = args(3).array_value (); if (si_is_vector) ! si = si.reshape (dim_vector (1, si.numel ())); } if (! error_state) *************** *** 694,751 **** %!test %! a = [1 1]; %! b = [1 1]; ! %! x = zeros(1,10); x(1) = 1; ! %! assert(all(filter(b, [1], x ) == [1 1 0 0 0 0 0 0 0 0] )) ! %! assert(all(filter(b, [1], x.') == [1 1 0 0 0 0 0 0 0 0].')) ! %! assert(all(filter(b.', [1], x ) == [1 1 0 0 0 0 0 0 0 0] )) ! %! assert(all(filter(b.', [1], x.') == [1 1 0 0 0 0 0 0 0 0].')) ! %! assert(all(filter([1], a, x ) == [+1 -1 +1 -1 +1 -1 +1 -1 +1 -1] )) ! %! assert(all(filter([1], a, x.') == [+1 -1 +1 -1 +1 -1 +1 -1 +1 -1].')) ! %! assert(all(filter([1], a.', x ) == [+1 -1 +1 -1 +1 -1 +1 -1 +1 -1] )) ! %! assert(all(filter([1], a.', x.') == [+1 -1 +1 -1 +1 -1 +1 -1 +1 -1].')) ! %! assert(all(filter(b, a, x ) == [1 0 0 0 0 0 0 0 0 0] )) ! %! assert(all(filter(b.', a, x ) == [1 0 0 0 0 0 0 0 0 0] )) ! %! assert(all(filter(b, a.', x ) == [1 0 0 0 0 0 0 0 0 0] )) ! %! assert(all(filter(b.', a, x ) == [1 0 0 0 0 0 0 0 0 0] )) ! %! assert(all(filter(b, a, x.') == [1 0 0 0 0 0 0 0 0 0].')) ! %! assert(all(filter(b.', a, x.') == [1 0 0 0 0 0 0 0 0 0].')) ! %! assert(all(filter(b, a.', x.') == [1 0 0 0 0 0 0 0 0 0].')) ! %! assert(all(filter(b.', a, x.') == [1 0 0 0 0 0 0 0 0 0].')) %! %!test %! r = sqrt(1/2)*(1+i); %! a = a*r; %! b = b*r; ! %! assert(all(filter(b, [1], x ) == r*[1 1 0 0 0 0 0 0 0 0] )) ! %! assert(all(filter(b, [1], r*x ) == r*r*[1 1 0 0 0 0 0 0 0 0] )) ! %! assert(all(filter(b, [1], x.' ) == r*[1 1 0 0 0 0 0 0 0 0].' )) ! %! assert(all(filter(b, a, x ) == [1 0 0 0 0 0 0 0 0 0] )) ! %! assert(all(filter(b, a, r*x ) == r*[1 0 0 0 0 0 0 0 0 0] )) %! %!shared a, b, x, y, so %!test ! %! a = [1,1]; b=[1,1]; ! %! x = zeros(1,10); x(1) = 1; ! %! [y, so] = filter(b, [1], x, [-1]); ! %! assert(all(y == [0 1 0 0 0 0 0 0 0 0])) ! %! assert(so,0) %! %!test ! %! x = zeros(10,3); x(1,1)=-1; x(1,2)=1; ! %! y0 = zeros(10,3); y0(1:2,1)=-1; y0(1:2,2)=1; ! %! y = filter(b,[1],x); ! %! assert(all(all(y==y0))) %! %!test %! a = [1,1]; b=[1,1]; ! %! x = zeros(4,4,2); x(1,1:4,1) = +1; x(1,1:4,2) = -1; ! %! y0 = zeros(4,4,2); y0(1:2,1:4,1) = +1; y0(1:2,1:4,2) = -1; ! %! y = filter(b, [1], x); ! %! assert(all(all(all(y==y0)))) %! ! %!assert(filter(1,ones(10,1)/10,[]), []) ! %!assert(filter(1,ones(10,1)/10,zeros(0,10)), zeros(0,10)) ! %% Should put some tests of the "DIM" parameter in here. */ --- 698,756 ---- %!test %! a = [1 1]; %! b = [1 1]; ! %! x = zeros (1,10); x(1) = 1; ! %! assert(filter(b, [1], x ), [1 1 0 0 0 0 0 0 0 0]); ! %! assert(filter(b, [1], x.'), [1 1 0 0 0 0 0 0 0 0].'); ! %! assert(filter(b.', [1], x ), [1 1 0 0 0 0 0 0 0 0] ); ! %! assert(filter(b.', [1], x.'), [1 1 0 0 0 0 0 0 0 0].'); ! %! assert(filter([1], a, x ), [+1 -1 +1 -1 +1 -1 +1 -1 +1 -1] ); ! %! assert(filter([1], a, x.'), [+1 -1 +1 -1 +1 -1 +1 -1 +1 -1].'); ! %! assert(filter([1], a.', x ), [+1 -1 +1 -1 +1 -1 +1 -1 +1 -1] ); ! %! assert(filter([1], a.', x.'), [+1 -1 +1 -1 +1 -1 +1 -1 +1 -1].'); ! %! assert(filter(b, a, x ), [1 0 0 0 0 0 0 0 0 0] ); ! %! assert(filter(b.', a, x ), [1 0 0 0 0 0 0 0 0 0] ); ! %! assert(filter(b, a.', x ), [1 0 0 0 0 0 0 0 0 0] ); ! %! assert(filter(b.', a, x ), [1 0 0 0 0 0 0 0 0 0] ); ! %! assert(filter(b, a, x.'), [1 0 0 0 0 0 0 0 0 0].'); ! %! assert(filter(b.', a, x.'), [1 0 0 0 0 0 0 0 0 0].'); ! %! assert(filter(b, a.', x.'), [1 0 0 0 0 0 0 0 0 0].'); ! %! assert(filter(b.', a, x.'), [1 0 0 0 0 0 0 0 0 0].'); %! %!test %! r = sqrt(1/2)*(1+i); %! a = a*r; %! b = b*r; ! %! assert(filter(b, [1], x ), r*[1 1 0 0 0 0 0 0 0 0] ); ! %! assert(filter(b, [1], r*x ), r*r*[1 1 0 0 0 0 0 0 0 0] ); ! %! assert(filter(b, [1], x.' ), r*[1 1 0 0 0 0 0 0 0 0].' ); ! %! assert(filter(b, a, x ), [1 0 0 0 0 0 0 0 0 0] ); ! %! assert(filter(b, a, r*x ), r*[1 0 0 0 0 0 0 0 0 0] ); %! %!shared a, b, x, y, so %!test ! %! a = [1,1]; b = [1,1]; ! %! x = zeros (1,10); x(1) = 1; ! %! [y, so] = filter (b, [1], x, [-1]); ! %! assert(y, [0 1 0 0 0 0 0 0 0 0]); ! %! assert(so,0); %! %!test ! %! x = zeros (10,3); x(1,1)=-1; x(1,2)=1; ! %! y0 = zeros (10,3); y0(1:2,1)=-1; y0(1:2,2)=1; ! %! y = filter (b, [1], x); ! %! assert(y,y0); %! %!test %! a = [1,1]; b=[1,1]; ! %! x = zeros (4,4,2); x(1,1:4,1) = +1; x(1,1:4,2) = -1; ! %! y0 = zeros (4,4,2); y0(1:2,1:4,1) = +1; y0(1:2,1:4,2) = -1; ! %! y = filter (b, [1], x); ! %! assert(y, y0); %! ! %!assert(filter (1, ones(10,1)/10, []), []); ! %!assert(filter (1, ones(10,1)/10, zeros(0,10)), zeros(0,10)); ! %!assert(filter([1, 3], [1], [1 2; 3 4; 5 6], [4, 5]), [5 7; 6 10; 14 18]); ! %!assert(filter (1, ones(10,1)/10, single (1:5)), repmat (single (10), 1, 5)); %% Should put some tests of the "DIM" parameter in here. */ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/find.cc octave-3.4.1/src/DLD-FUNCTIONS/find.cc *** octave-3.4.0/src/DLD-FUNCTIONS/find.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/find.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 341,351 **** @deftypefnx {Loadable Function} {@var{idx} =} find (@var{x}, @var{n})\n\ @deftypefnx {Loadable Function} {@var{idx} =} find (@var{x}, @var{n}, @var{direction})\n\ @deftypefnx {Loadable Function} {[i, j] =} find (@dots{})\n\ ! @deftypefnx {Loadable Function} {[i, j, v]] =} find (@dots{})\n\ Return a vector of indices of nonzero elements of a matrix, as a row if\n\ ! @var{x} is a row or as a column otherwise. To obtain a single index for\n\ ! each matrix element, Octave pretends that the columns of a matrix form one\n\ ! long vector (like Fortran arrays are stored). For example:\n\ \n\ @example\n\ @group\n\ --- 341,351 ---- @deftypefnx {Loadable Function} {@var{idx} =} find (@var{x}, @var{n})\n\ @deftypefnx {Loadable Function} {@var{idx} =} find (@var{x}, @var{n}, @var{direction})\n\ @deftypefnx {Loadable Function} {[i, j] =} find (@dots{})\n\ ! @deftypefnx {Loadable Function} {[i, j, v] =} find (@dots{})\n\ Return a vector of indices of nonzero elements of a matrix, as a row if\n\ ! @var{x} is a row vector or as a column otherwise. To obtain a single index\n\ ! for each matrix element, Octave pretends that the columns of a matrix form\n\ ! one long vector (like Fortran arrays are stored). For example:\n\ \n\ @example\n\ @group\n\ *************** *** 390,398 **** \n\ @example\n\ @group\n\ ! sz = size(a);\n\ [i, j, v] = find (a);\n\ ! b = sparse(i, j, v, sz(1), sz(2));\n\ @end group\n\ @end example\n\ @seealso{nonzeros}\n\ --- 390,398 ---- \n\ @example\n\ @group\n\ ! sz = size (a);\n\ [i, j, v] = find (a);\n\ ! b = sparse (i, j, v, sz(1), sz(2));\n\ @end group\n\ @end example\n\ @seealso{nonzeros}\n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/__fltk_uigetfile__.cc octave-3.4.1/src/DLD-FUNCTIONS/__fltk_uigetfile__.cc *** octave-3.4.0/src/DLD-FUNCTIONS/__fltk_uigetfile__.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/__fltk_uigetfile__.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 27,33 **** #if defined (HAVE_FLTK) #include ! #include // FLTK headers may include X11/X.h which defines Complex, and that // conflicts with Octave's Complex typedef. We don't need the X11 --- 27,33 ---- #if defined (HAVE_FLTK) #include ! #include // FLTK headers may include X11/X.h which defines Complex, and that // conflicts with Octave's Complex typedef. We don't need the X11 *************** *** 92,98 **** { int file_count = fc.count (); std::string fname; ! std::string sep = file_ops::dir_sep_str (); std::size_t idx; if (file_count == 1 && multi_type != Fl_File_Chooser::DIRECTORY) --- 92,100 ---- { int file_count = fc.count (); std::string fname; ! ! //fltk uses forward slash even for windows ! std::string sep = "/"; std::size_t idx; if (file_count == 1 && multi_type != Fl_File_Chooser::DIRECTORY) diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/hess.cc octave-3.4.1/src/DLD-FUNCTIONS/hess.cc *** octave-3.4.0/src/DLD-FUNCTIONS/hess.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/hess.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 37,44 **** DEFUN_DLD (hess, args, nargout, "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {@var{h} =} hess (@var{A})\n\ ! @deftypefnx {Loadable Function} {[@var{p}, @var{h}] =} hess (@var{A})\n\ @cindex Hessenberg decomposition\n\ Compute the Hessenberg decomposition of the matrix @var{A}.\n\ \n\ --- 37,44 ---- DEFUN_DLD (hess, args, nargout, "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {@var{H} =} hess (@var{A})\n\ ! @deftypefnx {Loadable Function} {[@var{P}, @var{H}] =} hess (@var{A})\n\ @cindex Hessenberg decomposition\n\ Compute the Hessenberg decomposition of the matrix @var{A}.\n\ \n\ *************** *** 51,58 **** is upper Hessenberg ($H_{i,j} = 0, \\forall i \\ge j+1$).\n\ @end tex\n\ @ifnottex\n\ ! @code{@var{P} * @var{H} * @var{P}' = @var{A}} where @var{p} is a square\n\ ! unitary matrix (@code{@var{p}' * @var{p} = I}, using complex-conjugate\n\ transposition) and @var{H} is upper Hessenberg\n\ (@code{@var{H}(i, j) = 0 forall i >= j+1)}.\n\ @end ifnottex\n\ --- 51,58 ---- is upper Hessenberg ($H_{i,j} = 0, \\forall i \\ge j+1$).\n\ @end tex\n\ @ifnottex\n\ ! @code{@var{P} * @var{H} * @var{P}' = @var{A}} where @var{P} is a square\n\ ! unitary matrix (@code{@var{P}' * @var{P} = I}, using complex-conjugate\n\ transposition) and @var{H} is upper Hessenberg\n\ (@code{@var{H}(i, j) = 0 forall i >= j+1)}.\n\ @end ifnottex\n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/__init_fltk__.cc octave-3.4.1/src/DLD-FUNCTIONS/__init_fltk__.cc *** octave-3.4.0/src/DLD-FUNCTIONS/__init_fltk__.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/__init_fltk__.cc 2011-06-15 11:13:48.000000000 -0400 *************** *** 44,50 **** #include #include #include ! #include #include #include #include --- 44,50 ---- #include #include #include ! #include #include #include #include *************** *** 70,75 **** --- 70,76 ---- #include "gl2ps-renderer.h" #include "graphics.h" #include "parse.h" + #include "sysdep.h" #include "toplev.h" #include "variables.h" *************** *** 97,103 **** public: OpenGL_fltk (int xx, int yy, int ww, int hh, double num) : Fl_Gl_Window (xx, yy, ww, hh, 0), number (num), renderer (), ! in_zoom (false), zoom_box (), print_fid (-1) { // Ask for double buffering and a depth buffer. mode (FL_DEPTH | FL_DOUBLE); --- 98,104 ---- public: OpenGL_fltk (int xx, int yy, int ww, int hh, double num) : Fl_Gl_Window (xx, yy, ww, hh, 0), number (num), renderer (), ! in_zoom (false), zoom_box (), print_mode (false) { // Ask for double buffering and a depth buffer. mode (FL_DEPTH | FL_DOUBLE); *************** *** 115,123 **** bool zoom (void) { return in_zoom; } void set_zoom_box (const Matrix& zb) { zoom_box = zb; } ! void print (const int fid, const std::string& term) { ! print_fid = fid; print_term = term; } --- 116,125 ---- bool zoom (void) { return in_zoom; } void set_zoom_box (const Matrix& zb) { zoom_box = zb; } ! void print (const std::string& cmd, const std::string& term) { ! print_mode = true; ! print_cmd = cmd; print_term = term; } *************** *** 135,141 **** // (x1,y1,x2,y2) Matrix zoom_box; ! int print_fid; std::string print_term; void setup_viewport (int ww, int hh) --- 137,144 ---- // (x1,y1,x2,y2) Matrix zoom_box; ! bool print_mode; ! std::string print_cmd; std::string print_term; void setup_viewport (int ww, int hh) *************** *** 153,165 **** setup_viewport (w (), h ()); } ! if (print_fid > 0) { ! glps_renderer rend (print_fid, print_term); rend.draw (gh_manager::get_object (number)); ! print_fid = -1; } else { --- 156,170 ---- setup_viewport (w (), h ()); } ! if (print_mode) { ! FILE *fp = octave_popen (print_cmd.c_str (), "w"); ! glps_renderer rend (fileno (fp), print_term); rend.draw (gh_manager::get_object (number)); ! octave_pclose (fp); ! print_mode = false; } else { *************** *** 438,446 **** if (item != NULL) { Matrix rgb = uimenup.get_foregroundcolor_rgb (); ! item->labelcolor(fl_rgb_color(static_cast(floor (rgb(0)*255)), ! static_cast(floor (rgb(1)*255)), ! static_cast(floor (rgb(2)*255)))); } } } --- 443,454 ---- if (item != NULL) { Matrix rgb = uimenup.get_foregroundcolor_rgb (); ! ! uchar r = static_cast (gnulib::floor (rgb (0) * 255)); ! uchar g = static_cast (gnulib::floor (rgb (1) * 255)); ! uchar b = static_cast (gnulib::floor (rgb (2) * 255)); ! ! item->labelcolor (fl_rgb_color (r, g, b)); } } } *************** *** 635,640 **** --- 643,649 ---- panzoom (0), rotate (0), help (0), status (0) { callback (window_close, static_cast (this)); + size_range (4*status_h, 2*status_h); begin (); { *************** *** 736,742 **** set_name (); resizable (canvas); - size_range (4*status_h, 2*status_h); gui_mode = (ndim == 3 ? rotate_zoom : pan_zoom); uimenu->add_to_menu (fp); if (uimenu->items_to_show ()) --- 745,750 ---- *************** *** 759,767 **** // FIXME -- this could change. double number (void) { return fp.get___myhandle__ ().value (); } ! void print (const int fid, const std::string& term) { ! canvas->print (fid, term); // Print immediately so the output file will exist when the drawnow // command is done. --- 767,775 ---- // FIXME -- this could change. double number (void) { return fp.get___myhandle__ ().value (); } ! void print (const std::string& cmd, const std::string& term) { ! canvas->print (cmd, term); // Print immediately so the output file will exist when the drawnow // command is done. *************** *** 771,798 **** void show_menubar (void) { ! int dm = menu_h; ! if (uimenu->is_visible ()) ! dm = 0; ! canvas->resize (canvas->x (), ! canvas->y () + dm, ! canvas->w (), ! canvas->h () - dm); ! uimenu->show (); ! mark_modified (); } void hide_menubar (void) { ! int dm = menu_h; ! if (!uimenu->is_visible ()) ! dm = 0; ! canvas->resize (canvas->x (), ! canvas->y () - dm, ! canvas->w (), ! canvas->h () + dm); ! uimenu->hide (); ! mark_modified (); } void uimenu_update(graphics_handle gh, int id) --- 779,806 ---- void show_menubar (void) { ! if (!uimenu->is_visible ()) ! { ! canvas->resize (canvas->x (), ! canvas->y () + menu_h, ! canvas->w (), ! canvas->h () - menu_h); ! uimenu->show (); ! mark_modified (); ! } } void hide_menubar (void) { ! if (uimenu->is_visible ()) ! { ! canvas->resize (canvas->x (), ! canvas->y () - menu_h, ! canvas->w (), ! canvas->h () + menu_h); ! uimenu->hide (); ! mark_modified (); ! } } void uimenu_update(graphics_handle gh, int id) *************** *** 1495,1504 **** return get_size (hnd2idx (gh)); } ! static void print (const graphics_handle& gh , const int fid, const std::string& term) { if (instance_ok ()) ! instance->do_print (hnd2idx(gh), fid, term); } static void uimenu_update (const graphics_handle& figh, const graphics_handle& uimenuh, const int id) --- 1503,1512 ---- return get_size (hnd2idx (gh)); } ! static void print (const graphics_handle& gh , const std::string& cmd, const std::string& term) { if (instance_ok ()) ! instance->do_print (hnd2idx(gh), cmd, term); } static void uimenu_update (const graphics_handle& figh, const graphics_handle& uimenuh, const int id) *************** *** 1634,1645 **** return sz; } ! void do_print (int idx, const int fid, const std::string& term) { wm_iterator win; if ((win = windows.find (idx)) != windows.end ()) { ! win->second->print (fid, term); } } --- 1642,1653 ---- return sz; } ! void do_print (int idx, const std::string& cmd, const std::string& term) { wm_iterator win; if ((win = windows.find (idx)) != windows.end ()) { ! win->second->print (cmd, term); } } *************** *** 1858,1875 **** void print_figure (const graphics_object& go, const std::string& term, ! const std::string& file, bool /*mono*/, const std::string& /*debug_file*/) const { ! int fid; ! std::istringstream istr (file); ! if (istr >> fid) ! { ! figure_manager::print (go.get_handle (), fid, term); ! redraw_figure (go); ! } ! else ! error ("fltk_graphics_toolkit: filename should be fid"); } Matrix get_canvas_size (const graphics_handle& fh) const --- 1866,1876 ---- void print_figure (const graphics_object& go, const std::string& term, ! const std::string& file_cmd, bool /*mono*/, const std::string& /*debug_file*/) const { ! figure_manager::print (go.get_handle (), file_cmd, term); ! redraw_figure (go); } Matrix get_canvas_size (const graphics_handle& fh) const diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/inv.cc octave-3.4.1/src/DLD-FUNCTIONS/inv.cc *** octave-3.4.0/src/DLD-FUNCTIONS/inv.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/inv.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 38,44 **** DEFUN_DLD (inv, args, nargout, "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {[@var{x} =} inv (@var{A})\n\ @deftypefnx {Loadable Function} {[@var{x}, @var{rcond}] =} inv (@var{A})\n\ Compute the inverse of the square matrix @var{A}. Return an estimate\n\ of the reciprocal condition number if requested, otherwise warn of an\n\ --- 38,44 ---- DEFUN_DLD (inv, args, nargout, "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {@var{x} =} inv (@var{A})\n\ @deftypefnx {Loadable Function} {[@var{x}, @var{rcond}] =} inv (@var{A})\n\ Compute the inverse of the square matrix @var{A}. Return an estimate\n\ of the reciprocal condition number if requested, otherwise warn of an\n\ *************** *** 240,248 **** DEFUN_DLD (inverse, args, nargout, "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {[@var{x} =} inverse (@var{A})\n\ @deftypefnx {Loadable Function} {[@var{x}, @var{rcond}] =} inverse (@var{A})\n\ ! This in an alias for @code{inv}.\n\ @seealso{inv}\n\ @end deftypefn") { --- 240,250 ---- DEFUN_DLD (inverse, args, nargout, "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {@var{x} =} inverse (@var{A})\n\ @deftypefnx {Loadable Function} {[@var{x}, @var{rcond}] =} inverse (@var{A})\n\ ! Compute the inverse of the square matrix @var{A}.\n\ ! \n\ ! This is an alias for @code{inv}.\n\ @seealso{inv}\n\ @end deftypefn") { diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/lookup.cc octave-3.4.1/src/DLD-FUNCTIONS/lookup.cc *** octave-3.4.0/src/DLD-FUNCTIONS/lookup.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/lookup.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 188,200 **** DEFUN_DLD (lookup, args, , "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {@var{idx} =} lookup (@var{table}, @var{y}, @var{opt})\n\ Lookup values in a sorted table. Usually used as a prelude to\n\ interpolation.\n\ \n\ If table is increasing and @code{idx = lookup (table, y)}, then\n\ @code{table(idx(i)) <= y(i) < table(idx(i+1))} for all @code{y(i)}\n\ ! within the table. If @code{y(i) < table (1)} then\n\ @code{idx(i)} is 0. If @code{y(i) >= table(end)} or @code{isnan (y(i))} then\n\ @code{idx(i)} is @code{n}.\n\ \n\ --- 188,201 ---- DEFUN_DLD (lookup, args, , "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {@var{idx} =} lookup (@var{table}, @var{y})\n\ ! @deftypefnx {Loadable Function} {@var{idx} =} lookup (@var{table}, @var{y}, @var{opt})\n\ Lookup values in a sorted table. Usually used as a prelude to\n\ interpolation.\n\ \n\ If table is increasing and @code{idx = lookup (table, y)}, then\n\ @code{table(idx(i)) <= y(i) < table(idx(i+1))} for all @code{y(i)}\n\ ! within the table. If @code{y(i) < table(1)} then\n\ @code{idx(i)} is 0. If @code{y(i) >= table(end)} or @code{isnan (y(i))} then\n\ @code{idx(i)} is @code{n}.\n\ \n\ *************** *** 211,217 **** (or @var{y} can be a single string). In this case, string lookup\n\ is performed using lexicographical comparison.\n\ \n\ ! If @var{opts} is specified, it shall be a string with letters indicating\n\ additional options.\n\ \n\ @table @code\n\ --- 212,218 ---- (or @var{y} can be a single string). In this case, string lookup\n\ is performed using lexicographical comparison.\n\ \n\ ! If @var{opts} is specified, it must be a string with letters indicating\n\ additional options.\n\ \n\ @table @code\n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/matrix_type.cc octave-3.4.1/src/DLD-FUNCTIONS/matrix_type.cc *** octave-3.4.0/src/DLD-FUNCTIONS/matrix_type.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/matrix_type.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 45,51 **** @deftypefnx {Loadable Function} {@var{A} =} matrix_type (@var{A}, 'lower', @var{perm})\n\ @deftypefnx {Loadable Function} {@var{A} =} matrix_type (@var{A}, 'banded', @var{nl}, @var{nu})\n\ Identify the matrix type or mark a matrix as a particular type. This allows\n\ ! more rapid solutions of linear equations involving @var{A} to be performed. \n\ Called with a single argument, @code{matrix_type} returns the type of the\n\ matrix and caches it for future use. Called with more than one argument,\n\ @code{matrix_type} allows the type of the matrix to be defined.\n\ --- 45,51 ---- @deftypefnx {Loadable Function} {@var{A} =} matrix_type (@var{A}, 'lower', @var{perm})\n\ @deftypefnx {Loadable Function} {@var{A} =} matrix_type (@var{A}, 'banded', @var{nl}, @var{nu})\n\ Identify the matrix type or mark a matrix as a particular type. This allows\n\ ! more rapid solutions of linear equations involving @var{A} to be performed.\n\ Called with a single argument, @code{matrix_type} returns the type of the\n\ matrix and caches it for future use. Called with more than one argument,\n\ @code{matrix_type} allows the type of the matrix to be defined.\n\ *************** *** 99,105 **** \n\ Note that the matrix type will be discovered automatically on the first\n\ attempt to solve a linear equation involving @var{A}. Therefore\n\ ! @code{matrix_type} is only useful to give Octave hints of the matrix type. \n\ Incorrectly defining the matrix type will result in incorrect results from\n\ solutions of linear equations; it is entirely @strong{the responsibility of\n\ the user} to correctly identify the matrix type.\n\ --- 99,105 ---- \n\ Note that the matrix type will be discovered automatically on the first\n\ attempt to solve a linear equation involving @var{A}. Therefore\n\ ! @code{matrix_type} is only useful to give Octave hints of the matrix type.\n\ Incorrectly defining the matrix type will result in incorrect results from\n\ solutions of linear equations; it is entirely @strong{the responsibility of\n\ the user} to correctly identify the matrix type.\n\ *************** *** 245,251 **** nu = args(3).nint_value (); if (error_state) ! error ("matrix_type: band size must be integer"); else { if (nl == 1 && nu == 1) --- 245,251 ---- nu = args(3).nint_value (); if (error_state) ! error ("matrix_type: band size NL, NU must be integers"); else { if (nl == 1 && nu == 1) diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/mgorth.cc octave-3.4.1/src/DLD-FUNCTIONS/mgorth.cc *** octave-3.4.0/src/DLD-FUNCTIONS/mgorth.cc 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/mgorth.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,154 ---- + /* + + Copyright (C) 2009-2011 Carlo de Falco + Copyright (C) 2010 VZLU Prague + + This file is part of Octave. + + Octave 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. + + Octave 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 Octave; see the file COPYING. If not, see + . + + */ + + #ifdef HAVE_CONFIG_H + #include + #endif + + #include "oct-norm.h" + #include "defun-dld.h" + #include "error.h" + #include "gripes.h" + + template + static void + do_mgorth (ColumnVector& x, const Matrix& V, RowVector& h) + { + octave_idx_type Vc = V.columns (); + h = RowVector (Vc + 1); + for (octave_idx_type j = 0; j < Vc; j++) + { + ColumnVector Vcj = V.column (j); + h(j) = RowVector (Vcj.hermitian ()) * x; + x -= h(j) * Vcj; + } + + h(Vc) = xnorm (x); + if (real (h(Vc)) > 0) + x = x / h(Vc); + } + + DEFUN_DLD (mgorth, args, nargout, + "-*- texinfo -*-\n\ + @deftypefn {Loadable Function} {[@var{y}, @var{h}] =} mgorth (@var{x}, @var{v})\n\ + Orthogonalize a given column vector @var{x} with respect to a given\n\ + orthonormal basis @var{v} using a modified Gram-Schmidt orthogonalization. \n\ + On exit, @var{y} is a unit vector such that:\n\ + \n\ + @example\n\ + @group\n\ + norm (@var{y}) = 1\n\ + @var{v}' * @var{y} = 0\n\ + @var{x} = @var{h}*[@var{v}, @var{y}]\n\ + @end group\n\ + @end example\n\ + \n\ + @end deftypefn") + { + octave_value_list retval; + + int nargin = args.length(); + + if (nargin != 2 || nargout > 2) + { + print_usage (); + return retval; + } + + octave_value arg_x = args(0); + octave_value arg_v = args(1); + + if (arg_v.ndims () != 2 || arg_x.ndims () != 2 || arg_x.columns () != 1 + || arg_v.rows () != arg_x.rows ()) + { + error ("mgorth: V should me a matrix, and X a column vector with" + " the same number of rows as V."); + return retval; + } + + if (! arg_x.is_numeric_type () && ! arg_v.is_numeric_type ()) + { + error ("mgorth: X and V must be numeric"); + } + + bool iscomplex = (arg_x.is_complex_type () || arg_v.is_complex_type ()); + if (arg_x.is_single_type () || arg_v.is_single_type ()) + { + if (iscomplex) + { + FloatComplexColumnVector x = arg_x.float_complex_column_vector_value (); + FloatComplexMatrix V = arg_v.float_complex_matrix_value (); + FloatComplexRowVector h; + do_mgorth (x, V, h); + retval(1) = h; + retval(0) = x; + } + else + { + FloatColumnVector x = arg_x.float_column_vector_value (); + FloatMatrix V = arg_v.float_matrix_value (); + FloatRowVector h; + do_mgorth (x, V, h); + retval(1) = h; + retval(0) = x; + } + } + else + { + if (iscomplex) + { + ComplexColumnVector x = arg_x.complex_column_vector_value (); + ComplexMatrix V = arg_v.complex_matrix_value (); + ComplexRowVector h; + do_mgorth (x, V, h); + retval(1) = h; + retval(0) = x; + } + else + { + ColumnVector x = arg_x.column_vector_value (); + Matrix V = arg_v.matrix_value (); + RowVector h; + do_mgorth (x, V, h); + retval(1) = h; + retval(0) = x; + } + } + + return retval; + } + + /* + + %!test + %! for ii=1:100; assert (abs (mgorth (randn (5, 1), eye (5, 4))), [0 0 0 0 1]', eps); endfor + + %!test + %! a = hilb (5); + %! a(:, 1) /= norm (a(:, 1)); + %! for ii = 1:5 + %! a(:, ii) = mgorth (a(:, ii), a(:, 1:ii-1)); + %! endfor + %! assert (a' * a, eye (5), 1e10); + + */ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/module-files octave-3.4.1/src/DLD-FUNCTIONS/module-files *** octave-3.4.0/src/DLD-FUNCTIONS/module-files 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/module-files 2011-06-15 11:11:27.000000000 -0400 *************** *** 54,59 **** --- 54,61 ---- matrix_type.cc max.cc md5sum.cc + mgorth.cc + nproc.cc onCleanup.cc pinv.cc qr.cc diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/module.mk octave-3.4.1/src/DLD-FUNCTIONS/module.mk *** octave-3.4.0/src/DLD-FUNCTIONS/module.mk 2011-02-08 05:01:47.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/module.mk 2011-06-15 11:30:17.000000000 -0400 *************** *** 62,67 **** --- 62,69 ---- DLD-FUNCTIONS/matrix_type.cc \ DLD-FUNCTIONS/max.cc \ DLD-FUNCTIONS/md5sum.cc \ + DLD-FUNCTIONS/mgorth.cc \ + DLD-FUNCTIONS/nproc.cc \ DLD-FUNCTIONS/onCleanup.cc \ DLD-FUNCTIONS/pinv.cc \ DLD-FUNCTIONS/qr.cc \ *************** *** 544,549 **** --- 546,567 ---- $(LN_S) .libs/`$(SED) -n -e "s/dlname='\([^']*\)'/\1/p" < $$la` $$of && \ touch $(@F) + DLD-FUNCTIONS/$(am__leading_dot)mgorth.oct-stamp: DLD-FUNCTIONS/mgorth.la + rm -f $(<:.la=.oct) + la=$(. + + */ + + #ifdef HAVE_CONFIG_H + #include + #endif + + #include "defun-dld.h" + #include "nproc.h" + + DEFUN_DLD (nproc, args, nargout, + "-*- texinfo -*-\n\ + @deftypefn {Loadable Function} {} nproc ()\n\ + @deftypefnx {Loadable Function} {} nproc (@var{query})\n\ + Return the current number of available processors.\n\ + \n\ + If called with the optional argument @var{query}, modify how processors\n\ + are counted as follows:\n\ + @table @code\n\ + @item all\n\ + total number of processors.\n\ + \n\ + @item current\n\ + processors available to the current process.\n\ + \n\ + @item overridable\n\ + likewise, but overridable through the @w{@env{OMP_NUM_THREADS}} environment\n\ + variable.\n\ + @end table\n\ + @end deftypefn") + { + octave_value retval; + + int nargin = args.length (); + + if ((nargin != 0 && nargin != 1) || (nargout != 0 && nargout != 1)) + { + print_usage (); + return retval; + } + + nproc_query query = NPROC_CURRENT; + if (nargin == 1) + { + std::string arg = args(0).string_value (); + + std::transform (arg.begin (), arg.end (), arg.begin (), tolower); + + if (arg == "all") + query = NPROC_ALL; + else if (arg == "current") + query = NPROC_CURRENT; + else if (arg == "overridable") + query = NPROC_CURRENT_OVERRIDABLE; + else + { + error ("nproc: invalid value for QUERY"); + return retval; + } + } + + retval = num_processors (query); + + return retval; + } + + /* + + %% Must always report at least 1 cpu available + %!assert (nproc () >= 1); + + */ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/onCleanup.cc octave-3.4.1/src/DLD-FUNCTIONS/onCleanup.cc *** octave-3.4.0/src/DLD-FUNCTIONS/onCleanup.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/onCleanup.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 257,263 **** elements) or returned from a function, @var{action} will be executed after\n\ clearing the last copy of the object. Note that if multiple local onCleanup\n\ variables are created, the order in which they are called is unspecified.\n\ ! @seealso{unwind_protect}\n\ @end deftypefn") { octave_value retval; --- 257,263 ---- elements) or returned from a function, @var{action} will be executed after\n\ clearing the last copy of the object. Note that if multiple local onCleanup\n\ variables are created, the order in which they are called is unspecified.\n\ ! For similar functionality @xref{The @code{unwind_protect} Statement}.\n\ @end deftypefn") { octave_value retval; diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/pinv.cc octave-3.4.1/src/DLD-FUNCTIONS/pinv.cc *** octave-3.4.0/src/DLD-FUNCTIONS/pinv.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/pinv.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 41,49 **** @deftypefn {Loadable Function} {} pinv (@var{x})\n\ @deftypefnx {Loadable Function} {} pinv (@var{x}, @var{tol})\n\ Return the pseudoinverse of @var{x}. Singular values less than\n\ ! @var{tol} are ignored. \n\ \n\ ! If the second argument is omitted, it is assumed that\n\ \n\ @example\n\ tol = max (size (@var{x})) * sigma_max (@var{x}) * eps,\n\ --- 41,49 ---- @deftypefn {Loadable Function} {} pinv (@var{x})\n\ @deftypefnx {Loadable Function} {} pinv (@var{x}, @var{tol})\n\ Return the pseudoinverse of @var{x}. Singular values less than\n\ ! @var{tol} are ignored.\n\ \n\ ! If the second argument is omitted, it is taken to be\n\ \n\ @example\n\ tol = max (size (@var{x})) * sigma_max (@var{x}) * eps,\n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/qr.cc octave-3.4.1/src/DLD-FUNCTIONS/qr.cc *** octave-3.4.0/src/DLD-FUNCTIONS/qr.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/qr.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 150,156 **** \n\ @example\n\ @group\n\ ! @var{Q} = \n\ \n\ -0.44721 -0.89443\n\ -0.89443 0.44721\n\ --- 150,156 ---- \n\ @example\n\ @group\n\ ! @var{Q} =\n\ \n\ -0.44721 -0.89443\n\ -0.89443 0.44721\n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/quad.cc octave-3.4.1/src/DLD-FUNCTIONS/quad.cc *** octave-3.4.0/src/DLD-FUNCTIONS/quad.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/quad.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 174,209 **** DEFUN_DLD (quad, args, nargout, "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {@var{v} =} quad (@var{f}, @var{a}, @var{b})\n\ ! @deftypefnx {Loadable Function} {@var{v} =} quad (@var{f}, @var{a}, @var{b}, @var{tol})\n\ ! @deftypefnx {Loadable Function} {@var{v} =} quad (@var{f}, @var{a}, @var{b}, @var{tol}, @var{sing})\n\ ! @deftypefnx {Loadable Function} {[@var{v}, @var{ier}, @var{nfun}, @var{err}] =} quad (@dots{})\n\ ! Integrate a nonlinear function of one variable using @sc{quadpack}.\n\ ! The first argument is the name of the function, the function handle, or\n\ ! the inline function to call to compute the value of the integrand. It\n\ ! must have the form\n\ ! \n\ ! @example\n\ ! y = f (x)\n\ ! @end example\n\ \n\ ! @noindent\n\ ! where @var{y} and @var{x} are scalars.\n\ ! \n\ ! The second and third arguments are limits of integration. Either or\n\ ! both may be infinite.\n\ \n\ The optional argument @var{tol} is a vector that specifies the desired\n\ accuracy of the result. The first element of the vector is the desired\n\ absolute tolerance, and the second element is the desired relative\n\ tolerance. To choose a relative test only, set the absolute\n\ tolerance to zero. To choose an absolute test only, set the relative\n\ ! tolerance to zero.\n\ \n\ The optional argument @var{sing} is a vector of values at which the\n\ integrand is known to be singular.\n\ \n\ ! The result of the integration is returned in @var{v}. @var{ier}\n\ contains an integer error code (0 indicates a successful integration).\n\ @var{nfun} indicates the number of function evaluations that were\n\ made, and @var{err} contains an estimate of the error in the\n\ --- 174,204 ---- DEFUN_DLD (quad, args, nargout, "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {@var{q} =} quad (@var{f}, @var{a}, @var{b})\n\ ! @deftypefnx {Loadable Function} {@var{q} =} quad (@var{f}, @var{a}, @var{b}, @var{tol})\n\ ! @deftypefnx {Loadable Function} {@var{q} =} quad (@var{f}, @var{a}, @var{b}, @var{tol}, @var{sing})\n\ ! @deftypefnx {Loadable Function} {[@var{q}, @var{ier}, @var{nfun}, @var{err}] =} quad (@dots{})\n\ ! Numerically evaluate the integral of @var{f} from @var{a} to @var{b} using\n\ ! Fortran routines from @w{@sc{quadpack}}. @var{f} is a function handle,\n\ ! inline function, or a string containing the name of the function to\n\ ! evaluate. The function must have the form @code{y = f (x)} where @var{y} and\n\ ! @var{x} are scalars.\n\ \n\ ! @var{a} and @var{b} are the lower and upper limits of integration. Either\n\ ! or both may be infinite.\n\ \n\ The optional argument @var{tol} is a vector that specifies the desired\n\ accuracy of the result. The first element of the vector is the desired\n\ absolute tolerance, and the second element is the desired relative\n\ tolerance. To choose a relative test only, set the absolute\n\ tolerance to zero. To choose an absolute test only, set the relative\n\ ! tolerance to zero. Both tolerances default to @code{sqrt(eps)} or\n\ ! approximately @math{1.5e^{-8}}.\n\ \n\ The optional argument @var{sing} is a vector of values at which the\n\ integrand is known to be singular.\n\ \n\ ! The result of the integration is returned in @var{q}. @var{ier}\n\ contains an integer error code (0 indicates a successful integration).\n\ @var{nfun} indicates the number of function evaluations that were\n\ made, and @var{err} contains an estimate of the error in the\n\ *************** *** 212,219 **** The function @code{quad_options} can set other optional\n\ parameters for @code{quad}.\n\ \n\ ! Note: because @code{quad} is written in Fortran it\n\ ! cannot be called recursively.\n\ @seealso{quad_options, quadv, quadl, quadgk, quadcc, trapz, dblquad, triplequad}\n\ @end deftypefn") { --- 207,215 ---- The function @code{quad_options} can set other optional\n\ parameters for @code{quad}.\n\ \n\ ! Note: because @code{quad} is written in Fortran it cannot be called\n\ ! recursively. This prevents its use in integrating over more than one\n\ ! variable by routines @code{dblquad} and @code{triplequad}.\n\ @seealso{quad_options, quadv, quadl, quadgk, quadcc, trapz, dblquad, triplequad}\n\ @end deftypefn") { diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/quadcc.cc octave-3.4.1/src/DLD-FUNCTIONS/quadcc.cc *** octave-3.4.0/src/DLD-FUNCTIONS/quadcc.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/quadcc.cc 2011-06-15 11:13:48.000000000 -0400 *************** *** 1479,1548 **** DEFUN_DLD (quadcc, args, nargout, "-*- texinfo -*-\n\ ! @deftypefn {Function File} {[@var{int}, @var{err}, @var{nr_points}] =} quadcc (@var{f}, @var{a}, @var{b}, @var{tol})\n\ ! @deftypefnx {Function File} {[@var{int}, @var{err}, @var{nr_points}] =} quadcc (@var{f}, @var{a}, @var{b}, @var{tol}, @var{sing})\n\ ! Numerically evaluates an integral using the doubly-adaptive\n\ ! quadrature described by P. Gonnet in @cite{Increasing the\n\ ! Reliability of Adaptive Quadrature Using Explicit Interpolants},\n\ ! ACM Transactions on Mathematical Software, in Press, 2010.\n\ ! The algorithm uses Clenshaw-Curtis quadrature rules of increasing\n\ ! degree in each interval and bisects the interval if either the\n\ ! function does not appear to be smooth or a rule of maximum\n\ ! degree has been reached. The error estimate is computed from the\n\ ! L2-norm of the difference between two successive interpolations\n\ ! of the integrand over the nodes of the respective quadrature rules.\n\ ! \n\ ! For example,\n\ \n\ @example\n\ ! int = quadcc (f, a, b, 1.0e-6);\n\ @end example\n\ \n\ @noindent\n\ ! computes the integral of a function @var{f} in the interval\n\ ! [@var{a}, @var{b}] to the relative precision of six\n\ ! decimal digits.\n\ ! The integrand @var{f} should accept a vector argument and return a vector\n\ ! result containing the integrand evaluated at each element of the\n\ ! argument, for example:\n\ \n\ ! @example\n\ ! f = @@(x) x .* sin (1 ./ x) .* sqrt (abs (1 - x));\n\ ! @end example\n\ ! \n\ ! If the integrand has known singularities or discontinuities\n\ ! in any of its derivatives inside the interval,\n\ ! as does the above example at x=1, these can be specified in\n\ ! the additional argument @var{sing} as follows\n\ \n\ @example\n\ int = quadcc (f, a, b, 1.0e-6, [ 1 ]);\n\ @end example\n\ \n\ ! The two additional output variables @var{err} and @var{nr_points}\n\ ! return an estimate of the absolute integration error and\n\ ! the number of points at which the integrand was evaluated\n\ ! respectively.\n\ If the adaptive integration did not converge, the value of\n\ ! @var{err} will be larger than the requested tolerance. It is\n\ ! therefore recommended to verify this value for difficult\n\ ! integrands.\n\ ! \n\ ! If either @var{a} or @var{b} are @code{+/-Inf}, @code{quadcc}\n\ ! integrates @var{f} by substituting the variable of integration\n\ ! with @code{x=tan(pi/2*u)}.\n\ \n\ @code{quadcc} is capable of dealing with non-numeric\n\ ! values of the integrand such as @code{NaN}, @code{Inf}\n\ ! or @code{-Inf}, as in the above example at x=0.\n\ ! If the integral diverges and @code{quadcc} detects this, \n\ ! a warning is issued and @code{Inf} or @code{-Inf} is returned.\n\ ! \n\ ! Note that @code{quadcc} is a general purpose quadrature algorithm\n\ ! and as such may be less efficient for smooth or otherwise\n\ ! well-behaved integrand than other methods such as\n\ ! @code{quadgk} or @code{trapz}.\n\ \n\ @seealso{quad, quadv, quadl, quadgk, trapz, dblquad, triplequad}\n\ @end deftypefn") { --- 1479,1547 ---- DEFUN_DLD (quadcc, args, nargout, "-*- texinfo -*-\n\ ! @deftypefn {Function File} {@var{q} =} quadcc (@var{f}, @var{a}, @var{b})\n\ ! @deftypefnx {Function File} {@var{q} =} quadcc (@var{f}, @var{a}, @var{b}, @var{tol})\n\ ! @deftypefnx {Function File} {@var{q} =} quadcc (@var{f}, @var{a}, @var{b}, @var{tol}, @var{sing})\n\ ! @deftypefnx {Function File} {[@var{q}, @var{err}, @var{nr_points}] =} quadcc (@dots{})\n\ ! Numerically evaluate the integral of @var{f} from @var{a} to @var{b}\n\ ! using the doubly-adaptive Clenshaw-Curtis quadrature described by P. Gonnet\n\ ! in @cite{Increasing the Reliability of Adaptive Quadrature Using Explicit\n\ ! Interpolants}.\n\ ! @var{f} is a function handle, inline function, or string\n\ ! containing the name of the function to evaluate.\n\ ! The function @var{f} must be vectorized and must return a vector of output\n\ ! values if given a vector of input values. For example,\n\ \n\ @example\n\ ! f = @@(x) x .* sin (1./x) .* sqrt (abs (1 - x));\n\ @end example\n\ \n\ @noindent\n\ ! which uses the element-by-element `dot' form for all operators.\n\ \n\ ! @var{a} and @var{b} are the lower and upper limits of integration. Either\n\ ! or both limits may be infinite. @code{quadcc} handles an inifinite limit\n\ ! by substituting the variable of integration with @code{x=tan(pi/2*u)}.\n\ ! \n\ ! The optional argument @var{tol} defines the relative tolerance used to stop\n\ ! the integration procedure. The default value is @math{1e^{-6}}.\n\ ! \n\ ! The optional argument @var{sing} contains a list of points where the\n\ ! integrand has known singularities, or discontinuities\n\ ! in any of its derivatives, inside the integration interval.\n\ ! For the example above, which has a discontinuity at x=1, the call to\n\ ! @code{quadcc} would be as follows\n\ \n\ @example\n\ int = quadcc (f, a, b, 1.0e-6, [ 1 ]);\n\ @end example\n\ \n\ ! The result of the integration is returned in @var{q}.\n\ ! @var{err} is an estimate of the absolute integration error and\n\ ! @var{nr_points} is the number of points at which the integrand was evaluated.\n\ If the adaptive integration did not converge, the value of\n\ ! @var{err} will be larger than the requested tolerance. Therefore, it is\n\ ! recommended to verify this value for difficult integrands.\n\ \n\ @code{quadcc} is capable of dealing with non-numeric\n\ ! values of the integrand such as @code{NaN} or @code{Inf}.\n\ ! If the integral diverges, and @code{quadcc} detects this,\n\ ! then a warning is issued and @code{Inf} or @code{-Inf} is returned.\n\ ! \n\ ! Note: @code{quadcc} is a general purpose quadrature algorithm\n\ ! and, as such, may be less efficient for a smooth or otherwise\n\ ! well-behaved integrand than other methods such as @code{quadgk}.\n\ ! \n\ ! The algorithm uses Clenshaw-Curtis quadrature rules of increasing\n\ ! degree in each interval and bisects the interval if either the\n\ ! function does not appear to be smooth or a rule of maximum\n\ ! degree has been reached. The error estimate is computed from the\n\ ! L2-norm of the difference between two successive interpolations\n\ ! of the integrand over the nodes of the respective quadrature rules.\n\ \n\ + Reference: P. Gonnet, @cite{Increasing the Reliability of Adaptive\n\ + Quadrature Using Explicit Interpolants}, ACM Transactions on\n\ + Mathematical Software, Vol. 37, Issue 3, Article No. 3, 2010.\n\ @seealso{quad, quadv, quadl, quadgk, trapz, dblquad, triplequad}\n\ @end deftypefn") { diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/qz.cc octave-3.4.1/src/DLD-FUNCTIONS/qz.cc *** octave-3.4.0/src/DLD-FUNCTIONS/qz.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/qz.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 307,313 **** \n\ @item @code{[AA, BB, Q, Z, V, W, @var{lambda}] = qz (@var{A}, @var{B})}\n\ \n\ ! Computes QZ@tie{}decomposition, generalized eigenvectors, and \n\ generalized eigenvalues of @math{(A - s B)}\n\ @tex\n\ $$ AV = BV{ \\rm diag }(\\lambda) $$\n\ --- 307,313 ---- \n\ @item @code{[AA, BB, Q, Z, V, W, @var{lambda}] = qz (@var{A}, @var{B})}\n\ \n\ ! Computes QZ@tie{}decomposition, generalized eigenvectors, and\n\ generalized eigenvalues of @math{(A - s B)}\n\ @tex\n\ $$ AV = BV{ \\rm diag }(\\lambda) $$\n\ *************** *** 343,355 **** of the revised pencil contains all eigenvalues that satisfy:\n\ @table @asis\n\ @item \"N\"\n\ ! = unordered (default) \n\ \n\ @item \"S\"\n\ ! = small: leading block has all |lambda| @leq{} 1 \n\ \n\ @item \"B\"\n\ ! = big: leading block has all |lambda| @geq{} 1 \n\ \n\ @item \"-\"\n\ = negative real part: leading block has all eigenvalues\n\ --- 343,355 ---- of the revised pencil contains all eigenvalues that satisfy:\n\ @table @asis\n\ @item \"N\"\n\ ! = unordered (default)\n\ \n\ @item \"S\"\n\ ! = small: leading block has all |lambda| @leq{} 1\n\ \n\ @item \"B\"\n\ ! = big: leading block has all |lambda| @geq{} 1\n\ \n\ @item \"-\"\n\ = negative real part: leading block has all eigenvalues\n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/rand.cc octave-3.4.1/src/DLD-FUNCTIONS/rand.cc *** octave-3.4.0/src/DLD-FUNCTIONS/rand.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/rand.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 326,333 **** DEFUN_DLD (rand, args, , "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {} rand (@var{x})\n\ ! @deftypefnx {Loadable Function} {} rand (@var{n}, @var{m})\n\ @deftypefnx {Loadable Function} {@var{v} =} rand (\"state\")\n\ @deftypefnx {Loadable Function} {} rand (\"state\", @var{v})\n\ @deftypefnx {Loadable Function} {} rand (\"state\", \"reset\")\n\ --- 326,334 ---- DEFUN_DLD (rand, args, , "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {} rand (@var{n})\n\ ! @deftypefnx {Loadable Function} {} rand (@var{n}, @var{m}, @dots{})\n\ ! @deftypefnx {Loadable Function} {} rand ([@var{n} @var{m} @dots{}])\n\ @deftypefnx {Loadable Function} {@var{v} =} rand (\"state\")\n\ @deftypefnx {Loadable Function} {} rand (\"state\", @var{v})\n\ @deftypefnx {Loadable Function} {} rand (\"state\", \"reset\")\n\ *************** *** 359,371 **** value of @var{v}, not @var{v} itself.\n\ \n\ By default, the generator is initialized from @code{/dev/urandom} if it is\n\ ! available, otherwise from CPU time, wall clock time and the current\n\ fraction of a second.\n\ \n\ To compute the pseudo-random sequence, @code{rand} uses the Mersenne\n\ Twister with a period of @math{2^{19937}-1} (See M. Matsumoto and\n\ T. Nishimura,\n\ ! @cite{Mersenne Twister: A 623-dimensionally equidistributed uniform \n\ pseudorandom number generator}, ACM Trans. on\n\ Modeling and Computer Simulation Vol. 8, No. 1, pp. 3-30, January 1998,\n\ @url{http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html}).\n\ --- 360,372 ---- value of @var{v}, not @var{v} itself.\n\ \n\ By default, the generator is initialized from @code{/dev/urandom} if it is\n\ ! available, otherwise from CPU time, wall clock time, and the current\n\ fraction of a second.\n\ \n\ To compute the pseudo-random sequence, @code{rand} uses the Mersenne\n\ Twister with a period of @math{2^{19937}-1} (See M. Matsumoto and\n\ T. Nishimura,\n\ ! @cite{Mersenne Twister: A 623-dimensionally equidistributed uniform\n\ pseudorandom number generator}, ACM Trans. on\n\ Modeling and Computer Simulation Vol. 8, No. 1, pp. 3-30, January 1998,\n\ @url{http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html}).\n\ *************** *** 490,497 **** DEFUN_DLD (randn, args, , "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {} randn (@var{x})\n\ ! @deftypefnx {Loadable Function} {} randn (@var{n}, @var{m})\n\ @deftypefnx {Loadable Function} {@var{v} =} randn (\"state\")\n\ @deftypefnx {Loadable Function} {} randn (\"state\", @var{v})\n\ @deftypefnx {Loadable Function} {} randn (\"state\", \"reset\")\n\ --- 491,499 ---- DEFUN_DLD (randn, args, , "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {} randn (@var{n})\n\ ! @deftypefnx {Loadable Function} {} randn (@var{n}, @var{m}, @dots{})\n\ ! @deftypefnx {Loadable Function} {} randn ([@var{n} @var{m} @dots{}])\n\ @deftypefnx {Loadable Function} {@var{v} =} randn (\"state\")\n\ @deftypefnx {Loadable Function} {} randn (\"state\", @var{v})\n\ @deftypefnx {Loadable Function} {} randn (\"state\", \"reset\")\n\ *************** *** 555,562 **** DEFUN_DLD (rande, args, , "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {} rande (@var{x})\n\ ! @deftypefnx {Loadable Function} {} rande (@var{n}, @var{m})\n\ @deftypefnx {Loadable Function} {@var{v} =} rande (\"state\")\n\ @deftypefnx {Loadable Function} {} rande (\"state\", @var{v})\n\ @deftypefnx {Loadable Function} {} rande (\"state\", \"reset\")\n\ --- 557,565 ---- DEFUN_DLD (rande, args, , "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {} rande (@var{n})\n\ ! @deftypefnx {Loadable Function} {} rande (@var{n}, @var{m}, @dots{})\n\ ! @deftypefnx {Loadable Function} {} rande ([@var{n} @var{m} @dots{}])\n\ @deftypefnx {Loadable Function} {@var{v} =} rande (\"state\")\n\ @deftypefnx {Loadable Function} {} rande (\"state\", @var{v})\n\ @deftypefnx {Loadable Function} {} rande (\"state\", \"reset\")\n\ *************** *** 621,628 **** DEFUN_DLD (randg, args, , "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {} randg (@var{a}, @var{x})\n\ ! @deftypefnx {Loadable Function} {} randg (@var{a}, @var{n}, @var{m})\n\ @deftypefnx {Loadable Function} {@var{v} =} randg (\"state\")\n\ @deftypefnx {Loadable Function} {} randg (\"state\", @var{v})\n\ @deftypefnx {Loadable Function} {} randg (\"state\", \"reset\")\n\ --- 624,632 ---- DEFUN_DLD (randg, args, , "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {} randg (@var{n})\n\ ! @deftypefnx {Loadable Function} {} randg (@var{n}, @var{m}, @dots{})\n\ ! @deftypefnx {Loadable Function} {} randg ([@var{n} @var{m} @dots{}])\n\ @deftypefnx {Loadable Function} {@var{v} =} randg (\"state\")\n\ @deftypefnx {Loadable Function} {} randg (\"state\", @var{v})\n\ @deftypefnx {Loadable Function} {} randg (\"state\", \"reset\")\n\ *************** *** 663,669 **** r = 2 * randg (df / 2)\n\ @end example\n\ \n\ ! @item @code{t(df)} for @code{0 < df < inf} (use randn if df is infinite)\n\ \n\ @example\n\ r = randn () / sqrt (2 * randg (df / 2) / df)\n\ --- 667,673 ---- r = 2 * randg (df / 2)\n\ @end example\n\ \n\ ! @item @code{t (df)} for @code{0 < df < inf} (use randn if df is infinite)\n\ \n\ @example\n\ r = randn () / sqrt (2 * randg (df / 2) / df)\n\ *************** *** 877,884 **** DEFUN_DLD (randp, args, , "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {} randp (@var{l}, @var{x})\n\ ! @deftypefnx {Loadable Function} {} randp (@var{l}, @var{n}, @var{m})\n\ @deftypefnx {Loadable Function} {@var{v} =} randp (\"state\")\n\ @deftypefnx {Loadable Function} {} randp (\"state\", @var{v})\n\ @deftypefnx {Loadable Function} {} randp (\"state\", \"reset\")\n\ --- 881,889 ---- DEFUN_DLD (randp, args, , "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {} randp (@var{l}, @var{n})\n\ ! @deftypefnx {Loadable Function} {} randp (@var{l}, @var{n}, @var{m}, @dots{})\n\ ! @deftypefnx {Loadable Function} {} randp (@var{l}, [@var{n} @var{m} @dots{}])\n\ @deftypefnx {Loadable Function} {@var{v} =} randp (\"state\")\n\ @deftypefnx {Loadable Function} {} randp (\"state\", @var{v})\n\ @deftypefnx {Loadable Function} {} randp (\"state\", \"reset\")\n\ *************** *** 1022,1028 **** @deftypefnx {Loadable Function} {} randperm (@var{n}, @var{m})\n\ Return a row vector containing a random permutation of @code{1:@var{n}}.\n\ If @var{m} is supplied, return @var{m} permutations,\n\ ! one in each row of an @nospell{NxM} matrix. The complexity is O(M*N) in both\n\ time and memory. The randomization is performed using rand().\n\ All permutations are equally likely.\n\ @seealso{perms}\n\ --- 1027,1033 ---- @deftypefnx {Loadable Function} {} randperm (@var{n}, @var{m})\n\ Return a row vector containing a random permutation of @code{1:@var{n}}.\n\ If @var{m} is supplied, return @var{m} permutations,\n\ ! one in each row of an @nospell{MxN} matrix. The complexity is O(M*N) in both\n\ time and memory. The randomization is performed using rand().\n\ All permutations are equally likely.\n\ @seealso{perms}\n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/regexp.cc octave-3.4.1/src/DLD-FUNCTIONS/regexp.cc *** octave-3.4.0/src/DLD-FUNCTIONS/regexp.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/regexp.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 41,55 **** #include "parse.h" #include "oct-locbuf.h" - #if defined (HAVE_PCRE) #include - #elif defined (HAVE_REGEX) - #if defined (__MINGW32__) - #define __restrict - #endif - #include - #include - #endif // Define the maximum number of retries for a pattern that // possibly results in an infinite recursion. --- 41,47 ---- *************** *** 92,98 **** string_vector &named, int &nopts, bool &once) { int sz = 0; ! #if defined (HAVE_REGEX) || defined (HAVE_PCRE) int nargin = args.length(); bool lineanchors = false; bool dotexceptnewline = false; --- 84,90 ---- string_vector &named, int &nopts, bool &once) { int sz = 0; ! int nargin = args.length(); bool lineanchors = false; bool dotexceptnewline = false; *************** *** 157,163 **** freespacing = false; nopts--; } ! #if HAVE_PCRE // Only accept these options with pcre else if (str.find("dotexceptnewline", 0) == 0) { --- 149,155 ---- freespacing = false; nopts--; } ! // Only accept these options with pcre else if (str.find("dotexceptnewline", 0) == 0) { *************** *** 178,194 **** str.find("tokenextents", 0) && str.find("match", 0) && str.find("tokens", 0) && str.find("names", 0)) error ("%s: unrecognized option", nm.c_str()); - #else - else if (str.find("names", 0) == 0 || - str.find("dotexceptnewline", 0) == 0 || - str.find("lineanchors", 0) == 0 || - str.find("freespacing", 0) == 0) - error ("%s: %s not implemented in this version", str.c_str(), nm.c_str()); - else if (str.find("start", 0) && str.find("end", 0) && - str.find("tokenextents", 0) && str.find("match", 0) && - str.find("tokens", 0)) - error ("%s: unrecognized option", nm.c_str()); - #endif } if (!error_state) --- 170,175 ---- *************** *** 198,204 **** double s, e; // named tokens "(?...)" are only treated with PCRE not regex. - #if HAVE_PCRE size_t pos = 0; size_t new_pos; --- 179,184 ---- *************** *** 237,250 **** for (int i = 0; i < nnames; i++) if (named(i) == tmp_name) { ! named_idx.resize(inames+1, 1); named_idx(inames) = i; found = true; break; } if (! found) { ! named_idx.resize(inames+1, 1); named_idx(inames) = nnames; named.append(tmp_name); nnames++; --- 217,230 ---- for (int i = 0; i < nnames; i++) if (named(i) == tmp_name) { ! named_idx.resize (dim_vector (inames+1, 1)); named_idx(inames) = i; found = true; break; } if (! found) { ! named_idx.resize (dim_vector (inames+1, 1)); named_idx(inames) = nnames; named.append(tmp_name); nnames++; *************** *** 494,572 **** } pcre_free(re); - #else - regex_t compiled; - int err=regcomp(&compiled, pattern.c_str(), REG_EXTENDED | - (case_insensitive ? REG_ICASE : 0)); - if (err) - { - int len = regerror(err, &compiled, 0, 0); - OCTAVE_LOCAL_BUFFER (char, errmsg, len); - regerror(err, &compiled, errmsg, len); - error("%s: %s in pattern (%s)", nm.c_str(), errmsg, - pattern.c_str()); - regfree(&compiled); - return 0; - } - - int subexpr = 1; - int idx = 0; - for (unsigned int i=0; i < pattern.length(); i++) - subexpr += ( pattern[i] == '(' ? 1 : 0 ); - OCTAVE_LOCAL_BUFFER (regmatch_t, match, subexpr ); - - while(true) - { - OCTAVE_QUIT; - - if (regexec(&compiled, buffer.c_str() + idx, subexpr, - match, (idx ? REG_NOTBOL : 0)) == 0) - { - // Count actual matches - int matches = 0; - while (matches < subexpr && match[matches].rm_so >= 0) - matches++; - - if (matches == 0 || match[0].rm_eo == 0) - break; - - s = double (match[0].rm_so+1+idx); - e = double (match[0].rm_eo+idx); - Matrix te(matches-1,2); - for (int i = 1; i < matches; i++) - { - te(i-1,0) = double (match[i].rm_so+1+idx); - te(i-1,1) = double (match[i].rm_eo+idx); - } - - m = buffer.substr (match[0].rm_so+idx, - match[0].rm_eo-match[0].rm_so); - - Cell cell_t (dim_vector(1,matches-1)); - for (int i = 1; i < matches; i++) - cell_t(i-1) = buffer.substr (match[i].rm_so+idx, - match[i].rm_eo-match[i].rm_so); - t = cell_t; - - idx += match[0].rm_eo; - - string_vector sv; - regexp_elem new_elem (sv, t, m, te, s, e); - lst.push_back (new_elem); - sz++; - - if (once) - break; - } - else - break; - } - regfree(&compiled); - #endif } ! #else ! error ("%s: not available in this version of Octave", nm.c_str()); ! #endif return sz; } --- 474,481 ---- } pcre_free(re); } ! return sz; } *************** *** 587,594 **** // Converted the linked list in the correct form for the return values octave_idx_type i = 0; - #ifdef HAVE_PCRE octave_scalar_map nmap; if (sz == 1) { for (int j = 0; j < named.length(); j++) --- 496,503 ---- // Converted the linked list in the correct form for the return values octave_idx_type i = 0; octave_scalar_map nmap; + if (sz == 1) { for (int j = 0; j < named.length(); j++) *************** *** 607,615 **** } retval(5) = nmap; } - #else - retval(5) = octave_scalar_map (); - #endif if (once) retval(4) = sz ? lst.front ().t : Cell(); --- 516,521 ---- *************** *** 885,893 **** @deftypefnx {Loadable Function} {[@dots{}] =} regexp (@var{str}, @var{pat}, \"@var{opt1}\", @dots{})\n\ Regular expression string matching. Search for @var{pat} in @var{str} and\n\ return the positions and substrings of any matches, or empty values if there\n\ ! are none. Note, some features and extended options are only available when\n\ ! Octave is compiled with support for Perl Compatible Regular Expressions\n\ ! (PCRE).\n\ \n\ The matched pattern @var{pat} can include any of the standard regex\n\ operators, including:\n\ --- 791,797 ---- @deftypefnx {Loadable Function} {[@dots{}] =} regexp (@var{str}, @var{pat}, \"@var{opt1}\", @dots{})\n\ Regular expression string matching. Search for @var{pat} in @var{str} and\n\ return the positions and substrings of any matches, or empty values if there\n\ ! are none.\n\ \n\ The matched pattern @var{pat} can include any of the standard regex\n\ operators, including:\n\ *************** *** 924,934 **** and \"]\". If the first character is \"^\" then the pattern is inverted and\n\ any character except those listed between brackets will match.\n\ \n\ ! With PCRE support, escape sequences defined below can be used inside list\n\ operators. For example, a template for a floating point number might be\n\ ! @code{[-+.\\d]+}. POSIX regular expressions do not use escape sequences\n\ ! and any backslash @samp{\\} will be interpreted literally as one\n\ ! of the list of characters to match.\n\ \n\ @item ()\n\ Grouping operator\n\ --- 828,836 ---- and \"]\". If the first character is \"^\" then the pattern is inverted and\n\ any character except those listed between brackets will match.\n\ \n\ ! Escape sequences defined below can also be used inside list\n\ operators. For example, a template for a floating point number might be\n\ ! @code{[-+.\\d]+}.\n\ \n\ @item ()\n\ Grouping operator\n\ *************** *** 975,988 **** @item \\d\n\ Match any digit\n\ \n\ - This sequence is only available with PCRE support. For POSIX regular\n\ - expressions use the following list operator @code{[0-9]}.\n\ - \n\ @item \\D\n\ Match any non-digit\n\ - \n\ - This sequence is only available with PCRE support. For POSIX regular\n\ - expressions use the following list operator @code{[^0-9]}.\n\ @end table\n\ \n\ The outputs of @code{regexp} default to the order given below\n\ --- 877,884 ---- *************** *** 1007,1013 **** @item nm\n\ A structure containing the text of each matched named token, with the name\n\ being used as the fieldname. A named token is denoted by\n\ ! @code{(?@dots{})} and is only available with PCRE support.\n\ @end table\n\ \n\ Particular output arguments, or the order of the output arguments, can be\n\ --- 903,909 ---- @item nm\n\ A structure containing the text of each matched named token, with the name\n\ being used as the fieldname. A named token is denoted by\n\ ! @code{(?@dots{})}.\n\ @end table\n\ \n\ Particular output arguments, or the order of the output arguments, can be\n\ *************** *** 1033,1081 **** @item matchcase\n\ Make the matching case sensitive. (default)\n\ \n\ ! Alternatively, use (?-i) in the pattern when PCRE is available.\n\ \n\ @item ignorecase\n\ Ignore case when matching the pattern to the string.\n\ \n\ ! Alternatively, use (?i) in the pattern when PCRE is available.\n\ \n\ @item stringanchors\n\ ! Match the anchor characters at the beginning and end of the string. \n\ (default)\n\ \n\ ! Alternatively, use (?-m) in the pattern when PCRE is available.\n\ \n\ @item lineanchors\n\ Match the anchor characters at the beginning and end of the line.\n\ - Only available when Octave is compiled with PCRE.\n\ \n\ ! Alternatively, use (?m) in the pattern when PCRE is available.\n\ \n\ @item dotall\n\ The pattern @code{.} matches all characters including the newline character.\n\ (default)\n\ \n\ ! Alternatively, use (?s) in the pattern when PCRE is available.\n\ \n\ @item dotexceptnewline\n\ The pattern @code{.} matches all characters except the newline character.\n\ - Only available when Octave is compiled with PCRE.\n\ \n\ ! Alternatively, use (?-s) in the pattern when PCRE is available.\n\ \n\ @item literalspacing\n\ All characters in the pattern, including whitespace, are significant and are\n\ used in pattern matching. (default)\n\ \n\ ! Alternatively, use (?-x) in the pattern when PCRE is available.\n\ \n\ @item freespacing\n\ The pattern may include arbitrary whitespace and also comments beginning with\n\ the character @samp{#}.\n\ - Only available when Octave is compiled with PCRE.\n\ \n\ ! Alternatively, use (?x) in the pattern when PCRE is available.\n\ \n\ @end table\n\ @seealso{regexpi, strfind, regexprep}\n\ --- 929,974 ---- @item matchcase\n\ Make the matching case sensitive. (default)\n\ \n\ ! Alternatively, use (?-i) in the pattern.\n\ \n\ @item ignorecase\n\ Ignore case when matching the pattern to the string.\n\ \n\ ! Alternatively, use (?i) in the pattern.\n\ \n\ @item stringanchors\n\ ! Match the anchor characters at the beginning and end of the string.\n\ (default)\n\ \n\ ! Alternatively, use (?-m) in the pattern.\n\ \n\ @item lineanchors\n\ Match the anchor characters at the beginning and end of the line.\n\ \n\ ! Alternatively, use (?m) in the pattern.\n\ \n\ @item dotall\n\ The pattern @code{.} matches all characters including the newline character.\n\ (default)\n\ \n\ ! Alternatively, use (?s) in the pattern.\n\ \n\ @item dotexceptnewline\n\ The pattern @code{.} matches all characters except the newline character.\n\ \n\ ! Alternatively, use (?-s) in the pattern.\n\ \n\ @item literalspacing\n\ All characters in the pattern, including whitespace, are significant and are\n\ used in pattern matching. (default)\n\ \n\ ! Alternatively, use (?-x) in the pattern.\n\ \n\ @item freespacing\n\ The pattern may include arbitrary whitespace and also comments beginning with\n\ the character @samp{#}.\n\ \n\ ! Alternatively, use (?x) in the pattern.\n\ \n\ @end table\n\ @seealso{regexpi, strfind, regexprep}\n\ *************** *** 1168,1174 **** %! assert (m,'short') %! assert (isempty(t)) ! %!testif HAVE_PCRE %! [s, e, te, m, t, nm] = regexp('short test string','(?\w*t)\s*(?\w*t)'); %! assert (s,1) %! assert (e,10) --- 1061,1067 ---- %! assert (m,'short') %! assert (isempty(t)) ! %!test %! [s, e, te, m, t, nm] = regexp('short test string','(?\w*t)\s*(?\w*t)'); %! assert (s,1) %! assert (e,10) *************** *** 1184,1190 **** %! assert (nm.word1,'short') %! assert (nm.word2,'test') ! %!testif HAVE_PCRE %! [nm, m, te, e, s, t] = regexp('short test string','(?\w*t)\s*(?\w*t)', 'names', 'match', 'tokenExtents', 'end', 'start', 'tokens'); %! assert (s,1) %! assert (e,10) --- 1077,1083 ---- %! assert (nm.word1,'short') %! assert (nm.word2,'test') ! %!test %! [nm, m, te, e, s, t] = regexp('short test string','(?\w*t)\s*(?\w*t)', 'names', 'match', 'tokenExtents', 'end', 'start', 'tokens'); %! assert (s,1) %! assert (e,10) *************** *** 1200,1206 **** %! assert (nm.word1,'short') %! assert (nm.word2,'test') ! %!testif HAVE_PCRE %! [t, nm] = regexp("John Davis\nRogers, James",'(?\w+)\s+(?\w+)|(?\w+),\s+(?\w+)','tokens','names'); %! assert (size(t), [1,2]); %! assert (t{1}{1},'John'); --- 1093,1099 ---- %! assert (nm.word1,'short') %! assert (nm.word2,'test') ! %!test %! [t, nm] = regexp("John Davis\nRogers, James",'(?\w+)\s+(?\w+)|(?\w+),\s+(?\w+)','tokens','names'); %! assert (size(t), [1,2]); %! assert (t{1}{1},'John'); *************** *** 1213,1225 **** %! assert (nm.last{1},'Davis'); %! assert (nm.last{2},'Rogers'); ! %!testif HAVE_PCRE %! # Parenthesis in named token (ie (int)) causes a problem %! assert (regexp('qwe int asd', ['(?(int))'], 'names'), struct ('typestr', 'int')); %!assert(regexp("abc\nabc",'.'),[1:7]) %!assert(regexp("abc\nabc",'.','dotall'),[1:7]) ! %!testif HAVE_PCRE %! assert(regexp("abc\nabc",'(?s).'),[1:7]) %! assert(regexp("abc\nabc",'.','dotexceptnewline'),[1,2,3,5,6,7]) %! assert(regexp("abc\nabc",'(?-s).'),[1,2,3,5,6,7]) --- 1106,1118 ---- %! assert (nm.last{1},'Davis'); %! assert (nm.last{2},'Rogers'); ! %!test %! # Parenthesis in named token (ie (int)) causes a problem %! assert (regexp('qwe int asd', ['(?(int))'], 'names'), struct ('typestr', 'int')); %!assert(regexp("abc\nabc",'.'),[1:7]) %!assert(regexp("abc\nabc",'.','dotall'),[1:7]) ! %!test %! assert(regexp("abc\nabc",'(?s).'),[1:7]) %! assert(regexp("abc\nabc",'.','dotexceptnewline'),[1,2,3,5,6,7]) %! assert(regexp("abc\nabc",'(?-s).'),[1,2,3,5,6,7]) *************** *** 1227,1246 **** %!assert(regexp("caseCaSe",'case'),1) %!assert(regexp("caseCaSe",'case',"matchcase"),1) %!assert(regexp("caseCaSe",'case',"ignorecase"),[1,5]) ! %!testif HAVE_PCRE %! assert(regexp("caseCaSe",'(?-i)case'),1) %! assert(regexp("caseCaSe",'(?i)case'),[1,5]) %!assert (regexp("abc\nabc",'c$'),7) %!assert (regexp("abc\nabc",'c$',"stringanchors"),7) ! %!testif HAVE_PCRE %! assert (regexp("abc\nabc",'(?-m)c$'),7) %! assert (regexp("abc\nabc",'c$',"lineanchors"),[3,7]) %! assert (regexp("abc\nabc",'(?m)c$'),[3,7]) %!assert (regexp("this word",'s w'),4) %!assert (regexp("this word",'s w','literalspacing'),4) ! %!testif HAVE_PCRE %! assert (regexp("this word",'(?-x)s w','literalspacing'),4) %! assert (regexp("this word",'s w','freespacing'),zeros(1,0)) %! assert (regexp("this word",'(?x)s w'),zeros(1,0)) --- 1120,1139 ---- %!assert(regexp("caseCaSe",'case'),1) %!assert(regexp("caseCaSe",'case',"matchcase"),1) %!assert(regexp("caseCaSe",'case',"ignorecase"),[1,5]) ! %!test %! assert(regexp("caseCaSe",'(?-i)case'),1) %! assert(regexp("caseCaSe",'(?i)case'),[1,5]) %!assert (regexp("abc\nabc",'c$'),7) %!assert (regexp("abc\nabc",'c$',"stringanchors"),7) ! %!test %! assert (regexp("abc\nabc",'(?-m)c$'),7) %! assert (regexp("abc\nabc",'c$',"lineanchors"),[3,7]) %! assert (regexp("abc\nabc",'(?m)c$'),[3,7]) %!assert (regexp("this word",'s w'),4) %!assert (regexp("this word",'s w','literalspacing'),4) ! %!test %! assert (regexp("this word",'(?-x)s w','literalspacing'),4) %! assert (regexp("this word",'s w','freespacing'),zeros(1,0)) %! assert (regexp("this word",'(?x)s w'),zeros(1,0)) *************** *** 1254,1260 **** %!assert(regexp('Strings',{'t','s'}),{2,7}) ## Test case for lookaround operators ! %!testif HAVE_PCRE %! assert(regexp('Iraq','q(?!u)'),4) %! assert(regexp('quit','q(?!u)'), zeros(1,0)) %! assert(regexp('quit','q(?=u)','match'), {'q'}) --- 1147,1153 ---- %!assert(regexp('Strings',{'t','s'}),{2,7}) ## Test case for lookaround operators ! %!test %! assert(regexp('Iraq','q(?!u)'),4) %! assert(regexp('quit','q(?!u)'), zeros(1,0)) %! assert(regexp('quit','q(?=u)','match'), {'q'}) *************** *** 1353,1359 **** %! assert (m,'ShoRt') %! assert (isempty(t)) ! %!testif HAVE_PCRE %! [s, e, te, m, t, nm] = regexpi('ShoRt Test String','(?\w*t)\s*(?\w*t)'); %! assert (s,1) %! assert (e,10) --- 1246,1252 ---- %! assert (m,'ShoRt') %! assert (isempty(t)) ! %!test %! [s, e, te, m, t, nm] = regexpi('ShoRt Test String','(?\w*t)\s*(?\w*t)'); %! assert (s,1) %! assert (e,10) *************** *** 1369,1375 **** %! assert (nm.word1,'ShoRt') %! assert (nm.word2,'Test') ! %!testif HAVE_PCRE %! [nm, m, te, e, s, t] = regexpi('ShoRt Test String','(?\w*t)\s*(?\w*t)', 'names', 'match', 'tokenExtents', 'end', 'start', 'tokens'); %! assert (s,1) %! assert (e,10) --- 1262,1268 ---- %! assert (nm.word1,'ShoRt') %! assert (nm.word2,'Test') ! %!test %! [nm, m, te, e, s, t] = regexpi('ShoRt Test String','(?\w*t)\s*(?\w*t)', 'names', 'match', 'tokenExtents', 'end', 'start', 'tokens'); %! assert (s,1) %! assert (e,10) *************** *** 1387,1393 **** %!assert(regexpi("abc\nabc",'.'),[1:7]) %!assert(regexpi("abc\nabc",'.','dotall'),[1:7]) ! %!testif HAVE_PCRE %! assert(regexpi("abc\nabc",'(?s).'),[1:7]) %! assert(regexpi("abc\nabc",'.','dotexceptnewline'),[1,2,3,5,6,7]) %! assert(regexpi("abc\nabc",'(?-s).'),[1,2,3,5,6,7]) --- 1280,1286 ---- %!assert(regexpi("abc\nabc",'.'),[1:7]) %!assert(regexpi("abc\nabc",'.','dotall'),[1:7]) ! %!test %! assert(regexpi("abc\nabc",'(?s).'),[1:7]) %! assert(regexpi("abc\nabc",'.','dotexceptnewline'),[1,2,3,5,6,7]) %! assert(regexpi("abc\nabc",'(?-s).'),[1,2,3,5,6,7]) *************** *** 1395,1414 **** %!assert(regexpi("caseCaSe",'case'),[1,5]) %!assert(regexpi("caseCaSe",'case',"matchcase"),1) %!assert(regexpi("caseCaSe",'case',"ignorecase"),[1,5]) ! %!testif HAVE_PCRE %! assert(regexpi("caseCaSe",'(?-i)case'),1) %! assert(regexpi("caseCaSe",'(?i)case'),[1,5]) %!assert (regexpi("abc\nabc",'C$'),7) %!assert (regexpi("abc\nabc",'C$',"stringanchors"),7) ! %!testif HAVE_PCRE %! assert (regexpi("abc\nabc",'(?-m)C$'),7) %! assert (regexpi("abc\nabc",'C$',"lineanchors"),[3,7]) %! assert (regexpi("abc\nabc",'(?m)C$'),[3,7]) %!assert (regexpi("this word",'S w'),4) %!assert (regexpi("this word",'S w','literalspacing'),4) ! %!testif HAVE_PCRE %! assert (regexpi("this word",'(?-x)S w','literalspacing'),4) %! assert (regexpi("this word",'S w','freespacing'),zeros(1,0)) %! assert (regexpi("this word",'(?x)S w'),zeros(1,0)) --- 1288,1307 ---- %!assert(regexpi("caseCaSe",'case'),[1,5]) %!assert(regexpi("caseCaSe",'case',"matchcase"),1) %!assert(regexpi("caseCaSe",'case',"ignorecase"),[1,5]) ! %!test %! assert(regexpi("caseCaSe",'(?-i)case'),1) %! assert(regexpi("caseCaSe",'(?i)case'),[1,5]) %!assert (regexpi("abc\nabc",'C$'),7) %!assert (regexpi("abc\nabc",'C$',"stringanchors"),7) ! %!test %! assert (regexpi("abc\nabc",'(?-m)C$'),7) %! assert (regexpi("abc\nabc",'C$',"lineanchors"),[3,7]) %! assert (regexpi("abc\nabc",'(?m)C$'),[3,7]) %!assert (regexpi("this word",'S w'),4) %!assert (regexpi("this word",'S w','literalspacing'),4) ! %!test %! assert (regexpi("this word",'(?-x)S w','literalspacing'),4) %! assert (regexpi("this word",'S w','freespacing'),zeros(1,0)) %! assert (regexpi("this word",'(?x)S w'),zeros(1,0)) *************** *** 1746,1752 **** %! assert(t,' some stuff') ## Test capture replacement ! %!testif HAVE_PCRE %! data = "Bob Smith\nDavid Hollerith\nSam Jenkins"; %! result = "Smith, Bob\nHollerith, David\nJenkins, Sam"; %! t = regexprep(data,'(?m)^(\w+)\s+(\w+)$','$2, $1'); --- 1639,1645 ---- %! assert(t,' some stuff') ## Test capture replacement ! %!test %! data = "Bob Smith\nDavid Hollerith\nSam Jenkins"; %! result = "Smith, Bob\nHollerith, David\nJenkins, Sam"; %! t = regexprep(data,'(?m)^(\w+)\s+(\w+)$','$2, $1'); *************** *** 1781,1787 **** %!assert(regexprep({"abc","cba"},{"b","a"},{"?","!"}),{"!?c","c?!"}) # Nasty lookbehind expression ! %!testif HAVE_PCRE %! assert(regexprep('x^(-1)+y(-1)+z(-1)=0','(?<=[a-z]+)\(\-[1-9]*\)','_minus1'),'x^(-1)+y_minus1+z_minus1=0') */ --- 1674,1680 ---- %!assert(regexprep({"abc","cba"},{"b","a"},{"?","!"}),{"!?c","c?!"}) # Nasty lookbehind expression ! %!test %! assert(regexprep('x^(-1)+y(-1)+z(-1)=0','(?<=[a-z]+)\(\-[1-9]*\)','_minus1'),'x^(-1)+y_minus1+z_minus1=0') */ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/schur.cc octave-3.4.1/src/DLD-FUNCTIONS/schur.cc *** octave-3.4.0/src/DLD-FUNCTIONS/schur.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/schur.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 63,229 **** @deftypefnx {Loadable Function} {@var{S} =} schur (@var{A}, \"complex\")\n\ @deftypefnx {Loadable Function} {[@var{U}, @var{S}] =} schur (@var{A}, @var{opt})\n\ @cindex Schur decomposition\n\ ! The Schur@tie{}decomposition is used to compute eigenvalues of a\n\ ! square matrix, and has applications in the solution of algebraic\n\ ! Riccati equations in control (see @code{are} and @code{dare}).\n\ ! @code{schur} always returns\n\ @tex\n\ ! $S = U^T A U$\n\ @end tex\n\ @ifnottex\n\ @code{@var{S} = @var{U}' * @var{A} * @var{U}}\n\ @end ifnottex\n\ ! where\n\ ! @tex\n\ ! $U$\n\ ! @end tex\n\ ! @ifnottex\n\ ! @var{U}\n\ ! @end ifnottex\n\ ! is a unitary matrix\n\ @tex\n\ ($U^T U$ is identity)\n\ @end tex\n\ @ifnottex\n\ (@code{@var{U}'* @var{U}} is identity)\n\ @end ifnottex\n\ ! and\n\ ! @tex\n\ ! $S$\n\ ! @end tex\n\ ! @ifnottex\n\ ! @var{S}\n\ ! @end ifnottex\n\ ! is upper triangular. The eigenvalues of\n\ ! @tex\n\ ! $A$ (and $S$)\n\ ! @end tex\n\ ! @ifnottex\n\ ! @var{A} (and @var{S})\n\ ! @end ifnottex\n\ ! are the diagonal elements of\n\ ! @tex\n\ ! $S$.\n\ ! @end tex\n\ ! @ifnottex\n\ ! @var{S}.\n\ ! @end ifnottex\n\ ! If the matrix\n\ ! @tex\n\ ! $A$\n\ ! @end tex\n\ ! @ifnottex\n\ ! @var{A}\n\ ! @end ifnottex\n\ is real, then the real Schur@tie{}decomposition is computed, in which the\n\ ! matrix\n\ ! @tex\n\ ! $U$\n\ ! @end tex\n\ ! @ifnottex\n\ ! @var{U}\n\ ! @end ifnottex\n\ ! is orthogonal and\n\ ! @tex\n\ ! $S$\n\ ! @end tex\n\ ! @ifnottex\n\ ! @var{S}\n\ ! @end ifnottex\n\ ! is block upper triangular\n\ with blocks of size at most\n\ @tex\n\ ! $2\\times 2$\n\ @end tex\n\ @ifnottex\n\ @code{2 x 2}\n\ @end ifnottex\n\ ! along the diagonal. The diagonal elements of\n\ ! @tex\n\ ! $S$\n\ ! @end tex\n\ ! @ifnottex\n\ ! @var{S}\n\ ! @end ifnottex\n\ (or the eigenvalues of the\n\ @tex\n\ ! $2\\times 2$\n\ @end tex\n\ @ifnottex\n\ @code{2 x 2}\n\ @end ifnottex\n\ ! blocks, when\n\ ! appropriate) are the eigenvalues of\n\ ! @tex\n\ ! $A$\n\ ! @end tex\n\ ! @ifnottex\n\ ! @var{A}\n\ ! @end ifnottex\n\ ! and\n\ ! @tex\n\ ! $S$.\n\ ! @end tex\n\ ! @ifnottex\n\ ! @var{S}.\n\ ! @end ifnottex\n\ \n\ A complex decomposition may be forced by passing \"complex\" as @var{opt}.\n\ \n\ The eigenvalues are optionally ordered along the diagonal according to\n\ the value of @var{opt}. @code{@var{opt} = \"a\"} indicates that all\n\ eigenvalues with negative real parts should be moved to the leading\n\ ! block of\n\ ! @tex\n\ ! $S$\n\ ! @end tex\n\ ! @ifnottex\n\ ! @var{S}\n\ ! @end ifnottex\n\ (used in @code{are}), @code{@var{opt} = \"d\"} indicates that all eigenvalues\n\ ! with magnitude less than one should be moved to the leading block of\n\ ! @tex\n\ ! $S$\n\ ! @end tex\n\ ! @ifnottex\n\ ! @var{S}\n\ ! @end ifnottex\n\ (used in @code{dare}), and @code{@var{opt} = \"u\"}, the default, indicates\n\ ! that no ordering of eigenvalues should occur. The leading\n\ ! @tex\n\ ! $k$\n\ ! @end tex\n\ ! @ifnottex\n\ ! @var{k}\n\ ! @end ifnottex\n\ ! columns of\n\ ! @tex\n\ ! $U$\n\ ! @end tex\n\ ! @ifnottex\n\ ! @var{U}\n\ ! @end ifnottex\n\ ! always span the\n\ ! @tex\n\ ! $A$-invariant\n\ ! @end tex\n\ ! @ifnottex\n\ ! @var{A}-invariant\n\ ! @end ifnottex\n\ ! subspace corresponding to the\n\ ! @tex\n\ ! $k$\n\ ! @end tex\n\ ! @ifnottex\n\ ! @var{k}\n\ ! @end ifnottex\n\ ! leading eigenvalues of\n\ ! @tex\n\ ! $S$.\n\ ! @end tex\n\ ! @ifnottex\n\ ! @var{S}.\n\ ! @end ifnottex\n\ @end deftypefn") { octave_value_list retval; --- 63,126 ---- @deftypefnx {Loadable Function} {@var{S} =} schur (@var{A}, \"complex\")\n\ @deftypefnx {Loadable Function} {[@var{U}, @var{S}] =} schur (@var{A}, @var{opt})\n\ @cindex Schur decomposition\n\ ! Compute the Schur@tie{}decomposition of @var{A}\n\ @tex\n\ ! $$\n\ ! S = U^T A U\n\ ! $$\n\ @end tex\n\ @ifnottex\n\ + \n\ + @example\n\ @code{@var{S} = @var{U}' * @var{A} * @var{U}}\n\ + @end example\n\ + \n\ @end ifnottex\n\ ! where @var{U} is a unitary matrix\n\ @tex\n\ ($U^T U$ is identity)\n\ @end tex\n\ @ifnottex\n\ (@code{@var{U}'* @var{U}} is identity)\n\ @end ifnottex\n\ ! and @var{S} is upper triangular. The eigenvalues of @var{A} (and @var{S})\n\ ! are the diagonal elements of @var{S}. If the matrix @var{A}\n\ is real, then the real Schur@tie{}decomposition is computed, in which the\n\ ! matrix @var{U} is orthogonal and @var{S} is block upper triangular\n\ with blocks of size at most\n\ @tex\n\ ! $2 \\times 2$\n\ @end tex\n\ @ifnottex\n\ @code{2 x 2}\n\ @end ifnottex\n\ ! along the diagonal. The diagonal elements of @var{S}\n\ (or the eigenvalues of the\n\ @tex\n\ ! $2 \\times 2$\n\ @end tex\n\ @ifnottex\n\ @code{2 x 2}\n\ @end ifnottex\n\ ! blocks, when appropriate) are the eigenvalues of @var{A} and @var{S}.\n\ \n\ A complex decomposition may be forced by passing \"complex\" as @var{opt}.\n\ \n\ The eigenvalues are optionally ordered along the diagonal according to\n\ the value of @var{opt}. @code{@var{opt} = \"a\"} indicates that all\n\ eigenvalues with negative real parts should be moved to the leading\n\ ! block of @var{S}\n\ (used in @code{are}), @code{@var{opt} = \"d\"} indicates that all eigenvalues\n\ ! with magnitude less than one should be moved to the leading block of @var{S}\n\ (used in @code{dare}), and @code{@var{opt} = \"u\"}, the default, indicates\n\ ! that no ordering of eigenvalues should occur. The leading @var{k}\n\ ! columns of @var{U} always span the @var{A}-invariant\n\ ! subspace corresponding to the @var{k} leading eigenvalues of @var{S}.\n\ ! \n\ ! The Schur@tie{}decomposition is used to compute eigenvalues of a\n\ ! square matrix, and has applications in the solution of algebraic\n\ ! Riccati equations in control (see @code{are} and @code{dare}).\n\ ! @seealso{rsf2csf}\n\ @end deftypefn") { octave_value_list retval; *************** *** 396,405 **** Convert a real, upper quasi-triangular Schur@tie{}form @var{TR} to a complex,\n\ upper triangular Schur@tie{}form @var{T}.\n\ \n\ ! Note that the following relations hold: \n\ \n\ @code{@var{UR} * @var{TR} * @var{UR}' = @var{U} * @var{T} * @var{U}'} and\n\ @code{@var{U}' * @var{U}} is the identity matrix I.\n\ \n\ Note also that @var{U} and @var{T} are not unique.\n\ @seealso{schur}\n\ --- 293,308 ---- Convert a real, upper quasi-triangular Schur@tie{}form @var{TR} to a complex,\n\ upper triangular Schur@tie{}form @var{T}.\n\ \n\ ! Note that the following relations hold:\n\ \n\ + @tex\n\ + $UR \\cdot TR \\cdot {UR}^T = U T U^{\\dagger}$ and\n\ + $U^{\\dagger} U$ is the identity matrix I.\n\ + @end tex\n\ + @ifnottex\n\ @code{@var{UR} * @var{TR} * @var{UR}' = @var{U} * @var{T} * @var{U}'} and\n\ @code{@var{U}' * @var{U}} is the identity matrix I.\n\ + @end ifnottex\n\ \n\ Note also that @var{U} and @var{T} are not unique.\n\ @seealso{schur}\n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/sqrtm.cc octave-3.4.1/src/DLD-FUNCTIONS/sqrtm.cc *** octave-3.4.0/src/DLD-FUNCTIONS/sqrtm.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/sqrtm.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 214,220 **** DEFUN_DLD (sqrtm, args, nargout, "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {[@var{result}, @var{error_estimate}] =} sqrtm (@var{A})\n\ Compute the matrix square root of the square matrix @var{A}.\n\ \n\ Ref: N.J. Higham. @cite{A New sqrtm for @sc{matlab}}. Numerical\n\ --- 214,221 ---- DEFUN_DLD (sqrtm, args, nargout, "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {@var{s} =} sqrtm (@var{A})\n\ ! @deftypefnx {Loadable Function} {[@var{s}, @var{error_estimate}] =} sqrtm (@var{A})\n\ Compute the matrix square root of the square matrix @var{A}.\n\ \n\ Ref: N.J. Higham. @cite{A New sqrtm for @sc{matlab}}. Numerical\n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/str2double.cc octave-3.4.1/src/DLD-FUNCTIONS/str2double.cc *** octave-3.4.0/src/DLD-FUNCTIONS/str2double.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/str2double.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 244,281 **** case each element is converted and an array of the same dimensions is\n\ returned.\n\ \n\ ! @code{str2double} can replace @code{str2num}, and it avoids the use of\n\ ! @code{eval} on unknown data.\n\ @seealso{str2num}\n\ @end deftypefn") { octave_value retval; ! if (args.length () == 1) { ! if (args(0).is_string ()) { ! if (args(0).rows () == 1 && args(0).ndims () == 2) ! { ! retval = str2double1 (args(0).string_value ()); ! } ! else ! { ! const string_vector sv = args(0).all_strings (); ! if (! error_state) ! retval = sv.map (str2double1); ! } } ! else if (args(0).is_cellstr ()) { ! Array sa = args(0).cellstr_value (); ! retval = sa.map (str2double1); } ! else ! gripe_wrong_type_arg ("str2double", args(0)); } else ! print_usage (); return retval; } --- 244,292 ---- case each element is converted and an array of the same dimensions is\n\ returned.\n\ \n\ ! @code{str2double} returns NaN for elements of @var{s} which cannot be\n\ ! converted.\n\ ! \n\ ! @code{str2double} can replace @code{str2num}, and it avoids the security\n\ ! risk of using @code{eval} on unknown data.\n\ @seealso{str2num}\n\ @end deftypefn") { octave_value retval; ! if (args.length () != 1) ! print_usage (); ! else if (args(0).is_string ()) { ! if (args(0).rows () == 1 && args(0).ndims () == 2) { ! retval = str2double1 (args(0).string_value ()); } ! else { ! const string_vector sv = args(0).all_strings (); ! if (! error_state) ! retval = sv.map (str2double1); } ! } ! else if (args(0).is_cell ()) ! { ! const Cell cell = args(0).cell_value (); ! ! if (! error_state) ! { ! ComplexNDArray output (cell.dims (), octave_NaN); ! for (octave_idx_type i = 0; i < cell.numel (); i++) ! { ! if (cell(i).is_string ()) ! output(i) = str2double1 (cell(i).string_value ()); ! } ! retval = output; ! } } else ! retval = NDArray (args(0).dims (), octave_NaN); ! return retval; } *************** *** 293,298 **** --- 304,310 ---- %!assert (str2double ("1e-3 + i*.25"), 1e-3 + 0.25i) %!assert (str2double (["2 + j";"1.25e-3";"-05"]), [2+i; 1.25e-3; -5]) %!assert (str2double ({"2 + j","1.25e-3","-05"}), [2+i, 1.25e-3, -5]) + %!assert (str2double (1), NaN) %!assert (str2double ("Hello World"), NaN) %!assert (str2double ("NaN"), NaN) %!assert (str2double ("NA"), NA) *************** *** 302,306 **** --- 314,321 ---- %!assert (str2double ("NaN + Inf*i"), complex (NaN, Inf)) %!assert (str2double ("Inf - Inf*i"), complex (Inf, -Inf)) %!assert (str2double ("-i*NaN - Inf"), complex (-Inf, -NaN)) + %!assert (str2double ({"abc", "4i"}), [NaN + 0i, 4i]) + %!assert (str2double ({2, "4i"}), [NaN + 0i, 4i]) + %!assert (str2double (zeros(3,1,2)), NaN (3,1,2)) */ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/strfind.cc octave-3.4.1/src/DLD-FUNCTIONS/strfind.cc *** octave-3.4.0/src/DLD-FUNCTIONS/strfind.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/strfind.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 393,404 **** retval = retc; } else ! error ("strrep: first argument must be a string or cell array of strings"); } else if (argpat.is_cell () || argrep.is_cell ()) retval = do_simple_cellfun (Fstrrep, "strrep", args); else ! error ("strrep: X and Y arguments must be strings or cell arrays of strings"); } else print_usage (); --- 393,404 ---- retval = retc; } else ! error ("strrep: S must be a string or cell array of strings"); } else if (argpat.is_cell () || argrep.is_cell ()) retval = do_simple_cellfun (Fstrrep, "strrep", args); else ! error ("strrep: PTN and REP arguments must be strings or cell arrays of strings"); } else print_usage (); diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/sub2ind.cc octave-3.4.1/src/DLD-FUNCTIONS/sub2ind.cc *** octave-3.4.0/src/DLD-FUNCTIONS/sub2ind.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/sub2ind.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 40,46 **** octave_idx_type n = dimsv.length (); if (n < 1) ! error ("%s: dimension vector must not be empty", name); else { dv.resize (std::max (n, static_cast (2))); --- 40,46 ---- octave_idx_type n = dimsv.length (); if (n < 1) ! error ("%s: dimension vector DIMS must not be empty", name); else { dv.resize (std::max (n, static_cast (2))); *************** *** 52,58 **** dv(i) = ii; else { ! error ("%s: dimension vector must contain integers", name); break; } } --- 52,58 ---- dv(i) = ii; else { ! error ("%s: dimension vector DIMS must contain integers", name); break; } } diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/svd.cc octave-3.4.1/src/DLD-FUNCTIONS/svd.cc *** octave-3.4.0/src/DLD-FUNCTIONS/svd.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/svd.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 48,54 **** Compute the singular value decomposition of @var{A}\n\ @tex\n\ $$\n\ ! A = U S V^H\n\ $$\n\ @end tex\n\ @ifnottex\n\ --- 48,54 ---- Compute the singular value decomposition of @var{A}\n\ @tex\n\ $$\n\ ! A = U S V^{\\dagger}\n\ $$\n\ @end tex\n\ @ifnottex\n\ *************** *** 406,413 **** DEFUN_DLD (svd_driver, args, nargout, "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {@var{old} =} svd_driver (@var{new})\n\ ! Set or query the underlying @sc{lapack} driver used by @code{svd}.\n\ Currently recognized values are \"gesvd\" and \"gesdd\". The default\n\ is \"gesvd\".\n\ @seealso{svd}\n\ --- 406,414 ---- DEFUN_DLD (svd_driver, args, nargout, "-*- texinfo -*-\n\ ! @deftypefn {Loadable Function} {@var{val} =} svd_driver ()\n\ ! @deftypefnx {Loadable Function} {@var{old_val} =} svd_driver (@var{new_val})\n\ ! Query or set the underlying @sc{lapack} driver used by @code{svd}.\n\ Currently recognized values are \"gesvd\" and \"gesdd\". The default\n\ is \"gesvd\".\n\ @seealso{svd}\n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/time.cc octave-3.4.1/src/DLD-FUNCTIONS/time.cc *** octave-3.4.0/src/DLD-FUNCTIONS/time.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/time.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 131,137 **** "-*- texinfo -*-\n\ @deftypefn {Loadable Function} {@var{tm_struct} =} gmtime (@var{t})\n\ Given a value returned from @code{time}, or any non-negative integer,\n\ ! return a time structure corresponding to CUT (Coordinated Universal Time). \n\ For example:\n\ \n\ @example\n\ --- 131,137 ---- "-*- texinfo -*-\n\ @deftypefn {Loadable Function} {@var{tm_struct} =} gmtime (@var{t})\n\ Given a value returned from @code{time}, or any non-negative integer,\n\ ! return a time structure corresponding to CUT (Coordinated Universal Time).\n\ For example:\n\ \n\ @example\n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/tril.cc octave-3.4.1/src/DLD-FUNCTIONS/tril.cc *** octave-3.4.0/src/DLD-FUNCTIONS/tril.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/tril.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 389,395 **** If the option \"pack\" is given as third argument, the extracted elements\n\ are not inserted into a matrix, but rather stacked column-wise one above\n\ other.\n\ ! @seealso{triu, diag}\n\ @end deftypefn") { return do_trilu ("tril", args); --- 389,395 ---- If the option \"pack\" is given as third argument, the extracted elements\n\ are not inserted into a matrix, but rather stacked column-wise one above\n\ other.\n\ ! @seealso{diag}\n\ @end deftypefn") { return do_trilu ("tril", args); *************** *** 400,406 **** @deftypefn {Function File} {} triu (@var{A})\n\ @deftypefnx {Function File} {} triu (@var{A}, @var{k})\n\ @deftypefnx {Function File} {} triu (@var{A}, @var{k}, @var{pack})\n\ ! @xref{tril}.\n\ @end deftypefn") { return do_trilu ("triu", args); --- 400,406 ---- @deftypefn {Function File} {} triu (@var{A})\n\ @deftypefnx {Function File} {} triu (@var{A}, @var{k})\n\ @deftypefnx {Function File} {} triu (@var{A}, @var{k}, @var{pack})\n\ ! See the documentation for the @code{tril} function (@pxref{tril}).\n\ @end deftypefn") { return do_trilu ("triu", args); diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/typecast.cc octave-3.4.1/src/DLD-FUNCTIONS/typecast.cc *** octave-3.4.0/src/DLD-FUNCTIONS/typecast.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/typecast.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 118,124 **** consecutive pairs of real numbers. The sizes of integer types are given by\n\ their bit counts. Both logical and char are typically one byte wide;\n\ however, this is not guaranteed by C++. If your system is IEEE conformant,\n\ ! single and double should be 4 bytes and 8 bytes wide, respectively. \n\ \"logical\" is not allowed for @var{class}. If the input is a row vector,\n\ the return value is a row vector, otherwise it is a column vector. If the\n\ bit length of @var{x} is not divisible by that of @var{class}, an error\n\ --- 118,124 ---- consecutive pairs of real numbers. The sizes of integer types are given by\n\ their bit counts. Both logical and char are typically one byte wide;\n\ however, this is not guaranteed by C++. If your system is IEEE conformant,\n\ ! single and double should be 4 bytes and 8 bytes wide, respectively.\n\ \"logical\" is not allowed for @var{class}. If the input is a row vector,\n\ the return value is a row vector, otherwise it is a column vector. If the\n\ bit length of @var{x} is not divisible by that of @var{class}, an error\n\ diff -cNr octave-3.4.0/src/DLD-FUNCTIONS/urlwrite.cc octave-3.4.1/src/DLD-FUNCTIONS/urlwrite.cc *** octave-3.4.0/src/DLD-FUNCTIONS/urlwrite.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/DLD-FUNCTIONS/urlwrite.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 690,696 **** \n\ @example\n\ @group\n\ ! urlwrite (\"ftp://ftp.octave.org/pub/octave/README\", \n\ \"README.txt\");\n\ @end group\n\ @end example\n\ --- 690,696 ---- \n\ @example\n\ @group\n\ ! urlwrite (\"ftp://ftp.octave.org/pub/octave/README\",\n\ \"README.txt\");\n\ @end group\n\ @end example\n\ diff -cNr octave-3.4.0/src/DOCSTRINGS octave-3.4.1/src/DOCSTRINGS *** octave-3.4.0/src/DOCSTRINGS 2011-02-08 05:11:13.000000000 -0500 --- octave-3.4.1/src/DOCSTRINGS 2011-06-15 11:38:51.000000000 -0400 *************** *** 51,58 **** bitshift (10, [-2, -1, 0, 1, 2]) @result{} 2 5 10 20 40 @c FIXME -- restore this example when third arg is allowed to be an array. ! @c ! @c @c bitshift ([1, 10], 2, [3,4]) @c @result{} 4 8 @end group --- 51,58 ---- bitshift (10, [-2, -1, 0, 1, 2]) @result{} 2 5 10 20 40 @c FIXME -- restore this example when third arg is allowed to be an array. ! @c ! @c @c bitshift ([1, 10], 2, [3,4]) @c @result{} 4 8 @end group *************** *** 66,72 **** @deftypefnx {Built-in Function} {} bitmax ("double") @deftypefnx {Built-in Function} {} bitmax ("single") Return the largest integer that can be represented within a floating point ! value. The default class is "double", but "single" is a valid option. On IEEE-754 compatible systems, @code{bitmax} is @w{@math{2^{53} - 1}}. @end deftypefn intmax --- 66,72 ---- @deftypefnx {Built-in Function} {} bitmax ("double") @deftypefnx {Built-in Function} {} bitmax ("single") Return the largest integer that can be represented within a floating point ! value. The default class is "double", but "single" is a valid option. On IEEE-754 compatible systems, @code{bitmax} is @w{@math{2^{53} - 1}}. @end deftypefn intmax *************** *** 155,173 **** all @c all src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} all (@var{x}, @var{dim}) ! The function @code{all} behaves like the function @code{any}, except ! that it returns true only if all the elements of a vector, or all the ! elements along dimension @var{dim} of a matrix, are nonzero. @end deftypefn any @c any src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} any (@var{x}, @var{dim}) ! For a vector argument, return 1 if any element of the vector is ! nonzero. ! For a matrix argument, return a row vector of ones and zeros with each element indicating whether any of the elements of the corresponding column of the matrix are nonzero. For example: --- 155,189 ---- all @c all src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} all (@var{x}) ! @deftypefnx {Built-in Function} {} all (@var{x}, @var{dim}) ! For a vector argument, return true (logical 1) if all elements of the vector ! are nonzero. ! ! For a matrix argument, return a row vector of logical ones and ! zeros with each element indicating whether all of the elements of the ! corresponding column of the matrix are nonzero. For example: ! ! @example ! @group ! all ([2, 3; 1, 0])) ! @result{} [ 1, 0 ] ! @end group ! @end example ! ! If the optional argument @var{dim} is supplied, work along dimension ! @var{dim}. ! @seealso{any} @end deftypefn any @c any src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} any (@var{x}) ! @deftypefnx {Built-in Function} {} any (@var{x}, @var{dim}) ! For a vector argument, return true (logical 1) if any element of the vector ! is nonzero. ! For a matrix argument, return a row vector of logical ones and zeros with each element indicating whether any of the elements of the corresponding column of the matrix are nonzero. For example: *************** *** 187,192 **** --- 203,209 ---- @result{} [ 1; 1 ] @end group @end example + @seealso{all} @end deftypefn atan2 @c atan2 src/data.cc *************** *** 244,250 **** -*- texinfo -*- @deftypefn {Mapping Function} {} rem (@var{x}, @var{y}) @deftypefnx {Mapping Function} {} fmod (@var{x}, @var{y}) ! Return the remainder of the division @code{@var{x} / @var{y}}, computed using the expression @example --- 261,267 ---- -*- texinfo -*- @deftypefn {Mapping Function} {} rem (@var{x}, @var{y}) @deftypefnx {Mapping Function} {} fmod (@var{x}, @var{y}) ! Return the remainder of the division @code{@var{x} / @var{y}}, computed using the expression @example *************** *** 291,308 **** @deftypefn {Built-in Function} {} cumsum (@var{x}) @deftypefnx {Built-in Function} {} cumsum (@var{x}, @var{dim}) @deftypefnx {Built-in Function} {} cumsum (@dots{}, 'native') Cumulative sum of elements along dimension @var{dim}. If @var{dim} is omitted, it defaults to the first non-singleton dimension. ! The "native" argument implies the summation is performed in native type. ! See @code{sum} for a complete description and example of the use of ! "native". @seealso{sum, cumprod} @end deftypefn diag @c diag src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} diag (@var{v}, @var{k}) Return a diagonal matrix with vector @var{v} on diagonal @var{k}. The second argument is optional. If it is positive, the vector is placed on the @var{k}-th super-diagonal. If it is negative, it is placed on the --- 308,330 ---- @deftypefn {Built-in Function} {} cumsum (@var{x}) @deftypefnx {Built-in Function} {} cumsum (@var{x}, @var{dim}) @deftypefnx {Built-in Function} {} cumsum (@dots{}, 'native') + @deftypefnx {Built-in Function} {} cumsum (@dots{}, 'double') + @deftypefnx {Built-in Function} {} cumsum (@dots{}, 'extra') Cumulative sum of elements along dimension @var{dim}. If @var{dim} is omitted, it defaults to the first non-singleton dimension. ! See @code{sum} for an explanation of the optional parameters 'native', ! 'double', and 'extra'. @seealso{sum, cumprod} @end deftypefn diag @c diag src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {@var{M} =} diag (@var{v}) ! @deftypefnx {Built-in Function} {@var{M} =} diag (@var{v}, @var{k}) ! @deftypefnx {Built-in Function} {@var{M} =} diag (@var{v}, @var{m}, @var{n}) ! @deftypefnx {Built-in Function} {@var{v} =} diag (@var{M}) ! @deftypefnx {Built-in Function} {@var{v} =} diag (@var{M}, @var{k}) Return a diagonal matrix with vector @var{v} on diagonal @var{k}. The second argument is optional. If it is positive, the vector is placed on the @var{k}-th super-diagonal. If it is negative, it is placed on the *************** *** 320,325 **** --- 342,351 ---- @end example @noindent + The 3-input form returns a diagonal matrix with vector @var{v} on the main + diagonal and the resulting matrix being of size @var{m} rows x @var{n} + columns. + Given a matrix argument, instead of a vector, @code{diag} extracts the @var{k}-th diagonal of the matrix. @end deftypefn *************** *** 336,358 **** @c horzcat src/data.cc -*- texinfo -*- @deftypefn {Built-in Function} {} horzcat (@var{array1}, @var{array2}, @dots{}, @var{arrayN}) ! Return the horizontal concatenation of N-d array objects, @var{array1}, @var{array2}, @dots{}, @var{arrayN} along dimension 2. @seealso{cat, vertcat} @end deftypefn vertcat @c vertcat src/data.cc -*- texinfo -*- @deftypefn {Built-in Function} {} vertcat (@var{array1}, @var{array2}, @dots{}, @var{arrayN}) ! Return the vertical concatenation of N-d array objects, @var{array1}, @var{array2}, @dots{}, @var{arrayN} along dimension 1. @seealso{cat, horzcat} @end deftypefn cat @c cat src/data.cc -*- texinfo -*- @deftypefn {Built-in Function} {} cat (@var{dim}, @var{array1}, @var{array2}, @dots{}, @var{arrayN}) ! Return the concatenation of N-d array objects, @var{array1}, @var{array2}, @dots{}, @var{arrayN} along dimension @var{dim}. @example --- 362,398 ---- @c horzcat src/data.cc -*- texinfo -*- @deftypefn {Built-in Function} {} horzcat (@var{array1}, @var{array2}, @dots{}, @var{arrayN}) ! Return the horizontal concatenation of N-D array objects, @var{array1}, @var{array2}, @dots{}, @var{arrayN} along dimension 2. + + Arrays may also be concatenated horizontally using the syntax for creating + new matrices. For example: + + @example + @var{hcat} = [ @var{array1}, @var{array2}, @dots{} ]; + @end example @seealso{cat, vertcat} @end deftypefn vertcat @c vertcat src/data.cc -*- texinfo -*- @deftypefn {Built-in Function} {} vertcat (@var{array1}, @var{array2}, @dots{}, @var{arrayN}) ! Return the vertical concatenation of N-D array objects, @var{array1}, @var{array2}, @dots{}, @var{arrayN} along dimension 1. + + Arrays may also be concatenated vertically using the syntax for creating + new matrices. For example: + + @example + @var{vcat} = [ @var{array1}; @var{array2}; @dots{} ]; + @end example @seealso{cat, horzcat} @end deftypefn cat @c cat src/data.cc -*- texinfo -*- @deftypefn {Built-in Function} {} cat (@var{dim}, @var{array1}, @var{array2}, @dots{}, @var{arrayN}) ! Return the concatenation of N-D array objects, @var{array1}, @var{array2}, @dots{}, @var{arrayN} along dimension @var{dim}. @example *************** *** 360,369 **** A = ones (2, 2); B = zeros (2, 2); cat (2, A, B) ! @result{} ans = ! ! 1 1 0 0 ! 1 1 0 0 @end group @end example --- 400,407 ---- A = ones (2, 2); B = zeros (2, 2); cat (2, A, B) ! @result{} 1 1 0 0 ! 1 1 0 0 @end group @end example *************** *** 376,398 **** @end group @end example ! @var{dim} can be larger than the dimensions of the N-d array objects and the result will thus have @var{dim} dimensions as the following example shows: @example @group ! cat (4, ones(2, 2), zeros (2, 2)) ! @result{} ans = ! ans(:,:,1,1) = ! 1 1 ! 1 1 ! ans(:,:,1,2) = ! 0 0 ! 0 0 @end group @end example @seealso{horzcat, vertcat} --- 414,436 ---- @end group @end example ! @var{dim} can be larger than the dimensions of the N-D array objects and the result will thus have @var{dim} dimensions as the following example shows: @example @group ! cat (4, ones (2, 2), zeros (2, 2)) ! @result{} ans = ! ans(:,:,1,1) = ! 1 1 ! 1 1 ! ans(:,:,1,2) = ! 0 0 ! 0 0 @end group @end example @seealso{horzcat, vertcat} *************** *** 400,423 **** permute @c permute src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} permute (@var{a}, @var{perm}) ! Return the generalized transpose for an N-d array object @var{a}. The permutation vector @var{perm} must contain the elements ! @code{1:ndims(a)} (in any order, but each element must appear just once). @seealso{ipermute} @end deftypefn ipermute @c ipermute src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} ipermute (@var{a}, @var{iperm}) The inverse of the @code{permute} function. The expression @example ! ipermute (permute (a, perm), perm) @end example @noindent ! returns the original array @var{a}. @seealso{permute} @end deftypefn length --- 438,461 ---- permute @c permute src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} permute (@var{A}, @var{perm}) ! Return the generalized transpose for an N-D array object @var{A}. The permutation vector @var{perm} must contain the elements ! @code{1:ndims(A)} (in any order, but each element must appear only once). @seealso{ipermute} @end deftypefn ipermute @c ipermute src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} ipermute (@var{A}, @var{iperm}) The inverse of the @code{permute} function. The expression @example ! ipermute (permute (A, perm), perm) @end example @noindent ! returns the original array @var{A}. @seealso{permute} @end deftypefn length *************** *** 465,471 **** -*- texinfo -*- @deftypefn {Built-in Function} {} size (@var{a}) @deftypefnx {Built-in Function} {} size (@var{a}, @var{dim}) ! Return the number rows and columns of @var{a}. With one input argument and one output argument, the result is returned in a row vector. If there are multiple output arguments, the number of --- 503,509 ---- -*- texinfo -*- @deftypefn {Built-in Function} {} size (@var{a}) @deftypefnx {Built-in Function} {} size (@var{a}, @var{dim}) ! Return the number of rows and columns of @var{a}. With one input argument and one output argument, the result is returned in a row vector. If there are multiple output arguments, the number of *************** *** 562,568 **** @end group @end example - On the contrary, if 'double' is given, the sum is performed in double precision even for single precision inputs. --- 600,605 ---- *************** *** 680,728 **** ones @c ones src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} ones (@var{x}) ! @deftypefnx {Built-in Function} {} ones (@var{n}, @var{m}) ! @deftypefnx {Built-in Function} {} ones (@var{n}, @var{m}, @var{k}, @dots{}) @deftypefnx {Built-in Function} {} ones (@dots{}, @var{class}) Return a matrix or N-dimensional array whose elements are all 1. ! If invoked with a single scalar integer argument, return a square ! matrix of the specified size. If invoked with two or more scalar integer arguments, or a vector of integer values, return an array with ! given dimensions. If you need to create a matrix whose values are all the same, you should use an expression like @example ! val_matrix = val * ones (n, m) @end example The optional argument @var{class} specifies the class of the return array and defaults to double. For example: @example ! val = ones (n,m, "uint8") @end example @seealso{zeros} @end deftypefn zeros @c zeros src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} zeros (@var{x}) ! @deftypefnx {Built-in Function} {} zeros (@var{n}, @var{m}) ! @deftypefnx {Built-in Function} {} zeros (@var{n}, @var{m}, @var{k}, @dots{}) @deftypefnx {Built-in Function} {} zeros (@dots{}, @var{class}) Return a matrix or N-dimensional array whose elements are all 0. If invoked with a single scalar integer argument, return a square ! matrix of the specified size. If invoked with two or more scalar integer arguments, or a vector of integer values, return an array with ! given dimensions. The optional argument @var{class} specifies the class of the return array and defaults to double. For example: @example ! val = zeros (n,m, "uint8") @end example @seealso{ones} @end deftypefn --- 717,767 ---- ones @c ones src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} ones (@var{n}) ! @deftypefnx {Built-in Function} {} ones (@var{m}, @var{n}) ! @deftypefnx {Built-in Function} {} ones (@var{m}, @var{n}, @var{k}, @dots{}) ! @deftypefnx {Built-in Function} {} ones ([@var{m} @var{n} @dots{}]) @deftypefnx {Built-in Function} {} ones (@dots{}, @var{class}) Return a matrix or N-dimensional array whose elements are all 1. ! If invoked with a single scalar integer argument @var{n}, return a square ! @nospell{NxN} matrix. If invoked with two or more scalar integer arguments, or a vector of integer values, return an array with ! the given dimensions. If you need to create a matrix whose values are all the same, you should use an expression like @example ! val_matrix = val * ones (m, n) @end example The optional argument @var{class} specifies the class of the return array and defaults to double. For example: @example ! val = ones (m,n, "uint8") @end example @seealso{zeros} @end deftypefn zeros @c zeros src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} zeros (@var{n}) ! @deftypefnx {Built-in Function} {} zeros (@var{m}, @var{n}) ! @deftypefnx {Built-in Function} {} zeros (@var{m}, @var{n}, @var{k}, @dots{}) ! @deftypefnx {Built-in Function} {} zeros ([@var{m} @var{n} @dots{}]) @deftypefnx {Built-in Function} {} zeros (@dots{}, @var{class}) Return a matrix or N-dimensional array whose elements are all 0. If invoked with a single scalar integer argument, return a square ! @nospell{NxN} matrix. If invoked with two or more scalar integer arguments, or a vector of integer values, return an array with ! the given dimensions. The optional argument @var{class} specifies the class of the return array and defaults to double. For example: @example ! val = zeros (m,n, "uint8") @end example @seealso{ones} @end deftypefn *************** *** 1018,1031 **** eye @c eye src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} eye (@var{x}) ! @deftypefnx {Built-in Function} {} eye (@var{n}, @var{m}) @deftypefnx {Built-in Function} {} eye (@dots{}, @var{class}) ! Return an identity matrix. If invoked with a single scalar argument, ! @code{eye} returns a square matrix with the dimension specified. If you ! supply two scalar arguments, @code{eye} takes them to be the number of ! rows and columns. If given a vector with two elements, @code{eye} uses ! the values of the elements as the number of rows and columns, respectively. For example: @example --- 1057,1071 ---- eye @c eye src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} eye (@var{n}) ! @deftypefnx {Built-in Function} {} eye (@var{m}, @var{n}) ! @deftypefnx {Built-in Function} {} eye ([@var{m} @var{n}]) @deftypefnx {Built-in Function} {} eye (@dots{}, @var{class}) ! Return an identity matrix. If invoked with a single scalar argument @var{n}, ! return a square @nospell{NxN} identity matrix. If ! supplied two scalar arguments (@var{m}, @var{n}), @code{eye} takes them to be ! the number of rows and columns. If given a vector with two elements, ! @code{eye} uses the values of the elements as the number of rows and columns, respectively. For example: @example *************** *** 1059,1089 **** Calling @code{eye} with no arguments is equivalent to calling it with an argument of 1. This odd definition is for compatibility with @sc{matlab}. @end deftypefn linspace @c linspace src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} linspace (@var{base}, @var{limit}, @var{n}) Return a row vector with @var{n} linearly spaced elements between @var{base} and @var{limit}. If the number of elements is greater than one, ! then the @var{base} and @var{limit} are always included in the range. If @var{base} is greater than @var{limit}, the elements are stored in decreasing order. If the number of points is not specified, a value of 100 is used. The @code{linspace} function always returns a row vector if both ! @var{base} and @var{limit} are scalars. If one of them or both are column vectors, @code{linspace} returns a matrix. ! For compatibility with @sc{matlab}, return the second argument if ! fewer than two values are requested. @end deftypefn resize @c resize src/data.cc -*- texinfo -*- @deftypefn {Built-in Function} {} resize (@var{x}, @var{m}) - @deftypefnx {Built-in Function} {} resize (@var{x}, @var{m}, @var{n}) @deftypefnx {Built-in Function} {} resize (@var{x}, @var{m}, @var{n}, @dots{}) Resize @var{x} cutting off elements as necessary. In the result, element with certain indices is equal to the corresponding --- 1099,1131 ---- Calling @code{eye} with no arguments is equivalent to calling it with an argument of 1. This odd definition is for compatibility with @sc{matlab}. + @seealso{speye} @end deftypefn linspace @c linspace src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} linspace (@var{base}, @var{limit}) ! @deftypefnx {Built-in Function} {} linspace (@var{base}, @var{limit}, @var{n}) Return a row vector with @var{n} linearly spaced elements between @var{base} and @var{limit}. If the number of elements is greater than one, ! then the endpoints @var{base} and @var{limit} are always included in the range. If @var{base} is greater than @var{limit}, the elements are stored in decreasing order. If the number of points is not specified, a value of 100 is used. The @code{linspace} function always returns a row vector if both ! @var{base} and @var{limit} are scalars. If one, or both, of them are column vectors, @code{linspace} returns a matrix. ! For compatibility with @sc{matlab}, return the second argument (@var{limit}) ! if fewer than two values are requested. @end deftypefn resize @c resize src/data.cc -*- texinfo -*- @deftypefn {Built-in Function} {} resize (@var{x}, @var{m}) @deftypefnx {Built-in Function} {} resize (@var{x}, @var{m}, @var{n}, @dots{}) + @deftypefnx {Built-in Function} {} resize (@var{x}, [@var{m} @var{n} @dots{}]) Resize @var{x} cutting off elements as necessary. In the result, element with certain indices is equal to the corresponding *************** *** 1111,1121 **** @noindent but is performed more efficiently. ! If only @var{m} is supplied and it is a scalar, the dimension of the ! result is @var{m}-by-@var{m}. If @var{m} is a vector, then the ! dimensions of the result are given by the elements of @var{m}. ! If both @var{m} and @var{n} are scalars, then the dimensions of ! the result are @var{m}-by-@var{n}. An object can be resized to more dimensions than it has; in such case the missing dimensions are assumed to be 1. --- 1153,1164 ---- @noindent but is performed more efficiently. ! If only @var{m} is supplied, and it is a scalar, the dimension of the ! result is @var{m}-by-@var{m}. ! If @var{m}, @var{n}, @dots{} are all scalars, then the dimensions of ! the result are @var{m}-by-@var{n}-by-@dots{}. ! If given a vector as input, then the ! dimensions of the result are given by the elements of that vector. An object can be resized to more dimensions than it has; in such case the missing dimensions are assumed to be 1. *************** *** 1125,1137 **** reshape @c reshape src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} reshape (@var{a}, @var{m}, @var{n}, @dots{}) ! @deftypefnx {Built-in Function} {} reshape (@var{a}, @var{size}) ! Return a matrix with the given dimensions whose elements are taken ! from the matrix @var{a}. The elements of the matrix are accessed in ! column-major order (like Fortran arrays are stored). ! For example: @example @group --- 1168,1183 ---- reshape @c reshape src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} reshape (@var{A}, @var{m}, @var{n}, @dots{}) ! @deftypefnx {Built-in Function} {} reshape (@var{A}, [@var{m} @var{n} @dots{}]) ! @deftypefnx {Built-in Function} {} reshape (@var{A}, @dots{}, [], @dots{}) ! @deftypefnx {Built-in Function} {} reshape (@var{A}, @var{size}) ! Return a matrix with the specified dimensions (@var{m}, @var{n}, @dots{}) ! whose elements are taken from the matrix @var{A}. The elements of the ! matrix are accessed in column-major order (like Fortran arrays are stored). ! The following code demonstrates reshaping a 1x4 row vector into a 2x2 square ! matrix. @example @group *************** *** 1143,1163 **** @noindent Note that the total number of elements in the original ! matrix must match the total number of elements in the new matrix. ! A single dimension of the return matrix can be unknown and is flagged ! by an empty argument. @end deftypefn vec @c vec src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} @var{v} = vec (@var{x}) ! @deftypefnx {Built-in Function} {} @var{v} = vec (@var{x}, @var{dim}) Return the vector obtained by stacking the columns of the matrix @var{x} one above the other. Without @var{dim} this is equivalent to @code{@var{x}(:)}. If @var{dim} is supplied, the dimensions of @var{v} are set to @var{dim} with all elements along the last dimension. This is equivalent to @code{shiftdim (@var{x}(:), 1-@var{dim})}. @end deftypefn squeeze @c squeeze src/data.cc --- 1189,1213 ---- @noindent Note that the total number of elements in the original ! matrix (@code{prod (size (@var{A}))}) must match the total number of elements ! in the new matrix (@code{prod ([@var{m} @var{n} @dots{}])}). ! A single dimension of the return matrix may be left unspecified and Octave ! will determine its size automatically. An empty matrix ([]) is used to flag ! the unspecified dimension. ! @seealso{resize} @end deftypefn vec @c vec src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {@var{v} =} vec (@var{x}) ! @deftypefnx {Built-in Function} {@var{v} =} vec (@var{x}, @var{dim}) Return the vector obtained by stacking the columns of the matrix @var{x} one above the other. Without @var{dim} this is equivalent to @code{@var{x}(:)}. If @var{dim} is supplied, the dimensions of @var{v} are set to @var{dim} with all elements along the last dimension. This is equivalent to @code{shiftdim (@var{x}(:), 1-@var{dim})}. + @seealso{vech} @end deftypefn squeeze @c squeeze src/data.cc *************** *** 1171,1228 **** @c full src/data.cc -*- texinfo -*- @deftypefn {Loadable Function} {@var{FM} =} full (@var{SM}) ! returns a full storage matrix from a sparse, diagonal, permutation matrix or a range. @seealso{sparse} @end deftypefn norm @c norm src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} norm (@var{a}) ! @deftypefnx {Built-in Function} {} norm (@var{a}, @var{p}) ! @deftypefnx {Built-in Function} {} norm (@var{a}, @var{p}, @var{opt}) ! Compute the p-norm of the matrix @var{a}. If the second argument is missing, @code{p = 2} is assumed. ! If @var{a} is a matrix (or sparse matrix): @table @asis @item @var{p} = @code{1} ! 1-norm, the largest column sum of the absolute values of @var{a}. @item @var{p} = @code{2} ! Largest singular value of @var{a}. @item @var{p} = @code{Inf} or @code{"inf"} @cindex infinity norm ! Infinity norm, the largest row sum of the absolute values of @var{a}. @item @var{p} = @code{"fro"} @cindex Frobenius norm ! Frobenius norm of @var{a}, @code{sqrt (sum (diag (@var{a}' * @var{a})))}. @item other @var{p}, @code{@var{p} > 1} ! @cindex general p-norm maximum @code{norm (A*x, p)} such that @code{norm (x, p) == 1} @end table ! If @var{a} is a vector or a scalar: @table @asis @item @var{p} = @code{Inf} or @code{"inf"} ! @code{max (abs (@var{a}))}. @item @var{p} = @code{-Inf} ! @code{min (abs (@var{a}))}. @item @var{p} = @code{"fro"} ! Frobenius norm of @var{a}, @code{sqrt (sumsq (abs (a)))}. @item @var{p} = 0 Hamming norm - the number of nonzero elements. @item other @var{p}, @code{@var{p} > 1} ! p-norm of @var{a}, @code{(sum (abs (@var{a}) .^ @var{p})) ^ (1/@var{p})}. @item other @var{p} @code{@var{p} < 1} the p-pseudonorm defined as above. --- 1221,1278 ---- @c full src/data.cc -*- texinfo -*- @deftypefn {Loadable Function} {@var{FM} =} full (@var{SM}) ! Return a full storage matrix from a sparse, diagonal, permutation matrix or a range. @seealso{sparse} @end deftypefn norm @c norm src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} norm (@var{A}) ! @deftypefnx {Built-in Function} {} norm (@var{A}, @var{p}) ! @deftypefnx {Built-in Function} {} norm (@var{A}, @var{p}, @var{opt}) ! Compute the p-norm of the matrix @var{A}. If the second argument is missing, @code{p = 2} is assumed. ! If @var{A} is a matrix (or sparse matrix): @table @asis @item @var{p} = @code{1} ! 1-norm, the largest column sum of the absolute values of @var{A}. @item @var{p} = @code{2} ! Largest singular value of @var{A}. @item @var{p} = @code{Inf} or @code{"inf"} @cindex infinity norm ! Infinity norm, the largest row sum of the absolute values of @var{A}. @item @var{p} = @code{"fro"} @cindex Frobenius norm ! Frobenius norm of @var{A}, @code{sqrt (sum (diag (@var{A}' * @var{A})))}. @item other @var{p}, @code{@var{p} > 1} ! @cindex general p-norm maximum @code{norm (A*x, p)} such that @code{norm (x, p) == 1} @end table ! If @var{A} is a vector or a scalar: @table @asis @item @var{p} = @code{Inf} or @code{"inf"} ! @code{max (abs (@var{A}))}. @item @var{p} = @code{-Inf} ! @code{min (abs (@var{A}))}. @item @var{p} = @code{"fro"} ! Frobenius norm of @var{A}, @code{sqrt (sumsq (abs (A)))}. @item @var{p} = 0 Hamming norm - the number of nonzero elements. @item other @var{p}, @code{@var{p} > 1} ! p-norm of @var{A}, @code{(sum (abs (@var{A}) .^ @var{p})) ^ (1/@var{p})}. @item other @var{p} @code{@var{p} < 1} the p-pseudonorm defined as above. *************** *** 1240,1246 **** @deftypefn {Built-in Function} {} not (@var{x}) Return the logical NOT of @var{x}. This function is equivalent to @code{! x}. ! @seealso{and, or} @end deftypefn uplus @c uplus src/data.cc --- 1290,1296 ---- @deftypefn {Built-in Function} {} not (@var{x}) Return the logical NOT of @var{x}. This function is equivalent to @code{! x}. ! @seealso{and, or, xor} @end deftypefn uplus @c uplus src/data.cc *************** *** 1430,1436 **** @end example At least one argument is required. ! @seealso{or, not} @end deftypefn or @c or src/data.cc --- 1480,1486 ---- @end example At least one argument is required. ! @seealso{or, not, xor} @end deftypefn or @c or src/data.cc *************** *** 1447,1453 **** @end example At least one argument is required. ! @seealso{and, not} @end deftypefn tic @c tic src/data.cc --- 1497,1503 ---- @end example At least one argument is required. ! @seealso{and, not, xor} @end deftypefn tic @c tic src/data.cc *************** *** 1531,1537 **** @deftypefnx {Loadable Function} {[@var{s}, @var{i}] =} sort (@var{x}, @var{mode}) @deftypefnx {Loadable Function} {[@var{s}, @var{i}] =} sort (@var{x}, @var{dim}, @var{mode}) Return a copy of @var{x} with the elements arranged in increasing ! order. For matrices, @code{sort} orders the elements in each column. For example: --- 1581,1587 ---- @deftypefnx {Loadable Function} {[@var{s}, @var{i}] =} sort (@var{x}, @var{mode}) @deftypefnx {Loadable Function} {[@var{s}, @var{i}] =} sort (@var{x}, @var{dim}, @var{mode}) Return a copy of @var{x} with the elements arranged in increasing ! order. For matrices, @code{sort} orders the elements within columns For example: *************** *** 1544,1549 **** --- 1594,1604 ---- @end group @end example + If the optional argument @var{dim} is given, then the matrix is sorted + along the dimension defined by @var{dim}. The optional argument @code{mode} + defines the order in which the values will be sorted. Valid values of + @code{mode} are `ascend' or `descend'. + The @code{sort} function may also be used to produce a matrix containing the original row indices of the elements in the sorted matrix. For example: *************** *** 1560,1575 **** @end group @end example ! If the optional argument @var{dim} is given, then the matrix is sorted ! along the dimension defined by @var{dim}. The optional argument @code{mode} ! defines the order in which the values will be sorted. Valid values of ! @code{mode} are `ascend' or `descend'. ! For equal elements, the indices are such that the equal elements are listed ! in the order that appeared in the original list. The @code{sort} function may also be used to sort strings and cell arrays ! of strings, in which case the dictionary order of the strings is used. The algorithm used in @code{sort} is optimized for the sorting of partially ordered lists. --- 1615,1641 ---- @end group @end example ! For equal elements, the indices are such that equal elements are listed ! in the order in which they appeared in the original list. ! ! Sorting of complex entries is done first by magnitude (@code{abs (@var{z})}) ! and for any ties by phase angle (@code{angle (z)}). For example: ! ! @example ! @group ! sort ([1+i; 1; 1-i]) ! @result{} 1 + 0i ! 1 - 1i ! 1 + 1i ! @end group ! @end example ! NaN values are treated as being greater than any other value and are sorted ! to the end of the list. The @code{sort} function may also be used to sort strings and cell arrays ! of strings, in which case ASCII dictionary order (uppercase 'A' precedes ! lowercase 'a') of the strings is used. The algorithm used in @code{sort} is optimized for the sorting of partially ordered lists. *************** *** 1584,1591 **** issorted @c issorted src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} issorted (@var{a}, @var{mode}) ! @deftypefnx {Built-in Function} {} issorted (@var{a}, @code{"rows"}, @var{mode}) Return true if the array is sorted according to @var{mode}, which may be either "ascending", "descending", or "either". By default, @var{mode} is "ascending". NaNs are treated in the same manner as --- 1650,1658 ---- issorted @c issorted src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} issorted (@var{a}) ! @deftypefnx {Built-in Function} {} issorted (@var{a}, @var{mode}) ! @deftypefnx {Built-in Function} {} issorted (@var{a}, "rows", @var{mode}) Return true if the array is sorted according to @var{mode}, which may be either "ascending", "descending", or "either". By default, @var{mode} is "ascending". NaNs are treated in the same manner as *************** *** 1615,1621 **** nth_element encapsulates the C++ standard library algorithms nth_element and partial_sort. On average, the complexity of the operation is O(M*log(K)), ! where @code{M = size(@var{x}, @var{dim})} and @code{K = length (@var{n})}. This function is intended for cases where the ratio K/M is small; otherwise, it may be better to use @code{sort}. @seealso{sort, min, max} --- 1682,1689 ---- nth_element encapsulates the C++ standard library algorithms nth_element and partial_sort. On average, the complexity of the operation is O(M*log(K)), ! where @w{@code{M = size (@var{x}, @var{dim})}} and ! @w{@code{K = length (@var{n})}}. This function is intended for cases where the ratio K/M is small; otherwise, it may be better to use @code{sort}. @seealso{sort, min, max} *************** *** 1658,1664 **** In the array mask case, both @var{tval} and @var{fval} must be either scalars or arrays with dimensions equal to @var{mask}. The result is ! constructed as follows: @example @group --- 1726,1732 ---- In the array mask case, both @var{tval} and @var{fval} must be either scalars or arrays with dimensions equal to @var{mask}. The result is ! constructed as follows: @example @group *************** *** 1674,1681 **** diff @c diff src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} diff (@var{x}, @var{k}, @var{dim}) ! If @var{x} is a vector of length @var{n}, @code{diff (@var{x})} is the vector of first differences @tex $x_2 - x_1, \ldots{}, x_n - x_{n-1}$. --- 1742,1751 ---- diff @c diff src/data.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} diff (@var{x}) ! @deftypefnx {Built-in Function} {} diff (@var{x}, @var{k}) ! @deftypefnx {Built-in Function} {} diff (@var{x}, @var{k}, @var{dim}) ! If @var{x} is a vector of length @math{n}, @code{diff (@var{x})} is the vector of first differences @tex $x_2 - x_1, \ldots{}, x_n - x_{n-1}$. *************** *** 1690,1704 **** The second argument is optional. If supplied, @code{diff (@var{x}, @var{k})}, where @var{k} is a non-negative integer, returns the @var{k}-th differences. It is possible that @var{k} is larger than ! then first non-singleton dimension of the matrix. In this case, @code{diff} continues to take the differences along the next non-singleton dimension. The dimension along which to take the difference can be explicitly ! stated with the optional variable @var{dim}. In this case the @var{k}-th order differences are calculated along this dimension. In the case where @var{k} exceeds @code{size (@var{x}, @var{dim})} ! then an empty matrix is returned. @end deftypefn repelems @c repelems src/data.cc --- 1760,1774 ---- The second argument is optional. If supplied, @code{diff (@var{x}, @var{k})}, where @var{k} is a non-negative integer, returns the @var{k}-th differences. It is possible that @var{k} is larger than ! the first non-singleton dimension of the matrix. In this case, @code{diff} continues to take the differences along the next non-singleton dimension. The dimension along which to take the difference can be explicitly ! stated with the optional variable @var{dim}. In this case the @var{k}-th order differences are calculated along this dimension. In the case where @var{k} exceeds @code{size (@var{x}, @var{dim})} ! an empty matrix is returned. @end deftypefn repelems @c repelems src/data.cc *************** *** 1766,1772 **** @c dbstatus src/debug.cc -*- texinfo -*- @deftypefn {Loadable Function} {lst =} dbstatus (@var{func}) ! Return a vector containing the lines on which a function has breakpoints set. @table @code @item func --- 1836,1842 ---- @c dbstatus src/debug.cc -*- texinfo -*- @deftypefn {Loadable Function} {lst =} dbstatus (@var{func}) ! Return a vector containing the lines on which a function has breakpoints set. @table @code @item func *************** *** 1951,1957 **** @c rmdir src/dirfns.cc -*- texinfo -*- @deftypefn {Built-in Function} {[@var{status}, @var{msg}, @var{msgid}] =} rmdir (@var{dir}) ! @deftypefnx {Built-in Function} {[@var{status}, @var{msg}, @var{msgid}] =} rmdir (@var{dir}, @code{"s"}) Remove the directory named @var{dir}. If successful, @var{status} is 1, with @var{msg} and @var{msgid} empty --- 2021,2027 ---- @c rmdir src/dirfns.cc -*- texinfo -*- @deftypefn {Built-in Function} {[@var{status}, @var{msg}, @var{msgid}] =} rmdir (@var{dir}) ! @deftypefnx {Built-in Function} {[@var{status}, @var{msg}, @var{msgid}] =} rmdir (@var{dir}, "s") Remove the directory named @var{dir}. If successful, @var{status} is 1, with @var{msg} and @var{msgid} empty *************** *** 2014,2020 **** @deftypefn {Built-in Function} {} glob (@var{pattern}) Given an array of pattern strings (as a char array or a cell array) in @var{pattern}, return a cell array of file names that match any of ! them, or an empty cell array if no patterns match. The pattern strings are interpreted as filename globbing patterns (as they are used by Unix shells). Within a pattern @table @code --- 2084,2090 ---- @deftypefn {Built-in Function} {} glob (@var{pattern}) Given an array of pattern strings (as a char array or a cell array) in @var{pattern}, return a cell array of file names that match any of ! them, or an empty cell array if no patterns match. The pattern strings are interpreted as filename globbing patterns (as they are used by Unix shells). Within a pattern @table @code *************** *** 2034,2040 **** @example ls @result{} ! file1 file2 file3 myfile1 myfile1b glob ("*file1") @result{} @{ --- 2104,2110 ---- @example ls @result{} ! file1 file2 file3 myfile1 myfile1b glob ("*file1") @result{} @{ *************** *** 2079,2086 **** If 'all' is given, the function returns all valid file separators in the form of a string. The list of file separators is system-dependent. ! It is @samp{/} (forward slash) under UNIX or Mac OS X, @samp{/} and @samp{\} ! (forward and backward slashes) under Windows. @seealso{pathsep} @end deftypefn pathsep --- 2149,2156 ---- If 'all' is given, the function returns all valid file separators in the form of a string. The list of file separators is system-dependent. ! It is @samp{/} (forward slash) under UNIX or @w{Mac OS X}, @samp{/} and ! @samp{\} (forward and backward slashes) under Windows. @seealso{pathsep} @end deftypefn pathsep *************** *** 2201,2209 **** @deftypefn {Built-in Function} {@var{lasterr} =} lasterror () @deftypefnx {Built-in Function} {} lasterror (@var{err}) @deftypefnx {Built-in Function} {} lasterror ('reset') ! Query or set the last error message. Called without any arguments ! returns a structure containing the last error message, as well as other ! information related to this error. The elements of this structure are: @table @asis @item 'message' --- 2271,2279 ---- @deftypefn {Built-in Function} {@var{lasterr} =} lasterror () @deftypefnx {Built-in Function} {} lasterror (@var{err}) @deftypefnx {Built-in Function} {} lasterror ('reset') ! Query or set the last error message structure. When called without arguments ! , return a structure containing the last error message and other ! information related to this error. The elements of the structure are: @table @asis @item 'message' *************** *** 2213,2221 **** The message identifier of this error message @item 'stack' ! A structure containing information on where the message occurred. This might ! be an empty structure if this in the case where this information cannot ! be obtained. The fields of this structure are: @table @asis @item 'file' --- 2283,2291 ---- The message identifier of this error message @item 'stack' ! A structure containing information on where the message occurred. This may ! be an empty structure if the information cannot ! be obtained. The fields of the structure are: @table @asis @item 'file' *************** *** 2232,2253 **** @end table @end table ! The @var{err} structure may also be passed to @code{lasterror} to set the ! information about the last error. The only constraint on @var{err} in that ! case is that it is a scalar structure. Any fields of @var{err} that match ! the above are set to the value passed in @var{err}, while other fields are ! set to their default values. ! If @code{lasterror} is called with the argument 'reset', all values take ! their default values. @end deftypefn lasterr @c lasterr src/error.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {[@var{msg}, @var{msgid}] =} lasterr (@var{msg}, @var{msgid}) ! Without any arguments, return the last error message. With one argument, set the last error message to @var{msg}. With two arguments, also set the last message identifier. @end deftypefn lastwarn @c lastwarn src/error.cc --- 2302,2326 ---- @end table @end table ! The last error structure may be set by passing a scalar structure, @var{err}, ! as input. Any fields of @var{err} that match those above are set while any ! unspecified fields are initialized with default values. ! If @code{lasterror} is called with the argument 'reset', all fields are ! set to their default values. ! @seealso{lasterr} @end deftypefn lasterr @c lasterr src/error.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {[@var{msg}, @var{msgid}] =} lasterr () ! @deftypefnx {Built-in Function} {} lasterr (@var{msg}) ! @deftypefnx {Built-in Function} {} lasterr (@var{msg}, @var{msgid}) ! Query or set the last error message. When called without input arguments, ! return the last error message and message identifier. With one argument, set the last error message to @var{msg}. With two arguments, also set the last message identifier. + @seealso{lasterror} @end deftypefn lastwarn @c lastwarn src/error.cc *************** *** 2315,2323 **** fclose @c fclose src/file-io.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} fclose (@var{fid}) Close the specified file. If successful, @code{fclose} returns 0, ! otherwise, it returns -1. @seealso{fopen, fseek, ftell} @end deftypefn fclear --- 2388,2398 ---- fclose @c fclose src/file-io.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} fclose (@var{fid}) ! @deftypefnx {Built-in Function} {} fclose ("all") Close the specified file. If successful, @code{fclose} returns 0, ! otherwise, it returns -1. The second form of the @code{fclose} call closes ! all open files except @code{stdout}, @code{stderr}, and @code{stdin}. @seealso{fopen, fseek, ftell} @end deftypefn fclear *************** *** 2356,2362 **** fgets @c fgets src/file-io.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} fgets (@var{fid}, @var{len}) Read characters from a file, stopping after a newline, or EOF, or @var{len} characters have been read. The characters read, including the possible trailing newline, are returned as a string. --- 2431,2438 ---- fgets @c fgets src/file-io.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} fgets (@var{fid}) ! @deftypefnx {Built-in Function} {} fgets (@var{fid}, @var{len}) Read characters from a file, stopping after a newline, or EOF, or @var{len} characters have been read. The characters read, including the possible trailing newline, are returned as a string. *************** *** 2493,2499 **** freport () @print{} number mode name ! @print{} @print{} 0 r stdin @print{} 1 w stdout @print{} 2 w stderr --- 2569,2575 ---- freport () @print{} number mode name ! @print{} @print{} 0 r stdin @print{} 1 w stdout @print{} 2 w stderr *************** *** 3354,3384 **** @c get_help_text src/help.cc -*- texinfo -*- @deftypefn {Loadable Function} {[@var{text}, @var{format}] =} get_help_text (@var{name}) ! Return the help text of a given function. ! This function returns the raw help text @var{text} and an indication of ! its format for the function @var{name}. The format indication @var{format} ! is a string that can be either @t{"texinfo"}, @t{"html"}, or @t{"plain text"}. - - To convert the help text to other formats, use the @code{makeinfo} function. - - @seealso{makeinfo} @end deftypefn get_help_text_from_file @c get_help_text_from_file src/help.cc -*- texinfo -*- @deftypefn {Loadable Function} {[@var{text}, @var{format}] =} get_help_text_from_file (@var{fname}) ! Return the help text from the given file. ! This function returns the raw help text @var{text} and an indication of ! its format for the function @var{name}. The format indication @var{format} ! is a string that can be either @t{"texinfo"}, @t{"html"}, or @t{"plain text"}. - - To convert the help text to other formats, use the @code{makeinfo} function. - - @seealso{makeinfo} @end deftypefn __operators__ @c __operators__ src/help.cc --- 3430,3450 ---- @c get_help_text src/help.cc -*- texinfo -*- @deftypefn {Loadable Function} {[@var{text}, @var{format}] =} get_help_text (@var{name}) ! Return the raw help text of function @var{name}. ! The raw help text is returned in @var{text} and the format in @var{format} ! The format is a string which is one of @t{"texinfo"}, @t{"html"}, or @t{"plain text"}. @end deftypefn get_help_text_from_file @c get_help_text_from_file src/help.cc -*- texinfo -*- @deftypefn {Loadable Function} {[@var{text}, @var{format}] =} get_help_text_from_file (@var{fname}) ! Return the raw help text from the file @var{fname}. ! The raw help text is returned in @var{text} and the format in @var{format} ! The format is a string which is one of @t{"texinfo"}, @t{"html"}, or @t{"plain text"}. @end deftypefn __operators__ @c __operators__ src/help.cc *************** *** 3598,3604 **** add_input_event_hook @c add_input_event_hook src/input.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} add_input_event_hook (@var{fcn}, @var{data}) Add the named function @var{fcn} to the list of functions to call periodically when Octave is waiting for input. The function should have the form --- 3664,3671 ---- add_input_event_hook @c add_input_event_hook src/input.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} add_input_event_hook (@var{fcn}) ! @deftypefnx {Built-in Function} {} add_input_event_hook (@var{fcn}, @var{data}) Add the named function @var{fcn} to the list of functions to call periodically when Octave is waiting for input. The function should have the form *************** *** 3615,3621 **** @c remove_input_event_hook src/input.cc -*- texinfo -*- @deftypefn {Built-in Function} {} remove_input_event_hook (@var{fcn}) ! Remove the named function @var{fcn} to the list of functions to call periodically when Octave is waiting for input. @seealso{add_input_event_hook} @end deftypefn --- 3682,3688 ---- @c remove_input_event_hook src/input.cc -*- texinfo -*- @deftypefn {Built-in Function} {} remove_input_event_hook (@var{fcn}) ! Remove the named function @var{fcn} from the list of functions to call periodically when Octave is waiting for input. @seealso{add_input_event_hook} @end deftypefn *************** *** 3782,3788 **** @deftypefn {Built-in Function} {} genpath (@var{dir}) @deftypefnx {Built-in Function} {} genpath (@var{dir}, @var{skip}, @dots{}) Return a path constructed from @var{dir} and all its subdirectories. ! If additional string parameters are given, the resulting path will exclude directories with those names. @end deftypefn rehash --- 3849,3855 ---- @deftypefn {Built-in Function} {} genpath (@var{dir}) @deftypefnx {Built-in Function} {} genpath (@var{dir}, @var{skip}, @dots{}) Return a path constructed from @var{dir} and all its subdirectories. ! If additional string parameters are given, the resulting path will exclude directories with those names. @end deftypefn rehash *************** *** 3803,3809 **** @c restoredefaultpath src/load-path.cc -*- texinfo -*- @deftypefn {Built-in Function} {} restoredefaultpath (@dots{}) ! Restore Octave's path to it's initial state at startup. @seealso{path, addpath, rmpath, genpath, pathdef, savepath, pathsep} @end deftypefn --- 3870,3876 ---- @c restoredefaultpath src/load-path.cc -*- texinfo -*- @deftypefn {Built-in Function} {} restoredefaultpath (@dots{}) ! Restore Octave's path to its initial state at startup. @seealso{path, addpath, rmpath, genpath, pathdef, savepath, pathsep} @end deftypefn *************** *** 3838,3845 **** @deftypefn {Built-in Function} {} addpath (@var{dir1}, @dots{}) @deftypefnx {Built-in Function} {} addpath (@var{dir1}, @dots{}, @var{option}) Add @var{dir1}, @dots{} to the current function search path. If ! @var{option} is @samp{"-begin"} or 0 (the default), prepend the ! directory name to the current path. If @var{option} is @samp{"-end"} or 1, append the directory name to the current path. Directories added to the path must exist. --- 3905,3912 ---- @deftypefn {Built-in Function} {} addpath (@var{dir1}, @dots{}) @deftypefnx {Built-in Function} {} addpath (@var{dir1}, @dots{}, @var{option}) Add @var{dir1}, @dots{} to the current function search path. If ! @var{option} is "-begin" or 0 (the default), prepend the ! directory name to the current path. If @var{option} is "-end" or 1, append the directory name to the current path. Directories added to the path must exist. *************** *** 3975,3981 **** of the scalar structure @var{STRUCT} are saved as if they were variables with corresponding names. Valid options for the @code{save} command are listed in the following table. ! Options that modify the output format override the format specified by @code{default_save_options}. If save is invoked using the functional form --- 4042,4048 ---- of the scalar structure @var{STRUCT} are saved as if they were variables with corresponding names. Valid options for the @code{save} command are listed in the following table. ! Options that modify the output format override the format specified by @code{default_save_options}. If save is invoked using the functional form *************** *** 3989,3994 **** --- 4056,4063 ---- (@var{v1}, @dots{}) must be specified as character strings. @table @code + @item -append + Append to the destination instead of overwriting. @item -ascii Save a single matrix in a text file without header or any other information. *************** *** 4056,4062 **** Match the list of characters specified by @var{list}. If the first character is @code{!} or @code{^}, match all characters except those specified by @var{list}. For example, the pattern @code{[a-zA-Z]} will ! match all lower and upper case alphabetic characters. Wildcards may also be used in the field name specifications when using the @option{-struct} modifier (but not in the struct name itself). --- 4125,4131 ---- Match the list of characters specified by @var{list}. If the first character is @code{!} or @code{^}, match all characters except those specified by @var{list}. For example, the pattern @code{[a-zA-Z]} will ! match all lower and uppercase alphabetic characters. Wildcards may also be used in the field name specifications when using the @option{-struct} modifier (but not in the struct name itself). *************** *** 4324,4334 **** @example @group ! z ! / erf (z) = (2/sqrt (pi)) | e^(-t^2) dt ! / ! t=0 @end group @end example --- 4393,4404 ---- @example @group ! @c spacing appears odd here, but is correct after Makeinfo ! z ! / erf (z) = (2/sqrt (pi)) | e^(-t^2) dt ! / ! t=0 @end group @end example *************** *** 4342,4348 **** Compute the inverse error function, i.e., @var{y} such that @example ! erf(@var{y}) == @var{x} @end example @seealso{erf, erfc, erfcx} @end deftypefn --- 4412,4418 ---- Compute the inverse error function, i.e., @var{y} such that @example ! erf (@var{y}) == @var{x} @end example @seealso{erf, erfc, erfcx} @end deftypefn *************** *** 4355,4361 **** $1 - {\rm erf} (z)$. @end tex @ifnottex ! @code{1 - erf (@var{z})}. @end ifnottex @seealso{erfcx, erf, erfinv} @end deftypefn --- 4425,4431 ---- $1 - {\rm erf} (z)$. @end tex @ifnottex ! @w{@code{1 - erf (@var{z})}}. @end ifnottex @seealso{erfcx, erf, erfinv} @end deftypefn *************** *** 4365,4374 **** @deftypefn {Mapping Function} {} erfcx (@var{z}) Compute the scaled complementary error function, @tex ! $z^2 (1 - {\rm erf} (z))$. @end tex @ifnottex ! @code{z^2*(1 - erf (@var{z}))}. @end ifnottex @seealso{erfc, erf, erfinv} @end deftypefn --- 4435,4450 ---- @deftypefn {Mapping Function} {} erfcx (@var{z}) Compute the scaled complementary error function, @tex ! $$ ! e^{z^2} {\rm erfc} (z) \equiv e^{z^2} (1 - {\rm erf} (z)) ! $$ @end tex @ifnottex ! ! @example ! exp (z^2) * erfc (x) ! @end example ! @end ifnottex @seealso{erfc, erf, erfinv} @end deftypefn *************** *** 4464,4474 **** @example @group ! infinity ! / gamma (z) = | t^(z-1) exp (-t) dt. ! / ! t=0 @end group @end example --- 4540,4551 ---- @example @group ! @c spacing appears odd here, but is correct after Makeinfo ! infinity ! / gamma (z) = | t^(z-1) exp (-t) dt. ! / ! t=0 @end group @end example *************** *** 4554,4560 **** -*- texinfo -*- @deftypefn {Mapping Function} {} islower (@var{s}) Return a logical array which is true where the elements of @var{s} are ! lower case letters and false where they are not. @seealso{isupper, isalpha, isletter, isalnum} @end deftypefn isna --- 4631,4637 ---- -*- texinfo -*- @deftypefn {Mapping Function} {} islower (@var{s}) Return a logical array which is true where the elements of @var{s} are ! lowercase letters and false where they are not. @seealso{isupper, isalpha, isletter, isalnum} @end deftypefn isna *************** *** 4620,4626 **** -*- texinfo -*- @deftypefn {Mapping Function} {} isupper (@var{s}) Return a logical array which is true where the elements of @var{s} are ! upper case letters and false where they are not. @seealso{islower, isalpha, isletter, isalnum} @end deftypefn isxdigit --- 4697,4703 ---- -*- texinfo -*- @deftypefn {Mapping Function} {} isupper (@var{s}) Return a logical array which is true where the elements of @var{s} are ! uppercase letters and false where they are not. @seealso{islower, isalpha, isletter, isalnum} @end deftypefn isxdigit *************** *** 4787,4794 **** -*- texinfo -*- @deftypefn {Mapping Function} {} tolower (@var{s}) @deftypefnx {Mapping Function} {} lower (@var{s}) ! Return a copy of the string or cell string @var{s}, with each upper-case ! character replaced by the corresponding lower-case one; non-alphabetic characters are left unchanged. For example: @example --- 4864,4871 ---- -*- texinfo -*- @deftypefn {Mapping Function} {} tolower (@var{s}) @deftypefnx {Mapping Function} {} lower (@var{s}) ! Return a copy of the string or cell string @var{s}, with each uppercase ! character replaced by the corresponding lowercase one; non-alphabetic characters are left unchanged. For example: @example *************** *** 4802,4811 **** toupper @c toupper src/mappers.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} toupper (@var{s}) ! @deftypefnx {Built-in Function} {} upper (@var{s}) ! Return a copy of the string or cell string @var{s}, with each lower-case ! character replaced by the corresponding upper-case one; non-alphabetic characters are left unchanged. For example: @example --- 4879,4888 ---- toupper @c toupper src/mappers.cc -*- texinfo -*- ! @deftypefn {Mapping Function} {} toupper (@var{s}) ! @deftypefnx {Mapping Function} {} upper (@var{s}) ! Return a copy of the string or cell string @var{s}, with each lowercase ! character replaced by the corresponding uppercase one; non-alphabetic characters are left unchanged. For example: @example *************** *** 4824,4830 **** history list using the editor named by the variable @w{@env{EDITOR}}. The commands to be edited are first copied to a temporary file. When you exit the editor, Octave executes the commands that remain in the file. ! It is often more convenient to use @code{edit_history} to define functions rather than attempting to enter them directly on the command line. By default, the block of commands is executed as soon as you exit the editor. To avoid executing any commands, simply delete all the lines --- 4901,4907 ---- history list using the editor named by the variable @w{@env{EDITOR}}. The commands to be edited are first copied to a temporary file. When you exit the editor, Octave executes the commands that remain in the file. ! It is often more convenient to use @code{edit_history} to define functions rather than attempting to enter them directly on the command line. By default, the block of commands is executed as soon as you exit the editor. To avoid executing any commands, simply delete all the lines *************** *** 4866,4872 **** omitted, use the default history file (normally @file{~/.octave_hist}). @item -r @var{file} ! Read the file @var{file}, appending its contents to the current history list. If the name is omitted, use the default history file (normally @file{~/.octave_hist}). --- 4943,4949 ---- omitted, use the default history file (normally @file{~/.octave_hist}). @item -r @var{file} ! Read the file @var{file}, appending its contents to the current history list. If the name is omitted, use the default history file (normally @file{~/.octave_hist}). *************** *** 4996,5003 **** @c mfilename src/oct-parse.cc -*- texinfo -*- @deftypefn {Built-in Function} {} mfilename () ! @deftypefnx {Built-in Function} {} mfilename (@code{"fullpath"}) ! @deftypefnx {Built-in Function} {} mfilename (@code{"fullpathext"}) Return the name of the currently executing file. At the top-level, return the empty string. Given the argument @code{"fullpath"}, include the directory part of the file name, but not the extension. --- 5073,5080 ---- @c mfilename src/oct-parse.cc -*- texinfo -*- @deftypefn {Built-in Function} {} mfilename () ! @deftypefnx {Built-in Function} {} mfilename ("fullpath") ! @deftypefnx {Built-in Function} {} mfilename ("fullpathext") Return the name of the currently executing file. At the top-level, return the empty string. Given the argument @code{"fullpath"}, include the directory part of the file name, but not the extension. *************** *** 6239,6245 **** dev = 2049 @} @result{} err = 0 ! @result{} msg = @end example @end deftypefn S_ISREG --- 6316,6322 ---- dev = 2049 @} @result{} err = 0 ! @result{} msg = @end example @end deftypefn S_ISREG *************** *** 6301,6308 **** gethostname @c gethostname src/syscalls.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {[@var{uts}, @var{err}, @var{msg}] =} uname () ! Return the hostname of the system on which Octave is running @end deftypefn uname @c uname src/syscalls.cc --- 6378,6385 ---- gethostname @c gethostname src/syscalls.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} gethostname () ! Return the hostname of the system where Octave is running. @end deftypefn uname @c uname src/syscalls.cc *************** *** 6849,6855 **** -*- texinfo -*- @deftypefn {Built-in Function} {} isvarname (@var{name}) Return true if @var{name} is a valid variable name. ! @seealso{exist, who} @end deftypefn file_in_loadpath @c file_in_loadpath src/utils.cc --- 6926,6932 ---- -*- texinfo -*- @deftypefn {Built-in Function} {} isvarname (@var{name}) Return true if @var{name} is a valid variable name. ! @seealso{iskeyword, exist, who} @end deftypefn file_in_loadpath @c file_in_loadpath src/utils.cc *************** *** 6951,6961 **** -*- texinfo -*- @deftypefn {Built-in Function} {} make_absolute_filename (@var{file}) Return the full name of @var{file}, relative to the current directory. @end deftypefn find_dir_in_path @c find_dir_in_path src/utils.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} find_dir_in_path (@var{dir}, "all") Return the full name of the path element matching @var{dir}. The match is performed at the end of each path element. For example, if @var{dir} is @code{"foo/bar"}, it matches the path element --- 7028,7040 ---- -*- texinfo -*- @deftypefn {Built-in Function} {} make_absolute_filename (@var{file}) Return the full name of @var{file}, relative to the current directory. + @seealso{is_absolute_filename, is_rooted_relative_filename, isdir} @end deftypefn find_dir_in_path @c find_dir_in_path src/utils.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} find_dir_in_path (@var{dir}) ! @deftypefnx {Built-in Function} {} find_dir_in_path (@var{dir}, "all") Return the full name of the path element matching @var{dir}. The match is performed at the end of each path element. For example, if @var{dir} is @code{"foo/bar"}, it matches the path element *************** *** 6963,6969 **** or @code{"/some/dir/allfoo/bar"}. The second argument is optional. If it is supplied, return a cell array ! containing all the directory names that match. @end deftypefn errno @c errno src/utils.cc --- 7042,7048 ---- or @code{"/some/dir/allfoo/bar"}. The second argument is optional. If it is supplied, return a cell array ! containing all name matches rather than just the first. @end deftypefn errno @c errno src/utils.cc *************** *** 7044,7049 **** --- 7123,7129 ---- @item "dir" Check only for directories. @end table + @seealso{file_in_loadpath} @end deftypefn who @c who src/variables.cc *************** *** 7076,7082 **** If called as a function, return a cell array of defined variable names matching the given patterns. ! @seealso{whos, regexp} @end deftypefn whos @c whos src/variables.cc --- 7156,7162 ---- If called as a function, return a cell array of defined variable names matching the given patterns. ! @seealso{whos, isglobal, isvarname, exist, regexp} @end deftypefn whos @c whos src/variables.cc *************** *** 7131,7137 **** If @code{whos} is called as a function, return a struct array of defined variable names matching the given patterns. Fields in the structure ! describing each variable are: name, size, bytes, class, global, sparse, complex, nesting, persistent. @seealso{who, whos_line_format} @end deftypefn --- 7211,7217 ---- If @code{whos} is called as a function, return a struct array of defined variable names matching the given patterns. Fields in the structure ! describing each variable are: name, size, bytes, class, global, sparse, complex, nesting, persistent. @seealso{who, whos_line_format} @end deftypefn *************** *** 7145,7161 **** munlock @c munlock src/variables.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} munlock (@var{fcn}) ! Unlock the named function. If no function is named then unlock the current function. @seealso{mlock, mislocked, persistent} @end deftypefn mislocked @c mislocked src/variables.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} mislocked (@var{fcn}) ! Return true if the named function is locked. If no function is named ! then return true if the current function is locked. @seealso{mlock, munlock, persistent} @end deftypefn clear --- 7225,7243 ---- munlock @c munlock src/variables.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} munlock () ! @deftypefnx {Built-in Function} {} munlock (@var{fcn}) ! Unlock the named function @var{fcn}. If no function is named then unlock the current function. @seealso{mlock, mislocked, persistent} @end deftypefn mislocked @c mislocked src/variables.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} mislocked () ! @deftypefnx {Built-in Function} {} mislocked (@var{fcn}) ! Return true if the named function @var{fcn} is locked. If no function is ! named then return true if the current function is locked. @seealso{mlock, munlock, persistent} @end deftypefn clear *************** *** 7176,7182 **** Match the list of characters specified by @var{list}. If the first character is @code{!} or @code{^}, match all characters except those specified by @var{list}. For example, the pattern @samp{[a-zA-Z]} will ! match all lower and upper case alphabetic characters. @end table For example, the command --- 7258,7264 ---- Match the list of characters specified by @var{list}. If the first character is @code{!} or @code{^}, match all characters except those specified by @var{list}. For example, the pattern @samp{[a-zA-Z]} will ! match all lowercase and uppercase alphabetic characters. @end table For example, the command *************** *** 7224,7230 **** The arguments are treated as regular expressions as any variables that match will be cleared. @end table ! With the exception of @code{exclusive}, all long options can be used without the dash as well. @end deftypefn whos_line_format --- 7306,7312 ---- The arguments are treated as regular expressions as any variables that match will be cleared. @end table ! With the exception of @code{exclusive}, all long options can be used without the dash as well. @end deftypefn whos_line_format *************** *** 7300,7307 **** -*- texinfo -*- @deftypefn {Built-in Function} {@var{val} =} missing_function_hook () @deftypefnx {Built-in Function} {@var{old_val} =} missing_function_hook (@var{new_val}) ! Query or set the internal variable that allows setting a custom hook function ! called when an uknown identifier is requested. @end deftypefn __varval__ @c __varval__ src/variables.cc --- 7382,7389 ---- -*- texinfo -*- @deftypefn {Built-in Function} {@var{val} =} missing_function_hook () @deftypefnx {Built-in Function} {@var{old_val} =} missing_function_hook (@var{new_val}) ! Query or set the internal variable that specifies the function to call when ! an unknown identifier is requested. @end deftypefn __varval__ @c __varval__ src/variables.cc *************** *** 7349,7362 **** cell @c cell src/ov-cell.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} cell (@var{x}) ! @deftypefnx {Built-in Function} {} cell (@var{n}, @var{m}) ! Create a new cell array object. If invoked with a single scalar ! argument, @code{cell} returns a square cell array with the dimension ! specified. If you supply two scalar arguments, @code{cell} takes ! them to be the number of rows and columns. If given a vector with two ! elements, @code{cell} uses the values of the elements as the number of ! rows and columns, respectively. @end deftypefn iscellstr @c iscellstr src/ov-cell.cc --- 7431,7445 ---- cell @c cell src/ov-cell.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} cell (@var{n}) ! @deftypefnx {Built-in Function} {} cell (@var{m}, @var{n}) ! @deftypefnx {Built-in Function} {} cell (@var{m}, @var{n}, @var{k}, @dots{}) ! @deftypefnx {Built-in Function} {} cell ([@var{m} @var{n} @dots{}]) ! Create a new cell array object. ! If invoked with a single scalar integer argument, return a square ! @nospell{NxN} cell array. If invoked with two or more scalar ! integer arguments, or a vector of integer values, return an array with ! the given dimensions. @end deftypefn iscellstr @c iscellstr src/ov-cell.cc *************** *** 7540,7545 **** --- 7623,7641 ---- Create a vectorized version of the inline function @var{fun} by replacing all occurrences of @code{*}, @code{/}, etc., with @code{.*}, @code{./}, etc. + + This may be useful, for example, when using inline functions with + numerical integration or optimization where a vector-valued function + is expected. + + @example + @group + fcn = vectorize (inline ("x^2 - 1")) + @result{} fcn = f(x) = x.^2 - 1 + quadv (fcn, 0, 3) + @result{} 6 + @end group + @end example @end deftypefn single @c single src/ov-flt-re-mat.cc *************** *** 7681,7687 **** typeinfo @c typeinfo src/ov-typeinfo.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} typeinfo (@var{expr}) Return the type of the expression @var{expr}, as a string. If @var{expr} is omitted, return an array of strings containing all the --- 7777,7784 ---- typeinfo @c typeinfo src/ov-typeinfo.cc -*- texinfo -*- ! @deftypefn {Built-in Function} {} typeinfo () ! @deftypefnx {Built-in Function} {} typeinfo (@var{expr}) Return the type of the expression @var{expr}, as a string. If @var{expr} is omitted, return an array of strings containing all the *************** *** 7727,7733 **** @code{f}. At the top level, @code{nargout} is undefined. ! @seealso{nargin, varargin, varargout} @end deftypefn optimize_subsasgn_calls @c optimize_subsasgn_calls src/ov-usr-fcn.cc --- 7824,7830 ---- @code{f}. At the top level, @code{nargout} is undefined. ! @seealso{nargin, isargout, varargin, varargout} @end deftypefn optimize_subsasgn_calls @c optimize_subsasgn_calls src/ov-usr-fcn.cc *************** *** 7786,7793 **** idx.type = "()"; idx.subs = @{":", 1:2@}; subsref(val, idx) ! @result{} [ 8 1 ! 3 5 4 9 ] @end group @end example --- 7883,7890 ---- idx.type = "()"; idx.subs = @{":", 1:2@}; subsref(val, idx) ! @result{} [ 8 1 ! 3 5 4 9 ] @end group @end example *************** *** 8115,8124 **** equilibration to be computed without round-off. Results of eigenvalue calculation are typically improved by balancing first. ! If two output values are requested, @code{balance} returns ! the diagonal @var{D} and the permutation @var{P} separately as vectors. ! In this case, @code{@var{DD} = eye(n)(:,@var{P}) * diag (@var{D})}, where n ! @t{n} is the matrix size. If four output values are requested, compute @code{@var{AA} = @var{CC}*@var{A}*@var{DD}} and @code{@var{BB} = @var{CC}*@var{B}*@var{DD}}, --- 8212,8221 ---- equilibration to be computed without round-off. Results of eigenvalue calculation are typically improved by balancing first. ! If two output values are requested, @code{balance} returns ! the diagonal @var{D} and the permutation @var{P} separately as vectors. ! In this case, @code{@var{DD} = eye(n)(:,@var{P}) * diag (@var{D})}, where ! @math{n} is the matrix size. If four output values are requested, compute @code{@var{AA} = @var{CC}*@var{A}*@var{DD}} and @code{@var{BB} = @var{CC}*@var{B}*@var{DD}}, *************** *** 8153,8159 **** @table @code @item besselj ! Bessel functions of the first kind. If the argument @var{opt} is supplied, the result is multiplied by @code{exp(-abs(imag(@var{x})))}. @item bessely --- 8250,8256 ---- @table @code @item besselj ! Bessel functions of the first kind. If the argument @var{opt} is supplied, the result is multiplied by @code{exp(-abs(imag(@var{x})))}. @item bessely *************** *** 8288,8297 **** @c betainc src/DLD-FUNCTIONS/betainc.cc -*- texinfo -*- @deftypefn {Mapping Function} {} betainc (@var{x}, @var{a}, @var{b}) ! Return the incomplete Beta function, @tex $$ ! \beta (x, a, b) = B (a, b)^{-1} \int_0^x t^{(a-z)} (1-t)^{(b-1)} dt. $$ @end tex @ifnottex --- 8385,8394 ---- @c betainc src/DLD-FUNCTIONS/betainc.cc -*- texinfo -*- @deftypefn {Mapping Function} {} betainc (@var{x}, @var{a}, @var{b}) ! Return the regularized incomplete Beta function, @tex $$ ! I (x, a, b) = {1 \over {B (a, b)}} \int_0^x t^{(a-z)} (1-t)^{(b-1)} dt. $$ @end tex @ifnottex *************** *** 8299,8309 **** @smallexample @group ! x ! / ! betainc (x, a, b) = beta (a, b)^(-1) | t^(a-1) (1-t)^(b-1) dt. ! / ! t=0 @end group @end smallexample --- 8396,8407 ---- @smallexample @group ! @c spacing appears odd here, but is correct after Makeinfo ! x ! 1 / ! betainc (x, a, b) = ----------- | t^(a-1) (1-t)^(b-1) dt. ! beta (a, b) / ! t=0 @end group @end smallexample *************** *** 8318,8326 **** -*- texinfo -*- @deftypefn {Loadable Function} {} bsxfun (@var{f}, @var{A}, @var{B}) Apply a binary function @var{f} element-by-element to two matrix arguments ! @var{A} and @var{B}. The function @var{f} must be capable of accepting ! two column-vector arguments of equal length, or one column vector ! argument and a scalar. The dimensions of @var{A} and @var{B} must be equal or singleton. The singleton dimensions of the matrices will be expanded to the same --- 8416,8425 ---- -*- texinfo -*- @deftypefn {Loadable Function} {} bsxfun (@var{f}, @var{A}, @var{B}) Apply a binary function @var{f} element-by-element to two matrix arguments ! @var{A} and @var{B}. @var{f} is a function handle, inline function, or ! string containing the name of the function to evaluate. ! The function @var{f} must be capable of accepting two column-vector ! arguments of equal length, or one column vector argument and a scalar. The dimensions of @var{A} and @var{B} must be equal or singleton. The singleton dimensions of the matrices will be expanded to the same *************** *** 8549,8555 **** endfunction [aa, bb] = cellfun(@@twoouts, @{1, 2, 3@}) @result{} ! aa = 1 2 3 bb = 1 4 9 --- 8648,8654 ---- endfunction [aa, bb] = cellfun(@@twoouts, @{1, 2, 3@}) @result{} ! aa = 1 2 3 bb = 1 4 9 *************** *** 8903,8909 **** @code{@var{knobs}(2)} are < 0, respectively. If @code{@var{knobs}(3)} is nonzero, @var{stats} and @var{knobs} are printed. The default is @code{@var{knobs} = [10 10 0]}. Note that @var{knobs} differs from earlier ! versions of colamd @var{stats} is an optional 20-element output vector that provides data about the ordering and the validity of the input matrix @var{S}. Ordering --- 9002,9008 ---- @code{@var{knobs}(2)} are < 0, respectively. If @code{@var{knobs}(3)} is nonzero, @var{stats} and @var{knobs} are printed. The default is @code{@var{knobs} = [10 10 0]}. Note that @var{knobs} differs from earlier ! versions of colamd. @var{stats} is an optional 20-element output vector that provides data about the ordering and the validity of the input matrix @var{S}. Ordering *************** *** 8959,8965 **** vector p such that @code{@var{S}(@var{p}, @var{p})} tends to have a sparser Cholesky@tie{}factor than @var{S}. Sometimes @code{symamd} works well for symmetric indefinite matrices too. The matrix @var{S} is assumed ! to be symmetric; only the strictly lower triangular part is referenced. @var{S} must be square. @var{knobs} is an optional one- to two-element input vector. If @var{S} is --- 9058,9064 ---- vector p such that @code{@var{S}(@var{p}, @var{p})} tends to have a sparser Cholesky@tie{}factor than @var{S}. Sometimes @code{symamd} works well for symmetric indefinite matrices too. The matrix @var{S} is assumed ! to be symmetric; only the strictly lower triangular part is referenced. @var{S} must be square. @var{knobs} is an optional one- to two-element input vector. If @var{S} is *************** *** 8967,8973 **** @code{max(16,@var{knobs}(1)*sqrt(n))} entries are removed prior to ordering, and ordered last in the output permutation @var{p}. No rows/columns are removed if @code{@var{knobs}(1) < 0}. If @code{@var{knobs} (2)} is nonzero, ! @code{stats} and @var{knobs} are printed. The default is @code{@var{knobs} = [10 0]}. Note that @var{knobs} differs from earlier versions of symamd. @var{stats} is an optional 20-element output vector that provides data --- 9066,9072 ---- @code{max(16,@var{knobs}(1)*sqrt(n))} entries are removed prior to ordering, and ordered last in the output permutation @var{p}. No rows/columns are removed if @code{@var{knobs}(1) < 0}. If @code{@var{knobs} (2)} is nonzero, ! @code{stats} and @var{knobs} are printed. The default is @code{@var{knobs} = [10 0]}. Note that @var{knobs} differs from earlier versions of symamd. @var{stats} is an optional 20-element output vector that provides data *************** *** 9104,9115 **** daspk_options @c daspk_options src/DLD-FUNCTIONS/daspk.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} daspk_options (@var{opt}, @var{val}) ! When called with two arguments, this function ! allows you set options parameters for the function @code{daspk}. ! Given one argument, @code{daspk_options} returns the value of the ! corresponding option. If no arguments are supplied, the names of all ! the available options and their current values are displayed. Options include --- 9203,9217 ---- daspk_options @c daspk_options src/DLD-FUNCTIONS/daspk.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} daspk_options () ! @deftypefnx {Loadable Function} {val =} daspk_options (@var{opt}) ! @deftypefnx {Loadable Function} {} daspk_options (@var{opt}, @var{val}) ! Query or set options for the function @code{daspk}. ! When called with no arguments, the names of all available options and ! their current values are displayed. ! Given one argument, return the value of the corresponding option. ! When called with two arguments, @code{daspk_options} set the option ! @var{opt} to value @var{val}. Options include *************** *** 9373,9384 **** dasrt_options @c dasrt_options src/DLD-FUNCTIONS/dasrt.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} dasrt_options (@var{opt}, @var{val}) ! When called with two arguments, this function ! allows you set options parameters for the function @code{dasrt}. ! Given one argument, @code{dasrt_options} returns the value of the ! corresponding option. If no arguments are supplied, the names of all ! the available options and their current values are displayed. Options include --- 9475,9489 ---- dasrt_options @c dasrt_options src/DLD-FUNCTIONS/dasrt.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} dasrt_options () ! @deftypefnx {Loadable Function} {val =} dasrt_options (@var{opt}) ! @deftypefnx {Loadable Function} {} dasrt_options (@var{opt}, @var{val}) ! Query or set options for the function @code{dasrt}. ! When called with no arguments, the names of all available options and ! their current values are displayed. ! Given one argument, return the value of the corresponding option. ! When called with two arguments, @code{dasrt_options} set the option ! @var{opt} to value @var{val}. Options include *************** *** 9565,9576 **** dassl_options @c dassl_options src/DLD-FUNCTIONS/dassl.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} dassl_options (@var{opt}, @var{val}) ! When called with two arguments, this function ! allows you set options parameters for the function @code{dassl}. ! Given one argument, @code{dassl_options} returns the value of the ! corresponding option. If no arguments are supplied, the names of all ! the available options and their current values are displayed. Options include --- 9670,9684 ---- dassl_options @c dassl_options src/DLD-FUNCTIONS/dassl.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} dassl_options () ! @deftypefnx {Loadable Function} {val =} dassl_options (@var{opt}) ! @deftypefnx {Loadable Function} {} dassl_options (@var{opt}, @var{val}) ! Query or set options for the function @code{dassl}. ! When called with no arguments, the names of all available options and ! their current values are displayed. ! Given one argument, return the value of the corresponding option. ! When called with two arguments, @code{dassl_options} set the option ! @var{opt} to value @var{val}. Options include *************** *** 9799,9805 **** @c sprank src/DLD-FUNCTIONS/dmperm.cc -*- texinfo -*- @deftypefn {Loadable Function} {@var{p} =} sprank (@var{S}) ! @cindex Structural Rank Calculate the structural rank of the sparse matrix @var{S}. Note that only the structure of the matrix is used in this calculation based on --- 9907,9913 ---- @c sprank src/DLD-FUNCTIONS/dmperm.cc -*- texinfo -*- @deftypefn {Loadable Function} {@var{p} =} sprank (@var{S}) ! @cindex structural rank Calculate the structural rank of the sparse matrix @var{S}. Note that only the structure of the matrix is used in this calculation based on *************** *** 9814,9820 **** -*- texinfo -*- @deftypefn {Loadable Function} {} dot (@var{x}, @var{y}, @var{dim}) Compute the dot product of two vectors. If @var{x} and @var{y} ! are matrices, calculate the dot products along the first non-singleton dimension. If the optional argument @var{dim} is given, calculate the dot products along this dimension. --- 9922,9928 ---- -*- texinfo -*- @deftypefn {Loadable Function} {} dot (@var{x}, @var{y}, @var{dim}) Compute the dot product of two vectors. If @var{x} and @var{y} ! are matrices, calculate the dot products along the first non-singleton dimension. If the optional argument @var{dim} is given, calculate the dot products along this dimension. *************** *** 9823,9844 **** but avoids forming a temporary array and is faster. When @var{X} and @var{Y} are column vectors, the result is equivalent to @code{@var{X}' * @var{Y}}. ! @seealso{cross} @end deftypefn blkmm @c blkmm src/DLD-FUNCTIONS/dot.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} blkmm (@var{x}, @var{y}) Compute products of matrix blocks. The blocks are given as ! 2-dimensional subarrays of the arrays @var{x}, @var{y}. ! The size of @var{x} must have the form @code{[m,k,@dots{}]} and ! size of @var{y} must be @code{[k,n,@dots{}]}. The result is then of size @code{[m,n,@dots{}]} and is computed as follows: @example @group ! for i = 1:prod (size (@var{x})(3:end)) ! @var{z}(:,:,i) = @var{x}(:,:,i) * @var{y}(:,:,i) endfor @end group @end example --- 9931,9952 ---- but avoids forming a temporary array and is faster. When @var{X} and @var{Y} are column vectors, the result is equivalent to @code{@var{X}' * @var{Y}}. ! @seealso{cross, divergence} @end deftypefn blkmm @c blkmm src/DLD-FUNCTIONS/dot.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} blkmm (@var{A}, @var{B}) Compute products of matrix blocks. The blocks are given as ! 2-dimensional subarrays of the arrays @var{A}, @var{B}. ! The size of @var{A} must have the form @code{[m,k,@dots{}]} and ! size of @var{B} must be @code{[k,n,@dots{}]}. The result is then of size @code{[m,n,@dots{}]} and is computed as follows: @example @group ! for i = 1:prod (size (@var{A})(3:end)) ! @var{C}(:,:,i) = @var{A}(:,:,i) * @var{B}(:,:,i) endfor @end group @end example *************** *** 9850,9860 **** @deftypefnx {Loadable Function} {@var{lambda} =} eig (@var{A}, @var{B}) @deftypefnx {Loadable Function} {[@var{V}, @var{lambda}] =} eig (@var{A}) @deftypefnx {Loadable Function} {[@var{V}, @var{lambda}] =} eig (@var{A}, @var{B}) ! The eigenvalues (and eigenvectors) of a matrix are computed in a several ! step process which begins with a Hessenberg decomposition, followed by a ! Schur@tie{}decomposition, from which the eigenvalues are apparent. The ! eigenvectors, when desired, are computed by further manipulations of the ! Schur@tie{}decomposition. The eigenvalues returned by @code{eig} are not ordered. @seealso{eigs, svd} --- 9958,9969 ---- @deftypefnx {Loadable Function} {@var{lambda} =} eig (@var{A}, @var{B}) @deftypefnx {Loadable Function} {[@var{V}, @var{lambda}] =} eig (@var{A}) @deftypefnx {Loadable Function} {[@var{V}, @var{lambda}] =} eig (@var{A}, @var{B}) ! Compute the eigenvalues and eigenvectors of a matrix. ! ! Eigenvalues are computed in a several step process which begins with a ! Hessenberg decomposition, followed by a Schur@tie{}decomposition, from which ! the eigenvalues are apparent. The eigenvectors, when desired, are computed ! by further manipulations of the Schur@tie{}decomposition. The eigenvalues returned by @code{eig} are not ordered. @seealso{eigs, svd} *************** *** 9991,9997 **** @end table It is also possible to represent @var{A} by a function denoted @var{af}. @var{af} must be followed by a scalar argument @var{n} defining the length ! of the vector argument accepted by @var{af}. @var{af} can be a function handle, an inline function, or a string. When @var{af} is a string it holds the name of the function to use. --- 10100,10106 ---- @end table It is also possible to represent @var{A} by a function denoted @var{af}. @var{af} must be followed by a scalar argument @var{n} defining the length ! of the vector argument accepted by @var{af}. @var{af} can be a function handle, an inline function, or a string. When @var{af} is a string it holds the name of the function to use. *************** *** 10176,10182 **** @example fftw ('dwisdom', @var{wisdom}) ! @end example If @var{wisdom} is an empty matrix, then the wisdom used is cleared. --- 10285,10291 ---- @example fftw ('dwisdom', @var{wisdom}) ! @end example If @var{wisdom} is an empty matrix, then the wisdom used is cleared. *************** *** 10336,10346 **** @deftypefnx {Loadable Function} {@var{idx} =} find (@var{x}, @var{n}) @deftypefnx {Loadable Function} {@var{idx} =} find (@var{x}, @var{n}, @var{direction}) @deftypefnx {Loadable Function} {[i, j] =} find (@dots{}) ! @deftypefnx {Loadable Function} {[i, j, v]] =} find (@dots{}) Return a vector of indices of nonzero elements of a matrix, as a row if ! @var{x} is a row or as a column otherwise. To obtain a single index for ! each matrix element, Octave pretends that the columns of a matrix form one ! long vector (like Fortran arrays are stored). For example: @example @group --- 10445,10455 ---- @deftypefnx {Loadable Function} {@var{idx} =} find (@var{x}, @var{n}) @deftypefnx {Loadable Function} {@var{idx} =} find (@var{x}, @var{n}, @var{direction}) @deftypefnx {Loadable Function} {[i, j] =} find (@dots{}) ! @deftypefnx {Loadable Function} {[i, j, v] =} find (@dots{}) Return a vector of indices of nonzero elements of a matrix, as a row if ! @var{x} is a row vector or as a column otherwise. To obtain a single index ! for each matrix element, Octave pretends that the columns of a matrix form ! one long vector (like Fortran arrays are stored). For example: @example @group *************** *** 10385,10393 **** @example @group ! sz = size(a); [i, j, v] = find (a); ! b = sparse(i, j, v, sz(1), sz(2)); @end group @end example @seealso{nonzeros} --- 10494,10502 ---- @example @group ! sz = size (a); [i, j, v] = find (a); ! b = sparse (i, j, v, sz(1), sz(2)); @end group @end example @seealso{nonzeros} *************** *** 10643,10650 **** hess @c hess src/DLD-FUNCTIONS/hess.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {@var{h} =} hess (@var{A}) ! @deftypefnx {Loadable Function} {[@var{p}, @var{h}] =} hess (@var{A}) @cindex Hessenberg decomposition Compute the Hessenberg decomposition of the matrix @var{A}. --- 10752,10759 ---- hess @c hess src/DLD-FUNCTIONS/hess.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {@var{H} =} hess (@var{A}) ! @deftypefnx {Loadable Function} {[@var{P}, @var{H}] =} hess (@var{A}) @cindex Hessenberg decomposition Compute the Hessenberg decomposition of the matrix @var{A}. *************** *** 10657,10664 **** is upper Hessenberg ($H_{i,j} = 0, \forall i \ge j+1$). @end tex @ifnottex ! @code{@var{P} * @var{H} * @var{P}' = @var{A}} where @var{p} is a square ! unitary matrix (@code{@var{p}' * @var{p} = I}, using complex-conjugate transposition) and @var{H} is upper Hessenberg (@code{@var{H}(i, j) = 0 forall i >= j+1)}. @end ifnottex --- 10766,10773 ---- is upper Hessenberg ($H_{i,j} = 0, \forall i \ge j+1$). @end tex @ifnottex ! @code{@var{P} * @var{H} * @var{P}' = @var{A}} where @var{P} is a square ! unitary matrix (@code{@var{P}' * @var{P} = I}, using complex-conjugate transposition) and @var{H} is upper Hessenberg (@code{@var{H}(i, j) = 0 forall i >= j+1)}. @end ifnottex *************** *** 10709,10715 **** inv @c inv src/DLD-FUNCTIONS/inv.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {[@var{x} =} inv (@var{A}) @deftypefnx {Loadable Function} {[@var{x}, @var{rcond}] =} inv (@var{A}) Compute the inverse of the square matrix @var{A}. Return an estimate of the reciprocal condition number if requested, otherwise warn of an --- 10818,10824 ---- inv @c inv src/DLD-FUNCTIONS/inv.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {@var{x} =} inv (@var{A}) @deftypefnx {Loadable Function} {[@var{x}, @var{rcond}] =} inv (@var{A}) Compute the inverse of the square matrix @var{A}. Return an estimate of the reciprocal condition number if requested, otherwise warn of an *************** *** 10729,10737 **** inverse @c inverse src/DLD-FUNCTIONS/inv.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {[@var{x} =} inverse (@var{A}) @deftypefnx {Loadable Function} {[@var{x}, @var{rcond}] =} inverse (@var{A}) ! This in an alias for @code{inv}. @seealso{inv} @end deftypefn kron --- 10838,10848 ---- inverse @c inverse src/DLD-FUNCTIONS/inv.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {@var{x} =} inverse (@var{A}) @deftypefnx {Loadable Function} {[@var{x}, @var{rcond}] =} inverse (@var{A}) ! Compute the inverse of the square matrix @var{A}. ! ! This is an alias for @code{inv}. @seealso{inv} @end deftypefn kron *************** *** 10758,10770 **** lookup @c lookup src/DLD-FUNCTIONS/lookup.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {@var{idx} =} lookup (@var{table}, @var{y}, @var{opt}) Lookup values in a sorted table. Usually used as a prelude to interpolation. If table is increasing and @code{idx = lookup (table, y)}, then @code{table(idx(i)) <= y(i) < table(idx(i+1))} for all @code{y(i)} ! within the table. If @code{y(i) < table (1)} then @code{idx(i)} is 0. If @code{y(i) >= table(end)} or @code{isnan (y(i))} then @code{idx(i)} is @code{n}. --- 10869,10882 ---- lookup @c lookup src/DLD-FUNCTIONS/lookup.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {@var{idx} =} lookup (@var{table}, @var{y}) ! @deftypefnx {Loadable Function} {@var{idx} =} lookup (@var{table}, @var{y}, @var{opt}) Lookup values in a sorted table. Usually used as a prelude to interpolation. If table is increasing and @code{idx = lookup (table, y)}, then @code{table(idx(i)) <= y(i) < table(idx(i+1))} for all @code{y(i)} ! within the table. If @code{y(i) < table(1)} then @code{idx(i)} is 0. If @code{y(i) >= table(end)} or @code{isnan (y(i))} then @code{idx(i)} is @code{n}. *************** *** 10781,10787 **** (or @var{y} can be a single string). In this case, string lookup is performed using lexicographical comparison. ! If @var{opts} is specified, it shall be a string with letters indicating additional options. @table @code --- 10893,10899 ---- (or @var{y} can be a single string). In this case, string lookup is performed using lexicographical comparison. ! If @var{opts} is specified, it must be a string with letters indicating additional options. @table @code *************** *** 10807,10818 **** lsode_options @c lsode_options src/DLD-FUNCTIONS/lsode.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} lsode_options (@var{opt}, @var{val}) ! When called with two arguments, this function ! allows you set options parameters for the function @code{lsode}. ! Given one argument, @code{lsode_options} returns the value of the ! corresponding option. If no arguments are supplied, the names of all ! the available options and their current values are displayed. Options include --- 10919,10933 ---- lsode_options @c lsode_options src/DLD-FUNCTIONS/lsode.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} lsode_options () ! @deftypefnx {Loadable Function} {val =} lsode_options (@var{opt}) ! @deftypefnx {Loadable Function} {} lsode_options (@var{opt}, @var{val}) ! Query or set options for the function @code{lsode}. ! When called with no arguments, the names of all available options and ! their current values are displayed. ! Given one argument, return the value of the corresponding option. ! When called with two arguments, @code{lsode_options} set the option ! @var{opt} to value @var{val}. Options include *************** *** 11178,11184 **** @deftypefnx {Loadable Function} {@var{A} =} matrix_type (@var{A}, 'lower', @var{perm}) @deftypefnx {Loadable Function} {@var{A} =} matrix_type (@var{A}, 'banded', @var{nl}, @var{nu}) Identify the matrix type or mark a matrix as a particular type. This allows ! more rapid solutions of linear equations involving @var{A} to be performed. Called with a single argument, @code{matrix_type} returns the type of the matrix and caches it for future use. Called with more than one argument, @code{matrix_type} allows the type of the matrix to be defined. --- 11293,11299 ---- @deftypefnx {Loadable Function} {@var{A} =} matrix_type (@var{A}, 'lower', @var{perm}) @deftypefnx {Loadable Function} {@var{A} =} matrix_type (@var{A}, 'banded', @var{nl}, @var{nu}) Identify the matrix type or mark a matrix as a particular type. This allows ! more rapid solutions of linear equations involving @var{A} to be performed. Called with a single argument, @code{matrix_type} returns the type of the matrix and caches it for future use. Called with more than one argument, @code{matrix_type} allows the type of the matrix to be defined. *************** *** 11232,11238 **** Note that the matrix type will be discovered automatically on the first attempt to solve a linear equation involving @var{A}. Therefore ! @code{matrix_type} is only useful to give Octave hints of the matrix type. Incorrectly defining the matrix type will result in incorrect results from solutions of linear equations; it is entirely @strong{the responsibility of the user} to correctly identify the matrix type. --- 11347,11353 ---- Note that the matrix type will be discovered automatically on the first attempt to solve a linear equation involving @var{A}. Therefore ! @code{matrix_type} is only useful to give Octave hints of the matrix type. Incorrectly defining the matrix type will result in incorrect results from solutions of linear equations; it is entirely @strong{the responsibility of the user} to correctly identify the matrix type. *************** *** 11425,11430 **** --- 11540,11583 ---- @var{opt} exists and is true, then calculate the MD5 sum of the string @var{str}. @end deftypefn + mgorth + @c mgorth src/DLD-FUNCTIONS/mgorth.cc + -*- texinfo -*- + @deftypefn {Loadable Function} {[@var{y}, @var{h}] =} mgorth (@var{x}, @var{v}) + Orthogonalize a given column vector @var{x} with respect to a given + orthonormal basis @var{v} using a modified Gram-Schmidt orthogonalization. + On exit, @var{y} is a unit vector such that: + + @example + @group + norm (@var{y}) = 1 + @var{v}' * @var{y} = 0 + @var{x} = @var{h}*[@var{v}, @var{y}] + @end group + @end example + + @end deftypefn + nproc + @c nproc src/DLD-FUNCTIONS/nproc.cc + -*- texinfo -*- + @deftypefn {Loadable Function} {} nproc () + @deftypefnx {Loadable Function} {} nproc (@var{query}) + Return the current number of available processors. + + If called with the optional argument @var{query}, modify how processors + are counted as follows: + @table @code + @item all + total number of processors. + + @item current + processors available to the current process. + + @item overridable + likewise, but overridable through the @w{@env{OMP_NUM_THREADS}} environment + variable. + @end table + @end deftypefn onCleanup @c onCleanup src/DLD-FUNCTIONS/onCleanup.cc -*- texinfo -*- *************** *** 11434,11440 **** elements) or returned from a function, @var{action} will be executed after clearing the last copy of the object. Note that if multiple local onCleanup variables are created, the order in which they are called is unspecified. ! @seealso{unwind_protect} @end deftypefn pinv @c pinv src/DLD-FUNCTIONS/pinv.cc --- 11587,11593 ---- elements) or returned from a function, @var{action} will be executed after clearing the last copy of the object. Note that if multiple local onCleanup variables are created, the order in which they are called is unspecified. ! For similar functionality @xref{The @code{unwind_protect} Statement}. @end deftypefn pinv @c pinv src/DLD-FUNCTIONS/pinv.cc *************** *** 11442,11450 **** @deftypefn {Loadable Function} {} pinv (@var{x}) @deftypefnx {Loadable Function} {} pinv (@var{x}, @var{tol}) Return the pseudoinverse of @var{x}. Singular values less than ! @var{tol} are ignored. ! If the second argument is omitted, it is assumed that @example tol = max (size (@var{x})) * sigma_max (@var{x}) * eps, --- 11595,11603 ---- @deftypefn {Loadable Function} {} pinv (@var{x}) @deftypefnx {Loadable Function} {} pinv (@var{x}, @var{tol}) Return the pseudoinverse of @var{x}. Singular values less than ! @var{tol} are ignored. ! If the second argument is omitted, it is taken to be @example tol = max (size (@var{x})) * sigma_max (@var{x}) * eps, *************** *** 11532,11538 **** @example @group ! @var{Q} = -0.44721 -0.89443 -0.89443 0.44721 --- 11685,11691 ---- @example @group ! @var{Q} = -0.44721 -0.89443 -0.89443 0.44721 *************** *** 11668,11679 **** quad_options @c quad_options src/DLD-FUNCTIONS/quad.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} quad_options (@var{opt}, @var{val}) ! When called with two arguments, this function ! allows you set options parameters for the function @code{quad}. ! Given one argument, @code{quad_options} returns the value of the ! corresponding option. If no arguments are supplied, the names of all ! the available options and their current values are displayed. Options include --- 11821,11835 ---- quad_options @c quad_options src/DLD-FUNCTIONS/quad.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} quad_options () ! @deftypefnx {Loadable Function} {val =} quad_options (@var{opt}) ! @deftypefnx {Loadable Function} {} quad_options (@var{opt}, @var{val}) ! Query or set options for the function @code{quad}. ! When called with no arguments, the names of all available options and ! their current values are displayed. ! Given one argument, return the value of the corresponding option. ! When called with two arguments, @code{quad_options} set the option ! @var{opt} to value @var{val}. Options include *************** *** 11684,11690 **** @item "relative tolerance" Non-negative relative tolerance. If the absolute tolerance is zero, the relative tolerance must be greater than or equal to ! @code{max (50*eps, 0.5e-28)}. @item "single precision absolute tolerance" Absolute tolerance for single precision; may be zero for pure relative --- 11840,11846 ---- @item "relative tolerance" Non-negative relative tolerance. If the absolute tolerance is zero, the relative tolerance must be greater than or equal to ! @w{@code{max (50*eps, 0.5e-28)}}. @item "single precision absolute tolerance" Absolute tolerance for single precision; may be zero for pure relative *************** *** 11693,11734 **** @item "single precision relative tolerance" Non-negative relative tolerance for single precision. If the absolute tolerance is zero, the relative tolerance must be greater than or equal to ! @code{max (50*eps, 0.5e-28)}. @end table @end deftypefn quad @c quad src/DLD-FUNCTIONS/quad.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {@var{v} =} quad (@var{f}, @var{a}, @var{b}) ! @deftypefnx {Loadable Function} {@var{v} =} quad (@var{f}, @var{a}, @var{b}, @var{tol}) ! @deftypefnx {Loadable Function} {@var{v} =} quad (@var{f}, @var{a}, @var{b}, @var{tol}, @var{sing}) ! @deftypefnx {Loadable Function} {[@var{v}, @var{ier}, @var{nfun}, @var{err}] =} quad (@dots{}) ! Integrate a nonlinear function of one variable using @sc{quadpack}. ! The first argument is the name of the function, the function handle, or ! the inline function to call to compute the value of the integrand. It ! must have the form ! @example ! y = f (x) ! @end example ! ! @noindent ! where @var{y} and @var{x} are scalars. ! ! The second and third arguments are limits of integration. Either or ! both may be infinite. The optional argument @var{tol} is a vector that specifies the desired accuracy of the result. The first element of the vector is the desired absolute tolerance, and the second element is the desired relative tolerance. To choose a relative test only, set the absolute tolerance to zero. To choose an absolute test only, set the relative ! tolerance to zero. The optional argument @var{sing} is a vector of values at which the integrand is known to be singular. ! The result of the integration is returned in @var{v}. @var{ier} contains an integer error code (0 indicates a successful integration). @var{nfun} indicates the number of function evaluations that were made, and @var{err} contains an estimate of the error in the --- 11849,11885 ---- @item "single precision relative tolerance" Non-negative relative tolerance for single precision. If the absolute tolerance is zero, the relative tolerance must be greater than or equal to ! @w{@code{max (50*eps, 0.5e-28)}}. @end table @end deftypefn quad @c quad src/DLD-FUNCTIONS/quad.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {@var{q} =} quad (@var{f}, @var{a}, @var{b}) ! @deftypefnx {Loadable Function} {@var{q} =} quad (@var{f}, @var{a}, @var{b}, @var{tol}) ! @deftypefnx {Loadable Function} {@var{q} =} quad (@var{f}, @var{a}, @var{b}, @var{tol}, @var{sing}) ! @deftypefnx {Loadable Function} {[@var{q}, @var{ier}, @var{nfun}, @var{err}] =} quad (@dots{}) ! Numerically evaluate the integral of @var{f} from @var{a} to @var{b} using ! Fortran routines from @w{@sc{quadpack}}. @var{f} is a function handle, ! inline function, or a string containing the name of the function to ! evaluate. The function must have the form @code{y = f (x)} where @var{y} and ! @var{x} are scalars. ! @var{a} and @var{b} are the lower and upper limits of integration. Either ! or both may be infinite. The optional argument @var{tol} is a vector that specifies the desired accuracy of the result. The first element of the vector is the desired absolute tolerance, and the second element is the desired relative tolerance. To choose a relative test only, set the absolute tolerance to zero. To choose an absolute test only, set the relative ! tolerance to zero. Both tolerances default to @code{sqrt(eps)} or ! approximately @math{1.5e^{-8}}. The optional argument @var{sing} is a vector of values at which the integrand is known to be singular. ! The result of the integration is returned in @var{q}. @var{ier} contains an integer error code (0 indicates a successful integration). @var{nfun} indicates the number of function evaluations that were made, and @var{err} contains an estimate of the error in the *************** *** 11737,11813 **** The function @code{quad_options} can set other optional parameters for @code{quad}. ! Note: because @code{quad} is written in Fortran it ! cannot be called recursively. @seealso{quad_options, quadv, quadl, quadgk, quadcc, trapz, dblquad, triplequad} @end deftypefn quadcc @c quadcc src/DLD-FUNCTIONS/quadcc.cc -*- texinfo -*- ! @deftypefn {Function File} {[@var{int}, @var{err}, @var{nr_points}] =} quadcc (@var{f}, @var{a}, @var{b}, @var{tol}) ! @deftypefnx {Function File} {[@var{int}, @var{err}, @var{nr_points}] =} quadcc (@var{f}, @var{a}, @var{b}, @var{tol}, @var{sing}) ! Numerically evaluates an integral using the doubly-adaptive ! quadrature described by P. Gonnet in @cite{Increasing the ! Reliability of Adaptive Quadrature Using Explicit Interpolants}, ! ACM Transactions on Mathematical Software, in Press, 2010. ! The algorithm uses Clenshaw-Curtis quadrature rules of increasing ! degree in each interval and bisects the interval if either the ! function does not appear to be smooth or a rule of maximum ! degree has been reached. The error estimate is computed from the ! L2-norm of the difference between two successive interpolations ! of the integrand over the nodes of the respective quadrature rules. ! ! For example, ! ! @example ! int = quadcc (f, a, b, 1.0e-6); @end example @noindent ! computes the integral of a function @var{f} in the interval ! [@var{a}, @var{b}] to the relative precision of six ! decimal digits. ! The integrand @var{f} should accept a vector argument and return a vector ! result containing the integrand evaluated at each element of the ! argument, for example: ! ! @example ! f = @@(x) x .* sin (1 ./ x) .* sqrt (abs (1 - x)); ! @end example ! ! If the integrand has known singularities or discontinuities ! in any of its derivatives inside the interval, ! as does the above example at x=1, these can be specified in ! the additional argument @var{sing} as follows @example int = quadcc (f, a, b, 1.0e-6, [ 1 ]); @end example ! The two additional output variables @var{err} and @var{nr_points} ! return an estimate of the absolute integration error and ! the number of points at which the integrand was evaluated ! respectively. If the adaptive integration did not converge, the value of ! @var{err} will be larger than the requested tolerance. It is ! therefore recommended to verify this value for difficult ! integrands. ! ! If either @var{a} or @var{b} are @code{+/-Inf}, @code{quadcc} ! integrates @var{f} by substituting the variable of integration ! with @code{x=tan(pi/2*u)}. @code{quadcc} is capable of dealing with non-numeric ! values of the integrand such as @code{NaN}, @code{Inf} ! or @code{-Inf}, as in the above example at x=0. ! If the integral diverges and @code{quadcc} detects this, ! a warning is issued and @code{Inf} or @code{-Inf} is returned. ! ! Note that @code{quadcc} is a general purpose quadrature algorithm ! and as such may be less efficient for smooth or otherwise ! well-behaved integrand than other methods such as ! @code{quadgk} or @code{trapz}. @seealso{quad, quadv, quadl, quadgk, trapz, dblquad, triplequad} @end deftypefn qz --- 11888,11964 ---- The function @code{quad_options} can set other optional parameters for @code{quad}. ! Note: because @code{quad} is written in Fortran it cannot be called ! recursively. This prevents its use in integrating over more than one ! variable by routines @code{dblquad} and @code{triplequad}. @seealso{quad_options, quadv, quadl, quadgk, quadcc, trapz, dblquad, triplequad} @end deftypefn quadcc @c quadcc src/DLD-FUNCTIONS/quadcc.cc -*- texinfo -*- ! @deftypefn {Function File} {@var{q} =} quadcc (@var{f}, @var{a}, @var{b}) ! @deftypefnx {Function File} {@var{q} =} quadcc (@var{f}, @var{a}, @var{b}, @var{tol}) ! @deftypefnx {Function File} {@var{q} =} quadcc (@var{f}, @var{a}, @var{b}, @var{tol}, @var{sing}) ! @deftypefnx {Function File} {[@var{q}, @var{err}, @var{nr_points}] =} quadcc (@dots{}) ! Numerically evaluate the integral of @var{f} from @var{a} to @var{b} ! using the doubly-adaptive Clenshaw-Curtis quadrature described by P. Gonnet ! in @cite{Increasing the Reliability of Adaptive Quadrature Using Explicit ! Interpolants}. ! @var{f} is a function handle, inline function, or string ! containing the name of the function to evaluate. ! The function @var{f} must be vectorized and must return a vector of output ! values if given a vector of input values. For example, ! ! @example ! f = @@(x) x .* sin (1./x) .* sqrt (abs (1 - x)); @end example @noindent ! which uses the element-by-element `dot' form for all operators. ! ! @var{a} and @var{b} are the lower and upper limits of integration. Either ! or both limits may be infinite. @code{quadcc} handles an inifinite limit ! by substituting the variable of integration with @code{x=tan(pi/2*u)}. ! ! The optional argument @var{tol} defines the relative tolerance used to stop ! the integration procedure. The default value is @math{1e^{-6}}. ! ! The optional argument @var{sing} contains a list of points where the ! integrand has known singularities, or discontinuities ! in any of its derivatives, inside the integration interval. ! For the example above, which has a discontinuity at x=1, the call to ! @code{quadcc} would be as follows @example int = quadcc (f, a, b, 1.0e-6, [ 1 ]); @end example ! The result of the integration is returned in @var{q}. ! @var{err} is an estimate of the absolute integration error and ! @var{nr_points} is the number of points at which the integrand was evaluated. If the adaptive integration did not converge, the value of ! @var{err} will be larger than the requested tolerance. Therefore, it is ! recommended to verify this value for difficult integrands. @code{quadcc} is capable of dealing with non-numeric ! values of the integrand such as @code{NaN} or @code{Inf}. ! If the integral diverges, and @code{quadcc} detects this, ! then a warning is issued and @code{Inf} or @code{-Inf} is returned. ! ! Note: @code{quadcc} is a general purpose quadrature algorithm ! and, as such, may be less efficient for a smooth or otherwise ! well-behaved integrand than other methods such as @code{quadgk}. + The algorithm uses Clenshaw-Curtis quadrature rules of increasing + degree in each interval and bisects the interval if either the + function does not appear to be smooth or a rule of maximum + degree has been reached. The error estimate is computed from the + L2-norm of the difference between two successive interpolations + of the integrand over the nodes of the respective quadrature rules. + + Reference: P. Gonnet, @cite{Increasing the Reliability of Adaptive + Quadrature Using Explicit Interpolants}, ACM Transactions on + Mathematical Software, Vol. 37, Issue 3, Article No. 3, 2010. @seealso{quad, quadv, quadl, quadgk, trapz, dblquad, triplequad} @end deftypefn qz *************** *** 11831,11837 **** @item @code{[AA, BB, Q, Z, V, W, @var{lambda}] = qz (@var{A}, @var{B})} ! Computes QZ@tie{}decomposition, generalized eigenvectors, and generalized eigenvalues of @math{(A - s B)} @tex $$ AV = BV{ \rm diag }(\lambda) $$ --- 11982,11988 ---- @item @code{[AA, BB, Q, Z, V, W, @var{lambda}] = qz (@var{A}, @var{B})} ! Computes QZ@tie{}decomposition, generalized eigenvectors, and generalized eigenvalues of @math{(A - s B)} @tex $$ AV = BV{ \rm diag }(\lambda) $$ *************** *** 11867,11879 **** of the revised pencil contains all eigenvalues that satisfy: @table @asis @item "N" ! = unordered (default) @item "S" ! = small: leading block has all |lambda| @leq{} 1 @item "B" ! = big: leading block has all |lambda| @geq{} 1 @item "-" = negative real part: leading block has all eigenvalues --- 12018,12030 ---- of the revised pencil contains all eigenvalues that satisfy: @table @asis @item "N" ! = unordered (default) @item "S" ! = small: leading block has all |lambda| @leq{} 1 @item "B" ! = big: leading block has all |lambda| @geq{} 1 @item "-" = negative real part: leading block has all eigenvalues *************** *** 11894,11901 **** rand @c rand src/DLD-FUNCTIONS/rand.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} rand (@var{x}) ! @deftypefnx {Loadable Function} {} rand (@var{n}, @var{m}) @deftypefnx {Loadable Function} {@var{v} =} rand ("state") @deftypefnx {Loadable Function} {} rand ("state", @var{v}) @deftypefnx {Loadable Function} {} rand ("state", "reset") --- 12045,12053 ---- rand @c rand src/DLD-FUNCTIONS/rand.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} rand (@var{n}) ! @deftypefnx {Loadable Function} {} rand (@var{n}, @var{m}, @dots{}) ! @deftypefnx {Loadable Function} {} rand ([@var{n} @var{m} @dots{}]) @deftypefnx {Loadable Function} {@var{v} =} rand ("state") @deftypefnx {Loadable Function} {} rand ("state", @var{v}) @deftypefnx {Loadable Function} {} rand ("state", "reset") *************** *** 11927,11939 **** value of @var{v}, not @var{v} itself. By default, the generator is initialized from @code{/dev/urandom} if it is ! available, otherwise from CPU time, wall clock time and the current fraction of a second. To compute the pseudo-random sequence, @code{rand} uses the Mersenne Twister with a period of @math{2^{19937}-1} (See M. Matsumoto and T. Nishimura, ! @cite{Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator}, ACM Trans. on Modeling and Computer Simulation Vol. 8, No. 1, pp. 3-30, January 1998, @url{http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html}). --- 12079,12091 ---- value of @var{v}, not @var{v} itself. By default, the generator is initialized from @code{/dev/urandom} if it is ! available, otherwise from CPU time, wall clock time, and the current fraction of a second. To compute the pseudo-random sequence, @code{rand} uses the Mersenne Twister with a period of @math{2^{19937}-1} (See M. Matsumoto and T. Nishimura, ! @cite{Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator}, ACM Trans. on Modeling and Computer Simulation Vol. 8, No. 1, pp. 3-30, January 1998, @url{http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html}). *************** *** 11974,11981 **** randn @c randn src/DLD-FUNCTIONS/rand.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} randn (@var{x}) ! @deftypefnx {Loadable Function} {} randn (@var{n}, @var{m}) @deftypefnx {Loadable Function} {@var{v} =} randn ("state") @deftypefnx {Loadable Function} {} randn ("state", @var{v}) @deftypefnx {Loadable Function} {} randn ("state", "reset") --- 12126,12134 ---- randn @c randn src/DLD-FUNCTIONS/rand.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} randn (@var{n}) ! @deftypefnx {Loadable Function} {} randn (@var{n}, @var{m}, @dots{}) ! @deftypefnx {Loadable Function} {} randn ([@var{n} @var{m} @dots{}]) @deftypefnx {Loadable Function} {@var{v} =} randn ("state") @deftypefnx {Loadable Function} {} randn ("state", @var{v}) @deftypefnx {Loadable Function} {} randn ("state", "reset") *************** *** 11999,12006 **** rande @c rande src/DLD-FUNCTIONS/rand.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} rande (@var{x}) ! @deftypefnx {Loadable Function} {} rande (@var{n}, @var{m}) @deftypefnx {Loadable Function} {@var{v} =} rande ("state") @deftypefnx {Loadable Function} {} rande ("state", @var{v}) @deftypefnx {Loadable Function} {} rande ("state", "reset") --- 12152,12160 ---- rande @c rande src/DLD-FUNCTIONS/rand.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} rande (@var{n}) ! @deftypefnx {Loadable Function} {} rande (@var{n}, @var{m}, @dots{}) ! @deftypefnx {Loadable Function} {} rande ([@var{n} @var{m} @dots{}]) @deftypefnx {Loadable Function} {@var{v} =} rande ("state") @deftypefnx {Loadable Function} {} rande ("state", @var{v}) @deftypefnx {Loadable Function} {} rande ("state", "reset") *************** *** 12023,12030 **** randg @c randg src/DLD-FUNCTIONS/rand.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} randg (@var{a}, @var{x}) ! @deftypefnx {Loadable Function} {} randg (@var{a}, @var{n}, @var{m}) @deftypefnx {Loadable Function} {@var{v} =} randg ("state") @deftypefnx {Loadable Function} {} randg ("state", @var{v}) @deftypefnx {Loadable Function} {} randg ("state", "reset") --- 12177,12185 ---- randg @c randg src/DLD-FUNCTIONS/rand.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} randg (@var{n}) ! @deftypefnx {Loadable Function} {} randg (@var{n}, @var{m}, @dots{}) ! @deftypefnx {Loadable Function} {} randg ([@var{n} @var{m} @dots{}]) @deftypefnx {Loadable Function} {@var{v} =} randg ("state") @deftypefnx {Loadable Function} {} randg ("state", @var{v}) @deftypefnx {Loadable Function} {} randg ("state", "reset") *************** *** 12065,12071 **** r = 2 * randg (df / 2) @end example ! @item @code{t(df)} for @code{0 < df < inf} (use randn if df is infinite) @example r = randn () / sqrt (2 * randg (df / 2) / df) --- 12220,12226 ---- r = 2 * randg (df / 2) @end example ! @item @code{t (df)} for @code{0 < df < inf} (use randn if df is infinite) @example r = randn () / sqrt (2 * randg (df / 2) / df) *************** *** 12116,12123 **** randp @c randp src/DLD-FUNCTIONS/rand.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} randp (@var{l}, @var{x}) ! @deftypefnx {Loadable Function} {} randp (@var{l}, @var{n}, @var{m}) @deftypefnx {Loadable Function} {@var{v} =} randp ("state") @deftypefnx {Loadable Function} {} randp ("state", @var{v}) @deftypefnx {Loadable Function} {} randp ("state", "reset") --- 12271,12279 ---- randp @c randp src/DLD-FUNCTIONS/rand.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {} randp (@var{l}, @var{n}) ! @deftypefnx {Loadable Function} {} randp (@var{l}, @var{n}, @var{m}, @dots{}) ! @deftypefnx {Loadable Function} {} randp (@var{l}, [@var{n} @var{m} @dots{}]) @deftypefnx {Loadable Function} {@var{v} =} randp ("state") @deftypefnx {Loadable Function} {} randp ("state", @var{v}) @deftypefnx {Loadable Function} {} randp ("state", "reset") *************** *** 12163,12169 **** @deftypefnx {Loadable Function} {} randperm (@var{n}, @var{m}) Return a row vector containing a random permutation of @code{1:@var{n}}. If @var{m} is supplied, return @var{m} permutations, ! one in each row of an @nospell{NxM} matrix. The complexity is O(M*N) in both time and memory. The randomization is performed using rand(). All permutations are equally likely. @seealso{perms} --- 12319,12325 ---- @deftypefnx {Loadable Function} {} randperm (@var{n}, @var{m}) Return a row vector containing a random permutation of @code{1:@var{n}}. If @var{m} is supplied, return @var{m} permutations, ! one in each row of an @nospell{MxN} matrix. The complexity is O(M*N) in both time and memory. The randomization is performed using rand(). All permutations are equally likely. @seealso{perms} *************** *** 12188,12196 **** @deftypefnx {Loadable Function} {[@dots{}] =} regexp (@var{str}, @var{pat}, "@var{opt1}", @dots{}) Regular expression string matching. Search for @var{pat} in @var{str} and return the positions and substrings of any matches, or empty values if there ! are none. Note, some features and extended options are only available when ! Octave is compiled with support for Perl Compatible Regular Expressions ! (PCRE). The matched pattern @var{pat} can include any of the standard regex operators, including: --- 12344,12350 ---- @deftypefnx {Loadable Function} {[@dots{}] =} regexp (@var{str}, @var{pat}, "@var{opt1}", @dots{}) Regular expression string matching. Search for @var{pat} in @var{str} and return the positions and substrings of any matches, or empty values if there ! are none. The matched pattern @var{pat} can include any of the standard regex operators, including: *************** *** 12227,12237 **** and "]". If the first character is "^" then the pattern is inverted and any character except those listed between brackets will match. ! With PCRE support, escape sequences defined below can be used inside list operators. For example, a template for a floating point number might be ! @code{[-+.\d]+}. POSIX regular expressions do not use escape sequences ! and any backslash @samp{\} will be interpreted literally as one ! of the list of characters to match. @item () Grouping operator --- 12381,12389 ---- and "]". If the first character is "^" then the pattern is inverted and any character except those listed between brackets will match. ! Escape sequences defined below can also be used inside list operators. For example, a template for a floating point number might be ! @code{[-+.\d]+}. @item () Grouping operator *************** *** 12278,12291 **** @item \d Match any digit - This sequence is only available with PCRE support. For POSIX regular - expressions use the following list operator @code{[0-9]}. - @item \D Match any non-digit - - This sequence is only available with PCRE support. For POSIX regular - expressions use the following list operator @code{[^0-9]}. @end table The outputs of @code{regexp} default to the order given below --- 12430,12437 ---- *************** *** 12310,12316 **** @item nm A structure containing the text of each matched named token, with the name being used as the fieldname. A named token is denoted by ! @code{(?@dots{})} and is only available with PCRE support. @end table Particular output arguments, or the order of the output arguments, can be --- 12456,12462 ---- @item nm A structure containing the text of each matched named token, with the name being used as the fieldname. A named token is denoted by ! @code{(?@dots{})}. @end table Particular output arguments, or the order of the output arguments, can be *************** *** 12336,12384 **** @item matchcase Make the matching case sensitive. (default) ! Alternatively, use (?-i) in the pattern when PCRE is available. @item ignorecase Ignore case when matching the pattern to the string. ! Alternatively, use (?i) in the pattern when PCRE is available. @item stringanchors ! Match the anchor characters at the beginning and end of the string. (default) ! Alternatively, use (?-m) in the pattern when PCRE is available. @item lineanchors Match the anchor characters at the beginning and end of the line. - Only available when Octave is compiled with PCRE. ! Alternatively, use (?m) in the pattern when PCRE is available. @item dotall The pattern @code{.} matches all characters including the newline character. (default) ! Alternatively, use (?s) in the pattern when PCRE is available. @item dotexceptnewline The pattern @code{.} matches all characters except the newline character. - Only available when Octave is compiled with PCRE. ! Alternatively, use (?-s) in the pattern when PCRE is available. @item literalspacing All characters in the pattern, including whitespace, are significant and are used in pattern matching. (default) ! Alternatively, use (?-x) in the pattern when PCRE is available. @item freespacing The pattern may include arbitrary whitespace and also comments beginning with the character @samp{#}. - Only available when Octave is compiled with PCRE. ! Alternatively, use (?x) in the pattern when PCRE is available. @end table @seealso{regexpi, strfind, regexprep} --- 12482,12527 ---- @item matchcase Make the matching case sensitive. (default) ! Alternatively, use (?-i) in the pattern. @item ignorecase Ignore case when matching the pattern to the string. ! Alternatively, use (?i) in the pattern. @item stringanchors ! Match the anchor characters at the beginning and end of the string. (default) ! Alternatively, use (?-m) in the pattern. @item lineanchors Match the anchor characters at the beginning and end of the line. ! Alternatively, use (?m) in the pattern. @item dotall The pattern @code{.} matches all characters including the newline character. (default) ! Alternatively, use (?s) in the pattern. @item dotexceptnewline The pattern @code{.} matches all characters except the newline character. ! Alternatively, use (?-s) in the pattern. @item literalspacing All characters in the pattern, including whitespace, are significant and are used in pattern matching. (default) ! Alternatively, use (?-x) in the pattern. @item freespacing The pattern may include arbitrary whitespace and also comments beginning with the character @samp{#}. ! Alternatively, use (?x) in the pattern. @end table @seealso{regexpi, strfind, regexprep} *************** *** 12435,12601 **** @deftypefnx {Loadable Function} {@var{S} =} schur (@var{A}, "complex") @deftypefnx {Loadable Function} {[@var{U}, @var{S}] =} schur (@var{A}, @var{opt}) @cindex Schur decomposition ! The Schur@tie{}decomposition is used to compute eigenvalues of a ! square matrix, and has applications in the solution of algebraic ! Riccati equations in control (see @code{are} and @code{dare}). ! @code{schur} always returns @tex ! $S = U^T A U$ @end tex @ifnottex @code{@var{S} = @var{U}' * @var{A} * @var{U}} @end ifnottex ! where ! @tex ! $U$ ! @end tex ! @ifnottex ! @var{U} ! @end ifnottex ! is a unitary matrix @tex ($U^T U$ is identity) @end tex @ifnottex (@code{@var{U}'* @var{U}} is identity) @end ifnottex ! and ! @tex ! $S$ ! @end tex ! @ifnottex ! @var{S} ! @end ifnottex ! is upper triangular. The eigenvalues of ! @tex ! $A$ (and $S$) ! @end tex ! @ifnottex ! @var{A} (and @var{S}) ! @end ifnottex ! are the diagonal elements of ! @tex ! $S$. ! @end tex ! @ifnottex ! @var{S}. ! @end ifnottex ! If the matrix ! @tex ! $A$ ! @end tex ! @ifnottex ! @var{A} ! @end ifnottex is real, then the real Schur@tie{}decomposition is computed, in which the ! matrix ! @tex ! $U$ ! @end tex ! @ifnottex ! @var{U} ! @end ifnottex ! is orthogonal and ! @tex ! $S$ ! @end tex ! @ifnottex ! @var{S} ! @end ifnottex ! is block upper triangular with blocks of size at most @tex ! $2\times 2$ @end tex @ifnottex @code{2 x 2} @end ifnottex ! along the diagonal. The diagonal elements of ! @tex ! $S$ ! @end tex ! @ifnottex ! @var{S} ! @end ifnottex (or the eigenvalues of the @tex ! $2\times 2$ @end tex @ifnottex @code{2 x 2} @end ifnottex ! blocks, when ! appropriate) are the eigenvalues of ! @tex ! $A$ ! @end tex ! @ifnottex ! @var{A} ! @end ifnottex ! and ! @tex ! $S$. ! @end tex ! @ifnottex ! @var{S}. ! @end ifnottex A complex decomposition may be forced by passing "complex" as @var{opt}. The eigenvalues are optionally ordered along the diagonal according to the value of @var{opt}. @code{@var{opt} = "a"} indicates that all eigenvalues with negative real parts should be moved to the leading ! block of ! @tex ! $S$ ! @end tex ! @ifnottex ! @var{S} ! @end ifnottex (used in @code{are}), @code{@var{opt} = "d"} indicates that all eigenvalues ! with magnitude less than one should be moved to the leading block of ! @tex ! $S$ ! @end tex ! @ifnottex ! @var{S} ! @end ifnottex (used in @code{dare}), and @code{@var{opt} = "u"}, the default, indicates ! that no ordering of eigenvalues should occur. The leading ! @tex ! $k$ ! @end tex ! @ifnottex ! @var{k} ! @end ifnottex ! columns of ! @tex ! $U$ ! @end tex ! @ifnottex ! @var{U} ! @end ifnottex ! always span the ! @tex ! $A$-invariant ! @end tex ! @ifnottex ! @var{A}-invariant ! @end ifnottex ! subspace corresponding to the ! @tex ! $k$ ! @end tex ! @ifnottex ! @var{k} ! @end ifnottex ! leading eigenvalues of ! @tex ! $S$. ! @end tex ! @ifnottex ! @var{S}. ! @end ifnottex @end deftypefn rsf2csf @c rsf2csf src/DLD-FUNCTIONS/schur.cc --- 12578,12641 ---- @deftypefnx {Loadable Function} {@var{S} =} schur (@var{A}, "complex") @deftypefnx {Loadable Function} {[@var{U}, @var{S}] =} schur (@var{A}, @var{opt}) @cindex Schur decomposition ! Compute the Schur@tie{}decomposition of @var{A} @tex ! $$ ! S = U^T A U ! $$ @end tex @ifnottex + + @example @code{@var{S} = @var{U}' * @var{A} * @var{U}} + @end example + @end ifnottex ! where @var{U} is a unitary matrix @tex ($U^T U$ is identity) @end tex @ifnottex (@code{@var{U}'* @var{U}} is identity) @end ifnottex ! and @var{S} is upper triangular. The eigenvalues of @var{A} (and @var{S}) ! are the diagonal elements of @var{S}. If the matrix @var{A} is real, then the real Schur@tie{}decomposition is computed, in which the ! matrix @var{U} is orthogonal and @var{S} is block upper triangular with blocks of size at most @tex ! $2 \times 2$ @end tex @ifnottex @code{2 x 2} @end ifnottex ! along the diagonal. The diagonal elements of @var{S} (or the eigenvalues of the @tex ! $2 \times 2$ @end tex @ifnottex @code{2 x 2} @end ifnottex ! blocks, when appropriate) are the eigenvalues of @var{A} and @var{S}. A complex decomposition may be forced by passing "complex" as @var{opt}. The eigenvalues are optionally ordered along the diagonal according to the value of @var{opt}. @code{@var{opt} = "a"} indicates that all eigenvalues with negative real parts should be moved to the leading ! block of @var{S} (used in @code{are}), @code{@var{opt} = "d"} indicates that all eigenvalues ! with magnitude less than one should be moved to the leading block of @var{S} (used in @code{dare}), and @code{@var{opt} = "u"}, the default, indicates ! that no ordering of eigenvalues should occur. The leading @var{k} ! columns of @var{U} always span the @var{A}-invariant ! subspace corresponding to the @var{k} leading eigenvalues of @var{S}. ! ! The Schur@tie{}decomposition is used to compute eigenvalues of a ! square matrix, and has applications in the solution of algebraic ! Riccati equations in control (see @code{are} and @code{dare}). ! @seealso{rsf2csf} @end deftypefn rsf2csf @c rsf2csf src/DLD-FUNCTIONS/schur.cc *************** *** 12604,12613 **** Convert a real, upper quasi-triangular Schur@tie{}form @var{TR} to a complex, upper triangular Schur@tie{}form @var{T}. ! Note that the following relations hold: @code{@var{UR} * @var{TR} * @var{UR}' = @var{U} * @var{T} * @var{U}'} and @code{@var{U}' * @var{U}} is the identity matrix I. Note also that @var{U} and @var{T} are not unique. @seealso{schur} --- 12644,12659 ---- Convert a real, upper quasi-triangular Schur@tie{}form @var{TR} to a complex, upper triangular Schur@tie{}form @var{T}. ! Note that the following relations hold: + @tex + $UR \cdot TR \cdot {UR}^T = U T U^{\dagger}$ and + $U^{\dagger} U$ is the identity matrix I. + @end tex + @ifnottex @code{@var{UR} * @var{TR} * @var{UR}' = @var{U} * @var{T} * @var{U}'} and @code{@var{U}' * @var{U}} is the identity matrix I. + @end ifnottex Note also that @var{U} and @var{T} are not unique. @seealso{schur} *************** *** 12684,12690 **** sqrtm @c sqrtm src/DLD-FUNCTIONS/sqrtm.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {[@var{result}, @var{error_estimate}] =} sqrtm (@var{A}) Compute the matrix square root of the square matrix @var{A}. Ref: N.J. Higham. @cite{A New sqrtm for @sc{matlab}}. Numerical --- 12730,12737 ---- sqrtm @c sqrtm src/DLD-FUNCTIONS/sqrtm.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {@var{s} =} sqrtm (@var{A}) ! @deftypefnx {Loadable Function} {[@var{s}, @var{error_estimate}] =} sqrtm (@var{A}) Compute the matrix square root of the square matrix @var{A}. Ref: N.J. Higham. @cite{A New sqrtm for @sc{matlab}}. Numerical *************** *** 12777,12784 **** case each element is converted and an array of the same dimensions is returned. ! @code{str2double} can replace @code{str2num}, and it avoids the use of ! @code{eval} on unknown data. @seealso{str2num} @end deftypefn sub2ind --- 12824,12834 ---- case each element is converted and an array of the same dimensions is returned. ! @code{str2double} returns NaN for elements of @var{s} which cannot be ! converted. ! ! @code{str2double} can replace @code{str2num}, and it avoids the security ! risk of using @code{eval} on unknown data. @seealso{str2num} @end deftypefn sub2ind *************** *** 12830,12836 **** Compute the singular value decomposition of @var{A} @tex $$ ! A = U S V^H $$ @end tex @ifnottex --- 12880,12886 ---- Compute the singular value decomposition of @var{A} @tex $$ ! A = U S V^{\dagger} $$ @end tex @ifnottex *************** *** 12908,12915 **** svd_driver @c svd_driver src/DLD-FUNCTIONS/svd.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {@var{old} =} svd_driver (@var{new}) ! Set or query the underlying @sc{lapack} driver used by @code{svd}. Currently recognized values are "gesvd" and "gesdd". The default is "gesvd". @seealso{svd} --- 12958,12966 ---- svd_driver @c svd_driver src/DLD-FUNCTIONS/svd.cc -*- texinfo -*- ! @deftypefn {Loadable Function} {@var{val} =} svd_driver () ! @deftypefnx {Loadable Function} {@var{old_val} =} svd_driver (@var{new_val}) ! Query or set the underlying @sc{lapack} driver used by @code{svd}. Currently recognized values are "gesvd" and "gesdd". The default is "gesvd". @seealso{svd} *************** *** 13036,13042 **** -*- texinfo -*- @deftypefn {Loadable Function} {@var{tm_struct} =} gmtime (@var{t}) Given a value returned from @code{time}, or any non-negative integer, ! return a time structure corresponding to CUT (Coordinated Universal Time). For example: @example --- 13087,13093 ---- -*- texinfo -*- @deftypefn {Loadable Function} {@var{tm_struct} =} gmtime (@var{t}) Given a value returned from @code{time}, or any non-negative integer, ! return a time structure corresponding to CUT (Coordinated Universal Time). For example: @example *************** *** 13317,13323 **** If the option "pack" is given as third argument, the extracted elements are not inserted into a matrix, but rather stacked column-wise one above other. ! @seealso{triu, diag} @end deftypefn triu @c triu src/DLD-FUNCTIONS/tril.cc --- 13368,13374 ---- If the option "pack" is given as third argument, the extracted elements are not inserted into a matrix, but rather stacked column-wise one above other. ! @seealso{diag} @end deftypefn triu @c triu src/DLD-FUNCTIONS/tril.cc *************** *** 13325,13331 **** @deftypefn {Function File} {} triu (@var{A}) @deftypefnx {Function File} {} triu (@var{A}, @var{k}) @deftypefnx {Function File} {} triu (@var{A}, @var{k}, @var{pack}) ! @xref{tril}. @end deftypefn tsearch @c tsearch src/DLD-FUNCTIONS/tsearch.cc --- 13376,13382 ---- @deftypefn {Function File} {} triu (@var{A}) @deftypefnx {Function File} {} triu (@var{A}, @var{k}) @deftypefnx {Function File} {} triu (@var{A}, @var{k}, @var{pack}) ! See the documentation for the @code{tril} function (@pxref{tril}). @end deftypefn tsearch @c tsearch src/DLD-FUNCTIONS/tsearch.cc *************** *** 13370,13376 **** consecutive pairs of real numbers. The sizes of integer types are given by their bit counts. Both logical and char are typically one byte wide; however, this is not guaranteed by C++. If your system is IEEE conformant, ! single and double should be 4 bytes and 8 bytes wide, respectively. "logical" is not allowed for @var{class}. If the input is a row vector, the return value is a row vector, otherwise it is a column vector. If the bit length of @var{x} is not divisible by that of @var{class}, an error --- 13421,13427 ---- consecutive pairs of real numbers. The sizes of integer types are given by their bit counts. Both logical and char are typically one byte wide; however, this is not guaranteed by C++. If your system is IEEE conformant, ! single and double should be 4 bytes and 8 bytes wide, respectively. "logical" is not allowed for @var{class}. If the input is a row vector, the return value is a row vector, otherwise it is a column vector. If the bit length of @var{x} is not divisible by that of @var{class}, an error *************** *** 13457,13463 **** @example @group ! urlwrite ("ftp://ftp.octave.org/pub/octave/README", "README.txt"); @end group @end example --- 13508,13514 ---- @example @group ! urlwrite ("ftp://ftp.octave.org/pub/octave/README", "README.txt"); @end group @end example diff -cNr octave-3.4.0/src/error.cc octave-3.4.1/src/error.cc *** octave-3.4.0/src/error.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/error.cc 2011-06-15 11:13:48.000000000 -0400 *************** *** 966,972 **** } } else ! error ("rethrow: structure must contain the fields 'message and 'identifier'"); } } return retval; --- 966,972 ---- } } else ! error ("rethrow: ERR structure must contain the fields 'message and 'identifier'"); } } return retval; *************** *** 1480,1488 **** @deftypefn {Built-in Function} {@var{lasterr} =} lasterror ()\n\ @deftypefnx {Built-in Function} {} lasterror (@var{err})\n\ @deftypefnx {Built-in Function} {} lasterror ('reset')\n\ ! Query or set the last error message. Called without any arguments\n\ ! returns a structure containing the last error message, as well as other\n\ ! information related to this error. The elements of this structure are:\n\ \n\ @table @asis\n\ @item 'message'\n\ --- 1480,1488 ---- @deftypefn {Built-in Function} {@var{lasterr} =} lasterror ()\n\ @deftypefnx {Built-in Function} {} lasterror (@var{err})\n\ @deftypefnx {Built-in Function} {} lasterror ('reset')\n\ ! Query or set the last error message structure. When called without arguments\n\ ! , return a structure containing the last error message and other\n\ ! information related to this error. The elements of the structure are:\n\ \n\ @table @asis\n\ @item 'message'\n\ *************** *** 1492,1500 **** The message identifier of this error message\n\ \n\ @item 'stack'\n\ ! A structure containing information on where the message occurred. This might\n\ ! be an empty structure if this in the case where this information cannot\n\ ! be obtained. The fields of this structure are:\n\ \n\ @table @asis\n\ @item 'file'\n\ --- 1492,1500 ---- The message identifier of this error message\n\ \n\ @item 'stack'\n\ ! A structure containing information on where the message occurred. This may\n\ ! be an empty structure if the information cannot\n\ ! be obtained. The fields of the structure are:\n\ \n\ @table @asis\n\ @item 'file'\n\ *************** *** 1511,1524 **** @end table\n\ @end table\n\ \n\ ! The @var{err} structure may also be passed to @code{lasterror} to set the\n\ ! information about the last error. The only constraint on @var{err} in that\n\ ! case is that it is a scalar structure. Any fields of @var{err} that match\n\ ! the above are set to the value passed in @var{err}, while other fields are\n\ ! set to their default values.\n\ \n\ ! If @code{lasterror} is called with the argument 'reset', all values take\n\ ! their default values.\n\ @end deftypefn") { octave_value retval; --- 1511,1523 ---- @end table\n\ @end table\n\ \n\ ! The last error structure may be set by passing a scalar structure, @var{err},\n\ ! as input. Any fields of @var{err} that match those above are set while any\n\ ! unspecified fields are initialized with default values.\n\ \n\ ! If @code{lasterror} is called with the argument 'reset', all fields are\n\ ! set to their default values.\n\ ! @seealso{lasterr}\n\ @end deftypefn") { octave_value retval; *************** *** 1636,1645 **** DEFUN (lasterr, args, nargout, "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {[@var{msg}, @var{msgid}] =} lasterr (@var{msg}, @var{msgid})\n\ ! Without any arguments, return the last error message. With one\n\ argument, set the last error message to @var{msg}. With two arguments,\n\ also set the last message identifier.\n\ @end deftypefn") { octave_value_list retval; --- 1635,1648 ---- DEFUN (lasterr, args, nargout, "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {[@var{msg}, @var{msgid}] =} lasterr ()\n\ ! @deftypefnx {Built-in Function} {} lasterr (@var{msg})\n\ ! @deftypefnx {Built-in Function} {} lasterr (@var{msg}, @var{msgid})\n\ ! Query or set the last error message. When called without input arguments,\n\ ! return the last error message and message identifier. With one\n\ argument, set the last error message to @var{msg}. With two arguments,\n\ also set the last message identifier.\n\ + @seealso{lasterror}\n\ @end deftypefn") { octave_value_list retval; diff -cNr octave-3.4.0/src/file-io.cc octave-3.4.1/src/file-io.cc *** octave-3.4.0/src/file-io.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/file-io.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 209,217 **** DEFUN (fclose, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} fclose (@var{fid})\n\ Close the specified file. If successful, @code{fclose} returns 0,\n\ ! otherwise, it returns -1.\n\ @seealso{fopen, fseek, ftell}\n\ @end deftypefn") { --- 209,219 ---- DEFUN (fclose, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} fclose (@var{fid})\n\ ! @deftypefnx {Built-in Function} {} fclose (\"all\")\n\ Close the specified file. If successful, @code{fclose} returns 0,\n\ ! otherwise, it returns -1. The second form of the @code{fclose} call closes\n\ ! all open files except @code{stdout}, @code{stderr}, and @code{stdin}.\n\ @seealso{fopen, fseek, ftell}\n\ @end deftypefn") { *************** *** 345,351 **** DEFUN (fgets, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} fgets (@var{fid}, @var{len})\n\ Read characters from a file, stopping after a newline, or EOF,\n\ or @var{len} characters have been read. The characters read, including\n\ the possible trailing newline, are returned as a string.\n\ --- 347,354 ---- DEFUN (fgets, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} fgets (@var{fid})\n\ ! @deftypefnx {Built-in Function} {} fgets (@var{fid}, @var{len})\n\ Read characters from a file, stopping after a newline, or EOF,\n\ or @var{len} characters have been read. The characters read, including\n\ the possible trailing newline, are returned as a string.\n\ *************** *** 730,736 **** freport ()\n\ \n\ @print{} number mode name\n\ ! @print{} \n\ @print{} 0 r stdin\n\ @print{} 1 w stdout\n\ @print{} 2 w stderr\n\ --- 733,739 ---- freport ()\n\ \n\ @print{} number mode name\n\ ! @print{}\n\ @print{} 0 r stdin\n\ @print{} 1 w stdout\n\ @print{} 2 w stderr\n\ *************** *** 893,899 **** result = os.printf (args(fmt_n), tmp_args, who); } else ! ::error ("%s: format must be a string", who.c_str ()); } } else --- 896,902 ---- result = os.printf (args(fmt_n), tmp_args, who); } else ! ::error ("%s: format TEMPLATE must be a string", who.c_str ()); } } else *************** *** 944,950 **** result = stdout_stream.printf (args(0), tmp_args, who); } else ! ::error ("%s: format must be a string", who.c_str ()); } else print_usage (); --- 947,953 ---- result = stdout_stream.printf (args(0), tmp_args, who); } else ! ::error ("%s: format TEMPLATE must be a string", who.c_str ()); } else print_usage (); *************** *** 1052,1058 **** fmt_arg.is_sq_string () ? '\'' : '"'); } else ! ::error ("%s: format must be a string", who.c_str ()); } else ::error ("%s: unable to create output buffer", who.c_str ()); --- 1055,1061 ---- fmt_arg.is_sq_string () ? '\'' : '"'); } else ! ::error ("%s: format TEMPLATE must be a string", who.c_str ()); } else ::error ("%s: unable to create output buffer", who.c_str ()); *************** *** 1127,1133 **** if (args(1).is_string ()) retval = os.oscanf (args(1), who); else ! ::error ("%s: format must be a string", who.c_str ()); } } else --- 1130,1136 ---- if (args(1).is_string ()) retval = os.oscanf (args(1), who); else ! ::error ("%s: format TEMPLATE must be a string", who.c_str ()); } } else *************** *** 1200,1213 **** if (args(1).is_string ()) retval = os.oscanf (args(1), who); else ! ::error ("%s: format must be a string", who.c_str ()); } else ::error ("%s: unable to create temporary input buffer", who.c_str ()); } else ! ::error ("%s: first argument must be a string", who.c_str ()); } else { --- 1203,1216 ---- if (args(1).is_string ()) retval = os.oscanf (args(1), who); else ! ::error ("%s: format TEMPLATE must be a string", who.c_str ()); } else ::error ("%s: unable to create temporary input buffer", who.c_str ()); } else ! ::error ("%s: argument STRING must be a string", who.c_str ()); } else { *************** *** 1251,1264 **** } } else ! ::error ("%s: format must be a string", who.c_str ()); } else ::error ("%s: unable to create temporary input buffer", who.c_str ()); } else ! ::error ("%s: first argument must be a string", who.c_str ()); } else print_usage (); --- 1254,1267 ---- } } else ! ::error ("%s: format TEMPLATE must be a string", who.c_str ()); } else ::error ("%s: unable to create temporary input buffer", who.c_str ()); } else ! ::error ("%s: argument STRING must be a string", who.c_str ()); } else print_usage (); *************** *** 1331,1349 **** output_type, skip, flt_fmt, count); } else ! ::error ("fread: architecture type must be a string"); } else ! ::error ("fread: skip must be an integer"); } else ! ::error ("fread: invalid data type specified"); } else ! ::error ("fread: precision must be a string"); } else ! ::error ("fread: invalid size specified"); return retval; } --- 1334,1352 ---- output_type, skip, flt_fmt, count); } else ! ::error ("fread: ARCH architecture type must be a string"); } else ! ::error ("fread: SKIP must be an integer"); } else ! ::error ("fread: invalid PRECISION specified"); } else ! ::error ("fread: PRECISION must be a string"); } else ! ::error ("fread: invalid SIZE specified"); return retval; } *************** *** 1608,1623 **** skip, flt_fmt); } else ! ::error ("fwrite: architecture type must be a string"); } else ! ::error ("fwrite: skip must be an integer"); } else ! ::error ("fwrite: invalid precision specified"); } else ! ::error ("fwrite: precision must be a string"); return retval; } --- 1611,1626 ---- skip, flt_fmt); } else ! ::error ("fwrite: ARCH architecture type must be a string"); } else ! ::error ("fwrite: SKIP must be an integer"); } else ! ::error ("fwrite: invalid PRECISION specified"); } else ! ::error ("fwrite: PRECISION must be a string"); return retval; } *************** *** 1818,1830 **** retval = octave_stream_list::insert (ops); } else ! ::error ("popen: invalid mode specified"); } else ! ::error ("popen: mode must be a string"); } else ! ::error ("popen: name must be a string"); } else print_usage (); --- 1821,1833 ---- retval = octave_stream_list::insert (ops); } else ! ::error ("popen: invalid MODE specified"); } else ! ::error ("popen: MODE must be a string"); } else ! ::error ("popen: COMMAND must be a string"); } else print_usage (); *************** *** 1883,1892 **** if (! error_state) retval = octave_tempnam (dir, pfx); else ! ::error ("expecting second argument to be a string"); } else ! ::error ("expecting first argument to be a string"); } else print_usage (); --- 1886,1895 ---- if (! error_state) retval = octave_tempnam (dir, pfx); else ! ::error ("PREFIX must be a string"); } else ! ::error ("DIR argument must be a string"); } else print_usage (); *************** *** 2026,2032 **** } } else ! error ("mkstemp: expecting string as first argument"); } else print_usage (); --- 2029,2035 ---- } } else ! error ("mkstemp: TEMPLATE argument must be a string"); } else print_usage (); *************** *** 2098,2104 **** else { status = -1; ! ::error ("umask: expecting integer argument"); } } else --- 2101,2107 ---- else { status = -1; ! ::error ("umask: MASK must be an integer"); } } else diff -cNr octave-3.4.0/src/gl-render.cc octave-3.4.1/src/gl-render.cc *** octave-3.4.0/src/gl-render.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/gl-render.cc 2011-06-15 11:13:48.000000000 -0400 *************** *** 849,854 **** --- 849,856 ---- double ypTickN = props.get_ypTickN (); double zpTickN = props.get_zpTickN (); + bool plotyy = (props.get_tag () == "plotyy"); + // Axes box set_linestyle ("-", true); *************** *** 878,884 **** glVertex3d (xpTick, yPlaneN, zpTick); glVertex3d (xpTick, yPlane, zpTick); ! if (props.is_box ()) { glVertex3d (xpTickN, yPlaneN, zpTick); glVertex3d (xpTickN, yPlane, zpTick); --- 880,886 ---- glVertex3d (xpTick, yPlaneN, zpTick); glVertex3d (xpTick, yPlane, zpTick); ! if (props.is_box () && ! plotyy) { glVertex3d (xpTickN, yPlaneN, zpTick); glVertex3d (xpTickN, yPlane, zpTick); *************** *** 2347,2366 **** Matrix mecolor = props.get_markeredgecolor_rgb (); Matrix mfcolor = props.get_markerfacecolor_rgb (); - Matrix cc (1, 3, 0.0); ! if (mecolor.numel () == 0 && props.markeredgecolor_is ("auto")) ! { ! mecolor = props.get_edgecolor_rgb (); ! do_edge = ! props.edgecolor_is ("none"); ! } ! if (mfcolor.numel () == 0 && props.markerfacecolor_is ("auto")) { ! mfcolor = props.get_facecolor_rgb (); ! do_face = ! props.facecolor_is ("none"); } init_marker (props.get_marker (), props.get_markersize (), props.get_linewidth ()); --- 2349,2384 ---- Matrix mecolor = props.get_markeredgecolor_rgb (); Matrix mfcolor = props.get_markerfacecolor_rgb (); ! bool has_markerfacecolor = false; ! if ((mecolor.numel () == 0 && ! props.markeredgecolor_is ("none")) ! || (mfcolor.numel () == 0 && ! props.markerfacecolor_is ("none"))) { ! Matrix mc = props.get_color_data ().matrix_value (); ! ! if (mc.rows () == 1) ! { ! // Single color specifications, we can simplify a little bit ! ! if (mfcolor.numel () == 0 ! && ! props.markerfacecolor_is ("none")) ! mfcolor = mc; ! ! if (mecolor.numel () == 0 ! && ! props.markeredgecolor_is ("none")) ! mecolor = mc; ! } ! else ! { ! if (c.numel () == 0) ! c = props.get_color_data ().matrix_value (); ! has_markerfacecolor = ((c.numel () > 0) ! && (c.rows () == f.rows ())); ! } } + init_marker (props.get_marker (), props.get_markersize (), props.get_linewidth ()); *************** *** 2372,2382 **** if (clip(idx)) continue; ! Matrix lc = (do_edge ? (mecolor.numel () == 0 ? ! vdata[i+j*fr].get_rep ()->color : mecolor) : Matrix ()); ! Matrix fc = (do_face ? (mfcolor.numel () == 0 ? ! vdata[i+j*fr].get_rep ()->color : mfcolor) : Matrix ()); draw_marker (v(idx,0), v(idx,1), (has_z ? v(idx,2) : 0), lc, fc); --- 2390,2408 ---- if (clip(idx)) continue; ! Matrix cc; ! if (c.numel () > 0) ! { ! cc.resize (1, 3); ! if (has_markerfacecolor) ! cc(0) = c(i,0), cc(1) = c(i,1), cc(2) = c(i,2); ! else ! cc(0) = c(idx,0), cc(1) = c(idx,1), cc(2) = c(idx,2); ! } ! ! Matrix lc = (do_edge ? (mecolor.numel () == 0 ? cc : mecolor) : Matrix ()); ! Matrix fc = (do_face ? (mfcolor.numel () == 0 ? cc : mfcolor) : Matrix ()); draw_marker (v(idx,0), v(idx,1), (has_z ? v(idx,2) : 0), lc, fc); *************** *** 2398,2406 **** if (props.get_string ().empty ()) return; - set_font (props); - set_color (props.get_color_rgb ()); - const Matrix pos = xform.scale (props.get_data_position ()); const Matrix bbox = props.get_extent_matrix (); --- 2424,2429 ---- diff -cNr octave-3.4.0/src/graphics.cc octave-3.4.1/src/graphics.cc *** octave-3.4.0/src/graphics.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/graphics.cc 2011-06-15 11:13:48.000000000 -0400 *************** *** 2011,2033 **** if (val.is_real_scalar () && is_handle (val.double_value ())) retval = true; ! else if (val.is_real_matrix ()) { ! if (val.is_string ()) ! retval = boolNDArray (val.dims (), false); ! else ! { ! const NDArray handles = val.array_value (); ! if (! error_state) ! { ! boolNDArray result (handles.dims ()); ! for (octave_idx_type i = 0; i < handles.numel (); i++) ! result.xelem (i) = is_handle (handles (i)); ! retval = result; ! } } } --- 2011,2028 ---- if (val.is_real_scalar () && is_handle (val.double_value ())) retval = true; ! else if (val.is_numeric_type () && val.is_real_type ()) { ! const NDArray handles = val.array_value (); ! if (! error_state) ! { ! boolNDArray result (handles.dims ()); ! for (octave_idx_type i = 0; i < handles.numel (); i++) ! result.xelem (i) = is_handle (handles (i)); ! retval = result; } } *************** *** 3176,3181 **** --- 3171,3177 ---- currentpoint.add_constraint (dim_vector (2, 3)); ticklength.add_constraint (dim_vector (1, 2)); tightinset.add_constraint (dim_vector (1, 4)); + looseinset.add_constraint (dim_vector (1, 4)); x_zlim.resize (1, 2); *************** *** 3227,3266 **** adopt (ylabel.handle_value ()); adopt (zlabel.handle_value ()); adopt (title.handle_value ()); } void axes::properties::sync_positions (void) { ! #if 0 ! // FIXME -- this should take font metrics into consideration, ! // and also the fact that the colorbox leaves the outerposition ! // alone but alters the position. For now just don't adjust the ! // positions relative to each other. ! if (activepositionproperty.is ("outerposition")) { ! Matrix outpos = outerposition.get ().matrix_value (); ! Matrix defpos = default_axes_position (); ! Matrix pos(outpos); ! pos(0) = outpos(0) + defpos(0) * outpos(2); ! pos(1) = outpos(1) + defpos(1) * outpos(3); ! pos(2) = outpos(2) * defpos(2); ! pos(3) = outpos(3) * defpos(3); position = pos; } else { ! Matrix pos = position.get ().matrix_value (); ! pos(0) -= pos(2)*0.05; ! pos(1) -= pos(3)*0.05; ! pos(2) *= 1.1; ! pos(3) *= 1.1; ! outerposition = pos; } - #endif ! update_transform (); } void --- 3223,3366 ---- adopt (ylabel.handle_value ()); adopt (zlabel.handle_value ()); adopt (title.handle_value ()); + + Matrix tlooseinset = default_axes_position (); + tlooseinset(2) = 1-tlooseinset(0)-tlooseinset(2); + tlooseinset(3) = 1-tlooseinset(1)-tlooseinset(3); + looseinset = tlooseinset; + } + + Matrix + axes::properties::calc_tightbox (const Matrix& init_pos) + { + Matrix pos = init_pos; + graphics_object obj = gh_manager::get_object (get_parent ()); + Matrix parent_bb = obj.get_properties ().get_boundingbox (true); + Matrix ext = get_extent (true, true); + ext(1) = parent_bb(3) - ext(1) - ext(3); + ext(0)++; + ext(1)++; + ext = convert_position (ext, "pixels", get_units (), + parent_bb.extract_n (0, 2, 1, 2)); + if (ext(0) < pos(0)) + { + pos(2) += pos(0)-ext(0); + pos(0) = ext(0); + } + if (ext(0)+ext(2) > pos(0)+pos(2)) + pos(2) = ext(0)+ext(2)-pos(0); + + if (ext(1) < pos(1)) + { + pos(3) += pos(1)-ext(1); + pos(1) = ext(1); + } + if (ext(1)+ext(3) > pos(1)+pos(3)) + pos(3) = ext(1)+ext(3)-pos(1); + return pos; } void axes::properties::sync_positions (void) { ! Matrix pos = position.get ().matrix_value (); ! Matrix outpos = outerposition.get ().matrix_value (); ! Matrix lins = looseinset.get ().matrix_value (); ! double lratio = lins(0); ! double bratio = lins(1); ! double wratio = 1-lins(0)-lins(2); ! double hratio = 1-lins(1)-lins(3); if (activepositionproperty.is ("outerposition")) { ! pos = outpos; ! pos(0) = outpos(0)+lratio*outpos(2); ! pos(1) = outpos(1)+bratio*outpos(3); ! pos(2) = wratio*outpos(2); ! pos(3) = hratio*outpos(3); ! position = pos; + update_transform (); + Matrix tightpos = calc_tightbox (pos); + + double thrshldx = 0.005*outpos(2); + double thrshldy = 0.005*outpos(3); + double minsizex = 0.2*outpos(2); + double minsizey = 0.2*outpos(3); + bool updatex = true, updatey = true; + for (int i = 0; i < 10; i++) + { + double dt; + bool modified = false; + dt = outpos(0)+outpos(2)-tightpos(0)-tightpos(2); + if (dt < -thrshldx && updatex) + { + pos(2) += dt; + modified = true; + } + dt = outpos(1)+outpos(3)-tightpos(1)-tightpos(3); + if (dt < -thrshldy && updatey) + { + pos(3) += dt; + modified = true; + } + dt = outpos(0)-tightpos(0); + if (dt > thrshldx && updatex) + { + pos(0) += dt; + pos(2) -= dt; + modified = true; + } + dt = outpos(1)-tightpos(1); + if (dt > thrshldy && updatey) + { + pos(1) += dt; + pos(3) -= dt; + modified = true; + } + + // Note: checking limit for minimum axes size + if (pos(2) < minsizex) + { + pos(0) -= 0.5*(minsizex-pos(2)); + pos(2) = minsizex; + updatex = false; + } + if (pos(3) < minsizey) + { + pos(1) -= 0.5*(minsizey-pos(3)); + pos(3) = minsizey; + updatey = false; + } + + if (modified) + { + position = pos; + update_transform (); + tightpos = calc_tightbox (pos); + } + else + break; + } } else { ! update_transform (); ! ! outpos(0) = pos(0)-pos(2)*lratio/wratio; ! outpos(1) = pos(1)-pos(3)*bratio/hratio; ! outpos(2) = pos(2)/wratio; ! outpos(3) = pos(3)/hratio; ! ! outerposition = calc_tightbox (outpos); } ! Matrix inset (1, 4, 1.0); ! inset(0) = pos(0)-outpos(0); ! inset(1) = pos(1)-outpos(1); ! inset(2) = outpos(0)+outpos(2)-pos(0)-pos(2); ! inset(3) = outpos(1)+outpos(3)-pos(1)-pos(3); ! ! tightinset = inset; } void *************** *** 3462,3467 **** --- 3562,3572 ---- position = default_axes_position (); + Matrix tlooseinset = default_axes_position (); + tlooseinset(2) = 1-tlooseinset(0)-tlooseinset(2); + tlooseinset(3) = 1-tlooseinset(1)-tlooseinset(3); + looseinset = tlooseinset; + activepositionproperty = "outerposition"; } *************** *** 4121,4135 **** void axes::properties::update_xlabel_position (void) { - graphics_xform xform = get_transform (); - text::properties& xlabel_props = reinterpret_cast (gh_manager::get_object (get_xlabel ()).get_properties ()); ! if (! xlabel_props.get_string ().empty ()) ! { ! xlabel_props.set_autopos_tag ("none"); if (xlabel_props.horizontalalignmentmode_is ("auto")) { xlabel_props.set_horizontalalignment --- 4226,4240 ---- void axes::properties::update_xlabel_position (void) { text::properties& xlabel_props = reinterpret_cast (gh_manager::get_object (get_xlabel ()).get_properties ()); ! bool is_empty = xlabel_props.get_string ().empty (); + xlabel_props.set_autopos_tag ("none"); + + if (! is_empty) + { if (xlabel_props.horizontalalignmentmode_is ("auto")) { xlabel_props.set_horizontalalignment *************** *** 4146,4219 **** xlabel_props.set_verticalalignmentmode ("auto"); } ! if (xlabel_props.positionmode_is ("auto") ! || xlabel_props.rotationmode_is ("auto")) ! { ! Matrix ext (1, 2, 0.0); ! ext = get_ticklabel_extents (get_xtick ().matrix_value (), ! get_xticklabel ().all_strings (), ! get_xlim ().matrix_value ()); ! ! double wmax = ext(0), hmax = ext(1), angle = 0; ! ColumnVector p = ! graphics_xform::xform_vector ((xpTickN+xpTick)/2, ypTick, zpTick); ! ! bool tick_along_z = nearhoriz || xisinf (fy); ! if (tick_along_z) ! p(2) += (signum(zpTick-zpTickN)*fz*xtickoffset); ! else ! p(1) += (signum(ypTick-ypTickN)*fy*xtickoffset); ! p = xform.transform (p(0), p(1), p(2), false); ! switch (xstate) ! { ! case AXE_ANY_DIR: ! p(0) += (xyzSym ? wmax : -wmax); ! p(1) += hmax; ! break; ! case AXE_VERT_DIR: ! p(0) -= wmax; ! angle = 90; ! break; ! case AXE_HORZ_DIR: ! p(1) += (x2Dtop ? -hmax : hmax); ! break; ! } ! if (xlabel_props.positionmode_is ("auto")) ! { ! p = xform.untransform (p(0), p(1), p(2), true); ! xlabel_props.set_position (p.extract_n (0, 3).transpose ()); ! xlabel_props.set_positionmode ("auto"); ! } ! if (xlabel_props.rotationmode_is ("auto")) ! { ! xlabel_props.set_rotation (angle); ! xlabel_props.set_rotationmode ("auto"); ! } } ! xlabel_props.set_autopos_tag ("xlabel"); } } void axes::properties::update_ylabel_position (void) { - graphics_xform xform = get_transform (); - text::properties& ylabel_props = reinterpret_cast (gh_manager::get_object (get_ylabel ()).get_properties ()); ! if (! ylabel_props.get_string ().empty ()) ! { ! ylabel_props.set_autopos_tag ("none"); if (ylabel_props.horizontalalignmentmode_is ("auto")) { ylabel_props.set_horizontalalignment --- 4251,4326 ---- xlabel_props.set_verticalalignmentmode ("auto"); } + } ! if (xlabel_props.positionmode_is ("auto") ! || xlabel_props.rotationmode_is ("auto")) ! { ! graphics_xform xform = get_transform (); ! Matrix ext (1, 2, 0.0); ! ext = get_ticklabel_extents (get_xtick ().matrix_value (), ! get_xticklabel ().all_strings (), ! get_xlim ().matrix_value ()); ! ! double wmax = ext(0), hmax = ext(1), angle = 0; ! ColumnVector p = ! graphics_xform::xform_vector ((xpTickN+xpTick)/2, ypTick, zpTick); ! ! bool tick_along_z = nearhoriz || xisinf (fy); ! if (tick_along_z) ! p(2) += (signum(zpTick-zpTickN)*fz*xtickoffset); ! else ! p(1) += (signum(ypTick-ypTickN)*fy*xtickoffset); ! p = xform.transform (p(0), p(1), p(2), false); ! switch (xstate) ! { ! case AXE_ANY_DIR: ! p(0) += (xyzSym ? wmax : -wmax); ! p(1) += hmax; ! break; ! case AXE_VERT_DIR: ! p(0) -= wmax; ! angle = 90; ! break; ! case AXE_HORZ_DIR: ! p(1) += (x2Dtop ? -hmax : hmax); ! break; ! } ! if (xlabel_props.positionmode_is ("auto")) ! { ! p = xform.untransform (p(0), p(1), p(2), true); ! xlabel_props.set_position (p.extract_n (0, 3).transpose ()); ! xlabel_props.set_positionmode ("auto"); } ! if (! is_empty && xlabel_props.rotationmode_is ("auto")) ! { ! xlabel_props.set_rotation (angle); ! xlabel_props.set_rotationmode ("auto"); ! } } + + xlabel_props.set_autopos_tag ("xlabel"); } void axes::properties::update_ylabel_position (void) { text::properties& ylabel_props = reinterpret_cast (gh_manager::get_object (get_ylabel ()).get_properties ()); ! bool is_empty = ylabel_props.get_string ().empty (); + ylabel_props.set_autopos_tag ("none"); + + if (! is_empty) + { if (ylabel_props.horizontalalignmentmode_is ("auto")) { ylabel_props.set_horizontalalignment *************** *** 4230,4305 **** ylabel_props.set_verticalalignmentmode ("auto"); } ! if (ylabel_props.positionmode_is ("auto") ! || ylabel_props.rotationmode_is ("auto")) ! { ! Matrix ext (1, 2, 0.0); ! ext = get_ticklabel_extents (get_ytick ().matrix_value (), ! get_yticklabel ().all_strings (), ! get_ylim ().matrix_value ()); ! ! double wmax = ext(0), hmax = ext(1), angle = 0; ! ColumnVector p = ! graphics_xform::xform_vector (xpTick, (ypTickN+ypTick)/2, zpTick); ! ! bool tick_along_z = nearhoriz || xisinf (fx); ! if (tick_along_z) ! p(2) += (signum(zpTick-zpTickN)*fz*ytickoffset); ! else ! p(0) += (signum(xpTick-xpTickN)*fx*ytickoffset); ! p = xform.transform (p(0), p(1), p(2), false); ! switch (ystate) ! { ! case AXE_ANY_DIR: ! p(0) += (!xyzSym ? wmax : -wmax); ! p(1) += hmax; ! break; ! case AXE_VERT_DIR: ! p(0) += (y2Dright ? wmax : -wmax); ! angle = 90; ! break; ! case AXE_HORZ_DIR: ! p(1) += hmax; ! break; ! } ! if (ylabel_props.positionmode_is ("auto")) ! { ! p = xform.untransform (p(0), p(1), p(2), true); ! ylabel_props.set_position (p.extract_n (0, 3).transpose ()); ! ylabel_props.set_positionmode ("auto"); ! } ! if (ylabel_props.rotationmode_is ("auto")) ! { ! ylabel_props.set_rotation (angle); ! ylabel_props.set_rotationmode ("auto"); ! } } ! ylabel_props.set_autopos_tag ("ylabel"); } } void axes::properties::update_zlabel_position (void) { - graphics_xform xform = get_transform (); - text::properties& zlabel_props = reinterpret_cast (gh_manager::get_object (get_zlabel ()).get_properties ()); ! if (! zlabel_props.get_string ().empty ()) ! { ! zlabel_props.set_autopos_tag ("none"); ! bool camAuto = cameraupvectormode_is ("auto"); if (zlabel_props.horizontalalignmentmode_is ("auto")) { zlabel_props.set_horizontalalignment --- 4337,4413 ---- ylabel_props.set_verticalalignmentmode ("auto"); } + } ! if (ylabel_props.positionmode_is ("auto") ! || ylabel_props.rotationmode_is ("auto")) ! { ! graphics_xform xform = get_transform (); ! Matrix ext (1, 2, 0.0); ! ext = get_ticklabel_extents (get_ytick ().matrix_value (), ! get_yticklabel ().all_strings (), ! get_ylim ().matrix_value ()); ! ! double wmax = ext(0), hmax = ext(1), angle = 0; ! ColumnVector p = ! graphics_xform::xform_vector (xpTick, (ypTickN+ypTick)/2, zpTick); ! ! bool tick_along_z = nearhoriz || xisinf (fx); ! if (tick_along_z) ! p(2) += (signum(zpTick-zpTickN)*fz*ytickoffset); ! else ! p(0) += (signum(xpTick-xpTickN)*fx*ytickoffset); ! p = xform.transform (p(0), p(1), p(2), false); ! switch (ystate) ! { ! case AXE_ANY_DIR: ! p(0) += (!xyzSym ? wmax : -wmax); ! p(1) += hmax; ! break; ! case AXE_VERT_DIR: ! p(0) += (y2Dright ? wmax : -wmax); ! angle = 90; ! break; ! case AXE_HORZ_DIR: ! p(1) += hmax; ! break; ! } ! if (ylabel_props.positionmode_is ("auto")) ! { ! p = xform.untransform (p(0), p(1), p(2), true); ! ylabel_props.set_position (p.extract_n (0, 3).transpose ()); ! ylabel_props.set_positionmode ("auto"); } ! if (! is_empty && ylabel_props.rotationmode_is ("auto")) ! { ! ylabel_props.set_rotation (angle); ! ylabel_props.set_rotationmode ("auto"); ! } } + + ylabel_props.set_autopos_tag ("ylabel"); } void axes::properties::update_zlabel_position (void) { text::properties& zlabel_props = reinterpret_cast (gh_manager::get_object (get_zlabel ()).get_properties ()); ! bool camAuto = cameraupvectormode_is ("auto"); ! bool is_empty = zlabel_props.get_string ().empty (); ! zlabel_props.set_autopos_tag ("none"); + if (! is_empty) + { if (zlabel_props.horizontalalignmentmode_is ("auto")) { zlabel_props.set_horizontalalignment *************** *** 4316,4443 **** zlabel_props.set_verticalalignmentmode ("auto"); } ! if (zlabel_props.positionmode_is ("auto") ! || zlabel_props.rotationmode_is ("auto")) ! { ! Matrix ext (1, 2, 0.0); ! ext = get_ticklabel_extents (get_ztick ().matrix_value (), ! get_zticklabel ().all_strings (), ! get_zlim ().matrix_value ()); ! ! double wmax = ext(0), hmax = ext(1), angle = 0; ! ColumnVector p; ! ! if (xySym) ! { ! p = graphics_xform::xform_vector (xPlaneN, yPlane, ! (zpTickN+zpTick)/2); ! if (xisinf (fy)) ! p(0) += (signum(xPlaneN-xPlane)*fx*ztickoffset); ! else ! p(1) += (signum(yPlane-yPlaneN)*fy*ztickoffset); ! } ! else ! { ! p = graphics_xform::xform_vector (xPlane, yPlaneN, ! (zpTickN+zpTick)/2); ! if (xisinf (fx)) ! p(1) += (signum(yPlaneN-yPlane)*fy*ztickoffset); ! else ! p(0) += (signum(xPlane-xPlaneN)*fx*ztickoffset); ! } ! p = xform.transform (p(0), p(1), p(2), false); ! switch (zstate) ! { ! case AXE_ANY_DIR: ! if (camAuto) ! { ! p(0) -= wmax; ! angle = 90; ! } ! // FIXME -- what's the correct offset? ! // ! // p[0] += (!xySym ? wmax : -wmax); ! // p[1] += (zSign ? hmax : -hmax); ! break; ! case AXE_VERT_DIR: p(0) -= wmax; angle = 90; ! break; ! case AXE_HORZ_DIR: ! p(1) += hmax; ! break; ! } ! if (zlabel_props.positionmode_is ("auto")) ! { ! p = xform.untransform (p(0), p(1), p(2), true); ! zlabel_props.set_position (p.extract_n (0, 3).transpose ()); ! zlabel_props.set_positionmode ("auto"); ! } ! if (zlabel_props.rotationmode_is ("auto")) ! { ! zlabel_props.set_rotation (angle); ! zlabel_props.set_rotationmode ("auto"); ! } } ! zlabel_props.set_autopos_tag ("zlabel"); } } void axes::properties::update_title_position (void) { - graphics_xform xform = get_transform (); - text::properties& title_props = reinterpret_cast (gh_manager::get_object (get_title ()).get_properties ()); ! if (! title_props.get_string ().empty ()) ! { ! title_props.set_autopos_tag ("none"); ! ! if (title_props.positionmode_is ("auto")) ! { ! // FIXME: bbox should be stored in axes::properties ! ColumnVector bbox(4); ! bbox(0) = octave_Inf; ! bbox(1) = octave_Inf; ! bbox(2) = -octave_Inf; ! bbox(3) = -octave_Inf; ! for (int i = 0; i <= 1; i++) ! for (int j = 0; j <= 1; j++) ! for (int k = 0; k <= 1; k++) ! { ! ColumnVector p = xform.transform (i ? xPlaneN : xPlane, ! j ? yPlaneN : yPlane, ! k ? zPlaneN : zPlane, false); ! bbox(0) = std::min (bbox(0), p(0)); ! bbox(1) = std::min (bbox(1), p(1)); ! bbox(2) = std::max (bbox(2), p(0)); ! bbox(3) = std::max (bbox(3), p(1)); ! } ! ! bbox(2) = bbox(2)-bbox(0); ! bbox(3) = bbox(3)-bbox(1); ! ColumnVector p = xform.untransform (bbox(0)+bbox(2)/2, (bbox(1)-10), ! (x_zlim(0)+x_zlim(1))/2, true); ! title_props.set_position (p.extract_n(0, 3).transpose ()); ! title_props.set_positionmode ("auto"); ! } ! title_props.set_autopos_tag ("title"); } } void --- 4424,4530 ---- zlabel_props.set_verticalalignmentmode ("auto"); } + } ! if (zlabel_props.positionmode_is ("auto") ! || zlabel_props.rotationmode_is ("auto")) ! { ! graphics_xform xform = get_transform (); ! Matrix ext (1, 2, 0.0); ! ext = get_ticklabel_extents (get_ztick ().matrix_value (), ! get_zticklabel ().all_strings (), ! get_zlim ().matrix_value ()); ! double wmax = ext(0), hmax = ext(1), angle = 0; ! ColumnVector p; ! if (xySym) ! { ! p = graphics_xform::xform_vector (xPlaneN, yPlane, ! (zpTickN+zpTick)/2); ! if (xisinf (fy)) ! p(0) += (signum(xPlaneN-xPlane)*fx*ztickoffset); ! else ! p(1) += (signum(yPlane-yPlaneN)*fy*ztickoffset); ! } ! else ! { ! p = graphics_xform::xform_vector (xPlane, yPlaneN, ! (zpTickN+zpTick)/2); ! if (xisinf (fx)) ! p(1) += (signum(yPlaneN-yPlane)*fy*ztickoffset); ! else ! p(0) += (signum(xPlane-xPlaneN)*fx*ztickoffset); ! } ! p = xform.transform (p(0), p(1), p(2), false); ! switch (zstate) ! { ! case AXE_ANY_DIR: ! if (camAuto) ! { p(0) -= wmax; angle = 90; ! } ! // FIXME -- what's the correct offset? ! // ! // p[0] += (!xySym ? wmax : -wmax); ! // p[1] += (zSign ? hmax : -hmax); ! break; ! case AXE_VERT_DIR: ! p(0) -= wmax; ! angle = 90; ! break; ! ! case AXE_HORZ_DIR: ! p(1) += hmax; ! break; ! } ! ! if (zlabel_props.positionmode_is ("auto")) ! { ! p = xform.untransform (p(0), p(1), p(2), true); ! zlabel_props.set_position (p.extract_n (0, 3).transpose ()); ! zlabel_props.set_positionmode ("auto"); } ! if (! is_empty && zlabel_props.rotationmode_is ("auto")) ! { ! zlabel_props.set_rotation (angle); ! zlabel_props.set_rotationmode ("auto"); ! } } + + zlabel_props.set_autopos_tag ("zlabel"); } void axes::properties::update_title_position (void) { text::properties& title_props = reinterpret_cast (gh_manager::get_object (get_title ()).get_properties ()); ! title_props.set_autopos_tag ("none"); ! if (title_props.positionmode_is ("auto")) ! { ! graphics_xform xform = get_transform (); ! // FIXME: bbox should be stored in axes::properties ! Matrix bbox = get_extent (false); ! ColumnVector p = xform.untransform (bbox(0)+bbox(2)/2, (bbox(1)-10), ! (x_zlim(0)+x_zlim(1))/2, true); ! title_props.set_position (p.extract_n(0, 3).transpose ()); ! title_props.set_positionmode ("auto"); } + + title_props.set_autopos_tag ("title"); } void *************** *** 4451,4456 **** --- 4538,4545 ---- update_zlabel_position (); else if (elem_type == "title") update_title_position (); + else if (elem_type == "sync") + sync_positions (); } static void *************** *** 4615,4621 **** get_position ().matrix_value () : get_outerposition ().matrix_value ()); - pos = convert_position (pos, get_units (), "pixels", parent_bb.extract_n (0, 2, 1, 2)); --- 4704,4709 ---- *************** *** 4626,4631 **** --- 4714,4804 ---- return pos; } + Matrix + axes::properties::get_extent (bool with_text, bool only_text_height) const + { + graphics_xform xform = get_transform (); + + Matrix ext (1, 4, 0.0); + ext(0) = octave_Inf; + ext(1) = octave_Inf; + ext(2) = -octave_Inf; + ext(3) = -octave_Inf; + for (int i = 0; i <= 1; i++) + for (int j = 0; j <= 1; j++) + for (int k = 0; k <= 1; k++) + { + ColumnVector p = xform.transform (i ? xPlaneN : xPlane, + j ? yPlaneN : yPlane, + k ? zPlaneN : zPlane, false); + ext(0) = std::min (ext(0), p(0)); + ext(1) = std::min (ext(1), p(1)); + ext(2) = std::max (ext(2), p(0)); + ext(3) = std::max (ext(3), p(1)); + } + + if (with_text) + { + for (int i = 0; i < 4; i++) + { + graphics_handle text_handle; + if (i == 0) + text_handle = get_title (); + else if (i == 1) + text_handle = get_xlabel (); + else if (i == 2) + text_handle = get_ylabel (); + else if (i == 3) + text_handle = get_zlabel (); + + text::properties& text_props = reinterpret_cast + (gh_manager::get_object (text_handle).get_properties ()); + + Matrix text_pos = text_props.get_position ().matrix_value (); + text_pos = xform.transform (text_pos(0), text_pos(1), text_pos(2)); + if (text_props.get_string ().empty ()) + { + ext(0) = std::min (ext(0), text_pos(0)); + ext(1) = std::min (ext(1), text_pos(1)); + ext(2) = std::max (ext(2), text_pos(0)); + ext(3) = std::max (ext(3), text_pos(1)); + } + else + { + Matrix text_ext = text_props.get_extent_matrix (); + + bool ignore_horizontal = false; + bool ignore_vertical = false; + if (only_text_height) + { + double text_rotation = text_props.get_rotation(); + if (text_rotation == 0. || text_rotation == 180.) + ignore_horizontal = true; + else if (text_rotation == 90. || text_rotation == 270.) + ignore_vertical = true; + } + + if (! ignore_horizontal) + { + ext(0) = std::min (ext(0), text_pos(0)+text_ext(0)); + ext(2) = std::max (ext(2), text_pos(0)+text_ext(0)+text_ext(2)); + } + + if (! ignore_vertical) + { + ext(1) = std::min (ext(1), text_pos(1)-text_ext(1)-text_ext(3)); + ext(3) = std::max (ext(3), text_pos(1)-text_ext(1)); + } + } + } + } + + ext(2) = ext(2)-ext(0); + ext(3) = ext(3)-ext(1); + + return ext; + } + void axes::properties::set_units (const octave_value& v) { *************** *** 4646,4654 **** graphics_object obj = gh_manager::get_object (get_parent ()); Matrix parent_bb = obj.get_properties ().get_boundingbox (true).extract_n (0, 2, 1, 2); caseless_str new_units = get_units (); ! set_position (octave_value (convert_position (get_position().matrix_value(), old_units, new_units, parent_bb))); ! set_outerposition (octave_value (convert_position (get_outerposition().matrix_value(), old_units, new_units, parent_bb))); ! set_tightinset (octave_value (convert_position (get_tightinset().matrix_value(), old_units, new_units, parent_bb))); } void --- 4819,4827 ---- graphics_object obj = gh_manager::get_object (get_parent ()); Matrix parent_bb = obj.get_properties ().get_boundingbox (true).extract_n (0, 2, 1, 2); caseless_str new_units = get_units (); ! position.set (octave_value (convert_position (get_position().matrix_value(), old_units, new_units, parent_bb)), false); ! outerposition.set (octave_value (convert_position (get_outerposition().matrix_value(), old_units, new_units, parent_bb)), false); ! tightinset.set (octave_value (convert_position (get_tightinset().matrix_value(), old_units, new_units, parent_bb)), false); } void *************** *** 4798,4805 **** } } ! // magform(x) Returns (a, b), where x = a * 10^b, a >= 1., and b is ! // integral. static void magform (double x, double& a, int& b) --- 4971,4978 ---- } } ! // magform(x) Returns (a, b), where x = a * 10^b, abs (a) >= 1., and b is ! // integer. static void magform (double x, double& a, int& b) *************** *** 4811,4828 **** } else { ! double l = std::log10 (std::abs (x)); ! double r = std::fmod (l, 1.); ! a = std::pow (10.0, r); ! b = static_cast (l-r); ! if (a < 1) ! { ! a *= 10; ! b -= 1; ! } ! ! if (x < 0) ! a = -a; } } --- 4984,4991 ---- } else { ! b = static_cast (gnulib::floor (std::log10 (std::abs (x)))); ! a = x / std::pow (10.0, b); } } *************** *** 4914,4921 **** } double tick_sep = calc_tick_sep (min_val , max_val); ! min_val = tick_sep * gnulib::floor (min_val / tick_sep); ! max_val = tick_sep * std::ceil (max_val / tick_sep); } } --- 5077,5087 ---- } double tick_sep = calc_tick_sep (min_val , max_val); ! double min_tick = gnulib::floor (min_val / tick_sep); ! double max_tick = std::ceil (max_val / tick_sep); ! // Prevent round-off from cropping ticks ! min_val = std::min (min_val, tick_sep * min_tick); ! max_val = std::max (max_val, tick_sep * max_tick); } } *************** *** 4964,4971 **** { // adjust limits to include min and max tics Matrix tmp_lims (1,2); ! tmp_lims(0) = tick_sep * i1; ! tmp_lims(1) = tick_sep * i2; if (is_logscale) { --- 5130,5137 ---- { // adjust limits to include min and max tics Matrix tmp_lims (1,2); ! tmp_lims(0) = std::min (tick_sep * i1, lo); ! tmp_lims(1) = std::max (tick_sep * i2, hi); if (is_logscale) { *************** *** 5724,5729 **** --- 5890,5899 ---- set_extent (bbox); #endif + + if (autopos_tag_is ("xlabel") || autopos_tag_is ("ylabel") || + autopos_tag_is ("zlabel") || autopos_tag_is ("title")) + update_autopos ("sync"); } void *************** *** 5731,5742 **** { if (autopos_tag_is ("xlabel") || autopos_tag_is ("ylabel") || autopos_tag_is ("zlabel") || autopos_tag_is ("title")) ! { ! const std::string text_type = get_autopos_tag (); ! set_autopos_tag ("none"); ! update_autopos (text_type); ! set_autopos_tag (text_type); ! } } void --- 5901,5907 ---- { if (autopos_tag_is ("xlabel") || autopos_tag_is ("ylabel") || autopos_tag_is ("zlabel") || autopos_tag_is ("title")) ! update_autopos (get_autopos_tag ()); } void *************** *** 7485,7504 **** if (! error_state) { ! size_t pos = file.find_last_of (file_ops::dir_sep_chars ()); ! ! if (pos != std::string::npos) { ! std::string dirname = file.substr (0, pos+1); ! file_stat fs (dirname); ! ! if (! (fs && fs.is_dir ())) { ! error ("drawnow: nonexistent directory `%s'", ! dirname.c_str ()); ! return retval; } } --- 7650,7675 ---- if (! error_state) { ! size_t pos = file.find_first_not_of ("|"); ! if (pos > 0) ! file = file.substr (pos); ! else { ! pos = file.find_last_of (file_ops::dir_sep_chars ()); ! if (pos != std::string::npos) { ! std::string dirname = file.substr (0, pos+1); ! ! file_stat fs (dirname); ! ! if (! (fs && fs.is_dir ())) ! { ! error ("drawnow: nonexistent directory `%s'", ! dirname.c_str ()); ! return retval; ! } } } *************** *** 7528,7543 **** error ("drawnow: nothing to draw"); } else ! error ("drawnow: invalid debug_file, expected a string value"); } else ! error ("drawnow: invalid colormode, expected a boolean value"); } else ! error ("drawnow: invalid file, expected a string value"); } else ! error ("drawnow: invalid terminal, expected a string value"); } else print_usage (); --- 7699,7714 ---- error ("drawnow: nothing to draw"); } else ! error ("drawnow: invalid DEBUG_FILE, expected a string value"); } else ! error ("drawnow: invalid colormode MONO, expected a boolean value"); } else ! error ("drawnow: invalid FILE, expected a string value"); } else ! error ("drawnow: invalid terminal TERM, expected a string value"); } else print_usage (); *************** *** 7585,7591 **** octave_value retval; ! if (args.length () == 3) { double h = args(0).double_value (); --- 7756,7762 ---- octave_value retval; ! if (args.length () >= 3 && args.length () <= 4) { double h = args(0).double_value (); *************** *** 7602,7607 **** --- 7773,7785 ---- graphics_object go = gh_manager::get_object (gh); go.add_property_listener (pname, args(2), POSTSET); + + if (args.length () == 4) + { + caseless_str persistent = args(3).string_value (); + if (persistent.compare ("persistent")) + go.add_property_listener (pname, args(2), PERSISTENT); + } } else error ("addlistener: invalid graphics object (= %g)", *************** *** 7669,7675 **** if (args.length () == 2) go.delete_property_listener (pname, octave_value (), POSTSET); else ! go.delete_property_listener (pname, args(2), POSTSET); } else error ("dellistener: invalid graphics object (= %g)", --- 7847,7862 ---- if (args.length () == 2) go.delete_property_listener (pname, octave_value (), POSTSET); else ! { ! caseless_str persistent = args(2).string_value (); ! if (persistent.compare ("persistent")) ! { ! go.delete_property_listener (pname, octave_value (), PERSISTENT); ! go.delete_property_listener (pname, octave_value (), POSTSET); ! } ! else ! go.delete_property_listener (pname, args(2), POSTSET); ! } } else error ("dellistener: invalid graphics object (= %g)", *************** *** 7794,7800 **** name.c_str ()); } else ! error ("addproperty: invalid property type, expected a string value"); } else error ("addproperty: invalid graphics object (= %g)", h); --- 7981,7987 ---- name.c_str ()); } else ! error ("addproperty: invalid property TYPE, expected a string value"); } else error ("addproperty: invalid graphics object (= %g)", h); *************** *** 7803,7809 **** error ("addproperty: invalid handle value"); } else ! error ("addproperty: invalid property name, expected a string value"); } else print_usage (); --- 7990,7996 ---- error ("addproperty: invalid handle value"); } else ! error ("addproperty: invalid property NAME, expected a string value"); } else print_usage (); diff -cNr octave-3.4.0/src/graphics.h octave-3.4.1/src/graphics.h *** octave-3.4.0/src/graphics.h 2011-02-08 05:07:40.000000000 -0500 --- octave-3.4.1/src/graphics.h 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,10470 **** - // DO NOT EDIT! Generated automatically by genprops.awk. - - /* - - Copyright (C) 2007-2011 John W. Eaton - - This file is part of Octave. - - Octave 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. - - Octave 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 Octave; see the file COPYING. If not, see - . - - */ - - #if !defined (graphics_h) - #define graphics_h 1 - - #ifdef HAVE_CONFIG_H - #include - #endif - - #include - - #include - #include - #include - #include - #include - - #include "caseless-str.h" - #include "lo-ieee.h" - - #include "gripes.h" - #include "oct-map.h" - #include "oct-mutex.h" - #include "ov.h" - #include "txt-eng-ft.h" - - // FIXME -- maybe this should be a configure option? - // Matlab defaults to "Helvetica", but that causes problems for many - // gnuplot users. - #if !defined (OCTAVE_DEFAULT_FONTNAME) - #define OCTAVE_DEFAULT_FONTNAME "*" - #endif - - // --------------------------------------------------------------------- - - class graphics_handle - { - public: - graphics_handle (void) : val (octave_NaN) { } - - graphics_handle (const octave_value& a); - - graphics_handle (int a) : val (a) { } - - graphics_handle (double a) : val (a) { } - - graphics_handle (const graphics_handle& a) : val (a.val) { } - - graphics_handle& operator = (const graphics_handle& a) - { - if (&a != this) - val = a.val; - - return *this; - } - - ~graphics_handle (void) { } - - double value (void) const { return val; } - - octave_value as_octave_value (void) const - { - return ok () ? octave_value (val) : octave_value (Matrix ()); - } - - // Prefix increment/decrement operators. - graphics_handle& operator ++ (void) - { - ++val; - return *this; - } - - graphics_handle& operator -- (void) - { - --val; - return *this; - } - - // Postfix increment/decrement operators. - const graphics_handle operator ++ (int) - { - graphics_handle old_value = *this; - ++(*this); - return old_value; - } - - const graphics_handle operator -- (int) - { - graphics_handle old_value = *this; - --(*this); - return old_value; - } - - bool ok (void) const { return ! xisnan (val); } - - private: - double val; - }; - - inline bool - operator == (const graphics_handle& a, const graphics_handle& b) - { - return a.value () == b.value (); - } - - inline bool - operator != (const graphics_handle& a, const graphics_handle& b) - { - return a.value () != b.value (); - } - - inline bool - operator < (const graphics_handle& a, const graphics_handle& b) - { - return a.value () < b.value (); - } - - inline bool - operator <= (const graphics_handle& a, const graphics_handle& b) - { - return a.value () <= b.value (); - } - - inline bool - operator >= (const graphics_handle& a, const graphics_handle& b) - { - return a.value () >= b.value (); - } - - inline bool - operator > (const graphics_handle& a, const graphics_handle& b) - { - return a.value () > b.value (); - } - - // --------------------------------------------------------------------- - - class base_scaler - { - public: - base_scaler (void) { } - - virtual ~base_scaler (void) { } - - virtual Matrix scale (const Matrix& m) const - { - error ("invalid axis scale"); - return m; - } - - virtual NDArray scale (const NDArray& m) const - { - error ("invalid axis scale"); - return m; - } - - virtual double scale (double d) const - { - error ("invalid axis scale"); - return d; - } - - virtual double unscale (double d) const - { - error ("invalid axis scale"); - return d; - } - - virtual base_scaler* clone () const - { return new base_scaler (); } - - virtual bool is_linear (void) const - { return false; } - }; - - class lin_scaler : public base_scaler - { - public: - lin_scaler (void) { } - - Matrix scale (const Matrix& m) const { return m; } - - NDArray scale (const NDArray& m) const { return m; } - - double scale (double d) const { return d; } - - double unscale (double d) const { return d; } - - base_scaler* clone (void) const { return new lin_scaler (); } - - bool is_linear (void) const { return true; } - }; - - class log_scaler : public base_scaler - { - public: - log_scaler (void) { } - - Matrix scale (const Matrix& m) const - { - Matrix retval (m.rows (), m.cols ()); - - do_scale (m.data (), retval.fortran_vec (), m.numel ()); - return retval; - } - - NDArray scale (const NDArray& m) const - { - NDArray retval (m.dims ()); - - do_scale (m.data (), retval.fortran_vec (), m.numel ()); - return retval; - } - - double scale (double d) const - { return log10 (d); } - - double unscale (double d) const - { return pow (10.0, d); } - - base_scaler* clone (void) const - { return new log_scaler (); } - - private: - void do_scale (const double *src, double *dest, int n) const - { - for (int i = 0; i < n; i++) - dest[i] = log10(src[i]); - } - }; - - class scaler - { - public: - scaler (void) : rep (new base_scaler ()) { } - - scaler (const scaler& s) : rep (s.rep->clone()) { } - - scaler (const std::string& s) - : rep (s == "log" - ? new log_scaler () - : (s == "linear" ? new lin_scaler () : new base_scaler ())) - { } - - ~scaler (void) { delete rep; } - - Matrix scale (const Matrix& m) const - { return rep->scale (m); } - - NDArray scale (const NDArray& m) const - { return rep->scale (m); } - - double scale (double d) const - { return rep->scale (d); } - - double unscale (double d) const - { return rep->unscale (d); } - - bool is_linear (void) const - { return rep->is_linear (); } - - scaler& operator = (const scaler& s) - { - if (rep) - { - delete rep; - rep = 0; - } - - rep = s.rep->clone (); - - return *this; - } - - scaler& operator = (const std::string& s) - { - if (rep) - { - delete rep; - rep = 0; - } - - if (s == "log") - rep = new log_scaler (); - else if (s == "linear") - rep = new lin_scaler (); - else - rep = new base_scaler (); - - return *this; - } - - private: - base_scaler *rep; - }; - - // --------------------------------------------------------------------- - - class property; - - enum listener_mode { POSTSET }; - - class base_property - { - public: - friend class property; - - public: - base_property (void) - : id (-1), count (1), name (), parent (), hidden (), listeners () - { } - - base_property (const std::string& s, const graphics_handle& h) - : id (-1), count (1), name (s), parent (h), hidden (false), listeners () - { } - - base_property (const base_property& p) - : id (-1), count (1), name (p.name), parent (p.parent), - hidden (p.hidden), listeners () - { } - - virtual ~base_property (void) { } - - bool ok (void) const { return parent.ok (); } - - std::string get_name (void) const { return name; } - - void set_name (const std::string& s) { name = s; } - - graphics_handle get_parent (void) const { return parent; } - - void set_parent (const graphics_handle &h) { parent = h; } - - bool is_hidden (void) const { return hidden; } - - void set_hidden (bool flag) { hidden = flag; } - - virtual bool is_radio (void) const { return false; } - - int get_id (void) const { return id; } - - void set_id (int d) { id = d; } - - // Sets property value, notifies graphics toolkit. - // If do_run is true, runs associated listeners. - bool set (const octave_value& v, bool do_run = true); - - virtual octave_value get (void) const - { - error ("get: invalid property \"%s\"", name.c_str ()); - return octave_value (); - } - - - virtual std::string values_as_string (void) const - { - error ("values_as_string: invalid property \"%s\"", name.c_str ()); - return std::string (); - } - - virtual Cell values_as_cell (void) const - { - error ("values_as_cell: invalid property \"%s\"", name.c_str ()); - return Cell (); - } - - base_property& operator = (const octave_value& val) - { - set (val); - return *this; - } - - void add_listener (const octave_value& v, listener_mode mode = POSTSET) - { - octave_value_list& l = listeners[mode]; - l.resize (l.length () + 1, v); - } - - void delete_listener (const octave_value& v = octave_value (), - listener_mode mode = POSTSET) - { - octave_value_list& l = listeners[mode]; - - if (v.is_defined ()) - { - bool found = false; - int i; - - for (i = 0; i < l.length (); i++) - { - if (v.internal_rep () == l(i).internal_rep ()) - { - found = true; - break; - } - } - if (found) - { - for (int j = i; j < l.length() - 1; j++) - l(j) = l (j + 1); - - l.resize (l.length () - 1); - } - } - else - l.resize (0); - - } - - OCTINTERP_API void run_listeners (listener_mode mode = POSTSET); - - virtual base_property* clone (void) const - { return new base_property (*this); } - - protected: - virtual bool do_set (const octave_value&) - { - error ("set: invalid property \"%s\"", name.c_str ()); - return false; - } - - private: - typedef std::map listener_map; - typedef std::map::iterator listener_map_iterator; - typedef std::map::const_iterator listener_map_const_iterator; - - private: - int id; - int count; - std::string name; - graphics_handle parent; - bool hidden; - listener_map listeners; - }; - - // --------------------------------------------------------------------- - - class string_property : public base_property - { - public: - string_property (const std::string& s, const graphics_handle& h, - const std::string& val = "") - : base_property (s, h), str (val) { } - - string_property (const string_property& p) - : base_property (p), str (p.str) { } - - octave_value get (void) const - { return octave_value (str); } - - std::string string_value (void) const { return str; } - - string_property& operator = (const octave_value& val) - { - set (val); - return *this; - } - - base_property* clone (void) const { return new string_property (*this); } - - protected: - bool do_set (const octave_value& val) - { - if (val.is_string ()) - { - std::string new_str = val.string_value (); - - if (new_str != str) - { - str = new_str; - return true; - } - } - else - error ("set: invalid string property value for \"%s\"", - get_name ().c_str ()); - return false; - } - - private: - std::string str; - }; - - // --------------------------------------------------------------------- - - class string_array_property : public base_property - { - public: - enum desired_enum { string_t, cell_t }; - - string_array_property (const std::string& s, const graphics_handle& h, - const std::string& val = "", const char& sep = '|', - const desired_enum& typ = string_t) - : base_property (s, h), desired_type (typ), separator (sep), str () - { - size_t pos = 0; - - while (true) - { - size_t new_pos = val.find_first_of (separator, pos); - - if (new_pos == std::string::npos) - { - str.append (val.substr (pos)); - break; - } - else - str.append (val.substr (pos, new_pos - pos)); - - pos = new_pos + 1; - } - } - - string_array_property (const std::string& s, const graphics_handle& h, - const Cell& c, const char& sep = '|', - const desired_enum& typ = string_t) - : base_property (s, h), desired_type (typ), separator (sep), str () - { - if (c.is_cellstr ()) - { - string_vector strings (c.numel ()); - - for (octave_idx_type i = 0; i < c.numel (); i++) - strings[i] = c(i).string_value (); - - str = strings; - } - else - error ("set: invalid order property value for \"%s\"", - get_name ().c_str ()); - } - - string_array_property (const string_array_property& p) - : base_property (p), desired_type (p.desired_type), - separator (p.separator), str (p.str) { } - - octave_value get (void) const - { - if (desired_type == string_t) - return octave_value (string_value ()); - else - return octave_value (cell_value ()); - } - - std::string string_value (void) const - { - std::string s; - - for (octave_idx_type i = 0; i < str.length (); i++) - { - s += str[i]; - if (i != str.length () - 1) - s += separator; - } - - return s; - } - - Cell cell_value (void) const {return Cell (str);} - - string_array_property& operator = (const octave_value& val) - { - set (val); - return *this; - } - - base_property* clone (void) const { return new string_array_property (*this); } - - protected: - bool do_set (const octave_value& val) - { - if (val.is_string ()) - { - bool replace = false; - std::string new_str = val.string_value (); - string_vector strings; - size_t pos = 0; - - while (pos != std::string::npos) - { - size_t new_pos = new_str.find_first_of (separator, pos); - - if (new_pos == std::string::npos) - { - strings.append (new_str.substr (pos)); - break; - } - else - strings.append (new_str.substr (pos, new_pos - pos)); - - pos = new_pos + 1; - } - - if (str.numel () == strings.numel ()) - { - for (octave_idx_type i = 0; i < str.numel (); i++) - if (strings[i] != str[i]) - { - replace = true; - break; - } - } - else - replace = true; - - if (replace) - { - str = strings; - return true; - } - } - else if (val.is_cellstr ()) - { - bool replace = false; - Cell new_cell = val.cell_value (); - - string_vector strings = new_cell.cellstr_value (); - - octave_idx_type nel = strings.length (); - - if (nel != str.length ()) - replace = true; - else - { - for (octave_idx_type i = 0; i < nel; i++) - { - if (strings[i] != str[i]) - { - replace = true; - break; - } - } - } - - if (replace) - { - str = strings; - return true; - } - } - else - error ("set: invalid string property value for \"%s\"", - get_name ().c_str ()); - return false; - } - - private: - desired_enum desired_type; - char separator; - string_vector str; - }; - - // --------------------------------------------------------------------- - - class radio_values - { - public: - OCTINTERP_API radio_values (const std::string& opt_string = std::string ()); - - radio_values (const radio_values& a) - : default_val (a.default_val), possible_vals (a.possible_vals) { } - - radio_values& operator = (const radio_values& a) - { - if (&a != this) - { - default_val = a.default_val; - possible_vals = a.possible_vals; - } - - return *this; - } - - std::string default_value (void) const { return default_val; } - - bool validate (const std::string& val) - { - bool retval = true; - - if (! contains (val)) - { - error ("invalid value = %s", val.c_str ()); - retval = false; - } - - return retval; - } - - bool contains (const std::string& val) - { - return (possible_vals.find (val) != possible_vals.end ()); - } - - std::string values_as_string (void) const; - - Cell values_as_cell (void) const; - - octave_idx_type nelem (void) const { return possible_vals.size (); } - - private: - // Might also want to cache - std::string default_val; - std::set possible_vals; - }; - - class radio_property : public base_property - { - public: - radio_property (const std::string& nm, const graphics_handle& h, - const radio_values& v = radio_values ()) - : base_property (nm, h), - vals (v), current_val (v.default_value ()) { } - - radio_property (const std::string& nm, const graphics_handle& h, - const std::string& v) - : base_property (nm, h), - vals (v), current_val (vals.default_value ()) { } - - radio_property (const std::string& nm, const graphics_handle& h, - const radio_values& v, const std::string& def) - : base_property (nm, h), - vals (v), current_val (def) { } - - radio_property (const radio_property& p) - : base_property (p), vals (p.vals), current_val (p.current_val) { } - - octave_value get (void) const { return octave_value (current_val); } - - const std::string& current_value (void) const { return current_val; } - - std::string values_as_string (void) const { return vals.values_as_string (); } - - Cell values_as_cell (void) const { return vals.values_as_cell (); } - - bool is (const caseless_str& v) const - { return v.compare (current_val); } - - bool is_radio (void) const { return true; } - - radio_property& operator = (const octave_value& val) - { - set (val); - return *this; - } - - base_property* clone (void) const { return new radio_property (*this); } - - protected: - bool do_set (const octave_value& newval) - { - if (newval.is_string ()) - { - std::string s = newval.string_value (); - if (vals.validate (s)) - { - if (s != current_val) - { - current_val = s; - return true; - } - } - else - error ("set: invalid value for radio property \"%s\" (value = %s)", - get_name ().c_str (), s.c_str ()); - } - else - error ("set: invalid value for radio property \"%s\"", - get_name ().c_str ()); - return false; - } - - private: - radio_values vals; - std::string current_val; - }; - - // --------------------------------------------------------------------- - - class color_values - { - public: - color_values (double r = 0, double g = 0, double b = 1) - : xrgb (1, 3) - { - xrgb(0) = r; - xrgb(1) = g; - xrgb(2) = b; - - validate (); - } - - color_values (std::string str) - : xrgb (1, 3) - { - if (! str2rgb (str)) - error ("invalid color specification: %s", str.c_str ()); - } - - color_values (const color_values& c) - : xrgb (c.xrgb) - { } - - color_values& operator = (const color_values& c) - { - if (&c != this) - xrgb = c.xrgb; - - return *this; - } - - bool operator == (const color_values& c) const - { - return (xrgb(0) == c.xrgb(0) - && xrgb(1) == c.xrgb(1) - && xrgb(2) == c.xrgb(2)); - } - - bool operator != (const color_values& c) const - { return ! (*this == c); } - - Matrix rgb (void) const { return xrgb; } - - operator octave_value (void) const { return xrgb; } - - void validate (void) const - { - for (int i = 0; i < 3; i++) - { - if (xrgb(i) < 0 || xrgb(i) > 1) - { - error ("invalid RGB color specification"); - break; - } - } - } - - private: - Matrix xrgb; - - OCTINTERP_API bool str2rgb (std::string str); - }; - - class color_property : public base_property - { - public: - color_property (const color_values& c, const radio_values& v) - : base_property ("", graphics_handle ()), - current_type (color_t), color_val (c), radio_val (v), - current_val (v.default_value ()) - { } - - color_property (const std::string& nm, const graphics_handle& h, - const color_values& c = color_values (), - const radio_values& v = radio_values ()) - : base_property (nm, h), - current_type (color_t), color_val (c), radio_val (v), - current_val (v.default_value ()) - { } - - color_property (const std::string& nm, const graphics_handle& h, - const radio_values& v) - : base_property (nm, h), - current_type (radio_t), color_val (color_values ()), radio_val (v), - current_val (v.default_value ()) - { } - - color_property (const std::string& nm, const graphics_handle& h, - const std::string& v) - : base_property (nm, h), - current_type (radio_t), color_val (color_values ()), radio_val (v), - current_val (radio_val.default_value ()) - { } - - color_property (const std::string& nm, const graphics_handle& h, - const color_property& v) - : base_property (nm, h), - current_type (v.current_type), color_val (v.color_val), - radio_val (v.radio_val), current_val (v.current_val) - { } - - color_property (const color_property& p) - : base_property (p), current_type (p.current_type), - color_val (p.color_val), radio_val (p.radio_val), - current_val (p.current_val) { } - - octave_value get (void) const - { - if (current_type == color_t) - return color_val.rgb (); - - return current_val; - } - - bool is_rgb (void) const { return (current_type == color_t); } - - bool is_radio (void) const { return (current_type == radio_t); } - - bool is (const std::string& v) const - { return (is_radio () && current_val == v); } - - Matrix rgb (void) const - { - if (current_type != color_t) - error ("color has no rgb value"); - - return color_val.rgb (); - } - - const std::string& current_value (void) const - { - if (current_type != radio_t) - error ("color has no radio value"); - - return current_val; - } - - color_property& operator = (const octave_value& val) - { - set (val); - return *this; - } - - operator octave_value (void) const { return get (); } - - base_property* clone (void) const { return new color_property (*this); } - - std::string values_as_string (void) const { return radio_val.values_as_string (); } - - Cell values_as_cell (void) const { return radio_val.values_as_cell (); } - - protected: - OCTINTERP_API bool do_set (const octave_value& newval); - - private: - enum current_enum { color_t, radio_t } current_type; - color_values color_val; - radio_values radio_val; - std::string current_val; - }; - - // --------------------------------------------------------------------- - - class double_property : public base_property - { - public: - double_property (const std::string& nm, const graphics_handle& h, - double d = 0) - : base_property (nm, h), - current_val (d) { } - - double_property (const double_property& p) - : base_property (p), current_val (p.current_val) { } - - octave_value get (void) const { return octave_value (current_val); } - - double double_value (void) const { return current_val; } - - double_property& operator = (const octave_value& val) - { - set (val); - return *this; - } - - base_property* clone (void) const { return new double_property (*this); } - - protected: - bool do_set (const octave_value& v) - { - if (v.is_scalar_type () && v.is_real_type ()) - { - double new_val = v.double_value (); - - if (new_val != current_val) - { - current_val = new_val; - return true; - } - } - else - error ("set: invalid value for double property \"%s\"", - get_name ().c_str ()); - return false; - } - - private: - double current_val; - }; - - // --------------------------------------------------------------------- - - class double_radio_property : public base_property - { - public: - double_radio_property (double d, const radio_values& v) - : base_property ("", graphics_handle ()), - current_type (double_t), dval (d), radio_val (v), - current_val (v.default_value ()) - { } - - double_radio_property (const std::string& nm, const graphics_handle& h, - const std::string& v) - : base_property (nm, h), - current_type (radio_t), dval (0), radio_val (v), - current_val (radio_val.default_value ()) - { } - - double_radio_property (const std::string& nm, const graphics_handle& h, - const double_radio_property& v) - : base_property (nm, h), - current_type (v.current_type), dval (v.dval), - radio_val (v.radio_val), current_val (v.current_val) - { } - - double_radio_property (const double_radio_property& p) - : base_property (p), current_type (p.current_type), - dval (p.dval), radio_val (p.radio_val), - current_val (p.current_val) { } - - octave_value get (void) const - { - if (current_type == double_t) - return dval; - - return current_val; - } - - bool is_double (void) const { return (current_type == double_t); } - - bool is_radio (void) const { return (current_type == radio_t); } - - bool is (const std::string& v) const - { return (is_radio () && current_val == v); } - - double double_value (void) const - { - if (current_type != double_t) - error ("%s: property has no double", get_name ().c_str ()); - - return dval; - } - - const std::string& current_value (void) const - { - if (current_type != radio_t) - error ("%s: property has no radio value"); - - return current_val; - } - - double_radio_property& operator = (const octave_value& val) - { - set (val); - return *this; - } - - operator octave_value (void) const { return get (); } - - base_property* clone (void) const - { return new double_radio_property (*this); } - - protected: - OCTINTERP_API bool do_set (const octave_value& v); - - private: - enum current_enum { double_t, radio_t } current_type; - double dval; - radio_values radio_val; - std::string current_val; - }; - - // --------------------------------------------------------------------- - - class array_property : public base_property - { - public: - array_property (void) - : base_property ("", graphics_handle ()), data (Matrix ()), - xmin (), xmax (), xminp (), type_constraints (), size_constraints () - { - get_data_limits (); - } - - array_property (const std::string& nm, const graphics_handle& h, - const octave_value& m) - : base_property (nm, h), data (m), - xmin (), xmax (), xminp (), type_constraints (), size_constraints () - { - get_data_limits (); - } - - // This copy constructor is only intended to be used - // internally to access min/max values; no need to - // copy constraints. - array_property (const array_property& p) - : base_property (p), data (p.data), - xmin (p.xmin), xmax (p.xmax), xminp (p.xminp), - type_constraints (), size_constraints () - { } - - octave_value get (void) const { return data; } - - void add_constraint (const std::string& type) - { type_constraints.push_back (type); } - - void add_constraint (const dim_vector& dims) - { size_constraints.push_back (dims); } - - double min_val (void) const { return xmin; } - double max_val (void) const { return xmax; } - double min_pos (void) const { return xminp; } - - Matrix get_limits (void) const - { - Matrix m (1, 3); - - m(0) = min_val (); - m(1) = max_val (); - m(2) = min_pos (); - - return m; - } - - array_property& operator = (const octave_value& val) - { - set (val); - return *this; - } - - base_property* clone (void) const - { - array_property *p = new array_property (*this); - - p->type_constraints = type_constraints; - p->size_constraints = size_constraints; - - return p; - } - - protected: - bool do_set (const octave_value& v) - { - if (validate (v)) - { - // FIXME -- should we check for actual data change? - if (! is_equal (v)) - { - data = v; - - get_data_limits (); - - return true; - } - } - else - error ("invalid value for array property \"%s\"", - get_name ().c_str ()); - - return false; - } - - private: - OCTINTERP_API bool validate (const octave_value& v); - - OCTINTERP_API bool is_equal (const octave_value& v) const; - - OCTINTERP_API void get_data_limits (void); - - protected: - octave_value data; - double xmin; - double xmax; - double xminp; - std::list type_constraints; - std::list size_constraints; - }; - - class row_vector_property : public array_property - { - public: - row_vector_property (const std::string& nm, const graphics_handle& h, - const octave_value& m) - : array_property (nm, h, m) - { - add_constraint (dim_vector (-1, 1)); - add_constraint (dim_vector (1, -1)); - } - - row_vector_property (const row_vector_property& p) - : array_property (p) - { - add_constraint (dim_vector (-1, 1)); - add_constraint (dim_vector (1, -1)); - } - - void add_constraint (const std::string& type) - { - array_property::add_constraint (type); - } - - void add_constraint (const dim_vector& dims) - { - array_property::add_constraint (dims); - } - - void add_constraint (octave_idx_type len) - { - size_constraints.remove (dim_vector (1, -1)); - size_constraints.remove (dim_vector (-1, 1)); - - add_constraint (dim_vector (1, len)); - add_constraint (dim_vector (len, 1)); - } - - row_vector_property& operator = (const octave_value& val) - { - set (val); - return *this; - } - - base_property* clone (void) const - { - row_vector_property *p = new row_vector_property (*this); - - p->type_constraints = type_constraints; - p->size_constraints = size_constraints; - - return p; - } - - protected: - bool do_set (const octave_value& v) - { - bool retval = array_property::do_set (v); - - if (! error_state) - { - dim_vector dv = data.dims (); - - if (dv(0) > 1 && dv(1) == 1) - { - int tmp = dv(0); - dv(0) = dv(1); - dv(1) = tmp; - - data = data.reshape (dv); - } - - return retval; - } - - return false; - } - - private: - OCTINTERP_API bool validate (const octave_value& v); - }; - - // --------------------------------------------------------------------- - - class bool_property : public radio_property - { - public: - bool_property (const std::string& nm, const graphics_handle& h, - bool val) - : radio_property (nm, h, radio_values (val ? "{on}|off" : "on|{off}")) - { } - - bool_property (const std::string& nm, const graphics_handle& h, - const char* val) - : radio_property (nm, h, radio_values ("on|off"), val) - { } - - bool_property (const bool_property& p) - : radio_property (p) { } - - bool is_on (void) const { return is ("on"); } - - bool_property& operator = (const octave_value& val) - { - set (val); - return *this; - } - - base_property* clone (void) const { return new bool_property (*this); } - - protected: - bool do_set (const octave_value& val) - { - if (val.is_bool_scalar ()) - return radio_property::do_set (val.bool_value () ? "on" : "off"); - else - return radio_property::do_set (val); - } - }; - - // --------------------------------------------------------------------- - - class handle_property : public base_property - { - public: - handle_property (const std::string& nm, const graphics_handle& h, - const graphics_handle& val = graphics_handle ()) - : base_property (nm, h), - current_val (val) { } - - handle_property (const handle_property& p) - : base_property (p), current_val (p.current_val) { } - - octave_value get (void) const { return current_val.as_octave_value (); } - - graphics_handle handle_value (void) const { return current_val; } - - handle_property& operator = (const octave_value& val) - { - set (val); - return *this; - } - - handle_property& operator = (const graphics_handle& h) - { - set (octave_value (h.value ())); - return *this; - } - - base_property* clone (void) const { return new handle_property (*this); } - - protected: - OCTINTERP_API bool do_set (const octave_value& v); - - private: - graphics_handle current_val; - }; - - // --------------------------------------------------------------------- - - class any_property : public base_property - { - public: - any_property (const std::string& nm, const graphics_handle& h, - const octave_value& m = Matrix ()) - : base_property (nm, h), data (m) { } - - any_property (const any_property& p) - : base_property (p), data (p.data) { } - - octave_value get (void) const { return data; } - - any_property& operator = (const octave_value& val) - { - set (val); - return *this; - } - - base_property* clone (void) const { return new any_property (*this); } - - protected: - bool do_set (const octave_value& v) - { - data = v; - return true; - } - - private: - octave_value data; - }; - - // --------------------------------------------------------------------- - - class children_property : public base_property - { - public: - children_property (void) - : base_property ("", graphics_handle ()), children_list () - { - do_init_children (Matrix ()); - } - - children_property (const std::string& nm, const graphics_handle& h, - const Matrix &val) - : base_property (nm, h), children_list () - { - do_init_children (val); - } - - children_property (const children_property& p) - : base_property (p), children_list () - { - do_init_children (p.children_list); - } - - children_property& operator = (const octave_value& val) - { - set (val); - return *this; - } - - base_property* clone (void) const { return new children_property (*this); } - - bool remove_child (const double &val) - { - return do_remove_child (val); - } - - void adopt (const double &val) - { - do_adopt_child (val); - } - - Matrix get_children (void) const - { - return do_get_children (false); - } - - Matrix get_hidden (void) const - { - return do_get_children (true); - } - - Matrix get_all (void) const - { - return do_get_all_children (); - } - - octave_value get (void) const - { - return octave_value (get_children ()); - } - - void delete_children (bool clear = false) - { - do_delete_children (clear); - } - - private: - typedef std::list::iterator children_list_iterator; - typedef std::list::const_iterator const_children_list_iterator; - std::list children_list; - - protected: - bool do_set (const octave_value& val) - { - const Matrix new_kids = val.matrix_value (); - - octave_idx_type nel = new_kids.numel (); - - const Matrix new_kids_column = new_kids.reshape (dim_vector (nel, 1)); - - bool is_ok = true; - - if (! error_state) - { - const Matrix visible_kids = do_get_children (false); - - if (visible_kids.numel () == new_kids.numel ()) - { - Matrix t1 = visible_kids.sort (); - Matrix t2 = new_kids_column.sort (); - - if (t1 != t2) - is_ok = false; - } - else - is_ok = false; - - if (! is_ok) - error ("set: new children must be a permutation of existing children"); - } - else - { - is_ok = false; - error ("set: expecting children to be array of graphics handles"); - } - - if (is_ok) - { - Matrix tmp = new_kids_column.stack (get_hidden ()); - - children_list.clear (); - - // Don't use do_init_children here, as that reverses the - // order of the list, and we don't want to do that if setting - // the child list directly. - - for (octave_idx_type i = 0; i < tmp.numel (); i++) - children_list.push_back (tmp.xelem (i)); - } - - return is_ok; - } - - private: - void do_init_children (const Matrix &val) - { - children_list.clear (); - for (octave_idx_type i = 0; i < val.numel (); i++) - children_list.push_front (val.xelem (i)); - } - - void do_init_children (const std::list &val) - { - children_list.clear (); - for (const_children_list_iterator p = val.begin (); p != val.end (); p++) - children_list.push_front (*p); - } - - Matrix do_get_children (bool return_hidden) const; - - Matrix do_get_all_children (void) const - { - Matrix retval (children_list.size (), 1); - octave_idx_type i = 0; - - for (const_children_list_iterator p = children_list.begin (); - p != children_list.end (); p++) - retval(i++) = *p; - return retval; - } - - bool do_remove_child (double child) - { - for (children_list_iterator p = children_list.begin (); - p != children_list.end (); p++) - { - if (*p == child) - { - children_list.erase (p); - return true; - } - } - return false; - } - - void do_adopt_child (const double &val) - { - children_list.push_front (val); - } - - void do_delete_children (bool clear); - }; - - - - // --------------------------------------------------------------------- - - class callback_property : public base_property - { - public: - callback_property (const std::string& nm, const graphics_handle& h, - const octave_value& m) - : base_property (nm, h), callback (m) { } - - callback_property (const callback_property& p) - : base_property (p), callback (p.callback) { } - - octave_value get (void) const { return callback; } - - OCTINTERP_API void execute (const octave_value& data = octave_value ()) const; - - bool is_defined (void) const - { - return (callback.is_defined () && ! callback.is_empty ()); - } - - callback_property& operator = (const octave_value& val) - { - set (val); - return *this; - } - - base_property* clone (void) const { return new callback_property (*this); } - - protected: - bool do_set (const octave_value& v) - { - if (validate (v)) - { - callback = v; - return true; - } - else - error ("invalid value for callback property \"%s\"", - get_name ().c_str ()); - return false; - } - - private: - OCTINTERP_API bool validate (const octave_value& v) const; - - private: - octave_value callback; - }; - - // --------------------------------------------------------------------- - - class property - { - public: - property (void) : rep (new base_property ("", graphics_handle ())) - { } - - property (base_property *bp, bool persist = false) : rep (bp) - { if (persist) rep->count++; } - - property (const property& p) : rep (p.rep) - { - rep->count++; - } - - ~property (void) - { - if (--rep->count <= 0) - delete rep; - } - - bool ok (void) const - { return rep->ok (); } - - std::string get_name (void) const - { return rep->get_name (); } - - void set_name (const std::string& name) - { rep->set_name (name); } - - graphics_handle get_parent (void) const - { return rep->get_parent (); } - - void set_parent (const graphics_handle& h) - { rep->set_parent (h); } - - bool is_hidden (void) const - { return rep->is_hidden (); } - - void set_hidden (bool flag) - { rep->set_hidden (flag); } - - bool is_radio (void) const - { return rep->is_radio (); } - - int get_id (void) const - { return rep->get_id (); } - - void set_id (int d) - { rep->set_id (d); } - - octave_value get (void) const - { return rep->get (); } - - bool set (const octave_value& val) - { return rep->set (val); } - - std::string values_as_string (void) const - { return rep->values_as_string (); } - - Cell values_as_cell (void) const - { return rep->values_as_cell (); } - - property& operator = (const octave_value& val) - { - *rep = val; - return *this; - } - - property& operator = (const property& p) - { - if (rep && --rep->count <= 0) - delete rep; - - rep = p.rep; - rep->count++; - - return *this; - } - - void add_listener (const octave_value& v, listener_mode mode = POSTSET) - { rep->add_listener (v, mode); } - - void delete_listener (const octave_value& v = octave_value (), - listener_mode mode = POSTSET) - { rep->delete_listener (v, mode); } - - void run_listeners (listener_mode mode = POSTSET) - { rep->run_listeners (mode); } - - OCTINTERP_API static - property create (const std::string& name, const graphics_handle& parent, - const caseless_str& type, - const octave_value_list& args); - - property clone (void) const - { return property (rep->clone ()); } - - /* - const string_property& as_string_property (void) const - { return *(dynamic_cast (rep)); } - - const radio_property& as_radio_property (void) const - { return *(dynamic_cast (rep)); } - - const color_property& as_color_property (void) const - { return *(dynamic_cast (rep)); } - - const double_property& as_double_property (void) const - { return *(dynamic_cast (rep)); } - - const bool_property& as_bool_property (void) const - { return *(dynamic_cast (rep)); } - - const handle_property& as_handle_property (void) const - { return *(dynamic_cast (rep)); } - */ - - private: - base_property *rep; - }; - - // --------------------------------------------------------------------- - - class property_list - { - public: - typedef std::map pval_map_type; - typedef std::map plist_map_type; - - typedef pval_map_type::iterator pval_map_iterator; - typedef pval_map_type::const_iterator pval_map_const_iterator; - - typedef plist_map_type::iterator plist_map_iterator; - typedef plist_map_type::const_iterator plist_map_const_iterator; - - property_list (const plist_map_type& m = plist_map_type ()) - : plist_map (m) { } - - ~property_list (void) { } - - void set (const caseless_str& name, const octave_value& val); - - octave_value lookup (const caseless_str& name) const; - - plist_map_iterator begin (void) { return plist_map.begin (); } - plist_map_const_iterator begin (void) const { return plist_map.begin (); } - - plist_map_iterator end (void) { return plist_map.end (); } - plist_map_const_iterator end (void) const { return plist_map.end (); } - - plist_map_iterator find (const std::string& go_name) - { - return plist_map.find (go_name); - } - - plist_map_const_iterator find (const std::string& go_name) const - { - return plist_map.find (go_name); - } - - octave_scalar_map as_struct (const std::string& prefix_arg) const; - - private: - plist_map_type plist_map; - }; - - // --------------------------------------------------------------------- - - class graphics_toolkit; - class graphics_object; - - class base_graphics_toolkit - { - public: - friend class graphics_toolkit; - - public: - base_graphics_toolkit (const std::string& nm) - : name (nm), count (0) { } - - virtual ~base_graphics_toolkit (void) { } - - std::string get_name (void) const { return name; } - - virtual bool is_valid (void) const { return false; } - - virtual void redraw_figure (const graphics_object&) const - { gripe_invalid ("redraw_figure"); } - - virtual void print_figure (const graphics_object&, const std::string&, - const std::string&, bool, - const std::string& = "") const - { gripe_invalid ("print_figure"); } - - virtual Matrix get_canvas_size (const graphics_handle&) const - { - gripe_invalid ("get_canvas_size"); - return Matrix (1, 2, 0.0); - } - - virtual double get_screen_resolution (void) const - { - gripe_invalid ("get_screen_resolution"); - return 72.0; - } - - virtual Matrix get_screen_size (void) const - { - gripe_invalid ("get_screen_size"); - return Matrix (1, 2, 0.0); - } - - // Callback function executed when the given graphics object - // changes. This allows the graphics toolkit to act on property - // changes if needed. - virtual void update (const graphics_object&, int) - { gripe_invalid ("base_graphics_toolkit::update"); } - - void update (const graphics_handle&, int); - - // Callback function executed when the given graphics object is - // created. This allows the graphics toolkit to do toolkit-specific - // initializations for a newly created object. - virtual void initialize (const graphics_object&) - { gripe_invalid ("base_graphics_toolkit::initialize"); } - - void initialize (const graphics_handle&); - - // Callback function executed just prior to deleting the given - // graphics object. This allows the graphics toolkit to perform - // toolkit-specific cleanup operations before an object is deleted. - virtual void finalize (const graphics_object&) - { gripe_invalid ("base_graphics_toolkit::finalize"); } - - void finalize (const graphics_handle&); - - private: - std::string name; - int count; - - private: - void gripe_invalid (const std::string& fname) const - { - if (! is_valid ()) - error ("%s: invalid graphics toolkit", fname.c_str ()); - } - }; - - class graphics_toolkit - { - public: - graphics_toolkit (void) - : rep (new base_graphics_toolkit ("unknown")) - { - rep->count++; - } - - graphics_toolkit (base_graphics_toolkit* b) - : rep (b) - { - rep->count++; - } - - graphics_toolkit (const graphics_toolkit& b) - : rep (b.rep) - { - rep->count++; - } - - ~graphics_toolkit (void) - { - if (--rep->count == 0) - delete rep; - } - - graphics_toolkit& operator = (const graphics_toolkit& b) - { - if (rep != b.rep) - { - if (--rep->count == 0) - delete rep; - - rep = b.rep; - rep->count++; - } - - return *this; - } - - operator bool (void) const { return rep->is_valid (); } - - std::string get_name (void) const { return rep->get_name (); } - - void redraw_figure (const graphics_object& go) const - { rep->redraw_figure (go); } - - void print_figure (const graphics_object& go, const std::string& term, - const std::string& file, bool mono, - const std::string& debug_file = "") const - { rep->print_figure (go, term, file, mono, debug_file); } - - Matrix get_canvas_size (const graphics_handle& fh) const - { return rep->get_canvas_size (fh); } - - double get_screen_resolution (void) const - { return rep->get_screen_resolution (); } - - Matrix get_screen_size (void) const - { return rep->get_screen_size (); } - - // Notifies graphics toolkit that object't property has changed. - void update (const graphics_object& go, int id) - { rep->update (go, id); } - - void update (const graphics_handle& h, int id) - { rep->update (h, id); } - - // Notifies graphics toolkit that new object was created. - void initialize (const graphics_object& go) - { rep->initialize (go); } - - void initialize (const graphics_handle& h) - { rep->initialize (h); } - - // Notifies graphics toolkit that object was destroyed. - // This is called only for explicitly deleted object. Children are - // deleted implicitly and graphics toolkit isn't notified. - void finalize (const graphics_object& go) - { rep->finalize (go); } - - void finalize (const graphics_handle& h) - { rep->finalize (h); } - - OCTINTERP_API static graphics_toolkit default_toolkit (void); - - static void register_toolkit (const graphics_toolkit& b) - { available_toolkits[b.get_name ()] = b; } - - static void unregister_toolkit (const std::string& name) - { available_toolkits.erase (name); } - - static graphics_toolkit find_toolkit (const std::string& name) - { - const_available_toolkits_iterator p = available_toolkits.find (name); - - if (p != available_toolkits.end ()) - return p->second; - else - return default_toolkit (); - } - - static Cell available_toolkits_list (void) - { - Cell m (1 , available_toolkits.size ()); - const_available_toolkits_iterator p; - int i; - - for (i = 0, p = available_toolkits.begin (); - p != available_toolkits.end (); p++, i++) - m(i) = p->first; - - return m; - } - - private: - base_graphics_toolkit *rep; - - static OCTINTERP_API std::map - available_toolkits; - - typedef std::map::iterator - available_toolkits_iterator; - - typedef std::map::const_iterator - const_available_toolkits_iterator; - }; - - // --------------------------------------------------------------------- - - class base_graphics_object; - - class OCTINTERP_API base_properties - { - public: - base_properties (const std::string& ty = "unknown", - const graphics_handle& mh = graphics_handle (), - const graphics_handle& p = graphics_handle ()); - - virtual ~base_properties (void) { } - - virtual std::string graphics_object_name (void) const { return "unknonwn"; } - - void mark_modified (void); - - void override_defaults (base_graphics_object& obj); - - // Look through DEFAULTS for properties with given CLASS_NAME, and - // apply them to the current object with set (virtual method). - - void set_from_list (base_graphics_object& obj, property_list& defaults); - - void insert_property (const std::string& name, property p) - { - p.set_name (name); - p.set_parent (__myhandle__); - all_props[name] = p; - } - - virtual void set (const caseless_str&, const octave_value&); - - virtual octave_value get (const caseless_str& pname) const; - - virtual octave_value get (const std::string& pname) const - { - return get (caseless_str (pname)); - } - - virtual octave_value get (const char *pname) const - { - return get (caseless_str (pname)); - } - - virtual octave_value get (bool all = false) const; - - virtual property get_property (const caseless_str& pname); - - virtual bool has_property (const caseless_str&) const - { - panic_impossible (); - return false; - } - - bool is_modified (void) const { return is___modified__ (); } - - virtual void remove_child (const graphics_handle& h) - { - if (children.remove_child (h.value ())) - mark_modified (); - } - - virtual void adopt (const graphics_handle& h) - { - children.adopt (h.value ()); - mark_modified (); - } - - virtual graphics_toolkit get_toolkit (void) const; - - virtual Matrix get_boundingbox (bool /*internal*/ = false) const - { return Matrix (1, 4, 0.0); } - - virtual void update_boundingbox (void); - - virtual void update_autopos (const std::string& elem_type); - - virtual void add_listener (const caseless_str&, const octave_value&, - listener_mode = POSTSET); - - virtual void delete_listener (const caseless_str&, const octave_value&, - listener_mode = POSTSET); - - void set_tag (const octave_value& val) { tag = val; } - - void set_parent (const octave_value& val); - - Matrix get_children (void) const - { - return children.get_children (); - } - - Matrix get_all_children (void) const - { - return children.get_all (); - } - - Matrix get_hidden_children (void) const - { - return children.get_hidden (); - } - - void set_modified (const octave_value& val) { set___modified__ (val); } - - void set___modified__ (const octave_value& val) { __modified__ = val; } - - void reparent (const graphics_handle& new_parent) { parent = new_parent; } - - // Update data limits for AXIS_TYPE (xdata, ydata, etc.) in the parent - // axes object. - - virtual void update_axis_limits (const std::string& axis_type) const; - - virtual void update_axis_limits (const std::string& axis_type, - const graphics_handle& h) const; - - virtual void delete_children (bool clear = false) - { - children.delete_children (clear); - } - - static property_list::pval_map_type factory_defaults (void); - - // FIXME -- these functions should be generated automatically by the - // genprops.awk script. - // - // EMIT_BASE_PROPERTIES_GET_FUNCTIONS - - virtual octave_value get_xlim (void) const { return octave_value (); } - virtual octave_value get_ylim (void) const { return octave_value (); } - virtual octave_value get_zlim (void) const { return octave_value (); } - virtual octave_value get_clim (void) const { return octave_value (); } - virtual octave_value get_alim (void) const { return octave_value (); } - - virtual bool is_xliminclude (void) const { return false; } - virtual bool is_yliminclude (void) const { return false; } - virtual bool is_zliminclude (void) const { return false; } - virtual bool is_climinclude (void) const { return false; } - virtual bool is_aliminclude (void) const { return false; } - - bool is_handle_visible (void) const - { - return ! handlevisibility.is ("off"); - } - - std::set dynamic_property_names (void) const; - - bool has_dynamic_property (const std::string& pname); - - protected: - std::set dynamic_properties; - - void set_dynamic (const caseless_str& pname, const octave_value& val); - - octave_value get_dynamic (const caseless_str& pname) const; - - octave_value get_dynamic (bool all = false) const; - - property get_property_dynamic (const caseless_str& pname); - - public: - - - static std::set core_property_names (void); - - static bool has_core_property (const caseless_str& pname); - - std::set all_property_names (void) const; - - protected: - - bool_property beingdeleted; - radio_property busyaction; - callback_property buttondownfcn; - children_property children; - bool_property clipping; - callback_property createfcn; - callback_property deletefcn; - radio_property handlevisibility; - bool_property hittest; - bool_property interruptible; - handle_property parent; - bool_property selected; - bool_property selectionhighlight; - string_property tag; - string_property type; - any_property userdata; - bool_property visible; - bool_property __modified__; - graphics_handle __myhandle__; - handle_property uicontextmenu; - - public: - - enum - { - ID_BEINGDELETED = 0, - ID_BUSYACTION = 1, - ID_BUTTONDOWNFCN = 2, - ID_CHILDREN = 3, - ID_CLIPPING = 4, - ID_CREATEFCN = 5, - ID_DELETEFCN = 6, - ID_HANDLEVISIBILITY = 7, - ID_HITTEST = 8, - ID_INTERRUPTIBLE = 9, - ID_PARENT = 10, - ID_SELECTED = 11, - ID_SELECTIONHIGHLIGHT = 12, - ID_TAG = 13, - ID_TYPE = 14, - ID_USERDATA = 15, - ID_VISIBLE = 16, - ID___MODIFIED__ = 17, - ID___MYHANDLE__ = 18, - ID_UICONTEXTMENU = 19 - }; - - bool is_beingdeleted (void) const { return beingdeleted.is_on (); } - std::string get_beingdeleted (void) const { return beingdeleted.current_value (); } - - bool busyaction_is (const std::string& v) const { return busyaction.is (v); } - std::string get_busyaction (void) const { return busyaction.current_value (); } - - void execute_buttondownfcn (const octave_value& data = octave_value ()) const { buttondownfcn.execute (data); } - octave_value get_buttondownfcn (void) const { return buttondownfcn.get (); } - - bool is_clipping (void) const { return clipping.is_on (); } - std::string get_clipping (void) const { return clipping.current_value (); } - - void execute_createfcn (const octave_value& data = octave_value ()) const { createfcn.execute (data); } - octave_value get_createfcn (void) const { return createfcn.get (); } - - void execute_deletefcn (const octave_value& data = octave_value ()) const { deletefcn.execute (data); } - octave_value get_deletefcn (void) const { return deletefcn.get (); } - - bool handlevisibility_is (const std::string& v) const { return handlevisibility.is (v); } - std::string get_handlevisibility (void) const { return handlevisibility.current_value (); } - - bool is_hittest (void) const { return hittest.is_on (); } - std::string get_hittest (void) const { return hittest.current_value (); } - - bool is_interruptible (void) const { return interruptible.is_on (); } - std::string get_interruptible (void) const { return interruptible.current_value (); } - - graphics_handle get_parent (void) const { return parent.handle_value (); } - - bool is_selected (void) const { return selected.is_on (); } - std::string get_selected (void) const { return selected.current_value (); } - - bool is_selectionhighlight (void) const { return selectionhighlight.is_on (); } - std::string get_selectionhighlight (void) const { return selectionhighlight.current_value (); } - - std::string get_tag (void) const { return tag.string_value (); } - - std::string get_type (void) const { return type.string_value (); } - - octave_value get_userdata (void) const { return userdata.get (); } - - bool is_visible (void) const { return visible.is_on (); } - std::string get_visible (void) const { return visible.current_value (); } - - bool is___modified__ (void) const { return __modified__.is_on (); } - std::string get___modified__ (void) const { return __modified__.current_value (); } - - graphics_handle get___myhandle__ (void) const { return __myhandle__; } - - graphics_handle get_uicontextmenu (void) const { return uicontextmenu.handle_value (); } - - - void set_beingdeleted (const octave_value& val) - { - if (! error_state) - { - if (beingdeleted.set (val, true)) - { - mark_modified (); - } - } - } - - void set_busyaction (const octave_value& val) - { - if (! error_state) - { - if (busyaction.set (val, true)) - { - mark_modified (); - } - } - } - - void set_buttondownfcn (const octave_value& val) - { - if (! error_state) - { - if (buttondownfcn.set (val, true)) - { - mark_modified (); - } - } - } - - void set_children (const octave_value& val) - { - if (! error_state) - { - if (children.set (val, true)) - { - mark_modified (); - } - } - } - - void set_clipping (const octave_value& val) - { - if (! error_state) - { - if (clipping.set (val, true)) - { - mark_modified (); - } - } - } - - void set_createfcn (const octave_value& val) - { - if (! error_state) - { - if (createfcn.set (val, true)) - { - mark_modified (); - } - } - } - - void set_deletefcn (const octave_value& val) - { - if (! error_state) - { - if (deletefcn.set (val, true)) - { - mark_modified (); - } - } - } - - void set_handlevisibility (const octave_value& val) - { - if (! error_state) - { - if (handlevisibility.set (val, true)) - { - mark_modified (); - } - } - } - - void set_hittest (const octave_value& val) - { - if (! error_state) - { - if (hittest.set (val, true)) - { - mark_modified (); - } - } - } - - void set_interruptible (const octave_value& val) - { - if (! error_state) - { - if (interruptible.set (val, true)) - { - mark_modified (); - } - } - } - - void set_selected (const octave_value& val) - { - if (! error_state) - { - if (selected.set (val, true)) - { - mark_modified (); - } - } - } - - void set_selectionhighlight (const octave_value& val) - { - if (! error_state) - { - if (selectionhighlight.set (val, true)) - { - mark_modified (); - } - } - } - - void set_userdata (const octave_value& val) - { - if (! error_state) - { - if (userdata.set (val, true)) - { - mark_modified (); - } - } - } - - void set_visible (const octave_value& val) - { - if (! error_state) - { - if (visible.set (val, true)) - { - mark_modified (); - } - } - } - - void set_uicontextmenu (const octave_value& val) - { - if (! error_state) - { - if (uicontextmenu.set (val, true)) - { - mark_modified (); - } - } - } - - - protected: - struct cmp_caseless_str - { - bool operator () (const caseless_str &a, const caseless_str &b) const - { - std::string a1 = a; - std::transform (a1.begin (), a1.end (), a1.begin (), tolower); - std::string b1 = b; - std::transform (b1.begin (), b1.end (), b1.begin (), tolower); - - return a1 < b1; - } - }; - - std::map all_props; - - protected: - void insert_static_property (const std::string& name, base_property& p) - { insert_property (name, property (&p, true)); } - - virtual void init (void) { } - }; - - class OCTINTERP_API base_graphics_object - { - public: - friend class graphics_object; - - base_graphics_object (void) : count (1) { } - - virtual ~base_graphics_object (void) { } - - virtual void mark_modified (void) - { - if (valid_object ()) - get_properties ().mark_modified (); - else - error ("base_graphics_object::mark_modified: invalid graphics object"); - } - - virtual void override_defaults (base_graphics_object& obj) - { - if (valid_object ()) - get_properties ().override_defaults (obj); - else - error ("base_graphics_object::override_defaults: invalid graphics object"); - } - - virtual void set_from_list (property_list& plist) - { - if (valid_object ()) - get_properties ().set_from_list (*this, plist); - else - error ("base_graphics_object::set_from_list: invalid graphics object"); - } - - virtual void set (const caseless_str& pname, const octave_value& pval) - { - if (valid_object ()) - get_properties ().set (pname, pval); - else - error ("base_graphics_object::set: invalid graphics object"); - } - - virtual void set_defaults (const std::string&) - { - error ("base_graphics_object::set_defaults: invalid graphics object"); - } - - virtual octave_value get (bool all = false) const - { - if (valid_object ()) - return get_properties ().get (all); - else - { - error ("base_graphics_object::get: invalid graphics object"); - return octave_value (); - } - } - - virtual octave_value get (const caseless_str& pname) const - { - if (valid_object ()) - return get_properties ().get (pname); - else - { - error ("base_graphics_object::get: invalid graphics object"); - return octave_value (); - } - } - - virtual octave_value get_default (const caseless_str&) const; - - virtual octave_value get_factory_default (const caseless_str&) const; - - virtual octave_value get_defaults (void) const - { - error ("base_graphics_object::get_defaults: invalid graphics object"); - return octave_value (); - } - - virtual octave_value get_factory_defaults (void) const - { - error ("base_graphics_object::get_factory_defaults: invalid graphics object"); - return octave_value (); - } - - virtual std::string values_as_string (void); - - virtual octave_scalar_map values_as_struct (void); - - virtual graphics_handle get_parent (void) const - { - if (valid_object ()) - return get_properties ().get_parent (); - else - { - error ("base_graphics_object::get_parent: invalid graphics object"); - return graphics_handle (); - } - } - - graphics_handle get_handle (void) const - { - if (valid_object ()) - return get_properties ().get___myhandle__ (); - else - { - error ("base_graphics_object::get_handle: invalid graphics object"); - return graphics_handle (); - } - } - - virtual void remove_child (const graphics_handle& h) - { - if (valid_object ()) - get_properties ().remove_child (h); - else - error ("base_graphics_object::remove_child: invalid graphics object"); - } - - virtual void adopt (const graphics_handle& h) - { - if (valid_object ()) - get_properties ().adopt (h); - else - error ("base_graphics_object::adopt: invalid graphics object"); - } - - virtual void reparent (const graphics_handle& np) - { - if (valid_object ()) - get_properties ().reparent (np); - else - error ("base_graphics_object::reparent: invalid graphics object"); - } - - virtual void defaults (void) const - { - if (valid_object ()) - { - std::string msg = (type () + "::defaults"); - gripe_not_implemented (msg.c_str ()); - } - else - error ("base_graphics_object::default: invalid graphics object"); - } - - virtual base_properties& get_properties (void) - { - static base_properties properties; - error ("base_graphics_object::get_properties: invalid graphics object"); - return properties; - } - - virtual const base_properties& get_properties (void) const - { - static base_properties properties; - error ("base_graphics_object::get_properties: invalid graphics object"); - return properties; - } - - virtual void update_axis_limits (const std::string& axis_type); - - virtual void update_axis_limits (const std::string& axis_type, - const graphics_handle& h); - - virtual bool valid_object (void) const { return false; } - - virtual std::string type (void) const - { - return (valid_object () ? get_properties ().graphics_object_name () - : "unknown"); - } - - bool isa (const std::string& go_name) const - { - return type () == go_name; - } - - virtual graphics_toolkit get_toolkit (void) const - { - if (valid_object ()) - return get_properties ().get_toolkit (); - else - { - error ("base_graphics_object::get_toolkit: invalid graphics object"); - return graphics_toolkit (); - } - } - - virtual void add_property_listener (const std::string& nm, - const octave_value& v, - listener_mode mode = POSTSET) - { - if (valid_object ()) - get_properties ().add_listener (nm, v, mode); - } - - virtual void delete_property_listener (const std::string& nm, - const octave_value& v, - listener_mode mode = POSTSET) - { - if (valid_object ()) - get_properties ().delete_listener (nm, v, mode); - } - - virtual void remove_all_listeners (void); - - virtual void reset_default_properties (void) - { - if (valid_object ()) - { - std::string msg = (type () + "::reset_default_properties"); - gripe_not_implemented (msg.c_str ()); - } - else - error ("base_graphics_object::default: invalid graphics object"); - } - - protected: - // A reference count. - int count; - - // No copying! - - base_graphics_object (const base_graphics_object&); - - base_graphics_object& operator = (const base_graphics_object&); - }; - - class OCTINTERP_API graphics_object - { - public: - graphics_object (void) : rep (new base_graphics_object ()) { } - - graphics_object (base_graphics_object *new_rep) - : rep (new_rep) { } - - graphics_object (const graphics_object& obj) : rep (obj.rep) - { - rep->count++; - } - - graphics_object& operator = (const graphics_object& obj) - { - if (rep != obj.rep) - { - if (--rep->count == 0) - delete rep; - - rep = obj.rep; - rep->count++; - } - - return *this; - } - - ~graphics_object (void) - { - if (--rep->count == 0) - delete rep; - } - - void mark_modified (void) { rep->mark_modified (); } - - void override_defaults (base_graphics_object& obj) - { - rep->override_defaults (obj); - } - - void set_from_list (property_list& plist) { rep->set_from_list (plist); } - - void set (const caseless_str& name, const octave_value& val) - { - rep->set (name, val); - } - - void set (const octave_value_list& args); - - void set (const Array& names, const Cell& values, - octave_idx_type row); - - void set (const octave_map& m); - - void set_value_or_default (const caseless_str& name, - const octave_value& val); - - void set_defaults (const std::string& mode) { rep->set_defaults (mode); } - - octave_value get (bool all = false) const { return rep->get (all); } - - octave_value get (const caseless_str& name) const - { - return name.compare ("default") - ? get_defaults () - : (name.compare ("factory") - ? get_factory_defaults () : rep->get (name)); - } - - octave_value get (const std::string& name) const - { - return get (caseless_str (name)); - } - - octave_value get (const char *name) const - { - return get (caseless_str (name)); - } - - octave_value get_default (const caseless_str& name) const - { - return rep->get_default (name); - } - - octave_value get_factory_default (const caseless_str& name) const - { - return rep->get_factory_default (name); - } - - octave_value get_defaults (void) const { return rep->get_defaults (); } - - octave_value get_factory_defaults (void) const - { - return rep->get_factory_defaults (); - } - - std::string values_as_string (void) { return rep->values_as_string (); } - - octave_map values_as_struct (void) { return rep->values_as_struct (); } - - graphics_handle get_parent (void) const { return rep->get_parent (); } - - graphics_handle get_handle (void) const { return rep->get_handle (); } - - graphics_object get_ancestor (const std::string& type) const; - - void remove_child (const graphics_handle& h) { rep->remove_child (h); } - - void adopt (const graphics_handle& h) { rep->adopt (h); } - - void reparent (const graphics_handle& h) { rep->reparent (h); } - - void defaults (void) const { rep->defaults (); } - - bool isa (const std::string& go_name) const { return rep->isa (go_name); } - - base_properties& get_properties (void) { return rep->get_properties (); } - - const base_properties& get_properties (void) const - { - return rep->get_properties (); - } - - void update_axis_limits (const std::string& axis_type) - { - rep->update_axis_limits (axis_type); - } - - void update_axis_limits (const std::string& axis_type, - const graphics_handle& h) - { - rep->update_axis_limits (axis_type, h); - } - - bool valid_object (void) const { return rep->valid_object (); } - - std::string type (void) const { return rep->type (); } - - operator bool (void) const { return rep->valid_object (); } - - // FIXME -- these functions should be generated automatically by the - // genprops.awk script. - // - // EMIT_GRAPHICS_OBJECT_GET_FUNCTIONS - - octave_value get_xlim (void) const - { return get_properties ().get_xlim (); } - - octave_value get_ylim (void) const - { return get_properties ().get_ylim (); } - - octave_value get_zlim (void) const - { return get_properties ().get_zlim (); } - - octave_value get_clim (void) const - { return get_properties ().get_clim (); } - - octave_value get_alim (void) const - { return get_properties ().get_alim (); } - - bool is_xliminclude (void) const - { return get_properties ().is_xliminclude (); } - - bool is_yliminclude (void) const - { return get_properties ().is_yliminclude (); } - - bool is_zliminclude (void) const - { return get_properties ().is_zliminclude (); } - - bool is_climinclude (void) const - { return get_properties ().is_climinclude (); } - - bool is_aliminclude (void) const - { return get_properties ().is_aliminclude (); } - - bool is_handle_visible (void) const - { return get_properties ().is_handle_visible (); } - - graphics_toolkit get_toolkit (void) const { return rep->get_toolkit (); } - - void add_property_listener (const std::string& nm, const octave_value& v, - listener_mode mode = POSTSET) - { rep->add_property_listener (nm, v, mode); } - - void delete_property_listener (const std::string& nm, const octave_value& v, - listener_mode mode = POSTSET) - { rep->delete_property_listener (nm, v, mode); } - - void reset_default_properties (void) - { rep->reset_default_properties (); } - - private: - base_graphics_object *rep; - }; - - // --------------------------------------------------------------------- - - class OCTINTERP_API root_figure : public base_graphics_object - { - public: - class OCTINTERP_API properties : public base_properties - { - public: - void remove_child (const graphics_handle& h); - - // See the genprops.awk script for an explanation of the - // properties declarations. - - // FIXME -- it seems strange to me that the diary, diaryfile, - // echo, format, formatspacing, language, and recursionlimit - // properties are here. WTF do they have to do with graphics? - // Also note that these properties (and the monitorpositions, - // pointerlocation, and pointerwindow properties) are not yet used - // by Octave, so setting them will have no effect, and changes - // made elswhere (say, the diary or format functions) will not - // cause these properties to be updated. - - public: - properties (const graphics_handle& mh, const graphics_handle& p); - - ~properties (void) { } - - void set (const caseless_str& pname, const octave_value& val); - - octave_value get (bool all = false) const; - - octave_value get (const caseless_str& pname) const; - - octave_value get (const std::string& pname) const - { - return get (caseless_str (pname)); - } - - octave_value get (const char *pname) const - { - return get (caseless_str (pname)); - } - - property get_property (const caseless_str& pname); - - std::string graphics_object_name (void) const { return go_name; } - - static property_list::pval_map_type factory_defaults (void); - - private: - static std::string go_name; - - public: - - - static std::set core_property_names (void); - - static bool has_core_property (const caseless_str& pname); - - std::set all_property_names (void) const; - - bool has_property (const caseless_str& pname) const; - - private: - - handle_property callbackobject; - array_property commandwindowsize; - handle_property currentfigure; - bool_property diary; - string_property diaryfile; - bool_property echo; - radio_property format; - radio_property formatspacing; - string_property language; - array_property monitorpositions; - array_property pointerlocation; - double_property pointerwindow; - double_property recursionlimit; - double_property screendepth; - double_property screenpixelsperinch; - array_property screensize; - bool_property showhiddenhandles; - radio_property units; - - public: - - enum - { - ID_CALLBACKOBJECT = 1000, - ID_COMMANDWINDOWSIZE = 1001, - ID_CURRENTFIGURE = 1002, - ID_DIARY = 1003, - ID_DIARYFILE = 1004, - ID_ECHO = 1005, - ID_FORMAT = 1006, - ID_FORMATSPACING = 1007, - ID_LANGUAGE = 1008, - ID_MONITORPOSITIONS = 1009, - ID_POINTERLOCATION = 1010, - ID_POINTERWINDOW = 1011, - ID_RECURSIONLIMIT = 1012, - ID_SCREENDEPTH = 1013, - ID_SCREENPIXELSPERINCH = 1014, - ID_SCREENSIZE = 1015, - ID_SHOWHIDDENHANDLES = 1016, - ID_UNITS = 1017 - }; - - graphics_handle get_callbackobject (void) const { return callbackobject.handle_value (); } - - octave_value get_commandwindowsize (void) const { return commandwindowsize.get (); } - - graphics_handle get_currentfigure (void) const { return currentfigure.handle_value (); } - - bool is_diary (void) const { return diary.is_on (); } - std::string get_diary (void) const { return diary.current_value (); } - - std::string get_diaryfile (void) const { return diaryfile.string_value (); } - - bool is_echo (void) const { return echo.is_on (); } - std::string get_echo (void) const { return echo.current_value (); } - - bool format_is (const std::string& v) const { return format.is (v); } - std::string get_format (void) const { return format.current_value (); } - - bool formatspacing_is (const std::string& v) const { return formatspacing.is (v); } - std::string get_formatspacing (void) const { return formatspacing.current_value (); } - - std::string get_language (void) const { return language.string_value (); } - - octave_value get_monitorpositions (void) const { return monitorpositions.get (); } - - octave_value get_pointerlocation (void) const { return pointerlocation.get (); } - - double get_pointerwindow (void) const { return pointerwindow.double_value (); } - - double get_recursionlimit (void) const { return recursionlimit.double_value (); } - - double get_screendepth (void) const { return screendepth.double_value (); } - - double get_screenpixelsperinch (void) const { return screenpixelsperinch.double_value (); } - - octave_value get_screensize (void) const { return screensize.get (); } - - bool is_showhiddenhandles (void) const { return showhiddenhandles.is_on (); } - std::string get_showhiddenhandles (void) const { return showhiddenhandles.current_value (); } - - bool units_is (const std::string& v) const { return units.is (v); } - std::string get_units (void) const { return units.current_value (); } - - - void set_callbackobject (const octave_value& val); - - void set_commandwindowsize (const octave_value& val) - { - if (! error_state) - { - if (commandwindowsize.set (val, true)) - { - mark_modified (); - } - } - } - - void set_currentfigure (const octave_value& val); - - void set_diary (const octave_value& val) - { - if (! error_state) - { - if (diary.set (val, true)) - { - mark_modified (); - } - } - } - - void set_diaryfile (const octave_value& val) - { - if (! error_state) - { - if (diaryfile.set (val, true)) - { - mark_modified (); - } - } - } - - void set_echo (const octave_value& val) - { - if (! error_state) - { - if (echo.set (val, true)) - { - mark_modified (); - } - } - } - - void set_format (const octave_value& val) - { - if (! error_state) - { - if (format.set (val, true)) - { - mark_modified (); - } - } - } - - void set_formatspacing (const octave_value& val) - { - if (! error_state) - { - if (formatspacing.set (val, true)) - { - mark_modified (); - } - } - } - - void set_language (const octave_value& val) - { - if (! error_state) - { - if (language.set (val, true)) - { - mark_modified (); - } - } - } - - void set_monitorpositions (const octave_value& val) - { - if (! error_state) - { - if (monitorpositions.set (val, true)) - { - mark_modified (); - } - } - } - - void set_pointerlocation (const octave_value& val) - { - if (! error_state) - { - if (pointerlocation.set (val, true)) - { - mark_modified (); - } - } - } - - void set_pointerwindow (const octave_value& val) - { - if (! error_state) - { - if (pointerwindow.set (val, true)) - { - mark_modified (); - } - } - } - - void set_recursionlimit (const octave_value& val) - { - if (! error_state) - { - if (recursionlimit.set (val, true)) - { - mark_modified (); - } - } - } - - void set_screendepth (const octave_value& val) - { - if (! error_state) - { - if (screendepth.set (val, true)) - { - mark_modified (); - } - } - } - - void set_screenpixelsperinch (const octave_value& val) - { - if (! error_state) - { - if (screenpixelsperinch.set (val, true)) - { - mark_modified (); - } - } - } - - void set_screensize (const octave_value& val) - { - if (! error_state) - { - if (screensize.set (val, true)) - { - mark_modified (); - } - } - } - - void set_showhiddenhandles (const octave_value& val) - { - if (! error_state) - { - if (showhiddenhandles.set (val, true)) - { - mark_modified (); - } - } - } - - void set_units (const octave_value& val) - { - if (! error_state) - { - if (units.set (val, true)) - { - update_units (); - mark_modified (); - } - } - } - - void update_units (void); - - - private: - std::list cbo_stack; - }; - - private: - properties xproperties; - - public: - - root_figure (void) : xproperties (0, graphics_handle ()), default_properties () { } - - ~root_figure (void) { xproperties.delete_children (); } - - void mark_modified (void) { } - - void override_defaults (base_graphics_object& obj) - { - // Now override with our defaults. If the default_properties - // list includes the properties for all defaults (line, - // surface, etc.) then we don't have to know the type of OBJ - // here, we just call its set function and let it decide which - // properties from the list to use. - obj.set_from_list (default_properties); - } - - void set (const caseless_str& name, const octave_value& value) - { - if (name.compare ("default", 7)) - // strip "default", pass rest to function that will - // parse the remainder and add the element to the - // default_properties map. - default_properties.set (name.substr (7), value); - else - xproperties.set (name, value); - } - - octave_value get (const caseless_str& name) const - { - octave_value retval; - - if (name.compare ("default", 7)) - return get_default (name.substr (7)); - else if (name.compare ("factory", 7)) - return get_factory_default (name.substr (7)); - else - retval = xproperties.get (name); - - return retval; - } - - octave_value get_default (const caseless_str& name) const - { - octave_value retval = default_properties.lookup (name); - - if (retval.is_undefined ()) - { - // no default property found, use factory default - retval = factory_properties.lookup (name); - - if (retval.is_undefined ()) - error ("get: invalid default property `%s'", name.c_str ()); - } - - return retval; - } - - octave_value get_factory_default (const caseless_str& name) const - { - octave_value retval = factory_properties.lookup (name); - - if (retval.is_undefined ()) - error ("get: invalid factory default property `%s'", name.c_str ()); - - return retval; - } - - octave_value get_defaults (void) const - { - return default_properties.as_struct ("default"); - } - - octave_value get_factory_defaults (void) const - { - return factory_properties.as_struct ("factory"); - } - - base_properties& get_properties (void) { return xproperties; } - - const base_properties& get_properties (void) const { return xproperties; } - - bool valid_object (void) const { return true; } - - void reset_default_properties (void); - - private: - property_list default_properties; - - static property_list factory_properties; - - static property_list::plist_map_type init_factory_properties (void); - }; - - // --------------------------------------------------------------------- - - class OCTINTERP_API figure : public base_graphics_object - { - public: - class OCTINTERP_API properties : public base_properties - { - public: - void remove_child (const graphics_handle& h); - - void set_visible (const octave_value& val); - - graphics_toolkit get_toolkit (void) const - { - if (! toolkit) - toolkit = graphics_toolkit::default_toolkit (); - - return toolkit; - } - - void set_toolkit (const graphics_toolkit& b) - { - if (toolkit) - toolkit.finalize (__myhandle__); - toolkit = b; - __graphics_toolkit__ = b.get_name (); - __plot_stream__ = Matrix (); - mark_modified (); - } - - void set___graphics_toolkit__ (const octave_value& val) - { - if (! error_state) - { - if (val.is_string ()) - { - std::string nm = val.string_value (); - graphics_toolkit b = graphics_toolkit::find_toolkit (nm); - if (b.get_name () != nm) - { - error ("set___graphics_toolkit__: invalid graphics toolkit"); - } - else - { - set_toolkit (b); - mark_modified (); - } - } - else - error ("set___graphics_toolkit__ must be a string"); - } - } - - Matrix get_boundingbox (bool internal = false) const; - - void set_boundingbox (const Matrix& bb); - - void update_units (const caseless_str& old_units); - - void update_paperunits (const caseless_str& old_paperunits); - - std::string get_title (void) const; - - // See the genprops.awk script for an explanation of the - // properties declarations. - - public: - properties (const graphics_handle& mh, const graphics_handle& p); - - ~properties (void) { } - - void set (const caseless_str& pname, const octave_value& val); - - octave_value get (bool all = false) const; - - octave_value get (const caseless_str& pname) const; - - octave_value get (const std::string& pname) const - { - return get (caseless_str (pname)); - } - - octave_value get (const char *pname) const - { - return get (caseless_str (pname)); - } - - property get_property (const caseless_str& pname); - - std::string graphics_object_name (void) const { return go_name; } - - static property_list::pval_map_type factory_defaults (void); - - private: - static std::string go_name; - - public: - - - static std::set core_property_names (void); - - static bool has_core_property (const caseless_str& pname); - - std::set all_property_names (void) const; - - bool has_property (const caseless_str& pname) const; - - private: - - any_property __plot_stream__; - bool_property __enhanced__; - radio_property nextplot; - callback_property closerequestfcn; - handle_property currentaxes; - array_property colormap; - radio_property paperorientation; - color_property color; - array_property alphamap; - string_property currentcharacter; - handle_property currentobject; - array_property currentpoint; - bool_property dockcontrols; - bool_property doublebuffer; - string_property filename; - bool_property integerhandle; - bool_property inverthardcopy; - callback_property keypressfcn; - callback_property keyreleasefcn; - radio_property menubar; - double_property mincolormap; - string_property name; - bool_property numbertitle; - radio_property paperunits; - array_property paperposition; - radio_property paperpositionmode; - array_property papersize; - radio_property papertype; - radio_property pointer; - array_property pointershapecdata; - array_property pointershapehotspot; - array_property position; - radio_property renderer; - radio_property renderermode; - bool_property resize; - callback_property resizefcn; - radio_property selectiontype; - radio_property toolbar; - radio_property units; - callback_property windowbuttondownfcn; - callback_property windowbuttonmotionfcn; - callback_property windowbuttonupfcn; - callback_property windowbuttonwheelfcn; - radio_property windowstyle; - string_property wvisual; - radio_property wvisualmode; - string_property xdisplay; - string_property xvisual; - radio_property xvisualmode; - callback_property buttondownfcn; - string_property __graphics_toolkit__; - - public: - - enum - { - ID___PLOT_STREAM__ = 2000, - ID___ENHANCED__ = 2001, - ID_NEXTPLOT = 2002, - ID_CLOSEREQUESTFCN = 2003, - ID_CURRENTAXES = 2004, - ID_COLORMAP = 2005, - ID_PAPERORIENTATION = 2006, - ID_COLOR = 2007, - ID_ALPHAMAP = 2008, - ID_CURRENTCHARACTER = 2009, - ID_CURRENTOBJECT = 2010, - ID_CURRENTPOINT = 2011, - ID_DOCKCONTROLS = 2012, - ID_DOUBLEBUFFER = 2013, - ID_FILENAME = 2014, - ID_INTEGERHANDLE = 2015, - ID_INVERTHARDCOPY = 2016, - ID_KEYPRESSFCN = 2017, - ID_KEYRELEASEFCN = 2018, - ID_MENUBAR = 2019, - ID_MINCOLORMAP = 2020, - ID_NAME = 2021, - ID_NUMBERTITLE = 2022, - ID_PAPERUNITS = 2023, - ID_PAPERPOSITION = 2024, - ID_PAPERPOSITIONMODE = 2025, - ID_PAPERSIZE = 2026, - ID_PAPERTYPE = 2027, - ID_POINTER = 2028, - ID_POINTERSHAPECDATA = 2029, - ID_POINTERSHAPEHOTSPOT = 2030, - ID_POSITION = 2031, - ID_RENDERER = 2032, - ID_RENDERERMODE = 2033, - ID_RESIZE = 2034, - ID_RESIZEFCN = 2035, - ID_SELECTIONTYPE = 2036, - ID_TOOLBAR = 2037, - ID_UNITS = 2038, - ID_WINDOWBUTTONDOWNFCN = 2039, - ID_WINDOWBUTTONMOTIONFCN = 2040, - ID_WINDOWBUTTONUPFCN = 2041, - ID_WINDOWBUTTONWHEELFCN = 2042, - ID_WINDOWSTYLE = 2043, - ID_WVISUAL = 2044, - ID_WVISUALMODE = 2045, - ID_XDISPLAY = 2046, - ID_XVISUAL = 2047, - ID_XVISUALMODE = 2048, - ID_BUTTONDOWNFCN = 2049, - ID___GRAPHICS_TOOLKIT__ = 2050 - }; - - octave_value get___plot_stream__ (void) const { return __plot_stream__.get (); } - - bool is___enhanced__ (void) const { return __enhanced__.is_on (); } - std::string get___enhanced__ (void) const { return __enhanced__.current_value (); } - - bool nextplot_is (const std::string& v) const { return nextplot.is (v); } - std::string get_nextplot (void) const { return nextplot.current_value (); } - - void execute_closerequestfcn (const octave_value& data = octave_value ()) const { closerequestfcn.execute (data); } - octave_value get_closerequestfcn (void) const { return closerequestfcn.get (); } - - graphics_handle get_currentaxes (void) const { return currentaxes.handle_value (); } - - octave_value get_colormap (void) const { return colormap.get (); } - - bool paperorientation_is (const std::string& v) const { return paperorientation.is (v); } - std::string get_paperorientation (void) const { return paperorientation.current_value (); } - - bool color_is_rgb (void) const { return color.is_rgb (); } - bool color_is (const std::string& v) const { return color.is (v); } - Matrix get_color_rgb (void) const { return (color.is_rgb () ? color.rgb () : Matrix ()); } - octave_value get_color (void) const { return color.get (); } - - octave_value get_alphamap (void) const { return alphamap.get (); } - - std::string get_currentcharacter (void) const { return currentcharacter.string_value (); } - - graphics_handle get_currentobject (void) const { return currentobject.handle_value (); } - - octave_value get_currentpoint (void) const { return currentpoint.get (); } - - bool is_dockcontrols (void) const { return dockcontrols.is_on (); } - std::string get_dockcontrols (void) const { return dockcontrols.current_value (); } - - bool is_doublebuffer (void) const { return doublebuffer.is_on (); } - std::string get_doublebuffer (void) const { return doublebuffer.current_value (); } - - std::string get_filename (void) const { return filename.string_value (); } - - bool is_integerhandle (void) const { return integerhandle.is_on (); } - std::string get_integerhandle (void) const { return integerhandle.current_value (); } - - bool is_inverthardcopy (void) const { return inverthardcopy.is_on (); } - std::string get_inverthardcopy (void) const { return inverthardcopy.current_value (); } - - void execute_keypressfcn (const octave_value& data = octave_value ()) const { keypressfcn.execute (data); } - octave_value get_keypressfcn (void) const { return keypressfcn.get (); } - - void execute_keyreleasefcn (const octave_value& data = octave_value ()) const { keyreleasefcn.execute (data); } - octave_value get_keyreleasefcn (void) const { return keyreleasefcn.get (); } - - bool menubar_is (const std::string& v) const { return menubar.is (v); } - std::string get_menubar (void) const { return menubar.current_value (); } - - double get_mincolormap (void) const { return mincolormap.double_value (); } - - std::string get_name (void) const { return name.string_value (); } - - bool is_numbertitle (void) const { return numbertitle.is_on (); } - std::string get_numbertitle (void) const { return numbertitle.current_value (); } - - bool paperunits_is (const std::string& v) const { return paperunits.is (v); } - std::string get_paperunits (void) const { return paperunits.current_value (); } - - octave_value get_paperposition (void) const { return paperposition.get (); } - - bool paperpositionmode_is (const std::string& v) const { return paperpositionmode.is (v); } - std::string get_paperpositionmode (void) const { return paperpositionmode.current_value (); } - - octave_value get_papersize (void) const { return papersize.get (); } - - bool papertype_is (const std::string& v) const { return papertype.is (v); } - std::string get_papertype (void) const { return papertype.current_value (); } - - bool pointer_is (const std::string& v) const { return pointer.is (v); } - std::string get_pointer (void) const { return pointer.current_value (); } - - octave_value get_pointershapecdata (void) const { return pointershapecdata.get (); } - - octave_value get_pointershapehotspot (void) const { return pointershapehotspot.get (); } - - octave_value get_position (void) const { return position.get (); } - - bool renderer_is (const std::string& v) const { return renderer.is (v); } - std::string get_renderer (void) const { return renderer.current_value (); } - - bool renderermode_is (const std::string& v) const { return renderermode.is (v); } - std::string get_renderermode (void) const { return renderermode.current_value (); } - - bool is_resize (void) const { return resize.is_on (); } - std::string get_resize (void) const { return resize.current_value (); } - - void execute_resizefcn (const octave_value& data = octave_value ()) const { resizefcn.execute (data); } - octave_value get_resizefcn (void) const { return resizefcn.get (); } - - bool selectiontype_is (const std::string& v) const { return selectiontype.is (v); } - std::string get_selectiontype (void) const { return selectiontype.current_value (); } - - bool toolbar_is (const std::string& v) const { return toolbar.is (v); } - std::string get_toolbar (void) const { return toolbar.current_value (); } - - bool units_is (const std::string& v) const { return units.is (v); } - std::string get_units (void) const { return units.current_value (); } - - void execute_windowbuttondownfcn (const octave_value& data = octave_value ()) const { windowbuttondownfcn.execute (data); } - octave_value get_windowbuttondownfcn (void) const { return windowbuttondownfcn.get (); } - - void execute_windowbuttonmotionfcn (const octave_value& data = octave_value ()) const { windowbuttonmotionfcn.execute (data); } - octave_value get_windowbuttonmotionfcn (void) const { return windowbuttonmotionfcn.get (); } - - void execute_windowbuttonupfcn (const octave_value& data = octave_value ()) const { windowbuttonupfcn.execute (data); } - octave_value get_windowbuttonupfcn (void) const { return windowbuttonupfcn.get (); } - - void execute_windowbuttonwheelfcn (const octave_value& data = octave_value ()) const { windowbuttonwheelfcn.execute (data); } - octave_value get_windowbuttonwheelfcn (void) const { return windowbuttonwheelfcn.get (); } - - bool windowstyle_is (const std::string& v) const { return windowstyle.is (v); } - std::string get_windowstyle (void) const { return windowstyle.current_value (); } - - std::string get_wvisual (void) const { return wvisual.string_value (); } - - bool wvisualmode_is (const std::string& v) const { return wvisualmode.is (v); } - std::string get_wvisualmode (void) const { return wvisualmode.current_value (); } - - std::string get_xdisplay (void) const { return xdisplay.string_value (); } - - std::string get_xvisual (void) const { return xvisual.string_value (); } - - bool xvisualmode_is (const std::string& v) const { return xvisualmode.is (v); } - std::string get_xvisualmode (void) const { return xvisualmode.current_value (); } - - void execute_buttondownfcn (const octave_value& data = octave_value ()) const { buttondownfcn.execute (data); } - octave_value get_buttondownfcn (void) const { return buttondownfcn.get (); } - - std::string get___graphics_toolkit__ (void) const { return __graphics_toolkit__.string_value (); } - - - void set___plot_stream__ (const octave_value& val) - { - if (! error_state) - { - if (__plot_stream__.set (val, true)) - { - mark_modified (); - } - } - } - - void set___enhanced__ (const octave_value& val) - { - if (! error_state) - { - if (__enhanced__.set (val, true)) - { - mark_modified (); - } - } - } - - void set_nextplot (const octave_value& val) - { - if (! error_state) - { - if (nextplot.set (val, true)) - { - mark_modified (); - } - } - } - - void set_closerequestfcn (const octave_value& val) - { - if (! error_state) - { - if (closerequestfcn.set (val, true)) - { - mark_modified (); - } - } - } - - void set_currentaxes (const octave_value& val); - - void set_colormap (const octave_value& val) - { - if (! error_state) - { - if (colormap.set (val, true)) - { - mark_modified (); - } - } - } - - void set_paperorientation (const octave_value& val) - { - if (! error_state) - { - if (paperorientation.set (val, true)) - { - mark_modified (); - } - } - } - - void set_color (const octave_value& val) - { - if (! error_state) - { - if (color.set (val, true)) - { - mark_modified (); - } - } - } - - void set_alphamap (const octave_value& val) - { - if (! error_state) - { - if (alphamap.set (val, true)) - { - mark_modified (); - } - } - } - - void set_currentcharacter (const octave_value& val) - { - if (! error_state) - { - if (currentcharacter.set (val, true)) - { - mark_modified (); - } - } - } - - void set_currentobject (const octave_value& val) - { - if (! error_state) - { - if (currentobject.set (val, true)) - { - mark_modified (); - } - } - } - - void set_currentpoint (const octave_value& val) - { - if (! error_state) - { - if (currentpoint.set (val, true)) - { - mark_modified (); - } - } - } - - void set_dockcontrols (const octave_value& val) - { - if (! error_state) - { - if (dockcontrols.set (val, true)) - { - mark_modified (); - } - } - } - - void set_doublebuffer (const octave_value& val) - { - if (! error_state) - { - if (doublebuffer.set (val, true)) - { - mark_modified (); - } - } - } - - void set_filename (const octave_value& val) - { - if (! error_state) - { - if (filename.set (val, true)) - { - mark_modified (); - } - } - } - - void set_integerhandle (const octave_value& val) - { - if (! error_state) - { - if (integerhandle.set (val, true)) - { - mark_modified (); - } - } - } - - void set_inverthardcopy (const octave_value& val) - { - if (! error_state) - { - if (inverthardcopy.set (val, true)) - { - mark_modified (); - } - } - } - - void set_keypressfcn (const octave_value& val) - { - if (! error_state) - { - if (keypressfcn.set (val, true)) - { - mark_modified (); - } - } - } - - void set_keyreleasefcn (const octave_value& val) - { - if (! error_state) - { - if (keyreleasefcn.set (val, true)) - { - mark_modified (); - } - } - } - - void set_menubar (const octave_value& val) - { - if (! error_state) - { - if (menubar.set (val, true)) - { - mark_modified (); - } - } - } - - void set_mincolormap (const octave_value& val) - { - if (! error_state) - { - if (mincolormap.set (val, true)) - { - mark_modified (); - } - } - } - - void set_name (const octave_value& val) - { - if (! error_state) - { - if (name.set (val, true)) - { - mark_modified (); - } - } - } - - void set_numbertitle (const octave_value& val) - { - if (! error_state) - { - if (numbertitle.set (val, true)) - { - mark_modified (); - } - } - } - - void set_paperunits (const octave_value& val); - - void set_paperposition (const octave_value& val) - { - if (! error_state) - { - if (paperposition.set (val, true)) - { - mark_modified (); - } - } - } - - void set_paperpositionmode (const octave_value& val) - { - if (! error_state) - { - if (paperpositionmode.set (val, true)) - { - mark_modified (); - } - } - } - - void set_papersize (const octave_value& val) - { - if (! error_state) - { - if (papersize.set (val, true)) - { - update_papersize (); - mark_modified (); - } - } - } - - void update_papersize (void); - - void set_papertype (const octave_value& val); - - void update_papertype (void); - - void set_pointer (const octave_value& val) - { - if (! error_state) - { - if (pointer.set (val, true)) - { - mark_modified (); - } - } - } - - void set_pointershapecdata (const octave_value& val) - { - if (! error_state) - { - if (pointershapecdata.set (val, true)) - { - mark_modified (); - } - } - } - - void set_pointershapehotspot (const octave_value& val) - { - if (! error_state) - { - if (pointershapehotspot.set (val, true)) - { - mark_modified (); - } - } - } - - void set_position (const octave_value& val); - - void set_renderer (const octave_value& val) - { - if (! error_state) - { - if (renderer.set (val, true)) - { - mark_modified (); - } - } - } - - void set_renderermode (const octave_value& val) - { - if (! error_state) - { - if (renderermode.set (val, true)) - { - mark_modified (); - } - } - } - - void set_resize (const octave_value& val) - { - if (! error_state) - { - if (resize.set (val, true)) - { - mark_modified (); - } - } - } - - void set_resizefcn (const octave_value& val) - { - if (! error_state) - { - if (resizefcn.set (val, true)) - { - mark_modified (); - } - } - } - - void set_selectiontype (const octave_value& val) - { - if (! error_state) - { - if (selectiontype.set (val, true)) - { - mark_modified (); - } - } - } - - void set_toolbar (const octave_value& val) - { - if (! error_state) - { - if (toolbar.set (val, true)) - { - mark_modified (); - } - } - } - - void set_units (const octave_value& val); - - void set_windowbuttondownfcn (const octave_value& val) - { - if (! error_state) - { - if (windowbuttondownfcn.set (val, true)) - { - mark_modified (); - } - } - } - - void set_windowbuttonmotionfcn (const octave_value& val) - { - if (! error_state) - { - if (windowbuttonmotionfcn.set (val, true)) - { - mark_modified (); - } - } - } - - void set_windowbuttonupfcn (const octave_value& val) - { - if (! error_state) - { - if (windowbuttonupfcn.set (val, true)) - { - mark_modified (); - } - } - } - - void set_windowbuttonwheelfcn (const octave_value& val) - { - if (! error_state) - { - if (windowbuttonwheelfcn.set (val, true)) - { - mark_modified (); - } - } - } - - void set_windowstyle (const octave_value& val) - { - if (! error_state) - { - if (windowstyle.set (val, true)) - { - mark_modified (); - } - } - } - - void set_wvisual (const octave_value& val) - { - if (! error_state) - { - if (wvisual.set (val, true)) - { - mark_modified (); - } - } - } - - void set_wvisualmode (const octave_value& val) - { - if (! error_state) - { - if (wvisualmode.set (val, true)) - { - mark_modified (); - } - } - } - - void set_xdisplay (const octave_value& val) - { - if (! error_state) - { - if (xdisplay.set (val, true)) - { - mark_modified (); - } - } - } - - void set_xvisual (const octave_value& val) - { - if (! error_state) - { - if (xvisual.set (val, true)) - { - mark_modified (); - } - } - } - - void set_xvisualmode (const octave_value& val) - { - if (! error_state) - { - if (xvisualmode.set (val, true)) - { - mark_modified (); - } - } - } - - void set_buttondownfcn (const octave_value& val) - { - if (! error_state) - { - if (buttondownfcn.set (val, true)) - { - mark_modified (); - } - } - } - - - protected: - void init (void) - { - colormap.add_constraint (dim_vector (-1, 3)); - alphamap.add_constraint (dim_vector (-1, 1)); - paperposition.add_constraint (dim_vector (1, 4)); - pointershapecdata.add_constraint (dim_vector (16, 16)); - pointershapehotspot.add_constraint (dim_vector (1, 2)); - position.add_constraint (dim_vector (1, 4)); - } - - private: - mutable graphics_toolkit toolkit; - }; - - private: - properties xproperties; - - public: - figure (const graphics_handle& mh, const graphics_handle& p) - : base_graphics_object (), xproperties (mh, p), default_properties () - { - xproperties.override_defaults (*this); - } - - ~figure (void) - { - xproperties.delete_children (); - } - - void override_defaults (base_graphics_object& obj) - { - // Allow parent (root figure) to override first (properties knows how - // to find the parent object). - xproperties.override_defaults (obj); - - // Now override with our defaults. If the default_properties - // list includes the properties for all defaults (line, - // surface, etc.) then we don't have to know the type of OBJ - // here, we just call its set function and let it decide which - // properties from the list to use. - obj.set_from_list (default_properties); - } - - void set (const caseless_str& name, const octave_value& value) - { - if (name.compare ("default", 7)) - // strip "default", pass rest to function that will - // parse the remainder and add the element to the - // default_properties map. - default_properties.set (name.substr (7), value); - else - xproperties.set (name, value); - } - - octave_value get (const caseless_str& name) const - { - octave_value retval; - - if (name.compare ("default", 7)) - retval = get_default (name.substr (7)); - else - retval = xproperties.get (name); - - return retval; - } - - octave_value get_default (const caseless_str& name) const; - - octave_value get_defaults (void) const - { - return default_properties.as_struct ("default"); - } - - base_properties& get_properties (void) { return xproperties; } - - const base_properties& get_properties (void) const { return xproperties; } - - bool valid_object (void) const { return true; } - - void reset_default_properties (void); - - private: - property_list default_properties; - }; - - // --------------------------------------------------------------------- - - class OCTINTERP_API graphics_xform - { - public: - graphics_xform (void) - : xform (xform_eye ()), xform_inv (xform_eye ()), - sx ("linear"), sy ("linear"), sz ("linear"), zlim (1, 2, 0.0) - { - zlim(1) = 1.0; - } - - graphics_xform (const Matrix& xm, const Matrix& xim, - const scaler& x, const scaler& y, const scaler& z, - const Matrix& zl) - : xform (xm), xform_inv (xim), sx (x), sy (y), sz (z), zlim (zl) { } - - graphics_xform (const graphics_xform& g) - : xform (g.xform), xform_inv (g.xform_inv), sx (g.sx), - sy (g.sy), sz (g.sz), zlim (g.zlim) { } - - ~graphics_xform (void) { } - - graphics_xform& operator = (const graphics_xform& g) - { - xform = g.xform; - xform_inv = g.xform_inv; - sx = g.sx; - sy = g.sy; - sz = g.sz; - zlim = g.zlim; - - return *this; - } - - static ColumnVector xform_vector (double x, double y, double z); - - static Matrix xform_eye (void); - - ColumnVector transform (double x, double y, double z, - bool use_scale = true) const; - - ColumnVector untransform (double x, double y, double z, - bool use_scale = true) const; - - ColumnVector untransform (double x, double y, bool use_scale = true) const - { return untransform (x, y, (zlim(0)+zlim(1))/2, use_scale); } - - Matrix xscale (const Matrix& m) const { return sx.scale (m); } - Matrix yscale (const Matrix& m) const { return sy.scale (m); } - Matrix zscale (const Matrix& m) const { return sz.scale (m); } - - Matrix scale (const Matrix& m) const - { - bool has_z = (m.columns () > 2); - - if (sx.is_linear () && sy.is_linear () - && (! has_z || sz.is_linear ())) - return m; - - Matrix retval (m.dims ()); - - int r = m.rows (); - - for (int i = 0; i < r; i++) - { - retval(i,0) = sx.scale (m(i,0)); - retval(i,1) = sy.scale (m(i,1)); - if (has_z) - retval(i,2) = sz.scale (m(i,2)); - } - - return retval; - } - - private: - Matrix xform; - Matrix xform_inv; - scaler sx, sy, sz; - Matrix zlim; - }; - - enum { - AXE_ANY_DIR = 0, - AXE_DEPTH_DIR = 1, - AXE_HORZ_DIR = 2, - AXE_VERT_DIR = 3 - }; - - class OCTINTERP_API axes : public base_graphics_object - { - public: - class OCTINTERP_API properties : public base_properties - { - public: - void set_defaults (base_graphics_object& obj, const std::string& mode); - - void remove_child (const graphics_handle& h); - - const scaler& get_x_scaler (void) const { return sx; } - const scaler& get_y_scaler (void) const { return sy; } - const scaler& get_z_scaler (void) const { return sz; } - - Matrix get_boundingbox (bool internal = false) const; - - void update_boundingbox (void) - { - if (units_is ("normalized")) - { - update_transform (); - base_properties::update_boundingbox (); - } - } - - void update_camera (void); - void update_axes_layout (void); - void update_aspectratios (void); - void update_transform (void) - { - update_aspectratios (); - update_camera (); - update_axes_layout (); - } - - void update_autopos (const std::string& elem_type); - void update_xlabel_position (void); - void update_ylabel_position (void); - void update_zlabel_position (void); - void update_title_position (void); - - graphics_xform get_transform (void) const - { return graphics_xform (x_render, x_render_inv, sx, sy, sz, x_zlim); } - - Matrix get_transform_matrix (void) const { return x_render; } - Matrix get_inverse_transform_matrix (void) const { return x_render_inv; } - Matrix get_opengl_matrix_1 (void) const { return x_gl_mat1; } - Matrix get_opengl_matrix_2 (void) const { return x_gl_mat2; } - Matrix get_transform_zlim (void) const { return x_zlim; } - - int get_xstate (void) const { return xstate; } - int get_ystate (void) const { return ystate; } - int get_zstate (void) const { return zstate; } - double get_xPlane (void) const { return xPlane; } - double get_xPlaneN (void) const { return xPlaneN; } - double get_yPlane (void) const { return yPlane; } - double get_yPlaneN (void) const { return yPlaneN; } - double get_zPlane (void) const { return zPlane; } - double get_zPlaneN (void) const { return zPlaneN; } - double get_xpTick (void) const { return xpTick; } - double get_xpTickN (void) const { return xpTickN; } - double get_ypTick (void) const { return ypTick; } - double get_ypTickN (void) const { return ypTickN; } - double get_zpTick (void) const { return zpTick; } - double get_zpTickN (void) const { return zpTickN; } - double get_x_min (void) const { return std::min (xPlane, xPlaneN); } - double get_x_max (void) const { return std::max (xPlane, xPlaneN); } - double get_y_min (void) const { return std::min (yPlane, yPlaneN); } - double get_y_max (void) const { return std::max (yPlane, yPlaneN); } - double get_z_min (void) const { return std::min (zPlane, zPlaneN); } - double get_z_max (void) const { return std::max (zPlane, zPlaneN); } - double get_fx (void) const { return fx; } - double get_fy (void) const { return fy; } - double get_fz (void) const { return fz; } - double get_xticklen (void) const { return xticklen; } - double get_yticklen (void) const { return yticklen; } - double get_zticklen (void) const { return zticklen; } - double get_xtickoffset (void) const { return xtickoffset; } - double get_ytickoffset (void) const { return ytickoffset; } - double get_ztickoffset (void) const { return ztickoffset; } - bool get_x2Dtop (void) const { return x2Dtop; } - bool get_y2Dright (void) const { return y2Dright; } - bool get_layer2Dtop (void) const { return layer2Dtop; } - bool get_xySym (void) const { return xySym; } - bool get_xyzSym (void) const { return xyzSym; } - bool get_zSign (void) const { return zSign; } - bool get_nearhoriz (void) const { return nearhoriz; } - - ColumnVector pixel2coord (double px, double py) const - { return get_transform ().untransform (px, py, (x_zlim(0)+x_zlim(1))/2); } - - ColumnVector coord2pixel (double x, double y, double z) const - { return get_transform ().transform (x, y, z); } - - void zoom_about_point (double x, double y, double factor, - bool push_to_zoom_stack = true); - void zoom (const Matrix& xl, const Matrix& yl, bool push_to_zoom_stack = true); - void translate_view (double delta_x, double delta_y); - void rotate_view (double delta_az, double delta_el); - void unzoom (void); - void clear_zoom_stack (void); - - void update_units (const caseless_str& old_units); - - void update_fontunits (const caseless_str& old_fontunits); - - private: - scaler sx, sy, sz; - Matrix x_render, x_render_inv; - Matrix x_gl_mat1, x_gl_mat2; - Matrix x_zlim; - std::list zoom_stack; - - // Axes layout data - int xstate, ystate, zstate; - double xPlane, xPlaneN, yPlane, yPlaneN, zPlane, zPlaneN; - double xpTick, xpTickN, ypTick, ypTickN, zpTick, zpTickN; - double fx, fy, fz; - double xticklen, yticklen, zticklen; - double xtickoffset, ytickoffset, ztickoffset; - bool x2Dtop, y2Dright, layer2Dtop; - bool xySym, xyzSym, zSign, nearhoriz; - - void set_text_child (handle_property& h, const std::string& who, - const octave_value& v); - - void delete_text_child (handle_property& h); - - // See the genprops.awk script for an explanation of the - // properties declarations. - - // properties which are not in matlab: interpreter - - public: - properties (const graphics_handle& mh, const graphics_handle& p); - - ~properties (void) { } - - void set (const caseless_str& pname, const octave_value& val); - - octave_value get (bool all = false) const; - - octave_value get (const caseless_str& pname) const; - - octave_value get (const std::string& pname) const - { - return get (caseless_str (pname)); - } - - octave_value get (const char *pname) const - { - return get (caseless_str (pname)); - } - - property get_property (const caseless_str& pname); - - std::string graphics_object_name (void) const { return go_name; } - - static property_list::pval_map_type factory_defaults (void); - - private: - static std::string go_name; - - public: - - - static std::set core_property_names (void); - - static bool has_core_property (const caseless_str& pname); - - std::set all_property_names (void) const; - - bool has_property (const caseless_str& pname) const; - - private: - - array_property position; - bool_property box; - array_property colororder; - array_property dataaspectratio; - radio_property dataaspectratiomode; - radio_property layer; - row_vector_property xlim; - row_vector_property ylim; - row_vector_property zlim; - row_vector_property clim; - row_vector_property alim; - radio_property xlimmode; - radio_property ylimmode; - radio_property zlimmode; - radio_property climmode; - radio_property alimmode; - handle_property xlabel; - handle_property ylabel; - handle_property zlabel; - handle_property title; - bool_property xgrid; - bool_property ygrid; - bool_property zgrid; - bool_property xminorgrid; - bool_property yminorgrid; - bool_property zminorgrid; - row_vector_property xtick; - row_vector_property ytick; - row_vector_property ztick; - radio_property xtickmode; - radio_property ytickmode; - radio_property ztickmode; - bool_property xminortick; - bool_property yminortick; - bool_property zminortick; - any_property xticklabel; - any_property yticklabel; - any_property zticklabel; - radio_property xticklabelmode; - radio_property yticklabelmode; - radio_property zticklabelmode; - radio_property interpreter; - color_property color; - color_property xcolor; - color_property ycolor; - color_property zcolor; - radio_property xscale; - radio_property yscale; - radio_property zscale; - radio_property xdir; - radio_property ydir; - radio_property zdir; - radio_property yaxislocation; - radio_property xaxislocation; - array_property view; - bool_property __hold_all__; - radio_property nextplot; - array_property outerposition; - radio_property activepositionproperty; - color_property ambientlightcolor; - array_property cameraposition; - array_property cameratarget; - array_property cameraupvector; - double_property cameraviewangle; - radio_property camerapositionmode; - radio_property cameratargetmode; - radio_property cameraupvectormode; - radio_property cameraviewanglemode; - array_property currentpoint; - radio_property drawmode; - radio_property fontangle; - string_property fontname; - double_property fontsize; - radio_property fontunits; - radio_property fontweight; - radio_property gridlinestyle; - string_array_property linestyleorder; - double_property linewidth; - radio_property minorgridlinestyle; - array_property plotboxaspectratio; - radio_property plotboxaspectratiomode; - radio_property projection; - radio_property tickdir; - radio_property tickdirmode; - array_property ticklength; - array_property tightinset; - radio_property units; - array_property x_viewtransform; - array_property x_projectiontransform; - array_property x_viewporttransform; - array_property x_normrendertransform; - array_property x_rendertransform; - row_vector_property xmtick; - row_vector_property ymtick; - row_vector_property zmtick; - - public: - - enum - { - ID_POSITION = 3000, - ID_BOX = 3001, - ID_COLORORDER = 3002, - ID_DATAASPECTRATIO = 3003, - ID_DATAASPECTRATIOMODE = 3004, - ID_LAYER = 3005, - ID_XLIM = 3006, - ID_YLIM = 3007, - ID_ZLIM = 3008, - ID_CLIM = 3009, - ID_ALIM = 3010, - ID_XLIMMODE = 3011, - ID_YLIMMODE = 3012, - ID_ZLIMMODE = 3013, - ID_CLIMMODE = 3014, - ID_ALIMMODE = 3015, - ID_XLABEL = 3016, - ID_YLABEL = 3017, - ID_ZLABEL = 3018, - ID_TITLE = 3019, - ID_XGRID = 3020, - ID_YGRID = 3021, - ID_ZGRID = 3022, - ID_XMINORGRID = 3023, - ID_YMINORGRID = 3024, - ID_ZMINORGRID = 3025, - ID_XTICK = 3026, - ID_YTICK = 3027, - ID_ZTICK = 3028, - ID_XTICKMODE = 3029, - ID_YTICKMODE = 3030, - ID_ZTICKMODE = 3031, - ID_XMINORTICK = 3032, - ID_YMINORTICK = 3033, - ID_ZMINORTICK = 3034, - ID_XTICKLABEL = 3035, - ID_YTICKLABEL = 3036, - ID_ZTICKLABEL = 3037, - ID_XTICKLABELMODE = 3038, - ID_YTICKLABELMODE = 3039, - ID_ZTICKLABELMODE = 3040, - ID_INTERPRETER = 3041, - ID_COLOR = 3042, - ID_XCOLOR = 3043, - ID_YCOLOR = 3044, - ID_ZCOLOR = 3045, - ID_XSCALE = 3046, - ID_YSCALE = 3047, - ID_ZSCALE = 3048, - ID_XDIR = 3049, - ID_YDIR = 3050, - ID_ZDIR = 3051, - ID_YAXISLOCATION = 3052, - ID_XAXISLOCATION = 3053, - ID_VIEW = 3054, - ID___HOLD_ALL__ = 3055, - ID_NEXTPLOT = 3056, - ID_OUTERPOSITION = 3057, - ID_ACTIVEPOSITIONPROPERTY = 3058, - ID_AMBIENTLIGHTCOLOR = 3059, - ID_CAMERAPOSITION = 3060, - ID_CAMERATARGET = 3061, - ID_CAMERAUPVECTOR = 3062, - ID_CAMERAVIEWANGLE = 3063, - ID_CAMERAPOSITIONMODE = 3064, - ID_CAMERATARGETMODE = 3065, - ID_CAMERAUPVECTORMODE = 3066, - ID_CAMERAVIEWANGLEMODE = 3067, - ID_CURRENTPOINT = 3068, - ID_DRAWMODE = 3069, - ID_FONTANGLE = 3070, - ID_FONTNAME = 3071, - ID_FONTSIZE = 3072, - ID_FONTUNITS = 3073, - ID_FONTWEIGHT = 3074, - ID_GRIDLINESTYLE = 3075, - ID_LINESTYLEORDER = 3076, - ID_LINEWIDTH = 3077, - ID_MINORGRIDLINESTYLE = 3078, - ID_PLOTBOXASPECTRATIO = 3079, - ID_PLOTBOXASPECTRATIOMODE = 3080, - ID_PROJECTION = 3081, - ID_TICKDIR = 3082, - ID_TICKDIRMODE = 3083, - ID_TICKLENGTH = 3084, - ID_TIGHTINSET = 3085, - ID_UNITS = 3086, - ID_X_VIEWTRANSFORM = 3087, - ID_X_PROJECTIONTRANSFORM = 3088, - ID_X_VIEWPORTTRANSFORM = 3089, - ID_X_NORMRENDERTRANSFORM = 3090, - ID_X_RENDERTRANSFORM = 3091, - ID_XMTICK = 3092, - ID_YMTICK = 3093, - ID_ZMTICK = 3094 - }; - - octave_value get_position (void) const { return position.get (); } - - bool is_box (void) const { return box.is_on (); } - std::string get_box (void) const { return box.current_value (); } - - octave_value get_colororder (void) const { return colororder.get (); } - - octave_value get_dataaspectratio (void) const { return dataaspectratio.get (); } - - bool dataaspectratiomode_is (const std::string& v) const { return dataaspectratiomode.is (v); } - std::string get_dataaspectratiomode (void) const { return dataaspectratiomode.current_value (); } - - bool layer_is (const std::string& v) const { return layer.is (v); } - std::string get_layer (void) const { return layer.current_value (); } - - octave_value get_xlim (void) const { return xlim.get (); } - - octave_value get_ylim (void) const { return ylim.get (); } - - octave_value get_zlim (void) const { return zlim.get (); } - - octave_value get_clim (void) const { return clim.get (); } - - octave_value get_alim (void) const { return alim.get (); } - - bool xlimmode_is (const std::string& v) const { return xlimmode.is (v); } - std::string get_xlimmode (void) const { return xlimmode.current_value (); } - - bool ylimmode_is (const std::string& v) const { return ylimmode.is (v); } - std::string get_ylimmode (void) const { return ylimmode.current_value (); } - - bool zlimmode_is (const std::string& v) const { return zlimmode.is (v); } - std::string get_zlimmode (void) const { return zlimmode.current_value (); } - - bool climmode_is (const std::string& v) const { return climmode.is (v); } - std::string get_climmode (void) const { return climmode.current_value (); } - - bool alimmode_is (const std::string& v) const { return alimmode.is (v); } - std::string get_alimmode (void) const { return alimmode.current_value (); } - - graphics_handle get_xlabel (void) const { return xlabel.handle_value (); } - - graphics_handle get_ylabel (void) const { return ylabel.handle_value (); } - - graphics_handle get_zlabel (void) const { return zlabel.handle_value (); } - - graphics_handle get_title (void) const { return title.handle_value (); } - - bool is_xgrid (void) const { return xgrid.is_on (); } - std::string get_xgrid (void) const { return xgrid.current_value (); } - - bool is_ygrid (void) const { return ygrid.is_on (); } - std::string get_ygrid (void) const { return ygrid.current_value (); } - - bool is_zgrid (void) const { return zgrid.is_on (); } - std::string get_zgrid (void) const { return zgrid.current_value (); } - - bool is_xminorgrid (void) const { return xminorgrid.is_on (); } - std::string get_xminorgrid (void) const { return xminorgrid.current_value (); } - - bool is_yminorgrid (void) const { return yminorgrid.is_on (); } - std::string get_yminorgrid (void) const { return yminorgrid.current_value (); } - - bool is_zminorgrid (void) const { return zminorgrid.is_on (); } - std::string get_zminorgrid (void) const { return zminorgrid.current_value (); } - - octave_value get_xtick (void) const { return xtick.get (); } - - octave_value get_ytick (void) const { return ytick.get (); } - - octave_value get_ztick (void) const { return ztick.get (); } - - bool xtickmode_is (const std::string& v) const { return xtickmode.is (v); } - std::string get_xtickmode (void) const { return xtickmode.current_value (); } - - bool ytickmode_is (const std::string& v) const { return ytickmode.is (v); } - std::string get_ytickmode (void) const { return ytickmode.current_value (); } - - bool ztickmode_is (const std::string& v) const { return ztickmode.is (v); } - std::string get_ztickmode (void) const { return ztickmode.current_value (); } - - bool is_xminortick (void) const { return xminortick.is_on (); } - std::string get_xminortick (void) const { return xminortick.current_value (); } - - bool is_yminortick (void) const { return yminortick.is_on (); } - std::string get_yminortick (void) const { return yminortick.current_value (); } - - bool is_zminortick (void) const { return zminortick.is_on (); } - std::string get_zminortick (void) const { return zminortick.current_value (); } - - octave_value get_xticklabel (void) const { return xticklabel.get (); } - - octave_value get_yticklabel (void) const { return yticklabel.get (); } - - octave_value get_zticklabel (void) const { return zticklabel.get (); } - - bool xticklabelmode_is (const std::string& v) const { return xticklabelmode.is (v); } - std::string get_xticklabelmode (void) const { return xticklabelmode.current_value (); } - - bool yticklabelmode_is (const std::string& v) const { return yticklabelmode.is (v); } - std::string get_yticklabelmode (void) const { return yticklabelmode.current_value (); } - - bool zticklabelmode_is (const std::string& v) const { return zticklabelmode.is (v); } - std::string get_zticklabelmode (void) const { return zticklabelmode.current_value (); } - - bool interpreter_is (const std::string& v) const { return interpreter.is (v); } - std::string get_interpreter (void) const { return interpreter.current_value (); } - - bool color_is_rgb (void) const { return color.is_rgb (); } - bool color_is (const std::string& v) const { return color.is (v); } - Matrix get_color_rgb (void) const { return (color.is_rgb () ? color.rgb () : Matrix ()); } - octave_value get_color (void) const { return color.get (); } - - bool xcolor_is_rgb (void) const { return xcolor.is_rgb (); } - bool xcolor_is (const std::string& v) const { return xcolor.is (v); } - Matrix get_xcolor_rgb (void) const { return (xcolor.is_rgb () ? xcolor.rgb () : Matrix ()); } - octave_value get_xcolor (void) const { return xcolor.get (); } - - bool ycolor_is_rgb (void) const { return ycolor.is_rgb (); } - bool ycolor_is (const std::string& v) const { return ycolor.is (v); } - Matrix get_ycolor_rgb (void) const { return (ycolor.is_rgb () ? ycolor.rgb () : Matrix ()); } - octave_value get_ycolor (void) const { return ycolor.get (); } - - bool zcolor_is_rgb (void) const { return zcolor.is_rgb (); } - bool zcolor_is (const std::string& v) const { return zcolor.is (v); } - Matrix get_zcolor_rgb (void) const { return (zcolor.is_rgb () ? zcolor.rgb () : Matrix ()); } - octave_value get_zcolor (void) const { return zcolor.get (); } - - bool xscale_is (const std::string& v) const { return xscale.is (v); } - std::string get_xscale (void) const { return xscale.current_value (); } - - bool yscale_is (const std::string& v) const { return yscale.is (v); } - std::string get_yscale (void) const { return yscale.current_value (); } - - bool zscale_is (const std::string& v) const { return zscale.is (v); } - std::string get_zscale (void) const { return zscale.current_value (); } - - bool xdir_is (const std::string& v) const { return xdir.is (v); } - std::string get_xdir (void) const { return xdir.current_value (); } - - bool ydir_is (const std::string& v) const { return ydir.is (v); } - std::string get_ydir (void) const { return ydir.current_value (); } - - bool zdir_is (const std::string& v) const { return zdir.is (v); } - std::string get_zdir (void) const { return zdir.current_value (); } - - bool yaxislocation_is (const std::string& v) const { return yaxislocation.is (v); } - std::string get_yaxislocation (void) const { return yaxislocation.current_value (); } - - bool xaxislocation_is (const std::string& v) const { return xaxislocation.is (v); } - std::string get_xaxislocation (void) const { return xaxislocation.current_value (); } - - octave_value get_view (void) const { return view.get (); } - - bool is___hold_all__ (void) const { return __hold_all__.is_on (); } - std::string get___hold_all__ (void) const { return __hold_all__.current_value (); } - - bool nextplot_is (const std::string& v) const { return nextplot.is (v); } - std::string get_nextplot (void) const { return nextplot.current_value (); } - - octave_value get_outerposition (void) const { return outerposition.get (); } - - bool activepositionproperty_is (const std::string& v) const { return activepositionproperty.is (v); } - std::string get_activepositionproperty (void) const { return activepositionproperty.current_value (); } - - bool ambientlightcolor_is_rgb (void) const { return ambientlightcolor.is_rgb (); } - bool ambientlightcolor_is (const std::string& v) const { return ambientlightcolor.is (v); } - Matrix get_ambientlightcolor_rgb (void) const { return (ambientlightcolor.is_rgb () ? ambientlightcolor.rgb () : Matrix ()); } - octave_value get_ambientlightcolor (void) const { return ambientlightcolor.get (); } - - octave_value get_cameraposition (void) const { return cameraposition.get (); } - - octave_value get_cameratarget (void) const { return cameratarget.get (); } - - octave_value get_cameraupvector (void) const { return cameraupvector.get (); } - - double get_cameraviewangle (void) const { return cameraviewangle.double_value (); } - - bool camerapositionmode_is (const std::string& v) const { return camerapositionmode.is (v); } - std::string get_camerapositionmode (void) const { return camerapositionmode.current_value (); } - - bool cameratargetmode_is (const std::string& v) const { return cameratargetmode.is (v); } - std::string get_cameratargetmode (void) const { return cameratargetmode.current_value (); } - - bool cameraupvectormode_is (const std::string& v) const { return cameraupvectormode.is (v); } - std::string get_cameraupvectormode (void) const { return cameraupvectormode.current_value (); } - - bool cameraviewanglemode_is (const std::string& v) const { return cameraviewanglemode.is (v); } - std::string get_cameraviewanglemode (void) const { return cameraviewanglemode.current_value (); } - - octave_value get_currentpoint (void) const { return currentpoint.get (); } - - bool drawmode_is (const std::string& v) const { return drawmode.is (v); } - std::string get_drawmode (void) const { return drawmode.current_value (); } - - bool fontangle_is (const std::string& v) const { return fontangle.is (v); } - std::string get_fontangle (void) const { return fontangle.current_value (); } - - std::string get_fontname (void) const { return fontname.string_value (); } - - double get_fontsize (void) const { return fontsize.double_value (); } - - bool fontunits_is (const std::string& v) const { return fontunits.is (v); } - std::string get_fontunits (void) const { return fontunits.current_value (); } - - bool fontweight_is (const std::string& v) const { return fontweight.is (v); } - std::string get_fontweight (void) const { return fontweight.current_value (); } - - bool gridlinestyle_is (const std::string& v) const { return gridlinestyle.is (v); } - std::string get_gridlinestyle (void) const { return gridlinestyle.current_value (); } - - octave_value get_linestyleorder (void) const { return linestyleorder.get (); } - - double get_linewidth (void) const { return linewidth.double_value (); } - - bool minorgridlinestyle_is (const std::string& v) const { return minorgridlinestyle.is (v); } - std::string get_minorgridlinestyle (void) const { return minorgridlinestyle.current_value (); } - - octave_value get_plotboxaspectratio (void) const { return plotboxaspectratio.get (); } - - bool plotboxaspectratiomode_is (const std::string& v) const { return plotboxaspectratiomode.is (v); } - std::string get_plotboxaspectratiomode (void) const { return plotboxaspectratiomode.current_value (); } - - bool projection_is (const std::string& v) const { return projection.is (v); } - std::string get_projection (void) const { return projection.current_value (); } - - bool tickdir_is (const std::string& v) const { return tickdir.is (v); } - std::string get_tickdir (void) const { return tickdir.current_value (); } - - bool tickdirmode_is (const std::string& v) const { return tickdirmode.is (v); } - std::string get_tickdirmode (void) const { return tickdirmode.current_value (); } - - octave_value get_ticklength (void) const { return ticklength.get (); } - - octave_value get_tightinset (void) const { return tightinset.get (); } - - bool units_is (const std::string& v) const { return units.is (v); } - std::string get_units (void) const { return units.current_value (); } - - octave_value get_x_viewtransform (void) const { return x_viewtransform.get (); } - - octave_value get_x_projectiontransform (void) const { return x_projectiontransform.get (); } - - octave_value get_x_viewporttransform (void) const { return x_viewporttransform.get (); } - - octave_value get_x_normrendertransform (void) const { return x_normrendertransform.get (); } - - octave_value get_x_rendertransform (void) const { return x_rendertransform.get (); } - - octave_value get_xmtick (void) const { return xmtick.get (); } - - octave_value get_ymtick (void) const { return ymtick.get (); } - - octave_value get_zmtick (void) const { return zmtick.get (); } - - - void set_position (const octave_value& val) - { - if (! error_state) - { - if (position.set (val, true)) - { - update_position (); - mark_modified (); - } - } - } - - void set_box (const octave_value& val) - { - if (! error_state) - { - if (box.set (val, true)) - { - mark_modified (); - } - } - } - - void set_colororder (const octave_value& val) - { - if (! error_state) - { - if (colororder.set (val, true)) - { - mark_modified (); - } - } - } - - void set_dataaspectratio (const octave_value& val) - { - if (! error_state) - { - if (dataaspectratio.set (val, false)) - { - set_dataaspectratiomode ("manual"); - update_dataaspectratio (); - dataaspectratio.run_listeners (POSTSET); - mark_modified (); - } - else - set_dataaspectratiomode ("manual"); - } - } - - void set_dataaspectratiomode (const octave_value& val) - { - if (! error_state) - { - if (dataaspectratiomode.set (val, true)) - { - update_dataaspectratiomode (); - mark_modified (); - } - } - } - - void set_layer (const octave_value& val) - { - if (! error_state) - { - if (layer.set (val, true)) - { - update_layer (); - mark_modified (); - } - } - } - - void set_xlim (const octave_value& val) - { - if (! error_state) - { - if (xlim.set (val, false)) - { - set_xlimmode ("manual"); - update_xlim (); - xlim.run_listeners (POSTSET); - mark_modified (); - } - else - set_xlimmode ("manual"); - } - } - - void set_ylim (const octave_value& val) - { - if (! error_state) - { - if (ylim.set (val, false)) - { - set_ylimmode ("manual"); - update_ylim (); - ylim.run_listeners (POSTSET); - mark_modified (); - } - else - set_ylimmode ("manual"); - } - } - - void set_zlim (const octave_value& val) - { - if (! error_state) - { - if (zlim.set (val, false)) - { - set_zlimmode ("manual"); - update_zlim (); - zlim.run_listeners (POSTSET); - mark_modified (); - } - else - set_zlimmode ("manual"); - } - } - - void set_clim (const octave_value& val) - { - if (! error_state) - { - if (clim.set (val, false)) - { - set_climmode ("manual"); - clim.run_listeners (POSTSET); - mark_modified (); - } - else - set_climmode ("manual"); - } - } - - void set_alim (const octave_value& val) - { - if (! error_state) - { - if (alim.set (val, false)) - { - set_alimmode ("manual"); - alim.run_listeners (POSTSET); - mark_modified (); - } - else - set_alimmode ("manual"); - } - } - - void set_xlimmode (const octave_value& val) - { - if (! error_state) - { - if (xlimmode.set (val, false)) - { - update_axis_limits ("xlimmode"); - xlimmode.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_ylimmode (const octave_value& val) - { - if (! error_state) - { - if (ylimmode.set (val, false)) - { - update_axis_limits ("ylimmode"); - ylimmode.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_zlimmode (const octave_value& val) - { - if (! error_state) - { - if (zlimmode.set (val, false)) - { - update_axis_limits ("zlimmode"); - zlimmode.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_climmode (const octave_value& val) - { - if (! error_state) - { - if (climmode.set (val, false)) - { - update_axis_limits ("climmode"); - climmode.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_alimmode (const octave_value& val) - { - if (! error_state) - { - if (alimmode.set (val, true)) - { - mark_modified (); - } - } - } - - void set_xlabel (const octave_value& val); - - void set_ylabel (const octave_value& val); - - void set_zlabel (const octave_value& val); - - void set_title (const octave_value& val); - - void set_xgrid (const octave_value& val) - { - if (! error_state) - { - if (xgrid.set (val, true)) - { - mark_modified (); - } - } - } - - void set_ygrid (const octave_value& val) - { - if (! error_state) - { - if (ygrid.set (val, true)) - { - mark_modified (); - } - } - } - - void set_zgrid (const octave_value& val) - { - if (! error_state) - { - if (zgrid.set (val, true)) - { - mark_modified (); - } - } - } - - void set_xminorgrid (const octave_value& val) - { - if (! error_state) - { - if (xminorgrid.set (val, true)) - { - mark_modified (); - } - } - } - - void set_yminorgrid (const octave_value& val) - { - if (! error_state) - { - if (yminorgrid.set (val, true)) - { - mark_modified (); - } - } - } - - void set_zminorgrid (const octave_value& val) - { - if (! error_state) - { - if (zminorgrid.set (val, true)) - { - mark_modified (); - } - } - } - - void set_xtick (const octave_value& val) - { - if (! error_state) - { - if (xtick.set (val, false)) - { - set_xtickmode ("manual"); - update_xtick (); - xtick.run_listeners (POSTSET); - mark_modified (); - } - else - set_xtickmode ("manual"); - } - } - - void set_ytick (const octave_value& val) - { - if (! error_state) - { - if (ytick.set (val, false)) - { - set_ytickmode ("manual"); - update_ytick (); - ytick.run_listeners (POSTSET); - mark_modified (); - } - else - set_ytickmode ("manual"); - } - } - - void set_ztick (const octave_value& val) - { - if (! error_state) - { - if (ztick.set (val, false)) - { - set_ztickmode ("manual"); - update_ztick (); - ztick.run_listeners (POSTSET); - mark_modified (); - } - else - set_ztickmode ("manual"); - } - } - - void set_xtickmode (const octave_value& val) - { - if (! error_state) - { - if (xtickmode.set (val, true)) - { - update_xtickmode (); - mark_modified (); - } - } - } - - void set_ytickmode (const octave_value& val) - { - if (! error_state) - { - if (ytickmode.set (val, true)) - { - update_ytickmode (); - mark_modified (); - } - } - } - - void set_ztickmode (const octave_value& val) - { - if (! error_state) - { - if (ztickmode.set (val, true)) - { - update_ztickmode (); - mark_modified (); - } - } - } - - void set_xminortick (const octave_value& val) - { - if (! error_state) - { - if (xminortick.set (val, true)) - { - mark_modified (); - } - } - } - - void set_yminortick (const octave_value& val) - { - if (! error_state) - { - if (yminortick.set (val, true)) - { - mark_modified (); - } - } - } - - void set_zminortick (const octave_value& val) - { - if (! error_state) - { - if (zminortick.set (val, true)) - { - mark_modified (); - } - } - } - - void set_xticklabel (const octave_value& val) - { - if (! error_state) - { - if (xticklabel.set (val, false)) - { - set_xticklabelmode ("manual"); - xticklabel.run_listeners (POSTSET); - mark_modified (); - } - else - set_xticklabelmode ("manual"); - } - } - - void set_yticklabel (const octave_value& val) - { - if (! error_state) - { - if (yticklabel.set (val, false)) - { - set_yticklabelmode ("manual"); - yticklabel.run_listeners (POSTSET); - mark_modified (); - } - else - set_yticklabelmode ("manual"); - } - } - - void set_zticklabel (const octave_value& val) - { - if (! error_state) - { - if (zticklabel.set (val, false)) - { - set_zticklabelmode ("manual"); - zticklabel.run_listeners (POSTSET); - mark_modified (); - } - else - set_zticklabelmode ("manual"); - } - } - - void set_xticklabelmode (const octave_value& val) - { - if (! error_state) - { - if (xticklabelmode.set (val, true)) - { - update_xticklabelmode (); - mark_modified (); - } - } - } - - void set_yticklabelmode (const octave_value& val) - { - if (! error_state) - { - if (yticklabelmode.set (val, true)) - { - update_yticklabelmode (); - mark_modified (); - } - } - } - - void set_zticklabelmode (const octave_value& val) - { - if (! error_state) - { - if (zticklabelmode.set (val, true)) - { - update_zticklabelmode (); - mark_modified (); - } - } - } - - void set_interpreter (const octave_value& val) - { - if (! error_state) - { - if (interpreter.set (val, true)) - { - mark_modified (); - } - } - } - - void set_color (const octave_value& val) - { - if (! error_state) - { - if (color.set (val, true)) - { - mark_modified (); - } - } - } - - void set_xcolor (const octave_value& val) - { - if (! error_state) - { - if (xcolor.set (val, true)) - { - mark_modified (); - } - } - } - - void set_ycolor (const octave_value& val) - { - if (! error_state) - { - if (ycolor.set (val, true)) - { - mark_modified (); - } - } - } - - void set_zcolor (const octave_value& val) - { - if (! error_state) - { - if (zcolor.set (val, true)) - { - mark_modified (); - } - } - } - - void set_xscale (const octave_value& val) - { - if (! error_state) - { - if (xscale.set (val, false)) - { - update_xscale (); - update_axis_limits ("xscale"); - xscale.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_yscale (const octave_value& val) - { - if (! error_state) - { - if (yscale.set (val, false)) - { - update_yscale (); - update_axis_limits ("yscale"); - yscale.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_zscale (const octave_value& val) - { - if (! error_state) - { - if (zscale.set (val, false)) - { - update_zscale (); - update_axis_limits ("zscale"); - zscale.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_xdir (const octave_value& val) - { - if (! error_state) - { - if (xdir.set (val, true)) - { - update_xdir (); - mark_modified (); - } - } - } - - void set_ydir (const octave_value& val) - { - if (! error_state) - { - if (ydir.set (val, true)) - { - update_ydir (); - mark_modified (); - } - } - } - - void set_zdir (const octave_value& val) - { - if (! error_state) - { - if (zdir.set (val, true)) - { - update_zdir (); - mark_modified (); - } - } - } - - void set_yaxislocation (const octave_value& val) - { - if (! error_state) - { - if (yaxislocation.set (val, true)) - { - update_yaxislocation (); - mark_modified (); - } - } - } - - void set_xaxislocation (const octave_value& val) - { - if (! error_state) - { - if (xaxislocation.set (val, true)) - { - update_xaxislocation (); - mark_modified (); - } - } - } - - void set_view (const octave_value& val) - { - if (! error_state) - { - if (view.set (val, true)) - { - update_view (); - mark_modified (); - } - } - } - - void set___hold_all__ (const octave_value& val) - { - if (! error_state) - { - if (__hold_all__.set (val, true)) - { - mark_modified (); - } - } - } - - void set_nextplot (const octave_value& val) - { - if (! error_state) - { - if (nextplot.set (val, true)) - { - mark_modified (); - } - } - } - - void set_outerposition (const octave_value& val) - { - if (! error_state) - { - if (outerposition.set (val, true)) - { - update_outerposition (); - mark_modified (); - } - } - } - - void set_activepositionproperty (const octave_value& val) - { - if (! error_state) - { - if (activepositionproperty.set (val, true)) - { - mark_modified (); - } - } - } - - void set_ambientlightcolor (const octave_value& val) - { - if (! error_state) - { - if (ambientlightcolor.set (val, true)) - { - mark_modified (); - } - } - } - - void set_cameraposition (const octave_value& val) - { - if (! error_state) - { - if (cameraposition.set (val, false)) - { - set_camerapositionmode ("manual"); - cameraposition.run_listeners (POSTSET); - mark_modified (); - } - else - set_camerapositionmode ("manual"); - } - } - - void set_cameratarget (const octave_value& val) - { - if (! error_state) - { - if (cameratarget.set (val, false)) - { - set_cameratargetmode ("manual"); - cameratarget.run_listeners (POSTSET); - mark_modified (); - } - else - set_cameratargetmode ("manual"); - } - } - - void set_cameraupvector (const octave_value& val) - { - if (! error_state) - { - if (cameraupvector.set (val, false)) - { - set_cameraupvectormode ("manual"); - cameraupvector.run_listeners (POSTSET); - mark_modified (); - } - else - set_cameraupvectormode ("manual"); - } - } - - void set_cameraviewangle (const octave_value& val) - { - if (! error_state) - { - if (cameraviewangle.set (val, false)) - { - set_cameraviewanglemode ("manual"); - cameraviewangle.run_listeners (POSTSET); - mark_modified (); - } - else - set_cameraviewanglemode ("manual"); - } - } - - void set_camerapositionmode (const octave_value& val) - { - if (! error_state) - { - if (camerapositionmode.set (val, true)) - { - mark_modified (); - } - } - } - - void set_cameratargetmode (const octave_value& val) - { - if (! error_state) - { - if (cameratargetmode.set (val, true)) - { - mark_modified (); - } - } - } - - void set_cameraupvectormode (const octave_value& val) - { - if (! error_state) - { - if (cameraupvectormode.set (val, true)) - { - mark_modified (); - } - } - } - - void set_cameraviewanglemode (const octave_value& val) - { - if (! error_state) - { - if (cameraviewanglemode.set (val, true)) - { - mark_modified (); - } - } - } - - void set_currentpoint (const octave_value& val) - { - if (! error_state) - { - if (currentpoint.set (val, true)) - { - mark_modified (); - } - } - } - - void set_drawmode (const octave_value& val) - { - if (! error_state) - { - if (drawmode.set (val, true)) - { - mark_modified (); - } - } - } - - void set_fontangle (const octave_value& val) - { - if (! error_state) - { - if (fontangle.set (val, true)) - { - mark_modified (); - } - } - } - - void set_fontname (const octave_value& val) - { - if (! error_state) - { - if (fontname.set (val, true)) - { - mark_modified (); - } - } - } - - void set_fontsize (const octave_value& val) - { - if (! error_state) - { - if (fontsize.set (val, true)) - { - mark_modified (); - } - } - } - - void set_fontunits (const octave_value& val); - - void update_fontunits (void); - - void set_fontweight (const octave_value& val) - { - if (! error_state) - { - if (fontweight.set (val, true)) - { - mark_modified (); - } - } - } - - void set_gridlinestyle (const octave_value& val) - { - if (! error_state) - { - if (gridlinestyle.set (val, true)) - { - mark_modified (); - } - } - } - - void set_linestyleorder (const octave_value& val) - { - if (! error_state) - { - if (linestyleorder.set (val, true)) - { - mark_modified (); - } - } - } - - void set_linewidth (const octave_value& val) - { - if (! error_state) - { - if (linewidth.set (val, true)) - { - mark_modified (); - } - } - } - - void set_minorgridlinestyle (const octave_value& val) - { - if (! error_state) - { - if (minorgridlinestyle.set (val, true)) - { - mark_modified (); - } - } - } - - void set_plotboxaspectratio (const octave_value& val) - { - if (! error_state) - { - if (plotboxaspectratio.set (val, false)) - { - set_plotboxaspectratiomode ("manual"); - update_plotboxaspectratio (); - plotboxaspectratio.run_listeners (POSTSET); - mark_modified (); - } - else - set_plotboxaspectratiomode ("manual"); - } - } - - void set_plotboxaspectratiomode (const octave_value& val) - { - if (! error_state) - { - if (plotboxaspectratiomode.set (val, true)) - { - update_plotboxaspectratiomode (); - mark_modified (); - } - } - } - - void set_projection (const octave_value& val) - { - if (! error_state) - { - if (projection.set (val, true)) - { - mark_modified (); - } - } - } - - void set_tickdir (const octave_value& val) - { - if (! error_state) - { - if (tickdir.set (val, false)) - { - set_tickdirmode ("manual"); - update_tickdir (); - tickdir.run_listeners (POSTSET); - mark_modified (); - } - else - set_tickdirmode ("manual"); - } - } - - void set_tickdirmode (const octave_value& val) - { - if (! error_state) - { - if (tickdirmode.set (val, true)) - { - update_tickdirmode (); - mark_modified (); - } - } - } - - void set_ticklength (const octave_value& val) - { - if (! error_state) - { - if (ticklength.set (val, true)) - { - mark_modified (); - } - } - } - - void set_tightinset (const octave_value& val) - { - if (! error_state) - { - if (tightinset.set (val, true)) - { - mark_modified (); - } - } - } - - void set_units (const octave_value& val); - - void update_units (void); - - void set_x_viewtransform (const octave_value& val) - { - if (! error_state) - { - if (x_viewtransform.set (val, true)) - { - mark_modified (); - } - } - } - - void set_x_projectiontransform (const octave_value& val) - { - if (! error_state) - { - if (x_projectiontransform.set (val, true)) - { - mark_modified (); - } - } - } - - void set_x_viewporttransform (const octave_value& val) - { - if (! error_state) - { - if (x_viewporttransform.set (val, true)) - { - mark_modified (); - } - } - } - - void set_x_normrendertransform (const octave_value& val) - { - if (! error_state) - { - if (x_normrendertransform.set (val, true)) - { - mark_modified (); - } - } - } - - void set_x_rendertransform (const octave_value& val) - { - if (! error_state) - { - if (x_rendertransform.set (val, true)) - { - mark_modified (); - } - } - } - - void set_xmtick (const octave_value& val) - { - if (! error_state) - { - if (xmtick.set (val, true)) - { - mark_modified (); - } - } - } - - void set_ymtick (const octave_value& val) - { - if (! error_state) - { - if (ymtick.set (val, true)) - { - mark_modified (); - } - } - } - - void set_zmtick (const octave_value& val) - { - if (! error_state) - { - if (zmtick.set (val, true)) - { - mark_modified (); - } - } - } - - - protected: - void init (void); - - private: - void update_xscale (void) { sx = get_xscale (); } - void update_yscale (void) { sy = get_yscale (); } - void update_zscale (void) { sz = get_zscale (); } - - void update_view (void) { update_camera (); update_axes_layout (); } - void update_dataaspectratio (void) { update_transform (); } - void update_dataaspectratiomode (void) { update_transform (); } - void update_plotboxaspectratio (void) { update_transform (); } - void update_plotboxaspectratiomode (void) { update_transform (); } - - void update_layer (void) { update_axes_layout (); } - void update_yaxislocation (void) { update_axes_layout (); } - void update_xaxislocation (void) { update_axes_layout (); } - - void update_xdir (void) { update_camera (); update_axes_layout (); } - void update_ydir (void) { update_camera (); update_axes_layout (); } - void update_zdir (void) { update_camera (); update_axes_layout (); } - - void update_ticklengths (void); - void update_tickdir (void) { update_ticklengths (); } - void update_tickdirmode (void) { update_ticklengths (); } - - void update_xtick (void) - { - if (xticklabelmode.is ("auto")) - calc_ticklabels (xtick, xticklabel, xscale.is ("log")); - } - void update_ytick (void) - { - if (yticklabelmode.is ("auto")) - calc_ticklabels (ytick, yticklabel, yscale.is ("log")); - } - void update_ztick (void) - { - if (zticklabelmode.is ("auto")) - calc_ticklabels (ztick, zticklabel, zscale.is ("log")); - } - - void update_xtickmode (void) - { - if (xtickmode.is ("auto")) - { - calc_ticks_and_lims (xlim, xtick, xmtick, xlimmode.is ("auto"), xscale.is ("log")); - update_xtick (); - } - } - void update_ytickmode (void) - { - if (ytickmode.is ("auto")) - { - calc_ticks_and_lims (ylim, ytick, ymtick, ylimmode.is ("auto"), yscale.is ("log")); - update_ytick (); - } - } - void update_ztickmode (void) - { - if (ztickmode.is ("auto")) - { - calc_ticks_and_lims (zlim, ztick, zmtick, zlimmode.is ("auto"), zscale.is ("log")); - update_ztick (); - } - } - - void update_xticklabelmode (void) - { - if (xticklabelmode.is ("auto")) - calc_ticklabels (xtick, xticklabel, xscale.is ("log")); - } - void update_yticklabelmode (void) - { - if (yticklabelmode.is ("auto")) - calc_ticklabels (ytick, yticklabel, yscale.is ("log")); - } - void update_zticklabelmode (void) - { - if (zticklabelmode.is ("auto")) - calc_ticklabels (ztick, zticklabel, zscale.is ("log")); - } - - void sync_positions (void); - void update_outerposition (void) { sync_positions ();} - void update_position (void) { sync_positions (); } - - double calc_tick_sep (double minval, double maxval); - void calc_ticks_and_lims (array_property& lims, array_property& ticks, array_property& mticks, - bool limmode_is_auto, bool is_logscale); - void calc_ticklabels (const array_property& ticks, any_property& labels, bool is_logscale); - Matrix get_ticklabel_extents (const Matrix& ticks, - const string_vector& ticklabels, - const Matrix& limits); - - void fix_limits (array_property& lims) - { - if (lims.get ().is_empty ()) - return; - - Matrix l = lims.get ().matrix_value (); - if (l(0) > l(1)) - { - l(0) = 0; - l(1) = 1; - lims = l; - } - else if (l(0) == l(1)) - { - l(0) -= 0.5; - l(1) += 0.5; - lims = l; - } - } - - public: - Matrix get_axis_limits (double xmin, double xmax, double min_pos, bool logscale); - - void update_xlim (bool do_clr_zoom = true) - { - if (xtickmode.is ("auto")) - calc_ticks_and_lims (xlim, xtick, xmtick, xlimmode.is ("auto"), xscale.is ("log")); - if (xticklabelmode.is ("auto")) - calc_ticklabels (xtick, xticklabel, xscale.is ("log")); - - fix_limits (xlim); - - if (do_clr_zoom) - zoom_stack.clear (); - - update_axes_layout (); - } - - void update_ylim (bool do_clr_zoom = true) - { - if (ytickmode.is ("auto")) - calc_ticks_and_lims (ylim, ytick, ymtick, ylimmode.is ("auto"), yscale.is ("log")); - if (yticklabelmode.is ("auto")) - calc_ticklabels (ytick, yticklabel, yscale.is ("log")); - - fix_limits (ylim); - - if (do_clr_zoom) - zoom_stack.clear (); - - update_axes_layout (); - } - - void update_zlim (void) - { - if (ztickmode.is ("auto")) - calc_ticks_and_lims (zlim, ztick, zmtick, zlimmode.is ("auto"), zscale.is ("log")); - if (zticklabelmode.is ("auto")) - calc_ticklabels (ztick, zticklabel, zscale.is ("log")); - - fix_limits (zlim); - - zoom_stack.clear (); - - update_axes_layout (); - } - - }; - - private: - properties xproperties; - - public: - axes (const graphics_handle& mh, const graphics_handle& p) - : base_graphics_object (), xproperties (mh, p), default_properties () - { - xproperties.override_defaults (*this); - xproperties.update_transform (); - } - - ~axes (void) { xproperties.delete_children (); } - - void override_defaults (base_graphics_object& obj) - { - // Allow parent (figure) to override first (properties knows how - // to find the parent object). - xproperties.override_defaults (obj); - - // Now override with our defaults. If the default_properties - // list includes the properties for all defaults (line, - // surface, etc.) then we don't have to know the type of OBJ - // here, we just call its set function and let it decide which - // properties from the list to use. - obj.set_from_list (default_properties); - } - - void set (const caseless_str& name, const octave_value& value) - { - if (name.compare ("default", 7)) - // strip "default", pass rest to function that will - // parse the remainder and add the element to the - // default_properties map. - default_properties.set (name.substr (7), value); - else - xproperties.set (name, value); - } - - void set_defaults (const std::string& mode) - { - remove_all_listeners (); - xproperties.set_defaults (*this, mode); - } - - octave_value get (const caseless_str& name) const - { - octave_value retval; - - // FIXME -- finish this. - if (name.compare ("default", 7)) - retval = get_default (name.substr (7)); - else - retval = xproperties.get (name); - - return retval; - } - - octave_value get_default (const caseless_str& name) const; - - octave_value get_defaults (void) const - { - return default_properties.as_struct ("default"); - } - - base_properties& get_properties (void) { return xproperties; } - - const base_properties& get_properties (void) const { return xproperties; } - - void update_axis_limits (const std::string& axis_type); - - void update_axis_limits (const std::string& axis_type, - const graphics_handle& h); - - bool valid_object (void) const { return true; } - - void reset_default_properties (void); - - private: - property_list default_properties; - }; - - // --------------------------------------------------------------------- - - class OCTINTERP_API line : public base_graphics_object - { - public: - class OCTINTERP_API properties : public base_properties - { - public: - // See the genprops.awk script for an explanation of the - // properties declarations. - - // properties which are not in matlab: interpreter - - public: - properties (const graphics_handle& mh, const graphics_handle& p); - - ~properties (void) { } - - void set (const caseless_str& pname, const octave_value& val); - - octave_value get (bool all = false) const; - - octave_value get (const caseless_str& pname) const; - - octave_value get (const std::string& pname) const - { - return get (caseless_str (pname)); - } - - octave_value get (const char *pname) const - { - return get (caseless_str (pname)); - } - - property get_property (const caseless_str& pname); - - std::string graphics_object_name (void) const { return go_name; } - - static property_list::pval_map_type factory_defaults (void); - - private: - static std::string go_name; - - public: - - - static std::set core_property_names (void); - - static bool has_core_property (const caseless_str& pname); - - std::set all_property_names (void) const; - - bool has_property (const caseless_str& pname) const; - - private: - - row_vector_property xdata; - row_vector_property ydata; - row_vector_property zdata; - string_property xdatasource; - string_property ydatasource; - string_property zdatasource; - color_property color; - radio_property linestyle; - double_property linewidth; - radio_property marker; - color_property markeredgecolor; - color_property markerfacecolor; - double_property markersize; - radio_property interpreter; - string_property displayname; - radio_property erasemode; - row_vector_property xlim; - row_vector_property ylim; - row_vector_property zlim; - bool_property xliminclude; - bool_property yliminclude; - bool_property zliminclude; - - public: - - enum - { - ID_XDATA = 4000, - ID_YDATA = 4001, - ID_ZDATA = 4002, - ID_XDATASOURCE = 4003, - ID_YDATASOURCE = 4004, - ID_ZDATASOURCE = 4005, - ID_COLOR = 4006, - ID_LINESTYLE = 4007, - ID_LINEWIDTH = 4008, - ID_MARKER = 4009, - ID_MARKEREDGECOLOR = 4010, - ID_MARKERFACECOLOR = 4011, - ID_MARKERSIZE = 4012, - ID_INTERPRETER = 4013, - ID_DISPLAYNAME = 4014, - ID_ERASEMODE = 4015, - ID_XLIM = 4016, - ID_YLIM = 4017, - ID_ZLIM = 4018, - ID_XLIMINCLUDE = 4019, - ID_YLIMINCLUDE = 4020, - ID_ZLIMINCLUDE = 4021 - }; - - octave_value get_xdata (void) const { return xdata.get (); } - - octave_value get_ydata (void) const { return ydata.get (); } - - octave_value get_zdata (void) const { return zdata.get (); } - - std::string get_xdatasource (void) const { return xdatasource.string_value (); } - - std::string get_ydatasource (void) const { return ydatasource.string_value (); } - - std::string get_zdatasource (void) const { return zdatasource.string_value (); } - - bool color_is_rgb (void) const { return color.is_rgb (); } - bool color_is (const std::string& v) const { return color.is (v); } - Matrix get_color_rgb (void) const { return (color.is_rgb () ? color.rgb () : Matrix ()); } - octave_value get_color (void) const { return color.get (); } - - bool linestyle_is (const std::string& v) const { return linestyle.is (v); } - std::string get_linestyle (void) const { return linestyle.current_value (); } - - double get_linewidth (void) const { return linewidth.double_value (); } - - bool marker_is (const std::string& v) const { return marker.is (v); } - std::string get_marker (void) const { return marker.current_value (); } - - bool markeredgecolor_is_rgb (void) const { return markeredgecolor.is_rgb (); } - bool markeredgecolor_is (const std::string& v) const { return markeredgecolor.is (v); } - Matrix get_markeredgecolor_rgb (void) const { return (markeredgecolor.is_rgb () ? markeredgecolor.rgb () : Matrix ()); } - octave_value get_markeredgecolor (void) const { return markeredgecolor.get (); } - - bool markerfacecolor_is_rgb (void) const { return markerfacecolor.is_rgb (); } - bool markerfacecolor_is (const std::string& v) const { return markerfacecolor.is (v); } - Matrix get_markerfacecolor_rgb (void) const { return (markerfacecolor.is_rgb () ? markerfacecolor.rgb () : Matrix ()); } - octave_value get_markerfacecolor (void) const { return markerfacecolor.get (); } - - double get_markersize (void) const { return markersize.double_value (); } - - bool interpreter_is (const std::string& v) const { return interpreter.is (v); } - std::string get_interpreter (void) const { return interpreter.current_value (); } - - std::string get_displayname (void) const { return displayname.string_value (); } - - bool erasemode_is (const std::string& v) const { return erasemode.is (v); } - std::string get_erasemode (void) const { return erasemode.current_value (); } - - octave_value get_xlim (void) const { return xlim.get (); } - - octave_value get_ylim (void) const { return ylim.get (); } - - octave_value get_zlim (void) const { return zlim.get (); } - - bool is_xliminclude (void) const { return xliminclude.is_on (); } - std::string get_xliminclude (void) const { return xliminclude.current_value (); } - - bool is_yliminclude (void) const { return yliminclude.is_on (); } - std::string get_yliminclude (void) const { return yliminclude.current_value (); } - - bool is_zliminclude (void) const { return zliminclude.is_on (); } - std::string get_zliminclude (void) const { return zliminclude.current_value (); } - - - void set_xdata (const octave_value& val) - { - if (! error_state) - { - if (xdata.set (val, true)) - { - update_xdata (); - mark_modified (); - } - } - } - - void set_ydata (const octave_value& val) - { - if (! error_state) - { - if (ydata.set (val, true)) - { - update_ydata (); - mark_modified (); - } - } - } - - void set_zdata (const octave_value& val) - { - if (! error_state) - { - if (zdata.set (val, true)) - { - update_zdata (); - mark_modified (); - } - } - } - - void set_xdatasource (const octave_value& val) - { - if (! error_state) - { - if (xdatasource.set (val, true)) - { - mark_modified (); - } - } - } - - void set_ydatasource (const octave_value& val) - { - if (! error_state) - { - if (ydatasource.set (val, true)) - { - mark_modified (); - } - } - } - - void set_zdatasource (const octave_value& val) - { - if (! error_state) - { - if (zdatasource.set (val, true)) - { - mark_modified (); - } - } - } - - void set_color (const octave_value& val) - { - if (! error_state) - { - if (color.set (val, true)) - { - mark_modified (); - } - } - } - - void set_linestyle (const octave_value& val) - { - if (! error_state) - { - if (linestyle.set (val, true)) - { - mark_modified (); - } - } - } - - void set_linewidth (const octave_value& val) - { - if (! error_state) - { - if (linewidth.set (val, true)) - { - mark_modified (); - } - } - } - - void set_marker (const octave_value& val) - { - if (! error_state) - { - if (marker.set (val, true)) - { - mark_modified (); - } - } - } - - void set_markeredgecolor (const octave_value& val) - { - if (! error_state) - { - if (markeredgecolor.set (val, true)) - { - mark_modified (); - } - } - } - - void set_markerfacecolor (const octave_value& val) - { - if (! error_state) - { - if (markerfacecolor.set (val, true)) - { - mark_modified (); - } - } - } - - void set_markersize (const octave_value& val) - { - if (! error_state) - { - if (markersize.set (val, true)) - { - mark_modified (); - } - } - } - - void set_interpreter (const octave_value& val) - { - if (! error_state) - { - if (interpreter.set (val, true)) - { - mark_modified (); - } - } - } - - void set_displayname (const octave_value& val) - { - if (! error_state) - { - if (displayname.set (val, true)) - { - mark_modified (); - } - } - } - - void set_erasemode (const octave_value& val) - { - if (! error_state) - { - if (erasemode.set (val, true)) - { - mark_modified (); - } - } - } - - void set_xlim (const octave_value& val) - { - if (! error_state) - { - if (xlim.set (val, false)) - { - update_axis_limits ("xlim"); - xlim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_ylim (const octave_value& val) - { - if (! error_state) - { - if (ylim.set (val, false)) - { - update_axis_limits ("ylim"); - ylim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_zlim (const octave_value& val) - { - if (! error_state) - { - if (zlim.set (val, false)) - { - update_axis_limits ("zlim"); - zlim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_xliminclude (const octave_value& val) - { - if (! error_state) - { - if (xliminclude.set (val, false)) - { - update_axis_limits ("xliminclude"); - xliminclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_yliminclude (const octave_value& val) - { - if (! error_state) - { - if (yliminclude.set (val, false)) - { - update_axis_limits ("yliminclude"); - yliminclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_zliminclude (const octave_value& val) - { - if (! error_state) - { - if (zliminclude.set (val, false)) - { - update_axis_limits ("zliminclude"); - zliminclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - - private: - Matrix compute_xlim (void) const; - Matrix compute_ylim (void) const; - - void update_xdata (void) { set_xlim (compute_xlim ()); } - - void update_ydata (void) { set_ylim (compute_ylim ()); } - - void update_zdata (void) - { - set_zlim (zdata.get_limits ()); - set_zliminclude (get_zdata ().numel () > 0); - } - }; - - private: - properties xproperties; - - public: - line (const graphics_handle& mh, const graphics_handle& p) - : base_graphics_object (), xproperties (mh, p) - { - xproperties.override_defaults (*this); - } - - ~line (void) { xproperties.delete_children (); } - - base_properties& get_properties (void) { return xproperties; } - - const base_properties& get_properties (void) const { return xproperties; } - - bool valid_object (void) const { return true; } - }; - - // --------------------------------------------------------------------- - - class OCTINTERP_API text : public base_graphics_object - { - public: - class OCTINTERP_API properties : public base_properties - { - public: - // See the genprops.awk script for an explanation of the - // properties declarations. - - public: - properties (const graphics_handle& mh, const graphics_handle& p); - - ~properties (void) { } - - void set (const caseless_str& pname, const octave_value& val); - - octave_value get (bool all = false) const; - - octave_value get (const caseless_str& pname) const; - - octave_value get (const std::string& pname) const - { - return get (caseless_str (pname)); - } - - octave_value get (const char *pname) const - { - return get (caseless_str (pname)); - } - - property get_property (const caseless_str& pname); - - std::string graphics_object_name (void) const { return go_name; } - - static property_list::pval_map_type factory_defaults (void); - - private: - static std::string go_name; - - public: - - - static std::set core_property_names (void); - - static bool has_core_property (const caseless_str& pname); - - std::set all_property_names (void) const; - - bool has_property (const caseless_str& pname) const; - - private: - - string_property string; - radio_property units; - array_property position; - double_property rotation; - radio_property horizontalalignment; - color_property color; - string_property fontname; - double_property fontsize; - radio_property fontangle; - radio_property fontweight; - radio_property interpreter; - color_property backgroundcolor; - string_property displayname; - color_property edgecolor; - radio_property erasemode; - bool_property editing; - radio_property fontunits; - radio_property linestyle; - double_property linewidth; - double_property margin; - radio_property verticalalignment; - array_property extent; - row_vector_property xlim; - row_vector_property ylim; - row_vector_property zlim; - bool_property xliminclude; - bool_property yliminclude; - bool_property zliminclude; - radio_property positionmode; - radio_property rotationmode; - radio_property horizontalalignmentmode; - radio_property verticalalignmentmode; - radio_property autopos_tag; - - public: - - enum - { - ID_STRING = 5000, - ID_UNITS = 5001, - ID_POSITION = 5002, - ID_ROTATION = 5003, - ID_HORIZONTALALIGNMENT = 5004, - ID_COLOR = 5005, - ID_FONTNAME = 5006, - ID_FONTSIZE = 5007, - ID_FONTANGLE = 5008, - ID_FONTWEIGHT = 5009, - ID_INTERPRETER = 5010, - ID_BACKGROUNDCOLOR = 5011, - ID_DISPLAYNAME = 5012, - ID_EDGECOLOR = 5013, - ID_ERASEMODE = 5014, - ID_EDITING = 5015, - ID_FONTUNITS = 5016, - ID_LINESTYLE = 5017, - ID_LINEWIDTH = 5018, - ID_MARGIN = 5019, - ID_VERTICALALIGNMENT = 5020, - ID_EXTENT = 5021, - ID_XLIM = 5022, - ID_YLIM = 5023, - ID_ZLIM = 5024, - ID_XLIMINCLUDE = 5025, - ID_YLIMINCLUDE = 5026, - ID_ZLIMINCLUDE = 5027, - ID_POSITIONMODE = 5028, - ID_ROTATIONMODE = 5029, - ID_HORIZONTALALIGNMENTMODE = 5030, - ID_VERTICALALIGNMENTMODE = 5031, - ID_AUTOPOS_TAG = 5032 - }; - - std::string get_string (void) const { return string.string_value (); } - - bool units_is (const std::string& v) const { return units.is (v); } - std::string get_units (void) const { return units.current_value (); } - - octave_value get_position (void) const { return position.get (); } - - double get_rotation (void) const { return rotation.double_value (); } - - bool horizontalalignment_is (const std::string& v) const { return horizontalalignment.is (v); } - std::string get_horizontalalignment (void) const { return horizontalalignment.current_value (); } - - bool color_is_rgb (void) const { return color.is_rgb (); } - bool color_is (const std::string& v) const { return color.is (v); } - Matrix get_color_rgb (void) const { return (color.is_rgb () ? color.rgb () : Matrix ()); } - octave_value get_color (void) const { return color.get (); } - - std::string get_fontname (void) const { return fontname.string_value (); } - - double get_fontsize (void) const { return fontsize.double_value (); } - - bool fontangle_is (const std::string& v) const { return fontangle.is (v); } - std::string get_fontangle (void) const { return fontangle.current_value (); } - - bool fontweight_is (const std::string& v) const { return fontweight.is (v); } - std::string get_fontweight (void) const { return fontweight.current_value (); } - - bool interpreter_is (const std::string& v) const { return interpreter.is (v); } - std::string get_interpreter (void) const { return interpreter.current_value (); } - - bool backgroundcolor_is_rgb (void) const { return backgroundcolor.is_rgb (); } - bool backgroundcolor_is (const std::string& v) const { return backgroundcolor.is (v); } - Matrix get_backgroundcolor_rgb (void) const { return (backgroundcolor.is_rgb () ? backgroundcolor.rgb () : Matrix ()); } - octave_value get_backgroundcolor (void) const { return backgroundcolor.get (); } - - std::string get_displayname (void) const { return displayname.string_value (); } - - bool edgecolor_is_rgb (void) const { return edgecolor.is_rgb (); } - bool edgecolor_is (const std::string& v) const { return edgecolor.is (v); } - Matrix get_edgecolor_rgb (void) const { return (edgecolor.is_rgb () ? edgecolor.rgb () : Matrix ()); } - octave_value get_edgecolor (void) const { return edgecolor.get (); } - - bool erasemode_is (const std::string& v) const { return erasemode.is (v); } - std::string get_erasemode (void) const { return erasemode.current_value (); } - - bool is_editing (void) const { return editing.is_on (); } - std::string get_editing (void) const { return editing.current_value (); } - - bool fontunits_is (const std::string& v) const { return fontunits.is (v); } - std::string get_fontunits (void) const { return fontunits.current_value (); } - - bool linestyle_is (const std::string& v) const { return linestyle.is (v); } - std::string get_linestyle (void) const { return linestyle.current_value (); } - - double get_linewidth (void) const { return linewidth.double_value (); } - - double get_margin (void) const { return margin.double_value (); } - - bool verticalalignment_is (const std::string& v) const { return verticalalignment.is (v); } - std::string get_verticalalignment (void) const { return verticalalignment.current_value (); } - - octave_value get_extent (void) const; - - octave_value get_xlim (void) const { return xlim.get (); } - - octave_value get_ylim (void) const { return ylim.get (); } - - octave_value get_zlim (void) const { return zlim.get (); } - - bool is_xliminclude (void) const { return xliminclude.is_on (); } - std::string get_xliminclude (void) const { return xliminclude.current_value (); } - - bool is_yliminclude (void) const { return yliminclude.is_on (); } - std::string get_yliminclude (void) const { return yliminclude.current_value (); } - - bool is_zliminclude (void) const { return zliminclude.is_on (); } - std::string get_zliminclude (void) const { return zliminclude.current_value (); } - - bool positionmode_is (const std::string& v) const { return positionmode.is (v); } - std::string get_positionmode (void) const { return positionmode.current_value (); } - - bool rotationmode_is (const std::string& v) const { return rotationmode.is (v); } - std::string get_rotationmode (void) const { return rotationmode.current_value (); } - - bool horizontalalignmentmode_is (const std::string& v) const { return horizontalalignmentmode.is (v); } - std::string get_horizontalalignmentmode (void) const { return horizontalalignmentmode.current_value (); } - - bool verticalalignmentmode_is (const std::string& v) const { return verticalalignmentmode.is (v); } - std::string get_verticalalignmentmode (void) const { return verticalalignmentmode.current_value (); } - - bool autopos_tag_is (const std::string& v) const { return autopos_tag.is (v); } - std::string get_autopos_tag (void) const { return autopos_tag.current_value (); } - - - void set_string (const octave_value& val) - { - if (! error_state) - { - if (string.set (val, true)) - { - update_string (); - mark_modified (); - } - } - } - - void set_units (const octave_value& val) - { - if (! error_state) - { - if (units.set (val, true)) - { - update_units (); - mark_modified (); - } - } - } - - void set_position (const octave_value& val) - { - if (! error_state) - { - if (position.set (val, false)) - { - set_positionmode ("manual"); - update_position (); - position.run_listeners (POSTSET); - mark_modified (); - } - else - set_positionmode ("manual"); - } - } - - void set_rotation (const octave_value& val) - { - if (! error_state) - { - if (rotation.set (val, false)) - { - set_rotationmode ("manual"); - update_rotation (); - rotation.run_listeners (POSTSET); - mark_modified (); - } - else - set_rotationmode ("manual"); - } - } - - void set_horizontalalignment (const octave_value& val) - { - if (! error_state) - { - if (horizontalalignment.set (val, false)) - { - set_horizontalalignmentmode ("manual"); - update_horizontalalignment (); - horizontalalignment.run_listeners (POSTSET); - mark_modified (); - } - else - set_horizontalalignmentmode ("manual"); - } - } - - void set_color (const octave_value& val) - { - if (! error_state) - { - if (color.set (val, true)) - { - mark_modified (); - } - } - } - - void set_fontname (const octave_value& val) - { - if (! error_state) - { - if (fontname.set (val, true)) - { - update_fontname (); - mark_modified (); - } - } - } - - void set_fontsize (const octave_value& val) - { - if (! error_state) - { - if (fontsize.set (val, true)) - { - update_fontsize (); - mark_modified (); - } - } - } - - void set_fontangle (const octave_value& val) - { - if (! error_state) - { - if (fontangle.set (val, true)) - { - update_fontangle (); - mark_modified (); - } - } - } - - void set_fontweight (const octave_value& val) - { - if (! error_state) - { - if (fontweight.set (val, true)) - { - update_fontweight (); - mark_modified (); - } - } - } - - void set_interpreter (const octave_value& val) - { - if (! error_state) - { - if (interpreter.set (val, true)) - { - update_interpreter (); - mark_modified (); - } - } - } - - void set_backgroundcolor (const octave_value& val) - { - if (! error_state) - { - if (backgroundcolor.set (val, true)) - { - mark_modified (); - } - } - } - - void set_displayname (const octave_value& val) - { - if (! error_state) - { - if (displayname.set (val, true)) - { - mark_modified (); - } - } - } - - void set_edgecolor (const octave_value& val) - { - if (! error_state) - { - if (edgecolor.set (val, true)) - { - mark_modified (); - } - } - } - - void set_erasemode (const octave_value& val) - { - if (! error_state) - { - if (erasemode.set (val, true)) - { - mark_modified (); - } - } - } - - void set_editing (const octave_value& val) - { - if (! error_state) - { - if (editing.set (val, true)) - { - mark_modified (); - } - } - } - - void set_fontunits (const octave_value& val) - { - if (! error_state) - { - if (fontunits.set (val, true)) - { - mark_modified (); - } - } - } - - void set_linestyle (const octave_value& val) - { - if (! error_state) - { - if (linestyle.set (val, true)) - { - mark_modified (); - } - } - } - - void set_linewidth (const octave_value& val) - { - if (! error_state) - { - if (linewidth.set (val, true)) - { - mark_modified (); - } - } - } - - void set_margin (const octave_value& val) - { - if (! error_state) - { - if (margin.set (val, true)) - { - mark_modified (); - } - } - } - - void set_verticalalignment (const octave_value& val) - { - if (! error_state) - { - if (verticalalignment.set (val, false)) - { - set_verticalalignmentmode ("manual"); - update_verticalalignment (); - verticalalignment.run_listeners (POSTSET); - mark_modified (); - } - else - set_verticalalignmentmode ("manual"); - } - } - - void set_extent (const octave_value& val) - { - if (! error_state) - { - if (extent.set (val, true)) - { - mark_modified (); - } - } - } - - void set_xlim (const octave_value& val) - { - if (! error_state) - { - if (xlim.set (val, false)) - { - update_axis_limits ("xlim"); - xlim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_ylim (const octave_value& val) - { - if (! error_state) - { - if (ylim.set (val, false)) - { - update_axis_limits ("ylim"); - ylim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_zlim (const octave_value& val) - { - if (! error_state) - { - if (zlim.set (val, false)) - { - update_axis_limits ("zlim"); - zlim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_xliminclude (const octave_value& val) - { - if (! error_state) - { - if (xliminclude.set (val, false)) - { - update_axis_limits ("xliminclude"); - xliminclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_yliminclude (const octave_value& val) - { - if (! error_state) - { - if (yliminclude.set (val, false)) - { - update_axis_limits ("yliminclude"); - yliminclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_zliminclude (const octave_value& val) - { - if (! error_state) - { - if (zliminclude.set (val, false)) - { - update_axis_limits ("zliminclude"); - zliminclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_positionmode (const octave_value& val) - { - if (! error_state) - { - if (positionmode.set (val, true)) - { - update_positionmode (); - mark_modified (); - } - } - } - - void set_rotationmode (const octave_value& val) - { - if (! error_state) - { - if (rotationmode.set (val, true)) - { - update_rotationmode (); - mark_modified (); - } - } - } - - void set_horizontalalignmentmode (const octave_value& val) - { - if (! error_state) - { - if (horizontalalignmentmode.set (val, true)) - { - update_horizontalalignmentmode (); - mark_modified (); - } - } - } - - void set_verticalalignmentmode (const octave_value& val) - { - if (! error_state) - { - if (verticalalignmentmode.set (val, true)) - { - update_verticalalignmentmode (); - mark_modified (); - } - } - } - - void set_autopos_tag (const octave_value& val) - { - if (! error_state) - { - if (autopos_tag.set (val, true)) - { - mark_modified (); - } - } - } - - - Matrix get_data_position (void) const; - Matrix get_extent_matrix (void) const; - const uint8NDArray& get_pixels (void) const { return pixels; } - #if HAVE_FREETYPE - // freetype render, used for text rendering - ft_render renderer; - #endif - - protected: - void init (void) - { - position.add_constraint (dim_vector (1, 2)); - position.add_constraint (dim_vector (1, 3)); - cached_units = get_units (); - } - - private: - void update_position (void) - { - Matrix pos = get_data_position (); - Matrix lim; - - lim = Matrix (1, 3, pos(0)); - lim(2) = (lim(2) <= 0 ? octave_Inf : lim(2)); - set_xlim (lim); - - lim = Matrix (1, 3, pos(1)); - lim(2) = (lim(2) <= 0 ? octave_Inf : lim(2)); - set_ylim (lim); - - if (pos.numel () == 3) - { - lim = Matrix (1, 3, pos(2)); - lim(2) = (lim(2) <= 0 ? octave_Inf : lim(2)); - set_zliminclude ("on"); - set_zlim (lim); - } - else - set_zliminclude ("off"); - } - - void update_text_extent (void); - - void request_autopos (void); - void update_positionmode (void) { request_autopos (); } - void update_rotationmode (void) { request_autopos (); } - void update_horizontalalignmentmode (void) { request_autopos (); } - void update_verticalalignmentmode (void) { request_autopos (); } - - void update_string (void) { update_text_extent (); request_autopos ();} - void update_rotation (void) { update_text_extent (); } - void update_fontname (void) { update_text_extent (); } - void update_fontsize (void) { update_text_extent (); } - void update_fontangle (void) { update_text_extent (); } - void update_fontweight (void) { update_text_extent (); } - void update_interpreter (void) { update_text_extent (); } - void update_horizontalalignment (void) { update_text_extent (); } - void update_verticalalignment (void) { update_text_extent (); } - - void update_units (void); - - private: - std::string cached_units; - uint8NDArray pixels; - }; - - private: - properties xproperties; - - public: - text (const graphics_handle& mh, const graphics_handle& p) - : base_graphics_object (), xproperties (mh, p) - { - xproperties.override_defaults (*this); - } - - ~text (void) { xproperties.delete_children (); } - - base_properties& get_properties (void) { return xproperties; } - - const base_properties& get_properties (void) const { return xproperties; } - - bool valid_object (void) const { return true; } - }; - - // --------------------------------------------------------------------- - - class OCTINTERP_API image : public base_graphics_object - { - public: - class OCTINTERP_API properties : public base_properties - { - public: - bool is_climinclude (void) const - { return (climinclude.is_on () && cdatamapping.is ("scaled")); } - std::string get_climinclude (void) const - { return climinclude.current_value (); } - - octave_value get_color_data (void) const; - - // See the genprops.awk script for an explanation of the - // properties declarations. - - public: - properties (const graphics_handle& mh, const graphics_handle& p); - - ~properties (void) { } - - void set (const caseless_str& pname, const octave_value& val); - - octave_value get (bool all = false) const; - - octave_value get (const caseless_str& pname) const; - - octave_value get (const std::string& pname) const - { - return get (caseless_str (pname)); - } - - octave_value get (const char *pname) const - { - return get (caseless_str (pname)); - } - - property get_property (const caseless_str& pname); - - std::string graphics_object_name (void) const { return go_name; } - - static property_list::pval_map_type factory_defaults (void); - - private: - static std::string go_name; - - public: - - - static std::set core_property_names (void); - - static bool has_core_property (const caseless_str& pname); - - std::set all_property_names (void) const; - - bool has_property (const caseless_str& pname) const; - - private: - - row_vector_property xdata; - row_vector_property ydata; - array_property cdata; - radio_property cdatamapping; - row_vector_property xlim; - row_vector_property ylim; - row_vector_property clim; - bool_property xliminclude; - bool_property yliminclude; - bool_property climinclude; - - public: - - enum - { - ID_XDATA = 6000, - ID_YDATA = 6001, - ID_CDATA = 6002, - ID_CDATAMAPPING = 6003, - ID_XLIM = 6004, - ID_YLIM = 6005, - ID_CLIM = 6006, - ID_XLIMINCLUDE = 6007, - ID_YLIMINCLUDE = 6008, - ID_CLIMINCLUDE = 6009 - }; - - octave_value get_xdata (void) const { return xdata.get (); } - - octave_value get_ydata (void) const { return ydata.get (); } - - octave_value get_cdata (void) const { return cdata.get (); } - - bool cdatamapping_is (const std::string& v) const { return cdatamapping.is (v); } - std::string get_cdatamapping (void) const { return cdatamapping.current_value (); } - - octave_value get_xlim (void) const { return xlim.get (); } - - octave_value get_ylim (void) const { return ylim.get (); } - - octave_value get_clim (void) const { return clim.get (); } - - bool is_xliminclude (void) const { return xliminclude.is_on (); } - std::string get_xliminclude (void) const { return xliminclude.current_value (); } - - bool is_yliminclude (void) const { return yliminclude.is_on (); } - std::string get_yliminclude (void) const { return yliminclude.current_value (); } - - - void set_xdata (const octave_value& val) - { - if (! error_state) - { - if (xdata.set (val, true)) - { - update_xdata (); - mark_modified (); - } - } - } - - void set_ydata (const octave_value& val) - { - if (! error_state) - { - if (ydata.set (val, true)) - { - update_ydata (); - mark_modified (); - } - } - } - - void set_cdata (const octave_value& val) - { - if (! error_state) - { - if (cdata.set (val, true)) - { - update_cdata (); - mark_modified (); - } - } - } - - void set_cdatamapping (const octave_value& val) - { - if (! error_state) - { - if (cdatamapping.set (val, false)) - { - update_axis_limits ("cdatamapping"); - cdatamapping.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_xlim (const octave_value& val) - { - if (! error_state) - { - if (xlim.set (val, false)) - { - update_axis_limits ("xlim"); - xlim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_ylim (const octave_value& val) - { - if (! error_state) - { - if (ylim.set (val, false)) - { - update_axis_limits ("ylim"); - ylim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_clim (const octave_value& val) - { - if (! error_state) - { - if (clim.set (val, false)) - { - update_axis_limits ("clim"); - clim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_xliminclude (const octave_value& val) - { - if (! error_state) - { - if (xliminclude.set (val, false)) - { - update_axis_limits ("xliminclude"); - xliminclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_yliminclude (const octave_value& val) - { - if (! error_state) - { - if (yliminclude.set (val, false)) - { - update_axis_limits ("yliminclude"); - yliminclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_climinclude (const octave_value& val) - { - if (! error_state) - { - if (climinclude.set (val, false)) - { - update_axis_limits ("climinclude"); - climinclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - - protected: - void init (void) - { - xdata.add_constraint (2); - ydata.add_constraint (2); - cdata.add_constraint ("double"); - cdata.add_constraint ("single"); - cdata.add_constraint ("logical"); - cdata.add_constraint ("uint8"); - cdata.add_constraint ("uint16"); - cdata.add_constraint ("int16"); - cdata.add_constraint (dim_vector (-1, -1)); - cdata.add_constraint (dim_vector (-1, -1, 3)); - } - - private: - void update_xdata (void) - { - Matrix limits = xdata.get_limits (); - float dp = pixel_xsize (); - - limits(0) = limits(0) - dp; - limits(1) = limits(1) + dp; - set_xlim (limits); - } - - void update_ydata (void) - { - Matrix limits = ydata.get_limits (); - float dp = pixel_ysize (); - - limits(0) = limits(0) - dp; - limits(1) = limits(1) + dp; - set_ylim (limits); - } - - void update_cdata (void) - { - if (cdatamapping_is ("scaled")) - set_clim (cdata.get_limits ()); - else - clim = cdata.get_limits (); - } - - float pixel_size (octave_idx_type dim, const Matrix limits) - { - octave_idx_type l = dim - 1; - float dp; - - if (l > 0 && limits(0) != limits(1)) - dp = (limits(1) - limits(0))/(2*l); - else - { - if (limits(1) == limits(2)) - dp = 0.5; - else - dp = (limits(1) - limits(0))/2; - } - return dp; - } - - public: - float pixel_xsize (void) - { - return pixel_size ((get_cdata ().dims ())(1), xdata.get_limits ()); - } - - float pixel_ysize (void) - { - return pixel_size ((get_cdata ().dims ())(0), ydata.get_limits ()); - } - }; - - private: - properties xproperties; - - public: - image (const graphics_handle& mh, const graphics_handle& p) - : base_graphics_object (), xproperties (mh, p) - { - xproperties.override_defaults (*this); - } - - ~image (void) { xproperties.delete_children (); } - - base_properties& get_properties (void) { return xproperties; } - - const base_properties& get_properties (void) const { return xproperties; } - - bool valid_object (void) const { return true; } - }; - - // --------------------------------------------------------------------- - - class OCTINTERP_API patch : public base_graphics_object - { - public: - class OCTINTERP_API properties : public base_properties - { - public: - octave_value get_color_data (void) const; - - bool is_climinclude (void) const - { return (climinclude.is_on () && cdatamapping.is ("scaled")); } - std::string get_climinclude (void) const - { return climinclude.current_value (); } - - bool is_aliminclude (void) const - { return (aliminclude.is_on () && alphadatamapping.is ("scaled")); } - std::string get_aliminclude (void) const - { return aliminclude.current_value (); } - - // See the genprops.awk script for an explanation of the - // properties declarations. - - public: - properties (const graphics_handle& mh, const graphics_handle& p); - - ~properties (void) { } - - void set (const caseless_str& pname, const octave_value& val); - - octave_value get (bool all = false) const; - - octave_value get (const caseless_str& pname) const; - - octave_value get (const std::string& pname) const - { - return get (caseless_str (pname)); - } - - octave_value get (const char *pname) const - { - return get (caseless_str (pname)); - } - - property get_property (const caseless_str& pname); - - std::string graphics_object_name (void) const { return go_name; } - - static property_list::pval_map_type factory_defaults (void); - - private: - static std::string go_name; - - public: - - - static std::set core_property_names (void); - - static bool has_core_property (const caseless_str& pname); - - std::set all_property_names (void) const; - - bool has_property (const caseless_str& pname) const; - - private: - - array_property xdata; - array_property ydata; - array_property zdata; - array_property cdata; - radio_property cdatamapping; - array_property faces; - array_property facevertexalphadata; - array_property facevertexcdata; - array_property vertices; - array_property vertexnormals; - radio_property normalmode; - color_property facecolor; - double_radio_property facealpha; - radio_property facelighting; - color_property edgecolor; - double_radio_property edgealpha; - radio_property edgelighting; - radio_property backfacelighting; - double_property ambientstrength; - double_property diffusestrength; - double_property specularstrength; - double_property specularexponent; - double_property specularcolorreflectance; - radio_property erasemode; - radio_property linestyle; - double_property linewidth; - radio_property marker; - color_property markeredgecolor; - color_property markerfacecolor; - double_property markersize; - radio_property interpreter; - string_property displayname; - radio_property alphadatamapping; - row_vector_property xlim; - row_vector_property ylim; - row_vector_property zlim; - row_vector_property clim; - row_vector_property alim; - bool_property xliminclude; - bool_property yliminclude; - bool_property zliminclude; - bool_property climinclude; - bool_property aliminclude; - - public: - - enum - { - ID_XDATA = 7000, - ID_YDATA = 7001, - ID_ZDATA = 7002, - ID_CDATA = 7003, - ID_CDATAMAPPING = 7004, - ID_FACES = 7005, - ID_FACEVERTEXALPHADATA = 7006, - ID_FACEVERTEXCDATA = 7007, - ID_VERTICES = 7008, - ID_VERTEXNORMALS = 7009, - ID_NORMALMODE = 7010, - ID_FACECOLOR = 7011, - ID_FACEALPHA = 7012, - ID_FACELIGHTING = 7013, - ID_EDGECOLOR = 7014, - ID_EDGEALPHA = 7015, - ID_EDGELIGHTING = 7016, - ID_BACKFACELIGHTING = 7017, - ID_AMBIENTSTRENGTH = 7018, - ID_DIFFUSESTRENGTH = 7019, - ID_SPECULARSTRENGTH = 7020, - ID_SPECULAREXPONENT = 7021, - ID_SPECULARCOLORREFLECTANCE = 7022, - ID_ERASEMODE = 7023, - ID_LINESTYLE = 7024, - ID_LINEWIDTH = 7025, - ID_MARKER = 7026, - ID_MARKEREDGECOLOR = 7027, - ID_MARKERFACECOLOR = 7028, - ID_MARKERSIZE = 7029, - ID_INTERPRETER = 7030, - ID_DISPLAYNAME = 7031, - ID_ALPHADATAMAPPING = 7032, - ID_XLIM = 7033, - ID_YLIM = 7034, - ID_ZLIM = 7035, - ID_CLIM = 7036, - ID_ALIM = 7037, - ID_XLIMINCLUDE = 7038, - ID_YLIMINCLUDE = 7039, - ID_ZLIMINCLUDE = 7040, - ID_CLIMINCLUDE = 7041, - ID_ALIMINCLUDE = 7042 - }; - - octave_value get_xdata (void) const { return xdata.get (); } - - octave_value get_ydata (void) const { return ydata.get (); } - - octave_value get_zdata (void) const { return zdata.get (); } - - octave_value get_cdata (void) const { return cdata.get (); } - - bool cdatamapping_is (const std::string& v) const { return cdatamapping.is (v); } - std::string get_cdatamapping (void) const { return cdatamapping.current_value (); } - - octave_value get_faces (void) const { return faces.get (); } - - octave_value get_facevertexalphadata (void) const { return facevertexalphadata.get (); } - - octave_value get_facevertexcdata (void) const { return facevertexcdata.get (); } - - octave_value get_vertices (void) const { return vertices.get (); } - - octave_value get_vertexnormals (void) const { return vertexnormals.get (); } - - bool normalmode_is (const std::string& v) const { return normalmode.is (v); } - std::string get_normalmode (void) const { return normalmode.current_value (); } - - bool facecolor_is_rgb (void) const { return facecolor.is_rgb (); } - bool facecolor_is (const std::string& v) const { return facecolor.is (v); } - Matrix get_facecolor_rgb (void) const { return (facecolor.is_rgb () ? facecolor.rgb () : Matrix ()); } - octave_value get_facecolor (void) const { return facecolor.get (); } - - bool facealpha_is_double (void) const { return facealpha.is_double (); } - bool facealpha_is (const std::string& v) const { return facealpha.is (v); } - double get_facealpha_double (void) const { return (facealpha.is_double () ? facealpha.double_value () : 0); } - octave_value get_facealpha (void) const { return facealpha.get (); } - - bool facelighting_is (const std::string& v) const { return facelighting.is (v); } - std::string get_facelighting (void) const { return facelighting.current_value (); } - - bool edgecolor_is_rgb (void) const { return edgecolor.is_rgb (); } - bool edgecolor_is (const std::string& v) const { return edgecolor.is (v); } - Matrix get_edgecolor_rgb (void) const { return (edgecolor.is_rgb () ? edgecolor.rgb () : Matrix ()); } - octave_value get_edgecolor (void) const { return edgecolor.get (); } - - bool edgealpha_is_double (void) const { return edgealpha.is_double (); } - bool edgealpha_is (const std::string& v) const { return edgealpha.is (v); } - double get_edgealpha_double (void) const { return (edgealpha.is_double () ? edgealpha.double_value () : 0); } - octave_value get_edgealpha (void) const { return edgealpha.get (); } - - bool edgelighting_is (const std::string& v) const { return edgelighting.is (v); } - std::string get_edgelighting (void) const { return edgelighting.current_value (); } - - bool backfacelighting_is (const std::string& v) const { return backfacelighting.is (v); } - std::string get_backfacelighting (void) const { return backfacelighting.current_value (); } - - double get_ambientstrength (void) const { return ambientstrength.double_value (); } - - double get_diffusestrength (void) const { return diffusestrength.double_value (); } - - double get_specularstrength (void) const { return specularstrength.double_value (); } - - double get_specularexponent (void) const { return specularexponent.double_value (); } - - double get_specularcolorreflectance (void) const { return specularcolorreflectance.double_value (); } - - bool erasemode_is (const std::string& v) const { return erasemode.is (v); } - std::string get_erasemode (void) const { return erasemode.current_value (); } - - bool linestyle_is (const std::string& v) const { return linestyle.is (v); } - std::string get_linestyle (void) const { return linestyle.current_value (); } - - double get_linewidth (void) const { return linewidth.double_value (); } - - bool marker_is (const std::string& v) const { return marker.is (v); } - std::string get_marker (void) const { return marker.current_value (); } - - bool markeredgecolor_is_rgb (void) const { return markeredgecolor.is_rgb (); } - bool markeredgecolor_is (const std::string& v) const { return markeredgecolor.is (v); } - Matrix get_markeredgecolor_rgb (void) const { return (markeredgecolor.is_rgb () ? markeredgecolor.rgb () : Matrix ()); } - octave_value get_markeredgecolor (void) const { return markeredgecolor.get (); } - - bool markerfacecolor_is_rgb (void) const { return markerfacecolor.is_rgb (); } - bool markerfacecolor_is (const std::string& v) const { return markerfacecolor.is (v); } - Matrix get_markerfacecolor_rgb (void) const { return (markerfacecolor.is_rgb () ? markerfacecolor.rgb () : Matrix ()); } - octave_value get_markerfacecolor (void) const { return markerfacecolor.get (); } - - double get_markersize (void) const { return markersize.double_value (); } - - bool interpreter_is (const std::string& v) const { return interpreter.is (v); } - std::string get_interpreter (void) const { return interpreter.current_value (); } - - std::string get_displayname (void) const { return displayname.string_value (); } - - bool alphadatamapping_is (const std::string& v) const { return alphadatamapping.is (v); } - std::string get_alphadatamapping (void) const { return alphadatamapping.current_value (); } - - octave_value get_xlim (void) const { return xlim.get (); } - - octave_value get_ylim (void) const { return ylim.get (); } - - octave_value get_zlim (void) const { return zlim.get (); } - - octave_value get_clim (void) const { return clim.get (); } - - octave_value get_alim (void) const { return alim.get (); } - - bool is_xliminclude (void) const { return xliminclude.is_on (); } - std::string get_xliminclude (void) const { return xliminclude.current_value (); } - - bool is_yliminclude (void) const { return yliminclude.is_on (); } - std::string get_yliminclude (void) const { return yliminclude.current_value (); } - - bool is_zliminclude (void) const { return zliminclude.is_on (); } - std::string get_zliminclude (void) const { return zliminclude.current_value (); } - - - void set_xdata (const octave_value& val) - { - if (! error_state) - { - if (xdata.set (val, true)) - { - update_xdata (); - mark_modified (); - } - } - } - - void set_ydata (const octave_value& val) - { - if (! error_state) - { - if (ydata.set (val, true)) - { - update_ydata (); - mark_modified (); - } - } - } - - void set_zdata (const octave_value& val) - { - if (! error_state) - { - if (zdata.set (val, true)) - { - update_zdata (); - mark_modified (); - } - } - } - - void set_cdata (const octave_value& val) - { - if (! error_state) - { - if (cdata.set (val, true)) - { - update_cdata (); - mark_modified (); - } - } - } - - void set_cdatamapping (const octave_value& val) - { - if (! error_state) - { - if (cdatamapping.set (val, false)) - { - update_axis_limits ("cdatamapping"); - cdatamapping.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_faces (const octave_value& val) - { - if (! error_state) - { - if (faces.set (val, true)) - { - mark_modified (); - } - } - } - - void set_facevertexalphadata (const octave_value& val) - { - if (! error_state) - { - if (facevertexalphadata.set (val, true)) - { - mark_modified (); - } - } - } - - void set_facevertexcdata (const octave_value& val) - { - if (! error_state) - { - if (facevertexcdata.set (val, true)) - { - mark_modified (); - } - } - } - - void set_vertices (const octave_value& val) - { - if (! error_state) - { - if (vertices.set (val, true)) - { - mark_modified (); - } - } - } - - void set_vertexnormals (const octave_value& val) - { - if (! error_state) - { - if (vertexnormals.set (val, true)) - { - mark_modified (); - } - } - } - - void set_normalmode (const octave_value& val) - { - if (! error_state) - { - if (normalmode.set (val, true)) - { - mark_modified (); - } - } - } - - void set_facecolor (const octave_value& val) - { - if (! error_state) - { - if (facecolor.set (val, true)) - { - mark_modified (); - } - } - } - - void set_facealpha (const octave_value& val) - { - if (! error_state) - { - if (facealpha.set (val, true)) - { - mark_modified (); - } - } - } - - void set_facelighting (const octave_value& val) - { - if (! error_state) - { - if (facelighting.set (val, true)) - { - mark_modified (); - } - } - } - - void set_edgecolor (const octave_value& val) - { - if (! error_state) - { - if (edgecolor.set (val, true)) - { - mark_modified (); - } - } - } - - void set_edgealpha (const octave_value& val) - { - if (! error_state) - { - if (edgealpha.set (val, true)) - { - mark_modified (); - } - } - } - - void set_edgelighting (const octave_value& val) - { - if (! error_state) - { - if (edgelighting.set (val, true)) - { - mark_modified (); - } - } - } - - void set_backfacelighting (const octave_value& val) - { - if (! error_state) - { - if (backfacelighting.set (val, true)) - { - mark_modified (); - } - } - } - - void set_ambientstrength (const octave_value& val) - { - if (! error_state) - { - if (ambientstrength.set (val, true)) - { - mark_modified (); - } - } - } - - void set_diffusestrength (const octave_value& val) - { - if (! error_state) - { - if (diffusestrength.set (val, true)) - { - mark_modified (); - } - } - } - - void set_specularstrength (const octave_value& val) - { - if (! error_state) - { - if (specularstrength.set (val, true)) - { - mark_modified (); - } - } - } - - void set_specularexponent (const octave_value& val) - { - if (! error_state) - { - if (specularexponent.set (val, true)) - { - mark_modified (); - } - } - } - - void set_specularcolorreflectance (const octave_value& val) - { - if (! error_state) - { - if (specularcolorreflectance.set (val, true)) - { - mark_modified (); - } - } - } - - void set_erasemode (const octave_value& val) - { - if (! error_state) - { - if (erasemode.set (val, true)) - { - mark_modified (); - } - } - } - - void set_linestyle (const octave_value& val) - { - if (! error_state) - { - if (linestyle.set (val, true)) - { - mark_modified (); - } - } - } - - void set_linewidth (const octave_value& val) - { - if (! error_state) - { - if (linewidth.set (val, true)) - { - mark_modified (); - } - } - } - - void set_marker (const octave_value& val) - { - if (! error_state) - { - if (marker.set (val, true)) - { - mark_modified (); - } - } - } - - void set_markeredgecolor (const octave_value& val) - { - if (! error_state) - { - if (markeredgecolor.set (val, true)) - { - mark_modified (); - } - } - } - - void set_markerfacecolor (const octave_value& val) - { - if (! error_state) - { - if (markerfacecolor.set (val, true)) - { - mark_modified (); - } - } - } - - void set_markersize (const octave_value& val) - { - if (! error_state) - { - if (markersize.set (val, true)) - { - mark_modified (); - } - } - } - - void set_interpreter (const octave_value& val) - { - if (! error_state) - { - if (interpreter.set (val, true)) - { - mark_modified (); - } - } - } - - void set_displayname (const octave_value& val) - { - if (! error_state) - { - if (displayname.set (val, true)) - { - mark_modified (); - } - } - } - - void set_alphadatamapping (const octave_value& val) - { - if (! error_state) - { - if (alphadatamapping.set (val, false)) - { - update_axis_limits ("alphadatamapping"); - alphadatamapping.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_xlim (const octave_value& val) - { - if (! error_state) - { - if (xlim.set (val, false)) - { - update_axis_limits ("xlim"); - xlim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_ylim (const octave_value& val) - { - if (! error_state) - { - if (ylim.set (val, false)) - { - update_axis_limits ("ylim"); - ylim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_zlim (const octave_value& val) - { - if (! error_state) - { - if (zlim.set (val, false)) - { - update_axis_limits ("zlim"); - zlim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_clim (const octave_value& val) - { - if (! error_state) - { - if (clim.set (val, false)) - { - update_axis_limits ("clim"); - clim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_alim (const octave_value& val) - { - if (! error_state) - { - if (alim.set (val, false)) - { - update_axis_limits ("alim"); - alim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_xliminclude (const octave_value& val) - { - if (! error_state) - { - if (xliminclude.set (val, false)) - { - update_axis_limits ("xliminclude"); - xliminclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_yliminclude (const octave_value& val) - { - if (! error_state) - { - if (yliminclude.set (val, false)) - { - update_axis_limits ("yliminclude"); - yliminclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_zliminclude (const octave_value& val) - { - if (! error_state) - { - if (zliminclude.set (val, false)) - { - update_axis_limits ("zliminclude"); - zliminclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_climinclude (const octave_value& val) - { - if (! error_state) - { - if (climinclude.set (val, false)) - { - update_axis_limits ("climinclude"); - climinclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_aliminclude (const octave_value& val) - { - if (! error_state) - { - if (aliminclude.set (val, false)) - { - update_axis_limits ("aliminclude"); - aliminclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - - protected: - void init (void) - { - xdata.add_constraint (dim_vector (-1, -1)); - ydata.add_constraint (dim_vector (-1, -1)); - zdata.add_constraint (dim_vector (-1, -1)); - vertices.add_constraint (dim_vector (-1, 2)); - vertices.add_constraint (dim_vector (-1, 3)); - cdata.add_constraint (dim_vector (-1, -1)); - cdata.add_constraint (dim_vector (-1, -1, 3)); - facevertexcdata.add_constraint (dim_vector (-1, 1)); - facevertexcdata.add_constraint (dim_vector (-1, 3)); - facevertexalphadata.add_constraint (dim_vector (-1, 1)); - } - - private: - void update_xdata (void) { set_xlim (xdata.get_limits ()); } - void update_ydata (void) { set_ylim (ydata.get_limits ()); } - void update_zdata (void) { set_zlim (zdata.get_limits ()); } - - void update_cdata (void) - { - if (cdatamapping_is ("scaled")) - set_clim (cdata.get_limits ()); - else - clim = cdata.get_limits (); - } - }; - - private: - properties xproperties; - - public: - patch (const graphics_handle& mh, const graphics_handle& p) - : base_graphics_object (), xproperties (mh, p) - { - xproperties.override_defaults (*this); - } - - ~patch (void) { xproperties.delete_children (); } - - base_properties& get_properties (void) { return xproperties; } - - const base_properties& get_properties (void) const { return xproperties; } - - bool valid_object (void) const { return true; } - }; - - // --------------------------------------------------------------------- - - class OCTINTERP_API surface : public base_graphics_object - { - public: - class OCTINTERP_API properties : public base_properties - { - public: - octave_value get_color_data (void) const; - - bool is_climinclude (void) const - { return (climinclude.is_on () && cdatamapping.is ("scaled")); } - std::string get_climinclude (void) const - { return climinclude.current_value (); } - - bool is_aliminclude (void) const - { return (aliminclude.is_on () && alphadatamapping.is ("scaled")); } - std::string get_aliminclude (void) const - { return aliminclude.current_value (); } - - // See the genprops.awk script for an explanation of the - // properties declarations. - - public: - properties (const graphics_handle& mh, const graphics_handle& p); - - ~properties (void) { } - - void set (const caseless_str& pname, const octave_value& val); - - octave_value get (bool all = false) const; - - octave_value get (const caseless_str& pname) const; - - octave_value get (const std::string& pname) const - { - return get (caseless_str (pname)); - } - - octave_value get (const char *pname) const - { - return get (caseless_str (pname)); - } - - property get_property (const caseless_str& pname); - - std::string graphics_object_name (void) const { return go_name; } - - static property_list::pval_map_type factory_defaults (void); - - private: - static std::string go_name; - - public: - - - static std::set core_property_names (void); - - static bool has_core_property (const caseless_str& pname); - - std::set all_property_names (void) const; - - bool has_property (const caseless_str& pname) const; - - private: - - array_property xdata; - array_property ydata; - array_property zdata; - array_property cdata; - radio_property cdatamapping; - string_property xdatasource; - string_property ydatasource; - string_property zdatasource; - string_property cdatasource; - color_property facecolor; - double_radio_property facealpha; - color_property edgecolor; - radio_property linestyle; - double_property linewidth; - radio_property marker; - color_property markeredgecolor; - color_property markerfacecolor; - double_property markersize; - radio_property interpreter; - string_property displayname; - array_property alphadata; - radio_property alphadatamapping; - double_property ambientstrength; - radio_property backfacelighting; - double_property diffusestrength; - double_radio_property edgealpha; - radio_property edgelighting; - radio_property erasemode; - radio_property facelighting; - radio_property meshstyle; - radio_property normalmode; - double_property specularcolorreflectance; - double_property specularexponent; - double_property specularstrength; - array_property vertexnormals; - row_vector_property xlim; - row_vector_property ylim; - row_vector_property zlim; - row_vector_property clim; - row_vector_property alim; - bool_property xliminclude; - bool_property yliminclude; - bool_property zliminclude; - bool_property climinclude; - bool_property aliminclude; - - public: - - enum - { - ID_XDATA = 8000, - ID_YDATA = 8001, - ID_ZDATA = 8002, - ID_CDATA = 8003, - ID_CDATAMAPPING = 8004, - ID_XDATASOURCE = 8005, - ID_YDATASOURCE = 8006, - ID_ZDATASOURCE = 8007, - ID_CDATASOURCE = 8008, - ID_FACECOLOR = 8009, - ID_FACEALPHA = 8010, - ID_EDGECOLOR = 8011, - ID_LINESTYLE = 8012, - ID_LINEWIDTH = 8013, - ID_MARKER = 8014, - ID_MARKEREDGECOLOR = 8015, - ID_MARKERFACECOLOR = 8016, - ID_MARKERSIZE = 8017, - ID_INTERPRETER = 8018, - ID_DISPLAYNAME = 8019, - ID_ALPHADATA = 8020, - ID_ALPHADATAMAPPING = 8021, - ID_AMBIENTSTRENGTH = 8022, - ID_BACKFACELIGHTING = 8023, - ID_DIFFUSESTRENGTH = 8024, - ID_EDGEALPHA = 8025, - ID_EDGELIGHTING = 8026, - ID_ERASEMODE = 8027, - ID_FACELIGHTING = 8028, - ID_MESHSTYLE = 8029, - ID_NORMALMODE = 8030, - ID_SPECULARCOLORREFLECTANCE = 8031, - ID_SPECULAREXPONENT = 8032, - ID_SPECULARSTRENGTH = 8033, - ID_VERTEXNORMALS = 8034, - ID_XLIM = 8035, - ID_YLIM = 8036, - ID_ZLIM = 8037, - ID_CLIM = 8038, - ID_ALIM = 8039, - ID_XLIMINCLUDE = 8040, - ID_YLIMINCLUDE = 8041, - ID_ZLIMINCLUDE = 8042, - ID_CLIMINCLUDE = 8043, - ID_ALIMINCLUDE = 8044 - }; - - octave_value get_xdata (void) const { return xdata.get (); } - - octave_value get_ydata (void) const { return ydata.get (); } - - octave_value get_zdata (void) const { return zdata.get (); } - - octave_value get_cdata (void) const { return cdata.get (); } - - bool cdatamapping_is (const std::string& v) const { return cdatamapping.is (v); } - std::string get_cdatamapping (void) const { return cdatamapping.current_value (); } - - std::string get_xdatasource (void) const { return xdatasource.string_value (); } - - std::string get_ydatasource (void) const { return ydatasource.string_value (); } - - std::string get_zdatasource (void) const { return zdatasource.string_value (); } - - std::string get_cdatasource (void) const { return cdatasource.string_value (); } - - bool facecolor_is_rgb (void) const { return facecolor.is_rgb (); } - bool facecolor_is (const std::string& v) const { return facecolor.is (v); } - Matrix get_facecolor_rgb (void) const { return (facecolor.is_rgb () ? facecolor.rgb () : Matrix ()); } - octave_value get_facecolor (void) const { return facecolor.get (); } - - bool facealpha_is_double (void) const { return facealpha.is_double (); } - bool facealpha_is (const std::string& v) const { return facealpha.is (v); } - double get_facealpha_double (void) const { return (facealpha.is_double () ? facealpha.double_value () : 0); } - octave_value get_facealpha (void) const { return facealpha.get (); } - - bool edgecolor_is_rgb (void) const { return edgecolor.is_rgb (); } - bool edgecolor_is (const std::string& v) const { return edgecolor.is (v); } - Matrix get_edgecolor_rgb (void) const { return (edgecolor.is_rgb () ? edgecolor.rgb () : Matrix ()); } - octave_value get_edgecolor (void) const { return edgecolor.get (); } - - bool linestyle_is (const std::string& v) const { return linestyle.is (v); } - std::string get_linestyle (void) const { return linestyle.current_value (); } - - double get_linewidth (void) const { return linewidth.double_value (); } - - bool marker_is (const std::string& v) const { return marker.is (v); } - std::string get_marker (void) const { return marker.current_value (); } - - bool markeredgecolor_is_rgb (void) const { return markeredgecolor.is_rgb (); } - bool markeredgecolor_is (const std::string& v) const { return markeredgecolor.is (v); } - Matrix get_markeredgecolor_rgb (void) const { return (markeredgecolor.is_rgb () ? markeredgecolor.rgb () : Matrix ()); } - octave_value get_markeredgecolor (void) const { return markeredgecolor.get (); } - - bool markerfacecolor_is_rgb (void) const { return markerfacecolor.is_rgb (); } - bool markerfacecolor_is (const std::string& v) const { return markerfacecolor.is (v); } - Matrix get_markerfacecolor_rgb (void) const { return (markerfacecolor.is_rgb () ? markerfacecolor.rgb () : Matrix ()); } - octave_value get_markerfacecolor (void) const { return markerfacecolor.get (); } - - double get_markersize (void) const { return markersize.double_value (); } - - bool interpreter_is (const std::string& v) const { return interpreter.is (v); } - std::string get_interpreter (void) const { return interpreter.current_value (); } - - std::string get_displayname (void) const { return displayname.string_value (); } - - octave_value get_alphadata (void) const { return alphadata.get (); } - - bool alphadatamapping_is (const std::string& v) const { return alphadatamapping.is (v); } - std::string get_alphadatamapping (void) const { return alphadatamapping.current_value (); } - - double get_ambientstrength (void) const { return ambientstrength.double_value (); } - - bool backfacelighting_is (const std::string& v) const { return backfacelighting.is (v); } - std::string get_backfacelighting (void) const { return backfacelighting.current_value (); } - - double get_diffusestrength (void) const { return diffusestrength.double_value (); } - - bool edgealpha_is_double (void) const { return edgealpha.is_double (); } - bool edgealpha_is (const std::string& v) const { return edgealpha.is (v); } - double get_edgealpha_double (void) const { return (edgealpha.is_double () ? edgealpha.double_value () : 0); } - octave_value get_edgealpha (void) const { return edgealpha.get (); } - - bool edgelighting_is (const std::string& v) const { return edgelighting.is (v); } - std::string get_edgelighting (void) const { return edgelighting.current_value (); } - - bool erasemode_is (const std::string& v) const { return erasemode.is (v); } - std::string get_erasemode (void) const { return erasemode.current_value (); } - - bool facelighting_is (const std::string& v) const { return facelighting.is (v); } - std::string get_facelighting (void) const { return facelighting.current_value (); } - - bool meshstyle_is (const std::string& v) const { return meshstyle.is (v); } - std::string get_meshstyle (void) const { return meshstyle.current_value (); } - - bool normalmode_is (const std::string& v) const { return normalmode.is (v); } - std::string get_normalmode (void) const { return normalmode.current_value (); } - - double get_specularcolorreflectance (void) const { return specularcolorreflectance.double_value (); } - - double get_specularexponent (void) const { return specularexponent.double_value (); } - - double get_specularstrength (void) const { return specularstrength.double_value (); } - - octave_value get_vertexnormals (void) const { return vertexnormals.get (); } - - octave_value get_xlim (void) const { return xlim.get (); } - - octave_value get_ylim (void) const { return ylim.get (); } - - octave_value get_zlim (void) const { return zlim.get (); } - - octave_value get_clim (void) const { return clim.get (); } - - octave_value get_alim (void) const { return alim.get (); } - - bool is_xliminclude (void) const { return xliminclude.is_on (); } - std::string get_xliminclude (void) const { return xliminclude.current_value (); } - - bool is_yliminclude (void) const { return yliminclude.is_on (); } - std::string get_yliminclude (void) const { return yliminclude.current_value (); } - - bool is_zliminclude (void) const { return zliminclude.is_on (); } - std::string get_zliminclude (void) const { return zliminclude.current_value (); } - - - void set_xdata (const octave_value& val) - { - if (! error_state) - { - if (xdata.set (val, true)) - { - update_xdata (); - mark_modified (); - } - } - } - - void set_ydata (const octave_value& val) - { - if (! error_state) - { - if (ydata.set (val, true)) - { - update_ydata (); - mark_modified (); - } - } - } - - void set_zdata (const octave_value& val) - { - if (! error_state) - { - if (zdata.set (val, true)) - { - update_zdata (); - mark_modified (); - } - } - } - - void set_cdata (const octave_value& val) - { - if (! error_state) - { - if (cdata.set (val, true)) - { - update_cdata (); - mark_modified (); - } - } - } - - void set_cdatamapping (const octave_value& val) - { - if (! error_state) - { - if (cdatamapping.set (val, false)) - { - update_axis_limits ("cdatamapping"); - cdatamapping.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_xdatasource (const octave_value& val) - { - if (! error_state) - { - if (xdatasource.set (val, true)) - { - mark_modified (); - } - } - } - - void set_ydatasource (const octave_value& val) - { - if (! error_state) - { - if (ydatasource.set (val, true)) - { - mark_modified (); - } - } - } - - void set_zdatasource (const octave_value& val) - { - if (! error_state) - { - if (zdatasource.set (val, true)) - { - mark_modified (); - } - } - } - - void set_cdatasource (const octave_value& val) - { - if (! error_state) - { - if (cdatasource.set (val, true)) - { - mark_modified (); - } - } - } - - void set_facecolor (const octave_value& val) - { - if (! error_state) - { - if (facecolor.set (val, true)) - { - mark_modified (); - } - } - } - - void set_facealpha (const octave_value& val) - { - if (! error_state) - { - if (facealpha.set (val, true)) - { - mark_modified (); - } - } - } - - void set_edgecolor (const octave_value& val) - { - if (! error_state) - { - if (edgecolor.set (val, true)) - { - mark_modified (); - } - } - } - - void set_linestyle (const octave_value& val) - { - if (! error_state) - { - if (linestyle.set (val, true)) - { - mark_modified (); - } - } - } - - void set_linewidth (const octave_value& val) - { - if (! error_state) - { - if (linewidth.set (val, true)) - { - mark_modified (); - } - } - } - - void set_marker (const octave_value& val) - { - if (! error_state) - { - if (marker.set (val, true)) - { - mark_modified (); - } - } - } - - void set_markeredgecolor (const octave_value& val) - { - if (! error_state) - { - if (markeredgecolor.set (val, true)) - { - mark_modified (); - } - } - } - - void set_markerfacecolor (const octave_value& val) - { - if (! error_state) - { - if (markerfacecolor.set (val, true)) - { - mark_modified (); - } - } - } - - void set_markersize (const octave_value& val) - { - if (! error_state) - { - if (markersize.set (val, true)) - { - mark_modified (); - } - } - } - - void set_interpreter (const octave_value& val) - { - if (! error_state) - { - if (interpreter.set (val, true)) - { - mark_modified (); - } - } - } - - void set_displayname (const octave_value& val) - { - if (! error_state) - { - if (displayname.set (val, true)) - { - mark_modified (); - } - } - } - - void set_alphadata (const octave_value& val) - { - if (! error_state) - { - if (alphadata.set (val, true)) - { - update_alphadata (); - mark_modified (); - } - } - } - - void set_alphadatamapping (const octave_value& val) - { - if (! error_state) - { - if (alphadatamapping.set (val, false)) - { - update_axis_limits ("alphadatamapping"); - alphadatamapping.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_ambientstrength (const octave_value& val) - { - if (! error_state) - { - if (ambientstrength.set (val, true)) - { - mark_modified (); - } - } - } - - void set_backfacelighting (const octave_value& val) - { - if (! error_state) - { - if (backfacelighting.set (val, true)) - { - mark_modified (); - } - } - } - - void set_diffusestrength (const octave_value& val) - { - if (! error_state) - { - if (diffusestrength.set (val, true)) - { - mark_modified (); - } - } - } - - void set_edgealpha (const octave_value& val) - { - if (! error_state) - { - if (edgealpha.set (val, true)) - { - mark_modified (); - } - } - } - - void set_edgelighting (const octave_value& val) - { - if (! error_state) - { - if (edgelighting.set (val, true)) - { - mark_modified (); - } - } - } - - void set_erasemode (const octave_value& val) - { - if (! error_state) - { - if (erasemode.set (val, true)) - { - mark_modified (); - } - } - } - - void set_facelighting (const octave_value& val) - { - if (! error_state) - { - if (facelighting.set (val, true)) - { - mark_modified (); - } - } - } - - void set_meshstyle (const octave_value& val) - { - if (! error_state) - { - if (meshstyle.set (val, true)) - { - mark_modified (); - } - } - } - - void set_normalmode (const octave_value& val) - { - if (! error_state) - { - if (normalmode.set (val, true)) - { - update_normalmode (); - mark_modified (); - } - } - } - - void set_specularcolorreflectance (const octave_value& val) - { - if (! error_state) - { - if (specularcolorreflectance.set (val, true)) - { - mark_modified (); - } - } - } - - void set_specularexponent (const octave_value& val) - { - if (! error_state) - { - if (specularexponent.set (val, true)) - { - mark_modified (); - } - } - } - - void set_specularstrength (const octave_value& val) - { - if (! error_state) - { - if (specularstrength.set (val, true)) - { - mark_modified (); - } - } - } - - void set_vertexnormals (const octave_value& val) - { - if (! error_state) - { - if (vertexnormals.set (val, true)) - { - update_vertexnormals (); - mark_modified (); - } - } - } - - void set_xlim (const octave_value& val) - { - if (! error_state) - { - if (xlim.set (val, false)) - { - update_axis_limits ("xlim"); - xlim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_ylim (const octave_value& val) - { - if (! error_state) - { - if (ylim.set (val, false)) - { - update_axis_limits ("ylim"); - ylim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_zlim (const octave_value& val) - { - if (! error_state) - { - if (zlim.set (val, false)) - { - update_axis_limits ("zlim"); - zlim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_clim (const octave_value& val) - { - if (! error_state) - { - if (clim.set (val, false)) - { - update_axis_limits ("clim"); - clim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_alim (const octave_value& val) - { - if (! error_state) - { - if (alim.set (val, false)) - { - update_axis_limits ("alim"); - alim.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_xliminclude (const octave_value& val) - { - if (! error_state) - { - if (xliminclude.set (val, false)) - { - update_axis_limits ("xliminclude"); - xliminclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_yliminclude (const octave_value& val) - { - if (! error_state) - { - if (yliminclude.set (val, false)) - { - update_axis_limits ("yliminclude"); - yliminclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_zliminclude (const octave_value& val) - { - if (! error_state) - { - if (zliminclude.set (val, false)) - { - update_axis_limits ("zliminclude"); - zliminclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_climinclude (const octave_value& val) - { - if (! error_state) - { - if (climinclude.set (val, false)) - { - update_axis_limits ("climinclude"); - climinclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - void set_aliminclude (const octave_value& val) - { - if (! error_state) - { - if (aliminclude.set (val, false)) - { - update_axis_limits ("aliminclude"); - aliminclude.run_listeners (POSTSET); - mark_modified (); - } - } - } - - - protected: - void init (void) - { - xdata.add_constraint (dim_vector (-1, -1)); - ydata.add_constraint (dim_vector (-1, -1)); - zdata.add_constraint (dim_vector (-1, -1)); - alphadata.add_constraint ("single"); - alphadata.add_constraint ("double"); - alphadata.add_constraint ("uint8"); - alphadata.add_constraint (dim_vector (-1, -1)); - vertexnormals.add_constraint (dim_vector (-1, -1, 3)); - cdata.add_constraint ("single"); - cdata.add_constraint ("double"); - cdata.add_constraint ("uint8"); - cdata.add_constraint (dim_vector (-1, -1)); - cdata.add_constraint (dim_vector (-1, -1, 3)); - } - - private: - void update_normals (void); - - void update_xdata (void) - { - update_normals (); - set_xlim (xdata.get_limits ()); - } - - void update_ydata (void) - { - update_normals (); - set_ylim (ydata.get_limits ()); - } - - void update_zdata (void) - { - update_normals (); - set_zlim (zdata.get_limits ()); - } - - void update_cdata (void) - { - if (cdatamapping_is ("scaled")) - set_clim (cdata.get_limits ()); - else - clim = cdata.get_limits (); - } - - void update_alphadata (void) - { - if (alphadatamapping_is ("scaled")) - set_alim (alphadata.get_limits ()); - else - alim = alphadata.get_limits (); - } - - void update_normalmode (void) - { update_normals (); } - - void update_vertexnormals (void) - { set_normalmode ("manual"); } - }; - - private: - properties xproperties; - - public: - surface (const graphics_handle& mh, const graphics_handle& p) - : base_graphics_object (), xproperties (mh, p) - { - xproperties.override_defaults (*this); - } - - ~surface (void) { xproperties.delete_children (); } - - base_properties& get_properties (void) { return xproperties; } - - const base_properties& get_properties (void) const { return xproperties; } - - bool valid_object (void) const { return true; } - }; - - // --------------------------------------------------------------------- - - class OCTINTERP_API hggroup : public base_graphics_object - { - public: - class OCTINTERP_API properties : public base_properties - { - public: - void remove_child (const graphics_handle& h) - { - base_properties::remove_child (h); - update_limits (); - } - - void adopt (const graphics_handle& h) - { - - base_properties::adopt (h); - update_limits (h); - } - - // See the genprops.awk script for an explanation of the - // properties declarations. - - public: - properties (const graphics_handle& mh, const graphics_handle& p); - - ~properties (void) { } - - void set (const caseless_str& pname, const octave_value& val); - - octave_value get (bool all = false) const; - - octave_value get (const caseless_str& pname) const; - - octave_value get (const std::string& pname) const - { - return get (caseless_str (pname)); - } - - octave_value get (const char *pname) const - { - return get (caseless_str (pname)); - } - - property get_property (const caseless_str& pname); - - std::string graphics_object_name (void) const { return go_name; } - - static property_list::pval_map_type factory_defaults (void); - - private: - static std::string go_name; - - public: - - - static std::set core_property_names (void); - - static bool has_core_property (const caseless_str& pname); - - std::set all_property_names (void) const; - - bool has_property (const caseless_str& pname) const; - - private: - - row_vector_property xlim; - row_vector_property ylim; - row_vector_property zlim; - row_vector_property clim; - row_vector_property alim; - bool_property xliminclude; - bool_property yliminclude; - bool_property zliminclude; - bool_property climinclude; - bool_property aliminclude; - - public: - - enum - { - ID_XLIM = 9000, - ID_YLIM = 9001, - ID_ZLIM = 9002, - ID_CLIM = 9003, - ID_ALIM = 9004, - ID_XLIMINCLUDE = 9005, - ID_YLIMINCLUDE = 9006, - ID_ZLIMINCLUDE = 9007, - ID_CLIMINCLUDE = 9008, - ID_ALIMINCLUDE = 9009 - }; - - octave_value get_xlim (void) const { return xlim.get (); } - - octave_value get_ylim (void) const { return ylim.get (); } - - octave_value get_zlim (void) const { return zlim.get (); } - - octave_value get_clim (void) const { return clim.get (); } - - octave_value get_alim (void) const { return alim.get (); } - - bool is_xliminclude (void) const { return xliminclude.is_on (); } - std::string get_xliminclude (void) const { return xliminclude.current_value (); } - - bool is_yliminclude (void) const { return yliminclude.is_on (); } - std::string get_yliminclude (void) const { return yliminclude.current_value (); } - - bool is_zliminclude (void) const { return zliminclude.is_on (); } - std::string get_zliminclude (void) const { return zliminclude.current_value (); } - - bool is_climinclude (void) const { return climinclude.is_on (); } - std::string get_climinclude (void) const { return climinclude.current_value (); } - - bool is_aliminclude (void) const { return aliminclude.is_on (); } - std::string get_aliminclude (void) const { return aliminclude.current_value (); } - - - void set_xlim (const octave_value& val) - { - if (! error_state) - { - if (xlim.set (val, true)) - { - mark_modified (); - } - } - } - - void set_ylim (const octave_value& val) - { - if (! error_state) - { - if (ylim.set (val, true)) - { - mark_modified (); - } - } - } - - void set_zlim (const octave_value& val) - { - if (! error_state) - { - if (zlim.set (val, true)) - { - mark_modified (); - } - } - } - - void set_clim (const octave_value& val) - { - if (! error_state) - { - if (clim.set (val, true)) - { - mark_modified (); - } - } - } - - void set_alim (const octave_value& val) - { - if (! error_state) - { - if (alim.set (val, true)) - { - mark_modified (); - } - } - } - - void set_xliminclude (const octave_value& val) - { - if (! error_state) - { - if (xliminclude.set (val, true)) - { - mark_modified (); - } - } - } - - void set_yliminclude (const octave_value& val) - { - if (! error_state) - { - if (yliminclude.set (val, true)) - { - mark_modified (); - } - } - } - - void set_zliminclude (const octave_value& val) - { - if (! error_state) - { - if (zliminclude.set (val, true)) - { - mark_modified (); - } - } - } - - void set_climinclude (const octave_value& val) - { - if (! error_state) - { - if (climinclude.set (val, true)) - { - mark_modified (); - } - } - } - - void set_aliminclude (const octave_value& val) - { - if (! error_state) - { - if (aliminclude.set (val, true)) - { - mark_modified (); - } - } - } - - - private: - void update_limits (void) const; - - void update_limits (const graphics_handle& h) const; - - protected: - void init (void) - { } - - }; - - private: - properties xproperties; - - public: - hggroup (const graphics_handle& mh, const graphics_handle& p) - : base_graphics_object (), xproperties (mh, p) - { - xproperties.override_defaults (*this); - } - - ~hggroup (void) { xproperties.delete_children (); } - - base_properties& get_properties (void) { return xproperties; } - - const base_properties& get_properties (void) const { return xproperties; } - - bool valid_object (void) const { return true; } - - void update_axis_limits (const std::string& axis_type); - - void update_axis_limits (const std::string& axis_type, - const graphics_handle& h); - - }; - - // --------------------------------------------------------------------- - - class OCTINTERP_API uimenu : public base_graphics_object - { - public: - class OCTINTERP_API properties : public base_properties - { - public: - void remove_child (const graphics_handle& h) - { - base_properties::remove_child (h); - } - - void adopt (const graphics_handle& h) - { - base_properties::adopt (h); - } - - // See the genprops.awk script for an explanation of the - // properties declarations. - - public: - properties (const graphics_handle& mh, const graphics_handle& p); - - ~properties (void) { } - - void set (const caseless_str& pname, const octave_value& val); - - octave_value get (bool all = false) const; - - octave_value get (const caseless_str& pname) const; - - octave_value get (const std::string& pname) const - { - return get (caseless_str (pname)); - } - - octave_value get (const char *pname) const - { - return get (caseless_str (pname)); - } - - property get_property (const caseless_str& pname); - - std::string graphics_object_name (void) const { return go_name; } - - static property_list::pval_map_type factory_defaults (void); - - private: - static std::string go_name; - - public: - - - static std::set core_property_names (void); - - static bool has_core_property (const caseless_str& pname); - - std::set all_property_names (void) const; - - bool has_property (const caseless_str& pname) const; - - private: - - string_property accelerator; - callback_property callback; - bool_property checked; - bool_property enable; - color_property foregroundcolor; - string_property label; - double_property position; - bool_property separator; - string_property fltk_label; - - public: - - enum - { - ID_ACCELERATOR = 10000, - ID_CALLBACK = 10001, - ID_CHECKED = 10002, - ID_ENABLE = 10003, - ID_FOREGROUNDCOLOR = 10004, - ID_LABEL = 10005, - ID_POSITION = 10006, - ID_SEPARATOR = 10007, - ID_FLTK_LABEL = 10008 - }; - - std::string get_accelerator (void) const { return accelerator.string_value (); } - - void execute_callback (const octave_value& data = octave_value ()) const { callback.execute (data); } - octave_value get_callback (void) const { return callback.get (); } - - bool is_checked (void) const { return checked.is_on (); } - std::string get_checked (void) const { return checked.current_value (); } - - bool is_enable (void) const { return enable.is_on (); } - std::string get_enable (void) const { return enable.current_value (); } - - bool foregroundcolor_is_rgb (void) const { return foregroundcolor.is_rgb (); } - bool foregroundcolor_is (const std::string& v) const { return foregroundcolor.is (v); } - Matrix get_foregroundcolor_rgb (void) const { return (foregroundcolor.is_rgb () ? foregroundcolor.rgb () : Matrix ()); } - octave_value get_foregroundcolor (void) const { return foregroundcolor.get (); } - - std::string get_label (void) const { return label.string_value (); } - - double get_position (void) const { return position.double_value (); } - - bool is_separator (void) const { return separator.is_on (); } - std::string get_separator (void) const { return separator.current_value (); } - - std::string get_fltk_label (void) const { return fltk_label.string_value (); } - - - void set_accelerator (const octave_value& val) - { - if (! error_state) - { - if (accelerator.set (val, true)) - { - mark_modified (); - } - } - } - - void set_callback (const octave_value& val) - { - if (! error_state) - { - if (callback.set (val, true)) - { - mark_modified (); - } - } - } - - void set_checked (const octave_value& val) - { - if (! error_state) - { - if (checked.set (val, true)) - { - mark_modified (); - } - } - } - - void set_enable (const octave_value& val) - { - if (! error_state) - { - if (enable.set (val, true)) - { - mark_modified (); - } - } - } - - void set_foregroundcolor (const octave_value& val) - { - if (! error_state) - { - if (foregroundcolor.set (val, true)) - { - mark_modified (); - } - } - } - - void set_label (const octave_value& val) - { - if (! error_state) - { - if (label.set (val, true)) - { - mark_modified (); - } - } - } - - void set_position (const octave_value& val) - { - if (! error_state) - { - if (position.set (val, true)) - { - mark_modified (); - } - } - } - - void set_separator (const octave_value& val) - { - if (! error_state) - { - if (separator.set (val, true)) - { - mark_modified (); - } - } - } - - void set_fltk_label (const octave_value& val) - { - if (! error_state) - { - if (fltk_label.set (val, true)) - { - mark_modified (); - } - } - } - - - protected: - void init (void) - { } - }; - - private: - properties xproperties; - - public: - uimenu (const graphics_handle& mh, const graphics_handle& p) - : base_graphics_object (), xproperties (mh, p) - { - xproperties.override_defaults (*this); - } - - ~uimenu (void) { xproperties.delete_children (); } - - base_properties& get_properties (void) { return xproperties; } - - const base_properties& get_properties (void) const { return xproperties; } - - bool valid_object (void) const { return true; } - - }; - - // --------------------------------------------------------------------- - - octave_value - get_property_from_handle (double handle, const std::string &property, - const std::string &func); - bool - set_property_in_handle (double handle, const std::string &property, - const octave_value &arg, const std::string &func); - - // --------------------------------------------------------------------- - - class graphics_event; - - class - base_graphics_event - { - public: - friend class graphics_event; - - base_graphics_event (void) : count (1) { } - - virtual ~base_graphics_event (void) { } - - virtual void execute (void) = 0; - - private: - int count; - }; - - class - graphics_event - { - public: - typedef void (*event_fcn) (void*); - - graphics_event (void) : rep (0) { } - - graphics_event (const graphics_event& e) : rep (e.rep) - { - rep->count++; - } - - ~graphics_event (void) - { - if (rep && --rep->count == 0) - delete rep; - } - - graphics_event& operator = (const graphics_event& e) - { - if (rep != e.rep) - { - if (rep && --rep->count == 0) - delete rep; - - rep = e.rep; - if (rep) - rep->count++; - } - - return *this; - } - - void execute (void) - { if (rep) rep->execute (); } - - bool ok (void) const - { return (rep != 0); } - - static graphics_event - create_callback_event (const graphics_handle& h, - const std::string& name, - const octave_value& data = Matrix ()); - - static graphics_event - create_function_event (event_fcn fcn, void *data = 0); - - static graphics_event - create_set_event (const graphics_handle& h, - const std::string& name, - const octave_value& value); - private: - base_graphics_event *rep; - }; - - class OCTINTERP_API gh_manager - { - protected: - - gh_manager (void); - - public: - - static bool instance_ok (void) - { - bool retval = true; - - if (! instance) - instance = new gh_manager (); - - if (! instance) - { - ::error ("unable to create gh_manager!"); - - retval = false; - } - - return retval; - } - - static void free (const graphics_handle& h) - { - if (instance_ok ()) - instance->do_free (h); - } - - static graphics_handle lookup (double val) - { - return instance_ok () ? instance->do_lookup (val) : graphics_handle (); - } - - static graphics_handle lookup (const octave_value& val) - { - return val.is_real_scalar () - ? lookup (val.double_value ()) : graphics_handle (); - } - - static graphics_object get_object (double val) - { - return get_object (lookup (val)); - } - - static graphics_object get_object (const graphics_handle& h) - { - return instance_ok () ? instance->do_get_object (h) : graphics_object (); - } - - static graphics_handle - make_graphics_handle (const std::string& go_name, - const graphics_handle& parent, bool do_createfcn = true) - { - return instance_ok () - ? instance->do_make_graphics_handle (go_name, parent, do_createfcn) - : graphics_handle (); - } - - static graphics_handle make_figure_handle (double val) - { - return instance_ok () - ? instance->do_make_figure_handle (val) : graphics_handle (); - } - - static void push_figure (const graphics_handle& h) - { - if (instance_ok ()) - instance->do_push_figure (h); - } - - static void pop_figure (const graphics_handle& h) - { - if (instance_ok ()) - instance->do_pop_figure (h); - } - - static graphics_handle current_figure (void) - { - return instance_ok () - ? instance->do_current_figure () : graphics_handle (); - } - - static Matrix handle_list (void) - { - return instance_ok () ? instance->do_handle_list () : Matrix (); - } - - static void lock (void) - { - if (instance_ok ()) - instance->do_lock (); - } - - static void unlock (void) - { - if (instance_ok ()) - instance->do_unlock (); - } - - static Matrix figure_handle_list (void) - { - return instance_ok () ? instance->do_figure_handle_list () : Matrix (); - } - - static void execute_callback (const graphics_handle& h, - const std::string& name, - const octave_value& data = Matrix ()) - { - graphics_object go = get_object (h); - - if (go.valid_object ()) - { - octave_value cb = go.get (name); - - if (! error_state) - execute_callback (h, cb, data); - } - } - - static void execute_callback (const graphics_handle& h, - const octave_value& cb, - const octave_value& data = Matrix ()) - { - if (instance_ok ()) - instance->do_execute_callback (h, cb, data); - } - - static void post_callback (const graphics_handle& h, - const std::string& name, - const octave_value& data = Matrix ()) - { - if (instance_ok ()) - instance->do_post_callback (h, name, data); - } - - static void post_function (graphics_event::event_fcn fcn, void* data = 0) - { - if (instance_ok ()) - instance->do_post_function (fcn, data); - } - - static void post_set (const graphics_handle& h, - const std::string& name, - const octave_value& value) - { - if (instance_ok ()) - instance->do_post_set (h, name, value); - } - - static int process_events (void) - { - return (instance_ok () ? instance->do_process_events () : 0); - } - - static int flush_events (void) - { - return (instance_ok () ? instance->do_process_events (true) : 0); - } - - static bool is_handle_visible (const graphics_handle& h) - { - bool retval = false; - - graphics_object go = get_object (h); - - if (go.valid_object ()) - retval = go.is_handle_visible (); - - return retval; - } - - public: - class autolock - { - public: - autolock (void) { lock (); } - - ~autolock (void) { unlock (); } - - private: - - // No copying! - autolock (const autolock&); - autolock& operator = (const autolock&); - }; - - private: - - static gh_manager *instance; - - typedef std::map::iterator iterator; - typedef std::map::const_iterator const_iterator; - - typedef std::set::iterator free_list_iterator; - typedef std::set::const_iterator const_free_list_iterator; - - typedef std::list::iterator figure_list_iterator; - typedef std::list::const_iterator const_figure_list_iterator; - - // A map of handles to graphics objects. - std::map handle_map; - - // The available graphics handles. - std::set handle_free_list; - - // The next handle available if handle_free_list is empty. - double next_handle; - - // The allocated figure handles. Top of the stack is most recently - // created. - std::list figure_list; - - // The lock for accessing the graphics sytsem. - octave_mutex graphics_lock; - - // The list of events queued by graphics toolkits. - std::list event_queue; - - // The stack of callback objects. - std::list callback_objects; - - graphics_handle get_handle (const std::string& go_name); - - void do_free (const graphics_handle& h); - - graphics_handle do_lookup (double val) - { - iterator p = (xisnan (val) ? handle_map.end () : handle_map.find (val)); - - return (p != handle_map.end ()) ? p->first : graphics_handle (); - } - - graphics_object do_get_object (const graphics_handle& h) - { - iterator p = (h.ok () ? handle_map.find (h) : handle_map.end ()); - - return (p != handle_map.end ()) ? p->second : graphics_object (); - } - - graphics_handle do_make_graphics_handle (const std::string& go_name, - const graphics_handle& p, bool do_createfcn); - - graphics_handle do_make_figure_handle (double val); - - Matrix do_handle_list (void) - { - Matrix retval (1, handle_map.size ()); - octave_idx_type i = 0; - for (const_iterator p = handle_map.begin (); p != handle_map.end (); p++) - { - graphics_handle h = p->first; - retval(i++) = h.value (); - } - return retval; - } - - Matrix do_figure_handle_list (void) - { - Matrix retval (1, figure_list.size ()); - octave_idx_type i = 0; - for (const_figure_list_iterator p = figure_list.begin (); - p != figure_list.end (); - p++) - { - graphics_handle h = *p; - retval(i++) = h.value (); - } - return retval; - } - - void do_push_figure (const graphics_handle& h); - - void do_pop_figure (const graphics_handle& h); - - graphics_handle do_current_figure (void) const - { - return figure_list.empty () ? graphics_handle () : figure_list.front (); - } - - void do_lock (void) { graphics_lock.lock (); } - - void do_unlock (void) { graphics_lock.unlock (); } - - void do_execute_callback (const graphics_handle& h, const octave_value& cb, - const octave_value& data); - - void do_post_callback (const graphics_handle& h, const std::string name, - const octave_value& data); - - void do_post_function (graphics_event::event_fcn fcn, void* fcn_data); - - void do_post_set (const graphics_handle& h, const std::string name, - const octave_value& value); - - int do_process_events (bool force = false); - - static void restore_gcbo (void) - { - if (instance_ok ()) - instance->do_restore_gcbo (); - } - - void do_restore_gcbo (void); - - void do_post_event (const graphics_event& e); - }; - - void get_children_limits (double& min_val, double& max_val, double& min_pos, - const Matrix& kids, char limit_type); - - OCTINTERP_API int calc_dimensions (const graphics_object& gh); - - // This function is NOT equivalent to the scripting language function gcf. - OCTINTERP_API graphics_handle gcf (void); - - // This function is NOT equivalent to the scripting language function gca. - OCTINTERP_API graphics_handle gca (void); - - #endif --- 0 ---- diff -cNr octave-3.4.0/src/graphics.h.in octave-3.4.1/src/graphics.h.in *** octave-3.4.0/src/graphics.h.in 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/graphics.h.in 2011-06-15 11:13:48.000000000 -0400 *************** *** 318,324 **** class property; ! enum listener_mode { POSTSET }; class base_property { --- 318,324 ---- class property; ! enum listener_mode { POSTSET, PERSISTENT }; class base_property { *************** *** 423,429 **** } } else ! l.resize (0); } --- 423,449 ---- } } else ! { ! if (mode == PERSISTENT) ! l.resize (0); ! else ! { ! octave_value_list lnew (0); ! octave_value_list& lp = listeners[PERSISTENT]; ! for (int i = l.length () - 1; i >= 0 ; i--) ! { ! for (int j = 0; j < lp.length (); j++) ! { ! if (l(i).internal_rep () == lp(j).internal_rep ()) ! { ! lnew.resize (lnew.length () + 1, l(i)); ! break; ! } ! } ! } ! l = lnew; ! } ! } } *************** *** 3077,3088 **** const scaler& get_z_scaler (void) const { return sz; } Matrix get_boundingbox (bool internal = false) const; void update_boundingbox (void) { if (units_is ("normalized")) { ! update_transform (); base_properties::update_boundingbox (); } } --- 3097,3109 ---- const scaler& get_z_scaler (void) const { return sz; } Matrix get_boundingbox (bool internal = false) const; + Matrix get_extent (bool with_text = false, bool only_text_height=false) const; void update_boundingbox (void) { if (units_is ("normalized")) { ! sync_positions (); base_properties::update_boundingbox (); } } *************** *** 3295,3300 **** --- 3316,3323 ---- row_vector_property xmtick h , Matrix () row_vector_property ymtick h , Matrix () row_vector_property zmtick h , Matrix () + // hidden properties for inset + array_property looseinset hu , Matrix (1, 4, 0.0) END_PROPERTIES protected: *************** *** 3305,3319 **** void update_yscale (void) { sy = get_yscale (); } void update_zscale (void) { sz = get_zscale (); } ! void update_view (void) { update_camera (); update_axes_layout (); } ! void update_dataaspectratio (void) { update_transform (); } ! void update_dataaspectratiomode (void) { update_transform (); } ! void update_plotboxaspectratio (void) { update_transform (); } ! void update_plotboxaspectratiomode (void) { update_transform (); } void update_layer (void) { update_axes_layout (); } ! void update_yaxislocation (void) { update_axes_layout (); } ! void update_xaxislocation (void) { update_axes_layout (); } void update_xdir (void) { update_camera (); update_axes_layout (); } void update_ydir (void) { update_camera (); update_axes_layout (); } --- 3328,3350 ---- void update_yscale (void) { sy = get_yscale (); } void update_zscale (void) { sz = get_zscale (); } ! void update_view (void) { sync_positions (); } ! void update_dataaspectratio (void) { sync_positions (); } ! void update_dataaspectratiomode (void) { sync_positions (); } ! void update_plotboxaspectratio (void) { sync_positions (); } ! void update_plotboxaspectratiomode (void) { sync_positions (); } void update_layer (void) { update_axes_layout (); } ! void update_yaxislocation (void) ! { ! update_axes_layout (); ! update_ylabel_position (); ! } ! void update_xaxislocation (void) ! { ! update_axes_layout (); ! update_xlabel_position (); ! } void update_xdir (void) { update_camera (); update_axes_layout (); } void update_ydir (void) { update_camera (); update_axes_layout (); } *************** *** 3381,3388 **** } void sync_positions (void); ! void update_outerposition (void) { sync_positions ();} ! void update_position (void) { sync_positions (); } double calc_tick_sep (double minval, double maxval); void calc_ticks_and_lims (array_property& lims, array_property& ticks, array_property& mticks, --- 3412,3430 ---- } void sync_positions (void); ! void update_outerposition (void) ! { ! set_activepositionproperty ("outerposition"); ! sync_positions (); ! } ! ! void update_position (void) ! { ! set_activepositionproperty ("position"); ! sync_positions (); ! } ! ! void update_looseinset (void) { sync_positions (); } double calc_tick_sep (double minval, double maxval); void calc_ticks_and_lims (array_property& lims, array_property& ticks, array_property& mticks, *************** *** 3412,3417 **** --- 3454,3461 ---- } } + Matrix calc_tightbox (const Matrix& init_pos); + public: Matrix get_axis_limits (double xmin, double xmax, double min_pos, bool logscale); *************** *** 3632,3638 **** array_property position mu , Matrix (1, 3, 0.0) double_property rotation mu , 0 radio_property horizontalalignment mu , "{left}|center|right" ! color_property color , color_values (0, 0, 0) string_property fontname u , OCTAVE_DEFAULT_FONTNAME double_property fontsize u , 10 radio_property fontangle u , "{normal}|italic|oblique" --- 3676,3682 ---- array_property position mu , Matrix (1, 3, 0.0) double_property rotation mu , 0 radio_property horizontalalignment mu , "{left}|center|right" ! color_property color u , color_values (0, 0, 0) string_property fontname u , OCTAVE_DEFAULT_FONTNAME double_property fontsize u , 10 radio_property fontangle u , "{normal}|italic|oblique" *************** *** 3713,3720 **** void update_horizontalalignmentmode (void) { request_autopos (); } void update_verticalalignmentmode (void) { request_autopos (); } ! void update_string (void) { update_text_extent (); request_autopos ();} void update_rotation (void) { update_text_extent (); } void update_fontname (void) { update_text_extent (); } void update_fontsize (void) { update_text_extent (); } void update_fontangle (void) { update_text_extent (); } --- 3757,3765 ---- void update_horizontalalignmentmode (void) { request_autopos (); } void update_verticalalignmentmode (void) { request_autopos (); } ! void update_string (void) { request_autopos (); update_text_extent (); } void update_rotation (void) { update_text_extent (); } + void update_color (void) { update_text_extent (); } void update_fontname (void) { update_text_extent (); } void update_fontsize (void) { update_text_extent (); } void update_fontangle (void) { update_text_extent (); } *************** *** 3737,3742 **** --- 3782,3788 ---- text (const graphics_handle& mh, const graphics_handle& p) : base_graphics_object (), xproperties (mh, p) { + xproperties.set_clipping ("off"); xproperties.override_defaults (*this); } diff -cNr octave-3.4.0/src/graphics-props.cc octave-3.4.1/src/graphics-props.cc *** octave-3.4.0/src/graphics-props.cc 2011-02-08 05:07:40.000000000 -0500 --- octave-3.4.1/src/graphics-props.cc 2011-06-15 11:35:10.000000000 -0400 *************** *** 1386,1392 **** x_rendertransform ("x_rendertransform", mh, Matrix (4, 4, 0.0)), xmtick ("xmtick", mh, Matrix ()), ymtick ("ymtick", mh, Matrix ()), ! zmtick ("zmtick", mh, Matrix ()) { position.set_id (ID_POSITION); box.set_id (ID_BOX); --- 1386,1393 ---- x_rendertransform ("x_rendertransform", mh, Matrix (4, 4, 0.0)), xmtick ("xmtick", mh, Matrix ()), ymtick ("ymtick", mh, Matrix ()), ! zmtick ("zmtick", mh, Matrix ()), ! looseinset ("looseinset", mh, Matrix (1, 4, 0.0)) { position.set_id (ID_POSITION); box.set_id (ID_BOX); *************** *** 1492,1497 **** --- 1493,1500 ---- ymtick.set_hidden (true); zmtick.set_id (ID_ZMTICK); zmtick.set_hidden (true); + looseinset.set_id (ID_LOOSEINSET); + looseinset.set_hidden (true); init (); } *************** *** 1693,1698 **** --- 1696,1703 ---- set_ymtick (val); else if (pname.compare ("zmtick")) set_zmtick (val); + else if (pname.compare ("looseinset")) + set_looseinset (val); else base_properties::set (pname, val); } *************** *** 1806,1811 **** --- 1811,1818 ---- m.assign ("ymtick", octave_value (get_ymtick ())); if (all) m.assign ("zmtick", octave_value (get_zmtick ())); + if (all) + m.assign ("looseinset", octave_value (get_looseinset ())); return m; } *************** *** 2012,2017 **** --- 2019,2026 ---- retval = get_ymtick (); else if (pname.compare ("zmtick")) retval = get_zmtick (); + else if (pname.compare ("looseinset")) + retval = get_looseinset (); else retval = base_properties::get (pname); *************** *** 2218,2223 **** --- 2227,2234 ---- return property (&ymtick, true); else if (pname.compare ("zmtick")) return property (&zmtick, true); + else if (pname.compare ("looseinset")) + return property (&looseinset, true); else return base_properties::get_property (pname); } *************** *** 2318,2323 **** --- 2329,2335 ---- m["xmtick"] = Matrix (); m["ymtick"] = Matrix (); m["zmtick"] = Matrix (); + m["looseinset"] = Matrix (1, 4, 0.0); return m; } *************** *** 2428,2433 **** --- 2440,2446 ---- all_pnames.insert ("xmtick"); all_pnames.insert ("ymtick"); all_pnames.insert ("zmtick"); + all_pnames.insert ("looseinset"); std::set base_pnames = base_properties::core_property_names (); all_pnames.insert (base_pnames.begin (), base_pnames.end ()); diff -cNr octave-3.4.0/src/help.cc octave-3.4.1/src/help.cc *** octave-3.4.0/src/help.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/help.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 99,231 **** return z; } - // FIXME -- The descriptions could easily be in texinfo -- should they? const static pair_type operators[] = { pair_type ("!", ! "Logical not operator. See also `~'.\n"), pair_type ("!=", ! "Logical not equals operator. See also `~='.\n"), pair_type ("\"", ! "String delimiter.\n"), pair_type ("#", ! "Begin comment character. See also `%'."), pair_type ("%", ! "Begin comment charcter. See also `#'."), pair_type ("&", ! "Element by element logical and operator. See also `&&'."), pair_type ("&&", ! "Logical and operator (with short-circuit evaluation). See also `&'."), pair_type ("'", ! "Matrix transpose operator. For complex matrices, computes the\n\ ! complex conjugate (Hermitian) transpose. See also `.''\n\ \n\ The single quote character may also be used to delimit strings, but\n\ it is better to use the double quote character, since that is never\n\ ! ambiguous"), pair_type ("(", ! "Array index or function argument delimiter."), pair_type (")", ! "Array index or function argument delimiter."), pair_type ("*", ! "Multiplication operator. See also `.*'"), pair_type ("**", ! "Power operator. See also `^', `.**', and `.^'"), pair_type ("+", ! "Addition operator."), pair_type ("++", ! "Increment operator. As in C, may be applied as a prefix or postfix\n\ ! operator."), pair_type (",", ! "Array index, function argument, or command separator."), pair_type ("-", ! "Subtraction or unary negation operator."), pair_type ("--", ! "Decrement operator. As in C, may be applied as a prefix or postfix\n\ ! operator."), pair_type (".'", ! "Matrix transpose operator. For complex matrices, computes the\n\ ! transpose, *not* the complex conjugate transpose. See also `''."), pair_type (".*", ! "Element by element multiplication operator. See also `*'."), pair_type (".**", ! "Element by element power operator. See also `**', `^', and `.^'."), ! ! pair_type ("./", ! "Element by element division operator. See also `/' and `\\'."), pair_type (".^", ! "Element by element power operator. See also `**', `^', and `.^'."), pair_type ("/", ! "Right division. See also `\\' and `./'."), pair_type (":", ! "Select entire rows or columns of matrices."), pair_type (";", ! "Array row or command separator. See also `,'."), pair_type ("<", ! "Less than operator."), pair_type ("<=", ! "Less than or equals operator."), pair_type ("=", ! "Assignment operator."), pair_type ("==", ! "Equality test operator."), pair_type (">", ! "Greater than operator."), pair_type (">=", ! "Greater than or equals operator."), pair_type ("[", ! "Return list delimiter. See also `]'."), ! ! pair_type ("\\", ! "Left division operator. See also `/' and `./'."), pair_type ("]", ! "Return list delimiter. See also `['."), ! ! pair_type ("^", ! "Power operator. See also `**', `.^', and `.**.'"), pair_type ("|", ! "Element by element logical or operator. See also `||'."), pair_type ("||", ! "Logical or operator (with short-circuit evaluation). See also `|'."), ! ! pair_type ("~", ! "Logical not operator. See also `!' and `~'."), ! ! pair_type ("~=", ! "Logical not equals operator. See also `!='."), }; const static pair_type keywords[] = --- 99,429 ---- return z; } const static pair_type operators[] = { pair_type ("!", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} !\n\ ! Logical 'not' operator.\n\ ! @seealso{~, not}\n\ ! @end deftypefn"), ! ! pair_type ("~", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} ~\n\ ! Logical 'not' operator.\n\ ! @seealso{!, not}\n\ ! @end deftypefn"), pair_type ("!=", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} !=\n\ ! Logical 'not equals' operator.\n\ ! @seealso{~=, ne}\n\ ! @end deftypefn"), ! ! pair_type ("~=", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} ~=\n\ ! Logical 'not equals' operator.\n\ ! @seealso{!=, ne}\n\ ! @end deftypefn"), pair_type ("\"", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} \"\n\ ! String delimiter.\n\ ! @end deftypefn"), pair_type ("#", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} #\n\ ! Begin comment character.\n\ ! @seealso{%, #@{}\n\ ! @end deftypefn"), pair_type ("%", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} %\n\ ! Begin comment character.\n\ ! @seealso{#, %@{}\n\ ! @end deftypefn"), ! ! pair_type ("#{", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} #@{\n\ ! Begin block comment. There must be nothing else other than\n\ ! whitespace in the line, both before and after @code{#@{}. Also,\n\ ! it is possible to nest block comments.\n\ ! @seealso{#, #@}, %@{}\n\ ! @end deftypefn"), ! ! pair_type ("%{", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} %@{\n\ ! Begin block comment. There must be nothing else other than\n\ ! whitespace in the line, both before and after @code{%@{}. Also,\n\ ! it is possible to nest block comments.\n\ ! @seealso{%, %@}, #@{}\n\ ! @end deftypefn"), ! ! pair_type ("#}", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} #@}\n\ ! Close block comment. There must be nothing else other than\n\ ! whitespace in the line, both before and after @code{#@}}. Also,\n\ ! it is possible to nest block comments.\n\ ! @seealso{#, #@{, %@}}\n\ ! @end deftypefn"), ! ! pair_type ("%}", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} %@}\n\ ! Close block comment. There must be nothing else other than\n\ ! whitespace in the line, both before and after @code{%@}}. Also,\n\ ! it is possible to nest block comments.\n\ ! @seealso{%, %@{, #@}}\n\ ! @end deftypefn"), ! ! pair_type ("...", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} ...\n\ ! Continuation marker. Joins current line with following line.\n\ ! @end deftypefn"), pair_type ("&", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} &\n\ ! Element by element logical 'and' operator.\n\ ! @seealso{&&, and}\n\ ! @end deftypefn"), pair_type ("&&", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} &&\n\ ! Logical 'and' operator (with short-circuit evaluation).\n\ ! @seealso{&, and}\n\ ! @end deftypefn"), pair_type ("'", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} '\n\ ! Matrix transpose operator. For complex matrices, computes the\n\ ! complex conjugate (Hermitian) transpose.\n\ \n\ The single quote character may also be used to delimit strings, but\n\ it is better to use the double quote character, since that is never\n\ ! ambiguous\n\ ! @seealso{.', transpose}\n\ ! @end deftypefn"), pair_type ("(", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} (\n\ ! Array index or function argument delimiter.\n\ ! @end deftypefn"), pair_type (")", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} )\n\ ! Array index or function argument delimiter.\n\ ! @end deftypefn"), pair_type ("*", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} *\n\ ! Multiplication operator.\n\ ! @seealso{.*, times}\n\ ! @end deftypefn"), pair_type ("**", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} **\n\ ! Power operator.\n\ ! @seealso{power, ^, .**, .^}\n\ ! @end deftypefn"), ! ! pair_type ("^", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} ^\n\ ! Power operator.\n\ ! @seealso{power, **, .^, .**}\n\ ! @end deftypefn"), pair_type ("+", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} +\n\ ! Addition operator.\n\ ! @seealso{plus}\n\ ! @end deftypefn"), pair_type ("++", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} ++\n\ ! Increment operator. As in C, may be applied as a prefix or postfix\n\ ! operator.\n\ ! @seealso{--}\n\ ! @end deftypefn"), pair_type (",", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} ,\n\ ! Array index, function argument, or command separator.\n\ ! @end deftypefn"), pair_type ("-", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} -\n\ ! Subtraction or unary negation operator.\n\ ! @seealso{minus}\n\ ! @end deftypefn"), pair_type ("--", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} --\n\ ! Decrement operator. As in C, may be applied as a prefix or postfix\n\ ! operator.\n\ ! @seealso{++}\n\ ! @end deftypefn"), pair_type (".'", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} .'\n\ ! Matrix transpose operator. For complex matrices, computes the\n\ ! transpose, @emph{not} the complex conjugate transpose.\n\ ! @seealso{', transpose}\n\ ! @end deftypefn"), pair_type (".*", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} .*\n\ ! Element by element multiplication operator.\n\ ! @seealso{*, times}\n\ ! @end deftypefn"), pair_type (".**", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} .*\n\ ! Element by element power operator.\n\ ! @seealso{**, ^, .^, power}\n\ ! @end deftypefn"), pair_type (".^", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} .^\n\ ! Element by element power operator.\n\ ! @seealso{.**, ^, **, power}\n\ ! @end deftypefn"), ! ! pair_type ("./", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} ./\n\ ! Element by element right division operator.\n\ ! @seealso{/, .\\, rdivide, mrdivide}\n\ ! @end deftypefn"), pair_type ("/", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} /\n\ ! Right division operator.\n\ ! @seealso{./, \\, rdivide, mrdivide}\n\ ! @end deftypefn"), ! ! pair_type (".\\", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} .\\\n\ ! Element by element left division operator.\n\ ! @seealso{\\, ./, rdivide, mrdivide}\n\ ! @end deftypefn"), ! ! pair_type ("\\", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} \\\n\ ! Left division operator.\n\ ! @seealso{.\\, /, ldivide, mldivide}\n\ ! @end deftypefn"), pair_type (":", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} :\n\ ! Select entire rows or columns of matrices.\n\ ! @end deftypefn"), pair_type (";", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} ;\n\ ! Array row or command separator.\n\ ! @seealso{,}\n\ ! @end deftypefn"), pair_type ("<", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} <\n\ ! 'Less than' operator.\n\ ! @seealso{lt}\n\ ! @end deftypefn"), pair_type ("<=", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} <=\n\ ! 'Less than' or 'equals' operator.\n\ ! @seealso{le}\n\ ! @end deftypefn"), pair_type ("=", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} =\n\ ! Assignment operator.\n\ ! @end deftypefn"), pair_type ("==", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} ==\n\ ! Equality test operator.\n\ ! @seealso{eq}\n\ ! @end deftypefn"), pair_type (">", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} >\n\ ! 'Greater than' operator.\n\ ! @seealso{gt}\n\ ! @end deftypefn"), pair_type (">=", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} >=\n\ ! 'Greater than' or 'equals' operator.\n\ ! @seealso{ge}\n\ ! @end deftypefn"), pair_type ("[", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} [\n\ ! Return list delimiter.\n\ ! @seealso{]}\n\ ! @end deftypefn"), pair_type ("]", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} ]\n\ ! Return list delimiter.\n\ ! @seealso{[}\n\ ! @end deftypefn"), pair_type ("|", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} |\n\ ! Element by element logical 'or' operator.\n\ ! @seealso{||, or}\n\ ! @end deftypefn"), pair_type ("||", ! "-*- texinfo -*-\n\ ! @deftypefn {Operator} {} ||\n\ ! Logical 'or' (with short-circuit evaluation) operator.\n\ ! @seealso{|, or}\n\ ! @end deftypefn"), }; const static pair_type keywords[] = *************** *** 356,362 **** pair_type ("function", "-*- texinfo -*-\n\ ! @deftypefn {Keyword} {} function @var{outputs} = function (@var{input}, @dots{})\n\ @deftypefnx {Keyword} {} function {} function (@var{input}, @dots{})\n\ @deftypefnx {Keyword} {} function @var{outputs} = function\n\ Begin a function body with @var{outputs} as results and @var{inputs} as\n\ --- 554,560 ---- pair_type ("function", "-*- texinfo -*-\n\ ! @deftypefn {Keyword} {} function @var{outputs} = function (@var{input}, @dots{})\n\ @deftypefnx {Keyword} {} function {} function (@var{input}, @dots{})\n\ @deftypefnx {Keyword} {} function @var{outputs} = function\n\ Begin a function body with @var{outputs} as results and @var{inputs} as\n\ *************** *** 382,388 **** pair_type ("if", "-*- texinfo -*-\n\ ! @deftypefn {Keyword} {} if (@var{cond}) @dots{} endif\n\ @deftypefnx {Keyword} {} if (@var{cond}) @dots{} else @dots{} endif\n\ @deftypefnx {Keyword} {} if (@var{cond}) @dots{} elseif (@var{cond}) @dots{} endif\n\ @deftypefnx {Keyword} {} if (@var{cond}) @dots{} elseif (@var{cond}) @dots{} else @dots{} endif\n\ --- 580,586 ---- pair_type ("if", "-*- texinfo -*-\n\ ! @deftypefn {Keyword} {} if (@var{cond}) @dots{} endif\n\ @deftypefnx {Keyword} {} if (@var{cond}) @dots{} else @dots{} endif\n\ @deftypefnx {Keyword} {} if (@var{cond}) @dots{} elseif (@var{cond}) @dots{} endif\n\ @deftypefnx {Keyword} {} if (@var{cond}) @dots{} elseif (@var{cond}) @dots{} else @dots{} endif\n\ *************** *** 473,479 **** execution will proceed after the catch block (though it is often\n\ recommended to use the lasterr function to re-throw the error after cleanup\n\ is completed).\n\ ! @seealso{catch,unwind_protect}\n\ @end deftypefn"), pair_type ("until", --- 671,677 ---- execution will proceed after the catch block (though it is often\n\ recommended to use the lasterr function to re-throw the error after cleanup\n\ is completed).\n\ ! @seealso{catch, unwind_protect}\n\ @end deftypefn"), pair_type ("until", *************** *** 494,500 **** unwind_protect_cleanup block is still executed (in other words, the\n\ unwind_protect_cleanup will be run with or without an error in the\n\ unwind_protect block).\n\ ! @seealso{unwind_protect_cleanup,try}\n\ @end deftypefn"), pair_type ("unwind_protect_cleanup", --- 692,698 ---- unwind_protect_cleanup block is still executed (in other words, the\n\ unwind_protect_cleanup will be run with or without an error in the\n\ unwind_protect block).\n\ ! @seealso{unwind_protect_cleanup, try}\n\ @end deftypefn"), pair_type ("unwind_protect_cleanup", *************** *** 719,734 **** DEFUN (get_help_text, args, , "-*- texinfo -*-\n\ @deftypefn {Loadable Function} {[@var{text}, @var{format}] =} get_help_text (@var{name})\n\ ! Return the help text of a given function.\n\ \n\ ! This function returns the raw help text @var{text} and an indication of\n\ ! its format for the function @var{name}. The format indication @var{format}\n\ ! is a string that can be either @t{\"texinfo\"}, @t{\"html\"}, or\n\ @t{\"plain text\"}.\n\ - \n\ - To convert the help text to other formats, use the @code{makeinfo} function.\n\ - \n\ - @seealso{makeinfo}\n\ @end deftypefn") { octave_value_list retval; --- 917,927 ---- DEFUN (get_help_text, args, , "-*- texinfo -*-\n\ @deftypefn {Loadable Function} {[@var{text}, @var{format}] =} get_help_text (@var{name})\n\ ! Return the raw help text of function @var{name}.\n\ \n\ ! The raw help text is returned in @var{text} and the format in @var{format}\n\ ! The format is a string which is one of @t{\"texinfo\"}, @t{\"html\"}, or\n\ @t{\"plain text\"}.\n\ @end deftypefn") { octave_value_list retval; *************** *** 793,808 **** DEFUN (get_help_text_from_file, args, , "-*- texinfo -*-\n\ @deftypefn {Loadable Function} {[@var{text}, @var{format}] =} get_help_text_from_file (@var{fname})\n\ ! Return the help text from the given file.\n\ \n\ ! This function returns the raw help text @var{text} and an indication of\n\ ! its format for the function @var{name}. The format indication @var{format}\n\ ! is a string that can be either @t{\"texinfo\"}, @t{\"html\"}, or\n\ @t{\"plain text\"}.\n\ - \n\ - To convert the help text to other formats, use the @code{makeinfo} function.\n\ - \n\ - @seealso{makeinfo}\n\ @end deftypefn") { octave_value_list retval; --- 986,996 ---- DEFUN (get_help_text_from_file, args, , "-*- texinfo -*-\n\ @deftypefn {Loadable Function} {[@var{text}, @var{format}] =} get_help_text_from_file (@var{fname})\n\ ! Return the raw help text from the file @var{fname}.\n\ \n\ ! The raw help text is returned in @var{text} and the format in @var{format}\n\ ! The format is a string which is one of @t{\"texinfo\"}, @t{\"html\"}, or\n\ @t{\"plain text\"}.\n\ @end deftypefn") { octave_value_list retval; *************** *** 1040,1046 **** } } else ! error ("__list_functions__: input must be a string"); } return retval; --- 1228,1234 ---- } } else ! error ("__list_functions__: DIRECTORY argument must be a string"); } return retval; diff -cNr octave-3.4.0/src/input.cc octave-3.4.1/src/input.cc *** octave-3.4.0/src/input.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/input.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 932,938 **** if (error_state) { ! error ("yes_or_no: expecting argument to be character string"); return retval; } } --- 932,938 ---- if (error_state) { ! error ("yes_or_no: PROMPT must be a character string"); return retval; } } *************** *** 1277,1283 **** DEFUN (add_input_event_hook, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} add_input_event_hook (@var{fcn}, @var{data})\n\ Add the named function @var{fcn} to the list of functions to call\n\ periodically when Octave is waiting for input. The function should\n\ have the form\n\ --- 1277,1284 ---- DEFUN (add_input_event_hook, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} add_input_event_hook (@var{fcn})\n\ ! @deftypefnx {Built-in Function} {} add_input_event_hook (@var{fcn}, @var{data})\n\ Add the named function @var{fcn} to the list of functions to call\n\ periodically when Octave is waiting for input. The function should\n\ have the form\n\ *************** *** 1323,1329 **** DEFUN (remove_input_event_hook, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} remove_input_event_hook (@var{fcn})\n\ ! Remove the named function @var{fcn} to the list of functions to call\n\ periodically when Octave is waiting for input.\n\ @seealso{add_input_event_hook}\n\ @end deftypefn") --- 1324,1330 ---- DEFUN (remove_input_event_hook, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} remove_input_event_hook (@var{fcn})\n\ ! Remove the named function @var{fcn} from the list of functions to call\n\ periodically when Octave is waiting for input.\n\ @seealso{add_input_event_hook}\n\ @end deftypefn") diff -cNr octave-3.4.0/src/load-path.cc octave-3.4.1/src/load-path.cc *** octave-3.4.0/src/load-path.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/load-path.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 613,619 **** { std::string dir = dir_arg; ! octave_idx_type k = dir.length (); while (k > 1 && file_ops::is_dir_sep (dir[k-1])) k--; --- 613,620 ---- { std::string dir = dir_arg; ! size_t k = dir.length (); ! while (k > 1 && file_ops::is_dir_sep (dir[k-1])) k--; *************** *** 1955,1961 **** @deftypefn {Built-in Function} {} genpath (@var{dir})\n\ @deftypefnx {Built-in Function} {} genpath (@var{dir}, @var{skip}, @dots{})\n\ Return a path constructed from @var{dir} and all its subdirectories.\n\ ! If additional string parameters are given, the resulting path will \n\ exclude directories with those names.\n\ @end deftypefn") { --- 1956,1962 ---- @deftypefn {Built-in Function} {} genpath (@var{dir})\n\ @deftypefnx {Built-in Function} {} genpath (@var{dir}, @var{skip}, @dots{})\n\ Return a path constructed from @var{dir} and all its subdirectories.\n\ ! If additional string parameters are given, the resulting path will\n\ exclude directories with those names.\n\ @end deftypefn") { *************** *** 1970,1976 **** if (! error_state) retval = genpath (dirname); else ! error ("genpath: expecting argument to be a character string"); } else if (nargin > 1) { --- 1971,1977 ---- if (! error_state) retval = genpath (dirname); else ! error ("genpath: DIR must be a character string"); } else if (nargin > 1) { *************** *** 1989,1995 **** if (! error_state) retval = genpath (dirname, skip); else ! error ("genpath: expecting all arguments to be character strings"); } else print_usage (); --- 1990,1996 ---- if (! error_state) retval = genpath (dirname, skip); else ! error ("genpath: all arguments must be character strings"); } else print_usage (); *************** *** 2036,2042 **** DEFUN (restoredefaultpath, , , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} restoredefaultpath (@dots{})\n\ ! Restore Octave's path to it's initial state at startup.\n\ \n\ @seealso{path, addpath, rmpath, genpath, pathdef, savepath, pathsep}\n\ @end deftypefn") --- 2037,2043 ---- DEFUN (restoredefaultpath, , , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} restoredefaultpath (@dots{})\n\ ! Restore Octave's path to its initial state at startup.\n\ \n\ @seealso{path, addpath, rmpath, genpath, pathdef, savepath, pathsep}\n\ @end deftypefn") *************** *** 2121,2128 **** @deftypefn {Built-in Function} {} addpath (@var{dir1}, @dots{})\n\ @deftypefnx {Built-in Function} {} addpath (@var{dir1}, @dots{}, @var{option})\n\ Add @var{dir1}, @dots{} to the current function search path. If\n\ ! @var{option} is @samp{\"-begin\"} or 0 (the default), prepend the\n\ ! directory name to the current path. If @var{option} is @samp{\"-end\"}\n\ or 1, append the directory name to the current path.\n\ Directories added to the path must exist.\n\ \n\ --- 2122,2129 ---- @deftypefn {Built-in Function} {} addpath (@var{dir1}, @dots{})\n\ @deftypefnx {Built-in Function} {} addpath (@var{dir1}, @dots{}, @var{option})\n\ Add @var{dir1}, @dots{} to the current function search path. If\n\ ! @var{option} is \"-begin\" or 0 (the default), prepend the\n\ ! directory name to the current path. If @var{option} is \"-end\"\n\ or 1, append the directory name to the current path.\n\ Directories added to the path must exist.\n\ \n\ *************** *** 2220,2226 **** } } else ! error ("addpath: expecting all args to be character strings"); } if (need_to_update) --- 2221,2227 ---- } } else ! error ("addpath: all arguments must be character strings"); } if (need_to_update) *************** *** 2284,2290 **** } } else ! error ("addpath: expecting all args to be character strings"); } if (need_to_update) --- 2285,2291 ---- } } else ! error ("addpath: all arguments must be character strings"); } if (need_to_update) diff -cNr octave-3.4.0/src/load-save.cc octave-3.4.1/src/load-save.cc *** octave-3.4.0/src/load-save.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/load-save.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 855,861 **** file.close (); } else ! error ("load: unable open input file `%s'", orig_fname.c_str ()); } } --- 855,861 ---- file.close (); } else ! error ("load: unable to open input file `%s'", orig_fname.c_str ()); } } *************** *** 1441,1447 **** of the scalar structure @var{STRUCT} are saved as if they were variables\n\ with corresponding names.\n\ Valid options for the @code{save} command are listed in the following table.\n\ ! Options that modify the output format override the format specified by \n\ @code{default_save_options}.\n\ \n\ If save is invoked using the functional form\n\ --- 1441,1447 ---- of the scalar structure @var{STRUCT} are saved as if they were variables\n\ with corresponding names.\n\ Valid options for the @code{save} command are listed in the following table.\n\ ! Options that modify the output format override the format specified by\n\ @code{default_save_options}.\n\ \n\ If save is invoked using the functional form\n\ *************** *** 1455,1460 **** --- 1455,1462 ---- (@var{v1}, @dots{}) must be specified as character strings.\n\ \n\ @table @code\n\ + @item -append\n\ + Append to the destination instead of overwriting.\n\ @item -ascii\n\ Save a single matrix in a text file without header or any other information.\n\ \n\ *************** *** 1522,1528 **** Match the list of characters specified by @var{list}. If the first\n\ character is @code{!} or @code{^}, match all characters except those\n\ specified by @var{list}. For example, the pattern @code{[a-zA-Z]} will\n\ ! match all lower and upper case alphabetic characters. \n\ \n\ Wildcards may also be used in the field name specifications when using\n\ the @option{-struct} modifier (but not in the struct name itself).\n\ --- 1524,1530 ---- Match the list of characters specified by @var{list}. If the first\n\ character is @code{!} or @code{^}, match all characters except those\n\ specified by @var{list}. For example, the pattern @code{[a-zA-Z]} will\n\ ! match all lower and uppercase alphabetic characters.\n\ \n\ Wildcards may also be used in the field name specifications when using\n\ the @option{-struct} modifier (but not in the struct name itself).\n\ diff -cNr octave-3.4.0/src/Makefile.am octave-3.4.1/src/Makefile.am *** octave-3.4.0/src/Makefile.am 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/Makefile.am 2011-06-15 11:13:48.000000000 -0400 *************** *** 18,27 **** # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/common.mk ! ! octlib_LTLIBRARIES = \ ! liboctinterp.la AM_CPPFLAGS = \ @CPPFLAGS@ -I../libgnu -I$(top_srcdir)/libgnu \ --- 18,24 ---- # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/build-aux/common.mk AM_CPPFLAGS = \ @CPPFLAGS@ -I../libgnu -I$(top_srcdir)/libgnu \ *************** *** 31,40 **** --- 28,64 ---- AUTOMAKE_OPTIONS = subdir-objects + octlib_LTLIBRARIES = liboctinterp.la + + if AMCOND_BUILD_COMPILED_AUX_PROGRAMS + bin_PROGRAMS = \ + mkoctfile \ + octave \ + octave-config + + mkoctfile_SOURCES = + nodist_mkoctfile_SOURCES = mkoctfile.cc + + octave_config_SOURCES = + nodist_octave_config_SOURCES = octave-config.cc + + BUILT_SOURCES_EXTRA = \ + mkoctfile.cc \ + octave-config.cc + else + bin_PROGRAMS = \ + octave + + bin_SCRIPTS = \ + mkoctfile \ + octave-config + endif + ## Order matters here. Leave builtins.cc last, because it depends on ## $(DEF_FILES), and building those requires all the sources ## (except builtins.cc) to be available. BUILT_SOURCES = \ + $(BUILT_SOURCES_EXTRA) \ defaults.h \ graphics.h \ graphics-props.cc \ *************** *** 52,60 **** oct-gperf.h \ oct-parse.h ! ## FIXME -- These files don't need to be distributed. Some of them ! ## do need to be installed. So we need to add them to a list somewhere ! ## so that happens correctly. BUILT_NODISTFILES = \ defaults.h \ graphics.h \ --- 76,83 ---- oct-gperf.h \ oct-parse.h ! ## Files that are created during build process and installed, ! ## BUT not distributed in tarball. BUILT_NODISTFILES = \ defaults.h \ graphics.h \ *************** *** 65,75 **** version.h \ $(OPT_HANDLERS) \ $(OPT_INC) \ ! $(DEF_FILES) \ builtins.cc EXTRA_DIST = \ - ChangeLog \ Makefile.in \ defaults.h.in \ DOCSTRINGS \ --- 88,97 ---- version.h \ $(OPT_HANDLERS) \ $(OPT_INC) \ ! $(ALL_DEF_FILES) \ builtins.cc EXTRA_DIST = \ Makefile.in \ defaults.h.in \ DOCSTRINGS \ *************** *** 82,104 **** mkbuiltins \ mkdefs \ mkgendoc \ mkops \ mxarray.h.in \ oct-conf.h.in \ oct-errno.cc.in \ octave.gperf \ version.h.in \ $(BUILT_DISTFILES) - DLL_CDEFS = @OCTINTERP_DLL_DEFS@ - DLL_CXXDEFS = @OCTINTERP_DLL_DEFS@ - - .cc.df: - $(CXXCPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) \ - -DMAKE_BUILTINS $< | $(srcdir)/mkdefs $(srcdir) $< > $@-t - mv $@-t $@ - OPT_HANDLERS = \ DASPK-opts.cc \ DASRT-opts.cc \ --- 104,121 ---- mkbuiltins \ mkdefs \ mkgendoc \ + mkoctfile.cc.in \ + mkoctfile.in \ mkops \ mxarray.h.in \ oct-conf.h.in \ oct-errno.cc.in \ + octave-config.cc.in \ + octave-config.in \ octave.gperf \ version.h.in \ $(BUILT_DISTFILES) OPT_HANDLERS = \ DASPK-opts.cc \ DASRT-opts.cc \ *************** *** 106,118 **** LSODE-opts.cc \ Quad-opts.cc - OPT_IN = \ - ../liboctave/DASPK-opts.in \ - ../liboctave/DASRT-opts.in \ - ../liboctave/DASSL-opts.in \ - ../liboctave/LSODE-opts.in \ - ../liboctave/Quad-opts.in - OPT_INC = \ ../liboctave/DASPK-opts.h \ ../liboctave/DASRT-opts.h \ --- 123,128 ---- *************** *** 224,230 **** comment-list.h \ cutils.h \ debug.h \ - defaults.h \ defun-dld.h \ defun-int.h \ defun.h \ --- 234,239 ---- *************** *** 236,242 **** gl-render.h \ gl2ps.h \ gl2ps-renderer.h \ - graphics.h \ graphics-props.cc \ gripes.h \ help.h \ --- 245,250 ---- *************** *** 254,261 **** ls-utils.h \ mex.h \ mexproto.h \ - mxarray.h \ - oct-conf.h \ oct-errno.h \ oct-fstrm.h \ oct-gperf.h \ --- 262,267 ---- *************** *** 290,296 **** unwind-prot.h \ utils.h \ variables.h \ - version.h \ xdiv.h \ xnorm.h \ xpow.h \ --- 296,301 ---- *************** *** 299,304 **** --- 304,316 ---- $(OV_SPARSE_INCLUDES) \ $(PT_INCLUDES) + nodist_octinclude_HEADERS = \ + defaults.h \ + graphics.h \ + oct-conf.h \ + mxarray.h \ + version.h + OV_INTTYPE_SRC = \ ov-int16.cc \ ov-int32.cc \ *************** *** 481,500 **** $(OPERATORS_SRC) \ $(TEMPLATE_INST_SRC) ! DLD_DYNAMIC_DEF_FILES = $(DLD_DYNAMIC_SRC:.cc=.df) ! DLD_STATIC_DEF_FILES = $(DLD_STATIC_SRC:.cc=.df) ! ! SRC_DEF_FILES := $(shell $(srcdir)/find-defun-files.sh "$(srcdir)" $(DIST_SRC)) ! ! ## builtins.cc depends on $(DEF_FILES), so DEF_FILES should only include ! ## .df files that correspond to sources included in liboctave. ! DEF_FILES = $(SRC_DEF_FILES) $(DLD_STATIC_DEF_FILES) ! ! ALL_DEF_FILES = $(DEF_FILES) $(DLD_DYNAMIC_DEF_FILES) ! ! $(DEF_FILES) $(DYNAMIC_DLD_DEF_FILES): mkdefs Makefile - $(DEF_FILES): $(OPT_HANDLERS) $(OPT_INC) if AMCOND_ENABLE_DYNAMIC_LINKING OCTAVE_LIBS = \ --- 493,509 ---- $(OPERATORS_SRC) \ $(TEMPLATE_INST_SRC) ! nodist_liboctinterp_la_SOURCES = \ ! builtins.cc \ ! defaults.h \ ! graphics.h \ ! mxarray.h \ ! oct-conf.h \ ! oct-errno.cc \ ! ops.cc \ ! version.h \ ! $(OPT_INC) if AMCOND_ENABLE_DYNAMIC_LINKING OCTAVE_LIBS = \ *************** *** 566,636 **** liboctinterp_la_LIBADD = $(OCTINTERP_LINK_DEPS) ! OCT_LINK_DEPS = \ ! $(RLD_FLAG) $(LDFLAGS) \ ! ./liboctinterp.la \ ! ../liboctave/liboctave.la \ ! ../libcruft/libcruft.la \ ! ../libcruft/libranlib.la \ ! ../libgnu/libgnu.la ! bin_PROGRAMS = octave ! octave_SOURCES = main.c ! nodist_liboctinterp_la_SOURCES = \ ! builtins.cc \ ! defaults.h \ ! graphics.h \ ! mxarray.h \ ! oct-conf.h \ ! oct-errno.cc \ ! ops.cc \ ! version.h \ ! $(OPT_INC) ! liboctinterp_la_CPPFLAGS = @OCTINTERP_DLL_DEFS@ $(AM_CPPFLAGS) ! liboctinterp_la_LDFLAGS = -release $(version) $(NO_UNDEFINED_LDFLAG) \ ! -bindir $(bindir) ! CLEANFILES = \ ! DLD-FUNCTIONS/PKG_ADD \ ! doc-files \ ! gendoc.cc \ ! gendoc$(BUILD_EXEEXT) \ ! graphics-props.cc \ ! oct-parse.output \ ! $(BUILT_NODISTFILES) ! DISTCLEANFILES = \ ! .DOCSTRINGS \ ! DOCSTRINGS \ ! $(OCT_FILES) \ ! $(OCT_STAMP_FILES) ! MAINTAINERCLEANFILES = \ ! $(BUILT_DISTFILES) octave_LDADD = $(OCTAVE_LIBS) - all-local: $(OCT_STAMP_FILES) DLD-FUNCTIONS/PKG_ADD .DOCSTRINGS ! lex.lo lex.o oct-parse.lo oct-parse.o: \ ! AM_CXXFLAGS := $(filter-out -Wold-style-cast, $(AM_CXXFLAGS)) ! __fltk_uigetfile__.lo __fltk_uigetfile__.o: \ ! AM_CXXFLAGS := $(filter-out $(DLL_CXXDEFS), $(AM_CXXFLAGS) $(GRAPHICS_CFLAGS)) ! __init_fltk__.lo __init_fltk__.o: \ ! AM_CXXFLAGS := $(filter-out $(DLL_CXXDEFS), $(AM_CXXFLAGS) $(GRAPHICS_CFLAGS)) ! # XERBLA = ../libcruft/blas-xtra/xerbla.o ! builtins.cc: $(DEF_FILES) mkbuiltins ! $(srcdir)/mkbuiltins $(DEF_FILES) > $@-t mv $@-t $@ mxarray.h: mxarray.h.in Makefile $(SED) < $< \ -e "s|%OCTAVE_IDX_TYPE%|${OCTAVE_IDX_TYPE}|" > $@-t --- 575,745 ---- liboctinterp_la_LIBADD = $(OCTINTERP_LINK_DEPS) ! liboctinterp_la_CPPFLAGS = @OCTINTERP_DLL_DEFS@ $(AM_CPPFLAGS) ! # Increment these as needed and according to the rules in the libtool manual: ! liboctinterp_current = 0 ! liboctinterp_revision = 0 ! liboctinterp_age = 0 ! ! liboctinterp_version_info = $(liboctinterp_current):$(liboctinterp_revision):$(liboctinterp_age) ! ! liboctinterp_la_LDFLAGS = \ ! -version-info $(liboctinterp_version_info) \ ! $(NO_UNDEFINED_LDFLAG) \ ! -bindir $(bindir) ! display.df display.lo: CPPFLAGS += $(X11_FLAGS) ! DLD-FUNCTIONS/__magick_read__.df: CPPFLAGS += $(MAGICK_CPPFLAGS) ! DLD_FUNCTIONS___magick_read___la_CPPFLAGS = $(AM_CPPFLAGS) $(MAGICK_CPPFLAGS) ! DLD_FUNCTIONS___magick_read___la_LIBADD += $(MAGICK_LDFLAGS) $(MAGICK_LIBS) ! DLD-FUNCTIONS/convhulln.df: CPPFLAGS += $(QHULL_CPPFLAGS) ! DLD_FUNCTIONS_convhulln_la_CPPFLAGS = $(AM_CPPFLAGS) $(QHULL_CPPFLAGS) ! DLD_FUNCTIONS_convhulln_la_LIBADD += $(QHULL_LDFLAGS) $(QHULL_LIBS) ! DLD-FUNCTIONS/__delaunayn__.df: CPPFLAGS += $(QHULL_CPPFLAGS) ! DLD_FUNCTIONS___delaunayn___la_CPPFLAGS = $(AM_CPPFLAGS) $(QHULL_CPPFLAGS) ! DLD_FUNCTIONS___delaunayn___la_LIBADD += $(QHULL_LDFLAGS) $(QHULL_LIBS) ! DLD-FUNCTIONS/__voronoi__.df: CPPFLAGS += $(QHULL_CPPFLAGS) ! DLD_FUNCTIONS___voronoi___la_CPPFLAGS = $(AM_CPPFLAGS) $(QHULL_CPPFLAGS) ! DLD_FUNCTIONS___voronoi___la_LIBADD += $(QHULL_LDFLAGS) $(QHULL_LIBS) ! DLD-FUNCTIONS/eigs.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) ! DLD_FUNCTIONS_eigs_la_CPPFLAGS = $(AM_CPPFLAGS) $(SPARSE_XCPPFLAGS) ! DLD_FUNCTIONS_eigs_la_LIBADD += $(SPARSE_XLDFLAGS) $(SPARSE_XLIBS) $(LAPACK_LIBS) $(BLAS_LIBS) ! #DLD-FUNCTIONS/qz.df DLD-FUNCTIONS/qz.lo: ! DLD_FUNCTIONS_qz_la_LIBADD += $(LAPACK_LIBS) $(BLAS_LIBS) ! ! DLD-FUNCTIONS/qr.df: CPPFLAGS += $(QRUPDATE_CPPFLAGS) $(SPARSE_XCPPFLAGS) ! DLD_FUNCTIONS_qr_la_CPPFLAGS = $(AM_CPPFLAGS) $(QRUPDATE_CPPFLAGS) $(SPARSE_XCPPFLAGS) ! DLD_FUNCTIONS_qr_la_LIBADD += $(QRUPDATE_LDFLAGS) $(QRUPDATE_LIBS) $(SPARSE_XLDFLAGS) $(SPARSE_XLIBS) ! ! DLD-FUNCTIONS/chol.df: CPPFLAGS += $(QRUPDATE_CPPFLAGS) $(SPARSE_XCPPFLAGS) ! DLD_FUNCTIONS_chol_la_CPPFLAGS = $(AM_CPPFLAGS) $(QRUPDATE_CPPFLAGS) $(SPARSE_XCPPFLAGS) ! DLD_FUNCTIONS_chol_la_LIBADD += $(QRUPDATE_LDFLAGS) $(QRUPDATE_LIBS) $(SPARSE_XLDFLAGS) $(SPARSE_XLIBS) ! ! DLD-FUNCTIONS/regexp.df: CPPFLAGS += $(REGEX_CPPFLAGS) ! DLD_FUNCTIONS_regexp_la_CPPFLAGS = $(AM_CPPFLAGS) $(REGEX_CPPFLAGS) ! DLD_FUNCTIONS_regexp_la_LIBADD += $(REGEX_LDFLAGS) $(REGEX_LIBS) ! ! DLD-FUNCTIONS/urlwrite.df: CPPFLAGS += $(CURL_CPPFLAGS) ! DLD_FUNCTIONS_urlwrite_la_CPPFLAGS = $(AM_CPPFLAGS) $(CURL_CPPFLAGS) ! DLD_FUNCTIONS_urlwrite_la_LIBADD += $(CURL_LDFLAGS) $(CURL_LIBS) ! ! DLD-FUNCTIONS/__fltk_uigetfile__.df: CPPFLAGS += $(GRAPHICS_CFLAGS) $(FT2_CPPFLAGS) ! DLD_FUNCTIONS___fltk_uigetfile___la_CPPFLAGS = $(AM_CPPFLAGS) $(GRAPHICS_CFLAGS) $(FT2_CPPFLAGS) ! DLD_FUNCTIONS___fltk_uigetfile___la_LIBADD += $(GRAPHICS_LDFLAGS) $(GRAPHICS_LIBS) $(FT2_LDFLAGS) $(FT2_LIBS) ! ! DLD-FUNCTIONS/__glpk__.df: CPPFLAGS += $(GLPK_CPPFLAGS) ! DLD_FUNCTIONS___glpk___la_CPPFLAGS = $(AM_CPPFLAGS) $(GLPK_CPPFLAGS) ! DLD_FUNCTIONS___glpk___la_LIBADD += $(GLPK_LDFLAGS) $(GLPK_LIBS) ! ! DLD-FUNCTIONS/__init_fltk__.df: CPPFLAGS += $(GRAPHICS_CFLAGS) $(FT2_CPPFLAGS) ! DLD_FUNCTIONS___init_fltk___la_CPPFLAGS = $(AM_CPPFLAGS) $(GRAPHICS_CFLAGS) $(FT2_CPPFLAGS) ! DLD_FUNCTIONS___init_fltk___la_LIBADD += $(GRAPHICS_LDFLAGS) $(GRAPHICS_LIBS) $(FT2_LDFLAGS) $(FT2_LIBS) ! ! DLD-FUNCTIONS/amd.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) ! DLD_FUNCTIONS_amd_la_CPPFLAGS = $(AM_CPPFLAGS) $(SPARSE_XCPPFLAGS) ! DLD_FUNCTIONS_amd_la_LIBADD += $(SPARSE_XLDFLAGS) $(SPARSE_XLIBS) ! ! DLD-FUNCTIONS/colamd.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) ! DLD_FUNCTIONS_colamd_la_CPPFLAGS = $(AM_CPPFLAGS) $(SPARSE_XCPPFLAGS) ! DLD_FUNCTIONS_colamd_la_LIBADD += $(SPARSE_XLDFLAGS) $(SPARSE_XLIBS) ! ! DLD-FUNCTIONS/ccolamd.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) ! DLD_FUNCTIONS_ccolamd_la_CPPFLAGS = $(AM_CPPFLAGS) $(SPARSE_XCPPFLAGS) ! DLD_FUNCTIONS_ccolamd_la_LIBADD += $(SPARSE_XLDFLAGS) $(SPARSE_XLIBS) ! ! DLD-FUNCTIONS/symbfact.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) ! DLD_FUNCTIONS_symbfact_la_CPPFLAGS = $(AM_CPPFLAGS) $(SPARSE_XCPPFLAGS) ! DLD_FUNCTIONS_symbfact_la_LIBADD += $(SPARSE_XLDFLAGS) $(SPARSE_XLIBS) ! ! DLD-FUNCTIONS/dmperm.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) ! DLD_FUNCTIONS_dmperm_la_CPPFLAGS = $(AM_CPPFLAGS) $(SPARSE_XCPPFLAGS) ! DLD_FUNCTIONS_dmperm_la_LIBADD += $(SPARSE_XLDFLAGS) $(SPARSE_XLIBS) ! ! DLD-FUNCTIONS/symrcm.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) ! DLD_FUNCTIONS_symrcm_la_CPPFLAGS = $(AM_CPPFLAGS) $(SPARSE_XCPPFLAGS) ! DLD_FUNCTIONS_symrcm_la_LIBADD += $(SPARSE_XLDFLAGS) $(SPARSE_XLIBS) ! ! DLD-FUNCTIONS/fft.df: CPPFLAGS += $(FFTW_XCPPFLAGS) ! DLD_FUNCTIONS_fft_la_CPPFLAGS = $(AM_CPPFLAGS) $(FFTW_XCPPFLAGS) ! DLD_FUNCTIONS_fft_la_LIBADD += $(FFTW_XLDFLAGS) $(FFTW_XLIBS) ! ! DLD-FUNCTIONS/fft2.df: CPPFLAGS += $(FFTW_XCPPFLAGS) ! DLD_FUNCTIONS_fft2_la_CPPFLAGS = $(AM_CPPFLAGS) $(FFTW_XCPPFLAGS) ! DLD_FUNCTIONS_fft2_la_LIBADD += $(FFTW_XLDFLAGS) $(FFTW_XLIBS) ! ! DLD-FUNCTIONS/fftn.df: CPPFLAGS += $(FFTW_XCPPFLAGS) ! DLD_FUNCTIONS_fftn_la_CPPFLAGS = $(AM_CPPFLAGS) $(FFTW_XCPPFLAGS) ! DLD_FUNCTIONS_fftn_la_LIBADD += $(FFTW_XLDFLAGS) $(FFTW_XLIBS) ! ! DLD-FUNCTIONS/fftw.df: CPPFLAGS += $(FFTW_XCPPFLAGS) ! DLD_FUNCTIONS_fftw_la_CPPFLAGS = $(AM_CPPFLAGS) $(FFTW_XCPPFLAGS) ! DLD_FUNCTIONS_fftw_la_LIBADD += $(FFTW_XLDFLAGS) $(FFTW_XLIBS) ! ! ! octave_SOURCES = main.c octave_LDADD = $(OCTAVE_LIBS) ! ## Section for defining and creating DEF_FILES ! SRC_DEF_FILES := $(shell $(srcdir)/find-defun-files.sh "$(srcdir)" $(DIST_SRC)) ! DLD_STATIC_DEF_FILES = $(DLD_STATIC_SRC:.cc=.df) ! DLD_DYNAMIC_DEF_FILES = $(DLD_DYNAMIC_SRC:.cc=.df) ! ## builtins.cc depends on $(DEF_FILES), so DEF_FILES should only include ! ## .df files that correspond to sources included in liboctave. ! DEF_FILES = $(SRC_DEF_FILES) $(DLD_STATIC_DEF_FILES) ! ALL_DEF_FILES = $(DEF_FILES) $(DLD_DYNAMIC_DEF_FILES) ! $(DEF_FILES) $(DYNAMIC_DLD_DEF_FILES): mkdefs Makefile ! ! $(DEF_FILES): $(OPT_HANDLERS) $(OPT_INC) ! ! DLL_CDEFS = @OCTINTERP_DLL_DEFS@ ! DLL_CXXDEFS = @OCTINTERP_DLL_DEFS@ ! ! ## Rule to build a DEF file from a .cc file ! %.df: %.cc ! $(CXXCPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ ! $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) \ ! -DMAKE_BUILTINS $< | $(srcdir)/mkdefs $(srcdir) $< > $@-t ! mv $@-t $@ ! ! ## Special rules: ! ## Mostly for sources which must be built before rest of compilation. ! ! ## defaults.h and oct-conf.h must depend on Makefile. Calling configure ! ## may change default/config values. However, calling configure will also ! ## regenerate the Makefiles from Makefile.am and trigger the rules below. ! defaults.h: defaults.h.in Makefile ! @$(do_subst_default_vals) ! ! graphics.h: graphics.h.in genprops.awk Makefile ! $(AWK) -f $(srcdir)/genprops.awk $< > $@-t mv $@-t $@ + oct-conf.h: oct-conf.h.in Makefile + @$(do_subst_config_vals) + + ## Don't use a pipeline to process gperf output since if gperf + ## is missing but sed is not, the exit status of the pipeline + ## will still be success and we will end up creating an empty + ## oct-gperf.h file. + oct-gperf.h: octave.gperf + $(GPERF) -t -C -D -G -L C++ -Z octave_kw_hash $< > $@-t1 + $(SED) 's,lookup\[,gperf_lookup[,' < $@-t1 > $@-t + mv $@-t $@ + rm -f $@-t1 + mxarray.h: mxarray.h.in Makefile $(SED) < $< \ -e "s|%OCTAVE_IDX_TYPE%|${OCTAVE_IDX_TYPE}|" > $@-t *************** *** 645,662 **** -e "s|%OCTAVE_VERSION%|\"${OCTAVE_VERSION}\"|" > $@-t mv $@-t $@ ! graphics.h: graphics.h.in genprops.awk Makefile ! $(AWK) -f $(srcdir)/genprops.awk $< > $@-t mv $@-t $@ graphics-props.cc: graphics.h.in genprops.awk Makefile $(AWK) -v emit_graphics_props=1 -f $(srcdir)/genprops.awk $< > $@-t mv $@-t $@ DLD-FUNCTIONS/PKG_ADD: $(DLD_DYNAMIC_DEF_FILES) mk-pkg-add $(srcdir)/mk-pkg-add $(DLD_DYNAMIC_DEF_FILES) > $@-t mv $@-t $@ .DOCSTRINGS: gendoc$(BUILD_EXEEXT) if [ "x$(srcdir)" != "x." ] && [ -f $(srcdir)/DOCSTRINGS ] && [ ! -f DOCSTRINGS ]; then \ cp $(srcdir)/DOCSTRINGS DOCSTRINGS; \ --- 754,801 ---- -e "s|%OCTAVE_VERSION%|\"${OCTAVE_VERSION}\"|" > $@-t mv $@-t $@ ! builtins.cc: $(DEF_FILES) mkbuiltins ! $(srcdir)/mkbuiltins $(DEF_FILES) > $@-t mv $@-t $@ graphics-props.cc: graphics.h.in genprops.awk Makefile $(AWK) -v emit_graphics_props=1 -f $(srcdir)/genprops.awk $< > $@-t mv $@-t $@ + ops.cc: $(OPERATORS_SRC) mkops + $(srcdir)/mkops $(OPERATORS_SRC) > $@-t + mv $@-t $@ + + oct-errno.cc: oct-errno.cc.in Makefile + if test -n "$(PERL)"; then \ + $(srcdir)/mk-errno-list --perl "$(PERL)" < $< > $@-t; \ + elif test -n "$(PYTHON)"; then \ + $(srcdir)/mk-errno-list --python "$(PYTHON)" < $< > $@-t; \ + else \ + $(SED) '/@SYSDEP_ERRNO_LIST@/D' $< > $@-t; \ + fi + mv $@-t $@ + + $(OPT_HANDLERS) : %.cc : $(top_srcdir)/liboctave/%.in $(top_srcdir)/build-aux/mk-opts.pl + $(PERL) $(top_srcdir)/build-aux/mk-opts.pl --opt-handler-fcns $< > $@-t + mv $@-t $@ + + $(OPT_INC) : %.h : %.in + $(MAKE) -C $(@D) $(@F) + DLD-FUNCTIONS/PKG_ADD: $(DLD_DYNAMIC_DEF_FILES) mk-pkg-add $(srcdir)/mk-pkg-add $(DLD_DYNAMIC_DEF_FILES) > $@-t mv $@-t $@ + lex.lo lex.o oct-parse.lo oct-parse.o: \ + AM_CXXFLAGS := $(filter-out -Wold-style-cast, $(AM_CXXFLAGS)) + + __fltk_uigetfile__.lo __fltk_uigetfile__.o: \ + AM_CXXFLAGS := $(filter-out $(DLL_CXXDEFS), $(AM_CXXFLAGS) $(GRAPHICS_CFLAGS)) + + __init_fltk__.lo __init_fltk__.o: \ + AM_CXXFLAGS := $(filter-out $(DLL_CXXDEFS), $(AM_CXXFLAGS) $(GRAPHICS_CFLAGS)) + .DOCSTRINGS: gendoc$(BUILD_EXEEXT) if [ "x$(srcdir)" != "x." ] && [ -f $(srcdir)/DOCSTRINGS ] && [ ! -f DOCSTRINGS ]; then \ cp $(srcdir)/DOCSTRINGS DOCSTRINGS; \ *************** *** 664,670 **** fi @echo "creating .DOCSTRINGS from .cc source files" @./gendoc > $@ ! $(top_srcdir)/move-if-change $@ DOCSTRINGS touch $@ doc-files: $(ALL_DEF_FILES) --- 803,809 ---- fi @echo "creating .DOCSTRINGS from .cc source files" @./gendoc > $@ ! $(top_srcdir)/build-aux/move-if-change $@ DOCSTRINGS touch $@ doc-files: $(ALL_DEF_FILES) *************** *** 678,686 **** gendoc$(BUILD_EXEEXT): gendoc.cc $(BUILD_CXX) $(BUILD_CXXFLAGS) -o $@ $^ $(BUILD_LDFLAGS) ! ops.cc: $(OPERATORS_SRC) mkops ! $(srcdir)/mkops $(OPERATORS_SRC) > $@-t ! mv $@-t $@ install-exec-hook: make-version-links --- 817,840 ---- gendoc$(BUILD_EXEEXT): gendoc.cc $(BUILD_CXX) $(BUILD_CXXFLAGS) -o $@ $^ $(BUILD_LDFLAGS) ! ! all-local: $(OCT_STAMP_FILES) DLD-FUNCTIONS/PKG_ADD .DOCSTRINGS ! ! if AMCOND_BUILD_COMPILED_AUX_PROGRAMS ! octave-config.cc: octave-config.cc.in Makefile ! @$(do_subst_default_vals) ! ! mkoctfile.cc: mkoctfile.cc.in Makefile ! @$(do_subst_config_vals) ! else ! octave-config: octave-config.in Makefile ! @$(do_subst_default_vals) ! chmod a+rx $@ ! ! mkoctfile: mkoctfile.in Makefile ! @$(do_subst_config_vals) ! chmod a+rx $@ ! endif install-exec-hook: make-version-links *************** *** 700,706 **** if AMCOND_ENABLE_DYNAMIC_LINKING install-oct: ! $(top_srcdir)/mkinstalldirs $(DESTDIR)$(octfiledir) if [ -n "`cat DLD-FUNCTIONS/PKG_ADD`" ]; then \ $(INSTALL_DATA) DLD-FUNCTIONS/PKG_ADD $(DESTDIR)$(octfiledir)/PKG_ADD; \ fi --- 854,860 ---- if AMCOND_ENABLE_DYNAMIC_LINKING install-oct: ! $(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(octfiledir) if [ -n "`cat DLD-FUNCTIONS/PKG_ADD`" ]; then \ $(INSTALL_DATA) DLD-FUNCTIONS/PKG_ADD $(DESTDIR)$(octfiledir)/PKG_ADD; \ fi *************** *** 728,871 **** endif .PHONY: install-oct uninstall-oct - # Special rules -- these files need special things to be defined. - - $(OPT_HANDLERS) : %.cc : $(top_srcdir)/liboctave/%.in $(top_srcdir)/mk-opts.pl - $(PERL) $(top_srcdir)/mk-opts.pl --opt-handler-fcns $< > $@-t - mv $@-t $@ - - ## We require Bison. - #parse.cc : parse.y - # @echo "expect 14 shift/reduce conflicts" - # $(YACC) $(YFLAGS) --output=$@ --defines=y.tab.h $< - - #lex.cc : lex.l - # $(LEX) $(LFLAGS) $< > $(@F)-t - # @mv $(@F)-t $@ - - - $(OPT_INC) : %.h : %.in - $(MAKE) -C $(@D) $@ - - ## defaults.h and oct-conf.h must depend on Makefile. Calling configure - ## may change default/config values. However, calling configure will also - ## regenerate the Makefiles from Makefile.am and trigger the rules below. - - defaults.h: defaults.h.in Makefile - @$(do_subst_default_vals) - - oct-conf.h: oct-conf.h.in Makefile - @$(do_subst_config_vals) - - oct-errno.cc: oct-errno.cc.in Makefile - if test -n "$(PERL)"; then \ - $(srcdir)/mk-errno-list --perl "$(PERL)" < $< > $@-t; \ - elif test -n "$(PYTHON)"; then \ - $(srcdir)/mk-errno-list --python "$(PYTHON)" < $< > $@-t; \ - else \ - $(SED) '/@SYSDEP_ERRNO_LIST@/D' $< > $@-t; \ - fi - mv $@-t $@ - - ## Don't use a pipeline to process gperf output since if gperf - ## is missing but sed is not, the exit status of the pipeline - ## will still be success and we will end up creating an empty - ## oct-gperf.h file. - oct-gperf.h: octave.gperf - $(GPERF) -t -C -D -G -L C++ -Z octave_kw_hash $< > $@-t1 - $(SED) 's,lookup\[,gperf_lookup[,' < $@-t1 > $@-t - mv $@-t $@ - rm -f $@-t1 - - display.df display.lo: CPPFLAGS += $(X11_FLAGS) - - DLD-FUNCTIONS/__magick_read__.df: CPPFLAGS += $(MAGICK_CPPFLAGS) - DLD_FUNCTIONS___magick_read___la_CPPFLAGS = $(AM_CPPFLAGS) $(MAGICK_CPPFLAGS) - DLD_FUNCTIONS___magick_read___la_LIBADD += $(MAGICK_LDFLAGS) $(MAGICK_LIBS) - - DLD-FUNCTIONS/convhulln.df: CPPFLAGS += $(QHULL_CPPFLAGS) - DLD_FUNCTIONS_convhulln_la_CPPFLAGS = $(AM_CPPFLAGS) $(QHULL_CPPFLAGS) - DLD_FUNCTIONS_convhulln_la_LIBADD += $(QHULL_LDFLAGS) $(QHULL_LIBS) - - DLD-FUNCTIONS/__delaunayn__.df: CPPFLAGS += $(QHULL_CPPFLAGS) - DLD_FUNCTIONS___delaunayn___la_CPPFLAGS = $(AM_CPPFLAGS) $(QHULL_CPPFLAGS) - DLD_FUNCTIONS___delaunayn___la_LIBADD += $(QHULL_LDFLAGS) $(QHULL_LIBS) - - DLD-FUNCTIONS/__voronoi__.df: CPPFLAGS += $(QHULL_CPPFLAGS) - DLD_FUNCTIONS___voronoi___la_CPPFLAGS = $(AM_CPPFLAGS) $(QHULL_CPPFLAGS) - DLD_FUNCTIONS___voronoi___la_LIBADD += $(QHULL_LDFLAGS) $(QHULL_LIBS) - - DLD-FUNCTIONS/eigs.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) - DLD_FUNCTIONS_eigs_la_CPPFLAGS = $(AM_CPPFLAGS) $(SPARSE_XCPPFLAGS) - DLD_FUNCTIONS_eigs_la_LIBADD += $(SPARSE_XLDFLAGS) $(SPARSE_XLIBS) $(LAPACK_LIBS) $(BLAS_LIBS) - - #DLD-FUNCTIONS/qz.df DLD-FUNCTIONS/qz.lo: - DLD_FUNCTIONS_qz_la_LIBADD += $(LAPACK_LIBS) $(BLAS_LIBS) - - DLD-FUNCTIONS/qr.df: CPPFLAGS += $(QRUPDATE_CPPFLAGS) $(SPARSE_XCPPFLAGS) - DLD_FUNCTIONS_qr_la_CPPFLAGS = $(AM_CPPFLAGS) $(QRUPDATE_CPPFLAGS) $(SPARSE_XCPPFLAGS) - DLD_FUNCTIONS_qr_la_LIBADD += $(QRUPDATE_LDFLAGS) $(QRUPDATE_LIBS) $(SPARSE_XLDFLAGS) $(SPARSE_XLIBS) - - DLD-FUNCTIONS/chol.df: CPPFLAGS += $(QRUPDATE_CPPFLAGS) $(SPARSE_XCPPFLAGS) - DLD_FUNCTIONS_chol_la_CPPFLAGS = $(AM_CPPFLAGS) $(QRUPDATE_CPPFLAGS) $(SPARSE_XCPPFLAGS) - DLD_FUNCTIONS_chol_la_LIBADD += $(QRUPDATE_LDFLAGS) $(QRUPDATE_LIBS) $(SPARSE_XLDFLAGS) $(SPARSE_XLIBS) - - DLD-FUNCTIONS/regexp.df: CPPFLAGS += $(REGEX_CPPFLAGS) - DLD_FUNCTIONS_regexp_la_CPPFLAGS = $(AM_CPPFLAGS) $(REGEX_CPPFLAGS) - DLD_FUNCTIONS_regexp_la_LIBADD += $(REGEX_LDFLAGS) $(REGEX_LIBS) - - DLD-FUNCTIONS/urlwrite.df: CPPFLAGS += $(CURL_CPPFLAGS) - DLD_FUNCTIONS_urlwrite_la_CPPFLAGS = $(AM_CPPFLAGS) $(CURL_CPPFLAGS) - DLD_FUNCTIONS_urlwrite_la_LIBADD += $(CURL_LDFLAGS) $(CURL_LIBS) - - DLD-FUNCTIONS/__fltk_uigetfile__.df: CPPFLAGS += $(GRAPHICS_CFLAGS) $(FT2_CPPFLAGS) - DLD_FUNCTIONS___fltk_uigetfile___la_CPPFLAGS = $(AM_CPPFLAGS) $(GRAPHICS_CFLAGS) $(FT2_CPPFLAGS) - DLD_FUNCTIONS___fltk_uigetfile___la_LIBADD += $(GRAPHICS_LDFLAGS) $(GRAPHICS_LIBS) $(FT2_LDFLAGS) $(FT2_LIBS) - - DLD-FUNCTIONS/__glpk__.df: CPPFLAGS += $(GLPK_CPPFLAGS) - DLD_FUNCTIONS___glpk___la_CPPFLAGS = $(AM_CPPFLAGS) $(GLPK_CPPFLAGS) - DLD_FUNCTIONS___glpk___la_LIBADD += $(GLPK_LDFLAGS) $(GLPK_LIBS) - - DLD-FUNCTIONS/__init_fltk__.df: CPPFLAGS += $(GRAPHICS_CFLAGS) $(FT2_CPPFLAGS) - DLD_FUNCTIONS___init_fltk___la_CPPFLAGS = $(AM_CPPFLAGS) $(GRAPHICS_CFLAGS) $(FT2_CPPFLAGS) - DLD_FUNCTIONS___init_fltk___la_LIBADD += $(GRAPHICS_LDFLAGS) $(GRAPHICS_LIBS) $(FT2_LDFLAGS) $(FT2_LIBS) - - DLD-FUNCTIONS/amd.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) - DLD_FUNCTIONS_amd_la_CPPFLAGS = $(AM_CPPFLAGS) $(SPARSE_XCPPFLAGS) - DLD_FUNCTIONS_amd_la_LIBADD += $(SPARSE_XLDFLAGS) $(SPARSE_XLIBS) - - DLD-FUNCTIONS/colamd.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) - DLD_FUNCTIONS_colamd_la_CPPFLAGS = $(AM_CPPFLAGS) $(SPARSE_XCPPFLAGS) - DLD_FUNCTIONS_colamd_la_LIBADD += $(SPARSE_XLDFLAGS) $(SPARSE_XLIBS) - - DLD-FUNCTIONS/ccolamd.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) - DLD_FUNCTIONS_ccolamd_la_CPPFLAGS = $(AM_CPPFLAGS) $(SPARSE_XCPPFLAGS) - DLD_FUNCTIONS_ccolamd_la_LIBADD += $(SPARSE_XLDFLAGS) $(SPARSE_XLIBS) - - DLD-FUNCTIONS/symbfact.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) - DLD_FUNCTIONS_symbfact_la_CPPFLAGS = $(AM_CPPFLAGS) $(SPARSE_XCPPFLAGS) - DLD_FUNCTIONS_symbfact_la_LIBADD += $(SPARSE_XLDFLAGS) $(SPARSE_XLIBS) - - DLD-FUNCTIONS/dmperm.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) - DLD_FUNCTIONS_dmperm_la_CPPFLAGS = $(AM_CPPFLAGS) $(SPARSE_XCPPFLAGS) - DLD_FUNCTIONS_dmperm_la_LIBADD += $(SPARSE_XLDFLAGS) $(SPARSE_XLIBS) - - DLD-FUNCTIONS/symrcm.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) - DLD_FUNCTIONS_symrcm_la_CPPFLAGS = $(AM_CPPFLAGS) $(SPARSE_XCPPFLAGS) - DLD_FUNCTIONS_symrcm_la_LIBADD += $(SPARSE_XLDFLAGS) $(SPARSE_XLIBS) ! DLD-FUNCTIONS/fft.df: CPPFLAGS += $(FFTW_XCPPFLAGS) ! DLD_FUNCTIONS_fft_la_CPPFLAGS = $(AM_CPPFLAGS) $(FFTW_XCPPFLAGS) ! DLD_FUNCTIONS_fft_la_LIBADD += $(FFTW_XLDFLAGS) $(FFTW_XLIBS) ! DLD-FUNCTIONS/fft2.df: CPPFLAGS += $(FFTW_XCPPFLAGS) ! DLD_FUNCTIONS_fft2_la_CPPFLAGS = $(AM_CPPFLAGS) $(FFTW_XCPPFLAGS) ! DLD_FUNCTIONS_fft2_la_LIBADD += $(FFTW_XLDFLAGS) $(FFTW_XLIBS) ! DLD-FUNCTIONS/fftn.df: CPPFLAGS += $(FFTW_XCPPFLAGS) ! DLD_FUNCTIONS_fftn_la_CPPFLAGS = $(AM_CPPFLAGS) $(FFTW_XCPPFLAGS) ! DLD_FUNCTIONS_fftn_la_LIBADD += $(FFTW_XLDFLAGS) $(FFTW_XLIBS) - DLD-FUNCTIONS/fftw.df: CPPFLAGS += $(FFTW_XCPPFLAGS) - DLD_FUNCTIONS_fftw_la_CPPFLAGS = $(AM_CPPFLAGS) $(FFTW_XCPPFLAGS) - DLD_FUNCTIONS_fftw_la_LIBADD += $(FFTW_XLDFLAGS) $(FFTW_XLIBS) --- 882,903 ---- endif .PHONY: install-oct uninstall-oct ! CLEANFILES = \ ! DLD-FUNCTIONS/PKG_ADD \ ! doc-files \ ! gendoc.cc \ ! gendoc$(BUILD_EXEEXT) \ ! graphics-props.cc \ ! oct-parse.output ! DISTCLEANFILES = \ ! .DOCSTRINGS \ ! DOCSTRINGS \ ! $(BUILT_NODISTFILES) \ ! $(OCT_FILES) \ ! $(OCT_STAMP_FILES) ! MAINTAINERCLEANFILES = \ ! $(BUILT_DISTFILES) diff -cNr octave-3.4.0/src/Makefile.in octave-3.4.1/src/Makefile.in *** octave-3.4.0/src/Makefile.in 2011-02-08 05:03:39.000000000 -0500 --- octave-3.4.1/src/Makefile.in 2011-06-15 11:31:30.000000000 -0400 *************** *** 37,42 **** --- 37,43 ---- + VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ *************** *** 58,70 **** DIST_COMMON = $(octinclude_HEADERS) $(srcdir)/DLD-FUNCTIONS/module.mk \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/OPERATORS/module.mk \ ! $(srcdir)/TEMPLATE-INST/module.mk $(top_srcdir)/common.mk \ ! ChangeLog lex.cc oct-parse.cc ! bin_PROGRAMS = octave$(EXEEXT) subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ --- 59,79 ---- DIST_COMMON = $(octinclude_HEADERS) $(srcdir)/DLD-FUNCTIONS/module.mk \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/OPERATORS/module.mk \ ! $(srcdir)/TEMPLATE-INST/module.mk \ ! $(top_srcdir)/build-aux/common.mk lex.cc oct-parse.cc ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@bin_PROGRAMS = \ ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@ octave$(EXEEXT) ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@bin_PROGRAMS = \ ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ mkoctfile$(EXEEXT) \ ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ octave$(EXEEXT) \ ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ octave-config$(EXEEXT) subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/ax_pthread.m4 \ ! $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ *************** *** 72,87 **** $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ --- 81,100 ---- $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filemode.m4 \ ! $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpurge.m4 \ ! $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/fseek.m4 \ ! $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftell.m4 \ ! $(top_srcdir)/m4/ftello.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ *************** *** 95,120 **** $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ ! $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ! $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ! $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ ! $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ ! $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ ! $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \ ! $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memchr.m4 \ ! $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ ! $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkfifo.m4 \ ! $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \ ! $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ ! $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nanosleep.m4 \ ! $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ ! $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/printf.m4 \ ! $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ ! $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \ ! $(top_srcdir)/m4/round.m4 $(top_srcdir)/m4/roundf.m4 \ ! $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/select.m4 \ ! $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ --- 108,135 ---- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ ! $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ ! $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ! $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ ! $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/math_h.m4 \ ! $(top_srcdir)/m4/mathfunc.m4 $(top_srcdir)/m4/mbrtowc.m4 \ ! $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ ! $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/md5.m4 \ ! $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \ ! $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \ ! $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkstemp.m4 \ ! $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ ! $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/multiarch.m4 \ ! $(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/nocrash.m4 \ ! $(top_srcdir)/m4/nproc.m4 $(top_srcdir)/m4/open.m4 \ ! $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ ! $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/readlink.m4 \ ! $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ ! $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/round.m4 \ ! $(top_srcdir)/m4/roundf.m4 $(top_srcdir)/m4/save-cwd.m4 \ ! $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/sigaction.m4 \ ! $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ *************** *** 122,150 **** $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \ ! $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ ! $(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \ ! $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/tempname.m4 \ ! $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ ! $(top_srcdir)/m4/times.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ ! $(top_srcdir)/m4/trunc.m4 $(top_srcdir)/m4/truncf.m4 \ ! $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ ! $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/vasnprintf.m4 \ ! $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ ! $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ ! $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ ! $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/acinclude.m4 \ ! $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = --- 137,162 ---- $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strdup.m4 \ ! $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.m4 \ ! $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ ! $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \ ! $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/times.m4 \ ! $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/trunc.m4 \ ! $(top_srcdir)/m4/truncf.m4 $(top_srcdir)/m4/unistd-safer.m4 \ ! $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ ! $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vsnprintf.m4 \ ! $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ ! $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ ! $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = *************** *** 170,183 **** sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(octlibdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(octincludedir)" LTLIBRARIES = $(octlib_LTLIBRARIES) ! am__DEPENDENCIES_1 = ! am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ ! ./liboctinterp.la ../liboctave/liboctave.la \ ! ../libcruft/libcruft.la ../libcruft/libranlib.la \ ! ../libgnu/libgnu.la ! DLD_FUNCTIONS___contourc___la_DEPENDENCIES = $(am__DEPENDENCIES_2) am__dirstamp = $(am__leading_dot)dirstamp am_DLD_FUNCTIONS___contourc___la_OBJECTS = \ DLD-FUNCTIONS/__contourc__.lo --- 182,191 ---- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(octlibdir)" "$(DESTDIR)$(bindir)" \ + "$(DESTDIR)$(bindir)" "$(DESTDIR)$(octincludedir)" \ "$(DESTDIR)$(octincludedir)" LTLIBRARIES = $(octlib_LTLIBRARIES) ! DLD_FUNCTIONS___contourc___la_DEPENDENCIES = am__dirstamp = $(am__leading_dot)dirstamp am_DLD_FUNCTIONS___contourc___la_OBJECTS = \ DLD-FUNCTIONS/__contourc__.lo *************** *** 187,194 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___contourc___la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS___delaunayn___la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS___delaunayn___la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS___delaunayn___la-__delaunayn__.lo DLD_FUNCTIONS___delaunayn___la_OBJECTS = \ --- 195,203 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___contourc___la_LDFLAGS) $(LDFLAGS) -o $@ ! am__DEPENDENCIES_1 = ! DLD_FUNCTIONS___delaunayn___la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ ! $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS___delaunayn___la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS___delaunayn___la-__delaunayn__.lo DLD_FUNCTIONS___delaunayn___la_OBJECTS = \ *************** *** 197,203 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___delaunayn___la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS___dispatch___la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS___dispatch___la_OBJECTS = \ DLD-FUNCTIONS/__dispatch__.lo DLD_FUNCTIONS___dispatch___la_OBJECTS = \ --- 206,212 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___delaunayn___la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS___dispatch___la_DEPENDENCIES = am_DLD_FUNCTIONS___dispatch___la_OBJECTS = \ DLD-FUNCTIONS/__dispatch__.lo DLD_FUNCTIONS___dispatch___la_OBJECTS = \ *************** *** 206,212 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___dispatch___la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS___dsearchn___la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS___dsearchn___la_OBJECTS = \ DLD-FUNCTIONS/__dsearchn__.lo DLD_FUNCTIONS___dsearchn___la_OBJECTS = \ --- 215,221 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___dispatch___la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS___dsearchn___la_DEPENDENCIES = am_DLD_FUNCTIONS___dsearchn___la_OBJECTS = \ DLD-FUNCTIONS/__dsearchn__.lo DLD_FUNCTIONS___dsearchn___la_OBJECTS = \ *************** *** 216,223 **** $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___dsearchn___la_LDFLAGS) $(LDFLAGS) -o $@ DLD_FUNCTIONS___fltk_uigetfile___la_DEPENDENCIES = \ ! $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \ ! $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS___fltk_uigetfile___la_OBJECTS = DLD-FUNCTIONS/DLD_FUNCTIONS___fltk_uigetfile___la-__fltk_uigetfile__.lo DLD_FUNCTIONS___fltk_uigetfile___la_OBJECTS = \ $(am_DLD_FUNCTIONS___fltk_uigetfile___la_OBJECTS) --- 225,231 ---- $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___dsearchn___la_LDFLAGS) $(LDFLAGS) -o $@ DLD_FUNCTIONS___fltk_uigetfile___la_DEPENDENCIES = \ ! $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS___fltk_uigetfile___la_OBJECTS = DLD-FUNCTIONS/DLD_FUNCTIONS___fltk_uigetfile___la-__fltk_uigetfile__.lo DLD_FUNCTIONS___fltk_uigetfile___la_OBJECTS = \ $(am_DLD_FUNCTIONS___fltk_uigetfile___la_OBJECTS) *************** *** 226,233 **** $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___fltk_uigetfile___la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS___glpk___la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS___glpk___la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS___glpk___la-__glpk__.lo DLD_FUNCTIONS___glpk___la_OBJECTS = \ --- 234,241 ---- $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___fltk_uigetfile___la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS___glpk___la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ ! $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS___glpk___la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS___glpk___la-__glpk__.lo DLD_FUNCTIONS___glpk___la_OBJECTS = \ *************** *** 236,243 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___glpk___la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS___init_fltk___la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS___init_fltk___la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS___init_fltk___la-__init_fltk__.lo DLD_FUNCTIONS___init_fltk___la_OBJECTS = \ --- 244,251 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___glpk___la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS___init_fltk___la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ ! $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS___init_fltk___la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS___init_fltk___la-__init_fltk__.lo DLD_FUNCTIONS___init_fltk___la_OBJECTS = \ *************** *** 246,252 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___init_fltk___la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS___lin_interpn___la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS___lin_interpn___la_OBJECTS = \ DLD-FUNCTIONS/__lin_interpn__.lo DLD_FUNCTIONS___lin_interpn___la_OBJECTS = \ --- 254,260 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___init_fltk___la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS___lin_interpn___la_DEPENDENCIES = am_DLD_FUNCTIONS___lin_interpn___la_OBJECTS = \ DLD-FUNCTIONS/__lin_interpn__.lo DLD_FUNCTIONS___lin_interpn___la_OBJECTS = \ *************** *** 255,262 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___lin_interpn___la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS___magick_read___la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS___magick_read___la_OBJECTS = DLD-FUNCTIONS/DLD_FUNCTIONS___magick_read___la-__magick_read__.lo DLD_FUNCTIONS___magick_read___la_OBJECTS = \ $(am_DLD_FUNCTIONS___magick_read___la_OBJECTS) --- 263,270 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___lin_interpn___la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS___magick_read___la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ ! $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS___magick_read___la_OBJECTS = DLD-FUNCTIONS/DLD_FUNCTIONS___magick_read___la-__magick_read__.lo DLD_FUNCTIONS___magick_read___la_OBJECTS = \ $(am_DLD_FUNCTIONS___magick_read___la_OBJECTS) *************** *** 264,270 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___magick_read___la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS___pchip_deriv___la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS___pchip_deriv___la_OBJECTS = \ DLD-FUNCTIONS/__pchip_deriv__.lo DLD_FUNCTIONS___pchip_deriv___la_OBJECTS = \ --- 272,278 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___magick_read___la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS___pchip_deriv___la_DEPENDENCIES = am_DLD_FUNCTIONS___pchip_deriv___la_OBJECTS = \ DLD-FUNCTIONS/__pchip_deriv__.lo DLD_FUNCTIONS___pchip_deriv___la_OBJECTS = \ *************** *** 273,279 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___pchip_deriv___la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS___qp___la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS___qp___la_OBJECTS = DLD-FUNCTIONS/__qp__.lo DLD_FUNCTIONS___qp___la_OBJECTS = \ $(am_DLD_FUNCTIONS___qp___la_OBJECTS) --- 281,287 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___pchip_deriv___la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS___qp___la_DEPENDENCIES = am_DLD_FUNCTIONS___qp___la_OBJECTS = DLD-FUNCTIONS/__qp__.lo DLD_FUNCTIONS___qp___la_OBJECTS = \ $(am_DLD_FUNCTIONS___qp___la_OBJECTS) *************** *** 281,288 **** $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS___qp___la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS___voronoi___la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS___voronoi___la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS___voronoi___la-__voronoi__.lo DLD_FUNCTIONS___voronoi___la_OBJECTS = \ --- 289,296 ---- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS___qp___la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS___voronoi___la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ ! $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS___voronoi___la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS___voronoi___la-__voronoi__.lo DLD_FUNCTIONS___voronoi___la_OBJECTS = \ *************** *** 291,309 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___voronoi___la_LDFLAGS) $(LDFLAGS) -o $@ ! am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) DLD_FUNCTIONS_amd_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_3) am_DLD_FUNCTIONS_amd_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_amd_la-amd.lo DLD_FUNCTIONS_amd_la_OBJECTS = $(am_DLD_FUNCTIONS_amd_la_OBJECTS) DLD_FUNCTIONS_amd_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_amd_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_balance_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_balance_la_OBJECTS = DLD-FUNCTIONS/balance.lo DLD_FUNCTIONS_balance_la_OBJECTS = \ $(am_DLD_FUNCTIONS_balance_la_OBJECTS) --- 299,317 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS___voronoi___la_LDFLAGS) $(LDFLAGS) -o $@ ! am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) DLD_FUNCTIONS_amd_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_amd_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_amd_la-amd.lo DLD_FUNCTIONS_amd_la_OBJECTS = $(am_DLD_FUNCTIONS_amd_la_OBJECTS) DLD_FUNCTIONS_amd_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_amd_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_balance_la_DEPENDENCIES = am_DLD_FUNCTIONS_balance_la_OBJECTS = DLD-FUNCTIONS/balance.lo DLD_FUNCTIONS_balance_la_OBJECTS = \ $(am_DLD_FUNCTIONS_balance_la_OBJECTS) *************** *** 311,317 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_balance_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_besselj_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_besselj_la_OBJECTS = DLD-FUNCTIONS/besselj.lo DLD_FUNCTIONS_besselj_la_OBJECTS = \ $(am_DLD_FUNCTIONS_besselj_la_OBJECTS) --- 319,325 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_balance_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_besselj_la_DEPENDENCIES = am_DLD_FUNCTIONS_besselj_la_OBJECTS = DLD-FUNCTIONS/besselj.lo DLD_FUNCTIONS_besselj_la_OBJECTS = \ $(am_DLD_FUNCTIONS_besselj_la_OBJECTS) *************** *** 319,325 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_besselj_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_betainc_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_betainc_la_OBJECTS = DLD-FUNCTIONS/betainc.lo DLD_FUNCTIONS_betainc_la_OBJECTS = \ $(am_DLD_FUNCTIONS_betainc_la_OBJECTS) --- 327,333 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_besselj_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_betainc_la_DEPENDENCIES = am_DLD_FUNCTIONS_betainc_la_OBJECTS = DLD-FUNCTIONS/betainc.lo DLD_FUNCTIONS_betainc_la_OBJECTS = \ $(am_DLD_FUNCTIONS_betainc_la_OBJECTS) *************** *** 327,333 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_betainc_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_bsxfun_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_bsxfun_la_OBJECTS = DLD-FUNCTIONS/bsxfun.lo DLD_FUNCTIONS_bsxfun_la_OBJECTS = \ $(am_DLD_FUNCTIONS_bsxfun_la_OBJECTS) --- 335,341 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_betainc_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_bsxfun_la_DEPENDENCIES = am_DLD_FUNCTIONS_bsxfun_la_OBJECTS = DLD-FUNCTIONS/bsxfun.lo DLD_FUNCTIONS_bsxfun_la_OBJECTS = \ $(am_DLD_FUNCTIONS_bsxfun_la_OBJECTS) *************** *** 336,342 **** $(CXXFLAGS) $(DLD_FUNCTIONS_bsxfun_la_LDFLAGS) $(LDFLAGS) -o \ $@ DLD_FUNCTIONS_ccolamd_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_3) am_DLD_FUNCTIONS_ccolamd_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_ccolamd_la-ccolamd.lo DLD_FUNCTIONS_ccolamd_la_OBJECTS = \ --- 344,350 ---- $(CXXFLAGS) $(DLD_FUNCTIONS_bsxfun_la_LDFLAGS) $(LDFLAGS) -o \ $@ DLD_FUNCTIONS_ccolamd_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_ccolamd_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_ccolamd_la-ccolamd.lo DLD_FUNCTIONS_ccolamd_la_OBJECTS = \ *************** *** 345,351 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_ccolamd_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_cellfun_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_cellfun_la_OBJECTS = DLD-FUNCTIONS/cellfun.lo DLD_FUNCTIONS_cellfun_la_OBJECTS = \ $(am_DLD_FUNCTIONS_cellfun_la_OBJECTS) --- 353,359 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_ccolamd_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_cellfun_la_DEPENDENCIES = am_DLD_FUNCTIONS_cellfun_la_OBJECTS = DLD-FUNCTIONS/cellfun.lo DLD_FUNCTIONS_cellfun_la_OBJECTS = \ $(am_DLD_FUNCTIONS_cellfun_la_OBJECTS) *************** *** 353,361 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_cellfun_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_chol_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ ! $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_3) am_DLD_FUNCTIONS_chol_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_chol_la-chol.lo DLD_FUNCTIONS_chol_la_OBJECTS = $(am_DLD_FUNCTIONS_chol_la_OBJECTS) --- 361,369 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_cellfun_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_chol_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ ! $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_chol_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_chol_la-chol.lo DLD_FUNCTIONS_chol_la_OBJECTS = $(am_DLD_FUNCTIONS_chol_la_OBJECTS) *************** *** 363,369 **** $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_chol_la_LDFLAGS) $(LDFLAGS) -o $@ DLD_FUNCTIONS_colamd_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_3) am_DLD_FUNCTIONS_colamd_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_colamd_la-colamd.lo DLD_FUNCTIONS_colamd_la_OBJECTS = \ --- 371,377 ---- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_chol_la_LDFLAGS) $(LDFLAGS) -o $@ DLD_FUNCTIONS_colamd_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_colamd_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_colamd_la-colamd.lo DLD_FUNCTIONS_colamd_la_OBJECTS = \ *************** *** 372,378 **** $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_colamd_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_colloc_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_colloc_la_OBJECTS = DLD-FUNCTIONS/colloc.lo DLD_FUNCTIONS_colloc_la_OBJECTS = \ $(am_DLD_FUNCTIONS_colloc_la_OBJECTS) --- 380,386 ---- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_colamd_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_colloc_la_DEPENDENCIES = am_DLD_FUNCTIONS_colloc_la_OBJECTS = DLD-FUNCTIONS/colloc.lo DLD_FUNCTIONS_colloc_la_OBJECTS = \ $(am_DLD_FUNCTIONS_colloc_la_OBJECTS) *************** *** 380,393 **** $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_colloc_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_conv2_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_conv2_la_OBJECTS = DLD-FUNCTIONS/conv2.lo DLD_FUNCTIONS_conv2_la_OBJECTS = $(am_DLD_FUNCTIONS_conv2_la_OBJECTS) DLD_FUNCTIONS_conv2_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_conv2_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_convhulln_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS_convhulln_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_convhulln_la-convhulln.lo DLD_FUNCTIONS_convhulln_la_OBJECTS = \ --- 388,401 ---- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_colloc_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_conv2_la_DEPENDENCIES = am_DLD_FUNCTIONS_conv2_la_OBJECTS = DLD-FUNCTIONS/conv2.lo DLD_FUNCTIONS_conv2_la_OBJECTS = $(am_DLD_FUNCTIONS_conv2_la_OBJECTS) DLD_FUNCTIONS_conv2_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_conv2_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_convhulln_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ ! $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS_convhulln_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_convhulln_la-convhulln.lo DLD_FUNCTIONS_convhulln_la_OBJECTS = \ *************** *** 396,426 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_convhulln_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_daspk_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_daspk_la_OBJECTS = DLD-FUNCTIONS/daspk.lo DLD_FUNCTIONS_daspk_la_OBJECTS = $(am_DLD_FUNCTIONS_daspk_la_OBJECTS) DLD_FUNCTIONS_daspk_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_daspk_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_dasrt_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_dasrt_la_OBJECTS = DLD-FUNCTIONS/dasrt.lo DLD_FUNCTIONS_dasrt_la_OBJECTS = $(am_DLD_FUNCTIONS_dasrt_la_OBJECTS) DLD_FUNCTIONS_dasrt_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_dasrt_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_dassl_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_dassl_la_OBJECTS = DLD-FUNCTIONS/dassl.lo DLD_FUNCTIONS_dassl_la_OBJECTS = $(am_DLD_FUNCTIONS_dassl_la_OBJECTS) DLD_FUNCTIONS_dassl_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_dassl_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_det_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_det_la_OBJECTS = DLD-FUNCTIONS/det.lo DLD_FUNCTIONS_det_la_OBJECTS = $(am_DLD_FUNCTIONS_det_la_OBJECTS) DLD_FUNCTIONS_det_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_det_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_dlmread_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_dlmread_la_OBJECTS = DLD-FUNCTIONS/dlmread.lo DLD_FUNCTIONS_dlmread_la_OBJECTS = \ $(am_DLD_FUNCTIONS_dlmread_la_OBJECTS) --- 404,434 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_convhulln_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_daspk_la_DEPENDENCIES = am_DLD_FUNCTIONS_daspk_la_OBJECTS = DLD-FUNCTIONS/daspk.lo DLD_FUNCTIONS_daspk_la_OBJECTS = $(am_DLD_FUNCTIONS_daspk_la_OBJECTS) DLD_FUNCTIONS_daspk_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_daspk_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_dasrt_la_DEPENDENCIES = am_DLD_FUNCTIONS_dasrt_la_OBJECTS = DLD-FUNCTIONS/dasrt.lo DLD_FUNCTIONS_dasrt_la_OBJECTS = $(am_DLD_FUNCTIONS_dasrt_la_OBJECTS) DLD_FUNCTIONS_dasrt_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_dasrt_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_dassl_la_DEPENDENCIES = am_DLD_FUNCTIONS_dassl_la_OBJECTS = DLD-FUNCTIONS/dassl.lo DLD_FUNCTIONS_dassl_la_OBJECTS = $(am_DLD_FUNCTIONS_dassl_la_OBJECTS) DLD_FUNCTIONS_dassl_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_dassl_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_det_la_DEPENDENCIES = am_DLD_FUNCTIONS_det_la_OBJECTS = DLD-FUNCTIONS/det.lo DLD_FUNCTIONS_det_la_OBJECTS = $(am_DLD_FUNCTIONS_det_la_OBJECTS) DLD_FUNCTIONS_det_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_det_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_dlmread_la_DEPENDENCIES = am_DLD_FUNCTIONS_dlmread_la_OBJECTS = DLD-FUNCTIONS/dlmread.lo DLD_FUNCTIONS_dlmread_la_OBJECTS = \ $(am_DLD_FUNCTIONS_dlmread_la_OBJECTS) *************** *** 429,435 **** $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_dlmread_la_LDFLAGS) \ $(LDFLAGS) -o $@ DLD_FUNCTIONS_dmperm_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_3) am_DLD_FUNCTIONS_dmperm_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_dmperm_la-dmperm.lo DLD_FUNCTIONS_dmperm_la_OBJECTS = \ --- 437,443 ---- $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_dlmread_la_LDFLAGS) \ $(LDFLAGS) -o $@ DLD_FUNCTIONS_dmperm_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_dmperm_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_dmperm_la-dmperm.lo DLD_FUNCTIONS_dmperm_la_OBJECTS = \ *************** *** 438,498 **** $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_dmperm_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_dot_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_dot_la_OBJECTS = DLD-FUNCTIONS/dot.lo DLD_FUNCTIONS_dot_la_OBJECTS = $(am_DLD_FUNCTIONS_dot_la_OBJECTS) DLD_FUNCTIONS_dot_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_dot_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_eig_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_eig_la_OBJECTS = DLD-FUNCTIONS/eig.lo DLD_FUNCTIONS_eig_la_OBJECTS = $(am_DLD_FUNCTIONS_eig_la_OBJECTS) DLD_FUNCTIONS_eig_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_eig_la_LDFLAGS) $(LDFLAGS) -o $@ DLD_FUNCTIONS_eigs_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_3) \ ! $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS_eigs_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_eigs_la-eigs.lo DLD_FUNCTIONS_eigs_la_OBJECTS = $(am_DLD_FUNCTIONS_eigs_la_OBJECTS) DLD_FUNCTIONS_eigs_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_eigs_la_LDFLAGS) $(LDFLAGS) -o $@ ! am__DEPENDENCIES_4 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) ! DLD_FUNCTIONS_fft_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_4) am_DLD_FUNCTIONS_fft_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_fft_la-fft.lo DLD_FUNCTIONS_fft_la_OBJECTS = $(am_DLD_FUNCTIONS_fft_la_OBJECTS) DLD_FUNCTIONS_fft_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_fft_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_fft2_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_4) am_DLD_FUNCTIONS_fft2_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_fft2_la-fft2.lo DLD_FUNCTIONS_fft2_la_OBJECTS = $(am_DLD_FUNCTIONS_fft2_la_OBJECTS) DLD_FUNCTIONS_fft2_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_fft2_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_fftn_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_4) am_DLD_FUNCTIONS_fftn_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_fftn_la-fftn.lo DLD_FUNCTIONS_fftn_la_OBJECTS = $(am_DLD_FUNCTIONS_fftn_la_OBJECTS) DLD_FUNCTIONS_fftn_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_fftn_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_fftw_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_4) am_DLD_FUNCTIONS_fftw_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_fftw_la-fftw.lo DLD_FUNCTIONS_fftw_la_OBJECTS = $(am_DLD_FUNCTIONS_fftw_la_OBJECTS) DLD_FUNCTIONS_fftw_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_fftw_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_filter_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_filter_la_OBJECTS = DLD-FUNCTIONS/filter.lo DLD_FUNCTIONS_filter_la_OBJECTS = \ $(am_DLD_FUNCTIONS_filter_la_OBJECTS) --- 446,506 ---- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_dmperm_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_dot_la_DEPENDENCIES = am_DLD_FUNCTIONS_dot_la_OBJECTS = DLD-FUNCTIONS/dot.lo DLD_FUNCTIONS_dot_la_OBJECTS = $(am_DLD_FUNCTIONS_dot_la_OBJECTS) DLD_FUNCTIONS_dot_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_dot_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_eig_la_DEPENDENCIES = am_DLD_FUNCTIONS_eig_la_OBJECTS = DLD-FUNCTIONS/eig.lo DLD_FUNCTIONS_eig_la_OBJECTS = $(am_DLD_FUNCTIONS_eig_la_OBJECTS) DLD_FUNCTIONS_eig_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_eig_la_LDFLAGS) $(LDFLAGS) -o $@ DLD_FUNCTIONS_eigs_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \ ! $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS_eigs_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_eigs_la-eigs.lo DLD_FUNCTIONS_eigs_la_OBJECTS = $(am_DLD_FUNCTIONS_eigs_la_OBJECTS) DLD_FUNCTIONS_eigs_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_eigs_la_LDFLAGS) $(LDFLAGS) -o $@ ! am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) ! DLD_FUNCTIONS_fft_la_DEPENDENCIES = $(am__DEPENDENCIES_3) \ ! $(am__DEPENDENCIES_3) am_DLD_FUNCTIONS_fft_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_fft_la-fft.lo DLD_FUNCTIONS_fft_la_OBJECTS = $(am_DLD_FUNCTIONS_fft_la_OBJECTS) DLD_FUNCTIONS_fft_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_fft_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_fft2_la_DEPENDENCIES = $(am__DEPENDENCIES_3) \ ! $(am__DEPENDENCIES_3) am_DLD_FUNCTIONS_fft2_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_fft2_la-fft2.lo DLD_FUNCTIONS_fft2_la_OBJECTS = $(am_DLD_FUNCTIONS_fft2_la_OBJECTS) DLD_FUNCTIONS_fft2_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_fft2_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_fftn_la_DEPENDENCIES = $(am__DEPENDENCIES_3) \ ! $(am__DEPENDENCIES_3) am_DLD_FUNCTIONS_fftn_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_fftn_la-fftn.lo DLD_FUNCTIONS_fftn_la_OBJECTS = $(am_DLD_FUNCTIONS_fftn_la_OBJECTS) DLD_FUNCTIONS_fftn_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_fftn_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_fftw_la_DEPENDENCIES = $(am__DEPENDENCIES_3) \ ! $(am__DEPENDENCIES_3) am_DLD_FUNCTIONS_fftw_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_fftw_la-fftw.lo DLD_FUNCTIONS_fftw_la_OBJECTS = $(am_DLD_FUNCTIONS_fftw_la_OBJECTS) DLD_FUNCTIONS_fftw_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_fftw_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_filter_la_DEPENDENCIES = am_DLD_FUNCTIONS_filter_la_OBJECTS = DLD-FUNCTIONS/filter.lo DLD_FUNCTIONS_filter_la_OBJECTS = \ $(am_DLD_FUNCTIONS_filter_la_OBJECTS) *************** *** 500,512 **** $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_filter_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_find_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_find_la_OBJECTS = DLD-FUNCTIONS/find.lo DLD_FUNCTIONS_find_la_OBJECTS = $(am_DLD_FUNCTIONS_find_la_OBJECTS) DLD_FUNCTIONS_find_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_find_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_gammainc_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_gammainc_la_OBJECTS = DLD-FUNCTIONS/gammainc.lo DLD_FUNCTIONS_gammainc_la_OBJECTS = \ $(am_DLD_FUNCTIONS_gammainc_la_OBJECTS) --- 508,520 ---- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_filter_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_find_la_DEPENDENCIES = am_DLD_FUNCTIONS_find_la_OBJECTS = DLD-FUNCTIONS/find.lo DLD_FUNCTIONS_find_la_OBJECTS = $(am_DLD_FUNCTIONS_find_la_OBJECTS) DLD_FUNCTIONS_find_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_find_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_gammainc_la_DEPENDENCIES = am_DLD_FUNCTIONS_gammainc_la_OBJECTS = DLD-FUNCTIONS/gammainc.lo DLD_FUNCTIONS_gammainc_la_OBJECTS = \ $(am_DLD_FUNCTIONS_gammainc_la_OBJECTS) *************** *** 514,526 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_gammainc_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_gcd_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_gcd_la_OBJECTS = DLD-FUNCTIONS/gcd.lo DLD_FUNCTIONS_gcd_la_OBJECTS = $(am_DLD_FUNCTIONS_gcd_la_OBJECTS) DLD_FUNCTIONS_gcd_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_gcd_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_getgrent_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_getgrent_la_OBJECTS = DLD-FUNCTIONS/getgrent.lo DLD_FUNCTIONS_getgrent_la_OBJECTS = \ $(am_DLD_FUNCTIONS_getgrent_la_OBJECTS) --- 522,534 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_gammainc_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_gcd_la_DEPENDENCIES = am_DLD_FUNCTIONS_gcd_la_OBJECTS = DLD-FUNCTIONS/gcd.lo DLD_FUNCTIONS_gcd_la_OBJECTS = $(am_DLD_FUNCTIONS_gcd_la_OBJECTS) DLD_FUNCTIONS_gcd_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_gcd_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_getgrent_la_DEPENDENCIES = am_DLD_FUNCTIONS_getgrent_la_OBJECTS = DLD-FUNCTIONS/getgrent.lo DLD_FUNCTIONS_getgrent_la_OBJECTS = \ $(am_DLD_FUNCTIONS_getgrent_la_OBJECTS) *************** *** 528,534 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_getgrent_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_getpwent_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_getpwent_la_OBJECTS = DLD-FUNCTIONS/getpwent.lo DLD_FUNCTIONS_getpwent_la_OBJECTS = \ $(am_DLD_FUNCTIONS_getpwent_la_OBJECTS) --- 536,542 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_getgrent_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_getpwent_la_DEPENDENCIES = am_DLD_FUNCTIONS_getpwent_la_OBJECTS = DLD-FUNCTIONS/getpwent.lo DLD_FUNCTIONS_getpwent_la_OBJECTS = \ $(am_DLD_FUNCTIONS_getpwent_la_OBJECTS) *************** *** 536,542 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_getpwent_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_getrusage_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_getrusage_la_OBJECTS = DLD-FUNCTIONS/getrusage.lo DLD_FUNCTIONS_getrusage_la_OBJECTS = \ $(am_DLD_FUNCTIONS_getrusage_la_OBJECTS) --- 544,550 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_getpwent_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_getrusage_la_DEPENDENCIES = am_DLD_FUNCTIONS_getrusage_la_OBJECTS = DLD-FUNCTIONS/getrusage.lo DLD_FUNCTIONS_getrusage_la_OBJECTS = \ $(am_DLD_FUNCTIONS_getrusage_la_OBJECTS) *************** *** 544,550 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_getrusage_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_givens_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_givens_la_OBJECTS = DLD-FUNCTIONS/givens.lo DLD_FUNCTIONS_givens_la_OBJECTS = \ $(am_DLD_FUNCTIONS_givens_la_OBJECTS) --- 552,558 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_getrusage_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_givens_la_DEPENDENCIES = am_DLD_FUNCTIONS_givens_la_OBJECTS = DLD-FUNCTIONS/givens.lo DLD_FUNCTIONS_givens_la_OBJECTS = \ $(am_DLD_FUNCTIONS_givens_la_OBJECTS) *************** *** 552,564 **** $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_givens_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_hess_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_hess_la_OBJECTS = DLD-FUNCTIONS/hess.lo DLD_FUNCTIONS_hess_la_OBJECTS = $(am_DLD_FUNCTIONS_hess_la_OBJECTS) DLD_FUNCTIONS_hess_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_hess_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_hex2num_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_hex2num_la_OBJECTS = DLD-FUNCTIONS/hex2num.lo DLD_FUNCTIONS_hex2num_la_OBJECTS = \ $(am_DLD_FUNCTIONS_hex2num_la_OBJECTS) --- 560,572 ---- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_givens_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_hess_la_DEPENDENCIES = am_DLD_FUNCTIONS_hess_la_OBJECTS = DLD-FUNCTIONS/hess.lo DLD_FUNCTIONS_hess_la_OBJECTS = $(am_DLD_FUNCTIONS_hess_la_OBJECTS) DLD_FUNCTIONS_hess_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_hess_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_hex2num_la_DEPENDENCIES = am_DLD_FUNCTIONS_hex2num_la_OBJECTS = DLD-FUNCTIONS/hex2num.lo DLD_FUNCTIONS_hex2num_la_OBJECTS = \ $(am_DLD_FUNCTIONS_hex2num_la_OBJECTS) *************** *** 566,584 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_hex2num_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_inv_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_inv_la_OBJECTS = DLD-FUNCTIONS/inv.lo DLD_FUNCTIONS_inv_la_OBJECTS = $(am_DLD_FUNCTIONS_inv_la_OBJECTS) DLD_FUNCTIONS_inv_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_inv_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_kron_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_kron_la_OBJECTS = DLD-FUNCTIONS/kron.lo DLD_FUNCTIONS_kron_la_OBJECTS = $(am_DLD_FUNCTIONS_kron_la_OBJECTS) DLD_FUNCTIONS_kron_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_kron_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_lookup_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_lookup_la_OBJECTS = DLD-FUNCTIONS/lookup.lo DLD_FUNCTIONS_lookup_la_OBJECTS = \ $(am_DLD_FUNCTIONS_lookup_la_OBJECTS) --- 574,592 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_hex2num_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_inv_la_DEPENDENCIES = am_DLD_FUNCTIONS_inv_la_OBJECTS = DLD-FUNCTIONS/inv.lo DLD_FUNCTIONS_inv_la_OBJECTS = $(am_DLD_FUNCTIONS_inv_la_OBJECTS) DLD_FUNCTIONS_inv_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_inv_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_kron_la_DEPENDENCIES = am_DLD_FUNCTIONS_kron_la_OBJECTS = DLD-FUNCTIONS/kron.lo DLD_FUNCTIONS_kron_la_OBJECTS = $(am_DLD_FUNCTIONS_kron_la_OBJECTS) DLD_FUNCTIONS_kron_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_kron_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_lookup_la_DEPENDENCIES = am_DLD_FUNCTIONS_lookup_la_OBJECTS = DLD-FUNCTIONS/lookup.lo DLD_FUNCTIONS_lookup_la_OBJECTS = \ $(am_DLD_FUNCTIONS_lookup_la_OBJECTS) *************** *** 586,610 **** $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_lookup_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_lsode_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_lsode_la_OBJECTS = DLD-FUNCTIONS/lsode.lo DLD_FUNCTIONS_lsode_la_OBJECTS = $(am_DLD_FUNCTIONS_lsode_la_OBJECTS) DLD_FUNCTIONS_lsode_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_lsode_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_lu_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_lu_la_OBJECTS = DLD-FUNCTIONS/lu.lo DLD_FUNCTIONS_lu_la_OBJECTS = $(am_DLD_FUNCTIONS_lu_la_OBJECTS) DLD_FUNCTIONS_lu_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_lu_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_luinc_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_luinc_la_OBJECTS = DLD-FUNCTIONS/luinc.lo DLD_FUNCTIONS_luinc_la_OBJECTS = $(am_DLD_FUNCTIONS_luinc_la_OBJECTS) DLD_FUNCTIONS_luinc_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_luinc_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_matrix_type_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_matrix_type_la_OBJECTS = \ DLD-FUNCTIONS/matrix_type.lo DLD_FUNCTIONS_matrix_type_la_OBJECTS = \ --- 594,618 ---- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_lookup_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_lsode_la_DEPENDENCIES = am_DLD_FUNCTIONS_lsode_la_OBJECTS = DLD-FUNCTIONS/lsode.lo DLD_FUNCTIONS_lsode_la_OBJECTS = $(am_DLD_FUNCTIONS_lsode_la_OBJECTS) DLD_FUNCTIONS_lsode_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_lsode_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_lu_la_DEPENDENCIES = am_DLD_FUNCTIONS_lu_la_OBJECTS = DLD-FUNCTIONS/lu.lo DLD_FUNCTIONS_lu_la_OBJECTS = $(am_DLD_FUNCTIONS_lu_la_OBJECTS) DLD_FUNCTIONS_lu_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_lu_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_luinc_la_DEPENDENCIES = am_DLD_FUNCTIONS_luinc_la_OBJECTS = DLD-FUNCTIONS/luinc.lo DLD_FUNCTIONS_luinc_la_OBJECTS = $(am_DLD_FUNCTIONS_luinc_la_OBJECTS) DLD_FUNCTIONS_luinc_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_luinc_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_matrix_type_la_DEPENDENCIES = am_DLD_FUNCTIONS_matrix_type_la_OBJECTS = \ DLD-FUNCTIONS/matrix_type.lo DLD_FUNCTIONS_matrix_type_la_OBJECTS = \ *************** *** 613,625 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_matrix_type_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_max_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_max_la_OBJECTS = DLD-FUNCTIONS/max.lo DLD_FUNCTIONS_max_la_OBJECTS = $(am_DLD_FUNCTIONS_max_la_OBJECTS) DLD_FUNCTIONS_max_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_max_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_md5sum_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_md5sum_la_OBJECTS = DLD-FUNCTIONS/md5sum.lo DLD_FUNCTIONS_md5sum_la_OBJECTS = \ $(am_DLD_FUNCTIONS_md5sum_la_OBJECTS) --- 621,633 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_matrix_type_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_max_la_DEPENDENCIES = am_DLD_FUNCTIONS_max_la_OBJECTS = DLD-FUNCTIONS/max.lo DLD_FUNCTIONS_max_la_OBJECTS = $(am_DLD_FUNCTIONS_max_la_OBJECTS) DLD_FUNCTIONS_max_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_max_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_md5sum_la_DEPENDENCIES = am_DLD_FUNCTIONS_md5sum_la_OBJECTS = DLD-FUNCTIONS/md5sum.lo DLD_FUNCTIONS_md5sum_la_OBJECTS = \ $(am_DLD_FUNCTIONS_md5sum_la_OBJECTS) *************** *** 627,633 **** $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_md5sum_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_onCleanup_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_onCleanup_la_OBJECTS = DLD-FUNCTIONS/onCleanup.lo DLD_FUNCTIONS_onCleanup_la_OBJECTS = \ $(am_DLD_FUNCTIONS_onCleanup_la_OBJECTS) --- 635,655 ---- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_md5sum_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_mgorth_la_DEPENDENCIES = ! am_DLD_FUNCTIONS_mgorth_la_OBJECTS = DLD-FUNCTIONS/mgorth.lo ! DLD_FUNCTIONS_mgorth_la_OBJECTS = \ ! $(am_DLD_FUNCTIONS_mgorth_la_OBJECTS) ! DLD_FUNCTIONS_mgorth_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ ! $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ ! $(CXXFLAGS) $(DLD_FUNCTIONS_mgorth_la_LDFLAGS) $(LDFLAGS) -o \ ! $@ ! DLD_FUNCTIONS_nproc_la_DEPENDENCIES = ! am_DLD_FUNCTIONS_nproc_la_OBJECTS = DLD-FUNCTIONS/nproc.lo ! DLD_FUNCTIONS_nproc_la_OBJECTS = $(am_DLD_FUNCTIONS_nproc_la_OBJECTS) ! DLD_FUNCTIONS_nproc_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ ! $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ ! $(CXXFLAGS) $(DLD_FUNCTIONS_nproc_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_onCleanup_la_DEPENDENCIES = am_DLD_FUNCTIONS_onCleanup_la_OBJECTS = DLD-FUNCTIONS/onCleanup.lo DLD_FUNCTIONS_onCleanup_la_OBJECTS = \ $(am_DLD_FUNCTIONS_onCleanup_la_OBJECTS) *************** *** 635,662 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_onCleanup_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_pinv_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_pinv_la_OBJECTS = DLD-FUNCTIONS/pinv.lo DLD_FUNCTIONS_pinv_la_OBJECTS = $(am_DLD_FUNCTIONS_pinv_la_OBJECTS) DLD_FUNCTIONS_pinv_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_pinv_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_qr_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ ! $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_3) am_DLD_FUNCTIONS_qr_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_qr_la-qr.lo DLD_FUNCTIONS_qr_la_OBJECTS = $(am_DLD_FUNCTIONS_qr_la_OBJECTS) DLD_FUNCTIONS_qr_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_qr_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_quad_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_quad_la_OBJECTS = DLD-FUNCTIONS/quad.lo DLD_FUNCTIONS_quad_la_OBJECTS = $(am_DLD_FUNCTIONS_quad_la_OBJECTS) DLD_FUNCTIONS_quad_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_quad_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_quadcc_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_quadcc_la_OBJECTS = DLD-FUNCTIONS/quadcc.lo DLD_FUNCTIONS_quadcc_la_OBJECTS = \ $(am_DLD_FUNCTIONS_quadcc_la_OBJECTS) --- 657,684 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_onCleanup_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_pinv_la_DEPENDENCIES = am_DLD_FUNCTIONS_pinv_la_OBJECTS = DLD-FUNCTIONS/pinv.lo DLD_FUNCTIONS_pinv_la_OBJECTS = $(am_DLD_FUNCTIONS_pinv_la_OBJECTS) DLD_FUNCTIONS_pinv_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_pinv_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_qr_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ ! $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_qr_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_qr_la-qr.lo DLD_FUNCTIONS_qr_la_OBJECTS = $(am_DLD_FUNCTIONS_qr_la_OBJECTS) DLD_FUNCTIONS_qr_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_qr_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_quad_la_DEPENDENCIES = am_DLD_FUNCTIONS_quad_la_OBJECTS = DLD-FUNCTIONS/quad.lo DLD_FUNCTIONS_quad_la_OBJECTS = $(am_DLD_FUNCTIONS_quad_la_OBJECTS) DLD_FUNCTIONS_quad_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_quad_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_quadcc_la_DEPENDENCIES = am_DLD_FUNCTIONS_quadcc_la_OBJECTS = DLD-FUNCTIONS/quadcc.lo DLD_FUNCTIONS_quadcc_la_OBJECTS = \ $(am_DLD_FUNCTIONS_quadcc_la_OBJECTS) *************** *** 664,690 **** $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_quadcc_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_qz_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS_qz_la_OBJECTS = DLD-FUNCTIONS/qz.lo DLD_FUNCTIONS_qz_la_OBJECTS = $(am_DLD_FUNCTIONS_qz_la_OBJECTS) DLD_FUNCTIONS_qz_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_qz_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_rand_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_rand_la_OBJECTS = DLD-FUNCTIONS/rand.lo DLD_FUNCTIONS_rand_la_OBJECTS = $(am_DLD_FUNCTIONS_rand_la_OBJECTS) DLD_FUNCTIONS_rand_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_rand_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_rcond_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_rcond_la_OBJECTS = DLD-FUNCTIONS/rcond.lo DLD_FUNCTIONS_rcond_la_OBJECTS = $(am_DLD_FUNCTIONS_rcond_la_OBJECTS) DLD_FUNCTIONS_rcond_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_rcond_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_regexp_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS_regexp_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_regexp_la-regexp.lo DLD_FUNCTIONS_regexp_la_OBJECTS = \ --- 686,711 ---- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_quadcc_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_qz_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ ! $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS_qz_la_OBJECTS = DLD-FUNCTIONS/qz.lo DLD_FUNCTIONS_qz_la_OBJECTS = $(am_DLD_FUNCTIONS_qz_la_OBJECTS) DLD_FUNCTIONS_qz_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_qz_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_rand_la_DEPENDENCIES = am_DLD_FUNCTIONS_rand_la_OBJECTS = DLD-FUNCTIONS/rand.lo DLD_FUNCTIONS_rand_la_OBJECTS = $(am_DLD_FUNCTIONS_rand_la_OBJECTS) DLD_FUNCTIONS_rand_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_rand_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_rcond_la_DEPENDENCIES = am_DLD_FUNCTIONS_rcond_la_OBJECTS = DLD-FUNCTIONS/rcond.lo DLD_FUNCTIONS_rcond_la_OBJECTS = $(am_DLD_FUNCTIONS_rcond_la_OBJECTS) DLD_FUNCTIONS_rcond_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_rcond_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_regexp_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS_regexp_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_regexp_la-regexp.lo DLD_FUNCTIONS_regexp_la_OBJECTS = \ *************** *** 693,705 **** $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_regexp_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_schur_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_schur_la_OBJECTS = DLD-FUNCTIONS/schur.lo DLD_FUNCTIONS_schur_la_OBJECTS = $(am_DLD_FUNCTIONS_schur_la_OBJECTS) DLD_FUNCTIONS_schur_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_schur_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_spparms_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_spparms_la_OBJECTS = DLD-FUNCTIONS/spparms.lo DLD_FUNCTIONS_spparms_la_OBJECTS = \ $(am_DLD_FUNCTIONS_spparms_la_OBJECTS) --- 714,726 ---- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_regexp_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_schur_la_DEPENDENCIES = am_DLD_FUNCTIONS_schur_la_OBJECTS = DLD-FUNCTIONS/schur.lo DLD_FUNCTIONS_schur_la_OBJECTS = $(am_DLD_FUNCTIONS_schur_la_OBJECTS) DLD_FUNCTIONS_schur_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_schur_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_spparms_la_DEPENDENCIES = am_DLD_FUNCTIONS_spparms_la_OBJECTS = DLD-FUNCTIONS/spparms.lo DLD_FUNCTIONS_spparms_la_OBJECTS = \ $(am_DLD_FUNCTIONS_spparms_la_OBJECTS) *************** *** 707,719 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_spparms_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_sqrtm_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_sqrtm_la_OBJECTS = DLD-FUNCTIONS/sqrtm.lo DLD_FUNCTIONS_sqrtm_la_OBJECTS = $(am_DLD_FUNCTIONS_sqrtm_la_OBJECTS) DLD_FUNCTIONS_sqrtm_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_sqrtm_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_str2double_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_str2double_la_OBJECTS = DLD-FUNCTIONS/str2double.lo DLD_FUNCTIONS_str2double_la_OBJECTS = \ $(am_DLD_FUNCTIONS_str2double_la_OBJECTS) --- 728,740 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_spparms_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_sqrtm_la_DEPENDENCIES = am_DLD_FUNCTIONS_sqrtm_la_OBJECTS = DLD-FUNCTIONS/sqrtm.lo DLD_FUNCTIONS_sqrtm_la_OBJECTS = $(am_DLD_FUNCTIONS_sqrtm_la_OBJECTS) DLD_FUNCTIONS_sqrtm_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_sqrtm_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_str2double_la_DEPENDENCIES = am_DLD_FUNCTIONS_str2double_la_OBJECTS = DLD-FUNCTIONS/str2double.lo DLD_FUNCTIONS_str2double_la_OBJECTS = \ $(am_DLD_FUNCTIONS_str2double_la_OBJECTS) *************** *** 721,727 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_str2double_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_strfind_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_strfind_la_OBJECTS = DLD-FUNCTIONS/strfind.lo DLD_FUNCTIONS_strfind_la_OBJECTS = \ $(am_DLD_FUNCTIONS_strfind_la_OBJECTS) --- 742,748 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_str2double_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_strfind_la_DEPENDENCIES = am_DLD_FUNCTIONS_strfind_la_OBJECTS = DLD-FUNCTIONS/strfind.lo DLD_FUNCTIONS_strfind_la_OBJECTS = \ $(am_DLD_FUNCTIONS_strfind_la_OBJECTS) *************** *** 729,735 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_strfind_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_sub2ind_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_sub2ind_la_OBJECTS = DLD-FUNCTIONS/sub2ind.lo DLD_FUNCTIONS_sub2ind_la_OBJECTS = \ $(am_DLD_FUNCTIONS_sub2ind_la_OBJECTS) --- 750,756 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_strfind_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_sub2ind_la_DEPENDENCIES = am_DLD_FUNCTIONS_sub2ind_la_OBJECTS = DLD-FUNCTIONS/sub2ind.lo DLD_FUNCTIONS_sub2ind_la_OBJECTS = \ $(am_DLD_FUNCTIONS_sub2ind_la_OBJECTS) *************** *** 737,756 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_sub2ind_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_svd_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_svd_la_OBJECTS = DLD-FUNCTIONS/svd.lo DLD_FUNCTIONS_svd_la_OBJECTS = $(am_DLD_FUNCTIONS_svd_la_OBJECTS) DLD_FUNCTIONS_svd_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_svd_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_syl_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_syl_la_OBJECTS = DLD-FUNCTIONS/syl.lo DLD_FUNCTIONS_syl_la_OBJECTS = $(am_DLD_FUNCTIONS_syl_la_OBJECTS) DLD_FUNCTIONS_syl_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_syl_la_LDFLAGS) $(LDFLAGS) -o $@ DLD_FUNCTIONS_symbfact_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_3) am_DLD_FUNCTIONS_symbfact_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_symbfact_la-symbfact.lo DLD_FUNCTIONS_symbfact_la_OBJECTS = \ --- 758,777 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_sub2ind_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_svd_la_DEPENDENCIES = am_DLD_FUNCTIONS_svd_la_OBJECTS = DLD-FUNCTIONS/svd.lo DLD_FUNCTIONS_svd_la_OBJECTS = $(am_DLD_FUNCTIONS_svd_la_OBJECTS) DLD_FUNCTIONS_svd_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_svd_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_syl_la_DEPENDENCIES = am_DLD_FUNCTIONS_syl_la_OBJECTS = DLD-FUNCTIONS/syl.lo DLD_FUNCTIONS_syl_la_OBJECTS = $(am_DLD_FUNCTIONS_syl_la_OBJECTS) DLD_FUNCTIONS_syl_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_syl_la_LDFLAGS) $(LDFLAGS) -o $@ DLD_FUNCTIONS_symbfact_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_symbfact_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_symbfact_la-symbfact.lo DLD_FUNCTIONS_symbfact_la_OBJECTS = \ *************** *** 760,766 **** $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_symbfact_la_LDFLAGS) $(LDFLAGS) -o $@ DLD_FUNCTIONS_symrcm_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_3) am_DLD_FUNCTIONS_symrcm_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_symrcm_la-symrcm.lo DLD_FUNCTIONS_symrcm_la_OBJECTS = \ --- 781,787 ---- $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_symbfact_la_LDFLAGS) $(LDFLAGS) -o $@ DLD_FUNCTIONS_symrcm_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_symrcm_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_symrcm_la-symrcm.lo DLD_FUNCTIONS_symrcm_la_OBJECTS = \ *************** *** 769,787 **** $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_symrcm_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_time_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_time_la_OBJECTS = DLD-FUNCTIONS/time.lo DLD_FUNCTIONS_time_la_OBJECTS = $(am_DLD_FUNCTIONS_time_la_OBJECTS) DLD_FUNCTIONS_time_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_time_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_tril_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_tril_la_OBJECTS = DLD-FUNCTIONS/tril.lo DLD_FUNCTIONS_tril_la_OBJECTS = $(am_DLD_FUNCTIONS_tril_la_OBJECTS) DLD_FUNCTIONS_tril_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_tril_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_tsearch_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_tsearch_la_OBJECTS = DLD-FUNCTIONS/tsearch.lo DLD_FUNCTIONS_tsearch_la_OBJECTS = \ $(am_DLD_FUNCTIONS_tsearch_la_OBJECTS) --- 790,808 ---- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_symrcm_la_LDFLAGS) $(LDFLAGS) -o \ $@ ! DLD_FUNCTIONS_time_la_DEPENDENCIES = am_DLD_FUNCTIONS_time_la_OBJECTS = DLD-FUNCTIONS/time.lo DLD_FUNCTIONS_time_la_OBJECTS = $(am_DLD_FUNCTIONS_time_la_OBJECTS) DLD_FUNCTIONS_time_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_time_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_tril_la_DEPENDENCIES = am_DLD_FUNCTIONS_tril_la_OBJECTS = DLD-FUNCTIONS/tril.lo DLD_FUNCTIONS_tril_la_OBJECTS = $(am_DLD_FUNCTIONS_tril_la_OBJECTS) DLD_FUNCTIONS_tril_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(DLD_FUNCTIONS_tril_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_tsearch_la_DEPENDENCIES = am_DLD_FUNCTIONS_tsearch_la_OBJECTS = DLD-FUNCTIONS/tsearch.lo DLD_FUNCTIONS_tsearch_la_OBJECTS = \ $(am_DLD_FUNCTIONS_tsearch_la_OBJECTS) *************** *** 789,795 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_tsearch_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_typecast_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_DLD_FUNCTIONS_typecast_la_OBJECTS = DLD-FUNCTIONS/typecast.lo DLD_FUNCTIONS_typecast_la_OBJECTS = \ $(am_DLD_FUNCTIONS_typecast_la_OBJECTS) --- 810,816 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(DLD_FUNCTIONS_tsearch_la_LDFLAGS) \ $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_typecast_la_DEPENDENCIES = am_DLD_FUNCTIONS_typecast_la_OBJECTS = DLD-FUNCTIONS/typecast.lo DLD_FUNCTIONS_typecast_la_OBJECTS = \ $(am_DLD_FUNCTIONS_typecast_la_OBJECTS) *************** *** 797,804 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_typecast_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_urlwrite_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ ! $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS_urlwrite_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_urlwrite_la-urlwrite.lo DLD_FUNCTIONS_urlwrite_la_OBJECTS = \ --- 818,825 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_typecast_la_LDFLAGS) $(LDFLAGS) -o $@ ! DLD_FUNCTIONS_urlwrite_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ ! $(am__DEPENDENCIES_1) am_DLD_FUNCTIONS_urlwrite_la_OBJECTS = \ DLD-FUNCTIONS/DLD_FUNCTIONS_urlwrite_la-urlwrite.lo DLD_FUNCTIONS_urlwrite_la_OBJECTS = \ *************** *** 807,816 **** $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_urlwrite_la_LDFLAGS) $(LDFLAGS) -o $@ ! am__DEPENDENCIES_5 = $(am__DEPENDENCIES_1) ../liboctave/liboctave.la \ ../libcruft/libcruft.la ../libcruft/libranlib.la \ ! ../libgnu/libgnu.la $(am__DEPENDENCIES_4) \ ! $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ --- 828,837 ---- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(DLD_FUNCTIONS_urlwrite_la_LDFLAGS) $(LDFLAGS) -o $@ ! am__DEPENDENCIES_4 = $(am__DEPENDENCIES_1) ../liboctave/liboctave.la \ ../libcruft/libcruft.la ../libcruft/libranlib.la \ ! ../libgnu/libgnu.la $(am__DEPENDENCIES_3) \ ! $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ *************** *** 818,824 **** $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) ! liboctinterp_la_DEPENDENCIES = $(am__DEPENDENCIES_5) am__liboctinterp_la_SOURCES_DIST = Cell.cc bitfcns.cc \ c-file-ptr-stream.cc comment-list.cc cutils.c data.cc debug.cc \ defaults.cc defun.cc dirfns.cc display.cc dynamic-ld.cc \ --- 839,845 ---- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) ! liboctinterp_la_DEPENDENCIES = $(am__DEPENDENCIES_4) am__liboctinterp_la_SOURCES_DIST = Cell.cc bitfcns.cc \ c-file-ptr-stream.cc comment-list.cc cutils.c data.cc debug.cc \ defaults.cc defun.cc dirfns.cc display.cc dynamic-ld.cc \ *************** *** 880,886 **** DLD-FUNCTIONS/lookup.cc DLD-FUNCTIONS/lsode.cc \ DLD-FUNCTIONS/lu.cc DLD-FUNCTIONS/luinc.cc \ DLD-FUNCTIONS/matrix_type.cc DLD-FUNCTIONS/max.cc \ ! DLD-FUNCTIONS/md5sum.cc DLD-FUNCTIONS/onCleanup.cc \ DLD-FUNCTIONS/pinv.cc DLD-FUNCTIONS/qr.cc \ DLD-FUNCTIONS/quad.cc DLD-FUNCTIONS/quadcc.cc \ DLD-FUNCTIONS/qz.cc DLD-FUNCTIONS/rand.cc \ --- 901,908 ---- DLD-FUNCTIONS/lookup.cc DLD-FUNCTIONS/lsode.cc \ DLD-FUNCTIONS/lu.cc DLD-FUNCTIONS/luinc.cc \ DLD-FUNCTIONS/matrix_type.cc DLD-FUNCTIONS/max.cc \ ! DLD-FUNCTIONS/md5sum.cc DLD-FUNCTIONS/mgorth.cc \ ! DLD-FUNCTIONS/nproc.cc DLD-FUNCTIONS/onCleanup.cc \ DLD-FUNCTIONS/pinv.cc DLD-FUNCTIONS/qr.cc \ DLD-FUNCTIONS/quad.cc DLD-FUNCTIONS/quadcc.cc \ DLD-FUNCTIONS/qz.cc DLD-FUNCTIONS/rand.cc \ *************** *** 1091,1096 **** --- 1113,1120 ---- DLD-FUNCTIONS/liboctinterp_la-matrix_type.lo \ DLD-FUNCTIONS/liboctinterp_la-max.lo \ DLD-FUNCTIONS/liboctinterp_la-md5sum.lo \ + DLD-FUNCTIONS/liboctinterp_la-mgorth.lo \ + DLD-FUNCTIONS/liboctinterp_la-nproc.lo \ DLD-FUNCTIONS/liboctinterp_la-onCleanup.lo \ DLD-FUNCTIONS/liboctinterp_la-pinv.lo \ DLD-FUNCTIONS/liboctinterp_la-qr.lo \ *************** *** 1257,1284 **** $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(liboctinterp_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) am_octave_OBJECTS = main.$(OBJEXT) octave_OBJECTS = $(am_octave_OBJECTS) ! @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@am__DEPENDENCIES_6 = \ @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ ./liboctinterp.la \ @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ ../liboctave/liboctave.la \ @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ ../libcruft/libcruft.la \ @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ ../libcruft/libranlib.la \ @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ ../libgnu/libgnu.la \ ! @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ $(am__DEPENDENCIES_4) \ ! @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ $(am__DEPENDENCIES_4) ! @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@am__DEPENDENCIES_6 = \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ ./liboctinterp.la \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ ../liboctave/liboctave.la \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ ../libcruft/libcruft.la \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ ../libcruft/libranlib.la \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ ../libgnu/libgnu.la \ ! @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_3) \ ! @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_3) \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_1) \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_1) \ ! @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_4) \ ! @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_4) \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_1) \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_1) \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_1) \ --- 1281,1314 ---- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(liboctinterp_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) + am_mkoctfile_OBJECTS = + @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@nodist_mkoctfile_OBJECTS = \ + @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ mkoctfile.$(OBJEXT) + mkoctfile_OBJECTS = $(am_mkoctfile_OBJECTS) \ + $(nodist_mkoctfile_OBJECTS) + mkoctfile_LDADD = $(LDADD) am_octave_OBJECTS = main.$(OBJEXT) octave_OBJECTS = $(am_octave_OBJECTS) ! @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@am__DEPENDENCIES_5 = \ @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ ./liboctinterp.la \ @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ ../liboctave/liboctave.la \ @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ ../libcruft/libcruft.la \ @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ ../libcruft/libranlib.la \ @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ ../libgnu/libgnu.la \ ! @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ $(am__DEPENDENCIES_3) \ ! @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ $(am__DEPENDENCIES_3) ! @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@am__DEPENDENCIES_5 = \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ ./liboctinterp.la \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ ../liboctave/liboctave.la \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ ../libcruft/libcruft.la \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ ../libcruft/libranlib.la \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ ../libgnu/libgnu.la \ ! @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_2) \ ! @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_2) \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_1) \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_1) \ ! @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_3) \ ! @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_3) \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_1) \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_1) \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_1) \ *************** *** 1299,1305 **** @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_1) \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_1) \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_1) ! octave_DEPENDENCIES = $(am__DEPENDENCIES_6) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles --- 1329,1341 ---- @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_1) \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_1) \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(am__DEPENDENCIES_1) ! octave_DEPENDENCIES = $(am__DEPENDENCIES_5) ! am_octave_config_OBJECTS = ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@nodist_octave_config_OBJECTS = octave-config.$(OBJEXT) ! octave_config_OBJECTS = $(am_octave_config_OBJECTS) \ ! $(nodist_octave_config_OBJECTS) ! octave_config_LDADD = $(LDADD) ! SCRIPTS = $(bin_SCRIPTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles *************** *** 1385,1390 **** --- 1421,1428 ---- $(DLD_FUNCTIONS_matrix_type_la_SOURCES) \ $(DLD_FUNCTIONS_max_la_SOURCES) \ $(DLD_FUNCTIONS_md5sum_la_SOURCES) \ + $(DLD_FUNCTIONS_mgorth_la_SOURCES) \ + $(DLD_FUNCTIONS_nproc_la_SOURCES) \ $(DLD_FUNCTIONS_onCleanup_la_SOURCES) \ $(DLD_FUNCTIONS_pinv_la_SOURCES) \ $(DLD_FUNCTIONS_qr_la_SOURCES) \ *************** *** 1410,1416 **** $(DLD_FUNCTIONS_typecast_la_SOURCES) \ $(DLD_FUNCTIONS_urlwrite_la_SOURCES) \ $(liboctinterp_la_SOURCES) $(nodist_liboctinterp_la_SOURCES) \ ! $(octave_SOURCES) DIST_SOURCES = $(DLD_FUNCTIONS___contourc___la_SOURCES) \ $(DLD_FUNCTIONS___delaunayn___la_SOURCES) \ $(DLD_FUNCTIONS___dispatch___la_SOURCES) \ --- 1448,1456 ---- $(DLD_FUNCTIONS_typecast_la_SOURCES) \ $(DLD_FUNCTIONS_urlwrite_la_SOURCES) \ $(liboctinterp_la_SOURCES) $(nodist_liboctinterp_la_SOURCES) \ ! $(mkoctfile_SOURCES) $(nodist_mkoctfile_SOURCES) \ ! $(octave_SOURCES) $(octave_config_SOURCES) \ ! $(nodist_octave_config_SOURCES) DIST_SOURCES = $(DLD_FUNCTIONS___contourc___la_SOURCES) \ $(DLD_FUNCTIONS___delaunayn___la_SOURCES) \ $(DLD_FUNCTIONS___dispatch___la_SOURCES) \ *************** *** 1467,1472 **** --- 1507,1514 ---- $(DLD_FUNCTIONS_matrix_type_la_SOURCES) \ $(DLD_FUNCTIONS_max_la_SOURCES) \ $(DLD_FUNCTIONS_md5sum_la_SOURCES) \ + $(DLD_FUNCTIONS_mgorth_la_SOURCES) \ + $(DLD_FUNCTIONS_nproc_la_SOURCES) \ $(DLD_FUNCTIONS_onCleanup_la_SOURCES) \ $(DLD_FUNCTIONS_pinv_la_SOURCES) \ $(DLD_FUNCTIONS_qr_la_SOURCES) \ *************** *** 1491,1498 **** $(DLD_FUNCTIONS_tsearch_la_SOURCES) \ $(DLD_FUNCTIONS_typecast_la_SOURCES) \ $(DLD_FUNCTIONS_urlwrite_la_SOURCES) \ ! $(am__liboctinterp_la_SOURCES_DIST) $(octave_SOURCES) ! HEADERS = $(octinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) --- 1533,1541 ---- $(DLD_FUNCTIONS_tsearch_la_SOURCES) \ $(DLD_FUNCTIONS_typecast_la_SOURCES) \ $(DLD_FUNCTIONS_urlwrite_la_SOURCES) \ ! $(am__liboctinterp_la_SOURCES_DIST) $(mkoctfile_SOURCES) \ ! $(octave_SOURCES) $(octave_config_SOURCES) ! HEADERS = $(nodist_octinclude_HEADERS) $(octinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) *************** *** 1508,1514 **** AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ - ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ --- 1551,1556 ---- *************** *** 1660,1665 **** --- 1702,1709 ---- GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ + GNULIB_FGETC = @GNULIB_FGETC@ + GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ *************** *** 1669,1677 **** --- 1713,1723 ---- GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ + GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPL = @GNULIB_FREXPL@ + GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ *************** *** 1681,1686 **** --- 1727,1734 ---- GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ + GNULIB_GETC = @GNULIB_GETC@ + GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ *************** *** 1693,1710 **** --- 1741,1762 ---- GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ + GNULIB_GETS = @GNULIB_GETS@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ + GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ + GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ + GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ *************** *** 1735,1740 **** --- 1787,1793 ---- GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ + GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ *************** *** 1751,1756 **** --- 1804,1810 ---- GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ + GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ *************** *** 1770,1775 **** --- 1824,1830 ---- GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ + GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ *************** *** 1785,1790 **** --- 1840,1846 ---- GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ + GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ *************** *** 1802,1807 **** --- 1858,1864 ---- GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ + GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ *************** *** 1831,1841 **** --- 1888,1900 ---- GNULIB_TIMES = @GNULIB_TIMES@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ + GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ + GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ *************** *** 1847,1854 **** --- 1906,1915 ---- GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ + GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ + GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ *************** *** 1878,1883 **** --- 1939,1947 ---- GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ + GNULIB_WCTOMB = @GNULIB_WCTOMB@ + GNULIB_WCTRANS = @GNULIB_WCTRANS@ + GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ *************** *** 1944,1950 **** HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ - HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ --- 2008,2013 ---- *************** *** 1985,1990 **** --- 2048,2054 ---- HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ + HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ *************** *** 2019,2024 **** --- 2083,2089 ---- HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ + HAVE_PCRE_CONFIG = @HAVE_PCRE_CONFIG@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ *************** *** 2037,2042 **** --- 2102,2108 ---- HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGACTION = @HAVE_SIGACTION@ + HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ *************** *** 2048,2054 **** HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ - HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ --- 2114,2119 ---- *************** *** 2076,2081 **** --- 2141,2147 ---- HAVE_SYS_TIMES_H = @HAVE_SYS_TIMES_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ + HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMES = @HAVE_TIMES@ *************** *** 2116,2122 **** --- 2182,2190 ---- HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ + HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ + HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ *************** *** 2160,2165 **** --- 2228,2234 ---- LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ + LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ *************** *** 2170,2175 **** --- 2239,2245 ---- MAGICK_LDFLAGS = @MAGICK_LDFLAGS@ MAGICK_LIBS = @MAGICK_LIBS@ MAKEINFO = @MAKEINFO@ + MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKOCTFILE_DL_LDFLAGS = @MKOCTFILE_DL_LDFLAGS@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ *************** *** 2183,2195 **** NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ - NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ --- 2253,2265 ---- NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ + NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ *************** *** 2205,2217 **** NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ - NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ --- 2275,2287 ---- NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ + NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ *************** *** 2324,2329 **** --- 2394,2400 ---- REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ + REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ *************** *** 2344,2349 **** --- 2415,2421 ---- REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ + REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ *************** *** 2362,2370 **** --- 2434,2444 ---- REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ + REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ + REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ *************** *** 2398,2403 **** --- 2472,2478 ---- REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ + REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RLD_FLAG = @RLD_FLAG@ *************** *** 2405,2411 **** ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = /bin/sh SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ --- 2480,2486 ---- ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = @SHELL@ SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ *************** *** 2462,2468 **** WARN_CXXFLAGS = @WARN_CXXFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ - WITH_PCRE_CONFIG = @WITH_PCRE_CONFIG@ X11_INCFLAGS = @X11_INCFLAGS@ X11_LIBS = @X11_LIBS@ XMKMF = @XMKMF@ --- 2537,2542 ---- *************** *** 2480,2485 **** --- 2554,2560 ---- abs_top_srcdir = @abs_top_srcdir@ ac_config_files = @ac_config_files@ ac_config_headers = @ac_config_headers@ + ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ *************** *** 2593,2599 **** localverarchlibdir = @localverarchlibdir@ localverfcnfiledir = @localverfcnfiledir@ localveroctfiledir = @localveroctfiledir@ - lt_ECHO = @lt_ECHO@ man1dir = @man1dir@ man1ext = @man1ext@ --- 2668,2673 ---- *************** *** 2695,2701 **** # The separator used for elements of the LD_PRELOAD variable (might be # a space, so protect with $(null)) null = - octlib_LTLIBRARIES = liboctinterp.la $(DLD_FUNCTIONS_LIBS) AM_CPPFLAGS = \ @CPPFLAGS@ -I../libgnu -I$(top_srcdir)/libgnu \ -I$(top_srcdir)/libcruft/misc \ --- 2769,2774 ---- *************** *** 2703,2709 **** --- 2776,2796 ---- -I. -I$(srcdir) AUTOMAKE_OPTIONS = subdir-objects + octlib_LTLIBRARIES = liboctinterp.la $(DLD_FUNCTIONS_LIBS) + @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@mkoctfile_SOURCES = + @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@nodist_mkoctfile_SOURCES = mkoctfile.cc + @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@octave_config_SOURCES = + @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@nodist_octave_config_SOURCES = octave-config.cc + @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@BUILT_SOURCES_EXTRA = \ + @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ mkoctfile.cc \ + @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ octave-config.cc + + @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@bin_SCRIPTS = \ + @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@ mkoctfile \ + @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@ octave-config + BUILT_SOURCES = \ + $(BUILT_SOURCES_EXTRA) \ defaults.h \ graphics.h \ graphics-props.cc \ *************** *** 2731,2748 **** version.h \ $(OPT_HANDLERS) \ $(OPT_INC) \ ! $(DEF_FILES) \ builtins.cc ! EXTRA_DIST = ChangeLog Makefile.in defaults.h.in DOCSTRINGS \ ! find-defun-files.sh genprops.awk gl2ps.c graphics.h.in \ ! mk-errno-list mk-pkg-add mkbuiltins mkdefs mkgendoc mkops \ ! mxarray.h.in oct-conf.h.in oct-errno.cc.in octave.gperf \ ! version.h.in $(BUILT_DISTFILES) DLD-FUNCTIONS/config-module.sh \ ! DLD-FUNCTIONS/config-module.awk DLD-FUNCTIONS/module-files \ ! OPERATORS/module.mk TEMPLATE-INST/module.mk ! DLL_CDEFS = @OCTINTERP_DLL_DEFS@ ! DLL_CXXDEFS = @OCTINTERP_DLL_DEFS@ OPT_HANDLERS = \ DASPK-opts.cc \ DASRT-opts.cc \ --- 2818,2834 ---- version.h \ $(OPT_HANDLERS) \ $(OPT_INC) \ ! $(ALL_DEF_FILES) \ builtins.cc ! EXTRA_DIST = Makefile.in defaults.h.in DOCSTRINGS find-defun-files.sh \ ! genprops.awk gl2ps.c graphics.h.in mk-errno-list mk-pkg-add \ ! mkbuiltins mkdefs mkgendoc mkoctfile.cc.in mkoctfile.in mkops \ ! mxarray.h.in oct-conf.h.in oct-errno.cc.in octave-config.cc.in \ ! octave-config.in octave.gperf version.h.in $(BUILT_DISTFILES) \ ! DLD-FUNCTIONS/config-module.sh DLD-FUNCTIONS/config-module.awk \ ! DLD-FUNCTIONS/module-files OPERATORS/module.mk \ ! TEMPLATE-INST/module.mk OPT_HANDLERS = \ DASPK-opts.cc \ DASRT-opts.cc \ *************** *** 2750,2762 **** LSODE-opts.cc \ Quad-opts.cc - OPT_IN = \ - ../liboctave/DASPK-opts.in \ - ../liboctave/DASRT-opts.in \ - ../liboctave/DASSL-opts.in \ - ../liboctave/LSODE-opts.in \ - ../liboctave/Quad-opts.in - OPT_INC = \ ../liboctave/DASPK-opts.h \ ../liboctave/DASRT-opts.h \ --- 2836,2841 ---- *************** *** 2861,2883 **** pt.h octinclude_HEADERS = Cell.h base-list.h builtins.h c-file-ptr-stream.h \ ! comment-list.h cutils.h debug.h defaults.h defun-dld.h \ ! defun-int.h defun.h dirfns.h display.h dynamic-ld.h error.h \ ! file-io.h gl-render.h gl2ps.h gl2ps-renderer.h graphics.h \ ! graphics-props.cc gripes.h help.h input.h lex.h load-path.h \ ! load-save.h ls-ascii-helper.h ls-hdf5.h ls-mat-ascii.h \ ! ls-mat4.h ls-mat5.h ls-oct-ascii.h ls-oct-binary.h ls-utils.h \ ! mex.h mexproto.h mxarray.h oct-conf.h oct-errno.h oct-fstrm.h \ ! oct-gperf.h oct-hdf5.h oct-hist.h oct-iostrm.h oct-lvalue.h \ ! oct-map.h oct-obj.h oct-prcstrm.h oct-procbuf.h oct-stdstrm.h \ ! oct-stream.h oct-strstrm.h oct.h octave.h ops.h pager.h \ ! parse.h pr-output.h procstream.h sighandlers.h siglist.h \ ! sparse-xdiv.h sparse-xpow.h symtab.h sysdep.h token.h toplev.h \ ! txt-eng-ft.h txt-eng.h unwind-prot.h utils.h variables.h \ ! version.h xdiv.h xnorm.h xpow.h zfstream.h $(OV_INCLUDES) \ ! $(OV_SPARSE_INCLUDES) $(PT_INCLUDES) \ OPERATORS/op-dm-template.cc OPERATORS/op-dms-template.cc \ OPERATORS/op-int.h OPERATORS/op-pm-template.cc OV_INTTYPE_SRC = \ ov-int16.cc \ ov-int32.cc \ --- 2940,2968 ---- pt.h octinclude_HEADERS = Cell.h base-list.h builtins.h c-file-ptr-stream.h \ ! comment-list.h cutils.h debug.h defun-dld.h defun-int.h \ ! defun.h dirfns.h display.h dynamic-ld.h error.h file-io.h \ ! gl-render.h gl2ps.h gl2ps-renderer.h graphics-props.cc \ ! gripes.h help.h input.h lex.h load-path.h load-save.h \ ! ls-ascii-helper.h ls-hdf5.h ls-mat-ascii.h ls-mat4.h ls-mat5.h \ ! ls-oct-ascii.h ls-oct-binary.h ls-utils.h mex.h mexproto.h \ ! oct-errno.h oct-fstrm.h oct-gperf.h oct-hdf5.h oct-hist.h \ ! oct-iostrm.h oct-lvalue.h oct-map.h oct-obj.h oct-prcstrm.h \ ! oct-procbuf.h oct-stdstrm.h oct-stream.h oct-strstrm.h oct.h \ ! octave.h ops.h pager.h parse.h pr-output.h procstream.h \ ! sighandlers.h siglist.h sparse-xdiv.h sparse-xpow.h symtab.h \ ! sysdep.h token.h toplev.h txt-eng-ft.h txt-eng.h unwind-prot.h \ ! utils.h variables.h xdiv.h xnorm.h xpow.h zfstream.h \ ! $(OV_INCLUDES) $(OV_SPARSE_INCLUDES) $(PT_INCLUDES) \ OPERATORS/op-dm-template.cc OPERATORS/op-dms-template.cc \ OPERATORS/op-int.h OPERATORS/op-pm-template.cc + nodist_octinclude_HEADERS = \ + defaults.h \ + graphics.h \ + oct-conf.h \ + mxarray.h \ + version.h + OV_INTTYPE_SRC = \ ov-int16.cc \ ov-int32.cc \ *************** *** 3091,3096 **** --- 3176,3183 ---- DLD-FUNCTIONS/matrix_type.cc \ DLD-FUNCTIONS/max.cc \ DLD-FUNCTIONS/md5sum.cc \ + DLD-FUNCTIONS/mgorth.cc \ + DLD-FUNCTIONS/nproc.cc \ DLD-FUNCTIONS/onCleanup.cc \ DLD-FUNCTIONS/pinv.cc \ DLD-FUNCTIONS/qr.cc \ *************** *** 3304,3309 **** --- 3391,3402 ---- DLD_FUNCTIONS_md5sum_la_SOURCES = DLD-FUNCTIONS/md5sum.cc DLD_FUNCTIONS_md5sum_la_LDFLAGS = @NO_UNDEFINED_LDFLAG@ -module DLD_FUNCTIONS_md5sum_la_LIBADD = $(OCT_LINK_DEPS) + DLD_FUNCTIONS_mgorth_la_SOURCES = DLD-FUNCTIONS/mgorth.cc + DLD_FUNCTIONS_mgorth_la_LDFLAGS = @NO_UNDEFINED_LDFLAG@ -module + DLD_FUNCTIONS_mgorth_la_LIBADD = $(OCT_LINK_DEPS) + DLD_FUNCTIONS_nproc_la_SOURCES = DLD-FUNCTIONS/nproc.cc + DLD_FUNCTIONS_nproc_la_LDFLAGS = @NO_UNDEFINED_LDFLAG@ -module + DLD_FUNCTIONS_nproc_la_LIBADD = $(OCT_LINK_DEPS) DLD_FUNCTIONS_onCleanup_la_SOURCES = DLD-FUNCTIONS/onCleanup.cc DLD_FUNCTIONS_onCleanup_la_LDFLAGS = @NO_UNDEFINED_LDFLAG@ -module DLD_FUNCTIONS_onCleanup_la_LIBADD = $(OCT_LINK_DEPS) *************** *** 3531,3541 **** $(OPERATORS_SRC) \ $(TEMPLATE_INST_SRC) ! DLD_DYNAMIC_DEF_FILES = $(DLD_DYNAMIC_SRC:.cc=.df) ! DLD_STATIC_DEF_FILES = $(DLD_STATIC_SRC:.cc=.df) ! SRC_DEF_FILES := $(shell $(srcdir)/find-defun-files.sh "$(srcdir)" $(DIST_SRC)) ! DEF_FILES = $(SRC_DEF_FILES) $(DLD_STATIC_DEF_FILES) ! ALL_DEF_FILES = $(DEF_FILES) $(DLD_DYNAMIC_DEF_FILES) @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@OCTAVE_LIBS = \ @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ ./liboctinterp.la \ @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ ../liboctave/liboctave.la \ --- 3624,3640 ---- $(OPERATORS_SRC) \ $(TEMPLATE_INST_SRC) ! nodist_liboctinterp_la_SOURCES = \ ! builtins.cc \ ! defaults.h \ ! graphics.h \ ! mxarray.h \ ! oct-conf.h \ ! oct-errno.cc \ ! ops.cc \ ! version.h \ ! $(OPT_INC) ! @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@OCTAVE_LIBS = \ @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ ./liboctinterp.la \ @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ ../liboctave/liboctave.la \ *************** *** 3583,3631 **** $(FLIBS) liboctinterp_la_LIBADD = $(OCTINTERP_LINK_DEPS) - OCT_LINK_DEPS = \ - $(RLD_FLAG) $(LDFLAGS) \ - ./liboctinterp.la \ - ../liboctave/liboctave.la \ - ../libcruft/libcruft.la \ - ../libcruft/libranlib.la \ - ../libgnu/libgnu.la - - octave_SOURCES = main.c - nodist_liboctinterp_la_SOURCES = \ - builtins.cc \ - defaults.h \ - graphics.h \ - mxarray.h \ - oct-conf.h \ - oct-errno.cc \ - ops.cc \ - version.h \ - $(OPT_INC) - liboctinterp_la_CPPFLAGS = @OCTINTERP_DLL_DEFS@ $(AM_CPPFLAGS) - liboctinterp_la_LDFLAGS = -release $(version) $(NO_UNDEFINED_LDFLAG) \ - -bindir $(bindir) - - CLEANFILES = \ - DLD-FUNCTIONS/PKG_ADD \ - doc-files \ - gendoc.cc \ - gendoc$(BUILD_EXEEXT) \ - graphics-props.cc \ - oct-parse.output \ - $(BUILT_NODISTFILES) - - DISTCLEANFILES = \ - .DOCSTRINGS \ - DOCSTRINGS \ - $(OCT_FILES) \ - $(OCT_STAMP_FILES) ! MAINTAINERCLEANFILES = \ ! $(BUILT_DISTFILES) - octave_LDADD = $(OCTAVE_LIBS) DLD_FUNCTIONS___magick_read___la_CPPFLAGS = $(AM_CPPFLAGS) $(MAGICK_CPPFLAGS) DLD_FUNCTIONS_convhulln_la_CPPFLAGS = $(AM_CPPFLAGS) $(QHULL_CPPFLAGS) DLD_FUNCTIONS___delaunayn___la_CPPFLAGS = $(AM_CPPFLAGS) $(QHULL_CPPFLAGS) --- 3682,3699 ---- $(FLIBS) liboctinterp_la_LIBADD = $(OCTINTERP_LINK_DEPS) liboctinterp_la_CPPFLAGS = @OCTINTERP_DLL_DEFS@ $(AM_CPPFLAGS) ! # Increment these as needed and according to the rules in the libtool manual: ! liboctinterp_current = 0 ! liboctinterp_revision = 0 ! liboctinterp_age = 0 ! liboctinterp_version_info = $(liboctinterp_current):$(liboctinterp_revision):$(liboctinterp_age) ! liboctinterp_la_LDFLAGS = \ ! -version-info $(liboctinterp_version_info) \ ! $(NO_UNDEFINED_LDFLAG) \ ! -bindir $(bindir) DLD_FUNCTIONS___magick_read___la_CPPFLAGS = $(AM_CPPFLAGS) $(MAGICK_CPPFLAGS) DLD_FUNCTIONS_convhulln_la_CPPFLAGS = $(AM_CPPFLAGS) $(QHULL_CPPFLAGS) DLD_FUNCTIONS___delaunayn___la_CPPFLAGS = $(AM_CPPFLAGS) $(QHULL_CPPFLAGS) *************** *** 3648,3659 **** DLD_FUNCTIONS_fft2_la_CPPFLAGS = $(AM_CPPFLAGS) $(FFTW_XCPPFLAGS) DLD_FUNCTIONS_fftn_la_CPPFLAGS = $(AM_CPPFLAGS) $(FFTW_XCPPFLAGS) DLD_FUNCTIONS_fftw_la_CPPFLAGS = $(AM_CPPFLAGS) $(FFTW_XCPPFLAGS) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: ! .SUFFIXES: .c .cc .df .ll .lo .o .obj .yy ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.mk $(srcdir)/DLD-FUNCTIONS/module.mk $(srcdir)/OPERATORS/module.mk $(srcdir)/TEMPLATE-INST/module.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ --- 3716,3754 ---- DLD_FUNCTIONS_fft2_la_CPPFLAGS = $(AM_CPPFLAGS) $(FFTW_XCPPFLAGS) DLD_FUNCTIONS_fftn_la_CPPFLAGS = $(AM_CPPFLAGS) $(FFTW_XCPPFLAGS) DLD_FUNCTIONS_fftw_la_CPPFLAGS = $(AM_CPPFLAGS) $(FFTW_XCPPFLAGS) + octave_SOURCES = main.c + octave_LDADD = $(OCTAVE_LIBS) + SRC_DEF_FILES := $(shell $(srcdir)/find-defun-files.sh "$(srcdir)" $(DIST_SRC)) + DLD_STATIC_DEF_FILES = $(DLD_STATIC_SRC:.cc=.df) + DLD_DYNAMIC_DEF_FILES = $(DLD_DYNAMIC_SRC:.cc=.df) + DEF_FILES = $(SRC_DEF_FILES) $(DLD_STATIC_DEF_FILES) + ALL_DEF_FILES = $(DEF_FILES) $(DLD_DYNAMIC_DEF_FILES) + DLL_CDEFS = @OCTINTERP_DLL_DEFS@ + DLL_CXXDEFS = @OCTINTERP_DLL_DEFS@ + CLEANFILES = \ + DLD-FUNCTIONS/PKG_ADD \ + doc-files \ + gendoc.cc \ + gendoc$(BUILD_EXEEXT) \ + graphics-props.cc \ + oct-parse.output + + DISTCLEANFILES = \ + .DOCSTRINGS \ + DOCSTRINGS \ + $(BUILT_NODISTFILES) \ + $(OCT_FILES) \ + $(OCT_STAMP_FILES) + + MAINTAINERCLEANFILES = \ + $(BUILT_DISTFILES) + all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: ! .SUFFIXES: .c .cc .ll .lo .o .obj .yy ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build-aux/common.mk $(srcdir)/DLD-FUNCTIONS/module.mk $(srcdir)/OPERATORS/module.mk $(srcdir)/TEMPLATE-INST/module.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ *************** *** 3961,3966 **** --- 4056,4069 ---- DLD-FUNCTIONS/$(DEPDIR)/$(am__dirstamp) DLD-FUNCTIONS/md5sum.la: $(DLD_FUNCTIONS_md5sum_la_OBJECTS) $(DLD_FUNCTIONS_md5sum_la_DEPENDENCIES) DLD-FUNCTIONS/$(am__dirstamp) $(DLD_FUNCTIONS_md5sum_la_LINK) -rpath $(octlibdir) $(DLD_FUNCTIONS_md5sum_la_OBJECTS) $(DLD_FUNCTIONS_md5sum_la_LIBADD) $(LIBS) + DLD-FUNCTIONS/mgorth.lo: DLD-FUNCTIONS/$(am__dirstamp) \ + DLD-FUNCTIONS/$(DEPDIR)/$(am__dirstamp) + DLD-FUNCTIONS/mgorth.la: $(DLD_FUNCTIONS_mgorth_la_OBJECTS) $(DLD_FUNCTIONS_mgorth_la_DEPENDENCIES) DLD-FUNCTIONS/$(am__dirstamp) + $(DLD_FUNCTIONS_mgorth_la_LINK) -rpath $(octlibdir) $(DLD_FUNCTIONS_mgorth_la_OBJECTS) $(DLD_FUNCTIONS_mgorth_la_LIBADD) $(LIBS) + DLD-FUNCTIONS/nproc.lo: DLD-FUNCTIONS/$(am__dirstamp) \ + DLD-FUNCTIONS/$(DEPDIR)/$(am__dirstamp) + DLD-FUNCTIONS/nproc.la: $(DLD_FUNCTIONS_nproc_la_OBJECTS) $(DLD_FUNCTIONS_nproc_la_DEPENDENCIES) DLD-FUNCTIONS/$(am__dirstamp) + $(DLD_FUNCTIONS_nproc_la_LINK) -rpath $(octlibdir) $(DLD_FUNCTIONS_nproc_la_OBJECTS) $(DLD_FUNCTIONS_nproc_la_LIBADD) $(LIBS) DLD-FUNCTIONS/onCleanup.lo: DLD-FUNCTIONS/$(am__dirstamp) \ DLD-FUNCTIONS/$(DEPDIR)/$(am__dirstamp) DLD-FUNCTIONS/onCleanup.la: $(DLD_FUNCTIONS_onCleanup_la_OBJECTS) $(DLD_FUNCTIONS_onCleanup_la_DEPENDENCIES) DLD-FUNCTIONS/$(am__dirstamp) *************** *** 4207,4212 **** --- 4310,4320 ---- DLD-FUNCTIONS/liboctinterp_la-md5sum.lo: \ DLD-FUNCTIONS/$(am__dirstamp) \ DLD-FUNCTIONS/$(DEPDIR)/$(am__dirstamp) + DLD-FUNCTIONS/liboctinterp_la-mgorth.lo: \ + DLD-FUNCTIONS/$(am__dirstamp) \ + DLD-FUNCTIONS/$(DEPDIR)/$(am__dirstamp) + DLD-FUNCTIONS/liboctinterp_la-nproc.lo: DLD-FUNCTIONS/$(am__dirstamp) \ + DLD-FUNCTIONS/$(DEPDIR)/$(am__dirstamp) DLD-FUNCTIONS/liboctinterp_la-onCleanup.lo: \ DLD-FUNCTIONS/$(am__dirstamp) \ DLD-FUNCTIONS/$(DEPDIR)/$(am__dirstamp) *************** *** 4584,4592 **** --- 4692,4740 ---- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list + @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@mkoctfile$(EXEEXT): $(mkoctfile_OBJECTS) $(mkoctfile_DEPENDENCIES) + @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ @rm -f mkoctfile$(EXEEXT) + @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ $(CXXLINK) $(mkoctfile_OBJECTS) $(mkoctfile_LDADD) $(LIBS) octave$(EXEEXT): $(octave_OBJECTS) $(octave_DEPENDENCIES) @rm -f octave$(EXEEXT) $(LINK) $(octave_OBJECTS) $(octave_LDADD) $(LIBS) + @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@octave-config$(EXEEXT): $(octave_config_OBJECTS) $(octave_config_DEPENDENCIES) + @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ @rm -f octave-config$(EXEEXT) + @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ $(CXXLINK) $(octave_config_OBJECTS) $(octave_config_LDADD) $(LIBS) + install-binSCRIPTS: $(bin_SCRIPTS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n' \ + -e 'h;s|.*|.|' \ + -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) { files[d] = files[d] " " $$1; \ + if (++n[d] == $(am__install_max)) { \ + print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ + else { print "f", d "/" $$4, $$1 } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + + uninstall-binSCRIPTS: + @$(NORMAL_UNINSTALL) + @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 's,.*/,,;$(transform)'`; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files mostlyclean-compile: -rm -f *.$(OBJEXT) *************** *** 4810,4815 **** --- 4958,4967 ---- -rm -f DLD-FUNCTIONS/liboctinterp_la-max.lo -rm -f DLD-FUNCTIONS/liboctinterp_la-md5sum.$(OBJEXT) -rm -f DLD-FUNCTIONS/liboctinterp_la-md5sum.lo + -rm -f DLD-FUNCTIONS/liboctinterp_la-mgorth.$(OBJEXT) + -rm -f DLD-FUNCTIONS/liboctinterp_la-mgorth.lo + -rm -f DLD-FUNCTIONS/liboctinterp_la-nproc.$(OBJEXT) + -rm -f DLD-FUNCTIONS/liboctinterp_la-nproc.lo -rm -f DLD-FUNCTIONS/liboctinterp_la-onCleanup.$(OBJEXT) -rm -f DLD-FUNCTIONS/liboctinterp_la-onCleanup.lo -rm -f DLD-FUNCTIONS/liboctinterp_la-pinv.$(OBJEXT) *************** *** 4872,4877 **** --- 5024,5033 ---- -rm -f DLD-FUNCTIONS/max.lo -rm -f DLD-FUNCTIONS/md5sum.$(OBJEXT) -rm -f DLD-FUNCTIONS/md5sum.lo + -rm -f DLD-FUNCTIONS/mgorth.$(OBJEXT) + -rm -f DLD-FUNCTIONS/mgorth.lo + -rm -f DLD-FUNCTIONS/nproc.$(OBJEXT) + -rm -f DLD-FUNCTIONS/nproc.lo -rm -f DLD-FUNCTIONS/onCleanup.$(OBJEXT) -rm -f DLD-FUNCTIONS/onCleanup.lo -rm -f DLD-FUNCTIONS/pinv.$(OBJEXT) *************** *** 5318,5323 **** --- 5474,5481 ---- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboctinterp_la-xpow.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboctinterp_la-zfstream.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkoctfile.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/octave-config.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/DLD_FUNCTIONS___delaunayn___la-__delaunayn__.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/DLD_FUNCTIONS___fltk_uigetfile___la-__fltk_uigetfile__.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/DLD_FUNCTIONS___glpk___la-__glpk__.Plo@am__quote@ *************** *** 5428,5433 **** --- 5586,5593 ---- @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/liboctinterp_la-matrix_type.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/liboctinterp_la-max.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/liboctinterp_la-md5sum.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/liboctinterp_la-mgorth.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/liboctinterp_la-nproc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/liboctinterp_la-onCleanup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/liboctinterp_la-pinv.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/liboctinterp_la-qr.Plo@am__quote@ *************** *** 5459,5464 **** --- 5619,5626 ---- @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/matrix_type.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/max.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/md5sum.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/mgorth.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/nproc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/onCleanup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/pinv.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@DLD-FUNCTIONS/$(DEPDIR)/quad.Plo@am__quote@ *************** *** 7196,7201 **** --- 7358,7377 ---- @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboctinterp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DLD-FUNCTIONS/liboctinterp_la-md5sum.lo `test -f 'DLD-FUNCTIONS/md5sum.cc' || echo '$(srcdir)/'`DLD-FUNCTIONS/md5sum.cc + DLD-FUNCTIONS/liboctinterp_la-mgorth.lo: DLD-FUNCTIONS/mgorth.cc + @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboctinterp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DLD-FUNCTIONS/liboctinterp_la-mgorth.lo -MD -MP -MF DLD-FUNCTIONS/$(DEPDIR)/liboctinterp_la-mgorth.Tpo -c -o DLD-FUNCTIONS/liboctinterp_la-mgorth.lo `test -f 'DLD-FUNCTIONS/mgorth.cc' || echo '$(srcdir)/'`DLD-FUNCTIONS/mgorth.cc + @am__fastdepCXX_TRUE@ $(am__mv) DLD-FUNCTIONS/$(DEPDIR)/liboctinterp_la-mgorth.Tpo DLD-FUNCTIONS/$(DEPDIR)/liboctinterp_la-mgorth.Plo + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DLD-FUNCTIONS/mgorth.cc' object='DLD-FUNCTIONS/liboctinterp_la-mgorth.lo' libtool=yes @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboctinterp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DLD-FUNCTIONS/liboctinterp_la-mgorth.lo `test -f 'DLD-FUNCTIONS/mgorth.cc' || echo '$(srcdir)/'`DLD-FUNCTIONS/mgorth.cc + + DLD-FUNCTIONS/liboctinterp_la-nproc.lo: DLD-FUNCTIONS/nproc.cc + @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboctinterp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DLD-FUNCTIONS/liboctinterp_la-nproc.lo -MD -MP -MF DLD-FUNCTIONS/$(DEPDIR)/liboctinterp_la-nproc.Tpo -c -o DLD-FUNCTIONS/liboctinterp_la-nproc.lo `test -f 'DLD-FUNCTIONS/nproc.cc' || echo '$(srcdir)/'`DLD-FUNCTIONS/nproc.cc + @am__fastdepCXX_TRUE@ $(am__mv) DLD-FUNCTIONS/$(DEPDIR)/liboctinterp_la-nproc.Tpo DLD-FUNCTIONS/$(DEPDIR)/liboctinterp_la-nproc.Plo + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DLD-FUNCTIONS/nproc.cc' object='DLD-FUNCTIONS/liboctinterp_la-nproc.lo' libtool=yes @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboctinterp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DLD-FUNCTIONS/liboctinterp_la-nproc.lo `test -f 'DLD-FUNCTIONS/nproc.cc' || echo '$(srcdir)/'`DLD-FUNCTIONS/nproc.cc + DLD-FUNCTIONS/liboctinterp_la-onCleanup.lo: DLD-FUNCTIONS/onCleanup.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboctinterp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DLD-FUNCTIONS/liboctinterp_la-onCleanup.lo -MD -MP -MF DLD-FUNCTIONS/$(DEPDIR)/liboctinterp_la-onCleanup.Tpo -c -o DLD-FUNCTIONS/liboctinterp_la-onCleanup.lo `test -f 'DLD-FUNCTIONS/onCleanup.cc' || echo '$(srcdir)/'`DLD-FUNCTIONS/onCleanup.cc @am__fastdepCXX_TRUE@ $(am__mv) DLD-FUNCTIONS/$(DEPDIR)/liboctinterp_la-onCleanup.Tpo DLD-FUNCTIONS/$(DEPDIR)/liboctinterp_la-onCleanup.Plo *************** *** 8302,8307 **** --- 8478,8503 ---- -rm -rf DLD-FUNCTIONS/.libs DLD-FUNCTIONS/_libs -rm -rf OPERATORS/.libs OPERATORS/_libs -rm -rf TEMPLATE-INST/.libs TEMPLATE-INST/_libs + install-nodist_octincludeHEADERS: $(nodist_octinclude_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(octincludedir)" || $(MKDIR_P) "$(DESTDIR)$(octincludedir)" + @list='$(nodist_octinclude_HEADERS)'; test -n "$(octincludedir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(octincludedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(octincludedir)" || exit $$?; \ + done + + uninstall-nodist_octincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(nodist_octinclude_HEADERS)'; test -n "$(octincludedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(octincludedir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(octincludedir)" && rm -f $$files install-octincludeHEADERS: $(octinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(octincludedir)" || $(MKDIR_P) "$(DESTDIR)$(octincludedir)" *************** *** 8408,8416 **** check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am ! all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) all-local installdirs: ! for dir in "$(DESTDIR)$(octlibdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(octincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) --- 8604,8613 ---- check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am ! all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(HEADERS) \ ! all-local installdirs: ! for dir in "$(DESTDIR)$(octlibdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(octincludedir)" "$(DESTDIR)$(octincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) *************** *** 8474,8487 **** info-am: ! install-data-am: install-octincludeHEADERS install-octlibLTLIBRARIES @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: ! install-exec-am: install-binPROGRAMS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-exec-hook install-html: install-html-am --- 8671,8685 ---- info-am: ! install-data-am: install-nodist_octincludeHEADERS \ ! install-octincludeHEADERS install-octlibLTLIBRARIES @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: ! install-exec-am: install-binPROGRAMS install-binSCRIPTS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-exec-hook install-html: install-html-am *************** *** 8522,8528 **** ps-am: ! uninstall-am: uninstall-binPROGRAMS uninstall-local \ uninstall-octincludeHEADERS uninstall-octlibLTLIBRARIES .MAKE: all check install install-am install-data-am install-exec-am \ --- 8720,8727 ---- ps-am: ! uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \ ! uninstall-local uninstall-nodist_octincludeHEADERS \ uninstall-octincludeHEADERS uninstall-octlibLTLIBRARIES .MAKE: all check install install-am install-data-am install-exec-am \ *************** *** 8533,8550 **** clean-octlibLTLIBRARIES ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ ! install-binPROGRAMS install-data install-data-am \ ! install-data-hook install-dvi install-dvi-am install-exec \ ! install-exec-am install-exec-hook install-html install-html-am \ ! install-info install-info-am install-man \ ! install-octincludeHEADERS install-octlibLTLIBRARIES \ ! install-pdf install-pdf-am install-ps install-ps-am \ ! install-strip installcheck installcheck-am installdirs \ ! maintainer-clean maintainer-clean-generic mostlyclean \ ! mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ ! pdf pdf-am ps ps-am tags uninstall uninstall-am \ ! uninstall-binPROGRAMS uninstall-local \ ! uninstall-octincludeHEADERS uninstall-octlibLTLIBRARIES export AWK export SED --- 8732,8751 ---- clean-octlibLTLIBRARIES ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ ! install-binPROGRAMS install-binSCRIPTS install-data \ ! install-data-am install-data-hook install-dvi install-dvi-am \ ! install-exec install-exec-am install-exec-hook install-html \ ! install-html-am install-info install-info-am install-man \ ! install-nodist_octincludeHEADERS install-octincludeHEADERS \ ! install-octlibLTLIBRARIES install-pdf install-pdf-am \ ! install-ps install-ps-am install-strip installcheck \ ! installcheck-am installdirs maintainer-clean \ ! maintainer-clean-generic mostlyclean mostlyclean-compile \ ! mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ! tags uninstall uninstall-am uninstall-binPROGRAMS \ ! uninstall-binSCRIPTS uninstall-local \ ! uninstall-nodist_octincludeHEADERS uninstall-octincludeHEADERS \ ! uninstall-octlibLTLIBRARIES export AWK export SED *************** *** 8556,8562 **** define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ --- 8757,8763 ---- define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/build-aux/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ *************** *** 8780,8786 **** endef define do_script_install ! $(top_srcdir)/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ --- 8981,8987 ---- endef define do_script_install ! $(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ *************** *** 8802,8813 **** -rmdir $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) endef - .cc.df: - $(CXXCPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) \ - -DMAKE_BUILTINS $< | $(srcdir)/mkdefs $(srcdir) $< > $@-t - mv $@-t $@ - @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@DLD-FUNCTIONS/$(am__leading_dot)__contourc__.oct-stamp: DLD-FUNCTIONS/__contourc__.la @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ rm -f $(<:.la=.oct) @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ la=$( $@-t mv $@-t $@ mxarray.h: mxarray.h.in Makefile $(SED) < $< \ --- 9679,9755 ---- @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ $(LIBS) \ @AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@ $(FLIBS) ! display.df display.lo: CPPFLAGS += $(X11_FLAGS) ! DLD-FUNCTIONS/__magick_read__.df: CPPFLAGS += $(MAGICK_CPPFLAGS) ! DLD-FUNCTIONS/convhulln.df: CPPFLAGS += $(QHULL_CPPFLAGS) ! DLD-FUNCTIONS/__delaunayn__.df: CPPFLAGS += $(QHULL_CPPFLAGS) ! DLD-FUNCTIONS/__voronoi__.df: CPPFLAGS += $(QHULL_CPPFLAGS) ! DLD-FUNCTIONS/eigs.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) ! ! DLD-FUNCTIONS/qr.df: CPPFLAGS += $(QRUPDATE_CPPFLAGS) $(SPARSE_XCPPFLAGS) ! ! DLD-FUNCTIONS/chol.df: CPPFLAGS += $(QRUPDATE_CPPFLAGS) $(SPARSE_XCPPFLAGS) ! ! DLD-FUNCTIONS/regexp.df: CPPFLAGS += $(REGEX_CPPFLAGS) ! ! DLD-FUNCTIONS/urlwrite.df: CPPFLAGS += $(CURL_CPPFLAGS) ! ! DLD-FUNCTIONS/__fltk_uigetfile__.df: CPPFLAGS += $(GRAPHICS_CFLAGS) $(FT2_CPPFLAGS) ! ! DLD-FUNCTIONS/__glpk__.df: CPPFLAGS += $(GLPK_CPPFLAGS) ! ! DLD-FUNCTIONS/__init_fltk__.df: CPPFLAGS += $(GRAPHICS_CFLAGS) $(FT2_CPPFLAGS) ! ! DLD-FUNCTIONS/amd.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) ! ! DLD-FUNCTIONS/colamd.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) ! ! DLD-FUNCTIONS/ccolamd.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) ! ! DLD-FUNCTIONS/symbfact.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) ! ! DLD-FUNCTIONS/dmperm.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) ! ! DLD-FUNCTIONS/symrcm.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) ! ! DLD-FUNCTIONS/fft.df: CPPFLAGS += $(FFTW_XCPPFLAGS) ! ! DLD-FUNCTIONS/fft2.df: CPPFLAGS += $(FFTW_XCPPFLAGS) ! ! DLD-FUNCTIONS/fftn.df: CPPFLAGS += $(FFTW_XCPPFLAGS) ! ! DLD-FUNCTIONS/fftw.df: CPPFLAGS += $(FFTW_XCPPFLAGS) ! ! $(DEF_FILES) $(DYNAMIC_DLD_DEF_FILES): mkdefs Makefile ! ! $(DEF_FILES): $(OPT_HANDLERS) $(OPT_INC) ! ! %.df: %.cc ! $(CXXCPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ ! $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) \ ! -DMAKE_BUILTINS $< | $(srcdir)/mkdefs $(srcdir) $< > $@-t ! mv $@-t $@ ! ! defaults.h: defaults.h.in Makefile ! @$(do_subst_default_vals) ! ! graphics.h: graphics.h.in genprops.awk Makefile ! $(AWK) -f $(srcdir)/genprops.awk $< > $@-t ! mv $@-t $@ ! ! oct-conf.h: oct-conf.h.in Makefile ! @$(do_subst_config_vals) ! ! oct-gperf.h: octave.gperf ! $(GPERF) -t -C -D -G -L C++ -Z octave_kw_hash $< > $@-t1 ! $(SED) 's,lookup\[,gperf_lookup[,' < $@-t1 > $@-t mv $@-t $@ + rm -f $@-t1 mxarray.h: mxarray.h.in Makefile $(SED) < $< \ *************** *** 9503,9520 **** -e "s|%OCTAVE_VERSION%|\"${OCTAVE_VERSION}\"|" > $@-t mv $@-t $@ ! graphics.h: graphics.h.in genprops.awk Makefile ! $(AWK) -f $(srcdir)/genprops.awk $< > $@-t mv $@-t $@ graphics-props.cc: graphics.h.in genprops.awk Makefile $(AWK) -v emit_graphics_props=1 -f $(srcdir)/genprops.awk $< > $@-t mv $@-t $@ DLD-FUNCTIONS/PKG_ADD: $(DLD_DYNAMIC_DEF_FILES) mk-pkg-add $(srcdir)/mk-pkg-add $(DLD_DYNAMIC_DEF_FILES) > $@-t mv $@-t $@ .DOCSTRINGS: gendoc$(BUILD_EXEEXT) if [ "x$(srcdir)" != "x." ] && [ -f $(srcdir)/DOCSTRINGS ] && [ ! -f DOCSTRINGS ]; then \ cp $(srcdir)/DOCSTRINGS DOCSTRINGS; \ --- 9765,9812 ---- -e "s|%OCTAVE_VERSION%|\"${OCTAVE_VERSION}\"|" > $@-t mv $@-t $@ ! builtins.cc: $(DEF_FILES) mkbuiltins ! $(srcdir)/mkbuiltins $(DEF_FILES) > $@-t mv $@-t $@ graphics-props.cc: graphics.h.in genprops.awk Makefile $(AWK) -v emit_graphics_props=1 -f $(srcdir)/genprops.awk $< > $@-t mv $@-t $@ + ops.cc: $(OPERATORS_SRC) mkops + $(srcdir)/mkops $(OPERATORS_SRC) > $@-t + mv $@-t $@ + + oct-errno.cc: oct-errno.cc.in Makefile + if test -n "$(PERL)"; then \ + $(srcdir)/mk-errno-list --perl "$(PERL)" < $< > $@-t; \ + elif test -n "$(PYTHON)"; then \ + $(srcdir)/mk-errno-list --python "$(PYTHON)" < $< > $@-t; \ + else \ + $(SED) '/@SYSDEP_ERRNO_LIST@/D' $< > $@-t; \ + fi + mv $@-t $@ + + $(OPT_HANDLERS) : %.cc : $(top_srcdir)/liboctave/%.in $(top_srcdir)/build-aux/mk-opts.pl + $(PERL) $(top_srcdir)/build-aux/mk-opts.pl --opt-handler-fcns $< > $@-t + mv $@-t $@ + + $(OPT_INC) : %.h : %.in + $(MAKE) -C $(@D) $(@F) + DLD-FUNCTIONS/PKG_ADD: $(DLD_DYNAMIC_DEF_FILES) mk-pkg-add $(srcdir)/mk-pkg-add $(DLD_DYNAMIC_DEF_FILES) > $@-t mv $@-t $@ + lex.lo lex.o oct-parse.lo oct-parse.o: \ + AM_CXXFLAGS := $(filter-out -Wold-style-cast, $(AM_CXXFLAGS)) + + __fltk_uigetfile__.lo __fltk_uigetfile__.o: \ + AM_CXXFLAGS := $(filter-out $(DLL_CXXDEFS), $(AM_CXXFLAGS) $(GRAPHICS_CFLAGS)) + + __init_fltk__.lo __init_fltk__.o: \ + AM_CXXFLAGS := $(filter-out $(DLL_CXXDEFS), $(AM_CXXFLAGS) $(GRAPHICS_CFLAGS)) + .DOCSTRINGS: gendoc$(BUILD_EXEEXT) if [ "x$(srcdir)" != "x." ] && [ -f $(srcdir)/DOCSTRINGS ] && [ ! -f DOCSTRINGS ]; then \ cp $(srcdir)/DOCSTRINGS DOCSTRINGS; \ *************** *** 9522,9528 **** fi @echo "creating .DOCSTRINGS from .cc source files" @./gendoc > $@ ! $(top_srcdir)/move-if-change $@ DOCSTRINGS touch $@ doc-files: $(ALL_DEF_FILES) --- 9814,9820 ---- fi @echo "creating .DOCSTRINGS from .cc source files" @./gendoc > $@ ! $(top_srcdir)/build-aux/move-if-change $@ DOCSTRINGS touch $@ doc-files: $(ALL_DEF_FILES) *************** *** 9536,9544 **** gendoc$(BUILD_EXEEXT): gendoc.cc $(BUILD_CXX) $(BUILD_CXXFLAGS) -o $@ $^ $(BUILD_LDFLAGS) ! ops.cc: $(OPERATORS_SRC) mkops ! $(srcdir)/mkops $(OPERATORS_SRC) > $@-t ! mv $@-t $@ install-exec-hook: make-version-links --- 9828,9847 ---- gendoc$(BUILD_EXEEXT): gendoc.cc $(BUILD_CXX) $(BUILD_CXXFLAGS) -o $@ $^ $(BUILD_LDFLAGS) ! all-local: $(OCT_STAMP_FILES) DLD-FUNCTIONS/PKG_ADD .DOCSTRINGS ! ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@octave-config.cc: octave-config.cc.in Makefile ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ @$(do_subst_default_vals) ! ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@mkoctfile.cc: mkoctfile.cc.in Makefile ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_TRUE@ @$(do_subst_config_vals) ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@octave-config: octave-config.in Makefile ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@ @$(do_subst_default_vals) ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@ chmod a+rx $@ ! ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@mkoctfile: mkoctfile.in Makefile ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@ @$(do_subst_config_vals) ! @AMCOND_BUILD_COMPILED_AUX_PROGRAMS_FALSE@ chmod a+rx $@ install-exec-hook: make-version-links *************** *** 9557,9563 **** .PHONY: remove-version-links @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@install-oct: ! @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(top_srcdir)/mkinstalldirs $(DESTDIR)$(octfiledir) @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ if [ -n "`cat DLD-FUNCTIONS/PKG_ADD`" ]; then \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(INSTALL_DATA) DLD-FUNCTIONS/PKG_ADD $(DESTDIR)$(octfiledir)/PKG_ADD; \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ fi --- 9860,9866 ---- .PHONY: remove-version-links @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@install-oct: ! @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(octfiledir) @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ if [ -n "`cat DLD-FUNCTIONS/PKG_ADD`" ]; then \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ $(INSTALL_DATA) DLD-FUNCTIONS/PKG_ADD $(DESTDIR)$(octfiledir)/PKG_ADD; \ @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ fi *************** *** 9584,9674 **** @AMCOND_ENABLE_DYNAMIC_LINKING_TRUE@ rm -f $(DESTDIR)$(octfiledir)/PKG_ADD .PHONY: install-oct uninstall-oct - # Special rules -- these files need special things to be defined. - - $(OPT_HANDLERS) : %.cc : $(top_srcdir)/liboctave/%.in $(top_srcdir)/mk-opts.pl - $(PERL) $(top_srcdir)/mk-opts.pl --opt-handler-fcns $< > $@-t - mv $@-t $@ - - #parse.cc : parse.y - # @echo "expect 14 shift/reduce conflicts" - # $(YACC) $(YFLAGS) --output=$@ --defines=y.tab.h $< - - #lex.cc : lex.l - # $(LEX) $(LFLAGS) $< > $(@F)-t - # @mv $(@F)-t $@ - - $(OPT_INC) : %.h : %.in - $(MAKE) -C $(@D) $@ - - defaults.h: defaults.h.in Makefile - @$(do_subst_default_vals) - - oct-conf.h: oct-conf.h.in Makefile - @$(do_subst_config_vals) - - oct-errno.cc: oct-errno.cc.in Makefile - if test -n "$(PERL)"; then \ - $(srcdir)/mk-errno-list --perl "$(PERL)" < $< > $@-t; \ - elif test -n "$(PYTHON)"; then \ - $(srcdir)/mk-errno-list --python "$(PYTHON)" < $< > $@-t; \ - else \ - $(SED) '/@SYSDEP_ERRNO_LIST@/D' $< > $@-t; \ - fi - mv $@-t $@ - - oct-gperf.h: octave.gperf - $(GPERF) -t -C -D -G -L C++ -Z octave_kw_hash $< > $@-t1 - $(SED) 's,lookup\[,gperf_lookup[,' < $@-t1 > $@-t - mv $@-t $@ - rm -f $@-t1 - - display.df display.lo: CPPFLAGS += $(X11_FLAGS) - - DLD-FUNCTIONS/__magick_read__.df: CPPFLAGS += $(MAGICK_CPPFLAGS) - - DLD-FUNCTIONS/convhulln.df: CPPFLAGS += $(QHULL_CPPFLAGS) - - DLD-FUNCTIONS/__delaunayn__.df: CPPFLAGS += $(QHULL_CPPFLAGS) - - DLD-FUNCTIONS/__voronoi__.df: CPPFLAGS += $(QHULL_CPPFLAGS) - - DLD-FUNCTIONS/eigs.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) - - DLD-FUNCTIONS/qr.df: CPPFLAGS += $(QRUPDATE_CPPFLAGS) $(SPARSE_XCPPFLAGS) - - DLD-FUNCTIONS/chol.df: CPPFLAGS += $(QRUPDATE_CPPFLAGS) $(SPARSE_XCPPFLAGS) - - DLD-FUNCTIONS/regexp.df: CPPFLAGS += $(REGEX_CPPFLAGS) - - DLD-FUNCTIONS/urlwrite.df: CPPFLAGS += $(CURL_CPPFLAGS) - - DLD-FUNCTIONS/__fltk_uigetfile__.df: CPPFLAGS += $(GRAPHICS_CFLAGS) $(FT2_CPPFLAGS) - - DLD-FUNCTIONS/__glpk__.df: CPPFLAGS += $(GLPK_CPPFLAGS) - - DLD-FUNCTIONS/__init_fltk__.df: CPPFLAGS += $(GRAPHICS_CFLAGS) $(FT2_CPPFLAGS) - - DLD-FUNCTIONS/amd.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) - - DLD-FUNCTIONS/colamd.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) - - DLD-FUNCTIONS/ccolamd.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) - - DLD-FUNCTIONS/symbfact.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) - - DLD-FUNCTIONS/dmperm.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) - - DLD-FUNCTIONS/symrcm.df: CPPFLAGS += $(SPARSE_XCPPFLAGS) - - DLD-FUNCTIONS/fft.df: CPPFLAGS += $(FFTW_XCPPFLAGS) - - DLD-FUNCTIONS/fft2.df: CPPFLAGS += $(FFTW_XCPPFLAGS) - - DLD-FUNCTIONS/fftn.df: CPPFLAGS += $(FFTW_XCPPFLAGS) - - DLD-FUNCTIONS/fftw.df: CPPFLAGS += $(FFTW_XCPPFLAGS) - # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: --- 9887,9892 ---- diff -cNr octave-3.4.0/src/mappers.cc octave-3.4.1/src/mappers.cc *** octave-3.4.0/src/mappers.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/mappers.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 550,560 **** \n\ @example\n\ @group\n\ ! z\n\ ! /\n\ erf (z) = (2/sqrt (pi)) | e^(-t^2) dt\n\ ! /\n\ ! t=0\n\ @end group\n\ @end example\n\ \n\ --- 550,561 ---- \n\ @example\n\ @group\n\ ! @c spacing appears odd here, but is correct after Makeinfo\n\ ! z\n\ ! /\n\ erf (z) = (2/sqrt (pi)) | e^(-t^2) dt\n\ ! /\n\ ! t=0\n\ @end group\n\ @end example\n\ \n\ *************** *** 607,613 **** Compute the inverse error function, i.e., @var{y} such that\n\ \n\ @example\n\ ! erf(@var{y}) == @var{x}\n\ @end example\n\ @seealso{erf, erfc, erfcx}\n\ @end deftypefn") --- 608,614 ---- Compute the inverse error function, i.e., @var{y} such that\n\ \n\ @example\n\ ! erf (@var{y}) == @var{x}\n\ @end example\n\ @seealso{erf, erfc, erfcx}\n\ @end deftypefn") *************** *** 644,650 **** $1 - {\\rm erf} (z)$.\n\ @end tex\n\ @ifnottex\n\ ! @code{1 - erf (@var{z})}.\n\ @end ifnottex\n\ @seealso{erfcx, erf, erfinv}\n\ @end deftypefn") --- 645,651 ---- $1 - {\\rm erf} (z)$.\n\ @end tex\n\ @ifnottex\n\ ! @w{@code{1 - erf (@var{z})}}.\n\ @end ifnottex\n\ @seealso{erfcx, erf, erfinv}\n\ @end deftypefn") *************** *** 671,680 **** @deftypefn {Mapping Function} {} erfcx (@var{z})\n\ Compute the scaled complementary error function,\n\ @tex\n\ ! $z^2 (1 - {\\rm erf} (z))$.\n\ @end tex\n\ @ifnottex\n\ ! @code{z^2*(1 - erf (@var{z}))}.\n\ @end ifnottex\n\ @seealso{erfc, erf, erfinv}\n\ @end deftypefn") --- 672,687 ---- @deftypefn {Mapping Function} {} erfcx (@var{z})\n\ Compute the scaled complementary error function,\n\ @tex\n\ ! $$\n\ ! e^{z^2} {\\rm erfc} (z) \\equiv e^{z^2} (1 - {\\rm erf} (z))\n\ ! $$\n\ @end tex\n\ @ifnottex\n\ ! \n\ ! @example\n\ ! exp (z^2) * erfc (x)\n\ ! @end example\n\ ! \n\ @end ifnottex\n\ @seealso{erfc, erf, erfinv}\n\ @end deftypefn") *************** *** 879,889 **** \n\ @example\n\ @group\n\ ! infinity\n\ ! /\n\ gamma (z) = | t^(z-1) exp (-t) dt.\n\ ! /\n\ ! t=0\n\ @end group\n\ @end example\n\ \n\ --- 886,897 ---- \n\ @example\n\ @group\n\ ! @c spacing appears odd here, but is correct after Makeinfo\n\ ! infinity\n\ ! /\n\ gamma (z) = | t^(z-1) exp (-t) dt.\n\ ! /\n\ ! t=0\n\ @end group\n\ @end example\n\ \n\ *************** *** 1114,1120 **** "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} islower (@var{s})\n\ Return a logical array which is true where the elements of @var{s} are\n\ ! lower case letters and false where they are not.\n\ @seealso{isupper, isalpha, isletter, isalnum}\n\ @end deftypefn") { --- 1122,1128 ---- "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} islower (@var{s})\n\ Return a logical array which is true where the elements of @var{s} are\n\ ! lowercase letters and false where they are not.\n\ @seealso{isupper, isalpha, isletter, isalnum}\n\ @end deftypefn") { *************** *** 1266,1272 **** "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} isupper (@var{s})\n\ Return a logical array which is true where the elements of @var{s} are\n\ ! upper case letters and false where they are not.\n\ @seealso{islower, isalpha, isletter, isalnum}\n\ @end deftypefn") { --- 1274,1280 ---- "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} isupper (@var{s})\n\ Return a logical array which is true where the elements of @var{s} are\n\ ! uppercase letters and false where they are not.\n\ @seealso{islower, isalpha, isletter, isalnum}\n\ @end deftypefn") { *************** *** 1781,1788 **** "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} tolower (@var{s})\n\ @deftypefnx {Mapping Function} {} lower (@var{s})\n\ ! Return a copy of the string or cell string @var{s}, with each upper-case\n\ ! character replaced by the corresponding lower-case one; non-alphabetic\n\ characters are left unchanged. For example:\n\ \n\ @example\n\ --- 1789,1796 ---- "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} tolower (@var{s})\n\ @deftypefnx {Mapping Function} {} lower (@var{s})\n\ ! Return a copy of the string or cell string @var{s}, with each uppercase\n\ ! character replaced by the corresponding lowercase one; non-alphabetic\n\ characters are left unchanged. For example:\n\ \n\ @example\n\ *************** *** 1825,1834 **** DEFUNX ("toupper", Ftoupper, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} toupper (@var{s})\n\ ! @deftypefnx {Built-in Function} {} upper (@var{s})\n\ ! Return a copy of the string or cell string @var{s}, with each lower-case\n\ ! character replaced by the corresponding upper-case one; non-alphabetic\n\ characters are left unchanged. For example:\n\ \n\ @example\n\ --- 1833,1842 ---- DEFUNX ("toupper", Ftoupper, args, , "-*- texinfo -*-\n\ ! @deftypefn {Mapping Function} {} toupper (@var{s})\n\ ! @deftypefnx {Mapping Function} {} upper (@var{s})\n\ ! Return a copy of the string or cell string @var{s}, with each lowercase\n\ ! character replaced by the corresponding uppercase one; non-alphabetic\n\ characters are left unchanged. For example:\n\ \n\ @example\n\ diff -cNr octave-3.4.0/src/mex.cc octave-3.4.1/src/mex.cc *** octave-3.4.0/src/mex.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/mex.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 333,338 **** --- 333,340 ---- if (! retval) retval = new mxArray_octave_value (*this); + + return retval; } ~mxArray_octave_value (void) diff -cNr octave-3.4.0/src/mkoctfile.cc.in octave-3.4.1/src/mkoctfile.cc.in *** octave-3.4.0/src/mkoctfile.cc.in 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/src/mkoctfile.cc.in 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,778 ---- + /* + + Copyright (C) 2008-2011 Michael Goffioul + + This file is part of Octave. + + Octave 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. + + Octave 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 Octave; see the file COPYING. If not, see + . + + */ + + #if defined (HAVE_CONFIG_H) + #include + #endif + + #include + #include + #include + #include + #include + #include + #include + #include + + #if defined (__WIN32__) && ! defined (_POSIX_VERSION) + #include + #ifdef _MSC_VER + #define popen _popen + #define pclose _pclose + #endif + #endif + + using namespace std; + + static bool initialized = false; + static map vars; + + static string OCTAVE_VERSION = %OCTAVE_CONF_VERSION%; + + static std::string + substitute_prefix (const std::string& s, const std::string& prefix, + const std::string& new_prefix) + { + std::string retval = s; + + if (!prefix.empty () && new_prefix != prefix) + { + int len = prefix.length (); + if (retval.find (prefix) == 0) + retval.replace (0, len, new_prefix); + } + + #if defined (__WIN32__) && ! defined (_POSIX_VERSION) + std::replace (retval.begin (), retval.end (), '/', '\\'); + #endif + + return retval; + } + + static string + get_line (FILE *fp) + { + static vector buf (100); + int idx = 0; + char c; + + while (true) + { + c = static_cast (fgetc (fp)); + if (c == '\n' || c == EOF) + break; + if (buf.size () <= idx) + buf.resize (buf.size () + 100); + buf[idx++] = c; + } + if (idx == 0) + return string (""); + else + return string (&buf[0], idx); + } + + + static string + get_variable (const char *name, const string& defval) + { + const char *val = getenv (name); + if (val == NULL || val[0] == '\0') + return defval; + else + return string (val); + } + + static string + quote_path (const string& s) + { + if (s.find (' ') != string::npos && s[0] != '"') + return "\"" + s + "\""; + else + return s; + } + + static void + initialize (void) + { + if (initialized) + return; + + initialized = true; + + vars["OCTAVE_HOME"] = get_variable ("OCTAVE_HOME", ""); + + #if defined (__WIN32__) && ! defined (_POSIX_VERSION) + int n = 1024; + + std::string bin_dir (n, '\0'); + + while (true) + { + int status = GetModuleFileName (0, &bin_dir[0], n); + + if (status < n) + { + bin_dir.resize (status); + break; + } + else + { + n *= 2; + bin_dir.resize (n); + } + } + + if (! bin_dir.empty ()) + { + size_t pos = bin_dir.rfind ("\\bin\\"); + + if (pos != string::npos) + vars["OCTAVE_HOME"] = bin_dir.substr (0, pos); + } + #endif + + vars["SED"] = get_variable ("SED", %OCTAVE_CONF_SED%); + + vars["OCTAVE_PREFIX"] = %OCTAVE_CONF_PREFIX%; + + std::string DEFAULT_OCTINCLUDEDIR = %OCTAVE_CONF_OCTINCLUDEDIR%; + std::string DEFAULT_INCLUDEDIR = %OCTAVE_CONF_INCLUDEDIR%; + std::string DEFAULT_LIBDIR = %OCTAVE_CONF_LIBDIR%; + std::string DEFAULT_OCTLIBDIR = %OCTAVE_CONF_OCTLIBDIR%; + + if (! vars["OCTAVE_HOME"].empty ()) + { + DEFAULT_OCTINCLUDEDIR + = substitute_prefix (DEFAULT_OCTINCLUDEDIR, vars["OCTAVE_PREFIX"], + vars["OCTAVE_HOME"]); + + DEFAULT_INCLUDEDIR + = substitute_prefix (DEFAULT_INCLUDEDIR, vars["OCTAVE_PREFIX"], + vars["OCTAVE_HOME"]); + + DEFAULT_LIBDIR + = substitute_prefix (DEFAULT_LIBDIR, vars["OCTAVE_PREFIX"], + vars["OCTAVE_HOME"]); + + DEFAULT_OCTLIBDIR + = substitute_prefix (DEFAULT_OCTLIBDIR, vars["OCTAVE_PREFIX"], + vars["OCTAVE_HOME"]); + } + + vars["OCTINCLUDEDIR"] = get_variable ("OCTINCLUDEDIR", DEFAULT_OCTINCLUDEDIR); + vars["INCLUDEDIR"] = get_variable ("INCLUDEDIR", DEFAULT_INCLUDEDIR); + vars["LIBDIR"] = get_variable ("LIBDIR", DEFAULT_LIBDIR); + vars["OCTLIBDIR"] = get_variable ("OCTLIBDIR", DEFAULT_OCTLIBDIR); + + #if defined (__WIN32__) && ! defined (_POSIX_VERSION) + std::string DEFAULT_INCFLAGS + = "-I" + quote_path (vars["OCTINCLUDEDIR"] + "\\..") + + " -I" + quote_path (vars["OCTINCLUDEDIR"]); + #else + std::string DEFAULT_INCFLAGS + = "-I" + quote_path (vars["OCTINCLUDEDIR"] + "/..") + + " -I" + quote_path (vars["OCTINCLUDEDIR"]); + #endif + if (vars["INCLUDEDIR"] != "/usr/include") + DEFAULT_INCFLAGS += " -I" + quote_path (vars["INCLUDEDIR"]); + + std::string DEFAULT_LFLAGS = "-L" + quote_path (vars["OCTLIBDIR"]); + if (vars["LIBDIR"] != "/usr/lib") + DEFAULT_LFLAGS += " -L" + quote_path (vars["LIBDIR"]); + + vars["CPPFLAGS"] = get_variable ("CPPFLAGS", %OCTAVE_CONF_CPPFLAGS%); + vars["INCFLAGS"] = get_variable ("INCFLAGS", DEFAULT_INCFLAGS); + vars["F77"] = get_variable ("F77", %OCTAVE_CONF_F77%); + vars["FFLAGS"] = get_variable ("FFLAGS", %OCTAVE_CONF_FFLAGS%); + vars["FPICFLAG"] = get_variable ("FPICFLAG", %OCTAVE_CONF_FPICFLAG%); + vars["CC"] = get_variable ("CC", %OCTAVE_CONF_CC%); + vars["CFLAGS"] = get_variable ("CFLAGS", %OCTAVE_CONF_CFLAGS%); + vars["CPICFLAG"] = get_variable ("CPICFLAG", %OCTAVE_CONF_CPICFLAG%); + vars["CXX"] = get_variable ("CXX", %OCTAVE_CONF_CXX%); + vars["CXXFLAGS"] = get_variable ("CXXFLAGS", %OCTAVE_CONF_CXXFLAGS%); + vars["CXXPICFLAG"] = get_variable ("CXXPICFLAG", %OCTAVE_CONF_CXXPICFLAG%); + vars["XTRA_CFLAGS"] = get_variable ("XTRA_CFLAGS", %OCTAVE_CONF_XTRA_CFLAGS%); + vars["XTRA_CXXFLAGS"] = get_variable ("XTRA_CXXFLAGS", %OCTAVE_CONF_XTRA_CXXFLAGS%); + + vars["DEPEND_FLAGS"] = get_variable ("DEPEND_FLAGS", %OCTAVE_CONF_DEPEND_FLAGS%); + vars["DEPEND_EXTRA_SED_PATTERN"] = get_variable ("DEPEND_EXTRA_SED_PATTERN", %OCTAVE_CONF_DEPEND_EXTRA_SED_PATTERN%); + + vars["DL_LD"] = get_variable ("DL_LD", %OCTAVE_CONF_DL_LD%); + vars["DL_LDFLAGS"] = get_variable ("DL_LDFLAGS", %OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS%); + + vars["RLD_FLAG"] = get_variable ("RLD_FLAG", %OCTAVE_CONF_RLD_FLAG%); + vars["RDYNAMIC_FLAG"] = get_variable ("RDYNAMIC_FLAG", %OCTAVE_CONF_RDYNAMIC_FLAG%); + vars["LIBOCTAVE"] = "-loctave"; + vars["LIBOCTINTERP"] = "-loctinterp"; + vars["READLINE_LIBS"] = "-lreadline"; + vars["LIBCRUFT"] = "-lcruft"; + vars["LAPACK_LIBS"] = get_variable ("LAPACK_LIBS", %OCTAVE_CONF_LAPACK_LIBS%); + vars["BLAS_LIBS"] = get_variable ("BLAS_LIBS", %OCTAVE_CONF_BLAS_LIBS%); + vars["FFTW3_LDFLAGS"] = get_variable ("FFTW3_LDFLAGS", %OCTAVE_CONF_FFTW3_LDFLAGS%); + vars["FFTW3_LIBS"] = get_variable ("FFTW3_LIBS", %OCTAVE_CONF_FFTW3_LIBS%); + vars["FFTW3F_LDFLAGS"] = get_variable ("FFTW3F_LDFLAGS", %OCTAVE_CONF_FFTW3F_LDFLAGS%); + vars["FFTW3F_LIBS"] = get_variable ("FFTW3F_LIBS", %OCTAVE_CONF_FFTW3F_LIBS%); + vars["LIBS"] = get_variable ("LIBS", %OCTAVE_CONF_LIBS%); + vars["FLIBS"] = get_variable ("FLIBS", %OCTAVE_CONF_FLIBS%); + vars["LD_CXX"] = get_variable ("LD_CXX", %OCTAVE_CONF_LD_CXX%); + vars["LDFLAGS"] = get_variable ("LDFLAGS", %OCTAVE_CONF_LDFLAGS%); + vars["LD_STATIC_FLAG"] = get_variable ("LD_STATIC_FLAG", %OCTAVE_CONF_LD_STATIC_FLAG%); + vars["LFLAGS"] = get_variable ("LFLAGS", DEFAULT_LFLAGS); + vars["F77_INTEGER8_FLAG"] = get_variable ("F77_INTEGER8_FLAG", %OCTAVE_CONF_F77_INTEGER_8_FLAG%); + + vars["ALL_FFLAGS"] = vars["FFLAGS"] + " " + vars["F77_INTEGER8_FLAG"]; + + vars["ALL_CFLAGS"] = vars["INCFLAGS"] + " " + vars["XTRA_CFLAGS"] + + " " + vars["CFLAGS"]; + + vars["ALL_CXXFLAGS"] = vars["INCFLAGS"] + " " + vars["XTRA_CXXFLAGS"] + + " " + vars["CXXFLAGS"]; + + vars["ALL_LDFLAGS"] = vars["LD_STATIC_FLAG"] + " " + vars["CPICFLAG"] + + " " + vars["LDFLAGS"]; + + vars["OCTAVE_LIBS"] = vars["LIBOCTINTERP"] + " " + vars["LIBOCTAVE"] + + " " + vars["SPECIAL_MATH_LIB"] + " " + vars["LIBCRUFT"]; + + vars["FFTW_LIBS"] = vars["FFTW3_LDFLAGS"] + " " + vars["FFTW3_LIBS"] + + " " + vars["FFTW3F_LDFLAGS"] + " " + vars["FFTW3F_LIBS"]; + } + + static string usage_msg = "usage: mkoctfile [options] file ..."; + static string version_msg = "mkoctfile, version " + OCTAVE_VERSION; + static bool debug = false; + static string help_msg = + "\n" + "Options:\n" + "\n" + " -h, -?, --help Print this message.\n" + "\n" + " -IDIR Add -IDIR to compile commands.\n" + "\n" + " -idirafter DIR Add -idirafter DIR to compile commands.\n" + "\n" + " -DDEF Add -DDEF to compile commands.\n" + "\n" + " -lLIB Add library LIB to link command.\n" + "\n" + " -LDIR Add -LDIR to link command.\n" + "\n" + " -M, --depend Generate dependency files (.d) for C and C++\n" + " source files.\n" + "\n" + " -RDIR Add -RDIR to link command.\n" + "\n" + " -Wl,... Pass flags though the linker like -Wl,-rpath=...\n" + "\n" + " -W... Pass flags though the compiler like -Wa,OPTION.\n" + "\n" + " -c, --compile Compile, but do not link.\n" + "\n" + " -o FILE, --output FILE Output file name. Default extension is .oct\n" + " (or .mex if --mex is specified) unless linking\n" + " a stand-alone executable.\n" + "\n" + " -g Enable debugging options for compilers.\n" + "\n" + " -p VAR, --print VAR Print configuration variable VAR. Recognized\n" + " variables are:\n" + "\n" + " ALL_CFLAGS FLIBS\n" + " ALL_CXXFLAGS FPICFLAG\n" + " ALL_FFLAGS INCFLAGS\n" + " ALL_LDFLAGS LAPACK_LIBS\n" + " BLAS_LIBS LDFLAGS\n" + " CC LD_CXX\n" + " CFLAGS LD_STATIC_FLAG\n" + " CPICFLAG LFLAGS\n" + " CPPFLAGS LIBCRUFT\n" + " CXX LIBOCTAVE\n" + " CXXFLAGS LIBOCTINTERP\n" + " CXXPICFLAG LIBS\n" + " DEPEND_EXTRA_SED_PATTERN OCTAVE_LIBS\n" + " DEPEND_FLAGS RDYNAMIC_FLAG\n" + " DL_LD READLINE_LIBS\n" + " DL_LDFLAGS RLD_FLAG\n" + " F77 SED\n" + " FFLAGS XTRA_CFLAGS\n" + " FFTW_LIBS XTRA_CXXFLAGS\n" + "\n" + " --link-stand-alone Link a stand-alone executable file.\n" + "\n" + " --mex Assume we are creating a MEX file. Set the\n" + " default output extension to \".mex\".\n" + "\n" + " -s, --strip Strip output file.\n" + "\n" + " -v, --verbose Echo commands as they are executed.\n" + "\n" + " FILE Compile or link FILE. Recognized file types are:\n" + "\n" + " .c C source\n" + " .cc C++ source\n" + " .C C++ source\n" + " .cpp C++ source\n" + " .f Fortran source (fixed form)\n" + " .F Fortran source (fixed form)\n" + " .f90 Fortran source (free form)\n" + " .F90 Fortran source (free form)\n" + " .o object file\n" + " .a library file\n" + #ifdef _MSC_VER + " .lib library file\n" + #endif + "\n"; + + static string + basename (const string& s, bool strip_path = false) + { + size_t pos = s.rfind ('.'); + string retval; + + if (pos == string::npos) + retval = s; + else + retval = s.substr (0, pos); + if (strip_path) + { + size_t p1 = retval.rfind ('/'), p2 = retval.rfind ('\\'); + pos = (p1 != string::npos && p2 != string::npos + ? max (p1, p2) : (p2 != string::npos ? p2 : p1)); + if (pos != string::npos) + retval = retval.substr (0, pos); + } + return retval; + } + + inline bool + starts_with (const string& s, const string& prefix) + { + return (s.length () >= prefix.length () && s.find (prefix) == 0); + } + + inline bool + ends_with (const string& s, const string& suffix) + { + return (s.length () >= suffix.length () + && s.rfind (suffix) == s.length () - suffix.length ()); + } + + static int + run_command (const string& cmd) + { + if (debug) + cout << cmd << endl; + return system (cmd.c_str ()); + } + + int + main (int argc, char **argv) + { + initialize (); + + string file, output_option; + list cfiles, ccfiles, f77files; + int result = 0; + + string objfiles = ""; + string libfiles = ""; + string octfile = ""; + string outputfile = ""; + string incflags = ""; + string defs = ""; + string ldflags = ""; + string pass_on_options = ""; + bool strip = false; + bool no_oct_file_strip_on_this_platform = %NO_OCT_FILE_STRIP%; + bool link = true; + bool link_stand_alone = false; + string output_ext = ".oct"; + bool depend = false; + bool compile = true; + + if (argc == 1) + { + cout << usage_msg << endl; + return 1; + } + + if (argc == 2 && (!strcmp (argv[1], "-v") + || !strcmp (argv[1], "-version") + || !strcmp (argv[1], "--version"))) + { + cout << version_msg << endl; + return 0; + } + + for (int i = 1; i < argc; i++) + { + string arg = argv[i]; + size_t len = arg.length (); + + if (ends_with (arg, ".c")) + { + file = arg; + cfiles.push_back (file); + } + else if (ends_with (arg, ".cc") || ends_with (arg, ".C") + || ends_with (arg, ".cpp")) + { + file = arg; + ccfiles.push_back (file); + } + else if (ends_with (arg, ".f") || ends_with (arg, ".F") + || ends_with (arg, "f90") || ends_with (arg, ".F90")) + { + file = arg; + f77files.push_back (file); + } + else if (ends_with (arg, ".o") || ends_with (arg, ".obj")) + { + file = arg; + objfiles += (" " + quote_path (arg)); + } + else if (ends_with (arg, ".lib") || ends_with (arg, ".a")) + { + file = arg; + libfiles += (" " + quote_path (arg)); + } + else if (arg == "-d" || arg == "-debug" || arg == "--debug" + || arg == "-v" || arg == "-verbose" || arg == "--verbose") + { + debug = true; + if (vars["CC"] == "cc-msvc") + vars["CC"] += " -d"; + if (vars["CXX"] == "cc-msvc") + vars["CXX"] += " -d"; + if (vars["DL_LD"] == "cc-msvc") + vars["DL_LD"] += " -d"; + } + else if (arg == "-h" || arg == "-?" || arg == "-help" || arg == "--help") + { + cout << usage_msg << endl; + cout << help_msg << endl; + return 0; + } + else if (starts_with (arg, "-I")) + { + incflags += (" " + quote_path (arg)); + } + else if (arg == "-idirafter") + { + if (i < argc-1) + { + arg = argv[++i]; + incflags += (" -idirafter " + arg); + } + else + cerr << "mkoctfile: include directory name missing" << endl; + } + else if (starts_with (arg, "-D")) + { + defs += (" " + arg); + } + else if (starts_with (arg, "-Wl,") || starts_with (arg, "-l") + || starts_with (arg, "-L") || starts_with (arg, "-R")) + { + ldflags += (" " + arg); + } + else if (arg == "-M" || arg == "-depend" || arg == "--depend") + { + depend = true; + compile = false; + } + else if (arg == "-o" || arg == "-output" || arg == "--output") + { + if (i < argc-1) + { + arg = argv[++i]; + outputfile = arg; + } + else + cerr << "mkoctfile: output file name missing" << endl; + } + else if (arg == "-p" || arg == "-print" || arg == "--print") + { + if (i < argc-1) + { + arg = argv[++i]; + cout << vars[arg] << endl; + return 0; + } + else + cerr << "mkoctfile: --print requires argument" << endl; + } + else if (arg == "-s" || arg == "-strip" || arg == "--strip") + { + if (no_oct_file_strip_on_this_platform) + cerr << "mkoctfile: stripping disabled on this platform" << endl; + else + strip = true; + } + else if (arg == "-c" || arg == "-compile" || arg == "--compile") + { + link = false; + } + else if (arg == "-g") + { + vars["ALL_CFLAGS"] += " -g"; + vars["ALL_CXXFLAGS"] += " -g"; + vars["ALL_FFLAGS"] += " -g"; + } + else if (arg == "-link-stand-alone" || arg == "--link-stand-alone") + { + link_stand_alone = true; + } + else if (arg == "-mex" || arg == "--mex") + { + incflags += " -I."; + #ifdef _MSC_VER + ldflags += " -Wl,-export:mexFunction"; + #endif + output_ext = ".mex"; + } + else if (starts_with (arg, "-W")) + { + pass_on_options += (" " + arg); + } + else + { + cerr << "mkoctfile: unrecognized argument " << arg; + return 1; + } + + if (!file.empty () && octfile.empty ()) + octfile = file; + } + + if (link_stand_alone) + { + if (!outputfile.empty ()) + output_option = "-o " + outputfile; + } + else + { + if (!outputfile.empty ()) + { + octfile = outputfile; + size_t len = octfile.length (); + size_t len_ext = output_ext.length (); + if (octfile.substr (len-len_ext) != output_ext) + octfile += output_ext; + } + else + octfile = basename (octfile, true) + output_ext; + } + + list::const_iterator it; + + if (depend) + { + for (it = cfiles.begin (); it != cfiles.end (); ++it) + { + string f = *it, dfile = basename (f, true) + ".d", line; + + unlink (dfile.c_str ()); + string cmd = vars["CC"] + " " + vars["DEPEND_FLAGS"] + " " + + vars["CPPFLAGS"] + " " + vars["ALL_CFLAGS"] + " " + + incflags + " " + defs + " " + quote_path (f); + + FILE *fd = popen (cmd.c_str (), "r"); + ofstream fo (dfile.c_str ()); + int pos; + while (!feof (fd)) + { + line = get_line (fd); + if ((pos = line.rfind (".o:")) != string::npos) + { + int spos = line.rfind ('/', pos); + string ofile = (spos == string::npos ? line.substr (0, pos+2) : line.substr (spos+1, pos-spos+1)); + fo << "pic/" << ofile << " " << ofile << " " << dfile << line.substr (pos) << endl; + } + else + fo << line << endl; + } + pclose (fd); + fo.close (); + } + + for (it = ccfiles.begin (); it != ccfiles.end (); ++it) + { + string f = *it, dfile = basename (f, true) + ".d", line; + + unlink (dfile.c_str ()); + string cmd = vars["CC"] + " " + vars["DEPEND_FLAGS"] + " " + + vars["CPPFLAGS"] + " " + vars["ALL_CXXFLAGS"] + " " + + incflags + " " + defs + " " + quote_path (f); + + FILE *fd = popen (cmd.c_str (), "r"); + ofstream fo (dfile.c_str ()); + int pos; + while (!feof (fd)) + { + line = get_line (fd); + if ((pos = line.rfind (".o:")) != string::npos) + { + int spos = line.rfind ('/', pos); + string ofile = (spos == string::npos ? line.substr (0, pos+2) : line.substr (spos+1, pos-spos+1)); + fo << "pic/" << ofile << " " << ofile << " " << dfile << line.substr (pos+2) << endl; + } + else + fo << line << endl; + } + pclose (fd); + fo.close (); + } + + return 0; + } + + for (it = f77files.begin (); it != f77files.end (); ++it) + { + string f = *it, b = basename (f, true); + if (!vars["F77"].empty ()) + { + string o; + if (!outputfile.empty ()) + { + if (link) + o = b + ".o"; + else + o = outputfile; + } + else + o = b + ".o"; + objfiles += (" " + o); + string cmd = vars["F77"] + " -c " + vars["FPICFLAG"] + " " + + vars["ALL_FFLAGS"] + " " + incflags + " " + defs + " " + + pass_on_options + " " + f + " -o " + o; + result = run_command (cmd); + } + else + { + cerr << "mkoctfile: no way to compile Fortran file " << f << endl; + return 1; + } + } + + for (it = cfiles.begin (); it != cfiles.end (); ++it) + { + string f = *it; + if (!vars["CC"].empty ()) + { + string b = basename (f, true), o; + if (!outputfile.empty ()) + { + if (link) + o = b + ".o"; + else + o = outputfile; + } + else + o = b + ".o"; + objfiles += (" " + o); + string cmd = vars["CC"] + " -c " + vars["CPPFLAGS"] + " " + + vars["CPICFLAG"] + " " + vars["ALL_CFLAGS"] + " " + + pass_on_options + " " + incflags + " " + defs + " " + + quote_path (f) + " -o " + quote_path (o); + result = run_command (cmd); + } + else + { + cerr << "mkoctfile: no way to compile C file " << f << endl; + return 1; + } + } + + for (it = ccfiles.begin (); it != ccfiles.end (); ++it) + { + string f = *it; + if (!vars["CXX"].empty ()) + { + string b = basename (f, true), o; + if (!outputfile.empty ()) + { + if (link) + o = b + ".o"; + else + o = outputfile; + } + else + o = b + ".o"; + objfiles += (" " + o); + string cmd = vars["CXX"] + " -c " + vars["CPPFLAGS"] + " " + + vars["CXXPICFLAG"] + " " + vars["ALL_CXXFLAGS"] + " " + + pass_on_options + " " + incflags + " " + defs + " " + + quote_path (f) + " -o " + quote_path (o); + result = run_command (cmd); + } + else + { + cerr << "mkoctfile: no way to compile C++ file " << f << endl; + return 1; + } + } + + if (link && !objfiles.empty ()) + { + if (link_stand_alone) + { + if (!vars["LD_CXX"].empty ()) + { + string cmd = vars["LD_CXX"] + " " + vars["CPPFLAGS"] + " " + + vars["ALL_CXXFLAGS"] + " " + vars["RDYNAMIC_FLAG"] + + " " + vars["ALL_LDFLAGS"] + " " + pass_on_options + + " " + output_option + " " + objfiles + " " + libfiles + + " " + ldflags + " " + vars["LFLAGS"] + " " + + vars["RLD_FLAG"] + " " + vars["OCTAVE_LIBS"] + " " + + vars["LAPACK_LIBS"] + " " + vars["BLAS_LIBS"] + " " + + vars["FFTW_LIBS"] + " " + vars["READLINE_LIBS"] + " " + + vars["LIBS"] + " " + vars["FLIBS"]; + result = run_command (cmd); + } + else + { + cerr << "mkoctfile: no way to link stand-alone executable file" + << endl; + return 1; + } + } + else + { + string LINK_DEPS = vars["LFLAGS"] + " " + vars["OCTAVE_LIBS"] + + " " + vars["LDFLAGS"] + " " + vars["BLAS_LIBS"] + " " + + vars["FFTW_LIBS"] + " " + vars["LIBS"] + " " + vars["FLIBS"]; + string cmd = vars["DL_LD"] + " " + vars["DL_LDFLAGS"] + " " + + pass_on_options + " -o " + octfile + " " + objfiles + " " + + libfiles + " " + ldflags + " " + LINK_DEPS; + result = run_command (cmd); + } + + if (strip) + { + string cmd = "strip " + octfile; + result = run_command (cmd); + } + } + + return result; + } diff -cNr octave-3.4.0/src/mkoctfile.in octave-3.4.1/src/mkoctfile.in *** octave-3.4.0/src/mkoctfile.in 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/src/mkoctfile.in 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,555 ---- + #! /bin/sh + ## + ## mkoctfile -- create a .oct file suitable for dynamic linking by + ## Octave. + ## + ## Copyright (C) 1996-2011 John W. Eaton + ## + ## This file is part of Octave. + ## + ## Octave 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. + ## + ## Octave 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 Octave; see the file COPYING. If not, see + ## . + + # Exit immediately on any error. + + set -e + + : ${SED=%OCTAVE_CONF_SED%} + + OCTAVE_VERSION=%OCTAVE_CONF_VERSION% + OCTAVE_PREFIX=%OCTAVE_CONF_PREFIX% + + DEFAULT_BINDIR=%OCTAVE_BINDIR% + DEFAULT_INCLUDEDIR=%OCTAVE_CONF_INCLUDEDIR% + DEFAULT_LIBDIR=%OCTAVE_CONF_LIBDIR% + DEFAULT_OCTINCLUDEDIR=%OCTAVE_CONF_OCTINCLUDEDIR% + DEFAULT_OCTLIBDIR=%OCTAVE_CONF_OCTLIBDIR% + + if [ -n "$OCTAVE_HOME" ]; then + DEFAULT_BINDIR="`echo $DEFAULT_BINDIR | $SED "s,^$OCTAVE_PREFIX,$OCTAVE_HOME,"`" + DEFAULT_INCLUDEDIR="`echo $DEFAULT_INCLUDEDIR | $SED "s,^$OCTAVE_PREFIX,$OCTAVE_HOME,"`" + DEFAULT_LIBDIR="`echo $DEFAULT_LIBDIR | $SED "s,^$OCTAVE_PREFIX,$OCTAVE_HOME,"`" + DEFAULT_OCTINCLUDEDIR="`echo $DEFAULT_OCTINCLUDEDIR | $SED "s,^$OCTAVE_PREFIX,$OCTAVE_HOME,"`" + DEFAULT_OCTLIBDIR="`echo $DEFAULT_OCTLIBDIR | $SED "s,^$OCTAVE_PREFIX,$OCTAVE_HOME,"`" + fi + + : ${BINDIR=$DEFAULT_BINDIR} + : ${INCLUDEDIR=$DEFAULT_INCLUDEDIR} + : ${LIBDIR=$DEFAULT_LIBDIR} + : ${OCTINCLUDEDIR=$DEFAULT_OCTINCLUDEDIR} + : ${OCTLIBDIR=$DEFAULT_OCTLIBDIR} + + DEFAULT_INCFLAGS="-I$OCTINCLUDEDIR/.. -I$OCTINCLUDEDIR" + if [ "$INCLUDEDIR" != /usr/include ]; then + DEFAULT_INCFLAGS="$DEFAULT_INCFLAGS -I$INCLUDEDIR" + fi + + DEFAULT_LFLAGS="-L$OCTLIBDIR" + if [ "$LIBDIR" != /usr/lib ]; then + DEFAULT_LFLAGS="$DEFAULT_LFLAGS -L$LIBDIR" + fi + + # Default values for these variables are filled in when Octave is + # compiled. + + : ${EXEEXT=%OCTAVE_CONF_EXEEXT%} + + : ${CPPFLAGS=%OCTAVE_CONF_CPPFLAGS%} + : ${INCFLAGS=$DEFAULT_INCFLAGS} + : ${F77=%OCTAVE_CONF_F77%} + : ${FFLAGS=%OCTAVE_CONF_FFLAGS%} + : ${FPICFLAG=%OCTAVE_CONF_FPICFLAG%} + : ${CC=%OCTAVE_CONF_CC%} + : ${CFLAGS=%OCTAVE_CONF_CFLAGS%} + : ${CPICFLAG=%OCTAVE_CONF_CPICFLAG%} + : ${CXX=%OCTAVE_CONF_CXX%} + : ${CXXFLAGS=%OCTAVE_CONF_CXXFLAGS%} + : ${CXXPICFLAG=%OCTAVE_CONF_CXXPICFLAG%} + : ${XTRA_CFLAGS=%OCTAVE_CONF_XTRA_CFLAGS%} + : ${XTRA_CXXFLAGS=%OCTAVE_CONF_XTRA_CXXFLAGS%} + + : ${DEPEND_FLAGS=%OCTAVE_CONF_DEPEND_FLAGS%} + : ${DEPEND_EXTRA_SED_PATTERN=%OCTAVE_CONF_DEPEND_EXTRA_SED_PATTERN%} + + : ${DL_LD=%OCTAVE_CONF_DL_LD%} + : ${DL_LDFLAGS=%OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS%} + + : ${RLD_FLAG=%OCTAVE_CONF_RLD_FLAG%} + : ${RDYNAMIC_FLAG=%OCTAVE_CONF_RDYNAMIC_FLAG%} + : ${LIBOCTAVE=-loctave} + : ${LIBOCTINTERP=-loctinterp} + : ${READLINE_LIBS=-lreadline} + : ${LIBCRUFT=-lcruft} + : ${LAPACK_LIBS=%OCTAVE_CONF_LAPACK_LIBS%} + : ${BLAS_LIBS=%OCTAVE_CONF_BLAS_LIBS%} + : ${FFTW3_LDFLAGS=%OCTAVE_CONF_FFTW3_LDFLAGS%} + : ${FFTW3_LIBS=%OCTAVE_CONF_FFTW3_LIBS%} + : ${FFTW3F_LDFLAGS=%OCTAVE_CONF_FFTW3F_LDFLAGS%} + : ${FFTW3F_LIBS=%OCTAVE_CONF_FFTW3F_LIBS%} + : ${LIBS=%OCTAVE_CONF_LIBS%} + : ${FLIBS=%OCTAVE_CONF_FLIBS%} + : ${LD_CXX=%OCTAVE_CONF_LD_CXX%} + : ${LDFLAGS=%OCTAVE_CONF_LDFLAGS%} + : ${LD_STATIC_FLAG=%OCTAVE_CONF_LD_STATIC_FLAG%} + : ${LFLAGS=$DEFAULT_LFLAGS} + : ${F77_INTEGER_8_FLAG=%OCTAVE_CONF_F77_INTEGER_8_FLAG%} + + : ${ALL_FFLAGS="$FFLAGS $F77_INTEGER_8_FLAG"} + + : ${ALL_CFLAGS="$INCFLAGS $XTRA_CFLAGS $CFLAGS"} + + : ${ALL_CXXFLAGS="$INCFLAGS $XTRA_CXXFLAGS $CXXFLAGS"} + + : ${ALL_LDFLAGS="$LD_STATIC_FLAG $CPICFLAG $LDFLAGS"} + + : ${OCTAVE_LIBS="$LIBOCTINTERP $LIBOCTAVE $SPECIAL_MATH_LIB $LIBCRUFT"} + + # Local variables. + + FFTW_LIBS="$FFTW3_LDFLAGS $FFTW3_LIBS $FFTW3F_LDFLAGS $FFTW3F_LIBS" + + usage_msg="usage: mkoctfile [options] file ..." + + version_msg="mkoctfile, version $OCTAVE_VERSION" + + cfiles= + ccfiles= + f77files= + objfiles= + libfiles= + octfiles= + octfile= + outputfile= + incflags= + defs= + ldflags= + dbg=: + pass_on_options= + strip=false + no_oct_file_strip_on_this_platform=%NO_OCT_FILE_STRIP% + link=true + link_stand_alone=false + output_ext=".oct" + depend=false + compile=true + + if [ $# -eq 0 ]; then + echo $usage_msg 1>&2 + exit 1 + fi + + if [ $# -eq 1 ]; then + case "$1" in + -v | -version | --version) + echo $version_msg 1>&2 + exit 0 + ;; + esac + fi + + while [ $# -gt 0 ]; do + file= + case "$1" in + *.c) + file=$1 + cfiles="$cfiles $file" + ;; + *.cc | *.C | *.cpp) + file=$1 + ccfiles="$ccfiles $file" + ;; + *.f | *.F | *.f90 | *.F90) + file=$1 + f77files="$f77files $file" + ;; + *.o) + file=$1 + objfiles="$objfiles $file" + ;; + *.a) + file=$1 + libfiles="$libfiles $file" + ;; + -d | -debug | --debug | -v | -verbose | --verbose) + dbg=echo + ;; + -h | -\? | -help | --help) + echo $usage_msg 1>&2 + cat << EOF + + Options: + + -h, -?, --help Print this message. + + -IDIR Add -IDIR to compile commands. + + -idirafter DIR Add -idirafter DIR to compile commands. + + -DDEF Add -DDEF to compile commands. + + -lLIB Add -lLIB to link command. + + -LDIR Add -LDIR to link command. + + -RDIR Add -RDIR to link command. + + -g Enable debugging option for all compilers. + + -pthread Add -pthread to link command. + + -W... Pass flags to the compiler such as -Wa,OPTION. + + -Wl,... Pass flags to the linker such as -Wl,-rpath=... + + -M, --depend Generate dependency files (.d) for C and C++ + source files. + + -c, --compile Compile, but do not link. + + --link-stand-alone Link a stand-alone executable file. + + -s, --strip Strip output file. + + --mex Create a MEX file. + Set the default output extension to ".mex". + + -o FILE, --output FILE Output file name. Default extension is .oct + (or .mex if --mex is specified) unless linking + a stand-alone executable. + + -p VAR, --print VAR Print configuration variable VAR. Recognized + variables are: + + ALL_CFLAGS FFTW3F_LDFLAGS + ALL_CXXFLAGS FFTW3F_LIBS + ALL_FFLAGS FLIBS + ALL_LDFLAGS FPICFLAG + BLAS_LIBS INCFLAGS + CC LAPACK_LIBS + CFLAGS LDFLAGS + CPICFLAG LD_CXX + CPPFLAGS LD_STATIC_FLAG + CXX LFLAGS + CXXFLAGS LIBCRUFT + CXXPICFLAG LIBOCTAVE + DEPEND_EXTRA_SED_PATTERN LIBOCTINTERP + DEPEND_FLAGS LIBS + DL_LD OCTAVE_LIBS + DL_LDFLAGS RDYNAMIC_FLAG + EXEEXT READLINE_LIBS + F77 RLD_FLAG + F77_INTEGER_8_FLAG SED + FFLAGS XTRA_CFLAGS + FFTW3_LDFLAGS XTRA_CXXFLAGS + FFTW3_LIBS + + -v, --verbose Echo commands as they are executed. + + FILE Compile or link FILE. Recognized file types are: + + .c C source + .cc C++ source + .C C++ source + .cpp C++ source + .f Fortran source (fixed form) + .F Fortran source (fixed form) + .f90 Fortran source (free form) + .F90 Fortran source (free form) + .o object file + .a library file + + EOF + exit 0 + ;; + -I*) + incflags="$incflags $1" + ;; + -idirafter) + shift + if [ $# -gt 0 ]; then + incflags="$incflags -idirafter $1" + else + echo "mkoctfile: include directory name missing" 1>&2 + fi + ;; + -D*) + defs="$defs $1" + ;; + -[lLR]* | -Wl,*) + ldflags="$ldflags $1" + ;; + -pthread) + ldflags="$ldflags $1" + ;; + -M | -depend | --depend) + depend=true + compile=false + ;; + -o | -ouput | --output) + shift + if [ $# -gt 0 ]; then + outputfile="$1" + else + echo "mkoctfile: output file name missing" 1>&2 + fi + ;; + -p | -print | --print) + shift + if [ $# -gt 0 ]; then + eval echo \${$1} + exit 0 + else + echo "mkoctfile: --print requires argument" 1>&2 + exit 1 + fi + ;; + -s | -strip | --strip) + if $no_oct_file_strip_on_this_platform; then + echo "mkoctfile: stripping disabled on this platform" 1>&2 + else + strip=true + fi + ;; + -c | -compile | --compile) + link=false + ;; + -g) + ALL_CFLAGS="$ALL_CFLAGS -g" + ALL_CXXFLAGS="$ALL_CXXFLAGS -g" + ALL_FFLAGS="$ALL_FFLAGS -g" + ;; + -link-stand-alone | --link-stand-alone) + link_stand_alone=true + ;; + -mex | --mex) + incflags="$incflags -I." + output_ext=".mex" + ;; + -W,*) + pass_on_options="$pass_on_options ${1:3}" + ;; + *) + echo "mkoctfile: unrecognized argument $1" 1>&2 + exit 1 + ;; + esac + if [ -n "$file" ]; then + if [ -z "$octfile" ]; then + octfile="$file" + fi + fi + shift + done + + if $link_stand_alone; then + if [ -n "$outputfile" ]; then + output_option="-o $outputfile" + fi + else + if [ -n "$outputfile" ]; then + octfile="$outputfile" + case "$octfile" in + *$output_ext) + ;; + *) + octfile="$octfile$output_ext" + ;; + esac + else + octfile=`basename $octfile` + octfile=`echo $octfile | $SED 's,\.[^.]*$,,'`$output_ext + fi + fi + + # Generate dependency files for C and C++ files. + + if $depend; then + if [ -n "$cfiles" ]; then + for f in $cfiles; do + b=`echo $f | $SED 's,\.c$,,'` + d=$b.d + cmd="rm -f $d" + $dbg $cmd + eval $cmd + cmd="$CC $DEPEND_FLAGS $CPPFLAGS $ALL_CFLAGS $incflags $def $f | $SED $DEPEND_EXTRA_SED_PATTERN -e 's,^[^:]*/\(.*\.o\):,\1:,' -e 's,$b\.o,pic/& & $d,g' > $d-t && mv $d-t $d" + $dbg $cmd + eval $cmd + done + fi + + if [ -n "$ccfiles" ]; then + for f in $ccfiles; do + case $f in + *.cc) + b=`echo $f | $SED 's,\.cc$,,'` + ;; + *.C) + b=`echo $f | $SED 's,\.C$,,'` + ;; + *.cpp) + b=`echo $f | $SED 's,\.cpp$,,'` + ;; + esac + d=$b.d + cmd="rm -f $d" + $dbg $cmd + eval $cmd + cmd="$CXX $DEPEND_FLAGS $CPPFLAGS $ALL_CXXFLAGS $incflags $defs $f | $SED $DEPEND_EXTRA_SED_PATTERN -e 's,^[^:]*/\(.*\.o\):,\1:,' -e 's,$b\.o,pic/& & $d,g' > $d-t && mv $d-t $d" + $dbg $cmd + eval $cmd + done + fi + # If generating dependencies, that's all we do. + exit 0 + fi + + # Compile Fortran, C, and C++ files. Add the name of each object file + # that is produced to the overall list of object files. + + if [ -n "$f77files" ]; then + for f in $f77files; do + case $f in + *.f) + b=`echo $f | $SED 's,.*/,,; s,\.f$,,'` + ;; + *.F) + b=`echo $f | $SED 's,.*/,,; s,\.F$,,'` + ;; + *.f90) + b=`echo $f | $SED 's,.*/,,; s,\.f90$,,'` + ;; + *.F90) + b=`echo $f | $SED 's,.*/,,; s,\.F90$,,'` + ;; + esac + if [ -n "$F77" ]; then + if [ -n "$outputfile" ]; then + if $link; then + o=$b.o + else + o=$outputfile + fi + else + o=$b.o + fi + objfiles="$objfiles $o" + cmd="$F77 -c $FPICFLAG $ALL_FFLAGS $incflags $defs $pass_on_options $f -o $o" + $dbg $cmd + eval $cmd + else + echo "mkoctfile: no way to compile Fortran file $f" 1>&2 + fi + done + fi + + if [ -n "$cfiles" ]; then + for f in $cfiles; do + if [ -n "$CC" ]; then + b=`echo $f | $SED 's,.*/,,; s,\.c$,,'` + if [ -n "$outputfile" ]; then + if $link; then + o=$b.o + else + o=$outputfile + fi + else + o=$b.o + fi + objfiles="$objfiles $o" + cmd="$CC -c $CPPFLAGS $CPICFLAG $ALL_CFLAGS $pass_on_options $incflags $defs $f -o $o" + $dbg $cmd + eval $cmd + else + echo "mkoctfile: no way to compile C++ file $f" 1>&2 + fi + done + fi + + if [ -n "$ccfiles" ]; then + for f in $ccfiles; do + if [ -n "$CXX" ]; then + case $f in + *.cc) + b=`echo $f | $SED 's,.*/,,; s,\.cc$,,'` + ;; + *.C) + b=`echo $f | $SED 's,.*/,,; s,\.C$,,'` + ;; + *.cpp) + b=`echo $f | $SED 's,.*/,,; s,\.cpp$,,'` + ;; + esac + if [ -n "$outputfile" ]; then + if $link; then + o=$b.o + else + o=$outputfile + fi + else + o=$b.o + fi + objfiles="$objfiles $o" + cmd="$CXX -c $CPPFLAGS $CXXPICFLAG $ALL_CXXFLAGS $pass_on_options $incflags $defs $f -o $o" + $dbg $cmd + eval $cmd + else + echo "mkoctfile: no way to compile C++ file $f" 1>&2 + fi + done + fi + + ## Uncomment the following group of lines if you get `Text file busy' + ## errors from ld. This may happen if the .oct file is currently + ## running while you are trying to recompile it. We try moving first, + ## since on some systems (HP-UX, maybe others) it is possible to + ## rename running programs but not remove them. + + ## if [ -f "$octfile" ]; then + ## cmd="mv $octfile $octfile.bak" + ## $dbg $cmd + ## eval $cmd + ## cmd="rm -f $octfile.bak" + ## $dbg $cmd + ## eval $cmd + ## fi + + # Link all the object files. + + if $link && [ -n "$objfiles" ]; then + if $link_stand_alone; then + if [ -n "$LD_CXX" ]; then + cmd="$LD_CXX $CPPFLAGS $ALL_CXXFLAGS $RDYNAMIC_FLAG $ALL_LDFLAGS $pass_on_options $output_option $objfiles $libfiles $ldflags $LFLAGS $RLD_FLAG $OCTAVE_LIBS $LAPACK_LIBS $BLAS_LIBS $FFTW_LIBS $READLINE_LIBS $LIBS $FLIBS" + $dbg $cmd + eval $cmd + else + echo "mkoctfile: no way to link stand-alone executable file" 1>&2 + exit 1 + fi + else + LINK_DEPS="$LFLAGS $OCTAVE_LIBS $LDFLAGS $LAPACK_LIBS $BLAS_LIBS $FFTW_LIBS $LIBS $FLIBS" + cmd="$DL_LD $DL_LDFLAGS $pass_on_options -o $octfile $objfiles $libfiles $ldflags $LINK_DEPS" + $dbg $cmd + eval $cmd + fi + + # Maybe strip it. + + if $strip; then + cmd="strip $octfile" + $dbg $cmd + eval $cmd + fi + fi + + exit 0 diff -cNr octave-3.4.0/src/mxarray.h octave-3.4.1/src/mxarray.h *** octave-3.4.0/src/mxarray.h 2011-02-08 05:07:40.000000000 -0500 --- octave-3.4.1/src/mxarray.h 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,347 **** - /* - - Copyright (C) 2001-2011 Paul Kienzle - - This file is part of Octave. - - Octave 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. - - Octave 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 Octave; see the file COPYING. If not, see - . - - */ - - /* - - Part of this code was originally distributed as part of Octave Forge under - the following terms: - - Author: Paul Kienzle - I grant this code to the public domain. - 2001-03-22 - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. - - */ - - #if ! defined (MXARRAY_H) - #define MXARRAY_H - - typedef enum - { - mxREAL = 0, - mxCOMPLEX = 1 - } - mxComplexity; - - typedef enum - { - mxUNKNOWN_CLASS = 0, - mxCELL_CLASS, - mxSTRUCT_CLASS, - mxLOGICAL_CLASS, - mxCHAR_CLASS, - mxUNUSED_CLASS, - mxDOUBLE_CLASS, - mxSINGLE_CLASS, - mxINT8_CLASS, - mxUINT8_CLASS, - mxINT16_CLASS, - mxUINT16_CLASS, - mxINT32_CLASS, - mxUINT32_CLASS, - mxINT64_CLASS, - mxUINT64_CLASS, - mxFUNCTION_CLASS - } - mxClassID; - - typedef unsigned char mxLogical; - - /* typedef Uint16 mxChar; */ - typedef char mxChar; - - /* - * FIXME? Mathworks says these should be size_t on 64-bit system and when - * mex is used with the -largearraydims flag, but why do that? Its better - * to conform to the same indexing as the rest of Octave - */ - typedef int mwSize; - typedef int mwIndex; - - #if ! defined (MXARRAY_TYPEDEFS_ONLY) - - #include - - class octave_value; - - #define DO_MUTABLE_METHOD(RET_T, METHOD_CALL) \ - RET_T retval = rep->METHOD_CALL; \ - \ - if (rep->mutation_needed ()) \ - { \ - maybe_mutate (); \ - retval = rep->METHOD_CALL; \ - } \ - \ - return retval - - #define DO_VOID_MUTABLE_METHOD(METHOD_CALL) \ - rep->METHOD_CALL; \ - \ - if (rep->mutation_needed ()) \ - { \ - maybe_mutate (); \ - rep->METHOD_CALL; \ - } - - // This just provides a way to avoid infinite recursion when building - // mxArray objects. - - struct - xmxArray - { - xmxArray (void) { } - }; - - // The main interface class. The representation can be based on an - // octave_value object or a separate object that tries to reproduce - // the semantics of mxArray objects in Matlab more directly. - - class mxArray - { - public: - - mxArray (const octave_value& ov); - - mxArray (mxClassID id, mwSize ndims, const mwSize *dims, - mxComplexity flag = mxREAL); - - mxArray (mxClassID id, const dim_vector& dv, mxComplexity flag = mxREAL); - - mxArray (mxClassID id, mwSize m, mwSize n, mxComplexity flag = mxREAL); - - mxArray (mxClassID id, double val); - - mxArray (mxClassID id, mxLogical val); - - mxArray (const char *str); - - mxArray (mwSize m, const char **str); - - mxArray (mxClassID id, mwSize m, mwSize n, mwSize nzmax, - mxComplexity flag = mxREAL); - - mxArray (mwSize ndims, const mwSize *dims, int num_keys, const char **keys); - - mxArray (const dim_vector& dv, int num_keys, const char **keys); - - mxArray (mwSize m, mwSize n, int num_keys, const char **keys); - - mxArray (mwSize ndims, const mwSize *dims); - - mxArray (const dim_vector& dv); - - mxArray (mwSize m, mwSize n); - - virtual mxArray *dup (void) const - { - mxArray *new_rep = rep->dup (); - - return new mxArray (new_rep, name); - } - - virtual ~mxArray (void); - - virtual bool is_octave_value (void) const { return rep->is_octave_value (); } - - virtual int is_cell (void) const { return rep->is_cell (); } - - virtual int is_char (void) const { return rep->is_char (); } - - virtual int is_class (const char *name_arg) const { return rep->is_class (name_arg); } - - virtual int is_complex (void) const { return rep->is_complex (); } - - virtual int is_double (void) const { return rep->is_double (); } - - virtual int is_function_handle (void) const { return rep->is_function_handle (); } - - virtual int is_int16 (void) const { return rep->is_int16 (); } - - virtual int is_int32 (void) const { return rep->is_int32 (); } - - virtual int is_int64 (void) const { return rep->is_int64 (); } - - virtual int is_int8 (void) const { return rep->is_int8 (); } - - virtual int is_logical (void) const { return rep->is_logical (); } - - virtual int is_numeric (void) const { return rep->is_numeric (); } - - virtual int is_single (void) const { return rep->is_single (); } - - virtual int is_sparse (void) const { return rep->is_sparse (); } - - virtual int is_struct (void) const { return rep->is_struct (); } - - virtual int is_uint16 (void) const { return rep->is_uint16 (); } - - virtual int is_uint32 (void) const { return rep->is_uint32 (); } - - virtual int is_uint64 (void) const { return rep->is_uint64 (); } - - virtual int is_uint8 (void) const { return rep->is_uint8 (); } - - virtual int is_logical_scalar (void) const { return rep->is_logical_scalar (); } - - virtual int is_logical_scalar_true (void) const { return rep->is_logical_scalar_true (); } - - virtual mwSize get_m (void) const { return rep->get_m (); } - - virtual mwSize get_n (void) const { return rep->get_n (); } - - virtual mwSize *get_dimensions (void) const { return rep->get_dimensions (); } - - virtual mwSize get_number_of_dimensions (void) const { return rep->get_number_of_dimensions (); } - - virtual void set_m (mwSize m) { DO_VOID_MUTABLE_METHOD (set_m (m)); } - - virtual void set_n (mwSize n) { DO_VOID_MUTABLE_METHOD (set_n (n)); } - - virtual void set_dimensions (mwSize *dims_arg, mwSize ndims_arg) { DO_VOID_MUTABLE_METHOD (set_dimensions (dims_arg, ndims_arg)); } - - virtual mwSize get_number_of_elements (void) const { return rep->get_number_of_elements (); } - - virtual int is_empty (void) const { return get_number_of_elements () == 0; } - - const char *get_name (void) const { return name; } - - void set_name (const char *name_arg); - - virtual mxClassID get_class_id (void) const { return rep->get_class_id (); } - - virtual const char *get_class_name (void) const { return rep->get_class_name (); } - - virtual void set_class_name (const char *name_arg) { DO_VOID_MUTABLE_METHOD (set_class_name (name_arg)); } - - virtual mxArray *get_cell (mwIndex idx) const { DO_MUTABLE_METHOD (mxArray *, get_cell (idx)); } - - virtual void set_cell (mwIndex idx, mxArray *val) { DO_VOID_MUTABLE_METHOD (set_cell (idx, val)); } - - virtual double get_scalar (void) const { return rep->get_scalar (); } - - virtual void *get_data (void) const { DO_MUTABLE_METHOD (void *, get_data ()); } - - virtual void *get_imag_data (void) const { DO_MUTABLE_METHOD (void *, get_imag_data ()); } - - virtual void set_data (void *pr) { DO_VOID_MUTABLE_METHOD (set_data (pr)); } - - virtual void set_imag_data (void *pi) { DO_VOID_MUTABLE_METHOD (set_imag_data (pi)); } - - virtual mwIndex *get_ir (void) const { DO_MUTABLE_METHOD (mwIndex *, get_ir ()); } - - virtual mwIndex *get_jc (void) const { DO_MUTABLE_METHOD (mwIndex *, get_jc ()); } - - virtual mwSize get_nzmax (void) const { return rep->get_nzmax (); } - - virtual void set_ir (mwIndex *ir) { DO_VOID_MUTABLE_METHOD (set_ir (ir)); } - - virtual void set_jc (mwIndex *jc) { DO_VOID_MUTABLE_METHOD (set_jc (jc)); } - - virtual void set_nzmax (mwSize nzmax) { DO_VOID_MUTABLE_METHOD (set_nzmax (nzmax)); } - - virtual int add_field (const char *key) { DO_MUTABLE_METHOD (int, add_field (key)); } - - virtual void remove_field (int key_num) { DO_VOID_MUTABLE_METHOD (remove_field (key_num)); } - - virtual mxArray *get_field_by_number (mwIndex index, int key_num) const { DO_MUTABLE_METHOD (mxArray *, get_field_by_number (index, key_num)); } - - virtual void set_field_by_number (mwIndex index, int key_num, mxArray *val) { DO_VOID_MUTABLE_METHOD (set_field_by_number (index, key_num, val)); } - - virtual int get_number_of_fields (void) const { return rep->get_number_of_fields (); } - - virtual const char *get_field_name_by_number (int key_num) const { DO_MUTABLE_METHOD (const char*, get_field_name_by_number (key_num)); } - - virtual int get_field_number (const char *key) const { DO_MUTABLE_METHOD (int, get_field_number (key)); } - - virtual int get_string (char *buf, mwSize buflen) const { return rep->get_string (buf, buflen); } - - virtual char *array_to_string (void) const { return rep->array_to_string (); } - - virtual mwIndex calc_single_subscript (mwSize nsubs, mwIndex *subs) const { return rep->calc_single_subscript (nsubs, subs); } - - virtual size_t get_element_size (void) const { return rep->get_element_size (); } - - virtual bool mutation_needed (void) const { return rep->mutation_needed (); } - - virtual mxArray *mutate (void) const { return rep->mutate (); } - - static void *malloc (size_t n); - - static void *calloc (size_t n, size_t t); - - static char *strsave (const char *str) - { - char *retval = 0; - - if (str) - { - mwSize sz = sizeof (mxChar) * (strlen (str) + 1); - retval = static_cast (mxArray::malloc (sz)); - strcpy (retval, str); - } - - return retval; - } - - static octave_value as_octave_value (mxArray *ptr); - - protected: - - virtual octave_value as_octave_value (void) const; - - mxArray (const xmxArray&) : rep (0), name (0) { } - - private: - - mutable mxArray *rep; - - char *name; - - mxArray (mxArray *r, const char *n) - : rep (r), name (strsave (n)) { } - - void maybe_mutate (void) const; - - // No copying! - - mxArray (const mxArray&); - - mxArray& operator = (const mxArray&); - }; - - #undef DO_MUTABLE_METHOD - #undef DO_VOID_MUTABLE_METHOD - - #endif - #endif --- 0 ---- diff -cNr octave-3.4.0/src/octave-config.cc.in octave-3.4.1/src/octave-config.cc.in *** octave-3.4.0/src/octave-config.cc.in 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/src/octave-config.cc.in 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,224 ---- + /* + + Copyright (C) 2008-2011 Michael Goffioul + + This file is part of Octave. + + Octave 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. + + Octave 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 Octave; see the file COPYING. If not, see + . + + */ + + #if defined (HAVE_CONFIG_H) + #include + #endif + + #include + #include + #include + #include + #include + + #if defined (__WIN32__) && ! defined (_POSIX_VERSION) + #include + #endif + + static bool initialized = false; + static std::map vars; + static std::string OCTAVE_HOME, PREFIX; + static std::string usage_msg = "usage: octave-config [options]"; + static std::string help_msg = + "\n" + "Options:\n" + "\n" + " -h, -?, --help Print this message.\n" + "\n" + " --m-site-dir Print the name of the directory where Octave\n" + " expects to find locally installed .m files.\n" + "\n" + " --oct-site-dir Print the name of the directory where Octave\n" + " expects to find locally installed .oct files.\n" + "\n" + " -p VAR, --print VAR Print the value of the given configuration\n" + " variable VAR. Recognized variables are:\n" + "\n" + " API_VERSION LOCALAPIARCHLIBDIR\n" + " CANONICAL_HOST_TYPE LOCALAPIFCNFILEDIR\n" + " DEFAULT_PAGER LOCALAPIOCTFILEDIR\n" + " ARCHLIBDIR LOCALARCHLIBDIR\n" + " BINDIR LOCALFCNFILEDIR\n" + " DATADIR LOCALOCTFILEDIR\n" + " DATAROOTDIR LOCALSTARTUPFILEDIR\n" + " EXEC_PREFIX LOCALVERARCHLIBDIR\n" + " FCNFILEDIR LOCALVERFCNFILEDIR\n" + " LOCALVEROCTFILEDIR MAN1DIR\n" + " IMAGEDIR MANDIR\n" + " MAN1EXT OCTFILEDIR\n" + " INCLUDEDIR OCTINCLUDEDIR\n" + " INFODIR OCTLIBDIR\n" + " INFOFILE PREFIX\n" + " LIBDIR STARTUPFILEDIR\n" + " LIBEXECDIR VERSION\n" + "\n" + " -v, --version Print the Octave version number.\n" + "\n"; + + static std::string + substitute_prefix (const std::string& s, const std::string& prefix, + const std::string new_prefix) + { + std::string retval = s; + + if (!prefix.empty () && new_prefix != prefix) + { + int len = prefix.length (); + if (retval.find (prefix) == 0) + retval.replace (0, len, new_prefix); + } + + #if defined (__WIN32__) && ! defined (_POSIX_VERSION) + std::replace (retval.begin (), retval.end (), '/', '\\'); + #endif + + return retval; + } + + static void + initialize (void) + { + if (initialized) + return; + + initialized = true; + + const char *homestr = getenv ("OCTAVE_HOME"); + OCTAVE_HOME = (homestr ? homestr : ""); + PREFIX = %OCTAVE_PREFIX%; + + #if defined (__WIN32__) && ! defined (_POSIX_VERSION) + int n = 1024; + + std::string bin_dir (n, '\0'); + + while (true) + { + int status = GetModuleFileName (0, &bin_dir[0], n); + + if (status < n) + { + bin_dir.resize (status); + break; + } + else + { + n *= 2; + bin_dir.resize (n); + } + } + + if (! bin_dir.empty ()) + { + size_t pos = bin_dir.rfind ("\\bin\\"); + + if (pos != std::string::npos) + OCTAVE_HOME = bin_dir.substr (0, pos); + } + #endif + + vars["API_VERSION"] = %OCTAVE_API_VERSION%; + vars["CANONICAL_HOST_TYPE"] = %OCTAVE_CANONICAL_HOST_TYPE%; + vars["DEFAULT_PAGER"] = %OCTAVE_DEFAULT_PAGER%; + vars["ARCHLIBDIR"] = substitute_prefix (%OCTAVE_ARCHLIBDIR%, PREFIX, OCTAVE_HOME); + vars["BINDIR"] = substitute_prefix (%OCTAVE_BINDIR%, PREFIX, OCTAVE_HOME); + vars["DATADIR"] =substitute_prefix (%OCTAVE_DATADIR%, PREFIX, OCTAVE_HOME); + vars["DATAROOTDIR"] =substitute_prefix (%OCTAVE_DATAROOTDIR%, PREFIX, OCTAVE_HOME); + vars["EXEC_PREFIX"] =substitute_prefix (%OCTAVE_EXEC_PREFIX%, PREFIX, OCTAVE_HOME); + vars["FCNFILEDIR"] =substitute_prefix (%OCTAVE_FCNFILEDIR%, PREFIX, OCTAVE_HOME); + vars["IMAGEDIR"] =substitute_prefix (%OCTAVE_IMAGEDIR%, PREFIX, OCTAVE_HOME); + vars["INCLUDEDIR"] =substitute_prefix (%OCTAVE_INCLUDEDIR%, PREFIX, OCTAVE_HOME); + vars["INFODIR"] =substitute_prefix (%OCTAVE_INFODIR%, PREFIX, OCTAVE_HOME); + vars["INFOFILE"] =substitute_prefix (%OCTAVE_INFOFILE%, PREFIX, OCTAVE_HOME); + vars["LIBDIR"] =substitute_prefix (%OCTAVE_LIBDIR%, PREFIX, OCTAVE_HOME); + vars["LIBEXECDIR"] =substitute_prefix (%OCTAVE_LIBEXECDIR%, PREFIX, OCTAVE_HOME); + vars["LOCALAPIARCHLIBDIR"] =substitute_prefix (%OCTAVE_LOCALAPIARCHLIBDIR%, PREFIX, OCTAVE_HOME); + vars["LOCALAPIFCNFILEDIR"] =substitute_prefix (%OCTAVE_LOCALAPIFCNFILEDIR%, PREFIX, OCTAVE_HOME); + vars["LOCALAPIOCTFILEDIR"] =substitute_prefix (%OCTAVE_LOCALAPIOCTFILEDIR%, PREFIX, OCTAVE_HOME); + vars["LOCALARCHLIBDIR"] =substitute_prefix (%OCTAVE_LOCALARCHLIBDIR%, PREFIX, OCTAVE_HOME); + vars["LOCALFCNFILEDIR"] =substitute_prefix (%OCTAVE_LOCALFCNFILEDIR%, PREFIX, OCTAVE_HOME); + vars["LOCALOCTFILEDIR"] =substitute_prefix (%OCTAVE_LOCALOCTFILEDIR%, PREFIX, OCTAVE_HOME); + vars["LOCALSTARTUPFILEDIR"] =substitute_prefix (%OCTAVE_LOCALSTARTUPFILEDIR%, PREFIX, OCTAVE_HOME); + vars["LOCALVERARCHLIBDIR"] =substitute_prefix (%OCTAVE_LOCALVERARCHLIBDIR%, PREFIX, OCTAVE_HOME); + vars["LOCALVERFCNFILEDIR"] =substitute_prefix (%OCTAVE_LOCALVERFCNFILEDIR%, PREFIX, OCTAVE_HOME); + vars["LOCALVEROCTFILEDIR"] =substitute_prefix (%OCTAVE_LOCALVEROCTFILEDIR%, PREFIX, OCTAVE_HOME); + vars["MAN1DIR"] =substitute_prefix (%OCTAVE_MAN1DIR%, PREFIX, OCTAVE_HOME); + vars["MAN1EXT"] = %OCTAVE_MAN1EXT%; + vars["MANDIR"] =substitute_prefix (%OCTAVE_MANDIR%, PREFIX, OCTAVE_HOME); + vars["OCTFILEDIR"] =substitute_prefix (%OCTAVE_OCTFILEDIR%, PREFIX, OCTAVE_HOME); + vars["OCTINCLUDEDIR"] =substitute_prefix (%OCTAVE_OCTINCLUDEDIR%, PREFIX, OCTAVE_HOME); + vars["OCTLIBDIR"] =substitute_prefix (%OCTAVE_OCTLIBDIR%, PREFIX, OCTAVE_HOME); + vars["PREFIX"] = (OCTAVE_HOME.empty() ? PREFIX : OCTAVE_HOME); + vars["STARTUPFILEDIR"] =substitute_prefix (%OCTAVE_STARTUPFILEDIR%, PREFIX, OCTAVE_HOME); + vars["VERSION"] = %OCTAVE_VERSION%; + } + + int + main (int argc, char **argv) + { + initialize (); + + if (argc == 1) + { + std::cout << usage_msg << std::endl; + return 1; + } + + for (int i = 1; i < argc; i++) + { + std::string arg (argv[i]); + + if (arg == "-h" || arg == "-?" || arg == "--help") + { + std::cout << usage_msg << std::endl; + std::cout << help_msg; + return 0; + } + else if (arg == "--m-site-dir") + std::cout << vars["LOCALVERFCNFILEDIR"] << std::endl; + else if (arg == "--oct-site-dir") + std::cout << vars["LOCALVEROCTFILEDIR"] << std::endl; + else if (arg == "-v" || arg == "--version") + std::cout << vars["VERSION"] << std::endl; + else if (arg == "-p" || arg == "--print") + { + if (i < argc-1) + { + arg = argv[++i]; + std::cout << vars[arg] << std::endl; + } + else + { + std::cerr << "octave-config: " << arg + << " options requires argument" << std::endl; + return 1; + } + } + else + { + std::cerr << "octave-config: unrecognized argument " << arg << std::endl; + return 1; + } + } + + return 0; + } diff -cNr octave-3.4.0/src/octave-config.in octave-3.4.1/src/octave-config.in *** octave-3.4.0/src/octave-config.in 1969-12-31 19:00:00.000000000 -0500 --- octave-3.4.1/src/octave-config.in 2011-06-15 11:11:27.000000000 -0400 *************** *** 0 **** --- 1,168 ---- + #! /bin/sh - + ## + ## octave-config - reports some configuration values for Octave + ## + ## Copyright (C) 2001-2011 John W. Eaton + ## + ## This file is part of Octave. + ## + ## Octave 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. + ## + ## Octave 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 Octave; see the file COPYING. If not, see + ## . + ## + ## Original version by Rafael Laboissiere + ## distributed as free software in the public domain. + + API_VERSION=%OCTAVE_API_VERSION% + CANONICAL_HOST_TYPE=%OCTAVE_CANONICAL_HOST_TYPE% + DEFAULT_PAGER=%OCTAVE_DEFAULT_PAGER% + ARCHLIBDIR=%OCTAVE_ARCHLIBDIR% + BINDIR=%OCTAVE_BINDIR% + DATADIR=%OCTAVE_DATADIR% + DATAROOTDIR=%OCTAVE_DATAROOTDIR% + EXEC_PREFIX=%OCTAVE_EXEC_PREFIX% + FCNFILEDIR=%OCTAVE_FCNFILEDIR% + IMAGEDIR=%OCTAVE_IMAGEDIR% + INCLUDEDIR=%OCTAVE_INCLUDEDIR% + INFODIR=%OCTAVE_INFODIR% + INFOFILE=%OCTAVE_INFOFILE% + LIBDIR=%OCTAVE_LIBDIR% + LIBEXECDIR=%OCTAVE_LIBEXECDIR% + LOCALAPIARCHLIBDIR=%OCTAVE_LOCALAPIARCHLIBDIR% + LOCALAPIFCNFILEDIR=%OCTAVE_LOCALAPIFCNFILEDIR% + LOCALAPIOCTFILEDIR=%OCTAVE_LOCALAPIOCTFILEDIR% + LOCALARCHLIBDIR=%OCTAVE_LOCALARCHLIBDIR% + LOCALFCNFILEDIR=%OCTAVE_LOCALFCNFILEDIR% + LOCALOCTFILEDIR=%OCTAVE_LOCALOCTFILEDIR% + LOCALSTARTUPFILEDIR=%OCTAVE_LOCALSTARTUPFILEDIR% + LOCALVERARCHLIBDIR=%OCTAVE_LOCALVERARCHLIBDIR% + LOCALVERFCNFILEDIR=%OCTAVE_LOCALVERFCNFILEDIR% + LOCALVEROCTFILEDIR=%OCTAVE_LOCALVEROCTFILEDIR% + MAN1DIR=%OCTAVE_MAN1DIR% + MAN1EXT=%OCTAVE_MAN1EXT% + MANDIR=%OCTAVE_MANDIR% + OCTFILEDIR=%OCTAVE_OCTFILEDIR% + OCTINCLUDEDIR=%OCTAVE_OCTINCLUDEDIR% + OCTLIBDIR=%OCTAVE_OCTLIBDIR% + PREFIX=%OCTAVE_PREFIX% + STARTUPFILEDIR=%OCTAVE_STARTUPFILEDIR% + VERSION=%OCTAVE_VERSION% + + if [ -n "$OCTAVE_HOME" ]; then + ARCHLIBDIR="`echo $ARCHLIBDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + BINDIR="`echo $BINDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + DATADIR="`echo $DATADIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + DATAROOTDIR="`echo $DATAROOTDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + EXEC_PREFIX="`echo $EXEC_PREFIX | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + FCNFILEDIR="`echo $FCNFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + IMAGEDIR="`echo $IMAGEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + INCLUDEDIR="`echo $INCLUDEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + INFODIR="`echo $INFODIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + INFOFILE="`echo $INFOFILE | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + LIBDIR="`echo $LIBDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + LIBEXECDIR="`echo $LIBEXECDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + LOCALAPIARCHLIBDIR="`echo $LOCALAPIARCHLIBDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + LOCALAPIFCNFILEDIR="`echo $LOCALAPIFCNFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + LOCALAPIOCTFILEDIR="`echo $LOCALAPIOCTFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + LOCALARCHLIBDIR="`echo $LOCALARCHLIBDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + LOCALFCNFILEDIR="`echo $LOCALFCNFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + LOCALOCTFILEDIR="`echo $LOCALOCTFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + LOCALSTARTUPFILEDIR="`echo $LOCALSTARTUPFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + LOCALVERARCHLIBDIR="`echo $LOCALVERARCHLIBDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + LOCALVERFCNFILEDIR="`echo $LOCALVERFCNFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + LOCALVEROCTFILEDIR="`echo $LOCALVEROCTFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + MAN1DIR="`echo $MAN1DIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + MANDIR="`echo $MANDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + OCTFILEDIR="`echo $OCTFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + OCTINCLUDEDIR="`echo $OCTINCLUDEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + OCTLIBDIR="`echo $OCTLIBDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + STARTUPFILEDIR="`echo $STARTUPFILEDIR | sed "s,^$PREFIX,$OCTAVE_HOME,"`" + + PREFIX="$OCTAVE_HOME" + fi + + usage_msg="usage: octave-config [options]" + + if [ $# -eq 0 ]; then + echo "$usage_msg" 1>&2 + exit 1 + fi + + while [ $# -gt 0 ] + do + case "$1" in + -h | -\? | --help) + echo "$usage_msg" + cat << EOF + + Options: + + -h, -?, --help Print this message. + + --m-site-dir Print the name of the directory where Octave + expects to find locally installed .m files. + + --oct-site-dir Print the name of the directory where Octave + expects to find locally installed .oct files. + + -p VAR, --print VAR Print the value of the given configuration + variable VAR. Recognized variables are: + + API_VERSION LOCALAPIOCTFILEDIR + ARCHLIBDIR LOCALARCHLIBDIR + BINDIR LOCALFCNFILEDIR + CANONICAL_HOST_TYPE LOCALOCTFILEDIR + DATADIR LOCALSTARTUPFILEDIR + DATAROOTDIR LOCALVERARCHLIBDIR + DEFAULT_PAGER LOCALVERFCNFILEDIR + EXEC_PREFIX LOCALVEROCTFILEDIR + FCNFILEDIR MAN1DIR + IMAGEDIR MAN1EXT + INCLUDEDIR MANDIR + INFODIR OCTFILEDIR + INFOFILE OCTINCLUDEDIR + LIBDIR OCTLIBDIR + LIBEXECDIR PREFIX + LOCALAPIARCHLIBDIR STARTUPFILEDIR + LOCALAPIFCNFILEDIR VERSION + + -v, --version Print the Octave version number. + + EOF + exit 0 + ;; + --m-site-dir) + echo $LOCALVERFCNFILEDIR + ;; + --oct-site-dir) + echo $LOCALVEROCTFILEDIR + ;; + -v | --version) + echo $VERSION + ;; + -p | --print) + opt="$1" + shift + if [ $# -eq 0 ]; then + echo "octave-config: $opt option requires argument" 1>&2 + exit 1 + fi + eval echo \${$1} + ;; + *) + echo "octave-config: unrecognized argument $1" 2>&1 + exit 1 + ;; + esac + shift + done diff -cNr octave-3.4.0/src/oct-conf.h octave-3.4.1/src/oct-conf.h *** octave-3.4.0/src/oct-conf.h 2011-02-08 05:07:40.000000000 -0500 --- octave-3.4.1/src/oct-conf.h 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,547 **** - // oct-conf.h.in - /* - - Copyright (C) 1996-2011 John W. Eaton - - This file is part of Octave. - - Octave 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. - - Octave 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 Octave; see the file COPYING. If not, see - . - - */ - - #if !defined (octave_conf_h) - #define octave_conf_h 1 - - #ifndef OCTAVE_CONF_ALL_CFLAGS - #define OCTAVE_CONF_ALL_CFLAGS "" - #endif - - #ifndef OCTAVE_CONF_ALL_CXXFLAGS - #define OCTAVE_CONF_ALL_CXXFLAGS "" - #endif - - #ifndef OCTAVE_CONF_ALL_FFLAGS - #define OCTAVE_CONF_ALL_FFLAGS "-O" - #endif - - #ifndef OCTAVE_CONF_ALL_LDFLAGS - #define OCTAVE_CONF_ALL_LDFLAGS "" - #endif - - #ifndef OCTAVE_CONF_AMD_CPPFLAGS - #define OCTAVE_CONF_AMD_CPPFLAGS "" - #endif - - #ifndef OCTAVE_CONF_AMD_LDFLAGS - #define OCTAVE_CONF_AMD_LDFLAGS "" - #endif - - #ifndef OCTAVE_CONF_AMD_LIBS - #define OCTAVE_CONF_AMD_LIBS "-lamd" - #endif - - #ifndef OCTAVE_CONF_ARFLAGS - #define OCTAVE_CONF_ARFLAGS "rc " - #endif - - #ifndef OCTAVE_CONF_AR - #define OCTAVE_CONF_AR "ar" - #endif - - #ifndef OCTAVE_CONF_BLAS_LIBS - #define OCTAVE_CONF_BLAS_LIBS "-lblas" - #endif - - #ifndef OCTAVE_CONF_CAMD_CPPFLAGS - #define OCTAVE_CONF_CAMD_CPPFLAGS "" - #endif - - #ifndef OCTAVE_CONF_CAMD_LDFLAGS - #define OCTAVE_CONF_CAMD_LDFLAGS "" - #endif - - #ifndef OCTAVE_CONF_CAMD_LIBS - #define OCTAVE_CONF_CAMD_LIBS "-lcamd" - #endif - - #ifndef OCTAVE_CONF_CARBON_LIBS - #define OCTAVE_CONF_CARBON_LIBS "" - #endif - - #ifndef OCTAVE_CONF_CC - #define OCTAVE_CONF_CC "gcc" - #endif - - #ifndef OCTAVE_CONF_CC_VERSION - #define OCTAVE_CONF_CC_VERSION "4.4.5 (Debian 4.4.5-8) " - #endif - - #ifndef OCTAVE_CONF_CCOLAMD_CPPFLAGS - #define OCTAVE_CONF_CCOLAMD_CPPFLAGS "" - #endif - - #ifndef OCTAVE_CONF_CCOLAMD_LDFLAGS - #define OCTAVE_CONF_CCOLAMD_LDFLAGS "" - #endif - - #ifndef OCTAVE_CONF_CCOLAMD_LIBS - #define OCTAVE_CONF_CCOLAMD_LIBS "-lccolamd" - #endif - - #ifndef OCTAVE_CONF_CFLAGS - #define OCTAVE_CONF_CFLAGS "-g -O2 -pthread" - #endif - - #ifndef OCTAVE_CONF_CHOLMOD_CPPFLAGS - #define OCTAVE_CONF_CHOLMOD_CPPFLAGS "" - #endif - - #ifndef OCTAVE_CONF_CHOLMOD_LDFLAGS - #define OCTAVE_CONF_CHOLMOD_LDFLAGS "" - #endif - - #ifndef OCTAVE_CONF_CHOLMOD_LIBS - #define OCTAVE_CONF_CHOLMOD_LIBS "-lcholmod" - #endif - - #ifndef OCTAVE_CONF_COLAMD_CPPFLAGS - #define OCTAVE_CONF_COLAMD_CPPFLAGS "" - #endif - - #ifndef OCTAVE_CONF_COLAMD_LDFLAGS - #define OCTAVE_CONF_COLAMD_LDFLAGS "" - #endif - - #ifndef OCTAVE_CONF_COLAMD_LIBS - #define OCTAVE_CONF_COLAMD_LIBS "-lcolamd" - #endif - - #ifndef OCTAVE_CONF_CPICFLAG - #define OCTAVE_CONF_CPICFLAG "-fPIC" - #endif - - #ifndef OCTAVE_CONF_CPPFLAGS - #define OCTAVE_CONF_CPPFLAGS "" - #endif - - #ifndef OCTAVE_CONF_CURL_CPPFLAGS - #define OCTAVE_CONF_CURL_CPPFLAGS "" - #endif - - #ifndef OCTAVE_CONF_CURL_LDFLAGS - #define OCTAVE_CONF_CURL_LDFLAGS "" - #endif - - #ifndef OCTAVE_CONF_CURL_LIBS - #define OCTAVE_CONF_CURL_LIBS "-lcurl" - #endif - - #ifndef OCTAVE_CONF_CXSPARSE_CPPFLAGS - #define OCTAVE_CONF_CXSPARSE_CPPFLAGS "" - #endif - - #ifndef OCTAVE_CONF_CXSPARSE_LDFLAGS - #define OCTAVE_CONF_CXSPARSE_LDFLAGS "" - #endif - - #ifndef OCTAVE_CONF_CXSPARSE_LIBS - #define OCTAVE_CONF_CXSPARSE_LIBS "-lcxsparse" - #endif - - #ifndef OCTAVE_CONF_CXXCPP - #define OCTAVE_CONF_CXXCPP "g++ -E" - #endif - - #ifndef OCTAVE_CONF_CXXFLAGS - #define OCTAVE_CONF_CXXFLAGS "-g -O2" - #endif - - #ifndef OCTAVE_CONF_CXXPICFLAG - #define OCTAVE_CONF_CXXPICFLAG "-fPIC" - #endif - - #ifndef OCTAVE_CONF_CXX - #define OCTAVE_CONF_CXX "g++" - #endif - - #ifndef OCTAVE_CONF_CXX_VERSION - #define OCTAVE_CONF_CXX_VERSION "4.4.5" - #endif - - #ifndef OCTAVE_CONF_DEFAULT_PAGER - #define OCTAVE_CONF_DEFAULT_PAGER "less" - #endif - - #ifndef OCTAVE_CONF_DEFS - #define OCTAVE_CONF_DEFS "-DPACKAGE_NAME=\"GNU Octave\" -DPACKAGE_TARNAME=\"octave\" -DPACKAGE_VERSION=\"3.4.0\" -DPACKAGE_STRING=\"GNU Octave 3.4.0\" -DPACKAGE_BUGREPORT=\"bug@octave.org\" -DPACKAGE_URL=\"http://www.gnu.org/software/octave/\" -DPACKAGE=\"octave\" -DVERSION=\"3.4.0\" -DOCTAVE_SOURCE=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DSEPCHAR=':' -DSEPCHAR_STR=\":\" -DOCTAVE_IDX_TYPE=int -D__NO_MATH_INLINES=1 -DCXX_NEW_FRIEND_TEMPLATE_DECL=1 -DCXX_ISO_COMPLIANT_LIBRARY=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_CANONICALIZE_FILE_NAME=1 -DHAVE_GETCWD=1 -DHAVE_READLINK=1 -DHAVE_REALPATH=1 -DHAVE_CHOWN=1 -DHAVE_FCHOWN=1 -DHAVE_DUP2=1 -DHAVE_FCNTL=1 -DHAVE_FCHDIR=1 -DHAVE_FDOPENDIR=1 -DHAVE_BTOWC=1 -DHAVE_ISBLANK=1 -DHAVE_ISWCTYPE=1 -DHAVE_MBSRTOWCS=1 -DHAVE_MEMPCPY=1 -DHAVE_WMEMCHR=1 -DHAVE_WMEMCPY=1 -DHAVE_WMEMPCPY=1 -DHAVE_GETDTABLESIZE=1 -DHAVE_GETLOGIN_R=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_FSTATAT=1 -DHAVE_GETPWNAM_R=1 -DHAVE_LINK=1 -DHAVE_LSTAT=1 -DHAVE_MBSINIT=1 -DHAVE_MBRTOWC=1 -DHAVE_MPROTECT=1 -DHAVE_MEMCHR=1 -DHAVE_MKFIFO=1 -DHAVE_MKSTEMP=1 -DHAVE_ALARM=1 -DHAVE_PATHCONF=1 -DHAVE_SIGACTION=1 -DHAVE_SIGALTSTACK=1 -DHAVE_SIGINTERRUPT=1 -DHAVE_SLEEP=1 -DHAVE_STRDUP=1 -DHAVE_TZSET=1 -DHAVE_STRPTIME=1 -DHAVE_SYMLINK=1 -DHAVE_LOCALTIME_R=1 -DHAVE_TIMES=1 -DHAVE_PIPE=1 -DHAVE_ISWCNTRL=1 -DHAVE_ISWBLANK=1 -DFUNC_REALPATH_WORKS=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_DIRENT_H=1 -DHAVE_WCTYPE_H=1 -DHAVE_NETDB_H=1 -DHAVE_GETOPT_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_CDEFS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_MATH_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_STDINT_H=1 -DHAVE_WCHAR_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TIMES_H=1 -DHAVE_FEATURES_H=1 -DHAVE_UNISTD_H=1 -DHAVE_CHOWN=1 -DFILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX=0 -DFILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR=0 -DFILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE=0 -DHAVE_DECL_STRERROR_R=1 -DHAVE_STRERROR_R=1 -DSTRERROR_R_CHAR_P=1 -DHAVE_DECL_FCHDIR=1 -DPROMOTED_MODE_T=mode_t -DHAVE_WORKING_O_NOATIME=1 -DHAVE_WORKING_O_NOFOLLOW=1 -DHAVE_DECL_STRMODE=0 -DHAVE_MBSTATE_T=1 -DHAVE_DECL_GETCWD=1 -DHAVE_DECL_GETLOGIN_R=1 -DHAVE_DECL_GETLOGIN=1 -DHAVE_GETOPT_H=1 -DHAVE_GETOPT_LONG_ONLY=1 -DHAVE_DECL_GETENV=1 -Drestrict=__restrict -DHAVE_RAW_DECL_GETTIMEOFDAY=1 -DHAVE_LANGINFO_CODESET=1 -DHAVE_DECL_GETC_UNLOCKED=1 -DLSTAT_FOLLOWS_SLASHED_SYMLINK=1 -DHAVE_STDLIB_H=1 -DMALLOC_0_IS_NONNULL=1 -DHAVE_LONG_LONG_INT=1 -DHAVE_MAP_ANONYMOUS=1 -DHAVE_DECL_MEMRCHR=1 -DHAVE_SHUTDOWN=1 -DHAVE_STRUCT_SOCKADDR_STORAGE=1 -DHAVE_SA_FAMILY_T=1 -DHAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1 -DHAVE_RAW_DECL_SOCKET=1 -DHAVE_RAW_DECL_CONNECT=1 -DHAVE_RAW_DECL_ACCEPT=1 -DHAVE_RAW_DECL_BIND=1 -DHAVE_RAW_DECL_GETPEERNAME=1 -DHAVE_RAW_DECL_GETSOCKNAME=1 -DHAVE_RAW_DECL_GETSOCKOPT=1 -DHAVE_RAW_DECL_LISTEN=1 -DHAVE_RAW_DECL_RECV=1 -DHAVE_RAW_DECL_SEND=1 -DHAVE_RAW_DECL_RECVFROM=1 -DHAVE_RAW_DECL_SENDTO=1 -DHAVE_RAW_DECL_SETSOCKOPT=1 -DHAVE_RAW_DECL_SHUTDOWN=1 -DHAVE_RAW_DECL_ACCEPT4=1 -DHAVE_RAW_DECL_SELECT=1 -DHAVE__BOOL=1 -DHAVE_WCHAR_T=1 -DHAVE_UNSIGNED_LONG_LONG_INT=1 -DUSER_LABEL_PREFIX= -DHAVE_DECL_STRDUP=1 -DHAVE_STRUCT_TM_TM_ZONE=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_RAW_DECL_MEMMEM=1 -DHAVE_RAW_DECL_MEMPCPY=1 -DHAVE_RAW_DECL_MEMRCHR=1 -DHAVE_RAW_DECL_RAWMEMCHR=1 -DHAVE_RAW_DECL_STPCPY=1 -DHAVE_RAW_DECL_STPNCPY=1 -DHAVE_RAW_DECL_STRCHRNUL=1 -DHAVE_RAW_DECL_STRDUP=1 -DHAVE_RAW_DECL_STRNCAT=1 -DHAVE_RAW_DECL_STRNDUP=1 -DHAVE_RAW_DECL_STRNLEN=1 -DHAVE_RAW_DECL_STRPBRK=1 -DHAVE_RAW_DECL_STRSEP=1 -DHAVE_RAW_DECL_STRCASESTR=1 -DHAVE_RAW_DECL_STRTOK_R=1 -DHAVE_RAW_DECL_STRERROR_R=1 -DHAVE_RAW_DECL_STRSIGNAL=1 -DHAVE_RAW_DECL_STRVERSCMP=1 -DHAVE_RAW_DECL_STRCASECMP=1 -DHAVE_RAW_DECL_STRNCASECMP=1 -DHAVE_DECL_LOCALTIME_R=0 -DHAVE_WINT_T=1 -DHAVE_INTTYPES_H_WITH_UINTMAX=1 -DHAVE_STDINT_H_WITH_UINTMAX=1 -DHAVE_INTMAX_T=1 -DHAVE_SNPRINTF=1 -DHAVE_STRNLEN=1 -DHAVE_WCSLEN=1 -DHAVE_WCSNLEN=1 -DHAVE_MBRTOWC=1 -DHAVE_WCRTOMB=1 -DHAVE_DECL__SNPRINTF=0 -DHAVE_SNPRINTF_RETVAL_C99=1 -DHAVE_DECL_VSNPRINTF=1 -DHAVE_DECL_ISWBLANK=0 -DHAVE_ALLOCA=1 -DGNULIB_CANONICALIZE_LGPL=1 -DGNULIB_TEST_CANONICALIZE_FILE_NAME=1 -DGNULIB_TEST_REALPATH=1 -DGNULIB_TEST_CHOWN=1 -DGNULIB_TEST_CLOEXEC=1 -DGNULIB_TEST_CLOSE=1 -DD_INO_IN_DIRENT=1 -DHAVE_STRUCT_DIRENT_D_TYPE=1 -DHAVE_RAW_DECL_ALPHASORT=1 -DHAVE_RAW_DECL_DIRFD=1 -DHAVE_RAW_DECL_FDOPENDIR=1 -DHAVE_RAW_DECL_SCANDIR=1 -DHAVE_DIRFD=1 -DHAVE_DECL_DIRFD=1 -DGNULIB_TEST_DIRFD=1 -DGNULIB_TEST_DUP2=1 -DGNULIB_TEST_FCHDIR=1 -DGNULIB_TEST_FCLOSE=1 -DGNULIB_TEST_FCNTL=1 -DHAVE_RAW_DECL_FCNTL=1 -DHAVE_RAW_DECL_OPENAT=1 -DHAVE_DECL_FDOPENDIR=1 -DGNULIB_TEST_FDOPENDIR=1 -DGNULIB_FDOPENDIR=1 -DGNULIB_TEST_FLOOR=1 -DHAVE_PARTLY_WORKING_GETCWD=1 -DHAVE_GETPAGESIZE=1 -DGNULIB_TEST_GETCWD=1 -DGNULIB_TEST_GETDTABLESIZE=1 -DHAVE_GETHOSTNAME=1 -DGNULIB_TEST_GETHOSTNAME=1 -DGNULIB_TEST_GETLOGIN_R=1 -DGNULIB_TEST_GETOPT_GNU=1 -DGETTIMEOFDAY_TIMEZONE=struct timezone -DGNULIB_TEST_GETTIMEOFDAY=1 -DHAVE_GLOB_H=1 -DHAVE_LCHOWN=1 -DGNULIB_TEST_LCHOWN=1 -DGNULIB_TEST_LINK=1 -DGNULIB_TEST_LSTAT=1 -DHAVE_MALLOC_POSIX=1 -DGNULIB_TEST_MALLOC_POSIX=1 -DHAVE_RAW_DECL_ACOSL=1 -DHAVE_RAW_DECL_ASINL=1 -DHAVE_RAW_DECL_ATANL=1 -DHAVE_RAW_DECL_CEILF=1 -DHAVE_RAW_DECL_CEILL=1 -DHAVE_RAW_DECL_COSL=1 -DHAVE_RAW_DECL_EXPL=1 -DHAVE_RAW_DECL_FLOORF=1 -DHAVE_RAW_DECL_FLOORL=1 -DHAVE_RAW_DECL_FREXPL=1 -DHAVE_RAW_DECL_LDEXPL=1 -DHAVE_RAW_DECL_LOGB=1 -DHAVE_RAW_DECL_LOGL=1 -DHAVE_RAW_DECL_ROUND=1 -DHAVE_RAW_DECL_ROUNDF=1 -DHAVE_RAW_DECL_ROUNDL=1 -DHAVE_RAW_DECL_SINL=1 -DHAVE_RAW_DECL_SQRTL=1 -DHAVE_RAW_DECL_TANL=1 -DHAVE_RAW_DECL_TRUNC=1 -DHAVE_RAW_DECL_TRUNCF=1 -DHAVE_RAW_DECL_TRUNCL=1 -DGNULIB_TEST_MBRTOWC=1 -DGNULIB_TEST_MBSINIT=1 -DGNULIB_TEST_MBSRTOWCS=1 -DGNULIB_TEST_MEMCHR=1 -DHAVE_MEMPCPY=1 -DGNULIB_TEST_MEMPCPY=1 -DHAVE_MEMRCHR=1 -DGNULIB_TEST_MEMRCHR=1 -DGNULIB_TEST_MKFIFO=1 -DGNULIB_TEST_MKSTEMP=1 -DGNULIB_TEST_MKTIME=1 -DHAVE_BUG_BIG_NANOSLEEP=1 -DGNULIB_TEST_NANOSLEEP=1 -DGNULIB_TEST_OPEN=1 -DHAVE_FCHMODAT=1 -DHAVE_FSTATAT=1 -DHAVE_MKDIRAT=1 -DHAVE_OPENAT=1 -DHAVE_UNLINKAT=1 -DHAVE_DECL_PROGRAM_INVOCATION_NAME=1 -DHAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME=1 -DGNULIB_TEST_READLINK=1 -DHAVE_REALLOC_POSIX=1 -DGNULIB_TEST_REALLOC_POSIX=1 -DGNULIB_TEST_RENAME=1 -DGNULIB_TEST_RMDIR=1 -DHAVE_DECL_ROUND=1 -DGNULIB_TEST_ROUND=1 -DHAVE_DECL_ROUNDF=1 -DGNULIB_TEST_ROUNDF=1 -DGNULIB_TEST_SELECT=1 -DHAVE_STRUCT_SIGACTION_SA_SIGACTION=1 -DGNULIB_TEST_SIGACTION=1 -DHAVE_RAW_DECL_SIGACTION=1 -DHAVE_RAW_DECL_SIGADDSET=1 -DHAVE_RAW_DECL_SIGDELSET=1 -DHAVE_RAW_DECL_SIGEMPTYSET=1 -DHAVE_RAW_DECL_SIGFILLSET=1 -DHAVE_RAW_DECL_SIGISMEMBER=1 -DHAVE_RAW_DECL_SIGPENDING=1 -DHAVE_RAW_DECL_SIGPROCMASK=1 -DGNULIB_TEST_SIGPROCMASK=1 -DHAVE_STDINT_H=1 -DHAVE_DECL_SLEEP=1 -DGNULIB_TEST_SLEEP=1 -DGNULIB_TEST_STAT=1 -DHAVE_RAW_DECL_DPRINTF=1 -DHAVE_RAW_DECL_FSEEKO=1 -DHAVE_RAW_DECL_FTELLO=1 -DHAVE_RAW_DECL_GETDELIM=1 -DHAVE_RAW_DECL_GETLINE=1 -DHAVE_RAW_DECL_POPEN=1 -DHAVE_RAW_DECL_RENAMEAT=1 -DHAVE_RAW_DECL_SNPRINTF=1 -DHAVE_RAW_DECL_TMPFILE=1 -DHAVE_RAW_DECL_VDPRINTF=1 -DHAVE_RAW_DECL_VSNPRINTF=1 -DHAVE_STRUCT_RANDOM_DATA=1 -DHAVE_RAW_DECL__EXIT=1 -DHAVE_RAW_DECL_ATOLL=1 -DHAVE_RAW_DECL_CANONICALIZE_FILE_NAME=1 -DHAVE_RAW_DECL_GETLOADAVG=1 -DHAVE_RAW_DECL_GETSUBOPT=1 -DHAVE_RAW_DECL_GRANTPT=1 -DHAVE_RAW_DECL_MKDTEMP=1 -DHAVE_RAW_DECL_MKOSTEMP=1 -DHAVE_RAW_DECL_MKOSTEMPS=1 -DHAVE_RAW_DECL_MKSTEMP=1 -DHAVE_RAW_DECL_MKSTEMPS=1 -DHAVE_RAW_DECL_PTSNAME=1 -DHAVE_RAW_DECL_RANDOM_R=1 -DHAVE_RAW_DECL_SRANDOM_R=1 -DHAVE_RAW_DECL_SETSTATE_R=1 -DHAVE_RAW_DECL_REALPATH=1 -DHAVE_RAW_DECL_RPMATCH=1 -DHAVE_RAW_DECL_SETENV=1 -DHAVE_RAW_DECL_STRTOD=1 -DHAVE_RAW_DECL_STRTOLL=1 -DHAVE_RAW_DECL_STRTOULL=1 -DHAVE_RAW_DECL_UNLOCKPT=1 -DHAVE_RAW_DECL_UNSETENV=1 -DHAVE_STRCASECMP=1 -DHAVE_STRNCASECMP=1 -DHAVE_DECL_STRNCASECMP=1 -DGNULIB_TEST_STRDUP=1 -DGNULIB_TEST_STRERROR=1 -Dmy_strftime=nstrftime -DGNULIB_TEST_STRPTIME=1 -DGNULIB_TEST_SYMLINK=1 -DHAVE_RAW_DECL_SELECT=1 -DHAVE_SHUTDOWN=1 -DHAVE_STRUCT_SOCKADDR_STORAGE=1 -DHAVE_SA_FAMILY_T=1 -DHAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1 -DHAVE_RAW_DECL_SOCKET=1 -DHAVE_RAW_DECL_CONNECT=1 -DHAVE_RAW_DECL_ACCEPT=1 -DHAVE_RAW_DECL_BIND=1 -DHAVE_RAW_DECL_GETPEERNAME=1 -DHAVE_RAW_DECL_GETSOCKNAME=1 -DHAVE_RAW_DECL_GETSOCKOPT=1 -DHAVE_RAW_DECL_LISTEN=1 -DHAVE_RAW_DECL_RECV=1 -DHAVE_RAW_DECL_SEND=1 -DHAVE_RAW_DECL_RECVFROM=1 -DHAVE_RAW_DECL_SENDTO=1 -DHAVE_RAW_DECL_SETSOCKOPT=1 -DHAVE_RAW_DECL_SHUTDOWN=1 -DHAVE_RAW_DECL_ACCEPT4=1 -DHAVE_RAW_DECL_FCHMODAT=1 -DHAVE_RAW_DECL_FSTATAT=1 -DHAVE_RAW_DECL_FUTIMENS=1 -DHAVE_RAW_DECL_LCHMOD=1 -DHAVE_RAW_DECL_LSTAT=1 -DHAVE_RAW_DECL_MKDIRAT=1 -DHAVE_RAW_DECL_MKFIFO=1 -DHAVE_RAW_DECL_MKFIFOAT=1 -DHAVE_RAW_DECL_MKNOD=1 -DHAVE_RAW_DECL_MKNODAT=1 -DHAVE_RAW_DECL_STAT=1 -DHAVE_RAW_DECL_UTIMENSAT=1 -DHAVE_STRUCT_TMS=1 -DHAVE_RAW_DECL_TIMES=1 -DGNULIB_TEST_TIME_R=1 -DHAVE_DECL_TRUNC=1 -DGNULIB_TEST_TRUNC=1 -DHAVE_DECL_TRUNCF=1 -DGNULIB_TEST_TRUNCF=1 -DHAVE_RAW_DECL_CHOWN=1 -DHAVE_RAW_DECL_DUP2=1 -DHAVE_RAW_DECL_DUP3=1 -DHAVE_RAW_DECL_ENVIRON=1 -DHAVE_RAW_DECL_EUIDACCESS=1 -DHAVE_RAW_DECL_FACCESSAT=1 -DHAVE_RAW_DECL_FCHDIR=1 -DHAVE_RAW_DECL_FCHOWNAT=1 -DHAVE_RAW_DECL_FSYNC=1 -DHAVE_RAW_DECL_FTRUNCATE=1 -DHAVE_RAW_DECL_GETCWD=1 -DHAVE_RAW_DECL_GETDOMAINNAME=1 -DHAVE_RAW_DECL_GETDTABLESIZE=1 -DHAVE_RAW_DECL_GETGROUPS=1 -DHAVE_RAW_DECL_GETHOSTNAME=1 -DHAVE_RAW_DECL_GETLOGIN=1 -DHAVE_RAW_DECL_GETLOGIN_R=1 -DHAVE_RAW_DECL_GETPAGESIZE=1 -DHAVE_RAW_DECL_GETUSERSHELL=1 -DHAVE_RAW_DECL_SETUSERSHELL=1 -DHAVE_RAW_DECL_ENDUSERSHELL=1 -DHAVE_RAW_DECL_LCHOWN=1 -DHAVE_RAW_DECL_LINK=1 -DHAVE_RAW_DECL_LINKAT=1 -DHAVE_RAW_DECL_LSEEK=1 -DHAVE_RAW_DECL_PIPE=1 -DHAVE_RAW_DECL_PIPE2=1 -DHAVE_RAW_DECL_PREAD=1 -DHAVE_RAW_DECL_PWRITE=1 -DHAVE_RAW_DECL_READLINK=1 -DHAVE_RAW_DECL_READLINKAT=1 -DHAVE_RAW_DECL_RMDIR=1 -DHAVE_RAW_DECL_SLEEP=1 -DHAVE_RAW_DECL_SYMLINK=1 -DHAVE_RAW_DECL_SYMLINKAT=1 -DHAVE_RAW_DECL_TTYNAME_R=1 -DHAVE_RAW_DECL_UNLINK=1 -DHAVE_RAW_DECL_UNLINKAT=1 -DHAVE_RAW_DECL_USLEEP=1 -DGNULIB_TEST_UNLINK=1 -DHAVE_VSNPRINTF=1 -DGNULIB_TEST_VSNPRINTF=1 -DHAVE_RAW_DECL_BTOWC=1 -DHAVE_RAW_DECL_WCTOB=1 -DHAVE_RAW_DECL_MBSINIT=1 -DHAVE_RAW_DECL_MBRTOWC=1 -DHAVE_RAW_DECL_MBRLEN=1 -DHAVE_RAW_DECL_MBSRTOWCS=1 -DHAVE_RAW_DECL_MBSNRTOWCS=1 -DHAVE_RAW_DECL_WCRTOMB=1 -DHAVE_RAW_DECL_WCSRTOMBS=1 -DHAVE_RAW_DECL_WCSNRTOMBS=1 -DHAVE_RAW_DECL_WCWIDTH=1 -DHAVE_RAW_DECL_WMEMCHR=1 -DHAVE_RAW_DECL_WMEMCMP=1 -DHAVE_RAW_DECL_WMEMCPY=1 -DHAVE_RAW_DECL_WMEMMOVE=1 -DHAVE_RAW_DECL_WMEMSET=1 -DHAVE_RAW_DECL_WCSLEN=1 -DHAVE_RAW_DECL_WCSNLEN=1 -DHAVE_RAW_DECL_WCSCPY=1 -DHAVE_RAW_DECL_WCPCPY=1 -DHAVE_RAW_DECL_WCSNCPY=1 -DHAVE_RAW_DECL_WCPNCPY=1 -DHAVE_RAW_DECL_WCSCAT=1 -DHAVE_RAW_DECL_WCSNCAT=1 -DHAVE_RAW_DECL_WCSCMP=1 -DHAVE_RAW_DECL_WCSNCMP=1 -DHAVE_RAW_DECL_WCSCASECMP=1 -DHAVE_RAW_DECL_WCSNCASECMP=1 -DHAVE_RAW_DECL_WCSCOLL=1 -DHAVE_RAW_DECL_WCSXFRM=1 -DHAVE_RAW_DECL_WCSDUP=1 -DHAVE_RAW_DECL_WCSCHR=1 -DHAVE_RAW_DECL_WCSRCHR=1 -DHAVE_RAW_DECL_WCSCSPN=1 -DHAVE_RAW_DECL_WCSSPN=1 -DHAVE_RAW_DECL_WCSPBRK=1 -DHAVE_RAW_DECL_WCSSTR=1 -DHAVE_RAW_DECL_WCSTOK=1 -DHAVE_RAW_DECL_WCSWIDTH=1 -DHAVE_STDINT_H=1 -DHAVE_PTHREAD=1 -DHAVE_X_WINDOWS=1 -DFLOAT_TRUNCATE= -DHAVE_LIBM=1 -DF77_FUNC(name,NAME)=name ## _ -DF77_FUNC_(name,NAME)=name ## _ -DHAVE_IEEE754_DATA_FORMAT=1 -DHAVE_CXX_COMPLEX_SETTERS=1 -DHAVE_CXX_COMPLEX_REFERENCE_ACCESSORS=1 -DHAVE_QHULL_QHULL_A_H=1 -DHAVE_QHULL=1 -DHAVE_PCRE_COMPILE=1 -DHAVE_PCRE=1 -DHAVE_REGEXEC=1 -DHAVE_REGEX=1 -DHAVE_ZLIB_H=1 -DHAVE_Z=1 -DHAVE_HDF5_H=1 -DHAVE_HDF5=1 -DHAVE_FFTW3_H=1 -DHAVE_FFTW3=1 -DHAVE_FFTW3_H=1 -DHAVE_FFTW3F=1 -DHAVE_GLPK_H=1 -DHAVE_GLPK=1 -DHAVE_CURL_CURL_H=1 -DHAVE_CURL=1 -DHAVE_MAGICK=1 -DHAVE_GL_GL_H=1 -DHAVE_GL_GLU_H=1 -DHAVE_OPENGL=1 -DHAVE_FREETYPE=1 -DHAVE_FONTCONFIG=1 -DHAVE_FLTK=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_QRUPDATE=1 -DHAVE_SUITESPARSE_AMD_H=1 -DHAVE_AMD=1 -DHAVE_SUITESPARSE_CAMD_H=1 -DHAVE_CAMD=1 -DHAVE_SUITESPARSE_COLAMD_H=1 -DHAVE_COLAMD=1 -DHAVE_SUITESPARSE_CCOLAMD_H=1 -DHAVE_CCOLAMD=1 -DHAVE_SUITESPARSE_CHOLMOD_H=1 -DHAVE_CHOLMOD=1 -DHAVE_SUITESPARSE_CS_H=1 -DHAVE_CXSPARSE=1 -DHAVE_SUITESPARSE_UMFPACK_H=1 -DHAVE_UMFPACK=1 -DUMFPACK_SEPARATE_SPLIT=1 -DHAVE_GETPWNAM=1 -DHAVE_DEV_T=1 -DHAVE_INO_T=1 -DHAVE_LONG_LONG_INT=1 -DHAVE_UNSIGNED_LONG_LONG_INT=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=8 -DSIZEOF_LONG_LONG=8 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_PLACEMENT_DELETE=1 -DHAVE_DYNAMIC_AUTO_ARRAYS=1 -DHAVE_FAST_INT_OPS=1 -DSIZEOF_LONG_DOUBLE=16 -DHAVE_DIRENT_H=1 -DHAVE_SYS_WAIT_H=1 -DHAVE_CURSES_H=1 -DHAVE_DLFCN_H=1 -DHAVE_GRP_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_LOCALE_H=1 -DHAVE_MEMORY_H=1 -DHAVE_NCURSES_H=1 -DHAVE_POLL_H=1 -DHAVE_PTHREAD_H=1 -DHAVE_PWD_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_POLL_H=1 -DHAVE_SYS_RESOURCE_H=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_UTSNAME_H=1 -DHAVE_TERMCAP_H=1 -DHAVE_SSTREAM=1 -DHAVE_TERMIOS_H=1 -DHAVE_TERMIO_H=1 -DHAVE_SGTTY_H=1 -DHAVE_FNMATCH_H=1 -DHAVE_BASENAME=1 -DHAVE_CANONICALIZE_FILE_NAME=1 -DHAVE_CHMOD=1 -DHAVE_DUP2=1 -DHAVE_ENDGRENT=1 -DHAVE_ENDPWENT=1 -DHAVE_EXECVP=1 -DHAVE_EXPM1=1 -DHAVE_EXPM1F=1 -DHAVE_FORK=1 -DHAVE_GETEGID=1 -DHAVE_GETEUID=1 -DHAVE_GETGID=1 -DHAVE_GETGRENT=1 -DHAVE_GETGRGID=1 -DHAVE_GETGRNAM=1 -DHAVE_GETPGRP=1 -DHAVE_GETPID=1 -DHAVE_GETPPID=1 -DHAVE_GETPWENT=1 -DHAVE_GETPWUID=1 -DHAVE_GETUID=1 -DHAVE_GETWD=1 -DHAVE_KILL=1 -DHAVE_LGAMMA=1 -DHAVE_LGAMMAF=1 -DHAVE_LGAMMA_R=1 -DHAVE_LGAMMAF_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_LOG1P=1 -DHAVE_LOG1PF=1 -DHAVE_MKSTEMP=1 -DHAVE_PIPE=1 -DHAVE_PUTENV=1 -DHAVE_REALPATH=1 -DHAVE_RINDEX=1 -DHAVE_ROUNDL=1 -DHAVE_SELECT=1 -DHAVE_SETGRENT=1 -DHAVE_SETLOCALE=1 -DHAVE_SETPWENT=1 -DHAVE_SETVBUF=1 -DHAVE_SIGLONGJMP=1 -DHAVE_STRSIGNAL=1 -DHAVE_TEMPNAM=1 -DHAVE_TGAMMAF=1 -DHAVE_UMASK=1 -DHAVE_UNAME=1 -DHAVE_UTIME=1 -DHAVE_WAITPID=1 -DHAVE_DECL_EXP2=1 -DHAVE_DECL_ROUND=1 -DHAVE_DECL_TGAMMA=1 -DHAVE_EXP2=1 -DHAVE_ROUND=1 -DHAVE_TGAMMA=1 -DHAVE_DLOPEN_API=1 -DENABLE_DYNAMIC_LINKING=1 -DHAVE_CMATH_ISNAN=1 -DHAVE_CMATH_ISNANF=1 -DHAVE_CMATH_ISINF=1 -DHAVE_CMATH_ISINFF=1 -DHAVE_CMATH_ISFINITE=1 -DHAVE_CMATH_ISFINITEF=1 -DHAVE_FINITE=1 -DHAVE_ISNAN=1 -DHAVE_ISINF=1 -DHAVE_DECL_SIGNBIT=1 -DHAVE_ACOSH=1 -DHAVE_ACOSHF=1 -DHAVE_ASINH=1 -DHAVE_ASINHF=1 -DHAVE_ATANH=1 -DHAVE_ATANHF=1 -DHAVE_ERF=1 -DHAVE_ERFF=1 -DHAVE_ERFC=1 -DHAVE_ERFCF=1 -DHAVE_EXP2F=1 -DHAVE_LOG2=1 -DHAVE_LOG2F=1 -DHAVE_HYPOTF=1 -DHAVE_CBRT=1 -DHAVE_CBRTF=1 -DHAVE_STRUCT_STAT_ST_BLKSIZE=1 -DHAVE_STRUCT_STAT_ST_BLOCKS=1 -DHAVE_STRUCT_STAT_ST_RDEV=1 -DHAVE_STRUCT_TM_TM_ZONE=1 -DHAVE_TM_ZONE=1 -DUSE_READLINE=1 -DEXCEPTION_IN_MATH=1 -DHAVE_DECL_SYS_SIGLIST=1 -DHAVE_GETRUSAGE=1 -DYYTEXT_POINTER=1" - #endif - - #ifndef OCTAVE_CONF_DL_LD - #define OCTAVE_CONF_DL_LD "g++" - #endif - - #ifndef OCTAVE_CONF_DL_LDFLAGS - #define OCTAVE_CONF_DL_LDFLAGS "-shared" - #endif - - #ifndef OCTAVE_CONF_DL_LIBS - #define OCTAVE_CONF_DL_LIBS "-ldl" - #endif - - #ifndef OCTAVE_CONF_EXEEXT - #define OCTAVE_CONF_EXEEXT "" - #endif - - #ifndef OCTAVE_CONF_F77 - #define OCTAVE_CONF_F77 "gfortran" - #endif - - #ifndef OCTAVE_CONF_F77_FLOAT_STORE_FLAG - #define OCTAVE_CONF_F77_FLOAT_STORE_FLAG "-ffloat-store" - #endif - - #ifndef OCTAVE_CONF_F77_INTEGER_8_FLAG - #define OCTAVE_CONF_F77_INTEGER_8_FLAG "" - #endif - - #ifndef OCTAVE_CONF_FC - #define OCTAVE_CONF_FC "gfortran" - #endif - - #ifndef OCTAVE_CONF_FFLAGS - #define OCTAVE_CONF_FFLAGS "-O" - #endif - - #ifndef OCTAVE_CONF_FFTW3_CPPFLAGSS - #define OCTAVE_CONF_FFTW3_CPPFLAGS "" - #endif - - #ifndef OCTAVE_CONF_FFTW3_LDFLAGSS - #define OCTAVE_CONF_FFTW3_LDFLAGS "" - #endif - - #ifndef OCTAVE_CONF_FFTW3_LIBS - #define OCTAVE_CONF_FFTW3_LIBS "-lfftw3" - #endif - - #ifndef OCTAVE_CONF_FFTW3F_CPPFLAGSS - #define OCTAVE_CONF_FFTW3F_CPPFLAGS "" - #endif - - #ifndef OCTAVE_CONF_FFTW3F_LDFLAGSS - #define OCTAVE_CONF_FFTW3F_LDFLAGS "" - #endif - - #ifndef OCTAVE_CONF_FFTW3F_LIBS - #define OCTAVE_CONF_FFTW3F_LIBS "-lfftw3f" - #endif - - #ifndef OCTAVE_CONF_FLIBS - #define OCTAVE_CONF_FLIBS "-L/usr/lib/gcc/x86_64-linux-gnu/4.4.5 -L/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../.. -L/usr/lib/x86_64-linux-gnu -lgfortranbegin -lgfortran -lm" - #endif - - #ifndef OCTAVE_CONF_FPICFLAG - #define OCTAVE_CONF_FPICFLAG "-fPIC" - #endif - - #ifndef OCTAVE_CONF_FT2_LIBS - #define OCTAVE_CONF_FT2_LIBS "-lfreetype -lz" - #endif - - #ifndef OCTAVE_CONF_GLPK_CPPFLAGS - #define OCTAVE_CONF_GLPK_CPPFLAGS "" - #endif - - #ifndef OCTAVE_CONF_GLPK_LDFLAGS - #define OCTAVE_CONF_GLPK_LDFLAGS "" - #endif - - #ifndef OCTAVE_CONF_GLPK_LIBS - #define OCTAVE_CONF_GLPK_LIBS "-lglpk" - #endif - - #ifndef OCTAVE_CONF_GNUPLOT - #define OCTAVE_CONF_GNUPLOT "gnuplot" - #endif - - #ifndef OCTAVE_CONF_GRAPHICS_LIBS - #define OCTAVE_CONF_GRAPHICS_LIBS "-lfltk_gl -lfltk" - #endif - - #ifndef OCTAVE_CONF_HDF5_CPPFLAGS - #define OCTAVE_CONF_HDF5_CPPFLAGS "" - #endif - - #ifndef OCTAVE_CONF_HDF5_LDFLAGS - #define OCTAVE_CONF_HDF5_LDFLAGS "" - #endif - - #ifndef OCTAVE_CONF_HDF5_LIBS - #define OCTAVE_CONF_HDF5_LIBS "-lhdf5" - #endif - - #ifndef OCTAVE_CONF_INCFLAGS - #define OCTAVE_CONF_INCFLAGS "" - #endif - - #ifndef OCTAVE_CONF_INCLUDEDIR - #define OCTAVE_CONF_INCLUDEDIR "/usr/local/include" - #endif - - #ifndef OCTAVE_CONF_LAPACK_LIBS - #define OCTAVE_CONF_LAPACK_LIBS "-llapack" - #endif - - #ifndef OCTAVE_CONF_LDFLAGS - #define OCTAVE_CONF_LDFLAGS "" - #endif - - #ifndef OCTAVE_CONF_LD_CXX - #define OCTAVE_CONF_LD_CXX "g++" - #endif - - #ifndef OCTAVE_CONF_LD_STATIC_FLAG - #define OCTAVE_CONF_LD_STATIC_FLAG "" - #endif - - #ifndef OCTAVE_CONF_LEXLIB - #define OCTAVE_CONF_LEXLIB "" - #endif - - #ifndef OCTAVE_CONF_LEX - #define OCTAVE_CONF_LEX "flex" - #endif - - #ifndef OCTAVE_CONF_LFLAGS - #define OCTAVE_CONF_LFLAGS "-I" - #endif - - #ifndef OCTAVE_CONF_LIBCRUFT - #define OCTAVE_CONF_LIBCRUFT "-lcruft" - #endif - - #ifndef OCTAVE_CONF_LIBEXT - #define OCTAVE_CONF_LIBEXT "a" - #endif - - #ifndef OCTAVE_CONF_LIBFLAGS - #define OCTAVE_CONF_LIBFLAGS "-L.." - #endif - - #ifndef OCTAVE_CONF_LIBOCTAVE - #define OCTAVE_CONF_LIBOCTAVE "-loctave" - #endif - - #ifndef OCTAVE_CONF_LIBOCTINTERP - #define OCTAVE_CONF_LIBOCTINTERP "-loctinterp" - #endif - - #ifndef OCTAVE_CONF_LIBPLPLOT - #define OCTAVE_CONF_LIBPLPLOT %OCTAVE_CONF_LIBPLPLOT% - #endif - - #ifndef OCTAVE_CONF_LIBS - #define OCTAVE_CONF_LIBS "-lm " - #endif - - #ifndef OCTAVE_CONF_LN_S - #define OCTAVE_CONF_LN_S "ln -s" - #endif - - #ifndef OCTAVE_CONF_MAGICK_CPPFLAGS - #define OCTAVE_CONF_MAGICK_CPPFLAGS "-I/usr/include/GraphicsMagick " - #endif - - #ifndef OCTAVE_CONF_MAGICK_LDFLAGS - #define OCTAVE_CONF_MAGICK_LDFLAGS "" - #endif - - #ifndef OCTAVE_CONF_MAGICK_LIBS - #define OCTAVE_CONF_MAGICK_LIBS "-lGraphicsMagick++ -lGraphicsMagick " - #endif - - #ifndef OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS - #define OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS "-shared -Wl,-Bsymbolic" - #endif - - #ifndef OCTAVE_CONF_OCTINCLUDEDIR - #define OCTAVE_CONF_OCTINCLUDEDIR "/usr/local/include/octave-3.4.0/octave" - #endif - - #ifndef OCTAVE_CONF_OCTLIBDIR - #define OCTAVE_CONF_OCTLIBDIR "/usr/local/lib/octave-3.4.0" - #endif - - #ifndef OCTAVE_CONF_OPENGL_LIBS - #define OCTAVE_CONF_OPENGL_LIBS "-lfontconfig -lGL -lGLU" - #endif - - #ifndef OCTAVE_CONF_PREFIX - #define OCTAVE_CONF_PREFIX "/usr/local" - #endif - - #ifndef OCTAVE_CONF_PTHREAD_CFLAGS - #define OCTAVE_CONF_PTHREAD_CFLAGS "-pthread" - #endif - - #ifndef OCTAVE_CONF_PTHREAD_LIBS - #define OCTAVE_CONF_PTHREAD_LIBS "" - #endif - - #ifndef OCTAVE_CONF_QHULL_CPPFLAGS - #define OCTAVE_CONF_QHULL_CPPFLAGS "" - #endif - - #ifndef OCTAVE_CONF_QHULL_LDFLAGS - #define OCTAVE_CONF_QHULL_LDFLAGS "" - #endif - - #ifndef OCTAVE_CONF_QHULL_LIBS - #define OCTAVE_CONF_QHULL_LIBS "-lqhull" - #endif - - #ifndef OCTAVE_CONF_QRUPDATE_CPPFLAGS - #define OCTAVE_CONF_QRUPDATE_CPPFLAGS "" - #endif - - #ifndef OCTAVE_CONF_QRUPDATE_LDFLAGS - #define OCTAVE_CONF_QRUPDATE_LDFLAGS "" - #endif - - #ifndef OCTAVE_CONF_QRUPDATE_LIBS - #define OCTAVE_CONF_QRUPDATE_LIBS "-lqrupdate" - #endif - - #ifndef OCTAVE_CONF_RANLIB - #define OCTAVE_CONF_RANLIB "ranlib" - #endif - - #ifndef OCTAVE_CONF_RDYNAMIC_FLAG - #define OCTAVE_CONF_RDYNAMIC_FLAG "-rdynamic" - #endif - - #ifndef OCTAVE_CONF_READLINE_LIBS - #define OCTAVE_CONF_READLINE_LIBS "-lreadline" - #endif - - #ifndef OCTAVE_CONF_REGEX_LIBS - #define OCTAVE_CONF_REGEX_LIBS "-L/usr/lib -lpcre" - #endif - - #ifndef OCTAVE_CONF_RLD_FLAG - #define OCTAVE_CONF_RLD_FLAG "-Wl,-rpath -Wl,/usr/local/lib/octave-3.4.0" - #endif - - #ifndef OCTAVE_CONF_SED - #define OCTAVE_CONF_SED "/bin/sed" - #endif - - #ifndef OCTAVE_CONF_SHARED_LIBS - #define OCTAVE_CONF_SHARED_LIBS "" - #endif - - #ifndef OCTAVE_CONF_SHLEXT - #define OCTAVE_CONF_SHLEXT "so" - #endif - - #ifndef OCTAVE_CONF_SHLEXT_VER - #define OCTAVE_CONF_SHLEXT_VER "so.3.4.0" - #endif - - #ifndef OCTAVE_CONF_SH_LD - #define OCTAVE_CONF_SH_LD "g++" - #endif - - #ifndef OCTAVE_CONF_SH_LDFLAGS - #define OCTAVE_CONF_SH_LDFLAGS "-shared" - #endif - - #ifndef OCTAVE_CONF_SONAME_FLAGS - #define OCTAVE_CONF_SONAME_FLAGS "-Wl,-soname -Wl,oct-conf.h" - #endif - - #ifndef OCTAVE_CONF_STATIC_LIBS - #define OCTAVE_CONF_STATIC_LIBS "" - #endif - - #ifndef OCTAVE_CONF_TERM_LIBS - #define OCTAVE_CONF_TERM_LIBS "-lncurses" - #endif - - #ifndef OCTAVE_CONF_UGLY_DEFS - #define OCTAVE_CONF_UGLY_DEFS "-DPACKAGE_NAME=\"GNU Octave\" -DPACKAGE_TARNAME=\"octave\" -DPACKAGE_VERSION=\"3.4.0\" -DPACKAGE_STRING=\"GNU Octave 3.4.0\" -DPACKAGE_BUGREPORT=\"bug@octave.org\" -DPACKAGE_URL=\"http://www.gnu.org/software/octave/\" -DPACKAGE=\"octave\" -DVERSION=\"3.4.0\" -DOCTAVE_SOURCE=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DSEPCHAR=':' -DSEPCHAR_STR=\":\" -DOCTAVE_IDX_TYPE=int -D__NO_MATH_INLINES=1 -DCXX_NEW_FRIEND_TEMPLATE_DECL=1 -DCXX_ISO_COMPLIANT_LIBRARY=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_CANONICALIZE_FILE_NAME=1 -DHAVE_GETCWD=1 -DHAVE_READLINK=1 -DHAVE_REALPATH=1 -DHAVE_CHOWN=1 -DHAVE_FCHOWN=1 -DHAVE_DUP2=1 -DHAVE_FCNTL=1 -DHAVE_FCHDIR=1 -DHAVE_FDOPENDIR=1 -DHAVE_BTOWC=1 -DHAVE_ISBLANK=1 -DHAVE_ISWCTYPE=1 -DHAVE_MBSRTOWCS=1 -DHAVE_MEMPCPY=1 -DHAVE_WMEMCHR=1 -DHAVE_WMEMCPY=1 -DHAVE_WMEMPCPY=1 -DHAVE_GETDTABLESIZE=1 -DHAVE_GETLOGIN_R=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_FSTATAT=1 -DHAVE_GETPWNAM_R=1 -DHAVE_LINK=1 -DHAVE_LSTAT=1 -DHAVE_MBSINIT=1 -DHAVE_MBRTOWC=1 -DHAVE_MPROTECT=1 -DHAVE_MEMCHR=1 -DHAVE_MKFIFO=1 -DHAVE_MKSTEMP=1 -DHAVE_ALARM=1 -DHAVE_PATHCONF=1 -DHAVE_SIGACTION=1 -DHAVE_SIGALTSTACK=1 -DHAVE_SIGINTERRUPT=1 -DHAVE_SLEEP=1 -DHAVE_STRDUP=1 -DHAVE_TZSET=1 -DHAVE_STRPTIME=1 -DHAVE_SYMLINK=1 -DHAVE_LOCALTIME_R=1 -DHAVE_TIMES=1 -DHAVE_PIPE=1 -DHAVE_ISWCNTRL=1 -DHAVE_ISWBLANK=1 -DFUNC_REALPATH_WORKS=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_DIRENT_H=1 -DHAVE_WCTYPE_H=1 -DHAVE_NETDB_H=1 -DHAVE_GETOPT_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_CDEFS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_MATH_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_STDINT_H=1 -DHAVE_WCHAR_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TIMES_H=1 -DHAVE_FEATURES_H=1 -DHAVE_UNISTD_H=1 -DHAVE_CHOWN=1 -DFILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX=0 -DFILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR=0 -DFILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE=0 -DHAVE_DECL_STRERROR_R=1 -DHAVE_STRERROR_R=1 -DSTRERROR_R_CHAR_P=1 -DHAVE_DECL_FCHDIR=1 -DPROMOTED_MODE_T=mode_t -DHAVE_WORKING_O_NOATIME=1 -DHAVE_WORKING_O_NOFOLLOW=1 -DHAVE_DECL_STRMODE=0 -DHAVE_MBSTATE_T=1 -DHAVE_DECL_GETCWD=1 -DHAVE_DECL_GETLOGIN_R=1 -DHAVE_DECL_GETLOGIN=1 -DHAVE_GETOPT_H=1 -DHAVE_GETOPT_LONG_ONLY=1 -DHAVE_DECL_GETENV=1 -Drestrict=__restrict -DHAVE_RAW_DECL_GETTIMEOFDAY=1 -DHAVE_LANGINFO_CODESET=1 -DHAVE_DECL_GETC_UNLOCKED=1 -DLSTAT_FOLLOWS_SLASHED_SYMLINK=1 -DHAVE_STDLIB_H=1 -DMALLOC_0_IS_NONNULL=1 -DHAVE_LONG_LONG_INT=1 -DHAVE_MAP_ANONYMOUS=1 -DHAVE_DECL_MEMRCHR=1 -DHAVE_SHUTDOWN=1 -DHAVE_STRUCT_SOCKADDR_STORAGE=1 -DHAVE_SA_FAMILY_T=1 -DHAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1 -DHAVE_RAW_DECL_SOCKET=1 -DHAVE_RAW_DECL_CONNECT=1 -DHAVE_RAW_DECL_ACCEPT=1 -DHAVE_RAW_DECL_BIND=1 -DHAVE_RAW_DECL_GETPEERNAME=1 -DHAVE_RAW_DECL_GETSOCKNAME=1 -DHAVE_RAW_DECL_GETSOCKOPT=1 -DHAVE_RAW_DECL_LISTEN=1 -DHAVE_RAW_DECL_RECV=1 -DHAVE_RAW_DECL_SEND=1 -DHAVE_RAW_DECL_RECVFROM=1 -DHAVE_RAW_DECL_SENDTO=1 -DHAVE_RAW_DECL_SETSOCKOPT=1 -DHAVE_RAW_DECL_SHUTDOWN=1 -DHAVE_RAW_DECL_ACCEPT4=1 -DHAVE_RAW_DECL_SELECT=1 -DHAVE__BOOL=1 -DHAVE_WCHAR_T=1 -DHAVE_UNSIGNED_LONG_LONG_INT=1 -DUSER_LABEL_PREFIX= -DHAVE_DECL_STRDUP=1 -DHAVE_STRUCT_TM_TM_ZONE=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_RAW_DECL_MEMMEM=1 -DHAVE_RAW_DECL_MEMPCPY=1 -DHAVE_RAW_DECL_MEMRCHR=1 -DHAVE_RAW_DECL_RAWMEMCHR=1 -DHAVE_RAW_DECL_STPCPY=1 -DHAVE_RAW_DECL_STPNCPY=1 -DHAVE_RAW_DECL_STRCHRNUL=1 -DHAVE_RAW_DECL_STRDUP=1 -DHAVE_RAW_DECL_STRNCAT=1 -DHAVE_RAW_DECL_STRNDUP=1 -DHAVE_RAW_DECL_STRNLEN=1 -DHAVE_RAW_DECL_STRPBRK=1 -DHAVE_RAW_DECL_STRSEP=1 -DHAVE_RAW_DECL_STRCASESTR=1 -DHAVE_RAW_DECL_STRTOK_R=1 -DHAVE_RAW_DECL_STRERROR_R=1 -DHAVE_RAW_DECL_STRSIGNAL=1 -DHAVE_RAW_DECL_STRVERSCMP=1 -DHAVE_RAW_DECL_STRCASECMP=1 -DHAVE_RAW_DECL_STRNCASECMP=1 -DHAVE_DECL_LOCALTIME_R=0 -DHAVE_WINT_T=1 -DHAVE_INTTYPES_H_WITH_UINTMAX=1 -DHAVE_STDINT_H_WITH_UINTMAX=1 -DHAVE_INTMAX_T=1 -DHAVE_SNPRINTF=1 -DHAVE_STRNLEN=1 -DHAVE_WCSLEN=1 -DHAVE_WCSNLEN=1 -DHAVE_MBRTOWC=1 -DHAVE_WCRTOMB=1 -DHAVE_DECL__SNPRINTF=0 -DHAVE_SNPRINTF_RETVAL_C99=1 -DHAVE_DECL_VSNPRINTF=1 -DHAVE_DECL_ISWBLANK=0 -DHAVE_ALLOCA=1 -DGNULIB_CANONICALIZE_LGPL=1 -DGNULIB_TEST_CANONICALIZE_FILE_NAME=1 -DGNULIB_TEST_REALPATH=1 -DGNULIB_TEST_CHOWN=1 -DGNULIB_TEST_CLOEXEC=1 -DGNULIB_TEST_CLOSE=1 -DD_INO_IN_DIRENT=1 -DHAVE_STRUCT_DIRENT_D_TYPE=1 -DHAVE_RAW_DECL_ALPHASORT=1 -DHAVE_RAW_DECL_DIRFD=1 -DHAVE_RAW_DECL_FDOPENDIR=1 -DHAVE_RAW_DECL_SCANDIR=1 -DHAVE_DIRFD=1 -DHAVE_DECL_DIRFD=1 -DGNULIB_TEST_DIRFD=1 -DGNULIB_TEST_DUP2=1 -DGNULIB_TEST_FCHDIR=1 -DGNULIB_TEST_FCLOSE=1 -DGNULIB_TEST_FCNTL=1 -DHAVE_RAW_DECL_FCNTL=1 -DHAVE_RAW_DECL_OPENAT=1 -DHAVE_DECL_FDOPENDIR=1 -DGNULIB_TEST_FDOPENDIR=1 -DGNULIB_FDOPENDIR=1 -DGNULIB_TEST_FLOOR=1 -DHAVE_PARTLY_WORKING_GETCWD=1 -DHAVE_GETPAGESIZE=1 -DGNULIB_TEST_GETCWD=1 -DGNULIB_TEST_GETDTABLESIZE=1 -DHAVE_GETHOSTNAME=1 -DGNULIB_TEST_GETHOSTNAME=1 -DGNULIB_TEST_GETLOGIN_R=1 -DGNULIB_TEST_GETOPT_GNU=1 -DGETTIMEOFDAY_TIMEZONE=struct timezone -DGNULIB_TEST_GETTIMEOFDAY=1 -DHAVE_GLOB_H=1 -DHAVE_LCHOWN=1 -DGNULIB_TEST_LCHOWN=1 -DGNULIB_TEST_LINK=1 -DGNULIB_TEST_LSTAT=1 -DHAVE_MALLOC_POSIX=1 -DGNULIB_TEST_MALLOC_POSIX=1 -DHAVE_RAW_DECL_ACOSL=1 -DHAVE_RAW_DECL_ASINL=1 -DHAVE_RAW_DECL_ATANL=1 -DHAVE_RAW_DECL_CEILF=1 -DHAVE_RAW_DECL_CEILL=1 -DHAVE_RAW_DECL_COSL=1 -DHAVE_RAW_DECL_EXPL=1 -DHAVE_RAW_DECL_FLOORF=1 -DHAVE_RAW_DECL_FLOORL=1 -DHAVE_RAW_DECL_FREXPL=1 -DHAVE_RAW_DECL_LDEXPL=1 -DHAVE_RAW_DECL_LOGB=1 -DHAVE_RAW_DECL_LOGL=1 -DHAVE_RAW_DECL_ROUND=1 -DHAVE_RAW_DECL_ROUNDF=1 -DHAVE_RAW_DECL_ROUNDL=1 -DHAVE_RAW_DECL_SINL=1 -DHAVE_RAW_DECL_SQRTL=1 -DHAVE_RAW_DECL_TANL=1 -DHAVE_RAW_DECL_TRUNC=1 -DHAVE_RAW_DECL_TRUNCF=1 -DHAVE_RAW_DECL_TRUNCL=1 -DGNULIB_TEST_MBRTOWC=1 -DGNULIB_TEST_MBSINIT=1 -DGNULIB_TEST_MBSRTOWCS=1 -DGNULIB_TEST_MEMCHR=1 -DHAVE_MEMPCPY=1 -DGNULIB_TEST_MEMPCPY=1 -DHAVE_MEMRCHR=1 -DGNULIB_TEST_MEMRCHR=1 -DGNULIB_TEST_MKFIFO=1 -DGNULIB_TEST_MKSTEMP=1 -DGNULIB_TEST_MKTIME=1 -DHAVE_BUG_BIG_NANOSLEEP=1 -DGNULIB_TEST_NANOSLEEP=1 -DGNULIB_TEST_OPEN=1 -DHAVE_FCHMODAT=1 -DHAVE_FSTATAT=1 -DHAVE_MKDIRAT=1 -DHAVE_OPENAT=1 -DHAVE_UNLINKAT=1 -DHAVE_DECL_PROGRAM_INVOCATION_NAME=1 -DHAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME=1 -DGNULIB_TEST_READLINK=1 -DHAVE_REALLOC_POSIX=1 -DGNULIB_TEST_REALLOC_POSIX=1 -DGNULIB_TEST_RENAME=1 -DGNULIB_TEST_RMDIR=1 -DHAVE_DECL_ROUND=1 -DGNULIB_TEST_ROUND=1 -DHAVE_DECL_ROUNDF=1 -DGNULIB_TEST_ROUNDF=1 -DGNULIB_TEST_SELECT=1 -DHAVE_STRUCT_SIGACTION_SA_SIGACTION=1 -DGNULIB_TEST_SIGACTION=1 -DHAVE_RAW_DECL_SIGACTION=1 -DHAVE_RAW_DECL_SIGADDSET=1 -DHAVE_RAW_DECL_SIGDELSET=1 -DHAVE_RAW_DECL_SIGEMPTYSET=1 -DHAVE_RAW_DECL_SIGFILLSET=1 -DHAVE_RAW_DECL_SIGISMEMBER=1 -DHAVE_RAW_DECL_SIGPENDING=1 -DHAVE_RAW_DECL_SIGPROCMASK=1 -DGNULIB_TEST_SIGPROCMASK=1 -DHAVE_STDINT_H=1 -DHAVE_DECL_SLEEP=1 -DGNULIB_TEST_SLEEP=1 -DGNULIB_TEST_STAT=1 -DHAVE_RAW_DECL_DPRINTF=1 -DHAVE_RAW_DECL_FSEEKO=1 -DHAVE_RAW_DECL_FTELLO=1 -DHAVE_RAW_DECL_GETDELIM=1 -DHAVE_RAW_DECL_GETLINE=1 -DHAVE_RAW_DECL_POPEN=1 -DHAVE_RAW_DECL_RENAMEAT=1 -DHAVE_RAW_DECL_SNPRINTF=1 -DHAVE_RAW_DECL_TMPFILE=1 -DHAVE_RAW_DECL_VDPRINTF=1 -DHAVE_RAW_DECL_VSNPRINTF=1 -DHAVE_STRUCT_RANDOM_DATA=1 -DHAVE_RAW_DECL__EXIT=1 -DHAVE_RAW_DECL_ATOLL=1 -DHAVE_RAW_DECL_CANONICALIZE_FILE_NAME=1 -DHAVE_RAW_DECL_GETLOADAVG=1 -DHAVE_RAW_DECL_GETSUBOPT=1 -DHAVE_RAW_DECL_GRANTPT=1 -DHAVE_RAW_DECL_MKDTEMP=1 -DHAVE_RAW_DECL_MKOSTEMP=1 -DHAVE_RAW_DECL_MKOSTEMPS=1 -DHAVE_RAW_DECL_MKSTEMP=1 -DHAVE_RAW_DECL_MKSTEMPS=1 -DHAVE_RAW_DECL_PTSNAME=1 -DHAVE_RAW_DECL_RANDOM_R=1 -DHAVE_RAW_DECL_SRANDOM_R=1 -DHAVE_RAW_DECL_SETSTATE_R=1 -DHAVE_RAW_DECL_REALPATH=1 -DHAVE_RAW_DECL_RPMATCH=1 -DHAVE_RAW_DECL_SETENV=1 -DHAVE_RAW_DECL_STRTOD=1 -DHAVE_RAW_DECL_STRTOLL=1 -DHAVE_RAW_DECL_STRTOULL=1 -DHAVE_RAW_DECL_UNLOCKPT=1 -DHAVE_RAW_DECL_UNSETENV=1 -DHAVE_STRCASECMP=1 -DHAVE_STRNCASECMP=1 -DHAVE_DECL_STRNCASECMP=1 -DGNULIB_TEST_STRDUP=1 -DGNULIB_TEST_STRERROR=1 -Dmy_strftime=nstrftime -DGNULIB_TEST_STRPTIME=1 -DGNULIB_TEST_SYMLINK=1 -DHAVE_RAW_DECL_SELECT=1 -DHAVE_SHUTDOWN=1 -DHAVE_STRUCT_SOCKADDR_STORAGE=1 -DHAVE_SA_FAMILY_T=1 -DHAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1 -DHAVE_RAW_DECL_SOCKET=1 -DHAVE_RAW_DECL_CONNECT=1 -DHAVE_RAW_DECL_ACCEPT=1 -DHAVE_RAW_DECL_BIND=1 -DHAVE_RAW_DECL_GETPEERNAME=1 -DHAVE_RAW_DECL_GETSOCKNAME=1 -DHAVE_RAW_DECL_GETSOCKOPT=1 -DHAVE_RAW_DECL_LISTEN=1 -DHAVE_RAW_DECL_RECV=1 -DHAVE_RAW_DECL_SEND=1 -DHAVE_RAW_DECL_RECVFROM=1 -DHAVE_RAW_DECL_SENDTO=1 -DHAVE_RAW_DECL_SETSOCKOPT=1 -DHAVE_RAW_DECL_SHUTDOWN=1 -DHAVE_RAW_DECL_ACCEPT4=1 -DHAVE_RAW_DECL_FCHMODAT=1 -DHAVE_RAW_DECL_FSTATAT=1 -DHAVE_RAW_DECL_FUTIMENS=1 -DHAVE_RAW_DECL_LCHMOD=1 -DHAVE_RAW_DECL_LSTAT=1 -DHAVE_RAW_DECL_MKDIRAT=1 -DHAVE_RAW_DECL_MKFIFO=1 -DHAVE_RAW_DECL_MKFIFOAT=1 -DHAVE_RAW_DECL_MKNOD=1 -DHAVE_RAW_DECL_MKNODAT=1 -DHAVE_RAW_DECL_STAT=1 -DHAVE_RAW_DECL_UTIMENSAT=1 -DHAVE_STRUCT_TMS=1 -DHAVE_RAW_DECL_TIMES=1 -DGNULIB_TEST_TIME_R=1 -DHAVE_DECL_TRUNC=1 -DGNULIB_TEST_TRUNC=1 -DHAVE_DECL_TRUNCF=1 -DGNULIB_TEST_TRUNCF=1 -DHAVE_RAW_DECL_CHOWN=1 -DHAVE_RAW_DECL_DUP2=1 -DHAVE_RAW_DECL_DUP3=1 -DHAVE_RAW_DECL_ENVIRON=1 -DHAVE_RAW_DECL_EUIDACCESS=1 -DHAVE_RAW_DECL_FACCESSAT=1 -DHAVE_RAW_DECL_FCHDIR=1 -DHAVE_RAW_DECL_FCHOWNAT=1 -DHAVE_RAW_DECL_FSYNC=1 -DHAVE_RAW_DECL_FTRUNCATE=1 -DHAVE_RAW_DECL_GETCWD=1 -DHAVE_RAW_DECL_GETDOMAINNAME=1 -DHAVE_RAW_DECL_GETDTABLESIZE=1 -DHAVE_RAW_DECL_GETGROUPS=1 -DHAVE_RAW_DECL_GETHOSTNAME=1 -DHAVE_RAW_DECL_GETLOGIN=1 -DHAVE_RAW_DECL_GETLOGIN_R=1 -DHAVE_RAW_DECL_GETPAGESIZE=1 -DHAVE_RAW_DECL_GETUSERSHELL=1 -DHAVE_RAW_DECL_SETUSERSHELL=1 -DHAVE_RAW_DECL_ENDUSERSHELL=1 -DHAVE_RAW_DECL_LCHOWN=1 -DHAVE_RAW_DECL_LINK=1 -DHAVE_RAW_DECL_LINKAT=1 -DHAVE_RAW_DECL_LSEEK=1 -DHAVE_RAW_DECL_PIPE=1 -DHAVE_RAW_DECL_PIPE2=1 -DHAVE_RAW_DECL_PREAD=1 -DHAVE_RAW_DECL_PWRITE=1 -DHAVE_RAW_DECL_READLINK=1 -DHAVE_RAW_DECL_READLINKAT=1 -DHAVE_RAW_DECL_RMDIR=1 -DHAVE_RAW_DECL_SLEEP=1 -DHAVE_RAW_DECL_SYMLINK=1 -DHAVE_RAW_DECL_SYMLINKAT=1 -DHAVE_RAW_DECL_TTYNAME_R=1 -DHAVE_RAW_DECL_UNLINK=1 -DHAVE_RAW_DECL_UNLINKAT=1 -DHAVE_RAW_DECL_USLEEP=1 -DGNULIB_TEST_UNLINK=1 -DHAVE_VSNPRINTF=1 -DGNULIB_TEST_VSNPRINTF=1 -DHAVE_RAW_DECL_BTOWC=1 -DHAVE_RAW_DECL_WCTOB=1 -DHAVE_RAW_DECL_MBSINIT=1 -DHAVE_RAW_DECL_MBRTOWC=1 -DHAVE_RAW_DECL_MBRLEN=1 -DHAVE_RAW_DECL_MBSRTOWCS=1 -DHAVE_RAW_DECL_MBSNRTOWCS=1 -DHAVE_RAW_DECL_WCRTOMB=1 -DHAVE_RAW_DECL_WCSRTOMBS=1 -DHAVE_RAW_DECL_WCSNRTOMBS=1 -DHAVE_RAW_DECL_WCWIDTH=1 -DHAVE_RAW_DECL_WMEMCHR=1 -DHAVE_RAW_DECL_WMEMCMP=1 -DHAVE_RAW_DECL_WMEMCPY=1 -DHAVE_RAW_DECL_WMEMMOVE=1 -DHAVE_RAW_DECL_WMEMSET=1 -DHAVE_RAW_DECL_WCSLEN=1 -DHAVE_RAW_DECL_WCSNLEN=1 -DHAVE_RAW_DECL_WCSCPY=1 -DHAVE_RAW_DECL_WCPCPY=1 -DHAVE_RAW_DECL_WCSNCPY=1 -DHAVE_RAW_DECL_WCPNCPY=1 -DHAVE_RAW_DECL_WCSCAT=1 -DHAVE_RAW_DECL_WCSNCAT=1 -DHAVE_RAW_DECL_WCSCMP=1 -DHAVE_RAW_DECL_WCSNCMP=1 -DHAVE_RAW_DECL_WCSCASECMP=1 -DHAVE_RAW_DECL_WCSNCASECMP=1 -DHAVE_RAW_DECL_WCSCOLL=1 -DHAVE_RAW_DECL_WCSXFRM=1 -DHAVE_RAW_DECL_WCSDUP=1 -DHAVE_RAW_DECL_WCSCHR=1 -DHAVE_RAW_DECL_WCSRCHR=1 -DHAVE_RAW_DECL_WCSCSPN=1 -DHAVE_RAW_DECL_WCSSPN=1 -DHAVE_RAW_DECL_WCSPBRK=1 -DHAVE_RAW_DECL_WCSSTR=1 -DHAVE_RAW_DECL_WCSTOK=1 -DHAVE_RAW_DECL_WCSWIDTH=1 -DHAVE_STDINT_H=1 -DHAVE_PTHREAD=1 -DHAVE_X_WINDOWS=1 -DFLOAT_TRUNCATE= -DHAVE_LIBM=1 -DF77_FUNC(name,NAME)=name ## _ -DF77_FUNC_(name,NAME)=name ## _ -DHAVE_IEEE754_DATA_FORMAT=1 -DHAVE_CXX_COMPLEX_SETTERS=1 -DHAVE_CXX_COMPLEX_REFERENCE_ACCESSORS=1 -DHAVE_QHULL_QHULL_A_H=1 -DHAVE_QHULL=1 -DHAVE_PCRE_COMPILE=1 -DHAVE_PCRE=1 -DHAVE_REGEXEC=1 -DHAVE_REGEX=1 -DHAVE_ZLIB_H=1 -DHAVE_Z=1 -DHAVE_HDF5_H=1 -DHAVE_HDF5=1 -DHAVE_FFTW3_H=1 -DHAVE_FFTW3=1 -DHAVE_FFTW3_H=1 -DHAVE_FFTW3F=1 -DHAVE_GLPK_H=1 -DHAVE_GLPK=1 -DHAVE_CURL_CURL_H=1 -DHAVE_CURL=1 -DHAVE_MAGICK=1 -DHAVE_GL_GL_H=1 -DHAVE_GL_GLU_H=1 -DHAVE_OPENGL=1 -DHAVE_FREETYPE=1 -DHAVE_FONTCONFIG=1 -DHAVE_FLTK=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_QRUPDATE=1 -DHAVE_SUITESPARSE_AMD_H=1 -DHAVE_AMD=1 -DHAVE_SUITESPARSE_CAMD_H=1 -DHAVE_CAMD=1 -DHAVE_SUITESPARSE_COLAMD_H=1 -DHAVE_COLAMD=1 -DHAVE_SUITESPARSE_CCOLAMD_H=1 -DHAVE_CCOLAMD=1 -DHAVE_SUITESPARSE_CHOLMOD_H=1 -DHAVE_CHOLMOD=1 -DHAVE_SUITESPARSE_CS_H=1 -DHAVE_CXSPARSE=1 -DHAVE_SUITESPARSE_UMFPACK_H=1 -DHAVE_UMFPACK=1 -DUMFPACK_SEPARATE_SPLIT=1 -DHAVE_GETPWNAM=1 -DHAVE_DEV_T=1 -DHAVE_INO_T=1 -DHAVE_LONG_LONG_INT=1 -DHAVE_UNSIGNED_LONG_LONG_INT=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=8 -DSIZEOF_LONG_LONG=8 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_PLACEMENT_DELETE=1 -DHAVE_DYNAMIC_AUTO_ARRAYS=1 -DHAVE_FAST_INT_OPS=1 -DSIZEOF_LONG_DOUBLE=16 -DHAVE_DIRENT_H=1 -DHAVE_SYS_WAIT_H=1 -DHAVE_CURSES_H=1 -DHAVE_DLFCN_H=1 -DHAVE_GRP_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_LOCALE_H=1 -DHAVE_MEMORY_H=1 -DHAVE_NCURSES_H=1 -DHAVE_POLL_H=1 -DHAVE_PTHREAD_H=1 -DHAVE_PWD_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_POLL_H=1 -DHAVE_SYS_RESOURCE_H=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_UTSNAME_H=1 -DHAVE_TERMCAP_H=1 -DHAVE_SSTREAM=1 -DHAVE_TERMIOS_H=1 -DHAVE_TERMIO_H=1 -DHAVE_SGTTY_H=1 -DHAVE_FNMATCH_H=1 -DHAVE_BASENAME=1 -DHAVE_CANONICALIZE_FILE_NAME=1 -DHAVE_CHMOD=1 -DHAVE_DUP2=1 -DHAVE_ENDGRENT=1 -DHAVE_ENDPWENT=1 -DHAVE_EXECVP=1 -DHAVE_EXPM1=1 -DHAVE_EXPM1F=1 -DHAVE_FORK=1 -DHAVE_GETEGID=1 -DHAVE_GETEUID=1 -DHAVE_GETGID=1 -DHAVE_GETGRENT=1 -DHAVE_GETGRGID=1 -DHAVE_GETGRNAM=1 -DHAVE_GETPGRP=1 -DHAVE_GETPID=1 -DHAVE_GETPPID=1 -DHAVE_GETPWENT=1 -DHAVE_GETPWUID=1 -DHAVE_GETUID=1 -DHAVE_GETWD=1 -DHAVE_KILL=1 -DHAVE_LGAMMA=1 -DHAVE_LGAMMAF=1 -DHAVE_LGAMMA_R=1 -DHAVE_LGAMMAF_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_LOG1P=1 -DHAVE_LOG1PF=1 -DHAVE_MKSTEMP=1 -DHAVE_PIPE=1 -DHAVE_PUTENV=1 -DHAVE_REALPATH=1 -DHAVE_RINDEX=1 -DHAVE_ROUNDL=1 -DHAVE_SELECT=1 -DHAVE_SETGRENT=1 -DHAVE_SETLOCALE=1 -DHAVE_SETPWENT=1 -DHAVE_SETVBUF=1 -DHAVE_SIGLONGJMP=1 -DHAVE_STRSIGNAL=1 -DHAVE_TEMPNAM=1 -DHAVE_TGAMMAF=1 -DHAVE_UMASK=1 -DHAVE_UNAME=1 -DHAVE_UTIME=1 -DHAVE_WAITPID=1 -DHAVE_DECL_EXP2=1 -DHAVE_DECL_ROUND=1 -DHAVE_DECL_TGAMMA=1 -DHAVE_EXP2=1 -DHAVE_ROUND=1 -DHAVE_TGAMMA=1 -DHAVE_DLOPEN_API=1 -DENABLE_DYNAMIC_LINKING=1 -DHAVE_CMATH_ISNAN=1 -DHAVE_CMATH_ISNANF=1 -DHAVE_CMATH_ISINF=1 -DHAVE_CMATH_ISINFF=1 -DHAVE_CMATH_ISFINITE=1 -DHAVE_CMATH_ISFINITEF=1 -DHAVE_FINITE=1 -DHAVE_ISNAN=1 -DHAVE_ISINF=1 -DHAVE_DECL_SIGNBIT=1 -DHAVE_ACOSH=1 -DHAVE_ACOSHF=1 -DHAVE_ASINH=1 -DHAVE_ASINHF=1 -DHAVE_ATANH=1 -DHAVE_ATANHF=1 -DHAVE_ERF=1 -DHAVE_ERFF=1 -DHAVE_ERFC=1 -DHAVE_ERFCF=1 -DHAVE_EXP2F=1 -DHAVE_LOG2=1 -DHAVE_LOG2F=1 -DHAVE_HYPOTF=1 -DHAVE_CBRT=1 -DHAVE_CBRTF=1 -DHAVE_STRUCT_STAT_ST_BLKSIZE=1 -DHAVE_STRUCT_STAT_ST_BLOCKS=1 -DHAVE_STRUCT_STAT_ST_RDEV=1 -DHAVE_STRUCT_TM_TM_ZONE=1 -DHAVE_TM_ZONE=1 -DUSE_READLINE=1 -DEXCEPTION_IN_MATH=1 -DHAVE_DECL_SYS_SIGLIST=1 -DHAVE_GETRUSAGE=1 -DYYTEXT_POINTER=1" - #endif - - #ifndef OCTAVE_CONF_UMFPACK_CPPFLAGS - #define OCTAVE_CONF_UMFPACK_CPPFLAGS "" - #endif - - #ifndef OCTAVE_CONF_UMFPACK_LDFLAGS - #define OCTAVE_CONF_UMFPACK_LDFLAGS "" - #endif - - #ifndef OCTAVE_CONF_UMFPACK_LIBS - #define OCTAVE_CONF_UMFPACK_LIBS "-lumfpack" - #endif - - #ifndef OCTAVE_CONF_USE_64_BIT_IDX_T - #define OCTAVE_CONF_USE_64_BIT_IDX_T "false" - #endif - - #ifndef OCTAVE_CONF_ENABLE_DYNAMIC_LINKING - #define OCTAVE_CONF_ENABLE_DYNAMIC_LINKING "true" - #endif - - #ifndef OCTAVE_CONF_X11_INCFLAGS - #define OCTAVE_CONF_X11_INCFLAGS "" - #endif - - #ifndef OCTAVE_CONF_X11_LIBS - #define OCTAVE_CONF_X11_LIBS "-lX11" - #endif - - #ifndef OCTAVE_CONF_XTRA_CFLAGS - #define OCTAVE_CONF_XTRA_CFLAGS "" - #endif - - #ifndef OCTAVE_CONF_XTRA_CXXFLAGS - #define OCTAVE_CONF_XTRA_CXXFLAGS "-I/usr/include/freetype2 " - #endif - - #ifndef OCTAVE_CONF_YACC - #define OCTAVE_CONF_YACC "bison -y" - #endif - - #ifndef OCTAVE_CONF_YFLAGS - #define OCTAVE_CONF_YFLAGS "" - #endif - - #ifndef OCTAVE_CONF_Z_CPPFLAGS - #define OCTAVE_CONF_Z_CPPFLAGS "" - #endif - - #ifndef OCTAVE_CONF_Z_LDFLAGS - #define OCTAVE_CONF_Z_LDFLAGS "" - #endif - - #ifndef OCTAVE_CONF_Z_LIBS - #define OCTAVE_CONF_Z_LIBS "-lz" - #endif - - #ifndef OCTAVE_CONF_config_opts - #define OCTAVE_CONF_config_opts "" - #endif - - #endif --- 0 ---- diff -cNr octave-3.4.0/src/oct-hist.cc octave-3.4.1/src/oct-hist.cc *** octave-3.4.0/src/oct-hist.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/oct-hist.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 559,565 **** history list using the editor named by the variable @w{@env{EDITOR}}. The\n\ commands to be edited are first copied to a temporary file. When you\n\ exit the editor, Octave executes the commands that remain in the file.\n\ ! It is often more convenient to use @code{edit_history} to define functions \n\ rather than attempting to enter them directly on the command line.\n\ By default, the block of commands is executed as soon as you exit the\n\ editor. To avoid executing any commands, simply delete all the lines\n\ --- 559,565 ---- history list using the editor named by the variable @w{@env{EDITOR}}. The\n\ commands to be edited are first copied to a temporary file. When you\n\ exit the editor, Octave executes the commands that remain in the file.\n\ ! It is often more convenient to use @code{edit_history} to define functions\n\ rather than attempting to enter them directly on the command line.\n\ By default, the block of commands is executed as soon as you exit the\n\ editor. To avoid executing any commands, simply delete all the lines\n\ *************** *** 615,621 **** omitted, use the default history file (normally @file{~/.octave_hist}).\n\ \n\ @item -r @var{file}\n\ ! Read the file @var{file}, appending its contents to the current \n\ history list. If the name is omitted, use the default history file\n\ (normally @file{~/.octave_hist}).\n\ \n\ --- 615,621 ---- omitted, use the default history file (normally @file{~/.octave_hist}).\n\ \n\ @item -r @var{file}\n\ ! Read the file @var{file}, appending its contents to the current\n\ history list. If the name is omitted, use the default history file\n\ (normally @file{~/.octave_hist}).\n\ \n\ diff -cNr octave-3.4.0/src/oct-parse.cc octave-3.4.1/src/oct-parse.cc *** octave-3.4.0/src/oct-parse.cc 2011-02-08 05:07:40.000000000 -0500 --- octave-3.4.1/src/oct-parse.cc 2011-06-15 11:35:10.000000000 -0400 *************** *** 7186,7193 **** DEFUN (mfilename, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} mfilename ()\n\ ! @deftypefnx {Built-in Function} {} mfilename (@code{\"fullpath\"})\n\ ! @deftypefnx {Built-in Function} {} mfilename (@code{\"fullpathext\"})\n\ Return the name of the currently executing file. At the top-level,\n\ return the empty string. Given the argument @code{\"fullpath\"},\n\ include the directory part of the file name, but not the extension.\n\ --- 7186,7193 ---- DEFUN (mfilename, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} mfilename ()\n\ ! @deftypefnx {Built-in Function} {} mfilename (\"fullpath\")\n\ ! @deftypefnx {Built-in Function} {} mfilename (\"fullpathext\")\n\ Return the name of the currently executing file. At the top-level,\n\ return the empty string. Given the argument @code{\"fullpath\"},\n\ include the directory part of the file name, but not the extension.\n\ *************** *** 7434,7440 **** error ("builtin: lookup for symbol `%s' failed", name.c_str ()); } else ! error ("builtin: expecting function name as first argument"); } else print_usage (); --- 7434,7440 ---- error ("builtin: lookup for symbol `%s' failed", name.c_str ()); } else ! error ("builtin: function name (F) must be a string"); } else print_usage (); *************** *** 7774,7780 **** else if (context == "base") octave_call_stack::goto_base_frame (); else ! error ("assignin: context must be \"caller\" or \"base\""); if (! error_state) { --- 7774,7780 ---- else if (context == "base") octave_call_stack::goto_base_frame (); else ! error ("assignin: CONTEXT must be \"caller\" or \"base\""); if (! error_state) { *************** *** 7787,7800 **** if (valid_identifier (nm)) symbol_table::varref (nm) = args(2); else ! error ("assignin: invalid variable name"); } else ! error ("assignin: expecting variable name as second argument"); } } else ! error ("assignin: expecting string as first argument"); } else print_usage (); --- 7787,7800 ---- if (valid_identifier (nm)) symbol_table::varref (nm) = args(2); else ! error ("assignin: invalid variable name in argument VARNAME"); } else ! error ("assignin: VARNAME must be a string"); } } else ! error ("assignin: CONTEXT must be a string"); } else print_usage (); *************** *** 7827,7833 **** else if (context == "base") octave_call_stack::goto_base_frame (); else ! error ("evalin: context must be \"caller\" or \"base\""); if (! error_state) { --- 7827,7833 ---- else if (context == "base") octave_call_stack::goto_base_frame (); else ! error ("evalin: CONTEXT must be \"caller\" or \"base\""); if (! error_state) { *************** *** 7864,7870 **** } } else ! error ("evalin: expecting string as first argument"); } else print_usage (); --- 7864,7870 ---- } } else ! error ("evalin: CONTEXT must be a string"); } else print_usage (); diff -cNr octave-3.4.0/src/oct-parse.yy octave-3.4.1/src/oct-parse.yy *** octave-3.4.0/src/oct-parse.yy 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/oct-parse.yy 2011-06-15 11:13:48.000000000 -0400 *************** *** 4021,4028 **** DEFUN (mfilename, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} mfilename ()\n\ ! @deftypefnx {Built-in Function} {} mfilename (@code{\"fullpath\"})\n\ ! @deftypefnx {Built-in Function} {} mfilename (@code{\"fullpathext\"})\n\ Return the name of the currently executing file. At the top-level,\n\ return the empty string. Given the argument @code{\"fullpath\"},\n\ include the directory part of the file name, but not the extension.\n\ --- 4021,4028 ---- DEFUN (mfilename, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} mfilename ()\n\ ! @deftypefnx {Built-in Function} {} mfilename (\"fullpath\")\n\ ! @deftypefnx {Built-in Function} {} mfilename (\"fullpathext\")\n\ Return the name of the currently executing file. At the top-level,\n\ return the empty string. Given the argument @code{\"fullpath\"},\n\ include the directory part of the file name, but not the extension.\n\ *************** *** 4269,4275 **** error ("builtin: lookup for symbol `%s' failed", name.c_str ()); } else ! error ("builtin: expecting function name as first argument"); } else print_usage (); --- 4269,4275 ---- error ("builtin: lookup for symbol `%s' failed", name.c_str ()); } else ! error ("builtin: function name (F) must be a string"); } else print_usage (); *************** *** 4609,4615 **** else if (context == "base") octave_call_stack::goto_base_frame (); else ! error ("assignin: context must be \"caller\" or \"base\""); if (! error_state) { --- 4609,4615 ---- else if (context == "base") octave_call_stack::goto_base_frame (); else ! error ("assignin: CONTEXT must be \"caller\" or \"base\""); if (! error_state) { *************** *** 4622,4635 **** if (valid_identifier (nm)) symbol_table::varref (nm) = args(2); else ! error ("assignin: invalid variable name"); } else ! error ("assignin: expecting variable name as second argument"); } } else ! error ("assignin: expecting string as first argument"); } else print_usage (); --- 4622,4635 ---- if (valid_identifier (nm)) symbol_table::varref (nm) = args(2); else ! error ("assignin: invalid variable name in argument VARNAME"); } else ! error ("assignin: VARNAME must be a string"); } } else ! error ("assignin: CONTEXT must be a string"); } else print_usage (); *************** *** 4662,4668 **** else if (context == "base") octave_call_stack::goto_base_frame (); else ! error ("evalin: context must be \"caller\" or \"base\""); if (! error_state) { --- 4662,4668 ---- else if (context == "base") octave_call_stack::goto_base_frame (); else ! error ("evalin: CONTEXT must be \"caller\" or \"base\""); if (! error_state) { *************** *** 4699,4705 **** } } else ! error ("evalin: expecting string as first argument"); } else print_usage (); --- 4699,4705 ---- } } else ! error ("evalin: CONTEXT must be a string"); } else print_usage (); diff -cNr octave-3.4.0/src/OPERATORS/op-struct.cc octave-3.4.1/src/OPERATORS/op-struct.cc *** octave-3.4.0/src/OPERATORS/op-struct.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/OPERATORS/op-struct.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 34,40 **** // struct ops. ! DEFUNOP (transpose, cell) { CAST_UNOP_ARG (const octave_struct&); --- 34,40 ---- // struct ops. ! DEFUNOP (transpose, struct) { CAST_UNOP_ARG (const octave_struct&); *************** *** 47,52 **** --- 47,59 ---- return octave_value (v.map_value().transpose ()); } + DEFUNOP (scalar_transpose, scalar_struct) + { + CAST_UNOP_ARG (const octave_scalar_struct&); + + return octave_value (v.scalar_map_value ()); + } + DEFNDCATOP_FN (struct_struct, struct, struct, map, map, concat) static octave_value *************** *** 85,90 **** --- 92,100 ---- INSTALL_UNOP (op_transpose, octave_struct, transpose); INSTALL_UNOP (op_hermitian, octave_struct, transpose); + INSTALL_UNOP (op_transpose, octave_scalar_struct, scalar_transpose); + INSTALL_UNOP (op_hermitian, octave_scalar_struct, scalar_transpose); + INSTALL_CATOP (octave_struct, octave_struct, struct_struct); INSTALL_CATOP (octave_struct, octave_matrix, struct_matrix); INSTALL_CATOP (octave_matrix, octave_struct, matrix_struct); diff -cNr octave-3.4.0/src/ov-base.cc octave-3.4.1/src/ov-base.cc *** octave-3.4.0/src/ov-base.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/ov-base.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 931,937 **** else { if (! error_state) ! error ("invalid conversion of multidimensional struct to scalar struct"); return octave_scalar_map (); } --- 931,937 ---- else { if (! error_state) ! error ("invalid conversion of multi-dimensional struct to scalar struct"); return octave_scalar_map (); } diff -cNr octave-3.4.0/src/ov-base-scalar.h octave-3.4.1/src/ov-base-scalar.h *** octave-3.4.0/src/ov-base-scalar.h 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/ov-base-scalar.h 2011-06-15 11:11:27.000000000 -0400 *************** *** 109,115 **** { return mode ? mode : ASCENDING; } Array sort_rows_idx (sortmode) const ! { return Array (dim_vector (1, 0)); } sortmode is_sorted_rows (sortmode mode = UNSORTED) const { return mode ? mode : ASCENDING; } --- 109,118 ---- { return mode ? mode : ASCENDING; } Array sort_rows_idx (sortmode) const ! { ! return Array (dim_vector (1, 1), ! static_cast (0)); ! } sortmode is_sorted_rows (sortmode mode = UNSORTED) const { return mode ? mode : ASCENDING; } diff -cNr octave-3.4.0/src/ov-bool-mat.cc octave-3.4.1/src/ov-bool-mat.cc *** octave-3.4.0/src/ov-bool-mat.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/ov-bool-mat.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 575,577 **** --- 575,589 ---- return retval; } + + /* + %!shared m, s, c + %! m = eye (2) != 0; + %! s = !0; + %! c = {"double", "single", "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "logical"}; + %!test + %! for i = 1:numel (c) + %! assert (logical (eye (2, c{i})), m) + %! assert (logical (eye (1, c{i})), s) + %! endfor + */ diff -cNr octave-3.4.0/src/ov.cc octave-3.4.1/src/ov.cc *** octave-3.4.0/src/ov.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/ov.cc 2011-06-15 11:11:28.000000000 -0400 *************** *** 2750,2757 **** idx.type = \"()\";\n\ idx.subs = @{\":\", 1:2@};\n\ subsref(val, idx)\n\ ! @result{} [ 8 1 \n\ ! 3 5 \n\ 4 9 ]\n\ @end group\n\ @end example\n\ --- 2750,2757 ---- idx.type = \"()\";\n\ idx.subs = @{\":\", 1:2@};\n\ subsref(val, idx)\n\ ! @result{} [ 8 1\n\ ! 3 5\n\ 4 9 ]\n\ @end group\n\ @end example\n\ diff -cNr octave-3.4.0/src/ov-cell.cc octave-3.4.1/src/ov-cell.cc *** octave-3.4.0/src/ov-cell.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/ov-cell.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 538,544 **** retval = tmp.is_sorted (mode); } else ! error ("issorted: not a cell array of strings"); return retval; } --- 538,544 ---- retval = tmp.is_sorted (mode); } else ! error ("issorted: A is not a cell array of strings"); return retval; } *************** *** 573,579 **** retval = tmp.is_sorted_rows (mode); } else ! error ("issorted: not a cell array of strings"); return retval; } --- 573,579 ---- retval = tmp.is_sorted_rows (mode); } else ! error ("issorted: A is not a cell array of strings"); return retval; } *************** *** 1271,1284 **** DEFUN (cell, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} cell (@var{x})\n\ ! @deftypefnx {Built-in Function} {} cell (@var{n}, @var{m})\n\ ! Create a new cell array object. If invoked with a single scalar\n\ ! argument, @code{cell} returns a square cell array with the dimension\n\ ! specified. If you supply two scalar arguments, @code{cell} takes\n\ ! them to be the number of rows and columns. If given a vector with two\n\ ! elements, @code{cell} uses the values of the elements as the number of\n\ ! rows and columns, respectively.\n\ @end deftypefn") { octave_value retval; --- 1271,1285 ---- DEFUN (cell, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} cell (@var{n})\n\ ! @deftypefnx {Built-in Function} {} cell (@var{m}, @var{n})\n\ ! @deftypefnx {Built-in Function} {} cell (@var{m}, @var{n}, @var{k}, @dots{})\n\ ! @deftypefnx {Built-in Function} {} cell ([@var{m} @var{n} @dots{}])\n\ ! Create a new cell array object.\n\ ! If invoked with a single scalar integer argument, return a square\n\ ! @nospell{NxN} cell array. If invoked with two or more scalar\n\ ! integer arguments, or a vector of integer values, return an array with\n\ ! the given dimensions.\n\ @end deftypefn") { octave_value retval; *************** *** 1375,1381 **** ? Cell (octave_value (std::string ())) : Cell (s, true)); else ! error ("cellstr: expecting argument to be a 2-d character array"); } } else --- 1376,1382 ---- ? Cell (octave_value (std::string ())) : Cell (s, true)); else ! error ("cellstr: argument STRING must be a 2-D character array"); } } else *************** *** 1460,1466 **** retval = c; } else ! error ("struct2cell: expecting argument to be a cell array"); } else print_usage (); --- 1461,1467 ---- retval = c; } else ! error ("struct2cell: argument S must be a structure"); } else print_usage (); diff -cNr octave-3.4.0/src/ov-class.cc octave-3.4.1/src/ov-class.cc *** octave-3.4.0/src/ov-class.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/ov-class.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 121,132 **** { std::string retval = class_name (); ! octave_function *fcn = octave_call_stack::current (); ! // Here we are just looking to see if FCN is a method or constructor ! // for any class, not specifically this one. ! if (fcn->is_class_method () || fcn->is_class_constructor ()) ! retval = fcn->dispatch_class (); return retval; } --- 121,135 ---- { std::string retval = class_name (); ! if (nparents () > 0) ! { ! octave_function *fcn = octave_call_stack::current (); ! // Here we are just looking to see if FCN is a method or constructor ! // for any class, not specifically this one. ! if (fcn && (fcn->is_class_method () || fcn->is_class_constructor ())) ! retval = fcn->dispatch_class (); ! } return retval; } *************** *** 1697,1703 **** parent_class_names = obj.parent_class_name_list (); } else ! error ("invalid call to exmplar_info constructor"); } --- 1700,1706 ---- parent_class_names = obj.parent_class_name_list (); } else ! error ("invalid call to exemplar_info constructor"); } *************** *** 1826,1832 **** } } else ! error ("class: expecting structure as first argument"); } else error ("class: `%s' is invalid as a class name in this context", --- 1829,1835 ---- } } else ! error ("class: expecting structure S as first argument"); } else error ("class: `%s' is invalid as a class name in this context", *************** *** 1836,1842 **** error ("class: invalid call from outside class constructor or method"); } else ! error ("class: expecting character string as second argument"); } return retval; --- 1839,1845 ---- error ("class: invalid call from outside class constructor or method"); } else ! error ("class: ID (class name) must be a character string"); } return retval; diff -cNr octave-3.4.0/src/ov-class.h octave-3.4.1/src/ov-class.h *** octave-3.4.0/src/ov-class.h 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/ov-class.h 2011-06-15 11:11:27.000000000 -0400 *************** *** 127,136 **** size_t nparents (void) const { return parent_list.size (); } octave_value reshape (const dim_vector& new_dims) const ! { return map.reshape (new_dims); } octave_value resize (const dim_vector& dv, bool = false) const ! { octave_map tmap = map; tmap.resize (dv); return tmap; } bool is_defined (void) const { return true; } --- 127,144 ---- size_t nparents (void) const { return parent_list.size (); } octave_value reshape (const dim_vector& new_dims) const ! { ! octave_class retval = octave_class (*this); ! retval.map = retval.map_value().reshape (new_dims); ! return octave_value (new octave_class (retval)); ! } octave_value resize (const dim_vector& dv, bool = false) const ! { ! octave_class retval = octave_class (*this); ! retval.map.resize (dv); ! return octave_value (new octave_class (retval)); ! } bool is_defined (void) const { return true; } diff -cNr octave-3.4.0/src/ov-fcn-handle.cc octave-3.4.1/src/ov-fcn-handle.cc *** octave-3.4.0/src/ov-fcn-handle.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/ov-fcn-handle.cc 2011-06-15 11:13:48.000000000 -0400 *************** *** 1646,1655 **** retval = m; } else ! error ("functions: invalid function handle object"); } else ! error ("functions: argument must be a function handle object"); } else print_usage (); --- 1646,1655 ---- retval = m; } else ! error ("functions: FCN_HANDLE is not a valid function handle object"); } else ! error ("functions: FCN_HANDLE argument must be a function handle object"); } else print_usage (); *************** *** 1686,1692 **** retval = fh_nm; } else ! error ("func2str: expecting valid function handle as first argument"); } else print_usage (); --- 1686,1692 ---- retval = fh_nm; } else ! error ("func2str: FCN_HANDLE must be a valid function handle"); } else print_usage (); *************** *** 1713,1719 **** if (! error_state) retval = make_fcn_handle (nm, nargin != 2); else ! error ("str2func: expecting string as first argument"); } else print_usage (); --- 1713,1719 ---- if (! error_state) retval = make_fcn_handle (nm, nargin != 2); else ! error ("str2func: FCN_NAME must be a string"); } else print_usage (); diff -cNr octave-3.4.0/src/ov-fcn-inline.cc octave-3.4.1/src/ov-fcn-inline.cc *** octave-3.4.0/src/ov-fcn-inline.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/ov-fcn-inline.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 763,775 **** } else { ! error ("inline: numeric argument must be nonnegative"); return retval; } } else { ! error ("inline: expecting second argument to be an integer"); return retval; } } --- 763,775 ---- } else { ! error ("inline: N must be positive or zero"); return retval; } } else { ! error ("inline: N must be an integer"); return retval; } } *************** *** 794,800 **** retval = octave_value (new octave_fcn_inline (fun, fargs)); } else ! error ("inline: first argument must be a string"); } else print_usage (); --- 794,800 ---- retval = octave_value (new octave_fcn_inline (fun, fargs)); } else ! error ("inline: STR argument must be a string"); } else print_usage (); *************** *** 829,835 **** if (fn) retval = octave_value (fn->fcn_text ()); else ! error ("formula: must be an inline function"); } else print_usage (); --- 829,835 ---- if (fn) retval = octave_value (fn->fcn_text ()); else ! error ("formula: FUN must be an inline function"); } else print_usage (); *************** *** 865,871 **** retval = t2; } else ! error ("argnames: argument must be an inline function"); } else print_usage (); --- 865,871 ---- retval = t2; } else ! error ("argnames: FUN must be an inline function"); } else print_usage (); *************** *** 879,884 **** --- 879,897 ---- Create a vectorized version of the inline function @var{fun}\n\ by replacing all occurrences of @code{*}, @code{/}, etc., with\n\ @code{.*}, @code{./}, etc.\n\ + \n\ + This may be useful, for example, when using inline functions with\n\ + numerical integration or optimization where a vector-valued function\n\ + is expected.\n\ + \n\ + @example\n\ + @group\n\ + fcn = vectorize (inline (\"x^2 - 1\"))\n\ + @result{} fcn = f(x) = x.^2 - 1\n\ + quadv (fcn, 0, 3)\n\ + @result{} 6\n\ + @end group\n\ + @end example\n\ @end deftypefn") { octave_value retval; diff -cNr octave-3.4.0/src/ov-float.cc octave-3.4.1/src/ov-float.cc *** octave-3.4.0/src/ov-float.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/ov-float.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 69,75 **** // 1x1 matrix back to a scalar value. Need a better solution // to this problem. ! octave_value tmp (new octave_matrix (matrix_value ())); return tmp.do_index_op (idx, resize_ok); } --- 69,75 ---- // 1x1 matrix back to a scalar value. Need a better solution // to this problem. ! octave_value tmp (new octave_float_matrix (float_matrix_value ())); return tmp.do_index_op (idx, resize_ok); } diff -cNr octave-3.4.0/src/ov-flt-re-mat.cc octave-3.4.1/src/ov-flt-re-mat.cc *** octave-3.4.0/src/ov-flt-re-mat.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/ov-flt-re-mat.cc 2011-06-15 11:11:27.000000000 -0400 *************** *** 823,829 **** } else if (args(0).is_sparse_type ()) { ! error ("single: sparse type do not support single precision"); } else if (args(0).is_complex_type ()) { --- 823,829 ---- } else if (args(0).is_sparse_type ()) { ! error ("single: sparse type does not support single precision"); } else if (args(0).is_complex_type ()) { diff -cNr octave-3.4.0/src/ov-intx.h octave-3.4.1/src/ov-intx.h *** octave-3.4.0/src/ov-intx.h 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/ov-intx.h 2011-06-15 11:11:27.000000000 -0400 *************** *** 564,569 **** --- 564,577 ---- return retval; } + bool bool_value (bool warn = false) const + { + if (warn && scalar != 0.0 && scalar != 1.0) + gripe_logical_conversion (); + + return scalar.bool_value (); + } + boolNDArray bool_array_value (bool warn = false) const { diff -cNr octave-3.4.0/src/ov-struct.cc octave-3.4.1/src/ov-struct.cc *** octave-3.4.0/src/ov-struct.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/ov-struct.cc 2011-06-15 11:11:28.000000000 -0400 *************** *** 707,714 **** %!assert(isstruct(x)); %!assert(isempty(fieldnames(x))); %!fail("struct('a',{1,2},'b',{1,2,3})","dimensions of parameter 2 do not match those of parameter 4") ! %!fail("struct(1,2,3,4)","struct expects alternating \"field\", VALUE pairs"); ! %!fail("struct('1',2,'3')","struct expects alternating \"field\", VALUE pairs"); */ bool --- 707,714 ---- %!assert(isstruct(x)); %!assert(isempty(fieldnames(x))); %!fail("struct('a',{1,2},'b',{1,2,3})","dimensions of parameter 2 do not match those of parameter 4") ! %!fail("struct(1,2,3,4)","struct: expecting alternating \"field\", VALUE pairs"); ! %!fail("struct('1',2,'3')","struct: expecting alternating \"field\", VALUE pairs"); */ bool *************** *** 1725,1732 **** %!assert(isstruct(x)); %!assert(isempty(fieldnames(x))); %!fail("struct('a',{1,2},'b',{1,2,3})","dimensions of parameter 2 do not match those of parameter 4") ! %!fail("struct(1,2,3,4)","struct expects alternating \"field\", VALUE pairs"); ! %!fail("struct('1',2,'3')","struct expects alternating \"field\", VALUE pairs"); */ DEFUN (struct, args, , --- 1725,1732 ---- %!assert(isstruct(x)); %!assert(isempty(fieldnames(x))); %!fail("struct('a',{1,2},'b',{1,2,3})","dimensions of parameter 2 do not match those of parameter 4") ! %!fail("struct(1,2,3,4)","struct: expecting alternating \"field\", VALUE pairs"); ! %!fail("struct('1',2,'3')","struct: expecting alternating \"field\", VALUE pairs"); */ DEFUN (struct, args, , *************** *** 1790,1796 **** { if (! args(i).is_string () || i + 1 >= nargin) { ! error ("struct expects alternating \"field\", VALUE pairs"); return retval; } } --- 1790,1796 ---- { if (! args(i).is_string () || i + 1 >= nargin) { ! error ("struct: expecting alternating \"field\", VALUE pairs"); return retval; } } *************** *** 2048,2058 **** if (args.length () == 3) { if (! args(0).is_cell ()) ! error ("cell2struct: first argument must be a cell"); else if (! (args(1).is_cellstr () || args(1).is_char_matrix ())) ! error ("cell2struct: second argument must be a cell array of strings or a character matrix"); else if (! args(2).is_real_scalar ()) ! error ("cell2struct: third argument must be a real scalar"); else { const Cell vals = args(0).cell_value (); --- 2048,2058 ---- if (args.length () == 3) { if (! args(0).is_cell ()) ! error ("cell2struct: argument CELL must be of type cell"); else if (! (args(1).is_cellstr () || args(1).is_char_matrix ())) ! error ("cell2struct: FIELDS must be a cell array of strings or a character matrix"); else if (! args(2).is_real_scalar ()) ! error ("cell2struct: DIM must be a real scalar"); else { const Cell vals = args(0).cell_value (); *************** *** 2061,2072 **** octave_idx_type ext = 0; if (dim < 0) ! error ("cell2struct: dim must be a valid dimension"); else { ext = vals.ndims () > dim ? vals.dims ()(dim) : 1; if (ext != fields.numel ()) ! error ("cell2struct: number of fields doesn't match dimension"); } --- 2061,2072 ---- octave_idx_type ext = 0; if (dim < 0) ! error ("cell2struct: DIM must be a valid dimension"); else { ext = vals.ndims () > dim ? vals.dims ()(dim) : 1; if (ext != fields.numel ()) ! error ("cell2struct: number of FIELDS does not match dimension"); } diff -cNr octave-3.4.0/src/ov-typeinfo.cc octave-3.4.1/src/ov-typeinfo.cc *** octave-3.4.0/src/ov-typeinfo.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/ov-typeinfo.cc 2011-06-15 11:11:28.000000000 -0400 *************** *** 591,597 **** DEFUN (typeinfo, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} typeinfo (@var{expr})\n\ \n\ Return the type of the expression @var{expr}, as a string. If\n\ @var{expr} is omitted, return an array of strings containing all the\n\ --- 591,598 ---- DEFUN (typeinfo, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} typeinfo ()\n\ ! @deftypefnx {Built-in Function} {} typeinfo (@var{expr})\n\ \n\ Return the type of the expression @var{expr}, as a string. If\n\ @var{expr} is omitted, return an array of strings containing all the\n\ diff -cNr octave-3.4.0/src/ov-usr-fcn.cc octave-3.4.1/src/ov-usr-fcn.cc *** octave-3.4.0/src/ov-usr-fcn.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/ov-usr-fcn.cc 2011-06-15 11:11:28.000000000 -0400 *************** *** 639,645 **** error ("nargin: invalid function"); } else ! error ("nargin: expecting string as first argument"); } else if (nargin == 0) { --- 639,645 ---- error ("nargin: invalid function"); } else ! error ("nargin: FCN_NAME must be a string"); } else if (nargin == 0) { *************** *** 681,687 **** @code{f}.\n\ \n\ At the top level, @code{nargout} is undefined.\n\ ! @seealso{nargin, varargin, varargout}\n\ @end deftypefn") { octave_value retval; --- 681,687 ---- @code{f}.\n\ \n\ At the top level, @code{nargout} is undefined.\n\ ! @seealso{nargin, isargout, varargin, varargout}\n\ @end deftypefn") { octave_value retval; *************** *** 713,719 **** error ("nargout: invalid function"); } else ! error ("nargout: expecting string as first argument"); } else if (nargin == 0) { --- 713,719 ---- error ("nargout: invalid function"); } else ! error ("nargout: FCN_NAME must be a string"); } else if (nargin == 0) { *************** *** 758,764 **** { if (k != xround (k) || k <= 0) { ! error ("isargout: argument must be a positive integer"); return false; } else --- 758,764 ---- { if (k != xround (k) || k <= 0) { ! error ("isargout: K must be a positive integer"); return false; } else diff -cNr octave-3.4.0/src/pr-output.cc octave-3.4.1/src/pr-output.cc *** octave-3.4.0/src/pr-output.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/pr-output.cc 2011-06-15 11:11:28.000000000 -0400 *************** *** 3024,3030 **** } #define INSTANTIATE_ABS(T) \ ! template /* static */ inline T abs (T) INSTANTIATE_ABS(signed char); INSTANTIATE_ABS(short); --- 3024,3030 ---- } #define INSTANTIATE_ABS(T) \ ! template /* static */ T abs (T) INSTANTIATE_ABS(signed char); INSTANTIATE_ABS(short); *************** *** 3422,3428 **** retval = string_vector (lst); } else ! error ("rats: expecting numeric input"); } } --- 3422,3428 ---- retval = string_vector (lst); } else ! error ("rats: X must be numeric"); } } *************** *** 3509,3515 **** if (osp) args(1).print (*osp); else ! error ("fdisp: stream not open for writing"); } } else --- 3509,3515 ---- if (osp) args(1).print (*osp); else ! error ("fdisp: stream FID not open for writing"); } } else diff -cNr octave-3.4.0/src/pt-mat.cc octave-3.4.1/src/pt-mat.cc *** octave-3.4.0/src/pt-mat.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/pt-mat.cc 2011-06-15 11:11:28.000000000 -0400 *************** *** 904,910 **** } else { ! ::error ("cat not find overloaded horzcat function"); goto done; } } --- 904,910 ---- } else { ! ::error ("cannot find overloaded horzcat function"); goto done; } } *************** *** 925,931 **** retval = tmp2 (0); } else ! ::error ("cat not find overloaded vertcat function"); } } else if (result_type == "double") --- 925,931 ---- retval = tmp2 (0); } else ! ::error ("cannot find overloaded vertcat function"); } } else if (result_type == "double") diff -cNr octave-3.4.0/src/sparse.cc octave-3.4.1/src/sparse.cc *** octave-3.4.0/src/sparse.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/sparse.cc 2011-06-15 11:11:28.000000000 -0400 *************** *** 130,143 **** n = args(1).idx_type_value (); } else ! error ("sparse: expecting scalar dimensions"); if (! error_state) { if (m >= 0 && n >= 0) retval = SparseMatrix (m, n); else ! error ("sparse: dimensions must be nonnegative"); } } else if (nargin >= 3) --- 130,143 ---- n = args(1).idx_type_value (); } else ! error ("sparse: dimensions M,N must be scalar"); if (! error_state) { if (m >= 0 && n >= 0) retval = SparseMatrix (m, n); else ! error ("sparse: dimensions M,N must be positive or zero"); } } else if (nargin >= 3) *************** *** 258,264 **** else if (m >= 0 && n >= 0 && nz >= 0) retval = SparseMatrix (dim_vector (m, n), nz); else ! error ("spalloc: m,n,nz must be non-negative"); } else print_usage (); --- 258,264 ---- else if (m >= 0 && n >= 0 && nz >= 0) retval = SparseMatrix (dim_vector (m, n), nz); else ! error ("spalloc: M,N,NZ must be non-negative"); } else print_usage (); diff -cNr octave-3.4.0/src/strfns.cc octave-3.4.1/src/strfns.cc *** octave-3.4.0/src/strfns.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/strfns.cc 2011-06-15 11:11:28.000000000 -0400 *************** *** 889,895 **** if (! error_state) s.list_in_columns (buf, width); else ! error ("list_in_columns: expecting width to be an integer"); } retval = buf.str (); --- 889,895 ---- if (! error_state) s.list_in_columns (buf, width); else ! error ("list_in_columns: WIDTH must be an integer"); } retval = buf.str (); diff -cNr octave-3.4.0/src/syscalls.cc octave-3.4.1/src/syscalls.cc *** octave-3.4.0/src/syscalls.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/syscalls.cc 2011-06-15 11:11:28.000000000 -0400 *************** *** 229,235 **** } } else ! error ("exec: first argument must be a string"); } else print_usage (); --- 229,235 ---- } } else ! error ("exec: FILE must be a string"); } else print_usage (); *************** *** 359,365 **** error ("popen2: arguments must be character strings"); } else ! error ("popen2: first argument must be a string"); } else print_usage (); --- 359,365 ---- error ("popen2: arguments must be character strings"); } else ! error ("popen2: COMMAND argument must be a string"); } else print_usage (); *************** *** 502,508 **** } } else ! error ("fcntl: file id, request, and argument must be integers"); } else print_usage (); --- 502,508 ---- } } else ! error ("fcntl: FID, REQUEST, and ARG must be integers"); } else print_usage (); *************** *** 814,820 **** error ("mkfifo: MODE must be an integer"); } else ! error ("mkfifo: file name must be a string"); } else print_usage (); --- 814,820 ---- error ("mkfifo: MODE must be an integer"); } else ! error ("mkfifo: FILE must be a string"); } else print_usage (); *************** *** 968,974 **** dev = 2049\n\ @}\n\ @result{} err = 0\n\ ! @result{} msg = \n\ @end example\n\ @end deftypefn") { --- 968,974 ---- dev = 2049\n\ @}\n\ @result{} err = 0\n\ ! @result{} msg =\n\ @end example\n\ @end deftypefn") { *************** *** 1022,1028 **** if (! error_state) retval = file_stat::is_reg (static_cast (mode)); else ! error ("S_ISREG: invalid mode value"); } else print_usage (); --- 1022,1028 ---- if (! error_state) retval = file_stat::is_reg (static_cast (mode)); else ! error ("S_ISREG: invalid MODE value"); } else print_usage (); *************** *** 1047,1053 **** if (! error_state) retval = file_stat::is_dir (static_cast (mode)); else ! error ("S_ISDIR: invalid mode value"); } else print_usage (); --- 1047,1053 ---- if (! error_state) retval = file_stat::is_dir (static_cast (mode)); else ! error ("S_ISDIR: invalid MODE value"); } else print_usage (); *************** *** 1072,1078 **** if (! error_state) retval = file_stat::is_chr (static_cast (mode)); else ! error ("S_ISCHR: invalid mode value"); } else print_usage (); --- 1072,1078 ---- if (! error_state) retval = file_stat::is_chr (static_cast (mode)); else ! error ("S_ISCHR: invalid MODE value"); } else print_usage (); *************** *** 1097,1103 **** if (! error_state) retval = file_stat::is_blk (static_cast (mode)); else ! error ("S_ISBLK: invalid mode value"); } else print_usage (); --- 1097,1103 ---- if (! error_state) retval = file_stat::is_blk (static_cast (mode)); else ! error ("S_ISBLK: invalid MODE value"); } else print_usage (); *************** *** 1122,1128 **** if (! error_state) retval = file_stat::is_fifo (static_cast (mode)); else ! error ("S_ISFIFO: invalid mode value"); } else print_usage (); --- 1122,1128 ---- if (! error_state) retval = file_stat::is_fifo (static_cast (mode)); else ! error ("S_ISFIFO: invalid MODE value"); } else print_usage (); *************** *** 1147,1153 **** if (! error_state) retval = file_stat::is_lnk (static_cast (mode)); else ! error ("S_ISLNK: invalid mode value"); } else print_usage (); --- 1147,1153 ---- if (! error_state) retval = file_stat::is_lnk (static_cast (mode)); else ! error ("S_ISLNK: invalid MODE value"); } else print_usage (); *************** *** 1172,1178 **** if (! error_state) retval = file_stat::is_sock (static_cast (mode)); else ! error ("S_ISSOCK: invalid mode value"); } else print_usage (); --- 1172,1178 ---- if (! error_state) retval = file_stat::is_sock (static_cast (mode)); else ! error ("S_ISSOCK: invalid MODE value"); } else print_usage (); *************** *** 1182,1189 **** DEFUN (gethostname, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {[@var{uts}, @var{err}, @var{msg}] =} uname ()\n\ ! Return the hostname of the system on which Octave is running\n\ @end deftypefn") { octave_value retval; --- 1182,1189 ---- DEFUN (gethostname, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} gethostname ()\n\ ! Return the hostname of the system where Octave is running.\n\ @end deftypefn") { octave_value retval; *************** *** 1274,1280 **** retval(1) = msg; } else ! error ("unlink: file name must be a string"); } else print_usage (); --- 1274,1280 ---- retval(1) = msg; } else ! error ("unlink: FILE must be a string"); } else print_usage (); *************** *** 1388,1394 **** if (! error_state) retval = WIFEXITED (status); else ! error ("WIFEXITED: expecting integer argument"); } #else warning ("WIFEXITED always returns false in this version of Octave"); --- 1388,1394 ---- if (! error_state) retval = WIFEXITED (status); else ! error ("WIFEXITED: STATUS must be an integer"); } #else warning ("WIFEXITED always returns false in this version of Octave"); *************** *** 1416,1422 **** if (! error_state) retval = WEXITSTATUS (status); else ! error ("WEXITSTATUS: expecting integer argument"); } #else warning ("WEXITSTATUS always returns false in this version of Octave"); --- 1416,1422 ---- if (! error_state) retval = WEXITSTATUS (status); else ! error ("WEXITSTATUS: STATUS must be an integer"); } #else warning ("WEXITSTATUS always returns false in this version of Octave"); *************** *** 1443,1449 **** if (! error_state) retval = WIFSIGNALED (status); else ! error ("WIFSIGNALED: expecting integer argument"); } #else warning ("WIFSIGNALED always returns false in this version of Octave"); --- 1443,1449 ---- if (! error_state) retval = WIFSIGNALED (status); else ! error ("WIFSIGNALED: STATUS must be an integer"); } #else warning ("WIFSIGNALED always returns false in this version of Octave"); *************** *** 1471,1477 **** if (! error_state) retval = WTERMSIG (status); else ! error ("WTERMSIG: expecting integer argument"); } #else warning ("WTERMSIG always returns false in this version of Octave"); --- 1471,1477 ---- if (! error_state) retval = WTERMSIG (status); else ! error ("WTERMSIG: STATUS must be an integer"); } #else warning ("WTERMSIG always returns false in this version of Octave"); *************** *** 1501,1507 **** if (! error_state) retval = WCOREDUMP (status); else ! error ("WCOREDUMP: expecting integer argument"); } #else warning ("WCOREDUMP always returns false in this version of Octave"); --- 1501,1507 ---- if (! error_state) retval = WCOREDUMP (status); else ! error ("WCOREDUMP: STATUS must be an integer"); } #else warning ("WCOREDUMP always returns false in this version of Octave"); *************** *** 1530,1536 **** if (! error_state) retval = WIFSTOPPED (status); else ! error ("WIFSTOPPED: expecting integer argument"); } #else warning ("WIFSTOPPED always returns false in this version of Octave"); --- 1530,1536 ---- if (! error_state) retval = WIFSTOPPED (status); else ! error ("WIFSTOPPED: STATUS must be an integer"); } #else warning ("WIFSTOPPED always returns false in this version of Octave"); *************** *** 1558,1564 **** if (! error_state) retval = WSTOPSIG (status); else ! error ("WSTOPSIG: expecting integer argument"); } #else warning ("WSTOPSIG always returns false in this version of Octave"); --- 1558,1564 ---- if (! error_state) retval = WSTOPSIG (status); else ! error ("WSTOPSIG: STATUS must be an integer"); } #else warning ("WSTOPSIG always returns false in this version of Octave"); *************** *** 1585,1591 **** if (! error_state) retval = WIFCONTINUED (status); else ! error ("WIFCONTINUED: expecting integer argument"); } #else warning ("WIFCONTINUED always returns false in this version of Octave"); --- 1585,1591 ---- if (! error_state) retval = WIFCONTINUED (status); else ! error ("WIFCONTINUED: STATUS must be an integer"); } #else warning ("WIFCONTINUED always returns false in this version of Octave"); *************** *** 1617,1623 **** retval(0) = result; } else ! error ("canonicalize_file_name: argument must be a character string"); } else print_usage (); --- 1617,1623 ---- retval(0) = result; } else ! error ("canonicalize_file_name: NAME must be a character string"); } else print_usage (); diff -cNr octave-3.4.0/src/sysdep.cc octave-3.4.1/src/sysdep.cc *** octave-3.4.0/src/sysdep.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/sysdep.cc 2011-06-15 11:11:28.000000000 -0400 *************** *** 576,585 **** if (! error_state) octave_env::putenv (var, val); else ! error ("putenv: second argument should be a string"); } else ! error ("putenv: first argument should be a string"); } else print_usage (); --- 576,585 ---- if (! error_state) octave_env::putenv (var, val); else ! error ("putenv: VALUE must be a string"); } else ! error ("putenv: VAR must be a string"); } else print_usage (); diff -cNr octave-3.4.0/src/toplev.cc octave-3.4.1/src/toplev.cc *** octave-3.4.0/src/toplev.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/toplev.cc 2011-06-15 11:11:28.000000000 -0400 *************** *** 895,907 **** type = et_async; else { ! error ("system: third arg must be \"sync\" or \"async\""); return retval; } } else { ! error ("system: third argument must be a character string"); return retval; } } --- 895,907 ---- type = et_async; else { ! error ("system: TYPE must be \"sync\" or \"async\""); return retval; } } else { ! error ("system: TYPE must be a character string"); return retval; } } *************** *** 912,918 **** if (error_state) { ! error ("system: expecting second argument to be true or false"); return retval; } } --- 912,918 ---- if (error_state) { ! error ("system: RETURN_OUTPUT must be boolean value true or false"); return retval; } } *************** *** 991,997 **** } } else ! error ("system: expecting std::string as first argument"); } else print_usage (); --- 991,997 ---- } } else ! error ("system: expecting string as first argument"); } else print_usage (); *************** *** 1141,1147 **** add_mode = args(1).bool_value (); if (error_state) ! error ("atexit: second argument must be a logical value"); } if (! error_state) --- 1141,1147 ---- add_mode = args(1).bool_value (); if (error_state) ! error ("atexit: FLAG argument must be a logical value"); } if (! error_state) *************** *** 1158,1164 **** } } else ! error ("atexit: argument must be a string"); } else print_usage (); --- 1158,1164 ---- } } else ! error ("atexit: FCN argument must be a string"); } else print_usage (); diff -cNr octave-3.4.0/src/utils.cc octave-3.4.1/src/utils.cc *** octave-3.4.0/src/utils.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/utils.cc 2011-06-15 11:11:28.000000000 -0400 *************** *** 94,100 **** "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} isvarname (@var{name})\n\ Return true if @var{name} is a valid variable name.\n\ ! @seealso{exist, who}\n\ @end deftypefn") { octave_value retval; --- 94,100 ---- "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} isvarname (@var{name})\n\ Return true if @var{name} is a valid variable name.\n\ ! @seealso{iskeyword, exist, who}\n\ @end deftypefn") { octave_value retval; *************** *** 317,323 **** } } else ! error ("file_in_loadpath: expecting string as first argument"); } else print_usage (); --- 317,323 ---- } } else ! error ("file_in_loadpath: FILE argument must be a string"); } else print_usage (); *************** *** 379,388 **** } } else ! error ("file_in_path: expecting string as second argument"); } else ! error ("file_in_path: expecting string as first argument"); } else print_usage (); --- 379,388 ---- } } else ! error ("file_in_path: all arguments must be strings"); } else ! error ("file_in_path: PATH must be a string"); } else print_usage (); *************** *** 615,621 **** if (args(0).is_string ()) retval = do_string_escapes (args(0).string_value ()); else ! error ("do_string_escapes: argument must be a string"); } else print_usage (); --- 615,621 ---- if (args(0).is_string ()) retval = do_string_escapes (args(0).string_value ()); else ! error ("do_string_escapes: STRING argument must be of type string"); } else print_usage (); *************** *** 721,727 **** if (args(0).is_string ()) retval = undo_string_escapes (args(0).string_value ()); else ! error ("undo_string_escapes: argument must be a string"); } else print_usage (); --- 721,727 ---- if (args(0).is_string ()) retval = undo_string_escapes (args(0).string_value ()); else ! error ("undo_string_escapes: S argument must be a string"); } else print_usage (); *************** *** 769,774 **** --- 769,775 ---- "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} make_absolute_filename (@var{file})\n\ Return the full name of @var{file}, relative to the current directory.\n\ + @seealso{is_absolute_filename, is_rooted_relative_filename, isdir}\n\ @end deftypefn") { octave_value retval = std::string (); *************** *** 780,786 **** if (! error_state) retval = octave_env::make_absolute (nm); else ! error ("make_absolute_filename: expecting argument to be a file name"); } else print_usage (); --- 781,787 ---- if (! error_state) retval = octave_env::make_absolute (nm); else ! error ("make_absolute_filename: FILE argument must be a file name"); } else print_usage (); *************** *** 790,796 **** DEFUN (find_dir_in_path, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} find_dir_in_path (@var{dir}, \"all\")\n\ Return the full name of the path element matching @var{dir}. The\n\ match is performed at the end of each path element. For example, if\n\ @var{dir} is @code{\"foo/bar\"}, it matches the path element\n\ --- 791,798 ---- DEFUN (find_dir_in_path, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} find_dir_in_path (@var{dir})\n\ ! @deftypefnx {Built-in Function} {} find_dir_in_path (@var{dir}, \"all\")\n\ Return the full name of the path element matching @var{dir}. The\n\ match is performed at the end of each path element. For example, if\n\ @var{dir} is @code{\"foo/bar\"}, it matches the path element\n\ *************** *** 798,804 **** or @code{\"/some/dir/allfoo/bar\"}.\n\ \n\ The second argument is optional. If it is supplied, return a cell array\n\ ! containing all the directory names that match.\n\ @end deftypefn") { octave_value retval = std::string (); --- 800,806 ---- or @code{\"/some/dir/allfoo/bar\"}.\n\ \n\ The second argument is optional. If it is supplied, return a cell array\n\ ! containing all name matches rather than just the first.\n\ @end deftypefn") { octave_value retval = std::string (); *************** *** 819,825 **** retval = Cell (load_path::find_matching_dirs (dir)); } else ! error ("find_dir_in_path: expecting argument to be a directory name"); } else print_usage (); --- 821,827 ---- retval = Cell (load_path::find_matching_dirs (dir)); } else ! error ("find_dir_in_path: DIR must be a directory name"); } else print_usage (); diff -cNr octave-3.4.0/src/variables.cc octave-3.4.1/src/variables.cc *** octave-3.4.0/src/variables.cc 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/src/variables.cc 2011-06-15 11:13:48.000000000 -0400 *************** *** 344,350 **** if (error_state) { ! error ("isglobal: expecting std::string argument"); return retval; } --- 344,350 ---- if (error_state) { ! error ("isglobal: NAME must be a string"); return retval; } *************** *** 546,551 **** --- 546,552 ---- @item \"dir\"\n\ Check only for directories.\n\ @end table\n\ + @seealso{file_in_loadpath}\n\ @end deftypefn") { octave_value retval = false; *************** *** 564,573 **** if (! error_state) retval = symbol_exist (name, type); else ! error ("exist: expecting second argument to be a string"); } else ! error ("exist: expecting first argument to be a string"); } else print_usage (); --- 565,574 ---- if (! error_state) retval = symbol_exist (name, type); else ! error ("exist: TYPE must be a string"); } else ! error ("exist: NAME must be a string"); } else print_usage (); *************** *** 1755,1761 **** \n\ If called as a function, return a cell array of defined variable names\n\ matching the given patterns.\n\ ! @seealso{whos, regexp}\n\ @end deftypefn") { octave_value retval; --- 1756,1762 ---- \n\ If called as a function, return a cell array of defined variable names\n\ matching the given patterns.\n\ ! @seealso{whos, isglobal, isvarname, exist, regexp}\n\ @end deftypefn") { octave_value retval; *************** *** 1827,1833 **** \n\ If @code{whos} is called as a function, return a struct array of defined\n\ variable names matching the given patterns. Fields in the structure\n\ ! describing each variable are: name, size, bytes, class, global, sparse, \n\ complex, nesting, persistent.\n\ @seealso{who, whos_line_format}\n\ @end deftypefn") --- 1828,1834 ---- \n\ If @code{whos} is called as a function, return a struct array of defined\n\ variable names matching the given patterns. Fields in the structure\n\ ! describing each variable are: name, size, bytes, class, global, sparse,\n\ complex, nesting, persistent.\n\ @seealso{who, whos_line_format}\n\ @end deftypefn") *************** *** 1954,1961 **** DEFUN (munlock, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} munlock (@var{fcn})\n\ ! Unlock the named function. If no function is named\n\ then unlock the current function.\n\ @seealso{mlock, mislocked, persistent}\n\ @end deftypefn") --- 1955,1963 ---- DEFUN (munlock, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} munlock ()\n\ ! @deftypefnx {Built-in Function} {} munlock (@var{fcn})\n\ ! Unlock the named function @var{fcn}. If no function is named\n\ then unlock the current function.\n\ @seealso{mlock, mislocked, persistent}\n\ @end deftypefn") *************** *** 1969,1975 **** if (! error_state) munlock (name); else ! error ("munlock: expecting argument to be a function name"); } else if (args.length () == 0) { --- 1971,1977 ---- if (! error_state) munlock (name); else ! error ("munlock: FCN must be a string"); } else if (args.length () == 0) { *************** *** 1989,1997 **** DEFUN (mislocked, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} mislocked (@var{fcn})\n\ ! Return true if the named function is locked. If no function is named\n\ ! then return true if the current function is locked.\n\ @seealso{mlock, munlock, persistent}\n\ @end deftypefn") { --- 1991,2000 ---- DEFUN (mislocked, args, , "-*- texinfo -*-\n\ ! @deftypefn {Built-in Function} {} mislocked ()\n\ ! @deftypefnx {Built-in Function} {} mislocked (@var{fcn})\n\ ! Return true if the named function @var{fcn} is locked. If no function is\n\ ! named then return true if the current function is locked.\n\ @seealso{mlock, munlock, persistent}\n\ @end deftypefn") { *************** *** 2004,2010 **** if (! error_state) retval = mislocked (name); else ! error ("mislocked: expecting argument to be a function name"); } else if (args.length () == 0) { --- 2007,2013 ---- if (! error_state) retval = mislocked (name); else ! error ("mislocked: FCN must be a string"); } else if (args.length () == 0) { *************** *** 2262,2268 **** Match the list of characters specified by @var{list}. If the first\n\ character is @code{!} or @code{^}, match all characters except those\n\ specified by @var{list}. For example, the pattern @samp{[a-zA-Z]} will\n\ ! match all lower and upper case alphabetic characters.\n\ @end table\n\ \n\ For example, the command\n\ --- 2265,2271 ---- Match the list of characters specified by @var{list}. If the first\n\ character is @code{!} or @code{^}, match all characters except those\n\ specified by @var{list}. For example, the pattern @samp{[a-zA-Z]} will\n\ ! match all lowercase and uppercase alphabetic characters.\n\ @end table\n\ \n\ For example, the command\n\ *************** *** 2310,2316 **** The arguments are treated as regular expressions as any variables that\n\ match will be cleared.\n\ @end table\n\ ! With the exception of @code{exclusive}, all long options can be used \n\ without the dash as well.\n\ @end deftypefn") { --- 2313,2319 ---- The arguments are treated as regular expressions as any variables that\n\ match will be cleared.\n\ @end table\n\ ! With the exception of @code{exclusive}, all long options can be used\n\ without the dash as well.\n\ @end deftypefn") { *************** *** 2521,2528 **** "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {@var{val} =} missing_function_hook ()\n\ @deftypefnx {Built-in Function} {@var{old_val} =} missing_function_hook (@var{new_val})\n\ ! Query or set the internal variable that allows setting a custom hook function\n\ ! called when an uknown identifier is requested.\n\ @end deftypefn") { return SET_INTERNAL_VARIABLE (missing_function_hook); --- 2524,2531 ---- "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {@var{val} =} missing_function_hook ()\n\ @deftypefnx {Built-in Function} {@var{old_val} =} missing_function_hook (@var{new_val})\n\ ! Query or set the internal variable that specifies the function to call when\n\ ! an unknown identifier is requested.\n\ @end deftypefn") { return SET_INTERNAL_VARIABLE (missing_function_hook); diff -cNr octave-3.4.0/src/version.h octave-3.4.1/src/version.h *** octave-3.4.0/src/version.h 2011-02-08 05:07:40.000000000 -0500 --- octave-3.4.1/src/version.h 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,92 **** - /* - - Copyright (C) 1992-2011 John W. Eaton - - This file is part of Octave. - - Octave 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. - - Octave 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 Octave; see the file COPYING. If not, see - . - - */ - - #if !defined (octave_version_h) - #define octave_version_h 1 - - #define OCTAVE_VERSION "3.4.0" - - #define OCTAVE_API_VERSION_NUMBER 47 - - #define OCTAVE_API_VERSION "api-v47+" - - #define OCTAVE_RELEASE_DATE "2011-02-08" - - #define OCTAVE_COPYRIGHT "Copyright (C) 2011 John W. Eaton and others." - - // This is the first line printed by --version. The GNU coding - // standards say that the version number should follow the last space - // on the line. - - #define OCTAVE_NAME_AND_VERSION "GNU Octave, version " OCTAVE_VERSION - - #define OCTAVE_CONFIG_STATEMENT \ - "Octave was configured for \"" OCTAVE_CANONICAL_HOST_TYPE "\"." - - #define OCTAVE_COPYING_STATEMENT \ - "This is free software; see the source code for copying conditions." - - #define X_OCTAVE_WARRANTY_STATEMENT(ARG) \ - "There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or\n\ - FITNESS FOR A PARTICULAR PURPOSE." ARG - - #define OCTAVE_WARRANTY_STATEMENT \ - X_OCTAVE_WARRANTY_STATEMENT ("") - - #define OCTAVE_WWW_STATEMENT \ - "Additional information about Octave is available at http://www.octave.org." - - #define OCTAVE_CONTRIB_STATEMENT \ - "Please contribute if you find this software useful.\n\ - For more information, visit http://www.octave.org/help-wanted.html" - - #define OCTAVE_BUGS_STATEMENT \ - "Read http://www.octave.org/bugs.html to learn how to submit bug reports." - - #define OCTAVE_NAME_VERSION_AND_COPYRIGHT \ - OCTAVE_NAME_AND_VERSION "\n" \ - OCTAVE_COPYRIGHT - - #define OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY \ - X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY("") \ - - #define X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY(ARG) \ - OCTAVE_NAME_VERSION_AND_COPYRIGHT "\n" \ - OCTAVE_COPYING_STATEMENT "\n" \ - X_OCTAVE_WARRANTY_STATEMENT (ARG) "\n\n" \ - OCTAVE_CONFIG_STATEMENT - - #define X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS(ARG) \ - X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY(ARG) "\n\n" \ - OCTAVE_WWW_STATEMENT "\n\n" \ - OCTAVE_CONTRIB_STATEMENT "\n\n" \ - OCTAVE_BUGS_STATEMENT - - #define OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS \ - X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS ("") - - #define OCTAVE_STARTUP_MESSAGE \ - X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS \ - (" For details, type `warranty'.") "\n\n" \ - "For information about changes from previous versions, type `news'." - - #endif --- 0 ---- diff -cNr octave-3.4.0/test/ChangeLog octave-3.4.1/test/ChangeLog *** octave-3.4.0/test/ChangeLog 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/test/ChangeLog 1969-12-31 19:00:00.000000000 -0500 *************** *** 1,821 **** - 2010-02-02 Rik - - * build_sparse_tests.sh: Use testif to only run some sparse tests when - necessary libraries are installed. - - 2011-01-14 John W. Eaton - - * Update copyright notices for 2011. - - 2010-12-13 Rik - - * test_switch.m : Add test for switch statement with otherwise clause, - but no cases. - - 2010-11-10 John W. Eaton - - * fntests.m: Set warning state off for Octave:deprecated-functions. - (run_test_script): Do run tests for deprecated functions. - - 2010-11-09 John W. Eaton - - * test_parser.m: New file. - * Makefile.am (FCN_FILES): Add it to the list. - - 2010-09-29 Rik - - * fntests.m: Break output text differently for better readability. - - 2010-09-28 Rik - - * test/@Gork/set.m, test/fntests.m, test/test_func.m, test/test_io.m: - Untabify scripts. - - 2010-09-27 Rik - - * fntests.m: Use single quotes for regex when possible. - - 2010-09-26 Rik - - * fntests.m (has_tests, has_functions): Recode to remove requirement - for PCRE. - - 2010-09-24 Rik - - * fntests.m: Rephrase output for clarity. - - 2010-08-17 Rik - - * fntests.m: Add extra newline for more readable output. - - 2010-07-30 Rik - - * Makefile.am: New clean-local target to remove directories - created automatically during testing. - - 2010-04-28 John W. Eaton - - * test_struct.m: Update expected error message text. - - 2010-03-19 Jaroslav Hajek - - * test_slice.m: Use ID check rather than message for invalid resizing. - - 2010-03-05 Jaroslav Hajek - - * test_logical-wfi-f.m: Update. - * test_logical-wfi-t.m: Update. - * test_struct.m Update. - - 2010-01-29 John W. Eaton - - * fntests.m (hasfunctions): Only check for DEFUN in .cc files. - Return true for all .m files. - - 2010-01-14 David Grundberg - - * fntests.m (run_test_script): Check all *.cc files for tests. - - 2010-01-13 Rik - - * build_bc_overload_tests.sh: Correct test syntax (= vs. ==) - - 2010-01-13 John W. Eaton - - * Makefile.am (test_bc_overloads.m): Accept expected results - file as argument. Style fixes. - - 2010-01-13 Jaroslav Hajek - - * build_bc_overload_tests.sh: New shell script. - * build_bc_overloads_expected.m: New source (not normally used). - * bc_overloads_expected: New text file. - * Makefile.am: Build test_bc_overloads.m. - - 2009-12-25 John W. Eaton - - * fntests.m (hastests): Use regexp instead of findstr and only - match tests that appear as the first thing on a line. - - 2009-12-19 Rik - - * build_sparse_tests.sh: Use lognrnd instead of deprecated lognormal_rnd - - 2009-12-19 Rik - - * Makefile.am: Eliminate TOPDIR variable in favor of built-in automake - variables of top_builddir and top_srcdir. - - 2009-12-17 Rik - - * config/unix.exp: Remove obsolete file from repository - - 2009-12-17 Rik - - * @Blork/module.mk, @Cork/module.mk, @Dork/module.mk, - @Gork/module.mk, @Pork/module.mk, @Sneetch/module.mk, - @Snork/module.mk, @Spork/module.mk, Makefile.am: Distribute private - function directories necessary for OOP tests to work in tarballs - - 2009-12-03 John W. Eaton - - * Makefile.am (CLEANFILES, DISTCLEANFILES): New variables. - - 2009-11-10 John W. Eaton - - * @Blork/module.mk, @Cork/module.mk, @Dork/module.mk, - @Gork/module.mk, @Pork/module.mk, @Sneetch/module.mk, - @Snork/module.mk, @Spork/module.mk, Makefile.am: New files. - * Makefile.in: Delete. - - 2009-10-19 Rik - - * fntests.m: .cc files are now included in the list of files requiring - tests only if they define a user function (DEFUN or DEFUN_DLD) - - 2009-10-19 Rik - - * fntests.m: Remove deprecated functions from list of functions - requiring new tests to be written. - - 2009-10-08 Rik - - * fntests.m: Fix typo of an extra space in instructions to user. - - 2009-10-05 Rik - - * fntests.m: Fix typo directing users to the wrong log file - - 2009-06-23 Robert T. Short - - * @Blork/Blork.m, @Blork/bleek.m, @Blork/display.m, @Blork/get.m, - @Blork/set.m, @Cork/Cork.m, @Cork/click.m, @Cork/display.m, - @Cork/get.m, @Cork/set.m, @Dork/Dork.m, @Dork/bling.m, - @Dork/display.m, @Dork/gack.m, @Dork/get.m, @Dork/getStash.m, - @Dork/private/myStash.m, @Dork/set.m, @Gork/Gork.m, @Gork/cork.m, - @Gork/display.m, @Gork/gark.m, @Gork/get.m, @Gork/set.m, - @Gork/subsasgn.m, @Gork/subsref.m, @Pork/Pork.m, @Pork/bling.m, - @Pork/display.m, @Pork/get.m, @Pork/gurk.m, - @Pork/private/myStash.m, @Pork/set.m, @Sneetch/Sneetch.m, - @Sneetch/display.m, @Snork/Snork.m, @Snork/cack.m, - @Snork/display.m, @Snork/end.m, @Snork/get.m, @Snork/getStash.m, - @Snork/gick.m, @Snork/loadobj.m, @Snork/private/myStash.m, - @Snork/saveobj.m, @Snork/set.m, @Snork/subsasgn.m, - @Snork/subsindex.m, @Snork/subsref.m, @Spork/Spork.m, - @Spork/cack.m, @Spork/display.m, @Spork/geek.m, @Spork/get.m, - @Spork/getStash.m, @Spork/loadobj.m, @Spork/private/myStash.m, - @Spork/saveobj.m, @Spork/set.m, test_classes.m: New files. - - 2009-06-22 Jaroslav Hajek - - * test_null_assign.m: Fix test. - - 2009-04-17 Thorsten Meyer - - * test_struct.m: Add tests to prevent regression of bug with - indexed assignment into empty struct array. - - 2009-04-15 Thorsten Meyer - - * test_struct.m: Add tests for lazy copying in nested assignments - of struct elements. - - 2009-04-12 Thorsten Meyer - - * test_contin.m, test_error.m, test_eval-catch.m, test_for.m, - test_global.m, test_if.m, test_index-wfi-f.m, - /test_index-wfi-t.m, test_io.m, test_logical-wfi-f.m, - test_logical-wfi-t.m, test_prefer.m, test_recursion.m, - test_return.m, test_string.m, test_struct.m, test_switch.m, - test_system.m, test_transpose.m, test_try.m, test_unwind.m, - test_while.m: Remove obsolete comments. - - 2009-04-07 Carlo de Falco - - * test_io.m: Add a test for saving and reading a matrix with the - "-ascii" format. - - 2009-03-10 Jason Riedy - - * test_diag_perm.m: Add tests for permuting sparse matrices and - for the correct types from interactions between - pseudo-scalars (1x1 matrices). - - 2009-03-10 Jason Riedy - - * build_sparse_tests.sh: Add LU tests to the rectangular tests. - - 2009-03-10 Jason Riedy - - * test_diag_perm.m: Add a test for conversion to sparse form. - - 2009-03-09 Jason Riedy - - * test_diag_perm.m: Add tests for diag + sparse. - - 2009-03-08 Jason Riedy - - * test_diag_perm.m: Add tests for inverse scaling and sparse structure. - - 2009-03-08 Jason Riedy - - * test_diag_perm.m: Add tests for preserving sparse structure - when scaling. - - 2009-02-25 John W. Eaton - - * build_sparse_tests.sh: Note that saving sparse matrices to MAT - files fails when using 64-bit indexing. - - 2009-02-22 John W. Eaton - - * build_sparse_tests.sh: Fix diag matrix divide by zero test. - - 2009-02-18 John W. Eaton - - * test_args.m: Don't use assert to test for function handles. - - 2009-02-15 John W. Eaton - - * test_io.m, test_prefer.m: Avoid command-style function call - syntax when assigning results. - - 2009-02-09 John W. Eaton - - * fntests.m (hastests): Error if fopen fails. - - 2009-01-29 John W. Eaton - - * test_system.m: Use isfield instead of struct_contains. - - 2009-01-25 Thorsten Meyer - - * test_struct.m: Add struct array tests. - - 2009-01-23 Søren Hauberg - - * test_prefer.m: Update to match new API of the 'type' function. - - 2008-12-24 John W. Eaton - - * fntests.m (hastests): Use fread instead of fscanf to preserve - whitespace. - - 2008-12-02 Jaroslav Hajek - - * build_sparse_tests.sh: Fix test. - - 2008-10-28 Jaroslav Hajek - - * test_logical-wfi-f.m: Fix error messages. - * test_logical-wfi-t.m: Fix error messages. - * test_slice.m: Fix error messages. - - 2008-09-26 Jaroslav Hajek - - * test_null_assign.m: More test for null assignments. - - 2008-09-18 Jaroslav Hajek - - * test_null_assign.m: New tests. - - 2008-06-11 John W. Eaton - - * test_error.m: Fix tests for usage. - * test_eval-catch.m, test_try.m: Fix expected output from lasterr. - - 2008-06-02 David Bateman - - * test_arith.m: Delete and move tests close to function - definitions. - * test_func.m: Also test for single precision return values. - - * test_infnan.m, test_linalg.m, test_matrix.m, test_number.m): - Delet and move tests close to function definitions. - * test_range.m: Also test single precision examples. - - 2008-05-19 Bill Denney - - * test_args.m: Update format to allow running "test test_args" - and add default argument tests. - - 2008-05-09 Rafael Laboissiere - - * test_io.m, test_system.m: Use ischar instead of deprecated isstr. - - 2008-05-06 John W. Eaton - - * fntests.m: Use puts instead of printf where appropriate. - Fix missing newline in message. - - 2008-03-26 David Bateman - - * test_index-wfi-f.m: Split large block of tests. New tests. - - 2008-03-26 John W. Eaton - - * fntests.m (report_files_with_no_tests): New function. - Use it to report number of .m and .cc files without tests separately. - - 2008-03-25 John W. Eaton - - * test_index-wfi-f.m: New tests. - - 2008-03-25 Jaroslav Hajek - - * test_io.m: Add test for save with -struct modifier. - - 2008-03-20 David Bateman - - * test_func.m: Modify to test for char, cell and structure arrays. - - * test_func.m: New test code that ensures that all operations - which work on dimensions alone (squeeze, triu, etc.) work for all - objects and preserve type. - - 2008-04-09 Michael Goffioul - - * test_string.m: Fix isprint test under Win32, where - isprint(setstr(9)) is true. - * test_system.m: Add condition for various syscall tests. Make cd test - able to deal with drive-letter-only pathnames (e.g. C:\) under Win32. - - 2008-03-07 John W. Eaton - - * test_logical-wfi-t.m, test_logical-wfi-f.m: Update tests for - logical indexing bug fix. - - 2008-03-06 John W. Eaton - - * test_eval.m, test_diffeq.m, test_quad.m, test_signal.m: - Delete files with no tests. - - 2008-02-25 Ben Abbott - - * test_eval-catch.m, test_io.m, test_try.m: Use cstrcat instead of - strcat. - - 2008-02-22 David Bateman - - * build_sparse_tests.sh: Replaced removed sparse functions like - spdiag with their generic names. Fix lu tests for modified - syntax. Test vector and scaling or LU and chol functions. - * test_linalg.m: Change error message of failing chol/lu test. - - 2008-02-19 David Bateman - - * build_sparse_tests.sh: Replaced removed spars functions like - spmin, with their generic names. - - 2008-01-22 John W. Eaton - - * test_poly.m, test_set.m, test_stats.m: Delete files with no tests. - - 2008-01-22 Thomas Weber - - * test_linalg.m, test_matrix.m, test_number.m, test_poly.m, - test_signal.m, test_stats.m, test_string.m, test_system.m: - Move tests to individual source files. - - 2008-01-15 Thomas Weber - - * test_arith.m: Move tests to source files. - - 2008-01-15 John W. Eaton - - * test_audio.m, test_control.m, test_image.m, test_optim.m, - test_plot.m, test_unix.m: Delete files with no tests. - - 2007-12-21 John W. Eaton - - Version 3.0.0 released. - - 2007-12-18 David Bateman - - * build_sparse_tests.sh: Add tests for indexing like a([1,1],:), - a(:,[1,1]) and sparse(42)([1,1]). - - 2007-12-11 David Bateman - - * build_sparse_tests.sh: Drop argument to Fsparse to force mutation. - * test_range.m: Ditto. - - 2007-12-10 John W. Eaton - - * test_nonlin.m: Delete. - - 2007-12-03 David Bateman - - * fntests.m: Also count the skipped tests. - * build_sparse_tests.sh: As appropriate make tests conditional on - HAVE_UMFPACK, HAVE_CHOLMOD and HAVE_CXSPARSE. - - 2007-11-26 David Bateman - - * build_sparse_tests.sh: More care with sparse return values. - - 2007-10-30 Kim Hansen - - * build_sparse_tests.sh: Fix typo. - - 2007-10-23 John W. Eaton - - * build_sparse_tests.sh (gen_sparsesparse_elementop_tests): - Use xtest for "assert(as./bs,sparse(af./bf,true),100*eps);" test. - - 2007-10-12 John W. Eaton - - * Change copyright notices in all files that are part of Octave to - GPLv3 or any later version. - - 2007-10-06 John W. Eaton - - * test_poly.m: Move residue test to residue.m. - - 2007-09-29 Kim Hansen - - * test_range.m: Test range data - - 2007-09-21 John W. Eaton - - * test_slice.m: Fix test for x = ones ([0, 2]); x(idx) = N case. - See change for liboctave/Array.cc. - - 2007-06-15 John W. Eaton - - * fntests.m: Also report expected failures in summary. - Improved wording from Thomas Weber . - - 2007-06-06 John W. Eaton - - * test_signal.m: Rename internal assert function to xassert. - - 2007-04-26 David Bateman - - * test_for.m: Add tests for multi-dimensional matrices and cell - arrays. - - 2007-04-04 Rafael Laboissiere - - * Makefile.in (clean): Also remove a.wav file created by - testing wavwrite.m. - - 2007-04-03 Kim Hansen - - * test_slice.m: New file. - - 2007-03-27 John W. Eaton - - * Makefile.in (dist): Use ln, not $(LN_S). - - 2007-02-26 From Michael Goffioul - - * Makefile.in: Use $(LN_S) instead of ln or ln -s. - - 2007-02-20 John W. Eaton - - * Makefile.in (check): Use --norc instead of --no-site-file. - From: Alex Zvoleff - - 2007-02-19 John W. Eaton - - * test_system.m: Handle confirm_recursive_rmdir as function - instead of built-in variable. - - 2007-02-07 John W. Eaton - - * fntests.m: Add plea for help writing tests. - - 2007-01-11 John W. Eaton - - * fntests.m: Also handle scripts directory in the build tree. - - * Makefile.in (OCTAVE_SCRIPT_PATH): Delete unused variable. - - 2006-11-14 Luis F. Ortiz - - * fntests.m: Include liboctave in the list of directories to test. - - 2006-08-25 John W. Eaton - - * test_io.m (testls): Allow for small variance in loaded values - for text data formats. Use persistent local variables instead of - resetting rand seed. - - 2006-08-22 David Bateman - - * build_sparse_tests.sh: Don't force conversion to sparse boolean - return type for string mapper functions. - - 2006-08-21 John W. Eaton - - * test_io.m: Use isequal (a, b) instead of a != b. Use isequal - for struct and cell tests instead of more complex constructs. - - 2006-06-27 John W. Eaton - - * Makefile.in (distclean): Also remove test_sparse.m. - - 2006-06-07 John W. Eaton - - * fntests.m: Keep track of files with tests and report total. - - 2006-06-01 John W. Eaton - - * fntests.m (print_test_file_name, print_pass_fail): New functions. - (runtestdir, runtestscript): Use them. Print info for each file - with tests. Print info about files without tests to log file. - (run_test_dir): Rename from runtestdir. Change all uses. - (run_test_script): Rename from runtestscript. Change all uses. - Handle page_screen_output as a function instead of a built-in - variable. - - 2006-05-04 John W. Eaton - - * test_prefer.m: Adjust tests for eliminated built-in variables. - - 2006-04-29 John W. Eaton - - * Makefile.in (check): Use run-octave script. - - 2006-04-28 John W. Eaton - - * test_prefer.m: Adjust tests for new way of handling warning state. - * build_sparse_tests.sh: Likewise. - - 2006-04-11 John W. Eaton - - * test_system.m, test_struct.m, test_string.m, test_quad.m, - test_number.m, test_nonlin.m, test_matrix.m, test_linalg.m, - test_io.m, test_diffeq.m, test_arith.m: Update for new usage - message format. - - 2006-04-03 David Bateman - - * test_number.m: Reverse sense of isscalar and isvector tests - for recent changes. - - 2006-03-21 John W. Eaton - - * test_system.m: Use cell arrays of character strings in fnmatch - tests. - - 2006-03-16 John W. Eaton - - * test_system.m: End all *pwent tests with a call to endpwent. - End all *grent tests with a call to endgrent. - - 2006-03-14 John W. Eaton - - * fntests.m: Prettier printing of output. - * test_eval.m: Disable chatty tests. - - 2006-03-08 David Bateman - - * test_system.m: Fix recursive rmdir test for recent change. - - 2006-02-20 David Bateman - - * build_spase_tests.sh: Add tests for ldiv tests for rectangular - diagonal, permuted diagonal, triangular and permuted triangular - matrices. - - 2006-02-09 David Bateman - - * build_sparse_tests.sh: Add tests for sparse QR solvers. - - 2006-01-21 David Bateman - - * build_sparsetest.sh: Add new un-ordered indexing, assignment and - deletion tests. - - 2006-01-13 Bill Denney - - * test_system.m: Use filesep instead of "/" where needed. - - 2005-12-14 David Bateman - - * build_sparse_tests.sh: New script to build sparse matrix tests. - * fntests.m: New script to run the octave test code, with "make check". - * Makefile.in (DISTDIRS): Delete. - (dist): Simplify. - (OCTAVE_SCRIPT_PATH): Include . and $(srcdir). - (check): Run tests with fntest.m instead of runtest. - (test_sparse.m): New target. - (clean): Remove fntests.log instead of octave.log and octave.sum. - - * tests/test_args.m, tests/test_infnan.m, tests/test_set.m, - tests/test_arith.m, tests/test_io.m, tests/test_signal.m, - tests/test_audio.m, tests/test_linalg.m, tests/test_sparse.m, - tests/test_contin.m, tests/test_logical-wfi-f.m, tests/test_stats.m, - tests/test_control.m, tests/test_logical-wfi-t.m, tests/test_string.m, - tests/test_diffeq.m, tests/test_matrix.m, tests/test_struct.m, - tests/test_error.m, tests/test_nonlin.m, tests/test_switch.m, - tests/test_eval-catch.m, tests/test_number.m, tests/test_system.m, - tests/test_eval.m, tests/test_optim.m, tests/test_transpose.m, - tests/test_for.m, tests/test_plot.m, tests/test_try.m, - tests/test_global.m, tests/test_poly.m, tests/test_unix.m, - tests/test_if.m, tests/test_prefer.m, tests/test_unwind.m, - tests/test_image.m, tests/test_quad.m, tests/test_while.m, - tests/test_index-wfi-f.m, tests/test_recursion.m, - tests/test_index-wfi-t.m, tests/test_return.m: Initial of conversion - of DejaGnu tests to test/assert infrastructure. - - 2005-05-11 John W. Eaton - - * config/unix.exp: Start Octave with -H. - - 2002-10-31 John W. Eaton - - * octave.test/arith/prod-4.m, octave.test/arith/sum-4.m: - Cover more cases for empty matrices. - - 2002-10-15 Paul Kienzle - - * Makefile.in: Use @library_path_var@ instead of LD_LIBRARY_PATH. - - 2002-09-27 Paul Kienzle - - * qr-7.m: Remove randomness from complex matrix generator. - Increase tolerance on rosser matrix test. - - 2002-09-26 Paul Kienzle - - * octave.test/linalg/qr-7.m: Replace large random matrix tests - of economy QR decomposition with small predictable tests. - Include numerically sensitive rosser matrix test. Don't - report the measured norms. - - 2002-04-24 Bill Lash - - * test/octave.test/signal/signal.exp: Add unwrap test. - * test/octave.test/signal/unwrap-1.m: New file. - - 2002-04-24 David Billinghurst - - * octave.test/signal/signal.exp: Add tests for fft, ifft - fft2, ifft2 and detrend. - * octave.test/signal/detrend-1.m: New test. - * octave.test/signal/detrend-2.m: New test. - * octave.test/signal/detrend-3.m: New test. - * octave.test/signal/fft-1.m: New test. - * octave.test/signal/ifft-1.m: New test. - * octave.test/signal/fft2-1.m: New test. - * octave.test/signal/ifft2-1.m: New test. - - 2002-04-22 John W. Eaton - - * octave.test/diffeq/dassl-1.m (tol): Use relative tolerance for test. - * octave.test/diffeq/dassl-2.m (tol): Likewise. - * octave.test/diffeq/lsode-1.m (tol): Likewise. - * octave.test/diffeq/lsode-2.m (tol): Likewise. - * octave.test/diffeq/lsode-3.m (tol): Likewise. - - 2002-04-12 Kienzle - - * config/unix.exp: Allow running of individual tests with - "runtest *.exp" from any of the directories under test/octave.test. - - 2002-04-02 John W. Eaton - - * octave.test/linalg/qr-7.m: New test. - From Paul Kienzle . - - 2001-04-24 Christoph Spiel - - * Makefile.in (check): Allow user to specify which .exp file to run. - * octave.test/try, octave.test/eval-catch: New directories and tests. - - 2000-06-07 Ben Sapp - - * octave.test/quad/quad-1.m: Use absolute value of difference - from expected value when comparing with sqrt (eps). Potential - problems like this were noticed by Przemek Klosowski - . - * octave.test/quad/quad-2.m: Likewise. - * octave.test/arith/exp-1.m: Likewise. - * octave.test/linalg/cond-1.m: Likewise. - * octave.test/linalg/eig-1.m: Likewise. - * octave.test/linalg/eig-2.m: Likewise. - * octave.test/linalg/inv-1.m: Likewise. - * octave.test/linalg/lu-2.m: Likewise. - * octave.test/linalg/svd-2.m: Likewise. - * octave.test/linalg/svd-10.m: Likewise. - - 1999-10-29 John W. Eaton - - * octave.test/system/mktime-1.m (t): Compare whole seconds only. - - Fri Dec 4 20:55:47 1998 John W. Eaton - - * octave.test/system/clock-1.m: Use standard format specifiers %d - and %H instead of %e and %k. - - Fri Oct 23 15:53:01 1998 John W. Eaton - - * octave.test/arith/exp-5.m: New test. - - * octave.test/stats/mean-3.m: New version of mean accepts a second - optional arg. - - * octave.test/system/date-1.m: Correct test for new Y2K-compliant - date function. - - Wed May 27 00:38:27 1998 John W. Eaton - - * octave.test/diffeq/dassl-1.m, octave.test/diffeq/dassl-2.m, - octave.test/diffeq/lsode-1.m: New tests, from David Billinghurst - . - - * octave.test/diffeq/lsode-2.m, octave.test/diffeq/lsode-3.m: - New tests, from Peter Hopfgartner . - - Thu Apr 23 01:45:16 1998 John W. Eaton - - * Makefile.in: If $(SHARED_LIBS), set LD_LIBRARY_PATH for running - Octave before installation is complete. - - Wed Apr 15 15:23:43 1998 John W. Eaton - - * octave.test/index/dfi-f/m-2.m, octave.test/index/dfi-f/index.exp: - Expect this test to succed now. - - Thu Mar 5 20:35:26 1998 John W. Eaton - - * octave.test/system/gmtime-1.m, octave.test/system/localtime-1.m: - Not all systems have time zone info in the struct. - - Mon Mar 2 14:36:50 1998 John W. Eaton - - * octave.test/io/binary-io-1.m (id): Use binary flag in fopen call. - - Wed Apr 2 21:59:15 1997 John W. Eaton - - * octave.test/prefer/prefer.exp: Delete prefer-36 and prefer-37. - * octave.test/prefer/prefer-36.m, octave.test/prefer/prefer-37.m: - Delete test files. - - Wed Mar 12 16:56:41 1997 John W. Eaton - - * Makefile.in (install-strip): New target. - - Sat Mar 1 15:23:14 1997 John W. Eaton - - * Version 2.0.5 released. - - Thu Feb 20 02:58:05 1997 John W. Eaton - - * Version 2.0.4 released. - - Tue Feb 18 09:22:04 1997 John W. Eaton - - * Version 2.0.3 released. - - Mon Jan 27 15:51:58 1997 John W. Eaton - - * Version 2.0.2 released. - - Thu Jan 23 13:48:19 1997 John W. Eaton - - * octave.test/unwind/unwind-2.m: Scripts now stop executing when - errors are encountered. - - * octave.test/return/return.exp: Return at top level is no longer - an error. - - Tue Jan 7 00:16:23 1997 John W. Eaton - - * Version 2.0.1 released. - - Tue Dec 10 01:43:05 1996 John W. Eaton - - * Version 2.0 released. - - Fri Dec 6 15:23:39 1996 John W. Eaton - - * Version 1.94. - - Wed Nov 20 01:00:02 1996 John W. Eaton - - * Version 1.93. - - Thu Nov 14 00:05:57 1996 John W. Eaton - - * Version 1.92 - - Thu Nov 7 12:43:03 1996 John W. Eaton - - * Version 1.91. - - Wed Oct 30 17:19:12 1996 John W. Eaton - - * Version 1.90. - - * Makefile.in (DISTFILES): Add ChangeLog. - - Fri Feb 9 21:40:49 1996 John W. Eaton - - * Makefile.in (OCTAVE_SCRIPT_PATH): Add ../src directory (for .oct - files) and current directory (why not?). - - See ChangeLog.1 in the top level directory for earlier changes. --- 0 ---- diff -cNr octave-3.4.0/test/fntests.m octave-3.4.1/test/fntests.m *** octave-3.4.0/test/fntests.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/test/fntests.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 75,81 **** if (fid >= 0) str = fread (fid, "*char")'; fclose (fid); ! retval = ! isempty (regexp (str,"[\r\n](DEFUN|DEFUN_DLD)\\b", "once")); else error ("fopen failed: %s", f); endif --- 75,81 ---- if (fid >= 0) str = fread (fid, "*char")'; fclose (fid); ! retval = ! isempty (regexp (str,'^(DEFUN|DEFUN_DLD)\b', 'lineanchors')); else error ("fopen failed: %s", f); endif *************** *** 91,99 **** if (fid >= 0) str = fread (fid, "*char")'; fclose (fid); ! ## Avoid PCRE 'lineanchors' by searching for newline followed by PTN. ! ## Equivalent to regexp ('^PTN','lineanchors') ! retval = ! isempty (regexp (str, "[\r\n]\\s*%!(test|assert|error|warning)", "once")); else error ("fopen failed: %s", f); endif --- 91,97 ---- if (fid >= 0) str = fread (fid, "*char")'; fclose (fid); ! retval = ! isempty (regexp (str, '^%!(test|assert|error|warning)', "lineanchors")); else error ("fopen failed: %s", f); endif diff -cNr octave-3.4.0/test/Makefile.am octave-3.4.1/test/Makefile.am *** octave-3.4.0/test/Makefile.am 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/test/Makefile.am 2011-06-15 11:11:28.000000000 -0400 *************** *** 18,24 **** # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/common.mk FCN_FILES = \ fntests.m \ --- 18,24 ---- # along with Octave; see the file COPYING. If not, see # . ! include $(top_srcdir)/build-aux/common.mk FCN_FILES = \ fntests.m \ *************** *** 72,78 **** $(srcdir)/build_bc_overload_tests.sh $(srcdir)/bc_overloads_expected EXTRA_DIST = \ - ChangeLog \ build_sparse_tests.sh \ build_bc_overload_tests.sh \ bc_overloads_expected \ --- 72,77 ---- diff -cNr octave-3.4.0/test/Makefile.in octave-3.4.1/test/Makefile.in *** octave-3.4.0/test/Makefile.in 2011-02-08 05:03:39.000000000 -0500 --- octave-3.4.1/test/Makefile.in 2011-06-15 11:31:30.000000000 -0400 *************** *** 57,67 **** $(srcdir)/@Pork/module.mk $(srcdir)/@Sneetch/module.mk \ $(srcdir)/@Snork/module.mk $(srcdir)/@Spork/module.mk \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ ! $(top_srcdir)/common.mk ChangeLog subdir = test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ --- 57,70 ---- $(srcdir)/@Pork/module.mk $(srcdir)/@Sneetch/module.mk \ $(srcdir)/@Snork/module.mk $(srcdir)/@Spork/module.mk \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ ! $(top_srcdir)/build-aux/common.mk subdir = test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ ! $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/ax_pthread.m4 \ ! $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/canonicalize.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/ceilf.m4 $(top_srcdir)/m4/chdir-long.m4 \ $(top_srcdir)/m4/check-math-lib.m4 $(top_srcdir)/m4/chown.m4 \ *************** *** 69,84 **** $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ --- 72,91 ---- $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/d-type.m4 \ $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ ! $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ ! $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filemode.m4 \ ! $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/floor.m4 $(top_srcdir)/m4/floorf.m4 \ ! $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpurge.m4 \ ! $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/fseek.m4 \ ! $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftell.m4 \ ! $(top_srcdir)/m4/ftello.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ *************** *** 92,117 **** $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \ ! $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ! $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ! $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ ! $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ ! $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ ! $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \ ! $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memchr.m4 \ ! $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ ! $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkfifo.m4 \ ! $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \ ! $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ ! $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nanosleep.m4 \ ! $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ ! $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/printf.m4 \ ! $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ ! $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \ ! $(top_srcdir)/m4/round.m4 $(top_srcdir)/m4/roundf.m4 \ ! $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/select.m4 \ ! $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ --- 99,126 ---- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/link.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ ! $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ ! $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ ! $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ! $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ ! $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/math_h.m4 \ ! $(top_srcdir)/m4/mathfunc.m4 $(top_srcdir)/m4/mbrtowc.m4 \ ! $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ ! $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/md5.m4 \ ! $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \ ! $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \ ! $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkstemp.m4 \ ! $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ ! $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/multiarch.m4 \ ! $(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/nocrash.m4 \ ! $(top_srcdir)/m4/nproc.m4 $(top_srcdir)/m4/open.m4 \ ! $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ ! $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/readlink.m4 \ ! $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ ! $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/round.m4 \ ! $(top_srcdir)/m4/roundf.m4 $(top_srcdir)/m4/save-cwd.m4 \ ! $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/sigaction.m4 \ ! $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 \ $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ *************** *** 119,147 **** $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcase.m4 \ ! $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ ! $(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \ ! $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/tempname.m4 \ ! $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ ! $(top_srcdir)/m4/times.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ ! $(top_srcdir)/m4/trunc.m4 $(top_srcdir)/m4/truncf.m4 \ ! $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ ! $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/vasnprintf.m4 \ ! $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ ! $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ ! $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ ! $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/acinclude.m4 \ ! $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/ax_blas.m4 \ ! $(top_srcdir)/m4/ax_blas_f77_func.m4 \ ! $(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = --- 128,153 ---- $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \ ! $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strdup.m4 \ ! $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.m4 \ ! $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strptime.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ ! $(top_srcdir)/m4/sys_times_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ ! $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \ ! $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/times.m4 \ ! $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/trunc.m4 \ ! $(top_srcdir)/m4/truncf.m4 $(top_srcdir)/m4/unistd-safer.m4 \ ! $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlink.m4 \ ! $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vsnprintf.m4 \ ! $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ ! $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ ! $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ ! $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) ! mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = *************** *** 160,166 **** AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ - ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ --- 166,171 ---- *************** *** 312,317 **** --- 317,324 ---- GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ + GNULIB_FGETC = @GNULIB_FGETC@ + GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ *************** *** 321,329 **** --- 328,338 ---- GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ + GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPL = @GNULIB_FREXPL@ + GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ *************** *** 333,338 **** --- 342,349 ---- GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ + GNULIB_GETC = @GNULIB_GETC@ + GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ *************** *** 345,362 **** --- 356,377 ---- GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ + GNULIB_GETS = @GNULIB_GETS@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ + GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ + GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ + GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ *************** *** 387,392 **** --- 402,408 ---- GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ + GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ *************** *** 403,408 **** --- 419,425 ---- GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ + GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ *************** *** 422,427 **** --- 439,445 ---- GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ + GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ *************** *** 437,442 **** --- 455,461 ---- GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ + GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ *************** *** 454,459 **** --- 473,479 ---- GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ + GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ *************** *** 483,493 **** --- 503,515 ---- GNULIB_TIMES = @GNULIB_TIMES@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ + GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ + GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ *************** *** 499,506 **** --- 521,530 ---- GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ + GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ + GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ *************** *** 530,535 **** --- 554,562 ---- GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ + GNULIB_WCTOMB = @GNULIB_WCTOMB@ + GNULIB_WCTRANS = @GNULIB_WCTRANS@ + GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ *************** *** 596,602 **** HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ - HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ --- 623,628 ---- *************** *** 637,642 **** --- 663,669 ---- HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ + HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ *************** *** 671,676 **** --- 698,704 ---- HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ + HAVE_PCRE_CONFIG = @HAVE_PCRE_CONFIG@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ *************** *** 689,694 **** --- 717,723 ---- HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGACTION = @HAVE_SIGACTION@ + HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ *************** *** 700,706 **** HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ - HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ --- 729,734 ---- *************** *** 728,733 **** --- 756,762 ---- HAVE_SYS_TIMES_H = @HAVE_SYS_TIMES_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ + HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMES = @HAVE_TIMES@ *************** *** 768,774 **** --- 797,805 ---- HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ + HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ + HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ *************** *** 812,817 **** --- 843,849 ---- LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ + LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ *************** *** 822,827 **** --- 854,860 ---- MAGICK_LDFLAGS = @MAGICK_LDFLAGS@ MAGICK_LIBS = @MAGICK_LIBS@ MAKEINFO = @MAKEINFO@ + MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKOCTFILE_DL_LDFLAGS = @MKOCTFILE_DL_LDFLAGS@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ *************** *** 835,847 **** NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ - NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ --- 868,880 ---- NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIMES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ + NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ *************** *** 857,869 **** NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ - NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ --- 890,902 ---- NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIMES_H = @NEXT_SYS_TIMES_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ + NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ *************** *** 976,981 **** --- 1009,1015 ---- REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ + REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ *************** *** 996,1001 **** --- 1030,1036 ---- REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ + REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ *************** *** 1014,1022 **** --- 1049,1059 ---- REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ + REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ + REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ *************** *** 1050,1055 **** --- 1087,1093 ---- REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ + REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RLD_FLAG = @RLD_FLAG@ *************** *** 1057,1063 **** ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = /bin/sh SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ --- 1095,1101 ---- ROUND_LIBM = @ROUND_LIBM@ SED = @SED@ SET_MAKE = @SET_MAKE@ ! SHELL = @SHELL@ SHLBIN = @SHLBIN@ SHLBINPRE = @SHLBINPRE@ SHLBIN_VER = @SHLBIN_VER@ *************** *** 1114,1120 **** WARN_CXXFLAGS = @WARN_CXXFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ - WITH_PCRE_CONFIG = @WITH_PCRE_CONFIG@ X11_INCFLAGS = @X11_INCFLAGS@ X11_LIBS = @X11_LIBS@ XMKMF = @XMKMF@ --- 1152,1157 ---- *************** *** 1132,1137 **** --- 1169,1175 ---- abs_top_srcdir = @abs_top_srcdir@ ac_config_files = @ac_config_files@ ac_config_headers = @ac_config_headers@ + ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ *************** *** 1245,1251 **** localverarchlibdir = @localverarchlibdir@ localverfcnfiledir = @localverfcnfiledir@ localveroctfiledir = @localveroctfiledir@ - lt_ECHO = @lt_ECHO@ man1dir = @man1dir@ man1ext = @man1ext@ --- 1283,1288 ---- *************** *** 1435,1441 **** @Spork/private/myStash.m EXTRA_DIST = \ - ChangeLog \ build_sparse_tests.sh \ build_bc_overload_tests.sh \ bc_overloads_expected \ --- 1472,1477 ---- *************** *** 1453,1459 **** all: all-am .SUFFIXES: ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.mk $(srcdir)/@Blork/module.mk $(srcdir)/@Cork/module.mk $(srcdir)/@Dork/module.mk $(srcdir)/@Gork/module.mk $(srcdir)/@Pork/module.mk $(srcdir)/@Sneetch/module.mk $(srcdir)/@Snork/module.mk $(srcdir)/@Spork/module.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ --- 1489,1495 ---- all: all-am .SUFFIXES: ! $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build-aux/common.mk $(srcdir)/@Blork/module.mk $(srcdir)/@Cork/module.mk $(srcdir)/@Dork/module.mk $(srcdir)/@Gork/module.mk $(srcdir)/@Pork/module.mk $(srcdir)/@Sneetch/module.mk $(srcdir)/@Snork/module.mk $(srcdir)/@Spork/module.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ *************** *** 1647,1653 **** define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ --- 1683,1689 ---- define simple_move_if_change_rule if [ -s $@-t ]; then \ ! $(top_srcdir)/build-aux/move-if-change $@-t $@; \ else \ echo "$@-t is empty!" 1>&2; \ rm -f $@-t; \ *************** *** 1871,1877 **** endef define do_script_install ! $(top_srcdir)/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ --- 1907,1913 ---- endef define do_script_install ! $(top_srcdir)/build-aux/mkinstalldirs $(DESTDIR)$(fcnfiledir)/$(script_sub_dir) for f in $(FCN_FILES); do \ fbase=`basename $$f`; \ rm -f $(DESTDIR)$(fcnfiledir)/$(script_sub_dir)/$$fbase; \ diff -cNr octave-3.4.0/test/test_index-wfi-t.m octave-3.4.1/test/test_index-wfi-t.m *** octave-3.4.0/test/test_index-wfi-t.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/test/test_index-wfi-t.m 2011-06-15 11:11:28.000000000 -0400 *************** *** 19,25 **** %% test/octave.test/index-wfi-t/s-1.m %!test %! wfi = warning ("query", "Octave:fortran-indexing"); ! %! warn_fortran_indexing = 1; %! a = []; %! assert(isempty (a)); %! warning (wfi.state, "Octave:fortran-indexing"); --- 19,25 ---- %% test/octave.test/index-wfi-t/s-1.m %!test %! wfi = warning ("query", "Octave:fortran-indexing"); ! %! warning ("on", "Octave:fortran-indexing"); %! a = []; %! assert(isempty (a)); %! warning (wfi.state, "Octave:fortran-indexing"); diff -cNr octave-3.4.0/test/test_parser.m octave-3.4.1/test/test_parser.m *** octave-3.4.0/test/test_parser.m 2011-02-08 05:00:52.000000000 -0500 --- octave-3.4.1/test/test_parser.m 2011-06-15 11:13:48.000000000 -0400 *************** *** 27,29 **** --- 27,169 ---- %!assert ({1 2,{3 4}}, {1,2,{3,4}}) %!assert ({1 2,{3,4}}, {1,2,{3,4}}) %!assert ({1,2,{3 4}}, {1,2,{3,4}}) + + %# Tests for operator precedence as documented in section 8.8 of manual + %# There are 11 levels of precedence from "exponentiation" (highest) down to + %# "statement operators" (lowest). + %# + %# Level 11 (exponentiation) overrides all others + %!test + %! assert (-2^2, -4) + %! assert (!0^0, false); + # FIXME: This test is failing. Transpose mistakenly has higher priority. + %!# assert ([2 3].^2', [4; 9]) + %! assert (2*3^2, 18) + %! assert (2+3^2, 11) + %! assert ([1:10](1:2^2), [1 2 3 4]) + %! assert (3 > 2^2, false) + %! assert (1 & 0^0, true) + %! assert (1 && 0^0, true) + %! a = 3; + %! a *= 0^0; + %! assert (a, 3) + %# Level 10 (unary plus, increment, not) + %!test + # FIXME: No test for increment and transpose that I can think of. + %! a = 2; + %! assert (++a*3, 9) + %! assert (a++-2, 1) + %! assert (a, 4) + %! assert ([1:10](1:++a), [1:5]) + %! assert (5 == a++, true) + %! assert (7 == ++a, true) + %! a = 0; + %! assert (1 & a++, false) + %! assert (a, 1) + %! assert (1 && --a, false) + %! a = 3; + %! a *= a++; + %! assert (a, 12) + %# Level 9 (transpose) + %!test + %! assert ([1 2]*[3 4]', 11) + %! assert ([1 2]'+[3 4]', [4; 6]) + %! assert (1:5', 1:5) + %! assert ([1; 2] == [1 2]', [true; true]) + %! assert ([1; 0] & [1 0]', [true; false]) + # FIXME: No test for transpose and short-circuit operator that I can think of. + %! a = [1 2]; + %! a *= [3 4]'; + %! assert (a, 11) + %# Level 8 (multiply, divide) + %!test + %! assert (3 + 4 * 5, 23) + %! assert (3 + 4 * 5, 23) + %! assert (5*1:6, [5 6]) + %! assert (3 > 1 * 5, false) + %! assert (1 & 1 * 0, false) + %! assert (1 && 1 * 0, false) + %! a = 3; + %! a /= a * 2; + %! assert (a, 0.5) + %# Level 7 (add, subtract) + %!test + %! assert ([2 + 1:6], 3:6) + %! assert (3 > 1 + 5, false) + %! assert (1 & 1 - 1, false) + %! assert (1 && 1 - 1, false) + %! a = 3; + %! a *= 1 + 1; + %! assert (a, 6) + %# Level 6 (colon) + %!test + %! assert (5:-1: 3 > 4, [true false false]) + %! assert (1: 3 & 1, [true true true]) + %! assert (-1: 3 && 1, false) + %! a = [1:3]; + %! a += 3 : 5; + %! assert (a, [4 6 8]) + %# Level 5 (relational) + %!test + %! assert (0 == -1 & 0, false) + %! assert (0 == -1 && 0, false) + %! a = 2; + %! a *= 3 > 1; + %! assert (a, 2) + %# Level 4 (element-wise and, or) + %!test + %! assert (0 & 1 || 1, true) + %! assert (0 == -1 && 0, false) + %! a = 2; + %! a *= 3 & 1; + %! assert (a, 2) + %# Level 3 (logical and, or) + %!test + %! a = 2; + %! a *= 3 && 1; + %! assert (a, 2) + + %# Tests for operator precedence within each level where ordering should + %# be left to right except for exponents and assignments. + %# Level 11 (exponentiation) + %!test + %# FIXME : Exponentiation seems to work left to right, despite the + %# documentation and ordinary mathematical rules of precedence. + %!# assert (2^3**2, 512) + %# Level 10 (unary plus, increment, not) + %!test + %! assert (+-+1, -1) + %! a = 0; + %# FIXME : Should we test for this corner case at all? + %# (unary minus)(auto-decrement operator) + %!# assert (---a, 1); + %! a = -1; + %! assert (!++a, true) + %! assert (a, 0) + %! assert (-~a, -1) + %! assert (!~a++, false) + %! assert (a, 1) + %# Level 9 (transpose) + %!test + %! assert (3*4i'.', 0 - 12i) + %! assert (3*4i.'.', 0 + 12i) + %# Level 8 (multiply, divide) + %!test + %!assert (3 * 4 / 5, 2.4) + %!assert (3 ./ 4 .* 5, 3.75) + %# Level 7 (add, subtract) + %!test + %!assert (-3 - 4 + 1 + 3 * 2, 0) + %# Level 5 (relational) + %!test + %! assert (0 < 1 <= 0.5 == 0 >= 0.5 > 0, true) + %! assert (1 < 1 == 0 != 0, true) + %! assert (1 < 1 == 0 ~= 0, true) + %# Level 4 (element-wise and, or) + %!test + %! assert ([ 1 0] & [0 1] | [1 0], [true false]) + %# Level 2 (assignment) + %!test + %! a = 2; b = 5; c = 7; + %! assert (a += b *= c += 1, 42) + %! assert (b == 40 && c == 8) PATCH_EOF